OSDN Git Service

equity compiler tool (#18)
authoroysheng <33340252+oysheng@users.noreply.github.com>
Tue, 16 Oct 2018 07:26:58 +0000 (15:26 +0800)
committerPaladz <yzhu101@uottawa.ca>
Tue, 16 Oct 2018 07:26:58 +0000 (15:26 +0800)
* add equity compiler tool

* add go vendor

* adjust print

379 files changed:
equity/main.go [new file with mode: 0644]
equity/util/instance.go [new file with mode: 0644]
equity/util/shift.go [new file with mode: 0644]
vendor/github.com/bytom/LICENSE [new file with mode: 0644]
vendor/github.com/bytom/common/README.md [new file with mode: 0644]
vendor/github.com/bytom/common/address.go [new file with mode: 0644]
vendor/github.com/bytom/common/bech32/bech32.go [new file with mode: 0644]
vendor/github.com/bytom/common/bech32/doc.go [new file with mode: 0644]
vendor/github.com/bytom/common/big.go [new file with mode: 0644]
vendor/github.com/bytom/common/bytes.go [new file with mode: 0644]
vendor/github.com/bytom/common/debug.go [new file with mode: 0644]
vendor/github.com/bytom/common/list.go [new file with mode: 0644]
vendor/github.com/bytom/common/path.go [new file with mode: 0644]
vendor/github.com/bytom/common/size.go [new file with mode: 0644]
vendor/github.com/bytom/common/sort.go [new file with mode: 0644]
vendor/github.com/bytom/common/test_utils.go [new file with mode: 0644]
vendor/github.com/bytom/common/types.go [new file with mode: 0644]
vendor/github.com/bytom/common/types_template.go [new file with mode: 0644]
vendor/github.com/bytom/consensus/general.go [new file with mode: 0644]
vendor/github.com/bytom/consensus/server_flag.go [new file with mode: 0644]
vendor/github.com/bytom/crypto/crypto.go [new file with mode: 0644]
vendor/github.com/bytom/crypto/ed25519/ed25519.go [new file with mode: 0644]
vendor/github.com/bytom/crypto/ed25519/internal/edwards25519/chain_export.go [new file with mode: 0644]
vendor/github.com/bytom/crypto/ed25519/internal/edwards25519/const.go [new file with mode: 0644]
vendor/github.com/bytom/crypto/ed25519/internal/edwards25519/edwards25519.go [new file with mode: 0644]
vendor/github.com/bytom/crypto/sha3pool/pool.go [new file with mode: 0644]
vendor/github.com/bytom/crypto/sm3/ifile [new file with mode: 0644]
vendor/github.com/bytom/crypto/sm3/sm3.go [new file with mode: 0644]
vendor/github.com/bytom/encoding/blockchain/blockchain.go [new file with mode: 0644]
vendor/github.com/bytom/encoding/bufpool/bufpool.go [new file with mode: 0644]
vendor/github.com/bytom/encoding/json/duration.go [new file with mode: 0644]
vendor/github.com/bytom/encoding/json/json.go [new file with mode: 0644]
vendor/github.com/bytom/errors/doc.go [new file with mode: 0644]
vendor/github.com/bytom/errors/errors.go [new file with mode: 0644]
vendor/github.com/bytom/errors/stack.go [new file with mode: 0644]
vendor/github.com/bytom/errors/writer.go [new file with mode: 0644]
vendor/github.com/bytom/math/checked/checked.go [new file with mode: 0644]
vendor/github.com/bytom/protocol/bc/asset.go [new file with mode: 0644]
vendor/github.com/bytom/protocol/bc/bc.pb.go [new file with mode: 0644]
vendor/github.com/bytom/protocol/bc/bc.proto [new file with mode: 0644]
vendor/github.com/bytom/protocol/bc/block.go [new file with mode: 0644]
vendor/github.com/bytom/protocol/bc/blockheader.go [new file with mode: 0644]
vendor/github.com/bytom/protocol/bc/coinbase.go [new file with mode: 0644]
vendor/github.com/bytom/protocol/bc/entry.go [new file with mode: 0644]
vendor/github.com/bytom/protocol/bc/hash.go [new file with mode: 0644]
vendor/github.com/bytom/protocol/bc/issuance.go [new file with mode: 0644]
vendor/github.com/bytom/protocol/bc/mux.go [new file with mode: 0644]
vendor/github.com/bytom/protocol/bc/output.go [new file with mode: 0644]
vendor/github.com/bytom/protocol/bc/retirement.go [new file with mode: 0644]
vendor/github.com/bytom/protocol/bc/spend.go [new file with mode: 0644]
vendor/github.com/bytom/protocol/bc/tx.go [new file with mode: 0644]
vendor/github.com/bytom/protocol/bc/tx_status.go [new file with mode: 0644]
vendor/github.com/bytom/protocol/bc/txheader.go [new file with mode: 0644]
vendor/github.com/bytom/protocol/vm/assemble.go [new file with mode: 0644]
vendor/github.com/bytom/protocol/vm/bitwise.go [new file with mode: 0644]
vendor/github.com/bytom/protocol/vm/context.go [new file with mode: 0644]
vendor/github.com/bytom/protocol/vm/control.go [new file with mode: 0644]
vendor/github.com/bytom/protocol/vm/crypto.go [new file with mode: 0644]
vendor/github.com/bytom/protocol/vm/errors.go [new file with mode: 0644]
vendor/github.com/bytom/protocol/vm/introspection.go [new file with mode: 0644]
vendor/github.com/bytom/protocol/vm/numeric.go [new file with mode: 0644]
vendor/github.com/bytom/protocol/vm/ops.go [new file with mode: 0644]
vendor/github.com/bytom/protocol/vm/pushdata.go [new file with mode: 0644]
vendor/github.com/bytom/protocol/vm/runlimit.go [new file with mode: 0644]
vendor/github.com/bytom/protocol/vm/splice.go [new file with mode: 0644]
vendor/github.com/bytom/protocol/vm/stack.go [new file with mode: 0644]
vendor/github.com/bytom/protocol/vm/types.go [new file with mode: 0644]
vendor/github.com/bytom/protocol/vm/vm.go [new file with mode: 0644]
vendor/github.com/bytom/protocol/vm/vmutil/builder.go [new file with mode: 0644]
vendor/github.com/bytom/protocol/vm/vmutil/script.go [new file with mode: 0644]
vendor/github.com/golang/protobuf/LICENSE [new file with mode: 0644]
vendor/github.com/golang/protobuf/proto/Makefile [new file with mode: 0644]
vendor/github.com/golang/protobuf/proto/clone.go [new file with mode: 0644]
vendor/github.com/golang/protobuf/proto/decode.go [new file with mode: 0644]
vendor/github.com/golang/protobuf/proto/encode.go [new file with mode: 0644]
vendor/github.com/golang/protobuf/proto/equal.go [new file with mode: 0644]
vendor/github.com/golang/protobuf/proto/extensions.go [new file with mode: 0644]
vendor/github.com/golang/protobuf/proto/lib.go [new file with mode: 0644]
vendor/github.com/golang/protobuf/proto/message_set.go [new file with mode: 0644]
vendor/github.com/golang/protobuf/proto/pointer_reflect.go [new file with mode: 0644]
vendor/github.com/golang/protobuf/proto/pointer_unsafe.go [new file with mode: 0644]
vendor/github.com/golang/protobuf/proto/properties.go [new file with mode: 0644]
vendor/github.com/golang/protobuf/proto/text.go [new file with mode: 0644]
vendor/github.com/golang/protobuf/proto/text_parser.go [new file with mode: 0644]
vendor/github.com/inconshreveable/mousetrap/LICENSE [new file with mode: 0644]
vendor/github.com/inconshreveable/mousetrap/README.md [new file with mode: 0644]
vendor/github.com/inconshreveable/mousetrap/trap_others.go [new file with mode: 0644]
vendor/github.com/inconshreveable/mousetrap/trap_windows.go [new file with mode: 0644]
vendor/github.com/inconshreveable/mousetrap/trap_windows_1.4.go [new file with mode: 0644]
vendor/github.com/sirupsen/logrus/CHANGELOG.md [new file with mode: 0644]
vendor/github.com/sirupsen/logrus/LICENSE [new file with mode: 0644]
vendor/github.com/sirupsen/logrus/README.md [new file with mode: 0644]
vendor/github.com/sirupsen/logrus/alt_exit.go [new file with mode: 0644]
vendor/github.com/sirupsen/logrus/appveyor.yml [new file with mode: 0644]
vendor/github.com/sirupsen/logrus/doc.go [new file with mode: 0644]
vendor/github.com/sirupsen/logrus/entry.go [new file with mode: 0644]
vendor/github.com/sirupsen/logrus/exported.go [new file with mode: 0644]
vendor/github.com/sirupsen/logrus/formatter.go [new file with mode: 0644]
vendor/github.com/sirupsen/logrus/hooks.go [new file with mode: 0644]
vendor/github.com/sirupsen/logrus/json_formatter.go [new file with mode: 0644]
vendor/github.com/sirupsen/logrus/logger.go [new file with mode: 0644]
vendor/github.com/sirupsen/logrus/logrus.go [new file with mode: 0644]
vendor/github.com/sirupsen/logrus/terminal_bsd.go [new file with mode: 0644]
vendor/github.com/sirupsen/logrus/terminal_linux.go [new file with mode: 0644]
vendor/github.com/sirupsen/logrus/text_formatter.go [new file with mode: 0644]
vendor/github.com/sirupsen/logrus/writer.go [new file with mode: 0644]
vendor/github.com/spf13/cobra/LICENSE.txt [new file with mode: 0644]
vendor/github.com/spf13/cobra/README.md [new file with mode: 0644]
vendor/github.com/spf13/cobra/args.go [new file with mode: 0644]
vendor/github.com/spf13/cobra/bash_completions.go [new file with mode: 0644]
vendor/github.com/spf13/cobra/bash_completions.md [new file with mode: 0644]
vendor/github.com/spf13/cobra/cobra.go [new file with mode: 0644]
vendor/github.com/spf13/cobra/command.go [new file with mode: 0644]
vendor/github.com/spf13/cobra/command_notwin.go [new file with mode: 0644]
vendor/github.com/spf13/cobra/command_win.go [new file with mode: 0644]
vendor/github.com/spf13/cobra/zsh_completions.go [new file with mode: 0644]
vendor/github.com/spf13/pflag/LICENSE [new file with mode: 0644]
vendor/github.com/spf13/pflag/README.md [new file with mode: 0644]
vendor/github.com/spf13/pflag/bool.go [new file with mode: 0644]
vendor/github.com/spf13/pflag/bool_slice.go [new file with mode: 0644]
vendor/github.com/spf13/pflag/bytes.go [new file with mode: 0644]
vendor/github.com/spf13/pflag/count.go [new file with mode: 0644]
vendor/github.com/spf13/pflag/duration.go [new file with mode: 0644]
vendor/github.com/spf13/pflag/duration_slice.go [new file with mode: 0644]
vendor/github.com/spf13/pflag/flag.go [new file with mode: 0644]
vendor/github.com/spf13/pflag/float32.go [new file with mode: 0644]
vendor/github.com/spf13/pflag/float64.go [new file with mode: 0644]
vendor/github.com/spf13/pflag/golangflag.go [new file with mode: 0644]
vendor/github.com/spf13/pflag/int.go [new file with mode: 0644]
vendor/github.com/spf13/pflag/int16.go [new file with mode: 0644]
vendor/github.com/spf13/pflag/int32.go [new file with mode: 0644]
vendor/github.com/spf13/pflag/int64.go [new file with mode: 0644]
vendor/github.com/spf13/pflag/int8.go [new file with mode: 0644]
vendor/github.com/spf13/pflag/int_slice.go [new file with mode: 0644]
vendor/github.com/spf13/pflag/ip.go [new file with mode: 0644]
vendor/github.com/spf13/pflag/ip_slice.go [new file with mode: 0644]
vendor/github.com/spf13/pflag/ipmask.go [new file with mode: 0644]
vendor/github.com/spf13/pflag/ipnet.go [new file with mode: 0644]
vendor/github.com/spf13/pflag/string.go [new file with mode: 0644]
vendor/github.com/spf13/pflag/string_array.go [new file with mode: 0644]
vendor/github.com/spf13/pflag/string_slice.go [new file with mode: 0644]
vendor/github.com/spf13/pflag/string_to_int.go [new file with mode: 0644]
vendor/github.com/spf13/pflag/string_to_string.go [new file with mode: 0644]
vendor/github.com/spf13/pflag/uint.go [new file with mode: 0644]
vendor/github.com/spf13/pflag/uint16.go [new file with mode: 0644]
vendor/github.com/spf13/pflag/uint32.go [new file with mode: 0644]
vendor/github.com/spf13/pflag/uint64.go [new file with mode: 0644]
vendor/github.com/spf13/pflag/uint8.go [new file with mode: 0644]
vendor/github.com/spf13/pflag/uint_slice.go [new file with mode: 0644]
vendor/golang.org/x/crypto/LICENSE [new file with mode: 0644]
vendor/golang.org/x/crypto/PATENTS [new file with mode: 0644]
vendor/golang.org/x/crypto/ripemd160/ripemd160.go [new file with mode: 0644]
vendor/golang.org/x/crypto/ripemd160/ripemd160block.go [new file with mode: 0644]
vendor/golang.org/x/crypto/sha3/doc.go [new file with mode: 0644]
vendor/golang.org/x/crypto/sha3/hashes.go [new file with mode: 0644]
vendor/golang.org/x/crypto/sha3/keccakf.go [new file with mode: 0644]
vendor/golang.org/x/crypto/sha3/keccakf_amd64.go [new file with mode: 0644]
vendor/golang.org/x/crypto/sha3/keccakf_amd64.s [new file with mode: 0644]
vendor/golang.org/x/crypto/sha3/register.go [new file with mode: 0644]
vendor/golang.org/x/crypto/sha3/sha3.go [new file with mode: 0644]
vendor/golang.org/x/crypto/sha3/shake.go [new file with mode: 0644]
vendor/golang.org/x/crypto/sha3/xor.go [new file with mode: 0644]
vendor/golang.org/x/crypto/sha3/xor_generic.go [new file with mode: 0644]
vendor/golang.org/x/crypto/sha3/xor_unaligned.go [new file with mode: 0644]
vendor/golang.org/x/crypto/ssh/terminal/terminal.go [new file with mode: 0644]
vendor/golang.org/x/crypto/ssh/terminal/util.go [new file with mode: 0644]
vendor/golang.org/x/crypto/ssh/terminal/util_bsd.go [new file with mode: 0644]
vendor/golang.org/x/crypto/ssh/terminal/util_linux.go [new file with mode: 0644]
vendor/golang.org/x/crypto/ssh/terminal/util_plan9.go [new file with mode: 0644]
vendor/golang.org/x/crypto/ssh/terminal/util_solaris.go [new file with mode: 0644]
vendor/golang.org/x/crypto/ssh/terminal/util_windows.go [new file with mode: 0644]
vendor/golang.org/x/sys/LICENSE [new file with mode: 0644]
vendor/golang.org/x/sys/PATENTS [new file with mode: 0644]
vendor/golang.org/x/sys/unix/README.md [new file with mode: 0644]
vendor/golang.org/x/sys/unix/asm_darwin_386.s [new file with mode: 0644]
vendor/golang.org/x/sys/unix/asm_darwin_amd64.s [new file with mode: 0644]
vendor/golang.org/x/sys/unix/asm_darwin_arm.s [new file with mode: 0644]
vendor/golang.org/x/sys/unix/asm_darwin_arm64.s [new file with mode: 0644]
vendor/golang.org/x/sys/unix/asm_dragonfly_amd64.s [new file with mode: 0644]
vendor/golang.org/x/sys/unix/asm_freebsd_386.s [new file with mode: 0644]
vendor/golang.org/x/sys/unix/asm_freebsd_amd64.s [new file with mode: 0644]
vendor/golang.org/x/sys/unix/asm_freebsd_arm.s [new file with mode: 0644]
vendor/golang.org/x/sys/unix/asm_linux_386.s [new file with mode: 0644]
vendor/golang.org/x/sys/unix/asm_linux_amd64.s [new file with mode: 0644]
vendor/golang.org/x/sys/unix/asm_linux_arm.s [new file with mode: 0644]
vendor/golang.org/x/sys/unix/asm_linux_arm64.s [new file with mode: 0644]
vendor/golang.org/x/sys/unix/asm_linux_mips64x.s [new file with mode: 0644]
vendor/golang.org/x/sys/unix/asm_linux_mipsx.s [new file with mode: 0644]
vendor/golang.org/x/sys/unix/asm_linux_ppc64x.s [new file with mode: 0644]
vendor/golang.org/x/sys/unix/asm_linux_s390x.s [new file with mode: 0644]
vendor/golang.org/x/sys/unix/asm_netbsd_386.s [new file with mode: 0644]
vendor/golang.org/x/sys/unix/asm_netbsd_amd64.s [new file with mode: 0644]
vendor/golang.org/x/sys/unix/asm_netbsd_arm.s [new file with mode: 0644]
vendor/golang.org/x/sys/unix/asm_openbsd_386.s [new file with mode: 0644]
vendor/golang.org/x/sys/unix/asm_openbsd_amd64.s [new file with mode: 0644]
vendor/golang.org/x/sys/unix/asm_openbsd_arm.s [new file with mode: 0644]
vendor/golang.org/x/sys/unix/asm_solaris_amd64.s [new file with mode: 0644]
vendor/golang.org/x/sys/unix/bluetooth_linux.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/cap_freebsd.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/constants.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/dev_darwin.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/dev_linux.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/dirent.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/endian_big.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/endian_little.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/env_unix.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/env_unset.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/errors_freebsd_386.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/errors_freebsd_amd64.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/errors_freebsd_arm.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/file_unix.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/flock.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/flock_linux_32bit.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/gccgo.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/gccgo_c.c [new file with mode: 0644]
vendor/golang.org/x/sys/unix/gccgo_linux_amd64.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/gccgo_linux_sparc64.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/mkall.sh [new file with mode: 0755]
vendor/golang.org/x/sys/unix/mkerrors.sh [new file with mode: 0755]
vendor/golang.org/x/sys/unix/mksyscall.pl [new file with mode: 0755]
vendor/golang.org/x/sys/unix/mksyscall_solaris.pl [new file with mode: 0755]
vendor/golang.org/x/sys/unix/mksysctl_openbsd.pl [new file with mode: 0755]
vendor/golang.org/x/sys/unix/mksysnum_darwin.pl [new file with mode: 0755]
vendor/golang.org/x/sys/unix/mksysnum_dragonfly.pl [new file with mode: 0755]
vendor/golang.org/x/sys/unix/mksysnum_freebsd.pl [new file with mode: 0755]
vendor/golang.org/x/sys/unix/mksysnum_netbsd.pl [new file with mode: 0755]
vendor/golang.org/x/sys/unix/mksysnum_openbsd.pl [new file with mode: 0755]
vendor/golang.org/x/sys/unix/openbsd_pledge.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/race.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/race0.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/sockcmsg_linux.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/sockcmsg_unix.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/str.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/syscall.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/syscall_bsd.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/syscall_darwin.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/syscall_darwin_386.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/syscall_darwin_amd64.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/syscall_darwin_arm.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/syscall_darwin_arm64.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/syscall_dragonfly.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/syscall_dragonfly_amd64.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/syscall_freebsd.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/syscall_freebsd_386.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/syscall_freebsd_amd64.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/syscall_freebsd_arm.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/syscall_linux.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/syscall_linux_386.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/syscall_linux_amd64.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/syscall_linux_amd64_gc.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/syscall_linux_arm.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/syscall_linux_arm64.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/syscall_linux_mips64x.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/syscall_linux_mipsx.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/syscall_linux_ppc64x.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/syscall_linux_s390x.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/syscall_linux_sparc64.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/syscall_netbsd.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/syscall_netbsd_386.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/syscall_netbsd_amd64.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/syscall_netbsd_arm.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/syscall_no_getwd.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/syscall_openbsd.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/syscall_openbsd_386.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/syscall_openbsd_amd64.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/syscall_openbsd_arm.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/syscall_solaris.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/syscall_solaris_amd64.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/syscall_unix.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/syscall_unix_gc.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/zerrors_darwin_386.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/zerrors_darwin_amd64.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/zerrors_darwin_arm.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/zerrors_darwin_arm64.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/zerrors_dragonfly_amd64.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/zerrors_freebsd_386.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/zerrors_freebsd_amd64.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/zerrors_freebsd_arm.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/zerrors_linux_386.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/zerrors_linux_arm.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/zerrors_linux_mips.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/zerrors_netbsd_386.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/zerrors_netbsd_amd64.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/zerrors_netbsd_arm.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/zerrors_openbsd_386.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/zerrors_openbsd_amd64.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/zerrors_openbsd_arm.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/zerrors_solaris_amd64.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/zsyscall_darwin_386.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/zsyscall_dragonfly_amd64.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/zsyscall_freebsd_386.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/zsyscall_freebsd_amd64.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/zsyscall_linux_386.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/zsyscall_linux_amd64.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/zsyscall_linux_arm.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/zsyscall_linux_arm64.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/zsyscall_linux_mips.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/zsyscall_linux_mips64.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/zsyscall_linux_mips64le.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/zsyscall_linux_mipsle.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64le.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/zsyscall_linux_s390x.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/zsyscall_linux_sparc64.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/zsyscall_netbsd_386.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/zsyscall_netbsd_amd64.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/zsyscall_solaris_amd64.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/zsysctl_openbsd.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/zsysnum_darwin_386.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/zsysnum_darwin_amd64.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/zsysnum_darwin_arm.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/zsysnum_darwin_arm64.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/zsysnum_dragonfly_amd64.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/zsysnum_freebsd_386.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/zsysnum_freebsd_amd64.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/zsysnum_linux_386.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/zsysnum_linux_arm.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/zsysnum_linux_mips.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/zsysnum_netbsd_386.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/zsysnum_netbsd_amd64.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/zsysnum_netbsd_arm.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/zsysnum_openbsd_386.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/zsysnum_openbsd_amd64.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/zsysnum_openbsd_arm.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/zsysnum_solaris_amd64.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/ztypes_darwin_386.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/ztypes_darwin_amd64.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/ztypes_darwin_arm.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/ztypes_darwin_arm64.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/ztypes_dragonfly_amd64.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/ztypes_freebsd_386.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/ztypes_freebsd_amd64.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/ztypes_freebsd_arm.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/ztypes_linux_386.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/ztypes_linux_amd64.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/ztypes_linux_arm.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/ztypes_linux_arm64.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/ztypes_linux_mips.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/ztypes_linux_mips64.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/ztypes_linux_mipsle.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/ztypes_linux_s390x.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/ztypes_netbsd_386.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/ztypes_netbsd_amd64.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/ztypes_netbsd_arm.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/ztypes_openbsd_386.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/ztypes_openbsd_amd64.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/ztypes_openbsd_arm.go [new file with mode: 0644]
vendor/golang.org/x/sys/unix/ztypes_solaris_amd64.go [new file with mode: 0644]

diff --git a/equity/main.go b/equity/main.go
new file mode 100644 (file)
index 0000000..d50c5c5
--- /dev/null
@@ -0,0 +1,124 @@
+package main
+
+import (
+       "bufio"
+       "encoding/hex"
+       "fmt"
+       "os"
+       "runtime"
+
+       "github.com/spf13/cobra"
+
+       "github.com/equity/compiler"
+       equityutil "github.com/equity/equity/util"
+)
+
+const (
+       strBin      string = "bin"
+       strShift    string = "shift"
+       strInstance string = "instance"
+)
+
+var (
+       bin      = false
+       shift    = false
+       instance = false
+)
+
+func init() {
+       equityCmd.PersistentFlags().BoolVar(&bin, strBin, false, "Binary of the contracts in hex.")
+       equityCmd.PersistentFlags().BoolVar(&shift, strShift, false, "Function shift of the contracts.")
+       equityCmd.PersistentFlags().BoolVar(&instance, strInstance, false, "Object of the Instantiated contracts.")
+}
+
+func main() {
+       runtime.GOMAXPROCS(runtime.NumCPU())
+       if err := equityCmd.Execute(); err != nil {
+               os.Exit(0)
+       }
+}
+
+var equityCmd = &cobra.Command{
+       Use:     "equity [options] [input_file...]",
+       Short:   "equity commandline compiler",
+       Example: "equity contract_name [contract_args...] --bin --instance",
+       Args:    cobra.RangeArgs(1, 100),
+       Run: func(cmd *cobra.Command, args []string) {
+               if len(args) < 1 {
+                       cmd.Usage()
+               }
+
+               contractFile, err := os.Open(args[0])
+               if err != nil {
+                       fmt.Printf("An error [%v] occurred on opening the file, please check whether the file exists or can be accessed.\n", err)
+                       os.Exit(0)
+               }
+               defer contractFile.Close()
+
+               reader := bufio.NewReader(contractFile)
+               contracts, err := compiler.Compile(reader)
+               if err != nil {
+                       fmt.Println("Compile contract failed:", err)
+                       os.Exit(0)
+               }
+
+               if len(contracts) == 0 {
+                       fmt.Println("The contract is empty!")
+                       os.Exit(0)
+               }
+
+               // Print the result for all contracts
+               for i, contract := range contracts {
+                       fmt.Printf("======= %v =======\n", contract.Name)
+                       if bin {
+                               fmt.Println("Binary:")
+                               fmt.Printf("%v\n\n", hex.EncodeToString(contract.Body))
+                       }
+
+                       if shift {
+                               fmt.Println("Clause shift:")
+                               clauseMap, err := equityutil.Shift(contract)
+                               if err != nil {
+                                       fmt.Println("Statistics contract clause shift error:", err)
+                                       os.Exit(0)
+                               }
+
+                               for clause, shift := range clauseMap {
+                                       fmt.Printf("    %s:  %v\n", clause, shift)
+                               }
+                               fmt.Printf("\nNOTE: \n    If the contract contains only one clause, Users don't need clause selector when unlock contract." +
+                                       "\n    Furthermore, there is no signification for ending clause shift except for display.\n\n")
+                       }
+
+                       if instance {
+                               if i != len(contracts)-1 {
+                                       continue
+                               }
+
+                               fmt.Println("Instantiated program:")
+                               if len(args)-1 < len(contract.Params) {
+                                       fmt.Printf("Error: The number of input arguments %d is less than the number of contract parameters %d\n", len(args)-1, len(contract.Params))
+                                       usage := fmt.Sprintf("Usage:\n  equity %s", args[0])
+                                       for _, param := range contract.Params {
+                                               usage = usage + " <" + param.Name + ">"
+                                       }
+                                       fmt.Printf("%s\n\n", usage)
+                                       os.Exit(0)
+                               }
+
+                               contractArgs, err := equityutil.ConvertArguments(contract, args[1:len(contract.Params)+1])
+                               if err != nil {
+                                       fmt.Println("Convert arguments into contract parameters error:", err)
+                                       os.Exit(0)
+                               }
+
+                               instantProg, err := equityutil.InstantiateContract(contract, contractArgs)
+                               if err != nil {
+                                       fmt.Println("Instantiate contract error:", err)
+                                       os.Exit(0)
+                               }
+                               fmt.Printf("%v\n\n", hex.EncodeToString(instantProg))
+                       }
+               }
+       },
+}
diff --git a/equity/util/instance.go b/equity/util/instance.go
new file mode 100644 (file)
index 0000000..e065fdd
--- /dev/null
@@ -0,0 +1,85 @@
+package equity
+
+import (
+       "encoding/hex"
+       "errors"
+       "strconv"
+
+       chainjson "github.com/bytom/encoding/json"
+
+       "github.com/equity/compiler"
+)
+
+// InstantiateContract instantiate contract parameters
+func InstantiateContract(contract *compiler.Contract, args []compiler.ContractArg) ([]byte, error) {
+       program, err := compiler.Instantiate(contract.Body, contract.Params, contract.Recursive, args)
+       if err != nil {
+               return nil, err
+       }
+
+       return program, nil
+}
+
+func ConvertArguments(contract *compiler.Contract, args []string) ([]compiler.ContractArg, error) {
+       var contractArgs []compiler.ContractArg
+       for i, p := range contract.Params {
+               var argument compiler.ContractArg
+               switch p.Type {
+               case "Boolean":
+                       var boolValue bool
+                       if args[i] == "true" || args[i] == "1" {
+                               boolValue = true
+                       } else if args[i] == "false" || args[i] == "0" {
+                               boolValue = false
+                       } else {
+                               return nil, errors.New("mismatch Boolean argument")
+                       }
+                       argument.B = &boolValue
+
+               case "Amount":
+                       amount, err := strconv.ParseUint(args[i], 10, 64)
+                       if err != nil {
+                               return nil, err
+                       }
+
+                       if amount > uint64(1<<uint(63)) {
+                               return nil, errors.New("the Amount argument exceeds max int64")
+                       }
+                       amountValue := int64(amount)
+                       argument.I = &amountValue
+
+               case "Integer":
+                       integerValue, err := strconv.ParseInt(args[i], 10, 64)
+                       if err != nil {
+                               return nil, err
+                       }
+                       argument.I = &integerValue
+
+               case "Asset", "Hash", "PublicKey":
+                       if len(args[i]) != 64 {
+                               return nil, errors.New("mismatch length for Asset/Hash/PublicKey argument")
+                       }
+
+                       commonValue, err := hex.DecodeString(args[i])
+                       if err != nil {
+                               return nil, err
+                       }
+                       argument.S = (*chainjson.HexBytes)(&commonValue)
+
+               case "Program":
+                       program, err := hex.DecodeString(args[i])
+                       if err != nil {
+                               return nil, err
+                       }
+                       argument.S = (*chainjson.HexBytes)(&program)
+
+               case "String":
+                       strValue := []byte(args[i])
+                       argument.S = (*chainjson.HexBytes)(&strValue)
+
+               }
+               contractArgs = append(contractArgs, argument)
+       }
+
+       return contractArgs, nil
+}
diff --git a/equity/util/shift.go b/equity/util/shift.go
new file mode 100644 (file)
index 0000000..96d8687
--- /dev/null
@@ -0,0 +1,62 @@
+package equity
+
+import (
+       "bytes"
+       "encoding/binary"
+       "encoding/hex"
+       "errors"
+
+       "github.com/bytom/protocol/vm"
+
+       "github.com/equity/compiler"
+)
+
+const (
+       firstClauseShift string = "00000000"
+       endingClauseName string = "ending"
+)
+
+// Shift statistics contract clause's offset
+func Shift(contract *compiler.Contract) (map[string]string, error) {
+       clauseMap := make(map[string]string)
+       if len(contract.Clauses) == 1 {
+               clauseMap[contract.Clauses[0].Name] = firstClauseShift
+               return clauseMap, nil
+       }
+
+       instructions, err := vm.ParseProgram(contract.Body)
+       if err != nil {
+               return nil, err
+       }
+
+       var jumpifData [][]byte
+       for i, inst := range instructions {
+               if inst.Op.String() == "JUMPIF" {
+                       if i > 0 && instructions[i-1].Op.String() == "NOP" {
+                               continue
+                       }
+                       jumpifData = append([][]byte{inst.Data}, jumpifData...)
+               }
+       }
+
+       // Check the number of contract's clause
+       if len(contract.Clauses) != len(jumpifData)+1 {
+               return nil, errors.New("the number of contract's clause is not equal to the number of jumpif instruction")
+       }
+
+       for i, clause := range contract.Clauses {
+               if i == 0 {
+                       clauseMap[clause.Name] = firstClauseShift
+                       continue
+               }
+               clauseMap[clause.Name] = hex.EncodeToString(jumpifData[i-1])
+       }
+
+       var buffer bytes.Buffer
+       if err := binary.Write(&buffer, binary.LittleEndian, uint32(len(contract.Body))); err != nil {
+               return nil, err
+       }
+       clauseMap[endingClauseName] = hex.EncodeToString(buffer.Bytes())
+
+       return clauseMap, nil
+}
diff --git a/vendor/github.com/bytom/LICENSE b/vendor/github.com/bytom/LICENSE
new file mode 100644 (file)
index 0000000..1ce8758
--- /dev/null
@@ -0,0 +1,661 @@
+                    GNU AFFERO GENERAL PUBLIC LICENSE
+                       Version 3, 19 November 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+                            Preamble
+
+  The GNU Affero General Public License is a free, copyleft license for
+software and other kinds of works, specifically designed to ensure
+cooperation with the community in the case of network server software.
+
+  The licenses for most software and other practical works are designed
+to take away your freedom to share and change the works.  By contrast,
+our General Public Licenses are intended to guarantee your freedom to
+share and change all versions of a program--to make sure it remains free
+software for all its users.
+
+  When we speak of free software, we are referring to freedom, not
+price.  Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+them if you wish), that you receive source code or can get it if you
+want it, that you can change the software or use pieces of it in new
+free programs, and that you know you can do these things.
+
+  Developers that use our General Public Licenses protect your rights
+with two steps: (1) assert copyright on the software, and (2) offer
+you this License which gives you legal permission to copy, distribute
+and/or modify the software.
+
+  A secondary benefit of defending all users' freedom is that
+improvements made in alternate versions of the program, if they
+receive widespread use, become available for other developers to
+incorporate.  Many developers of free software are heartened and
+encouraged by the resulting cooperation.  However, in the case of
+software used on network servers, this result may fail to come about.
+The GNU General Public License permits making a modified version and
+letting the public access it on a server without ever releasing its
+source code to the public.
+
+  The GNU Affero General Public License is designed specifically to
+ensure that, in such cases, the modified source code becomes available
+to the community.  It requires the operator of a network server to
+provide the source code of the modified version running there to the
+users of that server.  Therefore, public use of a modified version, on
+a publicly accessible server, gives the public access to the source
+code of the modified version.
+
+  An older license, called the Affero General Public License and
+published by Affero, was designed to accomplish similar goals.  This is
+a different license, not a version of the Affero GPL, but Affero has
+released a new version of the Affero GPL which permits relicensing under
+this license.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.
+
+                       TERMS AND CONDITIONS
+
+  0. Definitions.
+
+  "This License" refers to version 3 of the GNU Affero General Public License.
+
+  "Copyright" also means copyright-like laws that apply to other kinds of
+works, such as semiconductor masks.
+
+  "The Program" refers to any copyrightable work licensed under this
+License.  Each licensee is addressed as "you".  "Licensees" and
+"recipients" may be individuals or organizations.
+
+  To "modify" a work means to copy from or adapt all or part of the work
+in a fashion requiring copyright permission, other than the making of an
+exact copy.  The resulting work is called a "modified version" of the
+earlier work or a work "based on" the earlier work.
+
+  A "covered work" means either the unmodified Program or a work based
+on the Program.
+
+  To "propagate" a work means to do anything with it that, without
+permission, would make you directly or secondarily liable for
+infringement under applicable copyright law, except executing it on a
+computer or modifying a private copy.  Propagation includes copying,
+distribution (with or without modification), making available to the
+public, and in some countries other activities as well.
+
+  To "convey" a work means any kind of propagation that enables other
+parties to make or receive copies.  Mere interaction with a user through
+a computer network, with no transfer of a copy, is not conveying.
+
+  An interactive user interface displays "Appropriate Legal Notices"
+to the extent that it includes a convenient and prominently visible
+feature that (1) displays an appropriate copyright notice, and (2)
+tells the user that there is no warranty for the work (except to the
+extent that warranties are provided), that licensees may convey the
+work under this License, and how to view a copy of this License.  If
+the interface presents a list of user commands or options, such as a
+menu, a prominent item in the list meets this criterion.
+
+  1. Source Code.
+
+  The "source code" for a work means the preferred form of the work
+for making modifications to it.  "Object code" means any non-source
+form of a work.
+
+  A "Standard Interface" means an interface that either is an official
+standard defined by a recognized standards body, or, in the case of
+interfaces specified for a particular programming language, one that
+is widely used among developers working in that language.
+
+  The "System Libraries" of an executable work include anything, other
+than the work as a whole, that (a) is included in the normal form of
+packaging a Major Component, but which is not part of that Major
+Component, and (b) serves only to enable use of the work with that
+Major Component, or to implement a Standard Interface for which an
+implementation is available to the public in source code form.  A
+"Major Component", in this context, means a major essential component
+(kernel, window system, and so on) of the specific operating system
+(if any) on which the executable work runs, or a compiler used to
+produce the work, or an object code interpreter used to run it.
+
+  The "Corresponding Source" for a work in object code form means all
+the source code needed to generate, install, and (for an executable
+work) run the object code and to modify the work, including scripts to
+control those activities.  However, it does not include the work's
+System Libraries, or general-purpose tools or generally available free
+programs which are used unmodified in performing those activities but
+which are not part of the work.  For example, Corresponding Source
+includes interface definition files associated with source files for
+the work, and the source code for shared libraries and dynamically
+linked subprograms that the work is specifically designed to require,
+such as by intimate data communication or control flow between those
+subprograms and other parts of the work.
+
+  The Corresponding Source need not include anything that users
+can regenerate automatically from other parts of the Corresponding
+Source.
+
+  The Corresponding Source for a work in source code form is that
+same work.
+
+  2. Basic Permissions.
+
+  All rights granted under this License are granted for the term of
+copyright on the Program, and are irrevocable provided the stated
+conditions are met.  This License explicitly affirms your unlimited
+permission to run the unmodified Program.  The output from running a
+covered work is covered by this License only if the output, given its
+content, constitutes a covered work.  This License acknowledges your
+rights of fair use or other equivalent, as provided by copyright law.
+
+  You may make, run and propagate covered works that you do not
+convey, without conditions so long as your license otherwise remains
+in force.  You may convey covered works to others for the sole purpose
+of having them make modifications exclusively for you, or provide you
+with facilities for running those works, provided that you comply with
+the terms of this License in conveying all material for which you do
+not control copyright.  Those thus making or running the covered works
+for you must do so exclusively on your behalf, under your direction
+and control, on terms that prohibit them from making any copies of
+your copyrighted material outside their relationship with you.
+
+  Conveying under any other circumstances is permitted solely under
+the conditions stated below.  Sublicensing is not allowed; section 10
+makes it unnecessary.
+
+  3. Protecting Users' Legal Rights From Anti-Circumvention Law.
+
+  No covered work shall be deemed part of an effective technological
+measure under any applicable law fulfilling obligations under article
+11 of the WIPO copyright treaty adopted on 20 December 1996, or
+similar laws prohibiting or restricting circumvention of such
+measures.
+
+  When you convey a covered work, you waive any legal power to forbid
+circumvention of technological measures to the extent such circumvention
+is effected by exercising rights under this License with respect to
+the covered work, and you disclaim any intention to limit operation or
+modification of the work as a means of enforcing, against the work's
+users, your or third parties' legal rights to forbid circumvention of
+technological measures.
+
+  4. Conveying Verbatim Copies.
+
+  You may convey verbatim copies of the Program's source code as you
+receive it, in any medium, provided that you conspicuously and
+appropriately publish on each copy an appropriate copyright notice;
+keep intact all notices stating that this License and any
+non-permissive terms added in accord with section 7 apply to the code;
+keep intact all notices of the absence of any warranty; and give all
+recipients a copy of this License along with the Program.
+
+  You may charge any price or no price for each copy that you convey,
+and you may offer support or warranty protection for a fee.
+
+  5. Conveying Modified Source Versions.
+
+  You may convey a work based on the Program, or the modifications to
+produce it from the Program, in the form of source code under the
+terms of section 4, provided that you also meet all of these conditions:
+
+    a) The work must carry prominent notices stating that you modified
+    it, and giving a relevant date.
+
+    b) The work must carry prominent notices stating that it is
+    released under this License and any conditions added under section
+    7.  This requirement modifies the requirement in section 4 to
+    "keep intact all notices".
+
+    c) You must license the entire work, as a whole, under this
+    License to anyone who comes into possession of a copy.  This
+    License will therefore apply, along with any applicable section 7
+    additional terms, to the whole of the work, and all its parts,
+    regardless of how they are packaged.  This License gives no
+    permission to license the work in any other way, but it does not
+    invalidate such permission if you have separately received it.
+
+    d) If the work has interactive user interfaces, each must display
+    Appropriate Legal Notices; however, if the Program has interactive
+    interfaces that do not display Appropriate Legal Notices, your
+    work need not make them do so.
+
+  A compilation of a covered work with other separate and independent
+works, which are not by their nature extensions of the covered work,
+and which are not combined with it such as to form a larger program,
+in or on a volume of a storage or distribution medium, is called an
+"aggregate" if the compilation and its resulting copyright are not
+used to limit the access or legal rights of the compilation's users
+beyond what the individual works permit.  Inclusion of a covered work
+in an aggregate does not cause this License to apply to the other
+parts of the aggregate.
+
+  6. Conveying Non-Source Forms.
+
+  You may convey a covered work in object code form under the terms
+of sections 4 and 5, provided that you also convey the
+machine-readable Corresponding Source under the terms of this License,
+in one of these ways:
+
+    a) Convey the object code in, or embodied in, a physical product
+    (including a physical distribution medium), accompanied by the
+    Corresponding Source fixed on a durable physical medium
+    customarily used for software interchange.
+
+    b) Convey the object code in, or embodied in, a physical product
+    (including a physical distribution medium), accompanied by a
+    written offer, valid for at least three years and valid for as
+    long as you offer spare parts or customer support for that product
+    model, to give anyone who possesses the object code either (1) a
+    copy of the Corresponding Source for all the software in the
+    product that is covered by this License, on a durable physical
+    medium customarily used for software interchange, for a price no
+    more than your reasonable cost of physically performing this
+    conveying of source, or (2) access to copy the
+    Corresponding Source from a network server at no charge.
+
+    c) Convey individual copies of the object code with a copy of the
+    written offer to provide the Corresponding Source.  This
+    alternative is allowed only occasionally and noncommercially, and
+    only if you received the object code with such an offer, in accord
+    with subsection 6b.
+
+    d) Convey the object code by offering access from a designated
+    place (gratis or for a charge), and offer equivalent access to the
+    Corresponding Source in the same way through the same place at no
+    further charge.  You need not require recipients to copy the
+    Corresponding Source along with the object code.  If the place to
+    copy the object code is a network server, the Corresponding Source
+    may be on a different server (operated by you or a third party)
+    that supports equivalent copying facilities, provided you maintain
+    clear directions next to the object code saying where to find the
+    Corresponding Source.  Regardless of what server hosts the
+    Corresponding Source, you remain obligated to ensure that it is
+    available for as long as needed to satisfy these requirements.
+
+    e) Convey the object code using peer-to-peer transmission, provided
+    you inform other peers where the object code and Corresponding
+    Source of the work are being offered to the general public at no
+    charge under subsection 6d.
+
+  A separable portion of the object code, whose source code is excluded
+from the Corresponding Source as a System Library, need not be
+included in conveying the object code work.
+
+  A "User Product" is either (1) a "consumer product", which means any
+tangible personal property which is normally used for personal, family,
+or household purposes, or (2) anything designed or sold for incorporation
+into a dwelling.  In determining whether a product is a consumer product,
+doubtful cases shall be resolved in favor of coverage.  For a particular
+product received by a particular user, "normally used" refers to a
+typical or common use of that class of product, regardless of the status
+of the particular user or of the way in which the particular user
+actually uses, or expects or is expected to use, the product.  A product
+is a consumer product regardless of whether the product has substantial
+commercial, industrial or non-consumer uses, unless such uses represent
+the only significant mode of use of the product.
+
+  "Installation Information" for a User Product means any methods,
+procedures, authorization keys, or other information required to install
+and execute modified versions of a covered work in that User Product from
+a modified version of its Corresponding Source.  The information must
+suffice to ensure that the continued functioning of the modified object
+code is in no case prevented or interfered with solely because
+modification has been made.
+
+  If you convey an object code work under this section in, or with, or
+specifically for use in, a User Product, and the conveying occurs as
+part of a transaction in which the right of possession and use of the
+User Product is transferred to the recipient in perpetuity or for a
+fixed term (regardless of how the transaction is characterized), the
+Corresponding Source conveyed under this section must be accompanied
+by the Installation Information.  But this requirement does not apply
+if neither you nor any third party retains the ability to install
+modified object code on the User Product (for example, the work has
+been installed in ROM).
+
+  The requirement to provide Installation Information does not include a
+requirement to continue to provide support service, warranty, or updates
+for a work that has been modified or installed by the recipient, or for
+the User Product in which it has been modified or installed.  Access to a
+network may be denied when the modification itself materially and
+adversely affects the operation of the network or violates the rules and
+protocols for communication across the network.
+
+  Corresponding Source conveyed, and Installation Information provided,
+in accord with this section must be in a format that is publicly
+documented (and with an implementation available to the public in
+source code form), and must require no special password or key for
+unpacking, reading or copying.
+
+  7. Additional Terms.
+
+  "Additional permissions" are terms that supplement the terms of this
+License by making exceptions from one or more of its conditions.
+Additional permissions that are applicable to the entire Program shall
+be treated as though they were included in this License, to the extent
+that they are valid under applicable law.  If additional permissions
+apply only to part of the Program, that part may be used separately
+under those permissions, but the entire Program remains governed by
+this License without regard to the additional permissions.
+
+  When you convey a copy of a covered work, you may at your option
+remove any additional permissions from that copy, or from any part of
+it.  (Additional permissions may be written to require their own
+removal in certain cases when you modify the work.)  You may place
+additional permissions on material, added by you to a covered work,
+for which you have or can give appropriate copyright permission.
+
+  Notwithstanding any other provision of this License, for material you
+add to a covered work, you may (if authorized by the copyright holders of
+that material) supplement the terms of this License with terms:
+
+    a) Disclaiming warranty or limiting liability differently from the
+    terms of sections 15 and 16 of this License; or
+
+    b) Requiring preservation of specified reasonable legal notices or
+    author attributions in that material or in the Appropriate Legal
+    Notices displayed by works containing it; or
+
+    c) Prohibiting misrepresentation of the origin of that material, or
+    requiring that modified versions of such material be marked in
+    reasonable ways as different from the original version; or
+
+    d) Limiting the use for publicity purposes of names of licensors or
+    authors of the material; or
+
+    e) Declining to grant rights under trademark law for use of some
+    trade names, trademarks, or service marks; or
+
+    f) Requiring indemnification of licensors and authors of that
+    material by anyone who conveys the material (or modified versions of
+    it) with contractual assumptions of liability to the recipient, for
+    any liability that these contractual assumptions directly impose on
+    those licensors and authors.
+
+  All other non-permissive additional terms are considered "further
+restrictions" within the meaning of section 10.  If the Program as you
+received it, or any part of it, contains a notice stating that it is
+governed by this License along with a term that is a further
+restriction, you may remove that term.  If a license document contains
+a further restriction but permits relicensing or conveying under this
+License, you may add to a covered work material governed by the terms
+of that license document, provided that the further restriction does
+not survive such relicensing or conveying.
+
+  If you add terms to a covered work in accord with this section, you
+must place, in the relevant source files, a statement of the
+additional terms that apply to those files, or a notice indicating
+where to find the applicable terms.
+
+  Additional terms, permissive or non-permissive, may be stated in the
+form of a separately written license, or stated as exceptions;
+the above requirements apply either way.
+
+  8. Termination.
+
+  You may not propagate or modify a covered work except as expressly
+provided under this License.  Any attempt otherwise to propagate or
+modify it is void, and will automatically terminate your rights under
+this License (including any patent licenses granted under the third
+paragraph of section 11).
+
+  However, if you cease all violation of this License, then your
+license from a particular copyright holder is reinstated (a)
+provisionally, unless and until the copyright holder explicitly and
+finally terminates your license, and (b) permanently, if the copyright
+holder fails to notify you of the violation by some reasonable means
+prior to 60 days after the cessation.
+
+  Moreover, your license from a particular copyright holder is
+reinstated permanently if the copyright holder notifies you of the
+violation by some reasonable means, this is the first time you have
+received notice of violation of this License (for any work) from that
+copyright holder, and you cure the violation prior to 30 days after
+your receipt of the notice.
+
+  Termination of your rights under this section does not terminate the
+licenses of parties who have received copies or rights from you under
+this License.  If your rights have been terminated and not permanently
+reinstated, you do not qualify to receive new licenses for the same
+material under section 10.
+
+  9. Acceptance Not Required for Having Copies.
+
+  You are not required to accept this License in order to receive or
+run a copy of the Program.  Ancillary propagation of a covered work
+occurring solely as a consequence of using peer-to-peer transmission
+to receive a copy likewise does not require acceptance.  However,
+nothing other than this License grants you permission to propagate or
+modify any covered work.  These actions infringe copyright if you do
+not accept this License.  Therefore, by modifying or propagating a
+covered work, you indicate your acceptance of this License to do so.
+
+  10. Automatic Licensing of Downstream Recipients.
+
+  Each time you convey a covered work, the recipient automatically
+receives a license from the original licensors, to run, modify and
+propagate that work, subject to this License.  You are not responsible
+for enforcing compliance by third parties with this License.
+
+  An "entity transaction" is a transaction transferring control of an
+organization, or substantially all assets of one, or subdividing an
+organization, or merging organizations.  If propagation of a covered
+work results from an entity transaction, each party to that
+transaction who receives a copy of the work also receives whatever
+licenses to the work the party's predecessor in interest had or could
+give under the previous paragraph, plus a right to possession of the
+Corresponding Source of the work from the predecessor in interest, if
+the predecessor has it or can get it with reasonable efforts.
+
+  You may not impose any further restrictions on the exercise of the
+rights granted or affirmed under this License.  For example, you may
+not impose a license fee, royalty, or other charge for exercise of
+rights granted under this License, and you may not initiate litigation
+(including a cross-claim or counterclaim in a lawsuit) alleging that
+any patent claim is infringed by making, using, selling, offering for
+sale, or importing the Program or any portion of it.
+
+  11. Patents.
+
+  A "contributor" is a copyright holder who authorizes use under this
+License of the Program or a work on which the Program is based.  The
+work thus licensed is called the contributor's "contributor version".
+
+  A contributor's "essential patent claims" are all patent claims
+owned or controlled by the contributor, whether already acquired or
+hereafter acquired, that would be infringed by some manner, permitted
+by this License, of making, using, or selling its contributor version,
+but do not include claims that would be infringed only as a
+consequence of further modification of the contributor version.  For
+purposes of this definition, "control" includes the right to grant
+patent sublicenses in a manner consistent with the requirements of
+this License.
+
+  Each contributor grants you a non-exclusive, worldwide, royalty-free
+patent license under the contributor's essential patent claims, to
+make, use, sell, offer for sale, import and otherwise run, modify and
+propagate the contents of its contributor version.
+
+  In the following three paragraphs, a "patent license" is any express
+agreement or commitment, however denominated, not to enforce a patent
+(such as an express permission to practice a patent or covenant not to
+sue for patent infringement).  To "grant" such a patent license to a
+party means to make such an agreement or commitment not to enforce a
+patent against the party.
+
+  If you convey a covered work, knowingly relying on a patent license,
+and the Corresponding Source of the work is not available for anyone
+to copy, free of charge and under the terms of this License, through a
+publicly available network server or other readily accessible means,
+then you must either (1) cause the Corresponding Source to be so
+available, or (2) arrange to deprive yourself of the benefit of the
+patent license for this particular work, or (3) arrange, in a manner
+consistent with the requirements of this License, to extend the patent
+license to downstream recipients.  "Knowingly relying" means you have
+actual knowledge that, but for the patent license, your conveying the
+covered work in a country, or your recipient's use of the covered work
+in a country, would infringe one or more identifiable patents in that
+country that you have reason to believe are valid.
+
+  If, pursuant to or in connection with a single transaction or
+arrangement, you convey, or propagate by procuring conveyance of, a
+covered work, and grant a patent license to some of the parties
+receiving the covered work authorizing them to use, propagate, modify
+or convey a specific copy of the covered work, then the patent license
+you grant is automatically extended to all recipients of the covered
+work and works based on it.
+
+  A patent license is "discriminatory" if it does not include within
+the scope of its coverage, prohibits the exercise of, or is
+conditioned on the non-exercise of one or more of the rights that are
+specifically granted under this License.  You may not convey a covered
+work if you are a party to an arrangement with a third party that is
+in the business of distributing software, under which you make payment
+to the third party based on the extent of your activity of conveying
+the work, and under which the third party grants, to any of the
+parties who would receive the covered work from you, a discriminatory
+patent license (a) in connection with copies of the covered work
+conveyed by you (or copies made from those copies), or (b) primarily
+for and in connection with specific products or compilations that
+contain the covered work, unless you entered into that arrangement,
+or that patent license was granted, prior to 28 March 2007.
+
+  Nothing in this License shall be construed as excluding or limiting
+any implied license or other defenses to infringement that may
+otherwise be available to you under applicable patent law.
+
+  12. No Surrender of Others' Freedom.
+
+  If conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot convey a
+covered work so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you may
+not convey it at all.  For example, if you agree to terms that obligate you
+to collect a royalty for further conveying from those to whom you convey
+the Program, the only way you could satisfy both those terms and this
+License would be to refrain entirely from conveying the Program.
+
+  13. Remote Network Interaction; Use with the GNU General Public License.
+
+  Notwithstanding any other provision of this License, if you modify the
+Program, your modified version must prominently offer all users
+interacting with it remotely through a computer network (if your version
+supports such interaction) an opportunity to receive the Corresponding
+Source of your version by providing access to the Corresponding Source
+from a network server at no charge, through some standard or customary
+means of facilitating copying of software.  This Corresponding Source
+shall include the Corresponding Source for any work covered by version 3
+of the GNU General Public License that is incorporated pursuant to the
+following paragraph.
+
+  Notwithstanding any other provision of this License, you have
+permission to link or combine any covered work with a work licensed
+under version 3 of the GNU General Public License into a single
+combined work, and to convey the resulting work.  The terms of this
+License will continue to apply to the part which is the covered work,
+but the work with which it is combined will remain governed by version
+3 of the GNU General Public License.
+
+  14. Revised Versions of this License.
+
+  The Free Software Foundation may publish revised and/or new versions of
+the GNU Affero General Public License from time to time.  Such new versions
+will be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+  Each version is given a distinguishing version number.  If the
+Program specifies that a certain numbered version of the GNU Affero General
+Public License "or any later version" applies to it, you have the
+option of following the terms and conditions either of that numbered
+version or of any later version published by the Free Software
+Foundation.  If the Program does not specify a version number of the
+GNU Affero General Public License, you may choose any version ever published
+by the Free Software Foundation.
+
+  If the Program specifies that a proxy can decide which future
+versions of the GNU Affero General Public License can be used, that proxy's
+public statement of acceptance of a version permanently authorizes you
+to choose that version for the Program.
+
+  Later license versions may give you additional or different
+permissions.  However, no additional obligations are imposed on any
+author or copyright holder as a result of your choosing to follow a
+later version.
+
+  15. Disclaimer of Warranty.
+
+  THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
+APPLICABLE LAW.  EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
+HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
+OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
+IS WITH YOU.  SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
+ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+  16. Limitation of Liability.
+
+  IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
+THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
+GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
+USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
+DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
+PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
+EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGES.
+
+  17. Interpretation of Sections 15 and 16.
+
+  If the disclaimer of warranty and limitation of liability provided
+above cannot be given local legal effect according to their terms,
+reviewing courts shall apply local law that most closely approximates
+an absolute waiver of all civil liability in connection with the
+Program, unless a warranty or assumption of liability accompanies a
+copy of the Program in return for a fee.
+
+                     END OF TERMS AND CONDITIONS
+
+            How to Apply These Terms to Your New Programs
+
+  If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+  To do so, attach the following notices to the program.  It is safest
+to attach them to the start of each source file to most effectively
+state the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the program's name and a brief idea of what it does.>
+    Copyright (C) <year>  <name of author>
+
+    This program is free software: you can redistribute it and/or modify
+    it under the terms of the GNU Affero General Public License as published
+    by the Free Software Foundation, either version 3 of the License, or
+    (at your option) any later version.
+
+    This program 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 Affero General Public License for more details.
+
+    You should have received a copy of the GNU Affero General Public License
+    along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+Also add information on how to contact you by electronic and paper mail.
+
+  If your software can interact with users remotely through a computer
+network, you should also make sure that it provides a way for users to
+get its source.  For example, if your program is a web application, its
+interface could display a "Source" link that leads users to an archive
+of the code.  There are many ways you could offer source, and different
+solutions will be better for different programs; see section 13 for the
+specific requirements.
+
+  You should also get your employer (if you work as a programmer) or school,
+if any, to sign a "copyright disclaimer" for the program, if necessary.
+For more information on this, and how to apply and follow the GNU AGPL, see
+<http://www.gnu.org/licenses/>.
\ No newline at end of file
diff --git a/vendor/github.com/bytom/common/README.md b/vendor/github.com/bytom/common/README.md
new file mode 100644 (file)
index 0000000..adea022
--- /dev/null
@@ -0,0 +1,140 @@
+# common
+
+[![Build
+Status](https://travis-ci.org/ethereum/go-ethereum.png?branch=master)](https://travis-ci.org/ethereum/go-ethereum)
+
+The common package contains the ethereum utility library.
+
+# Installation
+
+As a subdirectory the main go-ethereum repository, you get it with
+`go get github.com/ethereum/go-ethereum`.
+
+# Usage
+
+## RLP (Recursive Linear Prefix) Encoding
+
+RLP Encoding is an encoding scheme used by the Ethereum project. It
+encodes any native value or list to a string.
+
+More in depth information about the encoding scheme see the
+[Wiki](http://wiki.ethereum.org/index.php/RLP) article.
+
+```go
+rlp := common.Encode("doge")
+fmt.Printf("%q\n", rlp) // => "\0x83dog"
+
+rlp = common.Encode([]interface{}{"dog", "cat"})
+fmt.Printf("%q\n", rlp) // => "\0xc8\0x83dog\0x83cat"
+decoded := common.Decode(rlp)
+fmt.Println(decoded) // => ["dog" "cat"]
+```
+
+## Patricia Trie
+
+Patricie Tree is a merkle trie used by the Ethereum project.
+
+More in depth information about the (modified) Patricia Trie can be
+found on the [Wiki](http://wiki.ethereum.org/index.php/Patricia_Tree).
+
+The patricia trie uses a db as backend and could be anything as long as
+it satisfies the Database interface found in `common/db.go`.
+
+```go
+db := NewDatabase()
+
+// db, root
+trie := common.NewTrie(db, "")
+
+trie.Put("puppy", "dog")
+trie.Put("horse", "stallion")
+trie.Put("do", "verb")
+trie.Put("doge", "coin")
+
+// Look up the key "do" in the trie
+out := trie.Get("do")
+fmt.Println(out) // => verb
+
+trie.Delete("puppy")
+```
+
+The patricia trie, in combination with RLP, provides a robust,
+cryptographically authenticated data structure that can be used to store
+all (key, value) bindings.
+
+```go
+// ... Create db/trie
+
+// Note that RLP uses interface slices as list
+value := common.Encode([]interface{}{"one", 2, "three", []interface{}{42}})
+// Store the RLP encoded value of the list
+trie.Put("mykey", value)
+```
+
+## Value
+
+Value is a Generic Value which is used in combination with RLP data or
+`([])interface{}` structures. It may serve as a bridge between RLP data
+and actual real values and takes care of all the type checking and
+casting. Unlike Go's `reflect.Value` it does not panic if it's unable to
+cast to the requested value. It simple returns the base value of that
+type (e.g. `Slice()` returns []interface{}, `Uint()` return 0, etc).
+
+### Creating a new Value
+
+`NewEmptyValue()` returns a new \*Value with it's initial value set to a
+`[]interface{}`
+
+`AppendList()` appends a list to the current value.
+
+`Append(v)` appends the value (v) to the current value/list.
+
+```go
+val := common.NewEmptyValue().Append(1).Append("2")
+val.AppendList().Append(3)
+```
+
+### Retrieving values
+
+`Get(i)` returns the `i` item in the list.
+
+`Uint()` returns the value as an unsigned int64.
+
+`Slice()` returns the value as a interface slice.
+
+`Str()` returns the value as a string.
+
+`Bytes()` returns the value as a byte slice.
+
+`Len()` assumes current to be a slice and returns its length.
+
+`Byte()` returns the value as a single byte.
+
+```go
+val := common.NewValue([]interface{}{1,"2",[]interface{}{3}})
+val.Get(0).Uint() // => 1
+val.Get(1).Str()  // => "2"
+s := val.Get(2)   // => Value([]interface{}{3})
+s.Get(0).Uint()   // => 3
+```
+
+## Decoding
+
+Decoding streams of RLP data is simplified
+
+```go
+val := common.NewValueFromBytes(rlpData)
+val.Get(0).Uint()
+```
+
+## Encoding
+
+Encoding from Value to RLP is done with the `Encode` method. The
+underlying value can be anything RLP can encode (int, str, lists, bytes)
+
+```go
+val := common.NewValue([]interface{}{1,"2",[]interface{}{3}})
+rlp := val.Encode()
+// Store the rlp data
+Store(rlp)
+```
diff --git a/vendor/github.com/bytom/common/address.go b/vendor/github.com/bytom/common/address.go
new file mode 100644 (file)
index 0000000..4c81d94
--- /dev/null
@@ -0,0 +1,368 @@
+package common
+
+import (
+       "bytes"
+       "errors"
+       "fmt"
+       "strings"
+
+       "github.com/bytom/common/bech32"
+       "github.com/bytom/consensus"
+)
+
+var (
+       // ErrChecksumMismatch describes an error where decoding failed due
+       // to a bad checksum.
+       ErrChecksumMismatch = errors.New("checksum mismatch")
+
+       // ErrUnknownAddressType describes an error where an address can not
+       // decoded as a specific address type due to the string encoding
+       // begining with an identifier byte unknown to any standard or
+       // registered (via chaincfg.Register) network.
+       ErrUnknownAddressType = errors.New("unknown address type")
+
+       // ErrAddressCollision describes an error where an address can not
+       // be uniquely determined as either a pay-to-pubkey-hash or
+       // pay-to-script-hash address since the leading identifier is used for
+       // describing both address kinds, but for different networks.  Rather
+       // than assuming or defaulting to one or the other, this error is
+       // returned and the caller must decide how to decode the address.
+       ErrAddressCollision = errors.New("address collision")
+
+       // ErrUnsupportedWitnessVer describes an error where a segwit address being
+       // decoded has an unsupported witness version.
+       ErrUnsupportedWitnessVer = errors.New("unsupported witness version")
+
+       // ErrUnsupportedWitnessProgLen describes an error where a segwit address
+       // being decoded has an unsupported witness program length.
+       ErrUnsupportedWitnessProgLen = errors.New("unsupported witness program length")
+)
+
+// Address is an interface type for any type of destination a transaction
+// output may spend to.  This includes pay-to-pubkey (P2PK), pay-to-pubkey-hash
+// (P2PKH), and pay-to-script-hash (P2SH).  Address is designed to be generic
+// enough that other kinds of addresses may be added in the future without
+// changing the decoding and encoding API.
+type Address interface {
+       // String returns the string encoding of the transaction output
+       // destination.
+       //
+       // Please note that String differs subtly from EncodeAddress: String
+       // will return the value as a string without any conversion, while
+       // EncodeAddress may convert destination types (for example,
+       // converting pubkeys to P2PKH addresses) before encoding as a
+       // payment address string.
+       String() string
+
+       // EncodeAddress returns the string encoding of the payment address
+       // associated with the Address value.  See the comment on String
+       // for how this method differs from String.
+       EncodeAddress() string
+
+       // ScriptAddress returns the raw bytes of the address to be used
+       // when inserting the address into a txout's script.
+       ScriptAddress() []byte
+
+       // IsForNet returns whether or not the address is associated with the
+       // passed bytom network.
+       IsForNet(*consensus.Params) bool
+}
+
+// encodeSegWitAddress creates a bech32 encoded address string representation
+// from witness version and witness program.
+func encodeSegWitAddress(hrp string, witnessVersion byte, witnessProgram []byte) (string, error) {
+       // Group the address bytes into 5 bit groups, as this is what is used to
+       // encode each character in the address string.
+       converted, err := bech32.ConvertBits(witnessProgram, 8, 5, true)
+       if err != nil {
+               return "", err
+       }
+
+       // Concatenate the witness version and program, and encode the resulting
+       // bytes using bech32 encoding.
+       combined := make([]byte, len(converted)+1)
+       combined[0] = witnessVersion
+       copy(combined[1:], converted)
+       bech, err := bech32.Bech32Encode(hrp, combined)
+       if err != nil {
+               return "", err
+       }
+
+       // Check validity by decoding the created address.
+       version, program, err := decodeSegWitAddress(bech)
+       if err != nil {
+               return "", fmt.Errorf("invalid segwit address: %v", err)
+       }
+
+       if version != witnessVersion || !bytes.Equal(program, witnessProgram) {
+               return "", fmt.Errorf("invalid segwit address")
+       }
+
+       return bech, nil
+}
+
+// DecodeAddress decodes the string encoding of an address and returns
+// the Address if addr is a valid encoding for a known address type.
+//
+// The bytom network the address is associated with is extracted if possible.
+// When the address does not encode the network, such as in the case of a raw
+// public key, the address will be associated with the passed defaultNet.
+func DecodeAddress(addr string, param *consensus.Params) (Address, error) {
+       // Bech32 encoded segwit addresses start with a human-readable part
+       // (hrp) followed by '1'. For Bytom mainnet the hrp is "bm", and for
+       // testnet it is "tm". If the address string has a prefix that matches
+       // one of the prefixes for the known networks, we try to decode it as
+       // a segwit address.
+       oneIndex := strings.LastIndexByte(addr, '1')
+       if oneIndex > 1 {
+               prefix := addr[:oneIndex+1]
+               if consensus.IsBech32SegwitPrefix(prefix, param) {
+                       witnessVer, witnessProg, err := decodeSegWitAddress(addr)
+                       if err != nil {
+                               return nil, err
+                       }
+
+                       // We currently only support P2WPKH and P2WSH, which is
+                       // witness version 0.
+                       if witnessVer != 0 {
+                               return nil, ErrUnsupportedWitnessVer
+                       }
+
+                       // The HRP is everything before the found '1'.
+                       hrp := prefix[:len(prefix)-1]
+
+                       switch len(witnessProg) {
+                       case 20:
+                               return newAddressWitnessPubKeyHash(hrp, witnessProg)
+                       case 32:
+                               return newAddressWitnessScriptHash(hrp, witnessProg)
+                       default:
+                               return nil, ErrUnsupportedWitnessProgLen
+                       }
+               }
+       }
+       return nil, ErrUnknownAddressType
+}
+
+// decodeSegWitAddress parses a bech32 encoded segwit address string and
+// returns the witness version and witness program byte representation.
+func decodeSegWitAddress(address string) (byte, []byte, error) {
+       // Decode the bech32 encoded address.
+       _, data, err := bech32.Bech32Decode(address)
+       if err != nil {
+               return 0, nil, err
+       }
+
+       // The first byte of the decoded address is the witness version, it must
+       // exist.
+       if len(data) < 1 {
+               return 0, nil, fmt.Errorf("no witness version")
+       }
+
+       // ...and be <= 16.
+       version := data[0]
+       if version > 16 {
+               return 0, nil, fmt.Errorf("invalid witness version: %v", version)
+       }
+
+       // The remaining characters of the address returned are grouped into
+       // words of 5 bits. In order to restore the original witness program
+       // bytes, we'll need to regroup into 8 bit words.
+       regrouped, err := bech32.ConvertBits(data[1:], 5, 8, false)
+       if err != nil {
+               return 0, nil, err
+       }
+
+       // The regrouped data must be between 2 and 40 bytes.
+       if len(regrouped) < 2 || len(regrouped) > 40 {
+               return 0, nil, fmt.Errorf("invalid data length")
+       }
+
+       // For witness version 0, address MUST be exactly 20 or 32 bytes.
+       if version == 0 && len(regrouped) != 20 && len(regrouped) != 32 {
+               return 0, nil, fmt.Errorf("invalid data length for witness "+
+                       "version 0: %v", len(regrouped))
+       }
+
+       return version, regrouped, nil
+}
+
+// AddressWitnessPubKeyHash is an Address for a pay-to-witness-pubkey-hash
+// (P2WPKH) output. See BIP 173 for further details regarding native segregated
+// witness address encoding:
+// https://github.com/bitcoin/bips/blob/master/bip-0173.mediawiki
+type AddressWitnessPubKeyHash struct {
+       hrp            string
+       witnessVersion byte
+       witnessProgram [20]byte
+}
+
+// NewAddressWitnessPubKeyHash returns a new AddressWitnessPubKeyHash.
+func NewAddressWitnessPubKeyHash(witnessProg []byte, param *consensus.Params) (*AddressWitnessPubKeyHash, error) {
+       return newAddressWitnessPubKeyHash(param.Bech32HRPSegwit, witnessProg)
+}
+
+// newAddressWitnessPubKeyHash is an internal helper function to create an
+// AddressWitnessPubKeyHash with a known human-readable part, rather than
+// looking it up through its parameters.
+func newAddressWitnessPubKeyHash(hrp string, witnessProg []byte) (*AddressWitnessPubKeyHash, error) {
+       // Check for valid program length for witness version 0, which is 20
+       // for P2WPKH.
+       if len(witnessProg) != 20 {
+               return nil, errors.New("witness program must be 20 bytes for p2wpkh")
+       }
+
+       addr := &AddressWitnessPubKeyHash{
+               hrp:            strings.ToLower(hrp),
+               witnessVersion: 0x00,
+       }
+
+       copy(addr.witnessProgram[:], witnessProg)
+
+       return addr, nil
+}
+
+// EncodeAddress returns the bech32 string encoding of an
+// AddressWitnessPubKeyHash.
+// Part of the Address interface.
+func (a *AddressWitnessPubKeyHash) EncodeAddress() string {
+       str, err := encodeSegWitAddress(a.hrp, a.witnessVersion,
+               a.witnessProgram[:])
+       if err != nil {
+               return ""
+       }
+       return str
+}
+
+// ScriptAddress returns the witness program for this address.
+// Part of the Address interface.
+func (a *AddressWitnessPubKeyHash) ScriptAddress() []byte {
+       return a.witnessProgram[:]
+}
+
+// IsForNet returns whether or not the AddressWitnessPubKeyHash is associated
+// with the passed bitcoin network.
+// Part of the Address interface.
+func (a *AddressWitnessPubKeyHash) IsForNet(param *consensus.Params) bool {
+       return a.hrp == param.Bech32HRPSegwit
+}
+
+// String returns a human-readable string for the AddressWitnessPubKeyHash.
+// This is equivalent to calling EncodeAddress, but is provided so the type
+// can be used as a fmt.Stringer.
+// Part of the Address interface.
+func (a *AddressWitnessPubKeyHash) String() string {
+       return a.EncodeAddress()
+}
+
+// Hrp returns the human-readable part of the bech32 encoded
+// AddressWitnessPubKeyHash.
+func (a *AddressWitnessPubKeyHash) Hrp() string {
+       return a.hrp
+}
+
+// WitnessVersion returns the witness version of the AddressWitnessPubKeyHash.
+func (a *AddressWitnessPubKeyHash) WitnessVersion() byte {
+       return a.witnessVersion
+}
+
+// WitnessProgram returns the witness program of the AddressWitnessPubKeyHash.
+func (a *AddressWitnessPubKeyHash) WitnessProgram() []byte {
+       return a.witnessProgram[:]
+}
+
+// Hash160 returns the witness program of the AddressWitnessPubKeyHash as a
+// byte array.
+func (a *AddressWitnessPubKeyHash) Hash160() *[20]byte {
+       return &a.witnessProgram
+}
+
+// AddressWitnessScriptHash is an Address for a pay-to-witness-script-hash
+// (P2WSH) output. See BIP 173 for further details regarding native segregated
+// witness address encoding:
+// https://github.com/bitcoin/bips/blob/master/bip-0173.mediawiki
+type AddressWitnessScriptHash struct {
+       hrp            string
+       witnessVersion byte
+       witnessProgram [32]byte
+}
+
+// NewAddressWitnessScriptHash returns a new AddressWitnessPubKeyHash.
+func NewAddressWitnessScriptHash(witnessProg []byte, param *consensus.Params) (*AddressWitnessScriptHash, error) {
+       return newAddressWitnessScriptHash(param.Bech32HRPSegwit, witnessProg)
+}
+
+// newAddressWitnessScriptHash is an internal helper function to create an
+// AddressWitnessScriptHash with a known human-readable part, rather than
+// looking it up through its parameters.
+func newAddressWitnessScriptHash(hrp string, witnessProg []byte) (*AddressWitnessScriptHash, error) {
+       // Check for valid program length for witness version 0, which is 32
+       // for P2WSH.
+       if len(witnessProg) != 32 {
+               return nil, errors.New("witness program must be 32 bytes for p2wsh")
+       }
+
+       addr := &AddressWitnessScriptHash{
+               hrp:            strings.ToLower(hrp),
+               witnessVersion: 0x00,
+       }
+
+       copy(addr.witnessProgram[:], witnessProg)
+
+       return addr, nil
+}
+
+// EncodeAddress returns the bech32 string encoding of an
+// AddressWitnessScriptHash.
+// Part of the Address interface.
+func (a *AddressWitnessScriptHash) EncodeAddress() string {
+       str, err := encodeSegWitAddress(a.hrp, a.witnessVersion,
+               a.witnessProgram[:])
+       if err != nil {
+               return ""
+       }
+       return str
+}
+
+// ScriptAddress returns the witness program for this address.
+// Part of the Address interface.
+func (a *AddressWitnessScriptHash) ScriptAddress() []byte {
+       return a.witnessProgram[:]
+}
+
+// IsForNet returns whether or not the AddressWitnessScriptHash is associated
+// with the passed bytom network.
+// Part of the Address interface.
+func (a *AddressWitnessScriptHash) IsForNet(param *consensus.Params) bool {
+       return a.hrp == param.Bech32HRPSegwit
+}
+
+// String returns a human-readable string for the AddressWitnessScriptHash.
+// This is equivalent to calling EncodeAddress, but is provided so the type
+// can be used as a fmt.Stringer.
+// Part of the Address interface.
+func (a *AddressWitnessScriptHash) String() string {
+       return a.EncodeAddress()
+}
+
+// Hrp returns the human-readable part of the bech32 encoded
+// AddressWitnessScriptHash.
+func (a *AddressWitnessScriptHash) Hrp() string {
+       return a.hrp
+}
+
+// WitnessVersion returns the witness version of the AddressWitnessScriptHash.
+func (a *AddressWitnessScriptHash) WitnessVersion() byte {
+       return a.witnessVersion
+}
+
+// WitnessProgram returns the witness program of the AddressWitnessScriptHash.
+func (a *AddressWitnessScriptHash) WitnessProgram() []byte {
+       return a.witnessProgram[:]
+}
+
+// Sha256 returns the witness program of the AddressWitnessPubKeyHash as a
+// byte array.
+func (a *AddressWitnessScriptHash) Sha256() *[32]byte {
+       return &a.witnessProgram
+}
diff --git a/vendor/github.com/bytom/common/bech32/bech32.go b/vendor/github.com/bytom/common/bech32/bech32.go
new file mode 100644 (file)
index 0000000..dc0c84f
--- /dev/null
@@ -0,0 +1,248 @@
+package bech32
+
+import (
+       "fmt"
+       "strings"
+)
+
+const charset = "qpzry9x8gf2tvdw0s3jn54khce6mua7l"
+
+var gen = []int{0x3b6a57b2, 0x26508e6d, 0x1ea119fa, 0x3d4233dd, 0x2a1462b3}
+
+// Decode decodes a bech32 encoded string, returning the human-readable
+// part and the data part excluding the checksum.
+func Bech32Decode(bech string) (string, []byte, error) {
+       // The maximum allowed length for a bech32 string is 90. It must also
+       // be at least 8 characters, since it needs a non-empty HRP, a
+       // separator, and a 6 character checksum.
+       if len(bech) < 8 || len(bech) > 90 {
+               return "", nil, fmt.Errorf("invalid bech32 string length %d",
+                       len(bech))
+       }
+       // Only ASCII characters between 33 and 126 are allowed.
+       for i := 0; i < len(bech); i++ {
+               if bech[i] < 33 || bech[i] > 126 {
+                       return "", nil, fmt.Errorf("invalid character in "+
+                               "string: '%c'", bech[i])
+               }
+       }
+
+       // The characters must be either all lowercase or all uppercase.
+       lower := strings.ToLower(bech)
+       upper := strings.ToUpper(bech)
+       if bech != lower && bech != upper {
+               return "", nil, fmt.Errorf("string not all lowercase or all " +
+                       "uppercase")
+       }
+
+       // We'll work with the lowercase string from now on.
+       bech = lower
+
+       // The string is invalid if the last '1' is non-existent, it is the
+       // first character of the string (no human-readable part) or one of the
+       // last 6 characters of the string (since checksum cannot contain '1'),
+       // or if the string is more than 90 characters in total.
+       one := strings.LastIndexByte(bech, '1')
+       if one < 1 || one+7 > len(bech) {
+               return "", nil, fmt.Errorf("invalid index of 1")
+       }
+
+       // The human-readable part is everything before the last '1'.
+       hrp := bech[:one]
+       data := bech[one+1:]
+
+       // Each character corresponds to the byte with value of the index in
+       // 'charset'.
+       decoded, err := toBytes(data)
+       if err != nil {
+               return "", nil, fmt.Errorf("failed converting data to bytes: "+
+                       "%v", err)
+       }
+
+       if !bech32VerifyChecksum(hrp, decoded) {
+               moreInfo := ""
+               checksum := bech[len(bech)-6:]
+               expected, err := toChars(bech32Checksum(hrp,
+                       decoded[:len(decoded)-6]))
+               if err == nil {
+                       moreInfo = fmt.Sprintf("Expected %v, got %v.",
+                               expected, checksum)
+               }
+               return "", nil, fmt.Errorf("checksum failed. " + moreInfo)
+       }
+
+       // We exclude the last 6 bytes, which is the checksum.
+       return hrp, decoded[:len(decoded)-6], nil
+}
+
+// Encode encodes a byte slice into a bech32 string with the
+// human-readable part hrb. Note that the bytes must each encode 5 bits
+// (base32).
+func Bech32Encode(hrp string, data []byte) (string, error) {
+       // Calculate the checksum of the data and append it at the end.
+       checksum := bech32Checksum(hrp, data)
+       combined := append(data, checksum...)
+
+       // The resulting bech32 string is the concatenation of the hrp, the
+       // separator 1, data and checksum. Everything after the separator is
+       // represented using the specified charset.
+       dataChars, err := toChars(combined)
+       if err != nil {
+               return "", fmt.Errorf("unable to convert data bytes to chars: "+
+                       "%v", err)
+       }
+       return hrp + "1" + dataChars, nil
+}
+
+// toBytes converts each character in the string 'chars' to the value of the
+// index of the correspoding character in 'charset'.
+func toBytes(chars string) ([]byte, error) {
+       decoded := make([]byte, 0, len(chars))
+       for i := 0; i < len(chars); i++ {
+               index := strings.IndexByte(charset, chars[i])
+               if index < 0 {
+                       return nil, fmt.Errorf("invalid character not part of "+
+                               "charset: %v", chars[i])
+               }
+               decoded = append(decoded, byte(index))
+       }
+       return decoded, nil
+}
+
+// toChars converts the byte slice 'data' to a string where each byte in 'data'
+// encodes the index of a character in 'charset'.
+func toChars(data []byte) (string, error) {
+       result := make([]byte, 0, len(data))
+       for _, b := range data {
+               if int(b) >= len(charset) {
+                       return "", fmt.Errorf("invalid data byte: %v", b)
+               }
+               result = append(result, charset[b])
+       }
+       return string(result), nil
+}
+
+// ConvertBits converts a byte slice where each byte is encoding fromBits bits,
+// to a byte slice where each byte is encoding toBits bits.
+func ConvertBits(data []byte, fromBits, toBits uint8, pad bool) ([]byte, error) {
+       if fromBits < 1 || fromBits > 8 || toBits < 1 || toBits > 8 {
+               return nil, fmt.Errorf("only bit groups between 1 and 8 allowed")
+       }
+
+       // The final bytes, each byte encoding toBits bits.
+       var regrouped []byte
+
+       // Keep track of the next byte we create and how many bits we have
+       // added to it out of the toBits goal.
+       nextByte := byte(0)
+       filledBits := uint8(0)
+
+       for _, b := range data {
+
+               // Discard unused bits.
+               b = b << (8 - fromBits)
+
+               // How many bits remaining to extract from the input data.
+               remFromBits := fromBits
+               for remFromBits > 0 {
+                       // How many bits remaining to be added to the next byte.
+                       remToBits := toBits - filledBits
+
+                       // The number of bytes to next extract is the minimum of
+                       // remFromBits and remToBits.
+                       toExtract := remFromBits
+                       if remToBits < toExtract {
+                               toExtract = remToBits
+                       }
+
+                       // Add the next bits to nextByte, shifting the already
+                       // added bits to the left.
+                       nextByte = (nextByte << toExtract) | (b >> (8 - toExtract))
+
+                       // Discard the bits we just extracted and get ready for
+                       // next iteration.
+                       b = b << toExtract
+                       remFromBits -= toExtract
+                       filledBits += toExtract
+
+                       // If the nextByte is completely filled, we add it to
+                       // our regrouped bytes and start on the next byte.
+                       if filledBits == toBits {
+                               regrouped = append(regrouped, nextByte)
+                               filledBits = 0
+                               nextByte = 0
+                       }
+               }
+       }
+
+       // We pad any unfinished group if specified.
+       if pad && filledBits > 0 {
+               nextByte = nextByte << (toBits - filledBits)
+               regrouped = append(regrouped, nextByte)
+               filledBits = 0
+               nextByte = 0
+       }
+
+       // Any incomplete group must be <= 4 bits, and all zeroes.
+       if filledBits > 0 && (filledBits > 4 || nextByte != 0) {
+               return nil, fmt.Errorf("invalid incomplete group")
+       }
+
+       return regrouped, nil
+}
+
+// For more details on the checksum calculation, please refer to BIP 173.
+func bech32Checksum(hrp string, data []byte) []byte {
+       // Convert the bytes to list of integers, as this is needed for the
+       // checksum calculation.
+       integers := make([]int, len(data))
+       for i, b := range data {
+               integers[i] = int(b)
+       }
+       values := append(bech32HrpExpand(hrp), integers...)
+       values = append(values, []int{0, 0, 0, 0, 0, 0}...)
+       polymod := bech32Polymod(values) ^ 1
+       var res []byte
+       for i := 0; i < 6; i++ {
+               res = append(res, byte((polymod>>uint(5*(5-i)))&31))
+       }
+       return res
+}
+
+// For more details on the polymod calculation, please refer to BIP 173.
+func bech32Polymod(values []int) int {
+       chk := 1
+       for _, v := range values {
+               b := chk >> 25
+               chk = (chk&0x1ffffff)<<5 ^ v
+               for i := 0; i < 5; i++ {
+                       if (b>>uint(i))&1 == 1 {
+                               chk ^= gen[i]
+                       }
+               }
+       }
+       return chk
+}
+
+// For more details on HRP expansion, please refer to BIP 173.
+func bech32HrpExpand(hrp string) []int {
+       v := make([]int, 0, len(hrp)*2+1)
+       for i := 0; i < len(hrp); i++ {
+               v = append(v, int(hrp[i]>>5))
+       }
+       v = append(v, 0)
+       for i := 0; i < len(hrp); i++ {
+               v = append(v, int(hrp[i]&31))
+       }
+       return v
+}
+
+// For more details on the checksum verification, please refer to BIP 173.
+func bech32VerifyChecksum(hrp string, data []byte) bool {
+       integers := make([]int, len(data))
+       for i, b := range data {
+               integers[i] = int(b)
+       }
+       concat := append(bech32HrpExpand(hrp), integers...)
+       return bech32Polymod(concat) == 1
+}
diff --git a/vendor/github.com/bytom/common/bech32/doc.go b/vendor/github.com/bytom/common/bech32/doc.go
new file mode 100644 (file)
index 0000000..46a4e33
--- /dev/null
@@ -0,0 +1,11 @@
+/*
+Package bech32 provides a Go implementation of the bech32 format specified in
+BIP 173.
+
+Bech32 strings consist of a human-readable part (hrp), followed by the
+separator 1, then a checksummed data part encoded using the 32 characters
+"qpzry9x8gf2tvdw0s3jn54khce6mua7l".
+
+More info: https://github.com/bitcoin/bips/blob/master/bip-0173.mediawiki
+*/
+package bech32
diff --git a/vendor/github.com/bytom/common/big.go b/vendor/github.com/bytom/common/big.go
new file mode 100644 (file)
index 0000000..25febda
--- /dev/null
@@ -0,0 +1,135 @@
+package common
+
+import "math/big"
+
+// Common big integers often used
+var (
+       Big1     = big.NewInt(1)
+       Big2     = big.NewInt(2)
+       Big3     = big.NewInt(3)
+       Big0     = big.NewInt(0)
+       BigTrue  = Big1
+       BigFalse = Big0
+       Big32    = big.NewInt(32)
+       Big36    = big.NewInt(36)
+       Big97    = big.NewInt(97)
+       Big98    = big.NewInt(98)
+       Big256   = big.NewInt(0xff)
+       Big257   = big.NewInt(257)
+       MaxBig   = String2Big("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff")
+)
+
+// Big pow
+//
+// Returns the power of two big integers
+func BigPow(a, b int) *big.Int {
+       c := new(big.Int)
+       c.Exp(big.NewInt(int64(a)), big.NewInt(int64(b)), big.NewInt(0))
+       return c
+}
+
+// Big
+//
+// Shortcut for new(big.Int).SetString(..., 0)
+func Big(num string) *big.Int {
+       n := new(big.Int)
+       n.SetString(num, 0)
+       return n
+}
+
+// Bytes2Big
+//
+func BytesToBig(data []byte) *big.Int {
+       n := new(big.Int)
+       n.SetBytes(data)
+       return n
+}
+
+func Bytes2Big(data []byte) *big.Int { return BytesToBig(data) }
+
+func BigD(data []byte) *big.Int { return BytesToBig(data) }
+
+func String2Big(num string) *big.Int {
+       n := new(big.Int)
+       n.SetString(num, 0)
+       return n
+}
+
+func BitTest(num *big.Int, i int) bool {
+       return num.Bit(i) > 0
+}
+
+// To256
+//
+// "cast" the big int to a 256 big int (i.e., limit to)
+var tt256 = new(big.Int).Lsh(big.NewInt(1), 256)
+var tt256m1 = new(big.Int).Sub(new(big.Int).Lsh(big.NewInt(1), 256), big.NewInt(1))
+var tt255 = new(big.Int).Lsh(big.NewInt(1), 255)
+
+func U256(x *big.Int) *big.Int {
+       //if x.Cmp(Big0) < 0 {
+       //              return new(big.Int).Add(tt256, x)
+       //      }
+
+       x.And(x, tt256m1)
+       return x
+}
+
+func S256(x *big.Int) *big.Int {
+       if x.Cmp(tt255) < 0 {
+               return x
+       } else {
+               // We don't want to modify x, ever
+               return new(big.Int).Sub(x, tt256)
+       }
+}
+
+func FirstBitSet(v *big.Int) int {
+       for i := 0; i < v.BitLen(); i++ {
+               if v.Bit(i) > 0 {
+                       return i
+               }
+       }
+       return v.BitLen()
+}
+
+// Big to bytes
+//
+// Returns the bytes of a big integer with the size specified by **base**
+// Attempts to pad the byte array with zeros.
+func BigToBytes(num *big.Int, base int) []byte {
+       ret := make([]byte, base/8)
+
+       if len(num.Bytes()) > base/8 {
+               return num.Bytes()
+       }
+
+       return append(ret[:len(ret)-len(num.Bytes())], num.Bytes()...)
+}
+
+// Big copy
+//
+// Creates a copy of the given big integer
+func BigCopy(src *big.Int) *big.Int {
+       return new(big.Int).Set(src)
+}
+
+// Big max
+//
+// Returns the maximum size big integer
+func BigMax(x, y *big.Int) *big.Int {
+       if x.Cmp(y) < 0 {
+               return y
+       }
+       return x
+}
+
+// Big min
+//
+// Returns the minimum size big integer
+func BigMin(x, y *big.Int) *big.Int {
+       if x.Cmp(y) > 0 {
+               return y
+       }
+       return x
+}
diff --git a/vendor/github.com/bytom/common/bytes.go b/vendor/github.com/bytom/common/bytes.go
new file mode 100644 (file)
index 0000000..f30c899
--- /dev/null
@@ -0,0 +1,230 @@
+// Package common contains various helper functions.
+package common
+
+import (
+       "bytes"
+       "encoding/binary"
+       "encoding/hex"
+       "math/big"
+       "strings"
+
+       log "github.com/sirupsen/logrus"
+)
+
+func ToHex(b []byte) string {
+       hex := Bytes2Hex(b)
+       // Prefer output of "0x0" instead of "0x"
+       if len(hex) == 0 {
+               hex = "0"
+       }
+       return "0x" + hex
+}
+
+func FromHex(s string) []byte {
+       if len(s) > 1 {
+               if s[0:2] == "0x" {
+                       s = s[2:]
+               }
+               if len(s)%2 == 1 {
+                       s = "0" + s
+               }
+               return Hex2Bytes(s)
+       }
+       return nil
+}
+
+// Number to bytes
+//
+// Returns the number in bytes with the specified base
+func NumberToBytes(num interface{}, bits int) []byte {
+       buf := new(bytes.Buffer)
+       err := binary.Write(buf, binary.BigEndian, num)
+       if err != nil {
+               log.WithField("err", err).Error("NumberToBytes failed")
+       }
+
+       return buf.Bytes()[buf.Len()-(bits/8):]
+}
+
+// Bytes to number
+//
+// Attempts to cast a byte slice to a unsigned integer
+func BytesToNumber(b []byte) uint64 {
+       var number uint64
+
+       // Make sure the buffer is 64bits
+       data := make([]byte, 8)
+       data = append(data[:len(b)], b...)
+
+       buf := bytes.NewReader(data)
+       err := binary.Read(buf, binary.BigEndian, &number)
+       if err != nil {
+               log.WithField("err", err).Error("BytesToNumber failed")
+       }
+
+       return number
+}
+
+// Read variable int
+//
+// Read a variable length number in big endian byte order
+func ReadVarInt(buff []byte) (ret uint64) {
+       switch l := len(buff); {
+       case l > 4:
+               d := LeftPadBytes(buff, 8)
+               binary.Read(bytes.NewReader(d), binary.BigEndian, &ret)
+       case l > 2:
+               var num uint32
+               d := LeftPadBytes(buff, 4)
+               binary.Read(bytes.NewReader(d), binary.BigEndian, &num)
+               ret = uint64(num)
+       case l > 1:
+               var num uint16
+               d := LeftPadBytes(buff, 2)
+               binary.Read(bytes.NewReader(d), binary.BigEndian, &num)
+               ret = uint64(num)
+       default:
+               var num uint8
+               binary.Read(bytes.NewReader(buff), binary.BigEndian, &num)
+               ret = uint64(num)
+       }
+
+       return
+}
+
+// Copy bytes
+//
+// Returns an exact copy of the provided bytes
+func CopyBytes(b []byte) (copiedBytes []byte) {
+       copiedBytes = make([]byte, len(b))
+       copy(copiedBytes, b)
+
+       return
+}
+
+func HasHexPrefix(str string) bool {
+       l := len(str)
+       return l >= 2 && str[0:2] == "0x"
+}
+
+func IsHex(str string) bool {
+       l := len(str)
+       return l >= 4 && l%2 == 0 && str[0:2] == "0x"
+}
+
+func Bytes2Hex(d []byte) string {
+       return hex.EncodeToString(d)
+}
+
+func Hex2Bytes(str string) []byte {
+       h, _ := hex.DecodeString(str)
+       return h
+}
+
+func StringToByteFunc(str string, cb func(str string) []byte) (ret []byte) {
+       if len(str) > 1 && str[0:2] == "0x" && !strings.Contains(str, "\n") {
+               ret = Hex2Bytes(str[2:])
+       } else {
+               ret = cb(str)
+       }
+
+       return
+}
+
+func FormatData(data string) []byte {
+       if len(data) == 0 {
+               return nil
+       }
+       // Simple stupid
+       d := new(big.Int)
+       if data[0:1] == "\"" && data[len(data)-1:] == "\"" {
+               return RightPadBytes([]byte(data[1:len(data)-1]), 32)
+       } else if len(data) > 1 && data[:2] == "0x" {
+               d.SetBytes(Hex2Bytes(data[2:]))
+       } else {
+               d.SetString(data, 0)
+       }
+
+       return BigToBytes(d, 256)
+}
+
+func ParseData(data ...interface{}) (ret []byte) {
+       for _, item := range data {
+               switch t := item.(type) {
+               case string:
+                       var str []byte
+                       if IsHex(t) {
+                               str = Hex2Bytes(t[2:])
+                       } else {
+                               str = []byte(t)
+                       }
+
+                       ret = append(ret, RightPadBytes(str, 32)...)
+               case []byte:
+                       ret = append(ret, LeftPadBytes(t, 32)...)
+               }
+       }
+
+       return
+}
+
+func RightPadBytes(slice []byte, l int) []byte {
+       if l < len(slice) {
+               return slice
+       }
+
+       padded := make([]byte, l)
+       copy(padded[0:len(slice)], slice)
+
+       return padded
+}
+
+func LeftPadBytes(slice []byte, l int) []byte {
+       if l < len(slice) {
+               return slice
+       }
+
+       padded := make([]byte, l)
+       copy(padded[l-len(slice):], slice)
+
+       return padded
+}
+
+func LeftPadString(str string, l int) string {
+       if l < len(str) {
+               return str
+       }
+
+       zeros := Bytes2Hex(make([]byte, (l-len(str))/2))
+
+       return zeros + str
+
+}
+
+func RightPadString(str string, l int) string {
+       if l < len(str) {
+               return str
+       }
+
+       zeros := Bytes2Hex(make([]byte, (l-len(str))/2))
+
+       return str + zeros
+}
+
+func ByteSliceToInterface(slice [][]byte) (ret []interface{}) {
+       for _, i := range slice {
+               ret = append(ret, i)
+       }
+
+       return
+}
+
+func Unit64ToBytes(n uint64) []byte {
+       buf := make([]byte, 8)
+       binary.LittleEndian.PutUint64(buf, n)
+       return buf
+}
+
+func BytesToUnit64(b []byte) uint64 {
+       return binary.LittleEndian.Uint64(b)
+}
diff --git a/vendor/github.com/bytom/common/debug.go b/vendor/github.com/bytom/common/debug.go
new file mode 100644 (file)
index 0000000..2373594
--- /dev/null
@@ -0,0 +1,36 @@
+package common
+
+import (
+       "fmt"
+       "os"
+       "runtime"
+       "runtime/debug"
+       "strings"
+)
+
+// Report gives off a warning requesting the user to submit an issue to the github tracker.
+func Report(extra ...interface{}) {
+       fmt.Fprintln(os.Stderr, "You've encountered a sought after, hard to reproduce bug. Please report this to the developers <3 https://github.com/ethereum/go-ethereum/issues")
+       fmt.Fprintln(os.Stderr, extra...)
+
+       _, file, line, _ := runtime.Caller(1)
+       fmt.Fprintf(os.Stderr, "%v:%v\n", file, line)
+
+       debug.PrintStack()
+
+       fmt.Fprintln(os.Stderr, "#### BUG! PLEASE REPORT ####")
+}
+
+// PrintDepricationWarning prinst the given string in a box using fmt.Println.
+func PrintDepricationWarning(str string) {
+       line := strings.Repeat("#", len(str)+4)
+       emptyLine := strings.Repeat(" ", len(str))
+       fmt.Printf(`
+%s
+# %s #
+# %s #
+# %s #
+%s
+
+`, line, emptyLine, str, emptyLine, line)
+}
diff --git a/vendor/github.com/bytom/common/list.go b/vendor/github.com/bytom/common/list.go
new file mode 100644 (file)
index 0000000..1fb138a
--- /dev/null
@@ -0,0 +1,77 @@
+package common
+
+import (
+       "encoding/json"
+       "reflect"
+       "sync"
+)
+
+// The list type is an anonymous slice handler which can be used
+// for containing any slice type to use in an environment which
+// does not support slice types (e.g., JavaScript, QML)
+type List struct {
+       mut    sync.Mutex
+       val    interface{}
+       list   reflect.Value
+       Length int
+}
+
+// Initialise a new list. Panics if non-slice type is given.
+func NewList(t interface{}) *List {
+       list := reflect.ValueOf(t)
+       if list.Kind() != reflect.Slice {
+               panic("list container initialized with a non-slice type")
+       }
+
+       return &List{sync.Mutex{}, t, list, list.Len()}
+}
+
+func EmptyList() *List {
+       return NewList([]interface{}{})
+}
+
+// Get N element from the embedded slice. Returns nil if OOB.
+func (self *List) Get(i int) interface{} {
+       if self.list.Len() > i {
+               self.mut.Lock()
+               defer self.mut.Unlock()
+
+               i := self.list.Index(i).Interface()
+
+               return i
+       }
+
+       return nil
+}
+
+func (self *List) GetAsJson(i int) interface{} {
+       e := self.Get(i)
+       r, _ := json.Marshal(e)
+       return string(r)
+}
+
+// Appends value at the end of the slice. Panics when incompatible value
+// is given.
+func (self *List) Append(v interface{}) {
+       self.mut.Lock()
+       defer self.mut.Unlock()
+
+       self.list = reflect.Append(self.list, reflect.ValueOf(v))
+       self.Length = self.list.Len()
+}
+
+// Returns the underlying slice as interface.
+func (self *List) Interface() interface{} {
+       return self.list.Interface()
+}
+
+// For JavaScript <3
+func (self *List) ToJSON() string {
+       // make(T, 0) != nil
+       list := make([]interface{}, 0)
+       for i := 0; i < self.Length; i++ {
+               list = append(list, self.Get(i))
+       }
+       data, _ := json.Marshal(list)
+       return string(data)
+}
diff --git a/vendor/github.com/bytom/common/path.go b/vendor/github.com/bytom/common/path.go
new file mode 100644 (file)
index 0000000..746424d
--- /dev/null
@@ -0,0 +1,56 @@
+package common
+
+import (
+       "fmt"
+       "os"
+       "os/user"
+       "path/filepath"
+       "runtime"
+       "strings"
+)
+
+// MakeName creates a node name that follows the ethereum convention
+// for such names. It adds the operation system name and Go runtime version
+// the name.
+func MakeName(name, version string) string {
+       return fmt.Sprintf("%s/v%s/%s/%s", name, version, runtime.GOOS, runtime.Version())
+}
+
+func ExpandHomePath(p string) (path string) {
+       path = p
+       sep := string(os.PathSeparator)
+
+       // Check in case of paths like "/something/~/something/"
+       if len(p) > 1 && p[:1+len(sep)] == "~"+sep {
+               usr, _ := user.Current()
+               dir := usr.HomeDir
+               path = strings.Replace(p, "~", dir, 1)
+       }
+       return
+}
+
+func FileExist(filePath string) bool {
+       _, err := os.Stat(filePath)
+       if err != nil && os.IsNotExist(err) {
+               return false
+       }
+
+       return true
+}
+
+func AbsolutePath(Datadir string, filename string) string {
+       if filepath.IsAbs(filename) {
+               return filename
+       }
+       return filepath.Join(Datadir, filename)
+}
+
+func HomeDir() string {
+       if home := os.Getenv("HOME"); home != "" {
+               return home
+       }
+       if usr, err := user.Current(); err == nil {
+               return usr.HomeDir
+       }
+       return ""
+}
diff --git a/vendor/github.com/bytom/common/size.go b/vendor/github.com/bytom/common/size.go
new file mode 100644 (file)
index 0000000..a46263b
--- /dev/null
@@ -0,0 +1,57 @@
+package common
+
+import (
+       "fmt"
+       "math/big"
+)
+
+// The different number of units
+var (
+       Douglas  = BigPow(10, 42)
+       Einstein = BigPow(10, 21)
+       Ether    = BigPow(10, 18)
+       Finney   = BigPow(10, 15)
+       Szabo    = BigPow(10, 12)
+       Shannon  = BigPow(10, 9)
+       Babbage  = BigPow(10, 6)
+       Ada      = BigPow(10, 3)
+       Wei      = big.NewInt(1)
+)
+
+//
+// Currency to string
+// Returns a string representing a human readable format
+func CurrencyToString(num *big.Int) string {
+       var (
+               fin   *big.Int = num
+               denom string   = "Wei"
+       )
+
+       switch {
+       case num.Cmp(Ether) >= 0:
+               fin = new(big.Int).Div(num, Ether)
+               denom = "Ether"
+       case num.Cmp(Finney) >= 0:
+               fin = new(big.Int).Div(num, Finney)
+               denom = "Finney"
+       case num.Cmp(Szabo) >= 0:
+               fin = new(big.Int).Div(num, Szabo)
+               denom = "Szabo"
+       case num.Cmp(Shannon) >= 0:
+               fin = new(big.Int).Div(num, Shannon)
+               denom = "Shannon"
+       case num.Cmp(Babbage) >= 0:
+               fin = new(big.Int).Div(num, Babbage)
+               denom = "Babbage"
+       case num.Cmp(Ada) >= 0:
+               fin = new(big.Int).Div(num, Ada)
+               denom = "Ada"
+       }
+
+       // TODO add comment clarifying expected behavior
+       if len(fin.String()) > 5 {
+               return fmt.Sprintf("%sE%d %s", fin.String()[0:5], len(fin.String())-5, denom)
+       }
+
+       return fmt.Sprintf("%v %s", fin, denom)
+}
diff --git a/vendor/github.com/bytom/common/sort.go b/vendor/github.com/bytom/common/sort.go
new file mode 100644 (file)
index 0000000..a476c92
--- /dev/null
@@ -0,0 +1,23 @@
+package common
+
+// timeSorter implements sort.Interface to allow a slice of timestamps to
+// be sorted.
+type TimeSorter []uint64
+
+// Len returns the number of timestamps in the slice.  It is part of the
+// sort.Interface implementation.
+func (s TimeSorter) Len() int {
+       return len(s)
+}
+
+// Swap swaps the timestamps at the passed indices.  It is part of the
+// sort.Interface implementation.
+func (s TimeSorter) Swap(i, j int) {
+       s[i], s[j] = s[j], s[i]
+}
+
+// Less returns whether the timstamp with index i should sort before the
+// timestamp with index j.  It is part of the sort.Interface implementation.
+func (s TimeSorter) Less(i, j int) bool {
+       return s[i] < s[j]
+}
diff --git a/vendor/github.com/bytom/common/test_utils.go b/vendor/github.com/bytom/common/test_utils.go
new file mode 100644 (file)
index 0000000..8346c14
--- /dev/null
@@ -0,0 +1,37 @@
+package common
+
+import (
+       "encoding/json"
+       "fmt"
+       "io/ioutil"
+)
+
+// LoadJSON reads the given file and unmarshals its content.
+func LoadJSON(file string, val interface{}) error {
+       content, err := ioutil.ReadFile(file)
+       if err != nil {
+               return err
+       }
+       if err := json.Unmarshal(content, val); err != nil {
+               if syntaxerr, ok := err.(*json.SyntaxError); ok {
+                       line := findLine(content, syntaxerr.Offset)
+                       return fmt.Errorf("JSON syntax error at %v:%v: %v", file, line, err)
+               }
+               return fmt.Errorf("JSON unmarshal error in %v: %v", file, err)
+       }
+       return nil
+}
+
+// findLine returns the line number for the given offset into data.
+func findLine(data []byte, offset int64) (line int) {
+       line = 1
+       for i, r := range string(data) {
+               if int64(i) >= offset {
+                       return
+               }
+               if r == '\n' {
+                       line++
+               }
+       }
+       return
+}
diff --git a/vendor/github.com/bytom/common/types.go b/vendor/github.com/bytom/common/types.go
new file mode 100644 (file)
index 0000000..246b8d7
--- /dev/null
@@ -0,0 +1,97 @@
+package common
+
+import (
+       _ "encoding/hex"
+       "encoding/json"
+       "errors"
+       "math/big"
+       "math/rand"
+       "reflect"
+       "strings"
+)
+
+const (
+       HashLength       = 32
+       AddressLength    = 42
+       PubkeyHashLength = 20
+)
+
+var hashJsonLengthErr = errors.New("common: unmarshalJSON failed: hash must be exactly 32 bytes")
+
+type (
+       Hash [HashLength]byte
+)
+
+func BytesToHash(b []byte) Hash {
+       var h Hash
+       h.SetBytes(b)
+       return h
+}
+
+func StringToHash(s string) Hash { return BytesToHash([]byte(s)) }
+func BigToHash(b *big.Int) Hash  { return BytesToHash(b.Bytes()) }
+func HexToHash(s string) Hash    { return BytesToHash(FromHex(s)) }
+
+// Don't use the default 'String' method in case we want to overwrite
+
+// Get the string representation of the underlying hash
+func (h Hash) Str() string   { return string(h[:]) }
+func (h Hash) Bytes() []byte { return h[:] }
+func (h Hash) Big() *big.Int { return Bytes2Big(h[:]) }
+func (h Hash) Hex() string   { return "0x" + Bytes2Hex(h[:]) }
+
+// UnmarshalJSON parses a hash in its hex from to a hash.
+func (h *Hash) UnmarshalJSON(input []byte) error {
+       length := len(input)
+       if length >= 2 && input[0] == '"' && input[length-1] == '"' {
+               input = input[1 : length-1]
+       }
+       // strip "0x" for length check
+       if len(input) > 1 && strings.ToLower(string(input[:2])) == "0x" {
+               input = input[2:]
+       }
+
+       // validate the length of the input hash
+       if len(input) != HashLength*2 {
+               return hashJsonLengthErr
+       }
+       h.SetBytes(FromHex(string(input)))
+       return nil
+}
+
+// Serialize given hash to JSON
+func (h Hash) MarshalJSON() ([]byte, error) {
+       return json.Marshal(h.Hex())
+}
+
+// Sets the hash to the value of b. If b is larger than len(h) it will panic
+func (h *Hash) SetBytes(b []byte) {
+       if len(b) > len(h) {
+               b = b[len(b)-HashLength:]
+       }
+
+       copy(h[HashLength-len(b):], b)
+}
+
+// Set string `s` to h. If s is larger than len(h) it will panic
+func (h *Hash) SetString(s string) { h.SetBytes([]byte(s)) }
+
+// Sets h to other
+func (h *Hash) Set(other Hash) {
+       for i, v := range other {
+               h[i] = v
+       }
+}
+
+// Generate implements testing/quick.Generator.
+func (h Hash) Generate(rand *rand.Rand, size int) reflect.Value {
+       m := rand.Intn(len(h))
+       for i := len(h) - 1; i > m; i-- {
+               h[i] = byte(rand.Uint32())
+       }
+       return reflect.ValueOf(h)
+}
+
+func EmptyHash(h Hash) bool {
+       return h == Hash{}
+}
diff --git a/vendor/github.com/bytom/common/types_template.go b/vendor/github.com/bytom/common/types_template.go
new file mode 100644 (file)
index 0000000..1c82a36
--- /dev/null
@@ -0,0 +1,48 @@
+// +build none
+//sed -e 's/_N_/Hash/g' -e 's/_S_/32/g' -e '1d' types_template.go | gofmt -w hash.go
+
+package common
+
+import "math/big"
+
+type _N_ [_S_]byte
+
+func BytesTo_N_(b []byte) _N_ {
+       var h _N_
+       h.SetBytes(b)
+       return h
+}
+func StringTo_N_(s string) _N_ { return BytesTo_N_([]byte(s)) }
+func BigTo_N_(b *big.Int) _N_  { return BytesTo_N_(b.Bytes()) }
+func HexTo_N_(s string) _N_    { return BytesTo_N_(FromHex(s)) }
+
+// Don't use the default 'String' method in case we want to overwrite
+
+// Get the string representation of the underlying hash
+func (h _N_) Str() string   { return string(h[:]) }
+func (h _N_) Bytes() []byte { return h[:] }
+func (h _N_) Big() *big.Int { return Bytes2Big(h[:]) }
+func (h _N_) Hex() string   { return "0x" + Bytes2Hex(h[:]) }
+
+// Sets the hash to the value of b. If b is larger than len(h) it will panic
+func (h *_N_) SetBytes(b []byte) {
+       // Use the right most bytes
+       if len(b) > len(h) {
+               b = b[len(b)-_S_:]
+       }
+
+       // Reverse the loop
+       for i := len(b) - 1; i >= 0; i-- {
+               h[_S_-len(b)+i] = b[i]
+       }
+}
+
+// Set string `s` to h. If s is larger than len(h) it will panic
+func (h *_N_) SetString(s string) { h.SetBytes([]byte(s)) }
+
+// Sets h to other
+func (h *_N_) Set(other _N_) {
+       for i, v := range other {
+               h[i] = v
+       }
+}
diff --git a/vendor/github.com/bytom/consensus/general.go b/vendor/github.com/bytom/consensus/general.go
new file mode 100644 (file)
index 0000000..7992918
--- /dev/null
@@ -0,0 +1,140 @@
+package consensus
+
+import (
+       "encoding/binary"
+       "strings"
+
+       "github.com/bytom/protocol/bc"
+)
+
+//consensus variables
+const (
+       // Max gas that one block contains
+       MaxBlockGas      = uint64(10000000)
+       VMGasRate        = int64(200)
+       StorageGasRate   = int64(1)
+       MaxGasAmount     = int64(200000)
+       DefaultGasCredit = int64(30000)
+
+       //config parameter for coinbase reward
+       CoinbasePendingBlockNumber = uint64(100)
+       subsidyReductionInterval   = uint64(840000)
+       baseSubsidy                = uint64(41250000000)
+       InitialBlockSubsidy        = uint64(140700041250000000)
+
+       // config for pow mining
+       BlocksPerRetarget     = uint64(2016)
+       TargetSecondsPerBlock = uint64(150)
+       SeedPerRetarget       = uint64(256)
+
+       // MaxTimeOffsetSeconds is the maximum number of seconds a block time is allowed to be ahead of the current time
+       MaxTimeOffsetSeconds = uint64(60 * 60)
+       MedianTimeBlocks     = 11
+
+       PayToWitnessPubKeyHashDataSize = 20
+       PayToWitnessScriptHashDataSize = 32
+       CoinbaseArbitrarySizeLimit     = 128
+
+       BTMAlias = "BTM"
+)
+
+// BTMAssetID is BTM's asset id, the soul asset of Bytom
+var BTMAssetID = &bc.AssetID{
+       V0: binary.BigEndian.Uint64([]byte{0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}),
+       V1: binary.BigEndian.Uint64([]byte{0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}),
+       V2: binary.BigEndian.Uint64([]byte{0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}),
+       V3: binary.BigEndian.Uint64([]byte{0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}),
+}
+
+// InitialSeed is SHA3-256 of Byte[0^32]
+var InitialSeed = &bc.Hash{
+       V0: uint64(11412844483649490393),
+       V1: uint64(4614157290180302959),
+       V2: uint64(1780246333311066183),
+       V3: uint64(9357197556716379726),
+}
+
+// BTMDefinitionMap is the ....
+var BTMDefinitionMap = map[string]interface{}{
+       "name":        BTMAlias,
+       "symbol":      BTMAlias,
+       "decimals":    8,
+       "description": `Bytom Official Issue`,
+}
+
+// BlockSubsidy calculate the coinbase rewards on given block height
+func BlockSubsidy(height uint64) uint64 {
+       if height == 0 {
+               return InitialBlockSubsidy
+       }
+       return baseSubsidy >> uint(height/subsidyReductionInterval)
+}
+
+// IsBech32SegwitPrefix returns whether the prefix is a known prefix for segwit
+// addresses on any default or registered network.  This is used when decoding
+// an address string into a specific address type.
+func IsBech32SegwitPrefix(prefix string, params *Params) bool {
+       prefix = strings.ToLower(prefix)
+       return prefix == params.Bech32HRPSegwit+"1"
+}
+
+// Checkpoint identifies a known good point in the block chain.  Using
+// checkpoints allows a few optimizations for old blocks during initial download
+// and also prevents forks from old blocks.
+type Checkpoint struct {
+       Height uint64
+       Hash   bc.Hash
+}
+
+// Params store the config for different network
+type Params struct {
+       // Name defines a human-readable identifier for the network.
+       Name            string
+       Bech32HRPSegwit string
+       Checkpoints     []Checkpoint
+}
+
+// ActiveNetParams is ...
+var ActiveNetParams = MainNetParams
+
+// NetParams is the correspondence between chain_id and Params
+var NetParams = map[string]Params{
+       "mainnet": MainNetParams,
+       "wisdom":  TestNetParams,
+       "solonet": SoloNetParams,
+}
+
+// MainNetParams is the config for production
+var MainNetParams = Params{
+       Name:            "main",
+       Bech32HRPSegwit: "bm",
+       Checkpoints: []Checkpoint{
+               {10000, bc.NewHash([32]byte{0x93, 0xe1, 0xeb, 0x78, 0x21, 0xd2, 0xb4, 0xad, 0x0f, 0x5b, 0x1c, 0xea, 0x82, 0xe8, 0x43, 0xad, 0x8c, 0x09, 0x9a, 0xb6, 0x5d, 0x8f, 0x70, 0xc5, 0x84, 0xca, 0xa2, 0xdd, 0xf1, 0x74, 0x65, 0x2c})},
+               {20000, bc.NewHash([32]byte{0x7d, 0x38, 0x61, 0xf3, 0x2c, 0xc0, 0x03, 0x81, 0xbb, 0xcd, 0x9a, 0x37, 0x6f, 0x10, 0x5d, 0xfe, 0x6f, 0xfe, 0x2d, 0xa5, 0xea, 0x88, 0xa5, 0xe3, 0x42, 0xed, 0xa1, 0x17, 0x9b, 0xa8, 0x0b, 0x7c})},
+               {30000, bc.NewHash([32]byte{0x32, 0x36, 0x06, 0xd4, 0x27, 0x2e, 0x35, 0x24, 0x46, 0x26, 0x7b, 0xe0, 0xfa, 0x48, 0x10, 0xa4, 0x3b, 0xb2, 0x40, 0xf1, 0x09, 0x51, 0x5b, 0x22, 0x9f, 0xf3, 0xc3, 0x83, 0x28, 0xaa, 0x4a, 0x00})},
+               {40000, bc.NewHash([32]byte{0x7f, 0xe2, 0xde, 0x11, 0x21, 0xf3, 0xa9, 0xa0, 0xee, 0x60, 0x8d, 0x7d, 0x4b, 0xea, 0xcc, 0x33, 0xfe, 0x41, 0x25, 0xdc, 0x2f, 0x26, 0xc2, 0xf2, 0x9c, 0x07, 0x17, 0xf9, 0xe4, 0x4f, 0x9d, 0x46})},
+               {50000, bc.NewHash([32]byte{0x5e, 0xfb, 0xdf, 0xf5, 0x35, 0x38, 0xa6, 0x0b, 0x75, 0x32, 0x02, 0x61, 0x83, 0x54, 0x34, 0xff, 0x3e, 0x82, 0x2e, 0xf8, 0x64, 0xae, 0x2d, 0xc7, 0x6c, 0x9d, 0x5e, 0xbd, 0xa3, 0xd4, 0x50, 0xcf})},
+               {62000, bc.NewHash([32]byte{0xd7, 0x39, 0x8f, 0x23, 0x57, 0xf9, 0x4c, 0xa0, 0x28, 0xa7, 0x00, 0x2b, 0x53, 0x9e, 0x51, 0x2d, 0x3e, 0xca, 0xc9, 0x22, 0x59, 0xfc, 0xd0, 0x3f, 0x67, 0x1a, 0x0a, 0xb1, 0x02, 0xbf, 0x2b, 0x03})},
+               {72000, bc.NewHash([32]byte{0x66, 0x02, 0x31, 0x19, 0xf1, 0x60, 0x35, 0x61, 0xa4, 0xf1, 0x38, 0x04, 0xcc, 0xe4, 0x59, 0x8f, 0x55, 0x39, 0xba, 0x22, 0xf2, 0x6d, 0x90, 0xbf, 0xc1, 0x87, 0xef, 0x98, 0xcc, 0x70, 0x4d, 0x94})},
+               {83700, bc.NewHash([32]byte{0x7f, 0x26, 0xc9, 0x11, 0xe8, 0x46, 0xd0, 0x6e, 0x36, 0xbb, 0xac, 0xce, 0x99, 0xa2, 0x19, 0x89, 0x3f, 0xf7, 0x84, 0x2a, 0xcb, 0x44, 0x7f, 0xbb, 0x0e, 0x3b, 0xa3, 0x68, 0xd6, 0x2b, 0xe8, 0x0d})},
+               {93700, bc.NewHash([32]byte{0x70, 0x44, 0x70, 0xe5, 0xb3, 0x9b, 0xd3, 0x67, 0x19, 0x20, 0x08, 0x42, 0x1b, 0x59, 0xe8, 0xdc, 0xb5, 0xbb, 0xb9, 0x2d, 0xd3, 0xdc, 0x28, 0x4e, 0xcb, 0x7b, 0x0b, 0xbf, 0x21, 0x51, 0xe1, 0xba})},
+               {106600, bc.NewHash([32]byte{0x31, 0x15, 0x2b, 0x00, 0xd4, 0x07, 0xe1, 0xa7, 0x06, 0xe1, 0xae, 0x2e, 0x98, 0x69, 0x8f, 0x47, 0xff, 0x44, 0x97, 0x01, 0xa7, 0x9e, 0x08, 0xdb, 0xeb, 0x0f, 0x1f, 0x5a, 0xdd, 0xf5, 0x26, 0xb9})},
+       },
+}
+
+// TestNetParams is the config for test-net
+var TestNetParams = Params{
+       Name:            "test",
+       Bech32HRPSegwit: "tm",
+       Checkpoints: []Checkpoint{
+               {10303, bc.NewHash([32]byte{0x3e, 0x94, 0x5d, 0x35, 0x70, 0x30, 0xd4, 0x3b, 0x3d, 0xe3, 0xdd, 0x80, 0x67, 0x29, 0x9a, 0x5e, 0x09, 0xf9, 0xfb, 0x2b, 0xad, 0x5f, 0x92, 0xc8, 0x69, 0xd1, 0x42, 0x39, 0x74, 0x9a, 0xd1, 0x1c})},
+               {40000, bc.NewHash([32]byte{0x6b, 0x13, 0x9a, 0x5b, 0x76, 0x77, 0x9b, 0xd4, 0x1c, 0xec, 0x53, 0x68, 0x44, 0xbf, 0xf4, 0x48, 0x94, 0x3d, 0x16, 0xe3, 0x9b, 0x2e, 0xe8, 0xa1, 0x0f, 0xa0, 0xbc, 0x7d, 0x2b, 0x17, 0x55, 0xfc})},
+       },
+}
+
+// SoloNetParams is the config for test-net
+var SoloNetParams = Params{
+       Name:            "solo",
+       Bech32HRPSegwit: "sm",
+       Checkpoints:     []Checkpoint{},
+}
diff --git a/vendor/github.com/bytom/consensus/server_flag.go b/vendor/github.com/bytom/consensus/server_flag.go
new file mode 100644 (file)
index 0000000..1679908
--- /dev/null
@@ -0,0 +1,21 @@
+package consensus
+
+// ServiceFlag use uint64 to indicate what kind of server this node can provide.
+// one uint64 can represent 64 type of service flag
+type ServiceFlag uint64
+
+const (
+       // SFFullNode is a flag used to indicate a peer is a full node.
+       SFFullNode ServiceFlag = 1 << iota
+       // SFFastSync indicate peer support header first mode
+       SFFastSync
+       // SFSPV indicate peer support spv mode
+       SFSPV
+       // DefaultServices is the server that this node support
+       DefaultServices = SFFullNode | SFFastSync | SFSPV
+)
+
+// IsEnable check does the flag support the input flag function
+func (f ServiceFlag) IsEnable(checkFlag ServiceFlag) bool {
+       return f&checkFlag == checkFlag
+}
diff --git a/vendor/github.com/bytom/crypto/crypto.go b/vendor/github.com/bytom/crypto/crypto.go
new file mode 100644 (file)
index 0000000..97c0d4d
--- /dev/null
@@ -0,0 +1,43 @@
+package crypto
+
+import (
+       "github.com/bytom/common"
+       "golang.org/x/crypto/ripemd160"
+       "golang.org/x/crypto/sha3"
+)
+
+func DoubleSha256(b []byte) []byte {
+       hasher := sha3.New256()
+       hasher.Write(b)
+       sum := hasher.Sum(nil)
+       hasher.Reset()
+       hasher.Write(sum)
+       return hasher.Sum(nil)
+}
+
+func Sha256(data ...[]byte) []byte {
+       d := sha3.New256()
+       for _, b := range data {
+               d.Write(b)
+       }
+       return d.Sum(nil)
+}
+
+func Sha256Hash(data ...[]byte) (h common.Hash) {
+       d := sha3.New256()
+       for _, b := range data {
+               d.Write(b)
+       }
+       d.Sum(h[:0])
+       return h
+}
+
+func Sha3(data ...[]byte) []byte          { return Sha256(data...) }
+func Sha3Hash(data ...[]byte) common.Hash { return Sha256Hash(data...) }
+
+func Ripemd160(data []byte) []byte {
+       ripemd := ripemd160.New()
+       ripemd.Write(data)
+
+       return ripemd.Sum(nil)
+}
diff --git a/vendor/github.com/bytom/crypto/ed25519/ed25519.go b/vendor/github.com/bytom/crypto/ed25519/ed25519.go
new file mode 100644 (file)
index 0000000..8d03d9d
--- /dev/null
@@ -0,0 +1,177 @@
+// Package ed25519 implements the Ed25519 signature algorithm. See
+// http://ed25519.cr.yp.to/.
+//
+// These functions are also compatible with the “Ed25519” function defined in
+// https://tools.ietf.org/html/draft-irtf-cfrg-eddsa-05.
+package ed25519
+
+// This code is a port of the public domain, “ref10” implementation of ed25519
+// from SUPERCOP.
+
+import (
+       "crypto"
+       cryptorand "crypto/rand"
+       "crypto/sha512"
+       "crypto/subtle"
+       "errors"
+       "io"
+       "strconv"
+
+       "github.com/bytom/crypto/ed25519/internal/edwards25519"
+)
+
+const (
+       // PublicKeySize is the size, in bytes, of public keys as used in this package.
+       PublicKeySize = 32
+       // PrivateKeySize is the size, in bytes, of private keys as used in this package.
+       PrivateKeySize = 64
+       // SignatureSize is the size, in bytes, of signatures generated and verified by this package.
+       SignatureSize = 64
+)
+
+// PublicKey is the type of Ed25519 public keys.
+type PublicKey []byte
+
+// PrivateKey is the type of Ed25519 private keys. It implements crypto.Signer.
+type PrivateKey []byte
+
+// Public returns the PublicKey corresponding to priv.
+func (priv PrivateKey) Public() crypto.PublicKey {
+       publicKey := make([]byte, PublicKeySize)
+       copy(publicKey, priv[32:])
+       return PublicKey(publicKey)
+}
+
+// Sign signs the given message with priv.
+// Ed25519 performs two passes over messages to be signed and therefore cannot
+// handle pre-hashed messages. Thus opts.HashFunc() must return zero to
+// indicate the message hasn't been hashed. This can be achieved by passing
+// crypto.Hash(0) as the value for opts.
+func (priv PrivateKey) Sign(rand io.Reader, message []byte, opts crypto.SignerOpts) (signature []byte, err error) {
+       if opts.HashFunc() != crypto.Hash(0) {
+               return nil, errors.New("ed25519: cannot sign hashed message")
+       }
+
+       return Sign(priv, message), nil
+}
+
+// GenerateKey generates a public/private key pair using entropy from rand.
+// If rand is nil, crypto/rand.Reader will be used.
+func GenerateKey(rand io.Reader) (publicKey PublicKey, privateKey PrivateKey, err error) {
+       if rand == nil {
+               rand = cryptorand.Reader
+       }
+
+       privateKey = make([]byte, PrivateKeySize)
+       publicKey = make([]byte, PublicKeySize)
+       _, err = io.ReadFull(rand, privateKey[:32])
+       if err != nil {
+               return nil, nil, err
+       }
+
+       digest := sha512.Sum512(privateKey[:32])
+       digest[0] &= 248
+       digest[31] &= 127
+       digest[31] |= 64
+
+       var A edwards25519.ExtendedGroupElement
+       var hBytes [32]byte
+       copy(hBytes[:], digest[:])
+       edwards25519.GeScalarMultBase(&A, &hBytes)
+       var publicKeyBytes [32]byte
+       A.ToBytes(&publicKeyBytes)
+
+       copy(privateKey[32:], publicKeyBytes[:])
+       copy(publicKey, publicKeyBytes[:])
+
+       return publicKey, privateKey, nil
+}
+
+// Sign signs the message with privateKey and returns a signature. It will
+// panic if len(privateKey) is not PrivateKeySize.
+func Sign(privateKey PrivateKey, message []byte) []byte {
+       if l := len(privateKey); l != PrivateKeySize {
+               panic("ed25519: bad private key length: " + strconv.Itoa(l))
+       }
+
+       h := sha512.New()
+       h.Write(privateKey[:32])
+
+       var digest1, messageDigest, hramDigest [64]byte
+       var expandedSecretKey [32]byte
+       h.Sum(digest1[:0])
+       copy(expandedSecretKey[:], digest1[:])
+       expandedSecretKey[0] &= 248
+       expandedSecretKey[31] &= 63
+       expandedSecretKey[31] |= 64
+
+       h.Reset()
+       h.Write(digest1[32:])
+       h.Write(message)
+       h.Sum(messageDigest[:0])
+
+       var messageDigestReduced [32]byte
+       edwards25519.ScReduce(&messageDigestReduced, &messageDigest)
+       var R edwards25519.ExtendedGroupElement
+       edwards25519.GeScalarMultBase(&R, &messageDigestReduced)
+
+       var encodedR [32]byte
+       R.ToBytes(&encodedR)
+
+       h.Reset()
+       h.Write(encodedR[:])
+       h.Write(privateKey[32:])
+       h.Write(message)
+       h.Sum(hramDigest[:0])
+       var hramDigestReduced [32]byte
+       edwards25519.ScReduce(&hramDigestReduced, &hramDigest)
+
+       var s [32]byte
+       edwards25519.ScMulAdd(&s, &hramDigestReduced, &expandedSecretKey, &messageDigestReduced)
+
+       signature := make([]byte, SignatureSize)
+       copy(signature[:], encodedR[:])
+       copy(signature[32:], s[:])
+
+       return signature
+}
+
+// Verify reports whether sig is a valid signature of message by publicKey. It
+// will panic if len(publicKey) is not PublicKeySize.
+func Verify(publicKey PublicKey, message, sig []byte) bool {
+       if l := len(publicKey); l != PublicKeySize {
+               panic("ed25519: bad public key length: " + strconv.Itoa(l))
+       }
+
+       if len(sig) != SignatureSize || sig[63]&224 != 0 {
+               return false
+       }
+
+       var A edwards25519.ExtendedGroupElement
+       var publicKeyBytes [32]byte
+       copy(publicKeyBytes[:], publicKey)
+       if !A.FromBytes(&publicKeyBytes) {
+               return false
+       }
+       edwards25519.FeNeg(&A.X, &A.X)
+       edwards25519.FeNeg(&A.T, &A.T)
+
+       h := sha512.New()
+       h.Write(sig[:32])
+       h.Write(publicKey[:])
+       h.Write(message)
+       var digest [64]byte
+       h.Sum(digest[:0])
+
+       var hReduced [32]byte
+       edwards25519.ScReduce(&hReduced, &digest)
+
+       var R edwards25519.ProjectiveGroupElement
+       var b [32]byte
+       copy(b[:], sig[32:])
+       edwards25519.GeDoubleScalarMultVartime(&R, &hReduced, &A, &b)
+
+       var checkR [32]byte
+       R.ToBytes(&checkR)
+       return subtle.ConstantTimeCompare(sig[:32], checkR[:]) == 1
+}
diff --git a/vendor/github.com/bytom/crypto/ed25519/internal/edwards25519/chain_export.go b/vendor/github.com/bytom/crypto/ed25519/internal/edwards25519/chain_export.go
new file mode 100644 (file)
index 0000000..da88750
--- /dev/null
@@ -0,0 +1,6 @@
+package edwards25519
+
+var (
+       GeAdd = geAdd
+       GeSub = geSub
+)
diff --git a/vendor/github.com/bytom/crypto/ed25519/internal/edwards25519/const.go b/vendor/github.com/bytom/crypto/ed25519/internal/edwards25519/const.go
new file mode 100644 (file)
index 0000000..a098563
--- /dev/null
@@ -0,0 +1,1418 @@
+package edwards25519
+
+// These values are from the public domain, “ref10” implementation of ed25519
+// from SUPERCOP.
+
+// d is a constant in the Edwards curve equation.
+var d = FieldElement{
+       -10913610, 13857413, -15372611, 6949391, 114729, -8787816, -6275908, -3247719, -18696448, -12055116,
+}
+
+// d2 is 2*d.
+var d2 = FieldElement{
+       -21827239, -5839606, -30745221, 13898782, 229458, 15978800, -12551817, -6495438, 29715968, 9444199,
+}
+
+// SqrtM1 is the square-root of -1 in the field.
+var SqrtM1 = FieldElement{
+       -32595792, -7943725, 9377950, 3500415, 12389472, -272473, -25146209, -2005654, 326686, 11406482,
+}
+
+// A is a constant in the Montgomery-form of curve25519.
+var A = FieldElement{
+       486662, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+}
+
+// bi contains precomputed multiples of the base-point. See the Ed25519 paper
+// for a discussion about how these values are used.
+var bi = [8]PreComputedGroupElement{
+       {
+               FieldElement{25967493, -14356035, 29566456, 3660896, -12694345, 4014787, 27544626, -11754271, -6079156, 2047605},
+               FieldElement{-12545711, 934262, -2722910, 3049990, -727428, 9406986, 12720692, 5043384, 19500929, -15469378},
+               FieldElement{-8738181, 4489570, 9688441, -14785194, 10184609, -12363380, 29287919, 11864899, -24514362, -4438546},
+       },
+       {
+               FieldElement{15636291, -9688557, 24204773, -7912398, 616977, -16685262, 27787600, -14772189, 28944400, -1550024},
+               FieldElement{16568933, 4717097, -11556148, -1102322, 15682896, -11807043, 16354577, -11775962, 7689662, 11199574},
+               FieldElement{30464156, -5976125, -11779434, -15670865, 23220365, 15915852, 7512774, 10017326, -17749093, -9920357},
+       },
+       {
+               FieldElement{10861363, 11473154, 27284546, 1981175, -30064349, 12577861, 32867885, 14515107, -15438304, 10819380},
+               FieldElement{4708026, 6336745, 20377586, 9066809, -11272109, 6594696, -25653668, 12483688, -12668491, 5581306},
+               FieldElement{19563160, 16186464, -29386857, 4097519, 10237984, -4348115, 28542350, 13850243, -23678021, -15815942},
+       },
+       {
+               FieldElement{5153746, 9909285, 1723747, -2777874, 30523605, 5516873, 19480852, 5230134, -23952439, -15175766},
+               FieldElement{-30269007, -3463509, 7665486, 10083793, 28475525, 1649722, 20654025, 16520125, 30598449, 7715701},
+               FieldElement{28881845, 14381568, 9657904, 3680757, -20181635, 7843316, -31400660, 1370708, 29794553, -1409300},
+       },
+       {
+               FieldElement{-22518993, -6692182, 14201702, -8745502, -23510406, 8844726, 18474211, -1361450, -13062696, 13821877},
+               FieldElement{-6455177, -7839871, 3374702, -4740862, -27098617, -10571707, 31655028, -7212327, 18853322, -14220951},
+               FieldElement{4566830, -12963868, -28974889, -12240689, -7602672, -2830569, -8514358, -10431137, 2207753, -3209784},
+       },
+       {
+               FieldElement{-25154831, -4185821, 29681144, 7868801, -6854661, -9423865, -12437364, -663000, -31111463, -16132436},
+               FieldElement{25576264, -2703214, 7349804, -11814844, 16472782, 9300885, 3844789, 15725684, 171356, 6466918},
+               FieldElement{23103977, 13316479, 9739013, -16149481, 817875, -15038942, 8965339, -14088058, -30714912, 16193877},
+       },
+       {
+               FieldElement{-33521811, 3180713, -2394130, 14003687, -16903474, -16270840, 17238398, 4729455, -18074513, 9256800},
+               FieldElement{-25182317, -4174131, 32336398, 5036987, -21236817, 11360617, 22616405, 9761698, -19827198, 630305},
+               FieldElement{-13720693, 2639453, -24237460, -7406481, 9494427, -5774029, -6554551, -15960994, -2449256, -14291300},
+       },
+       {
+               FieldElement{-3151181, -5046075, 9282714, 6866145, -31907062, -863023, -18940575, 15033784, 25105118, -7894876},
+               FieldElement{-24326370, 15950226, -31801215, -14592823, -11662737, -5090925, 1573892, -2625887, 2198790, -15804619},
+               FieldElement{-3099351, 10324967, -2241613, 7453183, -5446979, -2735503, -13812022, -16236442, -32461234, -12290683},
+       },
+}
+
+// base contains precomputed multiples of the base-point. See the Ed25519 paper
+// for a discussion about how these values are used.
+var base = [32][8]PreComputedGroupElement{
+       {
+               {
+                       FieldElement{25967493, -14356035, 29566456, 3660896, -12694345, 4014787, 27544626, -11754271, -6079156, 2047605},
+                       FieldElement{-12545711, 934262, -2722910, 3049990, -727428, 9406986, 12720692, 5043384, 19500929, -15469378},
+                       FieldElement{-8738181, 4489570, 9688441, -14785194, 10184609, -12363380, 29287919, 11864899, -24514362, -4438546},
+               },
+               {
+                       FieldElement{-12815894, -12976347, -21581243, 11784320, -25355658, -2750717, -11717903, -3814571, -358445, -10211303},
+                       FieldElement{-21703237, 6903825, 27185491, 6451973, -29577724, -9554005, -15616551, 11189268, -26829678, -5319081},
+                       FieldElement{26966642, 11152617, 32442495, 15396054, 14353839, -12752335, -3128826, -9541118, -15472047, -4166697},
+               },
+               {
+                       FieldElement{15636291, -9688557, 24204773, -7912398, 616977, -16685262, 27787600, -14772189, 28944400, -1550024},
+                       FieldElement{16568933, 4717097, -11556148, -1102322, 15682896, -11807043, 16354577, -11775962, 7689662, 11199574},
+                       FieldElement{30464156, -5976125, -11779434, -15670865, 23220365, 15915852, 7512774, 10017326, -17749093, -9920357},
+               },
+               {
+                       FieldElement{-17036878, 13921892, 10945806, -6033431, 27105052, -16084379, -28926210, 15006023, 3284568, -6276540},
+                       FieldElement{23599295, -8306047, -11193664, -7687416, 13236774, 10506355, 7464579, 9656445, 13059162, 10374397},
+                       FieldElement{7798556, 16710257, 3033922, 2874086, 28997861, 2835604, 32406664, -3839045, -641708, -101325},
+               },
+               {
+                       FieldElement{10861363, 11473154, 27284546, 1981175, -30064349, 12577861, 32867885, 14515107, -15438304, 10819380},
+                       FieldElement{4708026, 6336745, 20377586, 9066809, -11272109, 6594696, -25653668, 12483688, -12668491, 5581306},
+                       FieldElement{19563160, 16186464, -29386857, 4097519, 10237984, -4348115, 28542350, 13850243, -23678021, -15815942},
+               },
+               {
+                       FieldElement{-15371964, -12862754, 32573250, 4720197, -26436522, 5875511, -19188627, -15224819, -9818940, -12085777},
+                       FieldElement{-8549212, 109983, 15149363, 2178705, 22900618, 4543417, 3044240, -15689887, 1762328, 14866737},
+                       FieldElement{-18199695, -15951423, -10473290, 1707278, -17185920, 3916101, -28236412, 3959421, 27914454, 4383652},
+               },
+               {
+                       FieldElement{5153746, 9909285, 1723747, -2777874, 30523605, 5516873, 19480852, 5230134, -23952439, -15175766},
+                       FieldElement{-30269007, -3463509, 7665486, 10083793, 28475525, 1649722, 20654025, 16520125, 30598449, 7715701},
+                       FieldElement{28881845, 14381568, 9657904, 3680757, -20181635, 7843316, -31400660, 1370708, 29794553, -1409300},
+               },
+               {
+                       FieldElement{14499471, -2729599, -33191113, -4254652, 28494862, 14271267, 30290735, 10876454, -33154098, 2381726},
+                       FieldElement{-7195431, -2655363, -14730155, 462251, -27724326, 3941372, -6236617, 3696005, -32300832, 15351955},
+                       FieldElement{27431194, 8222322, 16448760, -3907995, -18707002, 11938355, -32961401, -2970515, 29551813, 10109425},
+               },
+       },
+       {
+               {
+                       FieldElement{-13657040, -13155431, -31283750, 11777098, 21447386, 6519384, -2378284, -1627556, 10092783, -4764171},
+                       FieldElement{27939166, 14210322, 4677035, 16277044, -22964462, -12398139, -32508754, 12005538, -17810127, 12803510},
+                       FieldElement{17228999, -15661624, -1233527, 300140, -1224870, -11714777, 30364213, -9038194, 18016357, 4397660},
+               },
+               {
+                       FieldElement{-10958843, -7690207, 4776341, -14954238, 27850028, -15602212, -26619106, 14544525, -17477504, 982639},
+                       FieldElement{29253598, 15796703, -2863982, -9908884, 10057023, 3163536, 7332899, -4120128, -21047696, 9934963},
+                       FieldElement{5793303, 16271923, -24131614, -10116404, 29188560, 1206517, -14747930, 4559895, -30123922, -10897950},
+               },
+               {
+                       FieldElement{-27643952, -11493006, 16282657, -11036493, 28414021, -15012264, 24191034, 4541697, -13338309, 5500568},
+                       FieldElement{12650548, -1497113, 9052871, 11355358, -17680037, -8400164, -17430592, 12264343, 10874051, 13524335},
+                       FieldElement{25556948, -3045990, 714651, 2510400, 23394682, -10415330, 33119038, 5080568, -22528059, 5376628},
+               },
+               {
+                       FieldElement{-26088264, -4011052, -17013699, -3537628, -6726793, 1920897, -22321305, -9447443, 4535768, 1569007},
+                       FieldElement{-2255422, 14606630, -21692440, -8039818, 28430649, 8775819, -30494562, 3044290, 31848280, 12543772},
+                       FieldElement{-22028579, 2943893, -31857513, 6777306, 13784462, -4292203, -27377195, -2062731, 7718482, 14474653},
+               },
+               {
+                       FieldElement{2385315, 2454213, -22631320, 46603, -4437935, -15680415, 656965, -7236665, 24316168, -5253567},
+                       FieldElement{13741529, 10911568, -33233417, -8603737, -20177830, -1033297, 33040651, -13424532, -20729456, 8321686},
+                       FieldElement{21060490, -2212744, 15712757, -4336099, 1639040, 10656336, 23845965, -11874838, -9984458, 608372},
+               },
+               {
+                       FieldElement{-13672732, -15087586, -10889693, -7557059, -6036909, 11305547, 1123968, -6780577, 27229399, 23887},
+                       FieldElement{-23244140, -294205, -11744728, 14712571, -29465699, -2029617, 12797024, -6440308, -1633405, 16678954},
+                       FieldElement{-29500620, 4770662, -16054387, 14001338, 7830047, 9564805, -1508144, -4795045, -17169265, 4904953},
+               },
+               {
+                       FieldElement{24059557, 14617003, 19037157, -15039908, 19766093, -14906429, 5169211, 16191880, 2128236, -4326833},
+                       FieldElement{-16981152, 4124966, -8540610, -10653797, 30336522, -14105247, -29806336, 916033, -6882542, -2986532},
+                       FieldElement{-22630907, 12419372, -7134229, -7473371, -16478904, 16739175, 285431, 2763829, 15736322, 4143876},
+               },
+               {
+                       FieldElement{2379352, 11839345, -4110402, -5988665, 11274298, 794957, 212801, -14594663, 23527084, -16458268},
+                       FieldElement{33431127, -11130478, -17838966, -15626900, 8909499, 8376530, -32625340, 4087881, -15188911, -14416214},
+                       FieldElement{1767683, 7197987, -13205226, -2022635, -13091350, 448826, 5799055, 4357868, -4774191, -16323038},
+               },
+       },
+       {
+               {
+                       FieldElement{6721966, 13833823, -23523388, -1551314, 26354293, -11863321, 23365147, -3949732, 7390890, 2759800},
+                       FieldElement{4409041, 2052381, 23373853, 10530217, 7676779, -12885954, 21302353, -4264057, 1244380, -12919645},
+                       FieldElement{-4421239, 7169619, 4982368, -2957590, 30256825, -2777540, 14086413, 9208236, 15886429, 16489664},
+               },
+               {
+                       FieldElement{1996075, 10375649, 14346367, 13311202, -6874135, -16438411, -13693198, 398369, -30606455, -712933},
+                       FieldElement{-25307465, 9795880, -2777414, 14878809, -33531835, 14780363, 13348553, 12076947, -30836462, 5113182},
+                       FieldElement{-17770784, 11797796, 31950843, 13929123, -25888302, 12288344, -30341101, -7336386, 13847711, 5387222},
+               },
+               {
+                       FieldElement{-18582163, -3416217, 17824843, -2340966, 22744343, -10442611, 8763061, 3617786, -19600662, 10370991},
+                       FieldElement{20246567, -14369378, 22358229, -543712, 18507283, -10413996, 14554437, -8746092, 32232924, 16763880},
+                       FieldElement{9648505, 10094563, 26416693, 14745928, -30374318, -6472621, 11094161, 15689506, 3140038, -16510092},
+               },
+               {
+                       FieldElement{-16160072, 5472695, 31895588, 4744994, 8823515, 10365685, -27224800, 9448613, -28774454, 366295},
+                       FieldElement{19153450, 11523972, -11096490, -6503142, -24647631, 5420647, 28344573, 8041113, 719605, 11671788},
+                       FieldElement{8678025, 2694440, -6808014, 2517372, 4964326, 11152271, -15432916, -15266516, 27000813, -10195553},
+               },
+               {
+                       FieldElement{-15157904, 7134312, 8639287, -2814877, -7235688, 10421742, 564065, 5336097, 6750977, -14521026},
+                       FieldElement{11836410, -3979488, 26297894, 16080799, 23455045, 15735944, 1695823, -8819122, 8169720, 16220347},
+                       FieldElement{-18115838, 8653647, 17578566, -6092619, -8025777, -16012763, -11144307, -2627664, -5990708, -14166033},
+               },
+               {
+                       FieldElement{-23308498, -10968312, 15213228, -10081214, -30853605, -11050004, 27884329, 2847284, 2655861, 1738395},
+                       FieldElement{-27537433, -14253021, -25336301, -8002780, -9370762, 8129821, 21651608, -3239336, -19087449, -11005278},
+                       FieldElement{1533110, 3437855, 23735889, 459276, 29970501, 11335377, 26030092, 5821408, 10478196, 8544890},
+               },
+               {
+                       FieldElement{32173121, -16129311, 24896207, 3921497, 22579056, -3410854, 19270449, 12217473, 17789017, -3395995},
+                       FieldElement{-30552961, -2228401, -15578829, -10147201, 13243889, 517024, 15479401, -3853233, 30460520, 1052596},
+                       FieldElement{-11614875, 13323618, 32618793, 8175907, -15230173, 12596687, 27491595, -4612359, 3179268, -9478891},
+               },
+               {
+                       FieldElement{31947069, -14366651, -4640583, -15339921, -15125977, -6039709, -14756777, -16411740, 19072640, -9511060},
+                       FieldElement{11685058, 11822410, 3158003, -13952594, 33402194, -4165066, 5977896, -5215017, 473099, 5040608},
+                       FieldElement{-20290863, 8198642, -27410132, 11602123, 1290375, -2799760, 28326862, 1721092, -19558642, -3131606},
+               },
+       },
+       {
+               {
+                       FieldElement{7881532, 10687937, 7578723, 7738378, -18951012, -2553952, 21820786, 8076149, -27868496, 11538389},
+                       FieldElement{-19935666, 3899861, 18283497, -6801568, -15728660, -11249211, 8754525, 7446702, -5676054, 5797016},
+                       FieldElement{-11295600, -3793569, -15782110, -7964573, 12708869, -8456199, 2014099, -9050574, -2369172, -5877341},
+               },
+               {
+                       FieldElement{-22472376, -11568741, -27682020, 1146375, 18956691, 16640559, 1192730, -3714199, 15123619, 10811505},
+                       FieldElement{14352098, -3419715, -18942044, 10822655, 32750596, 4699007, -70363, 15776356, -28886779, -11974553},
+                       FieldElement{-28241164, -8072475, -4978962, -5315317, 29416931, 1847569, -20654173, -16484855, 4714547, -9600655},
+               },
+               {
+                       FieldElement{15200332, 8368572, 19679101, 15970074, -31872674, 1959451, 24611599, -4543832, -11745876, 12340220},
+                       FieldElement{12876937, -10480056, 33134381, 6590940, -6307776, 14872440, 9613953, 8241152, 15370987, 9608631},
+                       FieldElement{-4143277, -12014408, 8446281, -391603, 4407738, 13629032, -7724868, 15866074, -28210621, -8814099},
+               },
+               {
+                       FieldElement{26660628, -15677655, 8393734, 358047, -7401291, 992988, -23904233, 858697, 20571223, 8420556},
+                       FieldElement{14620715, 13067227, -15447274, 8264467, 14106269, 15080814, 33531827, 12516406, -21574435, -12476749},
+                       FieldElement{236881, 10476226, 57258, -14677024, 6472998, 2466984, 17258519, 7256740, 8791136, 15069930},
+               },
+               {
+                       FieldElement{1276410, -9371918, 22949635, -16322807, -23493039, -5702186, 14711875, 4874229, -30663140, -2331391},
+                       FieldElement{5855666, 4990204, -13711848, 7294284, -7804282, 1924647, -1423175, -7912378, -33069337, 9234253},
+                       FieldElement{20590503, -9018988, 31529744, -7352666, -2706834, 10650548, 31559055, -11609587, 18979186, 13396066},
+               },
+               {
+                       FieldElement{24474287, 4968103, 22267082, 4407354, 24063882, -8325180, -18816887, 13594782, 33514650, 7021958},
+                       FieldElement{-11566906, -6565505, -21365085, 15928892, -26158305, 4315421, -25948728, -3916677, -21480480, 12868082},
+                       FieldElement{-28635013, 13504661, 19988037, -2132761, 21078225, 6443208, -21446107, 2244500, -12455797, -8089383},
+               },
+               {
+                       FieldElement{-30595528, 13793479, -5852820, 319136, -25723172, -6263899, 33086546, 8957937, -15233648, 5540521},
+                       FieldElement{-11630176, -11503902, -8119500, -7643073, 2620056, 1022908, -23710744, -1568984, -16128528, -14962807},
+                       FieldElement{23152971, 775386, 27395463, 14006635, -9701118, 4649512, 1689819, 892185, -11513277, -15205948},
+               },
+               {
+                       FieldElement{9770129, 9586738, 26496094, 4324120, 1556511, -3550024, 27453819, 4763127, -19179614, 5867134},
+                       FieldElement{-32765025, 1927590, 31726409, -4753295, 23962434, -16019500, 27846559, 5931263, -29749703, -16108455},
+                       FieldElement{27461885, -2977536, 22380810, 1815854, -23033753, -3031938, 7283490, -15148073, -19526700, 7734629},
+               },
+       },
+       {
+               {
+                       FieldElement{-8010264, -9590817, -11120403, 6196038, 29344158, -13430885, 7585295, -3176626, 18549497, 15302069},
+                       FieldElement{-32658337, -6171222, -7672793, -11051681, 6258878, 13504381, 10458790, -6418461, -8872242, 8424746},
+                       FieldElement{24687205, 8613276, -30667046, -3233545, 1863892, -1830544, 19206234, 7134917, -11284482, -828919},
+               },
+               {
+                       FieldElement{11334899, -9218022, 8025293, 12707519, 17523892, -10476071, 10243738, -14685461, -5066034, 16498837},
+                       FieldElement{8911542, 6887158, -9584260, -6958590, 11145641, -9543680, 17303925, -14124238, 6536641, 10543906},
+                       FieldElement{-28946384, 15479763, -17466835, 568876, -1497683, 11223454, -2669190, -16625574, -27235709, 8876771},
+               },
+               {
+                       FieldElement{-25742899, -12566864, -15649966, -846607, -33026686, -796288, -33481822, 15824474, -604426, -9039817},
+                       FieldElement{10330056, 70051, 7957388, -9002667, 9764902, 15609756, 27698697, -4890037, 1657394, 3084098},
+                       FieldElement{10477963, -7470260, 12119566, -13250805, 29016247, -5365589, 31280319, 14396151, -30233575, 15272409},
+               },
+               {
+                       FieldElement{-12288309, 3169463, 28813183, 16658753, 25116432, -5630466, -25173957, -12636138, -25014757, 1950504},
+                       FieldElement{-26180358, 9489187, 11053416, -14746161, -31053720, 5825630, -8384306, -8767532, 15341279, 8373727},
+                       FieldElement{28685821, 7759505, -14378516, -12002860, -31971820, 4079242, 298136, -10232602, -2878207, 15190420},
+               },
+               {
+                       FieldElement{-32932876, 13806336, -14337485, -15794431, -24004620, 10940928, 8669718, 2742393, -26033313, -6875003},
+                       FieldElement{-1580388, -11729417, -25979658, -11445023, -17411874, -10912854, 9291594, -16247779, -12154742, 6048605},
+                       FieldElement{-30305315, 14843444, 1539301, 11864366, 20201677, 1900163, 13934231, 5128323, 11213262, 9168384},
+               },
+               {
+                       FieldElement{-26280513, 11007847, 19408960, -940758, -18592965, -4328580, -5088060, -11105150, 20470157, -16398701},
+                       FieldElement{-23136053, 9282192, 14855179, -15390078, -7362815, -14408560, -22783952, 14461608, 14042978, 5230683},
+                       FieldElement{29969567, -2741594, -16711867, -8552442, 9175486, -2468974, 21556951, 3506042, -5933891, -12449708},
+               },
+               {
+                       FieldElement{-3144746, 8744661, 19704003, 4581278, -20430686, 6830683, -21284170, 8971513, -28539189, 15326563},
+                       FieldElement{-19464629, 10110288, -17262528, -3503892, -23500387, 1355669, -15523050, 15300988, -20514118, 9168260},
+                       FieldElement{-5353335, 4488613, -23803248, 16314347, 7780487, -15638939, -28948358, 9601605, 33087103, -9011387},
+               },
+               {
+                       FieldElement{-19443170, -15512900, -20797467, -12445323, -29824447, 10229461, -27444329, -15000531, -5996870, 15664672},
+                       FieldElement{23294591, -16632613, -22650781, -8470978, 27844204, 11461195, 13099750, -2460356, 18151676, 13417686},
+                       FieldElement{-24722913, -4176517, -31150679, 5988919, -26858785, 6685065, 1661597, -12551441, 15271676, -15452665},
+               },
+       },
+       {
+               {
+                       FieldElement{11433042, -13228665, 8239631, -5279517, -1985436, -725718, -18698764, 2167544, -6921301, -13440182},
+                       FieldElement{-31436171, 15575146, 30436815, 12192228, -22463353, 9395379, -9917708, -8638997, 12215110, 12028277},
+                       FieldElement{14098400, 6555944, 23007258, 5757252, -15427832, -12950502, 30123440, 4617780, -16900089, -655628},
+               },
+               {
+                       FieldElement{-4026201, -15240835, 11893168, 13718664, -14809462, 1847385, -15819999, 10154009, 23973261, -12684474},
+                       FieldElement{-26531820, -3695990, -1908898, 2534301, -31870557, -16550355, 18341390, -11419951, 32013174, -10103539},
+                       FieldElement{-25479301, 10876443, -11771086, -14625140, -12369567, 1838104, 21911214, 6354752, 4425632, -837822},
+               },
+               {
+                       FieldElement{-10433389, -14612966, 22229858, -3091047, -13191166, 776729, -17415375, -12020462, 4725005, 14044970},
+                       FieldElement{19268650, -7304421, 1555349, 8692754, -21474059, -9910664, 6347390, -1411784, -19522291, -16109756},
+                       FieldElement{-24864089, 12986008, -10898878, -5558584, -11312371, -148526, 19541418, 8180106, 9282262, 10282508},
+               },
+               {
+                       FieldElement{-26205082, 4428547, -8661196, -13194263, 4098402, -14165257, 15522535, 8372215, 5542595, -10702683},
+                       FieldElement{-10562541, 14895633, 26814552, -16673850, -17480754, -2489360, -2781891, 6993761, -18093885, 10114655},
+                       FieldElement{-20107055, -929418, 31422704, 10427861, -7110749, 6150669, -29091755, -11529146, 25953725, -106158},
+               },
+               {
+                       FieldElement{-4234397, -8039292, -9119125, 3046000, 2101609, -12607294, 19390020, 6094296, -3315279, 12831125},
+                       FieldElement{-15998678, 7578152, 5310217, 14408357, -33548620, -224739, 31575954, 6326196, 7381791, -2421839},
+                       FieldElement{-20902779, 3296811, 24736065, -16328389, 18374254, 7318640, 6295303, 8082724, -15362489, 12339664},
+               },
+               {
+                       FieldElement{27724736, 2291157, 6088201, -14184798, 1792727, 5857634, 13848414, 15768922, 25091167, 14856294},
+                       FieldElement{-18866652, 8331043, 24373479, 8541013, -701998, -9269457, 12927300, -12695493, -22182473, -9012899},
+                       FieldElement{-11423429, -5421590, 11632845, 3405020, 30536730, -11674039, -27260765, 13866390, 30146206, 9142070},
+               },
+               {
+                       FieldElement{3924129, -15307516, -13817122, -10054960, 12291820, -668366, -27702774, 9326384, -8237858, 4171294},
+                       FieldElement{-15921940, 16037937, 6713787, 16606682, -21612135, 2790944, 26396185, 3731949, 345228, -5462949},
+                       FieldElement{-21327538, 13448259, 25284571, 1143661, 20614966, -8849387, 2031539, -12391231, -16253183, -13582083},
+               },
+               {
+                       FieldElement{31016211, -16722429, 26371392, -14451233, -5027349, 14854137, 17477601, 3842657, 28012650, -16405420},
+                       FieldElement{-5075835, 9368966, -8562079, -4600902, -15249953, 6970560, -9189873, 16292057, -8867157, 3507940},
+                       FieldElement{29439664, 3537914, 23333589, 6997794, -17555561, -11018068, -15209202, -15051267, -9164929, 6580396},
+               },
+       },
+       {
+               {
+                       FieldElement{-12185861, -7679788, 16438269, 10826160, -8696817, -6235611, 17860444, -9273846, -2095802, 9304567},
+                       FieldElement{20714564, -4336911, 29088195, 7406487, 11426967, -5095705, 14792667, -14608617, 5289421, -477127},
+                       FieldElement{-16665533, -10650790, -6160345, -13305760, 9192020, -1802462, 17271490, 12349094, 26939669, -3752294},
+               },
+               {
+                       FieldElement{-12889898, 9373458, 31595848, 16374215, 21471720, 13221525, -27283495, -12348559, -3698806, 117887},
+                       FieldElement{22263325, -6560050, 3984570, -11174646, -15114008, -566785, 28311253, 5358056, -23319780, 541964},
+                       FieldElement{16259219, 3261970, 2309254, -15534474, -16885711, -4581916, 24134070, -16705829, -13337066, -13552195},
+               },
+               {
+                       FieldElement{9378160, -13140186, -22845982, -12745264, 28198281, -7244098, -2399684, -717351, 690426, 14876244},
+                       FieldElement{24977353, -314384, -8223969, -13465086, 28432343, -1176353, -13068804, -12297348, -22380984, 6618999},
+                       FieldElement{-1538174, 11685646, 12944378, 13682314, -24389511, -14413193, 8044829, -13817328, 32239829, -5652762},
+               },
+               {
+                       FieldElement{-18603066, 4762990, -926250, 8885304, -28412480, -3187315, 9781647, -10350059, 32779359, 5095274},
+                       FieldElement{-33008130, -5214506, -32264887, -3685216, 9460461, -9327423, -24601656, 14506724, 21639561, -2630236},
+                       FieldElement{-16400943, -13112215, 25239338, 15531969, 3987758, -4499318, -1289502, -6863535, 17874574, 558605},
+               },
+               {
+                       FieldElement{-13600129, 10240081, 9171883, 16131053, -20869254, 9599700, 33499487, 5080151, 2085892, 5119761},
+                       FieldElement{-22205145, -2519528, -16381601, 414691, -25019550, 2170430, 30634760, -8363614, -31999993, -5759884},
+                       FieldElement{-6845704, 15791202, 8550074, -1312654, 29928809, -12092256, 27534430, -7192145, -22351378, 12961482},
+               },
+               {
+                       FieldElement{-24492060, -9570771, 10368194, 11582341, -23397293, -2245287, 16533930, 8206996, -30194652, -5159638},
+                       FieldElement{-11121496, -3382234, 2307366, 6362031, -135455, 8868177, -16835630, 7031275, 7589640, 8945490},
+                       FieldElement{-32152748, 8917967, 6661220, -11677616, -1192060, -15793393, 7251489, -11182180, 24099109, -14456170},
+               },
+               {
+                       FieldElement{5019558, -7907470, 4244127, -14714356, -26933272, 6453165, -19118182, -13289025, -6231896, -10280736},
+                       FieldElement{10853594, 10721687, 26480089, 5861829, -22995819, 1972175, -1866647, -10557898, -3363451, -6441124},
+                       FieldElement{-17002408, 5906790, 221599, -6563147, 7828208, -13248918, 24362661, -2008168, -13866408, 7421392},
+               },
+               {
+                       FieldElement{8139927, -6546497, 32257646, -5890546, 30375719, 1886181, -21175108, 15441252, 28826358, -4123029},
+                       FieldElement{6267086, 9695052, 7709135, -16603597, -32869068, -1886135, 14795160, -7840124, 13746021, -1742048},
+                       FieldElement{28584902, 7787108, -6732942, -15050729, 22846041, -7571236, -3181936, -363524, 4771362, -8419958},
+               },
+       },
+       {
+               {
+                       FieldElement{24949256, 6376279, -27466481, -8174608, -18646154, -9930606, 33543569, -12141695, 3569627, 11342593},
+                       FieldElement{26514989, 4740088, 27912651, 3697550, 19331575, -11472339, 6809886, 4608608, 7325975, -14801071},
+                       FieldElement{-11618399, -14554430, -24321212, 7655128, -1369274, 5214312, -27400540, 10258390, -17646694, -8186692},
+               },
+               {
+                       FieldElement{11431204, 15823007, 26570245, 14329124, 18029990, 4796082, -31446179, 15580664, 9280358, -3973687},
+                       FieldElement{-160783, -10326257, -22855316, -4304997, -20861367, -13621002, -32810901, -11181622, -15545091, 4387441},
+                       FieldElement{-20799378, 12194512, 3937617, -5805892, -27154820, 9340370, -24513992, 8548137, 20617071, -7482001},
+               },
+               {
+                       FieldElement{-938825, -3930586, -8714311, 16124718, 24603125, -6225393, -13775352, -11875822, 24345683, 10325460},
+                       FieldElement{-19855277, -1568885, -22202708, 8714034, 14007766, 6928528, 16318175, -1010689, 4766743, 3552007},
+                       FieldElement{-21751364, -16730916, 1351763, -803421, -4009670, 3950935, 3217514, 14481909, 10988822, -3994762},
+               },
+               {
+                       FieldElement{15564307, -14311570, 3101243, 5684148, 30446780, -8051356, 12677127, -6505343, -8295852, 13296005},
+                       FieldElement{-9442290, 6624296, -30298964, -11913677, -4670981, -2057379, 31521204, 9614054, -30000824, 12074674},
+                       FieldElement{4771191, -135239, 14290749, -13089852, 27992298, 14998318, -1413936, -1556716, 29832613, -16391035},
+               },
+               {
+                       FieldElement{7064884, -7541174, -19161962, -5067537, -18891269, -2912736, 25825242, 5293297, -27122660, 13101590},
+                       FieldElement{-2298563, 2439670, -7466610, 1719965, -27267541, -16328445, 32512469, -5317593, -30356070, -4190957},
+                       FieldElement{-30006540, 10162316, -33180176, 3981723, -16482138, -13070044, 14413974, 9515896, 19568978, 9628812},
+               },
+               {
+                       FieldElement{33053803, 199357, 15894591, 1583059, 27380243, -4580435, -17838894, -6106839, -6291786, 3437740},
+                       FieldElement{-18978877, 3884493, 19469877, 12726490, 15913552, 13614290, -22961733, 70104, 7463304, 4176122},
+                       FieldElement{-27124001, 10659917, 11482427, -16070381, 12771467, -6635117, -32719404, -5322751, 24216882, 5944158},
+               },
+               {
+                       FieldElement{8894125, 7450974, -2664149, -9765752, -28080517, -12389115, 19345746, 14680796, 11632993, 5847885},
+                       FieldElement{26942781, -2315317, 9129564, -4906607, 26024105, 11769399, -11518837, 6367194, -9727230, 4782140},
+                       FieldElement{19916461, -4828410, -22910704, -11414391, 25606324, -5972441, 33253853, 8220911, 6358847, -1873857},
+               },
+               {
+                       FieldElement{801428, -2081702, 16569428, 11065167, 29875704, 96627, 7908388, -4480480, -13538503, 1387155},
+                       FieldElement{19646058, 5720633, -11416706, 12814209, 11607948, 12749789, 14147075, 15156355, -21866831, 11835260},
+                       FieldElement{19299512, 1155910, 28703737, 14890794, 2925026, 7269399, 26121523, 15467869, -26560550, 5052483},
+               },
+       },
+       {
+               {
+                       FieldElement{-3017432, 10058206, 1980837, 3964243, 22160966, 12322533, -6431123, -12618185, 12228557, -7003677},
+                       FieldElement{32944382, 14922211, -22844894, 5188528, 21913450, -8719943, 4001465, 13238564, -6114803, 8653815},
+                       FieldElement{22865569, -4652735, 27603668, -12545395, 14348958, 8234005, 24808405, 5719875, 28483275, 2841751},
+               },
+               {
+                       FieldElement{-16420968, -1113305, -327719, -12107856, 21886282, -15552774, -1887966, -315658, 19932058, -12739203},
+                       FieldElement{-11656086, 10087521, -8864888, -5536143, -19278573, -3055912, 3999228, 13239134, -4777469, -13910208},
+                       FieldElement{1382174, -11694719, 17266790, 9194690, -13324356, 9720081, 20403944, 11284705, -14013818, 3093230},
+               },
+               {
+                       FieldElement{16650921, -11037932, -1064178, 1570629, -8329746, 7352753, -302424, 16271225, -24049421, -6691850},
+                       FieldElement{-21911077, -5927941, -4611316, -5560156, -31744103, -10785293, 24123614, 15193618, -21652117, -16739389},
+                       FieldElement{-9935934, -4289447, -25279823, 4372842, 2087473, 10399484, 31870908, 14690798, 17361620, 11864968},
+               },
+               {
+                       FieldElement{-11307610, 6210372, 13206574, 5806320, -29017692, -13967200, -12331205, -7486601, -25578460, -16240689},
+                       FieldElement{14668462, -12270235, 26039039, 15305210, 25515617, 4542480, 10453892, 6577524, 9145645, -6443880},
+                       FieldElement{5974874, 3053895, -9433049, -10385191, -31865124, 3225009, -7972642, 3936128, -5652273, -3050304},
+               },
+               {
+                       FieldElement{30625386, -4729400, -25555961, -12792866, -20484575, 7695099, 17097188, -16303496, -27999779, 1803632},
+                       FieldElement{-3553091, 9865099, -5228566, 4272701, -5673832, -16689700, 14911344, 12196514, -21405489, 7047412},
+                       FieldElement{20093277, 9920966, -11138194, -5343857, 13161587, 12044805, -32856851, 4124601, -32343828, -10257566},
+               },
+               {
+                       FieldElement{-20788824, 14084654, -13531713, 7842147, 19119038, -13822605, 4752377, -8714640, -21679658, 2288038},
+                       FieldElement{-26819236, -3283715, 29965059, 3039786, -14473765, 2540457, 29457502, 14625692, -24819617, 12570232},
+                       FieldElement{-1063558, -11551823, 16920318, 12494842, 1278292, -5869109, -21159943, -3498680, -11974704, 4724943},
+               },
+               {
+                       FieldElement{17960970, -11775534, -4140968, -9702530, -8876562, -1410617, -12907383, -8659932, -29576300, 1903856},
+                       FieldElement{23134274, -14279132, -10681997, -1611936, 20684485, 15770816, -12989750, 3190296, 26955097, 14109738},
+                       FieldElement{15308788, 5320727, -30113809, -14318877, 22902008, 7767164, 29425325, -11277562, 31960942, 11934971},
+               },
+               {
+                       FieldElement{-27395711, 8435796, 4109644, 12222639, -24627868, 14818669, 20638173, 4875028, 10491392, 1379718},
+                       FieldElement{-13159415, 9197841, 3875503, -8936108, -1383712, -5879801, 33518459, 16176658, 21432314, 12180697},
+                       FieldElement{-11787308, 11500838, 13787581, -13832590, -22430679, 10140205, 1465425, 12689540, -10301319, -13872883},
+               },
+       },
+       {
+               {
+                       FieldElement{5414091, -15386041, -21007664, 9643570, 12834970, 1186149, -2622916, -1342231, 26128231, 6032912},
+                       FieldElement{-26337395, -13766162, 32496025, -13653919, 17847801, -12669156, 3604025, 8316894, -25875034, -10437358},
+                       FieldElement{3296484, 6223048, 24680646, -12246460, -23052020, 5903205, -8862297, -4639164, 12376617, 3188849},
+               },
+               {
+                       FieldElement{29190488, -14659046, 27549113, -1183516, 3520066, -10697301, 32049515, -7309113, -16109234, -9852307},
+                       FieldElement{-14744486, -9309156, 735818, -598978, -20407687, -5057904, 25246078, -15795669, 18640741, -960977},
+                       FieldElement{-6928835, -16430795, 10361374, 5642961, 4910474, 12345252, -31638386, -494430, 10530747, 1053335},
+               },
+               {
+                       FieldElement{-29265967, -14186805, -13538216, -12117373, -19457059, -10655384, -31462369, -2948985, 24018831, 15026644},
+                       FieldElement{-22592535, -3145277, -2289276, 5953843, -13440189, 9425631, 25310643, 13003497, -2314791, -15145616},
+                       FieldElement{-27419985, -603321, -8043984, -1669117, -26092265, 13987819, -27297622, 187899, -23166419, -2531735},
+               },
+               {
+                       FieldElement{-21744398, -13810475, 1844840, 5021428, -10434399, -15911473, 9716667, 16266922, -5070217, 726099},
+                       FieldElement{29370922, -6053998, 7334071, -15342259, 9385287, 2247707, -13661962, -4839461, 30007388, -15823341},
+                       FieldElement{-936379, 16086691, 23751945, -543318, -1167538, -5189036, 9137109, 730663, 9835848, 4555336},
+               },
+               {
+                       FieldElement{-23376435, 1410446, -22253753, -12899614, 30867635, 15826977, 17693930, 544696, -11985298, 12422646},
+                       FieldElement{31117226, -12215734, -13502838, 6561947, -9876867, -12757670, -5118685, -4096706, 29120153, 13924425},
+                       FieldElement{-17400879, -14233209, 19675799, -2734756, -11006962, -5858820, -9383939, -11317700, 7240931, -237388},
+               },
+               {
+                       FieldElement{-31361739, -11346780, -15007447, -5856218, -22453340, -12152771, 1222336, 4389483, 3293637, -15551743},
+                       FieldElement{-16684801, -14444245, 11038544, 11054958, -13801175, -3338533, -24319580, 7733547, 12796905, -6335822},
+                       FieldElement{-8759414, -10817836, -25418864, 10783769, -30615557, -9746811, -28253339, 3647836, 3222231, -11160462},
+               },
+               {
+                       FieldElement{18606113, 1693100, -25448386, -15170272, 4112353, 10045021, 23603893, -2048234, -7550776, 2484985},
+                       FieldElement{9255317, -3131197, -12156162, -1004256, 13098013, -9214866, 16377220, -2102812, -19802075, -3034702},
+                       FieldElement{-22729289, 7496160, -5742199, 11329249, 19991973, -3347502, -31718148, 9936966, -30097688, -10618797},
+               },
+               {
+                       FieldElement{21878590, -5001297, 4338336, 13643897, -3036865, 13160960, 19708896, 5415497, -7360503, -4109293},
+                       FieldElement{27736861, 10103576, 12500508, 8502413, -3413016, -9633558, 10436918, -1550276, -23659143, -8132100},
+                       FieldElement{19492550, -12104365, -29681976, -852630, -3208171, 12403437, 30066266, 8367329, 13243957, 8709688},
+               },
+       },
+       {
+               {
+                       FieldElement{12015105, 2801261, 28198131, 10151021, 24818120, -4743133, -11194191, -5645734, 5150968, 7274186},
+                       FieldElement{2831366, -12492146, 1478975, 6122054, 23825128, -12733586, 31097299, 6083058, 31021603, -9793610},
+                       FieldElement{-2529932, -2229646, 445613, 10720828, -13849527, -11505937, -23507731, 16354465, 15067285, -14147707},
+               },
+               {
+                       FieldElement{7840942, 14037873, -33364863, 15934016, -728213, -3642706, 21403988, 1057586, -19379462, -12403220},
+                       FieldElement{915865, -16469274, 15608285, -8789130, -24357026, 6060030, -17371319, 8410997, -7220461, 16527025},
+                       FieldElement{32922597, -556987, 20336074, -16184568, 10903705, -5384487, 16957574, 52992, 23834301, 6588044},
+               },
+               {
+                       FieldElement{32752030, 11232950, 3381995, -8714866, 22652988, -10744103, 17159699, 16689107, -20314580, -1305992},
+                       FieldElement{-4689649, 9166776, -25710296, -10847306, 11576752, 12733943, 7924251, -2752281, 1976123, -7249027},
+                       FieldElement{21251222, 16309901, -2983015, -6783122, 30810597, 12967303, 156041, -3371252, 12331345, -8237197},
+               },
+               {
+                       FieldElement{8651614, -4477032, -16085636, -4996994, 13002507, 2950805, 29054427, -5106970, 10008136, -4667901},
+                       FieldElement{31486080, 15114593, -14261250, 12951354, 14369431, -7387845, 16347321, -13662089, 8684155, -10532952},
+                       FieldElement{19443825, 11385320, 24468943, -9659068, -23919258, 2187569, -26263207, -6086921, 31316348, 14219878},
+               },
+               {
+                       FieldElement{-28594490, 1193785, 32245219, 11392485, 31092169, 15722801, 27146014, 6992409, 29126555, 9207390},
+                       FieldElement{32382935, 1110093, 18477781, 11028262, -27411763, -7548111, -4980517, 10843782, -7957600, -14435730},
+                       FieldElement{2814918, 7836403, 27519878, -7868156, -20894015, -11553689, -21494559, 8550130, 28346258, 1994730},
+               },
+               {
+                       FieldElement{-19578299, 8085545, -14000519, -3948622, 2785838, -16231307, -19516951, 7174894, 22628102, 8115180},
+                       FieldElement{-30405132, 955511, -11133838, -15078069, -32447087, -13278079, -25651578, 3317160, -9943017, 930272},
+                       FieldElement{-15303681, -6833769, 28856490, 1357446, 23421993, 1057177, 24091212, -1388970, -22765376, -10650715},
+               },
+               {
+                       FieldElement{-22751231, -5303997, -12907607, -12768866, -15811511, -7797053, -14839018, -16554220, -1867018, 8398970},
+                       FieldElement{-31969310, 2106403, -4736360, 1362501, 12813763, 16200670, 22981545, -6291273, 18009408, -15772772},
+                       FieldElement{-17220923, -9545221, -27784654, 14166835, 29815394, 7444469, 29551787, -3727419, 19288549, 1325865},
+               },
+               {
+                       FieldElement{15100157, -15835752, -23923978, -1005098, -26450192, 15509408, 12376730, -3479146, 33166107, -8042750},
+                       FieldElement{20909231, 13023121, -9209752, 16251778, -5778415, -8094914, 12412151, 10018715, 2213263, -13878373},
+                       FieldElement{32529814, -11074689, 30361439, -16689753, -9135940, 1513226, 22922121, 6382134, -5766928, 8371348},
+               },
+       },
+       {
+               {
+                       FieldElement{9923462, 11271500, 12616794, 3544722, -29998368, -1721626, 12891687, -8193132, -26442943, 10486144},
+                       FieldElement{-22597207, -7012665, 8587003, -8257861, 4084309, -12970062, 361726, 2610596, -23921530, -11455195},
+                       FieldElement{5408411, -1136691, -4969122, 10561668, 24145918, 14240566, 31319731, -4235541, 19985175, -3436086},
+               },
+               {
+                       FieldElement{-13994457, 16616821, 14549246, 3341099, 32155958, 13648976, -17577068, 8849297, 65030, 8370684},
+                       FieldElement{-8320926, -12049626, 31204563, 5839400, -20627288, -1057277, -19442942, 6922164, 12743482, -9800518},
+                       FieldElement{-2361371, 12678785, 28815050, 4759974, -23893047, 4884717, 23783145, 11038569, 18800704, 255233},
+               },
+               {
+                       FieldElement{-5269658, -1773886, 13957886, 7990715, 23132995, 728773, 13393847, 9066957, 19258688, -14753793},
+                       FieldElement{-2936654, -10827535, -10432089, 14516793, -3640786, 4372541, -31934921, 2209390, -1524053, 2055794},
+                       FieldElement{580882, 16705327, 5468415, -2683018, -30926419, -14696000, -7203346, -8994389, -30021019, 7394435},
+               },
+               {
+                       FieldElement{23838809, 1822728, -15738443, 15242727, 8318092, -3733104, -21672180, -3492205, -4821741, 14799921},
+                       FieldElement{13345610, 9759151, 3371034, -16137791, 16353039, 8577942, 31129804, 13496856, -9056018, 7402518},
+                       FieldElement{2286874, -4435931, -20042458, -2008336, -13696227, 5038122, 11006906, -15760352, 8205061, 1607563},
+               },
+               {
+                       FieldElement{14414086, -8002132, 3331830, -3208217, 22249151, -5594188, 18364661, -2906958, 30019587, -9029278},
+                       FieldElement{-27688051, 1585953, -10775053, 931069, -29120221, -11002319, -14410829, 12029093, 9944378, 8024},
+                       FieldElement{4368715, -3709630, 29874200, -15022983, -20230386, -11410704, -16114594, -999085, -8142388, 5640030},
+               },
+               {
+                       FieldElement{10299610, 13746483, 11661824, 16234854, 7630238, 5998374, 9809887, -16694564, 15219798, -14327783},
+                       FieldElement{27425505, -5719081, 3055006, 10660664, 23458024, 595578, -15398605, -1173195, -18342183, 9742717},
+                       FieldElement{6744077, 2427284, 26042789, 2720740, -847906, 1118974, 32324614, 7406442, 12420155, 1994844},
+               },
+               {
+                       FieldElement{14012521, -5024720, -18384453, -9578469, -26485342, -3936439, -13033478, -10909803, 24319929, -6446333},
+                       FieldElement{16412690, -4507367, 10772641, 15929391, -17068788, -4658621, 10555945, -10484049, -30102368, -4739048},
+                       FieldElement{22397382, -7767684, -9293161, -12792868, 17166287, -9755136, -27333065, 6199366, 21880021, -12250760},
+               },
+               {
+                       FieldElement{-4283307, 5368523, -31117018, 8163389, -30323063, 3209128, 16557151, 8890729, 8840445, 4957760},
+                       FieldElement{-15447727, 709327, -6919446, -10870178, -29777922, 6522332, -21720181, 12130072, -14796503, 5005757},
+                       FieldElement{-2114751, -14308128, 23019042, 15765735, -25269683, 6002752, 10183197, -13239326, -16395286, -2176112},
+               },
+       },
+       {
+               {
+                       FieldElement{-19025756, 1632005, 13466291, -7995100, -23640451, 16573537, -32013908, -3057104, 22208662, 2000468},
+                       FieldElement{3065073, -1412761, -25598674, -361432, -17683065, -5703415, -8164212, 11248527, -3691214, -7414184},
+                       FieldElement{10379208, -6045554, 8877319, 1473647, -29291284, -12507580, 16690915, 2553332, -3132688, 16400289},
+               },
+               {
+                       FieldElement{15716668, 1254266, -18472690, 7446274, -8448918, 6344164, -22097271, -7285580, 26894937, 9132066},
+                       FieldElement{24158887, 12938817, 11085297, -8177598, -28063478, -4457083, -30576463, 64452, -6817084, -2692882},
+                       FieldElement{13488534, 7794716, 22236231, 5989356, 25426474, -12578208, 2350710, -3418511, -4688006, 2364226},
+               },
+               {
+                       FieldElement{16335052, 9132434, 25640582, 6678888, 1725628, 8517937, -11807024, -11697457, 15445875, -7798101},
+                       FieldElement{29004207, -7867081, 28661402, -640412, -12794003, -7943086, 31863255, -4135540, -278050, -15759279},
+                       FieldElement{-6122061, -14866665, -28614905, 14569919, -10857999, -3591829, 10343412, -6976290, -29828287, -10815811},
+               },
+               {
+                       FieldElement{27081650, 3463984, 14099042, -4517604, 1616303, -6205604, 29542636, 15372179, 17293797, 960709},
+                       FieldElement{20263915, 11434237, -5765435, 11236810, 13505955, -10857102, -16111345, 6493122, -19384511, 7639714},
+                       FieldElement{-2830798, -14839232, 25403038, -8215196, -8317012, -16173699, 18006287, -16043750, 29994677, -15808121},
+               },
+               {
+                       FieldElement{9769828, 5202651, -24157398, -13631392, -28051003, -11561624, -24613141, -13860782, -31184575, 709464},
+                       FieldElement{12286395, 13076066, -21775189, -1176622, -25003198, 4057652, -32018128, -8890874, 16102007, 13205847},
+                       FieldElement{13733362, 5599946, 10557076, 3195751, -5557991, 8536970, -25540170, 8525972, 10151379, 10394400},
+               },
+               {
+                       FieldElement{4024660, -16137551, 22436262, 12276534, -9099015, -2686099, 19698229, 11743039, -33302334, 8934414},
+                       FieldElement{-15879800, -4525240, -8580747, -2934061, 14634845, -698278, -9449077, 3137094, -11536886, 11721158},
+                       FieldElement{17555939, -5013938, 8268606, 2331751, -22738815, 9761013, 9319229, 8835153, -9205489, -1280045},
+               },
+               {
+                       FieldElement{-461409, -7830014, 20614118, 16688288, -7514766, -4807119, 22300304, 505429, 6108462, -6183415},
+                       FieldElement{-5070281, 12367917, -30663534, 3234473, 32617080, -8422642, 29880583, -13483331, -26898490, -7867459},
+                       FieldElement{-31975283, 5726539, 26934134, 10237677, -3173717, -605053, 24199304, 3795095, 7592688, -14992079},
+               },
+               {
+                       FieldElement{21594432, -14964228, 17466408, -4077222, 32537084, 2739898, 6407723, 12018833, -28256052, 4298412},
+                       FieldElement{-20650503, -11961496, -27236275, 570498, 3767144, -1717540, 13891942, -1569194, 13717174, 10805743},
+                       FieldElement{-14676630, -15644296, 15287174, 11927123, 24177847, -8175568, -796431, 14860609, -26938930, -5863836},
+               },
+       },
+       {
+               {
+                       FieldElement{12962541, 5311799, -10060768, 11658280, 18855286, -7954201, 13286263, -12808704, -4381056, 9882022},
+                       FieldElement{18512079, 11319350, -20123124, 15090309, 18818594, 5271736, -22727904, 3666879, -23967430, -3299429},
+                       FieldElement{-6789020, -3146043, 16192429, 13241070, 15898607, -14206114, -10084880, -6661110, -2403099, 5276065},
+               },
+               {
+                       FieldElement{30169808, -5317648, 26306206, -11750859, 27814964, 7069267, 7152851, 3684982, 1449224, 13082861},
+                       FieldElement{10342826, 3098505, 2119311, 193222, 25702612, 12233820, 23697382, 15056736, -21016438, -8202000},
+                       FieldElement{-33150110, 3261608, 22745853, 7948688, 19370557, -15177665, -26171976, 6482814, -10300080, -11060101},
+               },
+               {
+                       FieldElement{32869458, -5408545, 25609743, 15678670, -10687769, -15471071, 26112421, 2521008, -22664288, 6904815},
+                       FieldElement{29506923, 4457497, 3377935, -9796444, -30510046, 12935080, 1561737, 3841096, -29003639, -6657642},
+                       FieldElement{10340844, -6630377, -18656632, -2278430, 12621151, -13339055, 30878497, -11824370, -25584551, 5181966},
+               },
+               {
+                       FieldElement{25940115, -12658025, 17324188, -10307374, -8671468, 15029094, 24396252, -16450922, -2322852, -12388574},
+                       FieldElement{-21765684, 9916823, -1300409, 4079498, -1028346, 11909559, 1782390, 12641087, 20603771, -6561742},
+                       FieldElement{-18882287, -11673380, 24849422, 11501709, 13161720, -4768874, 1925523, 11914390, 4662781, 7820689},
+               },
+               {
+                       FieldElement{12241050, -425982, 8132691, 9393934, 32846760, -1599620, 29749456, 12172924, 16136752, 15264020},
+                       FieldElement{-10349955, -14680563, -8211979, 2330220, -17662549, -14545780, 10658213, 6671822, 19012087, 3772772},
+                       FieldElement{3753511, -3421066, 10617074, 2028709, 14841030, -6721664, 28718732, -15762884, 20527771, 12988982},
+               },
+               {
+                       FieldElement{-14822485, -5797269, -3707987, 12689773, -898983, -10914866, -24183046, -10564943, 3299665, -12424953},
+                       FieldElement{-16777703, -15253301, -9642417, 4978983, 3308785, 8755439, 6943197, 6461331, -25583147, 8991218},
+                       FieldElement{-17226263, 1816362, -1673288, -6086439, 31783888, -8175991, -32948145, 7417950, -30242287, 1507265},
+               },
+               {
+                       FieldElement{29692663, 6829891, -10498800, 4334896, 20945975, -11906496, -28887608, 8209391, 14606362, -10647073},
+                       FieldElement{-3481570, 8707081, 32188102, 5672294, 22096700, 1711240, -33020695, 9761487, 4170404, -2085325},
+                       FieldElement{-11587470, 14855945, -4127778, -1531857, -26649089, 15084046, 22186522, 16002000, -14276837, -8400798},
+               },
+               {
+                       FieldElement{-4811456, 13761029, -31703877, -2483919, -3312471, 7869047, -7113572, -9620092, 13240845, 10965870},
+                       FieldElement{-7742563, -8256762, -14768334, -13656260, -23232383, 12387166, 4498947, 14147411, 29514390, 4302863},
+                       FieldElement{-13413405, -12407859, 20757302, -13801832, 14785143, 8976368, -5061276, -2144373, 17846988, -13971927},
+               },
+       },
+       {
+               {
+                       FieldElement{-2244452, -754728, -4597030, -1066309, -6247172, 1455299, -21647728, -9214789, -5222701, 12650267},
+                       FieldElement{-9906797, -16070310, 21134160, 12198166, -27064575, 708126, 387813, 13770293, -19134326, 10958663},
+                       FieldElement{22470984, 12369526, 23446014, -5441109, -21520802, -9698723, -11772496, -11574455, -25083830, 4271862},
+               },
+               {
+                       FieldElement{-25169565, -10053642, -19909332, 15361595, -5984358, 2159192, 75375, -4278529, -32526221, 8469673},
+                       FieldElement{15854970, 4148314, -8893890, 7259002, 11666551, 13824734, -30531198, 2697372, 24154791, -9460943},
+                       FieldElement{15446137, -15806644, 29759747, 14019369, 30811221, -9610191, -31582008, 12840104, 24913809, 9815020},
+               },
+               {
+                       FieldElement{-4709286, -5614269, -31841498, -12288893, -14443537, 10799414, -9103676, 13438769, 18735128, 9466238},
+                       FieldElement{11933045, 9281483, 5081055, -5183824, -2628162, -4905629, -7727821, -10896103, -22728655, 16199064},
+                       FieldElement{14576810, 379472, -26786533, -8317236, -29426508, -10812974, -102766, 1876699, 30801119, 2164795},
+               },
+               {
+                       FieldElement{15995086, 3199873, 13672555, 13712240, -19378835, -4647646, -13081610, -15496269, -13492807, 1268052},
+                       FieldElement{-10290614, -3659039, -3286592, 10948818, 23037027, 3794475, -3470338, -12600221, -17055369, 3565904},
+                       FieldElement{29210088, -9419337, -5919792, -4952785, 10834811, -13327726, -16512102, -10820713, -27162222, -14030531},
+               },
+               {
+                       FieldElement{-13161890, 15508588, 16663704, -8156150, -28349942, 9019123, -29183421, -3769423, 2244111, -14001979},
+                       FieldElement{-5152875, -3800936, -9306475, -6071583, 16243069, 14684434, -25673088, -16180800, 13491506, 4641841},
+                       FieldElement{10813417, 643330, -19188515, -728916, 30292062, -16600078, 27548447, -7721242, 14476989, -12767431},
+               },
+               {
+                       FieldElement{10292079, 9984945, 6481436, 8279905, -7251514, 7032743, 27282937, -1644259, -27912810, 12651324},
+                       FieldElement{-31185513, -813383, 22271204, 11835308, 10201545, 15351028, 17099662, 3988035, 21721536, -3148940},
+                       FieldElement{10202177, -6545839, -31373232, -9574638, -32150642, -8119683, -12906320, 3852694, 13216206, 14842320},
+               },
+               {
+                       FieldElement{-15815640, -10601066, -6538952, -7258995, -6984659, -6581778, -31500847, 13765824, -27434397, 9900184},
+                       FieldElement{14465505, -13833331, -32133984, -14738873, -27443187, 12990492, 33046193, 15796406, -7051866, -8040114},
+                       FieldElement{30924417, -8279620, 6359016, -12816335, 16508377, 9071735, -25488601, 15413635, 9524356, -7018878},
+               },
+               {
+                       FieldElement{12274201, -13175547, 32627641, -1785326, 6736625, 13267305, 5237659, -5109483, 15663516, 4035784},
+                       FieldElement{-2951309, 8903985, 17349946, 601635, -16432815, -4612556, -13732739, -15889334, -22258478, 4659091},
+                       FieldElement{-16916263, -4952973, -30393711, -15158821, 20774812, 15897498, 5736189, 15026997, -2178256, -13455585},
+               },
+       },
+       {
+               {
+                       FieldElement{-8858980, -2219056, 28571666, -10155518, -474467, -10105698, -3801496, 278095, 23440562, -290208},
+                       FieldElement{10226241, -5928702, 15139956, 120818, -14867693, 5218603, 32937275, 11551483, -16571960, -7442864},
+                       FieldElement{17932739, -12437276, -24039557, 10749060, 11316803, 7535897, 22503767, 5561594, -3646624, 3898661},
+               },
+               {
+                       FieldElement{7749907, -969567, -16339731, -16464, -25018111, 15122143, -1573531, 7152530, 21831162, 1245233},
+                       FieldElement{26958459, -14658026, 4314586, 8346991, -5677764, 11960072, -32589295, -620035, -30402091, -16716212},
+                       FieldElement{-12165896, 9166947, 33491384, 13673479, 29787085, 13096535, 6280834, 14587357, -22338025, 13987525},
+               },
+               {
+                       FieldElement{-24349909, 7778775, 21116000, 15572597, -4833266, -5357778, -4300898, -5124639, -7469781, -2858068},
+                       FieldElement{9681908, -6737123, -31951644, 13591838, -6883821, 386950, 31622781, 6439245, -14581012, 4091397},
+                       FieldElement{-8426427, 1470727, -28109679, -1596990, 3978627, -5123623, -19622683, 12092163, 29077877, -14741988},
+               },
+               {
+                       FieldElement{5269168, -6859726, -13230211, -8020715, 25932563, 1763552, -5606110, -5505881, -20017847, 2357889},
+                       FieldElement{32264008, -15407652, -5387735, -1160093, -2091322, -3946900, 23104804, -12869908, 5727338, 189038},
+                       FieldElement{14609123, -8954470, -6000566, -16622781, -14577387, -7743898, -26745169, 10942115, -25888931, -14884697},
+               },
+               {
+                       FieldElement{20513500, 5557931, -15604613, 7829531, 26413943, -2019404, -21378968, 7471781, 13913677, -5137875},
+                       FieldElement{-25574376, 11967826, 29233242, 12948236, -6754465, 4713227, -8940970, 14059180, 12878652, 8511905},
+                       FieldElement{-25656801, 3393631, -2955415, -7075526, -2250709, 9366908, -30223418, 6812974, 5568676, -3127656},
+               },
+               {
+                       FieldElement{11630004, 12144454, 2116339, 13606037, 27378885, 15676917, -17408753, -13504373, -14395196, 8070818},
+                       FieldElement{27117696, -10007378, -31282771, -5570088, 1127282, 12772488, -29845906, 10483306, -11552749, -1028714},
+                       FieldElement{10637467, -5688064, 5674781, 1072708, -26343588, -6982302, -1683975, 9177853, -27493162, 15431203},
+               },
+               {
+                       FieldElement{20525145, 10892566, -12742472, 12779443, -29493034, 16150075, -28240519, 14943142, -15056790, -7935931},
+                       FieldElement{-30024462, 5626926, -551567, -9981087, 753598, 11981191, 25244767, -3239766, -3356550, 9594024},
+                       FieldElement{-23752644, 2636870, -5163910, -10103818, 585134, 7877383, 11345683, -6492290, 13352335, -10977084},
+               },
+               {
+                       FieldElement{-1931799, -5407458, 3304649, -12884869, 17015806, -4877091, -29783850, -7752482, -13215537, -319204},
+                       FieldElement{20239939, 6607058, 6203985, 3483793, -18386976, -779229, -20723742, 15077870, -22750759, 14523817},
+                       FieldElement{27406042, -6041657, 27423596, -4497394, 4996214, 10002360, -28842031, -4545494, -30172742, -4805667},
+               },
+       },
+       {
+               {
+                       FieldElement{11374242, 12660715, 17861383, -12540833, 10935568, 1099227, -13886076, -9091740, -27727044, 11358504},
+                       FieldElement{-12730809, 10311867, 1510375, 10778093, -2119455, -9145702, 32676003, 11149336, -26123651, 4985768},
+                       FieldElement{-19096303, 341147, -6197485, -239033, 15756973, -8796662, -983043, 13794114, -19414307, -15621255},
+               },
+               {
+                       FieldElement{6490081, 11940286, 25495923, -7726360, 8668373, -8751316, 3367603, 6970005, -1691065, -9004790},
+                       FieldElement{1656497, 13457317, 15370807, 6364910, 13605745, 8362338, -19174622, -5475723, -16796596, -5031438},
+                       FieldElement{-22273315, -13524424, -64685, -4334223, -18605636, -10921968, -20571065, -7007978, -99853, -10237333},
+               },
+               {
+                       FieldElement{17747465, 10039260, 19368299, -4050591, -20630635, -16041286, 31992683, -15857976, -29260363, -5511971},
+                       FieldElement{31932027, -4986141, -19612382, 16366580, 22023614, 88450, 11371999, -3744247, 4882242, -10626905},
+                       FieldElement{29796507, 37186, 19818052, 10115756, -11829032, 3352736, 18551198, 3272828, -5190932, -4162409},
+               },
+               {
+                       FieldElement{12501286, 4044383, -8612957, -13392385, -32430052, 5136599, -19230378, -3529697, 330070, -3659409},
+                       FieldElement{6384877, 2899513, 17807477, 7663917, -2358888, 12363165, 25366522, -8573892, -271295, 12071499},
+                       FieldElement{-8365515, -4042521, 25133448, -4517355, -6211027, 2265927, -32769618, 1936675, -5159697, 3829363},
+               },
+               {
+                       FieldElement{28425966, -5835433, -577090, -4697198, -14217555, 6870930, 7921550, -6567787, 26333140, 14267664},
+                       FieldElement{-11067219, 11871231, 27385719, -10559544, -4585914, -11189312, 10004786, -8709488, -21761224, 8930324},
+                       FieldElement{-21197785, -16396035, 25654216, -1725397, 12282012, 11008919, 1541940, 4757911, -26491501, -16408940},
+               },
+               {
+                       FieldElement{13537262, -7759490, -20604840, 10961927, -5922820, -13218065, -13156584, 6217254, -15943699, 13814990},
+                       FieldElement{-17422573, 15157790, 18705543, 29619, 24409717, -260476, 27361681, 9257833, -1956526, -1776914},
+                       FieldElement{-25045300, -10191966, 15366585, 15166509, -13105086, 8423556, -29171540, 12361135, -18685978, 4578290},
+               },
+               {
+                       FieldElement{24579768, 3711570, 1342322, -11180126, -27005135, 14124956, -22544529, 14074919, 21964432, 8235257},
+                       FieldElement{-6528613, -2411497, 9442966, -5925588, 12025640, -1487420, -2981514, -1669206, 13006806, 2355433},
+                       FieldElement{-16304899, -13605259, -6632427, -5142349, 16974359, -10911083, 27202044, 1719366, 1141648, -12796236},
+               },
+               {
+                       FieldElement{-12863944, -13219986, -8318266, -11018091, -6810145, -4843894, 13475066, -3133972, 32674895, 13715045},
+                       FieldElement{11423335, -5468059, 32344216, 8962751, 24989809, 9241752, -13265253, 16086212, -28740881, -15642093},
+                       FieldElement{-1409668, 12530728, -6368726, 10847387, 19531186, -14132160, -11709148, 7791794, -27245943, 4383347},
+               },
+       },
+       {
+               {
+                       FieldElement{-28970898, 5271447, -1266009, -9736989, -12455236, 16732599, -4862407, -4906449, 27193557, 6245191},
+                       FieldElement{-15193956, 5362278, -1783893, 2695834, 4960227, 12840725, 23061898, 3260492, 22510453, 8577507},
+                       FieldElement{-12632451, 11257346, -32692994, 13548177, -721004, 10879011, 31168030, 13952092, -29571492, -3635906},
+               },
+               {
+                       FieldElement{3877321, -9572739, 32416692, 5405324, -11004407, -13656635, 3759769, 11935320, 5611860, 8164018},
+                       FieldElement{-16275802, 14667797, 15906460, 12155291, -22111149, -9039718, 32003002, -8832289, 5773085, -8422109},
+                       FieldElement{-23788118, -8254300, 1950875, 8937633, 18686727, 16459170, -905725, 12376320, 31632953, 190926},
+               },
+               {
+                       FieldElement{-24593607, -16138885, -8423991, 13378746, 14162407, 6901328, -8288749, 4508564, -25341555, -3627528},
+                       FieldElement{8884438, -5884009, 6023974, 10104341, -6881569, -4941533, 18722941, -14786005, -1672488, 827625},
+                       FieldElement{-32720583, -16289296, -32503547, 7101210, 13354605, 2659080, -1800575, -14108036, -24878478, 1541286},
+               },
+               {
+                       FieldElement{2901347, -1117687, 3880376, -10059388, -17620940, -3612781, -21802117, -3567481, 20456845, -1885033},
+                       FieldElement{27019610, 12299467, -13658288, -1603234, -12861660, -4861471, -19540150, -5016058, 29439641, 15138866},
+                       FieldElement{21536104, -6626420, -32447818, -10690208, -22408077, 5175814, -5420040, -16361163, 7779328, 109896},
+               },
+               {
+                       FieldElement{30279744, 14648750, -8044871, 6425558, 13639621, -743509, 28698390, 12180118, 23177719, -554075},
+                       FieldElement{26572847, 3405927, -31701700, 12890905, -19265668, 5335866, -6493768, 2378492, 4439158, -13279347},
+                       FieldElement{-22716706, 3489070, -9225266, -332753, 18875722, -1140095, 14819434, -12731527, -17717757, -5461437},
+               },
+               {
+                       FieldElement{-5056483, 16566551, 15953661, 3767752, -10436499, 15627060, -820954, 2177225, 8550082, -15114165},
+                       FieldElement{-18473302, 16596775, -381660, 15663611, 22860960, 15585581, -27844109, -3582739, -23260460, -8428588},
+                       FieldElement{-32480551, 15707275, -8205912, -5652081, 29464558, 2713815, -22725137, 15860482, -21902570, 1494193},
+               },
+               {
+                       FieldElement{-19562091, -14087393, -25583872, -9299552, 13127842, 759709, 21923482, 16529112, 8742704, 12967017},
+                       FieldElement{-28464899, 1553205, 32536856, -10473729, -24691605, -406174, -8914625, -2933896, -29903758, 15553883},
+                       FieldElement{21877909, 3230008, 9881174, 10539357, -4797115, 2841332, 11543572, 14513274, 19375923, -12647961},
+               },
+               {
+                       FieldElement{8832269, -14495485, 13253511, 5137575, 5037871, 4078777, 24880818, -6222716, 2862653, 9455043},
+                       FieldElement{29306751, 5123106, 20245049, -14149889, 9592566, 8447059, -2077124, -2990080, 15511449, 4789663},
+                       FieldElement{-20679756, 7004547, 8824831, -9434977, -4045704, -3750736, -5754762, 108893, 23513200, 16652362},
+               },
+       },
+       {
+               {
+                       FieldElement{-33256173, 4144782, -4476029, -6579123, 10770039, -7155542, -6650416, -12936300, -18319198, 10212860},
+                       FieldElement{2756081, 8598110, 7383731, -6859892, 22312759, -1105012, 21179801, 2600940, -9988298, -12506466},
+                       FieldElement{-24645692, 13317462, -30449259, -15653928, 21365574, -10869657, 11344424, 864440, -2499677, -16710063},
+               },
+               {
+                       FieldElement{-26432803, 6148329, -17184412, -14474154, 18782929, -275997, -22561534, 211300, 2719757, 4940997},
+                       FieldElement{-1323882, 3911313, -6948744, 14759765, -30027150, 7851207, 21690126, 8518463, 26699843, 5276295},
+                       FieldElement{-13149873, -6429067, 9396249, 365013, 24703301, -10488939, 1321586, 149635, -15452774, 7159369},
+               },
+               {
+                       FieldElement{9987780, -3404759, 17507962, 9505530, 9731535, -2165514, 22356009, 8312176, 22477218, -8403385},
+                       FieldElement{18155857, -16504990, 19744716, 9006923, 15154154, -10538976, 24256460, -4864995, -22548173, 9334109},
+                       FieldElement{2986088, -4911893, 10776628, -3473844, 10620590, -7083203, -21413845, 14253545, -22587149, 536906},
+               },
+               {
+                       FieldElement{4377756, 8115836, 24567078, 15495314, 11625074, 13064599, 7390551, 10589625, 10838060, -15420424},
+                       FieldElement{-19342404, 867880, 9277171, -3218459, -14431572, -1986443, 19295826, -15796950, 6378260, 699185},
+                       FieldElement{7895026, 4057113, -7081772, -13077756, -17886831, -323126, -716039, 15693155, -5045064, -13373962},
+               },
+               {
+                       FieldElement{-7737563, -5869402, -14566319, -7406919, 11385654, 13201616, 31730678, -10962840, -3918636, -9669325},
+                       FieldElement{10188286, -15770834, -7336361, 13427543, 22223443, 14896287, 30743455, 7116568, -21786507, 5427593},
+                       FieldElement{696102, 13206899, 27047647, -10632082, 15285305, -9853179, 10798490, -4578720, 19236243, 12477404},
+               },
+               {
+                       FieldElement{-11229439, 11243796, -17054270, -8040865, -788228, -8167967, -3897669, 11180504, -23169516, 7733644},
+                       FieldElement{17800790, -14036179, -27000429, -11766671, 23887827, 3149671, 23466177, -10538171, 10322027, 15313801},
+                       FieldElement{26246234, 11968874, 32263343, -5468728, 6830755, -13323031, -15794704, -101982, -24449242, 10890804},
+               },
+               {
+                       FieldElement{-31365647, 10271363, -12660625, -6267268, 16690207, -13062544, -14982212, 16484931, 25180797, -5334884},
+                       FieldElement{-586574, 10376444, -32586414, -11286356, 19801893, 10997610, 2276632, 9482883, 316878, 13820577},
+                       FieldElement{-9882808, -4510367, -2115506, 16457136, -11100081, 11674996, 30756178, -7515054, 30696930, -3712849},
+               },
+               {
+                       FieldElement{32988917, -9603412, 12499366, 7910787, -10617257, -11931514, -7342816, -9985397, -32349517, 7392473},
+                       FieldElement{-8855661, 15927861, 9866406, -3649411, -2396914, -16655781, -30409476, -9134995, 25112947, -2926644},
+                       FieldElement{-2504044, -436966, 25621774, -5678772, 15085042, -5479877, -24884878, -13526194, 5537438, -13914319},
+               },
+       },
+       {
+               {
+                       FieldElement{-11225584, 2320285, -9584280, 10149187, -33444663, 5808648, -14876251, -1729667, 31234590, 6090599},
+                       FieldElement{-9633316, 116426, 26083934, 2897444, -6364437, -2688086, 609721, 15878753, -6970405, -9034768},
+                       FieldElement{-27757857, 247744, -15194774, -9002551, 23288161, -10011936, -23869595, 6503646, 20650474, 1804084},
+               },
+               {
+                       FieldElement{-27589786, 15456424, 8972517, 8469608, 15640622, 4439847, 3121995, -10329713, 27842616, -202328},
+                       FieldElement{-15306973, 2839644, 22530074, 10026331, 4602058, 5048462, 28248656, 5031932, -11375082, 12714369},
+                       FieldElement{20807691, -7270825, 29286141, 11421711, -27876523, -13868230, -21227475, 1035546, -19733229, 12796920},
+               },
+               {
+                       FieldElement{12076899, -14301286, -8785001, -11848922, -25012791, 16400684, -17591495, -12899438, 3480665, -15182815},
+                       FieldElement{-32361549, 5457597, 28548107, 7833186, 7303070, -11953545, -24363064, -15921875, -33374054, 2771025},
+                       FieldElement{-21389266, 421932, 26597266, 6860826, 22486084, -6737172, -17137485, -4210226, -24552282, 15673397},
+               },
+               {
+                       FieldElement{-20184622, 2338216, 19788685, -9620956, -4001265, -8740893, -20271184, 4733254, 3727144, -12934448},
+                       FieldElement{6120119, 814863, -11794402, -622716, 6812205, -15747771, 2019594, 7975683, 31123697, -10958981},
+                       FieldElement{30069250, -11435332, 30434654, 2958439, 18399564, -976289, 12296869, 9204260, -16432438, 9648165},
+               },
+               {
+                       FieldElement{32705432, -1550977, 30705658, 7451065, -11805606, 9631813, 3305266, 5248604, -26008332, -11377501},
+                       FieldElement{17219865, 2375039, -31570947, -5575615, -19459679, 9219903, 294711, 15298639, 2662509, -16297073},
+                       FieldElement{-1172927, -7558695, -4366770, -4287744, -21346413, -8434326, 32087529, -1222777, 32247248, -14389861},
+               },
+               {
+                       FieldElement{14312628, 1221556, 17395390, -8700143, -4945741, -8684635, -28197744, -9637817, -16027623, -13378845},
+                       FieldElement{-1428825, -9678990, -9235681, 6549687, -7383069, -468664, 23046502, 9803137, 17597934, 2346211},
+                       FieldElement{18510800, 15337574, 26171504, 981392, -22241552, 7827556, -23491134, -11323352, 3059833, -11782870},
+               },
+               {
+                       FieldElement{10141598, 6082907, 17829293, -1947643, 9830092, 13613136, -25556636, -5544586, -33502212, 3592096},
+                       FieldElement{33114168, -15889352, -26525686, -13343397, 33076705, 8716171, 1151462, 1521897, -982665, -6837803},
+                       FieldElement{-32939165, -4255815, 23947181, -324178, -33072974, -12305637, -16637686, 3891704, 26353178, 693168},
+               },
+               {
+                       FieldElement{30374239, 1595580, -16884039, 13186931, 4600344, 406904, 9585294, -400668, 31375464, 14369965},
+                       FieldElement{-14370654, -7772529, 1510301, 6434173, -18784789, -6262728, 32732230, -13108839, 17901441, 16011505},
+                       FieldElement{18171223, -11934626, -12500402, 15197122, -11038147, -15230035, -19172240, -16046376, 8764035, 12309598},
+               },
+       },
+       {
+               {
+                       FieldElement{5975908, -5243188, -19459362, -9681747, -11541277, 14015782, -23665757, 1228319, 17544096, -10593782},
+                       FieldElement{5811932, -1715293, 3442887, -2269310, -18367348, -8359541, -18044043, -15410127, -5565381, 12348900},
+                       FieldElement{-31399660, 11407555, 25755363, 6891399, -3256938, 14872274, -24849353, 8141295, -10632534, -585479},
+               },
+               {
+                       FieldElement{-12675304, 694026, -5076145, 13300344, 14015258, -14451394, -9698672, -11329050, 30944593, 1130208},
+                       FieldElement{8247766, -6710942, -26562381, -7709309, -14401939, -14648910, 4652152, 2488540, 23550156, -271232},
+                       FieldElement{17294316, -3788438, 7026748, 15626851, 22990044, 113481, 2267737, -5908146, -408818, -137719},
+               },
+               {
+                       FieldElement{16091085, -16253926, 18599252, 7340678, 2137637, -1221657, -3364161, 14550936, 3260525, -7166271},
+                       FieldElement{-4910104, -13332887, 18550887, 10864893, -16459325, -7291596, -23028869, -13204905, -12748722, 2701326},
+                       FieldElement{-8574695, 16099415, 4629974, -16340524, -20786213, -6005432, -10018363, 9276971, 11329923, 1862132},
+               },
+               {
+                       FieldElement{14763076, -15903608, -30918270, 3689867, 3511892, 10313526, -21951088, 12219231, -9037963, -940300},
+                       FieldElement{8894987, -3446094, 6150753, 3013931, 301220, 15693451, -31981216, -2909717, -15438168, 11595570},
+                       FieldElement{15214962, 3537601, -26238722, -14058872, 4418657, -15230761, 13947276, 10730794, -13489462, -4363670},
+               },
+               {
+                       FieldElement{-2538306, 7682793, 32759013, 263109, -29984731, -7955452, -22332124, -10188635, 977108, 699994},
+                       FieldElement{-12466472, 4195084, -9211532, 550904, -15565337, 12917920, 19118110, -439841, -30534533, -14337913},
+                       FieldElement{31788461, -14507657, 4799989, 7372237, 8808585, -14747943, 9408237, -10051775, 12493932, -5409317},
+               },
+               {
+                       FieldElement{-25680606, 5260744, -19235809, -6284470, -3695942, 16566087, 27218280, 2607121, 29375955, 6024730},
+                       FieldElement{842132, -2794693, -4763381, -8722815, 26332018, -12405641, 11831880, 6985184, -9940361, 2854096},
+                       FieldElement{-4847262, -7969331, 2516242, -5847713, 9695691, -7221186, 16512645, 960770, 12121869, 16648078},
+               },
+               {
+                       FieldElement{-15218652, 14667096, -13336229, 2013717, 30598287, -464137, -31504922, -7882064, 20237806, 2838411},
+                       FieldElement{-19288047, 4453152, 15298546, -16178388, 22115043, -15972604, 12544294, -13470457, 1068881, -12499905},
+                       FieldElement{-9558883, -16518835, 33238498, 13506958, 30505848, -1114596, -8486907, -2630053, 12521378, 4845654},
+               },
+               {
+                       FieldElement{-28198521, 10744108, -2958380, 10199664, 7759311, -13088600, 3409348, -873400, -6482306, -12885870},
+                       FieldElement{-23561822, 6230156, -20382013, 10655314, -24040585, -11621172, 10477734, -1240216, -3113227, 13974498},
+                       FieldElement{12966261, 15550616, -32038948, -1615346, 21025980, -629444, 5642325, 7188737, 18895762, 12629579},
+               },
+       },
+       {
+               {
+                       FieldElement{14741879, -14946887, 22177208, -11721237, 1279741, 8058600, 11758140, 789443, 32195181, 3895677},
+                       FieldElement{10758205, 15755439, -4509950, 9243698, -4879422, 6879879, -2204575, -3566119, -8982069, 4429647},
+                       FieldElement{-2453894, 15725973, -20436342, -10410672, -5803908, -11040220, -7135870, -11642895, 18047436, -15281743},
+               },
+               {
+                       FieldElement{-25173001, -11307165, 29759956, 11776784, -22262383, -15820455, 10993114, -12850837, -17620701, -9408468},
+                       FieldElement{21987233, 700364, -24505048, 14972008, -7774265, -5718395, 32155026, 2581431, -29958985, 8773375},
+                       FieldElement{-25568350, 454463, -13211935, 16126715, 25240068, 8594567, 20656846, 12017935, -7874389, -13920155},
+               },
+               {
+                       FieldElement{6028182, 6263078, -31011806, -11301710, -818919, 2461772, -31841174, -5468042, -1721788, -2776725},
+                       FieldElement{-12278994, 16624277, 987579, -5922598, 32908203, 1248608, 7719845, -4166698, 28408820, 6816612},
+                       FieldElement{-10358094, -8237829, 19549651, -12169222, 22082623, 16147817, 20613181, 13982702, -10339570, 5067943},
+               },
+               {
+                       FieldElement{-30505967, -3821767, 12074681, 13582412, -19877972, 2443951, -19719286, 12746132, 5331210, -10105944},
+                       FieldElement{30528811, 3601899, -1957090, 4619785, -27361822, -15436388, 24180793, -12570394, 27679908, -1648928},
+                       FieldElement{9402404, -13957065, 32834043, 10838634, -26580150, -13237195, 26653274, -8685565, 22611444, -12715406},
+               },
+               {
+                       FieldElement{22190590, 1118029, 22736441, 15130463, -30460692, -5991321, 19189625, -4648942, 4854859, 6622139},
+                       FieldElement{-8310738, -2953450, -8262579, -3388049, -10401731, -271929, 13424426, -3567227, 26404409, 13001963},
+                       FieldElement{-31241838, -15415700, -2994250, 8939346, 11562230, -12840670, -26064365, -11621720, -15405155, 11020693},
+               },
+               {
+                       FieldElement{1866042, -7949489, -7898649, -10301010, 12483315, 13477547, 3175636, -12424163, 28761762, 1406734},
+                       FieldElement{-448555, -1777666, 13018551, 3194501, -9580420, -11161737, 24760585, -4347088, 25577411, -13378680},
+                       FieldElement{-24290378, 4759345, -690653, -1852816, 2066747, 10693769, -29595790, 9884936, -9368926, 4745410},
+               },
+               {
+                       FieldElement{-9141284, 6049714, -19531061, -4341411, -31260798, 9944276, -15462008, -11311852, 10931924, -11931931},
+                       FieldElement{-16561513, 14112680, -8012645, 4817318, -8040464, -11414606, -22853429, 10856641, -20470770, 13434654},
+                       FieldElement{22759489, -10073434, -16766264, -1871422, 13637442, -10168091, 1765144, -12654326, 28445307, -5364710},
+               },
+               {
+                       FieldElement{29875063, 12493613, 2795536, -3786330, 1710620, 15181182, -10195717, -8788675, 9074234, 1167180},
+                       FieldElement{-26205683, 11014233, -9842651, -2635485, -26908120, 7532294, -18716888, -9535498, 3843903, 9367684},
+                       FieldElement{-10969595, -6403711, 9591134, 9582310, 11349256, 108879, 16235123, 8601684, -139197, 4242895},
+               },
+       },
+       {
+               {
+                       FieldElement{22092954, -13191123, -2042793, -11968512, 32186753, -11517388, -6574341, 2470660, -27417366, 16625501},
+                       FieldElement{-11057722, 3042016, 13770083, -9257922, 584236, -544855, -7770857, 2602725, -27351616, 14247413},
+                       FieldElement{6314175, -10264892, -32772502, 15957557, -10157730, 168750, -8618807, 14290061, 27108877, -1180880},
+               },
+               {
+                       FieldElement{-8586597, -7170966, 13241782, 10960156, -32991015, -13794596, 33547976, -11058889, -27148451, 981874},
+                       FieldElement{22833440, 9293594, -32649448, -13618667, -9136966, 14756819, -22928859, -13970780, -10479804, -16197962},
+                       FieldElement{-7768587, 3326786, -28111797, 10783824, 19178761, 14905060, 22680049, 13906969, -15933690, 3797899},
+               },
+               {
+                       FieldElement{21721356, -4212746, -12206123, 9310182, -3882239, -13653110, 23740224, -2709232, 20491983, -8042152},
+                       FieldElement{9209270, -15135055, -13256557, -6167798, -731016, 15289673, 25947805, 15286587, 30997318, -6703063},
+                       FieldElement{7392032, 16618386, 23946583, -8039892, -13265164, -1533858, -14197445, -2321576, 17649998, -250080},
+               },
+               {
+                       FieldElement{-9301088, -14193827, 30609526, -3049543, -25175069, -1283752, -15241566, -9525724, -2233253, 7662146},
+                       FieldElement{-17558673, 1763594, -33114336, 15908610, -30040870, -12174295, 7335080, -8472199, -3174674, 3440183},
+                       FieldElement{-19889700, -5977008, -24111293, -9688870, 10799743, -16571957, 40450, -4431835, 4862400, 1133},
+               },
+               {
+                       FieldElement{-32856209, -7873957, -5422389, 14860950, -16319031, 7956142, 7258061, 311861, -30594991, -7379421},
+                       FieldElement{-3773428, -1565936, 28985340, 7499440, 24445838, 9325937, 29727763, 16527196, 18278453, 15405622},
+                       FieldElement{-4381906, 8508652, -19898366, -3674424, -5984453, 15149970, -13313598, 843523, -21875062, 13626197},
+               },
+               {
+                       FieldElement{2281448, -13487055, -10915418, -2609910, 1879358, 16164207, -10783882, 3953792, 13340839, 15928663},
+                       FieldElement{31727126, -7179855, -18437503, -8283652, 2875793, -16390330, -25269894, -7014826, -23452306, 5964753},
+                       FieldElement{4100420, -5959452, -17179337, 6017714, -18705837, 12227141, -26684835, 11344144, 2538215, -7570755},
+               },
+               {
+                       FieldElement{-9433605, 6123113, 11159803, -2156608, 30016280, 14966241, -20474983, 1485421, -629256, -15958862},
+                       FieldElement{-26804558, 4260919, 11851389, 9658551, -32017107, 16367492, -20205425, -13191288, 11659922, -11115118},
+                       FieldElement{26180396, 10015009, -30844224, -8581293, 5418197, 9480663, 2231568, -10170080, 33100372, -1306171},
+               },
+               {
+                       FieldElement{15121113, -5201871, -10389905, 15427821, -27509937, -15992507, 21670947, 4486675, -5931810, -14466380},
+                       FieldElement{16166486, -9483733, -11104130, 6023908, -31926798, -1364923, 2340060, -16254968, -10735770, -10039824},
+                       FieldElement{28042865, -3557089, -12126526, 12259706, -3717498, -6945899, 6766453, -8689599, 18036436, 5803270},
+               },
+       },
+       {
+               {
+                       FieldElement{-817581, 6763912, 11803561, 1585585, 10958447, -2671165, 23855391, 4598332, -6159431, -14117438},
+                       FieldElement{-31031306, -14256194, 17332029, -2383520, 31312682, -5967183, 696309, 50292, -20095739, 11763584},
+                       FieldElement{-594563, -2514283, -32234153, 12643980, 12650761, 14811489, 665117, -12613632, -19773211, -10713562},
+               },
+               {
+                       FieldElement{30464590, -11262872, -4127476, -12734478, 19835327, -7105613, -24396175, 2075773, -17020157, 992471},
+                       FieldElement{18357185, -6994433, 7766382, 16342475, -29324918, 411174, 14578841, 8080033, -11574335, -10601610},
+                       FieldElement{19598397, 10334610, 12555054, 2555664, 18821899, -10339780, 21873263, 16014234, 26224780, 16452269},
+               },
+               {
+                       FieldElement{-30223925, 5145196, 5944548, 16385966, 3976735, 2009897, -11377804, -7618186, -20533829, 3698650},
+                       FieldElement{14187449, 3448569, -10636236, -10810935, -22663880, -3433596, 7268410, -10890444, 27394301, 12015369},
+                       FieldElement{19695761, 16087646, 28032085, 12999827, 6817792, 11427614, 20244189, -1312777, -13259127, -3402461},
+               },
+               {
+                       FieldElement{30860103, 12735208, -1888245, -4699734, -16974906, 2256940, -8166013, 12298312, -8550524, -10393462},
+                       FieldElement{-5719826, -11245325, -1910649, 15569035, 26642876, -7587760, -5789354, -15118654, -4976164, 12651793},
+                       FieldElement{-2848395, 9953421, 11531313, -5282879, 26895123, -12697089, -13118820, -16517902, 9768698, -2533218},
+               },
+               {
+                       FieldElement{-24719459, 1894651, -287698, -4704085, 15348719, -8156530, 32767513, 12765450, 4940095, 10678226},
+                       FieldElement{18860224, 15980149, -18987240, -1562570, -26233012, -11071856, -7843882, 13944024, -24372348, 16582019},
+                       FieldElement{-15504260, 4970268, -29893044, 4175593, -20993212, -2199756, -11704054, 15444560, -11003761, 7989037},
+               },
+               {
+                       FieldElement{31490452, 5568061, -2412803, 2182383, -32336847, 4531686, -32078269, 6200206, -19686113, -14800171},
+                       FieldElement{-17308668, -15879940, -31522777, -2831, -32887382, 16375549, 8680158, -16371713, 28550068, -6857132},
+                       FieldElement{-28126887, -5688091, 16837845, -1820458, -6850681, 12700016, -30039981, 4364038, 1155602, 5988841},
+               },
+               {
+                       FieldElement{21890435, -13272907, -12624011, 12154349, -7831873, 15300496, 23148983, -4470481, 24618407, 8283181},
+                       FieldElement{-33136107, -10512751, 9975416, 6841041, -31559793, 16356536, 3070187, -7025928, 1466169, 10740210},
+                       FieldElement{-1509399, -15488185, -13503385, -10655916, 32799044, 909394, -13938903, -5779719, -32164649, -15327040},
+               },
+               {
+                       FieldElement{3960823, -14267803, -28026090, -15918051, -19404858, 13146868, 15567327, 951507, -3260321, -573935},
+                       FieldElement{24740841, 5052253, -30094131, 8961361, 25877428, 6165135, -24368180, 14397372, -7380369, -6144105},
+                       FieldElement{-28888365, 3510803, -28103278, -1158478, -11238128, -10631454, -15441463, -14453128, -1625486, -6494814},
+               },
+       },
+       {
+               {
+                       FieldElement{793299, -9230478, 8836302, -6235707, -27360908, -2369593, 33152843, -4885251, -9906200, -621852},
+                       FieldElement{5666233, 525582, 20782575, -8038419, -24538499, 14657740, 16099374, 1468826, -6171428, -15186581},
+                       FieldElement{-4859255, -3779343, -2917758, -6748019, 7778750, 11688288, -30404353, -9871238, -1558923, -9863646},
+               },
+               {
+                       FieldElement{10896332, -7719704, 824275, 472601, -19460308, 3009587, 25248958, 14783338, -30581476, -15757844},
+                       FieldElement{10566929, 12612572, -31944212, 11118703, -12633376, 12362879, 21752402, 8822496, 24003793, 14264025},
+                       FieldElement{27713862, -7355973, -11008240, 9227530, 27050101, 2504721, 23886875, -13117525, 13958495, -5732453},
+               },
+               {
+                       FieldElement{-23481610, 4867226, -27247128, 3900521, 29838369, -8212291, -31889399, -10041781, 7340521, -15410068},
+                       FieldElement{4646514, -8011124, -22766023, -11532654, 23184553, 8566613, 31366726, -1381061, -15066784, -10375192},
+                       FieldElement{-17270517, 12723032, -16993061, 14878794, 21619651, -6197576, 27584817, 3093888, -8843694, 3849921},
+               },
+               {
+                       FieldElement{-9064912, 2103172, 25561640, -15125738, -5239824, 9582958, 32477045, -9017955, 5002294, -15550259},
+                       FieldElement{-12057553, -11177906, 21115585, -13365155, 8808712, -12030708, 16489530, 13378448, -25845716, 12741426},
+                       FieldElement{-5946367, 10645103, -30911586, 15390284, -3286982, -7118677, 24306472, 15852464, 28834118, -7646072},
+               },
+               {
+                       FieldElement{-17335748, -9107057, -24531279, 9434953, -8472084, -583362, -13090771, 455841, 20461858, 5491305},
+                       FieldElement{13669248, -16095482, -12481974, -10203039, -14569770, -11893198, -24995986, 11293807, -28588204, -9421832},
+                       FieldElement{28497928, 6272777, -33022994, 14470570, 8906179, -1225630, 18504674, -14165166, 29867745, -8795943},
+               },
+               {
+                       FieldElement{-16207023, 13517196, -27799630, -13697798, 24009064, -6373891, -6367600, -13175392, 22853429, -4012011},
+                       FieldElement{24191378, 16712145, -13931797, 15217831, 14542237, 1646131, 18603514, -11037887, 12876623, -2112447},
+                       FieldElement{17902668, 4518229, -411702, -2829247, 26878217, 5258055, -12860753, 608397, 16031844, 3723494},
+               },
+               {
+                       FieldElement{-28632773, 12763728, -20446446, 7577504, 33001348, -13017745, 17558842, -7872890, 23896954, -4314245},
+                       FieldElement{-20005381, -12011952, 31520464, 605201, 2543521, 5991821, -2945064, 7229064, -9919646, -8826859},
+                       FieldElement{28816045, 298879, -28165016, -15920938, 19000928, -1665890, -12680833, -2949325, -18051778, -2082915},
+               },
+               {
+                       FieldElement{16000882, -344896, 3493092, -11447198, -29504595, -13159789, 12577740, 16041268, -19715240, 7847707},
+                       FieldElement{10151868, 10572098, 27312476, 7922682, 14825339, 4723128, -32855931, -6519018, -10020567, 3852848},
+                       FieldElement{-11430470, 15697596, -21121557, -4420647, 5386314, 15063598, 16514493, -15932110, 29330899, -15076224},
+               },
+       },
+       {
+               {
+                       FieldElement{-25499735, -4378794, -15222908, -6901211, 16615731, 2051784, 3303702, 15490, -27548796, 12314391},
+                       FieldElement{15683520, -6003043, 18109120, -9980648, 15337968, -5997823, -16717435, 15921866, 16103996, -3731215},
+                       FieldElement{-23169824, -10781249, 13588192, -1628807, -3798557, -1074929, -19273607, 5402699, -29815713, -9841101},
+               },
+               {
+                       FieldElement{23190676, 2384583, -32714340, 3462154, -29903655, -1529132, -11266856, 8911517, -25205859, 2739713},
+                       FieldElement{21374101, -3554250, -33524649, 9874411, 15377179, 11831242, -33529904, 6134907, 4931255, 11987849},
+                       FieldElement{-7732, -2978858, -16223486, 7277597, 105524, -322051, -31480539, 13861388, -30076310, 10117930},
+               },
+               {
+                       FieldElement{-29501170, -10744872, -26163768, 13051539, -25625564, 5089643, -6325503, 6704079, 12890019, 15728940},
+                       FieldElement{-21972360, -11771379, -951059, -4418840, 14704840, 2695116, 903376, -10428139, 12885167, 8311031},
+                       FieldElement{-17516482, 5352194, 10384213, -13811658, 7506451, 13453191, 26423267, 4384730, 1888765, -5435404},
+               },
+               {
+                       FieldElement{-25817338, -3107312, -13494599, -3182506, 30896459, -13921729, -32251644, -12707869, -19464434, -3340243},
+                       FieldElement{-23607977, -2665774, -526091, 4651136, 5765089, 4618330, 6092245, 14845197, 17151279, -9854116},
+                       FieldElement{-24830458, -12733720, -15165978, 10367250, -29530908, -265356, 22825805, -7087279, -16866484, 16176525},
+               },
+               {
+                       FieldElement{-23583256, 6564961, 20063689, 3798228, -4740178, 7359225, 2006182, -10363426, -28746253, -10197509},
+                       FieldElement{-10626600, -4486402, -13320562, -5125317, 3432136, -6393229, 23632037, -1940610, 32808310, 1099883},
+                       FieldElement{15030977, 5768825, -27451236, -2887299, -6427378, -15361371, -15277896, -6809350, 2051441, -15225865},
+               },
+               {
+                       FieldElement{-3362323, -7239372, 7517890, 9824992, 23555850, 295369, 5148398, -14154188, -22686354, 16633660},
+                       FieldElement{4577086, -16752288, 13249841, -15304328, 19958763, -14537274, 18559670, -10759549, 8402478, -9864273},
+                       FieldElement{-28406330, -1051581, -26790155, -907698, -17212414, -11030789, 9453451, -14980072, 17983010, 9967138},
+               },
+               {
+                       FieldElement{-25762494, 6524722, 26585488, 9969270, 24709298, 1220360, -1677990, 7806337, 17507396, 3651560},
+                       FieldElement{-10420457, -4118111, 14584639, 15971087, -15768321, 8861010, 26556809, -5574557, -18553322, -11357135},
+                       FieldElement{2839101, 14284142, 4029895, 3472686, 14402957, 12689363, -26642121, 8459447, -5605463, -7621941},
+               },
+               {
+                       FieldElement{-4839289, -3535444, 9744961, 2871048, 25113978, 3187018, -25110813, -849066, 17258084, -7977739},
+                       FieldElement{18164541, -10595176, -17154882, -1542417, 19237078, -9745295, 23357533, -15217008, 26908270, 12150756},
+                       FieldElement{-30264870, -7647865, 5112249, -7036672, -1499807, -6974257, 43168, -5537701, -32302074, 16215819},
+               },
+       },
+       {
+               {
+                       FieldElement{-6898905, 9824394, -12304779, -4401089, -31397141, -6276835, 32574489, 12532905, -7503072, -8675347},
+                       FieldElement{-27343522, -16515468, -27151524, -10722951, 946346, 16291093, 254968, 7168080, 21676107, -1943028},
+                       FieldElement{21260961, -8424752, -16831886, -11920822, -23677961, 3968121, -3651949, -6215466, -3556191, -7913075},
+               },
+               {
+                       FieldElement{16544754, 13250366, -16804428, 15546242, -4583003, 12757258, -2462308, -8680336, -18907032, -9662799},
+                       FieldElement{-2415239, -15577728, 18312303, 4964443, -15272530, -12653564, 26820651, 16690659, 25459437, -4564609},
+                       FieldElement{-25144690, 11425020, 28423002, -11020557, -6144921, -15826224, 9142795, -2391602, -6432418, -1644817},
+               },
+               {
+                       FieldElement{-23104652, 6253476, 16964147, -3768872, -25113972, -12296437, -27457225, -16344658, 6335692, 7249989},
+                       FieldElement{-30333227, 13979675, 7503222, -12368314, -11956721, -4621693, -30272269, 2682242, 25993170, -12478523},
+                       FieldElement{4364628, 5930691, 32304656, -10044554, -8054781, 15091131, 22857016, -10598955, 31820368, 15075278},
+               },
+               {
+                       FieldElement{31879134, -8918693, 17258761, 90626, -8041836, -4917709, 24162788, -9650886, -17970238, 12833045},
+                       FieldElement{19073683, 14851414, -24403169, -11860168, 7625278, 11091125, -19619190, 2074449, -9413939, 14905377},
+                       FieldElement{24483667, -11935567, -2518866, -11547418, -1553130, 15355506, -25282080, 9253129, 27628530, -7555480},
+               },
+               {
+                       FieldElement{17597607, 8340603, 19355617, 552187, 26198470, -3176583, 4593324, -9157582, -14110875, 15297016},
+                       FieldElement{510886, 14337390, -31785257, 16638632, 6328095, 2713355, -20217417, -11864220, 8683221, 2921426},
+                       FieldElement{18606791, 11874196, 27155355, -5281482, -24031742, 6265446, -25178240, -1278924, 4674690, 13890525},
+               },
+               {
+                       FieldElement{13609624, 13069022, -27372361, -13055908, 24360586, 9592974, 14977157, 9835105, 4389687, 288396},
+                       FieldElement{9922506, -519394, 13613107, 5883594, -18758345, -434263, -12304062, 8317628, 23388070, 16052080},
+                       FieldElement{12720016, 11937594, -31970060, -5028689, 26900120, 8561328, -20155687, -11632979, -14754271, -10812892},
+               },
+               {
+                       FieldElement{15961858, 14150409, 26716931, -665832, -22794328, 13603569, 11829573, 7467844, -28822128, 929275},
+                       FieldElement{11038231, -11582396, -27310482, -7316562, -10498527, -16307831, -23479533, -9371869, -21393143, 2465074},
+                       FieldElement{20017163, -4323226, 27915242, 1529148, 12396362, 15675764, 13817261, -9658066, 2463391, -4622140},
+               },
+               {
+                       FieldElement{-16358878, -12663911, -12065183, 4996454, -1256422, 1073572, 9583558, 12851107, 4003896, 12673717},
+                       FieldElement{-1731589, -15155870, -3262930, 16143082, 19294135, 13385325, 14741514, -9103726, 7903886, 2348101},
+                       FieldElement{24536016, -16515207, 12715592, -3862155, 1511293, 10047386, -3842346, -7129159, -28377538, 10048127},
+               },
+       },
+       {
+               {
+                       FieldElement{-12622226, -6204820, 30718825, 2591312, -10617028, 12192840, 18873298, -7297090, -32297756, 15221632},
+                       FieldElement{-26478122, -11103864, 11546244, -1852483, 9180880, 7656409, -21343950, 2095755, 29769758, 6593415},
+                       FieldElement{-31994208, -2907461, 4176912, 3264766, 12538965, -868111, 26312345, -6118678, 30958054, 8292160},
+               },
+               {
+                       FieldElement{31429822, -13959116, 29173532, 15632448, 12174511, -2760094, 32808831, 3977186, 26143136, -3148876},
+                       FieldElement{22648901, 1402143, -22799984, 13746059, 7936347, 365344, -8668633, -1674433, -3758243, -2304625},
+                       FieldElement{-15491917, 8012313, -2514730, -12702462, -23965846, -10254029, -1612713, -1535569, -16664475, 8194478},
+               },
+               {
+                       FieldElement{27338066, -7507420, -7414224, 10140405, -19026427, -6589889, 27277191, 8855376, 28572286, 3005164},
+                       FieldElement{26287124, 4821776, 25476601, -4145903, -3764513, -15788984, -18008582, 1182479, -26094821, -13079595},
+                       FieldElement{-7171154, 3178080, 23970071, 6201893, -17195577, -4489192, -21876275, -13982627, 32208683, -1198248},
+               },
+               {
+                       FieldElement{-16657702, 2817643, -10286362, 14811298, 6024667, 13349505, -27315504, -10497842, -27672585, -11539858},
+                       FieldElement{15941029, -9405932, -21367050, 8062055, 31876073, -238629, -15278393, -1444429, 15397331, -4130193},
+                       FieldElement{8934485, -13485467, -23286397, -13423241, -32446090, 14047986, 31170398, -1441021, -27505566, 15087184},
+               },
+               {
+                       FieldElement{-18357243, -2156491, 24524913, -16677868, 15520427, -6360776, -15502406, 11461896, 16788528, -5868942},
+                       FieldElement{-1947386, 16013773, 21750665, 3714552, -17401782, -16055433, -3770287, -10323320, 31322514, -11615635},
+                       FieldElement{21426655, -5650218, -13648287, -5347537, -28812189, -4920970, -18275391, -14621414, 13040862, -12112948},
+               },
+               {
+                       FieldElement{11293895, 12478086, -27136401, 15083750, -29307421, 14748872, 14555558, -13417103, 1613711, 4896935},
+                       FieldElement{-25894883, 15323294, -8489791, -8057900, 25967126, -13425460, 2825960, -4897045, -23971776, -11267415},
+                       FieldElement{-15924766, -5229880, -17443532, 6410664, 3622847, 10243618, 20615400, 12405433, -23753030, -8436416},
+               },
+               {
+                       FieldElement{-7091295, 12556208, -20191352, 9025187, -17072479, 4333801, 4378436, 2432030, 23097949, -566018},
+                       FieldElement{4565804, -16025654, 20084412, -7842817, 1724999, 189254, 24767264, 10103221, -18512313, 2424778},
+                       FieldElement{366633, -11976806, 8173090, -6890119, 30788634, 5745705, -7168678, 1344109, -3642553, 12412659},
+               },
+               {
+                       FieldElement{-24001791, 7690286, 14929416, -168257, -32210835, -13412986, 24162697, -15326504, -3141501, 11179385},
+                       FieldElement{18289522, -14724954, 8056945, 16430056, -21729724, 7842514, -6001441, -1486897, -18684645, -11443503},
+                       FieldElement{476239, 6601091, -6152790, -9723375, 17503545, -4863900, 27672959, 13403813, 11052904, 5219329},
+               },
+       },
+       {
+               {
+                       FieldElement{20678546, -8375738, -32671898, 8849123, -5009758, 14574752, 31186971, -3973730, 9014762, -8579056},
+                       FieldElement{-13644050, -10350239, -15962508, 5075808, -1514661, -11534600, -33102500, 9160280, 8473550, -3256838},
+                       FieldElement{24900749, 14435722, 17209120, -15292541, -22592275, 9878983, -7689309, -16335821, -24568481, 11788948},
+               },
+               {
+                       FieldElement{-3118155, -11395194, -13802089, 14797441, 9652448, -6845904, -20037437, 10410733, -24568470, -1458691},
+                       FieldElement{-15659161, 16736706, -22467150, 10215878, -9097177, 7563911, 11871841, -12505194, -18513325, 8464118},
+                       FieldElement{-23400612, 8348507, -14585951, -861714, -3950205, -6373419, 14325289, 8628612, 33313881, -8370517},
+               },
+               {
+                       FieldElement{-20186973, -4967935, 22367356, 5271547, -1097117, -4788838, -24805667, -10236854, -8940735, -5818269},
+                       FieldElement{-6948785, -1795212, -32625683, -16021179, 32635414, -7374245, 15989197, -12838188, 28358192, -4253904},
+                       FieldElement{-23561781, -2799059, -32351682, -1661963, -9147719, 10429267, -16637684, 4072016, -5351664, 5596589},
+               },
+               {
+                       FieldElement{-28236598, -3390048, 12312896, 6213178, 3117142, 16078565, 29266239, 2557221, 1768301, 15373193},
+                       FieldElement{-7243358, -3246960, -4593467, -7553353, -127927, -912245, -1090902, -4504991, -24660491, 3442910},
+                       FieldElement{-30210571, 5124043, 14181784, 8197961, 18964734, -11939093, 22597931, 7176455, -18585478, 13365930},
+               },
+               {
+                       FieldElement{-7877390, -1499958, 8324673, 4690079, 6261860, 890446, 24538107, -8570186, -9689599, -3031667},
+                       FieldElement{25008904, -10771599, -4305031, -9638010, 16265036, 15721635, 683793, -11823784, 15723479, -15163481},
+                       FieldElement{-9660625, 12374379, -27006999, -7026148, -7724114, -12314514, 11879682, 5400171, 519526, -1235876},
+               },
+               {
+                       FieldElement{22258397, -16332233, -7869817, 14613016, -22520255, -2950923, -20353881, 7315967, 16648397, 7605640},
+                       FieldElement{-8081308, -8464597, -8223311, 9719710, 19259459, -15348212, 23994942, -5281555, -9468848, 4763278},
+                       FieldElement{-21699244, 9220969, -15730624, 1084137, -25476107, -2852390, 31088447, -7764523, -11356529, 728112},
+               },
+               {
+                       FieldElement{26047220, -11751471, -6900323, -16521798, 24092068, 9158119, -4273545, -12555558, -29365436, -5498272},
+                       FieldElement{17510331, -322857, 5854289, 8403524, 17133918, -3112612, -28111007, 12327945, 10750447, 10014012},
+                       FieldElement{-10312768, 3936952, 9156313, -8897683, 16498692, -994647, -27481051, -666732, 3424691, 7540221},
+               },
+               {
+                       FieldElement{30322361, -6964110, 11361005, -4143317, 7433304, 4989748, -7071422, -16317219, -9244265, 15258046},
+                       FieldElement{13054562, -2779497, 19155474, 469045, -12482797, 4566042, 5631406, 2711395, 1062915, -5136345},
+                       FieldElement{-19240248, -11254599, -29509029, -7499965, -5835763, 13005411, -6066489, 12194497, 32960380, 1459310},
+               },
+       },
+       {
+               {
+                       FieldElement{19852034, 7027924, 23669353, 10020366, 8586503, -6657907, 394197, -6101885, 18638003, -11174937},
+                       FieldElement{31395534, 15098109, 26581030, 8030562, -16527914, -5007134, 9012486, -7584354, -6643087, -5442636},
+                       FieldElement{-9192165, -2347377, -1997099, 4529534, 25766844, 607986, -13222, 9677543, -32294889, -6456008},
+               },
+               {
+                       FieldElement{-2444496, -149937, 29348902, 8186665, 1873760, 12489863, -30934579, -7839692, -7852844, -8138429},
+                       FieldElement{-15236356, -15433509, 7766470, 746860, 26346930, -10221762, -27333451, 10754588, -9431476, 5203576},
+                       FieldElement{31834314, 14135496, -770007, 5159118, 20917671, -16768096, -7467973, -7337524, 31809243, 7347066},
+               },
+               {
+                       FieldElement{-9606723, -11874240, 20414459, 13033986, 13716524, -11691881, 19797970, -12211255, 15192876, -2087490},
+                       FieldElement{-12663563, -2181719, 1168162, -3804809, 26747877, -14138091, 10609330, 12694420, 33473243, -13382104},
+                       FieldElement{33184999, 11180355, 15832085, -11385430, -1633671, 225884, 15089336, -11023903, -6135662, 14480053},
+               },
+               {
+                       FieldElement{31308717, -5619998, 31030840, -1897099, 15674547, -6582883, 5496208, 13685227, 27595050, 8737275},
+                       FieldElement{-20318852, -15150239, 10933843, -16178022, 8335352, -7546022, -31008351, -12610604, 26498114, 66511},
+                       FieldElement{22644454, -8761729, -16671776, 4884562, -3105614, -13559366, 30540766, -4286747, -13327787, -7515095},
+               },
+               {
+                       FieldElement{-28017847, 9834845, 18617207, -2681312, -3401956, -13307506, 8205540, 13585437, -17127465, 15115439},
+                       FieldElement{23711543, -672915, 31206561, -8362711, 6164647, -9709987, -33535882, -1426096, 8236921, 16492939},
+                       FieldElement{-23910559, -13515526, -26299483, -4503841, 25005590, -7687270, 19574902, 10071562, 6708380, -6222424},
+               },
+               {
+                       FieldElement{2101391, -4930054, 19702731, 2367575, -15427167, 1047675, 5301017, 9328700, 29955601, -11678310},
+                       FieldElement{3096359, 9271816, -21620864, -15521844, -14847996, -7592937, -25892142, -12635595, -9917575, 6216608},
+                       FieldElement{-32615849, 338663, -25195611, 2510422, -29213566, -13820213, 24822830, -6146567, -26767480, 7525079},
+               },
+               {
+                       FieldElement{-23066649, -13985623, 16133487, -7896178, -3389565, 778788, -910336, -2782495, -19386633, 11994101},
+                       FieldElement{21691500, -13624626, -641331, -14367021, 3285881, -3483596, -25064666, 9718258, -7477437, 13381418},
+                       FieldElement{18445390, -4202236, 14979846, 11622458, -1727110, -3582980, 23111648, -6375247, 28535282, 15779576},
+               },
+               {
+                       FieldElement{30098053, 3089662, -9234387, 16662135, -21306940, 11308411, -14068454, 12021730, 9955285, -16303356},
+                       FieldElement{9734894, -14576830, -7473633, -9138735, 2060392, 11313496, -18426029, 9924399, 20194861, 13380996},
+                       FieldElement{-26378102, -7965207, -22167821, 15789297, -18055342, -6168792, -1984914, 15707771, 26342023, 10146099},
+               },
+       },
+       {
+               {
+                       FieldElement{-26016874, -219943, 21339191, -41388, 19745256, -2878700, -29637280, 2227040, 21612326, -545728},
+                       FieldElement{-13077387, 1184228, 23562814, -5970442, -20351244, -6348714, 25764461, 12243797, -20856566, 11649658},
+                       FieldElement{-10031494, 11262626, 27384172, 2271902, 26947504, -15997771, 39944, 6114064, 33514190, 2333242},
+               },
+               {
+                       FieldElement{-21433588, -12421821, 8119782, 7219913, -21830522, -9016134, -6679750, -12670638, 24350578, -13450001},
+                       FieldElement{-4116307, -11271533, -23886186, 4843615, -30088339, 690623, -31536088, -10406836, 8317860, 12352766},
+                       FieldElement{18200138, -14475911, -33087759, -2696619, -23702521, -9102511, -23552096, -2287550, 20712163, 6719373},
+               },
+               {
+                       FieldElement{26656208, 6075253, -7858556, 1886072, -28344043, 4262326, 11117530, -3763210, 26224235, -3297458},
+                       FieldElement{-17168938, -14854097, -3395676, -16369877, -19954045, 14050420, 21728352, 9493610, 18620611, -16428628},
+                       FieldElement{-13323321, 13325349, 11432106, 5964811, 18609221, 6062965, -5269471, -9725556, -30701573, -16479657},
+               },
+               {
+                       FieldElement{-23860538, -11233159, 26961357, 1640861, -32413112, -16737940, 12248509, -5240639, 13735342, 1934062},
+                       FieldElement{25089769, 6742589, 17081145, -13406266, 21909293, -16067981, -15136294, -3765346, -21277997, 5473616},
+                       FieldElement{31883677, -7961101, 1083432, -11572403, 22828471, 13290673, -7125085, 12469656, 29111212, -5451014},
+               },
+               {
+                       FieldElement{24244947, -15050407, -26262976, 2791540, -14997599, 16666678, 24367466, 6388839, -10295587, 452383},
+                       FieldElement{-25640782, -3417841, 5217916, 16224624, 19987036, -4082269, -24236251, -5915248, 15766062, 8407814},
+                       FieldElement{-20406999, 13990231, 15495425, 16395525, 5377168, 15166495, -8917023, -4388953, -8067909, 2276718},
+               },
+               {
+                       FieldElement{30157918, 12924066, -17712050, 9245753, 19895028, 3368142, -23827587, 5096219, 22740376, -7303417},
+                       FieldElement{2041139, -14256350, 7783687, 13876377, -25946985, -13352459, 24051124, 13742383, -15637599, 13295222},
+                       FieldElement{33338237, -8505733, 12532113, 7977527, 9106186, -1715251, -17720195, -4612972, -4451357, -14669444},
+               },
+               {
+                       FieldElement{-20045281, 5454097, -14346548, 6447146, 28862071, 1883651, -2469266, -4141880, 7770569, 9620597},
+                       FieldElement{23208068, 7979712, 33071466, 8149229, 1758231, -10834995, 30945528, -1694323, -33502340, -14767970},
+                       FieldElement{1439958, -16270480, -1079989, -793782, 4625402, 10647766, -5043801, 1220118, 30494170, -11440799},
+               },
+               {
+                       FieldElement{-5037580, -13028295, -2970559, -3061767, 15640974, -6701666, -26739026, 926050, -1684339, -13333647},
+                       FieldElement{13908495, -3549272, 30919928, -6273825, -21521863, 7989039, 9021034, 9078865, 3353509, 4033511},
+                       FieldElement{-29663431, -15113610, 32259991, -344482, 24295849, -12912123, 23161163, 8839127, 27485041, 7356032},
+               },
+       },
+       {
+               {
+                       FieldElement{9661027, 705443, 11980065, -5370154, -1628543, 14661173, -6346142, 2625015, 28431036, -16771834},
+                       FieldElement{-23839233, -8311415, -25945511, 7480958, -17681669, -8354183, -22545972, 14150565, 15970762, 4099461},
+                       FieldElement{29262576, 16756590, 26350592, -8793563, 8529671, -11208050, 13617293, -9937143, 11465739, 8317062},
+               },
+               {
+                       FieldElement{-25493081, -6962928, 32500200, -9419051, -23038724, -2302222, 14898637, 3848455, 20969334, -5157516},
+                       FieldElement{-20384450, -14347713, -18336405, 13884722, -33039454, 2842114, -21610826, -3649888, 11177095, 14989547},
+                       FieldElement{-24496721, -11716016, 16959896, 2278463, 12066309, 10137771, 13515641, 2581286, -28487508, 9930240},
+               },
+               {
+                       FieldElement{-17751622, -2097826, 16544300, -13009300, -15914807, -14949081, 18345767, -13403753, 16291481, -5314038},
+                       FieldElement{-33229194, 2553288, 32678213, 9875984, 8534129, 6889387, -9676774, 6957617, 4368891, 9788741},
+                       FieldElement{16660756, 7281060, -10830758, 12911820, 20108584, -8101676, -21722536, -8613148, 16250552, -11111103},
+               },
+               {
+                       FieldElement{-19765507, 2390526, -16551031, 14161980, 1905286, 6414907, 4689584, 10604807, -30190403, 4782747},
+                       FieldElement{-1354539, 14736941, -7367442, -13292886, 7710542, -14155590, -9981571, 4383045, 22546403, 437323},
+                       FieldElement{31665577, -12180464, -16186830, 1491339, -18368625, 3294682, 27343084, 2786261, -30633590, -14097016},
+               },
+               {
+                       FieldElement{-14467279, -683715, -33374107, 7448552, 19294360, 14334329, -19690631, 2355319, -19284671, -6114373},
+                       FieldElement{15121312, -15796162, 6377020, -6031361, -10798111, -12957845, 18952177, 15496498, -29380133, 11754228},
+                       FieldElement{-2637277, -13483075, 8488727, -14303896, 12728761, -1622493, 7141596, 11724556, 22761615, -10134141},
+               },
+               {
+                       FieldElement{16918416, 11729663, -18083579, 3022987, -31015732, -13339659, -28741185, -12227393, 32851222, 11717399},
+                       FieldElement{11166634, 7338049, -6722523, 4531520, -29468672, -7302055, 31474879, 3483633, -1193175, -4030831},
+                       FieldElement{-185635, 9921305, 31456609, -13536438, -12013818, 13348923, 33142652, 6546660, -19985279, -3948376},
+               },
+               {
+                       FieldElement{-32460596, 11266712, -11197107, -7899103, 31703694, 3855903, -8537131, -12833048, -30772034, -15486313},
+                       FieldElement{-18006477, 12709068, 3991746, -6479188, -21491523, -10550425, -31135347, -16049879, 10928917, 3011958},
+                       FieldElement{-6957757, -15594337, 31696059, 334240, 29576716, 14796075, -30831056, -12805180, 18008031, 10258577},
+               },
+               {
+                       FieldElement{-22448644, 15655569, 7018479, -4410003, -30314266, -1201591, -1853465, 1367120, 25127874, 6671743},
+                       FieldElement{29701166, -14373934, -10878120, 9279288, -17568, 13127210, 21382910, 11042292, 25838796, 4642684},
+                       FieldElement{-20430234, 14955537, -24126347, 8124619, -5369288, -5990470, 30468147, -13900640, 18423289, 4177476},
+               },
+       },
+}
diff --git a/vendor/github.com/bytom/crypto/ed25519/internal/edwards25519/edwards25519.go b/vendor/github.com/bytom/crypto/ed25519/internal/edwards25519/edwards25519.go
new file mode 100644 (file)
index 0000000..a8564d8
--- /dev/null
@@ -0,0 +1,1767 @@
+package edwards25519
+
+// This code is a port of the public domain, “ref10” implementation of ed25519
+// from SUPERCOP.
+
+// FieldElement represents an element of the field GF(2^255 - 19).  An element
+// t, entries t[0]...t[9], represents the integer t[0]+2^26 t[1]+2^51 t[2]+2^77
+// t[3]+2^102 t[4]+...+2^230 t[9].  Bounds on each t[i] vary depending on
+// context.
+type FieldElement [10]int32
+
+var zero FieldElement
+
+func FeZero(fe *FieldElement) {
+       copy(fe[:], zero[:])
+}
+
+func FeOne(fe *FieldElement) {
+       FeZero(fe)
+       fe[0] = 1
+}
+
+func FeAdd(dst, a, b *FieldElement) {
+       dst[0] = a[0] + b[0]
+       dst[1] = a[1] + b[1]
+       dst[2] = a[2] + b[2]
+       dst[3] = a[3] + b[3]
+       dst[4] = a[4] + b[4]
+       dst[5] = a[5] + b[5]
+       dst[6] = a[6] + b[6]
+       dst[7] = a[7] + b[7]
+       dst[8] = a[8] + b[8]
+       dst[9] = a[9] + b[9]
+}
+
+func FeSub(dst, a, b *FieldElement) {
+       dst[0] = a[0] - b[0]
+       dst[1] = a[1] - b[1]
+       dst[2] = a[2] - b[2]
+       dst[3] = a[3] - b[3]
+       dst[4] = a[4] - b[4]
+       dst[5] = a[5] - b[5]
+       dst[6] = a[6] - b[6]
+       dst[7] = a[7] - b[7]
+       dst[8] = a[8] - b[8]
+       dst[9] = a[9] - b[9]
+}
+
+func FeCopy(dst, src *FieldElement) {
+       copy(dst[:], src[:])
+}
+
+// Replace (f,g) with (g,g) if b == 1;
+// replace (f,g) with (f,g) if b == 0.
+//
+// Preconditions: b in {0,1}.
+func FeCMove(f, g *FieldElement, b int32) {
+       b = -b
+       f[0] ^= b & (f[0] ^ g[0])
+       f[1] ^= b & (f[1] ^ g[1])
+       f[2] ^= b & (f[2] ^ g[2])
+       f[3] ^= b & (f[3] ^ g[3])
+       f[4] ^= b & (f[4] ^ g[4])
+       f[5] ^= b & (f[5] ^ g[5])
+       f[6] ^= b & (f[6] ^ g[6])
+       f[7] ^= b & (f[7] ^ g[7])
+       f[8] ^= b & (f[8] ^ g[8])
+       f[9] ^= b & (f[9] ^ g[9])
+}
+
+func load3(in []byte) int64 {
+       var r int64
+       r = int64(in[0])
+       r |= int64(in[1]) << 8
+       r |= int64(in[2]) << 16
+       return r
+}
+
+func load4(in []byte) int64 {
+       var r int64
+       r = int64(in[0])
+       r |= int64(in[1]) << 8
+       r |= int64(in[2]) << 16
+       r |= int64(in[3]) << 24
+       return r
+}
+
+func FeFromBytes(dst *FieldElement, src *[32]byte) {
+       h0 := load4(src[:])
+       h1 := load3(src[4:]) << 6
+       h2 := load3(src[7:]) << 5
+       h3 := load3(src[10:]) << 3
+       h4 := load3(src[13:]) << 2
+       h5 := load4(src[16:])
+       h6 := load3(src[20:]) << 7
+       h7 := load3(src[23:]) << 5
+       h8 := load3(src[26:]) << 4
+       h9 := (load3(src[29:]) & 8388607) << 2
+
+       FeCombine(dst, h0, h1, h2, h3, h4, h5, h6, h7, h8, h9)
+}
+
+// FeToBytes marshals h to s.
+// Preconditions:
+//   |h| bounded by 1.1*2^25,1.1*2^24,1.1*2^25,1.1*2^24,etc.
+//
+// Write p=2^255-19; q=floor(h/p).
+// Basic claim: q = floor(2^(-255)(h + 19 2^(-25)h9 + 2^(-1))).
+//
+// Proof:
+//   Have |h|<=p so |q|<=1 so |19^2 2^(-255) q|<1/4.
+//   Also have |h-2^230 h9|<2^230 so |19 2^(-255)(h-2^230 h9)|<1/4.
+//
+//   Write y=2^(-1)-19^2 2^(-255)q-19 2^(-255)(h-2^230 h9).
+//   Then 0<y<1.
+//
+//   Write r=h-pq.
+//   Have 0<=r<=p-1=2^255-20.
+//   Thus 0<=r+19(2^-255)r<r+19(2^-255)2^255<=2^255-1.
+//
+//   Write x=r+19(2^-255)r+y.
+//   Then 0<x<2^255 so floor(2^(-255)x) = 0 so floor(q+2^(-255)x) = q.
+//
+//   Have q+2^(-255)x = 2^(-255)(h + 19 2^(-25) h9 + 2^(-1))
+//   so floor(2^(-255)(h + 19 2^(-25) h9 + 2^(-1))) = q.
+func FeToBytes(s *[32]byte, h *FieldElement) {
+       var carry [10]int32
+
+       q := (19*h[9] + (1 << 24)) >> 25
+       q = (h[0] + q) >> 26
+       q = (h[1] + q) >> 25
+       q = (h[2] + q) >> 26
+       q = (h[3] + q) >> 25
+       q = (h[4] + q) >> 26
+       q = (h[5] + q) >> 25
+       q = (h[6] + q) >> 26
+       q = (h[7] + q) >> 25
+       q = (h[8] + q) >> 26
+       q = (h[9] + q) >> 25
+
+       // Goal: Output h-(2^255-19)q, which is between 0 and 2^255-20.
+       h[0] += 19 * q
+       // Goal: Output h-2^255 q, which is between 0 and 2^255-20.
+
+       carry[0] = h[0] >> 26
+       h[1] += carry[0]
+       h[0] -= carry[0] << 26
+       carry[1] = h[1] >> 25
+       h[2] += carry[1]
+       h[1] -= carry[1] << 25
+       carry[2] = h[2] >> 26
+       h[3] += carry[2]
+       h[2] -= carry[2] << 26
+       carry[3] = h[3] >> 25
+       h[4] += carry[3]
+       h[3] -= carry[3] << 25
+       carry[4] = h[4] >> 26
+       h[5] += carry[4]
+       h[4] -= carry[4] << 26
+       carry[5] = h[5] >> 25
+       h[6] += carry[5]
+       h[5] -= carry[5] << 25
+       carry[6] = h[6] >> 26
+       h[7] += carry[6]
+       h[6] -= carry[6] << 26
+       carry[7] = h[7] >> 25
+       h[8] += carry[7]
+       h[7] -= carry[7] << 25
+       carry[8] = h[8] >> 26
+       h[9] += carry[8]
+       h[8] -= carry[8] << 26
+       carry[9] = h[9] >> 25
+       h[9] -= carry[9] << 25
+       // h10 = carry9
+
+       // Goal: Output h[0]+...+2^255 h10-2^255 q, which is between 0 and 2^255-20.
+       // Have h[0]+...+2^230 h[9] between 0 and 2^255-1;
+       // evidently 2^255 h10-2^255 q = 0.
+       // Goal: Output h[0]+...+2^230 h[9].
+
+       s[0] = byte(h[0] >> 0)
+       s[1] = byte(h[0] >> 8)
+       s[2] = byte(h[0] >> 16)
+       s[3] = byte((h[0] >> 24) | (h[1] << 2))
+       s[4] = byte(h[1] >> 6)
+       s[5] = byte(h[1] >> 14)
+       s[6] = byte((h[1] >> 22) | (h[2] << 3))
+       s[7] = byte(h[2] >> 5)
+       s[8] = byte(h[2] >> 13)
+       s[9] = byte((h[2] >> 21) | (h[3] << 5))
+       s[10] = byte(h[3] >> 3)
+       s[11] = byte(h[3] >> 11)
+       s[12] = byte((h[3] >> 19) | (h[4] << 6))
+       s[13] = byte(h[4] >> 2)
+       s[14] = byte(h[4] >> 10)
+       s[15] = byte(h[4] >> 18)
+       s[16] = byte(h[5] >> 0)
+       s[17] = byte(h[5] >> 8)
+       s[18] = byte(h[5] >> 16)
+       s[19] = byte((h[5] >> 24) | (h[6] << 1))
+       s[20] = byte(h[6] >> 7)
+       s[21] = byte(h[6] >> 15)
+       s[22] = byte((h[6] >> 23) | (h[7] << 3))
+       s[23] = byte(h[7] >> 5)
+       s[24] = byte(h[7] >> 13)
+       s[25] = byte((h[7] >> 21) | (h[8] << 4))
+       s[26] = byte(h[8] >> 4)
+       s[27] = byte(h[8] >> 12)
+       s[28] = byte((h[8] >> 20) | (h[9] << 6))
+       s[29] = byte(h[9] >> 2)
+       s[30] = byte(h[9] >> 10)
+       s[31] = byte(h[9] >> 18)
+}
+
+func FeIsNegative(f *FieldElement) byte {
+       var s [32]byte
+       FeToBytes(&s, f)
+       return s[0] & 1
+}
+
+func FeIsNonZero(f *FieldElement) int32 {
+       var s [32]byte
+       FeToBytes(&s, f)
+       var x uint8
+       for _, b := range s {
+               x |= b
+       }
+       x |= x >> 4
+       x |= x >> 2
+       x |= x >> 1
+       return int32(x & 1)
+}
+
+// FeNeg sets h = -f
+//
+// Preconditions:
+//    |f| bounded by 1.1*2^25,1.1*2^24,1.1*2^25,1.1*2^24,etc.
+//
+// Postconditions:
+//    |h| bounded by 1.1*2^25,1.1*2^24,1.1*2^25,1.1*2^24,etc.
+func FeNeg(h, f *FieldElement) {
+       h[0] = -f[0]
+       h[1] = -f[1]
+       h[2] = -f[2]
+       h[3] = -f[3]
+       h[4] = -f[4]
+       h[5] = -f[5]
+       h[6] = -f[6]
+       h[7] = -f[7]
+       h[8] = -f[8]
+       h[9] = -f[9]
+}
+
+func FeCombine(h *FieldElement, h0, h1, h2, h3, h4, h5, h6, h7, h8, h9 int64) {
+       var c0, c1, c2, c3, c4, c5, c6, c7, c8, c9 int64
+
+       /*
+         |h0| <= (1.1*1.1*2^52*(1+19+19+19+19)+1.1*1.1*2^50*(38+38+38+38+38))
+           i.e. |h0| <= 1.2*2^59; narrower ranges for h2, h4, h6, h8
+         |h1| <= (1.1*1.1*2^51*(1+1+19+19+19+19+19+19+19+19))
+           i.e. |h1| <= 1.5*2^58; narrower ranges for h3, h5, h7, h9
+       */
+
+       c0 = (h0 + (1 << 25)) >> 26
+       h1 += c0
+       h0 -= c0 << 26
+       c4 = (h4 + (1 << 25)) >> 26
+       h5 += c4
+       h4 -= c4 << 26
+       /* |h0| <= 2^25 */
+       /* |h4| <= 2^25 */
+       /* |h1| <= 1.51*2^58 */
+       /* |h5| <= 1.51*2^58 */
+
+       c1 = (h1 + (1 << 24)) >> 25
+       h2 += c1
+       h1 -= c1 << 25
+       c5 = (h5 + (1 << 24)) >> 25
+       h6 += c5
+       h5 -= c5 << 25
+       /* |h1| <= 2^24; from now on fits into int32 */
+       /* |h5| <= 2^24; from now on fits into int32 */
+       /* |h2| <= 1.21*2^59 */
+       /* |h6| <= 1.21*2^59 */
+
+       c2 = (h2 + (1 << 25)) >> 26
+       h3 += c2
+       h2 -= c2 << 26
+       c6 = (h6 + (1 << 25)) >> 26
+       h7 += c6
+       h6 -= c6 << 26
+       /* |h2| <= 2^25; from now on fits into int32 unchanged */
+       /* |h6| <= 2^25; from now on fits into int32 unchanged */
+       /* |h3| <= 1.51*2^58 */
+       /* |h7| <= 1.51*2^58 */
+
+       c3 = (h3 + (1 << 24)) >> 25
+       h4 += c3
+       h3 -= c3 << 25
+       c7 = (h7 + (1 << 24)) >> 25
+       h8 += c7
+       h7 -= c7 << 25
+       /* |h3| <= 2^24; from now on fits into int32 unchanged */
+       /* |h7| <= 2^24; from now on fits into int32 unchanged */
+       /* |h4| <= 1.52*2^33 */
+       /* |h8| <= 1.52*2^33 */
+
+       c4 = (h4 + (1 << 25)) >> 26
+       h5 += c4
+       h4 -= c4 << 26
+       c8 = (h8 + (1 << 25)) >> 26
+       h9 += c8
+       h8 -= c8 << 26
+       /* |h4| <= 2^25; from now on fits into int32 unchanged */
+       /* |h8| <= 2^25; from now on fits into int32 unchanged */
+       /* |h5| <= 1.01*2^24 */
+       /* |h9| <= 1.51*2^58 */
+
+       c9 = (h9 + (1 << 24)) >> 25
+       h0 += c9 * 19
+       h9 -= c9 << 25
+       /* |h9| <= 2^24; from now on fits into int32 unchanged */
+       /* |h0| <= 1.8*2^37 */
+
+       c0 = (h0 + (1 << 25)) >> 26
+       h1 += c0
+       h0 -= c0 << 26
+       /* |h0| <= 2^25; from now on fits into int32 unchanged */
+       /* |h1| <= 1.01*2^24 */
+
+       h[0] = int32(h0)
+       h[1] = int32(h1)
+       h[2] = int32(h2)
+       h[3] = int32(h3)
+       h[4] = int32(h4)
+       h[5] = int32(h5)
+       h[6] = int32(h6)
+       h[7] = int32(h7)
+       h[8] = int32(h8)
+       h[9] = int32(h9)
+}
+
+// FeMul calculates h = f * g
+// Can overlap h with f or g.
+//
+// Preconditions:
+//    |f| bounded by 1.1*2^26,1.1*2^25,1.1*2^26,1.1*2^25,etc.
+//    |g| bounded by 1.1*2^26,1.1*2^25,1.1*2^26,1.1*2^25,etc.
+//
+// Postconditions:
+//    |h| bounded by 1.1*2^25,1.1*2^24,1.1*2^25,1.1*2^24,etc.
+//
+// Notes on implementation strategy:
+//
+// Using schoolbook multiplication.
+// Karatsuba would save a little in some cost models.
+//
+// Most multiplications by 2 and 19 are 32-bit precomputations;
+// cheaper than 64-bit postcomputations.
+//
+// There is one remaining multiplication by 19 in the carry chain;
+// one *19 precomputation can be merged into this,
+// but the resulting data flow is considerably less clean.
+//
+// There are 12 carries below.
+// 10 of them are 2-way parallelizable and vectorizable.
+// Can get away with 11 carries, but then data flow is much deeper.
+//
+// With tighter constraints on inputs, can squeeze carries into int32.
+func FeMul(h, f, g *FieldElement) {
+       f0 := int64(f[0])
+       f1 := int64(f[1])
+       f2 := int64(f[2])
+       f3 := int64(f[3])
+       f4 := int64(f[4])
+       f5 := int64(f[5])
+       f6 := int64(f[6])
+       f7 := int64(f[7])
+       f8 := int64(f[8])
+       f9 := int64(f[9])
+
+       f1_2 := int64(2 * f[1])
+       f3_2 := int64(2 * f[3])
+       f5_2 := int64(2 * f[5])
+       f7_2 := int64(2 * f[7])
+       f9_2 := int64(2 * f[9])
+
+       g0 := int64(g[0])
+       g1 := int64(g[1])
+       g2 := int64(g[2])
+       g3 := int64(g[3])
+       g4 := int64(g[4])
+       g5 := int64(g[5])
+       g6 := int64(g[6])
+       g7 := int64(g[7])
+       g8 := int64(g[8])
+       g9 := int64(g[9])
+
+       g1_19 := int64(19 * g[1]) /* 1.4*2^29 */
+       g2_19 := int64(19 * g[2]) /* 1.4*2^30; still ok */
+       g3_19 := int64(19 * g[3])
+       g4_19 := int64(19 * g[4])
+       g5_19 := int64(19 * g[5])
+       g6_19 := int64(19 * g[6])
+       g7_19 := int64(19 * g[7])
+       g8_19 := int64(19 * g[8])
+       g9_19 := int64(19 * g[9])
+
+       h0 := f0*g0 + f1_2*g9_19 + f2*g8_19 + f3_2*g7_19 + f4*g6_19 + f5_2*g5_19 + f6*g4_19 + f7_2*g3_19 + f8*g2_19 + f9_2*g1_19
+       h1 := f0*g1 + f1*g0 + f2*g9_19 + f3*g8_19 + f4*g7_19 + f5*g6_19 + f6*g5_19 + f7*g4_19 + f8*g3_19 + f9*g2_19
+       h2 := f0*g2 + f1_2*g1 + f2*g0 + f3_2*g9_19 + f4*g8_19 + f5_2*g7_19 + f6*g6_19 + f7_2*g5_19 + f8*g4_19 + f9_2*g3_19
+       h3 := f0*g3 + f1*g2 + f2*g1 + f3*g0 + f4*g9_19 + f5*g8_19 + f6*g7_19 + f7*g6_19 + f8*g5_19 + f9*g4_19
+       h4 := f0*g4 + f1_2*g3 + f2*g2 + f3_2*g1 + f4*g0 + f5_2*g9_19 + f6*g8_19 + f7_2*g7_19 + f8*g6_19 + f9_2*g5_19
+       h5 := f0*g5 + f1*g4 + f2*g3 + f3*g2 + f4*g1 + f5*g0 + f6*g9_19 + f7*g8_19 + f8*g7_19 + f9*g6_19
+       h6 := f0*g6 + f1_2*g5 + f2*g4 + f3_2*g3 + f4*g2 + f5_2*g1 + f6*g0 + f7_2*g9_19 + f8*g8_19 + f9_2*g7_19
+       h7 := f0*g7 + f1*g6 + f2*g5 + f3*g4 + f4*g3 + f5*g2 + f6*g1 + f7*g0 + f8*g9_19 + f9*g8_19
+       h8 := f0*g8 + f1_2*g7 + f2*g6 + f3_2*g5 + f4*g4 + f5_2*g3 + f6*g2 + f7_2*g1 + f8*g0 + f9_2*g9_19
+       h9 := f0*g9 + f1*g8 + f2*g7 + f3*g6 + f4*g5 + f5*g4 + f6*g3 + f7*g2 + f8*g1 + f9*g0
+
+       FeCombine(h, h0, h1, h2, h3, h4, h5, h6, h7, h8, h9)
+}
+
+func feSquare(f *FieldElement) (h0, h1, h2, h3, h4, h5, h6, h7, h8, h9 int64) {
+       f0 := int64(f[0])
+       f1 := int64(f[1])
+       f2 := int64(f[2])
+       f3 := int64(f[3])
+       f4 := int64(f[4])
+       f5 := int64(f[5])
+       f6 := int64(f[6])
+       f7 := int64(f[7])
+       f8 := int64(f[8])
+       f9 := int64(f[9])
+       f0_2 := int64(2 * f[0])
+       f1_2 := int64(2 * f[1])
+       f2_2 := int64(2 * f[2])
+       f3_2 := int64(2 * f[3])
+       f4_2 := int64(2 * f[4])
+       f5_2 := int64(2 * f[5])
+       f6_2 := int64(2 * f[6])
+       f7_2 := int64(2 * f[7])
+       f5_38 := 38 * f5 // 1.31*2^30
+       f6_19 := 19 * f6 // 1.31*2^30
+       f7_38 := 38 * f7 // 1.31*2^30
+       f8_19 := 19 * f8 // 1.31*2^30
+       f9_38 := 38 * f9 // 1.31*2^30
+
+       h0 = f0*f0 + f1_2*f9_38 + f2_2*f8_19 + f3_2*f7_38 + f4_2*f6_19 + f5*f5_38
+       h1 = f0_2*f1 + f2*f9_38 + f3_2*f8_19 + f4*f7_38 + f5_2*f6_19
+       h2 = f0_2*f2 + f1_2*f1 + f3_2*f9_38 + f4_2*f8_19 + f5_2*f7_38 + f6*f6_19
+       h3 = f0_2*f3 + f1_2*f2 + f4*f9_38 + f5_2*f8_19 + f6*f7_38
+       h4 = f0_2*f4 + f1_2*f3_2 + f2*f2 + f5_2*f9_38 + f6_2*f8_19 + f7*f7_38
+       h5 = f0_2*f5 + f1_2*f4 + f2_2*f3 + f6*f9_38 + f7_2*f8_19
+       h6 = f0_2*f6 + f1_2*f5_2 + f2_2*f4 + f3_2*f3 + f7_2*f9_38 + f8*f8_19
+       h7 = f0_2*f7 + f1_2*f6 + f2_2*f5 + f3_2*f4 + f8*f9_38
+       h8 = f0_2*f8 + f1_2*f7_2 + f2_2*f6 + f3_2*f5_2 + f4*f4 + f9*f9_38
+       h9 = f0_2*f9 + f1_2*f8 + f2_2*f7 + f3_2*f6 + f4_2*f5
+
+       return
+}
+
+// FeSquare calculates h = f*f. Can overlap h with f.
+//
+// Preconditions:
+//    |f| bounded by 1.1*2^26,1.1*2^25,1.1*2^26,1.1*2^25,etc.
+//
+// Postconditions:
+//    |h| bounded by 1.1*2^25,1.1*2^24,1.1*2^25,1.1*2^24,etc.
+func FeSquare(h, f *FieldElement) {
+       h0, h1, h2, h3, h4, h5, h6, h7, h8, h9 := feSquare(f)
+       FeCombine(h, h0, h1, h2, h3, h4, h5, h6, h7, h8, h9)
+}
+
+// FeSquare2 sets h = 2 * f * f
+//
+// Can overlap h with f.
+//
+// Preconditions:
+//    |f| bounded by 1.65*2^26,1.65*2^25,1.65*2^26,1.65*2^25,etc.
+//
+// Postconditions:
+//    |h| bounded by 1.01*2^25,1.01*2^24,1.01*2^25,1.01*2^24,etc.
+// See fe_mul.c for discussion of implementation strategy.
+func FeSquare2(h, f *FieldElement) {
+       h0, h1, h2, h3, h4, h5, h6, h7, h8, h9 := feSquare(f)
+
+       h0 += h0
+       h1 += h1
+       h2 += h2
+       h3 += h3
+       h4 += h4
+       h5 += h5
+       h6 += h6
+       h7 += h7
+       h8 += h8
+       h9 += h9
+
+       FeCombine(h, h0, h1, h2, h3, h4, h5, h6, h7, h8, h9)
+}
+
+func FeInvert(out, z *FieldElement) {
+       var t0, t1, t2, t3 FieldElement
+       var i int
+
+       FeSquare(&t0, z)        // 2^1
+       FeSquare(&t1, &t0)      // 2^2
+       for i = 1; i < 2; i++ { // 2^3
+               FeSquare(&t1, &t1)
+       }
+       FeMul(&t1, z, &t1)      // 2^3 + 2^0
+       FeMul(&t0, &t0, &t1)    // 2^3 + 2^1 + 2^0
+       FeSquare(&t2, &t0)      // 2^4 + 2^2 + 2^1
+       FeMul(&t1, &t1, &t2)    // 2^4 + 2^3 + 2^2 + 2^1 + 2^0
+       FeSquare(&t2, &t1)      // 5,4,3,2,1
+       for i = 1; i < 5; i++ { // 9,8,7,6,5
+               FeSquare(&t2, &t2)
+       }
+       FeMul(&t1, &t2, &t1)     // 9,8,7,6,5,4,3,2,1,0
+       FeSquare(&t2, &t1)       // 10..1
+       for i = 1; i < 10; i++ { // 19..10
+               FeSquare(&t2, &t2)
+       }
+       FeMul(&t2, &t2, &t1)     // 19..0
+       FeSquare(&t3, &t2)       // 20..1
+       for i = 1; i < 20; i++ { // 39..20
+               FeSquare(&t3, &t3)
+       }
+       FeMul(&t2, &t3, &t2)     // 39..0
+       FeSquare(&t2, &t2)       // 40..1
+       for i = 1; i < 10; i++ { // 49..10
+               FeSquare(&t2, &t2)
+       }
+       FeMul(&t1, &t2, &t1)     // 49..0
+       FeSquare(&t2, &t1)       // 50..1
+       for i = 1; i < 50; i++ { // 99..50
+               FeSquare(&t2, &t2)
+       }
+       FeMul(&t2, &t2, &t1)      // 99..0
+       FeSquare(&t3, &t2)        // 100..1
+       for i = 1; i < 100; i++ { // 199..100
+               FeSquare(&t3, &t3)
+       }
+       FeMul(&t2, &t3, &t2)     // 199..0
+       FeSquare(&t2, &t2)       // 200..1
+       for i = 1; i < 50; i++ { // 249..50
+               FeSquare(&t2, &t2)
+       }
+       FeMul(&t1, &t2, &t1)    // 249..0
+       FeSquare(&t1, &t1)      // 250..1
+       for i = 1; i < 5; i++ { // 254..5
+               FeSquare(&t1, &t1)
+       }
+       FeMul(out, &t1, &t0) // 254..5,3,1,0
+}
+
+func fePow22523(out, z *FieldElement) {
+       var t0, t1, t2 FieldElement
+       var i int
+
+       FeSquare(&t0, z)
+       for i = 1; i < 1; i++ {
+               FeSquare(&t0, &t0)
+       }
+       FeSquare(&t1, &t0)
+       for i = 1; i < 2; i++ {
+               FeSquare(&t1, &t1)
+       }
+       FeMul(&t1, z, &t1)
+       FeMul(&t0, &t0, &t1)
+       FeSquare(&t0, &t0)
+       for i = 1; i < 1; i++ {
+               FeSquare(&t0, &t0)
+       }
+       FeMul(&t0, &t1, &t0)
+       FeSquare(&t1, &t0)
+       for i = 1; i < 5; i++ {
+               FeSquare(&t1, &t1)
+       }
+       FeMul(&t0, &t1, &t0)
+       FeSquare(&t1, &t0)
+       for i = 1; i < 10; i++ {
+               FeSquare(&t1, &t1)
+       }
+       FeMul(&t1, &t1, &t0)
+       FeSquare(&t2, &t1)
+       for i = 1; i < 20; i++ {
+               FeSquare(&t2, &t2)
+       }
+       FeMul(&t1, &t2, &t1)
+       FeSquare(&t1, &t1)
+       for i = 1; i < 10; i++ {
+               FeSquare(&t1, &t1)
+       }
+       FeMul(&t0, &t1, &t0)
+       FeSquare(&t1, &t0)
+       for i = 1; i < 50; i++ {
+               FeSquare(&t1, &t1)
+       }
+       FeMul(&t1, &t1, &t0)
+       FeSquare(&t2, &t1)
+       for i = 1; i < 100; i++ {
+               FeSquare(&t2, &t2)
+       }
+       FeMul(&t1, &t2, &t1)
+       FeSquare(&t1, &t1)
+       for i = 1; i < 50; i++ {
+               FeSquare(&t1, &t1)
+       }
+       FeMul(&t0, &t1, &t0)
+       FeSquare(&t0, &t0)
+       for i = 1; i < 2; i++ {
+               FeSquare(&t0, &t0)
+       }
+       FeMul(out, &t0, z)
+}
+
+// Group elements are members of the elliptic curve -x^2 + y^2 = 1 + d * x^2 *
+// y^2 where d = -121665/121666.
+//
+// Several representations are used:
+//   ProjectiveGroupElement: (X:Y:Z) satisfying x=X/Z, y=Y/Z
+//   ExtendedGroupElement: (X:Y:Z:T) satisfying x=X/Z, y=Y/Z, XY=ZT
+//   CompletedGroupElement: ((X:Z),(Y:T)) satisfying x=X/Z, y=Y/T
+//   PreComputedGroupElement: (y+x,y-x,2dxy)
+
+type ProjectiveGroupElement struct {
+       X, Y, Z FieldElement
+}
+
+type ExtendedGroupElement struct {
+       X, Y, Z, T FieldElement
+}
+
+type CompletedGroupElement struct {
+       X, Y, Z, T FieldElement
+}
+
+type PreComputedGroupElement struct {
+       yPlusX, yMinusX, xy2d FieldElement
+}
+
+type CachedGroupElement struct {
+       yPlusX, yMinusX, Z, T2d FieldElement
+}
+
+func (p *ProjectiveGroupElement) Zero() {
+       FeZero(&p.X)
+       FeOne(&p.Y)
+       FeOne(&p.Z)
+}
+
+func (p *ProjectiveGroupElement) Double(r *CompletedGroupElement) {
+       var t0 FieldElement
+
+       FeSquare(&r.X, &p.X)
+       FeSquare(&r.Z, &p.Y)
+       FeSquare2(&r.T, &p.Z)
+       FeAdd(&r.Y, &p.X, &p.Y)
+       FeSquare(&t0, &r.Y)
+       FeAdd(&r.Y, &r.Z, &r.X)
+       FeSub(&r.Z, &r.Z, &r.X)
+       FeSub(&r.X, &t0, &r.Y)
+       FeSub(&r.T, &r.T, &r.Z)
+}
+
+func (p *ProjectiveGroupElement) ToBytes(s *[32]byte) {
+       var recip, x, y FieldElement
+
+       FeInvert(&recip, &p.Z)
+       FeMul(&x, &p.X, &recip)
+       FeMul(&y, &p.Y, &recip)
+       FeToBytes(s, &y)
+       s[31] ^= FeIsNegative(&x) << 7
+}
+
+func (p *ExtendedGroupElement) Zero() {
+       FeZero(&p.X)
+       FeOne(&p.Y)
+       FeOne(&p.Z)
+       FeZero(&p.T)
+}
+
+func (p *ExtendedGroupElement) Double(r *CompletedGroupElement) {
+       var q ProjectiveGroupElement
+       p.ToProjective(&q)
+       q.Double(r)
+}
+
+func (p *ExtendedGroupElement) ToCached(r *CachedGroupElement) {
+       FeAdd(&r.yPlusX, &p.Y, &p.X)
+       FeSub(&r.yMinusX, &p.Y, &p.X)
+       FeCopy(&r.Z, &p.Z)
+       FeMul(&r.T2d, &p.T, &d2)
+}
+
+func (p *ExtendedGroupElement) ToProjective(r *ProjectiveGroupElement) {
+       FeCopy(&r.X, &p.X)
+       FeCopy(&r.Y, &p.Y)
+       FeCopy(&r.Z, &p.Z)
+}
+
+func (p *ExtendedGroupElement) ToBytes(s *[32]byte) {
+       var recip, x, y FieldElement
+
+       FeInvert(&recip, &p.Z)
+       FeMul(&x, &p.X, &recip)
+       FeMul(&y, &p.Y, &recip)
+       FeToBytes(s, &y)
+       s[31] ^= FeIsNegative(&x) << 7
+}
+
+func (p *ExtendedGroupElement) FromBytes(s *[32]byte) bool {
+       var u, v, v3, vxx, check FieldElement
+
+       FeFromBytes(&p.Y, s)
+       FeOne(&p.Z)
+       FeSquare(&u, &p.Y)
+       FeMul(&v, &u, &d)
+       FeSub(&u, &u, &p.Z) // y = y^2-1
+       FeAdd(&v, &v, &p.Z) // v = dy^2+1
+
+       FeSquare(&v3, &v)
+       FeMul(&v3, &v3, &v) // v3 = v^3
+       FeSquare(&p.X, &v3)
+       FeMul(&p.X, &p.X, &v)
+       FeMul(&p.X, &p.X, &u) // x = uv^7
+
+       fePow22523(&p.X, &p.X) // x = (uv^7)^((q-5)/8)
+       FeMul(&p.X, &p.X, &v3)
+       FeMul(&p.X, &p.X, &u) // x = uv^3(uv^7)^((q-5)/8)
+
+       var tmpX, tmp2 [32]byte
+
+       FeSquare(&vxx, &p.X)
+       FeMul(&vxx, &vxx, &v)
+       FeSub(&check, &vxx, &u) // vx^2-u
+       if FeIsNonZero(&check) == 1 {
+               FeAdd(&check, &vxx, &u) // vx^2+u
+               if FeIsNonZero(&check) == 1 {
+                       return false
+               }
+               FeMul(&p.X, &p.X, &SqrtM1)
+
+               FeToBytes(&tmpX, &p.X)
+               for i, v := range tmpX {
+                       tmp2[31-i] = v
+               }
+       }
+
+       if FeIsNegative(&p.X) != (s[31] >> 7) {
+               FeNeg(&p.X, &p.X)
+       }
+
+       FeMul(&p.T, &p.X, &p.Y)
+       return true
+}
+
+func (p *CompletedGroupElement) ToProjective(r *ProjectiveGroupElement) {
+       FeMul(&r.X, &p.X, &p.T)
+       FeMul(&r.Y, &p.Y, &p.Z)
+       FeMul(&r.Z, &p.Z, &p.T)
+}
+
+func (p *CompletedGroupElement) ToExtended(r *ExtendedGroupElement) {
+       FeMul(&r.X, &p.X, &p.T)
+       FeMul(&r.Y, &p.Y, &p.Z)
+       FeMul(&r.Z, &p.Z, &p.T)
+       FeMul(&r.T, &p.X, &p.Y)
+}
+
+func (p *PreComputedGroupElement) Zero() {
+       FeOne(&p.yPlusX)
+       FeOne(&p.yMinusX)
+       FeZero(&p.xy2d)
+}
+
+func geAdd(r *CompletedGroupElement, p *ExtendedGroupElement, q *CachedGroupElement) {
+       var t0 FieldElement
+
+       FeAdd(&r.X, &p.Y, &p.X)
+       FeSub(&r.Y, &p.Y, &p.X)
+       FeMul(&r.Z, &r.X, &q.yPlusX)
+       FeMul(&r.Y, &r.Y, &q.yMinusX)
+       FeMul(&r.T, &q.T2d, &p.T)
+       FeMul(&r.X, &p.Z, &q.Z)
+       FeAdd(&t0, &r.X, &r.X)
+       FeSub(&r.X, &r.Z, &r.Y)
+       FeAdd(&r.Y, &r.Z, &r.Y)
+       FeAdd(&r.Z, &t0, &r.T)
+       FeSub(&r.T, &t0, &r.T)
+}
+
+func geSub(r *CompletedGroupElement, p *ExtendedGroupElement, q *CachedGroupElement) {
+       var t0 FieldElement
+
+       FeAdd(&r.X, &p.Y, &p.X)
+       FeSub(&r.Y, &p.Y, &p.X)
+       FeMul(&r.Z, &r.X, &q.yMinusX)
+       FeMul(&r.Y, &r.Y, &q.yPlusX)
+       FeMul(&r.T, &q.T2d, &p.T)
+       FeMul(&r.X, &p.Z, &q.Z)
+       FeAdd(&t0, &r.X, &r.X)
+       FeSub(&r.X, &r.Z, &r.Y)
+       FeAdd(&r.Y, &r.Z, &r.Y)
+       FeSub(&r.Z, &t0, &r.T)
+       FeAdd(&r.T, &t0, &r.T)
+}
+
+func geMixedAdd(r *CompletedGroupElement, p *ExtendedGroupElement, q *PreComputedGroupElement) {
+       var t0 FieldElement
+
+       FeAdd(&r.X, &p.Y, &p.X)
+       FeSub(&r.Y, &p.Y, &p.X)
+       FeMul(&r.Z, &r.X, &q.yPlusX)
+       FeMul(&r.Y, &r.Y, &q.yMinusX)
+       FeMul(&r.T, &q.xy2d, &p.T)
+       FeAdd(&t0, &p.Z, &p.Z)
+       FeSub(&r.X, &r.Z, &r.Y)
+       FeAdd(&r.Y, &r.Z, &r.Y)
+       FeAdd(&r.Z, &t0, &r.T)
+       FeSub(&r.T, &t0, &r.T)
+}
+
+func geMixedSub(r *CompletedGroupElement, p *ExtendedGroupElement, q *PreComputedGroupElement) {
+       var t0 FieldElement
+
+       FeAdd(&r.X, &p.Y, &p.X)
+       FeSub(&r.Y, &p.Y, &p.X)
+       FeMul(&r.Z, &r.X, &q.yMinusX)
+       FeMul(&r.Y, &r.Y, &q.yPlusX)
+       FeMul(&r.T, &q.xy2d, &p.T)
+       FeAdd(&t0, &p.Z, &p.Z)
+       FeSub(&r.X, &r.Z, &r.Y)
+       FeAdd(&r.Y, &r.Z, &r.Y)
+       FeSub(&r.Z, &t0, &r.T)
+       FeAdd(&r.T, &t0, &r.T)
+}
+
+func slide(r *[256]int8, a *[32]byte) {
+       for i := range r {
+               r[i] = int8(1 & (a[i>>3] >> uint(i&7)))
+       }
+
+       for i := range r {
+               if r[i] != 0 {
+                       for b := 1; b <= 6 && i+b < 256; b++ {
+                               if r[i+b] != 0 {
+                                       if r[i]+(r[i+b]<<uint(b)) <= 15 {
+                                               r[i] += r[i+b] << uint(b)
+                                               r[i+b] = 0
+                                       } else if r[i]-(r[i+b]<<uint(b)) >= -15 {
+                                               r[i] -= r[i+b] << uint(b)
+                                               for k := i + b; k < 256; k++ {
+                                                       if r[k] == 0 {
+                                                               r[k] = 1
+                                                               break
+                                                       }
+                                                       r[k] = 0
+                                               }
+                                       } else {
+                                               break
+                                       }
+                               }
+                       }
+               }
+       }
+}
+
+// GeDoubleScalarMultVartime sets r = a*A + b*B
+// where a = a[0]+256*a[1]+...+256^31 a[31].
+// and b = b[0]+256*b[1]+...+256^31 b[31].
+// B is the Ed25519 base point (x,4/5) with x positive.
+func GeDoubleScalarMultVartime(r *ProjectiveGroupElement, a *[32]byte, A *ExtendedGroupElement, b *[32]byte) {
+       var aSlide, bSlide [256]int8
+       var Ai [8]CachedGroupElement // A,3A,5A,7A,9A,11A,13A,15A
+       var t CompletedGroupElement
+       var u, A2 ExtendedGroupElement
+       var i int
+
+       slide(&aSlide, a)
+       slide(&bSlide, b)
+
+       A.ToCached(&Ai[0])
+       A.Double(&t)
+       t.ToExtended(&A2)
+
+       for i := 0; i < 7; i++ {
+               geAdd(&t, &A2, &Ai[i])
+               t.ToExtended(&u)
+               u.ToCached(&Ai[i+1])
+       }
+
+       r.Zero()
+
+       for i = 255; i >= 0; i-- {
+               if aSlide[i] != 0 || bSlide[i] != 0 {
+                       break
+               }
+       }
+
+       for ; i >= 0; i-- {
+               r.Double(&t)
+
+               if aSlide[i] > 0 {
+                       t.ToExtended(&u)
+                       geAdd(&t, &u, &Ai[aSlide[i]/2])
+               } else if aSlide[i] < 0 {
+                       t.ToExtended(&u)
+                       geSub(&t, &u, &Ai[(-aSlide[i])/2])
+               }
+
+               if bSlide[i] > 0 {
+                       t.ToExtended(&u)
+                       geMixedAdd(&t, &u, &bi[bSlide[i]/2])
+               } else if bSlide[i] < 0 {
+                       t.ToExtended(&u)
+                       geMixedSub(&t, &u, &bi[(-bSlide[i])/2])
+               }
+
+               t.ToProjective(r)
+       }
+}
+
+// equal returns 1 if b == c and 0 otherwise, assuming that b and c are
+// non-negative.
+func equal(b, c int32) int32 {
+       x := uint32(b ^ c)
+       x--
+       return int32(x >> 31)
+}
+
+// negative returns 1 if b < 0 and 0 otherwise.
+func negative(b int32) int32 {
+       return (b >> 31) & 1
+}
+
+func PreComputedGroupElementCMove(t, u *PreComputedGroupElement, b int32) {
+       FeCMove(&t.yPlusX, &u.yPlusX, b)
+       FeCMove(&t.yMinusX, &u.yMinusX, b)
+       FeCMove(&t.xy2d, &u.xy2d, b)
+}
+
+func selectPoint(t *PreComputedGroupElement, pos int32, b int32) {
+       var minusT PreComputedGroupElement
+       bNegative := negative(b)
+       bAbs := b - (((-bNegative) & b) << 1)
+
+       t.Zero()
+       for i := int32(0); i < 8; i++ {
+               PreComputedGroupElementCMove(t, &base[pos][i], equal(bAbs, i+1))
+       }
+       FeCopy(&minusT.yPlusX, &t.yMinusX)
+       FeCopy(&minusT.yMinusX, &t.yPlusX)
+       FeNeg(&minusT.xy2d, &t.xy2d)
+       PreComputedGroupElementCMove(t, &minusT, bNegative)
+}
+
+// GeScalarMultBase computes h = a*B, where
+//   a = a[0]+256*a[1]+...+256^31 a[31]
+//   B is the Ed25519 base point (x,4/5) with x positive.
+//
+// Preconditions:
+//   a[31] <= 127
+func GeScalarMultBase(h *ExtendedGroupElement, a *[32]byte) {
+       var e [64]int8
+
+       for i, v := range a {
+               e[2*i] = int8(v & 15)
+               e[2*i+1] = int8((v >> 4) & 15)
+       }
+
+       // each e[i] is between 0 and 15 and e[63] is between 0 and 7.
+
+       carry := int8(0)
+       for i := 0; i < 63; i++ {
+               e[i] += carry
+               carry = (e[i] + 8) >> 4
+               e[i] -= carry << 4
+       }
+       e[63] += carry
+       // each e[i] is between -8 and 8.
+
+       h.Zero()
+       var t PreComputedGroupElement
+       var r CompletedGroupElement
+       for i := int32(1); i < 64; i += 2 {
+               selectPoint(&t, i/2, int32(e[i]))
+               geMixedAdd(&r, h, &t)
+               r.ToExtended(h)
+       }
+
+       var s ProjectiveGroupElement
+
+       h.Double(&r)
+       r.ToProjective(&s)
+       s.Double(&r)
+       r.ToProjective(&s)
+       s.Double(&r)
+       r.ToProjective(&s)
+       s.Double(&r)
+       r.ToExtended(h)
+
+       for i := int32(0); i < 64; i += 2 {
+               selectPoint(&t, i/2, int32(e[i]))
+               geMixedAdd(&r, h, &t)
+               r.ToExtended(h)
+       }
+}
+
+// The scalars are GF(2^252 + 27742317777372353535851937790883648493).
+
+// Input:
+//   a[0]+256*a[1]+...+256^31*a[31] = a
+//   b[0]+256*b[1]+...+256^31*b[31] = b
+//   c[0]+256*c[1]+...+256^31*c[31] = c
+//
+// Output:
+//   s[0]+256*s[1]+...+256^31*s[31] = (ab+c) mod l
+//   where l = 2^252 + 27742317777372353535851937790883648493.
+func ScMulAdd(s, a, b, c *[32]byte) {
+       a0 := 2097151 & load3(a[:])
+       a1 := 2097151 & (load4(a[2:]) >> 5)
+       a2 := 2097151 & (load3(a[5:]) >> 2)
+       a3 := 2097151 & (load4(a[7:]) >> 7)
+       a4 := 2097151 & (load4(a[10:]) >> 4)
+       a5 := 2097151 & (load3(a[13:]) >> 1)
+       a6 := 2097151 & (load4(a[15:]) >> 6)
+       a7 := 2097151 & (load3(a[18:]) >> 3)
+       a8 := 2097151 & load3(a[21:])
+       a9 := 2097151 & (load4(a[23:]) >> 5)
+       a10 := 2097151 & (load3(a[26:]) >> 2)
+       a11 := (load4(a[28:]) >> 7)
+       b0 := 2097151 & load3(b[:])
+       b1 := 2097151 & (load4(b[2:]) >> 5)
+       b2 := 2097151 & (load3(b[5:]) >> 2)
+       b3 := 2097151 & (load4(b[7:]) >> 7)
+       b4 := 2097151 & (load4(b[10:]) >> 4)
+       b5 := 2097151 & (load3(b[13:]) >> 1)
+       b6 := 2097151 & (load4(b[15:]) >> 6)
+       b7 := 2097151 & (load3(b[18:]) >> 3)
+       b8 := 2097151 & load3(b[21:])
+       b9 := 2097151 & (load4(b[23:]) >> 5)
+       b10 := 2097151 & (load3(b[26:]) >> 2)
+       b11 := (load4(b[28:]) >> 7)
+       c0 := 2097151 & load3(c[:])
+       c1 := 2097151 & (load4(c[2:]) >> 5)
+       c2 := 2097151 & (load3(c[5:]) >> 2)
+       c3 := 2097151 & (load4(c[7:]) >> 7)
+       c4 := 2097151 & (load4(c[10:]) >> 4)
+       c5 := 2097151 & (load3(c[13:]) >> 1)
+       c6 := 2097151 & (load4(c[15:]) >> 6)
+       c7 := 2097151 & (load3(c[18:]) >> 3)
+       c8 := 2097151 & load3(c[21:])
+       c9 := 2097151 & (load4(c[23:]) >> 5)
+       c10 := 2097151 & (load3(c[26:]) >> 2)
+       c11 := (load4(c[28:]) >> 7)
+       var carry [23]int64
+
+       s0 := c0 + a0*b0
+       s1 := c1 + a0*b1 + a1*b0
+       s2 := c2 + a0*b2 + a1*b1 + a2*b0
+       s3 := c3 + a0*b3 + a1*b2 + a2*b1 + a3*b0
+       s4 := c4 + a0*b4 + a1*b3 + a2*b2 + a3*b1 + a4*b0
+       s5 := c5 + a0*b5 + a1*b4 + a2*b3 + a3*b2 + a4*b1 + a5*b0
+       s6 := c6 + a0*b6 + a1*b5 + a2*b4 + a3*b3 + a4*b2 + a5*b1 + a6*b0
+       s7 := c7 + a0*b7 + a1*b6 + a2*b5 + a3*b4 + a4*b3 + a5*b2 + a6*b1 + a7*b0
+       s8 := c8 + a0*b8 + a1*b7 + a2*b6 + a3*b5 + a4*b4 + a5*b3 + a6*b2 + a7*b1 + a8*b0
+       s9 := c9 + a0*b9 + a1*b8 + a2*b7 + a3*b6 + a4*b5 + a5*b4 + a6*b3 + a7*b2 + a8*b1 + a9*b0
+       s10 := c10 + a0*b10 + a1*b9 + a2*b8 + a3*b7 + a4*b6 + a5*b5 + a6*b4 + a7*b3 + a8*b2 + a9*b1 + a10*b0
+       s11 := c11 + a0*b11 + a1*b10 + a2*b9 + a3*b8 + a4*b7 + a5*b6 + a6*b5 + a7*b4 + a8*b3 + a9*b2 + a10*b1 + a11*b0
+       s12 := a1*b11 + a2*b10 + a3*b9 + a4*b8 + a5*b7 + a6*b6 + a7*b5 + a8*b4 + a9*b3 + a10*b2 + a11*b1
+       s13 := a2*b11 + a3*b10 + a4*b9 + a5*b8 + a6*b7 + a7*b6 + a8*b5 + a9*b4 + a10*b3 + a11*b2
+       s14 := a3*b11 + a4*b10 + a5*b9 + a6*b8 + a7*b7 + a8*b6 + a9*b5 + a10*b4 + a11*b3
+       s15 := a4*b11 + a5*b10 + a6*b9 + a7*b8 + a8*b7 + a9*b6 + a10*b5 + a11*b4
+       s16 := a5*b11 + a6*b10 + a7*b9 + a8*b8 + a9*b7 + a10*b6 + a11*b5
+       s17 := a6*b11 + a7*b10 + a8*b9 + a9*b8 + a10*b7 + a11*b6
+       s18 := a7*b11 + a8*b10 + a9*b9 + a10*b8 + a11*b7
+       s19 := a8*b11 + a9*b10 + a10*b9 + a11*b8
+       s20 := a9*b11 + a10*b10 + a11*b9
+       s21 := a10*b11 + a11*b10
+       s22 := a11 * b11
+       s23 := int64(0)
+
+       carry[0] = (s0 + (1 << 20)) >> 21
+       s1 += carry[0]
+       s0 -= carry[0] << 21
+       carry[2] = (s2 + (1 << 20)) >> 21
+       s3 += carry[2]
+       s2 -= carry[2] << 21
+       carry[4] = (s4 + (1 << 20)) >> 21
+       s5 += carry[4]
+       s4 -= carry[4] << 21
+       carry[6] = (s6 + (1 << 20)) >> 21
+       s7 += carry[6]
+       s6 -= carry[6] << 21
+       carry[8] = (s8 + (1 << 20)) >> 21
+       s9 += carry[8]
+       s8 -= carry[8] << 21
+       carry[10] = (s10 + (1 << 20)) >> 21
+       s11 += carry[10]
+       s10 -= carry[10] << 21
+       carry[12] = (s12 + (1 << 20)) >> 21
+       s13 += carry[12]
+       s12 -= carry[12] << 21
+       carry[14] = (s14 + (1 << 20)) >> 21
+       s15 += carry[14]
+       s14 -= carry[14] << 21
+       carry[16] = (s16 + (1 << 20)) >> 21
+       s17 += carry[16]
+       s16 -= carry[16] << 21
+       carry[18] = (s18 + (1 << 20)) >> 21
+       s19 += carry[18]
+       s18 -= carry[18] << 21
+       carry[20] = (s20 + (1 << 20)) >> 21
+       s21 += carry[20]
+       s20 -= carry[20] << 21
+       carry[22] = (s22 + (1 << 20)) >> 21
+       s23 += carry[22]
+       s22 -= carry[22] << 21
+
+       carry[1] = (s1 + (1 << 20)) >> 21
+       s2 += carry[1]
+       s1 -= carry[1] << 21
+       carry[3] = (s3 + (1 << 20)) >> 21
+       s4 += carry[3]
+       s3 -= carry[3] << 21
+       carry[5] = (s5 + (1 << 20)) >> 21
+       s6 += carry[5]
+       s5 -= carry[5] << 21
+       carry[7] = (s7 + (1 << 20)) >> 21
+       s8 += carry[7]
+       s7 -= carry[7] << 21
+       carry[9] = (s9 + (1 << 20)) >> 21
+       s10 += carry[9]
+       s9 -= carry[9] << 21
+       carry[11] = (s11 + (1 << 20)) >> 21
+       s12 += carry[11]
+       s11 -= carry[11] << 21
+       carry[13] = (s13 + (1 << 20)) >> 21
+       s14 += carry[13]
+       s13 -= carry[13] << 21
+       carry[15] = (s15 + (1 << 20)) >> 21
+       s16 += carry[15]
+       s15 -= carry[15] << 21
+       carry[17] = (s17 + (1 << 20)) >> 21
+       s18 += carry[17]
+       s17 -= carry[17] << 21
+       carry[19] = (s19 + (1 << 20)) >> 21
+       s20 += carry[19]
+       s19 -= carry[19] << 21
+       carry[21] = (s21 + (1 << 20)) >> 21
+       s22 += carry[21]
+       s21 -= carry[21] << 21
+
+       s11 += s23 * 666643
+       s12 += s23 * 470296
+       s13 += s23 * 654183
+       s14 -= s23 * 997805
+       s15 += s23 * 136657
+       s16 -= s23 * 683901
+       s23 = 0
+
+       s10 += s22 * 666643
+       s11 += s22 * 470296
+       s12 += s22 * 654183
+       s13 -= s22 * 997805
+       s14 += s22 * 136657
+       s15 -= s22 * 683901
+       s22 = 0
+
+       s9 += s21 * 666643
+       s10 += s21 * 470296
+       s11 += s21 * 654183
+       s12 -= s21 * 997805
+       s13 += s21 * 136657
+       s14 -= s21 * 683901
+       s21 = 0
+
+       s8 += s20 * 666643
+       s9 += s20 * 470296
+       s10 += s20 * 654183
+       s11 -= s20 * 997805
+       s12 += s20 * 136657
+       s13 -= s20 * 683901
+       s20 = 0
+
+       s7 += s19 * 666643
+       s8 += s19 * 470296
+       s9 += s19 * 654183
+       s10 -= s19 * 997805
+       s11 += s19 * 136657
+       s12 -= s19 * 683901
+       s19 = 0
+
+       s6 += s18 * 666643
+       s7 += s18 * 470296
+       s8 += s18 * 654183
+       s9 -= s18 * 997805
+       s10 += s18 * 136657
+       s11 -= s18 * 683901
+       s18 = 0
+
+       carry[6] = (s6 + (1 << 20)) >> 21
+       s7 += carry[6]
+       s6 -= carry[6] << 21
+       carry[8] = (s8 + (1 << 20)) >> 21
+       s9 += carry[8]
+       s8 -= carry[8] << 21
+       carry[10] = (s10 + (1 << 20)) >> 21
+       s11 += carry[10]
+       s10 -= carry[10] << 21
+       carry[12] = (s12 + (1 << 20)) >> 21
+       s13 += carry[12]
+       s12 -= carry[12] << 21
+       carry[14] = (s14 + (1 << 20)) >> 21
+       s15 += carry[14]
+       s14 -= carry[14] << 21
+       carry[16] = (s16 + (1 << 20)) >> 21
+       s17 += carry[16]
+       s16 -= carry[16] << 21
+
+       carry[7] = (s7 + (1 << 20)) >> 21
+       s8 += carry[7]
+       s7 -= carry[7] << 21
+       carry[9] = (s9 + (1 << 20)) >> 21
+       s10 += carry[9]
+       s9 -= carry[9] << 21
+       carry[11] = (s11 + (1 << 20)) >> 21
+       s12 += carry[11]
+       s11 -= carry[11] << 21
+       carry[13] = (s13 + (1 << 20)) >> 21
+       s14 += carry[13]
+       s13 -= carry[13] << 21
+       carry[15] = (s15 + (1 << 20)) >> 21
+       s16 += carry[15]
+       s15 -= carry[15] << 21
+
+       s5 += s17 * 666643
+       s6 += s17 * 470296
+       s7 += s17 * 654183
+       s8 -= s17 * 997805
+       s9 += s17 * 136657
+       s10 -= s17 * 683901
+       s17 = 0
+
+       s4 += s16 * 666643
+       s5 += s16 * 470296
+       s6 += s16 * 654183
+       s7 -= s16 * 997805
+       s8 += s16 * 136657
+       s9 -= s16 * 683901
+       s16 = 0
+
+       s3 += s15 * 666643
+       s4 += s15 * 470296
+       s5 += s15 * 654183
+       s6 -= s15 * 997805
+       s7 += s15 * 136657
+       s8 -= s15 * 683901
+       s15 = 0
+
+       s2 += s14 * 666643
+       s3 += s14 * 470296
+       s4 += s14 * 654183
+       s5 -= s14 * 997805
+       s6 += s14 * 136657
+       s7 -= s14 * 683901
+       s14 = 0
+
+       s1 += s13 * 666643
+       s2 += s13 * 470296
+       s3 += s13 * 654183
+       s4 -= s13 * 997805
+       s5 += s13 * 136657
+       s6 -= s13 * 683901
+       s13 = 0
+
+       s0 += s12 * 666643
+       s1 += s12 * 470296
+       s2 += s12 * 654183
+       s3 -= s12 * 997805
+       s4 += s12 * 136657
+       s5 -= s12 * 683901
+       s12 = 0
+
+       carry[0] = (s0 + (1 << 20)) >> 21
+       s1 += carry[0]
+       s0 -= carry[0] << 21
+       carry[2] = (s2 + (1 << 20)) >> 21
+       s3 += carry[2]
+       s2 -= carry[2] << 21
+       carry[4] = (s4 + (1 << 20)) >> 21
+       s5 += carry[4]
+       s4 -= carry[4] << 21
+       carry[6] = (s6 + (1 << 20)) >> 21
+       s7 += carry[6]
+       s6 -= carry[6] << 21
+       carry[8] = (s8 + (1 << 20)) >> 21
+       s9 += carry[8]
+       s8 -= carry[8] << 21
+       carry[10] = (s10 + (1 << 20)) >> 21
+       s11 += carry[10]
+       s10 -= carry[10] << 21
+
+       carry[1] = (s1 + (1 << 20)) >> 21
+       s2 += carry[1]
+       s1 -= carry[1] << 21
+       carry[3] = (s3 + (1 << 20)) >> 21
+       s4 += carry[3]
+       s3 -= carry[3] << 21
+       carry[5] = (s5 + (1 << 20)) >> 21
+       s6 += carry[5]
+       s5 -= carry[5] << 21
+       carry[7] = (s7 + (1 << 20)) >> 21
+       s8 += carry[7]
+       s7 -= carry[7] << 21
+       carry[9] = (s9 + (1 << 20)) >> 21
+       s10 += carry[9]
+       s9 -= carry[9] << 21
+       carry[11] = (s11 + (1 << 20)) >> 21
+       s12 += carry[11]
+       s11 -= carry[11] << 21
+
+       s0 += s12 * 666643
+       s1 += s12 * 470296
+       s2 += s12 * 654183
+       s3 -= s12 * 997805
+       s4 += s12 * 136657
+       s5 -= s12 * 683901
+       s12 = 0
+
+       carry[0] = s0 >> 21
+       s1 += carry[0]
+       s0 -= carry[0] << 21
+       carry[1] = s1 >> 21
+       s2 += carry[1]
+       s1 -= carry[1] << 21
+       carry[2] = s2 >> 21
+       s3 += carry[2]
+       s2 -= carry[2] << 21
+       carry[3] = s3 >> 21
+       s4 += carry[3]
+       s3 -= carry[3] << 21
+       carry[4] = s4 >> 21
+       s5 += carry[4]
+       s4 -= carry[4] << 21
+       carry[5] = s5 >> 21
+       s6 += carry[5]
+       s5 -= carry[5] << 21
+       carry[6] = s6 >> 21
+       s7 += carry[6]
+       s6 -= carry[6] << 21
+       carry[7] = s7 >> 21
+       s8 += carry[7]
+       s7 -= carry[7] << 21
+       carry[8] = s8 >> 21
+       s9 += carry[8]
+       s8 -= carry[8] << 21
+       carry[9] = s9 >> 21
+       s10 += carry[9]
+       s9 -= carry[9] << 21
+       carry[10] = s10 >> 21
+       s11 += carry[10]
+       s10 -= carry[10] << 21
+       carry[11] = s11 >> 21
+       s12 += carry[11]
+       s11 -= carry[11] << 21
+
+       s0 += s12 * 666643
+       s1 += s12 * 470296
+       s2 += s12 * 654183
+       s3 -= s12 * 997805
+       s4 += s12 * 136657
+       s5 -= s12 * 683901
+       s12 = 0
+
+       carry[0] = s0 >> 21
+       s1 += carry[0]
+       s0 -= carry[0] << 21
+       carry[1] = s1 >> 21
+       s2 += carry[1]
+       s1 -= carry[1] << 21
+       carry[2] = s2 >> 21
+       s3 += carry[2]
+       s2 -= carry[2] << 21
+       carry[3] = s3 >> 21
+       s4 += carry[3]
+       s3 -= carry[3] << 21
+       carry[4] = s4 >> 21
+       s5 += carry[4]
+       s4 -= carry[4] << 21
+       carry[5] = s5 >> 21
+       s6 += carry[5]
+       s5 -= carry[5] << 21
+       carry[6] = s6 >> 21
+       s7 += carry[6]
+       s6 -= carry[6] << 21
+       carry[7] = s7 >> 21
+       s8 += carry[7]
+       s7 -= carry[7] << 21
+       carry[8] = s8 >> 21
+       s9 += carry[8]
+       s8 -= carry[8] << 21
+       carry[9] = s9 >> 21
+       s10 += carry[9]
+       s9 -= carry[9] << 21
+       carry[10] = s10 >> 21
+       s11 += carry[10]
+       s10 -= carry[10] << 21
+
+       s[0] = byte(s0 >> 0)
+       s[1] = byte(s0 >> 8)
+       s[2] = byte((s0 >> 16) | (s1 << 5))
+       s[3] = byte(s1 >> 3)
+       s[4] = byte(s1 >> 11)
+       s[5] = byte((s1 >> 19) | (s2 << 2))
+       s[6] = byte(s2 >> 6)
+       s[7] = byte((s2 >> 14) | (s3 << 7))
+       s[8] = byte(s3 >> 1)
+       s[9] = byte(s3 >> 9)
+       s[10] = byte((s3 >> 17) | (s4 << 4))
+       s[11] = byte(s4 >> 4)
+       s[12] = byte(s4 >> 12)
+       s[13] = byte((s4 >> 20) | (s5 << 1))
+       s[14] = byte(s5 >> 7)
+       s[15] = byte((s5 >> 15) | (s6 << 6))
+       s[16] = byte(s6 >> 2)
+       s[17] = byte(s6 >> 10)
+       s[18] = byte((s6 >> 18) | (s7 << 3))
+       s[19] = byte(s7 >> 5)
+       s[20] = byte(s7 >> 13)
+       s[21] = byte(s8 >> 0)
+       s[22] = byte(s8 >> 8)
+       s[23] = byte((s8 >> 16) | (s9 << 5))
+       s[24] = byte(s9 >> 3)
+       s[25] = byte(s9 >> 11)
+       s[26] = byte((s9 >> 19) | (s10 << 2))
+       s[27] = byte(s10 >> 6)
+       s[28] = byte((s10 >> 14) | (s11 << 7))
+       s[29] = byte(s11 >> 1)
+       s[30] = byte(s11 >> 9)
+       s[31] = byte(s11 >> 17)
+}
+
+// Input:
+//   s[0]+256*s[1]+...+256^63*s[63] = s
+//
+// Output:
+//   s[0]+256*s[1]+...+256^31*s[31] = s mod l
+//   where l = 2^252 + 27742317777372353535851937790883648493.
+func ScReduce(out *[32]byte, s *[64]byte) {
+       s0 := 2097151 & load3(s[:])
+       s1 := 2097151 & (load4(s[2:]) >> 5)
+       s2 := 2097151 & (load3(s[5:]) >> 2)
+       s3 := 2097151 & (load4(s[7:]) >> 7)
+       s4 := 2097151 & (load4(s[10:]) >> 4)
+       s5 := 2097151 & (load3(s[13:]) >> 1)
+       s6 := 2097151 & (load4(s[15:]) >> 6)
+       s7 := 2097151 & (load3(s[18:]) >> 3)
+       s8 := 2097151 & load3(s[21:])
+       s9 := 2097151 & (load4(s[23:]) >> 5)
+       s10 := 2097151 & (load3(s[26:]) >> 2)
+       s11 := 2097151 & (load4(s[28:]) >> 7)
+       s12 := 2097151 & (load4(s[31:]) >> 4)
+       s13 := 2097151 & (load3(s[34:]) >> 1)
+       s14 := 2097151 & (load4(s[36:]) >> 6)
+       s15 := 2097151 & (load3(s[39:]) >> 3)
+       s16 := 2097151 & load3(s[42:])
+       s17 := 2097151 & (load4(s[44:]) >> 5)
+       s18 := 2097151 & (load3(s[47:]) >> 2)
+       s19 := 2097151 & (load4(s[49:]) >> 7)
+       s20 := 2097151 & (load4(s[52:]) >> 4)
+       s21 := 2097151 & (load3(s[55:]) >> 1)
+       s22 := 2097151 & (load4(s[57:]) >> 6)
+       s23 := (load4(s[60:]) >> 3)
+
+       s11 += s23 * 666643
+       s12 += s23 * 470296
+       s13 += s23 * 654183
+       s14 -= s23 * 997805
+       s15 += s23 * 136657
+       s16 -= s23 * 683901
+       s23 = 0
+
+       s10 += s22 * 666643
+       s11 += s22 * 470296
+       s12 += s22 * 654183
+       s13 -= s22 * 997805
+       s14 += s22 * 136657
+       s15 -= s22 * 683901
+       s22 = 0
+
+       s9 += s21 * 666643
+       s10 += s21 * 470296
+       s11 += s21 * 654183
+       s12 -= s21 * 997805
+       s13 += s21 * 136657
+       s14 -= s21 * 683901
+       s21 = 0
+
+       s8 += s20 * 666643
+       s9 += s20 * 470296
+       s10 += s20 * 654183
+       s11 -= s20 * 997805
+       s12 += s20 * 136657
+       s13 -= s20 * 683901
+       s20 = 0
+
+       s7 += s19 * 666643
+       s8 += s19 * 470296
+       s9 += s19 * 654183
+       s10 -= s19 * 997805
+       s11 += s19 * 136657
+       s12 -= s19 * 683901
+       s19 = 0
+
+       s6 += s18 * 666643
+       s7 += s18 * 470296
+       s8 += s18 * 654183
+       s9 -= s18 * 997805
+       s10 += s18 * 136657
+       s11 -= s18 * 683901
+       s18 = 0
+
+       var carry [17]int64
+
+       carry[6] = (s6 + (1 << 20)) >> 21
+       s7 += carry[6]
+       s6 -= carry[6] << 21
+       carry[8] = (s8 + (1 << 20)) >> 21
+       s9 += carry[8]
+       s8 -= carry[8] << 21
+       carry[10] = (s10 + (1 << 20)) >> 21
+       s11 += carry[10]
+       s10 -= carry[10] << 21
+       carry[12] = (s12 + (1 << 20)) >> 21
+       s13 += carry[12]
+       s12 -= carry[12] << 21
+       carry[14] = (s14 + (1 << 20)) >> 21
+       s15 += carry[14]
+       s14 -= carry[14] << 21
+       carry[16] = (s16 + (1 << 20)) >> 21
+       s17 += carry[16]
+       s16 -= carry[16] << 21
+
+       carry[7] = (s7 + (1 << 20)) >> 21
+       s8 += carry[7]
+       s7 -= carry[7] << 21
+       carry[9] = (s9 + (1 << 20)) >> 21
+       s10 += carry[9]
+       s9 -= carry[9] << 21
+       carry[11] = (s11 + (1 << 20)) >> 21
+       s12 += carry[11]
+       s11 -= carry[11] << 21
+       carry[13] = (s13 + (1 << 20)) >> 21
+       s14 += carry[13]
+       s13 -= carry[13] << 21
+       carry[15] = (s15 + (1 << 20)) >> 21
+       s16 += carry[15]
+       s15 -= carry[15] << 21
+
+       s5 += s17 * 666643
+       s6 += s17 * 470296
+       s7 += s17 * 654183
+       s8 -= s17 * 997805
+       s9 += s17 * 136657
+       s10 -= s17 * 683901
+       s17 = 0
+
+       s4 += s16 * 666643
+       s5 += s16 * 470296
+       s6 += s16 * 654183
+       s7 -= s16 * 997805
+       s8 += s16 * 136657
+       s9 -= s16 * 683901
+       s16 = 0
+
+       s3 += s15 * 666643
+       s4 += s15 * 470296
+       s5 += s15 * 654183
+       s6 -= s15 * 997805
+       s7 += s15 * 136657
+       s8 -= s15 * 683901
+       s15 = 0
+
+       s2 += s14 * 666643
+       s3 += s14 * 470296
+       s4 += s14 * 654183
+       s5 -= s14 * 997805
+       s6 += s14 * 136657
+       s7 -= s14 * 683901
+       s14 = 0
+
+       s1 += s13 * 666643
+       s2 += s13 * 470296
+       s3 += s13 * 654183
+       s4 -= s13 * 997805
+       s5 += s13 * 136657
+       s6 -= s13 * 683901
+       s13 = 0
+
+       s0 += s12 * 666643
+       s1 += s12 * 470296
+       s2 += s12 * 654183
+       s3 -= s12 * 997805
+       s4 += s12 * 136657
+       s5 -= s12 * 683901
+       s12 = 0
+
+       carry[0] = (s0 + (1 << 20)) >> 21
+       s1 += carry[0]
+       s0 -= carry[0] << 21
+       carry[2] = (s2 + (1 << 20)) >> 21
+       s3 += carry[2]
+       s2 -= carry[2] << 21
+       carry[4] = (s4 + (1 << 20)) >> 21
+       s5 += carry[4]
+       s4 -= carry[4] << 21
+       carry[6] = (s6 + (1 << 20)) >> 21
+       s7 += carry[6]
+       s6 -= carry[6] << 21
+       carry[8] = (s8 + (1 << 20)) >> 21
+       s9 += carry[8]
+       s8 -= carry[8] << 21
+       carry[10] = (s10 + (1 << 20)) >> 21
+       s11 += carry[10]
+       s10 -= carry[10] << 21
+
+       carry[1] = (s1 + (1 << 20)) >> 21
+       s2 += carry[1]
+       s1 -= carry[1] << 21
+       carry[3] = (s3 + (1 << 20)) >> 21
+       s4 += carry[3]
+       s3 -= carry[3] << 21
+       carry[5] = (s5 + (1 << 20)) >> 21
+       s6 += carry[5]
+       s5 -= carry[5] << 21
+       carry[7] = (s7 + (1 << 20)) >> 21
+       s8 += carry[7]
+       s7 -= carry[7] << 21
+       carry[9] = (s9 + (1 << 20)) >> 21
+       s10 += carry[9]
+       s9 -= carry[9] << 21
+       carry[11] = (s11 + (1 << 20)) >> 21
+       s12 += carry[11]
+       s11 -= carry[11] << 21
+
+       s0 += s12 * 666643
+       s1 += s12 * 470296
+       s2 += s12 * 654183
+       s3 -= s12 * 997805
+       s4 += s12 * 136657
+       s5 -= s12 * 683901
+       s12 = 0
+
+       carry[0] = s0 >> 21
+       s1 += carry[0]
+       s0 -= carry[0] << 21
+       carry[1] = s1 >> 21
+       s2 += carry[1]
+       s1 -= carry[1] << 21
+       carry[2] = s2 >> 21
+       s3 += carry[2]
+       s2 -= carry[2] << 21
+       carry[3] = s3 >> 21
+       s4 += carry[3]
+       s3 -= carry[3] << 21
+       carry[4] = s4 >> 21
+       s5 += carry[4]
+       s4 -= carry[4] << 21
+       carry[5] = s5 >> 21
+       s6 += carry[5]
+       s5 -= carry[5] << 21
+       carry[6] = s6 >> 21
+       s7 += carry[6]
+       s6 -= carry[6] << 21
+       carry[7] = s7 >> 21
+       s8 += carry[7]
+       s7 -= carry[7] << 21
+       carry[8] = s8 >> 21
+       s9 += carry[8]
+       s8 -= carry[8] << 21
+       carry[9] = s9 >> 21
+       s10 += carry[9]
+       s9 -= carry[9] << 21
+       carry[10] = s10 >> 21
+       s11 += carry[10]
+       s10 -= carry[10] << 21
+       carry[11] = s11 >> 21
+       s12 += carry[11]
+       s11 -= carry[11] << 21
+
+       s0 += s12 * 666643
+       s1 += s12 * 470296
+       s2 += s12 * 654183
+       s3 -= s12 * 997805
+       s4 += s12 * 136657
+       s5 -= s12 * 683901
+       s12 = 0
+
+       carry[0] = s0 >> 21
+       s1 += carry[0]
+       s0 -= carry[0] << 21
+       carry[1] = s1 >> 21
+       s2 += carry[1]
+       s1 -= carry[1] << 21
+       carry[2] = s2 >> 21
+       s3 += carry[2]
+       s2 -= carry[2] << 21
+       carry[3] = s3 >> 21
+       s4 += carry[3]
+       s3 -= carry[3] << 21
+       carry[4] = s4 >> 21
+       s5 += carry[4]
+       s4 -= carry[4] << 21
+       carry[5] = s5 >> 21
+       s6 += carry[5]
+       s5 -= carry[5] << 21
+       carry[6] = s6 >> 21
+       s7 += carry[6]
+       s6 -= carry[6] << 21
+       carry[7] = s7 >> 21
+       s8 += carry[7]
+       s7 -= carry[7] << 21
+       carry[8] = s8 >> 21
+       s9 += carry[8]
+       s8 -= carry[8] << 21
+       carry[9] = s9 >> 21
+       s10 += carry[9]
+       s9 -= carry[9] << 21
+       carry[10] = s10 >> 21
+       s11 += carry[10]
+       s10 -= carry[10] << 21
+
+       out[0] = byte(s0 >> 0)
+       out[1] = byte(s0 >> 8)
+       out[2] = byte((s0 >> 16) | (s1 << 5))
+       out[3] = byte(s1 >> 3)
+       out[4] = byte(s1 >> 11)
+       out[5] = byte((s1 >> 19) | (s2 << 2))
+       out[6] = byte(s2 >> 6)
+       out[7] = byte((s2 >> 14) | (s3 << 7))
+       out[8] = byte(s3 >> 1)
+       out[9] = byte(s3 >> 9)
+       out[10] = byte((s3 >> 17) | (s4 << 4))
+       out[11] = byte(s4 >> 4)
+       out[12] = byte(s4 >> 12)
+       out[13] = byte((s4 >> 20) | (s5 << 1))
+       out[14] = byte(s5 >> 7)
+       out[15] = byte((s5 >> 15) | (s6 << 6))
+       out[16] = byte(s6 >> 2)
+       out[17] = byte(s6 >> 10)
+       out[18] = byte((s6 >> 18) | (s7 << 3))
+       out[19] = byte(s7 >> 5)
+       out[20] = byte(s7 >> 13)
+       out[21] = byte(s8 >> 0)
+       out[22] = byte(s8 >> 8)
+       out[23] = byte((s8 >> 16) | (s9 << 5))
+       out[24] = byte(s9 >> 3)
+       out[25] = byte(s9 >> 11)
+       out[26] = byte((s9 >> 19) | (s10 << 2))
+       out[27] = byte(s10 >> 6)
+       out[28] = byte((s10 >> 14) | (s11 << 7))
+       out[29] = byte(s11 >> 1)
+       out[30] = byte(s11 >> 9)
+       out[31] = byte(s11 >> 17)
+}
diff --git a/vendor/github.com/bytom/crypto/sha3pool/pool.go b/vendor/github.com/bytom/crypto/sha3pool/pool.go
new file mode 100644 (file)
index 0000000..ca69b6a
--- /dev/null
@@ -0,0 +1,31 @@
+// Package sha3pool is a freelist for SHA3-256 hash objects.
+package sha3pool
+
+import (
+       "sync"
+
+       "golang.org/x/crypto/sha3"
+)
+
+var pool = &sync.Pool{New: func() interface{} { return sha3.New256() }}
+
+// Get256 returns an initialized SHA3-256 hash ready to use.
+// It is like sha3.New256 except it uses the freelist.
+// The caller should call Put256 when finished with the returned object.
+func Get256() sha3.ShakeHash {
+       return pool.Get().(sha3.ShakeHash)
+}
+
+// Put256 resets h and puts it in the freelist.
+func Put256(h sha3.ShakeHash) {
+       h.Reset()
+       pool.Put(h)
+}
+
+// Sum256 uses a ShakeHash from the pool to sum into hash.
+func Sum256(hash, data []byte) {
+       h := Get256()
+       h.Write(data)
+       h.Read(hash)
+       Put256(h)
+}
diff --git a/vendor/github.com/bytom/crypto/sm3/ifile b/vendor/github.com/bytom/crypto/sm3/ifile
new file mode 100644 (file)
index 0000000..30d74d2
--- /dev/null
@@ -0,0 +1 @@
+test
\ No newline at end of file
diff --git a/vendor/github.com/bytom/crypto/sm3/sm3.go b/vendor/github.com/bytom/crypto/sm3/sm3.go
new file mode 100644 (file)
index 0000000..45057c0
--- /dev/null
@@ -0,0 +1,193 @@
+package sm3
+
+import (
+       "encoding/binary"
+       "hash"
+)
+
+type SM3 struct {
+       digest      [8]uint32 // digest represents the partial evaluation of V
+       length      uint64    // length of the message
+       unhandleMsg []byte    // uint8  //
+}
+
+func (sm3 *SM3) ff0(x, y, z uint32) uint32 { return x ^ y ^ z }
+
+func (sm3 *SM3) ff1(x, y, z uint32) uint32 { return (x & y) | (x & z) | (y & z) }
+
+func (sm3 *SM3) gg0(x, y, z uint32) uint32 { return x ^ y ^ z }
+
+func (sm3 *SM3) gg1(x, y, z uint32) uint32 { return (x & y) | (^x & z) }
+
+func (sm3 *SM3) p0(x uint32) uint32 { return x ^ sm3.leftRotate(x, 9) ^ sm3.leftRotate(x, 17) }
+
+func (sm3 *SM3) p1(x uint32) uint32 { return x ^ sm3.leftRotate(x, 15) ^ sm3.leftRotate(x, 23) }
+
+func (sm3 *SM3) leftRotate(x uint32, i uint32) uint32 { return (x<<(i%32) | x>>(32-i%32)) }
+
+func (sm3 *SM3) pad() []byte {
+       msg := sm3.unhandleMsg
+       msg = append(msg, 0x80) // Append '1'
+       blockSize := 64         // Append until the resulting message length (in bits) is congruent to 448 (mod 512)
+       for len(msg)%blockSize != 56 {
+               msg = append(msg, 0x00)
+       }
+       // append message length
+       // not using loops so that compiler might benefit from it
+       msg = append(msg, uint8(sm3.length>>56&0xff))
+       msg = append(msg, uint8(sm3.length>>48&0xff))
+       msg = append(msg, uint8(sm3.length>>40&0xff))
+       msg = append(msg, uint8(sm3.length>>32&0xff))
+       msg = append(msg, uint8(sm3.length>>24&0xff))
+       msg = append(msg, uint8(sm3.length>>16&0xff))
+       msg = append(msg, uint8(sm3.length>>8&0xff))
+       msg = append(msg, uint8(sm3.length>>0&0xff))
+
+       if len(msg)%64 != 0 {
+               panic("------SM3 Pad: error msgLen =")
+       }
+       return msg
+}
+
+func (sm3 *SM3) update(msg []byte, nblocks int) {
+       var w [68]uint32
+       var w1 [64]uint32
+
+       a, b, c, d, e, f, g, h := sm3.digest[0], sm3.digest[1], sm3.digest[2], sm3.digest[3], sm3.digest[4], sm3.digest[5], sm3.digest[6], sm3.digest[7]
+       for len(msg) >= 64 {
+               for i := 0; i < 16; i++ {
+                       w[i] = binary.BigEndian.Uint32(msg[4*i : 4*(i+1)])
+               }
+               for i := 16; i < 68; i++ {
+                       w[i] = sm3.p1(w[i-16]^w[i-9]^sm3.leftRotate(w[i-3], 15)) ^ sm3.leftRotate(w[i-13], 7) ^ w[i-6]
+               }
+               for i := 0; i < 64; i++ {
+                       w1[i] = w[i] ^ w[i+4]
+               }
+               A, B, C, D, E, F, G, H := a, b, c, d, e, f, g, h
+               for i := 0; i < 16; i++ {
+                       SS1 := sm3.leftRotate(sm3.leftRotate(A, 12)+E+sm3.leftRotate(0x79cc4519, uint32(i)), 7)
+                       SS2 := SS1 ^ sm3.leftRotate(A, 12)
+                       TT1 := sm3.ff0(A, B, C) + D + SS2 + w1[i]
+                       TT2 := sm3.gg0(E, F, G) + H + SS1 + w[i]
+                       D = C
+                       C = sm3.leftRotate(B, 9)
+                       B = A
+                       A = TT1
+                       H = G
+                       G = sm3.leftRotate(F, 19)
+                       F = E
+                       E = sm3.p0(TT2)
+               }
+               for i := 16; i < 64; i++ {
+                       SS1 := sm3.leftRotate(sm3.leftRotate(A, 12)+E+sm3.leftRotate(0x7a879d8a, uint32(i)), 7)
+                       SS2 := SS1 ^ sm3.leftRotate(A, 12)
+                       TT1 := sm3.ff1(A, B, C) + D + SS2 + w1[i]
+                       TT2 := sm3.gg1(E, F, G) + H + SS1 + w[i]
+                       D = C
+                       C = sm3.leftRotate(B, 9)
+                       B = A
+                       A = TT1
+                       H = G
+                       G = sm3.leftRotate(F, 19)
+                       F = E
+                       E = sm3.p0(TT2)
+               }
+               a ^= A
+               b ^= B
+               c ^= C
+               d ^= D
+               e ^= E
+               f ^= F
+               g ^= G
+               h ^= H
+               msg = msg[64:]
+       }
+       sm3.digest[0], sm3.digest[1], sm3.digest[2], sm3.digest[3], sm3.digest[4], sm3.digest[5], sm3.digest[6], sm3.digest[7] = a, b, c, d, e, f, g, h
+}
+
+func New() hash.Hash {
+       var sm3 SM3
+
+       sm3.Reset()
+       return &sm3
+}
+
+// BlockSize, required by the hash.Hash interface.
+// BlockSize returns the hash's underlying block size.
+// The Write method must be able to accept any amount
+// of data, but it may operate more efficiently if all writes
+// are a multiple of the block size.
+func (sm3 *SM3) BlockSize() int { return 64 }
+
+// Size, required by the hash.Hash interface.
+// Size returns the number of bytes Sum will return.
+func (sm3 *SM3) Size() int { return 32 }
+
+// Reset clears the internal state by zeroing bytes in the state buffer.
+// This can be skipped for a newly-created hash state; the default zero-allocated state is correct.
+func (sm3 *SM3) Reset() {
+       // Reset digest
+       sm3.digest[0] = 0x7380166f
+       sm3.digest[1] = 0x4914b2b9
+       sm3.digest[2] = 0x172442d7
+       sm3.digest[3] = 0xda8a0600
+       sm3.digest[4] = 0xa96f30bc
+       sm3.digest[5] = 0x163138aa
+       sm3.digest[6] = 0xe38dee4d
+       sm3.digest[7] = 0xb0fb0e4e
+
+       sm3.length = 0 // Reset numberic states
+       sm3.unhandleMsg = []byte{}
+}
+
+// Write, required by the hash.Hash interface.
+// Write (via the embedded io.Writer interface) adds more data to the running hash.
+// It never returns an error.
+func (sm3 *SM3) Write(p []byte) (int, error) {
+       toWrite := len(p)
+       sm3.length += uint64(len(p) * 8)
+
+       msg := append(sm3.unhandleMsg, p...)
+       nblocks := len(msg) / sm3.BlockSize()
+       sm3.update(msg, nblocks)
+
+       // Update unhandleMsg
+       sm3.unhandleMsg = msg[nblocks*sm3.BlockSize():]
+
+       return toWrite, nil
+}
+
+// Sum, required by the hash.Hash interface.
+// Sum appends the current hash to b and returns the resulting slice.
+// It does not change the underlying hash state.
+func (sm3 *SM3) Sum(in []byte) []byte {
+       sm3.Write(in)
+       msg := sm3.pad()
+
+       // Finialize
+       sm3.update(msg, len(msg)/sm3.BlockSize())
+
+       // save hash to in
+       needed := sm3.Size()
+       if cap(in)-len(in) < needed {
+               newIn := make([]byte, len(in), len(in)+needed)
+               copy(newIn, in)
+               in = newIn
+       }
+       out := in[len(in) : len(in)+needed]
+
+       for i := 0; i < 8; i++ {
+               binary.BigEndian.PutUint32(out[i*4:], sm3.digest[i])
+       }
+       return out
+
+}
+
+func Sm3Sum(data []byte) []byte {
+       var sm3 SM3
+
+       sm3.Reset()
+       sm3.Write(data)
+       return sm3.Sum(nil)
+}
diff --git a/vendor/github.com/bytom/encoding/blockchain/blockchain.go b/vendor/github.com/bytom/encoding/blockchain/blockchain.go
new file mode 100644 (file)
index 0000000..61ee843
--- /dev/null
@@ -0,0 +1,203 @@
+// Package blockchain provides the tools for encoding
+// data primitives in blockchain structures
+package blockchain
+
+import (
+       "encoding/binary"
+       "errors"
+       "io"
+       "math"
+       "sync"
+
+       "github.com/bytom/encoding/bufpool"
+)
+
+var bufPool = sync.Pool{New: func() interface{} { return new([9]byte) }}
+
+var ErrRange = errors.New("value out of range")
+
+// Reader wraps a buffer and provides utilities for decoding
+// data primitives in blockchain structures. Its various read
+// calls may return a slice of the underlying buffer.
+type Reader struct {
+       buf []byte
+}
+
+// NewReader constructs a new reader with the provided bytes. It
+// does not create a copy of the bytes, so the caller is responsible
+// for copying the bytes if necessary.
+func NewReader(b []byte) *Reader {
+       return &Reader{buf: b}
+}
+
+// Len returns the number of unread bytes.
+func (r *Reader) Len() int {
+       return len(r.buf)
+}
+
+// ReadByte reads and returns the next byte from the input.
+//
+// It implements the io.ByteReader interface.
+func (r *Reader) ReadByte() (byte, error) {
+       if len(r.buf) == 0 {
+               return 0, io.EOF
+       }
+
+       b := r.buf[0]
+       r.buf = r.buf[1:]
+       return b, nil
+}
+
+// Read reads up to len(p) bytes into p. It implements
+// the io.Reader interface.
+func (r *Reader) Read(p []byte) (n int, err error) {
+       n = copy(p, r.buf)
+       r.buf = r.buf[n:]
+       if len(r.buf) == 0 {
+               err = io.EOF
+       }
+       return
+}
+
+func ReadVarint31(r *Reader) (uint32, error) {
+       val, err := binary.ReadUvarint(r)
+       if err != nil {
+               return 0, err
+       }
+       if val > math.MaxInt32 {
+               return 0, ErrRange
+       }
+       return uint32(val), nil
+}
+
+func ReadVarint63(r *Reader) (uint64, error) {
+       val, err := binary.ReadUvarint(r)
+       if err != nil {
+               return 0, err
+       }
+       if val > math.MaxInt64 {
+               return 0, ErrRange
+       }
+       return val, nil
+}
+
+func ReadVarstr31(r *Reader) ([]byte, error) {
+       l, err := ReadVarint31(r)
+       if err != nil {
+               return nil, err
+       }
+       if l == 0 {
+               return nil, nil
+       }
+       if int(l) > len(r.buf) {
+               return nil, io.ErrUnexpectedEOF
+       }
+       str := r.buf[:l]
+       r.buf = r.buf[l:]
+       return str, nil
+}
+
+// ReadVarstrList reads a varint31 length prefix followed by
+// that many varstrs.
+func ReadVarstrList(r *Reader) (result [][]byte, err error) {
+       nelts, err := ReadVarint31(r)
+       if err != nil {
+               return nil, err
+       }
+       if nelts == 0 {
+               return nil, nil
+       }
+
+       for ; nelts > 0 && err == nil; nelts-- {
+               var s []byte
+               s, err = ReadVarstr31(r)
+               result = append(result, s)
+       }
+       if len(result) < int(nelts) {
+               err = io.ErrUnexpectedEOF
+       }
+       return result, err
+}
+
+// ReadExtensibleString reads a varint31 length prefix and that many
+// bytes from r. It then calls the given function to consume those
+// bytes, returning any unconsumed suffix.
+func ReadExtensibleString(r *Reader, f func(*Reader) error) (suffix []byte, err error) {
+       s, err := ReadVarstr31(r)
+       if err != nil {
+               return nil, err
+       }
+
+       sr := NewReader(s)
+       err = f(sr)
+       if err != nil {
+               return nil, err
+       }
+       return sr.buf, nil
+}
+
+func WriteVarint31(w io.Writer, val uint64) (int, error) {
+       if val > math.MaxInt32 {
+               return 0, ErrRange
+       }
+       buf := bufPool.Get().(*[9]byte)
+       n := binary.PutUvarint(buf[:], val)
+       b, err := w.Write(buf[:n])
+       bufPool.Put(buf)
+       return b, err
+}
+
+func WriteVarint63(w io.Writer, val uint64) (int, error) {
+       if val > math.MaxInt64 {
+               return 0, ErrRange
+       }
+       buf := bufPool.Get().(*[9]byte)
+       n := binary.PutUvarint(buf[:], val)
+       b, err := w.Write(buf[:n])
+       bufPool.Put(buf)
+       return b, err
+}
+
+func WriteVarstr31(w io.Writer, str []byte) (int, error) {
+       n, err := WriteVarint31(w, uint64(len(str)))
+       if err != nil {
+               return n, err
+       }
+       n2, err := w.Write(str)
+       return n + n2, err
+}
+
+// WriteVarstrList writes a varint31 length prefix followed by the
+// elements of l as varstrs.
+func WriteVarstrList(w io.Writer, l [][]byte) (int, error) {
+       n, err := WriteVarint31(w, uint64(len(l)))
+       if err != nil {
+               return n, err
+       }
+       for _, s := range l {
+               n2, err := WriteVarstr31(w, s)
+               n += n2
+               if err != nil {
+                       return n, err
+               }
+       }
+       return n, err
+}
+
+// WriteExtensibleString sends the output of the given function, plus
+// the given suffix, to w, together with a varint31 length prefix.
+func WriteExtensibleString(w io.Writer, suffix []byte, f func(io.Writer) error) (int, error) {
+       buf := bufpool.Get()
+       defer bufpool.Put(buf)
+       err := f(buf)
+       if err != nil {
+               return 0, err
+       }
+       if len(suffix) > 0 {
+               _, err := buf.Write(suffix)
+               if err != nil {
+                       return 0, err
+               }
+       }
+       return WriteVarstr31(w, buf.Bytes())
+}
diff --git a/vendor/github.com/bytom/encoding/bufpool/bufpool.go b/vendor/github.com/bytom/encoding/bufpool/bufpool.go
new file mode 100644 (file)
index 0000000..bd59317
--- /dev/null
@@ -0,0 +1,35 @@
+// Package bufpool is a freelist for bytes.Buffer objects.
+package bufpool
+
+import (
+       "bytes"
+       "sync"
+)
+
+var pool = &sync.Pool{New: func() interface{} { return bytes.NewBuffer(nil) }}
+
+// Get returns an initialized bytes.Buffer object.
+// It is like new(bytes.Buffer) except it uses the free list.
+// The caller should call Put when finished with the returned object.
+// Since Buffer.Bytes() returns the buffer's underlying slice,
+// it is not safe for that slice to escape the caller.
+// If the bytes need to escape, CopyBytes should be used.
+func Get() *bytes.Buffer {
+       return pool.Get().(*bytes.Buffer)
+}
+
+// Put resets the buffer and adds it to the freelist.
+func Put(b *bytes.Buffer) {
+       b.Reset()
+       pool.Put(b)
+}
+
+// CopyBytes returns a copy of the bytes contained in the buffer.
+// This slice is safe from updates in the underlying buffer,
+// allowing the buffer to be placed back in the free list.
+func CopyBytes(buf *bytes.Buffer) []byte {
+       b := buf.Bytes()
+       b2 := make([]byte, len(b))
+       copy(b2, b)
+       return b2
+}
diff --git a/vendor/github.com/bytom/encoding/json/duration.go b/vendor/github.com/bytom/encoding/json/duration.go
new file mode 100644 (file)
index 0000000..86452f7
--- /dev/null
@@ -0,0 +1,58 @@
+package json
+
+import (
+       "bytes"
+       "encoding/json"
+       "errors"
+       "strconv"
+       "time"
+)
+
+type Duration struct {
+       time.Duration
+}
+
+// UnmarshalJSON fulfills the encoding/json.Unmarshaler interface.
+// It attempts to parse text as a time.Duration string.
+// The Go documentation defines this as a possibly signed sequence of decimal
+// numbers, each with optional fraction and a unit suffix, such as
+// "300ms", "-1.5h" or "2h45m".
+// Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h").
+// If there is no time unit, UnmarshalJSON defaults to ms.
+func (d *Duration) UnmarshalJSON(b []byte) error {
+       if bytes.Equal(b, []byte("null")) {
+               return nil
+       }
+
+       dMS, err := strconv.ParseInt(string(b), 10, 64)
+       if err != nil {
+               // Assume this is a string instead, in which case we need to unmarshal it as a string
+               // before we try to parse it as a time.Duration.
+               var str string
+               err = json.Unmarshal(b, &str)
+               if err != nil {
+                       return errors.New("invalid json.Duration")
+               }
+
+               d0, err := time.ParseDuration(str)
+               if err != nil {
+                       return errors.New("invalid json.Duration")
+               }
+               if d0 < 0 {
+                       return errors.New("invalid json.Duration: Duration cannot be less than 0")
+               }
+               d.Duration = d0
+       } else {
+               if dMS < 0 {
+                       return errors.New("invalid json.Duration: Duration cannot be less than 0")
+               }
+               d.Duration = time.Duration(dMS) * time.Millisecond
+       }
+
+       return nil
+}
+
+// MarshalJSON implements json.Marshaler.
+func (d Duration) MarshalJSON() ([]byte, error) {
+       return json.Marshal(d.Duration.Nanoseconds() / int64(time.Millisecond))
+}
diff --git a/vendor/github.com/bytom/encoding/json/json.go b/vendor/github.com/bytom/encoding/json/json.go
new file mode 100644 (file)
index 0000000..0ad7b6a
--- /dev/null
@@ -0,0 +1,35 @@
+package json
+
+import (
+       "encoding/hex"
+       "encoding/json"
+)
+
+type HexBytes []byte
+
+func (h HexBytes) MarshalText() ([]byte, error) {
+       return []byte(hex.EncodeToString(h)), nil
+}
+
+func (h *HexBytes) UnmarshalText(text []byte) error {
+       n := hex.DecodedLen(len(text))
+       *h = make([]byte, n)
+       _, err := hex.Decode(*h, text)
+       return err
+}
+
+type Map []byte
+
+func (m Map) MarshalJSON() ([]byte, error) {
+       return m, nil
+}
+
+func (m *Map) UnmarshalJSON(text []byte) error {
+       var check map[string]*json.RawMessage
+       err := json.Unmarshal(text, &check)
+       if err != nil {
+               return err
+       }
+       *m = text
+       return nil
+}
diff --git a/vendor/github.com/bytom/errors/doc.go b/vendor/github.com/bytom/errors/doc.go
new file mode 100644 (file)
index 0000000..0437cd4
--- /dev/null
@@ -0,0 +1,57 @@
+/*
+Package errors implements a basic error wrapping pattern, so that errors can be
+annotated with additional information without losing the original error.
+
+Example:
+
+       import "chain/errors"
+
+       func query() error {
+               err := pq.Exec("SELECT...")
+               if err != nil {
+                       return errors.Wrap(err, "select query failed")
+               }
+
+               err = pq.Exec("INSERT...")
+               if err != nil {
+                       return errors.Wrap(err, "insert query failed")
+               }
+
+               return nil
+       }
+
+       func main() {
+               err := query()
+               if _, ok := errors.Root(err).(sql.ErrNoRows); ok {
+                       log.Println("There were no results")
+                       return
+               } else if err != nil {
+                       log.Println(err)
+                       return
+               }
+
+               log.Println("success")
+       }
+
+When to wrap errors
+
+Errors should be wrapped with additional messages when the context is ambiguous.
+This includes when the error could arise in multiple locations in the same
+function, when the error is very common and likely to appear at different points
+in the call tree (e.g., JSON serialization errors), or when you need specific
+parameters alongside the original error message.
+
+Error handling best practices
+
+Errors are part of a function's interface. If you expect the caller to perform
+conditional error handling, you should document the errors returned by your
+function in a function comment, and include it as part of your unit tests.
+
+Be disciplined about validating user input. Programs should draw a very clear
+distinction between user errors and internal errors.
+
+Avoid redundant error logging. If you return an error, assume it will be logged
+higher up the call stack. For a given project, choose an appropriate layer to
+handle error logging.
+*/
+package errors
diff --git a/vendor/github.com/bytom/errors/errors.go b/vendor/github.com/bytom/errors/errors.go
new file mode 100644 (file)
index 0000000..26e137d
--- /dev/null
@@ -0,0 +1,189 @@
+package errors
+
+import (
+       "errors"
+       "fmt"
+       "strings"
+)
+
+// New returns an error that formats as the given text.
+func New(text string) error {
+       return errors.New(text)
+}
+
+// wrapperError satisfies the error interface.
+type wrapperError struct {
+       msg    string
+       detail []string
+       data   map[string]interface{}
+       stack  []StackFrame
+       root   error
+}
+
+// It satisfies the error interface.
+func (e wrapperError) Error() string {
+       return e.msg
+}
+
+// Root returns the original error that was wrapped by one or more
+// calls to Wrap. If e does not wrap other errors, it will be returned
+// as-is.
+func Root(e error) error {
+       if wErr, ok := e.(wrapperError); ok {
+               return wErr.root
+       }
+       return e
+}
+
+// wrap adds a context message and stack trace to err and returns a new error
+// containing the new context. This function is meant to be composed within
+// other exported functions, such as Wrap and WithDetail.
+// The argument stackSkip is the number of stack frames to ascend when
+// generating stack straces, where 0 is the caller of wrap.
+func wrap(err error, msg string, stackSkip int) error {
+       if err == nil {
+               return nil
+       }
+
+       werr, ok := err.(wrapperError)
+       if !ok {
+               werr.root = err
+               werr.msg = err.Error()
+               werr.stack = getStack(stackSkip+2, stackTraceSize)
+       }
+       if msg != "" {
+               werr.msg = msg + ": " + werr.msg
+       }
+
+       return werr
+}
+
+// Wrap adds a context message and stack trace to err and returns a new error
+// with the new context. Arguments are handled as in fmt.Print.
+// Use Root to recover the original error wrapped by one or more calls to Wrap.
+// Use Stack to recover the stack trace.
+// Wrap returns nil if err is nil.
+func Wrap(err error, a ...interface{}) error {
+       if err == nil {
+               return nil
+       }
+       return wrap(err, fmt.Sprint(a...), 1)
+}
+
+// Wrapf is like Wrap, but arguments are handled as in fmt.Printf.
+func Wrapf(err error, format string, a ...interface{}) error {
+       if err == nil {
+               return nil
+       }
+       return wrap(err, fmt.Sprintf(format, a...), 1)
+}
+
+// WithDetail returns a new error that wraps
+// err as a chain error messsage containing text
+// as its additional context.
+// Function Detail will return the given text
+// when called on the new error value.
+func WithDetail(err error, text string) error {
+       if err == nil {
+               return nil
+       }
+       if text == "" {
+               return err
+       }
+       e1 := wrap(err, text, 1).(wrapperError)
+       e1.detail = append(e1.detail, text)
+       return e1
+}
+
+// WithDetailf is like WithDetail, except it formats
+// the detail message as in fmt.Printf.
+// Function Detail will return the formatted text
+// when called on the new error value.
+func WithDetailf(err error, format string, v ...interface{}) error {
+       if err == nil {
+               return nil
+       }
+       text := fmt.Sprintf(format, v...)
+       e1 := wrap(err, text, 1).(wrapperError)
+       e1.detail = append(e1.detail, text)
+       return e1
+}
+
+// Detail returns the detail message contained in err, if any.
+// An error has a detail message if it was made by WithDetail
+// or WithDetailf.
+func Detail(err error) string {
+       wrapper, ok := err.(wrapperError)
+       if !ok {
+               return err.Error()
+       }
+       return strings.Join(wrapper.detail, "; ")
+}
+
+// withData returns a new error that wraps err
+// as a chain error message containing v as
+// an extra data item.
+// Calling Data on the returned error yields v.
+// Note that if err already has a data item,
+// it will not be accessible via the returned error value.
+func withData(err error, v map[string]interface{}) error {
+       if err == nil {
+               return nil
+       }
+       e1 := wrap(err, "", 1).(wrapperError)
+       e1.data = v
+       return e1
+}
+
+// WithData returns a new error that wraps err
+// as a chain error message containing a value of type
+// map[string]interface{} as an extra data item.
+// The map contains the values in the map in err,
+// if any, plus the items in keyval.
+// Keyval takes the form
+//   k1, v1, k2, v2, ...
+// Values kN must be strings.
+// Calling Data on the returned error yields the map.
+// Note that if err already has a data item of any other type,
+// it will not be accessible via the returned error value.
+func WithData(err error, keyval ...interface{}) error {
+       if err == nil {
+               return nil
+       }
+       // TODO(kr): add vet check for odd-length keyval and non-string keys
+       newkv := make(map[string]interface{})
+       for k, v := range Data(err) {
+               newkv[k] = v
+       }
+       for i := 0; i < len(keyval); i += 2 {
+               newkv[keyval[i].(string)] = keyval[i+1]
+       }
+       return withData(err, newkv)
+}
+
+// Data returns the data item in err, if any.
+func Data(err error) map[string]interface{} {
+       wrapper, _ := err.(wrapperError)
+       return wrapper.data
+}
+
+// Sub returns an error containing root as its root and
+// taking all other metadata (stack trace, detail, message,
+// and data items) from err.
+//
+// Sub returns nil when either root or err is nil.
+//
+// Use this when you need to substitute a new root error in place
+// of an existing error that may already hold a stack trace
+// or other metadata.
+func Sub(root, err error) error {
+       if wrapper, ok := err.(wrapperError); ok && root != nil {
+               wrapper.root = Root(root)
+               wrapper.msg = root.Error()
+               root = wrapper
+       }
+       if err == nil {
+               return nil
+       }
+       return Wrap(root, err.Error())
+}
diff --git a/vendor/github.com/bytom/errors/stack.go b/vendor/github.com/bytom/errors/stack.go
new file mode 100644 (file)
index 0000000..c471c07
--- /dev/null
@@ -0,0 +1,51 @@
+package errors
+
+import (
+       "fmt"
+       "runtime"
+)
+
+const stackTraceSize = 10
+
+// StackFrame represents a single entry in a stack trace.
+type StackFrame struct {
+       Func string
+       File string
+       Line int
+}
+
+// String satisfies the fmt.Stringer interface.
+func (f StackFrame) String() string {
+       return fmt.Sprintf("%s:%d - %s", f.File, f.Line, f.Func)
+}
+
+// Stack returns the stack trace of an error. The error must contain the stack
+// trace, or wrap an error that has a stack trace,
+func Stack(err error) []StackFrame {
+       if wErr, ok := err.(wrapperError); ok {
+               return wErr.stack
+       }
+       return nil
+}
+
+// getStack is a formatting wrapper around runtime.Callers. It returns a stack
+// trace in the form of a StackFrame slice.
+func getStack(skip int, size int) []StackFrame {
+       var (
+               pc    = make([]uintptr, size)
+               calls = runtime.Callers(skip+1, pc)
+               trace []StackFrame
+       )
+
+       for i := 0; i < calls; i++ {
+               f := runtime.FuncForPC(pc[i])
+               file, line := f.FileLine(pc[i] - 1)
+               trace = append(trace, StackFrame{
+                       Func: f.Name(),
+                       File: file,
+                       Line: line,
+               })
+       }
+
+       return trace
+}
diff --git a/vendor/github.com/bytom/errors/writer.go b/vendor/github.com/bytom/errors/writer.go
new file mode 100644 (file)
index 0000000..fd59b65
--- /dev/null
@@ -0,0 +1,46 @@
+package errors
+
+import "io"
+
+// NewWriter returns a new Writer that writes to w
+// until an error is returned.
+func NewWriter(w io.Writer) *Writer {
+       return &Writer{w: w}
+}
+
+// Writer is in an implementation of the
+// "sticky error writer" pattern as described
+// in https://blog.golang.org/errors-are-values.
+//
+// A Writer makes one call
+// on the underlying writer for each call to Write,
+// until an error is returned. From that point on,
+// it makes no calls on the underlying writer,
+// and returns the same error value every time.
+type Writer struct {
+       w   io.Writer
+       n   int64
+       err error
+}
+
+// Write makes one call on the underlying writer
+// if no error has previously occurred.
+func (w *Writer) Write(buf []byte) (n int, err error) {
+       if w.err != nil {
+               return 0, w.err
+       }
+       n, w.err = w.w.Write(buf)
+       w.n += int64(n)
+       return n, w.err
+}
+
+// Err returns the first error encountered by Write, if any.
+func (w *Writer) Err() error {
+       return w.err
+}
+
+// Written returns the number of bytes written
+// to the underlying writer.
+func (w *Writer) Written() int64 {
+       return w.n
+}
diff --git a/vendor/github.com/bytom/math/checked/checked.go b/vendor/github.com/bytom/math/checked/checked.go
new file mode 100644 (file)
index 0000000..8280d81
--- /dev/null
@@ -0,0 +1,268 @@
+/*
+Package checked implements basic arithmetic operations
+with underflow and overflow checks.
+*/
+package checked
+
+import (
+       "errors"
+       "math"
+)
+
+var ErrOverflow = errors.New("arithmetic overflow")
+
+// AddInt64 returns a + b
+// with an integer overflow check.
+func AddInt64(a, b int64) (sum int64, ok bool) {
+       if (b > 0 && a > math.MaxInt64-b) ||
+               (b < 0 && a < math.MinInt64-b) {
+               return 0, false
+       }
+       return a + b, true
+}
+
+// SubInt64 returns a - b
+// with an integer overflow check.
+func SubInt64(a, b int64) (diff int64, ok bool) {
+       if (b > 0 && a < math.MinInt64+b) ||
+               (b < 0 && a > math.MaxInt64+b) {
+               return 0, false
+       }
+       return a - b, true
+}
+
+// MulInt64 returns a * b
+// with an integer overflow check.
+func MulInt64(a, b int64) (product int64, ok bool) {
+       if (a > 0 && b > 0 && a > math.MaxInt64/b) ||
+               (a > 0 && b <= 0 && b < math.MinInt64/a) ||
+               (a <= 0 && b > 0 && a < math.MinInt64/b) ||
+               (a < 0 && b <= 0 && b < math.MaxInt64/a) {
+               return 0, false
+       }
+       return a * b, true
+}
+
+// DivInt64 returns a / b
+// with an integer overflow check.
+func DivInt64(a, b int64) (quotient int64, ok bool) {
+       if b == 0 || (a == math.MinInt64 && b == -1) {
+               return 0, false
+       }
+       return a / b, true
+}
+
+// ModInt64 returns a % b
+// with an integer overflow check.
+func ModInt64(a, b int64) (remainder int64, ok bool) {
+       if b == 0 || (a == math.MinInt64 && b == -1) {
+               return 0, false
+       }
+       return a % b, true
+}
+
+// NegateInt64 returns -a
+// with an integer overflow check.
+func NegateInt64(a int64) (negated int64, ok bool) {
+       if a == math.MinInt64 {
+               return 0, false
+       }
+       return -a, true
+}
+
+// LshiftInt64 returns a << b
+// with an integer overflow check.
+func LshiftInt64(a, b int64) (result int64, ok bool) {
+       if b < 0 || b >= 64 {
+               return 0, false
+       }
+       if (a >= 0 && a > math.MaxInt64>>uint(b)) || (a < 0 && a < math.MinInt64>>uint(b)) {
+               return 0, false
+       }
+       return a << uint(b), true
+}
+
+// AddInt32 returns a + b
+// with an integer overflow check.
+func AddInt32(a, b int32) (sum int32, ok bool) {
+       if (b > 0 && a > math.MaxInt32-b) ||
+               (b < 0 && a < math.MinInt32-b) {
+               return 0, false
+       }
+       return a + b, true
+}
+
+// SubInt32 returns a - b
+// with an integer overflow check.
+func SubInt32(a, b int32) (diff int32, ok bool) {
+       if (b > 0 && a < math.MinInt32+b) ||
+               (b < 0 && a > math.MaxInt32+b) {
+               return 0, false
+       }
+       return a - b, true
+}
+
+// MulInt32 returns a * b
+// with an integer overflow check.
+func MulInt32(a, b int32) (product int32, ok bool) {
+       if (a > 0 && b > 0 && a > math.MaxInt32/b) ||
+               (a > 0 && b <= 0 && b < math.MinInt32/a) ||
+               (a <= 0 && b > 0 && a < math.MinInt32/b) ||
+               (a < 0 && b <= 0 && b < math.MaxInt32/a) {
+               return 0, false
+       }
+       return a * b, true
+}
+
+// DivInt32 returns a / b
+// with an integer overflow check.
+func DivInt32(a, b int32) (quotient int32, ok bool) {
+       if b == 0 || (a == math.MinInt32 && b == -1) {
+               return 0, false
+       }
+       return a / b, true
+}
+
+// ModInt32 returns a % b
+// with an integer overflow check.
+func ModInt32(a, b int32) (remainder int32, ok bool) {
+       if b == 0 || (a == math.MinInt32 && b == -1) {
+               return 0, false
+       }
+       return a % b, true
+}
+
+// NegateInt32 returns -a
+// with an integer overflow check.
+func NegateInt32(a int32) (negated int32, ok bool) {
+       if a == math.MinInt32 {
+               return 0, false
+       }
+       return -a, true
+}
+
+// LshiftInt32 returns a << b
+// with an integer overflow check.
+func LshiftInt32(a, b int32) (result int32, ok bool) {
+       if b < 0 || b >= 32 {
+               return 0, false
+       }
+       if (a >= 0 && a > math.MaxInt32>>uint(b)) || (a < 0 && a < math.MinInt32>>uint(b)) {
+               return 0, false
+       }
+       return a << uint(b), true
+}
+
+// AddUint64 returns a + b
+// with an integer overflow check.
+func AddUint64(a, b uint64) (sum uint64, ok bool) {
+       if math.MaxUint64-a < b {
+               return 0, false
+       }
+       return a + b, true
+}
+
+// SubUint64 returns a - b
+// with an integer overflow check.
+func SubUint64(a, b uint64) (diff uint64, ok bool) {
+       if a < b {
+               return 0, false
+       }
+       return a - b, true
+}
+
+// MulUint64 returns a * b
+// with an integer overflow check.
+func MulUint64(a, b uint64) (product uint64, ok bool) {
+       if b > 0 && a > math.MaxUint64/b {
+               return 0, false
+       }
+       return a * b, true
+}
+
+// DivUint64 returns a / b
+// with an integer overflow check.
+func DivUint64(a, b uint64) (quotient uint64, ok bool) {
+       if b == 0 {
+               return 0, false
+       }
+       return a / b, true
+}
+
+// ModUint64 returns a % b
+// with an integer overflow check.
+func ModUint64(a, b uint64) (remainder uint64, ok bool) {
+       if b == 0 {
+               return 0, false
+       }
+       return a % b, true
+}
+
+// LshiftUint64 returns a << b
+// with an integer overflow check.
+func LshiftUint64(a, b uint64) (result uint64, ok bool) {
+       if b >= 64 {
+               return 0, false
+       }
+       if a > math.MaxUint64>>uint(b) {
+               return 0, false
+       }
+       return a << uint(b), true
+}
+
+// AddUint32 returns a + b
+// with an integer overflow check.
+func AddUint32(a, b uint32) (sum uint32, ok bool) {
+       if math.MaxUint32-a < b {
+               return 0, false
+       }
+       return a + b, true
+}
+
+// SubUint32 returns a - b
+// with an integer overflow check.
+func SubUint32(a, b uint32) (diff uint32, ok bool) {
+       if a < b {
+               return 0, false
+       }
+       return a - b, true
+}
+
+// MulUint32 returns a * b
+// with an integer overflow check.
+func MulUint32(a, b uint32) (product uint32, ok bool) {
+       if b > 0 && a > math.MaxUint32/b {
+               return 0, false
+       }
+       return a * b, true
+}
+
+// DivUint32 returns a / b
+// with an integer overflow check.
+func DivUint32(a, b uint32) (quotient uint32, ok bool) {
+       if b == 0 {
+               return 0, false
+       }
+       return a / b, true
+}
+
+// ModUint32 returns a % b
+// with an integer overflow check.
+func ModUint32(a, b uint32) (remainder uint32, ok bool) {
+       if b == 0 {
+               return 0, false
+       }
+       return a % b, true
+}
+
+// LshiftUint32 returns a << b
+// with an integer overflow check.
+func LshiftUint32(a, b uint32) (result uint32, ok bool) {
+       if b >= 32 {
+               return 0, false
+       }
+       if a > math.MaxUint32>>uint(b) {
+               return 0, false
+       }
+       return a << uint(b), true
+}
diff --git a/vendor/github.com/bytom/protocol/bc/asset.go b/vendor/github.com/bytom/protocol/bc/asset.go
new file mode 100644 (file)
index 0000000..880df75
--- /dev/null
@@ -0,0 +1,98 @@
+package bc
+
+import (
+       "encoding/binary"
+       "errors"
+       "io"
+
+       "github.com/bytom/crypto/sha3pool"
+       "github.com/bytom/encoding/blockchain"
+)
+
+// NewAssetID convert byte array to aseet id
+func NewAssetID(b [32]byte) (a AssetID) {
+       return AssetID{
+               V0: binary.BigEndian.Uint64(b[0:8]),
+               V1: binary.BigEndian.Uint64(b[8:16]),
+               V2: binary.BigEndian.Uint64(b[16:24]),
+               V3: binary.BigEndian.Uint64(b[24:32]),
+       }
+}
+
+// Byte32 return the byte array representation
+func (a AssetID) Byte32() (b32 [32]byte) { return Hash(a).Byte32() }
+
+// MarshalText satisfies the TextMarshaler interface.
+func (a AssetID) MarshalText() ([]byte, error) { return Hash(a).MarshalText() }
+
+// UnmarshalText satisfies the TextUnmarshaler interface.
+func (a *AssetID) UnmarshalText(b []byte) error { return (*Hash)(a).UnmarshalText(b) }
+
+// UnmarshalJSON satisfies the json.Unmarshaler interface.
+func (a *AssetID) UnmarshalJSON(b []byte) error { return (*Hash)(a).UnmarshalJSON(b) }
+
+// Bytes returns the byte representation.
+func (a AssetID) Bytes() []byte { return Hash(a).Bytes() }
+
+// WriteTo satisfies the io.WriterTo interface.
+func (a AssetID) WriteTo(w io.Writer) (int64, error) { return Hash(a).WriteTo(w) }
+
+// ReadFrom satisfies the io.ReaderFrom interface.
+func (a *AssetID) ReadFrom(r io.Reader) (int64, error) { return (*Hash)(a).ReadFrom(r) }
+
+// IsZero tells whether a Asset pointer is nil or points to an all-zero hash.
+func (a *AssetID) IsZero() bool { return (*Hash)(a).IsZero() }
+
+// ComputeAssetID calculate the asset id from AssetDefinition
+func (ad *AssetDefinition) ComputeAssetID() (assetID AssetID) {
+       h := sha3pool.Get256()
+       defer sha3pool.Put256(h)
+       writeForHash(h, *ad) // error is impossible
+       var b [32]byte
+       h.Read(b[:]) // error is impossible
+       return NewAssetID(b)
+}
+
+// ComputeAssetID implement the assetID calculate logic
+func ComputeAssetID(prog []byte, vmVersion uint64, data *Hash) AssetID {
+       def := &AssetDefinition{
+               IssuanceProgram: &Program{
+                       VmVersion: vmVersion,
+                       Code:      prog,
+               },
+               Data: data,
+       }
+       return def.ComputeAssetID()
+}
+
+// ReadFrom read the AssetAmount from the bytes
+func (a *AssetAmount) ReadFrom(r *blockchain.Reader) (err error) {
+       var assetID AssetID
+       if _, err = assetID.ReadFrom(r); err != nil {
+               return err
+       }
+       a.AssetId = &assetID
+       a.Amount, err = blockchain.ReadVarint63(r)
+       return err
+}
+
+// WriteTo convert struct to byte and write to io
+func (a AssetAmount) WriteTo(w io.Writer) (int64, error) {
+       n, err := a.AssetId.WriteTo(w)
+       if err != nil {
+               return n, err
+       }
+       n2, err := blockchain.WriteVarint63(w, a.Amount)
+       return n + int64(n2), err
+}
+
+// Equal check does two AssetAmount have same assetID and amount
+func (a *AssetAmount) Equal(other *AssetAmount) (eq bool, err error) {
+       if a == nil || other == nil {
+               return false, errors.New("empty asset amount")
+       }
+       if a.AssetId == nil || other.AssetId == nil {
+               return false, errors.New("empty asset id")
+       }
+       return a.Amount == other.Amount && *a.AssetId == *other.AssetId, nil
+}
diff --git a/vendor/github.com/bytom/protocol/bc/bc.pb.go b/vendor/github.com/bytom/protocol/bc/bc.pb.go
new file mode 100644 (file)
index 0000000..da95f80
--- /dev/null
@@ -0,0 +1,725 @@
+// Code generated by protoc-gen-go. DO NOT EDIT.
+// source: bc.proto
+
+/*
+Package bc is a generated protocol buffer package.
+
+It is generated from these files:
+       bc.proto
+
+It has these top-level messages:
+       Hash
+       Program
+       AssetID
+       AssetAmount
+       AssetDefinition
+       ValueSource
+       ValueDestination
+       BlockHeader
+       TxHeader
+       TxVerifyResult
+       TransactionStatus
+       Mux
+       Coinbase
+       Output
+       Retirement
+       Issuance
+       Spend
+*/
+package bc
+
+import proto "github.com/golang/protobuf/proto"
+import fmt "fmt"
+import math "math"
+
+// Reference imports to suppress errors if they are not otherwise used.
+var _ = proto.Marshal
+var _ = fmt.Errorf
+var _ = math.Inf
+
+// This is a compile-time assertion to ensure that this generated file
+// is compatible with the proto package it is being compiled against.
+// A compilation error at this line likely means your copy of the
+// proto package needs to be updated.
+const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
+
+type Hash struct {
+       V0 uint64 `protobuf:"fixed64,1,opt,name=v0" json:"v0,omitempty"`
+       V1 uint64 `protobuf:"fixed64,2,opt,name=v1" json:"v1,omitempty"`
+       V2 uint64 `protobuf:"fixed64,3,opt,name=v2" json:"v2,omitempty"`
+       V3 uint64 `protobuf:"fixed64,4,opt,name=v3" json:"v3,omitempty"`
+}
+
+func (m *Hash) Reset()                    { *m = Hash{} }
+func (m *Hash) String() string            { return proto.CompactTextString(m) }
+func (*Hash) ProtoMessage()               {}
+func (*Hash) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{0} }
+
+func (m *Hash) GetV0() uint64 {
+       if m != nil {
+               return m.V0
+       }
+       return 0
+}
+
+func (m *Hash) GetV1() uint64 {
+       if m != nil {
+               return m.V1
+       }
+       return 0
+}
+
+func (m *Hash) GetV2() uint64 {
+       if m != nil {
+               return m.V2
+       }
+       return 0
+}
+
+func (m *Hash) GetV3() uint64 {
+       if m != nil {
+               return m.V3
+       }
+       return 0
+}
+
+type Program struct {
+       VmVersion uint64 `protobuf:"varint,1,opt,name=vm_version,json=vmVersion" json:"vm_version,omitempty"`
+       Code      []byte `protobuf:"bytes,2,opt,name=code,proto3" json:"code,omitempty"`
+}
+
+func (m *Program) Reset()                    { *m = Program{} }
+func (m *Program) String() string            { return proto.CompactTextString(m) }
+func (*Program) ProtoMessage()               {}
+func (*Program) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{1} }
+
+func (m *Program) GetVmVersion() uint64 {
+       if m != nil {
+               return m.VmVersion
+       }
+       return 0
+}
+
+func (m *Program) GetCode() []byte {
+       if m != nil {
+               return m.Code
+       }
+       return nil
+}
+
+// This message type duplicates Hash, above. One alternative is to
+// embed a Hash inside an AssetID. But it's useful for AssetID to be
+// plain old data (without pointers). Another alternative is use Hash
+// in any protobuf types where an AssetID is called for, but it's
+// preferable to have type safety.
+type AssetID struct {
+       V0 uint64 `protobuf:"fixed64,1,opt,name=v0" json:"v0,omitempty"`
+       V1 uint64 `protobuf:"fixed64,2,opt,name=v1" json:"v1,omitempty"`
+       V2 uint64 `protobuf:"fixed64,3,opt,name=v2" json:"v2,omitempty"`
+       V3 uint64 `protobuf:"fixed64,4,opt,name=v3" json:"v3,omitempty"`
+}
+
+func (m *AssetID) Reset()                    { *m = AssetID{} }
+func (m *AssetID) String() string            { return proto.CompactTextString(m) }
+func (*AssetID) ProtoMessage()               {}
+func (*AssetID) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{2} }
+
+func (m *AssetID) GetV0() uint64 {
+       if m != nil {
+               return m.V0
+       }
+       return 0
+}
+
+func (m *AssetID) GetV1() uint64 {
+       if m != nil {
+               return m.V1
+       }
+       return 0
+}
+
+func (m *AssetID) GetV2() uint64 {
+       if m != nil {
+               return m.V2
+       }
+       return 0
+}
+
+func (m *AssetID) GetV3() uint64 {
+       if m != nil {
+               return m.V3
+       }
+       return 0
+}
+
+type AssetAmount struct {
+       AssetId *AssetID `protobuf:"bytes,1,opt,name=asset_id,json=assetId" json:"asset_id,omitempty"`
+       Amount  uint64   `protobuf:"varint,2,opt,name=amount" json:"amount,omitempty"`
+}
+
+func (m *AssetAmount) Reset()                    { *m = AssetAmount{} }
+func (m *AssetAmount) String() string            { return proto.CompactTextString(m) }
+func (*AssetAmount) ProtoMessage()               {}
+func (*AssetAmount) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{3} }
+
+func (m *AssetAmount) GetAssetId() *AssetID {
+       if m != nil {
+               return m.AssetId
+       }
+       return nil
+}
+
+func (m *AssetAmount) GetAmount() uint64 {
+       if m != nil {
+               return m.Amount
+       }
+       return 0
+}
+
+type AssetDefinition struct {
+       IssuanceProgram *Program `protobuf:"bytes,1,opt,name=issuance_program,json=issuanceProgram" json:"issuance_program,omitempty"`
+       Data            *Hash    `protobuf:"bytes,2,opt,name=data" json:"data,omitempty"`
+}
+
+func (m *AssetDefinition) Reset()                    { *m = AssetDefinition{} }
+func (m *AssetDefinition) String() string            { return proto.CompactTextString(m) }
+func (*AssetDefinition) ProtoMessage()               {}
+func (*AssetDefinition) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{4} }
+
+func (m *AssetDefinition) GetIssuanceProgram() *Program {
+       if m != nil {
+               return m.IssuanceProgram
+       }
+       return nil
+}
+
+func (m *AssetDefinition) GetData() *Hash {
+       if m != nil {
+               return m.Data
+       }
+       return nil
+}
+
+type ValueSource struct {
+       Ref      *Hash        `protobuf:"bytes,1,opt,name=ref" json:"ref,omitempty"`
+       Value    *AssetAmount `protobuf:"bytes,2,opt,name=value" json:"value,omitempty"`
+       Position uint64       `protobuf:"varint,3,opt,name=position" json:"position,omitempty"`
+}
+
+func (m *ValueSource) Reset()                    { *m = ValueSource{} }
+func (m *ValueSource) String() string            { return proto.CompactTextString(m) }
+func (*ValueSource) ProtoMessage()               {}
+func (*ValueSource) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{5} }
+
+func (m *ValueSource) GetRef() *Hash {
+       if m != nil {
+               return m.Ref
+       }
+       return nil
+}
+
+func (m *ValueSource) GetValue() *AssetAmount {
+       if m != nil {
+               return m.Value
+       }
+       return nil
+}
+
+func (m *ValueSource) GetPosition() uint64 {
+       if m != nil {
+               return m.Position
+       }
+       return 0
+}
+
+type ValueDestination struct {
+       Ref      *Hash        `protobuf:"bytes,1,opt,name=ref" json:"ref,omitempty"`
+       Value    *AssetAmount `protobuf:"bytes,2,opt,name=value" json:"value,omitempty"`
+       Position uint64       `protobuf:"varint,3,opt,name=position" json:"position,omitempty"`
+}
+
+func (m *ValueDestination) Reset()                    { *m = ValueDestination{} }
+func (m *ValueDestination) String() string            { return proto.CompactTextString(m) }
+func (*ValueDestination) ProtoMessage()               {}
+func (*ValueDestination) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{6} }
+
+func (m *ValueDestination) GetRef() *Hash {
+       if m != nil {
+               return m.Ref
+       }
+       return nil
+}
+
+func (m *ValueDestination) GetValue() *AssetAmount {
+       if m != nil {
+               return m.Value
+       }
+       return nil
+}
+
+func (m *ValueDestination) GetPosition() uint64 {
+       if m != nil {
+               return m.Position
+       }
+       return 0
+}
+
+type BlockHeader struct {
+       Version               uint64             `protobuf:"varint,1,opt,name=version" json:"version,omitempty"`
+       Height                uint64             `protobuf:"varint,2,opt,name=height" json:"height,omitempty"`
+       PreviousBlockId       *Hash              `protobuf:"bytes,3,opt,name=previous_block_id,json=previousBlockId" json:"previous_block_id,omitempty"`
+       Timestamp             uint64             `protobuf:"varint,4,opt,name=timestamp" json:"timestamp,omitempty"`
+       TransactionsRoot      *Hash              `protobuf:"bytes,5,opt,name=transactions_root,json=transactionsRoot" json:"transactions_root,omitempty"`
+       TransactionStatusHash *Hash              `protobuf:"bytes,6,opt,name=transaction_status_hash,json=transactionStatusHash" json:"transaction_status_hash,omitempty"`
+       Nonce                 uint64             `protobuf:"varint,7,opt,name=nonce" json:"nonce,omitempty"`
+       Bits                  uint64             `protobuf:"varint,8,opt,name=bits" json:"bits,omitempty"`
+       TransactionStatus     *TransactionStatus `protobuf:"bytes,9,opt,name=transaction_status,json=transactionStatus" json:"transaction_status,omitempty"`
+}
+
+func (m *BlockHeader) Reset()                    { *m = BlockHeader{} }
+func (m *BlockHeader) String() string            { return proto.CompactTextString(m) }
+func (*BlockHeader) ProtoMessage()               {}
+func (*BlockHeader) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{7} }
+
+func (m *BlockHeader) GetVersion() uint64 {
+       if m != nil {
+               return m.Version
+       }
+       return 0
+}
+
+func (m *BlockHeader) GetHeight() uint64 {
+       if m != nil {
+               return m.Height
+       }
+       return 0
+}
+
+func (m *BlockHeader) GetPreviousBlockId() *Hash {
+       if m != nil {
+               return m.PreviousBlockId
+       }
+       return nil
+}
+
+func (m *BlockHeader) GetTimestamp() uint64 {
+       if m != nil {
+               return m.Timestamp
+       }
+       return 0
+}
+
+func (m *BlockHeader) GetTransactionsRoot() *Hash {
+       if m != nil {
+               return m.TransactionsRoot
+       }
+       return nil
+}
+
+func (m *BlockHeader) GetTransactionStatusHash() *Hash {
+       if m != nil {
+               return m.TransactionStatusHash
+       }
+       return nil
+}
+
+func (m *BlockHeader) GetNonce() uint64 {
+       if m != nil {
+               return m.Nonce
+       }
+       return 0
+}
+
+func (m *BlockHeader) GetBits() uint64 {
+       if m != nil {
+               return m.Bits
+       }
+       return 0
+}
+
+func (m *BlockHeader) GetTransactionStatus() *TransactionStatus {
+       if m != nil {
+               return m.TransactionStatus
+       }
+       return nil
+}
+
+type TxHeader struct {
+       Version        uint64  `protobuf:"varint,1,opt,name=version" json:"version,omitempty"`
+       SerializedSize uint64  `protobuf:"varint,2,opt,name=serialized_size,json=serializedSize" json:"serialized_size,omitempty"`
+       TimeRange      uint64  `protobuf:"varint,3,opt,name=time_range,json=timeRange" json:"time_range,omitempty"`
+       ResultIds      []*Hash `protobuf:"bytes,4,rep,name=result_ids,json=resultIds" json:"result_ids,omitempty"`
+}
+
+func (m *TxHeader) Reset()                    { *m = TxHeader{} }
+func (m *TxHeader) String() string            { return proto.CompactTextString(m) }
+func (*TxHeader) ProtoMessage()               {}
+func (*TxHeader) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{8} }
+
+func (m *TxHeader) GetVersion() uint64 {
+       if m != nil {
+               return m.Version
+       }
+       return 0
+}
+
+func (m *TxHeader) GetSerializedSize() uint64 {
+       if m != nil {
+               return m.SerializedSize
+       }
+       return 0
+}
+
+func (m *TxHeader) GetTimeRange() uint64 {
+       if m != nil {
+               return m.TimeRange
+       }
+       return 0
+}
+
+func (m *TxHeader) GetResultIds() []*Hash {
+       if m != nil {
+               return m.ResultIds
+       }
+       return nil
+}
+
+type TxVerifyResult struct {
+       StatusFail bool `protobuf:"varint,1,opt,name=status_fail,json=statusFail" json:"status_fail,omitempty"`
+}
+
+func (m *TxVerifyResult) Reset()                    { *m = TxVerifyResult{} }
+func (m *TxVerifyResult) String() string            { return proto.CompactTextString(m) }
+func (*TxVerifyResult) ProtoMessage()               {}
+func (*TxVerifyResult) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{9} }
+
+func (m *TxVerifyResult) GetStatusFail() bool {
+       if m != nil {
+               return m.StatusFail
+       }
+       return false
+}
+
+type TransactionStatus struct {
+       Version      uint64            `protobuf:"varint,1,opt,name=version" json:"version,omitempty"`
+       VerifyStatus []*TxVerifyResult `protobuf:"bytes,2,rep,name=verify_status,json=verifyStatus" json:"verify_status,omitempty"`
+}
+
+func (m *TransactionStatus) Reset()                    { *m = TransactionStatus{} }
+func (m *TransactionStatus) String() string            { return proto.CompactTextString(m) }
+func (*TransactionStatus) ProtoMessage()               {}
+func (*TransactionStatus) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{10} }
+
+func (m *TransactionStatus) GetVersion() uint64 {
+       if m != nil {
+               return m.Version
+       }
+       return 0
+}
+
+func (m *TransactionStatus) GetVerifyStatus() []*TxVerifyResult {
+       if m != nil {
+               return m.VerifyStatus
+       }
+       return nil
+}
+
+type Mux struct {
+       Sources             []*ValueSource      `protobuf:"bytes,1,rep,name=sources" json:"sources,omitempty"`
+       Program             *Program            `protobuf:"bytes,2,opt,name=program" json:"program,omitempty"`
+       WitnessDestinations []*ValueDestination `protobuf:"bytes,3,rep,name=witness_destinations,json=witnessDestinations" json:"witness_destinations,omitempty"`
+       WitnessArguments    [][]byte            `protobuf:"bytes,4,rep,name=witness_arguments,json=witnessArguments,proto3" json:"witness_arguments,omitempty"`
+}
+
+func (m *Mux) Reset()                    { *m = Mux{} }
+func (m *Mux) String() string            { return proto.CompactTextString(m) }
+func (*Mux) ProtoMessage()               {}
+func (*Mux) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{11} }
+
+func (m *Mux) GetSources() []*ValueSource {
+       if m != nil {
+               return m.Sources
+       }
+       return nil
+}
+
+func (m *Mux) GetProgram() *Program {
+       if m != nil {
+               return m.Program
+       }
+       return nil
+}
+
+func (m *Mux) GetWitnessDestinations() []*ValueDestination {
+       if m != nil {
+               return m.WitnessDestinations
+       }
+       return nil
+}
+
+func (m *Mux) GetWitnessArguments() [][]byte {
+       if m != nil {
+               return m.WitnessArguments
+       }
+       return nil
+}
+
+type Coinbase struct {
+       WitnessDestination *ValueDestination `protobuf:"bytes,1,opt,name=witness_destination,json=witnessDestination" json:"witness_destination,omitempty"`
+       Arbitrary          []byte            `protobuf:"bytes,2,opt,name=arbitrary,proto3" json:"arbitrary,omitempty"`
+}
+
+func (m *Coinbase) Reset()                    { *m = Coinbase{} }
+func (m *Coinbase) String() string            { return proto.CompactTextString(m) }
+func (*Coinbase) ProtoMessage()               {}
+func (*Coinbase) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{12} }
+
+func (m *Coinbase) GetWitnessDestination() *ValueDestination {
+       if m != nil {
+               return m.WitnessDestination
+       }
+       return nil
+}
+
+func (m *Coinbase) GetArbitrary() []byte {
+       if m != nil {
+               return m.Arbitrary
+       }
+       return nil
+}
+
+type Output struct {
+       Source         *ValueSource `protobuf:"bytes,1,opt,name=source" json:"source,omitempty"`
+       ControlProgram *Program     `protobuf:"bytes,2,opt,name=control_program,json=controlProgram" json:"control_program,omitempty"`
+       Ordinal        uint64       `protobuf:"varint,3,opt,name=ordinal" json:"ordinal,omitempty"`
+}
+
+func (m *Output) Reset()                    { *m = Output{} }
+func (m *Output) String() string            { return proto.CompactTextString(m) }
+func (*Output) ProtoMessage()               {}
+func (*Output) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{13} }
+
+func (m *Output) GetSource() *ValueSource {
+       if m != nil {
+               return m.Source
+       }
+       return nil
+}
+
+func (m *Output) GetControlProgram() *Program {
+       if m != nil {
+               return m.ControlProgram
+       }
+       return nil
+}
+
+func (m *Output) GetOrdinal() uint64 {
+       if m != nil {
+               return m.Ordinal
+       }
+       return 0
+}
+
+type Retirement struct {
+       Source  *ValueSource `protobuf:"bytes,1,opt,name=source" json:"source,omitempty"`
+       Ordinal uint64       `protobuf:"varint,2,opt,name=ordinal" json:"ordinal,omitempty"`
+}
+
+func (m *Retirement) Reset()                    { *m = Retirement{} }
+func (m *Retirement) String() string            { return proto.CompactTextString(m) }
+func (*Retirement) ProtoMessage()               {}
+func (*Retirement) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{14} }
+
+func (m *Retirement) GetSource() *ValueSource {
+       if m != nil {
+               return m.Source
+       }
+       return nil
+}
+
+func (m *Retirement) GetOrdinal() uint64 {
+       if m != nil {
+               return m.Ordinal
+       }
+       return 0
+}
+
+type Issuance struct {
+       NonceHash              *Hash             `protobuf:"bytes,1,opt,name=nonce_hash,json=nonceHash" json:"nonce_hash,omitempty"`
+       Value                  *AssetAmount      `protobuf:"bytes,2,opt,name=value" json:"value,omitempty"`
+       WitnessDestination     *ValueDestination `protobuf:"bytes,3,opt,name=witness_destination,json=witnessDestination" json:"witness_destination,omitempty"`
+       WitnessAssetDefinition *AssetDefinition  `protobuf:"bytes,4,opt,name=witness_asset_definition,json=witnessAssetDefinition" json:"witness_asset_definition,omitempty"`
+       WitnessArguments       [][]byte          `protobuf:"bytes,5,rep,name=witness_arguments,json=witnessArguments,proto3" json:"witness_arguments,omitempty"`
+       Ordinal                uint64            `protobuf:"varint,6,opt,name=ordinal" json:"ordinal,omitempty"`
+}
+
+func (m *Issuance) Reset()                    { *m = Issuance{} }
+func (m *Issuance) String() string            { return proto.CompactTextString(m) }
+func (*Issuance) ProtoMessage()               {}
+func (*Issuance) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{15} }
+
+func (m *Issuance) GetNonceHash() *Hash {
+       if m != nil {
+               return m.NonceHash
+       }
+       return nil
+}
+
+func (m *Issuance) GetValue() *AssetAmount {
+       if m != nil {
+               return m.Value
+       }
+       return nil
+}
+
+func (m *Issuance) GetWitnessDestination() *ValueDestination {
+       if m != nil {
+               return m.WitnessDestination
+       }
+       return nil
+}
+
+func (m *Issuance) GetWitnessAssetDefinition() *AssetDefinition {
+       if m != nil {
+               return m.WitnessAssetDefinition
+       }
+       return nil
+}
+
+func (m *Issuance) GetWitnessArguments() [][]byte {
+       if m != nil {
+               return m.WitnessArguments
+       }
+       return nil
+}
+
+func (m *Issuance) GetOrdinal() uint64 {
+       if m != nil {
+               return m.Ordinal
+       }
+       return 0
+}
+
+type Spend struct {
+       SpentOutputId      *Hash             `protobuf:"bytes,1,opt,name=spent_output_id,json=spentOutputId" json:"spent_output_id,omitempty"`
+       WitnessDestination *ValueDestination `protobuf:"bytes,2,opt,name=witness_destination,json=witnessDestination" json:"witness_destination,omitempty"`
+       WitnessArguments   [][]byte          `protobuf:"bytes,3,rep,name=witness_arguments,json=witnessArguments,proto3" json:"witness_arguments,omitempty"`
+       Ordinal            uint64            `protobuf:"varint,4,opt,name=ordinal" json:"ordinal,omitempty"`
+}
+
+func (m *Spend) Reset()                    { *m = Spend{} }
+func (m *Spend) String() string            { return proto.CompactTextString(m) }
+func (*Spend) ProtoMessage()               {}
+func (*Spend) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{16} }
+
+func (m *Spend) GetSpentOutputId() *Hash {
+       if m != nil {
+               return m.SpentOutputId
+       }
+       return nil
+}
+
+func (m *Spend) GetWitnessDestination() *ValueDestination {
+       if m != nil {
+               return m.WitnessDestination
+       }
+       return nil
+}
+
+func (m *Spend) GetWitnessArguments() [][]byte {
+       if m != nil {
+               return m.WitnessArguments
+       }
+       return nil
+}
+
+func (m *Spend) GetOrdinal() uint64 {
+       if m != nil {
+               return m.Ordinal
+       }
+       return 0
+}
+
+func init() {
+       proto.RegisterType((*Hash)(nil), "bc.Hash")
+       proto.RegisterType((*Program)(nil), "bc.Program")
+       proto.RegisterType((*AssetID)(nil), "bc.AssetID")
+       proto.RegisterType((*AssetAmount)(nil), "bc.AssetAmount")
+       proto.RegisterType((*AssetDefinition)(nil), "bc.AssetDefinition")
+       proto.RegisterType((*ValueSource)(nil), "bc.ValueSource")
+       proto.RegisterType((*ValueDestination)(nil), "bc.ValueDestination")
+       proto.RegisterType((*BlockHeader)(nil), "bc.BlockHeader")
+       proto.RegisterType((*TxHeader)(nil), "bc.TxHeader")
+       proto.RegisterType((*TxVerifyResult)(nil), "bc.TxVerifyResult")
+       proto.RegisterType((*TransactionStatus)(nil), "bc.TransactionStatus")
+       proto.RegisterType((*Mux)(nil), "bc.Mux")
+       proto.RegisterType((*Coinbase)(nil), "bc.Coinbase")
+       proto.RegisterType((*Output)(nil), "bc.Output")
+       proto.RegisterType((*Retirement)(nil), "bc.Retirement")
+       proto.RegisterType((*Issuance)(nil), "bc.Issuance")
+       proto.RegisterType((*Spend)(nil), "bc.Spend")
+}
+
+func init() { proto.RegisterFile("bc.proto", fileDescriptor0) }
+
+var fileDescriptor0 = []byte{
+       // 913 bytes of a gzipped FileDescriptorProto
+       0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x56, 0x4b, 0x6f, 0x23, 0x45,
+       0x10, 0x96, 0xc7, 0xe3, 0x57, 0x39, 0x1b, 0xc7, 0x9d, 0xec, 0x32, 0x5a, 0x2d, 0x62, 0x35, 0xd2,
+       0x12, 0x10, 0x52, 0x94, 0x38, 0x0b, 0x5c, 0x38, 0x10, 0x08, 0xcb, 0xfa, 0x10, 0x2d, 0xea, 0x44,
+       0xb9, 0x8e, 0xda, 0x33, 0x6d, 0xbb, 0xc5, 0x78, 0xda, 0x74, 0xf7, 0x98, 0x6c, 0x6e, 0xfc, 0x08,
+       0x7e, 0x0b, 0x3f, 0x81, 0x13, 0xff, 0x88, 0x03, 0xea, 0x9a, 0x1e, 0x7b, 0xfc, 0xd8, 0x97, 0xd0,
+       0xde, 0x5c, 0x8f, 0xf9, 0xaa, 0xea, 0xab, 0x47, 0x1b, 0xda, 0xa3, 0xf8, 0x64, 0xae, 0xa4, 0x91,
+       0xc4, 0x1b, 0xc5, 0xe1, 0x0b, 0xf0, 0x5f, 0x32, 0x3d, 0x25, 0xfb, 0xe0, 0x2d, 0x4e, 0x83, 0xda,
+       0xd3, 0xda, 0x17, 0x4d, 0xea, 0x2d, 0x4e, 0x51, 0x3e, 0x0b, 0x3c, 0x27, 0x9f, 0xa1, 0x3c, 0x08,
+       0xea, 0x4e, 0x1e, 0xa0, 0x7c, 0x1e, 0xf8, 0x4e, 0x3e, 0x0f, 0xbf, 0x83, 0xd6, 0x2f, 0x4a, 0x4e,
+       0x14, 0x9b, 0x91, 0x4f, 0x01, 0x16, 0xb3, 0x68, 0xc1, 0x95, 0x16, 0x32, 0x43, 0x48, 0x9f, 0x76,
+       0x16, 0xb3, 0xdb, 0x42, 0x41, 0x08, 0xf8, 0xb1, 0x4c, 0x38, 0x62, 0xef, 0x51, 0xfc, 0x1d, 0x0e,
+       0xa1, 0x75, 0xa1, 0x35, 0x37, 0xc3, 0xcb, 0xff, 0x9d, 0xc8, 0x15, 0x74, 0x11, 0xea, 0x62, 0x26,
+       0xf3, 0xcc, 0x90, 0xcf, 0xa1, 0xcd, 0xac, 0x18, 0x89, 0x04, 0x41, 0xbb, 0x83, 0xee, 0xc9, 0x28,
+       0x3e, 0x71, 0xd1, 0x68, 0x0b, 0x8d, 0xc3, 0x84, 0x3c, 0x82, 0x26, 0xc3, 0x2f, 0x30, 0x94, 0x4f,
+       0x9d, 0x14, 0x4e, 0xa0, 0x87, 0xbe, 0x97, 0x7c, 0x2c, 0x32, 0x61, 0x6c, 0x01, 0xdf, 0xc0, 0x81,
+       0xd0, 0x3a, 0x67, 0x59, 0xcc, 0xa3, 0x79, 0x51, 0x73, 0x15, 0xda, 0xd1, 0x40, 0x7b, 0xa5, 0x53,
+       0xc9, 0xcb, 0x13, 0xf0, 0x13, 0x66, 0x18, 0x06, 0xe8, 0x0e, 0xda, 0xd6, 0xd7, 0x52, 0x4f, 0x51,
+       0x1b, 0xa6, 0xd0, 0xbd, 0x65, 0x69, 0xce, 0xaf, 0x65, 0xae, 0x62, 0x4e, 0x1e, 0x43, 0x5d, 0xf1,
+       0xb1, 0xc3, 0x5d, 0xf9, 0x5a, 0x25, 0x79, 0x06, 0x8d, 0x85, 0x75, 0x75, 0x48, 0xbd, 0x65, 0x41,
+       0x45, 0xcd, 0xb4, 0xb0, 0x92, 0xc7, 0xd0, 0x9e, 0x4b, 0x8d, 0x39, 0x23, 0x5f, 0x3e, 0x5d, 0xca,
+       0xe1, 0x6f, 0x70, 0x80, 0xd1, 0x2e, 0xb9, 0x36, 0x22, 0x63, 0x58, 0xd7, 0x47, 0x0e, 0xf9, 0xaf,
+       0x07, 0xdd, 0x1f, 0x52, 0x19, 0xff, 0xfa, 0x92, 0xb3, 0x84, 0x2b, 0x12, 0x40, 0x6b, 0x7d, 0x46,
+       0x4a, 0xd1, 0xf6, 0x62, 0xca, 0xc5, 0x64, 0xba, 0xec, 0x45, 0x21, 0x91, 0xe7, 0xd0, 0x9f, 0x2b,
+       0xbe, 0x10, 0x32, 0xd7, 0xd1, 0xc8, 0x22, 0xd9, 0xa6, 0xd6, 0x37, 0xd2, 0xed, 0x95, 0x2e, 0x18,
+       0x6b, 0x98, 0x90, 0x27, 0xd0, 0x31, 0x62, 0xc6, 0xb5, 0x61, 0xb3, 0x39, 0xce, 0x89, 0x4f, 0x57,
+       0x0a, 0xf2, 0x35, 0xf4, 0x8d, 0x62, 0x99, 0x66, 0xb1, 0x4d, 0x52, 0x47, 0x4a, 0x4a, 0x13, 0x34,
+       0x36, 0x30, 0x0f, 0xaa, 0x2e, 0x54, 0x4a, 0x43, 0xbe, 0x87, 0x4f, 0x2a, 0xba, 0x48, 0x1b, 0x66,
+       0x72, 0x1d, 0x4d, 0x99, 0x9e, 0x06, 0xcd, 0x8d, 0x8f, 0x1f, 0x56, 0x1c, 0xaf, 0xd1, 0x0f, 0x17,
+       0xee, 0x08, 0x1a, 0x99, 0xcc, 0x62, 0x1e, 0xb4, 0x30, 0xa5, 0x42, 0xb0, 0xcb, 0x31, 0x12, 0x46,
+       0x07, 0x6d, 0x54, 0xe2, 0x6f, 0x72, 0x09, 0x64, 0x3b, 0x56, 0xd0, 0xc1, 0x30, 0x0f, 0x6d, 0x98,
+       0x9b, 0xcd, 0x00, 0xb4, 0xbf, 0x15, 0x33, 0xfc, 0xb3, 0x06, 0xed, 0x9b, 0xbb, 0x77, 0x72, 0x7f,
+       0x0c, 0x3d, 0xcd, 0x95, 0x60, 0xa9, 0xb8, 0xe7, 0x49, 0xa4, 0xc5, 0x3d, 0x77, 0x4d, 0xd8, 0x5f,
+       0xa9, 0xaf, 0xc5, 0x3d, 0xb7, 0x5b, 0x6e, 0x59, 0x8c, 0x14, 0xcb, 0x26, 0xdc, 0x35, 0x1b, 0x79,
+       0xa5, 0x56, 0x41, 0x8e, 0x01, 0x14, 0xd7, 0x79, 0x6a, 0x17, 0x4f, 0x07, 0xfe, 0xd3, 0xfa, 0x1a,
+       0x27, 0x9d, 0xc2, 0x36, 0x4c, 0x74, 0x78, 0x06, 0xfb, 0x37, 0x77, 0xb7, 0x5c, 0x89, 0xf1, 0x6b,
+       0x8a, 0x4a, 0xf2, 0x19, 0x74, 0x1d, 0x9f, 0x63, 0x26, 0x52, 0x4c, 0xb0, 0x4d, 0xa1, 0x50, 0xbd,
+       0x60, 0x22, 0x0d, 0xc7, 0xd0, 0xdf, 0x2a, 0xf9, 0x2d, 0x25, 0x7d, 0x0b, 0x0f, 0x16, 0x88, 0x5f,
+       0x52, 0xe7, 0x61, 0x36, 0x04, 0xa9, 0x5b, 0x0b, 0x4d, 0xf7, 0x0a, 0x47, 0x47, 0xd9, 0x3f, 0x35,
+       0xa8, 0x5f, 0xe5, 0x77, 0xe4, 0x4b, 0x68, 0x69, 0xdc, 0x4a, 0x1d, 0xd4, 0xf0, 0x53, 0x1c, 0xff,
+       0xca, 0xb6, 0xd2, 0xd2, 0x4e, 0x9e, 0x41, 0xab, 0x3c, 0x09, 0xde, 0xf6, 0x49, 0x28, 0x6d, 0xe4,
+       0x67, 0x38, 0xfa, 0x5d, 0x98, 0x8c, 0x6b, 0x1d, 0x25, 0xab, 0x0d, 0xd4, 0x41, 0x1d, 0xe1, 0x8f,
+       0x96, 0xf0, 0x95, 0xf5, 0xa4, 0x87, 0xee, 0x8b, 0x8a, 0x4e, 0x93, 0xaf, 0xa0, 0x5f, 0x02, 0x31,
+       0x35, 0xc9, 0x67, 0x3c, 0x33, 0x05, 0xdb, 0x7b, 0xf4, 0xc0, 0x19, 0x2e, 0x4a, 0x7d, 0x28, 0xa1,
+       0xfd, 0xa3, 0x14, 0xd9, 0x88, 0x69, 0x4e, 0x7e, 0x82, 0xc3, 0x1d, 0x19, 0xb8, 0xe5, 0xdf, 0x9d,
+       0x00, 0xd9, 0x4e, 0xc0, 0x2e, 0x17, 0x53, 0x23, 0x61, 0x14, 0x53, 0xaf, 0xdd, 0x45, 0x5f, 0x29,
+       0xc2, 0x3f, 0x6a, 0xd0, 0x7c, 0x95, 0x9b, 0x79, 0x6e, 0xc8, 0x31, 0x34, 0x0b, 0x8e, 0x5c, 0x88,
+       0x2d, 0x0a, 0x9d, 0x99, 0x3c, 0x87, 0x5e, 0x2c, 0x33, 0xa3, 0x64, 0x1a, 0xbd, 0x85, 0xc9, 0x7d,
+       0xe7, 0x53, 0xde, 0xd6, 0x00, 0x5a, 0x52, 0x25, 0x22, 0x63, 0xa9, 0x1b, 0xc5, 0x52, 0x0c, 0x5f,
+       0x01, 0x50, 0x6e, 0x84, 0xe2, 0x96, 0x83, 0xf7, 0x4f, 0xa3, 0x02, 0xe8, 0xad, 0x03, 0xfe, 0xe5,
+       0x41, 0x7b, 0xe8, 0x4e, 0xbb, 0x1d, 0x73, 0x5c, 0xdc, 0x62, 0xf5, 0x37, 0x4f, 0x67, 0x07, 0x6d,
+       0xb8, 0xee, 0xef, 0x79, 0x40, 0xdf, 0xd0, 0x96, 0xfa, 0x07, 0xb6, 0xe5, 0x0a, 0x82, 0xe5, 0x58,
+       0xe0, 0xeb, 0x97, 0x2c, 0x9f, 0x2f, 0x3c, 0x81, 0xdd, 0xc1, 0xe1, 0x32, 0x81, 0xd5, 0xcb, 0x46,
+       0x1f, 0x95, 0x23, 0xb3, 0xf1, 0xe2, 0xed, 0x9c, 0xb2, 0xc6, 0xee, 0x29, 0xab, 0x32, 0xd7, 0x5c,
+       0x67, 0xee, 0xef, 0x1a, 0x34, 0xae, 0xe7, 0x3c, 0x4b, 0xc8, 0x29, 0xf4, 0xf4, 0x9c, 0x67, 0x26,
+       0x92, 0x38, 0x1d, 0xab, 0xc7, 0x79, 0xc5, 0xdd, 0x03, 0x74, 0x28, 0xa6, 0x67, 0x98, 0xbc, 0x89,
+       0x18, 0xef, 0x03, 0x89, 0xd9, 0x59, 0x49, 0xfd, 0xdd, 0x95, 0xf8, 0x6b, 0x95, 0x8c, 0x9a, 0xf8,
+       0x07, 0xea, 0xfc, 0xbf, 0x00, 0x00, 0x00, 0xff, 0xff, 0x5a, 0x57, 0x4f, 0xd8, 0x4c, 0x09, 0x00,
+       0x00,
+}
diff --git a/vendor/github.com/bytom/protocol/bc/bc.proto b/vendor/github.com/bytom/protocol/bc/bc.proto
new file mode 100644 (file)
index 0000000..fb60c8f
--- /dev/null
@@ -0,0 +1,116 @@
+syntax = "proto3";
+
+package bc;
+
+message Hash {
+  fixed64 v0 = 1;
+  fixed64 v1 = 2;
+  fixed64 v2 = 3;
+  fixed64 v3 = 4;
+}
+
+message Program {
+  uint64 vm_version = 1;
+  bytes  code       = 2;
+}
+
+// This message type duplicates Hash, above. One alternative is to
+// embed a Hash inside an AssetID. But it's useful for AssetID to be
+// plain old data (without pointers). Another alternative is use Hash
+// in any protobuf types where an AssetID is called for, but it's
+// preferable to have type safety.
+message AssetID {
+  fixed64 v0 = 1;
+  fixed64 v1 = 2;
+  fixed64 v2 = 3;
+  fixed64 v3 = 4;
+}
+
+message AssetAmount {
+  AssetID asset_id = 1;
+  uint64  amount   = 2;
+}
+
+message AssetDefinition {
+  Program issuance_program = 1;
+  Hash    data             = 2;
+}
+
+message ValueSource {
+  Hash        ref      = 1;
+  AssetAmount value    = 2;
+  uint64      position = 3;
+}
+
+message ValueDestination {
+  Hash        ref      = 1;
+  AssetAmount value    = 2;
+  uint64      position = 3;
+}
+
+message BlockHeader {
+  uint64            version                 = 1;
+  uint64            height                  = 2;
+  Hash              previous_block_id       = 3;
+  uint64            timestamp               = 4;
+  Hash              transactions_root       = 5;
+  Hash              transaction_status_hash = 6;
+  uint64            nonce                   = 7;
+  uint64            bits                    = 8;
+  TransactionStatus transaction_status      = 9;
+}
+
+message TxHeader {
+  uint64        version         = 1;
+  uint64        serialized_size = 2;
+  uint64        time_range      = 3;
+  repeated Hash result_ids      = 4;
+}
+
+message TxVerifyResult {
+  bool status_fail = 1;
+}
+
+message TransactionStatus {
+  uint64                  version        = 1;
+  repeated TxVerifyResult verify_status  = 2;
+}
+
+message Mux {
+  repeated ValueSource      sources              = 1; // issuances, spends, and muxes
+  Program                   program              = 2;
+  repeated ValueDestination witness_destinations = 3; // outputs, retirements, and muxes
+  repeated bytes            witness_arguments    = 4;
+}
+
+message Coinbase {
+  ValueDestination witness_destination = 1;
+  bytes            arbitrary           = 2;
+}
+
+message Output {
+  ValueSource source          = 1;
+  Program     control_program = 2;
+  uint64      ordinal         = 3;
+}
+
+message Retirement {
+  ValueSource source   = 1;
+  uint64      ordinal  = 2;
+}
+
+message Issuance {
+  Hash             nonce_hash               = 1;
+  AssetAmount      value                    = 2;
+  ValueDestination witness_destination      = 3;
+  AssetDefinition  witness_asset_definition = 4;
+  repeated bytes   witness_arguments        = 5;
+  uint64           ordinal                  = 6;
+}
+
+message Spend {
+  Hash             spent_output_id     = 1;
+  ValueDestination witness_destination = 2;
+  repeated bytes   witness_arguments   = 3;
+  uint64           ordinal             = 4;
+}
\ No newline at end of file
diff --git a/vendor/github.com/bytom/protocol/bc/block.go b/vendor/github.com/bytom/protocol/bc/block.go
new file mode 100644 (file)
index 0000000..eda987d
--- /dev/null
@@ -0,0 +1,8 @@
+package bc
+
+// Block is block struct in bc level
+type Block struct {
+       *BlockHeader
+       ID           Hash
+       Transactions []*Tx
+}
diff --git a/vendor/github.com/bytom/protocol/bc/blockheader.go b/vendor/github.com/bytom/protocol/bc/blockheader.go
new file mode 100644 (file)
index 0000000..34c5ccf
--- /dev/null
@@ -0,0 +1,34 @@
+package bc
+
+import "io"
+
+// BlockHeader contains the header information for a blockchain
+// block. It satisfies the Entry interface.
+
+func (BlockHeader) typ() string { return "blockheader" }
+func (bh *BlockHeader) writeForHash(w io.Writer) {
+       mustWriteForHash(w, bh.Version)
+       mustWriteForHash(w, bh.Height)
+       mustWriteForHash(w, bh.PreviousBlockId)
+       mustWriteForHash(w, bh.Timestamp)
+       mustWriteForHash(w, bh.TransactionsRoot)
+       mustWriteForHash(w, bh.TransactionStatusHash)
+       mustWriteForHash(w, bh.Bits)
+       mustWriteForHash(w, bh.Nonce)
+}
+
+// NewBlockHeader creates a new BlockHeader and populates
+// its body.
+func NewBlockHeader(version, height uint64, previousBlockID *Hash, timestamp uint64, transactionsRoot, transactionStatusHash *Hash, nonce, bits uint64) *BlockHeader {
+       return &BlockHeader{
+               Version:               version,
+               Height:                height,
+               PreviousBlockId:       previousBlockID,
+               Timestamp:             timestamp,
+               TransactionsRoot:      transactionsRoot,
+               TransactionStatusHash: transactionStatusHash,
+               TransactionStatus:     nil,
+               Bits:                  bits,
+               Nonce:                 nonce,
+       }
+}
diff --git a/vendor/github.com/bytom/protocol/bc/coinbase.go b/vendor/github.com/bytom/protocol/bc/coinbase.go
new file mode 100644 (file)
index 0000000..1125146
--- /dev/null
@@ -0,0 +1,22 @@
+package bc
+
+import "io"
+
+func (Coinbase) typ() string { return "coinbase1" }
+func (c *Coinbase) writeForHash(w io.Writer) {
+       mustWriteForHash(w, c.Arbitrary)
+}
+
+// SetDestination is support function for map tx
+func (c *Coinbase) SetDestination(id *Hash, val *AssetAmount, pos uint64) {
+       c.WitnessDestination = &ValueDestination{
+               Ref:      id,
+               Value:    val,
+               Position: pos,
+       }
+}
+
+// NewCoinbase creates a new Coinbase.
+func NewCoinbase(arbitrary []byte) *Coinbase {
+       return &Coinbase{Arbitrary: arbitrary}
+}
diff --git a/vendor/github.com/bytom/protocol/bc/entry.go b/vendor/github.com/bytom/protocol/bc/entry.go
new file mode 100644 (file)
index 0000000..48c4662
--- /dev/null
@@ -0,0 +1,165 @@
+package bc
+
+import (
+       "encoding/binary"
+       "fmt"
+       "io"
+       "reflect"
+
+       "github.com/golang/protobuf/proto"
+
+       "github.com/bytom/crypto/sha3pool"
+       "github.com/bytom/encoding/blockchain"
+       "github.com/bytom/errors"
+)
+
+// Entry is the interface implemented by each addressable unit in a
+// blockchain: transaction components such as spends, issuances,
+// outputs, and retirements (among others), plus blockheaders.
+type Entry interface {
+       proto.Message
+
+       // type produces a short human-readable string uniquely identifying
+       // the type of this entry.
+       typ() string
+
+       // writeForHash writes the entry's body for hashing.
+       writeForHash(w io.Writer)
+}
+
+var errInvalidValue = errors.New("invalid value")
+
+// EntryID computes the identifier of an entry, as the hash of its
+// body plus some metadata.
+func EntryID(e Entry) (hash Hash) {
+       if e == nil {
+               return hash
+       }
+
+       // Nil pointer; not the same as nil interface above. (See
+       // https://golang.org/doc/faq#nil_error.)
+       if v := reflect.ValueOf(e); v.Kind() == reflect.Ptr && v.IsNil() {
+               return hash
+       }
+
+       hasher := sha3pool.Get256()
+       defer sha3pool.Put256(hasher)
+
+       hasher.Write([]byte("entryid:"))
+       hasher.Write([]byte(e.typ()))
+       hasher.Write([]byte{':'})
+
+       bh := sha3pool.Get256()
+       defer sha3pool.Put256(bh)
+
+       e.writeForHash(bh)
+
+       var innerHash [32]byte
+       bh.Read(innerHash[:])
+
+       hasher.Write(innerHash[:])
+
+       hash.ReadFrom(hasher)
+       return hash
+}
+
+var byte32zero [32]byte
+
+// mustWriteForHash serializes the object c to the writer w, from which
+// presumably a hash can be extracted.
+//
+// This function may panic with an error from the underlying writer,
+// and may produce errors of its own if passed objects whose
+// hash-serialization formats are not specified. It MUST NOT produce
+// errors in other cases.
+func mustWriteForHash(w io.Writer, c interface{}) {
+       if err := writeForHash(w, c); err != nil {
+               panic(err)
+       }
+}
+
+func writeForHash(w io.Writer, c interface{}) error {
+       switch v := c.(type) {
+       case byte:
+               _, err := w.Write([]byte{v})
+               return errors.Wrap(err, "writing byte for hash")
+       case uint64:
+               buf := [8]byte{}
+               binary.LittleEndian.PutUint64(buf[:], v)
+               _, err := w.Write(buf[:])
+               return errors.Wrapf(err, "writing uint64 (%d) for hash", v)
+       case []byte:
+               _, err := blockchain.WriteVarstr31(w, v)
+               return errors.Wrapf(err, "writing []byte (len %d) for hash", len(v))
+       case [][]byte:
+               _, err := blockchain.WriteVarstrList(w, v)
+               return errors.Wrapf(err, "writing [][]byte (len %d) for hash", len(v))
+       case string:
+               _, err := blockchain.WriteVarstr31(w, []byte(v))
+               return errors.Wrapf(err, "writing string (len %d) for hash", len(v))
+       case *Hash:
+               if v == nil {
+                       _, err := w.Write(byte32zero[:])
+                       return errors.Wrap(err, "writing nil *Hash for hash")
+               }
+               _, err := w.Write(v.Bytes())
+               return errors.Wrap(err, "writing *Hash for hash")
+       case *AssetID:
+               if v == nil {
+                       _, err := w.Write(byte32zero[:])
+                       return errors.Wrap(err, "writing nil *AssetID for hash")
+               }
+               _, err := w.Write(v.Bytes())
+               return errors.Wrap(err, "writing *AssetID for hash")
+       case Hash:
+               _, err := v.WriteTo(w)
+               return errors.Wrap(err, "writing Hash for hash")
+       case AssetID:
+               _, err := v.WriteTo(w)
+               return errors.Wrap(err, "writing AssetID for hash")
+       }
+
+       // The two container types in the spec (List and Struct)
+       // correspond to slices and structs in Go. They can't be
+       // handled with type assertions, so we must use reflect.
+       switch v := reflect.ValueOf(c); v.Kind() {
+       case reflect.Ptr:
+               if v.IsNil() {
+                       return nil
+               }
+               elem := v.Elem()
+               return writeForHash(w, elem.Interface())
+       case reflect.Slice:
+               l := v.Len()
+               if _, err := blockchain.WriteVarint31(w, uint64(l)); err != nil {
+                       return errors.Wrapf(err, "writing slice (len %d) for hash", l)
+               }
+               for i := 0; i < l; i++ {
+                       c := v.Index(i)
+                       if !c.CanInterface() {
+                               return errInvalidValue
+                       }
+                       if err := writeForHash(w, c.Interface()); err != nil {
+                               return errors.Wrapf(err, "writing slice element %d for hash", i)
+                       }
+               }
+               return nil
+
+       case reflect.Struct:
+               typ := v.Type()
+               for i := 0; i < typ.NumField(); i++ {
+                       c := v.Field(i)
+                       if !c.CanInterface() {
+                               return errInvalidValue
+                       }
+                       if err := writeForHash(w, c.Interface()); err != nil {
+                               t := v.Type()
+                               f := t.Field(i)
+                               return errors.Wrapf(err, "writing struct field %d (%s.%s) for hash", i, t.Name(), f.Name)
+                       }
+               }
+               return nil
+       }
+
+       return errors.Wrap(fmt.Errorf("bad type %T", c))
+}
diff --git a/vendor/github.com/bytom/protocol/bc/hash.go b/vendor/github.com/bytom/protocol/bc/hash.go
new file mode 100644 (file)
index 0000000..a142030
--- /dev/null
@@ -0,0 +1,103 @@
+package bc
+
+import (
+       "bytes"
+       "encoding/binary"
+       "encoding/hex"
+       "encoding/json"
+       "fmt"
+       "io"
+
+       "golang.org/x/crypto/sha3"
+)
+
+// EmptyStringHash represents a 256-bit hash.
+var EmptyStringHash = NewHash(sha3.Sum256(nil))
+
+// NewHash convert the input byte array to hash
+func NewHash(b32 [32]byte) (h Hash) {
+       h.V0 = binary.BigEndian.Uint64(b32[0:8])
+       h.V1 = binary.BigEndian.Uint64(b32[8:16])
+       h.V2 = binary.BigEndian.Uint64(b32[16:24])
+       h.V3 = binary.BigEndian.Uint64(b32[24:32])
+       return h
+}
+
+// Byte32 return the byte array representation
+func (h Hash) Byte32() (b32 [32]byte) {
+       binary.BigEndian.PutUint64(b32[0:8], h.V0)
+       binary.BigEndian.PutUint64(b32[8:16], h.V1)
+       binary.BigEndian.PutUint64(b32[16:24], h.V2)
+       binary.BigEndian.PutUint64(b32[24:32], h.V3)
+       return b32
+}
+
+// MarshalText satisfies the TextMarshaler interface.
+// It returns the bytes of h encoded in hex,
+// for formats that can't hold arbitrary binary data.
+// It never returns an error.
+func (h Hash) MarshalText() ([]byte, error) {
+       b := h.Byte32()
+       v := make([]byte, 64)
+       hex.Encode(v, b[:])
+       return v, nil
+}
+
+// UnmarshalText satisfies the TextUnmarshaler interface.
+// It decodes hex data from b into h.
+func (h *Hash) UnmarshalText(v []byte) error {
+       var b [32]byte
+       if len(v) != 64 {
+               return fmt.Errorf("bad length hash string %d", len(v))
+       }
+       _, err := hex.Decode(b[:], v)
+       *h = NewHash(b)
+       return err
+}
+
+// UnmarshalJSON satisfies the json.Unmarshaler interface.
+// If b is a JSON-encoded null, it copies the zero-value into h. Othwerwise, it
+// decodes hex data from b into h.
+func (h *Hash) UnmarshalJSON(b []byte) error {
+       if bytes.Equal(b, []byte("null")) {
+               *h = Hash{}
+               return nil
+       }
+       var s string
+       if err := json.Unmarshal(b, &s); err != nil {
+               return err
+       }
+       return h.UnmarshalText([]byte(s))
+}
+
+// Bytes returns the byte representation
+func (h Hash) Bytes() []byte {
+       b32 := h.Byte32()
+       return b32[:]
+}
+
+// WriteTo satisfies the io.WriterTo interface.
+func (h Hash) WriteTo(w io.Writer) (int64, error) {
+       n, err := w.Write(h.Bytes())
+       return int64(n), err
+}
+
+// ReadFrom satisfies the io.ReaderFrom interface.
+func (h *Hash) ReadFrom(r io.Reader) (int64, error) {
+       var b32 [32]byte
+       n, err := io.ReadFull(r, b32[:])
+       if err != nil {
+               return int64(n), err
+       }
+       *h = NewHash(b32)
+       return int64(n), nil
+}
+
+// IsZero tells whether a Hash pointer is nil or points to an all-zero
+// hash.
+func (h *Hash) IsZero() bool {
+       if h == nil {
+               return true
+       }
+       return *h == Hash{}
+}
diff --git a/vendor/github.com/bytom/protocol/bc/issuance.go b/vendor/github.com/bytom/protocol/bc/issuance.go
new file mode 100644 (file)
index 0000000..34811de
--- /dev/null
@@ -0,0 +1,30 @@
+package bc
+
+import "io"
+
+// Issuance is a source of new value on a blockchain. It satisfies the
+// Entry interface.
+
+func (Issuance) typ() string { return "issuance1" }
+func (iss *Issuance) writeForHash(w io.Writer) {
+       mustWriteForHash(w, iss.NonceHash)
+       mustWriteForHash(w, iss.Value)
+}
+
+// SetDestination will link the issuance to the output
+func (iss *Issuance) SetDestination(id *Hash, val *AssetAmount, pos uint64) {
+       iss.WitnessDestination = &ValueDestination{
+               Ref:      id,
+               Value:    val,
+               Position: pos,
+       }
+}
+
+// NewIssuance creates a new Issuance.
+func NewIssuance(nonceHash *Hash, value *AssetAmount, ordinal uint64) *Issuance {
+       return &Issuance{
+               NonceHash: nonceHash,
+               Value:     value,
+               Ordinal:   ordinal,
+       }
+}
diff --git a/vendor/github.com/bytom/protocol/bc/mux.go b/vendor/github.com/bytom/protocol/bc/mux.go
new file mode 100644 (file)
index 0000000..9a99820
--- /dev/null
@@ -0,0 +1,21 @@
+package bc
+
+import "io"
+
+// Mux splits and combines value from one or more source entries,
+// making it available to one or more destination entries. It
+// satisfies the Entry interface.
+
+func (Mux) typ() string { return "mux1" }
+func (m *Mux) writeForHash(w io.Writer) {
+       mustWriteForHash(w, m.Sources)
+       mustWriteForHash(w, m.Program)
+}
+
+// NewMux creates a new Mux.
+func NewMux(sources []*ValueSource, program *Program) *Mux {
+       return &Mux{
+               Sources: sources,
+               Program: program,
+       }
+}
diff --git a/vendor/github.com/bytom/protocol/bc/output.go b/vendor/github.com/bytom/protocol/bc/output.go
new file mode 100644 (file)
index 0000000..3a29178
--- /dev/null
@@ -0,0 +1,24 @@
+package bc
+
+import "io"
+
+// Output is the result of a transfer of value. The value it contains
+// may be accessed by a later Spend entry (if that entry can satisfy
+// the Output's ControlProgram). Output satisfies the Entry interface.
+//
+// (Not to be confused with the deprecated type TxOutput.)
+
+func (Output) typ() string { return "output1" }
+func (o *Output) writeForHash(w io.Writer) {
+       mustWriteForHash(w, o.Source)
+       mustWriteForHash(w, o.ControlProgram)
+}
+
+// NewOutput creates a new Output.
+func NewOutput(source *ValueSource, controlProgram *Program, ordinal uint64) *Output {
+       return &Output{
+               Source:         source,
+               ControlProgram: controlProgram,
+               Ordinal:        ordinal,
+       }
+}
diff --git a/vendor/github.com/bytom/protocol/bc/retirement.go b/vendor/github.com/bytom/protocol/bc/retirement.go
new file mode 100644 (file)
index 0000000..de1e827
--- /dev/null
@@ -0,0 +1,20 @@
+package bc
+
+import "io"
+
+// Retirement is for the permanent removal of some value from a
+// blockchain. The value it contains can never be obtained by later
+// entries. Retirement satisfies the Entry interface.
+
+func (Retirement) typ() string { return "retirement1" }
+func (r *Retirement) writeForHash(w io.Writer) {
+       mustWriteForHash(w, r.Source)
+}
+
+// NewRetirement creates a new Retirement.
+func NewRetirement(source *ValueSource, ordinal uint64) *Retirement {
+       return &Retirement{
+               Source:  source,
+               Ordinal: ordinal,
+       }
+}
diff --git a/vendor/github.com/bytom/protocol/bc/spend.go b/vendor/github.com/bytom/protocol/bc/spend.go
new file mode 100644 (file)
index 0000000..729c49d
--- /dev/null
@@ -0,0 +1,30 @@
+package bc
+
+import "io"
+
+// Spend accesses the value in a prior Output for transfer
+// elsewhere. It satisfies the Entry interface.
+//
+// (Not to be confused with the deprecated type SpendInput.)
+
+func (Spend) typ() string { return "spend1" }
+func (s *Spend) writeForHash(w io.Writer) {
+       mustWriteForHash(w, s.SpentOutputId)
+}
+
+// SetDestination will link the spend to the output
+func (s *Spend) SetDestination(id *Hash, val *AssetAmount, pos uint64) {
+       s.WitnessDestination = &ValueDestination{
+               Ref:      id,
+               Value:    val,
+               Position: pos,
+       }
+}
+
+// NewSpend creates a new Spend.
+func NewSpend(spentOutputID *Hash, ordinal uint64) *Spend {
+       return &Spend{
+               SpentOutputId: spentOutputID,
+               Ordinal:       ordinal,
+       }
+}
diff --git a/vendor/github.com/bytom/protocol/bc/tx.go b/vendor/github.com/bytom/protocol/bc/tx.go
new file mode 100644 (file)
index 0000000..c73ea3a
--- /dev/null
@@ -0,0 +1,73 @@
+package bc
+
+import (
+       "github.com/bytom/crypto/sha3pool"
+       "github.com/bytom/errors"
+)
+
+// Tx is a wrapper for the entries-based representation of a transaction.
+type Tx struct {
+       *TxHeader
+       ID       Hash
+       Entries  map[Hash]Entry
+       InputIDs []Hash // 1:1 correspondence with TxData.Inputs
+
+       SpentOutputIDs []Hash
+       GasInputIDs    []Hash
+}
+
+// SigHash ...
+func (tx *Tx) SigHash(n uint32) (hash Hash) {
+       hasher := sha3pool.Get256()
+       defer sha3pool.Put256(hasher)
+
+       tx.InputIDs[n].WriteTo(hasher)
+       tx.ID.WriteTo(hasher)
+       hash.ReadFrom(hasher)
+       return hash
+}
+
+// Convenience routines for accessing entries of specific types by ID.
+var (
+       ErrEntryType    = errors.New("invalid entry type")
+       ErrMissingEntry = errors.New("missing entry")
+)
+
+// Output try to get the output entry by given hash
+func (tx *Tx) Output(id Hash) (*Output, error) {
+       e, ok := tx.Entries[id]
+       if !ok || e == nil {
+               return nil, errors.Wrapf(ErrMissingEntry, "id %x", id.Bytes())
+       }
+       o, ok := e.(*Output)
+       if !ok {
+               return nil, errors.Wrapf(ErrEntryType, "entry %x has unexpected type %T", id.Bytes(), e)
+       }
+       return o, nil
+}
+
+// Spend try to get the spend entry by given hash
+func (tx *Tx) Spend(id Hash) (*Spend, error) {
+       e, ok := tx.Entries[id]
+       if !ok || e == nil {
+               return nil, errors.Wrapf(ErrMissingEntry, "id %x", id.Bytes())
+       }
+       sp, ok := e.(*Spend)
+       if !ok {
+               return nil, errors.Wrapf(ErrEntryType, "entry %x has unexpected type %T", id.Bytes(), e)
+       }
+       return sp, nil
+}
+
+// Issuance try to get the issuance entry by given hash
+func (tx *Tx) Issuance(id Hash) (*Issuance, error) {
+       e, ok := tx.Entries[id]
+       if !ok || e == nil {
+               return nil, errors.Wrapf(ErrMissingEntry, "id %x", id.Bytes())
+       }
+       iss, ok := e.(*Issuance)
+       if !ok {
+               return nil, errors.Wrapf(ErrEntryType, "entry %x has unexpected type %T", id.Bytes(), e)
+       }
+       return iss, nil
+}
diff --git a/vendor/github.com/bytom/protocol/bc/tx_status.go b/vendor/github.com/bytom/protocol/bc/tx_status.go
new file mode 100644 (file)
index 0000000..2a0674c
--- /dev/null
@@ -0,0 +1,51 @@
+package bc
+
+import (
+       "encoding/json"
+       "errors"
+       "io"
+)
+
+const transactionStatusVersion = 1
+
+// NewTransactionStatus create a empty TransactionStatus struct
+func NewTransactionStatus() *TransactionStatus {
+       return &TransactionStatus{
+               Version:      transactionStatusVersion,
+               VerifyStatus: []*TxVerifyResult{},
+       }
+}
+
+// SetStatus set the tx status of given index
+func (ts *TransactionStatus) SetStatus(i int, gasOnly bool) error {
+       if i > len(ts.VerifyStatus) {
+               return errors.New("setStatus should be set one by one")
+       }
+
+       if i == len(ts.VerifyStatus) {
+               ts.VerifyStatus = append(ts.VerifyStatus, &TxVerifyResult{StatusFail: gasOnly})
+       } else {
+               ts.VerifyStatus[i].StatusFail = gasOnly
+       }
+       return nil
+}
+
+// GetStatus get the tx status of given index
+func (ts *TransactionStatus) GetStatus(i int) (bool, error) {
+       if i >= len(ts.VerifyStatus) {
+               return false, errors.New("GetStatus is out of range")
+       }
+
+       return ts.VerifyStatus[i].StatusFail, nil
+}
+
+// WriteTo will write TxVerifyResult struct to io.Writer
+func (tvr *TxVerifyResult) WriteTo(w io.Writer) (int64, error) {
+       bytes, err := json.Marshal(tvr)
+       if err != nil {
+               return 0, err
+       }
+
+       n, err := w.Write(bytes)
+       return int64(n), err
+}
diff --git a/vendor/github.com/bytom/protocol/bc/txheader.go b/vendor/github.com/bytom/protocol/bc/txheader.go
new file mode 100644 (file)
index 0000000..ab24728
--- /dev/null
@@ -0,0 +1,25 @@
+package bc
+
+import "io"
+
+// TxHeader contains header information for a transaction. Every
+// transaction on a blockchain contains exactly one TxHeader. The ID
+// of the TxHeader is the ID of the transaction. TxHeader satisfies
+// the Entry interface.
+
+func (TxHeader) typ() string { return "txheader" }
+func (h *TxHeader) writeForHash(w io.Writer) {
+       mustWriteForHash(w, h.Version)
+       mustWriteForHash(w, h.TimeRange)
+       mustWriteForHash(w, h.ResultIds)
+}
+
+// NewTxHeader creates an new TxHeader.
+func NewTxHeader(version, serializedSize, timeRange uint64, resultIDs []*Hash) *TxHeader {
+       return &TxHeader{
+               Version:        version,
+               SerializedSize: serializedSize,
+               TimeRange:      timeRange,
+               ResultIds:      resultIDs,
+       }
+}
diff --git a/vendor/github.com/bytom/protocol/vm/assemble.go b/vendor/github.com/bytom/protocol/vm/assemble.go
new file mode 100644 (file)
index 0000000..bd4d50c
--- /dev/null
@@ -0,0 +1,228 @@
+package vm
+
+import (
+       "bufio"
+       "encoding/binary"
+       "encoding/hex"
+       "fmt"
+       "math"
+       "strconv"
+       "strings"
+       "unicode"
+
+       "github.com/bytom/errors"
+)
+
+// Assemble converts a string like "2 3 ADD 5 NUMEQUAL" into 0x525393559c.
+// The input should not include PUSHDATA (or OP_<num>) ops; those will
+// be inferred.
+// Input may include jump-target labels of the form $foo, which can
+// then be used as JUMP:$foo or JUMPIF:$foo.
+func Assemble(s string) (res []byte, err error) {
+       // maps labels to the location each refers to
+       locations := make(map[string]uint32)
+
+       // maps unresolved uses of labels to the locations that need to be filled in
+       unresolved := make(map[string][]int)
+
+       handleJump := func(addrStr string, opcode Op) error {
+               res = append(res, byte(opcode))
+               l := len(res)
+
+               var fourBytes [4]byte
+               res = append(res, fourBytes[:]...)
+
+               if strings.HasPrefix(addrStr, "$") {
+                       unresolved[addrStr] = append(unresolved[addrStr], l)
+                       return nil
+               }
+
+               address, err := strconv.ParseUint(addrStr, 10, 32)
+               if err != nil {
+                       return err
+               }
+               binary.LittleEndian.PutUint32(res[l:], uint32(address))
+               return nil
+       }
+
+       scanner := bufio.NewScanner(strings.NewReader(s))
+       scanner.Split(split)
+       for scanner.Scan() {
+               token := scanner.Text()
+               if info, ok := opsByName[token]; ok {
+                       if strings.HasPrefix(token, "PUSHDATA") || strings.HasPrefix(token, "JUMP") {
+                               return nil, errors.Wrap(ErrToken, token)
+                       }
+                       res = append(res, byte(info.op))
+               } else if strings.HasPrefix(token, "JUMP:") {
+                       // TODO (Dan): add IF/ELSE/ENDIF and BEGIN/WHILE/REPEAT
+                       err = handleJump(strings.TrimPrefix(token, "JUMP:"), OP_JUMP)
+                       if err != nil {
+                               return nil, err
+                       }
+               } else if strings.HasPrefix(token, "JUMPIF:") {
+                       err = handleJump(strings.TrimPrefix(token, "JUMPIF:"), OP_JUMPIF)
+                       if err != nil {
+                               return nil, err
+                       }
+               } else if strings.HasPrefix(token, "$") {
+                       if _, seen := locations[token]; seen {
+                               return nil, fmt.Errorf("label %s redefined", token)
+                       }
+                       if len(res) > math.MaxInt32 {
+                               return nil, fmt.Errorf("program too long")
+                       }
+                       locations[token] = uint32(len(res))
+               } else if strings.HasPrefix(token, "0x") {
+                       bytes, err := hex.DecodeString(strings.TrimPrefix(token, "0x"))
+                       if err != nil {
+                               return nil, err
+                       }
+                       res = append(res, PushdataBytes(bytes)...)
+               } else if len(token) >= 2 && token[0] == '\'' && token[len(token)-1] == '\'' {
+                       bytes := make([]byte, 0, len(token)-2)
+                       var b int
+                       for i := 1; i < len(token)-1; i++ {
+                               if token[i] == '\\' {
+                                       i++
+                               }
+                               bytes = append(bytes, token[i])
+                               b++
+                       }
+                       res = append(res, PushdataBytes(bytes)...)
+               } else if num, err := strconv.ParseInt(token, 10, 64); err == nil {
+                       res = append(res, PushdataInt64(num)...)
+               } else {
+                       return nil, errors.Wrap(ErrToken, token)
+               }
+       }
+       err = scanner.Err()
+       if err != nil {
+               return nil, err
+       }
+
+       for label, uses := range unresolved {
+               location, ok := locations[label]
+               if !ok {
+                       return nil, fmt.Errorf("undefined label %s", label)
+               }
+               for _, use := range uses {
+                       binary.LittleEndian.PutUint32(res[use:], location)
+               }
+       }
+
+       return res, nil
+}
+
+func Disassemble(prog []byte) (string, error) {
+       var (
+               insts []Instruction
+
+               // maps program locations (used as jump targets) to a label for each
+               labels = make(map[uint32]string)
+       )
+
+       // first pass: look for jumps
+       for i := uint32(0); i < uint32(len(prog)); {
+               inst, err := ParseOp(prog, i)
+               if err != nil {
+                       return "", err
+               }
+               switch inst.Op {
+               case OP_JUMP, OP_JUMPIF:
+                       addr := binary.LittleEndian.Uint32(inst.Data)
+                       if _, ok := labels[addr]; !ok {
+                               labelNum := len(labels)
+                               label := words[labelNum%len(words)]
+                               if labelNum >= len(words) {
+                                       label += fmt.Sprintf("%d", labelNum/len(words)+1)
+                               }
+                               labels[addr] = label
+                       }
+               }
+               insts = append(insts, inst)
+               i += inst.Len
+       }
+
+       var (
+               loc  uint32
+               strs []string
+       )
+
+       for _, inst := range insts {
+               if label, ok := labels[loc]; ok {
+                       strs = append(strs, "$"+label)
+               }
+
+               var str string
+               switch inst.Op {
+               case OP_JUMP, OP_JUMPIF:
+                       addr := binary.LittleEndian.Uint32(inst.Data)
+                       str = fmt.Sprintf("%s:$%s", inst.Op.String(), labels[addr])
+               default:
+                       if len(inst.Data) > 0 {
+                               str = fmt.Sprintf("0x%x", inst.Data)
+                       } else {
+                               str = inst.Op.String()
+                       }
+               }
+               strs = append(strs, str)
+
+               loc += inst.Len
+       }
+
+       if label, ok := labels[loc]; ok {
+               strs = append(strs, "$"+label)
+       }
+
+       return strings.Join(strs, " "), nil
+}
+
+// split is a bufio.SplitFunc for scanning the input to Compile.
+// It starts like bufio.ScanWords but adjusts the return value to
+// account for quoted strings.
+func split(inp []byte, atEOF bool) (advance int, token []byte, err error) {
+       advance, token, err = bufio.ScanWords(inp, atEOF)
+       if err != nil {
+               return
+       }
+       if len(token) > 1 && token[0] != '\'' {
+               return
+       }
+       var start int
+       for ; start < len(inp); start++ {
+               if !unicode.IsSpace(rune(inp[start])) {
+                       break
+               }
+       }
+       if start == len(inp) || inp[start] != '\'' {
+               return
+       }
+       var escape bool
+       for i := start + 1; i < len(inp); i++ {
+               if escape {
+                       escape = false
+               } else {
+                       switch inp[i] {
+                       case '\'':
+                               advance = i + 1
+                               token = inp[start:advance]
+                               return
+                       case '\\':
+                               escape = true
+                       }
+               }
+       }
+       // Reached the end of the input with no closing quote.
+       if atEOF {
+               return 0, nil, ErrToken
+       }
+       return 0, nil, nil
+}
+
+var words = []string{
+       "alpha", "bravo", "charlie", "delta", "echo", "foxtrot", "golf", "hotel",
+       "india", "juliet", "kilo", "lima", "mike", "november", "oscar", "papa",
+       "quebec", "romeo", "sierra", "tango", "uniform", "victor", "whisky", "xray",
+       "yankee", "zulu",
+}
diff --git a/vendor/github.com/bytom/protocol/vm/bitwise.go b/vendor/github.com/bytom/protocol/vm/bitwise.go
new file mode 100644 (file)
index 0000000..1d20dcf
--- /dev/null
@@ -0,0 +1,150 @@
+package vm
+
+import "bytes"
+
+func opInvert(vm *virtualMachine) error {
+       err := vm.applyCost(1)
+       if err != nil {
+               return err
+       }
+       top, err := vm.top()
+       if err != nil {
+               return err
+       }
+       err = vm.applyCost(int64(len(top)))
+       if err != nil {
+               return err
+       }
+       // Could rewrite top in place but maybe it's a shared data
+       // structure?
+       newTop := make([]byte, 0, len(top))
+       for _, b := range top {
+               newTop = append(newTop, ^b)
+       }
+       vm.dataStack[len(vm.dataStack)-1] = newTop
+       return nil
+}
+
+func opAnd(vm *virtualMachine) error {
+       err := vm.applyCost(1)
+       if err != nil {
+               return err
+       }
+       b, err := vm.pop(true)
+       if err != nil {
+               return err
+       }
+       a, err := vm.pop(true)
+       if err != nil {
+               return err
+       }
+       min, max := len(a), len(b)
+       if min > max {
+               min, max = max, min
+       }
+       err = vm.applyCost(int64(min))
+       if err != nil {
+               return err
+       }
+       res := make([]byte, 0, min)
+       for i := 0; i < min; i++ {
+               res = append(res, a[i]&b[i])
+       }
+       return vm.push(res, true)
+}
+
+func opOr(vm *virtualMachine) error {
+       return doOr(vm, false)
+}
+
+func opXor(vm *virtualMachine) error {
+       return doOr(vm, true)
+}
+
+func doOr(vm *virtualMachine, xor bool) error {
+       err := vm.applyCost(1)
+       if err != nil {
+               return err
+       }
+       b, err := vm.pop(true)
+       if err != nil {
+               return err
+       }
+       a, err := vm.pop(true)
+       if err != nil {
+               return err
+       }
+       min, max := len(a), len(b)
+       if min > max {
+               min, max = max, min
+       }
+       err = vm.applyCost(int64(max))
+       if err != nil {
+               return err
+       }
+       res := make([]byte, 0, max)
+       for i := 0; i < max; i++ {
+               var aByte, bByte, resByte byte
+               if i >= len(a) {
+                       aByte = 0
+               } else {
+                       aByte = a[i]
+               }
+               if i >= len(b) {
+                       bByte = 0
+               } else {
+                       bByte = b[i]
+               }
+               if xor {
+                       resByte = aByte ^ bByte
+               } else {
+                       resByte = aByte | bByte
+               }
+
+               res = append(res, resByte)
+       }
+       return vm.push(res, true)
+}
+
+func opEqual(vm *virtualMachine) error {
+       res, err := doEqual(vm)
+       if err != nil {
+               return err
+       }
+       return vm.pushBool(res, true)
+}
+
+func opEqualVerify(vm *virtualMachine) error {
+       res, err := doEqual(vm)
+       if err != nil {
+               return err
+       }
+       if res {
+               return nil
+       }
+       return ErrVerifyFailed
+}
+
+func doEqual(vm *virtualMachine) (bool, error) {
+       err := vm.applyCost(1)
+       if err != nil {
+               return false, err
+       }
+       b, err := vm.pop(true)
+       if err != nil {
+               return false, err
+       }
+       a, err := vm.pop(true)
+       if err != nil {
+               return false, err
+       }
+       min, max := len(a), len(b)
+       if min > max {
+               min, max = max, min
+       }
+       err = vm.applyCost(int64(min))
+       if err != nil {
+               return false, err
+       }
+       return bytes.Equal(a, b), nil
+}
diff --git a/vendor/github.com/bytom/protocol/vm/context.go b/vendor/github.com/bytom/protocol/vm/context.go
new file mode 100644 (file)
index 0000000..853e91c
--- /dev/null
@@ -0,0 +1,35 @@
+package vm
+
+// Context contains the execution context for the virtual machine.
+//
+// Most fields are pointers and are not required to be present in all
+// cases. A nil pointer means the value is absent in that context. If
+// an opcode executes that requires an absent field to be present, it
+// will return ErrContext.
+//
+// By convention, variables of this type have the name context, _not_
+// ctx (to avoid confusion with context.Context).
+type Context struct {
+       VMVersion uint64
+       Code      []byte
+       Arguments [][]byte
+
+       EntryID []byte
+
+       // TxVersion must be present when verifying transaction components
+       // (such as spends and issuances).
+       TxVersion   *uint64
+       BlockHeight *uint64
+
+       // Fields below this point are required by particular opcodes when
+       // verifying transaction components.
+
+       NumResults    *uint64
+       AssetID       *[]byte
+       Amount        *uint64
+       DestPos       *uint64
+       SpentOutputID *[]byte
+
+       TxSigHash   func() []byte
+       CheckOutput func(index uint64, amount uint64, assetID []byte, vmVersion uint64, code []byte, expansion bool) (bool, error)
+}
diff --git a/vendor/github.com/bytom/protocol/vm/control.go b/vendor/github.com/bytom/protocol/vm/control.go
new file mode 100644 (file)
index 0000000..946b369
--- /dev/null
@@ -0,0 +1,108 @@
+package vm
+
+import (
+       "encoding/binary"
+)
+
+func opVerify(vm *virtualMachine) error {
+       err := vm.applyCost(1)
+       if err != nil {
+               return err
+       }
+       p, err := vm.pop(true)
+       if err != nil {
+               return err
+       }
+       if AsBool(p) {
+               return nil
+       }
+       return ErrVerifyFailed
+}
+
+func opFail(vm *virtualMachine) error {
+       err := vm.applyCost(1)
+       if err != nil {
+               return err
+       }
+       return ErrReturn
+}
+
+func opCheckPredicate(vm *virtualMachine) error {
+       err := vm.applyCost(256)
+       if err != nil {
+               return err
+       }
+       vm.deferCost(-256 + 64) // get most of that cost back at the end
+       limit, err := vm.popInt64(true)
+       if err != nil {
+               return err
+       }
+       predicate, err := vm.pop(true)
+       if err != nil {
+               return err
+       }
+       n, err := vm.popInt64(true)
+       if err != nil {
+               return err
+       }
+       if limit < 0 {
+               return ErrBadValue
+       }
+       l := int64(len(vm.dataStack))
+       if n < 0 {
+               n = l
+       }
+       if n > l {
+               return ErrDataStackUnderflow
+       }
+       if limit == 0 {
+               limit = vm.runLimit
+       }
+       err = vm.applyCost(limit)
+       if err != nil {
+               return err
+       }
+
+       childVM := virtualMachine{
+               context:   vm.context,
+               program:   predicate,
+               runLimit:  limit,
+               depth:     vm.depth + 1,
+               dataStack: append([][]byte{}, vm.dataStack[l-n:]...),
+       }
+       vm.dataStack = vm.dataStack[:l-n]
+
+       childErr := childVM.run()
+
+       vm.deferCost(-childVM.runLimit)
+       vm.deferCost(-stackCost(childVM.dataStack))
+       vm.deferCost(-stackCost(childVM.altStack))
+
+       return vm.pushBool(childErr == nil && !childVM.falseResult(), true)
+}
+
+func opJump(vm *virtualMachine) error {
+       err := vm.applyCost(1)
+       if err != nil {
+               return err
+       }
+       address := binary.LittleEndian.Uint32(vm.data)
+       vm.nextPC = address
+       return nil
+}
+
+func opJumpIf(vm *virtualMachine) error {
+       err := vm.applyCost(1)
+       if err != nil {
+               return err
+       }
+       p, err := vm.pop(true)
+       if err != nil {
+               return err
+       }
+       if AsBool(p) {
+               address := binary.LittleEndian.Uint32(vm.data)
+               vm.nextPC = address
+       }
+       return nil
+}
diff --git a/vendor/github.com/bytom/protocol/vm/crypto.go b/vendor/github.com/bytom/protocol/vm/crypto.go
new file mode 100644 (file)
index 0000000..38da2af
--- /dev/null
@@ -0,0 +1,158 @@
+package vm
+
+import (
+       "crypto/sha256"
+       "hash"
+
+       "golang.org/x/crypto/sha3"
+
+       "github.com/bytom/crypto"
+       "github.com/bytom/crypto/ed25519"
+       "github.com/bytom/crypto/sm3"
+       "github.com/bytom/math/checked"
+)
+
+func opSha256(vm *virtualMachine) error {
+       return doHash(vm, sha256.New)
+}
+
+func opSha3(vm *virtualMachine) error {
+       return doHash(vm, sha3.New256)
+}
+
+func doHash(vm *virtualMachine, hashFactory func() hash.Hash) error {
+       x, err := vm.pop(false)
+       if err != nil {
+               return err
+       }
+       cost := int64(len(x))
+       if cost < 64 {
+               cost = 64
+       }
+       err = vm.applyCost(cost)
+       if err != nil {
+               return err
+       }
+       h := hashFactory()
+       _, err = h.Write(x)
+       if err != nil {
+               return err
+       }
+       return vm.push(h.Sum(nil), false)
+}
+
+func opCheckSig(vm *virtualMachine) error {
+       err := vm.applyCost(1024)
+       if err != nil {
+               return err
+       }
+       pubkeyBytes, err := vm.pop(true)
+       if err != nil {
+               return err
+       }
+       msg, err := vm.pop(true)
+       if err != nil {
+               return err
+       }
+       sig, err := vm.pop(true)
+       if err != nil {
+               return err
+       }
+       if len(msg) != 32 {
+               return ErrBadValue
+       }
+       if len(pubkeyBytes) != ed25519.PublicKeySize {
+               return vm.pushBool(false, true)
+       }
+       return vm.pushBool(ed25519.Verify(ed25519.PublicKey(pubkeyBytes), msg, sig), true)
+}
+
+func opCheckMultiSig(vm *virtualMachine) error {
+       numPubkeys, err := vm.popInt64(true)
+       if err != nil {
+               return err
+       }
+       pubCost, ok := checked.MulInt64(numPubkeys, 1024)
+       if numPubkeys < 0 || !ok {
+               return ErrBadValue
+       }
+       err = vm.applyCost(pubCost)
+       if err != nil {
+               return err
+       }
+       numSigs, err := vm.popInt64(true)
+       if err != nil {
+               return err
+       }
+       if numSigs < 0 || numSigs > numPubkeys || (numPubkeys > 0 && numSigs == 0) {
+               return ErrBadValue
+       }
+       pubkeyByteses := make([][]byte, 0, numPubkeys)
+       for i := int64(0); i < numPubkeys; i++ {
+               pubkeyBytes, err := vm.pop(true)
+               if err != nil {
+                       return err
+               }
+               pubkeyByteses = append(pubkeyByteses, pubkeyBytes)
+       }
+       msg, err := vm.pop(true)
+       if err != nil {
+               return err
+       }
+       if len(msg) != 32 {
+               return ErrBadValue
+       }
+       sigs := make([][]byte, 0, numSigs)
+       for i := int64(0); i < numSigs; i++ {
+               sig, err := vm.pop(true)
+               if err != nil {
+                       return err
+               }
+               sigs = append(sigs, sig)
+       }
+
+       pubkeys := make([]ed25519.PublicKey, 0, numPubkeys)
+       for _, p := range pubkeyByteses {
+               if len(p) != ed25519.PublicKeySize {
+                       return vm.pushBool(false, true)
+               }
+               pubkeys = append(pubkeys, ed25519.PublicKey(p))
+       }
+
+       for len(sigs) > 0 && len(pubkeys) > 0 {
+               if ed25519.Verify(pubkeys[0], msg, sigs[0]) {
+                       sigs = sigs[1:]
+               }
+               pubkeys = pubkeys[1:]
+       }
+       return vm.pushBool(len(sigs) == 0, true)
+}
+
+func opTxSigHash(vm *virtualMachine) error {
+       err := vm.applyCost(256)
+       if err != nil {
+               return err
+       }
+       if vm.context.TxSigHash == nil {
+               return ErrContext
+       }
+       return vm.push(vm.context.TxSigHash(), false)
+}
+
+func opHash160(vm *virtualMachine) error {
+       data, err := vm.pop(false)
+       if err != nil {
+               return err
+       }
+
+       cost := int64(len(data) + 64)
+       if err = vm.applyCost(cost); err != nil {
+               return err
+       }
+
+       return vm.push(crypto.Ripemd160(data), false)
+}
+
+func opSm3(vm *virtualMachine) error {
+       return doHash(vm, sm3.New)
+}
diff --git a/vendor/github.com/bytom/protocol/vm/errors.go b/vendor/github.com/bytom/protocol/vm/errors.go
new file mode 100644 (file)
index 0000000..4d08f9a
--- /dev/null
@@ -0,0 +1,22 @@
+package vm
+
+import "errors"
+
+var (
+       ErrAltStackUnderflow  = errors.New("alt stack underflow")
+       ErrBadValue           = errors.New("bad value")
+       ErrContext            = errors.New("wrong context")
+       ErrDataStackUnderflow = errors.New("data stack underflow")
+       ErrDisallowedOpcode   = errors.New("disallowed opcode")
+       ErrDivZero            = errors.New("division by zero")
+       ErrFalseVMResult      = errors.New("false VM result")
+       ErrLongProgram        = errors.New("program size exceeds maxint32")
+       ErrRange              = errors.New("range error")
+       ErrReturn             = errors.New("RETURN executed")
+       ErrRunLimitExceeded   = errors.New("run limit exceeded")
+       ErrShortProgram       = errors.New("unexpected end of program")
+       ErrToken              = errors.New("unrecognized token")
+       ErrUnexpected         = errors.New("unexpected error")
+       ErrUnsupportedVM      = errors.New("unsupported VM")
+       ErrVerifyFailed       = errors.New("VERIFY failed")
+)
diff --git a/vendor/github.com/bytom/protocol/vm/introspection.go b/vendor/github.com/bytom/protocol/vm/introspection.go
new file mode 100644 (file)
index 0000000..72aaab0
--- /dev/null
@@ -0,0 +1,125 @@
+package vm
+
+func opCheckOutput(vm *virtualMachine) error {
+       err := vm.applyCost(16)
+       if err != nil {
+               return err
+       }
+
+       code, err := vm.pop(true)
+       if err != nil {
+               return err
+       }
+       vmVersion, err := vm.popInt64(true)
+       if err != nil {
+               return err
+       }
+       if vmVersion < 0 {
+               return ErrBadValue
+       }
+       assetID, err := vm.pop(true)
+       if err != nil {
+               return err
+       }
+       amount, err := vm.popInt64(true)
+       if err != nil {
+               return err
+       }
+       if amount < 0 {
+               return ErrBadValue
+       }
+       index, err := vm.popInt64(true)
+       if err != nil {
+               return err
+       }
+       if index < 0 {
+               return ErrBadValue
+       }
+
+       if vm.context.CheckOutput == nil {
+               return ErrContext
+       }
+
+       ok, err := vm.context.CheckOutput(uint64(index), uint64(amount), assetID, uint64(vmVersion), code, vm.expansionReserved)
+       if err != nil {
+               return err
+       }
+       return vm.pushBool(ok, true)
+}
+
+func opAsset(vm *virtualMachine) error {
+       err := vm.applyCost(1)
+       if err != nil {
+               return err
+       }
+
+       if vm.context.AssetID == nil {
+               return ErrContext
+       }
+       return vm.push(*vm.context.AssetID, true)
+}
+
+func opAmount(vm *virtualMachine) error {
+       err := vm.applyCost(1)
+       if err != nil {
+               return err
+       }
+
+       if vm.context.Amount == nil {
+               return ErrContext
+       }
+       return vm.pushInt64(int64(*vm.context.Amount), true)
+}
+
+func opProgram(vm *virtualMachine) error {
+       err := vm.applyCost(1)
+       if err != nil {
+               return err
+       }
+
+       return vm.push(vm.context.Code, true)
+}
+
+func opIndex(vm *virtualMachine) error {
+       err := vm.applyCost(1)
+       if err != nil {
+               return err
+       }
+
+       if vm.context.DestPos == nil {
+               return ErrContext
+       }
+       return vm.pushInt64(int64(*vm.context.DestPos), true)
+}
+
+func opEntryID(vm *virtualMachine) error {
+       err := vm.applyCost(1)
+       if err != nil {
+               return err
+       }
+       return vm.push(vm.context.EntryID, true)
+}
+
+func opOutputID(vm *virtualMachine) error {
+       err := vm.applyCost(1)
+       if err != nil {
+               return err
+       }
+
+       if vm.context.SpentOutputID == nil {
+               return ErrContext
+       }
+       return vm.push(*vm.context.SpentOutputID, true)
+}
+
+func opBlockHeight(vm *virtualMachine) error {
+       err := vm.applyCost(1)
+       if err != nil {
+               return err
+       }
+
+       if vm.context.BlockHeight == nil {
+               return ErrContext
+       }
+       return vm.pushInt64(int64(*vm.context.BlockHeight), true)
+}
diff --git a/vendor/github.com/bytom/protocol/vm/numeric.go b/vendor/github.com/bytom/protocol/vm/numeric.go
new file mode 100644 (file)
index 0000000..09486d2
--- /dev/null
@@ -0,0 +1,459 @@
+package vm
+
+import (
+       "math"
+
+       "github.com/bytom/math/checked"
+)
+
+func op1Add(vm *virtualMachine) error {
+       err := vm.applyCost(2)
+       if err != nil {
+               return err
+       }
+       n, err := vm.popInt64(true)
+       if err != nil {
+               return err
+       }
+       res, ok := checked.AddInt64(n, 1)
+       if !ok {
+               return ErrRange
+       }
+       return vm.pushInt64(res, true)
+}
+
+func op1Sub(vm *virtualMachine) error {
+       err := vm.applyCost(2)
+       if err != nil {
+               return err
+       }
+       n, err := vm.popInt64(true)
+       if err != nil {
+               return err
+       }
+       res, ok := checked.SubInt64(n, 1)
+       if !ok {
+               return ErrRange
+       }
+       return vm.pushInt64(res, true)
+}
+
+func op2Mul(vm *virtualMachine) error {
+       err := vm.applyCost(2)
+       if err != nil {
+               return err
+       }
+       n, err := vm.popInt64(true)
+       if err != nil {
+               return err
+       }
+       res, ok := checked.MulInt64(n, 2)
+       if !ok {
+               return ErrRange
+       }
+       return vm.pushInt64(res, true)
+}
+
+func op2Div(vm *virtualMachine) error {
+       err := vm.applyCost(2)
+       if err != nil {
+               return err
+       }
+       n, err := vm.popInt64(true)
+       if err != nil {
+               return err
+       }
+       return vm.pushInt64(n>>1, true)
+}
+
+func opNegate(vm *virtualMachine) error {
+       err := vm.applyCost(2)
+       if err != nil {
+               return err
+       }
+       n, err := vm.popInt64(true)
+       if err != nil {
+               return err
+       }
+       res, ok := checked.NegateInt64(n)
+       if !ok {
+               return ErrRange
+       }
+       return vm.pushInt64(res, true)
+}
+
+func opAbs(vm *virtualMachine) error {
+       err := vm.applyCost(2)
+       if err != nil {
+               return err
+       }
+       n, err := vm.popInt64(true)
+       if err != nil {
+               return err
+       }
+       if n == math.MinInt64 {
+               return ErrRange
+       }
+       if n < 0 {
+               n = -n
+       }
+       return vm.pushInt64(n, true)
+}
+
+func opNot(vm *virtualMachine) error {
+       err := vm.applyCost(2)
+       if err != nil {
+               return err
+       }
+       n, err := vm.popInt64(true)
+       if err != nil {
+               return err
+       }
+       return vm.pushBool(n == 0, true)
+}
+
+func op0NotEqual(vm *virtualMachine) error {
+       err := vm.applyCost(2)
+       if err != nil {
+               return err
+       }
+       n, err := vm.popInt64(true)
+       if err != nil {
+               return err
+       }
+       return vm.pushBool(n != 0, true)
+}
+
+func opAdd(vm *virtualMachine) error {
+       err := vm.applyCost(2)
+       if err != nil {
+               return err
+       }
+       y, err := vm.popInt64(true)
+       if err != nil {
+               return err
+       }
+       x, err := vm.popInt64(true)
+       if err != nil {
+               return err
+       }
+       res, ok := checked.AddInt64(x, y)
+       if !ok {
+               return ErrRange
+       }
+       return vm.pushInt64(res, true)
+}
+
+func opSub(vm *virtualMachine) error {
+       err := vm.applyCost(2)
+       if err != nil {
+               return err
+       }
+       y, err := vm.popInt64(true)
+       if err != nil {
+               return err
+       }
+       x, err := vm.popInt64(true)
+       if err != nil {
+               return err
+       }
+       res, ok := checked.SubInt64(x, y)
+       if !ok {
+               return ErrRange
+       }
+       return vm.pushInt64(res, true)
+}
+
+func opMul(vm *virtualMachine) error {
+       err := vm.applyCost(8)
+       if err != nil {
+               return err
+       }
+       y, err := vm.popInt64(true)
+       if err != nil {
+               return err
+       }
+       x, err := vm.popInt64(true)
+       if err != nil {
+               return err
+       }
+       res, ok := checked.MulInt64(x, y)
+       if !ok {
+               return ErrRange
+       }
+       return vm.pushInt64(res, true)
+}
+
+func opDiv(vm *virtualMachine) error {
+       err := vm.applyCost(8)
+       if err != nil {
+               return err
+       }
+       y, err := vm.popInt64(true)
+       if err != nil {
+               return err
+       }
+       x, err := vm.popInt64(true)
+       if err != nil {
+               return err
+       }
+       if y == 0 {
+               return ErrDivZero
+       }
+       res, ok := checked.DivInt64(x, y)
+       if !ok {
+               return ErrRange
+       }
+       return vm.pushInt64(res, true)
+}
+
+func opMod(vm *virtualMachine) error {
+       err := vm.applyCost(8)
+       if err != nil {
+               return err
+       }
+       y, err := vm.popInt64(true)
+       if err != nil {
+               return err
+       }
+       x, err := vm.popInt64(true)
+       if err != nil {
+               return err
+       }
+       if y == 0 {
+               return ErrDivZero
+       }
+
+       res, ok := checked.ModInt64(x, y)
+       if !ok {
+               return ErrRange
+       }
+
+       // Go's modulus operator produces the wrong result for mixed-sign
+       // operands
+       if res != 0 && (x >= 0) != (y >= 0) {
+               res += y
+       }
+
+       return vm.pushInt64(res, true)
+}
+
+func opLshift(vm *virtualMachine) error {
+       err := vm.applyCost(8)
+       if err != nil {
+               return err
+       }
+       y, err := vm.popInt64(true)
+       if err != nil {
+               return err
+       }
+       if y < 0 {
+               return ErrBadValue
+       }
+       x, err := vm.popInt64(true)
+       if err != nil {
+               return err
+       }
+       if x == 0 || y == 0 {
+               return vm.pushInt64(x, true)
+       }
+
+       res, ok := checked.LshiftInt64(x, y)
+       if !ok {
+               return ErrRange
+       }
+
+       return vm.pushInt64(res, true)
+}
+
+func opRshift(vm *virtualMachine) error {
+       err := vm.applyCost(8)
+       if err != nil {
+               return err
+       }
+       y, err := vm.popInt64(true)
+       if err != nil {
+               return err
+       }
+       x, err := vm.popInt64(true)
+       if err != nil {
+               return err
+       }
+       if y < 0 {
+               return ErrBadValue
+       }
+       return vm.pushInt64(x>>uint64(y), true)
+}
+
+func opBoolAnd(vm *virtualMachine) error {
+       err := vm.applyCost(2)
+       if err != nil {
+               return err
+       }
+       b, err := vm.pop(true)
+       if err != nil {
+               return err
+       }
+       a, err := vm.pop(true)
+       if err != nil {
+               return err
+       }
+       return vm.pushBool(AsBool(a) && AsBool(b), true)
+}
+
+func opBoolOr(vm *virtualMachine) error {
+       err := vm.applyCost(2)
+       if err != nil {
+               return err
+       }
+       b, err := vm.pop(true)
+       if err != nil {
+               return err
+       }
+       a, err := vm.pop(true)
+       if err != nil {
+               return err
+       }
+       return vm.pushBool(AsBool(a) || AsBool(b), true)
+}
+
+const (
+       cmpLess = iota
+       cmpLessEqual
+       cmpGreater
+       cmpGreaterEqual
+       cmpEqual
+       cmpNotEqual
+)
+
+func opNumEqual(vm *virtualMachine) error {
+       return doNumCompare(vm, cmpEqual)
+}
+
+func opNumEqualVerify(vm *virtualMachine) error {
+       err := vm.applyCost(2)
+       if err != nil {
+               return err
+       }
+       y, err := vm.popInt64(true)
+       if err != nil {
+               return err
+       }
+       x, err := vm.popInt64(true)
+       if err != nil {
+               return err
+       }
+       if x == y {
+               return nil
+       }
+       return ErrVerifyFailed
+}
+
+func opNumNotEqual(vm *virtualMachine) error {
+       return doNumCompare(vm, cmpNotEqual)
+}
+
+func opLessThan(vm *virtualMachine) error {
+       return doNumCompare(vm, cmpLess)
+}
+
+func opGreaterThan(vm *virtualMachine) error {
+       return doNumCompare(vm, cmpGreater)
+}
+
+func opLessThanOrEqual(vm *virtualMachine) error {
+       return doNumCompare(vm, cmpLessEqual)
+}
+
+func opGreaterThanOrEqual(vm *virtualMachine) error {
+       return doNumCompare(vm, cmpGreaterEqual)
+}
+
+func doNumCompare(vm *virtualMachine, op int) error {
+       err := vm.applyCost(2)
+       if err != nil {
+               return err
+       }
+       y, err := vm.popInt64(true)
+       if err != nil {
+               return err
+       }
+       x, err := vm.popInt64(true)
+       if err != nil {
+               return err
+       }
+       var res bool
+       switch op {
+       case cmpLess:
+               res = x < y
+       case cmpLessEqual:
+               res = x <= y
+       case cmpGreater:
+               res = x > y
+       case cmpGreaterEqual:
+               res = x >= y
+       case cmpEqual:
+               res = x == y
+       case cmpNotEqual:
+               res = x != y
+       }
+       return vm.pushBool(res, true)
+}
+
+func opMin(vm *virtualMachine) error {
+       err := vm.applyCost(2)
+       if err != nil {
+               return err
+       }
+       y, err := vm.popInt64(true)
+       if err != nil {
+               return err
+       }
+       x, err := vm.popInt64(true)
+       if err != nil {
+               return err
+       }
+       if x > y {
+               x = y
+       }
+       return vm.pushInt64(x, true)
+}
+
+func opMax(vm *virtualMachine) error {
+       err := vm.applyCost(2)
+       if err != nil {
+               return err
+       }
+       y, err := vm.popInt64(true)
+       if err != nil {
+               return err
+       }
+       x, err := vm.popInt64(true)
+       if err != nil {
+               return err
+       }
+       if x < y {
+               x = y
+       }
+       return vm.pushInt64(x, true)
+}
+
+func opWithin(vm *virtualMachine) error {
+       err := vm.applyCost(4)
+       if err != nil {
+               return err
+       }
+       max, err := vm.popInt64(true)
+       if err != nil {
+               return err
+       }
+       min, err := vm.popInt64(true)
+       if err != nil {
+               return err
+       }
+       x, err := vm.popInt64(true)
+       if err != nil {
+               return err
+       }
+       return vm.pushBool(x >= min && x < max, true)
+}
diff --git a/vendor/github.com/bytom/protocol/vm/ops.go b/vendor/github.com/bytom/protocol/vm/ops.go
new file mode 100644 (file)
index 0000000..8a2b6f3
--- /dev/null
@@ -0,0 +1,490 @@
+package vm
+
+import (
+       "encoding/binary"
+       "fmt"
+       "math"
+       "reflect"
+
+       "github.com/bytom/errors"
+       "github.com/bytom/math/checked"
+)
+
+type Op uint8
+
+func (op Op) String() string {
+       return ops[op].name
+}
+
+type Instruction struct {
+       Op   Op
+       Len  uint32
+       Data []byte
+}
+
+const (
+       OP_FALSE Op = 0x00
+       OP_0     Op = 0x00 // synonym
+
+       OP_1    Op = 0x51
+       OP_TRUE Op = 0x51 // synonym
+
+       OP_2  Op = 0x52
+       OP_3  Op = 0x53
+       OP_4  Op = 0x54
+       OP_5  Op = 0x55
+       OP_6  Op = 0x56
+       OP_7  Op = 0x57
+       OP_8  Op = 0x58
+       OP_9  Op = 0x59
+       OP_10 Op = 0x5a
+       OP_11 Op = 0x5b
+       OP_12 Op = 0x5c
+       OP_13 Op = 0x5d
+       OP_14 Op = 0x5e
+       OP_15 Op = 0x5f
+       OP_16 Op = 0x60
+
+       OP_DATA_1  Op = 0x01
+       OP_DATA_2  Op = 0x02
+       OP_DATA_3  Op = 0x03
+       OP_DATA_4  Op = 0x04
+       OP_DATA_5  Op = 0x05
+       OP_DATA_6  Op = 0x06
+       OP_DATA_7  Op = 0x07
+       OP_DATA_8  Op = 0x08
+       OP_DATA_9  Op = 0x09
+       OP_DATA_10 Op = 0x0a
+       OP_DATA_11 Op = 0x0b
+       OP_DATA_12 Op = 0x0c
+       OP_DATA_13 Op = 0x0d
+       OP_DATA_14 Op = 0x0e
+       OP_DATA_15 Op = 0x0f
+       OP_DATA_16 Op = 0x10
+       OP_DATA_17 Op = 0x11
+       OP_DATA_18 Op = 0x12
+       OP_DATA_19 Op = 0x13
+       OP_DATA_20 Op = 0x14
+       OP_DATA_21 Op = 0x15
+       OP_DATA_22 Op = 0x16
+       OP_DATA_23 Op = 0x17
+       OP_DATA_24 Op = 0x18
+       OP_DATA_25 Op = 0x19
+       OP_DATA_26 Op = 0x1a
+       OP_DATA_27 Op = 0x1b
+       OP_DATA_28 Op = 0x1c
+       OP_DATA_29 Op = 0x1d
+       OP_DATA_30 Op = 0x1e
+       OP_DATA_31 Op = 0x1f
+       OP_DATA_32 Op = 0x20
+       OP_DATA_33 Op = 0x21
+       OP_DATA_34 Op = 0x22
+       OP_DATA_35 Op = 0x23
+       OP_DATA_36 Op = 0x24
+       OP_DATA_37 Op = 0x25
+       OP_DATA_38 Op = 0x26
+       OP_DATA_39 Op = 0x27
+       OP_DATA_40 Op = 0x28
+       OP_DATA_41 Op = 0x29
+       OP_DATA_42 Op = 0x2a
+       OP_DATA_43 Op = 0x2b
+       OP_DATA_44 Op = 0x2c
+       OP_DATA_45 Op = 0x2d
+       OP_DATA_46 Op = 0x2e
+       OP_DATA_47 Op = 0x2f
+       OP_DATA_48 Op = 0x30
+       OP_DATA_49 Op = 0x31
+       OP_DATA_50 Op = 0x32
+       OP_DATA_51 Op = 0x33
+       OP_DATA_52 Op = 0x34
+       OP_DATA_53 Op = 0x35
+       OP_DATA_54 Op = 0x36
+       OP_DATA_55 Op = 0x37
+       OP_DATA_56 Op = 0x38
+       OP_DATA_57 Op = 0x39
+       OP_DATA_58 Op = 0x3a
+       OP_DATA_59 Op = 0x3b
+       OP_DATA_60 Op = 0x3c
+       OP_DATA_61 Op = 0x3d
+       OP_DATA_62 Op = 0x3e
+       OP_DATA_63 Op = 0x3f
+       OP_DATA_64 Op = 0x40
+       OP_DATA_65 Op = 0x41
+       OP_DATA_66 Op = 0x42
+       OP_DATA_67 Op = 0x43
+       OP_DATA_68 Op = 0x44
+       OP_DATA_69 Op = 0x45
+       OP_DATA_70 Op = 0x46
+       OP_DATA_71 Op = 0x47
+       OP_DATA_72 Op = 0x48
+       OP_DATA_73 Op = 0x49
+       OP_DATA_74 Op = 0x4a
+       OP_DATA_75 Op = 0x4b
+
+       OP_PUSHDATA1 Op = 0x4c
+       OP_PUSHDATA2 Op = 0x4d
+       OP_PUSHDATA4 Op = 0x4e
+       OP_1NEGATE   Op = 0x4f
+       OP_NOP       Op = 0x61
+
+       OP_JUMP           Op = 0x63
+       OP_JUMPIF         Op = 0x64
+       OP_VERIFY         Op = 0x69
+       OP_FAIL           Op = 0x6a
+       OP_CHECKPREDICATE Op = 0xc0
+
+       OP_TOALTSTACK   Op = 0x6b
+       OP_FROMALTSTACK Op = 0x6c
+       OP_2DROP        Op = 0x6d
+       OP_2DUP         Op = 0x6e
+       OP_3DUP         Op = 0x6f
+       OP_2OVER        Op = 0x70
+       OP_2ROT         Op = 0x71
+       OP_2SWAP        Op = 0x72
+       OP_IFDUP        Op = 0x73
+       OP_DEPTH        Op = 0x74
+       OP_DROP         Op = 0x75
+       OP_DUP          Op = 0x76
+       OP_NIP          Op = 0x77
+       OP_OVER         Op = 0x78
+       OP_PICK         Op = 0x79
+       OP_ROLL         Op = 0x7a
+       OP_ROT          Op = 0x7b
+       OP_SWAP         Op = 0x7c
+       OP_TUCK         Op = 0x7d
+
+       OP_CAT         Op = 0x7e
+       OP_SUBSTR      Op = 0x7f
+       OP_LEFT        Op = 0x80
+       OP_RIGHT       Op = 0x81
+       OP_SIZE        Op = 0x82
+       OP_CATPUSHDATA Op = 0x89
+
+       OP_INVERT      Op = 0x83
+       OP_AND         Op = 0x84
+       OP_OR          Op = 0x85
+       OP_XOR         Op = 0x86
+       OP_EQUAL       Op = 0x87
+       OP_EQUALVERIFY Op = 0x88
+
+       OP_1ADD               Op = 0x8b
+       OP_1SUB               Op = 0x8c
+       OP_2MUL               Op = 0x8d
+       OP_2DIV               Op = 0x8e
+       OP_NEGATE             Op = 0x8f
+       OP_ABS                Op = 0x90
+       OP_NOT                Op = 0x91
+       OP_0NOTEQUAL          Op = 0x92
+       OP_ADD                Op = 0x93
+       OP_SUB                Op = 0x94
+       OP_MUL                Op = 0x95
+       OP_DIV                Op = 0x96
+       OP_MOD                Op = 0x97
+       OP_LSHIFT             Op = 0x98
+       OP_RSHIFT             Op = 0x99
+       OP_BOOLAND            Op = 0x9a
+       OP_BOOLOR             Op = 0x9b
+       OP_NUMEQUAL           Op = 0x9c
+       OP_NUMEQUALVERIFY     Op = 0x9d
+       OP_NUMNOTEQUAL        Op = 0x9e
+       OP_LESSTHAN           Op = 0x9f
+       OP_GREATERTHAN        Op = 0xa0
+       OP_LESSTHANOREQUAL    Op = 0xa1
+       OP_GREATERTHANOREQUAL Op = 0xa2
+       OP_MIN                Op = 0xa3
+       OP_MAX                Op = 0xa4
+       OP_WITHIN             Op = 0xa5
+
+       OP_SHA256        Op = 0xa8
+       OP_SHA3          Op = 0xaa
+       OP_HASH160       Op = 0xab
+       OP_CHECKSIG      Op = 0xac
+       OP_CHECKMULTISIG Op = 0xad
+       OP_TXSIGHASH     Op = 0xae
+
+       OP_CHECKOUTPUT Op = 0xc1
+       OP_ASSET       Op = 0xc2
+       OP_AMOUNT      Op = 0xc3
+       OP_PROGRAM     Op = 0xc4
+       OP_INDEX       Op = 0xc9
+       OP_ENTRYID     Op = 0xca
+       OP_OUTPUTID    Op = 0xcb
+       OP_BLOCKHEIGHT Op = 0xcd
+)
+
+type opInfo struct {
+       op   Op
+       name string
+       fn   func(*virtualMachine) error
+}
+
+var (
+       ops = [256]opInfo{
+               // data pushing
+               OP_FALSE: {OP_FALSE, "FALSE", opFalse},
+
+               // sic: the PUSHDATA ops all share an implementation
+               OP_PUSHDATA1: {OP_PUSHDATA1, "PUSHDATA1", opPushdata},
+               OP_PUSHDATA2: {OP_PUSHDATA2, "PUSHDATA2", opPushdata},
+               OP_PUSHDATA4: {OP_PUSHDATA4, "PUSHDATA4", opPushdata},
+
+               OP_1NEGATE: {OP_1NEGATE, "1NEGATE", op1Negate},
+
+               OP_NOP: {OP_NOP, "NOP", opNop},
+
+               // control flow
+               OP_JUMP:   {OP_JUMP, "JUMP", opJump},
+               OP_JUMPIF: {OP_JUMPIF, "JUMPIF", opJumpIf},
+
+               OP_VERIFY: {OP_VERIFY, "VERIFY", opVerify},
+               OP_FAIL:   {OP_FAIL, "FAIL", opFail},
+
+               OP_TOALTSTACK:   {OP_TOALTSTACK, "TOALTSTACK", opToAltStack},
+               OP_FROMALTSTACK: {OP_FROMALTSTACK, "FROMALTSTACK", opFromAltStack},
+               OP_2DROP:        {OP_2DROP, "2DROP", op2Drop},
+               OP_2DUP:         {OP_2DUP, "2DUP", op2Dup},
+               OP_3DUP:         {OP_3DUP, "3DUP", op3Dup},
+               OP_2OVER:        {OP_2OVER, "2OVER", op2Over},
+               OP_2ROT:         {OP_2ROT, "2ROT", op2Rot},
+               OP_2SWAP:        {OP_2SWAP, "2SWAP", op2Swap},
+               OP_IFDUP:        {OP_IFDUP, "IFDUP", opIfDup},
+               OP_DEPTH:        {OP_DEPTH, "DEPTH", opDepth},
+               OP_DROP:         {OP_DROP, "DROP", opDrop},
+               OP_DUP:          {OP_DUP, "DUP", opDup},
+               OP_NIP:          {OP_NIP, "NIP", opNip},
+               OP_OVER:         {OP_OVER, "OVER", opOver},
+               OP_PICK:         {OP_PICK, "PICK", opPick},
+               OP_ROLL:         {OP_ROLL, "ROLL", opRoll},
+               OP_ROT:          {OP_ROT, "ROT", opRot},
+               OP_SWAP:         {OP_SWAP, "SWAP", opSwap},
+               OP_TUCK:         {OP_TUCK, "TUCK", opTuck},
+
+               OP_CAT:         {OP_CAT, "CAT", opCat},
+               OP_SUBSTR:      {OP_SUBSTR, "SUBSTR", opSubstr},
+               OP_LEFT:        {OP_LEFT, "LEFT", opLeft},
+               OP_RIGHT:       {OP_RIGHT, "RIGHT", opRight},
+               OP_SIZE:        {OP_SIZE, "SIZE", opSize},
+               OP_CATPUSHDATA: {OP_CATPUSHDATA, "CATPUSHDATA", opCatpushdata},
+
+               OP_INVERT:      {OP_INVERT, "INVERT", opInvert},
+               OP_AND:         {OP_AND, "AND", opAnd},
+               OP_OR:          {OP_OR, "OR", opOr},
+               OP_XOR:         {OP_XOR, "XOR", opXor},
+               OP_EQUAL:       {OP_EQUAL, "EQUAL", opEqual},
+               OP_EQUALVERIFY: {OP_EQUALVERIFY, "EQUALVERIFY", opEqualVerify},
+
+               OP_1ADD:               {OP_1ADD, "1ADD", op1Add},
+               OP_1SUB:               {OP_1SUB, "1SUB", op1Sub},
+               OP_2MUL:               {OP_2MUL, "2MUL", op2Mul},
+               OP_2DIV:               {OP_2DIV, "2DIV", op2Div},
+               OP_NEGATE:             {OP_NEGATE, "NEGATE", opNegate},
+               OP_ABS:                {OP_ABS, "ABS", opAbs},
+               OP_NOT:                {OP_NOT, "NOT", opNot},
+               OP_0NOTEQUAL:          {OP_0NOTEQUAL, "0NOTEQUAL", op0NotEqual},
+               OP_ADD:                {OP_ADD, "ADD", opAdd},
+               OP_SUB:                {OP_SUB, "SUB", opSub},
+               OP_MUL:                {OP_MUL, "MUL", opMul},
+               OP_DIV:                {OP_DIV, "DIV", opDiv},
+               OP_MOD:                {OP_MOD, "MOD", opMod},
+               OP_LSHIFT:             {OP_LSHIFT, "LSHIFT", opLshift},
+               OP_RSHIFT:             {OP_RSHIFT, "RSHIFT", opRshift},
+               OP_BOOLAND:            {OP_BOOLAND, "BOOLAND", opBoolAnd},
+               OP_BOOLOR:             {OP_BOOLOR, "BOOLOR", opBoolOr},
+               OP_NUMEQUAL:           {OP_NUMEQUAL, "NUMEQUAL", opNumEqual},
+               OP_NUMEQUALVERIFY:     {OP_NUMEQUALVERIFY, "NUMEQUALVERIFY", opNumEqualVerify},
+               OP_NUMNOTEQUAL:        {OP_NUMNOTEQUAL, "NUMNOTEQUAL", opNumNotEqual},
+               OP_LESSTHAN:           {OP_LESSTHAN, "LESSTHAN", opLessThan},
+               OP_GREATERTHAN:        {OP_GREATERTHAN, "GREATERTHAN", opGreaterThan},
+               OP_LESSTHANOREQUAL:    {OP_LESSTHANOREQUAL, "LESSTHANOREQUAL", opLessThanOrEqual},
+               OP_GREATERTHANOREQUAL: {OP_GREATERTHANOREQUAL, "GREATERTHANOREQUAL", opGreaterThanOrEqual},
+               OP_MIN:                {OP_MIN, "MIN", opMin},
+               OP_MAX:                {OP_MAX, "MAX", opMax},
+               OP_WITHIN:             {OP_WITHIN, "WITHIN", opWithin},
+
+               OP_SHA256:        {OP_SHA256, "SHA256", opSha256},
+               OP_SHA3:          {OP_SHA3, "SHA3", opSha3},
+               OP_HASH160:       {OP_HASH160, "HASH160", opHash160},
+               OP_CHECKSIG:      {OP_CHECKSIG, "CHECKSIG", opCheckSig},
+               OP_CHECKMULTISIG: {OP_CHECKMULTISIG, "CHECKMULTISIG", opCheckMultiSig},
+               OP_TXSIGHASH:     {OP_TXSIGHASH, "TXSIGHASH", opTxSigHash},
+
+               OP_CHECKOUTPUT: {OP_CHECKOUTPUT, "CHECKOUTPUT", opCheckOutput},
+               OP_ASSET:       {OP_ASSET, "ASSET", opAsset},
+               OP_AMOUNT:      {OP_AMOUNT, "AMOUNT", opAmount},
+               OP_PROGRAM:     {OP_PROGRAM, "PROGRAM", opProgram},
+               OP_INDEX:       {OP_INDEX, "INDEX", opIndex},
+               OP_ENTRYID:     {OP_ENTRYID, "ENTRYID", opEntryID},
+               OP_OUTPUTID:    {OP_OUTPUTID, "OUTPUTID", opOutputID},
+               OP_BLOCKHEIGHT: {OP_BLOCKHEIGHT, "BLOCKHEIGHT", opBlockHeight},
+       }
+
+       opsByName map[string]opInfo
+)
+
+// ParseOp parses the op at position pc in prog, returning the parsed
+// instruction (opcode plus any associated data).
+func ParseOp(prog []byte, pc uint32) (inst Instruction, err error) {
+       if len(prog) > math.MaxInt32 {
+               err = ErrLongProgram
+       }
+       l := uint32(len(prog))
+       if pc >= l {
+               err = ErrShortProgram
+               return
+       }
+       opcode := Op(prog[pc])
+       inst.Op = opcode
+       inst.Len = 1
+       if opcode >= OP_1 && opcode <= OP_16 {
+               inst.Data = []byte{uint8(opcode-OP_1) + 1}
+               return
+       }
+       if opcode >= OP_DATA_1 && opcode <= OP_DATA_75 {
+               inst.Len += uint32(opcode - OP_DATA_1 + 1)
+               end, ok := checked.AddUint32(pc, inst.Len)
+               if !ok {
+                       err = errors.WithDetail(checked.ErrOverflow, "data length exceeds max program size")
+                       return
+               }
+               if end > l {
+                       err = ErrShortProgram
+                       return
+               }
+               inst.Data = prog[pc+1 : end]
+               return
+       }
+       if opcode == OP_PUSHDATA1 {
+               if pc == l-1 {
+                       err = ErrShortProgram
+                       return
+               }
+               n := prog[pc+1]
+               inst.Len += uint32(n) + 1
+               end, ok := checked.AddUint32(pc, inst.Len)
+               if !ok {
+                       err = errors.WithDetail(checked.ErrOverflow, "data length exceeds max program size")
+               }
+               if end > l {
+                       err = ErrShortProgram
+                       return
+               }
+               inst.Data = prog[pc+2 : end]
+               return
+       }
+       if opcode == OP_PUSHDATA2 {
+               if len(prog) < 3 || pc > l-3 {
+                       err = ErrShortProgram
+                       return
+               }
+               n := binary.LittleEndian.Uint16(prog[pc+1 : pc+3])
+               inst.Len += uint32(n) + 2
+               end, ok := checked.AddUint32(pc, inst.Len)
+               if !ok {
+                       err = errors.WithDetail(checked.ErrOverflow, "data length exceeds max program size")
+                       return
+               }
+               if end > l {
+                       err = ErrShortProgram
+                       return
+               }
+               inst.Data = prog[pc+3 : end]
+               return
+       }
+       if opcode == OP_PUSHDATA4 {
+               if len(prog) < 5 || pc > l-5 {
+                       err = ErrShortProgram
+                       return
+               }
+               inst.Len += 4
+
+               n := binary.LittleEndian.Uint32(prog[pc+1 : pc+5])
+               var ok bool
+               inst.Len, ok = checked.AddUint32(inst.Len, n)
+               if !ok {
+                       err = errors.WithDetail(checked.ErrOverflow, "data length exceeds max program size")
+                       return
+               }
+               end, ok := checked.AddUint32(pc, inst.Len)
+               if !ok {
+                       err = errors.WithDetail(checked.ErrOverflow, "data length exceeds max program size")
+                       return
+               }
+               if end > l {
+                       err = ErrShortProgram
+                       return
+               }
+               inst.Data = prog[pc+5 : end]
+               return
+       }
+       if opcode == OP_JUMP || opcode == OP_JUMPIF {
+               inst.Len += 4
+               end, ok := checked.AddUint32(pc, inst.Len)
+               if !ok {
+                       err = errors.WithDetail(checked.ErrOverflow, "jump target exceeds max program size")
+                       return
+               }
+               if end > l {
+                       err = ErrShortProgram
+                       return
+               }
+               inst.Data = prog[pc+1 : end]
+               return
+       }
+       return
+}
+
+func ParseProgram(prog []byte) ([]Instruction, error) {
+       var result []Instruction
+       for pc := uint32(0); pc < uint32(len(prog)); { // update pc inside the loop
+               inst, err := ParseOp(prog, pc)
+               if err != nil {
+                       return nil, err
+               }
+               result = append(result, inst)
+               var ok bool
+               pc, ok = checked.AddUint32(pc, inst.Len)
+               if !ok {
+                       return nil, errors.WithDetail(checked.ErrOverflow, "program counter exceeds max program size")
+               }
+       }
+       return result, nil
+}
+
+var isExpansion [256]bool
+
+func init() {
+       for i := 1; i <= 75; i++ {
+               ops[i] = opInfo{Op(i), fmt.Sprintf("DATA_%d", i), opPushdata}
+       }
+       for i := uint8(0); i <= 15; i++ {
+               op := uint8(OP_1) + i
+               ops[op] = opInfo{Op(op), fmt.Sprintf("%d", i+1), opPushdata}
+       }
+
+       // This is here to break a dependency cycle
+       ops[OP_CHECKPREDICATE] = opInfo{OP_CHECKPREDICATE, "CHECKPREDICATE", opCheckPredicate}
+
+       opsByName = make(map[string]opInfo)
+       for _, info := range ops {
+               opsByName[info.name] = info
+       }
+       opsByName["0"] = ops[OP_FALSE]
+       opsByName["TRUE"] = ops[OP_1]
+
+       for i := 0; i <= 255; i++ {
+               if ops[i].name == "" {
+                       ops[i] = opInfo{Op(i), fmt.Sprintf("NOPx%02x", i), opNop}
+                       isExpansion[i] = true
+               }
+       }
+}
+
+// IsPushdata judge instruction whether is a pushdata operation(include opFalse operation)
+func (inst *Instruction) IsPushdata() bool {
+       if reflect.ValueOf(ops[inst.Op].fn) == reflect.ValueOf(ops[OP_1].fn) ||
+               reflect.ValueOf(ops[inst.Op].fn) == reflect.ValueOf(ops[OP_0].fn) {
+               return true
+       }
+
+       return false
+}
diff --git a/vendor/github.com/bytom/protocol/vm/pushdata.go b/vendor/github.com/bytom/protocol/vm/pushdata.go
new file mode 100644 (file)
index 0000000..0edf329
--- /dev/null
@@ -0,0 +1,64 @@
+package vm
+
+import "encoding/binary"
+
+func opFalse(vm *virtualMachine) error {
+       err := vm.applyCost(1)
+       if err != nil {
+               return err
+       }
+       return vm.pushBool(false, false)
+}
+
+func opPushdata(vm *virtualMachine) error {
+       err := vm.applyCost(1)
+       if err != nil {
+               return err
+       }
+       d := make([]byte, len(vm.data))
+       copy(d, vm.data)
+       return vm.push(d, false)
+}
+
+func op1Negate(vm *virtualMachine) error {
+       err := vm.applyCost(1)
+       if err != nil {
+               return err
+       }
+       return vm.pushInt64(-1, false)
+}
+
+func opNop(vm *virtualMachine) error {
+       return vm.applyCost(1)
+}
+
+func PushdataBytes(in []byte) []byte {
+       l := len(in)
+       if l == 0 {
+               return []byte{byte(OP_0)}
+       }
+       if l <= 75 {
+               return append([]byte{byte(OP_DATA_1) + uint8(l) - 1}, in...)
+       }
+       if l < 1<<8 {
+               return append([]byte{byte(OP_PUSHDATA1), uint8(l)}, in...)
+       }
+       if l < 1<<16 {
+               var b [2]byte
+               binary.LittleEndian.PutUint16(b[:], uint16(l))
+               return append([]byte{byte(OP_PUSHDATA2), b[0], b[1]}, in...)
+       }
+       var b [4]byte
+       binary.LittleEndian.PutUint32(b[:], uint32(l))
+       return append([]byte{byte(OP_PUSHDATA4), b[0], b[1], b[2], b[3]}, in...)
+}
+
+func PushdataInt64(n int64) []byte {
+       if n == 0 {
+               return []byte{byte(OP_0)}
+       }
+       if n >= 1 && n <= 16 {
+               return []byte{uint8(OP_1) + uint8(n) - 1}
+       }
+       return PushdataBytes(Int64Bytes(n))
+}
diff --git a/vendor/github.com/bytom/protocol/vm/runlimit.go b/vendor/github.com/bytom/protocol/vm/runlimit.go
new file mode 100644 (file)
index 0000000..c998c55
--- /dev/null
@@ -0,0 +1,252 @@
+package vm
+
+import (
+       "fmt"
+)
+
+const (
+       //base runlimit gas
+       GasBaseStep     int64 = 1
+       GasLowSlowStep  int64 = 2
+       GasSlowStep     int64 = 10
+       GasHighSlowStep int64 = 17
+       GasLowMidStep   int64 = 32
+       GasMidStep      int64 = 33
+       GasHighMidStep  int64 = 41
+       GasLowFastStep  int64 = 296
+       GasFastStep     int64 = 881
+
+       GasData      int64 = 9
+       GasPushData1 int64 = 138
+       GasPushData2 int64 = 32779
+       GasPushData4 int64 = 2147483661
+
+       GasUnderBaseStep     int64 = -4
+       GasUnderLowSlowStep  int64 = -5
+       GasUnderSlowStep     int64 = -7
+       GasUnderHighSlowStep int64 = -8
+       GasUnderLowMidStep   int64 = -14
+       GasUnderMidStep      int64 = -15
+       GasUnderHighMidStep  int64 = -21
+       GasUnderLowFastStep  int64 = -30
+       GasUnderFastStep     int64 = -37
+
+       //mutable factor
+       ConfigLength   int64 = 64
+       ConfigDistance int64 = 8
+       ConfigNumPub   int64 = 3
+       ConfigNumSig   int64 = 2
+
+       //mutable runlimit gas
+       GasMutBaseStep     int64 = 1 + ConfigLength
+       GasMutLowSlowStep  int64 = 9 + ConfigLength
+       GasMutSlowStep     int64 = -6 + ConfigLength
+       GasMutHighSlowStep int64 = -6 - ConfigLength
+       GasMutLowMidStep   int64 = -7 - ConfigLength
+       GasMutMidStep      int64 = -71 - ConfigLength
+       GasMutHighMidStep  int64 = 18 + 2*ConfigLength
+       GasMutLowFastStep  int64 = 26 + 3*ConfigLength
+       GasMutFastStep     int64 = -14 - 2*ConfigLength
+
+       GasDifferBaseStep int64 = -7 + ConfigDistance
+       GasDifferSlowStep int64 = -7 - ConfigDistance
+       GasDifferMidStep  int64 = -12 - ConfigDistance
+       GasDifferFastStep int64 = -28 - ConfigDistance
+
+       GasMultiSig int64 = -63 + 984*ConfigNumPub - 72*ConfigNumSig
+)
+
+type gasInfo struct {
+       Op   Op
+       name string
+       Gas  int64
+}
+
+var (
+       gasop = [256]gasInfo{
+               // data pushing
+               OP_FALSE: {OP_FALSE, "FALSE", GasSlowStep},
+               OP_1:     {OP_1, "1", GasSlowStep},
+
+               // sic: the PUSHDATA ops all share an implementation
+               OP_PUSHDATA1: {OP_PUSHDATA1, "PUSHDATA1", GasPushData1},
+               OP_PUSHDATA2: {OP_PUSHDATA2, "PUSHDATA2", GasPushData2},
+               OP_PUSHDATA4: {OP_PUSHDATA4, "PUSHDATA4", GasPushData4},
+
+               OP_1NEGATE: {OP_1NEGATE, "1NEGATE", GasHighSlowStep},
+
+               OP_NOP: {OP_NOP, "NOP", GasBaseStep},
+
+               // control flow
+               OP_JUMP:   {OP_JUMP, "JUMP", GasBaseStep},
+               OP_JUMPIF: {OP_JUMPIF, "JUMPIF", GasUnderMidStep},
+
+               OP_VERIFY: {OP_VERIFY, "VERIFY", GasUnderHighSlowStep},
+               OP_FAIL:   {OP_FAIL, "FAIL", GasBaseStep},
+
+               OP_TOALTSTACK:   {OP_TOALTSTACK, "TOALTSTACK", GasLowSlowStep},
+               OP_FROMALTSTACK: {OP_FROMALTSTACK, "FROMALTSTACK", GasLowSlowStep},
+               OP_2DROP:        {OP_2DROP, "2DROP", GasMutFastStep},
+               OP_2DUP:         {OP_2DUP, "2DUP", GasMutHighMidStep},
+               OP_3DUP:         {OP_3DUP, "3DUP", GasMutLowFastStep},
+               OP_2OVER:        {OP_2OVER, "2OVER", GasMutHighMidStep},
+               OP_2ROT:         {OP_2ROT, "2ROT", GasLowSlowStep},
+               OP_2SWAP:        {OP_2SWAP, "2SWAP", GasLowSlowStep},
+               OP_IFDUP:        {OP_IFDUP, "IFDUP", GasBaseStep},
+               OP_DEPTH:        {OP_DEPTH, "DEPTH", GasHighSlowStep},
+               OP_DROP:         {OP_DROP, "DROP", GasMutLowMidStep},
+               OP_DUP:          {OP_DUP, "DUP", GasMutLowSlowStep},
+               OP_NIP:          {OP_NIP, "NIP", GasMutLowMidStep},
+               OP_OVER:         {OP_OVER, "OVER", GasMutLowSlowStep},
+               OP_PICK:         {OP_PICK, "PICK", GasMutSlowStep},
+               OP_ROLL:         {OP_ROLL, "ROLL", GasUnderLowMidStep},
+               OP_ROT:          {OP_ROT, "ROT", GasLowSlowStep},
+               OP_SWAP:         {OP_SWAP, "SWAP", GasBaseStep},
+               OP_TUCK:         {OP_TUCK, "TUCK", GasMutLowSlowStep},
+
+               OP_CAT:         {OP_CAT, "CAT", GasUnderBaseStep},
+               OP_SUBSTR:      {OP_SUBSTR, "SUBSTR", GasDifferFastStep},
+               OP_LEFT:        {OP_LEFT, "LEFT", GasDifferMidStep},
+               OP_RIGHT:       {OP_RIGHT, "RIGHT", GasDifferMidStep},
+               OP_SIZE:        {OP_SIZE, "SIZE", GasHighSlowStep},
+               OP_CATPUSHDATA: {OP_CATPUSHDATA, "CATPUSHDATA", GasUnderBaseStep},
+
+               OP_INVERT:      {OP_INVERT, "INVERT", GasMutBaseStep},
+               OP_AND:         {OP_AND, "AND", GasDifferSlowStep},
+               OP_OR:          {OP_OR, "OR", GasDifferBaseStep},
+               OP_XOR:         {OP_XOR, "XOR", GasDifferBaseStep},
+               OP_EQUAL:       {OP_EQUAL, "EQUAL", GasMutHighSlowStep},
+               OP_EQUALVERIFY: {OP_EQUALVERIFY, "EQUALVERIFY", GasMutLowMidStep},
+
+               OP_1ADD:               {OP_1ADD, "1ADD", GasLowSlowStep},
+               OP_1SUB:               {OP_1SUB, "1SUB", GasLowSlowStep},
+               OP_2MUL:               {OP_2MUL, "2MUL", GasLowSlowStep},
+               OP_2DIV:               {OP_2DIV, "2DIV", GasLowSlowStep},
+               OP_NEGATE:             {OP_NEGATE, "NEGATE", GasLowSlowStep},
+               OP_ABS:                {OP_ABS, "ABS", GasLowSlowStep},
+               OP_NOT:                {OP_NOT, "NOT", GasUnderLowSlowStep},
+               OP_0NOTEQUAL:          {OP_0NOTEQUAL, "0NOTEQUAL", GasUnderLowSlowStep},
+               OP_ADD:                {OP_ADD, "ADD", GasUnderLowMidStep},
+               OP_SUB:                {OP_SUB, "SUB", GasUnderLowMidStep},
+               OP_MUL:                {OP_MUL, "MUL", GasUnderLowMidStep},
+               OP_DIV:                {OP_DIV, "DIV", GasUnderLowMidStep},
+               OP_MOD:                {OP_MOD, "MOD", GasUnderLowMidStep},
+               OP_LSHIFT:             {OP_LSHIFT, "LSHIFT", GasUnderLowMidStep},
+               OP_RSHIFT:             {OP_RSHIFT, "RSHIFT", GasUnderLowMidStep},
+               OP_BOOLAND:            {OP_BOOLAND, "BOOLAND", GasUnderSlowStep},
+               OP_BOOLOR:             {OP_BOOLOR, "BOOLOR", GasUnderSlowStep},
+               OP_NUMEQUAL:           {OP_NUMEQUAL, "NUMEQUAL", GasUnderHighMidStep},
+               OP_NUMEQUALVERIFY:     {OP_NUMEQUALVERIFY, "NUMEQUALVERIFY", GasUnderLowFastStep},
+               OP_NUMNOTEQUAL:        {OP_NUMNOTEQUAL, "NUMNOTEQUAL", GasUnderHighMidStep},
+               OP_LESSTHAN:           {OP_LESSTHAN, "LESSTHAN", GasUnderHighMidStep},
+               OP_GREATERTHAN:        {OP_GREATERTHAN, "GREATERTHAN", GasUnderHighMidStep},
+               OP_LESSTHANOREQUAL:    {OP_LESSTHANOREQUAL, "LESSTHANOREQUAL", GasUnderHighMidStep},
+               OP_GREATERTHANOREQUAL: {OP_GREATERTHANOREQUAL, "GREATERTHANOREQUAL", GasUnderHighMidStep},
+               OP_MIN:                {OP_MIN, "MIN", GasUnderLowMidStep},
+               OP_MAX:                {OP_MAX, "MAX", GasUnderLowMidStep},
+               OP_WITHIN:             {OP_WITHIN, "WITHIN", GasUnderFastStep},
+
+               OP_SHA256:        {OP_SHA256, "SHA256", GasLowMidStep},
+               OP_SHA3:          {OP_SHA3, "SHA3", GasLowMidStep},
+               OP_CHECKSIG:      {OP_CHECKSIG, "CHECKSIG", GasFastStep},
+               OP_CHECKMULTISIG: {OP_CHECKMULTISIG, "CHECKMULTISIG", GasMultiSig},
+               OP_TXSIGHASH:     {OP_TXSIGHASH, "TXSIGHASH", GasLowFastStep},
+
+               OP_CHECKOUTPUT: {OP_CHECKOUTPUT, "CHECKOUTPUT", GasMutMidStep},
+               OP_ASSET:       {OP_ASSET, "ASSET", GasHighMidStep},
+               OP_AMOUNT:      {OP_AMOUNT, "AMOUNT", GasHighSlowStep},
+               OP_PROGRAM:     {OP_PROGRAM, "PROGRAM", GasMutLowSlowStep},
+               //OP_MINTIME:     {OP_MINTIME, "MINTIME", GasHighSlowStep},
+               //OP_MAXTIME:     {OP_MAXTIME, "MAXTIME", GasHighSlowStep},
+               //OP_TXDATA:      {OP_TXDATA, "TXDATA", GasHighMidStep},
+               //OP_ENTRYDATA:   {OP_ENTRYDATA, "ENTRYDATA", GasHighMidStep},
+               OP_INDEX:    {OP_INDEX, "INDEX", GasHighSlowStep},
+               OP_ENTRYID:  {OP_ENTRYID, "ENTRYID", GasHighMidStep},
+               OP_OUTPUTID: {OP_OUTPUTID, "OUTPUTID", GasHighMidStep},
+               //OP_NONCE:       {OP_NONCE, "NONCE", GasHighMidStep},
+               OP_BLOCKHEIGHT: {OP_BLOCKHEIGHT, "BLOCKHEIGHT", GasHighSlowStep},
+
+               OP_CHECKPREDICATE: {OP_CHECKPREDICATE, "CHECKPREDICATE", GasMidStep},
+       }
+
+       gasByName map[string]gasInfo
+)
+
+const (
+       GasAmount    int64 = 8
+       GasAsset     int64 = 32
+       GasBoolean   int64 = 1
+       GasHash      int64 = 32
+       GasInteger   int64 = 8
+       GasProgram   int64 = 64
+       GasPublicKey int64 = 32
+       GasSignature int64 = 64
+       GasString    int64 = 32
+       GasTime      int64 = 8
+
+       //push parament factor
+       ContractParams int64 = 9
+       ClauseParams   int64 = 8
+)
+
+var paramGasMap = map[string]int64{
+       "Amount":    GasAmount,
+       "Asset":     GasAsset,
+       "Boolean":   GasBoolean,
+       "Hash":      GasHash,
+       "Integer":   GasInteger,
+       "Program":   GasProgram,
+       "PublicKey": GasPublicKey,
+       "Signature": GasSignature,
+       "String":    GasString,
+       "Time":      GasTime,
+}
+
+func InitGas() {
+       for i := 1; i <= 75; i++ {
+               gasop[i] = gasInfo{Op(i), fmt.Sprintf("DATA_%d", i), GasData + int64(i)}
+       }
+
+       for i := uint8(0); i <= 15; i++ {
+               op := uint8(OP_1) + i
+               gasop[op] = gasInfo{Op(op), fmt.Sprintf("%d", i+1), GasSlowStep}
+       }
+
+       gasByName = make(map[string]gasInfo)
+       for _, info := range gasop {
+               gasByName[info.name] = info
+       }
+       gasByName["0"] = gasop[OP_FALSE]
+       gasByName["TRUE"] = gasop[OP_1]
+
+       gasop[OP_0] = gasop[OP_FALSE]
+       gasop[OP_TRUE] = gasop[OP_1]
+
+       for i := 0; i <= 255; i++ {
+               if gasop[i].name == "" {
+                       gasop[i] = gasInfo{Op(i), fmt.Sprintf("NOPx%02x", i), GasBaseStep}
+               }
+       }
+}
+
+func GetGas(op Op) int64 {
+       return gasop[op].Gas
+}
+
+func GetContractParamGas(typename string) int64 {
+       paramGas, ok := paramGasMap[typename]
+       if !ok {
+               return -1
+       }
+
+       return paramGas + ContractParams
+}
+
+func GetClauseParamGas(typename string) int64 {
+       paramGas, ok := paramGasMap[typename]
+       if !ok {
+               return -1
+       }
+
+       return paramGas + ClauseParams
+}
diff --git a/vendor/github.com/bytom/protocol/vm/splice.go b/vendor/github.com/bytom/protocol/vm/splice.go
new file mode 100644 (file)
index 0000000..b426cb4
--- /dev/null
@@ -0,0 +1,170 @@
+package vm
+
+import "github.com/bytom/math/checked"
+
+func opCat(vm *virtualMachine) error {
+       err := vm.applyCost(4)
+       if err != nil {
+               return err
+       }
+       b, err := vm.pop(true)
+       if err != nil {
+               return err
+       }
+       a, err := vm.pop(true)
+       if err != nil {
+               return err
+       }
+       lens := int64(len(a) + len(b))
+       err = vm.applyCost(lens)
+       if err != nil {
+               return err
+       }
+       vm.deferCost(-lens)
+       err = vm.push(append(a, b...), true)
+       if err != nil {
+               return err
+       }
+       return nil
+}
+
+func opSubstr(vm *virtualMachine) error {
+       err := vm.applyCost(4)
+       if err != nil {
+               return err
+       }
+       size, err := vm.popInt64(true)
+       if err != nil {
+               return err
+       }
+       if size < 0 {
+               return ErrBadValue
+       }
+       err = vm.applyCost(size)
+       if err != nil {
+               return err
+       }
+       vm.deferCost(-size)
+       offset, err := vm.popInt64(true)
+       if err != nil {
+               return err
+       }
+       if offset < 0 {
+               return ErrBadValue
+       }
+       str, err := vm.pop(true)
+       if err != nil {
+               return err
+       }
+       end, ok := checked.AddInt64(offset, size)
+       if !ok || end > int64(len(str)) {
+               return ErrBadValue
+       }
+       err = vm.push(str[offset:end], true)
+       if err != nil {
+               return err
+       }
+       return nil
+}
+
+func opLeft(vm *virtualMachine) error {
+       err := vm.applyCost(4)
+       if err != nil {
+               return err
+       }
+       size, err := vm.popInt64(true)
+       if err != nil {
+               return err
+       }
+       if size < 0 {
+               return ErrBadValue
+       }
+       err = vm.applyCost(size)
+       if err != nil {
+               return err
+       }
+       vm.deferCost(-size)
+       str, err := vm.pop(true)
+       if err != nil {
+               return err
+       }
+       if size > int64(len(str)) {
+               return ErrBadValue
+       }
+       err = vm.push(str[:size], true)
+       if err != nil {
+               return err
+       }
+       return nil
+}
+
+func opRight(vm *virtualMachine) error {
+       err := vm.applyCost(4)
+       if err != nil {
+               return err
+       }
+       size, err := vm.popInt64(true)
+       if err != nil {
+               return err
+       }
+       if size < 0 {
+               return ErrBadValue
+       }
+       err = vm.applyCost(size)
+       if err != nil {
+               return err
+       }
+       vm.deferCost(-size)
+       str, err := vm.pop(true)
+       if err != nil {
+               return err
+       }
+       lstr := int64(len(str))
+       if size > lstr {
+               return ErrBadValue
+       }
+       err = vm.push(str[lstr-size:], true)
+       if err != nil {
+               return err
+       }
+       return nil
+}
+
+func opSize(vm *virtualMachine) error {
+       err := vm.applyCost(1)
+       if err != nil {
+               return err
+       }
+       str, err := vm.top()
+       if err != nil {
+               return err
+       }
+       err = vm.pushInt64(int64(len(str)), true)
+       if err != nil {
+               return err
+       }
+       return nil
+}
+
+func opCatpushdata(vm *virtualMachine) error {
+       err := vm.applyCost(4)
+       if err != nil {
+               return err
+       }
+       b, err := vm.pop(true)
+       if err != nil {
+               return err
+       }
+       a, err := vm.pop(true)
+       if err != nil {
+               return err
+       }
+       lb := len(b)
+       lens := int64(len(a) + lb)
+       err = vm.applyCost(lens)
+       if err != nil {
+               return err
+       }
+       vm.deferCost(-lens)
+       return vm.push(append(a, PushdataBytes(b)...), true)
+}
diff --git a/vendor/github.com/bytom/protocol/vm/stack.go b/vendor/github.com/bytom/protocol/vm/stack.go
new file mode 100644 (file)
index 0000000..0c72755
--- /dev/null
@@ -0,0 +1,312 @@
+package vm
+
+import "github.com/bytom/math/checked"
+
+func opToAltStack(vm *virtualMachine) error {
+       err := vm.applyCost(2)
+       if err != nil {
+               return err
+       }
+       if len(vm.dataStack) == 0 {
+               return ErrDataStackUnderflow
+       }
+       // no standard memory cost accounting here
+       vm.altStack = append(vm.altStack, vm.dataStack[len(vm.dataStack)-1])
+       vm.dataStack = vm.dataStack[:len(vm.dataStack)-1]
+       return nil
+}
+
+func opFromAltStack(vm *virtualMachine) error {
+       err := vm.applyCost(2)
+       if err != nil {
+               return err
+       }
+       if len(vm.altStack) == 0 {
+               return ErrAltStackUnderflow
+       }
+       // no standard memory cost accounting here
+       vm.dataStack = append(vm.dataStack, vm.altStack[len(vm.altStack)-1])
+       vm.altStack = vm.altStack[:len(vm.altStack)-1]
+       return nil
+}
+
+func op2Drop(vm *virtualMachine) error {
+       err := vm.applyCost(2)
+       if err != nil {
+               return err
+       }
+       for i := 0; i < 2; i++ {
+               _, err = vm.pop(false)
+               if err != nil {
+                       return err
+               }
+       }
+       return nil
+}
+
+func op2Dup(vm *virtualMachine) error {
+       return nDup(vm, 2)
+}
+
+func op3Dup(vm *virtualMachine) error {
+       return nDup(vm, 3)
+}
+
+func nDup(vm *virtualMachine, n int) error {
+       err := vm.applyCost(int64(n))
+       if err != nil {
+               return err
+       }
+       if len(vm.dataStack) < n {
+               return ErrDataStackUnderflow
+       }
+       for i := 0; i < n; i++ {
+               err = vm.push(vm.dataStack[len(vm.dataStack)-n], false)
+               if err != nil {
+                       return err
+               }
+       }
+       return nil
+}
+
+func op2Over(vm *virtualMachine) error {
+       err := vm.applyCost(2)
+       if err != nil {
+               return err
+       }
+       if len(vm.dataStack) < 4 {
+               return ErrDataStackUnderflow
+       }
+       for i := 0; i < 2; i++ {
+               err = vm.push(vm.dataStack[len(vm.dataStack)-4], false)
+               if err != nil {
+                       return err
+               }
+       }
+       return nil
+}
+
+func op2Rot(vm *virtualMachine) error {
+       err := vm.applyCost(2)
+       if err != nil {
+               return err
+       }
+       if len(vm.dataStack) < 6 {
+               return ErrDataStackUnderflow
+       }
+       newStack := make([][]byte, 0, len(vm.dataStack))
+       newStack = append(newStack, vm.dataStack[:len(vm.dataStack)-6]...)
+       newStack = append(newStack, vm.dataStack[len(vm.dataStack)-4:]...)
+       newStack = append(newStack, vm.dataStack[len(vm.dataStack)-6])
+       newStack = append(newStack, vm.dataStack[len(vm.dataStack)-5])
+       vm.dataStack = newStack
+       return nil
+}
+
+func op2Swap(vm *virtualMachine) error {
+       err := vm.applyCost(2)
+       if err != nil {
+               return err
+       }
+       if len(vm.dataStack) < 4 {
+               return ErrDataStackUnderflow
+       }
+       newStack := make([][]byte, 0, len(vm.dataStack))
+       newStack = append(newStack, vm.dataStack[:len(vm.dataStack)-4]...)
+       newStack = append(newStack, vm.dataStack[len(vm.dataStack)-2:]...)
+       newStack = append(newStack, vm.dataStack[len(vm.dataStack)-4])
+       newStack = append(newStack, vm.dataStack[len(vm.dataStack)-3])
+       vm.dataStack = newStack
+       return nil
+}
+
+func opIfDup(vm *virtualMachine) error {
+       err := vm.applyCost(1)
+       if err != nil {
+               return err
+       }
+       item, err := vm.top()
+       if err != nil {
+               return err
+       }
+       if AsBool(item) {
+               err = vm.push(item, false)
+               if err != nil {
+                       return err
+               }
+       }
+       return nil
+}
+
+func opDepth(vm *virtualMachine) error {
+       err := vm.applyCost(1)
+       if err != nil {
+               return err
+       }
+       err = vm.pushInt64(int64(len(vm.dataStack)), false)
+       if err != nil {
+               return err
+       }
+       return nil
+}
+
+func opDrop(vm *virtualMachine) error {
+       err := vm.applyCost(1)
+       if err != nil {
+               return err
+       }
+       _, err = vm.pop(false)
+       if err != nil {
+               return err
+       }
+       return nil
+}
+
+func opDup(vm *virtualMachine) error {
+       return nDup(vm, 1)
+}
+
+func opNip(vm *virtualMachine) error {
+       err := vm.applyCost(1)
+       if err != nil {
+               return err
+       }
+       top, err := vm.top()
+       if err != nil {
+               return err
+       }
+       // temporarily pop off the top value with no standard memory accounting
+       vm.dataStack = vm.dataStack[:len(vm.dataStack)-1]
+       _, err = vm.pop(false)
+       if err != nil {
+               return err
+       }
+       // now put the top item back
+       vm.dataStack = append(vm.dataStack, top)
+       return nil
+}
+
+func opOver(vm *virtualMachine) error {
+       err := vm.applyCost(1)
+       if err != nil {
+               return err
+       }
+       if len(vm.dataStack) < 2 {
+               return ErrDataStackUnderflow
+       }
+       err = vm.push(vm.dataStack[len(vm.dataStack)-2], false)
+       if err != nil {
+               return err
+       }
+       return nil
+}
+
+func opPick(vm *virtualMachine) error {
+       err := vm.applyCost(2)
+       if err != nil {
+               return err
+       }
+       n, err := vm.popInt64(false)
+       if err != nil {
+               return err
+       }
+       if n < 0 {
+               return ErrBadValue
+       }
+       off, ok := checked.AddInt64(n, 1)
+       if !ok {
+               return ErrBadValue
+       }
+       if int64(len(vm.dataStack)) < off {
+               return ErrDataStackUnderflow
+       }
+       err = vm.push(vm.dataStack[int64(len(vm.dataStack))-(off)], false)
+       if err != nil {
+               return err
+       }
+       return nil
+}
+
+func opRoll(vm *virtualMachine) error {
+       err := vm.applyCost(2)
+       if err != nil {
+               return err
+       }
+       n, err := vm.popInt64(false)
+       if err != nil {
+               return err
+       }
+       if n < 0 {
+               return ErrBadValue
+       }
+       off, ok := checked.AddInt64(n, 1)
+       if !ok {
+               return ErrBadValue
+       }
+       err = rot(vm, off)
+       if err != nil {
+               return err
+       }
+       return nil
+}
+
+func opRot(vm *virtualMachine) error {
+       err := vm.applyCost(2)
+       if err != nil {
+               return err
+       }
+       err = rot(vm, 3)
+       if err != nil {
+               return err
+       }
+       return nil
+}
+
+func rot(vm *virtualMachine, n int64) error {
+       if n < 1 {
+               return ErrBadValue
+       }
+       if int64(len(vm.dataStack)) < n {
+               return ErrDataStackUnderflow
+       }
+       index := int64(len(vm.dataStack)) - n
+       newStack := make([][]byte, 0, len(vm.dataStack))
+       newStack = append(newStack, vm.dataStack[:index]...)
+       newStack = append(newStack, vm.dataStack[index+1:]...)
+       newStack = append(newStack, vm.dataStack[index])
+       vm.dataStack = newStack
+       return nil
+}
+
+func opSwap(vm *virtualMachine) error {
+       err := vm.applyCost(1)
+       if err != nil {
+               return err
+       }
+       l := len(vm.dataStack)
+       if l < 2 {
+               return ErrDataStackUnderflow
+       }
+       vm.dataStack[l-1], vm.dataStack[l-2] = vm.dataStack[l-2], vm.dataStack[l-1]
+       return nil
+}
+
+func opTuck(vm *virtualMachine) error {
+       err := vm.applyCost(1)
+       if err != nil {
+               return err
+       }
+       if len(vm.dataStack) < 2 {
+               return ErrDataStackUnderflow
+       }
+       top2 := make([][]byte, 2)
+       copy(top2, vm.dataStack[len(vm.dataStack)-2:])
+       // temporarily remove the top two items without standard memory accounting
+       vm.dataStack = vm.dataStack[:len(vm.dataStack)-2]
+       err = vm.push(top2[1], false)
+       if err != nil {
+               return err
+       }
+       vm.dataStack = append(vm.dataStack, top2...)
+       return nil
+}
diff --git a/vendor/github.com/bytom/protocol/vm/types.go b/vendor/github.com/bytom/protocol/vm/types.go
new file mode 100644 (file)
index 0000000..b92381d
--- /dev/null
@@ -0,0 +1,52 @@
+package vm
+
+import "encoding/binary"
+
+var trueBytes = []byte{1}
+
+func BoolBytes(b bool) (result []byte) {
+       if b {
+               return trueBytes
+       }
+       return []byte{}
+}
+
+func AsBool(bytes []byte) bool {
+       for _, b := range bytes {
+               if b != 0 {
+                       return true
+               }
+       }
+       return false
+}
+
+func Int64Bytes(n int64) []byte {
+       if n == 0 {
+               return []byte{}
+       }
+       res := make([]byte, 8)
+       // converting int64 to uint64 is a safe operation that
+       // preserves all data
+       binary.LittleEndian.PutUint64(res, uint64(n))
+       for len(res) > 0 && res[len(res)-1] == 0 {
+               res = res[:len(res)-1]
+       }
+       return res
+}
+
+func AsInt64(b []byte) (int64, error) {
+       if len(b) == 0 {
+               return 0, nil
+       }
+       if len(b) > 8 {
+               return 0, ErrBadValue
+       }
+
+       var padded [8]byte
+       copy(padded[:], b)
+
+       res := binary.LittleEndian.Uint64(padded[:])
+       // converting uint64 to int64 is a safe operation that
+       // preserves all data
+       return int64(res), nil
+}
diff --git a/vendor/github.com/bytom/protocol/vm/vm.go b/vendor/github.com/bytom/protocol/vm/vm.go
new file mode 100644 (file)
index 0000000..c9f8e13
--- /dev/null
@@ -0,0 +1,232 @@
+package vm
+
+import (
+       "encoding/hex"
+       "fmt"
+       "io"
+       "strings"
+
+       "github.com/bytom/errors"
+)
+
+type virtualMachine struct {
+       context *Context
+
+       program      []byte // the program currently executing
+       pc, nextPC   uint32
+       runLimit     int64
+       deferredCost int64
+
+       expansionReserved bool
+
+       // Stores the data parsed out of an opcode. Used as input to
+       // data-pushing opcodes.
+       data []byte
+
+       // CHECKPREDICATE spawns a child vm with depth+1
+       depth int
+
+       // In each of these stacks, stack[len(stack)-1] is the top element.
+       dataStack [][]byte
+       altStack  [][]byte
+}
+
+// TraceOut - if non-nil - will receive trace output during
+// execution.
+var TraceOut io.Writer
+
+// Verify program by running VM
+func Verify(context *Context, gasLimit int64) (gasLeft int64, err error) {
+       defer func() {
+               if r := recover(); r != nil {
+                       if rErr, ok := r.(error); ok {
+                               err = errors.Sub(ErrUnexpected, rErr)
+                       } else {
+                               err = errors.Wrap(ErrUnexpected, r)
+                       }
+               }
+       }()
+
+       if context.VMVersion != 1 {
+               return gasLimit, ErrUnsupportedVM
+       }
+
+       vm := &virtualMachine{
+               expansionReserved: context.TxVersion != nil && *context.TxVersion == 1,
+               program:           context.Code,
+               runLimit:          gasLimit,
+               context:           context,
+       }
+
+       args := context.Arguments
+       for i, arg := range args {
+               err = vm.push(arg, false)
+               if err != nil {
+                       return vm.runLimit, errors.Wrapf(err, "pushing initial argument %d", i)
+               }
+       }
+
+       err = vm.run()
+       if err == nil && vm.falseResult() {
+               err = ErrFalseVMResult
+       }
+
+       return vm.runLimit, wrapErr(err, vm, args)
+}
+
+// falseResult returns true iff the stack is empty or the top
+// item is false
+func (vm *virtualMachine) falseResult() bool {
+       return len(vm.dataStack) == 0 || !AsBool(vm.dataStack[len(vm.dataStack)-1])
+}
+
+func (vm *virtualMachine) run() error {
+       for vm.pc = 0; vm.pc < uint32(len(vm.program)); { // handle vm.pc updates in step
+               err := vm.step()
+               if err != nil {
+                       return err
+               }
+       }
+       return nil
+}
+
+func (vm *virtualMachine) step() error {
+       inst, err := ParseOp(vm.program, vm.pc)
+       if err != nil {
+               return err
+       }
+
+       vm.nextPC = vm.pc + inst.Len
+
+       if TraceOut != nil {
+               opname := inst.Op.String()
+               fmt.Fprintf(TraceOut, "vm %d pc %d limit %d %s", vm.depth, vm.pc, vm.runLimit, opname)
+               if len(inst.Data) > 0 {
+                       fmt.Fprintf(TraceOut, " %x", inst.Data)
+               }
+               fmt.Fprint(TraceOut, "\n")
+       }
+
+       if isExpansion[inst.Op] {
+               if vm.expansionReserved {
+                       return ErrDisallowedOpcode
+               }
+               vm.pc = vm.nextPC
+               return vm.applyCost(1)
+       }
+
+       vm.deferredCost = 0
+       vm.data = inst.Data
+       err = ops[inst.Op].fn(vm)
+       if err != nil {
+               return err
+       }
+       err = vm.applyCost(vm.deferredCost)
+       if err != nil {
+               return err
+       }
+       vm.pc = vm.nextPC
+
+       if TraceOut != nil {
+               for i := len(vm.dataStack) - 1; i >= 0; i-- {
+                       fmt.Fprintf(TraceOut, "  stack %d: %x\n", len(vm.dataStack)-1-i, vm.dataStack[i])
+               }
+       }
+
+       return nil
+}
+
+func (vm *virtualMachine) push(data []byte, deferred bool) error {
+       cost := 8 + int64(len(data))
+       if deferred {
+               vm.deferCost(cost)
+       } else {
+               err := vm.applyCost(cost)
+               if err != nil {
+                       return err
+               }
+       }
+       vm.dataStack = append(vm.dataStack, data)
+       return nil
+}
+
+func (vm *virtualMachine) pushBool(b bool, deferred bool) error {
+       return vm.push(BoolBytes(b), deferred)
+}
+
+func (vm *virtualMachine) pushInt64(n int64, deferred bool) error {
+       return vm.push(Int64Bytes(n), deferred)
+}
+
+func (vm *virtualMachine) pop(deferred bool) ([]byte, error) {
+       if len(vm.dataStack) == 0 {
+               return nil, ErrDataStackUnderflow
+       }
+       res := vm.dataStack[len(vm.dataStack)-1]
+       vm.dataStack = vm.dataStack[:len(vm.dataStack)-1]
+
+       cost := 8 + int64(len(res))
+       if deferred {
+               vm.deferCost(-cost)
+       } else {
+               vm.runLimit += cost
+       }
+
+       return res, nil
+}
+
+func (vm *virtualMachine) popInt64(deferred bool) (int64, error) {
+       bytes, err := vm.pop(deferred)
+       if err != nil {
+               return 0, err
+       }
+       n, err := AsInt64(bytes)
+       return n, err
+}
+
+func (vm *virtualMachine) top() ([]byte, error) {
+       if len(vm.dataStack) == 0 {
+               return nil, ErrDataStackUnderflow
+       }
+       return vm.dataStack[len(vm.dataStack)-1], nil
+}
+
+// positive cost decreases runlimit, negative cost increases it
+func (vm *virtualMachine) applyCost(n int64) error {
+       if n > vm.runLimit {
+               vm.runLimit = 0
+               return ErrRunLimitExceeded
+       }
+       vm.runLimit -= n
+       return nil
+}
+
+func (vm *virtualMachine) deferCost(n int64) {
+       vm.deferredCost += n
+}
+
+func stackCost(stack [][]byte) int64 {
+       result := int64(8 * len(stack))
+       for _, item := range stack {
+               result += int64(len(item))
+       }
+       return result
+}
+
+func wrapErr(err error, vm *virtualMachine, args [][]byte) error {
+       if err == nil {
+               return nil
+       }
+
+       dis, errDis := Disassemble(vm.program)
+       if errDis != nil {
+               dis = "???"
+       }
+
+       dataArgs := make([]string, 0, len(args))
+       for _, a := range args {
+               dataArgs = append(dataArgs, hex.EncodeToString(a))
+       }
+
+       return errors.Wrap(err, fmt.Sprintf("%s [prog %x = %s; args %s]", err.Error(), vm.program, dis, strings.Join(dataArgs, " ")))
+}
diff --git a/vendor/github.com/bytom/protocol/vm/vmutil/builder.go b/vendor/github.com/bytom/protocol/vm/vmutil/builder.go
new file mode 100644 (file)
index 0000000..8f57cd1
--- /dev/null
@@ -0,0 +1,114 @@
+package vmutil
+
+import (
+       "encoding/binary"
+
+       "github.com/bytom/errors"
+       "github.com/bytom/protocol/vm"
+)
+
+type Builder struct {
+       program     []byte
+       jumpCounter int
+
+       // Maps a jump target number to its absolute address.
+       jumpAddr map[int]uint32
+
+       // Maps a jump target number to the list of places where its
+       // absolute address must be filled in once known.
+       jumpPlaceholders map[int][]int
+}
+
+func NewBuilder() *Builder {
+       return &Builder{
+               jumpAddr:         make(map[int]uint32),
+               jumpPlaceholders: make(map[int][]int),
+       }
+}
+
+// AddInt64 adds a pushdata instruction for an integer value.
+func (b *Builder) AddInt64(n int64) *Builder {
+       b.program = append(b.program, vm.PushdataInt64(n)...)
+       return b
+}
+
+// AddData adds a pushdata instruction for a given byte string.
+func (b *Builder) AddData(data []byte) *Builder {
+       b.program = append(b.program, vm.PushdataBytes(data)...)
+       return b
+}
+
+// AddRawBytes simply appends the given bytes to the program. (It does
+// not introduce a pushdata opcode.)
+func (b *Builder) AddRawBytes(data []byte) *Builder {
+       b.program = append(b.program, data...)
+       return b
+}
+
+// AddOp adds the given opcode to the program.
+func (b *Builder) AddOp(op vm.Op) *Builder {
+       b.program = append(b.program, byte(op))
+       return b
+}
+
+// NewJumpTarget allocates a number that can be used as a jump target
+// in AddJump and AddJumpIf. Call SetJumpTarget to associate the
+// number with a program location.
+func (b *Builder) NewJumpTarget() int {
+       b.jumpCounter++
+       return b.jumpCounter
+}
+
+// AddJump adds a JUMP opcode whose target is the given target
+// number. The actual program location of the target does not need to
+// be known yet, as long as SetJumpTarget is called before Build.
+func (b *Builder) AddJump(target int) *Builder {
+       return b.addJump(vm.OP_JUMP, target)
+}
+
+// AddJump adds a JUMPIF opcode whose target is the given target
+// number. The actual program location of the target does not need to
+// be known yet, as long as SetJumpTarget is called before Build.
+func (b *Builder) AddJumpIf(target int) *Builder {
+       return b.addJump(vm.OP_JUMPIF, target)
+}
+
+func (b *Builder) addJump(op vm.Op, target int) *Builder {
+       b.AddOp(op)
+       b.jumpPlaceholders[target] = append(b.jumpPlaceholders[target], len(b.program))
+       b.AddRawBytes([]byte{0, 0, 0, 0})
+       return b
+}
+
+// SetJumpTarget associates the given jump-target number with the
+// current position in the program - namely, the program's length,
+// such that the first instruction executed by a jump using this
+// target will be whatever instruction is added next. It is legal for
+// SetJumpTarget to be called at the end of the program, causing jumps
+// using that target to fall off the end. There must be a call to
+// SetJumpTarget for every jump target used before any call to Build.
+func (b *Builder) SetJumpTarget(target int) *Builder {
+       b.jumpAddr[target] = uint32(len(b.program))
+       return b
+}
+
+var ErrUnresolvedJump = errors.New("unresolved jump target")
+
+// Build produces the bytecode of the program. It first resolves any
+// jumps in the program by filling in the addresses of their
+// targets. This requires SetJumpTarget to be called prior to Build
+// for each jump target used (in a call to AddJump or AddJumpIf). If
+// any target's address hasn't been set in this way, this function
+// produces ErrUnresolvedJump. There are no other error conditions.
+func (b *Builder) Build() ([]byte, error) {
+       for target, placeholders := range b.jumpPlaceholders {
+               addr, ok := b.jumpAddr[target]
+               if !ok {
+                       return nil, errors.Wrapf(ErrUnresolvedJump, "target %d", target)
+               }
+               for _, placeholder := range placeholders {
+                       binary.LittleEndian.PutUint32(b.program[placeholder:placeholder+4], addr)
+               }
+       }
+       return b.program, nil
+}
diff --git a/vendor/github.com/bytom/protocol/vm/vmutil/script.go b/vendor/github.com/bytom/protocol/vm/vmutil/script.go
new file mode 100644 (file)
index 0000000..314c4c6
--- /dev/null
@@ -0,0 +1,160 @@
+package vmutil
+
+import (
+       "github.com/bytom/crypto/ed25519"
+       "github.com/bytom/errors"
+       "github.com/bytom/protocol/vm"
+)
+
+// pre-define errors
+var (
+       ErrBadValue       = errors.New("bad value")
+       ErrMultisigFormat = errors.New("bad multisig program format")
+)
+
+// IsUnspendable checks if a contorl program is absolute failed
+func IsUnspendable(prog []byte) bool {
+       return len(prog) > 0 && prog[0] == byte(vm.OP_FAIL)
+}
+
+func (b *Builder) addP2SPMultiSig(pubkeys []ed25519.PublicKey, nrequired int) error {
+       if err := checkMultiSigParams(int64(nrequired), int64(len(pubkeys))); err != nil {
+               return err
+       }
+
+       b.AddOp(vm.OP_TXSIGHASH) // stack is now [... NARGS SIG SIG SIG PREDICATEHASH]
+       for _, p := range pubkeys {
+               b.AddData(p)
+       }
+       b.AddInt64(int64(nrequired))    // stack is now [... SIG SIG SIG PREDICATEHASH PUB PUB PUB M]
+       b.AddInt64(int64(len(pubkeys))) // stack is now [... SIG SIG SIG PREDICATEHASH PUB PUB PUB M N]
+       b.AddOp(vm.OP_CHECKMULTISIG)    // stack is now [... NARGS]
+       return nil
+}
+
+// DefaultCoinbaseProgram generates the script for contorl coinbase output
+func DefaultCoinbaseProgram() ([]byte, error) {
+       builder := NewBuilder()
+       builder.AddOp(vm.OP_TRUE)
+       return builder.Build()
+}
+
+// P2WPKHProgram return the segwit pay to public key hash
+func P2WPKHProgram(hash []byte) ([]byte, error) {
+       builder := NewBuilder()
+       builder.AddInt64(0)
+       builder.AddData(hash)
+       return builder.Build()
+}
+
+// P2WSHProgram return the segwit pay to script hash
+func P2WSHProgram(hash []byte) ([]byte, error) {
+       builder := NewBuilder()
+       builder.AddInt64(0)
+       builder.AddData(hash)
+       return builder.Build()
+}
+
+// RetireProgram generates the script for retire output
+func RetireProgram(comment []byte) ([]byte, error) {
+       builder := NewBuilder()
+       builder.AddOp(vm.OP_FAIL)
+       if len(comment) != 0 {
+               builder.AddData(comment)
+       }
+       return builder.Build()
+}
+
+// P2PKHSigProgram generates the script for control with pubkey hash
+func P2PKHSigProgram(pubkeyHash []byte) ([]byte, error) {
+       builder := NewBuilder()
+       builder.AddOp(vm.OP_DUP)
+       builder.AddOp(vm.OP_HASH160)
+       builder.AddData(pubkeyHash)
+       builder.AddOp(vm.OP_EQUALVERIFY)
+       builder.AddOp(vm.OP_TXSIGHASH)
+       builder.AddOp(vm.OP_SWAP)
+       builder.AddOp(vm.OP_CHECKSIG)
+       return builder.Build()
+}
+
+// P2SHProgram generates the script for control with script hash
+func P2SHProgram(scriptHash []byte) ([]byte, error) {
+       builder := NewBuilder()
+       builder.AddOp(vm.OP_DUP)
+       builder.AddOp(vm.OP_SHA3)
+       builder.AddData(scriptHash)
+       builder.AddOp(vm.OP_EQUALVERIFY)
+       builder.AddInt64(-1)
+       builder.AddOp(vm.OP_SWAP)
+       builder.AddInt64(0)
+       builder.AddOp(vm.OP_CHECKPREDICATE)
+       return builder.Build()
+}
+
+// P2SPMultiSigProgram generates the script for contorl transaction output
+func P2SPMultiSigProgram(pubkeys []ed25519.PublicKey, nrequired int) ([]byte, error) {
+       builder := NewBuilder()
+       if err := builder.addP2SPMultiSig(pubkeys, nrequired); err != nil {
+               return nil, err
+       }
+       return builder.Build()
+}
+
+// ParseP2SPMultiSigProgram is unknow for us yet
+func ParseP2SPMultiSigProgram(program []byte) ([]ed25519.PublicKey, int, error) {
+       pops, err := vm.ParseProgram(program)
+       if err != nil {
+               return nil, 0, err
+       }
+       if len(pops) < 11 {
+               return nil, 0, vm.ErrShortProgram
+       }
+
+       // Count all instructions backwards from the end in case there are
+       // extra instructions at the beginning of the program (like a
+       // <pushdata> DROP).
+
+       npubkeys, err := vm.AsInt64(pops[len(pops)-6].Data)
+       if err != nil {
+               return nil, 0, err
+       }
+       if int(npubkeys) > len(pops)-10 {
+               return nil, 0, vm.ErrShortProgram
+       }
+       nrequired, err := vm.AsInt64(pops[len(pops)-7].Data)
+       if err != nil {
+               return nil, 0, err
+       }
+       err = checkMultiSigParams(nrequired, npubkeys)
+       if err != nil {
+               return nil, 0, err
+       }
+
+       firstPubkeyIndex := len(pops) - 7 - int(npubkeys)
+
+       pubkeys := make([]ed25519.PublicKey, 0, npubkeys)
+       for i := firstPubkeyIndex; i < firstPubkeyIndex+int(npubkeys); i++ {
+               if len(pops[i].Data) != ed25519.PublicKeySize {
+                       return nil, 0, err
+               }
+               pubkeys = append(pubkeys, ed25519.PublicKey(pops[i].Data))
+       }
+       return pubkeys, int(nrequired), nil
+}
+
+func checkMultiSigParams(nrequired, npubkeys int64) error {
+       if nrequired < 0 {
+               return errors.WithDetail(ErrBadValue, "negative quorum")
+       }
+       if npubkeys < 0 {
+               return errors.WithDetail(ErrBadValue, "negative pubkey count")
+       }
+       if nrequired > npubkeys {
+               return errors.WithDetail(ErrBadValue, "quorum too big")
+       }
+       if nrequired == 0 && npubkeys > 0 {
+               return errors.WithDetail(ErrBadValue, "quorum empty with non-empty pubkey list")
+       }
+       return nil
+}
diff --git a/vendor/github.com/golang/protobuf/LICENSE b/vendor/github.com/golang/protobuf/LICENSE
new file mode 100644 (file)
index 0000000..1b1b192
--- /dev/null
@@ -0,0 +1,31 @@
+Go support for Protocol Buffers - Google's data interchange format
+
+Copyright 2010 The Go Authors.  All rights reserved.
+https://github.com/golang/protobuf
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+    * Redistributions of source code must retain the above copyright
+notice, this list of conditions and the following disclaimer.
+    * Redistributions in binary form must reproduce the above
+copyright notice, this list of conditions and the following disclaimer
+in the documentation and/or other materials provided with the
+distribution.
+    * Neither the name of Google Inc. nor the names of its
+contributors may be used to endorse or promote products derived from
+this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
diff --git a/vendor/github.com/golang/protobuf/proto/Makefile b/vendor/github.com/golang/protobuf/proto/Makefile
new file mode 100644 (file)
index 0000000..e2e0651
--- /dev/null
@@ -0,0 +1,43 @@
+# Go support for Protocol Buffers - Google's data interchange format
+#
+# Copyright 2010 The Go Authors.  All rights reserved.
+# https://github.com/golang/protobuf
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+#     * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#     * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+#     * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+install:
+       go install
+
+test: install generate-test-pbs
+       go test
+
+
+generate-test-pbs:
+       make install
+       make -C testdata
+       protoc --go_out=Mtestdata/test.proto=github.com/golang/protobuf/proto/testdata,Mgoogle/protobuf/any.proto=github.com/golang/protobuf/ptypes/any:. proto3_proto/proto3.proto
+       make
diff --git a/vendor/github.com/golang/protobuf/proto/clone.go b/vendor/github.com/golang/protobuf/proto/clone.go
new file mode 100644 (file)
index 0000000..e392575
--- /dev/null
@@ -0,0 +1,229 @@
+// Go support for Protocol Buffers - Google's data interchange format
+//
+// Copyright 2011 The Go Authors.  All rights reserved.
+// https://github.com/golang/protobuf
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Protocol buffer deep copy and merge.
+// TODO: RawMessage.
+
+package proto
+
+import (
+       "log"
+       "reflect"
+       "strings"
+)
+
+// Clone returns a deep copy of a protocol buffer.
+func Clone(pb Message) Message {
+       in := reflect.ValueOf(pb)
+       if in.IsNil() {
+               return pb
+       }
+
+       out := reflect.New(in.Type().Elem())
+       // out is empty so a merge is a deep copy.
+       mergeStruct(out.Elem(), in.Elem())
+       return out.Interface().(Message)
+}
+
+// Merge merges src into dst.
+// Required and optional fields that are set in src will be set to that value in dst.
+// Elements of repeated fields will be appended.
+// Merge panics if src and dst are not the same type, or if dst is nil.
+func Merge(dst, src Message) {
+       in := reflect.ValueOf(src)
+       out := reflect.ValueOf(dst)
+       if out.IsNil() {
+               panic("proto: nil destination")
+       }
+       if in.Type() != out.Type() {
+               // Explicit test prior to mergeStruct so that mistyped nils will fail
+               panic("proto: type mismatch")
+       }
+       if in.IsNil() {
+               // Merging nil into non-nil is a quiet no-op
+               return
+       }
+       mergeStruct(out.Elem(), in.Elem())
+}
+
+func mergeStruct(out, in reflect.Value) {
+       sprop := GetProperties(in.Type())
+       for i := 0; i < in.NumField(); i++ {
+               f := in.Type().Field(i)
+               if strings.HasPrefix(f.Name, "XXX_") {
+                       continue
+               }
+               mergeAny(out.Field(i), in.Field(i), false, sprop.Prop[i])
+       }
+
+       if emIn, ok := extendable(in.Addr().Interface()); ok {
+               emOut, _ := extendable(out.Addr().Interface())
+               mIn, muIn := emIn.extensionsRead()
+               if mIn != nil {
+                       mOut := emOut.extensionsWrite()
+                       muIn.Lock()
+                       mergeExtension(mOut, mIn)
+                       muIn.Unlock()
+               }
+       }
+
+       uf := in.FieldByName("XXX_unrecognized")
+       if !uf.IsValid() {
+               return
+       }
+       uin := uf.Bytes()
+       if len(uin) > 0 {
+               out.FieldByName("XXX_unrecognized").SetBytes(append([]byte(nil), uin...))
+       }
+}
+
+// mergeAny performs a merge between two values of the same type.
+// viaPtr indicates whether the values were indirected through a pointer (implying proto2).
+// prop is set if this is a struct field (it may be nil).
+func mergeAny(out, in reflect.Value, viaPtr bool, prop *Properties) {
+       if in.Type() == protoMessageType {
+               if !in.IsNil() {
+                       if out.IsNil() {
+                               out.Set(reflect.ValueOf(Clone(in.Interface().(Message))))
+                       } else {
+                               Merge(out.Interface().(Message), in.Interface().(Message))
+                       }
+               }
+               return
+       }
+       switch in.Kind() {
+       case reflect.Bool, reflect.Float32, reflect.Float64, reflect.Int32, reflect.Int64,
+               reflect.String, reflect.Uint32, reflect.Uint64:
+               if !viaPtr && isProto3Zero(in) {
+                       return
+               }
+               out.Set(in)
+       case reflect.Interface:
+               // Probably a oneof field; copy non-nil values.
+               if in.IsNil() {
+                       return
+               }
+               // Allocate destination if it is not set, or set to a different type.
+               // Otherwise we will merge as normal.
+               if out.IsNil() || out.Elem().Type() != in.Elem().Type() {
+                       out.Set(reflect.New(in.Elem().Elem().Type())) // interface -> *T -> T -> new(T)
+               }
+               mergeAny(out.Elem(), in.Elem(), false, nil)
+       case reflect.Map:
+               if in.Len() == 0 {
+                       return
+               }
+               if out.IsNil() {
+                       out.Set(reflect.MakeMap(in.Type()))
+               }
+               // For maps with value types of *T or []byte we need to deep copy each value.
+               elemKind := in.Type().Elem().Kind()
+               for _, key := range in.MapKeys() {
+                       var val reflect.Value
+                       switch elemKind {
+                       case reflect.Ptr:
+                               val = reflect.New(in.Type().Elem().Elem())
+                               mergeAny(val, in.MapIndex(key), false, nil)
+                       case reflect.Slice:
+                               val = in.MapIndex(key)
+                               val = reflect.ValueOf(append([]byte{}, val.Bytes()...))
+                       default:
+                               val = in.MapIndex(key)
+                       }
+                       out.SetMapIndex(key, val)
+               }
+       case reflect.Ptr:
+               if in.IsNil() {
+                       return
+               }
+               if out.IsNil() {
+                       out.Set(reflect.New(in.Elem().Type()))
+               }
+               mergeAny(out.Elem(), in.Elem(), true, nil)
+       case reflect.Slice:
+               if in.IsNil() {
+                       return
+               }
+               if in.Type().Elem().Kind() == reflect.Uint8 {
+                       // []byte is a scalar bytes field, not a repeated field.
+
+                       // Edge case: if this is in a proto3 message, a zero length
+                       // bytes field is considered the zero value, and should not
+                       // be merged.
+                       if prop != nil && prop.proto3 && in.Len() == 0 {
+                               return
+                       }
+
+                       // Make a deep copy.
+                       // Append to []byte{} instead of []byte(nil) so that we never end up
+                       // with a nil result.
+                       out.SetBytes(append([]byte{}, in.Bytes()...))
+                       return
+               }
+               n := in.Len()
+               if out.IsNil() {
+                       out.Set(reflect.MakeSlice(in.Type(), 0, n))
+               }
+               switch in.Type().Elem().Kind() {
+               case reflect.Bool, reflect.Float32, reflect.Float64, reflect.Int32, reflect.Int64,
+                       reflect.String, reflect.Uint32, reflect.Uint64:
+                       out.Set(reflect.AppendSlice(out, in))
+               default:
+                       for i := 0; i < n; i++ {
+                               x := reflect.Indirect(reflect.New(in.Type().Elem()))
+                               mergeAny(x, in.Index(i), false, nil)
+                               out.Set(reflect.Append(out, x))
+                       }
+               }
+       case reflect.Struct:
+               mergeStruct(out, in)
+       default:
+               // unknown type, so not a protocol buffer
+               log.Printf("proto: don't know how to copy %v", in)
+       }
+}
+
+func mergeExtension(out, in map[int32]Extension) {
+       for extNum, eIn := range in {
+               eOut := Extension{desc: eIn.desc}
+               if eIn.value != nil {
+                       v := reflect.New(reflect.TypeOf(eIn.value)).Elem()
+                       mergeAny(v, reflect.ValueOf(eIn.value), false, nil)
+                       eOut.value = v.Interface()
+               }
+               if eIn.enc != nil {
+                       eOut.enc = make([]byte, len(eIn.enc))
+                       copy(eOut.enc, eIn.enc)
+               }
+
+               out[extNum] = eOut
+       }
+}
diff --git a/vendor/github.com/golang/protobuf/proto/decode.go b/vendor/github.com/golang/protobuf/proto/decode.go
new file mode 100644 (file)
index 0000000..aa20729
--- /dev/null
@@ -0,0 +1,970 @@
+// Go support for Protocol Buffers - Google's data interchange format
+//
+// Copyright 2010 The Go Authors.  All rights reserved.
+// https://github.com/golang/protobuf
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+package proto
+
+/*
+ * Routines for decoding protocol buffer data to construct in-memory representations.
+ */
+
+import (
+       "errors"
+       "fmt"
+       "io"
+       "os"
+       "reflect"
+)
+
+// errOverflow is returned when an integer is too large to be represented.
+var errOverflow = errors.New("proto: integer overflow")
+
+// ErrInternalBadWireType is returned by generated code when an incorrect
+// wire type is encountered. It does not get returned to user code.
+var ErrInternalBadWireType = errors.New("proto: internal error: bad wiretype for oneof")
+
+// The fundamental decoders that interpret bytes on the wire.
+// Those that take integer types all return uint64 and are
+// therefore of type valueDecoder.
+
+// DecodeVarint reads a varint-encoded integer from the slice.
+// It returns the integer and the number of bytes consumed, or
+// zero if there is not enough.
+// This is the format for the
+// int32, int64, uint32, uint64, bool, and enum
+// protocol buffer types.
+func DecodeVarint(buf []byte) (x uint64, n int) {
+       for shift := uint(0); shift < 64; shift += 7 {
+               if n >= len(buf) {
+                       return 0, 0
+               }
+               b := uint64(buf[n])
+               n++
+               x |= (b & 0x7F) << shift
+               if (b & 0x80) == 0 {
+                       return x, n
+               }
+       }
+
+       // The number is too large to represent in a 64-bit value.
+       return 0, 0
+}
+
+func (p *Buffer) decodeVarintSlow() (x uint64, err error) {
+       i := p.index
+       l := len(p.buf)
+
+       for shift := uint(0); shift < 64; shift += 7 {
+               if i >= l {
+                       err = io.ErrUnexpectedEOF
+                       return
+               }
+               b := p.buf[i]
+               i++
+               x |= (uint64(b) & 0x7F) << shift
+               if b < 0x80 {
+                       p.index = i
+                       return
+               }
+       }
+
+       // The number is too large to represent in a 64-bit value.
+       err = errOverflow
+       return
+}
+
+// DecodeVarint reads a varint-encoded integer from the Buffer.
+// This is the format for the
+// int32, int64, uint32, uint64, bool, and enum
+// protocol buffer types.
+func (p *Buffer) DecodeVarint() (x uint64, err error) {
+       i := p.index
+       buf := p.buf
+
+       if i >= len(buf) {
+               return 0, io.ErrUnexpectedEOF
+       } else if buf[i] < 0x80 {
+               p.index++
+               return uint64(buf[i]), nil
+       } else if len(buf)-i < 10 {
+               return p.decodeVarintSlow()
+       }
+
+       var b uint64
+       // we already checked the first byte
+       x = uint64(buf[i]) - 0x80
+       i++
+
+       b = uint64(buf[i])
+       i++
+       x += b << 7
+       if b&0x80 == 0 {
+               goto done
+       }
+       x -= 0x80 << 7
+
+       b = uint64(buf[i])
+       i++
+       x += b << 14
+       if b&0x80 == 0 {
+               goto done
+       }
+       x -= 0x80 << 14
+
+       b = uint64(buf[i])
+       i++
+       x += b << 21
+       if b&0x80 == 0 {
+               goto done
+       }
+       x -= 0x80 << 21
+
+       b = uint64(buf[i])
+       i++
+       x += b << 28
+       if b&0x80 == 0 {
+               goto done
+       }
+       x -= 0x80 << 28
+
+       b = uint64(buf[i])
+       i++
+       x += b << 35
+       if b&0x80 == 0 {
+               goto done
+       }
+       x -= 0x80 << 35
+
+       b = uint64(buf[i])
+       i++
+       x += b << 42
+       if b&0x80 == 0 {
+               goto done
+       }
+       x -= 0x80 << 42
+
+       b = uint64(buf[i])
+       i++
+       x += b << 49
+       if b&0x80 == 0 {
+               goto done
+       }
+       x -= 0x80 << 49
+
+       b = uint64(buf[i])
+       i++
+       x += b << 56
+       if b&0x80 == 0 {
+               goto done
+       }
+       x -= 0x80 << 56
+
+       b = uint64(buf[i])
+       i++
+       x += b << 63
+       if b&0x80 == 0 {
+               goto done
+       }
+       // x -= 0x80 << 63 // Always zero.
+
+       return 0, errOverflow
+
+done:
+       p.index = i
+       return x, nil
+}
+
+// DecodeFixed64 reads a 64-bit integer from the Buffer.
+// This is the format for the
+// fixed64, sfixed64, and double protocol buffer types.
+func (p *Buffer) DecodeFixed64() (x uint64, err error) {
+       // x, err already 0
+       i := p.index + 8
+       if i < 0 || i > len(p.buf) {
+               err = io.ErrUnexpectedEOF
+               return
+       }
+       p.index = i
+
+       x = uint64(p.buf[i-8])
+       x |= uint64(p.buf[i-7]) << 8
+       x |= uint64(p.buf[i-6]) << 16
+       x |= uint64(p.buf[i-5]) << 24
+       x |= uint64(p.buf[i-4]) << 32
+       x |= uint64(p.buf[i-3]) << 40
+       x |= uint64(p.buf[i-2]) << 48
+       x |= uint64(p.buf[i-1]) << 56
+       return
+}
+
+// DecodeFixed32 reads a 32-bit integer from the Buffer.
+// This is the format for the
+// fixed32, sfixed32, and float protocol buffer types.
+func (p *Buffer) DecodeFixed32() (x uint64, err error) {
+       // x, err already 0
+       i := p.index + 4
+       if i < 0 || i > len(p.buf) {
+               err = io.ErrUnexpectedEOF
+               return
+       }
+       p.index = i
+
+       x = uint64(p.buf[i-4])
+       x |= uint64(p.buf[i-3]) << 8
+       x |= uint64(p.buf[i-2]) << 16
+       x |= uint64(p.buf[i-1]) << 24
+       return
+}
+
+// DecodeZigzag64 reads a zigzag-encoded 64-bit integer
+// from the Buffer.
+// This is the format used for the sint64 protocol buffer type.
+func (p *Buffer) DecodeZigzag64() (x uint64, err error) {
+       x, err = p.DecodeVarint()
+       if err != nil {
+               return
+       }
+       x = (x >> 1) ^ uint64((int64(x&1)<<63)>>63)
+       return
+}
+
+// DecodeZigzag32 reads a zigzag-encoded 32-bit integer
+// from  the Buffer.
+// This is the format used for the sint32 protocol buffer type.
+func (p *Buffer) DecodeZigzag32() (x uint64, err error) {
+       x, err = p.DecodeVarint()
+       if err != nil {
+               return
+       }
+       x = uint64((uint32(x) >> 1) ^ uint32((int32(x&1)<<31)>>31))
+       return
+}
+
+// These are not ValueDecoders: they produce an array of bytes or a string.
+// bytes, embedded messages
+
+// DecodeRawBytes reads a count-delimited byte buffer from the Buffer.
+// This is the format used for the bytes protocol buffer
+// type and for embedded messages.
+func (p *Buffer) DecodeRawBytes(alloc bool) (buf []byte, err error) {
+       n, err := p.DecodeVarint()
+       if err != nil {
+               return nil, err
+       }
+
+       nb := int(n)
+       if nb < 0 {
+               return nil, fmt.Errorf("proto: bad byte length %d", nb)
+       }
+       end := p.index + nb
+       if end < p.index || end > len(p.buf) {
+               return nil, io.ErrUnexpectedEOF
+       }
+
+       if !alloc {
+               // todo: check if can get more uses of alloc=false
+               buf = p.buf[p.index:end]
+               p.index += nb
+               return
+       }
+
+       buf = make([]byte, nb)
+       copy(buf, p.buf[p.index:])
+       p.index += nb
+       return
+}
+
+// DecodeStringBytes reads an encoded string from the Buffer.
+// This is the format used for the proto2 string type.
+func (p *Buffer) DecodeStringBytes() (s string, err error) {
+       buf, err := p.DecodeRawBytes(false)
+       if err != nil {
+               return
+       }
+       return string(buf), nil
+}
+
+// Skip the next item in the buffer. Its wire type is decoded and presented as an argument.
+// If the protocol buffer has extensions, and the field matches, add it as an extension.
+// Otherwise, if the XXX_unrecognized field exists, append the skipped data there.
+func (o *Buffer) skipAndSave(t reflect.Type, tag, wire int, base structPointer, unrecField field) error {
+       oi := o.index
+
+       err := o.skip(t, tag, wire)
+       if err != nil {
+               return err
+       }
+
+       if !unrecField.IsValid() {
+               return nil
+       }
+
+       ptr := structPointer_Bytes(base, unrecField)
+
+       // Add the skipped field to struct field
+       obuf := o.buf
+
+       o.buf = *ptr
+       o.EncodeVarint(uint64(tag<<3 | wire))
+       *ptr = append(o.buf, obuf[oi:o.index]...)
+
+       o.buf = obuf
+
+       return nil
+}
+
+// Skip the next item in the buffer. Its wire type is decoded and presented as an argument.
+func (o *Buffer) skip(t reflect.Type, tag, wire int) error {
+
+       var u uint64
+       var err error
+
+       switch wire {
+       case WireVarint:
+               _, err = o.DecodeVarint()
+       case WireFixed64:
+               _, err = o.DecodeFixed64()
+       case WireBytes:
+               _, err = o.DecodeRawBytes(false)
+       case WireFixed32:
+               _, err = o.DecodeFixed32()
+       case WireStartGroup:
+               for {
+                       u, err = o.DecodeVarint()
+                       if err != nil {
+                               break
+                       }
+                       fwire := int(u & 0x7)
+                       if fwire == WireEndGroup {
+                               break
+                       }
+                       ftag := int(u >> 3)
+                       err = o.skip(t, ftag, fwire)
+                       if err != nil {
+                               break
+                       }
+               }
+       default:
+               err = fmt.Errorf("proto: can't skip unknown wire type %d for %s", wire, t)
+       }
+       return err
+}
+
+// Unmarshaler is the interface representing objects that can
+// unmarshal themselves.  The method should reset the receiver before
+// decoding starts.  The argument points to data that may be
+// overwritten, so implementations should not keep references to the
+// buffer.
+type Unmarshaler interface {
+       Unmarshal([]byte) error
+}
+
+// Unmarshal parses the protocol buffer representation in buf and places the
+// decoded result in pb.  If the struct underlying pb does not match
+// the data in buf, the results can be unpredictable.
+//
+// Unmarshal resets pb before starting to unmarshal, so any
+// existing data in pb is always removed. Use UnmarshalMerge
+// to preserve and append to existing data.
+func Unmarshal(buf []byte, pb Message) error {
+       pb.Reset()
+       return UnmarshalMerge(buf, pb)
+}
+
+// UnmarshalMerge parses the protocol buffer representation in buf and
+// writes the decoded result to pb.  If the struct underlying pb does not match
+// the data in buf, the results can be unpredictable.
+//
+// UnmarshalMerge merges into existing data in pb.
+// Most code should use Unmarshal instead.
+func UnmarshalMerge(buf []byte, pb Message) error {
+       // If the object can unmarshal itself, let it.
+       if u, ok := pb.(Unmarshaler); ok {
+               return u.Unmarshal(buf)
+       }
+       return NewBuffer(buf).Unmarshal(pb)
+}
+
+// DecodeMessage reads a count-delimited message from the Buffer.
+func (p *Buffer) DecodeMessage(pb Message) error {
+       enc, err := p.DecodeRawBytes(false)
+       if err != nil {
+               return err
+       }
+       return NewBuffer(enc).Unmarshal(pb)
+}
+
+// DecodeGroup reads a tag-delimited group from the Buffer.
+func (p *Buffer) DecodeGroup(pb Message) error {
+       typ, base, err := getbase(pb)
+       if err != nil {
+               return err
+       }
+       return p.unmarshalType(typ.Elem(), GetProperties(typ.Elem()), true, base)
+}
+
+// Unmarshal parses the protocol buffer representation in the
+// Buffer and places the decoded result in pb.  If the struct
+// underlying pb does not match the data in the buffer, the results can be
+// unpredictable.
+//
+// Unlike proto.Unmarshal, this does not reset pb before starting to unmarshal.
+func (p *Buffer) Unmarshal(pb Message) error {
+       // If the object can unmarshal itself, let it.
+       if u, ok := pb.(Unmarshaler); ok {
+               err := u.Unmarshal(p.buf[p.index:])
+               p.index = len(p.buf)
+               return err
+       }
+
+       typ, base, err := getbase(pb)
+       if err != nil {
+               return err
+       }
+
+       err = p.unmarshalType(typ.Elem(), GetProperties(typ.Elem()), false, base)
+
+       if collectStats {
+               stats.Decode++
+       }
+
+       return err
+}
+
+// unmarshalType does the work of unmarshaling a structure.
+func (o *Buffer) unmarshalType(st reflect.Type, prop *StructProperties, is_group bool, base structPointer) error {
+       var state errorState
+       required, reqFields := prop.reqCount, uint64(0)
+
+       var err error
+       for err == nil && o.index < len(o.buf) {
+               oi := o.index
+               var u uint64
+               u, err = o.DecodeVarint()
+               if err != nil {
+                       break
+               }
+               wire := int(u & 0x7)
+               if wire == WireEndGroup {
+                       if is_group {
+                               if required > 0 {
+                                       // Not enough information to determine the exact field.
+                                       // (See below.)
+                                       return &RequiredNotSetError{"{Unknown}"}
+                               }
+                               return nil // input is satisfied
+                       }
+                       return fmt.Errorf("proto: %s: wiretype end group for non-group", st)
+               }
+               tag := int(u >> 3)
+               if tag <= 0 {
+                       return fmt.Errorf("proto: %s: illegal tag %d (wire type %d)", st, tag, wire)
+               }
+               fieldnum, ok := prop.decoderTags.get(tag)
+               if !ok {
+                       // Maybe it's an extension?
+                       if prop.extendable {
+                               if e, _ := extendable(structPointer_Interface(base, st)); isExtensionField(e, int32(tag)) {
+                                       if err = o.skip(st, tag, wire); err == nil {
+                                               extmap := e.extensionsWrite()
+                                               ext := extmap[int32(tag)] // may be missing
+                                               ext.enc = append(ext.enc, o.buf[oi:o.index]...)
+                                               extmap[int32(tag)] = ext
+                                       }
+                                       continue
+                               }
+                       }
+                       // Maybe it's a oneof?
+                       if prop.oneofUnmarshaler != nil {
+                               m := structPointer_Interface(base, st).(Message)
+                               // First return value indicates whether tag is a oneof field.
+                               ok, err = prop.oneofUnmarshaler(m, tag, wire, o)
+                               if err == ErrInternalBadWireType {
+                                       // Map the error to something more descriptive.
+                                       // Do the formatting here to save generated code space.
+                                       err = fmt.Errorf("bad wiretype for oneof field in %T", m)
+                               }
+                               if ok {
+                                       continue
+                               }
+                       }
+                       err = o.skipAndSave(st, tag, wire, base, prop.unrecField)
+                       continue
+               }
+               p := prop.Prop[fieldnum]
+
+               if p.dec == nil {
+                       fmt.Fprintf(os.Stderr, "proto: no protobuf decoder for %s.%s\n", st, st.Field(fieldnum).Name)
+                       continue
+               }
+               dec := p.dec
+               if wire != WireStartGroup && wire != p.WireType {
+                       if wire == WireBytes && p.packedDec != nil {
+                               // a packable field
+                               dec = p.packedDec
+                       } else {
+                               err = fmt.Errorf("proto: bad wiretype for field %s.%s: got wiretype %d, want %d", st, st.Field(fieldnum).Name, wire, p.WireType)
+                               continue
+                       }
+               }
+               decErr := dec(o, p, base)
+               if decErr != nil && !state.shouldContinue(decErr, p) {
+                       err = decErr
+               }
+               if err == nil && p.Required {
+                       // Successfully decoded a required field.
+                       if tag <= 64 {
+                               // use bitmap for fields 1-64 to catch field reuse.
+                               var mask uint64 = 1 << uint64(tag-1)
+                               if reqFields&mask == 0 {
+                                       // new required field
+                                       reqFields |= mask
+                                       required--
+                               }
+                       } else {
+                               // This is imprecise. It can be fooled by a required field
+                               // with a tag > 64 that is encoded twice; that's very rare.
+                               // A fully correct implementation would require allocating
+                               // a data structure, which we would like to avoid.
+                               required--
+                       }
+               }
+       }
+       if err == nil {
+               if is_group {
+                       return io.ErrUnexpectedEOF
+               }
+               if state.err != nil {
+                       return state.err
+               }
+               if required > 0 {
+                       // Not enough information to determine the exact field. If we use extra
+                       // CPU, we could determine the field only if the missing required field
+                       // has a tag <= 64 and we check reqFields.
+                       return &RequiredNotSetError{"{Unknown}"}
+               }
+       }
+       return err
+}
+
+// Individual type decoders
+// For each,
+//     u is the decoded value,
+//     v is a pointer to the field (pointer) in the struct
+
+// Sizes of the pools to allocate inside the Buffer.
+// The goal is modest amortization and allocation
+// on at least 16-byte boundaries.
+const (
+       boolPoolSize   = 16
+       uint32PoolSize = 8
+       uint64PoolSize = 4
+)
+
+// Decode a bool.
+func (o *Buffer) dec_bool(p *Properties, base structPointer) error {
+       u, err := p.valDec(o)
+       if err != nil {
+               return err
+       }
+       if len(o.bools) == 0 {
+               o.bools = make([]bool, boolPoolSize)
+       }
+       o.bools[0] = u != 0
+       *structPointer_Bool(base, p.field) = &o.bools[0]
+       o.bools = o.bools[1:]
+       return nil
+}
+
+func (o *Buffer) dec_proto3_bool(p *Properties, base structPointer) error {
+       u, err := p.valDec(o)
+       if err != nil {
+               return err
+       }
+       *structPointer_BoolVal(base, p.field) = u != 0
+       return nil
+}
+
+// Decode an int32.
+func (o *Buffer) dec_int32(p *Properties, base structPointer) error {
+       u, err := p.valDec(o)
+       if err != nil {
+               return err
+       }
+       word32_Set(structPointer_Word32(base, p.field), o, uint32(u))
+       return nil
+}
+
+func (o *Buffer) dec_proto3_int32(p *Properties, base structPointer) error {
+       u, err := p.valDec(o)
+       if err != nil {
+               return err
+       }
+       word32Val_Set(structPointer_Word32Val(base, p.field), uint32(u))
+       return nil
+}
+
+// Decode an int64.
+func (o *Buffer) dec_int64(p *Properties, base structPointer) error {
+       u, err := p.valDec(o)
+       if err != nil {
+               return err
+       }
+       word64_Set(structPointer_Word64(base, p.field), o, u)
+       return nil
+}
+
+func (o *Buffer) dec_proto3_int64(p *Properties, base structPointer) error {
+       u, err := p.valDec(o)
+       if err != nil {
+               return err
+       }
+       word64Val_Set(structPointer_Word64Val(base, p.field), o, u)
+       return nil
+}
+
+// Decode a string.
+func (o *Buffer) dec_string(p *Properties, base structPointer) error {
+       s, err := o.DecodeStringBytes()
+       if err != nil {
+               return err
+       }
+       *structPointer_String(base, p.field) = &s
+       return nil
+}
+
+func (o *Buffer) dec_proto3_string(p *Properties, base structPointer) error {
+       s, err := o.DecodeStringBytes()
+       if err != nil {
+               return err
+       }
+       *structPointer_StringVal(base, p.field) = s
+       return nil
+}
+
+// Decode a slice of bytes ([]byte).
+func (o *Buffer) dec_slice_byte(p *Properties, base structPointer) error {
+       b, err := o.DecodeRawBytes(true)
+       if err != nil {
+               return err
+       }
+       *structPointer_Bytes(base, p.field) = b
+       return nil
+}
+
+// Decode a slice of bools ([]bool).
+func (o *Buffer) dec_slice_bool(p *Properties, base structPointer) error {
+       u, err := p.valDec(o)
+       if err != nil {
+               return err
+       }
+       v := structPointer_BoolSlice(base, p.field)
+       *v = append(*v, u != 0)
+       return nil
+}
+
+// Decode a slice of bools ([]bool) in packed format.
+func (o *Buffer) dec_slice_packed_bool(p *Properties, base structPointer) error {
+       v := structPointer_BoolSlice(base, p.field)
+
+       nn, err := o.DecodeVarint()
+       if err != nil {
+               return err
+       }
+       nb := int(nn) // number of bytes of encoded bools
+       fin := o.index + nb
+       if fin < o.index {
+               return errOverflow
+       }
+
+       y := *v
+       for o.index < fin {
+               u, err := p.valDec(o)
+               if err != nil {
+                       return err
+               }
+               y = append(y, u != 0)
+       }
+
+       *v = y
+       return nil
+}
+
+// Decode a slice of int32s ([]int32).
+func (o *Buffer) dec_slice_int32(p *Properties, base structPointer) error {
+       u, err := p.valDec(o)
+       if err != nil {
+               return err
+       }
+       structPointer_Word32Slice(base, p.field).Append(uint32(u))
+       return nil
+}
+
+// Decode a slice of int32s ([]int32) in packed format.
+func (o *Buffer) dec_slice_packed_int32(p *Properties, base structPointer) error {
+       v := structPointer_Word32Slice(base, p.field)
+
+       nn, err := o.DecodeVarint()
+       if err != nil {
+               return err
+       }
+       nb := int(nn) // number of bytes of encoded int32s
+
+       fin := o.index + nb
+       if fin < o.index {
+               return errOverflow
+       }
+       for o.index < fin {
+               u, err := p.valDec(o)
+               if err != nil {
+                       return err
+               }
+               v.Append(uint32(u))
+       }
+       return nil
+}
+
+// Decode a slice of int64s ([]int64).
+func (o *Buffer) dec_slice_int64(p *Properties, base structPointer) error {
+       u, err := p.valDec(o)
+       if err != nil {
+               return err
+       }
+
+       structPointer_Word64Slice(base, p.field).Append(u)
+       return nil
+}
+
+// Decode a slice of int64s ([]int64) in packed format.
+func (o *Buffer) dec_slice_packed_int64(p *Properties, base structPointer) error {
+       v := structPointer_Word64Slice(base, p.field)
+
+       nn, err := o.DecodeVarint()
+       if err != nil {
+               return err
+       }
+       nb := int(nn) // number of bytes of encoded int64s
+
+       fin := o.index + nb
+       if fin < o.index {
+               return errOverflow
+       }
+       for o.index < fin {
+               u, err := p.valDec(o)
+               if err != nil {
+                       return err
+               }
+               v.Append(u)
+       }
+       return nil
+}
+
+// Decode a slice of strings ([]string).
+func (o *Buffer) dec_slice_string(p *Properties, base structPointer) error {
+       s, err := o.DecodeStringBytes()
+       if err != nil {
+               return err
+       }
+       v := structPointer_StringSlice(base, p.field)
+       *v = append(*v, s)
+       return nil
+}
+
+// Decode a slice of slice of bytes ([][]byte).
+func (o *Buffer) dec_slice_slice_byte(p *Properties, base structPointer) error {
+       b, err := o.DecodeRawBytes(true)
+       if err != nil {
+               return err
+       }
+       v := structPointer_BytesSlice(base, p.field)
+       *v = append(*v, b)
+       return nil
+}
+
+// Decode a map field.
+func (o *Buffer) dec_new_map(p *Properties, base structPointer) error {
+       raw, err := o.DecodeRawBytes(false)
+       if err != nil {
+               return err
+       }
+       oi := o.index       // index at the end of this map entry
+       o.index -= len(raw) // move buffer back to start of map entry
+
+       mptr := structPointer_NewAt(base, p.field, p.mtype) // *map[K]V
+       if mptr.Elem().IsNil() {
+               mptr.Elem().Set(reflect.MakeMap(mptr.Type().Elem()))
+       }
+       v := mptr.Elem() // map[K]V
+
+       // Prepare addressable doubly-indirect placeholders for the key and value types.
+       // See enc_new_map for why.
+       keyptr := reflect.New(reflect.PtrTo(p.mtype.Key())).Elem() // addressable *K
+       keybase := toStructPointer(keyptr.Addr())                  // **K
+
+       var valbase structPointer
+       var valptr reflect.Value
+       switch p.mtype.Elem().Kind() {
+       case reflect.Slice:
+               // []byte
+               var dummy []byte
+               valptr = reflect.ValueOf(&dummy)  // *[]byte
+               valbase = toStructPointer(valptr) // *[]byte
+       case reflect.Ptr:
+               // message; valptr is **Msg; need to allocate the intermediate pointer
+               valptr = reflect.New(reflect.PtrTo(p.mtype.Elem())).Elem() // addressable *V
+               valptr.Set(reflect.New(valptr.Type().Elem()))
+               valbase = toStructPointer(valptr)
+       default:
+               // everything else
+               valptr = reflect.New(reflect.PtrTo(p.mtype.Elem())).Elem() // addressable *V
+               valbase = toStructPointer(valptr.Addr())                   // **V
+       }
+
+       // Decode.
+       // This parses a restricted wire format, namely the encoding of a message
+       // with two fields. See enc_new_map for the format.
+       for o.index < oi {
+               // tagcode for key and value properties are always a single byte
+               // because they have tags 1 and 2.
+               tagcode := o.buf[o.index]
+               o.index++
+               switch tagcode {
+               case p.mkeyprop.tagcode[0]:
+                       if err := p.mkeyprop.dec(o, p.mkeyprop, keybase); err != nil {
+                               return err
+                       }
+               case p.mvalprop.tagcode[0]:
+                       if err := p.mvalprop.dec(o, p.mvalprop, valbase); err != nil {
+                               return err
+                       }
+               default:
+                       // TODO: Should we silently skip this instead?
+                       return fmt.Errorf("proto: bad map data tag %d", raw[0])
+               }
+       }
+       keyelem, valelem := keyptr.Elem(), valptr.Elem()
+       if !keyelem.IsValid() {
+               keyelem = reflect.Zero(p.mtype.Key())
+       }
+       if !valelem.IsValid() {
+               valelem = reflect.Zero(p.mtype.Elem())
+       }
+
+       v.SetMapIndex(keyelem, valelem)
+       return nil
+}
+
+// Decode a group.
+func (o *Buffer) dec_struct_group(p *Properties, base structPointer) error {
+       bas := structPointer_GetStructPointer(base, p.field)
+       if structPointer_IsNil(bas) {
+               // allocate new nested message
+               bas = toStructPointer(reflect.New(p.stype))
+               structPointer_SetStructPointer(base, p.field, bas)
+       }
+       return o.unmarshalType(p.stype, p.sprop, true, bas)
+}
+
+// Decode an embedded message.
+func (o *Buffer) dec_struct_message(p *Properties, base structPointer) (err error) {
+       raw, e := o.DecodeRawBytes(false)
+       if e != nil {
+               return e
+       }
+
+       bas := structPointer_GetStructPointer(base, p.field)
+       if structPointer_IsNil(bas) {
+               // allocate new nested message
+               bas = toStructPointer(reflect.New(p.stype))
+               structPointer_SetStructPointer(base, p.field, bas)
+       }
+
+       // If the object can unmarshal itself, let it.
+       if p.isUnmarshaler {
+               iv := structPointer_Interface(bas, p.stype)
+               return iv.(Unmarshaler).Unmarshal(raw)
+       }
+
+       obuf := o.buf
+       oi := o.index
+       o.buf = raw
+       o.index = 0
+
+       err = o.unmarshalType(p.stype, p.sprop, false, bas)
+       o.buf = obuf
+       o.index = oi
+
+       return err
+}
+
+// Decode a slice of embedded messages.
+func (o *Buffer) dec_slice_struct_message(p *Properties, base structPointer) error {
+       return o.dec_slice_struct(p, false, base)
+}
+
+// Decode a slice of embedded groups.
+func (o *Buffer) dec_slice_struct_group(p *Properties, base structPointer) error {
+       return o.dec_slice_struct(p, true, base)
+}
+
+// Decode a slice of structs ([]*struct).
+func (o *Buffer) dec_slice_struct(p *Properties, is_group bool, base structPointer) error {
+       v := reflect.New(p.stype)
+       bas := toStructPointer(v)
+       structPointer_StructPointerSlice(base, p.field).Append(bas)
+
+       if is_group {
+               err := o.unmarshalType(p.stype, p.sprop, is_group, bas)
+               return err
+       }
+
+       raw, err := o.DecodeRawBytes(false)
+       if err != nil {
+               return err
+       }
+
+       // If the object can unmarshal itself, let it.
+       if p.isUnmarshaler {
+               iv := v.Interface()
+               return iv.(Unmarshaler).Unmarshal(raw)
+       }
+
+       obuf := o.buf
+       oi := o.index
+       o.buf = raw
+       o.index = 0
+
+       err = o.unmarshalType(p.stype, p.sprop, is_group, bas)
+
+       o.buf = obuf
+       o.index = oi
+
+       return err
+}
diff --git a/vendor/github.com/golang/protobuf/proto/encode.go b/vendor/github.com/golang/protobuf/proto/encode.go
new file mode 100644 (file)
index 0000000..8b84d1b
--- /dev/null
@@ -0,0 +1,1362 @@
+// Go support for Protocol Buffers - Google's data interchange format
+//
+// Copyright 2010 The Go Authors.  All rights reserved.
+// https://github.com/golang/protobuf
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+package proto
+
+/*
+ * Routines for encoding data into the wire format for protocol buffers.
+ */
+
+import (
+       "errors"
+       "fmt"
+       "reflect"
+       "sort"
+)
+
+// RequiredNotSetError is the error returned if Marshal is called with
+// a protocol buffer struct whose required fields have not
+// all been initialized. It is also the error returned if Unmarshal is
+// called with an encoded protocol buffer that does not include all the
+// required fields.
+//
+// When printed, RequiredNotSetError reports the first unset required field in a
+// message. If the field cannot be precisely determined, it is reported as
+// "{Unknown}".
+type RequiredNotSetError struct {
+       field string
+}
+
+func (e *RequiredNotSetError) Error() string {
+       return fmt.Sprintf("proto: required field %q not set", e.field)
+}
+
+var (
+       // errRepeatedHasNil is the error returned if Marshal is called with
+       // a struct with a repeated field containing a nil element.
+       errRepeatedHasNil = errors.New("proto: repeated field has nil element")
+
+       // errOneofHasNil is the error returned if Marshal is called with
+       // a struct with a oneof field containing a nil element.
+       errOneofHasNil = errors.New("proto: oneof field has nil value")
+
+       // ErrNil is the error returned if Marshal is called with nil.
+       ErrNil = errors.New("proto: Marshal called with nil")
+
+       // ErrTooLarge is the error returned if Marshal is called with a
+       // message that encodes to >2GB.
+       ErrTooLarge = errors.New("proto: message encodes to over 2 GB")
+)
+
+// The fundamental encoders that put bytes on the wire.
+// Those that take integer types all accept uint64 and are
+// therefore of type valueEncoder.
+
+const maxVarintBytes = 10 // maximum length of a varint
+
+// maxMarshalSize is the largest allowed size of an encoded protobuf,
+// since C++ and Java use signed int32s for the size.
+const maxMarshalSize = 1<<31 - 1
+
+// EncodeVarint returns the varint encoding of x.
+// This is the format for the
+// int32, int64, uint32, uint64, bool, and enum
+// protocol buffer types.
+// Not used by the package itself, but helpful to clients
+// wishing to use the same encoding.
+func EncodeVarint(x uint64) []byte {
+       var buf [maxVarintBytes]byte
+       var n int
+       for n = 0; x > 127; n++ {
+               buf[n] = 0x80 | uint8(x&0x7F)
+               x >>= 7
+       }
+       buf[n] = uint8(x)
+       n++
+       return buf[0:n]
+}
+
+// EncodeVarint writes a varint-encoded integer to the Buffer.
+// This is the format for the
+// int32, int64, uint32, uint64, bool, and enum
+// protocol buffer types.
+func (p *Buffer) EncodeVarint(x uint64) error {
+       for x >= 1<<7 {
+               p.buf = append(p.buf, uint8(x&0x7f|0x80))
+               x >>= 7
+       }
+       p.buf = append(p.buf, uint8(x))
+       return nil
+}
+
+// SizeVarint returns the varint encoding size of an integer.
+func SizeVarint(x uint64) int {
+       return sizeVarint(x)
+}
+
+func sizeVarint(x uint64) (n int) {
+       for {
+               n++
+               x >>= 7
+               if x == 0 {
+                       break
+               }
+       }
+       return n
+}
+
+// EncodeFixed64 writes a 64-bit integer to the Buffer.
+// This is the format for the
+// fixed64, sfixed64, and double protocol buffer types.
+func (p *Buffer) EncodeFixed64(x uint64) error {
+       p.buf = append(p.buf,
+               uint8(x),
+               uint8(x>>8),
+               uint8(x>>16),
+               uint8(x>>24),
+               uint8(x>>32),
+               uint8(x>>40),
+               uint8(x>>48),
+               uint8(x>>56))
+       return nil
+}
+
+func sizeFixed64(x uint64) int {
+       return 8
+}
+
+// EncodeFixed32 writes a 32-bit integer to the Buffer.
+// This is the format for the
+// fixed32, sfixed32, and float protocol buffer types.
+func (p *Buffer) EncodeFixed32(x uint64) error {
+       p.buf = append(p.buf,
+               uint8(x),
+               uint8(x>>8),
+               uint8(x>>16),
+               uint8(x>>24))
+       return nil
+}
+
+func sizeFixed32(x uint64) int {
+       return 4
+}
+
+// EncodeZigzag64 writes a zigzag-encoded 64-bit integer
+// to the Buffer.
+// This is the format used for the sint64 protocol buffer type.
+func (p *Buffer) EncodeZigzag64(x uint64) error {
+       // use signed number to get arithmetic right shift.
+       return p.EncodeVarint((x << 1) ^ uint64((int64(x) >> 63)))
+}
+
+func sizeZigzag64(x uint64) int {
+       return sizeVarint((x << 1) ^ uint64((int64(x) >> 63)))
+}
+
+// EncodeZigzag32 writes a zigzag-encoded 32-bit integer
+// to the Buffer.
+// This is the format used for the sint32 protocol buffer type.
+func (p *Buffer) EncodeZigzag32(x uint64) error {
+       // use signed number to get arithmetic right shift.
+       return p.EncodeVarint(uint64((uint32(x) << 1) ^ uint32((int32(x) >> 31))))
+}
+
+func sizeZigzag32(x uint64) int {
+       return sizeVarint(uint64((uint32(x) << 1) ^ uint32((int32(x) >> 31))))
+}
+
+// EncodeRawBytes writes a count-delimited byte buffer to the Buffer.
+// This is the format used for the bytes protocol buffer
+// type and for embedded messages.
+func (p *Buffer) EncodeRawBytes(b []byte) error {
+       p.EncodeVarint(uint64(len(b)))
+       p.buf = append(p.buf, b...)
+       return nil
+}
+
+func sizeRawBytes(b []byte) int {
+       return sizeVarint(uint64(len(b))) +
+               len(b)
+}
+
+// EncodeStringBytes writes an encoded string to the Buffer.
+// This is the format used for the proto2 string type.
+func (p *Buffer) EncodeStringBytes(s string) error {
+       p.EncodeVarint(uint64(len(s)))
+       p.buf = append(p.buf, s...)
+       return nil
+}
+
+func sizeStringBytes(s string) int {
+       return sizeVarint(uint64(len(s))) +
+               len(s)
+}
+
+// Marshaler is the interface representing objects that can marshal themselves.
+type Marshaler interface {
+       Marshal() ([]byte, error)
+}
+
+// Marshal takes the protocol buffer
+// and encodes it into the wire format, returning the data.
+func Marshal(pb Message) ([]byte, error) {
+       // Can the object marshal itself?
+       if m, ok := pb.(Marshaler); ok {
+               return m.Marshal()
+       }
+       p := NewBuffer(nil)
+       err := p.Marshal(pb)
+       if p.buf == nil && err == nil {
+               // Return a non-nil slice on success.
+               return []byte{}, nil
+       }
+       return p.buf, err
+}
+
+// EncodeMessage writes the protocol buffer to the Buffer,
+// prefixed by a varint-encoded length.
+func (p *Buffer) EncodeMessage(pb Message) error {
+       t, base, err := getbase(pb)
+       if structPointer_IsNil(base) {
+               return ErrNil
+       }
+       if err == nil {
+               var state errorState
+               err = p.enc_len_struct(GetProperties(t.Elem()), base, &state)
+       }
+       return err
+}
+
+// Marshal takes the protocol buffer
+// and encodes it into the wire format, writing the result to the
+// Buffer.
+func (p *Buffer) Marshal(pb Message) error {
+       // Can the object marshal itself?
+       if m, ok := pb.(Marshaler); ok {
+               data, err := m.Marshal()
+               p.buf = append(p.buf, data...)
+               return err
+       }
+
+       t, base, err := getbase(pb)
+       if structPointer_IsNil(base) {
+               return ErrNil
+       }
+       if err == nil {
+               err = p.enc_struct(GetProperties(t.Elem()), base)
+       }
+
+       if collectStats {
+               (stats).Encode++ // Parens are to work around a goimports bug.
+       }
+
+       if len(p.buf) > maxMarshalSize {
+               return ErrTooLarge
+       }
+       return err
+}
+
+// Size returns the encoded size of a protocol buffer.
+func Size(pb Message) (n int) {
+       // Can the object marshal itself?  If so, Size is slow.
+       // TODO: add Size to Marshaler, or add a Sizer interface.
+       if m, ok := pb.(Marshaler); ok {
+               b, _ := m.Marshal()
+               return len(b)
+       }
+
+       t, base, err := getbase(pb)
+       if structPointer_IsNil(base) {
+               return 0
+       }
+       if err == nil {
+               n = size_struct(GetProperties(t.Elem()), base)
+       }
+
+       if collectStats {
+               (stats).Size++ // Parens are to work around a goimports bug.
+       }
+
+       return
+}
+
+// Individual type encoders.
+
+// Encode a bool.
+func (o *Buffer) enc_bool(p *Properties, base structPointer) error {
+       v := *structPointer_Bool(base, p.field)
+       if v == nil {
+               return ErrNil
+       }
+       x := 0
+       if *v {
+               x = 1
+       }
+       o.buf = append(o.buf, p.tagcode...)
+       p.valEnc(o, uint64(x))
+       return nil
+}
+
+func (o *Buffer) enc_proto3_bool(p *Properties, base structPointer) error {
+       v := *structPointer_BoolVal(base, p.field)
+       if !v {
+               return ErrNil
+       }
+       o.buf = append(o.buf, p.tagcode...)
+       p.valEnc(o, 1)
+       return nil
+}
+
+func size_bool(p *Properties, base structPointer) int {
+       v := *structPointer_Bool(base, p.field)
+       if v == nil {
+               return 0
+       }
+       return len(p.tagcode) + 1 // each bool takes exactly one byte
+}
+
+func size_proto3_bool(p *Properties, base structPointer) int {
+       v := *structPointer_BoolVal(base, p.field)
+       if !v && !p.oneof {
+               return 0
+       }
+       return len(p.tagcode) + 1 // each bool takes exactly one byte
+}
+
+// Encode an int32.
+func (o *Buffer) enc_int32(p *Properties, base structPointer) error {
+       v := structPointer_Word32(base, p.field)
+       if word32_IsNil(v) {
+               return ErrNil
+       }
+       x := int32(word32_Get(v)) // permit sign extension to use full 64-bit range
+       o.buf = append(o.buf, p.tagcode...)
+       p.valEnc(o, uint64(x))
+       return nil
+}
+
+func (o *Buffer) enc_proto3_int32(p *Properties, base structPointer) error {
+       v := structPointer_Word32Val(base, p.field)
+       x := int32(word32Val_Get(v)) // permit sign extension to use full 64-bit range
+       if x == 0 {
+               return ErrNil
+       }
+       o.buf = append(o.buf, p.tagcode...)
+       p.valEnc(o, uint64(x))
+       return nil
+}
+
+func size_int32(p *Properties, base structPointer) (n int) {
+       v := structPointer_Word32(base, p.field)
+       if word32_IsNil(v) {
+               return 0
+       }
+       x := int32(word32_Get(v)) // permit sign extension to use full 64-bit range
+       n += len(p.tagcode)
+       n += p.valSize(uint64(x))
+       return
+}
+
+func size_proto3_int32(p *Properties, base structPointer) (n int) {
+       v := structPointer_Word32Val(base, p.field)
+       x := int32(word32Val_Get(v)) // permit sign extension to use full 64-bit range
+       if x == 0 && !p.oneof {
+               return 0
+       }
+       n += len(p.tagcode)
+       n += p.valSize(uint64(x))
+       return
+}
+
+// Encode a uint32.
+// Exactly the same as int32, except for no sign extension.
+func (o *Buffer) enc_uint32(p *Properties, base structPointer) error {
+       v := structPointer_Word32(base, p.field)
+       if word32_IsNil(v) {
+               return ErrNil
+       }
+       x := word32_Get(v)
+       o.buf = append(o.buf, p.tagcode...)
+       p.valEnc(o, uint64(x))
+       return nil
+}
+
+func (o *Buffer) enc_proto3_uint32(p *Properties, base structPointer) error {
+       v := structPointer_Word32Val(base, p.field)
+       x := word32Val_Get(v)
+       if x == 0 {
+               return ErrNil
+       }
+       o.buf = append(o.buf, p.tagcode...)
+       p.valEnc(o, uint64(x))
+       return nil
+}
+
+func size_uint32(p *Properties, base structPointer) (n int) {
+       v := structPointer_Word32(base, p.field)
+       if word32_IsNil(v) {
+               return 0
+       }
+       x := word32_Get(v)
+       n += len(p.tagcode)
+       n += p.valSize(uint64(x))
+       return
+}
+
+func size_proto3_uint32(p *Properties, base structPointer) (n int) {
+       v := structPointer_Word32Val(base, p.field)
+       x := word32Val_Get(v)
+       if x == 0 && !p.oneof {
+               return 0
+       }
+       n += len(p.tagcode)
+       n += p.valSize(uint64(x))
+       return
+}
+
+// Encode an int64.
+func (o *Buffer) enc_int64(p *Properties, base structPointer) error {
+       v := structPointer_Word64(base, p.field)
+       if word64_IsNil(v) {
+               return ErrNil
+       }
+       x := word64_Get(v)
+       o.buf = append(o.buf, p.tagcode...)
+       p.valEnc(o, x)
+       return nil
+}
+
+func (o *Buffer) enc_proto3_int64(p *Properties, base structPointer) error {
+       v := structPointer_Word64Val(base, p.field)
+       x := word64Val_Get(v)
+       if x == 0 {
+               return ErrNil
+       }
+       o.buf = append(o.buf, p.tagcode...)
+       p.valEnc(o, x)
+       return nil
+}
+
+func size_int64(p *Properties, base structPointer) (n int) {
+       v := structPointer_Word64(base, p.field)
+       if word64_IsNil(v) {
+               return 0
+       }
+       x := word64_Get(v)
+       n += len(p.tagcode)
+       n += p.valSize(x)
+       return
+}
+
+func size_proto3_int64(p *Properties, base structPointer) (n int) {
+       v := structPointer_Word64Val(base, p.field)
+       x := word64Val_Get(v)
+       if x == 0 && !p.oneof {
+               return 0
+       }
+       n += len(p.tagcode)
+       n += p.valSize(x)
+       return
+}
+
+// Encode a string.
+func (o *Buffer) enc_string(p *Properties, base structPointer) error {
+       v := *structPointer_String(base, p.field)
+       if v == nil {
+               return ErrNil
+       }
+       x := *v
+       o.buf = append(o.buf, p.tagcode...)
+       o.EncodeStringBytes(x)
+       return nil
+}
+
+func (o *Buffer) enc_proto3_string(p *Properties, base structPointer) error {
+       v := *structPointer_StringVal(base, p.field)
+       if v == "" {
+               return ErrNil
+       }
+       o.buf = append(o.buf, p.tagcode...)
+       o.EncodeStringBytes(v)
+       return nil
+}
+
+func size_string(p *Properties, base structPointer) (n int) {
+       v := *structPointer_String(base, p.field)
+       if v == nil {
+               return 0
+       }
+       x := *v
+       n += len(p.tagcode)
+       n += sizeStringBytes(x)
+       return
+}
+
+func size_proto3_string(p *Properties, base structPointer) (n int) {
+       v := *structPointer_StringVal(base, p.field)
+       if v == "" && !p.oneof {
+               return 0
+       }
+       n += len(p.tagcode)
+       n += sizeStringBytes(v)
+       return
+}
+
+// All protocol buffer fields are nillable, but be careful.
+func isNil(v reflect.Value) bool {
+       switch v.Kind() {
+       case reflect.Interface, reflect.Map, reflect.Ptr, reflect.Slice:
+               return v.IsNil()
+       }
+       return false
+}
+
+// Encode a message struct.
+func (o *Buffer) enc_struct_message(p *Properties, base structPointer) error {
+       var state errorState
+       structp := structPointer_GetStructPointer(base, p.field)
+       if structPointer_IsNil(structp) {
+               return ErrNil
+       }
+
+       // Can the object marshal itself?
+       if p.isMarshaler {
+               m := structPointer_Interface(structp, p.stype).(Marshaler)
+               data, err := m.Marshal()
+               if err != nil && !state.shouldContinue(err, nil) {
+                       return err
+               }
+               o.buf = append(o.buf, p.tagcode...)
+               o.EncodeRawBytes(data)
+               return state.err
+       }
+
+       o.buf = append(o.buf, p.tagcode...)
+       return o.enc_len_struct(p.sprop, structp, &state)
+}
+
+func size_struct_message(p *Properties, base structPointer) int {
+       structp := structPointer_GetStructPointer(base, p.field)
+       if structPointer_IsNil(structp) {
+               return 0
+       }
+
+       // Can the object marshal itself?
+       if p.isMarshaler {
+               m := structPointer_Interface(structp, p.stype).(Marshaler)
+               data, _ := m.Marshal()
+               n0 := len(p.tagcode)
+               n1 := sizeRawBytes(data)
+               return n0 + n1
+       }
+
+       n0 := len(p.tagcode)
+       n1 := size_struct(p.sprop, structp)
+       n2 := sizeVarint(uint64(n1)) // size of encoded length
+       return n0 + n1 + n2
+}
+
+// Encode a group struct.
+func (o *Buffer) enc_struct_group(p *Properties, base structPointer) error {
+       var state errorState
+       b := structPointer_GetStructPointer(base, p.field)
+       if structPointer_IsNil(b) {
+               return ErrNil
+       }
+
+       o.EncodeVarint(uint64((p.Tag << 3) | WireStartGroup))
+       err := o.enc_struct(p.sprop, b)
+       if err != nil && !state.shouldContinue(err, nil) {
+               return err
+       }
+       o.EncodeVarint(uint64((p.Tag << 3) | WireEndGroup))
+       return state.err
+}
+
+func size_struct_group(p *Properties, base structPointer) (n int) {
+       b := structPointer_GetStructPointer(base, p.field)
+       if structPointer_IsNil(b) {
+               return 0
+       }
+
+       n += sizeVarint(uint64((p.Tag << 3) | WireStartGroup))
+       n += size_struct(p.sprop, b)
+       n += sizeVarint(uint64((p.Tag << 3) | WireEndGroup))
+       return
+}
+
+// Encode a slice of bools ([]bool).
+func (o *Buffer) enc_slice_bool(p *Properties, base structPointer) error {
+       s := *structPointer_BoolSlice(base, p.field)
+       l := len(s)
+       if l == 0 {
+               return ErrNil
+       }
+       for _, x := range s {
+               o.buf = append(o.buf, p.tagcode...)
+               v := uint64(0)
+               if x {
+                       v = 1
+               }
+               p.valEnc(o, v)
+       }
+       return nil
+}
+
+func size_slice_bool(p *Properties, base structPointer) int {
+       s := *structPointer_BoolSlice(base, p.field)
+       l := len(s)
+       if l == 0 {
+               return 0
+       }
+       return l * (len(p.tagcode) + 1) // each bool takes exactly one byte
+}
+
+// Encode a slice of bools ([]bool) in packed format.
+func (o *Buffer) enc_slice_packed_bool(p *Properties, base structPointer) error {
+       s := *structPointer_BoolSlice(base, p.field)
+       l := len(s)
+       if l == 0 {
+               return ErrNil
+       }
+       o.buf = append(o.buf, p.tagcode...)
+       o.EncodeVarint(uint64(l)) // each bool takes exactly one byte
+       for _, x := range s {
+               v := uint64(0)
+               if x {
+                       v = 1
+               }
+               p.valEnc(o, v)
+       }
+       return nil
+}
+
+func size_slice_packed_bool(p *Properties, base structPointer) (n int) {
+       s := *structPointer_BoolSlice(base, p.field)
+       l := len(s)
+       if l == 0 {
+               return 0
+       }
+       n += len(p.tagcode)
+       n += sizeVarint(uint64(l))
+       n += l // each bool takes exactly one byte
+       return
+}
+
+// Encode a slice of bytes ([]byte).
+func (o *Buffer) enc_slice_byte(p *Properties, base structPointer) error {
+       s := *structPointer_Bytes(base, p.field)
+       if s == nil {
+               return ErrNil
+       }
+       o.buf = append(o.buf, p.tagcode...)
+       o.EncodeRawBytes(s)
+       return nil
+}
+
+func (o *Buffer) enc_proto3_slice_byte(p *Properties, base structPointer) error {
+       s := *structPointer_Bytes(base, p.field)
+       if len(s) == 0 {
+               return ErrNil
+       }
+       o.buf = append(o.buf, p.tagcode...)
+       o.EncodeRawBytes(s)
+       return nil
+}
+
+func size_slice_byte(p *Properties, base structPointer) (n int) {
+       s := *structPointer_Bytes(base, p.field)
+       if s == nil && !p.oneof {
+               return 0
+       }
+       n += len(p.tagcode)
+       n += sizeRawBytes(s)
+       return
+}
+
+func size_proto3_slice_byte(p *Properties, base structPointer) (n int) {
+       s := *structPointer_Bytes(base, p.field)
+       if len(s) == 0 && !p.oneof {
+               return 0
+       }
+       n += len(p.tagcode)
+       n += sizeRawBytes(s)
+       return
+}
+
+// Encode a slice of int32s ([]int32).
+func (o *Buffer) enc_slice_int32(p *Properties, base structPointer) error {
+       s := structPointer_Word32Slice(base, p.field)
+       l := s.Len()
+       if l == 0 {
+               return ErrNil
+       }
+       for i := 0; i < l; i++ {
+               o.buf = append(o.buf, p.tagcode...)
+               x := int32(s.Index(i)) // permit sign extension to use full 64-bit range
+               p.valEnc(o, uint64(x))
+       }
+       return nil
+}
+
+func size_slice_int32(p *Properties, base structPointer) (n int) {
+       s := structPointer_Word32Slice(base, p.field)
+       l := s.Len()
+       if l == 0 {
+               return 0
+       }
+       for i := 0; i < l; i++ {
+               n += len(p.tagcode)
+               x := int32(s.Index(i)) // permit sign extension to use full 64-bit range
+               n += p.valSize(uint64(x))
+       }
+       return
+}
+
+// Encode a slice of int32s ([]int32) in packed format.
+func (o *Buffer) enc_slice_packed_int32(p *Properties, base structPointer) error {
+       s := structPointer_Word32Slice(base, p.field)
+       l := s.Len()
+       if l == 0 {
+               return ErrNil
+       }
+       // TODO: Reuse a Buffer.
+       buf := NewBuffer(nil)
+       for i := 0; i < l; i++ {
+               x := int32(s.Index(i)) // permit sign extension to use full 64-bit range
+               p.valEnc(buf, uint64(x))
+       }
+
+       o.buf = append(o.buf, p.tagcode...)
+       o.EncodeVarint(uint64(len(buf.buf)))
+       o.buf = append(o.buf, buf.buf...)
+       return nil
+}
+
+func size_slice_packed_int32(p *Properties, base structPointer) (n int) {
+       s := structPointer_Word32Slice(base, p.field)
+       l := s.Len()
+       if l == 0 {
+               return 0
+       }
+       var bufSize int
+       for i := 0; i < l; i++ {
+               x := int32(s.Index(i)) // permit sign extension to use full 64-bit range
+               bufSize += p.valSize(uint64(x))
+       }
+
+       n += len(p.tagcode)
+       n += sizeVarint(uint64(bufSize))
+       n += bufSize
+       return
+}
+
+// Encode a slice of uint32s ([]uint32).
+// Exactly the same as int32, except for no sign extension.
+func (o *Buffer) enc_slice_uint32(p *Properties, base structPointer) error {
+       s := structPointer_Word32Slice(base, p.field)
+       l := s.Len()
+       if l == 0 {
+               return ErrNil
+       }
+       for i := 0; i < l; i++ {
+               o.buf = append(o.buf, p.tagcode...)
+               x := s.Index(i)
+               p.valEnc(o, uint64(x))
+       }
+       return nil
+}
+
+func size_slice_uint32(p *Properties, base structPointer) (n int) {
+       s := structPointer_Word32Slice(base, p.field)
+       l := s.Len()
+       if l == 0 {
+               return 0
+       }
+       for i := 0; i < l; i++ {
+               n += len(p.tagcode)
+               x := s.Index(i)
+               n += p.valSize(uint64(x))
+       }
+       return
+}
+
+// Encode a slice of uint32s ([]uint32) in packed format.
+// Exactly the same as int32, except for no sign extension.
+func (o *Buffer) enc_slice_packed_uint32(p *Properties, base structPointer) error {
+       s := structPointer_Word32Slice(base, p.field)
+       l := s.Len()
+       if l == 0 {
+               return ErrNil
+       }
+       // TODO: Reuse a Buffer.
+       buf := NewBuffer(nil)
+       for i := 0; i < l; i++ {
+               p.valEnc(buf, uint64(s.Index(i)))
+       }
+
+       o.buf = append(o.buf, p.tagcode...)
+       o.EncodeVarint(uint64(len(buf.buf)))
+       o.buf = append(o.buf, buf.buf...)
+       return nil
+}
+
+func size_slice_packed_uint32(p *Properties, base structPointer) (n int) {
+       s := structPointer_Word32Slice(base, p.field)
+       l := s.Len()
+       if l == 0 {
+               return 0
+       }
+       var bufSize int
+       for i := 0; i < l; i++ {
+               bufSize += p.valSize(uint64(s.Index(i)))
+       }
+
+       n += len(p.tagcode)
+       n += sizeVarint(uint64(bufSize))
+       n += bufSize
+       return
+}
+
+// Encode a slice of int64s ([]int64).
+func (o *Buffer) enc_slice_int64(p *Properties, base structPointer) error {
+       s := structPointer_Word64Slice(base, p.field)
+       l := s.Len()
+       if l == 0 {
+               return ErrNil
+       }
+       for i := 0; i < l; i++ {
+               o.buf = append(o.buf, p.tagcode...)
+               p.valEnc(o, s.Index(i))
+       }
+       return nil
+}
+
+func size_slice_int64(p *Properties, base structPointer) (n int) {
+       s := structPointer_Word64Slice(base, p.field)
+       l := s.Len()
+       if l == 0 {
+               return 0
+       }
+       for i := 0; i < l; i++ {
+               n += len(p.tagcode)
+               n += p.valSize(s.Index(i))
+       }
+       return
+}
+
+// Encode a slice of int64s ([]int64) in packed format.
+func (o *Buffer) enc_slice_packed_int64(p *Properties, base structPointer) error {
+       s := structPointer_Word64Slice(base, p.field)
+       l := s.Len()
+       if l == 0 {
+               return ErrNil
+       }
+       // TODO: Reuse a Buffer.
+       buf := NewBuffer(nil)
+       for i := 0; i < l; i++ {
+               p.valEnc(buf, s.Index(i))
+       }
+
+       o.buf = append(o.buf, p.tagcode...)
+       o.EncodeVarint(uint64(len(buf.buf)))
+       o.buf = append(o.buf, buf.buf...)
+       return nil
+}
+
+func size_slice_packed_int64(p *Properties, base structPointer) (n int) {
+       s := structPointer_Word64Slice(base, p.field)
+       l := s.Len()
+       if l == 0 {
+               return 0
+       }
+       var bufSize int
+       for i := 0; i < l; i++ {
+               bufSize += p.valSize(s.Index(i))
+       }
+
+       n += len(p.tagcode)
+       n += sizeVarint(uint64(bufSize))
+       n += bufSize
+       return
+}
+
+// Encode a slice of slice of bytes ([][]byte).
+func (o *Buffer) enc_slice_slice_byte(p *Properties, base structPointer) error {
+       ss := *structPointer_BytesSlice(base, p.field)
+       l := len(ss)
+       if l == 0 {
+               return ErrNil
+       }
+       for i := 0; i < l; i++ {
+               o.buf = append(o.buf, p.tagcode...)
+               o.EncodeRawBytes(ss[i])
+       }
+       return nil
+}
+
+func size_slice_slice_byte(p *Properties, base structPointer) (n int) {
+       ss := *structPointer_BytesSlice(base, p.field)
+       l := len(ss)
+       if l == 0 {
+               return 0
+       }
+       n += l * len(p.tagcode)
+       for i := 0; i < l; i++ {
+               n += sizeRawBytes(ss[i])
+       }
+       return
+}
+
+// Encode a slice of strings ([]string).
+func (o *Buffer) enc_slice_string(p *Properties, base structPointer) error {
+       ss := *structPointer_StringSlice(base, p.field)
+       l := len(ss)
+       for i := 0; i < l; i++ {
+               o.buf = append(o.buf, p.tagcode...)
+               o.EncodeStringBytes(ss[i])
+       }
+       return nil
+}
+
+func size_slice_string(p *Properties, base structPointer) (n int) {
+       ss := *structPointer_StringSlice(base, p.field)
+       l := len(ss)
+       n += l * len(p.tagcode)
+       for i := 0; i < l; i++ {
+               n += sizeStringBytes(ss[i])
+       }
+       return
+}
+
+// Encode a slice of message structs ([]*struct).
+func (o *Buffer) enc_slice_struct_message(p *Properties, base structPointer) error {
+       var state errorState
+       s := structPointer_StructPointerSlice(base, p.field)
+       l := s.Len()
+
+       for i := 0; i < l; i++ {
+               structp := s.Index(i)
+               if structPointer_IsNil(structp) {
+                       return errRepeatedHasNil
+               }
+
+               // Can the object marshal itself?
+               if p.isMarshaler {
+                       m := structPointer_Interface(structp, p.stype).(Marshaler)
+                       data, err := m.Marshal()
+                       if err != nil && !state.shouldContinue(err, nil) {
+                               return err
+                       }
+                       o.buf = append(o.buf, p.tagcode...)
+                       o.EncodeRawBytes(data)
+                       continue
+               }
+
+               o.buf = append(o.buf, p.tagcode...)
+               err := o.enc_len_struct(p.sprop, structp, &state)
+               if err != nil && !state.shouldContinue(err, nil) {
+                       if err == ErrNil {
+                               return errRepeatedHasNil
+                       }
+                       return err
+               }
+       }
+       return state.err
+}
+
+func size_slice_struct_message(p *Properties, base structPointer) (n int) {
+       s := structPointer_StructPointerSlice(base, p.field)
+       l := s.Len()
+       n += l * len(p.tagcode)
+       for i := 0; i < l; i++ {
+               structp := s.Index(i)
+               if structPointer_IsNil(structp) {
+                       return // return the size up to this point
+               }
+
+               // Can the object marshal itself?
+               if p.isMarshaler {
+                       m := structPointer_Interface(structp, p.stype).(Marshaler)
+                       data, _ := m.Marshal()
+                       n += sizeRawBytes(data)
+                       continue
+               }
+
+               n0 := size_struct(p.sprop, structp)
+               n1 := sizeVarint(uint64(n0)) // size of encoded length
+               n += n0 + n1
+       }
+       return
+}
+
+// Encode a slice of group structs ([]*struct).
+func (o *Buffer) enc_slice_struct_group(p *Properties, base structPointer) error {
+       var state errorState
+       s := structPointer_StructPointerSlice(base, p.field)
+       l := s.Len()
+
+       for i := 0; i < l; i++ {
+               b := s.Index(i)
+               if structPointer_IsNil(b) {
+                       return errRepeatedHasNil
+               }
+
+               o.EncodeVarint(uint64((p.Tag << 3) | WireStartGroup))
+
+               err := o.enc_struct(p.sprop, b)
+
+               if err != nil && !state.shouldContinue(err, nil) {
+                       if err == ErrNil {
+                               return errRepeatedHasNil
+                       }
+                       return err
+               }
+
+               o.EncodeVarint(uint64((p.Tag << 3) | WireEndGroup))
+       }
+       return state.err
+}
+
+func size_slice_struct_group(p *Properties, base structPointer) (n int) {
+       s := structPointer_StructPointerSlice(base, p.field)
+       l := s.Len()
+
+       n += l * sizeVarint(uint64((p.Tag<<3)|WireStartGroup))
+       n += l * sizeVarint(uint64((p.Tag<<3)|WireEndGroup))
+       for i := 0; i < l; i++ {
+               b := s.Index(i)
+               if structPointer_IsNil(b) {
+                       return // return size up to this point
+               }
+
+               n += size_struct(p.sprop, b)
+       }
+       return
+}
+
+// Encode an extension map.
+func (o *Buffer) enc_map(p *Properties, base structPointer) error {
+       exts := structPointer_ExtMap(base, p.field)
+       if err := encodeExtensionsMap(*exts); err != nil {
+               return err
+       }
+
+       return o.enc_map_body(*exts)
+}
+
+func (o *Buffer) enc_exts(p *Properties, base structPointer) error {
+       exts := structPointer_Extensions(base, p.field)
+
+       v, mu := exts.extensionsRead()
+       if v == nil {
+               return nil
+       }
+
+       mu.Lock()
+       defer mu.Unlock()
+       if err := encodeExtensionsMap(v); err != nil {
+               return err
+       }
+
+       return o.enc_map_body(v)
+}
+
+func (o *Buffer) enc_map_body(v map[int32]Extension) error {
+       // Fast-path for common cases: zero or one extensions.
+       if len(v) <= 1 {
+               for _, e := range v {
+                       o.buf = append(o.buf, e.enc...)
+               }
+               return nil
+       }
+
+       // Sort keys to provide a deterministic encoding.
+       keys := make([]int, 0, len(v))
+       for k := range v {
+               keys = append(keys, int(k))
+       }
+       sort.Ints(keys)
+
+       for _, k := range keys {
+               o.buf = append(o.buf, v[int32(k)].enc...)
+       }
+       return nil
+}
+
+func size_map(p *Properties, base structPointer) int {
+       v := structPointer_ExtMap(base, p.field)
+       return extensionsMapSize(*v)
+}
+
+func size_exts(p *Properties, base structPointer) int {
+       v := structPointer_Extensions(base, p.field)
+       return extensionsSize(v)
+}
+
+// Encode a map field.
+func (o *Buffer) enc_new_map(p *Properties, base structPointer) error {
+       var state errorState // XXX: or do we need to plumb this through?
+
+       /*
+               A map defined as
+                       map<key_type, value_type> map_field = N;
+               is encoded in the same way as
+                       message MapFieldEntry {
+                               key_type key = 1;
+                               value_type value = 2;
+                       }
+                       repeated MapFieldEntry map_field = N;
+       */
+
+       v := structPointer_NewAt(base, p.field, p.mtype).Elem() // map[K]V
+       if v.Len() == 0 {
+               return nil
+       }
+
+       keycopy, valcopy, keybase, valbase := mapEncodeScratch(p.mtype)
+
+       enc := func() error {
+               if err := p.mkeyprop.enc(o, p.mkeyprop, keybase); err != nil {
+                       return err
+               }
+               if err := p.mvalprop.enc(o, p.mvalprop, valbase); err != nil && err != ErrNil {
+                       return err
+               }
+               return nil
+       }
+
+       // Don't sort map keys. It is not required by the spec, and C++ doesn't do it.
+       for _, key := range v.MapKeys() {
+               val := v.MapIndex(key)
+
+               keycopy.Set(key)
+               valcopy.Set(val)
+
+               o.buf = append(o.buf, p.tagcode...)
+               if err := o.enc_len_thing(enc, &state); err != nil {
+                       return err
+               }
+       }
+       return nil
+}
+
+func size_new_map(p *Properties, base structPointer) int {
+       v := structPointer_NewAt(base, p.field, p.mtype).Elem() // map[K]V
+
+       keycopy, valcopy, keybase, valbase := mapEncodeScratch(p.mtype)
+
+       n := 0
+       for _, key := range v.MapKeys() {
+               val := v.MapIndex(key)
+               keycopy.Set(key)
+               valcopy.Set(val)
+
+               // Tag codes for key and val are the responsibility of the sub-sizer.
+               keysize := p.mkeyprop.size(p.mkeyprop, keybase)
+               valsize := p.mvalprop.size(p.mvalprop, valbase)
+               entry := keysize + valsize
+               // Add on tag code and length of map entry itself.
+               n += len(p.tagcode) + sizeVarint(uint64(entry)) + entry
+       }
+       return n
+}
+
+// mapEncodeScratch returns a new reflect.Value matching the map's value type,
+// and a structPointer suitable for passing to an encoder or sizer.
+func mapEncodeScratch(mapType reflect.Type) (keycopy, valcopy reflect.Value, keybase, valbase structPointer) {
+       // Prepare addressable doubly-indirect placeholders for the key and value types.
+       // This is needed because the element-type encoders expect **T, but the map iteration produces T.
+
+       keycopy = reflect.New(mapType.Key()).Elem()                 // addressable K
+       keyptr := reflect.New(reflect.PtrTo(keycopy.Type())).Elem() // addressable *K
+       keyptr.Set(keycopy.Addr())                                  //
+       keybase = toStructPointer(keyptr.Addr())                    // **K
+
+       // Value types are more varied and require special handling.
+       switch mapType.Elem().Kind() {
+       case reflect.Slice:
+               // []byte
+               var dummy []byte
+               valcopy = reflect.ValueOf(&dummy).Elem() // addressable []byte
+               valbase = toStructPointer(valcopy.Addr())
+       case reflect.Ptr:
+               // message; the generated field type is map[K]*Msg (so V is *Msg),
+               // so we only need one level of indirection.
+               valcopy = reflect.New(mapType.Elem()).Elem() // addressable V
+               valbase = toStructPointer(valcopy.Addr())
+       default:
+               // everything else
+               valcopy = reflect.New(mapType.Elem()).Elem()                // addressable V
+               valptr := reflect.New(reflect.PtrTo(valcopy.Type())).Elem() // addressable *V
+               valptr.Set(valcopy.Addr())                                  //
+               valbase = toStructPointer(valptr.Addr())                    // **V
+       }
+       return
+}
+
+// Encode a struct.
+func (o *Buffer) enc_struct(prop *StructProperties, base structPointer) error {
+       var state errorState
+       // Encode fields in tag order so that decoders may use optimizations
+       // that depend on the ordering.
+       // https://developers.google.com/protocol-buffers/docs/encoding#order
+       for _, i := range prop.order {
+               p := prop.Prop[i]
+               if p.enc != nil {
+                       err := p.enc(o, p, base)
+                       if err != nil {
+                               if err == ErrNil {
+                                       if p.Required && state.err == nil {
+                                               state.err = &RequiredNotSetError{p.Name}
+                                       }
+                               } else if err == errRepeatedHasNil {
+                                       // Give more context to nil values in repeated fields.
+                                       return errors.New("repeated field " + p.OrigName + " has nil element")
+                               } else if !state.shouldContinue(err, p) {
+                                       return err
+                               }
+                       }
+                       if len(o.buf) > maxMarshalSize {
+                               return ErrTooLarge
+                       }
+               }
+       }
+
+       // Do oneof fields.
+       if prop.oneofMarshaler != nil {
+               m := structPointer_Interface(base, prop.stype).(Message)
+               if err := prop.oneofMarshaler(m, o); err == ErrNil {
+                       return errOneofHasNil
+               } else if err != nil {
+                       return err
+               }
+       }
+
+       // Add unrecognized fields at the end.
+       if prop.unrecField.IsValid() {
+               v := *structPointer_Bytes(base, prop.unrecField)
+               if len(o.buf)+len(v) > maxMarshalSize {
+                       return ErrTooLarge
+               }
+               if len(v) > 0 {
+                       o.buf = append(o.buf, v...)
+               }
+       }
+
+       return state.err
+}
+
+func size_struct(prop *StructProperties, base structPointer) (n int) {
+       for _, i := range prop.order {
+               p := prop.Prop[i]
+               if p.size != nil {
+                       n += p.size(p, base)
+               }
+       }
+
+       // Add unrecognized fields at the end.
+       if prop.unrecField.IsValid() {
+               v := *structPointer_Bytes(base, prop.unrecField)
+               n += len(v)
+       }
+
+       // Factor in any oneof fields.
+       if prop.oneofSizer != nil {
+               m := structPointer_Interface(base, prop.stype).(Message)
+               n += prop.oneofSizer(m)
+       }
+
+       return
+}
+
+var zeroes [20]byte // longer than any conceivable sizeVarint
+
+// Encode a struct, preceded by its encoded length (as a varint).
+func (o *Buffer) enc_len_struct(prop *StructProperties, base structPointer, state *errorState) error {
+       return o.enc_len_thing(func() error { return o.enc_struct(prop, base) }, state)
+}
+
+// Encode something, preceded by its encoded length (as a varint).
+func (o *Buffer) enc_len_thing(enc func() error, state *errorState) error {
+       iLen := len(o.buf)
+       o.buf = append(o.buf, 0, 0, 0, 0) // reserve four bytes for length
+       iMsg := len(o.buf)
+       err := enc()
+       if err != nil && !state.shouldContinue(err, nil) {
+               return err
+       }
+       lMsg := len(o.buf) - iMsg
+       lLen := sizeVarint(uint64(lMsg))
+       switch x := lLen - (iMsg - iLen); {
+       case x > 0: // actual length is x bytes larger than the space we reserved
+               // Move msg x bytes right.
+               o.buf = append(o.buf, zeroes[:x]...)
+               copy(o.buf[iMsg+x:], o.buf[iMsg:iMsg+lMsg])
+       case x < 0: // actual length is x bytes smaller than the space we reserved
+               // Move msg x bytes left.
+               copy(o.buf[iMsg+x:], o.buf[iMsg:iMsg+lMsg])
+               o.buf = o.buf[:len(o.buf)+x] // x is negative
+       }
+       // Encode the length in the reserved space.
+       o.buf = o.buf[:iLen]
+       o.EncodeVarint(uint64(lMsg))
+       o.buf = o.buf[:len(o.buf)+lMsg]
+       return state.err
+}
+
+// errorState maintains the first error that occurs and updates that error
+// with additional context.
+type errorState struct {
+       err error
+}
+
+// shouldContinue reports whether encoding should continue upon encountering the
+// given error. If the error is RequiredNotSetError, shouldContinue returns true
+// and, if this is the first appearance of that error, remembers it for future
+// reporting.
+//
+// If prop is not nil, it may update any error with additional context about the
+// field with the error.
+func (s *errorState) shouldContinue(err error, prop *Properties) bool {
+       // Ignore unset required fields.
+       reqNotSet, ok := err.(*RequiredNotSetError)
+       if !ok {
+               return false
+       }
+       if s.err == nil {
+               if prop != nil {
+                       err = &RequiredNotSetError{prop.Name + "." + reqNotSet.field}
+               }
+               s.err = err
+       }
+       return true
+}
diff --git a/vendor/github.com/golang/protobuf/proto/equal.go b/vendor/github.com/golang/protobuf/proto/equal.go
new file mode 100644 (file)
index 0000000..2ed1cf5
--- /dev/null
@@ -0,0 +1,300 @@
+// Go support for Protocol Buffers - Google's data interchange format
+//
+// Copyright 2011 The Go Authors.  All rights reserved.
+// https://github.com/golang/protobuf
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Protocol buffer comparison.
+
+package proto
+
+import (
+       "bytes"
+       "log"
+       "reflect"
+       "strings"
+)
+
+/*
+Equal returns true iff protocol buffers a and b are equal.
+The arguments must both be pointers to protocol buffer structs.
+
+Equality is defined in this way:
+  - Two messages are equal iff they are the same type,
+    corresponding fields are equal, unknown field sets
+    are equal, and extensions sets are equal.
+  - Two set scalar fields are equal iff their values are equal.
+    If the fields are of a floating-point type, remember that
+    NaN != x for all x, including NaN. If the message is defined
+    in a proto3 .proto file, fields are not "set"; specifically,
+    zero length proto3 "bytes" fields are equal (nil == {}).
+  - Two repeated fields are equal iff their lengths are the same,
+    and their corresponding elements are equal. Note a "bytes" field,
+    although represented by []byte, is not a repeated field and the
+    rule for the scalar fields described above applies.
+  - Two unset fields are equal.
+  - Two unknown field sets are equal if their current
+    encoded state is equal.
+  - Two extension sets are equal iff they have corresponding
+    elements that are pairwise equal.
+  - Two map fields are equal iff their lengths are the same,
+    and they contain the same set of elements. Zero-length map
+    fields are equal.
+  - Every other combination of things are not equal.
+
+The return value is undefined if a and b are not protocol buffers.
+*/
+func Equal(a, b Message) bool {
+       if a == nil || b == nil {
+               return a == b
+       }
+       v1, v2 := reflect.ValueOf(a), reflect.ValueOf(b)
+       if v1.Type() != v2.Type() {
+               return false
+       }
+       if v1.Kind() == reflect.Ptr {
+               if v1.IsNil() {
+                       return v2.IsNil()
+               }
+               if v2.IsNil() {
+                       return false
+               }
+               v1, v2 = v1.Elem(), v2.Elem()
+       }
+       if v1.Kind() != reflect.Struct {
+               return false
+       }
+       return equalStruct(v1, v2)
+}
+
+// v1 and v2 are known to have the same type.
+func equalStruct(v1, v2 reflect.Value) bool {
+       sprop := GetProperties(v1.Type())
+       for i := 0; i < v1.NumField(); i++ {
+               f := v1.Type().Field(i)
+               if strings.HasPrefix(f.Name, "XXX_") {
+                       continue
+               }
+               f1, f2 := v1.Field(i), v2.Field(i)
+               if f.Type.Kind() == reflect.Ptr {
+                       if n1, n2 := f1.IsNil(), f2.IsNil(); n1 && n2 {
+                               // both unset
+                               continue
+                       } else if n1 != n2 {
+                               // set/unset mismatch
+                               return false
+                       }
+                       b1, ok := f1.Interface().(raw)
+                       if ok {
+                               b2 := f2.Interface().(raw)
+                               // RawMessage
+                               if !bytes.Equal(b1.Bytes(), b2.Bytes()) {
+                                       return false
+                               }
+                               continue
+                       }
+                       f1, f2 = f1.Elem(), f2.Elem()
+               }
+               if !equalAny(f1, f2, sprop.Prop[i]) {
+                       return false
+               }
+       }
+
+       if em1 := v1.FieldByName("XXX_InternalExtensions"); em1.IsValid() {
+               em2 := v2.FieldByName("XXX_InternalExtensions")
+               if !equalExtensions(v1.Type(), em1.Interface().(XXX_InternalExtensions), em2.Interface().(XXX_InternalExtensions)) {
+                       return false
+               }
+       }
+
+       if em1 := v1.FieldByName("XXX_extensions"); em1.IsValid() {
+               em2 := v2.FieldByName("XXX_extensions")
+               if !equalExtMap(v1.Type(), em1.Interface().(map[int32]Extension), em2.Interface().(map[int32]Extension)) {
+                       return false
+               }
+       }
+
+       uf := v1.FieldByName("XXX_unrecognized")
+       if !uf.IsValid() {
+               return true
+       }
+
+       u1 := uf.Bytes()
+       u2 := v2.FieldByName("XXX_unrecognized").Bytes()
+       if !bytes.Equal(u1, u2) {
+               return false
+       }
+
+       return true
+}
+
+// v1 and v2 are known to have the same type.
+// prop may be nil.
+func equalAny(v1, v2 reflect.Value, prop *Properties) bool {
+       if v1.Type() == protoMessageType {
+               m1, _ := v1.Interface().(Message)
+               m2, _ := v2.Interface().(Message)
+               return Equal(m1, m2)
+       }
+       switch v1.Kind() {
+       case reflect.Bool:
+               return v1.Bool() == v2.Bool()
+       case reflect.Float32, reflect.Float64:
+               return v1.Float() == v2.Float()
+       case reflect.Int32, reflect.Int64:
+               return v1.Int() == v2.Int()
+       case reflect.Interface:
+               // Probably a oneof field; compare the inner values.
+               n1, n2 := v1.IsNil(), v2.IsNil()
+               if n1 || n2 {
+                       return n1 == n2
+               }
+               e1, e2 := v1.Elem(), v2.Elem()
+               if e1.Type() != e2.Type() {
+                       return false
+               }
+               return equalAny(e1, e2, nil)
+       case reflect.Map:
+               if v1.Len() != v2.Len() {
+                       return false
+               }
+               for _, key := range v1.MapKeys() {
+                       val2 := v2.MapIndex(key)
+                       if !val2.IsValid() {
+                               // This key was not found in the second map.
+                               return false
+                       }
+                       if !equalAny(v1.MapIndex(key), val2, nil) {
+                               return false
+                       }
+               }
+               return true
+       case reflect.Ptr:
+               // Maps may have nil values in them, so check for nil.
+               if v1.IsNil() && v2.IsNil() {
+                       return true
+               }
+               if v1.IsNil() != v2.IsNil() {
+                       return false
+               }
+               return equalAny(v1.Elem(), v2.Elem(), prop)
+       case reflect.Slice:
+               if v1.Type().Elem().Kind() == reflect.Uint8 {
+                       // short circuit: []byte
+
+                       // Edge case: if this is in a proto3 message, a zero length
+                       // bytes field is considered the zero value.
+                       if prop != nil && prop.proto3 && v1.Len() == 0 && v2.Len() == 0 {
+                               return true
+                       }
+                       if v1.IsNil() != v2.IsNil() {
+                               return false
+                       }
+                       return bytes.Equal(v1.Interface().([]byte), v2.Interface().([]byte))
+               }
+
+               if v1.Len() != v2.Len() {
+                       return false
+               }
+               for i := 0; i < v1.Len(); i++ {
+                       if !equalAny(v1.Index(i), v2.Index(i), prop) {
+                               return false
+                       }
+               }
+               return true
+       case reflect.String:
+               return v1.Interface().(string) == v2.Interface().(string)
+       case reflect.Struct:
+               return equalStruct(v1, v2)
+       case reflect.Uint32, reflect.Uint64:
+               return v1.Uint() == v2.Uint()
+       }
+
+       // unknown type, so not a protocol buffer
+       log.Printf("proto: don't know how to compare %v", v1)
+       return false
+}
+
+// base is the struct type that the extensions are based on.
+// x1 and x2 are InternalExtensions.
+func equalExtensions(base reflect.Type, x1, x2 XXX_InternalExtensions) bool {
+       em1, _ := x1.extensionsRead()
+       em2, _ := x2.extensionsRead()
+       return equalExtMap(base, em1, em2)
+}
+
+func equalExtMap(base reflect.Type, em1, em2 map[int32]Extension) bool {
+       if len(em1) != len(em2) {
+               return false
+       }
+
+       for extNum, e1 := range em1 {
+               e2, ok := em2[extNum]
+               if !ok {
+                       return false
+               }
+
+               m1, m2 := e1.value, e2.value
+
+               if m1 != nil && m2 != nil {
+                       // Both are unencoded.
+                       if !equalAny(reflect.ValueOf(m1), reflect.ValueOf(m2), nil) {
+                               return false
+                       }
+                       continue
+               }
+
+               // At least one is encoded. To do a semantically correct comparison
+               // we need to unmarshal them first.
+               var desc *ExtensionDesc
+               if m := extensionMaps[base]; m != nil {
+                       desc = m[extNum]
+               }
+               if desc == nil {
+                       log.Printf("proto: don't know how to compare extension %d of %v", extNum, base)
+                       continue
+               }
+               var err error
+               if m1 == nil {
+                       m1, err = decodeExtension(e1.enc, desc)
+               }
+               if m2 == nil && err == nil {
+                       m2, err = decodeExtension(e2.enc, desc)
+               }
+               if err != nil {
+                       // The encoded form is invalid.
+                       log.Printf("proto: badly encoded extension %d of %v: %v", extNum, base, err)
+                       return false
+               }
+               if !equalAny(reflect.ValueOf(m1), reflect.ValueOf(m2), nil) {
+                       return false
+               }
+       }
+
+       return true
+}
diff --git a/vendor/github.com/golang/protobuf/proto/extensions.go b/vendor/github.com/golang/protobuf/proto/extensions.go
new file mode 100644 (file)
index 0000000..eaad218
--- /dev/null
@@ -0,0 +1,587 @@
+// Go support for Protocol Buffers - Google's data interchange format
+//
+// Copyright 2010 The Go Authors.  All rights reserved.
+// https://github.com/golang/protobuf
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+package proto
+
+/*
+ * Types and routines for supporting protocol buffer extensions.
+ */
+
+import (
+       "errors"
+       "fmt"
+       "reflect"
+       "strconv"
+       "sync"
+)
+
+// ErrMissingExtension is the error returned by GetExtension if the named extension is not in the message.
+var ErrMissingExtension = errors.New("proto: missing extension")
+
+// ExtensionRange represents a range of message extensions for a protocol buffer.
+// Used in code generated by the protocol compiler.
+type ExtensionRange struct {
+       Start, End int32 // both inclusive
+}
+
+// extendableProto is an interface implemented by any protocol buffer generated by the current
+// proto compiler that may be extended.
+type extendableProto interface {
+       Message
+       ExtensionRangeArray() []ExtensionRange
+       extensionsWrite() map[int32]Extension
+       extensionsRead() (map[int32]Extension, sync.Locker)
+}
+
+// extendableProtoV1 is an interface implemented by a protocol buffer generated by the previous
+// version of the proto compiler that may be extended.
+type extendableProtoV1 interface {
+       Message
+       ExtensionRangeArray() []ExtensionRange
+       ExtensionMap() map[int32]Extension
+}
+
+// extensionAdapter is a wrapper around extendableProtoV1 that implements extendableProto.
+type extensionAdapter struct {
+       extendableProtoV1
+}
+
+func (e extensionAdapter) extensionsWrite() map[int32]Extension {
+       return e.ExtensionMap()
+}
+
+func (e extensionAdapter) extensionsRead() (map[int32]Extension, sync.Locker) {
+       return e.ExtensionMap(), notLocker{}
+}
+
+// notLocker is a sync.Locker whose Lock and Unlock methods are nops.
+type notLocker struct{}
+
+func (n notLocker) Lock()   {}
+func (n notLocker) Unlock() {}
+
+// extendable returns the extendableProto interface for the given generated proto message.
+// If the proto message has the old extension format, it returns a wrapper that implements
+// the extendableProto interface.
+func extendable(p interface{}) (extendableProto, bool) {
+       if ep, ok := p.(extendableProto); ok {
+               return ep, ok
+       }
+       if ep, ok := p.(extendableProtoV1); ok {
+               return extensionAdapter{ep}, ok
+       }
+       return nil, false
+}
+
+// XXX_InternalExtensions is an internal representation of proto extensions.
+//
+// Each generated message struct type embeds an anonymous XXX_InternalExtensions field,
+// thus gaining the unexported 'extensions' method, which can be called only from the proto package.
+//
+// The methods of XXX_InternalExtensions are not concurrency safe in general,
+// but calls to logically read-only methods such as has and get may be executed concurrently.
+type XXX_InternalExtensions struct {
+       // The struct must be indirect so that if a user inadvertently copies a
+       // generated message and its embedded XXX_InternalExtensions, they
+       // avoid the mayhem of a copied mutex.
+       //
+       // The mutex serializes all logically read-only operations to p.extensionMap.
+       // It is up to the client to ensure that write operations to p.extensionMap are
+       // mutually exclusive with other accesses.
+       p *struct {
+               mu           sync.Mutex
+               extensionMap map[int32]Extension
+       }
+}
+
+// extensionsWrite returns the extension map, creating it on first use.
+func (e *XXX_InternalExtensions) extensionsWrite() map[int32]Extension {
+       if e.p == nil {
+               e.p = new(struct {
+                       mu           sync.Mutex
+                       extensionMap map[int32]Extension
+               })
+               e.p.extensionMap = make(map[int32]Extension)
+       }
+       return e.p.extensionMap
+}
+
+// extensionsRead returns the extensions map for read-only use.  It may be nil.
+// The caller must hold the returned mutex's lock when accessing Elements within the map.
+func (e *XXX_InternalExtensions) extensionsRead() (map[int32]Extension, sync.Locker) {
+       if e.p == nil {
+               return nil, nil
+       }
+       return e.p.extensionMap, &e.p.mu
+}
+
+var extendableProtoType = reflect.TypeOf((*extendableProto)(nil)).Elem()
+var extendableProtoV1Type = reflect.TypeOf((*extendableProtoV1)(nil)).Elem()
+
+// ExtensionDesc represents an extension specification.
+// Used in generated code from the protocol compiler.
+type ExtensionDesc struct {
+       ExtendedType  Message     // nil pointer to the type that is being extended
+       ExtensionType interface{} // nil pointer to the extension type
+       Field         int32       // field number
+       Name          string      // fully-qualified name of extension, for text formatting
+       Tag           string      // protobuf tag style
+       Filename      string      // name of the file in which the extension is defined
+}
+
+func (ed *ExtensionDesc) repeated() bool {
+       t := reflect.TypeOf(ed.ExtensionType)
+       return t.Kind() == reflect.Slice && t.Elem().Kind() != reflect.Uint8
+}
+
+// Extension represents an extension in a message.
+type Extension struct {
+       // When an extension is stored in a message using SetExtension
+       // only desc and value are set. When the message is marshaled
+       // enc will be set to the encoded form of the message.
+       //
+       // When a message is unmarshaled and contains extensions, each
+       // extension will have only enc set. When such an extension is
+       // accessed using GetExtension (or GetExtensions) desc and value
+       // will be set.
+       desc  *ExtensionDesc
+       value interface{}
+       enc   []byte
+}
+
+// SetRawExtension is for testing only.
+func SetRawExtension(base Message, id int32, b []byte) {
+       epb, ok := extendable(base)
+       if !ok {
+               return
+       }
+       extmap := epb.extensionsWrite()
+       extmap[id] = Extension{enc: b}
+}
+
+// isExtensionField returns true iff the given field number is in an extension range.
+func isExtensionField(pb extendableProto, field int32) bool {
+       for _, er := range pb.ExtensionRangeArray() {
+               if er.Start <= field && field <= er.End {
+                       return true
+               }
+       }
+       return false
+}
+
+// checkExtensionTypes checks that the given extension is valid for pb.
+func checkExtensionTypes(pb extendableProto, extension *ExtensionDesc) error {
+       var pbi interface{} = pb
+       // Check the extended type.
+       if ea, ok := pbi.(extensionAdapter); ok {
+               pbi = ea.extendableProtoV1
+       }
+       if a, b := reflect.TypeOf(pbi), reflect.TypeOf(extension.ExtendedType); a != b {
+               return errors.New("proto: bad extended type; " + b.String() + " does not extend " + a.String())
+       }
+       // Check the range.
+       if !isExtensionField(pb, extension.Field) {
+               return errors.New("proto: bad extension number; not in declared ranges")
+       }
+       return nil
+}
+
+// extPropKey is sufficient to uniquely identify an extension.
+type extPropKey struct {
+       base  reflect.Type
+       field int32
+}
+
+var extProp = struct {
+       sync.RWMutex
+       m map[extPropKey]*Properties
+}{
+       m: make(map[extPropKey]*Properties),
+}
+
+func extensionProperties(ed *ExtensionDesc) *Properties {
+       key := extPropKey{base: reflect.TypeOf(ed.ExtendedType), field: ed.Field}
+
+       extProp.RLock()
+       if prop, ok := extProp.m[key]; ok {
+               extProp.RUnlock()
+               return prop
+       }
+       extProp.RUnlock()
+
+       extProp.Lock()
+       defer extProp.Unlock()
+       // Check again.
+       if prop, ok := extProp.m[key]; ok {
+               return prop
+       }
+
+       prop := new(Properties)
+       prop.Init(reflect.TypeOf(ed.ExtensionType), "unknown_name", ed.Tag, nil)
+       extProp.m[key] = prop
+       return prop
+}
+
+// encode encodes any unmarshaled (unencoded) extensions in e.
+func encodeExtensions(e *XXX_InternalExtensions) error {
+       m, mu := e.extensionsRead()
+       if m == nil {
+               return nil // fast path
+       }
+       mu.Lock()
+       defer mu.Unlock()
+       return encodeExtensionsMap(m)
+}
+
+// encode encodes any unmarshaled (unencoded) extensions in e.
+func encodeExtensionsMap(m map[int32]Extension) error {
+       for k, e := range m {
+               if e.value == nil || e.desc == nil {
+                       // Extension is only in its encoded form.
+                       continue
+               }
+
+               // We don't skip extensions that have an encoded form set,
+               // because the extension value may have been mutated after
+               // the last time this function was called.
+
+               et := reflect.TypeOf(e.desc.ExtensionType)
+               props := extensionProperties(e.desc)
+
+               p := NewBuffer(nil)
+               // If e.value has type T, the encoder expects a *struct{ X T }.
+               // Pass a *T with a zero field and hope it all works out.
+               x := reflect.New(et)
+               x.Elem().Set(reflect.ValueOf(e.value))
+               if err := props.enc(p, props, toStructPointer(x)); err != nil {
+                       return err
+               }
+               e.enc = p.buf
+               m[k] = e
+       }
+       return nil
+}
+
+func extensionsSize(e *XXX_InternalExtensions) (n int) {
+       m, mu := e.extensionsRead()
+       if m == nil {
+               return 0
+       }
+       mu.Lock()
+       defer mu.Unlock()
+       return extensionsMapSize(m)
+}
+
+func extensionsMapSize(m map[int32]Extension) (n int) {
+       for _, e := range m {
+               if e.value == nil || e.desc == nil {
+                       // Extension is only in its encoded form.
+                       n += len(e.enc)
+                       continue
+               }
+
+               // We don't skip extensions that have an encoded form set,
+               // because the extension value may have been mutated after
+               // the last time this function was called.
+
+               et := reflect.TypeOf(e.desc.ExtensionType)
+               props := extensionProperties(e.desc)
+
+               // If e.value has type T, the encoder expects a *struct{ X T }.
+               // Pass a *T with a zero field and hope it all works out.
+               x := reflect.New(et)
+               x.Elem().Set(reflect.ValueOf(e.value))
+               n += props.size(props, toStructPointer(x))
+       }
+       return
+}
+
+// HasExtension returns whether the given extension is present in pb.
+func HasExtension(pb Message, extension *ExtensionDesc) bool {
+       // TODO: Check types, field numbers, etc.?
+       epb, ok := extendable(pb)
+       if !ok {
+               return false
+       }
+       extmap, mu := epb.extensionsRead()
+       if extmap == nil {
+               return false
+       }
+       mu.Lock()
+       _, ok = extmap[extension.Field]
+       mu.Unlock()
+       return ok
+}
+
+// ClearExtension removes the given extension from pb.
+func ClearExtension(pb Message, extension *ExtensionDesc) {
+       epb, ok := extendable(pb)
+       if !ok {
+               return
+       }
+       // TODO: Check types, field numbers, etc.?
+       extmap := epb.extensionsWrite()
+       delete(extmap, extension.Field)
+}
+
+// GetExtension parses and returns the given extension of pb.
+// If the extension is not present and has no default value it returns ErrMissingExtension.
+func GetExtension(pb Message, extension *ExtensionDesc) (interface{}, error) {
+       epb, ok := extendable(pb)
+       if !ok {
+               return nil, errors.New("proto: not an extendable proto")
+       }
+
+       if err := checkExtensionTypes(epb, extension); err != nil {
+               return nil, err
+       }
+
+       emap, mu := epb.extensionsRead()
+       if emap == nil {
+               return defaultExtensionValue(extension)
+       }
+       mu.Lock()
+       defer mu.Unlock()
+       e, ok := emap[extension.Field]
+       if !ok {
+               // defaultExtensionValue returns the default value or
+               // ErrMissingExtension if there is no default.
+               return defaultExtensionValue(extension)
+       }
+
+       if e.value != nil {
+               // Already decoded. Check the descriptor, though.
+               if e.desc != extension {
+                       // This shouldn't happen. If it does, it means that
+                       // GetExtension was called twice with two different
+                       // descriptors with the same field number.
+                       return nil, errors.New("proto: descriptor conflict")
+               }
+               return e.value, nil
+       }
+
+       v, err := decodeExtension(e.enc, extension)
+       if err != nil {
+               return nil, err
+       }
+
+       // Remember the decoded version and drop the encoded version.
+       // That way it is safe to mutate what we return.
+       e.value = v
+       e.desc = extension
+       e.enc = nil
+       emap[extension.Field] = e
+       return e.value, nil
+}
+
+// defaultExtensionValue returns the default value for extension.
+// If no default for an extension is defined ErrMissingExtension is returned.
+func defaultExtensionValue(extension *ExtensionDesc) (interface{}, error) {
+       t := reflect.TypeOf(extension.ExtensionType)
+       props := extensionProperties(extension)
+
+       sf, _, err := fieldDefault(t, props)
+       if err != nil {
+               return nil, err
+       }
+
+       if sf == nil || sf.value == nil {
+               // There is no default value.
+               return nil, ErrMissingExtension
+       }
+
+       if t.Kind() != reflect.Ptr {
+               // We do not need to return a Ptr, we can directly return sf.value.
+               return sf.value, nil
+       }
+
+       // We need to return an interface{} that is a pointer to sf.value.
+       value := reflect.New(t).Elem()
+       value.Set(reflect.New(value.Type().Elem()))
+       if sf.kind == reflect.Int32 {
+               // We may have an int32 or an enum, but the underlying data is int32.
+               // Since we can't set an int32 into a non int32 reflect.value directly
+               // set it as a int32.
+               value.Elem().SetInt(int64(sf.value.(int32)))
+       } else {
+               value.Elem().Set(reflect.ValueOf(sf.value))
+       }
+       return value.Interface(), nil
+}
+
+// decodeExtension decodes an extension encoded in b.
+func decodeExtension(b []byte, extension *ExtensionDesc) (interface{}, error) {
+       o := NewBuffer(b)
+
+       t := reflect.TypeOf(extension.ExtensionType)
+
+       props := extensionProperties(extension)
+
+       // t is a pointer to a struct, pointer to basic type or a slice.
+       // Allocate a "field" to store the pointer/slice itself; the
+       // pointer/slice will be stored here. We pass
+       // the address of this field to props.dec.
+       // This passes a zero field and a *t and lets props.dec
+       // interpret it as a *struct{ x t }.
+       value := reflect.New(t).Elem()
+
+       for {
+               // Discard wire type and field number varint. It isn't needed.
+               if _, err := o.DecodeVarint(); err != nil {
+                       return nil, err
+               }
+
+               if err := props.dec(o, props, toStructPointer(value.Addr())); err != nil {
+                       return nil, err
+               }
+
+               if o.index >= len(o.buf) {
+                       break
+               }
+       }
+       return value.Interface(), nil
+}
+
+// GetExtensions returns a slice of the extensions present in pb that are also listed in es.
+// The returned slice has the same length as es; missing extensions will appear as nil elements.
+func GetExtensions(pb Message, es []*ExtensionDesc) (extensions []interface{}, err error) {
+       epb, ok := extendable(pb)
+       if !ok {
+               return nil, errors.New("proto: not an extendable proto")
+       }
+       extensions = make([]interface{}, len(es))
+       for i, e := range es {
+               extensions[i], err = GetExtension(epb, e)
+               if err == ErrMissingExtension {
+                       err = nil
+               }
+               if err != nil {
+                       return
+               }
+       }
+       return
+}
+
+// ExtensionDescs returns a new slice containing pb's extension descriptors, in undefined order.
+// For non-registered extensions, ExtensionDescs returns an incomplete descriptor containing
+// just the Field field, which defines the extension's field number.
+func ExtensionDescs(pb Message) ([]*ExtensionDesc, error) {
+       epb, ok := extendable(pb)
+       if !ok {
+               return nil, fmt.Errorf("proto: %T is not an extendable proto.Message", pb)
+       }
+       registeredExtensions := RegisteredExtensions(pb)
+
+       emap, mu := epb.extensionsRead()
+       if emap == nil {
+               return nil, nil
+       }
+       mu.Lock()
+       defer mu.Unlock()
+       extensions := make([]*ExtensionDesc, 0, len(emap))
+       for extid, e := range emap {
+               desc := e.desc
+               if desc == nil {
+                       desc = registeredExtensions[extid]
+                       if desc == nil {
+                               desc = &ExtensionDesc{Field: extid}
+                       }
+               }
+
+               extensions = append(extensions, desc)
+       }
+       return extensions, nil
+}
+
+// SetExtension sets the specified extension of pb to the specified value.
+func SetExtension(pb Message, extension *ExtensionDesc, value interface{}) error {
+       epb, ok := extendable(pb)
+       if !ok {
+               return errors.New("proto: not an extendable proto")
+       }
+       if err := checkExtensionTypes(epb, extension); err != nil {
+               return err
+       }
+       typ := reflect.TypeOf(extension.ExtensionType)
+       if typ != reflect.TypeOf(value) {
+               return errors.New("proto: bad extension value type")
+       }
+       // nil extension values need to be caught early, because the
+       // encoder can't distinguish an ErrNil due to a nil extension
+       // from an ErrNil due to a missing field. Extensions are
+       // always optional, so the encoder would just swallow the error
+       // and drop all the extensions from the encoded message.
+       if reflect.ValueOf(value).IsNil() {
+               return fmt.Errorf("proto: SetExtension called with nil value of type %T", value)
+       }
+
+       extmap := epb.extensionsWrite()
+       extmap[extension.Field] = Extension{desc: extension, value: value}
+       return nil
+}
+
+// ClearAllExtensions clears all extensions from pb.
+func ClearAllExtensions(pb Message) {
+       epb, ok := extendable(pb)
+       if !ok {
+               return
+       }
+       m := epb.extensionsWrite()
+       for k := range m {
+               delete(m, k)
+       }
+}
+
+// A global registry of extensions.
+// The generated code will register the generated descriptors by calling RegisterExtension.
+
+var extensionMaps = make(map[reflect.Type]map[int32]*ExtensionDesc)
+
+// RegisterExtension is called from the generated code.
+func RegisterExtension(desc *ExtensionDesc) {
+       st := reflect.TypeOf(desc.ExtendedType).Elem()
+       m := extensionMaps[st]
+       if m == nil {
+               m = make(map[int32]*ExtensionDesc)
+               extensionMaps[st] = m
+       }
+       if _, ok := m[desc.Field]; ok {
+               panic("proto: duplicate extension registered: " + st.String() + " " + strconv.Itoa(int(desc.Field)))
+       }
+       m[desc.Field] = desc
+}
+
+// RegisteredExtensions returns a map of the registered extensions of a
+// protocol buffer struct, indexed by the extension number.
+// The argument pb should be a nil pointer to the struct type.
+func RegisteredExtensions(pb Message) map[int32]*ExtensionDesc {
+       return extensionMaps[reflect.TypeOf(pb).Elem()]
+}
diff --git a/vendor/github.com/golang/protobuf/proto/lib.go b/vendor/github.com/golang/protobuf/proto/lib.go
new file mode 100644 (file)
index 0000000..1c22550
--- /dev/null
@@ -0,0 +1,897 @@
+// Go support for Protocol Buffers - Google's data interchange format
+//
+// Copyright 2010 The Go Authors.  All rights reserved.
+// https://github.com/golang/protobuf
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/*
+Package proto converts data structures to and from the wire format of
+protocol buffers.  It works in concert with the Go source code generated
+for .proto files by the protocol compiler.
+
+A summary of the properties of the protocol buffer interface
+for a protocol buffer variable v:
+
+  - Names are turned from camel_case to CamelCase for export.
+  - There are no methods on v to set fields; just treat
+       them as structure fields.
+  - There are getters that return a field's value if set,
+       and return the field's default value if unset.
+       The getters work even if the receiver is a nil message.
+  - The zero value for a struct is its correct initialization state.
+       All desired fields must be set before marshaling.
+  - A Reset() method will restore a protobuf struct to its zero state.
+  - Non-repeated fields are pointers to the values; nil means unset.
+       That is, optional or required field int32 f becomes F *int32.
+  - Repeated fields are slices.
+  - Helper functions are available to aid the setting of fields.
+       msg.Foo = proto.String("hello") // set field
+  - Constants are defined to hold the default values of all fields that
+       have them.  They have the form Default_StructName_FieldName.
+       Because the getter methods handle defaulted values,
+       direct use of these constants should be rare.
+  - Enums are given type names and maps from names to values.
+       Enum values are prefixed by the enclosing message's name, or by the
+       enum's type name if it is a top-level enum. Enum types have a String
+       method, and a Enum method to assist in message construction.
+  - Nested messages, groups and enums have type names prefixed with the name of
+       the surrounding message type.
+  - Extensions are given descriptor names that start with E_,
+       followed by an underscore-delimited list of the nested messages
+       that contain it (if any) followed by the CamelCased name of the
+       extension field itself.  HasExtension, ClearExtension, GetExtension
+       and SetExtension are functions for manipulating extensions.
+  - Oneof field sets are given a single field in their message,
+       with distinguished wrapper types for each possible field value.
+  - Marshal and Unmarshal are functions to encode and decode the wire format.
+
+When the .proto file specifies `syntax="proto3"`, there are some differences:
+
+  - Non-repeated fields of non-message type are values instead of pointers.
+  - Enum types do not get an Enum method.
+
+The simplest way to describe this is to see an example.
+Given file test.proto, containing
+
+       package example;
+
+       enum FOO { X = 17; }
+
+       message Test {
+         required string label = 1;
+         optional int32 type = 2 [default=77];
+         repeated int64 reps = 3;
+         optional group OptionalGroup = 4 {
+           required string RequiredField = 5;
+         }
+         oneof union {
+           int32 number = 6;
+           string name = 7;
+         }
+       }
+
+The resulting file, test.pb.go, is:
+
+       package example
+
+       import proto "github.com/golang/protobuf/proto"
+       import math "math"
+
+       type FOO int32
+       const (
+               FOO_X FOO = 17
+       )
+       var FOO_name = map[int32]string{
+               17: "X",
+       }
+       var FOO_value = map[string]int32{
+               "X": 17,
+       }
+
+       func (x FOO) Enum() *FOO {
+               p := new(FOO)
+               *p = x
+               return p
+       }
+       func (x FOO) String() string {
+               return proto.EnumName(FOO_name, int32(x))
+       }
+       func (x *FOO) UnmarshalJSON(data []byte) error {
+               value, err := proto.UnmarshalJSONEnum(FOO_value, data)
+               if err != nil {
+                       return err
+               }
+               *x = FOO(value)
+               return nil
+       }
+
+       type Test struct {
+               Label         *string             `protobuf:"bytes,1,req,name=label" json:"label,omitempty"`
+               Type          *int32              `protobuf:"varint,2,opt,name=type,def=77" json:"type,omitempty"`
+               Reps          []int64             `protobuf:"varint,3,rep,name=reps" json:"reps,omitempty"`
+               Optionalgroup *Test_OptionalGroup `protobuf:"group,4,opt,name=OptionalGroup" json:"optionalgroup,omitempty"`
+               // Types that are valid to be assigned to Union:
+               //      *Test_Number
+               //      *Test_Name
+               Union            isTest_Union `protobuf_oneof:"union"`
+               XXX_unrecognized []byte       `json:"-"`
+       }
+       func (m *Test) Reset()         { *m = Test{} }
+       func (m *Test) String() string { return proto.CompactTextString(m) }
+       func (*Test) ProtoMessage() {}
+
+       type isTest_Union interface {
+               isTest_Union()
+       }
+
+       type Test_Number struct {
+               Number int32 `protobuf:"varint,6,opt,name=number"`
+       }
+       type Test_Name struct {
+               Name string `protobuf:"bytes,7,opt,name=name"`
+       }
+
+       func (*Test_Number) isTest_Union() {}
+       func (*Test_Name) isTest_Union()   {}
+
+       func (m *Test) GetUnion() isTest_Union {
+               if m != nil {
+                       return m.Union
+               }
+               return nil
+       }
+       const Default_Test_Type int32 = 77
+
+       func (m *Test) GetLabel() string {
+               if m != nil && m.Label != nil {
+                       return *m.Label
+               }
+               return ""
+       }
+
+       func (m *Test) GetType() int32 {
+               if m != nil && m.Type != nil {
+                       return *m.Type
+               }
+               return Default_Test_Type
+       }
+
+       func (m *Test) GetOptionalgroup() *Test_OptionalGroup {
+               if m != nil {
+                       return m.Optionalgroup
+               }
+               return nil
+       }
+
+       type Test_OptionalGroup struct {
+               RequiredField *string `protobuf:"bytes,5,req" json:"RequiredField,omitempty"`
+       }
+       func (m *Test_OptionalGroup) Reset()         { *m = Test_OptionalGroup{} }
+       func (m *Test_OptionalGroup) String() string { return proto.CompactTextString(m) }
+
+       func (m *Test_OptionalGroup) GetRequiredField() string {
+               if m != nil && m.RequiredField != nil {
+                       return *m.RequiredField
+               }
+               return ""
+       }
+
+       func (m *Test) GetNumber() int32 {
+               if x, ok := m.GetUnion().(*Test_Number); ok {
+                       return x.Number
+               }
+               return 0
+       }
+
+       func (m *Test) GetName() string {
+               if x, ok := m.GetUnion().(*Test_Name); ok {
+                       return x.Name
+               }
+               return ""
+       }
+
+       func init() {
+               proto.RegisterEnum("example.FOO", FOO_name, FOO_value)
+       }
+
+To create and play with a Test object:
+
+       package main
+
+       import (
+               "log"
+
+               "github.com/golang/protobuf/proto"
+               pb "./example.pb"
+       )
+
+       func main() {
+               test := &pb.Test{
+                       Label: proto.String("hello"),
+                       Type:  proto.Int32(17),
+                       Reps:  []int64{1, 2, 3},
+                       Optionalgroup: &pb.Test_OptionalGroup{
+                               RequiredField: proto.String("good bye"),
+                       },
+                       Union: &pb.Test_Name{"fred"},
+               }
+               data, err := proto.Marshal(test)
+               if err != nil {
+                       log.Fatal("marshaling error: ", err)
+               }
+               newTest := &pb.Test{}
+               err = proto.Unmarshal(data, newTest)
+               if err != nil {
+                       log.Fatal("unmarshaling error: ", err)
+               }
+               // Now test and newTest contain the same data.
+               if test.GetLabel() != newTest.GetLabel() {
+                       log.Fatalf("data mismatch %q != %q", test.GetLabel(), newTest.GetLabel())
+               }
+               // Use a type switch to determine which oneof was set.
+               switch u := test.Union.(type) {
+               case *pb.Test_Number: // u.Number contains the number.
+               case *pb.Test_Name: // u.Name contains the string.
+               }
+               // etc.
+       }
+*/
+package proto
+
+import (
+       "encoding/json"
+       "fmt"
+       "log"
+       "reflect"
+       "sort"
+       "strconv"
+       "sync"
+)
+
+// Message is implemented by generated protocol buffer messages.
+type Message interface {
+       Reset()
+       String() string
+       ProtoMessage()
+}
+
+// Stats records allocation details about the protocol buffer encoders
+// and decoders.  Useful for tuning the library itself.
+type Stats struct {
+       Emalloc uint64 // mallocs in encode
+       Dmalloc uint64 // mallocs in decode
+       Encode  uint64 // number of encodes
+       Decode  uint64 // number of decodes
+       Chit    uint64 // number of cache hits
+       Cmiss   uint64 // number of cache misses
+       Size    uint64 // number of sizes
+}
+
+// Set to true to enable stats collection.
+const collectStats = false
+
+var stats Stats
+
+// GetStats returns a copy of the global Stats structure.
+func GetStats() Stats { return stats }
+
+// A Buffer is a buffer manager for marshaling and unmarshaling
+// protocol buffers.  It may be reused between invocations to
+// reduce memory usage.  It is not necessary to use a Buffer;
+// the global functions Marshal and Unmarshal create a
+// temporary Buffer and are fine for most applications.
+type Buffer struct {
+       buf   []byte // encode/decode byte stream
+       index int    // read point
+
+       // pools of basic types to amortize allocation.
+       bools   []bool
+       uint32s []uint32
+       uint64s []uint64
+
+       // extra pools, only used with pointer_reflect.go
+       int32s   []int32
+       int64s   []int64
+       float32s []float32
+       float64s []float64
+}
+
+// NewBuffer allocates a new Buffer and initializes its internal data to
+// the contents of the argument slice.
+func NewBuffer(e []byte) *Buffer {
+       return &Buffer{buf: e}
+}
+
+// Reset resets the Buffer, ready for marshaling a new protocol buffer.
+func (p *Buffer) Reset() {
+       p.buf = p.buf[0:0] // for reading/writing
+       p.index = 0        // for reading
+}
+
+// SetBuf replaces the internal buffer with the slice,
+// ready for unmarshaling the contents of the slice.
+func (p *Buffer) SetBuf(s []byte) {
+       p.buf = s
+       p.index = 0
+}
+
+// Bytes returns the contents of the Buffer.
+func (p *Buffer) Bytes() []byte { return p.buf }
+
+/*
+ * Helper routines for simplifying the creation of optional fields of basic type.
+ */
+
+// Bool is a helper routine that allocates a new bool value
+// to store v and returns a pointer to it.
+func Bool(v bool) *bool {
+       return &v
+}
+
+// Int32 is a helper routine that allocates a new int32 value
+// to store v and returns a pointer to it.
+func Int32(v int32) *int32 {
+       return &v
+}
+
+// Int is a helper routine that allocates a new int32 value
+// to store v and returns a pointer to it, but unlike Int32
+// its argument value is an int.
+func Int(v int) *int32 {
+       p := new(int32)
+       *p = int32(v)
+       return p
+}
+
+// Int64 is a helper routine that allocates a new int64 value
+// to store v and returns a pointer to it.
+func Int64(v int64) *int64 {
+       return &v
+}
+
+// Float32 is a helper routine that allocates a new float32 value
+// to store v and returns a pointer to it.
+func Float32(v float32) *float32 {
+       return &v
+}
+
+// Float64 is a helper routine that allocates a new float64 value
+// to store v and returns a pointer to it.
+func Float64(v float64) *float64 {
+       return &v
+}
+
+// Uint32 is a helper routine that allocates a new uint32 value
+// to store v and returns a pointer to it.
+func Uint32(v uint32) *uint32 {
+       return &v
+}
+
+// Uint64 is a helper routine that allocates a new uint64 value
+// to store v and returns a pointer to it.
+func Uint64(v uint64) *uint64 {
+       return &v
+}
+
+// String is a helper routine that allocates a new string value
+// to store v and returns a pointer to it.
+func String(v string) *string {
+       return &v
+}
+
+// EnumName is a helper function to simplify printing protocol buffer enums
+// by name.  Given an enum map and a value, it returns a useful string.
+func EnumName(m map[int32]string, v int32) string {
+       s, ok := m[v]
+       if ok {
+               return s
+       }
+       return strconv.Itoa(int(v))
+}
+
+// UnmarshalJSONEnum is a helper function to simplify recovering enum int values
+// from their JSON-encoded representation. Given a map from the enum's symbolic
+// names to its int values, and a byte buffer containing the JSON-encoded
+// value, it returns an int32 that can be cast to the enum type by the caller.
+//
+// The function can deal with both JSON representations, numeric and symbolic.
+func UnmarshalJSONEnum(m map[string]int32, data []byte, enumName string) (int32, error) {
+       if data[0] == '"' {
+               // New style: enums are strings.
+               var repr string
+               if err := json.Unmarshal(data, &repr); err != nil {
+                       return -1, err
+               }
+               val, ok := m[repr]
+               if !ok {
+                       return 0, fmt.Errorf("unrecognized enum %s value %q", enumName, repr)
+               }
+               return val, nil
+       }
+       // Old style: enums are ints.
+       var val int32
+       if err := json.Unmarshal(data, &val); err != nil {
+               return 0, fmt.Errorf("cannot unmarshal %#q into enum %s", data, enumName)
+       }
+       return val, nil
+}
+
+// DebugPrint dumps the encoded data in b in a debugging format with a header
+// including the string s. Used in testing but made available for general debugging.
+func (p *Buffer) DebugPrint(s string, b []byte) {
+       var u uint64
+
+       obuf := p.buf
+       index := p.index
+       p.buf = b
+       p.index = 0
+       depth := 0
+
+       fmt.Printf("\n--- %s ---\n", s)
+
+out:
+       for {
+               for i := 0; i < depth; i++ {
+                       fmt.Print("  ")
+               }
+
+               index := p.index
+               if index == len(p.buf) {
+                       break
+               }
+
+               op, err := p.DecodeVarint()
+               if err != nil {
+                       fmt.Printf("%3d: fetching op err %v\n", index, err)
+                       break out
+               }
+               tag := op >> 3
+               wire := op & 7
+
+               switch wire {
+               default:
+                       fmt.Printf("%3d: t=%3d unknown wire=%d\n",
+                               index, tag, wire)
+                       break out
+
+               case WireBytes:
+                       var r []byte
+
+                       r, err = p.DecodeRawBytes(false)
+                       if err != nil {
+                               break out
+                       }
+                       fmt.Printf("%3d: t=%3d bytes [%d]", index, tag, len(r))
+                       if len(r) <= 6 {
+                               for i := 0; i < len(r); i++ {
+                                       fmt.Printf(" %.2x", r[i])
+                               }
+                       } else {
+                               for i := 0; i < 3; i++ {
+                                       fmt.Printf(" %.2x", r[i])
+                               }
+                               fmt.Printf(" ..")
+                               for i := len(r) - 3; i < len(r); i++ {
+                                       fmt.Printf(" %.2x", r[i])
+                               }
+                       }
+                       fmt.Printf("\n")
+
+               case WireFixed32:
+                       u, err = p.DecodeFixed32()
+                       if err != nil {
+                               fmt.Printf("%3d: t=%3d fix32 err %v\n", index, tag, err)
+                               break out
+                       }
+                       fmt.Printf("%3d: t=%3d fix32 %d\n", index, tag, u)
+
+               case WireFixed64:
+                       u, err = p.DecodeFixed64()
+                       if err != nil {
+                               fmt.Printf("%3d: t=%3d fix64 err %v\n", index, tag, err)
+                               break out
+                       }
+                       fmt.Printf("%3d: t=%3d fix64 %d\n", index, tag, u)
+
+               case WireVarint:
+                       u, err = p.DecodeVarint()
+                       if err != nil {
+                               fmt.Printf("%3d: t=%3d varint err %v\n", index, tag, err)
+                               break out
+                       }
+                       fmt.Printf("%3d: t=%3d varint %d\n", index, tag, u)
+
+               case WireStartGroup:
+                       fmt.Printf("%3d: t=%3d start\n", index, tag)
+                       depth++
+
+               case WireEndGroup:
+                       depth--
+                       fmt.Printf("%3d: t=%3d end\n", index, tag)
+               }
+       }
+
+       if depth != 0 {
+               fmt.Printf("%3d: start-end not balanced %d\n", p.index, depth)
+       }
+       fmt.Printf("\n")
+
+       p.buf = obuf
+       p.index = index
+}
+
+// SetDefaults sets unset protocol buffer fields to their default values.
+// It only modifies fields that are both unset and have defined defaults.
+// It recursively sets default values in any non-nil sub-messages.
+func SetDefaults(pb Message) {
+       setDefaults(reflect.ValueOf(pb), true, false)
+}
+
+// v is a pointer to a struct.
+func setDefaults(v reflect.Value, recur, zeros bool) {
+       v = v.Elem()
+
+       defaultMu.RLock()
+       dm, ok := defaults[v.Type()]
+       defaultMu.RUnlock()
+       if !ok {
+               dm = buildDefaultMessage(v.Type())
+               defaultMu.Lock()
+               defaults[v.Type()] = dm
+               defaultMu.Unlock()
+       }
+
+       for _, sf := range dm.scalars {
+               f := v.Field(sf.index)
+               if !f.IsNil() {
+                       // field already set
+                       continue
+               }
+               dv := sf.value
+               if dv == nil && !zeros {
+                       // no explicit default, and don't want to set zeros
+                       continue
+               }
+               fptr := f.Addr().Interface() // **T
+               // TODO: Consider batching the allocations we do here.
+               switch sf.kind {
+               case reflect.Bool:
+                       b := new(bool)
+                       if dv != nil {
+                               *b = dv.(bool)
+                       }
+                       *(fptr.(**bool)) = b
+               case reflect.Float32:
+                       f := new(float32)
+                       if dv != nil {
+                               *f = dv.(float32)
+                       }
+                       *(fptr.(**float32)) = f
+               case reflect.Float64:
+                       f := new(float64)
+                       if dv != nil {
+                               *f = dv.(float64)
+                       }
+                       *(fptr.(**float64)) = f
+               case reflect.Int32:
+                       // might be an enum
+                       if ft := f.Type(); ft != int32PtrType {
+                               // enum
+                               f.Set(reflect.New(ft.Elem()))
+                               if dv != nil {
+                                       f.Elem().SetInt(int64(dv.(int32)))
+                               }
+                       } else {
+                               // int32 field
+                               i := new(int32)
+                               if dv != nil {
+                                       *i = dv.(int32)
+                               }
+                               *(fptr.(**int32)) = i
+                       }
+               case reflect.Int64:
+                       i := new(int64)
+                       if dv != nil {
+                               *i = dv.(int64)
+                       }
+                       *(fptr.(**int64)) = i
+               case reflect.String:
+                       s := new(string)
+                       if dv != nil {
+                               *s = dv.(string)
+                       }
+                       *(fptr.(**string)) = s
+               case reflect.Uint8:
+                       // exceptional case: []byte
+                       var b []byte
+                       if dv != nil {
+                               db := dv.([]byte)
+                               b = make([]byte, len(db))
+                               copy(b, db)
+                       } else {
+                               b = []byte{}
+                       }
+                       *(fptr.(*[]byte)) = b
+               case reflect.Uint32:
+                       u := new(uint32)
+                       if dv != nil {
+                               *u = dv.(uint32)
+                       }
+                       *(fptr.(**uint32)) = u
+               case reflect.Uint64:
+                       u := new(uint64)
+                       if dv != nil {
+                               *u = dv.(uint64)
+                       }
+                       *(fptr.(**uint64)) = u
+               default:
+                       log.Printf("proto: can't set default for field %v (sf.kind=%v)", f, sf.kind)
+               }
+       }
+
+       for _, ni := range dm.nested {
+               f := v.Field(ni)
+               // f is *T or []*T or map[T]*T
+               switch f.Kind() {
+               case reflect.Ptr:
+                       if f.IsNil() {
+                               continue
+                       }
+                       setDefaults(f, recur, zeros)
+
+               case reflect.Slice:
+                       for i := 0; i < f.Len(); i++ {
+                               e := f.Index(i)
+                               if e.IsNil() {
+                                       continue
+                               }
+                               setDefaults(e, recur, zeros)
+                       }
+
+               case reflect.Map:
+                       for _, k := range f.MapKeys() {
+                               e := f.MapIndex(k)
+                               if e.IsNil() {
+                                       continue
+                               }
+                               setDefaults(e, recur, zeros)
+                       }
+               }
+       }
+}
+
+var (
+       // defaults maps a protocol buffer struct type to a slice of the fields,
+       // with its scalar fields set to their proto-declared non-zero default values.
+       defaultMu sync.RWMutex
+       defaults  = make(map[reflect.Type]defaultMessage)
+
+       int32PtrType = reflect.TypeOf((*int32)(nil))
+)
+
+// defaultMessage represents information about the default values of a message.
+type defaultMessage struct {
+       scalars []scalarField
+       nested  []int // struct field index of nested messages
+}
+
+type scalarField struct {
+       index int          // struct field index
+       kind  reflect.Kind // element type (the T in *T or []T)
+       value interface{}  // the proto-declared default value, or nil
+}
+
+// t is a struct type.
+func buildDefaultMessage(t reflect.Type) (dm defaultMessage) {
+       sprop := GetProperties(t)
+       for _, prop := range sprop.Prop {
+               fi, ok := sprop.decoderTags.get(prop.Tag)
+               if !ok {
+                       // XXX_unrecognized
+                       continue
+               }
+               ft := t.Field(fi).Type
+
+               sf, nested, err := fieldDefault(ft, prop)
+               switch {
+               case err != nil:
+                       log.Print(err)
+               case nested:
+                       dm.nested = append(dm.nested, fi)
+               case sf != nil:
+                       sf.index = fi
+                       dm.scalars = append(dm.scalars, *sf)
+               }
+       }
+
+       return dm
+}
+
+// fieldDefault returns the scalarField for field type ft.
+// sf will be nil if the field can not have a default.
+// nestedMessage will be true if this is a nested message.
+// Note that sf.index is not set on return.
+func fieldDefault(ft reflect.Type, prop *Properties) (sf *scalarField, nestedMessage bool, err error) {
+       var canHaveDefault bool
+       switch ft.Kind() {
+       case reflect.Ptr:
+               if ft.Elem().Kind() == reflect.Struct {
+                       nestedMessage = true
+               } else {
+                       canHaveDefault = true // proto2 scalar field
+               }
+
+       case reflect.Slice:
+               switch ft.Elem().Kind() {
+               case reflect.Ptr:
+                       nestedMessage = true // repeated message
+               case reflect.Uint8:
+                       canHaveDefault = true // bytes field
+               }
+
+       case reflect.Map:
+               if ft.Elem().Kind() == reflect.Ptr {
+                       nestedMessage = true // map with message values
+               }
+       }
+
+       if !canHaveDefault {
+               if nestedMessage {
+                       return nil, true, nil
+               }
+               return nil, false, nil
+       }
+
+       // We now know that ft is a pointer or slice.
+       sf = &scalarField{kind: ft.Elem().Kind()}
+
+       // scalar fields without defaults
+       if !prop.HasDefault {
+               return sf, false, nil
+       }
+
+       // a scalar field: either *T or []byte
+       switch ft.Elem().Kind() {
+       case reflect.Bool:
+               x, err := strconv.ParseBool(prop.Default)
+               if err != nil {
+                       return nil, false, fmt.Errorf("proto: bad default bool %q: %v", prop.Default, err)
+               }
+               sf.value = x
+       case reflect.Float32:
+               x, err := strconv.ParseFloat(prop.Default, 32)
+               if err != nil {
+                       return nil, false, fmt.Errorf("proto: bad default float32 %q: %v", prop.Default, err)
+               }
+               sf.value = float32(x)
+       case reflect.Float64:
+               x, err := strconv.ParseFloat(prop.Default, 64)
+               if err != nil {
+                       return nil, false, fmt.Errorf("proto: bad default float64 %q: %v", prop.Default, err)
+               }
+               sf.value = x
+       case reflect.Int32:
+               x, err := strconv.ParseInt(prop.Default, 10, 32)
+               if err != nil {
+                       return nil, false, fmt.Errorf("proto: bad default int32 %q: %v", prop.Default, err)
+               }
+               sf.value = int32(x)
+       case reflect.Int64:
+               x, err := strconv.ParseInt(prop.Default, 10, 64)
+               if err != nil {
+                       return nil, false, fmt.Errorf("proto: bad default int64 %q: %v", prop.Default, err)
+               }
+               sf.value = x
+       case reflect.String:
+               sf.value = prop.Default
+       case reflect.Uint8:
+               // []byte (not *uint8)
+               sf.value = []byte(prop.Default)
+       case reflect.Uint32:
+               x, err := strconv.ParseUint(prop.Default, 10, 32)
+               if err != nil {
+                       return nil, false, fmt.Errorf("proto: bad default uint32 %q: %v", prop.Default, err)
+               }
+               sf.value = uint32(x)
+       case reflect.Uint64:
+               x, err := strconv.ParseUint(prop.Default, 10, 64)
+               if err != nil {
+                       return nil, false, fmt.Errorf("proto: bad default uint64 %q: %v", prop.Default, err)
+               }
+               sf.value = x
+       default:
+               return nil, false, fmt.Errorf("proto: unhandled def kind %v", ft.Elem().Kind())
+       }
+
+       return sf, false, nil
+}
+
+// Map fields may have key types of non-float scalars, strings and enums.
+// The easiest way to sort them in some deterministic order is to use fmt.
+// If this turns out to be inefficient we can always consider other options,
+// such as doing a Schwartzian transform.
+
+func mapKeys(vs []reflect.Value) sort.Interface {
+       s := mapKeySorter{
+               vs: vs,
+               // default Less function: textual comparison
+               less: func(a, b reflect.Value) bool {
+                       return fmt.Sprint(a.Interface()) < fmt.Sprint(b.Interface())
+               },
+       }
+
+       // Type specialization per https://developers.google.com/protocol-buffers/docs/proto#maps;
+       // numeric keys are sorted numerically.
+       if len(vs) == 0 {
+               return s
+       }
+       switch vs[0].Kind() {
+       case reflect.Int32, reflect.Int64:
+               s.less = func(a, b reflect.Value) bool { return a.Int() < b.Int() }
+       case reflect.Uint32, reflect.Uint64:
+               s.less = func(a, b reflect.Value) bool { return a.Uint() < b.Uint() }
+       }
+
+       return s
+}
+
+type mapKeySorter struct {
+       vs   []reflect.Value
+       less func(a, b reflect.Value) bool
+}
+
+func (s mapKeySorter) Len() int      { return len(s.vs) }
+func (s mapKeySorter) Swap(i, j int) { s.vs[i], s.vs[j] = s.vs[j], s.vs[i] }
+func (s mapKeySorter) Less(i, j int) bool {
+       return s.less(s.vs[i], s.vs[j])
+}
+
+// isProto3Zero reports whether v is a zero proto3 value.
+func isProto3Zero(v reflect.Value) bool {
+       switch v.Kind() {
+       case reflect.Bool:
+               return !v.Bool()
+       case reflect.Int32, reflect.Int64:
+               return v.Int() == 0
+       case reflect.Uint32, reflect.Uint64:
+               return v.Uint() == 0
+       case reflect.Float32, reflect.Float64:
+               return v.Float() == 0
+       case reflect.String:
+               return v.String() == ""
+       }
+       return false
+}
+
+// ProtoPackageIsVersion2 is referenced from generated protocol buffer files
+// to assert that that code is compatible with this version of the proto package.
+const ProtoPackageIsVersion2 = true
+
+// ProtoPackageIsVersion1 is referenced from generated protocol buffer files
+// to assert that that code is compatible with this version of the proto package.
+const ProtoPackageIsVersion1 = true
diff --git a/vendor/github.com/golang/protobuf/proto/message_set.go b/vendor/github.com/golang/protobuf/proto/message_set.go
new file mode 100644 (file)
index 0000000..fd982de
--- /dev/null
@@ -0,0 +1,311 @@
+// Go support for Protocol Buffers - Google's data interchange format
+//
+// Copyright 2010 The Go Authors.  All rights reserved.
+// https://github.com/golang/protobuf
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+package proto
+
+/*
+ * Support for message sets.
+ */
+
+import (
+       "bytes"
+       "encoding/json"
+       "errors"
+       "fmt"
+       "reflect"
+       "sort"
+)
+
+// errNoMessageTypeID occurs when a protocol buffer does not have a message type ID.
+// A message type ID is required for storing a protocol buffer in a message set.
+var errNoMessageTypeID = errors.New("proto does not have a message type ID")
+
+// The first two types (_MessageSet_Item and messageSet)
+// model what the protocol compiler produces for the following protocol message:
+//   message MessageSet {
+//     repeated group Item = 1 {
+//       required int32 type_id = 2;
+//       required string message = 3;
+//     };
+//   }
+// That is the MessageSet wire format. We can't use a proto to generate these
+// because that would introduce a circular dependency between it and this package.
+
+type _MessageSet_Item struct {
+       TypeId  *int32 `protobuf:"varint,2,req,name=type_id"`
+       Message []byte `protobuf:"bytes,3,req,name=message"`
+}
+
+type messageSet struct {
+       Item             []*_MessageSet_Item `protobuf:"group,1,rep"`
+       XXX_unrecognized []byte
+       // TODO: caching?
+}
+
+// Make sure messageSet is a Message.
+var _ Message = (*messageSet)(nil)
+
+// messageTypeIder is an interface satisfied by a protocol buffer type
+// that may be stored in a MessageSet.
+type messageTypeIder interface {
+       MessageTypeId() int32
+}
+
+func (ms *messageSet) find(pb Message) *_MessageSet_Item {
+       mti, ok := pb.(messageTypeIder)
+       if !ok {
+               return nil
+       }
+       id := mti.MessageTypeId()
+       for _, item := range ms.Item {
+               if *item.TypeId == id {
+                       return item
+               }
+       }
+       return nil
+}
+
+func (ms *messageSet) Has(pb Message) bool {
+       if ms.find(pb) != nil {
+               return true
+       }
+       return false
+}
+
+func (ms *messageSet) Unmarshal(pb Message) error {
+       if item := ms.find(pb); item != nil {
+               return Unmarshal(item.Message, pb)
+       }
+       if _, ok := pb.(messageTypeIder); !ok {
+               return errNoMessageTypeID
+       }
+       return nil // TODO: return error instead?
+}
+
+func (ms *messageSet) Marshal(pb Message) error {
+       msg, err := Marshal(pb)
+       if err != nil {
+               return err
+       }
+       if item := ms.find(pb); item != nil {
+               // reuse existing item
+               item.Message = msg
+               return nil
+       }
+
+       mti, ok := pb.(messageTypeIder)
+       if !ok {
+               return errNoMessageTypeID
+       }
+
+       mtid := mti.MessageTypeId()
+       ms.Item = append(ms.Item, &_MessageSet_Item{
+               TypeId:  &mtid,
+               Message: msg,
+       })
+       return nil
+}
+
+func (ms *messageSet) Reset()         { *ms = messageSet{} }
+func (ms *messageSet) String() string { return CompactTextString(ms) }
+func (*messageSet) ProtoMessage()     {}
+
+// Support for the message_set_wire_format message option.
+
+func skipVarint(buf []byte) []byte {
+       i := 0
+       for ; buf[i]&0x80 != 0; i++ {
+       }
+       return buf[i+1:]
+}
+
+// MarshalMessageSet encodes the extension map represented by m in the message set wire format.
+// It is called by generated Marshal methods on protocol buffer messages with the message_set_wire_format option.
+func MarshalMessageSet(exts interface{}) ([]byte, error) {
+       var m map[int32]Extension
+       switch exts := exts.(type) {
+       case *XXX_InternalExtensions:
+               if err := encodeExtensions(exts); err != nil {
+                       return nil, err
+               }
+               m, _ = exts.extensionsRead()
+       case map[int32]Extension:
+               if err := encodeExtensionsMap(exts); err != nil {
+                       return nil, err
+               }
+               m = exts
+       default:
+               return nil, errors.New("proto: not an extension map")
+       }
+
+       // Sort extension IDs to provide a deterministic encoding.
+       // See also enc_map in encode.go.
+       ids := make([]int, 0, len(m))
+       for id := range m {
+               ids = append(ids, int(id))
+       }
+       sort.Ints(ids)
+
+       ms := &messageSet{Item: make([]*_MessageSet_Item, 0, len(m))}
+       for _, id := range ids {
+               e := m[int32(id)]
+               // Remove the wire type and field number varint, as well as the length varint.
+               msg := skipVarint(skipVarint(e.enc))
+
+               ms.Item = append(ms.Item, &_MessageSet_Item{
+                       TypeId:  Int32(int32(id)),
+                       Message: msg,
+               })
+       }
+       return Marshal(ms)
+}
+
+// UnmarshalMessageSet decodes the extension map encoded in buf in the message set wire format.
+// It is called by generated Unmarshal methods on protocol buffer messages with the message_set_wire_format option.
+func UnmarshalMessageSet(buf []byte, exts interface{}) error {
+       var m map[int32]Extension
+       switch exts := exts.(type) {
+       case *XXX_InternalExtensions:
+               m = exts.extensionsWrite()
+       case map[int32]Extension:
+               m = exts
+       default:
+               return errors.New("proto: not an extension map")
+       }
+
+       ms := new(messageSet)
+       if err := Unmarshal(buf, ms); err != nil {
+               return err
+       }
+       for _, item := range ms.Item {
+               id := *item.TypeId
+               msg := item.Message
+
+               // Restore wire type and field number varint, plus length varint.
+               // Be careful to preserve duplicate items.
+               b := EncodeVarint(uint64(id)<<3 | WireBytes)
+               if ext, ok := m[id]; ok {
+                       // Existing data; rip off the tag and length varint
+                       // so we join the new data correctly.
+                       // We can assume that ext.enc is set because we are unmarshaling.
+                       o := ext.enc[len(b):]   // skip wire type and field number
+                       _, n := DecodeVarint(o) // calculate length of length varint
+                       o = o[n:]               // skip length varint
+                       msg = append(o, msg...) // join old data and new data
+               }
+               b = append(b, EncodeVarint(uint64(len(msg)))...)
+               b = append(b, msg...)
+
+               m[id] = Extension{enc: b}
+       }
+       return nil
+}
+
+// MarshalMessageSetJSON encodes the extension map represented by m in JSON format.
+// It is called by generated MarshalJSON methods on protocol buffer messages with the message_set_wire_format option.
+func MarshalMessageSetJSON(exts interface{}) ([]byte, error) {
+       var m map[int32]Extension
+       switch exts := exts.(type) {
+       case *XXX_InternalExtensions:
+               m, _ = exts.extensionsRead()
+       case map[int32]Extension:
+               m = exts
+       default:
+               return nil, errors.New("proto: not an extension map")
+       }
+       var b bytes.Buffer
+       b.WriteByte('{')
+
+       // Process the map in key order for deterministic output.
+       ids := make([]int32, 0, len(m))
+       for id := range m {
+               ids = append(ids, id)
+       }
+       sort.Sort(int32Slice(ids)) // int32Slice defined in text.go
+
+       for i, id := range ids {
+               ext := m[id]
+               if i > 0 {
+                       b.WriteByte(',')
+               }
+
+               msd, ok := messageSetMap[id]
+               if !ok {
+                       // Unknown type; we can't render it, so skip it.
+                       continue
+               }
+               fmt.Fprintf(&b, `"[%s]":`, msd.name)
+
+               x := ext.value
+               if x == nil {
+                       x = reflect.New(msd.t.Elem()).Interface()
+                       if err := Unmarshal(ext.enc, x.(Message)); err != nil {
+                               return nil, err
+                       }
+               }
+               d, err := json.Marshal(x)
+               if err != nil {
+                       return nil, err
+               }
+               b.Write(d)
+       }
+       b.WriteByte('}')
+       return b.Bytes(), nil
+}
+
+// UnmarshalMessageSetJSON decodes the extension map encoded in buf in JSON format.
+// It is called by generated UnmarshalJSON methods on protocol buffer messages with the message_set_wire_format option.
+func UnmarshalMessageSetJSON(buf []byte, exts interface{}) error {
+       // Common-case fast path.
+       if len(buf) == 0 || bytes.Equal(buf, []byte("{}")) {
+               return nil
+       }
+
+       // This is fairly tricky, and it's not clear that it is needed.
+       return errors.New("TODO: UnmarshalMessageSetJSON not yet implemented")
+}
+
+// A global registry of types that can be used in a MessageSet.
+
+var messageSetMap = make(map[int32]messageSetDesc)
+
+type messageSetDesc struct {
+       t    reflect.Type // pointer to struct
+       name string
+}
+
+// RegisterMessageSetType is called from the generated code.
+func RegisterMessageSetType(m Message, fieldNum int32, name string) {
+       messageSetMap[fieldNum] = messageSetDesc{
+               t:    reflect.TypeOf(m),
+               name: name,
+       }
+}
diff --git a/vendor/github.com/golang/protobuf/proto/pointer_reflect.go b/vendor/github.com/golang/protobuf/proto/pointer_reflect.go
new file mode 100644 (file)
index 0000000..fb512e2
--- /dev/null
@@ -0,0 +1,484 @@
+// Go support for Protocol Buffers - Google's data interchange format
+//
+// Copyright 2012 The Go Authors.  All rights reserved.
+// https://github.com/golang/protobuf
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// +build appengine js
+
+// This file contains an implementation of proto field accesses using package reflect.
+// It is slower than the code in pointer_unsafe.go but it avoids package unsafe and can
+// be used on App Engine.
+
+package proto
+
+import (
+       "math"
+       "reflect"
+)
+
+// A structPointer is a pointer to a struct.
+type structPointer struct {
+       v reflect.Value
+}
+
+// toStructPointer returns a structPointer equivalent to the given reflect value.
+// The reflect value must itself be a pointer to a struct.
+func toStructPointer(v reflect.Value) structPointer {
+       return structPointer{v}
+}
+
+// IsNil reports whether p is nil.
+func structPointer_IsNil(p structPointer) bool {
+       return p.v.IsNil()
+}
+
+// Interface returns the struct pointer as an interface value.
+func structPointer_Interface(p structPointer, _ reflect.Type) interface{} {
+       return p.v.Interface()
+}
+
+// A field identifies a field in a struct, accessible from a structPointer.
+// In this implementation, a field is identified by the sequence of field indices
+// passed to reflect's FieldByIndex.
+type field []int
+
+// toField returns a field equivalent to the given reflect field.
+func toField(f *reflect.StructField) field {
+       return f.Index
+}
+
+// invalidField is an invalid field identifier.
+var invalidField = field(nil)
+
+// IsValid reports whether the field identifier is valid.
+func (f field) IsValid() bool { return f != nil }
+
+// field returns the given field in the struct as a reflect value.
+func structPointer_field(p structPointer, f field) reflect.Value {
+       // Special case: an extension map entry with a value of type T
+       // passes a *T to the struct-handling code with a zero field,
+       // expecting that it will be treated as equivalent to *struct{ X T },
+       // which has the same memory layout. We have to handle that case
+       // specially, because reflect will panic if we call FieldByIndex on a
+       // non-struct.
+       if f == nil {
+               return p.v.Elem()
+       }
+
+       return p.v.Elem().FieldByIndex(f)
+}
+
+// ifield returns the given field in the struct as an interface value.
+func structPointer_ifield(p structPointer, f field) interface{} {
+       return structPointer_field(p, f).Addr().Interface()
+}
+
+// Bytes returns the address of a []byte field in the struct.
+func structPointer_Bytes(p structPointer, f field) *[]byte {
+       return structPointer_ifield(p, f).(*[]byte)
+}
+
+// BytesSlice returns the address of a [][]byte field in the struct.
+func structPointer_BytesSlice(p structPointer, f field) *[][]byte {
+       return structPointer_ifield(p, f).(*[][]byte)
+}
+
+// Bool returns the address of a *bool field in the struct.
+func structPointer_Bool(p structPointer, f field) **bool {
+       return structPointer_ifield(p, f).(**bool)
+}
+
+// BoolVal returns the address of a bool field in the struct.
+func structPointer_BoolVal(p structPointer, f field) *bool {
+       return structPointer_ifield(p, f).(*bool)
+}
+
+// BoolSlice returns the address of a []bool field in the struct.
+func structPointer_BoolSlice(p structPointer, f field) *[]bool {
+       return structPointer_ifield(p, f).(*[]bool)
+}
+
+// String returns the address of a *string field in the struct.
+func structPointer_String(p structPointer, f field) **string {
+       return structPointer_ifield(p, f).(**string)
+}
+
+// StringVal returns the address of a string field in the struct.
+func structPointer_StringVal(p structPointer, f field) *string {
+       return structPointer_ifield(p, f).(*string)
+}
+
+// StringSlice returns the address of a []string field in the struct.
+func structPointer_StringSlice(p structPointer, f field) *[]string {
+       return structPointer_ifield(p, f).(*[]string)
+}
+
+// Extensions returns the address of an extension map field in the struct.
+func structPointer_Extensions(p structPointer, f field) *XXX_InternalExtensions {
+       return structPointer_ifield(p, f).(*XXX_InternalExtensions)
+}
+
+// ExtMap returns the address of an extension map field in the struct.
+func structPointer_ExtMap(p structPointer, f field) *map[int32]Extension {
+       return structPointer_ifield(p, f).(*map[int32]Extension)
+}
+
+// NewAt returns the reflect.Value for a pointer to a field in the struct.
+func structPointer_NewAt(p structPointer, f field, typ reflect.Type) reflect.Value {
+       return structPointer_field(p, f).Addr()
+}
+
+// SetStructPointer writes a *struct field in the struct.
+func structPointer_SetStructPointer(p structPointer, f field, q structPointer) {
+       structPointer_field(p, f).Set(q.v)
+}
+
+// GetStructPointer reads a *struct field in the struct.
+func structPointer_GetStructPointer(p structPointer, f field) structPointer {
+       return structPointer{structPointer_field(p, f)}
+}
+
+// StructPointerSlice the address of a []*struct field in the struct.
+func structPointer_StructPointerSlice(p structPointer, f field) structPointerSlice {
+       return structPointerSlice{structPointer_field(p, f)}
+}
+
+// A structPointerSlice represents the address of a slice of pointers to structs
+// (themselves messages or groups). That is, v.Type() is *[]*struct{...}.
+type structPointerSlice struct {
+       v reflect.Value
+}
+
+func (p structPointerSlice) Len() int                  { return p.v.Len() }
+func (p structPointerSlice) Index(i int) structPointer { return structPointer{p.v.Index(i)} }
+func (p structPointerSlice) Append(q structPointer) {
+       p.v.Set(reflect.Append(p.v, q.v))
+}
+
+var (
+       int32Type   = reflect.TypeOf(int32(0))
+       uint32Type  = reflect.TypeOf(uint32(0))
+       float32Type = reflect.TypeOf(float32(0))
+       int64Type   = reflect.TypeOf(int64(0))
+       uint64Type  = reflect.TypeOf(uint64(0))
+       float64Type = reflect.TypeOf(float64(0))
+)
+
+// A word32 represents a field of type *int32, *uint32, *float32, or *enum.
+// That is, v.Type() is *int32, *uint32, *float32, or *enum and v is assignable.
+type word32 struct {
+       v reflect.Value
+}
+
+// IsNil reports whether p is nil.
+func word32_IsNil(p word32) bool {
+       return p.v.IsNil()
+}
+
+// Set sets p to point at a newly allocated word with bits set to x.
+func word32_Set(p word32, o *Buffer, x uint32) {
+       t := p.v.Type().Elem()
+       switch t {
+       case int32Type:
+               if len(o.int32s) == 0 {
+                       o.int32s = make([]int32, uint32PoolSize)
+               }
+               o.int32s[0] = int32(x)
+               p.v.Set(reflect.ValueOf(&o.int32s[0]))
+               o.int32s = o.int32s[1:]
+               return
+       case uint32Type:
+               if len(o.uint32s) == 0 {
+                       o.uint32s = make([]uint32, uint32PoolSize)
+               }
+               o.uint32s[0] = x
+               p.v.Set(reflect.ValueOf(&o.uint32s[0]))
+               o.uint32s = o.uint32s[1:]
+               return
+       case float32Type:
+               if len(o.float32s) == 0 {
+                       o.float32s = make([]float32, uint32PoolSize)
+               }
+               o.float32s[0] = math.Float32frombits(x)
+               p.v.Set(reflect.ValueOf(&o.float32s[0]))
+               o.float32s = o.float32s[1:]
+               return
+       }
+
+       // must be enum
+       p.v.Set(reflect.New(t))
+       p.v.Elem().SetInt(int64(int32(x)))
+}
+
+// Get gets the bits pointed at by p, as a uint32.
+func word32_Get(p word32) uint32 {
+       elem := p.v.Elem()
+       switch elem.Kind() {
+       case reflect.Int32:
+               return uint32(elem.Int())
+       case reflect.Uint32:
+               return uint32(elem.Uint())
+       case reflect.Float32:
+               return math.Float32bits(float32(elem.Float()))
+       }
+       panic("unreachable")
+}
+
+// Word32 returns a reference to a *int32, *uint32, *float32, or *enum field in the struct.
+func structPointer_Word32(p structPointer, f field) word32 {
+       return word32{structPointer_field(p, f)}
+}
+
+// A word32Val represents a field of type int32, uint32, float32, or enum.
+// That is, v.Type() is int32, uint32, float32, or enum and v is assignable.
+type word32Val struct {
+       v reflect.Value
+}
+
+// Set sets *p to x.
+func word32Val_Set(p word32Val, x uint32) {
+       switch p.v.Type() {
+       case int32Type:
+               p.v.SetInt(int64(x))
+               return
+       case uint32Type:
+               p.v.SetUint(uint64(x))
+               return
+       case float32Type:
+               p.v.SetFloat(float64(math.Float32frombits(x)))
+               return
+       }
+
+       // must be enum
+       p.v.SetInt(int64(int32(x)))
+}
+
+// Get gets the bits pointed at by p, as a uint32.
+func word32Val_Get(p word32Val) uint32 {
+       elem := p.v
+       switch elem.Kind() {
+       case reflect.Int32:
+               return uint32(elem.Int())
+       case reflect.Uint32:
+               return uint32(elem.Uint())
+       case reflect.Float32:
+               return math.Float32bits(float32(elem.Float()))
+       }
+       panic("unreachable")
+}
+
+// Word32Val returns a reference to a int32, uint32, float32, or enum field in the struct.
+func structPointer_Word32Val(p structPointer, f field) word32Val {
+       return word32Val{structPointer_field(p, f)}
+}
+
+// A word32Slice is a slice of 32-bit values.
+// That is, v.Type() is []int32, []uint32, []float32, or []enum.
+type word32Slice struct {
+       v reflect.Value
+}
+
+func (p word32Slice) Append(x uint32) {
+       n, m := p.v.Len(), p.v.Cap()
+       if n < m {
+               p.v.SetLen(n + 1)
+       } else {
+               t := p.v.Type().Elem()
+               p.v.Set(reflect.Append(p.v, reflect.Zero(t)))
+       }
+       elem := p.v.Index(n)
+       switch elem.Kind() {
+       case reflect.Int32:
+               elem.SetInt(int64(int32(x)))
+       case reflect.Uint32:
+               elem.SetUint(uint64(x))
+       case reflect.Float32:
+               elem.SetFloat(float64(math.Float32frombits(x)))
+       }
+}
+
+func (p word32Slice) Len() int {
+       return p.v.Len()
+}
+
+func (p word32Slice) Index(i int) uint32 {
+       elem := p.v.Index(i)
+       switch elem.Kind() {
+       case reflect.Int32:
+               return uint32(elem.Int())
+       case reflect.Uint32:
+               return uint32(elem.Uint())
+       case reflect.Float32:
+               return math.Float32bits(float32(elem.Float()))
+       }
+       panic("unreachable")
+}
+
+// Word32Slice returns a reference to a []int32, []uint32, []float32, or []enum field in the struct.
+func structPointer_Word32Slice(p structPointer, f field) word32Slice {
+       return word32Slice{structPointer_field(p, f)}
+}
+
+// word64 is like word32 but for 64-bit values.
+type word64 struct {
+       v reflect.Value
+}
+
+func word64_Set(p word64, o *Buffer, x uint64) {
+       t := p.v.Type().Elem()
+       switch t {
+       case int64Type:
+               if len(o.int64s) == 0 {
+                       o.int64s = make([]int64, uint64PoolSize)
+               }
+               o.int64s[0] = int64(x)
+               p.v.Set(reflect.ValueOf(&o.int64s[0]))
+               o.int64s = o.int64s[1:]
+               return
+       case uint64Type:
+               if len(o.uint64s) == 0 {
+                       o.uint64s = make([]uint64, uint64PoolSize)
+               }
+               o.uint64s[0] = x
+               p.v.Set(reflect.ValueOf(&o.uint64s[0]))
+               o.uint64s = o.uint64s[1:]
+               return
+       case float64Type:
+               if len(o.float64s) == 0 {
+                       o.float64s = make([]float64, uint64PoolSize)
+               }
+               o.float64s[0] = math.Float64frombits(x)
+               p.v.Set(reflect.ValueOf(&o.float64s[0]))
+               o.float64s = o.float64s[1:]
+               return
+       }
+       panic("unreachable")
+}
+
+func word64_IsNil(p word64) bool {
+       return p.v.IsNil()
+}
+
+func word64_Get(p word64) uint64 {
+       elem := p.v.Elem()
+       switch elem.Kind() {
+       case reflect.Int64:
+               return uint64(elem.Int())
+       case reflect.Uint64:
+               return elem.Uint()
+       case reflect.Float64:
+               return math.Float64bits(elem.Float())
+       }
+       panic("unreachable")
+}
+
+func structPointer_Word64(p structPointer, f field) word64 {
+       return word64{structPointer_field(p, f)}
+}
+
+// word64Val is like word32Val but for 64-bit values.
+type word64Val struct {
+       v reflect.Value
+}
+
+func word64Val_Set(p word64Val, o *Buffer, x uint64) {
+       switch p.v.Type() {
+       case int64Type:
+               p.v.SetInt(int64(x))
+               return
+       case uint64Type:
+               p.v.SetUint(x)
+               return
+       case float64Type:
+               p.v.SetFloat(math.Float64frombits(x))
+               return
+       }
+       panic("unreachable")
+}
+
+func word64Val_Get(p word64Val) uint64 {
+       elem := p.v
+       switch elem.Kind() {
+       case reflect.Int64:
+               return uint64(elem.Int())
+       case reflect.Uint64:
+               return elem.Uint()
+       case reflect.Float64:
+               return math.Float64bits(elem.Float())
+       }
+       panic("unreachable")
+}
+
+func structPointer_Word64Val(p structPointer, f field) word64Val {
+       return word64Val{structPointer_field(p, f)}
+}
+
+type word64Slice struct {
+       v reflect.Value
+}
+
+func (p word64Slice) Append(x uint64) {
+       n, m := p.v.Len(), p.v.Cap()
+       if n < m {
+               p.v.SetLen(n + 1)
+       } else {
+               t := p.v.Type().Elem()
+               p.v.Set(reflect.Append(p.v, reflect.Zero(t)))
+       }
+       elem := p.v.Index(n)
+       switch elem.Kind() {
+       case reflect.Int64:
+               elem.SetInt(int64(int64(x)))
+       case reflect.Uint64:
+               elem.SetUint(uint64(x))
+       case reflect.Float64:
+               elem.SetFloat(float64(math.Float64frombits(x)))
+       }
+}
+
+func (p word64Slice) Len() int {
+       return p.v.Len()
+}
+
+func (p word64Slice) Index(i int) uint64 {
+       elem := p.v.Index(i)
+       switch elem.Kind() {
+       case reflect.Int64:
+               return uint64(elem.Int())
+       case reflect.Uint64:
+               return uint64(elem.Uint())
+       case reflect.Float64:
+               return math.Float64bits(float64(elem.Float()))
+       }
+       panic("unreachable")
+}
+
+func structPointer_Word64Slice(p structPointer, f field) word64Slice {
+       return word64Slice{structPointer_field(p, f)}
+}
diff --git a/vendor/github.com/golang/protobuf/proto/pointer_unsafe.go b/vendor/github.com/golang/protobuf/proto/pointer_unsafe.go
new file mode 100644 (file)
index 0000000..6b5567d
--- /dev/null
@@ -0,0 +1,270 @@
+// Go support for Protocol Buffers - Google's data interchange format
+//
+// Copyright 2012 The Go Authors.  All rights reserved.
+// https://github.com/golang/protobuf
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// +build !appengine,!js
+
+// This file contains the implementation of the proto field accesses using package unsafe.
+
+package proto
+
+import (
+       "reflect"
+       "unsafe"
+)
+
+// NOTE: These type_Foo functions would more idiomatically be methods,
+// but Go does not allow methods on pointer types, and we must preserve
+// some pointer type for the garbage collector. We use these
+// funcs with clunky names as our poor approximation to methods.
+//
+// An alternative would be
+//     type structPointer struct { p unsafe.Pointer }
+// but that does not registerize as well.
+
+// A structPointer is a pointer to a struct.
+type structPointer unsafe.Pointer
+
+// toStructPointer returns a structPointer equivalent to the given reflect value.
+func toStructPointer(v reflect.Value) structPointer {
+       return structPointer(unsafe.Pointer(v.Pointer()))
+}
+
+// IsNil reports whether p is nil.
+func structPointer_IsNil(p structPointer) bool {
+       return p == nil
+}
+
+// Interface returns the struct pointer, assumed to have element type t,
+// as an interface value.
+func structPointer_Interface(p structPointer, t reflect.Type) interface{} {
+       return reflect.NewAt(t, unsafe.Pointer(p)).Interface()
+}
+
+// A field identifies a field in a struct, accessible from a structPointer.
+// In this implementation, a field is identified by its byte offset from the start of the struct.
+type field uintptr
+
+// toField returns a field equivalent to the given reflect field.
+func toField(f *reflect.StructField) field {
+       return field(f.Offset)
+}
+
+// invalidField is an invalid field identifier.
+const invalidField = ^field(0)
+
+// IsValid reports whether the field identifier is valid.
+func (f field) IsValid() bool {
+       return f != ^field(0)
+}
+
+// Bytes returns the address of a []byte field in the struct.
+func structPointer_Bytes(p structPointer, f field) *[]byte {
+       return (*[]byte)(unsafe.Pointer(uintptr(p) + uintptr(f)))
+}
+
+// BytesSlice returns the address of a [][]byte field in the struct.
+func structPointer_BytesSlice(p structPointer, f field) *[][]byte {
+       return (*[][]byte)(unsafe.Pointer(uintptr(p) + uintptr(f)))
+}
+
+// Bool returns the address of a *bool field in the struct.
+func structPointer_Bool(p structPointer, f field) **bool {
+       return (**bool)(unsafe.Pointer(uintptr(p) + uintptr(f)))
+}
+
+// BoolVal returns the address of a bool field in the struct.
+func structPointer_BoolVal(p structPointer, f field) *bool {
+       return (*bool)(unsafe.Pointer(uintptr(p) + uintptr(f)))
+}
+
+// BoolSlice returns the address of a []bool field in the struct.
+func structPointer_BoolSlice(p structPointer, f field) *[]bool {
+       return (*[]bool)(unsafe.Pointer(uintptr(p) + uintptr(f)))
+}
+
+// String returns the address of a *string field in the struct.
+func structPointer_String(p structPointer, f field) **string {
+       return (**string)(unsafe.Pointer(uintptr(p) + uintptr(f)))
+}
+
+// StringVal returns the address of a string field in the struct.
+func structPointer_StringVal(p structPointer, f field) *string {
+       return (*string)(unsafe.Pointer(uintptr(p) + uintptr(f)))
+}
+
+// StringSlice returns the address of a []string field in the struct.
+func structPointer_StringSlice(p structPointer, f field) *[]string {
+       return (*[]string)(unsafe.Pointer(uintptr(p) + uintptr(f)))
+}
+
+// ExtMap returns the address of an extension map field in the struct.
+func structPointer_Extensions(p structPointer, f field) *XXX_InternalExtensions {
+       return (*XXX_InternalExtensions)(unsafe.Pointer(uintptr(p) + uintptr(f)))
+}
+
+func structPointer_ExtMap(p structPointer, f field) *map[int32]Extension {
+       return (*map[int32]Extension)(unsafe.Pointer(uintptr(p) + uintptr(f)))
+}
+
+// NewAt returns the reflect.Value for a pointer to a field in the struct.
+func structPointer_NewAt(p structPointer, f field, typ reflect.Type) reflect.Value {
+       return reflect.NewAt(typ, unsafe.Pointer(uintptr(p)+uintptr(f)))
+}
+
+// SetStructPointer writes a *struct field in the struct.
+func structPointer_SetStructPointer(p structPointer, f field, q structPointer) {
+       *(*structPointer)(unsafe.Pointer(uintptr(p) + uintptr(f))) = q
+}
+
+// GetStructPointer reads a *struct field in the struct.
+func structPointer_GetStructPointer(p structPointer, f field) structPointer {
+       return *(*structPointer)(unsafe.Pointer(uintptr(p) + uintptr(f)))
+}
+
+// StructPointerSlice the address of a []*struct field in the struct.
+func structPointer_StructPointerSlice(p structPointer, f field) *structPointerSlice {
+       return (*structPointerSlice)(unsafe.Pointer(uintptr(p) + uintptr(f)))
+}
+
+// A structPointerSlice represents a slice of pointers to structs (themselves submessages or groups).
+type structPointerSlice []structPointer
+
+func (v *structPointerSlice) Len() int                  { return len(*v) }
+func (v *structPointerSlice) Index(i int) structPointer { return (*v)[i] }
+func (v *structPointerSlice) Append(p structPointer)    { *v = append(*v, p) }
+
+// A word32 is the address of a "pointer to 32-bit value" field.
+type word32 **uint32
+
+// IsNil reports whether *v is nil.
+func word32_IsNil(p word32) bool {
+       return *p == nil
+}
+
+// Set sets *v to point at a newly allocated word set to x.
+func word32_Set(p word32, o *Buffer, x uint32) {
+       if len(o.uint32s) == 0 {
+               o.uint32s = make([]uint32, uint32PoolSize)
+       }
+       o.uint32s[0] = x
+       *p = &o.uint32s[0]
+       o.uint32s = o.uint32s[1:]
+}
+
+// Get gets the value pointed at by *v.
+func word32_Get(p word32) uint32 {
+       return **p
+}
+
+// Word32 returns the address of a *int32, *uint32, *float32, or *enum field in the struct.
+func structPointer_Word32(p structPointer, f field) word32 {
+       return word32((**uint32)(unsafe.Pointer(uintptr(p) + uintptr(f))))
+}
+
+// A word32Val is the address of a 32-bit value field.
+type word32Val *uint32
+
+// Set sets *p to x.
+func word32Val_Set(p word32Val, x uint32) {
+       *p = x
+}
+
+// Get gets the value pointed at by p.
+func word32Val_Get(p word32Val) uint32 {
+       return *p
+}
+
+// Word32Val returns the address of a *int32, *uint32, *float32, or *enum field in the struct.
+func structPointer_Word32Val(p structPointer, f field) word32Val {
+       return word32Val((*uint32)(unsafe.Pointer(uintptr(p) + uintptr(f))))
+}
+
+// A word32Slice is a slice of 32-bit values.
+type word32Slice []uint32
+
+func (v *word32Slice) Append(x uint32)    { *v = append(*v, x) }
+func (v *word32Slice) Len() int           { return len(*v) }
+func (v *word32Slice) Index(i int) uint32 { return (*v)[i] }
+
+// Word32Slice returns the address of a []int32, []uint32, []float32, or []enum field in the struct.
+func structPointer_Word32Slice(p structPointer, f field) *word32Slice {
+       return (*word32Slice)(unsafe.Pointer(uintptr(p) + uintptr(f)))
+}
+
+// word64 is like word32 but for 64-bit values.
+type word64 **uint64
+
+func word64_Set(p word64, o *Buffer, x uint64) {
+       if len(o.uint64s) == 0 {
+               o.uint64s = make([]uint64, uint64PoolSize)
+       }
+       o.uint64s[0] = x
+       *p = &o.uint64s[0]
+       o.uint64s = o.uint64s[1:]
+}
+
+func word64_IsNil(p word64) bool {
+       return *p == nil
+}
+
+func word64_Get(p word64) uint64 {
+       return **p
+}
+
+func structPointer_Word64(p structPointer, f field) word64 {
+       return word64((**uint64)(unsafe.Pointer(uintptr(p) + uintptr(f))))
+}
+
+// word64Val is like word32Val but for 64-bit values.
+type word64Val *uint64
+
+func word64Val_Set(p word64Val, o *Buffer, x uint64) {
+       *p = x
+}
+
+func word64Val_Get(p word64Val) uint64 {
+       return *p
+}
+
+func structPointer_Word64Val(p structPointer, f field) word64Val {
+       return word64Val((*uint64)(unsafe.Pointer(uintptr(p) + uintptr(f))))
+}
+
+// word64Slice is like word32Slice but for 64-bit values.
+type word64Slice []uint64
+
+func (v *word64Slice) Append(x uint64)    { *v = append(*v, x) }
+func (v *word64Slice) Len() int           { return len(*v) }
+func (v *word64Slice) Index(i int) uint64 { return (*v)[i] }
+
+func structPointer_Word64Slice(p structPointer, f field) *word64Slice {
+       return (*word64Slice)(unsafe.Pointer(uintptr(p) + uintptr(f)))
+}
diff --git a/vendor/github.com/golang/protobuf/proto/properties.go b/vendor/github.com/golang/protobuf/proto/properties.go
new file mode 100644 (file)
index 0000000..ec2289c
--- /dev/null
@@ -0,0 +1,872 @@
+// Go support for Protocol Buffers - Google's data interchange format
+//
+// Copyright 2010 The Go Authors.  All rights reserved.
+// https://github.com/golang/protobuf
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+package proto
+
+/*
+ * Routines for encoding data into the wire format for protocol buffers.
+ */
+
+import (
+       "fmt"
+       "log"
+       "os"
+       "reflect"
+       "sort"
+       "strconv"
+       "strings"
+       "sync"
+)
+
+const debug bool = false
+
+// Constants that identify the encoding of a value on the wire.
+const (
+       WireVarint     = 0
+       WireFixed64    = 1
+       WireBytes      = 2
+       WireStartGroup = 3
+       WireEndGroup   = 4
+       WireFixed32    = 5
+)
+
+const startSize = 10 // initial slice/string sizes
+
+// Encoders are defined in encode.go
+// An encoder outputs the full representation of a field, including its
+// tag and encoder type.
+type encoder func(p *Buffer, prop *Properties, base structPointer) error
+
+// A valueEncoder encodes a single integer in a particular encoding.
+type valueEncoder func(o *Buffer, x uint64) error
+
+// Sizers are defined in encode.go
+// A sizer returns the encoded size of a field, including its tag and encoder
+// type.
+type sizer func(prop *Properties, base structPointer) int
+
+// A valueSizer returns the encoded size of a single integer in a particular
+// encoding.
+type valueSizer func(x uint64) int
+
+// Decoders are defined in decode.go
+// A decoder creates a value from its wire representation.
+// Unrecognized subelements are saved in unrec.
+type decoder func(p *Buffer, prop *Properties, base structPointer) error
+
+// A valueDecoder decodes a single integer in a particular encoding.
+type valueDecoder func(o *Buffer) (x uint64, err error)
+
+// A oneofMarshaler does the marshaling for all oneof fields in a message.
+type oneofMarshaler func(Message, *Buffer) error
+
+// A oneofUnmarshaler does the unmarshaling for a oneof field in a message.
+type oneofUnmarshaler func(Message, int, int, *Buffer) (bool, error)
+
+// A oneofSizer does the sizing for all oneof fields in a message.
+type oneofSizer func(Message) int
+
+// tagMap is an optimization over map[int]int for typical protocol buffer
+// use-cases. Encoded protocol buffers are often in tag order with small tag
+// numbers.
+type tagMap struct {
+       fastTags []int
+       slowTags map[int]int
+}
+
+// tagMapFastLimit is the upper bound on the tag number that will be stored in
+// the tagMap slice rather than its map.
+const tagMapFastLimit = 1024
+
+func (p *tagMap) get(t int) (int, bool) {
+       if t > 0 && t < tagMapFastLimit {
+               if t >= len(p.fastTags) {
+                       return 0, false
+               }
+               fi := p.fastTags[t]
+               return fi, fi >= 0
+       }
+       fi, ok := p.slowTags[t]
+       return fi, ok
+}
+
+func (p *tagMap) put(t int, fi int) {
+       if t > 0 && t < tagMapFastLimit {
+               for len(p.fastTags) < t+1 {
+                       p.fastTags = append(p.fastTags, -1)
+               }
+               p.fastTags[t] = fi
+               return
+       }
+       if p.slowTags == nil {
+               p.slowTags = make(map[int]int)
+       }
+       p.slowTags[t] = fi
+}
+
+// StructProperties represents properties for all the fields of a struct.
+// decoderTags and decoderOrigNames should only be used by the decoder.
+type StructProperties struct {
+       Prop             []*Properties  // properties for each field
+       reqCount         int            // required count
+       decoderTags      tagMap         // map from proto tag to struct field number
+       decoderOrigNames map[string]int // map from original name to struct field number
+       order            []int          // list of struct field numbers in tag order
+       unrecField       field          // field id of the XXX_unrecognized []byte field
+       extendable       bool           // is this an extendable proto
+
+       oneofMarshaler   oneofMarshaler
+       oneofUnmarshaler oneofUnmarshaler
+       oneofSizer       oneofSizer
+       stype            reflect.Type
+
+       // OneofTypes contains information about the oneof fields in this message.
+       // It is keyed by the original name of a field.
+       OneofTypes map[string]*OneofProperties
+}
+
+// OneofProperties represents information about a specific field in a oneof.
+type OneofProperties struct {
+       Type  reflect.Type // pointer to generated struct type for this oneof field
+       Field int          // struct field number of the containing oneof in the message
+       Prop  *Properties
+}
+
+// Implement the sorting interface so we can sort the fields in tag order, as recommended by the spec.
+// See encode.go, (*Buffer).enc_struct.
+
+func (sp *StructProperties) Len() int { return len(sp.order) }
+func (sp *StructProperties) Less(i, j int) bool {
+       return sp.Prop[sp.order[i]].Tag < sp.Prop[sp.order[j]].Tag
+}
+func (sp *StructProperties) Swap(i, j int) { sp.order[i], sp.order[j] = sp.order[j], sp.order[i] }
+
+// Properties represents the protocol-specific behavior of a single struct field.
+type Properties struct {
+       Name     string // name of the field, for error messages
+       OrigName string // original name before protocol compiler (always set)
+       JSONName string // name to use for JSON; determined by protoc
+       Wire     string
+       WireType int
+       Tag      int
+       Required bool
+       Optional bool
+       Repeated bool
+       Packed   bool   // relevant for repeated primitives only
+       Enum     string // set for enum types only
+       proto3   bool   // whether this is known to be a proto3 field; set for []byte only
+       oneof    bool   // whether this is a oneof field
+
+       Default    string // default value
+       HasDefault bool   // whether an explicit default was provided
+       def_uint64 uint64
+
+       enc           encoder
+       valEnc        valueEncoder // set for bool and numeric types only
+       field         field
+       tagcode       []byte // encoding of EncodeVarint((Tag<<3)|WireType)
+       tagbuf        [8]byte
+       stype         reflect.Type      // set for struct types only
+       sprop         *StructProperties // set for struct types only
+       isMarshaler   bool
+       isUnmarshaler bool
+
+       mtype    reflect.Type // set for map types only
+       mkeyprop *Properties  // set for map types only
+       mvalprop *Properties  // set for map types only
+
+       size    sizer
+       valSize valueSizer // set for bool and numeric types only
+
+       dec    decoder
+       valDec valueDecoder // set for bool and numeric types only
+
+       // If this is a packable field, this will be the decoder for the packed version of the field.
+       packedDec decoder
+}
+
+// String formats the properties in the protobuf struct field tag style.
+func (p *Properties) String() string {
+       s := p.Wire
+       s = ","
+       s += strconv.Itoa(p.Tag)
+       if p.Required {
+               s += ",req"
+       }
+       if p.Optional {
+               s += ",opt"
+       }
+       if p.Repeated {
+               s += ",rep"
+       }
+       if p.Packed {
+               s += ",packed"
+       }
+       s += ",name=" + p.OrigName
+       if p.JSONName != p.OrigName {
+               s += ",json=" + p.JSONName
+       }
+       if p.proto3 {
+               s += ",proto3"
+       }
+       if p.oneof {
+               s += ",oneof"
+       }
+       if len(p.Enum) > 0 {
+               s += ",enum=" + p.Enum
+       }
+       if p.HasDefault {
+               s += ",def=" + p.Default
+       }
+       return s
+}
+
+// Parse populates p by parsing a string in the protobuf struct field tag style.
+func (p *Properties) Parse(s string) {
+       // "bytes,49,opt,name=foo,def=hello!"
+       fields := strings.Split(s, ",") // breaks def=, but handled below.
+       if len(fields) < 2 {
+               fmt.Fprintf(os.Stderr, "proto: tag has too few fields: %q\n", s)
+               return
+       }
+
+       p.Wire = fields[0]
+       switch p.Wire {
+       case "varint":
+               p.WireType = WireVarint
+               p.valEnc = (*Buffer).EncodeVarint
+               p.valDec = (*Buffer).DecodeVarint
+               p.valSize = sizeVarint
+       case "fixed32":
+               p.WireType = WireFixed32
+               p.valEnc = (*Buffer).EncodeFixed32
+               p.valDec = (*Buffer).DecodeFixed32
+               p.valSize = sizeFixed32
+       case "fixed64":
+               p.WireType = WireFixed64
+               p.valEnc = (*Buffer).EncodeFixed64
+               p.valDec = (*Buffer).DecodeFixed64
+               p.valSize = sizeFixed64
+       case "zigzag32":
+               p.WireType = WireVarint
+               p.valEnc = (*Buffer).EncodeZigzag32
+               p.valDec = (*Buffer).DecodeZigzag32
+               p.valSize = sizeZigzag32
+       case "zigzag64":
+               p.WireType = WireVarint
+               p.valEnc = (*Buffer).EncodeZigzag64
+               p.valDec = (*Buffer).DecodeZigzag64
+               p.valSize = sizeZigzag64
+       case "bytes", "group":
+               p.WireType = WireBytes
+               // no numeric converter for non-numeric types
+       default:
+               fmt.Fprintf(os.Stderr, "proto: tag has unknown wire type: %q\n", s)
+               return
+       }
+
+       var err error
+       p.Tag, err = strconv.Atoi(fields[1])
+       if err != nil {
+               return
+       }
+
+       for i := 2; i < len(fields); i++ {
+               f := fields[i]
+               switch {
+               case f == "req":
+                       p.Required = true
+               case f == "opt":
+                       p.Optional = true
+               case f == "rep":
+                       p.Repeated = true
+               case f == "packed":
+                       p.Packed = true
+               case strings.HasPrefix(f, "name="):
+                       p.OrigName = f[5:]
+               case strings.HasPrefix(f, "json="):
+                       p.JSONName = f[5:]
+               case strings.HasPrefix(f, "enum="):
+                       p.Enum = f[5:]
+               case f == "proto3":
+                       p.proto3 = true
+               case f == "oneof":
+                       p.oneof = true
+               case strings.HasPrefix(f, "def="):
+                       p.HasDefault = true
+                       p.Default = f[4:] // rest of string
+                       if i+1 < len(fields) {
+                               // Commas aren't escaped, and def is always last.
+                               p.Default += "," + strings.Join(fields[i+1:], ",")
+                               break
+                       }
+               }
+       }
+}
+
+func logNoSliceEnc(t1, t2 reflect.Type) {
+       fmt.Fprintf(os.Stderr, "proto: no slice oenc for %T = []%T\n", t1, t2)
+}
+
+var protoMessageType = reflect.TypeOf((*Message)(nil)).Elem()
+
+// Initialize the fields for encoding and decoding.
+func (p *Properties) setEncAndDec(typ reflect.Type, f *reflect.StructField, lockGetProp bool) {
+       p.enc = nil
+       p.dec = nil
+       p.size = nil
+
+       switch t1 := typ; t1.Kind() {
+       default:
+               fmt.Fprintf(os.Stderr, "proto: no coders for %v\n", t1)
+
+       // proto3 scalar types
+
+       case reflect.Bool:
+               p.enc = (*Buffer).enc_proto3_bool
+               p.dec = (*Buffer).dec_proto3_bool
+               p.size = size_proto3_bool
+       case reflect.Int32:
+               p.enc = (*Buffer).enc_proto3_int32
+               p.dec = (*Buffer).dec_proto3_int32
+               p.size = size_proto3_int32
+       case reflect.Uint32:
+               p.enc = (*Buffer).enc_proto3_uint32
+               p.dec = (*Buffer).dec_proto3_int32 // can reuse
+               p.size = size_proto3_uint32
+       case reflect.Int64, reflect.Uint64:
+               p.enc = (*Buffer).enc_proto3_int64
+               p.dec = (*Buffer).dec_proto3_int64
+               p.size = size_proto3_int64
+       case reflect.Float32:
+               p.enc = (*Buffer).enc_proto3_uint32 // can just treat them as bits
+               p.dec = (*Buffer).dec_proto3_int32
+               p.size = size_proto3_uint32
+       case reflect.Float64:
+               p.enc = (*Buffer).enc_proto3_int64 // can just treat them as bits
+               p.dec = (*Buffer).dec_proto3_int64
+               p.size = size_proto3_int64
+       case reflect.String:
+               p.enc = (*Buffer).enc_proto3_string
+               p.dec = (*Buffer).dec_proto3_string
+               p.size = size_proto3_string
+
+       case reflect.Ptr:
+               switch t2 := t1.Elem(); t2.Kind() {
+               default:
+                       fmt.Fprintf(os.Stderr, "proto: no encoder function for %v -> %v\n", t1, t2)
+                       break
+               case reflect.Bool:
+                       p.enc = (*Buffer).enc_bool
+                       p.dec = (*Buffer).dec_bool
+                       p.size = size_bool
+               case reflect.Int32:
+                       p.enc = (*Buffer).enc_int32
+                       p.dec = (*Buffer).dec_int32
+                       p.size = size_int32
+               case reflect.Uint32:
+                       p.enc = (*Buffer).enc_uint32
+                       p.dec = (*Buffer).dec_int32 // can reuse
+                       p.size = size_uint32
+               case reflect.Int64, reflect.Uint64:
+                       p.enc = (*Buffer).enc_int64
+                       p.dec = (*Buffer).dec_int64
+                       p.size = size_int64
+               case reflect.Float32:
+                       p.enc = (*Buffer).enc_uint32 // can just treat them as bits
+                       p.dec = (*Buffer).dec_int32
+                       p.size = size_uint32
+               case reflect.Float64:
+                       p.enc = (*Buffer).enc_int64 // can just treat them as bits
+                       p.dec = (*Buffer).dec_int64
+                       p.size = size_int64
+               case reflect.String:
+                       p.enc = (*Buffer).enc_string
+                       p.dec = (*Buffer).dec_string
+                       p.size = size_string
+               case reflect.Struct:
+                       p.stype = t1.Elem()
+                       p.isMarshaler = isMarshaler(t1)
+                       p.isUnmarshaler = isUnmarshaler(t1)
+                       if p.Wire == "bytes" {
+                               p.enc = (*Buffer).enc_struct_message
+                               p.dec = (*Buffer).dec_struct_message
+                               p.size = size_struct_message
+                       } else {
+                               p.enc = (*Buffer).enc_struct_group
+                               p.dec = (*Buffer).dec_struct_group
+                               p.size = size_struct_group
+                       }
+               }
+
+       case reflect.Slice:
+               switch t2 := t1.Elem(); t2.Kind() {
+               default:
+                       logNoSliceEnc(t1, t2)
+                       break
+               case reflect.Bool:
+                       if p.Packed {
+                               p.enc = (*Buffer).enc_slice_packed_bool
+                               p.size = size_slice_packed_bool
+                       } else {
+                               p.enc = (*Buffer).enc_slice_bool
+                               p.size = size_slice_bool
+                       }
+                       p.dec = (*Buffer).dec_slice_bool
+                       p.packedDec = (*Buffer).dec_slice_packed_bool
+               case reflect.Int32:
+                       if p.Packed {
+                               p.enc = (*Buffer).enc_slice_packed_int32
+                               p.size = size_slice_packed_int32
+                       } else {
+                               p.enc = (*Buffer).enc_slice_int32
+                               p.size = size_slice_int32
+                       }
+                       p.dec = (*Buffer).dec_slice_int32
+                       p.packedDec = (*Buffer).dec_slice_packed_int32
+               case reflect.Uint32:
+                       if p.Packed {
+                               p.enc = (*Buffer).enc_slice_packed_uint32
+                               p.size = size_slice_packed_uint32
+                       } else {
+                               p.enc = (*Buffer).enc_slice_uint32
+                               p.size = size_slice_uint32
+                       }
+                       p.dec = (*Buffer).dec_slice_int32
+                       p.packedDec = (*Buffer).dec_slice_packed_int32
+               case reflect.Int64, reflect.Uint64:
+                       if p.Packed {
+                               p.enc = (*Buffer).enc_slice_packed_int64
+                               p.size = size_slice_packed_int64
+                       } else {
+                               p.enc = (*Buffer).enc_slice_int64
+                               p.size = size_slice_int64
+                       }
+                       p.dec = (*Buffer).dec_slice_int64
+                       p.packedDec = (*Buffer).dec_slice_packed_int64
+               case reflect.Uint8:
+                       p.dec = (*Buffer).dec_slice_byte
+                       if p.proto3 {
+                               p.enc = (*Buffer).enc_proto3_slice_byte
+                               p.size = size_proto3_slice_byte
+                       } else {
+                               p.enc = (*Buffer).enc_slice_byte
+                               p.size = size_slice_byte
+                       }
+               case reflect.Float32, reflect.Float64:
+                       switch t2.Bits() {
+                       case 32:
+                               // can just treat them as bits
+                               if p.Packed {
+                                       p.enc = (*Buffer).enc_slice_packed_uint32
+                                       p.size = size_slice_packed_uint32
+                               } else {
+                                       p.enc = (*Buffer).enc_slice_uint32
+                                       p.size = size_slice_uint32
+                               }
+                               p.dec = (*Buffer).dec_slice_int32
+                               p.packedDec = (*Buffer).dec_slice_packed_int32
+                       case 64:
+                               // can just treat them as bits
+                               if p.Packed {
+                                       p.enc = (*Buffer).enc_slice_packed_int64
+                                       p.size = size_slice_packed_int64
+                               } else {
+                                       p.enc = (*Buffer).enc_slice_int64
+                                       p.size = size_slice_int64
+                               }
+                               p.dec = (*Buffer).dec_slice_int64
+                               p.packedDec = (*Buffer).dec_slice_packed_int64
+                       default:
+                               logNoSliceEnc(t1, t2)
+                               break
+                       }
+               case reflect.String:
+                       p.enc = (*Buffer).enc_slice_string
+                       p.dec = (*Buffer).dec_slice_string
+                       p.size = size_slice_string
+               case reflect.Ptr:
+                       switch t3 := t2.Elem(); t3.Kind() {
+                       default:
+                               fmt.Fprintf(os.Stderr, "proto: no ptr oenc for %T -> %T -> %T\n", t1, t2, t3)
+                               break
+                       case reflect.Struct:
+                               p.stype = t2.Elem()
+                               p.isMarshaler = isMarshaler(t2)
+                               p.isUnmarshaler = isUnmarshaler(t2)
+                               if p.Wire == "bytes" {
+                                       p.enc = (*Buffer).enc_slice_struct_message
+                                       p.dec = (*Buffer).dec_slice_struct_message
+                                       p.size = size_slice_struct_message
+                               } else {
+                                       p.enc = (*Buffer).enc_slice_struct_group
+                                       p.dec = (*Buffer).dec_slice_struct_group
+                                       p.size = size_slice_struct_group
+                               }
+                       }
+               case reflect.Slice:
+                       switch t2.Elem().Kind() {
+                       default:
+                               fmt.Fprintf(os.Stderr, "proto: no slice elem oenc for %T -> %T -> %T\n", t1, t2, t2.Elem())
+                               break
+                       case reflect.Uint8:
+                               p.enc = (*Buffer).enc_slice_slice_byte
+                               p.dec = (*Buffer).dec_slice_slice_byte
+                               p.size = size_slice_slice_byte
+                       }
+               }
+
+       case reflect.Map:
+               p.enc = (*Buffer).enc_new_map
+               p.dec = (*Buffer).dec_new_map
+               p.size = size_new_map
+
+               p.mtype = t1
+               p.mkeyprop = &Properties{}
+               p.mkeyprop.init(reflect.PtrTo(p.mtype.Key()), "Key", f.Tag.Get("protobuf_key"), nil, lockGetProp)
+               p.mvalprop = &Properties{}
+               vtype := p.mtype.Elem()
+               if vtype.Kind() != reflect.Ptr && vtype.Kind() != reflect.Slice {
+                       // The value type is not a message (*T) or bytes ([]byte),
+                       // so we need encoders for the pointer to this type.
+                       vtype = reflect.PtrTo(vtype)
+               }
+               p.mvalprop.init(vtype, "Value", f.Tag.Get("protobuf_val"), nil, lockGetProp)
+       }
+
+       // precalculate tag code
+       wire := p.WireType
+       if p.Packed {
+               wire = WireBytes
+       }
+       x := uint32(p.Tag)<<3 | uint32(wire)
+       i := 0
+       for i = 0; x > 127; i++ {
+               p.tagbuf[i] = 0x80 | uint8(x&0x7F)
+               x >>= 7
+       }
+       p.tagbuf[i] = uint8(x)
+       p.tagcode = p.tagbuf[0 : i+1]
+
+       if p.stype != nil {
+               if lockGetProp {
+                       p.sprop = GetProperties(p.stype)
+               } else {
+                       p.sprop = getPropertiesLocked(p.stype)
+               }
+       }
+}
+
+var (
+       marshalerType   = reflect.TypeOf((*Marshaler)(nil)).Elem()
+       unmarshalerType = reflect.TypeOf((*Unmarshaler)(nil)).Elem()
+)
+
+// isMarshaler reports whether type t implements Marshaler.
+func isMarshaler(t reflect.Type) bool {
+       // We're checking for (likely) pointer-receiver methods
+       // so if t is not a pointer, something is very wrong.
+       // The calls above only invoke isMarshaler on pointer types.
+       if t.Kind() != reflect.Ptr {
+               panic("proto: misuse of isMarshaler")
+       }
+       return t.Implements(marshalerType)
+}
+
+// isUnmarshaler reports whether type t implements Unmarshaler.
+func isUnmarshaler(t reflect.Type) bool {
+       // We're checking for (likely) pointer-receiver methods
+       // so if t is not a pointer, something is very wrong.
+       // The calls above only invoke isUnmarshaler on pointer types.
+       if t.Kind() != reflect.Ptr {
+               panic("proto: misuse of isUnmarshaler")
+       }
+       return t.Implements(unmarshalerType)
+}
+
+// Init populates the properties from a protocol buffer struct tag.
+func (p *Properties) Init(typ reflect.Type, name, tag string, f *reflect.StructField) {
+       p.init(typ, name, tag, f, true)
+}
+
+func (p *Properties) init(typ reflect.Type, name, tag string, f *reflect.StructField, lockGetProp bool) {
+       // "bytes,49,opt,def=hello!"
+       p.Name = name
+       p.OrigName = name
+       if f != nil {
+               p.field = toField(f)
+       }
+       if tag == "" {
+               return
+       }
+       p.Parse(tag)
+       p.setEncAndDec(typ, f, lockGetProp)
+}
+
+var (
+       propertiesMu  sync.RWMutex
+       propertiesMap = make(map[reflect.Type]*StructProperties)
+)
+
+// GetProperties returns the list of properties for the type represented by t.
+// t must represent a generated struct type of a protocol message.
+func GetProperties(t reflect.Type) *StructProperties {
+       if t.Kind() != reflect.Struct {
+               panic("proto: type must have kind struct")
+       }
+
+       // Most calls to GetProperties in a long-running program will be
+       // retrieving details for types we have seen before.
+       propertiesMu.RLock()
+       sprop, ok := propertiesMap[t]
+       propertiesMu.RUnlock()
+       if ok {
+               if collectStats {
+                       stats.Chit++
+               }
+               return sprop
+       }
+
+       propertiesMu.Lock()
+       sprop = getPropertiesLocked(t)
+       propertiesMu.Unlock()
+       return sprop
+}
+
+// getPropertiesLocked requires that propertiesMu is held.
+func getPropertiesLocked(t reflect.Type) *StructProperties {
+       if prop, ok := propertiesMap[t]; ok {
+               if collectStats {
+                       stats.Chit++
+               }
+               return prop
+       }
+       if collectStats {
+               stats.Cmiss++
+       }
+
+       prop := new(StructProperties)
+       // in case of recursive protos, fill this in now.
+       propertiesMap[t] = prop
+
+       // build properties
+       prop.extendable = reflect.PtrTo(t).Implements(extendableProtoType) ||
+               reflect.PtrTo(t).Implements(extendableProtoV1Type)
+       prop.unrecField = invalidField
+       prop.Prop = make([]*Properties, t.NumField())
+       prop.order = make([]int, t.NumField())
+
+       for i := 0; i < t.NumField(); i++ {
+               f := t.Field(i)
+               p := new(Properties)
+               name := f.Name
+               p.init(f.Type, name, f.Tag.Get("protobuf"), &f, false)
+
+               if f.Name == "XXX_InternalExtensions" { // special case
+                       p.enc = (*Buffer).enc_exts
+                       p.dec = nil // not needed
+                       p.size = size_exts
+               } else if f.Name == "XXX_extensions" { // special case
+                       p.enc = (*Buffer).enc_map
+                       p.dec = nil // not needed
+                       p.size = size_map
+               } else if f.Name == "XXX_unrecognized" { // special case
+                       prop.unrecField = toField(&f)
+               }
+               oneof := f.Tag.Get("protobuf_oneof") // special case
+               if oneof != "" {
+                       // Oneof fields don't use the traditional protobuf tag.
+                       p.OrigName = oneof
+               }
+               prop.Prop[i] = p
+               prop.order[i] = i
+               if debug {
+                       print(i, " ", f.Name, " ", t.String(), " ")
+                       if p.Tag > 0 {
+                               print(p.String())
+                       }
+                       print("\n")
+               }
+               if p.enc == nil && !strings.HasPrefix(f.Name, "XXX_") && oneof == "" {
+                       fmt.Fprintln(os.Stderr, "proto: no encoder for", f.Name, f.Type.String(), "[GetProperties]")
+               }
+       }
+
+       // Re-order prop.order.
+       sort.Sort(prop)
+
+       type oneofMessage interface {
+               XXX_OneofFuncs() (func(Message, *Buffer) error, func(Message, int, int, *Buffer) (bool, error), func(Message) int, []interface{})
+       }
+       if om, ok := reflect.Zero(reflect.PtrTo(t)).Interface().(oneofMessage); ok {
+               var oots []interface{}
+               prop.oneofMarshaler, prop.oneofUnmarshaler, prop.oneofSizer, oots = om.XXX_OneofFuncs()
+               prop.stype = t
+
+               // Interpret oneof metadata.
+               prop.OneofTypes = make(map[string]*OneofProperties)
+               for _, oot := range oots {
+                       oop := &OneofProperties{
+                               Type: reflect.ValueOf(oot).Type(), // *T
+                               Prop: new(Properties),
+                       }
+                       sft := oop.Type.Elem().Field(0)
+                       oop.Prop.Name = sft.Name
+                       oop.Prop.Parse(sft.Tag.Get("protobuf"))
+                       // There will be exactly one interface field that
+                       // this new value is assignable to.
+                       for i := 0; i < t.NumField(); i++ {
+                               f := t.Field(i)
+                               if f.Type.Kind() != reflect.Interface {
+                                       continue
+                               }
+                               if !oop.Type.AssignableTo(f.Type) {
+                                       continue
+                               }
+                               oop.Field = i
+                               break
+                       }
+                       prop.OneofTypes[oop.Prop.OrigName] = oop
+               }
+       }
+
+       // build required counts
+       // build tags
+       reqCount := 0
+       prop.decoderOrigNames = make(map[string]int)
+       for i, p := range prop.Prop {
+               if strings.HasPrefix(p.Name, "XXX_") {
+                       // Internal fields should not appear in tags/origNames maps.
+                       // They are handled specially when encoding and decoding.
+                       continue
+               }
+               if p.Required {
+                       reqCount++
+               }
+               prop.decoderTags.put(p.Tag, i)
+               prop.decoderOrigNames[p.OrigName] = i
+       }
+       prop.reqCount = reqCount
+
+       return prop
+}
+
+// Return the Properties object for the x[0]'th field of the structure.
+func propByIndex(t reflect.Type, x []int) *Properties {
+       if len(x) != 1 {
+               fmt.Fprintf(os.Stderr, "proto: field index dimension %d (not 1) for type %s\n", len(x), t)
+               return nil
+       }
+       prop := GetProperties(t)
+       return prop.Prop[x[0]]
+}
+
+// Get the address and type of a pointer to a struct from an interface.
+func getbase(pb Message) (t reflect.Type, b structPointer, err error) {
+       if pb == nil {
+               err = ErrNil
+               return
+       }
+       // get the reflect type of the pointer to the struct.
+       t = reflect.TypeOf(pb)
+       // get the address of the struct.
+       value := reflect.ValueOf(pb)
+       b = toStructPointer(value)
+       return
+}
+
+// A global registry of enum types.
+// The generated code will register the generated maps by calling RegisterEnum.
+
+var enumValueMaps = make(map[string]map[string]int32)
+
+// RegisterEnum is called from the generated code to install the enum descriptor
+// maps into the global table to aid parsing text format protocol buffers.
+func RegisterEnum(typeName string, unusedNameMap map[int32]string, valueMap map[string]int32) {
+       if _, ok := enumValueMaps[typeName]; ok {
+               panic("proto: duplicate enum registered: " + typeName)
+       }
+       enumValueMaps[typeName] = valueMap
+}
+
+// EnumValueMap returns the mapping from names to integers of the
+// enum type enumType, or a nil if not found.
+func EnumValueMap(enumType string) map[string]int32 {
+       return enumValueMaps[enumType]
+}
+
+// A registry of all linked message types.
+// The string is a fully-qualified proto name ("pkg.Message").
+var (
+       protoTypes    = make(map[string]reflect.Type)
+       revProtoTypes = make(map[reflect.Type]string)
+)
+
+// RegisterType is called from generated code and maps from the fully qualified
+// proto name to the type (pointer to struct) of the protocol buffer.
+func RegisterType(x Message, name string) {
+       if _, ok := protoTypes[name]; ok {
+               // TODO: Some day, make this a panic.
+               log.Printf("proto: duplicate proto type registered: %s", name)
+               return
+       }
+       t := reflect.TypeOf(x)
+       protoTypes[name] = t
+       revProtoTypes[t] = name
+}
+
+// MessageName returns the fully-qualified proto name for the given message type.
+func MessageName(x Message) string {
+       type xname interface {
+               XXX_MessageName() string
+       }
+       if m, ok := x.(xname); ok {
+               return m.XXX_MessageName()
+       }
+       return revProtoTypes[reflect.TypeOf(x)]
+}
+
+// MessageType returns the message type (pointer to struct) for a named message.
+func MessageType(name string) reflect.Type { return protoTypes[name] }
+
+// A registry of all linked proto files.
+var (
+       protoFiles = make(map[string][]byte) // file name => fileDescriptor
+)
+
+// RegisterFile is called from generated code and maps from the
+// full file name of a .proto file to its compressed FileDescriptorProto.
+func RegisterFile(filename string, fileDescriptor []byte) {
+       protoFiles[filename] = fileDescriptor
+}
+
+// FileDescriptor returns the compressed FileDescriptorProto for a .proto file.
+func FileDescriptor(filename string) []byte { return protoFiles[filename] }
diff --git a/vendor/github.com/golang/protobuf/proto/text.go b/vendor/github.com/golang/protobuf/proto/text.go
new file mode 100644 (file)
index 0000000..965876b
--- /dev/null
@@ -0,0 +1,854 @@
+// Go support for Protocol Buffers - Google's data interchange format
+//
+// Copyright 2010 The Go Authors.  All rights reserved.
+// https://github.com/golang/protobuf
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+package proto
+
+// Functions for writing the text protocol buffer format.
+
+import (
+       "bufio"
+       "bytes"
+       "encoding"
+       "errors"
+       "fmt"
+       "io"
+       "log"
+       "math"
+       "reflect"
+       "sort"
+       "strings"
+)
+
+var (
+       newline         = []byte("\n")
+       spaces          = []byte("                                        ")
+       gtNewline       = []byte(">\n")
+       endBraceNewline = []byte("}\n")
+       backslashN      = []byte{'\\', 'n'}
+       backslashR      = []byte{'\\', 'r'}
+       backslashT      = []byte{'\\', 't'}
+       backslashDQ     = []byte{'\\', '"'}
+       backslashBS     = []byte{'\\', '\\'}
+       posInf          = []byte("inf")
+       negInf          = []byte("-inf")
+       nan             = []byte("nan")
+)
+
+type writer interface {
+       io.Writer
+       WriteByte(byte) error
+}
+
+// textWriter is an io.Writer that tracks its indentation level.
+type textWriter struct {
+       ind      int
+       complete bool // if the current position is a complete line
+       compact  bool // whether to write out as a one-liner
+       w        writer
+}
+
+func (w *textWriter) WriteString(s string) (n int, err error) {
+       if !strings.Contains(s, "\n") {
+               if !w.compact && w.complete {
+                       w.writeIndent()
+               }
+               w.complete = false
+               return io.WriteString(w.w, s)
+       }
+       // WriteString is typically called without newlines, so this
+       // codepath and its copy are rare.  We copy to avoid
+       // duplicating all of Write's logic here.
+       return w.Write([]byte(s))
+}
+
+func (w *textWriter) Write(p []byte) (n int, err error) {
+       newlines := bytes.Count(p, newline)
+       if newlines == 0 {
+               if !w.compact && w.complete {
+                       w.writeIndent()
+               }
+               n, err = w.w.Write(p)
+               w.complete = false
+               return n, err
+       }
+
+       frags := bytes.SplitN(p, newline, newlines+1)
+       if w.compact {
+               for i, frag := range frags {
+                       if i > 0 {
+                               if err := w.w.WriteByte(' '); err != nil {
+                                       return n, err
+                               }
+                               n++
+                       }
+                       nn, err := w.w.Write(frag)
+                       n += nn
+                       if err != nil {
+                               return n, err
+                       }
+               }
+               return n, nil
+       }
+
+       for i, frag := range frags {
+               if w.complete {
+                       w.writeIndent()
+               }
+               nn, err := w.w.Write(frag)
+               n += nn
+               if err != nil {
+                       return n, err
+               }
+               if i+1 < len(frags) {
+                       if err := w.w.WriteByte('\n'); err != nil {
+                               return n, err
+                       }
+                       n++
+               }
+       }
+       w.complete = len(frags[len(frags)-1]) == 0
+       return n, nil
+}
+
+func (w *textWriter) WriteByte(c byte) error {
+       if w.compact && c == '\n' {
+               c = ' '
+       }
+       if !w.compact && w.complete {
+               w.writeIndent()
+       }
+       err := w.w.WriteByte(c)
+       w.complete = c == '\n'
+       return err
+}
+
+func (w *textWriter) indent() { w.ind++ }
+
+func (w *textWriter) unindent() {
+       if w.ind == 0 {
+               log.Print("proto: textWriter unindented too far")
+               return
+       }
+       w.ind--
+}
+
+func writeName(w *textWriter, props *Properties) error {
+       if _, err := w.WriteString(props.OrigName); err != nil {
+               return err
+       }
+       if props.Wire != "group" {
+               return w.WriteByte(':')
+       }
+       return nil
+}
+
+// raw is the interface satisfied by RawMessage.
+type raw interface {
+       Bytes() []byte
+}
+
+func requiresQuotes(u string) bool {
+       // When type URL contains any characters except [0-9A-Za-z./\-]*, it must be quoted.
+       for _, ch := range u {
+               switch {
+               case ch == '.' || ch == '/' || ch == '_':
+                       continue
+               case '0' <= ch && ch <= '9':
+                       continue
+               case 'A' <= ch && ch <= 'Z':
+                       continue
+               case 'a' <= ch && ch <= 'z':
+                       continue
+               default:
+                       return true
+               }
+       }
+       return false
+}
+
+// isAny reports whether sv is a google.protobuf.Any message
+func isAny(sv reflect.Value) bool {
+       type wkt interface {
+               XXX_WellKnownType() string
+       }
+       t, ok := sv.Addr().Interface().(wkt)
+       return ok && t.XXX_WellKnownType() == "Any"
+}
+
+// writeProto3Any writes an expanded google.protobuf.Any message.
+//
+// It returns (false, nil) if sv value can't be unmarshaled (e.g. because
+// required messages are not linked in).
+//
+// It returns (true, error) when sv was written in expanded format or an error
+// was encountered.
+func (tm *TextMarshaler) writeProto3Any(w *textWriter, sv reflect.Value) (bool, error) {
+       turl := sv.FieldByName("TypeUrl")
+       val := sv.FieldByName("Value")
+       if !turl.IsValid() || !val.IsValid() {
+               return true, errors.New("proto: invalid google.protobuf.Any message")
+       }
+
+       b, ok := val.Interface().([]byte)
+       if !ok {
+               return true, errors.New("proto: invalid google.protobuf.Any message")
+       }
+
+       parts := strings.Split(turl.String(), "/")
+       mt := MessageType(parts[len(parts)-1])
+       if mt == nil {
+               return false, nil
+       }
+       m := reflect.New(mt.Elem())
+       if err := Unmarshal(b, m.Interface().(Message)); err != nil {
+               return false, nil
+       }
+       w.Write([]byte("["))
+       u := turl.String()
+       if requiresQuotes(u) {
+               writeString(w, u)
+       } else {
+               w.Write([]byte(u))
+       }
+       if w.compact {
+               w.Write([]byte("]:<"))
+       } else {
+               w.Write([]byte("]: <\n"))
+               w.ind++
+       }
+       if err := tm.writeStruct(w, m.Elem()); err != nil {
+               return true, err
+       }
+       if w.compact {
+               w.Write([]byte("> "))
+       } else {
+               w.ind--
+               w.Write([]byte(">\n"))
+       }
+       return true, nil
+}
+
+func (tm *TextMarshaler) writeStruct(w *textWriter, sv reflect.Value) error {
+       if tm.ExpandAny && isAny(sv) {
+               if canExpand, err := tm.writeProto3Any(w, sv); canExpand {
+                       return err
+               }
+       }
+       st := sv.Type()
+       sprops := GetProperties(st)
+       for i := 0; i < sv.NumField(); i++ {
+               fv := sv.Field(i)
+               props := sprops.Prop[i]
+               name := st.Field(i).Name
+
+               if strings.HasPrefix(name, "XXX_") {
+                       // There are two XXX_ fields:
+                       //   XXX_unrecognized []byte
+                       //   XXX_extensions   map[int32]proto.Extension
+                       // The first is handled here;
+                       // the second is handled at the bottom of this function.
+                       if name == "XXX_unrecognized" && !fv.IsNil() {
+                               if err := writeUnknownStruct(w, fv.Interface().([]byte)); err != nil {
+                                       return err
+                               }
+                       }
+                       continue
+               }
+               if fv.Kind() == reflect.Ptr && fv.IsNil() {
+                       // Field not filled in. This could be an optional field or
+                       // a required field that wasn't filled in. Either way, there
+                       // isn't anything we can show for it.
+                       continue
+               }
+               if fv.Kind() == reflect.Slice && fv.IsNil() {
+                       // Repeated field that is empty, or a bytes field that is unused.
+                       continue
+               }
+
+               if props.Repeated && fv.Kind() == reflect.Slice {
+                       // Repeated field.
+                       for j := 0; j < fv.Len(); j++ {
+                               if err := writeName(w, props); err != nil {
+                                       return err
+                               }
+                               if !w.compact {
+                                       if err := w.WriteByte(' '); err != nil {
+                                               return err
+                                       }
+                               }
+                               v := fv.Index(j)
+                               if v.Kind() == reflect.Ptr && v.IsNil() {
+                                       // A nil message in a repeated field is not valid,
+                                       // but we can handle that more gracefully than panicking.
+                                       if _, err := w.Write([]byte("<nil>\n")); err != nil {
+                                               return err
+                                       }
+                                       continue
+                               }
+                               if err := tm.writeAny(w, v, props); err != nil {
+                                       return err
+                               }
+                               if err := w.WriteByte('\n'); err != nil {
+                                       return err
+                               }
+                       }
+                       continue
+               }
+               if fv.Kind() == reflect.Map {
+                       // Map fields are rendered as a repeated struct with key/value fields.
+                       keys := fv.MapKeys()
+                       sort.Sort(mapKeys(keys))
+                       for _, key := range keys {
+                               val := fv.MapIndex(key)
+                               if err := writeName(w, props); err != nil {
+                                       return err
+                               }
+                               if !w.compact {
+                                       if err := w.WriteByte(' '); err != nil {
+                                               return err
+                                       }
+                               }
+                               // open struct
+                               if err := w.WriteByte('<'); err != nil {
+                                       return err
+                               }
+                               if !w.compact {
+                                       if err := w.WriteByte('\n'); err != nil {
+                                               return err
+                                       }
+                               }
+                               w.indent()
+                               // key
+                               if _, err := w.WriteString("key:"); err != nil {
+                                       return err
+                               }
+                               if !w.compact {
+                                       if err := w.WriteByte(' '); err != nil {
+                                               return err
+                                       }
+                               }
+                               if err := tm.writeAny(w, key, props.mkeyprop); err != nil {
+                                       return err
+                               }
+                               if err := w.WriteByte('\n'); err != nil {
+                                       return err
+                               }
+                               // nil values aren't legal, but we can avoid panicking because of them.
+                               if val.Kind() != reflect.Ptr || !val.IsNil() {
+                                       // value
+                                       if _, err := w.WriteString("value:"); err != nil {
+                                               return err
+                                       }
+                                       if !w.compact {
+                                               if err := w.WriteByte(' '); err != nil {
+                                                       return err
+                                               }
+                                       }
+                                       if err := tm.writeAny(w, val, props.mvalprop); err != nil {
+                                               return err
+                                       }
+                                       if err := w.WriteByte('\n'); err != nil {
+                                               return err
+                                       }
+                               }
+                               // close struct
+                               w.unindent()
+                               if err := w.WriteByte('>'); err != nil {
+                                       return err
+                               }
+                               if err := w.WriteByte('\n'); err != nil {
+                                       return err
+                               }
+                       }
+                       continue
+               }
+               if props.proto3 && fv.Kind() == reflect.Slice && fv.Len() == 0 {
+                       // empty bytes field
+                       continue
+               }
+               if fv.Kind() != reflect.Ptr && fv.Kind() != reflect.Slice {
+                       // proto3 non-repeated scalar field; skip if zero value
+                       if isProto3Zero(fv) {
+                               continue
+                       }
+               }
+
+               if fv.Kind() == reflect.Interface {
+                       // Check if it is a oneof.
+                       if st.Field(i).Tag.Get("protobuf_oneof") != "" {
+                               // fv is nil, or holds a pointer to generated struct.
+                               // That generated struct has exactly one field,
+                               // which has a protobuf struct tag.
+                               if fv.IsNil() {
+                                       continue
+                               }
+                               inner := fv.Elem().Elem() // interface -> *T -> T
+                               tag := inner.Type().Field(0).Tag.Get("protobuf")
+                               props = new(Properties) // Overwrite the outer props var, but not its pointee.
+                               props.Parse(tag)
+                               // Write the value in the oneof, not the oneof itself.
+                               fv = inner.Field(0)
+
+                               // Special case to cope with malformed messages gracefully:
+                               // If the value in the oneof is a nil pointer, don't panic
+                               // in writeAny.
+                               if fv.Kind() == reflect.Ptr && fv.IsNil() {
+                                       // Use errors.New so writeAny won't render quotes.
+                                       msg := errors.New("/* nil */")
+                                       fv = reflect.ValueOf(&msg).Elem()
+                               }
+                       }
+               }
+
+               if err := writeName(w, props); err != nil {
+                       return err
+               }
+               if !w.compact {
+                       if err := w.WriteByte(' '); err != nil {
+                               return err
+                       }
+               }
+               if b, ok := fv.Interface().(raw); ok {
+                       if err := writeRaw(w, b.Bytes()); err != nil {
+                               return err
+                       }
+                       continue
+               }
+
+               // Enums have a String method, so writeAny will work fine.
+               if err := tm.writeAny(w, fv, props); err != nil {
+                       return err
+               }
+
+               if err := w.WriteByte('\n'); err != nil {
+                       return err
+               }
+       }
+
+       // Extensions (the XXX_extensions field).
+       pv := sv.Addr()
+       if _, ok := extendable(pv.Interface()); ok {
+               if err := tm.writeExtensions(w, pv); err != nil {
+                       return err
+               }
+       }
+
+       return nil
+}
+
+// writeRaw writes an uninterpreted raw message.
+func writeRaw(w *textWriter, b []byte) error {
+       if err := w.WriteByte('<'); err != nil {
+               return err
+       }
+       if !w.compact {
+               if err := w.WriteByte('\n'); err != nil {
+                       return err
+               }
+       }
+       w.indent()
+       if err := writeUnknownStruct(w, b); err != nil {
+               return err
+       }
+       w.unindent()
+       if err := w.WriteByte('>'); err != nil {
+               return err
+       }
+       return nil
+}
+
+// writeAny writes an arbitrary field.
+func (tm *TextMarshaler) writeAny(w *textWriter, v reflect.Value, props *Properties) error {
+       v = reflect.Indirect(v)
+
+       // Floats have special cases.
+       if v.Kind() == reflect.Float32 || v.Kind() == reflect.Float64 {
+               x := v.Float()
+               var b []byte
+               switch {
+               case math.IsInf(x, 1):
+                       b = posInf
+               case math.IsInf(x, -1):
+                       b = negInf
+               case math.IsNaN(x):
+                       b = nan
+               }
+               if b != nil {
+                       _, err := w.Write(b)
+                       return err
+               }
+               // Other values are handled below.
+       }
+
+       // We don't attempt to serialise every possible value type; only those
+       // that can occur in protocol buffers.
+       switch v.Kind() {
+       case reflect.Slice:
+               // Should only be a []byte; repeated fields are handled in writeStruct.
+               if err := writeString(w, string(v.Bytes())); err != nil {
+                       return err
+               }
+       case reflect.String:
+               if err := writeString(w, v.String()); err != nil {
+                       return err
+               }
+       case reflect.Struct:
+               // Required/optional group/message.
+               var bra, ket byte = '<', '>'
+               if props != nil && props.Wire == "group" {
+                       bra, ket = '{', '}'
+               }
+               if err := w.WriteByte(bra); err != nil {
+                       return err
+               }
+               if !w.compact {
+                       if err := w.WriteByte('\n'); err != nil {
+                               return err
+                       }
+               }
+               w.indent()
+               if etm, ok := v.Interface().(encoding.TextMarshaler); ok {
+                       text, err := etm.MarshalText()
+                       if err != nil {
+                               return err
+                       }
+                       if _, err = w.Write(text); err != nil {
+                               return err
+                       }
+               } else if err := tm.writeStruct(w, v); err != nil {
+                       return err
+               }
+               w.unindent()
+               if err := w.WriteByte(ket); err != nil {
+                       return err
+               }
+       default:
+               _, err := fmt.Fprint(w, v.Interface())
+               return err
+       }
+       return nil
+}
+
+// equivalent to C's isprint.
+func isprint(c byte) bool {
+       return c >= 0x20 && c < 0x7f
+}
+
+// writeString writes a string in the protocol buffer text format.
+// It is similar to strconv.Quote except we don't use Go escape sequences,
+// we treat the string as a byte sequence, and we use octal escapes.
+// These differences are to maintain interoperability with the other
+// languages' implementations of the text format.
+func writeString(w *textWriter, s string) error {
+       // use WriteByte here to get any needed indent
+       if err := w.WriteByte('"'); err != nil {
+               return err
+       }
+       // Loop over the bytes, not the runes.
+       for i := 0; i < len(s); i++ {
+               var err error
+               // Divergence from C++: we don't escape apostrophes.
+               // There's no need to escape them, and the C++ parser
+               // copes with a naked apostrophe.
+               switch c := s[i]; c {
+               case '\n':
+                       _, err = w.w.Write(backslashN)
+               case '\r':
+                       _, err = w.w.Write(backslashR)
+               case '\t':
+                       _, err = w.w.Write(backslashT)
+               case '"':
+                       _, err = w.w.Write(backslashDQ)
+               case '\\':
+                       _, err = w.w.Write(backslashBS)
+               default:
+                       if isprint(c) {
+                               err = w.w.WriteByte(c)
+                       } else {
+                               _, err = fmt.Fprintf(w.w, "\\%03o", c)
+                       }
+               }
+               if err != nil {
+                       return err
+               }
+       }
+       return w.WriteByte('"')
+}
+
+func writeUnknownStruct(w *textWriter, data []byte) (err error) {
+       if !w.compact {
+               if _, err := fmt.Fprintf(w, "/* %d unknown bytes */\n", len(data)); err != nil {
+                       return err
+               }
+       }
+       b := NewBuffer(data)
+       for b.index < len(b.buf) {
+               x, err := b.DecodeVarint()
+               if err != nil {
+                       _, err := fmt.Fprintf(w, "/* %v */\n", err)
+                       return err
+               }
+               wire, tag := x&7, x>>3
+               if wire == WireEndGroup {
+                       w.unindent()
+                       if _, err := w.Write(endBraceNewline); err != nil {
+                               return err
+                       }
+                       continue
+               }
+               if _, err := fmt.Fprint(w, tag); err != nil {
+                       return err
+               }
+               if wire != WireStartGroup {
+                       if err := w.WriteByte(':'); err != nil {
+                               return err
+                       }
+               }
+               if !w.compact || wire == WireStartGroup {
+                       if err := w.WriteByte(' '); err != nil {
+                               return err
+                       }
+               }
+               switch wire {
+               case WireBytes:
+                       buf, e := b.DecodeRawBytes(false)
+                       if e == nil {
+                               _, err = fmt.Fprintf(w, "%q", buf)
+                       } else {
+                               _, err = fmt.Fprintf(w, "/* %v */", e)
+                       }
+               case WireFixed32:
+                       x, err = b.DecodeFixed32()
+                       err = writeUnknownInt(w, x, err)
+               case WireFixed64:
+                       x, err = b.DecodeFixed64()
+                       err = writeUnknownInt(w, x, err)
+               case WireStartGroup:
+                       err = w.WriteByte('{')
+                       w.indent()
+               case WireVarint:
+                       x, err = b.DecodeVarint()
+                       err = writeUnknownInt(w, x, err)
+               default:
+                       _, err = fmt.Fprintf(w, "/* unknown wire type %d */", wire)
+               }
+               if err != nil {
+                       return err
+               }
+               if err = w.WriteByte('\n'); err != nil {
+                       return err
+               }
+       }
+       return nil
+}
+
+func writeUnknownInt(w *textWriter, x uint64, err error) error {
+       if err == nil {
+               _, err = fmt.Fprint(w, x)
+       } else {
+               _, err = fmt.Fprintf(w, "/* %v */", err)
+       }
+       return err
+}
+
+type int32Slice []int32
+
+func (s int32Slice) Len() int           { return len(s) }
+func (s int32Slice) Less(i, j int) bool { return s[i] < s[j] }
+func (s int32Slice) Swap(i, j int)      { s[i], s[j] = s[j], s[i] }
+
+// writeExtensions writes all the extensions in pv.
+// pv is assumed to be a pointer to a protocol message struct that is extendable.
+func (tm *TextMarshaler) writeExtensions(w *textWriter, pv reflect.Value) error {
+       emap := extensionMaps[pv.Type().Elem()]
+       ep, _ := extendable(pv.Interface())
+
+       // Order the extensions by ID.
+       // This isn't strictly necessary, but it will give us
+       // canonical output, which will also make testing easier.
+       m, mu := ep.extensionsRead()
+       if m == nil {
+               return nil
+       }
+       mu.Lock()
+       ids := make([]int32, 0, len(m))
+       for id := range m {
+               ids = append(ids, id)
+       }
+       sort.Sort(int32Slice(ids))
+       mu.Unlock()
+
+       for _, extNum := range ids {
+               ext := m[extNum]
+               var desc *ExtensionDesc
+               if emap != nil {
+                       desc = emap[extNum]
+               }
+               if desc == nil {
+                       // Unknown extension.
+                       if err := writeUnknownStruct(w, ext.enc); err != nil {
+                               return err
+                       }
+                       continue
+               }
+
+               pb, err := GetExtension(ep, desc)
+               if err != nil {
+                       return fmt.Errorf("failed getting extension: %v", err)
+               }
+
+               // Repeated extensions will appear as a slice.
+               if !desc.repeated() {
+                       if err := tm.writeExtension(w, desc.Name, pb); err != nil {
+                               return err
+                       }
+               } else {
+                       v := reflect.ValueOf(pb)
+                       for i := 0; i < v.Len(); i++ {
+                               if err := tm.writeExtension(w, desc.Name, v.Index(i).Interface()); err != nil {
+                                       return err
+                               }
+                       }
+               }
+       }
+       return nil
+}
+
+func (tm *TextMarshaler) writeExtension(w *textWriter, name string, pb interface{}) error {
+       if _, err := fmt.Fprintf(w, "[%s]:", name); err != nil {
+               return err
+       }
+       if !w.compact {
+               if err := w.WriteByte(' '); err != nil {
+                       return err
+               }
+       }
+       if err := tm.writeAny(w, reflect.ValueOf(pb), nil); err != nil {
+               return err
+       }
+       if err := w.WriteByte('\n'); err != nil {
+               return err
+       }
+       return nil
+}
+
+func (w *textWriter) writeIndent() {
+       if !w.complete {
+               return
+       }
+       remain := w.ind * 2
+       for remain > 0 {
+               n := remain
+               if n > len(spaces) {
+                       n = len(spaces)
+               }
+               w.w.Write(spaces[:n])
+               remain -= n
+       }
+       w.complete = false
+}
+
+// TextMarshaler is a configurable text format marshaler.
+type TextMarshaler struct {
+       Compact   bool // use compact text format (one line).
+       ExpandAny bool // expand google.protobuf.Any messages of known types
+}
+
+// Marshal writes a given protocol buffer in text format.
+// The only errors returned are from w.
+func (tm *TextMarshaler) Marshal(w io.Writer, pb Message) error {
+       val := reflect.ValueOf(pb)
+       if pb == nil || val.IsNil() {
+               w.Write([]byte("<nil>"))
+               return nil
+       }
+       var bw *bufio.Writer
+       ww, ok := w.(writer)
+       if !ok {
+               bw = bufio.NewWriter(w)
+               ww = bw
+       }
+       aw := &textWriter{
+               w:        ww,
+               complete: true,
+               compact:  tm.Compact,
+       }
+
+       if etm, ok := pb.(encoding.TextMarshaler); ok {
+               text, err := etm.MarshalText()
+               if err != nil {
+                       return err
+               }
+               if _, err = aw.Write(text); err != nil {
+                       return err
+               }
+               if bw != nil {
+                       return bw.Flush()
+               }
+               return nil
+       }
+       // Dereference the received pointer so we don't have outer < and >.
+       v := reflect.Indirect(val)
+       if err := tm.writeStruct(aw, v); err != nil {
+               return err
+       }
+       if bw != nil {
+               return bw.Flush()
+       }
+       return nil
+}
+
+// Text is the same as Marshal, but returns the string directly.
+func (tm *TextMarshaler) Text(pb Message) string {
+       var buf bytes.Buffer
+       tm.Marshal(&buf, pb)
+       return buf.String()
+}
+
+var (
+       defaultTextMarshaler = TextMarshaler{}
+       compactTextMarshaler = TextMarshaler{Compact: true}
+)
+
+// TODO: consider removing some of the Marshal functions below.
+
+// MarshalText writes a given protocol buffer in text format.
+// The only errors returned are from w.
+func MarshalText(w io.Writer, pb Message) error { return defaultTextMarshaler.Marshal(w, pb) }
+
+// MarshalTextString is the same as MarshalText, but returns the string directly.
+func MarshalTextString(pb Message) string { return defaultTextMarshaler.Text(pb) }
+
+// CompactText writes a given protocol buffer in compact text format (one line).
+func CompactText(w io.Writer, pb Message) error { return compactTextMarshaler.Marshal(w, pb) }
+
+// CompactTextString is the same as CompactText, but returns the string directly.
+func CompactTextString(pb Message) string { return compactTextMarshaler.Text(pb) }
diff --git a/vendor/github.com/golang/protobuf/proto/text_parser.go b/vendor/github.com/golang/protobuf/proto/text_parser.go
new file mode 100644 (file)
index 0000000..5e14513
--- /dev/null
@@ -0,0 +1,895 @@
+// Go support for Protocol Buffers - Google's data interchange format
+//
+// Copyright 2010 The Go Authors.  All rights reserved.
+// https://github.com/golang/protobuf
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+package proto
+
+// Functions for parsing the Text protocol buffer format.
+// TODO: message sets.
+
+import (
+       "encoding"
+       "errors"
+       "fmt"
+       "reflect"
+       "strconv"
+       "strings"
+       "unicode/utf8"
+)
+
+// Error string emitted when deserializing Any and fields are already set
+const anyRepeatedlyUnpacked = "Any message unpacked multiple times, or %q already set"
+
+type ParseError struct {
+       Message string
+       Line    int // 1-based line number
+       Offset  int // 0-based byte offset from start of input
+}
+
+func (p *ParseError) Error() string {
+       if p.Line == 1 {
+               // show offset only for first line
+               return fmt.Sprintf("line 1.%d: %v", p.Offset, p.Message)
+       }
+       return fmt.Sprintf("line %d: %v", p.Line, p.Message)
+}
+
+type token struct {
+       value    string
+       err      *ParseError
+       line     int    // line number
+       offset   int    // byte number from start of input, not start of line
+       unquoted string // the unquoted version of value, if it was a quoted string
+}
+
+func (t *token) String() string {
+       if t.err == nil {
+               return fmt.Sprintf("%q (line=%d, offset=%d)", t.value, t.line, t.offset)
+       }
+       return fmt.Sprintf("parse error: %v", t.err)
+}
+
+type textParser struct {
+       s            string // remaining input
+       done         bool   // whether the parsing is finished (success or error)
+       backed       bool   // whether back() was called
+       offset, line int
+       cur          token
+}
+
+func newTextParser(s string) *textParser {
+       p := new(textParser)
+       p.s = s
+       p.line = 1
+       p.cur.line = 1
+       return p
+}
+
+func (p *textParser) errorf(format string, a ...interface{}) *ParseError {
+       pe := &ParseError{fmt.Sprintf(format, a...), p.cur.line, p.cur.offset}
+       p.cur.err = pe
+       p.done = true
+       return pe
+}
+
+// Numbers and identifiers are matched by [-+._A-Za-z0-9]
+func isIdentOrNumberChar(c byte) bool {
+       switch {
+       case 'A' <= c && c <= 'Z', 'a' <= c && c <= 'z':
+               return true
+       case '0' <= c && c <= '9':
+               return true
+       }
+       switch c {
+       case '-', '+', '.', '_':
+               return true
+       }
+       return false
+}
+
+func isWhitespace(c byte) bool {
+       switch c {
+       case ' ', '\t', '\n', '\r':
+               return true
+       }
+       return false
+}
+
+func isQuote(c byte) bool {
+       switch c {
+       case '"', '\'':
+               return true
+       }
+       return false
+}
+
+func (p *textParser) skipWhitespace() {
+       i := 0
+       for i < len(p.s) && (isWhitespace(p.s[i]) || p.s[i] == '#') {
+               if p.s[i] == '#' {
+                       // comment; skip to end of line or input
+                       for i < len(p.s) && p.s[i] != '\n' {
+                               i++
+                       }
+                       if i == len(p.s) {
+                               break
+                       }
+               }
+               if p.s[i] == '\n' {
+                       p.line++
+               }
+               i++
+       }
+       p.offset += i
+       p.s = p.s[i:len(p.s)]
+       if len(p.s) == 0 {
+               p.done = true
+       }
+}
+
+func (p *textParser) advance() {
+       // Skip whitespace
+       p.skipWhitespace()
+       if p.done {
+               return
+       }
+
+       // Start of non-whitespace
+       p.cur.err = nil
+       p.cur.offset, p.cur.line = p.offset, p.line
+       p.cur.unquoted = ""
+       switch p.s[0] {
+       case '<', '>', '{', '}', ':', '[', ']', ';', ',', '/':
+               // Single symbol
+               p.cur.value, p.s = p.s[0:1], p.s[1:len(p.s)]
+       case '"', '\'':
+               // Quoted string
+               i := 1
+               for i < len(p.s) && p.s[i] != p.s[0] && p.s[i] != '\n' {
+                       if p.s[i] == '\\' && i+1 < len(p.s) {
+                               // skip escaped char
+                               i++
+                       }
+                       i++
+               }
+               if i >= len(p.s) || p.s[i] != p.s[0] {
+                       p.errorf("unmatched quote")
+                       return
+               }
+               unq, err := unquoteC(p.s[1:i], rune(p.s[0]))
+               if err != nil {
+                       p.errorf("invalid quoted string %s: %v", p.s[0:i+1], err)
+                       return
+               }
+               p.cur.value, p.s = p.s[0:i+1], p.s[i+1:len(p.s)]
+               p.cur.unquoted = unq
+       default:
+               i := 0
+               for i < len(p.s) && isIdentOrNumberChar(p.s[i]) {
+                       i++
+               }
+               if i == 0 {
+                       p.errorf("unexpected byte %#x", p.s[0])
+                       return
+               }
+               p.cur.value, p.s = p.s[0:i], p.s[i:len(p.s)]
+       }
+       p.offset += len(p.cur.value)
+}
+
+var (
+       errBadUTF8 = errors.New("proto: bad UTF-8")
+       errBadHex  = errors.New("proto: bad hexadecimal")
+)
+
+func unquoteC(s string, quote rune) (string, error) {
+       // This is based on C++'s tokenizer.cc.
+       // Despite its name, this is *not* parsing C syntax.
+       // For instance, "\0" is an invalid quoted string.
+
+       // Avoid allocation in trivial cases.
+       simple := true
+       for _, r := range s {
+               if r == '\\' || r == quote {
+                       simple = false
+                       break
+               }
+       }
+       if simple {
+               return s, nil
+       }
+
+       buf := make([]byte, 0, 3*len(s)/2)
+       for len(s) > 0 {
+               r, n := utf8.DecodeRuneInString(s)
+               if r == utf8.RuneError && n == 1 {
+                       return "", errBadUTF8
+               }
+               s = s[n:]
+               if r != '\\' {
+                       if r < utf8.RuneSelf {
+                               buf = append(buf, byte(r))
+                       } else {
+                               buf = append(buf, string(r)...)
+                       }
+                       continue
+               }
+
+               ch, tail, err := unescape(s)
+               if err != nil {
+                       return "", err
+               }
+               buf = append(buf, ch...)
+               s = tail
+       }
+       return string(buf), nil
+}
+
+func unescape(s string) (ch string, tail string, err error) {
+       r, n := utf8.DecodeRuneInString(s)
+       if r == utf8.RuneError && n == 1 {
+               return "", "", errBadUTF8
+       }
+       s = s[n:]
+       switch r {
+       case 'a':
+               return "\a", s, nil
+       case 'b':
+               return "\b", s, nil
+       case 'f':
+               return "\f", s, nil
+       case 'n':
+               return "\n", s, nil
+       case 'r':
+               return "\r", s, nil
+       case 't':
+               return "\t", s, nil
+       case 'v':
+               return "\v", s, nil
+       case '?':
+               return "?", s, nil // trigraph workaround
+       case '\'', '"', '\\':
+               return string(r), s, nil
+       case '0', '1', '2', '3', '4', '5', '6', '7', 'x', 'X':
+               if len(s) < 2 {
+                       return "", "", fmt.Errorf(`\%c requires 2 following digits`, r)
+               }
+               base := 8
+               ss := s[:2]
+               s = s[2:]
+               if r == 'x' || r == 'X' {
+                       base = 16
+               } else {
+                       ss = string(r) + ss
+               }
+               i, err := strconv.ParseUint(ss, base, 8)
+               if err != nil {
+                       return "", "", err
+               }
+               return string([]byte{byte(i)}), s, nil
+       case 'u', 'U':
+               n := 4
+               if r == 'U' {
+                       n = 8
+               }
+               if len(s) < n {
+                       return "", "", fmt.Errorf(`\%c requires %d digits`, r, n)
+               }
+
+               bs := make([]byte, n/2)
+               for i := 0; i < n; i += 2 {
+                       a, ok1 := unhex(s[i])
+                       b, ok2 := unhex(s[i+1])
+                       if !ok1 || !ok2 {
+                               return "", "", errBadHex
+                       }
+                       bs[i/2] = a<<4 | b
+               }
+               s = s[n:]
+               return string(bs), s, nil
+       }
+       return "", "", fmt.Errorf(`unknown escape \%c`, r)
+}
+
+// Adapted from src/pkg/strconv/quote.go.
+func unhex(b byte) (v byte, ok bool) {
+       switch {
+       case '0' <= b && b <= '9':
+               return b - '0', true
+       case 'a' <= b && b <= 'f':
+               return b - 'a' + 10, true
+       case 'A' <= b && b <= 'F':
+               return b - 'A' + 10, true
+       }
+       return 0, false
+}
+
+// Back off the parser by one token. Can only be done between calls to next().
+// It makes the next advance() a no-op.
+func (p *textParser) back() { p.backed = true }
+
+// Advances the parser and returns the new current token.
+func (p *textParser) next() *token {
+       if p.backed || p.done {
+               p.backed = false
+               return &p.cur
+       }
+       p.advance()
+       if p.done {
+               p.cur.value = ""
+       } else if len(p.cur.value) > 0 && isQuote(p.cur.value[0]) {
+               // Look for multiple quoted strings separated by whitespace,
+               // and concatenate them.
+               cat := p.cur
+               for {
+                       p.skipWhitespace()
+                       if p.done || !isQuote(p.s[0]) {
+                               break
+                       }
+                       p.advance()
+                       if p.cur.err != nil {
+                               return &p.cur
+                       }
+                       cat.value += " " + p.cur.value
+                       cat.unquoted += p.cur.unquoted
+               }
+               p.done = false // parser may have seen EOF, but we want to return cat
+               p.cur = cat
+       }
+       return &p.cur
+}
+
+func (p *textParser) consumeToken(s string) error {
+       tok := p.next()
+       if tok.err != nil {
+               return tok.err
+       }
+       if tok.value != s {
+               p.back()
+               return p.errorf("expected %q, found %q", s, tok.value)
+       }
+       return nil
+}
+
+// Return a RequiredNotSetError indicating which required field was not set.
+func (p *textParser) missingRequiredFieldError(sv reflect.Value) *RequiredNotSetError {
+       st := sv.Type()
+       sprops := GetProperties(st)
+       for i := 0; i < st.NumField(); i++ {
+               if !isNil(sv.Field(i)) {
+                       continue
+               }
+
+               props := sprops.Prop[i]
+               if props.Required {
+                       return &RequiredNotSetError{fmt.Sprintf("%v.%v", st, props.OrigName)}
+               }
+       }
+       return &RequiredNotSetError{fmt.Sprintf("%v.<unknown field name>", st)} // should not happen
+}
+
+// Returns the index in the struct for the named field, as well as the parsed tag properties.
+func structFieldByName(sprops *StructProperties, name string) (int, *Properties, bool) {
+       i, ok := sprops.decoderOrigNames[name]
+       if ok {
+               return i, sprops.Prop[i], true
+       }
+       return -1, nil, false
+}
+
+// Consume a ':' from the input stream (if the next token is a colon),
+// returning an error if a colon is needed but not present.
+func (p *textParser) checkForColon(props *Properties, typ reflect.Type) *ParseError {
+       tok := p.next()
+       if tok.err != nil {
+               return tok.err
+       }
+       if tok.value != ":" {
+               // Colon is optional when the field is a group or message.
+               needColon := true
+               switch props.Wire {
+               case "group":
+                       needColon = false
+               case "bytes":
+                       // A "bytes" field is either a message, a string, or a repeated field;
+                       // those three become *T, *string and []T respectively, so we can check for
+                       // this field being a pointer to a non-string.
+                       if typ.Kind() == reflect.Ptr {
+                               // *T or *string
+                               if typ.Elem().Kind() == reflect.String {
+                                       break
+                               }
+                       } else if typ.Kind() == reflect.Slice {
+                               // []T or []*T
+                               if typ.Elem().Kind() != reflect.Ptr {
+                                       break
+                               }
+                       } else if typ.Kind() == reflect.String {
+                               // The proto3 exception is for a string field,
+                               // which requires a colon.
+                               break
+                       }
+                       needColon = false
+               }
+               if needColon {
+                       return p.errorf("expected ':', found %q", tok.value)
+               }
+               p.back()
+       }
+       return nil
+}
+
+func (p *textParser) readStruct(sv reflect.Value, terminator string) error {
+       st := sv.Type()
+       sprops := GetProperties(st)
+       reqCount := sprops.reqCount
+       var reqFieldErr error
+       fieldSet := make(map[string]bool)
+       // A struct is a sequence of "name: value", terminated by one of
+       // '>' or '}', or the end of the input.  A name may also be
+       // "[extension]" or "[type/url]".
+       //
+       // The whole struct can also be an expanded Any message, like:
+       // [type/url] < ... struct contents ... >
+       for {
+               tok := p.next()
+               if tok.err != nil {
+                       return tok.err
+               }
+               if tok.value == terminator {
+                       break
+               }
+               if tok.value == "[" {
+                       // Looks like an extension or an Any.
+                       //
+                       // TODO: Check whether we need to handle
+                       // namespace rooted names (e.g. ".something.Foo").
+                       extName, err := p.consumeExtName()
+                       if err != nil {
+                               return err
+                       }
+
+                       if s := strings.LastIndex(extName, "/"); s >= 0 {
+                               // If it contains a slash, it's an Any type URL.
+                               messageName := extName[s+1:]
+                               mt := MessageType(messageName)
+                               if mt == nil {
+                                       return p.errorf("unrecognized message %q in google.protobuf.Any", messageName)
+                               }
+                               tok = p.next()
+                               if tok.err != nil {
+                                       return tok.err
+                               }
+                               // consume an optional colon
+                               if tok.value == ":" {
+                                       tok = p.next()
+                                       if tok.err != nil {
+                                               return tok.err
+                                       }
+                               }
+                               var terminator string
+                               switch tok.value {
+                               case "<":
+                                       terminator = ">"
+                               case "{":
+                                       terminator = "}"
+                               default:
+                                       return p.errorf("expected '{' or '<', found %q", tok.value)
+                               }
+                               v := reflect.New(mt.Elem())
+                               if pe := p.readStruct(v.Elem(), terminator); pe != nil {
+                                       return pe
+                               }
+                               b, err := Marshal(v.Interface().(Message))
+                               if err != nil {
+                                       return p.errorf("failed to marshal message of type %q: %v", messageName, err)
+                               }
+                               if fieldSet["type_url"] {
+                                       return p.errorf(anyRepeatedlyUnpacked, "type_url")
+                               }
+                               if fieldSet["value"] {
+                                       return p.errorf(anyRepeatedlyUnpacked, "value")
+                               }
+                               sv.FieldByName("TypeUrl").SetString(extName)
+                               sv.FieldByName("Value").SetBytes(b)
+                               fieldSet["type_url"] = true
+                               fieldSet["value"] = true
+                               continue
+                       }
+
+                       var desc *ExtensionDesc
+                       // This could be faster, but it's functional.
+                       // TODO: Do something smarter than a linear scan.
+                       for _, d := range RegisteredExtensions(reflect.New(st).Interface().(Message)) {
+                               if d.Name == extName {
+                                       desc = d
+                                       break
+                               }
+                       }
+                       if desc == nil {
+                               return p.errorf("unrecognized extension %q", extName)
+                       }
+
+                       props := &Properties{}
+                       props.Parse(desc.Tag)
+
+                       typ := reflect.TypeOf(desc.ExtensionType)
+                       if err := p.checkForColon(props, typ); err != nil {
+                               return err
+                       }
+
+                       rep := desc.repeated()
+
+                       // Read the extension structure, and set it in
+                       // the value we're constructing.
+                       var ext reflect.Value
+                       if !rep {
+                               ext = reflect.New(typ).Elem()
+                       } else {
+                               ext = reflect.New(typ.Elem()).Elem()
+                       }
+                       if err := p.readAny(ext, props); err != nil {
+                               if _, ok := err.(*RequiredNotSetError); !ok {
+                                       return err
+                               }
+                               reqFieldErr = err
+                       }
+                       ep := sv.Addr().Interface().(Message)
+                       if !rep {
+                               SetExtension(ep, desc, ext.Interface())
+                       } else {
+                               old, err := GetExtension(ep, desc)
+                               var sl reflect.Value
+                               if err == nil {
+                                       sl = reflect.ValueOf(old) // existing slice
+                               } else {
+                                       sl = reflect.MakeSlice(typ, 0, 1)
+                               }
+                               sl = reflect.Append(sl, ext)
+                               SetExtension(ep, desc, sl.Interface())
+                       }
+                       if err := p.consumeOptionalSeparator(); err != nil {
+                               return err
+                       }
+                       continue
+               }
+
+               // This is a normal, non-extension field.
+               name := tok.value
+               var dst reflect.Value
+               fi, props, ok := structFieldByName(sprops, name)
+               if ok {
+                       dst = sv.Field(fi)
+               } else if oop, ok := sprops.OneofTypes[name]; ok {
+                       // It is a oneof.
+                       props = oop.Prop
+                       nv := reflect.New(oop.Type.Elem())
+                       dst = nv.Elem().Field(0)
+                       field := sv.Field(oop.Field)
+                       if !field.IsNil() {
+                               return p.errorf("field '%s' would overwrite already parsed oneof '%s'", name, sv.Type().Field(oop.Field).Name)
+                       }
+                       field.Set(nv)
+               }
+               if !dst.IsValid() {
+                       return p.errorf("unknown field name %q in %v", name, st)
+               }
+
+               if dst.Kind() == reflect.Map {
+                       // Consume any colon.
+                       if err := p.checkForColon(props, dst.Type()); err != nil {
+                               return err
+                       }
+
+                       // Construct the map if it doesn't already exist.
+                       if dst.IsNil() {
+                               dst.Set(reflect.MakeMap(dst.Type()))
+                       }
+                       key := reflect.New(dst.Type().Key()).Elem()
+                       val := reflect.New(dst.Type().Elem()).Elem()
+
+                       // The map entry should be this sequence of tokens:
+                       //      < key : KEY value : VALUE >
+                       // However, implementations may omit key or value, and technically
+                       // we should support them in any order.  See b/28924776 for a time
+                       // this went wrong.
+
+                       tok := p.next()
+                       var terminator string
+                       switch tok.value {
+                       case "<":
+                               terminator = ">"
+                       case "{":
+                               terminator = "}"
+                       default:
+                               return p.errorf("expected '{' or '<', found %q", tok.value)
+                       }
+                       for {
+                               tok := p.next()
+                               if tok.err != nil {
+                                       return tok.err
+                               }
+                               if tok.value == terminator {
+                                       break
+                               }
+                               switch tok.value {
+                               case "key":
+                                       if err := p.consumeToken(":"); err != nil {
+                                               return err
+                                       }
+                                       if err := p.readAny(key, props.mkeyprop); err != nil {
+                                               return err
+                                       }
+                                       if err := p.consumeOptionalSeparator(); err != nil {
+                                               return err
+                                       }
+                               case "value":
+                                       if err := p.checkForColon(props.mvalprop, dst.Type().Elem()); err != nil {
+                                               return err
+                                       }
+                                       if err := p.readAny(val, props.mvalprop); err != nil {
+                                               return err
+                                       }
+                                       if err := p.consumeOptionalSeparator(); err != nil {
+                                               return err
+                                       }
+                               default:
+                                       p.back()
+                                       return p.errorf(`expected "key", "value", or %q, found %q`, terminator, tok.value)
+                               }
+                       }
+
+                       dst.SetMapIndex(key, val)
+                       continue
+               }
+
+               // Check that it's not already set if it's not a repeated field.
+               if !props.Repeated && fieldSet[name] {
+                       return p.errorf("non-repeated field %q was repeated", name)
+               }
+
+               if err := p.checkForColon(props, dst.Type()); err != nil {
+                       return err
+               }
+
+               // Parse into the field.
+               fieldSet[name] = true
+               if err := p.readAny(dst, props); err != nil {
+                       if _, ok := err.(*RequiredNotSetError); !ok {
+                               return err
+                       }
+                       reqFieldErr = err
+               }
+               if props.Required {
+                       reqCount--
+               }
+
+               if err := p.consumeOptionalSeparator(); err != nil {
+                       return err
+               }
+
+       }
+
+       if reqCount > 0 {
+               return p.missingRequiredFieldError(sv)
+       }
+       return reqFieldErr
+}
+
+// consumeExtName consumes extension name or expanded Any type URL and the
+// following ']'. It returns the name or URL consumed.
+func (p *textParser) consumeExtName() (string, error) {
+       tok := p.next()
+       if tok.err != nil {
+               return "", tok.err
+       }
+
+       // If extension name or type url is quoted, it's a single token.
+       if len(tok.value) > 2 && isQuote(tok.value[0]) && tok.value[len(tok.value)-1] == tok.value[0] {
+               name, err := unquoteC(tok.value[1:len(tok.value)-1], rune(tok.value[0]))
+               if err != nil {
+                       return "", err
+               }
+               return name, p.consumeToken("]")
+       }
+
+       // Consume everything up to "]"
+       var parts []string
+       for tok.value != "]" {
+               parts = append(parts, tok.value)
+               tok = p.next()
+               if tok.err != nil {
+                       return "", p.errorf("unrecognized type_url or extension name: %s", tok.err)
+               }
+       }
+       return strings.Join(parts, ""), nil
+}
+
+// consumeOptionalSeparator consumes an optional semicolon or comma.
+// It is used in readStruct to provide backward compatibility.
+func (p *textParser) consumeOptionalSeparator() error {
+       tok := p.next()
+       if tok.err != nil {
+               return tok.err
+       }
+       if tok.value != ";" && tok.value != "," {
+               p.back()
+       }
+       return nil
+}
+
+func (p *textParser) readAny(v reflect.Value, props *Properties) error {
+       tok := p.next()
+       if tok.err != nil {
+               return tok.err
+       }
+       if tok.value == "" {
+               return p.errorf("unexpected EOF")
+       }
+
+       switch fv := v; fv.Kind() {
+       case reflect.Slice:
+               at := v.Type()
+               if at.Elem().Kind() == reflect.Uint8 {
+                       // Special case for []byte
+                       if tok.value[0] != '"' && tok.value[0] != '\'' {
+                               // Deliberately written out here, as the error after
+                               // this switch statement would write "invalid []byte: ...",
+                               // which is not as user-friendly.
+                               return p.errorf("invalid string: %v", tok.value)
+                       }
+                       bytes := []byte(tok.unquoted)
+                       fv.Set(reflect.ValueOf(bytes))
+                       return nil
+               }
+               // Repeated field.
+               if tok.value == "[" {
+                       // Repeated field with list notation, like [1,2,3].
+                       for {
+                               fv.Set(reflect.Append(fv, reflect.New(at.Elem()).Elem()))
+                               err := p.readAny(fv.Index(fv.Len()-1), props)
+                               if err != nil {
+                                       return err
+                               }
+                               tok := p.next()
+                               if tok.err != nil {
+                                       return tok.err
+                               }
+                               if tok.value == "]" {
+                                       break
+                               }
+                               if tok.value != "," {
+                                       return p.errorf("Expected ']' or ',' found %q", tok.value)
+                               }
+                       }
+                       return nil
+               }
+               // One value of the repeated field.
+               p.back()
+               fv.Set(reflect.Append(fv, reflect.New(at.Elem()).Elem()))
+               return p.readAny(fv.Index(fv.Len()-1), props)
+       case reflect.Bool:
+               // true/1/t/True or false/f/0/False.
+               switch tok.value {
+               case "true", "1", "t", "True":
+                       fv.SetBool(true)
+                       return nil
+               case "false", "0", "f", "False":
+                       fv.SetBool(false)
+                       return nil
+               }
+       case reflect.Float32, reflect.Float64:
+               v := tok.value
+               // Ignore 'f' for compatibility with output generated by C++, but don't
+               // remove 'f' when the value is "-inf" or "inf".
+               if strings.HasSuffix(v, "f") && tok.value != "-inf" && tok.value != "inf" {
+                       v = v[:len(v)-1]
+               }
+               if f, err := strconv.ParseFloat(v, fv.Type().Bits()); err == nil {
+                       fv.SetFloat(f)
+                       return nil
+               }
+       case reflect.Int32:
+               if x, err := strconv.ParseInt(tok.value, 0, 32); err == nil {
+                       fv.SetInt(x)
+                       return nil
+               }
+
+               if len(props.Enum) == 0 {
+                       break
+               }
+               m, ok := enumValueMaps[props.Enum]
+               if !ok {
+                       break
+               }
+               x, ok := m[tok.value]
+               if !ok {
+                       break
+               }
+               fv.SetInt(int64(x))
+               return nil
+       case reflect.Int64:
+               if x, err := strconv.ParseInt(tok.value, 0, 64); err == nil {
+                       fv.SetInt(x)
+                       return nil
+               }
+
+       case reflect.Ptr:
+               // A basic field (indirected through pointer), or a repeated message/group
+               p.back()
+               fv.Set(reflect.New(fv.Type().Elem()))
+               return p.readAny(fv.Elem(), props)
+       case reflect.String:
+               if tok.value[0] == '"' || tok.value[0] == '\'' {
+                       fv.SetString(tok.unquoted)
+                       return nil
+               }
+       case reflect.Struct:
+               var terminator string
+               switch tok.value {
+               case "{":
+                       terminator = "}"
+               case "<":
+                       terminator = ">"
+               default:
+                       return p.errorf("expected '{' or '<', found %q", tok.value)
+               }
+               // TODO: Handle nested messages which implement encoding.TextUnmarshaler.
+               return p.readStruct(fv, terminator)
+       case reflect.Uint32:
+               if x, err := strconv.ParseUint(tok.value, 0, 32); err == nil {
+                       fv.SetUint(x)
+                       return nil
+               }
+       case reflect.Uint64:
+               if x, err := strconv.ParseUint(tok.value, 0, 64); err == nil {
+                       fv.SetUint(x)
+                       return nil
+               }
+       }
+       return p.errorf("invalid %v: %v", v.Type(), tok.value)
+}
+
+// UnmarshalText reads a protocol buffer in Text format. UnmarshalText resets pb
+// before starting to unmarshal, so any existing data in pb is always removed.
+// If a required field is not set and no other error occurs,
+// UnmarshalText returns *RequiredNotSetError.
+func UnmarshalText(s string, pb Message) error {
+       if um, ok := pb.(encoding.TextUnmarshaler); ok {
+               err := um.UnmarshalText([]byte(s))
+               return err
+       }
+       pb.Reset()
+       v := reflect.ValueOf(pb)
+       if pe := newTextParser(s).readStruct(v.Elem(), ""); pe != nil {
+               return pe
+       }
+       return nil
+}
diff --git a/vendor/github.com/inconshreveable/mousetrap/LICENSE b/vendor/github.com/inconshreveable/mousetrap/LICENSE
new file mode 100644 (file)
index 0000000..5f0d1fb
--- /dev/null
@@ -0,0 +1,13 @@
+Copyright 2014 Alan Shreve
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
diff --git a/vendor/github.com/inconshreveable/mousetrap/README.md b/vendor/github.com/inconshreveable/mousetrap/README.md
new file mode 100644 (file)
index 0000000..7a950d1
--- /dev/null
@@ -0,0 +1,23 @@
+# mousetrap
+
+mousetrap is a tiny library that answers a single question.
+
+On a Windows machine, was the process invoked by someone double clicking on
+the executable file while browsing in explorer?
+
+### Motivation
+
+Windows developers unfamiliar with command line tools will often "double-click"
+the executable for a tool. Because most CLI tools print the help and then exit
+when invoked without arguments, this is often very frustrating for those users.
+
+mousetrap provides a way to detect these invocations so that you can provide
+more helpful behavior and instructions on how to run the CLI tool. To see what
+this looks like, both from an organizational and a technical perspective, see
+https://inconshreveable.com/09-09-2014/sweat-the-small-stuff/
+
+### The interface
+
+The library exposes a single interface:
+
+    func StartedByExplorer() (bool)
diff --git a/vendor/github.com/inconshreveable/mousetrap/trap_others.go b/vendor/github.com/inconshreveable/mousetrap/trap_others.go
new file mode 100644 (file)
index 0000000..9d2d8a4
--- /dev/null
@@ -0,0 +1,15 @@
+// +build !windows
+
+package mousetrap
+
+// StartedByExplorer returns true if the program was invoked by the user
+// double-clicking on the executable from explorer.exe
+//
+// It is conservative and returns false if any of the internal calls fail.
+// It does not guarantee that the program was run from a terminal. It only can tell you
+// whether it was launched from explorer.exe
+//
+// On non-Windows platforms, it always returns false.
+func StartedByExplorer() bool {
+       return false
+}
diff --git a/vendor/github.com/inconshreveable/mousetrap/trap_windows.go b/vendor/github.com/inconshreveable/mousetrap/trap_windows.go
new file mode 100644 (file)
index 0000000..336142a
--- /dev/null
@@ -0,0 +1,98 @@
+// +build windows
+// +build !go1.4
+
+package mousetrap
+
+import (
+       "fmt"
+       "os"
+       "syscall"
+       "unsafe"
+)
+
+const (
+       // defined by the Win32 API
+       th32cs_snapprocess uintptr = 0x2
+)
+
+var (
+       kernel                   = syscall.MustLoadDLL("kernel32.dll")
+       CreateToolhelp32Snapshot = kernel.MustFindProc("CreateToolhelp32Snapshot")
+       Process32First           = kernel.MustFindProc("Process32FirstW")
+       Process32Next            = kernel.MustFindProc("Process32NextW")
+)
+
+// ProcessEntry32 structure defined by the Win32 API
+type processEntry32 struct {
+       dwSize              uint32
+       cntUsage            uint32
+       th32ProcessID       uint32
+       th32DefaultHeapID   int
+       th32ModuleID        uint32
+       cntThreads          uint32
+       th32ParentProcessID uint32
+       pcPriClassBase      int32
+       dwFlags             uint32
+       szExeFile           [syscall.MAX_PATH]uint16
+}
+
+func getProcessEntry(pid int) (pe *processEntry32, err error) {
+       snapshot, _, e1 := CreateToolhelp32Snapshot.Call(th32cs_snapprocess, uintptr(0))
+       if snapshot == uintptr(syscall.InvalidHandle) {
+               err = fmt.Errorf("CreateToolhelp32Snapshot: %v", e1)
+               return
+       }
+       defer syscall.CloseHandle(syscall.Handle(snapshot))
+
+       var processEntry processEntry32
+       processEntry.dwSize = uint32(unsafe.Sizeof(processEntry))
+       ok, _, e1 := Process32First.Call(snapshot, uintptr(unsafe.Pointer(&processEntry)))
+       if ok == 0 {
+               err = fmt.Errorf("Process32First: %v", e1)
+               return
+       }
+
+       for {
+               if processEntry.th32ProcessID == uint32(pid) {
+                       pe = &processEntry
+                       return
+               }
+
+               ok, _, e1 = Process32Next.Call(snapshot, uintptr(unsafe.Pointer(&processEntry)))
+               if ok == 0 {
+                       err = fmt.Errorf("Process32Next: %v", e1)
+                       return
+               }
+       }
+}
+
+func getppid() (pid int, err error) {
+       pe, err := getProcessEntry(os.Getpid())
+       if err != nil {
+               return
+       }
+
+       pid = int(pe.th32ParentProcessID)
+       return
+}
+
+// StartedByExplorer returns true if the program was invoked by the user double-clicking
+// on the executable from explorer.exe
+//
+// It is conservative and returns false if any of the internal calls fail.
+// It does not guarantee that the program was run from a terminal. It only can tell you
+// whether it was launched from explorer.exe
+func StartedByExplorer() bool {
+       ppid, err := getppid()
+       if err != nil {
+               return false
+       }
+
+       pe, err := getProcessEntry(ppid)
+       if err != nil {
+               return false
+       }
+
+       name := syscall.UTF16ToString(pe.szExeFile[:])
+       return name == "explorer.exe"
+}
diff --git a/vendor/github.com/inconshreveable/mousetrap/trap_windows_1.4.go b/vendor/github.com/inconshreveable/mousetrap/trap_windows_1.4.go
new file mode 100644 (file)
index 0000000..9a28e57
--- /dev/null
@@ -0,0 +1,46 @@
+// +build windows
+// +build go1.4
+
+package mousetrap
+
+import (
+       "os"
+       "syscall"
+       "unsafe"
+)
+
+func getProcessEntry(pid int) (*syscall.ProcessEntry32, error) {
+       snapshot, err := syscall.CreateToolhelp32Snapshot(syscall.TH32CS_SNAPPROCESS, 0)
+       if err != nil {
+               return nil, err
+       }
+       defer syscall.CloseHandle(snapshot)
+       var procEntry syscall.ProcessEntry32
+       procEntry.Size = uint32(unsafe.Sizeof(procEntry))
+       if err = syscall.Process32First(snapshot, &procEntry); err != nil {
+               return nil, err
+       }
+       for {
+               if procEntry.ProcessID == uint32(pid) {
+                       return &procEntry, nil
+               }
+               err = syscall.Process32Next(snapshot, &procEntry)
+               if err != nil {
+                       return nil, err
+               }
+       }
+}
+
+// StartedByExplorer returns true if the program was invoked by the user double-clicking
+// on the executable from explorer.exe
+//
+// It is conservative and returns false if any of the internal calls fail.
+// It does not guarantee that the program was run from a terminal. It only can tell you
+// whether it was launched from explorer.exe
+func StartedByExplorer() bool {
+       pe, err := getProcessEntry(os.Getppid())
+       if err != nil {
+               return false
+       }
+       return "explorer.exe" == syscall.UTF16ToString(pe.ExeFile[:])
+}
diff --git a/vendor/github.com/sirupsen/logrus/CHANGELOG.md b/vendor/github.com/sirupsen/logrus/CHANGELOG.md
new file mode 100644 (file)
index 0000000..8236d8b
--- /dev/null
@@ -0,0 +1,113 @@
+# 1.0.3
+
+* Replace example files with testable examples
+
+# 1.0.2
+
+* bug: quote non-string values in text formatter (#583)
+* Make (*Logger) SetLevel a public method
+
+# 1.0.1
+
+* bug: fix escaping in text formatter (#575)
+
+# 1.0.0
+
+* Officially changed name to lower-case
+* bug: colors on Windows 10 (#541)
+* bug: fix race in accessing level (#512)
+
+# 0.11.5
+
+* feature: add writer and writerlevel to entry (#372)
+
+# 0.11.4
+
+* bug: fix undefined variable on solaris (#493)
+
+# 0.11.3
+
+* formatter: configure quoting of empty values (#484)
+* formatter: configure quoting character (default is `"`) (#484)
+* bug: fix not importing io correctly in non-linux environments (#481)
+
+# 0.11.2
+
+* bug: fix windows terminal detection (#476)
+
+# 0.11.1
+
+* bug: fix tty detection with custom out (#471)
+
+# 0.11.0
+
+* performance: Use bufferpool to allocate (#370)
+* terminal: terminal detection for app-engine (#343)
+* feature: exit handler (#375)
+
+# 0.10.0
+
+* feature: Add a test hook (#180)
+* feature: `ParseLevel` is now case-insensitive (#326)
+* feature: `FieldLogger` interface that generalizes `Logger` and `Entry` (#308)
+* performance: avoid re-allocations on `WithFields` (#335)
+
+# 0.9.0
+
+* logrus/text_formatter: don't emit empty msg
+* logrus/hooks/airbrake: move out of main repository
+* logrus/hooks/sentry: move out of main repository
+* logrus/hooks/papertrail: move out of main repository
+* logrus/hooks/bugsnag: move out of main repository
+* logrus/core: run tests with `-race`
+* logrus/core: detect TTY based on `stderr`
+* logrus/core: support `WithError` on logger
+* logrus/core: Solaris support
+
+# 0.8.7
+
+* logrus/core: fix possible race (#216)
+* logrus/doc: small typo fixes and doc improvements
+
+
+# 0.8.6
+
+* hooks/raven: allow passing an initialized client
+
+# 0.8.5
+
+* logrus/core: revert #208
+
+# 0.8.4
+
+* formatter/text: fix data race (#218)
+
+# 0.8.3
+
+* logrus/core: fix entry log level (#208)
+* logrus/core: improve performance of text formatter by 40%
+* logrus/core: expose `LevelHooks` type
+* logrus/core: add support for DragonflyBSD and NetBSD
+* formatter/text: print structs more verbosely
+
+# 0.8.2
+
+* logrus: fix more Fatal family functions
+
+# 0.8.1
+
+* logrus: fix not exiting on `Fatalf` and `Fatalln`
+
+# 0.8.0
+
+* logrus: defaults to stderr instead of stdout
+* hooks/sentry: add special field for `*http.Request`
+* formatter/text: ignore Windows for colors
+
+# 0.7.3
+
+* formatter/\*: allow configuration of timestamp layout
+
+# 0.7.2
+
+* formatter/text: Add configuration option for time format (#158)
diff --git a/vendor/github.com/sirupsen/logrus/LICENSE b/vendor/github.com/sirupsen/logrus/LICENSE
new file mode 100644 (file)
index 0000000..f090cb4
--- /dev/null
@@ -0,0 +1,21 @@
+The MIT License (MIT)
+
+Copyright (c) 2014 Simon Eskildsen
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
diff --git a/vendor/github.com/sirupsen/logrus/README.md b/vendor/github.com/sirupsen/logrus/README.md
new file mode 100644 (file)
index 0000000..5f656c3
--- /dev/null
@@ -0,0 +1,507 @@
+# Logrus <img src="http://i.imgur.com/hTeVwmJ.png" width="40" height="40" alt=":walrus:" class="emoji" title=":walrus:"/>&nbsp;[![Build Status](https://travis-ci.org/sirupsen/logrus.svg?branch=master)](https://travis-ci.org/sirupsen/logrus)&nbsp;[![GoDoc](https://godoc.org/github.com/sirupsen/logrus?status.svg)](https://godoc.org/github.com/sirupsen/logrus)
+
+Logrus is a structured logger for Go (golang), completely API compatible with
+the standard library logger.
+
+**Seeing weird case-sensitive problems?** It's in the past been possible to
+import Logrus as both upper- and lower-case. Due to the Go package environment,
+this caused issues in the community and we needed a standard. Some environments
+experienced problems with the upper-case variant, so the lower-case was decided.
+Everything using `logrus` will need to use the lower-case:
+`github.com/sirupsen/logrus`. Any package that isn't, should be changed.
+
+To fix Glide, see [these
+comments](https://github.com/sirupsen/logrus/issues/553#issuecomment-306591437).
+For an in-depth explanation of the casing issue, see [this
+comment](https://github.com/sirupsen/logrus/issues/570#issuecomment-313933276).
+
+**Are you interested in assisting in maintaining Logrus?** Currently I have a
+lot of obligations, and I am unable to provide Logrus with the maintainership it
+needs. If you'd like to help, please reach out to me at `simon at author's
+username dot com`.
+
+Nicely color-coded in development (when a TTY is attached, otherwise just
+plain text):
+
+![Colored](http://i.imgur.com/PY7qMwd.png)
+
+With `log.SetFormatter(&log.JSONFormatter{})`, for easy parsing by logstash
+or Splunk:
+
+```json
+{"animal":"walrus","level":"info","msg":"A group of walrus emerges from the
+ocean","size":10,"time":"2014-03-10 19:57:38.562264131 -0400 EDT"}
+
+{"level":"warning","msg":"The group's number increased tremendously!",
+"number":122,"omg":true,"time":"2014-03-10 19:57:38.562471297 -0400 EDT"}
+
+{"animal":"walrus","level":"info","msg":"A giant walrus appears!",
+"size":10,"time":"2014-03-10 19:57:38.562500591 -0400 EDT"}
+
+{"animal":"walrus","level":"info","msg":"Tremendously sized cow enters the ocean.",
+"size":9,"time":"2014-03-10 19:57:38.562527896 -0400 EDT"}
+
+{"level":"fatal","msg":"The ice breaks!","number":100,"omg":true,
+"time":"2014-03-10 19:57:38.562543128 -0400 EDT"}
+```
+
+With the default `log.SetFormatter(&log.TextFormatter{})` when a TTY is not
+attached, the output is compatible with the
+[logfmt](http://godoc.org/github.com/kr/logfmt) format:
+
+```text
+time="2015-03-26T01:27:38-04:00" level=debug msg="Started observing beach" animal=walrus number=8
+time="2015-03-26T01:27:38-04:00" level=info msg="A group of walrus emerges from the ocean" animal=walrus size=10
+time="2015-03-26T01:27:38-04:00" level=warning msg="The group's number increased tremendously!" number=122 omg=true
+time="2015-03-26T01:27:38-04:00" level=debug msg="Temperature changes" temperature=-4
+time="2015-03-26T01:27:38-04:00" level=panic msg="It's over 9000!" animal=orca size=9009
+time="2015-03-26T01:27:38-04:00" level=fatal msg="The ice breaks!" err=&{0x2082280c0 map[animal:orca size:9009] 2015-03-26 01:27:38.441574009 -0400 EDT panic It's over 9000!} number=100 omg=true
+exit status 1
+```
+
+#### Case-sensitivity
+
+The organization's name was changed to lower-case--and this will not be changed
+back. If you are getting import conflicts due to case sensitivity, please use
+the lower-case import: `github.com/sirupsen/logrus`.
+
+#### Example
+
+The simplest way to use Logrus is simply the package-level exported logger:
+
+```go
+package main
+
+import (
+  log "github.com/sirupsen/logrus"
+)
+
+func main() {
+  log.WithFields(log.Fields{
+    "animal": "walrus",
+  }).Info("A walrus appears")
+}
+```
+
+Note that it's completely api-compatible with the stdlib logger, so you can
+replace your `log` imports everywhere with `log "github.com/sirupsen/logrus"`
+and you'll now have the flexibility of Logrus. You can customize it all you
+want:
+
+```go
+package main
+
+import (
+  "os"
+  log "github.com/sirupsen/logrus"
+)
+
+func init() {
+  // Log as JSON instead of the default ASCII formatter.
+  log.SetFormatter(&log.JSONFormatter{})
+
+  // Output to stdout instead of the default stderr
+  // Can be any io.Writer, see below for File example
+  log.SetOutput(os.Stdout)
+
+  // Only log the warning severity or above.
+  log.SetLevel(log.WarnLevel)
+}
+
+func main() {
+  log.WithFields(log.Fields{
+    "animal": "walrus",
+    "size":   10,
+  }).Info("A group of walrus emerges from the ocean")
+
+  log.WithFields(log.Fields{
+    "omg":    true,
+    "number": 122,
+  }).Warn("The group's number increased tremendously!")
+
+  log.WithFields(log.Fields{
+    "omg":    true,
+    "number": 100,
+  }).Fatal("The ice breaks!")
+
+  // A common pattern is to re-use fields between logging statements by re-using
+  // the logrus.Entry returned from WithFields()
+  contextLogger := log.WithFields(log.Fields{
+    "common": "this is a common field",
+    "other": "I also should be logged always",
+  })
+
+  contextLogger.Info("I'll be logged with common and other field")
+  contextLogger.Info("Me too")
+}
+```
+
+For more advanced usage such as logging to multiple locations from the same
+application, you can also create an instance of the `logrus` Logger:
+
+```go
+package main
+
+import (
+  "os"
+  "github.com/sirupsen/logrus"
+)
+
+// Create a new instance of the logger. You can have any number of instances.
+var log = logrus.New()
+
+func main() {
+  // The API for setting attributes is a little different than the package level
+  // exported logger. See Godoc.
+  log.Out = os.Stdout
+
+  // You could set this to any `io.Writer` such as a file
+  // file, err := os.OpenFile("logrus.log", os.O_CREATE|os.O_WRONLY, 0666)
+  // if err == nil {
+  //  log.Out = file
+  // } else {
+  //  log.Info("Failed to log to file, using default stderr")
+  // }
+
+  log.WithFields(logrus.Fields{
+    "animal": "walrus",
+    "size":   10,
+  }).Info("A group of walrus emerges from the ocean")
+}
+```
+
+#### Fields
+
+Logrus encourages careful, structured logging through logging fields instead of
+long, unparseable error messages. For example, instead of: `log.Fatalf("Failed
+to send event %s to topic %s with key %d")`, you should log the much more
+discoverable:
+
+```go
+log.WithFields(log.Fields{
+  "event": event,
+  "topic": topic,
+  "key": key,
+}).Fatal("Failed to send event")
+```
+
+We've found this API forces you to think about logging in a way that produces
+much more useful logging messages. We've been in countless situations where just
+a single added field to a log statement that was already there would've saved us
+hours. The `WithFields` call is optional.
+
+In general, with Logrus using any of the `printf`-family functions should be
+seen as a hint you should add a field, however, you can still use the
+`printf`-family functions with Logrus.
+
+#### Default Fields
+
+Often it's helpful to have fields _always_ attached to log statements in an
+application or parts of one. For example, you may want to always log the
+`request_id` and `user_ip` in the context of a request. Instead of writing
+`log.WithFields(log.Fields{"request_id": request_id, "user_ip": user_ip})` on
+every line, you can create a `logrus.Entry` to pass around instead:
+
+```go
+requestLogger := log.WithFields(log.Fields{"request_id": request_id, "user_ip": user_ip})
+requestLogger.Info("something happened on that request") # will log request_id and user_ip
+requestLogger.Warn("something not great happened")
+```
+
+#### Hooks
+
+You can add hooks for logging levels. For example to send errors to an exception
+tracking service on `Error`, `Fatal` and `Panic`, info to StatsD or log to
+multiple places simultaneously, e.g. syslog.
+
+Logrus comes with [built-in hooks](hooks/). Add those, or your custom hook, in
+`init`:
+
+```go
+import (
+  log "github.com/sirupsen/logrus"
+  "gopkg.in/gemnasium/logrus-airbrake-hook.v2" // the package is named "aibrake"
+  logrus_syslog "github.com/sirupsen/logrus/hooks/syslog"
+  "log/syslog"
+)
+
+func init() {
+
+  // Use the Airbrake hook to report errors that have Error severity or above to
+  // an exception tracker. You can create custom hooks, see the Hooks section.
+  log.AddHook(airbrake.NewHook(123, "xyz", "production"))
+
+  hook, err := logrus_syslog.NewSyslogHook("udp", "localhost:514", syslog.LOG_INFO, "")
+  if err != nil {
+    log.Error("Unable to connect to local syslog daemon")
+  } else {
+    log.AddHook(hook)
+  }
+}
+```
+Note: Syslog hook also support connecting to local syslog (Ex. "/dev/log" or "/var/run/syslog" or "/var/run/log"). For the detail, please check the [syslog hook README](hooks/syslog/README.md).
+
+| Hook  | Description |
+| ----- | ----------- |
+| [Airbrake "legacy"](https://github.com/gemnasium/logrus-airbrake-legacy-hook) | Send errors to an exception tracking service compatible with the Airbrake API V2. Uses [`airbrake-go`](https://github.com/tobi/airbrake-go) behind the scenes. |
+| [Airbrake](https://github.com/gemnasium/logrus-airbrake-hook) | Send errors to the Airbrake API V3. Uses the official [`gobrake`](https://github.com/airbrake/gobrake) behind the scenes. |
+| [Amazon Kinesis](https://github.com/evalphobia/logrus_kinesis) | Hook for logging to [Amazon Kinesis](https://aws.amazon.com/kinesis/) |
+| [Amqp-Hook](https://github.com/vladoatanasov/logrus_amqp) | Hook for logging to Amqp broker (Like RabbitMQ) |
+| [AzureTableHook](https://github.com/kpfaulkner/azuretablehook/) | Hook for logging to Azure Table Storage|
+| [Bugsnag](https://github.com/Shopify/logrus-bugsnag/blob/master/bugsnag.go) | Send errors to the Bugsnag exception tracking service. |
+| [DeferPanic](https://github.com/deferpanic/dp-logrus) | Hook for logging to DeferPanic |
+| [Discordrus](https://github.com/kz/discordrus) | Hook for logging to [Discord](https://discordapp.com/) |
+| [ElasticSearch](https://github.com/sohlich/elogrus) | Hook for logging to ElasticSearch|
+| [Firehose](https://github.com/beaubrewer/logrus_firehose) | Hook for logging to [Amazon Firehose](https://aws.amazon.com/kinesis/firehose/)
+| [Fluentd](https://github.com/evalphobia/logrus_fluent) | Hook for logging to fluentd |
+| [Go-Slack](https://github.com/multiplay/go-slack) | Hook for logging to [Slack](https://slack.com) |
+| [Graylog](https://github.com/gemnasium/logrus-graylog-hook) | Hook for logging to [Graylog](http://graylog2.org/) |
+| [Hiprus](https://github.com/nubo/hiprus) | Send errors to a channel in hipchat. |
+| [Honeybadger](https://github.com/agonzalezro/logrus_honeybadger) | Hook for sending exceptions to Honeybadger |
+| [InfluxDB](https://github.com/Abramovic/logrus_influxdb) | Hook for logging to influxdb |
+| [Influxus](http://github.com/vlad-doru/influxus) | Hook for concurrently logging to [InfluxDB](http://influxdata.com/) |
+| [Journalhook](https://github.com/wercker/journalhook) | Hook for logging to `systemd-journald` |
+| [KafkaLogrus](https://github.com/tracer0tong/kafkalogrus) | Hook for logging to Kafka |
+| [LFShook](https://github.com/rifflock/lfshook) | Hook for logging to the local filesystem |
+| [Logentries](https://github.com/jcftang/logentriesrus) | Hook for logging to [Logentries](https://logentries.com/) |
+| [Logentrus](https://github.com/puddingfactory/logentrus) | Hook for logging to [Logentries](https://logentries.com/) |
+| [Logmatic.io](https://github.com/logmatic/logmatic-go) | Hook for logging to [Logmatic.io](http://logmatic.io/) |
+| [Logrusly](https://github.com/sebest/logrusly) | Send logs to [Loggly](https://www.loggly.com/) |
+| [Logstash](https://github.com/bshuster-repo/logrus-logstash-hook) | Hook for logging to [Logstash](https://www.elastic.co/products/logstash) |
+| [Mail](https://github.com/zbindenren/logrus_mail) | Hook for sending exceptions via mail |
+| [Mattermost](https://github.com/shuLhan/mattermost-integration/tree/master/hooks/logrus) | Hook for logging to [Mattermost](https://mattermost.com/) |
+| [Mongodb](https://github.com/weekface/mgorus) | Hook for logging to mongodb |
+| [NATS-Hook](https://github.com/rybit/nats_logrus_hook) | Hook for logging to [NATS](https://nats.io) |
+| [Octokit](https://github.com/dorajistyle/logrus-octokit-hook) | Hook for logging to github via octokit |
+| [Papertrail](https://github.com/polds/logrus-papertrail-hook) | Send errors to the [Papertrail](https://papertrailapp.com) hosted logging service via UDP. |
+| [PostgreSQL](https://github.com/gemnasium/logrus-postgresql-hook) | Send logs to [PostgreSQL](http://postgresql.org) |
+| [Pushover](https://github.com/toorop/logrus_pushover) | Send error via [Pushover](https://pushover.net) |
+| [Raygun](https://github.com/squirkle/logrus-raygun-hook) | Hook for logging to [Raygun.io](http://raygun.io/) |
+| [Redis-Hook](https://github.com/rogierlommers/logrus-redis-hook) | Hook for logging to a ELK stack (through Redis) |
+| [Rollrus](https://github.com/heroku/rollrus) | Hook for sending errors to rollbar |
+| [Scribe](https://github.com/sagar8192/logrus-scribe-hook) | Hook for logging to [Scribe](https://github.com/facebookarchive/scribe)|
+| [Sentry](https://github.com/evalphobia/logrus_sentry) | Send errors to the Sentry error logging and aggregation service. |
+| [Slackrus](https://github.com/johntdyer/slackrus) | Hook for Slack chat. |
+| [Stackdriver](https://github.com/knq/sdhook) | Hook for logging to [Google Stackdriver](https://cloud.google.com/logging/) |
+| [Sumorus](https://github.com/doublefree/sumorus) | Hook for logging to [SumoLogic](https://www.sumologic.com/)|
+| [Syslog](https://github.com/sirupsen/logrus/blob/master/hooks/syslog/syslog.go) | Send errors to remote syslog server. Uses standard library `log/syslog` behind the scenes. |
+| [Syslog TLS](https://github.com/shinji62/logrus-syslog-ng) | Send errors to remote syslog server with TLS support. |
+| [Telegram](https://github.com/rossmcdonald/telegram_hook) | Hook for logging errors to [Telegram](https://telegram.org/) |
+| [TraceView](https://github.com/evalphobia/logrus_appneta) | Hook for logging to [AppNeta TraceView](https://www.appneta.com/products/traceview/) |
+| [Typetalk](https://github.com/dragon3/logrus-typetalk-hook) | Hook for logging to [Typetalk](https://www.typetalk.in/) |
+| [logz.io](https://github.com/ripcurld00d/logrus-logzio-hook) | Hook for logging to [logz.io](https://logz.io), a Log as a Service using Logstash |
+| [SQS-Hook](https://github.com/tsarpaul/logrus_sqs) | Hook for logging to [Amazon Simple Queue Service (SQS)](https://aws.amazon.com/sqs/) |
+
+#### Level logging
+
+Logrus has six logging levels: Debug, Info, Warning, Error, Fatal and Panic.
+
+```go
+log.Debug("Useful debugging information.")
+log.Info("Something noteworthy happened!")
+log.Warn("You should probably take a look at this.")
+log.Error("Something failed but I'm not quitting.")
+// Calls os.Exit(1) after logging
+log.Fatal("Bye.")
+// Calls panic() after logging
+log.Panic("I'm bailing.")
+```
+
+You can set the logging level on a `Logger`, then it will only log entries with
+that severity or anything above it:
+
+```go
+// Will log anything that is info or above (warn, error, fatal, panic). Default.
+log.SetLevel(log.InfoLevel)
+```
+
+It may be useful to set `log.Level = logrus.DebugLevel` in a debug or verbose
+environment if your application has that.
+
+#### Entries
+
+Besides the fields added with `WithField` or `WithFields` some fields are
+automatically added to all logging events:
+
+1. `time`. The timestamp when the entry was created.
+2. `msg`. The logging message passed to `{Info,Warn,Error,Fatal,Panic}` after
+   the `AddFields` call. E.g. `Failed to send event.`
+3. `level`. The logging level. E.g. `info`.
+
+#### Environments
+
+Logrus has no notion of environment.
+
+If you wish for hooks and formatters to only be used in specific environments,
+you should handle that yourself. For example, if your application has a global
+variable `Environment`, which is a string representation of the environment you
+could do:
+
+```go
+import (
+  log "github.com/sirupsen/logrus"
+)
+
+init() {
+  // do something here to set environment depending on an environment variable
+  // or command-line flag
+  if Environment == "production" {
+    log.SetFormatter(&log.JSONFormatter{})
+  } else {
+    // The TextFormatter is default, you don't actually have to do this.
+    log.SetFormatter(&log.TextFormatter{})
+  }
+}
+```
+
+This configuration is how `logrus` was intended to be used, but JSON in
+production is mostly only useful if you do log aggregation with tools like
+Splunk or Logstash.
+
+#### Formatters
+
+The built-in logging formatters are:
+
+* `logrus.TextFormatter`. Logs the event in colors if stdout is a tty, otherwise
+  without colors.
+  * *Note:* to force colored output when there is no TTY, set the `ForceColors`
+    field to `true`.  To force no colored output even if there is a TTY  set the
+    `DisableColors` field to `true`. For Windows, see
+    [github.com/mattn/go-colorable](https://github.com/mattn/go-colorable).
+  * All options are listed in the [generated docs](https://godoc.org/github.com/sirupsen/logrus#TextFormatter).
+* `logrus.JSONFormatter`. Logs fields as JSON.
+  * All options are listed in the [generated docs](https://godoc.org/github.com/sirupsen/logrus#JSONFormatter).
+
+Third party logging formatters:
+
+* [`FluentdFormatter`](https://github.com/joonix/log). Formats entries that can by parsed by Kubernetes and Google Container Engine.
+* [`logstash`](https://github.com/bshuster-repo/logrus-logstash-hook). Logs fields as [Logstash](http://logstash.net) Events.
+* [`prefixed`](https://github.com/x-cray/logrus-prefixed-formatter). Displays log entry source along with alternative layout.
+* [`zalgo`](https://github.com/aybabtme/logzalgo). Invoking the P͉̫o̳̼̊w̖͈̰͎e̬͔̭͂r͚̼̹̲ ̫͓͉̳͈ō̠͕͖̚f̝͍̠ ͕̲̞͖͑Z̖̫̤̫ͪa͉̬͈̗l͖͎g̳̥o̰̥̅!̣͔̲̻͊̄ ̙̘̦̹̦.
+
+You can define your formatter by implementing the `Formatter` interface,
+requiring a `Format` method. `Format` takes an `*Entry`. `entry.Data` is a
+`Fields` type (`map[string]interface{}`) with all your fields as well as the
+default ones (see Entries section above):
+
+```go
+type MyJSONFormatter struct {
+}
+
+log.SetFormatter(new(MyJSONFormatter))
+
+func (f *MyJSONFormatter) Format(entry *Entry) ([]byte, error) {
+  // Note this doesn't include Time, Level and Message which are available on
+  // the Entry. Consult `godoc` on information about those fields or read the
+  // source of the official loggers.
+  serialized, err := json.Marshal(entry.Data)
+    if err != nil {
+      return nil, fmt.Errorf("Failed to marshal fields to JSON, %v", err)
+    }
+  return append(serialized, '\n'), nil
+}
+```
+
+#### Logger as an `io.Writer`
+
+Logrus can be transformed into an `io.Writer`. That writer is the end of an `io.Pipe` and it is your responsibility to close it.
+
+```go
+w := logger.Writer()
+defer w.Close()
+
+srv := http.Server{
+    // create a stdlib log.Logger that writes to
+    // logrus.Logger.
+    ErrorLog: log.New(w, "", 0),
+}
+```
+
+Each line written to that writer will be printed the usual way, using formatters
+and hooks. The level for those entries is `info`.
+
+This means that we can override the standard library logger easily:
+
+```go
+logger := logrus.New()
+logger.Formatter = &logrus.JSONFormatter{}
+
+// Use logrus for standard log output
+// Note that `log` here references stdlib's log
+// Not logrus imported under the name `log`.
+log.SetOutput(logger.Writer())
+```
+
+#### Rotation
+
+Log rotation is not provided with Logrus. Log rotation should be done by an
+external program (like `logrotate(8)`) that can compress and delete old log
+entries. It should not be a feature of the application-level logger.
+
+#### Tools
+
+| Tool | Description |
+| ---- | ----------- |
+|[Logrus Mate](https://github.com/gogap/logrus_mate)|Logrus mate is a tool for Logrus to manage loggers, you can initial logger's level, hook and formatter by config file, the logger will generated with different config at different environment.|
+|[Logrus Viper Helper](https://github.com/heirko/go-contrib/tree/master/logrusHelper)|An Helper around Logrus to wrap with spf13/Viper to load configuration with fangs! And to simplify Logrus configuration use some behavior of [Logrus Mate](https://github.com/gogap/logrus_mate). [sample](https://github.com/heirko/iris-contrib/blob/master/middleware/logrus-logger/example) |
+
+#### Testing
+
+Logrus has a built in facility for asserting the presence of log messages. This is implemented through the `test` hook and provides:
+
+* decorators for existing logger (`test.NewLocal` and `test.NewGlobal`) which basically just add the `test` hook
+* a test logger (`test.NewNullLogger`) that just records log messages (and does not output any):
+
+```go
+import(
+  "github.com/sirupsen/logrus"
+  "github.com/sirupsen/logrus/hooks/test"
+  "github.com/stretchr/testify/assert"
+  "testing"
+)
+
+func TestSomething(t*testing.T){
+  logger, hook := test.NewNullLogger()
+  logger.Error("Helloerror")
+
+  assert.Equal(t, 1, len(hook.Entries))
+  assert.Equal(t, logrus.ErrorLevel, hook.LastEntry().Level)
+  assert.Equal(t, "Helloerror", hook.LastEntry().Message)
+
+  hook.Reset()
+  assert.Nil(t, hook.LastEntry())
+}
+```
+
+#### Fatal handlers
+
+Logrus can register one or more functions that will be called when any `fatal`
+level message is logged. The registered handlers will be executed before
+logrus performs a `os.Exit(1)`. This behavior may be helpful if callers need
+to gracefully shutdown. Unlike a `panic("Something went wrong...")` call which can be intercepted with a deferred `recover` a call to `os.Exit(1)` can not be intercepted.
+
+```
+...
+handler := func() {
+  // gracefully shutdown something...
+}
+logrus.RegisterExitHandler(handler)
+...
+```
+
+#### Thread safety
+
+By default Logger is protected by mutex for concurrent writes, this mutex is invoked when calling hooks and writing logs.
+If you are sure such locking is not needed, you can call logger.SetNoLock() to disable the locking.
+
+Situation when locking is not needed includes:
+
+* You have no hooks registered, or hooks calling is already thread-safe.
+
+* Writing to logger.Out is already thread-safe, for example:
+
+  1) logger.Out is protected by locks.
+
+  2) logger.Out is a os.File handler opened with `O_APPEND` flag, and every write is smaller than 4k. (This allow multi-thread/multi-process writing)
+
+     (Refer to http://www.notthewizard.com/2014/06/17/are-files-appends-really-atomic/)
diff --git a/vendor/github.com/sirupsen/logrus/alt_exit.go b/vendor/github.com/sirupsen/logrus/alt_exit.go
new file mode 100644 (file)
index 0000000..8af9063
--- /dev/null
@@ -0,0 +1,64 @@
+package logrus
+
+// The following code was sourced and modified from the
+// https://github.com/tebeka/atexit package governed by the following license:
+//
+// Copyright (c) 2012 Miki Tebeka <miki.tebeka@gmail.com>.
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy of
+// this software and associated documentation files (the "Software"), to deal in
+// the Software without restriction, including without limitation the rights to
+// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
+// the Software, and to permit persons to whom the Software is furnished to do so,
+// subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in all
+// copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+// FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
+// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+import (
+       "fmt"
+       "os"
+)
+
+var handlers = []func(){}
+
+func runHandler(handler func()) {
+       defer func() {
+               if err := recover(); err != nil {
+                       fmt.Fprintln(os.Stderr, "Error: Logrus exit handler error:", err)
+               }
+       }()
+
+       handler()
+}
+
+func runHandlers() {
+       for _, handler := range handlers {
+               runHandler(handler)
+       }
+}
+
+// Exit runs all the Logrus atexit handlers and then terminates the program using os.Exit(code)
+func Exit(code int) {
+       runHandlers()
+       os.Exit(code)
+}
+
+// RegisterExitHandler adds a Logrus Exit handler, call logrus.Exit to invoke
+// all handlers. The handlers will also be invoked when any Fatal log entry is
+// made.
+//
+// This method is useful when a caller wishes to use logrus to log a fatal
+// message but also needs to gracefully shutdown. An example usecase could be
+// closing database connections, or sending a alert that the application is
+// closing.
+func RegisterExitHandler(handler func()) {
+       handlers = append(handlers, handler)
+}
diff --git a/vendor/github.com/sirupsen/logrus/appveyor.yml b/vendor/github.com/sirupsen/logrus/appveyor.yml
new file mode 100644 (file)
index 0000000..96c2ce1
--- /dev/null
@@ -0,0 +1,14 @@
+version: "{build}"\r
+platform: x64\r
+clone_folder: c:\gopath\src\github.com\sirupsen\logrus\r
+environment:  \r
+  GOPATH: c:\gopath\r
+branches:  \r
+  only:\r
+    - master\r
+install:  \r
+  - set PATH=%GOPATH%\bin;c:\go\bin;%PATH%\r
+  - go version\r
+build_script:  \r
+  - go get -t\r
+  - go test\r
diff --git a/vendor/github.com/sirupsen/logrus/doc.go b/vendor/github.com/sirupsen/logrus/doc.go
new file mode 100644 (file)
index 0000000..da67aba
--- /dev/null
@@ -0,0 +1,26 @@
+/*
+Package logrus is a structured logger for Go, completely API compatible with the standard library logger.
+
+
+The simplest way to use Logrus is simply the package-level exported logger:
+
+  package main
+
+  import (
+    log "github.com/sirupsen/logrus"
+  )
+
+  func main() {
+    log.WithFields(log.Fields{
+      "animal": "walrus",
+      "number": 1,
+      "size":   10,
+    }).Info("A walrus appears")
+  }
+
+Output:
+  time="2015-09-07T08:48:33Z" level=info msg="A walrus appears" animal=walrus number=1 size=10
+
+For a full guide visit https://github.com/sirupsen/logrus
+*/
+package logrus
diff --git a/vendor/github.com/sirupsen/logrus/entry.go b/vendor/github.com/sirupsen/logrus/entry.go
new file mode 100644 (file)
index 0000000..1fad45e
--- /dev/null
@@ -0,0 +1,279 @@
+package logrus
+
+import (
+       "bytes"
+       "fmt"
+       "os"
+       "sync"
+       "time"
+)
+
+var bufferPool *sync.Pool
+
+func init() {
+       bufferPool = &sync.Pool{
+               New: func() interface{} {
+                       return new(bytes.Buffer)
+               },
+       }
+}
+
+// Defines the key when adding errors using WithError.
+var ErrorKey = "error"
+
+// An entry is the final or intermediate Logrus logging entry. It contains all
+// the fields passed with WithField{,s}. It's finally logged when Debug, Info,
+// Warn, Error, Fatal or Panic is called on it. These objects can be reused and
+// passed around as much as you wish to avoid field duplication.
+type Entry struct {
+       Logger *Logger
+
+       // Contains all the fields set by the user.
+       Data Fields
+
+       // Time at which the log entry was created
+       Time time.Time
+
+       // Level the log entry was logged at: Debug, Info, Warn, Error, Fatal or Panic
+       // This field will be set on entry firing and the value will be equal to the one in Logger struct field.
+       Level Level
+
+       // Message passed to Debug, Info, Warn, Error, Fatal or Panic
+       Message string
+
+       // When formatter is called in entry.log(), an Buffer may be set to entry
+       Buffer *bytes.Buffer
+}
+
+func NewEntry(logger *Logger) *Entry {
+       return &Entry{
+               Logger: logger,
+               // Default is three fields, give a little extra room
+               Data: make(Fields, 5),
+       }
+}
+
+// Returns the string representation from the reader and ultimately the
+// formatter.
+func (entry *Entry) String() (string, error) {
+       serialized, err := entry.Logger.Formatter.Format(entry)
+       if err != nil {
+               return "", err
+       }
+       str := string(serialized)
+       return str, nil
+}
+
+// Add an error as single field (using the key defined in ErrorKey) to the Entry.
+func (entry *Entry) WithError(err error) *Entry {
+       return entry.WithField(ErrorKey, err)
+}
+
+// Add a single field to the Entry.
+func (entry *Entry) WithField(key string, value interface{}) *Entry {
+       return entry.WithFields(Fields{key: value})
+}
+
+// Add a map of fields to the Entry.
+func (entry *Entry) WithFields(fields Fields) *Entry {
+       data := make(Fields, len(entry.Data)+len(fields))
+       for k, v := range entry.Data {
+               data[k] = v
+       }
+       for k, v := range fields {
+               data[k] = v
+       }
+       return &Entry{Logger: entry.Logger, Data: data}
+}
+
+// This function is not declared with a pointer value because otherwise
+// race conditions will occur when using multiple goroutines
+func (entry Entry) log(level Level, msg string) {
+       var buffer *bytes.Buffer
+       entry.Time = time.Now()
+       entry.Level = level
+       entry.Message = msg
+
+       entry.Logger.mu.Lock()
+       err := entry.Logger.Hooks.Fire(level, &entry)
+       entry.Logger.mu.Unlock()
+       if err != nil {
+               entry.Logger.mu.Lock()
+               fmt.Fprintf(os.Stderr, "Failed to fire hook: %v\n", err)
+               entry.Logger.mu.Unlock()
+       }
+       buffer = bufferPool.Get().(*bytes.Buffer)
+       buffer.Reset()
+       defer bufferPool.Put(buffer)
+       entry.Buffer = buffer
+       serialized, err := entry.Logger.Formatter.Format(&entry)
+       entry.Buffer = nil
+       if err != nil {
+               entry.Logger.mu.Lock()
+               fmt.Fprintf(os.Stderr, "Failed to obtain reader, %v\n", err)
+               entry.Logger.mu.Unlock()
+       } else {
+               entry.Logger.mu.Lock()
+               _, err = entry.Logger.Out.Write(serialized)
+               if err != nil {
+                       fmt.Fprintf(os.Stderr, "Failed to write to log, %v\n", err)
+               }
+               entry.Logger.mu.Unlock()
+       }
+
+       // To avoid Entry#log() returning a value that only would make sense for
+       // panic() to use in Entry#Panic(), we avoid the allocation by checking
+       // directly here.
+       if level <= PanicLevel {
+               panic(&entry)
+       }
+}
+
+func (entry *Entry) Debug(args ...interface{}) {
+       if entry.Logger.level() >= DebugLevel {
+               entry.log(DebugLevel, fmt.Sprint(args...))
+       }
+}
+
+func (entry *Entry) Print(args ...interface{}) {
+       entry.Info(args...)
+}
+
+func (entry *Entry) Info(args ...interface{}) {
+       if entry.Logger.level() >= InfoLevel {
+               entry.log(InfoLevel, fmt.Sprint(args...))
+       }
+}
+
+func (entry *Entry) Warn(args ...interface{}) {
+       if entry.Logger.level() >= WarnLevel {
+               entry.log(WarnLevel, fmt.Sprint(args...))
+       }
+}
+
+func (entry *Entry) Warning(args ...interface{}) {
+       entry.Warn(args...)
+}
+
+func (entry *Entry) Error(args ...interface{}) {
+       if entry.Logger.level() >= ErrorLevel {
+               entry.log(ErrorLevel, fmt.Sprint(args...))
+       }
+}
+
+func (entry *Entry) Fatal(args ...interface{}) {
+       if entry.Logger.level() >= FatalLevel {
+               entry.log(FatalLevel, fmt.Sprint(args...))
+       }
+       Exit(1)
+}
+
+func (entry *Entry) Panic(args ...interface{}) {
+       if entry.Logger.level() >= PanicLevel {
+               entry.log(PanicLevel, fmt.Sprint(args...))
+       }
+       panic(fmt.Sprint(args...))
+}
+
+// Entry Printf family functions
+
+func (entry *Entry) Debugf(format string, args ...interface{}) {
+       if entry.Logger.level() >= DebugLevel {
+               entry.Debug(fmt.Sprintf(format, args...))
+       }
+}
+
+func (entry *Entry) Infof(format string, args ...interface{}) {
+       if entry.Logger.level() >= InfoLevel {
+               entry.Info(fmt.Sprintf(format, args...))
+       }
+}
+
+func (entry *Entry) Printf(format string, args ...interface{}) {
+       entry.Infof(format, args...)
+}
+
+func (entry *Entry) Warnf(format string, args ...interface{}) {
+       if entry.Logger.level() >= WarnLevel {
+               entry.Warn(fmt.Sprintf(format, args...))
+       }
+}
+
+func (entry *Entry) Warningf(format string, args ...interface{}) {
+       entry.Warnf(format, args...)
+}
+
+func (entry *Entry) Errorf(format string, args ...interface{}) {
+       if entry.Logger.level() >= ErrorLevel {
+               entry.Error(fmt.Sprintf(format, args...))
+       }
+}
+
+func (entry *Entry) Fatalf(format string, args ...interface{}) {
+       if entry.Logger.level() >= FatalLevel {
+               entry.Fatal(fmt.Sprintf(format, args...))
+       }
+       Exit(1)
+}
+
+func (entry *Entry) Panicf(format string, args ...interface{}) {
+       if entry.Logger.level() >= PanicLevel {
+               entry.Panic(fmt.Sprintf(format, args...))
+       }
+}
+
+// Entry Println family functions
+
+func (entry *Entry) Debugln(args ...interface{}) {
+       if entry.Logger.level() >= DebugLevel {
+               entry.Debug(entry.sprintlnn(args...))
+       }
+}
+
+func (entry *Entry) Infoln(args ...interface{}) {
+       if entry.Logger.level() >= InfoLevel {
+               entry.Info(entry.sprintlnn(args...))
+       }
+}
+
+func (entry *Entry) Println(args ...interface{}) {
+       entry.Infoln(args...)
+}
+
+func (entry *Entry) Warnln(args ...interface{}) {
+       if entry.Logger.level() >= WarnLevel {
+               entry.Warn(entry.sprintlnn(args...))
+       }
+}
+
+func (entry *Entry) Warningln(args ...interface{}) {
+       entry.Warnln(args...)
+}
+
+func (entry *Entry) Errorln(args ...interface{}) {
+       if entry.Logger.level() >= ErrorLevel {
+               entry.Error(entry.sprintlnn(args...))
+       }
+}
+
+func (entry *Entry) Fatalln(args ...interface{}) {
+       if entry.Logger.level() >= FatalLevel {
+               entry.Fatal(entry.sprintlnn(args...))
+       }
+       Exit(1)
+}
+
+func (entry *Entry) Panicln(args ...interface{}) {
+       if entry.Logger.level() >= PanicLevel {
+               entry.Panic(entry.sprintlnn(args...))
+       }
+}
+
+// Sprintlnn => Sprint no newline. This is to get the behavior of how
+// fmt.Sprintln where spaces are always added between operands, regardless of
+// their type. Instead of vendoring the Sprintln implementation to spare a
+// string allocation, we do the simplest thing.
+func (entry *Entry) sprintlnn(args ...interface{}) string {
+       msg := fmt.Sprintln(args...)
+       return msg[:len(msg)-1]
+}
diff --git a/vendor/github.com/sirupsen/logrus/exported.go b/vendor/github.com/sirupsen/logrus/exported.go
new file mode 100644 (file)
index 0000000..013183e
--- /dev/null
@@ -0,0 +1,193 @@
+package logrus
+
+import (
+       "io"
+)
+
+var (
+       // std is the name of the standard logger in stdlib `log`
+       std = New()
+)
+
+func StandardLogger() *Logger {
+       return std
+}
+
+// SetOutput sets the standard logger output.
+func SetOutput(out io.Writer) {
+       std.mu.Lock()
+       defer std.mu.Unlock()
+       std.Out = out
+}
+
+// SetFormatter sets the standard logger formatter.
+func SetFormatter(formatter Formatter) {
+       std.mu.Lock()
+       defer std.mu.Unlock()
+       std.Formatter = formatter
+}
+
+// SetLevel sets the standard logger level.
+func SetLevel(level Level) {
+       std.mu.Lock()
+       defer std.mu.Unlock()
+       std.SetLevel(level)
+}
+
+// GetLevel returns the standard logger level.
+func GetLevel() Level {
+       std.mu.Lock()
+       defer std.mu.Unlock()
+       return std.level()
+}
+
+// AddHook adds a hook to the standard logger hooks.
+func AddHook(hook Hook) {
+       std.mu.Lock()
+       defer std.mu.Unlock()
+       std.Hooks.Add(hook)
+}
+
+// WithError creates an entry from the standard logger and adds an error to it, using the value defined in ErrorKey as key.
+func WithError(err error) *Entry {
+       return std.WithField(ErrorKey, err)
+}
+
+// WithField creates an entry from the standard logger and adds a field to
+// it. If you want multiple fields, use `WithFields`.
+//
+// Note that it doesn't log until you call Debug, Print, Info, Warn, Fatal
+// or Panic on the Entry it returns.
+func WithField(key string, value interface{}) *Entry {
+       return std.WithField(key, value)
+}
+
+// WithFields creates an entry from the standard logger and adds multiple
+// fields to it. This is simply a helper for `WithField`, invoking it
+// once for each field.
+//
+// Note that it doesn't log until you call Debug, Print, Info, Warn, Fatal
+// or Panic on the Entry it returns.
+func WithFields(fields Fields) *Entry {
+       return std.WithFields(fields)
+}
+
+// Debug logs a message at level Debug on the standard logger.
+func Debug(args ...interface{}) {
+       std.Debug(args...)
+}
+
+// Print logs a message at level Info on the standard logger.
+func Print(args ...interface{}) {
+       std.Print(args...)
+}
+
+// Info logs a message at level Info on the standard logger.
+func Info(args ...interface{}) {
+       std.Info(args...)
+}
+
+// Warn logs a message at level Warn on the standard logger.
+func Warn(args ...interface{}) {
+       std.Warn(args...)
+}
+
+// Warning logs a message at level Warn on the standard logger.
+func Warning(args ...interface{}) {
+       std.Warning(args...)
+}
+
+// Error logs a message at level Error on the standard logger.
+func Error(args ...interface{}) {
+       std.Error(args...)
+}
+
+// Panic logs a message at level Panic on the standard logger.
+func Panic(args ...interface{}) {
+       std.Panic(args...)
+}
+
+// Fatal logs a message at level Fatal on the standard logger.
+func Fatal(args ...interface{}) {
+       std.Fatal(args...)
+}
+
+// Debugf logs a message at level Debug on the standard logger.
+func Debugf(format string, args ...interface{}) {
+       std.Debugf(format, args...)
+}
+
+// Printf logs a message at level Info on the standard logger.
+func Printf(format string, args ...interface{}) {
+       std.Printf(format, args...)
+}
+
+// Infof logs a message at level Info on the standard logger.
+func Infof(format string, args ...interface{}) {
+       std.Infof(format, args...)
+}
+
+// Warnf logs a message at level Warn on the standard logger.
+func Warnf(format string, args ...interface{}) {
+       std.Warnf(format, args...)
+}
+
+// Warningf logs a message at level Warn on the standard logger.
+func Warningf(format string, args ...interface{}) {
+       std.Warningf(format, args...)
+}
+
+// Errorf logs a message at level Error on the standard logger.
+func Errorf(format string, args ...interface{}) {
+       std.Errorf(format, args...)
+}
+
+// Panicf logs a message at level Panic on the standard logger.
+func Panicf(format string, args ...interface{}) {
+       std.Panicf(format, args...)
+}
+
+// Fatalf logs a message at level Fatal on the standard logger.
+func Fatalf(format string, args ...interface{}) {
+       std.Fatalf(format, args...)
+}
+
+// Debugln logs a message at level Debug on the standard logger.
+func Debugln(args ...interface{}) {
+       std.Debugln(args...)
+}
+
+// Println logs a message at level Info on the standard logger.
+func Println(args ...interface{}) {
+       std.Println(args...)
+}
+
+// Infoln logs a message at level Info on the standard logger.
+func Infoln(args ...interface{}) {
+       std.Infoln(args...)
+}
+
+// Warnln logs a message at level Warn on the standard logger.
+func Warnln(args ...interface{}) {
+       std.Warnln(args...)
+}
+
+// Warningln logs a message at level Warn on the standard logger.
+func Warningln(args ...interface{}) {
+       std.Warningln(args...)
+}
+
+// Errorln logs a message at level Error on the standard logger.
+func Errorln(args ...interface{}) {
+       std.Errorln(args...)
+}
+
+// Panicln logs a message at level Panic on the standard logger.
+func Panicln(args ...interface{}) {
+       std.Panicln(args...)
+}
+
+// Fatalln logs a message at level Fatal on the standard logger.
+func Fatalln(args ...interface{}) {
+       std.Fatalln(args...)
+}
diff --git a/vendor/github.com/sirupsen/logrus/formatter.go b/vendor/github.com/sirupsen/logrus/formatter.go
new file mode 100644 (file)
index 0000000..b183ff5
--- /dev/null
@@ -0,0 +1,45 @@
+package logrus
+
+import "time"
+
+const defaultTimestampFormat = time.RFC3339
+
+// The Formatter interface is used to implement a custom Formatter. It takes an
+// `Entry`. It exposes all the fields, including the default ones:
+//
+// * `entry.Data["msg"]`. The message passed from Info, Warn, Error ..
+// * `entry.Data["time"]`. The timestamp.
+// * `entry.Data["level"]. The level the entry was logged at.
+//
+// Any additional fields added with `WithField` or `WithFields` are also in
+// `entry.Data`. Format is expected to return an array of bytes which are then
+// logged to `logger.Out`.
+type Formatter interface {
+       Format(*Entry) ([]byte, error)
+}
+
+// This is to not silently overwrite `time`, `msg` and `level` fields when
+// dumping it. If this code wasn't there doing:
+//
+//  logrus.WithField("level", 1).Info("hello")
+//
+// Would just silently drop the user provided level. Instead with this code
+// it'll logged as:
+//
+//  {"level": "info", "fields.level": 1, "msg": "hello", "time": "..."}
+//
+// It's not exported because it's still using Data in an opinionated way. It's to
+// avoid code duplication between the two default formatters.
+func prefixFieldClashes(data Fields) {
+       if t, ok := data["time"]; ok {
+               data["fields.time"] = t
+       }
+
+       if m, ok := data["msg"]; ok {
+               data["fields.msg"] = m
+       }
+
+       if l, ok := data["level"]; ok {
+               data["fields.level"] = l
+       }
+}
diff --git a/vendor/github.com/sirupsen/logrus/hooks.go b/vendor/github.com/sirupsen/logrus/hooks.go
new file mode 100644 (file)
index 0000000..3f151cd
--- /dev/null
@@ -0,0 +1,34 @@
+package logrus
+
+// A hook to be fired when logging on the logging levels returned from
+// `Levels()` on your implementation of the interface. Note that this is not
+// fired in a goroutine or a channel with workers, you should handle such
+// functionality yourself if your call is non-blocking and you don't wish for
+// the logging calls for levels returned from `Levels()` to block.
+type Hook interface {
+       Levels() []Level
+       Fire(*Entry) error
+}
+
+// Internal type for storing the hooks on a logger instance.
+type LevelHooks map[Level][]Hook
+
+// Add a hook to an instance of logger. This is called with
+// `log.Hooks.Add(new(MyHook))` where `MyHook` implements the `Hook` interface.
+func (hooks LevelHooks) Add(hook Hook) {
+       for _, level := range hook.Levels() {
+               hooks[level] = append(hooks[level], hook)
+       }
+}
+
+// Fire all the hooks for the passed level. Used by `entry.log` to fire
+// appropriate hooks for a log entry.
+func (hooks LevelHooks) Fire(level Level, entry *Entry) error {
+       for _, hook := range hooks[level] {
+               if err := hook.Fire(entry); err != nil {
+                       return err
+               }
+       }
+
+       return nil
+}
diff --git a/vendor/github.com/sirupsen/logrus/json_formatter.go b/vendor/github.com/sirupsen/logrus/json_formatter.go
new file mode 100644 (file)
index 0000000..fb01c1b
--- /dev/null
@@ -0,0 +1,79 @@
+package logrus
+
+import (
+       "encoding/json"
+       "fmt"
+)
+
+type fieldKey string
+
+// FieldMap allows customization of the key names for default fields.
+type FieldMap map[fieldKey]string
+
+// Default key names for the default fields
+const (
+       FieldKeyMsg   = "msg"
+       FieldKeyLevel = "level"
+       FieldKeyTime  = "time"
+)
+
+func (f FieldMap) resolve(key fieldKey) string {
+       if k, ok := f[key]; ok {
+               return k
+       }
+
+       return string(key)
+}
+
+// JSONFormatter formats logs into parsable json
+type JSONFormatter struct {
+       // TimestampFormat sets the format used for marshaling timestamps.
+       TimestampFormat string
+
+       // DisableTimestamp allows disabling automatic timestamps in output
+       DisableTimestamp bool
+
+       // FieldMap allows users to customize the names of keys for default fields.
+       // As an example:
+       // formatter := &JSONFormatter{
+       //      FieldMap: FieldMap{
+       //               FieldKeyTime: "@timestamp",
+       //               FieldKeyLevel: "@level",
+       //               FieldKeyMsg: "@message",
+       //    },
+       // }
+       FieldMap FieldMap
+}
+
+// Format renders a single log entry
+func (f *JSONFormatter) Format(entry *Entry) ([]byte, error) {
+       data := make(Fields, len(entry.Data)+3)
+       for k, v := range entry.Data {
+               switch v := v.(type) {
+               case error:
+                       // Otherwise errors are ignored by `encoding/json`
+                       // https://github.com/sirupsen/logrus/issues/137
+                       data[k] = v.Error()
+               default:
+                       data[k] = v
+               }
+       }
+       prefixFieldClashes(data)
+
+       timestampFormat := f.TimestampFormat
+       if timestampFormat == "" {
+               timestampFormat = defaultTimestampFormat
+       }
+
+       if !f.DisableTimestamp {
+               data[f.FieldMap.resolve(FieldKeyTime)] = entry.Time.Format(timestampFormat)
+       }
+       data[f.FieldMap.resolve(FieldKeyMsg)] = entry.Message
+       data[f.FieldMap.resolve(FieldKeyLevel)] = entry.Level.String()
+
+       serialized, err := json.Marshal(data)
+       if err != nil {
+               return nil, fmt.Errorf("Failed to marshal fields to JSON, %v", err)
+       }
+       return append(serialized, '\n'), nil
+}
diff --git a/vendor/github.com/sirupsen/logrus/logger.go b/vendor/github.com/sirupsen/logrus/logger.go
new file mode 100644 (file)
index 0000000..fdaf8a6
--- /dev/null
@@ -0,0 +1,323 @@
+package logrus
+
+import (
+       "io"
+       "os"
+       "sync"
+       "sync/atomic"
+)
+
+type Logger struct {
+       // The logs are `io.Copy`'d to this in a mutex. It's common to set this to a
+       // file, or leave it default which is `os.Stderr`. You can also set this to
+       // something more adventorous, such as logging to Kafka.
+       Out io.Writer
+       // Hooks for the logger instance. These allow firing events based on logging
+       // levels and log entries. For example, to send errors to an error tracking
+       // service, log to StatsD or dump the core on fatal errors.
+       Hooks LevelHooks
+       // All log entries pass through the formatter before logged to Out. The
+       // included formatters are `TextFormatter` and `JSONFormatter` for which
+       // TextFormatter is the default. In development (when a TTY is attached) it
+       // logs with colors, but to a file it wouldn't. You can easily implement your
+       // own that implements the `Formatter` interface, see the `README` or included
+       // formatters for examples.
+       Formatter Formatter
+       // The logging level the logger should log at. This is typically (and defaults
+       // to) `logrus.Info`, which allows Info(), Warn(), Error() and Fatal() to be
+       // logged.
+       Level Level
+       // Used to sync writing to the log. Locking is enabled by Default
+       mu MutexWrap
+       // Reusable empty entry
+       entryPool sync.Pool
+}
+
+type MutexWrap struct {
+       lock     sync.Mutex
+       disabled bool
+}
+
+func (mw *MutexWrap) Lock() {
+       if !mw.disabled {
+               mw.lock.Lock()
+       }
+}
+
+func (mw *MutexWrap) Unlock() {
+       if !mw.disabled {
+               mw.lock.Unlock()
+       }
+}
+
+func (mw *MutexWrap) Disable() {
+       mw.disabled = true
+}
+
+// Creates a new logger. Configuration should be set by changing `Formatter`,
+// `Out` and `Hooks` directly on the default logger instance. You can also just
+// instantiate your own:
+//
+//    var log = &Logger{
+//      Out: os.Stderr,
+//      Formatter: new(JSONFormatter),
+//      Hooks: make(LevelHooks),
+//      Level: logrus.DebugLevel,
+//    }
+//
+// It's recommended to make this a global instance called `log`.
+func New() *Logger {
+       return &Logger{
+               Out:       os.Stderr,
+               Formatter: new(TextFormatter),
+               Hooks:     make(LevelHooks),
+               Level:     InfoLevel,
+       }
+}
+
+func (logger *Logger) newEntry() *Entry {
+       entry, ok := logger.entryPool.Get().(*Entry)
+       if ok {
+               return entry
+       }
+       return NewEntry(logger)
+}
+
+func (logger *Logger) releaseEntry(entry *Entry) {
+       logger.entryPool.Put(entry)
+}
+
+// Adds a field to the log entry, note that it doesn't log until you call
+// Debug, Print, Info, Warn, Fatal or Panic. It only creates a log entry.
+// If you want multiple fields, use `WithFields`.
+func (logger *Logger) WithField(key string, value interface{}) *Entry {
+       entry := logger.newEntry()
+       defer logger.releaseEntry(entry)
+       return entry.WithField(key, value)
+}
+
+// Adds a struct of fields to the log entry. All it does is call `WithField` for
+// each `Field`.
+func (logger *Logger) WithFields(fields Fields) *Entry {
+       entry := logger.newEntry()
+       defer logger.releaseEntry(entry)
+       return entry.WithFields(fields)
+}
+
+// Add an error as single field to the log entry.  All it does is call
+// `WithError` for the given `error`.
+func (logger *Logger) WithError(err error) *Entry {
+       entry := logger.newEntry()
+       defer logger.releaseEntry(entry)
+       return entry.WithError(err)
+}
+
+func (logger *Logger) Debugf(format string, args ...interface{}) {
+       if logger.level() >= DebugLevel {
+               entry := logger.newEntry()
+               entry.Debugf(format, args...)
+               logger.releaseEntry(entry)
+       }
+}
+
+func (logger *Logger) Infof(format string, args ...interface{}) {
+       if logger.level() >= InfoLevel {
+               entry := logger.newEntry()
+               entry.Infof(format, args...)
+               logger.releaseEntry(entry)
+       }
+}
+
+func (logger *Logger) Printf(format string, args ...interface{}) {
+       entry := logger.newEntry()
+       entry.Printf(format, args...)
+       logger.releaseEntry(entry)
+}
+
+func (logger *Logger) Warnf(format string, args ...interface{}) {
+       if logger.level() >= WarnLevel {
+               entry := logger.newEntry()
+               entry.Warnf(format, args...)
+               logger.releaseEntry(entry)
+       }
+}
+
+func (logger *Logger) Warningf(format string, args ...interface{}) {
+       if logger.level() >= WarnLevel {
+               entry := logger.newEntry()
+               entry.Warnf(format, args...)
+               logger.releaseEntry(entry)
+       }
+}
+
+func (logger *Logger) Errorf(format string, args ...interface{}) {
+       if logger.level() >= ErrorLevel {
+               entry := logger.newEntry()
+               entry.Errorf(format, args...)
+               logger.releaseEntry(entry)
+       }
+}
+
+func (logger *Logger) Fatalf(format string, args ...interface{}) {
+       if logger.level() >= FatalLevel {
+               entry := logger.newEntry()
+               entry.Fatalf(format, args...)
+               logger.releaseEntry(entry)
+       }
+       Exit(1)
+}
+
+func (logger *Logger) Panicf(format string, args ...interface{}) {
+       if logger.level() >= PanicLevel {
+               entry := logger.newEntry()
+               entry.Panicf(format, args...)
+               logger.releaseEntry(entry)
+       }
+}
+
+func (logger *Logger) Debug(args ...interface{}) {
+       if logger.level() >= DebugLevel {
+               entry := logger.newEntry()
+               entry.Debug(args...)
+               logger.releaseEntry(entry)
+       }
+}
+
+func (logger *Logger) Info(args ...interface{}) {
+       if logger.level() >= InfoLevel {
+               entry := logger.newEntry()
+               entry.Info(args...)
+               logger.releaseEntry(entry)
+       }
+}
+
+func (logger *Logger) Print(args ...interface{}) {
+       entry := logger.newEntry()
+       entry.Info(args...)
+       logger.releaseEntry(entry)
+}
+
+func (logger *Logger) Warn(args ...interface{}) {
+       if logger.level() >= WarnLevel {
+               entry := logger.newEntry()
+               entry.Warn(args...)
+               logger.releaseEntry(entry)
+       }
+}
+
+func (logger *Logger) Warning(args ...interface{}) {
+       if logger.level() >= WarnLevel {
+               entry := logger.newEntry()
+               entry.Warn(args...)
+               logger.releaseEntry(entry)
+       }
+}
+
+func (logger *Logger) Error(args ...interface{}) {
+       if logger.level() >= ErrorLevel {
+               entry := logger.newEntry()
+               entry.Error(args...)
+               logger.releaseEntry(entry)
+       }
+}
+
+func (logger *Logger) Fatal(args ...interface{}) {
+       if logger.level() >= FatalLevel {
+               entry := logger.newEntry()
+               entry.Fatal(args...)
+               logger.releaseEntry(entry)
+       }
+       Exit(1)
+}
+
+func (logger *Logger) Panic(args ...interface{}) {
+       if logger.level() >= PanicLevel {
+               entry := logger.newEntry()
+               entry.Panic(args...)
+               logger.releaseEntry(entry)
+       }
+}
+
+func (logger *Logger) Debugln(args ...interface{}) {
+       if logger.level() >= DebugLevel {
+               entry := logger.newEntry()
+               entry.Debugln(args...)
+               logger.releaseEntry(entry)
+       }
+}
+
+func (logger *Logger) Infoln(args ...interface{}) {
+       if logger.level() >= InfoLevel {
+               entry := logger.newEntry()
+               entry.Infoln(args...)
+               logger.releaseEntry(entry)
+       }
+}
+
+func (logger *Logger) Println(args ...interface{}) {
+       entry := logger.newEntry()
+       entry.Println(args...)
+       logger.releaseEntry(entry)
+}
+
+func (logger *Logger) Warnln(args ...interface{}) {
+       if logger.level() >= WarnLevel {
+               entry := logger.newEntry()
+               entry.Warnln(args...)
+               logger.releaseEntry(entry)
+       }
+}
+
+func (logger *Logger) Warningln(args ...interface{}) {
+       if logger.level() >= WarnLevel {
+               entry := logger.newEntry()
+               entry.Warnln(args...)
+               logger.releaseEntry(entry)
+       }
+}
+
+func (logger *Logger) Errorln(args ...interface{}) {
+       if logger.level() >= ErrorLevel {
+               entry := logger.newEntry()
+               entry.Errorln(args...)
+               logger.releaseEntry(entry)
+       }
+}
+
+func (logger *Logger) Fatalln(args ...interface{}) {
+       if logger.level() >= FatalLevel {
+               entry := logger.newEntry()
+               entry.Fatalln(args...)
+               logger.releaseEntry(entry)
+       }
+       Exit(1)
+}
+
+func (logger *Logger) Panicln(args ...interface{}) {
+       if logger.level() >= PanicLevel {
+               entry := logger.newEntry()
+               entry.Panicln(args...)
+               logger.releaseEntry(entry)
+       }
+}
+
+//When file is opened with appending mode, it's safe to
+//write concurrently to a file (within 4k message on Linux).
+//In these cases user can choose to disable the lock.
+func (logger *Logger) SetNoLock() {
+       logger.mu.Disable()
+}
+
+func (logger *Logger) level() Level {
+       return Level(atomic.LoadUint32((*uint32)(&logger.Level)))
+}
+
+func (logger *Logger) SetLevel(level Level) {
+       atomic.StoreUint32((*uint32)(&logger.Level), uint32(level))
+}
+
+func (logger *Logger) AddHook(hook Hook) {
+       logger.mu.Lock()
+       defer logger.mu.Unlock()
+       logger.Hooks.Add(hook)
+}
diff --git a/vendor/github.com/sirupsen/logrus/logrus.go b/vendor/github.com/sirupsen/logrus/logrus.go
new file mode 100644 (file)
index 0000000..dd38999
--- /dev/null
@@ -0,0 +1,143 @@
+package logrus
+
+import (
+       "fmt"
+       "log"
+       "strings"
+)
+
+// Fields type, used to pass to `WithFields`.
+type Fields map[string]interface{}
+
+// Level type
+type Level uint32
+
+// Convert the Level to a string. E.g. PanicLevel becomes "panic".
+func (level Level) String() string {
+       switch level {
+       case DebugLevel:
+               return "debug"
+       case InfoLevel:
+               return "info"
+       case WarnLevel:
+               return "warning"
+       case ErrorLevel:
+               return "error"
+       case FatalLevel:
+               return "fatal"
+       case PanicLevel:
+               return "panic"
+       }
+
+       return "unknown"
+}
+
+// ParseLevel takes a string level and returns the Logrus log level constant.
+func ParseLevel(lvl string) (Level, error) {
+       switch strings.ToLower(lvl) {
+       case "panic":
+               return PanicLevel, nil
+       case "fatal":
+               return FatalLevel, nil
+       case "error":
+               return ErrorLevel, nil
+       case "warn", "warning":
+               return WarnLevel, nil
+       case "info":
+               return InfoLevel, nil
+       case "debug":
+               return DebugLevel, nil
+       }
+
+       var l Level
+       return l, fmt.Errorf("not a valid logrus Level: %q", lvl)
+}
+
+// A constant exposing all logging levels
+var AllLevels = []Level{
+       PanicLevel,
+       FatalLevel,
+       ErrorLevel,
+       WarnLevel,
+       InfoLevel,
+       DebugLevel,
+}
+
+// These are the different logging levels. You can set the logging level to log
+// on your instance of logger, obtained with `logrus.New()`.
+const (
+       // PanicLevel level, highest level of severity. Logs and then calls panic with the
+       // message passed to Debug, Info, ...
+       PanicLevel Level = iota
+       // FatalLevel level. Logs and then calls `os.Exit(1)`. It will exit even if the
+       // logging level is set to Panic.
+       FatalLevel
+       // ErrorLevel level. Logs. Used for errors that should definitely be noted.
+       // Commonly used for hooks to send errors to an error tracking service.
+       ErrorLevel
+       // WarnLevel level. Non-critical entries that deserve eyes.
+       WarnLevel
+       // InfoLevel level. General operational entries about what's going on inside the
+       // application.
+       InfoLevel
+       // DebugLevel level. Usually only enabled when debugging. Very verbose logging.
+       DebugLevel
+)
+
+// Won't compile if StdLogger can't be realized by a log.Logger
+var (
+       _ StdLogger = &log.Logger{}
+       _ StdLogger = &Entry{}
+       _ StdLogger = &Logger{}
+)
+
+// StdLogger is what your logrus-enabled library should take, that way
+// it'll accept a stdlib logger and a logrus logger. There's no standard
+// interface, this is the closest we get, unfortunately.
+type StdLogger interface {
+       Print(...interface{})
+       Printf(string, ...interface{})
+       Println(...interface{})
+
+       Fatal(...interface{})
+       Fatalf(string, ...interface{})
+       Fatalln(...interface{})
+
+       Panic(...interface{})
+       Panicf(string, ...interface{})
+       Panicln(...interface{})
+}
+
+// The FieldLogger interface generalizes the Entry and Logger types
+type FieldLogger interface {
+       WithField(key string, value interface{}) *Entry
+       WithFields(fields Fields) *Entry
+       WithError(err error) *Entry
+
+       Debugf(format string, args ...interface{})
+       Infof(format string, args ...interface{})
+       Printf(format string, args ...interface{})
+       Warnf(format string, args ...interface{})
+       Warningf(format string, args ...interface{})
+       Errorf(format string, args ...interface{})
+       Fatalf(format string, args ...interface{})
+       Panicf(format string, args ...interface{})
+
+       Debug(args ...interface{})
+       Info(args ...interface{})
+       Print(args ...interface{})
+       Warn(args ...interface{})
+       Warning(args ...interface{})
+       Error(args ...interface{})
+       Fatal(args ...interface{})
+       Panic(args ...interface{})
+
+       Debugln(args ...interface{})
+       Infoln(args ...interface{})
+       Println(args ...interface{})
+       Warnln(args ...interface{})
+       Warningln(args ...interface{})
+       Errorln(args ...interface{})
+       Fatalln(args ...interface{})
+       Panicln(args ...interface{})
+}
diff --git a/vendor/github.com/sirupsen/logrus/terminal_bsd.go b/vendor/github.com/sirupsen/logrus/terminal_bsd.go
new file mode 100644 (file)
index 0000000..d7b3893
--- /dev/null
@@ -0,0 +1,10 @@
+// +build darwin freebsd openbsd netbsd dragonfly
+// +build !appengine
+
+package logrus
+
+import "golang.org/x/sys/unix"
+
+const ioctlReadTermios = unix.TIOCGETA
+
+type Termios unix.Termios
diff --git a/vendor/github.com/sirupsen/logrus/terminal_linux.go b/vendor/github.com/sirupsen/logrus/terminal_linux.go
new file mode 100644 (file)
index 0000000..88d7298
--- /dev/null
@@ -0,0 +1,14 @@
+// Based on ssh/terminal:
+// 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 !appengine
+
+package logrus
+
+import "golang.org/x/sys/unix"
+
+const ioctlReadTermios = unix.TCGETS
+
+type Termios unix.Termios
diff --git a/vendor/github.com/sirupsen/logrus/text_formatter.go b/vendor/github.com/sirupsen/logrus/text_formatter.go
new file mode 100644 (file)
index 0000000..be412aa
--- /dev/null
@@ -0,0 +1,191 @@
+package logrus
+
+import (
+       "bytes"
+       "fmt"
+       "io"
+       "os"
+       "sort"
+       "strings"
+       "sync"
+       "time"
+
+       "golang.org/x/crypto/ssh/terminal"
+)
+
+const (
+       nocolor = 0
+       red     = 31
+       green   = 32
+       yellow  = 33
+       blue    = 36
+       gray    = 37
+)
+
+var (
+       baseTimestamp time.Time
+)
+
+func init() {
+       baseTimestamp = time.Now()
+}
+
+// TextFormatter formats logs into text
+type TextFormatter struct {
+       // Set to true to bypass checking for a TTY before outputting colors.
+       ForceColors bool
+
+       // Force disabling colors.
+       DisableColors bool
+
+       // Disable timestamp logging. useful when output is redirected to logging
+       // system that already adds timestamps.
+       DisableTimestamp bool
+
+       // Enable logging the full timestamp when a TTY is attached instead of just
+       // the time passed since beginning of execution.
+       FullTimestamp bool
+
+       // TimestampFormat to use for display when a full timestamp is printed
+       TimestampFormat string
+
+       // The fields are sorted by default for a consistent output. For applications
+       // that log extremely frequently and don't use the JSON formatter this may not
+       // be desired.
+       DisableSorting bool
+
+       // QuoteEmptyFields will wrap empty fields in quotes if true
+       QuoteEmptyFields bool
+
+       // Whether the logger's out is to a terminal
+       isTerminal bool
+
+       sync.Once
+}
+
+func (f *TextFormatter) init(entry *Entry) {
+       if entry.Logger != nil {
+               f.isTerminal = f.checkIfTerminal(entry.Logger.Out)
+       }
+}
+
+func (f *TextFormatter) checkIfTerminal(w io.Writer) bool {
+       switch v := w.(type) {
+       case *os.File:
+               return terminal.IsTerminal(int(v.Fd()))
+       default:
+               return false
+       }
+}
+
+// Format renders a single log entry
+func (f *TextFormatter) Format(entry *Entry) ([]byte, error) {
+       var b *bytes.Buffer
+       keys := make([]string, 0, len(entry.Data))
+       for k := range entry.Data {
+               keys = append(keys, k)
+       }
+
+       if !f.DisableSorting {
+               sort.Strings(keys)
+       }
+       if entry.Buffer != nil {
+               b = entry.Buffer
+       } else {
+               b = &bytes.Buffer{}
+       }
+
+       prefixFieldClashes(entry.Data)
+
+       f.Do(func() { f.init(entry) })
+
+       isColored := (f.ForceColors || f.isTerminal) && !f.DisableColors
+
+       timestampFormat := f.TimestampFormat
+       if timestampFormat == "" {
+               timestampFormat = defaultTimestampFormat
+       }
+       if isColored {
+               f.printColored(b, entry, keys, timestampFormat)
+       } else {
+               if !f.DisableTimestamp {
+                       f.appendKeyValue(b, "time", entry.Time.Format(timestampFormat))
+               }
+               f.appendKeyValue(b, "level", entry.Level.String())
+               if entry.Message != "" {
+                       f.appendKeyValue(b, "msg", entry.Message)
+               }
+               for _, key := range keys {
+                       f.appendKeyValue(b, key, entry.Data[key])
+               }
+       }
+
+       b.WriteByte('\n')
+       return b.Bytes(), nil
+}
+
+func (f *TextFormatter) printColored(b *bytes.Buffer, entry *Entry, keys []string, timestampFormat string) {
+       var levelColor int
+       switch entry.Level {
+       case DebugLevel:
+               levelColor = gray
+       case WarnLevel:
+               levelColor = yellow
+       case ErrorLevel, FatalLevel, PanicLevel:
+               levelColor = red
+       default:
+               levelColor = blue
+       }
+
+       levelText := strings.ToUpper(entry.Level.String())[0:4]
+
+       if f.DisableTimestamp {
+               fmt.Fprintf(b, "\x1b[%dm%s\x1b[0m %-44s ", levelColor, levelText, entry.Message)
+       } else if !f.FullTimestamp {
+               fmt.Fprintf(b, "\x1b[%dm%s\x1b[0m[%04d] %-44s ", levelColor, levelText, int(entry.Time.Sub(baseTimestamp)/time.Second), entry.Message)
+       } else {
+               fmt.Fprintf(b, "\x1b[%dm%s\x1b[0m[%s] %-44s ", levelColor, levelText, entry.Time.Format(timestampFormat), entry.Message)
+       }
+       for _, k := range keys {
+               v := entry.Data[k]
+               fmt.Fprintf(b, " \x1b[%dm%s\x1b[0m=", levelColor, k)
+               f.appendValue(b, v)
+       }
+}
+
+func (f *TextFormatter) needsQuoting(text string) bool {
+       if f.QuoteEmptyFields && len(text) == 0 {
+               return true
+       }
+       for _, ch := range text {
+               if !((ch >= 'a' && ch <= 'z') ||
+                       (ch >= 'A' && ch <= 'Z') ||
+                       (ch >= '0' && ch <= '9') ||
+                       ch == '-' || ch == '.' || ch == '_' || ch == '/' || ch == '@' || ch == '^' || ch == '+') {
+                       return true
+               }
+       }
+       return false
+}
+
+func (f *TextFormatter) appendKeyValue(b *bytes.Buffer, key string, value interface{}) {
+       if b.Len() > 0 {
+               b.WriteByte(' ')
+       }
+       b.WriteString(key)
+       b.WriteByte('=')
+       f.appendValue(b, value)
+}
+
+func (f *TextFormatter) appendValue(b *bytes.Buffer, value interface{}) {
+       stringVal, ok := value.(string)
+       if !ok {
+               stringVal = fmt.Sprint(value)
+       }
+
+       if !f.needsQuoting(stringVal) {
+               b.WriteString(stringVal)
+       } else {
+               b.WriteString(fmt.Sprintf("%q", stringVal))
+       }
+}
diff --git a/vendor/github.com/sirupsen/logrus/writer.go b/vendor/github.com/sirupsen/logrus/writer.go
new file mode 100644 (file)
index 0000000..7bdebed
--- /dev/null
@@ -0,0 +1,62 @@
+package logrus
+
+import (
+       "bufio"
+       "io"
+       "runtime"
+)
+
+func (logger *Logger) Writer() *io.PipeWriter {
+       return logger.WriterLevel(InfoLevel)
+}
+
+func (logger *Logger) WriterLevel(level Level) *io.PipeWriter {
+       return NewEntry(logger).WriterLevel(level)
+}
+
+func (entry *Entry) Writer() *io.PipeWriter {
+       return entry.WriterLevel(InfoLevel)
+}
+
+func (entry *Entry) WriterLevel(level Level) *io.PipeWriter {
+       reader, writer := io.Pipe()
+
+       var printFunc func(args ...interface{})
+
+       switch level {
+       case DebugLevel:
+               printFunc = entry.Debug
+       case InfoLevel:
+               printFunc = entry.Info
+       case WarnLevel:
+               printFunc = entry.Warn
+       case ErrorLevel:
+               printFunc = entry.Error
+       case FatalLevel:
+               printFunc = entry.Fatal
+       case PanicLevel:
+               printFunc = entry.Panic
+       default:
+               printFunc = entry.Print
+       }
+
+       go entry.writerScanner(reader, printFunc)
+       runtime.SetFinalizer(writer, writerFinalizer)
+
+       return writer
+}
+
+func (entry *Entry) writerScanner(reader *io.PipeReader, printFunc func(args ...interface{})) {
+       scanner := bufio.NewScanner(reader)
+       for scanner.Scan() {
+               printFunc(scanner.Text())
+       }
+       if err := scanner.Err(); err != nil {
+               entry.Errorf("Error while reading from Writer: %s", err)
+       }
+       reader.Close()
+}
+
+func writerFinalizer(writer *io.PipeWriter) {
+       writer.Close()
+}
diff --git a/vendor/github.com/spf13/cobra/LICENSE.txt b/vendor/github.com/spf13/cobra/LICENSE.txt
new file mode 100644 (file)
index 0000000..298f0e2
--- /dev/null
@@ -0,0 +1,174 @@
+                                Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
diff --git a/vendor/github.com/spf13/cobra/README.md b/vendor/github.com/spf13/cobra/README.md
new file mode 100644 (file)
index 0000000..ce96133
--- /dev/null
@@ -0,0 +1,733 @@
+![cobra logo](https://cloud.githubusercontent.com/assets/173412/10886352/ad566232-814f-11e5-9cd0-aa101788c117.png)
+
+Cobra is both a library for creating powerful modern CLI applications as well as a program to generate applications and command files.
+
+Many of the most widely used Go projects are built using Cobra including:
+
+* [Kubernetes](http://kubernetes.io/)
+* [Hugo](http://gohugo.io)
+* [rkt](https://github.com/coreos/rkt)
+* [etcd](https://github.com/coreos/etcd)
+* [Moby (former Docker)](https://github.com/moby/moby)
+* [Docker (distribution)](https://github.com/docker/distribution)
+* [OpenShift](https://www.openshift.com/)
+* [Delve](https://github.com/derekparker/delve)
+* [GopherJS](http://www.gopherjs.org/)
+* [CockroachDB](http://www.cockroachlabs.com/)
+* [Bleve](http://www.blevesearch.com/)
+* [ProjectAtomic (enterprise)](http://www.projectatomic.io/)
+* [Giant Swarm's gsctl](https://github.com/giantswarm/gsctl)
+* [Nanobox](https://github.com/nanobox-io/nanobox)/[Nanopack](https://github.com/nanopack)
+* [rclone](http://rclone.org/)
+* [nehm](https://github.com/bogem/nehm)
+* [Pouch](https://github.com/alibaba/pouch)
+
+[![Build Status](https://travis-ci.org/spf13/cobra.svg "Travis CI status")](https://travis-ci.org/spf13/cobra)
+[![CircleCI status](https://circleci.com/gh/spf13/cobra.png?circle-token=:circle-token "CircleCI status")](https://circleci.com/gh/spf13/cobra)
+[![GoDoc](https://godoc.org/github.com/spf13/cobra?status.svg)](https://godoc.org/github.com/spf13/cobra)
+
+# Table of Contents
+
+- [Overview](#overview)
+- [Concepts](#concepts)
+  * [Commands](#commands)
+  * [Flags](#flags)
+- [Installing](#installing)
+- [Getting Started](#getting-started)
+  * [Using the Cobra Generator](#using-the-cobra-generator)
+  * [Using the Cobra Library](#using-the-cobra-library)
+  * [Working with Flags](#working-with-flags)
+  * [Positional and Custom Arguments](#positional-and-custom-arguments)
+  * [Example](#example)
+  * [Help Command](#help-command)
+  * [Usage Message](#usage-message)
+  * [PreRun and PostRun Hooks](#prerun-and-postrun-hooks)
+  * [Suggestions when "unknown command" happens](#suggestions-when-unknown-command-happens)
+  * [Generating documentation for your command](#generating-documentation-for-your-command)
+  * [Generating bash completions](#generating-bash-completions)
+- [Contributing](#contributing)
+- [License](#license)
+
+# Overview
+
+Cobra is a library providing a simple interface to create powerful modern CLI
+interfaces similar to git & go tools.
+
+Cobra is also an application that will generate your application scaffolding to rapidly
+develop a Cobra-based application.
+
+Cobra provides:
+* Easy subcommand-based CLIs: `app server`, `app fetch`, etc.
+* Fully POSIX-compliant flags (including short & long versions)
+* Nested subcommands
+* Global, local and cascading flags
+* Easy generation of applications & commands with `cobra init appname` & `cobra add cmdname`
+* Intelligent suggestions (`app srver`... did you mean `app server`?)
+* Automatic help generation for commands and flags
+* Automatic help flag recognition of `-h`, `--help`, etc.
+* Automatically generated bash autocomplete for your application
+* Automatically generated man pages for your application
+* Command aliases so you can change things without breaking them
+* The flexibility to define your own help, usage, etc.
+* Optional tight integration with [viper](http://github.com/spf13/viper) for 12-factor apps
+
+# Concepts
+
+Cobra is built on a structure of commands, arguments & flags.
+
+**Commands** represent actions, **Args** are things and **Flags** are modifiers for those actions.
+
+The best applications will read like sentences when used. Users will know how
+to use the application because they will natively understand how to use it.
+
+The pattern to follow is
+`APPNAME VERB NOUN --ADJECTIVE.`
+    or
+`APPNAME COMMAND ARG --FLAG`
+
+A few good real world examples may better illustrate this point.
+
+In the following example, 'server' is a command, and 'port' is a flag:
+
+    hugo server --port=1313
+
+In this command we are telling Git to clone the url bare.
+
+    git clone URL --bare
+
+## Commands
+
+Command is the central point of the application. Each interaction that
+the application supports will be contained in a Command. A command can
+have children commands and optionally run an action.
+
+In the example above, 'server' is the command.
+
+[More about cobra.Command](https://godoc.org/github.com/spf13/cobra#Command)
+
+## Flags
+
+A flag is a way to modify the behavior of a command. Cobra supports
+fully POSIX-compliant flags as well as the Go [flag package](https://golang.org/pkg/flag/).
+A Cobra command can define flags that persist through to children commands
+and flags that are only available to that command.
+
+In the example above, 'port' is the flag.
+
+Flag functionality is provided by the [pflag
+library](https://github.com/spf13/pflag), a fork of the flag standard library
+which maintains the same interface while adding POSIX compliance.
+
+# Installing
+Using Cobra is easy. First, use `go get` to install the latest version
+of the library. This command will install the `cobra` generator executable
+along with the library and its dependencies:
+
+    go get -u github.com/spf13/cobra/cobra
+
+Next, include Cobra in your application:
+
+```go
+import "github.com/spf13/cobra"
+```
+
+# Getting Started
+
+While you are welcome to provide your own organization, typically a Cobra-based
+application will follow the following organizational structure:
+
+```
+  ▾ appName/
+    ▾ cmd/
+        add.go
+        your.go
+        commands.go
+        here.go
+      main.go
+```
+
+In a Cobra app, typically the main.go file is very bare. It serves one purpose: initializing Cobra.
+
+```go
+package main
+
+import (
+  "{pathToYourApp}/cmd"
+)
+
+func main() {
+  cmd.Execute()
+}
+```
+
+## Using the Cobra Generator
+
+Cobra provides its own program that will create your application and add any
+commands you want. It's the easiest way to incorporate Cobra into your application.
+
+[Here](https://github.com/spf13/cobra/blob/master/cobra/README.md) you can find more information about it.
+
+## Using the Cobra Library
+
+To manually implement Cobra you need to create a bare main.go file and a rootCmd file.
+You will optionally provide additional commands as you see fit.
+
+### Create rootCmd
+
+Cobra doesn't require any special constructors. Simply create your commands.
+
+Ideally you place this in app/cmd/root.go:
+
+```go
+var rootCmd = &cobra.Command{
+  Use:   "hugo",
+  Short: "Hugo is a very fast static site generator",
+  Long: `A Fast and Flexible Static Site Generator built with
+                love by spf13 and friends in Go.
+                Complete documentation is available at http://hugo.spf13.com`,
+  Run: func(cmd *cobra.Command, args []string) {
+    // Do Stuff Here
+  },
+}
+
+func Execute() {
+  if err := rootCmd.Execute(); err != nil {
+    fmt.Println(err)
+    os.Exit(1)
+  }
+}
+```
+
+You will additionally define flags and handle configuration in your init() function.
+
+For example cmd/root.go:
+
+```go
+import (
+  "fmt"
+  "os"
+
+  homedir "github.com/mitchellh/go-homedir"
+  "github.com/spf13/cobra"
+  "github.com/spf13/viper"
+)
+
+func init() {
+  cobra.OnInitialize(initConfig)
+  rootCmd.PersistentFlags().StringVar(&cfgFile, "config", "", "config file (default is $HOME/.cobra.yaml)")
+  rootCmd.PersistentFlags().StringVarP(&projectBase, "projectbase", "b", "", "base project directory eg. github.com/spf13/")
+  rootCmd.PersistentFlags().StringP("author", "a", "YOUR NAME", "Author name for copyright attribution")
+  rootCmd.PersistentFlags().StringVarP(&userLicense, "license", "l", "", "Name of license for the project (can provide `licensetext` in config)")
+  rootCmd.PersistentFlags().Bool("viper", true, "Use Viper for configuration")
+  viper.BindPFlag("author", rootCmd.PersistentFlags().Lookup("author"))
+  viper.BindPFlag("projectbase", rootCmd.PersistentFlags().Lookup("projectbase"))
+  viper.BindPFlag("useViper", rootCmd.PersistentFlags().Lookup("viper"))
+  viper.SetDefault("author", "NAME HERE <EMAIL ADDRESS>")
+  viper.SetDefault("license", "apache")
+}
+
+func initConfig() {
+  // Don't forget to read config either from cfgFile or from home directory!
+  if cfgFile != "" {
+    // Use config file from the flag.
+    viper.SetConfigFile(cfgFile)
+  } else {
+    // Find home directory.
+    home, err := homedir.Dir()
+    if err != nil {
+      fmt.Println(err)
+      os.Exit(1)
+    }
+
+    // Search config in home directory with name ".cobra" (without extension).
+    viper.AddConfigPath(home)
+    viper.SetConfigName(".cobra")
+  }
+
+  if err := viper.ReadInConfig(); err != nil {
+    fmt.Println("Can't read config:", err)
+    os.Exit(1)
+  }
+}
+```
+
+### Create your main.go
+
+With the root command you need to have your main function execute it.
+Execute should be run on the root for clarity, though it can be called on any command.
+
+In a Cobra app, typically the main.go file is very bare. It serves, one purpose, to initialize Cobra.
+
+```go
+package main
+
+import (
+  "fmt"
+  "os"
+
+  "{pathToYourApp}/cmd"
+)
+
+func main() {
+  cmd.Execute()
+}
+```
+
+### Create additional commands
+
+Additional commands can be defined and typically are each given their own file
+inside of the cmd/ directory.
+
+If you wanted to create a version command you would create cmd/version.go and
+populate it with the following:
+
+```go
+package cmd
+
+import (
+  "fmt"
+
+  "github.com/spf13/cobra"
+)
+
+func init() {
+  rootCmd.AddCommand(versionCmd)
+}
+
+var versionCmd = &cobra.Command{
+  Use:   "version",
+  Short: "Print the version number of Hugo",
+  Long:  `All software has versions. This is Hugo's`,
+  Run: func(cmd *cobra.Command, args []string) {
+    fmt.Println("Hugo Static Site Generator v0.9 -- HEAD")
+  },
+}
+```
+
+## Working with Flags
+
+Flags provide modifiers to control how the action command operates.
+
+### Assign flags to a command
+
+Since the flags are defined and used in different locations, we need to
+define a variable outside with the correct scope to assign the flag to
+work with.
+
+```go
+var Verbose bool
+var Source string
+```
+
+There are two different approaches to assign a flag.
+
+### Persistent Flags
+
+A flag can be 'persistent' meaning that this flag will be available to the
+command it's assigned to as well as every command under that command. For
+global flags, assign a flag as a persistent flag on the root.
+
+```go
+rootCmd.PersistentFlags().BoolVarP(&Verbose, "verbose", "v", false, "verbose output")
+```
+
+### Local Flags
+
+A flag can also be assigned locally which will only apply to that specific command.
+
+```go
+rootCmd.Flags().StringVarP(&Source, "source", "s", "", "Source directory to read from")
+```
+
+### Local Flag on Parent Commands
+
+By default Cobra only parses local flags on the target command, any local flags on
+parent commands are ignored. By enabling `Command.TraverseChildren` Cobra will
+parse local flags on each command before executing the target command.
+
+```go
+command := cobra.Command{
+  Use: "print [OPTIONS] [COMMANDS]",
+  TraverseChildren: true,
+}
+```
+
+### Bind Flags with Config
+
+You can also bind your flags with [viper](https://github.com/spf13/viper):
+```go
+var author string
+
+func init() {
+  rootCmd.PersistentFlags().StringVar(&author, "author", "YOUR NAME", "Author name for copyright attribution")
+  viper.BindPFlag("author", rootCmd.PersistentFlags().Lookup("author"))
+}
+```
+
+In this example the persistent flag `author` is bound with `viper`.
+**Note**, that the variable `author` will not be set to the value from config,
+when the `--author` flag is not provided by user.
+
+More in [viper documentation](https://github.com/spf13/viper#working-with-flags).
+
+### Required flags
+
+Flags are optional by default. If instead you wish your command to report an error
+when a flag has not been set, mark it as required:
+```go
+rootCmd.Flags().StringVarP(&Region, "region", "r", "", "AWS region (required)")
+rootCmd.MarkFlagRequired("region")
+```
+
+## Positional and Custom Arguments
+
+Validation of positional arguments can be specified using the `Args` field
+of `Command`.
+
+The following validators are built in:
+
+- `NoArgs` - the command will report an error if there are any positional args.
+- `ArbitraryArgs` - the command will accept any args.
+- `OnlyValidArgs` - the command will report an error if there are any positional args that are not in the `ValidArgs` field of `Command`.
+- `MinimumNArgs(int)` - the command will report an error if there are not at least N positional args.
+- `MaximumNArgs(int)` - the command will report an error if there are more than N positional args.
+- `ExactArgs(int)` - the command will report an error if there are not exactly N positional args.
+- `RangeArgs(min, max)` - the command will report an error if the number of args is not between the minimum and maximum number of expected args.
+
+An example of setting the custom validator:
+
+```go
+var cmd = &cobra.Command{
+  Short: "hello",
+  Args: func(cmd *cobra.Command, args []string) error {
+    if len(args) < 1 {
+      return errors.New("requires at least one arg")
+    }
+    if myapp.IsValidColor(args[0]) {
+      return nil
+    }
+    return fmt.Errorf("invalid color specified: %s", args[0])
+  },
+  Run: func(cmd *cobra.Command, args []string) {
+    fmt.Println("Hello, World!")
+  },
+}
+```
+
+## Example
+
+In the example below, we have defined three commands. Two are at the top level
+and one (cmdTimes) is a child of one of the top commands. In this case the root
+is not executable meaning that a subcommand is required. This is accomplished
+by not providing a 'Run' for the 'rootCmd'.
+
+We have only defined one flag for a single command.
+
+More documentation about flags is available at https://github.com/spf13/pflag
+
+```go
+package main
+
+import (
+  "fmt"
+  "strings"
+
+  "github.com/spf13/cobra"
+)
+
+func main() {
+  var echoTimes int
+
+  var cmdPrint = &cobra.Command{
+    Use:   "print [string to print]",
+    Short: "Print anything to the screen",
+    Long: `print is for printing anything back to the screen.
+For many years people have printed back to the screen.`,
+    Args: cobra.MinimumNArgs(1),
+    Run: func(cmd *cobra.Command, args []string) {
+      fmt.Println("Print: " + strings.Join(args, " "))
+    },
+  }
+
+  var cmdEcho = &cobra.Command{
+    Use:   "echo [string to echo]",
+    Short: "Echo anything to the screen",
+    Long: `echo is for echoing anything back.
+Echo works a lot like print, except it has a child command.`,
+    Args: cobra.MinimumNArgs(1),
+    Run: func(cmd *cobra.Command, args []string) {
+      fmt.Println("Print: " + strings.Join(args, " "))
+    },
+  }
+
+  var cmdTimes = &cobra.Command{
+    Use:   "times [# times] [string to echo]",
+    Short: "Echo anything to the screen more times",
+    Long: `echo things multiple times back to the user by providing
+a count and a string.`,
+    Args: cobra.MinimumNArgs(1),
+    Run: func(cmd *cobra.Command, args []string) {
+      for i := 0; i < echoTimes; i++ {
+        fmt.Println("Echo: " + strings.Join(args, " "))
+      }
+    },
+  }
+
+  cmdTimes.Flags().IntVarP(&echoTimes, "times", "t", 1, "times to echo the input")
+
+  var rootCmd = &cobra.Command{Use: "app"}
+  rootCmd.AddCommand(cmdPrint, cmdEcho)
+  cmdEcho.AddCommand(cmdTimes)
+  rootCmd.Execute()
+}
+```
+
+For a more complete example of a larger application, please checkout [Hugo](http://gohugo.io/).
+
+## Help Command
+
+Cobra automatically adds a help command to your application when you have subcommands.
+This will be called when a user runs 'app help'. Additionally, help will also
+support all other commands as input. Say, for instance, you have a command called
+'create' without any additional configuration; Cobra will work when 'app help
+create' is called.  Every command will automatically have the '--help' flag added.
+
+### Example
+
+The following output is automatically generated by Cobra. Nothing beyond the
+command and flag definitions are needed.
+
+    $ cobra help
+
+    Cobra is a CLI library for Go that empowers applications.
+    This application is a tool to generate the needed files
+    to quickly create a Cobra application.
+
+    Usage:
+      cobra [command]
+
+    Available Commands:
+      add         Add a command to a Cobra Application
+      help        Help about any command
+      init        Initialize a Cobra Application
+
+    Flags:
+      -a, --author string    author name for copyright attribution (default "YOUR NAME")
+          --config string    config file (default is $HOME/.cobra.yaml)
+      -h, --help             help for cobra
+      -l, --license string   name of license for the project
+          --viper            use Viper for configuration (default true)
+
+    Use "cobra [command] --help" for more information about a command.
+
+
+Help is just a command like any other. There is no special logic or behavior
+around it. In fact, you can provide your own if you want.
+
+### Defining your own help
+
+You can provide your own Help command or your own template for the default command to use
+with following functions:
+
+```go
+cmd.SetHelpCommand(cmd *Command)
+cmd.SetHelpFunc(f func(*Command, []string))
+cmd.SetHelpTemplate(s string)
+```
+
+The latter two will also apply to any children commands.
+
+## Usage Message
+
+When the user provides an invalid flag or invalid command, Cobra responds by
+showing the user the 'usage'.
+
+### Example
+You may recognize this from the help above. That's because the default help
+embeds the usage as part of its output.
+
+    $ cobra --invalid
+    Error: unknown flag: --invalid
+    Usage:
+      cobra [command]
+
+    Available Commands:
+      add         Add a command to a Cobra Application
+      help        Help about any command
+      init        Initialize a Cobra Application
+
+    Flags:
+      -a, --author string    author name for copyright attribution (default "YOUR NAME")
+          --config string    config file (default is $HOME/.cobra.yaml)
+      -h, --help             help for cobra
+      -l, --license string   name of license for the project
+          --viper            use Viper for configuration (default true)
+
+    Use "cobra [command] --help" for more information about a command.
+
+### Defining your own usage
+You can provide your own usage function or template for Cobra to use.
+Like help, the function and template are overridable through public methods:
+
+```go
+cmd.SetUsageFunc(f func(*Command) error)
+cmd.SetUsageTemplate(s string)
+```
+
+## Version Flag
+
+Cobra adds a top-level '--version' flag if the Version field is set on the root command.
+Running an application with the '--version' flag will print the version to stdout using
+the version template. The template can be customized using the
+`cmd.SetVersionTemplate(s string)` function.
+
+## PreRun and PostRun Hooks
+
+It is possible to run functions before or after the main `Run` function of your command. The `PersistentPreRun` and `PreRun` functions will be executed before `Run`. `PersistentPostRun` and `PostRun` will be executed after `Run`.  The `Persistent*Run` functions will be inherited by children if they do not declare their own.  These functions are run in the following order:
+
+- `PersistentPreRun`
+- `PreRun`
+- `Run`
+- `PostRun`
+- `PersistentPostRun`
+
+An example of two commands which use all of these features is below.  When the subcommand is executed, it will run the root command's `PersistentPreRun` but not the root command's `PersistentPostRun`:
+
+```go
+package main
+
+import (
+  "fmt"
+
+  "github.com/spf13/cobra"
+)
+
+func main() {
+
+  var rootCmd = &cobra.Command{
+    Use:   "root [sub]",
+    Short: "My root command",
+    PersistentPreRun: func(cmd *cobra.Command, args []string) {
+      fmt.Printf("Inside rootCmd PersistentPreRun with args: %v\n", args)
+    },
+    PreRun: func(cmd *cobra.Command, args []string) {
+      fmt.Printf("Inside rootCmd PreRun with args: %v\n", args)
+    },
+    Run: func(cmd *cobra.Command, args []string) {
+      fmt.Printf("Inside rootCmd Run with args: %v\n", args)
+    },
+    PostRun: func(cmd *cobra.Command, args []string) {
+      fmt.Printf("Inside rootCmd PostRun with args: %v\n", args)
+    },
+    PersistentPostRun: func(cmd *cobra.Command, args []string) {
+      fmt.Printf("Inside rootCmd PersistentPostRun with args: %v\n", args)
+    },
+  }
+
+  var subCmd = &cobra.Command{
+    Use:   "sub [no options!]",
+    Short: "My subcommand",
+    PreRun: func(cmd *cobra.Command, args []string) {
+      fmt.Printf("Inside subCmd PreRun with args: %v\n", args)
+    },
+    Run: func(cmd *cobra.Command, args []string) {
+      fmt.Printf("Inside subCmd Run with args: %v\n", args)
+    },
+    PostRun: func(cmd *cobra.Command, args []string) {
+      fmt.Printf("Inside subCmd PostRun with args: %v\n", args)
+    },
+    PersistentPostRun: func(cmd *cobra.Command, args []string) {
+      fmt.Printf("Inside subCmd PersistentPostRun with args: %v\n", args)
+    },
+  }
+
+  rootCmd.AddCommand(subCmd)
+
+  rootCmd.SetArgs([]string{""})
+  rootCmd.Execute()
+  fmt.Println()
+  rootCmd.SetArgs([]string{"sub", "arg1", "arg2"})
+  rootCmd.Execute()
+}
+```
+
+Output:
+```
+Inside rootCmd PersistentPreRun with args: []
+Inside rootCmd PreRun with args: []
+Inside rootCmd Run with args: []
+Inside rootCmd PostRun with args: []
+Inside rootCmd PersistentPostRun with args: []
+
+Inside rootCmd PersistentPreRun with args: [arg1 arg2]
+Inside subCmd PreRun with args: [arg1 arg2]
+Inside subCmd Run with args: [arg1 arg2]
+Inside subCmd PostRun with args: [arg1 arg2]
+Inside subCmd PersistentPostRun with args: [arg1 arg2]
+```
+
+## Suggestions when "unknown command" happens
+
+Cobra will print automatic suggestions when "unknown command" errors happen. This allows Cobra to behave similarly to the `git` command when a typo happens. For example:
+
+```
+$ hugo srever
+Error: unknown command "srever" for "hugo"
+
+Did you mean this?
+        server
+
+Run 'hugo --help' for usage.
+```
+
+Suggestions are automatic based on every subcommand registered and use an implementation of [Levenshtein distance](http://en.wikipedia.org/wiki/Levenshtein_distance). Every registered command that matches a minimum distance of 2 (ignoring case) will be displayed as a suggestion.
+
+If you need to disable suggestions or tweak the string distance in your command, use:
+
+```go
+command.DisableSuggestions = true
+```
+
+or
+
+```go
+command.SuggestionsMinimumDistance = 1
+```
+
+You can also explicitly set names for which a given command will be suggested using the `SuggestFor` attribute. This allows suggestions for strings that are not close in terms of string distance, but makes sense in your set of commands and for some which you don't want aliases. Example:
+
+```
+$ kubectl remove
+Error: unknown command "remove" for "kubectl"
+
+Did you mean this?
+        delete
+
+Run 'kubectl help' for usage.
+```
+
+## Generating documentation for your command
+
+Cobra can generate documentation based on subcommands, flags, etc. in the following formats:
+
+- [Markdown](doc/md_docs.md)
+- [ReStructured Text](doc/rest_docs.md)
+- [Man Page](doc/man_docs.md)
+
+## Generating bash completions
+
+Cobra can generate a bash-completion file. If you add more information to your command, these completions can be amazingly powerful and flexible.  Read more about it in [Bash Completions](bash_completions.md).
+
+# Contributing
+
+1. Fork it
+2. Download your fork to your PC (`git clone https://github.com/your_username/cobra && cd cobra`)
+3. Create your feature branch (`git checkout -b my-new-feature`)
+4. Make changes and add them (`git add .`)
+5. Commit your changes (`git commit -m 'Add some feature'`)
+6. Push to the branch (`git push origin my-new-feature`)
+7. Create new pull request
+
+# License
+
+Cobra is released under the Apache 2.0 license. See [LICENSE.txt](https://github.com/spf13/cobra/blob/master/LICENSE.txt)
diff --git a/vendor/github.com/spf13/cobra/args.go b/vendor/github.com/spf13/cobra/args.go
new file mode 100644 (file)
index 0000000..a5d8a92
--- /dev/null
@@ -0,0 +1,89 @@
+package cobra
+
+import (
+       "fmt"
+)
+
+type PositionalArgs func(cmd *Command, args []string) error
+
+// Legacy arg validation has the following behaviour:
+// - root commands with no subcommands can take arbitrary arguments
+// - root commands with subcommands will do subcommand validity checking
+// - subcommands will always accept arbitrary arguments
+func legacyArgs(cmd *Command, args []string) error {
+       // no subcommand, always take args
+       if !cmd.HasSubCommands() {
+               return nil
+       }
+
+       // root command with subcommands, do subcommand checking.
+       if !cmd.HasParent() && len(args) > 0 {
+               return fmt.Errorf("unknown command %q for %q%s", args[0], cmd.CommandPath(), cmd.findSuggestions(args[0]))
+       }
+       return nil
+}
+
+// NoArgs returns an error if any args are included.
+func NoArgs(cmd *Command, args []string) error {
+       if len(args) > 0 {
+               return fmt.Errorf("unknown command %q for %q", args[0], cmd.CommandPath())
+       }
+       return nil
+}
+
+// OnlyValidArgs returns an error if any args are not in the list of ValidArgs.
+func OnlyValidArgs(cmd *Command, args []string) error {
+       if len(cmd.ValidArgs) > 0 {
+               for _, v := range args {
+                       if !stringInSlice(v, cmd.ValidArgs) {
+                               return fmt.Errorf("invalid argument %q for %q%s", v, cmd.CommandPath(), cmd.findSuggestions(args[0]))
+                       }
+               }
+       }
+       return nil
+}
+
+// ArbitraryArgs never returns an error.
+func ArbitraryArgs(cmd *Command, args []string) error {
+       return nil
+}
+
+// MinimumNArgs returns an error if there is not at least N args.
+func MinimumNArgs(n int) PositionalArgs {
+       return func(cmd *Command, args []string) error {
+               if len(args) < n {
+                       return fmt.Errorf("requires at least %d arg(s), only received %d", n, len(args))
+               }
+               return nil
+       }
+}
+
+// MaximumNArgs returns an error if there are more than N args.
+func MaximumNArgs(n int) PositionalArgs {
+       return func(cmd *Command, args []string) error {
+               if len(args) > n {
+                       return fmt.Errorf("accepts at most %d arg(s), received %d", n, len(args))
+               }
+               return nil
+       }
+}
+
+// ExactArgs returns an error if there are not exactly n args.
+func ExactArgs(n int) PositionalArgs {
+       return func(cmd *Command, args []string) error {
+               if len(args) != n {
+                       return fmt.Errorf("accepts %d arg(s), received %d", n, len(args))
+               }
+               return nil
+       }
+}
+
+// RangeArgs returns an error if the number of args is not within the expected range.
+func RangeArgs(min int, max int) PositionalArgs {
+       return func(cmd *Command, args []string) error {
+               if len(args) < min || len(args) > max {
+                       return fmt.Errorf("accepts between %d and %d arg(s), received %d", min, max, len(args))
+               }
+               return nil
+       }
+}
diff --git a/vendor/github.com/spf13/cobra/bash_completions.go b/vendor/github.com/spf13/cobra/bash_completions.go
new file mode 100644 (file)
index 0000000..63274d9
--- /dev/null
@@ -0,0 +1,590 @@
+package cobra
+
+import (
+       "bytes"
+       "fmt"
+       "io"
+       "os"
+       "sort"
+       "strings"
+
+       "github.com/spf13/pflag"
+)
+
+// Annotations for Bash completion.
+const (
+       BashCompFilenameExt     = "cobra_annotation_bash_completion_filename_extensions"
+       BashCompCustom          = "cobra_annotation_bash_completion_custom"
+       BashCompOneRequiredFlag = "cobra_annotation_bash_completion_one_required_flag"
+       BashCompSubdirsInDir    = "cobra_annotation_bash_completion_subdirs_in_dir"
+)
+
+func writePreamble(buf *bytes.Buffer, name string) {
+       buf.WriteString(fmt.Sprintf("# bash completion for %-36s -*- shell-script -*-\n", name))
+       buf.WriteString(fmt.Sprintf(`
+__%[1]s_debug()
+{
+    if [[ -n ${BASH_COMP_DEBUG_FILE} ]]; then
+        echo "$*" >> "${BASH_COMP_DEBUG_FILE}"
+    fi
+}
+
+# Homebrew on Macs have version 1.3 of bash-completion which doesn't include
+# _init_completion. This is a very minimal version of that function.
+__%[1]s_init_completion()
+{
+    COMPREPLY=()
+    _get_comp_words_by_ref "$@" cur prev words cword
+}
+
+__%[1]s_index_of_word()
+{
+    local w word=$1
+    shift
+    index=0
+    for w in "$@"; do
+        [[ $w = "$word" ]] && return
+        index=$((index+1))
+    done
+    index=-1
+}
+
+__%[1]s_contains_word()
+{
+    local w word=$1; shift
+    for w in "$@"; do
+        [[ $w = "$word" ]] && return
+    done
+    return 1
+}
+
+__%[1]s_handle_reply()
+{
+    __%[1]s_debug "${FUNCNAME[0]}"
+    case $cur in
+        -*)
+            if [[ $(type -t compopt) = "builtin" ]]; then
+                compopt -o nospace
+            fi
+            local allflags
+            if [ ${#must_have_one_flag[@]} -ne 0 ]; then
+                allflags=("${must_have_one_flag[@]}")
+            else
+                allflags=("${flags[*]} ${two_word_flags[*]}")
+            fi
+            COMPREPLY=( $(compgen -W "${allflags[*]}" -- "$cur") )
+            if [[ $(type -t compopt) = "builtin" ]]; then
+                [[ "${COMPREPLY[0]}" == *= ]] || compopt +o nospace
+            fi
+
+            # complete after --flag=abc
+            if [[ $cur == *=* ]]; then
+                if [[ $(type -t compopt) = "builtin" ]]; then
+                    compopt +o nospace
+                fi
+
+                local index flag
+                flag="${cur%%=*}"
+                __%[1]s_index_of_word "${flag}" "${flags_with_completion[@]}"
+                COMPREPLY=()
+                if [[ ${index} -ge 0 ]]; then
+                    PREFIX=""
+                    cur="${cur#*=}"
+                    ${flags_completion[${index}]}
+                    if [ -n "${ZSH_VERSION}" ]; then
+                        # zsh completion needs --flag= prefix
+                        eval "COMPREPLY=( \"\${COMPREPLY[@]/#/${flag}=}\" )"
+                    fi
+                fi
+            fi
+            return 0;
+            ;;
+    esac
+
+    # check if we are handling a flag with special work handling
+    local index
+    __%[1]s_index_of_word "${prev}" "${flags_with_completion[@]}"
+    if [[ ${index} -ge 0 ]]; then
+        ${flags_completion[${index}]}
+        return
+    fi
+
+    # we are parsing a flag and don't have a special handler, no completion
+    if [[ ${cur} != "${words[cword]}" ]]; then
+        return
+    fi
+
+    local completions
+    completions=("${commands[@]}")
+    if [[ ${#must_have_one_noun[@]} -ne 0 ]]; then
+        completions=("${must_have_one_noun[@]}")
+    fi
+    if [[ ${#must_have_one_flag[@]} -ne 0 ]]; then
+        completions+=("${must_have_one_flag[@]}")
+    fi
+    COMPREPLY=( $(compgen -W "${completions[*]}" -- "$cur") )
+
+    if [[ ${#COMPREPLY[@]} -eq 0 && ${#noun_aliases[@]} -gt 0 && ${#must_have_one_noun[@]} -ne 0 ]]; then
+        COMPREPLY=( $(compgen -W "${noun_aliases[*]}" -- "$cur") )
+    fi
+
+    if [[ ${#COMPREPLY[@]} -eq 0 ]]; then
+               if declare -F __%[1]s_custom_func >/dev/null; then
+                       # try command name qualified custom func
+                       __%[1]s_custom_func
+               else
+                       # otherwise fall back to unqualified for compatibility
+                       declare -F ___custom_func >/dev/null && __custom_func
+               fi
+    fi
+
+    # available in bash-completion >= 2, not always present on macOS
+    if declare -F __ltrim_colon_completions >/dev/null; then
+        __ltrim_colon_completions "$cur"
+    fi
+
+    # If there is only 1 completion and it is a flag with an = it will be completed
+    # but we don't want a space after the =
+    if [[ "${#COMPREPLY[@]}" -eq "1" ]] && [[ $(type -t compopt) = "builtin" ]] && [[ "${COMPREPLY[0]}" == --*= ]]; then
+       compopt -o nospace
+    fi
+}
+
+# The arguments should be in the form "ext1|ext2|extn"
+__%[1]s_handle_filename_extension_flag()
+{
+    local ext="$1"
+    _filedir "@(${ext})"
+}
+
+__%[1]s_handle_subdirs_in_dir_flag()
+{
+    local dir="$1"
+    pushd "${dir}" >/dev/null 2>&1 && _filedir -d && popd >/dev/null 2>&1
+}
+
+__%[1]s_handle_flag()
+{
+    __%[1]s_debug "${FUNCNAME[0]}: c is $c words[c] is ${words[c]}"
+
+    # if a command required a flag, and we found it, unset must_have_one_flag()
+    local flagname=${words[c]}
+    local flagvalue
+    # if the word contained an =
+    if [[ ${words[c]} == *"="* ]]; then
+        flagvalue=${flagname#*=} # take in as flagvalue after the =
+        flagname=${flagname%%=*} # strip everything after the =
+        flagname="${flagname}=" # but put the = back
+    fi
+    __%[1]s_debug "${FUNCNAME[0]}: looking for ${flagname}"
+    if __%[1]s_contains_word "${flagname}" "${must_have_one_flag[@]}"; then
+        must_have_one_flag=()
+    fi
+
+    # if you set a flag which only applies to this command, don't show subcommands
+    if __%[1]s_contains_word "${flagname}" "${local_nonpersistent_flags[@]}"; then
+      commands=()
+    fi
+
+    # keep flag value with flagname as flaghash
+    # flaghash variable is an associative array which is only supported in bash > 3.
+    if [[ -z "${BASH_VERSION}" || "${BASH_VERSINFO[0]}" -gt 3 ]]; then
+        if [ -n "${flagvalue}" ] ; then
+            flaghash[${flagname}]=${flagvalue}
+        elif [ -n "${words[ $((c+1)) ]}" ] ; then
+            flaghash[${flagname}]=${words[ $((c+1)) ]}
+        else
+            flaghash[${flagname}]="true" # pad "true" for bool flag
+        fi
+    fi
+
+    # skip the argument to a two word flag
+    if __%[1]s_contains_word "${words[c]}" "${two_word_flags[@]}"; then
+        c=$((c+1))
+        # if we are looking for a flags value, don't show commands
+        if [[ $c -eq $cword ]]; then
+            commands=()
+        fi
+    fi
+
+    c=$((c+1))
+
+}
+
+__%[1]s_handle_noun()
+{
+    __%[1]s_debug "${FUNCNAME[0]}: c is $c words[c] is ${words[c]}"
+
+    if __%[1]s_contains_word "${words[c]}" "${must_have_one_noun[@]}"; then
+        must_have_one_noun=()
+    elif __%[1]s_contains_word "${words[c]}" "${noun_aliases[@]}"; then
+        must_have_one_noun=()
+    fi
+
+    nouns+=("${words[c]}")
+    c=$((c+1))
+}
+
+__%[1]s_handle_command()
+{
+    __%[1]s_debug "${FUNCNAME[0]}: c is $c words[c] is ${words[c]}"
+
+    local next_command
+    if [[ -n ${last_command} ]]; then
+        next_command="_${last_command}_${words[c]//:/__}"
+    else
+        if [[ $c -eq 0 ]]; then
+            next_command="_%[1]s_root_command"
+        else
+            next_command="_${words[c]//:/__}"
+        fi
+    fi
+    c=$((c+1))
+    __%[1]s_debug "${FUNCNAME[0]}: looking for ${next_command}"
+    declare -F "$next_command" >/dev/null && $next_command
+}
+
+__%[1]s_handle_word()
+{
+    if [[ $c -ge $cword ]]; then
+        __%[1]s_handle_reply
+        return
+    fi
+    __%[1]s_debug "${FUNCNAME[0]}: c is $c words[c] is ${words[c]}"
+    if [[ "${words[c]}" == -* ]]; then
+        __%[1]s_handle_flag
+    elif __%[1]s_contains_word "${words[c]}" "${commands[@]}"; then
+        __%[1]s_handle_command
+    elif [[ $c -eq 0 ]]; then
+        __%[1]s_handle_command
+    elif __%[1]s_contains_word "${words[c]}" "${command_aliases[@]}"; then
+        # aliashash variable is an associative array which is only supported in bash > 3.
+        if [[ -z "${BASH_VERSION}" || "${BASH_VERSINFO[0]}" -gt 3 ]]; then
+            words[c]=${aliashash[${words[c]}]}
+            __%[1]s_handle_command
+        else
+            __%[1]s_handle_noun
+        fi
+    else
+        __%[1]s_handle_noun
+    fi
+    __%[1]s_handle_word
+}
+
+`, name))
+}
+
+func writePostscript(buf *bytes.Buffer, name string) {
+       name = strings.Replace(name, ":", "__", -1)
+       buf.WriteString(fmt.Sprintf("__start_%s()\n", name))
+       buf.WriteString(fmt.Sprintf(`{
+    local cur prev words cword
+    declare -A flaghash 2>/dev/null || :
+    declare -A aliashash 2>/dev/null || :
+    if declare -F _init_completion >/dev/null 2>&1; then
+        _init_completion -s || return
+    else
+        __%[1]s_init_completion -n "=" || return
+    fi
+
+    local c=0
+    local flags=()
+    local two_word_flags=()
+    local local_nonpersistent_flags=()
+    local flags_with_completion=()
+    local flags_completion=()
+    local commands=("%[1]s")
+    local must_have_one_flag=()
+    local must_have_one_noun=()
+    local last_command
+    local nouns=()
+
+    __%[1]s_handle_word
+}
+
+`, name))
+       buf.WriteString(fmt.Sprintf(`if [[ $(type -t compopt) = "builtin" ]]; then
+    complete -o default -F __start_%s %s
+else
+    complete -o default -o nospace -F __start_%s %s
+fi
+
+`, name, name, name, name))
+       buf.WriteString("# ex: ts=4 sw=4 et filetype=sh\n")
+}
+
+func writeCommands(buf *bytes.Buffer, cmd *Command) {
+       buf.WriteString("    commands=()\n")
+       for _, c := range cmd.Commands() {
+               if !c.IsAvailableCommand() || c == cmd.helpCommand {
+                       continue
+               }
+               buf.WriteString(fmt.Sprintf("    commands+=(%q)\n", c.Name()))
+               writeCmdAliases(buf, c)
+       }
+       buf.WriteString("\n")
+}
+
+func writeFlagHandler(buf *bytes.Buffer, name string, annotations map[string][]string, cmd *Command) {
+       for key, value := range annotations {
+               switch key {
+               case BashCompFilenameExt:
+                       buf.WriteString(fmt.Sprintf("    flags_with_completion+=(%q)\n", name))
+
+                       var ext string
+                       if len(value) > 0 {
+                               ext = fmt.Sprintf("__%s_handle_filename_extension_flag ", cmd.Root().Name()) + strings.Join(value, "|")
+                       } else {
+                               ext = "_filedir"
+                       }
+                       buf.WriteString(fmt.Sprintf("    flags_completion+=(%q)\n", ext))
+               case BashCompCustom:
+                       buf.WriteString(fmt.Sprintf("    flags_with_completion+=(%q)\n", name))
+                       if len(value) > 0 {
+                               handlers := strings.Join(value, "; ")
+                               buf.WriteString(fmt.Sprintf("    flags_completion+=(%q)\n", handlers))
+                       } else {
+                               buf.WriteString("    flags_completion+=(:)\n")
+                       }
+               case BashCompSubdirsInDir:
+                       buf.WriteString(fmt.Sprintf("    flags_with_completion+=(%q)\n", name))
+
+                       var ext string
+                       if len(value) == 1 {
+                               ext = fmt.Sprintf("__%s_handle_subdirs_in_dir_flag ", cmd.Root().Name()) + value[0]
+                       } else {
+                               ext = "_filedir -d"
+                       }
+                       buf.WriteString(fmt.Sprintf("    flags_completion+=(%q)\n", ext))
+               }
+       }
+}
+
+func writeShortFlag(buf *bytes.Buffer, flag *pflag.Flag, cmd *Command) {
+       name := flag.Shorthand
+       format := "    "
+       if len(flag.NoOptDefVal) == 0 {
+               format += "two_word_"
+       }
+       format += "flags+=(\"-%s\")\n"
+       buf.WriteString(fmt.Sprintf(format, name))
+       writeFlagHandler(buf, "-"+name, flag.Annotations, cmd)
+}
+
+func writeFlag(buf *bytes.Buffer, flag *pflag.Flag, cmd *Command) {
+       name := flag.Name
+       format := "    flags+=(\"--%s"
+       if len(flag.NoOptDefVal) == 0 {
+               format += "="
+       }
+       format += "\")\n"
+       buf.WriteString(fmt.Sprintf(format, name))
+       writeFlagHandler(buf, "--"+name, flag.Annotations, cmd)
+}
+
+func writeLocalNonPersistentFlag(buf *bytes.Buffer, flag *pflag.Flag) {
+       name := flag.Name
+       format := "    local_nonpersistent_flags+=(\"--%s"
+       if len(flag.NoOptDefVal) == 0 {
+               format += "="
+       }
+       format += "\")\n"
+       buf.WriteString(fmt.Sprintf(format, name))
+}
+
+func writeFlags(buf *bytes.Buffer, cmd *Command) {
+       buf.WriteString(`    flags=()
+    two_word_flags=()
+    local_nonpersistent_flags=()
+    flags_with_completion=()
+    flags_completion=()
+
+`)
+       localNonPersistentFlags := cmd.LocalNonPersistentFlags()
+       cmd.NonInheritedFlags().VisitAll(func(flag *pflag.Flag) {
+               if nonCompletableFlag(flag) {
+                       return
+               }
+               writeFlag(buf, flag, cmd)
+               if len(flag.Shorthand) > 0 {
+                       writeShortFlag(buf, flag, cmd)
+               }
+               if localNonPersistentFlags.Lookup(flag.Name) != nil {
+                       writeLocalNonPersistentFlag(buf, flag)
+               }
+       })
+       cmd.InheritedFlags().VisitAll(func(flag *pflag.Flag) {
+               if nonCompletableFlag(flag) {
+                       return
+               }
+               writeFlag(buf, flag, cmd)
+               if len(flag.Shorthand) > 0 {
+                       writeShortFlag(buf, flag, cmd)
+               }
+       })
+
+       buf.WriteString("\n")
+}
+
+func writeRequiredFlag(buf *bytes.Buffer, cmd *Command) {
+       buf.WriteString("    must_have_one_flag=()\n")
+       flags := cmd.NonInheritedFlags()
+       flags.VisitAll(func(flag *pflag.Flag) {
+               if nonCompletableFlag(flag) {
+                       return
+               }
+               for key := range flag.Annotations {
+                       switch key {
+                       case BashCompOneRequiredFlag:
+                               format := "    must_have_one_flag+=(\"--%s"
+                               if flag.Value.Type() != "bool" {
+                                       format += "="
+                               }
+                               format += "\")\n"
+                               buf.WriteString(fmt.Sprintf(format, flag.Name))
+
+                               if len(flag.Shorthand) > 0 {
+                                       buf.WriteString(fmt.Sprintf("    must_have_one_flag+=(\"-%s\")\n", flag.Shorthand))
+                               }
+                       }
+               }
+       })
+}
+
+func writeRequiredNouns(buf *bytes.Buffer, cmd *Command) {
+       buf.WriteString("    must_have_one_noun=()\n")
+       sort.Sort(sort.StringSlice(cmd.ValidArgs))
+       for _, value := range cmd.ValidArgs {
+               buf.WriteString(fmt.Sprintf("    must_have_one_noun+=(%q)\n", value))
+       }
+}
+
+func writeCmdAliases(buf *bytes.Buffer, cmd *Command) {
+       if len(cmd.Aliases) == 0 {
+               return
+       }
+
+       sort.Sort(sort.StringSlice(cmd.Aliases))
+
+       buf.WriteString(fmt.Sprint(`    if [[ -z "${BASH_VERSION}" || "${BASH_VERSINFO[0]}" -gt 3 ]]; then`, "\n"))
+       for _, value := range cmd.Aliases {
+               buf.WriteString(fmt.Sprintf("        command_aliases+=(%q)\n", value))
+               buf.WriteString(fmt.Sprintf("        aliashash[%q]=%q\n", value, cmd.Name()))
+       }
+       buf.WriteString(`    fi`)
+       buf.WriteString("\n")
+}
+func writeArgAliases(buf *bytes.Buffer, cmd *Command) {
+       buf.WriteString("    noun_aliases=()\n")
+       sort.Sort(sort.StringSlice(cmd.ArgAliases))
+       for _, value := range cmd.ArgAliases {
+               buf.WriteString(fmt.Sprintf("    noun_aliases+=(%q)\n", value))
+       }
+}
+
+func gen(buf *bytes.Buffer, cmd *Command) {
+       for _, c := range cmd.Commands() {
+               if !c.IsAvailableCommand() || c == cmd.helpCommand {
+                       continue
+               }
+               gen(buf, c)
+       }
+       commandName := cmd.CommandPath()
+       commandName = strings.Replace(commandName, " ", "_", -1)
+       commandName = strings.Replace(commandName, ":", "__", -1)
+
+       if cmd.Root() == cmd {
+               buf.WriteString(fmt.Sprintf("_%s_root_command()\n{\n", commandName))
+       } else {
+               buf.WriteString(fmt.Sprintf("_%s()\n{\n", commandName))
+       }
+
+       buf.WriteString(fmt.Sprintf("    last_command=%q\n", commandName))
+       buf.WriteString("\n")
+       buf.WriteString("    command_aliases=()\n")
+       buf.WriteString("\n")
+
+       writeCommands(buf, cmd)
+       writeFlags(buf, cmd)
+       writeRequiredFlag(buf, cmd)
+       writeRequiredNouns(buf, cmd)
+       writeArgAliases(buf, cmd)
+       buf.WriteString("}\n\n")
+}
+
+// GenBashCompletion generates bash completion file and writes to the passed writer.
+func (c *Command) GenBashCompletion(w io.Writer) error {
+       buf := new(bytes.Buffer)
+       writePreamble(buf, c.Name())
+       if len(c.BashCompletionFunction) > 0 {
+               buf.WriteString(c.BashCompletionFunction + "\n")
+       }
+       gen(buf, c)
+       writePostscript(buf, c.Name())
+
+       _, err := buf.WriteTo(w)
+       return err
+}
+
+func nonCompletableFlag(flag *pflag.Flag) bool {
+       return flag.Hidden || len(flag.Deprecated) > 0
+}
+
+// GenBashCompletionFile generates bash completion file.
+func (c *Command) GenBashCompletionFile(filename string) error {
+       outFile, err := os.Create(filename)
+       if err != nil {
+               return err
+       }
+       defer outFile.Close()
+
+       return c.GenBashCompletion(outFile)
+}
+
+// MarkFlagRequired adds the BashCompOneRequiredFlag annotation to the named flag if it exists,
+// and causes your command to report an error if invoked without the flag.
+func (c *Command) MarkFlagRequired(name string) error {
+       return MarkFlagRequired(c.Flags(), name)
+}
+
+// MarkPersistentFlagRequired adds the BashCompOneRequiredFlag annotation to the named persistent flag if it exists,
+// and causes your command to report an error if invoked without the flag.
+func (c *Command) MarkPersistentFlagRequired(name string) error {
+       return MarkFlagRequired(c.PersistentFlags(), name)
+}
+
+// MarkFlagRequired adds the BashCompOneRequiredFlag annotation to the named flag if it exists,
+// and causes your command to report an error if invoked without the flag.
+func MarkFlagRequired(flags *pflag.FlagSet, name string) error {
+       return flags.SetAnnotation(name, BashCompOneRequiredFlag, []string{"true"})
+}
+
+// MarkFlagFilename adds the BashCompFilenameExt annotation to the named flag, if it exists.
+// Generated bash autocompletion will select filenames for the flag, limiting to named extensions if provided.
+func (c *Command) MarkFlagFilename(name string, extensions ...string) error {
+       return MarkFlagFilename(c.Flags(), name, extensions...)
+}
+
+// MarkFlagCustom adds the BashCompCustom annotation to the named flag, if it exists.
+// Generated bash autocompletion will call the bash function f for the flag.
+func (c *Command) MarkFlagCustom(name string, f string) error {
+       return MarkFlagCustom(c.Flags(), name, f)
+}
+
+// MarkPersistentFlagFilename adds the BashCompFilenameExt annotation to the named persistent flag, if it exists.
+// Generated bash autocompletion will select filenames for the flag, limiting to named extensions if provided.
+func (c *Command) MarkPersistentFlagFilename(name string, extensions ...string) error {
+       return MarkFlagFilename(c.PersistentFlags(), name, extensions...)
+}
+
+// MarkFlagFilename adds the BashCompFilenameExt annotation to the named flag in the flag set, if it exists.
+// Generated bash autocompletion will select filenames for the flag, limiting to named extensions if provided.
+func MarkFlagFilename(flags *pflag.FlagSet, name string, extensions ...string) error {
+       return flags.SetAnnotation(name, BashCompFilenameExt, extensions)
+}
+
+// MarkFlagCustom adds the BashCompCustom annotation to the named flag in the flag set, if it exists.
+// Generated bash autocompletion will call the bash function f for the flag.
+func MarkFlagCustom(flags *pflag.FlagSet, name string, f string) error {
+       return flags.SetAnnotation(name, BashCompCustom, []string{f})
+}
diff --git a/vendor/github.com/spf13/cobra/bash_completions.md b/vendor/github.com/spf13/cobra/bash_completions.md
new file mode 100644 (file)
index 0000000..3bd32e0
--- /dev/null
@@ -0,0 +1,256 @@
+# Generating Bash Completions For Your Own cobra.Command
+
+If you are using the generator you can create a completion command by running
+
+```bash
+cobra add completion
+```
+
+Update the help text show how to install the bash_completion Linux show here [Kubectl docs show mac options](https://kubernetes.io/docs/tasks/tools/install-kubectl/#enabling-shell-autocompletion)
+
+Writing the shell script to stdout allows the most flexible use.
+
+```go
+// completionCmd represents the completion command
+var completionCmd = &cobra.Command{
+       Use:   "completion",
+       Short: "Generates bash completion scripts",
+       Long: `To load completion run
+
+. <(bitbucket completion)
+
+To configure your bash shell to load completions for each session add to your bashrc
+
+# ~/.bashrc or ~/.profile
+. <(bitbucket completion)
+`,
+       Run: func(cmd *cobra.Command, args []string) {
+               rootCmd.GenBashCompletion(os.Stdout);
+       },
+}
+```
+
+**Note:** The cobra generator may include messages printed to stdout for example if the config file is loaded, this will break the auto complete script
+
+
+## Example from kubectl
+
+Generating bash completions from a cobra command is incredibly easy. An actual program which does so for the kubernetes kubectl binary is as follows:
+
+```go
+package main
+
+import (
+       "io/ioutil"
+       "os"
+
+       "k8s.io/kubernetes/pkg/kubectl/cmd"
+       "k8s.io/kubernetes/pkg/kubectl/cmd/util"
+)
+
+func main() {
+       kubectl := cmd.NewKubectlCommand(util.NewFactory(nil), os.Stdin, ioutil.Discard, ioutil.Discard)
+       kubectl.GenBashCompletionFile("out.sh")
+}
+```
+
+`out.sh` will get you completions of subcommands and flags. Copy it to `/etc/bash_completion.d/` as described [here](https://debian-administration.org/article/316/An_introduction_to_bash_completion_part_1) and reset your terminal to use autocompletion. If you make additional annotations to your code, you can get even more intelligent and flexible behavior.
+
+## Creating your own custom functions
+
+Some more actual code that works in kubernetes:
+
+```bash
+const (
+        bash_completion_func = `__kubectl_parse_get()
+{
+    local kubectl_output out
+    if kubectl_output=$(kubectl get --no-headers "$1" 2>/dev/null); then
+        out=($(echo "${kubectl_output}" | awk '{print $1}'))
+        COMPREPLY=( $( compgen -W "${out[*]}" -- "$cur" ) )
+    fi
+}
+
+__kubectl_get_resource()
+{
+    if [[ ${#nouns[@]} -eq 0 ]]; then
+        return 1
+    fi
+    __kubectl_parse_get ${nouns[${#nouns[@]} -1]}
+    if [[ $? -eq 0 ]]; then
+        return 0
+    fi
+}
+
+__kubectl_custom_func() {
+    case ${last_command} in
+        kubectl_get | kubectl_describe | kubectl_delete | kubectl_stop)
+            __kubectl_get_resource
+            return
+            ;;
+        *)
+            ;;
+    esac
+}
+`)
+```
+
+And then I set that in my command definition:
+
+```go
+cmds := &cobra.Command{
+       Use:   "kubectl",
+       Short: "kubectl controls the Kubernetes cluster manager",
+       Long: `kubectl controls the Kubernetes cluster manager.
+
+Find more information at https://github.com/GoogleCloudPlatform/kubernetes.`,
+       Run: runHelp,
+       BashCompletionFunction: bash_completion_func,
+}
+```
+
+The `BashCompletionFunction` option is really only valid/useful on the root command. Doing the above will cause `___kubectl_custom_func()` (`__<command-use>_custom_func()`) to be called when the built in processor was unable to find a solution. In the case of kubernetes a valid command might look something like `kubectl get pod [mypod]`. If you type `kubectl get pod [tab][tab]` the `__kubectl_customc_func()` will run because the cobra.Command only understood "kubectl" and "get." `__kubectl_custom_func()` will see that the cobra.Command is "kubectl_get" and will thus call another helper `__kubectl_get_resource()`.  `__kubectl_get_resource` will look at the 'nouns' collected. In our example the only noun will be `pod`.  So it will call `__kubectl_parse_get pod`.  `__kubectl_parse_get` will actually call out to kubernetes and get any pods.  It will then set `COMPREPLY` to valid pods!
+
+## Have the completions code complete your 'nouns'
+
+In the above example "pod" was assumed to already be typed. But if you want `kubectl get [tab][tab]` to show a list of valid "nouns" you have to set them. Simplified code from `kubectl get` looks like:
+
+```go
+validArgs []string = { "pod", "node", "service", "replicationcontroller" }
+
+cmd := &cobra.Command{
+       Use:     "get [(-o|--output=)json|yaml|template|...] (RESOURCE [NAME] | RESOURCE/NAME ...)",
+       Short:   "Display one or many resources",
+       Long:    get_long,
+       Example: get_example,
+       Run: func(cmd *cobra.Command, args []string) {
+               err := RunGet(f, out, cmd, args)
+               util.CheckErr(err)
+       },
+       ValidArgs: validArgs,
+}
+```
+
+Notice we put the "ValidArgs" on the "get" subcommand. Doing so will give results like
+
+```bash
+# kubectl get [tab][tab]
+node                 pod                    replicationcontroller  service
+```
+
+## Plural form and shortcuts for nouns
+
+If your nouns have a number of aliases, you can define them alongside `ValidArgs` using `ArgAliases`:
+
+```go
+argAliases []string = { "pods", "nodes", "services", "svc", "replicationcontrollers", "rc" }
+
+cmd := &cobra.Command{
+    ...
+       ValidArgs:  validArgs,
+       ArgAliases: argAliases
+}
+```
+
+The aliases are not shown to the user on tab completion, but they are accepted as valid nouns by
+the completion algorithm if entered manually, e.g. in:
+
+```bash
+# kubectl get rc [tab][tab]
+backend        frontend       database 
+```
+
+Note that without declaring `rc` as an alias, the completion algorithm would show the list of nouns
+in this example again instead of the replication controllers.
+
+## Mark flags as required
+
+Most of the time completions will only show subcommands. But if a flag is required to make a subcommand work, you probably want it to show up when the user types [tab][tab].  Marking a flag as 'Required' is incredibly easy.
+
+```go
+cmd.MarkFlagRequired("pod")
+cmd.MarkFlagRequired("container")
+```
+
+and you'll get something like
+
+```bash
+# kubectl exec [tab][tab][tab]
+-c            --container=  -p            --pod=  
+```
+
+# Specify valid filename extensions for flags that take a filename
+
+In this example we use --filename= and expect to get a json or yaml file as the argument. To make this easier we annotate the --filename flag with valid filename extensions.
+
+```go
+       annotations := []string{"json", "yaml", "yml"}
+       annotation := make(map[string][]string)
+       annotation[cobra.BashCompFilenameExt] = annotations
+
+       flag := &pflag.Flag{
+               Name:        "filename",
+               Shorthand:   "f",
+               Usage:       usage,
+               Value:       value,
+               DefValue:    value.String(),
+               Annotations: annotation,
+       }
+       cmd.Flags().AddFlag(flag)
+```
+
+Now when you run a command with this filename flag you'll get something like
+
+```bash
+# kubectl create -f 
+test/                         example/                      rpmbuild/
+hello.yml                     test.json
+```
+
+So while there are many other files in the CWD it only shows me subdirs and those with valid extensions.
+
+# Specify custom flag completion
+
+Similar to the filename completion and filtering using cobra.BashCompFilenameExt, you can specify
+a custom flag completion function with cobra.BashCompCustom:
+
+```go
+       annotation := make(map[string][]string)
+       annotation[cobra.BashCompCustom] = []string{"__kubectl_get_namespaces"}
+
+       flag := &pflag.Flag{
+               Name:        "namespace",
+               Usage:       usage,
+               Annotations: annotation,
+       }
+       cmd.Flags().AddFlag(flag)
+```
+
+In addition add the `__handle_namespace_flag` implementation in the `BashCompletionFunction`
+value, e.g.:
+
+```bash
+__kubectl_get_namespaces()
+{
+    local template
+    template="{{ range .items  }}{{ .metadata.name }} {{ end }}"
+    local kubectl_out
+    if kubectl_out=$(kubectl get -o template --template="${template}" namespace 2>/dev/null); then
+        COMPREPLY=( $( compgen -W "${kubectl_out}[*]" -- "$cur" ) )
+    fi
+}
+```
+# Using bash aliases for commands
+
+You can also configure the `bash aliases` for the commands and they will also support completions.
+
+```bash
+alias aliasname=origcommand
+complete -o default -F __start_origcommand aliasname
+
+# and now when you run `aliasname` completion will make
+# suggestions as it did for `origcommand`.
+
+$) aliasname <tab><tab>
+completion     firstcommand   secondcommand
+```
diff --git a/vendor/github.com/spf13/cobra/cobra.go b/vendor/github.com/spf13/cobra/cobra.go
new file mode 100644 (file)
index 0000000..7010fd1
--- /dev/null
@@ -0,0 +1,200 @@
+// Copyright © 2013 Steve Francia <spf@spf13.com>.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+// Commands similar to git, go tools and other modern CLI tools
+// inspired by go, go-Commander, gh and subcommand
+
+package cobra
+
+import (
+       "fmt"
+       "io"
+       "reflect"
+       "strconv"
+       "strings"
+       "text/template"
+       "unicode"
+)
+
+var templateFuncs = template.FuncMap{
+       "trim":                    strings.TrimSpace,
+       "trimRightSpace":          trimRightSpace,
+       "trimTrailingWhitespaces": trimRightSpace,
+       "appendIfNotPresent":      appendIfNotPresent,
+       "rpad":                    rpad,
+       "gt":                      Gt,
+       "eq":                      Eq,
+}
+
+var initializers []func()
+
+// EnablePrefixMatching allows to set automatic prefix matching. Automatic prefix matching can be a dangerous thing
+// to automatically enable in CLI tools.
+// Set this to true to enable it.
+var EnablePrefixMatching = false
+
+// EnableCommandSorting controls sorting of the slice of commands, which is turned on by default.
+// To disable sorting, set it to false.
+var EnableCommandSorting = true
+
+// MousetrapHelpText enables an information splash screen on Windows
+// if the CLI is started from explorer.exe.
+// To disable the mousetrap, just set this variable to blank string ("").
+// Works only on Microsoft Windows.
+var MousetrapHelpText string = `This is a command line tool.
+
+You need to open cmd.exe and run it from there.
+`
+
+// AddTemplateFunc adds a template function that's available to Usage and Help
+// template generation.
+func AddTemplateFunc(name string, tmplFunc interface{}) {
+       templateFuncs[name] = tmplFunc
+}
+
+// AddTemplateFuncs adds multiple template functions that are available to Usage and
+// Help template generation.
+func AddTemplateFuncs(tmplFuncs template.FuncMap) {
+       for k, v := range tmplFuncs {
+               templateFuncs[k] = v
+       }
+}
+
+// OnInitialize sets the passed functions to be run when each command's
+// Execute method is called.
+func OnInitialize(y ...func()) {
+       initializers = append(initializers, y...)
+}
+
+// FIXME Gt is unused by cobra and should be removed in a version 2. It exists only for compatibility with users of cobra.
+
+// Gt takes two types and checks whether the first type is greater than the second. In case of types Arrays, Chans,
+// Maps and Slices, Gt will compare their lengths. Ints are compared directly while strings are first parsed as
+// ints and then compared.
+func Gt(a interface{}, b interface{}) bool {
+       var left, right int64
+       av := reflect.ValueOf(a)
+
+       switch av.Kind() {
+       case reflect.Array, reflect.Chan, reflect.Map, reflect.Slice:
+               left = int64(av.Len())
+       case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:
+               left = av.Int()
+       case reflect.String:
+               left, _ = strconv.ParseInt(av.String(), 10, 64)
+       }
+
+       bv := reflect.ValueOf(b)
+
+       switch bv.Kind() {
+       case reflect.Array, reflect.Chan, reflect.Map, reflect.Slice:
+               right = int64(bv.Len())
+       case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:
+               right = bv.Int()
+       case reflect.String:
+               right, _ = strconv.ParseInt(bv.String(), 10, 64)
+       }
+
+       return left > right
+}
+
+// FIXME Eq is unused by cobra and should be removed in a version 2. It exists only for compatibility with users of cobra.
+
+// Eq takes two types and checks whether they are equal. Supported types are int and string. Unsupported types will panic.
+func Eq(a interface{}, b interface{}) bool {
+       av := reflect.ValueOf(a)
+       bv := reflect.ValueOf(b)
+
+       switch av.Kind() {
+       case reflect.Array, reflect.Chan, reflect.Map, reflect.Slice:
+               panic("Eq called on unsupported type")
+       case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:
+               return av.Int() == bv.Int()
+       case reflect.String:
+               return av.String() == bv.String()
+       }
+       return false
+}
+
+func trimRightSpace(s string) string {
+       return strings.TrimRightFunc(s, unicode.IsSpace)
+}
+
+// FIXME appendIfNotPresent is unused by cobra and should be removed in a version 2. It exists only for compatibility with users of cobra.
+
+// appendIfNotPresent will append stringToAppend to the end of s, but only if it's not yet present in s.
+func appendIfNotPresent(s, stringToAppend string) string {
+       if strings.Contains(s, stringToAppend) {
+               return s
+       }
+       return s + " " + stringToAppend
+}
+
+// rpad adds padding to the right of a string.
+func rpad(s string, padding int) string {
+       template := fmt.Sprintf("%%-%ds", padding)
+       return fmt.Sprintf(template, s)
+}
+
+// tmpl executes the given template text on data, writing the result to w.
+func tmpl(w io.Writer, text string, data interface{}) error {
+       t := template.New("top")
+       t.Funcs(templateFuncs)
+       template.Must(t.Parse(text))
+       return t.Execute(w, data)
+}
+
+// ld compares two strings and returns the levenshtein distance between them.
+func ld(s, t string, ignoreCase bool) int {
+       if ignoreCase {
+               s = strings.ToLower(s)
+               t = strings.ToLower(t)
+       }
+       d := make([][]int, len(s)+1)
+       for i := range d {
+               d[i] = make([]int, len(t)+1)
+       }
+       for i := range d {
+               d[i][0] = i
+       }
+       for j := range d[0] {
+               d[0][j] = j
+       }
+       for j := 1; j <= len(t); j++ {
+               for i := 1; i <= len(s); i++ {
+                       if s[i-1] == t[j-1] {
+                               d[i][j] = d[i-1][j-1]
+                       } else {
+                               min := d[i-1][j]
+                               if d[i][j-1] < min {
+                                       min = d[i][j-1]
+                               }
+                               if d[i-1][j-1] < min {
+                                       min = d[i-1][j-1]
+                               }
+                               d[i][j] = min + 1
+                       }
+               }
+
+       }
+       return d[len(s)][len(t)]
+}
+
+func stringInSlice(a string, list []string) bool {
+       for _, b := range list {
+               if b == a {
+                       return true
+               }
+       }
+       return false
+}
diff --git a/vendor/github.com/spf13/cobra/command.go b/vendor/github.com/spf13/cobra/command.go
new file mode 100644 (file)
index 0000000..34d1bf3
--- /dev/null
@@ -0,0 +1,1517 @@
+// Copyright © 2013 Steve Francia <spf@spf13.com>.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+// Package cobra is a commander providing a simple interface to create powerful modern CLI interfaces.
+// In addition to providing an interface, Cobra simultaneously provides a controller to organize your application code.
+package cobra
+
+import (
+       "bytes"
+       "fmt"
+       "io"
+       "os"
+       "path/filepath"
+       "sort"
+       "strings"
+
+       flag "github.com/spf13/pflag"
+)
+
+// FParseErrWhitelist configures Flag parse errors to be ignored
+type FParseErrWhitelist flag.ParseErrorsWhitelist
+
+// Command is just that, a command for your application.
+// E.g.  'go run ...' - 'run' is the command. Cobra requires
+// you to define the usage and description as part of your command
+// definition to ensure usability.
+type Command struct {
+       // Use is the one-line usage message.
+       Use string
+
+       // Aliases is an array of aliases that can be used instead of the first word in Use.
+       Aliases []string
+
+       // SuggestFor is an array of command names for which this command will be suggested -
+       // similar to aliases but only suggests.
+       SuggestFor []string
+
+       // Short is the short description shown in the 'help' output.
+       Short string
+
+       // Long is the long message shown in the 'help <this-command>' output.
+       Long string
+
+       // Example is examples of how to use the command.
+       Example string
+
+       // ValidArgs is list of all valid non-flag arguments that are accepted in bash completions
+       ValidArgs []string
+
+       // Expected arguments
+       Args PositionalArgs
+
+       // ArgAliases is List of aliases for ValidArgs.
+       // These are not suggested to the user in the bash completion,
+       // but accepted if entered manually.
+       ArgAliases []string
+
+       // BashCompletionFunction is custom functions used by the bash autocompletion generator.
+       BashCompletionFunction string
+
+       // Deprecated defines, if this command is deprecated and should print this string when used.
+       Deprecated string
+
+       // Hidden defines, if this command is hidden and should NOT show up in the list of available commands.
+       Hidden bool
+
+       // Annotations are key/value pairs that can be used by applications to identify or
+       // group commands.
+       Annotations map[string]string
+
+       // Version defines the version for this command. If this value is non-empty and the command does not
+       // define a "version" flag, a "version" boolean flag will be added to the command and, if specified,
+       // will print content of the "Version" variable.
+       Version string
+
+       // The *Run functions are executed in the following order:
+       //   * PersistentPreRun()
+       //   * PreRun()
+       //   * Run()
+       //   * PostRun()
+       //   * PersistentPostRun()
+       // All functions get the same args, the arguments after the command name.
+       //
+       // PersistentPreRun: children of this command will inherit and execute.
+       PersistentPreRun func(cmd *Command, args []string)
+       // PersistentPreRunE: PersistentPreRun but returns an error.
+       PersistentPreRunE func(cmd *Command, args []string) error
+       // PreRun: children of this command will not inherit.
+       PreRun func(cmd *Command, args []string)
+       // PreRunE: PreRun but returns an error.
+       PreRunE func(cmd *Command, args []string) error
+       // Run: Typically the actual work function. Most commands will only implement this.
+       Run func(cmd *Command, args []string)
+       // RunE: Run but returns an error.
+       RunE func(cmd *Command, args []string) error
+       // PostRun: run after the Run command.
+       PostRun func(cmd *Command, args []string)
+       // PostRunE: PostRun but returns an error.
+       PostRunE func(cmd *Command, args []string) error
+       // PersistentPostRun: children of this command will inherit and execute after PostRun.
+       PersistentPostRun func(cmd *Command, args []string)
+       // PersistentPostRunE: PersistentPostRun but returns an error.
+       PersistentPostRunE func(cmd *Command, args []string) error
+
+       // SilenceErrors is an option to quiet errors down stream.
+       SilenceErrors bool
+
+       // SilenceUsage is an option to silence usage when an error occurs.
+       SilenceUsage bool
+
+       // DisableFlagParsing disables the flag parsing.
+       // If this is true all flags will be passed to the command as arguments.
+       DisableFlagParsing bool
+
+       // DisableAutoGenTag defines, if gen tag ("Auto generated by spf13/cobra...")
+       // will be printed by generating docs for this command.
+       DisableAutoGenTag bool
+
+       // DisableFlagsInUseLine will disable the addition of [flags] to the usage
+       // line of a command when printing help or generating docs
+       DisableFlagsInUseLine bool
+
+       // DisableSuggestions disables the suggestions based on Levenshtein distance
+       // that go along with 'unknown command' messages.
+       DisableSuggestions bool
+       // SuggestionsMinimumDistance defines minimum levenshtein distance to display suggestions.
+       // Must be > 0.
+       SuggestionsMinimumDistance int
+
+       // TraverseChildren parses flags on all parents before executing child command.
+       TraverseChildren bool
+
+       //FParseErrWhitelist flag parse errors to be ignored
+       FParseErrWhitelist FParseErrWhitelist
+
+       // commands is the list of commands supported by this program.
+       commands []*Command
+       // parent is a parent command for this command.
+       parent *Command
+       // Max lengths of commands' string lengths for use in padding.
+       commandsMaxUseLen         int
+       commandsMaxCommandPathLen int
+       commandsMaxNameLen        int
+       // commandsAreSorted defines, if command slice are sorted or not.
+       commandsAreSorted bool
+       // commandCalledAs is the name or alias value used to call this command.
+       commandCalledAs struct {
+               name   string
+               called bool
+       }
+
+       // args is actual args parsed from flags.
+       args []string
+       // flagErrorBuf contains all error messages from pflag.
+       flagErrorBuf *bytes.Buffer
+       // flags is full set of flags.
+       flags *flag.FlagSet
+       // pflags contains persistent flags.
+       pflags *flag.FlagSet
+       // lflags contains local flags.
+       lflags *flag.FlagSet
+       // iflags contains inherited flags.
+       iflags *flag.FlagSet
+       // parentsPflags is all persistent flags of cmd's parents.
+       parentsPflags *flag.FlagSet
+       // globNormFunc is the global normalization function
+       // that we can use on every pflag set and children commands
+       globNormFunc func(f *flag.FlagSet, name string) flag.NormalizedName
+
+       // output is an output writer defined by user.
+       output io.Writer
+       // usageFunc is usage func defined by user.
+       usageFunc func(*Command) error
+       // usageTemplate is usage template defined by user.
+       usageTemplate string
+       // flagErrorFunc is func defined by user and it's called when the parsing of
+       // flags returns an error.
+       flagErrorFunc func(*Command, error) error
+       // helpTemplate is help template defined by user.
+       helpTemplate string
+       // helpFunc is help func defined by user.
+       helpFunc func(*Command, []string)
+       // helpCommand is command with usage 'help'. If it's not defined by user,
+       // cobra uses default help command.
+       helpCommand *Command
+       // versionTemplate is the version template defined by user.
+       versionTemplate string
+}
+
+// SetArgs sets arguments for the command. It is set to os.Args[1:] by default, if desired, can be overridden
+// particularly useful when testing.
+func (c *Command) SetArgs(a []string) {
+       c.args = a
+}
+
+// SetOutput sets the destination for usage and error messages.
+// If output is nil, os.Stderr is used.
+func (c *Command) SetOutput(output io.Writer) {
+       c.output = output
+}
+
+// SetUsageFunc sets usage function. Usage can be defined by application.
+func (c *Command) SetUsageFunc(f func(*Command) error) {
+       c.usageFunc = f
+}
+
+// SetUsageTemplate sets usage template. Can be defined by Application.
+func (c *Command) SetUsageTemplate(s string) {
+       c.usageTemplate = s
+}
+
+// SetFlagErrorFunc sets a function to generate an error when flag parsing
+// fails.
+func (c *Command) SetFlagErrorFunc(f func(*Command, error) error) {
+       c.flagErrorFunc = f
+}
+
+// SetHelpFunc sets help function. Can be defined by Application.
+func (c *Command) SetHelpFunc(f func(*Command, []string)) {
+       c.helpFunc = f
+}
+
+// SetHelpCommand sets help command.
+func (c *Command) SetHelpCommand(cmd *Command) {
+       c.helpCommand = cmd
+}
+
+// SetHelpTemplate sets help template to be used. Application can use it to set custom template.
+func (c *Command) SetHelpTemplate(s string) {
+       c.helpTemplate = s
+}
+
+// SetVersionTemplate sets version template to be used. Application can use it to set custom template.
+func (c *Command) SetVersionTemplate(s string) {
+       c.versionTemplate = s
+}
+
+// SetGlobalNormalizationFunc sets a normalization function to all flag sets and also to child commands.
+// The user should not have a cyclic dependency on commands.
+func (c *Command) SetGlobalNormalizationFunc(n func(f *flag.FlagSet, name string) flag.NormalizedName) {
+       c.Flags().SetNormalizeFunc(n)
+       c.PersistentFlags().SetNormalizeFunc(n)
+       c.globNormFunc = n
+
+       for _, command := range c.commands {
+               command.SetGlobalNormalizationFunc(n)
+       }
+}
+
+// OutOrStdout returns output to stdout.
+func (c *Command) OutOrStdout() io.Writer {
+       return c.getOut(os.Stdout)
+}
+
+// OutOrStderr returns output to stderr
+func (c *Command) OutOrStderr() io.Writer {
+       return c.getOut(os.Stderr)
+}
+
+func (c *Command) getOut(def io.Writer) io.Writer {
+       if c.output != nil {
+               return c.output
+       }
+       if c.HasParent() {
+               return c.parent.getOut(def)
+       }
+       return def
+}
+
+// UsageFunc returns either the function set by SetUsageFunc for this command
+// or a parent, or it returns a default usage function.
+func (c *Command) UsageFunc() (f func(*Command) error) {
+       if c.usageFunc != nil {
+               return c.usageFunc
+       }
+       if c.HasParent() {
+               return c.Parent().UsageFunc()
+       }
+       return func(c *Command) error {
+               c.mergePersistentFlags()
+               err := tmpl(c.OutOrStderr(), c.UsageTemplate(), c)
+               if err != nil {
+                       c.Println(err)
+               }
+               return err
+       }
+}
+
+// Usage puts out the usage for the command.
+// Used when a user provides invalid input.
+// Can be defined by user by overriding UsageFunc.
+func (c *Command) Usage() error {
+       return c.UsageFunc()(c)
+}
+
+// HelpFunc returns either the function set by SetHelpFunc for this command
+// or a parent, or it returns a function with default help behavior.
+func (c *Command) HelpFunc() func(*Command, []string) {
+       if c.helpFunc != nil {
+               return c.helpFunc
+       }
+       if c.HasParent() {
+               return c.Parent().HelpFunc()
+       }
+       return func(c *Command, a []string) {
+               c.mergePersistentFlags()
+               err := tmpl(c.OutOrStdout(), c.HelpTemplate(), c)
+               if err != nil {
+                       c.Println(err)
+               }
+       }
+}
+
+// Help puts out the help for the command.
+// Used when a user calls help [command].
+// Can be defined by user by overriding HelpFunc.
+func (c *Command) Help() error {
+       c.HelpFunc()(c, []string{})
+       return nil
+}
+
+// UsageString return usage string.
+func (c *Command) UsageString() string {
+       tmpOutput := c.output
+       bb := new(bytes.Buffer)
+       c.SetOutput(bb)
+       c.Usage()
+       c.output = tmpOutput
+       return bb.String()
+}
+
+// FlagErrorFunc returns either the function set by SetFlagErrorFunc for this
+// command or a parent, or it returns a function which returns the original
+// error.
+func (c *Command) FlagErrorFunc() (f func(*Command, error) error) {
+       if c.flagErrorFunc != nil {
+               return c.flagErrorFunc
+       }
+
+       if c.HasParent() {
+               return c.parent.FlagErrorFunc()
+       }
+       return func(c *Command, err error) error {
+               return err
+       }
+}
+
+var minUsagePadding = 25
+
+// UsagePadding return padding for the usage.
+func (c *Command) UsagePadding() int {
+       if c.parent == nil || minUsagePadding > c.parent.commandsMaxUseLen {
+               return minUsagePadding
+       }
+       return c.parent.commandsMaxUseLen
+}
+
+var minCommandPathPadding = 11
+
+// CommandPathPadding return padding for the command path.
+func (c *Command) CommandPathPadding() int {
+       if c.parent == nil || minCommandPathPadding > c.parent.commandsMaxCommandPathLen {
+               return minCommandPathPadding
+       }
+       return c.parent.commandsMaxCommandPathLen
+}
+
+var minNamePadding = 11
+
+// NamePadding returns padding for the name.
+func (c *Command) NamePadding() int {
+       if c.parent == nil || minNamePadding > c.parent.commandsMaxNameLen {
+               return minNamePadding
+       }
+       return c.parent.commandsMaxNameLen
+}
+
+// UsageTemplate returns usage template for the command.
+func (c *Command) UsageTemplate() string {
+       if c.usageTemplate != "" {
+               return c.usageTemplate
+       }
+
+       if c.HasParent() {
+               return c.parent.UsageTemplate()
+       }
+       return `Usage:{{if .Runnable}}
+  {{.UseLine}}{{end}}{{if .HasAvailableSubCommands}}
+  {{.CommandPath}} [command]{{end}}{{if gt (len .Aliases) 0}}
+
+Aliases:
+  {{.NameAndAliases}}{{end}}{{if .HasExample}}
+
+Examples:
+{{.Example}}{{end}}{{if .HasAvailableSubCommands}}
+
+Available Commands:{{range .Commands}}{{if (or .IsAvailableCommand (eq .Name "help"))}}
+  {{rpad .Name .NamePadding }} {{.Short}}{{end}}{{end}}{{end}}{{if .HasAvailableLocalFlags}}
+
+Flags:
+{{.LocalFlags.FlagUsages | trimTrailingWhitespaces}}{{end}}{{if .HasAvailableInheritedFlags}}
+
+Global Flags:
+{{.InheritedFlags.FlagUsages | trimTrailingWhitespaces}}{{end}}{{if .HasHelpSubCommands}}
+
+Additional help topics:{{range .Commands}}{{if .IsAdditionalHelpTopicCommand}}
+  {{rpad .CommandPath .CommandPathPadding}} {{.Short}}{{end}}{{end}}{{end}}{{if .HasAvailableSubCommands}}
+
+Use "{{.CommandPath}} [command] --help" for more information about a command.{{end}}
+`
+}
+
+// HelpTemplate return help template for the command.
+func (c *Command) HelpTemplate() string {
+       if c.helpTemplate != "" {
+               return c.helpTemplate
+       }
+
+       if c.HasParent() {
+               return c.parent.HelpTemplate()
+       }
+       return `{{with (or .Long .Short)}}{{. | trimTrailingWhitespaces}}
+
+{{end}}{{if or .Runnable .HasSubCommands}}{{.UsageString}}{{end}}`
+}
+
+// VersionTemplate return version template for the command.
+func (c *Command) VersionTemplate() string {
+       if c.versionTemplate != "" {
+               return c.versionTemplate
+       }
+
+       if c.HasParent() {
+               return c.parent.VersionTemplate()
+       }
+       return `{{with .Name}}{{printf "%s " .}}{{end}}{{printf "version %s" .Version}}
+`
+}
+
+func hasNoOptDefVal(name string, fs *flag.FlagSet) bool {
+       flag := fs.Lookup(name)
+       if flag == nil {
+               return false
+       }
+       return flag.NoOptDefVal != ""
+}
+
+func shortHasNoOptDefVal(name string, fs *flag.FlagSet) bool {
+       if len(name) == 0 {
+               return false
+       }
+
+       flag := fs.ShorthandLookup(name[:1])
+       if flag == nil {
+               return false
+       }
+       return flag.NoOptDefVal != ""
+}
+
+func stripFlags(args []string, c *Command) []string {
+       if len(args) == 0 {
+               return args
+       }
+       c.mergePersistentFlags()
+
+       commands := []string{}
+       flags := c.Flags()
+
+Loop:
+       for len(args) > 0 {
+               s := args[0]
+               args = args[1:]
+               switch {
+               case s == "--":
+                       // "--" terminates the flags
+                       break Loop
+               case strings.HasPrefix(s, "--") && !strings.Contains(s, "=") && !hasNoOptDefVal(s[2:], flags):
+                       // If '--flag arg' then
+                       // delete arg from args.
+                       fallthrough // (do the same as below)
+               case strings.HasPrefix(s, "-") && !strings.Contains(s, "=") && len(s) == 2 && !shortHasNoOptDefVal(s[1:], flags):
+                       // If '-f arg' then
+                       // delete 'arg' from args or break the loop if len(args) <= 1.
+                       if len(args) <= 1 {
+                               break Loop
+                       } else {
+                               args = args[1:]
+                               continue
+                       }
+               case s != "" && !strings.HasPrefix(s, "-"):
+                       commands = append(commands, s)
+               }
+       }
+
+       return commands
+}
+
+// argsMinusFirstX removes only the first x from args.  Otherwise, commands that look like
+// openshift admin policy add-role-to-user admin my-user, lose the admin argument (arg[4]).
+func argsMinusFirstX(args []string, x string) []string {
+       for i, y := range args {
+               if x == y {
+                       ret := []string{}
+                       ret = append(ret, args[:i]...)
+                       ret = append(ret, args[i+1:]...)
+                       return ret
+               }
+       }
+       return args
+}
+
+func isFlagArg(arg string) bool {
+       return ((len(arg) >= 3 && arg[1] == '-') ||
+               (len(arg) >= 2 && arg[0] == '-' && arg[1] != '-'))
+}
+
+// Find the target command given the args and command tree
+// Meant to be run on the highest node. Only searches down.
+func (c *Command) Find(args []string) (*Command, []string, error) {
+       var innerfind func(*Command, []string) (*Command, []string)
+
+       innerfind = func(c *Command, innerArgs []string) (*Command, []string) {
+               argsWOflags := stripFlags(innerArgs, c)
+               if len(argsWOflags) == 0 {
+                       return c, innerArgs
+               }
+               nextSubCmd := argsWOflags[0]
+
+               cmd := c.findNext(nextSubCmd)
+               if cmd != nil {
+                       return innerfind(cmd, argsMinusFirstX(innerArgs, nextSubCmd))
+               }
+               return c, innerArgs
+       }
+
+       commandFound, a := innerfind(c, args)
+       if commandFound.Args == nil {
+               return commandFound, a, legacyArgs(commandFound, stripFlags(a, commandFound))
+       }
+       return commandFound, a, nil
+}
+
+func (c *Command) findSuggestions(arg string) string {
+       if c.DisableSuggestions {
+               return ""
+       }
+       if c.SuggestionsMinimumDistance <= 0 {
+               c.SuggestionsMinimumDistance = 2
+       }
+       suggestionsString := ""
+       if suggestions := c.SuggestionsFor(arg); len(suggestions) > 0 {
+               suggestionsString += "\n\nDid you mean this?\n"
+               for _, s := range suggestions {
+                       suggestionsString += fmt.Sprintf("\t%v\n", s)
+               }
+       }
+       return suggestionsString
+}
+
+func (c *Command) findNext(next string) *Command {
+       matches := make([]*Command, 0)
+       for _, cmd := range c.commands {
+               if cmd.Name() == next || cmd.HasAlias(next) {
+                       cmd.commandCalledAs.name = next
+                       return cmd
+               }
+               if EnablePrefixMatching && cmd.hasNameOrAliasPrefix(next) {
+                       matches = append(matches, cmd)
+               }
+       }
+
+       if len(matches) == 1 {
+               return matches[0]
+       }
+
+       return nil
+}
+
+// Traverse the command tree to find the command, and parse args for
+// each parent.
+func (c *Command) Traverse(args []string) (*Command, []string, error) {
+       flags := []string{}
+       inFlag := false
+
+       for i, arg := range args {
+               switch {
+               // A long flag with a space separated value
+               case strings.HasPrefix(arg, "--") && !strings.Contains(arg, "="):
+                       // TODO: this isn't quite right, we should really check ahead for 'true' or 'false'
+                       inFlag = !hasNoOptDefVal(arg[2:], c.Flags())
+                       flags = append(flags, arg)
+                       continue
+               // A short flag with a space separated value
+               case strings.HasPrefix(arg, "-") && !strings.Contains(arg, "=") && len(arg) == 2 && !shortHasNoOptDefVal(arg[1:], c.Flags()):
+                       inFlag = true
+                       flags = append(flags, arg)
+                       continue
+               // The value for a flag
+               case inFlag:
+                       inFlag = false
+                       flags = append(flags, arg)
+                       continue
+               // A flag without a value, or with an `=` separated value
+               case isFlagArg(arg):
+                       flags = append(flags, arg)
+                       continue
+               }
+
+               cmd := c.findNext(arg)
+               if cmd == nil {
+                       return c, args, nil
+               }
+
+               if err := c.ParseFlags(flags); err != nil {
+                       return nil, args, err
+               }
+               return cmd.Traverse(args[i+1:])
+       }
+       return c, args, nil
+}
+
+// SuggestionsFor provides suggestions for the typedName.
+func (c *Command) SuggestionsFor(typedName string) []string {
+       suggestions := []string{}
+       for _, cmd := range c.commands {
+               if cmd.IsAvailableCommand() {
+                       levenshteinDistance := ld(typedName, cmd.Name(), true)
+                       suggestByLevenshtein := levenshteinDistance <= c.SuggestionsMinimumDistance
+                       suggestByPrefix := strings.HasPrefix(strings.ToLower(cmd.Name()), strings.ToLower(typedName))
+                       if suggestByLevenshtein || suggestByPrefix {
+                               suggestions = append(suggestions, cmd.Name())
+                       }
+                       for _, explicitSuggestion := range cmd.SuggestFor {
+                               if strings.EqualFold(typedName, explicitSuggestion) {
+                                       suggestions = append(suggestions, cmd.Name())
+                               }
+                       }
+               }
+       }
+       return suggestions
+}
+
+// VisitParents visits all parents of the command and invokes fn on each parent.
+func (c *Command) VisitParents(fn func(*Command)) {
+       if c.HasParent() {
+               fn(c.Parent())
+               c.Parent().VisitParents(fn)
+       }
+}
+
+// Root finds root command.
+func (c *Command) Root() *Command {
+       if c.HasParent() {
+               return c.Parent().Root()
+       }
+       return c
+}
+
+// ArgsLenAtDash will return the length of c.Flags().Args at the moment
+// when a -- was found during args parsing.
+func (c *Command) ArgsLenAtDash() int {
+       return c.Flags().ArgsLenAtDash()
+}
+
+func (c *Command) execute(a []string) (err error) {
+       if c == nil {
+               return fmt.Errorf("Called Execute() on a nil Command")
+       }
+
+       if len(c.Deprecated) > 0 {
+               c.Printf("Command %q is deprecated, %s\n", c.Name(), c.Deprecated)
+       }
+
+       // initialize help and version flag at the last point possible to allow for user
+       // overriding
+       c.InitDefaultHelpFlag()
+       c.InitDefaultVersionFlag()
+
+       err = c.ParseFlags(a)
+       if err != nil {
+               return c.FlagErrorFunc()(c, err)
+       }
+
+       // If help is called, regardless of other flags, return we want help.
+       // Also say we need help if the command isn't runnable.
+       helpVal, err := c.Flags().GetBool("help")
+       if err != nil {
+               // should be impossible to get here as we always declare a help
+               // flag in InitDefaultHelpFlag()
+               c.Println("\"help\" flag declared as non-bool. Please correct your code")
+               return err
+       }
+
+       if helpVal {
+               return flag.ErrHelp
+       }
+
+       // for back-compat, only add version flag behavior if version is defined
+       if c.Version != "" {
+               versionVal, err := c.Flags().GetBool("version")
+               if err != nil {
+                       c.Println("\"version\" flag declared as non-bool. Please correct your code")
+                       return err
+               }
+               if versionVal {
+                       err := tmpl(c.OutOrStdout(), c.VersionTemplate(), c)
+                       if err != nil {
+                               c.Println(err)
+                       }
+                       return err
+               }
+       }
+
+       if !c.Runnable() {
+               return flag.ErrHelp
+       }
+
+       c.preRun()
+
+       argWoFlags := c.Flags().Args()
+       if c.DisableFlagParsing {
+               argWoFlags = a
+       }
+
+       if err := c.ValidateArgs(argWoFlags); err != nil {
+               return err
+       }
+
+       for p := c; p != nil; p = p.Parent() {
+               if p.PersistentPreRunE != nil {
+                       if err := p.PersistentPreRunE(c, argWoFlags); err != nil {
+                               return err
+                       }
+                       break
+               } else if p.PersistentPreRun != nil {
+                       p.PersistentPreRun(c, argWoFlags)
+                       break
+               }
+       }
+       if c.PreRunE != nil {
+               if err := c.PreRunE(c, argWoFlags); err != nil {
+                       return err
+               }
+       } else if c.PreRun != nil {
+               c.PreRun(c, argWoFlags)
+       }
+
+       if err := c.validateRequiredFlags(); err != nil {
+               return err
+       }
+       if c.RunE != nil {
+               if err := c.RunE(c, argWoFlags); err != nil {
+                       return err
+               }
+       } else {
+               c.Run(c, argWoFlags)
+       }
+       if c.PostRunE != nil {
+               if err := c.PostRunE(c, argWoFlags); err != nil {
+                       return err
+               }
+       } else if c.PostRun != nil {
+               c.PostRun(c, argWoFlags)
+       }
+       for p := c; p != nil; p = p.Parent() {
+               if p.PersistentPostRunE != nil {
+                       if err := p.PersistentPostRunE(c, argWoFlags); err != nil {
+                               return err
+                       }
+                       break
+               } else if p.PersistentPostRun != nil {
+                       p.PersistentPostRun(c, argWoFlags)
+                       break
+               }
+       }
+
+       return nil
+}
+
+func (c *Command) preRun() {
+       for _, x := range initializers {
+               x()
+       }
+}
+
+// Execute uses the args (os.Args[1:] by default)
+// and run through the command tree finding appropriate matches
+// for commands and then corresponding flags.
+func (c *Command) Execute() error {
+       _, err := c.ExecuteC()
+       return err
+}
+
+// ExecuteC executes the command.
+func (c *Command) ExecuteC() (cmd *Command, err error) {
+       // Regardless of what command execute is called on, run on Root only
+       if c.HasParent() {
+               return c.Root().ExecuteC()
+       }
+
+       // windows hook
+       if preExecHookFn != nil {
+               preExecHookFn(c)
+       }
+
+       // initialize help as the last point possible to allow for user
+       // overriding
+       c.InitDefaultHelpCmd()
+
+       var args []string
+
+       // Workaround FAIL with "go test -v" or "cobra.test -test.v", see #155
+       if c.args == nil && filepath.Base(os.Args[0]) != "cobra.test" {
+               args = os.Args[1:]
+       } else {
+               args = c.args
+       }
+
+       var flags []string
+       if c.TraverseChildren {
+               cmd, flags, err = c.Traverse(args)
+       } else {
+               cmd, flags, err = c.Find(args)
+       }
+       if err != nil {
+               // If found parse to a subcommand and then failed, talk about the subcommand
+               if cmd != nil {
+                       c = cmd
+               }
+               if !c.SilenceErrors {
+                       c.Println("Error:", err.Error())
+                       c.Printf("Run '%v --help' for usage.\n", c.CommandPath())
+               }
+               return c, err
+       }
+
+       cmd.commandCalledAs.called = true
+       if cmd.commandCalledAs.name == "" {
+               cmd.commandCalledAs.name = cmd.Name()
+       }
+
+       err = cmd.execute(flags)
+       if err != nil {
+               // Always show help if requested, even if SilenceErrors is in
+               // effect
+               if err == flag.ErrHelp {
+                       cmd.HelpFunc()(cmd, args)
+                       return cmd, nil
+               }
+
+               // If root command has SilentErrors flagged,
+               // all subcommands should respect it
+               if !cmd.SilenceErrors && !c.SilenceErrors {
+                       c.Println("Error:", err.Error())
+               }
+
+               // If root command has SilentUsage flagged,
+               // all subcommands should respect it
+               if !cmd.SilenceUsage && !c.SilenceUsage {
+                       c.Println(cmd.UsageString())
+               }
+       }
+       return cmd, err
+}
+
+func (c *Command) ValidateArgs(args []string) error {
+       if c.Args == nil {
+               return nil
+       }
+       return c.Args(c, args)
+}
+
+func (c *Command) validateRequiredFlags() error {
+       flags := c.Flags()
+       missingFlagNames := []string{}
+       flags.VisitAll(func(pflag *flag.Flag) {
+               requiredAnnotation, found := pflag.Annotations[BashCompOneRequiredFlag]
+               if !found {
+                       return
+               }
+               if (requiredAnnotation[0] == "true") && !pflag.Changed {
+                       missingFlagNames = append(missingFlagNames, pflag.Name)
+               }
+       })
+
+       if len(missingFlagNames) > 0 {
+               return fmt.Errorf(`required flag(s) "%s" not set`, strings.Join(missingFlagNames, `", "`))
+       }
+       return nil
+}
+
+// InitDefaultHelpFlag adds default help flag to c.
+// It is called automatically by executing the c or by calling help and usage.
+// If c already has help flag, it will do nothing.
+func (c *Command) InitDefaultHelpFlag() {
+       c.mergePersistentFlags()
+       if c.Flags().Lookup("help") == nil {
+               usage := "help for "
+               if c.Name() == "" {
+                       usage += "this command"
+               } else {
+                       usage += c.Name()
+               }
+               c.Flags().BoolP("help", "h", false, usage)
+       }
+}
+
+// InitDefaultVersionFlag adds default version flag to c.
+// It is called automatically by executing the c.
+// If c already has a version flag, it will do nothing.
+// If c.Version is empty, it will do nothing.
+func (c *Command) InitDefaultVersionFlag() {
+       if c.Version == "" {
+               return
+       }
+
+       c.mergePersistentFlags()
+       if c.Flags().Lookup("version") == nil {
+               usage := "version for "
+               if c.Name() == "" {
+                       usage += "this command"
+               } else {
+                       usage += c.Name()
+               }
+               c.Flags().Bool("version", false, usage)
+       }
+}
+
+// InitDefaultHelpCmd adds default help command to c.
+// It is called automatically by executing the c or by calling help and usage.
+// If c already has help command or c has no subcommands, it will do nothing.
+func (c *Command) InitDefaultHelpCmd() {
+       if !c.HasSubCommands() {
+               return
+       }
+
+       if c.helpCommand == nil {
+               c.helpCommand = &Command{
+                       Use:   "help [command]",
+                       Short: "Help about any command",
+                       Long: `Help provides help for any command in the application.
+Simply type ` + c.Name() + ` help [path to command] for full details.`,
+
+                       Run: func(c *Command, args []string) {
+                               cmd, _, e := c.Root().Find(args)
+                               if cmd == nil || e != nil {
+                                       c.Printf("Unknown help topic %#q\n", args)
+                                       c.Root().Usage()
+                               } else {
+                                       cmd.InitDefaultHelpFlag() // make possible 'help' flag to be shown
+                                       cmd.Help()
+                               }
+                       },
+               }
+       }
+       c.RemoveCommand(c.helpCommand)
+       c.AddCommand(c.helpCommand)
+}
+
+// ResetCommands delete parent, subcommand and help command from c.
+func (c *Command) ResetCommands() {
+       c.parent = nil
+       c.commands = nil
+       c.helpCommand = nil
+       c.parentsPflags = nil
+}
+
+// Sorts commands by their names.
+type commandSorterByName []*Command
+
+func (c commandSorterByName) Len() int           { return len(c) }
+func (c commandSorterByName) Swap(i, j int)      { c[i], c[j] = c[j], c[i] }
+func (c commandSorterByName) Less(i, j int) bool { return c[i].Name() < c[j].Name() }
+
+// Commands returns a sorted slice of child commands.
+func (c *Command) Commands() []*Command {
+       // do not sort commands if it already sorted or sorting was disabled
+       if EnableCommandSorting && !c.commandsAreSorted {
+               sort.Sort(commandSorterByName(c.commands))
+               c.commandsAreSorted = true
+       }
+       return c.commands
+}
+
+// AddCommand adds one or more commands to this parent command.
+func (c *Command) AddCommand(cmds ...*Command) {
+       for i, x := range cmds {
+               if cmds[i] == c {
+                       panic("Command can't be a child of itself")
+               }
+               cmds[i].parent = c
+               // update max lengths
+               usageLen := len(x.Use)
+               if usageLen > c.commandsMaxUseLen {
+                       c.commandsMaxUseLen = usageLen
+               }
+               commandPathLen := len(x.CommandPath())
+               if commandPathLen > c.commandsMaxCommandPathLen {
+                       c.commandsMaxCommandPathLen = commandPathLen
+               }
+               nameLen := len(x.Name())
+               if nameLen > c.commandsMaxNameLen {
+                       c.commandsMaxNameLen = nameLen
+               }
+               // If global normalization function exists, update all children
+               if c.globNormFunc != nil {
+                       x.SetGlobalNormalizationFunc(c.globNormFunc)
+               }
+               c.commands = append(c.commands, x)
+               c.commandsAreSorted = false
+       }
+}
+
+// RemoveCommand removes one or more commands from a parent command.
+func (c *Command) RemoveCommand(cmds ...*Command) {
+       commands := []*Command{}
+main:
+       for _, command := range c.commands {
+               for _, cmd := range cmds {
+                       if command == cmd {
+                               command.parent = nil
+                               continue main
+                       }
+               }
+               commands = append(commands, command)
+       }
+       c.commands = commands
+       // recompute all lengths
+       c.commandsMaxUseLen = 0
+       c.commandsMaxCommandPathLen = 0
+       c.commandsMaxNameLen = 0
+       for _, command := range c.commands {
+               usageLen := len(command.Use)
+               if usageLen > c.commandsMaxUseLen {
+                       c.commandsMaxUseLen = usageLen
+               }
+               commandPathLen := len(command.CommandPath())
+               if commandPathLen > c.commandsMaxCommandPathLen {
+                       c.commandsMaxCommandPathLen = commandPathLen
+               }
+               nameLen := len(command.Name())
+               if nameLen > c.commandsMaxNameLen {
+                       c.commandsMaxNameLen = nameLen
+               }
+       }
+}
+
+// Print is a convenience method to Print to the defined output, fallback to Stderr if not set.
+func (c *Command) Print(i ...interface{}) {
+       fmt.Fprint(c.OutOrStderr(), i...)
+}
+
+// Println is a convenience method to Println to the defined output, fallback to Stderr if not set.
+func (c *Command) Println(i ...interface{}) {
+       c.Print(fmt.Sprintln(i...))
+}
+
+// Printf is a convenience method to Printf to the defined output, fallback to Stderr if not set.
+func (c *Command) Printf(format string, i ...interface{}) {
+       c.Print(fmt.Sprintf(format, i...))
+}
+
+// CommandPath returns the full path to this command.
+func (c *Command) CommandPath() string {
+       if c.HasParent() {
+               return c.Parent().CommandPath() + " " + c.Name()
+       }
+       return c.Name()
+}
+
+// UseLine puts out the full usage for a given command (including parents).
+func (c *Command) UseLine() string {
+       var useline string
+       if c.HasParent() {
+               useline = c.parent.CommandPath() + " " + c.Use
+       } else {
+               useline = c.Use
+       }
+       if c.DisableFlagsInUseLine {
+               return useline
+       }
+       if c.HasAvailableFlags() && !strings.Contains(useline, "[flags]") {
+               useline += " [flags]"
+       }
+       return useline
+}
+
+// DebugFlags used to determine which flags have been assigned to which commands
+// and which persist.
+func (c *Command) DebugFlags() {
+       c.Println("DebugFlags called on", c.Name())
+       var debugflags func(*Command)
+
+       debugflags = func(x *Command) {
+               if x.HasFlags() || x.HasPersistentFlags() {
+                       c.Println(x.Name())
+               }
+               if x.HasFlags() {
+                       x.flags.VisitAll(func(f *flag.Flag) {
+                               if x.HasPersistentFlags() && x.persistentFlag(f.Name) != nil {
+                                       c.Println("  -"+f.Shorthand+",", "--"+f.Name, "["+f.DefValue+"]", "", f.Value, "  [LP]")
+                               } else {
+                                       c.Println("  -"+f.Shorthand+",", "--"+f.Name, "["+f.DefValue+"]", "", f.Value, "  [L]")
+                               }
+                       })
+               }
+               if x.HasPersistentFlags() {
+                       x.pflags.VisitAll(func(f *flag.Flag) {
+                               if x.HasFlags() {
+                                       if x.flags.Lookup(f.Name) == nil {
+                                               c.Println("  -"+f.Shorthand+",", "--"+f.Name, "["+f.DefValue+"]", "", f.Value, "  [P]")
+                                       }
+                               } else {
+                                       c.Println("  -"+f.Shorthand+",", "--"+f.Name, "["+f.DefValue+"]", "", f.Value, "  [P]")
+                               }
+                       })
+               }
+               c.Println(x.flagErrorBuf)
+               if x.HasSubCommands() {
+                       for _, y := range x.commands {
+                               debugflags(y)
+                       }
+               }
+       }
+
+       debugflags(c)
+}
+
+// Name returns the command's name: the first word in the use line.
+func (c *Command) Name() string {
+       name := c.Use
+       i := strings.Index(name, " ")
+       if i >= 0 {
+               name = name[:i]
+       }
+       return name
+}
+
+// HasAlias determines if a given string is an alias of the command.
+func (c *Command) HasAlias(s string) bool {
+       for _, a := range c.Aliases {
+               if a == s {
+                       return true
+               }
+       }
+       return false
+}
+
+// CalledAs returns the command name or alias that was used to invoke
+// this command or an empty string if the command has not been called.
+func (c *Command) CalledAs() string {
+       if c.commandCalledAs.called {
+               return c.commandCalledAs.name
+       }
+       return ""
+}
+
+// hasNameOrAliasPrefix returns true if the Name or any of aliases start
+// with prefix
+func (c *Command) hasNameOrAliasPrefix(prefix string) bool {
+       if strings.HasPrefix(c.Name(), prefix) {
+               c.commandCalledAs.name = c.Name()
+               return true
+       }
+       for _, alias := range c.Aliases {
+               if strings.HasPrefix(alias, prefix) {
+                       c.commandCalledAs.name = alias
+                       return true
+               }
+       }
+       return false
+}
+
+// NameAndAliases returns a list of the command name and all aliases
+func (c *Command) NameAndAliases() string {
+       return strings.Join(append([]string{c.Name()}, c.Aliases...), ", ")
+}
+
+// HasExample determines if the command has example.
+func (c *Command) HasExample() bool {
+       return len(c.Example) > 0
+}
+
+// Runnable determines if the command is itself runnable.
+func (c *Command) Runnable() bool {
+       return c.Run != nil || c.RunE != nil
+}
+
+// HasSubCommands determines if the command has children commands.
+func (c *Command) HasSubCommands() bool {
+       return len(c.commands) > 0
+}
+
+// IsAvailableCommand determines if a command is available as a non-help command
+// (this includes all non deprecated/hidden commands).
+func (c *Command) IsAvailableCommand() bool {
+       if len(c.Deprecated) != 0 || c.Hidden {
+               return false
+       }
+
+       if c.HasParent() && c.Parent().helpCommand == c {
+               return false
+       }
+
+       if c.Runnable() || c.HasAvailableSubCommands() {
+               return true
+       }
+
+       return false
+}
+
+// IsAdditionalHelpTopicCommand determines if a command is an additional
+// help topic command; additional help topic command is determined by the
+// fact that it is NOT runnable/hidden/deprecated, and has no sub commands that
+// are runnable/hidden/deprecated.
+// Concrete example: https://github.com/spf13/cobra/issues/393#issuecomment-282741924.
+func (c *Command) IsAdditionalHelpTopicCommand() bool {
+       // if a command is runnable, deprecated, or hidden it is not a 'help' command
+       if c.Runnable() || len(c.Deprecated) != 0 || c.Hidden {
+               return false
+       }
+
+       // if any non-help sub commands are found, the command is not a 'help' command
+       for _, sub := range c.commands {
+               if !sub.IsAdditionalHelpTopicCommand() {
+                       return false
+               }
+       }
+
+       // the command either has no sub commands, or no non-help sub commands
+       return true
+}
+
+// HasHelpSubCommands determines if a command has any available 'help' sub commands
+// that need to be shown in the usage/help default template under 'additional help
+// topics'.
+func (c *Command) HasHelpSubCommands() bool {
+       // return true on the first found available 'help' sub command
+       for _, sub := range c.commands {
+               if sub.IsAdditionalHelpTopicCommand() {
+                       return true
+               }
+       }
+
+       // the command either has no sub commands, or no available 'help' sub commands
+       return false
+}
+
+// HasAvailableSubCommands determines if a command has available sub commands that
+// need to be shown in the usage/help default template under 'available commands'.
+func (c *Command) HasAvailableSubCommands() bool {
+       // return true on the first found available (non deprecated/help/hidden)
+       // sub command
+       for _, sub := range c.commands {
+               if sub.IsAvailableCommand() {
+                       return true
+               }
+       }
+
+       // the command either has no sub commands, or no available (non deprecated/help/hidden)
+       // sub commands
+       return false
+}
+
+// HasParent determines if the command is a child command.
+func (c *Command) HasParent() bool {
+       return c.parent != nil
+}
+
+// GlobalNormalizationFunc returns the global normalization function or nil if it doesn't exist.
+func (c *Command) GlobalNormalizationFunc() func(f *flag.FlagSet, name string) flag.NormalizedName {
+       return c.globNormFunc
+}
+
+// Flags returns the complete FlagSet that applies
+// to this command (local and persistent declared here and by all parents).
+func (c *Command) Flags() *flag.FlagSet {
+       if c.flags == nil {
+               c.flags = flag.NewFlagSet(c.Name(), flag.ContinueOnError)
+               if c.flagErrorBuf == nil {
+                       c.flagErrorBuf = new(bytes.Buffer)
+               }
+               c.flags.SetOutput(c.flagErrorBuf)
+       }
+
+       return c.flags
+}
+
+// LocalNonPersistentFlags are flags specific to this command which will NOT persist to subcommands.
+func (c *Command) LocalNonPersistentFlags() *flag.FlagSet {
+       persistentFlags := c.PersistentFlags()
+
+       out := flag.NewFlagSet(c.Name(), flag.ContinueOnError)
+       c.LocalFlags().VisitAll(func(f *flag.Flag) {
+               if persistentFlags.Lookup(f.Name) == nil {
+                       out.AddFlag(f)
+               }
+       })
+       return out
+}
+
+// LocalFlags returns the local FlagSet specifically set in the current command.
+func (c *Command) LocalFlags() *flag.FlagSet {
+       c.mergePersistentFlags()
+
+       if c.lflags == nil {
+               c.lflags = flag.NewFlagSet(c.Name(), flag.ContinueOnError)
+               if c.flagErrorBuf == nil {
+                       c.flagErrorBuf = new(bytes.Buffer)
+               }
+               c.lflags.SetOutput(c.flagErrorBuf)
+       }
+       c.lflags.SortFlags = c.Flags().SortFlags
+       if c.globNormFunc != nil {
+               c.lflags.SetNormalizeFunc(c.globNormFunc)
+       }
+
+       addToLocal := func(f *flag.Flag) {
+               if c.lflags.Lookup(f.Name) == nil && c.parentsPflags.Lookup(f.Name) == nil {
+                       c.lflags.AddFlag(f)
+               }
+       }
+       c.Flags().VisitAll(addToLocal)
+       c.PersistentFlags().VisitAll(addToLocal)
+       return c.lflags
+}
+
+// InheritedFlags returns all flags which were inherited from parents commands.
+func (c *Command) InheritedFlags() *flag.FlagSet {
+       c.mergePersistentFlags()
+
+       if c.iflags == nil {
+               c.iflags = flag.NewFlagSet(c.Name(), flag.ContinueOnError)
+               if c.flagErrorBuf == nil {
+                       c.flagErrorBuf = new(bytes.Buffer)
+               }
+               c.iflags.SetOutput(c.flagErrorBuf)
+       }
+
+       local := c.LocalFlags()
+       if c.globNormFunc != nil {
+               c.iflags.SetNormalizeFunc(c.globNormFunc)
+       }
+
+       c.parentsPflags.VisitAll(func(f *flag.Flag) {
+               if c.iflags.Lookup(f.Name) == nil && local.Lookup(f.Name) == nil {
+                       c.iflags.AddFlag(f)
+               }
+       })
+       return c.iflags
+}
+
+// NonInheritedFlags returns all flags which were not inherited from parent commands.
+func (c *Command) NonInheritedFlags() *flag.FlagSet {
+       return c.LocalFlags()
+}
+
+// PersistentFlags returns the persistent FlagSet specifically set in the current command.
+func (c *Command) PersistentFlags() *flag.FlagSet {
+       if c.pflags == nil {
+               c.pflags = flag.NewFlagSet(c.Name(), flag.ContinueOnError)
+               if c.flagErrorBuf == nil {
+                       c.flagErrorBuf = new(bytes.Buffer)
+               }
+               c.pflags.SetOutput(c.flagErrorBuf)
+       }
+       return c.pflags
+}
+
+// ResetFlags deletes all flags from command.
+func (c *Command) ResetFlags() {
+       c.flagErrorBuf = new(bytes.Buffer)
+       c.flagErrorBuf.Reset()
+       c.flags = flag.NewFlagSet(c.Name(), flag.ContinueOnError)
+       c.flags.SetOutput(c.flagErrorBuf)
+       c.pflags = flag.NewFlagSet(c.Name(), flag.ContinueOnError)
+       c.pflags.SetOutput(c.flagErrorBuf)
+
+       c.lflags = nil
+       c.iflags = nil
+       c.parentsPflags = nil
+}
+
+// HasFlags checks if the command contains any flags (local plus persistent from the entire structure).
+func (c *Command) HasFlags() bool {
+       return c.Flags().HasFlags()
+}
+
+// HasPersistentFlags checks if the command contains persistent flags.
+func (c *Command) HasPersistentFlags() bool {
+       return c.PersistentFlags().HasFlags()
+}
+
+// HasLocalFlags checks if the command has flags specifically declared locally.
+func (c *Command) HasLocalFlags() bool {
+       return c.LocalFlags().HasFlags()
+}
+
+// HasInheritedFlags checks if the command has flags inherited from its parent command.
+func (c *Command) HasInheritedFlags() bool {
+       return c.InheritedFlags().HasFlags()
+}
+
+// HasAvailableFlags checks if the command contains any flags (local plus persistent from the entire
+// structure) which are not hidden or deprecated.
+func (c *Command) HasAvailableFlags() bool {
+       return c.Flags().HasAvailableFlags()
+}
+
+// HasAvailablePersistentFlags checks if the command contains persistent flags which are not hidden or deprecated.
+func (c *Command) HasAvailablePersistentFlags() bool {
+       return c.PersistentFlags().HasAvailableFlags()
+}
+
+// HasAvailableLocalFlags checks if the command has flags specifically declared locally which are not hidden
+// or deprecated.
+func (c *Command) HasAvailableLocalFlags() bool {
+       return c.LocalFlags().HasAvailableFlags()
+}
+
+// HasAvailableInheritedFlags checks if the command has flags inherited from its parent command which are
+// not hidden or deprecated.
+func (c *Command) HasAvailableInheritedFlags() bool {
+       return c.InheritedFlags().HasAvailableFlags()
+}
+
+// Flag climbs up the command tree looking for matching flag.
+func (c *Command) Flag(name string) (flag *flag.Flag) {
+       flag = c.Flags().Lookup(name)
+
+       if flag == nil {
+               flag = c.persistentFlag(name)
+       }
+
+       return
+}
+
+// Recursively find matching persistent flag.
+func (c *Command) persistentFlag(name string) (flag *flag.Flag) {
+       if c.HasPersistentFlags() {
+               flag = c.PersistentFlags().Lookup(name)
+       }
+
+       if flag == nil {
+               c.updateParentsPflags()
+               flag = c.parentsPflags.Lookup(name)
+       }
+       return
+}
+
+// ParseFlags parses persistent flag tree and local flags.
+func (c *Command) ParseFlags(args []string) error {
+       if c.DisableFlagParsing {
+               return nil
+       }
+
+       if c.flagErrorBuf == nil {
+               c.flagErrorBuf = new(bytes.Buffer)
+       }
+       beforeErrorBufLen := c.flagErrorBuf.Len()
+       c.mergePersistentFlags()
+
+       //do it here after merging all flags and just before parse
+       c.Flags().ParseErrorsWhitelist = flag.ParseErrorsWhitelist(c.FParseErrWhitelist)
+
+       err := c.Flags().Parse(args)
+       // Print warnings if they occurred (e.g. deprecated flag messages).
+       if c.flagErrorBuf.Len()-beforeErrorBufLen > 0 && err == nil {
+               c.Print(c.flagErrorBuf.String())
+       }
+
+       return err
+}
+
+// Parent returns a commands parent command.
+func (c *Command) Parent() *Command {
+       return c.parent
+}
+
+// mergePersistentFlags merges c.PersistentFlags() to c.Flags()
+// and adds missing persistent flags of all parents.
+func (c *Command) mergePersistentFlags() {
+       c.updateParentsPflags()
+       c.Flags().AddFlagSet(c.PersistentFlags())
+       c.Flags().AddFlagSet(c.parentsPflags)
+}
+
+// updateParentsPflags updates c.parentsPflags by adding
+// new persistent flags of all parents.
+// If c.parentsPflags == nil, it makes new.
+func (c *Command) updateParentsPflags() {
+       if c.parentsPflags == nil {
+               c.parentsPflags = flag.NewFlagSet(c.Name(), flag.ContinueOnError)
+               c.parentsPflags.SetOutput(c.flagErrorBuf)
+               c.parentsPflags.SortFlags = false
+       }
+
+       if c.globNormFunc != nil {
+               c.parentsPflags.SetNormalizeFunc(c.globNormFunc)
+       }
+
+       c.Root().PersistentFlags().AddFlagSet(flag.CommandLine)
+
+       c.VisitParents(func(parent *Command) {
+               c.parentsPflags.AddFlagSet(parent.PersistentFlags())
+       })
+}
diff --git a/vendor/github.com/spf13/cobra/command_notwin.go b/vendor/github.com/spf13/cobra/command_notwin.go
new file mode 100644 (file)
index 0000000..6159c1c
--- /dev/null
@@ -0,0 +1,5 @@
+// +build !windows
+
+package cobra
+
+var preExecHookFn func(*Command)
diff --git a/vendor/github.com/spf13/cobra/command_win.go b/vendor/github.com/spf13/cobra/command_win.go
new file mode 100644 (file)
index 0000000..edec728
--- /dev/null
@@ -0,0 +1,20 @@
+// +build windows
+
+package cobra
+
+import (
+       "os"
+       "time"
+
+       "github.com/inconshreveable/mousetrap"
+)
+
+var preExecHookFn = preExecHook
+
+func preExecHook(c *Command) {
+       if MousetrapHelpText != "" && mousetrap.StartedByExplorer() {
+               c.Print(MousetrapHelpText)
+               time.Sleep(5 * time.Second)
+               os.Exit(1)
+       }
+}
diff --git a/vendor/github.com/spf13/cobra/zsh_completions.go b/vendor/github.com/spf13/cobra/zsh_completions.go
new file mode 100644 (file)
index 0000000..889c22e
--- /dev/null
@@ -0,0 +1,126 @@
+package cobra
+
+import (
+       "bytes"
+       "fmt"
+       "io"
+       "os"
+       "strings"
+)
+
+// GenZshCompletionFile generates zsh completion file.
+func (c *Command) GenZshCompletionFile(filename string) error {
+       outFile, err := os.Create(filename)
+       if err != nil {
+               return err
+       }
+       defer outFile.Close()
+
+       return c.GenZshCompletion(outFile)
+}
+
+// GenZshCompletion generates a zsh completion file and writes to the passed writer.
+func (c *Command) GenZshCompletion(w io.Writer) error {
+       buf := new(bytes.Buffer)
+
+       writeHeader(buf, c)
+       maxDepth := maxDepth(c)
+       writeLevelMapping(buf, maxDepth)
+       writeLevelCases(buf, maxDepth, c)
+
+       _, err := buf.WriteTo(w)
+       return err
+}
+
+func writeHeader(w io.Writer, cmd *Command) {
+       fmt.Fprintf(w, "#compdef %s\n\n", cmd.Name())
+}
+
+func maxDepth(c *Command) int {
+       if len(c.Commands()) == 0 {
+               return 0
+       }
+       maxDepthSub := 0
+       for _, s := range c.Commands() {
+               subDepth := maxDepth(s)
+               if subDepth > maxDepthSub {
+                       maxDepthSub = subDepth
+               }
+       }
+       return 1 + maxDepthSub
+}
+
+func writeLevelMapping(w io.Writer, numLevels int) {
+       fmt.Fprintln(w, `_arguments \`)
+       for i := 1; i <= numLevels; i++ {
+               fmt.Fprintf(w, `  '%d: :->level%d' \`, i, i)
+               fmt.Fprintln(w)
+       }
+       fmt.Fprintf(w, `  '%d: :%s'`, numLevels+1, "_files")
+       fmt.Fprintln(w)
+}
+
+func writeLevelCases(w io.Writer, maxDepth int, root *Command) {
+       fmt.Fprintln(w, "case $state in")
+       defer fmt.Fprintln(w, "esac")
+
+       for i := 1; i <= maxDepth; i++ {
+               fmt.Fprintf(w, "  level%d)\n", i)
+               writeLevel(w, root, i)
+               fmt.Fprintln(w, "  ;;")
+       }
+       fmt.Fprintln(w, "  *)")
+       fmt.Fprintln(w, "    _arguments '*: :_files'")
+       fmt.Fprintln(w, "  ;;")
+}
+
+func writeLevel(w io.Writer, root *Command, i int) {
+       fmt.Fprintf(w, "    case $words[%d] in\n", i)
+       defer fmt.Fprintln(w, "    esac")
+
+       commands := filterByLevel(root, i)
+       byParent := groupByParent(commands)
+
+       for p, c := range byParent {
+               names := names(c)
+               fmt.Fprintf(w, "      %s)\n", p)
+               fmt.Fprintf(w, "        _arguments '%d: :(%s)'\n", i, strings.Join(names, " "))
+               fmt.Fprintln(w, "      ;;")
+       }
+       fmt.Fprintln(w, "      *)")
+       fmt.Fprintln(w, "        _arguments '*: :_files'")
+       fmt.Fprintln(w, "      ;;")
+
+}
+
+func filterByLevel(c *Command, l int) []*Command {
+       cs := make([]*Command, 0)
+       if l == 0 {
+               cs = append(cs, c)
+               return cs
+       }
+       for _, s := range c.Commands() {
+               cs = append(cs, filterByLevel(s, l-1)...)
+       }
+       return cs
+}
+
+func groupByParent(commands []*Command) map[string][]*Command {
+       m := make(map[string][]*Command)
+       for _, c := range commands {
+               parent := c.Parent()
+               if parent == nil {
+                       continue
+               }
+               m[parent.Name()] = append(m[parent.Name()], c)
+       }
+       return m
+}
+
+func names(commands []*Command) []string {
+       ns := make([]string, len(commands))
+       for i, c := range commands {
+               ns[i] = c.Name()
+       }
+       return ns
+}
diff --git a/vendor/github.com/spf13/pflag/LICENSE b/vendor/github.com/spf13/pflag/LICENSE
new file mode 100644 (file)
index 0000000..63ed1cf
--- /dev/null
@@ -0,0 +1,28 @@
+Copyright (c) 2012 Alex Ogier. All rights reserved.
+Copyright (c) 2012 The Go Authors. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+   * Redistributions of source code must retain the above copyright
+notice, this list of conditions and the following disclaimer.
+   * Redistributions in binary form must reproduce the above
+copyright notice, this list of conditions and the following disclaimer
+in the documentation and/or other materials provided with the
+distribution.
+   * Neither the name of Google Inc. nor the names of its
+contributors may be used to endorse or promote products derived from
+this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/vendor/github.com/spf13/pflag/README.md b/vendor/github.com/spf13/pflag/README.md
new file mode 100644 (file)
index 0000000..b052414
--- /dev/null
@@ -0,0 +1,296 @@
+[![Build Status](https://travis-ci.org/spf13/pflag.svg?branch=master)](https://travis-ci.org/spf13/pflag)
+[![Go Report Card](https://goreportcard.com/badge/github.com/spf13/pflag)](https://goreportcard.com/report/github.com/spf13/pflag)
+[![GoDoc](https://godoc.org/github.com/spf13/pflag?status.svg)](https://godoc.org/github.com/spf13/pflag)
+
+## Description
+
+pflag is a drop-in replacement for Go's flag package, implementing
+POSIX/GNU-style --flags.
+
+pflag is compatible with the [GNU extensions to the POSIX recommendations
+for command-line options][1]. For a more precise description, see the
+"Command-line flag syntax" section below.
+
+[1]: http://www.gnu.org/software/libc/manual/html_node/Argument-Syntax.html
+
+pflag is available under the same style of BSD license as the Go language,
+which can be found in the LICENSE file.
+
+## Installation
+
+pflag is available using the standard `go get` command.
+
+Install by running:
+
+    go get github.com/spf13/pflag
+
+Run tests by running:
+
+    go test github.com/spf13/pflag
+
+## Usage
+
+pflag is a drop-in replacement of Go's native flag package. If you import
+pflag under the name "flag" then all code should continue to function
+with no changes.
+
+``` go
+import flag "github.com/spf13/pflag"
+```
+
+There is one exception to this: if you directly instantiate the Flag struct
+there is one more field "Shorthand" that you will need to set.
+Most code never instantiates this struct directly, and instead uses
+functions such as String(), BoolVar(), and Var(), and is therefore
+unaffected.
+
+Define flags using flag.String(), Bool(), Int(), etc.
+
+This declares an integer flag, -flagname, stored in the pointer ip, with type *int.
+
+``` go
+var ip *int = flag.Int("flagname", 1234, "help message for flagname")
+```
+
+If you like, you can bind the flag to a variable using the Var() functions.
+
+``` go
+var flagvar int
+func init() {
+    flag.IntVar(&flagvar, "flagname", 1234, "help message for flagname")
+}
+```
+
+Or you can create custom flags that satisfy the Value interface (with
+pointer receivers) and couple them to flag parsing by
+
+``` go
+flag.Var(&flagVal, "name", "help message for flagname")
+```
+
+For such flags, the default value is just the initial value of the variable.
+
+After all flags are defined, call
+
+``` go
+flag.Parse()
+```
+
+to parse the command line into the defined flags.
+
+Flags may then be used directly. If you're using the flags themselves,
+they are all pointers; if you bind to variables, they're values.
+
+``` go
+fmt.Println("ip has value ", *ip)
+fmt.Println("flagvar has value ", flagvar)
+```
+
+There are helpers function to get values later if you have the FlagSet but
+it was difficult to keep up with all of the flag pointers in your code.
+If you have a pflag.FlagSet with a flag called 'flagname' of type int you
+can use GetInt() to get the int value. But notice that 'flagname' must exist
+and it must be an int. GetString("flagname") will fail.
+
+``` go
+i, err := flagset.GetInt("flagname")
+```
+
+After parsing, the arguments after the flag are available as the
+slice flag.Args() or individually as flag.Arg(i).
+The arguments are indexed from 0 through flag.NArg()-1.
+
+The pflag package also defines some new functions that are not in flag,
+that give one-letter shorthands for flags. You can use these by appending
+'P' to the name of any function that defines a flag.
+
+``` go
+var ip = flag.IntP("flagname", "f", 1234, "help message")
+var flagvar bool
+func init() {
+       flag.BoolVarP(&flagvar, "boolname", "b", true, "help message")
+}
+flag.VarP(&flagVal, "varname", "v", "help message")
+```
+
+Shorthand letters can be used with single dashes on the command line.
+Boolean shorthand flags can be combined with other shorthand flags.
+
+The default set of command-line flags is controlled by
+top-level functions.  The FlagSet type allows one to define
+independent sets of flags, such as to implement subcommands
+in a command-line interface. The methods of FlagSet are
+analogous to the top-level functions for the command-line
+flag set.
+
+## Setting no option default values for flags
+
+After you create a flag it is possible to set the pflag.NoOptDefVal for
+the given flag. Doing this changes the meaning of the flag slightly. If
+a flag has a NoOptDefVal and the flag is set on the command line without
+an option the flag will be set to the NoOptDefVal. For example given:
+
+``` go
+var ip = flag.IntP("flagname", "f", 1234, "help message")
+flag.Lookup("flagname").NoOptDefVal = "4321"
+```
+
+Would result in something like
+
+| Parsed Arguments | Resulting Value |
+| -------------    | -------------   |
+| --flagname=1357  | ip=1357         |
+| --flagname       | ip=4321         |
+| [nothing]        | ip=1234         |
+
+## Command line flag syntax
+
+```
+--flag    // boolean flags, or flags with no option default values
+--flag x  // only on flags without a default value
+--flag=x
+```
+
+Unlike the flag package, a single dash before an option means something
+different than a double dash. Single dashes signify a series of shorthand
+letters for flags. All but the last shorthand letter must be boolean flags
+or a flag with a default value
+
+```
+// boolean or flags where the 'no option default value' is set
+-f
+-f=true
+-abc
+but
+-b true is INVALID
+
+// non-boolean and flags without a 'no option default value'
+-n 1234
+-n=1234
+-n1234
+
+// mixed
+-abcs "hello"
+-absd="hello"
+-abcs1234
+```
+
+Flag parsing stops after the terminator "--". Unlike the flag package,
+flags can be interspersed with arguments anywhere on the command line
+before this terminator.
+
+Integer flags accept 1234, 0664, 0x1234 and may be negative.
+Boolean flags (in their long form) accept 1, 0, t, f, true, false,
+TRUE, FALSE, True, False.
+Duration flags accept any input valid for time.ParseDuration.
+
+## Mutating or "Normalizing" Flag names
+
+It is possible to set a custom flag name 'normalization function.' It allows flag names to be mutated both when created in the code and when used on the command line to some 'normalized' form. The 'normalized' form is used for comparison. Two examples of using the custom normalization func follow.
+
+**Example #1**: You want -, _, and . in flags to compare the same. aka --my-flag == --my_flag == --my.flag
+
+``` go
+func wordSepNormalizeFunc(f *pflag.FlagSet, name string) pflag.NormalizedName {
+       from := []string{"-", "_"}
+       to := "."
+       for _, sep := range from {
+               name = strings.Replace(name, sep, to, -1)
+       }
+       return pflag.NormalizedName(name)
+}
+
+myFlagSet.SetNormalizeFunc(wordSepNormalizeFunc)
+```
+
+**Example #2**: You want to alias two flags. aka --old-flag-name == --new-flag-name
+
+``` go
+func aliasNormalizeFunc(f *pflag.FlagSet, name string) pflag.NormalizedName {
+       switch name {
+       case "old-flag-name":
+               name = "new-flag-name"
+               break
+       }
+       return pflag.NormalizedName(name)
+}
+
+myFlagSet.SetNormalizeFunc(aliasNormalizeFunc)
+```
+
+## Deprecating a flag or its shorthand
+It is possible to deprecate a flag, or just its shorthand. Deprecating a flag/shorthand hides it from help text and prints a usage message when the deprecated flag/shorthand is used.
+
+**Example #1**: You want to deprecate a flag named "badflag" as well as inform the users what flag they should use instead.
+```go
+// deprecate a flag by specifying its name and a usage message
+flags.MarkDeprecated("badflag", "please use --good-flag instead")
+```
+This hides "badflag" from help text, and prints `Flag --badflag has been deprecated, please use --good-flag instead` when "badflag" is used.
+
+**Example #2**: You want to keep a flag name "noshorthandflag" but deprecate its shortname "n".
+```go
+// deprecate a flag shorthand by specifying its flag name and a usage message
+flags.MarkShorthandDeprecated("noshorthandflag", "please use --noshorthandflag only")
+```
+This hides the shortname "n" from help text, and prints `Flag shorthand -n has been deprecated, please use --noshorthandflag only` when the shorthand "n" is used.
+
+Note that usage message is essential here, and it should not be empty.
+
+## Hidden flags
+It is possible to mark a flag as hidden, meaning it will still function as normal, however will not show up in usage/help text.
+
+**Example**: You have a flag named "secretFlag" that you need for internal use only and don't want it showing up in help text, or for its usage text to be available.
+```go
+// hide a flag by specifying its name
+flags.MarkHidden("secretFlag")
+```
+
+## Disable sorting of flags
+`pflag` allows you to disable sorting of flags for help and usage message.
+
+**Example**:
+```go
+flags.BoolP("verbose", "v", false, "verbose output")
+flags.String("coolflag", "yeaah", "it's really cool flag")
+flags.Int("usefulflag", 777, "sometimes it's very useful")
+flags.SortFlags = false
+flags.PrintDefaults()
+```
+**Output**:
+```
+  -v, --verbose           verbose output
+      --coolflag string   it's really cool flag (default "yeaah")
+      --usefulflag int    sometimes it's very useful (default 777)
+```
+
+
+## Supporting Go flags when using pflag
+In order to support flags defined using Go's `flag` package, they must be added to the `pflag` flagset. This is usually necessary
+to support flags defined by third-party dependencies (e.g. `golang/glog`).
+
+**Example**: You want to add the Go flags to the `CommandLine` flagset
+```go
+import (
+       goflag "flag"
+       flag "github.com/spf13/pflag"
+)
+
+var ip *int = flag.Int("flagname", 1234, "help message for flagname")
+
+func main() {
+       flag.CommandLine.AddGoFlagSet(goflag.CommandLine)
+       flag.Parse()
+}
+```
+
+## More info
+
+You can see the full reference documentation of the pflag package
+[at godoc.org][3], or through go's standard documentation system by
+running `godoc -http=:6060` and browsing to
+[http://localhost:6060/pkg/github.com/spf13/pflag][2] after
+installation.
+
+[2]: http://localhost:6060/pkg/github.com/spf13/pflag
+[3]: http://godoc.org/github.com/spf13/pflag
diff --git a/vendor/github.com/spf13/pflag/bool.go b/vendor/github.com/spf13/pflag/bool.go
new file mode 100644 (file)
index 0000000..c4c5c0b
--- /dev/null
@@ -0,0 +1,94 @@
+package pflag
+
+import "strconv"
+
+// optional interface to indicate boolean flags that can be
+// supplied without "=value" text
+type boolFlag interface {
+       Value
+       IsBoolFlag() bool
+}
+
+// -- bool Value
+type boolValue bool
+
+func newBoolValue(val bool, p *bool) *boolValue {
+       *p = val
+       return (*boolValue)(p)
+}
+
+func (b *boolValue) Set(s string) error {
+       v, err := strconv.ParseBool(s)
+       *b = boolValue(v)
+       return err
+}
+
+func (b *boolValue) Type() string {
+       return "bool"
+}
+
+func (b *boolValue) String() string { return strconv.FormatBool(bool(*b)) }
+
+func (b *boolValue) IsBoolFlag() bool { return true }
+
+func boolConv(sval string) (interface{}, error) {
+       return strconv.ParseBool(sval)
+}
+
+// GetBool return the bool value of a flag with the given name
+func (f *FlagSet) GetBool(name string) (bool, error) {
+       val, err := f.getFlagType(name, "bool", boolConv)
+       if err != nil {
+               return false, err
+       }
+       return val.(bool), nil
+}
+
+// BoolVar defines a bool flag with specified name, default value, and usage string.
+// The argument p points to a bool variable in which to store the value of the flag.
+func (f *FlagSet) BoolVar(p *bool, name string, value bool, usage string) {
+       f.BoolVarP(p, name, "", value, usage)
+}
+
+// BoolVarP is like BoolVar, but accepts a shorthand letter that can be used after a single dash.
+func (f *FlagSet) BoolVarP(p *bool, name, shorthand string, value bool, usage string) {
+       flag := f.VarPF(newBoolValue(value, p), name, shorthand, usage)
+       flag.NoOptDefVal = "true"
+}
+
+// BoolVar defines a bool flag with specified name, default value, and usage string.
+// The argument p points to a bool variable in which to store the value of the flag.
+func BoolVar(p *bool, name string, value bool, usage string) {
+       BoolVarP(p, name, "", value, usage)
+}
+
+// BoolVarP is like BoolVar, but accepts a shorthand letter that can be used after a single dash.
+func BoolVarP(p *bool, name, shorthand string, value bool, usage string) {
+       flag := CommandLine.VarPF(newBoolValue(value, p), name, shorthand, usage)
+       flag.NoOptDefVal = "true"
+}
+
+// Bool defines a bool flag with specified name, default value, and usage string.
+// The return value is the address of a bool variable that stores the value of the flag.
+func (f *FlagSet) Bool(name string, value bool, usage string) *bool {
+       return f.BoolP(name, "", value, usage)
+}
+
+// BoolP is like Bool, but accepts a shorthand letter that can be used after a single dash.
+func (f *FlagSet) BoolP(name, shorthand string, value bool, usage string) *bool {
+       p := new(bool)
+       f.BoolVarP(p, name, shorthand, value, usage)
+       return p
+}
+
+// Bool defines a bool flag with specified name, default value, and usage string.
+// The return value is the address of a bool variable that stores the value of the flag.
+func Bool(name string, value bool, usage string) *bool {
+       return BoolP(name, "", value, usage)
+}
+
+// BoolP is like Bool, but accepts a shorthand letter that can be used after a single dash.
+func BoolP(name, shorthand string, value bool, usage string) *bool {
+       b := CommandLine.BoolP(name, shorthand, value, usage)
+       return b
+}
diff --git a/vendor/github.com/spf13/pflag/bool_slice.go b/vendor/github.com/spf13/pflag/bool_slice.go
new file mode 100644 (file)
index 0000000..5af02f1
--- /dev/null
@@ -0,0 +1,147 @@
+package pflag
+
+import (
+       "io"
+       "strconv"
+       "strings"
+)
+
+// -- boolSlice Value
+type boolSliceValue struct {
+       value   *[]bool
+       changed bool
+}
+
+func newBoolSliceValue(val []bool, p *[]bool) *boolSliceValue {
+       bsv := new(boolSliceValue)
+       bsv.value = p
+       *bsv.value = val
+       return bsv
+}
+
+// Set converts, and assigns, the comma-separated boolean argument string representation as the []bool value of this flag.
+// If Set is called on a flag that already has a []bool assigned, the newly converted values will be appended.
+func (s *boolSliceValue) Set(val string) error {
+
+       // remove all quote characters
+       rmQuote := strings.NewReplacer(`"`, "", `'`, "", "`", "")
+
+       // read flag arguments with CSV parser
+       boolStrSlice, err := readAsCSV(rmQuote.Replace(val))
+       if err != nil && err != io.EOF {
+               return err
+       }
+
+       // parse boolean values into slice
+       out := make([]bool, 0, len(boolStrSlice))
+       for _, boolStr := range boolStrSlice {
+               b, err := strconv.ParseBool(strings.TrimSpace(boolStr))
+               if err != nil {
+                       return err
+               }
+               out = append(out, b)
+       }
+
+       if !s.changed {
+               *s.value = out
+       } else {
+               *s.value = append(*s.value, out...)
+       }
+
+       s.changed = true
+
+       return nil
+}
+
+// Type returns a string that uniquely represents this flag's type.
+func (s *boolSliceValue) Type() string {
+       return "boolSlice"
+}
+
+// String defines a "native" format for this boolean slice flag value.
+func (s *boolSliceValue) String() string {
+
+       boolStrSlice := make([]string, len(*s.value))
+       for i, b := range *s.value {
+               boolStrSlice[i] = strconv.FormatBool(b)
+       }
+
+       out, _ := writeAsCSV(boolStrSlice)
+
+       return "[" + out + "]"
+}
+
+func boolSliceConv(val string) (interface{}, error) {
+       val = strings.Trim(val, "[]")
+       // Empty string would cause a slice with one (empty) entry
+       if len(val) == 0 {
+               return []bool{}, nil
+       }
+       ss := strings.Split(val, ",")
+       out := make([]bool, len(ss))
+       for i, t := range ss {
+               var err error
+               out[i], err = strconv.ParseBool(t)
+               if err != nil {
+                       return nil, err
+               }
+       }
+       return out, nil
+}
+
+// GetBoolSlice returns the []bool value of a flag with the given name.
+func (f *FlagSet) GetBoolSlice(name string) ([]bool, error) {
+       val, err := f.getFlagType(name, "boolSlice", boolSliceConv)
+       if err != nil {
+               return []bool{}, err
+       }
+       return val.([]bool), nil
+}
+
+// BoolSliceVar defines a boolSlice flag with specified name, default value, and usage string.
+// The argument p points to a []bool variable in which to store the value of the flag.
+func (f *FlagSet) BoolSliceVar(p *[]bool, name string, value []bool, usage string) {
+       f.VarP(newBoolSliceValue(value, p), name, "", usage)
+}
+
+// BoolSliceVarP is like BoolSliceVar, but accepts a shorthand letter that can be used after a single dash.
+func (f *FlagSet) BoolSliceVarP(p *[]bool, name, shorthand string, value []bool, usage string) {
+       f.VarP(newBoolSliceValue(value, p), name, shorthand, usage)
+}
+
+// BoolSliceVar defines a []bool flag with specified name, default value, and usage string.
+// The argument p points to a []bool variable in which to store the value of the flag.
+func BoolSliceVar(p *[]bool, name string, value []bool, usage string) {
+       CommandLine.VarP(newBoolSliceValue(value, p), name, "", usage)
+}
+
+// BoolSliceVarP is like BoolSliceVar, but accepts a shorthand letter that can be used after a single dash.
+func BoolSliceVarP(p *[]bool, name, shorthand string, value []bool, usage string) {
+       CommandLine.VarP(newBoolSliceValue(value, p), name, shorthand, usage)
+}
+
+// BoolSlice defines a []bool flag with specified name, default value, and usage string.
+// The return value is the address of a []bool variable that stores the value of the flag.
+func (f *FlagSet) BoolSlice(name string, value []bool, usage string) *[]bool {
+       p := []bool{}
+       f.BoolSliceVarP(&p, name, "", value, usage)
+       return &p
+}
+
+// BoolSliceP is like BoolSlice, but accepts a shorthand letter that can be used after a single dash.
+func (f *FlagSet) BoolSliceP(name, shorthand string, value []bool, usage string) *[]bool {
+       p := []bool{}
+       f.BoolSliceVarP(&p, name, shorthand, value, usage)
+       return &p
+}
+
+// BoolSlice defines a []bool flag with specified name, default value, and usage string.
+// The return value is the address of a []bool variable that stores the value of the flag.
+func BoolSlice(name string, value []bool, usage string) *[]bool {
+       return CommandLine.BoolSliceP(name, "", value, usage)
+}
+
+// BoolSliceP is like BoolSlice, but accepts a shorthand letter that can be used after a single dash.
+func BoolSliceP(name, shorthand string, value []bool, usage string) *[]bool {
+       return CommandLine.BoolSliceP(name, shorthand, value, usage)
+}
diff --git a/vendor/github.com/spf13/pflag/bytes.go b/vendor/github.com/spf13/pflag/bytes.go
new file mode 100644 (file)
index 0000000..67d5304
--- /dev/null
@@ -0,0 +1,209 @@
+package pflag
+
+import (
+       "encoding/base64"
+       "encoding/hex"
+       "fmt"
+       "strings"
+)
+
+// BytesHex adapts []byte for use as a flag. Value of flag is HEX encoded
+type bytesHexValue []byte
+
+// String implements pflag.Value.String.
+func (bytesHex bytesHexValue) String() string {
+       return fmt.Sprintf("%X", []byte(bytesHex))
+}
+
+// Set implements pflag.Value.Set.
+func (bytesHex *bytesHexValue) Set(value string) error {
+       bin, err := hex.DecodeString(strings.TrimSpace(value))
+
+       if err != nil {
+               return err
+       }
+
+       *bytesHex = bin
+
+       return nil
+}
+
+// Type implements pflag.Value.Type.
+func (*bytesHexValue) Type() string {
+       return "bytesHex"
+}
+
+func newBytesHexValue(val []byte, p *[]byte) *bytesHexValue {
+       *p = val
+       return (*bytesHexValue)(p)
+}
+
+func bytesHexConv(sval string) (interface{}, error) {
+
+       bin, err := hex.DecodeString(sval)
+
+       if err == nil {
+               return bin, nil
+       }
+
+       return nil, fmt.Errorf("invalid string being converted to Bytes: %s %s", sval, err)
+}
+
+// GetBytesHex return the []byte value of a flag with the given name
+func (f *FlagSet) GetBytesHex(name string) ([]byte, error) {
+       val, err := f.getFlagType(name, "bytesHex", bytesHexConv)
+
+       if err != nil {
+               return []byte{}, err
+       }
+
+       return val.([]byte), nil
+}
+
+// BytesHexVar defines an []byte flag with specified name, default value, and usage string.
+// The argument p points to an []byte variable in which to store the value of the flag.
+func (f *FlagSet) BytesHexVar(p *[]byte, name string, value []byte, usage string) {
+       f.VarP(newBytesHexValue(value, p), name, "", usage)
+}
+
+// BytesHexVarP is like BytesHexVar, but accepts a shorthand letter that can be used after a single dash.
+func (f *FlagSet) BytesHexVarP(p *[]byte, name, shorthand string, value []byte, usage string) {
+       f.VarP(newBytesHexValue(value, p), name, shorthand, usage)
+}
+
+// BytesHexVar defines an []byte flag with specified name, default value, and usage string.
+// The argument p points to an []byte variable in which to store the value of the flag.
+func BytesHexVar(p *[]byte, name string, value []byte, usage string) {
+       CommandLine.VarP(newBytesHexValue(value, p), name, "", usage)
+}
+
+// BytesHexVarP is like BytesHexVar, but accepts a shorthand letter that can be used after a single dash.
+func BytesHexVarP(p *[]byte, name, shorthand string, value []byte, usage string) {
+       CommandLine.VarP(newBytesHexValue(value, p), name, shorthand, usage)
+}
+
+// BytesHex defines an []byte flag with specified name, default value, and usage string.
+// The return value is the address of an []byte variable that stores the value of the flag.
+func (f *FlagSet) BytesHex(name string, value []byte, usage string) *[]byte {
+       p := new([]byte)
+       f.BytesHexVarP(p, name, "", value, usage)
+       return p
+}
+
+// BytesHexP is like BytesHex, but accepts a shorthand letter that can be used after a single dash.
+func (f *FlagSet) BytesHexP(name, shorthand string, value []byte, usage string) *[]byte {
+       p := new([]byte)
+       f.BytesHexVarP(p, name, shorthand, value, usage)
+       return p
+}
+
+// BytesHex defines an []byte flag with specified name, default value, and usage string.
+// The return value is the address of an []byte variable that stores the value of the flag.
+func BytesHex(name string, value []byte, usage string) *[]byte {
+       return CommandLine.BytesHexP(name, "", value, usage)
+}
+
+// BytesHexP is like BytesHex, but accepts a shorthand letter that can be used after a single dash.
+func BytesHexP(name, shorthand string, value []byte, usage string) *[]byte {
+       return CommandLine.BytesHexP(name, shorthand, value, usage)
+}
+
+// BytesBase64 adapts []byte for use as a flag. Value of flag is Base64 encoded
+type bytesBase64Value []byte
+
+// String implements pflag.Value.String.
+func (bytesBase64 bytesBase64Value) String() string {
+       return base64.StdEncoding.EncodeToString([]byte(bytesBase64))
+}
+
+// Set implements pflag.Value.Set.
+func (bytesBase64 *bytesBase64Value) Set(value string) error {
+       bin, err := base64.StdEncoding.DecodeString(strings.TrimSpace(value))
+
+       if err != nil {
+               return err
+       }
+
+       *bytesBase64 = bin
+
+       return nil
+}
+
+// Type implements pflag.Value.Type.
+func (*bytesBase64Value) Type() string {
+       return "bytesBase64"
+}
+
+func newBytesBase64Value(val []byte, p *[]byte) *bytesBase64Value {
+       *p = val
+       return (*bytesBase64Value)(p)
+}
+
+func bytesBase64ValueConv(sval string) (interface{}, error) {
+
+       bin, err := base64.StdEncoding.DecodeString(sval)
+       if err == nil {
+               return bin, nil
+       }
+
+       return nil, fmt.Errorf("invalid string being converted to Bytes: %s %s", sval, err)
+}
+
+// GetBytesBase64 return the []byte value of a flag with the given name
+func (f *FlagSet) GetBytesBase64(name string) ([]byte, error) {
+       val, err := f.getFlagType(name, "bytesBase64", bytesBase64ValueConv)
+
+       if err != nil {
+               return []byte{}, err
+       }
+
+       return val.([]byte), nil
+}
+
+// BytesBase64Var defines an []byte flag with specified name, default value, and usage string.
+// The argument p points to an []byte variable in which to store the value of the flag.
+func (f *FlagSet) BytesBase64Var(p *[]byte, name string, value []byte, usage string) {
+       f.VarP(newBytesBase64Value(value, p), name, "", usage)
+}
+
+// BytesBase64VarP is like BytesBase64Var, but accepts a shorthand letter that can be used after a single dash.
+func (f *FlagSet) BytesBase64VarP(p *[]byte, name, shorthand string, value []byte, usage string) {
+       f.VarP(newBytesBase64Value(value, p), name, shorthand, usage)
+}
+
+// BytesBase64Var defines an []byte flag with specified name, default value, and usage string.
+// The argument p points to an []byte variable in which to store the value of the flag.
+func BytesBase64Var(p *[]byte, name string, value []byte, usage string) {
+       CommandLine.VarP(newBytesBase64Value(value, p), name, "", usage)
+}
+
+// BytesBase64VarP is like BytesBase64Var, but accepts a shorthand letter that can be used after a single dash.
+func BytesBase64VarP(p *[]byte, name, shorthand string, value []byte, usage string) {
+       CommandLine.VarP(newBytesBase64Value(value, p), name, shorthand, usage)
+}
+
+// BytesBase64 defines an []byte flag with specified name, default value, and usage string.
+// The return value is the address of an []byte variable that stores the value of the flag.
+func (f *FlagSet) BytesBase64(name string, value []byte, usage string) *[]byte {
+       p := new([]byte)
+       f.BytesBase64VarP(p, name, "", value, usage)
+       return p
+}
+
+// BytesBase64P is like BytesBase64, but accepts a shorthand letter that can be used after a single dash.
+func (f *FlagSet) BytesBase64P(name, shorthand string, value []byte, usage string) *[]byte {
+       p := new([]byte)
+       f.BytesBase64VarP(p, name, shorthand, value, usage)
+       return p
+}
+
+// BytesBase64 defines an []byte flag with specified name, default value, and usage string.
+// The return value is the address of an []byte variable that stores the value of the flag.
+func BytesBase64(name string, value []byte, usage string) *[]byte {
+       return CommandLine.BytesBase64P(name, "", value, usage)
+}
+
+// BytesBase64P is like BytesBase64, but accepts a shorthand letter that can be used after a single dash.
+func BytesBase64P(name, shorthand string, value []byte, usage string) *[]byte {
+       return CommandLine.BytesBase64P(name, shorthand, value, usage)
+}
diff --git a/vendor/github.com/spf13/pflag/count.go b/vendor/github.com/spf13/pflag/count.go
new file mode 100644 (file)
index 0000000..aa126e4
--- /dev/null
@@ -0,0 +1,96 @@
+package pflag
+
+import "strconv"
+
+// -- count Value
+type countValue int
+
+func newCountValue(val int, p *int) *countValue {
+       *p = val
+       return (*countValue)(p)
+}
+
+func (i *countValue) Set(s string) error {
+       // "+1" means that no specific value was passed, so increment
+       if s == "+1" {
+               *i = countValue(*i + 1)
+               return nil
+       }
+       v, err := strconv.ParseInt(s, 0, 0)
+       *i = countValue(v)
+       return err
+}
+
+func (i *countValue) Type() string {
+       return "count"
+}
+
+func (i *countValue) String() string { return strconv.Itoa(int(*i)) }
+
+func countConv(sval string) (interface{}, error) {
+       i, err := strconv.Atoi(sval)
+       if err != nil {
+               return nil, err
+       }
+       return i, nil
+}
+
+// GetCount return the int value of a flag with the given name
+func (f *FlagSet) GetCount(name string) (int, error) {
+       val, err := f.getFlagType(name, "count", countConv)
+       if err != nil {
+               return 0, err
+       }
+       return val.(int), nil
+}
+
+// CountVar defines a count flag with specified name, default value, and usage string.
+// The argument p points to an int variable in which to store the value of the flag.
+// A count flag will add 1 to its value evey time it is found on the command line
+func (f *FlagSet) CountVar(p *int, name string, usage string) {
+       f.CountVarP(p, name, "", usage)
+}
+
+// CountVarP is like CountVar only take a shorthand for the flag name.
+func (f *FlagSet) CountVarP(p *int, name, shorthand string, usage string) {
+       flag := f.VarPF(newCountValue(0, p), name, shorthand, usage)
+       flag.NoOptDefVal = "+1"
+}
+
+// CountVar like CountVar only the flag is placed on the CommandLine instead of a given flag set
+func CountVar(p *int, name string, usage string) {
+       CommandLine.CountVar(p, name, usage)
+}
+
+// CountVarP is like CountVar only take a shorthand for the flag name.
+func CountVarP(p *int, name, shorthand string, usage string) {
+       CommandLine.CountVarP(p, name, shorthand, usage)
+}
+
+// Count defines a count flag with specified name, default value, and usage string.
+// The return value is the address of an int variable that stores the value of the flag.
+// A count flag will add 1 to its value evey time it is found on the command line
+func (f *FlagSet) Count(name string, usage string) *int {
+       p := new(int)
+       f.CountVarP(p, name, "", usage)
+       return p
+}
+
+// CountP is like Count only takes a shorthand for the flag name.
+func (f *FlagSet) CountP(name, shorthand string, usage string) *int {
+       p := new(int)
+       f.CountVarP(p, name, shorthand, usage)
+       return p
+}
+
+// Count defines a count flag with specified name, default value, and usage string.
+// The return value is the address of an int variable that stores the value of the flag.
+// A count flag will add 1 to its value evey time it is found on the command line
+func Count(name string, usage string) *int {
+       return CommandLine.CountP(name, "", usage)
+}
+
+// CountP is like Count only takes a shorthand for the flag name.
+func CountP(name, shorthand string, usage string) *int {
+       return CommandLine.CountP(name, shorthand, usage)
+}
diff --git a/vendor/github.com/spf13/pflag/duration.go b/vendor/github.com/spf13/pflag/duration.go
new file mode 100644 (file)
index 0000000..e9debef
--- /dev/null
@@ -0,0 +1,86 @@
+package pflag
+
+import (
+       "time"
+)
+
+// -- time.Duration Value
+type durationValue time.Duration
+
+func newDurationValue(val time.Duration, p *time.Duration) *durationValue {
+       *p = val
+       return (*durationValue)(p)
+}
+
+func (d *durationValue) Set(s string) error {
+       v, err := time.ParseDuration(s)
+       *d = durationValue(v)
+       return err
+}
+
+func (d *durationValue) Type() string {
+       return "duration"
+}
+
+func (d *durationValue) String() string { return (*time.Duration)(d).String() }
+
+func durationConv(sval string) (interface{}, error) {
+       return time.ParseDuration(sval)
+}
+
+// GetDuration return the duration value of a flag with the given name
+func (f *FlagSet) GetDuration(name string) (time.Duration, error) {
+       val, err := f.getFlagType(name, "duration", durationConv)
+       if err != nil {
+               return 0, err
+       }
+       return val.(time.Duration), nil
+}
+
+// DurationVar defines a time.Duration flag with specified name, default value, and usage string.
+// The argument p points to a time.Duration variable in which to store the value of the flag.
+func (f *FlagSet) DurationVar(p *time.Duration, name string, value time.Duration, usage string) {
+       f.VarP(newDurationValue(value, p), name, "", usage)
+}
+
+// DurationVarP is like DurationVar, but accepts a shorthand letter that can be used after a single dash.
+func (f *FlagSet) DurationVarP(p *time.Duration, name, shorthand string, value time.Duration, usage string) {
+       f.VarP(newDurationValue(value, p), name, shorthand, usage)
+}
+
+// DurationVar defines a time.Duration flag with specified name, default value, and usage string.
+// The argument p points to a time.Duration variable in which to store the value of the flag.
+func DurationVar(p *time.Duration, name string, value time.Duration, usage string) {
+       CommandLine.VarP(newDurationValue(value, p), name, "", usage)
+}
+
+// DurationVarP is like DurationVar, but accepts a shorthand letter that can be used after a single dash.
+func DurationVarP(p *time.Duration, name, shorthand string, value time.Duration, usage string) {
+       CommandLine.VarP(newDurationValue(value, p), name, shorthand, usage)
+}
+
+// Duration defines a time.Duration flag with specified name, default value, and usage string.
+// The return value is the address of a time.Duration variable that stores the value of the flag.
+func (f *FlagSet) Duration(name string, value time.Duration, usage string) *time.Duration {
+       p := new(time.Duration)
+       f.DurationVarP(p, name, "", value, usage)
+       return p
+}
+
+// DurationP is like Duration, but accepts a shorthand letter that can be used after a single dash.
+func (f *FlagSet) DurationP(name, shorthand string, value time.Duration, usage string) *time.Duration {
+       p := new(time.Duration)
+       f.DurationVarP(p, name, shorthand, value, usage)
+       return p
+}
+
+// Duration defines a time.Duration flag with specified name, default value, and usage string.
+// The return value is the address of a time.Duration variable that stores the value of the flag.
+func Duration(name string, value time.Duration, usage string) *time.Duration {
+       return CommandLine.DurationP(name, "", value, usage)
+}
+
+// DurationP is like Duration, but accepts a shorthand letter that can be used after a single dash.
+func DurationP(name, shorthand string, value time.Duration, usage string) *time.Duration {
+       return CommandLine.DurationP(name, shorthand, value, usage)
+}
diff --git a/vendor/github.com/spf13/pflag/duration_slice.go b/vendor/github.com/spf13/pflag/duration_slice.go
new file mode 100644 (file)
index 0000000..52c6b6d
--- /dev/null
@@ -0,0 +1,128 @@
+package pflag
+
+import (
+       "fmt"
+       "strings"
+       "time"
+)
+
+// -- durationSlice Value
+type durationSliceValue struct {
+       value   *[]time.Duration
+       changed bool
+}
+
+func newDurationSliceValue(val []time.Duration, p *[]time.Duration) *durationSliceValue {
+       dsv := new(durationSliceValue)
+       dsv.value = p
+       *dsv.value = val
+       return dsv
+}
+
+func (s *durationSliceValue) Set(val string) error {
+       ss := strings.Split(val, ",")
+       out := make([]time.Duration, len(ss))
+       for i, d := range ss {
+               var err error
+               out[i], err = time.ParseDuration(d)
+               if err != nil {
+                       return err
+               }
+
+       }
+       if !s.changed {
+               *s.value = out
+       } else {
+               *s.value = append(*s.value, out...)
+       }
+       s.changed = true
+       return nil
+}
+
+func (s *durationSliceValue) Type() string {
+       return "durationSlice"
+}
+
+func (s *durationSliceValue) String() string {
+       out := make([]string, len(*s.value))
+       for i, d := range *s.value {
+               out[i] = fmt.Sprintf("%s", d)
+       }
+       return "[" + strings.Join(out, ",") + "]"
+}
+
+func durationSliceConv(val string) (interface{}, error) {
+       val = strings.Trim(val, "[]")
+       // Empty string would cause a slice with one (empty) entry
+       if len(val) == 0 {
+               return []time.Duration{}, nil
+       }
+       ss := strings.Split(val, ",")
+       out := make([]time.Duration, len(ss))
+       for i, d := range ss {
+               var err error
+               out[i], err = time.ParseDuration(d)
+               if err != nil {
+                       return nil, err
+               }
+
+       }
+       return out, nil
+}
+
+// GetDurationSlice returns the []time.Duration value of a flag with the given name
+func (f *FlagSet) GetDurationSlice(name string) ([]time.Duration, error) {
+       val, err := f.getFlagType(name, "durationSlice", durationSliceConv)
+       if err != nil {
+               return []time.Duration{}, err
+       }
+       return val.([]time.Duration), nil
+}
+
+// DurationSliceVar defines a durationSlice flag with specified name, default value, and usage string.
+// The argument p points to a []time.Duration variable in which to store the value of the flag.
+func (f *FlagSet) DurationSliceVar(p *[]time.Duration, name string, value []time.Duration, usage string) {
+       f.VarP(newDurationSliceValue(value, p), name, "", usage)
+}
+
+// DurationSliceVarP is like DurationSliceVar, but accepts a shorthand letter that can be used after a single dash.
+func (f *FlagSet) DurationSliceVarP(p *[]time.Duration, name, shorthand string, value []time.Duration, usage string) {
+       f.VarP(newDurationSliceValue(value, p), name, shorthand, usage)
+}
+
+// DurationSliceVar defines a duration[] flag with specified name, default value, and usage string.
+// The argument p points to a duration[] variable in which to store the value of the flag.
+func DurationSliceVar(p *[]time.Duration, name string, value []time.Duration, usage string) {
+       CommandLine.VarP(newDurationSliceValue(value, p), name, "", usage)
+}
+
+// DurationSliceVarP is like DurationSliceVar, but accepts a shorthand letter that can be used after a single dash.
+func DurationSliceVarP(p *[]time.Duration, name, shorthand string, value []time.Duration, usage string) {
+       CommandLine.VarP(newDurationSliceValue(value, p), name, shorthand, usage)
+}
+
+// DurationSlice defines a []time.Duration flag with specified name, default value, and usage string.
+// The return value is the address of a []time.Duration variable that stores the value of the flag.
+func (f *FlagSet) DurationSlice(name string, value []time.Duration, usage string) *[]time.Duration {
+       p := []time.Duration{}
+       f.DurationSliceVarP(&p, name, "", value, usage)
+       return &p
+}
+
+// DurationSliceP is like DurationSlice, but accepts a shorthand letter that can be used after a single dash.
+func (f *FlagSet) DurationSliceP(name, shorthand string, value []time.Duration, usage string) *[]time.Duration {
+       p := []time.Duration{}
+       f.DurationSliceVarP(&p, name, shorthand, value, usage)
+       return &p
+}
+
+// DurationSlice defines a []time.Duration flag with specified name, default value, and usage string.
+// The return value is the address of a []time.Duration variable that stores the value of the flag.
+func DurationSlice(name string, value []time.Duration, usage string) *[]time.Duration {
+       return CommandLine.DurationSliceP(name, "", value, usage)
+}
+
+// DurationSliceP is like DurationSlice, but accepts a shorthand letter that can be used after a single dash.
+func DurationSliceP(name, shorthand string, value []time.Duration, usage string) *[]time.Duration {
+       return CommandLine.DurationSliceP(name, shorthand, value, usage)
+}
diff --git a/vendor/github.com/spf13/pflag/flag.go b/vendor/github.com/spf13/pflag/flag.go
new file mode 100644 (file)
index 0000000..9beeda8
--- /dev/null
@@ -0,0 +1,1227 @@
+// 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.
+
+/*
+Package pflag is a drop-in replacement for Go's flag package, implementing
+POSIX/GNU-style --flags.
+
+pflag is compatible with the GNU extensions to the POSIX recommendations
+for command-line options. See
+http://www.gnu.org/software/libc/manual/html_node/Argument-Syntax.html
+
+Usage:
+
+pflag is a drop-in replacement of Go's native flag package. If you import
+pflag under the name "flag" then all code should continue to function
+with no changes.
+
+       import flag "github.com/spf13/pflag"
+
+There is one exception to this: if you directly instantiate the Flag struct
+there is one more field "Shorthand" that you will need to set.
+Most code never instantiates this struct directly, and instead uses
+functions such as String(), BoolVar(), and Var(), and is therefore
+unaffected.
+
+Define flags using flag.String(), Bool(), Int(), etc.
+
+This declares an integer flag, -flagname, stored in the pointer ip, with type *int.
+       var ip = flag.Int("flagname", 1234, "help message for flagname")
+If you like, you can bind the flag to a variable using the Var() functions.
+       var flagvar int
+       func init() {
+               flag.IntVar(&flagvar, "flagname", 1234, "help message for flagname")
+       }
+Or you can create custom flags that satisfy the Value interface (with
+pointer receivers) and couple them to flag parsing by
+       flag.Var(&flagVal, "name", "help message for flagname")
+For such flags, the default value is just the initial value of the variable.
+
+After all flags are defined, call
+       flag.Parse()
+to parse the command line into the defined flags.
+
+Flags may then be used directly. If you're using the flags themselves,
+they are all pointers; if you bind to variables, they're values.
+       fmt.Println("ip has value ", *ip)
+       fmt.Println("flagvar has value ", flagvar)
+
+After parsing, the arguments after the flag are available as the
+slice flag.Args() or individually as flag.Arg(i).
+The arguments are indexed from 0 through flag.NArg()-1.
+
+The pflag package also defines some new functions that are not in flag,
+that give one-letter shorthands for flags. You can use these by appending
+'P' to the name of any function that defines a flag.
+       var ip = flag.IntP("flagname", "f", 1234, "help message")
+       var flagvar bool
+       func init() {
+               flag.BoolVarP("boolname", "b", true, "help message")
+       }
+       flag.VarP(&flagVar, "varname", "v", 1234, "help message")
+Shorthand letters can be used with single dashes on the command line.
+Boolean shorthand flags can be combined with other shorthand flags.
+
+Command line flag syntax:
+       --flag    // boolean flags only
+       --flag=x
+
+Unlike the flag package, a single dash before an option means something
+different than a double dash. Single dashes signify a series of shorthand
+letters for flags. All but the last shorthand letter must be boolean flags.
+       // boolean flags
+       -f
+       -abc
+       // non-boolean flags
+       -n 1234
+       -Ifile
+       // mixed
+       -abcs "hello"
+       -abcn1234
+
+Flag parsing stops after the terminator "--". Unlike the flag package,
+flags can be interspersed with arguments anywhere on the command line
+before this terminator.
+
+Integer flags accept 1234, 0664, 0x1234 and may be negative.
+Boolean flags (in their long form) accept 1, 0, t, f, true, false,
+TRUE, FALSE, True, False.
+Duration flags accept any input valid for time.ParseDuration.
+
+The default set of command-line flags is controlled by
+top-level functions.  The FlagSet type allows one to define
+independent sets of flags, such as to implement subcommands
+in a command-line interface. The methods of FlagSet are
+analogous to the top-level functions for the command-line
+flag set.
+*/
+package pflag
+
+import (
+       "bytes"
+       "errors"
+       goflag "flag"
+       "fmt"
+       "io"
+       "os"
+       "sort"
+       "strings"
+)
+
+// ErrHelp is the error returned if the flag -help is invoked but no such flag is defined.
+var ErrHelp = errors.New("pflag: help requested")
+
+// ErrorHandling defines how to handle flag parsing errors.
+type ErrorHandling int
+
+const (
+       // ContinueOnError will return an err from Parse() if an error is found
+       ContinueOnError ErrorHandling = iota
+       // ExitOnError will call os.Exit(2) if an error is found when parsing
+       ExitOnError
+       // PanicOnError will panic() if an error is found when parsing flags
+       PanicOnError
+)
+
+// ParseErrorsWhitelist defines the parsing errors that can be ignored
+type ParseErrorsWhitelist struct {
+       // UnknownFlags will ignore unknown flags errors and continue parsing rest of the flags
+       UnknownFlags bool
+}
+
+// NormalizedName is a flag name that has been normalized according to rules
+// for the FlagSet (e.g. making '-' and '_' equivalent).
+type NormalizedName string
+
+// A FlagSet represents a set of defined flags.
+type FlagSet struct {
+       // Usage is the function called when an error occurs while parsing flags.
+       // The field is a function (not a method) that may be changed to point to
+       // a custom error handler.
+       Usage func()
+
+       // SortFlags is used to indicate, if user wants to have sorted flags in
+       // help/usage messages.
+       SortFlags bool
+
+       // ParseErrorsWhitelist is used to configure a whitelist of errors
+       ParseErrorsWhitelist ParseErrorsWhitelist
+
+       name              string
+       parsed            bool
+       actual            map[NormalizedName]*Flag
+       orderedActual     []*Flag
+       sortedActual      []*Flag
+       formal            map[NormalizedName]*Flag
+       orderedFormal     []*Flag
+       sortedFormal      []*Flag
+       shorthands        map[byte]*Flag
+       args              []string // arguments after flags
+       argsLenAtDash     int      // len(args) when a '--' was located when parsing, or -1 if no --
+       errorHandling     ErrorHandling
+       output            io.Writer // nil means stderr; use out() accessor
+       interspersed      bool      // allow interspersed option/non-option args
+       normalizeNameFunc func(f *FlagSet, name string) NormalizedName
+
+       addedGoFlagSets []*goflag.FlagSet
+}
+
+// A Flag represents the state of a flag.
+type Flag struct {
+       Name                string              // name as it appears on command line
+       Shorthand           string              // one-letter abbreviated flag
+       Usage               string              // help message
+       Value               Value               // value as set
+       DefValue            string              // default value (as text); for usage message
+       Changed             bool                // If the user set the value (or if left to default)
+       NoOptDefVal         string              // default value (as text); if the flag is on the command line without any options
+       Deprecated          string              // If this flag is deprecated, this string is the new or now thing to use
+       Hidden              bool                // used by cobra.Command to allow flags to be hidden from help/usage text
+       ShorthandDeprecated string              // If the shorthand of this flag is deprecated, this string is the new or now thing to use
+       Annotations         map[string][]string // used by cobra.Command bash autocomple code
+}
+
+// Value is the interface to the dynamic value stored in a flag.
+// (The default value is represented as a string.)
+type Value interface {
+       String() string
+       Set(string) error
+       Type() string
+}
+
+// sortFlags returns the flags as a slice in lexicographical sorted order.
+func sortFlags(flags map[NormalizedName]*Flag) []*Flag {
+       list := make(sort.StringSlice, len(flags))
+       i := 0
+       for k := range flags {
+               list[i] = string(k)
+               i++
+       }
+       list.Sort()
+       result := make([]*Flag, len(list))
+       for i, name := range list {
+               result[i] = flags[NormalizedName(name)]
+       }
+       return result
+}
+
+// SetNormalizeFunc allows you to add a function which can translate flag names.
+// Flags added to the FlagSet will be translated and then when anything tries to
+// look up the flag that will also be translated. So it would be possible to create
+// a flag named "getURL" and have it translated to "geturl".  A user could then pass
+// "--getUrl" which may also be translated to "geturl" and everything will work.
+func (f *FlagSet) SetNormalizeFunc(n func(f *FlagSet, name string) NormalizedName) {
+       f.normalizeNameFunc = n
+       f.sortedFormal = f.sortedFormal[:0]
+       for fname, flag := range f.formal {
+               nname := f.normalizeFlagName(flag.Name)
+               if fname == nname {
+                       continue
+               }
+               flag.Name = string(nname)
+               delete(f.formal, fname)
+               f.formal[nname] = flag
+               if _, set := f.actual[fname]; set {
+                       delete(f.actual, fname)
+                       f.actual[nname] = flag
+               }
+       }
+}
+
+// GetNormalizeFunc returns the previously set NormalizeFunc of a function which
+// does no translation, if not set previously.
+func (f *FlagSet) GetNormalizeFunc() func(f *FlagSet, name string) NormalizedName {
+       if f.normalizeNameFunc != nil {
+               return f.normalizeNameFunc
+       }
+       return func(f *FlagSet, name string) NormalizedName { return NormalizedName(name) }
+}
+
+func (f *FlagSet) normalizeFlagName(name string) NormalizedName {
+       n := f.GetNormalizeFunc()
+       return n(f, name)
+}
+
+func (f *FlagSet) out() io.Writer {
+       if f.output == nil {
+               return os.Stderr
+       }
+       return f.output
+}
+
+// SetOutput sets the destination for usage and error messages.
+// If output is nil, os.Stderr is used.
+func (f *FlagSet) SetOutput(output io.Writer) {
+       f.output = output
+}
+
+// VisitAll visits the flags in lexicographical order or
+// in primordial order if f.SortFlags is false, calling fn for each.
+// It visits all flags, even those not set.
+func (f *FlagSet) VisitAll(fn func(*Flag)) {
+       if len(f.formal) == 0 {
+               return
+       }
+
+       var flags []*Flag
+       if f.SortFlags {
+               if len(f.formal) != len(f.sortedFormal) {
+                       f.sortedFormal = sortFlags(f.formal)
+               }
+               flags = f.sortedFormal
+       } else {
+               flags = f.orderedFormal
+       }
+
+       for _, flag := range flags {
+               fn(flag)
+       }
+}
+
+// HasFlags returns a bool to indicate if the FlagSet has any flags defined.
+func (f *FlagSet) HasFlags() bool {
+       return len(f.formal) > 0
+}
+
+// HasAvailableFlags returns a bool to indicate if the FlagSet has any flags
+// that are not hidden.
+func (f *FlagSet) HasAvailableFlags() bool {
+       for _, flag := range f.formal {
+               if !flag.Hidden {
+                       return true
+               }
+       }
+       return false
+}
+
+// VisitAll visits the command-line flags in lexicographical order or
+// in primordial order if f.SortFlags is false, calling fn for each.
+// It visits all flags, even those not set.
+func VisitAll(fn func(*Flag)) {
+       CommandLine.VisitAll(fn)
+}
+
+// Visit visits the flags in lexicographical order or
+// in primordial order if f.SortFlags is false, calling fn for each.
+// It visits only those flags that have been set.
+func (f *FlagSet) Visit(fn func(*Flag)) {
+       if len(f.actual) == 0 {
+               return
+       }
+
+       var flags []*Flag
+       if f.SortFlags {
+               if len(f.actual) != len(f.sortedActual) {
+                       f.sortedActual = sortFlags(f.actual)
+               }
+               flags = f.sortedActual
+       } else {
+               flags = f.orderedActual
+       }
+
+       for _, flag := range flags {
+               fn(flag)
+       }
+}
+
+// Visit visits the command-line flags in lexicographical order or
+// in primordial order if f.SortFlags is false, calling fn for each.
+// It visits only those flags that have been set.
+func Visit(fn func(*Flag)) {
+       CommandLine.Visit(fn)
+}
+
+// Lookup returns the Flag structure of the named flag, returning nil if none exists.
+func (f *FlagSet) Lookup(name string) *Flag {
+       return f.lookup(f.normalizeFlagName(name))
+}
+
+// ShorthandLookup returns the Flag structure of the short handed flag,
+// returning nil if none exists.
+// It panics, if len(name) > 1.
+func (f *FlagSet) ShorthandLookup(name string) *Flag {
+       if name == "" {
+               return nil
+       }
+       if len(name) > 1 {
+               msg := fmt.Sprintf("can not look up shorthand which is more than one ASCII character: %q", name)
+               fmt.Fprintf(f.out(), msg)
+               panic(msg)
+       }
+       c := name[0]
+       return f.shorthands[c]
+}
+
+// lookup returns the Flag structure of the named flag, returning nil if none exists.
+func (f *FlagSet) lookup(name NormalizedName) *Flag {
+       return f.formal[name]
+}
+
+// func to return a given type for a given flag name
+func (f *FlagSet) getFlagType(name string, ftype string, convFunc func(sval string) (interface{}, error)) (interface{}, error) {
+       flag := f.Lookup(name)
+       if flag == nil {
+               err := fmt.Errorf("flag accessed but not defined: %s", name)
+               return nil, err
+       }
+
+       if flag.Value.Type() != ftype {
+               err := fmt.Errorf("trying to get %s value of flag of type %s", ftype, flag.Value.Type())
+               return nil, err
+       }
+
+       sval := flag.Value.String()
+       result, err := convFunc(sval)
+       if err != nil {
+               return nil, err
+       }
+       return result, nil
+}
+
+// ArgsLenAtDash will return the length of f.Args at the moment when a -- was
+// found during arg parsing. This allows your program to know which args were
+// before the -- and which came after.
+func (f *FlagSet) ArgsLenAtDash() int {
+       return f.argsLenAtDash
+}
+
+// MarkDeprecated indicated that a flag is deprecated in your program. It will
+// continue to function but will not show up in help or usage messages. Using
+// this flag will also print the given usageMessage.
+func (f *FlagSet) MarkDeprecated(name string, usageMessage string) error {
+       flag := f.Lookup(name)
+       if flag == nil {
+               return fmt.Errorf("flag %q does not exist", name)
+       }
+       if usageMessage == "" {
+               return fmt.Errorf("deprecated message for flag %q must be set", name)
+       }
+       flag.Deprecated = usageMessage
+       flag.Hidden = true
+       return nil
+}
+
+// MarkShorthandDeprecated will mark the shorthand of a flag deprecated in your
+// program. It will continue to function but will not show up in help or usage
+// messages. Using this flag will also print the given usageMessage.
+func (f *FlagSet) MarkShorthandDeprecated(name string, usageMessage string) error {
+       flag := f.Lookup(name)
+       if flag == nil {
+               return fmt.Errorf("flag %q does not exist", name)
+       }
+       if usageMessage == "" {
+               return fmt.Errorf("deprecated message for flag %q must be set", name)
+       }
+       flag.ShorthandDeprecated = usageMessage
+       return nil
+}
+
+// MarkHidden sets a flag to 'hidden' in your program. It will continue to
+// function but will not show up in help or usage messages.
+func (f *FlagSet) MarkHidden(name string) error {
+       flag := f.Lookup(name)
+       if flag == nil {
+               return fmt.Errorf("flag %q does not exist", name)
+       }
+       flag.Hidden = true
+       return nil
+}
+
+// Lookup returns the Flag structure of the named command-line flag,
+// returning nil if none exists.
+func Lookup(name string) *Flag {
+       return CommandLine.Lookup(name)
+}
+
+// ShorthandLookup returns the Flag structure of the short handed flag,
+// returning nil if none exists.
+func ShorthandLookup(name string) *Flag {
+       return CommandLine.ShorthandLookup(name)
+}
+
+// Set sets the value of the named flag.
+func (f *FlagSet) Set(name, value string) error {
+       normalName := f.normalizeFlagName(name)
+       flag, ok := f.formal[normalName]
+       if !ok {
+               return fmt.Errorf("no such flag -%v", name)
+       }
+
+       err := flag.Value.Set(value)
+       if err != nil {
+               var flagName string
+               if flag.Shorthand != "" && flag.ShorthandDeprecated == "" {
+                       flagName = fmt.Sprintf("-%s, --%s", flag.Shorthand, flag.Name)
+               } else {
+                       flagName = fmt.Sprintf("--%s", flag.Name)
+               }
+               return fmt.Errorf("invalid argument %q for %q flag: %v", value, flagName, err)
+       }
+
+       if !flag.Changed {
+               if f.actual == nil {
+                       f.actual = make(map[NormalizedName]*Flag)
+               }
+               f.actual[normalName] = flag
+               f.orderedActual = append(f.orderedActual, flag)
+
+               flag.Changed = true
+       }
+
+       if flag.Deprecated != "" {
+               fmt.Fprintf(f.out(), "Flag --%s has been deprecated, %s\n", flag.Name, flag.Deprecated)
+       }
+       return nil
+}
+
+// SetAnnotation allows one to set arbitrary annotations on a flag in the FlagSet.
+// This is sometimes used by spf13/cobra programs which want to generate additional
+// bash completion information.
+func (f *FlagSet) SetAnnotation(name, key string, values []string) error {
+       normalName := f.normalizeFlagName(name)
+       flag, ok := f.formal[normalName]
+       if !ok {
+               return fmt.Errorf("no such flag -%v", name)
+       }
+       if flag.Annotations == nil {
+               flag.Annotations = map[string][]string{}
+       }
+       flag.Annotations[key] = values
+       return nil
+}
+
+// Changed returns true if the flag was explicitly set during Parse() and false
+// otherwise
+func (f *FlagSet) Changed(name string) bool {
+       flag := f.Lookup(name)
+       // If a flag doesn't exist, it wasn't changed....
+       if flag == nil {
+               return false
+       }
+       return flag.Changed
+}
+
+// Set sets the value of the named command-line flag.
+func Set(name, value string) error {
+       return CommandLine.Set(name, value)
+}
+
+// PrintDefaults prints, to standard error unless configured
+// otherwise, the default values of all defined flags in the set.
+func (f *FlagSet) PrintDefaults() {
+       usages := f.FlagUsages()
+       fmt.Fprint(f.out(), usages)
+}
+
+// defaultIsZeroValue returns true if the default value for this flag represents
+// a zero value.
+func (f *Flag) defaultIsZeroValue() bool {
+       switch f.Value.(type) {
+       case boolFlag:
+               return f.DefValue == "false"
+       case *durationValue:
+               // Beginning in Go 1.7, duration zero values are "0s"
+               return f.DefValue == "0" || f.DefValue == "0s"
+       case *intValue, *int8Value, *int32Value, *int64Value, *uintValue, *uint8Value, *uint16Value, *uint32Value, *uint64Value, *countValue, *float32Value, *float64Value:
+               return f.DefValue == "0"
+       case *stringValue:
+               return f.DefValue == ""
+       case *ipValue, *ipMaskValue, *ipNetValue:
+               return f.DefValue == "<nil>"
+       case *intSliceValue, *stringSliceValue, *stringArrayValue:
+               return f.DefValue == "[]"
+       default:
+               switch f.Value.String() {
+               case "false":
+                       return true
+               case "<nil>":
+                       return true
+               case "":
+                       return true
+               case "0":
+                       return true
+               }
+               return false
+       }
+}
+
+// UnquoteUsage extracts a back-quoted name from the usage
+// string for a flag and returns it and the un-quoted usage.
+// Given "a `name` to show" it returns ("name", "a name to show").
+// If there are no back quotes, the name is an educated guess of the
+// type of the flag's value, or the empty string if the flag is boolean.
+func UnquoteUsage(flag *Flag) (name string, usage string) {
+       // Look for a back-quoted name, but avoid the strings package.
+       usage = flag.Usage
+       for i := 0; i < len(usage); i++ {
+               if usage[i] == '`' {
+                       for j := i + 1; j < len(usage); j++ {
+                               if usage[j] == '`' {
+                                       name = usage[i+1 : j]
+                                       usage = usage[:i] + name + usage[j+1:]
+                                       return name, usage
+                               }
+                       }
+                       break // Only one back quote; use type name.
+               }
+       }
+
+       name = flag.Value.Type()
+       switch name {
+       case "bool":
+               name = ""
+       case "float64":
+               name = "float"
+       case "int64":
+               name = "int"
+       case "uint64":
+               name = "uint"
+       case "stringSlice":
+               name = "strings"
+       case "intSlice":
+               name = "ints"
+       case "uintSlice":
+               name = "uints"
+       case "boolSlice":
+               name = "bools"
+       }
+
+       return
+}
+
+// Splits the string `s` on whitespace into an initial substring up to
+// `i` runes in length and the remainder. Will go `slop` over `i` if
+// that encompasses the entire string (which allows the caller to
+// avoid short orphan words on the final line).
+func wrapN(i, slop int, s string) (string, string) {
+       if i+slop > len(s) {
+               return s, ""
+       }
+
+       w := strings.LastIndexAny(s[:i], " \t\n")
+       if w <= 0 {
+               return s, ""
+       }
+       nlPos := strings.LastIndex(s[:i], "\n")
+       if nlPos > 0 && nlPos < w {
+               return s[:nlPos], s[nlPos+1:]
+       }
+       return s[:w], s[w+1:]
+}
+
+// Wraps the string `s` to a maximum width `w` with leading indent
+// `i`. The first line is not indented (this is assumed to be done by
+// caller). Pass `w` == 0 to do no wrapping
+func wrap(i, w int, s string) string {
+       if w == 0 {
+               return strings.Replace(s, "\n", "\n"+strings.Repeat(" ", i), -1)
+       }
+
+       // space between indent i and end of line width w into which
+       // we should wrap the text.
+       wrap := w - i
+
+       var r, l string
+
+       // Not enough space for sensible wrapping. Wrap as a block on
+       // the next line instead.
+       if wrap < 24 {
+               i = 16
+               wrap = w - i
+               r += "\n" + strings.Repeat(" ", i)
+       }
+       // If still not enough space then don't even try to wrap.
+       if wrap < 24 {
+               return strings.Replace(s, "\n", r, -1)
+       }
+
+       // Try to avoid short orphan words on the final line, by
+       // allowing wrapN to go a bit over if that would fit in the
+       // remainder of the line.
+       slop := 5
+       wrap = wrap - slop
+
+       // Handle first line, which is indented by the caller (or the
+       // special case above)
+       l, s = wrapN(wrap, slop, s)
+       r = r + strings.Replace(l, "\n", "\n"+strings.Repeat(" ", i), -1)
+
+       // Now wrap the rest
+       for s != "" {
+               var t string
+
+               t, s = wrapN(wrap, slop, s)
+               r = r + "\n" + strings.Repeat(" ", i) + strings.Replace(t, "\n", "\n"+strings.Repeat(" ", i), -1)
+       }
+
+       return r
+
+}
+
+// FlagUsagesWrapped returns a string containing the usage information
+// for all flags in the FlagSet. Wrapped to `cols` columns (0 for no
+// wrapping)
+func (f *FlagSet) FlagUsagesWrapped(cols int) string {
+       buf := new(bytes.Buffer)
+
+       lines := make([]string, 0, len(f.formal))
+
+       maxlen := 0
+       f.VisitAll(func(flag *Flag) {
+               if flag.Hidden {
+                       return
+               }
+
+               line := ""
+               if flag.Shorthand != "" && flag.ShorthandDeprecated == "" {
+                       line = fmt.Sprintf("  -%s, --%s", flag.Shorthand, flag.Name)
+               } else {
+                       line = fmt.Sprintf("      --%s", flag.Name)
+               }
+
+               varname, usage := UnquoteUsage(flag)
+               if varname != "" {
+                       line += " " + varname
+               }
+               if flag.NoOptDefVal != "" {
+                       switch flag.Value.Type() {
+                       case "string":
+                               line += fmt.Sprintf("[=\"%s\"]", flag.NoOptDefVal)
+                       case "bool":
+                               if flag.NoOptDefVal != "true" {
+                                       line += fmt.Sprintf("[=%s]", flag.NoOptDefVal)
+                               }
+                       case "count":
+                               if flag.NoOptDefVal != "+1" {
+                                       line += fmt.Sprintf("[=%s]", flag.NoOptDefVal)
+                               }
+                       default:
+                               line += fmt.Sprintf("[=%s]", flag.NoOptDefVal)
+                       }
+               }
+
+               // This special character will be replaced with spacing once the
+               // correct alignment is calculated
+               line += "\x00"
+               if len(line) > maxlen {
+                       maxlen = len(line)
+               }
+
+               line += usage
+               if !flag.defaultIsZeroValue() {
+                       if flag.Value.Type() == "string" {
+                               line += fmt.Sprintf(" (default %q)", flag.DefValue)
+                       } else {
+                               line += fmt.Sprintf(" (default %s)", flag.DefValue)
+                       }
+               }
+               if len(flag.Deprecated) != 0 {
+                       line += fmt.Sprintf(" (DEPRECATED: %s)", flag.Deprecated)
+               }
+
+               lines = append(lines, line)
+       })
+
+       for _, line := range lines {
+               sidx := strings.Index(line, "\x00")
+               spacing := strings.Repeat(" ", maxlen-sidx)
+               // maxlen + 2 comes from + 1 for the \x00 and + 1 for the (deliberate) off-by-one in maxlen-sidx
+               fmt.Fprintln(buf, line[:sidx], spacing, wrap(maxlen+2, cols, line[sidx+1:]))
+       }
+
+       return buf.String()
+}
+
+// FlagUsages returns a string containing the usage information for all flags in
+// the FlagSet
+func (f *FlagSet) FlagUsages() string {
+       return f.FlagUsagesWrapped(0)
+}
+
+// PrintDefaults prints to standard error the default values of all defined command-line flags.
+func PrintDefaults() {
+       CommandLine.PrintDefaults()
+}
+
+// defaultUsage is the default function to print a usage message.
+func defaultUsage(f *FlagSet) {
+       fmt.Fprintf(f.out(), "Usage of %s:\n", f.name)
+       f.PrintDefaults()
+}
+
+// NOTE: Usage is not just defaultUsage(CommandLine)
+// because it serves (via godoc flag Usage) as the example
+// for how to write your own usage function.
+
+// Usage prints to standard error a usage message documenting all defined command-line flags.
+// The function is a variable that may be changed to point to a custom function.
+// By default it prints a simple header and calls PrintDefaults; for details about the
+// format of the output and how to control it, see the documentation for PrintDefaults.
+var Usage = func() {
+       fmt.Fprintf(os.Stderr, "Usage of %s:\n", os.Args[0])
+       PrintDefaults()
+}
+
+// NFlag returns the number of flags that have been set.
+func (f *FlagSet) NFlag() int { return len(f.actual) }
+
+// NFlag returns the number of command-line flags that have been set.
+func NFlag() int { return len(CommandLine.actual) }
+
+// Arg returns the i'th argument.  Arg(0) is the first remaining argument
+// after flags have been processed.
+func (f *FlagSet) Arg(i int) string {
+       if i < 0 || i >= len(f.args) {
+               return ""
+       }
+       return f.args[i]
+}
+
+// Arg returns the i'th command-line argument.  Arg(0) is the first remaining argument
+// after flags have been processed.
+func Arg(i int) string {
+       return CommandLine.Arg(i)
+}
+
+// NArg is the number of arguments remaining after flags have been processed.
+func (f *FlagSet) NArg() int { return len(f.args) }
+
+// NArg is the number of arguments remaining after flags have been processed.
+func NArg() int { return len(CommandLine.args) }
+
+// Args returns the non-flag arguments.
+func (f *FlagSet) Args() []string { return f.args }
+
+// Args returns the non-flag command-line arguments.
+func Args() []string { return CommandLine.args }
+
+// Var defines a flag with the specified name and usage string. The type and
+// value of the flag are represented by the first argument, of type Value, which
+// typically holds a user-defined implementation of Value. For instance, the
+// caller could create a flag that turns a comma-separated string into a slice
+// of strings by giving the slice the methods of Value; in particular, Set would
+// decompose the comma-separated string into the slice.
+func (f *FlagSet) Var(value Value, name string, usage string) {
+       f.VarP(value, name, "", usage)
+}
+
+// VarPF is like VarP, but returns the flag created
+func (f *FlagSet) VarPF(value Value, name, shorthand, usage string) *Flag {
+       // Remember the default value as a string; it won't change.
+       flag := &Flag{
+               Name:      name,
+               Shorthand: shorthand,
+               Usage:     usage,
+               Value:     value,
+               DefValue:  value.String(),
+       }
+       f.AddFlag(flag)
+       return flag
+}
+
+// VarP is like Var, but accepts a shorthand letter that can be used after a single dash.
+func (f *FlagSet) VarP(value Value, name, shorthand, usage string) {
+       f.VarPF(value, name, shorthand, usage)
+}
+
+// AddFlag will add the flag to the FlagSet
+func (f *FlagSet) AddFlag(flag *Flag) {
+       normalizedFlagName := f.normalizeFlagName(flag.Name)
+
+       _, alreadyThere := f.formal[normalizedFlagName]
+       if alreadyThere {
+               msg := fmt.Sprintf("%s flag redefined: %s", f.name, flag.Name)
+               fmt.Fprintln(f.out(), msg)
+               panic(msg) // Happens only if flags are declared with identical names
+       }
+       if f.formal == nil {
+               f.formal = make(map[NormalizedName]*Flag)
+       }
+
+       flag.Name = string(normalizedFlagName)
+       f.formal[normalizedFlagName] = flag
+       f.orderedFormal = append(f.orderedFormal, flag)
+
+       if flag.Shorthand == "" {
+               return
+       }
+       if len(flag.Shorthand) > 1 {
+               msg := fmt.Sprintf("%q shorthand is more than one ASCII character", flag.Shorthand)
+               fmt.Fprintf(f.out(), msg)
+               panic(msg)
+       }
+       if f.shorthands == nil {
+               f.shorthands = make(map[byte]*Flag)
+       }
+       c := flag.Shorthand[0]
+       used, alreadyThere := f.shorthands[c]
+       if alreadyThere {
+               msg := fmt.Sprintf("unable to redefine %q shorthand in %q flagset: it's already used for %q flag", c, f.name, used.Name)
+               fmt.Fprintf(f.out(), msg)
+               panic(msg)
+       }
+       f.shorthands[c] = flag
+}
+
+// AddFlagSet adds one FlagSet to another. If a flag is already present in f
+// the flag from newSet will be ignored.
+func (f *FlagSet) AddFlagSet(newSet *FlagSet) {
+       if newSet == nil {
+               return
+       }
+       newSet.VisitAll(func(flag *Flag) {
+               if f.Lookup(flag.Name) == nil {
+                       f.AddFlag(flag)
+               }
+       })
+}
+
+// Var defines a flag with the specified name and usage string. The type and
+// value of the flag are represented by the first argument, of type Value, which
+// typically holds a user-defined implementation of Value. For instance, the
+// caller could create a flag that turns a comma-separated string into a slice
+// of strings by giving the slice the methods of Value; in particular, Set would
+// decompose the comma-separated string into the slice.
+func Var(value Value, name string, usage string) {
+       CommandLine.VarP(value, name, "", usage)
+}
+
+// VarP is like Var, but accepts a shorthand letter that can be used after a single dash.
+func VarP(value Value, name, shorthand, usage string) {
+       CommandLine.VarP(value, name, shorthand, usage)
+}
+
+// failf prints to standard error a formatted error and usage message and
+// returns the error.
+func (f *FlagSet) failf(format string, a ...interface{}) error {
+       err := fmt.Errorf(format, a...)
+       if f.errorHandling != ContinueOnError {
+               fmt.Fprintln(f.out(), err)
+               f.usage()
+       }
+       return err
+}
+
+// usage calls the Usage method for the flag set, or the usage function if
+// the flag set is CommandLine.
+func (f *FlagSet) usage() {
+       if f == CommandLine {
+               Usage()
+       } else if f.Usage == nil {
+               defaultUsage(f)
+       } else {
+               f.Usage()
+       }
+}
+
+//--unknown (args will be empty)
+//--unknown --next-flag ... (args will be --next-flag ...)
+//--unknown arg ... (args will be arg ...)
+func stripUnknownFlagValue(args []string) []string {
+       if len(args) == 0 {
+               //--unknown
+               return args
+       }
+
+       first := args[0]
+       if len(first) > 0 && first[0] == '-' {
+               //--unknown --next-flag ...
+               return args
+       }
+
+       //--unknown arg ... (args will be arg ...)
+       if len(args) > 1 {
+               return args[1:]
+       }
+       return nil
+}
+
+func (f *FlagSet) parseLongArg(s string, args []string, fn parseFunc) (a []string, err error) {
+       a = args
+       name := s[2:]
+       if len(name) == 0 || name[0] == '-' || name[0] == '=' {
+               err = f.failf("bad flag syntax: %s", s)
+               return
+       }
+
+       split := strings.SplitN(name, "=", 2)
+       name = split[0]
+       flag, exists := f.formal[f.normalizeFlagName(name)]
+
+       if !exists {
+               switch {
+               case name == "help":
+                       f.usage()
+                       return a, ErrHelp
+               case f.ParseErrorsWhitelist.UnknownFlags:
+                       // --unknown=unknownval arg ...
+                       // we do not want to lose arg in this case
+                       if len(split) >= 2 {
+                               return a, nil
+                       }
+
+                       return stripUnknownFlagValue(a), nil
+               default:
+                       err = f.failf("unknown flag: --%s", name)
+                       return
+               }
+       }
+
+       var value string
+       if len(split) == 2 {
+               // '--flag=arg'
+               value = split[1]
+       } else if flag.NoOptDefVal != "" {
+               // '--flag' (arg was optional)
+               value = flag.NoOptDefVal
+       } else if len(a) > 0 {
+               // '--flag arg'
+               value = a[0]
+               a = a[1:]
+       } else {
+               // '--flag' (arg was required)
+               err = f.failf("flag needs an argument: %s", s)
+               return
+       }
+
+       err = fn(flag, value)
+       if err != nil {
+               f.failf(err.Error())
+       }
+       return
+}
+
+func (f *FlagSet) parseSingleShortArg(shorthands string, args []string, fn parseFunc) (outShorts string, outArgs []string, err error) {
+       outArgs = args
+
+       if strings.HasPrefix(shorthands, "test.") {
+               return
+       }
+
+       outShorts = shorthands[1:]
+       c := shorthands[0]
+
+       flag, exists := f.shorthands[c]
+       if !exists {
+               switch {
+               case c == 'h':
+                       f.usage()
+                       err = ErrHelp
+                       return
+               case f.ParseErrorsWhitelist.UnknownFlags:
+                       // '-f=arg arg ...'
+                       // we do not want to lose arg in this case
+                       if len(shorthands) > 2 && shorthands[1] == '=' {
+                               outShorts = ""
+                               return
+                       }
+
+                       outArgs = stripUnknownFlagValue(outArgs)
+                       return
+               default:
+                       err = f.failf("unknown shorthand flag: %q in -%s", c, shorthands)
+                       return
+               }
+       }
+
+       var value string
+       if len(shorthands) > 2 && shorthands[1] == '=' {
+               // '-f=arg'
+               value = shorthands[2:]
+               outShorts = ""
+       } else if flag.NoOptDefVal != "" {
+               // '-f' (arg was optional)
+               value = flag.NoOptDefVal
+       } else if len(shorthands) > 1 {
+               // '-farg'
+               value = shorthands[1:]
+               outShorts = ""
+       } else if len(args) > 0 {
+               // '-f arg'
+               value = args[0]
+               outArgs = args[1:]
+       } else {
+               // '-f' (arg was required)
+               err = f.failf("flag needs an argument: %q in -%s", c, shorthands)
+               return
+       }
+
+       if flag.ShorthandDeprecated != "" {
+               fmt.Fprintf(f.out(), "Flag shorthand -%s has been deprecated, %s\n", flag.Shorthand, flag.ShorthandDeprecated)
+       }
+
+       err = fn(flag, value)
+       if err != nil {
+               f.failf(err.Error())
+       }
+       return
+}
+
+func (f *FlagSet) parseShortArg(s string, args []string, fn parseFunc) (a []string, err error) {
+       a = args
+       shorthands := s[1:]
+
+       // "shorthands" can be a series of shorthand letters of flags (e.g. "-vvv").
+       for len(shorthands) > 0 {
+               shorthands, a, err = f.parseSingleShortArg(shorthands, args, fn)
+               if err != nil {
+                       return
+               }
+       }
+
+       return
+}
+
+func (f *FlagSet) parseArgs(args []string, fn parseFunc) (err error) {
+       for len(args) > 0 {
+               s := args[0]
+               args = args[1:]
+               if len(s) == 0 || s[0] != '-' || len(s) == 1 {
+                       if !f.interspersed {
+                               f.args = append(f.args, s)
+                               f.args = append(f.args, args...)
+                               return nil
+                       }
+                       f.args = append(f.args, s)
+                       continue
+               }
+
+               if s[1] == '-' {
+                       if len(s) == 2 { // "--" terminates the flags
+                               f.argsLenAtDash = len(f.args)
+                               f.args = append(f.args, args...)
+                               break
+                       }
+                       args, err = f.parseLongArg(s, args, fn)
+               } else {
+                       args, err = f.parseShortArg(s, args, fn)
+               }
+               if err != nil {
+                       return
+               }
+       }
+       return
+}
+
+// Parse parses flag definitions from the argument list, which should not
+// include the command name.  Must be called after all flags in the FlagSet
+// are defined and before flags are accessed by the program.
+// The return value will be ErrHelp if -help was set but not defined.
+func (f *FlagSet) Parse(arguments []string) error {
+       if f.addedGoFlagSets != nil {
+               for _, goFlagSet := range f.addedGoFlagSets {
+                       goFlagSet.Parse(nil)
+               }
+       }
+       f.parsed = true
+
+       if len(arguments) < 0 {
+               return nil
+       }
+
+       f.args = make([]string, 0, len(arguments))
+
+       set := func(flag *Flag, value string) error {
+               return f.Set(flag.Name, value)
+       }
+
+       err := f.parseArgs(arguments, set)
+       if err != nil {
+               switch f.errorHandling {
+               case ContinueOnError:
+                       return err
+               case ExitOnError:
+                       fmt.Println(err)
+                       os.Exit(2)
+               case PanicOnError:
+                       panic(err)
+               }
+       }
+       return nil
+}
+
+type parseFunc func(flag *Flag, value string) error
+
+// ParseAll parses flag definitions from the argument list, which should not
+// include the command name. The arguments for fn are flag and value. Must be
+// called after all flags in the FlagSet are defined and before flags are
+// accessed by the program. The return value will be ErrHelp if -help was set
+// but not defined.
+func (f *FlagSet) ParseAll(arguments []string, fn func(flag *Flag, value string) error) error {
+       f.parsed = true
+       f.args = make([]string, 0, len(arguments))
+
+       err := f.parseArgs(arguments, fn)
+       if err != nil {
+               switch f.errorHandling {
+               case ContinueOnError:
+                       return err
+               case ExitOnError:
+                       os.Exit(2)
+               case PanicOnError:
+                       panic(err)
+               }
+       }
+       return nil
+}
+
+// Parsed reports whether f.Parse has been called.
+func (f *FlagSet) Parsed() bool {
+       return f.parsed
+}
+
+// Parse parses the command-line flags from os.Args[1:].  Must be called
+// after all flags are defined and before flags are accessed by the program.
+func Parse() {
+       // Ignore errors; CommandLine is set for ExitOnError.
+       CommandLine.Parse(os.Args[1:])
+}
+
+// ParseAll parses the command-line flags from os.Args[1:] and called fn for each.
+// The arguments for fn are flag and value. Must be called after all flags are
+// defined and before flags are accessed by the program.
+func ParseAll(fn func(flag *Flag, value string) error) {
+       // Ignore errors; CommandLine is set for ExitOnError.
+       CommandLine.ParseAll(os.Args[1:], fn)
+}
+
+// SetInterspersed sets whether to support interspersed option/non-option arguments.
+func SetInterspersed(interspersed bool) {
+       CommandLine.SetInterspersed(interspersed)
+}
+
+// Parsed returns true if the command-line flags have been parsed.
+func Parsed() bool {
+       return CommandLine.Parsed()
+}
+
+// CommandLine is the default set of command-line flags, parsed from os.Args.
+var CommandLine = NewFlagSet(os.Args[0], ExitOnError)
+
+// NewFlagSet returns a new, empty flag set with the specified name,
+// error handling property and SortFlags set to true.
+func NewFlagSet(name string, errorHandling ErrorHandling) *FlagSet {
+       f := &FlagSet{
+               name:          name,
+               errorHandling: errorHandling,
+               argsLenAtDash: -1,
+               interspersed:  true,
+               SortFlags:     true,
+       }
+       return f
+}
+
+// SetInterspersed sets whether to support interspersed option/non-option arguments.
+func (f *FlagSet) SetInterspersed(interspersed bool) {
+       f.interspersed = interspersed
+}
+
+// Init sets the name and error handling property for a flag set.
+// By default, the zero FlagSet uses an empty name and the
+// ContinueOnError error handling policy.
+func (f *FlagSet) Init(name string, errorHandling ErrorHandling) {
+       f.name = name
+       f.errorHandling = errorHandling
+       f.argsLenAtDash = -1
+}
diff --git a/vendor/github.com/spf13/pflag/float32.go b/vendor/github.com/spf13/pflag/float32.go
new file mode 100644 (file)
index 0000000..a243f81
--- /dev/null
@@ -0,0 +1,88 @@
+package pflag
+
+import "strconv"
+
+// -- float32 Value
+type float32Value float32
+
+func newFloat32Value(val float32, p *float32) *float32Value {
+       *p = val
+       return (*float32Value)(p)
+}
+
+func (f *float32Value) Set(s string) error {
+       v, err := strconv.ParseFloat(s, 32)
+       *f = float32Value(v)
+       return err
+}
+
+func (f *float32Value) Type() string {
+       return "float32"
+}
+
+func (f *float32Value) String() string { return strconv.FormatFloat(float64(*f), 'g', -1, 32) }
+
+func float32Conv(sval string) (interface{}, error) {
+       v, err := strconv.ParseFloat(sval, 32)
+       if err != nil {
+               return 0, err
+       }
+       return float32(v), nil
+}
+
+// GetFloat32 return the float32 value of a flag with the given name
+func (f *FlagSet) GetFloat32(name string) (float32, error) {
+       val, err := f.getFlagType(name, "float32", float32Conv)
+       if err != nil {
+               return 0, err
+       }
+       return val.(float32), nil
+}
+
+// Float32Var defines a float32 flag with specified name, default value, and usage string.
+// The argument p points to a float32 variable in which to store the value of the flag.
+func (f *FlagSet) Float32Var(p *float32, name string, value float32, usage string) {
+       f.VarP(newFloat32Value(value, p), name, "", usage)
+}
+
+// Float32VarP is like Float32Var, but accepts a shorthand letter that can be used after a single dash.
+func (f *FlagSet) Float32VarP(p *float32, name, shorthand string, value float32, usage string) {
+       f.VarP(newFloat32Value(value, p), name, shorthand, usage)
+}
+
+// Float32Var defines a float32 flag with specified name, default value, and usage string.
+// The argument p points to a float32 variable in which to store the value of the flag.
+func Float32Var(p *float32, name string, value float32, usage string) {
+       CommandLine.VarP(newFloat32Value(value, p), name, "", usage)
+}
+
+// Float32VarP is like Float32Var, but accepts a shorthand letter that can be used after a single dash.
+func Float32VarP(p *float32, name, shorthand string, value float32, usage string) {
+       CommandLine.VarP(newFloat32Value(value, p), name, shorthand, usage)
+}
+
+// Float32 defines a float32 flag with specified name, default value, and usage string.
+// The return value is the address of a float32 variable that stores the value of the flag.
+func (f *FlagSet) Float32(name string, value float32, usage string) *float32 {
+       p := new(float32)
+       f.Float32VarP(p, name, "", value, usage)
+       return p
+}
+
+// Float32P is like Float32, but accepts a shorthand letter that can be used after a single dash.
+func (f *FlagSet) Float32P(name, shorthand string, value float32, usage string) *float32 {
+       p := new(float32)
+       f.Float32VarP(p, name, shorthand, value, usage)
+       return p
+}
+
+// Float32 defines a float32 flag with specified name, default value, and usage string.
+// The return value is the address of a float32 variable that stores the value of the flag.
+func Float32(name string, value float32, usage string) *float32 {
+       return CommandLine.Float32P(name, "", value, usage)
+}
+
+// Float32P is like Float32, but accepts a shorthand letter that can be used after a single dash.
+func Float32P(name, shorthand string, value float32, usage string) *float32 {
+       return CommandLine.Float32P(name, shorthand, value, usage)
+}
diff --git a/vendor/github.com/spf13/pflag/float64.go b/vendor/github.com/spf13/pflag/float64.go
new file mode 100644 (file)
index 0000000..04b5492
--- /dev/null
@@ -0,0 +1,84 @@
+package pflag
+
+import "strconv"
+
+// -- float64 Value
+type float64Value float64
+
+func newFloat64Value(val float64, p *float64) *float64Value {
+       *p = val
+       return (*float64Value)(p)
+}
+
+func (f *float64Value) Set(s string) error {
+       v, err := strconv.ParseFloat(s, 64)
+       *f = float64Value(v)
+       return err
+}
+
+func (f *float64Value) Type() string {
+       return "float64"
+}
+
+func (f *float64Value) String() string { return strconv.FormatFloat(float64(*f), 'g', -1, 64) }
+
+func float64Conv(sval string) (interface{}, error) {
+       return strconv.ParseFloat(sval, 64)
+}
+
+// GetFloat64 return the float64 value of a flag with the given name
+func (f *FlagSet) GetFloat64(name string) (float64, error) {
+       val, err := f.getFlagType(name, "float64", float64Conv)
+       if err != nil {
+               return 0, err
+       }
+       return val.(float64), nil
+}
+
+// Float64Var defines a float64 flag with specified name, default value, and usage string.
+// The argument p points to a float64 variable in which to store the value of the flag.
+func (f *FlagSet) Float64Var(p *float64, name string, value float64, usage string) {
+       f.VarP(newFloat64Value(value, p), name, "", usage)
+}
+
+// Float64VarP is like Float64Var, but accepts a shorthand letter that can be used after a single dash.
+func (f *FlagSet) Float64VarP(p *float64, name, shorthand string, value float64, usage string) {
+       f.VarP(newFloat64Value(value, p), name, shorthand, usage)
+}
+
+// Float64Var defines a float64 flag with specified name, default value, and usage string.
+// The argument p points to a float64 variable in which to store the value of the flag.
+func Float64Var(p *float64, name string, value float64, usage string) {
+       CommandLine.VarP(newFloat64Value(value, p), name, "", usage)
+}
+
+// Float64VarP is like Float64Var, but accepts a shorthand letter that can be used after a single dash.
+func Float64VarP(p *float64, name, shorthand string, value float64, usage string) {
+       CommandLine.VarP(newFloat64Value(value, p), name, shorthand, usage)
+}
+
+// Float64 defines a float64 flag with specified name, default value, and usage string.
+// The return value is the address of a float64 variable that stores the value of the flag.
+func (f *FlagSet) Float64(name string, value float64, usage string) *float64 {
+       p := new(float64)
+       f.Float64VarP(p, name, "", value, usage)
+       return p
+}
+
+// Float64P is like Float64, but accepts a shorthand letter that can be used after a single dash.
+func (f *FlagSet) Float64P(name, shorthand string, value float64, usage string) *float64 {
+       p := new(float64)
+       f.Float64VarP(p, name, shorthand, value, usage)
+       return p
+}
+
+// Float64 defines a float64 flag with specified name, default value, and usage string.
+// The return value is the address of a float64 variable that stores the value of the flag.
+func Float64(name string, value float64, usage string) *float64 {
+       return CommandLine.Float64P(name, "", value, usage)
+}
+
+// Float64P is like Float64, but accepts a shorthand letter that can be used after a single dash.
+func Float64P(name, shorthand string, value float64, usage string) *float64 {
+       return CommandLine.Float64P(name, shorthand, value, usage)
+}
diff --git a/vendor/github.com/spf13/pflag/golangflag.go b/vendor/github.com/spf13/pflag/golangflag.go
new file mode 100644 (file)
index 0000000..d3dd72b
--- /dev/null
@@ -0,0 +1,105 @@
+// 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.
+
+package pflag
+
+import (
+       goflag "flag"
+       "reflect"
+       "strings"
+)
+
+// flagValueWrapper implements pflag.Value around a flag.Value.  The main
+// difference here is the addition of the Type method that returns a string
+// name of the type.  As this is generally unknown, we approximate that with
+// reflection.
+type flagValueWrapper struct {
+       inner    goflag.Value
+       flagType string
+}
+
+// We are just copying the boolFlag interface out of goflag as that is what
+// they use to decide if a flag should get "true" when no arg is given.
+type goBoolFlag interface {
+       goflag.Value
+       IsBoolFlag() bool
+}
+
+func wrapFlagValue(v goflag.Value) Value {
+       // If the flag.Value happens to also be a pflag.Value, just use it directly.
+       if pv, ok := v.(Value); ok {
+               return pv
+       }
+
+       pv := &flagValueWrapper{
+               inner: v,
+       }
+
+       t := reflect.TypeOf(v)
+       if t.Kind() == reflect.Interface || t.Kind() == reflect.Ptr {
+               t = t.Elem()
+       }
+
+       pv.flagType = strings.TrimSuffix(t.Name(), "Value")
+       return pv
+}
+
+func (v *flagValueWrapper) String() string {
+       return v.inner.String()
+}
+
+func (v *flagValueWrapper) Set(s string) error {
+       return v.inner.Set(s)
+}
+
+func (v *flagValueWrapper) Type() string {
+       return v.flagType
+}
+
+// PFlagFromGoFlag will return a *pflag.Flag given a *flag.Flag
+// If the *flag.Flag.Name was a single character (ex: `v`) it will be accessiblei
+// with both `-v` and `--v` in flags. If the golang flag was more than a single
+// character (ex: `verbose`) it will only be accessible via `--verbose`
+func PFlagFromGoFlag(goflag *goflag.Flag) *Flag {
+       // Remember the default value as a string; it won't change.
+       flag := &Flag{
+               Name:  goflag.Name,
+               Usage: goflag.Usage,
+               Value: wrapFlagValue(goflag.Value),
+               // Looks like golang flags don't set DefValue correctly  :-(
+               //DefValue: goflag.DefValue,
+               DefValue: goflag.Value.String(),
+       }
+       // Ex: if the golang flag was -v, allow both -v and --v to work
+       if len(flag.Name) == 1 {
+               flag.Shorthand = flag.Name
+       }
+       if fv, ok := goflag.Value.(goBoolFlag); ok && fv.IsBoolFlag() {
+               flag.NoOptDefVal = "true"
+       }
+       return flag
+}
+
+// AddGoFlag will add the given *flag.Flag to the pflag.FlagSet
+func (f *FlagSet) AddGoFlag(goflag *goflag.Flag) {
+       if f.Lookup(goflag.Name) != nil {
+               return
+       }
+       newflag := PFlagFromGoFlag(goflag)
+       f.AddFlag(newflag)
+}
+
+// AddGoFlagSet will add the given *flag.FlagSet to the pflag.FlagSet
+func (f *FlagSet) AddGoFlagSet(newSet *goflag.FlagSet) {
+       if newSet == nil {
+               return
+       }
+       newSet.VisitAll(func(goflag *goflag.Flag) {
+               f.AddGoFlag(goflag)
+       })
+       if f.addedGoFlagSets == nil {
+               f.addedGoFlagSets = make([]*goflag.FlagSet, 0)
+       }
+       f.addedGoFlagSets = append(f.addedGoFlagSets, newSet)
+}
diff --git a/vendor/github.com/spf13/pflag/int.go b/vendor/github.com/spf13/pflag/int.go
new file mode 100644 (file)
index 0000000..1474b89
--- /dev/null
@@ -0,0 +1,84 @@
+package pflag
+
+import "strconv"
+
+// -- int Value
+type intValue int
+
+func newIntValue(val int, p *int) *intValue {
+       *p = val
+       return (*intValue)(p)
+}
+
+func (i *intValue) Set(s string) error {
+       v, err := strconv.ParseInt(s, 0, 64)
+       *i = intValue(v)
+       return err
+}
+
+func (i *intValue) Type() string {
+       return "int"
+}
+
+func (i *intValue) String() string { return strconv.Itoa(int(*i)) }
+
+func intConv(sval string) (interface{}, error) {
+       return strconv.Atoi(sval)
+}
+
+// GetInt return the int value of a flag with the given name
+func (f *FlagSet) GetInt(name string) (int, error) {
+       val, err := f.getFlagType(name, "int", intConv)
+       if err != nil {
+               return 0, err
+       }
+       return val.(int), nil
+}
+
+// IntVar defines an int flag with specified name, default value, and usage string.
+// The argument p points to an int variable in which to store the value of the flag.
+func (f *FlagSet) IntVar(p *int, name string, value int, usage string) {
+       f.VarP(newIntValue(value, p), name, "", usage)
+}
+
+// IntVarP is like IntVar, but accepts a shorthand letter that can be used after a single dash.
+func (f *FlagSet) IntVarP(p *int, name, shorthand string, value int, usage string) {
+       f.VarP(newIntValue(value, p), name, shorthand, usage)
+}
+
+// IntVar defines an int flag with specified name, default value, and usage string.
+// The argument p points to an int variable in which to store the value of the flag.
+func IntVar(p *int, name string, value int, usage string) {
+       CommandLine.VarP(newIntValue(value, p), name, "", usage)
+}
+
+// IntVarP is like IntVar, but accepts a shorthand letter that can be used after a single dash.
+func IntVarP(p *int, name, shorthand string, value int, usage string) {
+       CommandLine.VarP(newIntValue(value, p), name, shorthand, usage)
+}
+
+// Int defines an int flag with specified name, default value, and usage string.
+// The return value is the address of an int variable that stores the value of the flag.
+func (f *FlagSet) Int(name string, value int, usage string) *int {
+       p := new(int)
+       f.IntVarP(p, name, "", value, usage)
+       return p
+}
+
+// IntP is like Int, but accepts a shorthand letter that can be used after a single dash.
+func (f *FlagSet) IntP(name, shorthand string, value int, usage string) *int {
+       p := new(int)
+       f.IntVarP(p, name, shorthand, value, usage)
+       return p
+}
+
+// Int defines an int flag with specified name, default value, and usage string.
+// The return value is the address of an int variable that stores the value of the flag.
+func Int(name string, value int, usage string) *int {
+       return CommandLine.IntP(name, "", value, usage)
+}
+
+// IntP is like Int, but accepts a shorthand letter that can be used after a single dash.
+func IntP(name, shorthand string, value int, usage string) *int {
+       return CommandLine.IntP(name, shorthand, value, usage)
+}
diff --git a/vendor/github.com/spf13/pflag/int16.go b/vendor/github.com/spf13/pflag/int16.go
new file mode 100644 (file)
index 0000000..f1a01d0
--- /dev/null
@@ -0,0 +1,88 @@
+package pflag
+
+import "strconv"
+
+// -- int16 Value
+type int16Value int16
+
+func newInt16Value(val int16, p *int16) *int16Value {
+       *p = val
+       return (*int16Value)(p)
+}
+
+func (i *int16Value) Set(s string) error {
+       v, err := strconv.ParseInt(s, 0, 16)
+       *i = int16Value(v)
+       return err
+}
+
+func (i *int16Value) Type() string {
+       return "int16"
+}
+
+func (i *int16Value) String() string { return strconv.FormatInt(int64(*i), 10) }
+
+func int16Conv(sval string) (interface{}, error) {
+       v, err := strconv.ParseInt(sval, 0, 16)
+       if err != nil {
+               return 0, err
+       }
+       return int16(v), nil
+}
+
+// GetInt16 returns the int16 value of a flag with the given name
+func (f *FlagSet) GetInt16(name string) (int16, error) {
+       val, err := f.getFlagType(name, "int16", int16Conv)
+       if err != nil {
+               return 0, err
+       }
+       return val.(int16), nil
+}
+
+// Int16Var defines an int16 flag with specified name, default value, and usage string.
+// The argument p points to an int16 variable in which to store the value of the flag.
+func (f *FlagSet) Int16Var(p *int16, name string, value int16, usage string) {
+       f.VarP(newInt16Value(value, p), name, "", usage)
+}
+
+// Int16VarP is like Int16Var, but accepts a shorthand letter that can be used after a single dash.
+func (f *FlagSet) Int16VarP(p *int16, name, shorthand string, value int16, usage string) {
+       f.VarP(newInt16Value(value, p), name, shorthand, usage)
+}
+
+// Int16Var defines an int16 flag with specified name, default value, and usage string.
+// The argument p points to an int16 variable in which to store the value of the flag.
+func Int16Var(p *int16, name string, value int16, usage string) {
+       CommandLine.VarP(newInt16Value(value, p), name, "", usage)
+}
+
+// Int16VarP is like Int16Var, but accepts a shorthand letter that can be used after a single dash.
+func Int16VarP(p *int16, name, shorthand string, value int16, usage string) {
+       CommandLine.VarP(newInt16Value(value, p), name, shorthand, usage)
+}
+
+// Int16 defines an int16 flag with specified name, default value, and usage string.
+// The return value is the address of an int16 variable that stores the value of the flag.
+func (f *FlagSet) Int16(name string, value int16, usage string) *int16 {
+       p := new(int16)
+       f.Int16VarP(p, name, "", value, usage)
+       return p
+}
+
+// Int16P is like Int16, but accepts a shorthand letter that can be used after a single dash.
+func (f *FlagSet) Int16P(name, shorthand string, value int16, usage string) *int16 {
+       p := new(int16)
+       f.Int16VarP(p, name, shorthand, value, usage)
+       return p
+}
+
+// Int16 defines an int16 flag with specified name, default value, and usage string.
+// The return value is the address of an int16 variable that stores the value of the flag.
+func Int16(name string, value int16, usage string) *int16 {
+       return CommandLine.Int16P(name, "", value, usage)
+}
+
+// Int16P is like Int16, but accepts a shorthand letter that can be used after a single dash.
+func Int16P(name, shorthand string, value int16, usage string) *int16 {
+       return CommandLine.Int16P(name, shorthand, value, usage)
+}
diff --git a/vendor/github.com/spf13/pflag/int32.go b/vendor/github.com/spf13/pflag/int32.go
new file mode 100644 (file)
index 0000000..9b95944
--- /dev/null
@@ -0,0 +1,88 @@
+package pflag
+
+import "strconv"
+
+// -- int32 Value
+type int32Value int32
+
+func newInt32Value(val int32, p *int32) *int32Value {
+       *p = val
+       return (*int32Value)(p)
+}
+
+func (i *int32Value) Set(s string) error {
+       v, err := strconv.ParseInt(s, 0, 32)
+       *i = int32Value(v)
+       return err
+}
+
+func (i *int32Value) Type() string {
+       return "int32"
+}
+
+func (i *int32Value) String() string { return strconv.FormatInt(int64(*i), 10) }
+
+func int32Conv(sval string) (interface{}, error) {
+       v, err := strconv.ParseInt(sval, 0, 32)
+       if err != nil {
+               return 0, err
+       }
+       return int32(v), nil
+}
+
+// GetInt32 return the int32 value of a flag with the given name
+func (f *FlagSet) GetInt32(name string) (int32, error) {
+       val, err := f.getFlagType(name, "int32", int32Conv)
+       if err != nil {
+               return 0, err
+       }
+       return val.(int32), nil
+}
+
+// Int32Var defines an int32 flag with specified name, default value, and usage string.
+// The argument p points to an int32 variable in which to store the value of the flag.
+func (f *FlagSet) Int32Var(p *int32, name string, value int32, usage string) {
+       f.VarP(newInt32Value(value, p), name, "", usage)
+}
+
+// Int32VarP is like Int32Var, but accepts a shorthand letter that can be used after a single dash.
+func (f *FlagSet) Int32VarP(p *int32, name, shorthand string, value int32, usage string) {
+       f.VarP(newInt32Value(value, p), name, shorthand, usage)
+}
+
+// Int32Var defines an int32 flag with specified name, default value, and usage string.
+// The argument p points to an int32 variable in which to store the value of the flag.
+func Int32Var(p *int32, name string, value int32, usage string) {
+       CommandLine.VarP(newInt32Value(value, p), name, "", usage)
+}
+
+// Int32VarP is like Int32Var, but accepts a shorthand letter that can be used after a single dash.
+func Int32VarP(p *int32, name, shorthand string, value int32, usage string) {
+       CommandLine.VarP(newInt32Value(value, p), name, shorthand, usage)
+}
+
+// Int32 defines an int32 flag with specified name, default value, and usage string.
+// The return value is the address of an int32 variable that stores the value of the flag.
+func (f *FlagSet) Int32(name string, value int32, usage string) *int32 {
+       p := new(int32)
+       f.Int32VarP(p, name, "", value, usage)
+       return p
+}
+
+// Int32P is like Int32, but accepts a shorthand letter that can be used after a single dash.
+func (f *FlagSet) Int32P(name, shorthand string, value int32, usage string) *int32 {
+       p := new(int32)
+       f.Int32VarP(p, name, shorthand, value, usage)
+       return p
+}
+
+// Int32 defines an int32 flag with specified name, default value, and usage string.
+// The return value is the address of an int32 variable that stores the value of the flag.
+func Int32(name string, value int32, usage string) *int32 {
+       return CommandLine.Int32P(name, "", value, usage)
+}
+
+// Int32P is like Int32, but accepts a shorthand letter that can be used after a single dash.
+func Int32P(name, shorthand string, value int32, usage string) *int32 {
+       return CommandLine.Int32P(name, shorthand, value, usage)
+}
diff --git a/vendor/github.com/spf13/pflag/int64.go b/vendor/github.com/spf13/pflag/int64.go
new file mode 100644 (file)
index 0000000..0026d78
--- /dev/null
@@ -0,0 +1,84 @@
+package pflag
+
+import "strconv"
+
+// -- int64 Value
+type int64Value int64
+
+func newInt64Value(val int64, p *int64) *int64Value {
+       *p = val
+       return (*int64Value)(p)
+}
+
+func (i *int64Value) Set(s string) error {
+       v, err := strconv.ParseInt(s, 0, 64)
+       *i = int64Value(v)
+       return err
+}
+
+func (i *int64Value) Type() string {
+       return "int64"
+}
+
+func (i *int64Value) String() string { return strconv.FormatInt(int64(*i), 10) }
+
+func int64Conv(sval string) (interface{}, error) {
+       return strconv.ParseInt(sval, 0, 64)
+}
+
+// GetInt64 return the int64 value of a flag with the given name
+func (f *FlagSet) GetInt64(name string) (int64, error) {
+       val, err := f.getFlagType(name, "int64", int64Conv)
+       if err != nil {
+               return 0, err
+       }
+       return val.(int64), nil
+}
+
+// Int64Var defines an int64 flag with specified name, default value, and usage string.
+// The argument p points to an int64 variable in which to store the value of the flag.
+func (f *FlagSet) Int64Var(p *int64, name string, value int64, usage string) {
+       f.VarP(newInt64Value(value, p), name, "", usage)
+}
+
+// Int64VarP is like Int64Var, but accepts a shorthand letter that can be used after a single dash.
+func (f *FlagSet) Int64VarP(p *int64, name, shorthand string, value int64, usage string) {
+       f.VarP(newInt64Value(value, p), name, shorthand, usage)
+}
+
+// Int64Var defines an int64 flag with specified name, default value, and usage string.
+// The argument p points to an int64 variable in which to store the value of the flag.
+func Int64Var(p *int64, name string, value int64, usage string) {
+       CommandLine.VarP(newInt64Value(value, p), name, "", usage)
+}
+
+// Int64VarP is like Int64Var, but accepts a shorthand letter that can be used after a single dash.
+func Int64VarP(p *int64, name, shorthand string, value int64, usage string) {
+       CommandLine.VarP(newInt64Value(value, p), name, shorthand, usage)
+}
+
+// Int64 defines an int64 flag with specified name, default value, and usage string.
+// The return value is the address of an int64 variable that stores the value of the flag.
+func (f *FlagSet) Int64(name string, value int64, usage string) *int64 {
+       p := new(int64)
+       f.Int64VarP(p, name, "", value, usage)
+       return p
+}
+
+// Int64P is like Int64, but accepts a shorthand letter that can be used after a single dash.
+func (f *FlagSet) Int64P(name, shorthand string, value int64, usage string) *int64 {
+       p := new(int64)
+       f.Int64VarP(p, name, shorthand, value, usage)
+       return p
+}
+
+// Int64 defines an int64 flag with specified name, default value, and usage string.
+// The return value is the address of an int64 variable that stores the value of the flag.
+func Int64(name string, value int64, usage string) *int64 {
+       return CommandLine.Int64P(name, "", value, usage)
+}
+
+// Int64P is like Int64, but accepts a shorthand letter that can be used after a single dash.
+func Int64P(name, shorthand string, value int64, usage string) *int64 {
+       return CommandLine.Int64P(name, shorthand, value, usage)
+}
diff --git a/vendor/github.com/spf13/pflag/int8.go b/vendor/github.com/spf13/pflag/int8.go
new file mode 100644 (file)
index 0000000..4da9222
--- /dev/null
@@ -0,0 +1,88 @@
+package pflag
+
+import "strconv"
+
+// -- int8 Value
+type int8Value int8
+
+func newInt8Value(val int8, p *int8) *int8Value {
+       *p = val
+       return (*int8Value)(p)
+}
+
+func (i *int8Value) Set(s string) error {
+       v, err := strconv.ParseInt(s, 0, 8)
+       *i = int8Value(v)
+       return err
+}
+
+func (i *int8Value) Type() string {
+       return "int8"
+}
+
+func (i *int8Value) String() string { return strconv.FormatInt(int64(*i), 10) }
+
+func int8Conv(sval string) (interface{}, error) {
+       v, err := strconv.ParseInt(sval, 0, 8)
+       if err != nil {
+               return 0, err
+       }
+       return int8(v), nil
+}
+
+// GetInt8 return the int8 value of a flag with the given name
+func (f *FlagSet) GetInt8(name string) (int8, error) {
+       val, err := f.getFlagType(name, "int8", int8Conv)
+       if err != nil {
+               return 0, err
+       }
+       return val.(int8), nil
+}
+
+// Int8Var defines an int8 flag with specified name, default value, and usage string.
+// The argument p points to an int8 variable in which to store the value of the flag.
+func (f *FlagSet) Int8Var(p *int8, name string, value int8, usage string) {
+       f.VarP(newInt8Value(value, p), name, "", usage)
+}
+
+// Int8VarP is like Int8Var, but accepts a shorthand letter that can be used after a single dash.
+func (f *FlagSet) Int8VarP(p *int8, name, shorthand string, value int8, usage string) {
+       f.VarP(newInt8Value(value, p), name, shorthand, usage)
+}
+
+// Int8Var defines an int8 flag with specified name, default value, and usage string.
+// The argument p points to an int8 variable in which to store the value of the flag.
+func Int8Var(p *int8, name string, value int8, usage string) {
+       CommandLine.VarP(newInt8Value(value, p), name, "", usage)
+}
+
+// Int8VarP is like Int8Var, but accepts a shorthand letter that can be used after a single dash.
+func Int8VarP(p *int8, name, shorthand string, value int8, usage string) {
+       CommandLine.VarP(newInt8Value(value, p), name, shorthand, usage)
+}
+
+// Int8 defines an int8 flag with specified name, default value, and usage string.
+// The return value is the address of an int8 variable that stores the value of the flag.
+func (f *FlagSet) Int8(name string, value int8, usage string) *int8 {
+       p := new(int8)
+       f.Int8VarP(p, name, "", value, usage)
+       return p
+}
+
+// Int8P is like Int8, but accepts a shorthand letter that can be used after a single dash.
+func (f *FlagSet) Int8P(name, shorthand string, value int8, usage string) *int8 {
+       p := new(int8)
+       f.Int8VarP(p, name, shorthand, value, usage)
+       return p
+}
+
+// Int8 defines an int8 flag with specified name, default value, and usage string.
+// The return value is the address of an int8 variable that stores the value of the flag.
+func Int8(name string, value int8, usage string) *int8 {
+       return CommandLine.Int8P(name, "", value, usage)
+}
+
+// Int8P is like Int8, but accepts a shorthand letter that can be used after a single dash.
+func Int8P(name, shorthand string, value int8, usage string) *int8 {
+       return CommandLine.Int8P(name, shorthand, value, usage)
+}
diff --git a/vendor/github.com/spf13/pflag/int_slice.go b/vendor/github.com/spf13/pflag/int_slice.go
new file mode 100644 (file)
index 0000000..1e7c9ed
--- /dev/null
@@ -0,0 +1,128 @@
+package pflag
+
+import (
+       "fmt"
+       "strconv"
+       "strings"
+)
+
+// -- intSlice Value
+type intSliceValue struct {
+       value   *[]int
+       changed bool
+}
+
+func newIntSliceValue(val []int, p *[]int) *intSliceValue {
+       isv := new(intSliceValue)
+       isv.value = p
+       *isv.value = val
+       return isv
+}
+
+func (s *intSliceValue) Set(val string) error {
+       ss := strings.Split(val, ",")
+       out := make([]int, len(ss))
+       for i, d := range ss {
+               var err error
+               out[i], err = strconv.Atoi(d)
+               if err != nil {
+                       return err
+               }
+
+       }
+       if !s.changed {
+               *s.value = out
+       } else {
+               *s.value = append(*s.value, out...)
+       }
+       s.changed = true
+       return nil
+}
+
+func (s *intSliceValue) Type() string {
+       return "intSlice"
+}
+
+func (s *intSliceValue) String() string {
+       out := make([]string, len(*s.value))
+       for i, d := range *s.value {
+               out[i] = fmt.Sprintf("%d", d)
+       }
+       return "[" + strings.Join(out, ",") + "]"
+}
+
+func intSliceConv(val string) (interface{}, error) {
+       val = strings.Trim(val, "[]")
+       // Empty string would cause a slice with one (empty) entry
+       if len(val) == 0 {
+               return []int{}, nil
+       }
+       ss := strings.Split(val, ",")
+       out := make([]int, len(ss))
+       for i, d := range ss {
+               var err error
+               out[i], err = strconv.Atoi(d)
+               if err != nil {
+                       return nil, err
+               }
+
+       }
+       return out, nil
+}
+
+// GetIntSlice return the []int value of a flag with the given name
+func (f *FlagSet) GetIntSlice(name string) ([]int, error) {
+       val, err := f.getFlagType(name, "intSlice", intSliceConv)
+       if err != nil {
+               return []int{}, err
+       }
+       return val.([]int), nil
+}
+
+// IntSliceVar defines a intSlice flag with specified name, default value, and usage string.
+// The argument p points to a []int variable in which to store the value of the flag.
+func (f *FlagSet) IntSliceVar(p *[]int, name string, value []int, usage string) {
+       f.VarP(newIntSliceValue(value, p), name, "", usage)
+}
+
+// IntSliceVarP is like IntSliceVar, but accepts a shorthand letter that can be used after a single dash.
+func (f *FlagSet) IntSliceVarP(p *[]int, name, shorthand string, value []int, usage string) {
+       f.VarP(newIntSliceValue(value, p), name, shorthand, usage)
+}
+
+// IntSliceVar defines a int[] flag with specified name, default value, and usage string.
+// The argument p points to a int[] variable in which to store the value of the flag.
+func IntSliceVar(p *[]int, name string, value []int, usage string) {
+       CommandLine.VarP(newIntSliceValue(value, p), name, "", usage)
+}
+
+// IntSliceVarP is like IntSliceVar, but accepts a shorthand letter that can be used after a single dash.
+func IntSliceVarP(p *[]int, name, shorthand string, value []int, usage string) {
+       CommandLine.VarP(newIntSliceValue(value, p), name, shorthand, usage)
+}
+
+// IntSlice defines a []int flag with specified name, default value, and usage string.
+// The return value is the address of a []int variable that stores the value of the flag.
+func (f *FlagSet) IntSlice(name string, value []int, usage string) *[]int {
+       p := []int{}
+       f.IntSliceVarP(&p, name, "", value, usage)
+       return &p
+}
+
+// IntSliceP is like IntSlice, but accepts a shorthand letter that can be used after a single dash.
+func (f *FlagSet) IntSliceP(name, shorthand string, value []int, usage string) *[]int {
+       p := []int{}
+       f.IntSliceVarP(&p, name, shorthand, value, usage)
+       return &p
+}
+
+// IntSlice defines a []int flag with specified name, default value, and usage string.
+// The return value is the address of a []int variable that stores the value of the flag.
+func IntSlice(name string, value []int, usage string) *[]int {
+       return CommandLine.IntSliceP(name, "", value, usage)
+}
+
+// IntSliceP is like IntSlice, but accepts a shorthand letter that can be used after a single dash.
+func IntSliceP(name, shorthand string, value []int, usage string) *[]int {
+       return CommandLine.IntSliceP(name, shorthand, value, usage)
+}
diff --git a/vendor/github.com/spf13/pflag/ip.go b/vendor/github.com/spf13/pflag/ip.go
new file mode 100644 (file)
index 0000000..3d414ba
--- /dev/null
@@ -0,0 +1,94 @@
+package pflag
+
+import (
+       "fmt"
+       "net"
+       "strings"
+)
+
+// -- net.IP value
+type ipValue net.IP
+
+func newIPValue(val net.IP, p *net.IP) *ipValue {
+       *p = val
+       return (*ipValue)(p)
+}
+
+func (i *ipValue) String() string { return net.IP(*i).String() }
+func (i *ipValue) Set(s string) error {
+       ip := net.ParseIP(strings.TrimSpace(s))
+       if ip == nil {
+               return fmt.Errorf("failed to parse IP: %q", s)
+       }
+       *i = ipValue(ip)
+       return nil
+}
+
+func (i *ipValue) Type() string {
+       return "ip"
+}
+
+func ipConv(sval string) (interface{}, error) {
+       ip := net.ParseIP(sval)
+       if ip != nil {
+               return ip, nil
+       }
+       return nil, fmt.Errorf("invalid string being converted to IP address: %s", sval)
+}
+
+// GetIP return the net.IP value of a flag with the given name
+func (f *FlagSet) GetIP(name string) (net.IP, error) {
+       val, err := f.getFlagType(name, "ip", ipConv)
+       if err != nil {
+               return nil, err
+       }
+       return val.(net.IP), nil
+}
+
+// IPVar defines an net.IP flag with specified name, default value, and usage string.
+// The argument p points to an net.IP variable in which to store the value of the flag.
+func (f *FlagSet) IPVar(p *net.IP, name string, value net.IP, usage string) {
+       f.VarP(newIPValue(value, p), name, "", usage)
+}
+
+// IPVarP is like IPVar, but accepts a shorthand letter that can be used after a single dash.
+func (f *FlagSet) IPVarP(p *net.IP, name, shorthand string, value net.IP, usage string) {
+       f.VarP(newIPValue(value, p), name, shorthand, usage)
+}
+
+// IPVar defines an net.IP flag with specified name, default value, and usage string.
+// The argument p points to an net.IP variable in which to store the value of the flag.
+func IPVar(p *net.IP, name string, value net.IP, usage string) {
+       CommandLine.VarP(newIPValue(value, p), name, "", usage)
+}
+
+// IPVarP is like IPVar, but accepts a shorthand letter that can be used after a single dash.
+func IPVarP(p *net.IP, name, shorthand string, value net.IP, usage string) {
+       CommandLine.VarP(newIPValue(value, p), name, shorthand, usage)
+}
+
+// IP defines an net.IP flag with specified name, default value, and usage string.
+// The return value is the address of an net.IP variable that stores the value of the flag.
+func (f *FlagSet) IP(name string, value net.IP, usage string) *net.IP {
+       p := new(net.IP)
+       f.IPVarP(p, name, "", value, usage)
+       return p
+}
+
+// IPP is like IP, but accepts a shorthand letter that can be used after a single dash.
+func (f *FlagSet) IPP(name, shorthand string, value net.IP, usage string) *net.IP {
+       p := new(net.IP)
+       f.IPVarP(p, name, shorthand, value, usage)
+       return p
+}
+
+// IP defines an net.IP flag with specified name, default value, and usage string.
+// The return value is the address of an net.IP variable that stores the value of the flag.
+func IP(name string, value net.IP, usage string) *net.IP {
+       return CommandLine.IPP(name, "", value, usage)
+}
+
+// IPP is like IP, but accepts a shorthand letter that can be used after a single dash.
+func IPP(name, shorthand string, value net.IP, usage string) *net.IP {
+       return CommandLine.IPP(name, shorthand, value, usage)
+}
diff --git a/vendor/github.com/spf13/pflag/ip_slice.go b/vendor/github.com/spf13/pflag/ip_slice.go
new file mode 100644 (file)
index 0000000..7dd196f
--- /dev/null
@@ -0,0 +1,148 @@
+package pflag
+
+import (
+       "fmt"
+       "io"
+       "net"
+       "strings"
+)
+
+// -- ipSlice Value
+type ipSliceValue struct {
+       value   *[]net.IP
+       changed bool
+}
+
+func newIPSliceValue(val []net.IP, p *[]net.IP) *ipSliceValue {
+       ipsv := new(ipSliceValue)
+       ipsv.value = p
+       *ipsv.value = val
+       return ipsv
+}
+
+// Set converts, and assigns, the comma-separated IP argument string representation as the []net.IP value of this flag.
+// If Set is called on a flag that already has a []net.IP assigned, the newly converted values will be appended.
+func (s *ipSliceValue) Set(val string) error {
+
+       // remove all quote characters
+       rmQuote := strings.NewReplacer(`"`, "", `'`, "", "`", "")
+
+       // read flag arguments with CSV parser
+       ipStrSlice, err := readAsCSV(rmQuote.Replace(val))
+       if err != nil && err != io.EOF {
+               return err
+       }
+
+       // parse ip values into slice
+       out := make([]net.IP, 0, len(ipStrSlice))
+       for _, ipStr := range ipStrSlice {
+               ip := net.ParseIP(strings.TrimSpace(ipStr))
+               if ip == nil {
+                       return fmt.Errorf("invalid string being converted to IP address: %s", ipStr)
+               }
+               out = append(out, ip)
+       }
+
+       if !s.changed {
+               *s.value = out
+       } else {
+               *s.value = append(*s.value, out...)
+       }
+
+       s.changed = true
+
+       return nil
+}
+
+// Type returns a string that uniquely represents this flag's type.
+func (s *ipSliceValue) Type() string {
+       return "ipSlice"
+}
+
+// String defines a "native" format for this net.IP slice flag value.
+func (s *ipSliceValue) String() string {
+
+       ipStrSlice := make([]string, len(*s.value))
+       for i, ip := range *s.value {
+               ipStrSlice[i] = ip.String()
+       }
+
+       out, _ := writeAsCSV(ipStrSlice)
+
+       return "[" + out + "]"
+}
+
+func ipSliceConv(val string) (interface{}, error) {
+       val = strings.Trim(val, "[]")
+       // Emtpy string would cause a slice with one (empty) entry
+       if len(val) == 0 {
+               return []net.IP{}, nil
+       }
+       ss := strings.Split(val, ",")
+       out := make([]net.IP, len(ss))
+       for i, sval := range ss {
+               ip := net.ParseIP(strings.TrimSpace(sval))
+               if ip == nil {
+                       return nil, fmt.Errorf("invalid string being converted to IP address: %s", sval)
+               }
+               out[i] = ip
+       }
+       return out, nil
+}
+
+// GetIPSlice returns the []net.IP value of a flag with the given name
+func (f *FlagSet) GetIPSlice(name string) ([]net.IP, error) {
+       val, err := f.getFlagType(name, "ipSlice", ipSliceConv)
+       if err != nil {
+               return []net.IP{}, err
+       }
+       return val.([]net.IP), nil
+}
+
+// IPSliceVar defines a ipSlice flag with specified name, default value, and usage string.
+// The argument p points to a []net.IP variable in which to store the value of the flag.
+func (f *FlagSet) IPSliceVar(p *[]net.IP, name string, value []net.IP, usage string) {
+       f.VarP(newIPSliceValue(value, p), name, "", usage)
+}
+
+// IPSliceVarP is like IPSliceVar, but accepts a shorthand letter that can be used after a single dash.
+func (f *FlagSet) IPSliceVarP(p *[]net.IP, name, shorthand string, value []net.IP, usage string) {
+       f.VarP(newIPSliceValue(value, p), name, shorthand, usage)
+}
+
+// IPSliceVar defines a []net.IP flag with specified name, default value, and usage string.
+// The argument p points to a []net.IP variable in which to store the value of the flag.
+func IPSliceVar(p *[]net.IP, name string, value []net.IP, usage string) {
+       CommandLine.VarP(newIPSliceValue(value, p), name, "", usage)
+}
+
+// IPSliceVarP is like IPSliceVar, but accepts a shorthand letter that can be used after a single dash.
+func IPSliceVarP(p *[]net.IP, name, shorthand string, value []net.IP, usage string) {
+       CommandLine.VarP(newIPSliceValue(value, p), name, shorthand, usage)
+}
+
+// IPSlice defines a []net.IP flag with specified name, default value, and usage string.
+// The return value is the address of a []net.IP variable that stores the value of that flag.
+func (f *FlagSet) IPSlice(name string, value []net.IP, usage string) *[]net.IP {
+       p := []net.IP{}
+       f.IPSliceVarP(&p, name, "", value, usage)
+       return &p
+}
+
+// IPSliceP is like IPSlice, but accepts a shorthand letter that can be used after a single dash.
+func (f *FlagSet) IPSliceP(name, shorthand string, value []net.IP, usage string) *[]net.IP {
+       p := []net.IP{}
+       f.IPSliceVarP(&p, name, shorthand, value, usage)
+       return &p
+}
+
+// IPSlice defines a []net.IP flag with specified name, default value, and usage string.
+// The return value is the address of a []net.IP variable that stores the value of the flag.
+func IPSlice(name string, value []net.IP, usage string) *[]net.IP {
+       return CommandLine.IPSliceP(name, "", value, usage)
+}
+
+// IPSliceP is like IPSlice, but accepts a shorthand letter that can be used after a single dash.
+func IPSliceP(name, shorthand string, value []net.IP, usage string) *[]net.IP {
+       return CommandLine.IPSliceP(name, shorthand, value, usage)
+}
diff --git a/vendor/github.com/spf13/pflag/ipmask.go b/vendor/github.com/spf13/pflag/ipmask.go
new file mode 100644 (file)
index 0000000..5bd44bd
--- /dev/null
@@ -0,0 +1,122 @@
+package pflag
+
+import (
+       "fmt"
+       "net"
+       "strconv"
+)
+
+// -- net.IPMask value
+type ipMaskValue net.IPMask
+
+func newIPMaskValue(val net.IPMask, p *net.IPMask) *ipMaskValue {
+       *p = val
+       return (*ipMaskValue)(p)
+}
+
+func (i *ipMaskValue) String() string { return net.IPMask(*i).String() }
+func (i *ipMaskValue) Set(s string) error {
+       ip := ParseIPv4Mask(s)
+       if ip == nil {
+               return fmt.Errorf("failed to parse IP mask: %q", s)
+       }
+       *i = ipMaskValue(ip)
+       return nil
+}
+
+func (i *ipMaskValue) Type() string {
+       return "ipMask"
+}
+
+// ParseIPv4Mask written in IP form (e.g. 255.255.255.0).
+// This function should really belong to the net package.
+func ParseIPv4Mask(s string) net.IPMask {
+       mask := net.ParseIP(s)
+       if mask == nil {
+               if len(s) != 8 {
+                       return nil
+               }
+               // net.IPMask.String() actually outputs things like ffffff00
+               // so write a horrible parser for that as well  :-(
+               m := []int{}
+               for i := 0; i < 4; i++ {
+                       b := "0x" + s[2*i:2*i+2]
+                       d, err := strconv.ParseInt(b, 0, 0)
+                       if err != nil {
+                               return nil
+                       }
+                       m = append(m, int(d))
+               }
+               s := fmt.Sprintf("%d.%d.%d.%d", m[0], m[1], m[2], m[3])
+               mask = net.ParseIP(s)
+               if mask == nil {
+                       return nil
+               }
+       }
+       return net.IPv4Mask(mask[12], mask[13], mask[14], mask[15])
+}
+
+func parseIPv4Mask(sval string) (interface{}, error) {
+       mask := ParseIPv4Mask(sval)
+       if mask == nil {
+               return nil, fmt.Errorf("unable to parse %s as net.IPMask", sval)
+       }
+       return mask, nil
+}
+
+// GetIPv4Mask return the net.IPv4Mask value of a flag with the given name
+func (f *FlagSet) GetIPv4Mask(name string) (net.IPMask, error) {
+       val, err := f.getFlagType(name, "ipMask", parseIPv4Mask)
+       if err != nil {
+               return nil, err
+       }
+       return val.(net.IPMask), nil
+}
+
+// IPMaskVar defines an net.IPMask flag with specified name, default value, and usage string.
+// The argument p points to an net.IPMask variable in which to store the value of the flag.
+func (f *FlagSet) IPMaskVar(p *net.IPMask, name string, value net.IPMask, usage string) {
+       f.VarP(newIPMaskValue(value, p), name, "", usage)
+}
+
+// IPMaskVarP is like IPMaskVar, but accepts a shorthand letter that can be used after a single dash.
+func (f *FlagSet) IPMaskVarP(p *net.IPMask, name, shorthand string, value net.IPMask, usage string) {
+       f.VarP(newIPMaskValue(value, p), name, shorthand, usage)
+}
+
+// IPMaskVar defines an net.IPMask flag with specified name, default value, and usage string.
+// The argument p points to an net.IPMask variable in which to store the value of the flag.
+func IPMaskVar(p *net.IPMask, name string, value net.IPMask, usage string) {
+       CommandLine.VarP(newIPMaskValue(value, p), name, "", usage)
+}
+
+// IPMaskVarP is like IPMaskVar, but accepts a shorthand letter that can be used after a single dash.
+func IPMaskVarP(p *net.IPMask, name, shorthand string, value net.IPMask, usage string) {
+       CommandLine.VarP(newIPMaskValue(value, p), name, shorthand, usage)
+}
+
+// IPMask defines an net.IPMask flag with specified name, default value, and usage string.
+// The return value is the address of an net.IPMask variable that stores the value of the flag.
+func (f *FlagSet) IPMask(name string, value net.IPMask, usage string) *net.IPMask {
+       p := new(net.IPMask)
+       f.IPMaskVarP(p, name, "", value, usage)
+       return p
+}
+
+// IPMaskP is like IPMask, but accepts a shorthand letter that can be used after a single dash.
+func (f *FlagSet) IPMaskP(name, shorthand string, value net.IPMask, usage string) *net.IPMask {
+       p := new(net.IPMask)
+       f.IPMaskVarP(p, name, shorthand, value, usage)
+       return p
+}
+
+// IPMask defines an net.IPMask flag with specified name, default value, and usage string.
+// The return value is the address of an net.IPMask variable that stores the value of the flag.
+func IPMask(name string, value net.IPMask, usage string) *net.IPMask {
+       return CommandLine.IPMaskP(name, "", value, usage)
+}
+
+// IPMaskP is like IP, but accepts a shorthand letter that can be used after a single dash.
+func IPMaskP(name, shorthand string, value net.IPMask, usage string) *net.IPMask {
+       return CommandLine.IPMaskP(name, shorthand, value, usage)
+}
diff --git a/vendor/github.com/spf13/pflag/ipnet.go b/vendor/github.com/spf13/pflag/ipnet.go
new file mode 100644 (file)
index 0000000..e2c1b8b
--- /dev/null
@@ -0,0 +1,98 @@
+package pflag
+
+import (
+       "fmt"
+       "net"
+       "strings"
+)
+
+// IPNet adapts net.IPNet for use as a flag.
+type ipNetValue net.IPNet
+
+func (ipnet ipNetValue) String() string {
+       n := net.IPNet(ipnet)
+       return n.String()
+}
+
+func (ipnet *ipNetValue) Set(value string) error {
+       _, n, err := net.ParseCIDR(strings.TrimSpace(value))
+       if err != nil {
+               return err
+       }
+       *ipnet = ipNetValue(*n)
+       return nil
+}
+
+func (*ipNetValue) Type() string {
+       return "ipNet"
+}
+
+func newIPNetValue(val net.IPNet, p *net.IPNet) *ipNetValue {
+       *p = val
+       return (*ipNetValue)(p)
+}
+
+func ipNetConv(sval string) (interface{}, error) {
+       _, n, err := net.ParseCIDR(strings.TrimSpace(sval))
+       if err == nil {
+               return *n, nil
+       }
+       return nil, fmt.Errorf("invalid string being converted to IPNet: %s", sval)
+}
+
+// GetIPNet return the net.IPNet value of a flag with the given name
+func (f *FlagSet) GetIPNet(name string) (net.IPNet, error) {
+       val, err := f.getFlagType(name, "ipNet", ipNetConv)
+       if err != nil {
+               return net.IPNet{}, err
+       }
+       return val.(net.IPNet), nil
+}
+
+// IPNetVar defines an net.IPNet flag with specified name, default value, and usage string.
+// The argument p points to an net.IPNet variable in which to store the value of the flag.
+func (f *FlagSet) IPNetVar(p *net.IPNet, name string, value net.IPNet, usage string) {
+       f.VarP(newIPNetValue(value, p), name, "", usage)
+}
+
+// IPNetVarP is like IPNetVar, but accepts a shorthand letter that can be used after a single dash.
+func (f *FlagSet) IPNetVarP(p *net.IPNet, name, shorthand string, value net.IPNet, usage string) {
+       f.VarP(newIPNetValue(value, p), name, shorthand, usage)
+}
+
+// IPNetVar defines an net.IPNet flag with specified name, default value, and usage string.
+// The argument p points to an net.IPNet variable in which to store the value of the flag.
+func IPNetVar(p *net.IPNet, name string, value net.IPNet, usage string) {
+       CommandLine.VarP(newIPNetValue(value, p), name, "", usage)
+}
+
+// IPNetVarP is like IPNetVar, but accepts a shorthand letter that can be used after a single dash.
+func IPNetVarP(p *net.IPNet, name, shorthand string, value net.IPNet, usage string) {
+       CommandLine.VarP(newIPNetValue(value, p), name, shorthand, usage)
+}
+
+// IPNet defines an net.IPNet flag with specified name, default value, and usage string.
+// The return value is the address of an net.IPNet variable that stores the value of the flag.
+func (f *FlagSet) IPNet(name string, value net.IPNet, usage string) *net.IPNet {
+       p := new(net.IPNet)
+       f.IPNetVarP(p, name, "", value, usage)
+       return p
+}
+
+// IPNetP is like IPNet, but accepts a shorthand letter that can be used after a single dash.
+func (f *FlagSet) IPNetP(name, shorthand string, value net.IPNet, usage string) *net.IPNet {
+       p := new(net.IPNet)
+       f.IPNetVarP(p, name, shorthand, value, usage)
+       return p
+}
+
+// IPNet defines an net.IPNet flag with specified name, default value, and usage string.
+// The return value is the address of an net.IPNet variable that stores the value of the flag.
+func IPNet(name string, value net.IPNet, usage string) *net.IPNet {
+       return CommandLine.IPNetP(name, "", value, usage)
+}
+
+// IPNetP is like IPNet, but accepts a shorthand letter that can be used after a single dash.
+func IPNetP(name, shorthand string, value net.IPNet, usage string) *net.IPNet {
+       return CommandLine.IPNetP(name, shorthand, value, usage)
+}
diff --git a/vendor/github.com/spf13/pflag/string.go b/vendor/github.com/spf13/pflag/string.go
new file mode 100644 (file)
index 0000000..04e0a26
--- /dev/null
@@ -0,0 +1,80 @@
+package pflag
+
+// -- string Value
+type stringValue string
+
+func newStringValue(val string, p *string) *stringValue {
+       *p = val
+       return (*stringValue)(p)
+}
+
+func (s *stringValue) Set(val string) error {
+       *s = stringValue(val)
+       return nil
+}
+func (s *stringValue) Type() string {
+       return "string"
+}
+
+func (s *stringValue) String() string { return string(*s) }
+
+func stringConv(sval string) (interface{}, error) {
+       return sval, nil
+}
+
+// GetString return the string value of a flag with the given name
+func (f *FlagSet) GetString(name string) (string, error) {
+       val, err := f.getFlagType(name, "string", stringConv)
+       if err != nil {
+               return "", err
+       }
+       return val.(string), nil
+}
+
+// StringVar defines a string flag with specified name, default value, and usage string.
+// The argument p points to a string variable in which to store the value of the flag.
+func (f *FlagSet) StringVar(p *string, name string, value string, usage string) {
+       f.VarP(newStringValue(value, p), name, "", usage)
+}
+
+// StringVarP is like StringVar, but accepts a shorthand letter that can be used after a single dash.
+func (f *FlagSet) StringVarP(p *string, name, shorthand string, value string, usage string) {
+       f.VarP(newStringValue(value, p), name, shorthand, usage)
+}
+
+// StringVar defines a string flag with specified name, default value, and usage string.
+// The argument p points to a string variable in which to store the value of the flag.
+func StringVar(p *string, name string, value string, usage string) {
+       CommandLine.VarP(newStringValue(value, p), name, "", usage)
+}
+
+// StringVarP is like StringVar, but accepts a shorthand letter that can be used after a single dash.
+func StringVarP(p *string, name, shorthand string, value string, usage string) {
+       CommandLine.VarP(newStringValue(value, p), name, shorthand, usage)
+}
+
+// String defines a string flag with specified name, default value, and usage string.
+// The return value is the address of a string variable that stores the value of the flag.
+func (f *FlagSet) String(name string, value string, usage string) *string {
+       p := new(string)
+       f.StringVarP(p, name, "", value, usage)
+       return p
+}
+
+// StringP is like String, but accepts a shorthand letter that can be used after a single dash.
+func (f *FlagSet) StringP(name, shorthand string, value string, usage string) *string {
+       p := new(string)
+       f.StringVarP(p, name, shorthand, value, usage)
+       return p
+}
+
+// String defines a string flag with specified name, default value, and usage string.
+// The return value is the address of a string variable that stores the value of the flag.
+func String(name string, value string, usage string) *string {
+       return CommandLine.StringP(name, "", value, usage)
+}
+
+// StringP is like String, but accepts a shorthand letter that can be used after a single dash.
+func StringP(name, shorthand string, value string, usage string) *string {
+       return CommandLine.StringP(name, shorthand, value, usage)
+}
diff --git a/vendor/github.com/spf13/pflag/string_array.go b/vendor/github.com/spf13/pflag/string_array.go
new file mode 100644 (file)
index 0000000..fa7bc60
--- /dev/null
@@ -0,0 +1,103 @@
+package pflag
+
+// -- stringArray Value
+type stringArrayValue struct {
+       value   *[]string
+       changed bool
+}
+
+func newStringArrayValue(val []string, p *[]string) *stringArrayValue {
+       ssv := new(stringArrayValue)
+       ssv.value = p
+       *ssv.value = val
+       return ssv
+}
+
+func (s *stringArrayValue) Set(val string) error {
+       if !s.changed {
+               *s.value = []string{val}
+               s.changed = true
+       } else {
+               *s.value = append(*s.value, val)
+       }
+       return nil
+}
+
+func (s *stringArrayValue) Type() string {
+       return "stringArray"
+}
+
+func (s *stringArrayValue) String() string {
+       str, _ := writeAsCSV(*s.value)
+       return "[" + str + "]"
+}
+
+func stringArrayConv(sval string) (interface{}, error) {
+       sval = sval[1 : len(sval)-1]
+       // An empty string would cause a array with one (empty) string
+       if len(sval) == 0 {
+               return []string{}, nil
+       }
+       return readAsCSV(sval)
+}
+
+// GetStringArray return the []string value of a flag with the given name
+func (f *FlagSet) GetStringArray(name string) ([]string, error) {
+       val, err := f.getFlagType(name, "stringArray", stringArrayConv)
+       if err != nil {
+               return []string{}, err
+       }
+       return val.([]string), nil
+}
+
+// StringArrayVar defines a string flag with specified name, default value, and usage string.
+// The argument p points to a []string variable in which to store the values of the multiple flags.
+// The value of each argument will not try to be separated by comma. Use a StringSlice for that.
+func (f *FlagSet) StringArrayVar(p *[]string, name string, value []string, usage string) {
+       f.VarP(newStringArrayValue(value, p), name, "", usage)
+}
+
+// StringArrayVarP is like StringArrayVar, but accepts a shorthand letter that can be used after a single dash.
+func (f *FlagSet) StringArrayVarP(p *[]string, name, shorthand string, value []string, usage string) {
+       f.VarP(newStringArrayValue(value, p), name, shorthand, usage)
+}
+
+// StringArrayVar defines a string flag with specified name, default value, and usage string.
+// The argument p points to a []string variable in which to store the value of the flag.
+// The value of each argument will not try to be separated by comma. Use a StringSlice for that.
+func StringArrayVar(p *[]string, name string, value []string, usage string) {
+       CommandLine.VarP(newStringArrayValue(value, p), name, "", usage)
+}
+
+// StringArrayVarP is like StringArrayVar, but accepts a shorthand letter that can be used after a single dash.
+func StringArrayVarP(p *[]string, name, shorthand string, value []string, usage string) {
+       CommandLine.VarP(newStringArrayValue(value, p), name, shorthand, usage)
+}
+
+// StringArray defines a string flag with specified name, default value, and usage string.
+// The return value is the address of a []string variable that stores the value of the flag.
+// The value of each argument will not try to be separated by comma. Use a StringSlice for that.
+func (f *FlagSet) StringArray(name string, value []string, usage string) *[]string {
+       p := []string{}
+       f.StringArrayVarP(&p, name, "", value, usage)
+       return &p
+}
+
+// StringArrayP is like StringArray, but accepts a shorthand letter that can be used after a single dash.
+func (f *FlagSet) StringArrayP(name, shorthand string, value []string, usage string) *[]string {
+       p := []string{}
+       f.StringArrayVarP(&p, name, shorthand, value, usage)
+       return &p
+}
+
+// StringArray defines a string flag with specified name, default value, and usage string.
+// The return value is the address of a []string variable that stores the value of the flag.
+// The value of each argument will not try to be separated by comma. Use a StringSlice for that.
+func StringArray(name string, value []string, usage string) *[]string {
+       return CommandLine.StringArrayP(name, "", value, usage)
+}
+
+// StringArrayP is like StringArray, but accepts a shorthand letter that can be used after a single dash.
+func StringArrayP(name, shorthand string, value []string, usage string) *[]string {
+       return CommandLine.StringArrayP(name, shorthand, value, usage)
+}
diff --git a/vendor/github.com/spf13/pflag/string_slice.go b/vendor/github.com/spf13/pflag/string_slice.go
new file mode 100644 (file)
index 0000000..0cd3ccc
--- /dev/null
@@ -0,0 +1,149 @@
+package pflag
+
+import (
+       "bytes"
+       "encoding/csv"
+       "strings"
+)
+
+// -- stringSlice Value
+type stringSliceValue struct {
+       value   *[]string
+       changed bool
+}
+
+func newStringSliceValue(val []string, p *[]string) *stringSliceValue {
+       ssv := new(stringSliceValue)
+       ssv.value = p
+       *ssv.value = val
+       return ssv
+}
+
+func readAsCSV(val string) ([]string, error) {
+       if val == "" {
+               return []string{}, nil
+       }
+       stringReader := strings.NewReader(val)
+       csvReader := csv.NewReader(stringReader)
+       return csvReader.Read()
+}
+
+func writeAsCSV(vals []string) (string, error) {
+       b := &bytes.Buffer{}
+       w := csv.NewWriter(b)
+       err := w.Write(vals)
+       if err != nil {
+               return "", err
+       }
+       w.Flush()
+       return strings.TrimSuffix(b.String(), "\n"), nil
+}
+
+func (s *stringSliceValue) Set(val string) error {
+       v, err := readAsCSV(val)
+       if err != nil {
+               return err
+       }
+       if !s.changed {
+               *s.value = v
+       } else {
+               *s.value = append(*s.value, v...)
+       }
+       s.changed = true
+       return nil
+}
+
+func (s *stringSliceValue) Type() string {
+       return "stringSlice"
+}
+
+func (s *stringSliceValue) String() string {
+       str, _ := writeAsCSV(*s.value)
+       return "[" + str + "]"
+}
+
+func stringSliceConv(sval string) (interface{}, error) {
+       sval = sval[1 : len(sval)-1]
+       // An empty string would cause a slice with one (empty) string
+       if len(sval) == 0 {
+               return []string{}, nil
+       }
+       return readAsCSV(sval)
+}
+
+// GetStringSlice return the []string value of a flag with the given name
+func (f *FlagSet) GetStringSlice(name string) ([]string, error) {
+       val, err := f.getFlagType(name, "stringSlice", stringSliceConv)
+       if err != nil {
+               return []string{}, err
+       }
+       return val.([]string), nil
+}
+
+// StringSliceVar defines a string flag with specified name, default value, and usage string.
+// The argument p points to a []string variable in which to store the value of the flag.
+// Compared to StringArray flags, StringSlice flags take comma-separated value as arguments and split them accordingly.
+// For example:
+//   --ss="v1,v2" -ss="v3"
+// will result in
+//   []string{"v1", "v2", "v3"}
+func (f *FlagSet) StringSliceVar(p *[]string, name string, value []string, usage string) {
+       f.VarP(newStringSliceValue(value, p), name, "", usage)
+}
+
+// StringSliceVarP is like StringSliceVar, but accepts a shorthand letter that can be used after a single dash.
+func (f *FlagSet) StringSliceVarP(p *[]string, name, shorthand string, value []string, usage string) {
+       f.VarP(newStringSliceValue(value, p), name, shorthand, usage)
+}
+
+// StringSliceVar defines a string flag with specified name, default value, and usage string.
+// The argument p points to a []string variable in which to store the value of the flag.
+// Compared to StringArray flags, StringSlice flags take comma-separated value as arguments and split them accordingly.
+// For example:
+//   --ss="v1,v2" -ss="v3"
+// will result in
+//   []string{"v1", "v2", "v3"}
+func StringSliceVar(p *[]string, name string, value []string, usage string) {
+       CommandLine.VarP(newStringSliceValue(value, p), name, "", usage)
+}
+
+// StringSliceVarP is like StringSliceVar, but accepts a shorthand letter that can be used after a single dash.
+func StringSliceVarP(p *[]string, name, shorthand string, value []string, usage string) {
+       CommandLine.VarP(newStringSliceValue(value, p), name, shorthand, usage)
+}
+
+// StringSlice defines a string flag with specified name, default value, and usage string.
+// The return value is the address of a []string variable that stores the value of the flag.
+// Compared to StringArray flags, StringSlice flags take comma-separated value as arguments and split them accordingly.
+// For example:
+//   --ss="v1,v2" -ss="v3"
+// will result in
+//   []string{"v1", "v2", "v3"}
+func (f *FlagSet) StringSlice(name string, value []string, usage string) *[]string {
+       p := []string{}
+       f.StringSliceVarP(&p, name, "", value, usage)
+       return &p
+}
+
+// StringSliceP is like StringSlice, but accepts a shorthand letter that can be used after a single dash.
+func (f *FlagSet) StringSliceP(name, shorthand string, value []string, usage string) *[]string {
+       p := []string{}
+       f.StringSliceVarP(&p, name, shorthand, value, usage)
+       return &p
+}
+
+// StringSlice defines a string flag with specified name, default value, and usage string.
+// The return value is the address of a []string variable that stores the value of the flag.
+// Compared to StringArray flags, StringSlice flags take comma-separated value as arguments and split them accordingly.
+// For example:
+//   --ss="v1,v2" -ss="v3"
+// will result in
+//   []string{"v1", "v2", "v3"}
+func StringSlice(name string, value []string, usage string) *[]string {
+       return CommandLine.StringSliceP(name, "", value, usage)
+}
+
+// StringSliceP is like StringSlice, but accepts a shorthand letter that can be used after a single dash.
+func StringSliceP(name, shorthand string, value []string, usage string) *[]string {
+       return CommandLine.StringSliceP(name, shorthand, value, usage)
+}
diff --git a/vendor/github.com/spf13/pflag/string_to_int.go b/vendor/github.com/spf13/pflag/string_to_int.go
new file mode 100644 (file)
index 0000000..5ceda39
--- /dev/null
@@ -0,0 +1,149 @@
+package pflag
+
+import (
+       "bytes"
+       "fmt"
+       "strconv"
+       "strings"
+)
+
+// -- stringToInt Value
+type stringToIntValue struct {
+       value   *map[string]int
+       changed bool
+}
+
+func newStringToIntValue(val map[string]int, p *map[string]int) *stringToIntValue {
+       ssv := new(stringToIntValue)
+       ssv.value = p
+       *ssv.value = val
+       return ssv
+}
+
+// Format: a=1,b=2
+func (s *stringToIntValue) Set(val string) error {
+       ss := strings.Split(val, ",")
+       out := make(map[string]int, len(ss))
+       for _, pair := range ss {
+               kv := strings.SplitN(pair, "=", 2)
+               if len(kv) != 2 {
+                       return fmt.Errorf("%s must be formatted as key=value", pair)
+               }
+               var err error
+               out[kv[0]], err = strconv.Atoi(kv[1])
+               if err != nil {
+                       return err
+               }
+       }
+       if !s.changed {
+               *s.value = out
+       } else {
+               for k, v := range out {
+                       (*s.value)[k] = v
+               }
+       }
+       s.changed = true
+       return nil
+}
+
+func (s *stringToIntValue) Type() string {
+       return "stringToInt"
+}
+
+func (s *stringToIntValue) String() string {
+       var buf bytes.Buffer
+       i := 0
+       for k, v := range *s.value {
+               if i > 0 {
+                       buf.WriteRune(',')
+               }
+               buf.WriteString(k)
+               buf.WriteRune('=')
+               buf.WriteString(strconv.Itoa(v))
+               i++
+       }
+       return "[" + buf.String() + "]"
+}
+
+func stringToIntConv(val string) (interface{}, error) {
+       val = strings.Trim(val, "[]")
+       // An empty string would cause an empty map
+       if len(val) == 0 {
+               return map[string]int{}, nil
+       }
+       ss := strings.Split(val, ",")
+       out := make(map[string]int, len(ss))
+       for _, pair := range ss {
+               kv := strings.SplitN(pair, "=", 2)
+               if len(kv) != 2 {
+                       return nil, fmt.Errorf("%s must be formatted as key=value", pair)
+               }
+               var err error
+               out[kv[0]], err = strconv.Atoi(kv[1])
+               if err != nil {
+                       return nil, err
+               }
+       }
+       return out, nil
+}
+
+// GetStringToInt return the map[string]int value of a flag with the given name
+func (f *FlagSet) GetStringToInt(name string) (map[string]int, error) {
+       val, err := f.getFlagType(name, "stringToInt", stringToIntConv)
+       if err != nil {
+               return map[string]int{}, err
+       }
+       return val.(map[string]int), nil
+}
+
+// StringToIntVar defines a string flag with specified name, default value, and usage string.
+// The argument p points to a map[string]int variable in which to store the values of the multiple flags.
+// The value of each argument will not try to be separated by comma
+func (f *FlagSet) StringToIntVar(p *map[string]int, name string, value map[string]int, usage string) {
+       f.VarP(newStringToIntValue(value, p), name, "", usage)
+}
+
+// StringToIntVarP is like StringToIntVar, but accepts a shorthand letter that can be used after a single dash.
+func (f *FlagSet) StringToIntVarP(p *map[string]int, name, shorthand string, value map[string]int, usage string) {
+       f.VarP(newStringToIntValue(value, p), name, shorthand, usage)
+}
+
+// StringToIntVar defines a string flag with specified name, default value, and usage string.
+// The argument p points to a map[string]int variable in which to store the value of the flag.
+// The value of each argument will not try to be separated by comma
+func StringToIntVar(p *map[string]int, name string, value map[string]int, usage string) {
+       CommandLine.VarP(newStringToIntValue(value, p), name, "", usage)
+}
+
+// StringToIntVarP is like StringToIntVar, but accepts a shorthand letter that can be used after a single dash.
+func StringToIntVarP(p *map[string]int, name, shorthand string, value map[string]int, usage string) {
+       CommandLine.VarP(newStringToIntValue(value, p), name, shorthand, usage)
+}
+
+// StringToInt defines a string flag with specified name, default value, and usage string.
+// The return value is the address of a map[string]int variable that stores the value of the flag.
+// The value of each argument will not try to be separated by comma
+func (f *FlagSet) StringToInt(name string, value map[string]int, usage string) *map[string]int {
+       p := map[string]int{}
+       f.StringToIntVarP(&p, name, "", value, usage)
+       return &p
+}
+
+// StringToIntP is like StringToInt, but accepts a shorthand letter that can be used after a single dash.
+func (f *FlagSet) StringToIntP(name, shorthand string, value map[string]int, usage string) *map[string]int {
+       p := map[string]int{}
+       f.StringToIntVarP(&p, name, shorthand, value, usage)
+       return &p
+}
+
+// StringToInt defines a string flag with specified name, default value, and usage string.
+// The return value is the address of a map[string]int variable that stores the value of the flag.
+// The value of each argument will not try to be separated by comma
+func StringToInt(name string, value map[string]int, usage string) *map[string]int {
+       return CommandLine.StringToIntP(name, "", value, usage)
+}
+
+// StringToIntP is like StringToInt, but accepts a shorthand letter that can be used after a single dash.
+func StringToIntP(name, shorthand string, value map[string]int, usage string) *map[string]int {
+       return CommandLine.StringToIntP(name, shorthand, value, usage)
+}
diff --git a/vendor/github.com/spf13/pflag/string_to_string.go b/vendor/github.com/spf13/pflag/string_to_string.go
new file mode 100644 (file)
index 0000000..890a01a
--- /dev/null
@@ -0,0 +1,160 @@
+package pflag
+
+import (
+       "bytes"
+       "encoding/csv"
+       "fmt"
+       "strings"
+)
+
+// -- stringToString Value
+type stringToStringValue struct {
+       value   *map[string]string
+       changed bool
+}
+
+func newStringToStringValue(val map[string]string, p *map[string]string) *stringToStringValue {
+       ssv := new(stringToStringValue)
+       ssv.value = p
+       *ssv.value = val
+       return ssv
+}
+
+// Format: a=1,b=2
+func (s *stringToStringValue) Set(val string) error {
+       var ss []string
+       n := strings.Count(val, "=")
+       switch n {
+       case 0:
+               return fmt.Errorf("%s must be formatted as key=value", val)
+       case 1:
+               ss = append(ss, strings.Trim(val, `"`))
+       default:
+               r := csv.NewReader(strings.NewReader(val))
+               var err error
+               ss, err = r.Read()
+               if err != nil {
+                       return err
+               }
+       }
+
+       out := make(map[string]string, len(ss))
+       for _, pair := range ss {
+               kv := strings.SplitN(pair, "=", 2)
+               if len(kv) != 2 {
+                       return fmt.Errorf("%s must be formatted as key=value", pair)
+               }
+               out[kv[0]] = kv[1]
+       }
+       if !s.changed {
+               *s.value = out
+       } else {
+               for k, v := range out {
+                       (*s.value)[k] = v
+               }
+       }
+       s.changed = true
+       return nil
+}
+
+func (s *stringToStringValue) Type() string {
+       return "stringToString"
+}
+
+func (s *stringToStringValue) String() string {
+       records := make([]string, 0, len(*s.value)>>1)
+       for k, v := range *s.value {
+               records = append(records, k+"="+v)
+       }
+
+       var buf bytes.Buffer
+       w := csv.NewWriter(&buf)
+       if err := w.Write(records); err != nil {
+               panic(err)
+       }
+       w.Flush()
+       return "[" + strings.TrimSpace(buf.String()) + "]"
+}
+
+func stringToStringConv(val string) (interface{}, error) {
+       val = strings.Trim(val, "[]")
+       // An empty string would cause an empty map
+       if len(val) == 0 {
+               return map[string]string{}, nil
+       }
+       r := csv.NewReader(strings.NewReader(val))
+       ss, err := r.Read()
+       if err != nil {
+               return nil, err
+       }
+       out := make(map[string]string, len(ss))
+       for _, pair := range ss {
+               kv := strings.SplitN(pair, "=", 2)
+               if len(kv) != 2 {
+                       return nil, fmt.Errorf("%s must be formatted as key=value", pair)
+               }
+               out[kv[0]] = kv[1]
+       }
+       return out, nil
+}
+
+// GetStringToString return the map[string]string value of a flag with the given name
+func (f *FlagSet) GetStringToString(name string) (map[string]string, error) {
+       val, err := f.getFlagType(name, "stringToString", stringToStringConv)
+       if err != nil {
+               return map[string]string{}, err
+       }
+       return val.(map[string]string), nil
+}
+
+// StringToStringVar defines a string flag with specified name, default value, and usage string.
+// The argument p points to a map[string]string variable in which to store the values of the multiple flags.
+// The value of each argument will not try to be separated by comma
+func (f *FlagSet) StringToStringVar(p *map[string]string, name string, value map[string]string, usage string) {
+       f.VarP(newStringToStringValue(value, p), name, "", usage)
+}
+
+// StringToStringVarP is like StringToStringVar, but accepts a shorthand letter that can be used after a single dash.
+func (f *FlagSet) StringToStringVarP(p *map[string]string, name, shorthand string, value map[string]string, usage string) {
+       f.VarP(newStringToStringValue(value, p), name, shorthand, usage)
+}
+
+// StringToStringVar defines a string flag with specified name, default value, and usage string.
+// The argument p points to a map[string]string variable in which to store the value of the flag.
+// The value of each argument will not try to be separated by comma
+func StringToStringVar(p *map[string]string, name string, value map[string]string, usage string) {
+       CommandLine.VarP(newStringToStringValue(value, p), name, "", usage)
+}
+
+// StringToStringVarP is like StringToStringVar, but accepts a shorthand letter that can be used after a single dash.
+func StringToStringVarP(p *map[string]string, name, shorthand string, value map[string]string, usage string) {
+       CommandLine.VarP(newStringToStringValue(value, p), name, shorthand, usage)
+}
+
+// StringToString defines a string flag with specified name, default value, and usage string.
+// The return value is the address of a map[string]string variable that stores the value of the flag.
+// The value of each argument will not try to be separated by comma
+func (f *FlagSet) StringToString(name string, value map[string]string, usage string) *map[string]string {
+       p := map[string]string{}
+       f.StringToStringVarP(&p, name, "", value, usage)
+       return &p
+}
+
+// StringToStringP is like StringToString, but accepts a shorthand letter that can be used after a single dash.
+func (f *FlagSet) StringToStringP(name, shorthand string, value map[string]string, usage string) *map[string]string {
+       p := map[string]string{}
+       f.StringToStringVarP(&p, name, shorthand, value, usage)
+       return &p
+}
+
+// StringToString defines a string flag with specified name, default value, and usage string.
+// The return value is the address of a map[string]string variable that stores the value of the flag.
+// The value of each argument will not try to be separated by comma
+func StringToString(name string, value map[string]string, usage string) *map[string]string {
+       return CommandLine.StringToStringP(name, "", value, usage)
+}
+
+// StringToStringP is like StringToString, but accepts a shorthand letter that can be used after a single dash.
+func StringToStringP(name, shorthand string, value map[string]string, usage string) *map[string]string {
+       return CommandLine.StringToStringP(name, shorthand, value, usage)
+}
diff --git a/vendor/github.com/spf13/pflag/uint.go b/vendor/github.com/spf13/pflag/uint.go
new file mode 100644 (file)
index 0000000..dcbc2b7
--- /dev/null
@@ -0,0 +1,88 @@
+package pflag
+
+import "strconv"
+
+// -- uint Value
+type uintValue uint
+
+func newUintValue(val uint, p *uint) *uintValue {
+       *p = val
+       return (*uintValue)(p)
+}
+
+func (i *uintValue) Set(s string) error {
+       v, err := strconv.ParseUint(s, 0, 64)
+       *i = uintValue(v)
+       return err
+}
+
+func (i *uintValue) Type() string {
+       return "uint"
+}
+
+func (i *uintValue) String() string { return strconv.FormatUint(uint64(*i), 10) }
+
+func uintConv(sval string) (interface{}, error) {
+       v, err := strconv.ParseUint(sval, 0, 0)
+       if err != nil {
+               return 0, err
+       }
+       return uint(v), nil
+}
+
+// GetUint return the uint value of a flag with the given name
+func (f *FlagSet) GetUint(name string) (uint, error) {
+       val, err := f.getFlagType(name, "uint", uintConv)
+       if err != nil {
+               return 0, err
+       }
+       return val.(uint), nil
+}
+
+// UintVar defines a uint flag with specified name, default value, and usage string.
+// The argument p points to a uint variable in which to store the value of the flag.
+func (f *FlagSet) UintVar(p *uint, name string, value uint, usage string) {
+       f.VarP(newUintValue(value, p), name, "", usage)
+}
+
+// UintVarP is like UintVar, but accepts a shorthand letter that can be used after a single dash.
+func (f *FlagSet) UintVarP(p *uint, name, shorthand string, value uint, usage string) {
+       f.VarP(newUintValue(value, p), name, shorthand, usage)
+}
+
+// UintVar defines a uint flag with specified name, default value, and usage string.
+// The argument p points to a uint  variable in which to store the value of the flag.
+func UintVar(p *uint, name string, value uint, usage string) {
+       CommandLine.VarP(newUintValue(value, p), name, "", usage)
+}
+
+// UintVarP is like UintVar, but accepts a shorthand letter that can be used after a single dash.
+func UintVarP(p *uint, name, shorthand string, value uint, usage string) {
+       CommandLine.VarP(newUintValue(value, p), name, shorthand, usage)
+}
+
+// Uint defines a uint flag with specified name, default value, and usage string.
+// The return value is the address of a uint  variable that stores the value of the flag.
+func (f *FlagSet) Uint(name string, value uint, usage string) *uint {
+       p := new(uint)
+       f.UintVarP(p, name, "", value, usage)
+       return p
+}
+
+// UintP is like Uint, but accepts a shorthand letter that can be used after a single dash.
+func (f *FlagSet) UintP(name, shorthand string, value uint, usage string) *uint {
+       p := new(uint)
+       f.UintVarP(p, name, shorthand, value, usage)
+       return p
+}
+
+// Uint defines a uint flag with specified name, default value, and usage string.
+// The return value is the address of a uint  variable that stores the value of the flag.
+func Uint(name string, value uint, usage string) *uint {
+       return CommandLine.UintP(name, "", value, usage)
+}
+
+// UintP is like Uint, but accepts a shorthand letter that can be used after a single dash.
+func UintP(name, shorthand string, value uint, usage string) *uint {
+       return CommandLine.UintP(name, shorthand, value, usage)
+}
diff --git a/vendor/github.com/spf13/pflag/uint16.go b/vendor/github.com/spf13/pflag/uint16.go
new file mode 100644 (file)
index 0000000..7e9914e
--- /dev/null
@@ -0,0 +1,88 @@
+package pflag
+
+import "strconv"
+
+// -- uint16 value
+type uint16Value uint16
+
+func newUint16Value(val uint16, p *uint16) *uint16Value {
+       *p = val
+       return (*uint16Value)(p)
+}
+
+func (i *uint16Value) Set(s string) error {
+       v, err := strconv.ParseUint(s, 0, 16)
+       *i = uint16Value(v)
+       return err
+}
+
+func (i *uint16Value) Type() string {
+       return "uint16"
+}
+
+func (i *uint16Value) String() string { return strconv.FormatUint(uint64(*i), 10) }
+
+func uint16Conv(sval string) (interface{}, error) {
+       v, err := strconv.ParseUint(sval, 0, 16)
+       if err != nil {
+               return 0, err
+       }
+       return uint16(v), nil
+}
+
+// GetUint16 return the uint16 value of a flag with the given name
+func (f *FlagSet) GetUint16(name string) (uint16, error) {
+       val, err := f.getFlagType(name, "uint16", uint16Conv)
+       if err != nil {
+               return 0, err
+       }
+       return val.(uint16), nil
+}
+
+// Uint16Var defines a uint flag with specified name, default value, and usage string.
+// The argument p points to a uint variable in which to store the value of the flag.
+func (f *FlagSet) Uint16Var(p *uint16, name string, value uint16, usage string) {
+       f.VarP(newUint16Value(value, p), name, "", usage)
+}
+
+// Uint16VarP is like Uint16Var, but accepts a shorthand letter that can be used after a single dash.
+func (f *FlagSet) Uint16VarP(p *uint16, name, shorthand string, value uint16, usage string) {
+       f.VarP(newUint16Value(value, p), name, shorthand, usage)
+}
+
+// Uint16Var defines a uint flag with specified name, default value, and usage string.
+// The argument p points to a uint  variable in which to store the value of the flag.
+func Uint16Var(p *uint16, name string, value uint16, usage string) {
+       CommandLine.VarP(newUint16Value(value, p), name, "", usage)
+}
+
+// Uint16VarP is like Uint16Var, but accepts a shorthand letter that can be used after a single dash.
+func Uint16VarP(p *uint16, name, shorthand string, value uint16, usage string) {
+       CommandLine.VarP(newUint16Value(value, p), name, shorthand, usage)
+}
+
+// Uint16 defines a uint flag with specified name, default value, and usage string.
+// The return value is the address of a uint  variable that stores the value of the flag.
+func (f *FlagSet) Uint16(name string, value uint16, usage string) *uint16 {
+       p := new(uint16)
+       f.Uint16VarP(p, name, "", value, usage)
+       return p
+}
+
+// Uint16P is like Uint16, but accepts a shorthand letter that can be used after a single dash.
+func (f *FlagSet) Uint16P(name, shorthand string, value uint16, usage string) *uint16 {
+       p := new(uint16)
+       f.Uint16VarP(p, name, shorthand, value, usage)
+       return p
+}
+
+// Uint16 defines a uint flag with specified name, default value, and usage string.
+// The return value is the address of a uint  variable that stores the value of the flag.
+func Uint16(name string, value uint16, usage string) *uint16 {
+       return CommandLine.Uint16P(name, "", value, usage)
+}
+
+// Uint16P is like Uint16, but accepts a shorthand letter that can be used after a single dash.
+func Uint16P(name, shorthand string, value uint16, usage string) *uint16 {
+       return CommandLine.Uint16P(name, shorthand, value, usage)
+}
diff --git a/vendor/github.com/spf13/pflag/uint32.go b/vendor/github.com/spf13/pflag/uint32.go
new file mode 100644 (file)
index 0000000..d802453
--- /dev/null
@@ -0,0 +1,88 @@
+package pflag
+
+import "strconv"
+
+// -- uint32 value
+type uint32Value uint32
+
+func newUint32Value(val uint32, p *uint32) *uint32Value {
+       *p = val
+       return (*uint32Value)(p)
+}
+
+func (i *uint32Value) Set(s string) error {
+       v, err := strconv.ParseUint(s, 0, 32)
+       *i = uint32Value(v)
+       return err
+}
+
+func (i *uint32Value) Type() string {
+       return "uint32"
+}
+
+func (i *uint32Value) String() string { return strconv.FormatUint(uint64(*i), 10) }
+
+func uint32Conv(sval string) (interface{}, error) {
+       v, err := strconv.ParseUint(sval, 0, 32)
+       if err != nil {
+               return 0, err
+       }
+       return uint32(v), nil
+}
+
+// GetUint32 return the uint32 value of a flag with the given name
+func (f *FlagSet) GetUint32(name string) (uint32, error) {
+       val, err := f.getFlagType(name, "uint32", uint32Conv)
+       if err != nil {
+               return 0, err
+       }
+       return val.(uint32), nil
+}
+
+// Uint32Var defines a uint32 flag with specified name, default value, and usage string.
+// The argument p points to a uint32 variable in which to store the value of the flag.
+func (f *FlagSet) Uint32Var(p *uint32, name string, value uint32, usage string) {
+       f.VarP(newUint32Value(value, p), name, "", usage)
+}
+
+// Uint32VarP is like Uint32Var, but accepts a shorthand letter that can be used after a single dash.
+func (f *FlagSet) Uint32VarP(p *uint32, name, shorthand string, value uint32, usage string) {
+       f.VarP(newUint32Value(value, p), name, shorthand, usage)
+}
+
+// Uint32Var defines a uint32 flag with specified name, default value, and usage string.
+// The argument p points to a uint32  variable in which to store the value of the flag.
+func Uint32Var(p *uint32, name string, value uint32, usage string) {
+       CommandLine.VarP(newUint32Value(value, p), name, "", usage)
+}
+
+// Uint32VarP is like Uint32Var, but accepts a shorthand letter that can be used after a single dash.
+func Uint32VarP(p *uint32, name, shorthand string, value uint32, usage string) {
+       CommandLine.VarP(newUint32Value(value, p), name, shorthand, usage)
+}
+
+// Uint32 defines a uint32 flag with specified name, default value, and usage string.
+// The return value is the address of a uint32  variable that stores the value of the flag.
+func (f *FlagSet) Uint32(name string, value uint32, usage string) *uint32 {
+       p := new(uint32)
+       f.Uint32VarP(p, name, "", value, usage)
+       return p
+}
+
+// Uint32P is like Uint32, but accepts a shorthand letter that can be used after a single dash.
+func (f *FlagSet) Uint32P(name, shorthand string, value uint32, usage string) *uint32 {
+       p := new(uint32)
+       f.Uint32VarP(p, name, shorthand, value, usage)
+       return p
+}
+
+// Uint32 defines a uint32 flag with specified name, default value, and usage string.
+// The return value is the address of a uint32  variable that stores the value of the flag.
+func Uint32(name string, value uint32, usage string) *uint32 {
+       return CommandLine.Uint32P(name, "", value, usage)
+}
+
+// Uint32P is like Uint32, but accepts a shorthand letter that can be used after a single dash.
+func Uint32P(name, shorthand string, value uint32, usage string) *uint32 {
+       return CommandLine.Uint32P(name, shorthand, value, usage)
+}
diff --git a/vendor/github.com/spf13/pflag/uint64.go b/vendor/github.com/spf13/pflag/uint64.go
new file mode 100644 (file)
index 0000000..f62240f
--- /dev/null
@@ -0,0 +1,88 @@
+package pflag
+
+import "strconv"
+
+// -- uint64 Value
+type uint64Value uint64
+
+func newUint64Value(val uint64, p *uint64) *uint64Value {
+       *p = val
+       return (*uint64Value)(p)
+}
+
+func (i *uint64Value) Set(s string) error {
+       v, err := strconv.ParseUint(s, 0, 64)
+       *i = uint64Value(v)
+       return err
+}
+
+func (i *uint64Value) Type() string {
+       return "uint64"
+}
+
+func (i *uint64Value) String() string { return strconv.FormatUint(uint64(*i), 10) }
+
+func uint64Conv(sval string) (interface{}, error) {
+       v, err := strconv.ParseUint(sval, 0, 64)
+       if err != nil {
+               return 0, err
+       }
+       return uint64(v), nil
+}
+
+// GetUint64 return the uint64 value of a flag with the given name
+func (f *FlagSet) GetUint64(name string) (uint64, error) {
+       val, err := f.getFlagType(name, "uint64", uint64Conv)
+       if err != nil {
+               return 0, err
+       }
+       return val.(uint64), nil
+}
+
+// Uint64Var defines a uint64 flag with specified name, default value, and usage string.
+// The argument p points to a uint64 variable in which to store the value of the flag.
+func (f *FlagSet) Uint64Var(p *uint64, name string, value uint64, usage string) {
+       f.VarP(newUint64Value(value, p), name, "", usage)
+}
+
+// Uint64VarP is like Uint64Var, but accepts a shorthand letter that can be used after a single dash.
+func (f *FlagSet) Uint64VarP(p *uint64, name, shorthand string, value uint64, usage string) {
+       f.VarP(newUint64Value(value, p), name, shorthand, usage)
+}
+
+// Uint64Var defines a uint64 flag with specified name, default value, and usage string.
+// The argument p points to a uint64 variable in which to store the value of the flag.
+func Uint64Var(p *uint64, name string, value uint64, usage string) {
+       CommandLine.VarP(newUint64Value(value, p), name, "", usage)
+}
+
+// Uint64VarP is like Uint64Var, but accepts a shorthand letter that can be used after a single dash.
+func Uint64VarP(p *uint64, name, shorthand string, value uint64, usage string) {
+       CommandLine.VarP(newUint64Value(value, p), name, shorthand, usage)
+}
+
+// Uint64 defines a uint64 flag with specified name, default value, and usage string.
+// The return value is the address of a uint64 variable that stores the value of the flag.
+func (f *FlagSet) Uint64(name string, value uint64, usage string) *uint64 {
+       p := new(uint64)
+       f.Uint64VarP(p, name, "", value, usage)
+       return p
+}
+
+// Uint64P is like Uint64, but accepts a shorthand letter that can be used after a single dash.
+func (f *FlagSet) Uint64P(name, shorthand string, value uint64, usage string) *uint64 {
+       p := new(uint64)
+       f.Uint64VarP(p, name, shorthand, value, usage)
+       return p
+}
+
+// Uint64 defines a uint64 flag with specified name, default value, and usage string.
+// The return value is the address of a uint64 variable that stores the value of the flag.
+func Uint64(name string, value uint64, usage string) *uint64 {
+       return CommandLine.Uint64P(name, "", value, usage)
+}
+
+// Uint64P is like Uint64, but accepts a shorthand letter that can be used after a single dash.
+func Uint64P(name, shorthand string, value uint64, usage string) *uint64 {
+       return CommandLine.Uint64P(name, shorthand, value, usage)
+}
diff --git a/vendor/github.com/spf13/pflag/uint8.go b/vendor/github.com/spf13/pflag/uint8.go
new file mode 100644 (file)
index 0000000..bb0e83c
--- /dev/null
@@ -0,0 +1,88 @@
+package pflag
+
+import "strconv"
+
+// -- uint8 Value
+type uint8Value uint8
+
+func newUint8Value(val uint8, p *uint8) *uint8Value {
+       *p = val
+       return (*uint8Value)(p)
+}
+
+func (i *uint8Value) Set(s string) error {
+       v, err := strconv.ParseUint(s, 0, 8)
+       *i = uint8Value(v)
+       return err
+}
+
+func (i *uint8Value) Type() string {
+       return "uint8"
+}
+
+func (i *uint8Value) String() string { return strconv.FormatUint(uint64(*i), 10) }
+
+func uint8Conv(sval string) (interface{}, error) {
+       v, err := strconv.ParseUint(sval, 0, 8)
+       if err != nil {
+               return 0, err
+       }
+       return uint8(v), nil
+}
+
+// GetUint8 return the uint8 value of a flag with the given name
+func (f *FlagSet) GetUint8(name string) (uint8, error) {
+       val, err := f.getFlagType(name, "uint8", uint8Conv)
+       if err != nil {
+               return 0, err
+       }
+       return val.(uint8), nil
+}
+
+// Uint8Var defines a uint8 flag with specified name, default value, and usage string.
+// The argument p points to a uint8 variable in which to store the value of the flag.
+func (f *FlagSet) Uint8Var(p *uint8, name string, value uint8, usage string) {
+       f.VarP(newUint8Value(value, p), name, "", usage)
+}
+
+// Uint8VarP is like Uint8Var, but accepts a shorthand letter that can be used after a single dash.
+func (f *FlagSet) Uint8VarP(p *uint8, name, shorthand string, value uint8, usage string) {
+       f.VarP(newUint8Value(value, p), name, shorthand, usage)
+}
+
+// Uint8Var defines a uint8 flag with specified name, default value, and usage string.
+// The argument p points to a uint8 variable in which to store the value of the flag.
+func Uint8Var(p *uint8, name string, value uint8, usage string) {
+       CommandLine.VarP(newUint8Value(value, p), name, "", usage)
+}
+
+// Uint8VarP is like Uint8Var, but accepts a shorthand letter that can be used after a single dash.
+func Uint8VarP(p *uint8, name, shorthand string, value uint8, usage string) {
+       CommandLine.VarP(newUint8Value(value, p), name, shorthand, usage)
+}
+
+// Uint8 defines a uint8 flag with specified name, default value, and usage string.
+// The return value is the address of a uint8 variable that stores the value of the flag.
+func (f *FlagSet) Uint8(name string, value uint8, usage string) *uint8 {
+       p := new(uint8)
+       f.Uint8VarP(p, name, "", value, usage)
+       return p
+}
+
+// Uint8P is like Uint8, but accepts a shorthand letter that can be used after a single dash.
+func (f *FlagSet) Uint8P(name, shorthand string, value uint8, usage string) *uint8 {
+       p := new(uint8)
+       f.Uint8VarP(p, name, shorthand, value, usage)
+       return p
+}
+
+// Uint8 defines a uint8 flag with specified name, default value, and usage string.
+// The return value is the address of a uint8 variable that stores the value of the flag.
+func Uint8(name string, value uint8, usage string) *uint8 {
+       return CommandLine.Uint8P(name, "", value, usage)
+}
+
+// Uint8P is like Uint8, but accepts a shorthand letter that can be used after a single dash.
+func Uint8P(name, shorthand string, value uint8, usage string) *uint8 {
+       return CommandLine.Uint8P(name, shorthand, value, usage)
+}
diff --git a/vendor/github.com/spf13/pflag/uint_slice.go b/vendor/github.com/spf13/pflag/uint_slice.go
new file mode 100644 (file)
index 0000000..edd94c6
--- /dev/null
@@ -0,0 +1,126 @@
+package pflag
+
+import (
+       "fmt"
+       "strconv"
+       "strings"
+)
+
+// -- uintSlice Value
+type uintSliceValue struct {
+       value   *[]uint
+       changed bool
+}
+
+func newUintSliceValue(val []uint, p *[]uint) *uintSliceValue {
+       uisv := new(uintSliceValue)
+       uisv.value = p
+       *uisv.value = val
+       return uisv
+}
+
+func (s *uintSliceValue) Set(val string) error {
+       ss := strings.Split(val, ",")
+       out := make([]uint, len(ss))
+       for i, d := range ss {
+               u, err := strconv.ParseUint(d, 10, 0)
+               if err != nil {
+                       return err
+               }
+               out[i] = uint(u)
+       }
+       if !s.changed {
+               *s.value = out
+       } else {
+               *s.value = append(*s.value, out...)
+       }
+       s.changed = true
+       return nil
+}
+
+func (s *uintSliceValue) Type() string {
+       return "uintSlice"
+}
+
+func (s *uintSliceValue) String() string {
+       out := make([]string, len(*s.value))
+       for i, d := range *s.value {
+               out[i] = fmt.Sprintf("%d", d)
+       }
+       return "[" + strings.Join(out, ",") + "]"
+}
+
+func uintSliceConv(val string) (interface{}, error) {
+       val = strings.Trim(val, "[]")
+       // Empty string would cause a slice with one (empty) entry
+       if len(val) == 0 {
+               return []uint{}, nil
+       }
+       ss := strings.Split(val, ",")
+       out := make([]uint, len(ss))
+       for i, d := range ss {
+               u, err := strconv.ParseUint(d, 10, 0)
+               if err != nil {
+                       return nil, err
+               }
+               out[i] = uint(u)
+       }
+       return out, nil
+}
+
+// GetUintSlice returns the []uint value of a flag with the given name.
+func (f *FlagSet) GetUintSlice(name string) ([]uint, error) {
+       val, err := f.getFlagType(name, "uintSlice", uintSliceConv)
+       if err != nil {
+               return []uint{}, err
+       }
+       return val.([]uint), nil
+}
+
+// UintSliceVar defines a uintSlice flag with specified name, default value, and usage string.
+// The argument p points to a []uint variable in which to store the value of the flag.
+func (f *FlagSet) UintSliceVar(p *[]uint, name string, value []uint, usage string) {
+       f.VarP(newUintSliceValue(value, p), name, "", usage)
+}
+
+// UintSliceVarP is like UintSliceVar, but accepts a shorthand letter that can be used after a single dash.
+func (f *FlagSet) UintSliceVarP(p *[]uint, name, shorthand string, value []uint, usage string) {
+       f.VarP(newUintSliceValue(value, p), name, shorthand, usage)
+}
+
+// UintSliceVar defines a uint[] flag with specified name, default value, and usage string.
+// The argument p points to a uint[] variable in which to store the value of the flag.
+func UintSliceVar(p *[]uint, name string, value []uint, usage string) {
+       CommandLine.VarP(newUintSliceValue(value, p), name, "", usage)
+}
+
+// UintSliceVarP is like the UintSliceVar, but accepts a shorthand letter that can be used after a single dash.
+func UintSliceVarP(p *[]uint, name, shorthand string, value []uint, usage string) {
+       CommandLine.VarP(newUintSliceValue(value, p), name, shorthand, usage)
+}
+
+// UintSlice defines a []uint flag with specified name, default value, and usage string.
+// The return value is the address of a []uint variable that stores the value of the flag.
+func (f *FlagSet) UintSlice(name string, value []uint, usage string) *[]uint {
+       p := []uint{}
+       f.UintSliceVarP(&p, name, "", value, usage)
+       return &p
+}
+
+// UintSliceP is like UintSlice, but accepts a shorthand letter that can be used after a single dash.
+func (f *FlagSet) UintSliceP(name, shorthand string, value []uint, usage string) *[]uint {
+       p := []uint{}
+       f.UintSliceVarP(&p, name, shorthand, value, usage)
+       return &p
+}
+
+// UintSlice defines a []uint flag with specified name, default value, and usage string.
+// The return value is the address of a []uint variable that stores the value of the flag.
+func UintSlice(name string, value []uint, usage string) *[]uint {
+       return CommandLine.UintSliceP(name, "", value, usage)
+}
+
+// UintSliceP is like UintSlice, but accepts a shorthand letter that can be used after a single dash.
+func UintSliceP(name, shorthand string, value []uint, usage string) *[]uint {
+       return CommandLine.UintSliceP(name, shorthand, value, usage)
+}
diff --git a/vendor/golang.org/x/crypto/LICENSE b/vendor/golang.org/x/crypto/LICENSE
new file mode 100644 (file)
index 0000000..6a66aea
--- /dev/null
@@ -0,0 +1,27 @@
+Copyright (c) 2009 The Go Authors. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+   * Redistributions of source code must retain the above copyright
+notice, this list of conditions and the following disclaimer.
+   * Redistributions in binary form must reproduce the above
+copyright notice, this list of conditions and the following disclaimer
+in the documentation and/or other materials provided with the
+distribution.
+   * Neither the name of Google Inc. nor the names of its
+contributors may be used to endorse or promote products derived from
+this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/vendor/golang.org/x/crypto/PATENTS b/vendor/golang.org/x/crypto/PATENTS
new file mode 100644 (file)
index 0000000..7330990
--- /dev/null
@@ -0,0 +1,22 @@
+Additional IP Rights Grant (Patents)
+
+"This implementation" means the copyrightable works distributed by
+Google as part of the Go project.
+
+Google hereby grants to You a perpetual, worldwide, non-exclusive,
+no-charge, royalty-free, irrevocable (except as stated in this section)
+patent license to make, have made, use, offer to sell, sell, import,
+transfer and otherwise run, modify and propagate the contents of this
+implementation of Go, where such license applies only to those patent
+claims, both currently owned or controlled by Google and acquired in
+the future, licensable by Google that are necessarily infringed by this
+implementation of Go.  This grant does not include claims that would be
+infringed only as a consequence of further modification of this
+implementation.  If you or your agent or exclusive licensee institute or
+order or agree to the institution of patent litigation against any
+entity (including a cross-claim or counterclaim in a lawsuit) alleging
+that this implementation of Go or any code incorporated within this
+implementation of Go constitutes direct or contributory patent
+infringement, or inducement of patent infringement, then any patent
+rights granted to you under this License for this implementation of Go
+shall terminate as of the date such litigation is filed.
diff --git a/vendor/golang.org/x/crypto/ripemd160/ripemd160.go b/vendor/golang.org/x/crypto/ripemd160/ripemd160.go
new file mode 100644 (file)
index 0000000..6c6e842
--- /dev/null
@@ -0,0 +1,120 @@
+// 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.
+
+// Package ripemd160 implements the RIPEMD-160 hash algorithm.
+package ripemd160 // import "golang.org/x/crypto/ripemd160"
+
+// RIPEMD-160 is designed by by Hans Dobbertin, Antoon Bosselaers, and Bart
+// Preneel with specifications available at:
+// http://homes.esat.kuleuven.be/~cosicart/pdf/AB-9601/AB-9601.pdf.
+
+import (
+       "crypto"
+       "hash"
+)
+
+func init() {
+       crypto.RegisterHash(crypto.RIPEMD160, New)
+}
+
+// The size of the checksum in bytes.
+const Size = 20
+
+// The block size of the hash algorithm in bytes.
+const BlockSize = 64
+
+const (
+       _s0 = 0x67452301
+       _s1 = 0xefcdab89
+       _s2 = 0x98badcfe
+       _s3 = 0x10325476
+       _s4 = 0xc3d2e1f0
+)
+
+// digest represents the partial evaluation of a checksum.
+type digest struct {
+       s  [5]uint32       // running context
+       x  [BlockSize]byte // temporary buffer
+       nx int             // index into x
+       tc uint64          // total count of bytes processed
+}
+
+func (d *digest) Reset() {
+       d.s[0], d.s[1], d.s[2], d.s[3], d.s[4] = _s0, _s1, _s2, _s3, _s4
+       d.nx = 0
+       d.tc = 0
+}
+
+// New returns a new hash.Hash computing the checksum.
+func New() hash.Hash {
+       result := new(digest)
+       result.Reset()
+       return result
+}
+
+func (d *digest) Size() int { return Size }
+
+func (d *digest) BlockSize() int { return BlockSize }
+
+func (d *digest) Write(p []byte) (nn int, err error) {
+       nn = len(p)
+       d.tc += uint64(nn)
+       if d.nx > 0 {
+               n := len(p)
+               if n > BlockSize-d.nx {
+                       n = BlockSize - d.nx
+               }
+               for i := 0; i < n; i++ {
+                       d.x[d.nx+i] = p[i]
+               }
+               d.nx += n
+               if d.nx == BlockSize {
+                       _Block(d, d.x[0:])
+                       d.nx = 0
+               }
+               p = p[n:]
+       }
+       n := _Block(d, p)
+       p = p[n:]
+       if len(p) > 0 {
+               d.nx = copy(d.x[:], p)
+       }
+       return
+}
+
+func (d0 *digest) Sum(in []byte) []byte {
+       // Make a copy of d0 so that caller can keep writing and summing.
+       d := *d0
+
+       // Padding.  Add a 1 bit and 0 bits until 56 bytes mod 64.
+       tc := d.tc
+       var tmp [64]byte
+       tmp[0] = 0x80
+       if tc%64 < 56 {
+               d.Write(tmp[0 : 56-tc%64])
+       } else {
+               d.Write(tmp[0 : 64+56-tc%64])
+       }
+
+       // Length in bits.
+       tc <<= 3
+       for i := uint(0); i < 8; i++ {
+               tmp[i] = byte(tc >> (8 * i))
+       }
+       d.Write(tmp[0:8])
+
+       if d.nx != 0 {
+               panic("d.nx != 0")
+       }
+
+       var digest [Size]byte
+       for i, s := range d.s {
+               digest[i*4] = byte(s)
+               digest[i*4+1] = byte(s >> 8)
+               digest[i*4+2] = byte(s >> 16)
+               digest[i*4+3] = byte(s >> 24)
+       }
+
+       return append(in, digest[:]...)
+}
diff --git a/vendor/golang.org/x/crypto/ripemd160/ripemd160block.go b/vendor/golang.org/x/crypto/ripemd160/ripemd160block.go
new file mode 100644 (file)
index 0000000..7bc8e6c
--- /dev/null
@@ -0,0 +1,161 @@
+// 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.
+
+// RIPEMD-160 block step.
+// In its own file so that a faster assembly or C version
+// can be substituted easily.
+
+package ripemd160
+
+// work buffer indices and roll amounts for one line
+var _n = [80]uint{
+       0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
+       7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8,
+       3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12,
+       1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2,
+       4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13,
+}
+
+var _r = [80]uint{
+       11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8,
+       7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12,
+       11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5,
+       11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12,
+       9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6,
+}
+
+// same for the other parallel one
+var n_ = [80]uint{
+       5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12,
+       6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2,
+       15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13,
+       8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14,
+       12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11,
+}
+
+var r_ = [80]uint{
+       8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6,
+       9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11,
+       9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5,
+       15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8,
+       8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11,
+}
+
+func _Block(md *digest, p []byte) int {
+       n := 0
+       var x [16]uint32
+       var alpha, beta uint32
+       for len(p) >= BlockSize {
+               a, b, c, d, e := md.s[0], md.s[1], md.s[2], md.s[3], md.s[4]
+               aa, bb, cc, dd, ee := a, b, c, d, e
+               j := 0
+               for i := 0; i < 16; i++ {
+                       x[i] = uint32(p[j]) | uint32(p[j+1])<<8 | uint32(p[j+2])<<16 | uint32(p[j+3])<<24
+                       j += 4
+               }
+
+               // round 1
+               i := 0
+               for i < 16 {
+                       alpha = a + (b ^ c ^ d) + x[_n[i]]
+                       s := _r[i]
+                       alpha = (alpha<<s | alpha>>(32-s)) + e
+                       beta = c<<10 | c>>22
+                       a, b, c, d, e = e, alpha, b, beta, d
+
+                       // parallel line
+                       alpha = aa + (bb ^ (cc | ^dd)) + x[n_[i]] + 0x50a28be6
+                       s = r_[i]
+                       alpha = (alpha<<s | alpha>>(32-s)) + ee
+                       beta = cc<<10 | cc>>22
+                       aa, bb, cc, dd, ee = ee, alpha, bb, beta, dd
+
+                       i++
+               }
+
+               // round 2
+               for i < 32 {
+                       alpha = a + (b&c | ^b&d) + x[_n[i]] + 0x5a827999
+                       s := _r[i]
+                       alpha = (alpha<<s | alpha>>(32-s)) + e
+                       beta = c<<10 | c>>22
+                       a, b, c, d, e = e, alpha, b, beta, d
+
+                       // parallel line
+                       alpha = aa + (bb&dd | cc&^dd) + x[n_[i]] + 0x5c4dd124
+                       s = r_[i]
+                       alpha = (alpha<<s | alpha>>(32-s)) + ee
+                       beta = cc<<10 | cc>>22
+                       aa, bb, cc, dd, ee = ee, alpha, bb, beta, dd
+
+                       i++
+               }
+
+               // round 3
+               for i < 48 {
+                       alpha = a + (b | ^c ^ d) + x[_n[i]] + 0x6ed9eba1
+                       s := _r[i]
+                       alpha = (alpha<<s | alpha>>(32-s)) + e
+                       beta = c<<10 | c>>22
+                       a, b, c, d, e = e, alpha, b, beta, d
+
+                       // parallel line
+                       alpha = aa + (bb | ^cc ^ dd) + x[n_[i]] + 0x6d703ef3
+                       s = r_[i]
+                       alpha = (alpha<<s | alpha>>(32-s)) + ee
+                       beta = cc<<10 | cc>>22
+                       aa, bb, cc, dd, ee = ee, alpha, bb, beta, dd
+
+                       i++
+               }
+
+               // round 4
+               for i < 64 {
+                       alpha = a + (b&d | c&^d) + x[_n[i]] + 0x8f1bbcdc
+                       s := _r[i]
+                       alpha = (alpha<<s | alpha>>(32-s)) + e
+                       beta = c<<10 | c>>22
+                       a, b, c, d, e = e, alpha, b, beta, d
+
+                       // parallel line
+                       alpha = aa + (bb&cc | ^bb&dd) + x[n_[i]] + 0x7a6d76e9
+                       s = r_[i]
+                       alpha = (alpha<<s | alpha>>(32-s)) + ee
+                       beta = cc<<10 | cc>>22
+                       aa, bb, cc, dd, ee = ee, alpha, bb, beta, dd
+
+                       i++
+               }
+
+               // round 5
+               for i < 80 {
+                       alpha = a + (b ^ (c | ^d)) + x[_n[i]] + 0xa953fd4e
+                       s := _r[i]
+                       alpha = (alpha<<s | alpha>>(32-s)) + e
+                       beta = c<<10 | c>>22
+                       a, b, c, d, e = e, alpha, b, beta, d
+
+                       // parallel line
+                       alpha = aa + (bb ^ cc ^ dd) + x[n_[i]]
+                       s = r_[i]
+                       alpha = (alpha<<s | alpha>>(32-s)) + ee
+                       beta = cc<<10 | cc>>22
+                       aa, bb, cc, dd, ee = ee, alpha, bb, beta, dd
+
+                       i++
+               }
+
+               // combine results
+               dd += c + md.s[1]
+               md.s[1] = md.s[2] + d + ee
+               md.s[2] = md.s[3] + e + aa
+               md.s[3] = md.s[4] + a + bb
+               md.s[4] = md.s[0] + b + cc
+               md.s[0] = dd
+
+               p = p[BlockSize:]
+               n += BlockSize
+       }
+       return n
+}
diff --git a/vendor/golang.org/x/crypto/sha3/doc.go b/vendor/golang.org/x/crypto/sha3/doc.go
new file mode 100644 (file)
index 0000000..a0ee3ae
--- /dev/null
@@ -0,0 +1,66 @@
+// Copyright 2014 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// Package sha3 implements the SHA-3 fixed-output-length hash functions and
+// the SHAKE variable-output-length hash functions defined by FIPS-202.
+//
+// Both types of hash function use the "sponge" construction and the Keccak
+// permutation. For a detailed specification see http://keccak.noekeon.org/
+//
+//
+// Guidance
+//
+// If you aren't sure what function you need, use SHAKE256 with at least 64
+// bytes of output. The SHAKE instances are faster than the SHA3 instances;
+// the latter have to allocate memory to conform to the hash.Hash interface.
+//
+// If you need a secret-key MAC (message authentication code), prepend the
+// secret key to the input, hash with SHAKE256 and read at least 32 bytes of
+// output.
+//
+//
+// Security strengths
+//
+// The SHA3-x (x equals 224, 256, 384, or 512) functions have a security
+// strength against preimage attacks of x bits. Since they only produce "x"
+// bits of output, their collision-resistance is only "x/2" bits.
+//
+// The SHAKE-256 and -128 functions have a generic security strength of 256 and
+// 128 bits against all attacks, provided that at least 2x bits of their output
+// is used.  Requesting more than 64 or 32 bytes of output, respectively, does
+// not increase the collision-resistance of the SHAKE functions.
+//
+//
+// The sponge construction
+//
+// A sponge builds a pseudo-random function from a public pseudo-random
+// permutation, by applying the permutation to a state of "rate + capacity"
+// bytes, but hiding "capacity" of the bytes.
+//
+// A sponge starts out with a zero state. To hash an input using a sponge, up
+// to "rate" bytes of the input are XORed into the sponge's state. The sponge
+// is then "full" and the permutation is applied to "empty" it. This process is
+// repeated until all the input has been "absorbed". The input is then padded.
+// The digest is "squeezed" from the sponge in the same way, except that output
+// output is copied out instead of input being XORed in.
+//
+// A sponge is parameterized by its generic security strength, which is equal
+// to half its capacity; capacity + rate is equal to the permutation's width.
+// Since the KeccakF-1600 permutation is 1600 bits (200 bytes) wide, this means
+// that the security strength of a sponge instance is equal to (1600 - bitrate) / 2.
+//
+//
+// Recommendations
+//
+// The SHAKE functions are recommended for most new uses. They can produce
+// output of arbitrary length. SHAKE256, with an output length of at least
+// 64 bytes, provides 256-bit security against all attacks.  The Keccak team
+// recommends it for most applications upgrading from SHA2-512. (NIST chose a
+// much stronger, but much slower, sponge instance for SHA3-512.)
+//
+// The SHA-3 functions are "drop-in" replacements for the SHA-2 functions.
+// They produce output of the same length, with the same security strengths
+// against all attacks. This means, in particular, that SHA3-256 only has
+// 128-bit collision resistance, because its output length is 32 bytes.
+package sha3 // import "golang.org/x/crypto/sha3"
diff --git a/vendor/golang.org/x/crypto/sha3/hashes.go b/vendor/golang.org/x/crypto/sha3/hashes.go
new file mode 100644 (file)
index 0000000..2b51cf4
--- /dev/null
@@ -0,0 +1,65 @@
+// Copyright 2014 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package sha3
+
+// This file provides functions for creating instances of the SHA-3
+// and SHAKE hash functions, as well as utility functions for hashing
+// bytes.
+
+import (
+       "hash"
+)
+
+// New224 creates a new SHA3-224 hash.
+// Its generic security strength is 224 bits against preimage attacks,
+// and 112 bits against collision attacks.
+func New224() hash.Hash { return &state{rate: 144, outputLen: 28, dsbyte: 0x06} }
+
+// New256 creates a new SHA3-256 hash.
+// Its generic security strength is 256 bits against preimage attacks,
+// and 128 bits against collision attacks.
+func New256() hash.Hash { return &state{rate: 136, outputLen: 32, dsbyte: 0x06} }
+
+// New384 creates a new SHA3-384 hash.
+// Its generic security strength is 384 bits against preimage attacks,
+// and 192 bits against collision attacks.
+func New384() hash.Hash { return &state{rate: 104, outputLen: 48, dsbyte: 0x06} }
+
+// New512 creates a new SHA3-512 hash.
+// Its generic security strength is 512 bits against preimage attacks,
+// and 256 bits against collision attacks.
+func New512() hash.Hash { return &state{rate: 72, outputLen: 64, dsbyte: 0x06} }
+
+// Sum224 returns the SHA3-224 digest of the data.
+func Sum224(data []byte) (digest [28]byte) {
+       h := New224()
+       h.Write(data)
+       h.Sum(digest[:0])
+       return
+}
+
+// Sum256 returns the SHA3-256 digest of the data.
+func Sum256(data []byte) (digest [32]byte) {
+       h := New256()
+       h.Write(data)
+       h.Sum(digest[:0])
+       return
+}
+
+// Sum384 returns the SHA3-384 digest of the data.
+func Sum384(data []byte) (digest [48]byte) {
+       h := New384()
+       h.Write(data)
+       h.Sum(digest[:0])
+       return
+}
+
+// Sum512 returns the SHA3-512 digest of the data.
+func Sum512(data []byte) (digest [64]byte) {
+       h := New512()
+       h.Write(data)
+       h.Sum(digest[:0])
+       return
+}
diff --git a/vendor/golang.org/x/crypto/sha3/keccakf.go b/vendor/golang.org/x/crypto/sha3/keccakf.go
new file mode 100644 (file)
index 0000000..46d03ed
--- /dev/null
@@ -0,0 +1,412 @@
+// 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 appengine gccgo
+
+package sha3
+
+// rc stores the round constants for use in the ι step.
+var rc = [24]uint64{
+       0x0000000000000001,
+       0x0000000000008082,
+       0x800000000000808A,
+       0x8000000080008000,
+       0x000000000000808B,
+       0x0000000080000001,
+       0x8000000080008081,
+       0x8000000000008009,
+       0x000000000000008A,
+       0x0000000000000088,
+       0x0000000080008009,
+       0x000000008000000A,
+       0x000000008000808B,
+       0x800000000000008B,
+       0x8000000000008089,
+       0x8000000000008003,
+       0x8000000000008002,
+       0x8000000000000080,
+       0x000000000000800A,
+       0x800000008000000A,
+       0x8000000080008081,
+       0x8000000000008080,
+       0x0000000080000001,
+       0x8000000080008008,
+}
+
+// keccakF1600 applies the Keccak permutation to a 1600b-wide
+// state represented as a slice of 25 uint64s.
+func keccakF1600(a *[25]uint64) {
+       // Implementation translated from Keccak-inplace.c
+       // in the keccak reference code.
+       var t, bc0, bc1, bc2, bc3, bc4, d0, d1, d2, d3, d4 uint64
+
+       for i := 0; i < 24; i += 4 {
+               // Combines the 5 steps in each round into 2 steps.
+               // Unrolls 4 rounds per loop and spreads some steps across rounds.
+
+               // Round 1
+               bc0 = a[0] ^ a[5] ^ a[10] ^ a[15] ^ a[20]
+               bc1 = a[1] ^ a[6] ^ a[11] ^ a[16] ^ a[21]
+               bc2 = a[2] ^ a[7] ^ a[12] ^ a[17] ^ a[22]
+               bc3 = a[3] ^ a[8] ^ a[13] ^ a[18] ^ a[23]
+               bc4 = a[4] ^ a[9] ^ a[14] ^ a[19] ^ a[24]
+               d0 = bc4 ^ (bc1<<1 | bc1>>63)
+               d1 = bc0 ^ (bc2<<1 | bc2>>63)
+               d2 = bc1 ^ (bc3<<1 | bc3>>63)
+               d3 = bc2 ^ (bc4<<1 | bc4>>63)
+               d4 = bc3 ^ (bc0<<1 | bc0>>63)
+
+               bc0 = a[0] ^ d0
+               t = a[6] ^ d1
+               bc1 = t<<44 | t>>(64-44)
+               t = a[12] ^ d2
+               bc2 = t<<43 | t>>(64-43)
+               t = a[18] ^ d3
+               bc3 = t<<21 | t>>(64-21)
+               t = a[24] ^ d4
+               bc4 = t<<14 | t>>(64-14)
+               a[0] = bc0 ^ (bc2 &^ bc1) ^ rc[i]
+               a[6] = bc1 ^ (bc3 &^ bc2)
+               a[12] = bc2 ^ (bc4 &^ bc3)
+               a[18] = bc3 ^ (bc0 &^ bc4)
+               a[24] = bc4 ^ (bc1 &^ bc0)
+
+               t = a[10] ^ d0
+               bc2 = t<<3 | t>>(64-3)
+               t = a[16] ^ d1
+               bc3 = t<<45 | t>>(64-45)
+               t = a[22] ^ d2
+               bc4 = t<<61 | t>>(64-61)
+               t = a[3] ^ d3
+               bc0 = t<<28 | t>>(64-28)
+               t = a[9] ^ d4
+               bc1 = t<<20 | t>>(64-20)
+               a[10] = bc0 ^ (bc2 &^ bc1)
+               a[16] = bc1 ^ (bc3 &^ bc2)
+               a[22] = bc2 ^ (bc4 &^ bc3)
+               a[3] = bc3 ^ (bc0 &^ bc4)
+               a[9] = bc4 ^ (bc1 &^ bc0)
+
+               t = a[20] ^ d0
+               bc4 = t<<18 | t>>(64-18)
+               t = a[1] ^ d1
+               bc0 = t<<1 | t>>(64-1)
+               t = a[7] ^ d2
+               bc1 = t<<6 | t>>(64-6)
+               t = a[13] ^ d3
+               bc2 = t<<25 | t>>(64-25)
+               t = a[19] ^ d4
+               bc3 = t<<8 | t>>(64-8)
+               a[20] = bc0 ^ (bc2 &^ bc1)
+               a[1] = bc1 ^ (bc3 &^ bc2)
+               a[7] = bc2 ^ (bc4 &^ bc3)
+               a[13] = bc3 ^ (bc0 &^ bc4)
+               a[19] = bc4 ^ (bc1 &^ bc0)
+
+               t = a[5] ^ d0
+               bc1 = t<<36 | t>>(64-36)
+               t = a[11] ^ d1
+               bc2 = t<<10 | t>>(64-10)
+               t = a[17] ^ d2
+               bc3 = t<<15 | t>>(64-15)
+               t = a[23] ^ d3
+               bc4 = t<<56 | t>>(64-56)
+               t = a[4] ^ d4
+               bc0 = t<<27 | t>>(64-27)
+               a[5] = bc0 ^ (bc2 &^ bc1)
+               a[11] = bc1 ^ (bc3 &^ bc2)
+               a[17] = bc2 ^ (bc4 &^ bc3)
+               a[23] = bc3 ^ (bc0 &^ bc4)
+               a[4] = bc4 ^ (bc1 &^ bc0)
+
+               t = a[15] ^ d0
+               bc3 = t<<41 | t>>(64-41)
+               t = a[21] ^ d1
+               bc4 = t<<2 | t>>(64-2)
+               t = a[2] ^ d2
+               bc0 = t<<62 | t>>(64-62)
+               t = a[8] ^ d3
+               bc1 = t<<55 | t>>(64-55)
+               t = a[14] ^ d4
+               bc2 = t<<39 | t>>(64-39)
+               a[15] = bc0 ^ (bc2 &^ bc1)
+               a[21] = bc1 ^ (bc3 &^ bc2)
+               a[2] = bc2 ^ (bc4 &^ bc3)
+               a[8] = bc3 ^ (bc0 &^ bc4)
+               a[14] = bc4 ^ (bc1 &^ bc0)
+
+               // Round 2
+               bc0 = a[0] ^ a[5] ^ a[10] ^ a[15] ^ a[20]
+               bc1 = a[1] ^ a[6] ^ a[11] ^ a[16] ^ a[21]
+               bc2 = a[2] ^ a[7] ^ a[12] ^ a[17] ^ a[22]
+               bc3 = a[3] ^ a[8] ^ a[13] ^ a[18] ^ a[23]
+               bc4 = a[4] ^ a[9] ^ a[14] ^ a[19] ^ a[24]
+               d0 = bc4 ^ (bc1<<1 | bc1>>63)
+               d1 = bc0 ^ (bc2<<1 | bc2>>63)
+               d2 = bc1 ^ (bc3<<1 | bc3>>63)
+               d3 = bc2 ^ (bc4<<1 | bc4>>63)
+               d4 = bc3 ^ (bc0<<1 | bc0>>63)
+
+               bc0 = a[0] ^ d0
+               t = a[16] ^ d1
+               bc1 = t<<44 | t>>(64-44)
+               t = a[7] ^ d2
+               bc2 = t<<43 | t>>(64-43)
+               t = a[23] ^ d3
+               bc3 = t<<21 | t>>(64-21)
+               t = a[14] ^ d4
+               bc4 = t<<14 | t>>(64-14)
+               a[0] = bc0 ^ (bc2 &^ bc1) ^ rc[i+1]
+               a[16] = bc1 ^ (bc3 &^ bc2)
+               a[7] = bc2 ^ (bc4 &^ bc3)
+               a[23] = bc3 ^ (bc0 &^ bc4)
+               a[14] = bc4 ^ (bc1 &^ bc0)
+
+               t = a[20] ^ d0
+               bc2 = t<<3 | t>>(64-3)
+               t = a[11] ^ d1
+               bc3 = t<<45 | t>>(64-45)
+               t = a[2] ^ d2
+               bc4 = t<<61 | t>>(64-61)
+               t = a[18] ^ d3
+               bc0 = t<<28 | t>>(64-28)
+               t = a[9] ^ d4
+               bc1 = t<<20 | t>>(64-20)
+               a[20] = bc0 ^ (bc2 &^ bc1)
+               a[11] = bc1 ^ (bc3 &^ bc2)
+               a[2] = bc2 ^ (bc4 &^ bc3)
+               a[18] = bc3 ^ (bc0 &^ bc4)
+               a[9] = bc4 ^ (bc1 &^ bc0)
+
+               t = a[15] ^ d0
+               bc4 = t<<18 | t>>(64-18)
+               t = a[6] ^ d1
+               bc0 = t<<1 | t>>(64-1)
+               t = a[22] ^ d2
+               bc1 = t<<6 | t>>(64-6)
+               t = a[13] ^ d3
+               bc2 = t<<25 | t>>(64-25)
+               t = a[4] ^ d4
+               bc3 = t<<8 | t>>(64-8)
+               a[15] = bc0 ^ (bc2 &^ bc1)
+               a[6] = bc1 ^ (bc3 &^ bc2)
+               a[22] = bc2 ^ (bc4 &^ bc3)
+               a[13] = bc3 ^ (bc0 &^ bc4)
+               a[4] = bc4 ^ (bc1 &^ bc0)
+
+               t = a[10] ^ d0
+               bc1 = t<<36 | t>>(64-36)
+               t = a[1] ^ d1
+               bc2 = t<<10 | t>>(64-10)
+               t = a[17] ^ d2
+               bc3 = t<<15 | t>>(64-15)
+               t = a[8] ^ d3
+               bc4 = t<<56 | t>>(64-56)
+               t = a[24] ^ d4
+               bc0 = t<<27 | t>>(64-27)
+               a[10] = bc0 ^ (bc2 &^ bc1)
+               a[1] = bc1 ^ (bc3 &^ bc2)
+               a[17] = bc2 ^ (bc4 &^ bc3)
+               a[8] = bc3 ^ (bc0 &^ bc4)
+               a[24] = bc4 ^ (bc1 &^ bc0)
+
+               t = a[5] ^ d0
+               bc3 = t<<41 | t>>(64-41)
+               t = a[21] ^ d1
+               bc4 = t<<2 | t>>(64-2)
+               t = a[12] ^ d2
+               bc0 = t<<62 | t>>(64-62)
+               t = a[3] ^ d3
+               bc1 = t<<55 | t>>(64-55)
+               t = a[19] ^ d4
+               bc2 = t<<39 | t>>(64-39)
+               a[5] = bc0 ^ (bc2 &^ bc1)
+               a[21] = bc1 ^ (bc3 &^ bc2)
+               a[12] = bc2 ^ (bc4 &^ bc3)
+               a[3] = bc3 ^ (bc0 &^ bc4)
+               a[19] = bc4 ^ (bc1 &^ bc0)
+
+               // Round 3
+               bc0 = a[0] ^ a[5] ^ a[10] ^ a[15] ^ a[20]
+               bc1 = a[1] ^ a[6] ^ a[11] ^ a[16] ^ a[21]
+               bc2 = a[2] ^ a[7] ^ a[12] ^ a[17] ^ a[22]
+               bc3 = a[3] ^ a[8] ^ a[13] ^ a[18] ^ a[23]
+               bc4 = a[4] ^ a[9] ^ a[14] ^ a[19] ^ a[24]
+               d0 = bc4 ^ (bc1<<1 | bc1>>63)
+               d1 = bc0 ^ (bc2<<1 | bc2>>63)
+               d2 = bc1 ^ (bc3<<1 | bc3>>63)
+               d3 = bc2 ^ (bc4<<1 | bc4>>63)
+               d4 = bc3 ^ (bc0<<1 | bc0>>63)
+
+               bc0 = a[0] ^ d0
+               t = a[11] ^ d1
+               bc1 = t<<44 | t>>(64-44)
+               t = a[22] ^ d2
+               bc2 = t<<43 | t>>(64-43)
+               t = a[8] ^ d3
+               bc3 = t<<21 | t>>(64-21)
+               t = a[19] ^ d4
+               bc4 = t<<14 | t>>(64-14)
+               a[0] = bc0 ^ (bc2 &^ bc1) ^ rc[i+2]
+               a[11] = bc1 ^ (bc3 &^ bc2)
+               a[22] = bc2 ^ (bc4 &^ bc3)
+               a[8] = bc3 ^ (bc0 &^ bc4)
+               a[19] = bc4 ^ (bc1 &^ bc0)
+
+               t = a[15] ^ d0
+               bc2 = t<<3 | t>>(64-3)
+               t = a[1] ^ d1
+               bc3 = t<<45 | t>>(64-45)
+               t = a[12] ^ d2
+               bc4 = t<<61 | t>>(64-61)
+               t = a[23] ^ d3
+               bc0 = t<<28 | t>>(64-28)
+               t = a[9] ^ d4
+               bc1 = t<<20 | t>>(64-20)
+               a[15] = bc0 ^ (bc2 &^ bc1)
+               a[1] = bc1 ^ (bc3 &^ bc2)
+               a[12] = bc2 ^ (bc4 &^ bc3)
+               a[23] = bc3 ^ (bc0 &^ bc4)
+               a[9] = bc4 ^ (bc1 &^ bc0)
+
+               t = a[5] ^ d0
+               bc4 = t<<18 | t>>(64-18)
+               t = a[16] ^ d1
+               bc0 = t<<1 | t>>(64-1)
+               t = a[2] ^ d2
+               bc1 = t<<6 | t>>(64-6)
+               t = a[13] ^ d3
+               bc2 = t<<25 | t>>(64-25)
+               t = a[24] ^ d4
+               bc3 = t<<8 | t>>(64-8)
+               a[5] = bc0 ^ (bc2 &^ bc1)
+               a[16] = bc1 ^ (bc3 &^ bc2)
+               a[2] = bc2 ^ (bc4 &^ bc3)
+               a[13] = bc3 ^ (bc0 &^ bc4)
+               a[24] = bc4 ^ (bc1 &^ bc0)
+
+               t = a[20] ^ d0
+               bc1 = t<<36 | t>>(64-36)
+               t = a[6] ^ d1
+               bc2 = t<<10 | t>>(64-10)
+               t = a[17] ^ d2
+               bc3 = t<<15 | t>>(64-15)
+               t = a[3] ^ d3
+               bc4 = t<<56 | t>>(64-56)
+               t = a[14] ^ d4
+               bc0 = t<<27 | t>>(64-27)
+               a[20] = bc0 ^ (bc2 &^ bc1)
+               a[6] = bc1 ^ (bc3 &^ bc2)
+               a[17] = bc2 ^ (bc4 &^ bc3)
+               a[3] = bc3 ^ (bc0 &^ bc4)
+               a[14] = bc4 ^ (bc1 &^ bc0)
+
+               t = a[10] ^ d0
+               bc3 = t<<41 | t>>(64-41)
+               t = a[21] ^ d1
+               bc4 = t<<2 | t>>(64-2)
+               t = a[7] ^ d2
+               bc0 = t<<62 | t>>(64-62)
+               t = a[18] ^ d3
+               bc1 = t<<55 | t>>(64-55)
+               t = a[4] ^ d4
+               bc2 = t<<39 | t>>(64-39)
+               a[10] = bc0 ^ (bc2 &^ bc1)
+               a[21] = bc1 ^ (bc3 &^ bc2)
+               a[7] = bc2 ^ (bc4 &^ bc3)
+               a[18] = bc3 ^ (bc0 &^ bc4)
+               a[4] = bc4 ^ (bc1 &^ bc0)
+
+               // Round 4
+               bc0 = a[0] ^ a[5] ^ a[10] ^ a[15] ^ a[20]
+               bc1 = a[1] ^ a[6] ^ a[11] ^ a[16] ^ a[21]
+               bc2 = a[2] ^ a[7] ^ a[12] ^ a[17] ^ a[22]
+               bc3 = a[3] ^ a[8] ^ a[13] ^ a[18] ^ a[23]
+               bc4 = a[4] ^ a[9] ^ a[14] ^ a[19] ^ a[24]
+               d0 = bc4 ^ (bc1<<1 | bc1>>63)
+               d1 = bc0 ^ (bc2<<1 | bc2>>63)
+               d2 = bc1 ^ (bc3<<1 | bc3>>63)
+               d3 = bc2 ^ (bc4<<1 | bc4>>63)
+               d4 = bc3 ^ (bc0<<1 | bc0>>63)
+
+               bc0 = a[0] ^ d0
+               t = a[1] ^ d1
+               bc1 = t<<44 | t>>(64-44)
+               t = a[2] ^ d2
+               bc2 = t<<43 | t>>(64-43)
+               t = a[3] ^ d3
+               bc3 = t<<21 | t>>(64-21)
+               t = a[4] ^ d4
+               bc4 = t<<14 | t>>(64-14)
+               a[0] = bc0 ^ (bc2 &^ bc1) ^ rc[i+3]
+               a[1] = bc1 ^ (bc3 &^ bc2)
+               a[2] = bc2 ^ (bc4 &^ bc3)
+               a[3] = bc3 ^ (bc0 &^ bc4)
+               a[4] = bc4 ^ (bc1 &^ bc0)
+
+               t = a[5] ^ d0
+               bc2 = t<<3 | t>>(64-3)
+               t = a[6] ^ d1
+               bc3 = t<<45 | t>>(64-45)
+               t = a[7] ^ d2
+               bc4 = t<<61 | t>>(64-61)
+               t = a[8] ^ d3
+               bc0 = t<<28 | t>>(64-28)
+               t = a[9] ^ d4
+               bc1 = t<<20 | t>>(64-20)
+               a[5] = bc0 ^ (bc2 &^ bc1)
+               a[6] = bc1 ^ (bc3 &^ bc2)
+               a[7] = bc2 ^ (bc4 &^ bc3)
+               a[8] = bc3 ^ (bc0 &^ bc4)
+               a[9] = bc4 ^ (bc1 &^ bc0)
+
+               t = a[10] ^ d0
+               bc4 = t<<18 | t>>(64-18)
+               t = a[11] ^ d1
+               bc0 = t<<1 | t>>(64-1)
+               t = a[12] ^ d2
+               bc1 = t<<6 | t>>(64-6)
+               t = a[13] ^ d3
+               bc2 = t<<25 | t>>(64-25)
+               t = a[14] ^ d4
+               bc3 = t<<8 | t>>(64-8)
+               a[10] = bc0 ^ (bc2 &^ bc1)
+               a[11] = bc1 ^ (bc3 &^ bc2)
+               a[12] = bc2 ^ (bc4 &^ bc3)
+               a[13] = bc3 ^ (bc0 &^ bc4)
+               a[14] = bc4 ^ (bc1 &^ bc0)
+
+               t = a[15] ^ d0
+               bc1 = t<<36 | t>>(64-36)
+               t = a[16] ^ d1
+               bc2 = t<<10 | t>>(64-10)
+               t = a[17] ^ d2
+               bc3 = t<<15 | t>>(64-15)
+               t = a[18] ^ d3
+               bc4 = t<<56 | t>>(64-56)
+               t = a[19] ^ d4
+               bc0 = t<<27 | t>>(64-27)
+               a[15] = bc0 ^ (bc2 &^ bc1)
+               a[16] = bc1 ^ (bc3 &^ bc2)
+               a[17] = bc2 ^ (bc4 &^ bc3)
+               a[18] = bc3 ^ (bc0 &^ bc4)
+               a[19] = bc4 ^ (bc1 &^ bc0)
+
+               t = a[20] ^ d0
+               bc3 = t<<41 | t>>(64-41)
+               t = a[21] ^ d1
+               bc4 = t<<2 | t>>(64-2)
+               t = a[22] ^ d2
+               bc0 = t<<62 | t>>(64-62)
+               t = a[23] ^ d3
+               bc1 = t<<55 | t>>(64-55)
+               t = a[24] ^ d4
+               bc2 = t<<39 | t>>(64-39)
+               a[20] = bc0 ^ (bc2 &^ bc1)
+               a[21] = bc1 ^ (bc3 &^ bc2)
+               a[22] = bc2 ^ (bc4 &^ bc3)
+               a[23] = bc3 ^ (bc0 &^ bc4)
+               a[24] = bc4 ^ (bc1 &^ bc0)
+       }
+}
diff --git a/vendor/golang.org/x/crypto/sha3/keccakf_amd64.go b/vendor/golang.org/x/crypto/sha3/keccakf_amd64.go
new file mode 100644 (file)
index 0000000..7886795
--- /dev/null
@@ -0,0 +1,13 @@
+// Copyright 2015 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build amd64,!appengine,!gccgo
+
+package sha3
+
+// This function is implemented in keccakf_amd64.s.
+
+//go:noescape
+
+func keccakF1600(a *[25]uint64)
diff --git a/vendor/golang.org/x/crypto/sha3/keccakf_amd64.s b/vendor/golang.org/x/crypto/sha3/keccakf_amd64.s
new file mode 100644 (file)
index 0000000..f88533a
--- /dev/null
@@ -0,0 +1,390 @@
+// 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 amd64,!appengine,!gccgo
+
+// This code was translated into a form compatible with 6a from the public
+// domain sources at https://github.com/gvanas/KeccakCodePackage
+
+// Offsets in state
+#define _ba  (0*8)
+#define _be  (1*8)
+#define _bi  (2*8)
+#define _bo  (3*8)
+#define _bu  (4*8)
+#define _ga  (5*8)
+#define _ge  (6*8)
+#define _gi  (7*8)
+#define _go  (8*8)
+#define _gu  (9*8)
+#define _ka (10*8)
+#define _ke (11*8)
+#define _ki (12*8)
+#define _ko (13*8)
+#define _ku (14*8)
+#define _ma (15*8)
+#define _me (16*8)
+#define _mi (17*8)
+#define _mo (18*8)
+#define _mu (19*8)
+#define _sa (20*8)
+#define _se (21*8)
+#define _si (22*8)
+#define _so (23*8)
+#define _su (24*8)
+
+// Temporary registers
+#define rT1  AX
+
+// Round vars
+#define rpState DI
+#define rpStack SP
+
+#define rDa BX
+#define rDe CX
+#define rDi DX
+#define rDo R8
+#define rDu R9
+
+#define rBa R10
+#define rBe R11
+#define rBi R12
+#define rBo R13
+#define rBu R14
+
+#define rCa SI
+#define rCe BP
+#define rCi rBi
+#define rCo rBo
+#define rCu R15
+
+#define MOVQ_RBI_RCE MOVQ rBi, rCe
+#define XORQ_RT1_RCA XORQ rT1, rCa
+#define XORQ_RT1_RCE XORQ rT1, rCe
+#define XORQ_RBA_RCU XORQ rBa, rCu
+#define XORQ_RBE_RCU XORQ rBe, rCu
+#define XORQ_RDU_RCU XORQ rDu, rCu
+#define XORQ_RDA_RCA XORQ rDa, rCa
+#define XORQ_RDE_RCE XORQ rDe, rCe
+
+#define mKeccakRound(iState, oState, rc, B_RBI_RCE, G_RT1_RCA, G_RT1_RCE, G_RBA_RCU, K_RT1_RCA, K_RT1_RCE, K_RBA_RCU, M_RT1_RCA, M_RT1_RCE, M_RBE_RCU, S_RDU_RCU, S_RDA_RCA, S_RDE_RCE) \
+       /* Prepare round */    \
+       MOVQ rCe, rDa;         \
+       ROLQ $1, rDa;          \
+                              \
+       MOVQ _bi(iState), rCi; \
+       XORQ _gi(iState), rDi; \
+       XORQ rCu, rDa;         \
+       XORQ _ki(iState), rCi; \
+       XORQ _mi(iState), rDi; \
+       XORQ rDi, rCi;         \
+                              \
+       MOVQ rCi, rDe;         \
+       ROLQ $1, rDe;          \
+                              \
+       MOVQ _bo(iState), rCo; \
+       XORQ _go(iState), rDo; \
+       XORQ rCa, rDe;         \
+       XORQ _ko(iState), rCo; \
+       XORQ _mo(iState), rDo; \
+       XORQ rDo, rCo;         \
+                              \
+       MOVQ rCo, rDi;         \
+       ROLQ $1, rDi;          \
+                              \
+       MOVQ rCu, rDo;         \
+       XORQ rCe, rDi;         \
+       ROLQ $1, rDo;          \
+                              \
+       MOVQ rCa, rDu;         \
+       XORQ rCi, rDo;         \
+       ROLQ $1, rDu;          \
+                              \
+       /* Result b */         \
+       MOVQ _ba(iState), rBa; \
+       MOVQ _ge(iState), rBe; \
+       XORQ rCo, rDu;         \
+       MOVQ _ki(iState), rBi; \
+       MOVQ _mo(iState), rBo; \
+       MOVQ _su(iState), rBu; \
+       XORQ rDe, rBe;         \
+       ROLQ $44, rBe;         \
+       XORQ rDi, rBi;         \
+       XORQ rDa, rBa;         \
+       ROLQ $43, rBi;         \
+                              \
+       MOVQ rBe, rCa;         \
+       MOVQ rc, rT1;          \
+       ORQ  rBi, rCa;         \
+       XORQ rBa, rT1;         \
+       XORQ rT1, rCa;         \
+       MOVQ rCa, _ba(oState); \
+                              \
+       XORQ rDu, rBu;         \
+       ROLQ $14, rBu;         \
+       MOVQ rBa, rCu;         \
+       ANDQ rBe, rCu;         \
+       XORQ rBu, rCu;         \
+       MOVQ rCu, _bu(oState); \
+                              \
+       XORQ rDo, rBo;         \
+       ROLQ $21, rBo;         \
+       MOVQ rBo, rT1;         \
+       ANDQ rBu, rT1;         \
+       XORQ rBi, rT1;         \
+       MOVQ rT1, _bi(oState); \
+                              \
+       NOTQ rBi;              \
+       ORQ  rBa, rBu;         \
+       ORQ  rBo, rBi;         \
+       XORQ rBo, rBu;         \
+       XORQ rBe, rBi;         \
+       MOVQ rBu, _bo(oState); \
+       MOVQ rBi, _be(oState); \
+       B_RBI_RCE;             \
+                              \
+       /* Result g */         \
+       MOVQ _gu(iState), rBe; \
+       XORQ rDu, rBe;         \
+       MOVQ _ka(iState), rBi; \
+       ROLQ $20, rBe;         \
+       XORQ rDa, rBi;         \
+       ROLQ $3, rBi;          \
+       MOVQ _bo(iState), rBa; \
+       MOVQ rBe, rT1;         \
+       ORQ  rBi, rT1;         \
+       XORQ rDo, rBa;         \
+       MOVQ _me(iState), rBo; \
+       MOVQ _si(iState), rBu; \
+       ROLQ $28, rBa;         \
+       XORQ rBa, rT1;         \
+       MOVQ rT1, _ga(oState); \
+       G_RT1_RCA;             \
+                              \
+       XORQ rDe, rBo;         \
+       ROLQ $45, rBo;         \
+       MOVQ rBi, rT1;         \
+       ANDQ rBo, rT1;         \
+       XORQ rBe, rT1;         \
+       MOVQ rT1, _ge(oState); \
+       G_RT1_RCE;             \
+                              \
+       XORQ rDi, rBu;         \
+       ROLQ $61, rBu;         \
+       MOVQ rBu, rT1;         \
+       ORQ  rBa, rT1;         \
+       XORQ rBo, rT1;         \
+       MOVQ rT1, _go(oState); \
+                              \
+       ANDQ rBe, rBa;         \
+       XORQ rBu, rBa;         \
+       MOVQ rBa, _gu(oState); \
+       NOTQ rBu;              \
+       G_RBA_RCU;             \
+                              \
+       ORQ  rBu, rBo;         \
+       XORQ rBi, rBo;         \
+       MOVQ rBo, _gi(oState); \
+                              \
+       /* Result k */         \
+       MOVQ _be(iState), rBa; \
+       MOVQ _gi(iState), rBe; \
+       MOVQ _ko(iState), rBi; \
+       MOVQ _mu(iState), rBo; \
+       MOVQ _sa(iState), rBu; \
+       XORQ rDi, rBe;         \
+       ROLQ $6, rBe;          \
+       XORQ rDo, rBi;         \
+       ROLQ $25, rBi;         \
+       MOVQ rBe, rT1;         \
+       ORQ  rBi, rT1;         \
+       XORQ rDe, rBa;         \
+       ROLQ $1, rBa;          \
+       XORQ rBa, rT1;         \
+       MOVQ rT1, _ka(oState); \
+       K_RT1_RCA;             \
+                              \
+       XORQ rDu, rBo;         \
+       ROLQ $8, rBo;          \
+       MOVQ rBi, rT1;         \
+       ANDQ rBo, rT1;         \
+       XORQ rBe, rT1;         \
+       MOVQ rT1, _ke(oState); \
+       K_RT1_RCE;             \
+                              \
+       XORQ rDa, rBu;         \
+       ROLQ $18, rBu;         \
+       NOTQ rBo;              \
+       MOVQ rBo, rT1;         \
+       ANDQ rBu, rT1;         \
+       XORQ rBi, rT1;         \
+       MOVQ rT1, _ki(oState); \
+                              \
+       MOVQ rBu, rT1;         \
+       ORQ  rBa, rT1;         \
+       XORQ rBo, rT1;         \
+       MOVQ rT1, _ko(oState); \
+                              \
+       ANDQ rBe, rBa;         \
+       XORQ rBu, rBa;         \
+       MOVQ rBa, _ku(oState); \
+       K_RBA_RCU;             \
+                              \
+       /* Result m */         \
+       MOVQ _ga(iState), rBe; \
+       XORQ rDa, rBe;         \
+       MOVQ _ke(iState), rBi; \
+       ROLQ $36, rBe;         \
+       XORQ rDe, rBi;         \
+       MOVQ _bu(iState), rBa; \
+       ROLQ $10, rBi;         \
+       MOVQ rBe, rT1;         \
+       MOVQ _mi(iState), rBo; \
+       ANDQ rBi, rT1;         \
+       XORQ rDu, rBa;         \
+       MOVQ _so(iState), rBu; \
+       ROLQ $27, rBa;         \
+       XORQ rBa, rT1;         \
+       MOVQ rT1, _ma(oState); \
+       M_RT1_RCA;             \
+                              \
+       XORQ rDi, rBo;         \
+       ROLQ $15, rBo;         \
+       MOVQ rBi, rT1;         \
+       ORQ  rBo, rT1;         \
+       XORQ rBe, rT1;         \
+       MOVQ rT1, _me(oState); \
+       M_RT1_RCE;             \
+                              \
+       XORQ rDo, rBu;         \
+       ROLQ $56, rBu;         \
+       NOTQ rBo;              \
+       MOVQ rBo, rT1;         \
+       ORQ  rBu, rT1;         \
+       XORQ rBi, rT1;         \
+       MOVQ rT1, _mi(oState); \
+                              \
+       ORQ  rBa, rBe;         \
+       XORQ rBu, rBe;         \
+       MOVQ rBe, _mu(oState); \
+                              \
+       ANDQ rBa, rBu;         \
+       XORQ rBo, rBu;         \
+       MOVQ rBu, _mo(oState); \
+       M_RBE_RCU;             \
+                              \
+       /* Result s */         \
+       MOVQ _bi(iState), rBa; \
+       MOVQ _go(iState), rBe; \
+       MOVQ _ku(iState), rBi; \
+       XORQ rDi, rBa;         \
+       MOVQ _ma(iState), rBo; \
+       ROLQ $62, rBa;         \
+       XORQ rDo, rBe;         \
+       MOVQ _se(iState), rBu; \
+       ROLQ $55, rBe;         \
+                              \
+       XORQ rDu, rBi;         \
+       MOVQ rBa, rDu;         \
+       XORQ rDe, rBu;         \
+       ROLQ $2, rBu;          \
+       ANDQ rBe, rDu;         \
+       XORQ rBu, rDu;         \
+       MOVQ rDu, _su(oState); \
+                              \
+       ROLQ $39, rBi;         \
+       S_RDU_RCU;             \
+       NOTQ rBe;              \
+       XORQ rDa, rBo;         \
+       MOVQ rBe, rDa;         \
+       ANDQ rBi, rDa;         \
+       XORQ rBa, rDa;         \
+       MOVQ rDa, _sa(oState); \
+       S_RDA_RCA;             \
+                              \
+       ROLQ $41, rBo;         \
+       MOVQ rBi, rDe;         \
+       ORQ  rBo, rDe;         \
+       XORQ rBe, rDe;         \
+       MOVQ rDe, _se(oState); \
+       S_RDE_RCE;             \
+                              \
+       MOVQ rBo, rDi;         \
+       MOVQ rBu, rDo;         \
+       ANDQ rBu, rDi;         \
+       ORQ  rBa, rDo;         \
+       XORQ rBi, rDi;         \
+       XORQ rBo, rDo;         \
+       MOVQ rDi, _si(oState); \
+       MOVQ rDo, _so(oState)  \
+
+// func keccakF1600(state *[25]uint64)
+TEXT ·keccakF1600(SB), 0, $200-8
+       MOVQ state+0(FP), rpState
+
+       // Convert the user state into an internal state
+       NOTQ _be(rpState)
+       NOTQ _bi(rpState)
+       NOTQ _go(rpState)
+       NOTQ _ki(rpState)
+       NOTQ _mi(rpState)
+       NOTQ _sa(rpState)
+
+       // Execute the KeccakF permutation
+       MOVQ _ba(rpState), rCa
+       MOVQ _be(rpState), rCe
+       MOVQ _bu(rpState), rCu
+
+       XORQ _ga(rpState), rCa
+       XORQ _ge(rpState), rCe
+       XORQ _gu(rpState), rCu
+
+       XORQ _ka(rpState), rCa
+       XORQ _ke(rpState), rCe
+       XORQ _ku(rpState), rCu
+
+       XORQ _ma(rpState), rCa
+       XORQ _me(rpState), rCe
+       XORQ _mu(rpState), rCu
+
+       XORQ _sa(rpState), rCa
+       XORQ _se(rpState), rCe
+       MOVQ _si(rpState), rDi
+       MOVQ _so(rpState), rDo
+       XORQ _su(rpState), rCu
+
+       mKeccakRound(rpState, rpStack, $0x0000000000000001, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE)
+       mKeccakRound(rpStack, rpState, $0x0000000000008082, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE)
+       mKeccakRound(rpState, rpStack, $0x800000000000808a, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE)
+       mKeccakRound(rpStack, rpState, $0x8000000080008000, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE)
+       mKeccakRound(rpState, rpStack, $0x000000000000808b, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE)
+       mKeccakRound(rpStack, rpState, $0x0000000080000001, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE)
+       mKeccakRound(rpState, rpStack, $0x8000000080008081, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE)
+       mKeccakRound(rpStack, rpState, $0x8000000000008009, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE)
+       mKeccakRound(rpState, rpStack, $0x000000000000008a, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE)
+       mKeccakRound(rpStack, rpState, $0x0000000000000088, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE)
+       mKeccakRound(rpState, rpStack, $0x0000000080008009, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE)
+       mKeccakRound(rpStack, rpState, $0x000000008000000a, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE)
+       mKeccakRound(rpState, rpStack, $0x000000008000808b, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE)
+       mKeccakRound(rpStack, rpState, $0x800000000000008b, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE)
+       mKeccakRound(rpState, rpStack, $0x8000000000008089, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE)
+       mKeccakRound(rpStack, rpState, $0x8000000000008003, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE)
+       mKeccakRound(rpState, rpStack, $0x8000000000008002, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE)
+       mKeccakRound(rpStack, rpState, $0x8000000000000080, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE)
+       mKeccakRound(rpState, rpStack, $0x000000000000800a, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE)
+       mKeccakRound(rpStack, rpState, $0x800000008000000a, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE)
+       mKeccakRound(rpState, rpStack, $0x8000000080008081, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE)
+       mKeccakRound(rpStack, rpState, $0x8000000000008080, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE)
+       mKeccakRound(rpState, rpStack, $0x0000000080000001, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE)
+       mKeccakRound(rpStack, rpState, $0x8000000080008008, NOP, NOP, NOP, NOP, NOP, NOP, NOP, NOP, NOP, NOP, NOP, NOP, NOP)
+
+       // Revert the internal state to the user state
+       NOTQ _be(rpState)
+       NOTQ _bi(rpState)
+       NOTQ _go(rpState)
+       NOTQ _ki(rpState)
+       NOTQ _mi(rpState)
+       NOTQ _sa(rpState)
+
+       RET
diff --git a/vendor/golang.org/x/crypto/sha3/register.go b/vendor/golang.org/x/crypto/sha3/register.go
new file mode 100644 (file)
index 0000000..3cf6a22
--- /dev/null
@@ -0,0 +1,18 @@
+// 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 sha3
+
+import (
+       "crypto"
+)
+
+func init() {
+       crypto.RegisterHash(crypto.SHA3_224, New224)
+       crypto.RegisterHash(crypto.SHA3_256, New256)
+       crypto.RegisterHash(crypto.SHA3_384, New384)
+       crypto.RegisterHash(crypto.SHA3_512, New512)
+}
diff --git a/vendor/golang.org/x/crypto/sha3/sha3.go b/vendor/golang.org/x/crypto/sha3/sha3.go
new file mode 100644 (file)
index 0000000..c86167c
--- /dev/null
@@ -0,0 +1,193 @@
+// Copyright 2014 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package sha3
+
+// spongeDirection indicates the direction bytes are flowing through the sponge.
+type spongeDirection int
+
+const (
+       // spongeAbsorbing indicates that the sponge is absorbing input.
+       spongeAbsorbing spongeDirection = iota
+       // spongeSqueezing indicates that the sponge is being squeezed.
+       spongeSqueezing
+)
+
+const (
+       // maxRate is the maximum size of the internal buffer. SHAKE-256
+       // currently needs the largest buffer.
+       maxRate = 168
+)
+
+type state struct {
+       // Generic sponge components.
+       a    [25]uint64 // main state of the hash
+       buf  []byte     // points into storage
+       rate int        // the number of bytes of state to use
+
+       // dsbyte contains the "domain separation" bits and the first bit of
+       // the padding. Sections 6.1 and 6.2 of [1] separate the outputs of the
+       // SHA-3 and SHAKE functions by appending bitstrings to the message.
+       // Using a little-endian bit-ordering convention, these are "01" for SHA-3
+       // and "1111" for SHAKE, or 00000010b and 00001111b, respectively. Then the
+       // padding rule from section 5.1 is applied to pad the message to a multiple
+       // of the rate, which involves adding a "1" bit, zero or more "0" bits, and
+       // a final "1" bit. We merge the first "1" bit from the padding into dsbyte,
+       // giving 00000110b (0x06) and 00011111b (0x1f).
+       // [1] http://csrc.nist.gov/publications/drafts/fips-202/fips_202_draft.pdf
+       //     "Draft FIPS 202: SHA-3 Standard: Permutation-Based Hash and
+       //      Extendable-Output Functions (May 2014)"
+       dsbyte  byte
+       storage [maxRate]byte
+
+       // Specific to SHA-3 and SHAKE.
+       fixedOutput bool            // whether this is a fixed-output-length instance
+       outputLen   int             // the default output size in bytes
+       state       spongeDirection // whether the sponge is absorbing or squeezing
+}
+
+// BlockSize returns the rate of sponge underlying this hash function.
+func (d *state) BlockSize() int { return d.rate }
+
+// Size returns the output size of the hash function in bytes.
+func (d *state) Size() int { return d.outputLen }
+
+// Reset clears the internal state by zeroing the sponge state and
+// the byte buffer, and setting Sponge.state to absorbing.
+func (d *state) Reset() {
+       // Zero the permutation's state.
+       for i := range d.a {
+               d.a[i] = 0
+       }
+       d.state = spongeAbsorbing
+       d.buf = d.storage[:0]
+}
+
+func (d *state) clone() *state {
+       ret := *d
+       if ret.state == spongeAbsorbing {
+               ret.buf = ret.storage[:len(ret.buf)]
+       } else {
+               ret.buf = ret.storage[d.rate-cap(d.buf) : d.rate]
+       }
+
+       return &ret
+}
+
+// permute applies the KeccakF-1600 permutation. It handles
+// any input-output buffering.
+func (d *state) permute() {
+       switch d.state {
+       case spongeAbsorbing:
+               // If we're absorbing, we need to xor the input into the state
+               // before applying the permutation.
+               xorIn(d, d.buf)
+               d.buf = d.storage[:0]
+               keccakF1600(&d.a)
+       case spongeSqueezing:
+               // If we're squeezing, we need to apply the permutatin before
+               // copying more output.
+               keccakF1600(&d.a)
+               d.buf = d.storage[:d.rate]
+               copyOut(d, d.buf)
+       }
+}
+
+// pads appends the domain separation bits in dsbyte, applies
+// the multi-bitrate 10..1 padding rule, and permutes the state.
+func (d *state) padAndPermute(dsbyte byte) {
+       if d.buf == nil {
+               d.buf = d.storage[:0]
+       }
+       // Pad with this instance's domain-separator bits. We know that there's
+       // at least one byte of space in d.buf because, if it were full,
+       // permute would have been called to empty it. dsbyte also contains the
+       // first one bit for the padding. See the comment in the state struct.
+       d.buf = append(d.buf, dsbyte)
+       zerosStart := len(d.buf)
+       d.buf = d.storage[:d.rate]
+       for i := zerosStart; i < d.rate; i++ {
+               d.buf[i] = 0
+       }
+       // This adds the final one bit for the padding. Because of the way that
+       // bits are numbered from the LSB upwards, the final bit is the MSB of
+       // the last byte.
+       d.buf[d.rate-1] ^= 0x80
+       // Apply the permutation
+       d.permute()
+       d.state = spongeSqueezing
+       d.buf = d.storage[:d.rate]
+       copyOut(d, d.buf)
+}
+
+// Write absorbs more data into the hash's state. It produces an error
+// if more data is written to the ShakeHash after writing
+func (d *state) Write(p []byte) (written int, err error) {
+       if d.state != spongeAbsorbing {
+               panic("sha3: write to sponge after read")
+       }
+       if d.buf == nil {
+               d.buf = d.storage[:0]
+       }
+       written = len(p)
+
+       for len(p) > 0 {
+               if len(d.buf) == 0 && len(p) >= d.rate {
+                       // The fast path; absorb a full "rate" bytes of input and apply the permutation.
+                       xorIn(d, p[:d.rate])
+                       p = p[d.rate:]
+                       keccakF1600(&d.a)
+               } else {
+                       // The slow path; buffer the input until we can fill the sponge, and then xor it in.
+                       todo := d.rate - len(d.buf)
+                       if todo > len(p) {
+                               todo = len(p)
+                       }
+                       d.buf = append(d.buf, p[:todo]...)
+                       p = p[todo:]
+
+                       // If the sponge is full, apply the permutation.
+                       if len(d.buf) == d.rate {
+                               d.permute()
+                       }
+               }
+       }
+
+       return
+}
+
+// Read squeezes an arbitrary number of bytes from the sponge.
+func (d *state) Read(out []byte) (n int, err error) {
+       // If we're still absorbing, pad and apply the permutation.
+       if d.state == spongeAbsorbing {
+               d.padAndPermute(d.dsbyte)
+       }
+
+       n = len(out)
+
+       // Now, do the squeezing.
+       for len(out) > 0 {
+               n := copy(out, d.buf)
+               d.buf = d.buf[n:]
+               out = out[n:]
+
+               // Apply the permutation if we've squeezed the sponge dry.
+               if len(d.buf) == 0 {
+                       d.permute()
+               }
+       }
+
+       return
+}
+
+// Sum applies padding to the hash state and then squeezes out the desired
+// number of output bytes.
+func (d *state) Sum(in []byte) []byte {
+       // Make a copy of the original hash so that caller can keep writing
+       // and summing.
+       dup := d.clone()
+       hash := make([]byte, dup.outputLen)
+       dup.Read(hash)
+       return append(in, hash...)
+}
diff --git a/vendor/golang.org/x/crypto/sha3/shake.go b/vendor/golang.org/x/crypto/sha3/shake.go
new file mode 100644 (file)
index 0000000..841f986
--- /dev/null
@@ -0,0 +1,60 @@
+// Copyright 2014 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package sha3
+
+// This file defines the ShakeHash interface, and provides
+// functions for creating SHAKE instances, as well as utility
+// functions for hashing bytes to arbitrary-length output.
+
+import (
+       "io"
+)
+
+// ShakeHash defines the interface to hash functions that
+// support arbitrary-length output.
+type ShakeHash interface {
+       // Write absorbs more data into the hash's state. It panics if input is
+       // written to it after output has been read from it.
+       io.Writer
+
+       // Read reads more output from the hash; reading affects the hash's
+       // state. (ShakeHash.Read is thus very different from Hash.Sum)
+       // It never returns an error.
+       io.Reader
+
+       // Clone returns a copy of the ShakeHash in its current state.
+       Clone() ShakeHash
+
+       // Reset resets the ShakeHash to its initial state.
+       Reset()
+}
+
+func (d *state) Clone() ShakeHash {
+       return d.clone()
+}
+
+// NewShake128 creates a new SHAKE128 variable-output-length ShakeHash.
+// Its generic security strength is 128 bits against all attacks if at
+// least 32 bytes of its output are used.
+func NewShake128() ShakeHash { return &state{rate: 168, dsbyte: 0x1f} }
+
+// NewShake256 creates a new SHAKE128 variable-output-length ShakeHash.
+// Its generic security strength is 256 bits against all attacks if
+// at least 64 bytes of its output are used.
+func NewShake256() ShakeHash { return &state{rate: 136, dsbyte: 0x1f} }
+
+// ShakeSum128 writes an arbitrary-length digest of data into hash.
+func ShakeSum128(hash, data []byte) {
+       h := NewShake128()
+       h.Write(data)
+       h.Read(hash)
+}
+
+// ShakeSum256 writes an arbitrary-length digest of data into hash.
+func ShakeSum256(hash, data []byte) {
+       h := NewShake256()
+       h.Write(data)
+       h.Read(hash)
+}
diff --git a/vendor/golang.org/x/crypto/sha3/xor.go b/vendor/golang.org/x/crypto/sha3/xor.go
new file mode 100644 (file)
index 0000000..46a0d63
--- /dev/null
@@ -0,0 +1,16 @@
+// 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 !amd64,!386,!ppc64le appengine
+
+package sha3
+
+var (
+       xorIn            = xorInGeneric
+       copyOut          = copyOutGeneric
+       xorInUnaligned   = xorInGeneric
+       copyOutUnaligned = copyOutGeneric
+)
+
+const xorImplementationUnaligned = "generic"
diff --git a/vendor/golang.org/x/crypto/sha3/xor_generic.go b/vendor/golang.org/x/crypto/sha3/xor_generic.go
new file mode 100644 (file)
index 0000000..fd35f02
--- /dev/null
@@ -0,0 +1,28 @@
+// Copyright 2015 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package sha3
+
+import "encoding/binary"
+
+// xorInGeneric xors the bytes in buf into the state; it
+// makes no non-portable assumptions about memory layout
+// or alignment.
+func xorInGeneric(d *state, buf []byte) {
+       n := len(buf) / 8
+
+       for i := 0; i < n; i++ {
+               a := binary.LittleEndian.Uint64(buf)
+               d.a[i] ^= a
+               buf = buf[8:]
+       }
+}
+
+// copyOutGeneric copies ulint64s to a byte buffer.
+func copyOutGeneric(d *state, b []byte) {
+       for i := 0; len(b) >= 8; i++ {
+               binary.LittleEndian.PutUint64(b, d.a[i])
+               b = b[8:]
+       }
+}
diff --git a/vendor/golang.org/x/crypto/sha3/xor_unaligned.go b/vendor/golang.org/x/crypto/sha3/xor_unaligned.go
new file mode 100644 (file)
index 0000000..929a486
--- /dev/null
@@ -0,0 +1,58 @@
+// 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 amd64 386 ppc64le
+// +build !appengine
+
+package sha3
+
+import "unsafe"
+
+func xorInUnaligned(d *state, buf []byte) {
+       bw := (*[maxRate / 8]uint64)(unsafe.Pointer(&buf[0]))
+       n := len(buf)
+       if n >= 72 {
+               d.a[0] ^= bw[0]
+               d.a[1] ^= bw[1]
+               d.a[2] ^= bw[2]
+               d.a[3] ^= bw[3]
+               d.a[4] ^= bw[4]
+               d.a[5] ^= bw[5]
+               d.a[6] ^= bw[6]
+               d.a[7] ^= bw[7]
+               d.a[8] ^= bw[8]
+       }
+       if n >= 104 {
+               d.a[9] ^= bw[9]
+               d.a[10] ^= bw[10]
+               d.a[11] ^= bw[11]
+               d.a[12] ^= bw[12]
+       }
+       if n >= 136 {
+               d.a[13] ^= bw[13]
+               d.a[14] ^= bw[14]
+               d.a[15] ^= bw[15]
+               d.a[16] ^= bw[16]
+       }
+       if n >= 144 {
+               d.a[17] ^= bw[17]
+       }
+       if n >= 168 {
+               d.a[18] ^= bw[18]
+               d.a[19] ^= bw[19]
+               d.a[20] ^= bw[20]
+       }
+}
+
+func copyOutUnaligned(d *state, buf []byte) {
+       ab := (*[maxRate]uint8)(unsafe.Pointer(&d.a[0]))
+       copy(buf, ab[:])
+}
+
+var (
+       xorIn   = xorInUnaligned
+       copyOut = copyOutUnaligned
+)
+
+const xorImplementationUnaligned = "unaligned"
diff --git a/vendor/golang.org/x/crypto/ssh/terminal/terminal.go b/vendor/golang.org/x/crypto/ssh/terminal/terminal.go
new file mode 100644 (file)
index 0000000..18379a9
--- /dev/null
@@ -0,0 +1,951 @@
+// 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.
+
+package terminal
+
+import (
+       "bytes"
+       "io"
+       "sync"
+       "unicode/utf8"
+)
+
+// EscapeCodes contains escape sequences that can be written to the terminal in
+// order to achieve different styles of text.
+type EscapeCodes struct {
+       // Foreground colors
+       Black, Red, Green, Yellow, Blue, Magenta, Cyan, White []byte
+
+       // Reset all attributes
+       Reset []byte
+}
+
+var vt100EscapeCodes = EscapeCodes{
+       Black:   []byte{keyEscape, '[', '3', '0', 'm'},
+       Red:     []byte{keyEscape, '[', '3', '1', 'm'},
+       Green:   []byte{keyEscape, '[', '3', '2', 'm'},
+       Yellow:  []byte{keyEscape, '[', '3', '3', 'm'},
+       Blue:    []byte{keyEscape, '[', '3', '4', 'm'},
+       Magenta: []byte{keyEscape, '[', '3', '5', 'm'},
+       Cyan:    []byte{keyEscape, '[', '3', '6', 'm'},
+       White:   []byte{keyEscape, '[', '3', '7', 'm'},
+
+       Reset: []byte{keyEscape, '[', '0', 'm'},
+}
+
+// Terminal contains the state for running a VT100 terminal that is capable of
+// reading lines of input.
+type Terminal struct {
+       // AutoCompleteCallback, if non-null, is called for each keypress with
+       // the full input line and the current position of the cursor (in
+       // bytes, as an index into |line|). If it returns ok=false, the key
+       // press is processed normally. Otherwise it returns a replacement line
+       // and the new cursor position.
+       AutoCompleteCallback func(line string, pos int, key rune) (newLine string, newPos int, ok bool)
+
+       // Escape contains a pointer to the escape codes for this terminal.
+       // It's always a valid pointer, although the escape codes themselves
+       // may be empty if the terminal doesn't support them.
+       Escape *EscapeCodes
+
+       // lock protects the terminal and the state in this object from
+       // concurrent processing of a key press and a Write() call.
+       lock sync.Mutex
+
+       c      io.ReadWriter
+       prompt []rune
+
+       // line is the current line being entered.
+       line []rune
+       // pos is the logical position of the cursor in line
+       pos int
+       // echo is true if local echo is enabled
+       echo bool
+       // pasteActive is true iff there is a bracketed paste operation in
+       // progress.
+       pasteActive bool
+
+       // cursorX contains the current X value of the cursor where the left
+       // edge is 0. cursorY contains the row number where the first row of
+       // the current line is 0.
+       cursorX, cursorY int
+       // maxLine is the greatest value of cursorY so far.
+       maxLine int
+
+       termWidth, termHeight int
+
+       // outBuf contains the terminal data to be sent.
+       outBuf []byte
+       // remainder contains the remainder of any partial key sequences after
+       // a read. It aliases into inBuf.
+       remainder []byte
+       inBuf     [256]byte
+
+       // history contains previously entered commands so that they can be
+       // accessed with the up and down keys.
+       history stRingBuffer
+       // historyIndex stores the currently accessed history entry, where zero
+       // means the immediately previous entry.
+       historyIndex int
+       // When navigating up and down the history it's possible to return to
+       // the incomplete, initial line. That value is stored in
+       // historyPending.
+       historyPending string
+}
+
+// NewTerminal runs a VT100 terminal on the given ReadWriter. If the ReadWriter is
+// a local terminal, that terminal must first have been put into raw mode.
+// prompt is a string that is written at the start of each input line (i.e.
+// "> ").
+func NewTerminal(c io.ReadWriter, prompt string) *Terminal {
+       return &Terminal{
+               Escape:       &vt100EscapeCodes,
+               c:            c,
+               prompt:       []rune(prompt),
+               termWidth:    80,
+               termHeight:   24,
+               echo:         true,
+               historyIndex: -1,
+       }
+}
+
+const (
+       keyCtrlD     = 4
+       keyCtrlU     = 21
+       keyEnter     = '\r'
+       keyEscape    = 27
+       keyBackspace = 127
+       keyUnknown   = 0xd800 /* UTF-16 surrogate area */ + iota
+       keyUp
+       keyDown
+       keyLeft
+       keyRight
+       keyAltLeft
+       keyAltRight
+       keyHome
+       keyEnd
+       keyDeleteWord
+       keyDeleteLine
+       keyClearScreen
+       keyPasteStart
+       keyPasteEnd
+)
+
+var (
+       crlf       = []byte{'\r', '\n'}
+       pasteStart = []byte{keyEscape, '[', '2', '0', '0', '~'}
+       pasteEnd   = []byte{keyEscape, '[', '2', '0', '1', '~'}
+)
+
+// bytesToKey tries to parse a key sequence from b. If successful, it returns
+// the key and the remainder of the input. Otherwise it returns utf8.RuneError.
+func bytesToKey(b []byte, pasteActive bool) (rune, []byte) {
+       if len(b) == 0 {
+               return utf8.RuneError, nil
+       }
+
+       if !pasteActive {
+               switch b[0] {
+               case 1: // ^A
+                       return keyHome, b[1:]
+               case 5: // ^E
+                       return keyEnd, b[1:]
+               case 8: // ^H
+                       return keyBackspace, b[1:]
+               case 11: // ^K
+                       return keyDeleteLine, b[1:]
+               case 12: // ^L
+                       return keyClearScreen, b[1:]
+               case 23: // ^W
+                       return keyDeleteWord, b[1:]
+               }
+       }
+
+       if b[0] != keyEscape {
+               if !utf8.FullRune(b) {
+                       return utf8.RuneError, b
+               }
+               r, l := utf8.DecodeRune(b)
+               return r, b[l:]
+       }
+
+       if !pasteActive && len(b) >= 3 && b[0] == keyEscape && b[1] == '[' {
+               switch b[2] {
+               case 'A':
+                       return keyUp, b[3:]
+               case 'B':
+                       return keyDown, b[3:]
+               case 'C':
+                       return keyRight, b[3:]
+               case 'D':
+                       return keyLeft, b[3:]
+               case 'H':
+                       return keyHome, b[3:]
+               case 'F':
+                       return keyEnd, b[3:]
+               }
+       }
+
+       if !pasteActive && len(b) >= 6 && b[0] == keyEscape && b[1] == '[' && b[2] == '1' && b[3] == ';' && b[4] == '3' {
+               switch b[5] {
+               case 'C':
+                       return keyAltRight, b[6:]
+               case 'D':
+                       return keyAltLeft, b[6:]
+               }
+       }
+
+       if !pasteActive && len(b) >= 6 && bytes.Equal(b[:6], pasteStart) {
+               return keyPasteStart, b[6:]
+       }
+
+       if pasteActive && len(b) >= 6 && bytes.Equal(b[:6], pasteEnd) {
+               return keyPasteEnd, b[6:]
+       }
+
+       // If we get here then we have a key that we don't recognise, or a
+       // partial sequence. It's not clear how one should find the end of a
+       // sequence without knowing them all, but it seems that [a-zA-Z~] only
+       // appears at the end of a sequence.
+       for i, c := range b[0:] {
+               if c >= 'a' && c <= 'z' || c >= 'A' && c <= 'Z' || c == '~' {
+                       return keyUnknown, b[i+1:]
+               }
+       }
+
+       return utf8.RuneError, b
+}
+
+// queue appends data to the end of t.outBuf
+func (t *Terminal) queue(data []rune) {
+       t.outBuf = append(t.outBuf, []byte(string(data))...)
+}
+
+var eraseUnderCursor = []rune{' ', keyEscape, '[', 'D'}
+var space = []rune{' '}
+
+func isPrintable(key rune) bool {
+       isInSurrogateArea := key >= 0xd800 && key <= 0xdbff
+       return key >= 32 && !isInSurrogateArea
+}
+
+// moveCursorToPos appends data to t.outBuf which will move the cursor to the
+// given, logical position in the text.
+func (t *Terminal) moveCursorToPos(pos int) {
+       if !t.echo {
+               return
+       }
+
+       x := visualLength(t.prompt) + pos
+       y := x / t.termWidth
+       x = x % t.termWidth
+
+       up := 0
+       if y < t.cursorY {
+               up = t.cursorY - y
+       }
+
+       down := 0
+       if y > t.cursorY {
+               down = y - t.cursorY
+       }
+
+       left := 0
+       if x < t.cursorX {
+               left = t.cursorX - x
+       }
+
+       right := 0
+       if x > t.cursorX {
+               right = x - t.cursorX
+       }
+
+       t.cursorX = x
+       t.cursorY = y
+       t.move(up, down, left, right)
+}
+
+func (t *Terminal) move(up, down, left, right int) {
+       movement := make([]rune, 3*(up+down+left+right))
+       m := movement
+       for i := 0; i < up; i++ {
+               m[0] = keyEscape
+               m[1] = '['
+               m[2] = 'A'
+               m = m[3:]
+       }
+       for i := 0; i < down; i++ {
+               m[0] = keyEscape
+               m[1] = '['
+               m[2] = 'B'
+               m = m[3:]
+       }
+       for i := 0; i < left; i++ {
+               m[0] = keyEscape
+               m[1] = '['
+               m[2] = 'D'
+               m = m[3:]
+       }
+       for i := 0; i < right; i++ {
+               m[0] = keyEscape
+               m[1] = '['
+               m[2] = 'C'
+               m = m[3:]
+       }
+
+       t.queue(movement)
+}
+
+func (t *Terminal) clearLineToRight() {
+       op := []rune{keyEscape, '[', 'K'}
+       t.queue(op)
+}
+
+const maxLineLength = 4096
+
+func (t *Terminal) setLine(newLine []rune, newPos int) {
+       if t.echo {
+               t.moveCursorToPos(0)
+               t.writeLine(newLine)
+               for i := len(newLine); i < len(t.line); i++ {
+                       t.writeLine(space)
+               }
+               t.moveCursorToPos(newPos)
+       }
+       t.line = newLine
+       t.pos = newPos
+}
+
+func (t *Terminal) advanceCursor(places int) {
+       t.cursorX += places
+       t.cursorY += t.cursorX / t.termWidth
+       if t.cursorY > t.maxLine {
+               t.maxLine = t.cursorY
+       }
+       t.cursorX = t.cursorX % t.termWidth
+
+       if places > 0 && t.cursorX == 0 {
+               // Normally terminals will advance the current position
+               // when writing a character. But that doesn't happen
+               // for the last character in a line. However, when
+               // writing a character (except a new line) that causes
+               // a line wrap, the position will be advanced two
+               // places.
+               //
+               // So, if we are stopping at the end of a line, we
+               // need to write a newline so that our cursor can be
+               // advanced to the next line.
+               t.outBuf = append(t.outBuf, '\r', '\n')
+       }
+}
+
+func (t *Terminal) eraseNPreviousChars(n int) {
+       if n == 0 {
+               return
+       }
+
+       if t.pos < n {
+               n = t.pos
+       }
+       t.pos -= n
+       t.moveCursorToPos(t.pos)
+
+       copy(t.line[t.pos:], t.line[n+t.pos:])
+       t.line = t.line[:len(t.line)-n]
+       if t.echo {
+               t.writeLine(t.line[t.pos:])
+               for i := 0; i < n; i++ {
+                       t.queue(space)
+               }
+               t.advanceCursor(n)
+               t.moveCursorToPos(t.pos)
+       }
+}
+
+// countToLeftWord returns then number of characters from the cursor to the
+// start of the previous word.
+func (t *Terminal) countToLeftWord() int {
+       if t.pos == 0 {
+               return 0
+       }
+
+       pos := t.pos - 1
+       for pos > 0 {
+               if t.line[pos] != ' ' {
+                       break
+               }
+               pos--
+       }
+       for pos > 0 {
+               if t.line[pos] == ' ' {
+                       pos++
+                       break
+               }
+               pos--
+       }
+
+       return t.pos - pos
+}
+
+// countToRightWord returns then number of characters from the cursor to the
+// start of the next word.
+func (t *Terminal) countToRightWord() int {
+       pos := t.pos
+       for pos < len(t.line) {
+               if t.line[pos] == ' ' {
+                       break
+               }
+               pos++
+       }
+       for pos < len(t.line) {
+               if t.line[pos] != ' ' {
+                       break
+               }
+               pos++
+       }
+       return pos - t.pos
+}
+
+// visualLength returns the number of visible glyphs in s.
+func visualLength(runes []rune) int {
+       inEscapeSeq := false
+       length := 0
+
+       for _, r := range runes {
+               switch {
+               case inEscapeSeq:
+                       if (r >= 'a' && r <= 'z') || (r >= 'A' && r <= 'Z') {
+                               inEscapeSeq = false
+                       }
+               case r == '\x1b':
+                       inEscapeSeq = true
+               default:
+                       length++
+               }
+       }
+
+       return length
+}
+
+// handleKey processes the given key and, optionally, returns a line of text
+// that the user has entered.
+func (t *Terminal) handleKey(key rune) (line string, ok bool) {
+       if t.pasteActive && key != keyEnter {
+               t.addKeyToLine(key)
+               return
+       }
+
+       switch key {
+       case keyBackspace:
+               if t.pos == 0 {
+                       return
+               }
+               t.eraseNPreviousChars(1)
+       case keyAltLeft:
+               // move left by a word.
+               t.pos -= t.countToLeftWord()
+               t.moveCursorToPos(t.pos)
+       case keyAltRight:
+               // move right by a word.
+               t.pos += t.countToRightWord()
+               t.moveCursorToPos(t.pos)
+       case keyLeft:
+               if t.pos == 0 {
+                       return
+               }
+               t.pos--
+               t.moveCursorToPos(t.pos)
+       case keyRight:
+               if t.pos == len(t.line) {
+                       return
+               }
+               t.pos++
+               t.moveCursorToPos(t.pos)
+       case keyHome:
+               if t.pos == 0 {
+                       return
+               }
+               t.pos = 0
+               t.moveCursorToPos(t.pos)
+       case keyEnd:
+               if t.pos == len(t.line) {
+                       return
+               }
+               t.pos = len(t.line)
+               t.moveCursorToPos(t.pos)
+       case keyUp:
+               entry, ok := t.history.NthPreviousEntry(t.historyIndex + 1)
+               if !ok {
+                       return "", false
+               }
+               if t.historyIndex == -1 {
+                       t.historyPending = string(t.line)
+               }
+               t.historyIndex++
+               runes := []rune(entry)
+               t.setLine(runes, len(runes))
+       case keyDown:
+               switch t.historyIndex {
+               case -1:
+                       return
+               case 0:
+                       runes := []rune(t.historyPending)
+                       t.setLine(runes, len(runes))
+                       t.historyIndex--
+               default:
+                       entry, ok := t.history.NthPreviousEntry(t.historyIndex - 1)
+                       if ok {
+                               t.historyIndex--
+                               runes := []rune(entry)
+                               t.setLine(runes, len(runes))
+                       }
+               }
+       case keyEnter:
+               t.moveCursorToPos(len(t.line))
+               t.queue([]rune("\r\n"))
+               line = string(t.line)
+               ok = true
+               t.line = t.line[:0]
+               t.pos = 0
+               t.cursorX = 0
+               t.cursorY = 0
+               t.maxLine = 0
+       case keyDeleteWord:
+               // Delete zero or more spaces and then one or more characters.
+               t.eraseNPreviousChars(t.countToLeftWord())
+       case keyDeleteLine:
+               // Delete everything from the current cursor position to the
+               // end of line.
+               for i := t.pos; i < len(t.line); i++ {
+                       t.queue(space)
+                       t.advanceCursor(1)
+               }
+               t.line = t.line[:t.pos]
+               t.moveCursorToPos(t.pos)
+       case keyCtrlD:
+               // Erase the character under the current position.
+               // The EOF case when the line is empty is handled in
+               // readLine().
+               if t.pos < len(t.line) {
+                       t.pos++
+                       t.eraseNPreviousChars(1)
+               }
+       case keyCtrlU:
+               t.eraseNPreviousChars(t.pos)
+       case keyClearScreen:
+               // Erases the screen and moves the cursor to the home position.
+               t.queue([]rune("\x1b[2J\x1b[H"))
+               t.queue(t.prompt)
+               t.cursorX, t.cursorY = 0, 0
+               t.advanceCursor(visualLength(t.prompt))
+               t.setLine(t.line, t.pos)
+       default:
+               if t.AutoCompleteCallback != nil {
+                       prefix := string(t.line[:t.pos])
+                       suffix := string(t.line[t.pos:])
+
+                       t.lock.Unlock()
+                       newLine, newPos, completeOk := t.AutoCompleteCallback(prefix+suffix, len(prefix), key)
+                       t.lock.Lock()
+
+                       if completeOk {
+                               t.setLine([]rune(newLine), utf8.RuneCount([]byte(newLine)[:newPos]))
+                               return
+                       }
+               }
+               if !isPrintable(key) {
+                       return
+               }
+               if len(t.line) == maxLineLength {
+                       return
+               }
+               t.addKeyToLine(key)
+       }
+       return
+}
+
+// addKeyToLine inserts the given key at the current position in the current
+// line.
+func (t *Terminal) addKeyToLine(key rune) {
+       if len(t.line) == cap(t.line) {
+               newLine := make([]rune, len(t.line), 2*(1+len(t.line)))
+               copy(newLine, t.line)
+               t.line = newLine
+       }
+       t.line = t.line[:len(t.line)+1]
+       copy(t.line[t.pos+1:], t.line[t.pos:])
+       t.line[t.pos] = key
+       if t.echo {
+               t.writeLine(t.line[t.pos:])
+       }
+       t.pos++
+       t.moveCursorToPos(t.pos)
+}
+
+func (t *Terminal) writeLine(line []rune) {
+       for len(line) != 0 {
+               remainingOnLine := t.termWidth - t.cursorX
+               todo := len(line)
+               if todo > remainingOnLine {
+                       todo = remainingOnLine
+               }
+               t.queue(line[:todo])
+               t.advanceCursor(visualLength(line[:todo]))
+               line = line[todo:]
+       }
+}
+
+// writeWithCRLF writes buf to w but replaces all occurrences of \n with \r\n.
+func writeWithCRLF(w io.Writer, buf []byte) (n int, err error) {
+       for len(buf) > 0 {
+               i := bytes.IndexByte(buf, '\n')
+               todo := len(buf)
+               if i >= 0 {
+                       todo = i
+               }
+
+               var nn int
+               nn, err = w.Write(buf[:todo])
+               n += nn
+               if err != nil {
+                       return n, err
+               }
+               buf = buf[todo:]
+
+               if i >= 0 {
+                       if _, err = w.Write(crlf); err != nil {
+                               return n, err
+                       }
+                       n += 1
+                       buf = buf[1:]
+               }
+       }
+
+       return n, nil
+}
+
+func (t *Terminal) Write(buf []byte) (n int, err error) {
+       t.lock.Lock()
+       defer t.lock.Unlock()
+
+       if t.cursorX == 0 && t.cursorY == 0 {
+               // This is the easy case: there's nothing on the screen that we
+               // have to move out of the way.
+               return writeWithCRLF(t.c, buf)
+       }
+
+       // We have a prompt and possibly user input on the screen. We
+       // have to clear it first.
+       t.move(0 /* up */, 0 /* down */, t.cursorX /* left */, 0 /* right */)
+       t.cursorX = 0
+       t.clearLineToRight()
+
+       for t.cursorY > 0 {
+               t.move(1 /* up */, 0, 0, 0)
+               t.cursorY--
+               t.clearLineToRight()
+       }
+
+       if _, err = t.c.Write(t.outBuf); err != nil {
+               return
+       }
+       t.outBuf = t.outBuf[:0]
+
+       if n, err = writeWithCRLF(t.c, buf); err != nil {
+               return
+       }
+
+       t.writeLine(t.prompt)
+       if t.echo {
+               t.writeLine(t.line)
+       }
+
+       t.moveCursorToPos(t.pos)
+
+       if _, err = t.c.Write(t.outBuf); err != nil {
+               return
+       }
+       t.outBuf = t.outBuf[:0]
+       return
+}
+
+// ReadPassword temporarily changes the prompt and reads a password, without
+// echo, from the terminal.
+func (t *Terminal) ReadPassword(prompt string) (line string, err error) {
+       t.lock.Lock()
+       defer t.lock.Unlock()
+
+       oldPrompt := t.prompt
+       t.prompt = []rune(prompt)
+       t.echo = false
+
+       line, err = t.readLine()
+
+       t.prompt = oldPrompt
+       t.echo = true
+
+       return
+}
+
+// ReadLine returns a line of input from the terminal.
+func (t *Terminal) ReadLine() (line string, err error) {
+       t.lock.Lock()
+       defer t.lock.Unlock()
+
+       return t.readLine()
+}
+
+func (t *Terminal) readLine() (line string, err error) {
+       // t.lock must be held at this point
+
+       if t.cursorX == 0 && t.cursorY == 0 {
+               t.writeLine(t.prompt)
+               t.c.Write(t.outBuf)
+               t.outBuf = t.outBuf[:0]
+       }
+
+       lineIsPasted := t.pasteActive
+
+       for {
+               rest := t.remainder
+               lineOk := false
+               for !lineOk {
+                       var key rune
+                       key, rest = bytesToKey(rest, t.pasteActive)
+                       if key == utf8.RuneError {
+                               break
+                       }
+                       if !t.pasteActive {
+                               if key == keyCtrlD {
+                                       if len(t.line) == 0 {
+                                               return "", io.EOF
+                                       }
+                               }
+                               if key == keyPasteStart {
+                                       t.pasteActive = true
+                                       if len(t.line) == 0 {
+                                               lineIsPasted = true
+                                       }
+                                       continue
+                               }
+                       } else if key == keyPasteEnd {
+                               t.pasteActive = false
+                               continue
+                       }
+                       if !t.pasteActive {
+                               lineIsPasted = false
+                       }
+                       line, lineOk = t.handleKey(key)
+               }
+               if len(rest) > 0 {
+                       n := copy(t.inBuf[:], rest)
+                       t.remainder = t.inBuf[:n]
+               } else {
+                       t.remainder = nil
+               }
+               t.c.Write(t.outBuf)
+               t.outBuf = t.outBuf[:0]
+               if lineOk {
+                       if t.echo {
+                               t.historyIndex = -1
+                               t.history.Add(line)
+                       }
+                       if lineIsPasted {
+                               err = ErrPasteIndicator
+                       }
+                       return
+               }
+
+               // t.remainder is a slice at the beginning of t.inBuf
+               // containing a partial key sequence
+               readBuf := t.inBuf[len(t.remainder):]
+               var n int
+
+               t.lock.Unlock()
+               n, err = t.c.Read(readBuf)
+               t.lock.Lock()
+
+               if err != nil {
+                       return
+               }
+
+               t.remainder = t.inBuf[:n+len(t.remainder)]
+       }
+}
+
+// SetPrompt sets the prompt to be used when reading subsequent lines.
+func (t *Terminal) SetPrompt(prompt string) {
+       t.lock.Lock()
+       defer t.lock.Unlock()
+
+       t.prompt = []rune(prompt)
+}
+
+func (t *Terminal) clearAndRepaintLinePlusNPrevious(numPrevLines int) {
+       // Move cursor to column zero at the start of the line.
+       t.move(t.cursorY, 0, t.cursorX, 0)
+       t.cursorX, t.cursorY = 0, 0
+       t.clearLineToRight()
+       for t.cursorY < numPrevLines {
+               // Move down a line
+               t.move(0, 1, 0, 0)
+               t.cursorY++
+               t.clearLineToRight()
+       }
+       // Move back to beginning.
+       t.move(t.cursorY, 0, 0, 0)
+       t.cursorX, t.cursorY = 0, 0
+
+       t.queue(t.prompt)
+       t.advanceCursor(visualLength(t.prompt))
+       t.writeLine(t.line)
+       t.moveCursorToPos(t.pos)
+}
+
+func (t *Terminal) SetSize(width, height int) error {
+       t.lock.Lock()
+       defer t.lock.Unlock()
+
+       if width == 0 {
+               width = 1
+       }
+
+       oldWidth := t.termWidth
+       t.termWidth, t.termHeight = width, height
+
+       switch {
+       case width == oldWidth:
+               // If the width didn't change then nothing else needs to be
+               // done.
+               return nil
+       case len(t.line) == 0 && t.cursorX == 0 && t.cursorY == 0:
+               // If there is nothing on current line and no prompt printed,
+               // just do nothing
+               return nil
+       case width < oldWidth:
+               // Some terminals (e.g. xterm) will truncate lines that were
+               // too long when shinking. Others, (e.g. gnome-terminal) will
+               // attempt to wrap them. For the former, repainting t.maxLine
+               // works great, but that behaviour goes badly wrong in the case
+               // of the latter because they have doubled every full line.
+
+               // We assume that we are working on a terminal that wraps lines
+               // and adjust the cursor position based on every previous line
+               // wrapping and turning into two. This causes the prompt on
+               // xterms to move upwards, which isn't great, but it avoids a
+               // huge mess with gnome-terminal.
+               if t.cursorX >= t.termWidth {
+                       t.cursorX = t.termWidth - 1
+               }
+               t.cursorY *= 2
+               t.clearAndRepaintLinePlusNPrevious(t.maxLine * 2)
+       case width > oldWidth:
+               // If the terminal expands then our position calculations will
+               // be wrong in the future because we think the cursor is
+               // |t.pos| chars into the string, but there will be a gap at
+               // the end of any wrapped line.
+               //
+               // But the position will actually be correct until we move, so
+               // we can move back to the beginning and repaint everything.
+               t.clearAndRepaintLinePlusNPrevious(t.maxLine)
+       }
+
+       _, err := t.c.Write(t.outBuf)
+       t.outBuf = t.outBuf[:0]
+       return err
+}
+
+type pasteIndicatorError struct{}
+
+func (pasteIndicatorError) Error() string {
+       return "terminal: ErrPasteIndicator not correctly handled"
+}
+
+// ErrPasteIndicator may be returned from ReadLine as the error, in addition
+// to valid line data. It indicates that bracketed paste mode is enabled and
+// that the returned line consists only of pasted data. Programs may wish to
+// interpret pasted data more literally than typed data.
+var ErrPasteIndicator = pasteIndicatorError{}
+
+// SetBracketedPasteMode requests that the terminal bracket paste operations
+// with markers. Not all terminals support this but, if it is supported, then
+// enabling this mode will stop any autocomplete callback from running due to
+// pastes. Additionally, any lines that are completely pasted will be returned
+// from ReadLine with the error set to ErrPasteIndicator.
+func (t *Terminal) SetBracketedPasteMode(on bool) {
+       if on {
+               io.WriteString(t.c, "\x1b[?2004h")
+       } else {
+               io.WriteString(t.c, "\x1b[?2004l")
+       }
+}
+
+// stRingBuffer is a ring buffer of strings.
+type stRingBuffer struct {
+       // entries contains max elements.
+       entries []string
+       max     int
+       // head contains the index of the element most recently added to the ring.
+       head int
+       // size contains the number of elements in the ring.
+       size int
+}
+
+func (s *stRingBuffer) Add(a string) {
+       if s.entries == nil {
+               const defaultNumEntries = 100
+               s.entries = make([]string, defaultNumEntries)
+               s.max = defaultNumEntries
+       }
+
+       s.head = (s.head + 1) % s.max
+       s.entries[s.head] = a
+       if s.size < s.max {
+               s.size++
+       }
+}
+
+// NthPreviousEntry returns the value passed to the nth previous call to Add.
+// If n is zero then the immediately prior value is returned, if one, then the
+// next most recent, and so on. If such an element doesn't exist then ok is
+// false.
+func (s *stRingBuffer) NthPreviousEntry(n int) (value string, ok bool) {
+       if n >= s.size {
+               return "", false
+       }
+       index := s.head - n
+       if index < 0 {
+               index += s.max
+       }
+       return s.entries[index], true
+}
+
+// readPasswordLine reads from reader until it finds \n or io.EOF.
+// The slice returned does not include the \n.
+// readPasswordLine also ignores any \r it finds.
+func readPasswordLine(reader io.Reader) ([]byte, error) {
+       var buf [1]byte
+       var ret []byte
+
+       for {
+               n, err := reader.Read(buf[:])
+               if n > 0 {
+                       switch buf[0] {
+                       case '\n':
+                               return ret, nil
+                       case '\r':
+                               // remove \r from passwords on Windows
+                       default:
+                               ret = append(ret, buf[0])
+                       }
+                       continue
+               }
+               if err != nil {
+                       if err == io.EOF && len(ret) > 0 {
+                               return ret, nil
+                       }
+                       return ret, err
+               }
+       }
+}
diff --git a/vendor/golang.org/x/crypto/ssh/terminal/util.go b/vendor/golang.org/x/crypto/ssh/terminal/util.go
new file mode 100644 (file)
index 0000000..d019196
--- /dev/null
@@ -0,0 +1,119 @@
+// Copyright 2011 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build darwin dragonfly freebsd linux,!appengine netbsd openbsd
+
+// Package terminal provides support functions for dealing with terminals, as
+// commonly found on UNIX systems.
+//
+// Putting a terminal into raw mode is the most common requirement:
+//
+//     oldState, err := terminal.MakeRaw(0)
+//     if err != nil {
+//             panic(err)
+//     }
+//     defer terminal.Restore(0, oldState)
+package terminal // import "golang.org/x/crypto/ssh/terminal"
+
+import (
+       "syscall"
+       "unsafe"
+)
+
+// State contains the state of a terminal.
+type State struct {
+       termios syscall.Termios
+}
+
+// IsTerminal returns true if the given file descriptor is a terminal.
+func IsTerminal(fd int) bool {
+       var termios syscall.Termios
+       _, _, err := syscall.Syscall6(syscall.SYS_IOCTL, uintptr(fd), ioctlReadTermios, uintptr(unsafe.Pointer(&termios)), 0, 0, 0)
+       return err == 0
+}
+
+// MakeRaw put the terminal connected to the given file descriptor into raw
+// mode and returns the previous state of the terminal so that it can be
+// restored.
+func MakeRaw(fd int) (*State, error) {
+       var oldState State
+       if _, _, err := syscall.Syscall6(syscall.SYS_IOCTL, uintptr(fd), ioctlReadTermios, uintptr(unsafe.Pointer(&oldState.termios)), 0, 0, 0); err != 0 {
+               return nil, err
+       }
+
+       newState := oldState.termios
+       // This attempts to replicate the behaviour documented for cfmakeraw in
+       // the termios(3) manpage.
+       newState.Iflag &^= syscall.IGNBRK | syscall.BRKINT | syscall.PARMRK | syscall.ISTRIP | syscall.INLCR | syscall.IGNCR | syscall.ICRNL | syscall.IXON
+       newState.Oflag &^= syscall.OPOST
+       newState.Lflag &^= syscall.ECHO | syscall.ECHONL | syscall.ICANON | syscall.ISIG | syscall.IEXTEN
+       newState.Cflag &^= syscall.CSIZE | syscall.PARENB
+       newState.Cflag |= syscall.CS8
+       if _, _, err := syscall.Syscall6(syscall.SYS_IOCTL, uintptr(fd), ioctlWriteTermios, uintptr(unsafe.Pointer(&newState)), 0, 0, 0); err != 0 {
+               return nil, err
+       }
+
+       return &oldState, nil
+}
+
+// GetState returns the current state of a terminal which may be useful to
+// restore the terminal after a signal.
+func GetState(fd int) (*State, error) {
+       var oldState State
+       if _, _, err := syscall.Syscall6(syscall.SYS_IOCTL, uintptr(fd), ioctlReadTermios, uintptr(unsafe.Pointer(&oldState.termios)), 0, 0, 0); err != 0 {
+               return nil, err
+       }
+
+       return &oldState, nil
+}
+
+// Restore restores the terminal connected to the given file descriptor to a
+// previous state.
+func Restore(fd int, state *State) error {
+       if _, _, err := syscall.Syscall6(syscall.SYS_IOCTL, uintptr(fd), ioctlWriteTermios, uintptr(unsafe.Pointer(&state.termios)), 0, 0, 0); err != 0 {
+               return err
+       }
+       return nil
+}
+
+// GetSize returns the dimensions of the given terminal.
+func GetSize(fd int) (width, height int, err error) {
+       var dimensions [4]uint16
+
+       if _, _, err := syscall.Syscall6(syscall.SYS_IOCTL, uintptr(fd), uintptr(syscall.TIOCGWINSZ), uintptr(unsafe.Pointer(&dimensions)), 0, 0, 0); err != 0 {
+               return -1, -1, err
+       }
+       return int(dimensions[1]), int(dimensions[0]), nil
+}
+
+// passwordReader is an io.Reader that reads from a specific file descriptor.
+type passwordReader int
+
+func (r passwordReader) Read(buf []byte) (int, error) {
+       return syscall.Read(int(r), buf)
+}
+
+// ReadPassword reads a line of input from a terminal without local echo.  This
+// is commonly used for inputting passwords and other sensitive data. The slice
+// returned does not include the \n.
+func ReadPassword(fd int) ([]byte, error) {
+       var oldState syscall.Termios
+       if _, _, err := syscall.Syscall6(syscall.SYS_IOCTL, uintptr(fd), ioctlReadTermios, uintptr(unsafe.Pointer(&oldState)), 0, 0, 0); err != 0 {
+               return nil, err
+       }
+
+       newState := oldState
+       newState.Lflag &^= syscall.ECHO
+       newState.Lflag |= syscall.ICANON | syscall.ISIG
+       newState.Iflag |= syscall.ICRNL
+       if _, _, err := syscall.Syscall6(syscall.SYS_IOCTL, uintptr(fd), ioctlWriteTermios, uintptr(unsafe.Pointer(&newState)), 0, 0, 0); err != 0 {
+               return nil, err
+       }
+
+       defer func() {
+               syscall.Syscall6(syscall.SYS_IOCTL, uintptr(fd), ioctlWriteTermios, uintptr(unsafe.Pointer(&oldState)), 0, 0, 0)
+       }()
+
+       return readPasswordLine(passwordReader(fd))
+}
diff --git a/vendor/golang.org/x/crypto/ssh/terminal/util_bsd.go b/vendor/golang.org/x/crypto/ssh/terminal/util_bsd.go
new file mode 100644 (file)
index 0000000..9c1ffd1
--- /dev/null
@@ -0,0 +1,12 @@
+// 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 darwin dragonfly freebsd netbsd openbsd
+
+package terminal
+
+import "syscall"
+
+const ioctlReadTermios = syscall.TIOCGETA
+const ioctlWriteTermios = syscall.TIOCSETA
diff --git a/vendor/golang.org/x/crypto/ssh/terminal/util_linux.go b/vendor/golang.org/x/crypto/ssh/terminal/util_linux.go
new file mode 100644 (file)
index 0000000..5883b22
--- /dev/null
@@ -0,0 +1,11 @@
+// Copyright 2013 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package terminal
+
+// These constants are declared here, rather than importing
+// them from the syscall package as some syscall packages, even
+// on linux, for example gccgo, do not declare them.
+const ioctlReadTermios = 0x5401  // syscall.TCGETS
+const ioctlWriteTermios = 0x5402 // syscall.TCSETS
diff --git a/vendor/golang.org/x/crypto/ssh/terminal/util_plan9.go b/vendor/golang.org/x/crypto/ssh/terminal/util_plan9.go
new file mode 100644 (file)
index 0000000..799f049
--- /dev/null
@@ -0,0 +1,58 @@
+// 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 terminal provides support functions for dealing with terminals, as
+// commonly found on UNIX systems.
+//
+// Putting a terminal into raw mode is the most common requirement:
+//
+//     oldState, err := terminal.MakeRaw(0)
+//     if err != nil {
+//             panic(err)
+//     }
+//     defer terminal.Restore(0, oldState)
+package terminal
+
+import (
+       "fmt"
+       "runtime"
+)
+
+type State struct{}
+
+// IsTerminal returns true if the given file descriptor is a terminal.
+func IsTerminal(fd int) bool {
+       return false
+}
+
+// MakeRaw put the terminal connected to the given file descriptor into raw
+// mode and returns the previous state of the terminal so that it can be
+// restored.
+func MakeRaw(fd int) (*State, error) {
+       return nil, fmt.Errorf("terminal: MakeRaw not implemented on %s/%s", runtime.GOOS, runtime.GOARCH)
+}
+
+// GetState returns the current state of a terminal which may be useful to
+// restore the terminal after a signal.
+func GetState(fd int) (*State, error) {
+       return nil, fmt.Errorf("terminal: GetState not implemented on %s/%s", runtime.GOOS, runtime.GOARCH)
+}
+
+// Restore restores the terminal connected to the given file descriptor to a
+// previous state.
+func Restore(fd int, state *State) error {
+       return fmt.Errorf("terminal: Restore not implemented on %s/%s", runtime.GOOS, runtime.GOARCH)
+}
+
+// GetSize returns the dimensions of the given terminal.
+func GetSize(fd int) (width, height int, err error) {
+       return 0, 0, fmt.Errorf("terminal: GetSize not implemented on %s/%s", runtime.GOOS, runtime.GOARCH)
+}
+
+// ReadPassword reads a line of input from a terminal without local echo.  This
+// is commonly used for inputting passwords and other sensitive data. The slice
+// returned does not include the \n.
+func ReadPassword(fd int) ([]byte, error) {
+       return nil, fmt.Errorf("terminal: ReadPassword not implemented on %s/%s", runtime.GOOS, runtime.GOARCH)
+}
diff --git a/vendor/golang.org/x/crypto/ssh/terminal/util_solaris.go b/vendor/golang.org/x/crypto/ssh/terminal/util_solaris.go
new file mode 100644 (file)
index 0000000..a2e1b57
--- /dev/null
@@ -0,0 +1,128 @@
+// 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 solaris
+
+package terminal // import "golang.org/x/crypto/ssh/terminal"
+
+import (
+       "golang.org/x/sys/unix"
+       "io"
+       "syscall"
+)
+
+// State contains the state of a terminal.
+type State struct {
+       state *unix.Termios
+}
+
+// IsTerminal returns true if the given file descriptor is a terminal.
+func IsTerminal(fd int) bool {
+       _, err := unix.IoctlGetTermio(fd, unix.TCGETA)
+       return err == nil
+}
+
+// ReadPassword reads a line of input from a terminal without local echo.  This
+// is commonly used for inputting passwords and other sensitive data. The slice
+// returned does not include the \n.
+func ReadPassword(fd int) ([]byte, error) {
+       // see also: http://src.illumos.org/source/xref/illumos-gate/usr/src/lib/libast/common/uwin/getpass.c
+       val, err := unix.IoctlGetTermios(fd, unix.TCGETS)
+       if err != nil {
+               return nil, err
+       }
+       oldState := *val
+
+       newState := oldState
+       newState.Lflag &^= syscall.ECHO
+       newState.Lflag |= syscall.ICANON | syscall.ISIG
+       newState.Iflag |= syscall.ICRNL
+       err = unix.IoctlSetTermios(fd, unix.TCSETS, &newState)
+       if err != nil {
+               return nil, err
+       }
+
+       defer unix.IoctlSetTermios(fd, unix.TCSETS, &oldState)
+
+       var buf [16]byte
+       var ret []byte
+       for {
+               n, err := syscall.Read(fd, buf[:])
+               if err != nil {
+                       return nil, err
+               }
+               if n == 0 {
+                       if len(ret) == 0 {
+                               return nil, io.EOF
+                       }
+                       break
+               }
+               if buf[n-1] == '\n' {
+                       n--
+               }
+               ret = append(ret, buf[:n]...)
+               if n < len(buf) {
+                       break
+               }
+       }
+
+       return ret, nil
+}
+
+// MakeRaw puts the terminal connected to the given file descriptor into raw
+// mode and returns the previous state of the terminal so that it can be
+// restored.
+// see http://cr.illumos.org/~webrev/andy_js/1060/
+func MakeRaw(fd int) (*State, error) {
+       oldTermiosPtr, err := unix.IoctlGetTermios(fd, unix.TCGETS)
+       if err != nil {
+               return nil, err
+       }
+       oldTermios := *oldTermiosPtr
+
+       newTermios := oldTermios
+       newTermios.Iflag &^= syscall.IGNBRK | syscall.BRKINT | syscall.PARMRK | syscall.ISTRIP | syscall.INLCR | syscall.IGNCR | syscall.ICRNL | syscall.IXON
+       newTermios.Oflag &^= syscall.OPOST
+       newTermios.Lflag &^= syscall.ECHO | syscall.ECHONL | syscall.ICANON | syscall.ISIG | syscall.IEXTEN
+       newTermios.Cflag &^= syscall.CSIZE | syscall.PARENB
+       newTermios.Cflag |= syscall.CS8
+       newTermios.Cc[unix.VMIN] = 1
+       newTermios.Cc[unix.VTIME] = 0
+
+       if err := unix.IoctlSetTermios(fd, unix.TCSETS, &newTermios); err != nil {
+               return nil, err
+       }
+
+       return &State{
+               state: oldTermiosPtr,
+       }, nil
+}
+
+// Restore restores the terminal connected to the given file descriptor to a
+// previous state.
+func Restore(fd int, oldState *State) error {
+       return unix.IoctlSetTermios(fd, unix.TCSETS, oldState.state)
+}
+
+// GetState returns the current state of a terminal which may be useful to
+// restore the terminal after a signal.
+func GetState(fd int) (*State, error) {
+       oldTermiosPtr, err := unix.IoctlGetTermios(fd, unix.TCGETS)
+       if err != nil {
+               return nil, err
+       }
+
+       return &State{
+               state: oldTermiosPtr,
+       }, nil
+}
+
+// GetSize returns the dimensions of the given terminal.
+func GetSize(fd int) (width, height int, err error) {
+       ws, err := unix.IoctlGetWinsize(fd, unix.TIOCGWINSZ)
+       if err != nil {
+               return 0, 0, err
+       }
+       return int(ws.Col), int(ws.Row), nil
+}
diff --git a/vendor/golang.org/x/crypto/ssh/terminal/util_windows.go b/vendor/golang.org/x/crypto/ssh/terminal/util_windows.go
new file mode 100644 (file)
index 0000000..e0a1f36
--- /dev/null
@@ -0,0 +1,155 @@
+// Copyright 2011 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build windows
+
+// Package terminal provides support functions for dealing with terminals, as
+// commonly found on UNIX systems.
+//
+// Putting a terminal into raw mode is the most common requirement:
+//
+//     oldState, err := terminal.MakeRaw(0)
+//     if err != nil {
+//             panic(err)
+//     }
+//     defer terminal.Restore(0, oldState)
+package terminal
+
+import (
+       "syscall"
+       "unsafe"
+)
+
+const (
+       enableLineInput       = 2
+       enableEchoInput       = 4
+       enableProcessedInput  = 1
+       enableWindowInput     = 8
+       enableMouseInput      = 16
+       enableInsertMode      = 32
+       enableQuickEditMode   = 64
+       enableExtendedFlags   = 128
+       enableAutoPosition    = 256
+       enableProcessedOutput = 1
+       enableWrapAtEolOutput = 2
+)
+
+var kernel32 = syscall.NewLazyDLL("kernel32.dll")
+
+var (
+       procGetConsoleMode             = kernel32.NewProc("GetConsoleMode")
+       procSetConsoleMode             = kernel32.NewProc("SetConsoleMode")
+       procGetConsoleScreenBufferInfo = kernel32.NewProc("GetConsoleScreenBufferInfo")
+)
+
+type (
+       short int16
+       word  uint16
+
+       coord struct {
+               x short
+               y short
+       }
+       smallRect struct {
+               left   short
+               top    short
+               right  short
+               bottom short
+       }
+       consoleScreenBufferInfo struct {
+               size              coord
+               cursorPosition    coord
+               attributes        word
+               window            smallRect
+               maximumWindowSize coord
+       }
+)
+
+type State struct {
+       mode uint32
+}
+
+// IsTerminal returns true if the given file descriptor is a terminal.
+func IsTerminal(fd int) bool {
+       var st uint32
+       r, _, e := syscall.Syscall(procGetConsoleMode.Addr(), 2, uintptr(fd), uintptr(unsafe.Pointer(&st)), 0)
+       return r != 0 && e == 0
+}
+
+// MakeRaw put the terminal connected to the given file descriptor into raw
+// mode and returns the previous state of the terminal so that it can be
+// restored.
+func MakeRaw(fd int) (*State, error) {
+       var st uint32
+       _, _, e := syscall.Syscall(procGetConsoleMode.Addr(), 2, uintptr(fd), uintptr(unsafe.Pointer(&st)), 0)
+       if e != 0 {
+               return nil, error(e)
+       }
+       raw := st &^ (enableEchoInput | enableProcessedInput | enableLineInput | enableProcessedOutput)
+       _, _, e = syscall.Syscall(procSetConsoleMode.Addr(), 2, uintptr(fd), uintptr(raw), 0)
+       if e != 0 {
+               return nil, error(e)
+       }
+       return &State{st}, nil
+}
+
+// GetState returns the current state of a terminal which may be useful to
+// restore the terminal after a signal.
+func GetState(fd int) (*State, error) {
+       var st uint32
+       _, _, e := syscall.Syscall(procGetConsoleMode.Addr(), 2, uintptr(fd), uintptr(unsafe.Pointer(&st)), 0)
+       if e != 0 {
+               return nil, error(e)
+       }
+       return &State{st}, nil
+}
+
+// Restore restores the terminal connected to the given file descriptor to a
+// previous state.
+func Restore(fd int, state *State) error {
+       _, _, err := syscall.Syscall(procSetConsoleMode.Addr(), 2, uintptr(fd), uintptr(state.mode), 0)
+       return err
+}
+
+// GetSize returns the dimensions of the given terminal.
+func GetSize(fd int) (width, height int, err error) {
+       var info consoleScreenBufferInfo
+       _, _, e := syscall.Syscall(procGetConsoleScreenBufferInfo.Addr(), 2, uintptr(fd), uintptr(unsafe.Pointer(&info)), 0)
+       if e != 0 {
+               return 0, 0, error(e)
+       }
+       return int(info.size.x), int(info.size.y), nil
+}
+
+// passwordReader is an io.Reader that reads from a specific Windows HANDLE.
+type passwordReader int
+
+func (r passwordReader) Read(buf []byte) (int, error) {
+       return syscall.Read(syscall.Handle(r), buf)
+}
+
+// ReadPassword reads a line of input from a terminal without local echo.  This
+// is commonly used for inputting passwords and other sensitive data. The slice
+// returned does not include the \n.
+func ReadPassword(fd int) ([]byte, error) {
+       var st uint32
+       _, _, e := syscall.Syscall(procGetConsoleMode.Addr(), 2, uintptr(fd), uintptr(unsafe.Pointer(&st)), 0)
+       if e != 0 {
+               return nil, error(e)
+       }
+       old := st
+
+       st &^= (enableEchoInput)
+       st |= (enableProcessedInput | enableLineInput | enableProcessedOutput)
+       _, _, e = syscall.Syscall(procSetConsoleMode.Addr(), 2, uintptr(fd), uintptr(st), 0)
+       if e != 0 {
+               return nil, error(e)
+       }
+
+       defer func() {
+               syscall.Syscall(procSetConsoleMode.Addr(), 2, uintptr(fd), uintptr(old), 0)
+       }()
+
+       return readPasswordLine(passwordReader(fd))
+}
diff --git a/vendor/golang.org/x/sys/LICENSE b/vendor/golang.org/x/sys/LICENSE
new file mode 100644 (file)
index 0000000..6a66aea
--- /dev/null
@@ -0,0 +1,27 @@
+Copyright (c) 2009 The Go Authors. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+   * Redistributions of source code must retain the above copyright
+notice, this list of conditions and the following disclaimer.
+   * Redistributions in binary form must reproduce the above
+copyright notice, this list of conditions and the following disclaimer
+in the documentation and/or other materials provided with the
+distribution.
+   * Neither the name of Google Inc. nor the names of its
+contributors may be used to endorse or promote products derived from
+this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/vendor/golang.org/x/sys/PATENTS b/vendor/golang.org/x/sys/PATENTS
new file mode 100644 (file)
index 0000000..7330990
--- /dev/null
@@ -0,0 +1,22 @@
+Additional IP Rights Grant (Patents)
+
+"This implementation" means the copyrightable works distributed by
+Google as part of the Go project.
+
+Google hereby grants to You a perpetual, worldwide, non-exclusive,
+no-charge, royalty-free, irrevocable (except as stated in this section)
+patent license to make, have made, use, offer to sell, sell, import,
+transfer and otherwise run, modify and propagate the contents of this
+implementation of Go, where such license applies only to those patent
+claims, both currently owned or controlled by Google and acquired in
+the future, licensable by Google that are necessarily infringed by this
+implementation of Go.  This grant does not include claims that would be
+infringed only as a consequence of further modification of this
+implementation.  If you or your agent or exclusive licensee institute or
+order or agree to the institution of patent litigation against any
+entity (including a cross-claim or counterclaim in a lawsuit) alleging
+that this implementation of Go or any code incorporated within this
+implementation of Go constitutes direct or contributory patent
+infringement, or inducement of patent infringement, then any patent
+rights granted to you under this License for this implementation of Go
+shall terminate as of the date such litigation is filed.
diff --git a/vendor/golang.org/x/sys/unix/README.md b/vendor/golang.org/x/sys/unix/README.md
new file mode 100644 (file)
index 0000000..bc6f603
--- /dev/null
@@ -0,0 +1,173 @@
+# Building `sys/unix`
+
+The sys/unix package provides access to the raw system call interface of the
+underlying operating system. See: https://godoc.org/golang.org/x/sys/unix
+
+Porting Go to a new architecture/OS combination or adding syscalls, types, or
+constants to an existing architecture/OS pair requires some manual effort;
+however, there are tools that automate much of the process.
+
+## Build Systems
+
+There are currently two ways we generate the necessary files. We are currently
+migrating the build system to use containers so the builds are reproducible.
+This is being done on an OS-by-OS basis. Please update this documentation as
+components of the build system change.
+
+### Old Build System (currently for `GOOS != "Linux" || GOARCH == "sparc64"`)
+
+The old build system generates the Go files based on the C header files
+present on your system. This means that files
+for a given GOOS/GOARCH pair must be generated on a system with that OS and
+architecture. This also means that the generated code can differ from system
+to system, based on differences in the header files.
+
+To avoid this, if you are using the old build system, only generate the Go
+files on an installation with unmodified header files. It is also important to
+keep track of which version of the OS the files were generated from (ex.
+Darwin 14 vs Darwin 15). This makes it easier to track the progress of changes
+and have each OS upgrade correspond to a single change.
+
+To build the files for your current OS and architecture, make sure GOOS and
+GOARCH are set correctly and run `mkall.sh`. This will generate the files for
+your specific system. Running `mkall.sh -n` shows the commands that will be run.
+
+Requirements: bash, perl, go
+
+### New Build System (currently for `GOOS == "Linux" && GOARCH != "sparc64"`)
+
+The new build system uses a Docker container to generate the go files directly
+from source checkouts of the kernel and various system libraries. This means
+that on any platform that supports Docker, all the files using the new build
+system can be generated at once, and generated files will not change based on
+what the person running the scripts has installed on their computer.
+
+The OS specific files for the new build system are located in the `${GOOS}`
+directory, and the build is coordinated by the `${GOOS}/mkall.go` program. When
+the kernel or system library updates, modify the Dockerfile at
+`${GOOS}/Dockerfile` to checkout the new release of the source.
+
+To build all the files under the new build system, you must be on an amd64/Linux
+system and have your GOOS and GOARCH set accordingly. Running `mkall.sh` will
+then generate all of the files for all of the GOOS/GOARCH pairs in the new build
+system. Running `mkall.sh -n` shows the commands that will be run.
+
+Requirements: bash, perl, go, docker
+
+## Component files
+
+This section describes the various files used in the code generation process.
+It also contains instructions on how to modify these files to add a new
+architecture/OS or to add additional syscalls, types, or constants. Note that
+if you are using the new build system, the scripts cannot be called normally.
+They must be called from within the docker container.
+
+### asm files
+
+The hand-written assembly file at `asm_${GOOS}_${GOARCH}.s` implements system
+call dispatch. There are three entry points:
+```
+  func Syscall(trap, a1, a2, a3 uintptr) (r1, r2, err uintptr)
+  func Syscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2, err uintptr)
+  func RawSyscall(trap, a1, a2, a3 uintptr) (r1, r2, err uintptr)
+```
+The first and second are the standard ones; they differ only in how many
+arguments can be passed to the kernel. The third is for low-level use by the
+ForkExec wrapper. Unlike the first two, it does not call into the scheduler to
+let it know that a system call is running.
+
+When porting Go to an new architecture/OS, this file must be implemented for
+each GOOS/GOARCH pair.
+
+### mksysnum
+
+Mksysnum is a script located at `${GOOS}/mksysnum.pl` (or `mksysnum_${GOOS}.pl`
+for the old system). This script takes in a list of header files containing the
+syscall number declarations and parses them to produce the corresponding list of
+Go numeric constants. See `zsysnum_${GOOS}_${GOARCH}.go` for the generated
+constants.
+
+Adding new syscall numbers is mostly done by running the build on a sufficiently
+new installation of the target OS (or updating the source checkouts for the
+new build system). However, depending on the OS, you make need to update the
+parsing in mksysnum.
+
+### mksyscall.pl
+
+The `syscall.go`, `syscall_${GOOS}.go`, `syscall_${GOOS}_${GOARCH}.go` are
+hand-written Go files which implement system calls (for unix, the specific OS,
+or the specific OS/Architecture pair respectively) that need special handling
+and list `//sys` comments giving prototypes for ones that can be generated.
+
+The mksyscall.pl script takes the `//sys` and `//sysnb` comments and converts
+them into syscalls. This requires the name of the prototype in the comment to
+match a syscall number in the `zsysnum_${GOOS}_${GOARCH}.go` file. The function
+prototype can be exported (capitalized) or not.
+
+Adding a new syscall often just requires adding a new `//sys` function prototype
+with the desired arguments and a capitalized name so it is exported. However, if
+you want the interface to the syscall to be different, often one will make an
+unexported `//sys` prototype, an then write a custom wrapper in
+`syscall_${GOOS}.go`.
+
+### types files
+
+For each OS, there is a hand-written Go file at `${GOOS}/types.go` (or
+`types_${GOOS}.go` on the old system). This file includes standard C headers and
+creates Go type aliases to the corresponding C types. The file is then fed
+through godef to get the Go compatible definitions. Finally, the generated code
+is fed though mkpost.go to format the code correctly and remove any hidden or
+private identifiers. This cleaned-up code is written to
+`ztypes_${GOOS}_${GOARCH}.go`.
+
+The hardest part about preparing this file is figuring out which headers to
+include and which symbols need to be `#define`d to get the actual data
+structures that pass through to the kernel system calls. Some C libraries
+preset alternate versions for binary compatibility and translate them on the
+way in and out of system calls, but there is almost always a `#define` that can
+get the real ones.
+See `types_darwin.go` and `linux/types.go` for examples.
+
+To add a new type, add in the necessary include statement at the top of the
+file (if it is not already there) and add in a type alias line. Note that if
+your type is significantly different on different architectures, you may need
+some `#if/#elif` macros in your include statements.
+
+### mkerrors.sh
+
+This script is used to generate the system's various constants. This doesn't
+just include the error numbers and error strings, but also the signal numbers
+an a wide variety of miscellaneous constants. The constants come from the list
+of include files in the `includes_${uname}` variable. A regex then picks out
+the desired `#define` statements, and generates the corresponding Go constants.
+The error numbers and strings are generated from `#include <errno.h>`, and the
+signal numbers and strings are generated from `#include <signal.h>`. All of
+these constants are written to `zerrors_${GOOS}_${GOARCH}.go` via a C program,
+`_errors.c`, which prints out all the constants.
+
+To add a constant, add the header that includes it to the appropriate variable.
+Then, edit the regex (if necessary) to match the desired constant. Avoid making
+the regex too broad to avoid matching unintended constants.
+
+
+## Generated files
+
+### `zerror_${GOOS}_${GOARCH}.go`
+
+A file containing all of the system's generated error numbers, error strings,
+signal numbers, and constants. Generated by `mkerrors.sh` (see above).
+
+### `zsyscall_${GOOS}_${GOARCH}.go`
+
+A file containing all the generated syscalls for a specific GOOS and GOARCH.
+Generated by `mksyscall.pl` (see above).
+
+### `zsysnum_${GOOS}_${GOARCH}.go`
+
+A list of numeric constants for all the syscall number of the specific GOOS
+and GOARCH. Generated by mksysnum (see above).
+
+### `ztypes_${GOOS}_${GOARCH}.go`
+
+A file containing Go types for passing into (or returning from) syscalls.
+Generated by godefs and the types file (see above).
diff --git a/vendor/golang.org/x/sys/unix/asm_darwin_386.s b/vendor/golang.org/x/sys/unix/asm_darwin_386.s
new file mode 100644 (file)
index 0000000..8a72783
--- /dev/null
@@ -0,0 +1,29 @@
+// Copyright 2009 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build !gccgo
+
+#include "textflag.h"
+
+//
+// System call support for 386, Darwin
+//
+
+// Just jump to package syscall's implementation for all these functions.
+// The runtime may know about them.
+
+TEXT   ·Syscall(SB),NOSPLIT,$0-28
+       JMP     syscall·Syscall(SB)
+
+TEXT   ·Syscall6(SB),NOSPLIT,$0-40
+       JMP     syscall·Syscall6(SB)
+
+TEXT   ·Syscall9(SB),NOSPLIT,$0-52
+       JMP     syscall·Syscall9(SB)
+
+TEXT ·RawSyscall(SB),NOSPLIT,$0-28
+       JMP     syscall·RawSyscall(SB)
+
+TEXT   ·RawSyscall6(SB),NOSPLIT,$0-40
+       JMP     syscall·RawSyscall6(SB)
diff --git a/vendor/golang.org/x/sys/unix/asm_darwin_amd64.s b/vendor/golang.org/x/sys/unix/asm_darwin_amd64.s
new file mode 100644 (file)
index 0000000..6321421
--- /dev/null
@@ -0,0 +1,29 @@
+// Copyright 2009 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build !gccgo
+
+#include "textflag.h"
+
+//
+// System call support for AMD64, Darwin
+//
+
+// Just jump to package syscall's implementation for all these functions.
+// The runtime may know about them.
+
+TEXT   ·Syscall(SB),NOSPLIT,$0-56
+       JMP     syscall·Syscall(SB)
+
+TEXT   ·Syscall6(SB),NOSPLIT,$0-80
+       JMP     syscall·Syscall6(SB)
+
+TEXT   ·Syscall9(SB),NOSPLIT,$0-104
+       JMP     syscall·Syscall9(SB)
+
+TEXT   ·RawSyscall(SB),NOSPLIT,$0-56
+       JMP     syscall·RawSyscall(SB)
+
+TEXT   ·RawSyscall6(SB),NOSPLIT,$0-80
+       JMP     syscall·RawSyscall6(SB)
diff --git a/vendor/golang.org/x/sys/unix/asm_darwin_arm.s b/vendor/golang.org/x/sys/unix/asm_darwin_arm.s
new file mode 100644 (file)
index 0000000..333242d
--- /dev/null
@@ -0,0 +1,30 @@
+// Copyright 2015 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build !gccgo
+// +build arm,darwin
+
+#include "textflag.h"
+
+//
+// System call support for ARM, Darwin
+//
+
+// Just jump to package syscall's implementation for all these functions.
+// The runtime may know about them.
+
+TEXT   ·Syscall(SB),NOSPLIT,$0-28
+       B       syscall·Syscall(SB)
+
+TEXT   ·Syscall6(SB),NOSPLIT,$0-40
+       B       syscall·Syscall6(SB)
+
+TEXT   ·Syscall9(SB),NOSPLIT,$0-52
+       B       syscall·Syscall9(SB)
+
+TEXT   ·RawSyscall(SB),NOSPLIT,$0-28
+       B       syscall·RawSyscall(SB)
+
+TEXT   ·RawSyscall6(SB),NOSPLIT,$0-40
+       B       syscall·RawSyscall6(SB)
diff --git a/vendor/golang.org/x/sys/unix/asm_darwin_arm64.s b/vendor/golang.org/x/sys/unix/asm_darwin_arm64.s
new file mode 100644 (file)
index 0000000..97e0174
--- /dev/null
@@ -0,0 +1,30 @@
+// Copyright 2015 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build !gccgo
+// +build arm64,darwin
+
+#include "textflag.h"
+
+//
+// System call support for AMD64, Darwin
+//
+
+// Just jump to package syscall's implementation for all these functions.
+// The runtime may know about them.
+
+TEXT   ·Syscall(SB),NOSPLIT,$0-56
+       B       syscall·Syscall(SB)
+
+TEXT   ·Syscall6(SB),NOSPLIT,$0-80
+       B       syscall·Syscall6(SB)
+
+TEXT   ·Syscall9(SB),NOSPLIT,$0-104
+       B       syscall·Syscall9(SB)
+
+TEXT   ·RawSyscall(SB),NOSPLIT,$0-56
+       B       syscall·RawSyscall(SB)
+
+TEXT   ·RawSyscall6(SB),NOSPLIT,$0-80
+       B       syscall·RawSyscall6(SB)
diff --git a/vendor/golang.org/x/sys/unix/asm_dragonfly_amd64.s b/vendor/golang.org/x/sys/unix/asm_dragonfly_amd64.s
new file mode 100644 (file)
index 0000000..d5ed672
--- /dev/null
@@ -0,0 +1,29 @@
+// Copyright 2009 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build !gccgo
+
+#include "textflag.h"
+
+//
+// System call support for AMD64, DragonFly
+//
+
+// Just jump to package syscall's implementation for all these functions.
+// The runtime may know about them.
+
+TEXT   ·Syscall(SB),NOSPLIT,$0-64
+       JMP     syscall·Syscall(SB)
+
+TEXT   ·Syscall6(SB),NOSPLIT,$0-88
+       JMP     syscall·Syscall6(SB)
+
+TEXT   ·Syscall9(SB),NOSPLIT,$0-112
+       JMP     syscall·Syscall9(SB)
+
+TEXT ·RawSyscall(SB),NOSPLIT,$0-64
+       JMP     syscall·RawSyscall(SB)
+
+TEXT   ·RawSyscall6(SB),NOSPLIT,$0-88
+       JMP     syscall·RawSyscall6(SB)
diff --git a/vendor/golang.org/x/sys/unix/asm_freebsd_386.s b/vendor/golang.org/x/sys/unix/asm_freebsd_386.s
new file mode 100644 (file)
index 0000000..c9a0a26
--- /dev/null
@@ -0,0 +1,29 @@
+// Copyright 2009 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build !gccgo
+
+#include "textflag.h"
+
+//
+// System call support for 386, FreeBSD
+//
+
+// Just jump to package syscall's implementation for all these functions.
+// The runtime may know about them.
+
+TEXT   ·Syscall(SB),NOSPLIT,$0-28
+       JMP     syscall·Syscall(SB)
+
+TEXT   ·Syscall6(SB),NOSPLIT,$0-40
+       JMP     syscall·Syscall6(SB)
+
+TEXT   ·Syscall9(SB),NOSPLIT,$0-52
+       JMP     syscall·Syscall9(SB)
+
+TEXT ·RawSyscall(SB),NOSPLIT,$0-28
+       JMP     syscall·RawSyscall(SB)
+
+TEXT   ·RawSyscall6(SB),NOSPLIT,$0-40
+       JMP     syscall·RawSyscall6(SB)
diff --git a/vendor/golang.org/x/sys/unix/asm_freebsd_amd64.s b/vendor/golang.org/x/sys/unix/asm_freebsd_amd64.s
new file mode 100644 (file)
index 0000000..3517247
--- /dev/null
@@ -0,0 +1,29 @@
+// Copyright 2009 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build !gccgo
+
+#include "textflag.h"
+
+//
+// System call support for AMD64, FreeBSD
+//
+
+// Just jump to package syscall's implementation for all these functions.
+// The runtime may know about them.
+
+TEXT   ·Syscall(SB),NOSPLIT,$0-56
+       JMP     syscall·Syscall(SB)
+
+TEXT   ·Syscall6(SB),NOSPLIT,$0-80
+       JMP     syscall·Syscall6(SB)
+
+TEXT   ·Syscall9(SB),NOSPLIT,$0-104
+       JMP     syscall·Syscall9(SB)
+
+TEXT ·RawSyscall(SB),NOSPLIT,$0-56
+       JMP     syscall·RawSyscall(SB)
+
+TEXT   ·RawSyscall6(SB),NOSPLIT,$0-80
+       JMP     syscall·RawSyscall6(SB)
diff --git a/vendor/golang.org/x/sys/unix/asm_freebsd_arm.s b/vendor/golang.org/x/sys/unix/asm_freebsd_arm.s
new file mode 100644 (file)
index 0000000..9227c87
--- /dev/null
@@ -0,0 +1,29 @@
+// Copyright 2012 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build !gccgo
+
+#include "textflag.h"
+
+//
+// System call support for ARM, FreeBSD
+//
+
+// Just jump to package syscall's implementation for all these functions.
+// The runtime may know about them.
+
+TEXT   ·Syscall(SB),NOSPLIT,$0-28
+       B       syscall·Syscall(SB)
+
+TEXT   ·Syscall6(SB),NOSPLIT,$0-40
+       B       syscall·Syscall6(SB)
+
+TEXT   ·Syscall9(SB),NOSPLIT,$0-52
+       B       syscall·Syscall9(SB)
+
+TEXT   ·RawSyscall(SB),NOSPLIT,$0-28
+       B       syscall·RawSyscall(SB)
+
+TEXT   ·RawSyscall6(SB),NOSPLIT,$0-40
+       B       syscall·RawSyscall6(SB)
diff --git a/vendor/golang.org/x/sys/unix/asm_linux_386.s b/vendor/golang.org/x/sys/unix/asm_linux_386.s
new file mode 100644 (file)
index 0000000..4db2909
--- /dev/null
@@ -0,0 +1,35 @@
+// Copyright 2009 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build !gccgo
+
+#include "textflag.h"
+
+//
+// System calls for 386, Linux
+//
+
+// Just jump to package syscall's implementation for all these functions.
+// The runtime may know about them.
+
+TEXT   ·Syscall(SB),NOSPLIT,$0-28
+       JMP     syscall·Syscall(SB)
+
+TEXT   ·Syscall6(SB),NOSPLIT,$0-40
+       JMP     syscall·Syscall6(SB)
+
+TEXT ·RawSyscall(SB),NOSPLIT,$0-28
+       JMP     syscall·RawSyscall(SB)
+
+TEXT   ·RawSyscall6(SB),NOSPLIT,$0-40
+       JMP     syscall·RawSyscall6(SB)
+
+TEXT ·socketcall(SB),NOSPLIT,$0-36
+       JMP     syscall·socketcall(SB)
+
+TEXT ·rawsocketcall(SB),NOSPLIT,$0-36
+       JMP     syscall·rawsocketcall(SB)
+
+TEXT ·seek(SB),NOSPLIT,$0-28
+       JMP     syscall·seek(SB)
diff --git a/vendor/golang.org/x/sys/unix/asm_linux_amd64.s b/vendor/golang.org/x/sys/unix/asm_linux_amd64.s
new file mode 100644 (file)
index 0000000..44e25c6
--- /dev/null
@@ -0,0 +1,29 @@
+// Copyright 2009 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build !gccgo
+
+#include "textflag.h"
+
+//
+// System calls for AMD64, Linux
+//
+
+// Just jump to package syscall's implementation for all these functions.
+// The runtime may know about them.
+
+TEXT   ·Syscall(SB),NOSPLIT,$0-56
+       JMP     syscall·Syscall(SB)
+
+TEXT ·Syscall6(SB),NOSPLIT,$0-80
+       JMP     syscall·Syscall6(SB)
+
+TEXT ·RawSyscall(SB),NOSPLIT,$0-56
+       JMP     syscall·RawSyscall(SB)
+
+TEXT ·RawSyscall6(SB),NOSPLIT,$0-80
+       JMP     syscall·RawSyscall6(SB)
+
+TEXT ·gettimeofday(SB),NOSPLIT,$0-16
+       JMP     syscall·gettimeofday(SB)
diff --git a/vendor/golang.org/x/sys/unix/asm_linux_arm.s b/vendor/golang.org/x/sys/unix/asm_linux_arm.s
new file mode 100644 (file)
index 0000000..cf0b574
--- /dev/null
@@ -0,0 +1,29 @@
+// Copyright 2009 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build !gccgo
+
+#include "textflag.h"
+
+//
+// System calls for arm, Linux
+//
+
+// Just jump to package syscall's implementation for all these functions.
+// The runtime may know about them.
+
+TEXT   ·Syscall(SB),NOSPLIT,$0-28
+       B       syscall·Syscall(SB)
+
+TEXT   ·Syscall6(SB),NOSPLIT,$0-40
+       B       syscall·Syscall6(SB)
+
+TEXT ·RawSyscall(SB),NOSPLIT,$0-28
+       B       syscall·RawSyscall(SB)
+
+TEXT   ·RawSyscall6(SB),NOSPLIT,$0-40
+       B       syscall·RawSyscall6(SB)
+
+TEXT ·seek(SB),NOSPLIT,$0-32
+       B       syscall·seek(SB)
diff --git a/vendor/golang.org/x/sys/unix/asm_linux_arm64.s b/vendor/golang.org/x/sys/unix/asm_linux_arm64.s
new file mode 100644 (file)
index 0000000..4be9bfe
--- /dev/null
@@ -0,0 +1,24 @@
+// Copyright 2015 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build linux
+// +build arm64
+// +build !gccgo
+
+#include "textflag.h"
+
+// Just jump to package syscall's implementation for all these functions.
+// The runtime may know about them.
+
+TEXT   ·Syscall(SB),NOSPLIT,$0-56
+       B       syscall·Syscall(SB)
+
+TEXT ·Syscall6(SB),NOSPLIT,$0-80
+       B       syscall·Syscall6(SB)
+
+TEXT ·RawSyscall(SB),NOSPLIT,$0-56
+       B       syscall·RawSyscall(SB)
+
+TEXT ·RawSyscall6(SB),NOSPLIT,$0-80
+       B       syscall·RawSyscall6(SB)
diff --git a/vendor/golang.org/x/sys/unix/asm_linux_mips64x.s b/vendor/golang.org/x/sys/unix/asm_linux_mips64x.s
new file mode 100644 (file)
index 0000000..724e580
--- /dev/null
@@ -0,0 +1,28 @@
+// Copyright 2015 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build linux
+// +build mips64 mips64le
+// +build !gccgo
+
+#include "textflag.h"
+
+//
+// System calls for mips64, Linux
+//
+
+// Just jump to package syscall's implementation for all these functions.
+// The runtime may know about them.
+
+TEXT   ·Syscall(SB),NOSPLIT,$0-56
+       JMP     syscall·Syscall(SB)
+
+TEXT   ·Syscall6(SB),NOSPLIT,$0-80
+       JMP     syscall·Syscall6(SB)
+
+TEXT   ·RawSyscall(SB),NOSPLIT,$0-56
+       JMP     syscall·RawSyscall(SB)
+
+TEXT   ·RawSyscall6(SB),NOSPLIT,$0-80
+       JMP     syscall·RawSyscall6(SB)
diff --git a/vendor/golang.org/x/sys/unix/asm_linux_mipsx.s b/vendor/golang.org/x/sys/unix/asm_linux_mipsx.s
new file mode 100644 (file)
index 0000000..2ea4257
--- /dev/null
@@ -0,0 +1,31 @@
+// Copyright 2016 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build linux
+// +build mips mipsle
+// +build !gccgo
+
+#include "textflag.h"
+
+//
+// System calls for mips, Linux
+//
+
+// Just jump to package syscall's implementation for all these functions.
+// The runtime may know about them.
+
+TEXT   ·Syscall(SB),NOSPLIT,$0-28
+       JMP syscall·Syscall(SB)
+
+TEXT   ·Syscall6(SB),NOSPLIT,$0-40
+       JMP syscall·Syscall6(SB)
+
+TEXT   ·Syscall9(SB),NOSPLIT,$0-52
+       JMP syscall·Syscall9(SB)
+
+TEXT   ·RawSyscall(SB),NOSPLIT,$0-28
+       JMP syscall·RawSyscall(SB)
+
+TEXT   ·RawSyscall6(SB),NOSPLIT,$0-40
+       JMP syscall·RawSyscall6(SB)
diff --git a/vendor/golang.org/x/sys/unix/asm_linux_ppc64x.s b/vendor/golang.org/x/sys/unix/asm_linux_ppc64x.s
new file mode 100644 (file)
index 0000000..8d231fe
--- /dev/null
@@ -0,0 +1,28 @@
+// Copyright 2014 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build linux
+// +build ppc64 ppc64le
+// +build !gccgo
+
+#include "textflag.h"
+
+//
+// System calls for ppc64, Linux
+//
+
+// Just jump to package syscall's implementation for all these functions.
+// The runtime may know about them.
+
+TEXT   ·Syscall(SB),NOSPLIT,$0-56
+       BR      syscall·Syscall(SB)
+
+TEXT ·Syscall6(SB),NOSPLIT,$0-80
+       BR      syscall·Syscall6(SB)
+
+TEXT ·RawSyscall(SB),NOSPLIT,$0-56
+       BR      syscall·RawSyscall(SB)
+
+TEXT ·RawSyscall6(SB),NOSPLIT,$0-80
+       BR      syscall·RawSyscall6(SB)
diff --git a/vendor/golang.org/x/sys/unix/asm_linux_s390x.s b/vendor/golang.org/x/sys/unix/asm_linux_s390x.s
new file mode 100644 (file)
index 0000000..1188985
--- /dev/null
@@ -0,0 +1,28 @@
+// Copyright 2016 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build s390x
+// +build linux
+// +build !gccgo
+
+#include "textflag.h"
+
+//
+// System calls for s390x, Linux
+//
+
+// Just jump to package syscall's implementation for all these functions.
+// The runtime may know about them.
+
+TEXT ·Syscall(SB),NOSPLIT,$0-56
+       BR      syscall·Syscall(SB)
+
+TEXT ·Syscall6(SB),NOSPLIT,$0-80
+       BR      syscall·Syscall6(SB)
+
+TEXT ·RawSyscall(SB),NOSPLIT,$0-56
+       BR      syscall·RawSyscall(SB)
+
+TEXT ·RawSyscall6(SB),NOSPLIT,$0-80
+       BR      syscall·RawSyscall6(SB)
diff --git a/vendor/golang.org/x/sys/unix/asm_netbsd_386.s b/vendor/golang.org/x/sys/unix/asm_netbsd_386.s
new file mode 100644 (file)
index 0000000..48bdcd7
--- /dev/null
@@ -0,0 +1,29 @@
+// Copyright 2009 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build !gccgo
+
+#include "textflag.h"
+
+//
+// System call support for 386, NetBSD
+//
+
+// Just jump to package syscall's implementation for all these functions.
+// The runtime may know about them.
+
+TEXT   ·Syscall(SB),NOSPLIT,$0-28
+       JMP     syscall·Syscall(SB)
+
+TEXT   ·Syscall6(SB),NOSPLIT,$0-40
+       JMP     syscall·Syscall6(SB)
+
+TEXT   ·Syscall9(SB),NOSPLIT,$0-52
+       JMP     syscall·Syscall9(SB)
+
+TEXT ·RawSyscall(SB),NOSPLIT,$0-28
+       JMP     syscall·RawSyscall(SB)
+
+TEXT   ·RawSyscall6(SB),NOSPLIT,$0-40
+       JMP     syscall·RawSyscall6(SB)
diff --git a/vendor/golang.org/x/sys/unix/asm_netbsd_amd64.s b/vendor/golang.org/x/sys/unix/asm_netbsd_amd64.s
new file mode 100644 (file)
index 0000000..2ede05c
--- /dev/null
@@ -0,0 +1,29 @@
+// Copyright 2009 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build !gccgo
+
+#include "textflag.h"
+
+//
+// System call support for AMD64, NetBSD
+//
+
+// Just jump to package syscall's implementation for all these functions.
+// The runtime may know about them.
+
+TEXT   ·Syscall(SB),NOSPLIT,$0-56
+       JMP     syscall·Syscall(SB)
+
+TEXT   ·Syscall6(SB),NOSPLIT,$0-80
+       JMP     syscall·Syscall6(SB)
+
+TEXT   ·Syscall9(SB),NOSPLIT,$0-104
+       JMP     syscall·Syscall9(SB)
+
+TEXT   ·RawSyscall(SB),NOSPLIT,$0-56
+       JMP     syscall·RawSyscall(SB)
+
+TEXT   ·RawSyscall6(SB),NOSPLIT,$0-80
+       JMP     syscall·RawSyscall6(SB)
diff --git a/vendor/golang.org/x/sys/unix/asm_netbsd_arm.s b/vendor/golang.org/x/sys/unix/asm_netbsd_arm.s
new file mode 100644 (file)
index 0000000..e892857
--- /dev/null
@@ -0,0 +1,29 @@
+// Copyright 2013 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build !gccgo
+
+#include "textflag.h"
+
+//
+// System call support for ARM, NetBSD
+//
+
+// Just jump to package syscall's implementation for all these functions.
+// The runtime may know about them.
+
+TEXT   ·Syscall(SB),NOSPLIT,$0-28
+       B       syscall·Syscall(SB)
+
+TEXT   ·Syscall6(SB),NOSPLIT,$0-40
+       B       syscall·Syscall6(SB)
+
+TEXT   ·Syscall9(SB),NOSPLIT,$0-52
+       B       syscall·Syscall9(SB)
+
+TEXT   ·RawSyscall(SB),NOSPLIT,$0-28
+       B       syscall·RawSyscall(SB)
+
+TEXT   ·RawSyscall6(SB),NOSPLIT,$0-40
+       B       syscall·RawSyscall6(SB)
diff --git a/vendor/golang.org/x/sys/unix/asm_openbsd_386.s b/vendor/golang.org/x/sys/unix/asm_openbsd_386.s
new file mode 100644 (file)
index 0000000..00576f3
--- /dev/null
@@ -0,0 +1,29 @@
+// Copyright 2009 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build !gccgo
+
+#include "textflag.h"
+
+//
+// System call support for 386, OpenBSD
+//
+
+// Just jump to package syscall's implementation for all these functions.
+// The runtime may know about them.
+
+TEXT   ·Syscall(SB),NOSPLIT,$0-28
+       JMP     syscall·Syscall(SB)
+
+TEXT   ·Syscall6(SB),NOSPLIT,$0-40
+       JMP     syscall·Syscall6(SB)
+
+TEXT   ·Syscall9(SB),NOSPLIT,$0-52
+       JMP     syscall·Syscall9(SB)
+
+TEXT ·RawSyscall(SB),NOSPLIT,$0-28
+       JMP     syscall·RawSyscall(SB)
+
+TEXT   ·RawSyscall6(SB),NOSPLIT,$0-40
+       JMP     syscall·RawSyscall6(SB)
diff --git a/vendor/golang.org/x/sys/unix/asm_openbsd_amd64.s b/vendor/golang.org/x/sys/unix/asm_openbsd_amd64.s
new file mode 100644 (file)
index 0000000..790ef77
--- /dev/null
@@ -0,0 +1,29 @@
+// Copyright 2009 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build !gccgo
+
+#include "textflag.h"
+
+//
+// System call support for AMD64, OpenBSD
+//
+
+// Just jump to package syscall's implementation for all these functions.
+// The runtime may know about them.
+
+TEXT   ·Syscall(SB),NOSPLIT,$0-56
+       JMP     syscall·Syscall(SB)
+
+TEXT   ·Syscall6(SB),NOSPLIT,$0-80
+       JMP     syscall·Syscall6(SB)
+
+TEXT   ·Syscall9(SB),NOSPLIT,$0-104
+       JMP     syscall·Syscall9(SB)
+
+TEXT   ·RawSyscall(SB),NOSPLIT,$0-56
+       JMP     syscall·RawSyscall(SB)
+
+TEXT   ·RawSyscall6(SB),NOSPLIT,$0-80
+       JMP     syscall·RawSyscall6(SB)
diff --git a/vendor/golang.org/x/sys/unix/asm_openbsd_arm.s b/vendor/golang.org/x/sys/unix/asm_openbsd_arm.s
new file mode 100644 (file)
index 0000000..469bfa1
--- /dev/null
@@ -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.
+
+// +build !gccgo
+
+#include "textflag.h"
+
+//
+// System call support for ARM, OpenBSD
+//
+
+// Just jump to package syscall's implementation for all these functions.
+// The runtime may know about them.
+
+TEXT   ·Syscall(SB),NOSPLIT,$0-28
+       B       syscall·Syscall(SB)
+
+TEXT   ·Syscall6(SB),NOSPLIT,$0-40
+       B       syscall·Syscall6(SB)
+
+TEXT   ·Syscall9(SB),NOSPLIT,$0-52
+       B       syscall·Syscall9(SB)
+
+TEXT   ·RawSyscall(SB),NOSPLIT,$0-28
+       B       syscall·RawSyscall(SB)
+
+TEXT   ·RawSyscall6(SB),NOSPLIT,$0-40
+       B       syscall·RawSyscall6(SB)
diff --git a/vendor/golang.org/x/sys/unix/asm_solaris_amd64.s b/vendor/golang.org/x/sys/unix/asm_solaris_amd64.s
new file mode 100644 (file)
index 0000000..ded8260
--- /dev/null
@@ -0,0 +1,17 @@
+// Copyright 2014 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build !gccgo
+
+#include "textflag.h"
+
+//
+// System calls for amd64, Solaris are implemented in runtime/syscall_solaris.go
+//
+
+TEXT ·sysvicall6(SB),NOSPLIT,$0-88
+       JMP     syscall·sysvicall6(SB)
+
+TEXT ·rawSysvicall6(SB),NOSPLIT,$0-88
+       JMP     syscall·rawSysvicall6(SB)
diff --git a/vendor/golang.org/x/sys/unix/bluetooth_linux.go b/vendor/golang.org/x/sys/unix/bluetooth_linux.go
new file mode 100644 (file)
index 0000000..6e32296
--- /dev/null
@@ -0,0 +1,35 @@
+// Copyright 2016 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// Bluetooth sockets and messages
+
+package unix
+
+// Bluetooth Protocols
+const (
+       BTPROTO_L2CAP  = 0
+       BTPROTO_HCI    = 1
+       BTPROTO_SCO    = 2
+       BTPROTO_RFCOMM = 3
+       BTPROTO_BNEP   = 4
+       BTPROTO_CMTP   = 5
+       BTPROTO_HIDP   = 6
+       BTPROTO_AVDTP  = 7
+)
+
+const (
+       HCI_CHANNEL_RAW     = 0
+       HCI_CHANNEL_USER    = 1
+       HCI_CHANNEL_MONITOR = 2
+       HCI_CHANNEL_CONTROL = 3
+)
+
+// Socketoption Level
+const (
+       SOL_BLUETOOTH = 0x112
+       SOL_HCI       = 0x0
+       SOL_L2CAP     = 0x6
+       SOL_RFCOMM    = 0x12
+       SOL_SCO       = 0x11
+)
diff --git a/vendor/golang.org/x/sys/unix/cap_freebsd.go b/vendor/golang.org/x/sys/unix/cap_freebsd.go
new file mode 100644 (file)
index 0000000..83b6bce
--- /dev/null
@@ -0,0 +1,195 @@
+// 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 freebsd
+
+package unix
+
+import (
+       errorspkg "errors"
+       "fmt"
+)
+
+// Go implementation of C mostly found in /usr/src/sys/kern/subr_capability.c
+
+const (
+       // This is the version of CapRights this package understands. See C implementation for parallels.
+       capRightsGoVersion = CAP_RIGHTS_VERSION_00
+       capArSizeMin       = CAP_RIGHTS_VERSION_00 + 2
+       capArSizeMax       = capRightsGoVersion + 2
+)
+
+var (
+       bit2idx = []int{
+               -1, 0, 1, -1, 2, -1, -1, -1, 3, -1, -1, -1, -1, -1, -1, -1,
+               4, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+       }
+)
+
+func capidxbit(right uint64) int {
+       return int((right >> 57) & 0x1f)
+}
+
+func rightToIndex(right uint64) (int, error) {
+       idx := capidxbit(right)
+       if idx < 0 || idx >= len(bit2idx) {
+               return -2, fmt.Errorf("index for right 0x%x out of range", right)
+       }
+       return bit2idx[idx], nil
+}
+
+func caprver(right uint64) int {
+       return int(right >> 62)
+}
+
+func capver(rights *CapRights) int {
+       return caprver(rights.Rights[0])
+}
+
+func caparsize(rights *CapRights) int {
+       return capver(rights) + 2
+}
+
+// CapRightsSet sets the permissions in setrights in rights.
+func CapRightsSet(rights *CapRights, setrights []uint64) error {
+       // This is essentially a copy of cap_rights_vset()
+       if capver(rights) != CAP_RIGHTS_VERSION_00 {
+               return fmt.Errorf("bad rights version %d", capver(rights))
+       }
+
+       n := caparsize(rights)
+       if n < capArSizeMin || n > capArSizeMax {
+               return errorspkg.New("bad rights size")
+       }
+
+       for _, right := range setrights {
+               if caprver(right) != CAP_RIGHTS_VERSION_00 {
+                       return errorspkg.New("bad right version")
+               }
+               i, err := rightToIndex(right)
+               if err != nil {
+                       return err
+               }
+               if i >= n {
+                       return errorspkg.New("index overflow")
+               }
+               if capidxbit(rights.Rights[i]) != capidxbit(right) {
+                       return errorspkg.New("index mismatch")
+               }
+               rights.Rights[i] |= right
+               if capidxbit(rights.Rights[i]) != capidxbit(right) {
+                       return errorspkg.New("index mismatch (after assign)")
+               }
+       }
+
+       return nil
+}
+
+// CapRightsClear clears the permissions in clearrights from rights.
+func CapRightsClear(rights *CapRights, clearrights []uint64) error {
+       // This is essentially a copy of cap_rights_vclear()
+       if capver(rights) != CAP_RIGHTS_VERSION_00 {
+               return fmt.Errorf("bad rights version %d", capver(rights))
+       }
+
+       n := caparsize(rights)
+       if n < capArSizeMin || n > capArSizeMax {
+               return errorspkg.New("bad rights size")
+       }
+
+       for _, right := range clearrights {
+               if caprver(right) != CAP_RIGHTS_VERSION_00 {
+                       return errorspkg.New("bad right version")
+               }
+               i, err := rightToIndex(right)
+               if err != nil {
+                       return err
+               }
+               if i >= n {
+                       return errorspkg.New("index overflow")
+               }
+               if capidxbit(rights.Rights[i]) != capidxbit(right) {
+                       return errorspkg.New("index mismatch")
+               }
+               rights.Rights[i] &= ^(right & 0x01FFFFFFFFFFFFFF)
+               if capidxbit(rights.Rights[i]) != capidxbit(right) {
+                       return errorspkg.New("index mismatch (after assign)")
+               }
+       }
+
+       return nil
+}
+
+// CapRightsIsSet checks whether all the permissions in setrights are present in rights.
+func CapRightsIsSet(rights *CapRights, setrights []uint64) (bool, error) {
+       // This is essentially a copy of cap_rights_is_vset()
+       if capver(rights) != CAP_RIGHTS_VERSION_00 {
+               return false, fmt.Errorf("bad rights version %d", capver(rights))
+       }
+
+       n := caparsize(rights)
+       if n < capArSizeMin || n > capArSizeMax {
+               return false, errorspkg.New("bad rights size")
+       }
+
+       for _, right := range setrights {
+               if caprver(right) != CAP_RIGHTS_VERSION_00 {
+                       return false, errorspkg.New("bad right version")
+               }
+               i, err := rightToIndex(right)
+               if err != nil {
+                       return false, err
+               }
+               if i >= n {
+                       return false, errorspkg.New("index overflow")
+               }
+               if capidxbit(rights.Rights[i]) != capidxbit(right) {
+                       return false, errorspkg.New("index mismatch")
+               }
+               if (rights.Rights[i] & right) != right {
+                       return false, nil
+               }
+       }
+
+       return true, nil
+}
+
+func capright(idx uint64, bit uint64) uint64 {
+       return ((1 << (57 + idx)) | bit)
+}
+
+// CapRightsInit returns a pointer to an initialised CapRights structure filled with rights.
+// See man cap_rights_init(3) and rights(4).
+func CapRightsInit(rights []uint64) (*CapRights, error) {
+       var r CapRights
+       r.Rights[0] = (capRightsGoVersion << 62) | capright(0, 0)
+       r.Rights[1] = capright(1, 0)
+
+       err := CapRightsSet(&r, rights)
+       if err != nil {
+               return nil, err
+       }
+       return &r, nil
+}
+
+// CapRightsLimit reduces the operations permitted on fd to at most those contained in rights.
+// The capability rights on fd can never be increased by CapRightsLimit.
+// See man cap_rights_limit(2) and rights(4).
+func CapRightsLimit(fd uintptr, rights *CapRights) error {
+       return capRightsLimit(int(fd), rights)
+}
+
+// CapRightsGet returns a CapRights structure containing the operations permitted on fd.
+// See man cap_rights_get(3) and rights(4).
+func CapRightsGet(fd uintptr) (*CapRights, error) {
+       r, err := CapRightsInit(nil)
+       if err != nil {
+               return nil, err
+       }
+       err = capRightsGet(capRightsGoVersion, int(fd), r)
+       if err != nil {
+               return nil, err
+       }
+       return r, nil
+}
diff --git a/vendor/golang.org/x/sys/unix/constants.go b/vendor/golang.org/x/sys/unix/constants.go
new file mode 100644 (file)
index 0000000..a96f0eb
--- /dev/null
@@ -0,0 +1,13 @@
+// Copyright 2015 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build darwin dragonfly freebsd linux netbsd openbsd solaris
+
+package unix
+
+const (
+       R_OK = 0x4
+       W_OK = 0x2
+       X_OK = 0x1
+)
diff --git a/vendor/golang.org/x/sys/unix/dev_darwin.go b/vendor/golang.org/x/sys/unix/dev_darwin.go
new file mode 100644 (file)
index 0000000..7d101d5
--- /dev/null
@@ -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) | minor)
+}
diff --git a/vendor/golang.org/x/sys/unix/dev_linux.go b/vendor/golang.org/x/sys/unix/dev_linux.go
new file mode 100644 (file)
index 0000000..c902c39
--- /dev/null
@@ -0,0 +1,42 @@
+// 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 by the Linux kernel and glibc.
+//
+// The information below is extracted and adapted from bits/sysmacros.h in the
+// glibc sources:
+//
+// dev_t in glibc is 64-bit, with 32-bit major and minor numbers. glibc's
+// default encoding is MMMM Mmmm mmmM MMmm, where M is a hex digit of the major
+// number and m is a hex digit of the minor number. This is backward compatible
+// with legacy systems where dev_t is 16 bits wide, encoded as MMmm. It is also
+// backward compatible with the Linux kernel, which for some architectures uses
+// 32-bit dev_t, encoded as mmmM MMmm.
+
+package unix
+
+// Major returns the major component of a Linux device number.
+func Major(dev uint64) uint32 {
+       major := uint32((dev & 0x00000000000fff00) >> 8)
+       major |= uint32((dev & 0xfffff00000000000) >> 32)
+       return major
+}
+
+// Minor returns the minor component of a Linux device number.
+func Minor(dev uint64) uint32 {
+       minor := uint32((dev & 0x00000000000000ff) >> 0)
+       minor |= uint32((dev & 0x00000ffffff00000) >> 12)
+       return minor
+}
+
+// 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)
+       return dev
+}
diff --git a/vendor/golang.org/x/sys/unix/dirent.go b/vendor/golang.org/x/sys/unix/dirent.go
new file mode 100644 (file)
index 0000000..bd47581
--- /dev/null
@@ -0,0 +1,102 @@
+// Copyright 2009 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build darwin dragonfly freebsd linux nacl netbsd openbsd solaris
+
+package unix
+
+import "unsafe"
+
+// readInt returns the size-bytes unsigned integer in native byte order at offset off.
+func readInt(b []byte, off, size uintptr) (u uint64, ok bool) {
+       if len(b) < int(off+size) {
+               return 0, false
+       }
+       if isBigEndian {
+               return readIntBE(b[off:], size), true
+       }
+       return readIntLE(b[off:], size), true
+}
+
+func readIntBE(b []byte, size uintptr) uint64 {
+       switch size {
+       case 1:
+               return uint64(b[0])
+       case 2:
+               _ = b[1] // bounds check hint to compiler; see golang.org/issue/14808
+               return uint64(b[1]) | uint64(b[0])<<8
+       case 4:
+               _ = b[3] // bounds check hint to compiler; see golang.org/issue/14808
+               return uint64(b[3]) | uint64(b[2])<<8 | uint64(b[1])<<16 | uint64(b[0])<<24
+       case 8:
+               _ = b[7] // bounds check hint to compiler; see golang.org/issue/14808
+               return uint64(b[7]) | uint64(b[6])<<8 | uint64(b[5])<<16 | uint64(b[4])<<24 |
+                       uint64(b[3])<<32 | uint64(b[2])<<40 | uint64(b[1])<<48 | uint64(b[0])<<56
+       default:
+               panic("syscall: readInt with unsupported size")
+       }
+}
+
+func readIntLE(b []byte, size uintptr) uint64 {
+       switch size {
+       case 1:
+               return uint64(b[0])
+       case 2:
+               _ = b[1] // bounds check hint to compiler; see golang.org/issue/14808
+               return uint64(b[0]) | uint64(b[1])<<8
+       case 4:
+               _ = b[3] // bounds check hint to compiler; see golang.org/issue/14808
+               return uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24
+       case 8:
+               _ = b[7] // bounds check hint to compiler; see golang.org/issue/14808
+               return uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 |
+                       uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56
+       default:
+               panic("syscall: readInt with unsupported size")
+       }
+}
+
+// ParseDirent parses up to max directory entries in buf,
+// appending the names to names. It returns the number of
+// bytes consumed from buf, the number of entries added
+// to names, and the new names slice.
+func ParseDirent(buf []byte, max int, names []string) (consumed int, count int, newnames []string) {
+       origlen := len(buf)
+       count = 0
+       for max != 0 && len(buf) > 0 {
+               reclen, ok := direntReclen(buf)
+               if !ok || reclen > uint64(len(buf)) {
+                       return origlen, count, names
+               }
+               rec := buf[:reclen]
+               buf = buf[reclen:]
+               ino, ok := direntIno(rec)
+               if !ok {
+                       break
+               }
+               if ino == 0 { // File absent in directory.
+                       continue
+               }
+               const namoff = uint64(unsafe.Offsetof(Dirent{}.Name))
+               namlen, ok := direntNamlen(rec)
+               if !ok || namoff+namlen > uint64(len(rec)) {
+                       break
+               }
+               name := rec[namoff : namoff+namlen]
+               for i, c := range name {
+                       if c == 0 {
+                               name = name[:i]
+                               break
+                       }
+               }
+               // Check for useless names before allocating a string.
+               if string(name) == "." || string(name) == ".." {
+                       continue
+               }
+               max--
+               count++
+               names = append(names, string(name))
+       }
+       return origlen - len(buf), count, names
+}
diff --git a/vendor/golang.org/x/sys/unix/endian_big.go b/vendor/golang.org/x/sys/unix/endian_big.go
new file mode 100644 (file)
index 0000000..5e92690
--- /dev/null
@@ -0,0 +1,9 @@
+// Copyright 2016 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+//
+// +build ppc64 s390x mips mips64
+
+package unix
+
+const isBigEndian = true
diff --git a/vendor/golang.org/x/sys/unix/endian_little.go b/vendor/golang.org/x/sys/unix/endian_little.go
new file mode 100644 (file)
index 0000000..085df2d
--- /dev/null
@@ -0,0 +1,9 @@
+// Copyright 2016 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+//
+// +build 386 amd64 amd64p32 arm arm64 ppc64le mipsle mips64le
+
+package unix
+
+const isBigEndian = false
diff --git a/vendor/golang.org/x/sys/unix/env_unix.go b/vendor/golang.org/x/sys/unix/env_unix.go
new file mode 100644 (file)
index 0000000..45e281a
--- /dev/null
@@ -0,0 +1,27 @@
+// Copyright 2010 The Go Authors.  All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build darwin dragonfly freebsd linux netbsd openbsd solaris
+
+// Unix environment variables.
+
+package unix
+
+import "syscall"
+
+func Getenv(key string) (value string, found bool) {
+       return syscall.Getenv(key)
+}
+
+func Setenv(key, value string) error {
+       return syscall.Setenv(key, value)
+}
+
+func Clearenv() {
+       syscall.Clearenv()
+}
+
+func Environ() []string {
+       return syscall.Environ()
+}
diff --git a/vendor/golang.org/x/sys/unix/env_unset.go b/vendor/golang.org/x/sys/unix/env_unset.go
new file mode 100644 (file)
index 0000000..9222262
--- /dev/null
@@ -0,0 +1,14 @@
+// Copyright 2014 The Go Authors.  All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build go1.4
+
+package unix
+
+import "syscall"
+
+func Unsetenv(key string) error {
+       // This was added in Go 1.4.
+       return syscall.Unsetenv(key)
+}
diff --git a/vendor/golang.org/x/sys/unix/errors_freebsd_386.go b/vendor/golang.org/x/sys/unix/errors_freebsd_386.go
new file mode 100644 (file)
index 0000000..c56bc8b
--- /dev/null
@@ -0,0 +1,227 @@
+// 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.
+
+// Constants that were deprecated or moved to enums in the FreeBSD headers. Keep
+// them here for backwards compatibility.
+
+package unix
+
+const (
+       IFF_SMART                         = 0x20
+       IFT_1822                          = 0x2
+       IFT_A12MPPSWITCH                  = 0x82
+       IFT_AAL2                          = 0xbb
+       IFT_AAL5                          = 0x31
+       IFT_ADSL                          = 0x5e
+       IFT_AFLANE8023                    = 0x3b
+       IFT_AFLANE8025                    = 0x3c
+       IFT_ARAP                          = 0x58
+       IFT_ARCNET                        = 0x23
+       IFT_ARCNETPLUS                    = 0x24
+       IFT_ASYNC                         = 0x54
+       IFT_ATM                           = 0x25
+       IFT_ATMDXI                        = 0x69
+       IFT_ATMFUNI                       = 0x6a
+       IFT_ATMIMA                        = 0x6b
+       IFT_ATMLOGICAL                    = 0x50
+       IFT_ATMRADIO                      = 0xbd
+       IFT_ATMSUBINTERFACE               = 0x86
+       IFT_ATMVCIENDPT                   = 0xc2
+       IFT_ATMVIRTUAL                    = 0x95
+       IFT_BGPPOLICYACCOUNTING           = 0xa2
+       IFT_BSC                           = 0x53
+       IFT_CCTEMUL                       = 0x3d
+       IFT_CEPT                          = 0x13
+       IFT_CES                           = 0x85
+       IFT_CHANNEL                       = 0x46
+       IFT_CNR                           = 0x55
+       IFT_COFFEE                        = 0x84
+       IFT_COMPOSITELINK                 = 0x9b
+       IFT_DCN                           = 0x8d
+       IFT_DIGITALPOWERLINE              = 0x8a
+       IFT_DIGITALWRAPPEROVERHEADCHANNEL = 0xba
+       IFT_DLSW                          = 0x4a
+       IFT_DOCSCABLEDOWNSTREAM           = 0x80
+       IFT_DOCSCABLEMACLAYER             = 0x7f
+       IFT_DOCSCABLEUPSTREAM             = 0x81
+       IFT_DS0                           = 0x51
+       IFT_DS0BUNDLE                     = 0x52
+       IFT_DS1FDL                        = 0xaa
+       IFT_DS3                           = 0x1e
+       IFT_DTM                           = 0x8c
+       IFT_DVBASILN                      = 0xac
+       IFT_DVBASIOUT                     = 0xad
+       IFT_DVBRCCDOWNSTREAM              = 0x93
+       IFT_DVBRCCMACLAYER                = 0x92
+       IFT_DVBRCCUPSTREAM                = 0x94
+       IFT_ENC                           = 0xf4
+       IFT_EON                           = 0x19
+       IFT_EPLRS                         = 0x57
+       IFT_ESCON                         = 0x49
+       IFT_ETHER                         = 0x6
+       IFT_FAITH                         = 0xf2
+       IFT_FAST                          = 0x7d
+       IFT_FASTETHER                     = 0x3e
+       IFT_FASTETHERFX                   = 0x45
+       IFT_FDDI                          = 0xf
+       IFT_FIBRECHANNEL                  = 0x38
+       IFT_FRAMERELAYINTERCONNECT        = 0x3a
+       IFT_FRAMERELAYMPI                 = 0x5c
+       IFT_FRDLCIENDPT                   = 0xc1
+       IFT_FRELAY                        = 0x20
+       IFT_FRELAYDCE                     = 0x2c
+       IFT_FRF16MFRBUNDLE                = 0xa3
+       IFT_FRFORWARD                     = 0x9e
+       IFT_G703AT2MB                     = 0x43
+       IFT_G703AT64K                     = 0x42
+       IFT_GIF                           = 0xf0
+       IFT_GIGABITETHERNET               = 0x75
+       IFT_GR303IDT                      = 0xb2
+       IFT_GR303RDT                      = 0xb1
+       IFT_H323GATEKEEPER                = 0xa4
+       IFT_H323PROXY                     = 0xa5
+       IFT_HDH1822                       = 0x3
+       IFT_HDLC                          = 0x76
+       IFT_HDSL2                         = 0xa8
+       IFT_HIPERLAN2                     = 0xb7
+       IFT_HIPPI                         = 0x2f
+       IFT_HIPPIINTERFACE                = 0x39
+       IFT_HOSTPAD                       = 0x5a
+       IFT_HSSI                          = 0x2e
+       IFT_HY                            = 0xe
+       IFT_IBM370PARCHAN                 = 0x48
+       IFT_IDSL                          = 0x9a
+       IFT_IEEE80211                     = 0x47
+       IFT_IEEE80212                     = 0x37
+       IFT_IEEE8023ADLAG                 = 0xa1
+       IFT_IFGSN                         = 0x91
+       IFT_IMT                           = 0xbe
+       IFT_INTERLEAVE                    = 0x7c
+       IFT_IP                            = 0x7e
+       IFT_IPFORWARD                     = 0x8e
+       IFT_IPOVERATM                     = 0x72
+       IFT_IPOVERCDLC                    = 0x6d
+       IFT_IPOVERCLAW                    = 0x6e
+       IFT_IPSWITCH                      = 0x4e
+       IFT_IPXIP                         = 0xf9
+       IFT_ISDN                          = 0x3f
+       IFT_ISDNBASIC                     = 0x14
+       IFT_ISDNPRIMARY                   = 0x15
+       IFT_ISDNS                         = 0x4b
+       IFT_ISDNU                         = 0x4c
+       IFT_ISO88022LLC                   = 0x29
+       IFT_ISO88023                      = 0x7
+       IFT_ISO88024                      = 0x8
+       IFT_ISO88025                      = 0x9
+       IFT_ISO88025CRFPINT               = 0x62
+       IFT_ISO88025DTR                   = 0x56
+       IFT_ISO88025FIBER                 = 0x73
+       IFT_ISO88026                      = 0xa
+       IFT_ISUP                          = 0xb3
+       IFT_L3IPXVLAN                     = 0x89
+       IFT_LAPB                          = 0x10
+       IFT_LAPD                          = 0x4d
+       IFT_LAPF                          = 0x77
+       IFT_LOCALTALK                     = 0x2a
+       IFT_LOOP                          = 0x18
+       IFT_MEDIAMAILOVERIP               = 0x8b
+       IFT_MFSIGLINK                     = 0xa7
+       IFT_MIOX25                        = 0x26
+       IFT_MODEM                         = 0x30
+       IFT_MPC                           = 0x71
+       IFT_MPLS                          = 0xa6
+       IFT_MPLSTUNNEL                    = 0x96
+       IFT_MSDSL                         = 0x8f
+       IFT_MVL                           = 0xbf
+       IFT_MYRINET                       = 0x63
+       IFT_NFAS                          = 0xaf
+       IFT_NSIP                          = 0x1b
+       IFT_OPTICALCHANNEL                = 0xc3
+       IFT_OPTICALTRANSPORT              = 0xc4
+       IFT_OTHER                         = 0x1
+       IFT_P10                           = 0xc
+       IFT_P80                           = 0xd
+       IFT_PARA                          = 0x22
+       IFT_PFLOG                         = 0xf6
+       IFT_PFSYNC                        = 0xf7
+       IFT_PLC                           = 0xae
+       IFT_POS                           = 0xab
+       IFT_PPPMULTILINKBUNDLE            = 0x6c
+       IFT_PROPBWAP2MP                   = 0xb8
+       IFT_PROPCNLS                      = 0x59
+       IFT_PROPDOCSWIRELESSDOWNSTREAM    = 0xb5
+       IFT_PROPDOCSWIRELESSMACLAYER      = 0xb4
+       IFT_PROPDOCSWIRELESSUPSTREAM      = 0xb6
+       IFT_PROPMUX                       = 0x36
+       IFT_PROPWIRELESSP2P               = 0x9d
+       IFT_PTPSERIAL                     = 0x16
+       IFT_PVC                           = 0xf1
+       IFT_QLLC                          = 0x44
+       IFT_RADIOMAC                      = 0xbc
+       IFT_RADSL                         = 0x5f
+       IFT_REACHDSL                      = 0xc0
+       IFT_RFC1483                       = 0x9f
+       IFT_RS232                         = 0x21
+       IFT_RSRB                          = 0x4f
+       IFT_SDLC                          = 0x11
+       IFT_SDSL                          = 0x60
+       IFT_SHDSL                         = 0xa9
+       IFT_SIP                           = 0x1f
+       IFT_SLIP                          = 0x1c
+       IFT_SMDSDXI                       = 0x2b
+       IFT_SMDSICIP                      = 0x34
+       IFT_SONET                         = 0x27
+       IFT_SONETOVERHEADCHANNEL          = 0xb9
+       IFT_SONETPATH                     = 0x32
+       IFT_SONETVT                       = 0x33
+       IFT_SRP                           = 0x97
+       IFT_SS7SIGLINK                    = 0x9c
+       IFT_STACKTOSTACK                  = 0x6f
+       IFT_STARLAN                       = 0xb
+       IFT_STF                           = 0xd7
+       IFT_T1                            = 0x12
+       IFT_TDLC                          = 0x74
+       IFT_TERMPAD                       = 0x5b
+       IFT_TR008                         = 0xb0
+       IFT_TRANSPHDLC                    = 0x7b
+       IFT_TUNNEL                        = 0x83
+       IFT_ULTRA                         = 0x1d
+       IFT_USB                           = 0xa0
+       IFT_V11                           = 0x40
+       IFT_V35                           = 0x2d
+       IFT_V36                           = 0x41
+       IFT_V37                           = 0x78
+       IFT_VDSL                          = 0x61
+       IFT_VIRTUALIPADDRESS              = 0x70
+       IFT_VOICEEM                       = 0x64
+       IFT_VOICEENCAP                    = 0x67
+       IFT_VOICEFXO                      = 0x65
+       IFT_VOICEFXS                      = 0x66
+       IFT_VOICEOVERATM                  = 0x98
+       IFT_VOICEOVERFRAMERELAY           = 0x99
+       IFT_VOICEOVERIP                   = 0x68
+       IFT_X213                          = 0x5d
+       IFT_X25                           = 0x5
+       IFT_X25DDN                        = 0x4
+       IFT_X25HUNTGROUP                  = 0x7a
+       IFT_X25MLP                        = 0x79
+       IFT_X25PLE                        = 0x28
+       IFT_XETHER                        = 0x1a
+       IPPROTO_MAXID                     = 0x34
+       IPV6_FAITH                        = 0x1d
+       IP_FAITH                          = 0x16
+       MAP_NORESERVE                     = 0x40
+       MAP_RENAME                        = 0x20
+       NET_RT_MAXID                      = 0x6
+       RTF_PRCLONING                     = 0x10000
+       RTM_OLDADD                        = 0x9
+       RTM_OLDDEL                        = 0xa
+       SIOCADDRT                         = 0x8030720a
+       SIOCALIFADDR                      = 0x8118691b
+       SIOCDELRT                         = 0x8030720b
+       SIOCDLIFADDR                      = 0x8118691d
+       SIOCGLIFADDR                      = 0xc118691c
+       SIOCGLIFPHYADDR                   = 0xc118694b
+       SIOCSLIFPHYADDR                   = 0x8118694a
+)
diff --git a/vendor/golang.org/x/sys/unix/errors_freebsd_amd64.go b/vendor/golang.org/x/sys/unix/errors_freebsd_amd64.go
new file mode 100644 (file)
index 0000000..3e97711
--- /dev/null
@@ -0,0 +1,227 @@
+// 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.
+
+// Constants that were deprecated or moved to enums in the FreeBSD headers. Keep
+// them here for backwards compatibility.
+
+package unix
+
+const (
+       IFF_SMART                         = 0x20
+       IFT_1822                          = 0x2
+       IFT_A12MPPSWITCH                  = 0x82
+       IFT_AAL2                          = 0xbb
+       IFT_AAL5                          = 0x31
+       IFT_ADSL                          = 0x5e
+       IFT_AFLANE8023                    = 0x3b
+       IFT_AFLANE8025                    = 0x3c
+       IFT_ARAP                          = 0x58
+       IFT_ARCNET                        = 0x23
+       IFT_ARCNETPLUS                    = 0x24
+       IFT_ASYNC                         = 0x54
+       IFT_ATM                           = 0x25
+       IFT_ATMDXI                        = 0x69
+       IFT_ATMFUNI                       = 0x6a
+       IFT_ATMIMA                        = 0x6b
+       IFT_ATMLOGICAL                    = 0x50
+       IFT_ATMRADIO                      = 0xbd
+       IFT_ATMSUBINTERFACE               = 0x86
+       IFT_ATMVCIENDPT                   = 0xc2
+       IFT_ATMVIRTUAL                    = 0x95
+       IFT_BGPPOLICYACCOUNTING           = 0xa2
+       IFT_BSC                           = 0x53
+       IFT_CCTEMUL                       = 0x3d
+       IFT_CEPT                          = 0x13
+       IFT_CES                           = 0x85
+       IFT_CHANNEL                       = 0x46
+       IFT_CNR                           = 0x55
+       IFT_COFFEE                        = 0x84
+       IFT_COMPOSITELINK                 = 0x9b
+       IFT_DCN                           = 0x8d
+       IFT_DIGITALPOWERLINE              = 0x8a
+       IFT_DIGITALWRAPPEROVERHEADCHANNEL = 0xba
+       IFT_DLSW                          = 0x4a
+       IFT_DOCSCABLEDOWNSTREAM           = 0x80
+       IFT_DOCSCABLEMACLAYER             = 0x7f
+       IFT_DOCSCABLEUPSTREAM             = 0x81
+       IFT_DS0                           = 0x51
+       IFT_DS0BUNDLE                     = 0x52
+       IFT_DS1FDL                        = 0xaa
+       IFT_DS3                           = 0x1e
+       IFT_DTM                           = 0x8c
+       IFT_DVBASILN                      = 0xac
+       IFT_DVBASIOUT                     = 0xad
+       IFT_DVBRCCDOWNSTREAM              = 0x93
+       IFT_DVBRCCMACLAYER                = 0x92
+       IFT_DVBRCCUPSTREAM                = 0x94
+       IFT_ENC                           = 0xf4
+       IFT_EON                           = 0x19
+       IFT_EPLRS                         = 0x57
+       IFT_ESCON                         = 0x49
+       IFT_ETHER                         = 0x6
+       IFT_FAITH                         = 0xf2
+       IFT_FAST                          = 0x7d
+       IFT_FASTETHER                     = 0x3e
+       IFT_FASTETHERFX                   = 0x45
+       IFT_FDDI                          = 0xf
+       IFT_FIBRECHANNEL                  = 0x38
+       IFT_FRAMERELAYINTERCONNECT        = 0x3a
+       IFT_FRAMERELAYMPI                 = 0x5c
+       IFT_FRDLCIENDPT                   = 0xc1
+       IFT_FRELAY                        = 0x20
+       IFT_FRELAYDCE                     = 0x2c
+       IFT_FRF16MFRBUNDLE                = 0xa3
+       IFT_FRFORWARD                     = 0x9e
+       IFT_G703AT2MB                     = 0x43
+       IFT_G703AT64K                     = 0x42
+       IFT_GIF                           = 0xf0
+       IFT_GIGABITETHERNET               = 0x75
+       IFT_GR303IDT                      = 0xb2
+       IFT_GR303RDT                      = 0xb1
+       IFT_H323GATEKEEPER                = 0xa4
+       IFT_H323PROXY                     = 0xa5
+       IFT_HDH1822                       = 0x3
+       IFT_HDLC                          = 0x76
+       IFT_HDSL2                         = 0xa8
+       IFT_HIPERLAN2                     = 0xb7
+       IFT_HIPPI                         = 0x2f
+       IFT_HIPPIINTERFACE                = 0x39
+       IFT_HOSTPAD                       = 0x5a
+       IFT_HSSI                          = 0x2e
+       IFT_HY                            = 0xe
+       IFT_IBM370PARCHAN                 = 0x48
+       IFT_IDSL                          = 0x9a
+       IFT_IEEE80211                     = 0x47
+       IFT_IEEE80212                     = 0x37
+       IFT_IEEE8023ADLAG                 = 0xa1
+       IFT_IFGSN                         = 0x91
+       IFT_IMT                           = 0xbe
+       IFT_INTERLEAVE                    = 0x7c
+       IFT_IP                            = 0x7e
+       IFT_IPFORWARD                     = 0x8e
+       IFT_IPOVERATM                     = 0x72
+       IFT_IPOVERCDLC                    = 0x6d
+       IFT_IPOVERCLAW                    = 0x6e
+       IFT_IPSWITCH                      = 0x4e
+       IFT_IPXIP                         = 0xf9
+       IFT_ISDN                          = 0x3f
+       IFT_ISDNBASIC                     = 0x14
+       IFT_ISDNPRIMARY                   = 0x15
+       IFT_ISDNS                         = 0x4b
+       IFT_ISDNU                         = 0x4c
+       IFT_ISO88022LLC                   = 0x29
+       IFT_ISO88023                      = 0x7
+       IFT_ISO88024                      = 0x8
+       IFT_ISO88025                      = 0x9
+       IFT_ISO88025CRFPINT               = 0x62
+       IFT_ISO88025DTR                   = 0x56
+       IFT_ISO88025FIBER                 = 0x73
+       IFT_ISO88026                      = 0xa
+       IFT_ISUP                          = 0xb3
+       IFT_L3IPXVLAN                     = 0x89
+       IFT_LAPB                          = 0x10
+       IFT_LAPD                          = 0x4d
+       IFT_LAPF                          = 0x77
+       IFT_LOCALTALK                     = 0x2a
+       IFT_LOOP                          = 0x18
+       IFT_MEDIAMAILOVERIP               = 0x8b
+       IFT_MFSIGLINK                     = 0xa7
+       IFT_MIOX25                        = 0x26
+       IFT_MODEM                         = 0x30
+       IFT_MPC                           = 0x71
+       IFT_MPLS                          = 0xa6
+       IFT_MPLSTUNNEL                    = 0x96
+       IFT_MSDSL                         = 0x8f
+       IFT_MVL                           = 0xbf
+       IFT_MYRINET                       = 0x63
+       IFT_NFAS                          = 0xaf
+       IFT_NSIP                          = 0x1b
+       IFT_OPTICALCHANNEL                = 0xc3
+       IFT_OPTICALTRANSPORT              = 0xc4
+       IFT_OTHER                         = 0x1
+       IFT_P10                           = 0xc
+       IFT_P80                           = 0xd
+       IFT_PARA                          = 0x22
+       IFT_PFLOG                         = 0xf6
+       IFT_PFSYNC                        = 0xf7
+       IFT_PLC                           = 0xae
+       IFT_POS                           = 0xab
+       IFT_PPPMULTILINKBUNDLE            = 0x6c
+       IFT_PROPBWAP2MP                   = 0xb8
+       IFT_PROPCNLS                      = 0x59
+       IFT_PROPDOCSWIRELESSDOWNSTREAM    = 0xb5
+       IFT_PROPDOCSWIRELESSMACLAYER      = 0xb4
+       IFT_PROPDOCSWIRELESSUPSTREAM      = 0xb6
+       IFT_PROPMUX                       = 0x36
+       IFT_PROPWIRELESSP2P               = 0x9d
+       IFT_PTPSERIAL                     = 0x16
+       IFT_PVC                           = 0xf1
+       IFT_QLLC                          = 0x44
+       IFT_RADIOMAC                      = 0xbc
+       IFT_RADSL                         = 0x5f
+       IFT_REACHDSL                      = 0xc0
+       IFT_RFC1483                       = 0x9f
+       IFT_RS232                         = 0x21
+       IFT_RSRB                          = 0x4f
+       IFT_SDLC                          = 0x11
+       IFT_SDSL                          = 0x60
+       IFT_SHDSL                         = 0xa9
+       IFT_SIP                           = 0x1f
+       IFT_SLIP                          = 0x1c
+       IFT_SMDSDXI                       = 0x2b
+       IFT_SMDSICIP                      = 0x34
+       IFT_SONET                         = 0x27
+       IFT_SONETOVERHEADCHANNEL          = 0xb9
+       IFT_SONETPATH                     = 0x32
+       IFT_SONETVT                       = 0x33
+       IFT_SRP                           = 0x97
+       IFT_SS7SIGLINK                    = 0x9c
+       IFT_STACKTOSTACK                  = 0x6f
+       IFT_STARLAN                       = 0xb
+       IFT_STF                           = 0xd7
+       IFT_T1                            = 0x12
+       IFT_TDLC                          = 0x74
+       IFT_TERMPAD                       = 0x5b
+       IFT_TR008                         = 0xb0
+       IFT_TRANSPHDLC                    = 0x7b
+       IFT_TUNNEL                        = 0x83
+       IFT_ULTRA                         = 0x1d
+       IFT_USB                           = 0xa0
+       IFT_V11                           = 0x40
+       IFT_V35                           = 0x2d
+       IFT_V36                           = 0x41
+       IFT_V37                           = 0x78
+       IFT_VDSL                          = 0x61
+       IFT_VIRTUALIPADDRESS              = 0x70
+       IFT_VOICEEM                       = 0x64
+       IFT_VOICEENCAP                    = 0x67
+       IFT_VOICEFXO                      = 0x65
+       IFT_VOICEFXS                      = 0x66
+       IFT_VOICEOVERATM                  = 0x98
+       IFT_VOICEOVERFRAMERELAY           = 0x99
+       IFT_VOICEOVERIP                   = 0x68
+       IFT_X213                          = 0x5d
+       IFT_X25                           = 0x5
+       IFT_X25DDN                        = 0x4
+       IFT_X25HUNTGROUP                  = 0x7a
+       IFT_X25MLP                        = 0x79
+       IFT_X25PLE                        = 0x28
+       IFT_XETHER                        = 0x1a
+       IPPROTO_MAXID                     = 0x34
+       IPV6_FAITH                        = 0x1d
+       IP_FAITH                          = 0x16
+       MAP_NORESERVE                     = 0x40
+       MAP_RENAME                        = 0x20
+       NET_RT_MAXID                      = 0x6
+       RTF_PRCLONING                     = 0x10000
+       RTM_OLDADD                        = 0x9
+       RTM_OLDDEL                        = 0xa
+       SIOCADDRT                         = 0x8040720a
+       SIOCALIFADDR                      = 0x8118691b
+       SIOCDELRT                         = 0x8040720b
+       SIOCDLIFADDR                      = 0x8118691d
+       SIOCGLIFADDR                      = 0xc118691c
+       SIOCGLIFPHYADDR                   = 0xc118694b
+       SIOCSLIFPHYADDR                   = 0x8118694a
+)
diff --git a/vendor/golang.org/x/sys/unix/errors_freebsd_arm.go b/vendor/golang.org/x/sys/unix/errors_freebsd_arm.go
new file mode 100644 (file)
index 0000000..856dca3
--- /dev/null
@@ -0,0 +1,226 @@
+// 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
+
+const (
+       IFT_1822                          = 0x2
+       IFT_A12MPPSWITCH                  = 0x82
+       IFT_AAL2                          = 0xbb
+       IFT_AAL5                          = 0x31
+       IFT_ADSL                          = 0x5e
+       IFT_AFLANE8023                    = 0x3b
+       IFT_AFLANE8025                    = 0x3c
+       IFT_ARAP                          = 0x58
+       IFT_ARCNET                        = 0x23
+       IFT_ARCNETPLUS                    = 0x24
+       IFT_ASYNC                         = 0x54
+       IFT_ATM                           = 0x25
+       IFT_ATMDXI                        = 0x69
+       IFT_ATMFUNI                       = 0x6a
+       IFT_ATMIMA                        = 0x6b
+       IFT_ATMLOGICAL                    = 0x50
+       IFT_ATMRADIO                      = 0xbd
+       IFT_ATMSUBINTERFACE               = 0x86
+       IFT_ATMVCIENDPT                   = 0xc2
+       IFT_ATMVIRTUAL                    = 0x95
+       IFT_BGPPOLICYACCOUNTING           = 0xa2
+       IFT_BSC                           = 0x53
+       IFT_CCTEMUL                       = 0x3d
+       IFT_CEPT                          = 0x13
+       IFT_CES                           = 0x85
+       IFT_CHANNEL                       = 0x46
+       IFT_CNR                           = 0x55
+       IFT_COFFEE                        = 0x84
+       IFT_COMPOSITELINK                 = 0x9b
+       IFT_DCN                           = 0x8d
+       IFT_DIGITALPOWERLINE              = 0x8a
+       IFT_DIGITALWRAPPEROVERHEADCHANNEL = 0xba
+       IFT_DLSW                          = 0x4a
+       IFT_DOCSCABLEDOWNSTREAM           = 0x80
+       IFT_DOCSCABLEMACLAYER             = 0x7f
+       IFT_DOCSCABLEUPSTREAM             = 0x81
+       IFT_DS0                           = 0x51
+       IFT_DS0BUNDLE                     = 0x52
+       IFT_DS1FDL                        = 0xaa
+       IFT_DS3                           = 0x1e
+       IFT_DTM                           = 0x8c
+       IFT_DVBASILN                      = 0xac
+       IFT_DVBASIOUT                     = 0xad
+       IFT_DVBRCCDOWNSTREAM              = 0x93
+       IFT_DVBRCCMACLAYER                = 0x92
+       IFT_DVBRCCUPSTREAM                = 0x94
+       IFT_ENC                           = 0xf4
+       IFT_EON                           = 0x19
+       IFT_EPLRS                         = 0x57
+       IFT_ESCON                         = 0x49
+       IFT_ETHER                         = 0x6
+       IFT_FAST                          = 0x7d
+       IFT_FASTETHER                     = 0x3e
+       IFT_FASTETHERFX                   = 0x45
+       IFT_FDDI                          = 0xf
+       IFT_FIBRECHANNEL                  = 0x38
+       IFT_FRAMERELAYINTERCONNECT        = 0x3a
+       IFT_FRAMERELAYMPI                 = 0x5c
+       IFT_FRDLCIENDPT                   = 0xc1
+       IFT_FRELAY                        = 0x20
+       IFT_FRELAYDCE                     = 0x2c
+       IFT_FRF16MFRBUNDLE                = 0xa3
+       IFT_FRFORWARD                     = 0x9e
+       IFT_G703AT2MB                     = 0x43
+       IFT_G703AT64K                     = 0x42
+       IFT_GIF                           = 0xf0
+       IFT_GIGABITETHERNET               = 0x75
+       IFT_GR303IDT                      = 0xb2
+       IFT_GR303RDT                      = 0xb1
+       IFT_H323GATEKEEPER                = 0xa4
+       IFT_H323PROXY                     = 0xa5
+       IFT_HDH1822                       = 0x3
+       IFT_HDLC                          = 0x76
+       IFT_HDSL2                         = 0xa8
+       IFT_HIPERLAN2                     = 0xb7
+       IFT_HIPPI                         = 0x2f
+       IFT_HIPPIINTERFACE                = 0x39
+       IFT_HOSTPAD                       = 0x5a
+       IFT_HSSI                          = 0x2e
+       IFT_HY                            = 0xe
+       IFT_IBM370PARCHAN                 = 0x48
+       IFT_IDSL                          = 0x9a
+       IFT_IEEE80211                     = 0x47
+       IFT_IEEE80212                     = 0x37
+       IFT_IEEE8023ADLAG                 = 0xa1
+       IFT_IFGSN                         = 0x91
+       IFT_IMT                           = 0xbe
+       IFT_INTERLEAVE                    = 0x7c
+       IFT_IP                            = 0x7e
+       IFT_IPFORWARD                     = 0x8e
+       IFT_IPOVERATM                     = 0x72
+       IFT_IPOVERCDLC                    = 0x6d
+       IFT_IPOVERCLAW                    = 0x6e
+       IFT_IPSWITCH                      = 0x4e
+       IFT_ISDN                          = 0x3f
+       IFT_ISDNBASIC                     = 0x14
+       IFT_ISDNPRIMARY                   = 0x15
+       IFT_ISDNS                         = 0x4b
+       IFT_ISDNU                         = 0x4c
+       IFT_ISO88022LLC                   = 0x29
+       IFT_ISO88023                      = 0x7
+       IFT_ISO88024                      = 0x8
+       IFT_ISO88025                      = 0x9
+       IFT_ISO88025CRFPINT               = 0x62
+       IFT_ISO88025DTR                   = 0x56
+       IFT_ISO88025FIBER                 = 0x73
+       IFT_ISO88026                      = 0xa
+       IFT_ISUP                          = 0xb3
+       IFT_L3IPXVLAN                     = 0x89
+       IFT_LAPB                          = 0x10
+       IFT_LAPD                          = 0x4d
+       IFT_LAPF                          = 0x77
+       IFT_LOCALTALK                     = 0x2a
+       IFT_LOOP                          = 0x18
+       IFT_MEDIAMAILOVERIP               = 0x8b
+       IFT_MFSIGLINK                     = 0xa7
+       IFT_MIOX25                        = 0x26
+       IFT_MODEM                         = 0x30
+       IFT_MPC                           = 0x71
+       IFT_MPLS                          = 0xa6
+       IFT_MPLSTUNNEL                    = 0x96
+       IFT_MSDSL                         = 0x8f
+       IFT_MVL                           = 0xbf
+       IFT_MYRINET                       = 0x63
+       IFT_NFAS                          = 0xaf
+       IFT_NSIP                          = 0x1b
+       IFT_OPTICALCHANNEL                = 0xc3
+       IFT_OPTICALTRANSPORT              = 0xc4
+       IFT_OTHER                         = 0x1
+       IFT_P10                           = 0xc
+       IFT_P80                           = 0xd
+       IFT_PARA                          = 0x22
+       IFT_PFLOG                         = 0xf6
+       IFT_PFSYNC                        = 0xf7
+       IFT_PLC                           = 0xae
+       IFT_POS                           = 0xab
+       IFT_PPPMULTILINKBUNDLE            = 0x6c
+       IFT_PROPBWAP2MP                   = 0xb8
+       IFT_PROPCNLS                      = 0x59
+       IFT_PROPDOCSWIRELESSDOWNSTREAM    = 0xb5
+       IFT_PROPDOCSWIRELESSMACLAYER      = 0xb4
+       IFT_PROPDOCSWIRELESSUPSTREAM      = 0xb6
+       IFT_PROPMUX                       = 0x36
+       IFT_PROPWIRELESSP2P               = 0x9d
+       IFT_PTPSERIAL                     = 0x16
+       IFT_PVC                           = 0xf1
+       IFT_QLLC                          = 0x44
+       IFT_RADIOMAC                      = 0xbc
+       IFT_RADSL                         = 0x5f
+       IFT_REACHDSL                      = 0xc0
+       IFT_RFC1483                       = 0x9f
+       IFT_RS232                         = 0x21
+       IFT_RSRB                          = 0x4f
+       IFT_SDLC                          = 0x11
+       IFT_SDSL                          = 0x60
+       IFT_SHDSL                         = 0xa9
+       IFT_SIP                           = 0x1f
+       IFT_SLIP                          = 0x1c
+       IFT_SMDSDXI                       = 0x2b
+       IFT_SMDSICIP                      = 0x34
+       IFT_SONET                         = 0x27
+       IFT_SONETOVERHEADCHANNEL          = 0xb9
+       IFT_SONETPATH                     = 0x32
+       IFT_SONETVT                       = 0x33
+       IFT_SRP                           = 0x97
+       IFT_SS7SIGLINK                    = 0x9c
+       IFT_STACKTOSTACK                  = 0x6f
+       IFT_STARLAN                       = 0xb
+       IFT_STF                           = 0xd7
+       IFT_T1                            = 0x12
+       IFT_TDLC                          = 0x74
+       IFT_TERMPAD                       = 0x5b
+       IFT_TR008                         = 0xb0
+       IFT_TRANSPHDLC                    = 0x7b
+       IFT_TUNNEL                        = 0x83
+       IFT_ULTRA                         = 0x1d
+       IFT_USB                           = 0xa0
+       IFT_V11                           = 0x40
+       IFT_V35                           = 0x2d
+       IFT_V36                           = 0x41
+       IFT_V37                           = 0x78
+       IFT_VDSL                          = 0x61
+       IFT_VIRTUALIPADDRESS              = 0x70
+       IFT_VOICEEM                       = 0x64
+       IFT_VOICEENCAP                    = 0x67
+       IFT_VOICEFXO                      = 0x65
+       IFT_VOICEFXS                      = 0x66
+       IFT_VOICEOVERATM                  = 0x98
+       IFT_VOICEOVERFRAMERELAY           = 0x99
+       IFT_VOICEOVERIP                   = 0x68
+       IFT_X213                          = 0x5d
+       IFT_X25                           = 0x5
+       IFT_X25DDN                        = 0x4
+       IFT_X25HUNTGROUP                  = 0x7a
+       IFT_X25MLP                        = 0x79
+       IFT_X25PLE                        = 0x28
+       IFT_XETHER                        = 0x1a
+
+       // missing constants on FreeBSD-11.1-RELEASE, copied from old values in ztypes_freebsd_arm.go
+       IFF_SMART       = 0x20
+       IFT_FAITH       = 0xf2
+       IFT_IPXIP       = 0xf9
+       IPPROTO_MAXID   = 0x34
+       IPV6_FAITH      = 0x1d
+       IP_FAITH        = 0x16
+       MAP_NORESERVE   = 0x40
+       MAP_RENAME      = 0x20
+       NET_RT_MAXID    = 0x6
+       RTF_PRCLONING   = 0x10000
+       RTM_OLDADD      = 0x9
+       RTM_OLDDEL      = 0xa
+       SIOCADDRT       = 0x8030720a
+       SIOCALIFADDR    = 0x8118691b
+       SIOCDELRT       = 0x8030720b
+       SIOCDLIFADDR    = 0x8118691d
+       SIOCGLIFADDR    = 0xc118691c
+       SIOCGLIFPHYADDR = 0xc118694b
+       SIOCSLIFPHYADDR = 0x8118694a
+)
diff --git a/vendor/golang.org/x/sys/unix/file_unix.go b/vendor/golang.org/x/sys/unix/file_unix.go
new file mode 100644 (file)
index 0000000..47f6a83
--- /dev/null
@@ -0,0 +1,27 @@
+// 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/flock.go b/vendor/golang.org/x/sys/unix/flock.go
new file mode 100644 (file)
index 0000000..2994ce7
--- /dev/null
@@ -0,0 +1,22 @@
+// Copyright 2014 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build darwin dragonfly freebsd linux netbsd openbsd
+
+package unix
+
+import "unsafe"
+
+// fcntl64Syscall is usually SYS_FCNTL, but is overridden on 32-bit Linux
+// systems by flock_linux_32bit.go to be SYS_FCNTL64.
+var fcntl64Syscall uintptr = SYS_FCNTL
+
+// FcntlFlock performs a fcntl syscall for the F_GETLK, F_SETLK or F_SETLKW command.
+func FcntlFlock(fd uintptr, cmd int, lk *Flock_t) error {
+       _, _, errno := Syscall(fcntl64Syscall, fd, uintptr(cmd), uintptr(unsafe.Pointer(lk)))
+       if errno == 0 {
+               return nil
+       }
+       return errno
+}
diff --git a/vendor/golang.org/x/sys/unix/flock_linux_32bit.go b/vendor/golang.org/x/sys/unix/flock_linux_32bit.go
new file mode 100644 (file)
index 0000000..fc0e50e
--- /dev/null
@@ -0,0 +1,13 @@
+// +build linux,386 linux,arm linux,mips linux,mipsle
+
+// Copyright 2014 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package unix
+
+func init() {
+       // On 32-bit Linux systems, the fcntl syscall that matches Go's
+       // Flock_t type is SYS_FCNTL64, not SYS_FCNTL.
+       fcntl64Syscall = SYS_FCNTL64
+}
diff --git a/vendor/golang.org/x/sys/unix/gccgo.go b/vendor/golang.org/x/sys/unix/gccgo.go
new file mode 100644 (file)
index 0000000..94c8232
--- /dev/null
@@ -0,0 +1,46 @@
+// Copyright 2015 The Go Authors.  All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build gccgo
+
+package unix
+
+import "syscall"
+
+// We can't use the gc-syntax .s files for gccgo.  On the plus side
+// much of the functionality can be written directly in Go.
+
+//extern gccgoRealSyscall
+func realSyscall(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r, errno uintptr)
+
+func Syscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err syscall.Errno) {
+       syscall.Entersyscall()
+       r, errno := realSyscall(trap, a1, a2, a3, 0, 0, 0, 0, 0, 0)
+       syscall.Exitsyscall()
+       return r, 0, syscall.Errno(errno)
+}
+
+func Syscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.Errno) {
+       syscall.Entersyscall()
+       r, errno := realSyscall(trap, a1, a2, a3, a4, a5, a6, 0, 0, 0)
+       syscall.Exitsyscall()
+       return r, 0, syscall.Errno(errno)
+}
+
+func Syscall9(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) {
+       syscall.Entersyscall()
+       r, errno := realSyscall(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9)
+       syscall.Exitsyscall()
+       return r, 0, syscall.Errno(errno)
+}
+
+func RawSyscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err syscall.Errno) {
+       r, errno := realSyscall(trap, a1, a2, a3, 0, 0, 0, 0, 0, 0)
+       return r, 0, syscall.Errno(errno)
+}
+
+func RawSyscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.Errno) {
+       r, errno := realSyscall(trap, a1, a2, a3, a4, a5, a6, 0, 0, 0)
+       return r, 0, syscall.Errno(errno)
+}
diff --git a/vendor/golang.org/x/sys/unix/gccgo_c.c b/vendor/golang.org/x/sys/unix/gccgo_c.c
new file mode 100644 (file)
index 0000000..07f6be0
--- /dev/null
@@ -0,0 +1,41 @@
+// Copyright 2015 The Go Authors.  All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build gccgo
+
+#include <errno.h>
+#include <stdint.h>
+#include <unistd.h>
+
+#define _STRINGIFY2_(x) #x
+#define _STRINGIFY_(x) _STRINGIFY2_(x)
+#define GOSYM_PREFIX _STRINGIFY_(__USER_LABEL_PREFIX__)
+
+// Call syscall from C code because the gccgo support for calling from
+// Go to C does not support varargs functions.
+
+struct ret {
+       uintptr_t r;
+       uintptr_t err;
+};
+
+struct ret
+gccgoRealSyscall(uintptr_t trap, uintptr_t a1, uintptr_t a2, uintptr_t a3, uintptr_t a4, uintptr_t a5, uintptr_t a6, uintptr_t a7, uintptr_t a8, uintptr_t a9)
+{
+       struct ret r;
+
+       errno = 0;
+       r.r = syscall(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9);
+       r.err = errno;
+       return r;
+}
+
+// Define the use function in C so that it is not inlined.
+
+extern void use(void *) __asm__ (GOSYM_PREFIX GOPKGPATH ".use") __attribute__((noinline));
+
+void
+use(void *p __attribute__ ((unused)))
+{
+}
diff --git a/vendor/golang.org/x/sys/unix/gccgo_linux_amd64.go b/vendor/golang.org/x/sys/unix/gccgo_linux_amd64.go
new file mode 100644 (file)
index 0000000..bffe1a7
--- /dev/null
@@ -0,0 +1,20 @@
+// Copyright 2015 The Go Authors.  All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build gccgo,linux,amd64
+
+package unix
+
+import "syscall"
+
+//extern gettimeofday
+func realGettimeofday(*Timeval, *byte) int32
+
+func gettimeofday(tv *Timeval) (err syscall.Errno) {
+       r := realGettimeofday(tv, nil)
+       if r < 0 {
+               return syscall.GetErrno()
+       }
+       return 0
+}
diff --git a/vendor/golang.org/x/sys/unix/gccgo_linux_sparc64.go b/vendor/golang.org/x/sys/unix/gccgo_linux_sparc64.go
new file mode 100644 (file)
index 0000000..5633269
--- /dev/null
@@ -0,0 +1,20 @@
+// Copyright 2016 The Go Authors.  All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build gccgo,linux,sparc64
+
+package unix
+
+import "syscall"
+
+//extern sysconf
+func realSysconf(name int) int64
+
+func sysconf(name int) (n int64, err syscall.Errno) {
+       r := realSysconf(name)
+       if r < 0 {
+               return 0, syscall.GetErrno()
+       }
+       return r, 0
+}
diff --git a/vendor/golang.org/x/sys/unix/mkall.sh b/vendor/golang.org/x/sys/unix/mkall.sh
new file mode 100755 (executable)
index 0000000..c3a0809
--- /dev/null
@@ -0,0 +1,197 @@
+#!/usr/bin/env bash
+# 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.
+
+# This script runs or (given -n) prints suggested commands to generate files for
+# the Architecture/OS specified by the GOARCH and GOOS environment variables.
+# See README.md for more information about how the build system works.
+
+GOOSARCH="${GOOS}_${GOARCH}"
+
+# defaults
+mksyscall="./mksyscall.pl"
+mkerrors="./mkerrors.sh"
+zerrors="zerrors_$GOOSARCH.go"
+mksysctl=""
+zsysctl="zsysctl_$GOOSARCH.go"
+mksysnum=
+mktypes=
+run="sh"
+cmd=""
+
+case "$1" in
+-syscalls)
+       for i in zsyscall*go
+       do
+               # Run the command line that appears in the first line
+               # of the generated file to regenerate it.
+               sed 1q $i | sed 's;^// ;;' | sh > _$i && gofmt < _$i > $i
+               rm _$i
+       done
+       exit 0
+       ;;
+-n)
+       run="cat"
+       cmd="echo"
+       shift
+esac
+
+case "$#" in
+0)
+       ;;
+*)
+       echo 'usage: mkall.sh [-n]' 1>&2
+       exit 2
+esac
+
+if [[ "$GOOS" = "linux" ]] && [[ "$GOARCH" != "sparc64" ]]; then
+       # Use then new build system
+       # Files generated through docker (use $cmd so you can Ctl-C the build or run)
+       $cmd docker build --tag generate:$GOOS $GOOS
+       $cmd docker run --interactive --tty --volume $(dirname "$(readlink -f "$0")"):/build generate:$GOOS
+       exit
+fi
+
+GOOSARCH_in=syscall_$GOOSARCH.go
+case "$GOOSARCH" in
+_* | *_ | _)
+       echo 'undefined $GOOS_$GOARCH:' "$GOOSARCH" 1>&2
+       exit 1
+       ;;
+darwin_386)
+       mkerrors="$mkerrors -m32"
+       mksyscall="./mksyscall.pl -l32"
+       mksysnum="./mksysnum_darwin.pl $(xcrun --show-sdk-path --sdk macosx)/usr/include/sys/syscall.h"
+       mktypes="GOARCH=$GOARCH go tool cgo -godefs"
+       ;;
+darwin_amd64)
+       mkerrors="$mkerrors -m64"
+       mksysnum="./mksysnum_darwin.pl $(xcrun --show-sdk-path --sdk macosx)/usr/include/sys/syscall.h"
+       mktypes="GOARCH=$GOARCH go tool cgo -godefs"
+       ;;
+darwin_arm)
+       mkerrors="$mkerrors"
+       mksysnum="./mksysnum_darwin.pl $(xcrun --show-sdk-path --sdk iphoneos)/usr/include/sys/syscall.h"
+       mktypes="GOARCH=$GOARCH go tool cgo -godefs"
+       ;;
+darwin_arm64)
+       mkerrors="$mkerrors -m64"
+       mksysnum="./mksysnum_darwin.pl $(xcrun --show-sdk-path --sdk iphoneos)/usr/include/sys/syscall.h"
+       mktypes="GOARCH=$GOARCH go tool cgo -godefs"
+       ;;
+dragonfly_386)
+       mkerrors="$mkerrors -m32"
+       mksyscall="./mksyscall.pl -l32 -dragonfly"
+       mksysnum="curl -s 'http://gitweb.dragonflybsd.org/dragonfly.git/blob_plain/HEAD:/sys/kern/syscalls.master' | ./mksysnum_dragonfly.pl"
+       mktypes="GOARCH=$GOARCH go tool cgo -godefs"
+       ;;
+dragonfly_amd64)
+       mkerrors="$mkerrors -m64"
+       mksyscall="./mksyscall.pl -dragonfly"
+       mksysnum="curl -s 'http://gitweb.dragonflybsd.org/dragonfly.git/blob_plain/HEAD:/sys/kern/syscalls.master' | ./mksysnum_dragonfly.pl"
+       mktypes="GOARCH=$GOARCH go tool cgo -godefs"
+       ;;
+freebsd_386)
+       mkerrors="$mkerrors -m32"
+       mksyscall="./mksyscall.pl -l32"
+       mksysnum="curl -s 'http://svn.freebsd.org/base/stable/10/sys/kern/syscalls.master' | ./mksysnum_freebsd.pl"
+       mktypes="GOARCH=$GOARCH go tool cgo -godefs"
+       ;;
+freebsd_amd64)
+       mkerrors="$mkerrors -m64"
+       mksysnum="curl -s 'http://svn.freebsd.org/base/stable/10/sys/kern/syscalls.master' | ./mksysnum_freebsd.pl"
+       mktypes="GOARCH=$GOARCH go tool cgo -godefs"
+       ;;
+freebsd_arm)
+       mkerrors="$mkerrors"
+       mksyscall="./mksyscall.pl -l32 -arm"
+       mksysnum="curl -s 'http://svn.freebsd.org/base/stable/10/sys/kern/syscalls.master' | ./mksysnum_freebsd.pl"
+       # Let the type of C char be signed for making the bare syscall
+       # API consistent across platforms.
+       mktypes="GOARCH=$GOARCH go tool cgo -godefs -- -fsigned-char"
+       ;;
+linux_sparc64)
+       GOOSARCH_in=syscall_linux_sparc64.go
+       unistd_h=/usr/include/sparc64-linux-gnu/asm/unistd.h
+       mkerrors="$mkerrors -m64"
+       mksysnum="./mksysnum_linux.pl $unistd_h"
+       mktypes="GOARCH=$GOARCH go tool cgo -godefs"
+       ;;
+netbsd_386)
+       mkerrors="$mkerrors -m32"
+       mksyscall="./mksyscall.pl -l32 -netbsd"
+       mksysnum="curl -s 'http://cvsweb.netbsd.org/bsdweb.cgi/~checkout~/src/sys/kern/syscalls.master' | ./mksysnum_netbsd.pl"
+       mktypes="GOARCH=$GOARCH go tool cgo -godefs"
+       ;;
+netbsd_amd64)
+       mkerrors="$mkerrors -m64"
+       mksyscall="./mksyscall.pl -netbsd"
+       mksysnum="curl -s 'http://cvsweb.netbsd.org/bsdweb.cgi/~checkout~/src/sys/kern/syscalls.master' | ./mksysnum_netbsd.pl"
+       mktypes="GOARCH=$GOARCH go tool cgo -godefs"
+       ;;
+netbsd_arm)
+       mkerrors="$mkerrors"
+       mksyscall="./mksyscall.pl -l32 -netbsd -arm"
+       mksysnum="curl -s 'http://cvsweb.netbsd.org/bsdweb.cgi/~checkout~/src/sys/kern/syscalls.master' | ./mksysnum_netbsd.pl"
+       # Let the type of C char be signed for making the bare syscall
+       # API consistent across platforms.
+       mktypes="GOARCH=$GOARCH go tool cgo -godefs -- -fsigned-char"
+       ;;
+openbsd_386)
+       mkerrors="$mkerrors -m32"
+       mksyscall="./mksyscall.pl -l32 -openbsd"
+       mksysctl="./mksysctl_openbsd.pl"
+       zsysctl="zsysctl_openbsd.go"
+       mksysnum="curl -s 'http://cvsweb.openbsd.org/cgi-bin/cvsweb/~checkout~/src/sys/kern/syscalls.master' | ./mksysnum_openbsd.pl"
+       mktypes="GOARCH=$GOARCH go tool cgo -godefs"
+       ;;
+openbsd_amd64)
+       mkerrors="$mkerrors -m64"
+       mksyscall="./mksyscall.pl -openbsd"
+       mksysctl="./mksysctl_openbsd.pl"
+       zsysctl="zsysctl_openbsd.go"
+       mksysnum="curl -s 'http://cvsweb.openbsd.org/cgi-bin/cvsweb/~checkout~/src/sys/kern/syscalls.master' | ./mksysnum_openbsd.pl"
+       mktypes="GOARCH=$GOARCH go tool cgo -godefs"
+       ;;
+openbsd_arm)
+       mkerrors="$mkerrors"
+       mksyscall="./mksyscall.pl -l32 -openbsd -arm"
+       mksysctl="./mksysctl_openbsd.pl"
+       zsysctl="zsysctl_openbsd.go"
+       mksysnum="curl -s 'http://cvsweb.openbsd.org/cgi-bin/cvsweb/~checkout~/src/sys/kern/syscalls.master' | ./mksysnum_openbsd.pl"
+       # Let the type of C char be signed for making the bare syscall
+       # API consistent across platforms.
+       mktypes="GOARCH=$GOARCH go tool cgo -godefs -- -fsigned-char"
+       ;;
+solaris_amd64)
+       mksyscall="./mksyscall_solaris.pl"
+       mkerrors="$mkerrors -m64"
+       mksysnum=
+       mktypes="GOARCH=$GOARCH go tool cgo -godefs"
+       ;;
+*)
+       echo 'unrecognized $GOOS_$GOARCH: ' "$GOOSARCH" 1>&2
+       exit 1
+       ;;
+esac
+
+(
+       if [ -n "$mkerrors" ]; then echo "$mkerrors |gofmt >$zerrors"; fi
+       case "$GOOS" in
+       *)
+               syscall_goos="syscall_$GOOS.go"
+               case "$GOOS" in
+               darwin | dragonfly | freebsd | netbsd | openbsd)
+                       syscall_goos="syscall_bsd.go $syscall_goos"
+                       ;;
+               esac
+               if [ -n "$mksyscall" ]; then echo "$mksyscall -tags $GOOS,$GOARCH $syscall_goos $GOOSARCH_in |gofmt >zsyscall_$GOOSARCH.go"; fi
+               ;;
+       esac
+       if [ -n "$mksysctl" ]; then echo "$mksysctl |gofmt >$zsysctl"; fi
+       if [ -n "$mksysnum" ]; then echo "$mksysnum |gofmt >zsysnum_$GOOSARCH.go"; fi
+       if [ -n "$mktypes" ]; then
+               echo "$mktypes types_$GOOS.go | go run mkpost.go > ztypes_$GOOSARCH.go";
+       fi
+) | $run
diff --git a/vendor/golang.org/x/sys/unix/mkerrors.sh b/vendor/golang.org/x/sys/unix/mkerrors.sh
new file mode 100755 (executable)
index 0000000..2c434f7
--- /dev/null
@@ -0,0 +1,563 @@
+#!/usr/bin/env bash
+# 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.
+
+# Generate Go code listing errors and other #defined constant
+# values (ENAMETOOLONG etc.), by asking the preprocessor
+# about the definitions.
+
+unset LANG
+export LC_ALL=C
+export LC_CTYPE=C
+
+if test -z "$GOARCH" -o -z "$GOOS"; then
+       echo 1>&2 "GOARCH or GOOS not defined in environment"
+       exit 1
+fi
+
+# Check that we are using the new build system if we should
+if [[ "$GOOS" -eq "linux" ]] && [[ "$GOARCH" != "sparc64" ]]; then
+       if [[ "$GOLANG_SYS_BUILD" -ne "docker" ]]; then
+               echo 1>&2 "In the new build system, mkerrors should not be called directly."
+               echo 1>&2 "See README.md"
+               exit 1
+       fi
+fi
+
+CC=${CC:-cc}
+
+if [[ "$GOOS" -eq "solaris" ]]; then
+       # Assumes GNU versions of utilities in PATH.
+       export PATH=/usr/gnu/bin:$PATH
+fi
+
+uname=$(uname)
+
+includes_Darwin='
+#define _DARWIN_C_SOURCE
+#define KERNEL
+#define _DARWIN_USE_64_BIT_INODE
+#include <sys/types.h>
+#include <sys/event.h>
+#include <sys/ptrace.h>
+#include <sys/socket.h>
+#include <sys/sockio.h>
+#include <sys/sysctl.h>
+#include <sys/mman.h>
+#include <sys/mount.h>
+#include <sys/wait.h>
+#include <net/bpf.h>
+#include <net/if.h>
+#include <net/if_types.h>
+#include <net/route.h>
+#include <netinet/in.h>
+#include <netinet/ip.h>
+#include <termios.h>
+'
+
+includes_DragonFly='
+#include <sys/types.h>
+#include <sys/event.h>
+#include <sys/socket.h>
+#include <sys/sockio.h>
+#include <sys/sysctl.h>
+#include <sys/mman.h>
+#include <sys/wait.h>
+#include <sys/ioctl.h>
+#include <net/bpf.h>
+#include <net/if.h>
+#include <net/if_types.h>
+#include <net/route.h>
+#include <netinet/in.h>
+#include <termios.h>
+#include <netinet/ip.h>
+#include <net/ip_mroute/ip_mroute.h>
+'
+
+includes_FreeBSD='
+#include <sys/capability.h>
+#include <sys/param.h>
+#include <sys/types.h>
+#include <sys/event.h>
+#include <sys/socket.h>
+#include <sys/sockio.h>
+#include <sys/sysctl.h>
+#include <sys/mman.h>
+#include <sys/wait.h>
+#include <sys/ioctl.h>
+#include <net/bpf.h>
+#include <net/if.h>
+#include <net/if_types.h>
+#include <net/route.h>
+#include <netinet/in.h>
+#include <termios.h>
+#include <netinet/ip.h>
+#include <netinet/ip_mroute.h>
+#include <sys/extattr.h>
+
+#if __FreeBSD__ >= 10
+#define IFT_CARP       0xf8    // IFT_CARP is deprecated in FreeBSD 10
+#undef SIOCAIFADDR
+#define SIOCAIFADDR    _IOW(105, 26, struct oifaliasreq)       // ifaliasreq contains if_data
+#undef SIOCSIFPHYADDR
+#define SIOCSIFPHYADDR _IOW(105, 70, struct oifaliasreq)       // ifaliasreq contains if_data
+#endif
+'
+
+includes_Linux='
+#define _LARGEFILE_SOURCE
+#define _LARGEFILE64_SOURCE
+#ifndef __LP64__
+#define _FILE_OFFSET_BITS 64
+#endif
+#define _GNU_SOURCE
+
+// <sys/ioctl.h> is broken on powerpc64, as it fails to include definitions of
+// these structures. We just include them copied from <bits/termios.h>.
+#if defined(__powerpc__)
+struct sgttyb {
+        char    sg_ispeed;
+        char    sg_ospeed;
+        char    sg_erase;
+        char    sg_kill;
+        short   sg_flags;
+};
+
+struct tchars {
+        char    t_intrc;
+        char    t_quitc;
+        char    t_startc;
+        char    t_stopc;
+        char    t_eofc;
+        char    t_brkc;
+};
+
+struct ltchars {
+        char    t_suspc;
+        char    t_dsuspc;
+        char    t_rprntc;
+        char    t_flushc;
+        char    t_werasc;
+        char    t_lnextc;
+};
+#endif
+
+#include <bits/sockaddr.h>
+#include <sys/epoll.h>
+#include <sys/eventfd.h>
+#include <sys/inotify.h>
+#include <sys/ioctl.h>
+#include <sys/mman.h>
+#include <sys/mount.h>
+#include <sys/prctl.h>
+#include <sys/stat.h>
+#include <sys/types.h>
+#include <sys/time.h>
+#include <sys/socket.h>
+#include <sys/xattr.h>
+#include <linux/if.h>
+#include <linux/if_alg.h>
+#include <linux/if_arp.h>
+#include <linux/if_ether.h>
+#include <linux/if_tun.h>
+#include <linux/if_packet.h>
+#include <linux/if_addr.h>
+#include <linux/falloc.h>
+#include <linux/filter.h>
+#include <linux/fs.h>
+#include <linux/keyctl.h>
+#include <linux/netlink.h>
+#include <linux/perf_event.h>
+#include <linux/random.h>
+#include <linux/reboot.h>
+#include <linux/rtnetlink.h>
+#include <linux/ptrace.h>
+#include <linux/sched.h>
+#include <linux/seccomp.h>
+#include <linux/sockios.h>
+#include <linux/wait.h>
+#include <linux/icmpv6.h>
+#include <linux/serial.h>
+#include <linux/can.h>
+#include <linux/vm_sockets.h>
+#include <linux/taskstats.h>
+#include <linux/genetlink.h>
+#include <net/route.h>
+#include <asm/termbits.h>
+
+#ifndef MSG_FASTOPEN
+#define MSG_FASTOPEN    0x20000000
+#endif
+
+#ifndef PTRACE_GETREGS
+#define PTRACE_GETREGS 0xc
+#endif
+
+#ifndef PTRACE_SETREGS
+#define PTRACE_SETREGS 0xd
+#endif
+
+#ifndef SOL_NETLINK
+#define SOL_NETLINK    270
+#endif
+
+#ifdef SOL_BLUETOOTH
+// SPARC includes this in /usr/include/sparc64-linux-gnu/bits/socket.h
+// but it is already in bluetooth_linux.go
+#undef SOL_BLUETOOTH
+#endif
+
+// Certain constants are missing from the fs/crypto UAPI
+#define FS_KEY_DESC_PREFIX              "fscrypt:"
+#define FS_KEY_DESC_PREFIX_SIZE         8
+#define FS_MAX_KEY_SIZE                 64
+'
+
+includes_NetBSD='
+#include <sys/types.h>
+#include <sys/param.h>
+#include <sys/event.h>
+#include <sys/mman.h>
+#include <sys/socket.h>
+#include <sys/sockio.h>
+#include <sys/sysctl.h>
+#include <sys/termios.h>
+#include <sys/ttycom.h>
+#include <sys/wait.h>
+#include <net/bpf.h>
+#include <net/if.h>
+#include <net/if_types.h>
+#include <net/route.h>
+#include <netinet/in.h>
+#include <netinet/in_systm.h>
+#include <netinet/ip.h>
+#include <netinet/ip_mroute.h>
+#include <netinet/if_ether.h>
+
+// Needed since <sys/param.h> refers to it...
+#define schedppq 1
+'
+
+includes_OpenBSD='
+#include <sys/types.h>
+#include <sys/param.h>
+#include <sys/event.h>
+#include <sys/mman.h>
+#include <sys/socket.h>
+#include <sys/sockio.h>
+#include <sys/sysctl.h>
+#include <sys/termios.h>
+#include <sys/ttycom.h>
+#include <sys/wait.h>
+#include <net/bpf.h>
+#include <net/if.h>
+#include <net/if_types.h>
+#include <net/if_var.h>
+#include <net/route.h>
+#include <netinet/in.h>
+#include <netinet/in_systm.h>
+#include <netinet/ip.h>
+#include <netinet/ip_mroute.h>
+#include <netinet/if_ether.h>
+#include <net/if_bridge.h>
+
+// We keep some constants not supported in OpenBSD 5.5 and beyond for
+// the promise of compatibility.
+#define EMUL_ENABLED           0x1
+#define EMUL_NATIVE            0x2
+#define IPV6_FAITH             0x1d
+#define IPV6_OPTIONS           0x1
+#define IPV6_RTHDR_STRICT      0x1
+#define IPV6_SOCKOPT_RESERVED1 0x3
+#define SIOCGIFGENERIC         0xc020693a
+#define SIOCSIFGENERIC         0x80206939
+#define WALTSIG                        0x4
+'
+
+includes_SunOS='
+#include <limits.h>
+#include <sys/types.h>
+#include <sys/socket.h>
+#include <sys/sockio.h>
+#include <sys/mman.h>
+#include <sys/wait.h>
+#include <sys/ioctl.h>
+#include <net/bpf.h>
+#include <net/if.h>
+#include <net/if_arp.h>
+#include <net/if_types.h>
+#include <net/route.h>
+#include <netinet/in.h>
+#include <termios.h>
+#include <netinet/ip.h>
+#include <netinet/ip_mroute.h>
+'
+
+
+includes='
+#include <sys/types.h>
+#include <sys/file.h>
+#include <fcntl.h>
+#include <dirent.h>
+#include <sys/socket.h>
+#include <netinet/in.h>
+#include <netinet/ip.h>
+#include <netinet/ip6.h>
+#include <netinet/tcp.h>
+#include <errno.h>
+#include <sys/signal.h>
+#include <signal.h>
+#include <sys/resource.h>
+#include <time.h>
+'
+ccflags="$@"
+
+# Write go tool cgo -godefs input.
+(
+       echo package unix
+       echo
+       echo '/*'
+       indirect="includes_$(uname)"
+       echo "${!indirect} $includes"
+       echo '*/'
+       echo 'import "C"'
+       echo 'import "syscall"'
+       echo
+       echo 'const ('
+
+       # The gcc command line prints all the #defines
+       # it encounters while processing the input
+       echo "${!indirect} $includes" | $CC -x c - -E -dM $ccflags |
+       awk '
+               $1 != "#define" || $2 ~ /\(/ || $3 == "" {next}
+
+               $2 ~ /^E([ABCD]X|[BIS]P|[SD]I|S|FL)$/ {next}  # 386 registers
+               $2 ~ /^(SIGEV_|SIGSTKSZ|SIGRT(MIN|MAX))/ {next}
+               $2 ~ /^(SCM_SRCRT)$/ {next}
+               $2 ~ /^(MAP_FAILED)$/ {next}
+               $2 ~ /^ELF_.*$/ {next}# <asm/elf.h> contains ELF_ARCH, etc.
+
+               $2 ~ /^EXTATTR_NAMESPACE_NAMES/ ||
+               $2 ~ /^EXTATTR_NAMESPACE_[A-Z]+_STRING/ {next}
+
+               $2 !~ /^ETH_/ &&
+               $2 !~ /^EPROC_/ &&
+               $2 !~ /^EQUIV_/ &&
+               $2 !~ /^EXPR_/ &&
+               $2 ~ /^E[A-Z0-9_]+$/ ||
+               $2 ~ /^B[0-9_]+$/ ||
+               $2 == "BOTHER" ||
+               $2 ~ /^CI?BAUD(EX)?$/ ||
+               $2 == "IBSHIFT" ||
+               $2 ~ /^V[A-Z0-9]+$/ ||
+               $2 ~ /^CS[A-Z0-9]/ ||
+               $2 ~ /^I(SIG|CANON|CRNL|UCLC|EXTEN|MAXBEL|STRIP|UTF8)$/ ||
+               $2 ~ /^IGN/ ||
+               $2 ~ /^IX(ON|ANY|OFF)$/ ||
+               $2 ~ /^IN(LCR|PCK)$/ ||
+               $2 ~ /(^FLU?SH)|(FLU?SH$)/ ||
+               $2 ~ /^C(LOCAL|READ|MSPAR|RTSCTS)$/ ||
+               $2 == "BRKINT" ||
+               $2 == "HUPCL" ||
+               $2 == "PENDIN" ||
+               $2 == "TOSTOP" ||
+               $2 == "XCASE" ||
+               $2 == "ALTWERASE" ||
+               $2 == "NOKERNINFO" ||
+               $2 ~ /^PAR/ ||
+               $2 ~ /^SIG[^_]/ ||
+               $2 ~ /^O[CNPFPL][A-Z]+[^_][A-Z]+$/ ||
+               $2 ~ /^(NL|CR|TAB|BS|VT|FF)DLY$/ ||
+               $2 ~ /^(NL|CR|TAB|BS|VT|FF)[0-9]$/ ||
+               $2 ~ /^O?XTABS$/ ||
+               $2 ~ /^TC[IO](ON|OFF)$/ ||
+               $2 ~ /^IN_/ ||
+               $2 ~ /^LOCK_(SH|EX|NB|UN)$/ ||
+               $2 ~ /^(AF|SOCK|SO|SOL|IPPROTO|IP|IPV6|ICMP6|TCP|EVFILT|NOTE|EV|SHUT|PROT|MAP|PACKET|MSG|SCM|MCL|DT|MADV|PR)_/ ||
+               $2 ~ /^FALLOC_/ ||
+               $2 == "ICMPV6_FILTER" ||
+               $2 == "SOMAXCONN" ||
+               $2 == "NAME_MAX" ||
+               $2 == "IFNAMSIZ" ||
+               $2 ~ /^CTL_(MAXNAME|NET|QUERY)$/ ||
+               $2 ~ /^SYSCTL_VERS/ ||
+               $2 ~ /^(MS|MNT|UMOUNT)_/ ||
+               $2 ~ /^TUN(SET|GET|ATTACH|DETACH)/ ||
+               $2 ~ /^(O|F|E?FD|NAME|S|PTRACE|PT)_/ ||
+               $2 ~ /^LINUX_REBOOT_CMD_/ ||
+               $2 ~ /^LINUX_REBOOT_MAGIC[12]$/ ||
+               $2 !~ "NLA_TYPE_MASK" &&
+               $2 ~ /^(NETLINK|NLM|NLMSG|NLA|IFA|IFAN|RT|RTCF|RTN|RTPROT|RTNH|ARPHRD|ETH_P)_/ ||
+               $2 ~ /^SIOC/ ||
+               $2 ~ /^TIOC/ ||
+               $2 ~ /^TCGET/ ||
+               $2 ~ /^TCSET/ ||
+               $2 ~ /^TC(FLSH|SBRKP?|XONC)$/ ||
+               $2 !~ "RTF_BITS" &&
+               $2 ~ /^(IFF|IFT|NET_RT|RTM|RTF|RTV|RTA|RTAX)_/ ||
+               $2 ~ /^BIOC/ ||
+               $2 ~ /^RUSAGE_(SELF|CHILDREN|THREAD)/ ||
+               $2 ~ /^RLIMIT_(AS|CORE|CPU|DATA|FSIZE|LOCKS|MEMLOCK|MSGQUEUE|NICE|NOFILE|NPROC|RSS|RTPRIO|RTTIME|SIGPENDING|STACK)|RLIM_INFINITY/ ||
+               $2 ~ /^PRIO_(PROCESS|PGRP|USER)/ ||
+               $2 ~ /^CLONE_[A-Z_]+/ ||
+               $2 !~ /^(BPF_TIMEVAL)$/ &&
+               $2 ~ /^(BPF|DLT)_/ ||
+               $2 ~ /^CLOCK_/ ||
+               $2 ~ /^CAN_/ ||
+               $2 ~ /^CAP_/ ||
+               $2 ~ /^ALG_/ ||
+               $2 ~ /^FS_(POLICY_FLAGS|KEY_DESC|ENCRYPTION_MODE|[A-Z0-9_]+_KEY_SIZE|IOC_(GET|SET)_ENCRYPTION)/ ||
+               $2 ~ /^GRND_/ ||
+               $2 ~ /^KEY_(SPEC|REQKEY_DEFL)_/ ||
+               $2 ~ /^KEYCTL_/ ||
+               $2 ~ /^PERF_EVENT_IOC_/ ||
+               $2 ~ /^SECCOMP_MODE_/ ||
+               $2 ~ /^SPLICE_/ ||
+               $2 ~ /^(VM|VMADDR)_/ ||
+               $2 ~ /^(TASKSTATS|TS)_/ ||
+               $2 ~ /^GENL_/ ||
+               $2 ~ /^XATTR_(CREATE|REPLACE)/ ||
+               $2 !~ "WMESGLEN" &&
+               $2 ~ /^W[A-Z0-9]+$/ ||
+               $2 ~ /^BLK[A-Z]*(GET$|SET$|BUF$|PART$|SIZE)/ {printf("\t%s = C.%s\n", $2, $2)}
+               $2 ~ /^__WCOREFLAG$/ {next}
+               $2 ~ /^__W[A-Z0-9]+$/ {printf("\t%s = C.%s\n", substr($2,3), $2)}
+
+               {next}
+       ' | sort
+
+       echo ')'
+) >_const.go
+
+# Pull out the error names for later.
+errors=$(
+       echo '#include <errno.h>' | $CC -x c - -E -dM $ccflags |
+       awk '$1=="#define" && $2 ~ /^E[A-Z0-9_]+$/ { print $2 }' |
+       sort
+)
+
+# Pull out the signal names for later.
+signals=$(
+       echo '#include <signal.h>' | $CC -x c - -E -dM $ccflags |
+       awk '$1=="#define" && $2 ~ /^SIG[A-Z0-9]+$/ { print $2 }' |
+       egrep -v '(SIGSTKSIZE|SIGSTKSZ|SIGRT)' |
+       sort
+)
+
+# Again, writing regexps to a file.
+echo '#include <errno.h>' | $CC -x c - -E -dM $ccflags |
+       awk '$1=="#define" && $2 ~ /^E[A-Z0-9_]+$/ { print "^\t" $2 "[ \t]*=" }' |
+       sort >_error.grep
+echo '#include <signal.h>' | $CC -x c - -E -dM $ccflags |
+       awk '$1=="#define" && $2 ~ /^SIG[A-Z0-9]+$/ { print "^\t" $2 "[ \t]*=" }' |
+       egrep -v '(SIGSTKSIZE|SIGSTKSZ|SIGRT)' |
+       sort >_signal.grep
+
+echo '// mkerrors.sh' "$@"
+echo '// Code generated by the command above; see README.md. DO NOT EDIT.'
+echo
+echo "// +build ${GOARCH},${GOOS}"
+echo
+go tool cgo -godefs -- "$@" _const.go >_error.out
+cat _error.out | grep -vf _error.grep | grep -vf _signal.grep
+echo
+echo '// Errors'
+echo 'const ('
+cat _error.out | grep -f _error.grep | sed 's/=\(.*\)/= syscall.Errno(\1)/'
+echo ')'
+
+echo
+echo '// Signals'
+echo 'const ('
+cat _error.out | grep -f _signal.grep | sed 's/=\(.*\)/= syscall.Signal(\1)/'
+echo ')'
+
+# Run C program to print error and syscall strings.
+(
+       echo -E "
+#include <stdio.h>
+#include <stdlib.h>
+#include <errno.h>
+#include <ctype.h>
+#include <string.h>
+#include <signal.h>
+
+#define nelem(x) (sizeof(x)/sizeof((x)[0]))
+
+enum { A = 'A', Z = 'Z', a = 'a', z = 'z' }; // avoid need for single quotes below
+
+int errors[] = {
+"
+       for i in $errors
+       do
+               echo -E '       '$i,
+       done
+
+       echo -E "
+};
+
+int signals[] = {
+"
+       for i in $signals
+       do
+               echo -E '       '$i,
+       done
+
+       # Use -E because on some systems bash builtin interprets \n itself.
+       echo -E '
+};
+
+static int
+intcmp(const void *a, const void *b)
+{
+       return *(int*)a - *(int*)b;
+}
+
+int
+main(void)
+{
+       int i, e;
+       char buf[1024], *p;
+
+       printf("\n\n// Error table\n");
+       printf("var errors = [...]string {\n");
+       qsort(errors, nelem(errors), sizeof errors[0], intcmp);
+       for(i=0; i<nelem(errors); i++) {
+               e = errors[i];
+               if(i > 0 && errors[i-1] == e)
+                       continue;
+               strcpy(buf, strerror(e));
+               // lowercase first letter: Bad -> bad, but STREAM -> STREAM.
+               if(A <= buf[0] && buf[0] <= Z && a <= buf[1] && buf[1] <= z)
+                       buf[0] += a - A;
+               printf("\t%d: \"%s\",\n", e, buf);
+       }
+       printf("}\n\n");
+
+       printf("\n\n// Signal table\n");
+       printf("var signals = [...]string {\n");
+       qsort(signals, nelem(signals), sizeof signals[0], intcmp);
+       for(i=0; i<nelem(signals); i++) {
+               e = signals[i];
+               if(i > 0 && signals[i-1] == e)
+                       continue;
+               strcpy(buf, strsignal(e));
+               // lowercase first letter: Bad -> bad, but STREAM -> STREAM.
+               if(A <= buf[0] && buf[0] <= Z && a <= buf[1] && buf[1] <= z)
+                       buf[0] += a - A;
+               // cut trailing : number.
+               p = strrchr(buf, ":"[0]);
+               if(p)
+                       *p = '\0';
+               printf("\t%d: \"%s\",\n", e, buf);
+       }
+       printf("}\n\n");
+
+       return 0;
+}
+
+'
+) >_errors.c
+
+$CC $ccflags -o _errors _errors.c && $GORUN ./_errors && rm -f _errors.c _errors _const.go _error.grep _signal.grep _error.out
diff --git a/vendor/golang.org/x/sys/unix/mksyscall.pl b/vendor/golang.org/x/sys/unix/mksyscall.pl
new file mode 100755 (executable)
index 0000000..fb929b4
--- /dev/null
@@ -0,0 +1,328 @@
+#!/usr/bin/env perl
+# 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.
+
+# 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.
+
+use strict;
+
+my $cmdline = "mksyscall.pl " . join(' ', @ARGV);
+my $errors = 0;
+my $_32bit = "";
+my $plan9 = 0;
+my $openbsd = 0;
+my $netbsd = 0;
+my $dragonfly = 0;
+my $arm = 0; # 64-bit value should use (even, odd)-pair
+my $tags = "";  # build tags
+
+if($ARGV[0] eq "-b32") {
+       $_32bit = "big-endian";
+       shift;
+} elsif($ARGV[0] eq "-l32") {
+       $_32bit = "little-endian";
+       shift;
+}
+if($ARGV[0] eq "-plan9") {
+       $plan9 = 1;
+       shift;
+}
+if($ARGV[0] eq "-openbsd") {
+       $openbsd = 1;
+       shift;
+}
+if($ARGV[0] eq "-netbsd") {
+       $netbsd = 1;
+       shift;
+}
+if($ARGV[0] eq "-dragonfly") {
+       $dragonfly = 1;
+       shift;
+}
+if($ARGV[0] eq "-arm") {
+       $arm = 1;
+       shift;
+}
+if($ARGV[0] eq "-tags") {
+       shift;
+       $tags = $ARGV[0];
+       shift;
+}
+
+if($ARGV[0] =~ /^-/) {
+       print STDERR "usage: mksyscall.pl [-b32 | -l32] [-tags x,y] [file ...]\n";
+       exit 1;
+}
+
+# Check that we are using the new build system if we should
+if($ENV{'GOOS'} eq "linux" && $ENV{'GOARCH'} ne "sparc64") {
+       if($ENV{'GOLANG_SYS_BUILD'} ne "docker") {
+               print STDERR "In the new build system, mksyscall should not be called directly.\n";
+               print STDERR "See README.md\n";
+               exit 1;
+       }
+}
+
+
+sub parseparamlist($) {
+       my ($list) = @_;
+       $list =~ s/^\s*//;
+       $list =~ s/\s*$//;
+       if($list eq "") {
+               return ();
+       }
+       return split(/\s*,\s*/, $list);
+}
+
+sub parseparam($) {
+       my ($p) = @_;
+       if($p !~ /^(\S*) (\S*)$/) {
+               print STDERR "$ARGV:$.: malformed parameter: $p\n";
+               $errors = 1;
+               return ("xx", "int");
+       }
+       return ($1, $2);
+}
+
+my $text = "";
+while(<>) {
+       chomp;
+       s/\s+/ /g;
+       s/^\s+//;
+       s/\s+$//;
+       my $nonblock = /^\/\/sysnb /;
+       next if !/^\/\/sys / && !$nonblock;
+
+       # 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.
+       if(!/^\/\/sys(nb)? (\w+)\(([^()]*)\)\s*(?:\(([^()]+)\))?\s*(?:=\s*((?i)SYS_[A-Z0-9_]+))?$/) {
+               print STDERR "$ARGV:$.: malformed //sys declaration\n";
+               $errors = 1;
+               next;
+       }
+       my ($func, $in, $out, $sysname) = ($2, $3, $4, $5);
+
+       # Split argument lists on comma.
+       my @in = parseparamlist($in);
+       my @out = parseparamlist($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";
+
+       # Go function header.
+       my $out_decl = @out ? sprintf(" (%s)", join(', ', @out)) : "";
+       $text .= sprintf "func %s(%s)%s {\n", $func, join(', ', @in), $out_decl;
+
+       # Check if err return available
+       my $errvar = "";
+       foreach my $p (@out) {
+               my ($name, $type) = parseparam($p);
+               if($type eq "error") {
+                       $errvar = $name;
+                       last;
+               }
+       }
+
+       # Prepare arguments to Syscall.
+       my @args = ();
+       my $n = 0;
+       foreach my $p (@in) {
+               my ($name, $type) = parseparam($p);
+               if($type =~ /^\*/) {
+                       push @args, "uintptr(unsafe.Pointer($name))";
+               } elsif($type eq "string" && $errvar ne "") {
+                       $text .= "\tvar _p$n *byte\n";
+                       $text .= "\t_p$n, $errvar = BytePtrFromString($name)\n";
+                       $text .= "\tif $errvar != nil {\n\t\treturn\n\t}\n";
+                       push @args, "uintptr(unsafe.Pointer(_p$n))";
+                       $n++;
+               } elsif($type eq "string") {
+                       print STDERR "$ARGV:$.: $func uses string arguments, but has no error return\n";
+                       $text .= "\tvar _p$n *byte\n";
+                       $text .= "\t_p$n, _ = BytePtrFromString($name)\n";
+                       push @args, "uintptr(unsafe.Pointer(_p$n))";
+                       $n++;
+               } elsif($type =~ /^\[\](.*)/) {
+                       # 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 .= "\tvar _p$n unsafe.Pointer\n";
+                       $text .= "\tif len($name) > 0 {\n\t\t_p$n = unsafe.Pointer(\&${name}[0])\n\t}";
+                       $text .= " else {\n\t\t_p$n = unsafe.Pointer(&_zero)\n\t}";
+                       $text .= "\n";
+                       push @args, "uintptr(_p$n)", "uintptr(len($name))";
+                       $n++;
+               } elsif($type eq "int64" && ($openbsd || $netbsd)) {
+                       push @args, "0";
+                       if($_32bit eq "big-endian") {
+                               push @args, "uintptr($name>>32)", "uintptr($name)";
+                       } elsif($_32bit eq "little-endian") {
+                               push @args, "uintptr($name)", "uintptr($name>>32)";
+                       } else {
+                               push @args, "uintptr($name)";
+                       }
+               } elsif($type eq "int64" && $dragonfly) {
+                       if ($func !~ /^extp(read|write)/i) {
+                               push @args, "0";
+                       }
+                       if($_32bit eq "big-endian") {
+                               push @args, "uintptr($name>>32)", "uintptr($name)";
+                       } elsif($_32bit eq "little-endian") {
+                               push @args, "uintptr($name)", "uintptr($name>>32)";
+                       } else {
+                               push @args, "uintptr($name)";
+                       }
+               } elsif($type eq "int64" && $_32bit ne "") {
+                       if(@args % 2 && $arm) {
+                               # arm abi specifies 64-bit argument uses
+                               # (even, odd) pair
+                               push @args, "0"
+                       }
+                       if($_32bit eq "big-endian") {
+                               push @args, "uintptr($name>>32)", "uintptr($name)";
+                       } else {
+                               push @args, "uintptr($name)", "uintptr($name>>32)";
+                       }
+               } else {
+                       push @args, "uintptr($name)";
+               }
+       }
+
+       # Determine which form to use; pad args with zeros.
+       my $asm = "Syscall";
+       if ($nonblock) {
+               $asm = "RawSyscall";
+       }
+       if(@args <= 3) {
+               while(@args < 3) {
+                       push @args, "0";
+               }
+       } elsif(@args <= 6) {
+               $asm .= "6";
+               while(@args < 6) {
+                       push @args, "0";
+               }
+       } elsif(@args <= 9) {
+               $asm .= "9";
+               while(@args < 9) {
+                       push @args, "0";
+               }
+       } else {
+               print STDERR "$ARGV:$.: too many arguments to system call\n";
+       }
+
+       # System call number.
+       if($sysname eq "") {
+               $sysname = "SYS_$func";
+               $sysname =~ s/([a-z])([A-Z])/${1}_$2/g; # turn FooBar into Foo_Bar
+               $sysname =~ y/a-z/A-Z/;
+       }
+
+       # Actual call.
+       my $args = join(', ', @args);
+       my $call = "$asm($sysname, $args)";
+
+       # Assign return values.
+       my $body = "";
+       my @ret = ("_", "_", "_");
+       my $do_errno = 0;
+       for(my $i=0; $i<@out; $i++) {
+               my $p = $out[$i];
+               my ($name, $type) = parseparam($p);
+               my $reg = "";
+               if($name eq "err" && !$plan9) {
+                       $reg = "e1";
+                       $ret[2] = $reg;
+                       $do_errno = 1;
+               } elsif($name eq "err" && $plan9) {
+                       $ret[0] = "r0";
+                       $ret[2] = "e1";
+                       next;
+               } else {
+                       $reg = sprintf("r%d", $i);
+                       $ret[$i] = $reg;
+               }
+               if($type eq "bool") {
+                       $reg = "$reg != 0";
+               }
+               if($type eq "int64" && $_32bit ne "") {
+                       # 64-bit number in r1:r0 or r0:r1.
+                       if($i+2 > @out) {
+                               print STDERR "$ARGV:$.: not enough registers for int64 return\n";
+                       }
+                       if($_32bit eq "big-endian") {
+                               $reg = sprintf("int64(r%d)<<32 | int64(r%d)", $i, $i+1);
+                       } else {
+                               $reg = sprintf("int64(r%d)<<32 | int64(r%d)", $i+1, $i);
+                       }
+                       $ret[$i] = sprintf("r%d", $i);
+                       $ret[$i+1] = sprintf("r%d", $i+1);
+               }
+               if($reg ne "e1" || $plan9) {
+                       $body .= "\t$name = $type($reg)\n";
+               }
+       }
+       if ($ret[0] eq "_" && $ret[1] eq "_" && $ret[2] eq "_") {
+               $text .= "\t$call\n";
+       } else {
+               $text .= "\t$ret[0], $ret[1], $ret[2] := $call\n";
+       }
+       $text .= $body;
+
+       if ($plan9 && $ret[2] eq "e1") {
+               $text .= "\tif int32(r0) == -1 {\n";
+               $text .= "\t\terr = e1\n";
+               $text .= "\t}\n";
+       } elsif ($do_errno) {
+               $text .= "\tif e1 != 0 {\n";
+               $text .= "\t\terr = errnoErr(e1)\n";
+               $text .= "\t}\n";
+       }
+       $text .= "\treturn\n";
+       $text .= "}\n\n";
+}
+
+chomp $text;
+chomp $text;
+
+if($errors) {
+       exit 1;
+}
+
+print <<EOF;
+// $cmdline
+// Code generated by the command above; see README.md. DO NOT EDIT.
+
+// +build $tags
+
+package unix
+
+import (
+       "syscall"
+       "unsafe"
+)
+
+var _ syscall.Errno
+
+$text
+EOF
+exit 0;
diff --git a/vendor/golang.org/x/sys/unix/mksyscall_solaris.pl b/vendor/golang.org/x/sys/unix/mksyscall_solaris.pl
new file mode 100755 (executable)
index 0000000..3e6ed9d
--- /dev/null
@@ -0,0 +1,289 @@
+#!/usr/bin/env perl
+# 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.
+
+# 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
+
+use strict;
+
+my $cmdline = "mksyscall_solaris.pl " . join(' ', @ARGV);
+my $errors = 0;
+my $_32bit = "";
+my $tags = "";  # build tags
+
+binmode STDOUT;
+
+if($ARGV[0] eq "-b32") {
+       $_32bit = "big-endian";
+       shift;
+} elsif($ARGV[0] eq "-l32") {
+       $_32bit = "little-endian";
+       shift;
+}
+if($ARGV[0] eq "-tags") {
+       shift;
+       $tags = $ARGV[0];
+       shift;
+}
+
+if($ARGV[0] =~ /^-/) {
+       print STDERR "usage: mksyscall_solaris.pl [-b32 | -l32] [-tags x,y] [file ...]\n";
+       exit 1;
+}
+
+sub parseparamlist($) {
+       my ($list) = @_;
+       $list =~ s/^\s*//;
+       $list =~ s/\s*$//;
+       if($list eq "") {
+               return ();
+       }
+       return split(/\s*,\s*/, $list);
+}
+
+sub parseparam($) {
+       my ($p) = @_;
+       if($p !~ /^(\S*) (\S*)$/) {
+               print STDERR "$ARGV:$.: malformed parameter: $p\n";
+               $errors = 1;
+               return ("xx", "int");
+       }
+       return ($1, $2);
+}
+
+my $package = "";
+my $text = "";
+my $dynimports = "";
+my $linknames = "";
+my @vars = ();
+while(<>) {
+       chomp;
+       s/\s+/ /g;
+       s/^\s+//;
+       s/\s+$//;
+       $package = $1 if !$package && /^package (\S+)$/;
+       my $nonblock = /^\/\/sysnb /;
+       next if !/^\/\/sys / && !$nonblock;
+
+       # 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.
+       if(!/^\/\/sys(nb)? (\w+)\(([^()]*)\)\s*(?:\(([^()]+)\))?\s*(?:=\s*(?:(\w*)\.)?(\w*))?$/) {
+               print STDERR "$ARGV:$.: malformed //sys declaration\n";
+               $errors = 1;
+               next;
+       }
+       my ($nb, $func, $in, $out, $modname, $sysname) = ($1, $2, $3, $4, $5, $6);
+
+       # Split argument lists on comma.
+       my @in = parseparamlist($in);
+       my @out = parseparamlist($out);
+
+       # So file name.
+       if($modname eq "") {
+               $modname = "libc";
+       }
+
+       # System call name.
+       if($sysname eq "") {
+               $sysname = "$func";
+       }
+
+       # System call pointer variable name.
+       my $sysvarname = "proc$sysname";
+
+       my $strconvfunc = "BytePtrFromString";
+       my $strconvtype = "*byte";
+
+       $sysname =~ y/A-Z/a-z/; # All libc functions are lowercase.
+
+       # Runtime import of function to allow cross-platform builds.
+       $dynimports .= "//go:cgo_import_dynamic libc_${sysname} ${sysname} \"$modname.so\"\n";
+       # Link symbol to proc address variable.
+       $linknames .= "//go:linkname ${sysvarname} libc_${sysname}\n";
+       # Library proc address variable.
+       push @vars, $sysvarname;
+
+       # Go function header.
+       $out = join(', ', @out);
+       if($out ne "") {
+               $out = " ($out)";
+       }
+       if($text ne "") {
+               $text .= "\n"
+       }
+       $text .= sprintf "func %s(%s)%s {\n", $func, join(', ', @in), $out;
+
+       # Check if err return available
+       my $errvar = "";
+       foreach my $p (@out) {
+               my ($name, $type) = parseparam($p);
+               if($type eq "error") {
+                       $errvar = $name;
+                       last;
+               }
+       }
+
+       # Prepare arguments to Syscall.
+       my @args = ();
+       my $n = 0;
+       foreach my $p (@in) {
+               my ($name, $type) = parseparam($p);
+               if($type =~ /^\*/) {
+                       push @args, "uintptr(unsafe.Pointer($name))";
+               } elsif($type eq "string" && $errvar ne "") {
+                       $text .= "\tvar _p$n $strconvtype\n";
+                       $text .= "\t_p$n, $errvar = $strconvfunc($name)\n";
+                       $text .= "\tif $errvar != nil {\n\t\treturn\n\t}\n";
+                       push @args, "uintptr(unsafe.Pointer(_p$n))";
+                       $n++;
+               } elsif($type eq "string") {
+                       print STDERR "$ARGV:$.: $func uses string arguments, but has no error return\n";
+                       $text .= "\tvar _p$n $strconvtype\n";
+                       $text .= "\t_p$n, _ = $strconvfunc($name)\n";
+                       push @args, "uintptr(unsafe.Pointer(_p$n))";
+                       $n++;
+               } elsif($type =~ /^\[\](.*)/) {
+                       # 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 .= "\tvar _p$n *$1\n";
+                       $text .= "\tif len($name) > 0 {\n\t\t_p$n = \&$name\[0]\n\t}\n";
+                       push @args, "uintptr(unsafe.Pointer(_p$n))", "uintptr(len($name))";
+                       $n++;
+               } elsif($type eq "int64" && $_32bit ne "") {
+                       if($_32bit eq "big-endian") {
+                               push @args, "uintptr($name >> 32)", "uintptr($name)";
+                       } else {
+                               push @args, "uintptr($name)", "uintptr($name >> 32)";
+                       }
+               } elsif($type eq "bool") {
+                       $text .= "\tvar _p$n uint32\n";
+                       $text .= "\tif $name {\n\t\t_p$n = 1\n\t} else {\n\t\t_p$n = 0\n\t}\n";
+                       push @args, "uintptr(_p$n)";
+                       $n++;
+               } else {
+                       push @args, "uintptr($name)";
+               }
+       }
+       my $nargs = @args;
+
+       # Determine which form to use; pad args with zeros.
+       my $asm = "sysvicall6";
+       if ($nonblock) {
+               $asm = "rawSysvicall6";
+       }
+       if(@args <= 6) {
+               while(@args < 6) {
+                       push @args, "0";
+               }
+       } else {
+               print STDERR "$ARGV:$.: too many arguments to system call\n";
+       }
+
+       # Actual call.
+       my $args = join(', ', @args);
+       my $call = "$asm(uintptr(unsafe.Pointer(&$sysvarname)), $nargs, $args)";
+
+       # Assign return values.
+       my $body = "";
+       my $failexpr = "";
+       my @ret = ("_", "_", "_");
+       my @pout= ();
+       my $do_errno = 0;
+       for(my $i=0; $i<@out; $i++) {
+               my $p = $out[$i];
+               my ($name, $type) = parseparam($p);
+               my $reg = "";
+               if($name eq "err") {
+                       $reg = "e1";
+                       $ret[2] = $reg;
+                       $do_errno = 1;
+               } else {
+                       $reg = sprintf("r%d", $i);
+                       $ret[$i] = $reg;
+               }
+               if($type eq "bool") {
+                       $reg = "$reg != 0";
+               }
+               if($type eq "int64" && $_32bit ne "") {
+                       # 64-bit number in r1:r0 or r0:r1.
+                       if($i+2 > @out) {
+                               print STDERR "$ARGV:$.: not enough registers for int64 return\n";
+                       }
+                       if($_32bit eq "big-endian") {
+                               $reg = sprintf("int64(r%d)<<32 | int64(r%d)", $i, $i+1);
+                       } else {
+                               $reg = sprintf("int64(r%d)<<32 | int64(r%d)", $i+1, $i);
+                       }
+                       $ret[$i] = sprintf("r%d", $i);
+                       $ret[$i+1] = sprintf("r%d", $i+1);
+               }
+               if($reg ne "e1") {
+                       $body .= "\t$name = $type($reg)\n";
+               }
+       }
+       if ($ret[0] eq "_" && $ret[1] eq "_" && $ret[2] eq "_") {
+               $text .= "\t$call\n";
+       } else {
+               $text .= "\t$ret[0], $ret[1], $ret[2] := $call\n";
+       }
+       $text .= $body;
+
+       if ($do_errno) {
+               $text .= "\tif e1 != 0 {\n";
+               $text .= "\t\terr = e1\n";
+               $text .= "\t}\n";
+       }
+       $text .= "\treturn\n";
+       $text .= "}\n";
+}
+
+if($errors) {
+       exit 1;
+}
+
+print <<EOF;
+// $cmdline
+// Code generated by the command above; see README.md. DO NOT EDIT.
+
+// +build $tags
+
+package $package
+
+import (
+       "syscall"
+       "unsafe"
+)
+EOF
+
+print "import \"golang.org/x/sys/unix\"\n" if $package ne "unix";
+
+my $vardecls = "\t" . join(",\n\t", @vars);
+$vardecls .= " syscallFunc";
+
+chomp($_=<<EOF);
+
+$dynimports
+$linknames
+var (
+$vardecls
+)
+
+$text
+EOF
+print $_;
+exit 0;
diff --git a/vendor/golang.org/x/sys/unix/mksysctl_openbsd.pl b/vendor/golang.org/x/sys/unix/mksysctl_openbsd.pl
new file mode 100755 (executable)
index 0000000..be67afa
--- /dev/null
@@ -0,0 +1,264 @@
+#!/usr/bin/env perl
+
+# 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.
+
+#
+# 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.
+#
+
+use strict;
+
+if($ENV{'GOARCH'} eq "" || $ENV{'GOOS'} eq "") {
+       print STDERR "GOARCH or GOOS not defined in environment\n";
+       exit 1;
+}
+
+my $debug = 0;
+my %ctls = ();
+
+my @headers = qw (
+       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/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
+);
+
+my @ctls = qw (
+       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"
+my %ctl_map = (
+       "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
+my %node_map = (
+       "net.inet.ip.ifq" => "net.ifq",
+       "net.inet.pfsync" => "net.pfsync",
+       "net.mpls.ifq" => "net.ifq"
+);
+
+my $ctlname;
+my %mib = ();
+my %sysctl = ();
+my $node;
+
+sub debug() {
+       print STDERR "$_[0]\n" if $debug;
+}
+
+# Walk the MIB and build a sysctl name to OID mapping.
+sub build_sysctl() {
+       my ($node, $name, $oid) = @_;
+       my %node = %{$node};
+       my @oid = @{$oid};
+
+       foreach my $key (sort keys %node) {
+               my @node = @{$node{$key}};
+               my $nodename = $name.($name ne '' ? '.' : '').$key;
+               my @nodeoid = (@oid, $node[0]);
+               if ($node[1] eq 'CTLTYPE_NODE') {
+                       if (exists $node_map{$nodename}) {
+                               $node = \%mib;
+                               $ctlname = $node_map{$nodename};
+                               foreach my $part (split /\./, $ctlname) {
+                                       $node = \%{@{$$node{$part}}[2]};
+                               }
+                       } else {
+                               $node = $node[2];
+                       }
+                       &build_sysctl($node, $nodename, \@nodeoid);
+               } elsif ($node[1] ne '') {
+                       $sysctl{$nodename} = \@nodeoid;
+               }
+       }
+}
+
+foreach my $ctl (@ctls) {
+       $ctls{$ctl} = $ctl;
+}
+
+# Build MIB
+foreach my $header (@headers) {
+       &debug("Processing $header...");
+       open HEADER, "/usr/include/$header" ||
+           print STDERR "Failed to open $header\n";
+       while (<HEADER>) {
+               if ($_ =~ /^#define\s+(CTL_NAMES)\s+{/ ||
+                   $_ =~ /^#define\s+(CTL_(.*)_NAMES)\s+{/ ||
+                   $_ =~ /^#define\s+((.*)CTL_NAMES)\s+{/) {
+                       if ($1 eq 'CTL_NAMES') {
+                               # Top level.
+                               $node = \%mib;
+                       } else {
+                               # Node.
+                               my $nodename = lc($2);
+                               if ($header =~ /^netinet\//) {
+                                       $ctlname = "net.inet.$nodename";
+                               } elsif ($header =~ /^netinet6\//) {
+                                       $ctlname = "net.inet6.$nodename";
+                               } elsif ($header =~ /^net\//) {
+                                       $ctlname = "net.$nodename";
+                               } else {
+                                       $ctlname = "$nodename";
+                                       $ctlname =~ s/^(fs|net|kern)_/$1\./;
+                               }
+                               if (exists $ctl_map{$ctlname}) {
+                                       $ctlname = $ctl_map{$ctlname};
+                               }
+                               if (not exists $ctls{$ctlname}) {
+                                       &debug("Ignoring $ctlname...");
+                                       next;
+                               }
+
+                               # Walk down from the top of the MIB.
+                               $node = \%mib;
+                               foreach my $part (split /\./, $ctlname) {
+                                       if (not exists $$node{$part}) {
+                                               &debug("Missing node $part");
+                                               $$node{$part} = [ 0, '', {} ];
+                                       }
+                                       $node = \%{@{$$node{$part}}[2]};
+                               }
+                       }
+
+                       # Populate current node with entries.
+                       my $i = -1;
+                       while (defined($_) && $_ !~ /^}/) {
+                               $_ = <HEADER>;
+                               $i++ if $_ =~ /{.*}/;
+                               next if $_ !~ /{\s+"(\w+)",\s+(CTLTYPE_[A-Z]+)\s+}/;
+                               $$node{$1} = [ $i, $2, {} ];
+                       }
+               }
+       }
+       close HEADER;
+}
+
+&build_sysctl(\%mib, "", []);
+
+print <<EOF;
+// mksysctl_openbsd.pl
+// MACHINE GENERATED BY THE ABOVE COMMAND; DO NOT EDIT
+
+// +build $ENV{'GOARCH'},$ENV{'GOOS'}
+
+package unix;
+
+type mibentry struct {
+       ctlname string
+       ctloid []_C_int
+}
+
+var sysctlMib = []mibentry {
+EOF
+
+foreach my $name (sort keys %sysctl) {
+       my @oid = @{$sysctl{$name}};
+       print "\t{ \"$name\", []_C_int{ ", join(', ', @oid), " } }, \n";
+}
+
+print <<EOF;
+}
+EOF
diff --git a/vendor/golang.org/x/sys/unix/mksysnum_darwin.pl b/vendor/golang.org/x/sys/unix/mksysnum_darwin.pl
new file mode 100755 (executable)
index 0000000..5453c53
--- /dev/null
@@ -0,0 +1,39 @@
+#!/usr/bin/env perl
+# 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.
+#
+# Generate system call table for Darwin from sys/syscall.h
+
+use strict;
+
+if($ENV{'GOARCH'} eq "" || $ENV{'GOOS'} eq "") {
+       print STDERR "GOARCH or GOOS not defined in environment\n";
+       exit 1;
+}
+
+my $command = "mksysnum_darwin.pl " . join(' ', @ARGV);
+
+print <<EOF;
+// $command
+// Code generated by the command above; see README.md. DO NOT EDIT.
+
+// +build $ENV{'GOARCH'},$ENV{'GOOS'}
+
+package unix
+
+const (
+EOF
+
+while(<>){
+       if(/^#define\s+SYS_(\w+)\s+([0-9]+)/){
+               my $name = $1;
+               my $num = $2;
+               $name =~ y/a-z/A-Z/;
+               print " SYS_$name = $num;"
+       }
+}
+
+print <<EOF;
+)
+EOF
diff --git a/vendor/golang.org/x/sys/unix/mksysnum_dragonfly.pl b/vendor/golang.org/x/sys/unix/mksysnum_dragonfly.pl
new file mode 100755 (executable)
index 0000000..6804f41
--- /dev/null
@@ -0,0 +1,50 @@
+#!/usr/bin/env perl
+# 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.
+#
+# Generate system call table for DragonFly from master list
+# (for example, /usr/src/sys/kern/syscalls.master).
+
+use strict;
+
+if($ENV{'GOARCH'} eq "" || $ENV{'GOOS'} eq "") {
+       print STDERR "GOARCH or GOOS not defined in environment\n";
+       exit 1;
+}
+
+my $command = "mksysnum_dragonfly.pl " . join(' ', @ARGV);
+
+print <<EOF;
+// $command
+// Code generated by the command above; see README.md. DO NOT EDIT.
+
+// +build $ENV{'GOARCH'},$ENV{'GOOS'}
+
+package unix
+
+const (
+EOF
+
+while(<>){
+       if(/^([0-9]+)\s+STD\s+({ \S+\s+(\w+).*)$/){
+               my $num = $1;
+               my $proto = $2;
+               my $name = "SYS_$3";
+               $name =~ y/a-z/A-Z/;
+
+               # There are multiple entries for enosys and nosys, so comment them out.
+               if($name =~ /^SYS_E?NOSYS$/){
+                       $name = "// $name";
+               }
+               if($name eq 'SYS_SYS_EXIT'){
+                       $name = 'SYS_EXIT';
+               }
+
+               print " $name = $num;  // $proto\n";
+       }
+}
+
+print <<EOF;
+)
+EOF
diff --git a/vendor/golang.org/x/sys/unix/mksysnum_freebsd.pl b/vendor/golang.org/x/sys/unix/mksysnum_freebsd.pl
new file mode 100755 (executable)
index 0000000..a0a22bf
--- /dev/null
@@ -0,0 +1,50 @@
+#!/usr/bin/env perl
+# 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.
+#
+# Generate system call table for FreeBSD from master list
+# (for example, /usr/src/sys/kern/syscalls.master).
+
+use strict;
+
+if($ENV{'GOARCH'} eq "" || $ENV{'GOOS'} eq "") {
+       print STDERR "GOARCH or GOOS not defined in environment\n";
+       exit 1;
+}
+
+my $command = "mksysnum_freebsd.pl " . join(' ', @ARGV);
+
+print <<EOF;
+// $command
+// Code generated by the command above; see README.md. DO NOT EDIT.
+
+// +build $ENV{'GOARCH'},$ENV{'GOOS'}
+
+package unix
+
+const (
+EOF
+
+while(<>){
+       if(/^([0-9]+)\s+\S+\s+STD\s+({ \S+\s+(\w+).*)$/){
+               my $num = $1;
+               my $proto = $2;
+               my $name = "SYS_$3";
+               $name =~ y/a-z/A-Z/;
+
+               # There are multiple entries for enosys and nosys, so comment them out.
+               if($name =~ /^SYS_E?NOSYS$/){
+                       $name = "// $name";
+               }
+               if($name eq 'SYS_SYS_EXIT'){
+                       $name = 'SYS_EXIT';
+               }
+
+               print " $name = $num;  // $proto\n";
+       }
+}
+
+print <<EOF;
+)
+EOF
diff --git a/vendor/golang.org/x/sys/unix/mksysnum_netbsd.pl b/vendor/golang.org/x/sys/unix/mksysnum_netbsd.pl
new file mode 100755 (executable)
index 0000000..85988b1
--- /dev/null
@@ -0,0 +1,58 @@
+#!/usr/bin/env perl
+# 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.
+#
+# Generate system call table for OpenBSD from master list
+# (for example, /usr/src/sys/kern/syscalls.master).
+
+use strict;
+
+if($ENV{'GOARCH'} eq "" || $ENV{'GOOS'} eq "") {
+       print STDERR "GOARCH or GOOS not defined in environment\n";
+       exit 1;
+}
+
+my $command = "mksysnum_netbsd.pl " . join(' ', @ARGV);
+
+print <<EOF;
+// $command
+// Code generated by the command above; see README.md. DO NOT EDIT.
+
+// +build $ENV{'GOARCH'},$ENV{'GOOS'}
+
+package unix
+
+const (
+EOF
+
+my $line = '';
+while(<>){
+       if($line =~ /^(.*)\\$/) {
+               # Handle continuation
+               $line = $1;
+               $_ =~ s/^\s+//;
+               $line .= $_;
+       } else {
+               # New line
+               $line = $_;
+       }
+       next if $line =~ /\\$/;
+       if($line =~ /^([0-9]+)\s+((STD)|(NOERR))\s+(RUMP\s+)?({\s+\S+\s*\*?\s*\|(\S+)\|(\S*)\|(\w+).*\s+})(\s+(\S+))?$/) {
+               my $num = $1;
+               my $proto = $6;
+               my $compat = $8;
+               my $name = "$7_$9";
+
+               $name = "$7_$11" if $11 ne '';
+               $name =~ y/a-z/A-Z/;
+
+               if($compat eq '' || $compat eq '13' || $compat eq '30' || $compat eq '50') {
+                       print " $name = $num;  // $proto\n";
+               }
+       }
+}
+
+print <<EOF;
+)
+EOF
diff --git a/vendor/golang.org/x/sys/unix/mksysnum_openbsd.pl b/vendor/golang.org/x/sys/unix/mksysnum_openbsd.pl
new file mode 100755 (executable)
index 0000000..84edf60
--- /dev/null
@@ -0,0 +1,50 @@
+#!/usr/bin/env perl
+# 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.
+#
+# Generate system call table for OpenBSD from master list
+# (for example, /usr/src/sys/kern/syscalls.master).
+
+use strict;
+
+if($ENV{'GOARCH'} eq "" || $ENV{'GOOS'} eq "") {
+       print STDERR "GOARCH or GOOS not defined in environment\n";
+       exit 1;
+}
+
+my $command = "mksysnum_openbsd.pl " . join(' ', @ARGV);
+
+print <<EOF;
+// $command
+// Code generated by the command above; see README.md. DO NOT EDIT.
+
+// +build $ENV{'GOARCH'},$ENV{'GOOS'}
+
+package unix
+
+const (
+EOF
+
+while(<>){
+       if(/^([0-9]+)\s+STD\s+(NOLOCK\s+)?({ \S+\s+\*?(\w+).*)$/){
+               my $num = $1;
+               my $proto = $3;
+               my $name = $4;
+               $name =~ y/a-z/A-Z/;
+
+               # There are multiple entries for enosys and nosys, so comment them out.
+               if($name =~ /^SYS_E?NOSYS$/){
+                       $name = "// $name";
+               }
+               if($name eq 'SYS_SYS_EXIT'){
+                       $name = 'SYS_EXIT';
+               }
+
+               print " $name = $num;  // $proto\n";
+       }
+}
+
+print <<EOF;
+)
+EOF
diff --git a/vendor/golang.org/x/sys/unix/openbsd_pledge.go b/vendor/golang.org/x/sys/unix/openbsd_pledge.go
new file mode 100644 (file)
index 0000000..db4f72e
--- /dev/null
@@ -0,0 +1,38 @@
+// Copyright 2016 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build openbsd
+// +build 386 amd64 arm
+
+package unix
+
+import (
+       "syscall"
+       "unsafe"
+)
+
+const (
+       SYS_PLEDGE = 108
+)
+
+// Pledge implements the pledge syscall. For more information see pledge(2).
+func Pledge(promises string, paths []string) error {
+       promisesPtr, err := syscall.BytePtrFromString(promises)
+       if err != nil {
+               return err
+       }
+       promisesUnsafe, pathsUnsafe := unsafe.Pointer(promisesPtr), unsafe.Pointer(nil)
+       if paths != nil {
+               var pathsPtr []*byte
+               if pathsPtr, err = syscall.SlicePtrFromStrings(paths); err != nil {
+                       return err
+               }
+               pathsUnsafe = unsafe.Pointer(&pathsPtr[0])
+       }
+       _, _, e := syscall.Syscall(SYS_PLEDGE, uintptr(promisesUnsafe), uintptr(pathsUnsafe), 0)
+       if e != 0 {
+               return e
+       }
+       return nil
+}
diff --git a/vendor/golang.org/x/sys/unix/race.go b/vendor/golang.org/x/sys/unix/race.go
new file mode 100644 (file)
index 0000000..3c7627e
--- /dev/null
@@ -0,0 +1,30 @@
+// Copyright 2012 The Go Authors.  All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build darwin,race linux,race freebsd,race
+
+package unix
+
+import (
+       "runtime"
+       "unsafe"
+)
+
+const raceenabled = true
+
+func raceAcquire(addr unsafe.Pointer) {
+       runtime.RaceAcquire(addr)
+}
+
+func raceReleaseMerge(addr unsafe.Pointer) {
+       runtime.RaceReleaseMerge(addr)
+}
+
+func raceReadRange(addr unsafe.Pointer, len int) {
+       runtime.RaceReadRange(addr, len)
+}
+
+func raceWriteRange(addr unsafe.Pointer, len int) {
+       runtime.RaceWriteRange(addr, len)
+}
diff --git a/vendor/golang.org/x/sys/unix/race0.go b/vendor/golang.org/x/sys/unix/race0.go
new file mode 100644 (file)
index 0000000..f8678e0
--- /dev/null
@@ -0,0 +1,25 @@
+// Copyright 2012 The Go Authors.  All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build darwin,!race linux,!race freebsd,!race netbsd openbsd solaris dragonfly
+
+package unix
+
+import (
+       "unsafe"
+)
+
+const raceenabled = false
+
+func raceAcquire(addr unsafe.Pointer) {
+}
+
+func raceReleaseMerge(addr unsafe.Pointer) {
+}
+
+func raceReadRange(addr unsafe.Pointer, len int) {
+}
+
+func raceWriteRange(addr unsafe.Pointer, len int) {
+}
diff --git a/vendor/golang.org/x/sys/unix/sockcmsg_linux.go b/vendor/golang.org/x/sys/unix/sockcmsg_linux.go
new file mode 100644 (file)
index 0000000..d9ff473
--- /dev/null
@@ -0,0 +1,36 @@
+// Copyright 2011 The Go Authors.  All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// Socket control messages
+
+package unix
+
+import "unsafe"
+
+// UnixCredentials encodes credentials into a socket control message
+// for sending to another process. This can be used for
+// authentication.
+func UnixCredentials(ucred *Ucred) []byte {
+       b := make([]byte, CmsgSpace(SizeofUcred))
+       h := (*Cmsghdr)(unsafe.Pointer(&b[0]))
+       h.Level = SOL_SOCKET
+       h.Type = SCM_CREDENTIALS
+       h.SetLen(CmsgLen(SizeofUcred))
+       *((*Ucred)(cmsgData(h))) = *ucred
+       return b
+}
+
+// ParseUnixCredentials decodes a socket control message that contains
+// credentials in a Ucred structure. To receive such a message, the
+// SO_PASSCRED option must be enabled on the socket.
+func ParseUnixCredentials(m *SocketControlMessage) (*Ucred, error) {
+       if m.Header.Level != SOL_SOCKET {
+               return nil, EINVAL
+       }
+       if m.Header.Type != SCM_CREDENTIALS {
+               return nil, EINVAL
+       }
+       ucred := *(*Ucred)(unsafe.Pointer(&m.Data[0]))
+       return &ucred, nil
+}
diff --git a/vendor/golang.org/x/sys/unix/sockcmsg_unix.go b/vendor/golang.org/x/sys/unix/sockcmsg_unix.go
new file mode 100644 (file)
index 0000000..bb756ec
--- /dev/null
@@ -0,0 +1,104 @@
+// Copyright 2011 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build darwin dragonfly freebsd linux netbsd openbsd solaris
+
+// Socket control messages
+
+package unix
+
+import "unsafe"
+
+// Round the length of a raw sockaddr up to align it properly.
+func cmsgAlignOf(salen int) int {
+       salign := sizeofPtr
+       // NOTE: It seems like 64-bit Darwin, 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)
+}
+
+// CmsgLen returns the value to store in the Len field of the Cmsghdr
+// structure, taking into account any necessary alignment.
+func CmsgLen(datalen int) int {
+       return cmsgAlignOf(SizeofCmsghdr) + datalen
+}
+
+// CmsgSpace returns the number of bytes an ancillary element with
+// payload of the passed data length occupies.
+func CmsgSpace(datalen int) int {
+       return cmsgAlignOf(SizeofCmsghdr) + cmsgAlignOf(datalen)
+}
+
+func cmsgData(h *Cmsghdr) unsafe.Pointer {
+       return unsafe.Pointer(uintptr(unsafe.Pointer(h)) + uintptr(cmsgAlignOf(SizeofCmsghdr)))
+}
+
+// SocketControlMessage represents a socket control message.
+type SocketControlMessage struct {
+       Header Cmsghdr
+       Data   []byte
+}
+
+// ParseSocketControlMessage parses b as an array of socket control
+// messages.
+func ParseSocketControlMessage(b []byte) ([]SocketControlMessage, error) {
+       var msgs []SocketControlMessage
+       i := 0
+       for i+CmsgLen(0) <= len(b) {
+               h, dbuf, err := socketControlMessageHeaderAndData(b[i:])
+               if err != nil {
+                       return nil, err
+               }
+               m := SocketControlMessage{Header: *h, Data: dbuf}
+               msgs = append(msgs, m)
+               i += cmsgAlignOf(int(h.Len))
+       }
+       return msgs, nil
+}
+
+func socketControlMessageHeaderAndData(b []byte) (*Cmsghdr, []byte, error) {
+       h := (*Cmsghdr)(unsafe.Pointer(&b[0]))
+       if h.Len < SizeofCmsghdr || uint64(h.Len) > uint64(len(b)) {
+               return nil, nil, EINVAL
+       }
+       return h, b[cmsgAlignOf(SizeofCmsghdr):h.Len], nil
+}
+
+// UnixRights encodes a set of open file descriptors into a socket
+// control message for sending to another process.
+func UnixRights(fds ...int) []byte {
+       datalen := len(fds) * 4
+       b := make([]byte, CmsgSpace(datalen))
+       h := (*Cmsghdr)(unsafe.Pointer(&b[0]))
+       h.Level = SOL_SOCKET
+       h.Type = SCM_RIGHTS
+       h.SetLen(CmsgLen(datalen))
+       data := cmsgData(h)
+       for _, fd := range fds {
+               *(*int32)(data) = int32(fd)
+               data = unsafe.Pointer(uintptr(data) + 4)
+       }
+       return b
+}
+
+// ParseUnixRights decodes a socket control message that contains an
+// integer array of open file descriptors from another process.
+func ParseUnixRights(m *SocketControlMessage) ([]int, error) {
+       if m.Header.Level != SOL_SOCKET {
+               return nil, EINVAL
+       }
+       if m.Header.Type != SCM_RIGHTS {
+               return nil, EINVAL
+       }
+       fds := make([]int, len(m.Data)>>2)
+       for i, j := 0, 0; i < len(m.Data); i += 4 {
+               fds[j] = int(*(*int32)(unsafe.Pointer(&m.Data[i])))
+               j++
+       }
+       return fds, nil
+}
diff --git a/vendor/golang.org/x/sys/unix/str.go b/vendor/golang.org/x/sys/unix/str.go
new file mode 100644 (file)
index 0000000..35ed664
--- /dev/null
@@ -0,0 +1,26 @@
+// Copyright 2009 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build darwin dragonfly freebsd linux netbsd openbsd solaris
+
+package unix
+
+func itoa(val int) string { // do it here rather than with fmt to avoid dependency
+       if val < 0 {
+               return "-" + uitoa(uint(-val))
+       }
+       return uitoa(uint(val))
+}
+
+func uitoa(val uint) string {
+       var buf [32]byte // big enough for int64
+       i := len(buf) - 1
+       for val >= 10 {
+               buf[i] = byte(val%10 + '0')
+               i--
+               val /= 10
+       }
+       buf[i] = byte(val + '0')
+       return string(buf[i:])
+}
diff --git a/vendor/golang.org/x/sys/unix/syscall.go b/vendor/golang.org/x/sys/unix/syscall.go
new file mode 100644 (file)
index 0000000..85e3502
--- /dev/null
@@ -0,0 +1,69 @@
+// Copyright 2009 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build darwin dragonfly freebsd linux netbsd openbsd solaris
+
+// Package unix contains an interface to the low-level operating system
+// primitives.  OS details vary depending on the underlying system, and
+// by default, godoc will display OS-specific documentation for the current
+// system.  If you want godoc to display OS documentation for another
+// system, set $GOOS and $GOARCH to the desired system.  For example, if
+// you want to view documentation for freebsd/arm on linux/amd64, set $GOOS
+// to freebsd and $GOARCH to arm.
+// The primary use of this package is inside other packages that provide a more
+// portable interface to the system, such as "os", "time" and "net".  Use
+// those packages rather than this one if you can.
+// For details of the functions and data types in this package consult
+// the manuals for the appropriate operating system.
+// These calls return err == nil to indicate success; otherwise
+// err represents an operating system error describing the failure and
+// holds a value of type syscall.Errno.
+package unix // import "golang.org/x/sys/unix"
+
+// ByteSliceFromString returns a NUL-terminated slice of bytes
+// containing the text of s. If s contains a NUL byte at any
+// location, it returns (nil, EINVAL).
+func ByteSliceFromString(s string) ([]byte, error) {
+       for i := 0; i < len(s); i++ {
+               if s[i] == 0 {
+                       return nil, EINVAL
+               }
+       }
+       a := make([]byte, len(s)+1)
+       copy(a, s)
+       return a, nil
+}
+
+// BytePtrFromString returns a pointer to a NUL-terminated array of
+// bytes containing the text of s. If s contains a NUL byte at any
+// location, it returns (nil, EINVAL).
+func BytePtrFromString(s string) (*byte, error) {
+       a, err := ByteSliceFromString(s)
+       if err != nil {
+               return nil, err
+       }
+       return &a[0], nil
+}
+
+// Single-word zero for use when we need a valid pointer to 0 bytes.
+// See mkunix.pl.
+var _zero uintptr
+
+func (ts *Timespec) Unix() (sec int64, nsec int64) {
+       return int64(ts.Sec), int64(ts.Nsec)
+}
+
+func (tv *Timeval) Unix() (sec int64, nsec int64) {
+       return int64(tv.Sec), int64(tv.Usec) * 1000
+}
+
+func (ts *Timespec) Nano() int64 {
+       return int64(ts.Sec)*1e9 + int64(ts.Nsec)
+}
+
+func (tv *Timeval) Nano() int64 {
+       return int64(tv.Sec)*1e9 + int64(tv.Usec)*1000
+}
+
+func TimevalToNsec(tv Timeval) int64 { return int64(tv.Sec)*1e9 + int64(tv.Usec)*1e3 }
diff --git a/vendor/golang.org/x/sys/unix/syscall_bsd.go b/vendor/golang.org/x/sys/unix/syscall_bsd.go
new file mode 100644 (file)
index 0000000..c2846b3
--- /dev/null
@@ -0,0 +1,635 @@
+// Copyright 2009 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build darwin dragonfly freebsd netbsd openbsd
+
+// BSD system call wrappers shared by *BSD based systems
+// including OS X (Darwin) and FreeBSD.  Like the other
+// syscall_*.go files it is compiled as Go code but also
+// used as input to mksyscall which parses the //sys
+// lines and generates system call stubs.
+
+package unix
+
+import (
+       "runtime"
+       "syscall"
+       "unsafe"
+)
+
+/*
+ * Wrapped
+ */
+
+//sysnb        getgroups(ngid int, gid *_Gid_t) (n int, err error)
+//sysnb        setgroups(ngid int, gid *_Gid_t) (err error)
+
+func Getgroups() (gids []int, err error) {
+       n, err := getgroups(0, nil)
+       if err != nil {
+               return nil, err
+       }
+       if n == 0 {
+               return nil, nil
+       }
+
+       // Sanity check group count.  Max is 16 on BSD.
+       if n < 0 || n > 1000 {
+               return nil, EINVAL
+       }
+
+       a := make([]_Gid_t, n)
+       n, err = getgroups(n, &a[0])
+       if err != nil {
+               return nil, err
+       }
+       gids = make([]int, n)
+       for i, v := range a[0:n] {
+               gids[i] = int(v)
+       }
+       return
+}
+
+func Setgroups(gids []int) (err error) {
+       if len(gids) == 0 {
+               return setgroups(0, nil)
+       }
+
+       a := make([]_Gid_t, len(gids))
+       for i, v := range gids {
+               a[i] = _Gid_t(v)
+       }
+       return setgroups(len(a), &a[0])
+}
+
+func ReadDirent(fd int, buf []byte) (n int, err error) {
+       // Final argument is (basep *uintptr) and the syscall doesn't take nil.
+       // 64 bits should be enough. (32 bits isn't even on 386). Since the
+       // actual system call is getdirentries64, 64 is a good guess.
+       // TODO(rsc): Can we use a single global basep for all calls?
+       var base = (*uintptr)(unsafe.Pointer(new(uint64)))
+       return Getdirentries(fd, buf, base)
+}
+
+// Wait status is 7 bits at bottom, either 0 (exited),
+// 0x7F (stopped), or a signal number that caused an exit.
+// The 0x80 bit is whether there was a core dump.
+// An extra number (exit code, signal causing a stop)
+// is in the high bits.
+
+type WaitStatus uint32
+
+const (
+       mask  = 0x7F
+       core  = 0x80
+       shift = 8
+
+       exited  = 0
+       stopped = 0x7F
+)
+
+func (w WaitStatus) Exited() bool { return w&mask == exited }
+
+func (w WaitStatus) ExitStatus() int {
+       if w&mask != exited {
+               return -1
+       }
+       return int(w >> shift)
+}
+
+func (w WaitStatus) Signaled() bool { return w&mask != stopped && w&mask != 0 }
+
+func (w WaitStatus) Signal() syscall.Signal {
+       sig := syscall.Signal(w & mask)
+       if sig == stopped || sig == 0 {
+               return -1
+       }
+       return sig
+}
+
+func (w WaitStatus) CoreDump() bool { return w.Signaled() && w&core != 0 }
+
+func (w WaitStatus) Stopped() bool { return w&mask == stopped && syscall.Signal(w>>shift) != SIGSTOP }
+
+func (w WaitStatus) Continued() bool { return w&mask == stopped && syscall.Signal(w>>shift) == SIGSTOP }
+
+func (w WaitStatus) StopSignal() syscall.Signal {
+       if !w.Stopped() {
+               return -1
+       }
+       return syscall.Signal(w>>shift) & 0xFF
+}
+
+func (w WaitStatus) TrapCause() int { return -1 }
+
+//sys  wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error)
+
+func Wait4(pid int, wstatus *WaitStatus, options int, rusage *Rusage) (wpid int, err error) {
+       var status _C_int
+       wpid, err = wait4(pid, &status, options, rusage)
+       if wstatus != nil {
+               *wstatus = WaitStatus(status)
+       }
+       return
+}
+
+//sys  accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error)
+//sys  bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)
+//sys  connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)
+//sysnb        socket(domain int, typ int, proto int) (fd int, err error)
+//sys  getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error)
+//sys  setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error)
+//sysnb        getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error)
+//sysnb        getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error)
+//sys  Shutdown(s int, how int) (err error)
+
+func (sa *SockaddrInet4) sockaddr() (unsafe.Pointer, _Socklen, error) {
+       if sa.Port < 0 || sa.Port > 0xFFFF {
+               return nil, 0, EINVAL
+       }
+       sa.raw.Len = SizeofSockaddrInet4
+       sa.raw.Family = AF_INET
+       p := (*[2]byte)(unsafe.Pointer(&sa.raw.Port))
+       p[0] = byte(sa.Port >> 8)
+       p[1] = byte(sa.Port)
+       for i := 0; i < len(sa.Addr); i++ {
+               sa.raw.Addr[i] = sa.Addr[i]
+       }
+       return unsafe.Pointer(&sa.raw), _Socklen(sa.raw.Len), nil
+}
+
+func (sa *SockaddrInet6) sockaddr() (unsafe.Pointer, _Socklen, error) {
+       if sa.Port < 0 || sa.Port > 0xFFFF {
+               return nil, 0, EINVAL
+       }
+       sa.raw.Len = SizeofSockaddrInet6
+       sa.raw.Family = AF_INET6
+       p := (*[2]byte)(unsafe.Pointer(&sa.raw.Port))
+       p[0] = byte(sa.Port >> 8)
+       p[1] = byte(sa.Port)
+       sa.raw.Scope_id = sa.ZoneId
+       for i := 0; i < len(sa.Addr); i++ {
+               sa.raw.Addr[i] = sa.Addr[i]
+       }
+       return unsafe.Pointer(&sa.raw), _Socklen(sa.raw.Len), nil
+}
+
+func (sa *SockaddrUnix) sockaddr() (unsafe.Pointer, _Socklen, error) {
+       name := sa.Name
+       n := len(name)
+       if n >= len(sa.raw.Path) || n == 0 {
+               return nil, 0, EINVAL
+       }
+       sa.raw.Len = byte(3 + n) // 2 for Family, Len; 1 for NUL
+       sa.raw.Family = AF_UNIX
+       for i := 0; i < n; i++ {
+               sa.raw.Path[i] = int8(name[i])
+       }
+       return unsafe.Pointer(&sa.raw), _Socklen(sa.raw.Len), nil
+}
+
+func (sa *SockaddrDatalink) sockaddr() (unsafe.Pointer, _Socklen, error) {
+       if sa.Index == 0 {
+               return nil, 0, EINVAL
+       }
+       sa.raw.Len = sa.Len
+       sa.raw.Family = AF_LINK
+       sa.raw.Index = sa.Index
+       sa.raw.Type = sa.Type
+       sa.raw.Nlen = sa.Nlen
+       sa.raw.Alen = sa.Alen
+       sa.raw.Slen = sa.Slen
+       for i := 0; i < len(sa.raw.Data); i++ {
+               sa.raw.Data[i] = sa.Data[i]
+       }
+       return unsafe.Pointer(&sa.raw), SizeofSockaddrDatalink, nil
+}
+
+func anyToSockaddr(rsa *RawSockaddrAny) (Sockaddr, error) {
+       switch rsa.Addr.Family {
+       case AF_LINK:
+               pp := (*RawSockaddrDatalink)(unsafe.Pointer(rsa))
+               sa := new(SockaddrDatalink)
+               sa.Len = pp.Len
+               sa.Family = pp.Family
+               sa.Index = pp.Index
+               sa.Type = pp.Type
+               sa.Nlen = pp.Nlen
+               sa.Alen = pp.Alen
+               sa.Slen = pp.Slen
+               for i := 0; i < len(sa.Data); i++ {
+                       sa.Data[i] = pp.Data[i]
+               }
+               return sa, nil
+
+       case AF_UNIX:
+               pp := (*RawSockaddrUnix)(unsafe.Pointer(rsa))
+               if pp.Len < 2 || pp.Len > SizeofSockaddrUnix {
+                       return nil, EINVAL
+               }
+               sa := new(SockaddrUnix)
+
+               // Some BSDs include the trailing NUL in the length, whereas
+               // others do not. Work around this by subtracting the leading
+               // family and len. The path is then scanned to see if a NUL
+               // terminator still exists within the length.
+               n := int(pp.Len) - 2 // subtract leading Family, Len
+               for i := 0; i < n; i++ {
+                       if pp.Path[i] == 0 {
+                               // found early NUL; assume Len included the NUL
+                               // or was overestimating.
+                               n = i
+                               break
+                       }
+               }
+               bytes := (*[10000]byte)(unsafe.Pointer(&pp.Path[0]))[0:n]
+               sa.Name = string(bytes)
+               return sa, nil
+
+       case AF_INET:
+               pp := (*RawSockaddrInet4)(unsafe.Pointer(rsa))
+               sa := new(SockaddrInet4)
+               p := (*[2]byte)(unsafe.Pointer(&pp.Port))
+               sa.Port = int(p[0])<<8 + int(p[1])
+               for i := 0; i < len(sa.Addr); i++ {
+                       sa.Addr[i] = pp.Addr[i]
+               }
+               return sa, nil
+
+       case AF_INET6:
+               pp := (*RawSockaddrInet6)(unsafe.Pointer(rsa))
+               sa := new(SockaddrInet6)
+               p := (*[2]byte)(unsafe.Pointer(&pp.Port))
+               sa.Port = int(p[0])<<8 + int(p[1])
+               sa.ZoneId = pp.Scope_id
+               for i := 0; i < len(sa.Addr); i++ {
+                       sa.Addr[i] = pp.Addr[i]
+               }
+               return sa, nil
+       }
+       return nil, EAFNOSUPPORT
+}
+
+func Accept(fd int) (nfd int, sa Sockaddr, err error) {
+       var rsa RawSockaddrAny
+       var len _Socklen = SizeofSockaddrAny
+       nfd, err = accept(fd, &rsa, &len)
+       if err != nil {
+               return
+       }
+       if runtime.GOOS == "darwin" && len == 0 {
+               // Accepted socket has no address.
+               // This is likely due to a bug in xnu kernels,
+               // where instead of ECONNABORTED error socket
+               // is accepted, but has no address.
+               Close(nfd)
+               return 0, nil, ECONNABORTED
+       }
+       sa, err = anyToSockaddr(&rsa)
+       if err != nil {
+               Close(nfd)
+               nfd = 0
+       }
+       return
+}
+
+func Getsockname(fd int) (sa Sockaddr, err error) {
+       var rsa RawSockaddrAny
+       var len _Socklen = SizeofSockaddrAny
+       if err = getsockname(fd, &rsa, &len); err != nil {
+               return
+       }
+       // TODO(jsing): DragonFly has a "bug" (see issue 3349), which should be
+       // reported upstream.
+       if runtime.GOOS == "dragonfly" && rsa.Addr.Family == AF_UNSPEC && rsa.Addr.Len == 0 {
+               rsa.Addr.Family = AF_UNIX
+               rsa.Addr.Len = SizeofSockaddrUnix
+       }
+       return anyToSockaddr(&rsa)
+}
+
+//sysnb socketpair(domain int, typ int, proto int, fd *[2]int32) (err error)
+
+func GetsockoptByte(fd, level, opt int) (value byte, err error) {
+       var n byte
+       vallen := _Socklen(1)
+       err = getsockopt(fd, level, opt, unsafe.Pointer(&n), &vallen)
+       return n, err
+}
+
+func GetsockoptInet4Addr(fd, level, opt int) (value [4]byte, err error) {
+       vallen := _Socklen(4)
+       err = getsockopt(fd, level, opt, unsafe.Pointer(&value[0]), &vallen)
+       return value, err
+}
+
+func GetsockoptIPMreq(fd, level, opt int) (*IPMreq, error) {
+       var value IPMreq
+       vallen := _Socklen(SizeofIPMreq)
+       err := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen)
+       return &value, err
+}
+
+func GetsockoptIPv6Mreq(fd, level, opt int) (*IPv6Mreq, error) {
+       var value IPv6Mreq
+       vallen := _Socklen(SizeofIPv6Mreq)
+       err := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen)
+       return &value, err
+}
+
+func GetsockoptIPv6MTUInfo(fd, level, opt int) (*IPv6MTUInfo, error) {
+       var value IPv6MTUInfo
+       vallen := _Socklen(SizeofIPv6MTUInfo)
+       err := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen)
+       return &value, err
+}
+
+func GetsockoptICMPv6Filter(fd, level, opt int) (*ICMPv6Filter, error) {
+       var value ICMPv6Filter
+       vallen := _Socklen(SizeofICMPv6Filter)
+       err := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen)
+       return &value, err
+}
+
+//sys   recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error)
+//sys   sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error)
+//sys  recvmsg(s int, msg *Msghdr, flags int) (n int, err error)
+
+func Recvmsg(fd int, p, oob []byte, flags int) (n, oobn int, recvflags int, from Sockaddr, err error) {
+       var msg Msghdr
+       var rsa RawSockaddrAny
+       msg.Name = (*byte)(unsafe.Pointer(&rsa))
+       msg.Namelen = uint32(SizeofSockaddrAny)
+       var iov Iovec
+       if len(p) > 0 {
+               iov.Base = (*byte)(unsafe.Pointer(&p[0]))
+               iov.SetLen(len(p))
+       }
+       var dummy byte
+       if len(oob) > 0 {
+               // receive at least one normal byte
+               if len(p) == 0 {
+                       iov.Base = &dummy
+                       iov.SetLen(1)
+               }
+               msg.Control = (*byte)(unsafe.Pointer(&oob[0]))
+               msg.SetControllen(len(oob))
+       }
+       msg.Iov = &iov
+       msg.Iovlen = 1
+       if n, err = recvmsg(fd, &msg, flags); err != nil {
+               return
+       }
+       oobn = int(msg.Controllen)
+       recvflags = int(msg.Flags)
+       // source address is only specified if the socket is unconnected
+       if rsa.Addr.Family != AF_UNSPEC {
+               from, err = anyToSockaddr(&rsa)
+       }
+       return
+}
+
+//sys  sendmsg(s int, msg *Msghdr, flags int) (n int, err error)
+
+func Sendmsg(fd int, p, oob []byte, to Sockaddr, flags int) (err error) {
+       _, err = SendmsgN(fd, p, oob, to, flags)
+       return
+}
+
+func SendmsgN(fd int, p, oob []byte, to Sockaddr, flags int) (n int, err error) {
+       var ptr unsafe.Pointer
+       var salen _Socklen
+       if to != nil {
+               ptr, salen, err = to.sockaddr()
+               if err != nil {
+                       return 0, err
+               }
+       }
+       var msg Msghdr
+       msg.Name = (*byte)(unsafe.Pointer(ptr))
+       msg.Namelen = uint32(salen)
+       var iov Iovec
+       if len(p) > 0 {
+               iov.Base = (*byte)(unsafe.Pointer(&p[0]))
+               iov.SetLen(len(p))
+       }
+       var dummy byte
+       if len(oob) > 0 {
+               // send at least one normal byte
+               if len(p) == 0 {
+                       iov.Base = &dummy
+                       iov.SetLen(1)
+               }
+               msg.Control = (*byte)(unsafe.Pointer(&oob[0]))
+               msg.SetControllen(len(oob))
+       }
+       msg.Iov = &iov
+       msg.Iovlen = 1
+       if n, err = sendmsg(fd, &msg, flags); err != nil {
+               return 0, err
+       }
+       if len(oob) > 0 && len(p) == 0 {
+               n = 0
+       }
+       return n, nil
+}
+
+//sys  kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error)
+
+func Kevent(kq int, changes, events []Kevent_t, timeout *Timespec) (n int, err error) {
+       var change, event unsafe.Pointer
+       if len(changes) > 0 {
+               change = unsafe.Pointer(&changes[0])
+       }
+       if len(events) > 0 {
+               event = unsafe.Pointer(&events[0])
+       }
+       return kevent(kq, change, len(changes), event, len(events), timeout)
+}
+
+//sys  sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) = SYS___SYSCTL
+
+// sysctlmib translates name to mib number and appends any additional args.
+func sysctlmib(name string, args ...int) ([]_C_int, error) {
+       // Translate name to mib number.
+       mib, err := nametomib(name)
+       if err != nil {
+               return nil, err
+       }
+
+       for _, a := range args {
+               mib = append(mib, _C_int(a))
+       }
+
+       return mib, nil
+}
+
+func Sysctl(name string) (string, error) {
+       return SysctlArgs(name)
+}
+
+func SysctlArgs(name string, args ...int) (string, error) {
+       buf, err := SysctlRaw(name, args...)
+       if err != nil {
+               return "", err
+       }
+       n := len(buf)
+
+       // Throw away terminating NUL.
+       if n > 0 && buf[n-1] == '\x00' {
+               n--
+       }
+       return string(buf[0:n]), nil
+}
+
+func SysctlUint32(name string) (uint32, error) {
+       return SysctlUint32Args(name)
+}
+
+func SysctlUint32Args(name string, args ...int) (uint32, error) {
+       mib, err := sysctlmib(name, args...)
+       if err != nil {
+               return 0, err
+       }
+
+       n := uintptr(4)
+       buf := make([]byte, 4)
+       if err := sysctl(mib, &buf[0], &n, nil, 0); err != nil {
+               return 0, err
+       }
+       if n != 4 {
+               return 0, EIO
+       }
+       return *(*uint32)(unsafe.Pointer(&buf[0])), nil
+}
+
+func SysctlUint64(name string, args ...int) (uint64, error) {
+       mib, err := sysctlmib(name, args...)
+       if err != nil {
+               return 0, err
+       }
+
+       n := uintptr(8)
+       buf := make([]byte, 8)
+       if err := sysctl(mib, &buf[0], &n, nil, 0); err != nil {
+               return 0, err
+       }
+       if n != 8 {
+               return 0, EIO
+       }
+       return *(*uint64)(unsafe.Pointer(&buf[0])), nil
+}
+
+func SysctlRaw(name string, args ...int) ([]byte, error) {
+       mib, err := sysctlmib(name, args...)
+       if err != nil {
+               return nil, err
+       }
+
+       // Find size.
+       n := uintptr(0)
+       if err := sysctl(mib, nil, &n, nil, 0); err != nil {
+               return nil, err
+       }
+       if n == 0 {
+               return nil, nil
+       }
+
+       // Read into buffer of that size.
+       buf := make([]byte, n)
+       if err := sysctl(mib, &buf[0], &n, nil, 0); err != nil {
+               return nil, err
+       }
+
+       // The actual call may return less than the original reported required
+       // size so ensure we deal with that.
+       return buf[:n], nil
+}
+
+//sys  utimes(path string, timeval *[2]Timeval) (err error)
+
+func Utimes(path string, tv []Timeval) error {
+       if tv == nil {
+               return utimes(path, nil)
+       }
+       if len(tv) != 2 {
+               return EINVAL
+       }
+       return utimes(path, (*[2]Timeval)(unsafe.Pointer(&tv[0])))
+}
+
+func UtimesNano(path string, ts []Timespec) error {
+       if ts == nil {
+               err := utimensat(AT_FDCWD, path, nil, 0)
+               if err != ENOSYS {
+                       return err
+               }
+               return utimes(path, nil)
+       }
+       if len(ts) != 2 {
+               return EINVAL
+       }
+       err := utimensat(AT_FDCWD, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0)
+       if err != ENOSYS {
+               return err
+       }
+       // Not as efficient as it could be because Timespec and
+       // Timeval have different types in the different OSes
+       tv := [2]Timeval{
+               NsecToTimeval(TimespecToNsec(ts[0])),
+               NsecToTimeval(TimespecToNsec(ts[1])),
+       }
+       return utimes(path, (*[2]Timeval)(unsafe.Pointer(&tv[0])))
+}
+
+func UtimesNanoAt(dirfd int, path string, ts []Timespec, flags int) error {
+       if ts == nil {
+               return utimensat(dirfd, path, nil, flags)
+       }
+       if len(ts) != 2 {
+               return EINVAL
+       }
+       return utimensat(dirfd, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), flags)
+}
+
+//sys  futimes(fd int, timeval *[2]Timeval) (err error)
+
+func Futimes(fd int, tv []Timeval) error {
+       if tv == nil {
+               return futimes(fd, nil)
+       }
+       if len(tv) != 2 {
+               return EINVAL
+       }
+       return futimes(fd, (*[2]Timeval)(unsafe.Pointer(&tv[0])))
+}
+
+//sys  fcntl(fd int, cmd int, arg int) (val int, err error)
+
+// TODO: wrap
+//     Acct(name nil-string) (err error)
+//     Gethostuuid(uuid *byte, timeout *Timespec) (err error)
+//     Ptrace(req int, pid int, addr uintptr, data int) (ret uintptr, err error)
+
+var mapper = &mmapper{
+       active: make(map[*byte][]byte),
+       mmap:   mmap,
+       munmap: munmap,
+}
+
+func Mmap(fd int, offset int64, length int, prot int, flags int) (data []byte, err error) {
+       return mapper.Mmap(fd, offset, length, prot, flags)
+}
+
+func Munmap(b []byte) (err error) {
+       return mapper.Munmap(b)
+}
+
+//sys  Madvise(b []byte, behav int) (err 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)
diff --git a/vendor/golang.org/x/sys/unix/syscall_darwin.go b/vendor/golang.org/x/sys/unix/syscall_darwin.go
new file mode 100644 (file)
index 0000000..ad74a11
--- /dev/null
@@ -0,0 +1,536 @@
+// Copyright 2009,2010 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// Darwin system calls.
+// This file is compiled as ordinary Go code,
+// but it is also input to mksyscall,
+// which parses the //sys lines and generates system call stubs.
+// Note that sometimes we use a lowercase //sys name and wrap
+// it in our own nicer implementation, either here or in
+// syscall_bsd.go or syscall_unix.go.
+
+package unix
+
+import (
+       errorspkg "errors"
+       "syscall"
+       "unsafe"
+)
+
+const ImplementsGetwd = true
+
+func Getwd() (string, error) {
+       buf := make([]byte, 2048)
+       attrs, err := getAttrList(".", attrList{CommonAttr: attrCmnFullpath}, buf, 0)
+       if err == nil && len(attrs) == 1 && len(attrs[0]) >= 2 {
+               wd := string(attrs[0])
+               // Sanity check that it's an absolute path and ends
+               // in a null byte, which we then strip.
+               if wd[0] == '/' && wd[len(wd)-1] == 0 {
+                       return wd[:len(wd)-1], nil
+               }
+       }
+       // If pkg/os/getwd.go gets ENOTSUP, it will fall back to the
+       // slow algorithm.
+       return "", ENOTSUP
+}
+
+type SockaddrDatalink struct {
+       Len    uint8
+       Family uint8
+       Index  uint16
+       Type   uint8
+       Nlen   uint8
+       Alen   uint8
+       Slen   uint8
+       Data   [12]int8
+       raw    RawSockaddrDatalink
+}
+
+// Translate "kern.hostname" to []_C_int{0,1,2,3}.
+func nametomib(name string) (mib []_C_int, err error) {
+       const siz = unsafe.Sizeof(mib[0])
+
+       // NOTE(rsc): It seems strange to set the buffer to have
+       // size CTL_MAXNAME+2 but use only CTL_MAXNAME
+       // as the size.  I don't know why the +2 is here, but the
+       // kernel uses +2 for its own implementation of this function.
+       // I am scared that if we don't include the +2 here, the kernel
+       // will silently write 2 words farther than we specify
+       // and we'll get memory corruption.
+       var buf [CTL_MAXNAME + 2]_C_int
+       n := uintptr(CTL_MAXNAME) * siz
+
+       p := (*byte)(unsafe.Pointer(&buf[0]))
+       bytes, err := ByteSliceFromString(name)
+       if err != nil {
+               return nil, err
+       }
+
+       // Magic sysctl: "setting" 0.3 to a string name
+       // lets you read back the array of integers form.
+       if err = sysctl([]_C_int{0, 3}, p, &n, &bytes[0], uintptr(len(name))); err != nil {
+               return nil, err
+       }
+       return buf[0 : n/siz], nil
+}
+
+func direntIno(buf []byte) (uint64, bool) {
+       return readInt(buf, unsafe.Offsetof(Dirent{}.Ino), unsafe.Sizeof(Dirent{}.Ino))
+}
+
+func direntReclen(buf []byte) (uint64, bool) {
+       return readInt(buf, unsafe.Offsetof(Dirent{}.Reclen), unsafe.Sizeof(Dirent{}.Reclen))
+}
+
+func direntNamlen(buf []byte) (uint64, bool) {
+       return readInt(buf, unsafe.Offsetof(Dirent{}.Namlen), unsafe.Sizeof(Dirent{}.Namlen))
+}
+
+//sys   ptrace(request int, pid int, addr uintptr, data uintptr) (err error)
+func PtraceAttach(pid int) (err error) { return ptrace(PT_ATTACH, pid, 0, 0) }
+func PtraceDetach(pid int) (err error) { return ptrace(PT_DETACH, pid, 0, 0) }
+
+const (
+       attrBitMapCount = 5
+       attrCmnFullpath = 0x08000000
+)
+
+type attrList struct {
+       bitmapCount uint16
+       _           uint16
+       CommonAttr  uint32
+       VolAttr     uint32
+       DirAttr     uint32
+       FileAttr    uint32
+       Forkattr    uint32
+}
+
+func getAttrList(path string, attrList attrList, attrBuf []byte, options uint) (attrs [][]byte, err error) {
+       if len(attrBuf) < 4 {
+               return nil, errorspkg.New("attrBuf too small")
+       }
+       attrList.bitmapCount = attrBitMapCount
+
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return nil, err
+       }
+
+       _, _, e1 := Syscall6(
+               SYS_GETATTRLIST,
+               uintptr(unsafe.Pointer(_p0)),
+               uintptr(unsafe.Pointer(&attrList)),
+               uintptr(unsafe.Pointer(&attrBuf[0])),
+               uintptr(len(attrBuf)),
+               uintptr(options),
+               0,
+       )
+       if e1 != 0 {
+               return nil, e1
+       }
+       size := *(*uint32)(unsafe.Pointer(&attrBuf[0]))
+
+       // dat is the section of attrBuf that contains valid data,
+       // without the 4 byte length header. All attribute offsets
+       // are relative to dat.
+       dat := attrBuf
+       if int(size) < len(attrBuf) {
+               dat = dat[:size]
+       }
+       dat = dat[4:] // remove length prefix
+
+       for i := uint32(0); int(i) < len(dat); {
+               header := dat[i:]
+               if len(header) < 8 {
+                       return attrs, errorspkg.New("truncated attribute header")
+               }
+               datOff := *(*int32)(unsafe.Pointer(&header[0]))
+               attrLen := *(*uint32)(unsafe.Pointer(&header[4]))
+               if datOff < 0 || uint32(datOff)+attrLen > uint32(len(dat)) {
+                       return attrs, errorspkg.New("truncated results; attrBuf too small")
+               }
+               end := uint32(datOff) + attrLen
+               attrs = append(attrs, dat[datOff:end])
+               i = end
+               if r := i % 4; r != 0 {
+                       i += (4 - r)
+               }
+       }
+       return
+}
+
+//sysnb pipe() (r int, w int, err error)
+
+func Pipe(p []int) (err error) {
+       if len(p) != 2 {
+               return EINVAL
+       }
+       p[0], p[1], err = pipe()
+       return
+}
+
+func Getfsstat(buf []Statfs_t, flags int) (n int, err error) {
+       var _p0 unsafe.Pointer
+       var bufsize uintptr
+       if len(buf) > 0 {
+               _p0 = unsafe.Pointer(&buf[0])
+               bufsize = unsafe.Sizeof(Statfs_t{}) * uintptr(len(buf))
+       }
+       r0, _, e1 := Syscall(SYS_GETFSSTAT64, uintptr(_p0), bufsize, uintptr(flags))
+       n = int(r0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+func utimensat(dirfd int, path string, times *[2]Timespec, flags int) error {
+       // Darwin doesn't support SYS_UTIMENSAT
+       return ENOSYS
+}
+
+/*
+ * Wrapped
+ */
+
+//sys  kill(pid int, signum int, posix int) (err error)
+
+func Kill(pid int, signum syscall.Signal) (err error) { return kill(pid, int(signum), 1) }
+
+//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.
+
+// 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 IoctlSetWinsize(fd int, req uint, value *Winsize) error {
+       return ioctl(fd, req, uintptr(unsafe.Pointer(value)))
+}
+
+func IoctlSetTermios(fd int, req uint, value *Termios) error {
+       return ioctl(fd, req, uintptr(unsafe.Pointer(value)))
+}
+
+// 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 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
+}
+
+/*
+ * Exposed directly
+ */
+//sys  Access(path string, mode uint32) (err error)
+//sys  Adjtime(delta *Timeval, olddelta *Timeval) (err error)
+//sys  Chdir(path string) (err error)
+//sys  Chflags(path string, flags int) (err error)
+//sys  Chmod(path string, mode uint32) (err error)
+//sys  Chown(path string, uid int, gid int) (err error)
+//sys  Chroot(path string) (err error)
+//sys  Close(fd int) (err error)
+//sys  Dup(fd int) (nfd int, err error)
+//sys  Dup2(from int, to int) (err error)
+//sys  Exchangedata(path1 string, path2 string, options int) (err error)
+//sys  Exit(code int)
+//sys  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_FSTAT64
+//sys  Fstatfs(fd int, stat *Statfs_t) (err error) = SYS_FSTATFS64
+//sys  Fsync(fd int) (err error)
+//sys  Ftruncate(fd int, length int64) (err error)
+//sys  Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) = SYS_GETDIRENTRIES64
+//sys  Getdtablesize() (size int)
+//sysnb        Getegid() (egid int)
+//sysnb        Geteuid() (uid int)
+//sysnb        Getgid() (gid int)
+//sysnb        Getpgid(pid int) (pgid int, err error)
+//sysnb        Getpgrp() (pgrp int)
+//sysnb        Getpid() (pid int)
+//sysnb        Getppid() (ppid int)
+//sys  Getpriority(which int, who int) (prio int, err error)
+//sysnb        Getrlimit(which int, lim *Rlimit) (err error)
+//sysnb        Getrusage(who int, rusage *Rusage) (err error)
+//sysnb        Getsid(pid int) (sid int, err error)
+//sysnb        Getuid() (uid int)
+//sysnb        Issetugid() (tainted bool)
+//sys  Kqueue() (fd int, err error)
+//sys  Lchown(path string, uid int, gid int) (err error)
+//sys  Link(path string, link string) (err error)
+//sys  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)
+//sys  Mknod(path string, mode uint32, dev int) (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  Setegid(egid int) (err error)
+//sysnb        Seteuid(euid int) (err error)
+//sysnb        Setgid(gid int) (err error)
+//sys  Setlogin(name string) (err error)
+//sysnb        Setpgid(pid int, pgid int) (err error)
+//sys  Setpriority(which int, who int, prio int) (err error)
+//sys  Setprivexec(flag int) (err error)
+//sysnb        Setregid(rgid int, egid int) (err error)
+//sysnb        Setreuid(ruid int, euid int) (err error)
+//sysnb        Setrlimit(which int, lim *Rlimit) (err error)
+//sysnb        Setsid() (pid int, err error)
+//sysnb        Settimeofday(tp *Timeval) (err error)
+//sysnb        Setuid(uid int) (err error)
+//sys  Stat(path string, stat *Stat_t) (err error) = SYS_STAT64
+//sys  Statfs(path string, stat *Statfs_t) (err error) = SYS_STATFS64
+//sys  Symlink(path string, link string) (err error)
+//sys  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)
+//sys   munmap(addr uintptr, length uintptr) (err error)
+//sys  readlen(fd int, buf *byte, nbuf int) (n int, err error) = SYS_READ
+//sys  writelen(fd int, buf *byte, nbuf int) (n int, err error) = SYS_WRITE
+
+/*
+ * Unimplemented
+ */
+// Profil
+// Sigaction
+// Sigprocmask
+// Getlogin
+// Sigpending
+// Sigaltstack
+// Ioctl
+// Reboot
+// Execve
+// Vfork
+// Sbrk
+// Sstk
+// Ovadvise
+// Mincore
+// Setitimer
+// Swapon
+// Select
+// Sigsuspend
+// Readv
+// Writev
+// Nfssvc
+// Getfh
+// Quotactl
+// Mount
+// Csops
+// Waitid
+// Add_profil
+// Kdebug_trace
+// Sigreturn
+// Atsocket
+// Kqueue_from_portset_np
+// Kqueue_portset
+// Getattrlist
+// Setattrlist
+// Getdirentriesattr
+// Searchfs
+// Delete
+// Copyfile
+// Poll
+// Watchevent
+// Waitevent
+// Modwatch
+// Getxattr
+// Fgetxattr
+// Setxattr
+// Fsetxattr
+// Removexattr
+// Fremovexattr
+// Listxattr
+// Flistxattr
+// Fsctl
+// Initgroups
+// Posix_spawn
+// Nfsclnt
+// Fhopen
+// Minherit
+// Semsys
+// Msgsys
+// Shmsys
+// Semctl
+// Semget
+// Semop
+// Msgctl
+// Msgget
+// Msgsnd
+// Msgrcv
+// Shmat
+// Shmctl
+// Shmdt
+// Shmget
+// Shm_open
+// Shm_unlink
+// Sem_open
+// Sem_close
+// Sem_unlink
+// Sem_wait
+// Sem_trywait
+// Sem_post
+// Sem_getvalue
+// Sem_init
+// Sem_destroy
+// Open_extended
+// Umask_extended
+// Stat_extended
+// Lstat_extended
+// Fstat_extended
+// Chmod_extended
+// Fchmod_extended
+// Access_extended
+// Settid
+// Gettid
+// Setsgroups
+// Getsgroups
+// Setwgroups
+// Getwgroups
+// Mkfifo_extended
+// Mkdir_extended
+// Identitysvc
+// Shared_region_check_np
+// Shared_region_map_np
+// __pthread_mutex_destroy
+// __pthread_mutex_init
+// __pthread_mutex_lock
+// __pthread_mutex_trylock
+// __pthread_mutex_unlock
+// __pthread_cond_init
+// __pthread_cond_destroy
+// __pthread_cond_broadcast
+// __pthread_cond_signal
+// Setsid_with_pid
+// __pthread_cond_timedwait
+// Aio_fsync
+// Aio_return
+// Aio_suspend
+// Aio_cancel
+// Aio_error
+// Aio_read
+// Aio_write
+// Lio_listio
+// __pthread_cond_wait
+// Iopolicysys
+// __pthread_kill
+// __pthread_sigmask
+// __sigwait
+// __disable_threadsignal
+// __pthread_markcancel
+// __pthread_canceled
+// __semwait_signal
+// Proc_info
+// sendfile
+// Stat64_extended
+// Lstat64_extended
+// Fstat64_extended
+// __pthread_chdir
+// __pthread_fchdir
+// Audit
+// Auditon
+// Getauid
+// Setauid
+// Getaudit
+// Setaudit
+// Getaudit_addr
+// Setaudit_addr
+// Auditctl
+// Bsdthread_create
+// Bsdthread_terminate
+// Stack_snapshot
+// Bsdthread_register
+// Workq_open
+// Workq_ops
+// __mac_execve
+// __mac_syscall
+// __mac_get_file
+// __mac_set_file
+// __mac_get_link
+// __mac_set_link
+// __mac_get_proc
+// __mac_set_proc
+// __mac_get_fd
+// __mac_set_fd
+// __mac_get_pid
+// __mac_get_lcid
+// __mac_get_lctx
+// __mac_set_lctx
+// Setlcid
+// Read_nocancel
+// Write_nocancel
+// Open_nocancel
+// Close_nocancel
+// Wait4_nocancel
+// Recvmsg_nocancel
+// Sendmsg_nocancel
+// Recvfrom_nocancel
+// Accept_nocancel
+// Fcntl_nocancel
+// Select_nocancel
+// Fsync_nocancel
+// Connect_nocancel
+// Sigsuspend_nocancel
+// Readv_nocancel
+// Writev_nocancel
+// Sendto_nocancel
+// Pread_nocancel
+// Pwrite_nocancel
+// Waitid_nocancel
+// Poll_nocancel
+// Msgsnd_nocancel
+// Msgrcv_nocancel
+// Sem_wait_nocancel
+// Aio_suspend_nocancel
+// __sigwait_nocancel
+// __semwait_signal_nocancel
+// __mac_mount
+// __mac_get_mount
+// __mac_getfsstat
diff --git a/vendor/golang.org/x/sys/unix/syscall_darwin_386.go b/vendor/golang.org/x/sys/unix/syscall_darwin_386.go
new file mode 100644 (file)
index 0000000..c172a3d
--- /dev/null
@@ -0,0 +1,77 @@
+// Copyright 2009 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build 386,darwin
+
+package unix
+
+import (
+       "syscall"
+       "unsafe"
+)
+
+func Getpagesize() int { return 4096 }
+
+func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) }
+
+func NsecToTimespec(nsec int64) (ts Timespec) {
+       ts.Sec = int32(nsec / 1e9)
+       ts.Nsec = int32(nsec % 1e9)
+       return
+}
+
+func NsecToTimeval(nsec int64) (tv Timeval) {
+       nsec += 999 // round up to microsecond
+       tv.Usec = int32(nsec % 1e9 / 1e3)
+       tv.Sec = int32(nsec / 1e9)
+       return
+}
+
+//sysnb        gettimeofday(tp *Timeval) (sec int32, usec int32, err error)
+func Gettimeofday(tv *Timeval) (err error) {
+       // The tv passed to gettimeofday must be non-nil
+       // but is otherwise unused.  The answers come back
+       // in the two registers.
+       sec, usec, err := gettimeofday(tv)
+       tv.Sec = int32(sec)
+       tv.Usec = int32(usec)
+       return err
+}
+
+func SetKevent(k *Kevent_t, fd, mode, flags int) {
+       k.Ident = uint32(fd)
+       k.Filter = int16(mode)
+       k.Flags = uint16(flags)
+}
+
+func (iov *Iovec) SetLen(length int) {
+       iov.Len = uint32(length)
+}
+
+func (msghdr *Msghdr) SetControllen(length int) {
+       msghdr.Controllen = uint32(length)
+}
+
+func (cmsg *Cmsghdr) SetLen(length int) {
+       cmsg.Len = uint32(length)
+}
+
+func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {
+       var length = uint64(count)
+
+       _, _, e1 := Syscall9(SYS_SENDFILE, uintptr(infd), uintptr(outfd), uintptr(*offset), uintptr(*offset>>32), uintptr(unsafe.Pointer(&length)), 0, 0, 0, 0)
+
+       written = int(length)
+
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno)
+
+// SYS___SYSCTL is used by syscall_bsd.go for all BSDs, but in modern versions
+// of darwin/386 the syscall is called sysctl instead of __sysctl.
+const SYS___SYSCTL = SYS_SYSCTL
diff --git a/vendor/golang.org/x/sys/unix/syscall_darwin_amd64.go b/vendor/golang.org/x/sys/unix/syscall_darwin_amd64.go
new file mode 100644 (file)
index 0000000..c6c99c1
--- /dev/null
@@ -0,0 +1,77 @@
+// Copyright 2009 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build amd64,darwin
+
+package unix
+
+import (
+       "syscall"
+       "unsafe"
+)
+
+func Getpagesize() int { return 4096 }
+
+func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) }
+
+func NsecToTimespec(nsec int64) (ts Timespec) {
+       ts.Sec = nsec / 1e9
+       ts.Nsec = nsec % 1e9
+       return
+}
+
+func NsecToTimeval(nsec int64) (tv Timeval) {
+       nsec += 999 // round up to microsecond
+       tv.Usec = int32(nsec % 1e9 / 1e3)
+       tv.Sec = int64(nsec / 1e9)
+       return
+}
+
+//sysnb        gettimeofday(tp *Timeval) (sec int64, usec int32, err error)
+func Gettimeofday(tv *Timeval) (err error) {
+       // The tv passed to gettimeofday must be non-nil
+       // but is otherwise unused.  The answers come back
+       // in the two registers.
+       sec, usec, err := gettimeofday(tv)
+       tv.Sec = sec
+       tv.Usec = usec
+       return err
+}
+
+func SetKevent(k *Kevent_t, fd, mode, flags int) {
+       k.Ident = uint64(fd)
+       k.Filter = int16(mode)
+       k.Flags = uint16(flags)
+}
+
+func (iov *Iovec) SetLen(length int) {
+       iov.Len = uint64(length)
+}
+
+func (msghdr *Msghdr) SetControllen(length int) {
+       msghdr.Controllen = uint32(length)
+}
+
+func (cmsg *Cmsghdr) SetLen(length int) {
+       cmsg.Len = uint32(length)
+}
+
+func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {
+       var length = uint64(count)
+
+       _, _, e1 := Syscall6(SYS_SENDFILE, uintptr(infd), uintptr(outfd), uintptr(*offset), uintptr(unsafe.Pointer(&length)), 0, 0)
+
+       written = int(length)
+
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno)
+
+// SYS___SYSCTL is used by syscall_bsd.go for all BSDs, but in modern versions
+// of darwin/amd64 the syscall is called sysctl instead of __sysctl.
+const SYS___SYSCTL = SYS_SYSCTL
diff --git a/vendor/golang.org/x/sys/unix/syscall_darwin_arm.go b/vendor/golang.org/x/sys/unix/syscall_darwin_arm.go
new file mode 100644 (file)
index 0000000..d286cf4
--- /dev/null
@@ -0,0 +1,71 @@
+// Copyright 2015 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package unix
+
+import (
+       "syscall"
+       "unsafe"
+)
+
+func Getpagesize() int { return 4096 }
+
+func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) }
+
+func NsecToTimespec(nsec int64) (ts Timespec) {
+       ts.Sec = int32(nsec / 1e9)
+       ts.Nsec = int32(nsec % 1e9)
+       return
+}
+
+func NsecToTimeval(nsec int64) (tv Timeval) {
+       nsec += 999 // round up to microsecond
+       tv.Usec = int32(nsec % 1e9 / 1e3)
+       tv.Sec = int32(nsec / 1e9)
+       return
+}
+
+//sysnb        gettimeofday(tp *Timeval) (sec int32, usec int32, err error)
+func Gettimeofday(tv *Timeval) (err error) {
+       // The tv passed to gettimeofday must be non-nil
+       // but is otherwise unused.  The answers come back
+       // in the two registers.
+       sec, usec, err := gettimeofday(tv)
+       tv.Sec = int32(sec)
+       tv.Usec = int32(usec)
+       return err
+}
+
+func SetKevent(k *Kevent_t, fd, mode, flags int) {
+       k.Ident = uint32(fd)
+       k.Filter = int16(mode)
+       k.Flags = uint16(flags)
+}
+
+func (iov *Iovec) SetLen(length int) {
+       iov.Len = uint32(length)
+}
+
+func (msghdr *Msghdr) SetControllen(length int) {
+       msghdr.Controllen = uint32(length)
+}
+
+func (cmsg *Cmsghdr) SetLen(length int) {
+       cmsg.Len = uint32(length)
+}
+
+func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {
+       var length = uint64(count)
+
+       _, _, e1 := Syscall9(SYS_SENDFILE, uintptr(infd), uintptr(outfd), uintptr(*offset), uintptr(*offset>>32), uintptr(unsafe.Pointer(&length)), 0, 0, 0, 0)
+
+       written = int(length)
+
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) // sic
diff --git a/vendor/golang.org/x/sys/unix/syscall_darwin_arm64.go b/vendor/golang.org/x/sys/unix/syscall_darwin_arm64.go
new file mode 100644 (file)
index 0000000..c33905c
--- /dev/null
@@ -0,0 +1,77 @@
+// Copyright 2015 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build arm64,darwin
+
+package unix
+
+import (
+       "syscall"
+       "unsafe"
+)
+
+func Getpagesize() int { return 16384 }
+
+func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) }
+
+func NsecToTimespec(nsec int64) (ts Timespec) {
+       ts.Sec = nsec / 1e9
+       ts.Nsec = nsec % 1e9
+       return
+}
+
+func NsecToTimeval(nsec int64) (tv Timeval) {
+       nsec += 999 // round up to microsecond
+       tv.Usec = int32(nsec % 1e9 / 1e3)
+       tv.Sec = int64(nsec / 1e9)
+       return
+}
+
+//sysnb        gettimeofday(tp *Timeval) (sec int64, usec int32, err error)
+func Gettimeofday(tv *Timeval) (err error) {
+       // The tv passed to gettimeofday must be non-nil
+       // but is otherwise unused.  The answers come back
+       // in the two registers.
+       sec, usec, err := gettimeofday(tv)
+       tv.Sec = sec
+       tv.Usec = usec
+       return err
+}
+
+func SetKevent(k *Kevent_t, fd, mode, flags int) {
+       k.Ident = uint64(fd)
+       k.Filter = int16(mode)
+       k.Flags = uint16(flags)
+}
+
+func (iov *Iovec) SetLen(length int) {
+       iov.Len = uint64(length)
+}
+
+func (msghdr *Msghdr) SetControllen(length int) {
+       msghdr.Controllen = uint32(length)
+}
+
+func (cmsg *Cmsghdr) SetLen(length int) {
+       cmsg.Len = uint32(length)
+}
+
+func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {
+       var length = uint64(count)
+
+       _, _, e1 := Syscall6(SYS_SENDFILE, uintptr(infd), uintptr(outfd), uintptr(*offset), uintptr(unsafe.Pointer(&length)), 0, 0)
+
+       written = int(length)
+
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) // sic
+
+// SYS___SYSCTL is used by syscall_bsd.go for all BSDs, but in modern versions
+// of darwin/arm64 the syscall is called sysctl instead of __sysctl.
+const SYS___SYSCTL = SYS_SYSCTL
diff --git a/vendor/golang.org/x/sys/unix/syscall_dragonfly.go b/vendor/golang.org/x/sys/unix/syscall_dragonfly.go
new file mode 100644 (file)
index 0000000..3a48337
--- /dev/null
@@ -0,0 +1,415 @@
+// 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.
+
+// DragonFly BSD system calls.
+// This file is compiled as ordinary Go code,
+// but it is also input to mksyscall,
+// which parses the //sys lines and generates system call stubs.
+// Note that sometimes we use a lowercase //sys name and wrap
+// it in our own nicer implementation, either here or in
+// syscall_bsd.go or syscall_unix.go.
+
+package unix
+
+import "unsafe"
+
+type SockaddrDatalink struct {
+       Len    uint8
+       Family uint8
+       Index  uint16
+       Type   uint8
+       Nlen   uint8
+       Alen   uint8
+       Slen   uint8
+       Data   [12]int8
+       Rcf    uint16
+       Route  [16]uint16
+       raw    RawSockaddrDatalink
+}
+
+// Translate "kern.hostname" to []_C_int{0,1,2,3}.
+func nametomib(name string) (mib []_C_int, err error) {
+       const siz = unsafe.Sizeof(mib[0])
+
+       // NOTE(rsc): It seems strange to set the buffer to have
+       // size CTL_MAXNAME+2 but use only CTL_MAXNAME
+       // as the size. I don't know why the +2 is here, but the
+       // kernel uses +2 for its own implementation of this function.
+       // I am scared that if we don't include the +2 here, the kernel
+       // will silently write 2 words farther than we specify
+       // and we'll get memory corruption.
+       var buf [CTL_MAXNAME + 2]_C_int
+       n := uintptr(CTL_MAXNAME) * siz
+
+       p := (*byte)(unsafe.Pointer(&buf[0]))
+       bytes, err := ByteSliceFromString(name)
+       if err != nil {
+               return nil, err
+       }
+
+       // Magic sysctl: "setting" 0.3 to a string name
+       // lets you read back the array of integers form.
+       if err = sysctl([]_C_int{0, 3}, p, &n, &bytes[0], uintptr(len(name))); err != nil {
+               return nil, err
+       }
+       return buf[0 : n/siz], nil
+}
+
+func direntIno(buf []byte) (uint64, bool) {
+       return readInt(buf, unsafe.Offsetof(Dirent{}.Fileno), unsafe.Sizeof(Dirent{}.Fileno))
+}
+
+func direntReclen(buf []byte) (uint64, bool) {
+       namlen, ok := direntNamlen(buf)
+       if !ok {
+               return 0, false
+       }
+       return (16 + namlen + 1 + 7) &^ 7, true
+}
+
+func direntNamlen(buf []byte) (uint64, bool) {
+       return readInt(buf, unsafe.Offsetof(Dirent{}.Namlen), unsafe.Sizeof(Dirent{}.Namlen))
+}
+
+//sysnb pipe() (r int, w int, err error)
+
+func Pipe(p []int) (err error) {
+       if len(p) != 2 {
+               return EINVAL
+       }
+       p[0], p[1], err = pipe()
+       return
+}
+
+//sys  extpread(fd int, p []byte, flags int, offset int64) (n int, err error)
+func Pread(fd int, p []byte, offset int64) (n int, err error) {
+       return extpread(fd, p, 0, offset)
+}
+
+//sys  extpwrite(fd int, p []byte, flags int, offset int64) (n int, err error)
+func Pwrite(fd int, p []byte, offset int64) (n int, err error) {
+       return extpwrite(fd, p, 0, offset)
+}
+
+func Accept4(fd, flags int) (nfd int, sa Sockaddr, err error) {
+       var rsa RawSockaddrAny
+       var len _Socklen = SizeofSockaddrAny
+       nfd, err = accept4(fd, &rsa, &len, flags)
+       if err != nil {
+               return
+       }
+       if len > SizeofSockaddrAny {
+               panic("RawSockaddrAny too small")
+       }
+       sa, err = anyToSockaddr(&rsa)
+       if err != nil {
+               Close(nfd)
+               nfd = 0
+       }
+       return
+}
+
+func Getfsstat(buf []Statfs_t, flags int) (n int, err error) {
+       var _p0 unsafe.Pointer
+       var bufsize uintptr
+       if len(buf) > 0 {
+               _p0 = unsafe.Pointer(&buf[0])
+               bufsize = unsafe.Sizeof(Statfs_t{}) * uintptr(len(buf))
+       }
+       r0, _, e1 := Syscall(SYS_GETFSSTAT, uintptr(_p0), bufsize, uintptr(flags))
+       n = int(r0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+/*
+ * Exposed directly
+ */
+//sys  Access(path string, mode uint32) (err error)
+//sys  Adjtime(delta *Timeval, olddelta *Timeval) (err error)
+//sys  Chdir(path string) (err error)
+//sys  Chflags(path string, flags int) (err error)
+//sys  Chmod(path string, mode uint32) (err error)
+//sys  Chown(path string, uid int, gid int) (err error)
+//sys  Chroot(path string) (err error)
+//sys  Close(fd int) (err error)
+//sys  Dup(fd int) (nfd int, err error)
+//sys  Dup2(from int, to int) (err error)
+//sys  Exit(code int)
+//sys  Fchdir(fd int) (err error)
+//sys  Fchflags(fd int, flags int) (err error)
+//sys  Fchmod(fd int, mode uint32) (err error)
+//sys  Fchown(fd int, uid int, gid int) (err error)
+//sys  Flock(fd int, how int) (err error)
+//sys  Fpathconf(fd int, name int) (val int, err error)
+//sys  Fstat(fd int, stat *Stat_t) (err error)
+//sys  Fstatfs(fd int, stat *Statfs_t) (err error)
+//sys  Fsync(fd int) (err error)
+//sys  Ftruncate(fd int, length int64) (err error)
+//sys  Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error)
+//sys  Getdtablesize() (size int)
+//sysnb        Getegid() (egid int)
+//sysnb        Geteuid() (uid int)
+//sysnb        Getgid() (gid int)
+//sysnb        Getpgid(pid int) (pgid int, err error)
+//sysnb        Getpgrp() (pgrp int)
+//sysnb        Getpid() (pid int)
+//sysnb        Getppid() (ppid int)
+//sys  Getpriority(which int, who int) (prio int, err error)
+//sysnb        Getrlimit(which int, lim *Rlimit) (err error)
+//sysnb        Getrusage(who int, rusage *Rusage) (err error)
+//sysnb        Getsid(pid int) (sid int, err error)
+//sysnb        Gettimeofday(tv *Timeval) (err error)
+//sysnb        Getuid() (uid int)
+//sys  Issetugid() (tainted bool)
+//sys  Kill(pid int, signum syscall.Signal) (err error)
+//sys  Kqueue() (fd int, err error)
+//sys  Lchown(path string, uid int, gid int) (err error)
+//sys  Link(path string, link string) (err error)
+//sys  Listen(s int, backlog int) (err error)
+//sys  Lstat(path string, stat *Stat_t) (err error)
+//sys  Mkdir(path string, mode uint32) (err error)
+//sys  Mkfifo(path string, mode uint32) (err error)
+//sys  Mknod(path string, mode uint32, dev int) (err error)
+//sys  Nanosleep(time *Timespec, leftover *Timespec) (err error)
+//sys  Open(path string, mode int, perm uint32) (fd int, err error)
+//sys  Pathconf(path string, name int) (val int, err error)
+//sys  read(fd int, p []byte) (n int, err error)
+//sys  Readlink(path string, buf []byte) (n int, err error)
+//sys  Rename(from string, to string) (err error)
+//sys  Revoke(path string) (err error)
+//sys  Rmdir(path string) (err error)
+//sys  Seek(fd int, offset int64, whence int) (newoffset int64, err error) = SYS_LSEEK
+//sys  Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error)
+//sysnb        Setegid(egid int) (err error)
+//sysnb        Seteuid(euid int) (err error)
+//sysnb        Setgid(gid int) (err error)
+//sys  Setlogin(name string) (err error)
+//sysnb        Setpgid(pid int, pgid int) (err error)
+//sys  Setpriority(which int, who int, prio int) (err error)
+//sysnb        Setregid(rgid int, egid int) (err error)
+//sysnb        Setreuid(ruid int, euid int) (err error)
+//sysnb        Setresgid(rgid int, egid int, sgid int) (err error)
+//sysnb        Setresuid(ruid int, euid int, suid int) (err error)
+//sysnb        Setrlimit(which int, lim *Rlimit) (err error)
+//sysnb        Setsid() (pid int, err error)
+//sysnb        Settimeofday(tp *Timeval) (err error)
+//sysnb        Setuid(uid int) (err error)
+//sys  Stat(path string, stat *Stat_t) (err error)
+//sys  Statfs(path string, stat *Statfs_t) (err error)
+//sys  Symlink(path string, link string) (err error)
+//sys  Sync() (err error)
+//sys  Truncate(path string, length int64) (err error)
+//sys  Umask(newmask int) (oldmask int)
+//sys  Undelete(path string) (err error)
+//sys  Unlink(path string) (err error)
+//sys  Unmount(path string, flags int) (err error)
+//sys  write(fd int, p []byte) (n int, err error)
+//sys   mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error)
+//sys   munmap(addr uintptr, length uintptr) (err error)
+//sys  readlen(fd int, buf *byte, nbuf int) (n int, err error) = SYS_READ
+//sys  writelen(fd int, buf *byte, nbuf int) (n int, err error) = SYS_WRITE
+//sys  accept4(fd int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (nfd int, err error)
+//sys  utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error)
+
+/*
+ * Unimplemented
+ * TODO(jsing): Update this list for DragonFly.
+ */
+// Profil
+// Sigaction
+// Sigprocmask
+// Getlogin
+// Sigpending
+// Sigaltstack
+// Ioctl
+// Reboot
+// Execve
+// Vfork
+// Sbrk
+// Sstk
+// Ovadvise
+// Mincore
+// Setitimer
+// Swapon
+// Select
+// Sigsuspend
+// Readv
+// Writev
+// Nfssvc
+// Getfh
+// Quotactl
+// Mount
+// Csops
+// Waitid
+// Add_profil
+// Kdebug_trace
+// Sigreturn
+// Atsocket
+// Kqueue_from_portset_np
+// Kqueue_portset
+// Getattrlist
+// Setattrlist
+// Getdirentriesattr
+// Searchfs
+// Delete
+// Copyfile
+// Poll
+// Watchevent
+// Waitevent
+// Modwatch
+// Getxattr
+// Fgetxattr
+// Setxattr
+// Fsetxattr
+// Removexattr
+// Fremovexattr
+// Listxattr
+// Flistxattr
+// Fsctl
+// Initgroups
+// Posix_spawn
+// Nfsclnt
+// Fhopen
+// Minherit
+// Semsys
+// Msgsys
+// Shmsys
+// Semctl
+// Semget
+// Semop
+// Msgctl
+// Msgget
+// Msgsnd
+// Msgrcv
+// Shmat
+// Shmctl
+// Shmdt
+// Shmget
+// Shm_open
+// Shm_unlink
+// Sem_open
+// Sem_close
+// Sem_unlink
+// Sem_wait
+// Sem_trywait
+// Sem_post
+// Sem_getvalue
+// Sem_init
+// Sem_destroy
+// Open_extended
+// Umask_extended
+// Stat_extended
+// Lstat_extended
+// Fstat_extended
+// Chmod_extended
+// Fchmod_extended
+// Access_extended
+// Settid
+// Gettid
+// Setsgroups
+// Getsgroups
+// Setwgroups
+// Getwgroups
+// Mkfifo_extended
+// Mkdir_extended
+// Identitysvc
+// Shared_region_check_np
+// Shared_region_map_np
+// __pthread_mutex_destroy
+// __pthread_mutex_init
+// __pthread_mutex_lock
+// __pthread_mutex_trylock
+// __pthread_mutex_unlock
+// __pthread_cond_init
+// __pthread_cond_destroy
+// __pthread_cond_broadcast
+// __pthread_cond_signal
+// Setsid_with_pid
+// __pthread_cond_timedwait
+// Aio_fsync
+// Aio_return
+// Aio_suspend
+// Aio_cancel
+// Aio_error
+// Aio_read
+// Aio_write
+// Lio_listio
+// __pthread_cond_wait
+// Iopolicysys
+// __pthread_kill
+// __pthread_sigmask
+// __sigwait
+// __disable_threadsignal
+// __pthread_markcancel
+// __pthread_canceled
+// __semwait_signal
+// Proc_info
+// Stat64_extended
+// Lstat64_extended
+// Fstat64_extended
+// __pthread_chdir
+// __pthread_fchdir
+// Audit
+// Auditon
+// Getauid
+// Setauid
+// Getaudit
+// Setaudit
+// Getaudit_addr
+// Setaudit_addr
+// Auditctl
+// Bsdthread_create
+// Bsdthread_terminate
+// Stack_snapshot
+// Bsdthread_register
+// Workq_open
+// Workq_ops
+// __mac_execve
+// __mac_syscall
+// __mac_get_file
+// __mac_set_file
+// __mac_get_link
+// __mac_set_link
+// __mac_get_proc
+// __mac_set_proc
+// __mac_get_fd
+// __mac_set_fd
+// __mac_get_pid
+// __mac_get_lcid
+// __mac_get_lctx
+// __mac_set_lctx
+// Setlcid
+// Read_nocancel
+// Write_nocancel
+// Open_nocancel
+// Close_nocancel
+// Wait4_nocancel
+// Recvmsg_nocancel
+// Sendmsg_nocancel
+// Recvfrom_nocancel
+// Accept_nocancel
+// Fcntl_nocancel
+// Select_nocancel
+// Fsync_nocancel
+// Connect_nocancel
+// Sigsuspend_nocancel
+// Readv_nocancel
+// Writev_nocancel
+// Sendto_nocancel
+// Pread_nocancel
+// Pwrite_nocancel
+// Waitid_nocancel
+// Poll_nocancel
+// Msgsnd_nocancel
+// Msgrcv_nocancel
+// Sem_wait_nocancel
+// Aio_suspend_nocancel
+// __sigwait_nocancel
+// __semwait_signal_nocancel
+// __mac_mount
+// __mac_get_mount
+// __mac_getfsstat
diff --git a/vendor/golang.org/x/sys/unix/syscall_dragonfly_amd64.go b/vendor/golang.org/x/sys/unix/syscall_dragonfly_amd64.go
new file mode 100644 (file)
index 0000000..da7cb79
--- /dev/null
@@ -0,0 +1,61 @@
+// Copyright 2009 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build amd64,dragonfly
+
+package unix
+
+import (
+       "syscall"
+       "unsafe"
+)
+
+func Getpagesize() int { return 4096 }
+
+func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) }
+
+func NsecToTimespec(nsec int64) (ts Timespec) {
+       ts.Sec = nsec / 1e9
+       ts.Nsec = nsec % 1e9
+       return
+}
+
+func NsecToTimeval(nsec int64) (tv Timeval) {
+       nsec += 999 // round up to microsecond
+       tv.Usec = nsec % 1e9 / 1e3
+       tv.Sec = int64(nsec / 1e9)
+       return
+}
+
+func SetKevent(k *Kevent_t, fd, mode, flags int) {
+       k.Ident = uint64(fd)
+       k.Filter = int16(mode)
+       k.Flags = uint16(flags)
+}
+
+func (iov *Iovec) SetLen(length int) {
+       iov.Len = uint64(length)
+}
+
+func (msghdr *Msghdr) SetControllen(length int) {
+       msghdr.Controllen = uint32(length)
+}
+
+func (cmsg *Cmsghdr) SetLen(length int) {
+       cmsg.Len = uint32(length)
+}
+
+func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {
+       var writtenOut uint64 = 0
+       _, _, e1 := Syscall9(SYS_SENDFILE, uintptr(infd), uintptr(outfd), uintptr(*offset), uintptr(count), 0, uintptr(unsafe.Pointer(&writtenOut)), 0, 0, 0)
+
+       written = int(writtenOut)
+
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno)
diff --git a/vendor/golang.org/x/sys/unix/syscall_freebsd.go b/vendor/golang.org/x/sys/unix/syscall_freebsd.go
new file mode 100644 (file)
index 0000000..d26e52e
--- /dev/null
@@ -0,0 +1,708 @@
+// Copyright 2009,2010 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// FreeBSD system calls.
+// This file is compiled as ordinary Go code,
+// but it is also input to mksyscall,
+// which parses the //sys lines and generates system call stubs.
+// Note that sometimes we use a lowercase //sys name and wrap
+// it in our own nicer implementation, either here or in
+// syscall_bsd.go or syscall_unix.go.
+
+package unix
+
+import "unsafe"
+
+type SockaddrDatalink struct {
+       Len    uint8
+       Family uint8
+       Index  uint16
+       Type   uint8
+       Nlen   uint8
+       Alen   uint8
+       Slen   uint8
+       Data   [46]int8
+       raw    RawSockaddrDatalink
+}
+
+// Translate "kern.hostname" to []_C_int{0,1,2,3}.
+func nametomib(name string) (mib []_C_int, err error) {
+       const siz = unsafe.Sizeof(mib[0])
+
+       // NOTE(rsc): It seems strange to set the buffer to have
+       // size CTL_MAXNAME+2 but use only CTL_MAXNAME
+       // as the size.  I don't know why the +2 is here, but the
+       // kernel uses +2 for its own implementation of this function.
+       // I am scared that if we don't include the +2 here, the kernel
+       // will silently write 2 words farther than we specify
+       // and we'll get memory corruption.
+       var buf [CTL_MAXNAME + 2]_C_int
+       n := uintptr(CTL_MAXNAME) * siz
+
+       p := (*byte)(unsafe.Pointer(&buf[0]))
+       bytes, err := ByteSliceFromString(name)
+       if err != nil {
+               return nil, err
+       }
+
+       // Magic sysctl: "setting" 0.3 to a string name
+       // lets you read back the array of integers form.
+       if err = sysctl([]_C_int{0, 3}, p, &n, &bytes[0], uintptr(len(name))); err != nil {
+               return nil, err
+       }
+       return buf[0 : n/siz], nil
+}
+
+func direntIno(buf []byte) (uint64, bool) {
+       return readInt(buf, unsafe.Offsetof(Dirent{}.Fileno), unsafe.Sizeof(Dirent{}.Fileno))
+}
+
+func direntReclen(buf []byte) (uint64, bool) {
+       return readInt(buf, unsafe.Offsetof(Dirent{}.Reclen), unsafe.Sizeof(Dirent{}.Reclen))
+}
+
+func direntNamlen(buf []byte) (uint64, bool) {
+       return readInt(buf, unsafe.Offsetof(Dirent{}.Namlen), unsafe.Sizeof(Dirent{}.Namlen))
+}
+
+//sysnb pipe() (r int, w int, err error)
+
+func Pipe(p []int) (err error) {
+       if len(p) != 2 {
+               return EINVAL
+       }
+       p[0], p[1], err = pipe()
+       return
+}
+
+func GetsockoptIPMreqn(fd, level, opt int) (*IPMreqn, error) {
+       var value IPMreqn
+       vallen := _Socklen(SizeofIPMreqn)
+       errno := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen)
+       return &value, errno
+}
+
+func SetsockoptIPMreqn(fd, level, opt int, mreq *IPMreqn) (err error) {
+       return setsockopt(fd, level, opt, unsafe.Pointer(mreq), unsafe.Sizeof(*mreq))
+}
+
+func Accept4(fd, flags int) (nfd int, sa Sockaddr, err error) {
+       var rsa RawSockaddrAny
+       var len _Socklen = SizeofSockaddrAny
+       nfd, err = accept4(fd, &rsa, &len, flags)
+       if err != nil {
+               return
+       }
+       if len > SizeofSockaddrAny {
+               panic("RawSockaddrAny too small")
+       }
+       sa, err = anyToSockaddr(&rsa)
+       if err != nil {
+               Close(nfd)
+               nfd = 0
+       }
+       return
+}
+
+func Getfsstat(buf []Statfs_t, flags int) (n int, err error) {
+       var _p0 unsafe.Pointer
+       var bufsize uintptr
+       if len(buf) > 0 {
+               _p0 = unsafe.Pointer(&buf[0])
+               bufsize = unsafe.Sizeof(Statfs_t{}) * uintptr(len(buf))
+       }
+       r0, _, e1 := Syscall(SYS_GETFSSTAT, uintptr(_p0), bufsize, uintptr(flags))
+       n = int(r0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+// Derive extattr namespace and attribute name
+
+func xattrnamespace(fullattr string) (ns int, attr string, err error) {
+       s := -1
+       for idx, val := range fullattr {
+               if val == '.' {
+                       s = idx
+                       break
+               }
+       }
+
+       if s == -1 {
+               return -1, "", ENOATTR
+       }
+
+       namespace := fullattr[0:s]
+       attr = fullattr[s+1:]
+
+       switch namespace {
+       case "user":
+               return EXTATTR_NAMESPACE_USER, attr, nil
+       case "system":
+               return EXTATTR_NAMESPACE_SYSTEM, attr, nil
+       default:
+               return -1, "", ENOATTR
+       }
+}
+
+func initxattrdest(dest []byte, idx int) (d unsafe.Pointer) {
+       if len(dest) > idx {
+               return unsafe.Pointer(&dest[idx])
+       } else {
+               return unsafe.Pointer(_zero)
+       }
+}
+
+// FreeBSD implements its own syscalls to handle extended attributes
+
+func Getxattr(file string, attr string, dest []byte) (sz int, err error) {
+       d := initxattrdest(dest, 0)
+       destsize := len(dest)
+
+       nsid, a, err := xattrnamespace(attr)
+       if err != nil {
+               return -1, err
+       }
+
+       return ExtattrGetFile(file, nsid, a, uintptr(d), destsize)
+}
+
+func Fgetxattr(fd int, attr string, dest []byte) (sz int, err error) {
+       d := initxattrdest(dest, 0)
+       destsize := len(dest)
+
+       nsid, a, err := xattrnamespace(attr)
+       if err != nil {
+               return -1, err
+       }
+
+       return ExtattrGetFd(fd, nsid, a, uintptr(d), destsize)
+}
+
+func Lgetxattr(link string, attr string, dest []byte) (sz int, err error) {
+       d := initxattrdest(dest, 0)
+       destsize := len(dest)
+
+       nsid, a, err := xattrnamespace(attr)
+       if err != nil {
+               return -1, err
+       }
+
+       return ExtattrGetLink(link, nsid, a, uintptr(d), destsize)
+}
+
+// flags are unused on FreeBSD
+
+func Fsetxattr(fd int, attr string, data []byte, flags int) (err error) {
+       d := unsafe.Pointer(&data[0])
+       datasiz := len(data)
+
+       nsid, a, err := xattrnamespace(attr)
+       if err != nil {
+               return
+       }
+
+       _, err = ExtattrSetFd(fd, nsid, a, uintptr(d), datasiz)
+       return
+}
+
+func Setxattr(file string, attr string, data []byte, flags int) (err error) {
+       d := unsafe.Pointer(&data[0])
+       datasiz := len(data)
+
+       nsid, a, err := xattrnamespace(attr)
+       if err != nil {
+               return
+       }
+
+       _, err = ExtattrSetFile(file, nsid, a, uintptr(d), datasiz)
+       return
+}
+
+func Lsetxattr(link string, attr string, data []byte, flags int) (err error) {
+       d := unsafe.Pointer(&data[0])
+       datasiz := len(data)
+
+       nsid, a, err := xattrnamespace(attr)
+       if err != nil {
+               return
+       }
+
+       _, err = ExtattrSetLink(link, nsid, a, uintptr(d), datasiz)
+       return
+}
+
+func Removexattr(file string, attr string) (err error) {
+       nsid, a, err := xattrnamespace(attr)
+       if err != nil {
+               return
+       }
+
+       err = ExtattrDeleteFile(file, nsid, a)
+       return
+}
+
+func Fremovexattr(fd int, attr string) (err error) {
+       nsid, a, err := xattrnamespace(attr)
+       if err != nil {
+               return
+       }
+
+       err = ExtattrDeleteFd(fd, nsid, a)
+       return
+}
+
+func Lremovexattr(link string, attr string) (err error) {
+       nsid, a, err := xattrnamespace(attr)
+       if err != nil {
+               return
+       }
+
+       err = ExtattrDeleteLink(link, nsid, a)
+       return
+}
+
+func Listxattr(file string, dest []byte) (sz int, err error) {
+       d := initxattrdest(dest, 0)
+       destsiz := len(dest)
+
+       // FreeBSD won't allow you to list xattrs from multiple namespaces
+       s := 0
+       var e error
+       for _, nsid := range [...]int{EXTATTR_NAMESPACE_USER, EXTATTR_NAMESPACE_SYSTEM} {
+               stmp, e := ExtattrListFile(file, nsid, uintptr(d), destsiz)
+
+               /* Errors accessing system attrs are ignored so that
+                * we can implement the Linux-like behavior of omitting errors that
+                * we don't have read permissions on
+                *
+                * Linux will still error if we ask for user attributes on a file that
+                * we don't have read permissions on, so don't ignore those errors
+                */
+               if e != nil && e == EPERM && nsid != EXTATTR_NAMESPACE_USER {
+                       e = nil
+                       continue
+               } else if e != nil {
+                       return s, e
+               }
+
+               s += stmp
+               destsiz -= s
+               if destsiz < 0 {
+                       destsiz = 0
+               }
+               d = initxattrdest(dest, s)
+       }
+
+       return s, e
+}
+
+func Flistxattr(fd int, dest []byte) (sz int, err error) {
+       d := initxattrdest(dest, 0)
+       destsiz := len(dest)
+
+       s := 0
+       var e error
+       for _, nsid := range [...]int{EXTATTR_NAMESPACE_USER, EXTATTR_NAMESPACE_SYSTEM} {
+               stmp, e := ExtattrListFd(fd, nsid, uintptr(d), destsiz)
+               if e != nil && e == EPERM && nsid != EXTATTR_NAMESPACE_USER {
+                       e = nil
+                       continue
+               } else if e != nil {
+                       return s, e
+               }
+
+               s += stmp
+               destsiz -= s
+               if destsiz < 0 {
+                       destsiz = 0
+               }
+               d = initxattrdest(dest, s)
+       }
+
+       return s, e
+}
+
+func Llistxattr(link string, dest []byte) (sz int, err error) {
+       d := initxattrdest(dest, 0)
+       destsiz := len(dest)
+
+       s := 0
+       var e error
+       for _, nsid := range [...]int{EXTATTR_NAMESPACE_USER, EXTATTR_NAMESPACE_SYSTEM} {
+               stmp, e := ExtattrListLink(link, nsid, uintptr(d), destsiz)
+               if e != nil && e == EPERM && nsid != EXTATTR_NAMESPACE_USER {
+                       e = nil
+                       continue
+               } else if e != nil {
+                       return s, e
+               }
+
+               s += stmp
+               destsiz -= s
+               if destsiz < 0 {
+                       destsiz = 0
+               }
+               d = initxattrdest(dest, s)
+       }
+
+       return s, e
+}
+
+//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.
+
+// 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 IoctlSetWinsize(fd int, req uint, value *Winsize) error {
+       return ioctl(fd, req, uintptr(unsafe.Pointer(value)))
+}
+
+func IoctlSetTermios(fd int, req uint, value *Termios) error {
+       return ioctl(fd, req, uintptr(unsafe.Pointer(value)))
+}
+
+// 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 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
+}
+
+/*
+ * Exposed directly
+ */
+//sys  Access(path string, mode uint32) (err error)
+//sys  Adjtime(delta *Timeval, olddelta *Timeval) (err error)
+//sys  CapEnter() (err error)
+//sys  capRightsGet(version int, fd int, rightsp *CapRights) (err error) = SYS___CAP_RIGHTS_GET
+//sys  capRightsLimit(fd int, rightsp *CapRights) (err error)
+//sys  Chdir(path string) (err error)
+//sys  Chflags(path string, flags int) (err error)
+//sys  Chmod(path string, mode uint32) (err error)
+//sys  Chown(path string, uid int, gid int) (err error)
+//sys  Chroot(path string) (err error)
+//sys  Close(fd int) (err error)
+//sys  Dup(fd int) (nfd int, err error)
+//sys  Dup2(from int, to int) (err error)
+//sys  Exit(code int)
+//sys  ExtattrGetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error)
+//sys  ExtattrSetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error)
+//sys  ExtattrDeleteFd(fd int, attrnamespace int, attrname string) (err error)
+//sys  ExtattrListFd(fd int, attrnamespace int, data uintptr, nbytes int) (ret int, err error)
+//sys  ExtattrGetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error)
+//sys  ExtattrSetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error)
+//sys  ExtattrDeleteFile(file string, attrnamespace int, attrname string) (err error)
+//sys  ExtattrListFile(file string, attrnamespace int, data uintptr, nbytes int) (ret int, err error)
+//sys  ExtattrGetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error)
+//sys  ExtattrSetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error)
+//sys  ExtattrDeleteLink(link string, attrnamespace int, attrname string) (err error)
+//sys  ExtattrListLink(link string, attrnamespace int, data uintptr, nbytes int) (ret int, err error)
+//sys  Fadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_POSIX_FADVISE
+//sys  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  Fstatfs(fd int, stat *Statfs_t) (err error)
+//sys  Fsync(fd int) (err error)
+//sys  Ftruncate(fd int, length int64) (err error)
+//sys  Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error)
+//sys  Getdtablesize() (size int)
+//sysnb        Getegid() (egid int)
+//sysnb        Geteuid() (uid int)
+//sysnb        Getgid() (gid int)
+//sysnb        Getpgid(pid int) (pgid int, err error)
+//sysnb        Getpgrp() (pgrp int)
+//sysnb        Getpid() (pid int)
+//sysnb        Getppid() (ppid int)
+//sys  Getpriority(which int, who int) (prio int, err error)
+//sysnb        Getrlimit(which int, lim *Rlimit) (err error)
+//sysnb        Getrusage(who int, rusage *Rusage) (err error)
+//sysnb        Getsid(pid int) (sid int, err error)
+//sysnb        Gettimeofday(tv *Timeval) (err error)
+//sysnb        Getuid() (uid int)
+//sys  Issetugid() (tainted bool)
+//sys  Kill(pid int, signum syscall.Signal) (err error)
+//sys  Kqueue() (fd int, err error)
+//sys  Lchown(path string, uid int, gid int) (err error)
+//sys  Link(path string, link string) (err error)
+//sys  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  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)
+//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)
+//sysnb        Setegid(egid int) (err error)
+//sysnb        Seteuid(euid int) (err error)
+//sysnb        Setgid(gid int) (err error)
+//sys  Setlogin(name string) (err error)
+//sysnb        Setpgid(pid int, pgid int) (err error)
+//sys  Setpriority(which int, who int, prio int) (err error)
+//sysnb        Setregid(rgid int, egid int) (err error)
+//sysnb        Setreuid(ruid int, euid int) (err error)
+//sysnb        Setresgid(rgid int, egid int, sgid int) (err error)
+//sysnb        Setresuid(ruid int, euid int, suid int) (err error)
+//sysnb        Setrlimit(which int, lim *Rlimit) (err error)
+//sysnb        Setsid() (pid int, err error)
+//sysnb        Settimeofday(tp *Timeval) (err error)
+//sysnb        Setuid(uid int) (err error)
+//sys  Stat(path string, stat *Stat_t) (err error)
+//sys  Statfs(path string, stat *Statfs_t) (err error)
+//sys  Symlink(path string, link string) (err error)
+//sys  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)
+//sys   munmap(addr uintptr, length uintptr) (err error)
+//sys  readlen(fd int, buf *byte, nbuf int) (n int, err error) = SYS_READ
+//sys  writelen(fd int, buf *byte, nbuf int) (n int, err error) = SYS_WRITE
+//sys  accept4(fd int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (nfd int, err error)
+//sys  utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error)
+
+/*
+ * Unimplemented
+ */
+// Profil
+// Sigaction
+// Sigprocmask
+// Getlogin
+// Sigpending
+// Sigaltstack
+// Ioctl
+// Reboot
+// Execve
+// Vfork
+// Sbrk
+// Sstk
+// Ovadvise
+// Mincore
+// Setitimer
+// Swapon
+// Select
+// Sigsuspend
+// Readv
+// Writev
+// Nfssvc
+// Getfh
+// Quotactl
+// Mount
+// Csops
+// Waitid
+// Add_profil
+// Kdebug_trace
+// Sigreturn
+// Atsocket
+// Kqueue_from_portset_np
+// Kqueue_portset
+// Getattrlist
+// Setattrlist
+// Getdirentriesattr
+// Searchfs
+// Delete
+// Copyfile
+// Poll
+// Watchevent
+// Waitevent
+// Modwatch
+// Getxattr
+// Fgetxattr
+// Setxattr
+// Fsetxattr
+// Removexattr
+// Fremovexattr
+// Listxattr
+// Flistxattr
+// Fsctl
+// Initgroups
+// Posix_spawn
+// Nfsclnt
+// Fhopen
+// Minherit
+// Semsys
+// Msgsys
+// Shmsys
+// Semctl
+// Semget
+// Semop
+// Msgctl
+// Msgget
+// Msgsnd
+// Msgrcv
+// Shmat
+// Shmctl
+// Shmdt
+// Shmget
+// Shm_open
+// Shm_unlink
+// Sem_open
+// Sem_close
+// Sem_unlink
+// Sem_wait
+// Sem_trywait
+// Sem_post
+// Sem_getvalue
+// Sem_init
+// Sem_destroy
+// Open_extended
+// Umask_extended
+// Stat_extended
+// Lstat_extended
+// Fstat_extended
+// Chmod_extended
+// Fchmod_extended
+// Access_extended
+// Settid
+// Gettid
+// Setsgroups
+// Getsgroups
+// Setwgroups
+// Getwgroups
+// Mkfifo_extended
+// Mkdir_extended
+// Identitysvc
+// Shared_region_check_np
+// Shared_region_map_np
+// __pthread_mutex_destroy
+// __pthread_mutex_init
+// __pthread_mutex_lock
+// __pthread_mutex_trylock
+// __pthread_mutex_unlock
+// __pthread_cond_init
+// __pthread_cond_destroy
+// __pthread_cond_broadcast
+// __pthread_cond_signal
+// Setsid_with_pid
+// __pthread_cond_timedwait
+// Aio_fsync
+// Aio_return
+// Aio_suspend
+// Aio_cancel
+// Aio_error
+// Aio_read
+// Aio_write
+// Lio_listio
+// __pthread_cond_wait
+// Iopolicysys
+// __pthread_kill
+// __pthread_sigmask
+// __sigwait
+// __disable_threadsignal
+// __pthread_markcancel
+// __pthread_canceled
+// __semwait_signal
+// Proc_info
+// Stat64_extended
+// Lstat64_extended
+// Fstat64_extended
+// __pthread_chdir
+// __pthread_fchdir
+// Audit
+// Auditon
+// Getauid
+// Setauid
+// Getaudit
+// Setaudit
+// Getaudit_addr
+// Setaudit_addr
+// Auditctl
+// Bsdthread_create
+// Bsdthread_terminate
+// Stack_snapshot
+// Bsdthread_register
+// Workq_open
+// Workq_ops
+// __mac_execve
+// __mac_syscall
+// __mac_get_file
+// __mac_set_file
+// __mac_get_link
+// __mac_set_link
+// __mac_get_proc
+// __mac_set_proc
+// __mac_get_fd
+// __mac_set_fd
+// __mac_get_pid
+// __mac_get_lcid
+// __mac_get_lctx
+// __mac_set_lctx
+// Setlcid
+// Read_nocancel
+// Write_nocancel
+// Open_nocancel
+// Close_nocancel
+// Wait4_nocancel
+// Recvmsg_nocancel
+// Sendmsg_nocancel
+// Recvfrom_nocancel
+// Accept_nocancel
+// Fcntl_nocancel
+// Select_nocancel
+// Fsync_nocancel
+// Connect_nocancel
+// Sigsuspend_nocancel
+// Readv_nocancel
+// Writev_nocancel
+// Sendto_nocancel
+// Pread_nocancel
+// Pwrite_nocancel
+// Waitid_nocancel
+// Poll_nocancel
+// Msgsnd_nocancel
+// Msgrcv_nocancel
+// Sem_wait_nocancel
+// Aio_suspend_nocancel
+// __sigwait_nocancel
+// __semwait_signal_nocancel
+// __mac_mount
+// __mac_get_mount
+// __mac_getfsstat
diff --git a/vendor/golang.org/x/sys/unix/syscall_freebsd_386.go b/vendor/golang.org/x/sys/unix/syscall_freebsd_386.go
new file mode 100644 (file)
index 0000000..6a0cd80
--- /dev/null
@@ -0,0 +1,61 @@
+// Copyright 2009 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build 386,freebsd
+
+package unix
+
+import (
+       "syscall"
+       "unsafe"
+)
+
+func Getpagesize() int { return 4096 }
+
+func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) }
+
+func NsecToTimespec(nsec int64) (ts Timespec) {
+       ts.Sec = int32(nsec / 1e9)
+       ts.Nsec = int32(nsec % 1e9)
+       return
+}
+
+func NsecToTimeval(nsec int64) (tv Timeval) {
+       nsec += 999 // round up to microsecond
+       tv.Usec = int32(nsec % 1e9 / 1e3)
+       tv.Sec = int32(nsec / 1e9)
+       return
+}
+
+func SetKevent(k *Kevent_t, fd, mode, flags int) {
+       k.Ident = uint32(fd)
+       k.Filter = int16(mode)
+       k.Flags = uint16(flags)
+}
+
+func (iov *Iovec) SetLen(length int) {
+       iov.Len = uint32(length)
+}
+
+func (msghdr *Msghdr) SetControllen(length int) {
+       msghdr.Controllen = uint32(length)
+}
+
+func (cmsg *Cmsghdr) SetLen(length int) {
+       cmsg.Len = uint32(length)
+}
+
+func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {
+       var writtenOut uint64 = 0
+       _, _, e1 := Syscall9(SYS_SENDFILE, uintptr(infd), uintptr(outfd), uintptr(*offset), uintptr((*offset)>>32), uintptr(count), 0, uintptr(unsafe.Pointer(&writtenOut)), 0, 0)
+
+       written = int(writtenOut)
+
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno)
diff --git a/vendor/golang.org/x/sys/unix/syscall_freebsd_amd64.go b/vendor/golang.org/x/sys/unix/syscall_freebsd_amd64.go
new file mode 100644 (file)
index 0000000..e142540
--- /dev/null
@@ -0,0 +1,61 @@
+// Copyright 2009 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build amd64,freebsd
+
+package unix
+
+import (
+       "syscall"
+       "unsafe"
+)
+
+func Getpagesize() int { return 4096 }
+
+func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) }
+
+func NsecToTimespec(nsec int64) (ts Timespec) {
+       ts.Sec = nsec / 1e9
+       ts.Nsec = nsec % 1e9
+       return
+}
+
+func NsecToTimeval(nsec int64) (tv Timeval) {
+       nsec += 999 // round up to microsecond
+       tv.Usec = nsec % 1e9 / 1e3
+       tv.Sec = int64(nsec / 1e9)
+       return
+}
+
+func SetKevent(k *Kevent_t, fd, mode, flags int) {
+       k.Ident = uint64(fd)
+       k.Filter = int16(mode)
+       k.Flags = uint16(flags)
+}
+
+func (iov *Iovec) SetLen(length int) {
+       iov.Len = uint64(length)
+}
+
+func (msghdr *Msghdr) SetControllen(length int) {
+       msghdr.Controllen = uint32(length)
+}
+
+func (cmsg *Cmsghdr) SetLen(length int) {
+       cmsg.Len = uint32(length)
+}
+
+func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {
+       var writtenOut uint64 = 0
+       _, _, e1 := Syscall9(SYS_SENDFILE, uintptr(infd), uintptr(outfd), uintptr(*offset), uintptr(count), 0, uintptr(unsafe.Pointer(&writtenOut)), 0, 0, 0)
+
+       written = int(writtenOut)
+
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno)
diff --git a/vendor/golang.org/x/sys/unix/syscall_freebsd_arm.go b/vendor/golang.org/x/sys/unix/syscall_freebsd_arm.go
new file mode 100644 (file)
index 0000000..5504cb1
--- /dev/null
@@ -0,0 +1,61 @@
+// Copyright 2012 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build arm,freebsd
+
+package unix
+
+import (
+       "syscall"
+       "unsafe"
+)
+
+func Getpagesize() int { return 4096 }
+
+func TimespecToNsec(ts Timespec) int64 { return ts.Sec*1e9 + int64(ts.Nsec) }
+
+func NsecToTimespec(nsec int64) (ts Timespec) {
+       ts.Sec = nsec / 1e9
+       ts.Nsec = int32(nsec % 1e9)
+       return
+}
+
+func NsecToTimeval(nsec int64) (tv Timeval) {
+       nsec += 999 // round up to microsecond
+       tv.Usec = int32(nsec % 1e9 / 1e3)
+       tv.Sec = nsec / 1e9
+       return
+}
+
+func SetKevent(k *Kevent_t, fd, mode, flags int) {
+       k.Ident = uint32(fd)
+       k.Filter = int16(mode)
+       k.Flags = uint16(flags)
+}
+
+func (iov *Iovec) SetLen(length int) {
+       iov.Len = uint32(length)
+}
+
+func (msghdr *Msghdr) SetControllen(length int) {
+       msghdr.Controllen = uint32(length)
+}
+
+func (cmsg *Cmsghdr) SetLen(length int) {
+       cmsg.Len = uint32(length)
+}
+
+func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {
+       var writtenOut uint64 = 0
+       _, _, e1 := Syscall9(SYS_SENDFILE, uintptr(infd), uintptr(outfd), uintptr(*offset), uintptr((*offset)>>32), uintptr(count), 0, uintptr(unsafe.Pointer(&writtenOut)), 0, 0)
+
+       written = int(writtenOut)
+
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno)
diff --git a/vendor/golang.org/x/sys/unix/syscall_linux.go b/vendor/golang.org/x/sys/unix/syscall_linux.go
new file mode 100644 (file)
index 0000000..1b7d59d
--- /dev/null
@@ -0,0 +1,1469 @@
+// Copyright 2009 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// Linux system calls.
+// This file is compiled as ordinary Go code,
+// but it is also input to mksyscall,
+// which parses the //sys lines and generates system call stubs.
+// Note that sometimes we use a lowercase //sys name and
+// wrap it in our own nicer implementation.
+
+package unix
+
+import (
+       "syscall"
+       "unsafe"
+)
+
+/*
+ * Wrapped
+ */
+
+func Access(path string, mode uint32) (err error) {
+       return Faccessat(AT_FDCWD, path, mode, 0)
+}
+
+func Chmod(path string, mode uint32) (err error) {
+       return Fchmodat(AT_FDCWD, path, mode, 0)
+}
+
+func Chown(path string, uid int, gid int) (err error) {
+       return Fchownat(AT_FDCWD, path, uid, gid, 0)
+}
+
+func Creat(path string, mode uint32) (fd int, err error) {
+       return Open(path, O_CREAT|O_WRONLY|O_TRUNC, mode)
+}
+
+//sys  fchmodat(dirfd int, path string, mode uint32) (err error)
+
+func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) {
+       // Linux fchmodat doesn't support the flags parameter. Mimick glibc's behavior
+       // and check the flags. Otherwise the mode would be applied to the symlink
+       // destination which is not what the user expects.
+       if flags&^AT_SYMLINK_NOFOLLOW != 0 {
+               return EINVAL
+       } else if flags&AT_SYMLINK_NOFOLLOW != 0 {
+               return EOPNOTSUPP
+       }
+       return fchmodat(dirfd, path, mode)
+}
+
+//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.
+
+// 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 IoctlSetWinsize(fd int, req uint, value *Winsize) error {
+       return ioctl(fd, req, uintptr(unsafe.Pointer(value)))
+}
+
+func IoctlSetTermios(fd int, req uint, value *Termios) error {
+       return ioctl(fd, req, uintptr(unsafe.Pointer(value)))
+}
+
+// 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 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
+}
+
+//sys  Linkat(olddirfd int, oldpath string, newdirfd int, newpath string, flags int) (err error)
+
+func Link(oldpath string, newpath string) (err error) {
+       return Linkat(AT_FDCWD, oldpath, AT_FDCWD, newpath, 0)
+}
+
+func Mkdir(path string, mode uint32) (err error) {
+       return Mkdirat(AT_FDCWD, path, mode)
+}
+
+func Mknod(path string, mode uint32, dev int) (err error) {
+       return Mknodat(AT_FDCWD, path, mode, dev)
+}
+
+func Open(path string, mode int, perm uint32) (fd int, err error) {
+       return openat(AT_FDCWD, path, mode|O_LARGEFILE, perm)
+}
+
+//sys  openat(dirfd int, path string, flags int, mode uint32) (fd int, err error)
+
+func Openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) {
+       return openat(dirfd, path, flags|O_LARGEFILE, mode)
+}
+
+//sys  ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error)
+
+func Ppoll(fds []PollFd, timeout *Timespec, sigmask *Sigset_t) (n int, err error) {
+       if len(fds) == 0 {
+               return ppoll(nil, 0, timeout, sigmask)
+       }
+       return ppoll(&fds[0], len(fds), timeout, sigmask)
+}
+
+//sys  Readlinkat(dirfd int, path string, buf []byte) (n int, err error)
+
+func Readlink(path string, buf []byte) (n int, err error) {
+       return Readlinkat(AT_FDCWD, path, buf)
+}
+
+func Rename(oldpath string, newpath string) (err error) {
+       return Renameat(AT_FDCWD, oldpath, AT_FDCWD, newpath)
+}
+
+func Rmdir(path string) error {
+       return Unlinkat(AT_FDCWD, path, AT_REMOVEDIR)
+}
+
+//sys  Symlinkat(oldpath string, newdirfd int, newpath string) (err error)
+
+func Symlink(oldpath string, newpath string) (err error) {
+       return Symlinkat(oldpath, AT_FDCWD, newpath)
+}
+
+func Unlink(path string) error {
+       return Unlinkat(AT_FDCWD, path, 0)
+}
+
+//sys  Unlinkat(dirfd int, path string, flags int) (err error)
+
+//sys  utimes(path string, times *[2]Timeval) (err error)
+
+func Utimes(path string, tv []Timeval) error {
+       if tv == nil {
+               err := utimensat(AT_FDCWD, path, nil, 0)
+               if err != ENOSYS {
+                       return err
+               }
+               return utimes(path, nil)
+       }
+       if len(tv) != 2 {
+               return EINVAL
+       }
+       var ts [2]Timespec
+       ts[0] = NsecToTimespec(TimevalToNsec(tv[0]))
+       ts[1] = NsecToTimespec(TimevalToNsec(tv[1]))
+       err := utimensat(AT_FDCWD, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0)
+       if err != ENOSYS {
+               return err
+       }
+       return utimes(path, (*[2]Timeval)(unsafe.Pointer(&tv[0])))
+}
+
+//sys  utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error)
+
+func UtimesNano(path string, ts []Timespec) error {
+       if ts == nil {
+               err := utimensat(AT_FDCWD, path, nil, 0)
+               if err != ENOSYS {
+                       return err
+               }
+               return utimes(path, nil)
+       }
+       if len(ts) != 2 {
+               return EINVAL
+       }
+       err := utimensat(AT_FDCWD, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0)
+       if err != ENOSYS {
+               return err
+       }
+       // If the utimensat syscall isn't available (utimensat was added to Linux
+       // in 2.6.22, Released, 8 July 2007) then fall back to utimes
+       var tv [2]Timeval
+       for i := 0; i < 2; i++ {
+               tv[i] = NsecToTimeval(TimespecToNsec(ts[i]))
+       }
+       return utimes(path, (*[2]Timeval)(unsafe.Pointer(&tv[0])))
+}
+
+func UtimesNanoAt(dirfd int, path string, ts []Timespec, flags int) error {
+       if ts == nil {
+               return utimensat(dirfd, path, nil, flags)
+       }
+       if len(ts) != 2 {
+               return EINVAL
+       }
+       return utimensat(dirfd, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), flags)
+}
+
+//sys  futimesat(dirfd int, path *byte, times *[2]Timeval) (err error)
+
+func Futimesat(dirfd int, path string, tv []Timeval) error {
+       pathp, err := BytePtrFromString(path)
+       if err != nil {
+               return err
+       }
+       if tv == nil {
+               return futimesat(dirfd, pathp, nil)
+       }
+       if len(tv) != 2 {
+               return EINVAL
+       }
+       return futimesat(dirfd, pathp, (*[2]Timeval)(unsafe.Pointer(&tv[0])))
+}
+
+func Futimes(fd int, tv []Timeval) (err error) {
+       // Believe it or not, this is the best we can do on Linux
+       // (and is what glibc does).
+       return Utimes("/proc/self/fd/"+itoa(fd), tv)
+}
+
+const ImplementsGetwd = true
+
+//sys  Getcwd(buf []byte) (n int, err error)
+
+func Getwd() (wd string, err error) {
+       var buf [PathMax]byte
+       n, err := Getcwd(buf[0:])
+       if err != nil {
+               return "", err
+       }
+       // Getcwd returns the number of bytes written to buf, including the NUL.
+       if n < 1 || n > len(buf) || buf[n-1] != 0 {
+               return "", EINVAL
+       }
+       return string(buf[0 : n-1]), nil
+}
+
+func Getgroups() (gids []int, err error) {
+       n, err := getgroups(0, nil)
+       if err != nil {
+               return nil, err
+       }
+       if n == 0 {
+               return nil, nil
+       }
+
+       // Sanity check group count.  Max is 1<<16 on Linux.
+       if n < 0 || n > 1<<20 {
+               return nil, EINVAL
+       }
+
+       a := make([]_Gid_t, n)
+       n, err = getgroups(n, &a[0])
+       if err != nil {
+               return nil, err
+       }
+       gids = make([]int, n)
+       for i, v := range a[0:n] {
+               gids[i] = int(v)
+       }
+       return
+}
+
+func Setgroups(gids []int) (err error) {
+       if len(gids) == 0 {
+               return setgroups(0, nil)
+       }
+
+       a := make([]_Gid_t, len(gids))
+       for i, v := range gids {
+               a[i] = _Gid_t(v)
+       }
+       return setgroups(len(a), &a[0])
+}
+
+type WaitStatus uint32
+
+// Wait status is 7 bits at bottom, either 0 (exited),
+// 0x7F (stopped), or a signal number that caused an exit.
+// The 0x80 bit is whether there was a core dump.
+// An extra number (exit code, signal causing a stop)
+// is in the high bits.  At least that's the idea.
+// There are various irregularities.  For example, the
+// "continued" status is 0xFFFF, distinguishing itself
+// from stopped via the core dump bit.
+
+const (
+       mask    = 0x7F
+       core    = 0x80
+       exited  = 0x00
+       stopped = 0x7F
+       shift   = 8
+)
+
+func (w WaitStatus) Exited() bool { return w&mask == exited }
+
+func (w WaitStatus) Signaled() bool { return w&mask != stopped && w&mask != exited }
+
+func (w WaitStatus) Stopped() bool { return w&0xFF == stopped }
+
+func (w WaitStatus) Continued() bool { return w == 0xFFFF }
+
+func (w WaitStatus) CoreDump() bool { return w.Signaled() && w&core != 0 }
+
+func (w WaitStatus) ExitStatus() int {
+       if !w.Exited() {
+               return -1
+       }
+       return int(w>>shift) & 0xFF
+}
+
+func (w WaitStatus) Signal() syscall.Signal {
+       if !w.Signaled() {
+               return -1
+       }
+       return syscall.Signal(w & mask)
+}
+
+func (w WaitStatus) StopSignal() syscall.Signal {
+       if !w.Stopped() {
+               return -1
+       }
+       return syscall.Signal(w>>shift) & 0xFF
+}
+
+func (w WaitStatus) TrapCause() int {
+       if w.StopSignal() != SIGTRAP {
+               return -1
+       }
+       return int(w>>shift) >> 8
+}
+
+//sys  wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error)
+
+func Wait4(pid int, wstatus *WaitStatus, options int, rusage *Rusage) (wpid int, err error) {
+       var status _C_int
+       wpid, err = wait4(pid, &status, options, rusage)
+       if wstatus != nil {
+               *wstatus = WaitStatus(status)
+       }
+       return
+}
+
+func Mkfifo(path string, mode uint32) error {
+       return Mknod(path, mode|S_IFIFO, 0)
+}
+
+func Mkfifoat(dirfd int, path string, mode uint32) error {
+       return Mknodat(dirfd, path, mode|S_IFIFO, 0)
+}
+
+func (sa *SockaddrInet4) sockaddr() (unsafe.Pointer, _Socklen, error) {
+       if sa.Port < 0 || sa.Port > 0xFFFF {
+               return nil, 0, EINVAL
+       }
+       sa.raw.Family = AF_INET
+       p := (*[2]byte)(unsafe.Pointer(&sa.raw.Port))
+       p[0] = byte(sa.Port >> 8)
+       p[1] = byte(sa.Port)
+       for i := 0; i < len(sa.Addr); i++ {
+               sa.raw.Addr[i] = sa.Addr[i]
+       }
+       return unsafe.Pointer(&sa.raw), SizeofSockaddrInet4, nil
+}
+
+func (sa *SockaddrInet6) sockaddr() (unsafe.Pointer, _Socklen, error) {
+       if sa.Port < 0 || sa.Port > 0xFFFF {
+               return nil, 0, EINVAL
+       }
+       sa.raw.Family = AF_INET6
+       p := (*[2]byte)(unsafe.Pointer(&sa.raw.Port))
+       p[0] = byte(sa.Port >> 8)
+       p[1] = byte(sa.Port)
+       sa.raw.Scope_id = sa.ZoneId
+       for i := 0; i < len(sa.Addr); i++ {
+               sa.raw.Addr[i] = sa.Addr[i]
+       }
+       return unsafe.Pointer(&sa.raw), SizeofSockaddrInet6, nil
+}
+
+func (sa *SockaddrUnix) sockaddr() (unsafe.Pointer, _Socklen, error) {
+       name := sa.Name
+       n := len(name)
+       if n >= len(sa.raw.Path) {
+               return nil, 0, EINVAL
+       }
+       sa.raw.Family = AF_UNIX
+       for i := 0; i < n; i++ {
+               sa.raw.Path[i] = int8(name[i])
+       }
+       // length is family (uint16), name, NUL.
+       sl := _Socklen(2)
+       if n > 0 {
+               sl += _Socklen(n) + 1
+       }
+       if sa.raw.Path[0] == '@' {
+               sa.raw.Path[0] = 0
+               // Don't count trailing NUL for abstract address.
+               sl--
+       }
+
+       return unsafe.Pointer(&sa.raw), sl, nil
+}
+
+type SockaddrLinklayer struct {
+       Protocol uint16
+       Ifindex  int
+       Hatype   uint16
+       Pkttype  uint8
+       Halen    uint8
+       Addr     [8]byte
+       raw      RawSockaddrLinklayer
+}
+
+func (sa *SockaddrLinklayer) sockaddr() (unsafe.Pointer, _Socklen, error) {
+       if sa.Ifindex < 0 || sa.Ifindex > 0x7fffffff {
+               return nil, 0, EINVAL
+       }
+       sa.raw.Family = AF_PACKET
+       sa.raw.Protocol = sa.Protocol
+       sa.raw.Ifindex = int32(sa.Ifindex)
+       sa.raw.Hatype = sa.Hatype
+       sa.raw.Pkttype = sa.Pkttype
+       sa.raw.Halen = sa.Halen
+       for i := 0; i < len(sa.Addr); i++ {
+               sa.raw.Addr[i] = sa.Addr[i]
+       }
+       return unsafe.Pointer(&sa.raw), SizeofSockaddrLinklayer, nil
+}
+
+type SockaddrNetlink struct {
+       Family uint16
+       Pad    uint16
+       Pid    uint32
+       Groups uint32
+       raw    RawSockaddrNetlink
+}
+
+func (sa *SockaddrNetlink) sockaddr() (unsafe.Pointer, _Socklen, error) {
+       sa.raw.Family = AF_NETLINK
+       sa.raw.Pad = sa.Pad
+       sa.raw.Pid = sa.Pid
+       sa.raw.Groups = sa.Groups
+       return unsafe.Pointer(&sa.raw), SizeofSockaddrNetlink, nil
+}
+
+type SockaddrHCI struct {
+       Dev     uint16
+       Channel uint16
+       raw     RawSockaddrHCI
+}
+
+func (sa *SockaddrHCI) sockaddr() (unsafe.Pointer, _Socklen, error) {
+       sa.raw.Family = AF_BLUETOOTH
+       sa.raw.Dev = sa.Dev
+       sa.raw.Channel = sa.Channel
+       return unsafe.Pointer(&sa.raw), SizeofSockaddrHCI, nil
+}
+
+// SockaddrCAN implements the Sockaddr interface for AF_CAN type sockets.
+// The RxID and TxID fields are used for transport protocol addressing in
+// (CAN_TP16, CAN_TP20, CAN_MCNET, and CAN_ISOTP), they can be left with
+// zero values for CAN_RAW and CAN_BCM sockets as they have no meaning.
+//
+// The SockaddrCAN struct must be bound to the socket file descriptor
+// using Bind before the CAN socket can be used.
+//
+//      // Read one raw CAN frame
+//      fd, _ := Socket(AF_CAN, SOCK_RAW, CAN_RAW)
+//      addr := &SockaddrCAN{Ifindex: index}
+//      Bind(fd, addr)
+//      frame := make([]byte, 16)
+//      Read(fd, frame)
+//
+// The full SocketCAN documentation can be found in the linux kernel
+// archives at: https://www.kernel.org/doc/Documentation/networking/can.txt
+type SockaddrCAN struct {
+       Ifindex int
+       RxID    uint32
+       TxID    uint32
+       raw     RawSockaddrCAN
+}
+
+func (sa *SockaddrCAN) sockaddr() (unsafe.Pointer, _Socklen, error) {
+       if sa.Ifindex < 0 || sa.Ifindex > 0x7fffffff {
+               return nil, 0, EINVAL
+       }
+       sa.raw.Family = AF_CAN
+       sa.raw.Ifindex = int32(sa.Ifindex)
+       rx := (*[4]byte)(unsafe.Pointer(&sa.RxID))
+       for i := 0; i < 4; i++ {
+               sa.raw.Addr[i] = rx[i]
+       }
+       tx := (*[4]byte)(unsafe.Pointer(&sa.TxID))
+       for i := 0; i < 4; i++ {
+               sa.raw.Addr[i+4] = tx[i]
+       }
+       return unsafe.Pointer(&sa.raw), SizeofSockaddrCAN, nil
+}
+
+// SockaddrALG implements the Sockaddr interface for AF_ALG type sockets.
+// SockaddrALG enables userspace access to the Linux kernel's cryptography
+// subsystem. The Type and Name fields specify which type of hash or cipher
+// should be used with a given socket.
+//
+// To create a file descriptor that provides access to a hash or cipher, both
+// Bind and Accept must be used. Once the setup process is complete, input
+// data can be written to the socket, processed by the kernel, and then read
+// back as hash output or ciphertext.
+//
+// Here is an example of using an AF_ALG socket with SHA1 hashing.
+// The initial socket setup process is as follows:
+//
+//      // Open a socket to perform SHA1 hashing.
+//      fd, _ := unix.Socket(unix.AF_ALG, unix.SOCK_SEQPACKET, 0)
+//      addr := &unix.SockaddrALG{Type: "hash", Name: "sha1"}
+//      unix.Bind(fd, addr)
+//      // Note: unix.Accept does not work at this time; must invoke accept()
+//      // manually using unix.Syscall.
+//      hashfd, _, _ := unix.Syscall(unix.SYS_ACCEPT, uintptr(fd), 0, 0)
+//
+// Once a file descriptor has been returned from Accept, it may be used to
+// perform SHA1 hashing. The descriptor is not safe for concurrent use, but
+// may be re-used repeatedly with subsequent Write and Read operations.
+//
+// When hashing a small byte slice or string, a single Write and Read may
+// be used:
+//
+//      // Assume hashfd is already configured using the setup process.
+//      hash := os.NewFile(hashfd, "sha1")
+//      // Hash an input string and read the results. Each Write discards
+//      // previous hash state. Read always reads the current state.
+//      b := make([]byte, 20)
+//      for i := 0; i < 2; i++ {
+//          io.WriteString(hash, "Hello, world.")
+//          hash.Read(b)
+//          fmt.Println(hex.EncodeToString(b))
+//      }
+//      // Output:
+//      // 2ae01472317d1935a84797ec1983ae243fc6aa28
+//      // 2ae01472317d1935a84797ec1983ae243fc6aa28
+//
+// For hashing larger byte slices, or byte streams such as those read from
+// a file or socket, use Sendto with MSG_MORE to instruct the kernel to update
+// the hash digest instead of creating a new one for a given chunk and finalizing it.
+//
+//      // Assume hashfd and addr are already configured using the setup process.
+//      hash := os.NewFile(hashfd, "sha1")
+//      // Hash the contents of a file.
+//      f, _ := os.Open("/tmp/linux-4.10-rc7.tar.xz")
+//      b := make([]byte, 4096)
+//      for {
+//          n, err := f.Read(b)
+//          if err == io.EOF {
+//              break
+//          }
+//          unix.Sendto(hashfd, b[:n], unix.MSG_MORE, addr)
+//      }
+//      hash.Read(b)
+//      fmt.Println(hex.EncodeToString(b))
+//      // Output: 85cdcad0c06eef66f805ecce353bec9accbeecc5
+//
+// For more information, see: http://www.chronox.de/crypto-API/crypto/userspace-if.html.
+type SockaddrALG struct {
+       Type    string
+       Name    string
+       Feature uint32
+       Mask    uint32
+       raw     RawSockaddrALG
+}
+
+func (sa *SockaddrALG) sockaddr() (unsafe.Pointer, _Socklen, error) {
+       // Leave room for NUL byte terminator.
+       if len(sa.Type) > 13 {
+               return nil, 0, EINVAL
+       }
+       if len(sa.Name) > 63 {
+               return nil, 0, EINVAL
+       }
+
+       sa.raw.Family = AF_ALG
+       sa.raw.Feat = sa.Feature
+       sa.raw.Mask = sa.Mask
+
+       typ, err := ByteSliceFromString(sa.Type)
+       if err != nil {
+               return nil, 0, err
+       }
+       name, err := ByteSliceFromString(sa.Name)
+       if err != nil {
+               return nil, 0, err
+       }
+
+       copy(sa.raw.Type[:], typ)
+       copy(sa.raw.Name[:], name)
+
+       return unsafe.Pointer(&sa.raw), SizeofSockaddrALG, nil
+}
+
+// SockaddrVM implements the Sockaddr interface for AF_VSOCK type sockets.
+// SockaddrVM provides access to Linux VM sockets: a mechanism that enables
+// bidirectional communication between a hypervisor and its guest virtual
+// machines.
+type SockaddrVM struct {
+       // CID and Port specify a context ID and port address for a VM socket.
+       // Guests have a unique CID, and hosts may have a well-known CID of:
+       //  - VMADDR_CID_HYPERVISOR: refers to the hypervisor process.
+       //  - VMADDR_CID_HOST: refers to other processes on the host.
+       CID  uint32
+       Port uint32
+       raw  RawSockaddrVM
+}
+
+func (sa *SockaddrVM) sockaddr() (unsafe.Pointer, _Socklen, error) {
+       sa.raw.Family = AF_VSOCK
+       sa.raw.Port = sa.Port
+       sa.raw.Cid = sa.CID
+
+       return unsafe.Pointer(&sa.raw), SizeofSockaddrVM, nil
+}
+
+func anyToSockaddr(rsa *RawSockaddrAny) (Sockaddr, error) {
+       switch rsa.Addr.Family {
+       case AF_NETLINK:
+               pp := (*RawSockaddrNetlink)(unsafe.Pointer(rsa))
+               sa := new(SockaddrNetlink)
+               sa.Family = pp.Family
+               sa.Pad = pp.Pad
+               sa.Pid = pp.Pid
+               sa.Groups = pp.Groups
+               return sa, nil
+
+       case AF_PACKET:
+               pp := (*RawSockaddrLinklayer)(unsafe.Pointer(rsa))
+               sa := new(SockaddrLinklayer)
+               sa.Protocol = pp.Protocol
+               sa.Ifindex = int(pp.Ifindex)
+               sa.Hatype = pp.Hatype
+               sa.Pkttype = pp.Pkttype
+               sa.Halen = pp.Halen
+               for i := 0; i < len(sa.Addr); i++ {
+                       sa.Addr[i] = pp.Addr[i]
+               }
+               return sa, nil
+
+       case AF_UNIX:
+               pp := (*RawSockaddrUnix)(unsafe.Pointer(rsa))
+               sa := new(SockaddrUnix)
+               if pp.Path[0] == 0 {
+                       // "Abstract" Unix domain socket.
+                       // Rewrite leading NUL as @ for textual display.
+                       // (This is the standard convention.)
+                       // Not friendly to overwrite in place,
+                       // but the callers below don't care.
+                       pp.Path[0] = '@'
+               }
+
+               // Assume path ends at NUL.
+               // This is not technically the Linux semantics for
+               // abstract Unix domain sockets--they are supposed
+               // to be uninterpreted fixed-size binary blobs--but
+               // everyone uses this convention.
+               n := 0
+               for n < len(pp.Path) && pp.Path[n] != 0 {
+                       n++
+               }
+               bytes := (*[10000]byte)(unsafe.Pointer(&pp.Path[0]))[0:n]
+               sa.Name = string(bytes)
+               return sa, nil
+
+       case AF_INET:
+               pp := (*RawSockaddrInet4)(unsafe.Pointer(rsa))
+               sa := new(SockaddrInet4)
+               p := (*[2]byte)(unsafe.Pointer(&pp.Port))
+               sa.Port = int(p[0])<<8 + int(p[1])
+               for i := 0; i < len(sa.Addr); i++ {
+                       sa.Addr[i] = pp.Addr[i]
+               }
+               return sa, nil
+
+       case AF_INET6:
+               pp := (*RawSockaddrInet6)(unsafe.Pointer(rsa))
+               sa := new(SockaddrInet6)
+               p := (*[2]byte)(unsafe.Pointer(&pp.Port))
+               sa.Port = int(p[0])<<8 + int(p[1])
+               sa.ZoneId = pp.Scope_id
+               for i := 0; i < len(sa.Addr); i++ {
+                       sa.Addr[i] = pp.Addr[i]
+               }
+               return sa, nil
+
+       case AF_VSOCK:
+               pp := (*RawSockaddrVM)(unsafe.Pointer(rsa))
+               sa := &SockaddrVM{
+                       CID:  pp.Cid,
+                       Port: pp.Port,
+               }
+               return sa, nil
+       }
+       return nil, EAFNOSUPPORT
+}
+
+func Accept(fd int) (nfd int, sa Sockaddr, err error) {
+       var rsa RawSockaddrAny
+       var len _Socklen = SizeofSockaddrAny
+       nfd, err = accept(fd, &rsa, &len)
+       if err != nil {
+               return
+       }
+       sa, err = anyToSockaddr(&rsa)
+       if err != nil {
+               Close(nfd)
+               nfd = 0
+       }
+       return
+}
+
+func Accept4(fd int, flags int) (nfd int, sa Sockaddr, err error) {
+       var rsa RawSockaddrAny
+       var len _Socklen = SizeofSockaddrAny
+       nfd, err = accept4(fd, &rsa, &len, flags)
+       if err != nil {
+               return
+       }
+       if len > SizeofSockaddrAny {
+               panic("RawSockaddrAny too small")
+       }
+       sa, err = anyToSockaddr(&rsa)
+       if err != nil {
+               Close(nfd)
+               nfd = 0
+       }
+       return
+}
+
+func Getsockname(fd int) (sa Sockaddr, err error) {
+       var rsa RawSockaddrAny
+       var len _Socklen = SizeofSockaddrAny
+       if err = getsockname(fd, &rsa, &len); err != nil {
+               return
+       }
+       return anyToSockaddr(&rsa)
+}
+
+func GetsockoptInet4Addr(fd, level, opt int) (value [4]byte, err error) {
+       vallen := _Socklen(4)
+       err = getsockopt(fd, level, opt, unsafe.Pointer(&value[0]), &vallen)
+       return value, err
+}
+
+func GetsockoptIPMreq(fd, level, opt int) (*IPMreq, error) {
+       var value IPMreq
+       vallen := _Socklen(SizeofIPMreq)
+       err := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen)
+       return &value, err
+}
+
+func GetsockoptIPMreqn(fd, level, opt int) (*IPMreqn, error) {
+       var value IPMreqn
+       vallen := _Socklen(SizeofIPMreqn)
+       err := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen)
+       return &value, err
+}
+
+func GetsockoptIPv6Mreq(fd, level, opt int) (*IPv6Mreq, error) {
+       var value IPv6Mreq
+       vallen := _Socklen(SizeofIPv6Mreq)
+       err := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen)
+       return &value, err
+}
+
+func GetsockoptIPv6MTUInfo(fd, level, opt int) (*IPv6MTUInfo, error) {
+       var value IPv6MTUInfo
+       vallen := _Socklen(SizeofIPv6MTUInfo)
+       err := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen)
+       return &value, err
+}
+
+func GetsockoptICMPv6Filter(fd, level, opt int) (*ICMPv6Filter, error) {
+       var value ICMPv6Filter
+       vallen := _Socklen(SizeofICMPv6Filter)
+       err := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen)
+       return &value, err
+}
+
+func GetsockoptUcred(fd, level, opt int) (*Ucred, error) {
+       var value Ucred
+       vallen := _Socklen(SizeofUcred)
+       err := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen)
+       return &value, err
+}
+
+func 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 SetsockoptIPMreqn(fd, level, opt int, mreq *IPMreqn) (err error) {
+       return setsockopt(fd, level, opt, unsafe.Pointer(mreq), unsafe.Sizeof(*mreq))
+}
+
+// Keyctl Commands (http://man7.org/linux/man-pages/man2/keyctl.2.html)
+
+// KeyctlInt calls keyctl commands in which each argument is an int.
+// These commands are KEYCTL_REVOKE, KEYCTL_CHOWN, KEYCTL_CLEAR, KEYCTL_LINK,
+// KEYCTL_UNLINK, KEYCTL_NEGATE, KEYCTL_SET_REQKEY_KEYRING, KEYCTL_SET_TIMEOUT,
+// KEYCTL_ASSUME_AUTHORITY, KEYCTL_SESSION_TO_PARENT, KEYCTL_REJECT,
+// KEYCTL_INVALIDATE, and KEYCTL_GET_PERSISTENT.
+//sys  KeyctlInt(cmd int, arg2 int, arg3 int, arg4 int, arg5 int) (ret int, err error) = SYS_KEYCTL
+
+// KeyctlBuffer calls keyctl commands in which the third and fourth
+// arguments are a buffer and its length, respectively.
+// These commands are KEYCTL_UPDATE, KEYCTL_READ, and KEYCTL_INSTANTIATE.
+//sys  KeyctlBuffer(cmd int, arg2 int, buf []byte, arg5 int) (ret int, err error) = SYS_KEYCTL
+
+// KeyctlString calls keyctl commands which return a string.
+// These commands are KEYCTL_DESCRIBE and KEYCTL_GET_SECURITY.
+func KeyctlString(cmd int, id int) (string, error) {
+       // We must loop as the string data may change in between the syscalls.
+       // We could allocate a large buffer here to reduce the chance that the
+       // syscall needs to be called twice; however, this is unnecessary as
+       // the performance loss is negligible.
+       var buffer []byte
+       for {
+               // Try to fill the buffer with data
+               length, err := KeyctlBuffer(cmd, id, buffer, 0)
+               if err != nil {
+                       return "", err
+               }
+
+               // Check if the data was written
+               if length <= len(buffer) {
+                       // Exclude the null terminator
+                       return string(buffer[:length-1]), nil
+               }
+
+               // Make a bigger buffer if needed
+               buffer = make([]byte, length)
+       }
+}
+
+// Keyctl commands with special signatures.
+
+// KeyctlGetKeyringID implements the KEYCTL_GET_KEYRING_ID command.
+// See the full documentation at:
+// http://man7.org/linux/man-pages/man3/keyctl_get_keyring_ID.3.html
+func KeyctlGetKeyringID(id int, create bool) (ringid int, err error) {
+       createInt := 0
+       if create {
+               createInt = 1
+       }
+       return KeyctlInt(KEYCTL_GET_KEYRING_ID, id, createInt, 0, 0)
+}
+
+// KeyctlSetperm implements the KEYCTL_SETPERM command. The perm value is the
+// key handle permission mask as described in the "keyctl setperm" section of
+// http://man7.org/linux/man-pages/man1/keyctl.1.html.
+// See the full documentation at:
+// http://man7.org/linux/man-pages/man3/keyctl_setperm.3.html
+func KeyctlSetperm(id int, perm uint32) error {
+       _, err := KeyctlInt(KEYCTL_SETPERM, id, int(perm), 0, 0)
+       return err
+}
+
+//sys  keyctlJoin(cmd int, arg2 string) (ret int, err error) = SYS_KEYCTL
+
+// KeyctlJoinSessionKeyring implements the KEYCTL_JOIN_SESSION_KEYRING command.
+// See the full documentation at:
+// http://man7.org/linux/man-pages/man3/keyctl_join_session_keyring.3.html
+func KeyctlJoinSessionKeyring(name string) (ringid int, err error) {
+       return keyctlJoin(KEYCTL_JOIN_SESSION_KEYRING, name)
+}
+
+//sys  keyctlSearch(cmd int, arg2 int, arg3 string, arg4 string, arg5 int) (ret int, err error) = SYS_KEYCTL
+
+// KeyctlSearch implements the KEYCTL_SEARCH command.
+// See the full documentation at:
+// http://man7.org/linux/man-pages/man3/keyctl_search.3.html
+func KeyctlSearch(ringid int, keyType, description string, destRingid int) (id int, err error) {
+       return keyctlSearch(KEYCTL_SEARCH, ringid, keyType, description, destRingid)
+}
+
+//sys  keyctlIOV(cmd int, arg2 int, payload []Iovec, arg5 int) (err error) = SYS_KEYCTL
+
+// KeyctlInstantiateIOV implements the KEYCTL_INSTANTIATE_IOV command. This
+// command is similar to KEYCTL_INSTANTIATE, except that the payload is a slice
+// of Iovec (each of which represents a buffer) instead of a single buffer.
+// See the full documentation at:
+// http://man7.org/linux/man-pages/man3/keyctl_instantiate_iov.3.html
+func KeyctlInstantiateIOV(id int, payload []Iovec, ringid int) error {
+       return keyctlIOV(KEYCTL_INSTANTIATE_IOV, id, payload, ringid)
+}
+
+//sys  keyctlDH(cmd int, arg2 *KeyctlDHParams, buf []byte) (ret int, err error) = SYS_KEYCTL
+
+// KeyctlDHCompute implements the KEYCTL_DH_COMPUTE command. This command
+// computes a Diffie-Hellman shared secret based on the provide params. The
+// secret is written to the provided buffer and the returned size is the number
+// of bytes written (returning an error if there is insufficient space in the
+// buffer). If a nil buffer is passed in, this function returns the minimum
+// buffer length needed to store the appropriate data. Note that this differs
+// from KEYCTL_READ's behavior which always returns the requested payload size.
+// See the full documentation at:
+// http://man7.org/linux/man-pages/man3/keyctl_dh_compute.3.html
+func KeyctlDHCompute(params *KeyctlDHParams, buffer []byte) (size int, err error) {
+       return keyctlDH(KEYCTL_DH_COMPUTE, params, buffer)
+}
+
+func Recvmsg(fd int, p, oob []byte, flags int) (n, oobn int, recvflags int, from Sockaddr, err error) {
+       var msg Msghdr
+       var rsa RawSockaddrAny
+       msg.Name = (*byte)(unsafe.Pointer(&rsa))
+       msg.Namelen = uint32(SizeofSockaddrAny)
+       var iov Iovec
+       if len(p) > 0 {
+               iov.Base = (*byte)(unsafe.Pointer(&p[0]))
+               iov.SetLen(len(p))
+       }
+       var dummy byte
+       if len(oob) > 0 {
+               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 && len(p) == 0 {
+                       iov.Base = &dummy
+                       iov.SetLen(1)
+               }
+               msg.Control = (*byte)(unsafe.Pointer(&oob[0]))
+               msg.SetControllen(len(oob))
+       }
+       msg.Iov = &iov
+       msg.Iovlen = 1
+       if n, err = recvmsg(fd, &msg, flags); err != nil {
+               return
+       }
+       oobn = int(msg.Controllen)
+       recvflags = int(msg.Flags)
+       // source address is only specified if the socket is unconnected
+       if rsa.Addr.Family != AF_UNSPEC {
+               from, err = anyToSockaddr(&rsa)
+       }
+       return
+}
+
+func Sendmsg(fd int, p, oob []byte, to Sockaddr, flags int) (err error) {
+       _, err = SendmsgN(fd, p, oob, to, flags)
+       return
+}
+
+func SendmsgN(fd int, p, oob []byte, to Sockaddr, flags int) (n int, err error) {
+       var ptr unsafe.Pointer
+       var salen _Socklen
+       if to != nil {
+               var err error
+               ptr, salen, err = to.sockaddr()
+               if err != nil {
+                       return 0, err
+               }
+       }
+       var msg Msghdr
+       msg.Name = (*byte)(unsafe.Pointer(ptr))
+       msg.Namelen = uint32(salen)
+       var iov Iovec
+       if len(p) > 0 {
+               iov.Base = (*byte)(unsafe.Pointer(&p[0]))
+               iov.SetLen(len(p))
+       }
+       var dummy byte
+       if len(oob) > 0 {
+               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 && len(p) == 0 {
+                       iov.Base = &dummy
+                       iov.SetLen(1)
+               }
+               msg.Control = (*byte)(unsafe.Pointer(&oob[0]))
+               msg.SetControllen(len(oob))
+       }
+       msg.Iov = &iov
+       msg.Iovlen = 1
+       if n, err = sendmsg(fd, &msg, flags); err != nil {
+               return 0, err
+       }
+       if len(oob) > 0 && len(p) == 0 {
+               n = 0
+       }
+       return n, nil
+}
+
+// BindToDevice binds the socket associated with fd to device.
+func BindToDevice(fd int, device string) (err error) {
+       return SetsockoptString(fd, SOL_SOCKET, SO_BINDTODEVICE, device)
+}
+
+//sys  ptrace(request int, pid int, addr uintptr, data uintptr) (err error)
+
+func ptracePeek(req int, pid int, addr uintptr, out []byte) (count int, err error) {
+       // The peek requests are machine-size oriented, so we wrap it
+       // to retrieve arbitrary-length data.
+
+       // The ptrace syscall differs from glibc's ptrace.
+       // Peeks returns the word in *data, not as the return value.
+
+       var buf [sizeofPtr]byte
+
+       // Leading edge.  PEEKTEXT/PEEKDATA don't require aligned
+       // access (PEEKUSER warns that it might), but if we don't
+       // align our reads, we might straddle an unmapped page
+       // boundary and not get the bytes leading up to the page
+       // boundary.
+       n := 0
+       if addr%sizeofPtr != 0 {
+               err = ptrace(req, pid, addr-addr%sizeofPtr, uintptr(unsafe.Pointer(&buf[0])))
+               if err != nil {
+                       return 0, err
+               }
+               n += copy(out, buf[addr%sizeofPtr:])
+               out = out[n:]
+       }
+
+       // Remainder.
+       for len(out) > 0 {
+               // We use an internal buffer to guarantee alignment.
+               // It's not documented if this is necessary, but we're paranoid.
+               err = ptrace(req, pid, addr+uintptr(n), uintptr(unsafe.Pointer(&buf[0])))
+               if err != nil {
+                       return n, err
+               }
+               copied := copy(out, buf[0:])
+               n += copied
+               out = out[copied:]
+       }
+
+       return n, nil
+}
+
+func PtracePeekText(pid int, addr uintptr, out []byte) (count int, err error) {
+       return ptracePeek(PTRACE_PEEKTEXT, pid, addr, out)
+}
+
+func PtracePeekData(pid int, addr uintptr, out []byte) (count int, err error) {
+       return ptracePeek(PTRACE_PEEKDATA, pid, addr, out)
+}
+
+func PtracePeekUser(pid int, addr uintptr, out []byte) (count int, err error) {
+       return ptracePeek(PTRACE_PEEKUSR, pid, addr, out)
+}
+
+func ptracePoke(pokeReq int, peekReq int, pid int, addr uintptr, data []byte) (count int, err error) {
+       // As for ptracePeek, we need to align our accesses to deal
+       // with the possibility of straddling an invalid page.
+
+       // Leading edge.
+       n := 0
+       if addr%sizeofPtr != 0 {
+               var buf [sizeofPtr]byte
+               err = ptrace(peekReq, pid, addr-addr%sizeofPtr, uintptr(unsafe.Pointer(&buf[0])))
+               if err != nil {
+                       return 0, err
+               }
+               n += copy(buf[addr%sizeofPtr:], data)
+               word := *((*uintptr)(unsafe.Pointer(&buf[0])))
+               err = ptrace(pokeReq, pid, addr-addr%sizeofPtr, word)
+               if err != nil {
+                       return 0, err
+               }
+               data = data[n:]
+       }
+
+       // Interior.
+       for len(data) > sizeofPtr {
+               word := *((*uintptr)(unsafe.Pointer(&data[0])))
+               err = ptrace(pokeReq, pid, addr+uintptr(n), word)
+               if err != nil {
+                       return n, err
+               }
+               n += sizeofPtr
+               data = data[sizeofPtr:]
+       }
+
+       // Trailing edge.
+       if len(data) > 0 {
+               var buf [sizeofPtr]byte
+               err = ptrace(peekReq, pid, addr+uintptr(n), uintptr(unsafe.Pointer(&buf[0])))
+               if err != nil {
+                       return n, err
+               }
+               copy(buf[0:], data)
+               word := *((*uintptr)(unsafe.Pointer(&buf[0])))
+               err = ptrace(pokeReq, pid, addr+uintptr(n), word)
+               if err != nil {
+                       return n, err
+               }
+               n += len(data)
+       }
+
+       return n, nil
+}
+
+func PtracePokeText(pid int, addr uintptr, data []byte) (count int, err error) {
+       return ptracePoke(PTRACE_POKETEXT, PTRACE_PEEKTEXT, pid, addr, data)
+}
+
+func PtracePokeData(pid int, addr uintptr, data []byte) (count int, err error) {
+       return ptracePoke(PTRACE_POKEDATA, PTRACE_PEEKDATA, pid, addr, data)
+}
+
+func PtraceGetRegs(pid int, regsout *PtraceRegs) (err error) {
+       return ptrace(PTRACE_GETREGS, pid, 0, uintptr(unsafe.Pointer(regsout)))
+}
+
+func PtraceSetRegs(pid int, regs *PtraceRegs) (err error) {
+       return ptrace(PTRACE_SETREGS, pid, 0, uintptr(unsafe.Pointer(regs)))
+}
+
+func PtraceSetOptions(pid int, options int) (err error) {
+       return ptrace(PTRACE_SETOPTIONS, pid, 0, uintptr(options))
+}
+
+func PtraceGetEventMsg(pid int) (msg uint, err error) {
+       var data _C_long
+       err = ptrace(PTRACE_GETEVENTMSG, pid, 0, uintptr(unsafe.Pointer(&data)))
+       msg = uint(data)
+       return
+}
+
+func PtraceCont(pid int, signal int) (err error) {
+       return ptrace(PTRACE_CONT, pid, 0, uintptr(signal))
+}
+
+func PtraceSyscall(pid int, signal int) (err error) {
+       return ptrace(PTRACE_SYSCALL, pid, 0, uintptr(signal))
+}
+
+func PtraceSingleStep(pid int) (err error) { return ptrace(PTRACE_SINGLESTEP, pid, 0, 0) }
+
+func PtraceAttach(pid int) (err error) { return ptrace(PTRACE_ATTACH, pid, 0, 0) }
+
+func PtraceDetach(pid int) (err error) { return ptrace(PTRACE_DETACH, pid, 0, 0) }
+
+//sys  reboot(magic1 uint, magic2 uint, cmd int, arg string) (err error)
+
+func Reboot(cmd int) (err error) {
+       return reboot(LINUX_REBOOT_MAGIC1, LINUX_REBOOT_MAGIC2, cmd, "")
+}
+
+func ReadDirent(fd int, buf []byte) (n int, err error) {
+       return Getdents(fd, buf)
+}
+
+func direntIno(buf []byte) (uint64, bool) {
+       return readInt(buf, unsafe.Offsetof(Dirent{}.Ino), unsafe.Sizeof(Dirent{}.Ino))
+}
+
+func direntReclen(buf []byte) (uint64, bool) {
+       return readInt(buf, unsafe.Offsetof(Dirent{}.Reclen), unsafe.Sizeof(Dirent{}.Reclen))
+}
+
+func direntNamlen(buf []byte) (uint64, bool) {
+       reclen, ok := direntReclen(buf)
+       if !ok {
+               return 0, false
+       }
+       return reclen - uint64(unsafe.Offsetof(Dirent{}.Name)), true
+}
+
+//sys  mount(source string, target string, fstype string, flags uintptr, data *byte) (err error)
+
+func Mount(source string, target string, fstype string, flags uintptr, data string) (err error) {
+       // Certain file systems get rather angry and EINVAL if you give
+       // them an empty string of data, rather than NULL.
+       if data == "" {
+               return mount(source, target, fstype, flags, nil)
+       }
+       datap, err := BytePtrFromString(data)
+       if err != nil {
+               return err
+       }
+       return mount(source, target, fstype, flags, datap)
+}
+
+// Sendto
+// Recvfrom
+// Socketpair
+
+/*
+ * Direct access
+ */
+//sys  Acct(path string) (err error)
+//sys  AddKey(keyType string, description string, payload []byte, ringid int) (id int, err error)
+//sys  Adjtimex(buf *Timex) (state int, err error)
+//sys  Chdir(path string) (err error)
+//sys  Chroot(path string) (err error)
+//sys  ClockGettime(clockid int32, time *Timespec) (err error)
+//sys  Close(fd int) (err error)
+//sys  CopyFileRange(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n 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  Flock(fd int, how int) (err error)
+//sys  Fsync(fd int) (err error)
+//sys  Getdents(fd int, buf []byte) (n int, err error) = SYS_GETDENTS64
+//sysnb        Getpgid(pid int) (pgid int, err error)
+
+func Getpgrp() (pid int) {
+       pid, _ = Getpgid(0)
+       return
+}
+
+//sysnb        Getpid() (pid int)
+//sysnb        Getppid() (ppid int)
+//sys  Getpriority(which int, who int) (prio int, err error)
+//sys  Getrandom(buf []byte, flags int) (n int, err error)
+//sysnb        Getrusage(who int, rusage *Rusage) (err error)
+//sysnb        Getsid(pid int) (sid int, err error)
+//sysnb        Gettid() (tid int)
+//sys  Getxattr(path string, attr string, dest []byte) (sz int, err error)
+//sys  InotifyAddWatch(fd int, pathname string, mask uint32) (watchdesc int, err error)
+//sysnb        InotifyInit1(flags int) (fd int, err error)
+//sysnb        InotifyRmWatch(fd int, watchdesc uint32) (success int, err error)
+//sysnb        Kill(pid int, sig syscall.Signal) (err error)
+//sys  Klogctl(typ int, buf []byte) (n int, err error) = SYS_SYSLOG
+//sys  Lgetxattr(path string, attr string, dest []byte) (sz int, err error)
+//sys  Listxattr(path string, dest []byte) (sz int, err error)
+//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  Mkdirat(dirfd int, path string, mode uint32) (err error)
+//sys  Mknodat(dirfd int, path string, mode uint32, dev int) (err error)
+//sys  Nanosleep(time *Timespec, leftover *Timespec) (err error)
+//sys  PivotRoot(newroot string, putold string) (err error) = SYS_PIVOT_ROOT
+//sysnb prlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) = SYS_PRLIMIT64
+//sys   Prctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (err error)
+//sys  read(fd int, p []byte) (n int, err error)
+//sys  Removexattr(path string, attr string) (err error)
+//sys  Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error)
+//sys  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)
+//sysnb        Setpgid(pid int, pgid int) (err error)
+//sysnb        Setsid() (pid int, err error)
+//sysnb        Settimeofday(tv *Timeval) (err error)
+//sys  Setns(fd int, nstype int) (err error)
+
+// issue 1435.
+// On linux Setuid and Setgid only affects the current thread, not the process.
+// This does not match what most callers expect so we must return an error
+// here rather than letting the caller think that the call succeeded.
+
+func Setuid(uid int) (err error) {
+       return EOPNOTSUPP
+}
+
+func Setgid(uid int) (err error) {
+       return EOPNOTSUPP
+}
+
+//sys  Setpriority(which int, who int, prio int) (err error)
+//sys  Setxattr(path string, attr string, data []byte, flags int) (err error)
+//sys  Sync()
+//sys  Syncfs(fd int) (err error)
+//sysnb        Sysinfo(info *Sysinfo_t) (err error)
+//sys  Tee(rfd int, wfd int, len int, flags int) (n int64, err error)
+//sysnb        Tgkill(tgid int, tid int, sig syscall.Signal) (err error)
+//sysnb        Times(tms *Tms) (ticks uintptr, err error)
+//sysnb        Umask(mask int) (oldmask int)
+//sysnb        Uname(buf *Utsname) (err error)
+//sys  Unmount(target string, flags int) (err error) = SYS_UMOUNT2
+//sys  Unshare(flags int) (err error)
+//sys  Ustat(dev int, ubuf *Ustat_t) (err error)
+//sys  write(fd int, p []byte) (n int, err error)
+//sys  exitThread(code int) (err error) = SYS_EXIT
+//sys  readlen(fd int, p *byte, np int) (n int, err error) = SYS_READ
+//sys  writelen(fd int, p *byte, np int) (n int, err error) = SYS_WRITE
+
+// mmap varies by architecture; see syscall_linux_*.go.
+//sys  munmap(addr uintptr, length uintptr) (err error)
+
+var mapper = &mmapper{
+       active: make(map[*byte][]byte),
+       mmap:   mmap,
+       munmap: munmap,
+}
+
+func Mmap(fd int, offset int64, length int, prot int, flags int) (data []byte, err error) {
+       return mapper.Mmap(fd, offset, length, prot, flags)
+}
+
+func Munmap(b []byte) (err error) {
+       return mapper.Munmap(b)
+}
+
+//sys  Madvise(b []byte, advice int) (err error)
+//sys  Mprotect(b []byte, prot int) (err error)
+//sys  Mlock(b []byte) (err error)
+//sys  Mlockall(flags int) (err error)
+//sys  Msync(b []byte, flags int) (err error)
+//sys  Munlock(b []byte) (err error)
+//sys  Munlockall() (err error)
+
+// Vmsplice splices user pages from a slice of Iovecs into a pipe specified by fd,
+// using the specified flags.
+func Vmsplice(fd int, iovs []Iovec, flags int) (int, error) {
+       n, _, errno := Syscall6(
+               SYS_VMSPLICE,
+               uintptr(fd),
+               uintptr(unsafe.Pointer(&iovs[0])),
+               uintptr(len(iovs)),
+               uintptr(flags),
+               0,
+               0,
+       )
+       if errno != 0 {
+               return 0, syscall.Errno(errno)
+       }
+
+       return int(n), nil
+}
+
+/*
+ * Unimplemented
+ */
+// AfsSyscall
+// Alarm
+// ArchPrctl
+// Brk
+// Capget
+// Capset
+// ClockGetres
+// ClockNanosleep
+// ClockSettime
+// Clone
+// CreateModule
+// DeleteModule
+// EpollCtlOld
+// EpollPwait
+// EpollWaitOld
+// Execve
+// Fgetxattr
+// Flistxattr
+// Fork
+// Fremovexattr
+// Fsetxattr
+// Futex
+// GetKernelSyms
+// GetMempolicy
+// GetRobustList
+// GetThreadArea
+// Getitimer
+// Getpmsg
+// IoCancel
+// IoDestroy
+// IoGetevents
+// IoSetup
+// IoSubmit
+// IoprioGet
+// IoprioSet
+// KexecLoad
+// LookupDcookie
+// Mbind
+// MigratePages
+// Mincore
+// ModifyLdt
+// Mount
+// MovePages
+// MqGetsetattr
+// MqNotify
+// MqOpen
+// MqTimedreceive
+// MqTimedsend
+// MqUnlink
+// Mremap
+// Msgctl
+// Msgget
+// Msgrcv
+// Msgsnd
+// Newfstatat
+// Nfsservctl
+// Personality
+// Pselect6
+// Ptrace
+// Putpmsg
+// QueryModule
+// Quotactl
+// Readahead
+// Readv
+// RemapFilePages
+// RestartSyscall
+// RtSigaction
+// RtSigpending
+// RtSigprocmask
+// RtSigqueueinfo
+// RtSigreturn
+// RtSigsuspend
+// RtSigtimedwait
+// SchedGetPriorityMax
+// SchedGetPriorityMin
+// SchedGetaffinity
+// SchedGetparam
+// SchedGetscheduler
+// SchedRrGetInterval
+// SchedSetaffinity
+// SchedSetparam
+// SchedYield
+// Security
+// Semctl
+// Semget
+// Semop
+// Semtimedop
+// SetMempolicy
+// SetRobustList
+// SetThreadArea
+// SetTidAddress
+// Shmat
+// Shmctl
+// Shmdt
+// Shmget
+// Sigaltstack
+// Signalfd
+// Swapoff
+// Swapon
+// Sysfs
+// TimerCreate
+// TimerDelete
+// TimerGetoverrun
+// TimerGettime
+// TimerSettime
+// Timerfd
+// Tkill (obsolete)
+// Tuxcall
+// Umount2
+// Uselib
+// Utimensat
+// Vfork
+// Vhangup
+// Vserver
+// Waitid
+// _Sysctl
diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_386.go b/vendor/golang.org/x/sys/unix/syscall_linux_386.go
new file mode 100644 (file)
index 0000000..2b881b9
--- /dev/null
@@ -0,0 +1,399 @@
+// Copyright 2009 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// TODO(rsc): Rewrite all nn(SP) references into name+(nn-8)(FP)
+// so that go vet can check that they are correct.
+
+// +build 386,linux
+
+package unix
+
+import (
+       "syscall"
+       "unsafe"
+)
+
+func Getpagesize() int { return 4096 }
+
+func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) }
+
+func NsecToTimespec(nsec int64) (ts Timespec) {
+       ts.Sec = int32(nsec / 1e9)
+       ts.Nsec = int32(nsec % 1e9)
+       return
+}
+
+func NsecToTimeval(nsec int64) (tv Timeval) {
+       nsec += 999 // round up to microsecond
+       tv.Sec = int32(nsec / 1e9)
+       tv.Usec = int32(nsec % 1e9 / 1e3)
+       return
+}
+
+//sysnb        pipe(p *[2]_C_int) (err error)
+
+func Pipe(p []int) (err error) {
+       if len(p) != 2 {
+               return EINVAL
+       }
+       var pp [2]_C_int
+       err = pipe(&pp)
+       p[0] = int(pp[0])
+       p[1] = int(pp[1])
+       return
+}
+
+//sysnb pipe2(p *[2]_C_int, flags int) (err error)
+
+func Pipe2(p []int, flags int) (err error) {
+       if len(p) != 2 {
+               return EINVAL
+       }
+       var pp [2]_C_int
+       err = pipe2(&pp, flags)
+       p[0] = int(pp[0])
+       p[1] = int(pp[1])
+       return
+}
+
+// 64-bit file system and 32-bit uid calls
+// (386 default is 32-bit file system and 16-bit uid).
+//sys  Dup2(oldfd int, newfd int) (err error)
+//sys  Fadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64_64
+//sys  Fchown(fd int, uid int, gid int) (err error) = SYS_FCHOWN32
+//sys  Fstat(fd int, stat *Stat_t) (err error) = SYS_FSTAT64
+//sys  Ftruncate(fd int, length int64) (err error) = SYS_FTRUNCATE64
+//sysnb        Getegid() (egid int) = SYS_GETEGID32
+//sysnb        Geteuid() (euid int) = SYS_GETEUID32
+//sysnb        Getgid() (gid int) = SYS_GETGID32
+//sysnb        Getuid() (uid int) = SYS_GETUID32
+//sysnb        InotifyInit() (fd int, err error)
+//sys  Ioperm(from int, num int, on int) (err error)
+//sys  Iopl(level int) (err error)
+//sys  Lchown(path string, uid int, gid int) (err error) = SYS_LCHOWN32
+//sys  Lstat(path string, stat *Stat_t) (err error) = SYS_LSTAT64
+//sys  Pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64
+//sys  Pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64
+//sys  sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) = SYS_SENDFILE64
+//sys  Setfsgid(gid int) (err error) = SYS_SETFSGID32
+//sys  Setfsuid(uid int) (err error) = SYS_SETFSUID32
+//sysnb        Setregid(rgid int, egid int) (err error) = SYS_SETREGID32
+//sysnb        Setresgid(rgid int, egid int, sgid int) (err error) = SYS_SETRESGID32
+//sysnb        Setresuid(ruid int, euid int, suid int) (err error) = SYS_SETRESUID32
+//sysnb        Setreuid(ruid int, euid int) (err error) = SYS_SETREUID32
+//sys  Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error)
+//sys  Stat(path string, stat *Stat_t) (err error) = SYS_STAT64
+//sys  SyncFileRange(fd int, off int64, n int64, flags int) (err error)
+//sys  Truncate(path string, length int64) (err error) = SYS_TRUNCATE64
+//sysnb        getgroups(n int, list *_Gid_t) (nn int, err error) = SYS_GETGROUPS32
+//sysnb        setgroups(n int, list *_Gid_t) (err error) = SYS_SETGROUPS32
+//sys  Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) = SYS__NEWSELECT
+
+//sys  mmap2(addr uintptr, length uintptr, prot int, flags int, fd int, pageOffset uintptr) (xaddr uintptr, err error)
+//sys  EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error)
+//sys  Pause() (err error)
+
+func mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) {
+       page := uintptr(offset / 4096)
+       if offset != int64(page)*4096 {
+               return 0, EINVAL
+       }
+       return mmap2(addr, length, prot, flags, fd, page)
+}
+
+type rlimit32 struct {
+       Cur uint32
+       Max uint32
+}
+
+//sysnb getrlimit(resource int, rlim *rlimit32) (err error) = SYS_GETRLIMIT
+
+const rlimInf32 = ^uint32(0)
+const rlimInf64 = ^uint64(0)
+
+func Getrlimit(resource int, rlim *Rlimit) (err error) {
+       err = prlimit(0, resource, nil, rlim)
+       if err != ENOSYS {
+               return err
+       }
+
+       rl := rlimit32{}
+       err = getrlimit(resource, &rl)
+       if err != nil {
+               return
+       }
+
+       if rl.Cur == rlimInf32 {
+               rlim.Cur = rlimInf64
+       } else {
+               rlim.Cur = uint64(rl.Cur)
+       }
+
+       if rl.Max == rlimInf32 {
+               rlim.Max = rlimInf64
+       } else {
+               rlim.Max = uint64(rl.Max)
+       }
+       return
+}
+
+//sysnb setrlimit(resource int, rlim *rlimit32) (err error) = SYS_SETRLIMIT
+
+func Setrlimit(resource int, rlim *Rlimit) (err error) {
+       err = prlimit(0, resource, rlim, nil)
+       if err != ENOSYS {
+               return err
+       }
+
+       rl := rlimit32{}
+       if rlim.Cur == rlimInf64 {
+               rl.Cur = rlimInf32
+       } else if rlim.Cur < uint64(rlimInf32) {
+               rl.Cur = uint32(rlim.Cur)
+       } else {
+               return EINVAL
+       }
+       if rlim.Max == rlimInf64 {
+               rl.Max = rlimInf32
+       } else if rlim.Max < uint64(rlimInf32) {
+               rl.Max = uint32(rlim.Max)
+       } else {
+               return EINVAL
+       }
+
+       return setrlimit(resource, &rl)
+}
+
+// Underlying system call writes to newoffset via pointer.
+// Implemented in assembly to avoid allocation.
+func seek(fd int, offset int64, whence int) (newoffset int64, err syscall.Errno)
+
+func Seek(fd int, offset int64, whence int) (newoffset int64, err error) {
+       newoffset, errno := seek(fd, offset, whence)
+       if errno != 0 {
+               return 0, errno
+       }
+       return newoffset, nil
+}
+
+// Vsyscalls on amd64.
+//sysnb        Gettimeofday(tv *Timeval) (err error)
+//sysnb        Time(t *Time_t) (tt Time_t, err error)
+
+//sys  Utime(path string, buf *Utimbuf) (err error)
+
+// On x86 Linux, all the socket calls go through an extra indirection,
+// I think because the 5-register system call interface can't handle
+// the 6-argument calls like sendto and recvfrom.  Instead the
+// arguments to the underlying system call are the number below
+// and a pointer to an array of uintptr.  We hide the pointer in the
+// socketcall assembly to avoid allocation on every system call.
+
+const (
+       // see linux/net.h
+       _SOCKET      = 1
+       _BIND        = 2
+       _CONNECT     = 3
+       _LISTEN      = 4
+       _ACCEPT      = 5
+       _GETSOCKNAME = 6
+       _GETPEERNAME = 7
+       _SOCKETPAIR  = 8
+       _SEND        = 9
+       _RECV        = 10
+       _SENDTO      = 11
+       _RECVFROM    = 12
+       _SHUTDOWN    = 13
+       _SETSOCKOPT  = 14
+       _GETSOCKOPT  = 15
+       _SENDMSG     = 16
+       _RECVMSG     = 17
+       _ACCEPT4     = 18
+       _RECVMMSG    = 19
+       _SENDMMSG    = 20
+)
+
+func socketcall(call int, a0, a1, a2, a3, a4, a5 uintptr) (n int, err syscall.Errno)
+func rawsocketcall(call int, a0, a1, a2, a3, a4, a5 uintptr) (n int, err syscall.Errno)
+
+func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {
+       fd, e := socketcall(_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), 0, 0, 0)
+       if e != 0 {
+               err = e
+       }
+       return
+}
+
+func accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) {
+       fd, e := socketcall(_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0)
+       if e != 0 {
+               err = e
+       }
+       return
+}
+
+func getsockname(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {
+       _, e := rawsocketcall(_GETSOCKNAME, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), 0, 0, 0)
+       if e != 0 {
+               err = e
+       }
+       return
+}
+
+func getpeername(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {
+       _, e := rawsocketcall(_GETPEERNAME, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), 0, 0, 0)
+       if e != 0 {
+               err = e
+       }
+       return
+}
+
+func socketpair(domain int, typ int, flags int, fd *[2]int32) (err error) {
+       _, e := rawsocketcall(_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(flags), uintptr(unsafe.Pointer(fd)), 0, 0)
+       if e != 0 {
+               err = e
+       }
+       return
+}
+
+func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {
+       _, e := socketcall(_BIND, uintptr(s), uintptr(addr), uintptr(addrlen), 0, 0, 0)
+       if e != 0 {
+               err = e
+       }
+       return
+}
+
+func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {
+       _, e := socketcall(_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen), 0, 0, 0)
+       if e != 0 {
+               err = e
+       }
+       return
+}
+
+func socket(domain int, typ int, proto int) (fd int, err error) {
+       fd, e := rawsocketcall(_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto), 0, 0, 0)
+       if e != 0 {
+               err = e
+       }
+       return
+}
+
+func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {
+       _, e := socketcall(_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)
+       if e != 0 {
+               err = e
+       }
+       return
+}
+
+func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {
+       _, e := socketcall(_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), vallen, 0)
+       if e != 0 {
+               err = e
+       }
+       return
+}
+
+func recvfrom(s int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {
+       var base uintptr
+       if len(p) > 0 {
+               base = uintptr(unsafe.Pointer(&p[0]))
+       }
+       n, e := socketcall(_RECVFROM, uintptr(s), base, uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))
+       if e != 0 {
+               err = e
+       }
+       return
+}
+
+func sendto(s int, p []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {
+       var base uintptr
+       if len(p) > 0 {
+               base = uintptr(unsafe.Pointer(&p[0]))
+       }
+       _, e := socketcall(_SENDTO, uintptr(s), base, uintptr(len(p)), uintptr(flags), uintptr(to), uintptr(addrlen))
+       if e != 0 {
+               err = e
+       }
+       return
+}
+
+func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {
+       n, e := socketcall(_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags), 0, 0, 0)
+       if e != 0 {
+               err = e
+       }
+       return
+}
+
+func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {
+       n, e := socketcall(_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags), 0, 0, 0)
+       if e != 0 {
+               err = e
+       }
+       return
+}
+
+func Listen(s int, n int) (err error) {
+       _, e := socketcall(_LISTEN, uintptr(s), uintptr(n), 0, 0, 0, 0)
+       if e != 0 {
+               err = e
+       }
+       return
+}
+
+func Shutdown(s, how int) (err error) {
+       _, e := socketcall(_SHUTDOWN, uintptr(s), uintptr(how), 0, 0, 0, 0)
+       if e != 0 {
+               err = e
+       }
+       return
+}
+
+func Fstatfs(fd int, buf *Statfs_t) (err error) {
+       _, _, e := Syscall(SYS_FSTATFS64, uintptr(fd), unsafe.Sizeof(*buf), uintptr(unsafe.Pointer(buf)))
+       if e != 0 {
+               err = e
+       }
+       return
+}
+
+func Statfs(path string, buf *Statfs_t) (err error) {
+       pathp, err := BytePtrFromString(path)
+       if err != nil {
+               return err
+       }
+       _, _, e := Syscall(SYS_STATFS64, uintptr(unsafe.Pointer(pathp)), unsafe.Sizeof(*buf), uintptr(unsafe.Pointer(buf)))
+       if e != 0 {
+               err = e
+       }
+       return
+}
+
+func (r *PtraceRegs) PC() uint64 { return uint64(uint32(r.Eip)) }
+
+func (r *PtraceRegs) SetPC(pc uint64) { r.Eip = int32(pc) }
+
+func (iov *Iovec) SetLen(length int) {
+       iov.Len = uint32(length)
+}
+
+func (msghdr *Msghdr) SetControllen(length int) {
+       msghdr.Controllen = uint32(length)
+}
+
+func (cmsg *Cmsghdr) SetLen(length int) {
+       cmsg.Len = uint32(length)
+}
+
+//sys  poll(fds *PollFd, nfds int, timeout int) (n int, err error)
+
+func Poll(fds []PollFd, timeout int) (n int, err error) {
+       if len(fds) == 0 {
+               return poll(nil, 0, timeout)
+       }
+       return poll(&fds[0], len(fds), timeout)
+}
diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_amd64.go b/vendor/golang.org/x/sys/unix/syscall_linux_amd64.go
new file mode 100644 (file)
index 0000000..9516a3f
--- /dev/null
@@ -0,0 +1,152 @@
+// Copyright 2009 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build amd64,linux
+
+package unix
+
+//sys  Dup2(oldfd int, newfd int) (err error)
+//sys  EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error)
+//sys  Fadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64
+//sys  Fchown(fd int, uid int, gid int) (err error)
+//sys  Fstat(fd int, stat *Stat_t) (err error)
+//sys  Fstatfs(fd int, buf *Statfs_t) (err error)
+//sys  Ftruncate(fd int, length int64) (err error)
+//sysnb        Getegid() (egid int)
+//sysnb        Geteuid() (euid int)
+//sysnb        Getgid() (gid int)
+//sysnb        Getrlimit(resource int, rlim *Rlimit) (err error)
+//sysnb        Getuid() (uid int)
+//sysnb        InotifyInit() (fd int, err error)
+//sys  Ioperm(from int, num int, on int) (err error)
+//sys  Iopl(level int) (err error)
+//sys  Lchown(path string, uid int, gid int) (err error)
+//sys  Listen(s int, n int) (err error)
+//sys  Lstat(path string, stat *Stat_t) (err error)
+//sys  Pause() (err error)
+//sys  Pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64
+//sys  Pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64
+//sys  Seek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK
+//sys  Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error)
+//sys  sendfile(outfd int, infd int, offset *int64, count int) (written int, err error)
+//sys  Setfsgid(gid int) (err error)
+//sys  Setfsuid(uid int) (err error)
+//sysnb        Setregid(rgid int, egid int) (err error)
+//sysnb        Setresgid(rgid int, egid int, sgid int) (err error)
+//sysnb        Setresuid(ruid int, euid int, suid int) (err error)
+//sysnb        Setrlimit(resource int, rlim *Rlimit) (err error)
+//sysnb        Setreuid(ruid int, euid int) (err error)
+//sys  Shutdown(fd int, how int) (err error)
+//sys  Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error)
+//sys  Stat(path string, stat *Stat_t) (err error)
+//sys  Statfs(path string, buf *Statfs_t) (err error)
+//sys  SyncFileRange(fd int, off int64, n int64, flags int) (err error)
+//sys  Truncate(path string, length int64) (err error)
+//sys  accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error)
+//sys  accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error)
+//sys  bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)
+//sys  connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)
+//sysnb        getgroups(n int, list *_Gid_t) (nn int, err error)
+//sysnb        setgroups(n int, list *_Gid_t) (err error)
+//sys  getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error)
+//sys  setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error)
+//sysnb        socket(domain int, typ int, proto int) (fd int, err error)
+//sysnb        socketpair(domain int, typ int, proto int, fd *[2]int32) (err error)
+//sysnb        getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error)
+//sysnb        getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error)
+//sys  recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error)
+//sys  sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error)
+//sys  recvmsg(s int, msg *Msghdr, flags int) (n int, err error)
+//sys  sendmsg(s int, msg *Msghdr, flags int) (n int, err error)
+//sys  mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error)
+
+func Gettimeofday(tv *Timeval) (err error) {
+       errno := gettimeofday(tv)
+       if errno != 0 {
+               return errno
+       }
+       return nil
+}
+
+func Getpagesize() int { return 4096 }
+
+func Time(t *Time_t) (tt Time_t, err error) {
+       var tv Timeval
+       errno := gettimeofday(&tv)
+       if errno != 0 {
+               return 0, errno
+       }
+       if t != nil {
+               *t = Time_t(tv.Sec)
+       }
+       return Time_t(tv.Sec), nil
+}
+
+//sys  Utime(path string, buf *Utimbuf) (err error)
+
+func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) }
+
+func NsecToTimespec(nsec int64) (ts Timespec) {
+       ts.Sec = nsec / 1e9
+       ts.Nsec = nsec % 1e9
+       return
+}
+
+func NsecToTimeval(nsec int64) (tv Timeval) {
+       nsec += 999 // round up to microsecond
+       tv.Sec = nsec / 1e9
+       tv.Usec = nsec % 1e9 / 1e3
+       return
+}
+
+//sysnb        pipe(p *[2]_C_int) (err error)
+
+func Pipe(p []int) (err error) {
+       if len(p) != 2 {
+               return EINVAL
+       }
+       var pp [2]_C_int
+       err = pipe(&pp)
+       p[0] = int(pp[0])
+       p[1] = int(pp[1])
+       return
+}
+
+//sysnb pipe2(p *[2]_C_int, flags int) (err error)
+
+func Pipe2(p []int, flags int) (err error) {
+       if len(p) != 2 {
+               return EINVAL
+       }
+       var pp [2]_C_int
+       err = pipe2(&pp, flags)
+       p[0] = int(pp[0])
+       p[1] = int(pp[1])
+       return
+}
+
+func (r *PtraceRegs) PC() uint64 { return r.Rip }
+
+func (r *PtraceRegs) SetPC(pc uint64) { r.Rip = pc }
+
+func (iov *Iovec) SetLen(length int) {
+       iov.Len = uint64(length)
+}
+
+func (msghdr *Msghdr) SetControllen(length int) {
+       msghdr.Controllen = uint64(length)
+}
+
+func (cmsg *Cmsghdr) SetLen(length int) {
+       cmsg.Len = uint64(length)
+}
+
+//sys  poll(fds *PollFd, nfds int, timeout int) (n int, err error)
+
+func Poll(fds []PollFd, timeout int) (n int, err error) {
+       if len(fds) == 0 {
+               return poll(nil, 0, timeout)
+       }
+       return poll(&fds[0], len(fds), timeout)
+}
diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_amd64_gc.go b/vendor/golang.org/x/sys/unix/syscall_linux_amd64_gc.go
new file mode 100644 (file)
index 0000000..21a4946
--- /dev/null
@@ -0,0 +1,13 @@
+// Copyright 2016 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build amd64,linux
+// +build !gccgo
+
+package unix
+
+import "syscall"
+
+//go:noescape
+func gettimeofday(tv *Timeval) (err syscall.Errno)
diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_arm.go b/vendor/golang.org/x/sys/unix/syscall_linux_arm.go
new file mode 100644 (file)
index 0000000..71d8702
--- /dev/null
@@ -0,0 +1,263 @@
+// Copyright 2009 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build arm,linux
+
+package unix
+
+import (
+       "syscall"
+       "unsafe"
+)
+
+func Getpagesize() int { return 4096 }
+
+func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) }
+
+func NsecToTimespec(nsec int64) (ts Timespec) {
+       ts.Sec = int32(nsec / 1e9)
+       ts.Nsec = int32(nsec % 1e9)
+       return
+}
+
+func NsecToTimeval(nsec int64) (tv Timeval) {
+       nsec += 999 // round up to microsecond
+       tv.Sec = int32(nsec / 1e9)
+       tv.Usec = int32(nsec % 1e9 / 1e3)
+       return
+}
+
+func Pipe(p []int) (err error) {
+       if len(p) != 2 {
+               return EINVAL
+       }
+       var pp [2]_C_int
+       err = pipe2(&pp, 0)
+       p[0] = int(pp[0])
+       p[1] = int(pp[1])
+       return
+}
+
+//sysnb pipe2(p *[2]_C_int, flags int) (err error)
+
+func Pipe2(p []int, flags int) (err error) {
+       if len(p) != 2 {
+               return EINVAL
+       }
+       var pp [2]_C_int
+       err = pipe2(&pp, flags)
+       p[0] = int(pp[0])
+       p[1] = int(pp[1])
+       return
+}
+
+// Underlying system call writes to newoffset via pointer.
+// Implemented in assembly to avoid allocation.
+func seek(fd int, offset int64, whence int) (newoffset int64, err syscall.Errno)
+
+func Seek(fd int, offset int64, whence int) (newoffset int64, err error) {
+       newoffset, errno := seek(fd, offset, whence)
+       if errno != 0 {
+               return 0, errno
+       }
+       return newoffset, nil
+}
+
+//sys  accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error)
+//sys  accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error)
+//sys  bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)
+//sys  connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)
+//sysnb        getgroups(n int, list *_Gid_t) (nn int, err error) = SYS_GETGROUPS32
+//sysnb        setgroups(n int, list *_Gid_t) (err error) = SYS_SETGROUPS32
+//sys  getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error)
+//sys  setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error)
+//sysnb        socket(domain int, typ int, proto int) (fd int, err error)
+//sysnb        getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error)
+//sysnb        getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error)
+//sys  recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error)
+//sys  sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error)
+//sysnb        socketpair(domain int, typ int, flags int, fd *[2]int32) (err error)
+//sys  recvmsg(s int, msg *Msghdr, flags int) (n int, err error)
+//sys  sendmsg(s int, msg *Msghdr, flags int) (n int, err error)
+
+// 64-bit file system and 32-bit uid calls
+// (16-bit uid calls are not always supported in newer kernels)
+//sys  Dup2(oldfd int, newfd int) (err error)
+//sys  Fchown(fd int, uid int, gid int) (err error) = SYS_FCHOWN32
+//sys  Fstat(fd int, stat *Stat_t) (err error) = SYS_FSTAT64
+//sysnb        Getegid() (egid int) = SYS_GETEGID32
+//sysnb        Geteuid() (euid int) = SYS_GETEUID32
+//sysnb        Getgid() (gid int) = SYS_GETGID32
+//sysnb        Getuid() (uid int) = SYS_GETUID32
+//sysnb        InotifyInit() (fd int, err error)
+//sys  Lchown(path string, uid int, gid int) (err error) = SYS_LCHOWN32
+//sys  Listen(s int, n int) (err error)
+//sys  Lstat(path string, stat *Stat_t) (err error) = SYS_LSTAT64
+//sys  sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) = SYS_SENDFILE64
+//sys  Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) = SYS__NEWSELECT
+//sys  Setfsgid(gid int) (err error) = SYS_SETFSGID32
+//sys  Setfsuid(uid int) (err error) = SYS_SETFSUID32
+//sysnb        Setregid(rgid int, egid int) (err error) = SYS_SETREGID32
+//sysnb        Setresgid(rgid int, egid int, sgid int) (err error) = SYS_SETRESGID32
+//sysnb        Setresuid(ruid int, euid int, suid int) (err error) = SYS_SETRESUID32
+//sysnb        Setreuid(ruid int, euid int) (err error) = SYS_SETREUID32
+//sys  Shutdown(fd int, how int) (err error)
+//sys  Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error)
+//sys  Stat(path string, stat *Stat_t) (err error) = SYS_STAT64
+
+// Vsyscalls on amd64.
+//sysnb        Gettimeofday(tv *Timeval) (err error)
+//sys  EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error)
+//sys  Pause() (err error)
+
+func Time(t *Time_t) (Time_t, error) {
+       var tv Timeval
+       err := Gettimeofday(&tv)
+       if err != nil {
+               return 0, err
+       }
+       if t != nil {
+               *t = Time_t(tv.Sec)
+       }
+       return Time_t(tv.Sec), nil
+}
+
+func Utime(path string, buf *Utimbuf) error {
+       tv := []Timeval{
+               {Sec: buf.Actime},
+               {Sec: buf.Modtime},
+       }
+       return Utimes(path, tv)
+}
+
+//sys   Pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64
+//sys   Pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64
+//sys  Truncate(path string, length int64) (err error) = SYS_TRUNCATE64
+//sys  Ftruncate(fd int, length int64) (err error) = SYS_FTRUNCATE64
+
+func Fadvise(fd int, offset int64, length int64, advice int) (err error) {
+       _, _, e1 := Syscall6(SYS_ARM_FADVISE64_64, uintptr(fd), uintptr(advice), uintptr(offset), uintptr(offset>>32), uintptr(length), uintptr(length>>32))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+//sys  mmap2(addr uintptr, length uintptr, prot int, flags int, fd int, pageOffset uintptr) (xaddr uintptr, err error)
+
+func Fstatfs(fd int, buf *Statfs_t) (err error) {
+       _, _, e := Syscall(SYS_FSTATFS64, uintptr(fd), unsafe.Sizeof(*buf), uintptr(unsafe.Pointer(buf)))
+       if e != 0 {
+               err = e
+       }
+       return
+}
+
+func Statfs(path string, buf *Statfs_t) (err error) {
+       pathp, err := BytePtrFromString(path)
+       if err != nil {
+               return err
+       }
+       _, _, e := Syscall(SYS_STATFS64, uintptr(unsafe.Pointer(pathp)), unsafe.Sizeof(*buf), uintptr(unsafe.Pointer(buf)))
+       if e != 0 {
+               err = e
+       }
+       return
+}
+
+func mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) {
+       page := uintptr(offset / 4096)
+       if offset != int64(page)*4096 {
+               return 0, EINVAL
+       }
+       return mmap2(addr, length, prot, flags, fd, page)
+}
+
+type rlimit32 struct {
+       Cur uint32
+       Max uint32
+}
+
+//sysnb getrlimit(resource int, rlim *rlimit32) (err error) = SYS_UGETRLIMIT
+
+const rlimInf32 = ^uint32(0)
+const rlimInf64 = ^uint64(0)
+
+func Getrlimit(resource int, rlim *Rlimit) (err error) {
+       err = prlimit(0, resource, nil, rlim)
+       if err != ENOSYS {
+               return err
+       }
+
+       rl := rlimit32{}
+       err = getrlimit(resource, &rl)
+       if err != nil {
+               return
+       }
+
+       if rl.Cur == rlimInf32 {
+               rlim.Cur = rlimInf64
+       } else {
+               rlim.Cur = uint64(rl.Cur)
+       }
+
+       if rl.Max == rlimInf32 {
+               rlim.Max = rlimInf64
+       } else {
+               rlim.Max = uint64(rl.Max)
+       }
+       return
+}
+
+//sysnb setrlimit(resource int, rlim *rlimit32) (err error) = SYS_SETRLIMIT
+
+func Setrlimit(resource int, rlim *Rlimit) (err error) {
+       err = prlimit(0, resource, rlim, nil)
+       if err != ENOSYS {
+               return err
+       }
+
+       rl := rlimit32{}
+       if rlim.Cur == rlimInf64 {
+               rl.Cur = rlimInf32
+       } else if rlim.Cur < uint64(rlimInf32) {
+               rl.Cur = uint32(rlim.Cur)
+       } else {
+               return EINVAL
+       }
+       if rlim.Max == rlimInf64 {
+               rl.Max = rlimInf32
+       } else if rlim.Max < uint64(rlimInf32) {
+               rl.Max = uint32(rlim.Max)
+       } else {
+               return EINVAL
+       }
+
+       return setrlimit(resource, &rl)
+}
+
+func (r *PtraceRegs) PC() uint64 { return uint64(r.Uregs[15]) }
+
+func (r *PtraceRegs) SetPC(pc uint64) { r.Uregs[15] = uint32(pc) }
+
+func (iov *Iovec) SetLen(length int) {
+       iov.Len = uint32(length)
+}
+
+func (msghdr *Msghdr) SetControllen(length int) {
+       msghdr.Controllen = uint32(length)
+}
+
+func (cmsg *Cmsghdr) SetLen(length int) {
+       cmsg.Len = uint32(length)
+}
+
+//sys  poll(fds *PollFd, nfds int, timeout int) (n int, err error)
+
+func Poll(fds []PollFd, timeout int) (n int, err error) {
+       if len(fds) == 0 {
+               return poll(nil, 0, timeout)
+       }
+       return poll(&fds[0], len(fds), timeout)
+}
diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_arm64.go b/vendor/golang.org/x/sys/unix/syscall_linux_arm64.go
new file mode 100644 (file)
index 0000000..4a13639
--- /dev/null
@@ -0,0 +1,190 @@
+// Copyright 2015 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build arm64,linux
+
+package unix
+
+//sys  EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) = SYS_EPOLL_PWAIT
+//sys  Fchown(fd int, uid int, gid int) (err error)
+//sys  Fstat(fd int, stat *Stat_t) (err error)
+//sys  Fstatat(fd int, path string, stat *Stat_t, flags int) (err error)
+//sys  Fstatfs(fd int, buf *Statfs_t) (err error)
+//sys  Ftruncate(fd int, length int64) (err error)
+//sysnb        Getegid() (egid int)
+//sysnb        Geteuid() (euid int)
+//sysnb        Getgid() (gid int)
+//sysnb        Getrlimit(resource int, rlim *Rlimit) (err error)
+//sysnb        Getuid() (uid int)
+//sys  Listen(s int, n int) (err error)
+//sys  Pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64
+//sys  Pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64
+//sys  Seek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK
+//sys  Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) = SYS_PSELECT6
+//sys  sendfile(outfd int, infd int, offset *int64, count int) (written int, err error)
+//sys  Setfsgid(gid int) (err error)
+//sys  Setfsuid(uid int) (err error)
+//sysnb        Setregid(rgid int, egid int) (err error)
+//sysnb        Setresgid(rgid int, egid int, sgid int) (err error)
+//sysnb        Setresuid(ruid int, euid int, suid int) (err error)
+//sysnb        Setrlimit(resource int, rlim *Rlimit) (err error)
+//sysnb        Setreuid(ruid int, euid int) (err error)
+//sys  Shutdown(fd int, how int) (err error)
+//sys  Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error)
+
+func Stat(path string, stat *Stat_t) (err error) {
+       return Fstatat(AT_FDCWD, path, stat, 0)
+}
+
+func Lchown(path string, uid int, gid int) (err error) {
+       return Fchownat(AT_FDCWD, path, uid, gid, AT_SYMLINK_NOFOLLOW)
+}
+
+func Lstat(path string, stat *Stat_t) (err error) {
+       return Fstatat(AT_FDCWD, path, stat, AT_SYMLINK_NOFOLLOW)
+}
+
+//sys  Statfs(path string, buf *Statfs_t) (err error)
+//sys  SyncFileRange(fd int, off int64, n int64, flags int) (err error)
+//sys  Truncate(path string, length int64) (err error)
+//sys  accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error)
+//sys  accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error)
+//sys  bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)
+//sys  connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)
+//sysnb        getgroups(n int, list *_Gid_t) (nn int, err error)
+//sysnb        setgroups(n int, list *_Gid_t) (err error)
+//sys  getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error)
+//sys  setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error)
+//sysnb        socket(domain int, typ int, proto int) (fd int, err error)
+//sysnb        socketpair(domain int, typ int, proto int, fd *[2]int32) (err error)
+//sysnb        getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error)
+//sysnb        getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error)
+//sys  recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error)
+//sys  sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error)
+//sys  recvmsg(s int, msg *Msghdr, flags int) (n int, err error)
+//sys  sendmsg(s int, msg *Msghdr, flags int) (n int, err error)
+//sys  mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error)
+
+func Getpagesize() int { return 65536 }
+
+//sysnb        Gettimeofday(tv *Timeval) (err error)
+
+func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) }
+
+func NsecToTimespec(nsec int64) (ts Timespec) {
+       ts.Sec = nsec / 1e9
+       ts.Nsec = nsec % 1e9
+       return
+}
+
+func NsecToTimeval(nsec int64) (tv Timeval) {
+       nsec += 999 // round up to microsecond
+       tv.Sec = nsec / 1e9
+       tv.Usec = nsec % 1e9 / 1e3
+       return
+}
+
+func Time(t *Time_t) (Time_t, error) {
+       var tv Timeval
+       err := Gettimeofday(&tv)
+       if err != nil {
+               return 0, err
+       }
+       if t != nil {
+               *t = Time_t(tv.Sec)
+       }
+       return Time_t(tv.Sec), nil
+}
+
+func Utime(path string, buf *Utimbuf) error {
+       tv := []Timeval{
+               {Sec: buf.Actime},
+               {Sec: buf.Modtime},
+       }
+       return Utimes(path, tv)
+}
+
+func Pipe(p []int) (err error) {
+       if len(p) != 2 {
+               return EINVAL
+       }
+       var pp [2]_C_int
+       err = pipe2(&pp, 0)
+       p[0] = int(pp[0])
+       p[1] = int(pp[1])
+       return
+}
+
+//sysnb pipe2(p *[2]_C_int, flags int) (err error)
+
+func Pipe2(p []int, flags int) (err error) {
+       if len(p) != 2 {
+               return EINVAL
+       }
+       var pp [2]_C_int
+       err = pipe2(&pp, flags)
+       p[0] = int(pp[0])
+       p[1] = int(pp[1])
+       return
+}
+
+func (r *PtraceRegs) PC() uint64 { return r.Pc }
+
+func (r *PtraceRegs) SetPC(pc uint64) { r.Pc = pc }
+
+func (iov *Iovec) SetLen(length int) {
+       iov.Len = uint64(length)
+}
+
+func (msghdr *Msghdr) SetControllen(length int) {
+       msghdr.Controllen = uint64(length)
+}
+
+func (cmsg *Cmsghdr) SetLen(length int) {
+       cmsg.Len = uint64(length)
+}
+
+func InotifyInit() (fd int, err error) {
+       return InotifyInit1(0)
+}
+
+func Dup2(oldfd int, newfd int) (err error) {
+       return Dup3(oldfd, newfd, 0)
+}
+
+func Pause() (err error) {
+       _, _, e1 := Syscall6(SYS_PPOLL, 0, 0, 0, 0, 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// TODO(dfc): constants that should be in zsysnum_linux_arm64.go, remove
+// these when the deprecated syscalls that the syscall package relies on
+// are removed.
+const (
+       SYS_GETPGRP      = 1060
+       SYS_UTIMES       = 1037
+       SYS_FUTIMESAT    = 1066
+       SYS_PAUSE        = 1061
+       SYS_USTAT        = 1070
+       SYS_UTIME        = 1063
+       SYS_LCHOWN       = 1032
+       SYS_TIME         = 1062
+       SYS_EPOLL_CREATE = 1042
+       SYS_EPOLL_WAIT   = 1069
+)
+
+func Poll(fds []PollFd, timeout int) (n int, err error) {
+       var ts *Timespec
+       if timeout >= 0 {
+               ts = new(Timespec)
+               *ts = NsecToTimespec(int64(timeout) * 1e6)
+       }
+       if len(fds) == 0 {
+               return ppoll(nil, 0, ts, nil)
+       }
+       return ppoll(&fds[0], len(fds), ts, nil)
+}
diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_mips64x.go b/vendor/golang.org/x/sys/unix/syscall_linux_mips64x.go
new file mode 100644 (file)
index 0000000..73318e5
--- /dev/null
@@ -0,0 +1,209 @@
+// Copyright 2015 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build linux
+// +build mips64 mips64le
+
+package unix
+
+//sys  Dup2(oldfd int, newfd 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  Fstatfs(fd int, buf *Statfs_t) (err error)
+//sys  Ftruncate(fd int, length int64) (err error)
+//sysnb        Getegid() (egid int)
+//sysnb        Geteuid() (euid int)
+//sysnb        Getgid() (gid int)
+//sysnb        Getrlimit(resource int, rlim *Rlimit) (err error)
+//sysnb        Getuid() (uid int)
+//sys  Lchown(path string, uid int, gid int) (err error)
+//sys  Listen(s int, n int) (err error)
+//sys  Pause() (err error)
+//sys  Pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64
+//sys  Pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64
+//sys  Seek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK
+//sys  Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) = SYS_PSELECT6
+//sys  sendfile(outfd int, infd int, offset *int64, count int) (written int, err error)
+//sys  Setfsgid(gid int) (err error)
+//sys  Setfsuid(uid int) (err error)
+//sysnb        Setregid(rgid int, egid int) (err error)
+//sysnb        Setresgid(rgid int, egid int, sgid int) (err error)
+//sysnb        Setresuid(ruid int, euid int, suid int) (err error)
+//sysnb        Setrlimit(resource int, rlim *Rlimit) (err error)
+//sysnb        Setreuid(ruid int, euid int) (err error)
+//sys  Shutdown(fd int, how int) (err error)
+//sys  Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error)
+//sys  Statfs(path string, buf *Statfs_t) (err error)
+//sys  SyncFileRange(fd int, off int64, n int64, flags int) (err error)
+//sys  Truncate(path string, length int64) (err error)
+//sys  accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error)
+//sys  accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error)
+//sys  bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)
+//sys  connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)
+//sysnb        getgroups(n int, list *_Gid_t) (nn int, err error)
+//sysnb        setgroups(n int, list *_Gid_t) (err error)
+//sys  getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error)
+//sys  setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error)
+//sysnb        socket(domain int, typ int, proto int) (fd int, err error)
+//sysnb        socketpair(domain int, typ int, proto int, fd *[2]int32) (err error)
+//sysnb        getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error)
+//sysnb        getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error)
+//sys  recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error)
+//sys  sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error)
+//sys  recvmsg(s int, msg *Msghdr, flags int) (n int, err error)
+//sys  sendmsg(s int, msg *Msghdr, flags int) (n int, err error)
+//sys  mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error)
+
+func Getpagesize() int { return 65536 }
+
+//sysnb        Gettimeofday(tv *Timeval) (err error)
+
+func Time(t *Time_t) (tt Time_t, err error) {
+       var tv Timeval
+       err = Gettimeofday(&tv)
+       if err != nil {
+               return 0, err
+       }
+       if t != nil {
+               *t = Time_t(tv.Sec)
+       }
+       return Time_t(tv.Sec), nil
+}
+
+//sys  Utime(path string, buf *Utimbuf) (err error)
+
+func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) }
+
+func NsecToTimespec(nsec int64) (ts Timespec) {
+       ts.Sec = nsec / 1e9
+       ts.Nsec = nsec % 1e9
+       return
+}
+
+func NsecToTimeval(nsec int64) (tv Timeval) {
+       nsec += 999 // round up to microsecond
+       tv.Sec = nsec / 1e9
+       tv.Usec = nsec % 1e9 / 1e3
+       return
+}
+
+func Pipe(p []int) (err error) {
+       if len(p) != 2 {
+               return EINVAL
+       }
+       var pp [2]_C_int
+       err = pipe2(&pp, 0)
+       p[0] = int(pp[0])
+       p[1] = int(pp[1])
+       return
+}
+
+//sysnb pipe2(p *[2]_C_int, flags int) (err error)
+
+func Pipe2(p []int, flags int) (err error) {
+       if len(p) != 2 {
+               return EINVAL
+       }
+       var pp [2]_C_int
+       err = pipe2(&pp, flags)
+       p[0] = int(pp[0])
+       p[1] = int(pp[1])
+       return
+}
+
+func Ioperm(from int, num int, on int) (err error) {
+       return ENOSYS
+}
+
+func Iopl(level int) (err error) {
+       return ENOSYS
+}
+
+type stat_t struct {
+       Dev        uint32
+       Pad0       [3]int32
+       Ino        uint64
+       Mode       uint32
+       Nlink      uint32
+       Uid        uint32
+       Gid        uint32
+       Rdev       uint32
+       Pad1       [3]uint32
+       Size       int64
+       Atime      uint32
+       Atime_nsec uint32
+       Mtime      uint32
+       Mtime_nsec uint32
+       Ctime      uint32
+       Ctime_nsec uint32
+       Blksize    uint32
+       Pad2       uint32
+       Blocks     int64
+}
+
+//sys  fstat(fd int, st *stat_t) (err error)
+//sys  lstat(path string, st *stat_t) (err error)
+//sys  stat(path string, st *stat_t) (err error)
+
+func Fstat(fd int, s *Stat_t) (err error) {
+       st := &stat_t{}
+       err = fstat(fd, st)
+       fillStat_t(s, st)
+       return
+}
+
+func Lstat(path string, s *Stat_t) (err error) {
+       st := &stat_t{}
+       err = lstat(path, st)
+       fillStat_t(s, st)
+       return
+}
+
+func Stat(path string, s *Stat_t) (err error) {
+       st := &stat_t{}
+       err = stat(path, st)
+       fillStat_t(s, st)
+       return
+}
+
+func fillStat_t(s *Stat_t, st *stat_t) {
+       s.Dev = st.Dev
+       s.Ino = st.Ino
+       s.Mode = st.Mode
+       s.Nlink = st.Nlink
+       s.Uid = st.Uid
+       s.Gid = st.Gid
+       s.Rdev = st.Rdev
+       s.Size = st.Size
+       s.Atim = Timespec{int64(st.Atime), int64(st.Atime_nsec)}
+       s.Mtim = Timespec{int64(st.Mtime), int64(st.Mtime_nsec)}
+       s.Ctim = Timespec{int64(st.Ctime), int64(st.Ctime_nsec)}
+       s.Blksize = st.Blksize
+       s.Blocks = st.Blocks
+}
+
+func (r *PtraceRegs) PC() uint64 { return r.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 (cmsg *Cmsghdr) SetLen(length int) {
+       cmsg.Len = uint64(length)
+}
+
+//sys  poll(fds *PollFd, nfds int, timeout int) (n int, err error)
+
+func Poll(fds []PollFd, timeout int) (n int, err error) {
+       if len(fds) == 0 {
+               return poll(nil, 0, timeout)
+       }
+       return poll(&fds[0], len(fds), timeout)
+}
diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_mipsx.go b/vendor/golang.org/x/sys/unix/syscall_linux_mipsx.go
new file mode 100644 (file)
index 0000000..b83d93f
--- /dev/null
@@ -0,0 +1,239 @@
+// Copyright 2016 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build linux
+// +build mips mipsle
+
+package unix
+
+import (
+       "syscall"
+       "unsafe"
+)
+
+func Syscall9(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno)
+
+//sys  Dup2(oldfd int, newfd int) (err error)
+//sys  Fchown(fd int, uid int, gid int) (err error)
+//sys  Ftruncate(fd int, length int64) (err error) = SYS_FTRUNCATE64
+//sysnb        Getegid() (egid int)
+//sysnb        Geteuid() (euid int)
+//sysnb        Getgid() (gid int)
+//sysnb        Getuid() (uid int)
+//sys  Lchown(path string, uid int, gid int) (err error)
+//sys  Listen(s int, n int) (err error)
+//sys  Pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64
+//sys  Pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64
+//sys  Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) = SYS__NEWSELECT
+//sys  sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) = SYS_SENDFILE64
+//sys  Setfsgid(gid int) (err error)
+//sys  Setfsuid(uid int) (err error)
+//sysnb        Setregid(rgid int, egid int) (err error)
+//sysnb        Setresgid(rgid int, egid int, sgid int) (err error)
+//sysnb        Setresuid(ruid int, euid int, suid int) (err error)
+
+//sysnb        Setreuid(ruid int, euid int) (err error)
+//sys  Shutdown(fd int, how int) (err error)
+//sys  Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error)
+
+//sys  SyncFileRange(fd int, off int64, n int64, flags int) (err error)
+//sys  Truncate(path string, length int64) (err error) = SYS_TRUNCATE64
+//sys  accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error)
+//sys  accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error)
+//sys  bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)
+//sys  connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)
+//sysnb        getgroups(n int, list *_Gid_t) (nn int, err error)
+//sysnb        setgroups(n int, list *_Gid_t) (err error)
+//sys  getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error)
+//sys  setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error)
+//sysnb        socket(domain int, typ int, proto int) (fd int, err error)
+//sysnb        socketpair(domain int, typ int, proto int, fd *[2]int32) (err error)
+//sysnb        getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error)
+//sysnb        getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error)
+//sys  recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error)
+//sys  sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error)
+//sys  recvmsg(s int, msg *Msghdr, flags int) (n int, err error)
+//sys  sendmsg(s int, msg *Msghdr, flags int) (n int, err error)
+
+//sysnb        InotifyInit() (fd int, err error)
+//sys  Ioperm(from int, num int, on int) (err error)
+//sys  Iopl(level int) (err error)
+
+//sysnb        Gettimeofday(tv *Timeval) (err error)
+//sysnb        Time(t *Time_t) (tt Time_t, err error)
+
+//sys  Lstat(path string, stat *Stat_t) (err error) = SYS_LSTAT64
+//sys  Fstat(fd int, stat *Stat_t) (err error) = SYS_FSTAT64
+//sys  Stat(path string, stat *Stat_t) (err error) = SYS_STAT64
+
+//sys  Utime(path string, buf *Utimbuf) (err error)
+//sys  EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error)
+//sys  Pause() (err error)
+
+func Fstatfs(fd int, buf *Statfs_t) (err error) {
+       _, _, e := Syscall(SYS_FSTATFS64, uintptr(fd), unsafe.Sizeof(*buf), uintptr(unsafe.Pointer(buf)))
+       if e != 0 {
+               err = errnoErr(e)
+       }
+       return
+}
+
+func Statfs(path string, buf *Statfs_t) (err error) {
+       p, err := BytePtrFromString(path)
+       if err != nil {
+               return err
+       }
+       _, _, e := Syscall(SYS_STATFS64, uintptr(unsafe.Pointer(p)), unsafe.Sizeof(*buf), uintptr(unsafe.Pointer(buf)))
+       if e != 0 {
+               err = errnoErr(e)
+       }
+       return
+}
+
+func Seek(fd int, offset int64, whence int) (off int64, err error) {
+       _, _, e := Syscall6(SYS__LLSEEK, uintptr(fd), uintptr(offset>>32), uintptr(offset), uintptr(unsafe.Pointer(&off)), uintptr(whence), 0)
+       if e != 0 {
+               err = errnoErr(e)
+       }
+       return
+}
+
+func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) }
+
+func NsecToTimespec(nsec int64) (ts Timespec) {
+       ts.Sec = int32(nsec / 1e9)
+       ts.Nsec = int32(nsec % 1e9)
+       return
+}
+
+func NsecToTimeval(nsec int64) (tv Timeval) {
+       nsec += 999 // round up to microsecond
+       tv.Sec = int32(nsec / 1e9)
+       tv.Usec = int32(nsec % 1e9 / 1e3)
+       return
+}
+
+//sysnb pipe2(p *[2]_C_int, flags int) (err error)
+
+func Pipe2(p []int, flags int) (err error) {
+       if len(p) != 2 {
+               return EINVAL
+       }
+       var pp [2]_C_int
+       err = pipe2(&pp, flags)
+       p[0] = int(pp[0])
+       p[1] = int(pp[1])
+       return
+}
+
+func Pipe(p []int) (err error) {
+       if len(p) != 2 {
+               return EINVAL
+       }
+       var pp [2]_C_int
+       err = pipe2(&pp, 0)
+       p[0] = int(pp[0])
+       p[1] = int(pp[1])
+       return
+}
+
+//sys  mmap2(addr uintptr, length uintptr, prot int, flags int, fd int, pageOffset uintptr) (xaddr uintptr, err error)
+
+func mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) {
+       page := uintptr(offset / 4096)
+       if offset != int64(page)*4096 {
+               return 0, EINVAL
+       }
+       return mmap2(addr, length, prot, flags, fd, page)
+}
+
+const rlimInf32 = ^uint32(0)
+const rlimInf64 = ^uint64(0)
+
+type rlimit32 struct {
+       Cur uint32
+       Max uint32
+}
+
+//sysnb getrlimit(resource int, rlim *rlimit32) (err error) = SYS_GETRLIMIT
+
+func Getrlimit(resource int, rlim *Rlimit) (err error) {
+       err = prlimit(0, resource, nil, rlim)
+       if err != ENOSYS {
+               return err
+       }
+
+       rl := rlimit32{}
+       err = getrlimit(resource, &rl)
+       if err != nil {
+               return
+       }
+
+       if rl.Cur == rlimInf32 {
+               rlim.Cur = rlimInf64
+       } else {
+               rlim.Cur = uint64(rl.Cur)
+       }
+
+       if rl.Max == rlimInf32 {
+               rlim.Max = rlimInf64
+       } else {
+               rlim.Max = uint64(rl.Max)
+       }
+       return
+}
+
+//sysnb setrlimit(resource int, rlim *rlimit32) (err error) = SYS_SETRLIMIT
+
+func Setrlimit(resource int, rlim *Rlimit) (err error) {
+       err = prlimit(0, resource, rlim, nil)
+       if err != ENOSYS {
+               return err
+       }
+
+       rl := rlimit32{}
+       if rlim.Cur == rlimInf64 {
+               rl.Cur = rlimInf32
+       } else if rlim.Cur < uint64(rlimInf32) {
+               rl.Cur = uint32(rlim.Cur)
+       } else {
+               return EINVAL
+       }
+       if rlim.Max == rlimInf64 {
+               rl.Max = rlimInf32
+       } else if rlim.Max < uint64(rlimInf32) {
+               rl.Max = uint32(rlim.Max)
+       } else {
+               return EINVAL
+       }
+
+       return setrlimit(resource, &rl)
+}
+
+func (r *PtraceRegs) PC() uint64 { return r.Epc }
+
+func (r *PtraceRegs) SetPC(pc uint64) { r.Epc = pc }
+
+func (iov *Iovec) SetLen(length int) {
+       iov.Len = uint32(length)
+}
+
+func (msghdr *Msghdr) SetControllen(length int) {
+       msghdr.Controllen = uint32(length)
+}
+
+func (cmsg *Cmsghdr) SetLen(length int) {
+       cmsg.Len = uint32(length)
+}
+
+//sys  poll(fds *PollFd, nfds int, timeout int) (n int, err error)
+
+func Poll(fds []PollFd, timeout int) (n int, err error) {
+       if len(fds) == 0 {
+               return poll(nil, 0, timeout)
+       }
+       return poll(&fds[0], len(fds), timeout)
+}
+
+func Getpagesize() int { return 4096 }
diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_ppc64x.go b/vendor/golang.org/x/sys/unix/syscall_linux_ppc64x.go
new file mode 100644 (file)
index 0000000..60770f6
--- /dev/null
@@ -0,0 +1,135 @@
+// Copyright 2009 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build linux
+// +build ppc64 ppc64le
+
+package unix
+
+//sys  EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error)
+//sys  Dup2(oldfd int, newfd int) (err error)
+//sys  Fchown(fd int, uid int, gid int) (err error)
+//sys  Fstat(fd int, stat *Stat_t) (err error)
+//sys  Fstatfs(fd int, buf *Statfs_t) (err error)
+//sys  Ftruncate(fd int, length int64) (err error)
+//sysnb        Getegid() (egid int)
+//sysnb        Geteuid() (euid int)
+//sysnb        Getgid() (gid int)
+//sysnb        Getrlimit(resource int, rlim *Rlimit) (err error) = SYS_UGETRLIMIT
+//sysnb        Getuid() (uid int)
+//sysnb        InotifyInit() (fd int, err error)
+//sys  Ioperm(from int, num int, on int) (err error)
+//sys  Iopl(level int) (err error)
+//sys  Lchown(path string, uid int, gid int) (err error)
+//sys  Listen(s int, n int) (err error)
+//sys  Lstat(path string, stat *Stat_t) (err error)
+//sys  Pause() (err error)
+//sys  Pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64
+//sys  Pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64
+//sys  Seek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK
+//sys  Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error)
+//sys  sendfile(outfd int, infd int, offset *int64, count int) (written int, err error)
+//sys  Setfsgid(gid int) (err error)
+//sys  Setfsuid(uid int) (err error)
+//sysnb        Setregid(rgid int, egid int) (err error)
+//sysnb        Setresgid(rgid int, egid int, sgid int) (err error)
+//sysnb        Setresuid(ruid int, euid int, suid int) (err error)
+//sysnb        Setrlimit(resource int, rlim *Rlimit) (err error)
+//sysnb        Setreuid(ruid int, euid int) (err error)
+//sys  Shutdown(fd int, how int) (err error)
+//sys  Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error)
+//sys  Stat(path string, stat *Stat_t) (err error)
+//sys  Statfs(path string, buf *Statfs_t) (err error)
+//sys  SyncFileRange(fd int, off int64, n int64, flags int) (err error) = SYS_SYNC_FILE_RANGE2
+//sys  Truncate(path string, length int64) (err error)
+//sys  accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error)
+//sys  accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error)
+//sys  bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)
+//sys  connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)
+//sysnb        getgroups(n int, list *_Gid_t) (nn int, err error)
+//sysnb        setgroups(n int, list *_Gid_t) (err error)
+//sys  getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error)
+//sys  setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error)
+//sysnb        socket(domain int, typ int, proto int) (fd int, err error)
+//sysnb        socketpair(domain int, typ int, proto int, fd *[2]int32) (err error)
+//sysnb        getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error)
+//sysnb        getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error)
+//sys  recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error)
+//sys  sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error)
+//sys  recvmsg(s int, msg *Msghdr, flags int) (n int, err error)
+//sys  sendmsg(s int, msg *Msghdr, flags int) (n int, err error)
+//sys  mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error)
+
+func Getpagesize() int { return 65536 }
+
+//sysnb        Gettimeofday(tv *Timeval) (err error)
+//sysnb        Time(t *Time_t) (tt Time_t, err error)
+
+//sys  Utime(path string, buf *Utimbuf) (err error)
+
+func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) }
+
+func NsecToTimespec(nsec int64) (ts Timespec) {
+       ts.Sec = nsec / 1e9
+       ts.Nsec = nsec % 1e9
+       return
+}
+
+func NsecToTimeval(nsec int64) (tv Timeval) {
+       nsec += 999 // round up to microsecond
+       tv.Sec = nsec / 1e9
+       tv.Usec = nsec % 1e9 / 1e3
+       return
+}
+
+func (r *PtraceRegs) PC() uint64 { return r.Nip }
+
+func (r *PtraceRegs) SetPC(pc uint64) { r.Nip = pc }
+
+func (iov *Iovec) SetLen(length int) {
+       iov.Len = uint64(length)
+}
+
+func (msghdr *Msghdr) SetControllen(length int) {
+       msghdr.Controllen = uint64(length)
+}
+
+func (cmsg *Cmsghdr) SetLen(length int) {
+       cmsg.Len = uint64(length)
+}
+
+//sysnb pipe(p *[2]_C_int) (err error)
+
+func Pipe(p []int) (err error) {
+       if len(p) != 2 {
+               return EINVAL
+       }
+       var pp [2]_C_int
+       err = pipe(&pp)
+       p[0] = int(pp[0])
+       p[1] = int(pp[1])
+       return
+}
+
+//sysnb pipe2(p *[2]_C_int, flags int) (err error)
+
+func Pipe2(p []int, flags int) (err error) {
+       if len(p) != 2 {
+               return EINVAL
+       }
+       var pp [2]_C_int
+       err = pipe2(&pp, flags)
+       p[0] = int(pp[0])
+       p[1] = int(pp[1])
+       return
+}
+
+//sys  poll(fds *PollFd, nfds int, timeout int) (n int, err error)
+
+func Poll(fds []PollFd, timeout int) (n int, err error) {
+       if len(fds) == 0 {
+               return poll(nil, 0, timeout)
+       }
+       return poll(&fds[0], len(fds), timeout)
+}
diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_s390x.go b/vendor/golang.org/x/sys/unix/syscall_linux_s390x.go
new file mode 100644 (file)
index 0000000..1708a4b
--- /dev/null
@@ -0,0 +1,328 @@
+// Copyright 2016 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build s390x,linux
+
+package unix
+
+import (
+       "unsafe"
+)
+
+//sys  Dup2(oldfd int, newfd int) (err error)
+//sys  EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error)
+//sys  Fadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64
+//sys  Fchown(fd int, uid int, gid int) (err error)
+//sys  Fstat(fd int, stat *Stat_t) (err error)
+//sys  Fstatfs(fd int, buf *Statfs_t) (err error)
+//sys  Ftruncate(fd int, length int64) (err error)
+//sysnb        Getegid() (egid int)
+//sysnb        Geteuid() (euid int)
+//sysnb        Getgid() (gid int)
+//sysnb        Getrlimit(resource int, rlim *Rlimit) (err error)
+//sysnb        Getuid() (uid int)
+//sysnb        InotifyInit() (fd int, err error)
+//sys  Lchown(path string, uid int, gid int) (err error)
+//sys  Lstat(path string, stat *Stat_t) (err error)
+//sys  Pause() (err error)
+//sys  Pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64
+//sys  Pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64
+//sys  Seek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK
+//sys  Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error)
+//sys  sendfile(outfd int, infd int, offset *int64, count int) (written int, err error)
+//sys  Setfsgid(gid int) (err error)
+//sys  Setfsuid(uid int) (err error)
+//sysnb        Setregid(rgid int, egid int) (err error)
+//sysnb        Setresgid(rgid int, egid int, sgid int) (err error)
+//sysnb        Setresuid(ruid int, euid int, suid int) (err error)
+//sysnb        Setrlimit(resource int, rlim *Rlimit) (err error)
+//sysnb        Setreuid(ruid int, euid int) (err error)
+//sys  Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error)
+//sys  Stat(path string, stat *Stat_t) (err error)
+//sys  Statfs(path string, buf *Statfs_t) (err error)
+//sys  SyncFileRange(fd int, off int64, n int64, flags int) (err error)
+//sys  Truncate(path string, length int64) (err error)
+//sysnb        getgroups(n int, list *_Gid_t) (nn int, err error)
+//sysnb        setgroups(n int, list *_Gid_t) (err error)
+
+func Getpagesize() int { return 4096 }
+
+//sysnb        Gettimeofday(tv *Timeval) (err error)
+
+func Time(t *Time_t) (tt Time_t, err error) {
+       var tv Timeval
+       err = Gettimeofday(&tv)
+       if err != nil {
+               return 0, err
+       }
+       if t != nil {
+               *t = Time_t(tv.Sec)
+       }
+       return Time_t(tv.Sec), nil
+}
+
+//sys  Utime(path string, buf *Utimbuf) (err error)
+
+func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) }
+
+func NsecToTimespec(nsec int64) (ts Timespec) {
+       ts.Sec = nsec / 1e9
+       ts.Nsec = nsec % 1e9
+       return
+}
+
+func NsecToTimeval(nsec int64) (tv Timeval) {
+       nsec += 999 // round up to microsecond
+       tv.Sec = nsec / 1e9
+       tv.Usec = nsec % 1e9 / 1e3
+       return
+}
+
+//sysnb pipe2(p *[2]_C_int, flags int) (err error)
+
+func Pipe(p []int) (err error) {
+       if len(p) != 2 {
+               return EINVAL
+       }
+       var pp [2]_C_int
+       err = pipe2(&pp, 0) // pipe2 is the same as pipe when flags are set to 0.
+       p[0] = int(pp[0])
+       p[1] = int(pp[1])
+       return
+}
+
+func Pipe2(p []int, flags int) (err error) {
+       if len(p) != 2 {
+               return EINVAL
+       }
+       var pp [2]_C_int
+       err = pipe2(&pp, flags)
+       p[0] = int(pp[0])
+       p[1] = int(pp[1])
+       return
+}
+
+func Ioperm(from int, num int, on int) (err error) {
+       return ENOSYS
+}
+
+func Iopl(level int) (err error) {
+       return ENOSYS
+}
+
+func (r *PtraceRegs) PC() uint64 { return r.Psw.Addr }
+
+func (r *PtraceRegs) SetPC(pc uint64) { r.Psw.Addr = pc }
+
+func (iov *Iovec) SetLen(length int) {
+       iov.Len = uint64(length)
+}
+
+func (msghdr *Msghdr) SetControllen(length int) {
+       msghdr.Controllen = uint64(length)
+}
+
+func (cmsg *Cmsghdr) SetLen(length int) {
+       cmsg.Len = uint64(length)
+}
+
+// Linux on s390x uses the old mmap interface, which requires arguments to be passed in a struct.
+// mmap2 also requires arguments to be passed in a struct; it is currently not exposed in <asm/unistd.h>.
+func mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) {
+       mmap_args := [6]uintptr{addr, length, uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset)}
+       r0, _, e1 := Syscall(SYS_MMAP, uintptr(unsafe.Pointer(&mmap_args[0])), 0, 0)
+       xaddr = uintptr(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// On s390x Linux, all the socket calls go through an extra indirection.
+// The arguments to the underlying system call (SYS_SOCKETCALL) are the
+// number below and a pointer to an array of uintptr.
+const (
+       // see linux/net.h
+       netSocket      = 1
+       netBind        = 2
+       netConnect     = 3
+       netListen      = 4
+       netAccept      = 5
+       netGetSockName = 6
+       netGetPeerName = 7
+       netSocketPair  = 8
+       netSend        = 9
+       netRecv        = 10
+       netSendTo      = 11
+       netRecvFrom    = 12
+       netShutdown    = 13
+       netSetSockOpt  = 14
+       netGetSockOpt  = 15
+       netSendMsg     = 16
+       netRecvMsg     = 17
+       netAccept4     = 18
+       netRecvMMsg    = 19
+       netSendMMsg    = 20
+)
+
+func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (int, error) {
+       args := [3]uintptr{uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))}
+       fd, _, err := Syscall(SYS_SOCKETCALL, netAccept, uintptr(unsafe.Pointer(&args)), 0)
+       if err != 0 {
+               return 0, err
+       }
+       return int(fd), nil
+}
+
+func accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (int, error) {
+       args := [4]uintptr{uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags)}
+       fd, _, err := Syscall(SYS_SOCKETCALL, netAccept4, uintptr(unsafe.Pointer(&args)), 0)
+       if err != 0 {
+               return 0, err
+       }
+       return int(fd), nil
+}
+
+func getsockname(s int, rsa *RawSockaddrAny, addrlen *_Socklen) error {
+       args := [3]uintptr{uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))}
+       _, _, err := RawSyscall(SYS_SOCKETCALL, netGetSockName, uintptr(unsafe.Pointer(&args)), 0)
+       if err != 0 {
+               return err
+       }
+       return nil
+}
+
+func getpeername(s int, rsa *RawSockaddrAny, addrlen *_Socklen) error {
+       args := [3]uintptr{uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))}
+       _, _, err := RawSyscall(SYS_SOCKETCALL, netGetPeerName, uintptr(unsafe.Pointer(&args)), 0)
+       if err != 0 {
+               return err
+       }
+       return nil
+}
+
+func socketpair(domain int, typ int, flags int, fd *[2]int32) error {
+       args := [4]uintptr{uintptr(domain), uintptr(typ), uintptr(flags), uintptr(unsafe.Pointer(fd))}
+       _, _, err := RawSyscall(SYS_SOCKETCALL, netSocketPair, uintptr(unsafe.Pointer(&args)), 0)
+       if err != 0 {
+               return err
+       }
+       return nil
+}
+
+func bind(s int, addr unsafe.Pointer, addrlen _Socklen) error {
+       args := [3]uintptr{uintptr(s), uintptr(addr), uintptr(addrlen)}
+       _, _, err := Syscall(SYS_SOCKETCALL, netBind, uintptr(unsafe.Pointer(&args)), 0)
+       if err != 0 {
+               return err
+       }
+       return nil
+}
+
+func connect(s int, addr unsafe.Pointer, addrlen _Socklen) error {
+       args := [3]uintptr{uintptr(s), uintptr(addr), uintptr(addrlen)}
+       _, _, err := Syscall(SYS_SOCKETCALL, netConnect, uintptr(unsafe.Pointer(&args)), 0)
+       if err != 0 {
+               return err
+       }
+       return nil
+}
+
+func socket(domain int, typ int, proto int) (int, error) {
+       args := [3]uintptr{uintptr(domain), uintptr(typ), uintptr(proto)}
+       fd, _, err := RawSyscall(SYS_SOCKETCALL, netSocket, uintptr(unsafe.Pointer(&args)), 0)
+       if err != 0 {
+               return 0, err
+       }
+       return int(fd), nil
+}
+
+func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) error {
+       args := [5]uintptr{uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen))}
+       _, _, err := Syscall(SYS_SOCKETCALL, netGetSockOpt, uintptr(unsafe.Pointer(&args)), 0)
+       if err != 0 {
+               return err
+       }
+       return nil
+}
+
+func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) error {
+       args := [4]uintptr{uintptr(s), uintptr(level), uintptr(name), uintptr(val)}
+       _, _, err := Syscall(SYS_SOCKETCALL, netSetSockOpt, uintptr(unsafe.Pointer(&args)), 0)
+       if err != 0 {
+               return err
+       }
+       return nil
+}
+
+func recvfrom(s int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (int, error) {
+       var base uintptr
+       if len(p) > 0 {
+               base = uintptr(unsafe.Pointer(&p[0]))
+       }
+       args := [6]uintptr{uintptr(s), base, uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))}
+       n, _, err := Syscall(SYS_SOCKETCALL, netRecvFrom, uintptr(unsafe.Pointer(&args)), 0)
+       if err != 0 {
+               return 0, err
+       }
+       return int(n), nil
+}
+
+func sendto(s int, p []byte, flags int, to unsafe.Pointer, addrlen _Socklen) error {
+       var base uintptr
+       if len(p) > 0 {
+               base = uintptr(unsafe.Pointer(&p[0]))
+       }
+       args := [6]uintptr{uintptr(s), base, uintptr(len(p)), uintptr(flags), uintptr(to), uintptr(addrlen)}
+       _, _, err := Syscall(SYS_SOCKETCALL, netSendTo, uintptr(unsafe.Pointer(&args)), 0)
+       if err != 0 {
+               return err
+       }
+       return nil
+}
+
+func recvmsg(s int, msg *Msghdr, flags int) (int, error) {
+       args := [3]uintptr{uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)}
+       n, _, err := Syscall(SYS_SOCKETCALL, netRecvMsg, uintptr(unsafe.Pointer(&args)), 0)
+       if err != 0 {
+               return 0, err
+       }
+       return int(n), nil
+}
+
+func sendmsg(s int, msg *Msghdr, flags int) (int, error) {
+       args := [3]uintptr{uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)}
+       n, _, err := Syscall(SYS_SOCKETCALL, netSendMsg, uintptr(unsafe.Pointer(&args)), 0)
+       if err != 0 {
+               return 0, err
+       }
+       return int(n), nil
+}
+
+func Listen(s int, n int) error {
+       args := [2]uintptr{uintptr(s), uintptr(n)}
+       _, _, err := Syscall(SYS_SOCKETCALL, netListen, uintptr(unsafe.Pointer(&args)), 0)
+       if err != 0 {
+               return err
+       }
+       return nil
+}
+
+func Shutdown(s, how int) error {
+       args := [2]uintptr{uintptr(s), uintptr(how)}
+       _, _, err := Syscall(SYS_SOCKETCALL, netShutdown, uintptr(unsafe.Pointer(&args)), 0)
+       if err != 0 {
+               return err
+       }
+       return nil
+}
+
+//sys  poll(fds *PollFd, nfds int, timeout int) (n int, err error)
+
+func Poll(fds []PollFd, timeout int) (n int, err error) {
+       if len(fds) == 0 {
+               return poll(nil, 0, timeout)
+       }
+       return poll(&fds[0], len(fds), timeout)
+}
diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_sparc64.go b/vendor/golang.org/x/sys/unix/syscall_linux_sparc64.go
new file mode 100644 (file)
index 0000000..20b7454
--- /dev/null
@@ -0,0 +1,169 @@
+// Copyright 2009 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build sparc64,linux
+
+package unix
+
+import (
+       "sync/atomic"
+       "syscall"
+)
+
+//sys  EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error)
+//sys  Dup2(oldfd int, newfd int) (err error)
+//sys  Fchown(fd int, uid int, gid int) (err error)
+//sys  Fstat(fd int, stat *Stat_t) (err error)
+//sys  Fstatfs(fd int, buf *Statfs_t) (err error)
+//sys  Ftruncate(fd int, length int64) (err error)
+//sysnb        Getegid() (egid int)
+//sysnb        Geteuid() (euid int)
+//sysnb        Getgid() (gid int)
+//sysnb        Getrlimit(resource int, rlim *Rlimit) (err error)
+//sysnb        Getuid() (uid int)
+//sysnb        InotifyInit() (fd int, err error)
+//sys  Lchown(path string, uid int, gid int) (err error)
+//sys  Listen(s int, n int) (err error)
+//sys  Lstat(path string, stat *Stat_t) (err error)
+//sys  Pause() (err error)
+//sys  Pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64
+//sys  Pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64
+//sys  Seek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK
+//sys  Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error)
+//sys  sendfile(outfd int, infd int, offset *int64, count int) (written int, err error)
+//sys  Setfsgid(gid int) (err error)
+//sys  Setfsuid(uid int) (err error)
+//sysnb        Setregid(rgid int, egid int) (err error)
+//sysnb        Setresgid(rgid int, egid int, sgid int) (err error)
+//sysnb        Setresuid(ruid int, euid int, suid int) (err error)
+//sysnb        Setrlimit(resource int, rlim *Rlimit) (err error)
+//sysnb        Setreuid(ruid int, euid int) (err error)
+//sys  Shutdown(fd int, how int) (err error)
+//sys  Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error)
+//sys  Stat(path string, stat *Stat_t) (err error)
+//sys  Statfs(path string, buf *Statfs_t) (err error)
+//sys  SyncFileRange(fd int, off int64, n int64, flags int) (err error)
+//sys  Truncate(path string, length int64) (err error)
+//sys  accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error)
+//sys  accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error)
+//sys  bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)
+//sys  connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)
+//sysnb        getgroups(n int, list *_Gid_t) (nn int, err error)
+//sysnb        setgroups(n int, list *_Gid_t) (err error)
+//sys  getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error)
+//sys  setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error)
+//sysnb        socket(domain int, typ int, proto int) (fd int, err error)
+//sysnb        socketpair(domain int, typ int, proto int, fd *[2]int32) (err error)
+//sysnb        getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error)
+//sysnb        getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error)
+//sys  recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error)
+//sys  sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error)
+//sys  recvmsg(s int, msg *Msghdr, flags int) (n int, err error)
+//sys  sendmsg(s int, msg *Msghdr, flags int) (n int, err error)
+//sys  mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error)
+
+func sysconf(name int) (n int64, err syscall.Errno)
+
+// pageSize caches the value of Getpagesize, since it can't change
+// once the system is booted.
+var pageSize int64 // accessed atomically
+
+func Getpagesize() int {
+       n := atomic.LoadInt64(&pageSize)
+       if n == 0 {
+               n, _ = sysconf(_SC_PAGESIZE)
+               atomic.StoreInt64(&pageSize, n)
+       }
+       return int(n)
+}
+
+func Ioperm(from int, num int, on int) (err error) {
+       return ENOSYS
+}
+
+func Iopl(level int) (err error) {
+       return ENOSYS
+}
+
+//sysnb        Gettimeofday(tv *Timeval) (err error)
+
+func Time(t *Time_t) (tt Time_t, err error) {
+       var tv Timeval
+       err = Gettimeofday(&tv)
+       if err != nil {
+               return 0, err
+       }
+       if t != nil {
+               *t = Time_t(tv.Sec)
+       }
+       return Time_t(tv.Sec), nil
+}
+
+//sys  Utime(path string, buf *Utimbuf) (err error)
+
+func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) }
+
+func NsecToTimespec(nsec int64) (ts Timespec) {
+       ts.Sec = nsec / 1e9
+       ts.Nsec = nsec % 1e9
+       return
+}
+
+func NsecToTimeval(nsec int64) (tv Timeval) {
+       nsec += 999 // round up to microsecond
+       tv.Sec = nsec / 1e9
+       tv.Usec = int32(nsec % 1e9 / 1e3)
+       return
+}
+
+func (r *PtraceRegs) PC() uint64 { return r.Tpc }
+
+func (r *PtraceRegs) SetPC(pc uint64) { r.Tpc = pc }
+
+func (iov *Iovec) SetLen(length int) {
+       iov.Len = uint64(length)
+}
+
+func (msghdr *Msghdr) SetControllen(length int) {
+       msghdr.Controllen = uint64(length)
+}
+
+func (cmsg *Cmsghdr) SetLen(length int) {
+       cmsg.Len = uint64(length)
+}
+
+//sysnb pipe(p *[2]_C_int) (err error)
+
+func Pipe(p []int) (err error) {
+       if len(p) != 2 {
+               return EINVAL
+       }
+       var pp [2]_C_int
+       err = pipe(&pp)
+       p[0] = int(pp[0])
+       p[1] = int(pp[1])
+       return
+}
+
+//sysnb pipe2(p *[2]_C_int, flags int) (err error)
+
+func Pipe2(p []int, flags int) (err error) {
+       if len(p) != 2 {
+               return EINVAL
+       }
+       var pp [2]_C_int
+       err = pipe2(&pp, flags)
+       p[0] = int(pp[0])
+       p[1] = int(pp[1])
+       return
+}
+
+//sys  poll(fds *PollFd, nfds int, timeout int) (n int, err error)
+
+func Poll(fds []PollFd, timeout int) (n int, err error) {
+       if len(fds) == 0 {
+               return poll(nil, 0, timeout)
+       }
+       return poll(&fds[0], len(fds), timeout)
+}
diff --git a/vendor/golang.org/x/sys/unix/syscall_netbsd.go b/vendor/golang.org/x/sys/unix/syscall_netbsd.go
new file mode 100644 (file)
index 0000000..e129668
--- /dev/null
@@ -0,0 +1,472 @@
+// Copyright 2009,2010 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// NetBSD system calls.
+// This file is compiled as ordinary Go code,
+// but it is also input to mksyscall,
+// which parses the //sys lines and generates system call stubs.
+// Note that sometimes we use a lowercase //sys name and wrap
+// it in our own nicer implementation, either here or in
+// syscall_bsd.go or syscall_unix.go.
+
+package unix
+
+import (
+       "syscall"
+       "unsafe"
+)
+
+type SockaddrDatalink struct {
+       Len    uint8
+       Family uint8
+       Index  uint16
+       Type   uint8
+       Nlen   uint8
+       Alen   uint8
+       Slen   uint8
+       Data   [12]int8
+       raw    RawSockaddrDatalink
+}
+
+func Syscall9(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno)
+
+func sysctlNodes(mib []_C_int) (nodes []Sysctlnode, err error) {
+       var olen uintptr
+
+       // Get a list of all sysctl nodes below the given MIB by performing
+       // a sysctl for the given MIB with CTL_QUERY appended.
+       mib = append(mib, CTL_QUERY)
+       qnode := Sysctlnode{Flags: SYSCTL_VERS_1}
+       qp := (*byte)(unsafe.Pointer(&qnode))
+       sz := unsafe.Sizeof(qnode)
+       if err = sysctl(mib, nil, &olen, qp, sz); err != nil {
+               return nil, err
+       }
+
+       // Now that we know the size, get the actual nodes.
+       nodes = make([]Sysctlnode, olen/sz)
+       np := (*byte)(unsafe.Pointer(&nodes[0]))
+       if err = sysctl(mib, np, &olen, qp, sz); err != nil {
+               return nil, err
+       }
+
+       return nodes, nil
+}
+
+func nametomib(name string) (mib []_C_int, err error) {
+
+       // Split name into components.
+       var parts []string
+       last := 0
+       for i := 0; i < len(name); i++ {
+               if name[i] == '.' {
+                       parts = append(parts, name[last:i])
+                       last = i + 1
+               }
+       }
+       parts = append(parts, name[last:])
+
+       // Discover the nodes and construct the MIB OID.
+       for partno, part := range parts {
+               nodes, err := sysctlNodes(mib)
+               if err != nil {
+                       return nil, err
+               }
+               for _, node := range nodes {
+                       n := make([]byte, 0)
+                       for i := range node.Name {
+                               if node.Name[i] != 0 {
+                                       n = append(n, byte(node.Name[i]))
+                               }
+                       }
+                       if string(n) == part {
+                               mib = append(mib, _C_int(node.Num))
+                               break
+                       }
+               }
+               if len(mib) != partno+1 {
+                       return nil, EINVAL
+               }
+       }
+
+       return mib, nil
+}
+
+func direntIno(buf []byte) (uint64, bool) {
+       return readInt(buf, unsafe.Offsetof(Dirent{}.Fileno), unsafe.Sizeof(Dirent{}.Fileno))
+}
+
+func direntReclen(buf []byte) (uint64, bool) {
+       return readInt(buf, unsafe.Offsetof(Dirent{}.Reclen), unsafe.Sizeof(Dirent{}.Reclen))
+}
+
+func direntNamlen(buf []byte) (uint64, bool) {
+       return readInt(buf, unsafe.Offsetof(Dirent{}.Namlen), unsafe.Sizeof(Dirent{}.Namlen))
+}
+
+//sysnb pipe() (fd1 int, fd2 int, err error)
+func Pipe(p []int) (err error) {
+       if len(p) != 2 {
+               return EINVAL
+       }
+       p[0], p[1], err = pipe()
+       return
+}
+
+//sys getdents(fd int, buf []byte) (n int, err error)
+func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) {
+       return getdents(fd, buf)
+}
+
+// TODO
+func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {
+       return -1, ENOSYS
+}
+
+/*
+ * Exposed directly
+ */
+//sys  Access(path string, mode uint32) (err error)
+//sys  Adjtime(delta *Timeval, olddelta *Timeval) (err error)
+//sys  Chdir(path string) (err error)
+//sys  Chflags(path string, flags int) (err error)
+//sys  Chmod(path string, mode uint32) (err error)
+//sys  Chown(path string, uid int, gid int) (err error)
+//sys  Chroot(path string) (err error)
+//sys  Close(fd int) (err error)
+//sys  Dup(fd int) (nfd int, err error)
+//sys  Dup2(from int, to int) (err error)
+//sys  Exit(code int)
+//sys  Fchdir(fd int) (err error)
+//sys  Fchflags(fd int, flags int) (err error)
+//sys  Fchmod(fd int, mode uint32) (err error)
+//sys  Fchown(fd int, uid int, gid int) (err error)
+//sys  Flock(fd int, how int) (err error)
+//sys  Fpathconf(fd int, name int) (val int, err error)
+//sys  Fstat(fd int, stat *Stat_t) (err error)
+//sys  Fsync(fd int) (err error)
+//sys  Ftruncate(fd int, length int64) (err error)
+//sysnb        Getegid() (egid int)
+//sysnb        Geteuid() (uid int)
+//sysnb        Getgid() (gid int)
+//sysnb        Getpgid(pid int) (pgid int, err error)
+//sysnb        Getpgrp() (pgrp int)
+//sysnb        Getpid() (pid int)
+//sysnb        Getppid() (ppid int)
+//sys  Getpriority(which int, who int) (prio int, err error)
+//sysnb        Getrlimit(which int, lim *Rlimit) (err error)
+//sysnb        Getrusage(who int, rusage *Rusage) (err error)
+//sysnb        Getsid(pid int) (sid int, err error)
+//sysnb        Gettimeofday(tv *Timeval) (err error)
+//sysnb        Getuid() (uid int)
+//sys  Issetugid() (tainted bool)
+//sys  Kill(pid int, signum syscall.Signal) (err error)
+//sys  Kqueue() (fd int, err error)
+//sys  Lchown(path string, uid int, gid int) (err error)
+//sys  Link(path string, link string) (err error)
+//sys  Listen(s int, backlog int) (err error)
+//sys  Lstat(path string, stat *Stat_t) (err error)
+//sys  Mkdir(path string, mode uint32) (err error)
+//sys  Mkfifo(path string, mode uint32) (err error)
+//sys  Mknod(path string, mode uint32, dev int) (err error)
+//sys  Nanosleep(time *Timespec, leftover *Timespec) (err error)
+//sys  Open(path string, mode int, perm uint32) (fd int, err error)
+//sys  Pathconf(path string, name int) (val int, err error)
+//sys  Pread(fd int, p []byte, offset int64) (n int, err error)
+//sys  Pwrite(fd int, p []byte, offset int64) (n int, err error)
+//sys  read(fd int, p []byte) (n int, err error)
+//sys  Readlink(path string, buf []byte) (n int, err error)
+//sys  Rename(from string, to string) (err error)
+//sys  Revoke(path string) (err error)
+//sys  Rmdir(path string) (err error)
+//sys  Seek(fd int, offset int64, whence int) (newoffset int64, err error) = SYS_LSEEK
+//sys  Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error)
+//sysnb        Setegid(egid int) (err error)
+//sysnb        Seteuid(euid int) (err error)
+//sysnb        Setgid(gid int) (err error)
+//sysnb        Setpgid(pid int, pgid int) (err error)
+//sys  Setpriority(which int, who int, prio int) (err error)
+//sysnb        Setregid(rgid int, egid int) (err error)
+//sysnb        Setreuid(ruid int, euid int) (err error)
+//sysnb        Setrlimit(which int, lim *Rlimit) (err error)
+//sysnb        Setsid() (pid int, err error)
+//sysnb        Settimeofday(tp *Timeval) (err error)
+//sysnb        Setuid(uid int) (err error)
+//sys  Stat(path string, stat *Stat_t) (err error)
+//sys  Symlink(path string, link string) (err error)
+//sys  Sync() (err error)
+//sys  Truncate(path string, length int64) (err error)
+//sys  Umask(newmask int) (oldmask int)
+//sys  Unlink(path string) (err error)
+//sys  Unmount(path string, flags int) (err error)
+//sys  write(fd int, p []byte) (n int, err error)
+//sys  mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error)
+//sys  munmap(addr uintptr, length uintptr) (err error)
+//sys  readlen(fd int, buf *byte, nbuf int) (n int, err error) = SYS_READ
+//sys  writelen(fd int, buf *byte, nbuf int) (n int, err error) = SYS_WRITE
+//sys  utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error)
+
+/*
+ * Unimplemented
+ */
+// ____semctl13
+// __clone
+// __fhopen40
+// __fhstat40
+// __fhstatvfs140
+// __fstat30
+// __getcwd
+// __getfh30
+// __getlogin
+// __lstat30
+// __mount50
+// __msgctl13
+// __msync13
+// __ntp_gettime30
+// __posix_chown
+// __posix_fadvise50
+// __posix_fchown
+// __posix_lchown
+// __posix_rename
+// __setlogin
+// __shmctl13
+// __sigaction_sigtramp
+// __sigaltstack14
+// __sigpending14
+// __sigprocmask14
+// __sigsuspend14
+// __sigtimedwait
+// __stat30
+// __syscall
+// __vfork14
+// _ksem_close
+// _ksem_destroy
+// _ksem_getvalue
+// _ksem_init
+// _ksem_open
+// _ksem_post
+// _ksem_trywait
+// _ksem_unlink
+// _ksem_wait
+// _lwp_continue
+// _lwp_create
+// _lwp_ctl
+// _lwp_detach
+// _lwp_exit
+// _lwp_getname
+// _lwp_getprivate
+// _lwp_kill
+// _lwp_park
+// _lwp_self
+// _lwp_setname
+// _lwp_setprivate
+// _lwp_suspend
+// _lwp_unpark
+// _lwp_unpark_all
+// _lwp_wait
+// _lwp_wakeup
+// _pset_bind
+// _sched_getaffinity
+// _sched_getparam
+// _sched_setaffinity
+// _sched_setparam
+// acct
+// aio_cancel
+// aio_error
+// aio_fsync
+// aio_read
+// aio_return
+// aio_suspend
+// aio_write
+// break
+// clock_getres
+// clock_gettime
+// clock_settime
+// compat_09_ogetdomainname
+// compat_09_osetdomainname
+// compat_09_ouname
+// compat_10_omsgsys
+// compat_10_osemsys
+// compat_10_oshmsys
+// compat_12_fstat12
+// compat_12_getdirentries
+// compat_12_lstat12
+// compat_12_msync
+// compat_12_oreboot
+// compat_12_oswapon
+// compat_12_stat12
+// compat_13_sigaction13
+// compat_13_sigaltstack13
+// compat_13_sigpending13
+// compat_13_sigprocmask13
+// compat_13_sigreturn13
+// compat_13_sigsuspend13
+// compat_14___semctl
+// compat_14_msgctl
+// compat_14_shmctl
+// compat_16___sigaction14
+// compat_16___sigreturn14
+// compat_20_fhstatfs
+// compat_20_fstatfs
+// compat_20_getfsstat
+// compat_20_statfs
+// compat_30___fhstat30
+// compat_30___fstat13
+// compat_30___lstat13
+// compat_30___stat13
+// compat_30_fhopen
+// compat_30_fhstat
+// compat_30_fhstatvfs1
+// compat_30_getdents
+// compat_30_getfh
+// compat_30_ntp_gettime
+// compat_30_socket
+// compat_40_mount
+// compat_43_fstat43
+// compat_43_lstat43
+// compat_43_oaccept
+// compat_43_ocreat
+// compat_43_oftruncate
+// compat_43_ogetdirentries
+// compat_43_ogetdtablesize
+// compat_43_ogethostid
+// compat_43_ogethostname
+// compat_43_ogetkerninfo
+// compat_43_ogetpagesize
+// compat_43_ogetpeername
+// compat_43_ogetrlimit
+// compat_43_ogetsockname
+// compat_43_okillpg
+// compat_43_olseek
+// compat_43_ommap
+// compat_43_oquota
+// compat_43_orecv
+// compat_43_orecvfrom
+// compat_43_orecvmsg
+// compat_43_osend
+// compat_43_osendmsg
+// compat_43_osethostid
+// compat_43_osethostname
+// compat_43_osetrlimit
+// compat_43_osigblock
+// compat_43_osigsetmask
+// compat_43_osigstack
+// compat_43_osigvec
+// compat_43_otruncate
+// compat_43_owait
+// compat_43_stat43
+// execve
+// extattr_delete_fd
+// extattr_delete_file
+// extattr_delete_link
+// extattr_get_fd
+// extattr_get_file
+// extattr_get_link
+// extattr_list_fd
+// extattr_list_file
+// extattr_list_link
+// extattr_set_fd
+// extattr_set_file
+// extattr_set_link
+// extattrctl
+// fchroot
+// fdatasync
+// fgetxattr
+// fktrace
+// flistxattr
+// fork
+// fremovexattr
+// fsetxattr
+// fstatvfs1
+// fsync_range
+// getcontext
+// getitimer
+// getvfsstat
+// getxattr
+// ioctl
+// ktrace
+// lchflags
+// lchmod
+// lfs_bmapv
+// lfs_markv
+// lfs_segclean
+// lfs_segwait
+// lgetxattr
+// lio_listio
+// listxattr
+// llistxattr
+// lremovexattr
+// lseek
+// lsetxattr
+// lutimes
+// madvise
+// mincore
+// minherit
+// modctl
+// mq_close
+// mq_getattr
+// mq_notify
+// mq_open
+// mq_receive
+// mq_send
+// mq_setattr
+// mq_timedreceive
+// mq_timedsend
+// mq_unlink
+// mremap
+// msgget
+// msgrcv
+// msgsnd
+// nfssvc
+// ntp_adjtime
+// pmc_control
+// pmc_get_info
+// poll
+// pollts
+// preadv
+// profil
+// pselect
+// pset_assign
+// pset_create
+// pset_destroy
+// ptrace
+// pwritev
+// quotactl
+// rasctl
+// readv
+// reboot
+// removexattr
+// sa_enable
+// sa_preempt
+// sa_register
+// sa_setconcurrency
+// sa_stacks
+// sa_yield
+// sbrk
+// sched_yield
+// semconfig
+// semget
+// semop
+// setcontext
+// setitimer
+// setxattr
+// shmat
+// shmdt
+// shmget
+// sstk
+// statvfs1
+// swapctl
+// sysarch
+// syscall
+// timer_create
+// timer_delete
+// timer_getoverrun
+// timer_gettime
+// timer_settime
+// undelete
+// utrace
+// uuidgen
+// vadvise
+// vfork
+// writev
diff --git a/vendor/golang.org/x/sys/unix/syscall_netbsd_386.go b/vendor/golang.org/x/sys/unix/syscall_netbsd_386.go
new file mode 100644 (file)
index 0000000..afaca09
--- /dev/null
@@ -0,0 +1,42 @@
+// Copyright 2009 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build 386,netbsd
+
+package unix
+
+func Getpagesize() int { return 4096 }
+
+func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) }
+
+func NsecToTimespec(nsec int64) (ts Timespec) {
+       ts.Sec = int64(nsec / 1e9)
+       ts.Nsec = int32(nsec % 1e9)
+       return
+}
+
+func NsecToTimeval(nsec int64) (tv Timeval) {
+       nsec += 999 // round up to microsecond
+       tv.Usec = int32(nsec % 1e9 / 1e3)
+       tv.Sec = int64(nsec / 1e9)
+       return
+}
+
+func SetKevent(k *Kevent_t, fd, mode, flags int) {
+       k.Ident = uint32(fd)
+       k.Filter = uint32(mode)
+       k.Flags = uint32(flags)
+}
+
+func (iov *Iovec) SetLen(length int) {
+       iov.Len = uint32(length)
+}
+
+func (msghdr *Msghdr) SetControllen(length int) {
+       msghdr.Controllen = uint32(length)
+}
+
+func (cmsg *Cmsghdr) SetLen(length int) {
+       cmsg.Len = uint32(length)
+}
diff --git a/vendor/golang.org/x/sys/unix/syscall_netbsd_amd64.go b/vendor/golang.org/x/sys/unix/syscall_netbsd_amd64.go
new file mode 100644 (file)
index 0000000..a6ff04c
--- /dev/null
@@ -0,0 +1,42 @@
+// Copyright 2009 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build amd64,netbsd
+
+package unix
+
+func Getpagesize() int { return 4096 }
+
+func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) }
+
+func NsecToTimespec(nsec int64) (ts Timespec) {
+       ts.Sec = int64(nsec / 1e9)
+       ts.Nsec = int64(nsec % 1e9)
+       return
+}
+
+func NsecToTimeval(nsec int64) (tv Timeval) {
+       nsec += 999 // round up to microsecond
+       tv.Usec = int32(nsec % 1e9 / 1e3)
+       tv.Sec = int64(nsec / 1e9)
+       return
+}
+
+func SetKevent(k *Kevent_t, fd, mode, flags int) {
+       k.Ident = uint64(fd)
+       k.Filter = uint32(mode)
+       k.Flags = uint32(flags)
+}
+
+func (iov *Iovec) SetLen(length int) {
+       iov.Len = uint64(length)
+}
+
+func (msghdr *Msghdr) SetControllen(length int) {
+       msghdr.Controllen = uint32(length)
+}
+
+func (cmsg *Cmsghdr) SetLen(length int) {
+       cmsg.Len = uint32(length)
+}
diff --git a/vendor/golang.org/x/sys/unix/syscall_netbsd_arm.go b/vendor/golang.org/x/sys/unix/syscall_netbsd_arm.go
new file mode 100644 (file)
index 0000000..68a6969
--- /dev/null
@@ -0,0 +1,42 @@
+// Copyright 2013 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build arm,netbsd
+
+package unix
+
+func Getpagesize() int { return 4096 }
+
+func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) }
+
+func NsecToTimespec(nsec int64) (ts Timespec) {
+       ts.Sec = int64(nsec / 1e9)
+       ts.Nsec = int32(nsec % 1e9)
+       return
+}
+
+func NsecToTimeval(nsec int64) (tv Timeval) {
+       nsec += 999 // round up to microsecond
+       tv.Usec = int32(nsec % 1e9 / 1e3)
+       tv.Sec = int64(nsec / 1e9)
+       return
+}
+
+func SetKevent(k *Kevent_t, fd, mode, flags int) {
+       k.Ident = uint32(fd)
+       k.Filter = uint32(mode)
+       k.Flags = uint32(flags)
+}
+
+func (iov *Iovec) SetLen(length int) {
+       iov.Len = uint32(length)
+}
+
+func (msghdr *Msghdr) SetControllen(length int) {
+       msghdr.Controllen = uint32(length)
+}
+
+func (cmsg *Cmsghdr) SetLen(length int) {
+       cmsg.Len = uint32(length)
+}
diff --git a/vendor/golang.org/x/sys/unix/syscall_no_getwd.go b/vendor/golang.org/x/sys/unix/syscall_no_getwd.go
new file mode 100644 (file)
index 0000000..530792e
--- /dev/null
@@ -0,0 +1,11 @@
+// Copyright 2013 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build dragonfly freebsd netbsd openbsd
+
+package unix
+
+const ImplementsGetwd = false
+
+func Getwd() (string, error) { return "", ENOTSUP }
diff --git a/vendor/golang.org/x/sys/unix/syscall_openbsd.go b/vendor/golang.org/x/sys/unix/syscall_openbsd.go
new file mode 100644 (file)
index 0000000..408e630
--- /dev/null
@@ -0,0 +1,282 @@
+// Copyright 2009,2010 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// OpenBSD system calls.
+// This file is compiled as ordinary Go code,
+// but it is also input to mksyscall,
+// which parses the //sys lines and generates system call stubs.
+// Note that sometimes we use a lowercase //sys name and wrap
+// it in our own nicer implementation, either here or in
+// syscall_bsd.go or syscall_unix.go.
+
+package unix
+
+import (
+       "syscall"
+       "unsafe"
+)
+
+type SockaddrDatalink struct {
+       Len    uint8
+       Family uint8
+       Index  uint16
+       Type   uint8
+       Nlen   uint8
+       Alen   uint8
+       Slen   uint8
+       Data   [24]int8
+       raw    RawSockaddrDatalink
+}
+
+func Syscall9(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno)
+
+func nametomib(name string) (mib []_C_int, err error) {
+
+       // Perform lookup via a binary search
+       left := 0
+       right := len(sysctlMib) - 1
+       for {
+               idx := left + (right-left)/2
+               switch {
+               case name == sysctlMib[idx].ctlname:
+                       return sysctlMib[idx].ctloid, nil
+               case name > sysctlMib[idx].ctlname:
+                       left = idx + 1
+               default:
+                       right = idx - 1
+               }
+               if left > right {
+                       break
+               }
+       }
+       return nil, EINVAL
+}
+
+func direntIno(buf []byte) (uint64, bool) {
+       return readInt(buf, unsafe.Offsetof(Dirent{}.Fileno), unsafe.Sizeof(Dirent{}.Fileno))
+}
+
+func direntReclen(buf []byte) (uint64, bool) {
+       return readInt(buf, unsafe.Offsetof(Dirent{}.Reclen), unsafe.Sizeof(Dirent{}.Reclen))
+}
+
+func direntNamlen(buf []byte) (uint64, bool) {
+       return readInt(buf, unsafe.Offsetof(Dirent{}.Namlen), unsafe.Sizeof(Dirent{}.Namlen))
+}
+
+//sysnb pipe(p *[2]_C_int) (err error)
+func Pipe(p []int) (err error) {
+       if len(p) != 2 {
+               return EINVAL
+       }
+       var pp [2]_C_int
+       err = pipe(&pp)
+       p[0] = int(pp[0])
+       p[1] = int(pp[1])
+       return
+}
+
+//sys getdents(fd int, buf []byte) (n int, err error)
+func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) {
+       return getdents(fd, buf)
+}
+
+// TODO
+func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {
+       return -1, ENOSYS
+}
+
+func Getfsstat(buf []Statfs_t, flags int) (n int, err error) {
+       var _p0 unsafe.Pointer
+       var bufsize uintptr
+       if len(buf) > 0 {
+               _p0 = unsafe.Pointer(&buf[0])
+               bufsize = unsafe.Sizeof(Statfs_t{}) * uintptr(len(buf))
+       }
+       r0, _, e1 := Syscall(SYS_GETFSSTAT, uintptr(_p0), bufsize, uintptr(flags))
+       n = int(r0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+/*
+ * Exposed directly
+ */
+//sys  Access(path string, mode uint32) (err error)
+//sys  Adjtime(delta *Timeval, olddelta *Timeval) (err error)
+//sys  Chdir(path string) (err error)
+//sys  Chflags(path string, flags int) (err error)
+//sys  Chmod(path string, mode uint32) (err error)
+//sys  Chown(path string, uid int, gid int) (err error)
+//sys  Chroot(path string) (err error)
+//sys  Close(fd int) (err error)
+//sys  Dup(fd int) (nfd int, err error)
+//sys  Dup2(from int, to int) (err error)
+//sys  Exit(code int)
+//sys  Fchdir(fd int) (err error)
+//sys  Fchflags(fd int, flags int) (err error)
+//sys  Fchmod(fd int, mode uint32) (err error)
+//sys  Fchown(fd int, uid int, gid int) (err error)
+//sys  Flock(fd int, how int) (err error)
+//sys  Fpathconf(fd int, name int) (val int, err error)
+//sys  Fstat(fd int, stat *Stat_t) (err error)
+//sys  Fstatfs(fd int, stat *Statfs_t) (err error)
+//sys  Fsync(fd int) (err error)
+//sys  Ftruncate(fd int, length int64) (err error)
+//sysnb        Getegid() (egid int)
+//sysnb        Geteuid() (uid int)
+//sysnb        Getgid() (gid int)
+//sysnb        Getpgid(pid int) (pgid int, err error)
+//sysnb        Getpgrp() (pgrp int)
+//sysnb        Getpid() (pid int)
+//sysnb        Getppid() (ppid int)
+//sys  Getpriority(which int, who int) (prio int, err error)
+//sysnb        Getrlimit(which int, lim *Rlimit) (err error)
+//sysnb        Getrusage(who int, rusage *Rusage) (err error)
+//sysnb        Getsid(pid int) (sid int, err error)
+//sysnb        Gettimeofday(tv *Timeval) (err error)
+//sysnb        Getuid() (uid int)
+//sys  Issetugid() (tainted bool)
+//sys  Kill(pid int, signum syscall.Signal) (err error)
+//sys  Kqueue() (fd int, err error)
+//sys  Lchown(path string, uid int, gid int) (err error)
+//sys  Link(path string, link string) (err error)
+//sys  Listen(s int, backlog int) (err error)
+//sys  Lstat(path string, stat *Stat_t) (err error)
+//sys  Mkdir(path string, mode uint32) (err error)
+//sys  Mkfifo(path string, mode uint32) (err error)
+//sys  Mknod(path string, mode uint32, dev int) (err error)
+//sys  Nanosleep(time *Timespec, leftover *Timespec) (err error)
+//sys  Open(path string, mode int, perm uint32) (fd int, err error)
+//sys  Pathconf(path string, name int) (val int, err error)
+//sys  Pread(fd int, p []byte, offset int64) (n int, err error)
+//sys  Pwrite(fd int, p []byte, offset int64) (n int, err error)
+//sys  read(fd int, p []byte) (n int, err error)
+//sys  Readlink(path string, buf []byte) (n int, err error)
+//sys  Rename(from string, to string) (err error)
+//sys  Revoke(path string) (err error)
+//sys  Rmdir(path string) (err error)
+//sys  Seek(fd int, offset int64, whence int) (newoffset int64, err error) = SYS_LSEEK
+//sys  Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error)
+//sysnb        Setegid(egid int) (err error)
+//sysnb        Seteuid(euid int) (err error)
+//sysnb        Setgid(gid int) (err error)
+//sys  Setlogin(name string) (err error)
+//sysnb        Setpgid(pid int, pgid int) (err error)
+//sys  Setpriority(which int, who int, prio int) (err error)
+//sysnb        Setregid(rgid int, egid int) (err error)
+//sysnb        Setreuid(ruid int, euid int) (err error)
+//sysnb        Setresgid(rgid int, egid int, sgid int) (err error)
+//sysnb        Setresuid(ruid int, euid int, suid int) (err error)
+//sysnb        Setrlimit(which int, lim *Rlimit) (err error)
+//sysnb        Setsid() (pid int, err error)
+//sysnb        Settimeofday(tp *Timeval) (err error)
+//sysnb        Setuid(uid int) (err error)
+//sys  Stat(path string, stat *Stat_t) (err error)
+//sys  Statfs(path string, stat *Statfs_t) (err error)
+//sys  Symlink(path string, link string) (err error)
+//sys  Sync() (err error)
+//sys  Truncate(path string, length int64) (err error)
+//sys  Umask(newmask int) (oldmask int)
+//sys  Unlink(path string) (err error)
+//sys  Unmount(path string, flags int) (err error)
+//sys  write(fd int, p []byte) (n int, err error)
+//sys  mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error)
+//sys  munmap(addr uintptr, length uintptr) (err error)
+//sys  readlen(fd int, buf *byte, nbuf int) (n int, err error) = SYS_READ
+//sys  writelen(fd int, buf *byte, nbuf int) (n int, err error) = SYS_WRITE
+//sys  utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error)
+
+/*
+ * Unimplemented
+ */
+// __getcwd
+// __semctl
+// __syscall
+// __sysctl
+// adjfreq
+// break
+// clock_getres
+// clock_gettime
+// clock_settime
+// closefrom
+// execve
+// faccessat
+// fchmodat
+// fchownat
+// fcntl
+// fhopen
+// fhstat
+// fhstatfs
+// fork
+// fstatat
+// futimens
+// getfh
+// getgid
+// getitimer
+// getlogin
+// getresgid
+// getresuid
+// getrtable
+// getthrid
+// ioctl
+// ktrace
+// lfs_bmapv
+// lfs_markv
+// lfs_segclean
+// lfs_segwait
+// linkat
+// mincore
+// minherit
+// mkdirat
+// mkfifoat
+// mknodat
+// mount
+// mquery
+// msgctl
+// msgget
+// msgrcv
+// msgsnd
+// nfssvc
+// nnpfspioctl
+// openat
+// poll
+// preadv
+// profil
+// pwritev
+// quotactl
+// readlinkat
+// readv
+// reboot
+// renameat
+// rfork
+// sched_yield
+// semget
+// semop
+// setgroups
+// setitimer
+// setrtable
+// setsockopt
+// shmat
+// shmctl
+// shmdt
+// shmget
+// sigaction
+// sigaltstack
+// sigpending
+// sigprocmask
+// sigreturn
+// sigsuspend
+// symlinkat
+// sysarch
+// syscall
+// threxit
+// thrsigdivert
+// thrsleep
+// thrwakeup
+// unlinkat
+// vfork
+// writev
diff --git a/vendor/golang.org/x/sys/unix/syscall_openbsd_386.go b/vendor/golang.org/x/sys/unix/syscall_openbsd_386.go
new file mode 100644 (file)
index 0000000..a66ddc5
--- /dev/null
@@ -0,0 +1,42 @@
+// Copyright 2009 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build 386,openbsd
+
+package unix
+
+func Getpagesize() int { return 4096 }
+
+func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) }
+
+func NsecToTimespec(nsec int64) (ts Timespec) {
+       ts.Sec = int64(nsec / 1e9)
+       ts.Nsec = int32(nsec % 1e9)
+       return
+}
+
+func NsecToTimeval(nsec int64) (tv Timeval) {
+       nsec += 999 // round up to microsecond
+       tv.Usec = int32(nsec % 1e9 / 1e3)
+       tv.Sec = int64(nsec / 1e9)
+       return
+}
+
+func SetKevent(k *Kevent_t, fd, mode, flags int) {
+       k.Ident = uint32(fd)
+       k.Filter = int16(mode)
+       k.Flags = uint16(flags)
+}
+
+func (iov *Iovec) SetLen(length int) {
+       iov.Len = uint32(length)
+}
+
+func (msghdr *Msghdr) SetControllen(length int) {
+       msghdr.Controllen = uint32(length)
+}
+
+func (cmsg *Cmsghdr) SetLen(length int) {
+       cmsg.Len = uint32(length)
+}
diff --git a/vendor/golang.org/x/sys/unix/syscall_openbsd_amd64.go b/vendor/golang.org/x/sys/unix/syscall_openbsd_amd64.go
new file mode 100644 (file)
index 0000000..0776c1f
--- /dev/null
@@ -0,0 +1,42 @@
+// Copyright 2009 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build amd64,openbsd
+
+package unix
+
+func Getpagesize() int { return 4096 }
+
+func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) }
+
+func NsecToTimespec(nsec int64) (ts Timespec) {
+       ts.Sec = nsec / 1e9
+       ts.Nsec = nsec % 1e9
+       return
+}
+
+func NsecToTimeval(nsec int64) (tv Timeval) {
+       nsec += 999 // round up to microsecond
+       tv.Usec = nsec % 1e9 / 1e3
+       tv.Sec = nsec / 1e9
+       return
+}
+
+func SetKevent(k *Kevent_t, fd, mode, flags int) {
+       k.Ident = uint64(fd)
+       k.Filter = int16(mode)
+       k.Flags = uint16(flags)
+}
+
+func (iov *Iovec) SetLen(length int) {
+       iov.Len = uint64(length)
+}
+
+func (msghdr *Msghdr) SetControllen(length int) {
+       msghdr.Controllen = uint32(length)
+}
+
+func (cmsg *Cmsghdr) SetLen(length int) {
+       cmsg.Len = uint32(length)
+}
diff --git a/vendor/golang.org/x/sys/unix/syscall_openbsd_arm.go b/vendor/golang.org/x/sys/unix/syscall_openbsd_arm.go
new file mode 100644 (file)
index 0000000..14ddaf3
--- /dev/null
@@ -0,0 +1,44 @@
+// 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 arm,openbsd
+
+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 NsecToTimeval(nsec int64) (tv Timeval) {
+       nsec += 999 // round up to microsecond
+       tv.Usec = int32(nsec % 1e9 / 1e3)
+       tv.Sec = int64(nsec / 1e9)
+       return
+}
+
+func SetKevent(k *Kevent_t, fd, mode, flags int) {
+       k.Ident = uint32(fd)
+       k.Filter = int16(mode)
+       k.Flags = uint16(flags)
+}
+
+func (iov *Iovec) SetLen(length int) {
+       iov.Len = uint32(length)
+}
+
+func (msghdr *Msghdr) SetControllen(length int) {
+       msghdr.Controllen = uint32(length)
+}
+
+func (cmsg *Cmsghdr) SetLen(length int) {
+       cmsg.Len = uint32(length)
+}
diff --git a/vendor/golang.org/x/sys/unix/syscall_solaris.go b/vendor/golang.org/x/sys/unix/syscall_solaris.go
new file mode 100644 (file)
index 0000000..0d4e5c4
--- /dev/null
@@ -0,0 +1,716 @@
+// Copyright 2009 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// Solaris system calls.
+// This file is compiled as ordinary Go code,
+// but it is also input to mksyscall,
+// which parses the //sys lines and generates system call stubs.
+// Note that sometimes we use a lowercase //sys name and wrap
+// it in our own nicer implementation, either here or in
+// syscall_solaris.go or syscall_unix.go.
+
+package unix
+
+import (
+       "sync/atomic"
+       "syscall"
+       "unsafe"
+)
+
+// Implemented in runtime/syscall_solaris.go.
+type syscallFunc uintptr
+
+func rawSysvicall6(trap, nargs, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.Errno)
+func sysvicall6(trap, nargs, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.Errno)
+
+type SockaddrDatalink struct {
+       Family uint16
+       Index  uint16
+       Type   uint8
+       Nlen   uint8
+       Alen   uint8
+       Slen   uint8
+       Data   [244]int8
+       raw    RawSockaddrDatalink
+}
+
+func clen(n []byte) int {
+       for i := 0; i < len(n); i++ {
+               if n[i] == 0 {
+                       return i
+               }
+       }
+       return len(n)
+}
+
+func direntIno(buf []byte) (uint64, bool) {
+       return readInt(buf, unsafe.Offsetof(Dirent{}.Ino), unsafe.Sizeof(Dirent{}.Ino))
+}
+
+func direntReclen(buf []byte) (uint64, bool) {
+       return readInt(buf, unsafe.Offsetof(Dirent{}.Reclen), unsafe.Sizeof(Dirent{}.Reclen))
+}
+
+func direntNamlen(buf []byte) (uint64, bool) {
+       reclen, ok := direntReclen(buf)
+       if !ok {
+               return 0, false
+       }
+       return reclen - uint64(unsafe.Offsetof(Dirent{}.Name)), true
+}
+
+//sysnb        pipe(p *[2]_C_int) (n int, err error)
+
+func Pipe(p []int) (err error) {
+       if len(p) != 2 {
+               return EINVAL
+       }
+       var pp [2]_C_int
+       n, err := pipe(&pp)
+       if n != 0 {
+               return err
+       }
+       p[0] = int(pp[0])
+       p[1] = int(pp[1])
+       return nil
+}
+
+func (sa *SockaddrInet4) sockaddr() (unsafe.Pointer, _Socklen, error) {
+       if sa.Port < 0 || sa.Port > 0xFFFF {
+               return nil, 0, EINVAL
+       }
+       sa.raw.Family = AF_INET
+       p := (*[2]byte)(unsafe.Pointer(&sa.raw.Port))
+       p[0] = byte(sa.Port >> 8)
+       p[1] = byte(sa.Port)
+       for i := 0; i < len(sa.Addr); i++ {
+               sa.raw.Addr[i] = sa.Addr[i]
+       }
+       return unsafe.Pointer(&sa.raw), SizeofSockaddrInet4, nil
+}
+
+func (sa *SockaddrInet6) sockaddr() (unsafe.Pointer, _Socklen, error) {
+       if sa.Port < 0 || sa.Port > 0xFFFF {
+               return nil, 0, EINVAL
+       }
+       sa.raw.Family = AF_INET6
+       p := (*[2]byte)(unsafe.Pointer(&sa.raw.Port))
+       p[0] = byte(sa.Port >> 8)
+       p[1] = byte(sa.Port)
+       sa.raw.Scope_id = sa.ZoneId
+       for i := 0; i < len(sa.Addr); i++ {
+               sa.raw.Addr[i] = sa.Addr[i]
+       }
+       return unsafe.Pointer(&sa.raw), SizeofSockaddrInet6, nil
+}
+
+func (sa *SockaddrUnix) sockaddr() (unsafe.Pointer, _Socklen, error) {
+       name := sa.Name
+       n := len(name)
+       if n >= len(sa.raw.Path) {
+               return nil, 0, EINVAL
+       }
+       sa.raw.Family = AF_UNIX
+       for i := 0; i < n; i++ {
+               sa.raw.Path[i] = int8(name[i])
+       }
+       // length is family (uint16), name, NUL.
+       sl := _Socklen(2)
+       if n > 0 {
+               sl += _Socklen(n) + 1
+       }
+       if sa.raw.Path[0] == '@' {
+               sa.raw.Path[0] = 0
+               // Don't count trailing NUL for abstract address.
+               sl--
+       }
+
+       return unsafe.Pointer(&sa.raw), sl, nil
+}
+
+//sys  getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) = libsocket.getsockname
+
+func Getsockname(fd int) (sa Sockaddr, err error) {
+       var rsa RawSockaddrAny
+       var len _Socklen = SizeofSockaddrAny
+       if err = getsockname(fd, &rsa, &len); err != nil {
+               return
+       }
+       return anyToSockaddr(&rsa)
+}
+
+const ImplementsGetwd = true
+
+//sys  Getcwd(buf []byte) (n int, err error)
+
+func Getwd() (wd string, err error) {
+       var buf [PathMax]byte
+       // Getcwd will return an error if it failed for any reason.
+       _, err = Getcwd(buf[0:])
+       if err != nil {
+               return "", err
+       }
+       n := clen(buf[:])
+       if n < 1 {
+               return "", EINVAL
+       }
+       return string(buf[:n]), nil
+}
+
+/*
+ * Wrapped
+ */
+
+//sysnb        getgroups(ngid int, gid *_Gid_t) (n int, err error)
+//sysnb        setgroups(ngid int, gid *_Gid_t) (err error)
+
+func Getgroups() (gids []int, err error) {
+       n, err := getgroups(0, nil)
+       // Check for error and sanity check group count.  Newer versions of
+       // Solaris allow up to 1024 (NGROUPS_MAX).
+       if n < 0 || n > 1024 {
+               if err != nil {
+                       return nil, err
+               }
+               return nil, EINVAL
+       } else if n == 0 {
+               return nil, nil
+       }
+
+       a := make([]_Gid_t, n)
+       n, err = getgroups(n, &a[0])
+       if n == -1 {
+               return nil, err
+       }
+       gids = make([]int, n)
+       for i, v := range a[0:n] {
+               gids[i] = int(v)
+       }
+       return
+}
+
+func Setgroups(gids []int) (err error) {
+       if len(gids) == 0 {
+               return setgroups(0, nil)
+       }
+
+       a := make([]_Gid_t, len(gids))
+       for i, v := range gids {
+               a[i] = _Gid_t(v)
+       }
+       return setgroups(len(a), &a[0])
+}
+
+func ReadDirent(fd int, buf []byte) (n int, err error) {
+       // Final argument is (basep *uintptr) and the syscall doesn't take nil.
+       // TODO(rsc): Can we use a single global basep for all calls?
+       return Getdents(fd, buf, new(uintptr))
+}
+
+// Wait status is 7 bits at bottom, either 0 (exited),
+// 0x7F (stopped), or a signal number that caused an exit.
+// The 0x80 bit is whether there was a core dump.
+// An extra number (exit code, signal causing a stop)
+// is in the high bits.
+
+type WaitStatus uint32
+
+const (
+       mask  = 0x7F
+       core  = 0x80
+       shift = 8
+
+       exited  = 0
+       stopped = 0x7F
+)
+
+func (w WaitStatus) Exited() bool { return w&mask == exited }
+
+func (w WaitStatus) ExitStatus() int {
+       if w&mask != exited {
+               return -1
+       }
+       return int(w >> shift)
+}
+
+func (w WaitStatus) Signaled() bool { return w&mask != stopped && w&mask != 0 }
+
+func (w WaitStatus) Signal() syscall.Signal {
+       sig := syscall.Signal(w & mask)
+       if sig == stopped || sig == 0 {
+               return -1
+       }
+       return sig
+}
+
+func (w WaitStatus) CoreDump() bool { return w.Signaled() && w&core != 0 }
+
+func (w WaitStatus) Stopped() bool { return w&mask == stopped && syscall.Signal(w>>shift) != SIGSTOP }
+
+func (w WaitStatus) Continued() bool { return w&mask == stopped && syscall.Signal(w>>shift) == SIGSTOP }
+
+func (w WaitStatus) StopSignal() syscall.Signal {
+       if !w.Stopped() {
+               return -1
+       }
+       return syscall.Signal(w>>shift) & 0xFF
+}
+
+func (w WaitStatus) TrapCause() int { return -1 }
+
+//sys  wait4(pid int32, statusp *_C_int, options int, rusage *Rusage) (wpid int32, err error)
+
+func Wait4(pid int, wstatus *WaitStatus, options int, rusage *Rusage) (int, error) {
+       var status _C_int
+       rpid, err := wait4(int32(pid), &status, options, rusage)
+       wpid := int(rpid)
+       if wpid == -1 {
+               return wpid, err
+       }
+       if wstatus != nil {
+               *wstatus = WaitStatus(status)
+       }
+       return wpid, nil
+}
+
+//sys  gethostname(buf []byte) (n int, err error)
+
+func Gethostname() (name string, err error) {
+       var buf [MaxHostNameLen]byte
+       n, err := gethostname(buf[:])
+       if n != 0 {
+               return "", err
+       }
+       n = clen(buf[:])
+       if n < 1 {
+               return "", EFAULT
+       }
+       return string(buf[:n]), nil
+}
+
+//sys  utimes(path string, times *[2]Timeval) (err error)
+
+func Utimes(path string, tv []Timeval) (err error) {
+       if tv == nil {
+               return utimes(path, nil)
+       }
+       if len(tv) != 2 {
+               return EINVAL
+       }
+       return utimes(path, (*[2]Timeval)(unsafe.Pointer(&tv[0])))
+}
+
+//sys  utimensat(fd int, path string, times *[2]Timespec, flag int) (err error)
+
+func UtimesNano(path string, ts []Timespec) error {
+       if ts == nil {
+               return utimensat(AT_FDCWD, path, nil, 0)
+       }
+       if len(ts) != 2 {
+               return EINVAL
+       }
+       return utimensat(AT_FDCWD, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0)
+}
+
+func UtimesNanoAt(dirfd int, path string, ts []Timespec, flags int) error {
+       if ts == nil {
+               return utimensat(dirfd, path, nil, flags)
+       }
+       if len(ts) != 2 {
+               return EINVAL
+       }
+       return utimensat(dirfd, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), flags)
+}
+
+//sys  fcntl(fd int, cmd int, arg int) (val int, err error)
+
+// FcntlFlock performs a fcntl syscall for the F_GETLK, F_SETLK or F_SETLKW command.
+func FcntlFlock(fd uintptr, cmd int, lk *Flock_t) error {
+       _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procfcntl)), 3, uintptr(fd), uintptr(cmd), uintptr(unsafe.Pointer(lk)), 0, 0, 0)
+       if e1 != 0 {
+               return e1
+       }
+       return nil
+}
+
+//sys  futimesat(fildes int, path *byte, times *[2]Timeval) (err error)
+
+func Futimesat(dirfd int, path string, tv []Timeval) error {
+       pathp, err := BytePtrFromString(path)
+       if err != nil {
+               return err
+       }
+       if tv == nil {
+               return futimesat(dirfd, pathp, nil)
+       }
+       if len(tv) != 2 {
+               return EINVAL
+       }
+       return futimesat(dirfd, pathp, (*[2]Timeval)(unsafe.Pointer(&tv[0])))
+}
+
+// Solaris doesn't have an futimes function because it allows NULL to be
+// specified as the path for futimesat.  However, Go doesn't like
+// NULL-style string interfaces, so this simple wrapper is provided.
+func Futimes(fd int, tv []Timeval) error {
+       if tv == nil {
+               return futimesat(fd, nil, nil)
+       }
+       if len(tv) != 2 {
+               return EINVAL
+       }
+       return futimesat(fd, nil, (*[2]Timeval)(unsafe.Pointer(&tv[0])))
+}
+
+func anyToSockaddr(rsa *RawSockaddrAny) (Sockaddr, error) {
+       switch rsa.Addr.Family {
+       case AF_UNIX:
+               pp := (*RawSockaddrUnix)(unsafe.Pointer(rsa))
+               sa := new(SockaddrUnix)
+               // Assume path ends at NUL.
+               // This is not technically the Solaris semantics for
+               // abstract Unix domain sockets -- they are supposed
+               // to be uninterpreted fixed-size binary blobs -- but
+               // everyone uses this convention.
+               n := 0
+               for n < len(pp.Path) && pp.Path[n] != 0 {
+                       n++
+               }
+               bytes := (*[10000]byte)(unsafe.Pointer(&pp.Path[0]))[0:n]
+               sa.Name = string(bytes)
+               return sa, nil
+
+       case AF_INET:
+               pp := (*RawSockaddrInet4)(unsafe.Pointer(rsa))
+               sa := new(SockaddrInet4)
+               p := (*[2]byte)(unsafe.Pointer(&pp.Port))
+               sa.Port = int(p[0])<<8 + int(p[1])
+               for i := 0; i < len(sa.Addr); i++ {
+                       sa.Addr[i] = pp.Addr[i]
+               }
+               return sa, nil
+
+       case AF_INET6:
+               pp := (*RawSockaddrInet6)(unsafe.Pointer(rsa))
+               sa := new(SockaddrInet6)
+               p := (*[2]byte)(unsafe.Pointer(&pp.Port))
+               sa.Port = int(p[0])<<8 + int(p[1])
+               sa.ZoneId = pp.Scope_id
+               for i := 0; i < len(sa.Addr); i++ {
+                       sa.Addr[i] = pp.Addr[i]
+               }
+               return sa, nil
+       }
+       return nil, EAFNOSUPPORT
+}
+
+//sys  accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) = libsocket.accept
+
+func Accept(fd int) (nfd int, sa Sockaddr, err error) {
+       var rsa RawSockaddrAny
+       var len _Socklen = SizeofSockaddrAny
+       nfd, err = accept(fd, &rsa, &len)
+       if nfd == -1 {
+               return
+       }
+       sa, err = anyToSockaddr(&rsa)
+       if err != nil {
+               Close(nfd)
+               nfd = 0
+       }
+       return
+}
+
+//sys  recvmsg(s int, msg *Msghdr, flags int) (n int, err error) = libsocket.__xnet_recvmsg
+
+func Recvmsg(fd int, p, oob []byte, flags int) (n, oobn int, recvflags int, from Sockaddr, err error) {
+       var msg Msghdr
+       var rsa RawSockaddrAny
+       msg.Name = (*byte)(unsafe.Pointer(&rsa))
+       msg.Namelen = uint32(SizeofSockaddrAny)
+       var iov Iovec
+       if len(p) > 0 {
+               iov.Base = (*int8)(unsafe.Pointer(&p[0]))
+               iov.SetLen(len(p))
+       }
+       var dummy int8
+       if len(oob) > 0 {
+               // receive at least one normal byte
+               if len(p) == 0 {
+                       iov.Base = &dummy
+                       iov.SetLen(1)
+               }
+               msg.Accrightslen = int32(len(oob))
+       }
+       msg.Iov = &iov
+       msg.Iovlen = 1
+       if n, err = recvmsg(fd, &msg, flags); n == -1 {
+               return
+       }
+       oobn = int(msg.Accrightslen)
+       // source address is only specified if the socket is unconnected
+       if rsa.Addr.Family != AF_UNSPEC {
+               from, err = anyToSockaddr(&rsa)
+       }
+       return
+}
+
+func Sendmsg(fd int, p, oob []byte, to Sockaddr, flags int) (err error) {
+       _, err = SendmsgN(fd, p, oob, to, flags)
+       return
+}
+
+//sys  sendmsg(s int, msg *Msghdr, flags int) (n int, err error) = libsocket.__xnet_sendmsg
+
+func SendmsgN(fd int, p, oob []byte, to Sockaddr, flags int) (n int, err error) {
+       var ptr unsafe.Pointer
+       var salen _Socklen
+       if to != nil {
+               ptr, salen, err = to.sockaddr()
+               if err != nil {
+                       return 0, err
+               }
+       }
+       var msg Msghdr
+       msg.Name = (*byte)(unsafe.Pointer(ptr))
+       msg.Namelen = uint32(salen)
+       var iov Iovec
+       if len(p) > 0 {
+               iov.Base = (*int8)(unsafe.Pointer(&p[0]))
+               iov.SetLen(len(p))
+       }
+       var dummy int8
+       if len(oob) > 0 {
+               // send at least one normal byte
+               if len(p) == 0 {
+                       iov.Base = &dummy
+                       iov.SetLen(1)
+               }
+               msg.Accrightslen = int32(len(oob))
+       }
+       msg.Iov = &iov
+       msg.Iovlen = 1
+       if n, err = sendmsg(fd, &msg, flags); err != nil {
+               return 0, err
+       }
+       if len(oob) > 0 && len(p) == 0 {
+               n = 0
+       }
+       return n, nil
+}
+
+//sys  acct(path *byte) (err error)
+
+func Acct(path string) (err error) {
+       if len(path) == 0 {
+               // Assume caller wants to disable accounting.
+               return acct(nil)
+       }
+
+       pathp, err := BytePtrFromString(path)
+       if err != nil {
+               return err
+       }
+       return acct(pathp)
+}
+
+/*
+ * Expose the ioctl function
+ */
+
+//sys  ioctl(fd int, req uint, arg uintptr) (err error)
+
+func IoctlSetInt(fd int, req uint, value int) (err error) {
+       return ioctl(fd, req, uintptr(value))
+}
+
+func IoctlSetWinsize(fd int, req uint, value *Winsize) (err error) {
+       return ioctl(fd, req, uintptr(unsafe.Pointer(value)))
+}
+
+func IoctlSetTermios(fd int, req uint, value *Termios) (err error) {
+       return ioctl(fd, req, uintptr(unsafe.Pointer(value)))
+}
+
+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
+       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
+}
+
+func IoctlGetTermio(fd int, req uint) (*Termio, error) {
+       var value Termio
+       err := ioctl(fd, req, uintptr(unsafe.Pointer(&value)))
+       return &value, err
+}
+
+/*
+ * Exposed directly
+ */
+//sys  Access(path string, mode uint32) (err error)
+//sys  Adjtime(delta *Timeval, olddelta *Timeval) (err error)
+//sys  Chdir(path string) (err error)
+//sys  Chmod(path string, mode uint32) (err error)
+//sys  Chown(path string, uid int, gid int) (err error)
+//sys  Chroot(path string) (err error)
+//sys  Close(fd int) (err error)
+//sys  Creat(path string, mode uint32) (fd int, err error)
+//sys  Dup(fd int) (nfd int, err error)
+//sys  Dup2(oldfd int, newfd int) (err error)
+//sys  Exit(code int)
+//sys  Fchdir(fd int) (err error)
+//sys  Fchmod(fd int, mode uint32) (err error)
+//sys  Fchmodat(dirfd int, path string, mode uint32, flags int) (err error)
+//sys  Fchown(fd int, uid int, gid int) (err error)
+//sys  Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error)
+//sys  Fdatasync(fd int) (err error)
+//sys 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  Fstatvfs(fd int, vfsstat *Statvfs_t) (err error)
+//sys  Getdents(fd int, buf []byte, basep *uintptr) (n int, err error)
+//sysnb        Getgid() (gid int)
+//sysnb        Getpid() (pid int)
+//sysnb        Getpgid(pid int) (pgid int, err error)
+//sysnb        Getpgrp() (pgid int, err error)
+//sys  Geteuid() (euid int)
+//sys  Getegid() (egid int)
+//sys  Getppid() (ppid int)
+//sys  Getpriority(which int, who int) (n int, err error)
+//sysnb        Getrlimit(which int, lim *Rlimit) (err error)
+//sysnb        Getrusage(who int, rusage *Rusage) (err error)
+//sysnb        Gettimeofday(tv *Timeval) (err error)
+//sysnb        Getuid() (uid int)
+//sys  Kill(pid int, signum syscall.Signal) (err error)
+//sys  Lchown(path string, uid int, gid int) (err error)
+//sys  Link(path string, link string) (err error)
+//sys  Listen(s int, backlog int) (err error) = libsocket.__xnet_llisten
+//sys  Lstat(path string, stat *Stat_t) (err error)
+//sys  Madvise(b []byte, advice int) (err error)
+//sys  Mkdir(path string, mode uint32) (err error)
+//sys  Mkdirat(dirfd int, path string, mode uint32) (err error)
+//sys  Mkfifo(path string, mode uint32) (err error)
+//sys  Mkfifoat(dirfd int, path string, mode uint32) (err error)
+//sys  Mknod(path string, mode uint32, dev int) (err error)
+//sys  Mknodat(dirfd int, path string, mode uint32, dev int) (err error)
+//sys  Mlock(b []byte) (err error)
+//sys  Mlockall(flags int) (err error)
+//sys  Mprotect(b []byte, prot int) (err error)
+//sys  Munlock(b []byte) (err error)
+//sys  Munlockall() (err error)
+//sys  Nanosleep(time *Timespec, leftover *Timespec) (err error)
+//sys  Open(path string, mode int, perm uint32) (fd int, err error)
+//sys  Openat(dirfd int, path string, flags int, mode uint32) (fd int, err error)
+//sys  Pathconf(path string, name int) (val int, err error)
+//sys  Pause() (err error)
+//sys  Pread(fd int, p []byte, offset int64) (n int, err error)
+//sys  Pwrite(fd int, p []byte, offset int64) (n int, err error)
+//sys  read(fd int, p []byte) (n int, err error)
+//sys  Readlink(path string, buf []byte) (n int, err error)
+//sys  Rename(from string, to string) (err error)
+//sys  Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error)
+//sys  Rmdir(path string) (err error)
+//sys  Seek(fd int, offset int64, whence int) (newoffset int64, err error) = lseek
+//sysnb        Setegid(egid int) (err error)
+//sysnb        Seteuid(euid int) (err error)
+//sysnb        Setgid(gid int) (err error)
+//sys  Sethostname(p []byte) (err error)
+//sysnb        Setpgid(pid int, pgid int) (err error)
+//sys  Setpriority(which int, who int, prio int) (err error)
+//sysnb        Setregid(rgid int, egid int) (err error)
+//sysnb        Setreuid(ruid int, euid int) (err error)
+//sysnb        Setrlimit(which int, lim *Rlimit) (err error)
+//sysnb        Setsid() (pid int, err error)
+//sysnb        Setuid(uid int) (err error)
+//sys  Shutdown(s int, how int) (err error) = libsocket.shutdown
+//sys  Stat(path string, stat *Stat_t) (err error)
+//sys  Statvfs(path string, vfsstat *Statvfs_t) (err error)
+//sys  Symlink(path string, link string) (err error)
+//sys  Sync() (err error)
+//sysnb        Times(tms *Tms) (ticks uintptr, err error)
+//sys  Truncate(path string, length int64) (err error)
+//sys  Fsync(fd int) (err error)
+//sys  Ftruncate(fd int, length int64) (err error)
+//sys  Umask(mask int) (oldmask int)
+//sysnb        Uname(buf *Utsname) (err error)
+//sys  Unmount(target string, flags int) (err error) = libc.umount
+//sys  Unlink(path string) (err error)
+//sys  Unlinkat(dirfd int, path string, flags int) (err error)
+//sys  Ustat(dev int, ubuf *Ustat_t) (err error)
+//sys  Utime(path string, buf *Utimbuf) (err error)
+//sys  bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) = libsocket.__xnet_bind
+//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  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
+//sys  write(fd int, p []byte) (n int, err error)
+//sys  getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) = libsocket.__xnet_getsockopt
+//sysnb        getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) = libsocket.getpeername
+//sys  setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) = libsocket.setsockopt
+//sys  recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) = libsocket.recvfrom
+
+func readlen(fd int, buf *byte, nbuf int) (n int, err error) {
+       r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procread)), 3, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf), 0, 0, 0)
+       n = int(r0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+func writelen(fd int, buf *byte, nbuf int) (n int, err error) {
+       r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procwrite)), 3, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf), 0, 0, 0)
+       n = int(r0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+var mapper = &mmapper{
+       active: make(map[*byte][]byte),
+       mmap:   mmap,
+       munmap: munmap,
+}
+
+func Mmap(fd int, offset int64, length int, prot int, flags int) (data []byte, err error) {
+       return mapper.Mmap(fd, offset, length, prot, flags)
+}
+
+func Munmap(b []byte) (err error) {
+       return mapper.Munmap(b)
+}
+
+//sys  sysconf(name int) (n int64, err error)
+
+// pageSize caches the value of Getpagesize, since it can't change
+// once the system is booted.
+var pageSize int64 // accessed atomically
+
+func Getpagesize() int {
+       n := atomic.LoadInt64(&pageSize)
+       if n == 0 {
+               n, _ = sysconf(_SC_PAGESIZE)
+               atomic.StoreInt64(&pageSize, n)
+       }
+       return int(n)
+}
diff --git a/vendor/golang.org/x/sys/unix/syscall_solaris_amd64.go b/vendor/golang.org/x/sys/unix/syscall_solaris_amd64.go
new file mode 100644 (file)
index 0000000..5aff62c
--- /dev/null
@@ -0,0 +1,35 @@
+// Copyright 2009 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build amd64,solaris
+
+package unix
+
+func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) }
+
+func NsecToTimespec(nsec int64) (ts Timespec) {
+       ts.Sec = nsec / 1e9
+       ts.Nsec = nsec % 1e9
+       return
+}
+
+func NsecToTimeval(nsec int64) (tv Timeval) {
+       nsec += 999 // round up to microsecond
+       tv.Usec = nsec % 1e9 / 1e3
+       tv.Sec = int64(nsec / 1e9)
+       return
+}
+
+func (iov *Iovec) SetLen(length int) {
+       iov.Len = uint64(length)
+}
+
+func (cmsg *Cmsghdr) SetLen(length int) {
+       cmsg.Len = uint32(length)
+}
+
+func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {
+       // TODO(aram): implement this, see issue 5847.
+       panic("unimplemented")
+}
diff --git a/vendor/golang.org/x/sys/unix/syscall_unix.go b/vendor/golang.org/x/sys/unix/syscall_unix.go
new file mode 100644 (file)
index 0000000..3ed8a91
--- /dev/null
@@ -0,0 +1,293 @@
+// Copyright 2009 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build darwin dragonfly freebsd linux netbsd openbsd solaris
+
+package unix
+
+import (
+       "runtime"
+       "sync"
+       "syscall"
+       "unsafe"
+)
+
+var (
+       Stdin  = 0
+       Stdout = 1
+       Stderr = 2
+)
+
+const (
+       darwin64Bit    = runtime.GOOS == "darwin" && sizeofPtr == 8
+       dragonfly64Bit = runtime.GOOS == "dragonfly" && sizeofPtr == 8
+       netbsd32Bit    = runtime.GOOS == "netbsd" && sizeofPtr == 4
+       solaris64Bit   = runtime.GOOS == "solaris" && sizeofPtr == 8
+)
+
+// Do the interface allocations only once for common
+// Errno values.
+var (
+       errEAGAIN error = syscall.EAGAIN
+       errEINVAL error = syscall.EINVAL
+       errENOENT error = syscall.ENOENT
+)
+
+// errnoErr returns common boxed Errno values, to prevent
+// allocations at runtime.
+func errnoErr(e syscall.Errno) error {
+       switch e {
+       case 0:
+               return nil
+       case EAGAIN:
+               return errEAGAIN
+       case EINVAL:
+               return errEINVAL
+       case ENOENT:
+               return errENOENT
+       }
+       return e
+}
+
+// Mmap manager, for use by operating system-specific implementations.
+
+type mmapper struct {
+       sync.Mutex
+       active map[*byte][]byte // active mappings; key is last byte in mapping
+       mmap   func(addr, length uintptr, prot, flags, fd int, offset int64) (uintptr, error)
+       munmap func(addr uintptr, length uintptr) error
+}
+
+func (m *mmapper) Mmap(fd int, offset int64, length int, prot int, flags int) (data []byte, err error) {
+       if length <= 0 {
+               return nil, EINVAL
+       }
+
+       // Map the requested memory.
+       addr, errno := m.mmap(0, uintptr(length), prot, flags, fd, offset)
+       if errno != nil {
+               return nil, errno
+       }
+
+       // Slice memory layout
+       var sl = struct {
+               addr uintptr
+               len  int
+               cap  int
+       }{addr, length, length}
+
+       // Use unsafe to turn sl into a []byte.
+       b := *(*[]byte)(unsafe.Pointer(&sl))
+
+       // Register mapping in m and return it.
+       p := &b[cap(b)-1]
+       m.Lock()
+       defer m.Unlock()
+       m.active[p] = b
+       return b, nil
+}
+
+func (m *mmapper) Munmap(data []byte) (err error) {
+       if len(data) == 0 || len(data) != cap(data) {
+               return EINVAL
+       }
+
+       // Find the base of the mapping.
+       p := &data[cap(data)-1]
+       m.Lock()
+       defer m.Unlock()
+       b := m.active[p]
+       if b == nil || &b[0] != &data[0] {
+               return EINVAL
+       }
+
+       // Unmap the memory and update m.
+       if errno := m.munmap(uintptr(unsafe.Pointer(&b[0])), uintptr(len(b))); errno != nil {
+               return errno
+       }
+       delete(m.active, p)
+       return nil
+}
+
+func Read(fd int, p []byte) (n int, err error) {
+       n, err = read(fd, p)
+       if raceenabled {
+               if n > 0 {
+                       raceWriteRange(unsafe.Pointer(&p[0]), n)
+               }
+               if err == nil {
+                       raceAcquire(unsafe.Pointer(&ioSync))
+               }
+       }
+       return
+}
+
+func Write(fd int, p []byte) (n int, err error) {
+       if raceenabled {
+               raceReleaseMerge(unsafe.Pointer(&ioSync))
+       }
+       n, err = write(fd, p)
+       if raceenabled && n > 0 {
+               raceReadRange(unsafe.Pointer(&p[0]), n)
+       }
+       return
+}
+
+// For testing: clients can set this flag to force
+// creation of IPv6 sockets to return EAFNOSUPPORT.
+var SocketDisableIPv6 bool
+
+type Sockaddr interface {
+       sockaddr() (ptr unsafe.Pointer, len _Socklen, err error) // lowercase; only we can define Sockaddrs
+}
+
+type SockaddrInet4 struct {
+       Port int
+       Addr [4]byte
+       raw  RawSockaddrInet4
+}
+
+type SockaddrInet6 struct {
+       Port   int
+       ZoneId uint32
+       Addr   [16]byte
+       raw    RawSockaddrInet6
+}
+
+type SockaddrUnix struct {
+       Name string
+       raw  RawSockaddrUnix
+}
+
+func Bind(fd int, sa Sockaddr) (err error) {
+       ptr, n, err := sa.sockaddr()
+       if err != nil {
+               return err
+       }
+       return bind(fd, ptr, n)
+}
+
+func Connect(fd int, sa Sockaddr) (err error) {
+       ptr, n, err := sa.sockaddr()
+       if err != nil {
+               return err
+       }
+       return connect(fd, ptr, n)
+}
+
+func Getpeername(fd int) (sa Sockaddr, err error) {
+       var rsa RawSockaddrAny
+       var len _Socklen = SizeofSockaddrAny
+       if err = getpeername(fd, &rsa, &len); err != nil {
+               return
+       }
+       return anyToSockaddr(&rsa)
+}
+
+func GetsockoptInt(fd, level, opt int) (value int, err error) {
+       var n int32
+       vallen := _Socklen(4)
+       err = getsockopt(fd, level, opt, unsafe.Pointer(&n), &vallen)
+       return int(n), err
+}
+
+func Recvfrom(fd int, p []byte, flags int) (n int, from Sockaddr, err error) {
+       var rsa RawSockaddrAny
+       var len _Socklen = SizeofSockaddrAny
+       if n, err = recvfrom(fd, p, flags, &rsa, &len); err != nil {
+               return
+       }
+       if rsa.Addr.Family != AF_UNSPEC {
+               from, err = anyToSockaddr(&rsa)
+       }
+       return
+}
+
+func Sendto(fd int, p []byte, flags int, to Sockaddr) (err error) {
+       ptr, n, err := to.sockaddr()
+       if err != nil {
+               return err
+       }
+       return sendto(fd, p, flags, ptr, n)
+}
+
+func SetsockoptByte(fd, level, opt int, value byte) (err error) {
+       return setsockopt(fd, level, opt, unsafe.Pointer(&value), 1)
+}
+
+func SetsockoptInt(fd, level, opt int, value int) (err error) {
+       var n = int32(value)
+       return setsockopt(fd, level, opt, unsafe.Pointer(&n), 4)
+}
+
+func SetsockoptInet4Addr(fd, level, opt int, value [4]byte) (err error) {
+       return setsockopt(fd, level, opt, unsafe.Pointer(&value[0]), 4)
+}
+
+func SetsockoptIPMreq(fd, level, opt int, mreq *IPMreq) (err error) {
+       return setsockopt(fd, level, opt, unsafe.Pointer(mreq), SizeofIPMreq)
+}
+
+func SetsockoptIPv6Mreq(fd, level, opt int, mreq *IPv6Mreq) (err error) {
+       return setsockopt(fd, level, opt, unsafe.Pointer(mreq), SizeofIPv6Mreq)
+}
+
+func SetsockoptICMPv6Filter(fd, level, opt int, filter *ICMPv6Filter) error {
+       return setsockopt(fd, level, opt, unsafe.Pointer(filter), SizeofICMPv6Filter)
+}
+
+func SetsockoptLinger(fd, level, opt int, l *Linger) (err error) {
+       return setsockopt(fd, level, opt, unsafe.Pointer(l), SizeofLinger)
+}
+
+func SetsockoptString(fd, level, opt int, s string) (err error) {
+       return setsockopt(fd, level, opt, unsafe.Pointer(&[]byte(s)[0]), uintptr(len(s)))
+}
+
+func SetsockoptTimeval(fd, level, opt int, tv *Timeval) (err error) {
+       return setsockopt(fd, level, opt, unsafe.Pointer(tv), unsafe.Sizeof(*tv))
+}
+
+func Socket(domain, typ, proto int) (fd int, err error) {
+       if domain == AF_INET6 && SocketDisableIPv6 {
+               return -1, EAFNOSUPPORT
+       }
+       fd, err = socket(domain, typ, proto)
+       return
+}
+
+func Socketpair(domain, typ, proto int) (fd [2]int, err error) {
+       var fdx [2]int32
+       err = socketpair(domain, typ, proto, &fdx)
+       if err == nil {
+               fd[0] = int(fdx[0])
+               fd[1] = int(fdx[1])
+       }
+       return
+}
+
+func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {
+       if raceenabled {
+               raceReleaseMerge(unsafe.Pointer(&ioSync))
+       }
+       return sendfile(outfd, infd, offset, count)
+}
+
+var ioSync int64
+
+func CloseOnExec(fd int) { fcntl(fd, F_SETFD, FD_CLOEXEC) }
+
+func SetNonblock(fd int, nonblocking bool) (err error) {
+       flag, err := fcntl(fd, F_GETFL, 0)
+       if err != nil {
+               return err
+       }
+       if nonblocking {
+               flag |= O_NONBLOCK
+       } else {
+               flag &= ^O_NONBLOCK
+       }
+       _, err = fcntl(fd, F_SETFL, flag)
+       return err
+}
diff --git a/vendor/golang.org/x/sys/unix/syscall_unix_gc.go b/vendor/golang.org/x/sys/unix/syscall_unix_gc.go
new file mode 100644 (file)
index 0000000..4cb8e8e
--- /dev/null
@@ -0,0 +1,15 @@
+// Copyright 2016 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build darwin dragonfly freebsd linux netbsd openbsd solaris
+// +build !gccgo
+
+package unix
+
+import "syscall"
+
+func Syscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err syscall.Errno)
+func Syscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.Errno)
+func RawSyscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err syscall.Errno)
+func RawSyscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.Errno)
diff --git a/vendor/golang.org/x/sys/unix/zerrors_darwin_386.go b/vendor/golang.org/x/sys/unix/zerrors_darwin_386.go
new file mode 100644 (file)
index 0000000..1c68758
--- /dev/null
@@ -0,0 +1,1673 @@
+// mkerrors.sh -m32
+// Code generated by the command above; see README.md. DO NOT EDIT.
+
+// +build 386,darwin
+
+// Created by cgo -godefs - DO NOT EDIT
+// cgo -godefs -- -m32 _const.go
+
+package unix
+
+import "syscall"
+
+const (
+       AF_APPLETALK                      = 0x10
+       AF_CCITT                          = 0xa
+       AF_CHAOS                          = 0x5
+       AF_CNT                            = 0x15
+       AF_COIP                           = 0x14
+       AF_DATAKIT                        = 0x9
+       AF_DECnet                         = 0xc
+       AF_DLI                            = 0xd
+       AF_E164                           = 0x1c
+       AF_ECMA                           = 0x8
+       AF_HYLINK                         = 0xf
+       AF_IEEE80211                      = 0x25
+       AF_IMPLINK                        = 0x3
+       AF_INET                           = 0x2
+       AF_INET6                          = 0x1e
+       AF_IPX                            = 0x17
+       AF_ISDN                           = 0x1c
+       AF_ISO                            = 0x7
+       AF_LAT                            = 0xe
+       AF_LINK                           = 0x12
+       AF_LOCAL                          = 0x1
+       AF_MAX                            = 0x28
+       AF_NATM                           = 0x1f
+       AF_NDRV                           = 0x1b
+       AF_NETBIOS                        = 0x21
+       AF_NS                             = 0x6
+       AF_OSI                            = 0x7
+       AF_PPP                            = 0x22
+       AF_PUP                            = 0x4
+       AF_RESERVED_36                    = 0x24
+       AF_ROUTE                          = 0x11
+       AF_SIP                            = 0x18
+       AF_SNA                            = 0xb
+       AF_SYSTEM                         = 0x20
+       AF_UNIX                           = 0x1
+       AF_UNSPEC                         = 0x0
+       AF_UTUN                           = 0x26
+       ALTWERASE                         = 0x200
+       B0                                = 0x0
+       B110                              = 0x6e
+       B115200                           = 0x1c200
+       B1200                             = 0x4b0
+       B134                              = 0x86
+       B14400                            = 0x3840
+       B150                              = 0x96
+       B1800                             = 0x708
+       B19200                            = 0x4b00
+       B200                              = 0xc8
+       B230400                           = 0x38400
+       B2400                             = 0x960
+       B28800                            = 0x7080
+       B300                              = 0x12c
+       B38400                            = 0x9600
+       B4800                             = 0x12c0
+       B50                               = 0x32
+       B57600                            = 0xe100
+       B600                              = 0x258
+       B7200                             = 0x1c20
+       B75                               = 0x4b
+       B76800                            = 0x12c00
+       B9600                             = 0x2580
+       BIOCFLUSH                         = 0x20004268
+       BIOCGBLEN                         = 0x40044266
+       BIOCGDLT                          = 0x4004426a
+       BIOCGDLTLIST                      = 0xc00c4279
+       BIOCGETIF                         = 0x4020426b
+       BIOCGHDRCMPLT                     = 0x40044274
+       BIOCGRSIG                         = 0x40044272
+       BIOCGRTIMEOUT                     = 0x4008426e
+       BIOCGSEESENT                      = 0x40044276
+       BIOCGSTATS                        = 0x4008426f
+       BIOCIMMEDIATE                     = 0x80044270
+       BIOCPROMISC                       = 0x20004269
+       BIOCSBLEN                         = 0xc0044266
+       BIOCSDLT                          = 0x80044278
+       BIOCSETF                          = 0x80084267
+       BIOCSETFNR                        = 0x8008427e
+       BIOCSETIF                         = 0x8020426c
+       BIOCSHDRCMPLT                     = 0x80044275
+       BIOCSRSIG                         = 0x80044273
+       BIOCSRTIMEOUT                     = 0x8008426d
+       BIOCSSEESENT                      = 0x80044277
+       BIOCVERSION                       = 0x40044271
+       BPF_A                             = 0x10
+       BPF_ABS                           = 0x20
+       BPF_ADD                           = 0x0
+       BPF_ALIGNMENT                     = 0x4
+       BPF_ALU                           = 0x4
+       BPF_AND                           = 0x50
+       BPF_B                             = 0x10
+       BPF_DIV                           = 0x30
+       BPF_H                             = 0x8
+       BPF_IMM                           = 0x0
+       BPF_IND                           = 0x40
+       BPF_JA                            = 0x0
+       BPF_JEQ                           = 0x10
+       BPF_JGE                           = 0x30
+       BPF_JGT                           = 0x20
+       BPF_JMP                           = 0x5
+       BPF_JSET                          = 0x40
+       BPF_K                             = 0x0
+       BPF_LD                            = 0x0
+       BPF_LDX                           = 0x1
+       BPF_LEN                           = 0x80
+       BPF_LSH                           = 0x60
+       BPF_MAJOR_VERSION                 = 0x1
+       BPF_MAXBUFSIZE                    = 0x80000
+       BPF_MAXINSNS                      = 0x200
+       BPF_MEM                           = 0x60
+       BPF_MEMWORDS                      = 0x10
+       BPF_MINBUFSIZE                    = 0x20
+       BPF_MINOR_VERSION                 = 0x1
+       BPF_MISC                          = 0x7
+       BPF_MSH                           = 0xa0
+       BPF_MUL                           = 0x20
+       BPF_NEG                           = 0x80
+       BPF_OR                            = 0x40
+       BPF_RELEASE                       = 0x30bb6
+       BPF_RET                           = 0x6
+       BPF_RSH                           = 0x70
+       BPF_ST                            = 0x2
+       BPF_STX                           = 0x3
+       BPF_SUB                           = 0x10
+       BPF_TAX                           = 0x0
+       BPF_TXA                           = 0x80
+       BPF_W                             = 0x0
+       BPF_X                             = 0x8
+       BRKINT                            = 0x2
+       BS0                               = 0x0
+       BS1                               = 0x8000
+       BSDLY                             = 0x8000
+       CFLUSH                            = 0xf
+       CLOCAL                            = 0x8000
+       CLOCK_MONOTONIC                   = 0x6
+       CLOCK_MONOTONIC_RAW               = 0x4
+       CLOCK_MONOTONIC_RAW_APPROX        = 0x5
+       CLOCK_PROCESS_CPUTIME_ID          = 0xc
+       CLOCK_REALTIME                    = 0x0
+       CLOCK_THREAD_CPUTIME_ID           = 0x10
+       CLOCK_UPTIME_RAW                  = 0x8
+       CLOCK_UPTIME_RAW_APPROX           = 0x9
+       CR0                               = 0x0
+       CR1                               = 0x1000
+       CR2                               = 0x2000
+       CR3                               = 0x3000
+       CRDLY                             = 0x3000
+       CREAD                             = 0x800
+       CRTSCTS                           = 0x30000
+       CS5                               = 0x0
+       CS6                               = 0x100
+       CS7                               = 0x200
+       CS8                               = 0x300
+       CSIZE                             = 0x300
+       CSTART                            = 0x11
+       CSTATUS                           = 0x14
+       CSTOP                             = 0x13
+       CSTOPB                            = 0x400
+       CSUSP                             = 0x1a
+       CTL_MAXNAME                       = 0xc
+       CTL_NET                           = 0x4
+       DLT_A429                          = 0xb8
+       DLT_A653_ICM                      = 0xb9
+       DLT_AIRONET_HEADER                = 0x78
+       DLT_AOS                           = 0xde
+       DLT_APPLE_IP_OVER_IEEE1394        = 0x8a
+       DLT_ARCNET                        = 0x7
+       DLT_ARCNET_LINUX                  = 0x81
+       DLT_ATM_CLIP                      = 0x13
+       DLT_ATM_RFC1483                   = 0xb
+       DLT_AURORA                        = 0x7e
+       DLT_AX25                          = 0x3
+       DLT_AX25_KISS                     = 0xca
+       DLT_BACNET_MS_TP                  = 0xa5
+       DLT_BLUETOOTH_HCI_H4              = 0xbb
+       DLT_BLUETOOTH_HCI_H4_WITH_PHDR    = 0xc9
+       DLT_CAN20B                        = 0xbe
+       DLT_CAN_SOCKETCAN                 = 0xe3
+       DLT_CHAOS                         = 0x5
+       DLT_CHDLC                         = 0x68
+       DLT_CISCO_IOS                     = 0x76
+       DLT_C_HDLC                        = 0x68
+       DLT_C_HDLC_WITH_DIR               = 0xcd
+       DLT_DBUS                          = 0xe7
+       DLT_DECT                          = 0xdd
+       DLT_DOCSIS                        = 0x8f
+       DLT_DVB_CI                        = 0xeb
+       DLT_ECONET                        = 0x73
+       DLT_EN10MB                        = 0x1
+       DLT_EN3MB                         = 0x2
+       DLT_ENC                           = 0x6d
+       DLT_ERF                           = 0xc5
+       DLT_ERF_ETH                       = 0xaf
+       DLT_ERF_POS                       = 0xb0
+       DLT_FC_2                          = 0xe0
+       DLT_FC_2_WITH_FRAME_DELIMS        = 0xe1
+       DLT_FDDI                          = 0xa
+       DLT_FLEXRAY                       = 0xd2
+       DLT_FRELAY                        = 0x6b
+       DLT_FRELAY_WITH_DIR               = 0xce
+       DLT_GCOM_SERIAL                   = 0xad
+       DLT_GCOM_T1E1                     = 0xac
+       DLT_GPF_F                         = 0xab
+       DLT_GPF_T                         = 0xaa
+       DLT_GPRS_LLC                      = 0xa9
+       DLT_GSMTAP_ABIS                   = 0xda
+       DLT_GSMTAP_UM                     = 0xd9
+       DLT_HHDLC                         = 0x79
+       DLT_IBM_SN                        = 0x92
+       DLT_IBM_SP                        = 0x91
+       DLT_IEEE802                       = 0x6
+       DLT_IEEE802_11                    = 0x69
+       DLT_IEEE802_11_RADIO              = 0x7f
+       DLT_IEEE802_11_RADIO_AVS          = 0xa3
+       DLT_IEEE802_15_4                  = 0xc3
+       DLT_IEEE802_15_4_LINUX            = 0xbf
+       DLT_IEEE802_15_4_NOFCS            = 0xe6
+       DLT_IEEE802_15_4_NONASK_PHY       = 0xd7
+       DLT_IEEE802_16_MAC_CPS            = 0xbc
+       DLT_IEEE802_16_MAC_CPS_RADIO      = 0xc1
+       DLT_IPFILTER                      = 0x74
+       DLT_IPMB                          = 0xc7
+       DLT_IPMB_LINUX                    = 0xd1
+       DLT_IPNET                         = 0xe2
+       DLT_IPOIB                         = 0xf2
+       DLT_IPV4                          = 0xe4
+       DLT_IPV6                          = 0xe5
+       DLT_IP_OVER_FC                    = 0x7a
+       DLT_JUNIPER_ATM1                  = 0x89
+       DLT_JUNIPER_ATM2                  = 0x87
+       DLT_JUNIPER_ATM_CEMIC             = 0xee
+       DLT_JUNIPER_CHDLC                 = 0xb5
+       DLT_JUNIPER_ES                    = 0x84
+       DLT_JUNIPER_ETHER                 = 0xb2
+       DLT_JUNIPER_FIBRECHANNEL          = 0xea
+       DLT_JUNIPER_FRELAY                = 0xb4
+       DLT_JUNIPER_GGSN                  = 0x85
+       DLT_JUNIPER_ISM                   = 0xc2
+       DLT_JUNIPER_MFR                   = 0x86
+       DLT_JUNIPER_MLFR                  = 0x83
+       DLT_JUNIPER_MLPPP                 = 0x82
+       DLT_JUNIPER_MONITOR               = 0xa4
+       DLT_JUNIPER_PIC_PEER              = 0xae
+       DLT_JUNIPER_PPP                   = 0xb3
+       DLT_JUNIPER_PPPOE                 = 0xa7
+       DLT_JUNIPER_PPPOE_ATM             = 0xa8
+       DLT_JUNIPER_SERVICES              = 0x88
+       DLT_JUNIPER_SRX_E2E               = 0xe9
+       DLT_JUNIPER_ST                    = 0xc8
+       DLT_JUNIPER_VP                    = 0xb7
+       DLT_JUNIPER_VS                    = 0xe8
+       DLT_LAPB_WITH_DIR                 = 0xcf
+       DLT_LAPD                          = 0xcb
+       DLT_LIN                           = 0xd4
+       DLT_LINUX_EVDEV                   = 0xd8
+       DLT_LINUX_IRDA                    = 0x90
+       DLT_LINUX_LAPD                    = 0xb1
+       DLT_LINUX_PPP_WITHDIRECTION       = 0xa6
+       DLT_LINUX_SLL                     = 0x71
+       DLT_LOOP                          = 0x6c
+       DLT_LTALK                         = 0x72
+       DLT_MATCHING_MAX                  = 0xf5
+       DLT_MATCHING_MIN                  = 0x68
+       DLT_MFR                           = 0xb6
+       DLT_MOST                          = 0xd3
+       DLT_MPEG_2_TS                     = 0xf3
+       DLT_MPLS                          = 0xdb
+       DLT_MTP2                          = 0x8c
+       DLT_MTP2_WITH_PHDR                = 0x8b
+       DLT_MTP3                          = 0x8d
+       DLT_MUX27010                      = 0xec
+       DLT_NETANALYZER                   = 0xf0
+       DLT_NETANALYZER_TRANSPARENT       = 0xf1
+       DLT_NFC_LLCP                      = 0xf5
+       DLT_NFLOG                         = 0xef
+       DLT_NG40                          = 0xf4
+       DLT_NULL                          = 0x0
+       DLT_PCI_EXP                       = 0x7d
+       DLT_PFLOG                         = 0x75
+       DLT_PFSYNC                        = 0x12
+       DLT_PPI                           = 0xc0
+       DLT_PPP                           = 0x9
+       DLT_PPP_BSDOS                     = 0x10
+       DLT_PPP_ETHER                     = 0x33
+       DLT_PPP_PPPD                      = 0xa6
+       DLT_PPP_SERIAL                    = 0x32
+       DLT_PPP_WITH_DIR                  = 0xcc
+       DLT_PPP_WITH_DIRECTION            = 0xa6
+       DLT_PRISM_HEADER                  = 0x77
+       DLT_PRONET                        = 0x4
+       DLT_RAIF1                         = 0xc6
+       DLT_RAW                           = 0xc
+       DLT_RIO                           = 0x7c
+       DLT_SCCP                          = 0x8e
+       DLT_SITA                          = 0xc4
+       DLT_SLIP                          = 0x8
+       DLT_SLIP_BSDOS                    = 0xf
+       DLT_STANAG_5066_D_PDU             = 0xed
+       DLT_SUNATM                        = 0x7b
+       DLT_SYMANTEC_FIREWALL             = 0x63
+       DLT_TZSP                          = 0x80
+       DLT_USB                           = 0xba
+       DLT_USB_LINUX                     = 0xbd
+       DLT_USB_LINUX_MMAPPED             = 0xdc
+       DLT_USER0                         = 0x93
+       DLT_USER1                         = 0x94
+       DLT_USER10                        = 0x9d
+       DLT_USER11                        = 0x9e
+       DLT_USER12                        = 0x9f
+       DLT_USER13                        = 0xa0
+       DLT_USER14                        = 0xa1
+       DLT_USER15                        = 0xa2
+       DLT_USER2                         = 0x95
+       DLT_USER3                         = 0x96
+       DLT_USER4                         = 0x97
+       DLT_USER5                         = 0x98
+       DLT_USER6                         = 0x99
+       DLT_USER7                         = 0x9a
+       DLT_USER8                         = 0x9b
+       DLT_USER9                         = 0x9c
+       DLT_WIHART                        = 0xdf
+       DLT_X2E_SERIAL                    = 0xd5
+       DLT_X2E_XORAYA                    = 0xd6
+       DT_BLK                            = 0x6
+       DT_CHR                            = 0x2
+       DT_DIR                            = 0x4
+       DT_FIFO                           = 0x1
+       DT_LNK                            = 0xa
+       DT_REG                            = 0x8
+       DT_SOCK                           = 0xc
+       DT_UNKNOWN                        = 0x0
+       DT_WHT                            = 0xe
+       ECHO                              = 0x8
+       ECHOCTL                           = 0x40
+       ECHOE                             = 0x2
+       ECHOK                             = 0x4
+       ECHOKE                            = 0x1
+       ECHONL                            = 0x10
+       ECHOPRT                           = 0x20
+       EVFILT_AIO                        = -0x3
+       EVFILT_EXCEPT                     = -0xf
+       EVFILT_FS                         = -0x9
+       EVFILT_MACHPORT                   = -0x8
+       EVFILT_PROC                       = -0x5
+       EVFILT_READ                       = -0x1
+       EVFILT_SIGNAL                     = -0x6
+       EVFILT_SYSCOUNT                   = 0xf
+       EVFILT_THREADMARKER               = 0xf
+       EVFILT_TIMER                      = -0x7
+       EVFILT_USER                       = -0xa
+       EVFILT_VM                         = -0xc
+       EVFILT_VNODE                      = -0x4
+       EVFILT_WRITE                      = -0x2
+       EV_ADD                            = 0x1
+       EV_CLEAR                          = 0x20
+       EV_DELETE                         = 0x2
+       EV_DISABLE                        = 0x8
+       EV_DISPATCH                       = 0x80
+       EV_DISPATCH2                      = 0x180
+       EV_ENABLE                         = 0x4
+       EV_EOF                            = 0x8000
+       EV_ERROR                          = 0x4000
+       EV_FLAG0                          = 0x1000
+       EV_FLAG1                          = 0x2000
+       EV_ONESHOT                        = 0x10
+       EV_OOBAND                         = 0x2000
+       EV_POLL                           = 0x1000
+       EV_RECEIPT                        = 0x40
+       EV_SYSFLAGS                       = 0xf000
+       EV_UDATA_SPECIFIC                 = 0x100
+       EV_VANISHED                       = 0x200
+       EXTA                              = 0x4b00
+       EXTB                              = 0x9600
+       EXTPROC                           = 0x800
+       FD_CLOEXEC                        = 0x1
+       FD_SETSIZE                        = 0x400
+       FF0                               = 0x0
+       FF1                               = 0x4000
+       FFDLY                             = 0x4000
+       FLUSHO                            = 0x800000
+       F_ADDFILESIGS                     = 0x3d
+       F_ADDFILESIGS_FOR_DYLD_SIM        = 0x53
+       F_ADDFILESIGS_RETURN              = 0x61
+       F_ADDSIGS                         = 0x3b
+       F_ALLOCATEALL                     = 0x4
+       F_ALLOCATECONTIG                  = 0x2
+       F_BARRIERFSYNC                    = 0x55
+       F_CHECK_LV                        = 0x62
+       F_CHKCLEAN                        = 0x29
+       F_DUPFD                           = 0x0
+       F_DUPFD_CLOEXEC                   = 0x43
+       F_FINDSIGS                        = 0x4e
+       F_FLUSH_DATA                      = 0x28
+       F_FREEZE_FS                       = 0x35
+       F_FULLFSYNC                       = 0x33
+       F_GETCODEDIR                      = 0x48
+       F_GETFD                           = 0x1
+       F_GETFL                           = 0x3
+       F_GETLK                           = 0x7
+       F_GETLKPID                        = 0x42
+       F_GETNOSIGPIPE                    = 0x4a
+       F_GETOWN                          = 0x5
+       F_GETPATH                         = 0x32
+       F_GETPATH_MTMINFO                 = 0x47
+       F_GETPROTECTIONCLASS              = 0x3f
+       F_GETPROTECTIONLEVEL              = 0x4d
+       F_GLOBAL_NOCACHE                  = 0x37
+       F_LOG2PHYS                        = 0x31
+       F_LOG2PHYS_EXT                    = 0x41
+       F_NOCACHE                         = 0x30
+       F_NODIRECT                        = 0x3e
+       F_OK                              = 0x0
+       F_PATHPKG_CHECK                   = 0x34
+       F_PEOFPOSMODE                     = 0x3
+       F_PREALLOCATE                     = 0x2a
+       F_RDADVISE                        = 0x2c
+       F_RDAHEAD                         = 0x2d
+       F_RDLCK                           = 0x1
+       F_SETBACKINGSTORE                 = 0x46
+       F_SETFD                           = 0x2
+       F_SETFL                           = 0x4
+       F_SETLK                           = 0x8
+       F_SETLKW                          = 0x9
+       F_SETLKWTIMEOUT                   = 0xa
+       F_SETNOSIGPIPE                    = 0x49
+       F_SETOWN                          = 0x6
+       F_SETPROTECTIONCLASS              = 0x40
+       F_SETSIZE                         = 0x2b
+       F_SINGLE_WRITER                   = 0x4c
+       F_THAW_FS                         = 0x36
+       F_TRANSCODEKEY                    = 0x4b
+       F_UNLCK                           = 0x2
+       F_VOLPOSMODE                      = 0x4
+       F_WRLCK                           = 0x3
+       HUPCL                             = 0x4000
+       ICANON                            = 0x100
+       ICMP6_FILTER                      = 0x12
+       ICRNL                             = 0x100
+       IEXTEN                            = 0x400
+       IFF_ALLMULTI                      = 0x200
+       IFF_ALTPHYS                       = 0x4000
+       IFF_BROADCAST                     = 0x2
+       IFF_DEBUG                         = 0x4
+       IFF_LINK0                         = 0x1000
+       IFF_LINK1                         = 0x2000
+       IFF_LINK2                         = 0x4000
+       IFF_LOOPBACK                      = 0x8
+       IFF_MULTICAST                     = 0x8000
+       IFF_NOARP                         = 0x80
+       IFF_NOTRAILERS                    = 0x20
+       IFF_OACTIVE                       = 0x400
+       IFF_POINTOPOINT                   = 0x10
+       IFF_PROMISC                       = 0x100
+       IFF_RUNNING                       = 0x40
+       IFF_SIMPLEX                       = 0x800
+       IFF_UP                            = 0x1
+       IFNAMSIZ                          = 0x10
+       IFT_1822                          = 0x2
+       IFT_AAL5                          = 0x31
+       IFT_ARCNET                        = 0x23
+       IFT_ARCNETPLUS                    = 0x24
+       IFT_ATM                           = 0x25
+       IFT_BRIDGE                        = 0xd1
+       IFT_CARP                          = 0xf8
+       IFT_CELLULAR                      = 0xff
+       IFT_CEPT                          = 0x13
+       IFT_DS3                           = 0x1e
+       IFT_ENC                           = 0xf4
+       IFT_EON                           = 0x19
+       IFT_ETHER                         = 0x6
+       IFT_FAITH                         = 0x38
+       IFT_FDDI                          = 0xf
+       IFT_FRELAY                        = 0x20
+       IFT_FRELAYDCE                     = 0x2c
+       IFT_GIF                           = 0x37
+       IFT_HDH1822                       = 0x3
+       IFT_HIPPI                         = 0x2f
+       IFT_HSSI                          = 0x2e
+       IFT_HY                            = 0xe
+       IFT_IEEE1394                      = 0x90
+       IFT_IEEE8023ADLAG                 = 0x88
+       IFT_ISDNBASIC                     = 0x14
+       IFT_ISDNPRIMARY                   = 0x15
+       IFT_ISO88022LLC                   = 0x29
+       IFT_ISO88023                      = 0x7
+       IFT_ISO88024                      = 0x8
+       IFT_ISO88025                      = 0x9
+       IFT_ISO88026                      = 0xa
+       IFT_L2VLAN                        = 0x87
+       IFT_LAPB                          = 0x10
+       IFT_LOCALTALK                     = 0x2a
+       IFT_LOOP                          = 0x18
+       IFT_MIOX25                        = 0x26
+       IFT_MODEM                         = 0x30
+       IFT_NSIP                          = 0x1b
+       IFT_OTHER                         = 0x1
+       IFT_P10                           = 0xc
+       IFT_P80                           = 0xd
+       IFT_PARA                          = 0x22
+       IFT_PDP                           = 0xff
+       IFT_PFLOG                         = 0xf5
+       IFT_PFSYNC                        = 0xf6
+       IFT_PKTAP                         = 0xfe
+       IFT_PPP                           = 0x17
+       IFT_PROPMUX                       = 0x36
+       IFT_PROPVIRTUAL                   = 0x35
+       IFT_PTPSERIAL                     = 0x16
+       IFT_RS232                         = 0x21
+       IFT_SDLC                          = 0x11
+       IFT_SIP                           = 0x1f
+       IFT_SLIP                          = 0x1c
+       IFT_SMDSDXI                       = 0x2b
+       IFT_SMDSICIP                      = 0x34
+       IFT_SONET                         = 0x27
+       IFT_SONETPATH                     = 0x32
+       IFT_SONETVT                       = 0x33
+       IFT_STARLAN                       = 0xb
+       IFT_STF                           = 0x39
+       IFT_T1                            = 0x12
+       IFT_ULTRA                         = 0x1d
+       IFT_V35                           = 0x2d
+       IFT_X25                           = 0x5
+       IFT_X25DDN                        = 0x4
+       IFT_X25PLE                        = 0x28
+       IFT_XETHER                        = 0x1a
+       IGNBRK                            = 0x1
+       IGNCR                             = 0x80
+       IGNPAR                            = 0x4
+       IMAXBEL                           = 0x2000
+       INLCR                             = 0x40
+       INPCK                             = 0x10
+       IN_CLASSA_HOST                    = 0xffffff
+       IN_CLASSA_MAX                     = 0x80
+       IN_CLASSA_NET                     = 0xff000000
+       IN_CLASSA_NSHIFT                  = 0x18
+       IN_CLASSB_HOST                    = 0xffff
+       IN_CLASSB_MAX                     = 0x10000
+       IN_CLASSB_NET                     = 0xffff0000
+       IN_CLASSB_NSHIFT                  = 0x10
+       IN_CLASSC_HOST                    = 0xff
+       IN_CLASSC_NET                     = 0xffffff00
+       IN_CLASSC_NSHIFT                  = 0x8
+       IN_CLASSD_HOST                    = 0xfffffff
+       IN_CLASSD_NET                     = 0xf0000000
+       IN_CLASSD_NSHIFT                  = 0x1c
+       IN_LINKLOCALNETNUM                = 0xa9fe0000
+       IN_LOOPBACKNET                    = 0x7f
+       IPPROTO_3PC                       = 0x22
+       IPPROTO_ADFS                      = 0x44
+       IPPROTO_AH                        = 0x33
+       IPPROTO_AHIP                      = 0x3d
+       IPPROTO_APES                      = 0x63
+       IPPROTO_ARGUS                     = 0xd
+       IPPROTO_AX25                      = 0x5d
+       IPPROTO_BHA                       = 0x31
+       IPPROTO_BLT                       = 0x1e
+       IPPROTO_BRSATMON                  = 0x4c
+       IPPROTO_CFTP                      = 0x3e
+       IPPROTO_CHAOS                     = 0x10
+       IPPROTO_CMTP                      = 0x26
+       IPPROTO_CPHB                      = 0x49
+       IPPROTO_CPNX                      = 0x48
+       IPPROTO_DDP                       = 0x25
+       IPPROTO_DGP                       = 0x56
+       IPPROTO_DIVERT                    = 0xfe
+       IPPROTO_DONE                      = 0x101
+       IPPROTO_DSTOPTS                   = 0x3c
+       IPPROTO_EGP                       = 0x8
+       IPPROTO_EMCON                     = 0xe
+       IPPROTO_ENCAP                     = 0x62
+       IPPROTO_EON                       = 0x50
+       IPPROTO_ESP                       = 0x32
+       IPPROTO_ETHERIP                   = 0x61
+       IPPROTO_FRAGMENT                  = 0x2c
+       IPPROTO_GGP                       = 0x3
+       IPPROTO_GMTP                      = 0x64
+       IPPROTO_GRE                       = 0x2f
+       IPPROTO_HELLO                     = 0x3f
+       IPPROTO_HMP                       = 0x14
+       IPPROTO_HOPOPTS                   = 0x0
+       IPPROTO_ICMP                      = 0x1
+       IPPROTO_ICMPV6                    = 0x3a
+       IPPROTO_IDP                       = 0x16
+       IPPROTO_IDPR                      = 0x23
+       IPPROTO_IDRP                      = 0x2d
+       IPPROTO_IGMP                      = 0x2
+       IPPROTO_IGP                       = 0x55
+       IPPROTO_IGRP                      = 0x58
+       IPPROTO_IL                        = 0x28
+       IPPROTO_INLSP                     = 0x34
+       IPPROTO_INP                       = 0x20
+       IPPROTO_IP                        = 0x0
+       IPPROTO_IPCOMP                    = 0x6c
+       IPPROTO_IPCV                      = 0x47
+       IPPROTO_IPEIP                     = 0x5e
+       IPPROTO_IPIP                      = 0x4
+       IPPROTO_IPPC                      = 0x43
+       IPPROTO_IPV4                      = 0x4
+       IPPROTO_IPV6                      = 0x29
+       IPPROTO_IRTP                      = 0x1c
+       IPPROTO_KRYPTOLAN                 = 0x41
+       IPPROTO_LARP                      = 0x5b
+       IPPROTO_LEAF1                     = 0x19
+       IPPROTO_LEAF2                     = 0x1a
+       IPPROTO_MAX                       = 0x100
+       IPPROTO_MAXID                     = 0x34
+       IPPROTO_MEAS                      = 0x13
+       IPPROTO_MHRP                      = 0x30
+       IPPROTO_MICP                      = 0x5f
+       IPPROTO_MTP                       = 0x5c
+       IPPROTO_MUX                       = 0x12
+       IPPROTO_ND                        = 0x4d
+       IPPROTO_NHRP                      = 0x36
+       IPPROTO_NONE                      = 0x3b
+       IPPROTO_NSP                       = 0x1f
+       IPPROTO_NVPII                     = 0xb
+       IPPROTO_OSPFIGP                   = 0x59
+       IPPROTO_PGM                       = 0x71
+       IPPROTO_PIGP                      = 0x9
+       IPPROTO_PIM                       = 0x67
+       IPPROTO_PRM                       = 0x15
+       IPPROTO_PUP                       = 0xc
+       IPPROTO_PVP                       = 0x4b
+       IPPROTO_RAW                       = 0xff
+       IPPROTO_RCCMON                    = 0xa
+       IPPROTO_RDP                       = 0x1b
+       IPPROTO_ROUTING                   = 0x2b
+       IPPROTO_RSVP                      = 0x2e
+       IPPROTO_RVD                       = 0x42
+       IPPROTO_SATEXPAK                  = 0x40
+       IPPROTO_SATMON                    = 0x45
+       IPPROTO_SCCSP                     = 0x60
+       IPPROTO_SCTP                      = 0x84
+       IPPROTO_SDRP                      = 0x2a
+       IPPROTO_SEP                       = 0x21
+       IPPROTO_SRPC                      = 0x5a
+       IPPROTO_ST                        = 0x7
+       IPPROTO_SVMTP                     = 0x52
+       IPPROTO_SWIPE                     = 0x35
+       IPPROTO_TCF                       = 0x57
+       IPPROTO_TCP                       = 0x6
+       IPPROTO_TP                        = 0x1d
+       IPPROTO_TPXX                      = 0x27
+       IPPROTO_TRUNK1                    = 0x17
+       IPPROTO_TRUNK2                    = 0x18
+       IPPROTO_TTP                       = 0x54
+       IPPROTO_UDP                       = 0x11
+       IPPROTO_VINES                     = 0x53
+       IPPROTO_VISA                      = 0x46
+       IPPROTO_VMTP                      = 0x51
+       IPPROTO_WBEXPAK                   = 0x4f
+       IPPROTO_WBMON                     = 0x4e
+       IPPROTO_WSN                       = 0x4a
+       IPPROTO_XNET                      = 0xf
+       IPPROTO_XTP                       = 0x24
+       IPV6_2292DSTOPTS                  = 0x17
+       IPV6_2292HOPLIMIT                 = 0x14
+       IPV6_2292HOPOPTS                  = 0x16
+       IPV6_2292NEXTHOP                  = 0x15
+       IPV6_2292PKTINFO                  = 0x13
+       IPV6_2292PKTOPTIONS               = 0x19
+       IPV6_2292RTHDR                    = 0x18
+       IPV6_BINDV6ONLY                   = 0x1b
+       IPV6_BOUND_IF                     = 0x7d
+       IPV6_CHECKSUM                     = 0x1a
+       IPV6_DEFAULT_MULTICAST_HOPS       = 0x1
+       IPV6_DEFAULT_MULTICAST_LOOP       = 0x1
+       IPV6_DEFHLIM                      = 0x40
+       IPV6_FAITH                        = 0x1d
+       IPV6_FLOWINFO_MASK                = 0xffffff0f
+       IPV6_FLOWLABEL_MASK               = 0xffff0f00
+       IPV6_FRAGTTL                      = 0x3c
+       IPV6_FW_ADD                       = 0x1e
+       IPV6_FW_DEL                       = 0x1f
+       IPV6_FW_FLUSH                     = 0x20
+       IPV6_FW_GET                       = 0x22
+       IPV6_FW_ZERO                      = 0x21
+       IPV6_HLIMDEC                      = 0x1
+       IPV6_IPSEC_POLICY                 = 0x1c
+       IPV6_JOIN_GROUP                   = 0xc
+       IPV6_LEAVE_GROUP                  = 0xd
+       IPV6_MAXHLIM                      = 0xff
+       IPV6_MAXOPTHDR                    = 0x800
+       IPV6_MAXPACKET                    = 0xffff
+       IPV6_MAX_GROUP_SRC_FILTER         = 0x200
+       IPV6_MAX_MEMBERSHIPS              = 0xfff
+       IPV6_MAX_SOCK_SRC_FILTER          = 0x80
+       IPV6_MIN_MEMBERSHIPS              = 0x1f
+       IPV6_MMTU                         = 0x500
+       IPV6_MULTICAST_HOPS               = 0xa
+       IPV6_MULTICAST_IF                 = 0x9
+       IPV6_MULTICAST_LOOP               = 0xb
+       IPV6_PORTRANGE                    = 0xe
+       IPV6_PORTRANGE_DEFAULT            = 0x0
+       IPV6_PORTRANGE_HIGH               = 0x1
+       IPV6_PORTRANGE_LOW                = 0x2
+       IPV6_RECVTCLASS                   = 0x23
+       IPV6_RTHDR_LOOSE                  = 0x0
+       IPV6_RTHDR_STRICT                 = 0x1
+       IPV6_RTHDR_TYPE_0                 = 0x0
+       IPV6_SOCKOPT_RESERVED1            = 0x3
+       IPV6_TCLASS                       = 0x24
+       IPV6_UNICAST_HOPS                 = 0x4
+       IPV6_V6ONLY                       = 0x1b
+       IPV6_VERSION                      = 0x60
+       IPV6_VERSION_MASK                 = 0xf0
+       IP_ADD_MEMBERSHIP                 = 0xc
+       IP_ADD_SOURCE_MEMBERSHIP          = 0x46
+       IP_BLOCK_SOURCE                   = 0x48
+       IP_BOUND_IF                       = 0x19
+       IP_DEFAULT_MULTICAST_LOOP         = 0x1
+       IP_DEFAULT_MULTICAST_TTL          = 0x1
+       IP_DF                             = 0x4000
+       IP_DROP_MEMBERSHIP                = 0xd
+       IP_DROP_SOURCE_MEMBERSHIP         = 0x47
+       IP_DUMMYNET_CONFIGURE             = 0x3c
+       IP_DUMMYNET_DEL                   = 0x3d
+       IP_DUMMYNET_FLUSH                 = 0x3e
+       IP_DUMMYNET_GET                   = 0x40
+       IP_FAITH                          = 0x16
+       IP_FW_ADD                         = 0x28
+       IP_FW_DEL                         = 0x29
+       IP_FW_FLUSH                       = 0x2a
+       IP_FW_GET                         = 0x2c
+       IP_FW_RESETLOG                    = 0x2d
+       IP_FW_ZERO                        = 0x2b
+       IP_HDRINCL                        = 0x2
+       IP_IPSEC_POLICY                   = 0x15
+       IP_MAXPACKET                      = 0xffff
+       IP_MAX_GROUP_SRC_FILTER           = 0x200
+       IP_MAX_MEMBERSHIPS                = 0xfff
+       IP_MAX_SOCK_MUTE_FILTER           = 0x80
+       IP_MAX_SOCK_SRC_FILTER            = 0x80
+       IP_MF                             = 0x2000
+       IP_MIN_MEMBERSHIPS                = 0x1f
+       IP_MSFILTER                       = 0x4a
+       IP_MSS                            = 0x240
+       IP_MULTICAST_IF                   = 0x9
+       IP_MULTICAST_IFINDEX              = 0x42
+       IP_MULTICAST_LOOP                 = 0xb
+       IP_MULTICAST_TTL                  = 0xa
+       IP_MULTICAST_VIF                  = 0xe
+       IP_NAT__XXX                       = 0x37
+       IP_OFFMASK                        = 0x1fff
+       IP_OLD_FW_ADD                     = 0x32
+       IP_OLD_FW_DEL                     = 0x33
+       IP_OLD_FW_FLUSH                   = 0x34
+       IP_OLD_FW_GET                     = 0x36
+       IP_OLD_FW_RESETLOG                = 0x38
+       IP_OLD_FW_ZERO                    = 0x35
+       IP_OPTIONS                        = 0x1
+       IP_PKTINFO                        = 0x1a
+       IP_PORTRANGE                      = 0x13
+       IP_PORTRANGE_DEFAULT              = 0x0
+       IP_PORTRANGE_HIGH                 = 0x1
+       IP_PORTRANGE_LOW                  = 0x2
+       IP_RECVDSTADDR                    = 0x7
+       IP_RECVIF                         = 0x14
+       IP_RECVOPTS                       = 0x5
+       IP_RECVPKTINFO                    = 0x1a
+       IP_RECVRETOPTS                    = 0x6
+       IP_RECVTTL                        = 0x18
+       IP_RETOPTS                        = 0x8
+       IP_RF                             = 0x8000
+       IP_RSVP_OFF                       = 0x10
+       IP_RSVP_ON                        = 0xf
+       IP_RSVP_VIF_OFF                   = 0x12
+       IP_RSVP_VIF_ON                    = 0x11
+       IP_STRIPHDR                       = 0x17
+       IP_TOS                            = 0x3
+       IP_TRAFFIC_MGT_BACKGROUND         = 0x41
+       IP_TTL                            = 0x4
+       IP_UNBLOCK_SOURCE                 = 0x49
+       ISIG                              = 0x80
+       ISTRIP                            = 0x20
+       IUTF8                             = 0x4000
+       IXANY                             = 0x800
+       IXOFF                             = 0x400
+       IXON                              = 0x200
+       LOCK_EX                           = 0x2
+       LOCK_NB                           = 0x4
+       LOCK_SH                           = 0x1
+       LOCK_UN                           = 0x8
+       MADV_CAN_REUSE                    = 0x9
+       MADV_DONTNEED                     = 0x4
+       MADV_FREE                         = 0x5
+       MADV_FREE_REUSABLE                = 0x7
+       MADV_FREE_REUSE                   = 0x8
+       MADV_NORMAL                       = 0x0
+       MADV_PAGEOUT                      = 0xa
+       MADV_RANDOM                       = 0x1
+       MADV_SEQUENTIAL                   = 0x2
+       MADV_WILLNEED                     = 0x3
+       MADV_ZERO_WIRED_PAGES             = 0x6
+       MAP_ANON                          = 0x1000
+       MAP_ANONYMOUS                     = 0x1000
+       MAP_COPY                          = 0x2
+       MAP_FILE                          = 0x0
+       MAP_FIXED                         = 0x10
+       MAP_HASSEMAPHORE                  = 0x200
+       MAP_JIT                           = 0x800
+       MAP_NOCACHE                       = 0x400
+       MAP_NOEXTEND                      = 0x100
+       MAP_NORESERVE                     = 0x40
+       MAP_PRIVATE                       = 0x2
+       MAP_RENAME                        = 0x20
+       MAP_RESERVED0080                  = 0x80
+       MAP_RESILIENT_CODESIGN            = 0x2000
+       MAP_RESILIENT_MEDIA               = 0x4000
+       MAP_SHARED                        = 0x1
+       MCL_CURRENT                       = 0x1
+       MCL_FUTURE                        = 0x2
+       MNT_ASYNC                         = 0x40
+       MNT_AUTOMOUNTED                   = 0x400000
+       MNT_CMDFLAGS                      = 0xf0000
+       MNT_CPROTECT                      = 0x80
+       MNT_DEFWRITE                      = 0x2000000
+       MNT_DONTBROWSE                    = 0x100000
+       MNT_DOVOLFS                       = 0x8000
+       MNT_DWAIT                         = 0x4
+       MNT_EXPORTED                      = 0x100
+       MNT_FORCE                         = 0x80000
+       MNT_IGNORE_OWNERSHIP              = 0x200000
+       MNT_JOURNALED                     = 0x800000
+       MNT_LOCAL                         = 0x1000
+       MNT_MULTILABEL                    = 0x4000000
+       MNT_NOATIME                       = 0x10000000
+       MNT_NOBLOCK                       = 0x20000
+       MNT_NODEV                         = 0x10
+       MNT_NOEXEC                        = 0x4
+       MNT_NOSUID                        = 0x8
+       MNT_NOUSERXATTR                   = 0x1000000
+       MNT_NOWAIT                        = 0x2
+       MNT_QUARANTINE                    = 0x400
+       MNT_QUOTA                         = 0x2000
+       MNT_RDONLY                        = 0x1
+       MNT_RELOAD                        = 0x40000
+       MNT_ROOTFS                        = 0x4000
+       MNT_SYNCHRONOUS                   = 0x2
+       MNT_UNION                         = 0x20
+       MNT_UNKNOWNPERMISSIONS            = 0x200000
+       MNT_UPDATE                        = 0x10000
+       MNT_VISFLAGMASK                   = 0x17f0f5ff
+       MNT_WAIT                          = 0x1
+       MSG_CTRUNC                        = 0x20
+       MSG_DONTROUTE                     = 0x4
+       MSG_DONTWAIT                      = 0x80
+       MSG_EOF                           = 0x100
+       MSG_EOR                           = 0x8
+       MSG_FLUSH                         = 0x400
+       MSG_HAVEMORE                      = 0x2000
+       MSG_HOLD                          = 0x800
+       MSG_NEEDSA                        = 0x10000
+       MSG_OOB                           = 0x1
+       MSG_PEEK                          = 0x2
+       MSG_RCVMORE                       = 0x4000
+       MSG_SEND                          = 0x1000
+       MSG_TRUNC                         = 0x10
+       MSG_WAITALL                       = 0x40
+       MSG_WAITSTREAM                    = 0x200
+       MS_ASYNC                          = 0x1
+       MS_DEACTIVATE                     = 0x8
+       MS_INVALIDATE                     = 0x2
+       MS_KILLPAGES                      = 0x4
+       MS_SYNC                           = 0x10
+       NAME_MAX                          = 0xff
+       NET_RT_DUMP                       = 0x1
+       NET_RT_DUMP2                      = 0x7
+       NET_RT_FLAGS                      = 0x2
+       NET_RT_IFLIST                     = 0x3
+       NET_RT_IFLIST2                    = 0x6
+       NET_RT_MAXID                      = 0xa
+       NET_RT_STAT                       = 0x4
+       NET_RT_TRASH                      = 0x5
+       NL0                               = 0x0
+       NL1                               = 0x100
+       NL2                               = 0x200
+       NL3                               = 0x300
+       NLDLY                             = 0x300
+       NOFLSH                            = 0x80000000
+       NOKERNINFO                        = 0x2000000
+       NOTE_ABSOLUTE                     = 0x8
+       NOTE_ATTRIB                       = 0x8
+       NOTE_BACKGROUND                   = 0x40
+       NOTE_CHILD                        = 0x4
+       NOTE_CRITICAL                     = 0x20
+       NOTE_DELETE                       = 0x1
+       NOTE_EXEC                         = 0x20000000
+       NOTE_EXIT                         = 0x80000000
+       NOTE_EXITSTATUS                   = 0x4000000
+       NOTE_EXIT_CSERROR                 = 0x40000
+       NOTE_EXIT_DECRYPTFAIL             = 0x10000
+       NOTE_EXIT_DETAIL                  = 0x2000000
+       NOTE_EXIT_DETAIL_MASK             = 0x70000
+       NOTE_EXIT_MEMORY                  = 0x20000
+       NOTE_EXIT_REPARENTED              = 0x80000
+       NOTE_EXTEND                       = 0x4
+       NOTE_FFAND                        = 0x40000000
+       NOTE_FFCOPY                       = 0xc0000000
+       NOTE_FFCTRLMASK                   = 0xc0000000
+       NOTE_FFLAGSMASK                   = 0xffffff
+       NOTE_FFNOP                        = 0x0
+       NOTE_FFOR                         = 0x80000000
+       NOTE_FORK                         = 0x40000000
+       NOTE_FUNLOCK                      = 0x100
+       NOTE_LEEWAY                       = 0x10
+       NOTE_LINK                         = 0x10
+       NOTE_LOWAT                        = 0x1
+       NOTE_MACH_CONTINUOUS_TIME         = 0x80
+       NOTE_NONE                         = 0x80
+       NOTE_NSECONDS                     = 0x4
+       NOTE_OOB                          = 0x2
+       NOTE_PCTRLMASK                    = -0x100000
+       NOTE_PDATAMASK                    = 0xfffff
+       NOTE_REAP                         = 0x10000000
+       NOTE_RENAME                       = 0x20
+       NOTE_REVOKE                       = 0x40
+       NOTE_SECONDS                      = 0x1
+       NOTE_SIGNAL                       = 0x8000000
+       NOTE_TRACK                        = 0x1
+       NOTE_TRACKERR                     = 0x2
+       NOTE_TRIGGER                      = 0x1000000
+       NOTE_USECONDS                     = 0x2
+       NOTE_VM_ERROR                     = 0x10000000
+       NOTE_VM_PRESSURE                  = 0x80000000
+       NOTE_VM_PRESSURE_SUDDEN_TERMINATE = 0x20000000
+       NOTE_VM_PRESSURE_TERMINATE        = 0x40000000
+       NOTE_WRITE                        = 0x2
+       OCRNL                             = 0x10
+       OFDEL                             = 0x20000
+       OFILL                             = 0x80
+       ONLCR                             = 0x2
+       ONLRET                            = 0x40
+       ONOCR                             = 0x20
+       ONOEOT                            = 0x8
+       OPOST                             = 0x1
+       OXTABS                            = 0x4
+       O_ACCMODE                         = 0x3
+       O_ALERT                           = 0x20000000
+       O_APPEND                          = 0x8
+       O_ASYNC                           = 0x40
+       O_CLOEXEC                         = 0x1000000
+       O_CREAT                           = 0x200
+       O_DIRECTORY                       = 0x100000
+       O_DP_GETRAWENCRYPTED              = 0x1
+       O_DP_GETRAWUNENCRYPTED            = 0x2
+       O_DSYNC                           = 0x400000
+       O_EVTONLY                         = 0x8000
+       O_EXCL                            = 0x800
+       O_EXLOCK                          = 0x20
+       O_FSYNC                           = 0x80
+       O_NDELAY                          = 0x4
+       O_NOCTTY                          = 0x20000
+       O_NOFOLLOW                        = 0x100
+       O_NONBLOCK                        = 0x4
+       O_POPUP                           = 0x80000000
+       O_RDONLY                          = 0x0
+       O_RDWR                            = 0x2
+       O_SHLOCK                          = 0x10
+       O_SYMLINK                         = 0x200000
+       O_SYNC                            = 0x80
+       O_TRUNC                           = 0x400
+       O_WRONLY                          = 0x1
+       PARENB                            = 0x1000
+       PARMRK                            = 0x8
+       PARODD                            = 0x2000
+       PENDIN                            = 0x20000000
+       PRIO_PGRP                         = 0x1
+       PRIO_PROCESS                      = 0x0
+       PRIO_USER                         = 0x2
+       PROT_EXEC                         = 0x4
+       PROT_NONE                         = 0x0
+       PROT_READ                         = 0x1
+       PROT_WRITE                        = 0x2
+       PT_ATTACH                         = 0xa
+       PT_ATTACHEXC                      = 0xe
+       PT_CONTINUE                       = 0x7
+       PT_DENY_ATTACH                    = 0x1f
+       PT_DETACH                         = 0xb
+       PT_FIRSTMACH                      = 0x20
+       PT_FORCEQUOTA                     = 0x1e
+       PT_KILL                           = 0x8
+       PT_READ_D                         = 0x2
+       PT_READ_I                         = 0x1
+       PT_READ_U                         = 0x3
+       PT_SIGEXC                         = 0xc
+       PT_STEP                           = 0x9
+       PT_THUPDATE                       = 0xd
+       PT_TRACE_ME                       = 0x0
+       PT_WRITE_D                        = 0x5
+       PT_WRITE_I                        = 0x4
+       PT_WRITE_U                        = 0x6
+       RLIMIT_AS                         = 0x5
+       RLIMIT_CORE                       = 0x4
+       RLIMIT_CPU                        = 0x0
+       RLIMIT_CPU_USAGE_MONITOR          = 0x2
+       RLIMIT_DATA                       = 0x2
+       RLIMIT_FSIZE                      = 0x1
+       RLIMIT_MEMLOCK                    = 0x6
+       RLIMIT_NOFILE                     = 0x8
+       RLIMIT_NPROC                      = 0x7
+       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_DST                           = 0x1
+       RTA_GATEWAY                       = 0x2
+       RTA_GENMASK                       = 0x8
+       RTA_IFA                           = 0x20
+       RTA_IFP                           = 0x10
+       RTA_NETMASK                       = 0x4
+       RTF_BLACKHOLE                     = 0x1000
+       RTF_BROADCAST                     = 0x400000
+       RTF_CLONING                       = 0x100
+       RTF_CONDEMNED                     = 0x2000000
+       RTF_DELCLONE                      = 0x80
+       RTF_DONE                          = 0x40
+       RTF_DYNAMIC                       = 0x10
+       RTF_GATEWAY                       = 0x2
+       RTF_HOST                          = 0x4
+       RTF_IFREF                         = 0x4000000
+       RTF_IFSCOPE                       = 0x1000000
+       RTF_LLINFO                        = 0x400
+       RTF_LOCAL                         = 0x200000
+       RTF_MODIFIED                      = 0x20
+       RTF_MULTICAST                     = 0x800000
+       RTF_NOIFREF                       = 0x2000
+       RTF_PINNED                        = 0x100000
+       RTF_PRCLONING                     = 0x10000
+       RTF_PROTO1                        = 0x8000
+       RTF_PROTO2                        = 0x4000
+       RTF_PROTO3                        = 0x40000
+       RTF_PROXY                         = 0x8000000
+       RTF_REJECT                        = 0x8
+       RTF_ROUTER                        = 0x10000000
+       RTF_STATIC                        = 0x800
+       RTF_UP                            = 0x1
+       RTF_WASCLONED                     = 0x20000
+       RTF_XRESOLVE                      = 0x200
+       RTM_ADD                           = 0x1
+       RTM_CHANGE                        = 0x3
+       RTM_DELADDR                       = 0xd
+       RTM_DELETE                        = 0x2
+       RTM_DELMADDR                      = 0x10
+       RTM_GET                           = 0x4
+       RTM_GET2                          = 0x14
+       RTM_IFINFO                        = 0xe
+       RTM_IFINFO2                       = 0x12
+       RTM_LOCK                          = 0x8
+       RTM_LOSING                        = 0x5
+       RTM_MISS                          = 0x7
+       RTM_NEWADDR                       = 0xc
+       RTM_NEWMADDR                      = 0xf
+       RTM_NEWMADDR2                     = 0x13
+       RTM_OLDADD                        = 0x9
+       RTM_OLDDEL                        = 0xa
+       RTM_REDIRECT                      = 0x6
+       RTM_RESOLVE                       = 0xb
+       RTM_RTTUNIT                       = 0xf4240
+       RTM_VERSION                       = 0x5
+       RTV_EXPIRE                        = 0x4
+       RTV_HOPCOUNT                      = 0x2
+       RTV_MTU                           = 0x1
+       RTV_RPIPE                         = 0x8
+       RTV_RTT                           = 0x40
+       RTV_RTTVAR                        = 0x80
+       RTV_SPIPE                         = 0x10
+       RTV_SSTHRESH                      = 0x20
+       RUSAGE_CHILDREN                   = -0x1
+       RUSAGE_SELF                       = 0x0
+       SCM_CREDS                         = 0x3
+       SCM_RIGHTS                        = 0x1
+       SCM_TIMESTAMP                     = 0x2
+       SCM_TIMESTAMP_MONOTONIC           = 0x4
+       SHUT_RD                           = 0x0
+       SHUT_RDWR                         = 0x2
+       SHUT_WR                           = 0x1
+       SIOCADDMULTI                      = 0x80206931
+       SIOCAIFADDR                       = 0x8040691a
+       SIOCARPIPLL                       = 0xc0206928
+       SIOCATMARK                        = 0x40047307
+       SIOCAUTOADDR                      = 0xc0206926
+       SIOCAUTONETMASK                   = 0x80206927
+       SIOCDELMULTI                      = 0x80206932
+       SIOCDIFADDR                       = 0x80206919
+       SIOCDIFPHYADDR                    = 0x80206941
+       SIOCGDRVSPEC                      = 0xc01c697b
+       SIOCGETVLAN                       = 0xc020697f
+       SIOCGHIWAT                        = 0x40047301
+       SIOCGIFADDR                       = 0xc0206921
+       SIOCGIFALTMTU                     = 0xc0206948
+       SIOCGIFASYNCMAP                   = 0xc020697c
+       SIOCGIFBOND                       = 0xc0206947
+       SIOCGIFBRDADDR                    = 0xc0206923
+       SIOCGIFCAP                        = 0xc020695b
+       SIOCGIFCONF                       = 0xc0086924
+       SIOCGIFDEVMTU                     = 0xc0206944
+       SIOCGIFDSTADDR                    = 0xc0206922
+       SIOCGIFFLAGS                      = 0xc0206911
+       SIOCGIFGENERIC                    = 0xc020693a
+       SIOCGIFKPI                        = 0xc0206987
+       SIOCGIFMAC                        = 0xc0206982
+       SIOCGIFMEDIA                      = 0xc0286938
+       SIOCGIFMETRIC                     = 0xc0206917
+       SIOCGIFMTU                        = 0xc0206933
+       SIOCGIFNETMASK                    = 0xc0206925
+       SIOCGIFPDSTADDR                   = 0xc0206940
+       SIOCGIFPHYS                       = 0xc0206935
+       SIOCGIFPSRCADDR                   = 0xc020693f
+       SIOCGIFSTATUS                     = 0xc331693d
+       SIOCGIFVLAN                       = 0xc020697f
+       SIOCGIFWAKEFLAGS                  = 0xc0206988
+       SIOCGLOWAT                        = 0x40047303
+       SIOCGPGRP                         = 0x40047309
+       SIOCIFCREATE                      = 0xc0206978
+       SIOCIFCREATE2                     = 0xc020697a
+       SIOCIFDESTROY                     = 0x80206979
+       SIOCIFGCLONERS                    = 0xc00c6981
+       SIOCRSLVMULTI                     = 0xc008693b
+       SIOCSDRVSPEC                      = 0x801c697b
+       SIOCSETVLAN                       = 0x8020697e
+       SIOCSHIWAT                        = 0x80047300
+       SIOCSIFADDR                       = 0x8020690c
+       SIOCSIFALTMTU                     = 0x80206945
+       SIOCSIFASYNCMAP                   = 0x8020697d
+       SIOCSIFBOND                       = 0x80206946
+       SIOCSIFBRDADDR                    = 0x80206913
+       SIOCSIFCAP                        = 0x8020695a
+       SIOCSIFDSTADDR                    = 0x8020690e
+       SIOCSIFFLAGS                      = 0x80206910
+       SIOCSIFGENERIC                    = 0x80206939
+       SIOCSIFKPI                        = 0x80206986
+       SIOCSIFLLADDR                     = 0x8020693c
+       SIOCSIFMAC                        = 0x80206983
+       SIOCSIFMEDIA                      = 0xc0206937
+       SIOCSIFMETRIC                     = 0x80206918
+       SIOCSIFMTU                        = 0x80206934
+       SIOCSIFNETMASK                    = 0x80206916
+       SIOCSIFPHYADDR                    = 0x8040693e
+       SIOCSIFPHYS                       = 0x80206936
+       SIOCSIFVLAN                       = 0x8020697e
+       SIOCSLOWAT                        = 0x80047302
+       SIOCSPGRP                         = 0x80047308
+       SOCK_DGRAM                        = 0x2
+       SOCK_MAXADDRLEN                   = 0xff
+       SOCK_RAW                          = 0x3
+       SOCK_RDM                          = 0x4
+       SOCK_SEQPACKET                    = 0x5
+       SOCK_STREAM                       = 0x1
+       SOL_SOCKET                        = 0xffff
+       SOMAXCONN                         = 0x80
+       SO_ACCEPTCONN                     = 0x2
+       SO_BROADCAST                      = 0x20
+       SO_DEBUG                          = 0x1
+       SO_DONTROUTE                      = 0x10
+       SO_DONTTRUNC                      = 0x2000
+       SO_ERROR                          = 0x1007
+       SO_KEEPALIVE                      = 0x8
+       SO_LABEL                          = 0x1010
+       SO_LINGER                         = 0x80
+       SO_LINGER_SEC                     = 0x1080
+       SO_NETSVC_MARKING_LEVEL           = 0x1119
+       SO_NET_SERVICE_TYPE               = 0x1116
+       SO_NKE                            = 0x1021
+       SO_NOADDRERR                      = 0x1023
+       SO_NOSIGPIPE                      = 0x1022
+       SO_NOTIFYCONFLICT                 = 0x1026
+       SO_NP_EXTENSIONS                  = 0x1083
+       SO_NREAD                          = 0x1020
+       SO_NUMRCVPKT                      = 0x1112
+       SO_NWRITE                         = 0x1024
+       SO_OOBINLINE                      = 0x100
+       SO_PEERLABEL                      = 0x1011
+       SO_RANDOMPORT                     = 0x1082
+       SO_RCVBUF                         = 0x1002
+       SO_RCVLOWAT                       = 0x1004
+       SO_RCVTIMEO                       = 0x1006
+       SO_REUSEADDR                      = 0x4
+       SO_REUSEPORT                      = 0x200
+       SO_REUSESHAREUID                  = 0x1025
+       SO_SNDBUF                         = 0x1001
+       SO_SNDLOWAT                       = 0x1003
+       SO_SNDTIMEO                       = 0x1005
+       SO_TIMESTAMP                      = 0x400
+       SO_TIMESTAMP_MONOTONIC            = 0x800
+       SO_TYPE                           = 0x1008
+       SO_UPCALLCLOSEWAIT                = 0x1027
+       SO_USELOOPBACK                    = 0x40
+       SO_WANTMORE                       = 0x4000
+       SO_WANTOOBFLAG                    = 0x8000
+       S_IEXEC                           = 0x40
+       S_IFBLK                           = 0x6000
+       S_IFCHR                           = 0x2000
+       S_IFDIR                           = 0x4000
+       S_IFIFO                           = 0x1000
+       S_IFLNK                           = 0xa000
+       S_IFMT                            = 0xf000
+       S_IFREG                           = 0x8000
+       S_IFSOCK                          = 0xc000
+       S_IFWHT                           = 0xe000
+       S_IREAD                           = 0x100
+       S_IRGRP                           = 0x20
+       S_IROTH                           = 0x4
+       S_IRUSR                           = 0x100
+       S_IRWXG                           = 0x38
+       S_IRWXO                           = 0x7
+       S_IRWXU                           = 0x1c0
+       S_ISGID                           = 0x400
+       S_ISTXT                           = 0x200
+       S_ISUID                           = 0x800
+       S_ISVTX                           = 0x200
+       S_IWGRP                           = 0x10
+       S_IWOTH                           = 0x2
+       S_IWRITE                          = 0x80
+       S_IWUSR                           = 0x80
+       S_IXGRP                           = 0x8
+       S_IXOTH                           = 0x1
+       S_IXUSR                           = 0x40
+       TAB0                              = 0x0
+       TAB1                              = 0x400
+       TAB2                              = 0x800
+       TAB3                              = 0x4
+       TABDLY                            = 0xc04
+       TCIFLUSH                          = 0x1
+       TCIOFF                            = 0x3
+       TCIOFLUSH                         = 0x3
+       TCION                             = 0x4
+       TCOFLUSH                          = 0x2
+       TCOOFF                            = 0x1
+       TCOON                             = 0x2
+       TCP_CONNECTIONTIMEOUT             = 0x20
+       TCP_CONNECTION_INFO               = 0x106
+       TCP_ENABLE_ECN                    = 0x104
+       TCP_FASTOPEN                      = 0x105
+       TCP_KEEPALIVE                     = 0x10
+       TCP_KEEPCNT                       = 0x102
+       TCP_KEEPINTVL                     = 0x101
+       TCP_MAXHLEN                       = 0x3c
+       TCP_MAXOLEN                       = 0x28
+       TCP_MAXSEG                        = 0x2
+       TCP_MAXWIN                        = 0xffff
+       TCP_MAX_SACK                      = 0x4
+       TCP_MAX_WINSHIFT                  = 0xe
+       TCP_MINMSS                        = 0xd8
+       TCP_MSS                           = 0x200
+       TCP_NODELAY                       = 0x1
+       TCP_NOOPT                         = 0x8
+       TCP_NOPUSH                        = 0x4
+       TCP_NOTSENT_LOWAT                 = 0x201
+       TCP_RXT_CONNDROPTIME              = 0x80
+       TCP_RXT_FINDROP                   = 0x100
+       TCP_SENDMOREACKS                  = 0x103
+       TCSAFLUSH                         = 0x2
+       TIOCCBRK                          = 0x2000747a
+       TIOCCDTR                          = 0x20007478
+       TIOCCONS                          = 0x80047462
+       TIOCDCDTIMESTAMP                  = 0x40087458
+       TIOCDRAIN                         = 0x2000745e
+       TIOCDSIMICROCODE                  = 0x20007455
+       TIOCEXCL                          = 0x2000740d
+       TIOCEXT                           = 0x80047460
+       TIOCFLUSH                         = 0x80047410
+       TIOCGDRAINWAIT                    = 0x40047456
+       TIOCGETA                          = 0x402c7413
+       TIOCGETD                          = 0x4004741a
+       TIOCGPGRP                         = 0x40047477
+       TIOCGWINSZ                        = 0x40087468
+       TIOCIXOFF                         = 0x20007480
+       TIOCIXON                          = 0x20007481
+       TIOCMBIC                          = 0x8004746b
+       TIOCMBIS                          = 0x8004746c
+       TIOCMGDTRWAIT                     = 0x4004745a
+       TIOCMGET                          = 0x4004746a
+       TIOCMODG                          = 0x40047403
+       TIOCMODS                          = 0x80047404
+       TIOCMSDTRWAIT                     = 0x8004745b
+       TIOCMSET                          = 0x8004746d
+       TIOCM_CAR                         = 0x40
+       TIOCM_CD                          = 0x40
+       TIOCM_CTS                         = 0x20
+       TIOCM_DSR                         = 0x100
+       TIOCM_DTR                         = 0x2
+       TIOCM_LE                          = 0x1
+       TIOCM_RI                          = 0x80
+       TIOCM_RNG                         = 0x80
+       TIOCM_RTS                         = 0x4
+       TIOCM_SR                          = 0x10
+       TIOCM_ST                          = 0x8
+       TIOCNOTTY                         = 0x20007471
+       TIOCNXCL                          = 0x2000740e
+       TIOCOUTQ                          = 0x40047473
+       TIOCPKT                           = 0x80047470
+       TIOCPKT_DATA                      = 0x0
+       TIOCPKT_DOSTOP                    = 0x20
+       TIOCPKT_FLUSHREAD                 = 0x1
+       TIOCPKT_FLUSHWRITE                = 0x2
+       TIOCPKT_IOCTL                     = 0x40
+       TIOCPKT_NOSTOP                    = 0x10
+       TIOCPKT_START                     = 0x8
+       TIOCPKT_STOP                      = 0x4
+       TIOCPTYGNAME                      = 0x40807453
+       TIOCPTYGRANT                      = 0x20007454
+       TIOCPTYUNLK                       = 0x20007452
+       TIOCREMOTE                        = 0x80047469
+       TIOCSBRK                          = 0x2000747b
+       TIOCSCONS                         = 0x20007463
+       TIOCSCTTY                         = 0x20007461
+       TIOCSDRAINWAIT                    = 0x80047457
+       TIOCSDTR                          = 0x20007479
+       TIOCSETA                          = 0x802c7414
+       TIOCSETAF                         = 0x802c7416
+       TIOCSETAW                         = 0x802c7415
+       TIOCSETD                          = 0x8004741b
+       TIOCSIG                           = 0x2000745f
+       TIOCSPGRP                         = 0x80047476
+       TIOCSTART                         = 0x2000746e
+       TIOCSTAT                          = 0x20007465
+       TIOCSTI                           = 0x80017472
+       TIOCSTOP                          = 0x2000746f
+       TIOCSWINSZ                        = 0x80087467
+       TIOCTIMESTAMP                     = 0x40087459
+       TIOCUCNTL                         = 0x80047466
+       TOSTOP                            = 0x400000
+       VDISCARD                          = 0xf
+       VDSUSP                            = 0xb
+       VEOF                              = 0x0
+       VEOL                              = 0x1
+       VEOL2                             = 0x2
+       VERASE                            = 0x3
+       VINTR                             = 0x8
+       VKILL                             = 0x5
+       VLNEXT                            = 0xe
+       VMIN                              = 0x10
+       VM_LOADAVG                        = 0x2
+       VM_MACHFACTOR                     = 0x4
+       VM_MAXID                          = 0x6
+       VM_METER                          = 0x1
+       VM_SWAPUSAGE                      = 0x5
+       VQUIT                             = 0x9
+       VREPRINT                          = 0x6
+       VSTART                            = 0xc
+       VSTATUS                           = 0x12
+       VSTOP                             = 0xd
+       VSUSP                             = 0xa
+       VT0                               = 0x0
+       VT1                               = 0x10000
+       VTDLY                             = 0x10000
+       VTIME                             = 0x11
+       VWERASE                           = 0x4
+       WCONTINUED                        = 0x10
+       WCOREFLAG                         = 0x80
+       WEXITED                           = 0x4
+       WNOHANG                           = 0x1
+       WNOWAIT                           = 0x20
+       WORDSIZE                          = 0x20
+       WSTOPPED                          = 0x8
+       WUNTRACED                         = 0x2
+)
+
+// Errors
+const (
+       E2BIG           = syscall.Errno(0x7)
+       EACCES          = syscall.Errno(0xd)
+       EADDRINUSE      = syscall.Errno(0x30)
+       EADDRNOTAVAIL   = syscall.Errno(0x31)
+       EAFNOSUPPORT    = syscall.Errno(0x2f)
+       EAGAIN          = syscall.Errno(0x23)
+       EALREADY        = syscall.Errno(0x25)
+       EAUTH           = syscall.Errno(0x50)
+       EBADARCH        = syscall.Errno(0x56)
+       EBADEXEC        = syscall.Errno(0x55)
+       EBADF           = syscall.Errno(0x9)
+       EBADMACHO       = syscall.Errno(0x58)
+       EBADMSG         = syscall.Errno(0x5e)
+       EBADRPC         = syscall.Errno(0x48)
+       EBUSY           = syscall.Errno(0x10)
+       ECANCELED       = syscall.Errno(0x59)
+       ECHILD          = syscall.Errno(0xa)
+       ECONNABORTED    = syscall.Errno(0x35)
+       ECONNREFUSED    = syscall.Errno(0x3d)
+       ECONNRESET      = syscall.Errno(0x36)
+       EDEADLK         = syscall.Errno(0xb)
+       EDESTADDRREQ    = syscall.Errno(0x27)
+       EDEVERR         = syscall.Errno(0x53)
+       EDOM            = syscall.Errno(0x21)
+       EDQUOT          = syscall.Errno(0x45)
+       EEXIST          = syscall.Errno(0x11)
+       EFAULT          = syscall.Errno(0xe)
+       EFBIG           = syscall.Errno(0x1b)
+       EFTYPE          = syscall.Errno(0x4f)
+       EHOSTDOWN       = syscall.Errno(0x40)
+       EHOSTUNREACH    = syscall.Errno(0x41)
+       EIDRM           = syscall.Errno(0x5a)
+       EILSEQ          = syscall.Errno(0x5c)
+       EINPROGRESS     = syscall.Errno(0x24)
+       EINTR           = syscall.Errno(0x4)
+       EINVAL          = syscall.Errno(0x16)
+       EIO             = syscall.Errno(0x5)
+       EISCONN         = syscall.Errno(0x38)
+       EISDIR          = syscall.Errno(0x15)
+       ELAST           = syscall.Errno(0x6a)
+       ELOOP           = syscall.Errno(0x3e)
+       EMFILE          = syscall.Errno(0x18)
+       EMLINK          = syscall.Errno(0x1f)
+       EMSGSIZE        = syscall.Errno(0x28)
+       EMULTIHOP       = syscall.Errno(0x5f)
+       ENAMETOOLONG    = syscall.Errno(0x3f)
+       ENEEDAUTH       = syscall.Errno(0x51)
+       ENETDOWN        = syscall.Errno(0x32)
+       ENETRESET       = syscall.Errno(0x34)
+       ENETUNREACH     = syscall.Errno(0x33)
+       ENFILE          = syscall.Errno(0x17)
+       ENOATTR         = syscall.Errno(0x5d)
+       ENOBUFS         = syscall.Errno(0x37)
+       ENODATA         = syscall.Errno(0x60)
+       ENODEV          = syscall.Errno(0x13)
+       ENOENT          = syscall.Errno(0x2)
+       ENOEXEC         = syscall.Errno(0x8)
+       ENOLCK          = syscall.Errno(0x4d)
+       ENOLINK         = syscall.Errno(0x61)
+       ENOMEM          = syscall.Errno(0xc)
+       ENOMSG          = syscall.Errno(0x5b)
+       ENOPOLICY       = syscall.Errno(0x67)
+       ENOPROTOOPT     = syscall.Errno(0x2a)
+       ENOSPC          = syscall.Errno(0x1c)
+       ENOSR           = syscall.Errno(0x62)
+       ENOSTR          = syscall.Errno(0x63)
+       ENOSYS          = syscall.Errno(0x4e)
+       ENOTBLK         = syscall.Errno(0xf)
+       ENOTCONN        = syscall.Errno(0x39)
+       ENOTDIR         = syscall.Errno(0x14)
+       ENOTEMPTY       = syscall.Errno(0x42)
+       ENOTRECOVERABLE = syscall.Errno(0x68)
+       ENOTSOCK        = syscall.Errno(0x26)
+       ENOTSUP         = syscall.Errno(0x2d)
+       ENOTTY          = syscall.Errno(0x19)
+       ENXIO           = syscall.Errno(0x6)
+       EOPNOTSUPP      = syscall.Errno(0x66)
+       EOVERFLOW       = syscall.Errno(0x54)
+       EOWNERDEAD      = syscall.Errno(0x69)
+       EPERM           = syscall.Errno(0x1)
+       EPFNOSUPPORT    = syscall.Errno(0x2e)
+       EPIPE           = syscall.Errno(0x20)
+       EPROCLIM        = syscall.Errno(0x43)
+       EPROCUNAVAIL    = syscall.Errno(0x4c)
+       EPROGMISMATCH   = syscall.Errno(0x4b)
+       EPROGUNAVAIL    = syscall.Errno(0x4a)
+       EPROTO          = syscall.Errno(0x64)
+       EPROTONOSUPPORT = syscall.Errno(0x2b)
+       EPROTOTYPE      = syscall.Errno(0x29)
+       EPWROFF         = syscall.Errno(0x52)
+       EQFULL          = syscall.Errno(0x6a)
+       ERANGE          = syscall.Errno(0x22)
+       EREMOTE         = syscall.Errno(0x47)
+       EROFS           = syscall.Errno(0x1e)
+       ERPCMISMATCH    = syscall.Errno(0x49)
+       ESHLIBVERS      = syscall.Errno(0x57)
+       ESHUTDOWN       = syscall.Errno(0x3a)
+       ESOCKTNOSUPPORT = syscall.Errno(0x2c)
+       ESPIPE          = syscall.Errno(0x1d)
+       ESRCH           = syscall.Errno(0x3)
+       ESTALE          = syscall.Errno(0x46)
+       ETIME           = syscall.Errno(0x65)
+       ETIMEDOUT       = syscall.Errno(0x3c)
+       ETOOMANYREFS    = syscall.Errno(0x3b)
+       ETXTBSY         = syscall.Errno(0x1a)
+       EUSERS          = syscall.Errno(0x44)
+       EWOULDBLOCK     = syscall.Errno(0x23)
+       EXDEV           = syscall.Errno(0x12)
+)
+
+// Signals
+const (
+       SIGABRT   = syscall.Signal(0x6)
+       SIGALRM   = syscall.Signal(0xe)
+       SIGBUS    = syscall.Signal(0xa)
+       SIGCHLD   = syscall.Signal(0x14)
+       SIGCONT   = syscall.Signal(0x13)
+       SIGEMT    = syscall.Signal(0x7)
+       SIGFPE    = syscall.Signal(0x8)
+       SIGHUP    = syscall.Signal(0x1)
+       SIGILL    = syscall.Signal(0x4)
+       SIGINFO   = syscall.Signal(0x1d)
+       SIGINT    = syscall.Signal(0x2)
+       SIGIO     = syscall.Signal(0x17)
+       SIGIOT    = syscall.Signal(0x6)
+       SIGKILL   = syscall.Signal(0x9)
+       SIGPIPE   = syscall.Signal(0xd)
+       SIGPROF   = syscall.Signal(0x1b)
+       SIGQUIT   = syscall.Signal(0x3)
+       SIGSEGV   = syscall.Signal(0xb)
+       SIGSTOP   = syscall.Signal(0x11)
+       SIGSYS    = syscall.Signal(0xc)
+       SIGTERM   = syscall.Signal(0xf)
+       SIGTRAP   = syscall.Signal(0x5)
+       SIGTSTP   = syscall.Signal(0x12)
+       SIGTTIN   = syscall.Signal(0x15)
+       SIGTTOU   = syscall.Signal(0x16)
+       SIGURG    = syscall.Signal(0x10)
+       SIGUSR1   = syscall.Signal(0x1e)
+       SIGUSR2   = syscall.Signal(0x1f)
+       SIGVTALRM = syscall.Signal(0x1a)
+       SIGWINCH  = syscall.Signal(0x1c)
+       SIGXCPU   = syscall.Signal(0x18)
+       SIGXFSZ   = syscall.Signal(0x19)
+)
+
+// Error table
+var errors = [...]string{
+       1:   "operation not permitted",
+       2:   "no such file or directory",
+       3:   "no such process",
+       4:   "interrupted system call",
+       5:   "input/output error",
+       6:   "device not configured",
+       7:   "argument list too long",
+       8:   "exec format error",
+       9:   "bad file descriptor",
+       10:  "no child processes",
+       11:  "resource deadlock avoided",
+       12:  "cannot allocate memory",
+       13:  "permission denied",
+       14:  "bad address",
+       15:  "block device required",
+       16:  "resource busy",
+       17:  "file exists",
+       18:  "cross-device link",
+       19:  "operation not supported by device",
+       20:  "not a directory",
+       21:  "is a directory",
+       22:  "invalid argument",
+       23:  "too many open files in system",
+       24:  "too many open files",
+       25:  "inappropriate ioctl for device",
+       26:  "text file busy",
+       27:  "file too large",
+       28:  "no space left on device",
+       29:  "illegal seek",
+       30:  "read-only file system",
+       31:  "too many links",
+       32:  "broken pipe",
+       33:  "numerical argument out of domain",
+       34:  "result too large",
+       35:  "resource temporarily unavailable",
+       36:  "operation now in progress",
+       37:  "operation already in progress",
+       38:  "socket operation on non-socket",
+       39:  "destination address required",
+       40:  "message too long",
+       41:  "protocol wrong type for socket",
+       42:  "protocol not available",
+       43:  "protocol not supported",
+       44:  "socket type not supported",
+       45:  "operation not supported",
+       46:  "protocol family not supported",
+       47:  "address family not supported by protocol family",
+       48:  "address already in use",
+       49:  "can't assign requested address",
+       50:  "network is down",
+       51:  "network is unreachable",
+       52:  "network dropped connection on reset",
+       53:  "software caused connection abort",
+       54:  "connection reset by peer",
+       55:  "no buffer space available",
+       56:  "socket is already connected",
+       57:  "socket is not connected",
+       58:  "can't send after socket shutdown",
+       59:  "too many references: can't splice",
+       60:  "operation timed out",
+       61:  "connection refused",
+       62:  "too many levels of symbolic links",
+       63:  "file name too long",
+       64:  "host is down",
+       65:  "no route to host",
+       66:  "directory not empty",
+       67:  "too many processes",
+       68:  "too many users",
+       69:  "disc quota exceeded",
+       70:  "stale NFS file handle",
+       71:  "too many levels of remote in path",
+       72:  "RPC struct is bad",
+       73:  "RPC version wrong",
+       74:  "RPC prog. not avail",
+       75:  "program version wrong",
+       76:  "bad procedure for program",
+       77:  "no locks available",
+       78:  "function not implemented",
+       79:  "inappropriate file type or format",
+       80:  "authentication error",
+       81:  "need authenticator",
+       82:  "device power is off",
+       83:  "device error",
+       84:  "value too large to be stored in data type",
+       85:  "bad executable (or shared library)",
+       86:  "bad CPU type in executable",
+       87:  "shared library version mismatch",
+       88:  "malformed Mach-o file",
+       89:  "operation canceled",
+       90:  "identifier removed",
+       91:  "no message of desired type",
+       92:  "illegal byte sequence",
+       93:  "attribute not found",
+       94:  "bad message",
+       95:  "EMULTIHOP (Reserved)",
+       96:  "no message available on STREAM",
+       97:  "ENOLINK (Reserved)",
+       98:  "no STREAM resources",
+       99:  "not a STREAM",
+       100: "protocol error",
+       101: "STREAM ioctl timeout",
+       102: "operation not supported on socket",
+       103: "policy not found",
+       104: "state not recoverable",
+       105: "previous owner died",
+       106: "interface output queue is full",
+}
+
+// Signal table
+var signals = [...]string{
+       1:  "hangup",
+       2:  "interrupt",
+       3:  "quit",
+       4:  "illegal instruction",
+       5:  "trace/BPT trap",
+       6:  "abort trap",
+       7:  "EMT trap",
+       8:  "floating point exception",
+       9:  "killed",
+       10: "bus error",
+       11: "segmentation fault",
+       12: "bad system call",
+       13: "broken pipe",
+       14: "alarm clock",
+       15: "terminated",
+       16: "urgent I/O condition",
+       17: "suspended (signal)",
+       18: "suspended",
+       19: "continued",
+       20: "child exited",
+       21: "stopped (tty input)",
+       22: "stopped (tty output)",
+       23: "I/O possible",
+       24: "cputime limit exceeded",
+       25: "filesize limit exceeded",
+       26: "virtual timer expired",
+       27: "profiling timer expired",
+       28: "window size changes",
+       29: "information request",
+       30: "user defined signal 1",
+       31: "user defined signal 2",
+}
diff --git a/vendor/golang.org/x/sys/unix/zerrors_darwin_amd64.go b/vendor/golang.org/x/sys/unix/zerrors_darwin_amd64.go
new file mode 100644 (file)
index 0000000..48f63d4
--- /dev/null
@@ -0,0 +1,1673 @@
+// mkerrors.sh -m64
+// Code generated by the command above; see README.md. DO NOT EDIT.
+
+// +build amd64,darwin
+
+// Created by cgo -godefs - DO NOT EDIT
+// cgo -godefs -- -m64 _const.go
+
+package unix
+
+import "syscall"
+
+const (
+       AF_APPLETALK                      = 0x10
+       AF_CCITT                          = 0xa
+       AF_CHAOS                          = 0x5
+       AF_CNT                            = 0x15
+       AF_COIP                           = 0x14
+       AF_DATAKIT                        = 0x9
+       AF_DECnet                         = 0xc
+       AF_DLI                            = 0xd
+       AF_E164                           = 0x1c
+       AF_ECMA                           = 0x8
+       AF_HYLINK                         = 0xf
+       AF_IEEE80211                      = 0x25
+       AF_IMPLINK                        = 0x3
+       AF_INET                           = 0x2
+       AF_INET6                          = 0x1e
+       AF_IPX                            = 0x17
+       AF_ISDN                           = 0x1c
+       AF_ISO                            = 0x7
+       AF_LAT                            = 0xe
+       AF_LINK                           = 0x12
+       AF_LOCAL                          = 0x1
+       AF_MAX                            = 0x28
+       AF_NATM                           = 0x1f
+       AF_NDRV                           = 0x1b
+       AF_NETBIOS                        = 0x21
+       AF_NS                             = 0x6
+       AF_OSI                            = 0x7
+       AF_PPP                            = 0x22
+       AF_PUP                            = 0x4
+       AF_RESERVED_36                    = 0x24
+       AF_ROUTE                          = 0x11
+       AF_SIP                            = 0x18
+       AF_SNA                            = 0xb
+       AF_SYSTEM                         = 0x20
+       AF_UNIX                           = 0x1
+       AF_UNSPEC                         = 0x0
+       AF_UTUN                           = 0x26
+       ALTWERASE                         = 0x200
+       B0                                = 0x0
+       B110                              = 0x6e
+       B115200                           = 0x1c200
+       B1200                             = 0x4b0
+       B134                              = 0x86
+       B14400                            = 0x3840
+       B150                              = 0x96
+       B1800                             = 0x708
+       B19200                            = 0x4b00
+       B200                              = 0xc8
+       B230400                           = 0x38400
+       B2400                             = 0x960
+       B28800                            = 0x7080
+       B300                              = 0x12c
+       B38400                            = 0x9600
+       B4800                             = 0x12c0
+       B50                               = 0x32
+       B57600                            = 0xe100
+       B600                              = 0x258
+       B7200                             = 0x1c20
+       B75                               = 0x4b
+       B76800                            = 0x12c00
+       B9600                             = 0x2580
+       BIOCFLUSH                         = 0x20004268
+       BIOCGBLEN                         = 0x40044266
+       BIOCGDLT                          = 0x4004426a
+       BIOCGDLTLIST                      = 0xc00c4279
+       BIOCGETIF                         = 0x4020426b
+       BIOCGHDRCMPLT                     = 0x40044274
+       BIOCGRSIG                         = 0x40044272
+       BIOCGRTIMEOUT                     = 0x4010426e
+       BIOCGSEESENT                      = 0x40044276
+       BIOCGSTATS                        = 0x4008426f
+       BIOCIMMEDIATE                     = 0x80044270
+       BIOCPROMISC                       = 0x20004269
+       BIOCSBLEN                         = 0xc0044266
+       BIOCSDLT                          = 0x80044278
+       BIOCSETF                          = 0x80104267
+       BIOCSETFNR                        = 0x8010427e
+       BIOCSETIF                         = 0x8020426c
+       BIOCSHDRCMPLT                     = 0x80044275
+       BIOCSRSIG                         = 0x80044273
+       BIOCSRTIMEOUT                     = 0x8010426d
+       BIOCSSEESENT                      = 0x80044277
+       BIOCVERSION                       = 0x40044271
+       BPF_A                             = 0x10
+       BPF_ABS                           = 0x20
+       BPF_ADD                           = 0x0
+       BPF_ALIGNMENT                     = 0x4
+       BPF_ALU                           = 0x4
+       BPF_AND                           = 0x50
+       BPF_B                             = 0x10
+       BPF_DIV                           = 0x30
+       BPF_H                             = 0x8
+       BPF_IMM                           = 0x0
+       BPF_IND                           = 0x40
+       BPF_JA                            = 0x0
+       BPF_JEQ                           = 0x10
+       BPF_JGE                           = 0x30
+       BPF_JGT                           = 0x20
+       BPF_JMP                           = 0x5
+       BPF_JSET                          = 0x40
+       BPF_K                             = 0x0
+       BPF_LD                            = 0x0
+       BPF_LDX                           = 0x1
+       BPF_LEN                           = 0x80
+       BPF_LSH                           = 0x60
+       BPF_MAJOR_VERSION                 = 0x1
+       BPF_MAXBUFSIZE                    = 0x80000
+       BPF_MAXINSNS                      = 0x200
+       BPF_MEM                           = 0x60
+       BPF_MEMWORDS                      = 0x10
+       BPF_MINBUFSIZE                    = 0x20
+       BPF_MINOR_VERSION                 = 0x1
+       BPF_MISC                          = 0x7
+       BPF_MSH                           = 0xa0
+       BPF_MUL                           = 0x20
+       BPF_NEG                           = 0x80
+       BPF_OR                            = 0x40
+       BPF_RELEASE                       = 0x30bb6
+       BPF_RET                           = 0x6
+       BPF_RSH                           = 0x70
+       BPF_ST                            = 0x2
+       BPF_STX                           = 0x3
+       BPF_SUB                           = 0x10
+       BPF_TAX                           = 0x0
+       BPF_TXA                           = 0x80
+       BPF_W                             = 0x0
+       BPF_X                             = 0x8
+       BRKINT                            = 0x2
+       BS0                               = 0x0
+       BS1                               = 0x8000
+       BSDLY                             = 0x8000
+       CFLUSH                            = 0xf
+       CLOCAL                            = 0x8000
+       CLOCK_MONOTONIC                   = 0x6
+       CLOCK_MONOTONIC_RAW               = 0x4
+       CLOCK_MONOTONIC_RAW_APPROX        = 0x5
+       CLOCK_PROCESS_CPUTIME_ID          = 0xc
+       CLOCK_REALTIME                    = 0x0
+       CLOCK_THREAD_CPUTIME_ID           = 0x10
+       CLOCK_UPTIME_RAW                  = 0x8
+       CLOCK_UPTIME_RAW_APPROX           = 0x9
+       CR0                               = 0x0
+       CR1                               = 0x1000
+       CR2                               = 0x2000
+       CR3                               = 0x3000
+       CRDLY                             = 0x3000
+       CREAD                             = 0x800
+       CRTSCTS                           = 0x30000
+       CS5                               = 0x0
+       CS6                               = 0x100
+       CS7                               = 0x200
+       CS8                               = 0x300
+       CSIZE                             = 0x300
+       CSTART                            = 0x11
+       CSTATUS                           = 0x14
+       CSTOP                             = 0x13
+       CSTOPB                            = 0x400
+       CSUSP                             = 0x1a
+       CTL_MAXNAME                       = 0xc
+       CTL_NET                           = 0x4
+       DLT_A429                          = 0xb8
+       DLT_A653_ICM                      = 0xb9
+       DLT_AIRONET_HEADER                = 0x78
+       DLT_AOS                           = 0xde
+       DLT_APPLE_IP_OVER_IEEE1394        = 0x8a
+       DLT_ARCNET                        = 0x7
+       DLT_ARCNET_LINUX                  = 0x81
+       DLT_ATM_CLIP                      = 0x13
+       DLT_ATM_RFC1483                   = 0xb
+       DLT_AURORA                        = 0x7e
+       DLT_AX25                          = 0x3
+       DLT_AX25_KISS                     = 0xca
+       DLT_BACNET_MS_TP                  = 0xa5
+       DLT_BLUETOOTH_HCI_H4              = 0xbb
+       DLT_BLUETOOTH_HCI_H4_WITH_PHDR    = 0xc9
+       DLT_CAN20B                        = 0xbe
+       DLT_CAN_SOCKETCAN                 = 0xe3
+       DLT_CHAOS                         = 0x5
+       DLT_CHDLC                         = 0x68
+       DLT_CISCO_IOS                     = 0x76
+       DLT_C_HDLC                        = 0x68
+       DLT_C_HDLC_WITH_DIR               = 0xcd
+       DLT_DBUS                          = 0xe7
+       DLT_DECT                          = 0xdd
+       DLT_DOCSIS                        = 0x8f
+       DLT_DVB_CI                        = 0xeb
+       DLT_ECONET                        = 0x73
+       DLT_EN10MB                        = 0x1
+       DLT_EN3MB                         = 0x2
+       DLT_ENC                           = 0x6d
+       DLT_ERF                           = 0xc5
+       DLT_ERF_ETH                       = 0xaf
+       DLT_ERF_POS                       = 0xb0
+       DLT_FC_2                          = 0xe0
+       DLT_FC_2_WITH_FRAME_DELIMS        = 0xe1
+       DLT_FDDI                          = 0xa
+       DLT_FLEXRAY                       = 0xd2
+       DLT_FRELAY                        = 0x6b
+       DLT_FRELAY_WITH_DIR               = 0xce
+       DLT_GCOM_SERIAL                   = 0xad
+       DLT_GCOM_T1E1                     = 0xac
+       DLT_GPF_F                         = 0xab
+       DLT_GPF_T                         = 0xaa
+       DLT_GPRS_LLC                      = 0xa9
+       DLT_GSMTAP_ABIS                   = 0xda
+       DLT_GSMTAP_UM                     = 0xd9
+       DLT_HHDLC                         = 0x79
+       DLT_IBM_SN                        = 0x92
+       DLT_IBM_SP                        = 0x91
+       DLT_IEEE802                       = 0x6
+       DLT_IEEE802_11                    = 0x69
+       DLT_IEEE802_11_RADIO              = 0x7f
+       DLT_IEEE802_11_RADIO_AVS          = 0xa3
+       DLT_IEEE802_15_4                  = 0xc3
+       DLT_IEEE802_15_4_LINUX            = 0xbf
+       DLT_IEEE802_15_4_NOFCS            = 0xe6
+       DLT_IEEE802_15_4_NONASK_PHY       = 0xd7
+       DLT_IEEE802_16_MAC_CPS            = 0xbc
+       DLT_IEEE802_16_MAC_CPS_RADIO      = 0xc1
+       DLT_IPFILTER                      = 0x74
+       DLT_IPMB                          = 0xc7
+       DLT_IPMB_LINUX                    = 0xd1
+       DLT_IPNET                         = 0xe2
+       DLT_IPOIB                         = 0xf2
+       DLT_IPV4                          = 0xe4
+       DLT_IPV6                          = 0xe5
+       DLT_IP_OVER_FC                    = 0x7a
+       DLT_JUNIPER_ATM1                  = 0x89
+       DLT_JUNIPER_ATM2                  = 0x87
+       DLT_JUNIPER_ATM_CEMIC             = 0xee
+       DLT_JUNIPER_CHDLC                 = 0xb5
+       DLT_JUNIPER_ES                    = 0x84
+       DLT_JUNIPER_ETHER                 = 0xb2
+       DLT_JUNIPER_FIBRECHANNEL          = 0xea
+       DLT_JUNIPER_FRELAY                = 0xb4
+       DLT_JUNIPER_GGSN                  = 0x85
+       DLT_JUNIPER_ISM                   = 0xc2
+       DLT_JUNIPER_MFR                   = 0x86
+       DLT_JUNIPER_MLFR                  = 0x83
+       DLT_JUNIPER_MLPPP                 = 0x82
+       DLT_JUNIPER_MONITOR               = 0xa4
+       DLT_JUNIPER_PIC_PEER              = 0xae
+       DLT_JUNIPER_PPP                   = 0xb3
+       DLT_JUNIPER_PPPOE                 = 0xa7
+       DLT_JUNIPER_PPPOE_ATM             = 0xa8
+       DLT_JUNIPER_SERVICES              = 0x88
+       DLT_JUNIPER_SRX_E2E               = 0xe9
+       DLT_JUNIPER_ST                    = 0xc8
+       DLT_JUNIPER_VP                    = 0xb7
+       DLT_JUNIPER_VS                    = 0xe8
+       DLT_LAPB_WITH_DIR                 = 0xcf
+       DLT_LAPD                          = 0xcb
+       DLT_LIN                           = 0xd4
+       DLT_LINUX_EVDEV                   = 0xd8
+       DLT_LINUX_IRDA                    = 0x90
+       DLT_LINUX_LAPD                    = 0xb1
+       DLT_LINUX_PPP_WITHDIRECTION       = 0xa6
+       DLT_LINUX_SLL                     = 0x71
+       DLT_LOOP                          = 0x6c
+       DLT_LTALK                         = 0x72
+       DLT_MATCHING_MAX                  = 0xf5
+       DLT_MATCHING_MIN                  = 0x68
+       DLT_MFR                           = 0xb6
+       DLT_MOST                          = 0xd3
+       DLT_MPEG_2_TS                     = 0xf3
+       DLT_MPLS                          = 0xdb
+       DLT_MTP2                          = 0x8c
+       DLT_MTP2_WITH_PHDR                = 0x8b
+       DLT_MTP3                          = 0x8d
+       DLT_MUX27010                      = 0xec
+       DLT_NETANALYZER                   = 0xf0
+       DLT_NETANALYZER_TRANSPARENT       = 0xf1
+       DLT_NFC_LLCP                      = 0xf5
+       DLT_NFLOG                         = 0xef
+       DLT_NG40                          = 0xf4
+       DLT_NULL                          = 0x0
+       DLT_PCI_EXP                       = 0x7d
+       DLT_PFLOG                         = 0x75
+       DLT_PFSYNC                        = 0x12
+       DLT_PPI                           = 0xc0
+       DLT_PPP                           = 0x9
+       DLT_PPP_BSDOS                     = 0x10
+       DLT_PPP_ETHER                     = 0x33
+       DLT_PPP_PPPD                      = 0xa6
+       DLT_PPP_SERIAL                    = 0x32
+       DLT_PPP_WITH_DIR                  = 0xcc
+       DLT_PPP_WITH_DIRECTION            = 0xa6
+       DLT_PRISM_HEADER                  = 0x77
+       DLT_PRONET                        = 0x4
+       DLT_RAIF1                         = 0xc6
+       DLT_RAW                           = 0xc
+       DLT_RIO                           = 0x7c
+       DLT_SCCP                          = 0x8e
+       DLT_SITA                          = 0xc4
+       DLT_SLIP                          = 0x8
+       DLT_SLIP_BSDOS                    = 0xf
+       DLT_STANAG_5066_D_PDU             = 0xed
+       DLT_SUNATM                        = 0x7b
+       DLT_SYMANTEC_FIREWALL             = 0x63
+       DLT_TZSP                          = 0x80
+       DLT_USB                           = 0xba
+       DLT_USB_LINUX                     = 0xbd
+       DLT_USB_LINUX_MMAPPED             = 0xdc
+       DLT_USER0                         = 0x93
+       DLT_USER1                         = 0x94
+       DLT_USER10                        = 0x9d
+       DLT_USER11                        = 0x9e
+       DLT_USER12                        = 0x9f
+       DLT_USER13                        = 0xa0
+       DLT_USER14                        = 0xa1
+       DLT_USER15                        = 0xa2
+       DLT_USER2                         = 0x95
+       DLT_USER3                         = 0x96
+       DLT_USER4                         = 0x97
+       DLT_USER5                         = 0x98
+       DLT_USER6                         = 0x99
+       DLT_USER7                         = 0x9a
+       DLT_USER8                         = 0x9b
+       DLT_USER9                         = 0x9c
+       DLT_WIHART                        = 0xdf
+       DLT_X2E_SERIAL                    = 0xd5
+       DLT_X2E_XORAYA                    = 0xd6
+       DT_BLK                            = 0x6
+       DT_CHR                            = 0x2
+       DT_DIR                            = 0x4
+       DT_FIFO                           = 0x1
+       DT_LNK                            = 0xa
+       DT_REG                            = 0x8
+       DT_SOCK                           = 0xc
+       DT_UNKNOWN                        = 0x0
+       DT_WHT                            = 0xe
+       ECHO                              = 0x8
+       ECHOCTL                           = 0x40
+       ECHOE                             = 0x2
+       ECHOK                             = 0x4
+       ECHOKE                            = 0x1
+       ECHONL                            = 0x10
+       ECHOPRT                           = 0x20
+       EVFILT_AIO                        = -0x3
+       EVFILT_EXCEPT                     = -0xf
+       EVFILT_FS                         = -0x9
+       EVFILT_MACHPORT                   = -0x8
+       EVFILT_PROC                       = -0x5
+       EVFILT_READ                       = -0x1
+       EVFILT_SIGNAL                     = -0x6
+       EVFILT_SYSCOUNT                   = 0xf
+       EVFILT_THREADMARKER               = 0xf
+       EVFILT_TIMER                      = -0x7
+       EVFILT_USER                       = -0xa
+       EVFILT_VM                         = -0xc
+       EVFILT_VNODE                      = -0x4
+       EVFILT_WRITE                      = -0x2
+       EV_ADD                            = 0x1
+       EV_CLEAR                          = 0x20
+       EV_DELETE                         = 0x2
+       EV_DISABLE                        = 0x8
+       EV_DISPATCH                       = 0x80
+       EV_DISPATCH2                      = 0x180
+       EV_ENABLE                         = 0x4
+       EV_EOF                            = 0x8000
+       EV_ERROR                          = 0x4000
+       EV_FLAG0                          = 0x1000
+       EV_FLAG1                          = 0x2000
+       EV_ONESHOT                        = 0x10
+       EV_OOBAND                         = 0x2000
+       EV_POLL                           = 0x1000
+       EV_RECEIPT                        = 0x40
+       EV_SYSFLAGS                       = 0xf000
+       EV_UDATA_SPECIFIC                 = 0x100
+       EV_VANISHED                       = 0x200
+       EXTA                              = 0x4b00
+       EXTB                              = 0x9600
+       EXTPROC                           = 0x800
+       FD_CLOEXEC                        = 0x1
+       FD_SETSIZE                        = 0x400
+       FF0                               = 0x0
+       FF1                               = 0x4000
+       FFDLY                             = 0x4000
+       FLUSHO                            = 0x800000
+       F_ADDFILESIGS                     = 0x3d
+       F_ADDFILESIGS_FOR_DYLD_SIM        = 0x53
+       F_ADDFILESIGS_RETURN              = 0x61
+       F_ADDSIGS                         = 0x3b
+       F_ALLOCATEALL                     = 0x4
+       F_ALLOCATECONTIG                  = 0x2
+       F_BARRIERFSYNC                    = 0x55
+       F_CHECK_LV                        = 0x62
+       F_CHKCLEAN                        = 0x29
+       F_DUPFD                           = 0x0
+       F_DUPFD_CLOEXEC                   = 0x43
+       F_FINDSIGS                        = 0x4e
+       F_FLUSH_DATA                      = 0x28
+       F_FREEZE_FS                       = 0x35
+       F_FULLFSYNC                       = 0x33
+       F_GETCODEDIR                      = 0x48
+       F_GETFD                           = 0x1
+       F_GETFL                           = 0x3
+       F_GETLK                           = 0x7
+       F_GETLKPID                        = 0x42
+       F_GETNOSIGPIPE                    = 0x4a
+       F_GETOWN                          = 0x5
+       F_GETPATH                         = 0x32
+       F_GETPATH_MTMINFO                 = 0x47
+       F_GETPROTECTIONCLASS              = 0x3f
+       F_GETPROTECTIONLEVEL              = 0x4d
+       F_GLOBAL_NOCACHE                  = 0x37
+       F_LOG2PHYS                        = 0x31
+       F_LOG2PHYS_EXT                    = 0x41
+       F_NOCACHE                         = 0x30
+       F_NODIRECT                        = 0x3e
+       F_OK                              = 0x0
+       F_PATHPKG_CHECK                   = 0x34
+       F_PEOFPOSMODE                     = 0x3
+       F_PREALLOCATE                     = 0x2a
+       F_RDADVISE                        = 0x2c
+       F_RDAHEAD                         = 0x2d
+       F_RDLCK                           = 0x1
+       F_SETBACKINGSTORE                 = 0x46
+       F_SETFD                           = 0x2
+       F_SETFL                           = 0x4
+       F_SETLK                           = 0x8
+       F_SETLKW                          = 0x9
+       F_SETLKWTIMEOUT                   = 0xa
+       F_SETNOSIGPIPE                    = 0x49
+       F_SETOWN                          = 0x6
+       F_SETPROTECTIONCLASS              = 0x40
+       F_SETSIZE                         = 0x2b
+       F_SINGLE_WRITER                   = 0x4c
+       F_THAW_FS                         = 0x36
+       F_TRANSCODEKEY                    = 0x4b
+       F_UNLCK                           = 0x2
+       F_VOLPOSMODE                      = 0x4
+       F_WRLCK                           = 0x3
+       HUPCL                             = 0x4000
+       ICANON                            = 0x100
+       ICMP6_FILTER                      = 0x12
+       ICRNL                             = 0x100
+       IEXTEN                            = 0x400
+       IFF_ALLMULTI                      = 0x200
+       IFF_ALTPHYS                       = 0x4000
+       IFF_BROADCAST                     = 0x2
+       IFF_DEBUG                         = 0x4
+       IFF_LINK0                         = 0x1000
+       IFF_LINK1                         = 0x2000
+       IFF_LINK2                         = 0x4000
+       IFF_LOOPBACK                      = 0x8
+       IFF_MULTICAST                     = 0x8000
+       IFF_NOARP                         = 0x80
+       IFF_NOTRAILERS                    = 0x20
+       IFF_OACTIVE                       = 0x400
+       IFF_POINTOPOINT                   = 0x10
+       IFF_PROMISC                       = 0x100
+       IFF_RUNNING                       = 0x40
+       IFF_SIMPLEX                       = 0x800
+       IFF_UP                            = 0x1
+       IFNAMSIZ                          = 0x10
+       IFT_1822                          = 0x2
+       IFT_AAL5                          = 0x31
+       IFT_ARCNET                        = 0x23
+       IFT_ARCNETPLUS                    = 0x24
+       IFT_ATM                           = 0x25
+       IFT_BRIDGE                        = 0xd1
+       IFT_CARP                          = 0xf8
+       IFT_CELLULAR                      = 0xff
+       IFT_CEPT                          = 0x13
+       IFT_DS3                           = 0x1e
+       IFT_ENC                           = 0xf4
+       IFT_EON                           = 0x19
+       IFT_ETHER                         = 0x6
+       IFT_FAITH                         = 0x38
+       IFT_FDDI                          = 0xf
+       IFT_FRELAY                        = 0x20
+       IFT_FRELAYDCE                     = 0x2c
+       IFT_GIF                           = 0x37
+       IFT_HDH1822                       = 0x3
+       IFT_HIPPI                         = 0x2f
+       IFT_HSSI                          = 0x2e
+       IFT_HY                            = 0xe
+       IFT_IEEE1394                      = 0x90
+       IFT_IEEE8023ADLAG                 = 0x88
+       IFT_ISDNBASIC                     = 0x14
+       IFT_ISDNPRIMARY                   = 0x15
+       IFT_ISO88022LLC                   = 0x29
+       IFT_ISO88023                      = 0x7
+       IFT_ISO88024                      = 0x8
+       IFT_ISO88025                      = 0x9
+       IFT_ISO88026                      = 0xa
+       IFT_L2VLAN                        = 0x87
+       IFT_LAPB                          = 0x10
+       IFT_LOCALTALK                     = 0x2a
+       IFT_LOOP                          = 0x18
+       IFT_MIOX25                        = 0x26
+       IFT_MODEM                         = 0x30
+       IFT_NSIP                          = 0x1b
+       IFT_OTHER                         = 0x1
+       IFT_P10                           = 0xc
+       IFT_P80                           = 0xd
+       IFT_PARA                          = 0x22
+       IFT_PDP                           = 0xff
+       IFT_PFLOG                         = 0xf5
+       IFT_PFSYNC                        = 0xf6
+       IFT_PKTAP                         = 0xfe
+       IFT_PPP                           = 0x17
+       IFT_PROPMUX                       = 0x36
+       IFT_PROPVIRTUAL                   = 0x35
+       IFT_PTPSERIAL                     = 0x16
+       IFT_RS232                         = 0x21
+       IFT_SDLC                          = 0x11
+       IFT_SIP                           = 0x1f
+       IFT_SLIP                          = 0x1c
+       IFT_SMDSDXI                       = 0x2b
+       IFT_SMDSICIP                      = 0x34
+       IFT_SONET                         = 0x27
+       IFT_SONETPATH                     = 0x32
+       IFT_SONETVT                       = 0x33
+       IFT_STARLAN                       = 0xb
+       IFT_STF                           = 0x39
+       IFT_T1                            = 0x12
+       IFT_ULTRA                         = 0x1d
+       IFT_V35                           = 0x2d
+       IFT_X25                           = 0x5
+       IFT_X25DDN                        = 0x4
+       IFT_X25PLE                        = 0x28
+       IFT_XETHER                        = 0x1a
+       IGNBRK                            = 0x1
+       IGNCR                             = 0x80
+       IGNPAR                            = 0x4
+       IMAXBEL                           = 0x2000
+       INLCR                             = 0x40
+       INPCK                             = 0x10
+       IN_CLASSA_HOST                    = 0xffffff
+       IN_CLASSA_MAX                     = 0x80
+       IN_CLASSA_NET                     = 0xff000000
+       IN_CLASSA_NSHIFT                  = 0x18
+       IN_CLASSB_HOST                    = 0xffff
+       IN_CLASSB_MAX                     = 0x10000
+       IN_CLASSB_NET                     = 0xffff0000
+       IN_CLASSB_NSHIFT                  = 0x10
+       IN_CLASSC_HOST                    = 0xff
+       IN_CLASSC_NET                     = 0xffffff00
+       IN_CLASSC_NSHIFT                  = 0x8
+       IN_CLASSD_HOST                    = 0xfffffff
+       IN_CLASSD_NET                     = 0xf0000000
+       IN_CLASSD_NSHIFT                  = 0x1c
+       IN_LINKLOCALNETNUM                = 0xa9fe0000
+       IN_LOOPBACKNET                    = 0x7f
+       IPPROTO_3PC                       = 0x22
+       IPPROTO_ADFS                      = 0x44
+       IPPROTO_AH                        = 0x33
+       IPPROTO_AHIP                      = 0x3d
+       IPPROTO_APES                      = 0x63
+       IPPROTO_ARGUS                     = 0xd
+       IPPROTO_AX25                      = 0x5d
+       IPPROTO_BHA                       = 0x31
+       IPPROTO_BLT                       = 0x1e
+       IPPROTO_BRSATMON                  = 0x4c
+       IPPROTO_CFTP                      = 0x3e
+       IPPROTO_CHAOS                     = 0x10
+       IPPROTO_CMTP                      = 0x26
+       IPPROTO_CPHB                      = 0x49
+       IPPROTO_CPNX                      = 0x48
+       IPPROTO_DDP                       = 0x25
+       IPPROTO_DGP                       = 0x56
+       IPPROTO_DIVERT                    = 0xfe
+       IPPROTO_DONE                      = 0x101
+       IPPROTO_DSTOPTS                   = 0x3c
+       IPPROTO_EGP                       = 0x8
+       IPPROTO_EMCON                     = 0xe
+       IPPROTO_ENCAP                     = 0x62
+       IPPROTO_EON                       = 0x50
+       IPPROTO_ESP                       = 0x32
+       IPPROTO_ETHERIP                   = 0x61
+       IPPROTO_FRAGMENT                  = 0x2c
+       IPPROTO_GGP                       = 0x3
+       IPPROTO_GMTP                      = 0x64
+       IPPROTO_GRE                       = 0x2f
+       IPPROTO_HELLO                     = 0x3f
+       IPPROTO_HMP                       = 0x14
+       IPPROTO_HOPOPTS                   = 0x0
+       IPPROTO_ICMP                      = 0x1
+       IPPROTO_ICMPV6                    = 0x3a
+       IPPROTO_IDP                       = 0x16
+       IPPROTO_IDPR                      = 0x23
+       IPPROTO_IDRP                      = 0x2d
+       IPPROTO_IGMP                      = 0x2
+       IPPROTO_IGP                       = 0x55
+       IPPROTO_IGRP                      = 0x58
+       IPPROTO_IL                        = 0x28
+       IPPROTO_INLSP                     = 0x34
+       IPPROTO_INP                       = 0x20
+       IPPROTO_IP                        = 0x0
+       IPPROTO_IPCOMP                    = 0x6c
+       IPPROTO_IPCV                      = 0x47
+       IPPROTO_IPEIP                     = 0x5e
+       IPPROTO_IPIP                      = 0x4
+       IPPROTO_IPPC                      = 0x43
+       IPPROTO_IPV4                      = 0x4
+       IPPROTO_IPV6                      = 0x29
+       IPPROTO_IRTP                      = 0x1c
+       IPPROTO_KRYPTOLAN                 = 0x41
+       IPPROTO_LARP                      = 0x5b
+       IPPROTO_LEAF1                     = 0x19
+       IPPROTO_LEAF2                     = 0x1a
+       IPPROTO_MAX                       = 0x100
+       IPPROTO_MAXID                     = 0x34
+       IPPROTO_MEAS                      = 0x13
+       IPPROTO_MHRP                      = 0x30
+       IPPROTO_MICP                      = 0x5f
+       IPPROTO_MTP                       = 0x5c
+       IPPROTO_MUX                       = 0x12
+       IPPROTO_ND                        = 0x4d
+       IPPROTO_NHRP                      = 0x36
+       IPPROTO_NONE                      = 0x3b
+       IPPROTO_NSP                       = 0x1f
+       IPPROTO_NVPII                     = 0xb
+       IPPROTO_OSPFIGP                   = 0x59
+       IPPROTO_PGM                       = 0x71
+       IPPROTO_PIGP                      = 0x9
+       IPPROTO_PIM                       = 0x67
+       IPPROTO_PRM                       = 0x15
+       IPPROTO_PUP                       = 0xc
+       IPPROTO_PVP                       = 0x4b
+       IPPROTO_RAW                       = 0xff
+       IPPROTO_RCCMON                    = 0xa
+       IPPROTO_RDP                       = 0x1b
+       IPPROTO_ROUTING                   = 0x2b
+       IPPROTO_RSVP                      = 0x2e
+       IPPROTO_RVD                       = 0x42
+       IPPROTO_SATEXPAK                  = 0x40
+       IPPROTO_SATMON                    = 0x45
+       IPPROTO_SCCSP                     = 0x60
+       IPPROTO_SCTP                      = 0x84
+       IPPROTO_SDRP                      = 0x2a
+       IPPROTO_SEP                       = 0x21
+       IPPROTO_SRPC                      = 0x5a
+       IPPROTO_ST                        = 0x7
+       IPPROTO_SVMTP                     = 0x52
+       IPPROTO_SWIPE                     = 0x35
+       IPPROTO_TCF                       = 0x57
+       IPPROTO_TCP                       = 0x6
+       IPPROTO_TP                        = 0x1d
+       IPPROTO_TPXX                      = 0x27
+       IPPROTO_TRUNK1                    = 0x17
+       IPPROTO_TRUNK2                    = 0x18
+       IPPROTO_TTP                       = 0x54
+       IPPROTO_UDP                       = 0x11
+       IPPROTO_VINES                     = 0x53
+       IPPROTO_VISA                      = 0x46
+       IPPROTO_VMTP                      = 0x51
+       IPPROTO_WBEXPAK                   = 0x4f
+       IPPROTO_WBMON                     = 0x4e
+       IPPROTO_WSN                       = 0x4a
+       IPPROTO_XNET                      = 0xf
+       IPPROTO_XTP                       = 0x24
+       IPV6_2292DSTOPTS                  = 0x17
+       IPV6_2292HOPLIMIT                 = 0x14
+       IPV6_2292HOPOPTS                  = 0x16
+       IPV6_2292NEXTHOP                  = 0x15
+       IPV6_2292PKTINFO                  = 0x13
+       IPV6_2292PKTOPTIONS               = 0x19
+       IPV6_2292RTHDR                    = 0x18
+       IPV6_BINDV6ONLY                   = 0x1b
+       IPV6_BOUND_IF                     = 0x7d
+       IPV6_CHECKSUM                     = 0x1a
+       IPV6_DEFAULT_MULTICAST_HOPS       = 0x1
+       IPV6_DEFAULT_MULTICAST_LOOP       = 0x1
+       IPV6_DEFHLIM                      = 0x40
+       IPV6_FAITH                        = 0x1d
+       IPV6_FLOWINFO_MASK                = 0xffffff0f
+       IPV6_FLOWLABEL_MASK               = 0xffff0f00
+       IPV6_FRAGTTL                      = 0x3c
+       IPV6_FW_ADD                       = 0x1e
+       IPV6_FW_DEL                       = 0x1f
+       IPV6_FW_FLUSH                     = 0x20
+       IPV6_FW_GET                       = 0x22
+       IPV6_FW_ZERO                      = 0x21
+       IPV6_HLIMDEC                      = 0x1
+       IPV6_IPSEC_POLICY                 = 0x1c
+       IPV6_JOIN_GROUP                   = 0xc
+       IPV6_LEAVE_GROUP                  = 0xd
+       IPV6_MAXHLIM                      = 0xff
+       IPV6_MAXOPTHDR                    = 0x800
+       IPV6_MAXPACKET                    = 0xffff
+       IPV6_MAX_GROUP_SRC_FILTER         = 0x200
+       IPV6_MAX_MEMBERSHIPS              = 0xfff
+       IPV6_MAX_SOCK_SRC_FILTER          = 0x80
+       IPV6_MIN_MEMBERSHIPS              = 0x1f
+       IPV6_MMTU                         = 0x500
+       IPV6_MULTICAST_HOPS               = 0xa
+       IPV6_MULTICAST_IF                 = 0x9
+       IPV6_MULTICAST_LOOP               = 0xb
+       IPV6_PORTRANGE                    = 0xe
+       IPV6_PORTRANGE_DEFAULT            = 0x0
+       IPV6_PORTRANGE_HIGH               = 0x1
+       IPV6_PORTRANGE_LOW                = 0x2
+       IPV6_RECVTCLASS                   = 0x23
+       IPV6_RTHDR_LOOSE                  = 0x0
+       IPV6_RTHDR_STRICT                 = 0x1
+       IPV6_RTHDR_TYPE_0                 = 0x0
+       IPV6_SOCKOPT_RESERVED1            = 0x3
+       IPV6_TCLASS                       = 0x24
+       IPV6_UNICAST_HOPS                 = 0x4
+       IPV6_V6ONLY                       = 0x1b
+       IPV6_VERSION                      = 0x60
+       IPV6_VERSION_MASK                 = 0xf0
+       IP_ADD_MEMBERSHIP                 = 0xc
+       IP_ADD_SOURCE_MEMBERSHIP          = 0x46
+       IP_BLOCK_SOURCE                   = 0x48
+       IP_BOUND_IF                       = 0x19
+       IP_DEFAULT_MULTICAST_LOOP         = 0x1
+       IP_DEFAULT_MULTICAST_TTL          = 0x1
+       IP_DF                             = 0x4000
+       IP_DROP_MEMBERSHIP                = 0xd
+       IP_DROP_SOURCE_MEMBERSHIP         = 0x47
+       IP_DUMMYNET_CONFIGURE             = 0x3c
+       IP_DUMMYNET_DEL                   = 0x3d
+       IP_DUMMYNET_FLUSH                 = 0x3e
+       IP_DUMMYNET_GET                   = 0x40
+       IP_FAITH                          = 0x16
+       IP_FW_ADD                         = 0x28
+       IP_FW_DEL                         = 0x29
+       IP_FW_FLUSH                       = 0x2a
+       IP_FW_GET                         = 0x2c
+       IP_FW_RESETLOG                    = 0x2d
+       IP_FW_ZERO                        = 0x2b
+       IP_HDRINCL                        = 0x2
+       IP_IPSEC_POLICY                   = 0x15
+       IP_MAXPACKET                      = 0xffff
+       IP_MAX_GROUP_SRC_FILTER           = 0x200
+       IP_MAX_MEMBERSHIPS                = 0xfff
+       IP_MAX_SOCK_MUTE_FILTER           = 0x80
+       IP_MAX_SOCK_SRC_FILTER            = 0x80
+       IP_MF                             = 0x2000
+       IP_MIN_MEMBERSHIPS                = 0x1f
+       IP_MSFILTER                       = 0x4a
+       IP_MSS                            = 0x240
+       IP_MULTICAST_IF                   = 0x9
+       IP_MULTICAST_IFINDEX              = 0x42
+       IP_MULTICAST_LOOP                 = 0xb
+       IP_MULTICAST_TTL                  = 0xa
+       IP_MULTICAST_VIF                  = 0xe
+       IP_NAT__XXX                       = 0x37
+       IP_OFFMASK                        = 0x1fff
+       IP_OLD_FW_ADD                     = 0x32
+       IP_OLD_FW_DEL                     = 0x33
+       IP_OLD_FW_FLUSH                   = 0x34
+       IP_OLD_FW_GET                     = 0x36
+       IP_OLD_FW_RESETLOG                = 0x38
+       IP_OLD_FW_ZERO                    = 0x35
+       IP_OPTIONS                        = 0x1
+       IP_PKTINFO                        = 0x1a
+       IP_PORTRANGE                      = 0x13
+       IP_PORTRANGE_DEFAULT              = 0x0
+       IP_PORTRANGE_HIGH                 = 0x1
+       IP_PORTRANGE_LOW                  = 0x2
+       IP_RECVDSTADDR                    = 0x7
+       IP_RECVIF                         = 0x14
+       IP_RECVOPTS                       = 0x5
+       IP_RECVPKTINFO                    = 0x1a
+       IP_RECVRETOPTS                    = 0x6
+       IP_RECVTTL                        = 0x18
+       IP_RETOPTS                        = 0x8
+       IP_RF                             = 0x8000
+       IP_RSVP_OFF                       = 0x10
+       IP_RSVP_ON                        = 0xf
+       IP_RSVP_VIF_OFF                   = 0x12
+       IP_RSVP_VIF_ON                    = 0x11
+       IP_STRIPHDR                       = 0x17
+       IP_TOS                            = 0x3
+       IP_TRAFFIC_MGT_BACKGROUND         = 0x41
+       IP_TTL                            = 0x4
+       IP_UNBLOCK_SOURCE                 = 0x49
+       ISIG                              = 0x80
+       ISTRIP                            = 0x20
+       IUTF8                             = 0x4000
+       IXANY                             = 0x800
+       IXOFF                             = 0x400
+       IXON                              = 0x200
+       LOCK_EX                           = 0x2
+       LOCK_NB                           = 0x4
+       LOCK_SH                           = 0x1
+       LOCK_UN                           = 0x8
+       MADV_CAN_REUSE                    = 0x9
+       MADV_DONTNEED                     = 0x4
+       MADV_FREE                         = 0x5
+       MADV_FREE_REUSABLE                = 0x7
+       MADV_FREE_REUSE                   = 0x8
+       MADV_NORMAL                       = 0x0
+       MADV_PAGEOUT                      = 0xa
+       MADV_RANDOM                       = 0x1
+       MADV_SEQUENTIAL                   = 0x2
+       MADV_WILLNEED                     = 0x3
+       MADV_ZERO_WIRED_PAGES             = 0x6
+       MAP_ANON                          = 0x1000
+       MAP_ANONYMOUS                     = 0x1000
+       MAP_COPY                          = 0x2
+       MAP_FILE                          = 0x0
+       MAP_FIXED                         = 0x10
+       MAP_HASSEMAPHORE                  = 0x200
+       MAP_JIT                           = 0x800
+       MAP_NOCACHE                       = 0x400
+       MAP_NOEXTEND                      = 0x100
+       MAP_NORESERVE                     = 0x40
+       MAP_PRIVATE                       = 0x2
+       MAP_RENAME                        = 0x20
+       MAP_RESERVED0080                  = 0x80
+       MAP_RESILIENT_CODESIGN            = 0x2000
+       MAP_RESILIENT_MEDIA               = 0x4000
+       MAP_SHARED                        = 0x1
+       MCL_CURRENT                       = 0x1
+       MCL_FUTURE                        = 0x2
+       MNT_ASYNC                         = 0x40
+       MNT_AUTOMOUNTED                   = 0x400000
+       MNT_CMDFLAGS                      = 0xf0000
+       MNT_CPROTECT                      = 0x80
+       MNT_DEFWRITE                      = 0x2000000
+       MNT_DONTBROWSE                    = 0x100000
+       MNT_DOVOLFS                       = 0x8000
+       MNT_DWAIT                         = 0x4
+       MNT_EXPORTED                      = 0x100
+       MNT_FORCE                         = 0x80000
+       MNT_IGNORE_OWNERSHIP              = 0x200000
+       MNT_JOURNALED                     = 0x800000
+       MNT_LOCAL                         = 0x1000
+       MNT_MULTILABEL                    = 0x4000000
+       MNT_NOATIME                       = 0x10000000
+       MNT_NOBLOCK                       = 0x20000
+       MNT_NODEV                         = 0x10
+       MNT_NOEXEC                        = 0x4
+       MNT_NOSUID                        = 0x8
+       MNT_NOUSERXATTR                   = 0x1000000
+       MNT_NOWAIT                        = 0x2
+       MNT_QUARANTINE                    = 0x400
+       MNT_QUOTA                         = 0x2000
+       MNT_RDONLY                        = 0x1
+       MNT_RELOAD                        = 0x40000
+       MNT_ROOTFS                        = 0x4000
+       MNT_SYNCHRONOUS                   = 0x2
+       MNT_UNION                         = 0x20
+       MNT_UNKNOWNPERMISSIONS            = 0x200000
+       MNT_UPDATE                        = 0x10000
+       MNT_VISFLAGMASK                   = 0x17f0f5ff
+       MNT_WAIT                          = 0x1
+       MSG_CTRUNC                        = 0x20
+       MSG_DONTROUTE                     = 0x4
+       MSG_DONTWAIT                      = 0x80
+       MSG_EOF                           = 0x100
+       MSG_EOR                           = 0x8
+       MSG_FLUSH                         = 0x400
+       MSG_HAVEMORE                      = 0x2000
+       MSG_HOLD                          = 0x800
+       MSG_NEEDSA                        = 0x10000
+       MSG_OOB                           = 0x1
+       MSG_PEEK                          = 0x2
+       MSG_RCVMORE                       = 0x4000
+       MSG_SEND                          = 0x1000
+       MSG_TRUNC                         = 0x10
+       MSG_WAITALL                       = 0x40
+       MSG_WAITSTREAM                    = 0x200
+       MS_ASYNC                          = 0x1
+       MS_DEACTIVATE                     = 0x8
+       MS_INVALIDATE                     = 0x2
+       MS_KILLPAGES                      = 0x4
+       MS_SYNC                           = 0x10
+       NAME_MAX                          = 0xff
+       NET_RT_DUMP                       = 0x1
+       NET_RT_DUMP2                      = 0x7
+       NET_RT_FLAGS                      = 0x2
+       NET_RT_IFLIST                     = 0x3
+       NET_RT_IFLIST2                    = 0x6
+       NET_RT_MAXID                      = 0xa
+       NET_RT_STAT                       = 0x4
+       NET_RT_TRASH                      = 0x5
+       NL0                               = 0x0
+       NL1                               = 0x100
+       NL2                               = 0x200
+       NL3                               = 0x300
+       NLDLY                             = 0x300
+       NOFLSH                            = 0x80000000
+       NOKERNINFO                        = 0x2000000
+       NOTE_ABSOLUTE                     = 0x8
+       NOTE_ATTRIB                       = 0x8
+       NOTE_BACKGROUND                   = 0x40
+       NOTE_CHILD                        = 0x4
+       NOTE_CRITICAL                     = 0x20
+       NOTE_DELETE                       = 0x1
+       NOTE_EXEC                         = 0x20000000
+       NOTE_EXIT                         = 0x80000000
+       NOTE_EXITSTATUS                   = 0x4000000
+       NOTE_EXIT_CSERROR                 = 0x40000
+       NOTE_EXIT_DECRYPTFAIL             = 0x10000
+       NOTE_EXIT_DETAIL                  = 0x2000000
+       NOTE_EXIT_DETAIL_MASK             = 0x70000
+       NOTE_EXIT_MEMORY                  = 0x20000
+       NOTE_EXIT_REPARENTED              = 0x80000
+       NOTE_EXTEND                       = 0x4
+       NOTE_FFAND                        = 0x40000000
+       NOTE_FFCOPY                       = 0xc0000000
+       NOTE_FFCTRLMASK                   = 0xc0000000
+       NOTE_FFLAGSMASK                   = 0xffffff
+       NOTE_FFNOP                        = 0x0
+       NOTE_FFOR                         = 0x80000000
+       NOTE_FORK                         = 0x40000000
+       NOTE_FUNLOCK                      = 0x100
+       NOTE_LEEWAY                       = 0x10
+       NOTE_LINK                         = 0x10
+       NOTE_LOWAT                        = 0x1
+       NOTE_MACH_CONTINUOUS_TIME         = 0x80
+       NOTE_NONE                         = 0x80
+       NOTE_NSECONDS                     = 0x4
+       NOTE_OOB                          = 0x2
+       NOTE_PCTRLMASK                    = -0x100000
+       NOTE_PDATAMASK                    = 0xfffff
+       NOTE_REAP                         = 0x10000000
+       NOTE_RENAME                       = 0x20
+       NOTE_REVOKE                       = 0x40
+       NOTE_SECONDS                      = 0x1
+       NOTE_SIGNAL                       = 0x8000000
+       NOTE_TRACK                        = 0x1
+       NOTE_TRACKERR                     = 0x2
+       NOTE_TRIGGER                      = 0x1000000
+       NOTE_USECONDS                     = 0x2
+       NOTE_VM_ERROR                     = 0x10000000
+       NOTE_VM_PRESSURE                  = 0x80000000
+       NOTE_VM_PRESSURE_SUDDEN_TERMINATE = 0x20000000
+       NOTE_VM_PRESSURE_TERMINATE        = 0x40000000
+       NOTE_WRITE                        = 0x2
+       OCRNL                             = 0x10
+       OFDEL                             = 0x20000
+       OFILL                             = 0x80
+       ONLCR                             = 0x2
+       ONLRET                            = 0x40
+       ONOCR                             = 0x20
+       ONOEOT                            = 0x8
+       OPOST                             = 0x1
+       OXTABS                            = 0x4
+       O_ACCMODE                         = 0x3
+       O_ALERT                           = 0x20000000
+       O_APPEND                          = 0x8
+       O_ASYNC                           = 0x40
+       O_CLOEXEC                         = 0x1000000
+       O_CREAT                           = 0x200
+       O_DIRECTORY                       = 0x100000
+       O_DP_GETRAWENCRYPTED              = 0x1
+       O_DP_GETRAWUNENCRYPTED            = 0x2
+       O_DSYNC                           = 0x400000
+       O_EVTONLY                         = 0x8000
+       O_EXCL                            = 0x800
+       O_EXLOCK                          = 0x20
+       O_FSYNC                           = 0x80
+       O_NDELAY                          = 0x4
+       O_NOCTTY                          = 0x20000
+       O_NOFOLLOW                        = 0x100
+       O_NONBLOCK                        = 0x4
+       O_POPUP                           = 0x80000000
+       O_RDONLY                          = 0x0
+       O_RDWR                            = 0x2
+       O_SHLOCK                          = 0x10
+       O_SYMLINK                         = 0x200000
+       O_SYNC                            = 0x80
+       O_TRUNC                           = 0x400
+       O_WRONLY                          = 0x1
+       PARENB                            = 0x1000
+       PARMRK                            = 0x8
+       PARODD                            = 0x2000
+       PENDIN                            = 0x20000000
+       PRIO_PGRP                         = 0x1
+       PRIO_PROCESS                      = 0x0
+       PRIO_USER                         = 0x2
+       PROT_EXEC                         = 0x4
+       PROT_NONE                         = 0x0
+       PROT_READ                         = 0x1
+       PROT_WRITE                        = 0x2
+       PT_ATTACH                         = 0xa
+       PT_ATTACHEXC                      = 0xe
+       PT_CONTINUE                       = 0x7
+       PT_DENY_ATTACH                    = 0x1f
+       PT_DETACH                         = 0xb
+       PT_FIRSTMACH                      = 0x20
+       PT_FORCEQUOTA                     = 0x1e
+       PT_KILL                           = 0x8
+       PT_READ_D                         = 0x2
+       PT_READ_I                         = 0x1
+       PT_READ_U                         = 0x3
+       PT_SIGEXC                         = 0xc
+       PT_STEP                           = 0x9
+       PT_THUPDATE                       = 0xd
+       PT_TRACE_ME                       = 0x0
+       PT_WRITE_D                        = 0x5
+       PT_WRITE_I                        = 0x4
+       PT_WRITE_U                        = 0x6
+       RLIMIT_AS                         = 0x5
+       RLIMIT_CORE                       = 0x4
+       RLIMIT_CPU                        = 0x0
+       RLIMIT_CPU_USAGE_MONITOR          = 0x2
+       RLIMIT_DATA                       = 0x2
+       RLIMIT_FSIZE                      = 0x1
+       RLIMIT_MEMLOCK                    = 0x6
+       RLIMIT_NOFILE                     = 0x8
+       RLIMIT_NPROC                      = 0x7
+       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_DST                           = 0x1
+       RTA_GATEWAY                       = 0x2
+       RTA_GENMASK                       = 0x8
+       RTA_IFA                           = 0x20
+       RTA_IFP                           = 0x10
+       RTA_NETMASK                       = 0x4
+       RTF_BLACKHOLE                     = 0x1000
+       RTF_BROADCAST                     = 0x400000
+       RTF_CLONING                       = 0x100
+       RTF_CONDEMNED                     = 0x2000000
+       RTF_DELCLONE                      = 0x80
+       RTF_DONE                          = 0x40
+       RTF_DYNAMIC                       = 0x10
+       RTF_GATEWAY                       = 0x2
+       RTF_HOST                          = 0x4
+       RTF_IFREF                         = 0x4000000
+       RTF_IFSCOPE                       = 0x1000000
+       RTF_LLINFO                        = 0x400
+       RTF_LOCAL                         = 0x200000
+       RTF_MODIFIED                      = 0x20
+       RTF_MULTICAST                     = 0x800000
+       RTF_NOIFREF                       = 0x2000
+       RTF_PINNED                        = 0x100000
+       RTF_PRCLONING                     = 0x10000
+       RTF_PROTO1                        = 0x8000
+       RTF_PROTO2                        = 0x4000
+       RTF_PROTO3                        = 0x40000
+       RTF_PROXY                         = 0x8000000
+       RTF_REJECT                        = 0x8
+       RTF_ROUTER                        = 0x10000000
+       RTF_STATIC                        = 0x800
+       RTF_UP                            = 0x1
+       RTF_WASCLONED                     = 0x20000
+       RTF_XRESOLVE                      = 0x200
+       RTM_ADD                           = 0x1
+       RTM_CHANGE                        = 0x3
+       RTM_DELADDR                       = 0xd
+       RTM_DELETE                        = 0x2
+       RTM_DELMADDR                      = 0x10
+       RTM_GET                           = 0x4
+       RTM_GET2                          = 0x14
+       RTM_IFINFO                        = 0xe
+       RTM_IFINFO2                       = 0x12
+       RTM_LOCK                          = 0x8
+       RTM_LOSING                        = 0x5
+       RTM_MISS                          = 0x7
+       RTM_NEWADDR                       = 0xc
+       RTM_NEWMADDR                      = 0xf
+       RTM_NEWMADDR2                     = 0x13
+       RTM_OLDADD                        = 0x9
+       RTM_OLDDEL                        = 0xa
+       RTM_REDIRECT                      = 0x6
+       RTM_RESOLVE                       = 0xb
+       RTM_RTTUNIT                       = 0xf4240
+       RTM_VERSION                       = 0x5
+       RTV_EXPIRE                        = 0x4
+       RTV_HOPCOUNT                      = 0x2
+       RTV_MTU                           = 0x1
+       RTV_RPIPE                         = 0x8
+       RTV_RTT                           = 0x40
+       RTV_RTTVAR                        = 0x80
+       RTV_SPIPE                         = 0x10
+       RTV_SSTHRESH                      = 0x20
+       RUSAGE_CHILDREN                   = -0x1
+       RUSAGE_SELF                       = 0x0
+       SCM_CREDS                         = 0x3
+       SCM_RIGHTS                        = 0x1
+       SCM_TIMESTAMP                     = 0x2
+       SCM_TIMESTAMP_MONOTONIC           = 0x4
+       SHUT_RD                           = 0x0
+       SHUT_RDWR                         = 0x2
+       SHUT_WR                           = 0x1
+       SIOCADDMULTI                      = 0x80206931
+       SIOCAIFADDR                       = 0x8040691a
+       SIOCARPIPLL                       = 0xc0206928
+       SIOCATMARK                        = 0x40047307
+       SIOCAUTOADDR                      = 0xc0206926
+       SIOCAUTONETMASK                   = 0x80206927
+       SIOCDELMULTI                      = 0x80206932
+       SIOCDIFADDR                       = 0x80206919
+       SIOCDIFPHYADDR                    = 0x80206941
+       SIOCGDRVSPEC                      = 0xc028697b
+       SIOCGETVLAN                       = 0xc020697f
+       SIOCGHIWAT                        = 0x40047301
+       SIOCGIFADDR                       = 0xc0206921
+       SIOCGIFALTMTU                     = 0xc0206948
+       SIOCGIFASYNCMAP                   = 0xc020697c
+       SIOCGIFBOND                       = 0xc0206947
+       SIOCGIFBRDADDR                    = 0xc0206923
+       SIOCGIFCAP                        = 0xc020695b
+       SIOCGIFCONF                       = 0xc00c6924
+       SIOCGIFDEVMTU                     = 0xc0206944
+       SIOCGIFDSTADDR                    = 0xc0206922
+       SIOCGIFFLAGS                      = 0xc0206911
+       SIOCGIFGENERIC                    = 0xc020693a
+       SIOCGIFKPI                        = 0xc0206987
+       SIOCGIFMAC                        = 0xc0206982
+       SIOCGIFMEDIA                      = 0xc02c6938
+       SIOCGIFMETRIC                     = 0xc0206917
+       SIOCGIFMTU                        = 0xc0206933
+       SIOCGIFNETMASK                    = 0xc0206925
+       SIOCGIFPDSTADDR                   = 0xc0206940
+       SIOCGIFPHYS                       = 0xc0206935
+       SIOCGIFPSRCADDR                   = 0xc020693f
+       SIOCGIFSTATUS                     = 0xc331693d
+       SIOCGIFVLAN                       = 0xc020697f
+       SIOCGIFWAKEFLAGS                  = 0xc0206988
+       SIOCGLOWAT                        = 0x40047303
+       SIOCGPGRP                         = 0x40047309
+       SIOCIFCREATE                      = 0xc0206978
+       SIOCIFCREATE2                     = 0xc020697a
+       SIOCIFDESTROY                     = 0x80206979
+       SIOCIFGCLONERS                    = 0xc0106981
+       SIOCRSLVMULTI                     = 0xc010693b
+       SIOCSDRVSPEC                      = 0x8028697b
+       SIOCSETVLAN                       = 0x8020697e
+       SIOCSHIWAT                        = 0x80047300
+       SIOCSIFADDR                       = 0x8020690c
+       SIOCSIFALTMTU                     = 0x80206945
+       SIOCSIFASYNCMAP                   = 0x8020697d
+       SIOCSIFBOND                       = 0x80206946
+       SIOCSIFBRDADDR                    = 0x80206913
+       SIOCSIFCAP                        = 0x8020695a
+       SIOCSIFDSTADDR                    = 0x8020690e
+       SIOCSIFFLAGS                      = 0x80206910
+       SIOCSIFGENERIC                    = 0x80206939
+       SIOCSIFKPI                        = 0x80206986
+       SIOCSIFLLADDR                     = 0x8020693c
+       SIOCSIFMAC                        = 0x80206983
+       SIOCSIFMEDIA                      = 0xc0206937
+       SIOCSIFMETRIC                     = 0x80206918
+       SIOCSIFMTU                        = 0x80206934
+       SIOCSIFNETMASK                    = 0x80206916
+       SIOCSIFPHYADDR                    = 0x8040693e
+       SIOCSIFPHYS                       = 0x80206936
+       SIOCSIFVLAN                       = 0x8020697e
+       SIOCSLOWAT                        = 0x80047302
+       SIOCSPGRP                         = 0x80047308
+       SOCK_DGRAM                        = 0x2
+       SOCK_MAXADDRLEN                   = 0xff
+       SOCK_RAW                          = 0x3
+       SOCK_RDM                          = 0x4
+       SOCK_SEQPACKET                    = 0x5
+       SOCK_STREAM                       = 0x1
+       SOL_SOCKET                        = 0xffff
+       SOMAXCONN                         = 0x80
+       SO_ACCEPTCONN                     = 0x2
+       SO_BROADCAST                      = 0x20
+       SO_DEBUG                          = 0x1
+       SO_DONTROUTE                      = 0x10
+       SO_DONTTRUNC                      = 0x2000
+       SO_ERROR                          = 0x1007
+       SO_KEEPALIVE                      = 0x8
+       SO_LABEL                          = 0x1010
+       SO_LINGER                         = 0x80
+       SO_LINGER_SEC                     = 0x1080
+       SO_NETSVC_MARKING_LEVEL           = 0x1119
+       SO_NET_SERVICE_TYPE               = 0x1116
+       SO_NKE                            = 0x1021
+       SO_NOADDRERR                      = 0x1023
+       SO_NOSIGPIPE                      = 0x1022
+       SO_NOTIFYCONFLICT                 = 0x1026
+       SO_NP_EXTENSIONS                  = 0x1083
+       SO_NREAD                          = 0x1020
+       SO_NUMRCVPKT                      = 0x1112
+       SO_NWRITE                         = 0x1024
+       SO_OOBINLINE                      = 0x100
+       SO_PEERLABEL                      = 0x1011
+       SO_RANDOMPORT                     = 0x1082
+       SO_RCVBUF                         = 0x1002
+       SO_RCVLOWAT                       = 0x1004
+       SO_RCVTIMEO                       = 0x1006
+       SO_REUSEADDR                      = 0x4
+       SO_REUSEPORT                      = 0x200
+       SO_REUSESHAREUID                  = 0x1025
+       SO_SNDBUF                         = 0x1001
+       SO_SNDLOWAT                       = 0x1003
+       SO_SNDTIMEO                       = 0x1005
+       SO_TIMESTAMP                      = 0x400
+       SO_TIMESTAMP_MONOTONIC            = 0x800
+       SO_TYPE                           = 0x1008
+       SO_UPCALLCLOSEWAIT                = 0x1027
+       SO_USELOOPBACK                    = 0x40
+       SO_WANTMORE                       = 0x4000
+       SO_WANTOOBFLAG                    = 0x8000
+       S_IEXEC                           = 0x40
+       S_IFBLK                           = 0x6000
+       S_IFCHR                           = 0x2000
+       S_IFDIR                           = 0x4000
+       S_IFIFO                           = 0x1000
+       S_IFLNK                           = 0xa000
+       S_IFMT                            = 0xf000
+       S_IFREG                           = 0x8000
+       S_IFSOCK                          = 0xc000
+       S_IFWHT                           = 0xe000
+       S_IREAD                           = 0x100
+       S_IRGRP                           = 0x20
+       S_IROTH                           = 0x4
+       S_IRUSR                           = 0x100
+       S_IRWXG                           = 0x38
+       S_IRWXO                           = 0x7
+       S_IRWXU                           = 0x1c0
+       S_ISGID                           = 0x400
+       S_ISTXT                           = 0x200
+       S_ISUID                           = 0x800
+       S_ISVTX                           = 0x200
+       S_IWGRP                           = 0x10
+       S_IWOTH                           = 0x2
+       S_IWRITE                          = 0x80
+       S_IWUSR                           = 0x80
+       S_IXGRP                           = 0x8
+       S_IXOTH                           = 0x1
+       S_IXUSR                           = 0x40
+       TAB0                              = 0x0
+       TAB1                              = 0x400
+       TAB2                              = 0x800
+       TAB3                              = 0x4
+       TABDLY                            = 0xc04
+       TCIFLUSH                          = 0x1
+       TCIOFF                            = 0x3
+       TCIOFLUSH                         = 0x3
+       TCION                             = 0x4
+       TCOFLUSH                          = 0x2
+       TCOOFF                            = 0x1
+       TCOON                             = 0x2
+       TCP_CONNECTIONTIMEOUT             = 0x20
+       TCP_CONNECTION_INFO               = 0x106
+       TCP_ENABLE_ECN                    = 0x104
+       TCP_FASTOPEN                      = 0x105
+       TCP_KEEPALIVE                     = 0x10
+       TCP_KEEPCNT                       = 0x102
+       TCP_KEEPINTVL                     = 0x101
+       TCP_MAXHLEN                       = 0x3c
+       TCP_MAXOLEN                       = 0x28
+       TCP_MAXSEG                        = 0x2
+       TCP_MAXWIN                        = 0xffff
+       TCP_MAX_SACK                      = 0x4
+       TCP_MAX_WINSHIFT                  = 0xe
+       TCP_MINMSS                        = 0xd8
+       TCP_MSS                           = 0x200
+       TCP_NODELAY                       = 0x1
+       TCP_NOOPT                         = 0x8
+       TCP_NOPUSH                        = 0x4
+       TCP_NOTSENT_LOWAT                 = 0x201
+       TCP_RXT_CONNDROPTIME              = 0x80
+       TCP_RXT_FINDROP                   = 0x100
+       TCP_SENDMOREACKS                  = 0x103
+       TCSAFLUSH                         = 0x2
+       TIOCCBRK                          = 0x2000747a
+       TIOCCDTR                          = 0x20007478
+       TIOCCONS                          = 0x80047462
+       TIOCDCDTIMESTAMP                  = 0x40107458
+       TIOCDRAIN                         = 0x2000745e
+       TIOCDSIMICROCODE                  = 0x20007455
+       TIOCEXCL                          = 0x2000740d
+       TIOCEXT                           = 0x80047460
+       TIOCFLUSH                         = 0x80047410
+       TIOCGDRAINWAIT                    = 0x40047456
+       TIOCGETA                          = 0x40487413
+       TIOCGETD                          = 0x4004741a
+       TIOCGPGRP                         = 0x40047477
+       TIOCGWINSZ                        = 0x40087468
+       TIOCIXOFF                         = 0x20007480
+       TIOCIXON                          = 0x20007481
+       TIOCMBIC                          = 0x8004746b
+       TIOCMBIS                          = 0x8004746c
+       TIOCMGDTRWAIT                     = 0x4004745a
+       TIOCMGET                          = 0x4004746a
+       TIOCMODG                          = 0x40047403
+       TIOCMODS                          = 0x80047404
+       TIOCMSDTRWAIT                     = 0x8004745b
+       TIOCMSET                          = 0x8004746d
+       TIOCM_CAR                         = 0x40
+       TIOCM_CD                          = 0x40
+       TIOCM_CTS                         = 0x20
+       TIOCM_DSR                         = 0x100
+       TIOCM_DTR                         = 0x2
+       TIOCM_LE                          = 0x1
+       TIOCM_RI                          = 0x80
+       TIOCM_RNG                         = 0x80
+       TIOCM_RTS                         = 0x4
+       TIOCM_SR                          = 0x10
+       TIOCM_ST                          = 0x8
+       TIOCNOTTY                         = 0x20007471
+       TIOCNXCL                          = 0x2000740e
+       TIOCOUTQ                          = 0x40047473
+       TIOCPKT                           = 0x80047470
+       TIOCPKT_DATA                      = 0x0
+       TIOCPKT_DOSTOP                    = 0x20
+       TIOCPKT_FLUSHREAD                 = 0x1
+       TIOCPKT_FLUSHWRITE                = 0x2
+       TIOCPKT_IOCTL                     = 0x40
+       TIOCPKT_NOSTOP                    = 0x10
+       TIOCPKT_START                     = 0x8
+       TIOCPKT_STOP                      = 0x4
+       TIOCPTYGNAME                      = 0x40807453
+       TIOCPTYGRANT                      = 0x20007454
+       TIOCPTYUNLK                       = 0x20007452
+       TIOCREMOTE                        = 0x80047469
+       TIOCSBRK                          = 0x2000747b
+       TIOCSCONS                         = 0x20007463
+       TIOCSCTTY                         = 0x20007461
+       TIOCSDRAINWAIT                    = 0x80047457
+       TIOCSDTR                          = 0x20007479
+       TIOCSETA                          = 0x80487414
+       TIOCSETAF                         = 0x80487416
+       TIOCSETAW                         = 0x80487415
+       TIOCSETD                          = 0x8004741b
+       TIOCSIG                           = 0x2000745f
+       TIOCSPGRP                         = 0x80047476
+       TIOCSTART                         = 0x2000746e
+       TIOCSTAT                          = 0x20007465
+       TIOCSTI                           = 0x80017472
+       TIOCSTOP                          = 0x2000746f
+       TIOCSWINSZ                        = 0x80087467
+       TIOCTIMESTAMP                     = 0x40107459
+       TIOCUCNTL                         = 0x80047466
+       TOSTOP                            = 0x400000
+       VDISCARD                          = 0xf
+       VDSUSP                            = 0xb
+       VEOF                              = 0x0
+       VEOL                              = 0x1
+       VEOL2                             = 0x2
+       VERASE                            = 0x3
+       VINTR                             = 0x8
+       VKILL                             = 0x5
+       VLNEXT                            = 0xe
+       VMIN                              = 0x10
+       VM_LOADAVG                        = 0x2
+       VM_MACHFACTOR                     = 0x4
+       VM_MAXID                          = 0x6
+       VM_METER                          = 0x1
+       VM_SWAPUSAGE                      = 0x5
+       VQUIT                             = 0x9
+       VREPRINT                          = 0x6
+       VSTART                            = 0xc
+       VSTATUS                           = 0x12
+       VSTOP                             = 0xd
+       VSUSP                             = 0xa
+       VT0                               = 0x0
+       VT1                               = 0x10000
+       VTDLY                             = 0x10000
+       VTIME                             = 0x11
+       VWERASE                           = 0x4
+       WCONTINUED                        = 0x10
+       WCOREFLAG                         = 0x80
+       WEXITED                           = 0x4
+       WNOHANG                           = 0x1
+       WNOWAIT                           = 0x20
+       WORDSIZE                          = 0x40
+       WSTOPPED                          = 0x8
+       WUNTRACED                         = 0x2
+)
+
+// Errors
+const (
+       E2BIG           = syscall.Errno(0x7)
+       EACCES          = syscall.Errno(0xd)
+       EADDRINUSE      = syscall.Errno(0x30)
+       EADDRNOTAVAIL   = syscall.Errno(0x31)
+       EAFNOSUPPORT    = syscall.Errno(0x2f)
+       EAGAIN          = syscall.Errno(0x23)
+       EALREADY        = syscall.Errno(0x25)
+       EAUTH           = syscall.Errno(0x50)
+       EBADARCH        = syscall.Errno(0x56)
+       EBADEXEC        = syscall.Errno(0x55)
+       EBADF           = syscall.Errno(0x9)
+       EBADMACHO       = syscall.Errno(0x58)
+       EBADMSG         = syscall.Errno(0x5e)
+       EBADRPC         = syscall.Errno(0x48)
+       EBUSY           = syscall.Errno(0x10)
+       ECANCELED       = syscall.Errno(0x59)
+       ECHILD          = syscall.Errno(0xa)
+       ECONNABORTED    = syscall.Errno(0x35)
+       ECONNREFUSED    = syscall.Errno(0x3d)
+       ECONNRESET      = syscall.Errno(0x36)
+       EDEADLK         = syscall.Errno(0xb)
+       EDESTADDRREQ    = syscall.Errno(0x27)
+       EDEVERR         = syscall.Errno(0x53)
+       EDOM            = syscall.Errno(0x21)
+       EDQUOT          = syscall.Errno(0x45)
+       EEXIST          = syscall.Errno(0x11)
+       EFAULT          = syscall.Errno(0xe)
+       EFBIG           = syscall.Errno(0x1b)
+       EFTYPE          = syscall.Errno(0x4f)
+       EHOSTDOWN       = syscall.Errno(0x40)
+       EHOSTUNREACH    = syscall.Errno(0x41)
+       EIDRM           = syscall.Errno(0x5a)
+       EILSEQ          = syscall.Errno(0x5c)
+       EINPROGRESS     = syscall.Errno(0x24)
+       EINTR           = syscall.Errno(0x4)
+       EINVAL          = syscall.Errno(0x16)
+       EIO             = syscall.Errno(0x5)
+       EISCONN         = syscall.Errno(0x38)
+       EISDIR          = syscall.Errno(0x15)
+       ELAST           = syscall.Errno(0x6a)
+       ELOOP           = syscall.Errno(0x3e)
+       EMFILE          = syscall.Errno(0x18)
+       EMLINK          = syscall.Errno(0x1f)
+       EMSGSIZE        = syscall.Errno(0x28)
+       EMULTIHOP       = syscall.Errno(0x5f)
+       ENAMETOOLONG    = syscall.Errno(0x3f)
+       ENEEDAUTH       = syscall.Errno(0x51)
+       ENETDOWN        = syscall.Errno(0x32)
+       ENETRESET       = syscall.Errno(0x34)
+       ENETUNREACH     = syscall.Errno(0x33)
+       ENFILE          = syscall.Errno(0x17)
+       ENOATTR         = syscall.Errno(0x5d)
+       ENOBUFS         = syscall.Errno(0x37)
+       ENODATA         = syscall.Errno(0x60)
+       ENODEV          = syscall.Errno(0x13)
+       ENOENT          = syscall.Errno(0x2)
+       ENOEXEC         = syscall.Errno(0x8)
+       ENOLCK          = syscall.Errno(0x4d)
+       ENOLINK         = syscall.Errno(0x61)
+       ENOMEM          = syscall.Errno(0xc)
+       ENOMSG          = syscall.Errno(0x5b)
+       ENOPOLICY       = syscall.Errno(0x67)
+       ENOPROTOOPT     = syscall.Errno(0x2a)
+       ENOSPC          = syscall.Errno(0x1c)
+       ENOSR           = syscall.Errno(0x62)
+       ENOSTR          = syscall.Errno(0x63)
+       ENOSYS          = syscall.Errno(0x4e)
+       ENOTBLK         = syscall.Errno(0xf)
+       ENOTCONN        = syscall.Errno(0x39)
+       ENOTDIR         = syscall.Errno(0x14)
+       ENOTEMPTY       = syscall.Errno(0x42)
+       ENOTRECOVERABLE = syscall.Errno(0x68)
+       ENOTSOCK        = syscall.Errno(0x26)
+       ENOTSUP         = syscall.Errno(0x2d)
+       ENOTTY          = syscall.Errno(0x19)
+       ENXIO           = syscall.Errno(0x6)
+       EOPNOTSUPP      = syscall.Errno(0x66)
+       EOVERFLOW       = syscall.Errno(0x54)
+       EOWNERDEAD      = syscall.Errno(0x69)
+       EPERM           = syscall.Errno(0x1)
+       EPFNOSUPPORT    = syscall.Errno(0x2e)
+       EPIPE           = syscall.Errno(0x20)
+       EPROCLIM        = syscall.Errno(0x43)
+       EPROCUNAVAIL    = syscall.Errno(0x4c)
+       EPROGMISMATCH   = syscall.Errno(0x4b)
+       EPROGUNAVAIL    = syscall.Errno(0x4a)
+       EPROTO          = syscall.Errno(0x64)
+       EPROTONOSUPPORT = syscall.Errno(0x2b)
+       EPROTOTYPE      = syscall.Errno(0x29)
+       EPWROFF         = syscall.Errno(0x52)
+       EQFULL          = syscall.Errno(0x6a)
+       ERANGE          = syscall.Errno(0x22)
+       EREMOTE         = syscall.Errno(0x47)
+       EROFS           = syscall.Errno(0x1e)
+       ERPCMISMATCH    = syscall.Errno(0x49)
+       ESHLIBVERS      = syscall.Errno(0x57)
+       ESHUTDOWN       = syscall.Errno(0x3a)
+       ESOCKTNOSUPPORT = syscall.Errno(0x2c)
+       ESPIPE          = syscall.Errno(0x1d)
+       ESRCH           = syscall.Errno(0x3)
+       ESTALE          = syscall.Errno(0x46)
+       ETIME           = syscall.Errno(0x65)
+       ETIMEDOUT       = syscall.Errno(0x3c)
+       ETOOMANYREFS    = syscall.Errno(0x3b)
+       ETXTBSY         = syscall.Errno(0x1a)
+       EUSERS          = syscall.Errno(0x44)
+       EWOULDBLOCK     = syscall.Errno(0x23)
+       EXDEV           = syscall.Errno(0x12)
+)
+
+// Signals
+const (
+       SIGABRT   = syscall.Signal(0x6)
+       SIGALRM   = syscall.Signal(0xe)
+       SIGBUS    = syscall.Signal(0xa)
+       SIGCHLD   = syscall.Signal(0x14)
+       SIGCONT   = syscall.Signal(0x13)
+       SIGEMT    = syscall.Signal(0x7)
+       SIGFPE    = syscall.Signal(0x8)
+       SIGHUP    = syscall.Signal(0x1)
+       SIGILL    = syscall.Signal(0x4)
+       SIGINFO   = syscall.Signal(0x1d)
+       SIGINT    = syscall.Signal(0x2)
+       SIGIO     = syscall.Signal(0x17)
+       SIGIOT    = syscall.Signal(0x6)
+       SIGKILL   = syscall.Signal(0x9)
+       SIGPIPE   = syscall.Signal(0xd)
+       SIGPROF   = syscall.Signal(0x1b)
+       SIGQUIT   = syscall.Signal(0x3)
+       SIGSEGV   = syscall.Signal(0xb)
+       SIGSTOP   = syscall.Signal(0x11)
+       SIGSYS    = syscall.Signal(0xc)
+       SIGTERM   = syscall.Signal(0xf)
+       SIGTRAP   = syscall.Signal(0x5)
+       SIGTSTP   = syscall.Signal(0x12)
+       SIGTTIN   = syscall.Signal(0x15)
+       SIGTTOU   = syscall.Signal(0x16)
+       SIGURG    = syscall.Signal(0x10)
+       SIGUSR1   = syscall.Signal(0x1e)
+       SIGUSR2   = syscall.Signal(0x1f)
+       SIGVTALRM = syscall.Signal(0x1a)
+       SIGWINCH  = syscall.Signal(0x1c)
+       SIGXCPU   = syscall.Signal(0x18)
+       SIGXFSZ   = syscall.Signal(0x19)
+)
+
+// Error table
+var errors = [...]string{
+       1:   "operation not permitted",
+       2:   "no such file or directory",
+       3:   "no such process",
+       4:   "interrupted system call",
+       5:   "input/output error",
+       6:   "device not configured",
+       7:   "argument list too long",
+       8:   "exec format error",
+       9:   "bad file descriptor",
+       10:  "no child processes",
+       11:  "resource deadlock avoided",
+       12:  "cannot allocate memory",
+       13:  "permission denied",
+       14:  "bad address",
+       15:  "block device required",
+       16:  "resource busy",
+       17:  "file exists",
+       18:  "cross-device link",
+       19:  "operation not supported by device",
+       20:  "not a directory",
+       21:  "is a directory",
+       22:  "invalid argument",
+       23:  "too many open files in system",
+       24:  "too many open files",
+       25:  "inappropriate ioctl for device",
+       26:  "text file busy",
+       27:  "file too large",
+       28:  "no space left on device",
+       29:  "illegal seek",
+       30:  "read-only file system",
+       31:  "too many links",
+       32:  "broken pipe",
+       33:  "numerical argument out of domain",
+       34:  "result too large",
+       35:  "resource temporarily unavailable",
+       36:  "operation now in progress",
+       37:  "operation already in progress",
+       38:  "socket operation on non-socket",
+       39:  "destination address required",
+       40:  "message too long",
+       41:  "protocol wrong type for socket",
+       42:  "protocol not available",
+       43:  "protocol not supported",
+       44:  "socket type not supported",
+       45:  "operation not supported",
+       46:  "protocol family not supported",
+       47:  "address family not supported by protocol family",
+       48:  "address already in use",
+       49:  "can't assign requested address",
+       50:  "network is down",
+       51:  "network is unreachable",
+       52:  "network dropped connection on reset",
+       53:  "software caused connection abort",
+       54:  "connection reset by peer",
+       55:  "no buffer space available",
+       56:  "socket is already connected",
+       57:  "socket is not connected",
+       58:  "can't send after socket shutdown",
+       59:  "too many references: can't splice",
+       60:  "operation timed out",
+       61:  "connection refused",
+       62:  "too many levels of symbolic links",
+       63:  "file name too long",
+       64:  "host is down",
+       65:  "no route to host",
+       66:  "directory not empty",
+       67:  "too many processes",
+       68:  "too many users",
+       69:  "disc quota exceeded",
+       70:  "stale NFS file handle",
+       71:  "too many levels of remote in path",
+       72:  "RPC struct is bad",
+       73:  "RPC version wrong",
+       74:  "RPC prog. not avail",
+       75:  "program version wrong",
+       76:  "bad procedure for program",
+       77:  "no locks available",
+       78:  "function not implemented",
+       79:  "inappropriate file type or format",
+       80:  "authentication error",
+       81:  "need authenticator",
+       82:  "device power is off",
+       83:  "device error",
+       84:  "value too large to be stored in data type",
+       85:  "bad executable (or shared library)",
+       86:  "bad CPU type in executable",
+       87:  "shared library version mismatch",
+       88:  "malformed Mach-o file",
+       89:  "operation canceled",
+       90:  "identifier removed",
+       91:  "no message of desired type",
+       92:  "illegal byte sequence",
+       93:  "attribute not found",
+       94:  "bad message",
+       95:  "EMULTIHOP (Reserved)",
+       96:  "no message available on STREAM",
+       97:  "ENOLINK (Reserved)",
+       98:  "no STREAM resources",
+       99:  "not a STREAM",
+       100: "protocol error",
+       101: "STREAM ioctl timeout",
+       102: "operation not supported on socket",
+       103: "policy not found",
+       104: "state not recoverable",
+       105: "previous owner died",
+       106: "interface output queue is full",
+}
+
+// Signal table
+var signals = [...]string{
+       1:  "hangup",
+       2:  "interrupt",
+       3:  "quit",
+       4:  "illegal instruction",
+       5:  "trace/BPT trap",
+       6:  "abort trap",
+       7:  "EMT trap",
+       8:  "floating point exception",
+       9:  "killed",
+       10: "bus error",
+       11: "segmentation fault",
+       12: "bad system call",
+       13: "broken pipe",
+       14: "alarm clock",
+       15: "terminated",
+       16: "urgent I/O condition",
+       17: "suspended (signal)",
+       18: "suspended",
+       19: "continued",
+       20: "child exited",
+       21: "stopped (tty input)",
+       22: "stopped (tty output)",
+       23: "I/O possible",
+       24: "cputime limit exceeded",
+       25: "filesize limit exceeded",
+       26: "virtual timer expired",
+       27: "profiling timer expired",
+       28: "window size changes",
+       29: "information request",
+       30: "user defined signal 1",
+       31: "user defined signal 2",
+}
diff --git a/vendor/golang.org/x/sys/unix/zerrors_darwin_arm.go b/vendor/golang.org/x/sys/unix/zerrors_darwin_arm.go
new file mode 100644 (file)
index 0000000..24cb522
--- /dev/null
@@ -0,0 +1,1673 @@
+// mkerrors.sh
+// Code generated by the command above; see README.md. DO NOT EDIT.
+
+// +build arm,darwin
+
+// Created by cgo -godefs - DO NOT EDIT
+// cgo -godefs -- _const.go
+
+package unix
+
+import "syscall"
+
+const (
+       AF_APPLETALK                      = 0x10
+       AF_CCITT                          = 0xa
+       AF_CHAOS                          = 0x5
+       AF_CNT                            = 0x15
+       AF_COIP                           = 0x14
+       AF_DATAKIT                        = 0x9
+       AF_DECnet                         = 0xc
+       AF_DLI                            = 0xd
+       AF_E164                           = 0x1c
+       AF_ECMA                           = 0x8
+       AF_HYLINK                         = 0xf
+       AF_IEEE80211                      = 0x25
+       AF_IMPLINK                        = 0x3
+       AF_INET                           = 0x2
+       AF_INET6                          = 0x1e
+       AF_IPX                            = 0x17
+       AF_ISDN                           = 0x1c
+       AF_ISO                            = 0x7
+       AF_LAT                            = 0xe
+       AF_LINK                           = 0x12
+       AF_LOCAL                          = 0x1
+       AF_MAX                            = 0x28
+       AF_NATM                           = 0x1f
+       AF_NDRV                           = 0x1b
+       AF_NETBIOS                        = 0x21
+       AF_NS                             = 0x6
+       AF_OSI                            = 0x7
+       AF_PPP                            = 0x22
+       AF_PUP                            = 0x4
+       AF_RESERVED_36                    = 0x24
+       AF_ROUTE                          = 0x11
+       AF_SIP                            = 0x18
+       AF_SNA                            = 0xb
+       AF_SYSTEM                         = 0x20
+       AF_UNIX                           = 0x1
+       AF_UNSPEC                         = 0x0
+       AF_UTUN                           = 0x26
+       ALTWERASE                         = 0x200
+       B0                                = 0x0
+       B110                              = 0x6e
+       B115200                           = 0x1c200
+       B1200                             = 0x4b0
+       B134                              = 0x86
+       B14400                            = 0x3840
+       B150                              = 0x96
+       B1800                             = 0x708
+       B19200                            = 0x4b00
+       B200                              = 0xc8
+       B230400                           = 0x38400
+       B2400                             = 0x960
+       B28800                            = 0x7080
+       B300                              = 0x12c
+       B38400                            = 0x9600
+       B4800                             = 0x12c0
+       B50                               = 0x32
+       B57600                            = 0xe100
+       B600                              = 0x258
+       B7200                             = 0x1c20
+       B75                               = 0x4b
+       B76800                            = 0x12c00
+       B9600                             = 0x2580
+       BIOCFLUSH                         = 0x20004268
+       BIOCGBLEN                         = 0x40044266
+       BIOCGDLT                          = 0x4004426a
+       BIOCGDLTLIST                      = 0xc00c4279
+       BIOCGETIF                         = 0x4020426b
+       BIOCGHDRCMPLT                     = 0x40044274
+       BIOCGRSIG                         = 0x40044272
+       BIOCGRTIMEOUT                     = 0x4010426e
+       BIOCGSEESENT                      = 0x40044276
+       BIOCGSTATS                        = 0x4008426f
+       BIOCIMMEDIATE                     = 0x80044270
+       BIOCPROMISC                       = 0x20004269
+       BIOCSBLEN                         = 0xc0044266
+       BIOCSDLT                          = 0x80044278
+       BIOCSETF                          = 0x80104267
+       BIOCSETFNR                        = 0x8010427e
+       BIOCSETIF                         = 0x8020426c
+       BIOCSHDRCMPLT                     = 0x80044275
+       BIOCSRSIG                         = 0x80044273
+       BIOCSRTIMEOUT                     = 0x8010426d
+       BIOCSSEESENT                      = 0x80044277
+       BIOCVERSION                       = 0x40044271
+       BPF_A                             = 0x10
+       BPF_ABS                           = 0x20
+       BPF_ADD                           = 0x0
+       BPF_ALIGNMENT                     = 0x4
+       BPF_ALU                           = 0x4
+       BPF_AND                           = 0x50
+       BPF_B                             = 0x10
+       BPF_DIV                           = 0x30
+       BPF_H                             = 0x8
+       BPF_IMM                           = 0x0
+       BPF_IND                           = 0x40
+       BPF_JA                            = 0x0
+       BPF_JEQ                           = 0x10
+       BPF_JGE                           = 0x30
+       BPF_JGT                           = 0x20
+       BPF_JMP                           = 0x5
+       BPF_JSET                          = 0x40
+       BPF_K                             = 0x0
+       BPF_LD                            = 0x0
+       BPF_LDX                           = 0x1
+       BPF_LEN                           = 0x80
+       BPF_LSH                           = 0x60
+       BPF_MAJOR_VERSION                 = 0x1
+       BPF_MAXBUFSIZE                    = 0x80000
+       BPF_MAXINSNS                      = 0x200
+       BPF_MEM                           = 0x60
+       BPF_MEMWORDS                      = 0x10
+       BPF_MINBUFSIZE                    = 0x20
+       BPF_MINOR_VERSION                 = 0x1
+       BPF_MISC                          = 0x7
+       BPF_MSH                           = 0xa0
+       BPF_MUL                           = 0x20
+       BPF_NEG                           = 0x80
+       BPF_OR                            = 0x40
+       BPF_RELEASE                       = 0x30bb6
+       BPF_RET                           = 0x6
+       BPF_RSH                           = 0x70
+       BPF_ST                            = 0x2
+       BPF_STX                           = 0x3
+       BPF_SUB                           = 0x10
+       BPF_TAX                           = 0x0
+       BPF_TXA                           = 0x80
+       BPF_W                             = 0x0
+       BPF_X                             = 0x8
+       BRKINT                            = 0x2
+       BS0                               = 0x0
+       BS1                               = 0x8000
+       BSDLY                             = 0x8000
+       CFLUSH                            = 0xf
+       CLOCAL                            = 0x8000
+       CLOCK_MONOTONIC                   = 0x6
+       CLOCK_MONOTONIC_RAW               = 0x4
+       CLOCK_MONOTONIC_RAW_APPROX        = 0x5
+       CLOCK_PROCESS_CPUTIME_ID          = 0xc
+       CLOCK_REALTIME                    = 0x0
+       CLOCK_THREAD_CPUTIME_ID           = 0x10
+       CLOCK_UPTIME_RAW                  = 0x8
+       CLOCK_UPTIME_RAW_APPROX           = 0x9
+       CR0                               = 0x0
+       CR1                               = 0x1000
+       CR2                               = 0x2000
+       CR3                               = 0x3000
+       CRDLY                             = 0x3000
+       CREAD                             = 0x800
+       CRTSCTS                           = 0x30000
+       CS5                               = 0x0
+       CS6                               = 0x100
+       CS7                               = 0x200
+       CS8                               = 0x300
+       CSIZE                             = 0x300
+       CSTART                            = 0x11
+       CSTATUS                           = 0x14
+       CSTOP                             = 0x13
+       CSTOPB                            = 0x400
+       CSUSP                             = 0x1a
+       CTL_MAXNAME                       = 0xc
+       CTL_NET                           = 0x4
+       DLT_A429                          = 0xb8
+       DLT_A653_ICM                      = 0xb9
+       DLT_AIRONET_HEADER                = 0x78
+       DLT_AOS                           = 0xde
+       DLT_APPLE_IP_OVER_IEEE1394        = 0x8a
+       DLT_ARCNET                        = 0x7
+       DLT_ARCNET_LINUX                  = 0x81
+       DLT_ATM_CLIP                      = 0x13
+       DLT_ATM_RFC1483                   = 0xb
+       DLT_AURORA                        = 0x7e
+       DLT_AX25                          = 0x3
+       DLT_AX25_KISS                     = 0xca
+       DLT_BACNET_MS_TP                  = 0xa5
+       DLT_BLUETOOTH_HCI_H4              = 0xbb
+       DLT_BLUETOOTH_HCI_H4_WITH_PHDR    = 0xc9
+       DLT_CAN20B                        = 0xbe
+       DLT_CAN_SOCKETCAN                 = 0xe3
+       DLT_CHAOS                         = 0x5
+       DLT_CHDLC                         = 0x68
+       DLT_CISCO_IOS                     = 0x76
+       DLT_C_HDLC                        = 0x68
+       DLT_C_HDLC_WITH_DIR               = 0xcd
+       DLT_DBUS                          = 0xe7
+       DLT_DECT                          = 0xdd
+       DLT_DOCSIS                        = 0x8f
+       DLT_DVB_CI                        = 0xeb
+       DLT_ECONET                        = 0x73
+       DLT_EN10MB                        = 0x1
+       DLT_EN3MB                         = 0x2
+       DLT_ENC                           = 0x6d
+       DLT_ERF                           = 0xc5
+       DLT_ERF_ETH                       = 0xaf
+       DLT_ERF_POS                       = 0xb0
+       DLT_FC_2                          = 0xe0
+       DLT_FC_2_WITH_FRAME_DELIMS        = 0xe1
+       DLT_FDDI                          = 0xa
+       DLT_FLEXRAY                       = 0xd2
+       DLT_FRELAY                        = 0x6b
+       DLT_FRELAY_WITH_DIR               = 0xce
+       DLT_GCOM_SERIAL                   = 0xad
+       DLT_GCOM_T1E1                     = 0xac
+       DLT_GPF_F                         = 0xab
+       DLT_GPF_T                         = 0xaa
+       DLT_GPRS_LLC                      = 0xa9
+       DLT_GSMTAP_ABIS                   = 0xda
+       DLT_GSMTAP_UM                     = 0xd9
+       DLT_HHDLC                         = 0x79
+       DLT_IBM_SN                        = 0x92
+       DLT_IBM_SP                        = 0x91
+       DLT_IEEE802                       = 0x6
+       DLT_IEEE802_11                    = 0x69
+       DLT_IEEE802_11_RADIO              = 0x7f
+       DLT_IEEE802_11_RADIO_AVS          = 0xa3
+       DLT_IEEE802_15_4                  = 0xc3
+       DLT_IEEE802_15_4_LINUX            = 0xbf
+       DLT_IEEE802_15_4_NOFCS            = 0xe6
+       DLT_IEEE802_15_4_NONASK_PHY       = 0xd7
+       DLT_IEEE802_16_MAC_CPS            = 0xbc
+       DLT_IEEE802_16_MAC_CPS_RADIO      = 0xc1
+       DLT_IPFILTER                      = 0x74
+       DLT_IPMB                          = 0xc7
+       DLT_IPMB_LINUX                    = 0xd1
+       DLT_IPNET                         = 0xe2
+       DLT_IPOIB                         = 0xf2
+       DLT_IPV4                          = 0xe4
+       DLT_IPV6                          = 0xe5
+       DLT_IP_OVER_FC                    = 0x7a
+       DLT_JUNIPER_ATM1                  = 0x89
+       DLT_JUNIPER_ATM2                  = 0x87
+       DLT_JUNIPER_ATM_CEMIC             = 0xee
+       DLT_JUNIPER_CHDLC                 = 0xb5
+       DLT_JUNIPER_ES                    = 0x84
+       DLT_JUNIPER_ETHER                 = 0xb2
+       DLT_JUNIPER_FIBRECHANNEL          = 0xea
+       DLT_JUNIPER_FRELAY                = 0xb4
+       DLT_JUNIPER_GGSN                  = 0x85
+       DLT_JUNIPER_ISM                   = 0xc2
+       DLT_JUNIPER_MFR                   = 0x86
+       DLT_JUNIPER_MLFR                  = 0x83
+       DLT_JUNIPER_MLPPP                 = 0x82
+       DLT_JUNIPER_MONITOR               = 0xa4
+       DLT_JUNIPER_PIC_PEER              = 0xae
+       DLT_JUNIPER_PPP                   = 0xb3
+       DLT_JUNIPER_PPPOE                 = 0xa7
+       DLT_JUNIPER_PPPOE_ATM             = 0xa8
+       DLT_JUNIPER_SERVICES              = 0x88
+       DLT_JUNIPER_SRX_E2E               = 0xe9
+       DLT_JUNIPER_ST                    = 0xc8
+       DLT_JUNIPER_VP                    = 0xb7
+       DLT_JUNIPER_VS                    = 0xe8
+       DLT_LAPB_WITH_DIR                 = 0xcf
+       DLT_LAPD                          = 0xcb
+       DLT_LIN                           = 0xd4
+       DLT_LINUX_EVDEV                   = 0xd8
+       DLT_LINUX_IRDA                    = 0x90
+       DLT_LINUX_LAPD                    = 0xb1
+       DLT_LINUX_PPP_WITHDIRECTION       = 0xa6
+       DLT_LINUX_SLL                     = 0x71
+       DLT_LOOP                          = 0x6c
+       DLT_LTALK                         = 0x72
+       DLT_MATCHING_MAX                  = 0xf5
+       DLT_MATCHING_MIN                  = 0x68
+       DLT_MFR                           = 0xb6
+       DLT_MOST                          = 0xd3
+       DLT_MPEG_2_TS                     = 0xf3
+       DLT_MPLS                          = 0xdb
+       DLT_MTP2                          = 0x8c
+       DLT_MTP2_WITH_PHDR                = 0x8b
+       DLT_MTP3                          = 0x8d
+       DLT_MUX27010                      = 0xec
+       DLT_NETANALYZER                   = 0xf0
+       DLT_NETANALYZER_TRANSPARENT       = 0xf1
+       DLT_NFC_LLCP                      = 0xf5
+       DLT_NFLOG                         = 0xef
+       DLT_NG40                          = 0xf4
+       DLT_NULL                          = 0x0
+       DLT_PCI_EXP                       = 0x7d
+       DLT_PFLOG                         = 0x75
+       DLT_PFSYNC                        = 0x12
+       DLT_PPI                           = 0xc0
+       DLT_PPP                           = 0x9
+       DLT_PPP_BSDOS                     = 0x10
+       DLT_PPP_ETHER                     = 0x33
+       DLT_PPP_PPPD                      = 0xa6
+       DLT_PPP_SERIAL                    = 0x32
+       DLT_PPP_WITH_DIR                  = 0xcc
+       DLT_PPP_WITH_DIRECTION            = 0xa6
+       DLT_PRISM_HEADER                  = 0x77
+       DLT_PRONET                        = 0x4
+       DLT_RAIF1                         = 0xc6
+       DLT_RAW                           = 0xc
+       DLT_RIO                           = 0x7c
+       DLT_SCCP                          = 0x8e
+       DLT_SITA                          = 0xc4
+       DLT_SLIP                          = 0x8
+       DLT_SLIP_BSDOS                    = 0xf
+       DLT_STANAG_5066_D_PDU             = 0xed
+       DLT_SUNATM                        = 0x7b
+       DLT_SYMANTEC_FIREWALL             = 0x63
+       DLT_TZSP                          = 0x80
+       DLT_USB                           = 0xba
+       DLT_USB_LINUX                     = 0xbd
+       DLT_USB_LINUX_MMAPPED             = 0xdc
+       DLT_USER0                         = 0x93
+       DLT_USER1                         = 0x94
+       DLT_USER10                        = 0x9d
+       DLT_USER11                        = 0x9e
+       DLT_USER12                        = 0x9f
+       DLT_USER13                        = 0xa0
+       DLT_USER14                        = 0xa1
+       DLT_USER15                        = 0xa2
+       DLT_USER2                         = 0x95
+       DLT_USER3                         = 0x96
+       DLT_USER4                         = 0x97
+       DLT_USER5                         = 0x98
+       DLT_USER6                         = 0x99
+       DLT_USER7                         = 0x9a
+       DLT_USER8                         = 0x9b
+       DLT_USER9                         = 0x9c
+       DLT_WIHART                        = 0xdf
+       DLT_X2E_SERIAL                    = 0xd5
+       DLT_X2E_XORAYA                    = 0xd6
+       DT_BLK                            = 0x6
+       DT_CHR                            = 0x2
+       DT_DIR                            = 0x4
+       DT_FIFO                           = 0x1
+       DT_LNK                            = 0xa
+       DT_REG                            = 0x8
+       DT_SOCK                           = 0xc
+       DT_UNKNOWN                        = 0x0
+       DT_WHT                            = 0xe
+       ECHO                              = 0x8
+       ECHOCTL                           = 0x40
+       ECHOE                             = 0x2
+       ECHOK                             = 0x4
+       ECHOKE                            = 0x1
+       ECHONL                            = 0x10
+       ECHOPRT                           = 0x20
+       EVFILT_AIO                        = -0x3
+       EVFILT_EXCEPT                     = -0xf
+       EVFILT_FS                         = -0x9
+       EVFILT_MACHPORT                   = -0x8
+       EVFILT_PROC                       = -0x5
+       EVFILT_READ                       = -0x1
+       EVFILT_SIGNAL                     = -0x6
+       EVFILT_SYSCOUNT                   = 0xf
+       EVFILT_THREADMARKER               = 0xf
+       EVFILT_TIMER                      = -0x7
+       EVFILT_USER                       = -0xa
+       EVFILT_VM                         = -0xc
+       EVFILT_VNODE                      = -0x4
+       EVFILT_WRITE                      = -0x2
+       EV_ADD                            = 0x1
+       EV_CLEAR                          = 0x20
+       EV_DELETE                         = 0x2
+       EV_DISABLE                        = 0x8
+       EV_DISPATCH                       = 0x80
+       EV_DISPATCH2                      = 0x180
+       EV_ENABLE                         = 0x4
+       EV_EOF                            = 0x8000
+       EV_ERROR                          = 0x4000
+       EV_FLAG0                          = 0x1000
+       EV_FLAG1                          = 0x2000
+       EV_ONESHOT                        = 0x10
+       EV_OOBAND                         = 0x2000
+       EV_POLL                           = 0x1000
+       EV_RECEIPT                        = 0x40
+       EV_SYSFLAGS                       = 0xf000
+       EV_UDATA_SPECIFIC                 = 0x100
+       EV_VANISHED                       = 0x200
+       EXTA                              = 0x4b00
+       EXTB                              = 0x9600
+       EXTPROC                           = 0x800
+       FD_CLOEXEC                        = 0x1
+       FD_SETSIZE                        = 0x400
+       FF0                               = 0x0
+       FF1                               = 0x4000
+       FFDLY                             = 0x4000
+       FLUSHO                            = 0x800000
+       F_ADDFILESIGS                     = 0x3d
+       F_ADDFILESIGS_FOR_DYLD_SIM        = 0x53
+       F_ADDFILESIGS_RETURN              = 0x61
+       F_ADDSIGS                         = 0x3b
+       F_ALLOCATEALL                     = 0x4
+       F_ALLOCATECONTIG                  = 0x2
+       F_BARRIERFSYNC                    = 0x55
+       F_CHECK_LV                        = 0x62
+       F_CHKCLEAN                        = 0x29
+       F_DUPFD                           = 0x0
+       F_DUPFD_CLOEXEC                   = 0x43
+       F_FINDSIGS                        = 0x4e
+       F_FLUSH_DATA                      = 0x28
+       F_FREEZE_FS                       = 0x35
+       F_FULLFSYNC                       = 0x33
+       F_GETCODEDIR                      = 0x48
+       F_GETFD                           = 0x1
+       F_GETFL                           = 0x3
+       F_GETLK                           = 0x7
+       F_GETLKPID                        = 0x42
+       F_GETNOSIGPIPE                    = 0x4a
+       F_GETOWN                          = 0x5
+       F_GETPATH                         = 0x32
+       F_GETPATH_MTMINFO                 = 0x47
+       F_GETPROTECTIONCLASS              = 0x3f
+       F_GETPROTECTIONLEVEL              = 0x4d
+       F_GLOBAL_NOCACHE                  = 0x37
+       F_LOG2PHYS                        = 0x31
+       F_LOG2PHYS_EXT                    = 0x41
+       F_NOCACHE                         = 0x30
+       F_NODIRECT                        = 0x3e
+       F_OK                              = 0x0
+       F_PATHPKG_CHECK                   = 0x34
+       F_PEOFPOSMODE                     = 0x3
+       F_PREALLOCATE                     = 0x2a
+       F_RDADVISE                        = 0x2c
+       F_RDAHEAD                         = 0x2d
+       F_RDLCK                           = 0x1
+       F_SETBACKINGSTORE                 = 0x46
+       F_SETFD                           = 0x2
+       F_SETFL                           = 0x4
+       F_SETLK                           = 0x8
+       F_SETLKW                          = 0x9
+       F_SETLKWTIMEOUT                   = 0xa
+       F_SETNOSIGPIPE                    = 0x49
+       F_SETOWN                          = 0x6
+       F_SETPROTECTIONCLASS              = 0x40
+       F_SETSIZE                         = 0x2b
+       F_SINGLE_WRITER                   = 0x4c
+       F_THAW_FS                         = 0x36
+       F_TRANSCODEKEY                    = 0x4b
+       F_UNLCK                           = 0x2
+       F_VOLPOSMODE                      = 0x4
+       F_WRLCK                           = 0x3
+       HUPCL                             = 0x4000
+       ICANON                            = 0x100
+       ICMP6_FILTER                      = 0x12
+       ICRNL                             = 0x100
+       IEXTEN                            = 0x400
+       IFF_ALLMULTI                      = 0x200
+       IFF_ALTPHYS                       = 0x4000
+       IFF_BROADCAST                     = 0x2
+       IFF_DEBUG                         = 0x4
+       IFF_LINK0                         = 0x1000
+       IFF_LINK1                         = 0x2000
+       IFF_LINK2                         = 0x4000
+       IFF_LOOPBACK                      = 0x8
+       IFF_MULTICAST                     = 0x8000
+       IFF_NOARP                         = 0x80
+       IFF_NOTRAILERS                    = 0x20
+       IFF_OACTIVE                       = 0x400
+       IFF_POINTOPOINT                   = 0x10
+       IFF_PROMISC                       = 0x100
+       IFF_RUNNING                       = 0x40
+       IFF_SIMPLEX                       = 0x800
+       IFF_UP                            = 0x1
+       IFNAMSIZ                          = 0x10
+       IFT_1822                          = 0x2
+       IFT_AAL5                          = 0x31
+       IFT_ARCNET                        = 0x23
+       IFT_ARCNETPLUS                    = 0x24
+       IFT_ATM                           = 0x25
+       IFT_BRIDGE                        = 0xd1
+       IFT_CARP                          = 0xf8
+       IFT_CELLULAR                      = 0xff
+       IFT_CEPT                          = 0x13
+       IFT_DS3                           = 0x1e
+       IFT_ENC                           = 0xf4
+       IFT_EON                           = 0x19
+       IFT_ETHER                         = 0x6
+       IFT_FAITH                         = 0x38
+       IFT_FDDI                          = 0xf
+       IFT_FRELAY                        = 0x20
+       IFT_FRELAYDCE                     = 0x2c
+       IFT_GIF                           = 0x37
+       IFT_HDH1822                       = 0x3
+       IFT_HIPPI                         = 0x2f
+       IFT_HSSI                          = 0x2e
+       IFT_HY                            = 0xe
+       IFT_IEEE1394                      = 0x90
+       IFT_IEEE8023ADLAG                 = 0x88
+       IFT_ISDNBASIC                     = 0x14
+       IFT_ISDNPRIMARY                   = 0x15
+       IFT_ISO88022LLC                   = 0x29
+       IFT_ISO88023                      = 0x7
+       IFT_ISO88024                      = 0x8
+       IFT_ISO88025                      = 0x9
+       IFT_ISO88026                      = 0xa
+       IFT_L2VLAN                        = 0x87
+       IFT_LAPB                          = 0x10
+       IFT_LOCALTALK                     = 0x2a
+       IFT_LOOP                          = 0x18
+       IFT_MIOX25                        = 0x26
+       IFT_MODEM                         = 0x30
+       IFT_NSIP                          = 0x1b
+       IFT_OTHER                         = 0x1
+       IFT_P10                           = 0xc
+       IFT_P80                           = 0xd
+       IFT_PARA                          = 0x22
+       IFT_PDP                           = 0xff
+       IFT_PFLOG                         = 0xf5
+       IFT_PFSYNC                        = 0xf6
+       IFT_PKTAP                         = 0xfe
+       IFT_PPP                           = 0x17
+       IFT_PROPMUX                       = 0x36
+       IFT_PROPVIRTUAL                   = 0x35
+       IFT_PTPSERIAL                     = 0x16
+       IFT_RS232                         = 0x21
+       IFT_SDLC                          = 0x11
+       IFT_SIP                           = 0x1f
+       IFT_SLIP                          = 0x1c
+       IFT_SMDSDXI                       = 0x2b
+       IFT_SMDSICIP                      = 0x34
+       IFT_SONET                         = 0x27
+       IFT_SONETPATH                     = 0x32
+       IFT_SONETVT                       = 0x33
+       IFT_STARLAN                       = 0xb
+       IFT_STF                           = 0x39
+       IFT_T1                            = 0x12
+       IFT_ULTRA                         = 0x1d
+       IFT_V35                           = 0x2d
+       IFT_X25                           = 0x5
+       IFT_X25DDN                        = 0x4
+       IFT_X25PLE                        = 0x28
+       IFT_XETHER                        = 0x1a
+       IGNBRK                            = 0x1
+       IGNCR                             = 0x80
+       IGNPAR                            = 0x4
+       IMAXBEL                           = 0x2000
+       INLCR                             = 0x40
+       INPCK                             = 0x10
+       IN_CLASSA_HOST                    = 0xffffff
+       IN_CLASSA_MAX                     = 0x80
+       IN_CLASSA_NET                     = 0xff000000
+       IN_CLASSA_NSHIFT                  = 0x18
+       IN_CLASSB_HOST                    = 0xffff
+       IN_CLASSB_MAX                     = 0x10000
+       IN_CLASSB_NET                     = 0xffff0000
+       IN_CLASSB_NSHIFT                  = 0x10
+       IN_CLASSC_HOST                    = 0xff
+       IN_CLASSC_NET                     = 0xffffff00
+       IN_CLASSC_NSHIFT                  = 0x8
+       IN_CLASSD_HOST                    = 0xfffffff
+       IN_CLASSD_NET                     = 0xf0000000
+       IN_CLASSD_NSHIFT                  = 0x1c
+       IN_LINKLOCALNETNUM                = 0xa9fe0000
+       IN_LOOPBACKNET                    = 0x7f
+       IPPROTO_3PC                       = 0x22
+       IPPROTO_ADFS                      = 0x44
+       IPPROTO_AH                        = 0x33
+       IPPROTO_AHIP                      = 0x3d
+       IPPROTO_APES                      = 0x63
+       IPPROTO_ARGUS                     = 0xd
+       IPPROTO_AX25                      = 0x5d
+       IPPROTO_BHA                       = 0x31
+       IPPROTO_BLT                       = 0x1e
+       IPPROTO_BRSATMON                  = 0x4c
+       IPPROTO_CFTP                      = 0x3e
+       IPPROTO_CHAOS                     = 0x10
+       IPPROTO_CMTP                      = 0x26
+       IPPROTO_CPHB                      = 0x49
+       IPPROTO_CPNX                      = 0x48
+       IPPROTO_DDP                       = 0x25
+       IPPROTO_DGP                       = 0x56
+       IPPROTO_DIVERT                    = 0xfe
+       IPPROTO_DONE                      = 0x101
+       IPPROTO_DSTOPTS                   = 0x3c
+       IPPROTO_EGP                       = 0x8
+       IPPROTO_EMCON                     = 0xe
+       IPPROTO_ENCAP                     = 0x62
+       IPPROTO_EON                       = 0x50
+       IPPROTO_ESP                       = 0x32
+       IPPROTO_ETHERIP                   = 0x61
+       IPPROTO_FRAGMENT                  = 0x2c
+       IPPROTO_GGP                       = 0x3
+       IPPROTO_GMTP                      = 0x64
+       IPPROTO_GRE                       = 0x2f
+       IPPROTO_HELLO                     = 0x3f
+       IPPROTO_HMP                       = 0x14
+       IPPROTO_HOPOPTS                   = 0x0
+       IPPROTO_ICMP                      = 0x1
+       IPPROTO_ICMPV6                    = 0x3a
+       IPPROTO_IDP                       = 0x16
+       IPPROTO_IDPR                      = 0x23
+       IPPROTO_IDRP                      = 0x2d
+       IPPROTO_IGMP                      = 0x2
+       IPPROTO_IGP                       = 0x55
+       IPPROTO_IGRP                      = 0x58
+       IPPROTO_IL                        = 0x28
+       IPPROTO_INLSP                     = 0x34
+       IPPROTO_INP                       = 0x20
+       IPPROTO_IP                        = 0x0
+       IPPROTO_IPCOMP                    = 0x6c
+       IPPROTO_IPCV                      = 0x47
+       IPPROTO_IPEIP                     = 0x5e
+       IPPROTO_IPIP                      = 0x4
+       IPPROTO_IPPC                      = 0x43
+       IPPROTO_IPV4                      = 0x4
+       IPPROTO_IPV6                      = 0x29
+       IPPROTO_IRTP                      = 0x1c
+       IPPROTO_KRYPTOLAN                 = 0x41
+       IPPROTO_LARP                      = 0x5b
+       IPPROTO_LEAF1                     = 0x19
+       IPPROTO_LEAF2                     = 0x1a
+       IPPROTO_MAX                       = 0x100
+       IPPROTO_MAXID                     = 0x34
+       IPPROTO_MEAS                      = 0x13
+       IPPROTO_MHRP                      = 0x30
+       IPPROTO_MICP                      = 0x5f
+       IPPROTO_MTP                       = 0x5c
+       IPPROTO_MUX                       = 0x12
+       IPPROTO_ND                        = 0x4d
+       IPPROTO_NHRP                      = 0x36
+       IPPROTO_NONE                      = 0x3b
+       IPPROTO_NSP                       = 0x1f
+       IPPROTO_NVPII                     = 0xb
+       IPPROTO_OSPFIGP                   = 0x59
+       IPPROTO_PGM                       = 0x71
+       IPPROTO_PIGP                      = 0x9
+       IPPROTO_PIM                       = 0x67
+       IPPROTO_PRM                       = 0x15
+       IPPROTO_PUP                       = 0xc
+       IPPROTO_PVP                       = 0x4b
+       IPPROTO_RAW                       = 0xff
+       IPPROTO_RCCMON                    = 0xa
+       IPPROTO_RDP                       = 0x1b
+       IPPROTO_ROUTING                   = 0x2b
+       IPPROTO_RSVP                      = 0x2e
+       IPPROTO_RVD                       = 0x42
+       IPPROTO_SATEXPAK                  = 0x40
+       IPPROTO_SATMON                    = 0x45
+       IPPROTO_SCCSP                     = 0x60
+       IPPROTO_SCTP                      = 0x84
+       IPPROTO_SDRP                      = 0x2a
+       IPPROTO_SEP                       = 0x21
+       IPPROTO_SRPC                      = 0x5a
+       IPPROTO_ST                        = 0x7
+       IPPROTO_SVMTP                     = 0x52
+       IPPROTO_SWIPE                     = 0x35
+       IPPROTO_TCF                       = 0x57
+       IPPROTO_TCP                       = 0x6
+       IPPROTO_TP                        = 0x1d
+       IPPROTO_TPXX                      = 0x27
+       IPPROTO_TRUNK1                    = 0x17
+       IPPROTO_TRUNK2                    = 0x18
+       IPPROTO_TTP                       = 0x54
+       IPPROTO_UDP                       = 0x11
+       IPPROTO_VINES                     = 0x53
+       IPPROTO_VISA                      = 0x46
+       IPPROTO_VMTP                      = 0x51
+       IPPROTO_WBEXPAK                   = 0x4f
+       IPPROTO_WBMON                     = 0x4e
+       IPPROTO_WSN                       = 0x4a
+       IPPROTO_XNET                      = 0xf
+       IPPROTO_XTP                       = 0x24
+       IPV6_2292DSTOPTS                  = 0x17
+       IPV6_2292HOPLIMIT                 = 0x14
+       IPV6_2292HOPOPTS                  = 0x16
+       IPV6_2292NEXTHOP                  = 0x15
+       IPV6_2292PKTINFO                  = 0x13
+       IPV6_2292PKTOPTIONS               = 0x19
+       IPV6_2292RTHDR                    = 0x18
+       IPV6_BINDV6ONLY                   = 0x1b
+       IPV6_BOUND_IF                     = 0x7d
+       IPV6_CHECKSUM                     = 0x1a
+       IPV6_DEFAULT_MULTICAST_HOPS       = 0x1
+       IPV6_DEFAULT_MULTICAST_LOOP       = 0x1
+       IPV6_DEFHLIM                      = 0x40
+       IPV6_FAITH                        = 0x1d
+       IPV6_FLOWINFO_MASK                = 0xffffff0f
+       IPV6_FLOWLABEL_MASK               = 0xffff0f00
+       IPV6_FRAGTTL                      = 0x3c
+       IPV6_FW_ADD                       = 0x1e
+       IPV6_FW_DEL                       = 0x1f
+       IPV6_FW_FLUSH                     = 0x20
+       IPV6_FW_GET                       = 0x22
+       IPV6_FW_ZERO                      = 0x21
+       IPV6_HLIMDEC                      = 0x1
+       IPV6_IPSEC_POLICY                 = 0x1c
+       IPV6_JOIN_GROUP                   = 0xc
+       IPV6_LEAVE_GROUP                  = 0xd
+       IPV6_MAXHLIM                      = 0xff
+       IPV6_MAXOPTHDR                    = 0x800
+       IPV6_MAXPACKET                    = 0xffff
+       IPV6_MAX_GROUP_SRC_FILTER         = 0x200
+       IPV6_MAX_MEMBERSHIPS              = 0xfff
+       IPV6_MAX_SOCK_SRC_FILTER          = 0x80
+       IPV6_MIN_MEMBERSHIPS              = 0x1f
+       IPV6_MMTU                         = 0x500
+       IPV6_MULTICAST_HOPS               = 0xa
+       IPV6_MULTICAST_IF                 = 0x9
+       IPV6_MULTICAST_LOOP               = 0xb
+       IPV6_PORTRANGE                    = 0xe
+       IPV6_PORTRANGE_DEFAULT            = 0x0
+       IPV6_PORTRANGE_HIGH               = 0x1
+       IPV6_PORTRANGE_LOW                = 0x2
+       IPV6_RECVTCLASS                   = 0x23
+       IPV6_RTHDR_LOOSE                  = 0x0
+       IPV6_RTHDR_STRICT                 = 0x1
+       IPV6_RTHDR_TYPE_0                 = 0x0
+       IPV6_SOCKOPT_RESERVED1            = 0x3
+       IPV6_TCLASS                       = 0x24
+       IPV6_UNICAST_HOPS                 = 0x4
+       IPV6_V6ONLY                       = 0x1b
+       IPV6_VERSION                      = 0x60
+       IPV6_VERSION_MASK                 = 0xf0
+       IP_ADD_MEMBERSHIP                 = 0xc
+       IP_ADD_SOURCE_MEMBERSHIP          = 0x46
+       IP_BLOCK_SOURCE                   = 0x48
+       IP_BOUND_IF                       = 0x19
+       IP_DEFAULT_MULTICAST_LOOP         = 0x1
+       IP_DEFAULT_MULTICAST_TTL          = 0x1
+       IP_DF                             = 0x4000
+       IP_DROP_MEMBERSHIP                = 0xd
+       IP_DROP_SOURCE_MEMBERSHIP         = 0x47
+       IP_DUMMYNET_CONFIGURE             = 0x3c
+       IP_DUMMYNET_DEL                   = 0x3d
+       IP_DUMMYNET_FLUSH                 = 0x3e
+       IP_DUMMYNET_GET                   = 0x40
+       IP_FAITH                          = 0x16
+       IP_FW_ADD                         = 0x28
+       IP_FW_DEL                         = 0x29
+       IP_FW_FLUSH                       = 0x2a
+       IP_FW_GET                         = 0x2c
+       IP_FW_RESETLOG                    = 0x2d
+       IP_FW_ZERO                        = 0x2b
+       IP_HDRINCL                        = 0x2
+       IP_IPSEC_POLICY                   = 0x15
+       IP_MAXPACKET                      = 0xffff
+       IP_MAX_GROUP_SRC_FILTER           = 0x200
+       IP_MAX_MEMBERSHIPS                = 0xfff
+       IP_MAX_SOCK_MUTE_FILTER           = 0x80
+       IP_MAX_SOCK_SRC_FILTER            = 0x80
+       IP_MF                             = 0x2000
+       IP_MIN_MEMBERSHIPS                = 0x1f
+       IP_MSFILTER                       = 0x4a
+       IP_MSS                            = 0x240
+       IP_MULTICAST_IF                   = 0x9
+       IP_MULTICAST_IFINDEX              = 0x42
+       IP_MULTICAST_LOOP                 = 0xb
+       IP_MULTICAST_TTL                  = 0xa
+       IP_MULTICAST_VIF                  = 0xe
+       IP_NAT__XXX                       = 0x37
+       IP_OFFMASK                        = 0x1fff
+       IP_OLD_FW_ADD                     = 0x32
+       IP_OLD_FW_DEL                     = 0x33
+       IP_OLD_FW_FLUSH                   = 0x34
+       IP_OLD_FW_GET                     = 0x36
+       IP_OLD_FW_RESETLOG                = 0x38
+       IP_OLD_FW_ZERO                    = 0x35
+       IP_OPTIONS                        = 0x1
+       IP_PKTINFO                        = 0x1a
+       IP_PORTRANGE                      = 0x13
+       IP_PORTRANGE_DEFAULT              = 0x0
+       IP_PORTRANGE_HIGH                 = 0x1
+       IP_PORTRANGE_LOW                  = 0x2
+       IP_RECVDSTADDR                    = 0x7
+       IP_RECVIF                         = 0x14
+       IP_RECVOPTS                       = 0x5
+       IP_RECVPKTINFO                    = 0x1a
+       IP_RECVRETOPTS                    = 0x6
+       IP_RECVTTL                        = 0x18
+       IP_RETOPTS                        = 0x8
+       IP_RF                             = 0x8000
+       IP_RSVP_OFF                       = 0x10
+       IP_RSVP_ON                        = 0xf
+       IP_RSVP_VIF_OFF                   = 0x12
+       IP_RSVP_VIF_ON                    = 0x11
+       IP_STRIPHDR                       = 0x17
+       IP_TOS                            = 0x3
+       IP_TRAFFIC_MGT_BACKGROUND         = 0x41
+       IP_TTL                            = 0x4
+       IP_UNBLOCK_SOURCE                 = 0x49
+       ISIG                              = 0x80
+       ISTRIP                            = 0x20
+       IUTF8                             = 0x4000
+       IXANY                             = 0x800
+       IXOFF                             = 0x400
+       IXON                              = 0x200
+       LOCK_EX                           = 0x2
+       LOCK_NB                           = 0x4
+       LOCK_SH                           = 0x1
+       LOCK_UN                           = 0x8
+       MADV_CAN_REUSE                    = 0x9
+       MADV_DONTNEED                     = 0x4
+       MADV_FREE                         = 0x5
+       MADV_FREE_REUSABLE                = 0x7
+       MADV_FREE_REUSE                   = 0x8
+       MADV_NORMAL                       = 0x0
+       MADV_PAGEOUT                      = 0xa
+       MADV_RANDOM                       = 0x1
+       MADV_SEQUENTIAL                   = 0x2
+       MADV_WILLNEED                     = 0x3
+       MADV_ZERO_WIRED_PAGES             = 0x6
+       MAP_ANON                          = 0x1000
+       MAP_ANONYMOUS                     = 0x1000
+       MAP_COPY                          = 0x2
+       MAP_FILE                          = 0x0
+       MAP_FIXED                         = 0x10
+       MAP_HASSEMAPHORE                  = 0x200
+       MAP_JIT                           = 0x800
+       MAP_NOCACHE                       = 0x400
+       MAP_NOEXTEND                      = 0x100
+       MAP_NORESERVE                     = 0x40
+       MAP_PRIVATE                       = 0x2
+       MAP_RENAME                        = 0x20
+       MAP_RESERVED0080                  = 0x80
+       MAP_RESILIENT_CODESIGN            = 0x2000
+       MAP_RESILIENT_MEDIA               = 0x4000
+       MAP_SHARED                        = 0x1
+       MCL_CURRENT                       = 0x1
+       MCL_FUTURE                        = 0x2
+       MNT_ASYNC                         = 0x40
+       MNT_AUTOMOUNTED                   = 0x400000
+       MNT_CMDFLAGS                      = 0xf0000
+       MNT_CPROTECT                      = 0x80
+       MNT_DEFWRITE                      = 0x2000000
+       MNT_DONTBROWSE                    = 0x100000
+       MNT_DOVOLFS                       = 0x8000
+       MNT_DWAIT                         = 0x4
+       MNT_EXPORTED                      = 0x100
+       MNT_FORCE                         = 0x80000
+       MNT_IGNORE_OWNERSHIP              = 0x200000
+       MNT_JOURNALED                     = 0x800000
+       MNT_LOCAL                         = 0x1000
+       MNT_MULTILABEL                    = 0x4000000
+       MNT_NOATIME                       = 0x10000000
+       MNT_NOBLOCK                       = 0x20000
+       MNT_NODEV                         = 0x10
+       MNT_NOEXEC                        = 0x4
+       MNT_NOSUID                        = 0x8
+       MNT_NOUSERXATTR                   = 0x1000000
+       MNT_NOWAIT                        = 0x2
+       MNT_QUARANTINE                    = 0x400
+       MNT_QUOTA                         = 0x2000
+       MNT_RDONLY                        = 0x1
+       MNT_RELOAD                        = 0x40000
+       MNT_ROOTFS                        = 0x4000
+       MNT_SYNCHRONOUS                   = 0x2
+       MNT_UNION                         = 0x20
+       MNT_UNKNOWNPERMISSIONS            = 0x200000
+       MNT_UPDATE                        = 0x10000
+       MNT_VISFLAGMASK                   = 0x17f0f5ff
+       MNT_WAIT                          = 0x1
+       MSG_CTRUNC                        = 0x20
+       MSG_DONTROUTE                     = 0x4
+       MSG_DONTWAIT                      = 0x80
+       MSG_EOF                           = 0x100
+       MSG_EOR                           = 0x8
+       MSG_FLUSH                         = 0x400
+       MSG_HAVEMORE                      = 0x2000
+       MSG_HOLD                          = 0x800
+       MSG_NEEDSA                        = 0x10000
+       MSG_OOB                           = 0x1
+       MSG_PEEK                          = 0x2
+       MSG_RCVMORE                       = 0x4000
+       MSG_SEND                          = 0x1000
+       MSG_TRUNC                         = 0x10
+       MSG_WAITALL                       = 0x40
+       MSG_WAITSTREAM                    = 0x200
+       MS_ASYNC                          = 0x1
+       MS_DEACTIVATE                     = 0x8
+       MS_INVALIDATE                     = 0x2
+       MS_KILLPAGES                      = 0x4
+       MS_SYNC                           = 0x10
+       NAME_MAX                          = 0xff
+       NET_RT_DUMP                       = 0x1
+       NET_RT_DUMP2                      = 0x7
+       NET_RT_FLAGS                      = 0x2
+       NET_RT_IFLIST                     = 0x3
+       NET_RT_IFLIST2                    = 0x6
+       NET_RT_MAXID                      = 0xa
+       NET_RT_STAT                       = 0x4
+       NET_RT_TRASH                      = 0x5
+       NL0                               = 0x0
+       NL1                               = 0x100
+       NL2                               = 0x200
+       NL3                               = 0x300
+       NLDLY                             = 0x300
+       NOFLSH                            = 0x80000000
+       NOKERNINFO                        = 0x2000000
+       NOTE_ABSOLUTE                     = 0x8
+       NOTE_ATTRIB                       = 0x8
+       NOTE_BACKGROUND                   = 0x40
+       NOTE_CHILD                        = 0x4
+       NOTE_CRITICAL                     = 0x20
+       NOTE_DELETE                       = 0x1
+       NOTE_EXEC                         = 0x20000000
+       NOTE_EXIT                         = 0x80000000
+       NOTE_EXITSTATUS                   = 0x4000000
+       NOTE_EXIT_CSERROR                 = 0x40000
+       NOTE_EXIT_DECRYPTFAIL             = 0x10000
+       NOTE_EXIT_DETAIL                  = 0x2000000
+       NOTE_EXIT_DETAIL_MASK             = 0x70000
+       NOTE_EXIT_MEMORY                  = 0x20000
+       NOTE_EXIT_REPARENTED              = 0x80000
+       NOTE_EXTEND                       = 0x4
+       NOTE_FFAND                        = 0x40000000
+       NOTE_FFCOPY                       = 0xc0000000
+       NOTE_FFCTRLMASK                   = 0xc0000000
+       NOTE_FFLAGSMASK                   = 0xffffff
+       NOTE_FFNOP                        = 0x0
+       NOTE_FFOR                         = 0x80000000
+       NOTE_FORK                         = 0x40000000
+       NOTE_FUNLOCK                      = 0x100
+       NOTE_LEEWAY                       = 0x10
+       NOTE_LINK                         = 0x10
+       NOTE_LOWAT                        = 0x1
+       NOTE_MACH_CONTINUOUS_TIME         = 0x80
+       NOTE_NONE                         = 0x80
+       NOTE_NSECONDS                     = 0x4
+       NOTE_OOB                          = 0x2
+       NOTE_PCTRLMASK                    = -0x100000
+       NOTE_PDATAMASK                    = 0xfffff
+       NOTE_REAP                         = 0x10000000
+       NOTE_RENAME                       = 0x20
+       NOTE_REVOKE                       = 0x40
+       NOTE_SECONDS                      = 0x1
+       NOTE_SIGNAL                       = 0x8000000
+       NOTE_TRACK                        = 0x1
+       NOTE_TRACKERR                     = 0x2
+       NOTE_TRIGGER                      = 0x1000000
+       NOTE_USECONDS                     = 0x2
+       NOTE_VM_ERROR                     = 0x10000000
+       NOTE_VM_PRESSURE                  = 0x80000000
+       NOTE_VM_PRESSURE_SUDDEN_TERMINATE = 0x20000000
+       NOTE_VM_PRESSURE_TERMINATE        = 0x40000000
+       NOTE_WRITE                        = 0x2
+       OCRNL                             = 0x10
+       OFDEL                             = 0x20000
+       OFILL                             = 0x80
+       ONLCR                             = 0x2
+       ONLRET                            = 0x40
+       ONOCR                             = 0x20
+       ONOEOT                            = 0x8
+       OPOST                             = 0x1
+       OXTABS                            = 0x4
+       O_ACCMODE                         = 0x3
+       O_ALERT                           = 0x20000000
+       O_APPEND                          = 0x8
+       O_ASYNC                           = 0x40
+       O_CLOEXEC                         = 0x1000000
+       O_CREAT                           = 0x200
+       O_DIRECTORY                       = 0x100000
+       O_DP_GETRAWENCRYPTED              = 0x1
+       O_DP_GETRAWUNENCRYPTED            = 0x2
+       O_DSYNC                           = 0x400000
+       O_EVTONLY                         = 0x8000
+       O_EXCL                            = 0x800
+       O_EXLOCK                          = 0x20
+       O_FSYNC                           = 0x80
+       O_NDELAY                          = 0x4
+       O_NOCTTY                          = 0x20000
+       O_NOFOLLOW                        = 0x100
+       O_NONBLOCK                        = 0x4
+       O_POPUP                           = 0x80000000
+       O_RDONLY                          = 0x0
+       O_RDWR                            = 0x2
+       O_SHLOCK                          = 0x10
+       O_SYMLINK                         = 0x200000
+       O_SYNC                            = 0x80
+       O_TRUNC                           = 0x400
+       O_WRONLY                          = 0x1
+       PARENB                            = 0x1000
+       PARMRK                            = 0x8
+       PARODD                            = 0x2000
+       PENDIN                            = 0x20000000
+       PRIO_PGRP                         = 0x1
+       PRIO_PROCESS                      = 0x0
+       PRIO_USER                         = 0x2
+       PROT_EXEC                         = 0x4
+       PROT_NONE                         = 0x0
+       PROT_READ                         = 0x1
+       PROT_WRITE                        = 0x2
+       PT_ATTACH                         = 0xa
+       PT_ATTACHEXC                      = 0xe
+       PT_CONTINUE                       = 0x7
+       PT_DENY_ATTACH                    = 0x1f
+       PT_DETACH                         = 0xb
+       PT_FIRSTMACH                      = 0x20
+       PT_FORCEQUOTA                     = 0x1e
+       PT_KILL                           = 0x8
+       PT_READ_D                         = 0x2
+       PT_READ_I                         = 0x1
+       PT_READ_U                         = 0x3
+       PT_SIGEXC                         = 0xc
+       PT_STEP                           = 0x9
+       PT_THUPDATE                       = 0xd
+       PT_TRACE_ME                       = 0x0
+       PT_WRITE_D                        = 0x5
+       PT_WRITE_I                        = 0x4
+       PT_WRITE_U                        = 0x6
+       RLIMIT_AS                         = 0x5
+       RLIMIT_CORE                       = 0x4
+       RLIMIT_CPU                        = 0x0
+       RLIMIT_CPU_USAGE_MONITOR          = 0x2
+       RLIMIT_DATA                       = 0x2
+       RLIMIT_FSIZE                      = 0x1
+       RLIMIT_MEMLOCK                    = 0x6
+       RLIMIT_NOFILE                     = 0x8
+       RLIMIT_NPROC                      = 0x7
+       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_DST                           = 0x1
+       RTA_GATEWAY                       = 0x2
+       RTA_GENMASK                       = 0x8
+       RTA_IFA                           = 0x20
+       RTA_IFP                           = 0x10
+       RTA_NETMASK                       = 0x4
+       RTF_BLACKHOLE                     = 0x1000
+       RTF_BROADCAST                     = 0x400000
+       RTF_CLONING                       = 0x100
+       RTF_CONDEMNED                     = 0x2000000
+       RTF_DELCLONE                      = 0x80
+       RTF_DONE                          = 0x40
+       RTF_DYNAMIC                       = 0x10
+       RTF_GATEWAY                       = 0x2
+       RTF_HOST                          = 0x4
+       RTF_IFREF                         = 0x4000000
+       RTF_IFSCOPE                       = 0x1000000
+       RTF_LLINFO                        = 0x400
+       RTF_LOCAL                         = 0x200000
+       RTF_MODIFIED                      = 0x20
+       RTF_MULTICAST                     = 0x800000
+       RTF_NOIFREF                       = 0x2000
+       RTF_PINNED                        = 0x100000
+       RTF_PRCLONING                     = 0x10000
+       RTF_PROTO1                        = 0x8000
+       RTF_PROTO2                        = 0x4000
+       RTF_PROTO3                        = 0x40000
+       RTF_PROXY                         = 0x8000000
+       RTF_REJECT                        = 0x8
+       RTF_ROUTER                        = 0x10000000
+       RTF_STATIC                        = 0x800
+       RTF_UP                            = 0x1
+       RTF_WASCLONED                     = 0x20000
+       RTF_XRESOLVE                      = 0x200
+       RTM_ADD                           = 0x1
+       RTM_CHANGE                        = 0x3
+       RTM_DELADDR                       = 0xd
+       RTM_DELETE                        = 0x2
+       RTM_DELMADDR                      = 0x10
+       RTM_GET                           = 0x4
+       RTM_GET2                          = 0x14
+       RTM_IFINFO                        = 0xe
+       RTM_IFINFO2                       = 0x12
+       RTM_LOCK                          = 0x8
+       RTM_LOSING                        = 0x5
+       RTM_MISS                          = 0x7
+       RTM_NEWADDR                       = 0xc
+       RTM_NEWMADDR                      = 0xf
+       RTM_NEWMADDR2                     = 0x13
+       RTM_OLDADD                        = 0x9
+       RTM_OLDDEL                        = 0xa
+       RTM_REDIRECT                      = 0x6
+       RTM_RESOLVE                       = 0xb
+       RTM_RTTUNIT                       = 0xf4240
+       RTM_VERSION                       = 0x5
+       RTV_EXPIRE                        = 0x4
+       RTV_HOPCOUNT                      = 0x2
+       RTV_MTU                           = 0x1
+       RTV_RPIPE                         = 0x8
+       RTV_RTT                           = 0x40
+       RTV_RTTVAR                        = 0x80
+       RTV_SPIPE                         = 0x10
+       RTV_SSTHRESH                      = 0x20
+       RUSAGE_CHILDREN                   = -0x1
+       RUSAGE_SELF                       = 0x0
+       SCM_CREDS                         = 0x3
+       SCM_RIGHTS                        = 0x1
+       SCM_TIMESTAMP                     = 0x2
+       SCM_TIMESTAMP_MONOTONIC           = 0x4
+       SHUT_RD                           = 0x0
+       SHUT_RDWR                         = 0x2
+       SHUT_WR                           = 0x1
+       SIOCADDMULTI                      = 0x80206931
+       SIOCAIFADDR                       = 0x8040691a
+       SIOCARPIPLL                       = 0xc0206928
+       SIOCATMARK                        = 0x40047307
+       SIOCAUTOADDR                      = 0xc0206926
+       SIOCAUTONETMASK                   = 0x80206927
+       SIOCDELMULTI                      = 0x80206932
+       SIOCDIFADDR                       = 0x80206919
+       SIOCDIFPHYADDR                    = 0x80206941
+       SIOCGDRVSPEC                      = 0xc028697b
+       SIOCGETVLAN                       = 0xc020697f
+       SIOCGHIWAT                        = 0x40047301
+       SIOCGIFADDR                       = 0xc0206921
+       SIOCGIFALTMTU                     = 0xc0206948
+       SIOCGIFASYNCMAP                   = 0xc020697c
+       SIOCGIFBOND                       = 0xc0206947
+       SIOCGIFBRDADDR                    = 0xc0206923
+       SIOCGIFCAP                        = 0xc020695b
+       SIOCGIFCONF                       = 0xc00c6924
+       SIOCGIFDEVMTU                     = 0xc0206944
+       SIOCGIFDSTADDR                    = 0xc0206922
+       SIOCGIFFLAGS                      = 0xc0206911
+       SIOCGIFGENERIC                    = 0xc020693a
+       SIOCGIFKPI                        = 0xc0206987
+       SIOCGIFMAC                        = 0xc0206982
+       SIOCGIFMEDIA                      = 0xc02c6938
+       SIOCGIFMETRIC                     = 0xc0206917
+       SIOCGIFMTU                        = 0xc0206933
+       SIOCGIFNETMASK                    = 0xc0206925
+       SIOCGIFPDSTADDR                   = 0xc0206940
+       SIOCGIFPHYS                       = 0xc0206935
+       SIOCGIFPSRCADDR                   = 0xc020693f
+       SIOCGIFSTATUS                     = 0xc331693d
+       SIOCGIFVLAN                       = 0xc020697f
+       SIOCGIFWAKEFLAGS                  = 0xc0206988
+       SIOCGLOWAT                        = 0x40047303
+       SIOCGPGRP                         = 0x40047309
+       SIOCIFCREATE                      = 0xc0206978
+       SIOCIFCREATE2                     = 0xc020697a
+       SIOCIFDESTROY                     = 0x80206979
+       SIOCIFGCLONERS                    = 0xc0106981
+       SIOCRSLVMULTI                     = 0xc010693b
+       SIOCSDRVSPEC                      = 0x8028697b
+       SIOCSETVLAN                       = 0x8020697e
+       SIOCSHIWAT                        = 0x80047300
+       SIOCSIFADDR                       = 0x8020690c
+       SIOCSIFALTMTU                     = 0x80206945
+       SIOCSIFASYNCMAP                   = 0x8020697d
+       SIOCSIFBOND                       = 0x80206946
+       SIOCSIFBRDADDR                    = 0x80206913
+       SIOCSIFCAP                        = 0x8020695a
+       SIOCSIFDSTADDR                    = 0x8020690e
+       SIOCSIFFLAGS                      = 0x80206910
+       SIOCSIFGENERIC                    = 0x80206939
+       SIOCSIFKPI                        = 0x80206986
+       SIOCSIFLLADDR                     = 0x8020693c
+       SIOCSIFMAC                        = 0x80206983
+       SIOCSIFMEDIA                      = 0xc0206937
+       SIOCSIFMETRIC                     = 0x80206918
+       SIOCSIFMTU                        = 0x80206934
+       SIOCSIFNETMASK                    = 0x80206916
+       SIOCSIFPHYADDR                    = 0x8040693e
+       SIOCSIFPHYS                       = 0x80206936
+       SIOCSIFVLAN                       = 0x8020697e
+       SIOCSLOWAT                        = 0x80047302
+       SIOCSPGRP                         = 0x80047308
+       SOCK_DGRAM                        = 0x2
+       SOCK_MAXADDRLEN                   = 0xff
+       SOCK_RAW                          = 0x3
+       SOCK_RDM                          = 0x4
+       SOCK_SEQPACKET                    = 0x5
+       SOCK_STREAM                       = 0x1
+       SOL_SOCKET                        = 0xffff
+       SOMAXCONN                         = 0x80
+       SO_ACCEPTCONN                     = 0x2
+       SO_BROADCAST                      = 0x20
+       SO_DEBUG                          = 0x1
+       SO_DONTROUTE                      = 0x10
+       SO_DONTTRUNC                      = 0x2000
+       SO_ERROR                          = 0x1007
+       SO_KEEPALIVE                      = 0x8
+       SO_LABEL                          = 0x1010
+       SO_LINGER                         = 0x80
+       SO_LINGER_SEC                     = 0x1080
+       SO_NETSVC_MARKING_LEVEL           = 0x1119
+       SO_NET_SERVICE_TYPE               = 0x1116
+       SO_NKE                            = 0x1021
+       SO_NOADDRERR                      = 0x1023
+       SO_NOSIGPIPE                      = 0x1022
+       SO_NOTIFYCONFLICT                 = 0x1026
+       SO_NP_EXTENSIONS                  = 0x1083
+       SO_NREAD                          = 0x1020
+       SO_NUMRCVPKT                      = 0x1112
+       SO_NWRITE                         = 0x1024
+       SO_OOBINLINE                      = 0x100
+       SO_PEERLABEL                      = 0x1011
+       SO_RANDOMPORT                     = 0x1082
+       SO_RCVBUF                         = 0x1002
+       SO_RCVLOWAT                       = 0x1004
+       SO_RCVTIMEO                       = 0x1006
+       SO_REUSEADDR                      = 0x4
+       SO_REUSEPORT                      = 0x200
+       SO_REUSESHAREUID                  = 0x1025
+       SO_SNDBUF                         = 0x1001
+       SO_SNDLOWAT                       = 0x1003
+       SO_SNDTIMEO                       = 0x1005
+       SO_TIMESTAMP                      = 0x400
+       SO_TIMESTAMP_MONOTONIC            = 0x800
+       SO_TYPE                           = 0x1008
+       SO_UPCALLCLOSEWAIT                = 0x1027
+       SO_USELOOPBACK                    = 0x40
+       SO_WANTMORE                       = 0x4000
+       SO_WANTOOBFLAG                    = 0x8000
+       S_IEXEC                           = 0x40
+       S_IFBLK                           = 0x6000
+       S_IFCHR                           = 0x2000
+       S_IFDIR                           = 0x4000
+       S_IFIFO                           = 0x1000
+       S_IFLNK                           = 0xa000
+       S_IFMT                            = 0xf000
+       S_IFREG                           = 0x8000
+       S_IFSOCK                          = 0xc000
+       S_IFWHT                           = 0xe000
+       S_IREAD                           = 0x100
+       S_IRGRP                           = 0x20
+       S_IROTH                           = 0x4
+       S_IRUSR                           = 0x100
+       S_IRWXG                           = 0x38
+       S_IRWXO                           = 0x7
+       S_IRWXU                           = 0x1c0
+       S_ISGID                           = 0x400
+       S_ISTXT                           = 0x200
+       S_ISUID                           = 0x800
+       S_ISVTX                           = 0x200
+       S_IWGRP                           = 0x10
+       S_IWOTH                           = 0x2
+       S_IWRITE                          = 0x80
+       S_IWUSR                           = 0x80
+       S_IXGRP                           = 0x8
+       S_IXOTH                           = 0x1
+       S_IXUSR                           = 0x40
+       TAB0                              = 0x0
+       TAB1                              = 0x400
+       TAB2                              = 0x800
+       TAB3                              = 0x4
+       TABDLY                            = 0xc04
+       TCIFLUSH                          = 0x1
+       TCIOFF                            = 0x3
+       TCIOFLUSH                         = 0x3
+       TCION                             = 0x4
+       TCOFLUSH                          = 0x2
+       TCOOFF                            = 0x1
+       TCOON                             = 0x2
+       TCP_CONNECTIONTIMEOUT             = 0x20
+       TCP_CONNECTION_INFO               = 0x106
+       TCP_ENABLE_ECN                    = 0x104
+       TCP_FASTOPEN                      = 0x105
+       TCP_KEEPALIVE                     = 0x10
+       TCP_KEEPCNT                       = 0x102
+       TCP_KEEPINTVL                     = 0x101
+       TCP_MAXHLEN                       = 0x3c
+       TCP_MAXOLEN                       = 0x28
+       TCP_MAXSEG                        = 0x2
+       TCP_MAXWIN                        = 0xffff
+       TCP_MAX_SACK                      = 0x4
+       TCP_MAX_WINSHIFT                  = 0xe
+       TCP_MINMSS                        = 0xd8
+       TCP_MSS                           = 0x200
+       TCP_NODELAY                       = 0x1
+       TCP_NOOPT                         = 0x8
+       TCP_NOPUSH                        = 0x4
+       TCP_NOTSENT_LOWAT                 = 0x201
+       TCP_RXT_CONNDROPTIME              = 0x80
+       TCP_RXT_FINDROP                   = 0x100
+       TCP_SENDMOREACKS                  = 0x103
+       TCSAFLUSH                         = 0x2
+       TIOCCBRK                          = 0x2000747a
+       TIOCCDTR                          = 0x20007478
+       TIOCCONS                          = 0x80047462
+       TIOCDCDTIMESTAMP                  = 0x40107458
+       TIOCDRAIN                         = 0x2000745e
+       TIOCDSIMICROCODE                  = 0x20007455
+       TIOCEXCL                          = 0x2000740d
+       TIOCEXT                           = 0x80047460
+       TIOCFLUSH                         = 0x80047410
+       TIOCGDRAINWAIT                    = 0x40047456
+       TIOCGETA                          = 0x40487413
+       TIOCGETD                          = 0x4004741a
+       TIOCGPGRP                         = 0x40047477
+       TIOCGWINSZ                        = 0x40087468
+       TIOCIXOFF                         = 0x20007480
+       TIOCIXON                          = 0x20007481
+       TIOCMBIC                          = 0x8004746b
+       TIOCMBIS                          = 0x8004746c
+       TIOCMGDTRWAIT                     = 0x4004745a
+       TIOCMGET                          = 0x4004746a
+       TIOCMODG                          = 0x40047403
+       TIOCMODS                          = 0x80047404
+       TIOCMSDTRWAIT                     = 0x8004745b
+       TIOCMSET                          = 0x8004746d
+       TIOCM_CAR                         = 0x40
+       TIOCM_CD                          = 0x40
+       TIOCM_CTS                         = 0x20
+       TIOCM_DSR                         = 0x100
+       TIOCM_DTR                         = 0x2
+       TIOCM_LE                          = 0x1
+       TIOCM_RI                          = 0x80
+       TIOCM_RNG                         = 0x80
+       TIOCM_RTS                         = 0x4
+       TIOCM_SR                          = 0x10
+       TIOCM_ST                          = 0x8
+       TIOCNOTTY                         = 0x20007471
+       TIOCNXCL                          = 0x2000740e
+       TIOCOUTQ                          = 0x40047473
+       TIOCPKT                           = 0x80047470
+       TIOCPKT_DATA                      = 0x0
+       TIOCPKT_DOSTOP                    = 0x20
+       TIOCPKT_FLUSHREAD                 = 0x1
+       TIOCPKT_FLUSHWRITE                = 0x2
+       TIOCPKT_IOCTL                     = 0x40
+       TIOCPKT_NOSTOP                    = 0x10
+       TIOCPKT_START                     = 0x8
+       TIOCPKT_STOP                      = 0x4
+       TIOCPTYGNAME                      = 0x40807453
+       TIOCPTYGRANT                      = 0x20007454
+       TIOCPTYUNLK                       = 0x20007452
+       TIOCREMOTE                        = 0x80047469
+       TIOCSBRK                          = 0x2000747b
+       TIOCSCONS                         = 0x20007463
+       TIOCSCTTY                         = 0x20007461
+       TIOCSDRAINWAIT                    = 0x80047457
+       TIOCSDTR                          = 0x20007479
+       TIOCSETA                          = 0x80487414
+       TIOCSETAF                         = 0x80487416
+       TIOCSETAW                         = 0x80487415
+       TIOCSETD                          = 0x8004741b
+       TIOCSIG                           = 0x2000745f
+       TIOCSPGRP                         = 0x80047476
+       TIOCSTART                         = 0x2000746e
+       TIOCSTAT                          = 0x20007465
+       TIOCSTI                           = 0x80017472
+       TIOCSTOP                          = 0x2000746f
+       TIOCSWINSZ                        = 0x80087467
+       TIOCTIMESTAMP                     = 0x40107459
+       TIOCUCNTL                         = 0x80047466
+       TOSTOP                            = 0x400000
+       VDISCARD                          = 0xf
+       VDSUSP                            = 0xb
+       VEOF                              = 0x0
+       VEOL                              = 0x1
+       VEOL2                             = 0x2
+       VERASE                            = 0x3
+       VINTR                             = 0x8
+       VKILL                             = 0x5
+       VLNEXT                            = 0xe
+       VMIN                              = 0x10
+       VM_LOADAVG                        = 0x2
+       VM_MACHFACTOR                     = 0x4
+       VM_MAXID                          = 0x6
+       VM_METER                          = 0x1
+       VM_SWAPUSAGE                      = 0x5
+       VQUIT                             = 0x9
+       VREPRINT                          = 0x6
+       VSTART                            = 0xc
+       VSTATUS                           = 0x12
+       VSTOP                             = 0xd
+       VSUSP                             = 0xa
+       VT0                               = 0x0
+       VT1                               = 0x10000
+       VTDLY                             = 0x10000
+       VTIME                             = 0x11
+       VWERASE                           = 0x4
+       WCONTINUED                        = 0x10
+       WCOREFLAG                         = 0x80
+       WEXITED                           = 0x4
+       WNOHANG                           = 0x1
+       WNOWAIT                           = 0x20
+       WORDSIZE                          = 0x40
+       WSTOPPED                          = 0x8
+       WUNTRACED                         = 0x2
+)
+
+// Errors
+const (
+       E2BIG           = syscall.Errno(0x7)
+       EACCES          = syscall.Errno(0xd)
+       EADDRINUSE      = syscall.Errno(0x30)
+       EADDRNOTAVAIL   = syscall.Errno(0x31)
+       EAFNOSUPPORT    = syscall.Errno(0x2f)
+       EAGAIN          = syscall.Errno(0x23)
+       EALREADY        = syscall.Errno(0x25)
+       EAUTH           = syscall.Errno(0x50)
+       EBADARCH        = syscall.Errno(0x56)
+       EBADEXEC        = syscall.Errno(0x55)
+       EBADF           = syscall.Errno(0x9)
+       EBADMACHO       = syscall.Errno(0x58)
+       EBADMSG         = syscall.Errno(0x5e)
+       EBADRPC         = syscall.Errno(0x48)
+       EBUSY           = syscall.Errno(0x10)
+       ECANCELED       = syscall.Errno(0x59)
+       ECHILD          = syscall.Errno(0xa)
+       ECONNABORTED    = syscall.Errno(0x35)
+       ECONNREFUSED    = syscall.Errno(0x3d)
+       ECONNRESET      = syscall.Errno(0x36)
+       EDEADLK         = syscall.Errno(0xb)
+       EDESTADDRREQ    = syscall.Errno(0x27)
+       EDEVERR         = syscall.Errno(0x53)
+       EDOM            = syscall.Errno(0x21)
+       EDQUOT          = syscall.Errno(0x45)
+       EEXIST          = syscall.Errno(0x11)
+       EFAULT          = syscall.Errno(0xe)
+       EFBIG           = syscall.Errno(0x1b)
+       EFTYPE          = syscall.Errno(0x4f)
+       EHOSTDOWN       = syscall.Errno(0x40)
+       EHOSTUNREACH    = syscall.Errno(0x41)
+       EIDRM           = syscall.Errno(0x5a)
+       EILSEQ          = syscall.Errno(0x5c)
+       EINPROGRESS     = syscall.Errno(0x24)
+       EINTR           = syscall.Errno(0x4)
+       EINVAL          = syscall.Errno(0x16)
+       EIO             = syscall.Errno(0x5)
+       EISCONN         = syscall.Errno(0x38)
+       EISDIR          = syscall.Errno(0x15)
+       ELAST           = syscall.Errno(0x6a)
+       ELOOP           = syscall.Errno(0x3e)
+       EMFILE          = syscall.Errno(0x18)
+       EMLINK          = syscall.Errno(0x1f)
+       EMSGSIZE        = syscall.Errno(0x28)
+       EMULTIHOP       = syscall.Errno(0x5f)
+       ENAMETOOLONG    = syscall.Errno(0x3f)
+       ENEEDAUTH       = syscall.Errno(0x51)
+       ENETDOWN        = syscall.Errno(0x32)
+       ENETRESET       = syscall.Errno(0x34)
+       ENETUNREACH     = syscall.Errno(0x33)
+       ENFILE          = syscall.Errno(0x17)
+       ENOATTR         = syscall.Errno(0x5d)
+       ENOBUFS         = syscall.Errno(0x37)
+       ENODATA         = syscall.Errno(0x60)
+       ENODEV          = syscall.Errno(0x13)
+       ENOENT          = syscall.Errno(0x2)
+       ENOEXEC         = syscall.Errno(0x8)
+       ENOLCK          = syscall.Errno(0x4d)
+       ENOLINK         = syscall.Errno(0x61)
+       ENOMEM          = syscall.Errno(0xc)
+       ENOMSG          = syscall.Errno(0x5b)
+       ENOPOLICY       = syscall.Errno(0x67)
+       ENOPROTOOPT     = syscall.Errno(0x2a)
+       ENOSPC          = syscall.Errno(0x1c)
+       ENOSR           = syscall.Errno(0x62)
+       ENOSTR          = syscall.Errno(0x63)
+       ENOSYS          = syscall.Errno(0x4e)
+       ENOTBLK         = syscall.Errno(0xf)
+       ENOTCONN        = syscall.Errno(0x39)
+       ENOTDIR         = syscall.Errno(0x14)
+       ENOTEMPTY       = syscall.Errno(0x42)
+       ENOTRECOVERABLE = syscall.Errno(0x68)
+       ENOTSOCK        = syscall.Errno(0x26)
+       ENOTSUP         = syscall.Errno(0x2d)
+       ENOTTY          = syscall.Errno(0x19)
+       ENXIO           = syscall.Errno(0x6)
+       EOPNOTSUPP      = syscall.Errno(0x66)
+       EOVERFLOW       = syscall.Errno(0x54)
+       EOWNERDEAD      = syscall.Errno(0x69)
+       EPERM           = syscall.Errno(0x1)
+       EPFNOSUPPORT    = syscall.Errno(0x2e)
+       EPIPE           = syscall.Errno(0x20)
+       EPROCLIM        = syscall.Errno(0x43)
+       EPROCUNAVAIL    = syscall.Errno(0x4c)
+       EPROGMISMATCH   = syscall.Errno(0x4b)
+       EPROGUNAVAIL    = syscall.Errno(0x4a)
+       EPROTO          = syscall.Errno(0x64)
+       EPROTONOSUPPORT = syscall.Errno(0x2b)
+       EPROTOTYPE      = syscall.Errno(0x29)
+       EPWROFF         = syscall.Errno(0x52)
+       EQFULL          = syscall.Errno(0x6a)
+       ERANGE          = syscall.Errno(0x22)
+       EREMOTE         = syscall.Errno(0x47)
+       EROFS           = syscall.Errno(0x1e)
+       ERPCMISMATCH    = syscall.Errno(0x49)
+       ESHLIBVERS      = syscall.Errno(0x57)
+       ESHUTDOWN       = syscall.Errno(0x3a)
+       ESOCKTNOSUPPORT = syscall.Errno(0x2c)
+       ESPIPE          = syscall.Errno(0x1d)
+       ESRCH           = syscall.Errno(0x3)
+       ESTALE          = syscall.Errno(0x46)
+       ETIME           = syscall.Errno(0x65)
+       ETIMEDOUT       = syscall.Errno(0x3c)
+       ETOOMANYREFS    = syscall.Errno(0x3b)
+       ETXTBSY         = syscall.Errno(0x1a)
+       EUSERS          = syscall.Errno(0x44)
+       EWOULDBLOCK     = syscall.Errno(0x23)
+       EXDEV           = syscall.Errno(0x12)
+)
+
+// Signals
+const (
+       SIGABRT   = syscall.Signal(0x6)
+       SIGALRM   = syscall.Signal(0xe)
+       SIGBUS    = syscall.Signal(0xa)
+       SIGCHLD   = syscall.Signal(0x14)
+       SIGCONT   = syscall.Signal(0x13)
+       SIGEMT    = syscall.Signal(0x7)
+       SIGFPE    = syscall.Signal(0x8)
+       SIGHUP    = syscall.Signal(0x1)
+       SIGILL    = syscall.Signal(0x4)
+       SIGINFO   = syscall.Signal(0x1d)
+       SIGINT    = syscall.Signal(0x2)
+       SIGIO     = syscall.Signal(0x17)
+       SIGIOT    = syscall.Signal(0x6)
+       SIGKILL   = syscall.Signal(0x9)
+       SIGPIPE   = syscall.Signal(0xd)
+       SIGPROF   = syscall.Signal(0x1b)
+       SIGQUIT   = syscall.Signal(0x3)
+       SIGSEGV   = syscall.Signal(0xb)
+       SIGSTOP   = syscall.Signal(0x11)
+       SIGSYS    = syscall.Signal(0xc)
+       SIGTERM   = syscall.Signal(0xf)
+       SIGTRAP   = syscall.Signal(0x5)
+       SIGTSTP   = syscall.Signal(0x12)
+       SIGTTIN   = syscall.Signal(0x15)
+       SIGTTOU   = syscall.Signal(0x16)
+       SIGURG    = syscall.Signal(0x10)
+       SIGUSR1   = syscall.Signal(0x1e)
+       SIGUSR2   = syscall.Signal(0x1f)
+       SIGVTALRM = syscall.Signal(0x1a)
+       SIGWINCH  = syscall.Signal(0x1c)
+       SIGXCPU   = syscall.Signal(0x18)
+       SIGXFSZ   = syscall.Signal(0x19)
+)
+
+// Error table
+var errors = [...]string{
+       1:   "operation not permitted",
+       2:   "no such file or directory",
+       3:   "no such process",
+       4:   "interrupted system call",
+       5:   "input/output error",
+       6:   "device not configured",
+       7:   "argument list too long",
+       8:   "exec format error",
+       9:   "bad file descriptor",
+       10:  "no child processes",
+       11:  "resource deadlock avoided",
+       12:  "cannot allocate memory",
+       13:  "permission denied",
+       14:  "bad address",
+       15:  "block device required",
+       16:  "resource busy",
+       17:  "file exists",
+       18:  "cross-device link",
+       19:  "operation not supported by device",
+       20:  "not a directory",
+       21:  "is a directory",
+       22:  "invalid argument",
+       23:  "too many open files in system",
+       24:  "too many open files",
+       25:  "inappropriate ioctl for device",
+       26:  "text file busy",
+       27:  "file too large",
+       28:  "no space left on device",
+       29:  "illegal seek",
+       30:  "read-only file system",
+       31:  "too many links",
+       32:  "broken pipe",
+       33:  "numerical argument out of domain",
+       34:  "result too large",
+       35:  "resource temporarily unavailable",
+       36:  "operation now in progress",
+       37:  "operation already in progress",
+       38:  "socket operation on non-socket",
+       39:  "destination address required",
+       40:  "message too long",
+       41:  "protocol wrong type for socket",
+       42:  "protocol not available",
+       43:  "protocol not supported",
+       44:  "socket type not supported",
+       45:  "operation not supported",
+       46:  "protocol family not supported",
+       47:  "address family not supported by protocol family",
+       48:  "address already in use",
+       49:  "can't assign requested address",
+       50:  "network is down",
+       51:  "network is unreachable",
+       52:  "network dropped connection on reset",
+       53:  "software caused connection abort",
+       54:  "connection reset by peer",
+       55:  "no buffer space available",
+       56:  "socket is already connected",
+       57:  "socket is not connected",
+       58:  "can't send after socket shutdown",
+       59:  "too many references: can't splice",
+       60:  "operation timed out",
+       61:  "connection refused",
+       62:  "too many levels of symbolic links",
+       63:  "file name too long",
+       64:  "host is down",
+       65:  "no route to host",
+       66:  "directory not empty",
+       67:  "too many processes",
+       68:  "too many users",
+       69:  "disc quota exceeded",
+       70:  "stale NFS file handle",
+       71:  "too many levels of remote in path",
+       72:  "RPC struct is bad",
+       73:  "RPC version wrong",
+       74:  "RPC prog. not avail",
+       75:  "program version wrong",
+       76:  "bad procedure for program",
+       77:  "no locks available",
+       78:  "function not implemented",
+       79:  "inappropriate file type or format",
+       80:  "authentication error",
+       81:  "need authenticator",
+       82:  "device power is off",
+       83:  "device error",
+       84:  "value too large to be stored in data type",
+       85:  "bad executable (or shared library)",
+       86:  "bad CPU type in executable",
+       87:  "shared library version mismatch",
+       88:  "malformed Mach-o file",
+       89:  "operation canceled",
+       90:  "identifier removed",
+       91:  "no message of desired type",
+       92:  "illegal byte sequence",
+       93:  "attribute not found",
+       94:  "bad message",
+       95:  "EMULTIHOP (Reserved)",
+       96:  "no message available on STREAM",
+       97:  "ENOLINK (Reserved)",
+       98:  "no STREAM resources",
+       99:  "not a STREAM",
+       100: "protocol error",
+       101: "STREAM ioctl timeout",
+       102: "operation not supported on socket",
+       103: "policy not found",
+       104: "state not recoverable",
+       105: "previous owner died",
+       106: "interface output queue is full",
+}
+
+// Signal table
+var signals = [...]string{
+       1:  "hangup",
+       2:  "interrupt",
+       3:  "quit",
+       4:  "illegal instruction",
+       5:  "trace/BPT trap",
+       6:  "abort trap",
+       7:  "EMT trap",
+       8:  "floating point exception",
+       9:  "killed",
+       10: "bus error",
+       11: "segmentation fault",
+       12: "bad system call",
+       13: "broken pipe",
+       14: "alarm clock",
+       15: "terminated",
+       16: "urgent I/O condition",
+       17: "suspended (signal)",
+       18: "suspended",
+       19: "continued",
+       20: "child exited",
+       21: "stopped (tty input)",
+       22: "stopped (tty output)",
+       23: "I/O possible",
+       24: "cputime limit exceeded",
+       25: "filesize limit exceeded",
+       26: "virtual timer expired",
+       27: "profiling timer expired",
+       28: "window size changes",
+       29: "information request",
+       30: "user defined signal 1",
+       31: "user defined signal 2",
+}
diff --git a/vendor/golang.org/x/sys/unix/zerrors_darwin_arm64.go b/vendor/golang.org/x/sys/unix/zerrors_darwin_arm64.go
new file mode 100644 (file)
index 0000000..cc8cc5b
--- /dev/null
@@ -0,0 +1,1673 @@
+// mkerrors.sh -m64
+// Code generated by the command above; see README.md. DO NOT EDIT.
+
+// +build arm64,darwin
+
+// Created by cgo -godefs - DO NOT EDIT
+// cgo -godefs -- -m64 _const.go
+
+package unix
+
+import "syscall"
+
+const (
+       AF_APPLETALK                      = 0x10
+       AF_CCITT                          = 0xa
+       AF_CHAOS                          = 0x5
+       AF_CNT                            = 0x15
+       AF_COIP                           = 0x14
+       AF_DATAKIT                        = 0x9
+       AF_DECnet                         = 0xc
+       AF_DLI                            = 0xd
+       AF_E164                           = 0x1c
+       AF_ECMA                           = 0x8
+       AF_HYLINK                         = 0xf
+       AF_IEEE80211                      = 0x25
+       AF_IMPLINK                        = 0x3
+       AF_INET                           = 0x2
+       AF_INET6                          = 0x1e
+       AF_IPX                            = 0x17
+       AF_ISDN                           = 0x1c
+       AF_ISO                            = 0x7
+       AF_LAT                            = 0xe
+       AF_LINK                           = 0x12
+       AF_LOCAL                          = 0x1
+       AF_MAX                            = 0x28
+       AF_NATM                           = 0x1f
+       AF_NDRV                           = 0x1b
+       AF_NETBIOS                        = 0x21
+       AF_NS                             = 0x6
+       AF_OSI                            = 0x7
+       AF_PPP                            = 0x22
+       AF_PUP                            = 0x4
+       AF_RESERVED_36                    = 0x24
+       AF_ROUTE                          = 0x11
+       AF_SIP                            = 0x18
+       AF_SNA                            = 0xb
+       AF_SYSTEM                         = 0x20
+       AF_UNIX                           = 0x1
+       AF_UNSPEC                         = 0x0
+       AF_UTUN                           = 0x26
+       ALTWERASE                         = 0x200
+       B0                                = 0x0
+       B110                              = 0x6e
+       B115200                           = 0x1c200
+       B1200                             = 0x4b0
+       B134                              = 0x86
+       B14400                            = 0x3840
+       B150                              = 0x96
+       B1800                             = 0x708
+       B19200                            = 0x4b00
+       B200                              = 0xc8
+       B230400                           = 0x38400
+       B2400                             = 0x960
+       B28800                            = 0x7080
+       B300                              = 0x12c
+       B38400                            = 0x9600
+       B4800                             = 0x12c0
+       B50                               = 0x32
+       B57600                            = 0xe100
+       B600                              = 0x258
+       B7200                             = 0x1c20
+       B75                               = 0x4b
+       B76800                            = 0x12c00
+       B9600                             = 0x2580
+       BIOCFLUSH                         = 0x20004268
+       BIOCGBLEN                         = 0x40044266
+       BIOCGDLT                          = 0x4004426a
+       BIOCGDLTLIST                      = 0xc00c4279
+       BIOCGETIF                         = 0x4020426b
+       BIOCGHDRCMPLT                     = 0x40044274
+       BIOCGRSIG                         = 0x40044272
+       BIOCGRTIMEOUT                     = 0x4010426e
+       BIOCGSEESENT                      = 0x40044276
+       BIOCGSTATS                        = 0x4008426f
+       BIOCIMMEDIATE                     = 0x80044270
+       BIOCPROMISC                       = 0x20004269
+       BIOCSBLEN                         = 0xc0044266
+       BIOCSDLT                          = 0x80044278
+       BIOCSETF                          = 0x80104267
+       BIOCSETFNR                        = 0x8010427e
+       BIOCSETIF                         = 0x8020426c
+       BIOCSHDRCMPLT                     = 0x80044275
+       BIOCSRSIG                         = 0x80044273
+       BIOCSRTIMEOUT                     = 0x8010426d
+       BIOCSSEESENT                      = 0x80044277
+       BIOCVERSION                       = 0x40044271
+       BPF_A                             = 0x10
+       BPF_ABS                           = 0x20
+       BPF_ADD                           = 0x0
+       BPF_ALIGNMENT                     = 0x4
+       BPF_ALU                           = 0x4
+       BPF_AND                           = 0x50
+       BPF_B                             = 0x10
+       BPF_DIV                           = 0x30
+       BPF_H                             = 0x8
+       BPF_IMM                           = 0x0
+       BPF_IND                           = 0x40
+       BPF_JA                            = 0x0
+       BPF_JEQ                           = 0x10
+       BPF_JGE                           = 0x30
+       BPF_JGT                           = 0x20
+       BPF_JMP                           = 0x5
+       BPF_JSET                          = 0x40
+       BPF_K                             = 0x0
+       BPF_LD                            = 0x0
+       BPF_LDX                           = 0x1
+       BPF_LEN                           = 0x80
+       BPF_LSH                           = 0x60
+       BPF_MAJOR_VERSION                 = 0x1
+       BPF_MAXBUFSIZE                    = 0x80000
+       BPF_MAXINSNS                      = 0x200
+       BPF_MEM                           = 0x60
+       BPF_MEMWORDS                      = 0x10
+       BPF_MINBUFSIZE                    = 0x20
+       BPF_MINOR_VERSION                 = 0x1
+       BPF_MISC                          = 0x7
+       BPF_MSH                           = 0xa0
+       BPF_MUL                           = 0x20
+       BPF_NEG                           = 0x80
+       BPF_OR                            = 0x40
+       BPF_RELEASE                       = 0x30bb6
+       BPF_RET                           = 0x6
+       BPF_RSH                           = 0x70
+       BPF_ST                            = 0x2
+       BPF_STX                           = 0x3
+       BPF_SUB                           = 0x10
+       BPF_TAX                           = 0x0
+       BPF_TXA                           = 0x80
+       BPF_W                             = 0x0
+       BPF_X                             = 0x8
+       BRKINT                            = 0x2
+       BS0                               = 0x0
+       BS1                               = 0x8000
+       BSDLY                             = 0x8000
+       CFLUSH                            = 0xf
+       CLOCAL                            = 0x8000
+       CLOCK_MONOTONIC                   = 0x6
+       CLOCK_MONOTONIC_RAW               = 0x4
+       CLOCK_MONOTONIC_RAW_APPROX        = 0x5
+       CLOCK_PROCESS_CPUTIME_ID          = 0xc
+       CLOCK_REALTIME                    = 0x0
+       CLOCK_THREAD_CPUTIME_ID           = 0x10
+       CLOCK_UPTIME_RAW                  = 0x8
+       CLOCK_UPTIME_RAW_APPROX           = 0x9
+       CR0                               = 0x0
+       CR1                               = 0x1000
+       CR2                               = 0x2000
+       CR3                               = 0x3000
+       CRDLY                             = 0x3000
+       CREAD                             = 0x800
+       CRTSCTS                           = 0x30000
+       CS5                               = 0x0
+       CS6                               = 0x100
+       CS7                               = 0x200
+       CS8                               = 0x300
+       CSIZE                             = 0x300
+       CSTART                            = 0x11
+       CSTATUS                           = 0x14
+       CSTOP                             = 0x13
+       CSTOPB                            = 0x400
+       CSUSP                             = 0x1a
+       CTL_MAXNAME                       = 0xc
+       CTL_NET                           = 0x4
+       DLT_A429                          = 0xb8
+       DLT_A653_ICM                      = 0xb9
+       DLT_AIRONET_HEADER                = 0x78
+       DLT_AOS                           = 0xde
+       DLT_APPLE_IP_OVER_IEEE1394        = 0x8a
+       DLT_ARCNET                        = 0x7
+       DLT_ARCNET_LINUX                  = 0x81
+       DLT_ATM_CLIP                      = 0x13
+       DLT_ATM_RFC1483                   = 0xb
+       DLT_AURORA                        = 0x7e
+       DLT_AX25                          = 0x3
+       DLT_AX25_KISS                     = 0xca
+       DLT_BACNET_MS_TP                  = 0xa5
+       DLT_BLUETOOTH_HCI_H4              = 0xbb
+       DLT_BLUETOOTH_HCI_H4_WITH_PHDR    = 0xc9
+       DLT_CAN20B                        = 0xbe
+       DLT_CAN_SOCKETCAN                 = 0xe3
+       DLT_CHAOS                         = 0x5
+       DLT_CHDLC                         = 0x68
+       DLT_CISCO_IOS                     = 0x76
+       DLT_C_HDLC                        = 0x68
+       DLT_C_HDLC_WITH_DIR               = 0xcd
+       DLT_DBUS                          = 0xe7
+       DLT_DECT                          = 0xdd
+       DLT_DOCSIS                        = 0x8f
+       DLT_DVB_CI                        = 0xeb
+       DLT_ECONET                        = 0x73
+       DLT_EN10MB                        = 0x1
+       DLT_EN3MB                         = 0x2
+       DLT_ENC                           = 0x6d
+       DLT_ERF                           = 0xc5
+       DLT_ERF_ETH                       = 0xaf
+       DLT_ERF_POS                       = 0xb0
+       DLT_FC_2                          = 0xe0
+       DLT_FC_2_WITH_FRAME_DELIMS        = 0xe1
+       DLT_FDDI                          = 0xa
+       DLT_FLEXRAY                       = 0xd2
+       DLT_FRELAY                        = 0x6b
+       DLT_FRELAY_WITH_DIR               = 0xce
+       DLT_GCOM_SERIAL                   = 0xad
+       DLT_GCOM_T1E1                     = 0xac
+       DLT_GPF_F                         = 0xab
+       DLT_GPF_T                         = 0xaa
+       DLT_GPRS_LLC                      = 0xa9
+       DLT_GSMTAP_ABIS                   = 0xda
+       DLT_GSMTAP_UM                     = 0xd9
+       DLT_HHDLC                         = 0x79
+       DLT_IBM_SN                        = 0x92
+       DLT_IBM_SP                        = 0x91
+       DLT_IEEE802                       = 0x6
+       DLT_IEEE802_11                    = 0x69
+       DLT_IEEE802_11_RADIO              = 0x7f
+       DLT_IEEE802_11_RADIO_AVS          = 0xa3
+       DLT_IEEE802_15_4                  = 0xc3
+       DLT_IEEE802_15_4_LINUX            = 0xbf
+       DLT_IEEE802_15_4_NOFCS            = 0xe6
+       DLT_IEEE802_15_4_NONASK_PHY       = 0xd7
+       DLT_IEEE802_16_MAC_CPS            = 0xbc
+       DLT_IEEE802_16_MAC_CPS_RADIO      = 0xc1
+       DLT_IPFILTER                      = 0x74
+       DLT_IPMB                          = 0xc7
+       DLT_IPMB_LINUX                    = 0xd1
+       DLT_IPNET                         = 0xe2
+       DLT_IPOIB                         = 0xf2
+       DLT_IPV4                          = 0xe4
+       DLT_IPV6                          = 0xe5
+       DLT_IP_OVER_FC                    = 0x7a
+       DLT_JUNIPER_ATM1                  = 0x89
+       DLT_JUNIPER_ATM2                  = 0x87
+       DLT_JUNIPER_ATM_CEMIC             = 0xee
+       DLT_JUNIPER_CHDLC                 = 0xb5
+       DLT_JUNIPER_ES                    = 0x84
+       DLT_JUNIPER_ETHER                 = 0xb2
+       DLT_JUNIPER_FIBRECHANNEL          = 0xea
+       DLT_JUNIPER_FRELAY                = 0xb4
+       DLT_JUNIPER_GGSN                  = 0x85
+       DLT_JUNIPER_ISM                   = 0xc2
+       DLT_JUNIPER_MFR                   = 0x86
+       DLT_JUNIPER_MLFR                  = 0x83
+       DLT_JUNIPER_MLPPP                 = 0x82
+       DLT_JUNIPER_MONITOR               = 0xa4
+       DLT_JUNIPER_PIC_PEER              = 0xae
+       DLT_JUNIPER_PPP                   = 0xb3
+       DLT_JUNIPER_PPPOE                 = 0xa7
+       DLT_JUNIPER_PPPOE_ATM             = 0xa8
+       DLT_JUNIPER_SERVICES              = 0x88
+       DLT_JUNIPER_SRX_E2E               = 0xe9
+       DLT_JUNIPER_ST                    = 0xc8
+       DLT_JUNIPER_VP                    = 0xb7
+       DLT_JUNIPER_VS                    = 0xe8
+       DLT_LAPB_WITH_DIR                 = 0xcf
+       DLT_LAPD                          = 0xcb
+       DLT_LIN                           = 0xd4
+       DLT_LINUX_EVDEV                   = 0xd8
+       DLT_LINUX_IRDA                    = 0x90
+       DLT_LINUX_LAPD                    = 0xb1
+       DLT_LINUX_PPP_WITHDIRECTION       = 0xa6
+       DLT_LINUX_SLL                     = 0x71
+       DLT_LOOP                          = 0x6c
+       DLT_LTALK                         = 0x72
+       DLT_MATCHING_MAX                  = 0xf5
+       DLT_MATCHING_MIN                  = 0x68
+       DLT_MFR                           = 0xb6
+       DLT_MOST                          = 0xd3
+       DLT_MPEG_2_TS                     = 0xf3
+       DLT_MPLS                          = 0xdb
+       DLT_MTP2                          = 0x8c
+       DLT_MTP2_WITH_PHDR                = 0x8b
+       DLT_MTP3                          = 0x8d
+       DLT_MUX27010                      = 0xec
+       DLT_NETANALYZER                   = 0xf0
+       DLT_NETANALYZER_TRANSPARENT       = 0xf1
+       DLT_NFC_LLCP                      = 0xf5
+       DLT_NFLOG                         = 0xef
+       DLT_NG40                          = 0xf4
+       DLT_NULL                          = 0x0
+       DLT_PCI_EXP                       = 0x7d
+       DLT_PFLOG                         = 0x75
+       DLT_PFSYNC                        = 0x12
+       DLT_PPI                           = 0xc0
+       DLT_PPP                           = 0x9
+       DLT_PPP_BSDOS                     = 0x10
+       DLT_PPP_ETHER                     = 0x33
+       DLT_PPP_PPPD                      = 0xa6
+       DLT_PPP_SERIAL                    = 0x32
+       DLT_PPP_WITH_DIR                  = 0xcc
+       DLT_PPP_WITH_DIRECTION            = 0xa6
+       DLT_PRISM_HEADER                  = 0x77
+       DLT_PRONET                        = 0x4
+       DLT_RAIF1                         = 0xc6
+       DLT_RAW                           = 0xc
+       DLT_RIO                           = 0x7c
+       DLT_SCCP                          = 0x8e
+       DLT_SITA                          = 0xc4
+       DLT_SLIP                          = 0x8
+       DLT_SLIP_BSDOS                    = 0xf
+       DLT_STANAG_5066_D_PDU             = 0xed
+       DLT_SUNATM                        = 0x7b
+       DLT_SYMANTEC_FIREWALL             = 0x63
+       DLT_TZSP                          = 0x80
+       DLT_USB                           = 0xba
+       DLT_USB_LINUX                     = 0xbd
+       DLT_USB_LINUX_MMAPPED             = 0xdc
+       DLT_USER0                         = 0x93
+       DLT_USER1                         = 0x94
+       DLT_USER10                        = 0x9d
+       DLT_USER11                        = 0x9e
+       DLT_USER12                        = 0x9f
+       DLT_USER13                        = 0xa0
+       DLT_USER14                        = 0xa1
+       DLT_USER15                        = 0xa2
+       DLT_USER2                         = 0x95
+       DLT_USER3                         = 0x96
+       DLT_USER4                         = 0x97
+       DLT_USER5                         = 0x98
+       DLT_USER6                         = 0x99
+       DLT_USER7                         = 0x9a
+       DLT_USER8                         = 0x9b
+       DLT_USER9                         = 0x9c
+       DLT_WIHART                        = 0xdf
+       DLT_X2E_SERIAL                    = 0xd5
+       DLT_X2E_XORAYA                    = 0xd6
+       DT_BLK                            = 0x6
+       DT_CHR                            = 0x2
+       DT_DIR                            = 0x4
+       DT_FIFO                           = 0x1
+       DT_LNK                            = 0xa
+       DT_REG                            = 0x8
+       DT_SOCK                           = 0xc
+       DT_UNKNOWN                        = 0x0
+       DT_WHT                            = 0xe
+       ECHO                              = 0x8
+       ECHOCTL                           = 0x40
+       ECHOE                             = 0x2
+       ECHOK                             = 0x4
+       ECHOKE                            = 0x1
+       ECHONL                            = 0x10
+       ECHOPRT                           = 0x20
+       EVFILT_AIO                        = -0x3
+       EVFILT_EXCEPT                     = -0xf
+       EVFILT_FS                         = -0x9
+       EVFILT_MACHPORT                   = -0x8
+       EVFILT_PROC                       = -0x5
+       EVFILT_READ                       = -0x1
+       EVFILT_SIGNAL                     = -0x6
+       EVFILT_SYSCOUNT                   = 0xf
+       EVFILT_THREADMARKER               = 0xf
+       EVFILT_TIMER                      = -0x7
+       EVFILT_USER                       = -0xa
+       EVFILT_VM                         = -0xc
+       EVFILT_VNODE                      = -0x4
+       EVFILT_WRITE                      = -0x2
+       EV_ADD                            = 0x1
+       EV_CLEAR                          = 0x20
+       EV_DELETE                         = 0x2
+       EV_DISABLE                        = 0x8
+       EV_DISPATCH                       = 0x80
+       EV_DISPATCH2                      = 0x180
+       EV_ENABLE                         = 0x4
+       EV_EOF                            = 0x8000
+       EV_ERROR                          = 0x4000
+       EV_FLAG0                          = 0x1000
+       EV_FLAG1                          = 0x2000
+       EV_ONESHOT                        = 0x10
+       EV_OOBAND                         = 0x2000
+       EV_POLL                           = 0x1000
+       EV_RECEIPT                        = 0x40
+       EV_SYSFLAGS                       = 0xf000
+       EV_UDATA_SPECIFIC                 = 0x100
+       EV_VANISHED                       = 0x200
+       EXTA                              = 0x4b00
+       EXTB                              = 0x9600
+       EXTPROC                           = 0x800
+       FD_CLOEXEC                        = 0x1
+       FD_SETSIZE                        = 0x400
+       FF0                               = 0x0
+       FF1                               = 0x4000
+       FFDLY                             = 0x4000
+       FLUSHO                            = 0x800000
+       F_ADDFILESIGS                     = 0x3d
+       F_ADDFILESIGS_FOR_DYLD_SIM        = 0x53
+       F_ADDFILESIGS_RETURN              = 0x61
+       F_ADDSIGS                         = 0x3b
+       F_ALLOCATEALL                     = 0x4
+       F_ALLOCATECONTIG                  = 0x2
+       F_BARRIERFSYNC                    = 0x55
+       F_CHECK_LV                        = 0x62
+       F_CHKCLEAN                        = 0x29
+       F_DUPFD                           = 0x0
+       F_DUPFD_CLOEXEC                   = 0x43
+       F_FINDSIGS                        = 0x4e
+       F_FLUSH_DATA                      = 0x28
+       F_FREEZE_FS                       = 0x35
+       F_FULLFSYNC                       = 0x33
+       F_GETCODEDIR                      = 0x48
+       F_GETFD                           = 0x1
+       F_GETFL                           = 0x3
+       F_GETLK                           = 0x7
+       F_GETLKPID                        = 0x42
+       F_GETNOSIGPIPE                    = 0x4a
+       F_GETOWN                          = 0x5
+       F_GETPATH                         = 0x32
+       F_GETPATH_MTMINFO                 = 0x47
+       F_GETPROTECTIONCLASS              = 0x3f
+       F_GETPROTECTIONLEVEL              = 0x4d
+       F_GLOBAL_NOCACHE                  = 0x37
+       F_LOG2PHYS                        = 0x31
+       F_LOG2PHYS_EXT                    = 0x41
+       F_NOCACHE                         = 0x30
+       F_NODIRECT                        = 0x3e
+       F_OK                              = 0x0
+       F_PATHPKG_CHECK                   = 0x34
+       F_PEOFPOSMODE                     = 0x3
+       F_PREALLOCATE                     = 0x2a
+       F_RDADVISE                        = 0x2c
+       F_RDAHEAD                         = 0x2d
+       F_RDLCK                           = 0x1
+       F_SETBACKINGSTORE                 = 0x46
+       F_SETFD                           = 0x2
+       F_SETFL                           = 0x4
+       F_SETLK                           = 0x8
+       F_SETLKW                          = 0x9
+       F_SETLKWTIMEOUT                   = 0xa
+       F_SETNOSIGPIPE                    = 0x49
+       F_SETOWN                          = 0x6
+       F_SETPROTECTIONCLASS              = 0x40
+       F_SETSIZE                         = 0x2b
+       F_SINGLE_WRITER                   = 0x4c
+       F_THAW_FS                         = 0x36
+       F_TRANSCODEKEY                    = 0x4b
+       F_UNLCK                           = 0x2
+       F_VOLPOSMODE                      = 0x4
+       F_WRLCK                           = 0x3
+       HUPCL                             = 0x4000
+       ICANON                            = 0x100
+       ICMP6_FILTER                      = 0x12
+       ICRNL                             = 0x100
+       IEXTEN                            = 0x400
+       IFF_ALLMULTI                      = 0x200
+       IFF_ALTPHYS                       = 0x4000
+       IFF_BROADCAST                     = 0x2
+       IFF_DEBUG                         = 0x4
+       IFF_LINK0                         = 0x1000
+       IFF_LINK1                         = 0x2000
+       IFF_LINK2                         = 0x4000
+       IFF_LOOPBACK                      = 0x8
+       IFF_MULTICAST                     = 0x8000
+       IFF_NOARP                         = 0x80
+       IFF_NOTRAILERS                    = 0x20
+       IFF_OACTIVE                       = 0x400
+       IFF_POINTOPOINT                   = 0x10
+       IFF_PROMISC                       = 0x100
+       IFF_RUNNING                       = 0x40
+       IFF_SIMPLEX                       = 0x800
+       IFF_UP                            = 0x1
+       IFNAMSIZ                          = 0x10
+       IFT_1822                          = 0x2
+       IFT_AAL5                          = 0x31
+       IFT_ARCNET                        = 0x23
+       IFT_ARCNETPLUS                    = 0x24
+       IFT_ATM                           = 0x25
+       IFT_BRIDGE                        = 0xd1
+       IFT_CARP                          = 0xf8
+       IFT_CELLULAR                      = 0xff
+       IFT_CEPT                          = 0x13
+       IFT_DS3                           = 0x1e
+       IFT_ENC                           = 0xf4
+       IFT_EON                           = 0x19
+       IFT_ETHER                         = 0x6
+       IFT_FAITH                         = 0x38
+       IFT_FDDI                          = 0xf
+       IFT_FRELAY                        = 0x20
+       IFT_FRELAYDCE                     = 0x2c
+       IFT_GIF                           = 0x37
+       IFT_HDH1822                       = 0x3
+       IFT_HIPPI                         = 0x2f
+       IFT_HSSI                          = 0x2e
+       IFT_HY                            = 0xe
+       IFT_IEEE1394                      = 0x90
+       IFT_IEEE8023ADLAG                 = 0x88
+       IFT_ISDNBASIC                     = 0x14
+       IFT_ISDNPRIMARY                   = 0x15
+       IFT_ISO88022LLC                   = 0x29
+       IFT_ISO88023                      = 0x7
+       IFT_ISO88024                      = 0x8
+       IFT_ISO88025                      = 0x9
+       IFT_ISO88026                      = 0xa
+       IFT_L2VLAN                        = 0x87
+       IFT_LAPB                          = 0x10
+       IFT_LOCALTALK                     = 0x2a
+       IFT_LOOP                          = 0x18
+       IFT_MIOX25                        = 0x26
+       IFT_MODEM                         = 0x30
+       IFT_NSIP                          = 0x1b
+       IFT_OTHER                         = 0x1
+       IFT_P10                           = 0xc
+       IFT_P80                           = 0xd
+       IFT_PARA                          = 0x22
+       IFT_PDP                           = 0xff
+       IFT_PFLOG                         = 0xf5
+       IFT_PFSYNC                        = 0xf6
+       IFT_PKTAP                         = 0xfe
+       IFT_PPP                           = 0x17
+       IFT_PROPMUX                       = 0x36
+       IFT_PROPVIRTUAL                   = 0x35
+       IFT_PTPSERIAL                     = 0x16
+       IFT_RS232                         = 0x21
+       IFT_SDLC                          = 0x11
+       IFT_SIP                           = 0x1f
+       IFT_SLIP                          = 0x1c
+       IFT_SMDSDXI                       = 0x2b
+       IFT_SMDSICIP                      = 0x34
+       IFT_SONET                         = 0x27
+       IFT_SONETPATH                     = 0x32
+       IFT_SONETVT                       = 0x33
+       IFT_STARLAN                       = 0xb
+       IFT_STF                           = 0x39
+       IFT_T1                            = 0x12
+       IFT_ULTRA                         = 0x1d
+       IFT_V35                           = 0x2d
+       IFT_X25                           = 0x5
+       IFT_X25DDN                        = 0x4
+       IFT_X25PLE                        = 0x28
+       IFT_XETHER                        = 0x1a
+       IGNBRK                            = 0x1
+       IGNCR                             = 0x80
+       IGNPAR                            = 0x4
+       IMAXBEL                           = 0x2000
+       INLCR                             = 0x40
+       INPCK                             = 0x10
+       IN_CLASSA_HOST                    = 0xffffff
+       IN_CLASSA_MAX                     = 0x80
+       IN_CLASSA_NET                     = 0xff000000
+       IN_CLASSA_NSHIFT                  = 0x18
+       IN_CLASSB_HOST                    = 0xffff
+       IN_CLASSB_MAX                     = 0x10000
+       IN_CLASSB_NET                     = 0xffff0000
+       IN_CLASSB_NSHIFT                  = 0x10
+       IN_CLASSC_HOST                    = 0xff
+       IN_CLASSC_NET                     = 0xffffff00
+       IN_CLASSC_NSHIFT                  = 0x8
+       IN_CLASSD_HOST                    = 0xfffffff
+       IN_CLASSD_NET                     = 0xf0000000
+       IN_CLASSD_NSHIFT                  = 0x1c
+       IN_LINKLOCALNETNUM                = 0xa9fe0000
+       IN_LOOPBACKNET                    = 0x7f
+       IPPROTO_3PC                       = 0x22
+       IPPROTO_ADFS                      = 0x44
+       IPPROTO_AH                        = 0x33
+       IPPROTO_AHIP                      = 0x3d
+       IPPROTO_APES                      = 0x63
+       IPPROTO_ARGUS                     = 0xd
+       IPPROTO_AX25                      = 0x5d
+       IPPROTO_BHA                       = 0x31
+       IPPROTO_BLT                       = 0x1e
+       IPPROTO_BRSATMON                  = 0x4c
+       IPPROTO_CFTP                      = 0x3e
+       IPPROTO_CHAOS                     = 0x10
+       IPPROTO_CMTP                      = 0x26
+       IPPROTO_CPHB                      = 0x49
+       IPPROTO_CPNX                      = 0x48
+       IPPROTO_DDP                       = 0x25
+       IPPROTO_DGP                       = 0x56
+       IPPROTO_DIVERT                    = 0xfe
+       IPPROTO_DONE                      = 0x101
+       IPPROTO_DSTOPTS                   = 0x3c
+       IPPROTO_EGP                       = 0x8
+       IPPROTO_EMCON                     = 0xe
+       IPPROTO_ENCAP                     = 0x62
+       IPPROTO_EON                       = 0x50
+       IPPROTO_ESP                       = 0x32
+       IPPROTO_ETHERIP                   = 0x61
+       IPPROTO_FRAGMENT                  = 0x2c
+       IPPROTO_GGP                       = 0x3
+       IPPROTO_GMTP                      = 0x64
+       IPPROTO_GRE                       = 0x2f
+       IPPROTO_HELLO                     = 0x3f
+       IPPROTO_HMP                       = 0x14
+       IPPROTO_HOPOPTS                   = 0x0
+       IPPROTO_ICMP                      = 0x1
+       IPPROTO_ICMPV6                    = 0x3a
+       IPPROTO_IDP                       = 0x16
+       IPPROTO_IDPR                      = 0x23
+       IPPROTO_IDRP                      = 0x2d
+       IPPROTO_IGMP                      = 0x2
+       IPPROTO_IGP                       = 0x55
+       IPPROTO_IGRP                      = 0x58
+       IPPROTO_IL                        = 0x28
+       IPPROTO_INLSP                     = 0x34
+       IPPROTO_INP                       = 0x20
+       IPPROTO_IP                        = 0x0
+       IPPROTO_IPCOMP                    = 0x6c
+       IPPROTO_IPCV                      = 0x47
+       IPPROTO_IPEIP                     = 0x5e
+       IPPROTO_IPIP                      = 0x4
+       IPPROTO_IPPC                      = 0x43
+       IPPROTO_IPV4                      = 0x4
+       IPPROTO_IPV6                      = 0x29
+       IPPROTO_IRTP                      = 0x1c
+       IPPROTO_KRYPTOLAN                 = 0x41
+       IPPROTO_LARP                      = 0x5b
+       IPPROTO_LEAF1                     = 0x19
+       IPPROTO_LEAF2                     = 0x1a
+       IPPROTO_MAX                       = 0x100
+       IPPROTO_MAXID                     = 0x34
+       IPPROTO_MEAS                      = 0x13
+       IPPROTO_MHRP                      = 0x30
+       IPPROTO_MICP                      = 0x5f
+       IPPROTO_MTP                       = 0x5c
+       IPPROTO_MUX                       = 0x12
+       IPPROTO_ND                        = 0x4d
+       IPPROTO_NHRP                      = 0x36
+       IPPROTO_NONE                      = 0x3b
+       IPPROTO_NSP                       = 0x1f
+       IPPROTO_NVPII                     = 0xb
+       IPPROTO_OSPFIGP                   = 0x59
+       IPPROTO_PGM                       = 0x71
+       IPPROTO_PIGP                      = 0x9
+       IPPROTO_PIM                       = 0x67
+       IPPROTO_PRM                       = 0x15
+       IPPROTO_PUP                       = 0xc
+       IPPROTO_PVP                       = 0x4b
+       IPPROTO_RAW                       = 0xff
+       IPPROTO_RCCMON                    = 0xa
+       IPPROTO_RDP                       = 0x1b
+       IPPROTO_ROUTING                   = 0x2b
+       IPPROTO_RSVP                      = 0x2e
+       IPPROTO_RVD                       = 0x42
+       IPPROTO_SATEXPAK                  = 0x40
+       IPPROTO_SATMON                    = 0x45
+       IPPROTO_SCCSP                     = 0x60
+       IPPROTO_SCTP                      = 0x84
+       IPPROTO_SDRP                      = 0x2a
+       IPPROTO_SEP                       = 0x21
+       IPPROTO_SRPC                      = 0x5a
+       IPPROTO_ST                        = 0x7
+       IPPROTO_SVMTP                     = 0x52
+       IPPROTO_SWIPE                     = 0x35
+       IPPROTO_TCF                       = 0x57
+       IPPROTO_TCP                       = 0x6
+       IPPROTO_TP                        = 0x1d
+       IPPROTO_TPXX                      = 0x27
+       IPPROTO_TRUNK1                    = 0x17
+       IPPROTO_TRUNK2                    = 0x18
+       IPPROTO_TTP                       = 0x54
+       IPPROTO_UDP                       = 0x11
+       IPPROTO_VINES                     = 0x53
+       IPPROTO_VISA                      = 0x46
+       IPPROTO_VMTP                      = 0x51
+       IPPROTO_WBEXPAK                   = 0x4f
+       IPPROTO_WBMON                     = 0x4e
+       IPPROTO_WSN                       = 0x4a
+       IPPROTO_XNET                      = 0xf
+       IPPROTO_XTP                       = 0x24
+       IPV6_2292DSTOPTS                  = 0x17
+       IPV6_2292HOPLIMIT                 = 0x14
+       IPV6_2292HOPOPTS                  = 0x16
+       IPV6_2292NEXTHOP                  = 0x15
+       IPV6_2292PKTINFO                  = 0x13
+       IPV6_2292PKTOPTIONS               = 0x19
+       IPV6_2292RTHDR                    = 0x18
+       IPV6_BINDV6ONLY                   = 0x1b
+       IPV6_BOUND_IF                     = 0x7d
+       IPV6_CHECKSUM                     = 0x1a
+       IPV6_DEFAULT_MULTICAST_HOPS       = 0x1
+       IPV6_DEFAULT_MULTICAST_LOOP       = 0x1
+       IPV6_DEFHLIM                      = 0x40
+       IPV6_FAITH                        = 0x1d
+       IPV6_FLOWINFO_MASK                = 0xffffff0f
+       IPV6_FLOWLABEL_MASK               = 0xffff0f00
+       IPV6_FRAGTTL                      = 0x3c
+       IPV6_FW_ADD                       = 0x1e
+       IPV6_FW_DEL                       = 0x1f
+       IPV6_FW_FLUSH                     = 0x20
+       IPV6_FW_GET                       = 0x22
+       IPV6_FW_ZERO                      = 0x21
+       IPV6_HLIMDEC                      = 0x1
+       IPV6_IPSEC_POLICY                 = 0x1c
+       IPV6_JOIN_GROUP                   = 0xc
+       IPV6_LEAVE_GROUP                  = 0xd
+       IPV6_MAXHLIM                      = 0xff
+       IPV6_MAXOPTHDR                    = 0x800
+       IPV6_MAXPACKET                    = 0xffff
+       IPV6_MAX_GROUP_SRC_FILTER         = 0x200
+       IPV6_MAX_MEMBERSHIPS              = 0xfff
+       IPV6_MAX_SOCK_SRC_FILTER          = 0x80
+       IPV6_MIN_MEMBERSHIPS              = 0x1f
+       IPV6_MMTU                         = 0x500
+       IPV6_MULTICAST_HOPS               = 0xa
+       IPV6_MULTICAST_IF                 = 0x9
+       IPV6_MULTICAST_LOOP               = 0xb
+       IPV6_PORTRANGE                    = 0xe
+       IPV6_PORTRANGE_DEFAULT            = 0x0
+       IPV6_PORTRANGE_HIGH               = 0x1
+       IPV6_PORTRANGE_LOW                = 0x2
+       IPV6_RECVTCLASS                   = 0x23
+       IPV6_RTHDR_LOOSE                  = 0x0
+       IPV6_RTHDR_STRICT                 = 0x1
+       IPV6_RTHDR_TYPE_0                 = 0x0
+       IPV6_SOCKOPT_RESERVED1            = 0x3
+       IPV6_TCLASS                       = 0x24
+       IPV6_UNICAST_HOPS                 = 0x4
+       IPV6_V6ONLY                       = 0x1b
+       IPV6_VERSION                      = 0x60
+       IPV6_VERSION_MASK                 = 0xf0
+       IP_ADD_MEMBERSHIP                 = 0xc
+       IP_ADD_SOURCE_MEMBERSHIP          = 0x46
+       IP_BLOCK_SOURCE                   = 0x48
+       IP_BOUND_IF                       = 0x19
+       IP_DEFAULT_MULTICAST_LOOP         = 0x1
+       IP_DEFAULT_MULTICAST_TTL          = 0x1
+       IP_DF                             = 0x4000
+       IP_DROP_MEMBERSHIP                = 0xd
+       IP_DROP_SOURCE_MEMBERSHIP         = 0x47
+       IP_DUMMYNET_CONFIGURE             = 0x3c
+       IP_DUMMYNET_DEL                   = 0x3d
+       IP_DUMMYNET_FLUSH                 = 0x3e
+       IP_DUMMYNET_GET                   = 0x40
+       IP_FAITH                          = 0x16
+       IP_FW_ADD                         = 0x28
+       IP_FW_DEL                         = 0x29
+       IP_FW_FLUSH                       = 0x2a
+       IP_FW_GET                         = 0x2c
+       IP_FW_RESETLOG                    = 0x2d
+       IP_FW_ZERO                        = 0x2b
+       IP_HDRINCL                        = 0x2
+       IP_IPSEC_POLICY                   = 0x15
+       IP_MAXPACKET                      = 0xffff
+       IP_MAX_GROUP_SRC_FILTER           = 0x200
+       IP_MAX_MEMBERSHIPS                = 0xfff
+       IP_MAX_SOCK_MUTE_FILTER           = 0x80
+       IP_MAX_SOCK_SRC_FILTER            = 0x80
+       IP_MF                             = 0x2000
+       IP_MIN_MEMBERSHIPS                = 0x1f
+       IP_MSFILTER                       = 0x4a
+       IP_MSS                            = 0x240
+       IP_MULTICAST_IF                   = 0x9
+       IP_MULTICAST_IFINDEX              = 0x42
+       IP_MULTICAST_LOOP                 = 0xb
+       IP_MULTICAST_TTL                  = 0xa
+       IP_MULTICAST_VIF                  = 0xe
+       IP_NAT__XXX                       = 0x37
+       IP_OFFMASK                        = 0x1fff
+       IP_OLD_FW_ADD                     = 0x32
+       IP_OLD_FW_DEL                     = 0x33
+       IP_OLD_FW_FLUSH                   = 0x34
+       IP_OLD_FW_GET                     = 0x36
+       IP_OLD_FW_RESETLOG                = 0x38
+       IP_OLD_FW_ZERO                    = 0x35
+       IP_OPTIONS                        = 0x1
+       IP_PKTINFO                        = 0x1a
+       IP_PORTRANGE                      = 0x13
+       IP_PORTRANGE_DEFAULT              = 0x0
+       IP_PORTRANGE_HIGH                 = 0x1
+       IP_PORTRANGE_LOW                  = 0x2
+       IP_RECVDSTADDR                    = 0x7
+       IP_RECVIF                         = 0x14
+       IP_RECVOPTS                       = 0x5
+       IP_RECVPKTINFO                    = 0x1a
+       IP_RECVRETOPTS                    = 0x6
+       IP_RECVTTL                        = 0x18
+       IP_RETOPTS                        = 0x8
+       IP_RF                             = 0x8000
+       IP_RSVP_OFF                       = 0x10
+       IP_RSVP_ON                        = 0xf
+       IP_RSVP_VIF_OFF                   = 0x12
+       IP_RSVP_VIF_ON                    = 0x11
+       IP_STRIPHDR                       = 0x17
+       IP_TOS                            = 0x3
+       IP_TRAFFIC_MGT_BACKGROUND         = 0x41
+       IP_TTL                            = 0x4
+       IP_UNBLOCK_SOURCE                 = 0x49
+       ISIG                              = 0x80
+       ISTRIP                            = 0x20
+       IUTF8                             = 0x4000
+       IXANY                             = 0x800
+       IXOFF                             = 0x400
+       IXON                              = 0x200
+       LOCK_EX                           = 0x2
+       LOCK_NB                           = 0x4
+       LOCK_SH                           = 0x1
+       LOCK_UN                           = 0x8
+       MADV_CAN_REUSE                    = 0x9
+       MADV_DONTNEED                     = 0x4
+       MADV_FREE                         = 0x5
+       MADV_FREE_REUSABLE                = 0x7
+       MADV_FREE_REUSE                   = 0x8
+       MADV_NORMAL                       = 0x0
+       MADV_PAGEOUT                      = 0xa
+       MADV_RANDOM                       = 0x1
+       MADV_SEQUENTIAL                   = 0x2
+       MADV_WILLNEED                     = 0x3
+       MADV_ZERO_WIRED_PAGES             = 0x6
+       MAP_ANON                          = 0x1000
+       MAP_ANONYMOUS                     = 0x1000
+       MAP_COPY                          = 0x2
+       MAP_FILE                          = 0x0
+       MAP_FIXED                         = 0x10
+       MAP_HASSEMAPHORE                  = 0x200
+       MAP_JIT                           = 0x800
+       MAP_NOCACHE                       = 0x400
+       MAP_NOEXTEND                      = 0x100
+       MAP_NORESERVE                     = 0x40
+       MAP_PRIVATE                       = 0x2
+       MAP_RENAME                        = 0x20
+       MAP_RESERVED0080                  = 0x80
+       MAP_RESILIENT_CODESIGN            = 0x2000
+       MAP_RESILIENT_MEDIA               = 0x4000
+       MAP_SHARED                        = 0x1
+       MCL_CURRENT                       = 0x1
+       MCL_FUTURE                        = 0x2
+       MNT_ASYNC                         = 0x40
+       MNT_AUTOMOUNTED                   = 0x400000
+       MNT_CMDFLAGS                      = 0xf0000
+       MNT_CPROTECT                      = 0x80
+       MNT_DEFWRITE                      = 0x2000000
+       MNT_DONTBROWSE                    = 0x100000
+       MNT_DOVOLFS                       = 0x8000
+       MNT_DWAIT                         = 0x4
+       MNT_EXPORTED                      = 0x100
+       MNT_FORCE                         = 0x80000
+       MNT_IGNORE_OWNERSHIP              = 0x200000
+       MNT_JOURNALED                     = 0x800000
+       MNT_LOCAL                         = 0x1000
+       MNT_MULTILABEL                    = 0x4000000
+       MNT_NOATIME                       = 0x10000000
+       MNT_NOBLOCK                       = 0x20000
+       MNT_NODEV                         = 0x10
+       MNT_NOEXEC                        = 0x4
+       MNT_NOSUID                        = 0x8
+       MNT_NOUSERXATTR                   = 0x1000000
+       MNT_NOWAIT                        = 0x2
+       MNT_QUARANTINE                    = 0x400
+       MNT_QUOTA                         = 0x2000
+       MNT_RDONLY                        = 0x1
+       MNT_RELOAD                        = 0x40000
+       MNT_ROOTFS                        = 0x4000
+       MNT_SYNCHRONOUS                   = 0x2
+       MNT_UNION                         = 0x20
+       MNT_UNKNOWNPERMISSIONS            = 0x200000
+       MNT_UPDATE                        = 0x10000
+       MNT_VISFLAGMASK                   = 0x17f0f5ff
+       MNT_WAIT                          = 0x1
+       MSG_CTRUNC                        = 0x20
+       MSG_DONTROUTE                     = 0x4
+       MSG_DONTWAIT                      = 0x80
+       MSG_EOF                           = 0x100
+       MSG_EOR                           = 0x8
+       MSG_FLUSH                         = 0x400
+       MSG_HAVEMORE                      = 0x2000
+       MSG_HOLD                          = 0x800
+       MSG_NEEDSA                        = 0x10000
+       MSG_OOB                           = 0x1
+       MSG_PEEK                          = 0x2
+       MSG_RCVMORE                       = 0x4000
+       MSG_SEND                          = 0x1000
+       MSG_TRUNC                         = 0x10
+       MSG_WAITALL                       = 0x40
+       MSG_WAITSTREAM                    = 0x200
+       MS_ASYNC                          = 0x1
+       MS_DEACTIVATE                     = 0x8
+       MS_INVALIDATE                     = 0x2
+       MS_KILLPAGES                      = 0x4
+       MS_SYNC                           = 0x10
+       NAME_MAX                          = 0xff
+       NET_RT_DUMP                       = 0x1
+       NET_RT_DUMP2                      = 0x7
+       NET_RT_FLAGS                      = 0x2
+       NET_RT_IFLIST                     = 0x3
+       NET_RT_IFLIST2                    = 0x6
+       NET_RT_MAXID                      = 0xa
+       NET_RT_STAT                       = 0x4
+       NET_RT_TRASH                      = 0x5
+       NL0                               = 0x0
+       NL1                               = 0x100
+       NL2                               = 0x200
+       NL3                               = 0x300
+       NLDLY                             = 0x300
+       NOFLSH                            = 0x80000000
+       NOKERNINFO                        = 0x2000000
+       NOTE_ABSOLUTE                     = 0x8
+       NOTE_ATTRIB                       = 0x8
+       NOTE_BACKGROUND                   = 0x40
+       NOTE_CHILD                        = 0x4
+       NOTE_CRITICAL                     = 0x20
+       NOTE_DELETE                       = 0x1
+       NOTE_EXEC                         = 0x20000000
+       NOTE_EXIT                         = 0x80000000
+       NOTE_EXITSTATUS                   = 0x4000000
+       NOTE_EXIT_CSERROR                 = 0x40000
+       NOTE_EXIT_DECRYPTFAIL             = 0x10000
+       NOTE_EXIT_DETAIL                  = 0x2000000
+       NOTE_EXIT_DETAIL_MASK             = 0x70000
+       NOTE_EXIT_MEMORY                  = 0x20000
+       NOTE_EXIT_REPARENTED              = 0x80000
+       NOTE_EXTEND                       = 0x4
+       NOTE_FFAND                        = 0x40000000
+       NOTE_FFCOPY                       = 0xc0000000
+       NOTE_FFCTRLMASK                   = 0xc0000000
+       NOTE_FFLAGSMASK                   = 0xffffff
+       NOTE_FFNOP                        = 0x0
+       NOTE_FFOR                         = 0x80000000
+       NOTE_FORK                         = 0x40000000
+       NOTE_FUNLOCK                      = 0x100
+       NOTE_LEEWAY                       = 0x10
+       NOTE_LINK                         = 0x10
+       NOTE_LOWAT                        = 0x1
+       NOTE_MACH_CONTINUOUS_TIME         = 0x80
+       NOTE_NONE                         = 0x80
+       NOTE_NSECONDS                     = 0x4
+       NOTE_OOB                          = 0x2
+       NOTE_PCTRLMASK                    = -0x100000
+       NOTE_PDATAMASK                    = 0xfffff
+       NOTE_REAP                         = 0x10000000
+       NOTE_RENAME                       = 0x20
+       NOTE_REVOKE                       = 0x40
+       NOTE_SECONDS                      = 0x1
+       NOTE_SIGNAL                       = 0x8000000
+       NOTE_TRACK                        = 0x1
+       NOTE_TRACKERR                     = 0x2
+       NOTE_TRIGGER                      = 0x1000000
+       NOTE_USECONDS                     = 0x2
+       NOTE_VM_ERROR                     = 0x10000000
+       NOTE_VM_PRESSURE                  = 0x80000000
+       NOTE_VM_PRESSURE_SUDDEN_TERMINATE = 0x20000000
+       NOTE_VM_PRESSURE_TERMINATE        = 0x40000000
+       NOTE_WRITE                        = 0x2
+       OCRNL                             = 0x10
+       OFDEL                             = 0x20000
+       OFILL                             = 0x80
+       ONLCR                             = 0x2
+       ONLRET                            = 0x40
+       ONOCR                             = 0x20
+       ONOEOT                            = 0x8
+       OPOST                             = 0x1
+       OXTABS                            = 0x4
+       O_ACCMODE                         = 0x3
+       O_ALERT                           = 0x20000000
+       O_APPEND                          = 0x8
+       O_ASYNC                           = 0x40
+       O_CLOEXEC                         = 0x1000000
+       O_CREAT                           = 0x200
+       O_DIRECTORY                       = 0x100000
+       O_DP_GETRAWENCRYPTED              = 0x1
+       O_DP_GETRAWUNENCRYPTED            = 0x2
+       O_DSYNC                           = 0x400000
+       O_EVTONLY                         = 0x8000
+       O_EXCL                            = 0x800
+       O_EXLOCK                          = 0x20
+       O_FSYNC                           = 0x80
+       O_NDELAY                          = 0x4
+       O_NOCTTY                          = 0x20000
+       O_NOFOLLOW                        = 0x100
+       O_NONBLOCK                        = 0x4
+       O_POPUP                           = 0x80000000
+       O_RDONLY                          = 0x0
+       O_RDWR                            = 0x2
+       O_SHLOCK                          = 0x10
+       O_SYMLINK                         = 0x200000
+       O_SYNC                            = 0x80
+       O_TRUNC                           = 0x400
+       O_WRONLY                          = 0x1
+       PARENB                            = 0x1000
+       PARMRK                            = 0x8
+       PARODD                            = 0x2000
+       PENDIN                            = 0x20000000
+       PRIO_PGRP                         = 0x1
+       PRIO_PROCESS                      = 0x0
+       PRIO_USER                         = 0x2
+       PROT_EXEC                         = 0x4
+       PROT_NONE                         = 0x0
+       PROT_READ                         = 0x1
+       PROT_WRITE                        = 0x2
+       PT_ATTACH                         = 0xa
+       PT_ATTACHEXC                      = 0xe
+       PT_CONTINUE                       = 0x7
+       PT_DENY_ATTACH                    = 0x1f
+       PT_DETACH                         = 0xb
+       PT_FIRSTMACH                      = 0x20
+       PT_FORCEQUOTA                     = 0x1e
+       PT_KILL                           = 0x8
+       PT_READ_D                         = 0x2
+       PT_READ_I                         = 0x1
+       PT_READ_U                         = 0x3
+       PT_SIGEXC                         = 0xc
+       PT_STEP                           = 0x9
+       PT_THUPDATE                       = 0xd
+       PT_TRACE_ME                       = 0x0
+       PT_WRITE_D                        = 0x5
+       PT_WRITE_I                        = 0x4
+       PT_WRITE_U                        = 0x6
+       RLIMIT_AS                         = 0x5
+       RLIMIT_CORE                       = 0x4
+       RLIMIT_CPU                        = 0x0
+       RLIMIT_CPU_USAGE_MONITOR          = 0x2
+       RLIMIT_DATA                       = 0x2
+       RLIMIT_FSIZE                      = 0x1
+       RLIMIT_MEMLOCK                    = 0x6
+       RLIMIT_NOFILE                     = 0x8
+       RLIMIT_NPROC                      = 0x7
+       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_DST                           = 0x1
+       RTA_GATEWAY                       = 0x2
+       RTA_GENMASK                       = 0x8
+       RTA_IFA                           = 0x20
+       RTA_IFP                           = 0x10
+       RTA_NETMASK                       = 0x4
+       RTF_BLACKHOLE                     = 0x1000
+       RTF_BROADCAST                     = 0x400000
+       RTF_CLONING                       = 0x100
+       RTF_CONDEMNED                     = 0x2000000
+       RTF_DELCLONE                      = 0x80
+       RTF_DONE                          = 0x40
+       RTF_DYNAMIC                       = 0x10
+       RTF_GATEWAY                       = 0x2
+       RTF_HOST                          = 0x4
+       RTF_IFREF                         = 0x4000000
+       RTF_IFSCOPE                       = 0x1000000
+       RTF_LLINFO                        = 0x400
+       RTF_LOCAL                         = 0x200000
+       RTF_MODIFIED                      = 0x20
+       RTF_MULTICAST                     = 0x800000
+       RTF_NOIFREF                       = 0x2000
+       RTF_PINNED                        = 0x100000
+       RTF_PRCLONING                     = 0x10000
+       RTF_PROTO1                        = 0x8000
+       RTF_PROTO2                        = 0x4000
+       RTF_PROTO3                        = 0x40000
+       RTF_PROXY                         = 0x8000000
+       RTF_REJECT                        = 0x8
+       RTF_ROUTER                        = 0x10000000
+       RTF_STATIC                        = 0x800
+       RTF_UP                            = 0x1
+       RTF_WASCLONED                     = 0x20000
+       RTF_XRESOLVE                      = 0x200
+       RTM_ADD                           = 0x1
+       RTM_CHANGE                        = 0x3
+       RTM_DELADDR                       = 0xd
+       RTM_DELETE                        = 0x2
+       RTM_DELMADDR                      = 0x10
+       RTM_GET                           = 0x4
+       RTM_GET2                          = 0x14
+       RTM_IFINFO                        = 0xe
+       RTM_IFINFO2                       = 0x12
+       RTM_LOCK                          = 0x8
+       RTM_LOSING                        = 0x5
+       RTM_MISS                          = 0x7
+       RTM_NEWADDR                       = 0xc
+       RTM_NEWMADDR                      = 0xf
+       RTM_NEWMADDR2                     = 0x13
+       RTM_OLDADD                        = 0x9
+       RTM_OLDDEL                        = 0xa
+       RTM_REDIRECT                      = 0x6
+       RTM_RESOLVE                       = 0xb
+       RTM_RTTUNIT                       = 0xf4240
+       RTM_VERSION                       = 0x5
+       RTV_EXPIRE                        = 0x4
+       RTV_HOPCOUNT                      = 0x2
+       RTV_MTU                           = 0x1
+       RTV_RPIPE                         = 0x8
+       RTV_RTT                           = 0x40
+       RTV_RTTVAR                        = 0x80
+       RTV_SPIPE                         = 0x10
+       RTV_SSTHRESH                      = 0x20
+       RUSAGE_CHILDREN                   = -0x1
+       RUSAGE_SELF                       = 0x0
+       SCM_CREDS                         = 0x3
+       SCM_RIGHTS                        = 0x1
+       SCM_TIMESTAMP                     = 0x2
+       SCM_TIMESTAMP_MONOTONIC           = 0x4
+       SHUT_RD                           = 0x0
+       SHUT_RDWR                         = 0x2
+       SHUT_WR                           = 0x1
+       SIOCADDMULTI                      = 0x80206931
+       SIOCAIFADDR                       = 0x8040691a
+       SIOCARPIPLL                       = 0xc0206928
+       SIOCATMARK                        = 0x40047307
+       SIOCAUTOADDR                      = 0xc0206926
+       SIOCAUTONETMASK                   = 0x80206927
+       SIOCDELMULTI                      = 0x80206932
+       SIOCDIFADDR                       = 0x80206919
+       SIOCDIFPHYADDR                    = 0x80206941
+       SIOCGDRVSPEC                      = 0xc028697b
+       SIOCGETVLAN                       = 0xc020697f
+       SIOCGHIWAT                        = 0x40047301
+       SIOCGIFADDR                       = 0xc0206921
+       SIOCGIFALTMTU                     = 0xc0206948
+       SIOCGIFASYNCMAP                   = 0xc020697c
+       SIOCGIFBOND                       = 0xc0206947
+       SIOCGIFBRDADDR                    = 0xc0206923
+       SIOCGIFCAP                        = 0xc020695b
+       SIOCGIFCONF                       = 0xc00c6924
+       SIOCGIFDEVMTU                     = 0xc0206944
+       SIOCGIFDSTADDR                    = 0xc0206922
+       SIOCGIFFLAGS                      = 0xc0206911
+       SIOCGIFGENERIC                    = 0xc020693a
+       SIOCGIFKPI                        = 0xc0206987
+       SIOCGIFMAC                        = 0xc0206982
+       SIOCGIFMEDIA                      = 0xc02c6938
+       SIOCGIFMETRIC                     = 0xc0206917
+       SIOCGIFMTU                        = 0xc0206933
+       SIOCGIFNETMASK                    = 0xc0206925
+       SIOCGIFPDSTADDR                   = 0xc0206940
+       SIOCGIFPHYS                       = 0xc0206935
+       SIOCGIFPSRCADDR                   = 0xc020693f
+       SIOCGIFSTATUS                     = 0xc331693d
+       SIOCGIFVLAN                       = 0xc020697f
+       SIOCGIFWAKEFLAGS                  = 0xc0206988
+       SIOCGLOWAT                        = 0x40047303
+       SIOCGPGRP                         = 0x40047309
+       SIOCIFCREATE                      = 0xc0206978
+       SIOCIFCREATE2                     = 0xc020697a
+       SIOCIFDESTROY                     = 0x80206979
+       SIOCIFGCLONERS                    = 0xc0106981
+       SIOCRSLVMULTI                     = 0xc010693b
+       SIOCSDRVSPEC                      = 0x8028697b
+       SIOCSETVLAN                       = 0x8020697e
+       SIOCSHIWAT                        = 0x80047300
+       SIOCSIFADDR                       = 0x8020690c
+       SIOCSIFALTMTU                     = 0x80206945
+       SIOCSIFASYNCMAP                   = 0x8020697d
+       SIOCSIFBOND                       = 0x80206946
+       SIOCSIFBRDADDR                    = 0x80206913
+       SIOCSIFCAP                        = 0x8020695a
+       SIOCSIFDSTADDR                    = 0x8020690e
+       SIOCSIFFLAGS                      = 0x80206910
+       SIOCSIFGENERIC                    = 0x80206939
+       SIOCSIFKPI                        = 0x80206986
+       SIOCSIFLLADDR                     = 0x8020693c
+       SIOCSIFMAC                        = 0x80206983
+       SIOCSIFMEDIA                      = 0xc0206937
+       SIOCSIFMETRIC                     = 0x80206918
+       SIOCSIFMTU                        = 0x80206934
+       SIOCSIFNETMASK                    = 0x80206916
+       SIOCSIFPHYADDR                    = 0x8040693e
+       SIOCSIFPHYS                       = 0x80206936
+       SIOCSIFVLAN                       = 0x8020697e
+       SIOCSLOWAT                        = 0x80047302
+       SIOCSPGRP                         = 0x80047308
+       SOCK_DGRAM                        = 0x2
+       SOCK_MAXADDRLEN                   = 0xff
+       SOCK_RAW                          = 0x3
+       SOCK_RDM                          = 0x4
+       SOCK_SEQPACKET                    = 0x5
+       SOCK_STREAM                       = 0x1
+       SOL_SOCKET                        = 0xffff
+       SOMAXCONN                         = 0x80
+       SO_ACCEPTCONN                     = 0x2
+       SO_BROADCAST                      = 0x20
+       SO_DEBUG                          = 0x1
+       SO_DONTROUTE                      = 0x10
+       SO_DONTTRUNC                      = 0x2000
+       SO_ERROR                          = 0x1007
+       SO_KEEPALIVE                      = 0x8
+       SO_LABEL                          = 0x1010
+       SO_LINGER                         = 0x80
+       SO_LINGER_SEC                     = 0x1080
+       SO_NETSVC_MARKING_LEVEL           = 0x1119
+       SO_NET_SERVICE_TYPE               = 0x1116
+       SO_NKE                            = 0x1021
+       SO_NOADDRERR                      = 0x1023
+       SO_NOSIGPIPE                      = 0x1022
+       SO_NOTIFYCONFLICT                 = 0x1026
+       SO_NP_EXTENSIONS                  = 0x1083
+       SO_NREAD                          = 0x1020
+       SO_NUMRCVPKT                      = 0x1112
+       SO_NWRITE                         = 0x1024
+       SO_OOBINLINE                      = 0x100
+       SO_PEERLABEL                      = 0x1011
+       SO_RANDOMPORT                     = 0x1082
+       SO_RCVBUF                         = 0x1002
+       SO_RCVLOWAT                       = 0x1004
+       SO_RCVTIMEO                       = 0x1006
+       SO_REUSEADDR                      = 0x4
+       SO_REUSEPORT                      = 0x200
+       SO_REUSESHAREUID                  = 0x1025
+       SO_SNDBUF                         = 0x1001
+       SO_SNDLOWAT                       = 0x1003
+       SO_SNDTIMEO                       = 0x1005
+       SO_TIMESTAMP                      = 0x400
+       SO_TIMESTAMP_MONOTONIC            = 0x800
+       SO_TYPE                           = 0x1008
+       SO_UPCALLCLOSEWAIT                = 0x1027
+       SO_USELOOPBACK                    = 0x40
+       SO_WANTMORE                       = 0x4000
+       SO_WANTOOBFLAG                    = 0x8000
+       S_IEXEC                           = 0x40
+       S_IFBLK                           = 0x6000
+       S_IFCHR                           = 0x2000
+       S_IFDIR                           = 0x4000
+       S_IFIFO                           = 0x1000
+       S_IFLNK                           = 0xa000
+       S_IFMT                            = 0xf000
+       S_IFREG                           = 0x8000
+       S_IFSOCK                          = 0xc000
+       S_IFWHT                           = 0xe000
+       S_IREAD                           = 0x100
+       S_IRGRP                           = 0x20
+       S_IROTH                           = 0x4
+       S_IRUSR                           = 0x100
+       S_IRWXG                           = 0x38
+       S_IRWXO                           = 0x7
+       S_IRWXU                           = 0x1c0
+       S_ISGID                           = 0x400
+       S_ISTXT                           = 0x200
+       S_ISUID                           = 0x800
+       S_ISVTX                           = 0x200
+       S_IWGRP                           = 0x10
+       S_IWOTH                           = 0x2
+       S_IWRITE                          = 0x80
+       S_IWUSR                           = 0x80
+       S_IXGRP                           = 0x8
+       S_IXOTH                           = 0x1
+       S_IXUSR                           = 0x40
+       TAB0                              = 0x0
+       TAB1                              = 0x400
+       TAB2                              = 0x800
+       TAB3                              = 0x4
+       TABDLY                            = 0xc04
+       TCIFLUSH                          = 0x1
+       TCIOFF                            = 0x3
+       TCIOFLUSH                         = 0x3
+       TCION                             = 0x4
+       TCOFLUSH                          = 0x2
+       TCOOFF                            = 0x1
+       TCOON                             = 0x2
+       TCP_CONNECTIONTIMEOUT             = 0x20
+       TCP_CONNECTION_INFO               = 0x106
+       TCP_ENABLE_ECN                    = 0x104
+       TCP_FASTOPEN                      = 0x105
+       TCP_KEEPALIVE                     = 0x10
+       TCP_KEEPCNT                       = 0x102
+       TCP_KEEPINTVL                     = 0x101
+       TCP_MAXHLEN                       = 0x3c
+       TCP_MAXOLEN                       = 0x28
+       TCP_MAXSEG                        = 0x2
+       TCP_MAXWIN                        = 0xffff
+       TCP_MAX_SACK                      = 0x4
+       TCP_MAX_WINSHIFT                  = 0xe
+       TCP_MINMSS                        = 0xd8
+       TCP_MSS                           = 0x200
+       TCP_NODELAY                       = 0x1
+       TCP_NOOPT                         = 0x8
+       TCP_NOPUSH                        = 0x4
+       TCP_NOTSENT_LOWAT                 = 0x201
+       TCP_RXT_CONNDROPTIME              = 0x80
+       TCP_RXT_FINDROP                   = 0x100
+       TCP_SENDMOREACKS                  = 0x103
+       TCSAFLUSH                         = 0x2
+       TIOCCBRK                          = 0x2000747a
+       TIOCCDTR                          = 0x20007478
+       TIOCCONS                          = 0x80047462
+       TIOCDCDTIMESTAMP                  = 0x40107458
+       TIOCDRAIN                         = 0x2000745e
+       TIOCDSIMICROCODE                  = 0x20007455
+       TIOCEXCL                          = 0x2000740d
+       TIOCEXT                           = 0x80047460
+       TIOCFLUSH                         = 0x80047410
+       TIOCGDRAINWAIT                    = 0x40047456
+       TIOCGETA                          = 0x40487413
+       TIOCGETD                          = 0x4004741a
+       TIOCGPGRP                         = 0x40047477
+       TIOCGWINSZ                        = 0x40087468
+       TIOCIXOFF                         = 0x20007480
+       TIOCIXON                          = 0x20007481
+       TIOCMBIC                          = 0x8004746b
+       TIOCMBIS                          = 0x8004746c
+       TIOCMGDTRWAIT                     = 0x4004745a
+       TIOCMGET                          = 0x4004746a
+       TIOCMODG                          = 0x40047403
+       TIOCMODS                          = 0x80047404
+       TIOCMSDTRWAIT                     = 0x8004745b
+       TIOCMSET                          = 0x8004746d
+       TIOCM_CAR                         = 0x40
+       TIOCM_CD                          = 0x40
+       TIOCM_CTS                         = 0x20
+       TIOCM_DSR                         = 0x100
+       TIOCM_DTR                         = 0x2
+       TIOCM_LE                          = 0x1
+       TIOCM_RI                          = 0x80
+       TIOCM_RNG                         = 0x80
+       TIOCM_RTS                         = 0x4
+       TIOCM_SR                          = 0x10
+       TIOCM_ST                          = 0x8
+       TIOCNOTTY                         = 0x20007471
+       TIOCNXCL                          = 0x2000740e
+       TIOCOUTQ                          = 0x40047473
+       TIOCPKT                           = 0x80047470
+       TIOCPKT_DATA                      = 0x0
+       TIOCPKT_DOSTOP                    = 0x20
+       TIOCPKT_FLUSHREAD                 = 0x1
+       TIOCPKT_FLUSHWRITE                = 0x2
+       TIOCPKT_IOCTL                     = 0x40
+       TIOCPKT_NOSTOP                    = 0x10
+       TIOCPKT_START                     = 0x8
+       TIOCPKT_STOP                      = 0x4
+       TIOCPTYGNAME                      = 0x40807453
+       TIOCPTYGRANT                      = 0x20007454
+       TIOCPTYUNLK                       = 0x20007452
+       TIOCREMOTE                        = 0x80047469
+       TIOCSBRK                          = 0x2000747b
+       TIOCSCONS                         = 0x20007463
+       TIOCSCTTY                         = 0x20007461
+       TIOCSDRAINWAIT                    = 0x80047457
+       TIOCSDTR                          = 0x20007479
+       TIOCSETA                          = 0x80487414
+       TIOCSETAF                         = 0x80487416
+       TIOCSETAW                         = 0x80487415
+       TIOCSETD                          = 0x8004741b
+       TIOCSIG                           = 0x2000745f
+       TIOCSPGRP                         = 0x80047476
+       TIOCSTART                         = 0x2000746e
+       TIOCSTAT                          = 0x20007465
+       TIOCSTI                           = 0x80017472
+       TIOCSTOP                          = 0x2000746f
+       TIOCSWINSZ                        = 0x80087467
+       TIOCTIMESTAMP                     = 0x40107459
+       TIOCUCNTL                         = 0x80047466
+       TOSTOP                            = 0x400000
+       VDISCARD                          = 0xf
+       VDSUSP                            = 0xb
+       VEOF                              = 0x0
+       VEOL                              = 0x1
+       VEOL2                             = 0x2
+       VERASE                            = 0x3
+       VINTR                             = 0x8
+       VKILL                             = 0x5
+       VLNEXT                            = 0xe
+       VMIN                              = 0x10
+       VM_LOADAVG                        = 0x2
+       VM_MACHFACTOR                     = 0x4
+       VM_MAXID                          = 0x6
+       VM_METER                          = 0x1
+       VM_SWAPUSAGE                      = 0x5
+       VQUIT                             = 0x9
+       VREPRINT                          = 0x6
+       VSTART                            = 0xc
+       VSTATUS                           = 0x12
+       VSTOP                             = 0xd
+       VSUSP                             = 0xa
+       VT0                               = 0x0
+       VT1                               = 0x10000
+       VTDLY                             = 0x10000
+       VTIME                             = 0x11
+       VWERASE                           = 0x4
+       WCONTINUED                        = 0x10
+       WCOREFLAG                         = 0x80
+       WEXITED                           = 0x4
+       WNOHANG                           = 0x1
+       WNOWAIT                           = 0x20
+       WORDSIZE                          = 0x40
+       WSTOPPED                          = 0x8
+       WUNTRACED                         = 0x2
+)
+
+// Errors
+const (
+       E2BIG           = syscall.Errno(0x7)
+       EACCES          = syscall.Errno(0xd)
+       EADDRINUSE      = syscall.Errno(0x30)
+       EADDRNOTAVAIL   = syscall.Errno(0x31)
+       EAFNOSUPPORT    = syscall.Errno(0x2f)
+       EAGAIN          = syscall.Errno(0x23)
+       EALREADY        = syscall.Errno(0x25)
+       EAUTH           = syscall.Errno(0x50)
+       EBADARCH        = syscall.Errno(0x56)
+       EBADEXEC        = syscall.Errno(0x55)
+       EBADF           = syscall.Errno(0x9)
+       EBADMACHO       = syscall.Errno(0x58)
+       EBADMSG         = syscall.Errno(0x5e)
+       EBADRPC         = syscall.Errno(0x48)
+       EBUSY           = syscall.Errno(0x10)
+       ECANCELED       = syscall.Errno(0x59)
+       ECHILD          = syscall.Errno(0xa)
+       ECONNABORTED    = syscall.Errno(0x35)
+       ECONNREFUSED    = syscall.Errno(0x3d)
+       ECONNRESET      = syscall.Errno(0x36)
+       EDEADLK         = syscall.Errno(0xb)
+       EDESTADDRREQ    = syscall.Errno(0x27)
+       EDEVERR         = syscall.Errno(0x53)
+       EDOM            = syscall.Errno(0x21)
+       EDQUOT          = syscall.Errno(0x45)
+       EEXIST          = syscall.Errno(0x11)
+       EFAULT          = syscall.Errno(0xe)
+       EFBIG           = syscall.Errno(0x1b)
+       EFTYPE          = syscall.Errno(0x4f)
+       EHOSTDOWN       = syscall.Errno(0x40)
+       EHOSTUNREACH    = syscall.Errno(0x41)
+       EIDRM           = syscall.Errno(0x5a)
+       EILSEQ          = syscall.Errno(0x5c)
+       EINPROGRESS     = syscall.Errno(0x24)
+       EINTR           = syscall.Errno(0x4)
+       EINVAL          = syscall.Errno(0x16)
+       EIO             = syscall.Errno(0x5)
+       EISCONN         = syscall.Errno(0x38)
+       EISDIR          = syscall.Errno(0x15)
+       ELAST           = syscall.Errno(0x6a)
+       ELOOP           = syscall.Errno(0x3e)
+       EMFILE          = syscall.Errno(0x18)
+       EMLINK          = syscall.Errno(0x1f)
+       EMSGSIZE        = syscall.Errno(0x28)
+       EMULTIHOP       = syscall.Errno(0x5f)
+       ENAMETOOLONG    = syscall.Errno(0x3f)
+       ENEEDAUTH       = syscall.Errno(0x51)
+       ENETDOWN        = syscall.Errno(0x32)
+       ENETRESET       = syscall.Errno(0x34)
+       ENETUNREACH     = syscall.Errno(0x33)
+       ENFILE          = syscall.Errno(0x17)
+       ENOATTR         = syscall.Errno(0x5d)
+       ENOBUFS         = syscall.Errno(0x37)
+       ENODATA         = syscall.Errno(0x60)
+       ENODEV          = syscall.Errno(0x13)
+       ENOENT          = syscall.Errno(0x2)
+       ENOEXEC         = syscall.Errno(0x8)
+       ENOLCK          = syscall.Errno(0x4d)
+       ENOLINK         = syscall.Errno(0x61)
+       ENOMEM          = syscall.Errno(0xc)
+       ENOMSG          = syscall.Errno(0x5b)
+       ENOPOLICY       = syscall.Errno(0x67)
+       ENOPROTOOPT     = syscall.Errno(0x2a)
+       ENOSPC          = syscall.Errno(0x1c)
+       ENOSR           = syscall.Errno(0x62)
+       ENOSTR          = syscall.Errno(0x63)
+       ENOSYS          = syscall.Errno(0x4e)
+       ENOTBLK         = syscall.Errno(0xf)
+       ENOTCONN        = syscall.Errno(0x39)
+       ENOTDIR         = syscall.Errno(0x14)
+       ENOTEMPTY       = syscall.Errno(0x42)
+       ENOTRECOVERABLE = syscall.Errno(0x68)
+       ENOTSOCK        = syscall.Errno(0x26)
+       ENOTSUP         = syscall.Errno(0x2d)
+       ENOTTY          = syscall.Errno(0x19)
+       ENXIO           = syscall.Errno(0x6)
+       EOPNOTSUPP      = syscall.Errno(0x66)
+       EOVERFLOW       = syscall.Errno(0x54)
+       EOWNERDEAD      = syscall.Errno(0x69)
+       EPERM           = syscall.Errno(0x1)
+       EPFNOSUPPORT    = syscall.Errno(0x2e)
+       EPIPE           = syscall.Errno(0x20)
+       EPROCLIM        = syscall.Errno(0x43)
+       EPROCUNAVAIL    = syscall.Errno(0x4c)
+       EPROGMISMATCH   = syscall.Errno(0x4b)
+       EPROGUNAVAIL    = syscall.Errno(0x4a)
+       EPROTO          = syscall.Errno(0x64)
+       EPROTONOSUPPORT = syscall.Errno(0x2b)
+       EPROTOTYPE      = syscall.Errno(0x29)
+       EPWROFF         = syscall.Errno(0x52)
+       EQFULL          = syscall.Errno(0x6a)
+       ERANGE          = syscall.Errno(0x22)
+       EREMOTE         = syscall.Errno(0x47)
+       EROFS           = syscall.Errno(0x1e)
+       ERPCMISMATCH    = syscall.Errno(0x49)
+       ESHLIBVERS      = syscall.Errno(0x57)
+       ESHUTDOWN       = syscall.Errno(0x3a)
+       ESOCKTNOSUPPORT = syscall.Errno(0x2c)
+       ESPIPE          = syscall.Errno(0x1d)
+       ESRCH           = syscall.Errno(0x3)
+       ESTALE          = syscall.Errno(0x46)
+       ETIME           = syscall.Errno(0x65)
+       ETIMEDOUT       = syscall.Errno(0x3c)
+       ETOOMANYREFS    = syscall.Errno(0x3b)
+       ETXTBSY         = syscall.Errno(0x1a)
+       EUSERS          = syscall.Errno(0x44)
+       EWOULDBLOCK     = syscall.Errno(0x23)
+       EXDEV           = syscall.Errno(0x12)
+)
+
+// Signals
+const (
+       SIGABRT   = syscall.Signal(0x6)
+       SIGALRM   = syscall.Signal(0xe)
+       SIGBUS    = syscall.Signal(0xa)
+       SIGCHLD   = syscall.Signal(0x14)
+       SIGCONT   = syscall.Signal(0x13)
+       SIGEMT    = syscall.Signal(0x7)
+       SIGFPE    = syscall.Signal(0x8)
+       SIGHUP    = syscall.Signal(0x1)
+       SIGILL    = syscall.Signal(0x4)
+       SIGINFO   = syscall.Signal(0x1d)
+       SIGINT    = syscall.Signal(0x2)
+       SIGIO     = syscall.Signal(0x17)
+       SIGIOT    = syscall.Signal(0x6)
+       SIGKILL   = syscall.Signal(0x9)
+       SIGPIPE   = syscall.Signal(0xd)
+       SIGPROF   = syscall.Signal(0x1b)
+       SIGQUIT   = syscall.Signal(0x3)
+       SIGSEGV   = syscall.Signal(0xb)
+       SIGSTOP   = syscall.Signal(0x11)
+       SIGSYS    = syscall.Signal(0xc)
+       SIGTERM   = syscall.Signal(0xf)
+       SIGTRAP   = syscall.Signal(0x5)
+       SIGTSTP   = syscall.Signal(0x12)
+       SIGTTIN   = syscall.Signal(0x15)
+       SIGTTOU   = syscall.Signal(0x16)
+       SIGURG    = syscall.Signal(0x10)
+       SIGUSR1   = syscall.Signal(0x1e)
+       SIGUSR2   = syscall.Signal(0x1f)
+       SIGVTALRM = syscall.Signal(0x1a)
+       SIGWINCH  = syscall.Signal(0x1c)
+       SIGXCPU   = syscall.Signal(0x18)
+       SIGXFSZ   = syscall.Signal(0x19)
+)
+
+// Error table
+var errors = [...]string{
+       1:   "operation not permitted",
+       2:   "no such file or directory",
+       3:   "no such process",
+       4:   "interrupted system call",
+       5:   "input/output error",
+       6:   "device not configured",
+       7:   "argument list too long",
+       8:   "exec format error",
+       9:   "bad file descriptor",
+       10:  "no child processes",
+       11:  "resource deadlock avoided",
+       12:  "cannot allocate memory",
+       13:  "permission denied",
+       14:  "bad address",
+       15:  "block device required",
+       16:  "resource busy",
+       17:  "file exists",
+       18:  "cross-device link",
+       19:  "operation not supported by device",
+       20:  "not a directory",
+       21:  "is a directory",
+       22:  "invalid argument",
+       23:  "too many open files in system",
+       24:  "too many open files",
+       25:  "inappropriate ioctl for device",
+       26:  "text file busy",
+       27:  "file too large",
+       28:  "no space left on device",
+       29:  "illegal seek",
+       30:  "read-only file system",
+       31:  "too many links",
+       32:  "broken pipe",
+       33:  "numerical argument out of domain",
+       34:  "result too large",
+       35:  "resource temporarily unavailable",
+       36:  "operation now in progress",
+       37:  "operation already in progress",
+       38:  "socket operation on non-socket",
+       39:  "destination address required",
+       40:  "message too long",
+       41:  "protocol wrong type for socket",
+       42:  "protocol not available",
+       43:  "protocol not supported",
+       44:  "socket type not supported",
+       45:  "operation not supported",
+       46:  "protocol family not supported",
+       47:  "address family not supported by protocol family",
+       48:  "address already in use",
+       49:  "can't assign requested address",
+       50:  "network is down",
+       51:  "network is unreachable",
+       52:  "network dropped connection on reset",
+       53:  "software caused connection abort",
+       54:  "connection reset by peer",
+       55:  "no buffer space available",
+       56:  "socket is already connected",
+       57:  "socket is not connected",
+       58:  "can't send after socket shutdown",
+       59:  "too many references: can't splice",
+       60:  "operation timed out",
+       61:  "connection refused",
+       62:  "too many levels of symbolic links",
+       63:  "file name too long",
+       64:  "host is down",
+       65:  "no route to host",
+       66:  "directory not empty",
+       67:  "too many processes",
+       68:  "too many users",
+       69:  "disc quota exceeded",
+       70:  "stale NFS file handle",
+       71:  "too many levels of remote in path",
+       72:  "RPC struct is bad",
+       73:  "RPC version wrong",
+       74:  "RPC prog. not avail",
+       75:  "program version wrong",
+       76:  "bad procedure for program",
+       77:  "no locks available",
+       78:  "function not implemented",
+       79:  "inappropriate file type or format",
+       80:  "authentication error",
+       81:  "need authenticator",
+       82:  "device power is off",
+       83:  "device error",
+       84:  "value too large to be stored in data type",
+       85:  "bad executable (or shared library)",
+       86:  "bad CPU type in executable",
+       87:  "shared library version mismatch",
+       88:  "malformed Mach-o file",
+       89:  "operation canceled",
+       90:  "identifier removed",
+       91:  "no message of desired type",
+       92:  "illegal byte sequence",
+       93:  "attribute not found",
+       94:  "bad message",
+       95:  "EMULTIHOP (Reserved)",
+       96:  "no message available on STREAM",
+       97:  "ENOLINK (Reserved)",
+       98:  "no STREAM resources",
+       99:  "not a STREAM",
+       100: "protocol error",
+       101: "STREAM ioctl timeout",
+       102: "operation not supported on socket",
+       103: "policy not found",
+       104: "state not recoverable",
+       105: "previous owner died",
+       106: "interface output queue is full",
+}
+
+// Signal table
+var signals = [...]string{
+       1:  "hangup",
+       2:  "interrupt",
+       3:  "quit",
+       4:  "illegal instruction",
+       5:  "trace/BPT trap",
+       6:  "abort trap",
+       7:  "EMT trap",
+       8:  "floating point exception",
+       9:  "killed",
+       10: "bus error",
+       11: "segmentation fault",
+       12: "bad system call",
+       13: "broken pipe",
+       14: "alarm clock",
+       15: "terminated",
+       16: "urgent I/O condition",
+       17: "suspended (signal)",
+       18: "suspended",
+       19: "continued",
+       20: "child exited",
+       21: "stopped (tty input)",
+       22: "stopped (tty output)",
+       23: "I/O possible",
+       24: "cputime limit exceeded",
+       25: "filesize limit exceeded",
+       26: "virtual timer expired",
+       27: "profiling timer expired",
+       28: "window size changes",
+       29: "information request",
+       30: "user defined signal 1",
+       31: "user defined signal 2",
+}
diff --git a/vendor/golang.org/x/sys/unix/zerrors_dragonfly_amd64.go b/vendor/golang.org/x/sys/unix/zerrors_dragonfly_amd64.go
new file mode 100644 (file)
index 0000000..8f40598
--- /dev/null
@@ -0,0 +1,1568 @@
+// mkerrors.sh -m64
+// Code generated by the command above; see README.md. DO NOT EDIT.
+
+// +build amd64,dragonfly
+
+// Created by cgo -godefs - DO NOT EDIT
+// cgo -godefs -- -m64 _const.go
+
+package unix
+
+import "syscall"
+
+const (
+       AF_APPLETALK                      = 0x10
+       AF_ATM                            = 0x1e
+       AF_BLUETOOTH                      = 0x21
+       AF_CCITT                          = 0xa
+       AF_CHAOS                          = 0x5
+       AF_CNT                            = 0x15
+       AF_COIP                           = 0x14
+       AF_DATAKIT                        = 0x9
+       AF_DECnet                         = 0xc
+       AF_DLI                            = 0xd
+       AF_E164                           = 0x1a
+       AF_ECMA                           = 0x8
+       AF_HYLINK                         = 0xf
+       AF_IEEE80211                      = 0x23
+       AF_IMPLINK                        = 0x3
+       AF_INET                           = 0x2
+       AF_INET6                          = 0x1c
+       AF_IPX                            = 0x17
+       AF_ISDN                           = 0x1a
+       AF_ISO                            = 0x7
+       AF_LAT                            = 0xe
+       AF_LINK                           = 0x12
+       AF_LOCAL                          = 0x1
+       AF_MAX                            = 0x24
+       AF_MPLS                           = 0x22
+       AF_NATM                           = 0x1d
+       AF_NETBIOS                        = 0x6
+       AF_NETGRAPH                       = 0x20
+       AF_OSI                            = 0x7
+       AF_PUP                            = 0x4
+       AF_ROUTE                          = 0x11
+       AF_SIP                            = 0x18
+       AF_SNA                            = 0xb
+       AF_UNIX                           = 0x1
+       AF_UNSPEC                         = 0x0
+       ALTWERASE                         = 0x200
+       B0                                = 0x0
+       B110                              = 0x6e
+       B115200                           = 0x1c200
+       B1200                             = 0x4b0
+       B134                              = 0x86
+       B14400                            = 0x3840
+       B150                              = 0x96
+       B1800                             = 0x708
+       B19200                            = 0x4b00
+       B200                              = 0xc8
+       B230400                           = 0x38400
+       B2400                             = 0x960
+       B28800                            = 0x7080
+       B300                              = 0x12c
+       B38400                            = 0x9600
+       B4800                             = 0x12c0
+       B50                               = 0x32
+       B57600                            = 0xe100
+       B600                              = 0x258
+       B7200                             = 0x1c20
+       B75                               = 0x4b
+       B76800                            = 0x12c00
+       B9600                             = 0x2580
+       BIOCFLUSH                         = 0x20004268
+       BIOCGBLEN                         = 0x40044266
+       BIOCGDLT                          = 0x4004426a
+       BIOCGDLTLIST                      = 0xc0104279
+       BIOCGETIF                         = 0x4020426b
+       BIOCGHDRCMPLT                     = 0x40044274
+       BIOCGRSIG                         = 0x40044272
+       BIOCGRTIMEOUT                     = 0x4010426e
+       BIOCGSEESENT                      = 0x40044276
+       BIOCGSTATS                        = 0x4008426f
+       BIOCIMMEDIATE                     = 0x80044270
+       BIOCLOCK                          = 0x2000427a
+       BIOCPROMISC                       = 0x20004269
+       BIOCSBLEN                         = 0xc0044266
+       BIOCSDLT                          = 0x80044278
+       BIOCSETF                          = 0x80104267
+       BIOCSETIF                         = 0x8020426c
+       BIOCSETWF                         = 0x8010427b
+       BIOCSHDRCMPLT                     = 0x80044275
+       BIOCSRSIG                         = 0x80044273
+       BIOCSRTIMEOUT                     = 0x8010426d
+       BIOCSSEESENT                      = 0x80044277
+       BIOCVERSION                       = 0x40044271
+       BPF_A                             = 0x10
+       BPF_ABS                           = 0x20
+       BPF_ADD                           = 0x0
+       BPF_ALIGNMENT                     = 0x8
+       BPF_ALU                           = 0x4
+       BPF_AND                           = 0x50
+       BPF_B                             = 0x10
+       BPF_DEFAULTBUFSIZE                = 0x1000
+       BPF_DIV                           = 0x30
+       BPF_H                             = 0x8
+       BPF_IMM                           = 0x0
+       BPF_IND                           = 0x40
+       BPF_JA                            = 0x0
+       BPF_JEQ                           = 0x10
+       BPF_JGE                           = 0x30
+       BPF_JGT                           = 0x20
+       BPF_JMP                           = 0x5
+       BPF_JSET                          = 0x40
+       BPF_K                             = 0x0
+       BPF_LD                            = 0x0
+       BPF_LDX                           = 0x1
+       BPF_LEN                           = 0x80
+       BPF_LSH                           = 0x60
+       BPF_MAJOR_VERSION                 = 0x1
+       BPF_MAXBUFSIZE                    = 0x80000
+       BPF_MAXINSNS                      = 0x200
+       BPF_MAX_CLONES                    = 0x80
+       BPF_MEM                           = 0x60
+       BPF_MEMWORDS                      = 0x10
+       BPF_MINBUFSIZE                    = 0x20
+       BPF_MINOR_VERSION                 = 0x1
+       BPF_MISC                          = 0x7
+       BPF_MSH                           = 0xa0
+       BPF_MUL                           = 0x20
+       BPF_NEG                           = 0x80
+       BPF_OR                            = 0x40
+       BPF_RELEASE                       = 0x30bb6
+       BPF_RET                           = 0x6
+       BPF_RSH                           = 0x70
+       BPF_ST                            = 0x2
+       BPF_STX                           = 0x3
+       BPF_SUB                           = 0x10
+       BPF_TAX                           = 0x0
+       BPF_TXA                           = 0x80
+       BPF_W                             = 0x0
+       BPF_X                             = 0x8
+       BRKINT                            = 0x2
+       CFLUSH                            = 0xf
+       CLOCAL                            = 0x8000
+       CLOCK_MONOTONIC                   = 0x4
+       CLOCK_MONOTONIC_FAST              = 0xc
+       CLOCK_MONOTONIC_PRECISE           = 0xb
+       CLOCK_PROCESS_CPUTIME_ID          = 0xf
+       CLOCK_PROF                        = 0x2
+       CLOCK_REALTIME                    = 0x0
+       CLOCK_REALTIME_FAST               = 0xa
+       CLOCK_REALTIME_PRECISE            = 0x9
+       CLOCK_SECOND                      = 0xd
+       CLOCK_THREAD_CPUTIME_ID           = 0xe
+       CLOCK_UPTIME                      = 0x5
+       CLOCK_UPTIME_FAST                 = 0x8
+       CLOCK_UPTIME_PRECISE              = 0x7
+       CLOCK_VIRTUAL                     = 0x1
+       CREAD                             = 0x800
+       CRTSCTS                           = 0x30000
+       CS5                               = 0x0
+       CS6                               = 0x100
+       CS7                               = 0x200
+       CS8                               = 0x300
+       CSIZE                             = 0x300
+       CSTART                            = 0x11
+       CSTATUS                           = 0x14
+       CSTOP                             = 0x13
+       CSTOPB                            = 0x400
+       CSUSP                             = 0x1a
+       CTL_MAXNAME                       = 0xc
+       CTL_NET                           = 0x4
+       DLT_A429                          = 0xb8
+       DLT_A653_ICM                      = 0xb9
+       DLT_AIRONET_HEADER                = 0x78
+       DLT_APPLE_IP_OVER_IEEE1394        = 0x8a
+       DLT_ARCNET                        = 0x7
+       DLT_ARCNET_LINUX                  = 0x81
+       DLT_ATM_CLIP                      = 0x13
+       DLT_ATM_RFC1483                   = 0xb
+       DLT_AURORA                        = 0x7e
+       DLT_AX25                          = 0x3
+       DLT_AX25_KISS                     = 0xca
+       DLT_BACNET_MS_TP                  = 0xa5
+       DLT_BLUETOOTH_HCI_H4              = 0xbb
+       DLT_BLUETOOTH_HCI_H4_WITH_PHDR    = 0xc9
+       DLT_CAN20B                        = 0xbe
+       DLT_CHAOS                         = 0x5
+       DLT_CHDLC                         = 0x68
+       DLT_CISCO_IOS                     = 0x76
+       DLT_C_HDLC                        = 0x68
+       DLT_C_HDLC_WITH_DIR               = 0xcd
+       DLT_DOCSIS                        = 0x8f
+       DLT_ECONET                        = 0x73
+       DLT_EN10MB                        = 0x1
+       DLT_EN3MB                         = 0x2
+       DLT_ENC                           = 0x6d
+       DLT_ERF                           = 0xc5
+       DLT_ERF_ETH                       = 0xaf
+       DLT_ERF_POS                       = 0xb0
+       DLT_FDDI                          = 0xa
+       DLT_FLEXRAY                       = 0xd2
+       DLT_FRELAY                        = 0x6b
+       DLT_FRELAY_WITH_DIR               = 0xce
+       DLT_GCOM_SERIAL                   = 0xad
+       DLT_GCOM_T1E1                     = 0xac
+       DLT_GPF_F                         = 0xab
+       DLT_GPF_T                         = 0xaa
+       DLT_GPRS_LLC                      = 0xa9
+       DLT_HHDLC                         = 0x79
+       DLT_IBM_SN                        = 0x92
+       DLT_IBM_SP                        = 0x91
+       DLT_IEEE802                       = 0x6
+       DLT_IEEE802_11                    = 0x69
+       DLT_IEEE802_11_RADIO              = 0x7f
+       DLT_IEEE802_11_RADIO_AVS          = 0xa3
+       DLT_IEEE802_15_4                  = 0xc3
+       DLT_IEEE802_15_4_LINUX            = 0xbf
+       DLT_IEEE802_15_4_NONASK_PHY       = 0xd7
+       DLT_IEEE802_16_MAC_CPS            = 0xbc
+       DLT_IEEE802_16_MAC_CPS_RADIO      = 0xc1
+       DLT_IPFILTER                      = 0x74
+       DLT_IPMB                          = 0xc7
+       DLT_IPMB_LINUX                    = 0xd1
+       DLT_IP_OVER_FC                    = 0x7a
+       DLT_JUNIPER_ATM1                  = 0x89
+       DLT_JUNIPER_ATM2                  = 0x87
+       DLT_JUNIPER_CHDLC                 = 0xb5
+       DLT_JUNIPER_ES                    = 0x84
+       DLT_JUNIPER_ETHER                 = 0xb2
+       DLT_JUNIPER_FRELAY                = 0xb4
+       DLT_JUNIPER_GGSN                  = 0x85
+       DLT_JUNIPER_ISM                   = 0xc2
+       DLT_JUNIPER_MFR                   = 0x86
+       DLT_JUNIPER_MLFR                  = 0x83
+       DLT_JUNIPER_MLPPP                 = 0x82
+       DLT_JUNIPER_MONITOR               = 0xa4
+       DLT_JUNIPER_PIC_PEER              = 0xae
+       DLT_JUNIPER_PPP                   = 0xb3
+       DLT_JUNIPER_PPPOE                 = 0xa7
+       DLT_JUNIPER_PPPOE_ATM             = 0xa8
+       DLT_JUNIPER_SERVICES              = 0x88
+       DLT_JUNIPER_ST                    = 0xc8
+       DLT_JUNIPER_VP                    = 0xb7
+       DLT_LAPB_WITH_DIR                 = 0xcf
+       DLT_LAPD                          = 0xcb
+       DLT_LIN                           = 0xd4
+       DLT_LINUX_IRDA                    = 0x90
+       DLT_LINUX_LAPD                    = 0xb1
+       DLT_LINUX_SLL                     = 0x71
+       DLT_LOOP                          = 0x6c
+       DLT_LTALK                         = 0x72
+       DLT_MFR                           = 0xb6
+       DLT_MOST                          = 0xd3
+       DLT_MTP2                          = 0x8c
+       DLT_MTP2_WITH_PHDR                = 0x8b
+       DLT_MTP3                          = 0x8d
+       DLT_NULL                          = 0x0
+       DLT_PCI_EXP                       = 0x7d
+       DLT_PFLOG                         = 0x75
+       DLT_PFSYNC                        = 0x12
+       DLT_PPI                           = 0xc0
+       DLT_PPP                           = 0x9
+       DLT_PPP_BSDOS                     = 0x10
+       DLT_PPP_ETHER                     = 0x33
+       DLT_PPP_PPPD                      = 0xa6
+       DLT_PPP_SERIAL                    = 0x32
+       DLT_PPP_WITH_DIR                  = 0xcc
+       DLT_PRISM_HEADER                  = 0x77
+       DLT_PRONET                        = 0x4
+       DLT_RAIF1                         = 0xc6
+       DLT_RAW                           = 0xc
+       DLT_REDBACK_SMARTEDGE             = 0x20
+       DLT_RIO                           = 0x7c
+       DLT_SCCP                          = 0x8e
+       DLT_SITA                          = 0xc4
+       DLT_SLIP                          = 0x8
+       DLT_SLIP_BSDOS                    = 0xf
+       DLT_SUNATM                        = 0x7b
+       DLT_SYMANTEC_FIREWALL             = 0x63
+       DLT_TZSP                          = 0x80
+       DLT_USB                           = 0xba
+       DLT_USB_LINUX                     = 0xbd
+       DLT_X2E_SERIAL                    = 0xd5
+       DLT_X2E_XORAYA                    = 0xd6
+       DT_BLK                            = 0x6
+       DT_CHR                            = 0x2
+       DT_DBF                            = 0xf
+       DT_DIR                            = 0x4
+       DT_FIFO                           = 0x1
+       DT_LNK                            = 0xa
+       DT_REG                            = 0x8
+       DT_SOCK                           = 0xc
+       DT_UNKNOWN                        = 0x0
+       DT_WHT                            = 0xe
+       ECHO                              = 0x8
+       ECHOCTL                           = 0x40
+       ECHOE                             = 0x2
+       ECHOK                             = 0x4
+       ECHOKE                            = 0x1
+       ECHONL                            = 0x10
+       ECHOPRT                           = 0x20
+       EVFILT_AIO                        = -0x3
+       EVFILT_EXCEPT                     = -0x8
+       EVFILT_FS                         = -0xa
+       EVFILT_MARKER                     = 0xf
+       EVFILT_PROC                       = -0x5
+       EVFILT_READ                       = -0x1
+       EVFILT_SIGNAL                     = -0x6
+       EVFILT_SYSCOUNT                   = 0xa
+       EVFILT_TIMER                      = -0x7
+       EVFILT_USER                       = -0x9
+       EVFILT_VNODE                      = -0x4
+       EVFILT_WRITE                      = -0x2
+       EV_ADD                            = 0x1
+       EV_CLEAR                          = 0x20
+       EV_DELETE                         = 0x2
+       EV_DISABLE                        = 0x8
+       EV_DISPATCH                       = 0x80
+       EV_ENABLE                         = 0x4
+       EV_EOF                            = 0x8000
+       EV_ERROR                          = 0x4000
+       EV_FLAG1                          = 0x2000
+       EV_NODATA                         = 0x1000
+       EV_ONESHOT                        = 0x10
+       EV_RECEIPT                        = 0x40
+       EV_SYSFLAGS                       = 0xf000
+       EXTA                              = 0x4b00
+       EXTB                              = 0x9600
+       EXTEXIT_LWP                       = 0x10000
+       EXTEXIT_PROC                      = 0x0
+       EXTEXIT_SETINT                    = 0x1
+       EXTEXIT_SIMPLE                    = 0x0
+       EXTPROC                           = 0x800
+       FD_CLOEXEC                        = 0x1
+       FD_SETSIZE                        = 0x400
+       FLUSHO                            = 0x800000
+       F_DUP2FD                          = 0xa
+       F_DUP2FD_CLOEXEC                  = 0x12
+       F_DUPFD                           = 0x0
+       F_DUPFD_CLOEXEC                   = 0x11
+       F_GETFD                           = 0x1
+       F_GETFL                           = 0x3
+       F_GETLK                           = 0x7
+       F_GETOWN                          = 0x5
+       F_OK                              = 0x0
+       F_RDLCK                           = 0x1
+       F_SETFD                           = 0x2
+       F_SETFL                           = 0x4
+       F_SETLK                           = 0x8
+       F_SETLKW                          = 0x9
+       F_SETOWN                          = 0x6
+       F_UNLCK                           = 0x2
+       F_WRLCK                           = 0x3
+       HUPCL                             = 0x4000
+       ICANON                            = 0x100
+       ICMP6_FILTER                      = 0x12
+       ICRNL                             = 0x100
+       IEXTEN                            = 0x400
+       IFAN_ARRIVAL                      = 0x0
+       IFAN_DEPARTURE                    = 0x1
+       IFF_ALLMULTI                      = 0x200
+       IFF_ALTPHYS                       = 0x4000
+       IFF_BROADCAST                     = 0x2
+       IFF_CANTCHANGE                    = 0x118e72
+       IFF_DEBUG                         = 0x4
+       IFF_LINK0                         = 0x1000
+       IFF_LINK1                         = 0x2000
+       IFF_LINK2                         = 0x4000
+       IFF_LOOPBACK                      = 0x8
+       IFF_MONITOR                       = 0x40000
+       IFF_MULTICAST                     = 0x8000
+       IFF_NOARP                         = 0x80
+       IFF_NPOLLING                      = 0x100000
+       IFF_OACTIVE                       = 0x400
+       IFF_OACTIVE_COMPAT                = 0x400
+       IFF_POINTOPOINT                   = 0x10
+       IFF_POLLING                       = 0x10000
+       IFF_POLLING_COMPAT                = 0x10000
+       IFF_PPROMISC                      = 0x20000
+       IFF_PROMISC                       = 0x100
+       IFF_RUNNING                       = 0x40
+       IFF_SIMPLEX                       = 0x800
+       IFF_SMART                         = 0x20
+       IFF_STATICARP                     = 0x80000
+       IFF_UP                            = 0x1
+       IFNAMSIZ                          = 0x10
+       IFT_1822                          = 0x2
+       IFT_A12MPPSWITCH                  = 0x82
+       IFT_AAL2                          = 0xbb
+       IFT_AAL5                          = 0x31
+       IFT_ADSL                          = 0x5e
+       IFT_AFLANE8023                    = 0x3b
+       IFT_AFLANE8025                    = 0x3c
+       IFT_ARAP                          = 0x58
+       IFT_ARCNET                        = 0x23
+       IFT_ARCNETPLUS                    = 0x24
+       IFT_ASYNC                         = 0x54
+       IFT_ATM                           = 0x25
+       IFT_ATMDXI                        = 0x69
+       IFT_ATMFUNI                       = 0x6a
+       IFT_ATMIMA                        = 0x6b
+       IFT_ATMLOGICAL                    = 0x50
+       IFT_ATMRADIO                      = 0xbd
+       IFT_ATMSUBINTERFACE               = 0x86
+       IFT_ATMVCIENDPT                   = 0xc2
+       IFT_ATMVIRTUAL                    = 0x95
+       IFT_BGPPOLICYACCOUNTING           = 0xa2
+       IFT_BRIDGE                        = 0xd1
+       IFT_BSC                           = 0x53
+       IFT_CARP                          = 0xf8
+       IFT_CCTEMUL                       = 0x3d
+       IFT_CEPT                          = 0x13
+       IFT_CES                           = 0x85
+       IFT_CHANNEL                       = 0x46
+       IFT_CNR                           = 0x55
+       IFT_COFFEE                        = 0x84
+       IFT_COMPOSITELINK                 = 0x9b
+       IFT_DCN                           = 0x8d
+       IFT_DIGITALPOWERLINE              = 0x8a
+       IFT_DIGITALWRAPPEROVERHEADCHANNEL = 0xba
+       IFT_DLSW                          = 0x4a
+       IFT_DOCSCABLEDOWNSTREAM           = 0x80
+       IFT_DOCSCABLEMACLAYER             = 0x7f
+       IFT_DOCSCABLEUPSTREAM             = 0x81
+       IFT_DS0                           = 0x51
+       IFT_DS0BUNDLE                     = 0x52
+       IFT_DS1FDL                        = 0xaa
+       IFT_DS3                           = 0x1e
+       IFT_DTM                           = 0x8c
+       IFT_DVBASILN                      = 0xac
+       IFT_DVBASIOUT                     = 0xad
+       IFT_DVBRCCDOWNSTREAM              = 0x93
+       IFT_DVBRCCMACLAYER                = 0x92
+       IFT_DVBRCCUPSTREAM                = 0x94
+       IFT_ENC                           = 0xf4
+       IFT_EON                           = 0x19
+       IFT_EPLRS                         = 0x57
+       IFT_ESCON                         = 0x49
+       IFT_ETHER                         = 0x6
+       IFT_FAITH                         = 0xf2
+       IFT_FAST                          = 0x7d
+       IFT_FASTETHER                     = 0x3e
+       IFT_FASTETHERFX                   = 0x45
+       IFT_FDDI                          = 0xf
+       IFT_FIBRECHANNEL                  = 0x38
+       IFT_FRAMERELAYINTERCONNECT        = 0x3a
+       IFT_FRAMERELAYMPI                 = 0x5c
+       IFT_FRDLCIENDPT                   = 0xc1
+       IFT_FRELAY                        = 0x20
+       IFT_FRELAYDCE                     = 0x2c
+       IFT_FRF16MFRBUNDLE                = 0xa3
+       IFT_FRFORWARD                     = 0x9e
+       IFT_G703AT2MB                     = 0x43
+       IFT_G703AT64K                     = 0x42
+       IFT_GIF                           = 0xf0
+       IFT_GIGABITETHERNET               = 0x75
+       IFT_GR303IDT                      = 0xb2
+       IFT_GR303RDT                      = 0xb1
+       IFT_H323GATEKEEPER                = 0xa4
+       IFT_H323PROXY                     = 0xa5
+       IFT_HDH1822                       = 0x3
+       IFT_HDLC                          = 0x76
+       IFT_HDSL2                         = 0xa8
+       IFT_HIPERLAN2                     = 0xb7
+       IFT_HIPPI                         = 0x2f
+       IFT_HIPPIINTERFACE                = 0x39
+       IFT_HOSTPAD                       = 0x5a
+       IFT_HSSI                          = 0x2e
+       IFT_HY                            = 0xe
+       IFT_IBM370PARCHAN                 = 0x48
+       IFT_IDSL                          = 0x9a
+       IFT_IEEE1394                      = 0x90
+       IFT_IEEE80211                     = 0x47
+       IFT_IEEE80212                     = 0x37
+       IFT_IEEE8023ADLAG                 = 0xa1
+       IFT_IFGSN                         = 0x91
+       IFT_IMT                           = 0xbe
+       IFT_INTERLEAVE                    = 0x7c
+       IFT_IP                            = 0x7e
+       IFT_IPFORWARD                     = 0x8e
+       IFT_IPOVERATM                     = 0x72
+       IFT_IPOVERCDLC                    = 0x6d
+       IFT_IPOVERCLAW                    = 0x6e
+       IFT_IPSWITCH                      = 0x4e
+       IFT_ISDN                          = 0x3f
+       IFT_ISDNBASIC                     = 0x14
+       IFT_ISDNPRIMARY                   = 0x15
+       IFT_ISDNS                         = 0x4b
+       IFT_ISDNU                         = 0x4c
+       IFT_ISO88022LLC                   = 0x29
+       IFT_ISO88023                      = 0x7
+       IFT_ISO88024                      = 0x8
+       IFT_ISO88025                      = 0x9
+       IFT_ISO88025CRFPINT               = 0x62
+       IFT_ISO88025DTR                   = 0x56
+       IFT_ISO88025FIBER                 = 0x73
+       IFT_ISO88026                      = 0xa
+       IFT_ISUP                          = 0xb3
+       IFT_L2VLAN                        = 0x87
+       IFT_L3IPVLAN                      = 0x88
+       IFT_L3IPXVLAN                     = 0x89
+       IFT_LAPB                          = 0x10
+       IFT_LAPD                          = 0x4d
+       IFT_LAPF                          = 0x77
+       IFT_LOCALTALK                     = 0x2a
+       IFT_LOOP                          = 0x18
+       IFT_MEDIAMAILOVERIP               = 0x8b
+       IFT_MFSIGLINK                     = 0xa7
+       IFT_MIOX25                        = 0x26
+       IFT_MODEM                         = 0x30
+       IFT_MPC                           = 0x71
+       IFT_MPLS                          = 0xa6
+       IFT_MPLSTUNNEL                    = 0x96
+       IFT_MSDSL                         = 0x8f
+       IFT_MVL                           = 0xbf
+       IFT_MYRINET                       = 0x63
+       IFT_NFAS                          = 0xaf
+       IFT_NSIP                          = 0x1b
+       IFT_OPTICALCHANNEL                = 0xc3
+       IFT_OPTICALTRANSPORT              = 0xc4
+       IFT_OTHER                         = 0x1
+       IFT_P10                           = 0xc
+       IFT_P80                           = 0xd
+       IFT_PARA                          = 0x22
+       IFT_PFLOG                         = 0xf5
+       IFT_PFSYNC                        = 0xf6
+       IFT_PLC                           = 0xae
+       IFT_POS                           = 0xab
+       IFT_PPP                           = 0x17
+       IFT_PPPMULTILINKBUNDLE            = 0x6c
+       IFT_PROPBWAP2MP                   = 0xb8
+       IFT_PROPCNLS                      = 0x59
+       IFT_PROPDOCSWIRELESSDOWNSTREAM    = 0xb5
+       IFT_PROPDOCSWIRELESSMACLAYER      = 0xb4
+       IFT_PROPDOCSWIRELESSUPSTREAM      = 0xb6
+       IFT_PROPMUX                       = 0x36
+       IFT_PROPVIRTUAL                   = 0x35
+       IFT_PROPWIRELESSP2P               = 0x9d
+       IFT_PTPSERIAL                     = 0x16
+       IFT_PVC                           = 0xf1
+       IFT_QLLC                          = 0x44
+       IFT_RADIOMAC                      = 0xbc
+       IFT_RADSL                         = 0x5f
+       IFT_REACHDSL                      = 0xc0
+       IFT_RFC1483                       = 0x9f
+       IFT_RS232                         = 0x21
+       IFT_RSRB                          = 0x4f
+       IFT_SDLC                          = 0x11
+       IFT_SDSL                          = 0x60
+       IFT_SHDSL                         = 0xa9
+       IFT_SIP                           = 0x1f
+       IFT_SLIP                          = 0x1c
+       IFT_SMDSDXI                       = 0x2b
+       IFT_SMDSICIP                      = 0x34
+       IFT_SONET                         = 0x27
+       IFT_SONETOVERHEADCHANNEL          = 0xb9
+       IFT_SONETPATH                     = 0x32
+       IFT_SONETVT                       = 0x33
+       IFT_SRP                           = 0x97
+       IFT_SS7SIGLINK                    = 0x9c
+       IFT_STACKTOSTACK                  = 0x6f
+       IFT_STARLAN                       = 0xb
+       IFT_STF                           = 0xf3
+       IFT_T1                            = 0x12
+       IFT_TDLC                          = 0x74
+       IFT_TERMPAD                       = 0x5b
+       IFT_TR008                         = 0xb0
+       IFT_TRANSPHDLC                    = 0x7b
+       IFT_TUNNEL                        = 0x83
+       IFT_ULTRA                         = 0x1d
+       IFT_USB                           = 0xa0
+       IFT_V11                           = 0x40
+       IFT_V35                           = 0x2d
+       IFT_V36                           = 0x41
+       IFT_V37                           = 0x78
+       IFT_VDSL                          = 0x61
+       IFT_VIRTUALIPADDRESS              = 0x70
+       IFT_VOICEEM                       = 0x64
+       IFT_VOICEENCAP                    = 0x67
+       IFT_VOICEFXO                      = 0x65
+       IFT_VOICEFXS                      = 0x66
+       IFT_VOICEOVERATM                  = 0x98
+       IFT_VOICEOVERFRAMERELAY           = 0x99
+       IFT_VOICEOVERIP                   = 0x68
+       IFT_X213                          = 0x5d
+       IFT_X25                           = 0x5
+       IFT_X25DDN                        = 0x4
+       IFT_X25HUNTGROUP                  = 0x7a
+       IFT_X25MLP                        = 0x79
+       IFT_X25PLE                        = 0x28
+       IFT_XETHER                        = 0x1a
+       IGNBRK                            = 0x1
+       IGNCR                             = 0x80
+       IGNPAR                            = 0x4
+       IMAXBEL                           = 0x2000
+       INLCR                             = 0x40
+       INPCK                             = 0x10
+       IN_CLASSA_HOST                    = 0xffffff
+       IN_CLASSA_MAX                     = 0x80
+       IN_CLASSA_NET                     = 0xff000000
+       IN_CLASSA_NSHIFT                  = 0x18
+       IN_CLASSB_HOST                    = 0xffff
+       IN_CLASSB_MAX                     = 0x10000
+       IN_CLASSB_NET                     = 0xffff0000
+       IN_CLASSB_NSHIFT                  = 0x10
+       IN_CLASSC_HOST                    = 0xff
+       IN_CLASSC_NET                     = 0xffffff00
+       IN_CLASSC_NSHIFT                  = 0x8
+       IN_CLASSD_HOST                    = 0xfffffff
+       IN_CLASSD_NET                     = 0xf0000000
+       IN_CLASSD_NSHIFT                  = 0x1c
+       IN_LOOPBACKNET                    = 0x7f
+       IPPROTO_3PC                       = 0x22
+       IPPROTO_ADFS                      = 0x44
+       IPPROTO_AH                        = 0x33
+       IPPROTO_AHIP                      = 0x3d
+       IPPROTO_APES                      = 0x63
+       IPPROTO_ARGUS                     = 0xd
+       IPPROTO_AX25                      = 0x5d
+       IPPROTO_BHA                       = 0x31
+       IPPROTO_BLT                       = 0x1e
+       IPPROTO_BRSATMON                  = 0x4c
+       IPPROTO_CARP                      = 0x70
+       IPPROTO_CFTP                      = 0x3e
+       IPPROTO_CHAOS                     = 0x10
+       IPPROTO_CMTP                      = 0x26
+       IPPROTO_CPHB                      = 0x49
+       IPPROTO_CPNX                      = 0x48
+       IPPROTO_DDP                       = 0x25
+       IPPROTO_DGP                       = 0x56
+       IPPROTO_DIVERT                    = 0xfe
+       IPPROTO_DONE                      = 0x101
+       IPPROTO_DSTOPTS                   = 0x3c
+       IPPROTO_EGP                       = 0x8
+       IPPROTO_EMCON                     = 0xe
+       IPPROTO_ENCAP                     = 0x62
+       IPPROTO_EON                       = 0x50
+       IPPROTO_ESP                       = 0x32
+       IPPROTO_ETHERIP                   = 0x61
+       IPPROTO_FRAGMENT                  = 0x2c
+       IPPROTO_GGP                       = 0x3
+       IPPROTO_GMTP                      = 0x64
+       IPPROTO_GRE                       = 0x2f
+       IPPROTO_HELLO                     = 0x3f
+       IPPROTO_HMP                       = 0x14
+       IPPROTO_HOPOPTS                   = 0x0
+       IPPROTO_ICMP                      = 0x1
+       IPPROTO_ICMPV6                    = 0x3a
+       IPPROTO_IDP                       = 0x16
+       IPPROTO_IDPR                      = 0x23
+       IPPROTO_IDRP                      = 0x2d
+       IPPROTO_IGMP                      = 0x2
+       IPPROTO_IGP                       = 0x55
+       IPPROTO_IGRP                      = 0x58
+       IPPROTO_IL                        = 0x28
+       IPPROTO_INLSP                     = 0x34
+       IPPROTO_INP                       = 0x20
+       IPPROTO_IP                        = 0x0
+       IPPROTO_IPCOMP                    = 0x6c
+       IPPROTO_IPCV                      = 0x47
+       IPPROTO_IPEIP                     = 0x5e
+       IPPROTO_IPIP                      = 0x4
+       IPPROTO_IPPC                      = 0x43
+       IPPROTO_IPV4                      = 0x4
+       IPPROTO_IPV6                      = 0x29
+       IPPROTO_IRTP                      = 0x1c
+       IPPROTO_KRYPTOLAN                 = 0x41
+       IPPROTO_LARP                      = 0x5b
+       IPPROTO_LEAF1                     = 0x19
+       IPPROTO_LEAF2                     = 0x1a
+       IPPROTO_MAX                       = 0x100
+       IPPROTO_MAXID                     = 0x34
+       IPPROTO_MEAS                      = 0x13
+       IPPROTO_MHRP                      = 0x30
+       IPPROTO_MICP                      = 0x5f
+       IPPROTO_MOBILE                    = 0x37
+       IPPROTO_MTP                       = 0x5c
+       IPPROTO_MUX                       = 0x12
+       IPPROTO_ND                        = 0x4d
+       IPPROTO_NHRP                      = 0x36
+       IPPROTO_NONE                      = 0x3b
+       IPPROTO_NSP                       = 0x1f
+       IPPROTO_NVPII                     = 0xb
+       IPPROTO_OSPFIGP                   = 0x59
+       IPPROTO_PFSYNC                    = 0xf0
+       IPPROTO_PGM                       = 0x71
+       IPPROTO_PIGP                      = 0x9
+       IPPROTO_PIM                       = 0x67
+       IPPROTO_PRM                       = 0x15
+       IPPROTO_PUP                       = 0xc
+       IPPROTO_PVP                       = 0x4b
+       IPPROTO_RAW                       = 0xff
+       IPPROTO_RCCMON                    = 0xa
+       IPPROTO_RDP                       = 0x1b
+       IPPROTO_ROUTING                   = 0x2b
+       IPPROTO_RSVP                      = 0x2e
+       IPPROTO_RVD                       = 0x42
+       IPPROTO_SATEXPAK                  = 0x40
+       IPPROTO_SATMON                    = 0x45
+       IPPROTO_SCCSP                     = 0x60
+       IPPROTO_SDRP                      = 0x2a
+       IPPROTO_SEP                       = 0x21
+       IPPROTO_SKIP                      = 0x39
+       IPPROTO_SRPC                      = 0x5a
+       IPPROTO_ST                        = 0x7
+       IPPROTO_SVMTP                     = 0x52
+       IPPROTO_SWIPE                     = 0x35
+       IPPROTO_TCF                       = 0x57
+       IPPROTO_TCP                       = 0x6
+       IPPROTO_TLSP                      = 0x38
+       IPPROTO_TP                        = 0x1d
+       IPPROTO_TPXX                      = 0x27
+       IPPROTO_TRUNK1                    = 0x17
+       IPPROTO_TRUNK2                    = 0x18
+       IPPROTO_TTP                       = 0x54
+       IPPROTO_UDP                       = 0x11
+       IPPROTO_UNKNOWN                   = 0x102
+       IPPROTO_VINES                     = 0x53
+       IPPROTO_VISA                      = 0x46
+       IPPROTO_VMTP                      = 0x51
+       IPPROTO_WBEXPAK                   = 0x4f
+       IPPROTO_WBMON                     = 0x4e
+       IPPROTO_WSN                       = 0x4a
+       IPPROTO_XNET                      = 0xf
+       IPPROTO_XTP                       = 0x24
+       IPV6_AUTOFLOWLABEL                = 0x3b
+       IPV6_BINDV6ONLY                   = 0x1b
+       IPV6_CHECKSUM                     = 0x1a
+       IPV6_DEFAULT_MULTICAST_HOPS       = 0x1
+       IPV6_DEFAULT_MULTICAST_LOOP       = 0x1
+       IPV6_DEFHLIM                      = 0x40
+       IPV6_DONTFRAG                     = 0x3e
+       IPV6_DSTOPTS                      = 0x32
+       IPV6_FAITH                        = 0x1d
+       IPV6_FLOWINFO_MASK                = 0xffffff0f
+       IPV6_FLOWLABEL_MASK               = 0xffff0f00
+       IPV6_FRAGTTL                      = 0x78
+       IPV6_FW_ADD                       = 0x1e
+       IPV6_FW_DEL                       = 0x1f
+       IPV6_FW_FLUSH                     = 0x20
+       IPV6_FW_GET                       = 0x22
+       IPV6_FW_ZERO                      = 0x21
+       IPV6_HLIMDEC                      = 0x1
+       IPV6_HOPLIMIT                     = 0x2f
+       IPV6_HOPOPTS                      = 0x31
+       IPV6_IPSEC_POLICY                 = 0x1c
+       IPV6_JOIN_GROUP                   = 0xc
+       IPV6_LEAVE_GROUP                  = 0xd
+       IPV6_MAXHLIM                      = 0xff
+       IPV6_MAXPACKET                    = 0xffff
+       IPV6_MINHLIM                      = 0x28
+       IPV6_MMTU                         = 0x500
+       IPV6_MSFILTER                     = 0x4a
+       IPV6_MULTICAST_HOPS               = 0xa
+       IPV6_MULTICAST_IF                 = 0x9
+       IPV6_MULTICAST_LOOP               = 0xb
+       IPV6_NEXTHOP                      = 0x30
+       IPV6_PATHMTU                      = 0x2c
+       IPV6_PKTINFO                      = 0x2e
+       IPV6_PKTOPTIONS                   = 0x34
+       IPV6_PORTRANGE                    = 0xe
+       IPV6_PORTRANGE_DEFAULT            = 0x0
+       IPV6_PORTRANGE_HIGH               = 0x1
+       IPV6_PORTRANGE_LOW                = 0x2
+       IPV6_PREFER_TEMPADDR              = 0x3f
+       IPV6_RECVDSTOPTS                  = 0x28
+       IPV6_RECVHOPLIMIT                 = 0x25
+       IPV6_RECVHOPOPTS                  = 0x27
+       IPV6_RECVPATHMTU                  = 0x2b
+       IPV6_RECVPKTINFO                  = 0x24
+       IPV6_RECVRTHDR                    = 0x26
+       IPV6_RECVTCLASS                   = 0x39
+       IPV6_RTHDR                        = 0x33
+       IPV6_RTHDRDSTOPTS                 = 0x23
+       IPV6_RTHDR_LOOSE                  = 0x0
+       IPV6_RTHDR_STRICT                 = 0x1
+       IPV6_RTHDR_TYPE_0                 = 0x0
+       IPV6_SOCKOPT_RESERVED1            = 0x3
+       IPV6_TCLASS                       = 0x3d
+       IPV6_UNICAST_HOPS                 = 0x4
+       IPV6_USE_MIN_MTU                  = 0x2a
+       IPV6_V6ONLY                       = 0x1b
+       IPV6_VERSION                      = 0x60
+       IPV6_VERSION_MASK                 = 0xf0
+       IP_ADD_MEMBERSHIP                 = 0xc
+       IP_DEFAULT_MULTICAST_LOOP         = 0x1
+       IP_DEFAULT_MULTICAST_TTL          = 0x1
+       IP_DF                             = 0x4000
+       IP_DROP_MEMBERSHIP                = 0xd
+       IP_DUMMYNET_CONFIGURE             = 0x3c
+       IP_DUMMYNET_DEL                   = 0x3d
+       IP_DUMMYNET_FLUSH                 = 0x3e
+       IP_DUMMYNET_GET                   = 0x40
+       IP_FAITH                          = 0x16
+       IP_FW_ADD                         = 0x32
+       IP_FW_DEL                         = 0x33
+       IP_FW_FLUSH                       = 0x34
+       IP_FW_GET                         = 0x36
+       IP_FW_RESETLOG                    = 0x37
+       IP_FW_X                           = 0x31
+       IP_FW_ZERO                        = 0x35
+       IP_HDRINCL                        = 0x2
+       IP_IPSEC_POLICY                   = 0x15
+       IP_MAXPACKET                      = 0xffff
+       IP_MAX_MEMBERSHIPS                = 0x14
+       IP_MF                             = 0x2000
+       IP_MINTTL                         = 0x42
+       IP_MSS                            = 0x240
+       IP_MULTICAST_IF                   = 0x9
+       IP_MULTICAST_LOOP                 = 0xb
+       IP_MULTICAST_TTL                  = 0xa
+       IP_MULTICAST_VIF                  = 0xe
+       IP_OFFMASK                        = 0x1fff
+       IP_OPTIONS                        = 0x1
+       IP_PORTRANGE                      = 0x13
+       IP_PORTRANGE_DEFAULT              = 0x0
+       IP_PORTRANGE_HIGH                 = 0x1
+       IP_PORTRANGE_LOW                  = 0x2
+       IP_RECVDSTADDR                    = 0x7
+       IP_RECVIF                         = 0x14
+       IP_RECVOPTS                       = 0x5
+       IP_RECVRETOPTS                    = 0x6
+       IP_RECVTTL                        = 0x41
+       IP_RETOPTS                        = 0x8
+       IP_RF                             = 0x8000
+       IP_RSVP_OFF                       = 0x10
+       IP_RSVP_ON                        = 0xf
+       IP_RSVP_VIF_OFF                   = 0x12
+       IP_RSVP_VIF_ON                    = 0x11
+       IP_TOS                            = 0x3
+       IP_TTL                            = 0x4
+       ISIG                              = 0x80
+       ISTRIP                            = 0x20
+       IXANY                             = 0x800
+       IXOFF                             = 0x400
+       IXON                              = 0x200
+       LOCK_EX                           = 0x2
+       LOCK_NB                           = 0x4
+       LOCK_SH                           = 0x1
+       LOCK_UN                           = 0x8
+       MADV_AUTOSYNC                     = 0x7
+       MADV_CONTROL_END                  = 0xb
+       MADV_CONTROL_START                = 0xa
+       MADV_CORE                         = 0x9
+       MADV_DONTNEED                     = 0x4
+       MADV_FREE                         = 0x5
+       MADV_INVAL                        = 0xa
+       MADV_NOCORE                       = 0x8
+       MADV_NORMAL                       = 0x0
+       MADV_NOSYNC                       = 0x6
+       MADV_RANDOM                       = 0x1
+       MADV_SEQUENTIAL                   = 0x2
+       MADV_SETMAP                       = 0xb
+       MADV_WILLNEED                     = 0x3
+       MAP_ANON                          = 0x1000
+       MAP_ANONYMOUS                     = 0x1000
+       MAP_COPY                          = 0x2
+       MAP_FILE                          = 0x0
+       MAP_FIXED                         = 0x10
+       MAP_HASSEMAPHORE                  = 0x200
+       MAP_INHERIT                       = 0x80
+       MAP_NOCORE                        = 0x20000
+       MAP_NOEXTEND                      = 0x100
+       MAP_NORESERVE                     = 0x40
+       MAP_NOSYNC                        = 0x800
+       MAP_PRIVATE                       = 0x2
+       MAP_RENAME                        = 0x20
+       MAP_SHARED                        = 0x1
+       MAP_SIZEALIGN                     = 0x40000
+       MAP_STACK                         = 0x400
+       MAP_TRYFIXED                      = 0x10000
+       MAP_VPAGETABLE                    = 0x2000
+       MCL_CURRENT                       = 0x1
+       MCL_FUTURE                        = 0x2
+       MSG_CMSG_CLOEXEC                  = 0x1000
+       MSG_CTRUNC                        = 0x20
+       MSG_DONTROUTE                     = 0x4
+       MSG_DONTWAIT                      = 0x80
+       MSG_EOF                           = 0x100
+       MSG_EOR                           = 0x8
+       MSG_FBLOCKING                     = 0x10000
+       MSG_FMASK                         = 0xffff0000
+       MSG_FNONBLOCKING                  = 0x20000
+       MSG_NOSIGNAL                      = 0x400
+       MSG_OOB                           = 0x1
+       MSG_PEEK                          = 0x2
+       MSG_SYNC                          = 0x800
+       MSG_TRUNC                         = 0x10
+       MSG_UNUSED09                      = 0x200
+       MSG_WAITALL                       = 0x40
+       MS_ASYNC                          = 0x1
+       MS_INVALIDATE                     = 0x2
+       MS_SYNC                           = 0x0
+       NAME_MAX                          = 0xff
+       NET_RT_DUMP                       = 0x1
+       NET_RT_FLAGS                      = 0x2
+       NET_RT_IFLIST                     = 0x3
+       NET_RT_MAXID                      = 0x4
+       NOFLSH                            = 0x80000000
+       NOKERNINFO                        = 0x2000000
+       NOTE_ATTRIB                       = 0x8
+       NOTE_CHILD                        = 0x4
+       NOTE_DELETE                       = 0x1
+       NOTE_EXEC                         = 0x20000000
+       NOTE_EXIT                         = 0x80000000
+       NOTE_EXTEND                       = 0x4
+       NOTE_FFAND                        = 0x40000000
+       NOTE_FFCOPY                       = 0xc0000000
+       NOTE_FFCTRLMASK                   = 0xc0000000
+       NOTE_FFLAGSMASK                   = 0xffffff
+       NOTE_FFNOP                        = 0x0
+       NOTE_FFOR                         = 0x80000000
+       NOTE_FORK                         = 0x40000000
+       NOTE_LINK                         = 0x10
+       NOTE_LOWAT                        = 0x1
+       NOTE_OOB                          = 0x2
+       NOTE_PCTRLMASK                    = 0xf0000000
+       NOTE_PDATAMASK                    = 0xfffff
+       NOTE_RENAME                       = 0x20
+       NOTE_REVOKE                       = 0x40
+       NOTE_TRACK                        = 0x1
+       NOTE_TRACKERR                     = 0x2
+       NOTE_TRIGGER                      = 0x1000000
+       NOTE_WRITE                        = 0x2
+       OCRNL                             = 0x10
+       ONLCR                             = 0x2
+       ONLRET                            = 0x40
+       ONOCR                             = 0x20
+       ONOEOT                            = 0x8
+       OPOST                             = 0x1
+       OXTABS                            = 0x4
+       O_ACCMODE                         = 0x3
+       O_APPEND                          = 0x8
+       O_ASYNC                           = 0x40
+       O_CLOEXEC                         = 0x20000
+       O_CREAT                           = 0x200
+       O_DIRECT                          = 0x10000
+       O_DIRECTORY                       = 0x8000000
+       O_EXCL                            = 0x800
+       O_EXLOCK                          = 0x20
+       O_FAPPEND                         = 0x100000
+       O_FASYNCWRITE                     = 0x800000
+       O_FBLOCKING                       = 0x40000
+       O_FMASK                           = 0xfc0000
+       O_FNONBLOCKING                    = 0x80000
+       O_FOFFSET                         = 0x200000
+       O_FSYNC                           = 0x80
+       O_FSYNCWRITE                      = 0x400000
+       O_NDELAY                          = 0x4
+       O_NOCTTY                          = 0x8000
+       O_NOFOLLOW                        = 0x100
+       O_NONBLOCK                        = 0x4
+       O_RDONLY                          = 0x0
+       O_RDWR                            = 0x2
+       O_SHLOCK                          = 0x10
+       O_SYNC                            = 0x80
+       O_TRUNC                           = 0x400
+       O_WRONLY                          = 0x1
+       PARENB                            = 0x1000
+       PARMRK                            = 0x8
+       PARODD                            = 0x2000
+       PENDIN                            = 0x20000000
+       PRIO_PGRP                         = 0x1
+       PRIO_PROCESS                      = 0x0
+       PRIO_USER                         = 0x2
+       PROT_EXEC                         = 0x4
+       PROT_NONE                         = 0x0
+       PROT_READ                         = 0x1
+       PROT_WRITE                        = 0x2
+       RLIMIT_AS                         = 0xa
+       RLIMIT_CORE                       = 0x4
+       RLIMIT_CPU                        = 0x0
+       RLIMIT_DATA                       = 0x2
+       RLIMIT_FSIZE                      = 0x1
+       RLIMIT_NOFILE                     = 0x8
+       RLIMIT_STACK                      = 0x3
+       RLIM_INFINITY                     = 0x7fffffffffffffff
+       RTAX_AUTHOR                       = 0x6
+       RTAX_BRD                          = 0x7
+       RTAX_DST                          = 0x0
+       RTAX_GATEWAY                      = 0x1
+       RTAX_GENMASK                      = 0x3
+       RTAX_IFA                          = 0x5
+       RTAX_IFP                          = 0x4
+       RTAX_MAX                          = 0xb
+       RTAX_MPLS1                        = 0x8
+       RTAX_MPLS2                        = 0x9
+       RTAX_MPLS3                        = 0xa
+       RTAX_NETMASK                      = 0x2
+       RTA_AUTHOR                        = 0x40
+       RTA_BRD                           = 0x80
+       RTA_DST                           = 0x1
+       RTA_GATEWAY                       = 0x2
+       RTA_GENMASK                       = 0x8
+       RTA_IFA                           = 0x20
+       RTA_IFP                           = 0x10
+       RTA_MPLS1                         = 0x100
+       RTA_MPLS2                         = 0x200
+       RTA_MPLS3                         = 0x400
+       RTA_NETMASK                       = 0x4
+       RTF_BLACKHOLE                     = 0x1000
+       RTF_BROADCAST                     = 0x400000
+       RTF_CLONING                       = 0x100
+       RTF_DONE                          = 0x40
+       RTF_DYNAMIC                       = 0x10
+       RTF_GATEWAY                       = 0x2
+       RTF_HOST                          = 0x4
+       RTF_LLINFO                        = 0x400
+       RTF_LOCAL                         = 0x200000
+       RTF_MODIFIED                      = 0x20
+       RTF_MPLSOPS                       = 0x1000000
+       RTF_MULTICAST                     = 0x800000
+       RTF_PINNED                        = 0x100000
+       RTF_PRCLONING                     = 0x10000
+       RTF_PROTO1                        = 0x8000
+       RTF_PROTO2                        = 0x4000
+       RTF_PROTO3                        = 0x40000
+       RTF_REJECT                        = 0x8
+       RTF_STATIC                        = 0x800
+       RTF_UP                            = 0x1
+       RTF_WASCLONED                     = 0x20000
+       RTF_XRESOLVE                      = 0x200
+       RTM_ADD                           = 0x1
+       RTM_CHANGE                        = 0x3
+       RTM_DELADDR                       = 0xd
+       RTM_DELETE                        = 0x2
+       RTM_DELMADDR                      = 0x10
+       RTM_GET                           = 0x4
+       RTM_IEEE80211                     = 0x12
+       RTM_IFANNOUNCE                    = 0x11
+       RTM_IFINFO                        = 0xe
+       RTM_LOCK                          = 0x8
+       RTM_LOSING                        = 0x5
+       RTM_MISS                          = 0x7
+       RTM_NEWADDR                       = 0xc
+       RTM_NEWMADDR                      = 0xf
+       RTM_OLDADD                        = 0x9
+       RTM_OLDDEL                        = 0xa
+       RTM_REDIRECT                      = 0x6
+       RTM_RESOLVE                       = 0xb
+       RTM_RTTUNIT                       = 0xf4240
+       RTM_VERSION                       = 0x6
+       RTV_EXPIRE                        = 0x4
+       RTV_HOPCOUNT                      = 0x2
+       RTV_IWCAPSEGS                     = 0x400
+       RTV_IWMAXSEGS                     = 0x200
+       RTV_MSL                           = 0x100
+       RTV_MTU                           = 0x1
+       RTV_RPIPE                         = 0x8
+       RTV_RTT                           = 0x40
+       RTV_RTTVAR                        = 0x80
+       RTV_SPIPE                         = 0x10
+       RTV_SSTHRESH                      = 0x20
+       RUSAGE_CHILDREN                   = -0x1
+       RUSAGE_SELF                       = 0x0
+       SCM_CREDS                         = 0x3
+       SCM_RIGHTS                        = 0x1
+       SCM_TIMESTAMP                     = 0x2
+       SHUT_RD                           = 0x0
+       SHUT_RDWR                         = 0x2
+       SHUT_WR                           = 0x1
+       SIOCADDMULTI                      = 0x80206931
+       SIOCADDRT                         = 0x8040720a
+       SIOCAIFADDR                       = 0x8040691a
+       SIOCALIFADDR                      = 0x8118691b
+       SIOCATMARK                        = 0x40047307
+       SIOCDELMULTI                      = 0x80206932
+       SIOCDELRT                         = 0x8040720b
+       SIOCDIFADDR                       = 0x80206919
+       SIOCDIFPHYADDR                    = 0x80206949
+       SIOCDLIFADDR                      = 0x8118691d
+       SIOCGDRVSPEC                      = 0xc028697b
+       SIOCGETSGCNT                      = 0xc0207210
+       SIOCGETVIFCNT                     = 0xc028720f
+       SIOCGHIWAT                        = 0x40047301
+       SIOCGIFADDR                       = 0xc0206921
+       SIOCGIFBRDADDR                    = 0xc0206923
+       SIOCGIFCAP                        = 0xc020691f
+       SIOCGIFCONF                       = 0xc0106924
+       SIOCGIFDATA                       = 0xc0206926
+       SIOCGIFDSTADDR                    = 0xc0206922
+       SIOCGIFFLAGS                      = 0xc0206911
+       SIOCGIFGENERIC                    = 0xc020693a
+       SIOCGIFGMEMB                      = 0xc028698a
+       SIOCGIFINDEX                      = 0xc0206920
+       SIOCGIFMEDIA                      = 0xc0306938
+       SIOCGIFMETRIC                     = 0xc0206917
+       SIOCGIFMTU                        = 0xc0206933
+       SIOCGIFNETMASK                    = 0xc0206925
+       SIOCGIFPDSTADDR                   = 0xc0206948
+       SIOCGIFPHYS                       = 0xc0206935
+       SIOCGIFPOLLCPU                    = 0xc020697e
+       SIOCGIFPSRCADDR                   = 0xc0206947
+       SIOCGIFSTATUS                     = 0xc331693b
+       SIOCGIFTSOLEN                     = 0xc0206980
+       SIOCGLIFADDR                      = 0xc118691c
+       SIOCGLIFPHYADDR                   = 0xc118694b
+       SIOCGLOWAT                        = 0x40047303
+       SIOCGPGRP                         = 0x40047309
+       SIOCGPRIVATE_0                    = 0xc0206950
+       SIOCGPRIVATE_1                    = 0xc0206951
+       SIOCIFCREATE                      = 0xc020697a
+       SIOCIFCREATE2                     = 0xc020697c
+       SIOCIFDESTROY                     = 0x80206979
+       SIOCIFGCLONERS                    = 0xc0106978
+       SIOCSDRVSPEC                      = 0x8028697b
+       SIOCSHIWAT                        = 0x80047300
+       SIOCSIFADDR                       = 0x8020690c
+       SIOCSIFBRDADDR                    = 0x80206913
+       SIOCSIFCAP                        = 0x8020691e
+       SIOCSIFDSTADDR                    = 0x8020690e
+       SIOCSIFFLAGS                      = 0x80206910
+       SIOCSIFGENERIC                    = 0x80206939
+       SIOCSIFLLADDR                     = 0x8020693c
+       SIOCSIFMEDIA                      = 0xc0206937
+       SIOCSIFMETRIC                     = 0x80206918
+       SIOCSIFMTU                        = 0x80206934
+       SIOCSIFNAME                       = 0x80206928
+       SIOCSIFNETMASK                    = 0x80206916
+       SIOCSIFPHYADDR                    = 0x80406946
+       SIOCSIFPHYS                       = 0x80206936
+       SIOCSIFPOLLCPU                    = 0x8020697d
+       SIOCSIFTSOLEN                     = 0x8020697f
+       SIOCSLIFPHYADDR                   = 0x8118694a
+       SIOCSLOWAT                        = 0x80047302
+       SIOCSPGRP                         = 0x80047308
+       SOCK_CLOEXEC                      = 0x10000000
+       SOCK_DGRAM                        = 0x2
+       SOCK_MAXADDRLEN                   = 0xff
+       SOCK_NONBLOCK                     = 0x20000000
+       SOCK_RAW                          = 0x3
+       SOCK_RDM                          = 0x4
+       SOCK_SEQPACKET                    = 0x5
+       SOCK_STREAM                       = 0x1
+       SOL_SOCKET                        = 0xffff
+       SOMAXCONN                         = 0x80
+       SO_ACCEPTCONN                     = 0x2
+       SO_ACCEPTFILTER                   = 0x1000
+       SO_BROADCAST                      = 0x20
+       SO_CPUHINT                        = 0x1030
+       SO_DEBUG                          = 0x1
+       SO_DONTROUTE                      = 0x10
+       SO_ERROR                          = 0x1007
+       SO_KEEPALIVE                      = 0x8
+       SO_LINGER                         = 0x80
+       SO_NOSIGPIPE                      = 0x800
+       SO_OOBINLINE                      = 0x100
+       SO_RCVBUF                         = 0x1002
+       SO_RCVLOWAT                       = 0x1004
+       SO_RCVTIMEO                       = 0x1006
+       SO_REUSEADDR                      = 0x4
+       SO_REUSEPORT                      = 0x200
+       SO_SNDBUF                         = 0x1001
+       SO_SNDLOWAT                       = 0x1003
+       SO_SNDSPACE                       = 0x100a
+       SO_SNDTIMEO                       = 0x1005
+       SO_TIMESTAMP                      = 0x400
+       SO_TYPE                           = 0x1008
+       SO_USELOOPBACK                    = 0x40
+       TCIFLUSH                          = 0x1
+       TCIOFF                            = 0x3
+       TCIOFLUSH                         = 0x3
+       TCION                             = 0x4
+       TCOFLUSH                          = 0x2
+       TCOOFF                            = 0x1
+       TCOON                             = 0x2
+       TCP_FASTKEEP                      = 0x80
+       TCP_KEEPCNT                       = 0x400
+       TCP_KEEPIDLE                      = 0x100
+       TCP_KEEPINIT                      = 0x20
+       TCP_KEEPINTVL                     = 0x200
+       TCP_MAXBURST                      = 0x4
+       TCP_MAXHLEN                       = 0x3c
+       TCP_MAXOLEN                       = 0x28
+       TCP_MAXSEG                        = 0x2
+       TCP_MAXWIN                        = 0xffff
+       TCP_MAX_WINSHIFT                  = 0xe
+       TCP_MINMSS                        = 0x100
+       TCP_MIN_WINSHIFT                  = 0x5
+       TCP_MSS                           = 0x200
+       TCP_NODELAY                       = 0x1
+       TCP_NOOPT                         = 0x8
+       TCP_NOPUSH                        = 0x4
+       TCP_SIGNATURE_ENABLE              = 0x10
+       TCSAFLUSH                         = 0x2
+       TIOCCBRK                          = 0x2000747a
+       TIOCCDTR                          = 0x20007478
+       TIOCCONS                          = 0x80047462
+       TIOCDCDTIMESTAMP                  = 0x40107458
+       TIOCDRAIN                         = 0x2000745e
+       TIOCEXCL                          = 0x2000740d
+       TIOCEXT                           = 0x80047460
+       TIOCFLUSH                         = 0x80047410
+       TIOCGDRAINWAIT                    = 0x40047456
+       TIOCGETA                          = 0x402c7413
+       TIOCGETD                          = 0x4004741a
+       TIOCGPGRP                         = 0x40047477
+       TIOCGSID                          = 0x40047463
+       TIOCGSIZE                         = 0x40087468
+       TIOCGWINSZ                        = 0x40087468
+       TIOCISPTMASTER                    = 0x20007455
+       TIOCMBIC                          = 0x8004746b
+       TIOCMBIS                          = 0x8004746c
+       TIOCMGDTRWAIT                     = 0x4004745a
+       TIOCMGET                          = 0x4004746a
+       TIOCMODG                          = 0x40047403
+       TIOCMODS                          = 0x80047404
+       TIOCMSDTRWAIT                     = 0x8004745b
+       TIOCMSET                          = 0x8004746d
+       TIOCM_CAR                         = 0x40
+       TIOCM_CD                          = 0x40
+       TIOCM_CTS                         = 0x20
+       TIOCM_DSR                         = 0x100
+       TIOCM_DTR                         = 0x2
+       TIOCM_LE                          = 0x1
+       TIOCM_RI                          = 0x80
+       TIOCM_RNG                         = 0x80
+       TIOCM_RTS                         = 0x4
+       TIOCM_SR                          = 0x10
+       TIOCM_ST                          = 0x8
+       TIOCNOTTY                         = 0x20007471
+       TIOCNXCL                          = 0x2000740e
+       TIOCOUTQ                          = 0x40047473
+       TIOCPKT                           = 0x80047470
+       TIOCPKT_DATA                      = 0x0
+       TIOCPKT_DOSTOP                    = 0x20
+       TIOCPKT_FLUSHREAD                 = 0x1
+       TIOCPKT_FLUSHWRITE                = 0x2
+       TIOCPKT_IOCTL                     = 0x40
+       TIOCPKT_NOSTOP                    = 0x10
+       TIOCPKT_START                     = 0x8
+       TIOCPKT_STOP                      = 0x4
+       TIOCREMOTE                        = 0x80047469
+       TIOCSBRK                          = 0x2000747b
+       TIOCSCTTY                         = 0x20007461
+       TIOCSDRAINWAIT                    = 0x80047457
+       TIOCSDTR                          = 0x20007479
+       TIOCSETA                          = 0x802c7414
+       TIOCSETAF                         = 0x802c7416
+       TIOCSETAW                         = 0x802c7415
+       TIOCSETD                          = 0x8004741b
+       TIOCSIG                           = 0x2000745f
+       TIOCSPGRP                         = 0x80047476
+       TIOCSSIZE                         = 0x80087467
+       TIOCSTART                         = 0x2000746e
+       TIOCSTAT                          = 0x20007465
+       TIOCSTI                           = 0x80017472
+       TIOCSTOP                          = 0x2000746f
+       TIOCSWINSZ                        = 0x80087467
+       TIOCTIMESTAMP                     = 0x40107459
+       TIOCUCNTL                         = 0x80047466
+       TOSTOP                            = 0x400000
+       VCHECKPT                          = 0x13
+       VDISCARD                          = 0xf
+       VDSUSP                            = 0xb
+       VEOF                              = 0x0
+       VEOL                              = 0x1
+       VEOL2                             = 0x2
+       VERASE                            = 0x3
+       VERASE2                           = 0x7
+       VINTR                             = 0x8
+       VKILL                             = 0x5
+       VLNEXT                            = 0xe
+       VMIN                              = 0x10
+       VM_BCACHE_SIZE_MAX                = 0x0
+       VM_SWZONE_SIZE_MAX                = 0x4000000000
+       VQUIT                             = 0x9
+       VREPRINT                          = 0x6
+       VSTART                            = 0xc
+       VSTATUS                           = 0x12
+       VSTOP                             = 0xd
+       VSUSP                             = 0xa
+       VTIME                             = 0x11
+       VWERASE                           = 0x4
+       WCONTINUED                        = 0x4
+       WCOREFLAG                         = 0x80
+       WLINUXCLONE                       = 0x80000000
+       WNOHANG                           = 0x1
+       WSTOPPED                          = 0x7f
+       WUNTRACED                         = 0x2
+)
+
+// Errors
+const (
+       E2BIG           = syscall.Errno(0x7)
+       EACCES          = syscall.Errno(0xd)
+       EADDRINUSE      = syscall.Errno(0x30)
+       EADDRNOTAVAIL   = syscall.Errno(0x31)
+       EAFNOSUPPORT    = syscall.Errno(0x2f)
+       EAGAIN          = syscall.Errno(0x23)
+       EALREADY        = syscall.Errno(0x25)
+       EASYNC          = syscall.Errno(0x63)
+       EAUTH           = syscall.Errno(0x50)
+       EBADF           = syscall.Errno(0x9)
+       EBADMSG         = syscall.Errno(0x59)
+       EBADRPC         = syscall.Errno(0x48)
+       EBUSY           = syscall.Errno(0x10)
+       ECANCELED       = syscall.Errno(0x55)
+       ECHILD          = syscall.Errno(0xa)
+       ECONNABORTED    = syscall.Errno(0x35)
+       ECONNREFUSED    = syscall.Errno(0x3d)
+       ECONNRESET      = syscall.Errno(0x36)
+       EDEADLK         = syscall.Errno(0xb)
+       EDESTADDRREQ    = syscall.Errno(0x27)
+       EDOM            = syscall.Errno(0x21)
+       EDOOFUS         = syscall.Errno(0x58)
+       EDQUOT          = syscall.Errno(0x45)
+       EEXIST          = syscall.Errno(0x11)
+       EFAULT          = syscall.Errno(0xe)
+       EFBIG           = syscall.Errno(0x1b)
+       EFTYPE          = syscall.Errno(0x4f)
+       EHOSTDOWN       = syscall.Errno(0x40)
+       EHOSTUNREACH    = syscall.Errno(0x41)
+       EIDRM           = syscall.Errno(0x52)
+       EILSEQ          = syscall.Errno(0x56)
+       EINPROGRESS     = syscall.Errno(0x24)
+       EINTR           = syscall.Errno(0x4)
+       EINVAL          = syscall.Errno(0x16)
+       EIO             = syscall.Errno(0x5)
+       EISCONN         = syscall.Errno(0x38)
+       EISDIR          = syscall.Errno(0x15)
+       ELAST           = syscall.Errno(0x63)
+       ELOOP           = syscall.Errno(0x3e)
+       EMFILE          = syscall.Errno(0x18)
+       EMLINK          = syscall.Errno(0x1f)
+       EMSGSIZE        = syscall.Errno(0x28)
+       EMULTIHOP       = syscall.Errno(0x5a)
+       ENAMETOOLONG    = syscall.Errno(0x3f)
+       ENEEDAUTH       = syscall.Errno(0x51)
+       ENETDOWN        = syscall.Errno(0x32)
+       ENETRESET       = syscall.Errno(0x34)
+       ENETUNREACH     = syscall.Errno(0x33)
+       ENFILE          = syscall.Errno(0x17)
+       ENOATTR         = syscall.Errno(0x57)
+       ENOBUFS         = syscall.Errno(0x37)
+       ENODEV          = syscall.Errno(0x13)
+       ENOENT          = syscall.Errno(0x2)
+       ENOEXEC         = syscall.Errno(0x8)
+       ENOLCK          = syscall.Errno(0x4d)
+       ENOLINK         = syscall.Errno(0x5b)
+       ENOMEDIUM       = syscall.Errno(0x5d)
+       ENOMEM          = syscall.Errno(0xc)
+       ENOMSG          = syscall.Errno(0x53)
+       ENOPROTOOPT     = syscall.Errno(0x2a)
+       ENOSPC          = syscall.Errno(0x1c)
+       ENOSYS          = syscall.Errno(0x4e)
+       ENOTBLK         = syscall.Errno(0xf)
+       ENOTCONN        = syscall.Errno(0x39)
+       ENOTDIR         = syscall.Errno(0x14)
+       ENOTEMPTY       = syscall.Errno(0x42)
+       ENOTSOCK        = syscall.Errno(0x26)
+       ENOTSUP         = syscall.Errno(0x2d)
+       ENOTTY          = syscall.Errno(0x19)
+       ENXIO           = syscall.Errno(0x6)
+       EOPNOTSUPP      = syscall.Errno(0x2d)
+       EOVERFLOW       = syscall.Errno(0x54)
+       EPERM           = syscall.Errno(0x1)
+       EPFNOSUPPORT    = syscall.Errno(0x2e)
+       EPIPE           = syscall.Errno(0x20)
+       EPROCLIM        = syscall.Errno(0x43)
+       EPROCUNAVAIL    = syscall.Errno(0x4c)
+       EPROGMISMATCH   = syscall.Errno(0x4b)
+       EPROGUNAVAIL    = syscall.Errno(0x4a)
+       EPROTO          = syscall.Errno(0x5c)
+       EPROTONOSUPPORT = syscall.Errno(0x2b)
+       EPROTOTYPE      = syscall.Errno(0x29)
+       ERANGE          = syscall.Errno(0x22)
+       EREMOTE         = syscall.Errno(0x47)
+       EROFS           = syscall.Errno(0x1e)
+       ERPCMISMATCH    = syscall.Errno(0x49)
+       ESHUTDOWN       = syscall.Errno(0x3a)
+       ESOCKTNOSUPPORT = syscall.Errno(0x2c)
+       ESPIPE          = syscall.Errno(0x1d)
+       ESRCH           = syscall.Errno(0x3)
+       ESTALE          = syscall.Errno(0x46)
+       ETIMEDOUT       = syscall.Errno(0x3c)
+       ETOOMANYREFS    = syscall.Errno(0x3b)
+       ETXTBSY         = syscall.Errno(0x1a)
+       EUNUSED94       = syscall.Errno(0x5e)
+       EUNUSED95       = syscall.Errno(0x5f)
+       EUNUSED96       = syscall.Errno(0x60)
+       EUNUSED97       = syscall.Errno(0x61)
+       EUNUSED98       = syscall.Errno(0x62)
+       EUSERS          = syscall.Errno(0x44)
+       EWOULDBLOCK     = syscall.Errno(0x23)
+       EXDEV           = syscall.Errno(0x12)
+)
+
+// Signals
+const (
+       SIGABRT     = syscall.Signal(0x6)
+       SIGALRM     = syscall.Signal(0xe)
+       SIGBUS      = syscall.Signal(0xa)
+       SIGCHLD     = syscall.Signal(0x14)
+       SIGCKPT     = syscall.Signal(0x21)
+       SIGCKPTEXIT = syscall.Signal(0x22)
+       SIGCONT     = syscall.Signal(0x13)
+       SIGEMT      = syscall.Signal(0x7)
+       SIGFPE      = syscall.Signal(0x8)
+       SIGHUP      = syscall.Signal(0x1)
+       SIGILL      = syscall.Signal(0x4)
+       SIGINFO     = syscall.Signal(0x1d)
+       SIGINT      = syscall.Signal(0x2)
+       SIGIO       = syscall.Signal(0x17)
+       SIGIOT      = syscall.Signal(0x6)
+       SIGKILL     = syscall.Signal(0x9)
+       SIGPIPE     = syscall.Signal(0xd)
+       SIGPROF     = syscall.Signal(0x1b)
+       SIGQUIT     = syscall.Signal(0x3)
+       SIGSEGV     = syscall.Signal(0xb)
+       SIGSTOP     = syscall.Signal(0x11)
+       SIGSYS      = syscall.Signal(0xc)
+       SIGTERM     = syscall.Signal(0xf)
+       SIGTHR      = syscall.Signal(0x20)
+       SIGTRAP     = syscall.Signal(0x5)
+       SIGTSTP     = syscall.Signal(0x12)
+       SIGTTIN     = syscall.Signal(0x15)
+       SIGTTOU     = syscall.Signal(0x16)
+       SIGURG      = syscall.Signal(0x10)
+       SIGUSR1     = syscall.Signal(0x1e)
+       SIGUSR2     = syscall.Signal(0x1f)
+       SIGVTALRM   = syscall.Signal(0x1a)
+       SIGWINCH    = syscall.Signal(0x1c)
+       SIGXCPU     = syscall.Signal(0x18)
+       SIGXFSZ     = syscall.Signal(0x19)
+)
+
+// Error table
+var errors = [...]string{
+       1:  "operation not permitted",
+       2:  "no such file or directory",
+       3:  "no such process",
+       4:  "interrupted system call",
+       5:  "input/output error",
+       6:  "device not configured",
+       7:  "argument list too long",
+       8:  "exec format error",
+       9:  "bad file descriptor",
+       10: "no child processes",
+       11: "resource deadlock avoided",
+       12: "cannot allocate memory",
+       13: "permission denied",
+       14: "bad address",
+       15: "block device required",
+       16: "device busy",
+       17: "file exists",
+       18: "cross-device link",
+       19: "operation not supported by device",
+       20: "not a directory",
+       21: "is a directory",
+       22: "invalid argument",
+       23: "too many open files in system",
+       24: "too many open files",
+       25: "inappropriate ioctl for device",
+       26: "text file busy",
+       27: "file too large",
+       28: "no space left on device",
+       29: "illegal seek",
+       30: "read-only file system",
+       31: "too many links",
+       32: "broken pipe",
+       33: "numerical argument out of domain",
+       34: "result too large",
+       35: "resource temporarily unavailable",
+       36: "operation now in progress",
+       37: "operation already in progress",
+       38: "socket operation on non-socket",
+       39: "destination address required",
+       40: "message too long",
+       41: "protocol wrong type for socket",
+       42: "protocol not available",
+       43: "protocol not supported",
+       44: "socket type not supported",
+       45: "operation not supported",
+       46: "protocol family not supported",
+       47: "address family not supported by protocol family",
+       48: "address already in use",
+       49: "can't assign requested address",
+       50: "network is down",
+       51: "network is unreachable",
+       52: "network dropped connection on reset",
+       53: "software caused connection abort",
+       54: "connection reset by peer",
+       55: "no buffer space available",
+       56: "socket is already connected",
+       57: "socket is not connected",
+       58: "can't send after socket shutdown",
+       59: "too many references: can't splice",
+       60: "operation timed out",
+       61: "connection refused",
+       62: "too many levels of symbolic links",
+       63: "file name too long",
+       64: "host is down",
+       65: "no route to host",
+       66: "directory not empty",
+       67: "too many processes",
+       68: "too many users",
+       69: "disc quota exceeded",
+       70: "stale NFS file handle",
+       71: "too many levels of remote in path",
+       72: "RPC struct is bad",
+       73: "RPC version wrong",
+       74: "RPC prog. not avail",
+       75: "program version wrong",
+       76: "bad procedure for program",
+       77: "no locks available",
+       78: "function not implemented",
+       79: "inappropriate file type or format",
+       80: "authentication error",
+       81: "need authenticator",
+       82: "identifier removed",
+       83: "no message of desired type",
+       84: "value too large to be stored in data type",
+       85: "operation canceled",
+       86: "illegal byte sequence",
+       87: "attribute not found",
+       88: "programming error",
+       89: "bad message",
+       90: "multihop attempted",
+       91: "link has been severed",
+       92: "protocol error",
+       93: "no medium found",
+       94: "unknown error: 94",
+       95: "unknown error: 95",
+       96: "unknown error: 96",
+       97: "unknown error: 97",
+       98: "unknown error: 98",
+       99: "unknown error: 99",
+}
+
+// Signal table
+var signals = [...]string{
+       1:  "hangup",
+       2:  "interrupt",
+       3:  "quit",
+       4:  "illegal instruction",
+       5:  "trace/BPT trap",
+       6:  "abort trap",
+       7:  "EMT trap",
+       8:  "floating point exception",
+       9:  "killed",
+       10: "bus error",
+       11: "segmentation fault",
+       12: "bad system call",
+       13: "broken pipe",
+       14: "alarm clock",
+       15: "terminated",
+       16: "urgent I/O condition",
+       17: "suspended (signal)",
+       18: "suspended",
+       19: "continued",
+       20: "child exited",
+       21: "stopped (tty input)",
+       22: "stopped (tty output)",
+       23: "I/O possible",
+       24: "cputime limit exceeded",
+       25: "filesize limit exceeded",
+       26: "virtual timer expired",
+       27: "profiling timer expired",
+       28: "window size changes",
+       29: "information request",
+       30: "user defined signal 1",
+       31: "user defined signal 2",
+       32: "thread Scheduler",
+       33: "checkPoint",
+       34: "checkPointExit",
+}
diff --git a/vendor/golang.org/x/sys/unix/zerrors_freebsd_386.go b/vendor/golang.org/x/sys/unix/zerrors_freebsd_386.go
new file mode 100644 (file)
index 0000000..1d3eec4
--- /dev/null
@@ -0,0 +1,1706 @@
+// mkerrors.sh -m32
+// Code generated by the command above; see README.md. DO NOT EDIT.
+
+// +build 386,freebsd
+
+// Created by cgo -godefs - DO NOT EDIT
+// cgo -godefs -- -m32 _const.go
+
+package unix
+
+import "syscall"
+
+const (
+       AF_APPLETALK                   = 0x10
+       AF_ARP                         = 0x23
+       AF_ATM                         = 0x1e
+       AF_BLUETOOTH                   = 0x24
+       AF_CCITT                       = 0xa
+       AF_CHAOS                       = 0x5
+       AF_CNT                         = 0x15
+       AF_COIP                        = 0x14
+       AF_DATAKIT                     = 0x9
+       AF_DECnet                      = 0xc
+       AF_DLI                         = 0xd
+       AF_E164                        = 0x1a
+       AF_ECMA                        = 0x8
+       AF_HYLINK                      = 0xf
+       AF_IEEE80211                   = 0x25
+       AF_IMPLINK                     = 0x3
+       AF_INET                        = 0x2
+       AF_INET6                       = 0x1c
+       AF_INET6_SDP                   = 0x2a
+       AF_INET_SDP                    = 0x28
+       AF_IPX                         = 0x17
+       AF_ISDN                        = 0x1a
+       AF_ISO                         = 0x7
+       AF_LAT                         = 0xe
+       AF_LINK                        = 0x12
+       AF_LOCAL                       = 0x1
+       AF_MAX                         = 0x2a
+       AF_NATM                        = 0x1d
+       AF_NETBIOS                     = 0x6
+       AF_NETGRAPH                    = 0x20
+       AF_OSI                         = 0x7
+       AF_PUP                         = 0x4
+       AF_ROUTE                       = 0x11
+       AF_SCLUSTER                    = 0x22
+       AF_SIP                         = 0x18
+       AF_SLOW                        = 0x21
+       AF_SNA                         = 0xb
+       AF_UNIX                        = 0x1
+       AF_UNSPEC                      = 0x0
+       AF_VENDOR00                    = 0x27
+       AF_VENDOR01                    = 0x29
+       AF_VENDOR02                    = 0x2b
+       AF_VENDOR03                    = 0x2d
+       AF_VENDOR04                    = 0x2f
+       AF_VENDOR05                    = 0x31
+       AF_VENDOR06                    = 0x33
+       AF_VENDOR07                    = 0x35
+       AF_VENDOR08                    = 0x37
+       AF_VENDOR09                    = 0x39
+       AF_VENDOR10                    = 0x3b
+       AF_VENDOR11                    = 0x3d
+       AF_VENDOR12                    = 0x3f
+       AF_VENDOR13                    = 0x41
+       AF_VENDOR14                    = 0x43
+       AF_VENDOR15                    = 0x45
+       AF_VENDOR16                    = 0x47
+       AF_VENDOR17                    = 0x49
+       AF_VENDOR18                    = 0x4b
+       AF_VENDOR19                    = 0x4d
+       AF_VENDOR20                    = 0x4f
+       AF_VENDOR21                    = 0x51
+       AF_VENDOR22                    = 0x53
+       AF_VENDOR23                    = 0x55
+       AF_VENDOR24                    = 0x57
+       AF_VENDOR25                    = 0x59
+       AF_VENDOR26                    = 0x5b
+       AF_VENDOR27                    = 0x5d
+       AF_VENDOR28                    = 0x5f
+       AF_VENDOR29                    = 0x61
+       AF_VENDOR30                    = 0x63
+       AF_VENDOR31                    = 0x65
+       AF_VENDOR32                    = 0x67
+       AF_VENDOR33                    = 0x69
+       AF_VENDOR34                    = 0x6b
+       AF_VENDOR35                    = 0x6d
+       AF_VENDOR36                    = 0x6f
+       AF_VENDOR37                    = 0x71
+       AF_VENDOR38                    = 0x73
+       AF_VENDOR39                    = 0x75
+       AF_VENDOR40                    = 0x77
+       AF_VENDOR41                    = 0x79
+       AF_VENDOR42                    = 0x7b
+       AF_VENDOR43                    = 0x7d
+       AF_VENDOR44                    = 0x7f
+       AF_VENDOR45                    = 0x81
+       AF_VENDOR46                    = 0x83
+       AF_VENDOR47                    = 0x85
+       ALTWERASE                      = 0x200
+       B0                             = 0x0
+       B110                           = 0x6e
+       B115200                        = 0x1c200
+       B1200                          = 0x4b0
+       B134                           = 0x86
+       B14400                         = 0x3840
+       B150                           = 0x96
+       B1800                          = 0x708
+       B19200                         = 0x4b00
+       B200                           = 0xc8
+       B230400                        = 0x38400
+       B2400                          = 0x960
+       B28800                         = 0x7080
+       B300                           = 0x12c
+       B38400                         = 0x9600
+       B460800                        = 0x70800
+       B4800                          = 0x12c0
+       B50                            = 0x32
+       B57600                         = 0xe100
+       B600                           = 0x258
+       B7200                          = 0x1c20
+       B75                            = 0x4b
+       B76800                         = 0x12c00
+       B921600                        = 0xe1000
+       B9600                          = 0x2580
+       BIOCFEEDBACK                   = 0x8004427c
+       BIOCFLUSH                      = 0x20004268
+       BIOCGBLEN                      = 0x40044266
+       BIOCGDIRECTION                 = 0x40044276
+       BIOCGDLT                       = 0x4004426a
+       BIOCGDLTLIST                   = 0xc0084279
+       BIOCGETBUFMODE                 = 0x4004427d
+       BIOCGETIF                      = 0x4020426b
+       BIOCGETZMAX                    = 0x4004427f
+       BIOCGHDRCMPLT                  = 0x40044274
+       BIOCGRSIG                      = 0x40044272
+       BIOCGRTIMEOUT                  = 0x4008426e
+       BIOCGSEESENT                   = 0x40044276
+       BIOCGSTATS                     = 0x4008426f
+       BIOCGTSTAMP                    = 0x40044283
+       BIOCIMMEDIATE                  = 0x80044270
+       BIOCLOCK                       = 0x2000427a
+       BIOCPROMISC                    = 0x20004269
+       BIOCROTZBUF                    = 0x400c4280
+       BIOCSBLEN                      = 0xc0044266
+       BIOCSDIRECTION                 = 0x80044277
+       BIOCSDLT                       = 0x80044278
+       BIOCSETBUFMODE                 = 0x8004427e
+       BIOCSETF                       = 0x80084267
+       BIOCSETFNR                     = 0x80084282
+       BIOCSETIF                      = 0x8020426c
+       BIOCSETWF                      = 0x8008427b
+       BIOCSETZBUF                    = 0x800c4281
+       BIOCSHDRCMPLT                  = 0x80044275
+       BIOCSRSIG                      = 0x80044273
+       BIOCSRTIMEOUT                  = 0x8008426d
+       BIOCSSEESENT                   = 0x80044277
+       BIOCSTSTAMP                    = 0x80044284
+       BIOCVERSION                    = 0x40044271
+       BPF_A                          = 0x10
+       BPF_ABS                        = 0x20
+       BPF_ADD                        = 0x0
+       BPF_ALIGNMENT                  = 0x4
+       BPF_ALU                        = 0x4
+       BPF_AND                        = 0x50
+       BPF_B                          = 0x10
+       BPF_BUFMODE_BUFFER             = 0x1
+       BPF_BUFMODE_ZBUF               = 0x2
+       BPF_DIV                        = 0x30
+       BPF_H                          = 0x8
+       BPF_IMM                        = 0x0
+       BPF_IND                        = 0x40
+       BPF_JA                         = 0x0
+       BPF_JEQ                        = 0x10
+       BPF_JGE                        = 0x30
+       BPF_JGT                        = 0x20
+       BPF_JMP                        = 0x5
+       BPF_JSET                       = 0x40
+       BPF_K                          = 0x0
+       BPF_LD                         = 0x0
+       BPF_LDX                        = 0x1
+       BPF_LEN                        = 0x80
+       BPF_LSH                        = 0x60
+       BPF_MAJOR_VERSION              = 0x1
+       BPF_MAXBUFSIZE                 = 0x80000
+       BPF_MAXINSNS                   = 0x200
+       BPF_MEM                        = 0x60
+       BPF_MEMWORDS                   = 0x10
+       BPF_MINBUFSIZE                 = 0x20
+       BPF_MINOR_VERSION              = 0x1
+       BPF_MISC                       = 0x7
+       BPF_MOD                        = 0x90
+       BPF_MSH                        = 0xa0
+       BPF_MUL                        = 0x20
+       BPF_NEG                        = 0x80
+       BPF_OR                         = 0x40
+       BPF_RELEASE                    = 0x30bb6
+       BPF_RET                        = 0x6
+       BPF_RSH                        = 0x70
+       BPF_ST                         = 0x2
+       BPF_STX                        = 0x3
+       BPF_SUB                        = 0x10
+       BPF_TAX                        = 0x0
+       BPF_TXA                        = 0x80
+       BPF_T_BINTIME                  = 0x2
+       BPF_T_BINTIME_FAST             = 0x102
+       BPF_T_BINTIME_MONOTONIC        = 0x202
+       BPF_T_BINTIME_MONOTONIC_FAST   = 0x302
+       BPF_T_FAST                     = 0x100
+       BPF_T_FLAG_MASK                = 0x300
+       BPF_T_FORMAT_MASK              = 0x3
+       BPF_T_MICROTIME                = 0x0
+       BPF_T_MICROTIME_FAST           = 0x100
+       BPF_T_MICROTIME_MONOTONIC      = 0x200
+       BPF_T_MICROTIME_MONOTONIC_FAST = 0x300
+       BPF_T_MONOTONIC                = 0x200
+       BPF_T_MONOTONIC_FAST           = 0x300
+       BPF_T_NANOTIME                 = 0x1
+       BPF_T_NANOTIME_FAST            = 0x101
+       BPF_T_NANOTIME_MONOTONIC       = 0x201
+       BPF_T_NANOTIME_MONOTONIC_FAST  = 0x301
+       BPF_T_NONE                     = 0x3
+       BPF_T_NORMAL                   = 0x0
+       BPF_W                          = 0x0
+       BPF_X                          = 0x8
+       BPF_XOR                        = 0xa0
+       BRKINT                         = 0x2
+       CAP_ACCEPT                     = 0x200000020000000
+       CAP_ACL_CHECK                  = 0x400000000010000
+       CAP_ACL_DELETE                 = 0x400000000020000
+       CAP_ACL_GET                    = 0x400000000040000
+       CAP_ACL_SET                    = 0x400000000080000
+       CAP_ALL0                       = 0x20007ffffffffff
+       CAP_ALL1                       = 0x4000000001fffff
+       CAP_BIND                       = 0x200000040000000
+       CAP_BINDAT                     = 0x200008000000400
+       CAP_CHFLAGSAT                  = 0x200000000001400
+       CAP_CONNECT                    = 0x200000080000000
+       CAP_CONNECTAT                  = 0x200010000000400
+       CAP_CREATE                     = 0x200000000000040
+       CAP_EVENT                      = 0x400000000000020
+       CAP_EXTATTR_DELETE             = 0x400000000001000
+       CAP_EXTATTR_GET                = 0x400000000002000
+       CAP_EXTATTR_LIST               = 0x400000000004000
+       CAP_EXTATTR_SET                = 0x400000000008000
+       CAP_FCHDIR                     = 0x200000000000800
+       CAP_FCHFLAGS                   = 0x200000000001000
+       CAP_FCHMOD                     = 0x200000000002000
+       CAP_FCHMODAT                   = 0x200000000002400
+       CAP_FCHOWN                     = 0x200000000004000
+       CAP_FCHOWNAT                   = 0x200000000004400
+       CAP_FCNTL                      = 0x200000000008000
+       CAP_FCNTL_ALL                  = 0x78
+       CAP_FCNTL_GETFL                = 0x8
+       CAP_FCNTL_GETOWN               = 0x20
+       CAP_FCNTL_SETFL                = 0x10
+       CAP_FCNTL_SETOWN               = 0x40
+       CAP_FEXECVE                    = 0x200000000000080
+       CAP_FLOCK                      = 0x200000000010000
+       CAP_FPATHCONF                  = 0x200000000020000
+       CAP_FSCK                       = 0x200000000040000
+       CAP_FSTAT                      = 0x200000000080000
+       CAP_FSTATAT                    = 0x200000000080400
+       CAP_FSTATFS                    = 0x200000000100000
+       CAP_FSYNC                      = 0x200000000000100
+       CAP_FTRUNCATE                  = 0x200000000000200
+       CAP_FUTIMES                    = 0x200000000200000
+       CAP_FUTIMESAT                  = 0x200000000200400
+       CAP_GETPEERNAME                = 0x200000100000000
+       CAP_GETSOCKNAME                = 0x200000200000000
+       CAP_GETSOCKOPT                 = 0x200000400000000
+       CAP_IOCTL                      = 0x400000000000080
+       CAP_IOCTLS_ALL                 = 0x7fffffff
+       CAP_KQUEUE                     = 0x400000000100040
+       CAP_KQUEUE_CHANGE              = 0x400000000100000
+       CAP_KQUEUE_EVENT               = 0x400000000000040
+       CAP_LINKAT_SOURCE              = 0x200020000000400
+       CAP_LINKAT_TARGET              = 0x200000000400400
+       CAP_LISTEN                     = 0x200000800000000
+       CAP_LOOKUP                     = 0x200000000000400
+       CAP_MAC_GET                    = 0x400000000000001
+       CAP_MAC_SET                    = 0x400000000000002
+       CAP_MKDIRAT                    = 0x200000000800400
+       CAP_MKFIFOAT                   = 0x200000001000400
+       CAP_MKNODAT                    = 0x200000002000400
+       CAP_MMAP                       = 0x200000000000010
+       CAP_MMAP_R                     = 0x20000000000001d
+       CAP_MMAP_RW                    = 0x20000000000001f
+       CAP_MMAP_RWX                   = 0x20000000000003f
+       CAP_MMAP_RX                    = 0x20000000000003d
+       CAP_MMAP_W                     = 0x20000000000001e
+       CAP_MMAP_WX                    = 0x20000000000003e
+       CAP_MMAP_X                     = 0x20000000000003c
+       CAP_PDGETPID                   = 0x400000000000200
+       CAP_PDKILL                     = 0x400000000000800
+       CAP_PDWAIT                     = 0x400000000000400
+       CAP_PEELOFF                    = 0x200001000000000
+       CAP_POLL_EVENT                 = 0x400000000000020
+       CAP_PREAD                      = 0x20000000000000d
+       CAP_PWRITE                     = 0x20000000000000e
+       CAP_READ                       = 0x200000000000001
+       CAP_RECV                       = 0x200000000000001
+       CAP_RENAMEAT_SOURCE            = 0x200000004000400
+       CAP_RENAMEAT_TARGET            = 0x200040000000400
+       CAP_RIGHTS_VERSION             = 0x0
+       CAP_RIGHTS_VERSION_00          = 0x0
+       CAP_SEEK                       = 0x20000000000000c
+       CAP_SEEK_TELL                  = 0x200000000000004
+       CAP_SEM_GETVALUE               = 0x400000000000004
+       CAP_SEM_POST                   = 0x400000000000008
+       CAP_SEM_WAIT                   = 0x400000000000010
+       CAP_SEND                       = 0x200000000000002
+       CAP_SETSOCKOPT                 = 0x200002000000000
+       CAP_SHUTDOWN                   = 0x200004000000000
+       CAP_SOCK_CLIENT                = 0x200007780000003
+       CAP_SOCK_SERVER                = 0x200007f60000003
+       CAP_SYMLINKAT                  = 0x200000008000400
+       CAP_TTYHOOK                    = 0x400000000000100
+       CAP_UNLINKAT                   = 0x200000010000400
+       CAP_UNUSED0_44                 = 0x200080000000000
+       CAP_UNUSED0_57                 = 0x300000000000000
+       CAP_UNUSED1_22                 = 0x400000000200000
+       CAP_UNUSED1_57                 = 0x500000000000000
+       CAP_WRITE                      = 0x200000000000002
+       CFLUSH                         = 0xf
+       CLOCAL                         = 0x8000
+       CLOCK_MONOTONIC                = 0x4
+       CLOCK_MONOTONIC_FAST           = 0xc
+       CLOCK_MONOTONIC_PRECISE        = 0xb
+       CLOCK_PROCESS_CPUTIME_ID       = 0xf
+       CLOCK_PROF                     = 0x2
+       CLOCK_REALTIME                 = 0x0
+       CLOCK_REALTIME_FAST            = 0xa
+       CLOCK_REALTIME_PRECISE         = 0x9
+       CLOCK_SECOND                   = 0xd
+       CLOCK_THREAD_CPUTIME_ID        = 0xe
+       CLOCK_UPTIME                   = 0x5
+       CLOCK_UPTIME_FAST              = 0x8
+       CLOCK_UPTIME_PRECISE           = 0x7
+       CLOCK_VIRTUAL                  = 0x1
+       CREAD                          = 0x800
+       CRTSCTS                        = 0x30000
+       CS5                            = 0x0
+       CS6                            = 0x100
+       CS7                            = 0x200
+       CS8                            = 0x300
+       CSIZE                          = 0x300
+       CSTART                         = 0x11
+       CSTATUS                        = 0x14
+       CSTOP                          = 0x13
+       CSTOPB                         = 0x400
+       CSUSP                          = 0x1a
+       CTL_MAXNAME                    = 0x18
+       CTL_NET                        = 0x4
+       DLT_A429                       = 0xb8
+       DLT_A653_ICM                   = 0xb9
+       DLT_AIRONET_HEADER             = 0x78
+       DLT_AOS                        = 0xde
+       DLT_APPLE_IP_OVER_IEEE1394     = 0x8a
+       DLT_ARCNET                     = 0x7
+       DLT_ARCNET_LINUX               = 0x81
+       DLT_ATM_CLIP                   = 0x13
+       DLT_ATM_RFC1483                = 0xb
+       DLT_AURORA                     = 0x7e
+       DLT_AX25                       = 0x3
+       DLT_AX25_KISS                  = 0xca
+       DLT_BACNET_MS_TP               = 0xa5
+       DLT_BLUETOOTH_BREDR_BB         = 0xff
+       DLT_BLUETOOTH_HCI_H4           = 0xbb
+       DLT_BLUETOOTH_HCI_H4_WITH_PHDR = 0xc9
+       DLT_BLUETOOTH_LE_LL            = 0xfb
+       DLT_BLUETOOTH_LE_LL_WITH_PHDR  = 0x100
+       DLT_BLUETOOTH_LINUX_MONITOR    = 0xfe
+       DLT_CAN20B                     = 0xbe
+       DLT_CAN_SOCKETCAN              = 0xe3
+       DLT_CHAOS                      = 0x5
+       DLT_CHDLC                      = 0x68
+       DLT_CISCO_IOS                  = 0x76
+       DLT_C_HDLC                     = 0x68
+       DLT_C_HDLC_WITH_DIR            = 0xcd
+       DLT_DBUS                       = 0xe7
+       DLT_DECT                       = 0xdd
+       DLT_DOCSIS                     = 0x8f
+       DLT_DVB_CI                     = 0xeb
+       DLT_ECONET                     = 0x73
+       DLT_EN10MB                     = 0x1
+       DLT_EN3MB                      = 0x2
+       DLT_ENC                        = 0x6d
+       DLT_EPON                       = 0x103
+       DLT_ERF                        = 0xc5
+       DLT_ERF_ETH                    = 0xaf
+       DLT_ERF_POS                    = 0xb0
+       DLT_FC_2                       = 0xe0
+       DLT_FC_2_WITH_FRAME_DELIMS     = 0xe1
+       DLT_FDDI                       = 0xa
+       DLT_FLEXRAY                    = 0xd2
+       DLT_FRELAY                     = 0x6b
+       DLT_FRELAY_WITH_DIR            = 0xce
+       DLT_GCOM_SERIAL                = 0xad
+       DLT_GCOM_T1E1                  = 0xac
+       DLT_GPF_F                      = 0xab
+       DLT_GPF_T                      = 0xaa
+       DLT_GPRS_LLC                   = 0xa9
+       DLT_GSMTAP_ABIS                = 0xda
+       DLT_GSMTAP_UM                  = 0xd9
+       DLT_HHDLC                      = 0x79
+       DLT_IBM_SN                     = 0x92
+       DLT_IBM_SP                     = 0x91
+       DLT_IEEE802                    = 0x6
+       DLT_IEEE802_11                 = 0x69
+       DLT_IEEE802_11_RADIO           = 0x7f
+       DLT_IEEE802_11_RADIO_AVS       = 0xa3
+       DLT_IEEE802_15_4               = 0xc3
+       DLT_IEEE802_15_4_LINUX         = 0xbf
+       DLT_IEEE802_15_4_NOFCS         = 0xe6
+       DLT_IEEE802_15_4_NONASK_PHY    = 0xd7
+       DLT_IEEE802_16_MAC_CPS         = 0xbc
+       DLT_IEEE802_16_MAC_CPS_RADIO   = 0xc1
+       DLT_INFINIBAND                 = 0xf7
+       DLT_IPFILTER                   = 0x74
+       DLT_IPMB                       = 0xc7
+       DLT_IPMB_LINUX                 = 0xd1
+       DLT_IPMI_HPM_2                 = 0x104
+       DLT_IPNET                      = 0xe2
+       DLT_IPOIB                      = 0xf2
+       DLT_IPV4                       = 0xe4
+       DLT_IPV6                       = 0xe5
+       DLT_IP_OVER_FC                 = 0x7a
+       DLT_JUNIPER_ATM1               = 0x89
+       DLT_JUNIPER_ATM2               = 0x87
+       DLT_JUNIPER_ATM_CEMIC          = 0xee
+       DLT_JUNIPER_CHDLC              = 0xb5
+       DLT_JUNIPER_ES                 = 0x84
+       DLT_JUNIPER_ETHER              = 0xb2
+       DLT_JUNIPER_FIBRECHANNEL       = 0xea
+       DLT_JUNIPER_FRELAY             = 0xb4
+       DLT_JUNIPER_GGSN               = 0x85
+       DLT_JUNIPER_ISM                = 0xc2
+       DLT_JUNIPER_MFR                = 0x86
+       DLT_JUNIPER_MLFR               = 0x83
+       DLT_JUNIPER_MLPPP              = 0x82
+       DLT_JUNIPER_MONITOR            = 0xa4
+       DLT_JUNIPER_PIC_PEER           = 0xae
+       DLT_JUNIPER_PPP                = 0xb3
+       DLT_JUNIPER_PPPOE              = 0xa7
+       DLT_JUNIPER_PPPOE_ATM          = 0xa8
+       DLT_JUNIPER_SERVICES           = 0x88
+       DLT_JUNIPER_SRX_E2E            = 0xe9
+       DLT_JUNIPER_ST                 = 0xc8
+       DLT_JUNIPER_VP                 = 0xb7
+       DLT_JUNIPER_VS                 = 0xe8
+       DLT_LAPB_WITH_DIR              = 0xcf
+       DLT_LAPD                       = 0xcb
+       DLT_LIN                        = 0xd4
+       DLT_LINUX_EVDEV                = 0xd8
+       DLT_LINUX_IRDA                 = 0x90
+       DLT_LINUX_LAPD                 = 0xb1
+       DLT_LINUX_PPP_WITHDIRECTION    = 0xa6
+       DLT_LINUX_SLL                  = 0x71
+       DLT_LOOP                       = 0x6c
+       DLT_LTALK                      = 0x72
+       DLT_MATCHING_MAX               = 0x104
+       DLT_MATCHING_MIN               = 0x68
+       DLT_MFR                        = 0xb6
+       DLT_MOST                       = 0xd3
+       DLT_MPEG_2_TS                  = 0xf3
+       DLT_MPLS                       = 0xdb
+       DLT_MTP2                       = 0x8c
+       DLT_MTP2_WITH_PHDR             = 0x8b
+       DLT_MTP3                       = 0x8d
+       DLT_MUX27010                   = 0xec
+       DLT_NETANALYZER                = 0xf0
+       DLT_NETANALYZER_TRANSPARENT    = 0xf1
+       DLT_NETLINK                    = 0xfd
+       DLT_NFC_LLCP                   = 0xf5
+       DLT_NFLOG                      = 0xef
+       DLT_NG40                       = 0xf4
+       DLT_NULL                       = 0x0
+       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_ETHER                  = 0x33
+       DLT_PPP_PPPD                   = 0xa6
+       DLT_PPP_SERIAL                 = 0x32
+       DLT_PPP_WITH_DIR               = 0xcc
+       DLT_PPP_WITH_DIRECTION         = 0xa6
+       DLT_PRISM_HEADER               = 0x77
+       DLT_PROFIBUS_DL                = 0x101
+       DLT_PRONET                     = 0x4
+       DLT_RAIF1                      = 0xc6
+       DLT_RAW                        = 0xc
+       DLT_RIO                        = 0x7c
+       DLT_RTAC_SERIAL                = 0xfa
+       DLT_SCCP                       = 0x8e
+       DLT_SCTP                       = 0xf8
+       DLT_SITA                       = 0xc4
+       DLT_SLIP                       = 0x8
+       DLT_SLIP_BSDOS                 = 0xf
+       DLT_STANAG_5066_D_PDU          = 0xed
+       DLT_SUNATM                     = 0x7b
+       DLT_SYMANTEC_FIREWALL          = 0x63
+       DLT_TZSP                       = 0x80
+       DLT_USB                        = 0xba
+       DLT_USBPCAP                    = 0xf9
+       DLT_USB_LINUX                  = 0xbd
+       DLT_USB_LINUX_MMAPPED          = 0xdc
+       DLT_USER0                      = 0x93
+       DLT_USER1                      = 0x94
+       DLT_USER10                     = 0x9d
+       DLT_USER11                     = 0x9e
+       DLT_USER12                     = 0x9f
+       DLT_USER13                     = 0xa0
+       DLT_USER14                     = 0xa1
+       DLT_USER15                     = 0xa2
+       DLT_USER2                      = 0x95
+       DLT_USER3                      = 0x96
+       DLT_USER4                      = 0x97
+       DLT_USER5                      = 0x98
+       DLT_USER6                      = 0x99
+       DLT_USER7                      = 0x9a
+       DLT_USER8                      = 0x9b
+       DLT_USER9                      = 0x9c
+       DLT_WIHART                     = 0xdf
+       DLT_WIRESHARK_UPPER_PDU        = 0xfc
+       DLT_X2E_SERIAL                 = 0xd5
+       DLT_X2E_XORAYA                 = 0xd6
+       DT_BLK                         = 0x6
+       DT_CHR                         = 0x2
+       DT_DIR                         = 0x4
+       DT_FIFO                        = 0x1
+       DT_LNK                         = 0xa
+       DT_REG                         = 0x8
+       DT_SOCK                        = 0xc
+       DT_UNKNOWN                     = 0x0
+       DT_WHT                         = 0xe
+       ECHO                           = 0x8
+       ECHOCTL                        = 0x40
+       ECHOE                          = 0x2
+       ECHOK                          = 0x4
+       ECHOKE                         = 0x1
+       ECHONL                         = 0x10
+       ECHOPRT                        = 0x20
+       EVFILT_AIO                     = -0x3
+       EVFILT_FS                      = -0x9
+       EVFILT_LIO                     = -0xa
+       EVFILT_PROC                    = -0x5
+       EVFILT_PROCDESC                = -0x8
+       EVFILT_READ                    = -0x1
+       EVFILT_SENDFILE                = -0xc
+       EVFILT_SIGNAL                  = -0x6
+       EVFILT_SYSCOUNT                = 0xc
+       EVFILT_TIMER                   = -0x7
+       EVFILT_USER                    = -0xb
+       EVFILT_VNODE                   = -0x4
+       EVFILT_WRITE                   = -0x2
+       EV_ADD                         = 0x1
+       EV_CLEAR                       = 0x20
+       EV_DELETE                      = 0x2
+       EV_DISABLE                     = 0x8
+       EV_DISPATCH                    = 0x80
+       EV_DROP                        = 0x1000
+       EV_ENABLE                      = 0x4
+       EV_EOF                         = 0x8000
+       EV_ERROR                       = 0x4000
+       EV_FLAG1                       = 0x2000
+       EV_FLAG2                       = 0x4000
+       EV_FORCEONESHOT                = 0x100
+       EV_ONESHOT                     = 0x10
+       EV_RECEIPT                     = 0x40
+       EV_SYSFLAGS                    = 0xf000
+       EXTA                           = 0x4b00
+       EXTATTR_NAMESPACE_EMPTY        = 0x0
+       EXTATTR_NAMESPACE_SYSTEM       = 0x2
+       EXTATTR_NAMESPACE_USER         = 0x1
+       EXTB                           = 0x9600
+       EXTPROC                        = 0x800
+       FD_CLOEXEC                     = 0x1
+       FD_SETSIZE                     = 0x400
+       FLUSHO                         = 0x800000
+       F_CANCEL                       = 0x5
+       F_DUP2FD                       = 0xa
+       F_DUP2FD_CLOEXEC               = 0x12
+       F_DUPFD                        = 0x0
+       F_DUPFD_CLOEXEC                = 0x11
+       F_GETFD                        = 0x1
+       F_GETFL                        = 0x3
+       F_GETLK                        = 0xb
+       F_GETOWN                       = 0x5
+       F_OGETLK                       = 0x7
+       F_OK                           = 0x0
+       F_OSETLK                       = 0x8
+       F_OSETLKW                      = 0x9
+       F_RDAHEAD                      = 0x10
+       F_RDLCK                        = 0x1
+       F_READAHEAD                    = 0xf
+       F_SETFD                        = 0x2
+       F_SETFL                        = 0x4
+       F_SETLK                        = 0xc
+       F_SETLKW                       = 0xd
+       F_SETLK_REMOTE                 = 0xe
+       F_SETOWN                       = 0x6
+       F_UNLCK                        = 0x2
+       F_UNLCKSYS                     = 0x4
+       F_WRLCK                        = 0x3
+       HUPCL                          = 0x4000
+       ICANON                         = 0x100
+       ICMP6_FILTER                   = 0x12
+       ICRNL                          = 0x100
+       IEXTEN                         = 0x400
+       IFAN_ARRIVAL                   = 0x0
+       IFAN_DEPARTURE                 = 0x1
+       IFF_ALLMULTI                   = 0x200
+       IFF_ALTPHYS                    = 0x4000
+       IFF_BROADCAST                  = 0x2
+       IFF_CANTCHANGE                 = 0x218f52
+       IFF_CANTCONFIG                 = 0x10000
+       IFF_DEBUG                      = 0x4
+       IFF_DRV_OACTIVE                = 0x400
+       IFF_DRV_RUNNING                = 0x40
+       IFF_DYING                      = 0x200000
+       IFF_LINK0                      = 0x1000
+       IFF_LINK1                      = 0x2000
+       IFF_LINK2                      = 0x4000
+       IFF_LOOPBACK                   = 0x8
+       IFF_MONITOR                    = 0x40000
+       IFF_MULTICAST                  = 0x8000
+       IFF_NOARP                      = 0x80
+       IFF_OACTIVE                    = 0x400
+       IFF_POINTOPOINT                = 0x10
+       IFF_PPROMISC                   = 0x20000
+       IFF_PROMISC                    = 0x100
+       IFF_RENAMING                   = 0x400000
+       IFF_RUNNING                    = 0x40
+       IFF_SIMPLEX                    = 0x800
+       IFF_STATICARP                  = 0x80000
+       IFF_UP                         = 0x1
+       IFNAMSIZ                       = 0x10
+       IFT_BRIDGE                     = 0xd1
+       IFT_CARP                       = 0xf8
+       IFT_IEEE1394                   = 0x90
+       IFT_INFINIBAND                 = 0xc7
+       IFT_L2VLAN                     = 0x87
+       IFT_L3IPVLAN                   = 0x88
+       IFT_PPP                        = 0x17
+       IFT_PROPVIRTUAL                = 0x35
+       IGNBRK                         = 0x1
+       IGNCR                          = 0x80
+       IGNPAR                         = 0x4
+       IMAXBEL                        = 0x2000
+       INLCR                          = 0x40
+       INPCK                          = 0x10
+       IN_CLASSA_HOST                 = 0xffffff
+       IN_CLASSA_MAX                  = 0x80
+       IN_CLASSA_NET                  = 0xff000000
+       IN_CLASSA_NSHIFT               = 0x18
+       IN_CLASSB_HOST                 = 0xffff
+       IN_CLASSB_MAX                  = 0x10000
+       IN_CLASSB_NET                  = 0xffff0000
+       IN_CLASSB_NSHIFT               = 0x10
+       IN_CLASSC_HOST                 = 0xff
+       IN_CLASSC_NET                  = 0xffffff00
+       IN_CLASSC_NSHIFT               = 0x8
+       IN_CLASSD_HOST                 = 0xfffffff
+       IN_CLASSD_NET                  = 0xf0000000
+       IN_CLASSD_NSHIFT               = 0x1c
+       IN_LOOPBACKNET                 = 0x7f
+       IN_RFC3021_MASK                = 0xfffffffe
+       IPPROTO_3PC                    = 0x22
+       IPPROTO_ADFS                   = 0x44
+       IPPROTO_AH                     = 0x33
+       IPPROTO_AHIP                   = 0x3d
+       IPPROTO_APES                   = 0x63
+       IPPROTO_ARGUS                  = 0xd
+       IPPROTO_AX25                   = 0x5d
+       IPPROTO_BHA                    = 0x31
+       IPPROTO_BLT                    = 0x1e
+       IPPROTO_BRSATMON               = 0x4c
+       IPPROTO_CARP                   = 0x70
+       IPPROTO_CFTP                   = 0x3e
+       IPPROTO_CHAOS                  = 0x10
+       IPPROTO_CMTP                   = 0x26
+       IPPROTO_CPHB                   = 0x49
+       IPPROTO_CPNX                   = 0x48
+       IPPROTO_DDP                    = 0x25
+       IPPROTO_DGP                    = 0x56
+       IPPROTO_DIVERT                 = 0x102
+       IPPROTO_DONE                   = 0x101
+       IPPROTO_DSTOPTS                = 0x3c
+       IPPROTO_EGP                    = 0x8
+       IPPROTO_EMCON                  = 0xe
+       IPPROTO_ENCAP                  = 0x62
+       IPPROTO_EON                    = 0x50
+       IPPROTO_ESP                    = 0x32
+       IPPROTO_ETHERIP                = 0x61
+       IPPROTO_FRAGMENT               = 0x2c
+       IPPROTO_GGP                    = 0x3
+       IPPROTO_GMTP                   = 0x64
+       IPPROTO_GRE                    = 0x2f
+       IPPROTO_HELLO                  = 0x3f
+       IPPROTO_HIP                    = 0x8b
+       IPPROTO_HMP                    = 0x14
+       IPPROTO_HOPOPTS                = 0x0
+       IPPROTO_ICMP                   = 0x1
+       IPPROTO_ICMPV6                 = 0x3a
+       IPPROTO_IDP                    = 0x16
+       IPPROTO_IDPR                   = 0x23
+       IPPROTO_IDRP                   = 0x2d
+       IPPROTO_IGMP                   = 0x2
+       IPPROTO_IGP                    = 0x55
+       IPPROTO_IGRP                   = 0x58
+       IPPROTO_IL                     = 0x28
+       IPPROTO_INLSP                  = 0x34
+       IPPROTO_INP                    = 0x20
+       IPPROTO_IP                     = 0x0
+       IPPROTO_IPCOMP                 = 0x6c
+       IPPROTO_IPCV                   = 0x47
+       IPPROTO_IPEIP                  = 0x5e
+       IPPROTO_IPIP                   = 0x4
+       IPPROTO_IPPC                   = 0x43
+       IPPROTO_IPV4                   = 0x4
+       IPPROTO_IPV6                   = 0x29
+       IPPROTO_IRTP                   = 0x1c
+       IPPROTO_KRYPTOLAN              = 0x41
+       IPPROTO_LARP                   = 0x5b
+       IPPROTO_LEAF1                  = 0x19
+       IPPROTO_LEAF2                  = 0x1a
+       IPPROTO_MAX                    = 0x100
+       IPPROTO_MEAS                   = 0x13
+       IPPROTO_MH                     = 0x87
+       IPPROTO_MHRP                   = 0x30
+       IPPROTO_MICP                   = 0x5f
+       IPPROTO_MOBILE                 = 0x37
+       IPPROTO_MPLS                   = 0x89
+       IPPROTO_MTP                    = 0x5c
+       IPPROTO_MUX                    = 0x12
+       IPPROTO_ND                     = 0x4d
+       IPPROTO_NHRP                   = 0x36
+       IPPROTO_NONE                   = 0x3b
+       IPPROTO_NSP                    = 0x1f
+       IPPROTO_NVPII                  = 0xb
+       IPPROTO_OLD_DIVERT             = 0xfe
+       IPPROTO_OSPFIGP                = 0x59
+       IPPROTO_PFSYNC                 = 0xf0
+       IPPROTO_PGM                    = 0x71
+       IPPROTO_PIGP                   = 0x9
+       IPPROTO_PIM                    = 0x67
+       IPPROTO_PRM                    = 0x15
+       IPPROTO_PUP                    = 0xc
+       IPPROTO_PVP                    = 0x4b
+       IPPROTO_RAW                    = 0xff
+       IPPROTO_RCCMON                 = 0xa
+       IPPROTO_RDP                    = 0x1b
+       IPPROTO_RESERVED_253           = 0xfd
+       IPPROTO_RESERVED_254           = 0xfe
+       IPPROTO_ROUTING                = 0x2b
+       IPPROTO_RSVP                   = 0x2e
+       IPPROTO_RVD                    = 0x42
+       IPPROTO_SATEXPAK               = 0x40
+       IPPROTO_SATMON                 = 0x45
+       IPPROTO_SCCSP                  = 0x60
+       IPPROTO_SCTP                   = 0x84
+       IPPROTO_SDRP                   = 0x2a
+       IPPROTO_SEND                   = 0x103
+       IPPROTO_SEP                    = 0x21
+       IPPROTO_SHIM6                  = 0x8c
+       IPPROTO_SKIP                   = 0x39
+       IPPROTO_SPACER                 = 0x7fff
+       IPPROTO_SRPC                   = 0x5a
+       IPPROTO_ST                     = 0x7
+       IPPROTO_SVMTP                  = 0x52
+       IPPROTO_SWIPE                  = 0x35
+       IPPROTO_TCF                    = 0x57
+       IPPROTO_TCP                    = 0x6
+       IPPROTO_TLSP                   = 0x38
+       IPPROTO_TP                     = 0x1d
+       IPPROTO_TPXX                   = 0x27
+       IPPROTO_TRUNK1                 = 0x17
+       IPPROTO_TRUNK2                 = 0x18
+       IPPROTO_TTP                    = 0x54
+       IPPROTO_UDP                    = 0x11
+       IPPROTO_UDPLITE                = 0x88
+       IPPROTO_VINES                  = 0x53
+       IPPROTO_VISA                   = 0x46
+       IPPROTO_VMTP                   = 0x51
+       IPPROTO_WBEXPAK                = 0x4f
+       IPPROTO_WBMON                  = 0x4e
+       IPPROTO_WSN                    = 0x4a
+       IPPROTO_XNET                   = 0xf
+       IPPROTO_XTP                    = 0x24
+       IPV6_AUTOFLOWLABEL             = 0x3b
+       IPV6_BINDANY                   = 0x40
+       IPV6_BINDMULTI                 = 0x41
+       IPV6_BINDV6ONLY                = 0x1b
+       IPV6_CHECKSUM                  = 0x1a
+       IPV6_DEFAULT_MULTICAST_HOPS    = 0x1
+       IPV6_DEFAULT_MULTICAST_LOOP    = 0x1
+       IPV6_DEFHLIM                   = 0x40
+       IPV6_DONTFRAG                  = 0x3e
+       IPV6_DSTOPTS                   = 0x32
+       IPV6_FLOWID                    = 0x43
+       IPV6_FLOWINFO_MASK             = 0xffffff0f
+       IPV6_FLOWLABEL_MASK            = 0xffff0f00
+       IPV6_FLOWTYPE                  = 0x44
+       IPV6_FRAGTTL                   = 0x78
+       IPV6_FW_ADD                    = 0x1e
+       IPV6_FW_DEL                    = 0x1f
+       IPV6_FW_FLUSH                  = 0x20
+       IPV6_FW_GET                    = 0x22
+       IPV6_FW_ZERO                   = 0x21
+       IPV6_HLIMDEC                   = 0x1
+       IPV6_HOPLIMIT                  = 0x2f
+       IPV6_HOPOPTS                   = 0x31
+       IPV6_IPSEC_POLICY              = 0x1c
+       IPV6_JOIN_GROUP                = 0xc
+       IPV6_LEAVE_GROUP               = 0xd
+       IPV6_MAXHLIM                   = 0xff
+       IPV6_MAXOPTHDR                 = 0x800
+       IPV6_MAXPACKET                 = 0xffff
+       IPV6_MAX_GROUP_SRC_FILTER      = 0x200
+       IPV6_MAX_MEMBERSHIPS           = 0xfff
+       IPV6_MAX_SOCK_SRC_FILTER       = 0x80
+       IPV6_MIN_MEMBERSHIPS           = 0x1f
+       IPV6_MMTU                      = 0x500
+       IPV6_MSFILTER                  = 0x4a
+       IPV6_MULTICAST_HOPS            = 0xa
+       IPV6_MULTICAST_IF              = 0x9
+       IPV6_MULTICAST_LOOP            = 0xb
+       IPV6_NEXTHOP                   = 0x30
+       IPV6_PATHMTU                   = 0x2c
+       IPV6_PKTINFO                   = 0x2e
+       IPV6_PORTRANGE                 = 0xe
+       IPV6_PORTRANGE_DEFAULT         = 0x0
+       IPV6_PORTRANGE_HIGH            = 0x1
+       IPV6_PORTRANGE_LOW             = 0x2
+       IPV6_PREFER_TEMPADDR           = 0x3f
+       IPV6_RECVDSTOPTS               = 0x28
+       IPV6_RECVFLOWID                = 0x46
+       IPV6_RECVHOPLIMIT              = 0x25
+       IPV6_RECVHOPOPTS               = 0x27
+       IPV6_RECVPATHMTU               = 0x2b
+       IPV6_RECVPKTINFO               = 0x24
+       IPV6_RECVRSSBUCKETID           = 0x47
+       IPV6_RECVRTHDR                 = 0x26
+       IPV6_RECVTCLASS                = 0x39
+       IPV6_RSSBUCKETID               = 0x45
+       IPV6_RSS_LISTEN_BUCKET         = 0x42
+       IPV6_RTHDR                     = 0x33
+       IPV6_RTHDRDSTOPTS              = 0x23
+       IPV6_RTHDR_LOOSE               = 0x0
+       IPV6_RTHDR_STRICT              = 0x1
+       IPV6_RTHDR_TYPE_0              = 0x0
+       IPV6_SOCKOPT_RESERVED1         = 0x3
+       IPV6_TCLASS                    = 0x3d
+       IPV6_UNICAST_HOPS              = 0x4
+       IPV6_USE_MIN_MTU               = 0x2a
+       IPV6_V6ONLY                    = 0x1b
+       IPV6_VERSION                   = 0x60
+       IPV6_VERSION_MASK              = 0xf0
+       IP_ADD_MEMBERSHIP              = 0xc
+       IP_ADD_SOURCE_MEMBERSHIP       = 0x46
+       IP_BINDANY                     = 0x18
+       IP_BINDMULTI                   = 0x19
+       IP_BLOCK_SOURCE                = 0x48
+       IP_DEFAULT_MULTICAST_LOOP      = 0x1
+       IP_DEFAULT_MULTICAST_TTL       = 0x1
+       IP_DF                          = 0x4000
+       IP_DONTFRAG                    = 0x43
+       IP_DROP_MEMBERSHIP             = 0xd
+       IP_DROP_SOURCE_MEMBERSHIP      = 0x47
+       IP_DUMMYNET3                   = 0x31
+       IP_DUMMYNET_CONFIGURE          = 0x3c
+       IP_DUMMYNET_DEL                = 0x3d
+       IP_DUMMYNET_FLUSH              = 0x3e
+       IP_DUMMYNET_GET                = 0x40
+       IP_FLOWID                      = 0x5a
+       IP_FLOWTYPE                    = 0x5b
+       IP_FW3                         = 0x30
+       IP_FW_ADD                      = 0x32
+       IP_FW_DEL                      = 0x33
+       IP_FW_FLUSH                    = 0x34
+       IP_FW_GET                      = 0x36
+       IP_FW_NAT_CFG                  = 0x38
+       IP_FW_NAT_DEL                  = 0x39
+       IP_FW_NAT_GET_CONFIG           = 0x3a
+       IP_FW_NAT_GET_LOG              = 0x3b
+       IP_FW_RESETLOG                 = 0x37
+       IP_FW_TABLE_ADD                = 0x28
+       IP_FW_TABLE_DEL                = 0x29
+       IP_FW_TABLE_FLUSH              = 0x2a
+       IP_FW_TABLE_GETSIZE            = 0x2b
+       IP_FW_TABLE_LIST               = 0x2c
+       IP_FW_ZERO                     = 0x35
+       IP_HDRINCL                     = 0x2
+       IP_IPSEC_POLICY                = 0x15
+       IP_MAXPACKET                   = 0xffff
+       IP_MAX_GROUP_SRC_FILTER        = 0x200
+       IP_MAX_MEMBERSHIPS             = 0xfff
+       IP_MAX_SOCK_MUTE_FILTER        = 0x80
+       IP_MAX_SOCK_SRC_FILTER         = 0x80
+       IP_MAX_SOURCE_FILTER           = 0x400
+       IP_MF                          = 0x2000
+       IP_MINTTL                      = 0x42
+       IP_MIN_MEMBERSHIPS             = 0x1f
+       IP_MSFILTER                    = 0x4a
+       IP_MSS                         = 0x240
+       IP_MULTICAST_IF                = 0x9
+       IP_MULTICAST_LOOP              = 0xb
+       IP_MULTICAST_TTL               = 0xa
+       IP_MULTICAST_VIF               = 0xe
+       IP_OFFMASK                     = 0x1fff
+       IP_ONESBCAST                   = 0x17
+       IP_OPTIONS                     = 0x1
+       IP_PORTRANGE                   = 0x13
+       IP_PORTRANGE_DEFAULT           = 0x0
+       IP_PORTRANGE_HIGH              = 0x1
+       IP_PORTRANGE_LOW               = 0x2
+       IP_RECVDSTADDR                 = 0x7
+       IP_RECVFLOWID                  = 0x5d
+       IP_RECVIF                      = 0x14
+       IP_RECVOPTS                    = 0x5
+       IP_RECVRETOPTS                 = 0x6
+       IP_RECVRSSBUCKETID             = 0x5e
+       IP_RECVTOS                     = 0x44
+       IP_RECVTTL                     = 0x41
+       IP_RETOPTS                     = 0x8
+       IP_RF                          = 0x8000
+       IP_RSSBUCKETID                 = 0x5c
+       IP_RSS_LISTEN_BUCKET           = 0x1a
+       IP_RSVP_OFF                    = 0x10
+       IP_RSVP_ON                     = 0xf
+       IP_RSVP_VIF_OFF                = 0x12
+       IP_RSVP_VIF_ON                 = 0x11
+       IP_SENDSRCADDR                 = 0x7
+       IP_TOS                         = 0x3
+       IP_TTL                         = 0x4
+       IP_UNBLOCK_SOURCE              = 0x49
+       ISIG                           = 0x80
+       ISTRIP                         = 0x20
+       IXANY                          = 0x800
+       IXOFF                          = 0x400
+       IXON                           = 0x200
+       LOCK_EX                        = 0x2
+       LOCK_NB                        = 0x4
+       LOCK_SH                        = 0x1
+       LOCK_UN                        = 0x8
+       MADV_AUTOSYNC                  = 0x7
+       MADV_CORE                      = 0x9
+       MADV_DONTNEED                  = 0x4
+       MADV_FREE                      = 0x5
+       MADV_NOCORE                    = 0x8
+       MADV_NORMAL                    = 0x0
+       MADV_NOSYNC                    = 0x6
+       MADV_PROTECT                   = 0xa
+       MADV_RANDOM                    = 0x1
+       MADV_SEQUENTIAL                = 0x2
+       MADV_WILLNEED                  = 0x3
+       MAP_ALIGNED_SUPER              = 0x1000000
+       MAP_ALIGNMENT_MASK             = -0x1000000
+       MAP_ALIGNMENT_SHIFT            = 0x18
+       MAP_ANON                       = 0x1000
+       MAP_ANONYMOUS                  = 0x1000
+       MAP_COPY                       = 0x2
+       MAP_EXCL                       = 0x4000
+       MAP_FILE                       = 0x0
+       MAP_FIXED                      = 0x10
+       MAP_HASSEMAPHORE               = 0x200
+       MAP_NOCORE                     = 0x20000
+       MAP_NOSYNC                     = 0x800
+       MAP_PREFAULT_READ              = 0x40000
+       MAP_PRIVATE                    = 0x2
+       MAP_RESERVED0020               = 0x20
+       MAP_RESERVED0040               = 0x40
+       MAP_RESERVED0080               = 0x80
+       MAP_RESERVED0100               = 0x100
+       MAP_SHARED                     = 0x1
+       MAP_STACK                      = 0x400
+       MCL_CURRENT                    = 0x1
+       MCL_FUTURE                     = 0x2
+       MSG_CMSG_CLOEXEC               = 0x40000
+       MSG_COMPAT                     = 0x8000
+       MSG_CTRUNC                     = 0x20
+       MSG_DONTROUTE                  = 0x4
+       MSG_DONTWAIT                   = 0x80
+       MSG_EOF                        = 0x100
+       MSG_EOR                        = 0x8
+       MSG_NBIO                       = 0x4000
+       MSG_NOSIGNAL                   = 0x20000
+       MSG_NOTIFICATION               = 0x2000
+       MSG_OOB                        = 0x1
+       MSG_PEEK                       = 0x2
+       MSG_TRUNC                      = 0x10
+       MSG_WAITALL                    = 0x40
+       MSG_WAITFORONE                 = 0x80000
+       MS_ASYNC                       = 0x1
+       MS_INVALIDATE                  = 0x2
+       MS_SYNC                        = 0x0
+       NAME_MAX                       = 0xff
+       NET_RT_DUMP                    = 0x1
+       NET_RT_FLAGS                   = 0x2
+       NET_RT_IFLIST                  = 0x3
+       NET_RT_IFLISTL                 = 0x5
+       NET_RT_IFMALIST                = 0x4
+       NOFLSH                         = 0x80000000
+       NOKERNINFO                     = 0x2000000
+       NOTE_ATTRIB                    = 0x8
+       NOTE_CHILD                     = 0x4
+       NOTE_CLOSE                     = 0x100
+       NOTE_CLOSE_WRITE               = 0x200
+       NOTE_DELETE                    = 0x1
+       NOTE_EXEC                      = 0x20000000
+       NOTE_EXIT                      = 0x80000000
+       NOTE_EXTEND                    = 0x4
+       NOTE_FFAND                     = 0x40000000
+       NOTE_FFCOPY                    = 0xc0000000
+       NOTE_FFCTRLMASK                = 0xc0000000
+       NOTE_FFLAGSMASK                = 0xffffff
+       NOTE_FFNOP                     = 0x0
+       NOTE_FFOR                      = 0x80000000
+       NOTE_FILE_POLL                 = 0x2
+       NOTE_FORK                      = 0x40000000
+       NOTE_LINK                      = 0x10
+       NOTE_LOWAT                     = 0x1
+       NOTE_MSECONDS                  = 0x2
+       NOTE_NSECONDS                  = 0x8
+       NOTE_OPEN                      = 0x80
+       NOTE_PCTRLMASK                 = 0xf0000000
+       NOTE_PDATAMASK                 = 0xfffff
+       NOTE_READ                      = 0x400
+       NOTE_RENAME                    = 0x20
+       NOTE_REVOKE                    = 0x40
+       NOTE_SECONDS                   = 0x1
+       NOTE_TRACK                     = 0x1
+       NOTE_TRACKERR                  = 0x2
+       NOTE_TRIGGER                   = 0x1000000
+       NOTE_USECONDS                  = 0x4
+       NOTE_WRITE                     = 0x2
+       OCRNL                          = 0x10
+       ONLCR                          = 0x2
+       ONLRET                         = 0x40
+       ONOCR                          = 0x20
+       ONOEOT                         = 0x8
+       OPOST                          = 0x1
+       OXTABS                         = 0x4
+       O_ACCMODE                      = 0x3
+       O_APPEND                       = 0x8
+       O_ASYNC                        = 0x40
+       O_CLOEXEC                      = 0x100000
+       O_CREAT                        = 0x200
+       O_DIRECT                       = 0x10000
+       O_DIRECTORY                    = 0x20000
+       O_EXCL                         = 0x800
+       O_EXEC                         = 0x40000
+       O_EXLOCK                       = 0x20
+       O_FSYNC                        = 0x80
+       O_NDELAY                       = 0x4
+       O_NOCTTY                       = 0x8000
+       O_NOFOLLOW                     = 0x100
+       O_NONBLOCK                     = 0x4
+       O_RDONLY                       = 0x0
+       O_RDWR                         = 0x2
+       O_SHLOCK                       = 0x10
+       O_SYNC                         = 0x80
+       O_TRUNC                        = 0x400
+       O_TTY_INIT                     = 0x80000
+       O_VERIFY                       = 0x200000
+       O_WRONLY                       = 0x1
+       PARENB                         = 0x1000
+       PARMRK                         = 0x8
+       PARODD                         = 0x2000
+       PENDIN                         = 0x20000000
+       PRIO_PGRP                      = 0x1
+       PRIO_PROCESS                   = 0x0
+       PRIO_USER                      = 0x2
+       PROT_EXEC                      = 0x4
+       PROT_NONE                      = 0x0
+       PROT_READ                      = 0x1
+       PROT_WRITE                     = 0x2
+       RLIMIT_AS                      = 0xa
+       RLIMIT_CORE                    = 0x4
+       RLIMIT_CPU                     = 0x0
+       RLIMIT_DATA                    = 0x2
+       RLIMIT_FSIZE                   = 0x1
+       RLIMIT_MEMLOCK                 = 0x6
+       RLIMIT_NOFILE                  = 0x8
+       RLIMIT_NPROC                   = 0x7
+       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_DST                        = 0x1
+       RTA_GATEWAY                    = 0x2
+       RTA_GENMASK                    = 0x8
+       RTA_IFA                        = 0x20
+       RTA_IFP                        = 0x10
+       RTA_NETMASK                    = 0x4
+       RTF_BLACKHOLE                  = 0x1000
+       RTF_BROADCAST                  = 0x400000
+       RTF_DONE                       = 0x40
+       RTF_DYNAMIC                    = 0x10
+       RTF_FIXEDMTU                   = 0x80000
+       RTF_FMASK                      = 0x1004d808
+       RTF_GATEWAY                    = 0x2
+       RTF_GWFLAG_COMPAT              = 0x80000000
+       RTF_HOST                       = 0x4
+       RTF_LLDATA                     = 0x400
+       RTF_LLINFO                     = 0x400
+       RTF_LOCAL                      = 0x200000
+       RTF_MODIFIED                   = 0x20
+       RTF_MULTICAST                  = 0x800000
+       RTF_PINNED                     = 0x100000
+       RTF_PROTO1                     = 0x8000
+       RTF_PROTO2                     = 0x4000
+       RTF_PROTO3                     = 0x40000
+       RTF_REJECT                     = 0x8
+       RTF_RNH_LOCKED                 = 0x40000000
+       RTF_STATIC                     = 0x800
+       RTF_STICKY                     = 0x10000000
+       RTF_UP                         = 0x1
+       RTF_XRESOLVE                   = 0x200
+       RTM_ADD                        = 0x1
+       RTM_CHANGE                     = 0x3
+       RTM_DELADDR                    = 0xd
+       RTM_DELETE                     = 0x2
+       RTM_DELMADDR                   = 0x10
+       RTM_GET                        = 0x4
+       RTM_IEEE80211                  = 0x12
+       RTM_IFANNOUNCE                 = 0x11
+       RTM_IFINFO                     = 0xe
+       RTM_LOCK                       = 0x8
+       RTM_LOSING                     = 0x5
+       RTM_MISS                       = 0x7
+       RTM_NEWADDR                    = 0xc
+       RTM_NEWMADDR                   = 0xf
+       RTM_REDIRECT                   = 0x6
+       RTM_RESOLVE                    = 0xb
+       RTM_RTTUNIT                    = 0xf4240
+       RTM_VERSION                    = 0x5
+       RTV_EXPIRE                     = 0x4
+       RTV_HOPCOUNT                   = 0x2
+       RTV_MTU                        = 0x1
+       RTV_RPIPE                      = 0x8
+       RTV_RTT                        = 0x40
+       RTV_RTTVAR                     = 0x80
+       RTV_SPIPE                      = 0x10
+       RTV_SSTHRESH                   = 0x20
+       RTV_WEIGHT                     = 0x100
+       RT_ALL_FIBS                    = -0x1
+       RT_BLACKHOLE                   = 0x40
+       RT_CACHING_CONTEXT             = 0x1
+       RT_DEFAULT_FIB                 = 0x0
+       RT_HAS_GW                      = 0x80
+       RT_HAS_HEADER                  = 0x10
+       RT_HAS_HEADER_BIT              = 0x4
+       RT_L2_ME                       = 0x4
+       RT_L2_ME_BIT                   = 0x2
+       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_RIGHTS                     = 0x1
+       SCM_TIMESTAMP                  = 0x2
+       SHUT_RD                        = 0x0
+       SHUT_RDWR                      = 0x2
+       SHUT_WR                        = 0x1
+       SIOCADDMULTI                   = 0x80206931
+       SIOCAIFADDR                    = 0x8040691a
+       SIOCAIFGROUP                   = 0x80246987
+       SIOCATMARK                     = 0x40047307
+       SIOCDELMULTI                   = 0x80206932
+       SIOCDIFADDR                    = 0x80206919
+       SIOCDIFGROUP                   = 0x80246989
+       SIOCDIFPHYADDR                 = 0x80206949
+       SIOCGDRVSPEC                   = 0xc01c697b
+       SIOCGETSGCNT                   = 0xc0147210
+       SIOCGETVIFCNT                  = 0xc014720f
+       SIOCGHIWAT                     = 0x40047301
+       SIOCGI2C                       = 0xc020693d
+       SIOCGIFADDR                    = 0xc0206921
+       SIOCGIFBRDADDR                 = 0xc0206923
+       SIOCGIFCAP                     = 0xc020691f
+       SIOCGIFCONF                    = 0xc0086924
+       SIOCGIFDESCR                   = 0xc020692a
+       SIOCGIFDSTADDR                 = 0xc0206922
+       SIOCGIFFIB                     = 0xc020695c
+       SIOCGIFFLAGS                   = 0xc0206911
+       SIOCGIFGENERIC                 = 0xc020693a
+       SIOCGIFGMEMB                   = 0xc024698a
+       SIOCGIFGROUP                   = 0xc0246988
+       SIOCGIFINDEX                   = 0xc0206920
+       SIOCGIFMAC                     = 0xc0206926
+       SIOCGIFMEDIA                   = 0xc0286938
+       SIOCGIFMETRIC                  = 0xc0206917
+       SIOCGIFMTU                     = 0xc0206933
+       SIOCGIFNETMASK                 = 0xc0206925
+       SIOCGIFPDSTADDR                = 0xc0206948
+       SIOCGIFPHYS                    = 0xc0206935
+       SIOCGIFPSRCADDR                = 0xc0206947
+       SIOCGIFSTATUS                  = 0xc331693b
+       SIOCGIFXMEDIA                  = 0xc028698b
+       SIOCGLOWAT                     = 0x40047303
+       SIOCGPGRP                      = 0x40047309
+       SIOCGPRIVATE_0                 = 0xc0206950
+       SIOCGPRIVATE_1                 = 0xc0206951
+       SIOCGTUNFIB                    = 0xc020695e
+       SIOCIFCREATE                   = 0xc020697a
+       SIOCIFCREATE2                  = 0xc020697c
+       SIOCIFDESTROY                  = 0x80206979
+       SIOCIFGCLONERS                 = 0xc00c6978
+       SIOCSDRVSPEC                   = 0x801c697b
+       SIOCSHIWAT                     = 0x80047300
+       SIOCSIFADDR                    = 0x8020690c
+       SIOCSIFBRDADDR                 = 0x80206913
+       SIOCSIFCAP                     = 0x8020691e
+       SIOCSIFDESCR                   = 0x80206929
+       SIOCSIFDSTADDR                 = 0x8020690e
+       SIOCSIFFIB                     = 0x8020695d
+       SIOCSIFFLAGS                   = 0x80206910
+       SIOCSIFGENERIC                 = 0x80206939
+       SIOCSIFLLADDR                  = 0x8020693c
+       SIOCSIFMAC                     = 0x80206927
+       SIOCSIFMEDIA                   = 0xc0206937
+       SIOCSIFMETRIC                  = 0x80206918
+       SIOCSIFMTU                     = 0x80206934
+       SIOCSIFNAME                    = 0x80206928
+       SIOCSIFNETMASK                 = 0x80206916
+       SIOCSIFPHYADDR                 = 0x80406946
+       SIOCSIFPHYS                    = 0x80206936
+       SIOCSIFRVNET                   = 0xc020695b
+       SIOCSIFVNET                    = 0xc020695a
+       SIOCSLOWAT                     = 0x80047302
+       SIOCSPGRP                      = 0x80047308
+       SIOCSTUNFIB                    = 0x8020695f
+       SOCK_CLOEXEC                   = 0x10000000
+       SOCK_DGRAM                     = 0x2
+       SOCK_MAXADDRLEN                = 0xff
+       SOCK_NONBLOCK                  = 0x20000000
+       SOCK_RAW                       = 0x3
+       SOCK_RDM                       = 0x4
+       SOCK_SEQPACKET                 = 0x5
+       SOCK_STREAM                    = 0x1
+       SOL_SOCKET                     = 0xffff
+       SOMAXCONN                      = 0x80
+       SO_ACCEPTCONN                  = 0x2
+       SO_ACCEPTFILTER                = 0x1000
+       SO_BINTIME                     = 0x2000
+       SO_BROADCAST                   = 0x20
+       SO_DEBUG                       = 0x1
+       SO_DONTROUTE                   = 0x10
+       SO_ERROR                       = 0x1007
+       SO_KEEPALIVE                   = 0x8
+       SO_LABEL                       = 0x1009
+       SO_LINGER                      = 0x80
+       SO_LISTENINCQLEN               = 0x1013
+       SO_LISTENQLEN                  = 0x1012
+       SO_LISTENQLIMIT                = 0x1011
+       SO_NOSIGPIPE                   = 0x800
+       SO_NO_DDP                      = 0x8000
+       SO_NO_OFFLOAD                  = 0x4000
+       SO_OOBINLINE                   = 0x100
+       SO_PEERLABEL                   = 0x1010
+       SO_PROTOCOL                    = 0x1016
+       SO_PROTOTYPE                   = 0x1016
+       SO_RCVBUF                      = 0x1002
+       SO_RCVLOWAT                    = 0x1004
+       SO_RCVTIMEO                    = 0x1006
+       SO_REUSEADDR                   = 0x4
+       SO_REUSEPORT                   = 0x200
+       SO_SETFIB                      = 0x1014
+       SO_SNDBUF                      = 0x1001
+       SO_SNDLOWAT                    = 0x1003
+       SO_SNDTIMEO                    = 0x1005
+       SO_TIMESTAMP                   = 0x400
+       SO_TYPE                        = 0x1008
+       SO_USELOOPBACK                 = 0x40
+       SO_USER_COOKIE                 = 0x1015
+       SO_VENDOR                      = 0x80000000
+       TAB0                           = 0x0
+       TAB3                           = 0x4
+       TABDLY                         = 0x4
+       TCIFLUSH                       = 0x1
+       TCIOFF                         = 0x3
+       TCIOFLUSH                      = 0x3
+       TCION                          = 0x4
+       TCOFLUSH                       = 0x2
+       TCOOFF                         = 0x1
+       TCOON                          = 0x2
+       TCP_CA_NAME_MAX                = 0x10
+       TCP_CCALGOOPT                  = 0x41
+       TCP_CONGESTION                 = 0x40
+       TCP_FASTOPEN                   = 0x401
+       TCP_FUNCTION_BLK               = 0x2000
+       TCP_FUNCTION_NAME_LEN_MAX      = 0x20
+       TCP_INFO                       = 0x20
+       TCP_KEEPCNT                    = 0x400
+       TCP_KEEPIDLE                   = 0x100
+       TCP_KEEPINIT                   = 0x80
+       TCP_KEEPINTVL                  = 0x200
+       TCP_MAXBURST                   = 0x4
+       TCP_MAXHLEN                    = 0x3c
+       TCP_MAXOLEN                    = 0x28
+       TCP_MAXSEG                     = 0x2
+       TCP_MAXWIN                     = 0xffff
+       TCP_MAX_SACK                   = 0x4
+       TCP_MAX_WINSHIFT               = 0xe
+       TCP_MD5SIG                     = 0x10
+       TCP_MINMSS                     = 0xd8
+       TCP_MSS                        = 0x218
+       TCP_NODELAY                    = 0x1
+       TCP_NOOPT                      = 0x8
+       TCP_NOPUSH                     = 0x4
+       TCP_PCAP_IN                    = 0x1000
+       TCP_PCAP_OUT                   = 0x800
+       TCP_VENDOR                     = 0x80000000
+       TCSAFLUSH                      = 0x2
+       TIOCCBRK                       = 0x2000747a
+       TIOCCDTR                       = 0x20007478
+       TIOCCONS                       = 0x80047462
+       TIOCDRAIN                      = 0x2000745e
+       TIOCEXCL                       = 0x2000740d
+       TIOCEXT                        = 0x80047460
+       TIOCFLUSH                      = 0x80047410
+       TIOCGDRAINWAIT                 = 0x40047456
+       TIOCGETA                       = 0x402c7413
+       TIOCGETD                       = 0x4004741a
+       TIOCGPGRP                      = 0x40047477
+       TIOCGPTN                       = 0x4004740f
+       TIOCGSID                       = 0x40047463
+       TIOCGWINSZ                     = 0x40087468
+       TIOCMBIC                       = 0x8004746b
+       TIOCMBIS                       = 0x8004746c
+       TIOCMGDTRWAIT                  = 0x4004745a
+       TIOCMGET                       = 0x4004746a
+       TIOCMSDTRWAIT                  = 0x8004745b
+       TIOCMSET                       = 0x8004746d
+       TIOCM_CAR                      = 0x40
+       TIOCM_CD                       = 0x40
+       TIOCM_CTS                      = 0x20
+       TIOCM_DCD                      = 0x40
+       TIOCM_DSR                      = 0x100
+       TIOCM_DTR                      = 0x2
+       TIOCM_LE                       = 0x1
+       TIOCM_RI                       = 0x80
+       TIOCM_RNG                      = 0x80
+       TIOCM_RTS                      = 0x4
+       TIOCM_SR                       = 0x10
+       TIOCM_ST                       = 0x8
+       TIOCNOTTY                      = 0x20007471
+       TIOCNXCL                       = 0x2000740e
+       TIOCOUTQ                       = 0x40047473
+       TIOCPKT                        = 0x80047470
+       TIOCPKT_DATA                   = 0x0
+       TIOCPKT_DOSTOP                 = 0x20
+       TIOCPKT_FLUSHREAD              = 0x1
+       TIOCPKT_FLUSHWRITE             = 0x2
+       TIOCPKT_IOCTL                  = 0x40
+       TIOCPKT_NOSTOP                 = 0x10
+       TIOCPKT_START                  = 0x8
+       TIOCPKT_STOP                   = 0x4
+       TIOCPTMASTER                   = 0x2000741c
+       TIOCSBRK                       = 0x2000747b
+       TIOCSCTTY                      = 0x20007461
+       TIOCSDRAINWAIT                 = 0x80047457
+       TIOCSDTR                       = 0x20007479
+       TIOCSETA                       = 0x802c7414
+       TIOCSETAF                      = 0x802c7416
+       TIOCSETAW                      = 0x802c7415
+       TIOCSETD                       = 0x8004741b
+       TIOCSIG                        = 0x2004745f
+       TIOCSPGRP                      = 0x80047476
+       TIOCSTART                      = 0x2000746e
+       TIOCSTAT                       = 0x20007465
+       TIOCSTI                        = 0x80017472
+       TIOCSTOP                       = 0x2000746f
+       TIOCSWINSZ                     = 0x80087467
+       TIOCTIMESTAMP                  = 0x40087459
+       TIOCUCNTL                      = 0x80047466
+       TOSTOP                         = 0x400000
+       VDISCARD                       = 0xf
+       VDSUSP                         = 0xb
+       VEOF                           = 0x0
+       VEOL                           = 0x1
+       VEOL2                          = 0x2
+       VERASE                         = 0x3
+       VERASE2                        = 0x7
+       VINTR                          = 0x8
+       VKILL                          = 0x5
+       VLNEXT                         = 0xe
+       VMIN                           = 0x10
+       VQUIT                          = 0x9
+       VREPRINT                       = 0x6
+       VSTART                         = 0xc
+       VSTATUS                        = 0x12
+       VSTOP                          = 0xd
+       VSUSP                          = 0xa
+       VTIME                          = 0x11
+       VWERASE                        = 0x4
+       WCONTINUED                     = 0x4
+       WCOREFLAG                      = 0x80
+       WEXITED                        = 0x10
+       WLINUXCLONE                    = 0x80000000
+       WNOHANG                        = 0x1
+       WNOWAIT                        = 0x8
+       WSTOPPED                       = 0x2
+       WTRAPPED                       = 0x20
+       WUNTRACED                      = 0x2
+)
+
+// Errors
+const (
+       E2BIG           = syscall.Errno(0x7)
+       EACCES          = syscall.Errno(0xd)
+       EADDRINUSE      = syscall.Errno(0x30)
+       EADDRNOTAVAIL   = syscall.Errno(0x31)
+       EAFNOSUPPORT    = syscall.Errno(0x2f)
+       EAGAIN          = syscall.Errno(0x23)
+       EALREADY        = syscall.Errno(0x25)
+       EAUTH           = syscall.Errno(0x50)
+       EBADF           = syscall.Errno(0x9)
+       EBADMSG         = syscall.Errno(0x59)
+       EBADRPC         = syscall.Errno(0x48)
+       EBUSY           = syscall.Errno(0x10)
+       ECANCELED       = syscall.Errno(0x55)
+       ECAPMODE        = syscall.Errno(0x5e)
+       ECHILD          = syscall.Errno(0xa)
+       ECONNABORTED    = syscall.Errno(0x35)
+       ECONNREFUSED    = syscall.Errno(0x3d)
+       ECONNRESET      = syscall.Errno(0x36)
+       EDEADLK         = syscall.Errno(0xb)
+       EDESTADDRREQ    = syscall.Errno(0x27)
+       EDOM            = syscall.Errno(0x21)
+       EDOOFUS         = syscall.Errno(0x58)
+       EDQUOT          = syscall.Errno(0x45)
+       EEXIST          = syscall.Errno(0x11)
+       EFAULT          = syscall.Errno(0xe)
+       EFBIG           = syscall.Errno(0x1b)
+       EFTYPE          = syscall.Errno(0x4f)
+       EHOSTDOWN       = syscall.Errno(0x40)
+       EHOSTUNREACH    = syscall.Errno(0x41)
+       EIDRM           = syscall.Errno(0x52)
+       EILSEQ          = syscall.Errno(0x56)
+       EINPROGRESS     = syscall.Errno(0x24)
+       EINTR           = syscall.Errno(0x4)
+       EINVAL          = syscall.Errno(0x16)
+       EIO             = syscall.Errno(0x5)
+       EISCONN         = syscall.Errno(0x38)
+       EISDIR          = syscall.Errno(0x15)
+       ELAST           = syscall.Errno(0x60)
+       ELOOP           = syscall.Errno(0x3e)
+       EMFILE          = syscall.Errno(0x18)
+       EMLINK          = syscall.Errno(0x1f)
+       EMSGSIZE        = syscall.Errno(0x28)
+       EMULTIHOP       = syscall.Errno(0x5a)
+       ENAMETOOLONG    = syscall.Errno(0x3f)
+       ENEEDAUTH       = syscall.Errno(0x51)
+       ENETDOWN        = syscall.Errno(0x32)
+       ENETRESET       = syscall.Errno(0x34)
+       ENETUNREACH     = syscall.Errno(0x33)
+       ENFILE          = syscall.Errno(0x17)
+       ENOATTR         = syscall.Errno(0x57)
+       ENOBUFS         = syscall.Errno(0x37)
+       ENODEV          = syscall.Errno(0x13)
+       ENOENT          = syscall.Errno(0x2)
+       ENOEXEC         = syscall.Errno(0x8)
+       ENOLCK          = syscall.Errno(0x4d)
+       ENOLINK         = syscall.Errno(0x5b)
+       ENOMEM          = syscall.Errno(0xc)
+       ENOMSG          = syscall.Errno(0x53)
+       ENOPROTOOPT     = syscall.Errno(0x2a)
+       ENOSPC          = syscall.Errno(0x1c)
+       ENOSYS          = syscall.Errno(0x4e)
+       ENOTBLK         = syscall.Errno(0xf)
+       ENOTCAPABLE     = syscall.Errno(0x5d)
+       ENOTCONN        = syscall.Errno(0x39)
+       ENOTDIR         = syscall.Errno(0x14)
+       ENOTEMPTY       = syscall.Errno(0x42)
+       ENOTRECOVERABLE = syscall.Errno(0x5f)
+       ENOTSOCK        = syscall.Errno(0x26)
+       ENOTSUP         = syscall.Errno(0x2d)
+       ENOTTY          = syscall.Errno(0x19)
+       ENXIO           = syscall.Errno(0x6)
+       EOPNOTSUPP      = syscall.Errno(0x2d)
+       EOVERFLOW       = syscall.Errno(0x54)
+       EOWNERDEAD      = syscall.Errno(0x60)
+       EPERM           = syscall.Errno(0x1)
+       EPFNOSUPPORT    = syscall.Errno(0x2e)
+       EPIPE           = syscall.Errno(0x20)
+       EPROCLIM        = syscall.Errno(0x43)
+       EPROCUNAVAIL    = syscall.Errno(0x4c)
+       EPROGMISMATCH   = syscall.Errno(0x4b)
+       EPROGUNAVAIL    = syscall.Errno(0x4a)
+       EPROTO          = syscall.Errno(0x5c)
+       EPROTONOSUPPORT = syscall.Errno(0x2b)
+       EPROTOTYPE      = syscall.Errno(0x29)
+       ERANGE          = syscall.Errno(0x22)
+       EREMOTE         = syscall.Errno(0x47)
+       EROFS           = syscall.Errno(0x1e)
+       ERPCMISMATCH    = syscall.Errno(0x49)
+       ESHUTDOWN       = syscall.Errno(0x3a)
+       ESOCKTNOSUPPORT = syscall.Errno(0x2c)
+       ESPIPE          = syscall.Errno(0x1d)
+       ESRCH           = syscall.Errno(0x3)
+       ESTALE          = syscall.Errno(0x46)
+       ETIMEDOUT       = syscall.Errno(0x3c)
+       ETOOMANYREFS    = syscall.Errno(0x3b)
+       ETXTBSY         = syscall.Errno(0x1a)
+       EUSERS          = syscall.Errno(0x44)
+       EWOULDBLOCK     = syscall.Errno(0x23)
+       EXDEV           = syscall.Errno(0x12)
+)
+
+// Signals
+const (
+       SIGABRT   = syscall.Signal(0x6)
+       SIGALRM   = syscall.Signal(0xe)
+       SIGBUS    = syscall.Signal(0xa)
+       SIGCHLD   = syscall.Signal(0x14)
+       SIGCONT   = syscall.Signal(0x13)
+       SIGEMT    = syscall.Signal(0x7)
+       SIGFPE    = syscall.Signal(0x8)
+       SIGHUP    = syscall.Signal(0x1)
+       SIGILL    = syscall.Signal(0x4)
+       SIGINFO   = syscall.Signal(0x1d)
+       SIGINT    = syscall.Signal(0x2)
+       SIGIO     = syscall.Signal(0x17)
+       SIGIOT    = syscall.Signal(0x6)
+       SIGKILL   = syscall.Signal(0x9)
+       SIGLIBRT  = syscall.Signal(0x21)
+       SIGLWP    = syscall.Signal(0x20)
+       SIGPIPE   = syscall.Signal(0xd)
+       SIGPROF   = syscall.Signal(0x1b)
+       SIGQUIT   = syscall.Signal(0x3)
+       SIGSEGV   = syscall.Signal(0xb)
+       SIGSTOP   = syscall.Signal(0x11)
+       SIGSYS    = syscall.Signal(0xc)
+       SIGTERM   = syscall.Signal(0xf)
+       SIGTHR    = syscall.Signal(0x20)
+       SIGTRAP   = syscall.Signal(0x5)
+       SIGTSTP   = syscall.Signal(0x12)
+       SIGTTIN   = syscall.Signal(0x15)
+       SIGTTOU   = syscall.Signal(0x16)
+       SIGURG    = syscall.Signal(0x10)
+       SIGUSR1   = syscall.Signal(0x1e)
+       SIGUSR2   = syscall.Signal(0x1f)
+       SIGVTALRM = syscall.Signal(0x1a)
+       SIGWINCH  = syscall.Signal(0x1c)
+       SIGXCPU   = syscall.Signal(0x18)
+       SIGXFSZ   = syscall.Signal(0x19)
+)
+
+// Error table
+var errors = [...]string{
+       1:  "operation not permitted",
+       2:  "no such file or directory",
+       3:  "no such process",
+       4:  "interrupted system call",
+       5:  "input/output error",
+       6:  "device not configured",
+       7:  "argument list too long",
+       8:  "exec format error",
+       9:  "bad file descriptor",
+       10: "no child processes",
+       11: "resource deadlock avoided",
+       12: "cannot allocate memory",
+       13: "permission denied",
+       14: "bad address",
+       15: "block device required",
+       16: "device busy",
+       17: "file exists",
+       18: "cross-device link",
+       19: "operation not supported by device",
+       20: "not a directory",
+       21: "is a directory",
+       22: "invalid argument",
+       23: "too many open files in system",
+       24: "too many open files",
+       25: "inappropriate ioctl for device",
+       26: "text file busy",
+       27: "file too large",
+       28: "no space left on device",
+       29: "illegal seek",
+       30: "read-only file system",
+       31: "too many links",
+       32: "broken pipe",
+       33: "numerical argument out of domain",
+       34: "result too large",
+       35: "resource temporarily unavailable",
+       36: "operation now in progress",
+       37: "operation already in progress",
+       38: "socket operation on non-socket",
+       39: "destination address required",
+       40: "message too long",
+       41: "protocol wrong type for socket",
+       42: "protocol not available",
+       43: "protocol not supported",
+       44: "socket type not supported",
+       45: "operation not supported",
+       46: "protocol family not supported",
+       47: "address family not supported by protocol family",
+       48: "address already in use",
+       49: "can't assign requested address",
+       50: "network is down",
+       51: "network is unreachable",
+       52: "network dropped connection on reset",
+       53: "software caused connection abort",
+       54: "connection reset by peer",
+       55: "no buffer space available",
+       56: "socket is already connected",
+       57: "socket is not connected",
+       58: "can't send after socket shutdown",
+       59: "too many references: can't splice",
+       60: "operation timed out",
+       61: "connection refused",
+       62: "too many levels of symbolic links",
+       63: "file name too long",
+       64: "host is down",
+       65: "no route to host",
+       66: "directory not empty",
+       67: "too many processes",
+       68: "too many users",
+       69: "disc quota exceeded",
+       70: "stale NFS file handle",
+       71: "too many levels of remote in path",
+       72: "RPC struct is bad",
+       73: "RPC version wrong",
+       74: "RPC prog. not avail",
+       75: "program version wrong",
+       76: "bad procedure for program",
+       77: "no locks available",
+       78: "function not implemented",
+       79: "inappropriate file type or format",
+       80: "authentication error",
+       81: "need authenticator",
+       82: "identifier removed",
+       83: "no message of desired type",
+       84: "value too large to be stored in data type",
+       85: "operation canceled",
+       86: "illegal byte sequence",
+       87: "attribute not found",
+       88: "programming error",
+       89: "bad message",
+       90: "multihop attempted",
+       91: "link has been severed",
+       92: "protocol error",
+       93: "capabilities insufficient",
+       94: "not permitted in capability mode",
+       95: "state not recoverable",
+       96: "previous owner died",
+}
+
+// Signal table
+var signals = [...]string{
+       1:  "hangup",
+       2:  "interrupt",
+       3:  "quit",
+       4:  "illegal instruction",
+       5:  "trace/BPT trap",
+       6:  "abort trap",
+       7:  "EMT trap",
+       8:  "floating point exception",
+       9:  "killed",
+       10: "bus error",
+       11: "segmentation fault",
+       12: "bad system call",
+       13: "broken pipe",
+       14: "alarm clock",
+       15: "terminated",
+       16: "urgent I/O condition",
+       17: "suspended (signal)",
+       18: "suspended",
+       19: "continued",
+       20: "child exited",
+       21: "stopped (tty input)",
+       22: "stopped (tty output)",
+       23: "I/O possible",
+       24: "cputime limit exceeded",
+       25: "filesize limit exceeded",
+       26: "virtual timer expired",
+       27: "profiling timer expired",
+       28: "window size changes",
+       29: "information request",
+       30: "user defined signal 1",
+       31: "user defined signal 2",
+       32: "unknown signal",
+       33: "unknown signal",
+}
diff --git a/vendor/golang.org/x/sys/unix/zerrors_freebsd_amd64.go b/vendor/golang.org/x/sys/unix/zerrors_freebsd_amd64.go
new file mode 100644 (file)
index 0000000..ac094f9
--- /dev/null
@@ -0,0 +1,1707 @@
+// mkerrors.sh -m64
+// Code generated by the command above; see README.md. DO NOT EDIT.
+
+// +build amd64,freebsd
+
+// Created by cgo -godefs - DO NOT EDIT
+// cgo -godefs -- -m64 _const.go
+
+package unix
+
+import "syscall"
+
+const (
+       AF_APPLETALK                   = 0x10
+       AF_ARP                         = 0x23
+       AF_ATM                         = 0x1e
+       AF_BLUETOOTH                   = 0x24
+       AF_CCITT                       = 0xa
+       AF_CHAOS                       = 0x5
+       AF_CNT                         = 0x15
+       AF_COIP                        = 0x14
+       AF_DATAKIT                     = 0x9
+       AF_DECnet                      = 0xc
+       AF_DLI                         = 0xd
+       AF_E164                        = 0x1a
+       AF_ECMA                        = 0x8
+       AF_HYLINK                      = 0xf
+       AF_IEEE80211                   = 0x25
+       AF_IMPLINK                     = 0x3
+       AF_INET                        = 0x2
+       AF_INET6                       = 0x1c
+       AF_INET6_SDP                   = 0x2a
+       AF_INET_SDP                    = 0x28
+       AF_IPX                         = 0x17
+       AF_ISDN                        = 0x1a
+       AF_ISO                         = 0x7
+       AF_LAT                         = 0xe
+       AF_LINK                        = 0x12
+       AF_LOCAL                       = 0x1
+       AF_MAX                         = 0x2a
+       AF_NATM                        = 0x1d
+       AF_NETBIOS                     = 0x6
+       AF_NETGRAPH                    = 0x20
+       AF_OSI                         = 0x7
+       AF_PUP                         = 0x4
+       AF_ROUTE                       = 0x11
+       AF_SCLUSTER                    = 0x22
+       AF_SIP                         = 0x18
+       AF_SLOW                        = 0x21
+       AF_SNA                         = 0xb
+       AF_UNIX                        = 0x1
+       AF_UNSPEC                      = 0x0
+       AF_VENDOR00                    = 0x27
+       AF_VENDOR01                    = 0x29
+       AF_VENDOR02                    = 0x2b
+       AF_VENDOR03                    = 0x2d
+       AF_VENDOR04                    = 0x2f
+       AF_VENDOR05                    = 0x31
+       AF_VENDOR06                    = 0x33
+       AF_VENDOR07                    = 0x35
+       AF_VENDOR08                    = 0x37
+       AF_VENDOR09                    = 0x39
+       AF_VENDOR10                    = 0x3b
+       AF_VENDOR11                    = 0x3d
+       AF_VENDOR12                    = 0x3f
+       AF_VENDOR13                    = 0x41
+       AF_VENDOR14                    = 0x43
+       AF_VENDOR15                    = 0x45
+       AF_VENDOR16                    = 0x47
+       AF_VENDOR17                    = 0x49
+       AF_VENDOR18                    = 0x4b
+       AF_VENDOR19                    = 0x4d
+       AF_VENDOR20                    = 0x4f
+       AF_VENDOR21                    = 0x51
+       AF_VENDOR22                    = 0x53
+       AF_VENDOR23                    = 0x55
+       AF_VENDOR24                    = 0x57
+       AF_VENDOR25                    = 0x59
+       AF_VENDOR26                    = 0x5b
+       AF_VENDOR27                    = 0x5d
+       AF_VENDOR28                    = 0x5f
+       AF_VENDOR29                    = 0x61
+       AF_VENDOR30                    = 0x63
+       AF_VENDOR31                    = 0x65
+       AF_VENDOR32                    = 0x67
+       AF_VENDOR33                    = 0x69
+       AF_VENDOR34                    = 0x6b
+       AF_VENDOR35                    = 0x6d
+       AF_VENDOR36                    = 0x6f
+       AF_VENDOR37                    = 0x71
+       AF_VENDOR38                    = 0x73
+       AF_VENDOR39                    = 0x75
+       AF_VENDOR40                    = 0x77
+       AF_VENDOR41                    = 0x79
+       AF_VENDOR42                    = 0x7b
+       AF_VENDOR43                    = 0x7d
+       AF_VENDOR44                    = 0x7f
+       AF_VENDOR45                    = 0x81
+       AF_VENDOR46                    = 0x83
+       AF_VENDOR47                    = 0x85
+       ALTWERASE                      = 0x200
+       B0                             = 0x0
+       B110                           = 0x6e
+       B115200                        = 0x1c200
+       B1200                          = 0x4b0
+       B134                           = 0x86
+       B14400                         = 0x3840
+       B150                           = 0x96
+       B1800                          = 0x708
+       B19200                         = 0x4b00
+       B200                           = 0xc8
+       B230400                        = 0x38400
+       B2400                          = 0x960
+       B28800                         = 0x7080
+       B300                           = 0x12c
+       B38400                         = 0x9600
+       B460800                        = 0x70800
+       B4800                          = 0x12c0
+       B50                            = 0x32
+       B57600                         = 0xe100
+       B600                           = 0x258
+       B7200                          = 0x1c20
+       B75                            = 0x4b
+       B76800                         = 0x12c00
+       B921600                        = 0xe1000
+       B9600                          = 0x2580
+       BIOCFEEDBACK                   = 0x8004427c
+       BIOCFLUSH                      = 0x20004268
+       BIOCGBLEN                      = 0x40044266
+       BIOCGDIRECTION                 = 0x40044276
+       BIOCGDLT                       = 0x4004426a
+       BIOCGDLTLIST                   = 0xc0104279
+       BIOCGETBUFMODE                 = 0x4004427d
+       BIOCGETIF                      = 0x4020426b
+       BIOCGETZMAX                    = 0x4008427f
+       BIOCGHDRCMPLT                  = 0x40044274
+       BIOCGRSIG                      = 0x40044272
+       BIOCGRTIMEOUT                  = 0x4010426e
+       BIOCGSEESENT                   = 0x40044276
+       BIOCGSTATS                     = 0x4008426f
+       BIOCGTSTAMP                    = 0x40044283
+       BIOCIMMEDIATE                  = 0x80044270
+       BIOCLOCK                       = 0x2000427a
+       BIOCPROMISC                    = 0x20004269
+       BIOCROTZBUF                    = 0x40184280
+       BIOCSBLEN                      = 0xc0044266
+       BIOCSDIRECTION                 = 0x80044277
+       BIOCSDLT                       = 0x80044278
+       BIOCSETBUFMODE                 = 0x8004427e
+       BIOCSETF                       = 0x80104267
+       BIOCSETFNR                     = 0x80104282
+       BIOCSETIF                      = 0x8020426c
+       BIOCSETWF                      = 0x8010427b
+       BIOCSETZBUF                    = 0x80184281
+       BIOCSHDRCMPLT                  = 0x80044275
+       BIOCSRSIG                      = 0x80044273
+       BIOCSRTIMEOUT                  = 0x8010426d
+       BIOCSSEESENT                   = 0x80044277
+       BIOCSTSTAMP                    = 0x80044284
+       BIOCVERSION                    = 0x40044271
+       BPF_A                          = 0x10
+       BPF_ABS                        = 0x20
+       BPF_ADD                        = 0x0
+       BPF_ALIGNMENT                  = 0x8
+       BPF_ALU                        = 0x4
+       BPF_AND                        = 0x50
+       BPF_B                          = 0x10
+       BPF_BUFMODE_BUFFER             = 0x1
+       BPF_BUFMODE_ZBUF               = 0x2
+       BPF_DIV                        = 0x30
+       BPF_H                          = 0x8
+       BPF_IMM                        = 0x0
+       BPF_IND                        = 0x40
+       BPF_JA                         = 0x0
+       BPF_JEQ                        = 0x10
+       BPF_JGE                        = 0x30
+       BPF_JGT                        = 0x20
+       BPF_JMP                        = 0x5
+       BPF_JSET                       = 0x40
+       BPF_K                          = 0x0
+       BPF_LD                         = 0x0
+       BPF_LDX                        = 0x1
+       BPF_LEN                        = 0x80
+       BPF_LSH                        = 0x60
+       BPF_MAJOR_VERSION              = 0x1
+       BPF_MAXBUFSIZE                 = 0x80000
+       BPF_MAXINSNS                   = 0x200
+       BPF_MEM                        = 0x60
+       BPF_MEMWORDS                   = 0x10
+       BPF_MINBUFSIZE                 = 0x20
+       BPF_MINOR_VERSION              = 0x1
+       BPF_MISC                       = 0x7
+       BPF_MOD                        = 0x90
+       BPF_MSH                        = 0xa0
+       BPF_MUL                        = 0x20
+       BPF_NEG                        = 0x80
+       BPF_OR                         = 0x40
+       BPF_RELEASE                    = 0x30bb6
+       BPF_RET                        = 0x6
+       BPF_RSH                        = 0x70
+       BPF_ST                         = 0x2
+       BPF_STX                        = 0x3
+       BPF_SUB                        = 0x10
+       BPF_TAX                        = 0x0
+       BPF_TXA                        = 0x80
+       BPF_T_BINTIME                  = 0x2
+       BPF_T_BINTIME_FAST             = 0x102
+       BPF_T_BINTIME_MONOTONIC        = 0x202
+       BPF_T_BINTIME_MONOTONIC_FAST   = 0x302
+       BPF_T_FAST                     = 0x100
+       BPF_T_FLAG_MASK                = 0x300
+       BPF_T_FORMAT_MASK              = 0x3
+       BPF_T_MICROTIME                = 0x0
+       BPF_T_MICROTIME_FAST           = 0x100
+       BPF_T_MICROTIME_MONOTONIC      = 0x200
+       BPF_T_MICROTIME_MONOTONIC_FAST = 0x300
+       BPF_T_MONOTONIC                = 0x200
+       BPF_T_MONOTONIC_FAST           = 0x300
+       BPF_T_NANOTIME                 = 0x1
+       BPF_T_NANOTIME_FAST            = 0x101
+       BPF_T_NANOTIME_MONOTONIC       = 0x201
+       BPF_T_NANOTIME_MONOTONIC_FAST  = 0x301
+       BPF_T_NONE                     = 0x3
+       BPF_T_NORMAL                   = 0x0
+       BPF_W                          = 0x0
+       BPF_X                          = 0x8
+       BPF_XOR                        = 0xa0
+       BRKINT                         = 0x2
+       CAP_ACCEPT                     = 0x200000020000000
+       CAP_ACL_CHECK                  = 0x400000000010000
+       CAP_ACL_DELETE                 = 0x400000000020000
+       CAP_ACL_GET                    = 0x400000000040000
+       CAP_ACL_SET                    = 0x400000000080000
+       CAP_ALL0                       = 0x20007ffffffffff
+       CAP_ALL1                       = 0x4000000001fffff
+       CAP_BIND                       = 0x200000040000000
+       CAP_BINDAT                     = 0x200008000000400
+       CAP_CHFLAGSAT                  = 0x200000000001400
+       CAP_CONNECT                    = 0x200000080000000
+       CAP_CONNECTAT                  = 0x200010000000400
+       CAP_CREATE                     = 0x200000000000040
+       CAP_EVENT                      = 0x400000000000020
+       CAP_EXTATTR_DELETE             = 0x400000000001000
+       CAP_EXTATTR_GET                = 0x400000000002000
+       CAP_EXTATTR_LIST               = 0x400000000004000
+       CAP_EXTATTR_SET                = 0x400000000008000
+       CAP_FCHDIR                     = 0x200000000000800
+       CAP_FCHFLAGS                   = 0x200000000001000
+       CAP_FCHMOD                     = 0x200000000002000
+       CAP_FCHMODAT                   = 0x200000000002400
+       CAP_FCHOWN                     = 0x200000000004000
+       CAP_FCHOWNAT                   = 0x200000000004400
+       CAP_FCNTL                      = 0x200000000008000
+       CAP_FCNTL_ALL                  = 0x78
+       CAP_FCNTL_GETFL                = 0x8
+       CAP_FCNTL_GETOWN               = 0x20
+       CAP_FCNTL_SETFL                = 0x10
+       CAP_FCNTL_SETOWN               = 0x40
+       CAP_FEXECVE                    = 0x200000000000080
+       CAP_FLOCK                      = 0x200000000010000
+       CAP_FPATHCONF                  = 0x200000000020000
+       CAP_FSCK                       = 0x200000000040000
+       CAP_FSTAT                      = 0x200000000080000
+       CAP_FSTATAT                    = 0x200000000080400
+       CAP_FSTATFS                    = 0x200000000100000
+       CAP_FSYNC                      = 0x200000000000100
+       CAP_FTRUNCATE                  = 0x200000000000200
+       CAP_FUTIMES                    = 0x200000000200000
+       CAP_FUTIMESAT                  = 0x200000000200400
+       CAP_GETPEERNAME                = 0x200000100000000
+       CAP_GETSOCKNAME                = 0x200000200000000
+       CAP_GETSOCKOPT                 = 0x200000400000000
+       CAP_IOCTL                      = 0x400000000000080
+       CAP_IOCTLS_ALL                 = 0x7fffffffffffffff
+       CAP_KQUEUE                     = 0x400000000100040
+       CAP_KQUEUE_CHANGE              = 0x400000000100000
+       CAP_KQUEUE_EVENT               = 0x400000000000040
+       CAP_LINKAT_SOURCE              = 0x200020000000400
+       CAP_LINKAT_TARGET              = 0x200000000400400
+       CAP_LISTEN                     = 0x200000800000000
+       CAP_LOOKUP                     = 0x200000000000400
+       CAP_MAC_GET                    = 0x400000000000001
+       CAP_MAC_SET                    = 0x400000000000002
+       CAP_MKDIRAT                    = 0x200000000800400
+       CAP_MKFIFOAT                   = 0x200000001000400
+       CAP_MKNODAT                    = 0x200000002000400
+       CAP_MMAP                       = 0x200000000000010
+       CAP_MMAP_R                     = 0x20000000000001d
+       CAP_MMAP_RW                    = 0x20000000000001f
+       CAP_MMAP_RWX                   = 0x20000000000003f
+       CAP_MMAP_RX                    = 0x20000000000003d
+       CAP_MMAP_W                     = 0x20000000000001e
+       CAP_MMAP_WX                    = 0x20000000000003e
+       CAP_MMAP_X                     = 0x20000000000003c
+       CAP_PDGETPID                   = 0x400000000000200
+       CAP_PDKILL                     = 0x400000000000800
+       CAP_PDWAIT                     = 0x400000000000400
+       CAP_PEELOFF                    = 0x200001000000000
+       CAP_POLL_EVENT                 = 0x400000000000020
+       CAP_PREAD                      = 0x20000000000000d
+       CAP_PWRITE                     = 0x20000000000000e
+       CAP_READ                       = 0x200000000000001
+       CAP_RECV                       = 0x200000000000001
+       CAP_RENAMEAT_SOURCE            = 0x200000004000400
+       CAP_RENAMEAT_TARGET            = 0x200040000000400
+       CAP_RIGHTS_VERSION             = 0x0
+       CAP_RIGHTS_VERSION_00          = 0x0
+       CAP_SEEK                       = 0x20000000000000c
+       CAP_SEEK_TELL                  = 0x200000000000004
+       CAP_SEM_GETVALUE               = 0x400000000000004
+       CAP_SEM_POST                   = 0x400000000000008
+       CAP_SEM_WAIT                   = 0x400000000000010
+       CAP_SEND                       = 0x200000000000002
+       CAP_SETSOCKOPT                 = 0x200002000000000
+       CAP_SHUTDOWN                   = 0x200004000000000
+       CAP_SOCK_CLIENT                = 0x200007780000003
+       CAP_SOCK_SERVER                = 0x200007f60000003
+       CAP_SYMLINKAT                  = 0x200000008000400
+       CAP_TTYHOOK                    = 0x400000000000100
+       CAP_UNLINKAT                   = 0x200000010000400
+       CAP_UNUSED0_44                 = 0x200080000000000
+       CAP_UNUSED0_57                 = 0x300000000000000
+       CAP_UNUSED1_22                 = 0x400000000200000
+       CAP_UNUSED1_57                 = 0x500000000000000
+       CAP_WRITE                      = 0x200000000000002
+       CFLUSH                         = 0xf
+       CLOCAL                         = 0x8000
+       CLOCK_MONOTONIC                = 0x4
+       CLOCK_MONOTONIC_FAST           = 0xc
+       CLOCK_MONOTONIC_PRECISE        = 0xb
+       CLOCK_PROCESS_CPUTIME_ID       = 0xf
+       CLOCK_PROF                     = 0x2
+       CLOCK_REALTIME                 = 0x0
+       CLOCK_REALTIME_FAST            = 0xa
+       CLOCK_REALTIME_PRECISE         = 0x9
+       CLOCK_SECOND                   = 0xd
+       CLOCK_THREAD_CPUTIME_ID        = 0xe
+       CLOCK_UPTIME                   = 0x5
+       CLOCK_UPTIME_FAST              = 0x8
+       CLOCK_UPTIME_PRECISE           = 0x7
+       CLOCK_VIRTUAL                  = 0x1
+       CREAD                          = 0x800
+       CRTSCTS                        = 0x30000
+       CS5                            = 0x0
+       CS6                            = 0x100
+       CS7                            = 0x200
+       CS8                            = 0x300
+       CSIZE                          = 0x300
+       CSTART                         = 0x11
+       CSTATUS                        = 0x14
+       CSTOP                          = 0x13
+       CSTOPB                         = 0x400
+       CSUSP                          = 0x1a
+       CTL_MAXNAME                    = 0x18
+       CTL_NET                        = 0x4
+       DLT_A429                       = 0xb8
+       DLT_A653_ICM                   = 0xb9
+       DLT_AIRONET_HEADER             = 0x78
+       DLT_AOS                        = 0xde
+       DLT_APPLE_IP_OVER_IEEE1394     = 0x8a
+       DLT_ARCNET                     = 0x7
+       DLT_ARCNET_LINUX               = 0x81
+       DLT_ATM_CLIP                   = 0x13
+       DLT_ATM_RFC1483                = 0xb
+       DLT_AURORA                     = 0x7e
+       DLT_AX25                       = 0x3
+       DLT_AX25_KISS                  = 0xca
+       DLT_BACNET_MS_TP               = 0xa5
+       DLT_BLUETOOTH_BREDR_BB         = 0xff
+       DLT_BLUETOOTH_HCI_H4           = 0xbb
+       DLT_BLUETOOTH_HCI_H4_WITH_PHDR = 0xc9
+       DLT_BLUETOOTH_LE_LL            = 0xfb
+       DLT_BLUETOOTH_LE_LL_WITH_PHDR  = 0x100
+       DLT_BLUETOOTH_LINUX_MONITOR    = 0xfe
+       DLT_CAN20B                     = 0xbe
+       DLT_CAN_SOCKETCAN              = 0xe3
+       DLT_CHAOS                      = 0x5
+       DLT_CHDLC                      = 0x68
+       DLT_CISCO_IOS                  = 0x76
+       DLT_C_HDLC                     = 0x68
+       DLT_C_HDLC_WITH_DIR            = 0xcd
+       DLT_DBUS                       = 0xe7
+       DLT_DECT                       = 0xdd
+       DLT_DOCSIS                     = 0x8f
+       DLT_DVB_CI                     = 0xeb
+       DLT_ECONET                     = 0x73
+       DLT_EN10MB                     = 0x1
+       DLT_EN3MB                      = 0x2
+       DLT_ENC                        = 0x6d
+       DLT_EPON                       = 0x103
+       DLT_ERF                        = 0xc5
+       DLT_ERF_ETH                    = 0xaf
+       DLT_ERF_POS                    = 0xb0
+       DLT_FC_2                       = 0xe0
+       DLT_FC_2_WITH_FRAME_DELIMS     = 0xe1
+       DLT_FDDI                       = 0xa
+       DLT_FLEXRAY                    = 0xd2
+       DLT_FRELAY                     = 0x6b
+       DLT_FRELAY_WITH_DIR            = 0xce
+       DLT_GCOM_SERIAL                = 0xad
+       DLT_GCOM_T1E1                  = 0xac
+       DLT_GPF_F                      = 0xab
+       DLT_GPF_T                      = 0xaa
+       DLT_GPRS_LLC                   = 0xa9
+       DLT_GSMTAP_ABIS                = 0xda
+       DLT_GSMTAP_UM                  = 0xd9
+       DLT_HHDLC                      = 0x79
+       DLT_IBM_SN                     = 0x92
+       DLT_IBM_SP                     = 0x91
+       DLT_IEEE802                    = 0x6
+       DLT_IEEE802_11                 = 0x69
+       DLT_IEEE802_11_RADIO           = 0x7f
+       DLT_IEEE802_11_RADIO_AVS       = 0xa3
+       DLT_IEEE802_15_4               = 0xc3
+       DLT_IEEE802_15_4_LINUX         = 0xbf
+       DLT_IEEE802_15_4_NOFCS         = 0xe6
+       DLT_IEEE802_15_4_NONASK_PHY    = 0xd7
+       DLT_IEEE802_16_MAC_CPS         = 0xbc
+       DLT_IEEE802_16_MAC_CPS_RADIO   = 0xc1
+       DLT_INFINIBAND                 = 0xf7
+       DLT_IPFILTER                   = 0x74
+       DLT_IPMB                       = 0xc7
+       DLT_IPMB_LINUX                 = 0xd1
+       DLT_IPMI_HPM_2                 = 0x104
+       DLT_IPNET                      = 0xe2
+       DLT_IPOIB                      = 0xf2
+       DLT_IPV4                       = 0xe4
+       DLT_IPV6                       = 0xe5
+       DLT_IP_OVER_FC                 = 0x7a
+       DLT_JUNIPER_ATM1               = 0x89
+       DLT_JUNIPER_ATM2               = 0x87
+       DLT_JUNIPER_ATM_CEMIC          = 0xee
+       DLT_JUNIPER_CHDLC              = 0xb5
+       DLT_JUNIPER_ES                 = 0x84
+       DLT_JUNIPER_ETHER              = 0xb2
+       DLT_JUNIPER_FIBRECHANNEL       = 0xea
+       DLT_JUNIPER_FRELAY             = 0xb4
+       DLT_JUNIPER_GGSN               = 0x85
+       DLT_JUNIPER_ISM                = 0xc2
+       DLT_JUNIPER_MFR                = 0x86
+       DLT_JUNIPER_MLFR               = 0x83
+       DLT_JUNIPER_MLPPP              = 0x82
+       DLT_JUNIPER_MONITOR            = 0xa4
+       DLT_JUNIPER_PIC_PEER           = 0xae
+       DLT_JUNIPER_PPP                = 0xb3
+       DLT_JUNIPER_PPPOE              = 0xa7
+       DLT_JUNIPER_PPPOE_ATM          = 0xa8
+       DLT_JUNIPER_SERVICES           = 0x88
+       DLT_JUNIPER_SRX_E2E            = 0xe9
+       DLT_JUNIPER_ST                 = 0xc8
+       DLT_JUNIPER_VP                 = 0xb7
+       DLT_JUNIPER_VS                 = 0xe8
+       DLT_LAPB_WITH_DIR              = 0xcf
+       DLT_LAPD                       = 0xcb
+       DLT_LIN                        = 0xd4
+       DLT_LINUX_EVDEV                = 0xd8
+       DLT_LINUX_IRDA                 = 0x90
+       DLT_LINUX_LAPD                 = 0xb1
+       DLT_LINUX_PPP_WITHDIRECTION    = 0xa6
+       DLT_LINUX_SLL                  = 0x71
+       DLT_LOOP                       = 0x6c
+       DLT_LTALK                      = 0x72
+       DLT_MATCHING_MAX               = 0x104
+       DLT_MATCHING_MIN               = 0x68
+       DLT_MFR                        = 0xb6
+       DLT_MOST                       = 0xd3
+       DLT_MPEG_2_TS                  = 0xf3
+       DLT_MPLS                       = 0xdb
+       DLT_MTP2                       = 0x8c
+       DLT_MTP2_WITH_PHDR             = 0x8b
+       DLT_MTP3                       = 0x8d
+       DLT_MUX27010                   = 0xec
+       DLT_NETANALYZER                = 0xf0
+       DLT_NETANALYZER_TRANSPARENT    = 0xf1
+       DLT_NETLINK                    = 0xfd
+       DLT_NFC_LLCP                   = 0xf5
+       DLT_NFLOG                      = 0xef
+       DLT_NG40                       = 0xf4
+       DLT_NULL                       = 0x0
+       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_ETHER                  = 0x33
+       DLT_PPP_PPPD                   = 0xa6
+       DLT_PPP_SERIAL                 = 0x32
+       DLT_PPP_WITH_DIR               = 0xcc
+       DLT_PPP_WITH_DIRECTION         = 0xa6
+       DLT_PRISM_HEADER               = 0x77
+       DLT_PROFIBUS_DL                = 0x101
+       DLT_PRONET                     = 0x4
+       DLT_RAIF1                      = 0xc6
+       DLT_RAW                        = 0xc
+       DLT_RIO                        = 0x7c
+       DLT_RTAC_SERIAL                = 0xfa
+       DLT_SCCP                       = 0x8e
+       DLT_SCTP                       = 0xf8
+       DLT_SITA                       = 0xc4
+       DLT_SLIP                       = 0x8
+       DLT_SLIP_BSDOS                 = 0xf
+       DLT_STANAG_5066_D_PDU          = 0xed
+       DLT_SUNATM                     = 0x7b
+       DLT_SYMANTEC_FIREWALL          = 0x63
+       DLT_TZSP                       = 0x80
+       DLT_USB                        = 0xba
+       DLT_USBPCAP                    = 0xf9
+       DLT_USB_LINUX                  = 0xbd
+       DLT_USB_LINUX_MMAPPED          = 0xdc
+       DLT_USER0                      = 0x93
+       DLT_USER1                      = 0x94
+       DLT_USER10                     = 0x9d
+       DLT_USER11                     = 0x9e
+       DLT_USER12                     = 0x9f
+       DLT_USER13                     = 0xa0
+       DLT_USER14                     = 0xa1
+       DLT_USER15                     = 0xa2
+       DLT_USER2                      = 0x95
+       DLT_USER3                      = 0x96
+       DLT_USER4                      = 0x97
+       DLT_USER5                      = 0x98
+       DLT_USER6                      = 0x99
+       DLT_USER7                      = 0x9a
+       DLT_USER8                      = 0x9b
+       DLT_USER9                      = 0x9c
+       DLT_WIHART                     = 0xdf
+       DLT_WIRESHARK_UPPER_PDU        = 0xfc
+       DLT_X2E_SERIAL                 = 0xd5
+       DLT_X2E_XORAYA                 = 0xd6
+       DT_BLK                         = 0x6
+       DT_CHR                         = 0x2
+       DT_DIR                         = 0x4
+       DT_FIFO                        = 0x1
+       DT_LNK                         = 0xa
+       DT_REG                         = 0x8
+       DT_SOCK                        = 0xc
+       DT_UNKNOWN                     = 0x0
+       DT_WHT                         = 0xe
+       ECHO                           = 0x8
+       ECHOCTL                        = 0x40
+       ECHOE                          = 0x2
+       ECHOK                          = 0x4
+       ECHOKE                         = 0x1
+       ECHONL                         = 0x10
+       ECHOPRT                        = 0x20
+       EVFILT_AIO                     = -0x3
+       EVFILT_FS                      = -0x9
+       EVFILT_LIO                     = -0xa
+       EVFILT_PROC                    = -0x5
+       EVFILT_PROCDESC                = -0x8
+       EVFILT_READ                    = -0x1
+       EVFILT_SENDFILE                = -0xc
+       EVFILT_SIGNAL                  = -0x6
+       EVFILT_SYSCOUNT                = 0xc
+       EVFILT_TIMER                   = -0x7
+       EVFILT_USER                    = -0xb
+       EVFILT_VNODE                   = -0x4
+       EVFILT_WRITE                   = -0x2
+       EV_ADD                         = 0x1
+       EV_CLEAR                       = 0x20
+       EV_DELETE                      = 0x2
+       EV_DISABLE                     = 0x8
+       EV_DISPATCH                    = 0x80
+       EV_DROP                        = 0x1000
+       EV_ENABLE                      = 0x4
+       EV_EOF                         = 0x8000
+       EV_ERROR                       = 0x4000
+       EV_FLAG1                       = 0x2000
+       EV_FLAG2                       = 0x4000
+       EV_FORCEONESHOT                = 0x100
+       EV_ONESHOT                     = 0x10
+       EV_RECEIPT                     = 0x40
+       EV_SYSFLAGS                    = 0xf000
+       EXTA                           = 0x4b00
+       EXTATTR_NAMESPACE_EMPTY        = 0x0
+       EXTATTR_NAMESPACE_SYSTEM       = 0x2
+       EXTATTR_NAMESPACE_USER         = 0x1
+       EXTB                           = 0x9600
+       EXTPROC                        = 0x800
+       FD_CLOEXEC                     = 0x1
+       FD_SETSIZE                     = 0x400
+       FLUSHO                         = 0x800000
+       F_CANCEL                       = 0x5
+       F_DUP2FD                       = 0xa
+       F_DUP2FD_CLOEXEC               = 0x12
+       F_DUPFD                        = 0x0
+       F_DUPFD_CLOEXEC                = 0x11
+       F_GETFD                        = 0x1
+       F_GETFL                        = 0x3
+       F_GETLK                        = 0xb
+       F_GETOWN                       = 0x5
+       F_OGETLK                       = 0x7
+       F_OK                           = 0x0
+       F_OSETLK                       = 0x8
+       F_OSETLKW                      = 0x9
+       F_RDAHEAD                      = 0x10
+       F_RDLCK                        = 0x1
+       F_READAHEAD                    = 0xf
+       F_SETFD                        = 0x2
+       F_SETFL                        = 0x4
+       F_SETLK                        = 0xc
+       F_SETLKW                       = 0xd
+       F_SETLK_REMOTE                 = 0xe
+       F_SETOWN                       = 0x6
+       F_UNLCK                        = 0x2
+       F_UNLCKSYS                     = 0x4
+       F_WRLCK                        = 0x3
+       HUPCL                          = 0x4000
+       ICANON                         = 0x100
+       ICMP6_FILTER                   = 0x12
+       ICRNL                          = 0x100
+       IEXTEN                         = 0x400
+       IFAN_ARRIVAL                   = 0x0
+       IFAN_DEPARTURE                 = 0x1
+       IFF_ALLMULTI                   = 0x200
+       IFF_ALTPHYS                    = 0x4000
+       IFF_BROADCAST                  = 0x2
+       IFF_CANTCHANGE                 = 0x218f52
+       IFF_CANTCONFIG                 = 0x10000
+       IFF_DEBUG                      = 0x4
+       IFF_DRV_OACTIVE                = 0x400
+       IFF_DRV_RUNNING                = 0x40
+       IFF_DYING                      = 0x200000
+       IFF_LINK0                      = 0x1000
+       IFF_LINK1                      = 0x2000
+       IFF_LINK2                      = 0x4000
+       IFF_LOOPBACK                   = 0x8
+       IFF_MONITOR                    = 0x40000
+       IFF_MULTICAST                  = 0x8000
+       IFF_NOARP                      = 0x80
+       IFF_OACTIVE                    = 0x400
+       IFF_POINTOPOINT                = 0x10
+       IFF_PPROMISC                   = 0x20000
+       IFF_PROMISC                    = 0x100
+       IFF_RENAMING                   = 0x400000
+       IFF_RUNNING                    = 0x40
+       IFF_SIMPLEX                    = 0x800
+       IFF_STATICARP                  = 0x80000
+       IFF_UP                         = 0x1
+       IFNAMSIZ                       = 0x10
+       IFT_BRIDGE                     = 0xd1
+       IFT_CARP                       = 0xf8
+       IFT_IEEE1394                   = 0x90
+       IFT_INFINIBAND                 = 0xc7
+       IFT_L2VLAN                     = 0x87
+       IFT_L3IPVLAN                   = 0x88
+       IFT_PPP                        = 0x17
+       IFT_PROPVIRTUAL                = 0x35
+       IGNBRK                         = 0x1
+       IGNCR                          = 0x80
+       IGNPAR                         = 0x4
+       IMAXBEL                        = 0x2000
+       INLCR                          = 0x40
+       INPCK                          = 0x10
+       IN_CLASSA_HOST                 = 0xffffff
+       IN_CLASSA_MAX                  = 0x80
+       IN_CLASSA_NET                  = 0xff000000
+       IN_CLASSA_NSHIFT               = 0x18
+       IN_CLASSB_HOST                 = 0xffff
+       IN_CLASSB_MAX                  = 0x10000
+       IN_CLASSB_NET                  = 0xffff0000
+       IN_CLASSB_NSHIFT               = 0x10
+       IN_CLASSC_HOST                 = 0xff
+       IN_CLASSC_NET                  = 0xffffff00
+       IN_CLASSC_NSHIFT               = 0x8
+       IN_CLASSD_HOST                 = 0xfffffff
+       IN_CLASSD_NET                  = 0xf0000000
+       IN_CLASSD_NSHIFT               = 0x1c
+       IN_LOOPBACKNET                 = 0x7f
+       IN_RFC3021_MASK                = 0xfffffffe
+       IPPROTO_3PC                    = 0x22
+       IPPROTO_ADFS                   = 0x44
+       IPPROTO_AH                     = 0x33
+       IPPROTO_AHIP                   = 0x3d
+       IPPROTO_APES                   = 0x63
+       IPPROTO_ARGUS                  = 0xd
+       IPPROTO_AX25                   = 0x5d
+       IPPROTO_BHA                    = 0x31
+       IPPROTO_BLT                    = 0x1e
+       IPPROTO_BRSATMON               = 0x4c
+       IPPROTO_CARP                   = 0x70
+       IPPROTO_CFTP                   = 0x3e
+       IPPROTO_CHAOS                  = 0x10
+       IPPROTO_CMTP                   = 0x26
+       IPPROTO_CPHB                   = 0x49
+       IPPROTO_CPNX                   = 0x48
+       IPPROTO_DDP                    = 0x25
+       IPPROTO_DGP                    = 0x56
+       IPPROTO_DIVERT                 = 0x102
+       IPPROTO_DONE                   = 0x101
+       IPPROTO_DSTOPTS                = 0x3c
+       IPPROTO_EGP                    = 0x8
+       IPPROTO_EMCON                  = 0xe
+       IPPROTO_ENCAP                  = 0x62
+       IPPROTO_EON                    = 0x50
+       IPPROTO_ESP                    = 0x32
+       IPPROTO_ETHERIP                = 0x61
+       IPPROTO_FRAGMENT               = 0x2c
+       IPPROTO_GGP                    = 0x3
+       IPPROTO_GMTP                   = 0x64
+       IPPROTO_GRE                    = 0x2f
+       IPPROTO_HELLO                  = 0x3f
+       IPPROTO_HIP                    = 0x8b
+       IPPROTO_HMP                    = 0x14
+       IPPROTO_HOPOPTS                = 0x0
+       IPPROTO_ICMP                   = 0x1
+       IPPROTO_ICMPV6                 = 0x3a
+       IPPROTO_IDP                    = 0x16
+       IPPROTO_IDPR                   = 0x23
+       IPPROTO_IDRP                   = 0x2d
+       IPPROTO_IGMP                   = 0x2
+       IPPROTO_IGP                    = 0x55
+       IPPROTO_IGRP                   = 0x58
+       IPPROTO_IL                     = 0x28
+       IPPROTO_INLSP                  = 0x34
+       IPPROTO_INP                    = 0x20
+       IPPROTO_IP                     = 0x0
+       IPPROTO_IPCOMP                 = 0x6c
+       IPPROTO_IPCV                   = 0x47
+       IPPROTO_IPEIP                  = 0x5e
+       IPPROTO_IPIP                   = 0x4
+       IPPROTO_IPPC                   = 0x43
+       IPPROTO_IPV4                   = 0x4
+       IPPROTO_IPV6                   = 0x29
+       IPPROTO_IRTP                   = 0x1c
+       IPPROTO_KRYPTOLAN              = 0x41
+       IPPROTO_LARP                   = 0x5b
+       IPPROTO_LEAF1                  = 0x19
+       IPPROTO_LEAF2                  = 0x1a
+       IPPROTO_MAX                    = 0x100
+       IPPROTO_MEAS                   = 0x13
+       IPPROTO_MH                     = 0x87
+       IPPROTO_MHRP                   = 0x30
+       IPPROTO_MICP                   = 0x5f
+       IPPROTO_MOBILE                 = 0x37
+       IPPROTO_MPLS                   = 0x89
+       IPPROTO_MTP                    = 0x5c
+       IPPROTO_MUX                    = 0x12
+       IPPROTO_ND                     = 0x4d
+       IPPROTO_NHRP                   = 0x36
+       IPPROTO_NONE                   = 0x3b
+       IPPROTO_NSP                    = 0x1f
+       IPPROTO_NVPII                  = 0xb
+       IPPROTO_OLD_DIVERT             = 0xfe
+       IPPROTO_OSPFIGP                = 0x59
+       IPPROTO_PFSYNC                 = 0xf0
+       IPPROTO_PGM                    = 0x71
+       IPPROTO_PIGP                   = 0x9
+       IPPROTO_PIM                    = 0x67
+       IPPROTO_PRM                    = 0x15
+       IPPROTO_PUP                    = 0xc
+       IPPROTO_PVP                    = 0x4b
+       IPPROTO_RAW                    = 0xff
+       IPPROTO_RCCMON                 = 0xa
+       IPPROTO_RDP                    = 0x1b
+       IPPROTO_RESERVED_253           = 0xfd
+       IPPROTO_RESERVED_254           = 0xfe
+       IPPROTO_ROUTING                = 0x2b
+       IPPROTO_RSVP                   = 0x2e
+       IPPROTO_RVD                    = 0x42
+       IPPROTO_SATEXPAK               = 0x40
+       IPPROTO_SATMON                 = 0x45
+       IPPROTO_SCCSP                  = 0x60
+       IPPROTO_SCTP                   = 0x84
+       IPPROTO_SDRP                   = 0x2a
+       IPPROTO_SEND                   = 0x103
+       IPPROTO_SEP                    = 0x21
+       IPPROTO_SHIM6                  = 0x8c
+       IPPROTO_SKIP                   = 0x39
+       IPPROTO_SPACER                 = 0x7fff
+       IPPROTO_SRPC                   = 0x5a
+       IPPROTO_ST                     = 0x7
+       IPPROTO_SVMTP                  = 0x52
+       IPPROTO_SWIPE                  = 0x35
+       IPPROTO_TCF                    = 0x57
+       IPPROTO_TCP                    = 0x6
+       IPPROTO_TLSP                   = 0x38
+       IPPROTO_TP                     = 0x1d
+       IPPROTO_TPXX                   = 0x27
+       IPPROTO_TRUNK1                 = 0x17
+       IPPROTO_TRUNK2                 = 0x18
+       IPPROTO_TTP                    = 0x54
+       IPPROTO_UDP                    = 0x11
+       IPPROTO_UDPLITE                = 0x88
+       IPPROTO_VINES                  = 0x53
+       IPPROTO_VISA                   = 0x46
+       IPPROTO_VMTP                   = 0x51
+       IPPROTO_WBEXPAK                = 0x4f
+       IPPROTO_WBMON                  = 0x4e
+       IPPROTO_WSN                    = 0x4a
+       IPPROTO_XNET                   = 0xf
+       IPPROTO_XTP                    = 0x24
+       IPV6_AUTOFLOWLABEL             = 0x3b
+       IPV6_BINDANY                   = 0x40
+       IPV6_BINDMULTI                 = 0x41
+       IPV6_BINDV6ONLY                = 0x1b
+       IPV6_CHECKSUM                  = 0x1a
+       IPV6_DEFAULT_MULTICAST_HOPS    = 0x1
+       IPV6_DEFAULT_MULTICAST_LOOP    = 0x1
+       IPV6_DEFHLIM                   = 0x40
+       IPV6_DONTFRAG                  = 0x3e
+       IPV6_DSTOPTS                   = 0x32
+       IPV6_FLOWID                    = 0x43
+       IPV6_FLOWINFO_MASK             = 0xffffff0f
+       IPV6_FLOWLABEL_MASK            = 0xffff0f00
+       IPV6_FLOWTYPE                  = 0x44
+       IPV6_FRAGTTL                   = 0x78
+       IPV6_FW_ADD                    = 0x1e
+       IPV6_FW_DEL                    = 0x1f
+       IPV6_FW_FLUSH                  = 0x20
+       IPV6_FW_GET                    = 0x22
+       IPV6_FW_ZERO                   = 0x21
+       IPV6_HLIMDEC                   = 0x1
+       IPV6_HOPLIMIT                  = 0x2f
+       IPV6_HOPOPTS                   = 0x31
+       IPV6_IPSEC_POLICY              = 0x1c
+       IPV6_JOIN_GROUP                = 0xc
+       IPV6_LEAVE_GROUP               = 0xd
+       IPV6_MAXHLIM                   = 0xff
+       IPV6_MAXOPTHDR                 = 0x800
+       IPV6_MAXPACKET                 = 0xffff
+       IPV6_MAX_GROUP_SRC_FILTER      = 0x200
+       IPV6_MAX_MEMBERSHIPS           = 0xfff
+       IPV6_MAX_SOCK_SRC_FILTER       = 0x80
+       IPV6_MIN_MEMBERSHIPS           = 0x1f
+       IPV6_MMTU                      = 0x500
+       IPV6_MSFILTER                  = 0x4a
+       IPV6_MULTICAST_HOPS            = 0xa
+       IPV6_MULTICAST_IF              = 0x9
+       IPV6_MULTICAST_LOOP            = 0xb
+       IPV6_NEXTHOP                   = 0x30
+       IPV6_PATHMTU                   = 0x2c
+       IPV6_PKTINFO                   = 0x2e
+       IPV6_PORTRANGE                 = 0xe
+       IPV6_PORTRANGE_DEFAULT         = 0x0
+       IPV6_PORTRANGE_HIGH            = 0x1
+       IPV6_PORTRANGE_LOW             = 0x2
+       IPV6_PREFER_TEMPADDR           = 0x3f
+       IPV6_RECVDSTOPTS               = 0x28
+       IPV6_RECVFLOWID                = 0x46
+       IPV6_RECVHOPLIMIT              = 0x25
+       IPV6_RECVHOPOPTS               = 0x27
+       IPV6_RECVPATHMTU               = 0x2b
+       IPV6_RECVPKTINFO               = 0x24
+       IPV6_RECVRSSBUCKETID           = 0x47
+       IPV6_RECVRTHDR                 = 0x26
+       IPV6_RECVTCLASS                = 0x39
+       IPV6_RSSBUCKETID               = 0x45
+       IPV6_RSS_LISTEN_BUCKET         = 0x42
+       IPV6_RTHDR                     = 0x33
+       IPV6_RTHDRDSTOPTS              = 0x23
+       IPV6_RTHDR_LOOSE               = 0x0
+       IPV6_RTHDR_STRICT              = 0x1
+       IPV6_RTHDR_TYPE_0              = 0x0
+       IPV6_SOCKOPT_RESERVED1         = 0x3
+       IPV6_TCLASS                    = 0x3d
+       IPV6_UNICAST_HOPS              = 0x4
+       IPV6_USE_MIN_MTU               = 0x2a
+       IPV6_V6ONLY                    = 0x1b
+       IPV6_VERSION                   = 0x60
+       IPV6_VERSION_MASK              = 0xf0
+       IP_ADD_MEMBERSHIP              = 0xc
+       IP_ADD_SOURCE_MEMBERSHIP       = 0x46
+       IP_BINDANY                     = 0x18
+       IP_BINDMULTI                   = 0x19
+       IP_BLOCK_SOURCE                = 0x48
+       IP_DEFAULT_MULTICAST_LOOP      = 0x1
+       IP_DEFAULT_MULTICAST_TTL       = 0x1
+       IP_DF                          = 0x4000
+       IP_DONTFRAG                    = 0x43
+       IP_DROP_MEMBERSHIP             = 0xd
+       IP_DROP_SOURCE_MEMBERSHIP      = 0x47
+       IP_DUMMYNET3                   = 0x31
+       IP_DUMMYNET_CONFIGURE          = 0x3c
+       IP_DUMMYNET_DEL                = 0x3d
+       IP_DUMMYNET_FLUSH              = 0x3e
+       IP_DUMMYNET_GET                = 0x40
+       IP_FLOWID                      = 0x5a
+       IP_FLOWTYPE                    = 0x5b
+       IP_FW3                         = 0x30
+       IP_FW_ADD                      = 0x32
+       IP_FW_DEL                      = 0x33
+       IP_FW_FLUSH                    = 0x34
+       IP_FW_GET                      = 0x36
+       IP_FW_NAT_CFG                  = 0x38
+       IP_FW_NAT_DEL                  = 0x39
+       IP_FW_NAT_GET_CONFIG           = 0x3a
+       IP_FW_NAT_GET_LOG              = 0x3b
+       IP_FW_RESETLOG                 = 0x37
+       IP_FW_TABLE_ADD                = 0x28
+       IP_FW_TABLE_DEL                = 0x29
+       IP_FW_TABLE_FLUSH              = 0x2a
+       IP_FW_TABLE_GETSIZE            = 0x2b
+       IP_FW_TABLE_LIST               = 0x2c
+       IP_FW_ZERO                     = 0x35
+       IP_HDRINCL                     = 0x2
+       IP_IPSEC_POLICY                = 0x15
+       IP_MAXPACKET                   = 0xffff
+       IP_MAX_GROUP_SRC_FILTER        = 0x200
+       IP_MAX_MEMBERSHIPS             = 0xfff
+       IP_MAX_SOCK_MUTE_FILTER        = 0x80
+       IP_MAX_SOCK_SRC_FILTER         = 0x80
+       IP_MAX_SOURCE_FILTER           = 0x400
+       IP_MF                          = 0x2000
+       IP_MINTTL                      = 0x42
+       IP_MIN_MEMBERSHIPS             = 0x1f
+       IP_MSFILTER                    = 0x4a
+       IP_MSS                         = 0x240
+       IP_MULTICAST_IF                = 0x9
+       IP_MULTICAST_LOOP              = 0xb
+       IP_MULTICAST_TTL               = 0xa
+       IP_MULTICAST_VIF               = 0xe
+       IP_OFFMASK                     = 0x1fff
+       IP_ONESBCAST                   = 0x17
+       IP_OPTIONS                     = 0x1
+       IP_PORTRANGE                   = 0x13
+       IP_PORTRANGE_DEFAULT           = 0x0
+       IP_PORTRANGE_HIGH              = 0x1
+       IP_PORTRANGE_LOW               = 0x2
+       IP_RECVDSTADDR                 = 0x7
+       IP_RECVFLOWID                  = 0x5d
+       IP_RECVIF                      = 0x14
+       IP_RECVOPTS                    = 0x5
+       IP_RECVRETOPTS                 = 0x6
+       IP_RECVRSSBUCKETID             = 0x5e
+       IP_RECVTOS                     = 0x44
+       IP_RECVTTL                     = 0x41
+       IP_RETOPTS                     = 0x8
+       IP_RF                          = 0x8000
+       IP_RSSBUCKETID                 = 0x5c
+       IP_RSS_LISTEN_BUCKET           = 0x1a
+       IP_RSVP_OFF                    = 0x10
+       IP_RSVP_ON                     = 0xf
+       IP_RSVP_VIF_OFF                = 0x12
+       IP_RSVP_VIF_ON                 = 0x11
+       IP_SENDSRCADDR                 = 0x7
+       IP_TOS                         = 0x3
+       IP_TTL                         = 0x4
+       IP_UNBLOCK_SOURCE              = 0x49
+       ISIG                           = 0x80
+       ISTRIP                         = 0x20
+       IXANY                          = 0x800
+       IXOFF                          = 0x400
+       IXON                           = 0x200
+       LOCK_EX                        = 0x2
+       LOCK_NB                        = 0x4
+       LOCK_SH                        = 0x1
+       LOCK_UN                        = 0x8
+       MADV_AUTOSYNC                  = 0x7
+       MADV_CORE                      = 0x9
+       MADV_DONTNEED                  = 0x4
+       MADV_FREE                      = 0x5
+       MADV_NOCORE                    = 0x8
+       MADV_NORMAL                    = 0x0
+       MADV_NOSYNC                    = 0x6
+       MADV_PROTECT                   = 0xa
+       MADV_RANDOM                    = 0x1
+       MADV_SEQUENTIAL                = 0x2
+       MADV_WILLNEED                  = 0x3
+       MAP_32BIT                      = 0x80000
+       MAP_ALIGNED_SUPER              = 0x1000000
+       MAP_ALIGNMENT_MASK             = -0x1000000
+       MAP_ALIGNMENT_SHIFT            = 0x18
+       MAP_ANON                       = 0x1000
+       MAP_ANONYMOUS                  = 0x1000
+       MAP_COPY                       = 0x2
+       MAP_EXCL                       = 0x4000
+       MAP_FILE                       = 0x0
+       MAP_FIXED                      = 0x10
+       MAP_HASSEMAPHORE               = 0x200
+       MAP_NOCORE                     = 0x20000
+       MAP_NOSYNC                     = 0x800
+       MAP_PREFAULT_READ              = 0x40000
+       MAP_PRIVATE                    = 0x2
+       MAP_RESERVED0020               = 0x20
+       MAP_RESERVED0040               = 0x40
+       MAP_RESERVED0080               = 0x80
+       MAP_RESERVED0100               = 0x100
+       MAP_SHARED                     = 0x1
+       MAP_STACK                      = 0x400
+       MCL_CURRENT                    = 0x1
+       MCL_FUTURE                     = 0x2
+       MSG_CMSG_CLOEXEC               = 0x40000
+       MSG_COMPAT                     = 0x8000
+       MSG_CTRUNC                     = 0x20
+       MSG_DONTROUTE                  = 0x4
+       MSG_DONTWAIT                   = 0x80
+       MSG_EOF                        = 0x100
+       MSG_EOR                        = 0x8
+       MSG_NBIO                       = 0x4000
+       MSG_NOSIGNAL                   = 0x20000
+       MSG_NOTIFICATION               = 0x2000
+       MSG_OOB                        = 0x1
+       MSG_PEEK                       = 0x2
+       MSG_TRUNC                      = 0x10
+       MSG_WAITALL                    = 0x40
+       MSG_WAITFORONE                 = 0x80000
+       MS_ASYNC                       = 0x1
+       MS_INVALIDATE                  = 0x2
+       MS_SYNC                        = 0x0
+       NAME_MAX                       = 0xff
+       NET_RT_DUMP                    = 0x1
+       NET_RT_FLAGS                   = 0x2
+       NET_RT_IFLIST                  = 0x3
+       NET_RT_IFLISTL                 = 0x5
+       NET_RT_IFMALIST                = 0x4
+       NOFLSH                         = 0x80000000
+       NOKERNINFO                     = 0x2000000
+       NOTE_ATTRIB                    = 0x8
+       NOTE_CHILD                     = 0x4
+       NOTE_CLOSE                     = 0x100
+       NOTE_CLOSE_WRITE               = 0x200
+       NOTE_DELETE                    = 0x1
+       NOTE_EXEC                      = 0x20000000
+       NOTE_EXIT                      = 0x80000000
+       NOTE_EXTEND                    = 0x4
+       NOTE_FFAND                     = 0x40000000
+       NOTE_FFCOPY                    = 0xc0000000
+       NOTE_FFCTRLMASK                = 0xc0000000
+       NOTE_FFLAGSMASK                = 0xffffff
+       NOTE_FFNOP                     = 0x0
+       NOTE_FFOR                      = 0x80000000
+       NOTE_FILE_POLL                 = 0x2
+       NOTE_FORK                      = 0x40000000
+       NOTE_LINK                      = 0x10
+       NOTE_LOWAT                     = 0x1
+       NOTE_MSECONDS                  = 0x2
+       NOTE_NSECONDS                  = 0x8
+       NOTE_OPEN                      = 0x80
+       NOTE_PCTRLMASK                 = 0xf0000000
+       NOTE_PDATAMASK                 = 0xfffff
+       NOTE_READ                      = 0x400
+       NOTE_RENAME                    = 0x20
+       NOTE_REVOKE                    = 0x40
+       NOTE_SECONDS                   = 0x1
+       NOTE_TRACK                     = 0x1
+       NOTE_TRACKERR                  = 0x2
+       NOTE_TRIGGER                   = 0x1000000
+       NOTE_USECONDS                  = 0x4
+       NOTE_WRITE                     = 0x2
+       OCRNL                          = 0x10
+       ONLCR                          = 0x2
+       ONLRET                         = 0x40
+       ONOCR                          = 0x20
+       ONOEOT                         = 0x8
+       OPOST                          = 0x1
+       OXTABS                         = 0x4
+       O_ACCMODE                      = 0x3
+       O_APPEND                       = 0x8
+       O_ASYNC                        = 0x40
+       O_CLOEXEC                      = 0x100000
+       O_CREAT                        = 0x200
+       O_DIRECT                       = 0x10000
+       O_DIRECTORY                    = 0x20000
+       O_EXCL                         = 0x800
+       O_EXEC                         = 0x40000
+       O_EXLOCK                       = 0x20
+       O_FSYNC                        = 0x80
+       O_NDELAY                       = 0x4
+       O_NOCTTY                       = 0x8000
+       O_NOFOLLOW                     = 0x100
+       O_NONBLOCK                     = 0x4
+       O_RDONLY                       = 0x0
+       O_RDWR                         = 0x2
+       O_SHLOCK                       = 0x10
+       O_SYNC                         = 0x80
+       O_TRUNC                        = 0x400
+       O_TTY_INIT                     = 0x80000
+       O_VERIFY                       = 0x200000
+       O_WRONLY                       = 0x1
+       PARENB                         = 0x1000
+       PARMRK                         = 0x8
+       PARODD                         = 0x2000
+       PENDIN                         = 0x20000000
+       PRIO_PGRP                      = 0x1
+       PRIO_PROCESS                   = 0x0
+       PRIO_USER                      = 0x2
+       PROT_EXEC                      = 0x4
+       PROT_NONE                      = 0x0
+       PROT_READ                      = 0x1
+       PROT_WRITE                     = 0x2
+       RLIMIT_AS                      = 0xa
+       RLIMIT_CORE                    = 0x4
+       RLIMIT_CPU                     = 0x0
+       RLIMIT_DATA                    = 0x2
+       RLIMIT_FSIZE                   = 0x1
+       RLIMIT_MEMLOCK                 = 0x6
+       RLIMIT_NOFILE                  = 0x8
+       RLIMIT_NPROC                   = 0x7
+       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_DST                        = 0x1
+       RTA_GATEWAY                    = 0x2
+       RTA_GENMASK                    = 0x8
+       RTA_IFA                        = 0x20
+       RTA_IFP                        = 0x10
+       RTA_NETMASK                    = 0x4
+       RTF_BLACKHOLE                  = 0x1000
+       RTF_BROADCAST                  = 0x400000
+       RTF_DONE                       = 0x40
+       RTF_DYNAMIC                    = 0x10
+       RTF_FIXEDMTU                   = 0x80000
+       RTF_FMASK                      = 0x1004d808
+       RTF_GATEWAY                    = 0x2
+       RTF_GWFLAG_COMPAT              = 0x80000000
+       RTF_HOST                       = 0x4
+       RTF_LLDATA                     = 0x400
+       RTF_LLINFO                     = 0x400
+       RTF_LOCAL                      = 0x200000
+       RTF_MODIFIED                   = 0x20
+       RTF_MULTICAST                  = 0x800000
+       RTF_PINNED                     = 0x100000
+       RTF_PROTO1                     = 0x8000
+       RTF_PROTO2                     = 0x4000
+       RTF_PROTO3                     = 0x40000
+       RTF_REJECT                     = 0x8
+       RTF_RNH_LOCKED                 = 0x40000000
+       RTF_STATIC                     = 0x800
+       RTF_STICKY                     = 0x10000000
+       RTF_UP                         = 0x1
+       RTF_XRESOLVE                   = 0x200
+       RTM_ADD                        = 0x1
+       RTM_CHANGE                     = 0x3
+       RTM_DELADDR                    = 0xd
+       RTM_DELETE                     = 0x2
+       RTM_DELMADDR                   = 0x10
+       RTM_GET                        = 0x4
+       RTM_IEEE80211                  = 0x12
+       RTM_IFANNOUNCE                 = 0x11
+       RTM_IFINFO                     = 0xe
+       RTM_LOCK                       = 0x8
+       RTM_LOSING                     = 0x5
+       RTM_MISS                       = 0x7
+       RTM_NEWADDR                    = 0xc
+       RTM_NEWMADDR                   = 0xf
+       RTM_REDIRECT                   = 0x6
+       RTM_RESOLVE                    = 0xb
+       RTM_RTTUNIT                    = 0xf4240
+       RTM_VERSION                    = 0x5
+       RTV_EXPIRE                     = 0x4
+       RTV_HOPCOUNT                   = 0x2
+       RTV_MTU                        = 0x1
+       RTV_RPIPE                      = 0x8
+       RTV_RTT                        = 0x40
+       RTV_RTTVAR                     = 0x80
+       RTV_SPIPE                      = 0x10
+       RTV_SSTHRESH                   = 0x20
+       RTV_WEIGHT                     = 0x100
+       RT_ALL_FIBS                    = -0x1
+       RT_BLACKHOLE                   = 0x40
+       RT_CACHING_CONTEXT             = 0x1
+       RT_DEFAULT_FIB                 = 0x0
+       RT_HAS_GW                      = 0x80
+       RT_HAS_HEADER                  = 0x10
+       RT_HAS_HEADER_BIT              = 0x4
+       RT_L2_ME                       = 0x4
+       RT_L2_ME_BIT                   = 0x2
+       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_RIGHTS                     = 0x1
+       SCM_TIMESTAMP                  = 0x2
+       SHUT_RD                        = 0x0
+       SHUT_RDWR                      = 0x2
+       SHUT_WR                        = 0x1
+       SIOCADDMULTI                   = 0x80206931
+       SIOCAIFADDR                    = 0x8040691a
+       SIOCAIFGROUP                   = 0x80286987
+       SIOCATMARK                     = 0x40047307
+       SIOCDELMULTI                   = 0x80206932
+       SIOCDIFADDR                    = 0x80206919
+       SIOCDIFGROUP                   = 0x80286989
+       SIOCDIFPHYADDR                 = 0x80206949
+       SIOCGDRVSPEC                   = 0xc028697b
+       SIOCGETSGCNT                   = 0xc0207210
+       SIOCGETVIFCNT                  = 0xc028720f
+       SIOCGHIWAT                     = 0x40047301
+       SIOCGI2C                       = 0xc020693d
+       SIOCGIFADDR                    = 0xc0206921
+       SIOCGIFBRDADDR                 = 0xc0206923
+       SIOCGIFCAP                     = 0xc020691f
+       SIOCGIFCONF                    = 0xc0106924
+       SIOCGIFDESCR                   = 0xc020692a
+       SIOCGIFDSTADDR                 = 0xc0206922
+       SIOCGIFFIB                     = 0xc020695c
+       SIOCGIFFLAGS                   = 0xc0206911
+       SIOCGIFGENERIC                 = 0xc020693a
+       SIOCGIFGMEMB                   = 0xc028698a
+       SIOCGIFGROUP                   = 0xc0286988
+       SIOCGIFINDEX                   = 0xc0206920
+       SIOCGIFMAC                     = 0xc0206926
+       SIOCGIFMEDIA                   = 0xc0306938
+       SIOCGIFMETRIC                  = 0xc0206917
+       SIOCGIFMTU                     = 0xc0206933
+       SIOCGIFNETMASK                 = 0xc0206925
+       SIOCGIFPDSTADDR                = 0xc0206948
+       SIOCGIFPHYS                    = 0xc0206935
+       SIOCGIFPSRCADDR                = 0xc0206947
+       SIOCGIFSTATUS                  = 0xc331693b
+       SIOCGIFXMEDIA                  = 0xc030698b
+       SIOCGLOWAT                     = 0x40047303
+       SIOCGPGRP                      = 0x40047309
+       SIOCGPRIVATE_0                 = 0xc0206950
+       SIOCGPRIVATE_1                 = 0xc0206951
+       SIOCGTUNFIB                    = 0xc020695e
+       SIOCIFCREATE                   = 0xc020697a
+       SIOCIFCREATE2                  = 0xc020697c
+       SIOCIFDESTROY                  = 0x80206979
+       SIOCIFGCLONERS                 = 0xc0106978
+       SIOCSDRVSPEC                   = 0x8028697b
+       SIOCSHIWAT                     = 0x80047300
+       SIOCSIFADDR                    = 0x8020690c
+       SIOCSIFBRDADDR                 = 0x80206913
+       SIOCSIFCAP                     = 0x8020691e
+       SIOCSIFDESCR                   = 0x80206929
+       SIOCSIFDSTADDR                 = 0x8020690e
+       SIOCSIFFIB                     = 0x8020695d
+       SIOCSIFFLAGS                   = 0x80206910
+       SIOCSIFGENERIC                 = 0x80206939
+       SIOCSIFLLADDR                  = 0x8020693c
+       SIOCSIFMAC                     = 0x80206927
+       SIOCSIFMEDIA                   = 0xc0206937
+       SIOCSIFMETRIC                  = 0x80206918
+       SIOCSIFMTU                     = 0x80206934
+       SIOCSIFNAME                    = 0x80206928
+       SIOCSIFNETMASK                 = 0x80206916
+       SIOCSIFPHYADDR                 = 0x80406946
+       SIOCSIFPHYS                    = 0x80206936
+       SIOCSIFRVNET                   = 0xc020695b
+       SIOCSIFVNET                    = 0xc020695a
+       SIOCSLOWAT                     = 0x80047302
+       SIOCSPGRP                      = 0x80047308
+       SIOCSTUNFIB                    = 0x8020695f
+       SOCK_CLOEXEC                   = 0x10000000
+       SOCK_DGRAM                     = 0x2
+       SOCK_MAXADDRLEN                = 0xff
+       SOCK_NONBLOCK                  = 0x20000000
+       SOCK_RAW                       = 0x3
+       SOCK_RDM                       = 0x4
+       SOCK_SEQPACKET                 = 0x5
+       SOCK_STREAM                    = 0x1
+       SOL_SOCKET                     = 0xffff
+       SOMAXCONN                      = 0x80
+       SO_ACCEPTCONN                  = 0x2
+       SO_ACCEPTFILTER                = 0x1000
+       SO_BINTIME                     = 0x2000
+       SO_BROADCAST                   = 0x20
+       SO_DEBUG                       = 0x1
+       SO_DONTROUTE                   = 0x10
+       SO_ERROR                       = 0x1007
+       SO_KEEPALIVE                   = 0x8
+       SO_LABEL                       = 0x1009
+       SO_LINGER                      = 0x80
+       SO_LISTENINCQLEN               = 0x1013
+       SO_LISTENQLEN                  = 0x1012
+       SO_LISTENQLIMIT                = 0x1011
+       SO_NOSIGPIPE                   = 0x800
+       SO_NO_DDP                      = 0x8000
+       SO_NO_OFFLOAD                  = 0x4000
+       SO_OOBINLINE                   = 0x100
+       SO_PEERLABEL                   = 0x1010
+       SO_PROTOCOL                    = 0x1016
+       SO_PROTOTYPE                   = 0x1016
+       SO_RCVBUF                      = 0x1002
+       SO_RCVLOWAT                    = 0x1004
+       SO_RCVTIMEO                    = 0x1006
+       SO_REUSEADDR                   = 0x4
+       SO_REUSEPORT                   = 0x200
+       SO_SETFIB                      = 0x1014
+       SO_SNDBUF                      = 0x1001
+       SO_SNDLOWAT                    = 0x1003
+       SO_SNDTIMEO                    = 0x1005
+       SO_TIMESTAMP                   = 0x400
+       SO_TYPE                        = 0x1008
+       SO_USELOOPBACK                 = 0x40
+       SO_USER_COOKIE                 = 0x1015
+       SO_VENDOR                      = 0x80000000
+       TAB0                           = 0x0
+       TAB3                           = 0x4
+       TABDLY                         = 0x4
+       TCIFLUSH                       = 0x1
+       TCIOFF                         = 0x3
+       TCIOFLUSH                      = 0x3
+       TCION                          = 0x4
+       TCOFLUSH                       = 0x2
+       TCOOFF                         = 0x1
+       TCOON                          = 0x2
+       TCP_CA_NAME_MAX                = 0x10
+       TCP_CCALGOOPT                  = 0x41
+       TCP_CONGESTION                 = 0x40
+       TCP_FASTOPEN                   = 0x401
+       TCP_FUNCTION_BLK               = 0x2000
+       TCP_FUNCTION_NAME_LEN_MAX      = 0x20
+       TCP_INFO                       = 0x20
+       TCP_KEEPCNT                    = 0x400
+       TCP_KEEPIDLE                   = 0x100
+       TCP_KEEPINIT                   = 0x80
+       TCP_KEEPINTVL                  = 0x200
+       TCP_MAXBURST                   = 0x4
+       TCP_MAXHLEN                    = 0x3c
+       TCP_MAXOLEN                    = 0x28
+       TCP_MAXSEG                     = 0x2
+       TCP_MAXWIN                     = 0xffff
+       TCP_MAX_SACK                   = 0x4
+       TCP_MAX_WINSHIFT               = 0xe
+       TCP_MD5SIG                     = 0x10
+       TCP_MINMSS                     = 0xd8
+       TCP_MSS                        = 0x218
+       TCP_NODELAY                    = 0x1
+       TCP_NOOPT                      = 0x8
+       TCP_NOPUSH                     = 0x4
+       TCP_PCAP_IN                    = 0x1000
+       TCP_PCAP_OUT                   = 0x800
+       TCP_VENDOR                     = 0x80000000
+       TCSAFLUSH                      = 0x2
+       TIOCCBRK                       = 0x2000747a
+       TIOCCDTR                       = 0x20007478
+       TIOCCONS                       = 0x80047462
+       TIOCDRAIN                      = 0x2000745e
+       TIOCEXCL                       = 0x2000740d
+       TIOCEXT                        = 0x80047460
+       TIOCFLUSH                      = 0x80047410
+       TIOCGDRAINWAIT                 = 0x40047456
+       TIOCGETA                       = 0x402c7413
+       TIOCGETD                       = 0x4004741a
+       TIOCGPGRP                      = 0x40047477
+       TIOCGPTN                       = 0x4004740f
+       TIOCGSID                       = 0x40047463
+       TIOCGWINSZ                     = 0x40087468
+       TIOCMBIC                       = 0x8004746b
+       TIOCMBIS                       = 0x8004746c
+       TIOCMGDTRWAIT                  = 0x4004745a
+       TIOCMGET                       = 0x4004746a
+       TIOCMSDTRWAIT                  = 0x8004745b
+       TIOCMSET                       = 0x8004746d
+       TIOCM_CAR                      = 0x40
+       TIOCM_CD                       = 0x40
+       TIOCM_CTS                      = 0x20
+       TIOCM_DCD                      = 0x40
+       TIOCM_DSR                      = 0x100
+       TIOCM_DTR                      = 0x2
+       TIOCM_LE                       = 0x1
+       TIOCM_RI                       = 0x80
+       TIOCM_RNG                      = 0x80
+       TIOCM_RTS                      = 0x4
+       TIOCM_SR                       = 0x10
+       TIOCM_ST                       = 0x8
+       TIOCNOTTY                      = 0x20007471
+       TIOCNXCL                       = 0x2000740e
+       TIOCOUTQ                       = 0x40047473
+       TIOCPKT                        = 0x80047470
+       TIOCPKT_DATA                   = 0x0
+       TIOCPKT_DOSTOP                 = 0x20
+       TIOCPKT_FLUSHREAD              = 0x1
+       TIOCPKT_FLUSHWRITE             = 0x2
+       TIOCPKT_IOCTL                  = 0x40
+       TIOCPKT_NOSTOP                 = 0x10
+       TIOCPKT_START                  = 0x8
+       TIOCPKT_STOP                   = 0x4
+       TIOCPTMASTER                   = 0x2000741c
+       TIOCSBRK                       = 0x2000747b
+       TIOCSCTTY                      = 0x20007461
+       TIOCSDRAINWAIT                 = 0x80047457
+       TIOCSDTR                       = 0x20007479
+       TIOCSETA                       = 0x802c7414
+       TIOCSETAF                      = 0x802c7416
+       TIOCSETAW                      = 0x802c7415
+       TIOCSETD                       = 0x8004741b
+       TIOCSIG                        = 0x2004745f
+       TIOCSPGRP                      = 0x80047476
+       TIOCSTART                      = 0x2000746e
+       TIOCSTAT                       = 0x20007465
+       TIOCSTI                        = 0x80017472
+       TIOCSTOP                       = 0x2000746f
+       TIOCSWINSZ                     = 0x80087467
+       TIOCTIMESTAMP                  = 0x40107459
+       TIOCUCNTL                      = 0x80047466
+       TOSTOP                         = 0x400000
+       VDISCARD                       = 0xf
+       VDSUSP                         = 0xb
+       VEOF                           = 0x0
+       VEOL                           = 0x1
+       VEOL2                          = 0x2
+       VERASE                         = 0x3
+       VERASE2                        = 0x7
+       VINTR                          = 0x8
+       VKILL                          = 0x5
+       VLNEXT                         = 0xe
+       VMIN                           = 0x10
+       VQUIT                          = 0x9
+       VREPRINT                       = 0x6
+       VSTART                         = 0xc
+       VSTATUS                        = 0x12
+       VSTOP                          = 0xd
+       VSUSP                          = 0xa
+       VTIME                          = 0x11
+       VWERASE                        = 0x4
+       WCONTINUED                     = 0x4
+       WCOREFLAG                      = 0x80
+       WEXITED                        = 0x10
+       WLINUXCLONE                    = 0x80000000
+       WNOHANG                        = 0x1
+       WNOWAIT                        = 0x8
+       WSTOPPED                       = 0x2
+       WTRAPPED                       = 0x20
+       WUNTRACED                      = 0x2
+)
+
+// Errors
+const (
+       E2BIG           = syscall.Errno(0x7)
+       EACCES          = syscall.Errno(0xd)
+       EADDRINUSE      = syscall.Errno(0x30)
+       EADDRNOTAVAIL   = syscall.Errno(0x31)
+       EAFNOSUPPORT    = syscall.Errno(0x2f)
+       EAGAIN          = syscall.Errno(0x23)
+       EALREADY        = syscall.Errno(0x25)
+       EAUTH           = syscall.Errno(0x50)
+       EBADF           = syscall.Errno(0x9)
+       EBADMSG         = syscall.Errno(0x59)
+       EBADRPC         = syscall.Errno(0x48)
+       EBUSY           = syscall.Errno(0x10)
+       ECANCELED       = syscall.Errno(0x55)
+       ECAPMODE        = syscall.Errno(0x5e)
+       ECHILD          = syscall.Errno(0xa)
+       ECONNABORTED    = syscall.Errno(0x35)
+       ECONNREFUSED    = syscall.Errno(0x3d)
+       ECONNRESET      = syscall.Errno(0x36)
+       EDEADLK         = syscall.Errno(0xb)
+       EDESTADDRREQ    = syscall.Errno(0x27)
+       EDOM            = syscall.Errno(0x21)
+       EDOOFUS         = syscall.Errno(0x58)
+       EDQUOT          = syscall.Errno(0x45)
+       EEXIST          = syscall.Errno(0x11)
+       EFAULT          = syscall.Errno(0xe)
+       EFBIG           = syscall.Errno(0x1b)
+       EFTYPE          = syscall.Errno(0x4f)
+       EHOSTDOWN       = syscall.Errno(0x40)
+       EHOSTUNREACH    = syscall.Errno(0x41)
+       EIDRM           = syscall.Errno(0x52)
+       EILSEQ          = syscall.Errno(0x56)
+       EINPROGRESS     = syscall.Errno(0x24)
+       EINTR           = syscall.Errno(0x4)
+       EINVAL          = syscall.Errno(0x16)
+       EIO             = syscall.Errno(0x5)
+       EISCONN         = syscall.Errno(0x38)
+       EISDIR          = syscall.Errno(0x15)
+       ELAST           = syscall.Errno(0x60)
+       ELOOP           = syscall.Errno(0x3e)
+       EMFILE          = syscall.Errno(0x18)
+       EMLINK          = syscall.Errno(0x1f)
+       EMSGSIZE        = syscall.Errno(0x28)
+       EMULTIHOP       = syscall.Errno(0x5a)
+       ENAMETOOLONG    = syscall.Errno(0x3f)
+       ENEEDAUTH       = syscall.Errno(0x51)
+       ENETDOWN        = syscall.Errno(0x32)
+       ENETRESET       = syscall.Errno(0x34)
+       ENETUNREACH     = syscall.Errno(0x33)
+       ENFILE          = syscall.Errno(0x17)
+       ENOATTR         = syscall.Errno(0x57)
+       ENOBUFS         = syscall.Errno(0x37)
+       ENODEV          = syscall.Errno(0x13)
+       ENOENT          = syscall.Errno(0x2)
+       ENOEXEC         = syscall.Errno(0x8)
+       ENOLCK          = syscall.Errno(0x4d)
+       ENOLINK         = syscall.Errno(0x5b)
+       ENOMEM          = syscall.Errno(0xc)
+       ENOMSG          = syscall.Errno(0x53)
+       ENOPROTOOPT     = syscall.Errno(0x2a)
+       ENOSPC          = syscall.Errno(0x1c)
+       ENOSYS          = syscall.Errno(0x4e)
+       ENOTBLK         = syscall.Errno(0xf)
+       ENOTCAPABLE     = syscall.Errno(0x5d)
+       ENOTCONN        = syscall.Errno(0x39)
+       ENOTDIR         = syscall.Errno(0x14)
+       ENOTEMPTY       = syscall.Errno(0x42)
+       ENOTRECOVERABLE = syscall.Errno(0x5f)
+       ENOTSOCK        = syscall.Errno(0x26)
+       ENOTSUP         = syscall.Errno(0x2d)
+       ENOTTY          = syscall.Errno(0x19)
+       ENXIO           = syscall.Errno(0x6)
+       EOPNOTSUPP      = syscall.Errno(0x2d)
+       EOVERFLOW       = syscall.Errno(0x54)
+       EOWNERDEAD      = syscall.Errno(0x60)
+       EPERM           = syscall.Errno(0x1)
+       EPFNOSUPPORT    = syscall.Errno(0x2e)
+       EPIPE           = syscall.Errno(0x20)
+       EPROCLIM        = syscall.Errno(0x43)
+       EPROCUNAVAIL    = syscall.Errno(0x4c)
+       EPROGMISMATCH   = syscall.Errno(0x4b)
+       EPROGUNAVAIL    = syscall.Errno(0x4a)
+       EPROTO          = syscall.Errno(0x5c)
+       EPROTONOSUPPORT = syscall.Errno(0x2b)
+       EPROTOTYPE      = syscall.Errno(0x29)
+       ERANGE          = syscall.Errno(0x22)
+       EREMOTE         = syscall.Errno(0x47)
+       EROFS           = syscall.Errno(0x1e)
+       ERPCMISMATCH    = syscall.Errno(0x49)
+       ESHUTDOWN       = syscall.Errno(0x3a)
+       ESOCKTNOSUPPORT = syscall.Errno(0x2c)
+       ESPIPE          = syscall.Errno(0x1d)
+       ESRCH           = syscall.Errno(0x3)
+       ESTALE          = syscall.Errno(0x46)
+       ETIMEDOUT       = syscall.Errno(0x3c)
+       ETOOMANYREFS    = syscall.Errno(0x3b)
+       ETXTBSY         = syscall.Errno(0x1a)
+       EUSERS          = syscall.Errno(0x44)
+       EWOULDBLOCK     = syscall.Errno(0x23)
+       EXDEV           = syscall.Errno(0x12)
+)
+
+// Signals
+const (
+       SIGABRT   = syscall.Signal(0x6)
+       SIGALRM   = syscall.Signal(0xe)
+       SIGBUS    = syscall.Signal(0xa)
+       SIGCHLD   = syscall.Signal(0x14)
+       SIGCONT   = syscall.Signal(0x13)
+       SIGEMT    = syscall.Signal(0x7)
+       SIGFPE    = syscall.Signal(0x8)
+       SIGHUP    = syscall.Signal(0x1)
+       SIGILL    = syscall.Signal(0x4)
+       SIGINFO   = syscall.Signal(0x1d)
+       SIGINT    = syscall.Signal(0x2)
+       SIGIO     = syscall.Signal(0x17)
+       SIGIOT    = syscall.Signal(0x6)
+       SIGKILL   = syscall.Signal(0x9)
+       SIGLIBRT  = syscall.Signal(0x21)
+       SIGLWP    = syscall.Signal(0x20)
+       SIGPIPE   = syscall.Signal(0xd)
+       SIGPROF   = syscall.Signal(0x1b)
+       SIGQUIT   = syscall.Signal(0x3)
+       SIGSEGV   = syscall.Signal(0xb)
+       SIGSTOP   = syscall.Signal(0x11)
+       SIGSYS    = syscall.Signal(0xc)
+       SIGTERM   = syscall.Signal(0xf)
+       SIGTHR    = syscall.Signal(0x20)
+       SIGTRAP   = syscall.Signal(0x5)
+       SIGTSTP   = syscall.Signal(0x12)
+       SIGTTIN   = syscall.Signal(0x15)
+       SIGTTOU   = syscall.Signal(0x16)
+       SIGURG    = syscall.Signal(0x10)
+       SIGUSR1   = syscall.Signal(0x1e)
+       SIGUSR2   = syscall.Signal(0x1f)
+       SIGVTALRM = syscall.Signal(0x1a)
+       SIGWINCH  = syscall.Signal(0x1c)
+       SIGXCPU   = syscall.Signal(0x18)
+       SIGXFSZ   = syscall.Signal(0x19)
+)
+
+// Error table
+var errors = [...]string{
+       1:  "operation not permitted",
+       2:  "no such file or directory",
+       3:  "no such process",
+       4:  "interrupted system call",
+       5:  "input/output error",
+       6:  "device not configured",
+       7:  "argument list too long",
+       8:  "exec format error",
+       9:  "bad file descriptor",
+       10: "no child processes",
+       11: "resource deadlock avoided",
+       12: "cannot allocate memory",
+       13: "permission denied",
+       14: "bad address",
+       15: "block device required",
+       16: "device busy",
+       17: "file exists",
+       18: "cross-device link",
+       19: "operation not supported by device",
+       20: "not a directory",
+       21: "is a directory",
+       22: "invalid argument",
+       23: "too many open files in system",
+       24: "too many open files",
+       25: "inappropriate ioctl for device",
+       26: "text file busy",
+       27: "file too large",
+       28: "no space left on device",
+       29: "illegal seek",
+       30: "read-only file system",
+       31: "too many links",
+       32: "broken pipe",
+       33: "numerical argument out of domain",
+       34: "result too large",
+       35: "resource temporarily unavailable",
+       36: "operation now in progress",
+       37: "operation already in progress",
+       38: "socket operation on non-socket",
+       39: "destination address required",
+       40: "message too long",
+       41: "protocol wrong type for socket",
+       42: "protocol not available",
+       43: "protocol not supported",
+       44: "socket type not supported",
+       45: "operation not supported",
+       46: "protocol family not supported",
+       47: "address family not supported by protocol family",
+       48: "address already in use",
+       49: "can't assign requested address",
+       50: "network is down",
+       51: "network is unreachable",
+       52: "network dropped connection on reset",
+       53: "software caused connection abort",
+       54: "connection reset by peer",
+       55: "no buffer space available",
+       56: "socket is already connected",
+       57: "socket is not connected",
+       58: "can't send after socket shutdown",
+       59: "too many references: can't splice",
+       60: "operation timed out",
+       61: "connection refused",
+       62: "too many levels of symbolic links",
+       63: "file name too long",
+       64: "host is down",
+       65: "no route to host",
+       66: "directory not empty",
+       67: "too many processes",
+       68: "too many users",
+       69: "disc quota exceeded",
+       70: "stale NFS file handle",
+       71: "too many levels of remote in path",
+       72: "RPC struct is bad",
+       73: "RPC version wrong",
+       74: "RPC prog. not avail",
+       75: "program version wrong",
+       76: "bad procedure for program",
+       77: "no locks available",
+       78: "function not implemented",
+       79: "inappropriate file type or format",
+       80: "authentication error",
+       81: "need authenticator",
+       82: "identifier removed",
+       83: "no message of desired type",
+       84: "value too large to be stored in data type",
+       85: "operation canceled",
+       86: "illegal byte sequence",
+       87: "attribute not found",
+       88: "programming error",
+       89: "bad message",
+       90: "multihop attempted",
+       91: "link has been severed",
+       92: "protocol error",
+       93: "capabilities insufficient",
+       94: "not permitted in capability mode",
+       95: "state not recoverable",
+       96: "previous owner died",
+}
+
+// Signal table
+var signals = [...]string{
+       1:  "hangup",
+       2:  "interrupt",
+       3:  "quit",
+       4:  "illegal instruction",
+       5:  "trace/BPT trap",
+       6:  "abort trap",
+       7:  "EMT trap",
+       8:  "floating point exception",
+       9:  "killed",
+       10: "bus error",
+       11: "segmentation fault",
+       12: "bad system call",
+       13: "broken pipe",
+       14: "alarm clock",
+       15: "terminated",
+       16: "urgent I/O condition",
+       17: "suspended (signal)",
+       18: "suspended",
+       19: "continued",
+       20: "child exited",
+       21: "stopped (tty input)",
+       22: "stopped (tty output)",
+       23: "I/O possible",
+       24: "cputime limit exceeded",
+       25: "filesize limit exceeded",
+       26: "virtual timer expired",
+       27: "profiling timer expired",
+       28: "window size changes",
+       29: "information request",
+       30: "user defined signal 1",
+       31: "user defined signal 2",
+       32: "unknown signal",
+       33: "unknown signal",
+}
diff --git a/vendor/golang.org/x/sys/unix/zerrors_freebsd_arm.go b/vendor/golang.org/x/sys/unix/zerrors_freebsd_arm.go
new file mode 100644 (file)
index 0000000..c5c6f13
--- /dev/null
@@ -0,0 +1,1715 @@
+// mkerrors.sh
+// Code generated by the command above; see README.md. DO NOT EDIT.
+
+// +build arm,freebsd
+
+// Created by cgo -godefs - DO NOT EDIT
+// cgo -godefs -- _const.go
+
+package unix
+
+import "syscall"
+
+const (
+       AF_APPLETALK                   = 0x10
+       AF_ARP                         = 0x23
+       AF_ATM                         = 0x1e
+       AF_BLUETOOTH                   = 0x24
+       AF_CCITT                       = 0xa
+       AF_CHAOS                       = 0x5
+       AF_CNT                         = 0x15
+       AF_COIP                        = 0x14
+       AF_DATAKIT                     = 0x9
+       AF_DECnet                      = 0xc
+       AF_DLI                         = 0xd
+       AF_E164                        = 0x1a
+       AF_ECMA                        = 0x8
+       AF_HYLINK                      = 0xf
+       AF_IEEE80211                   = 0x25
+       AF_IMPLINK                     = 0x3
+       AF_INET                        = 0x2
+       AF_INET6                       = 0x1c
+       AF_INET6_SDP                   = 0x2a
+       AF_INET_SDP                    = 0x28
+       AF_IPX                         = 0x17
+       AF_ISDN                        = 0x1a
+       AF_ISO                         = 0x7
+       AF_LAT                         = 0xe
+       AF_LINK                        = 0x12
+       AF_LOCAL                       = 0x1
+       AF_MAX                         = 0x2a
+       AF_NATM                        = 0x1d
+       AF_NETBIOS                     = 0x6
+       AF_NETGRAPH                    = 0x20
+       AF_OSI                         = 0x7
+       AF_PUP                         = 0x4
+       AF_ROUTE                       = 0x11
+       AF_SCLUSTER                    = 0x22
+       AF_SIP                         = 0x18
+       AF_SLOW                        = 0x21
+       AF_SNA                         = 0xb
+       AF_UNIX                        = 0x1
+       AF_UNSPEC                      = 0x0
+       AF_VENDOR00                    = 0x27
+       AF_VENDOR01                    = 0x29
+       AF_VENDOR02                    = 0x2b
+       AF_VENDOR03                    = 0x2d
+       AF_VENDOR04                    = 0x2f
+       AF_VENDOR05                    = 0x31
+       AF_VENDOR06                    = 0x33
+       AF_VENDOR07                    = 0x35
+       AF_VENDOR08                    = 0x37
+       AF_VENDOR09                    = 0x39
+       AF_VENDOR10                    = 0x3b
+       AF_VENDOR11                    = 0x3d
+       AF_VENDOR12                    = 0x3f
+       AF_VENDOR13                    = 0x41
+       AF_VENDOR14                    = 0x43
+       AF_VENDOR15                    = 0x45
+       AF_VENDOR16                    = 0x47
+       AF_VENDOR17                    = 0x49
+       AF_VENDOR18                    = 0x4b
+       AF_VENDOR19                    = 0x4d
+       AF_VENDOR20                    = 0x4f
+       AF_VENDOR21                    = 0x51
+       AF_VENDOR22                    = 0x53
+       AF_VENDOR23                    = 0x55
+       AF_VENDOR24                    = 0x57
+       AF_VENDOR25                    = 0x59
+       AF_VENDOR26                    = 0x5b
+       AF_VENDOR27                    = 0x5d
+       AF_VENDOR28                    = 0x5f
+       AF_VENDOR29                    = 0x61
+       AF_VENDOR30                    = 0x63
+       AF_VENDOR31                    = 0x65
+       AF_VENDOR32                    = 0x67
+       AF_VENDOR33                    = 0x69
+       AF_VENDOR34                    = 0x6b
+       AF_VENDOR35                    = 0x6d
+       AF_VENDOR36                    = 0x6f
+       AF_VENDOR37                    = 0x71
+       AF_VENDOR38                    = 0x73
+       AF_VENDOR39                    = 0x75
+       AF_VENDOR40                    = 0x77
+       AF_VENDOR41                    = 0x79
+       AF_VENDOR42                    = 0x7b
+       AF_VENDOR43                    = 0x7d
+       AF_VENDOR44                    = 0x7f
+       AF_VENDOR45                    = 0x81
+       AF_VENDOR46                    = 0x83
+       AF_VENDOR47                    = 0x85
+       ALTWERASE                      = 0x200
+       B0                             = 0x0
+       B110                           = 0x6e
+       B115200                        = 0x1c200
+       B1200                          = 0x4b0
+       B134                           = 0x86
+       B14400                         = 0x3840
+       B150                           = 0x96
+       B1800                          = 0x708
+       B19200                         = 0x4b00
+       B200                           = 0xc8
+       B230400                        = 0x38400
+       B2400                          = 0x960
+       B28800                         = 0x7080
+       B300                           = 0x12c
+       B38400                         = 0x9600
+       B460800                        = 0x70800
+       B4800                          = 0x12c0
+       B50                            = 0x32
+       B57600                         = 0xe100
+       B600                           = 0x258
+       B7200                          = 0x1c20
+       B75                            = 0x4b
+       B76800                         = 0x12c00
+       B921600                        = 0xe1000
+       B9600                          = 0x2580
+       BIOCFEEDBACK                   = 0x8004427c
+       BIOCFLUSH                      = 0x20004268
+       BIOCGBLEN                      = 0x40044266
+       BIOCGDIRECTION                 = 0x40044276
+       BIOCGDLT                       = 0x4004426a
+       BIOCGDLTLIST                   = 0xc0084279
+       BIOCGETBUFMODE                 = 0x4004427d
+       BIOCGETIF                      = 0x4020426b
+       BIOCGETZMAX                    = 0x4004427f
+       BIOCGHDRCMPLT                  = 0x40044274
+       BIOCGRSIG                      = 0x40044272
+       BIOCGRTIMEOUT                  = 0x4010426e
+       BIOCGSEESENT                   = 0x40044276
+       BIOCGSTATS                     = 0x4008426f
+       BIOCGTSTAMP                    = 0x40044283
+       BIOCIMMEDIATE                  = 0x80044270
+       BIOCLOCK                       = 0x2000427a
+       BIOCPROMISC                    = 0x20004269
+       BIOCROTZBUF                    = 0x400c4280
+       BIOCSBLEN                      = 0xc0044266
+       BIOCSDIRECTION                 = 0x80044277
+       BIOCSDLT                       = 0x80044278
+       BIOCSETBUFMODE                 = 0x8004427e
+       BIOCSETF                       = 0x80084267
+       BIOCSETFNR                     = 0x80084282
+       BIOCSETIF                      = 0x8020426c
+       BIOCSETWF                      = 0x8008427b
+       BIOCSETZBUF                    = 0x800c4281
+       BIOCSHDRCMPLT                  = 0x80044275
+       BIOCSRSIG                      = 0x80044273
+       BIOCSRTIMEOUT                  = 0x8010426d
+       BIOCSSEESENT                   = 0x80044277
+       BIOCSTSTAMP                    = 0x80044284
+       BIOCVERSION                    = 0x40044271
+       BPF_A                          = 0x10
+       BPF_ABS                        = 0x20
+       BPF_ADD                        = 0x0
+       BPF_ALIGNMENT                  = 0x4
+       BPF_ALU                        = 0x4
+       BPF_AND                        = 0x50
+       BPF_B                          = 0x10
+       BPF_BUFMODE_BUFFER             = 0x1
+       BPF_BUFMODE_ZBUF               = 0x2
+       BPF_DIV                        = 0x30
+       BPF_H                          = 0x8
+       BPF_IMM                        = 0x0
+       BPF_IND                        = 0x40
+       BPF_JA                         = 0x0
+       BPF_JEQ                        = 0x10
+       BPF_JGE                        = 0x30
+       BPF_JGT                        = 0x20
+       BPF_JMP                        = 0x5
+       BPF_JSET                       = 0x40
+       BPF_K                          = 0x0
+       BPF_LD                         = 0x0
+       BPF_LDX                        = 0x1
+       BPF_LEN                        = 0x80
+       BPF_LSH                        = 0x60
+       BPF_MAJOR_VERSION              = 0x1
+       BPF_MAXBUFSIZE                 = 0x80000
+       BPF_MAXINSNS                   = 0x200
+       BPF_MEM                        = 0x60
+       BPF_MEMWORDS                   = 0x10
+       BPF_MINBUFSIZE                 = 0x20
+       BPF_MINOR_VERSION              = 0x1
+       BPF_MISC                       = 0x7
+       BPF_MOD                        = 0x90
+       BPF_MSH                        = 0xa0
+       BPF_MUL                        = 0x20
+       BPF_NEG                        = 0x80
+       BPF_OR                         = 0x40
+       BPF_RELEASE                    = 0x30bb6
+       BPF_RET                        = 0x6
+       BPF_RSH                        = 0x70
+       BPF_ST                         = 0x2
+       BPF_STX                        = 0x3
+       BPF_SUB                        = 0x10
+       BPF_TAX                        = 0x0
+       BPF_TXA                        = 0x80
+       BPF_T_BINTIME                  = 0x2
+       BPF_T_BINTIME_FAST             = 0x102
+       BPF_T_BINTIME_MONOTONIC        = 0x202
+       BPF_T_BINTIME_MONOTONIC_FAST   = 0x302
+       BPF_T_FAST                     = 0x100
+       BPF_T_FLAG_MASK                = 0x300
+       BPF_T_FORMAT_MASK              = 0x3
+       BPF_T_MICROTIME                = 0x0
+       BPF_T_MICROTIME_FAST           = 0x100
+       BPF_T_MICROTIME_MONOTONIC      = 0x200
+       BPF_T_MICROTIME_MONOTONIC_FAST = 0x300
+       BPF_T_MONOTONIC                = 0x200
+       BPF_T_MONOTONIC_FAST           = 0x300
+       BPF_T_NANOTIME                 = 0x1
+       BPF_T_NANOTIME_FAST            = 0x101
+       BPF_T_NANOTIME_MONOTONIC       = 0x201
+       BPF_T_NANOTIME_MONOTONIC_FAST  = 0x301
+       BPF_T_NONE                     = 0x3
+       BPF_T_NORMAL                   = 0x0
+       BPF_W                          = 0x0
+       BPF_X                          = 0x8
+       BPF_XOR                        = 0xa0
+       BRKINT                         = 0x2
+       CAP_ACCEPT                     = 0x200000020000000
+       CAP_ACL_CHECK                  = 0x400000000010000
+       CAP_ACL_DELETE                 = 0x400000000020000
+       CAP_ACL_GET                    = 0x400000000040000
+       CAP_ACL_SET                    = 0x400000000080000
+       CAP_ALL0                       = 0x20007ffffffffff
+       CAP_ALL1                       = 0x4000000001fffff
+       CAP_BIND                       = 0x200000040000000
+       CAP_BINDAT                     = 0x200008000000400
+       CAP_CHFLAGSAT                  = 0x200000000001400
+       CAP_CONNECT                    = 0x200000080000000
+       CAP_CONNECTAT                  = 0x200010000000400
+       CAP_CREATE                     = 0x200000000000040
+       CAP_EVENT                      = 0x400000000000020
+       CAP_EXTATTR_DELETE             = 0x400000000001000
+       CAP_EXTATTR_GET                = 0x400000000002000
+       CAP_EXTATTR_LIST               = 0x400000000004000
+       CAP_EXTATTR_SET                = 0x400000000008000
+       CAP_FCHDIR                     = 0x200000000000800
+       CAP_FCHFLAGS                   = 0x200000000001000
+       CAP_FCHMOD                     = 0x200000000002000
+       CAP_FCHMODAT                   = 0x200000000002400
+       CAP_FCHOWN                     = 0x200000000004000
+       CAP_FCHOWNAT                   = 0x200000000004400
+       CAP_FCNTL                      = 0x200000000008000
+       CAP_FCNTL_ALL                  = 0x78
+       CAP_FCNTL_GETFL                = 0x8
+       CAP_FCNTL_GETOWN               = 0x20
+       CAP_FCNTL_SETFL                = 0x10
+       CAP_FCNTL_SETOWN               = 0x40
+       CAP_FEXECVE                    = 0x200000000000080
+       CAP_FLOCK                      = 0x200000000010000
+       CAP_FPATHCONF                  = 0x200000000020000
+       CAP_FSCK                       = 0x200000000040000
+       CAP_FSTAT                      = 0x200000000080000
+       CAP_FSTATAT                    = 0x200000000080400
+       CAP_FSTATFS                    = 0x200000000100000
+       CAP_FSYNC                      = 0x200000000000100
+       CAP_FTRUNCATE                  = 0x200000000000200
+       CAP_FUTIMES                    = 0x200000000200000
+       CAP_FUTIMESAT                  = 0x200000000200400
+       CAP_GETPEERNAME                = 0x200000100000000
+       CAP_GETSOCKNAME                = 0x200000200000000
+       CAP_GETSOCKOPT                 = 0x200000400000000
+       CAP_IOCTL                      = 0x400000000000080
+       CAP_IOCTLS_ALL                 = 0x7fffffff
+       CAP_KQUEUE                     = 0x400000000100040
+       CAP_KQUEUE_CHANGE              = 0x400000000100000
+       CAP_KQUEUE_EVENT               = 0x400000000000040
+       CAP_LINKAT_SOURCE              = 0x200020000000400
+       CAP_LINKAT_TARGET              = 0x200000000400400
+       CAP_LISTEN                     = 0x200000800000000
+       CAP_LOOKUP                     = 0x200000000000400
+       CAP_MAC_GET                    = 0x400000000000001
+       CAP_MAC_SET                    = 0x400000000000002
+       CAP_MKDIRAT                    = 0x200000000800400
+       CAP_MKFIFOAT                   = 0x200000001000400
+       CAP_MKNODAT                    = 0x200000002000400
+       CAP_MMAP                       = 0x200000000000010
+       CAP_MMAP_R                     = 0x20000000000001d
+       CAP_MMAP_RW                    = 0x20000000000001f
+       CAP_MMAP_RWX                   = 0x20000000000003f
+       CAP_MMAP_RX                    = 0x20000000000003d
+       CAP_MMAP_W                     = 0x20000000000001e
+       CAP_MMAP_WX                    = 0x20000000000003e
+       CAP_MMAP_X                     = 0x20000000000003c
+       CAP_PDGETPID                   = 0x400000000000200
+       CAP_PDKILL                     = 0x400000000000800
+       CAP_PDWAIT                     = 0x400000000000400
+       CAP_PEELOFF                    = 0x200001000000000
+       CAP_POLL_EVENT                 = 0x400000000000020
+       CAP_PREAD                      = 0x20000000000000d
+       CAP_PWRITE                     = 0x20000000000000e
+       CAP_READ                       = 0x200000000000001
+       CAP_RECV                       = 0x200000000000001
+       CAP_RENAMEAT_SOURCE            = 0x200000004000400
+       CAP_RENAMEAT_TARGET            = 0x200040000000400
+       CAP_RIGHTS_VERSION             = 0x0
+       CAP_RIGHTS_VERSION_00          = 0x0
+       CAP_SEEK                       = 0x20000000000000c
+       CAP_SEEK_TELL                  = 0x200000000000004
+       CAP_SEM_GETVALUE               = 0x400000000000004
+       CAP_SEM_POST                   = 0x400000000000008
+       CAP_SEM_WAIT                   = 0x400000000000010
+       CAP_SEND                       = 0x200000000000002
+       CAP_SETSOCKOPT                 = 0x200002000000000
+       CAP_SHUTDOWN                   = 0x200004000000000
+       CAP_SOCK_CLIENT                = 0x200007780000003
+       CAP_SOCK_SERVER                = 0x200007f60000003
+       CAP_SYMLINKAT                  = 0x200000008000400
+       CAP_TTYHOOK                    = 0x400000000000100
+       CAP_UNLINKAT                   = 0x200000010000400
+       CAP_UNUSED0_44                 = 0x200080000000000
+       CAP_UNUSED0_57                 = 0x300000000000000
+       CAP_UNUSED1_22                 = 0x400000000200000
+       CAP_UNUSED1_57                 = 0x500000000000000
+       CAP_WRITE                      = 0x200000000000002
+       CFLUSH                         = 0xf
+       CLOCAL                         = 0x8000
+       CLOCK_MONOTONIC                = 0x4
+       CLOCK_MONOTONIC_FAST           = 0xc
+       CLOCK_MONOTONIC_PRECISE        = 0xb
+       CLOCK_PROCESS_CPUTIME_ID       = 0xf
+       CLOCK_PROF                     = 0x2
+       CLOCK_REALTIME                 = 0x0
+       CLOCK_REALTIME_FAST            = 0xa
+       CLOCK_REALTIME_PRECISE         = 0x9
+       CLOCK_SECOND                   = 0xd
+       CLOCK_THREAD_CPUTIME_ID        = 0xe
+       CLOCK_UPTIME                   = 0x5
+       CLOCK_UPTIME_FAST              = 0x8
+       CLOCK_UPTIME_PRECISE           = 0x7
+       CLOCK_VIRTUAL                  = 0x1
+       CREAD                          = 0x800
+       CRTSCTS                        = 0x30000
+       CS5                            = 0x0
+       CS6                            = 0x100
+       CS7                            = 0x200
+       CS8                            = 0x300
+       CSIZE                          = 0x300
+       CSTART                         = 0x11
+       CSTATUS                        = 0x14
+       CSTOP                          = 0x13
+       CSTOPB                         = 0x400
+       CSUSP                          = 0x1a
+       CTL_MAXNAME                    = 0x18
+       CTL_NET                        = 0x4
+       DLT_A429                       = 0xb8
+       DLT_A653_ICM                   = 0xb9
+       DLT_AIRONET_HEADER             = 0x78
+       DLT_AOS                        = 0xde
+       DLT_APPLE_IP_OVER_IEEE1394     = 0x8a
+       DLT_ARCNET                     = 0x7
+       DLT_ARCNET_LINUX               = 0x81
+       DLT_ATM_CLIP                   = 0x13
+       DLT_ATM_RFC1483                = 0xb
+       DLT_AURORA                     = 0x7e
+       DLT_AX25                       = 0x3
+       DLT_AX25_KISS                  = 0xca
+       DLT_BACNET_MS_TP               = 0xa5
+       DLT_BLUETOOTH_BREDR_BB         = 0xff
+       DLT_BLUETOOTH_HCI_H4           = 0xbb
+       DLT_BLUETOOTH_HCI_H4_WITH_PHDR = 0xc9
+       DLT_BLUETOOTH_LE_LL            = 0xfb
+       DLT_BLUETOOTH_LE_LL_WITH_PHDR  = 0x100
+       DLT_BLUETOOTH_LINUX_MONITOR    = 0xfe
+       DLT_CAN20B                     = 0xbe
+       DLT_CAN_SOCKETCAN              = 0xe3
+       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_DOCSIS                     = 0x8f
+       DLT_DVB_CI                     = 0xeb
+       DLT_ECONET                     = 0x73
+       DLT_EN10MB                     = 0x1
+       DLT_EN3MB                      = 0x2
+       DLT_ENC                        = 0x6d
+       DLT_EPON                       = 0x103
+       DLT_ERF                        = 0xc5
+       DLT_ERF_ETH                    = 0xaf
+       DLT_ERF_POS                    = 0xb0
+       DLT_FC_2                       = 0xe0
+       DLT_FC_2_WITH_FRAME_DELIMS     = 0xe1
+       DLT_FDDI                       = 0xa
+       DLT_FLEXRAY                    = 0xd2
+       DLT_FRELAY                     = 0x6b
+       DLT_FRELAY_WITH_DIR            = 0xce
+       DLT_GCOM_SERIAL                = 0xad
+       DLT_GCOM_T1E1                  = 0xac
+       DLT_GPF_F                      = 0xab
+       DLT_GPF_T                      = 0xaa
+       DLT_GPRS_LLC                   = 0xa9
+       DLT_GSMTAP_ABIS                = 0xda
+       DLT_GSMTAP_UM                  = 0xd9
+       DLT_IBM_SN                     = 0x92
+       DLT_IBM_SP                     = 0x91
+       DLT_IEEE802                    = 0x6
+       DLT_IEEE802_11                 = 0x69
+       DLT_IEEE802_11_RADIO           = 0x7f
+       DLT_IEEE802_11_RADIO_AVS       = 0xa3
+       DLT_IEEE802_15_4               = 0xc3
+       DLT_IEEE802_15_4_LINUX         = 0xbf
+       DLT_IEEE802_15_4_NOFCS         = 0xe6
+       DLT_IEEE802_15_4_NONASK_PHY    = 0xd7
+       DLT_IEEE802_16_MAC_CPS         = 0xbc
+       DLT_IEEE802_16_MAC_CPS_RADIO   = 0xc1
+       DLT_INFINIBAND                 = 0xf7
+       DLT_IPFILTER                   = 0x74
+       DLT_IPMB                       = 0xc7
+       DLT_IPMB_LINUX                 = 0xd1
+       DLT_IPMI_HPM_2                 = 0x104
+       DLT_IPNET                      = 0xe2
+       DLT_IPOIB                      = 0xf2
+       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
+       DLT_JUNIPER_CHDLC              = 0xb5
+       DLT_JUNIPER_ES                 = 0x84
+       DLT_JUNIPER_ETHER              = 0xb2
+       DLT_JUNIPER_FIBRECHANNEL       = 0xea
+       DLT_JUNIPER_FRELAY             = 0xb4
+       DLT_JUNIPER_GGSN               = 0x85
+       DLT_JUNIPER_ISM                = 0xc2
+       DLT_JUNIPER_MFR                = 0x86
+       DLT_JUNIPER_MLFR               = 0x83
+       DLT_JUNIPER_MLPPP              = 0x82
+       DLT_JUNIPER_MONITOR            = 0xa4
+       DLT_JUNIPER_PIC_PEER           = 0xae
+       DLT_JUNIPER_PPP                = 0xb3
+       DLT_JUNIPER_PPPOE              = 0xa7
+       DLT_JUNIPER_PPPOE_ATM          = 0xa8
+       DLT_JUNIPER_SERVICES           = 0x88
+       DLT_JUNIPER_SRX_E2E            = 0xe9
+       DLT_JUNIPER_ST                 = 0xc8
+       DLT_JUNIPER_VP                 = 0xb7
+       DLT_JUNIPER_VS                 = 0xe8
+       DLT_LAPB_WITH_DIR              = 0xcf
+       DLT_LAPD                       = 0xcb
+       DLT_LIN                        = 0xd4
+       DLT_LINUX_EVDEV                = 0xd8
+       DLT_LINUX_IRDA                 = 0x90
+       DLT_LINUX_LAPD                 = 0xb1
+       DLT_LINUX_PPP_WITHDIRECTION    = 0xa6
+       DLT_LINUX_SLL                  = 0x71
+       DLT_LOOP                       = 0x6c
+       DLT_LTALK                      = 0x72
+       DLT_MATCHING_MAX               = 0x109
+       DLT_MATCHING_MIN               = 0x68
+       DLT_MFR                        = 0xb6
+       DLT_MOST                       = 0xd3
+       DLT_MPEG_2_TS                  = 0xf3
+       DLT_MPLS                       = 0xdb
+       DLT_MTP2                       = 0x8c
+       DLT_MTP2_WITH_PHDR             = 0x8b
+       DLT_MTP3                       = 0x8d
+       DLT_MUX27010                   = 0xec
+       DLT_NETANALYZER                = 0xf0
+       DLT_NETANALYZER_TRANSPARENT    = 0xf1
+       DLT_NETLINK                    = 0xfd
+       DLT_NFC_LLCP                   = 0xf5
+       DLT_NFLOG                      = 0xef
+       DLT_NG40                       = 0xf4
+       DLT_NULL                       = 0x0
+       DLT_PCI_EXP                    = 0x7d
+       DLT_PFLOG                      = 0x75
+       DLT_PFSYNC                     = 0x79
+       DLT_PKTAP                      = 0x102
+       DLT_PPI                        = 0xc0
+       DLT_PPP                        = 0x9
+       DLT_PPP_BSDOS                  = 0xe
+       DLT_PPP_ETHER                  = 0x33
+       DLT_PPP_PPPD                   = 0xa6
+       DLT_PPP_SERIAL                 = 0x32
+       DLT_PPP_WITH_DIR               = 0xcc
+       DLT_PPP_WITH_DIRECTION         = 0xa6
+       DLT_PRISM_HEADER               = 0x77
+       DLT_PROFIBUS_DL                = 0x101
+       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_SITA                       = 0xc4
+       DLT_SLIP                       = 0x8
+       DLT_SLIP_BSDOS                 = 0xd
+       DLT_STANAG_5066_D_PDU          = 0xed
+       DLT_SUNATM                     = 0x7b
+       DLT_SYMANTEC_FIREWALL          = 0x63
+       DLT_TZSP                       = 0x80
+       DLT_USB                        = 0xba
+       DLT_USBPCAP                    = 0xf9
+       DLT_USB_FREEBSD                = 0xba
+       DLT_USB_LINUX                  = 0xbd
+       DLT_USB_LINUX_MMAPPED          = 0xdc
+       DLT_USER0                      = 0x93
+       DLT_USER1                      = 0x94
+       DLT_USER10                     = 0x9d
+       DLT_USER11                     = 0x9e
+       DLT_USER12                     = 0x9f
+       DLT_USER13                     = 0xa0
+       DLT_USER14                     = 0xa1
+       DLT_USER15                     = 0xa2
+       DLT_USER2                      = 0x95
+       DLT_USER3                      = 0x96
+       DLT_USER4                      = 0x97
+       DLT_USER5                      = 0x98
+       DLT_USER6                      = 0x99
+       DLT_USER7                      = 0x9a
+       DLT_USER8                      = 0x9b
+       DLT_USER9                      = 0x9c
+       DLT_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
+       DT_FIFO                        = 0x1
+       DT_LNK                         = 0xa
+       DT_REG                         = 0x8
+       DT_SOCK                        = 0xc
+       DT_UNKNOWN                     = 0x0
+       DT_WHT                         = 0xe
+       ECHO                           = 0x8
+       ECHOCTL                        = 0x40
+       ECHOE                          = 0x2
+       ECHOK                          = 0x4
+       ECHOKE                         = 0x1
+       ECHONL                         = 0x10
+       ECHOPRT                        = 0x20
+       EVFILT_AIO                     = -0x3
+       EVFILT_FS                      = -0x9
+       EVFILT_LIO                     = -0xa
+       EVFILT_PROC                    = -0x5
+       EVFILT_PROCDESC                = -0x8
+       EVFILT_READ                    = -0x1
+       EVFILT_SENDFILE                = -0xc
+       EVFILT_SIGNAL                  = -0x6
+       EVFILT_SYSCOUNT                = 0xc
+       EVFILT_TIMER                   = -0x7
+       EVFILT_USER                    = -0xb
+       EVFILT_VNODE                   = -0x4
+       EVFILT_WRITE                   = -0x2
+       EV_ADD                         = 0x1
+       EV_CLEAR                       = 0x20
+       EV_DELETE                      = 0x2
+       EV_DISABLE                     = 0x8
+       EV_DISPATCH                    = 0x80
+       EV_DROP                        = 0x1000
+       EV_ENABLE                      = 0x4
+       EV_EOF                         = 0x8000
+       EV_ERROR                       = 0x4000
+       EV_FLAG1                       = 0x2000
+       EV_FLAG2                       = 0x4000
+       EV_FORCEONESHOT                = 0x100
+       EV_ONESHOT                     = 0x10
+       EV_RECEIPT                     = 0x40
+       EV_SYSFLAGS                    = 0xf000
+       EXTA                           = 0x4b00
+       EXTATTR_NAMESPACE_EMPTY        = 0x0
+       EXTATTR_NAMESPACE_SYSTEM       = 0x2
+       EXTATTR_NAMESPACE_USER         = 0x1
+       EXTB                           = 0x9600
+       EXTPROC                        = 0x800
+       FD_CLOEXEC                     = 0x1
+       FD_SETSIZE                     = 0x400
+       FLUSHO                         = 0x800000
+       F_CANCEL                       = 0x5
+       F_DUP2FD                       = 0xa
+       F_DUP2FD_CLOEXEC               = 0x12
+       F_DUPFD                        = 0x0
+       F_DUPFD_CLOEXEC                = 0x11
+       F_GETFD                        = 0x1
+       F_GETFL                        = 0x3
+       F_GETLK                        = 0xb
+       F_GETOWN                       = 0x5
+       F_OGETLK                       = 0x7
+       F_OK                           = 0x0
+       F_OSETLK                       = 0x8
+       F_OSETLKW                      = 0x9
+       F_RDAHEAD                      = 0x10
+       F_RDLCK                        = 0x1
+       F_READAHEAD                    = 0xf
+       F_SETFD                        = 0x2
+       F_SETFL                        = 0x4
+       F_SETLK                        = 0xc
+       F_SETLKW                       = 0xd
+       F_SETLK_REMOTE                 = 0xe
+       F_SETOWN                       = 0x6
+       F_UNLCK                        = 0x2
+       F_UNLCKSYS                     = 0x4
+       F_WRLCK                        = 0x3
+       HUPCL                          = 0x4000
+       ICANON                         = 0x100
+       ICMP6_FILTER                   = 0x12
+       ICRNL                          = 0x100
+       IEXTEN                         = 0x400
+       IFAN_ARRIVAL                   = 0x0
+       IFAN_DEPARTURE                 = 0x1
+       IFF_ALLMULTI                   = 0x200
+       IFF_ALTPHYS                    = 0x4000
+       IFF_BROADCAST                  = 0x2
+       IFF_CANTCHANGE                 = 0x218f52
+       IFF_CANTCONFIG                 = 0x10000
+       IFF_DEBUG                      = 0x4
+       IFF_DRV_OACTIVE                = 0x400
+       IFF_DRV_RUNNING                = 0x40
+       IFF_DYING                      = 0x200000
+       IFF_LINK0                      = 0x1000
+       IFF_LINK1                      = 0x2000
+       IFF_LINK2                      = 0x4000
+       IFF_LOOPBACK                   = 0x8
+       IFF_MONITOR                    = 0x40000
+       IFF_MULTICAST                  = 0x8000
+       IFF_NOARP                      = 0x80
+       IFF_OACTIVE                    = 0x400
+       IFF_POINTOPOINT                = 0x10
+       IFF_PPROMISC                   = 0x20000
+       IFF_PROMISC                    = 0x100
+       IFF_RENAMING                   = 0x400000
+       IFF_RUNNING                    = 0x40
+       IFF_SIMPLEX                    = 0x800
+       IFF_STATICARP                  = 0x80000
+       IFF_UP                         = 0x1
+       IFNAMSIZ                       = 0x10
+       IFT_BRIDGE                     = 0xd1
+       IFT_CARP                       = 0xf8
+       IFT_IEEE1394                   = 0x90
+       IFT_INFINIBAND                 = 0xc7
+       IFT_L2VLAN                     = 0x87
+       IFT_L3IPVLAN                   = 0x88
+       IFT_PPP                        = 0x17
+       IFT_PROPVIRTUAL                = 0x35
+       IGNBRK                         = 0x1
+       IGNCR                          = 0x80
+       IGNPAR                         = 0x4
+       IMAXBEL                        = 0x2000
+       INLCR                          = 0x40
+       INPCK                          = 0x10
+       IN_CLASSA_HOST                 = 0xffffff
+       IN_CLASSA_MAX                  = 0x80
+       IN_CLASSA_NET                  = 0xff000000
+       IN_CLASSA_NSHIFT               = 0x18
+       IN_CLASSB_HOST                 = 0xffff
+       IN_CLASSB_MAX                  = 0x10000
+       IN_CLASSB_NET                  = 0xffff0000
+       IN_CLASSB_NSHIFT               = 0x10
+       IN_CLASSC_HOST                 = 0xff
+       IN_CLASSC_NET                  = 0xffffff00
+       IN_CLASSC_NSHIFT               = 0x8
+       IN_CLASSD_HOST                 = 0xfffffff
+       IN_CLASSD_NET                  = 0xf0000000
+       IN_CLASSD_NSHIFT               = 0x1c
+       IN_LOOPBACKNET                 = 0x7f
+       IN_RFC3021_MASK                = 0xfffffffe
+       IPPROTO_3PC                    = 0x22
+       IPPROTO_ADFS                   = 0x44
+       IPPROTO_AH                     = 0x33
+       IPPROTO_AHIP                   = 0x3d
+       IPPROTO_APES                   = 0x63
+       IPPROTO_ARGUS                  = 0xd
+       IPPROTO_AX25                   = 0x5d
+       IPPROTO_BHA                    = 0x31
+       IPPROTO_BLT                    = 0x1e
+       IPPROTO_BRSATMON               = 0x4c
+       IPPROTO_CARP                   = 0x70
+       IPPROTO_CFTP                   = 0x3e
+       IPPROTO_CHAOS                  = 0x10
+       IPPROTO_CMTP                   = 0x26
+       IPPROTO_CPHB                   = 0x49
+       IPPROTO_CPNX                   = 0x48
+       IPPROTO_DDP                    = 0x25
+       IPPROTO_DGP                    = 0x56
+       IPPROTO_DIVERT                 = 0x102
+       IPPROTO_DONE                   = 0x101
+       IPPROTO_DSTOPTS                = 0x3c
+       IPPROTO_EGP                    = 0x8
+       IPPROTO_EMCON                  = 0xe
+       IPPROTO_ENCAP                  = 0x62
+       IPPROTO_EON                    = 0x50
+       IPPROTO_ESP                    = 0x32
+       IPPROTO_ETHERIP                = 0x61
+       IPPROTO_FRAGMENT               = 0x2c
+       IPPROTO_GGP                    = 0x3
+       IPPROTO_GMTP                   = 0x64
+       IPPROTO_GRE                    = 0x2f
+       IPPROTO_HELLO                  = 0x3f
+       IPPROTO_HIP                    = 0x8b
+       IPPROTO_HMP                    = 0x14
+       IPPROTO_HOPOPTS                = 0x0
+       IPPROTO_ICMP                   = 0x1
+       IPPROTO_ICMPV6                 = 0x3a
+       IPPROTO_IDP                    = 0x16
+       IPPROTO_IDPR                   = 0x23
+       IPPROTO_IDRP                   = 0x2d
+       IPPROTO_IGMP                   = 0x2
+       IPPROTO_IGP                    = 0x55
+       IPPROTO_IGRP                   = 0x58
+       IPPROTO_IL                     = 0x28
+       IPPROTO_INLSP                  = 0x34
+       IPPROTO_INP                    = 0x20
+       IPPROTO_IP                     = 0x0
+       IPPROTO_IPCOMP                 = 0x6c
+       IPPROTO_IPCV                   = 0x47
+       IPPROTO_IPEIP                  = 0x5e
+       IPPROTO_IPIP                   = 0x4
+       IPPROTO_IPPC                   = 0x43
+       IPPROTO_IPV4                   = 0x4
+       IPPROTO_IPV6                   = 0x29
+       IPPROTO_IRTP                   = 0x1c
+       IPPROTO_KRYPTOLAN              = 0x41
+       IPPROTO_LARP                   = 0x5b
+       IPPROTO_LEAF1                  = 0x19
+       IPPROTO_LEAF2                  = 0x1a
+       IPPROTO_MAX                    = 0x100
+       IPPROTO_MEAS                   = 0x13
+       IPPROTO_MH                     = 0x87
+       IPPROTO_MHRP                   = 0x30
+       IPPROTO_MICP                   = 0x5f
+       IPPROTO_MOBILE                 = 0x37
+       IPPROTO_MPLS                   = 0x89
+       IPPROTO_MTP                    = 0x5c
+       IPPROTO_MUX                    = 0x12
+       IPPROTO_ND                     = 0x4d
+       IPPROTO_NHRP                   = 0x36
+       IPPROTO_NONE                   = 0x3b
+       IPPROTO_NSP                    = 0x1f
+       IPPROTO_NVPII                  = 0xb
+       IPPROTO_OLD_DIVERT             = 0xfe
+       IPPROTO_OSPFIGP                = 0x59
+       IPPROTO_PFSYNC                 = 0xf0
+       IPPROTO_PGM                    = 0x71
+       IPPROTO_PIGP                   = 0x9
+       IPPROTO_PIM                    = 0x67
+       IPPROTO_PRM                    = 0x15
+       IPPROTO_PUP                    = 0xc
+       IPPROTO_PVP                    = 0x4b
+       IPPROTO_RAW                    = 0xff
+       IPPROTO_RCCMON                 = 0xa
+       IPPROTO_RDP                    = 0x1b
+       IPPROTO_RESERVED_253           = 0xfd
+       IPPROTO_RESERVED_254           = 0xfe
+       IPPROTO_ROUTING                = 0x2b
+       IPPROTO_RSVP                   = 0x2e
+       IPPROTO_RVD                    = 0x42
+       IPPROTO_SATEXPAK               = 0x40
+       IPPROTO_SATMON                 = 0x45
+       IPPROTO_SCCSP                  = 0x60
+       IPPROTO_SCTP                   = 0x84
+       IPPROTO_SDRP                   = 0x2a
+       IPPROTO_SEND                   = 0x103
+       IPPROTO_SEP                    = 0x21
+       IPPROTO_SHIM6                  = 0x8c
+       IPPROTO_SKIP                   = 0x39
+       IPPROTO_SPACER                 = 0x7fff
+       IPPROTO_SRPC                   = 0x5a
+       IPPROTO_ST                     = 0x7
+       IPPROTO_SVMTP                  = 0x52
+       IPPROTO_SWIPE                  = 0x35
+       IPPROTO_TCF                    = 0x57
+       IPPROTO_TCP                    = 0x6
+       IPPROTO_TLSP                   = 0x38
+       IPPROTO_TP                     = 0x1d
+       IPPROTO_TPXX                   = 0x27
+       IPPROTO_TRUNK1                 = 0x17
+       IPPROTO_TRUNK2                 = 0x18
+       IPPROTO_TTP                    = 0x54
+       IPPROTO_UDP                    = 0x11
+       IPPROTO_UDPLITE                = 0x88
+       IPPROTO_VINES                  = 0x53
+       IPPROTO_VISA                   = 0x46
+       IPPROTO_VMTP                   = 0x51
+       IPPROTO_WBEXPAK                = 0x4f
+       IPPROTO_WBMON                  = 0x4e
+       IPPROTO_WSN                    = 0x4a
+       IPPROTO_XNET                   = 0xf
+       IPPROTO_XTP                    = 0x24
+       IPV6_AUTOFLOWLABEL             = 0x3b
+       IPV6_BINDANY                   = 0x40
+       IPV6_BINDMULTI                 = 0x41
+       IPV6_BINDV6ONLY                = 0x1b
+       IPV6_CHECKSUM                  = 0x1a
+       IPV6_DEFAULT_MULTICAST_HOPS    = 0x1
+       IPV6_DEFAULT_MULTICAST_LOOP    = 0x1
+       IPV6_DEFHLIM                   = 0x40
+       IPV6_DONTFRAG                  = 0x3e
+       IPV6_DSTOPTS                   = 0x32
+       IPV6_FLOWID                    = 0x43
+       IPV6_FLOWINFO_MASK             = 0xffffff0f
+       IPV6_FLOWLABEL_MASK            = 0xffff0f00
+       IPV6_FLOWTYPE                  = 0x44
+       IPV6_FRAGTTL                   = 0x78
+       IPV6_FW_ADD                    = 0x1e
+       IPV6_FW_DEL                    = 0x1f
+       IPV6_FW_FLUSH                  = 0x20
+       IPV6_FW_GET                    = 0x22
+       IPV6_FW_ZERO                   = 0x21
+       IPV6_HLIMDEC                   = 0x1
+       IPV6_HOPLIMIT                  = 0x2f
+       IPV6_HOPOPTS                   = 0x31
+       IPV6_IPSEC_POLICY              = 0x1c
+       IPV6_JOIN_GROUP                = 0xc
+       IPV6_LEAVE_GROUP               = 0xd
+       IPV6_MAXHLIM                   = 0xff
+       IPV6_MAXOPTHDR                 = 0x800
+       IPV6_MAXPACKET                 = 0xffff
+       IPV6_MAX_GROUP_SRC_FILTER      = 0x200
+       IPV6_MAX_MEMBERSHIPS           = 0xfff
+       IPV6_MAX_SOCK_SRC_FILTER       = 0x80
+       IPV6_MIN_MEMBERSHIPS           = 0x1f
+       IPV6_MMTU                      = 0x500
+       IPV6_MSFILTER                  = 0x4a
+       IPV6_MULTICAST_HOPS            = 0xa
+       IPV6_MULTICAST_IF              = 0x9
+       IPV6_MULTICAST_LOOP            = 0xb
+       IPV6_NEXTHOP                   = 0x30
+       IPV6_PATHMTU                   = 0x2c
+       IPV6_PKTINFO                   = 0x2e
+       IPV6_PORTRANGE                 = 0xe
+       IPV6_PORTRANGE_DEFAULT         = 0x0
+       IPV6_PORTRANGE_HIGH            = 0x1
+       IPV6_PORTRANGE_LOW             = 0x2
+       IPV6_PREFER_TEMPADDR           = 0x3f
+       IPV6_RECVDSTOPTS               = 0x28
+       IPV6_RECVFLOWID                = 0x46
+       IPV6_RECVHOPLIMIT              = 0x25
+       IPV6_RECVHOPOPTS               = 0x27
+       IPV6_RECVPATHMTU               = 0x2b
+       IPV6_RECVPKTINFO               = 0x24
+       IPV6_RECVRSSBUCKETID           = 0x47
+       IPV6_RECVRTHDR                 = 0x26
+       IPV6_RECVTCLASS                = 0x39
+       IPV6_RSSBUCKETID               = 0x45
+       IPV6_RSS_LISTEN_BUCKET         = 0x42
+       IPV6_RTHDR                     = 0x33
+       IPV6_RTHDRDSTOPTS              = 0x23
+       IPV6_RTHDR_LOOSE               = 0x0
+       IPV6_RTHDR_STRICT              = 0x1
+       IPV6_RTHDR_TYPE_0              = 0x0
+       IPV6_SOCKOPT_RESERVED1         = 0x3
+       IPV6_TCLASS                    = 0x3d
+       IPV6_UNICAST_HOPS              = 0x4
+       IPV6_USE_MIN_MTU               = 0x2a
+       IPV6_V6ONLY                    = 0x1b
+       IPV6_VERSION                   = 0x60
+       IPV6_VERSION_MASK              = 0xf0
+       IP_ADD_MEMBERSHIP              = 0xc
+       IP_ADD_SOURCE_MEMBERSHIP       = 0x46
+       IP_BINDANY                     = 0x18
+       IP_BINDMULTI                   = 0x19
+       IP_BLOCK_SOURCE                = 0x48
+       IP_DEFAULT_MULTICAST_LOOP      = 0x1
+       IP_DEFAULT_MULTICAST_TTL       = 0x1
+       IP_DF                          = 0x4000
+       IP_DONTFRAG                    = 0x43
+       IP_DROP_MEMBERSHIP             = 0xd
+       IP_DROP_SOURCE_MEMBERSHIP      = 0x47
+       IP_DUMMYNET3                   = 0x31
+       IP_DUMMYNET_CONFIGURE          = 0x3c
+       IP_DUMMYNET_DEL                = 0x3d
+       IP_DUMMYNET_FLUSH              = 0x3e
+       IP_DUMMYNET_GET                = 0x40
+       IP_FLOWID                      = 0x5a
+       IP_FLOWTYPE                    = 0x5b
+       IP_FW3                         = 0x30
+       IP_FW_ADD                      = 0x32
+       IP_FW_DEL                      = 0x33
+       IP_FW_FLUSH                    = 0x34
+       IP_FW_GET                      = 0x36
+       IP_FW_NAT_CFG                  = 0x38
+       IP_FW_NAT_DEL                  = 0x39
+       IP_FW_NAT_GET_CONFIG           = 0x3a
+       IP_FW_NAT_GET_LOG              = 0x3b
+       IP_FW_RESETLOG                 = 0x37
+       IP_FW_TABLE_ADD                = 0x28
+       IP_FW_TABLE_DEL                = 0x29
+       IP_FW_TABLE_FLUSH              = 0x2a
+       IP_FW_TABLE_GETSIZE            = 0x2b
+       IP_FW_TABLE_LIST               = 0x2c
+       IP_FW_ZERO                     = 0x35
+       IP_HDRINCL                     = 0x2
+       IP_IPSEC_POLICY                = 0x15
+       IP_MAXPACKET                   = 0xffff
+       IP_MAX_GROUP_SRC_FILTER        = 0x200
+       IP_MAX_MEMBERSHIPS             = 0xfff
+       IP_MAX_SOCK_MUTE_FILTER        = 0x80
+       IP_MAX_SOCK_SRC_FILTER         = 0x80
+       IP_MAX_SOURCE_FILTER           = 0x400
+       IP_MF                          = 0x2000
+       IP_MINTTL                      = 0x42
+       IP_MIN_MEMBERSHIPS             = 0x1f
+       IP_MSFILTER                    = 0x4a
+       IP_MSS                         = 0x240
+       IP_MULTICAST_IF                = 0x9
+       IP_MULTICAST_LOOP              = 0xb
+       IP_MULTICAST_TTL               = 0xa
+       IP_MULTICAST_VIF               = 0xe
+       IP_OFFMASK                     = 0x1fff
+       IP_ONESBCAST                   = 0x17
+       IP_OPTIONS                     = 0x1
+       IP_PORTRANGE                   = 0x13
+       IP_PORTRANGE_DEFAULT           = 0x0
+       IP_PORTRANGE_HIGH              = 0x1
+       IP_PORTRANGE_LOW               = 0x2
+       IP_RECVDSTADDR                 = 0x7
+       IP_RECVFLOWID                  = 0x5d
+       IP_RECVIF                      = 0x14
+       IP_RECVOPTS                    = 0x5
+       IP_RECVRETOPTS                 = 0x6
+       IP_RECVRSSBUCKETID             = 0x5e
+       IP_RECVTOS                     = 0x44
+       IP_RECVTTL                     = 0x41
+       IP_RETOPTS                     = 0x8
+       IP_RF                          = 0x8000
+       IP_RSSBUCKETID                 = 0x5c
+       IP_RSS_LISTEN_BUCKET           = 0x1a
+       IP_RSVP_OFF                    = 0x10
+       IP_RSVP_ON                     = 0xf
+       IP_RSVP_VIF_OFF                = 0x12
+       IP_RSVP_VIF_ON                 = 0x11
+       IP_SENDSRCADDR                 = 0x7
+       IP_TOS                         = 0x3
+       IP_TTL                         = 0x4
+       IP_UNBLOCK_SOURCE              = 0x49
+       ISIG                           = 0x80
+       ISTRIP                         = 0x20
+       IXANY                          = 0x800
+       IXOFF                          = 0x400
+       IXON                           = 0x200
+       LOCK_EX                        = 0x2
+       LOCK_NB                        = 0x4
+       LOCK_SH                        = 0x1
+       LOCK_UN                        = 0x8
+       MADV_AUTOSYNC                  = 0x7
+       MADV_CORE                      = 0x9
+       MADV_DONTNEED                  = 0x4
+       MADV_FREE                      = 0x5
+       MADV_NOCORE                    = 0x8
+       MADV_NORMAL                    = 0x0
+       MADV_NOSYNC                    = 0x6
+       MADV_PROTECT                   = 0xa
+       MADV_RANDOM                    = 0x1
+       MADV_SEQUENTIAL                = 0x2
+       MADV_WILLNEED                  = 0x3
+       MAP_ALIGNED_SUPER              = 0x1000000
+       MAP_ALIGNMENT_MASK             = -0x1000000
+       MAP_ALIGNMENT_SHIFT            = 0x18
+       MAP_ANON                       = 0x1000
+       MAP_ANONYMOUS                  = 0x1000
+       MAP_COPY                       = 0x2
+       MAP_EXCL                       = 0x4000
+       MAP_FILE                       = 0x0
+       MAP_FIXED                      = 0x10
+       MAP_GUARD                      = 0x2000
+       MAP_HASSEMAPHORE               = 0x200
+       MAP_NOCORE                     = 0x20000
+       MAP_NOSYNC                     = 0x800
+       MAP_PREFAULT_READ              = 0x40000
+       MAP_PRIVATE                    = 0x2
+       MAP_RESERVED0020               = 0x20
+       MAP_RESERVED0040               = 0x40
+       MAP_RESERVED0080               = 0x80
+       MAP_RESERVED0100               = 0x100
+       MAP_SHARED                     = 0x1
+       MAP_STACK                      = 0x400
+       MCL_CURRENT                    = 0x1
+       MCL_FUTURE                     = 0x2
+       MSG_CMSG_CLOEXEC               = 0x40000
+       MSG_COMPAT                     = 0x8000
+       MSG_CTRUNC                     = 0x20
+       MSG_DONTROUTE                  = 0x4
+       MSG_DONTWAIT                   = 0x80
+       MSG_EOF                        = 0x100
+       MSG_EOR                        = 0x8
+       MSG_NBIO                       = 0x4000
+       MSG_NOSIGNAL                   = 0x20000
+       MSG_NOTIFICATION               = 0x2000
+       MSG_OOB                        = 0x1
+       MSG_PEEK                       = 0x2
+       MSG_TRUNC                      = 0x10
+       MSG_WAITALL                    = 0x40
+       MSG_WAITFORONE                 = 0x80000
+       MS_ASYNC                       = 0x1
+       MS_INVALIDATE                  = 0x2
+       MS_SYNC                        = 0x0
+       NAME_MAX                       = 0xff
+       NET_RT_DUMP                    = 0x1
+       NET_RT_FLAGS                   = 0x2
+       NET_RT_IFLIST                  = 0x3
+       NET_RT_IFLISTL                 = 0x5
+       NET_RT_IFMALIST                = 0x4
+       NOFLSH                         = 0x80000000
+       NOKERNINFO                     = 0x2000000
+       NOTE_ATTRIB                    = 0x8
+       NOTE_CHILD                     = 0x4
+       NOTE_CLOSE                     = 0x100
+       NOTE_CLOSE_WRITE               = 0x200
+       NOTE_DELETE                    = 0x1
+       NOTE_EXEC                      = 0x20000000
+       NOTE_EXIT                      = 0x80000000
+       NOTE_EXTEND                    = 0x4
+       NOTE_FFAND                     = 0x40000000
+       NOTE_FFCOPY                    = 0xc0000000
+       NOTE_FFCTRLMASK                = 0xc0000000
+       NOTE_FFLAGSMASK                = 0xffffff
+       NOTE_FFNOP                     = 0x0
+       NOTE_FFOR                      = 0x80000000
+       NOTE_FILE_POLL                 = 0x2
+       NOTE_FORK                      = 0x40000000
+       NOTE_LINK                      = 0x10
+       NOTE_LOWAT                     = 0x1
+       NOTE_MSECONDS                  = 0x2
+       NOTE_NSECONDS                  = 0x8
+       NOTE_OPEN                      = 0x80
+       NOTE_PCTRLMASK                 = 0xf0000000
+       NOTE_PDATAMASK                 = 0xfffff
+       NOTE_READ                      = 0x400
+       NOTE_RENAME                    = 0x20
+       NOTE_REVOKE                    = 0x40
+       NOTE_SECONDS                   = 0x1
+       NOTE_TRACK                     = 0x1
+       NOTE_TRACKERR                  = 0x2
+       NOTE_TRIGGER                   = 0x1000000
+       NOTE_USECONDS                  = 0x4
+       NOTE_WRITE                     = 0x2
+       OCRNL                          = 0x10
+       ONLCR                          = 0x2
+       ONLRET                         = 0x40
+       ONOCR                          = 0x20
+       ONOEOT                         = 0x8
+       OPOST                          = 0x1
+       OXTABS                         = 0x4
+       O_ACCMODE                      = 0x3
+       O_APPEND                       = 0x8
+       O_ASYNC                        = 0x40
+       O_CLOEXEC                      = 0x100000
+       O_CREAT                        = 0x200
+       O_DIRECT                       = 0x10000
+       O_DIRECTORY                    = 0x20000
+       O_EXCL                         = 0x800
+       O_EXEC                         = 0x40000
+       O_EXLOCK                       = 0x20
+       O_FSYNC                        = 0x80
+       O_NDELAY                       = 0x4
+       O_NOCTTY                       = 0x8000
+       O_NOFOLLOW                     = 0x100
+       O_NONBLOCK                     = 0x4
+       O_RDONLY                       = 0x0
+       O_RDWR                         = 0x2
+       O_SHLOCK                       = 0x10
+       O_SYNC                         = 0x80
+       O_TRUNC                        = 0x400
+       O_TTY_INIT                     = 0x80000
+       O_VERIFY                       = 0x200000
+       O_WRONLY                       = 0x1
+       PARENB                         = 0x1000
+       PARMRK                         = 0x8
+       PARODD                         = 0x2000
+       PENDIN                         = 0x20000000
+       PRIO_PGRP                      = 0x1
+       PRIO_PROCESS                   = 0x0
+       PRIO_USER                      = 0x2
+       PROT_EXEC                      = 0x4
+       PROT_NONE                      = 0x0
+       PROT_READ                      = 0x1
+       PROT_WRITE                     = 0x2
+       RLIMIT_AS                      = 0xa
+       RLIMIT_CORE                    = 0x4
+       RLIMIT_CPU                     = 0x0
+       RLIMIT_DATA                    = 0x2
+       RLIMIT_FSIZE                   = 0x1
+       RLIMIT_MEMLOCK                 = 0x6
+       RLIMIT_NOFILE                  = 0x8
+       RLIMIT_NPROC                   = 0x7
+       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_DST                        = 0x1
+       RTA_GATEWAY                    = 0x2
+       RTA_GENMASK                    = 0x8
+       RTA_IFA                        = 0x20
+       RTA_IFP                        = 0x10
+       RTA_NETMASK                    = 0x4
+       RTF_BLACKHOLE                  = 0x1000
+       RTF_BROADCAST                  = 0x400000
+       RTF_DONE                       = 0x40
+       RTF_DYNAMIC                    = 0x10
+       RTF_FIXEDMTU                   = 0x80000
+       RTF_FMASK                      = 0x1004d808
+       RTF_GATEWAY                    = 0x2
+       RTF_GWFLAG_COMPAT              = 0x80000000
+       RTF_HOST                       = 0x4
+       RTF_LLDATA                     = 0x400
+       RTF_LLINFO                     = 0x400
+       RTF_LOCAL                      = 0x200000
+       RTF_MODIFIED                   = 0x20
+       RTF_MULTICAST                  = 0x800000
+       RTF_PINNED                     = 0x100000
+       RTF_PROTO1                     = 0x8000
+       RTF_PROTO2                     = 0x4000
+       RTF_PROTO3                     = 0x40000
+       RTF_REJECT                     = 0x8
+       RTF_RNH_LOCKED                 = 0x40000000
+       RTF_STATIC                     = 0x800
+       RTF_STICKY                     = 0x10000000
+       RTF_UP                         = 0x1
+       RTF_XRESOLVE                   = 0x200
+       RTM_ADD                        = 0x1
+       RTM_CHANGE                     = 0x3
+       RTM_DELADDR                    = 0xd
+       RTM_DELETE                     = 0x2
+       RTM_DELMADDR                   = 0x10
+       RTM_GET                        = 0x4
+       RTM_IEEE80211                  = 0x12
+       RTM_IFANNOUNCE                 = 0x11
+       RTM_IFINFO                     = 0xe
+       RTM_LOCK                       = 0x8
+       RTM_LOSING                     = 0x5
+       RTM_MISS                       = 0x7
+       RTM_NEWADDR                    = 0xc
+       RTM_NEWMADDR                   = 0xf
+       RTM_REDIRECT                   = 0x6
+       RTM_RESOLVE                    = 0xb
+       RTM_RTTUNIT                    = 0xf4240
+       RTM_VERSION                    = 0x5
+       RTV_EXPIRE                     = 0x4
+       RTV_HOPCOUNT                   = 0x2
+       RTV_MTU                        = 0x1
+       RTV_RPIPE                      = 0x8
+       RTV_RTT                        = 0x40
+       RTV_RTTVAR                     = 0x80
+       RTV_SPIPE                      = 0x10
+       RTV_SSTHRESH                   = 0x20
+       RTV_WEIGHT                     = 0x100
+       RT_ALL_FIBS                    = -0x1
+       RT_BLACKHOLE                   = 0x40
+       RT_CACHING_CONTEXT             = 0x1
+       RT_DEFAULT_FIB                 = 0x0
+       RT_HAS_GW                      = 0x80
+       RT_HAS_HEADER                  = 0x10
+       RT_HAS_HEADER_BIT              = 0x4
+       RT_L2_ME                       = 0x4
+       RT_L2_ME_BIT                   = 0x2
+       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_RIGHTS                     = 0x1
+       SCM_TIMESTAMP                  = 0x2
+       SHUT_RD                        = 0x0
+       SHUT_RDWR                      = 0x2
+       SHUT_WR                        = 0x1
+       SIOCADDMULTI                   = 0x80206931
+       SIOCAIFADDR                    = 0x8040691a
+       SIOCAIFGROUP                   = 0x80246987
+       SIOCATMARK                     = 0x40047307
+       SIOCDELMULTI                   = 0x80206932
+       SIOCDIFADDR                    = 0x80206919
+       SIOCDIFGROUP                   = 0x80246989
+       SIOCDIFPHYADDR                 = 0x80206949
+       SIOCGDRVSPEC                   = 0xc01c697b
+       SIOCGETSGCNT                   = 0xc0147210
+       SIOCGETVIFCNT                  = 0xc014720f
+       SIOCGHIWAT                     = 0x40047301
+       SIOCGHWADDR                    = 0xc020693e
+       SIOCGI2C                       = 0xc020693d
+       SIOCGIFADDR                    = 0xc0206921
+       SIOCGIFBRDADDR                 = 0xc0206923
+       SIOCGIFCAP                     = 0xc020691f
+       SIOCGIFCONF                    = 0xc0086924
+       SIOCGIFDESCR                   = 0xc020692a
+       SIOCGIFDSTADDR                 = 0xc0206922
+       SIOCGIFFIB                     = 0xc020695c
+       SIOCGIFFLAGS                   = 0xc0206911
+       SIOCGIFGENERIC                 = 0xc020693a
+       SIOCGIFGMEMB                   = 0xc024698a
+       SIOCGIFGROUP                   = 0xc0246988
+       SIOCGIFINDEX                   = 0xc0206920
+       SIOCGIFMAC                     = 0xc0206926
+       SIOCGIFMEDIA                   = 0xc0286938
+       SIOCGIFMETRIC                  = 0xc0206917
+       SIOCGIFMTU                     = 0xc0206933
+       SIOCGIFNETMASK                 = 0xc0206925
+       SIOCGIFPDSTADDR                = 0xc0206948
+       SIOCGIFPHYS                    = 0xc0206935
+       SIOCGIFPSRCADDR                = 0xc0206947
+       SIOCGIFSTATUS                  = 0xc331693b
+       SIOCGIFXMEDIA                  = 0xc028698b
+       SIOCGLOWAT                     = 0x40047303
+       SIOCGPGRP                      = 0x40047309
+       SIOCGPRIVATE_0                 = 0xc0206950
+       SIOCGPRIVATE_1                 = 0xc0206951
+       SIOCGTUNFIB                    = 0xc020695e
+       SIOCIFCREATE                   = 0xc020697a
+       SIOCIFCREATE2                  = 0xc020697c
+       SIOCIFDESTROY                  = 0x80206979
+       SIOCIFGCLONERS                 = 0xc00c6978
+       SIOCSDRVSPEC                   = 0x801c697b
+       SIOCSHIWAT                     = 0x80047300
+       SIOCSIFADDR                    = 0x8020690c
+       SIOCSIFBRDADDR                 = 0x80206913
+       SIOCSIFCAP                     = 0x8020691e
+       SIOCSIFDESCR                   = 0x80206929
+       SIOCSIFDSTADDR                 = 0x8020690e
+       SIOCSIFFIB                     = 0x8020695d
+       SIOCSIFFLAGS                   = 0x80206910
+       SIOCSIFGENERIC                 = 0x80206939
+       SIOCSIFLLADDR                  = 0x8020693c
+       SIOCSIFMAC                     = 0x80206927
+       SIOCSIFMEDIA                   = 0xc0206937
+       SIOCSIFMETRIC                  = 0x80206918
+       SIOCSIFMTU                     = 0x80206934
+       SIOCSIFNAME                    = 0x80206928
+       SIOCSIFNETMASK                 = 0x80206916
+       SIOCSIFPHYADDR                 = 0x80406946
+       SIOCSIFPHYS                    = 0x80206936
+       SIOCSIFRVNET                   = 0xc020695b
+       SIOCSIFVNET                    = 0xc020695a
+       SIOCSLOWAT                     = 0x80047302
+       SIOCSPGRP                      = 0x80047308
+       SIOCSTUNFIB                    = 0x8020695f
+       SOCK_CLOEXEC                   = 0x10000000
+       SOCK_DGRAM                     = 0x2
+       SOCK_MAXADDRLEN                = 0xff
+       SOCK_NONBLOCK                  = 0x20000000
+       SOCK_RAW                       = 0x3
+       SOCK_RDM                       = 0x4
+       SOCK_SEQPACKET                 = 0x5
+       SOCK_STREAM                    = 0x1
+       SOL_SOCKET                     = 0xffff
+       SOMAXCONN                      = 0x80
+       SO_ACCEPTCONN                  = 0x2
+       SO_ACCEPTFILTER                = 0x1000
+       SO_BINTIME                     = 0x2000
+       SO_BROADCAST                   = 0x20
+       SO_DEBUG                       = 0x1
+       SO_DONTROUTE                   = 0x10
+       SO_ERROR                       = 0x1007
+       SO_KEEPALIVE                   = 0x8
+       SO_LABEL                       = 0x1009
+       SO_LINGER                      = 0x80
+       SO_LISTENINCQLEN               = 0x1013
+       SO_LISTENQLEN                  = 0x1012
+       SO_LISTENQLIMIT                = 0x1011
+       SO_NOSIGPIPE                   = 0x800
+       SO_NO_DDP                      = 0x8000
+       SO_NO_OFFLOAD                  = 0x4000
+       SO_OOBINLINE                   = 0x100
+       SO_PEERLABEL                   = 0x1010
+       SO_PROTOCOL                    = 0x1016
+       SO_PROTOTYPE                   = 0x1016
+       SO_RCVBUF                      = 0x1002
+       SO_RCVLOWAT                    = 0x1004
+       SO_RCVTIMEO                    = 0x1006
+       SO_REUSEADDR                   = 0x4
+       SO_REUSEPORT                   = 0x200
+       SO_SETFIB                      = 0x1014
+       SO_SNDBUF                      = 0x1001
+       SO_SNDLOWAT                    = 0x1003
+       SO_SNDTIMEO                    = 0x1005
+       SO_TIMESTAMP                   = 0x400
+       SO_TYPE                        = 0x1008
+       SO_USELOOPBACK                 = 0x40
+       SO_USER_COOKIE                 = 0x1015
+       SO_VENDOR                      = 0x80000000
+       TAB0                           = 0x0
+       TAB3                           = 0x4
+       TABDLY                         = 0x4
+       TCIFLUSH                       = 0x1
+       TCIOFF                         = 0x3
+       TCIOFLUSH                      = 0x3
+       TCION                          = 0x4
+       TCOFLUSH                       = 0x2
+       TCOOFF                         = 0x1
+       TCOON                          = 0x2
+       TCP_CA_NAME_MAX                = 0x10
+       TCP_CCALGOOPT                  = 0x41
+       TCP_CONGESTION                 = 0x40
+       TCP_FASTOPEN                   = 0x401
+       TCP_FUNCTION_BLK               = 0x2000
+       TCP_FUNCTION_NAME_LEN_MAX      = 0x20
+       TCP_INFO                       = 0x20
+       TCP_KEEPCNT                    = 0x400
+       TCP_KEEPIDLE                   = 0x100
+       TCP_KEEPINIT                   = 0x80
+       TCP_KEEPINTVL                  = 0x200
+       TCP_MAXBURST                   = 0x4
+       TCP_MAXHLEN                    = 0x3c
+       TCP_MAXOLEN                    = 0x28
+       TCP_MAXSEG                     = 0x2
+       TCP_MAXWIN                     = 0xffff
+       TCP_MAX_SACK                   = 0x4
+       TCP_MAX_WINSHIFT               = 0xe
+       TCP_MD5SIG                     = 0x10
+       TCP_MINMSS                     = 0xd8
+       TCP_MSS                        = 0x218
+       TCP_NODELAY                    = 0x1
+       TCP_NOOPT                      = 0x8
+       TCP_NOPUSH                     = 0x4
+       TCP_PCAP_IN                    = 0x1000
+       TCP_PCAP_OUT                   = 0x800
+       TCP_VENDOR                     = 0x80000000
+       TCSAFLUSH                      = 0x2
+       TIOCCBRK                       = 0x2000747a
+       TIOCCDTR                       = 0x20007478
+       TIOCCONS                       = 0x80047462
+       TIOCDRAIN                      = 0x2000745e
+       TIOCEXCL                       = 0x2000740d
+       TIOCEXT                        = 0x80047460
+       TIOCFLUSH                      = 0x80047410
+       TIOCGDRAINWAIT                 = 0x40047456
+       TIOCGETA                       = 0x402c7413
+       TIOCGETD                       = 0x4004741a
+       TIOCGPGRP                      = 0x40047477
+       TIOCGPTN                       = 0x4004740f
+       TIOCGSID                       = 0x40047463
+       TIOCGWINSZ                     = 0x40087468
+       TIOCMBIC                       = 0x8004746b
+       TIOCMBIS                       = 0x8004746c
+       TIOCMGDTRWAIT                  = 0x4004745a
+       TIOCMGET                       = 0x4004746a
+       TIOCMSDTRWAIT                  = 0x8004745b
+       TIOCMSET                       = 0x8004746d
+       TIOCM_CAR                      = 0x40
+       TIOCM_CD                       = 0x40
+       TIOCM_CTS                      = 0x20
+       TIOCM_DCD                      = 0x40
+       TIOCM_DSR                      = 0x100
+       TIOCM_DTR                      = 0x2
+       TIOCM_LE                       = 0x1
+       TIOCM_RI                       = 0x80
+       TIOCM_RNG                      = 0x80
+       TIOCM_RTS                      = 0x4
+       TIOCM_SR                       = 0x10
+       TIOCM_ST                       = 0x8
+       TIOCNOTTY                      = 0x20007471
+       TIOCNXCL                       = 0x2000740e
+       TIOCOUTQ                       = 0x40047473
+       TIOCPKT                        = 0x80047470
+       TIOCPKT_DATA                   = 0x0
+       TIOCPKT_DOSTOP                 = 0x20
+       TIOCPKT_FLUSHREAD              = 0x1
+       TIOCPKT_FLUSHWRITE             = 0x2
+       TIOCPKT_IOCTL                  = 0x40
+       TIOCPKT_NOSTOP                 = 0x10
+       TIOCPKT_START                  = 0x8
+       TIOCPKT_STOP                   = 0x4
+       TIOCPTMASTER                   = 0x2000741c
+       TIOCSBRK                       = 0x2000747b
+       TIOCSCTTY                      = 0x20007461
+       TIOCSDRAINWAIT                 = 0x80047457
+       TIOCSDTR                       = 0x20007479
+       TIOCSETA                       = 0x802c7414
+       TIOCSETAF                      = 0x802c7416
+       TIOCSETAW                      = 0x802c7415
+       TIOCSETD                       = 0x8004741b
+       TIOCSIG                        = 0x2004745f
+       TIOCSPGRP                      = 0x80047476
+       TIOCSTART                      = 0x2000746e
+       TIOCSTAT                       = 0x20007465
+       TIOCSTI                        = 0x80017472
+       TIOCSTOP                       = 0x2000746f
+       TIOCSWINSZ                     = 0x80087467
+       TIOCTIMESTAMP                  = 0x40107459
+       TIOCUCNTL                      = 0x80047466
+       TOSTOP                         = 0x400000
+       VDISCARD                       = 0xf
+       VDSUSP                         = 0xb
+       VEOF                           = 0x0
+       VEOL                           = 0x1
+       VEOL2                          = 0x2
+       VERASE                         = 0x3
+       VERASE2                        = 0x7
+       VINTR                          = 0x8
+       VKILL                          = 0x5
+       VLNEXT                         = 0xe
+       VMIN                           = 0x10
+       VQUIT                          = 0x9
+       VREPRINT                       = 0x6
+       VSTART                         = 0xc
+       VSTATUS                        = 0x12
+       VSTOP                          = 0xd
+       VSUSP                          = 0xa
+       VTIME                          = 0x11
+       VWERASE                        = 0x4
+       WCONTINUED                     = 0x4
+       WCOREFLAG                      = 0x80
+       WEXITED                        = 0x10
+       WLINUXCLONE                    = 0x80000000
+       WNOHANG                        = 0x1
+       WNOWAIT                        = 0x8
+       WSTOPPED                       = 0x2
+       WTRAPPED                       = 0x20
+       WUNTRACED                      = 0x2
+)
+
+// Errors
+const (
+       E2BIG           = syscall.Errno(0x7)
+       EACCES          = syscall.Errno(0xd)
+       EADDRINUSE      = syscall.Errno(0x30)
+       EADDRNOTAVAIL   = syscall.Errno(0x31)
+       EAFNOSUPPORT    = syscall.Errno(0x2f)
+       EAGAIN          = syscall.Errno(0x23)
+       EALREADY        = syscall.Errno(0x25)
+       EAUTH           = syscall.Errno(0x50)
+       EBADF           = syscall.Errno(0x9)
+       EBADMSG         = syscall.Errno(0x59)
+       EBADRPC         = syscall.Errno(0x48)
+       EBUSY           = syscall.Errno(0x10)
+       ECANCELED       = syscall.Errno(0x55)
+       ECAPMODE        = syscall.Errno(0x5e)
+       ECHILD          = syscall.Errno(0xa)
+       ECONNABORTED    = syscall.Errno(0x35)
+       ECONNREFUSED    = syscall.Errno(0x3d)
+       ECONNRESET      = syscall.Errno(0x36)
+       EDEADLK         = syscall.Errno(0xb)
+       EDESTADDRREQ    = syscall.Errno(0x27)
+       EDOM            = syscall.Errno(0x21)
+       EDOOFUS         = syscall.Errno(0x58)
+       EDQUOT          = syscall.Errno(0x45)
+       EEXIST          = syscall.Errno(0x11)
+       EFAULT          = syscall.Errno(0xe)
+       EFBIG           = syscall.Errno(0x1b)
+       EFTYPE          = syscall.Errno(0x4f)
+       EHOSTDOWN       = syscall.Errno(0x40)
+       EHOSTUNREACH    = syscall.Errno(0x41)
+       EIDRM           = syscall.Errno(0x52)
+       EILSEQ          = syscall.Errno(0x56)
+       EINPROGRESS     = syscall.Errno(0x24)
+       EINTR           = syscall.Errno(0x4)
+       EINVAL          = syscall.Errno(0x16)
+       EIO             = syscall.Errno(0x5)
+       EISCONN         = syscall.Errno(0x38)
+       EISDIR          = syscall.Errno(0x15)
+       ELAST           = syscall.Errno(0x60)
+       ELOOP           = syscall.Errno(0x3e)
+       EMFILE          = syscall.Errno(0x18)
+       EMLINK          = syscall.Errno(0x1f)
+       EMSGSIZE        = syscall.Errno(0x28)
+       EMULTIHOP       = syscall.Errno(0x5a)
+       ENAMETOOLONG    = syscall.Errno(0x3f)
+       ENEEDAUTH       = syscall.Errno(0x51)
+       ENETDOWN        = syscall.Errno(0x32)
+       ENETRESET       = syscall.Errno(0x34)
+       ENETUNREACH     = syscall.Errno(0x33)
+       ENFILE          = syscall.Errno(0x17)
+       ENOATTR         = syscall.Errno(0x57)
+       ENOBUFS         = syscall.Errno(0x37)
+       ENODEV          = syscall.Errno(0x13)
+       ENOENT          = syscall.Errno(0x2)
+       ENOEXEC         = syscall.Errno(0x8)
+       ENOLCK          = syscall.Errno(0x4d)
+       ENOLINK         = syscall.Errno(0x5b)
+       ENOMEM          = syscall.Errno(0xc)
+       ENOMSG          = syscall.Errno(0x53)
+       ENOPROTOOPT     = syscall.Errno(0x2a)
+       ENOSPC          = syscall.Errno(0x1c)
+       ENOSYS          = syscall.Errno(0x4e)
+       ENOTBLK         = syscall.Errno(0xf)
+       ENOTCAPABLE     = syscall.Errno(0x5d)
+       ENOTCONN        = syscall.Errno(0x39)
+       ENOTDIR         = syscall.Errno(0x14)
+       ENOTEMPTY       = syscall.Errno(0x42)
+       ENOTRECOVERABLE = syscall.Errno(0x5f)
+       ENOTSOCK        = syscall.Errno(0x26)
+       ENOTSUP         = syscall.Errno(0x2d)
+       ENOTTY          = syscall.Errno(0x19)
+       ENXIO           = syscall.Errno(0x6)
+       EOPNOTSUPP      = syscall.Errno(0x2d)
+       EOVERFLOW       = syscall.Errno(0x54)
+       EOWNERDEAD      = syscall.Errno(0x60)
+       EPERM           = syscall.Errno(0x1)
+       EPFNOSUPPORT    = syscall.Errno(0x2e)
+       EPIPE           = syscall.Errno(0x20)
+       EPROCLIM        = syscall.Errno(0x43)
+       EPROCUNAVAIL    = syscall.Errno(0x4c)
+       EPROGMISMATCH   = syscall.Errno(0x4b)
+       EPROGUNAVAIL    = syscall.Errno(0x4a)
+       EPROTO          = syscall.Errno(0x5c)
+       EPROTONOSUPPORT = syscall.Errno(0x2b)
+       EPROTOTYPE      = syscall.Errno(0x29)
+       ERANGE          = syscall.Errno(0x22)
+       EREMOTE         = syscall.Errno(0x47)
+       EROFS           = syscall.Errno(0x1e)
+       ERPCMISMATCH    = syscall.Errno(0x49)
+       ESHUTDOWN       = syscall.Errno(0x3a)
+       ESOCKTNOSUPPORT = syscall.Errno(0x2c)
+       ESPIPE          = syscall.Errno(0x1d)
+       ESRCH           = syscall.Errno(0x3)
+       ESTALE          = syscall.Errno(0x46)
+       ETIMEDOUT       = syscall.Errno(0x3c)
+       ETOOMANYREFS    = syscall.Errno(0x3b)
+       ETXTBSY         = syscall.Errno(0x1a)
+       EUSERS          = syscall.Errno(0x44)
+       EWOULDBLOCK     = syscall.Errno(0x23)
+       EXDEV           = syscall.Errno(0x12)
+)
+
+// Signals
+const (
+       SIGABRT   = syscall.Signal(0x6)
+       SIGALRM   = syscall.Signal(0xe)
+       SIGBUS    = syscall.Signal(0xa)
+       SIGCHLD   = syscall.Signal(0x14)
+       SIGCONT   = syscall.Signal(0x13)
+       SIGEMT    = syscall.Signal(0x7)
+       SIGFPE    = syscall.Signal(0x8)
+       SIGHUP    = syscall.Signal(0x1)
+       SIGILL    = syscall.Signal(0x4)
+       SIGINFO   = syscall.Signal(0x1d)
+       SIGINT    = syscall.Signal(0x2)
+       SIGIO     = syscall.Signal(0x17)
+       SIGIOT    = syscall.Signal(0x6)
+       SIGKILL   = syscall.Signal(0x9)
+       SIGLIBRT  = syscall.Signal(0x21)
+       SIGLWP    = syscall.Signal(0x20)
+       SIGPIPE   = syscall.Signal(0xd)
+       SIGPROF   = syscall.Signal(0x1b)
+       SIGQUIT   = syscall.Signal(0x3)
+       SIGSEGV   = syscall.Signal(0xb)
+       SIGSTOP   = syscall.Signal(0x11)
+       SIGSYS    = syscall.Signal(0xc)
+       SIGTERM   = syscall.Signal(0xf)
+       SIGTHR    = syscall.Signal(0x20)
+       SIGTRAP   = syscall.Signal(0x5)
+       SIGTSTP   = syscall.Signal(0x12)
+       SIGTTIN   = syscall.Signal(0x15)
+       SIGTTOU   = syscall.Signal(0x16)
+       SIGURG    = syscall.Signal(0x10)
+       SIGUSR1   = syscall.Signal(0x1e)
+       SIGUSR2   = syscall.Signal(0x1f)
+       SIGVTALRM = syscall.Signal(0x1a)
+       SIGWINCH  = syscall.Signal(0x1c)
+       SIGXCPU   = syscall.Signal(0x18)
+       SIGXFSZ   = syscall.Signal(0x19)
+)
+
+// Error table
+var errors = [...]string{
+       1:  "operation not permitted",
+       2:  "no such file or directory",
+       3:  "no such process",
+       4:  "interrupted system call",
+       5:  "input/output error",
+       6:  "device not configured",
+       7:  "argument list too long",
+       8:  "exec format error",
+       9:  "bad file descriptor",
+       10: "no child processes",
+       11: "resource deadlock avoided",
+       12: "cannot allocate memory",
+       13: "permission denied",
+       14: "bad address",
+       15: "block device required",
+       16: "device busy",
+       17: "file exists",
+       18: "cross-device link",
+       19: "operation not supported by device",
+       20: "not a directory",
+       21: "is a directory",
+       22: "invalid argument",
+       23: "too many open files in system",
+       24: "too many open files",
+       25: "inappropriate ioctl for device",
+       26: "text file busy",
+       27: "file too large",
+       28: "no space left on device",
+       29: "illegal seek",
+       30: "read-only file system",
+       31: "too many links",
+       32: "broken pipe",
+       33: "numerical argument out of domain",
+       34: "result too large",
+       35: "resource temporarily unavailable",
+       36: "operation now in progress",
+       37: "operation already in progress",
+       38: "socket operation on non-socket",
+       39: "destination address required",
+       40: "message too long",
+       41: "protocol wrong type for socket",
+       42: "protocol not available",
+       43: "protocol not supported",
+       44: "socket type not supported",
+       45: "operation not supported",
+       46: "protocol family not supported",
+       47: "address family not supported by protocol family",
+       48: "address already in use",
+       49: "can't assign requested address",
+       50: "network is down",
+       51: "network is unreachable",
+       52: "network dropped connection on reset",
+       53: "software caused connection abort",
+       54: "connection reset by peer",
+       55: "no buffer space available",
+       56: "socket is already connected",
+       57: "socket is not connected",
+       58: "can't send after socket shutdown",
+       59: "too many references: can't splice",
+       60: "operation timed out",
+       61: "connection refused",
+       62: "too many levels of symbolic links",
+       63: "file name too long",
+       64: "host is down",
+       65: "no route to host",
+       66: "directory not empty",
+       67: "too many processes",
+       68: "too many users",
+       69: "disc quota exceeded",
+       70: "stale NFS file handle",
+       71: "too many levels of remote in path",
+       72: "RPC struct is bad",
+       73: "RPC version wrong",
+       74: "RPC prog. not avail",
+       75: "program version wrong",
+       76: "bad procedure for program",
+       77: "no locks available",
+       78: "function not implemented",
+       79: "inappropriate file type or format",
+       80: "authentication error",
+       81: "need authenticator",
+       82: "identifier removed",
+       83: "no message of desired type",
+       84: "value too large to be stored in data type",
+       85: "operation canceled",
+       86: "illegal byte sequence",
+       87: "attribute not found",
+       88: "programming error",
+       89: "bad message",
+       90: "multihop attempted",
+       91: "link has been severed",
+       92: "protocol error",
+       93: "capabilities insufficient",
+       94: "not permitted in capability mode",
+       95: "state not recoverable",
+       96: "previous owner died",
+}
+
+// Signal table
+var signals = [...]string{
+       1:  "hangup",
+       2:  "interrupt",
+       3:  "quit",
+       4:  "illegal instruction",
+       5:  "trace/BPT trap",
+       6:  "abort trap",
+       7:  "EMT trap",
+       8:  "floating point exception",
+       9:  "killed",
+       10: "bus error",
+       11: "segmentation fault",
+       12: "bad system call",
+       13: "broken pipe",
+       14: "alarm clock",
+       15: "terminated",
+       16: "urgent I/O condition",
+       17: "suspended (signal)",
+       18: "suspended",
+       19: "continued",
+       20: "child exited",
+       21: "stopped (tty input)",
+       22: "stopped (tty output)",
+       23: "I/O possible",
+       24: "cputime limit exceeded",
+       25: "filesize limit exceeded",
+       26: "virtual timer expired",
+       27: "profiling timer expired",
+       28: "window size changes",
+       29: "information request",
+       30: "user defined signal 1",
+       31: "user defined signal 2",
+       32: "unknown signal",
+       33: "unknown signal",
+}
diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_386.go b/vendor/golang.org/x/sys/unix/zerrors_linux_386.go
new file mode 100644 (file)
index 0000000..33ced1a
--- /dev/null
@@ -0,0 +1,2200 @@
+// mkerrors.sh -Wall -Werror -static -I/tmp/include -m32
+// Code generated by the command above; see README.md. DO NOT EDIT.
+
+// +build 386,linux
+
+// Created by cgo -godefs - DO NOT EDIT
+// cgo -godefs -- -Wall -Werror -static -I/tmp/include -m32 _const.go
+
+package unix
+
+import "syscall"
+
+const (
+       AF_ALG                               = 0x26
+       AF_APPLETALK                         = 0x5
+       AF_ASH                               = 0x12
+       AF_ATMPVC                            = 0x8
+       AF_ATMSVC                            = 0x14
+       AF_AX25                              = 0x3
+       AF_BLUETOOTH                         = 0x1f
+       AF_BRIDGE                            = 0x7
+       AF_CAIF                              = 0x25
+       AF_CAN                               = 0x1d
+       AF_DECnet                            = 0xc
+       AF_ECONET                            = 0x13
+       AF_FILE                              = 0x1
+       AF_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
+)
+
+// Errors
+const (
+       E2BIG           = syscall.Errno(0x7)
+       EACCES          = syscall.Errno(0xd)
+       EADDRINUSE      = syscall.Errno(0x62)
+       EADDRNOTAVAIL   = syscall.Errno(0x63)
+       EADV            = syscall.Errno(0x44)
+       EAFNOSUPPORT    = syscall.Errno(0x61)
+       EAGAIN          = syscall.Errno(0xb)
+       EALREADY        = syscall.Errno(0x72)
+       EBADE           = syscall.Errno(0x34)
+       EBADF           = syscall.Errno(0x9)
+       EBADFD          = syscall.Errno(0x4d)
+       EBADMSG         = syscall.Errno(0x4a)
+       EBADR           = syscall.Errno(0x35)
+       EBADRQC         = syscall.Errno(0x38)
+       EBADSLT         = syscall.Errno(0x39)
+       EBFONT          = syscall.Errno(0x3b)
+       EBUSY           = syscall.Errno(0x10)
+       ECANCELED       = syscall.Errno(0x7d)
+       ECHILD          = syscall.Errno(0xa)
+       ECHRNG          = syscall.Errno(0x2c)
+       ECOMM           = syscall.Errno(0x46)
+       ECONNABORTED    = syscall.Errno(0x67)
+       ECONNREFUSED    = syscall.Errno(0x6f)
+       ECONNRESET      = syscall.Errno(0x68)
+       EDEADLK         = syscall.Errno(0x23)
+       EDEADLOCK       = syscall.Errno(0x23)
+       EDESTADDRREQ    = syscall.Errno(0x59)
+       EDOM            = syscall.Errno(0x21)
+       EDOTDOT         = syscall.Errno(0x49)
+       EDQUOT          = syscall.Errno(0x7a)
+       EEXIST          = syscall.Errno(0x11)
+       EFAULT          = syscall.Errno(0xe)
+       EFBIG           = syscall.Errno(0x1b)
+       EHOSTDOWN       = syscall.Errno(0x70)
+       EHOSTUNREACH    = syscall.Errno(0x71)
+       EHWPOISON       = syscall.Errno(0x85)
+       EIDRM           = syscall.Errno(0x2b)
+       EILSEQ          = syscall.Errno(0x54)
+       EINPROGRESS     = syscall.Errno(0x73)
+       EINTR           = syscall.Errno(0x4)
+       EINVAL          = syscall.Errno(0x16)
+       EIO             = syscall.Errno(0x5)
+       EISCONN         = syscall.Errno(0x6a)
+       EISDIR          = syscall.Errno(0x15)
+       EISNAM          = syscall.Errno(0x78)
+       EKEYEXPIRED     = syscall.Errno(0x7f)
+       EKEYREJECTED    = syscall.Errno(0x81)
+       EKEYREVOKED     = syscall.Errno(0x80)
+       EL2HLT          = syscall.Errno(0x33)
+       EL2NSYNC        = syscall.Errno(0x2d)
+       EL3HLT          = syscall.Errno(0x2e)
+       EL3RST          = syscall.Errno(0x2f)
+       ELIBACC         = syscall.Errno(0x4f)
+       ELIBBAD         = syscall.Errno(0x50)
+       ELIBEXEC        = syscall.Errno(0x53)
+       ELIBMAX         = syscall.Errno(0x52)
+       ELIBSCN         = syscall.Errno(0x51)
+       ELNRNG          = syscall.Errno(0x30)
+       ELOOP           = syscall.Errno(0x28)
+       EMEDIUMTYPE     = syscall.Errno(0x7c)
+       EMFILE          = syscall.Errno(0x18)
+       EMLINK          = syscall.Errno(0x1f)
+       EMSGSIZE        = syscall.Errno(0x5a)
+       EMULTIHOP       = syscall.Errno(0x48)
+       ENAMETOOLONG    = syscall.Errno(0x24)
+       ENAVAIL         = syscall.Errno(0x77)
+       ENETDOWN        = syscall.Errno(0x64)
+       ENETRESET       = syscall.Errno(0x66)
+       ENETUNREACH     = syscall.Errno(0x65)
+       ENFILE          = syscall.Errno(0x17)
+       ENOANO          = syscall.Errno(0x37)
+       ENOBUFS         = syscall.Errno(0x69)
+       ENOCSI          = syscall.Errno(0x32)
+       ENODATA         = syscall.Errno(0x3d)
+       ENODEV          = syscall.Errno(0x13)
+       ENOENT          = syscall.Errno(0x2)
+       ENOEXEC         = syscall.Errno(0x8)
+       ENOKEY          = syscall.Errno(0x7e)
+       ENOLCK          = syscall.Errno(0x25)
+       ENOLINK         = syscall.Errno(0x43)
+       ENOMEDIUM       = syscall.Errno(0x7b)
+       ENOMEM          = syscall.Errno(0xc)
+       ENOMSG          = syscall.Errno(0x2a)
+       ENONET          = syscall.Errno(0x40)
+       ENOPKG          = syscall.Errno(0x41)
+       ENOPROTOOPT     = syscall.Errno(0x5c)
+       ENOSPC          = syscall.Errno(0x1c)
+       ENOSR           = syscall.Errno(0x3f)
+       ENOSTR          = syscall.Errno(0x3c)
+       ENOSYS          = syscall.Errno(0x26)
+       ENOTBLK         = syscall.Errno(0xf)
+       ENOTCONN        = syscall.Errno(0x6b)
+       ENOTDIR         = syscall.Errno(0x14)
+       ENOTEMPTY       = syscall.Errno(0x27)
+       ENOTNAM         = syscall.Errno(0x76)
+       ENOTRECOVERABLE = syscall.Errno(0x83)
+       ENOTSOCK        = syscall.Errno(0x58)
+       ENOTSUP         = syscall.Errno(0x5f)
+       ENOTTY          = syscall.Errno(0x19)
+       ENOTUNIQ        = syscall.Errno(0x4c)
+       ENXIO           = syscall.Errno(0x6)
+       EOPNOTSUPP      = syscall.Errno(0x5f)
+       EOVERFLOW       = syscall.Errno(0x4b)
+       EOWNERDEAD      = syscall.Errno(0x82)
+       EPERM           = syscall.Errno(0x1)
+       EPFNOSUPPORT    = syscall.Errno(0x60)
+       EPIPE           = syscall.Errno(0x20)
+       EPROTO          = syscall.Errno(0x47)
+       EPROTONOSUPPORT = syscall.Errno(0x5d)
+       EPROTOTYPE      = syscall.Errno(0x5b)
+       ERANGE          = syscall.Errno(0x22)
+       EREMCHG         = syscall.Errno(0x4e)
+       EREMOTE         = syscall.Errno(0x42)
+       EREMOTEIO       = syscall.Errno(0x79)
+       ERESTART        = syscall.Errno(0x55)
+       ERFKILL         = syscall.Errno(0x84)
+       EROFS           = syscall.Errno(0x1e)
+       ESHUTDOWN       = syscall.Errno(0x6c)
+       ESOCKTNOSUPPORT = syscall.Errno(0x5e)
+       ESPIPE          = syscall.Errno(0x1d)
+       ESRCH           = syscall.Errno(0x3)
+       ESRMNT          = syscall.Errno(0x45)
+       ESTALE          = syscall.Errno(0x74)
+       ESTRPIPE        = syscall.Errno(0x56)
+       ETIME           = syscall.Errno(0x3e)
+       ETIMEDOUT       = syscall.Errno(0x6e)
+       ETOOMANYREFS    = syscall.Errno(0x6d)
+       ETXTBSY         = syscall.Errno(0x1a)
+       EUCLEAN         = syscall.Errno(0x75)
+       EUNATCH         = syscall.Errno(0x31)
+       EUSERS          = syscall.Errno(0x57)
+       EWOULDBLOCK     = syscall.Errno(0xb)
+       EXDEV           = syscall.Errno(0x12)
+       EXFULL          = syscall.Errno(0x36)
+)
+
+// Signals
+const (
+       SIGABRT   = syscall.Signal(0x6)
+       SIGALRM   = syscall.Signal(0xe)
+       SIGBUS    = syscall.Signal(0x7)
+       SIGCHLD   = syscall.Signal(0x11)
+       SIGCLD    = syscall.Signal(0x11)
+       SIGCONT   = syscall.Signal(0x12)
+       SIGFPE    = syscall.Signal(0x8)
+       SIGHUP    = syscall.Signal(0x1)
+       SIGILL    = syscall.Signal(0x4)
+       SIGINT    = syscall.Signal(0x2)
+       SIGIO     = syscall.Signal(0x1d)
+       SIGIOT    = syscall.Signal(0x6)
+       SIGKILL   = syscall.Signal(0x9)
+       SIGPIPE   = syscall.Signal(0xd)
+       SIGPOLL   = syscall.Signal(0x1d)
+       SIGPROF   = syscall.Signal(0x1b)
+       SIGPWR    = syscall.Signal(0x1e)
+       SIGQUIT   = syscall.Signal(0x3)
+       SIGSEGV   = syscall.Signal(0xb)
+       SIGSTKFLT = syscall.Signal(0x10)
+       SIGSTOP   = syscall.Signal(0x13)
+       SIGSYS    = syscall.Signal(0x1f)
+       SIGTERM   = syscall.Signal(0xf)
+       SIGTRAP   = syscall.Signal(0x5)
+       SIGTSTP   = syscall.Signal(0x14)
+       SIGTTIN   = syscall.Signal(0x15)
+       SIGTTOU   = syscall.Signal(0x16)
+       SIGUNUSED = syscall.Signal(0x1f)
+       SIGURG    = syscall.Signal(0x17)
+       SIGUSR1   = syscall.Signal(0xa)
+       SIGUSR2   = syscall.Signal(0xc)
+       SIGVTALRM = syscall.Signal(0x1a)
+       SIGWINCH  = syscall.Signal(0x1c)
+       SIGXCPU   = syscall.Signal(0x18)
+       SIGXFSZ   = syscall.Signal(0x19)
+)
+
+// Error table
+var errors = [...]string{
+       1:   "operation not permitted",
+       2:   "no such file or directory",
+       3:   "no such process",
+       4:   "interrupted system call",
+       5:   "input/output error",
+       6:   "no such device or address",
+       7:   "argument list too long",
+       8:   "exec format error",
+       9:   "bad file descriptor",
+       10:  "no child processes",
+       11:  "resource temporarily unavailable",
+       12:  "cannot allocate memory",
+       13:  "permission denied",
+       14:  "bad address",
+       15:  "block device required",
+       16:  "device or resource busy",
+       17:  "file exists",
+       18:  "invalid cross-device link",
+       19:  "no such device",
+       20:  "not a directory",
+       21:  "is a directory",
+       22:  "invalid argument",
+       23:  "too many open files in system",
+       24:  "too many open files",
+       25:  "inappropriate ioctl for device",
+       26:  "text file busy",
+       27:  "file too large",
+       28:  "no space left on device",
+       29:  "illegal seek",
+       30:  "read-only file system",
+       31:  "too many links",
+       32:  "broken pipe",
+       33:  "numerical argument out of domain",
+       34:  "numerical result out of range",
+       35:  "resource deadlock avoided",
+       36:  "file name too long",
+       37:  "no locks available",
+       38:  "function not implemented",
+       39:  "directory not empty",
+       40:  "too many levels of symbolic links",
+       42:  "no message of desired type",
+       43:  "identifier removed",
+       44:  "channel number out of range",
+       45:  "level 2 not synchronized",
+       46:  "level 3 halted",
+       47:  "level 3 reset",
+       48:  "link number out of range",
+       49:  "protocol driver not attached",
+       50:  "no CSI structure available",
+       51:  "level 2 halted",
+       52:  "invalid exchange",
+       53:  "invalid request descriptor",
+       54:  "exchange full",
+       55:  "no anode",
+       56:  "invalid request code",
+       57:  "invalid slot",
+       59:  "bad font file format",
+       60:  "device not a stream",
+       61:  "no data available",
+       62:  "timer expired",
+       63:  "out of streams resources",
+       64:  "machine is not on the network",
+       65:  "package not installed",
+       66:  "object is remote",
+       67:  "link has been severed",
+       68:  "advertise error",
+       69:  "srmount error",
+       70:  "communication error on send",
+       71:  "protocol error",
+       72:  "multihop attempted",
+       73:  "RFS specific error",
+       74:  "bad message",
+       75:  "value too large for defined data type",
+       76:  "name not unique on network",
+       77:  "file descriptor in bad state",
+       78:  "remote address changed",
+       79:  "can not access a needed shared library",
+       80:  "accessing a corrupted shared library",
+       81:  ".lib section in a.out corrupted",
+       82:  "attempting to link in too many shared libraries",
+       83:  "cannot exec a shared library directly",
+       84:  "invalid or incomplete multibyte or wide character",
+       85:  "interrupted system call should be restarted",
+       86:  "streams pipe error",
+       87:  "too many users",
+       88:  "socket operation on non-socket",
+       89:  "destination address required",
+       90:  "message too long",
+       91:  "protocol wrong type for socket",
+       92:  "protocol not available",
+       93:  "protocol not supported",
+       94:  "socket type not supported",
+       95:  "operation not supported",
+       96:  "protocol family not supported",
+       97:  "address family not supported by protocol",
+       98:  "address already in use",
+       99:  "cannot assign requested address",
+       100: "network is down",
+       101: "network is unreachable",
+       102: "network dropped connection on reset",
+       103: "software caused connection abort",
+       104: "connection reset by peer",
+       105: "no buffer space available",
+       106: "transport endpoint is already connected",
+       107: "transport endpoint is not connected",
+       108: "cannot send after transport endpoint shutdown",
+       109: "too many references: cannot splice",
+       110: "connection timed out",
+       111: "connection refused",
+       112: "host is down",
+       113: "no route to host",
+       114: "operation already in progress",
+       115: "operation now in progress",
+       116: "stale file handle",
+       117: "structure needs cleaning",
+       118: "not a XENIX named type file",
+       119: "no XENIX semaphores available",
+       120: "is a named type file",
+       121: "remote I/O error",
+       122: "disk quota exceeded",
+       123: "no medium found",
+       124: "wrong medium type",
+       125: "operation canceled",
+       126: "required key not available",
+       127: "key has expired",
+       128: "key has been revoked",
+       129: "key was rejected by service",
+       130: "owner died",
+       131: "state not recoverable",
+       132: "operation not possible due to RF-kill",
+       133: "memory page has hardware error",
+}
+
+// Signal table
+var signals = [...]string{
+       1:  "hangup",
+       2:  "interrupt",
+       3:  "quit",
+       4:  "illegal instruction",
+       5:  "trace/breakpoint trap",
+       6:  "aborted",
+       7:  "bus error",
+       8:  "floating point exception",
+       9:  "killed",
+       10: "user defined signal 1",
+       11: "segmentation fault",
+       12: "user defined signal 2",
+       13: "broken pipe",
+       14: "alarm clock",
+       15: "terminated",
+       16: "stack fault",
+       17: "child exited",
+       18: "continued",
+       19: "stopped (signal)",
+       20: "stopped",
+       21: "stopped (tty input)",
+       22: "stopped (tty output)",
+       23: "urgent I/O condition",
+       24: "CPU time limit exceeded",
+       25: "file size limit exceeded",
+       26: "virtual timer expired",
+       27: "profiling timer expired",
+       28: "window changed",
+       29: "I/O possible",
+       30: "power failure",
+       31: "bad system call",
+}
diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go
new file mode 100644 (file)
index 0000000..a6618fc
--- /dev/null
@@ -0,0 +1,2201 @@
+// mkerrors.sh -Wall -Werror -static -I/tmp/include -m64
+// Code generated by the command above; see README.md. DO NOT EDIT.
+
+// +build amd64,linux
+
+// Created by cgo -godefs - DO NOT EDIT
+// cgo -godefs -- -Wall -Werror -static -I/tmp/include -m64 _const.go
+
+package unix
+
+import "syscall"
+
+const (
+       AF_ALG                               = 0x26
+       AF_APPLETALK                         = 0x5
+       AF_ASH                               = 0x12
+       AF_ATMPVC                            = 0x8
+       AF_ATMSVC                            = 0x14
+       AF_AX25                              = 0x3
+       AF_BLUETOOTH                         = 0x1f
+       AF_BRIDGE                            = 0x7
+       AF_CAIF                              = 0x25
+       AF_CAN                               = 0x1d
+       AF_DECnet                            = 0xc
+       AF_ECONET                            = 0x13
+       AF_FILE                              = 0x1
+       AF_IB                                = 0x1b
+       AF_IEEE802154                        = 0x24
+       AF_INET                              = 0x2
+       AF_INET6                             = 0xa
+       AF_IPX                               = 0x4
+       AF_IRDA                              = 0x17
+       AF_ISDN                              = 0x22
+       AF_IUCV                              = 0x20
+       AF_KCM                               = 0x29
+       AF_KEY                               = 0xf
+       AF_LLC                               = 0x1a
+       AF_LOCAL                             = 0x1
+       AF_MAX                               = 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
+)
+
+// Errors
+const (
+       E2BIG           = syscall.Errno(0x7)
+       EACCES          = syscall.Errno(0xd)
+       EADDRINUSE      = syscall.Errno(0x62)
+       EADDRNOTAVAIL   = syscall.Errno(0x63)
+       EADV            = syscall.Errno(0x44)
+       EAFNOSUPPORT    = syscall.Errno(0x61)
+       EAGAIN          = syscall.Errno(0xb)
+       EALREADY        = syscall.Errno(0x72)
+       EBADE           = syscall.Errno(0x34)
+       EBADF           = syscall.Errno(0x9)
+       EBADFD          = syscall.Errno(0x4d)
+       EBADMSG         = syscall.Errno(0x4a)
+       EBADR           = syscall.Errno(0x35)
+       EBADRQC         = syscall.Errno(0x38)
+       EBADSLT         = syscall.Errno(0x39)
+       EBFONT          = syscall.Errno(0x3b)
+       EBUSY           = syscall.Errno(0x10)
+       ECANCELED       = syscall.Errno(0x7d)
+       ECHILD          = syscall.Errno(0xa)
+       ECHRNG          = syscall.Errno(0x2c)
+       ECOMM           = syscall.Errno(0x46)
+       ECONNABORTED    = syscall.Errno(0x67)
+       ECONNREFUSED    = syscall.Errno(0x6f)
+       ECONNRESET      = syscall.Errno(0x68)
+       EDEADLK         = syscall.Errno(0x23)
+       EDEADLOCK       = syscall.Errno(0x23)
+       EDESTADDRREQ    = syscall.Errno(0x59)
+       EDOM            = syscall.Errno(0x21)
+       EDOTDOT         = syscall.Errno(0x49)
+       EDQUOT          = syscall.Errno(0x7a)
+       EEXIST          = syscall.Errno(0x11)
+       EFAULT          = syscall.Errno(0xe)
+       EFBIG           = syscall.Errno(0x1b)
+       EHOSTDOWN       = syscall.Errno(0x70)
+       EHOSTUNREACH    = syscall.Errno(0x71)
+       EHWPOISON       = syscall.Errno(0x85)
+       EIDRM           = syscall.Errno(0x2b)
+       EILSEQ          = syscall.Errno(0x54)
+       EINPROGRESS     = syscall.Errno(0x73)
+       EINTR           = syscall.Errno(0x4)
+       EINVAL          = syscall.Errno(0x16)
+       EIO             = syscall.Errno(0x5)
+       EISCONN         = syscall.Errno(0x6a)
+       EISDIR          = syscall.Errno(0x15)
+       EISNAM          = syscall.Errno(0x78)
+       EKEYEXPIRED     = syscall.Errno(0x7f)
+       EKEYREJECTED    = syscall.Errno(0x81)
+       EKEYREVOKED     = syscall.Errno(0x80)
+       EL2HLT          = syscall.Errno(0x33)
+       EL2NSYNC        = syscall.Errno(0x2d)
+       EL3HLT          = syscall.Errno(0x2e)
+       EL3RST          = syscall.Errno(0x2f)
+       ELIBACC         = syscall.Errno(0x4f)
+       ELIBBAD         = syscall.Errno(0x50)
+       ELIBEXEC        = syscall.Errno(0x53)
+       ELIBMAX         = syscall.Errno(0x52)
+       ELIBSCN         = syscall.Errno(0x51)
+       ELNRNG          = syscall.Errno(0x30)
+       ELOOP           = syscall.Errno(0x28)
+       EMEDIUMTYPE     = syscall.Errno(0x7c)
+       EMFILE          = syscall.Errno(0x18)
+       EMLINK          = syscall.Errno(0x1f)
+       EMSGSIZE        = syscall.Errno(0x5a)
+       EMULTIHOP       = syscall.Errno(0x48)
+       ENAMETOOLONG    = syscall.Errno(0x24)
+       ENAVAIL         = syscall.Errno(0x77)
+       ENETDOWN        = syscall.Errno(0x64)
+       ENETRESET       = syscall.Errno(0x66)
+       ENETUNREACH     = syscall.Errno(0x65)
+       ENFILE          = syscall.Errno(0x17)
+       ENOANO          = syscall.Errno(0x37)
+       ENOBUFS         = syscall.Errno(0x69)
+       ENOCSI          = syscall.Errno(0x32)
+       ENODATA         = syscall.Errno(0x3d)
+       ENODEV          = syscall.Errno(0x13)
+       ENOENT          = syscall.Errno(0x2)
+       ENOEXEC         = syscall.Errno(0x8)
+       ENOKEY          = syscall.Errno(0x7e)
+       ENOLCK          = syscall.Errno(0x25)
+       ENOLINK         = syscall.Errno(0x43)
+       ENOMEDIUM       = syscall.Errno(0x7b)
+       ENOMEM          = syscall.Errno(0xc)
+       ENOMSG          = syscall.Errno(0x2a)
+       ENONET          = syscall.Errno(0x40)
+       ENOPKG          = syscall.Errno(0x41)
+       ENOPROTOOPT     = syscall.Errno(0x5c)
+       ENOSPC          = syscall.Errno(0x1c)
+       ENOSR           = syscall.Errno(0x3f)
+       ENOSTR          = syscall.Errno(0x3c)
+       ENOSYS          = syscall.Errno(0x26)
+       ENOTBLK         = syscall.Errno(0xf)
+       ENOTCONN        = syscall.Errno(0x6b)
+       ENOTDIR         = syscall.Errno(0x14)
+       ENOTEMPTY       = syscall.Errno(0x27)
+       ENOTNAM         = syscall.Errno(0x76)
+       ENOTRECOVERABLE = syscall.Errno(0x83)
+       ENOTSOCK        = syscall.Errno(0x58)
+       ENOTSUP         = syscall.Errno(0x5f)
+       ENOTTY          = syscall.Errno(0x19)
+       ENOTUNIQ        = syscall.Errno(0x4c)
+       ENXIO           = syscall.Errno(0x6)
+       EOPNOTSUPP      = syscall.Errno(0x5f)
+       EOVERFLOW       = syscall.Errno(0x4b)
+       EOWNERDEAD      = syscall.Errno(0x82)
+       EPERM           = syscall.Errno(0x1)
+       EPFNOSUPPORT    = syscall.Errno(0x60)
+       EPIPE           = syscall.Errno(0x20)
+       EPROTO          = syscall.Errno(0x47)
+       EPROTONOSUPPORT = syscall.Errno(0x5d)
+       EPROTOTYPE      = syscall.Errno(0x5b)
+       ERANGE          = syscall.Errno(0x22)
+       EREMCHG         = syscall.Errno(0x4e)
+       EREMOTE         = syscall.Errno(0x42)
+       EREMOTEIO       = syscall.Errno(0x79)
+       ERESTART        = syscall.Errno(0x55)
+       ERFKILL         = syscall.Errno(0x84)
+       EROFS           = syscall.Errno(0x1e)
+       ESHUTDOWN       = syscall.Errno(0x6c)
+       ESOCKTNOSUPPORT = syscall.Errno(0x5e)
+       ESPIPE          = syscall.Errno(0x1d)
+       ESRCH           = syscall.Errno(0x3)
+       ESRMNT          = syscall.Errno(0x45)
+       ESTALE          = syscall.Errno(0x74)
+       ESTRPIPE        = syscall.Errno(0x56)
+       ETIME           = syscall.Errno(0x3e)
+       ETIMEDOUT       = syscall.Errno(0x6e)
+       ETOOMANYREFS    = syscall.Errno(0x6d)
+       ETXTBSY         = syscall.Errno(0x1a)
+       EUCLEAN         = syscall.Errno(0x75)
+       EUNATCH         = syscall.Errno(0x31)
+       EUSERS          = syscall.Errno(0x57)
+       EWOULDBLOCK     = syscall.Errno(0xb)
+       EXDEV           = syscall.Errno(0x12)
+       EXFULL          = syscall.Errno(0x36)
+)
+
+// Signals
+const (
+       SIGABRT   = syscall.Signal(0x6)
+       SIGALRM   = syscall.Signal(0xe)
+       SIGBUS    = syscall.Signal(0x7)
+       SIGCHLD   = syscall.Signal(0x11)
+       SIGCLD    = syscall.Signal(0x11)
+       SIGCONT   = syscall.Signal(0x12)
+       SIGFPE    = syscall.Signal(0x8)
+       SIGHUP    = syscall.Signal(0x1)
+       SIGILL    = syscall.Signal(0x4)
+       SIGINT    = syscall.Signal(0x2)
+       SIGIO     = syscall.Signal(0x1d)
+       SIGIOT    = syscall.Signal(0x6)
+       SIGKILL   = syscall.Signal(0x9)
+       SIGPIPE   = syscall.Signal(0xd)
+       SIGPOLL   = syscall.Signal(0x1d)
+       SIGPROF   = syscall.Signal(0x1b)
+       SIGPWR    = syscall.Signal(0x1e)
+       SIGQUIT   = syscall.Signal(0x3)
+       SIGSEGV   = syscall.Signal(0xb)
+       SIGSTKFLT = syscall.Signal(0x10)
+       SIGSTOP   = syscall.Signal(0x13)
+       SIGSYS    = syscall.Signal(0x1f)
+       SIGTERM   = syscall.Signal(0xf)
+       SIGTRAP   = syscall.Signal(0x5)
+       SIGTSTP   = syscall.Signal(0x14)
+       SIGTTIN   = syscall.Signal(0x15)
+       SIGTTOU   = syscall.Signal(0x16)
+       SIGUNUSED = syscall.Signal(0x1f)
+       SIGURG    = syscall.Signal(0x17)
+       SIGUSR1   = syscall.Signal(0xa)
+       SIGUSR2   = syscall.Signal(0xc)
+       SIGVTALRM = syscall.Signal(0x1a)
+       SIGWINCH  = syscall.Signal(0x1c)
+       SIGXCPU   = syscall.Signal(0x18)
+       SIGXFSZ   = syscall.Signal(0x19)
+)
+
+// Error table
+var errors = [...]string{
+       1:   "operation not permitted",
+       2:   "no such file or directory",
+       3:   "no such process",
+       4:   "interrupted system call",
+       5:   "input/output error",
+       6:   "no such device or address",
+       7:   "argument list too long",
+       8:   "exec format error",
+       9:   "bad file descriptor",
+       10:  "no child processes",
+       11:  "resource temporarily unavailable",
+       12:  "cannot allocate memory",
+       13:  "permission denied",
+       14:  "bad address",
+       15:  "block device required",
+       16:  "device or resource busy",
+       17:  "file exists",
+       18:  "invalid cross-device link",
+       19:  "no such device",
+       20:  "not a directory",
+       21:  "is a directory",
+       22:  "invalid argument",
+       23:  "too many open files in system",
+       24:  "too many open files",
+       25:  "inappropriate ioctl for device",
+       26:  "text file busy",
+       27:  "file too large",
+       28:  "no space left on device",
+       29:  "illegal seek",
+       30:  "read-only file system",
+       31:  "too many links",
+       32:  "broken pipe",
+       33:  "numerical argument out of domain",
+       34:  "numerical result out of range",
+       35:  "resource deadlock avoided",
+       36:  "file name too long",
+       37:  "no locks available",
+       38:  "function not implemented",
+       39:  "directory not empty",
+       40:  "too many levels of symbolic links",
+       42:  "no message of desired type",
+       43:  "identifier removed",
+       44:  "channel number out of range",
+       45:  "level 2 not synchronized",
+       46:  "level 3 halted",
+       47:  "level 3 reset",
+       48:  "link number out of range",
+       49:  "protocol driver not attached",
+       50:  "no CSI structure available",
+       51:  "level 2 halted",
+       52:  "invalid exchange",
+       53:  "invalid request descriptor",
+       54:  "exchange full",
+       55:  "no anode",
+       56:  "invalid request code",
+       57:  "invalid slot",
+       59:  "bad font file format",
+       60:  "device not a stream",
+       61:  "no data available",
+       62:  "timer expired",
+       63:  "out of streams resources",
+       64:  "machine is not on the network",
+       65:  "package not installed",
+       66:  "object is remote",
+       67:  "link has been severed",
+       68:  "advertise error",
+       69:  "srmount error",
+       70:  "communication error on send",
+       71:  "protocol error",
+       72:  "multihop attempted",
+       73:  "RFS specific error",
+       74:  "bad message",
+       75:  "value too large for defined data type",
+       76:  "name not unique on network",
+       77:  "file descriptor in bad state",
+       78:  "remote address changed",
+       79:  "can not access a needed shared library",
+       80:  "accessing a corrupted shared library",
+       81:  ".lib section in a.out corrupted",
+       82:  "attempting to link in too many shared libraries",
+       83:  "cannot exec a shared library directly",
+       84:  "invalid or incomplete multibyte or wide character",
+       85:  "interrupted system call should be restarted",
+       86:  "streams pipe error",
+       87:  "too many users",
+       88:  "socket operation on non-socket",
+       89:  "destination address required",
+       90:  "message too long",
+       91:  "protocol wrong type for socket",
+       92:  "protocol not available",
+       93:  "protocol not supported",
+       94:  "socket type not supported",
+       95:  "operation not supported",
+       96:  "protocol family not supported",
+       97:  "address family not supported by protocol",
+       98:  "address already in use",
+       99:  "cannot assign requested address",
+       100: "network is down",
+       101: "network is unreachable",
+       102: "network dropped connection on reset",
+       103: "software caused connection abort",
+       104: "connection reset by peer",
+       105: "no buffer space available",
+       106: "transport endpoint is already connected",
+       107: "transport endpoint is not connected",
+       108: "cannot send after transport endpoint shutdown",
+       109: "too many references: cannot splice",
+       110: "connection timed out",
+       111: "connection refused",
+       112: "host is down",
+       113: "no route to host",
+       114: "operation already in progress",
+       115: "operation now in progress",
+       116: "stale file handle",
+       117: "structure needs cleaning",
+       118: "not a XENIX named type file",
+       119: "no XENIX semaphores available",
+       120: "is a named type file",
+       121: "remote I/O error",
+       122: "disk quota exceeded",
+       123: "no medium found",
+       124: "wrong medium type",
+       125: "operation canceled",
+       126: "required key not available",
+       127: "key has expired",
+       128: "key has been revoked",
+       129: "key was rejected by service",
+       130: "owner died",
+       131: "state not recoverable",
+       132: "operation not possible due to RF-kill",
+       133: "memory page has hardware error",
+}
+
+// Signal table
+var signals = [...]string{
+       1:  "hangup",
+       2:  "interrupt",
+       3:  "quit",
+       4:  "illegal instruction",
+       5:  "trace/breakpoint trap",
+       6:  "aborted",
+       7:  "bus error",
+       8:  "floating point exception",
+       9:  "killed",
+       10: "user defined signal 1",
+       11: "segmentation fault",
+       12: "user defined signal 2",
+       13: "broken pipe",
+       14: "alarm clock",
+       15: "terminated",
+       16: "stack fault",
+       17: "child exited",
+       18: "continued",
+       19: "stopped (signal)",
+       20: "stopped",
+       21: "stopped (tty input)",
+       22: "stopped (tty output)",
+       23: "urgent I/O condition",
+       24: "CPU time limit exceeded",
+       25: "file size limit exceeded",
+       26: "virtual timer expired",
+       27: "profiling timer expired",
+       28: "window changed",
+       29: "I/O possible",
+       30: "power failure",
+       31: "bad system call",
+}
diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_arm.go b/vendor/golang.org/x/sys/unix/zerrors_linux_arm.go
new file mode 100644 (file)
index 0000000..1adff0b
--- /dev/null
@@ -0,0 +1,2205 @@
+// mkerrors.sh -Wall -Werror -static -I/tmp/include
+// Code generated by the command above; see README.md. DO NOT EDIT.
+
+// +build arm,linux
+
+// Created by 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                               = 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
+)
+
+// Errors
+const (
+       E2BIG           = syscall.Errno(0x7)
+       EACCES          = syscall.Errno(0xd)
+       EADDRINUSE      = syscall.Errno(0x62)
+       EADDRNOTAVAIL   = syscall.Errno(0x63)
+       EADV            = syscall.Errno(0x44)
+       EAFNOSUPPORT    = syscall.Errno(0x61)
+       EAGAIN          = syscall.Errno(0xb)
+       EALREADY        = syscall.Errno(0x72)
+       EBADE           = syscall.Errno(0x34)
+       EBADF           = syscall.Errno(0x9)
+       EBADFD          = syscall.Errno(0x4d)
+       EBADMSG         = syscall.Errno(0x4a)
+       EBADR           = syscall.Errno(0x35)
+       EBADRQC         = syscall.Errno(0x38)
+       EBADSLT         = syscall.Errno(0x39)
+       EBFONT          = syscall.Errno(0x3b)
+       EBUSY           = syscall.Errno(0x10)
+       ECANCELED       = syscall.Errno(0x7d)
+       ECHILD          = syscall.Errno(0xa)
+       ECHRNG          = syscall.Errno(0x2c)
+       ECOMM           = syscall.Errno(0x46)
+       ECONNABORTED    = syscall.Errno(0x67)
+       ECONNREFUSED    = syscall.Errno(0x6f)
+       ECONNRESET      = syscall.Errno(0x68)
+       EDEADLK         = syscall.Errno(0x23)
+       EDEADLOCK       = syscall.Errno(0x23)
+       EDESTADDRREQ    = syscall.Errno(0x59)
+       EDOM            = syscall.Errno(0x21)
+       EDOTDOT         = syscall.Errno(0x49)
+       EDQUOT          = syscall.Errno(0x7a)
+       EEXIST          = syscall.Errno(0x11)
+       EFAULT          = syscall.Errno(0xe)
+       EFBIG           = syscall.Errno(0x1b)
+       EHOSTDOWN       = syscall.Errno(0x70)
+       EHOSTUNREACH    = syscall.Errno(0x71)
+       EHWPOISON       = syscall.Errno(0x85)
+       EIDRM           = syscall.Errno(0x2b)
+       EILSEQ          = syscall.Errno(0x54)
+       EINPROGRESS     = syscall.Errno(0x73)
+       EINTR           = syscall.Errno(0x4)
+       EINVAL          = syscall.Errno(0x16)
+       EIO             = syscall.Errno(0x5)
+       EISCONN         = syscall.Errno(0x6a)
+       EISDIR          = syscall.Errno(0x15)
+       EISNAM          = syscall.Errno(0x78)
+       EKEYEXPIRED     = syscall.Errno(0x7f)
+       EKEYREJECTED    = syscall.Errno(0x81)
+       EKEYREVOKED     = syscall.Errno(0x80)
+       EL2HLT          = syscall.Errno(0x33)
+       EL2NSYNC        = syscall.Errno(0x2d)
+       EL3HLT          = syscall.Errno(0x2e)
+       EL3RST          = syscall.Errno(0x2f)
+       ELIBACC         = syscall.Errno(0x4f)
+       ELIBBAD         = syscall.Errno(0x50)
+       ELIBEXEC        = syscall.Errno(0x53)
+       ELIBMAX         = syscall.Errno(0x52)
+       ELIBSCN         = syscall.Errno(0x51)
+       ELNRNG          = syscall.Errno(0x30)
+       ELOOP           = syscall.Errno(0x28)
+       EMEDIUMTYPE     = syscall.Errno(0x7c)
+       EMFILE          = syscall.Errno(0x18)
+       EMLINK          = syscall.Errno(0x1f)
+       EMSGSIZE        = syscall.Errno(0x5a)
+       EMULTIHOP       = syscall.Errno(0x48)
+       ENAMETOOLONG    = syscall.Errno(0x24)
+       ENAVAIL         = syscall.Errno(0x77)
+       ENETDOWN        = syscall.Errno(0x64)
+       ENETRESET       = syscall.Errno(0x66)
+       ENETUNREACH     = syscall.Errno(0x65)
+       ENFILE          = syscall.Errno(0x17)
+       ENOANO          = syscall.Errno(0x37)
+       ENOBUFS         = syscall.Errno(0x69)
+       ENOCSI          = syscall.Errno(0x32)
+       ENODATA         = syscall.Errno(0x3d)
+       ENODEV          = syscall.Errno(0x13)
+       ENOENT          = syscall.Errno(0x2)
+       ENOEXEC         = syscall.Errno(0x8)
+       ENOKEY          = syscall.Errno(0x7e)
+       ENOLCK          = syscall.Errno(0x25)
+       ENOLINK         = syscall.Errno(0x43)
+       ENOMEDIUM       = syscall.Errno(0x7b)
+       ENOMEM          = syscall.Errno(0xc)
+       ENOMSG          = syscall.Errno(0x2a)
+       ENONET          = syscall.Errno(0x40)
+       ENOPKG          = syscall.Errno(0x41)
+       ENOPROTOOPT     = syscall.Errno(0x5c)
+       ENOSPC          = syscall.Errno(0x1c)
+       ENOSR           = syscall.Errno(0x3f)
+       ENOSTR          = syscall.Errno(0x3c)
+       ENOSYS          = syscall.Errno(0x26)
+       ENOTBLK         = syscall.Errno(0xf)
+       ENOTCONN        = syscall.Errno(0x6b)
+       ENOTDIR         = syscall.Errno(0x14)
+       ENOTEMPTY       = syscall.Errno(0x27)
+       ENOTNAM         = syscall.Errno(0x76)
+       ENOTRECOVERABLE = syscall.Errno(0x83)
+       ENOTSOCK        = syscall.Errno(0x58)
+       ENOTSUP         = syscall.Errno(0x5f)
+       ENOTTY          = syscall.Errno(0x19)
+       ENOTUNIQ        = syscall.Errno(0x4c)
+       ENXIO           = syscall.Errno(0x6)
+       EOPNOTSUPP      = syscall.Errno(0x5f)
+       EOVERFLOW       = syscall.Errno(0x4b)
+       EOWNERDEAD      = syscall.Errno(0x82)
+       EPERM           = syscall.Errno(0x1)
+       EPFNOSUPPORT    = syscall.Errno(0x60)
+       EPIPE           = syscall.Errno(0x20)
+       EPROTO          = syscall.Errno(0x47)
+       EPROTONOSUPPORT = syscall.Errno(0x5d)
+       EPROTOTYPE      = syscall.Errno(0x5b)
+       ERANGE          = syscall.Errno(0x22)
+       EREMCHG         = syscall.Errno(0x4e)
+       EREMOTE         = syscall.Errno(0x42)
+       EREMOTEIO       = syscall.Errno(0x79)
+       ERESTART        = syscall.Errno(0x55)
+       ERFKILL         = syscall.Errno(0x84)
+       EROFS           = syscall.Errno(0x1e)
+       ESHUTDOWN       = syscall.Errno(0x6c)
+       ESOCKTNOSUPPORT = syscall.Errno(0x5e)
+       ESPIPE          = syscall.Errno(0x1d)
+       ESRCH           = syscall.Errno(0x3)
+       ESRMNT          = syscall.Errno(0x45)
+       ESTALE          = syscall.Errno(0x74)
+       ESTRPIPE        = syscall.Errno(0x56)
+       ETIME           = syscall.Errno(0x3e)
+       ETIMEDOUT       = syscall.Errno(0x6e)
+       ETOOMANYREFS    = syscall.Errno(0x6d)
+       ETXTBSY         = syscall.Errno(0x1a)
+       EUCLEAN         = syscall.Errno(0x75)
+       EUNATCH         = syscall.Errno(0x31)
+       EUSERS          = syscall.Errno(0x57)
+       EWOULDBLOCK     = syscall.Errno(0xb)
+       EXDEV           = syscall.Errno(0x12)
+       EXFULL          = syscall.Errno(0x36)
+)
+
+// Signals
+const (
+       SIGABRT   = syscall.Signal(0x6)
+       SIGALRM   = syscall.Signal(0xe)
+       SIGBUS    = syscall.Signal(0x7)
+       SIGCHLD   = syscall.Signal(0x11)
+       SIGCLD    = syscall.Signal(0x11)
+       SIGCONT   = syscall.Signal(0x12)
+       SIGFPE    = syscall.Signal(0x8)
+       SIGHUP    = syscall.Signal(0x1)
+       SIGILL    = syscall.Signal(0x4)
+       SIGINT    = syscall.Signal(0x2)
+       SIGIO     = syscall.Signal(0x1d)
+       SIGIOT    = syscall.Signal(0x6)
+       SIGKILL   = syscall.Signal(0x9)
+       SIGPIPE   = syscall.Signal(0xd)
+       SIGPOLL   = syscall.Signal(0x1d)
+       SIGPROF   = syscall.Signal(0x1b)
+       SIGPWR    = syscall.Signal(0x1e)
+       SIGQUIT   = syscall.Signal(0x3)
+       SIGSEGV   = syscall.Signal(0xb)
+       SIGSTKFLT = syscall.Signal(0x10)
+       SIGSTOP   = syscall.Signal(0x13)
+       SIGSYS    = syscall.Signal(0x1f)
+       SIGTERM   = syscall.Signal(0xf)
+       SIGTRAP   = syscall.Signal(0x5)
+       SIGTSTP   = syscall.Signal(0x14)
+       SIGTTIN   = syscall.Signal(0x15)
+       SIGTTOU   = syscall.Signal(0x16)
+       SIGUNUSED = syscall.Signal(0x1f)
+       SIGURG    = syscall.Signal(0x17)
+       SIGUSR1   = syscall.Signal(0xa)
+       SIGUSR2   = syscall.Signal(0xc)
+       SIGVTALRM = syscall.Signal(0x1a)
+       SIGWINCH  = syscall.Signal(0x1c)
+       SIGXCPU   = syscall.Signal(0x18)
+       SIGXFSZ   = syscall.Signal(0x19)
+)
+
+// Error table
+var errors = [...]string{
+       1:   "operation not permitted",
+       2:   "no such file or directory",
+       3:   "no such process",
+       4:   "interrupted system call",
+       5:   "input/output error",
+       6:   "no such device or address",
+       7:   "argument list too long",
+       8:   "exec format error",
+       9:   "bad file descriptor",
+       10:  "no child processes",
+       11:  "resource temporarily unavailable",
+       12:  "cannot allocate memory",
+       13:  "permission denied",
+       14:  "bad address",
+       15:  "block device required",
+       16:  "device or resource busy",
+       17:  "file exists",
+       18:  "invalid cross-device link",
+       19:  "no such device",
+       20:  "not a directory",
+       21:  "is a directory",
+       22:  "invalid argument",
+       23:  "too many open files in system",
+       24:  "too many open files",
+       25:  "inappropriate ioctl for device",
+       26:  "text file busy",
+       27:  "file too large",
+       28:  "no space left on device",
+       29:  "illegal seek",
+       30:  "read-only file system",
+       31:  "too many links",
+       32:  "broken pipe",
+       33:  "numerical argument out of domain",
+       34:  "numerical result out of range",
+       35:  "resource deadlock avoided",
+       36:  "file name too long",
+       37:  "no locks available",
+       38:  "function not implemented",
+       39:  "directory not empty",
+       40:  "too many levels of symbolic links",
+       42:  "no message of desired type",
+       43:  "identifier removed",
+       44:  "channel number out of range",
+       45:  "level 2 not synchronized",
+       46:  "level 3 halted",
+       47:  "level 3 reset",
+       48:  "link number out of range",
+       49:  "protocol driver not attached",
+       50:  "no CSI structure available",
+       51:  "level 2 halted",
+       52:  "invalid exchange",
+       53:  "invalid request descriptor",
+       54:  "exchange full",
+       55:  "no anode",
+       56:  "invalid request code",
+       57:  "invalid slot",
+       59:  "bad font file format",
+       60:  "device not a stream",
+       61:  "no data available",
+       62:  "timer expired",
+       63:  "out of streams resources",
+       64:  "machine is not on the network",
+       65:  "package not installed",
+       66:  "object is remote",
+       67:  "link has been severed",
+       68:  "advertise error",
+       69:  "srmount error",
+       70:  "communication error on send",
+       71:  "protocol error",
+       72:  "multihop attempted",
+       73:  "RFS specific error",
+       74:  "bad message",
+       75:  "value too large for defined data type",
+       76:  "name not unique on network",
+       77:  "file descriptor in bad state",
+       78:  "remote address changed",
+       79:  "can not access a needed shared library",
+       80:  "accessing a corrupted shared library",
+       81:  ".lib section in a.out corrupted",
+       82:  "attempting to link in too many shared libraries",
+       83:  "cannot exec a shared library directly",
+       84:  "invalid or incomplete multibyte or wide character",
+       85:  "interrupted system call should be restarted",
+       86:  "streams pipe error",
+       87:  "too many users",
+       88:  "socket operation on non-socket",
+       89:  "destination address required",
+       90:  "message too long",
+       91:  "protocol wrong type for socket",
+       92:  "protocol not available",
+       93:  "protocol not supported",
+       94:  "socket type not supported",
+       95:  "operation not supported",
+       96:  "protocol family not supported",
+       97:  "address family not supported by protocol",
+       98:  "address already in use",
+       99:  "cannot assign requested address",
+       100: "network is down",
+       101: "network is unreachable",
+       102: "network dropped connection on reset",
+       103: "software caused connection abort",
+       104: "connection reset by peer",
+       105: "no buffer space available",
+       106: "transport endpoint is already connected",
+       107: "transport endpoint is not connected",
+       108: "cannot send after transport endpoint shutdown",
+       109: "too many references: cannot splice",
+       110: "connection timed out",
+       111: "connection refused",
+       112: "host is down",
+       113: "no route to host",
+       114: "operation already in progress",
+       115: "operation now in progress",
+       116: "stale file handle",
+       117: "structure needs cleaning",
+       118: "not a XENIX named type file",
+       119: "no XENIX semaphores available",
+       120: "is a named type file",
+       121: "remote I/O error",
+       122: "disk quota exceeded",
+       123: "no medium found",
+       124: "wrong medium type",
+       125: "operation canceled",
+       126: "required key not available",
+       127: "key has expired",
+       128: "key has been revoked",
+       129: "key was rejected by service",
+       130: "owner died",
+       131: "state not recoverable",
+       132: "operation not possible due to RF-kill",
+       133: "memory page has hardware error",
+}
+
+// Signal table
+var signals = [...]string{
+       1:  "hangup",
+       2:  "interrupt",
+       3:  "quit",
+       4:  "illegal instruction",
+       5:  "trace/breakpoint trap",
+       6:  "aborted",
+       7:  "bus error",
+       8:  "floating point exception",
+       9:  "killed",
+       10: "user defined signal 1",
+       11: "segmentation fault",
+       12: "user defined signal 2",
+       13: "broken pipe",
+       14: "alarm clock",
+       15: "terminated",
+       16: "stack fault",
+       17: "child exited",
+       18: "continued",
+       19: "stopped (signal)",
+       20: "stopped",
+       21: "stopped (tty input)",
+       22: "stopped (tty output)",
+       23: "urgent I/O condition",
+       24: "CPU time limit exceeded",
+       25: "file size limit exceeded",
+       26: "virtual timer expired",
+       27: "profiling timer expired",
+       28: "window changed",
+       29: "I/O possible",
+       30: "power failure",
+       31: "bad system call",
+}
diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go
new file mode 100644 (file)
index 0000000..c0ecd47
--- /dev/null
@@ -0,0 +1,2190 @@
+// mkerrors.sh -Wall -Werror -static -I/tmp/include -fsigned-char
+// Code generated by the command above; see README.md. DO NOT EDIT.
+
+// +build arm64,linux
+
+// Created by cgo -godefs - DO NOT EDIT
+// cgo -godefs -- -Wall -Werror -static -I/tmp/include -fsigned-char _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                               = 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
+)
+
+// Errors
+const (
+       E2BIG           = syscall.Errno(0x7)
+       EACCES          = syscall.Errno(0xd)
+       EADDRINUSE      = syscall.Errno(0x62)
+       EADDRNOTAVAIL   = syscall.Errno(0x63)
+       EADV            = syscall.Errno(0x44)
+       EAFNOSUPPORT    = syscall.Errno(0x61)
+       EAGAIN          = syscall.Errno(0xb)
+       EALREADY        = syscall.Errno(0x72)
+       EBADE           = syscall.Errno(0x34)
+       EBADF           = syscall.Errno(0x9)
+       EBADFD          = syscall.Errno(0x4d)
+       EBADMSG         = syscall.Errno(0x4a)
+       EBADR           = syscall.Errno(0x35)
+       EBADRQC         = syscall.Errno(0x38)
+       EBADSLT         = syscall.Errno(0x39)
+       EBFONT          = syscall.Errno(0x3b)
+       EBUSY           = syscall.Errno(0x10)
+       ECANCELED       = syscall.Errno(0x7d)
+       ECHILD          = syscall.Errno(0xa)
+       ECHRNG          = syscall.Errno(0x2c)
+       ECOMM           = syscall.Errno(0x46)
+       ECONNABORTED    = syscall.Errno(0x67)
+       ECONNREFUSED    = syscall.Errno(0x6f)
+       ECONNRESET      = syscall.Errno(0x68)
+       EDEADLK         = syscall.Errno(0x23)
+       EDEADLOCK       = syscall.Errno(0x23)
+       EDESTADDRREQ    = syscall.Errno(0x59)
+       EDOM            = syscall.Errno(0x21)
+       EDOTDOT         = syscall.Errno(0x49)
+       EDQUOT          = syscall.Errno(0x7a)
+       EEXIST          = syscall.Errno(0x11)
+       EFAULT          = syscall.Errno(0xe)
+       EFBIG           = syscall.Errno(0x1b)
+       EHOSTDOWN       = syscall.Errno(0x70)
+       EHOSTUNREACH    = syscall.Errno(0x71)
+       EHWPOISON       = syscall.Errno(0x85)
+       EIDRM           = syscall.Errno(0x2b)
+       EILSEQ          = syscall.Errno(0x54)
+       EINPROGRESS     = syscall.Errno(0x73)
+       EINTR           = syscall.Errno(0x4)
+       EINVAL          = syscall.Errno(0x16)
+       EIO             = syscall.Errno(0x5)
+       EISCONN         = syscall.Errno(0x6a)
+       EISDIR          = syscall.Errno(0x15)
+       EISNAM          = syscall.Errno(0x78)
+       EKEYEXPIRED     = syscall.Errno(0x7f)
+       EKEYREJECTED    = syscall.Errno(0x81)
+       EKEYREVOKED     = syscall.Errno(0x80)
+       EL2HLT          = syscall.Errno(0x33)
+       EL2NSYNC        = syscall.Errno(0x2d)
+       EL3HLT          = syscall.Errno(0x2e)
+       EL3RST          = syscall.Errno(0x2f)
+       ELIBACC         = syscall.Errno(0x4f)
+       ELIBBAD         = syscall.Errno(0x50)
+       ELIBEXEC        = syscall.Errno(0x53)
+       ELIBMAX         = syscall.Errno(0x52)
+       ELIBSCN         = syscall.Errno(0x51)
+       ELNRNG          = syscall.Errno(0x30)
+       ELOOP           = syscall.Errno(0x28)
+       EMEDIUMTYPE     = syscall.Errno(0x7c)
+       EMFILE          = syscall.Errno(0x18)
+       EMLINK          = syscall.Errno(0x1f)
+       EMSGSIZE        = syscall.Errno(0x5a)
+       EMULTIHOP       = syscall.Errno(0x48)
+       ENAMETOOLONG    = syscall.Errno(0x24)
+       ENAVAIL         = syscall.Errno(0x77)
+       ENETDOWN        = syscall.Errno(0x64)
+       ENETRESET       = syscall.Errno(0x66)
+       ENETUNREACH     = syscall.Errno(0x65)
+       ENFILE          = syscall.Errno(0x17)
+       ENOANO          = syscall.Errno(0x37)
+       ENOBUFS         = syscall.Errno(0x69)
+       ENOCSI          = syscall.Errno(0x32)
+       ENODATA         = syscall.Errno(0x3d)
+       ENODEV          = syscall.Errno(0x13)
+       ENOENT          = syscall.Errno(0x2)
+       ENOEXEC         = syscall.Errno(0x8)
+       ENOKEY          = syscall.Errno(0x7e)
+       ENOLCK          = syscall.Errno(0x25)
+       ENOLINK         = syscall.Errno(0x43)
+       ENOMEDIUM       = syscall.Errno(0x7b)
+       ENOMEM          = syscall.Errno(0xc)
+       ENOMSG          = syscall.Errno(0x2a)
+       ENONET          = syscall.Errno(0x40)
+       ENOPKG          = syscall.Errno(0x41)
+       ENOPROTOOPT     = syscall.Errno(0x5c)
+       ENOSPC          = syscall.Errno(0x1c)
+       ENOSR           = syscall.Errno(0x3f)
+       ENOSTR          = syscall.Errno(0x3c)
+       ENOSYS          = syscall.Errno(0x26)
+       ENOTBLK         = syscall.Errno(0xf)
+       ENOTCONN        = syscall.Errno(0x6b)
+       ENOTDIR         = syscall.Errno(0x14)
+       ENOTEMPTY       = syscall.Errno(0x27)
+       ENOTNAM         = syscall.Errno(0x76)
+       ENOTRECOVERABLE = syscall.Errno(0x83)
+       ENOTSOCK        = syscall.Errno(0x58)
+       ENOTSUP         = syscall.Errno(0x5f)
+       ENOTTY          = syscall.Errno(0x19)
+       ENOTUNIQ        = syscall.Errno(0x4c)
+       ENXIO           = syscall.Errno(0x6)
+       EOPNOTSUPP      = syscall.Errno(0x5f)
+       EOVERFLOW       = syscall.Errno(0x4b)
+       EOWNERDEAD      = syscall.Errno(0x82)
+       EPERM           = syscall.Errno(0x1)
+       EPFNOSUPPORT    = syscall.Errno(0x60)
+       EPIPE           = syscall.Errno(0x20)
+       EPROTO          = syscall.Errno(0x47)
+       EPROTONOSUPPORT = syscall.Errno(0x5d)
+       EPROTOTYPE      = syscall.Errno(0x5b)
+       ERANGE          = syscall.Errno(0x22)
+       EREMCHG         = syscall.Errno(0x4e)
+       EREMOTE         = syscall.Errno(0x42)
+       EREMOTEIO       = syscall.Errno(0x79)
+       ERESTART        = syscall.Errno(0x55)
+       ERFKILL         = syscall.Errno(0x84)
+       EROFS           = syscall.Errno(0x1e)
+       ESHUTDOWN       = syscall.Errno(0x6c)
+       ESOCKTNOSUPPORT = syscall.Errno(0x5e)
+       ESPIPE          = syscall.Errno(0x1d)
+       ESRCH           = syscall.Errno(0x3)
+       ESRMNT          = syscall.Errno(0x45)
+       ESTALE          = syscall.Errno(0x74)
+       ESTRPIPE        = syscall.Errno(0x56)
+       ETIME           = syscall.Errno(0x3e)
+       ETIMEDOUT       = syscall.Errno(0x6e)
+       ETOOMANYREFS    = syscall.Errno(0x6d)
+       ETXTBSY         = syscall.Errno(0x1a)
+       EUCLEAN         = syscall.Errno(0x75)
+       EUNATCH         = syscall.Errno(0x31)
+       EUSERS          = syscall.Errno(0x57)
+       EWOULDBLOCK     = syscall.Errno(0xb)
+       EXDEV           = syscall.Errno(0x12)
+       EXFULL          = syscall.Errno(0x36)
+)
+
+// Signals
+const (
+       SIGABRT   = syscall.Signal(0x6)
+       SIGALRM   = syscall.Signal(0xe)
+       SIGBUS    = syscall.Signal(0x7)
+       SIGCHLD   = syscall.Signal(0x11)
+       SIGCLD    = syscall.Signal(0x11)
+       SIGCONT   = syscall.Signal(0x12)
+       SIGFPE    = syscall.Signal(0x8)
+       SIGHUP    = syscall.Signal(0x1)
+       SIGILL    = syscall.Signal(0x4)
+       SIGINT    = syscall.Signal(0x2)
+       SIGIO     = syscall.Signal(0x1d)
+       SIGIOT    = syscall.Signal(0x6)
+       SIGKILL   = syscall.Signal(0x9)
+       SIGPIPE   = syscall.Signal(0xd)
+       SIGPOLL   = syscall.Signal(0x1d)
+       SIGPROF   = syscall.Signal(0x1b)
+       SIGPWR    = syscall.Signal(0x1e)
+       SIGQUIT   = syscall.Signal(0x3)
+       SIGSEGV   = syscall.Signal(0xb)
+       SIGSTKFLT = syscall.Signal(0x10)
+       SIGSTOP   = syscall.Signal(0x13)
+       SIGSYS    = syscall.Signal(0x1f)
+       SIGTERM   = syscall.Signal(0xf)
+       SIGTRAP   = syscall.Signal(0x5)
+       SIGTSTP   = syscall.Signal(0x14)
+       SIGTTIN   = syscall.Signal(0x15)
+       SIGTTOU   = syscall.Signal(0x16)
+       SIGUNUSED = syscall.Signal(0x1f)
+       SIGURG    = syscall.Signal(0x17)
+       SIGUSR1   = syscall.Signal(0xa)
+       SIGUSR2   = syscall.Signal(0xc)
+       SIGVTALRM = syscall.Signal(0x1a)
+       SIGWINCH  = syscall.Signal(0x1c)
+       SIGXCPU   = syscall.Signal(0x18)
+       SIGXFSZ   = syscall.Signal(0x19)
+)
+
+// Error table
+var errors = [...]string{
+       1:   "operation not permitted",
+       2:   "no such file or directory",
+       3:   "no such process",
+       4:   "interrupted system call",
+       5:   "input/output error",
+       6:   "no such device or address",
+       7:   "argument list too long",
+       8:   "exec format error",
+       9:   "bad file descriptor",
+       10:  "no child processes",
+       11:  "resource temporarily unavailable",
+       12:  "cannot allocate memory",
+       13:  "permission denied",
+       14:  "bad address",
+       15:  "block device required",
+       16:  "device or resource busy",
+       17:  "file exists",
+       18:  "invalid cross-device link",
+       19:  "no such device",
+       20:  "not a directory",
+       21:  "is a directory",
+       22:  "invalid argument",
+       23:  "too many open files in system",
+       24:  "too many open files",
+       25:  "inappropriate ioctl for device",
+       26:  "text file busy",
+       27:  "file too large",
+       28:  "no space left on device",
+       29:  "illegal seek",
+       30:  "read-only file system",
+       31:  "too many links",
+       32:  "broken pipe",
+       33:  "numerical argument out of domain",
+       34:  "numerical result out of range",
+       35:  "resource deadlock avoided",
+       36:  "file name too long",
+       37:  "no locks available",
+       38:  "function not implemented",
+       39:  "directory not empty",
+       40:  "too many levels of symbolic links",
+       42:  "no message of desired type",
+       43:  "identifier removed",
+       44:  "channel number out of range",
+       45:  "level 2 not synchronized",
+       46:  "level 3 halted",
+       47:  "level 3 reset",
+       48:  "link number out of range",
+       49:  "protocol driver not attached",
+       50:  "no CSI structure available",
+       51:  "level 2 halted",
+       52:  "invalid exchange",
+       53:  "invalid request descriptor",
+       54:  "exchange full",
+       55:  "no anode",
+       56:  "invalid request code",
+       57:  "invalid slot",
+       59:  "bad font file format",
+       60:  "device not a stream",
+       61:  "no data available",
+       62:  "timer expired",
+       63:  "out of streams resources",
+       64:  "machine is not on the network",
+       65:  "package not installed",
+       66:  "object is remote",
+       67:  "link has been severed",
+       68:  "advertise error",
+       69:  "srmount error",
+       70:  "communication error on send",
+       71:  "protocol error",
+       72:  "multihop attempted",
+       73:  "RFS specific error",
+       74:  "bad message",
+       75:  "value too large for defined data type",
+       76:  "name not unique on network",
+       77:  "file descriptor in bad state",
+       78:  "remote address changed",
+       79:  "can not access a needed shared library",
+       80:  "accessing a corrupted shared library",
+       81:  ".lib section in a.out corrupted",
+       82:  "attempting to link in too many shared libraries",
+       83:  "cannot exec a shared library directly",
+       84:  "invalid or incomplete multibyte or wide character",
+       85:  "interrupted system call should be restarted",
+       86:  "streams pipe error",
+       87:  "too many users",
+       88:  "socket operation on non-socket",
+       89:  "destination address required",
+       90:  "message too long",
+       91:  "protocol wrong type for socket",
+       92:  "protocol not available",
+       93:  "protocol not supported",
+       94:  "socket type not supported",
+       95:  "operation not supported",
+       96:  "protocol family not supported",
+       97:  "address family not supported by protocol",
+       98:  "address already in use",
+       99:  "cannot assign requested address",
+       100: "network is down",
+       101: "network is unreachable",
+       102: "network dropped connection on reset",
+       103: "software caused connection abort",
+       104: "connection reset by peer",
+       105: "no buffer space available",
+       106: "transport endpoint is already connected",
+       107: "transport endpoint is not connected",
+       108: "cannot send after transport endpoint shutdown",
+       109: "too many references: cannot splice",
+       110: "connection timed out",
+       111: "connection refused",
+       112: "host is down",
+       113: "no route to host",
+       114: "operation already in progress",
+       115: "operation now in progress",
+       116: "stale file handle",
+       117: "structure needs cleaning",
+       118: "not a XENIX named type file",
+       119: "no XENIX semaphores available",
+       120: "is a named type file",
+       121: "remote I/O error",
+       122: "disk quota exceeded",
+       123: "no medium found",
+       124: "wrong medium type",
+       125: "operation canceled",
+       126: "required key not available",
+       127: "key has expired",
+       128: "key has been revoked",
+       129: "key was rejected by service",
+       130: "owner died",
+       131: "state not recoverable",
+       132: "operation not possible due to RF-kill",
+       133: "memory page has hardware error",
+}
+
+// Signal table
+var signals = [...]string{
+       1:  "hangup",
+       2:  "interrupt",
+       3:  "quit",
+       4:  "illegal instruction",
+       5:  "trace/breakpoint trap",
+       6:  "aborted",
+       7:  "bus error",
+       8:  "floating point exception",
+       9:  "killed",
+       10: "user defined signal 1",
+       11: "segmentation fault",
+       12: "user defined signal 2",
+       13: "broken pipe",
+       14: "alarm clock",
+       15: "terminated",
+       16: "stack fault",
+       17: "child exited",
+       18: "continued",
+       19: "stopped (signal)",
+       20: "stopped",
+       21: "stopped (tty input)",
+       22: "stopped (tty output)",
+       23: "urgent I/O condition",
+       24: "CPU time limit exceeded",
+       25: "file size limit exceeded",
+       26: "virtual timer expired",
+       27: "profiling timer expired",
+       28: "window changed",
+       29: "I/O possible",
+       30: "power failure",
+       31: "bad system call",
+}
diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_mips.go b/vendor/golang.org/x/sys/unix/zerrors_linux_mips.go
new file mode 100644 (file)
index 0000000..900f568
--- /dev/null
@@ -0,0 +1,2209 @@
+// mkerrors.sh -Wall -Werror -static -I/tmp/include
+// Code generated by the command above; see README.md. DO NOT EDIT.
+
+// +build mips,linux
+
+// Created by 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                               = 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
+)
+
+// Errors
+const (
+       E2BIG           = syscall.Errno(0x7)
+       EACCES          = syscall.Errno(0xd)
+       EADDRINUSE      = syscall.Errno(0x7d)
+       EADDRNOTAVAIL   = syscall.Errno(0x7e)
+       EADV            = syscall.Errno(0x44)
+       EAFNOSUPPORT    = syscall.Errno(0x7c)
+       EAGAIN          = syscall.Errno(0xb)
+       EALREADY        = syscall.Errno(0x95)
+       EBADE           = syscall.Errno(0x32)
+       EBADF           = syscall.Errno(0x9)
+       EBADFD          = syscall.Errno(0x51)
+       EBADMSG         = syscall.Errno(0x4d)
+       EBADR           = syscall.Errno(0x33)
+       EBADRQC         = syscall.Errno(0x36)
+       EBADSLT         = syscall.Errno(0x37)
+       EBFONT          = syscall.Errno(0x3b)
+       EBUSY           = syscall.Errno(0x10)
+       ECANCELED       = syscall.Errno(0x9e)
+       ECHILD          = syscall.Errno(0xa)
+       ECHRNG          = syscall.Errno(0x25)
+       ECOMM           = syscall.Errno(0x46)
+       ECONNABORTED    = syscall.Errno(0x82)
+       ECONNREFUSED    = syscall.Errno(0x92)
+       ECONNRESET      = syscall.Errno(0x83)
+       EDEADLK         = syscall.Errno(0x2d)
+       EDEADLOCK       = syscall.Errno(0x38)
+       EDESTADDRREQ    = syscall.Errno(0x60)
+       EDOM            = syscall.Errno(0x21)
+       EDOTDOT         = syscall.Errno(0x49)
+       EDQUOT          = syscall.Errno(0x46d)
+       EEXIST          = syscall.Errno(0x11)
+       EFAULT          = syscall.Errno(0xe)
+       EFBIG           = syscall.Errno(0x1b)
+       EHOSTDOWN       = syscall.Errno(0x93)
+       EHOSTUNREACH    = syscall.Errno(0x94)
+       EHWPOISON       = syscall.Errno(0xa8)
+       EIDRM           = syscall.Errno(0x24)
+       EILSEQ          = syscall.Errno(0x58)
+       EINIT           = syscall.Errno(0x8d)
+       EINPROGRESS     = syscall.Errno(0x96)
+       EINTR           = syscall.Errno(0x4)
+       EINVAL          = syscall.Errno(0x16)
+       EIO             = syscall.Errno(0x5)
+       EISCONN         = syscall.Errno(0x85)
+       EISDIR          = syscall.Errno(0x15)
+       EISNAM          = syscall.Errno(0x8b)
+       EKEYEXPIRED     = syscall.Errno(0xa2)
+       EKEYREJECTED    = syscall.Errno(0xa4)
+       EKEYREVOKED     = syscall.Errno(0xa3)
+       EL2HLT          = syscall.Errno(0x2c)
+       EL2NSYNC        = syscall.Errno(0x26)
+       EL3HLT          = syscall.Errno(0x27)
+       EL3RST          = syscall.Errno(0x28)
+       ELIBACC         = syscall.Errno(0x53)
+       ELIBBAD         = syscall.Errno(0x54)
+       ELIBEXEC        = syscall.Errno(0x57)
+       ELIBMAX         = syscall.Errno(0x56)
+       ELIBSCN         = syscall.Errno(0x55)
+       ELNRNG          = syscall.Errno(0x29)
+       ELOOP           = syscall.Errno(0x5a)
+       EMEDIUMTYPE     = syscall.Errno(0xa0)
+       EMFILE          = syscall.Errno(0x18)
+       EMLINK          = syscall.Errno(0x1f)
+       EMSGSIZE        = syscall.Errno(0x61)
+       EMULTIHOP       = syscall.Errno(0x4a)
+       ENAMETOOLONG    = syscall.Errno(0x4e)
+       ENAVAIL         = syscall.Errno(0x8a)
+       ENETDOWN        = syscall.Errno(0x7f)
+       ENETRESET       = syscall.Errno(0x81)
+       ENETUNREACH     = syscall.Errno(0x80)
+       ENFILE          = syscall.Errno(0x17)
+       ENOANO          = syscall.Errno(0x35)
+       ENOBUFS         = syscall.Errno(0x84)
+       ENOCSI          = syscall.Errno(0x2b)
+       ENODATA         = syscall.Errno(0x3d)
+       ENODEV          = syscall.Errno(0x13)
+       ENOENT          = syscall.Errno(0x2)
+       ENOEXEC         = syscall.Errno(0x8)
+       ENOKEY          = syscall.Errno(0xa1)
+       ENOLCK          = syscall.Errno(0x2e)
+       ENOLINK         = syscall.Errno(0x43)
+       ENOMEDIUM       = syscall.Errno(0x9f)
+       ENOMEM          = syscall.Errno(0xc)
+       ENOMSG          = syscall.Errno(0x23)
+       ENONET          = syscall.Errno(0x40)
+       ENOPKG          = syscall.Errno(0x41)
+       ENOPROTOOPT     = syscall.Errno(0x63)
+       ENOSPC          = syscall.Errno(0x1c)
+       ENOSR           = syscall.Errno(0x3f)
+       ENOSTR          = syscall.Errno(0x3c)
+       ENOSYS          = syscall.Errno(0x59)
+       ENOTBLK         = syscall.Errno(0xf)
+       ENOTCONN        = syscall.Errno(0x86)
+       ENOTDIR         = syscall.Errno(0x14)
+       ENOTEMPTY       = syscall.Errno(0x5d)
+       ENOTNAM         = syscall.Errno(0x89)
+       ENOTRECOVERABLE = syscall.Errno(0xa6)
+       ENOTSOCK        = syscall.Errno(0x5f)
+       ENOTSUP         = syscall.Errno(0x7a)
+       ENOTTY          = syscall.Errno(0x19)
+       ENOTUNIQ        = syscall.Errno(0x50)
+       ENXIO           = syscall.Errno(0x6)
+       EOPNOTSUPP      = syscall.Errno(0x7a)
+       EOVERFLOW       = syscall.Errno(0x4f)
+       EOWNERDEAD      = syscall.Errno(0xa5)
+       EPERM           = syscall.Errno(0x1)
+       EPFNOSUPPORT    = syscall.Errno(0x7b)
+       EPIPE           = syscall.Errno(0x20)
+       EPROTO          = syscall.Errno(0x47)
+       EPROTONOSUPPORT = syscall.Errno(0x78)
+       EPROTOTYPE      = syscall.Errno(0x62)
+       ERANGE          = syscall.Errno(0x22)
+       EREMCHG         = syscall.Errno(0x52)
+       EREMDEV         = syscall.Errno(0x8e)
+       EREMOTE         = syscall.Errno(0x42)
+       EREMOTEIO       = syscall.Errno(0x8c)
+       ERESTART        = syscall.Errno(0x5b)
+       ERFKILL         = syscall.Errno(0xa7)
+       EROFS           = syscall.Errno(0x1e)
+       ESHUTDOWN       = syscall.Errno(0x8f)
+       ESOCKTNOSUPPORT = syscall.Errno(0x79)
+       ESPIPE          = syscall.Errno(0x1d)
+       ESRCH           = syscall.Errno(0x3)
+       ESRMNT          = syscall.Errno(0x45)
+       ESTALE          = syscall.Errno(0x97)
+       ESTRPIPE        = syscall.Errno(0x5c)
+       ETIME           = syscall.Errno(0x3e)
+       ETIMEDOUT       = syscall.Errno(0x91)
+       ETOOMANYREFS    = syscall.Errno(0x90)
+       ETXTBSY         = syscall.Errno(0x1a)
+       EUCLEAN         = syscall.Errno(0x87)
+       EUNATCH         = syscall.Errno(0x2a)
+       EUSERS          = syscall.Errno(0x5e)
+       EWOULDBLOCK     = syscall.Errno(0xb)
+       EXDEV           = syscall.Errno(0x12)
+       EXFULL          = syscall.Errno(0x34)
+)
+
+// Signals
+const (
+       SIGABRT   = syscall.Signal(0x6)
+       SIGALRM   = syscall.Signal(0xe)
+       SIGBUS    = syscall.Signal(0xa)
+       SIGCHLD   = syscall.Signal(0x12)
+       SIGCLD    = syscall.Signal(0x12)
+       SIGCONT   = syscall.Signal(0x19)
+       SIGEMT    = syscall.Signal(0x7)
+       SIGFPE    = syscall.Signal(0x8)
+       SIGHUP    = syscall.Signal(0x1)
+       SIGILL    = syscall.Signal(0x4)
+       SIGINT    = syscall.Signal(0x2)
+       SIGIO     = syscall.Signal(0x16)
+       SIGIOT    = syscall.Signal(0x6)
+       SIGKILL   = syscall.Signal(0x9)
+       SIGPIPE   = syscall.Signal(0xd)
+       SIGPOLL   = syscall.Signal(0x16)
+       SIGPROF   = syscall.Signal(0x1d)
+       SIGPWR    = syscall.Signal(0x13)
+       SIGQUIT   = syscall.Signal(0x3)
+       SIGSEGV   = syscall.Signal(0xb)
+       SIGSTOP   = syscall.Signal(0x17)
+       SIGSYS    = syscall.Signal(0xc)
+       SIGTERM   = syscall.Signal(0xf)
+       SIGTRAP   = syscall.Signal(0x5)
+       SIGTSTP   = syscall.Signal(0x18)
+       SIGTTIN   = syscall.Signal(0x1a)
+       SIGTTOU   = syscall.Signal(0x1b)
+       SIGURG    = syscall.Signal(0x15)
+       SIGUSR1   = syscall.Signal(0x10)
+       SIGUSR2   = syscall.Signal(0x11)
+       SIGVTALRM = syscall.Signal(0x1c)
+       SIGWINCH  = syscall.Signal(0x14)
+       SIGXCPU   = syscall.Signal(0x1e)
+       SIGXFSZ   = syscall.Signal(0x1f)
+)
+
+// Error table
+var errors = [...]string{
+       1:    "operation not permitted",
+       2:    "no such file or directory",
+       3:    "no such process",
+       4:    "interrupted system call",
+       5:    "input/output error",
+       6:    "no such device or address",
+       7:    "argument list too long",
+       8:    "exec format error",
+       9:    "bad file descriptor",
+       10:   "no child processes",
+       11:   "resource temporarily unavailable",
+       12:   "cannot allocate memory",
+       13:   "permission denied",
+       14:   "bad address",
+       15:   "block device required",
+       16:   "device or resource busy",
+       17:   "file exists",
+       18:   "invalid cross-device link",
+       19:   "no such device",
+       20:   "not a directory",
+       21:   "is a directory",
+       22:   "invalid argument",
+       23:   "too many open files in system",
+       24:   "too many open files",
+       25:   "inappropriate ioctl for device",
+       26:   "text file busy",
+       27:   "file too large",
+       28:   "no space left on device",
+       29:   "illegal seek",
+       30:   "read-only file system",
+       31:   "too many links",
+       32:   "broken pipe",
+       33:   "numerical argument out of domain",
+       34:   "numerical result out of range",
+       35:   "no message of desired type",
+       36:   "identifier removed",
+       37:   "channel number out of range",
+       38:   "level 2 not synchronized",
+       39:   "level 3 halted",
+       40:   "level 3 reset",
+       41:   "link number out of range",
+       42:   "protocol driver not attached",
+       43:   "no CSI structure available",
+       44:   "level 2 halted",
+       45:   "resource deadlock avoided",
+       46:   "no locks available",
+       50:   "invalid exchange",
+       51:   "invalid request descriptor",
+       52:   "exchange full",
+       53:   "no anode",
+       54:   "invalid request code",
+       55:   "invalid slot",
+       56:   "file locking deadlock error",
+       59:   "bad font file format",
+       60:   "device not a stream",
+       61:   "no data available",
+       62:   "timer expired",
+       63:   "out of streams resources",
+       64:   "machine is not on the network",
+       65:   "package not installed",
+       66:   "object is remote",
+       67:   "link has been severed",
+       68:   "advertise error",
+       69:   "srmount error",
+       70:   "communication error on send",
+       71:   "protocol error",
+       73:   "RFS specific error",
+       74:   "multihop attempted",
+       77:   "bad message",
+       78:   "file name too long",
+       79:   "value too large for defined data type",
+       80:   "name not unique on network",
+       81:   "file descriptor in bad state",
+       82:   "remote address changed",
+       83:   "can not access a needed shared library",
+       84:   "accessing a corrupted shared library",
+       85:   ".lib section in a.out corrupted",
+       86:   "attempting to link in too many shared libraries",
+       87:   "cannot exec a shared library directly",
+       88:   "invalid or incomplete multibyte or wide character",
+       89:   "function not implemented",
+       90:   "too many levels of symbolic links",
+       91:   "interrupted system call should be restarted",
+       92:   "streams pipe error",
+       93:   "directory not empty",
+       94:   "too many users",
+       95:   "socket operation on non-socket",
+       96:   "destination address required",
+       97:   "message too long",
+       98:   "protocol wrong type for socket",
+       99:   "protocol not available",
+       120:  "protocol not supported",
+       121:  "socket type not supported",
+       122:  "operation not supported",
+       123:  "protocol family not supported",
+       124:  "address family not supported by protocol",
+       125:  "address already in use",
+       126:  "cannot assign requested address",
+       127:  "network is down",
+       128:  "network is unreachable",
+       129:  "network dropped connection on reset",
+       130:  "software caused connection abort",
+       131:  "connection reset by peer",
+       132:  "no buffer space available",
+       133:  "transport endpoint is already connected",
+       134:  "transport endpoint is not connected",
+       135:  "structure needs cleaning",
+       137:  "not a XENIX named type file",
+       138:  "no XENIX semaphores available",
+       139:  "is a named type file",
+       140:  "remote I/O error",
+       141:  "unknown error 141",
+       142:  "unknown error 142",
+       143:  "cannot send after transport endpoint shutdown",
+       144:  "too many references: cannot splice",
+       145:  "connection timed out",
+       146:  "connection refused",
+       147:  "host is down",
+       148:  "no route to host",
+       149:  "operation already in progress",
+       150:  "operation now in progress",
+       151:  "stale file handle",
+       158:  "operation canceled",
+       159:  "no medium found",
+       160:  "wrong medium type",
+       161:  "required key not available",
+       162:  "key has expired",
+       163:  "key has been revoked",
+       164:  "key was rejected by service",
+       165:  "owner died",
+       166:  "state not recoverable",
+       167:  "operation not possible due to RF-kill",
+       168:  "memory page has hardware error",
+       1133: "disk quota exceeded",
+}
+
+// Signal table
+var signals = [...]string{
+       1:  "hangup",
+       2:  "interrupt",
+       3:  "quit",
+       4:  "illegal instruction",
+       5:  "trace/breakpoint trap",
+       6:  "aborted",
+       7:  "EMT trap",
+       8:  "floating point exception",
+       9:  "killed",
+       10: "bus error",
+       11: "segmentation fault",
+       12: "bad system call",
+       13: "broken pipe",
+       14: "alarm clock",
+       15: "terminated",
+       16: "user defined signal 1",
+       17: "user defined signal 2",
+       18: "child exited",
+       19: "power failure",
+       20: "window changed",
+       21: "urgent I/O condition",
+       22: "I/O possible",
+       23: "stopped (signal)",
+       24: "stopped",
+       25: "continued",
+       26: "stopped (tty input)",
+       27: "stopped (tty output)",
+       28: "virtual timer expired",
+       29: "profiling timer expired",
+       30: "CPU time limit exceeded",
+       31: "file size limit exceeded",
+}
diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go
new file mode 100644 (file)
index 0000000..4148f27
--- /dev/null
@@ -0,0 +1,2209 @@
+// mkerrors.sh -Wall -Werror -static -I/tmp/include
+// Code generated by the command above; see README.md. DO NOT EDIT.
+
+// +build mips64,linux
+
+// Created by 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                               = 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
+)
+
+// Errors
+const (
+       E2BIG           = syscall.Errno(0x7)
+       EACCES          = syscall.Errno(0xd)
+       EADDRINUSE      = syscall.Errno(0x7d)
+       EADDRNOTAVAIL   = syscall.Errno(0x7e)
+       EADV            = syscall.Errno(0x44)
+       EAFNOSUPPORT    = syscall.Errno(0x7c)
+       EAGAIN          = syscall.Errno(0xb)
+       EALREADY        = syscall.Errno(0x95)
+       EBADE           = syscall.Errno(0x32)
+       EBADF           = syscall.Errno(0x9)
+       EBADFD          = syscall.Errno(0x51)
+       EBADMSG         = syscall.Errno(0x4d)
+       EBADR           = syscall.Errno(0x33)
+       EBADRQC         = syscall.Errno(0x36)
+       EBADSLT         = syscall.Errno(0x37)
+       EBFONT          = syscall.Errno(0x3b)
+       EBUSY           = syscall.Errno(0x10)
+       ECANCELED       = syscall.Errno(0x9e)
+       ECHILD          = syscall.Errno(0xa)
+       ECHRNG          = syscall.Errno(0x25)
+       ECOMM           = syscall.Errno(0x46)
+       ECONNABORTED    = syscall.Errno(0x82)
+       ECONNREFUSED    = syscall.Errno(0x92)
+       ECONNRESET      = syscall.Errno(0x83)
+       EDEADLK         = syscall.Errno(0x2d)
+       EDEADLOCK       = syscall.Errno(0x38)
+       EDESTADDRREQ    = syscall.Errno(0x60)
+       EDOM            = syscall.Errno(0x21)
+       EDOTDOT         = syscall.Errno(0x49)
+       EDQUOT          = syscall.Errno(0x46d)
+       EEXIST          = syscall.Errno(0x11)
+       EFAULT          = syscall.Errno(0xe)
+       EFBIG           = syscall.Errno(0x1b)
+       EHOSTDOWN       = syscall.Errno(0x93)
+       EHOSTUNREACH    = syscall.Errno(0x94)
+       EHWPOISON       = syscall.Errno(0xa8)
+       EIDRM           = syscall.Errno(0x24)
+       EILSEQ          = syscall.Errno(0x58)
+       EINIT           = syscall.Errno(0x8d)
+       EINPROGRESS     = syscall.Errno(0x96)
+       EINTR           = syscall.Errno(0x4)
+       EINVAL          = syscall.Errno(0x16)
+       EIO             = syscall.Errno(0x5)
+       EISCONN         = syscall.Errno(0x85)
+       EISDIR          = syscall.Errno(0x15)
+       EISNAM          = syscall.Errno(0x8b)
+       EKEYEXPIRED     = syscall.Errno(0xa2)
+       EKEYREJECTED    = syscall.Errno(0xa4)
+       EKEYREVOKED     = syscall.Errno(0xa3)
+       EL2HLT          = syscall.Errno(0x2c)
+       EL2NSYNC        = syscall.Errno(0x26)
+       EL3HLT          = syscall.Errno(0x27)
+       EL3RST          = syscall.Errno(0x28)
+       ELIBACC         = syscall.Errno(0x53)
+       ELIBBAD         = syscall.Errno(0x54)
+       ELIBEXEC        = syscall.Errno(0x57)
+       ELIBMAX         = syscall.Errno(0x56)
+       ELIBSCN         = syscall.Errno(0x55)
+       ELNRNG          = syscall.Errno(0x29)
+       ELOOP           = syscall.Errno(0x5a)
+       EMEDIUMTYPE     = syscall.Errno(0xa0)
+       EMFILE          = syscall.Errno(0x18)
+       EMLINK          = syscall.Errno(0x1f)
+       EMSGSIZE        = syscall.Errno(0x61)
+       EMULTIHOP       = syscall.Errno(0x4a)
+       ENAMETOOLONG    = syscall.Errno(0x4e)
+       ENAVAIL         = syscall.Errno(0x8a)
+       ENETDOWN        = syscall.Errno(0x7f)
+       ENETRESET       = syscall.Errno(0x81)
+       ENETUNREACH     = syscall.Errno(0x80)
+       ENFILE          = syscall.Errno(0x17)
+       ENOANO          = syscall.Errno(0x35)
+       ENOBUFS         = syscall.Errno(0x84)
+       ENOCSI          = syscall.Errno(0x2b)
+       ENODATA         = syscall.Errno(0x3d)
+       ENODEV          = syscall.Errno(0x13)
+       ENOENT          = syscall.Errno(0x2)
+       ENOEXEC         = syscall.Errno(0x8)
+       ENOKEY          = syscall.Errno(0xa1)
+       ENOLCK          = syscall.Errno(0x2e)
+       ENOLINK         = syscall.Errno(0x43)
+       ENOMEDIUM       = syscall.Errno(0x9f)
+       ENOMEM          = syscall.Errno(0xc)
+       ENOMSG          = syscall.Errno(0x23)
+       ENONET          = syscall.Errno(0x40)
+       ENOPKG          = syscall.Errno(0x41)
+       ENOPROTOOPT     = syscall.Errno(0x63)
+       ENOSPC          = syscall.Errno(0x1c)
+       ENOSR           = syscall.Errno(0x3f)
+       ENOSTR          = syscall.Errno(0x3c)
+       ENOSYS          = syscall.Errno(0x59)
+       ENOTBLK         = syscall.Errno(0xf)
+       ENOTCONN        = syscall.Errno(0x86)
+       ENOTDIR         = syscall.Errno(0x14)
+       ENOTEMPTY       = syscall.Errno(0x5d)
+       ENOTNAM         = syscall.Errno(0x89)
+       ENOTRECOVERABLE = syscall.Errno(0xa6)
+       ENOTSOCK        = syscall.Errno(0x5f)
+       ENOTSUP         = syscall.Errno(0x7a)
+       ENOTTY          = syscall.Errno(0x19)
+       ENOTUNIQ        = syscall.Errno(0x50)
+       ENXIO           = syscall.Errno(0x6)
+       EOPNOTSUPP      = syscall.Errno(0x7a)
+       EOVERFLOW       = syscall.Errno(0x4f)
+       EOWNERDEAD      = syscall.Errno(0xa5)
+       EPERM           = syscall.Errno(0x1)
+       EPFNOSUPPORT    = syscall.Errno(0x7b)
+       EPIPE           = syscall.Errno(0x20)
+       EPROTO          = syscall.Errno(0x47)
+       EPROTONOSUPPORT = syscall.Errno(0x78)
+       EPROTOTYPE      = syscall.Errno(0x62)
+       ERANGE          = syscall.Errno(0x22)
+       EREMCHG         = syscall.Errno(0x52)
+       EREMDEV         = syscall.Errno(0x8e)
+       EREMOTE         = syscall.Errno(0x42)
+       EREMOTEIO       = syscall.Errno(0x8c)
+       ERESTART        = syscall.Errno(0x5b)
+       ERFKILL         = syscall.Errno(0xa7)
+       EROFS           = syscall.Errno(0x1e)
+       ESHUTDOWN       = syscall.Errno(0x8f)
+       ESOCKTNOSUPPORT = syscall.Errno(0x79)
+       ESPIPE          = syscall.Errno(0x1d)
+       ESRCH           = syscall.Errno(0x3)
+       ESRMNT          = syscall.Errno(0x45)
+       ESTALE          = syscall.Errno(0x97)
+       ESTRPIPE        = syscall.Errno(0x5c)
+       ETIME           = syscall.Errno(0x3e)
+       ETIMEDOUT       = syscall.Errno(0x91)
+       ETOOMANYREFS    = syscall.Errno(0x90)
+       ETXTBSY         = syscall.Errno(0x1a)
+       EUCLEAN         = syscall.Errno(0x87)
+       EUNATCH         = syscall.Errno(0x2a)
+       EUSERS          = syscall.Errno(0x5e)
+       EWOULDBLOCK     = syscall.Errno(0xb)
+       EXDEV           = syscall.Errno(0x12)
+       EXFULL          = syscall.Errno(0x34)
+)
+
+// Signals
+const (
+       SIGABRT   = syscall.Signal(0x6)
+       SIGALRM   = syscall.Signal(0xe)
+       SIGBUS    = syscall.Signal(0xa)
+       SIGCHLD   = syscall.Signal(0x12)
+       SIGCLD    = syscall.Signal(0x12)
+       SIGCONT   = syscall.Signal(0x19)
+       SIGEMT    = syscall.Signal(0x7)
+       SIGFPE    = syscall.Signal(0x8)
+       SIGHUP    = syscall.Signal(0x1)
+       SIGILL    = syscall.Signal(0x4)
+       SIGINT    = syscall.Signal(0x2)
+       SIGIO     = syscall.Signal(0x16)
+       SIGIOT    = syscall.Signal(0x6)
+       SIGKILL   = syscall.Signal(0x9)
+       SIGPIPE   = syscall.Signal(0xd)
+       SIGPOLL   = syscall.Signal(0x16)
+       SIGPROF   = syscall.Signal(0x1d)
+       SIGPWR    = syscall.Signal(0x13)
+       SIGQUIT   = syscall.Signal(0x3)
+       SIGSEGV   = syscall.Signal(0xb)
+       SIGSTOP   = syscall.Signal(0x17)
+       SIGSYS    = syscall.Signal(0xc)
+       SIGTERM   = syscall.Signal(0xf)
+       SIGTRAP   = syscall.Signal(0x5)
+       SIGTSTP   = syscall.Signal(0x18)
+       SIGTTIN   = syscall.Signal(0x1a)
+       SIGTTOU   = syscall.Signal(0x1b)
+       SIGURG    = syscall.Signal(0x15)
+       SIGUSR1   = syscall.Signal(0x10)
+       SIGUSR2   = syscall.Signal(0x11)
+       SIGVTALRM = syscall.Signal(0x1c)
+       SIGWINCH  = syscall.Signal(0x14)
+       SIGXCPU   = syscall.Signal(0x1e)
+       SIGXFSZ   = syscall.Signal(0x1f)
+)
+
+// Error table
+var errors = [...]string{
+       1:    "operation not permitted",
+       2:    "no such file or directory",
+       3:    "no such process",
+       4:    "interrupted system call",
+       5:    "input/output error",
+       6:    "no such device or address",
+       7:    "argument list too long",
+       8:    "exec format error",
+       9:    "bad file descriptor",
+       10:   "no child processes",
+       11:   "resource temporarily unavailable",
+       12:   "cannot allocate memory",
+       13:   "permission denied",
+       14:   "bad address",
+       15:   "block device required",
+       16:   "device or resource busy",
+       17:   "file exists",
+       18:   "invalid cross-device link",
+       19:   "no such device",
+       20:   "not a directory",
+       21:   "is a directory",
+       22:   "invalid argument",
+       23:   "too many open files in system",
+       24:   "too many open files",
+       25:   "inappropriate ioctl for device",
+       26:   "text file busy",
+       27:   "file too large",
+       28:   "no space left on device",
+       29:   "illegal seek",
+       30:   "read-only file system",
+       31:   "too many links",
+       32:   "broken pipe",
+       33:   "numerical argument out of domain",
+       34:   "numerical result out of range",
+       35:   "no message of desired type",
+       36:   "identifier removed",
+       37:   "channel number out of range",
+       38:   "level 2 not synchronized",
+       39:   "level 3 halted",
+       40:   "level 3 reset",
+       41:   "link number out of range",
+       42:   "protocol driver not attached",
+       43:   "no CSI structure available",
+       44:   "level 2 halted",
+       45:   "resource deadlock avoided",
+       46:   "no locks available",
+       50:   "invalid exchange",
+       51:   "invalid request descriptor",
+       52:   "exchange full",
+       53:   "no anode",
+       54:   "invalid request code",
+       55:   "invalid slot",
+       56:   "file locking deadlock error",
+       59:   "bad font file format",
+       60:   "device not a stream",
+       61:   "no data available",
+       62:   "timer expired",
+       63:   "out of streams resources",
+       64:   "machine is not on the network",
+       65:   "package not installed",
+       66:   "object is remote",
+       67:   "link has been severed",
+       68:   "advertise error",
+       69:   "srmount error",
+       70:   "communication error on send",
+       71:   "protocol error",
+       73:   "RFS specific error",
+       74:   "multihop attempted",
+       77:   "bad message",
+       78:   "file name too long",
+       79:   "value too large for defined data type",
+       80:   "name not unique on network",
+       81:   "file descriptor in bad state",
+       82:   "remote address changed",
+       83:   "can not access a needed shared library",
+       84:   "accessing a corrupted shared library",
+       85:   ".lib section in a.out corrupted",
+       86:   "attempting to link in too many shared libraries",
+       87:   "cannot exec a shared library directly",
+       88:   "invalid or incomplete multibyte or wide character",
+       89:   "function not implemented",
+       90:   "too many levels of symbolic links",
+       91:   "interrupted system call should be restarted",
+       92:   "streams pipe error",
+       93:   "directory not empty",
+       94:   "too many users",
+       95:   "socket operation on non-socket",
+       96:   "destination address required",
+       97:   "message too long",
+       98:   "protocol wrong type for socket",
+       99:   "protocol not available",
+       120:  "protocol not supported",
+       121:  "socket type not supported",
+       122:  "operation not supported",
+       123:  "protocol family not supported",
+       124:  "address family not supported by protocol",
+       125:  "address already in use",
+       126:  "cannot assign requested address",
+       127:  "network is down",
+       128:  "network is unreachable",
+       129:  "network dropped connection on reset",
+       130:  "software caused connection abort",
+       131:  "connection reset by peer",
+       132:  "no buffer space available",
+       133:  "transport endpoint is already connected",
+       134:  "transport endpoint is not connected",
+       135:  "structure needs cleaning",
+       137:  "not a XENIX named type file",
+       138:  "no XENIX semaphores available",
+       139:  "is a named type file",
+       140:  "remote I/O error",
+       141:  "unknown error 141",
+       142:  "unknown error 142",
+       143:  "cannot send after transport endpoint shutdown",
+       144:  "too many references: cannot splice",
+       145:  "connection timed out",
+       146:  "connection refused",
+       147:  "host is down",
+       148:  "no route to host",
+       149:  "operation already in progress",
+       150:  "operation now in progress",
+       151:  "stale file handle",
+       158:  "operation canceled",
+       159:  "no medium found",
+       160:  "wrong medium type",
+       161:  "required key not available",
+       162:  "key has expired",
+       163:  "key has been revoked",
+       164:  "key was rejected by service",
+       165:  "owner died",
+       166:  "state not recoverable",
+       167:  "operation not possible due to RF-kill",
+       168:  "memory page has hardware error",
+       1133: "disk quota exceeded",
+}
+
+// Signal table
+var signals = [...]string{
+       1:  "hangup",
+       2:  "interrupt",
+       3:  "quit",
+       4:  "illegal instruction",
+       5:  "trace/breakpoint trap",
+       6:  "aborted",
+       7:  "EMT trap",
+       8:  "floating point exception",
+       9:  "killed",
+       10: "bus error",
+       11: "segmentation fault",
+       12: "bad system call",
+       13: "broken pipe",
+       14: "alarm clock",
+       15: "terminated",
+       16: "user defined signal 1",
+       17: "user defined signal 2",
+       18: "child exited",
+       19: "power failure",
+       20: "window changed",
+       21: "urgent I/O condition",
+       22: "I/O possible",
+       23: "stopped (signal)",
+       24: "stopped",
+       25: "continued",
+       26: "stopped (tty input)",
+       27: "stopped (tty output)",
+       28: "virtual timer expired",
+       29: "profiling timer expired",
+       30: "CPU time limit exceeded",
+       31: "file size limit exceeded",
+}
diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go b/vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go
new file mode 100644 (file)
index 0000000..2310bee
--- /dev/null
@@ -0,0 +1,2209 @@
+// mkerrors.sh -Wall -Werror -static -I/tmp/include
+// Code generated by the command above; see README.md. DO NOT EDIT.
+
+// +build mips64le,linux
+
+// Created by 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                               = 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
+)
+
+// Errors
+const (
+       E2BIG           = syscall.Errno(0x7)
+       EACCES          = syscall.Errno(0xd)
+       EADDRINUSE      = syscall.Errno(0x7d)
+       EADDRNOTAVAIL   = syscall.Errno(0x7e)
+       EADV            = syscall.Errno(0x44)
+       EAFNOSUPPORT    = syscall.Errno(0x7c)
+       EAGAIN          = syscall.Errno(0xb)
+       EALREADY        = syscall.Errno(0x95)
+       EBADE           = syscall.Errno(0x32)
+       EBADF           = syscall.Errno(0x9)
+       EBADFD          = syscall.Errno(0x51)
+       EBADMSG         = syscall.Errno(0x4d)
+       EBADR           = syscall.Errno(0x33)
+       EBADRQC         = syscall.Errno(0x36)
+       EBADSLT         = syscall.Errno(0x37)
+       EBFONT          = syscall.Errno(0x3b)
+       EBUSY           = syscall.Errno(0x10)
+       ECANCELED       = syscall.Errno(0x9e)
+       ECHILD          = syscall.Errno(0xa)
+       ECHRNG          = syscall.Errno(0x25)
+       ECOMM           = syscall.Errno(0x46)
+       ECONNABORTED    = syscall.Errno(0x82)
+       ECONNREFUSED    = syscall.Errno(0x92)
+       ECONNRESET      = syscall.Errno(0x83)
+       EDEADLK         = syscall.Errno(0x2d)
+       EDEADLOCK       = syscall.Errno(0x38)
+       EDESTADDRREQ    = syscall.Errno(0x60)
+       EDOM            = syscall.Errno(0x21)
+       EDOTDOT         = syscall.Errno(0x49)
+       EDQUOT          = syscall.Errno(0x46d)
+       EEXIST          = syscall.Errno(0x11)
+       EFAULT          = syscall.Errno(0xe)
+       EFBIG           = syscall.Errno(0x1b)
+       EHOSTDOWN       = syscall.Errno(0x93)
+       EHOSTUNREACH    = syscall.Errno(0x94)
+       EHWPOISON       = syscall.Errno(0xa8)
+       EIDRM           = syscall.Errno(0x24)
+       EILSEQ          = syscall.Errno(0x58)
+       EINIT           = syscall.Errno(0x8d)
+       EINPROGRESS     = syscall.Errno(0x96)
+       EINTR           = syscall.Errno(0x4)
+       EINVAL          = syscall.Errno(0x16)
+       EIO             = syscall.Errno(0x5)
+       EISCONN         = syscall.Errno(0x85)
+       EISDIR          = syscall.Errno(0x15)
+       EISNAM          = syscall.Errno(0x8b)
+       EKEYEXPIRED     = syscall.Errno(0xa2)
+       EKEYREJECTED    = syscall.Errno(0xa4)
+       EKEYREVOKED     = syscall.Errno(0xa3)
+       EL2HLT          = syscall.Errno(0x2c)
+       EL2NSYNC        = syscall.Errno(0x26)
+       EL3HLT          = syscall.Errno(0x27)
+       EL3RST          = syscall.Errno(0x28)
+       ELIBACC         = syscall.Errno(0x53)
+       ELIBBAD         = syscall.Errno(0x54)
+       ELIBEXEC        = syscall.Errno(0x57)
+       ELIBMAX         = syscall.Errno(0x56)
+       ELIBSCN         = syscall.Errno(0x55)
+       ELNRNG          = syscall.Errno(0x29)
+       ELOOP           = syscall.Errno(0x5a)
+       EMEDIUMTYPE     = syscall.Errno(0xa0)
+       EMFILE          = syscall.Errno(0x18)
+       EMLINK          = syscall.Errno(0x1f)
+       EMSGSIZE        = syscall.Errno(0x61)
+       EMULTIHOP       = syscall.Errno(0x4a)
+       ENAMETOOLONG    = syscall.Errno(0x4e)
+       ENAVAIL         = syscall.Errno(0x8a)
+       ENETDOWN        = syscall.Errno(0x7f)
+       ENETRESET       = syscall.Errno(0x81)
+       ENETUNREACH     = syscall.Errno(0x80)
+       ENFILE          = syscall.Errno(0x17)
+       ENOANO          = syscall.Errno(0x35)
+       ENOBUFS         = syscall.Errno(0x84)
+       ENOCSI          = syscall.Errno(0x2b)
+       ENODATA         = syscall.Errno(0x3d)
+       ENODEV          = syscall.Errno(0x13)
+       ENOENT          = syscall.Errno(0x2)
+       ENOEXEC         = syscall.Errno(0x8)
+       ENOKEY          = syscall.Errno(0xa1)
+       ENOLCK          = syscall.Errno(0x2e)
+       ENOLINK         = syscall.Errno(0x43)
+       ENOMEDIUM       = syscall.Errno(0x9f)
+       ENOMEM          = syscall.Errno(0xc)
+       ENOMSG          = syscall.Errno(0x23)
+       ENONET          = syscall.Errno(0x40)
+       ENOPKG          = syscall.Errno(0x41)
+       ENOPROTOOPT     = syscall.Errno(0x63)
+       ENOSPC          = syscall.Errno(0x1c)
+       ENOSR           = syscall.Errno(0x3f)
+       ENOSTR          = syscall.Errno(0x3c)
+       ENOSYS          = syscall.Errno(0x59)
+       ENOTBLK         = syscall.Errno(0xf)
+       ENOTCONN        = syscall.Errno(0x86)
+       ENOTDIR         = syscall.Errno(0x14)
+       ENOTEMPTY       = syscall.Errno(0x5d)
+       ENOTNAM         = syscall.Errno(0x89)
+       ENOTRECOVERABLE = syscall.Errno(0xa6)
+       ENOTSOCK        = syscall.Errno(0x5f)
+       ENOTSUP         = syscall.Errno(0x7a)
+       ENOTTY          = syscall.Errno(0x19)
+       ENOTUNIQ        = syscall.Errno(0x50)
+       ENXIO           = syscall.Errno(0x6)
+       EOPNOTSUPP      = syscall.Errno(0x7a)
+       EOVERFLOW       = syscall.Errno(0x4f)
+       EOWNERDEAD      = syscall.Errno(0xa5)
+       EPERM           = syscall.Errno(0x1)
+       EPFNOSUPPORT    = syscall.Errno(0x7b)
+       EPIPE           = syscall.Errno(0x20)
+       EPROTO          = syscall.Errno(0x47)
+       EPROTONOSUPPORT = syscall.Errno(0x78)
+       EPROTOTYPE      = syscall.Errno(0x62)
+       ERANGE          = syscall.Errno(0x22)
+       EREMCHG         = syscall.Errno(0x52)
+       EREMDEV         = syscall.Errno(0x8e)
+       EREMOTE         = syscall.Errno(0x42)
+       EREMOTEIO       = syscall.Errno(0x8c)
+       ERESTART        = syscall.Errno(0x5b)
+       ERFKILL         = syscall.Errno(0xa7)
+       EROFS           = syscall.Errno(0x1e)
+       ESHUTDOWN       = syscall.Errno(0x8f)
+       ESOCKTNOSUPPORT = syscall.Errno(0x79)
+       ESPIPE          = syscall.Errno(0x1d)
+       ESRCH           = syscall.Errno(0x3)
+       ESRMNT          = syscall.Errno(0x45)
+       ESTALE          = syscall.Errno(0x97)
+       ESTRPIPE        = syscall.Errno(0x5c)
+       ETIME           = syscall.Errno(0x3e)
+       ETIMEDOUT       = syscall.Errno(0x91)
+       ETOOMANYREFS    = syscall.Errno(0x90)
+       ETXTBSY         = syscall.Errno(0x1a)
+       EUCLEAN         = syscall.Errno(0x87)
+       EUNATCH         = syscall.Errno(0x2a)
+       EUSERS          = syscall.Errno(0x5e)
+       EWOULDBLOCK     = syscall.Errno(0xb)
+       EXDEV           = syscall.Errno(0x12)
+       EXFULL          = syscall.Errno(0x34)
+)
+
+// Signals
+const (
+       SIGABRT   = syscall.Signal(0x6)
+       SIGALRM   = syscall.Signal(0xe)
+       SIGBUS    = syscall.Signal(0xa)
+       SIGCHLD   = syscall.Signal(0x12)
+       SIGCLD    = syscall.Signal(0x12)
+       SIGCONT   = syscall.Signal(0x19)
+       SIGEMT    = syscall.Signal(0x7)
+       SIGFPE    = syscall.Signal(0x8)
+       SIGHUP    = syscall.Signal(0x1)
+       SIGILL    = syscall.Signal(0x4)
+       SIGINT    = syscall.Signal(0x2)
+       SIGIO     = syscall.Signal(0x16)
+       SIGIOT    = syscall.Signal(0x6)
+       SIGKILL   = syscall.Signal(0x9)
+       SIGPIPE   = syscall.Signal(0xd)
+       SIGPOLL   = syscall.Signal(0x16)
+       SIGPROF   = syscall.Signal(0x1d)
+       SIGPWR    = syscall.Signal(0x13)
+       SIGQUIT   = syscall.Signal(0x3)
+       SIGSEGV   = syscall.Signal(0xb)
+       SIGSTOP   = syscall.Signal(0x17)
+       SIGSYS    = syscall.Signal(0xc)
+       SIGTERM   = syscall.Signal(0xf)
+       SIGTRAP   = syscall.Signal(0x5)
+       SIGTSTP   = syscall.Signal(0x18)
+       SIGTTIN   = syscall.Signal(0x1a)
+       SIGTTOU   = syscall.Signal(0x1b)
+       SIGURG    = syscall.Signal(0x15)
+       SIGUSR1   = syscall.Signal(0x10)
+       SIGUSR2   = syscall.Signal(0x11)
+       SIGVTALRM = syscall.Signal(0x1c)
+       SIGWINCH  = syscall.Signal(0x14)
+       SIGXCPU   = syscall.Signal(0x1e)
+       SIGXFSZ   = syscall.Signal(0x1f)
+)
+
+// Error table
+var errors = [...]string{
+       1:    "operation not permitted",
+       2:    "no such file or directory",
+       3:    "no such process",
+       4:    "interrupted system call",
+       5:    "input/output error",
+       6:    "no such device or address",
+       7:    "argument list too long",
+       8:    "exec format error",
+       9:    "bad file descriptor",
+       10:   "no child processes",
+       11:   "resource temporarily unavailable",
+       12:   "cannot allocate memory",
+       13:   "permission denied",
+       14:   "bad address",
+       15:   "block device required",
+       16:   "device or resource busy",
+       17:   "file exists",
+       18:   "invalid cross-device link",
+       19:   "no such device",
+       20:   "not a directory",
+       21:   "is a directory",
+       22:   "invalid argument",
+       23:   "too many open files in system",
+       24:   "too many open files",
+       25:   "inappropriate ioctl for device",
+       26:   "text file busy",
+       27:   "file too large",
+       28:   "no space left on device",
+       29:   "illegal seek",
+       30:   "read-only file system",
+       31:   "too many links",
+       32:   "broken pipe",
+       33:   "numerical argument out of domain",
+       34:   "numerical result out of range",
+       35:   "no message of desired type",
+       36:   "identifier removed",
+       37:   "channel number out of range",
+       38:   "level 2 not synchronized",
+       39:   "level 3 halted",
+       40:   "level 3 reset",
+       41:   "link number out of range",
+       42:   "protocol driver not attached",
+       43:   "no CSI structure available",
+       44:   "level 2 halted",
+       45:   "resource deadlock avoided",
+       46:   "no locks available",
+       50:   "invalid exchange",
+       51:   "invalid request descriptor",
+       52:   "exchange full",
+       53:   "no anode",
+       54:   "invalid request code",
+       55:   "invalid slot",
+       56:   "file locking deadlock error",
+       59:   "bad font file format",
+       60:   "device not a stream",
+       61:   "no data available",
+       62:   "timer expired",
+       63:   "out of streams resources",
+       64:   "machine is not on the network",
+       65:   "package not installed",
+       66:   "object is remote",
+       67:   "link has been severed",
+       68:   "advertise error",
+       69:   "srmount error",
+       70:   "communication error on send",
+       71:   "protocol error",
+       73:   "RFS specific error",
+       74:   "multihop attempted",
+       77:   "bad message",
+       78:   "file name too long",
+       79:   "value too large for defined data type",
+       80:   "name not unique on network",
+       81:   "file descriptor in bad state",
+       82:   "remote address changed",
+       83:   "can not access a needed shared library",
+       84:   "accessing a corrupted shared library",
+       85:   ".lib section in a.out corrupted",
+       86:   "attempting to link in too many shared libraries",
+       87:   "cannot exec a shared library directly",
+       88:   "invalid or incomplete multibyte or wide character",
+       89:   "function not implemented",
+       90:   "too many levels of symbolic links",
+       91:   "interrupted system call should be restarted",
+       92:   "streams pipe error",
+       93:   "directory not empty",
+       94:   "too many users",
+       95:   "socket operation on non-socket",
+       96:   "destination address required",
+       97:   "message too long",
+       98:   "protocol wrong type for socket",
+       99:   "protocol not available",
+       120:  "protocol not supported",
+       121:  "socket type not supported",
+       122:  "operation not supported",
+       123:  "protocol family not supported",
+       124:  "address family not supported by protocol",
+       125:  "address already in use",
+       126:  "cannot assign requested address",
+       127:  "network is down",
+       128:  "network is unreachable",
+       129:  "network dropped connection on reset",
+       130:  "software caused connection abort",
+       131:  "connection reset by peer",
+       132:  "no buffer space available",
+       133:  "transport endpoint is already connected",
+       134:  "transport endpoint is not connected",
+       135:  "structure needs cleaning",
+       137:  "not a XENIX named type file",
+       138:  "no XENIX semaphores available",
+       139:  "is a named type file",
+       140:  "remote I/O error",
+       141:  "unknown error 141",
+       142:  "unknown error 142",
+       143:  "cannot send after transport endpoint shutdown",
+       144:  "too many references: cannot splice",
+       145:  "connection timed out",
+       146:  "connection refused",
+       147:  "host is down",
+       148:  "no route to host",
+       149:  "operation already in progress",
+       150:  "operation now in progress",
+       151:  "stale file handle",
+       158:  "operation canceled",
+       159:  "no medium found",
+       160:  "wrong medium type",
+       161:  "required key not available",
+       162:  "key has expired",
+       163:  "key has been revoked",
+       164:  "key was rejected by service",
+       165:  "owner died",
+       166:  "state not recoverable",
+       167:  "operation not possible due to RF-kill",
+       168:  "memory page has hardware error",
+       1133: "disk quota exceeded",
+}
+
+// Signal table
+var signals = [...]string{
+       1:  "hangup",
+       2:  "interrupt",
+       3:  "quit",
+       4:  "illegal instruction",
+       5:  "trace/breakpoint trap",
+       6:  "aborted",
+       7:  "EMT trap",
+       8:  "floating point exception",
+       9:  "killed",
+       10: "bus error",
+       11: "segmentation fault",
+       12: "bad system call",
+       13: "broken pipe",
+       14: "alarm clock",
+       15: "terminated",
+       16: "user defined signal 1",
+       17: "user defined signal 2",
+       18: "child exited",
+       19: "power failure",
+       20: "window changed",
+       21: "urgent I/O condition",
+       22: "I/O possible",
+       23: "stopped (signal)",
+       24: "stopped",
+       25: "continued",
+       26: "stopped (tty input)",
+       27: "stopped (tty output)",
+       28: "virtual timer expired",
+       29: "profiling timer expired",
+       30: "CPU time limit exceeded",
+       31: "file size limit exceeded",
+}
diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go b/vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go
new file mode 100644 (file)
index 0000000..44191b0
--- /dev/null
@@ -0,0 +1,2209 @@
+// mkerrors.sh -Wall -Werror -static -I/tmp/include
+// Code generated by the command above; see README.md. DO NOT EDIT.
+
+// +build mipsle,linux
+
+// Created by 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                               = 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
+)
+
+// Errors
+const (
+       E2BIG           = syscall.Errno(0x7)
+       EACCES          = syscall.Errno(0xd)
+       EADDRINUSE      = syscall.Errno(0x7d)
+       EADDRNOTAVAIL   = syscall.Errno(0x7e)
+       EADV            = syscall.Errno(0x44)
+       EAFNOSUPPORT    = syscall.Errno(0x7c)
+       EAGAIN          = syscall.Errno(0xb)
+       EALREADY        = syscall.Errno(0x95)
+       EBADE           = syscall.Errno(0x32)
+       EBADF           = syscall.Errno(0x9)
+       EBADFD          = syscall.Errno(0x51)
+       EBADMSG         = syscall.Errno(0x4d)
+       EBADR           = syscall.Errno(0x33)
+       EBADRQC         = syscall.Errno(0x36)
+       EBADSLT         = syscall.Errno(0x37)
+       EBFONT          = syscall.Errno(0x3b)
+       EBUSY           = syscall.Errno(0x10)
+       ECANCELED       = syscall.Errno(0x9e)
+       ECHILD          = syscall.Errno(0xa)
+       ECHRNG          = syscall.Errno(0x25)
+       ECOMM           = syscall.Errno(0x46)
+       ECONNABORTED    = syscall.Errno(0x82)
+       ECONNREFUSED    = syscall.Errno(0x92)
+       ECONNRESET      = syscall.Errno(0x83)
+       EDEADLK         = syscall.Errno(0x2d)
+       EDEADLOCK       = syscall.Errno(0x38)
+       EDESTADDRREQ    = syscall.Errno(0x60)
+       EDOM            = syscall.Errno(0x21)
+       EDOTDOT         = syscall.Errno(0x49)
+       EDQUOT          = syscall.Errno(0x46d)
+       EEXIST          = syscall.Errno(0x11)
+       EFAULT          = syscall.Errno(0xe)
+       EFBIG           = syscall.Errno(0x1b)
+       EHOSTDOWN       = syscall.Errno(0x93)
+       EHOSTUNREACH    = syscall.Errno(0x94)
+       EHWPOISON       = syscall.Errno(0xa8)
+       EIDRM           = syscall.Errno(0x24)
+       EILSEQ          = syscall.Errno(0x58)
+       EINIT           = syscall.Errno(0x8d)
+       EINPROGRESS     = syscall.Errno(0x96)
+       EINTR           = syscall.Errno(0x4)
+       EINVAL          = syscall.Errno(0x16)
+       EIO             = syscall.Errno(0x5)
+       EISCONN         = syscall.Errno(0x85)
+       EISDIR          = syscall.Errno(0x15)
+       EISNAM          = syscall.Errno(0x8b)
+       EKEYEXPIRED     = syscall.Errno(0xa2)
+       EKEYREJECTED    = syscall.Errno(0xa4)
+       EKEYREVOKED     = syscall.Errno(0xa3)
+       EL2HLT          = syscall.Errno(0x2c)
+       EL2NSYNC        = syscall.Errno(0x26)
+       EL3HLT          = syscall.Errno(0x27)
+       EL3RST          = syscall.Errno(0x28)
+       ELIBACC         = syscall.Errno(0x53)
+       ELIBBAD         = syscall.Errno(0x54)
+       ELIBEXEC        = syscall.Errno(0x57)
+       ELIBMAX         = syscall.Errno(0x56)
+       ELIBSCN         = syscall.Errno(0x55)
+       ELNRNG          = syscall.Errno(0x29)
+       ELOOP           = syscall.Errno(0x5a)
+       EMEDIUMTYPE     = syscall.Errno(0xa0)
+       EMFILE          = syscall.Errno(0x18)
+       EMLINK          = syscall.Errno(0x1f)
+       EMSGSIZE        = syscall.Errno(0x61)
+       EMULTIHOP       = syscall.Errno(0x4a)
+       ENAMETOOLONG    = syscall.Errno(0x4e)
+       ENAVAIL         = syscall.Errno(0x8a)
+       ENETDOWN        = syscall.Errno(0x7f)
+       ENETRESET       = syscall.Errno(0x81)
+       ENETUNREACH     = syscall.Errno(0x80)
+       ENFILE          = syscall.Errno(0x17)
+       ENOANO          = syscall.Errno(0x35)
+       ENOBUFS         = syscall.Errno(0x84)
+       ENOCSI          = syscall.Errno(0x2b)
+       ENODATA         = syscall.Errno(0x3d)
+       ENODEV          = syscall.Errno(0x13)
+       ENOENT          = syscall.Errno(0x2)
+       ENOEXEC         = syscall.Errno(0x8)
+       ENOKEY          = syscall.Errno(0xa1)
+       ENOLCK          = syscall.Errno(0x2e)
+       ENOLINK         = syscall.Errno(0x43)
+       ENOMEDIUM       = syscall.Errno(0x9f)
+       ENOMEM          = syscall.Errno(0xc)
+       ENOMSG          = syscall.Errno(0x23)
+       ENONET          = syscall.Errno(0x40)
+       ENOPKG          = syscall.Errno(0x41)
+       ENOPROTOOPT     = syscall.Errno(0x63)
+       ENOSPC          = syscall.Errno(0x1c)
+       ENOSR           = syscall.Errno(0x3f)
+       ENOSTR          = syscall.Errno(0x3c)
+       ENOSYS          = syscall.Errno(0x59)
+       ENOTBLK         = syscall.Errno(0xf)
+       ENOTCONN        = syscall.Errno(0x86)
+       ENOTDIR         = syscall.Errno(0x14)
+       ENOTEMPTY       = syscall.Errno(0x5d)
+       ENOTNAM         = syscall.Errno(0x89)
+       ENOTRECOVERABLE = syscall.Errno(0xa6)
+       ENOTSOCK        = syscall.Errno(0x5f)
+       ENOTSUP         = syscall.Errno(0x7a)
+       ENOTTY          = syscall.Errno(0x19)
+       ENOTUNIQ        = syscall.Errno(0x50)
+       ENXIO           = syscall.Errno(0x6)
+       EOPNOTSUPP      = syscall.Errno(0x7a)
+       EOVERFLOW       = syscall.Errno(0x4f)
+       EOWNERDEAD      = syscall.Errno(0xa5)
+       EPERM           = syscall.Errno(0x1)
+       EPFNOSUPPORT    = syscall.Errno(0x7b)
+       EPIPE           = syscall.Errno(0x20)
+       EPROTO          = syscall.Errno(0x47)
+       EPROTONOSUPPORT = syscall.Errno(0x78)
+       EPROTOTYPE      = syscall.Errno(0x62)
+       ERANGE          = syscall.Errno(0x22)
+       EREMCHG         = syscall.Errno(0x52)
+       EREMDEV         = syscall.Errno(0x8e)
+       EREMOTE         = syscall.Errno(0x42)
+       EREMOTEIO       = syscall.Errno(0x8c)
+       ERESTART        = syscall.Errno(0x5b)
+       ERFKILL         = syscall.Errno(0xa7)
+       EROFS           = syscall.Errno(0x1e)
+       ESHUTDOWN       = syscall.Errno(0x8f)
+       ESOCKTNOSUPPORT = syscall.Errno(0x79)
+       ESPIPE          = syscall.Errno(0x1d)
+       ESRCH           = syscall.Errno(0x3)
+       ESRMNT          = syscall.Errno(0x45)
+       ESTALE          = syscall.Errno(0x97)
+       ESTRPIPE        = syscall.Errno(0x5c)
+       ETIME           = syscall.Errno(0x3e)
+       ETIMEDOUT       = syscall.Errno(0x91)
+       ETOOMANYREFS    = syscall.Errno(0x90)
+       ETXTBSY         = syscall.Errno(0x1a)
+       EUCLEAN         = syscall.Errno(0x87)
+       EUNATCH         = syscall.Errno(0x2a)
+       EUSERS          = syscall.Errno(0x5e)
+       EWOULDBLOCK     = syscall.Errno(0xb)
+       EXDEV           = syscall.Errno(0x12)
+       EXFULL          = syscall.Errno(0x34)
+)
+
+// Signals
+const (
+       SIGABRT   = syscall.Signal(0x6)
+       SIGALRM   = syscall.Signal(0xe)
+       SIGBUS    = syscall.Signal(0xa)
+       SIGCHLD   = syscall.Signal(0x12)
+       SIGCLD    = syscall.Signal(0x12)
+       SIGCONT   = syscall.Signal(0x19)
+       SIGEMT    = syscall.Signal(0x7)
+       SIGFPE    = syscall.Signal(0x8)
+       SIGHUP    = syscall.Signal(0x1)
+       SIGILL    = syscall.Signal(0x4)
+       SIGINT    = syscall.Signal(0x2)
+       SIGIO     = syscall.Signal(0x16)
+       SIGIOT    = syscall.Signal(0x6)
+       SIGKILL   = syscall.Signal(0x9)
+       SIGPIPE   = syscall.Signal(0xd)
+       SIGPOLL   = syscall.Signal(0x16)
+       SIGPROF   = syscall.Signal(0x1d)
+       SIGPWR    = syscall.Signal(0x13)
+       SIGQUIT   = syscall.Signal(0x3)
+       SIGSEGV   = syscall.Signal(0xb)
+       SIGSTOP   = syscall.Signal(0x17)
+       SIGSYS    = syscall.Signal(0xc)
+       SIGTERM   = syscall.Signal(0xf)
+       SIGTRAP   = syscall.Signal(0x5)
+       SIGTSTP   = syscall.Signal(0x18)
+       SIGTTIN   = syscall.Signal(0x1a)
+       SIGTTOU   = syscall.Signal(0x1b)
+       SIGURG    = syscall.Signal(0x15)
+       SIGUSR1   = syscall.Signal(0x10)
+       SIGUSR2   = syscall.Signal(0x11)
+       SIGVTALRM = syscall.Signal(0x1c)
+       SIGWINCH  = syscall.Signal(0x14)
+       SIGXCPU   = syscall.Signal(0x1e)
+       SIGXFSZ   = syscall.Signal(0x1f)
+)
+
+// Error table
+var errors = [...]string{
+       1:    "operation not permitted",
+       2:    "no such file or directory",
+       3:    "no such process",
+       4:    "interrupted system call",
+       5:    "input/output error",
+       6:    "no such device or address",
+       7:    "argument list too long",
+       8:    "exec format error",
+       9:    "bad file descriptor",
+       10:   "no child processes",
+       11:   "resource temporarily unavailable",
+       12:   "cannot allocate memory",
+       13:   "permission denied",
+       14:   "bad address",
+       15:   "block device required",
+       16:   "device or resource busy",
+       17:   "file exists",
+       18:   "invalid cross-device link",
+       19:   "no such device",
+       20:   "not a directory",
+       21:   "is a directory",
+       22:   "invalid argument",
+       23:   "too many open files in system",
+       24:   "too many open files",
+       25:   "inappropriate ioctl for device",
+       26:   "text file busy",
+       27:   "file too large",
+       28:   "no space left on device",
+       29:   "illegal seek",
+       30:   "read-only file system",
+       31:   "too many links",
+       32:   "broken pipe",
+       33:   "numerical argument out of domain",
+       34:   "numerical result out of range",
+       35:   "no message of desired type",
+       36:   "identifier removed",
+       37:   "channel number out of range",
+       38:   "level 2 not synchronized",
+       39:   "level 3 halted",
+       40:   "level 3 reset",
+       41:   "link number out of range",
+       42:   "protocol driver not attached",
+       43:   "no CSI structure available",
+       44:   "level 2 halted",
+       45:   "resource deadlock avoided",
+       46:   "no locks available",
+       50:   "invalid exchange",
+       51:   "invalid request descriptor",
+       52:   "exchange full",
+       53:   "no anode",
+       54:   "invalid request code",
+       55:   "invalid slot",
+       56:   "file locking deadlock error",
+       59:   "bad font file format",
+       60:   "device not a stream",
+       61:   "no data available",
+       62:   "timer expired",
+       63:   "out of streams resources",
+       64:   "machine is not on the network",
+       65:   "package not installed",
+       66:   "object is remote",
+       67:   "link has been severed",
+       68:   "advertise error",
+       69:   "srmount error",
+       70:   "communication error on send",
+       71:   "protocol error",
+       73:   "RFS specific error",
+       74:   "multihop attempted",
+       77:   "bad message",
+       78:   "file name too long",
+       79:   "value too large for defined data type",
+       80:   "name not unique on network",
+       81:   "file descriptor in bad state",
+       82:   "remote address changed",
+       83:   "can not access a needed shared library",
+       84:   "accessing a corrupted shared library",
+       85:   ".lib section in a.out corrupted",
+       86:   "attempting to link in too many shared libraries",
+       87:   "cannot exec a shared library directly",
+       88:   "invalid or incomplete multibyte or wide character",
+       89:   "function not implemented",
+       90:   "too many levels of symbolic links",
+       91:   "interrupted system call should be restarted",
+       92:   "streams pipe error",
+       93:   "directory not empty",
+       94:   "too many users",
+       95:   "socket operation on non-socket",
+       96:   "destination address required",
+       97:   "message too long",
+       98:   "protocol wrong type for socket",
+       99:   "protocol not available",
+       120:  "protocol not supported",
+       121:  "socket type not supported",
+       122:  "operation not supported",
+       123:  "protocol family not supported",
+       124:  "address family not supported by protocol",
+       125:  "address already in use",
+       126:  "cannot assign requested address",
+       127:  "network is down",
+       128:  "network is unreachable",
+       129:  "network dropped connection on reset",
+       130:  "software caused connection abort",
+       131:  "connection reset by peer",
+       132:  "no buffer space available",
+       133:  "transport endpoint is already connected",
+       134:  "transport endpoint is not connected",
+       135:  "structure needs cleaning",
+       137:  "not a XENIX named type file",
+       138:  "no XENIX semaphores available",
+       139:  "is a named type file",
+       140:  "remote I/O error",
+       141:  "unknown error 141",
+       142:  "unknown error 142",
+       143:  "cannot send after transport endpoint shutdown",
+       144:  "too many references: cannot splice",
+       145:  "connection timed out",
+       146:  "connection refused",
+       147:  "host is down",
+       148:  "no route to host",
+       149:  "operation already in progress",
+       150:  "operation now in progress",
+       151:  "stale file handle",
+       158:  "operation canceled",
+       159:  "no medium found",
+       160:  "wrong medium type",
+       161:  "required key not available",
+       162:  "key has expired",
+       163:  "key has been revoked",
+       164:  "key was rejected by service",
+       165:  "owner died",
+       166:  "state not recoverable",
+       167:  "operation not possible due to RF-kill",
+       168:  "memory page has hardware error",
+       1133: "disk quota exceeded",
+}
+
+// Signal table
+var signals = [...]string{
+       1:  "hangup",
+       2:  "interrupt",
+       3:  "quit",
+       4:  "illegal instruction",
+       5:  "trace/breakpoint trap",
+       6:  "aborted",
+       7:  "EMT trap",
+       8:  "floating point exception",
+       9:  "killed",
+       10: "bus error",
+       11: "segmentation fault",
+       12: "bad system call",
+       13: "broken pipe",
+       14: "alarm clock",
+       15: "terminated",
+       16: "user defined signal 1",
+       17: "user defined signal 2",
+       18: "child exited",
+       19: "power failure",
+       20: "window changed",
+       21: "urgent I/O condition",
+       22: "I/O possible",
+       23: "stopped (signal)",
+       24: "stopped",
+       25: "continued",
+       26: "stopped (tty input)",
+       27: "stopped (tty output)",
+       28: "virtual timer expired",
+       29: "profiling timer expired",
+       30: "CPU time limit exceeded",
+       31: "file size limit exceeded",
+}
diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go
new file mode 100644 (file)
index 0000000..6772a59
--- /dev/null
@@ -0,0 +1,2263 @@
+// mkerrors.sh -Wall -Werror -static -I/tmp/include
+// Code generated by the command above; see README.md. DO NOT EDIT.
+
+// +build ppc64,linux
+
+// Created by 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                               = 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
+)
+
+// Errors
+const (
+       E2BIG           = syscall.Errno(0x7)
+       EACCES          = syscall.Errno(0xd)
+       EADDRINUSE      = syscall.Errno(0x62)
+       EADDRNOTAVAIL   = syscall.Errno(0x63)
+       EADV            = syscall.Errno(0x44)
+       EAFNOSUPPORT    = syscall.Errno(0x61)
+       EAGAIN          = syscall.Errno(0xb)
+       EALREADY        = syscall.Errno(0x72)
+       EBADE           = syscall.Errno(0x34)
+       EBADF           = syscall.Errno(0x9)
+       EBADFD          = syscall.Errno(0x4d)
+       EBADMSG         = syscall.Errno(0x4a)
+       EBADR           = syscall.Errno(0x35)
+       EBADRQC         = syscall.Errno(0x38)
+       EBADSLT         = syscall.Errno(0x39)
+       EBFONT          = syscall.Errno(0x3b)
+       EBUSY           = syscall.Errno(0x10)
+       ECANCELED       = syscall.Errno(0x7d)
+       ECHILD          = syscall.Errno(0xa)
+       ECHRNG          = syscall.Errno(0x2c)
+       ECOMM           = syscall.Errno(0x46)
+       ECONNABORTED    = syscall.Errno(0x67)
+       ECONNREFUSED    = syscall.Errno(0x6f)
+       ECONNRESET      = syscall.Errno(0x68)
+       EDEADLK         = syscall.Errno(0x23)
+       EDEADLOCK       = syscall.Errno(0x3a)
+       EDESTADDRREQ    = syscall.Errno(0x59)
+       EDOM            = syscall.Errno(0x21)
+       EDOTDOT         = syscall.Errno(0x49)
+       EDQUOT          = syscall.Errno(0x7a)
+       EEXIST          = syscall.Errno(0x11)
+       EFAULT          = syscall.Errno(0xe)
+       EFBIG           = syscall.Errno(0x1b)
+       EHOSTDOWN       = syscall.Errno(0x70)
+       EHOSTUNREACH    = syscall.Errno(0x71)
+       EHWPOISON       = syscall.Errno(0x85)
+       EIDRM           = syscall.Errno(0x2b)
+       EILSEQ          = syscall.Errno(0x54)
+       EINPROGRESS     = syscall.Errno(0x73)
+       EINTR           = syscall.Errno(0x4)
+       EINVAL          = syscall.Errno(0x16)
+       EIO             = syscall.Errno(0x5)
+       EISCONN         = syscall.Errno(0x6a)
+       EISDIR          = syscall.Errno(0x15)
+       EISNAM          = syscall.Errno(0x78)
+       EKEYEXPIRED     = syscall.Errno(0x7f)
+       EKEYREJECTED    = syscall.Errno(0x81)
+       EKEYREVOKED     = syscall.Errno(0x80)
+       EL2HLT          = syscall.Errno(0x33)
+       EL2NSYNC        = syscall.Errno(0x2d)
+       EL3HLT          = syscall.Errno(0x2e)
+       EL3RST          = syscall.Errno(0x2f)
+       ELIBACC         = syscall.Errno(0x4f)
+       ELIBBAD         = syscall.Errno(0x50)
+       ELIBEXEC        = syscall.Errno(0x53)
+       ELIBMAX         = syscall.Errno(0x52)
+       ELIBSCN         = syscall.Errno(0x51)
+       ELNRNG          = syscall.Errno(0x30)
+       ELOOP           = syscall.Errno(0x28)
+       EMEDIUMTYPE     = syscall.Errno(0x7c)
+       EMFILE          = syscall.Errno(0x18)
+       EMLINK          = syscall.Errno(0x1f)
+       EMSGSIZE        = syscall.Errno(0x5a)
+       EMULTIHOP       = syscall.Errno(0x48)
+       ENAMETOOLONG    = syscall.Errno(0x24)
+       ENAVAIL         = syscall.Errno(0x77)
+       ENETDOWN        = syscall.Errno(0x64)
+       ENETRESET       = syscall.Errno(0x66)
+       ENETUNREACH     = syscall.Errno(0x65)
+       ENFILE          = syscall.Errno(0x17)
+       ENOANO          = syscall.Errno(0x37)
+       ENOBUFS         = syscall.Errno(0x69)
+       ENOCSI          = syscall.Errno(0x32)
+       ENODATA         = syscall.Errno(0x3d)
+       ENODEV          = syscall.Errno(0x13)
+       ENOENT          = syscall.Errno(0x2)
+       ENOEXEC         = syscall.Errno(0x8)
+       ENOKEY          = syscall.Errno(0x7e)
+       ENOLCK          = syscall.Errno(0x25)
+       ENOLINK         = syscall.Errno(0x43)
+       ENOMEDIUM       = syscall.Errno(0x7b)
+       ENOMEM          = syscall.Errno(0xc)
+       ENOMSG          = syscall.Errno(0x2a)
+       ENONET          = syscall.Errno(0x40)
+       ENOPKG          = syscall.Errno(0x41)
+       ENOPROTOOPT     = syscall.Errno(0x5c)
+       ENOSPC          = syscall.Errno(0x1c)
+       ENOSR           = syscall.Errno(0x3f)
+       ENOSTR          = syscall.Errno(0x3c)
+       ENOSYS          = syscall.Errno(0x26)
+       ENOTBLK         = syscall.Errno(0xf)
+       ENOTCONN        = syscall.Errno(0x6b)
+       ENOTDIR         = syscall.Errno(0x14)
+       ENOTEMPTY       = syscall.Errno(0x27)
+       ENOTNAM         = syscall.Errno(0x76)
+       ENOTRECOVERABLE = syscall.Errno(0x83)
+       ENOTSOCK        = syscall.Errno(0x58)
+       ENOTSUP         = syscall.Errno(0x5f)
+       ENOTTY          = syscall.Errno(0x19)
+       ENOTUNIQ        = syscall.Errno(0x4c)
+       ENXIO           = syscall.Errno(0x6)
+       EOPNOTSUPP      = syscall.Errno(0x5f)
+       EOVERFLOW       = syscall.Errno(0x4b)
+       EOWNERDEAD      = syscall.Errno(0x82)
+       EPERM           = syscall.Errno(0x1)
+       EPFNOSUPPORT    = syscall.Errno(0x60)
+       EPIPE           = syscall.Errno(0x20)
+       EPROTO          = syscall.Errno(0x47)
+       EPROTONOSUPPORT = syscall.Errno(0x5d)
+       EPROTOTYPE      = syscall.Errno(0x5b)
+       ERANGE          = syscall.Errno(0x22)
+       EREMCHG         = syscall.Errno(0x4e)
+       EREMOTE         = syscall.Errno(0x42)
+       EREMOTEIO       = syscall.Errno(0x79)
+       ERESTART        = syscall.Errno(0x55)
+       ERFKILL         = syscall.Errno(0x84)
+       EROFS           = syscall.Errno(0x1e)
+       ESHUTDOWN       = syscall.Errno(0x6c)
+       ESOCKTNOSUPPORT = syscall.Errno(0x5e)
+       ESPIPE          = syscall.Errno(0x1d)
+       ESRCH           = syscall.Errno(0x3)
+       ESRMNT          = syscall.Errno(0x45)
+       ESTALE          = syscall.Errno(0x74)
+       ESTRPIPE        = syscall.Errno(0x56)
+       ETIME           = syscall.Errno(0x3e)
+       ETIMEDOUT       = syscall.Errno(0x6e)
+       ETOOMANYREFS    = syscall.Errno(0x6d)
+       ETXTBSY         = syscall.Errno(0x1a)
+       EUCLEAN         = syscall.Errno(0x75)
+       EUNATCH         = syscall.Errno(0x31)
+       EUSERS          = syscall.Errno(0x57)
+       EWOULDBLOCK     = syscall.Errno(0xb)
+       EXDEV           = syscall.Errno(0x12)
+       EXFULL          = syscall.Errno(0x36)
+)
+
+// Signals
+const (
+       SIGABRT   = syscall.Signal(0x6)
+       SIGALRM   = syscall.Signal(0xe)
+       SIGBUS    = syscall.Signal(0x7)
+       SIGCHLD   = syscall.Signal(0x11)
+       SIGCLD    = syscall.Signal(0x11)
+       SIGCONT   = syscall.Signal(0x12)
+       SIGFPE    = syscall.Signal(0x8)
+       SIGHUP    = syscall.Signal(0x1)
+       SIGILL    = syscall.Signal(0x4)
+       SIGINT    = syscall.Signal(0x2)
+       SIGIO     = syscall.Signal(0x1d)
+       SIGIOT    = syscall.Signal(0x6)
+       SIGKILL   = syscall.Signal(0x9)
+       SIGPIPE   = syscall.Signal(0xd)
+       SIGPOLL   = syscall.Signal(0x1d)
+       SIGPROF   = syscall.Signal(0x1b)
+       SIGPWR    = syscall.Signal(0x1e)
+       SIGQUIT   = syscall.Signal(0x3)
+       SIGSEGV   = syscall.Signal(0xb)
+       SIGSTKFLT = syscall.Signal(0x10)
+       SIGSTOP   = syscall.Signal(0x13)
+       SIGSYS    = syscall.Signal(0x1f)
+       SIGTERM   = syscall.Signal(0xf)
+       SIGTRAP   = syscall.Signal(0x5)
+       SIGTSTP   = syscall.Signal(0x14)
+       SIGTTIN   = syscall.Signal(0x15)
+       SIGTTOU   = syscall.Signal(0x16)
+       SIGUNUSED = syscall.Signal(0x1f)
+       SIGURG    = syscall.Signal(0x17)
+       SIGUSR1   = syscall.Signal(0xa)
+       SIGUSR2   = syscall.Signal(0xc)
+       SIGVTALRM = syscall.Signal(0x1a)
+       SIGWINCH  = syscall.Signal(0x1c)
+       SIGXCPU   = syscall.Signal(0x18)
+       SIGXFSZ   = syscall.Signal(0x19)
+)
+
+// Error table
+var errors = [...]string{
+       1:   "operation not permitted",
+       2:   "no such file or directory",
+       3:   "no such process",
+       4:   "interrupted system call",
+       5:   "input/output error",
+       6:   "no such device or address",
+       7:   "argument list too long",
+       8:   "exec format error",
+       9:   "bad file descriptor",
+       10:  "no child processes",
+       11:  "resource temporarily unavailable",
+       12:  "cannot allocate memory",
+       13:  "permission denied",
+       14:  "bad address",
+       15:  "block device required",
+       16:  "device or resource busy",
+       17:  "file exists",
+       18:  "invalid cross-device link",
+       19:  "no such device",
+       20:  "not a directory",
+       21:  "is a directory",
+       22:  "invalid argument",
+       23:  "too many open files in system",
+       24:  "too many open files",
+       25:  "inappropriate ioctl for device",
+       26:  "text file busy",
+       27:  "file too large",
+       28:  "no space left on device",
+       29:  "illegal seek",
+       30:  "read-only file system",
+       31:  "too many links",
+       32:  "broken pipe",
+       33:  "numerical argument out of domain",
+       34:  "numerical result out of range",
+       35:  "resource deadlock avoided",
+       36:  "file name too long",
+       37:  "no locks available",
+       38:  "function not implemented",
+       39:  "directory not empty",
+       40:  "too many levels of symbolic links",
+       42:  "no message of desired type",
+       43:  "identifier removed",
+       44:  "channel number out of range",
+       45:  "level 2 not synchronized",
+       46:  "level 3 halted",
+       47:  "level 3 reset",
+       48:  "link number out of range",
+       49:  "protocol driver not attached",
+       50:  "no CSI structure available",
+       51:  "level 2 halted",
+       52:  "invalid exchange",
+       53:  "invalid request descriptor",
+       54:  "exchange full",
+       55:  "no anode",
+       56:  "invalid request code",
+       57:  "invalid slot",
+       58:  "file locking deadlock error",
+       59:  "bad font file format",
+       60:  "device not a stream",
+       61:  "no data available",
+       62:  "timer expired",
+       63:  "out of streams resources",
+       64:  "machine is not on the network",
+       65:  "package not installed",
+       66:  "object is remote",
+       67:  "link has been severed",
+       68:  "advertise error",
+       69:  "srmount error",
+       70:  "communication error on send",
+       71:  "protocol error",
+       72:  "multihop attempted",
+       73:  "RFS specific error",
+       74:  "bad message",
+       75:  "value too large for defined data type",
+       76:  "name not unique on network",
+       77:  "file descriptor in bad state",
+       78:  "remote address changed",
+       79:  "can not access a needed shared library",
+       80:  "accessing a corrupted shared library",
+       81:  ".lib section in a.out corrupted",
+       82:  "attempting to link in too many shared libraries",
+       83:  "cannot exec a shared library directly",
+       84:  "invalid or incomplete multibyte or wide character",
+       85:  "interrupted system call should be restarted",
+       86:  "streams pipe error",
+       87:  "too many users",
+       88:  "socket operation on non-socket",
+       89:  "destination address required",
+       90:  "message too long",
+       91:  "protocol wrong type for socket",
+       92:  "protocol not available",
+       93:  "protocol not supported",
+       94:  "socket type not supported",
+       95:  "operation not supported",
+       96:  "protocol family not supported",
+       97:  "address family not supported by protocol",
+       98:  "address already in use",
+       99:  "cannot assign requested address",
+       100: "network is down",
+       101: "network is unreachable",
+       102: "network dropped connection on reset",
+       103: "software caused connection abort",
+       104: "connection reset by peer",
+       105: "no buffer space available",
+       106: "transport endpoint is already connected",
+       107: "transport endpoint is not connected",
+       108: "cannot send after transport endpoint shutdown",
+       109: "too many references: cannot splice",
+       110: "connection timed out",
+       111: "connection refused",
+       112: "host is down",
+       113: "no route to host",
+       114: "operation already in progress",
+       115: "operation now in progress",
+       116: "stale file handle",
+       117: "structure needs cleaning",
+       118: "not a XENIX named type file",
+       119: "no XENIX semaphores available",
+       120: "is a named type file",
+       121: "remote I/O error",
+       122: "disk quota exceeded",
+       123: "no medium found",
+       124: "wrong medium type",
+       125: "operation canceled",
+       126: "required key not available",
+       127: "key has expired",
+       128: "key has been revoked",
+       129: "key was rejected by service",
+       130: "owner died",
+       131: "state not recoverable",
+       132: "operation not possible due to RF-kill",
+       133: "memory page has hardware error",
+}
+
+// Signal table
+var signals = [...]string{
+       1:  "hangup",
+       2:  "interrupt",
+       3:  "quit",
+       4:  "illegal instruction",
+       5:  "trace/breakpoint trap",
+       6:  "aborted",
+       7:  "bus error",
+       8:  "floating point exception",
+       9:  "killed",
+       10: "user defined signal 1",
+       11: "segmentation fault",
+       12: "user defined signal 2",
+       13: "broken pipe",
+       14: "alarm clock",
+       15: "terminated",
+       16: "stack fault",
+       17: "child exited",
+       18: "continued",
+       19: "stopped (signal)",
+       20: "stopped",
+       21: "stopped (tty input)",
+       22: "stopped (tty output)",
+       23: "urgent I/O condition",
+       24: "CPU time limit exceeded",
+       25: "file size limit exceeded",
+       26: "virtual timer expired",
+       27: "profiling timer expired",
+       28: "window changed",
+       29: "I/O possible",
+       30: "power failure",
+       31: "bad system call",
+}
diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go b/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go
new file mode 100644 (file)
index 0000000..ad29c3d
--- /dev/null
@@ -0,0 +1,2263 @@
+// mkerrors.sh -Wall -Werror -static -I/tmp/include
+// Code generated by the command above; see README.md. DO NOT EDIT.
+
+// +build ppc64le,linux
+
+// Created by 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                               = 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
+)
+
+// Errors
+const (
+       E2BIG           = syscall.Errno(0x7)
+       EACCES          = syscall.Errno(0xd)
+       EADDRINUSE      = syscall.Errno(0x62)
+       EADDRNOTAVAIL   = syscall.Errno(0x63)
+       EADV            = syscall.Errno(0x44)
+       EAFNOSUPPORT    = syscall.Errno(0x61)
+       EAGAIN          = syscall.Errno(0xb)
+       EALREADY        = syscall.Errno(0x72)
+       EBADE           = syscall.Errno(0x34)
+       EBADF           = syscall.Errno(0x9)
+       EBADFD          = syscall.Errno(0x4d)
+       EBADMSG         = syscall.Errno(0x4a)
+       EBADR           = syscall.Errno(0x35)
+       EBADRQC         = syscall.Errno(0x38)
+       EBADSLT         = syscall.Errno(0x39)
+       EBFONT          = syscall.Errno(0x3b)
+       EBUSY           = syscall.Errno(0x10)
+       ECANCELED       = syscall.Errno(0x7d)
+       ECHILD          = syscall.Errno(0xa)
+       ECHRNG          = syscall.Errno(0x2c)
+       ECOMM           = syscall.Errno(0x46)
+       ECONNABORTED    = syscall.Errno(0x67)
+       ECONNREFUSED    = syscall.Errno(0x6f)
+       ECONNRESET      = syscall.Errno(0x68)
+       EDEADLK         = syscall.Errno(0x23)
+       EDEADLOCK       = syscall.Errno(0x3a)
+       EDESTADDRREQ    = syscall.Errno(0x59)
+       EDOM            = syscall.Errno(0x21)
+       EDOTDOT         = syscall.Errno(0x49)
+       EDQUOT          = syscall.Errno(0x7a)
+       EEXIST          = syscall.Errno(0x11)
+       EFAULT          = syscall.Errno(0xe)
+       EFBIG           = syscall.Errno(0x1b)
+       EHOSTDOWN       = syscall.Errno(0x70)
+       EHOSTUNREACH    = syscall.Errno(0x71)
+       EHWPOISON       = syscall.Errno(0x85)
+       EIDRM           = syscall.Errno(0x2b)
+       EILSEQ          = syscall.Errno(0x54)
+       EINPROGRESS     = syscall.Errno(0x73)
+       EINTR           = syscall.Errno(0x4)
+       EINVAL          = syscall.Errno(0x16)
+       EIO             = syscall.Errno(0x5)
+       EISCONN         = syscall.Errno(0x6a)
+       EISDIR          = syscall.Errno(0x15)
+       EISNAM          = syscall.Errno(0x78)
+       EKEYEXPIRED     = syscall.Errno(0x7f)
+       EKEYREJECTED    = syscall.Errno(0x81)
+       EKEYREVOKED     = syscall.Errno(0x80)
+       EL2HLT          = syscall.Errno(0x33)
+       EL2NSYNC        = syscall.Errno(0x2d)
+       EL3HLT          = syscall.Errno(0x2e)
+       EL3RST          = syscall.Errno(0x2f)
+       ELIBACC         = syscall.Errno(0x4f)
+       ELIBBAD         = syscall.Errno(0x50)
+       ELIBEXEC        = syscall.Errno(0x53)
+       ELIBMAX         = syscall.Errno(0x52)
+       ELIBSCN         = syscall.Errno(0x51)
+       ELNRNG          = syscall.Errno(0x30)
+       ELOOP           = syscall.Errno(0x28)
+       EMEDIUMTYPE     = syscall.Errno(0x7c)
+       EMFILE          = syscall.Errno(0x18)
+       EMLINK          = syscall.Errno(0x1f)
+       EMSGSIZE        = syscall.Errno(0x5a)
+       EMULTIHOP       = syscall.Errno(0x48)
+       ENAMETOOLONG    = syscall.Errno(0x24)
+       ENAVAIL         = syscall.Errno(0x77)
+       ENETDOWN        = syscall.Errno(0x64)
+       ENETRESET       = syscall.Errno(0x66)
+       ENETUNREACH     = syscall.Errno(0x65)
+       ENFILE          = syscall.Errno(0x17)
+       ENOANO          = syscall.Errno(0x37)
+       ENOBUFS         = syscall.Errno(0x69)
+       ENOCSI          = syscall.Errno(0x32)
+       ENODATA         = syscall.Errno(0x3d)
+       ENODEV          = syscall.Errno(0x13)
+       ENOENT          = syscall.Errno(0x2)
+       ENOEXEC         = syscall.Errno(0x8)
+       ENOKEY          = syscall.Errno(0x7e)
+       ENOLCK          = syscall.Errno(0x25)
+       ENOLINK         = syscall.Errno(0x43)
+       ENOMEDIUM       = syscall.Errno(0x7b)
+       ENOMEM          = syscall.Errno(0xc)
+       ENOMSG          = syscall.Errno(0x2a)
+       ENONET          = syscall.Errno(0x40)
+       ENOPKG          = syscall.Errno(0x41)
+       ENOPROTOOPT     = syscall.Errno(0x5c)
+       ENOSPC          = syscall.Errno(0x1c)
+       ENOSR           = syscall.Errno(0x3f)
+       ENOSTR          = syscall.Errno(0x3c)
+       ENOSYS          = syscall.Errno(0x26)
+       ENOTBLK         = syscall.Errno(0xf)
+       ENOTCONN        = syscall.Errno(0x6b)
+       ENOTDIR         = syscall.Errno(0x14)
+       ENOTEMPTY       = syscall.Errno(0x27)
+       ENOTNAM         = syscall.Errno(0x76)
+       ENOTRECOVERABLE = syscall.Errno(0x83)
+       ENOTSOCK        = syscall.Errno(0x58)
+       ENOTSUP         = syscall.Errno(0x5f)
+       ENOTTY          = syscall.Errno(0x19)
+       ENOTUNIQ        = syscall.Errno(0x4c)
+       ENXIO           = syscall.Errno(0x6)
+       EOPNOTSUPP      = syscall.Errno(0x5f)
+       EOVERFLOW       = syscall.Errno(0x4b)
+       EOWNERDEAD      = syscall.Errno(0x82)
+       EPERM           = syscall.Errno(0x1)
+       EPFNOSUPPORT    = syscall.Errno(0x60)
+       EPIPE           = syscall.Errno(0x20)
+       EPROTO          = syscall.Errno(0x47)
+       EPROTONOSUPPORT = syscall.Errno(0x5d)
+       EPROTOTYPE      = syscall.Errno(0x5b)
+       ERANGE          = syscall.Errno(0x22)
+       EREMCHG         = syscall.Errno(0x4e)
+       EREMOTE         = syscall.Errno(0x42)
+       EREMOTEIO       = syscall.Errno(0x79)
+       ERESTART        = syscall.Errno(0x55)
+       ERFKILL         = syscall.Errno(0x84)
+       EROFS           = syscall.Errno(0x1e)
+       ESHUTDOWN       = syscall.Errno(0x6c)
+       ESOCKTNOSUPPORT = syscall.Errno(0x5e)
+       ESPIPE          = syscall.Errno(0x1d)
+       ESRCH           = syscall.Errno(0x3)
+       ESRMNT          = syscall.Errno(0x45)
+       ESTALE          = syscall.Errno(0x74)
+       ESTRPIPE        = syscall.Errno(0x56)
+       ETIME           = syscall.Errno(0x3e)
+       ETIMEDOUT       = syscall.Errno(0x6e)
+       ETOOMANYREFS    = syscall.Errno(0x6d)
+       ETXTBSY         = syscall.Errno(0x1a)
+       EUCLEAN         = syscall.Errno(0x75)
+       EUNATCH         = syscall.Errno(0x31)
+       EUSERS          = syscall.Errno(0x57)
+       EWOULDBLOCK     = syscall.Errno(0xb)
+       EXDEV           = syscall.Errno(0x12)
+       EXFULL          = syscall.Errno(0x36)
+)
+
+// Signals
+const (
+       SIGABRT   = syscall.Signal(0x6)
+       SIGALRM   = syscall.Signal(0xe)
+       SIGBUS    = syscall.Signal(0x7)
+       SIGCHLD   = syscall.Signal(0x11)
+       SIGCLD    = syscall.Signal(0x11)
+       SIGCONT   = syscall.Signal(0x12)
+       SIGFPE    = syscall.Signal(0x8)
+       SIGHUP    = syscall.Signal(0x1)
+       SIGILL    = syscall.Signal(0x4)
+       SIGINT    = syscall.Signal(0x2)
+       SIGIO     = syscall.Signal(0x1d)
+       SIGIOT    = syscall.Signal(0x6)
+       SIGKILL   = syscall.Signal(0x9)
+       SIGPIPE   = syscall.Signal(0xd)
+       SIGPOLL   = syscall.Signal(0x1d)
+       SIGPROF   = syscall.Signal(0x1b)
+       SIGPWR    = syscall.Signal(0x1e)
+       SIGQUIT   = syscall.Signal(0x3)
+       SIGSEGV   = syscall.Signal(0xb)
+       SIGSTKFLT = syscall.Signal(0x10)
+       SIGSTOP   = syscall.Signal(0x13)
+       SIGSYS    = syscall.Signal(0x1f)
+       SIGTERM   = syscall.Signal(0xf)
+       SIGTRAP   = syscall.Signal(0x5)
+       SIGTSTP   = syscall.Signal(0x14)
+       SIGTTIN   = syscall.Signal(0x15)
+       SIGTTOU   = syscall.Signal(0x16)
+       SIGUNUSED = syscall.Signal(0x1f)
+       SIGURG    = syscall.Signal(0x17)
+       SIGUSR1   = syscall.Signal(0xa)
+       SIGUSR2   = syscall.Signal(0xc)
+       SIGVTALRM = syscall.Signal(0x1a)
+       SIGWINCH  = syscall.Signal(0x1c)
+       SIGXCPU   = syscall.Signal(0x18)
+       SIGXFSZ   = syscall.Signal(0x19)
+)
+
+// Error table
+var errors = [...]string{
+       1:   "operation not permitted",
+       2:   "no such file or directory",
+       3:   "no such process",
+       4:   "interrupted system call",
+       5:   "input/output error",
+       6:   "no such device or address",
+       7:   "argument list too long",
+       8:   "exec format error",
+       9:   "bad file descriptor",
+       10:  "no child processes",
+       11:  "resource temporarily unavailable",
+       12:  "cannot allocate memory",
+       13:  "permission denied",
+       14:  "bad address",
+       15:  "block device required",
+       16:  "device or resource busy",
+       17:  "file exists",
+       18:  "invalid cross-device link",
+       19:  "no such device",
+       20:  "not a directory",
+       21:  "is a directory",
+       22:  "invalid argument",
+       23:  "too many open files in system",
+       24:  "too many open files",
+       25:  "inappropriate ioctl for device",
+       26:  "text file busy",
+       27:  "file too large",
+       28:  "no space left on device",
+       29:  "illegal seek",
+       30:  "read-only file system",
+       31:  "too many links",
+       32:  "broken pipe",
+       33:  "numerical argument out of domain",
+       34:  "numerical result out of range",
+       35:  "resource deadlock avoided",
+       36:  "file name too long",
+       37:  "no locks available",
+       38:  "function not implemented",
+       39:  "directory not empty",
+       40:  "too many levels of symbolic links",
+       42:  "no message of desired type",
+       43:  "identifier removed",
+       44:  "channel number out of range",
+       45:  "level 2 not synchronized",
+       46:  "level 3 halted",
+       47:  "level 3 reset",
+       48:  "link number out of range",
+       49:  "protocol driver not attached",
+       50:  "no CSI structure available",
+       51:  "level 2 halted",
+       52:  "invalid exchange",
+       53:  "invalid request descriptor",
+       54:  "exchange full",
+       55:  "no anode",
+       56:  "invalid request code",
+       57:  "invalid slot",
+       58:  "file locking deadlock error",
+       59:  "bad font file format",
+       60:  "device not a stream",
+       61:  "no data available",
+       62:  "timer expired",
+       63:  "out of streams resources",
+       64:  "machine is not on the network",
+       65:  "package not installed",
+       66:  "object is remote",
+       67:  "link has been severed",
+       68:  "advertise error",
+       69:  "srmount error",
+       70:  "communication error on send",
+       71:  "protocol error",
+       72:  "multihop attempted",
+       73:  "RFS specific error",
+       74:  "bad message",
+       75:  "value too large for defined data type",
+       76:  "name not unique on network",
+       77:  "file descriptor in bad state",
+       78:  "remote address changed",
+       79:  "can not access a needed shared library",
+       80:  "accessing a corrupted shared library",
+       81:  ".lib section in a.out corrupted",
+       82:  "attempting to link in too many shared libraries",
+       83:  "cannot exec a shared library directly",
+       84:  "invalid or incomplete multibyte or wide character",
+       85:  "interrupted system call should be restarted",
+       86:  "streams pipe error",
+       87:  "too many users",
+       88:  "socket operation on non-socket",
+       89:  "destination address required",
+       90:  "message too long",
+       91:  "protocol wrong type for socket",
+       92:  "protocol not available",
+       93:  "protocol not supported",
+       94:  "socket type not supported",
+       95:  "operation not supported",
+       96:  "protocol family not supported",
+       97:  "address family not supported by protocol",
+       98:  "address already in use",
+       99:  "cannot assign requested address",
+       100: "network is down",
+       101: "network is unreachable",
+       102: "network dropped connection on reset",
+       103: "software caused connection abort",
+       104: "connection reset by peer",
+       105: "no buffer space available",
+       106: "transport endpoint is already connected",
+       107: "transport endpoint is not connected",
+       108: "cannot send after transport endpoint shutdown",
+       109: "too many references: cannot splice",
+       110: "connection timed out",
+       111: "connection refused",
+       112: "host is down",
+       113: "no route to host",
+       114: "operation already in progress",
+       115: "operation now in progress",
+       116: "stale file handle",
+       117: "structure needs cleaning",
+       118: "not a XENIX named type file",
+       119: "no XENIX semaphores available",
+       120: "is a named type file",
+       121: "remote I/O error",
+       122: "disk quota exceeded",
+       123: "no medium found",
+       124: "wrong medium type",
+       125: "operation canceled",
+       126: "required key not available",
+       127: "key has expired",
+       128: "key has been revoked",
+       129: "key was rejected by service",
+       130: "owner died",
+       131: "state not recoverable",
+       132: "operation not possible due to RF-kill",
+       133: "memory page has hardware error",
+}
+
+// Signal table
+var signals = [...]string{
+       1:  "hangup",
+       2:  "interrupt",
+       3:  "quit",
+       4:  "illegal instruction",
+       5:  "trace/breakpoint trap",
+       6:  "aborted",
+       7:  "bus error",
+       8:  "floating point exception",
+       9:  "killed",
+       10: "user defined signal 1",
+       11: "segmentation fault",
+       12: "user defined signal 2",
+       13: "broken pipe",
+       14: "alarm clock",
+       15: "terminated",
+       16: "stack fault",
+       17: "child exited",
+       18: "continued",
+       19: "stopped (signal)",
+       20: "stopped",
+       21: "stopped (tty input)",
+       22: "stopped (tty output)",
+       23: "urgent I/O condition",
+       24: "CPU time limit exceeded",
+       25: "file size limit exceeded",
+       26: "virtual timer expired",
+       27: "profiling timer expired",
+       28: "window changed",
+       29: "I/O possible",
+       30: "power failure",
+       31: "bad system call",
+}
diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go b/vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go
new file mode 100644 (file)
index 0000000..3b57075
--- /dev/null
@@ -0,0 +1,2262 @@
+// mkerrors.sh -Wall -Werror -static -I/tmp/include -fsigned-char
+// Code generated by the command above; see README.md. DO NOT EDIT.
+
+// +build s390x,linux
+
+// Created by cgo -godefs - DO NOT EDIT
+// cgo -godefs -- -Wall -Werror -static -I/tmp/include -fsigned-char _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                               = 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
+)
+
+// Errors
+const (
+       E2BIG           = syscall.Errno(0x7)
+       EACCES          = syscall.Errno(0xd)
+       EADDRINUSE      = syscall.Errno(0x62)
+       EADDRNOTAVAIL   = syscall.Errno(0x63)
+       EADV            = syscall.Errno(0x44)
+       EAFNOSUPPORT    = syscall.Errno(0x61)
+       EAGAIN          = syscall.Errno(0xb)
+       EALREADY        = syscall.Errno(0x72)
+       EBADE           = syscall.Errno(0x34)
+       EBADF           = syscall.Errno(0x9)
+       EBADFD          = syscall.Errno(0x4d)
+       EBADMSG         = syscall.Errno(0x4a)
+       EBADR           = syscall.Errno(0x35)
+       EBADRQC         = syscall.Errno(0x38)
+       EBADSLT         = syscall.Errno(0x39)
+       EBFONT          = syscall.Errno(0x3b)
+       EBUSY           = syscall.Errno(0x10)
+       ECANCELED       = syscall.Errno(0x7d)
+       ECHILD          = syscall.Errno(0xa)
+       ECHRNG          = syscall.Errno(0x2c)
+       ECOMM           = syscall.Errno(0x46)
+       ECONNABORTED    = syscall.Errno(0x67)
+       ECONNREFUSED    = syscall.Errno(0x6f)
+       ECONNRESET      = syscall.Errno(0x68)
+       EDEADLK         = syscall.Errno(0x23)
+       EDEADLOCK       = syscall.Errno(0x23)
+       EDESTADDRREQ    = syscall.Errno(0x59)
+       EDOM            = syscall.Errno(0x21)
+       EDOTDOT         = syscall.Errno(0x49)
+       EDQUOT          = syscall.Errno(0x7a)
+       EEXIST          = syscall.Errno(0x11)
+       EFAULT          = syscall.Errno(0xe)
+       EFBIG           = syscall.Errno(0x1b)
+       EHOSTDOWN       = syscall.Errno(0x70)
+       EHOSTUNREACH    = syscall.Errno(0x71)
+       EHWPOISON       = syscall.Errno(0x85)
+       EIDRM           = syscall.Errno(0x2b)
+       EILSEQ          = syscall.Errno(0x54)
+       EINPROGRESS     = syscall.Errno(0x73)
+       EINTR           = syscall.Errno(0x4)
+       EINVAL          = syscall.Errno(0x16)
+       EIO             = syscall.Errno(0x5)
+       EISCONN         = syscall.Errno(0x6a)
+       EISDIR          = syscall.Errno(0x15)
+       EISNAM          = syscall.Errno(0x78)
+       EKEYEXPIRED     = syscall.Errno(0x7f)
+       EKEYREJECTED    = syscall.Errno(0x81)
+       EKEYREVOKED     = syscall.Errno(0x80)
+       EL2HLT          = syscall.Errno(0x33)
+       EL2NSYNC        = syscall.Errno(0x2d)
+       EL3HLT          = syscall.Errno(0x2e)
+       EL3RST          = syscall.Errno(0x2f)
+       ELIBACC         = syscall.Errno(0x4f)
+       ELIBBAD         = syscall.Errno(0x50)
+       ELIBEXEC        = syscall.Errno(0x53)
+       ELIBMAX         = syscall.Errno(0x52)
+       ELIBSCN         = syscall.Errno(0x51)
+       ELNRNG          = syscall.Errno(0x30)
+       ELOOP           = syscall.Errno(0x28)
+       EMEDIUMTYPE     = syscall.Errno(0x7c)
+       EMFILE          = syscall.Errno(0x18)
+       EMLINK          = syscall.Errno(0x1f)
+       EMSGSIZE        = syscall.Errno(0x5a)
+       EMULTIHOP       = syscall.Errno(0x48)
+       ENAMETOOLONG    = syscall.Errno(0x24)
+       ENAVAIL         = syscall.Errno(0x77)
+       ENETDOWN        = syscall.Errno(0x64)
+       ENETRESET       = syscall.Errno(0x66)
+       ENETUNREACH     = syscall.Errno(0x65)
+       ENFILE          = syscall.Errno(0x17)
+       ENOANO          = syscall.Errno(0x37)
+       ENOBUFS         = syscall.Errno(0x69)
+       ENOCSI          = syscall.Errno(0x32)
+       ENODATA         = syscall.Errno(0x3d)
+       ENODEV          = syscall.Errno(0x13)
+       ENOENT          = syscall.Errno(0x2)
+       ENOEXEC         = syscall.Errno(0x8)
+       ENOKEY          = syscall.Errno(0x7e)
+       ENOLCK          = syscall.Errno(0x25)
+       ENOLINK         = syscall.Errno(0x43)
+       ENOMEDIUM       = syscall.Errno(0x7b)
+       ENOMEM          = syscall.Errno(0xc)
+       ENOMSG          = syscall.Errno(0x2a)
+       ENONET          = syscall.Errno(0x40)
+       ENOPKG          = syscall.Errno(0x41)
+       ENOPROTOOPT     = syscall.Errno(0x5c)
+       ENOSPC          = syscall.Errno(0x1c)
+       ENOSR           = syscall.Errno(0x3f)
+       ENOSTR          = syscall.Errno(0x3c)
+       ENOSYS          = syscall.Errno(0x26)
+       ENOTBLK         = syscall.Errno(0xf)
+       ENOTCONN        = syscall.Errno(0x6b)
+       ENOTDIR         = syscall.Errno(0x14)
+       ENOTEMPTY       = syscall.Errno(0x27)
+       ENOTNAM         = syscall.Errno(0x76)
+       ENOTRECOVERABLE = syscall.Errno(0x83)
+       ENOTSOCK        = syscall.Errno(0x58)
+       ENOTSUP         = syscall.Errno(0x5f)
+       ENOTTY          = syscall.Errno(0x19)
+       ENOTUNIQ        = syscall.Errno(0x4c)
+       ENXIO           = syscall.Errno(0x6)
+       EOPNOTSUPP      = syscall.Errno(0x5f)
+       EOVERFLOW       = syscall.Errno(0x4b)
+       EOWNERDEAD      = syscall.Errno(0x82)
+       EPERM           = syscall.Errno(0x1)
+       EPFNOSUPPORT    = syscall.Errno(0x60)
+       EPIPE           = syscall.Errno(0x20)
+       EPROTO          = syscall.Errno(0x47)
+       EPROTONOSUPPORT = syscall.Errno(0x5d)
+       EPROTOTYPE      = syscall.Errno(0x5b)
+       ERANGE          = syscall.Errno(0x22)
+       EREMCHG         = syscall.Errno(0x4e)
+       EREMOTE         = syscall.Errno(0x42)
+       EREMOTEIO       = syscall.Errno(0x79)
+       ERESTART        = syscall.Errno(0x55)
+       ERFKILL         = syscall.Errno(0x84)
+       EROFS           = syscall.Errno(0x1e)
+       ESHUTDOWN       = syscall.Errno(0x6c)
+       ESOCKTNOSUPPORT = syscall.Errno(0x5e)
+       ESPIPE          = syscall.Errno(0x1d)
+       ESRCH           = syscall.Errno(0x3)
+       ESRMNT          = syscall.Errno(0x45)
+       ESTALE          = syscall.Errno(0x74)
+       ESTRPIPE        = syscall.Errno(0x56)
+       ETIME           = syscall.Errno(0x3e)
+       ETIMEDOUT       = syscall.Errno(0x6e)
+       ETOOMANYREFS    = syscall.Errno(0x6d)
+       ETXTBSY         = syscall.Errno(0x1a)
+       EUCLEAN         = syscall.Errno(0x75)
+       EUNATCH         = syscall.Errno(0x31)
+       EUSERS          = syscall.Errno(0x57)
+       EWOULDBLOCK     = syscall.Errno(0xb)
+       EXDEV           = syscall.Errno(0x12)
+       EXFULL          = syscall.Errno(0x36)
+)
+
+// Signals
+const (
+       SIGABRT   = syscall.Signal(0x6)
+       SIGALRM   = syscall.Signal(0xe)
+       SIGBUS    = syscall.Signal(0x7)
+       SIGCHLD   = syscall.Signal(0x11)
+       SIGCLD    = syscall.Signal(0x11)
+       SIGCONT   = syscall.Signal(0x12)
+       SIGFPE    = syscall.Signal(0x8)
+       SIGHUP    = syscall.Signal(0x1)
+       SIGILL    = syscall.Signal(0x4)
+       SIGINT    = syscall.Signal(0x2)
+       SIGIO     = syscall.Signal(0x1d)
+       SIGIOT    = syscall.Signal(0x6)
+       SIGKILL   = syscall.Signal(0x9)
+       SIGPIPE   = syscall.Signal(0xd)
+       SIGPOLL   = syscall.Signal(0x1d)
+       SIGPROF   = syscall.Signal(0x1b)
+       SIGPWR    = syscall.Signal(0x1e)
+       SIGQUIT   = syscall.Signal(0x3)
+       SIGSEGV   = syscall.Signal(0xb)
+       SIGSTKFLT = syscall.Signal(0x10)
+       SIGSTOP   = syscall.Signal(0x13)
+       SIGSYS    = syscall.Signal(0x1f)
+       SIGTERM   = syscall.Signal(0xf)
+       SIGTRAP   = syscall.Signal(0x5)
+       SIGTSTP   = syscall.Signal(0x14)
+       SIGTTIN   = syscall.Signal(0x15)
+       SIGTTOU   = syscall.Signal(0x16)
+       SIGUNUSED = syscall.Signal(0x1f)
+       SIGURG    = syscall.Signal(0x17)
+       SIGUSR1   = syscall.Signal(0xa)
+       SIGUSR2   = syscall.Signal(0xc)
+       SIGVTALRM = syscall.Signal(0x1a)
+       SIGWINCH  = syscall.Signal(0x1c)
+       SIGXCPU   = syscall.Signal(0x18)
+       SIGXFSZ   = syscall.Signal(0x19)
+)
+
+// Error table
+var errors = [...]string{
+       1:   "operation not permitted",
+       2:   "no such file or directory",
+       3:   "no such process",
+       4:   "interrupted system call",
+       5:   "input/output error",
+       6:   "no such device or address",
+       7:   "argument list too long",
+       8:   "exec format error",
+       9:   "bad file descriptor",
+       10:  "no child processes",
+       11:  "resource temporarily unavailable",
+       12:  "cannot allocate memory",
+       13:  "permission denied",
+       14:  "bad address",
+       15:  "block device required",
+       16:  "device or resource busy",
+       17:  "file exists",
+       18:  "invalid cross-device link",
+       19:  "no such device",
+       20:  "not a directory",
+       21:  "is a directory",
+       22:  "invalid argument",
+       23:  "too many open files in system",
+       24:  "too many open files",
+       25:  "inappropriate ioctl for device",
+       26:  "text file busy",
+       27:  "file too large",
+       28:  "no space left on device",
+       29:  "illegal seek",
+       30:  "read-only file system",
+       31:  "too many links",
+       32:  "broken pipe",
+       33:  "numerical argument out of domain",
+       34:  "numerical result out of range",
+       35:  "resource deadlock avoided",
+       36:  "file name too long",
+       37:  "no locks available",
+       38:  "function not implemented",
+       39:  "directory not empty",
+       40:  "too many levels of symbolic links",
+       42:  "no message of desired type",
+       43:  "identifier removed",
+       44:  "channel number out of range",
+       45:  "level 2 not synchronized",
+       46:  "level 3 halted",
+       47:  "level 3 reset",
+       48:  "link number out of range",
+       49:  "protocol driver not attached",
+       50:  "no CSI structure available",
+       51:  "level 2 halted",
+       52:  "invalid exchange",
+       53:  "invalid request descriptor",
+       54:  "exchange full",
+       55:  "no anode",
+       56:  "invalid request code",
+       57:  "invalid slot",
+       59:  "bad font file format",
+       60:  "device not a stream",
+       61:  "no data available",
+       62:  "timer expired",
+       63:  "out of streams resources",
+       64:  "machine is not on the network",
+       65:  "package not installed",
+       66:  "object is remote",
+       67:  "link has been severed",
+       68:  "advertise error",
+       69:  "srmount error",
+       70:  "communication error on send",
+       71:  "protocol error",
+       72:  "multihop attempted",
+       73:  "RFS specific error",
+       74:  "bad message",
+       75:  "value too large for defined data type",
+       76:  "name not unique on network",
+       77:  "file descriptor in bad state",
+       78:  "remote address changed",
+       79:  "can not access a needed shared library",
+       80:  "accessing a corrupted shared library",
+       81:  ".lib section in a.out corrupted",
+       82:  "attempting to link in too many shared libraries",
+       83:  "cannot exec a shared library directly",
+       84:  "invalid or incomplete multibyte or wide character",
+       85:  "interrupted system call should be restarted",
+       86:  "streams pipe error",
+       87:  "too many users",
+       88:  "socket operation on non-socket",
+       89:  "destination address required",
+       90:  "message too long",
+       91:  "protocol wrong type for socket",
+       92:  "protocol not available",
+       93:  "protocol not supported",
+       94:  "socket type not supported",
+       95:  "operation not supported",
+       96:  "protocol family not supported",
+       97:  "address family not supported by protocol",
+       98:  "address already in use",
+       99:  "cannot assign requested address",
+       100: "network is down",
+       101: "network is unreachable",
+       102: "network dropped connection on reset",
+       103: "software caused connection abort",
+       104: "connection reset by peer",
+       105: "no buffer space available",
+       106: "transport endpoint is already connected",
+       107: "transport endpoint is not connected",
+       108: "cannot send after transport endpoint shutdown",
+       109: "too many references: cannot splice",
+       110: "connection timed out",
+       111: "connection refused",
+       112: "host is down",
+       113: "no route to host",
+       114: "operation already in progress",
+       115: "operation now in progress",
+       116: "stale file handle",
+       117: "structure needs cleaning",
+       118: "not a XENIX named type file",
+       119: "no XENIX semaphores available",
+       120: "is a named type file",
+       121: "remote I/O error",
+       122: "disk quota exceeded",
+       123: "no medium found",
+       124: "wrong medium type",
+       125: "operation canceled",
+       126: "required key not available",
+       127: "key has expired",
+       128: "key has been revoked",
+       129: "key was rejected by service",
+       130: "owner died",
+       131: "state not recoverable",
+       132: "operation not possible due to RF-kill",
+       133: "memory page has hardware error",
+}
+
+// Signal table
+var signals = [...]string{
+       1:  "hangup",
+       2:  "interrupt",
+       3:  "quit",
+       4:  "illegal instruction",
+       5:  "trace/breakpoint trap",
+       6:  "aborted",
+       7:  "bus error",
+       8:  "floating point exception",
+       9:  "killed",
+       10: "user defined signal 1",
+       11: "segmentation fault",
+       12: "user defined signal 2",
+       13: "broken pipe",
+       14: "alarm clock",
+       15: "terminated",
+       16: "stack fault",
+       17: "child exited",
+       18: "continued",
+       19: "stopped (signal)",
+       20: "stopped",
+       21: "stopped (tty input)",
+       22: "stopped (tty output)",
+       23: "urgent I/O condition",
+       24: "CPU time limit exceeded",
+       25: "file size limit exceeded",
+       26: "virtual timer expired",
+       27: "profiling timer expired",
+       28: "window changed",
+       29: "I/O possible",
+       30: "power failure",
+       31: "bad system call",
+}
diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go
new file mode 100644 (file)
index 0000000..95de199
--- /dev/null
@@ -0,0 +1,2142 @@
+// mkerrors.sh -m64
+// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT
+
+// +build sparc64,linux
+
+// Created by cgo -godefs - DO NOT EDIT
+// cgo -godefs -- -m64 _const.go
+
+package unix
+
+import "syscall"
+
+const (
+       AF_ALG                           = 0x26
+       AF_APPLETALK                     = 0x5
+       AF_ASH                           = 0x12
+       AF_ATMPVC                        = 0x8
+       AF_ATMSVC                        = 0x14
+       AF_AX25                          = 0x3
+       AF_BLUETOOTH                     = 0x1f
+       AF_BRIDGE                        = 0x7
+       AF_CAIF                          = 0x25
+       AF_CAN                           = 0x1d
+       AF_DECnet                        = 0xc
+       AF_ECONET                        = 0x13
+       AF_FILE                          = 0x1
+       AF_IB                            = 0x1b
+       AF_IEEE802154                    = 0x24
+       AF_INET                          = 0x2
+       AF_INET6                         = 0xa
+       AF_IPX                           = 0x4
+       AF_IRDA                          = 0x17
+       AF_ISDN                          = 0x22
+       AF_IUCV                          = 0x20
+       AF_KCM                           = 0x29
+       AF_KEY                           = 0xf
+       AF_LLC                           = 0x1a
+       AF_LOCAL                         = 0x1
+       AF_MAX                           = 0x2a
+       AF_MPLS                          = 0x1c
+       AF_NETBEUI                       = 0xd
+       AF_NETLINK                       = 0x10
+       AF_NETROM                        = 0x6
+       AF_NFC                           = 0x27
+       AF_PACKET                        = 0x11
+       AF_PHONET                        = 0x23
+       AF_PPPOX                         = 0x18
+       AF_RDS                           = 0x15
+       AF_ROSE                          = 0xb
+       AF_ROUTE                         = 0x10
+       AF_RXRPC                         = 0x21
+       AF_SECURITY                      = 0xe
+       AF_SNA                           = 0x16
+       AF_TIPC                          = 0x1e
+       AF_UNIX                          = 0x1
+       AF_UNSPEC                        = 0x0
+       AF_VSOCK                         = 0x28
+       AF_WANPIPE                       = 0x19
+       AF_X25                           = 0x9
+       ALG_OP_DECRYPT                   = 0x0
+       ALG_OP_ENCRYPT                   = 0x1
+       ALG_SET_AEAD_ASSOCLEN            = 0x4
+       ALG_SET_AEAD_AUTHSIZE            = 0x5
+       ALG_SET_IV                       = 0x2
+       ALG_SET_KEY                      = 0x1
+       ALG_SET_OP                       = 0x3
+       ARPHRD_6LOWPAN                   = 0x339
+       ARPHRD_ADAPT                     = 0x108
+       ARPHRD_APPLETLK                  = 0x8
+       ARPHRD_ARCNET                    = 0x7
+       ARPHRD_ASH                       = 0x30d
+       ARPHRD_ATM                       = 0x13
+       ARPHRD_AX25                      = 0x3
+       ARPHRD_BIF                       = 0x307
+       ARPHRD_CAIF                      = 0x336
+       ARPHRD_CAN                       = 0x118
+       ARPHRD_CHAOS                     = 0x5
+       ARPHRD_CISCO                     = 0x201
+       ARPHRD_CSLIP                     = 0x101
+       ARPHRD_CSLIP6                    = 0x103
+       ARPHRD_DDCMP                     = 0x205
+       ARPHRD_DLCI                      = 0xf
+       ARPHRD_ECONET                    = 0x30e
+       ARPHRD_EETHER                    = 0x2
+       ARPHRD_ETHER                     = 0x1
+       ARPHRD_EUI64                     = 0x1b
+       ARPHRD_FCAL                      = 0x311
+       ARPHRD_FCFABRIC                  = 0x313
+       ARPHRD_FCPL                      = 0x312
+       ARPHRD_FCPP                      = 0x310
+       ARPHRD_FDDI                      = 0x306
+       ARPHRD_FRAD                      = 0x302
+       ARPHRD_HDLC                      = 0x201
+       ARPHRD_HIPPI                     = 0x30c
+       ARPHRD_HWX25                     = 0x110
+       ARPHRD_IEEE1394                  = 0x18
+       ARPHRD_IEEE802                   = 0x6
+       ARPHRD_IEEE80211                 = 0x321
+       ARPHRD_IEEE80211_PRISM           = 0x322
+       ARPHRD_IEEE80211_RADIOTAP        = 0x323
+       ARPHRD_IEEE802154                = 0x324
+       ARPHRD_IEEE802154_MONITOR        = 0x325
+       ARPHRD_IEEE802_TR                = 0x320
+       ARPHRD_INFINIBAND                = 0x20
+       ARPHRD_IP6GRE                    = 0x337
+       ARPHRD_IPDDP                     = 0x309
+       ARPHRD_IPGRE                     = 0x30a
+       ARPHRD_IRDA                      = 0x30f
+       ARPHRD_LAPB                      = 0x204
+       ARPHRD_LOCALTLK                  = 0x305
+       ARPHRD_LOOPBACK                  = 0x304
+       ARPHRD_METRICOM                  = 0x17
+       ARPHRD_NETLINK                   = 0x338
+       ARPHRD_NETROM                    = 0x0
+       ARPHRD_NONE                      = 0xfffe
+       ARPHRD_PHONET                    = 0x334
+       ARPHRD_PHONET_PIPE               = 0x335
+       ARPHRD_PIMREG                    = 0x30b
+       ARPHRD_PPP                       = 0x200
+       ARPHRD_PRONET                    = 0x4
+       ARPHRD_RAWHDLC                   = 0x206
+       ARPHRD_ROSE                      = 0x10e
+       ARPHRD_RSRVD                     = 0x104
+       ARPHRD_SIT                       = 0x308
+       ARPHRD_SKIP                      = 0x303
+       ARPHRD_SLIP                      = 0x100
+       ARPHRD_SLIP6                     = 0x102
+       ARPHRD_TUNNEL                    = 0x300
+       ARPHRD_TUNNEL6                   = 0x301
+       ARPHRD_VOID                      = 0xffff
+       ARPHRD_X25                       = 0x10f
+       ASI_LEON_DFLUSH                  = 0x11
+       ASI_LEON_IFLUSH                  = 0x10
+       ASI_LEON_MMUFLUSH                = 0x18
+       B0                               = 0x0
+       B1000000                         = 0x100c
+       B110                             = 0x3
+       B115200                          = 0x1002
+       B1152000                         = 0x100d
+       B1200                            = 0x9
+       B134                             = 0x4
+       B150                             = 0x5
+       B1500000                         = 0x100e
+       B153600                          = 0x1006
+       B1800                            = 0xa
+       B19200                           = 0xe
+       B200                             = 0x6
+       B2000000                         = 0x100f
+       B230400                          = 0x1003
+       B2400                            = 0xb
+       B300                             = 0x7
+       B307200                          = 0x1007
+       B38400                           = 0xf
+       B460800                          = 0x1004
+       B4800                            = 0xc
+       B50                              = 0x1
+       B500000                          = 0x100a
+       B57600                           = 0x1001
+       B576000                          = 0x100b
+       B600                             = 0x8
+       B614400                          = 0x1008
+       B75                              = 0x2
+       B76800                           = 0x1005
+       B921600                          = 0x1009
+       B9600                            = 0xd
+       BLKBSZGET                        = 0x80081270
+       BLKBSZSET                        = 0x40081271
+       BLKFLSBUF                        = 0x1261
+       BLKFRAGET                        = 0x1265
+       BLKFRASET                        = 0x1264
+       BLKGETSIZE                       = 0x1260
+       BLKGETSIZE64                     = 0x80081272
+       BLKRAGET                         = 0x1263
+       BLKRASET                         = 0x1262
+       BLKROGET                         = 0x125e
+       BLKROSET                         = 0x125d
+       BLKRRPART                        = 0x125f
+       BLKSECTGET                       = 0x1267
+       BLKSECTSET                       = 0x1266
+       BLKSSZGET                        = 0x1268
+       BOTHER                           = 0x1000
+       BPF_A                            = 0x10
+       BPF_ABS                          = 0x20
+       BPF_ADD                          = 0x0
+       BPF_ALU                          = 0x4
+       BPF_AND                          = 0x50
+       BPF_B                            = 0x10
+       BPF_DIV                          = 0x30
+       BPF_H                            = 0x8
+       BPF_IMM                          = 0x0
+       BPF_IND                          = 0x40
+       BPF_JA                           = 0x0
+       BPF_JEQ                          = 0x10
+       BPF_JGE                          = 0x30
+       BPF_JGT                          = 0x20
+       BPF_JMP                          = 0x5
+       BPF_JSET                         = 0x40
+       BPF_K                            = 0x0
+       BPF_LD                           = 0x0
+       BPF_LDX                          = 0x1
+       BPF_LEN                          = 0x80
+       BPF_LL_OFF                       = -0x200000
+       BPF_LSH                          = 0x60
+       BPF_MAJOR_VERSION                = 0x1
+       BPF_MAXINSNS                     = 0x1000
+       BPF_MEM                          = 0x60
+       BPF_MEMWORDS                     = 0x10
+       BPF_MINOR_VERSION                = 0x1
+       BPF_MISC                         = 0x7
+       BPF_MOD                          = 0x90
+       BPF_MSH                          = 0xa0
+       BPF_MUL                          = 0x20
+       BPF_NEG                          = 0x80
+       BPF_NET_OFF                      = -0x100000
+       BPF_OR                           = 0x40
+       BPF_RET                          = 0x6
+       BPF_RSH                          = 0x70
+       BPF_ST                           = 0x2
+       BPF_STX                          = 0x3
+       BPF_SUB                          = 0x10
+       BPF_TAX                          = 0x0
+       BPF_TXA                          = 0x80
+       BPF_W                            = 0x0
+       BPF_X                            = 0x8
+       BPF_XOR                          = 0xa0
+       BRKINT                           = 0x2
+       BS0                              = 0x0
+       BS1                              = 0x2000
+       BSDLY                            = 0x2000
+       CAN_BCM                          = 0x2
+       CAN_EFF_FLAG                     = 0x80000000
+       CAN_EFF_ID_BITS                  = 0x1d
+       CAN_EFF_MASK                     = 0x1fffffff
+       CAN_ERR_FLAG                     = 0x20000000
+       CAN_ERR_MASK                     = 0x1fffffff
+       CAN_INV_FILTER                   = 0x20000000
+       CAN_ISOTP                        = 0x6
+       CAN_MAX_DLC                      = 0x8
+       CAN_MAX_DLEN                     = 0x8
+       CAN_MCNET                        = 0x5
+       CAN_MTU                          = 0x10
+       CAN_NPROTO                       = 0x7
+       CAN_RAW                          = 0x1
+       CAN_RTR_FLAG                     = 0x40000000
+       CAN_SFF_ID_BITS                  = 0xb
+       CAN_SFF_MASK                     = 0x7ff
+       CAN_TP16                         = 0x3
+       CAN_TP20                         = 0x4
+       CBAUD                            = 0x100f
+       CBAUDEX                          = 0x1000
+       CFLUSH                           = 0xf
+       CIBAUD                           = 0x100f0000
+       CLOCAL                           = 0x800
+       CLOCK_BOOTTIME                   = 0x7
+       CLOCK_BOOTTIME_ALARM             = 0x9
+       CLOCK_DEFAULT                    = 0x0
+       CLOCK_EXT                        = 0x1
+       CLOCK_INT                        = 0x2
+       CLOCK_MONOTONIC                  = 0x1
+       CLOCK_MONOTONIC_COARSE           = 0x6
+       CLOCK_MONOTONIC_RAW              = 0x4
+       CLOCK_PROCESS_CPUTIME_ID         = 0x2
+       CLOCK_REALTIME                   = 0x0
+       CLOCK_REALTIME_ALARM             = 0x8
+       CLOCK_REALTIME_COARSE            = 0x5
+       CLOCK_TAI                        = 0xb
+       CLOCK_THREAD_CPUTIME_ID          = 0x3
+       CLOCK_TXFROMRX                   = 0x4
+       CLOCK_TXINT                      = 0x3
+       CLONE_CHILD_CLEARTID             = 0x200000
+       CLONE_CHILD_SETTID               = 0x1000000
+       CLONE_DETACHED                   = 0x400000
+       CLONE_FILES                      = 0x400
+       CLONE_FS                         = 0x200
+       CLONE_IO                         = 0x80000000
+       CLONE_NEWCGROUP                  = 0x2000000
+       CLONE_NEWIPC                     = 0x8000000
+       CLONE_NEWNET                     = 0x40000000
+       CLONE_NEWNS                      = 0x20000
+       CLONE_NEWPID                     = 0x20000000
+       CLONE_NEWUSER                    = 0x10000000
+       CLONE_NEWUTS                     = 0x4000000
+       CLONE_PARENT                     = 0x8000
+       CLONE_PARENT_SETTID              = 0x100000
+       CLONE_PTRACE                     = 0x2000
+       CLONE_SETTLS                     = 0x80000
+       CLONE_SIGHAND                    = 0x800
+       CLONE_SYSVSEM                    = 0x40000
+       CLONE_THREAD                     = 0x10000
+       CLONE_UNTRACED                   = 0x800000
+       CLONE_VFORK                      = 0x4000
+       CLONE_VM                         = 0x100
+       CMSPAR                           = 0x40000000
+       CR0                              = 0x0
+       CR1                              = 0x200
+       CR2                              = 0x400
+       CR3                              = 0x600
+       CRDLY                            = 0x600
+       CREAD                            = 0x80
+       CRTSCTS                          = 0x80000000
+       CS5                              = 0x0
+       CS6                              = 0x10
+       CS7                              = 0x20
+       CS8                              = 0x30
+       CSIGNAL                          = 0xff
+       CSIZE                            = 0x30
+       CSTART                           = 0x11
+       CSTATUS                          = 0x0
+       CSTOP                            = 0x13
+       CSTOPB                           = 0x40
+       CSUSP                            = 0x1a
+       DT_BLK                           = 0x6
+       DT_CHR                           = 0x2
+       DT_DIR                           = 0x4
+       DT_FIFO                          = 0x1
+       DT_LNK                           = 0xa
+       DT_REG                           = 0x8
+       DT_SOCK                          = 0xc
+       DT_UNKNOWN                       = 0x0
+       DT_WHT                           = 0xe
+       ECHO                             = 0x8
+       ECHOCTL                          = 0x200
+       ECHOE                            = 0x10
+       ECHOK                            = 0x20
+       ECHOKE                           = 0x800
+       ECHONL                           = 0x40
+       ECHOPRT                          = 0x400
+       EMT_TAGOVF                       = 0x1
+       ENCODING_DEFAULT                 = 0x0
+       ENCODING_FM_MARK                 = 0x3
+       ENCODING_FM_SPACE                = 0x4
+       ENCODING_MANCHESTER              = 0x5
+       ENCODING_NRZ                     = 0x1
+       ENCODING_NRZI                    = 0x2
+       EPOLLERR                         = 0x8
+       EPOLLET                          = 0x80000000
+       EPOLLEXCLUSIVE                   = 0x10000000
+       EPOLLHUP                         = 0x10
+       EPOLLIN                          = 0x1
+       EPOLLMSG                         = 0x400
+       EPOLLONESHOT                     = 0x40000000
+       EPOLLOUT                         = 0x4
+       EPOLLPRI                         = 0x2
+       EPOLLRDBAND                      = 0x80
+       EPOLLRDHUP                       = 0x2000
+       EPOLLRDNORM                      = 0x40
+       EPOLLWAKEUP                      = 0x20000000
+       EPOLLWRBAND                      = 0x200
+       EPOLLWRNORM                      = 0x100
+       EPOLL_CLOEXEC                    = 0x400000
+       EPOLL_CTL_ADD                    = 0x1
+       EPOLL_CTL_DEL                    = 0x2
+       EPOLL_CTL_MOD                    = 0x3
+       ETH_P_1588                       = 0x88f7
+       ETH_P_8021AD                     = 0x88a8
+       ETH_P_8021AH                     = 0x88e7
+       ETH_P_8021Q                      = 0x8100
+       ETH_P_80221                      = 0x8917
+       ETH_P_802_2                      = 0x4
+       ETH_P_802_3                      = 0x1
+       ETH_P_802_3_MIN                  = 0x600
+       ETH_P_802_EX1                    = 0x88b5
+       ETH_P_AARP                       = 0x80f3
+       ETH_P_AF_IUCV                    = 0xfbfb
+       ETH_P_ALL                        = 0x3
+       ETH_P_AOE                        = 0x88a2
+       ETH_P_ARCNET                     = 0x1a
+       ETH_P_ARP                        = 0x806
+       ETH_P_ATALK                      = 0x809b
+       ETH_P_ATMFATE                    = 0x8884
+       ETH_P_ATMMPOA                    = 0x884c
+       ETH_P_AX25                       = 0x2
+       ETH_P_BATMAN                     = 0x4305
+       ETH_P_BPQ                        = 0x8ff
+       ETH_P_CAIF                       = 0xf7
+       ETH_P_CAN                        = 0xc
+       ETH_P_CANFD                      = 0xd
+       ETH_P_CONTROL                    = 0x16
+       ETH_P_CUST                       = 0x6006
+       ETH_P_DDCMP                      = 0x6
+       ETH_P_DEC                        = 0x6000
+       ETH_P_DIAG                       = 0x6005
+       ETH_P_DNA_DL                     = 0x6001
+       ETH_P_DNA_RC                     = 0x6002
+       ETH_P_DNA_RT                     = 0x6003
+       ETH_P_DSA                        = 0x1b
+       ETH_P_ECONET                     = 0x18
+       ETH_P_EDSA                       = 0xdada
+       ETH_P_FCOE                       = 0x8906
+       ETH_P_FIP                        = 0x8914
+       ETH_P_HDLC                       = 0x19
+       ETH_P_HSR                        = 0x892f
+       ETH_P_IEEE802154                 = 0xf6
+       ETH_P_IEEEPUP                    = 0xa00
+       ETH_P_IEEEPUPAT                  = 0xa01
+       ETH_P_IP                         = 0x800
+       ETH_P_IPV6                       = 0x86dd
+       ETH_P_IPX                        = 0x8137
+       ETH_P_IRDA                       = 0x17
+       ETH_P_LAT                        = 0x6004
+       ETH_P_LINK_CTL                   = 0x886c
+       ETH_P_LOCALTALK                  = 0x9
+       ETH_P_LOOP                       = 0x60
+       ETH_P_LOOPBACK                   = 0x9000
+       ETH_P_MACSEC                     = 0x88e5
+       ETH_P_MOBITEX                    = 0x15
+       ETH_P_MPLS_MC                    = 0x8848
+       ETH_P_MPLS_UC                    = 0x8847
+       ETH_P_MVRP                       = 0x88f5
+       ETH_P_PAE                        = 0x888e
+       ETH_P_PAUSE                      = 0x8808
+       ETH_P_PHONET                     = 0xf5
+       ETH_P_PPPTALK                    = 0x10
+       ETH_P_PPP_DISC                   = 0x8863
+       ETH_P_PPP_MP                     = 0x8
+       ETH_P_PPP_SES                    = 0x8864
+       ETH_P_PRP                        = 0x88fb
+       ETH_P_PUP                        = 0x200
+       ETH_P_PUPAT                      = 0x201
+       ETH_P_QINQ1                      = 0x9100
+       ETH_P_QINQ2                      = 0x9200
+       ETH_P_QINQ3                      = 0x9300
+       ETH_P_RARP                       = 0x8035
+       ETH_P_SCA                        = 0x6007
+       ETH_P_SLOW                       = 0x8809
+       ETH_P_SNAP                       = 0x5
+       ETH_P_TDLS                       = 0x890d
+       ETH_P_TEB                        = 0x6558
+       ETH_P_TIPC                       = 0x88ca
+       ETH_P_TRAILER                    = 0x1c
+       ETH_P_TR_802_2                   = 0x11
+       ETH_P_TSN                        = 0x22f0
+       ETH_P_WAN_PPP                    = 0x7
+       ETH_P_WCCP                       = 0x883e
+       ETH_P_X25                        = 0x805
+       ETH_P_XDSA                       = 0xf8
+       EXTA                             = 0xe
+       EXTB                             = 0xf
+       EXTPROC                          = 0x10000
+       FALLOC_FL_COLLAPSE_RANGE         = 0x8
+       FALLOC_FL_INSERT_RANGE           = 0x20
+       FALLOC_FL_KEEP_SIZE              = 0x1
+       FALLOC_FL_NO_HIDE_STALE          = 0x4
+       FALLOC_FL_PUNCH_HOLE             = 0x2
+       FALLOC_FL_ZERO_RANGE             = 0x10
+       FD_CLOEXEC                       = 0x1
+       FD_SETSIZE                       = 0x400
+       FF0                              = 0x0
+       FF1                              = 0x8000
+       FFDLY                            = 0x8000
+       FLUSHO                           = 0x2000
+       F_DUPFD                          = 0x0
+       F_DUPFD_CLOEXEC                  = 0x406
+       F_EXLCK                          = 0x4
+       F_GETFD                          = 0x1
+       F_GETFL                          = 0x3
+       F_GETLEASE                       = 0x401
+       F_GETLK                          = 0x7
+       F_GETLK64                        = 0x7
+       F_GETOWN                         = 0x5
+       F_GETOWN_EX                      = 0x10
+       F_GETPIPE_SZ                     = 0x408
+       F_GETSIG                         = 0xb
+       F_LOCK                           = 0x1
+       F_NOTIFY                         = 0x402
+       F_OFD_GETLK                      = 0x24
+       F_OFD_SETLK                      = 0x25
+       F_OFD_SETLKW                     = 0x26
+       F_OK                             = 0x0
+       F_RDLCK                          = 0x1
+       F_SETFD                          = 0x2
+       F_SETFL                          = 0x4
+       F_SETLEASE                       = 0x400
+       F_SETLK                          = 0x8
+       F_SETLK64                        = 0x8
+       F_SETLKW                         = 0x9
+       F_SETLKW64                       = 0x9
+       F_SETOWN                         = 0x6
+       F_SETOWN_EX                      = 0xf
+       F_SETPIPE_SZ                     = 0x407
+       F_SETSIG                         = 0xa
+       F_SHLCK                          = 0x8
+       F_TEST                           = 0x3
+       F_TLOCK                          = 0x2
+       F_ULOCK                          = 0x0
+       F_UNLCK                          = 0x3
+       F_WRLCK                          = 0x2
+       GRND_NONBLOCK                    = 0x1
+       GRND_RANDOM                      = 0x2
+       HUPCL                            = 0x400
+       IBSHIFT                          = 0x10
+       ICANON                           = 0x2
+       ICMPV6_FILTER                    = 0x1
+       ICRNL                            = 0x100
+       IEXTEN                           = 0x8000
+       IFA_F_DADFAILED                  = 0x8
+       IFA_F_DEPRECATED                 = 0x20
+       IFA_F_HOMEADDRESS                = 0x10
+       IFA_F_MANAGETEMPADDR             = 0x100
+       IFA_F_MCAUTOJOIN                 = 0x400
+       IFA_F_NODAD                      = 0x2
+       IFA_F_NOPREFIXROUTE              = 0x200
+       IFA_F_OPTIMISTIC                 = 0x4
+       IFA_F_PERMANENT                  = 0x80
+       IFA_F_SECONDARY                  = 0x1
+       IFA_F_STABLE_PRIVACY             = 0x800
+       IFA_F_TEMPORARY                  = 0x1
+       IFA_F_TENTATIVE                  = 0x40
+       IFA_MAX                          = 0x8
+       IFF_ALLMULTI                     = 0x200
+       IFF_ATTACH_QUEUE                 = 0x200
+       IFF_AUTOMEDIA                    = 0x4000
+       IFF_BROADCAST                    = 0x2
+       IFF_DEBUG                        = 0x4
+       IFF_DETACH_QUEUE                 = 0x400
+       IFF_DORMANT                      = 0x20000
+       IFF_DYNAMIC                      = 0x8000
+       IFF_ECHO                         = 0x40000
+       IFF_LOOPBACK                     = 0x8
+       IFF_LOWER_UP                     = 0x10000
+       IFF_MASTER                       = 0x400
+       IFF_MULTICAST                    = 0x1000
+       IFF_MULTI_QUEUE                  = 0x100
+       IFF_NOARP                        = 0x80
+       IFF_NOFILTER                     = 0x1000
+       IFF_NOTRAILERS                   = 0x20
+       IFF_NO_PI                        = 0x1000
+       IFF_ONE_QUEUE                    = 0x2000
+       IFF_PERSIST                      = 0x800
+       IFF_POINTOPOINT                  = 0x10
+       IFF_PORTSEL                      = 0x2000
+       IFF_PROMISC                      = 0x100
+       IFF_RUNNING                      = 0x40
+       IFF_SLAVE                        = 0x800
+       IFF_TAP                          = 0x2
+       IFF_TUN                          = 0x1
+       IFF_TUN_EXCL                     = 0x8000
+       IFF_UP                           = 0x1
+       IFF_VNET_HDR                     = 0x4000
+       IFF_VOLATILE                     = 0x70c5a
+       IFNAMSIZ                         = 0x10
+       IGNBRK                           = 0x1
+       IGNCR                            = 0x80
+       IGNPAR                           = 0x4
+       IMAXBEL                          = 0x2000
+       INLCR                            = 0x40
+       INPCK                            = 0x10
+       IN_ACCESS                        = 0x1
+       IN_ALL_EVENTS                    = 0xfff
+       IN_ATTRIB                        = 0x4
+       IN_CLASSA_HOST                   = 0xffffff
+       IN_CLASSA_MAX                    = 0x80
+       IN_CLASSA_NET                    = 0xff000000
+       IN_CLASSA_NSHIFT                 = 0x18
+       IN_CLASSB_HOST                   = 0xffff
+       IN_CLASSB_MAX                    = 0x10000
+       IN_CLASSB_NET                    = 0xffff0000
+       IN_CLASSB_NSHIFT                 = 0x10
+       IN_CLASSC_HOST                   = 0xff
+       IN_CLASSC_NET                    = 0xffffff00
+       IN_CLASSC_NSHIFT                 = 0x8
+       IN_CLOEXEC                       = 0x400000
+       IN_CLOSE                         = 0x18
+       IN_CLOSE_NOWRITE                 = 0x10
+       IN_CLOSE_WRITE                   = 0x8
+       IN_CREATE                        = 0x100
+       IN_DELETE                        = 0x200
+       IN_DELETE_SELF                   = 0x400
+       IN_DONT_FOLLOW                   = 0x2000000
+       IN_EXCL_UNLINK                   = 0x4000000
+       IN_IGNORED                       = 0x8000
+       IN_ISDIR                         = 0x40000000
+       IN_LOOPBACKNET                   = 0x7f
+       IN_MASK_ADD                      = 0x20000000
+       IN_MODIFY                        = 0x2
+       IN_MOVE                          = 0xc0
+       IN_MOVED_FROM                    = 0x40
+       IN_MOVED_TO                      = 0x80
+       IN_MOVE_SELF                     = 0x800
+       IN_NONBLOCK                      = 0x4000
+       IN_ONESHOT                       = 0x80000000
+       IN_ONLYDIR                       = 0x1000000
+       IN_OPEN                          = 0x20
+       IN_Q_OVERFLOW                    = 0x4000
+       IN_UNMOUNT                       = 0x2000
+       IPPROTO_AH                       = 0x33
+       IPPROTO_BEETPH                   = 0x5e
+       IPPROTO_COMP                     = 0x6c
+       IPPROTO_DCCP                     = 0x21
+       IPPROTO_DSTOPTS                  = 0x3c
+       IPPROTO_EGP                      = 0x8
+       IPPROTO_ENCAP                    = 0x62
+       IPPROTO_ESP                      = 0x32
+       IPPROTO_FRAGMENT                 = 0x2c
+       IPPROTO_GRE                      = 0x2f
+       IPPROTO_HOPOPTS                  = 0x0
+       IPPROTO_ICMP                     = 0x1
+       IPPROTO_ICMPV6                   = 0x3a
+       IPPROTO_IDP                      = 0x16
+       IPPROTO_IGMP                     = 0x2
+       IPPROTO_IP                       = 0x0
+       IPPROTO_IPIP                     = 0x4
+       IPPROTO_IPV6                     = 0x29
+       IPPROTO_MH                       = 0x87
+       IPPROTO_MPLS                     = 0x89
+       IPPROTO_MTP                      = 0x5c
+       IPPROTO_NONE                     = 0x3b
+       IPPROTO_PIM                      = 0x67
+       IPPROTO_PUP                      = 0xc
+       IPPROTO_RAW                      = 0xff
+       IPPROTO_ROUTING                  = 0x2b
+       IPPROTO_RSVP                     = 0x2e
+       IPPROTO_SCTP                     = 0x84
+       IPPROTO_TCP                      = 0x6
+       IPPROTO_TP                       = 0x1d
+       IPPROTO_UDP                      = 0x11
+       IPPROTO_UDPLITE                  = 0x88
+       IPV6_2292DSTOPTS                 = 0x4
+       IPV6_2292HOPLIMIT                = 0x8
+       IPV6_2292HOPOPTS                 = 0x3
+       IPV6_2292PKTINFO                 = 0x2
+       IPV6_2292PKTOPTIONS              = 0x6
+       IPV6_2292RTHDR                   = 0x5
+       IPV6_ADDRFORM                    = 0x1
+       IPV6_ADD_MEMBERSHIP              = 0x14
+       IPV6_AUTHHDR                     = 0xa
+       IPV6_CHECKSUM                    = 0x7
+       IPV6_DONTFRAG                    = 0x3e
+       IPV6_DROP_MEMBERSHIP             = 0x15
+       IPV6_DSTOPTS                     = 0x3b
+       IPV6_HDRINCL                     = 0x24
+       IPV6_HOPLIMIT                    = 0x34
+       IPV6_HOPOPTS                     = 0x36
+       IPV6_IPSEC_POLICY                = 0x22
+       IPV6_JOIN_ANYCAST                = 0x1b
+       IPV6_JOIN_GROUP                  = 0x14
+       IPV6_LEAVE_ANYCAST               = 0x1c
+       IPV6_LEAVE_GROUP                 = 0x15
+       IPV6_MTU                         = 0x18
+       IPV6_MTU_DISCOVER                = 0x17
+       IPV6_MULTICAST_HOPS              = 0x12
+       IPV6_MULTICAST_IF                = 0x11
+       IPV6_MULTICAST_LOOP              = 0x13
+       IPV6_NEXTHOP                     = 0x9
+       IPV6_PATHMTU                     = 0x3d
+       IPV6_PKTINFO                     = 0x32
+       IPV6_PMTUDISC_DO                 = 0x2
+       IPV6_PMTUDISC_DONT               = 0x0
+       IPV6_PMTUDISC_INTERFACE          = 0x4
+       IPV6_PMTUDISC_OMIT               = 0x5
+       IPV6_PMTUDISC_PROBE              = 0x3
+       IPV6_PMTUDISC_WANT               = 0x1
+       IPV6_RECVDSTOPTS                 = 0x3a
+       IPV6_RECVERR                     = 0x19
+       IPV6_RECVHOPLIMIT                = 0x33
+       IPV6_RECVHOPOPTS                 = 0x35
+       IPV6_RECVPATHMTU                 = 0x3c
+       IPV6_RECVPKTINFO                 = 0x31
+       IPV6_RECVRTHDR                   = 0x38
+       IPV6_RECVTCLASS                  = 0x42
+       IPV6_ROUTER_ALERT                = 0x16
+       IPV6_RTHDR                       = 0x39
+       IPV6_RTHDRDSTOPTS                = 0x37
+       IPV6_RTHDR_LOOSE                 = 0x0
+       IPV6_RTHDR_STRICT                = 0x1
+       IPV6_RTHDR_TYPE_0                = 0x0
+       IPV6_RXDSTOPTS                   = 0x3b
+       IPV6_RXHOPOPTS                   = 0x36
+       IPV6_TCLASS                      = 0x43
+       IPV6_UNICAST_HOPS                = 0x10
+       IPV6_V6ONLY                      = 0x1a
+       IPV6_XFRM_POLICY                 = 0x23
+       IP_ADD_MEMBERSHIP                = 0x23
+       IP_ADD_SOURCE_MEMBERSHIP         = 0x27
+       IP_BIND_ADDRESS_NO_PORT          = 0x18
+       IP_BLOCK_SOURCE                  = 0x26
+       IP_CHECKSUM                      = 0x17
+       IP_DEFAULT_MULTICAST_LOOP        = 0x1
+       IP_DEFAULT_MULTICAST_TTL         = 0x1
+       IP_DF                            = 0x4000
+       IP_DROP_MEMBERSHIP               = 0x24
+       IP_DROP_SOURCE_MEMBERSHIP        = 0x28
+       IP_FREEBIND                      = 0xf
+       IP_HDRINCL                       = 0x3
+       IP_IPSEC_POLICY                  = 0x10
+       IP_MAXPACKET                     = 0xffff
+       IP_MAX_MEMBERSHIPS               = 0x14
+       IP_MF                            = 0x2000
+       IP_MINTTL                        = 0x15
+       IP_MSFILTER                      = 0x29
+       IP_MSS                           = 0x240
+       IP_MTU                           = 0xe
+       IP_MTU_DISCOVER                  = 0xa
+       IP_MULTICAST_ALL                 = 0x31
+       IP_MULTICAST_IF                  = 0x20
+       IP_MULTICAST_LOOP                = 0x22
+       IP_MULTICAST_TTL                 = 0x21
+       IP_NODEFRAG                      = 0x16
+       IP_OFFMASK                       = 0x1fff
+       IP_OPTIONS                       = 0x4
+       IP_ORIGDSTADDR                   = 0x14
+       IP_PASSSEC                       = 0x12
+       IP_PKTINFO                       = 0x8
+       IP_PKTOPTIONS                    = 0x9
+       IP_PMTUDISC                      = 0xa
+       IP_PMTUDISC_DO                   = 0x2
+       IP_PMTUDISC_DONT                 = 0x0
+       IP_PMTUDISC_INTERFACE            = 0x4
+       IP_PMTUDISC_OMIT                 = 0x5
+       IP_PMTUDISC_PROBE                = 0x3
+       IP_PMTUDISC_WANT                 = 0x1
+       IP_RECVERR                       = 0xb
+       IP_RECVOPTS                      = 0x6
+       IP_RECVORIGDSTADDR               = 0x14
+       IP_RECVRETOPTS                   = 0x7
+       IP_RECVTOS                       = 0xd
+       IP_RECVTTL                       = 0xc
+       IP_RETOPTS                       = 0x7
+       IP_RF                            = 0x8000
+       IP_ROUTER_ALERT                  = 0x5
+       IP_TOS                           = 0x1
+       IP_TRANSPARENT                   = 0x13
+       IP_TTL                           = 0x2
+       IP_UNBLOCK_SOURCE                = 0x25
+       IP_UNICAST_IF                    = 0x32
+       IP_XFRM_POLICY                   = 0x11
+       ISIG                             = 0x1
+       ISTRIP                           = 0x20
+       IUCLC                            = 0x200
+       IUTF8                            = 0x4000
+       IXANY                            = 0x800
+       IXOFF                            = 0x1000
+       IXON                             = 0x400
+       LINUX_REBOOT_CMD_CAD_OFF         = 0x0
+       LINUX_REBOOT_CMD_CAD_ON          = 0x89abcdef
+       LINUX_REBOOT_CMD_HALT            = 0xcdef0123
+       LINUX_REBOOT_CMD_KEXEC           = 0x45584543
+       LINUX_REBOOT_CMD_POWER_OFF       = 0x4321fedc
+       LINUX_REBOOT_CMD_RESTART         = 0x1234567
+       LINUX_REBOOT_CMD_RESTART2        = 0xa1b2c3d4
+       LINUX_REBOOT_CMD_SW_SUSPEND      = 0xd000fce2
+       LINUX_REBOOT_MAGIC1              = 0xfee1dead
+       LINUX_REBOOT_MAGIC2              = 0x28121969
+       LOCK_EX                          = 0x2
+       LOCK_NB                          = 0x4
+       LOCK_SH                          = 0x1
+       LOCK_UN                          = 0x8
+       MADV_DODUMP                      = 0x11
+       MADV_DOFORK                      = 0xb
+       MADV_DONTDUMP                    = 0x10
+       MADV_DONTFORK                    = 0xa
+       MADV_DONTNEED                    = 0x4
+       MADV_FREE                        = 0x8
+       MADV_HUGEPAGE                    = 0xe
+       MADV_HWPOISON                    = 0x64
+       MADV_MERGEABLE                   = 0xc
+       MADV_NOHUGEPAGE                  = 0xf
+       MADV_NORMAL                      = 0x0
+       MADV_RANDOM                      = 0x1
+       MADV_REMOVE                      = 0x9
+       MADV_SEQUENTIAL                  = 0x2
+       MADV_UNMERGEABLE                 = 0xd
+       MADV_WILLNEED                    = 0x3
+       MAP_ANON                         = 0x20
+       MAP_ANONYMOUS                    = 0x20
+       MAP_DENYWRITE                    = 0x800
+       MAP_EXECUTABLE                   = 0x1000
+       MAP_FILE                         = 0x0
+       MAP_FIXED                        = 0x10
+       MAP_GROWSDOWN                    = 0x200
+       MAP_HUGETLB                      = 0x40000
+       MAP_HUGE_MASK                    = 0x3f
+       MAP_HUGE_SHIFT                   = 0x1a
+       MAP_LOCKED                       = 0x100
+       MAP_NONBLOCK                     = 0x10000
+       MAP_NORESERVE                    = 0x40
+       MAP_POPULATE                     = 0x8000
+       MAP_PRIVATE                      = 0x2
+       MAP_RENAME                       = 0x20
+       MAP_SHARED                       = 0x1
+       MAP_STACK                        = 0x20000
+       MAP_TYPE                         = 0xf
+       MCL_CURRENT                      = 0x2000
+       MCL_FUTURE                       = 0x4000
+       MCL_ONFAULT                      = 0x8000
+       MNT_DETACH                       = 0x2
+       MNT_EXPIRE                       = 0x4
+       MNT_FORCE                        = 0x1
+       MSG_BATCH                        = 0x40000
+       MSG_CMSG_CLOEXEC                 = 0x40000000
+       MSG_CONFIRM                      = 0x800
+       MSG_CTRUNC                       = 0x8
+       MSG_DONTROUTE                    = 0x4
+       MSG_DONTWAIT                     = 0x40
+       MSG_EOR                          = 0x80
+       MSG_ERRQUEUE                     = 0x2000
+       MSG_FASTOPEN                     = 0x20000000
+       MSG_FIN                          = 0x200
+       MSG_MORE                         = 0x8000
+       MSG_NOSIGNAL                     = 0x4000
+       MSG_OOB                          = 0x1
+       MSG_PEEK                         = 0x2
+       MSG_PROXY                        = 0x10
+       MSG_RST                          = 0x1000
+       MSG_SYN                          = 0x400
+       MSG_TRUNC                        = 0x20
+       MSG_TRYHARD                      = 0x4
+       MSG_WAITALL                      = 0x100
+       MSG_WAITFORONE                   = 0x10000
+       MS_ACTIVE                        = 0x40000000
+       MS_ASYNC                         = 0x1
+       MS_BIND                          = 0x1000
+       MS_DIRSYNC                       = 0x80
+       MS_INVALIDATE                    = 0x2
+       MS_I_VERSION                     = 0x800000
+       MS_KERNMOUNT                     = 0x400000
+       MS_LAZYTIME                      = 0x2000000
+       MS_MANDLOCK                      = 0x40
+       MS_MGC_MSK                       = 0xffff0000
+       MS_MGC_VAL                       = 0xc0ed0000
+       MS_MOVE                          = 0x2000
+       MS_NOATIME                       = 0x400
+       MS_NODEV                         = 0x4
+       MS_NODIRATIME                    = 0x800
+       MS_NOEXEC                        = 0x8
+       MS_NOSUID                        = 0x2
+       MS_NOUSER                        = -0x80000000
+       MS_POSIXACL                      = 0x10000
+       MS_PRIVATE                       = 0x40000
+       MS_RDONLY                        = 0x1
+       MS_REC                           = 0x4000
+       MS_RELATIME                      = 0x200000
+       MS_REMOUNT                       = 0x20
+       MS_RMT_MASK                      = 0x2800051
+       MS_SHARED                        = 0x100000
+       MS_SILENT                        = 0x8000
+       MS_SLAVE                         = 0x80000
+       MS_STRICTATIME                   = 0x1000000
+       MS_SYNC                          = 0x4
+       MS_SYNCHRONOUS                   = 0x10
+       MS_UNBINDABLE                    = 0x20000
+       NAME_MAX                         = 0xff
+       NETLINK_ADD_MEMBERSHIP           = 0x1
+       NETLINK_AUDIT                    = 0x9
+       NETLINK_BROADCAST_ERROR          = 0x4
+       NETLINK_CAP_ACK                  = 0xa
+       NETLINK_CONNECTOR                = 0xb
+       NETLINK_CRYPTO                   = 0x15
+       NETLINK_DNRTMSG                  = 0xe
+       NETLINK_DROP_MEMBERSHIP          = 0x2
+       NETLINK_ECRYPTFS                 = 0x13
+       NETLINK_FIB_LOOKUP               = 0xa
+       NETLINK_FIREWALL                 = 0x3
+       NETLINK_GENERIC                  = 0x10
+       NETLINK_INET_DIAG                = 0x4
+       NETLINK_IP6_FW                   = 0xd
+       NETLINK_ISCSI                    = 0x8
+       NETLINK_KOBJECT_UEVENT           = 0xf
+       NETLINK_LISTEN_ALL_NSID          = 0x8
+       NETLINK_LIST_MEMBERSHIPS         = 0x9
+       NETLINK_NETFILTER                = 0xc
+       NETLINK_NFLOG                    = 0x5
+       NETLINK_NO_ENOBUFS               = 0x5
+       NETLINK_PKTINFO                  = 0x3
+       NETLINK_RDMA                     = 0x14
+       NETLINK_ROUTE                    = 0x0
+       NETLINK_RX_RING                  = 0x6
+       NETLINK_SCSITRANSPORT            = 0x12
+       NETLINK_SELINUX                  = 0x7
+       NETLINK_SOCK_DIAG                = 0x4
+       NETLINK_TX_RING                  = 0x7
+       NETLINK_UNUSED                   = 0x1
+       NETLINK_USERSOCK                 = 0x2
+       NETLINK_XFRM                     = 0x6
+       NL0                              = 0x0
+       NL1                              = 0x100
+       NLA_ALIGNTO                      = 0x4
+       NLA_F_NESTED                     = 0x8000
+       NLA_F_NET_BYTEORDER              = 0x4000
+       NLA_HDRLEN                       = 0x4
+       NLDLY                            = 0x100
+       NLMSG_ALIGNTO                    = 0x4
+       NLMSG_DONE                       = 0x3
+       NLMSG_ERROR                      = 0x2
+       NLMSG_HDRLEN                     = 0x10
+       NLMSG_MIN_TYPE                   = 0x10
+       NLMSG_NOOP                       = 0x1
+       NLMSG_OVERRUN                    = 0x4
+       NLM_F_ACK                        = 0x4
+       NLM_F_APPEND                     = 0x800
+       NLM_F_ATOMIC                     = 0x400
+       NLM_F_CREATE                     = 0x400
+       NLM_F_DUMP                       = 0x300
+       NLM_F_DUMP_FILTERED              = 0x20
+       NLM_F_DUMP_INTR                  = 0x10
+       NLM_F_ECHO                       = 0x8
+       NLM_F_EXCL                       = 0x200
+       NLM_F_MATCH                      = 0x200
+       NLM_F_MULTI                      = 0x2
+       NLM_F_REPLACE                    = 0x100
+       NLM_F_REQUEST                    = 0x1
+       NLM_F_ROOT                       = 0x100
+       NOFLSH                           = 0x80
+       OCRNL                            = 0x8
+       OFDEL                            = 0x80
+       OFILL                            = 0x40
+       OLCUC                            = 0x2
+       ONLCR                            = 0x4
+       ONLRET                           = 0x20
+       ONOCR                            = 0x10
+       OPOST                            = 0x1
+       O_ACCMODE                        = 0x3
+       O_APPEND                         = 0x8
+       O_ASYNC                          = 0x40
+       O_CLOEXEC                        = 0x400000
+       O_CREAT                          = 0x200
+       O_DIRECT                         = 0x100000
+       O_DIRECTORY                      = 0x10000
+       O_DSYNC                          = 0x2000
+       O_EXCL                           = 0x800
+       O_FSYNC                          = 0x802000
+       O_LARGEFILE                      = 0x0
+       O_NDELAY                         = 0x4004
+       O_NOATIME                        = 0x200000
+       O_NOCTTY                         = 0x8000
+       O_NOFOLLOW                       = 0x20000
+       O_NONBLOCK                       = 0x4000
+       O_PATH                           = 0x1000000
+       O_RDONLY                         = 0x0
+       O_RDWR                           = 0x2
+       O_RSYNC                          = 0x802000
+       O_SYNC                           = 0x802000
+       O_TMPFILE                        = 0x2010000
+       O_TRUNC                          = 0x400
+       O_WRONLY                         = 0x1
+       PACKET_ADD_MEMBERSHIP            = 0x1
+       PACKET_AUXDATA                   = 0x8
+       PACKET_BROADCAST                 = 0x1
+       PACKET_COPY_THRESH               = 0x7
+       PACKET_DROP_MEMBERSHIP           = 0x2
+       PACKET_FANOUT                    = 0x12
+       PACKET_FANOUT_CBPF               = 0x6
+       PACKET_FANOUT_CPU                = 0x2
+       PACKET_FANOUT_DATA               = 0x16
+       PACKET_FANOUT_EBPF               = 0x7
+       PACKET_FANOUT_FLAG_DEFRAG        = 0x8000
+       PACKET_FANOUT_FLAG_ROLLOVER      = 0x1000
+       PACKET_FANOUT_HASH               = 0x0
+       PACKET_FANOUT_LB                 = 0x1
+       PACKET_FANOUT_QM                 = 0x5
+       PACKET_FANOUT_RND                = 0x4
+       PACKET_FANOUT_ROLLOVER           = 0x3
+       PACKET_FASTROUTE                 = 0x6
+       PACKET_HDRLEN                    = 0xb
+       PACKET_HOST                      = 0x0
+       PACKET_KERNEL                    = 0x7
+       PACKET_LOOPBACK                  = 0x5
+       PACKET_LOSS                      = 0xe
+       PACKET_MR_ALLMULTI               = 0x2
+       PACKET_MR_MULTICAST              = 0x0
+       PACKET_MR_PROMISC                = 0x1
+       PACKET_MR_UNICAST                = 0x3
+       PACKET_MULTICAST                 = 0x2
+       PACKET_ORIGDEV                   = 0x9
+       PACKET_OTHERHOST                 = 0x3
+       PACKET_OUTGOING                  = 0x4
+       PACKET_QDISC_BYPASS              = 0x14
+       PACKET_RECV_OUTPUT               = 0x3
+       PACKET_RESERVE                   = 0xc
+       PACKET_ROLLOVER_STATS            = 0x15
+       PACKET_RX_RING                   = 0x5
+       PACKET_STATISTICS                = 0x6
+       PACKET_TIMESTAMP                 = 0x11
+       PACKET_TX_HAS_OFF                = 0x13
+       PACKET_TX_RING                   = 0xd
+       PACKET_TX_TIMESTAMP              = 0x10
+       PACKET_USER                      = 0x6
+       PACKET_VERSION                   = 0xa
+       PACKET_VNET_HDR                  = 0xf
+       PARENB                           = 0x100
+       PARITY_CRC16_PR0                 = 0x2
+       PARITY_CRC16_PR0_CCITT           = 0x4
+       PARITY_CRC16_PR1                 = 0x3
+       PARITY_CRC16_PR1_CCITT           = 0x5
+       PARITY_CRC32_PR0_CCITT           = 0x6
+       PARITY_CRC32_PR1_CCITT           = 0x7
+       PARITY_DEFAULT                   = 0x0
+       PARITY_NONE                      = 0x1
+       PARMRK                           = 0x8
+       PARODD                           = 0x200
+       PENDIN                           = 0x4000
+       PRIO_PGRP                        = 0x1
+       PRIO_PROCESS                     = 0x0
+       PRIO_USER                        = 0x2
+       PROT_EXEC                        = 0x4
+       PROT_GROWSDOWN                   = 0x1000000
+       PROT_GROWSUP                     = 0x2000000
+       PROT_NONE                        = 0x0
+       PROT_READ                        = 0x1
+       PROT_WRITE                       = 0x2
+       PR_CAPBSET_DROP                  = 0x18
+       PR_CAPBSET_READ                  = 0x17
+       PR_CAP_AMBIENT                   = 0x2f
+       PR_CAP_AMBIENT_CLEAR_ALL         = 0x4
+       PR_CAP_AMBIENT_IS_SET            = 0x1
+       PR_CAP_AMBIENT_LOWER             = 0x3
+       PR_CAP_AMBIENT_RAISE             = 0x2
+       PR_ENDIAN_BIG                    = 0x0
+       PR_ENDIAN_LITTLE                 = 0x1
+       PR_ENDIAN_PPC_LITTLE             = 0x2
+       PR_FPEMU_NOPRINT                 = 0x1
+       PR_FPEMU_SIGFPE                  = 0x2
+       PR_FP_EXC_ASYNC                  = 0x2
+       PR_FP_EXC_DISABLED               = 0x0
+       PR_FP_EXC_DIV                    = 0x10000
+       PR_FP_EXC_INV                    = 0x100000
+       PR_FP_EXC_NONRECOV               = 0x1
+       PR_FP_EXC_OVF                    = 0x20000
+       PR_FP_EXC_PRECISE                = 0x3
+       PR_FP_EXC_RES                    = 0x80000
+       PR_FP_EXC_SW_ENABLE              = 0x80
+       PR_FP_EXC_UND                    = 0x40000
+       PR_FP_MODE_FR                    = 0x1
+       PR_FP_MODE_FRE                   = 0x2
+       PR_GET_CHILD_SUBREAPER           = 0x25
+       PR_GET_DUMPABLE                  = 0x3
+       PR_GET_ENDIAN                    = 0x13
+       PR_GET_FPEMU                     = 0x9
+       PR_GET_FPEXC                     = 0xb
+       PR_GET_FP_MODE                   = 0x2e
+       PR_GET_KEEPCAPS                  = 0x7
+       PR_GET_NAME                      = 0x10
+       PR_GET_NO_NEW_PRIVS              = 0x27
+       PR_GET_PDEATHSIG                 = 0x2
+       PR_GET_SECCOMP                   = 0x15
+       PR_GET_SECUREBITS                = 0x1b
+       PR_GET_THP_DISABLE               = 0x2a
+       PR_GET_TID_ADDRESS               = 0x28
+       PR_GET_TIMERSLACK                = 0x1e
+       PR_GET_TIMING                    = 0xd
+       PR_GET_TSC                       = 0x19
+       PR_GET_UNALIGN                   = 0x5
+       PR_MCE_KILL                      = 0x21
+       PR_MCE_KILL_CLEAR                = 0x0
+       PR_MCE_KILL_DEFAULT              = 0x2
+       PR_MCE_KILL_EARLY                = 0x1
+       PR_MCE_KILL_GET                  = 0x22
+       PR_MCE_KILL_LATE                 = 0x0
+       PR_MCE_KILL_SET                  = 0x1
+       PR_MPX_DISABLE_MANAGEMENT        = 0x2c
+       PR_MPX_ENABLE_MANAGEMENT         = 0x2b
+       PR_SET_CHILD_SUBREAPER           = 0x24
+       PR_SET_DUMPABLE                  = 0x4
+       PR_SET_ENDIAN                    = 0x14
+       PR_SET_FPEMU                     = 0xa
+       PR_SET_FPEXC                     = 0xc
+       PR_SET_FP_MODE                   = 0x2d
+       PR_SET_KEEPCAPS                  = 0x8
+       PR_SET_MM                        = 0x23
+       PR_SET_MM_ARG_END                = 0x9
+       PR_SET_MM_ARG_START              = 0x8
+       PR_SET_MM_AUXV                   = 0xc
+       PR_SET_MM_BRK                    = 0x7
+       PR_SET_MM_END_CODE               = 0x2
+       PR_SET_MM_END_DATA               = 0x4
+       PR_SET_MM_ENV_END                = 0xb
+       PR_SET_MM_ENV_START              = 0xa
+       PR_SET_MM_EXE_FILE               = 0xd
+       PR_SET_MM_MAP                    = 0xe
+       PR_SET_MM_MAP_SIZE               = 0xf
+       PR_SET_MM_START_BRK              = 0x6
+       PR_SET_MM_START_CODE             = 0x1
+       PR_SET_MM_START_DATA             = 0x3
+       PR_SET_MM_START_STACK            = 0x5
+       PR_SET_NAME                      = 0xf
+       PR_SET_NO_NEW_PRIVS              = 0x26
+       PR_SET_PDEATHSIG                 = 0x1
+       PR_SET_PTRACER                   = 0x59616d61
+       PR_SET_PTRACER_ANY               = -0x1
+       PR_SET_SECCOMP                   = 0x16
+       PR_SET_SECUREBITS                = 0x1c
+       PR_SET_THP_DISABLE               = 0x29
+       PR_SET_TIMERSLACK                = 0x1d
+       PR_SET_TIMING                    = 0xe
+       PR_SET_TSC                       = 0x1a
+       PR_SET_UNALIGN                   = 0x6
+       PR_TASK_PERF_EVENTS_DISABLE      = 0x1f
+       PR_TASK_PERF_EVENTS_ENABLE       = 0x20
+       PR_TIMING_STATISTICAL            = 0x0
+       PR_TIMING_TIMESTAMP              = 0x1
+       PR_TSC_ENABLE                    = 0x1
+       PR_TSC_SIGSEGV                   = 0x2
+       PR_UNALIGN_NOPRINT               = 0x1
+       PR_UNALIGN_SIGBUS                = 0x2
+       PTRACE_ATTACH                    = 0x10
+       PTRACE_CONT                      = 0x7
+       PTRACE_DETACH                    = 0x11
+       PTRACE_EVENT_CLONE               = 0x3
+       PTRACE_EVENT_EXEC                = 0x4
+       PTRACE_EVENT_EXIT                = 0x6
+       PTRACE_EVENT_FORK                = 0x1
+       PTRACE_EVENT_SECCOMP             = 0x7
+       PTRACE_EVENT_STOP                = 0x80
+       PTRACE_EVENT_VFORK               = 0x2
+       PTRACE_EVENT_VFORK_DONE          = 0x5
+       PTRACE_GETEVENTMSG               = 0x4201
+       PTRACE_GETFPAREGS                = 0x14
+       PTRACE_GETFPREGS                 = 0xe
+       PTRACE_GETFPREGS64               = 0x19
+       PTRACE_GETREGS                   = 0xc
+       PTRACE_GETREGS64                 = 0x16
+       PTRACE_GETREGSET                 = 0x4204
+       PTRACE_GETSIGINFO                = 0x4202
+       PTRACE_GETSIGMASK                = 0x420a
+       PTRACE_INTERRUPT                 = 0x4207
+       PTRACE_KILL                      = 0x8
+       PTRACE_LISTEN                    = 0x4208
+       PTRACE_O_EXITKILL                = 0x100000
+       PTRACE_O_MASK                    = 0x3000ff
+       PTRACE_O_SUSPEND_SECCOMP         = 0x200000
+       PTRACE_O_TRACECLONE              = 0x8
+       PTRACE_O_TRACEEXEC               = 0x10
+       PTRACE_O_TRACEEXIT               = 0x40
+       PTRACE_O_TRACEFORK               = 0x2
+       PTRACE_O_TRACESECCOMP            = 0x80
+       PTRACE_O_TRACESYSGOOD            = 0x1
+       PTRACE_O_TRACEVFORK              = 0x4
+       PTRACE_O_TRACEVFORKDONE          = 0x20
+       PTRACE_PEEKDATA                  = 0x2
+       PTRACE_PEEKSIGINFO               = 0x4209
+       PTRACE_PEEKSIGINFO_SHARED        = 0x1
+       PTRACE_PEEKTEXT                  = 0x1
+       PTRACE_PEEKUSR                   = 0x3
+       PTRACE_POKEDATA                  = 0x5
+       PTRACE_POKETEXT                  = 0x4
+       PTRACE_POKEUSR                   = 0x6
+       PTRACE_READDATA                  = 0x10
+       PTRACE_READTEXT                  = 0x12
+       PTRACE_SECCOMP_GET_FILTER        = 0x420c
+       PTRACE_SEIZE                     = 0x4206
+       PTRACE_SETFPAREGS                = 0x15
+       PTRACE_SETFPREGS                 = 0xf
+       PTRACE_SETFPREGS64               = 0x1a
+       PTRACE_SETOPTIONS                = 0x4200
+       PTRACE_SETREGS                   = 0xd
+       PTRACE_SETREGS64                 = 0x17
+       PTRACE_SETREGSET                 = 0x4205
+       PTRACE_SETSIGINFO                = 0x4203
+       PTRACE_SETSIGMASK                = 0x420b
+       PTRACE_SINGLESTEP                = 0x9
+       PTRACE_SPARC_DETACH              = 0xb
+       PTRACE_SYSCALL                   = 0x18
+       PTRACE_TRACEME                   = 0x0
+       PTRACE_WRITEDATA                 = 0x11
+       PTRACE_WRITETEXT                 = 0x13
+       PT_FP                            = 0x48
+       PT_G0                            = 0x10
+       PT_G1                            = 0x14
+       PT_G2                            = 0x18
+       PT_G3                            = 0x1c
+       PT_G4                            = 0x20
+       PT_G5                            = 0x24
+       PT_G6                            = 0x28
+       PT_G7                            = 0x2c
+       PT_I0                            = 0x30
+       PT_I1                            = 0x34
+       PT_I2                            = 0x38
+       PT_I3                            = 0x3c
+       PT_I4                            = 0x40
+       PT_I5                            = 0x44
+       PT_I6                            = 0x48
+       PT_I7                            = 0x4c
+       PT_NPC                           = 0x8
+       PT_PC                            = 0x4
+       PT_PSR                           = 0x0
+       PT_REGS_MAGIC                    = 0x57ac6c00
+       PT_TNPC                          = 0x90
+       PT_TPC                           = 0x88
+       PT_TSTATE                        = 0x80
+       PT_V9_FP                         = 0x70
+       PT_V9_G0                         = 0x0
+       PT_V9_G1                         = 0x8
+       PT_V9_G2                         = 0x10
+       PT_V9_G3                         = 0x18
+       PT_V9_G4                         = 0x20
+       PT_V9_G5                         = 0x28
+       PT_V9_G6                         = 0x30
+       PT_V9_G7                         = 0x38
+       PT_V9_I0                         = 0x40
+       PT_V9_I1                         = 0x48
+       PT_V9_I2                         = 0x50
+       PT_V9_I3                         = 0x58
+       PT_V9_I4                         = 0x60
+       PT_V9_I5                         = 0x68
+       PT_V9_I6                         = 0x70
+       PT_V9_I7                         = 0x78
+       PT_V9_MAGIC                      = 0x9c
+       PT_V9_TNPC                       = 0x90
+       PT_V9_TPC                        = 0x88
+       PT_V9_TSTATE                     = 0x80
+       PT_V9_Y                          = 0x98
+       PT_WIM                           = 0x10
+       PT_Y                             = 0xc
+       RLIMIT_AS                        = 0x9
+       RLIMIT_CORE                      = 0x4
+       RLIMIT_CPU                       = 0x0
+       RLIMIT_DATA                      = 0x2
+       RLIMIT_FSIZE                     = 0x1
+       RLIMIT_NOFILE                    = 0x6
+       RLIMIT_STACK                     = 0x3
+       RLIM_INFINITY                    = -0x1
+       RTAX_ADVMSS                      = 0x8
+       RTAX_CC_ALGO                     = 0x10
+       RTAX_CWND                        = 0x7
+       RTAX_FEATURES                    = 0xc
+       RTAX_FEATURE_ALLFRAG             = 0x8
+       RTAX_FEATURE_ECN                 = 0x1
+       RTAX_FEATURE_MASK                = 0xf
+       RTAX_FEATURE_SACK                = 0x2
+       RTAX_FEATURE_TIMESTAMP           = 0x4
+       RTAX_HOPLIMIT                    = 0xa
+       RTAX_INITCWND                    = 0xb
+       RTAX_INITRWND                    = 0xe
+       RTAX_LOCK                        = 0x1
+       RTAX_MAX                         = 0x10
+       RTAX_MTU                         = 0x2
+       RTAX_QUICKACK                    = 0xf
+       RTAX_REORDERING                  = 0x9
+       RTAX_RTO_MIN                     = 0xd
+       RTAX_RTT                         = 0x4
+       RTAX_RTTVAR                      = 0x5
+       RTAX_SSTHRESH                    = 0x6
+       RTAX_UNSPEC                      = 0x0
+       RTAX_WINDOW                      = 0x3
+       RTA_ALIGNTO                      = 0x4
+       RTA_MAX                          = 0x18
+       RTCF_DIRECTSRC                   = 0x4000000
+       RTCF_DOREDIRECT                  = 0x1000000
+       RTCF_LOG                         = 0x2000000
+       RTCF_MASQ                        = 0x400000
+       RTCF_NAT                         = 0x800000
+       RTCF_VALVE                       = 0x200000
+       RTF_ADDRCLASSMASK                = 0xf8000000
+       RTF_ADDRCONF                     = 0x40000
+       RTF_ALLONLINK                    = 0x20000
+       RTF_BROADCAST                    = 0x10000000
+       RTF_CACHE                        = 0x1000000
+       RTF_DEFAULT                      = 0x10000
+       RTF_DYNAMIC                      = 0x10
+       RTF_FLOW                         = 0x2000000
+       RTF_GATEWAY                      = 0x2
+       RTF_HOST                         = 0x4
+       RTF_INTERFACE                    = 0x40000000
+       RTF_IRTT                         = 0x100
+       RTF_LINKRT                       = 0x100000
+       RTF_LOCAL                        = 0x80000000
+       RTF_MODIFIED                     = 0x20
+       RTF_MSS                          = 0x40
+       RTF_MTU                          = 0x40
+       RTF_MULTICAST                    = 0x20000000
+       RTF_NAT                          = 0x8000000
+       RTF_NOFORWARD                    = 0x1000
+       RTF_NONEXTHOP                    = 0x200000
+       RTF_NOPMTUDISC                   = 0x4000
+       RTF_POLICY                       = 0x4000000
+       RTF_REINSTATE                    = 0x8
+       RTF_REJECT                       = 0x200
+       RTF_STATIC                       = 0x400
+       RTF_THROW                        = 0x2000
+       RTF_UP                           = 0x1
+       RTF_WINDOW                       = 0x80
+       RTF_XRESOLVE                     = 0x800
+       RTM_BASE                         = 0x10
+       RTM_DELACTION                    = 0x31
+       RTM_DELADDR                      = 0x15
+       RTM_DELADDRLABEL                 = 0x49
+       RTM_DELLINK                      = 0x11
+       RTM_DELMDB                       = 0x55
+       RTM_DELNEIGH                     = 0x1d
+       RTM_DELNSID                      = 0x59
+       RTM_DELQDISC                     = 0x25
+       RTM_DELROUTE                     = 0x19
+       RTM_DELRULE                      = 0x21
+       RTM_DELTCLASS                    = 0x29
+       RTM_DELTFILTER                   = 0x2d
+       RTM_F_CLONED                     = 0x200
+       RTM_F_EQUALIZE                   = 0x400
+       RTM_F_LOOKUP_TABLE               = 0x1000
+       RTM_F_NOTIFY                     = 0x100
+       RTM_F_PREFIX                     = 0x800
+       RTM_GETACTION                    = 0x32
+       RTM_GETADDR                      = 0x16
+       RTM_GETADDRLABEL                 = 0x4a
+       RTM_GETANYCAST                   = 0x3e
+       RTM_GETDCB                       = 0x4e
+       RTM_GETLINK                      = 0x12
+       RTM_GETMDB                       = 0x56
+       RTM_GETMULTICAST                 = 0x3a
+       RTM_GETNEIGH                     = 0x1e
+       RTM_GETNEIGHTBL                  = 0x42
+       RTM_GETNETCONF                   = 0x52
+       RTM_GETNSID                      = 0x5a
+       RTM_GETQDISC                     = 0x26
+       RTM_GETROUTE                     = 0x1a
+       RTM_GETRULE                      = 0x22
+       RTM_GETSTATS                     = 0x5e
+       RTM_GETTCLASS                    = 0x2a
+       RTM_GETTFILTER                   = 0x2e
+       RTM_MAX                          = 0x5f
+       RTM_NEWACTION                    = 0x30
+       RTM_NEWADDR                      = 0x14
+       RTM_NEWADDRLABEL                 = 0x48
+       RTM_NEWLINK                      = 0x10
+       RTM_NEWMDB                       = 0x54
+       RTM_NEWNDUSEROPT                 = 0x44
+       RTM_NEWNEIGH                     = 0x1c
+       RTM_NEWNEIGHTBL                  = 0x40
+       RTM_NEWNETCONF                   = 0x50
+       RTM_NEWNSID                      = 0x58
+       RTM_NEWPREFIX                    = 0x34
+       RTM_NEWQDISC                     = 0x24
+       RTM_NEWROUTE                     = 0x18
+       RTM_NEWRULE                      = 0x20
+       RTM_NEWSTATS                     = 0x5c
+       RTM_NEWTCLASS                    = 0x28
+       RTM_NEWTFILTER                   = 0x2c
+       RTM_NR_FAMILIES                  = 0x14
+       RTM_NR_MSGTYPES                  = 0x50
+       RTM_SETDCB                       = 0x4f
+       RTM_SETLINK                      = 0x13
+       RTM_SETNEIGHTBL                  = 0x43
+       RTNH_ALIGNTO                     = 0x4
+       RTNH_COMPARE_MASK                = 0x11
+       RTNH_F_DEAD                      = 0x1
+       RTNH_F_LINKDOWN                  = 0x10
+       RTNH_F_OFFLOAD                   = 0x8
+       RTNH_F_ONLINK                    = 0x4
+       RTNH_F_PERVASIVE                 = 0x2
+       RTN_MAX                          = 0xb
+       RTPROT_BABEL                     = 0x2a
+       RTPROT_BIRD                      = 0xc
+       RTPROT_BOOT                      = 0x3
+       RTPROT_DHCP                      = 0x10
+       RTPROT_DNROUTED                  = 0xd
+       RTPROT_GATED                     = 0x8
+       RTPROT_KERNEL                    = 0x2
+       RTPROT_MROUTED                   = 0x11
+       RTPROT_MRT                       = 0xa
+       RTPROT_NTK                       = 0xf
+       RTPROT_RA                        = 0x9
+       RTPROT_REDIRECT                  = 0x1
+       RTPROT_STATIC                    = 0x4
+       RTPROT_UNSPEC                    = 0x0
+       RTPROT_XORP                      = 0xe
+       RTPROT_ZEBRA                     = 0xb
+       RT_CLASS_DEFAULT                 = 0xfd
+       RT_CLASS_LOCAL                   = 0xff
+       RT_CLASS_MAIN                    = 0xfe
+       RT_CLASS_MAX                     = 0xff
+       RT_CLASS_UNSPEC                  = 0x0
+       RUSAGE_CHILDREN                  = -0x1
+       RUSAGE_SELF                      = 0x0
+       RUSAGE_THREAD                    = 0x1
+       SCM_CREDENTIALS                  = 0x2
+       SCM_RIGHTS                       = 0x1
+       SCM_TIMESTAMP                    = 0x1d
+       SCM_TIMESTAMPING                 = 0x23
+       SCM_TIMESTAMPNS                  = 0x21
+       SCM_WIFI_STATUS                  = 0x25
+       SHUT_RD                          = 0x0
+       SHUT_RDWR                        = 0x2
+       SHUT_WR                          = 0x1
+       SIOCADDDLCI                      = 0x8980
+       SIOCADDMULTI                     = 0x8931
+       SIOCADDRT                        = 0x890b
+       SIOCATMARK                       = 0x8905
+       SIOCBONDCHANGEACTIVE             = 0x8995
+       SIOCBONDENSLAVE                  = 0x8990
+       SIOCBONDINFOQUERY                = 0x8994
+       SIOCBONDRELEASE                  = 0x8991
+       SIOCBONDSETHWADDR                = 0x8992
+       SIOCBONDSLAVEINFOQUERY           = 0x8993
+       SIOCBRADDBR                      = 0x89a0
+       SIOCBRADDIF                      = 0x89a2
+       SIOCBRDELBR                      = 0x89a1
+       SIOCBRDELIF                      = 0x89a3
+       SIOCDARP                         = 0x8953
+       SIOCDELDLCI                      = 0x8981
+       SIOCDELMULTI                     = 0x8932
+       SIOCDELRT                        = 0x890c
+       SIOCDEVPRIVATE                   = 0x89f0
+       SIOCDIFADDR                      = 0x8936
+       SIOCDRARP                        = 0x8960
+       SIOCETHTOOL                      = 0x8946
+       SIOCGARP                         = 0x8954
+       SIOCGHWTSTAMP                    = 0x89b1
+       SIOCGIFADDR                      = 0x8915
+       SIOCGIFBR                        = 0x8940
+       SIOCGIFBRDADDR                   = 0x8919
+       SIOCGIFCONF                      = 0x8912
+       SIOCGIFCOUNT                     = 0x8938
+       SIOCGIFDSTADDR                   = 0x8917
+       SIOCGIFENCAP                     = 0x8925
+       SIOCGIFFLAGS                     = 0x8913
+       SIOCGIFHWADDR                    = 0x8927
+       SIOCGIFINDEX                     = 0x8933
+       SIOCGIFMAP                       = 0x8970
+       SIOCGIFMEM                       = 0x891f
+       SIOCGIFMETRIC                    = 0x891d
+       SIOCGIFMTU                       = 0x8921
+       SIOCGIFNAME                      = 0x8910
+       SIOCGIFNETMASK                   = 0x891b
+       SIOCGIFPFLAGS                    = 0x8935
+       SIOCGIFSLAVE                     = 0x8929
+       SIOCGIFTXQLEN                    = 0x8942
+       SIOCGIFVLAN                      = 0x8982
+       SIOCGMIIPHY                      = 0x8947
+       SIOCGMIIREG                      = 0x8948
+       SIOCGPGRP                        = 0x8904
+       SIOCGRARP                        = 0x8961
+       SIOCGSTAMP                       = 0x8906
+       SIOCGSTAMPNS                     = 0x8907
+       SIOCINQ                          = 0x4004667f
+       SIOCOUTQ                         = 0x40047473
+       SIOCOUTQNSD                      = 0x894b
+       SIOCPROTOPRIVATE                 = 0x89e0
+       SIOCRTMSG                        = 0x890d
+       SIOCSARP                         = 0x8955
+       SIOCSHWTSTAMP                    = 0x89b0
+       SIOCSIFADDR                      = 0x8916
+       SIOCSIFBR                        = 0x8941
+       SIOCSIFBRDADDR                   = 0x891a
+       SIOCSIFDSTADDR                   = 0x8918
+       SIOCSIFENCAP                     = 0x8926
+       SIOCSIFFLAGS                     = 0x8914
+       SIOCSIFHWADDR                    = 0x8924
+       SIOCSIFHWBROADCAST               = 0x8937
+       SIOCSIFLINK                      = 0x8911
+       SIOCSIFMAP                       = 0x8971
+       SIOCSIFMEM                       = 0x8920
+       SIOCSIFMETRIC                    = 0x891e
+       SIOCSIFMTU                       = 0x8922
+       SIOCSIFNAME                      = 0x8923
+       SIOCSIFNETMASK                   = 0x891c
+       SIOCSIFPFLAGS                    = 0x8934
+       SIOCSIFSLAVE                     = 0x8930
+       SIOCSIFTXQLEN                    = 0x8943
+       SIOCSIFVLAN                      = 0x8983
+       SIOCSMIIREG                      = 0x8949
+       SIOCSPGRP                        = 0x8902
+       SIOCSRARP                        = 0x8962
+       SIOCWANDEV                       = 0x894a
+       SOCK_CLOEXEC                     = 0x400000
+       SOCK_DCCP                        = 0x6
+       SOCK_DGRAM                       = 0x2
+       SOCK_NONBLOCK                    = 0x4000
+       SOCK_PACKET                      = 0xa
+       SOCK_RAW                         = 0x3
+       SOCK_RDM                         = 0x4
+       SOCK_SEQPACKET                   = 0x5
+       SOCK_STREAM                      = 0x1
+       SOL_AAL                          = 0x109
+       SOL_ALG                          = 0x117
+       SOL_ATM                          = 0x108
+       SOL_CAIF                         = 0x116
+       SOL_DCCP                         = 0x10d
+       SOL_DECNET                       = 0x105
+       SOL_ICMPV6                       = 0x3a
+       SOL_IP                           = 0x0
+       SOL_IPV6                         = 0x29
+       SOL_IRDA                         = 0x10a
+       SOL_IUCV                         = 0x115
+       SOL_KCM                          = 0x119
+       SOL_LLC                          = 0x10c
+       SOL_NETBEUI                      = 0x10b
+       SOL_NETLINK                      = 0x10e
+       SOL_NFC                          = 0x118
+       SOL_PACKET                       = 0x107
+       SOL_PNPIPE                       = 0x113
+       SOL_PPPOL2TP                     = 0x111
+       SOL_RAW                          = 0xff
+       SOL_RDS                          = 0x114
+       SOL_RXRPC                        = 0x110
+       SOL_SOCKET                       = 0xffff
+       SOL_TCP                          = 0x6
+       SOL_TIPC                         = 0x10f
+       SOL_X25                          = 0x106
+       SOMAXCONN                        = 0x80
+       SO_ACCEPTCONN                    = 0x8000
+       SO_ATTACH_BPF                    = 0x34
+       SO_ATTACH_FILTER                 = 0x1a
+       SO_ATTACH_REUSEPORT_CBPF         = 0x35
+       SO_ATTACH_REUSEPORT_EBPF         = 0x36
+       SO_BINDTODEVICE                  = 0xd
+       SO_BPF_EXTENSIONS                = 0x32
+       SO_BROADCAST                     = 0x20
+       SO_BSDCOMPAT                     = 0x400
+       SO_BUSY_POLL                     = 0x30
+       SO_CNX_ADVICE                    = 0x37
+       SO_DEBUG                         = 0x1
+       SO_DETACH_BPF                    = 0x1b
+       SO_DETACH_FILTER                 = 0x1b
+       SO_DOMAIN                        = 0x1029
+       SO_DONTROUTE                     = 0x10
+       SO_ERROR                         = 0x1007
+       SO_GET_FILTER                    = 0x1a
+       SO_INCOMING_CPU                  = 0x33
+       SO_KEEPALIVE                     = 0x8
+       SO_LINGER                        = 0x80
+       SO_LOCK_FILTER                   = 0x28
+       SO_MARK                          = 0x22
+       SO_MAX_PACING_RATE               = 0x31
+       SO_NOFCS                         = 0x27
+       SO_NO_CHECK                      = 0xb
+       SO_OOBINLINE                     = 0x100
+       SO_PASSCRED                      = 0x2
+       SO_PASSSEC                       = 0x1f
+       SO_PEEK_OFF                      = 0x26
+       SO_PEERCRED                      = 0x40
+       SO_PEERNAME                      = 0x1c
+       SO_PEERSEC                       = 0x1e
+       SO_PRIORITY                      = 0xc
+       SO_PROTOCOL                      = 0x1028
+       SO_RCVBUF                        = 0x1002
+       SO_RCVBUFFORCE                   = 0x100b
+       SO_RCVLOWAT                      = 0x800
+       SO_RCVTIMEO                      = 0x2000
+       SO_REUSEADDR                     = 0x4
+       SO_REUSEPORT                     = 0x200
+       SO_RXQ_OVFL                      = 0x24
+       SO_SECURITY_AUTHENTICATION       = 0x5001
+       SO_SECURITY_ENCRYPTION_NETWORK   = 0x5004
+       SO_SECURITY_ENCRYPTION_TRANSPORT = 0x5002
+       SO_SELECT_ERR_QUEUE              = 0x29
+       SO_SNDBUF                        = 0x1001
+       SO_SNDBUFFORCE                   = 0x100a
+       SO_SNDLOWAT                      = 0x1000
+       SO_SNDTIMEO                      = 0x4000
+       SO_TIMESTAMP                     = 0x1d
+       SO_TIMESTAMPING                  = 0x23
+       SO_TIMESTAMPNS                   = 0x21
+       SO_TYPE                          = 0x1008
+       SO_VM_SOCKETS_BUFFER_MAX_SIZE    = 0x2
+       SO_VM_SOCKETS_BUFFER_MIN_SIZE    = 0x1
+       SO_VM_SOCKETS_BUFFER_SIZE        = 0x0
+       SO_VM_SOCKETS_CONNECT_TIMEOUT    = 0x6
+       SO_VM_SOCKETS_NONBLOCK_TXRX      = 0x7
+       SO_VM_SOCKETS_PEER_HOST_VM_ID    = 0x3
+       SO_VM_SOCKETS_TRUSTED            = 0x5
+       SO_WIFI_STATUS                   = 0x25
+       SPLICE_F_GIFT                    = 0x8
+       SPLICE_F_MORE                    = 0x4
+       SPLICE_F_MOVE                    = 0x1
+       SPLICE_F_NONBLOCK                = 0x2
+       S_BLKSIZE                        = 0x200
+       S_IEXEC                          = 0x40
+       S_IFBLK                          = 0x6000
+       S_IFCHR                          = 0x2000
+       S_IFDIR                          = 0x4000
+       S_IFIFO                          = 0x1000
+       S_IFLNK                          = 0xa000
+       S_IFMT                           = 0xf000
+       S_IFREG                          = 0x8000
+       S_IFSOCK                         = 0xc000
+       S_IREAD                          = 0x100
+       S_IRGRP                          = 0x20
+       S_IROTH                          = 0x4
+       S_IRUSR                          = 0x100
+       S_IRWXG                          = 0x38
+       S_IRWXO                          = 0x7
+       S_IRWXU                          = 0x1c0
+       S_ISGID                          = 0x400
+       S_ISUID                          = 0x800
+       S_ISVTX                          = 0x200
+       S_IWGRP                          = 0x10
+       S_IWOTH                          = 0x2
+       S_IWRITE                         = 0x80
+       S_IWUSR                          = 0x80
+       S_IXGRP                          = 0x8
+       S_IXOTH                          = 0x1
+       S_IXUSR                          = 0x40
+       TAB0                             = 0x0
+       TAB1                             = 0x800
+       TAB2                             = 0x1000
+       TAB3                             = 0x1800
+       TABDLY                           = 0x1800
+       TCFLSH                           = 0x20005407
+       TCGETA                           = 0x40125401
+       TCGETS                           = 0x40245408
+       TCGETS2                          = 0x402c540c
+       TCIFLUSH                         = 0x0
+       TCIOFF                           = 0x2
+       TCIOFLUSH                        = 0x2
+       TCION                            = 0x3
+       TCOFLUSH                         = 0x1
+       TCOOFF                           = 0x0
+       TCOON                            = 0x1
+       TCP_CC_INFO                      = 0x1a
+       TCP_CONGESTION                   = 0xd
+       TCP_COOKIE_IN_ALWAYS             = 0x1
+       TCP_COOKIE_MAX                   = 0x10
+       TCP_COOKIE_MIN                   = 0x8
+       TCP_COOKIE_OUT_NEVER             = 0x2
+       TCP_COOKIE_PAIR_SIZE             = 0x20
+       TCP_COOKIE_TRANSACTIONS          = 0xf
+       TCP_CORK                         = 0x3
+       TCP_DEFER_ACCEPT                 = 0x9
+       TCP_FASTOPEN                     = 0x17
+       TCP_INFO                         = 0xb
+       TCP_KEEPCNT                      = 0x6
+       TCP_KEEPIDLE                     = 0x4
+       TCP_KEEPINTVL                    = 0x5
+       TCP_LINGER2                      = 0x8
+       TCP_MAXSEG                       = 0x2
+       TCP_MAXWIN                       = 0xffff
+       TCP_MAX_WINSHIFT                 = 0xe
+       TCP_MD5SIG                       = 0xe
+       TCP_MD5SIG_MAXKEYLEN             = 0x50
+       TCP_MSS                          = 0x200
+       TCP_MSS_DEFAULT                  = 0x218
+       TCP_MSS_DESIRED                  = 0x4c4
+       TCP_NODELAY                      = 0x1
+       TCP_NOTSENT_LOWAT                = 0x19
+       TCP_QUEUE_SEQ                    = 0x15
+       TCP_QUICKACK                     = 0xc
+       TCP_REPAIR                       = 0x13
+       TCP_REPAIR_OPTIONS               = 0x16
+       TCP_REPAIR_QUEUE                 = 0x14
+       TCP_SAVED_SYN                    = 0x1c
+       TCP_SAVE_SYN                     = 0x1b
+       TCP_SYNCNT                       = 0x7
+       TCP_S_DATA_IN                    = 0x4
+       TCP_S_DATA_OUT                   = 0x8
+       TCP_THIN_DUPACK                  = 0x11
+       TCP_THIN_LINEAR_TIMEOUTS         = 0x10
+       TCP_TIMESTAMP                    = 0x18
+       TCP_USER_TIMEOUT                 = 0x12
+       TCP_WINDOW_CLAMP                 = 0xa
+       TCSAFLUSH                        = 0x2
+       TCSBRK                           = 0x20005405
+       TCSBRKP                          = 0x5425
+       TCSETA                           = 0x80125402
+       TCSETAF                          = 0x80125404
+       TCSETAW                          = 0x80125403
+       TCSETS                           = 0x80245409
+       TCSETS2                          = 0x802c540d
+       TCSETSF                          = 0x8024540b
+       TCSETSF2                         = 0x802c540f
+       TCSETSW                          = 0x8024540a
+       TCSETSW2                         = 0x802c540e
+       TCXONC                           = 0x20005406
+       TIOCCBRK                         = 0x2000747a
+       TIOCCONS                         = 0x20007424
+       TIOCEXCL                         = 0x2000740d
+       TIOCGDEV                         = 0x40045432
+       TIOCGETD                         = 0x40047400
+       TIOCGEXCL                        = 0x40045440
+       TIOCGICOUNT                      = 0x545d
+       TIOCGLCKTRMIOS                   = 0x5456
+       TIOCGPGRP                        = 0x40047483
+       TIOCGPKT                         = 0x40045438
+       TIOCGPTLCK                       = 0x40045439
+       TIOCGPTN                         = 0x40047486
+       TIOCGRS485                       = 0x40205441
+       TIOCGSERIAL                      = 0x541e
+       TIOCGSID                         = 0x40047485
+       TIOCGSOFTCAR                     = 0x40047464
+       TIOCGWINSZ                       = 0x40087468
+       TIOCINQ                          = 0x4004667f
+       TIOCLINUX                        = 0x541c
+       TIOCMBIC                         = 0x8004746b
+       TIOCMBIS                         = 0x8004746c
+       TIOCMGET                         = 0x4004746a
+       TIOCMIWAIT                       = 0x545c
+       TIOCMSET                         = 0x8004746d
+       TIOCM_CAR                        = 0x40
+       TIOCM_CD                         = 0x40
+       TIOCM_CTS                        = 0x20
+       TIOCM_DSR                        = 0x100
+       TIOCM_DTR                        = 0x2
+       TIOCM_LE                         = 0x1
+       TIOCM_LOOP                       = 0x8000
+       TIOCM_OUT1                       = 0x2000
+       TIOCM_OUT2                       = 0x4000
+       TIOCM_RI                         = 0x80
+       TIOCM_RNG                        = 0x80
+       TIOCM_RTS                        = 0x4
+       TIOCM_SR                         = 0x10
+       TIOCM_ST                         = 0x8
+       TIOCNOTTY                        = 0x20007471
+       TIOCNXCL                         = 0x2000740e
+       TIOCOUTQ                         = 0x40047473
+       TIOCPKT                          = 0x80047470
+       TIOCPKT_DATA                     = 0x0
+       TIOCPKT_DOSTOP                   = 0x20
+       TIOCPKT_FLUSHREAD                = 0x1
+       TIOCPKT_FLUSHWRITE               = 0x2
+       TIOCPKT_IOCTL                    = 0x40
+       TIOCPKT_NOSTOP                   = 0x10
+       TIOCPKT_START                    = 0x8
+       TIOCPKT_STOP                     = 0x4
+       TIOCSBRK                         = 0x2000747b
+       TIOCSCTTY                        = 0x20007484
+       TIOCSERCONFIG                    = 0x5453
+       TIOCSERGETLSR                    = 0x5459
+       TIOCSERGETMULTI                  = 0x545a
+       TIOCSERGSTRUCT                   = 0x5458
+       TIOCSERGWILD                     = 0x5454
+       TIOCSERSETMULTI                  = 0x545b
+       TIOCSERSWILD                     = 0x5455
+       TIOCSER_TEMT                     = 0x1
+       TIOCSETD                         = 0x80047401
+       TIOCSIG                          = 0x80047488
+       TIOCSLCKTRMIOS                   = 0x5457
+       TIOCSPGRP                        = 0x80047482
+       TIOCSPTLCK                       = 0x80047487
+       TIOCSRS485                       = 0xc0205442
+       TIOCSSERIAL                      = 0x541f
+       TIOCSSOFTCAR                     = 0x80047465
+       TIOCSTART                        = 0x2000746e
+       TIOCSTI                          = 0x80017472
+       TIOCSTOP                         = 0x2000746f
+       TIOCSWINSZ                       = 0x80087467
+       TIOCVHANGUP                      = 0x20005437
+       TOSTOP                           = 0x100
+       TUNATTACHFILTER                  = 0x801054d5
+       TUNDETACHFILTER                  = 0x801054d6
+       TUNGETFEATURES                   = 0x400454cf
+       TUNGETFILTER                     = 0x401054db
+       TUNGETIFF                        = 0x400454d2
+       TUNGETSNDBUF                     = 0x400454d3
+       TUNGETVNETBE                     = 0x400454df
+       TUNGETVNETHDRSZ                  = 0x400454d7
+       TUNGETVNETLE                     = 0x400454dd
+       TUNSETDEBUG                      = 0x800454c9
+       TUNSETGROUP                      = 0x800454ce
+       TUNSETIFF                        = 0x800454ca
+       TUNSETIFINDEX                    = 0x800454da
+       TUNSETLINK                       = 0x800454cd
+       TUNSETNOCSUM                     = 0x800454c8
+       TUNSETOFFLOAD                    = 0x800454d0
+       TUNSETOWNER                      = 0x800454cc
+       TUNSETPERSIST                    = 0x800454cb
+       TUNSETQUEUE                      = 0x800454d9
+       TUNSETSNDBUF                     = 0x800454d4
+       TUNSETTXFILTER                   = 0x800454d1
+       TUNSETVNETBE                     = 0x800454de
+       TUNSETVNETHDRSZ                  = 0x800454d8
+       TUNSETVNETLE                     = 0x800454dc
+       VDISCARD                         = 0xd
+       VDSUSP                           = 0xb
+       VEOF                             = 0x4
+       VEOL                             = 0x5
+       VEOL2                            = 0x6
+       VERASE                           = 0x2
+       VINTR                            = 0x0
+       VKILL                            = 0x3
+       VLNEXT                           = 0xf
+       VMADDR_CID_ANY                   = 0xffffffff
+       VMADDR_CID_HOST                  = 0x2
+       VMADDR_CID_HYPERVISOR            = 0x0
+       VMADDR_CID_RESERVED              = 0x1
+       VMADDR_PORT_ANY                  = 0xffffffff
+       VMIN                             = 0x4
+       VQUIT                            = 0x1
+       VREPRINT                         = 0xc
+       VSTART                           = 0x8
+       VSTOP                            = 0x9
+       VSUSP                            = 0xa
+       VSWTC                            = 0x7
+       VT0                              = 0x0
+       VT1                              = 0x4000
+       VTDLY                            = 0x4000
+       VTIME                            = 0x5
+       VWERASE                          = 0xe
+       WALL                             = 0x40000000
+       WCLONE                           = 0x80000000
+       WCONTINUED                       = 0x8
+       WEXITED                          = 0x4
+       WNOHANG                          = 0x1
+       WNOTHREAD                        = 0x20000000
+       WNOWAIT                          = 0x1000000
+       WORDSIZE                         = 0x40
+       WRAP                             = 0x20000
+       WSTOPPED                         = 0x2
+       WUNTRACED                        = 0x2
+       XCASE                            = 0x4
+       XTABS                            = 0x1800
+       __TIOCFLUSH                      = 0x80047410
+)
+
+// Errors
+const (
+       E2BIG           = syscall.Errno(0x7)
+       EACCES          = syscall.Errno(0xd)
+       EADDRINUSE      = syscall.Errno(0x30)
+       EADDRNOTAVAIL   = syscall.Errno(0x31)
+       EADV            = syscall.Errno(0x53)
+       EAFNOSUPPORT    = syscall.Errno(0x2f)
+       EAGAIN          = syscall.Errno(0xb)
+       EALREADY        = syscall.Errno(0x25)
+       EBADE           = syscall.Errno(0x66)
+       EBADF           = syscall.Errno(0x9)
+       EBADFD          = syscall.Errno(0x5d)
+       EBADMSG         = syscall.Errno(0x4c)
+       EBADR           = syscall.Errno(0x67)
+       EBADRQC         = syscall.Errno(0x6a)
+       EBADSLT         = syscall.Errno(0x6b)
+       EBFONT          = syscall.Errno(0x6d)
+       EBUSY           = syscall.Errno(0x10)
+       ECANCELED       = syscall.Errno(0x7f)
+       ECHILD          = syscall.Errno(0xa)
+       ECHRNG          = syscall.Errno(0x5e)
+       ECOMM           = syscall.Errno(0x55)
+       ECONNABORTED    = syscall.Errno(0x35)
+       ECONNREFUSED    = syscall.Errno(0x3d)
+       ECONNRESET      = syscall.Errno(0x36)
+       EDEADLK         = syscall.Errno(0x4e)
+       EDEADLOCK       = syscall.Errno(0x6c)
+       EDESTADDRREQ    = syscall.Errno(0x27)
+       EDOM            = syscall.Errno(0x21)
+       EDOTDOT         = syscall.Errno(0x58)
+       EDQUOT          = syscall.Errno(0x45)
+       EEXIST          = syscall.Errno(0x11)
+       EFAULT          = syscall.Errno(0xe)
+       EFBIG           = syscall.Errno(0x1b)
+       EHOSTDOWN       = syscall.Errno(0x40)
+       EHOSTUNREACH    = syscall.Errno(0x41)
+       EHWPOISON       = syscall.Errno(0x87)
+       EIDRM           = syscall.Errno(0x4d)
+       EILSEQ          = syscall.Errno(0x7a)
+       EINPROGRESS     = syscall.Errno(0x24)
+       EINTR           = syscall.Errno(0x4)
+       EINVAL          = syscall.Errno(0x16)
+       EIO             = syscall.Errno(0x5)
+       EISCONN         = syscall.Errno(0x38)
+       EISDIR          = syscall.Errno(0x15)
+       EISNAM          = syscall.Errno(0x78)
+       EKEYEXPIRED     = syscall.Errno(0x81)
+       EKEYREJECTED    = syscall.Errno(0x83)
+       EKEYREVOKED     = syscall.Errno(0x82)
+       EL2HLT          = syscall.Errno(0x65)
+       EL2NSYNC        = syscall.Errno(0x5f)
+       EL3HLT          = syscall.Errno(0x60)
+       EL3RST          = syscall.Errno(0x61)
+       ELIBACC         = syscall.Errno(0x72)
+       ELIBBAD         = syscall.Errno(0x70)
+       ELIBEXEC        = syscall.Errno(0x6e)
+       ELIBMAX         = syscall.Errno(0x7b)
+       ELIBSCN         = syscall.Errno(0x7c)
+       ELNRNG          = syscall.Errno(0x62)
+       ELOOP           = syscall.Errno(0x3e)
+       EMEDIUMTYPE     = syscall.Errno(0x7e)
+       EMFILE          = syscall.Errno(0x18)
+       EMLINK          = syscall.Errno(0x1f)
+       EMSGSIZE        = syscall.Errno(0x28)
+       EMULTIHOP       = syscall.Errno(0x57)
+       ENAMETOOLONG    = syscall.Errno(0x3f)
+       ENAVAIL         = syscall.Errno(0x77)
+       ENETDOWN        = syscall.Errno(0x32)
+       ENETRESET       = syscall.Errno(0x34)
+       ENETUNREACH     = syscall.Errno(0x33)
+       ENFILE          = syscall.Errno(0x17)
+       ENOANO          = syscall.Errno(0x69)
+       ENOBUFS         = syscall.Errno(0x37)
+       ENOCSI          = syscall.Errno(0x64)
+       ENODATA         = syscall.Errno(0x6f)
+       ENODEV          = syscall.Errno(0x13)
+       ENOENT          = syscall.Errno(0x2)
+       ENOEXEC         = syscall.Errno(0x8)
+       ENOKEY          = syscall.Errno(0x80)
+       ENOLCK          = syscall.Errno(0x4f)
+       ENOLINK         = syscall.Errno(0x52)
+       ENOMEDIUM       = syscall.Errno(0x7d)
+       ENOMEM          = syscall.Errno(0xc)
+       ENOMSG          = syscall.Errno(0x4b)
+       ENONET          = syscall.Errno(0x50)
+       ENOPKG          = syscall.Errno(0x71)
+       ENOPROTOOPT     = syscall.Errno(0x2a)
+       ENOSPC          = syscall.Errno(0x1c)
+       ENOSR           = syscall.Errno(0x4a)
+       ENOSTR          = syscall.Errno(0x48)
+       ENOSYS          = syscall.Errno(0x5a)
+       ENOTBLK         = syscall.Errno(0xf)
+       ENOTCONN        = syscall.Errno(0x39)
+       ENOTDIR         = syscall.Errno(0x14)
+       ENOTEMPTY       = syscall.Errno(0x42)
+       ENOTNAM         = syscall.Errno(0x76)
+       ENOTRECOVERABLE = syscall.Errno(0x85)
+       ENOTSOCK        = syscall.Errno(0x26)
+       ENOTSUP         = syscall.Errno(0x2d)
+       ENOTTY          = syscall.Errno(0x19)
+       ENOTUNIQ        = syscall.Errno(0x73)
+       ENXIO           = syscall.Errno(0x6)
+       EOPNOTSUPP      = syscall.Errno(0x2d)
+       EOVERFLOW       = syscall.Errno(0x5c)
+       EOWNERDEAD      = syscall.Errno(0x84)
+       EPERM           = syscall.Errno(0x1)
+       EPFNOSUPPORT    = syscall.Errno(0x2e)
+       EPIPE           = syscall.Errno(0x20)
+       EPROCLIM        = syscall.Errno(0x43)
+       EPROTO          = syscall.Errno(0x56)
+       EPROTONOSUPPORT = syscall.Errno(0x2b)
+       EPROTOTYPE      = syscall.Errno(0x29)
+       ERANGE          = syscall.Errno(0x22)
+       EREMCHG         = syscall.Errno(0x59)
+       EREMOTE         = syscall.Errno(0x47)
+       EREMOTEIO       = syscall.Errno(0x79)
+       ERESTART        = syscall.Errno(0x74)
+       ERFKILL         = syscall.Errno(0x86)
+       EROFS           = syscall.Errno(0x1e)
+       ERREMOTE        = syscall.Errno(0x51)
+       ESHUTDOWN       = syscall.Errno(0x3a)
+       ESOCKTNOSUPPORT = syscall.Errno(0x2c)
+       ESPIPE          = syscall.Errno(0x1d)
+       ESRCH           = syscall.Errno(0x3)
+       ESRMNT          = syscall.Errno(0x54)
+       ESTALE          = syscall.Errno(0x46)
+       ESTRPIPE        = syscall.Errno(0x5b)
+       ETIME           = syscall.Errno(0x49)
+       ETIMEDOUT       = syscall.Errno(0x3c)
+       ETOOMANYREFS    = syscall.Errno(0x3b)
+       ETXTBSY         = syscall.Errno(0x1a)
+       EUCLEAN         = syscall.Errno(0x75)
+       EUNATCH         = syscall.Errno(0x63)
+       EUSERS          = syscall.Errno(0x44)
+       EWOULDBLOCK     = syscall.Errno(0xb)
+       EXDEV           = syscall.Errno(0x12)
+       EXFULL          = syscall.Errno(0x68)
+)
+
+// Signals
+const (
+       SIGABRT   = syscall.Signal(0x6)
+       SIGALRM   = syscall.Signal(0xe)
+       SIGBUS    = syscall.Signal(0xa)
+       SIGCHLD   = syscall.Signal(0x14)
+       SIGCLD    = syscall.Signal(0x14)
+       SIGCONT   = syscall.Signal(0x13)
+       SIGEMT    = syscall.Signal(0x7)
+       SIGFPE    = syscall.Signal(0x8)
+       SIGHUP    = syscall.Signal(0x1)
+       SIGILL    = syscall.Signal(0x4)
+       SIGINT    = syscall.Signal(0x2)
+       SIGIO     = syscall.Signal(0x17)
+       SIGIOT    = syscall.Signal(0x6)
+       SIGKILL   = syscall.Signal(0x9)
+       SIGLOST   = syscall.Signal(0x1d)
+       SIGPIPE   = syscall.Signal(0xd)
+       SIGPOLL   = syscall.Signal(0x17)
+       SIGPROF   = syscall.Signal(0x1b)
+       SIGPWR    = syscall.Signal(0x1d)
+       SIGQUIT   = syscall.Signal(0x3)
+       SIGSEGV   = syscall.Signal(0xb)
+       SIGSTOP   = syscall.Signal(0x11)
+       SIGSYS    = syscall.Signal(0xc)
+       SIGTERM   = syscall.Signal(0xf)
+       SIGTRAP   = syscall.Signal(0x5)
+       SIGTSTP   = syscall.Signal(0x12)
+       SIGTTIN   = syscall.Signal(0x15)
+       SIGTTOU   = syscall.Signal(0x16)
+       SIGURG    = syscall.Signal(0x10)
+       SIGUSR1   = syscall.Signal(0x1e)
+       SIGUSR2   = syscall.Signal(0x1f)
+       SIGVTALRM = syscall.Signal(0x1a)
+       SIGWINCH  = syscall.Signal(0x1c)
+       SIGXCPU   = syscall.Signal(0x18)
+       SIGXFSZ   = syscall.Signal(0x19)
+)
+
+// Error table
+var errors = [...]string{
+       1:   "operation not permitted",
+       2:   "no such file or directory",
+       3:   "no such process",
+       4:   "interrupted system call",
+       5:   "input/output error",
+       6:   "no such device or address",
+       7:   "argument list too long",
+       8:   "exec format error",
+       9:   "bad file descriptor",
+       10:  "no child processes",
+       11:  "resource temporarily unavailable",
+       12:  "cannot allocate memory",
+       13:  "permission denied",
+       14:  "bad address",
+       15:  "block device required",
+       16:  "device or resource busy",
+       17:  "file exists",
+       18:  "invalid cross-device link",
+       19:  "no such device",
+       20:  "not a directory",
+       21:  "is a directory",
+       22:  "invalid argument",
+       23:  "too many open files in system",
+       24:  "too many open files",
+       25:  "inappropriate ioctl for device",
+       26:  "text file busy",
+       27:  "file too large",
+       28:  "no space left on device",
+       29:  "illegal seek",
+       30:  "read-only file system",
+       31:  "too many links",
+       32:  "broken pipe",
+       33:  "numerical argument out of domain",
+       34:  "numerical result out of range",
+       36:  "operation now in progress",
+       37:  "operation already in progress",
+       38:  "socket operation on non-socket",
+       39:  "destination address required",
+       40:  "message too long",
+       41:  "protocol wrong type for socket",
+       42:  "protocol not available",
+       43:  "protocol not supported",
+       44:  "socket type not supported",
+       45:  "operation not supported",
+       46:  "protocol family not supported",
+       47:  "address family not supported by protocol",
+       48:  "address already in use",
+       49:  "cannot assign requested address",
+       50:  "network is down",
+       51:  "network is unreachable",
+       52:  "network dropped connection on reset",
+       53:  "software caused connection abort",
+       54:  "connection reset by peer",
+       55:  "no buffer space available",
+       56:  "transport endpoint is already connected",
+       57:  "transport endpoint is not connected",
+       58:  "cannot send after transport endpoint shutdown",
+       59:  "too many references: cannot splice",
+       60:  "connection timed out",
+       61:  "connection refused",
+       62:  "too many levels of symbolic links",
+       63:  "file name too long",
+       64:  "host is down",
+       65:  "no route to host",
+       66:  "directory not empty",
+       67:  "too many processes",
+       68:  "too many users",
+       69:  "disk quota exceeded",
+       70:  "stale file handle",
+       71:  "object is remote",
+       72:  "device not a stream",
+       73:  "timer expired",
+       74:  "out of streams resources",
+       75:  "no message of desired type",
+       76:  "bad message",
+       77:  "identifier removed",
+       78:  "resource deadlock avoided",
+       79:  "no locks available",
+       80:  "machine is not on the network",
+       81:  "unknown error 81",
+       82:  "link has been severed",
+       83:  "advertise error",
+       84:  "srmount error",
+       85:  "communication error on send",
+       86:  "protocol error",
+       87:  "multihop attempted",
+       88:  "RFS specific error",
+       89:  "remote address changed",
+       90:  "function not implemented",
+       91:  "streams pipe error",
+       92:  "value too large for defined data type",
+       93:  "file descriptor in bad state",
+       94:  "channel number out of range",
+       95:  "level 2 not synchronized",
+       96:  "level 3 halted",
+       97:  "level 3 reset",
+       98:  "link number out of range",
+       99:  "protocol driver not attached",
+       100: "no CSI structure available",
+       101: "level 2 halted",
+       102: "invalid exchange",
+       103: "invalid request descriptor",
+       104: "exchange full",
+       105: "no anode",
+       106: "invalid request code",
+       107: "invalid slot",
+       108: "file locking deadlock error",
+       109: "bad font file format",
+       110: "cannot exec a shared library directly",
+       111: "no data available",
+       112: "accessing a corrupted shared library",
+       113: "package not installed",
+       114: "can not access a needed shared library",
+       115: "name not unique on network",
+       116: "interrupted system call should be restarted",
+       117: "structure needs cleaning",
+       118: "not a XENIX named type file",
+       119: "no XENIX semaphores available",
+       120: "is a named type file",
+       121: "remote I/O error",
+       122: "invalid or incomplete multibyte or wide character",
+       123: "attempting to link in too many shared libraries",
+       124: ".lib section in a.out corrupted",
+       125: "no medium found",
+       126: "wrong medium type",
+       127: "operation canceled",
+       128: "required key not available",
+       129: "key has expired",
+       130: "key has been revoked",
+       131: "key was rejected by service",
+       132: "owner died",
+       133: "state not recoverable",
+       134: "operation not possible due to RF-kill",
+       135: "memory page has hardware error",
+}
+
+// Signal table
+var signals = [...]string{
+       1:  "hangup",
+       2:  "interrupt",
+       3:  "quit",
+       4:  "illegal instruction",
+       5:  "trace/breakpoint trap",
+       6:  "aborted",
+       7:  "EMT trap",
+       8:  "floating point exception",
+       9:  "killed",
+       10: "bus error",
+       11: "segmentation fault",
+       12: "bad system call",
+       13: "broken pipe",
+       14: "alarm clock",
+       15: "terminated",
+       16: "urgent I/O condition",
+       17: "stopped (signal)",
+       18: "stopped",
+       19: "continued",
+       20: "child exited",
+       21: "stopped (tty input)",
+       22: "stopped (tty output)",
+       23: "I/O possible",
+       24: "CPU time limit exceeded",
+       25: "file size limit exceeded",
+       26: "virtual timer expired",
+       27: "profiling timer expired",
+       28: "window changed",
+       29: "resource lost",
+       30: "user defined signal 1",
+       31: "user defined signal 2",
+}
diff --git a/vendor/golang.org/x/sys/unix/zerrors_netbsd_386.go b/vendor/golang.org/x/sys/unix/zerrors_netbsd_386.go
new file mode 100644 (file)
index 0000000..b4338d5
--- /dev/null
@@ -0,0 +1,1712 @@
+// mkerrors.sh -m32
+// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT
+
+// +build 386,netbsd
+
+// Created by cgo -godefs - DO NOT EDIT
+// cgo -godefs -- -m32 _const.go
+
+package unix
+
+import "syscall"
+
+const (
+       AF_APPLETALK                      = 0x10
+       AF_ARP                            = 0x1c
+       AF_BLUETOOTH                      = 0x1f
+       AF_CCITT                          = 0xa
+       AF_CHAOS                          = 0x5
+       AF_CNT                            = 0x15
+       AF_COIP                           = 0x14
+       AF_DATAKIT                        = 0x9
+       AF_DECnet                         = 0xc
+       AF_DLI                            = 0xd
+       AF_E164                           = 0x1a
+       AF_ECMA                           = 0x8
+       AF_HYLINK                         = 0xf
+       AF_IEEE80211                      = 0x20
+       AF_IMPLINK                        = 0x3
+       AF_INET                           = 0x2
+       AF_INET6                          = 0x18
+       AF_IPX                            = 0x17
+       AF_ISDN                           = 0x1a
+       AF_ISO                            = 0x7
+       AF_LAT                            = 0xe
+       AF_LINK                           = 0x12
+       AF_LOCAL                          = 0x1
+       AF_MAX                            = 0x23
+       AF_MPLS                           = 0x21
+       AF_NATM                           = 0x1b
+       AF_NS                             = 0x6
+       AF_OROUTE                         = 0x11
+       AF_OSI                            = 0x7
+       AF_PUP                            = 0x4
+       AF_ROUTE                          = 0x22
+       AF_SNA                            = 0xb
+       AF_UNIX                           = 0x1
+       AF_UNSPEC                         = 0x0
+       ARPHRD_ARCNET                     = 0x7
+       ARPHRD_ETHER                      = 0x1
+       ARPHRD_FRELAY                     = 0xf
+       ARPHRD_IEEE1394                   = 0x18
+       ARPHRD_IEEE802                    = 0x6
+       ARPHRD_STRIP                      = 0x17
+       B0                                = 0x0
+       B110                              = 0x6e
+       B115200                           = 0x1c200
+       B1200                             = 0x4b0
+       B134                              = 0x86
+       B14400                            = 0x3840
+       B150                              = 0x96
+       B1800                             = 0x708
+       B19200                            = 0x4b00
+       B200                              = 0xc8
+       B230400                           = 0x38400
+       B2400                             = 0x960
+       B28800                            = 0x7080
+       B300                              = 0x12c
+       B38400                            = 0x9600
+       B460800                           = 0x70800
+       B4800                             = 0x12c0
+       B50                               = 0x32
+       B57600                            = 0xe100
+       B600                              = 0x258
+       B7200                             = 0x1c20
+       B75                               = 0x4b
+       B76800                            = 0x12c00
+       B921600                           = 0xe1000
+       B9600                             = 0x2580
+       BIOCFEEDBACK                      = 0x8004427d
+       BIOCFLUSH                         = 0x20004268
+       BIOCGBLEN                         = 0x40044266
+       BIOCGDLT                          = 0x4004426a
+       BIOCGDLTLIST                      = 0xc0084277
+       BIOCGETIF                         = 0x4090426b
+       BIOCGFEEDBACK                     = 0x4004427c
+       BIOCGHDRCMPLT                     = 0x40044274
+       BIOCGRTIMEOUT                     = 0x400c427b
+       BIOCGSEESENT                      = 0x40044278
+       BIOCGSTATS                        = 0x4080426f
+       BIOCGSTATSOLD                     = 0x4008426f
+       BIOCIMMEDIATE                     = 0x80044270
+       BIOCPROMISC                       = 0x20004269
+       BIOCSBLEN                         = 0xc0044266
+       BIOCSDLT                          = 0x80044276
+       BIOCSETF                          = 0x80084267
+       BIOCSETIF                         = 0x8090426c
+       BIOCSFEEDBACK                     = 0x8004427d
+       BIOCSHDRCMPLT                     = 0x80044275
+       BIOCSRTIMEOUT                     = 0x800c427a
+       BIOCSSEESENT                      = 0x80044279
+       BIOCSTCPF                         = 0x80084272
+       BIOCSUDPF                         = 0x80084273
+       BIOCVERSION                       = 0x40044271
+       BPF_A                             = 0x10
+       BPF_ABS                           = 0x20
+       BPF_ADD                           = 0x0
+       BPF_ALIGNMENT                     = 0x4
+       BPF_ALIGNMENT32                   = 0x4
+       BPF_ALU                           = 0x4
+       BPF_AND                           = 0x50
+       BPF_B                             = 0x10
+       BPF_DFLTBUFSIZE                   = 0x100000
+       BPF_DIV                           = 0x30
+       BPF_H                             = 0x8
+       BPF_IMM                           = 0x0
+       BPF_IND                           = 0x40
+       BPF_JA                            = 0x0
+       BPF_JEQ                           = 0x10
+       BPF_JGE                           = 0x30
+       BPF_JGT                           = 0x20
+       BPF_JMP                           = 0x5
+       BPF_JSET                          = 0x40
+       BPF_K                             = 0x0
+       BPF_LD                            = 0x0
+       BPF_LDX                           = 0x1
+       BPF_LEN                           = 0x80
+       BPF_LSH                           = 0x60
+       BPF_MAJOR_VERSION                 = 0x1
+       BPF_MAXBUFSIZE                    = 0x1000000
+       BPF_MAXINSNS                      = 0x200
+       BPF_MEM                           = 0x60
+       BPF_MEMWORDS                      = 0x10
+       BPF_MINBUFSIZE                    = 0x20
+       BPF_MINOR_VERSION                 = 0x1
+       BPF_MISC                          = 0x7
+       BPF_MSH                           = 0xa0
+       BPF_MUL                           = 0x20
+       BPF_NEG                           = 0x80
+       BPF_OR                            = 0x40
+       BPF_RELEASE                       = 0x30bb6
+       BPF_RET                           = 0x6
+       BPF_RSH                           = 0x70
+       BPF_ST                            = 0x2
+       BPF_STX                           = 0x3
+       BPF_SUB                           = 0x10
+       BPF_TAX                           = 0x0
+       BPF_TXA                           = 0x80
+       BPF_W                             = 0x0
+       BPF_X                             = 0x8
+       BRKINT                            = 0x2
+       CFLUSH                            = 0xf
+       CLOCAL                            = 0x8000
+       CLONE_CSIGNAL                     = 0xff
+       CLONE_FILES                       = 0x400
+       CLONE_FS                          = 0x200
+       CLONE_PID                         = 0x1000
+       CLONE_PTRACE                      = 0x2000
+       CLONE_SIGHAND                     = 0x800
+       CLONE_VFORK                       = 0x4000
+       CLONE_VM                          = 0x100
+       CREAD                             = 0x800
+       CS5                               = 0x0
+       CS6                               = 0x100
+       CS7                               = 0x200
+       CS8                               = 0x300
+       CSIZE                             = 0x300
+       CSTART                            = 0x11
+       CSTATUS                           = 0x14
+       CSTOP                             = 0x13
+       CSTOPB                            = 0x400
+       CSUSP                             = 0x1a
+       CTL_MAXNAME                       = 0xc
+       CTL_NET                           = 0x4
+       CTL_QUERY                         = -0x2
+       DIOCBSFLUSH                       = 0x20006478
+       DLT_A429                          = 0xb8
+       DLT_A653_ICM                      = 0xb9
+       DLT_AIRONET_HEADER                = 0x78
+       DLT_AOS                           = 0xde
+       DLT_APPLE_IP_OVER_IEEE1394        = 0x8a
+       DLT_ARCNET                        = 0x7
+       DLT_ARCNET_LINUX                  = 0x81
+       DLT_ATM_CLIP                      = 0x13
+       DLT_ATM_RFC1483                   = 0xb
+       DLT_AURORA                        = 0x7e
+       DLT_AX25                          = 0x3
+       DLT_AX25_KISS                     = 0xca
+       DLT_BACNET_MS_TP                  = 0xa5
+       DLT_BLUETOOTH_HCI_H4              = 0xbb
+       DLT_BLUETOOTH_HCI_H4_WITH_PHDR    = 0xc9
+       DLT_CAN20B                        = 0xbe
+       DLT_CAN_SOCKETCAN                 = 0xe3
+       DLT_CHAOS                         = 0x5
+       DLT_CISCO_IOS                     = 0x76
+       DLT_C_HDLC                        = 0x68
+       DLT_C_HDLC_WITH_DIR               = 0xcd
+       DLT_DECT                          = 0xdd
+       DLT_DOCSIS                        = 0x8f
+       DLT_ECONET                        = 0x73
+       DLT_EN10MB                        = 0x1
+       DLT_EN3MB                         = 0x2
+       DLT_ENC                           = 0x6d
+       DLT_ERF                           = 0xc5
+       DLT_ERF_ETH                       = 0xaf
+       DLT_ERF_POS                       = 0xb0
+       DLT_FC_2                          = 0xe0
+       DLT_FC_2_WITH_FRAME_DELIMS        = 0xe1
+       DLT_FDDI                          = 0xa
+       DLT_FLEXRAY                       = 0xd2
+       DLT_FRELAY                        = 0x6b
+       DLT_FRELAY_WITH_DIR               = 0xce
+       DLT_GCOM_SERIAL                   = 0xad
+       DLT_GCOM_T1E1                     = 0xac
+       DLT_GPF_F                         = 0xab
+       DLT_GPF_T                         = 0xaa
+       DLT_GPRS_LLC                      = 0xa9
+       DLT_GSMTAP_ABIS                   = 0xda
+       DLT_GSMTAP_UM                     = 0xd9
+       DLT_HDLC                          = 0x10
+       DLT_HHDLC                         = 0x79
+       DLT_HIPPI                         = 0xf
+       DLT_IBM_SN                        = 0x92
+       DLT_IBM_SP                        = 0x91
+       DLT_IEEE802                       = 0x6
+       DLT_IEEE802_11                    = 0x69
+       DLT_IEEE802_11_RADIO              = 0x7f
+       DLT_IEEE802_11_RADIO_AVS          = 0xa3
+       DLT_IEEE802_15_4                  = 0xc3
+       DLT_IEEE802_15_4_LINUX            = 0xbf
+       DLT_IEEE802_15_4_NONASK_PHY       = 0xd7
+       DLT_IEEE802_16_MAC_CPS            = 0xbc
+       DLT_IEEE802_16_MAC_CPS_RADIO      = 0xc1
+       DLT_IPMB                          = 0xc7
+       DLT_IPMB_LINUX                    = 0xd1
+       DLT_IPNET                         = 0xe2
+       DLT_IPV4                          = 0xe4
+       DLT_IPV6                          = 0xe5
+       DLT_IP_OVER_FC                    = 0x7a
+       DLT_JUNIPER_ATM1                  = 0x89
+       DLT_JUNIPER_ATM2                  = 0x87
+       DLT_JUNIPER_CHDLC                 = 0xb5
+       DLT_JUNIPER_ES                    = 0x84
+       DLT_JUNIPER_ETHER                 = 0xb2
+       DLT_JUNIPER_FRELAY                = 0xb4
+       DLT_JUNIPER_GGSN                  = 0x85
+       DLT_JUNIPER_ISM                   = 0xc2
+       DLT_JUNIPER_MFR                   = 0x86
+       DLT_JUNIPER_MLFR                  = 0x83
+       DLT_JUNIPER_MLPPP                 = 0x82
+       DLT_JUNIPER_MONITOR               = 0xa4
+       DLT_JUNIPER_PIC_PEER              = 0xae
+       DLT_JUNIPER_PPP                   = 0xb3
+       DLT_JUNIPER_PPPOE                 = 0xa7
+       DLT_JUNIPER_PPPOE_ATM             = 0xa8
+       DLT_JUNIPER_SERVICES              = 0x88
+       DLT_JUNIPER_ST                    = 0xc8
+       DLT_JUNIPER_VP                    = 0xb7
+       DLT_LAPB_WITH_DIR                 = 0xcf
+       DLT_LAPD                          = 0xcb
+       DLT_LIN                           = 0xd4
+       DLT_LINUX_EVDEV                   = 0xd8
+       DLT_LINUX_IRDA                    = 0x90
+       DLT_LINUX_LAPD                    = 0xb1
+       DLT_LINUX_SLL                     = 0x71
+       DLT_LOOP                          = 0x6c
+       DLT_LTALK                         = 0x72
+       DLT_MFR                           = 0xb6
+       DLT_MOST                          = 0xd3
+       DLT_MPLS                          = 0xdb
+       DLT_MTP2                          = 0x8c
+       DLT_MTP2_WITH_PHDR                = 0x8b
+       DLT_MTP3                          = 0x8d
+       DLT_NULL                          = 0x0
+       DLT_PCI_EXP                       = 0x7d
+       DLT_PFLOG                         = 0x75
+       DLT_PFSYNC                        = 0x12
+       DLT_PPI                           = 0xc0
+       DLT_PPP                           = 0x9
+       DLT_PPP_BSDOS                     = 0xe
+       DLT_PPP_ETHER                     = 0x33
+       DLT_PPP_PPPD                      = 0xa6
+       DLT_PPP_SERIAL                    = 0x32
+       DLT_PPP_WITH_DIR                  = 0xcc
+       DLT_PRISM_HEADER                  = 0x77
+       DLT_PRONET                        = 0x4
+       DLT_RAIF1                         = 0xc6
+       DLT_RAW                           = 0xc
+       DLT_RAWAF_MASK                    = 0x2240000
+       DLT_RIO                           = 0x7c
+       DLT_SCCP                          = 0x8e
+       DLT_SITA                          = 0xc4
+       DLT_SLIP                          = 0x8
+       DLT_SLIP_BSDOS                    = 0xd
+       DLT_SUNATM                        = 0x7b
+       DLT_SYMANTEC_FIREWALL             = 0x63
+       DLT_TZSP                          = 0x80
+       DLT_USB                           = 0xba
+       DLT_USB_LINUX                     = 0xbd
+       DLT_USB_LINUX_MMAPPED             = 0xdc
+       DLT_WIHART                        = 0xdf
+       DLT_X2E_SERIAL                    = 0xd5
+       DLT_X2E_XORAYA                    = 0xd6
+       DT_BLK                            = 0x6
+       DT_CHR                            = 0x2
+       DT_DIR                            = 0x4
+       DT_FIFO                           = 0x1
+       DT_LNK                            = 0xa
+       DT_REG                            = 0x8
+       DT_SOCK                           = 0xc
+       DT_UNKNOWN                        = 0x0
+       DT_WHT                            = 0xe
+       ECHO                              = 0x8
+       ECHOCTL                           = 0x40
+       ECHOE                             = 0x2
+       ECHOK                             = 0x4
+       ECHOKE                            = 0x1
+       ECHONL                            = 0x10
+       ECHOPRT                           = 0x20
+       EMUL_LINUX                        = 0x1
+       EMUL_LINUX32                      = 0x5
+       EMUL_MAXID                        = 0x6
+       EN_SW_CTL_INF                     = 0x1000
+       EN_SW_CTL_PREC                    = 0x300
+       EN_SW_CTL_ROUND                   = 0xc00
+       EN_SW_DATACHAIN                   = 0x80
+       EN_SW_DENORM                      = 0x2
+       EN_SW_INVOP                       = 0x1
+       EN_SW_OVERFLOW                    = 0x8
+       EN_SW_PRECLOSS                    = 0x20
+       EN_SW_UNDERFLOW                   = 0x10
+       EN_SW_ZERODIV                     = 0x4
+       ETHERCAP_JUMBO_MTU                = 0x4
+       ETHERCAP_VLAN_HWTAGGING           = 0x2
+       ETHERCAP_VLAN_MTU                 = 0x1
+       ETHERMIN                          = 0x2e
+       ETHERMTU                          = 0x5dc
+       ETHERMTU_JUMBO                    = 0x2328
+       ETHERTYPE_8023                    = 0x4
+       ETHERTYPE_AARP                    = 0x80f3
+       ETHERTYPE_ACCTON                  = 0x8390
+       ETHERTYPE_AEONIC                  = 0x8036
+       ETHERTYPE_ALPHA                   = 0x814a
+       ETHERTYPE_AMBER                   = 0x6008
+       ETHERTYPE_AMOEBA                  = 0x8145
+       ETHERTYPE_APOLLO                  = 0x80f7
+       ETHERTYPE_APOLLODOMAIN            = 0x8019
+       ETHERTYPE_APPLETALK               = 0x809b
+       ETHERTYPE_APPLITEK                = 0x80c7
+       ETHERTYPE_ARGONAUT                = 0x803a
+       ETHERTYPE_ARP                     = 0x806
+       ETHERTYPE_AT                      = 0x809b
+       ETHERTYPE_ATALK                   = 0x809b
+       ETHERTYPE_ATOMIC                  = 0x86df
+       ETHERTYPE_ATT                     = 0x8069
+       ETHERTYPE_ATTSTANFORD             = 0x8008
+       ETHERTYPE_AUTOPHON                = 0x806a
+       ETHERTYPE_AXIS                    = 0x8856
+       ETHERTYPE_BCLOOP                  = 0x9003
+       ETHERTYPE_BOFL                    = 0x8102
+       ETHERTYPE_CABLETRON               = 0x7034
+       ETHERTYPE_CHAOS                   = 0x804
+       ETHERTYPE_COMDESIGN               = 0x806c
+       ETHERTYPE_COMPUGRAPHIC            = 0x806d
+       ETHERTYPE_COUNTERPOINT            = 0x8062
+       ETHERTYPE_CRONUS                  = 0x8004
+       ETHERTYPE_CRONUSVLN               = 0x8003
+       ETHERTYPE_DCA                     = 0x1234
+       ETHERTYPE_DDE                     = 0x807b
+       ETHERTYPE_DEBNI                   = 0xaaaa
+       ETHERTYPE_DECAM                   = 0x8048
+       ETHERTYPE_DECCUST                 = 0x6006
+       ETHERTYPE_DECDIAG                 = 0x6005
+       ETHERTYPE_DECDNS                  = 0x803c
+       ETHERTYPE_DECDTS                  = 0x803e
+       ETHERTYPE_DECEXPER                = 0x6000
+       ETHERTYPE_DECLAST                 = 0x8041
+       ETHERTYPE_DECLTM                  = 0x803f
+       ETHERTYPE_DECMUMPS                = 0x6009
+       ETHERTYPE_DECNETBIOS              = 0x8040
+       ETHERTYPE_DELTACON                = 0x86de
+       ETHERTYPE_DIDDLE                  = 0x4321
+       ETHERTYPE_DLOG1                   = 0x660
+       ETHERTYPE_DLOG2                   = 0x661
+       ETHERTYPE_DN                      = 0x6003
+       ETHERTYPE_DOGFIGHT                = 0x1989
+       ETHERTYPE_DSMD                    = 0x8039
+       ETHERTYPE_ECMA                    = 0x803
+       ETHERTYPE_ENCRYPT                 = 0x803d
+       ETHERTYPE_ES                      = 0x805d
+       ETHERTYPE_EXCELAN                 = 0x8010
+       ETHERTYPE_EXPERDATA               = 0x8049
+       ETHERTYPE_FLIP                    = 0x8146
+       ETHERTYPE_FLOWCONTROL             = 0x8808
+       ETHERTYPE_FRARP                   = 0x808
+       ETHERTYPE_GENDYN                  = 0x8068
+       ETHERTYPE_HAYES                   = 0x8130
+       ETHERTYPE_HIPPI_FP                = 0x8180
+       ETHERTYPE_HITACHI                 = 0x8820
+       ETHERTYPE_HP                      = 0x8005
+       ETHERTYPE_IEEEPUP                 = 0xa00
+       ETHERTYPE_IEEEPUPAT               = 0xa01
+       ETHERTYPE_IMLBL                   = 0x4c42
+       ETHERTYPE_IMLBLDIAG               = 0x424c
+       ETHERTYPE_IP                      = 0x800
+       ETHERTYPE_IPAS                    = 0x876c
+       ETHERTYPE_IPV6                    = 0x86dd
+       ETHERTYPE_IPX                     = 0x8137
+       ETHERTYPE_IPXNEW                  = 0x8037
+       ETHERTYPE_KALPANA                 = 0x8582
+       ETHERTYPE_LANBRIDGE               = 0x8038
+       ETHERTYPE_LANPROBE                = 0x8888
+       ETHERTYPE_LAT                     = 0x6004
+       ETHERTYPE_LBACK                   = 0x9000
+       ETHERTYPE_LITTLE                  = 0x8060
+       ETHERTYPE_LOGICRAFT               = 0x8148
+       ETHERTYPE_LOOPBACK                = 0x9000
+       ETHERTYPE_MATRA                   = 0x807a
+       ETHERTYPE_MAX                     = 0xffff
+       ETHERTYPE_MERIT                   = 0x807c
+       ETHERTYPE_MICP                    = 0x873a
+       ETHERTYPE_MOPDL                   = 0x6001
+       ETHERTYPE_MOPRC                   = 0x6002
+       ETHERTYPE_MOTOROLA                = 0x818d
+       ETHERTYPE_MPLS                    = 0x8847
+       ETHERTYPE_MPLS_MCAST              = 0x8848
+       ETHERTYPE_MUMPS                   = 0x813f
+       ETHERTYPE_NBPCC                   = 0x3c04
+       ETHERTYPE_NBPCLAIM                = 0x3c09
+       ETHERTYPE_NBPCLREQ                = 0x3c05
+       ETHERTYPE_NBPCLRSP                = 0x3c06
+       ETHERTYPE_NBPCREQ                 = 0x3c02
+       ETHERTYPE_NBPCRSP                 = 0x3c03
+       ETHERTYPE_NBPDG                   = 0x3c07
+       ETHERTYPE_NBPDGB                  = 0x3c08
+       ETHERTYPE_NBPDLTE                 = 0x3c0a
+       ETHERTYPE_NBPRAR                  = 0x3c0c
+       ETHERTYPE_NBPRAS                  = 0x3c0b
+       ETHERTYPE_NBPRST                  = 0x3c0d
+       ETHERTYPE_NBPSCD                  = 0x3c01
+       ETHERTYPE_NBPVCD                  = 0x3c00
+       ETHERTYPE_NBS                     = 0x802
+       ETHERTYPE_NCD                     = 0x8149
+       ETHERTYPE_NESTAR                  = 0x8006
+       ETHERTYPE_NETBEUI                 = 0x8191
+       ETHERTYPE_NOVELL                  = 0x8138
+       ETHERTYPE_NS                      = 0x600
+       ETHERTYPE_NSAT                    = 0x601
+       ETHERTYPE_NSCOMPAT                = 0x807
+       ETHERTYPE_NTRAILER                = 0x10
+       ETHERTYPE_OS9                     = 0x7007
+       ETHERTYPE_OS9NET                  = 0x7009
+       ETHERTYPE_PACER                   = 0x80c6
+       ETHERTYPE_PAE                     = 0x888e
+       ETHERTYPE_PCS                     = 0x4242
+       ETHERTYPE_PLANNING                = 0x8044
+       ETHERTYPE_PPP                     = 0x880b
+       ETHERTYPE_PPPOE                   = 0x8864
+       ETHERTYPE_PPPOEDISC               = 0x8863
+       ETHERTYPE_PRIMENTS                = 0x7031
+       ETHERTYPE_PUP                     = 0x200
+       ETHERTYPE_PUPAT                   = 0x200
+       ETHERTYPE_RACAL                   = 0x7030
+       ETHERTYPE_RATIONAL                = 0x8150
+       ETHERTYPE_RAWFR                   = 0x6559
+       ETHERTYPE_RCL                     = 0x1995
+       ETHERTYPE_RDP                     = 0x8739
+       ETHERTYPE_RETIX                   = 0x80f2
+       ETHERTYPE_REVARP                  = 0x8035
+       ETHERTYPE_SCA                     = 0x6007
+       ETHERTYPE_SECTRA                  = 0x86db
+       ETHERTYPE_SECUREDATA              = 0x876d
+       ETHERTYPE_SGITW                   = 0x817e
+       ETHERTYPE_SG_BOUNCE               = 0x8016
+       ETHERTYPE_SG_DIAG                 = 0x8013
+       ETHERTYPE_SG_NETGAMES             = 0x8014
+       ETHERTYPE_SG_RESV                 = 0x8015
+       ETHERTYPE_SIMNET                  = 0x5208
+       ETHERTYPE_SLOWPROTOCOLS           = 0x8809
+       ETHERTYPE_SNA                     = 0x80d5
+       ETHERTYPE_SNMP                    = 0x814c
+       ETHERTYPE_SONIX                   = 0xfaf5
+       ETHERTYPE_SPIDER                  = 0x809f
+       ETHERTYPE_SPRITE                  = 0x500
+       ETHERTYPE_STP                     = 0x8181
+       ETHERTYPE_TALARIS                 = 0x812b
+       ETHERTYPE_TALARISMC               = 0x852b
+       ETHERTYPE_TCPCOMP                 = 0x876b
+       ETHERTYPE_TCPSM                   = 0x9002
+       ETHERTYPE_TEC                     = 0x814f
+       ETHERTYPE_TIGAN                   = 0x802f
+       ETHERTYPE_TRAIL                   = 0x1000
+       ETHERTYPE_TRANSETHER              = 0x6558
+       ETHERTYPE_TYMSHARE                = 0x802e
+       ETHERTYPE_UBBST                   = 0x7005
+       ETHERTYPE_UBDEBUG                 = 0x900
+       ETHERTYPE_UBDIAGLOOP              = 0x7002
+       ETHERTYPE_UBDL                    = 0x7000
+       ETHERTYPE_UBNIU                   = 0x7001
+       ETHERTYPE_UBNMC                   = 0x7003
+       ETHERTYPE_VALID                   = 0x1600
+       ETHERTYPE_VARIAN                  = 0x80dd
+       ETHERTYPE_VAXELN                  = 0x803b
+       ETHERTYPE_VEECO                   = 0x8067
+       ETHERTYPE_VEXP                    = 0x805b
+       ETHERTYPE_VGLAB                   = 0x8131
+       ETHERTYPE_VINES                   = 0xbad
+       ETHERTYPE_VINESECHO               = 0xbaf
+       ETHERTYPE_VINESLOOP               = 0xbae
+       ETHERTYPE_VITAL                   = 0xff00
+       ETHERTYPE_VLAN                    = 0x8100
+       ETHERTYPE_VLTLMAN                 = 0x8080
+       ETHERTYPE_VPROD                   = 0x805c
+       ETHERTYPE_VURESERVED              = 0x8147
+       ETHERTYPE_WATERLOO                = 0x8130
+       ETHERTYPE_WELLFLEET               = 0x8103
+       ETHERTYPE_X25                     = 0x805
+       ETHERTYPE_X75                     = 0x801
+       ETHERTYPE_XNSSM                   = 0x9001
+       ETHERTYPE_XTP                     = 0x817d
+       ETHER_ADDR_LEN                    = 0x6
+       ETHER_CRC_LEN                     = 0x4
+       ETHER_CRC_POLY_BE                 = 0x4c11db6
+       ETHER_CRC_POLY_LE                 = 0xedb88320
+       ETHER_HDR_LEN                     = 0xe
+       ETHER_MAX_LEN                     = 0x5ee
+       ETHER_MAX_LEN_JUMBO               = 0x233a
+       ETHER_MIN_LEN                     = 0x40
+       ETHER_PPPOE_ENCAP_LEN             = 0x8
+       ETHER_TYPE_LEN                    = 0x2
+       ETHER_VLAN_ENCAP_LEN              = 0x4
+       EVFILT_AIO                        = 0x2
+       EVFILT_PROC                       = 0x4
+       EVFILT_READ                       = 0x0
+       EVFILT_SIGNAL                     = 0x5
+       EVFILT_SYSCOUNT                   = 0x7
+       EVFILT_TIMER                      = 0x6
+       EVFILT_VNODE                      = 0x3
+       EVFILT_WRITE                      = 0x1
+       EV_ADD                            = 0x1
+       EV_CLEAR                          = 0x20
+       EV_DELETE                         = 0x2
+       EV_DISABLE                        = 0x8
+       EV_ENABLE                         = 0x4
+       EV_EOF                            = 0x8000
+       EV_ERROR                          = 0x4000
+       EV_FLAG1                          = 0x2000
+       EV_ONESHOT                        = 0x10
+       EV_SYSFLAGS                       = 0xf000
+       EXTA                              = 0x4b00
+       EXTB                              = 0x9600
+       EXTPROC                           = 0x800
+       FD_CLOEXEC                        = 0x1
+       FD_SETSIZE                        = 0x100
+       FLUSHO                            = 0x800000
+       F_CLOSEM                          = 0xa
+       F_DUPFD                           = 0x0
+       F_DUPFD_CLOEXEC                   = 0xc
+       F_FSCTL                           = -0x80000000
+       F_FSDIRMASK                       = 0x70000000
+       F_FSIN                            = 0x10000000
+       F_FSINOUT                         = 0x30000000
+       F_FSOUT                           = 0x20000000
+       F_FSPRIV                          = 0x8000
+       F_FSVOID                          = 0x40000000
+       F_GETFD                           = 0x1
+       F_GETFL                           = 0x3
+       F_GETLK                           = 0x7
+       F_GETNOSIGPIPE                    = 0xd
+       F_GETOWN                          = 0x5
+       F_MAXFD                           = 0xb
+       F_OK                              = 0x0
+       F_PARAM_MASK                      = 0xfff
+       F_PARAM_MAX                       = 0xfff
+       F_RDLCK                           = 0x1
+       F_SETFD                           = 0x2
+       F_SETFL                           = 0x4
+       F_SETLK                           = 0x8
+       F_SETLKW                          = 0x9
+       F_SETNOSIGPIPE                    = 0xe
+       F_SETOWN                          = 0x6
+       F_UNLCK                           = 0x2
+       F_WRLCK                           = 0x3
+       HUPCL                             = 0x4000
+       ICANON                            = 0x100
+       ICMP6_FILTER                      = 0x12
+       ICRNL                             = 0x100
+       IEXTEN                            = 0x400
+       IFAN_ARRIVAL                      = 0x0
+       IFAN_DEPARTURE                    = 0x1
+       IFA_ROUTE                         = 0x1
+       IFF_ALLMULTI                      = 0x200
+       IFF_BROADCAST                     = 0x2
+       IFF_CANTCHANGE                    = 0x8f52
+       IFF_DEBUG                         = 0x4
+       IFF_LINK0                         = 0x1000
+       IFF_LINK1                         = 0x2000
+       IFF_LINK2                         = 0x4000
+       IFF_LOOPBACK                      = 0x8
+       IFF_MULTICAST                     = 0x8000
+       IFF_NOARP                         = 0x80
+       IFF_NOTRAILERS                    = 0x20
+       IFF_OACTIVE                       = 0x400
+       IFF_POINTOPOINT                   = 0x10
+       IFF_PROMISC                       = 0x100
+       IFF_RUNNING                       = 0x40
+       IFF_SIMPLEX                       = 0x800
+       IFF_UP                            = 0x1
+       IFNAMSIZ                          = 0x10
+       IFT_1822                          = 0x2
+       IFT_A12MPPSWITCH                  = 0x82
+       IFT_AAL2                          = 0xbb
+       IFT_AAL5                          = 0x31
+       IFT_ADSL                          = 0x5e
+       IFT_AFLANE8023                    = 0x3b
+       IFT_AFLANE8025                    = 0x3c
+       IFT_ARAP                          = 0x58
+       IFT_ARCNET                        = 0x23
+       IFT_ARCNETPLUS                    = 0x24
+       IFT_ASYNC                         = 0x54
+       IFT_ATM                           = 0x25
+       IFT_ATMDXI                        = 0x69
+       IFT_ATMFUNI                       = 0x6a
+       IFT_ATMIMA                        = 0x6b
+       IFT_ATMLOGICAL                    = 0x50
+       IFT_ATMRADIO                      = 0xbd
+       IFT_ATMSUBINTERFACE               = 0x86
+       IFT_ATMVCIENDPT                   = 0xc2
+       IFT_ATMVIRTUAL                    = 0x95
+       IFT_BGPPOLICYACCOUNTING           = 0xa2
+       IFT_BRIDGE                        = 0xd1
+       IFT_BSC                           = 0x53
+       IFT_CARP                          = 0xf8
+       IFT_CCTEMUL                       = 0x3d
+       IFT_CEPT                          = 0x13
+       IFT_CES                           = 0x85
+       IFT_CHANNEL                       = 0x46
+       IFT_CNR                           = 0x55
+       IFT_COFFEE                        = 0x84
+       IFT_COMPOSITELINK                 = 0x9b
+       IFT_DCN                           = 0x8d
+       IFT_DIGITALPOWERLINE              = 0x8a
+       IFT_DIGITALWRAPPEROVERHEADCHANNEL = 0xba
+       IFT_DLSW                          = 0x4a
+       IFT_DOCSCABLEDOWNSTREAM           = 0x80
+       IFT_DOCSCABLEMACLAYER             = 0x7f
+       IFT_DOCSCABLEUPSTREAM             = 0x81
+       IFT_DOCSCABLEUPSTREAMCHANNEL      = 0xcd
+       IFT_DS0                           = 0x51
+       IFT_DS0BUNDLE                     = 0x52
+       IFT_DS1FDL                        = 0xaa
+       IFT_DS3                           = 0x1e
+       IFT_DTM                           = 0x8c
+       IFT_DVBASILN                      = 0xac
+       IFT_DVBASIOUT                     = 0xad
+       IFT_DVBRCCDOWNSTREAM              = 0x93
+       IFT_DVBRCCMACLAYER                = 0x92
+       IFT_DVBRCCUPSTREAM                = 0x94
+       IFT_ECONET                        = 0xce
+       IFT_EON                           = 0x19
+       IFT_EPLRS                         = 0x57
+       IFT_ESCON                         = 0x49
+       IFT_ETHER                         = 0x6
+       IFT_FAITH                         = 0xf2
+       IFT_FAST                          = 0x7d
+       IFT_FASTETHER                     = 0x3e
+       IFT_FASTETHERFX                   = 0x45
+       IFT_FDDI                          = 0xf
+       IFT_FIBRECHANNEL                  = 0x38
+       IFT_FRAMERELAYINTERCONNECT        = 0x3a
+       IFT_FRAMERELAYMPI                 = 0x5c
+       IFT_FRDLCIENDPT                   = 0xc1
+       IFT_FRELAY                        = 0x20
+       IFT_FRELAYDCE                     = 0x2c
+       IFT_FRF16MFRBUNDLE                = 0xa3
+       IFT_FRFORWARD                     = 0x9e
+       IFT_G703AT2MB                     = 0x43
+       IFT_G703AT64K                     = 0x42
+       IFT_GIF                           = 0xf0
+       IFT_GIGABITETHERNET               = 0x75
+       IFT_GR303IDT                      = 0xb2
+       IFT_GR303RDT                      = 0xb1
+       IFT_H323GATEKEEPER                = 0xa4
+       IFT_H323PROXY                     = 0xa5
+       IFT_HDH1822                       = 0x3
+       IFT_HDLC                          = 0x76
+       IFT_HDSL2                         = 0xa8
+       IFT_HIPERLAN2                     = 0xb7
+       IFT_HIPPI                         = 0x2f
+       IFT_HIPPIINTERFACE                = 0x39
+       IFT_HOSTPAD                       = 0x5a
+       IFT_HSSI                          = 0x2e
+       IFT_HY                            = 0xe
+       IFT_IBM370PARCHAN                 = 0x48
+       IFT_IDSL                          = 0x9a
+       IFT_IEEE1394                      = 0x90
+       IFT_IEEE80211                     = 0x47
+       IFT_IEEE80212                     = 0x37
+       IFT_IEEE8023ADLAG                 = 0xa1
+       IFT_IFGSN                         = 0x91
+       IFT_IMT                           = 0xbe
+       IFT_INFINIBAND                    = 0xc7
+       IFT_INTERLEAVE                    = 0x7c
+       IFT_IP                            = 0x7e
+       IFT_IPFORWARD                     = 0x8e
+       IFT_IPOVERATM                     = 0x72
+       IFT_IPOVERCDLC                    = 0x6d
+       IFT_IPOVERCLAW                    = 0x6e
+       IFT_IPSWITCH                      = 0x4e
+       IFT_ISDN                          = 0x3f
+       IFT_ISDNBASIC                     = 0x14
+       IFT_ISDNPRIMARY                   = 0x15
+       IFT_ISDNS                         = 0x4b
+       IFT_ISDNU                         = 0x4c
+       IFT_ISO88022LLC                   = 0x29
+       IFT_ISO88023                      = 0x7
+       IFT_ISO88024                      = 0x8
+       IFT_ISO88025                      = 0x9
+       IFT_ISO88025CRFPINT               = 0x62
+       IFT_ISO88025DTR                   = 0x56
+       IFT_ISO88025FIBER                 = 0x73
+       IFT_ISO88026                      = 0xa
+       IFT_ISUP                          = 0xb3
+       IFT_L2VLAN                        = 0x87
+       IFT_L3IPVLAN                      = 0x88
+       IFT_L3IPXVLAN                     = 0x89
+       IFT_LAPB                          = 0x10
+       IFT_LAPD                          = 0x4d
+       IFT_LAPF                          = 0x77
+       IFT_LINEGROUP                     = 0xd2
+       IFT_LOCALTALK                     = 0x2a
+       IFT_LOOP                          = 0x18
+       IFT_MEDIAMAILOVERIP               = 0x8b
+       IFT_MFSIGLINK                     = 0xa7
+       IFT_MIOX25                        = 0x26
+       IFT_MODEM                         = 0x30
+       IFT_MPC                           = 0x71
+       IFT_MPLS                          = 0xa6
+       IFT_MPLSTUNNEL                    = 0x96
+       IFT_MSDSL                         = 0x8f
+       IFT_MVL                           = 0xbf
+       IFT_MYRINET                       = 0x63
+       IFT_NFAS                          = 0xaf
+       IFT_NSIP                          = 0x1b
+       IFT_OPTICALCHANNEL                = 0xc3
+       IFT_OPTICALTRANSPORT              = 0xc4
+       IFT_OTHER                         = 0x1
+       IFT_P10                           = 0xc
+       IFT_P80                           = 0xd
+       IFT_PARA                          = 0x22
+       IFT_PFLOG                         = 0xf5
+       IFT_PFSYNC                        = 0xf6
+       IFT_PLC                           = 0xae
+       IFT_PON155                        = 0xcf
+       IFT_PON622                        = 0xd0
+       IFT_POS                           = 0xab
+       IFT_PPP                           = 0x17
+       IFT_PPPMULTILINKBUNDLE            = 0x6c
+       IFT_PROPATM                       = 0xc5
+       IFT_PROPBWAP2MP                   = 0xb8
+       IFT_PROPCNLS                      = 0x59
+       IFT_PROPDOCSWIRELESSDOWNSTREAM    = 0xb5
+       IFT_PROPDOCSWIRELESSMACLAYER      = 0xb4
+       IFT_PROPDOCSWIRELESSUPSTREAM      = 0xb6
+       IFT_PROPMUX                       = 0x36
+       IFT_PROPVIRTUAL                   = 0x35
+       IFT_PROPWIRELESSP2P               = 0x9d
+       IFT_PTPSERIAL                     = 0x16
+       IFT_PVC                           = 0xf1
+       IFT_Q2931                         = 0xc9
+       IFT_QLLC                          = 0x44
+       IFT_RADIOMAC                      = 0xbc
+       IFT_RADSL                         = 0x5f
+       IFT_REACHDSL                      = 0xc0
+       IFT_RFC1483                       = 0x9f
+       IFT_RS232                         = 0x21
+       IFT_RSRB                          = 0x4f
+       IFT_SDLC                          = 0x11
+       IFT_SDSL                          = 0x60
+       IFT_SHDSL                         = 0xa9
+       IFT_SIP                           = 0x1f
+       IFT_SIPSIG                        = 0xcc
+       IFT_SIPTG                         = 0xcb
+       IFT_SLIP                          = 0x1c
+       IFT_SMDSDXI                       = 0x2b
+       IFT_SMDSICIP                      = 0x34
+       IFT_SONET                         = 0x27
+       IFT_SONETOVERHEADCHANNEL          = 0xb9
+       IFT_SONETPATH                     = 0x32
+       IFT_SONETVT                       = 0x33
+       IFT_SRP                           = 0x97
+       IFT_SS7SIGLINK                    = 0x9c
+       IFT_STACKTOSTACK                  = 0x6f
+       IFT_STARLAN                       = 0xb
+       IFT_STF                           = 0xd7
+       IFT_T1                            = 0x12
+       IFT_TDLC                          = 0x74
+       IFT_TELINK                        = 0xc8
+       IFT_TERMPAD                       = 0x5b
+       IFT_TR008                         = 0xb0
+       IFT_TRANSPHDLC                    = 0x7b
+       IFT_TUNNEL                        = 0x83
+       IFT_ULTRA                         = 0x1d
+       IFT_USB                           = 0xa0
+       IFT_V11                           = 0x40
+       IFT_V35                           = 0x2d
+       IFT_V36                           = 0x41
+       IFT_V37                           = 0x78
+       IFT_VDSL                          = 0x61
+       IFT_VIRTUALIPADDRESS              = 0x70
+       IFT_VIRTUALTG                     = 0xca
+       IFT_VOICEDID                      = 0xd5
+       IFT_VOICEEM                       = 0x64
+       IFT_VOICEEMFGD                    = 0xd3
+       IFT_VOICEENCAP                    = 0x67
+       IFT_VOICEFGDEANA                  = 0xd4
+       IFT_VOICEFXO                      = 0x65
+       IFT_VOICEFXS                      = 0x66
+       IFT_VOICEOVERATM                  = 0x98
+       IFT_VOICEOVERCABLE                = 0xc6
+       IFT_VOICEOVERFRAMERELAY           = 0x99
+       IFT_VOICEOVERIP                   = 0x68
+       IFT_X213                          = 0x5d
+       IFT_X25                           = 0x5
+       IFT_X25DDN                        = 0x4
+       IFT_X25HUNTGROUP                  = 0x7a
+       IFT_X25MLP                        = 0x79
+       IFT_X25PLE                        = 0x28
+       IFT_XETHER                        = 0x1a
+       IGNBRK                            = 0x1
+       IGNCR                             = 0x80
+       IGNPAR                            = 0x4
+       IMAXBEL                           = 0x2000
+       INLCR                             = 0x40
+       INPCK                             = 0x10
+       IN_CLASSA_HOST                    = 0xffffff
+       IN_CLASSA_MAX                     = 0x80
+       IN_CLASSA_NET                     = 0xff000000
+       IN_CLASSA_NSHIFT                  = 0x18
+       IN_CLASSB_HOST                    = 0xffff
+       IN_CLASSB_MAX                     = 0x10000
+       IN_CLASSB_NET                     = 0xffff0000
+       IN_CLASSB_NSHIFT                  = 0x10
+       IN_CLASSC_HOST                    = 0xff
+       IN_CLASSC_NET                     = 0xffffff00
+       IN_CLASSC_NSHIFT                  = 0x8
+       IN_CLASSD_HOST                    = 0xfffffff
+       IN_CLASSD_NET                     = 0xf0000000
+       IN_CLASSD_NSHIFT                  = 0x1c
+       IN_LOOPBACKNET                    = 0x7f
+       IPPROTO_AH                        = 0x33
+       IPPROTO_CARP                      = 0x70
+       IPPROTO_DONE                      = 0x101
+       IPPROTO_DSTOPTS                   = 0x3c
+       IPPROTO_EGP                       = 0x8
+       IPPROTO_ENCAP                     = 0x62
+       IPPROTO_EON                       = 0x50
+       IPPROTO_ESP                       = 0x32
+       IPPROTO_ETHERIP                   = 0x61
+       IPPROTO_FRAGMENT                  = 0x2c
+       IPPROTO_GGP                       = 0x3
+       IPPROTO_GRE                       = 0x2f
+       IPPROTO_HOPOPTS                   = 0x0
+       IPPROTO_ICMP                      = 0x1
+       IPPROTO_ICMPV6                    = 0x3a
+       IPPROTO_IDP                       = 0x16
+       IPPROTO_IGMP                      = 0x2
+       IPPROTO_IP                        = 0x0
+       IPPROTO_IPCOMP                    = 0x6c
+       IPPROTO_IPIP                      = 0x4
+       IPPROTO_IPV4                      = 0x4
+       IPPROTO_IPV6                      = 0x29
+       IPPROTO_IPV6_ICMP                 = 0x3a
+       IPPROTO_MAX                       = 0x100
+       IPPROTO_MAXID                     = 0x34
+       IPPROTO_MOBILE                    = 0x37
+       IPPROTO_NONE                      = 0x3b
+       IPPROTO_PFSYNC                    = 0xf0
+       IPPROTO_PIM                       = 0x67
+       IPPROTO_PUP                       = 0xc
+       IPPROTO_RAW                       = 0xff
+       IPPROTO_ROUTING                   = 0x2b
+       IPPROTO_RSVP                      = 0x2e
+       IPPROTO_TCP                       = 0x6
+       IPPROTO_TP                        = 0x1d
+       IPPROTO_UDP                       = 0x11
+       IPPROTO_VRRP                      = 0x70
+       IPV6_CHECKSUM                     = 0x1a
+       IPV6_DEFAULT_MULTICAST_HOPS       = 0x1
+       IPV6_DEFAULT_MULTICAST_LOOP       = 0x1
+       IPV6_DEFHLIM                      = 0x40
+       IPV6_DONTFRAG                     = 0x3e
+       IPV6_DSTOPTS                      = 0x32
+       IPV6_FAITH                        = 0x1d
+       IPV6_FLOWINFO_MASK                = 0xffffff0f
+       IPV6_FLOWLABEL_MASK               = 0xffff0f00
+       IPV6_FRAGTTL                      = 0x78
+       IPV6_HLIMDEC                      = 0x1
+       IPV6_HOPLIMIT                     = 0x2f
+       IPV6_HOPOPTS                      = 0x31
+       IPV6_IPSEC_POLICY                 = 0x1c
+       IPV6_JOIN_GROUP                   = 0xc
+       IPV6_LEAVE_GROUP                  = 0xd
+       IPV6_MAXHLIM                      = 0xff
+       IPV6_MAXPACKET                    = 0xffff
+       IPV6_MMTU                         = 0x500
+       IPV6_MULTICAST_HOPS               = 0xa
+       IPV6_MULTICAST_IF                 = 0x9
+       IPV6_MULTICAST_LOOP               = 0xb
+       IPV6_NEXTHOP                      = 0x30
+       IPV6_PATHMTU                      = 0x2c
+       IPV6_PKTINFO                      = 0x2e
+       IPV6_PORTRANGE                    = 0xe
+       IPV6_PORTRANGE_DEFAULT            = 0x0
+       IPV6_PORTRANGE_HIGH               = 0x1
+       IPV6_PORTRANGE_LOW                = 0x2
+       IPV6_RECVDSTOPTS                  = 0x28
+       IPV6_RECVHOPLIMIT                 = 0x25
+       IPV6_RECVHOPOPTS                  = 0x27
+       IPV6_RECVPATHMTU                  = 0x2b
+       IPV6_RECVPKTINFO                  = 0x24
+       IPV6_RECVRTHDR                    = 0x26
+       IPV6_RECVTCLASS                   = 0x39
+       IPV6_RTHDR                        = 0x33
+       IPV6_RTHDRDSTOPTS                 = 0x23
+       IPV6_RTHDR_LOOSE                  = 0x0
+       IPV6_RTHDR_STRICT                 = 0x1
+       IPV6_RTHDR_TYPE_0                 = 0x0
+       IPV6_SOCKOPT_RESERVED1            = 0x3
+       IPV6_TCLASS                       = 0x3d
+       IPV6_UNICAST_HOPS                 = 0x4
+       IPV6_USE_MIN_MTU                  = 0x2a
+       IPV6_V6ONLY                       = 0x1b
+       IPV6_VERSION                      = 0x60
+       IPV6_VERSION_MASK                 = 0xf0
+       IP_ADD_MEMBERSHIP                 = 0xc
+       IP_DEFAULT_MULTICAST_LOOP         = 0x1
+       IP_DEFAULT_MULTICAST_TTL          = 0x1
+       IP_DF                             = 0x4000
+       IP_DROP_MEMBERSHIP                = 0xd
+       IP_EF                             = 0x8000
+       IP_ERRORMTU                       = 0x15
+       IP_HDRINCL                        = 0x2
+       IP_IPSEC_POLICY                   = 0x16
+       IP_MAXPACKET                      = 0xffff
+       IP_MAX_MEMBERSHIPS                = 0x14
+       IP_MF                             = 0x2000
+       IP_MINFRAGSIZE                    = 0x45
+       IP_MINTTL                         = 0x18
+       IP_MSS                            = 0x240
+       IP_MULTICAST_IF                   = 0x9
+       IP_MULTICAST_LOOP                 = 0xb
+       IP_MULTICAST_TTL                  = 0xa
+       IP_OFFMASK                        = 0x1fff
+       IP_OPTIONS                        = 0x1
+       IP_PORTRANGE                      = 0x13
+       IP_PORTRANGE_DEFAULT              = 0x0
+       IP_PORTRANGE_HIGH                 = 0x1
+       IP_PORTRANGE_LOW                  = 0x2
+       IP_RECVDSTADDR                    = 0x7
+       IP_RECVIF                         = 0x14
+       IP_RECVOPTS                       = 0x5
+       IP_RECVRETOPTS                    = 0x6
+       IP_RECVTTL                        = 0x17
+       IP_RETOPTS                        = 0x8
+       IP_RF                             = 0x8000
+       IP_TOS                            = 0x3
+       IP_TTL                            = 0x4
+       ISIG                              = 0x80
+       ISTRIP                            = 0x20
+       IXANY                             = 0x800
+       IXOFF                             = 0x400
+       IXON                              = 0x200
+       LOCK_EX                           = 0x2
+       LOCK_NB                           = 0x4
+       LOCK_SH                           = 0x1
+       LOCK_UN                           = 0x8
+       MADV_DONTNEED                     = 0x4
+       MADV_FREE                         = 0x6
+       MADV_NORMAL                       = 0x0
+       MADV_RANDOM                       = 0x1
+       MADV_SEQUENTIAL                   = 0x2
+       MADV_SPACEAVAIL                   = 0x5
+       MADV_WILLNEED                     = 0x3
+       MAP_ALIGNMENT_16MB                = 0x18000000
+       MAP_ALIGNMENT_1TB                 = 0x28000000
+       MAP_ALIGNMENT_256TB               = 0x30000000
+       MAP_ALIGNMENT_4GB                 = 0x20000000
+       MAP_ALIGNMENT_64KB                = 0x10000000
+       MAP_ALIGNMENT_64PB                = 0x38000000
+       MAP_ALIGNMENT_MASK                = -0x1000000
+       MAP_ALIGNMENT_SHIFT               = 0x18
+       MAP_ANON                          = 0x1000
+       MAP_FILE                          = 0x0
+       MAP_FIXED                         = 0x10
+       MAP_HASSEMAPHORE                  = 0x200
+       MAP_INHERIT                       = 0x80
+       MAP_INHERIT_COPY                  = 0x1
+       MAP_INHERIT_DEFAULT               = 0x1
+       MAP_INHERIT_DONATE_COPY           = 0x3
+       MAP_INHERIT_NONE                  = 0x2
+       MAP_INHERIT_SHARE                 = 0x0
+       MAP_NORESERVE                     = 0x40
+       MAP_PRIVATE                       = 0x2
+       MAP_RENAME                        = 0x20
+       MAP_SHARED                        = 0x1
+       MAP_STACK                         = 0x2000
+       MAP_TRYFIXED                      = 0x400
+       MAP_WIRED                         = 0x800
+       MCL_CURRENT                       = 0x1
+       MCL_FUTURE                        = 0x2
+       MSG_BCAST                         = 0x100
+       MSG_CMSG_CLOEXEC                  = 0x800
+       MSG_CONTROLMBUF                   = 0x2000000
+       MSG_CTRUNC                        = 0x20
+       MSG_DONTROUTE                     = 0x4
+       MSG_DONTWAIT                      = 0x80
+       MSG_EOR                           = 0x8
+       MSG_IOVUSRSPACE                   = 0x4000000
+       MSG_LENUSRSPACE                   = 0x8000000
+       MSG_MCAST                         = 0x200
+       MSG_NAMEMBUF                      = 0x1000000
+       MSG_NBIO                          = 0x1000
+       MSG_NOSIGNAL                      = 0x400
+       MSG_OOB                           = 0x1
+       MSG_PEEK                          = 0x2
+       MSG_TRUNC                         = 0x10
+       MSG_USERFLAGS                     = 0xffffff
+       MSG_WAITALL                       = 0x40
+       MS_ASYNC                          = 0x1
+       MS_INVALIDATE                     = 0x2
+       MS_SYNC                           = 0x4
+       NAME_MAX                          = 0x1ff
+       NET_RT_DUMP                       = 0x1
+       NET_RT_FLAGS                      = 0x2
+       NET_RT_IFLIST                     = 0x5
+       NET_RT_MAXID                      = 0x6
+       NET_RT_OIFLIST                    = 0x4
+       NET_RT_OOIFLIST                   = 0x3
+       NOFLSH                            = 0x80000000
+       NOTE_ATTRIB                       = 0x8
+       NOTE_CHILD                        = 0x4
+       NOTE_DELETE                       = 0x1
+       NOTE_EXEC                         = 0x20000000
+       NOTE_EXIT                         = 0x80000000
+       NOTE_EXTEND                       = 0x4
+       NOTE_FORK                         = 0x40000000
+       NOTE_LINK                         = 0x10
+       NOTE_LOWAT                        = 0x1
+       NOTE_PCTRLMASK                    = 0xf0000000
+       NOTE_PDATAMASK                    = 0xfffff
+       NOTE_RENAME                       = 0x20
+       NOTE_REVOKE                       = 0x40
+       NOTE_TRACK                        = 0x1
+       NOTE_TRACKERR                     = 0x2
+       NOTE_WRITE                        = 0x2
+       OCRNL                             = 0x10
+       OFIOGETBMAP                       = 0xc004667a
+       ONLCR                             = 0x2
+       ONLRET                            = 0x40
+       ONOCR                             = 0x20
+       ONOEOT                            = 0x8
+       OPOST                             = 0x1
+       O_ACCMODE                         = 0x3
+       O_ALT_IO                          = 0x40000
+       O_APPEND                          = 0x8
+       O_ASYNC                           = 0x40
+       O_CLOEXEC                         = 0x400000
+       O_CREAT                           = 0x200
+       O_DIRECT                          = 0x80000
+       O_DIRECTORY                       = 0x200000
+       O_DSYNC                           = 0x10000
+       O_EXCL                            = 0x800
+       O_EXLOCK                          = 0x20
+       O_FSYNC                           = 0x80
+       O_NDELAY                          = 0x4
+       O_NOCTTY                          = 0x8000
+       O_NOFOLLOW                        = 0x100
+       O_NONBLOCK                        = 0x4
+       O_NOSIGPIPE                       = 0x1000000
+       O_RDONLY                          = 0x0
+       O_RDWR                            = 0x2
+       O_RSYNC                           = 0x20000
+       O_SHLOCK                          = 0x10
+       O_SYNC                            = 0x80
+       O_TRUNC                           = 0x400
+       O_WRONLY                          = 0x1
+       PARENB                            = 0x1000
+       PARMRK                            = 0x8
+       PARODD                            = 0x2000
+       PENDIN                            = 0x20000000
+       PRIO_PGRP                         = 0x1
+       PRIO_PROCESS                      = 0x0
+       PRIO_USER                         = 0x2
+       PRI_IOFLUSH                       = 0x7c
+       PROT_EXEC                         = 0x4
+       PROT_NONE                         = 0x0
+       PROT_READ                         = 0x1
+       PROT_WRITE                        = 0x2
+       RLIMIT_AS                         = 0xa
+       RLIMIT_CORE                       = 0x4
+       RLIMIT_CPU                        = 0x0
+       RLIMIT_DATA                       = 0x2
+       RLIMIT_FSIZE                      = 0x1
+       RLIMIT_NOFILE                     = 0x8
+       RLIMIT_STACK                      = 0x3
+       RLIM_INFINITY                     = 0x7fffffffffffffff
+       RTAX_AUTHOR                       = 0x6
+       RTAX_BRD                          = 0x7
+       RTAX_DST                          = 0x0
+       RTAX_GATEWAY                      = 0x1
+       RTAX_GENMASK                      = 0x3
+       RTAX_IFA                          = 0x5
+       RTAX_IFP                          = 0x4
+       RTAX_MAX                          = 0x9
+       RTAX_NETMASK                      = 0x2
+       RTAX_TAG                          = 0x8
+       RTA_AUTHOR                        = 0x40
+       RTA_BRD                           = 0x80
+       RTA_DST                           = 0x1
+       RTA_GATEWAY                       = 0x2
+       RTA_GENMASK                       = 0x8
+       RTA_IFA                           = 0x20
+       RTA_IFP                           = 0x10
+       RTA_NETMASK                       = 0x4
+       RTA_TAG                           = 0x100
+       RTF_ANNOUNCE                      = 0x20000
+       RTF_BLACKHOLE                     = 0x1000
+       RTF_CLONED                        = 0x2000
+       RTF_CLONING                       = 0x100
+       RTF_DONE                          = 0x40
+       RTF_DYNAMIC                       = 0x10
+       RTF_GATEWAY                       = 0x2
+       RTF_HOST                          = 0x4
+       RTF_LLINFO                        = 0x400
+       RTF_MASK                          = 0x80
+       RTF_MODIFIED                      = 0x20
+       RTF_PROTO1                        = 0x8000
+       RTF_PROTO2                        = 0x4000
+       RTF_REJECT                        = 0x8
+       RTF_SRC                           = 0x10000
+       RTF_STATIC                        = 0x800
+       RTF_UP                            = 0x1
+       RTF_XRESOLVE                      = 0x200
+       RTM_ADD                           = 0x1
+       RTM_CHANGE                        = 0x3
+       RTM_CHGADDR                       = 0x15
+       RTM_DELADDR                       = 0xd
+       RTM_DELETE                        = 0x2
+       RTM_GET                           = 0x4
+       RTM_IEEE80211                     = 0x11
+       RTM_IFANNOUNCE                    = 0x10
+       RTM_IFINFO                        = 0x14
+       RTM_LLINFO_UPD                    = 0x13
+       RTM_LOCK                          = 0x8
+       RTM_LOSING                        = 0x5
+       RTM_MISS                          = 0x7
+       RTM_NEWADDR                       = 0xc
+       RTM_OIFINFO                       = 0xf
+       RTM_OLDADD                        = 0x9
+       RTM_OLDDEL                        = 0xa
+       RTM_OOIFINFO                      = 0xe
+       RTM_REDIRECT                      = 0x6
+       RTM_RESOLVE                       = 0xb
+       RTM_RTTUNIT                       = 0xf4240
+       RTM_SETGATE                       = 0x12
+       RTM_VERSION                       = 0x4
+       RTV_EXPIRE                        = 0x4
+       RTV_HOPCOUNT                      = 0x2
+       RTV_MTU                           = 0x1
+       RTV_RPIPE                         = 0x8
+       RTV_RTT                           = 0x40
+       RTV_RTTVAR                        = 0x80
+       RTV_SPIPE                         = 0x10
+       RTV_SSTHRESH                      = 0x20
+       RUSAGE_CHILDREN                   = -0x1
+       RUSAGE_SELF                       = 0x0
+       SCM_CREDS                         = 0x4
+       SCM_RIGHTS                        = 0x1
+       SCM_TIMESTAMP                     = 0x8
+       SHUT_RD                           = 0x0
+       SHUT_RDWR                         = 0x2
+       SHUT_WR                           = 0x1
+       SIOCADDMULTI                      = 0x80906931
+       SIOCADDRT                         = 0x8030720a
+       SIOCAIFADDR                       = 0x8040691a
+       SIOCALIFADDR                      = 0x8118691c
+       SIOCATMARK                        = 0x40047307
+       SIOCDELMULTI                      = 0x80906932
+       SIOCDELRT                         = 0x8030720b
+       SIOCDIFADDR                       = 0x80906919
+       SIOCDIFPHYADDR                    = 0x80906949
+       SIOCDLIFADDR                      = 0x8118691e
+       SIOCGDRVSPEC                      = 0xc01c697b
+       SIOCGETPFSYNC                     = 0xc09069f8
+       SIOCGETSGCNT                      = 0xc0147534
+       SIOCGETVIFCNT                     = 0xc0147533
+       SIOCGHIWAT                        = 0x40047301
+       SIOCGIFADDR                       = 0xc0906921
+       SIOCGIFADDRPREF                   = 0xc0946920
+       SIOCGIFALIAS                      = 0xc040691b
+       SIOCGIFBRDADDR                    = 0xc0906923
+       SIOCGIFCAP                        = 0xc0206976
+       SIOCGIFCONF                       = 0xc0086926
+       SIOCGIFDATA                       = 0xc0946985
+       SIOCGIFDLT                        = 0xc0906977
+       SIOCGIFDSTADDR                    = 0xc0906922
+       SIOCGIFFLAGS                      = 0xc0906911
+       SIOCGIFGENERIC                    = 0xc090693a
+       SIOCGIFMEDIA                      = 0xc0286936
+       SIOCGIFMETRIC                     = 0xc0906917
+       SIOCGIFMTU                        = 0xc090697e
+       SIOCGIFNETMASK                    = 0xc0906925
+       SIOCGIFPDSTADDR                   = 0xc0906948
+       SIOCGIFPSRCADDR                   = 0xc0906947
+       SIOCGLIFADDR                      = 0xc118691d
+       SIOCGLIFPHYADDR                   = 0xc118694b
+       SIOCGLINKSTR                      = 0xc01c6987
+       SIOCGLOWAT                        = 0x40047303
+       SIOCGPGRP                         = 0x40047309
+       SIOCGVH                           = 0xc0906983
+       SIOCIFCREATE                      = 0x8090697a
+       SIOCIFDESTROY                     = 0x80906979
+       SIOCIFGCLONERS                    = 0xc00c6978
+       SIOCINITIFADDR                    = 0xc0446984
+       SIOCSDRVSPEC                      = 0x801c697b
+       SIOCSETPFSYNC                     = 0x809069f7
+       SIOCSHIWAT                        = 0x80047300
+       SIOCSIFADDR                       = 0x8090690c
+       SIOCSIFADDRPREF                   = 0x8094691f
+       SIOCSIFBRDADDR                    = 0x80906913
+       SIOCSIFCAP                        = 0x80206975
+       SIOCSIFDSTADDR                    = 0x8090690e
+       SIOCSIFFLAGS                      = 0x80906910
+       SIOCSIFGENERIC                    = 0x80906939
+       SIOCSIFMEDIA                      = 0xc0906935
+       SIOCSIFMETRIC                     = 0x80906918
+       SIOCSIFMTU                        = 0x8090697f
+       SIOCSIFNETMASK                    = 0x80906916
+       SIOCSIFPHYADDR                    = 0x80406946
+       SIOCSLIFPHYADDR                   = 0x8118694a
+       SIOCSLINKSTR                      = 0x801c6988
+       SIOCSLOWAT                        = 0x80047302
+       SIOCSPGRP                         = 0x80047308
+       SIOCSVH                           = 0xc0906982
+       SIOCZIFDATA                       = 0xc0946986
+       SOCK_CLOEXEC                      = 0x10000000
+       SOCK_DGRAM                        = 0x2
+       SOCK_FLAGS_MASK                   = 0xf0000000
+       SOCK_NONBLOCK                     = 0x20000000
+       SOCK_NOSIGPIPE                    = 0x40000000
+       SOCK_RAW                          = 0x3
+       SOCK_RDM                          = 0x4
+       SOCK_SEQPACKET                    = 0x5
+       SOCK_STREAM                       = 0x1
+       SOL_SOCKET                        = 0xffff
+       SOMAXCONN                         = 0x80
+       SO_ACCEPTCONN                     = 0x2
+       SO_ACCEPTFILTER                   = 0x1000
+       SO_BROADCAST                      = 0x20
+       SO_DEBUG                          = 0x1
+       SO_DONTROUTE                      = 0x10
+       SO_ERROR                          = 0x1007
+       SO_KEEPALIVE                      = 0x8
+       SO_LINGER                         = 0x80
+       SO_NOHEADER                       = 0x100a
+       SO_NOSIGPIPE                      = 0x800
+       SO_OOBINLINE                      = 0x100
+       SO_OVERFLOWED                     = 0x1009
+       SO_RCVBUF                         = 0x1002
+       SO_RCVLOWAT                       = 0x1004
+       SO_RCVTIMEO                       = 0x100c
+       SO_REUSEADDR                      = 0x4
+       SO_REUSEPORT                      = 0x200
+       SO_SNDBUF                         = 0x1001
+       SO_SNDLOWAT                       = 0x1003
+       SO_SNDTIMEO                       = 0x100b
+       SO_TIMESTAMP                      = 0x2000
+       SO_TYPE                           = 0x1008
+       SO_USELOOPBACK                    = 0x40
+       SYSCTL_VERSION                    = 0x1000000
+       SYSCTL_VERS_0                     = 0x0
+       SYSCTL_VERS_1                     = 0x1000000
+       SYSCTL_VERS_MASK                  = 0xff000000
+       S_ARCH1                           = 0x10000
+       S_ARCH2                           = 0x20000
+       S_BLKSIZE                         = 0x200
+       S_IEXEC                           = 0x40
+       S_IFBLK                           = 0x6000
+       S_IFCHR                           = 0x2000
+       S_IFDIR                           = 0x4000
+       S_IFIFO                           = 0x1000
+       S_IFLNK                           = 0xa000
+       S_IFMT                            = 0xf000
+       S_IFREG                           = 0x8000
+       S_IFSOCK                          = 0xc000
+       S_IFWHT                           = 0xe000
+       S_IREAD                           = 0x100
+       S_IRGRP                           = 0x20
+       S_IROTH                           = 0x4
+       S_IRUSR                           = 0x100
+       S_IRWXG                           = 0x38
+       S_IRWXO                           = 0x7
+       S_IRWXU                           = 0x1c0
+       S_ISGID                           = 0x400
+       S_ISTXT                           = 0x200
+       S_ISUID                           = 0x800
+       S_ISVTX                           = 0x200
+       S_IWGRP                           = 0x10
+       S_IWOTH                           = 0x2
+       S_IWRITE                          = 0x80
+       S_IWUSR                           = 0x80
+       S_IXGRP                           = 0x8
+       S_IXOTH                           = 0x1
+       S_IXUSR                           = 0x40
+       S_LOGIN_SET                       = 0x1
+       TCIFLUSH                          = 0x1
+       TCIOFLUSH                         = 0x3
+       TCOFLUSH                          = 0x2
+       TCP_CONGCTL                       = 0x20
+       TCP_KEEPCNT                       = 0x6
+       TCP_KEEPIDLE                      = 0x3
+       TCP_KEEPINIT                      = 0x7
+       TCP_KEEPINTVL                     = 0x5
+       TCP_MAXBURST                      = 0x4
+       TCP_MAXSEG                        = 0x2
+       TCP_MAXWIN                        = 0xffff
+       TCP_MAX_WINSHIFT                  = 0xe
+       TCP_MD5SIG                        = 0x10
+       TCP_MINMSS                        = 0xd8
+       TCP_MSS                           = 0x218
+       TCP_NODELAY                       = 0x1
+       TCSAFLUSH                         = 0x2
+       TIOCCBRK                          = 0x2000747a
+       TIOCCDTR                          = 0x20007478
+       TIOCCONS                          = 0x80047462
+       TIOCDCDTIMESTAMP                  = 0x400c7458
+       TIOCDRAIN                         = 0x2000745e
+       TIOCEXCL                          = 0x2000740d
+       TIOCEXT                           = 0x80047460
+       TIOCFLAG_CDTRCTS                  = 0x10
+       TIOCFLAG_CLOCAL                   = 0x2
+       TIOCFLAG_CRTSCTS                  = 0x4
+       TIOCFLAG_MDMBUF                   = 0x8
+       TIOCFLAG_SOFTCAR                  = 0x1
+       TIOCFLUSH                         = 0x80047410
+       TIOCGETA                          = 0x402c7413
+       TIOCGETD                          = 0x4004741a
+       TIOCGFLAGS                        = 0x4004745d
+       TIOCGLINED                        = 0x40207442
+       TIOCGPGRP                         = 0x40047477
+       TIOCGQSIZE                        = 0x40047481
+       TIOCGRANTPT                       = 0x20007447
+       TIOCGSID                          = 0x40047463
+       TIOCGSIZE                         = 0x40087468
+       TIOCGWINSZ                        = 0x40087468
+       TIOCMBIC                          = 0x8004746b
+       TIOCMBIS                          = 0x8004746c
+       TIOCMGET                          = 0x4004746a
+       TIOCMSET                          = 0x8004746d
+       TIOCM_CAR                         = 0x40
+       TIOCM_CD                          = 0x40
+       TIOCM_CTS                         = 0x20
+       TIOCM_DSR                         = 0x100
+       TIOCM_DTR                         = 0x2
+       TIOCM_LE                          = 0x1
+       TIOCM_RI                          = 0x80
+       TIOCM_RNG                         = 0x80
+       TIOCM_RTS                         = 0x4
+       TIOCM_SR                          = 0x10
+       TIOCM_ST                          = 0x8
+       TIOCNOTTY                         = 0x20007471
+       TIOCNXCL                          = 0x2000740e
+       TIOCOUTQ                          = 0x40047473
+       TIOCPKT                           = 0x80047470
+       TIOCPKT_DATA                      = 0x0
+       TIOCPKT_DOSTOP                    = 0x20
+       TIOCPKT_FLUSHREAD                 = 0x1
+       TIOCPKT_FLUSHWRITE                = 0x2
+       TIOCPKT_IOCTL                     = 0x40
+       TIOCPKT_NOSTOP                    = 0x10
+       TIOCPKT_START                     = 0x8
+       TIOCPKT_STOP                      = 0x4
+       TIOCPTMGET                        = 0x40287446
+       TIOCPTSNAME                       = 0x40287448
+       TIOCRCVFRAME                      = 0x80047445
+       TIOCREMOTE                        = 0x80047469
+       TIOCSBRK                          = 0x2000747b
+       TIOCSCTTY                         = 0x20007461
+       TIOCSDTR                          = 0x20007479
+       TIOCSETA                          = 0x802c7414
+       TIOCSETAF                         = 0x802c7416
+       TIOCSETAW                         = 0x802c7415
+       TIOCSETD                          = 0x8004741b
+       TIOCSFLAGS                        = 0x8004745c
+       TIOCSIG                           = 0x2000745f
+       TIOCSLINED                        = 0x80207443
+       TIOCSPGRP                         = 0x80047476
+       TIOCSQSIZE                        = 0x80047480
+       TIOCSSIZE                         = 0x80087467
+       TIOCSTART                         = 0x2000746e
+       TIOCSTAT                          = 0x80047465
+       TIOCSTI                           = 0x80017472
+       TIOCSTOP                          = 0x2000746f
+       TIOCSWINSZ                        = 0x80087467
+       TIOCUCNTL                         = 0x80047466
+       TIOCXMTFRAME                      = 0x80047444
+       TOSTOP                            = 0x400000
+       VDISCARD                          = 0xf
+       VDSUSP                            = 0xb
+       VEOF                              = 0x0
+       VEOL                              = 0x1
+       VEOL2                             = 0x2
+       VERASE                            = 0x3
+       VINTR                             = 0x8
+       VKILL                             = 0x5
+       VLNEXT                            = 0xe
+       VMIN                              = 0x10
+       VQUIT                             = 0x9
+       VREPRINT                          = 0x6
+       VSTART                            = 0xc
+       VSTATUS                           = 0x12
+       VSTOP                             = 0xd
+       VSUSP                             = 0xa
+       VTIME                             = 0x11
+       VWERASE                           = 0x4
+       WALL                              = 0x8
+       WALLSIG                           = 0x8
+       WALTSIG                           = 0x4
+       WCLONE                            = 0x4
+       WCOREFLAG                         = 0x80
+       WNOHANG                           = 0x1
+       WNOWAIT                           = 0x10000
+       WNOZOMBIE                         = 0x20000
+       WOPTSCHECKED                      = 0x40000
+       WSTOPPED                          = 0x7f
+       WUNTRACED                         = 0x2
+)
+
+// Errors
+const (
+       E2BIG           = syscall.Errno(0x7)
+       EACCES          = syscall.Errno(0xd)
+       EADDRINUSE      = syscall.Errno(0x30)
+       EADDRNOTAVAIL   = syscall.Errno(0x31)
+       EAFNOSUPPORT    = syscall.Errno(0x2f)
+       EAGAIN          = syscall.Errno(0x23)
+       EALREADY        = syscall.Errno(0x25)
+       EAUTH           = syscall.Errno(0x50)
+       EBADF           = syscall.Errno(0x9)
+       EBADMSG         = syscall.Errno(0x58)
+       EBADRPC         = syscall.Errno(0x48)
+       EBUSY           = syscall.Errno(0x10)
+       ECANCELED       = syscall.Errno(0x57)
+       ECHILD          = syscall.Errno(0xa)
+       ECONNABORTED    = syscall.Errno(0x35)
+       ECONNREFUSED    = syscall.Errno(0x3d)
+       ECONNRESET      = syscall.Errno(0x36)
+       EDEADLK         = syscall.Errno(0xb)
+       EDESTADDRREQ    = syscall.Errno(0x27)
+       EDOM            = syscall.Errno(0x21)
+       EDQUOT          = syscall.Errno(0x45)
+       EEXIST          = syscall.Errno(0x11)
+       EFAULT          = syscall.Errno(0xe)
+       EFBIG           = syscall.Errno(0x1b)
+       EFTYPE          = syscall.Errno(0x4f)
+       EHOSTDOWN       = syscall.Errno(0x40)
+       EHOSTUNREACH    = syscall.Errno(0x41)
+       EIDRM           = syscall.Errno(0x52)
+       EILSEQ          = syscall.Errno(0x55)
+       EINPROGRESS     = syscall.Errno(0x24)
+       EINTR           = syscall.Errno(0x4)
+       EINVAL          = syscall.Errno(0x16)
+       EIO             = syscall.Errno(0x5)
+       EISCONN         = syscall.Errno(0x38)
+       EISDIR          = syscall.Errno(0x15)
+       ELAST           = syscall.Errno(0x60)
+       ELOOP           = syscall.Errno(0x3e)
+       EMFILE          = syscall.Errno(0x18)
+       EMLINK          = syscall.Errno(0x1f)
+       EMSGSIZE        = syscall.Errno(0x28)
+       EMULTIHOP       = syscall.Errno(0x5e)
+       ENAMETOOLONG    = syscall.Errno(0x3f)
+       ENEEDAUTH       = syscall.Errno(0x51)
+       ENETDOWN        = syscall.Errno(0x32)
+       ENETRESET       = syscall.Errno(0x34)
+       ENETUNREACH     = syscall.Errno(0x33)
+       ENFILE          = syscall.Errno(0x17)
+       ENOATTR         = syscall.Errno(0x5d)
+       ENOBUFS         = syscall.Errno(0x37)
+       ENODATA         = syscall.Errno(0x59)
+       ENODEV          = syscall.Errno(0x13)
+       ENOENT          = syscall.Errno(0x2)
+       ENOEXEC         = syscall.Errno(0x8)
+       ENOLCK          = syscall.Errno(0x4d)
+       ENOLINK         = syscall.Errno(0x5f)
+       ENOMEM          = syscall.Errno(0xc)
+       ENOMSG          = syscall.Errno(0x53)
+       ENOPROTOOPT     = syscall.Errno(0x2a)
+       ENOSPC          = syscall.Errno(0x1c)
+       ENOSR           = syscall.Errno(0x5a)
+       ENOSTR          = syscall.Errno(0x5b)
+       ENOSYS          = syscall.Errno(0x4e)
+       ENOTBLK         = syscall.Errno(0xf)
+       ENOTCONN        = syscall.Errno(0x39)
+       ENOTDIR         = syscall.Errno(0x14)
+       ENOTEMPTY       = syscall.Errno(0x42)
+       ENOTSOCK        = syscall.Errno(0x26)
+       ENOTSUP         = syscall.Errno(0x56)
+       ENOTTY          = syscall.Errno(0x19)
+       ENXIO           = syscall.Errno(0x6)
+       EOPNOTSUPP      = syscall.Errno(0x2d)
+       EOVERFLOW       = syscall.Errno(0x54)
+       EPERM           = syscall.Errno(0x1)
+       EPFNOSUPPORT    = syscall.Errno(0x2e)
+       EPIPE           = syscall.Errno(0x20)
+       EPROCLIM        = syscall.Errno(0x43)
+       EPROCUNAVAIL    = syscall.Errno(0x4c)
+       EPROGMISMATCH   = syscall.Errno(0x4b)
+       EPROGUNAVAIL    = syscall.Errno(0x4a)
+       EPROTO          = syscall.Errno(0x60)
+       EPROTONOSUPPORT = syscall.Errno(0x2b)
+       EPROTOTYPE      = syscall.Errno(0x29)
+       ERANGE          = syscall.Errno(0x22)
+       EREMOTE         = syscall.Errno(0x47)
+       EROFS           = syscall.Errno(0x1e)
+       ERPCMISMATCH    = syscall.Errno(0x49)
+       ESHUTDOWN       = syscall.Errno(0x3a)
+       ESOCKTNOSUPPORT = syscall.Errno(0x2c)
+       ESPIPE          = syscall.Errno(0x1d)
+       ESRCH           = syscall.Errno(0x3)
+       ESTALE          = syscall.Errno(0x46)
+       ETIME           = syscall.Errno(0x5c)
+       ETIMEDOUT       = syscall.Errno(0x3c)
+       ETOOMANYREFS    = syscall.Errno(0x3b)
+       ETXTBSY         = syscall.Errno(0x1a)
+       EUSERS          = syscall.Errno(0x44)
+       EWOULDBLOCK     = syscall.Errno(0x23)
+       EXDEV           = syscall.Errno(0x12)
+)
+
+// Signals
+const (
+       SIGABRT   = syscall.Signal(0x6)
+       SIGALRM   = syscall.Signal(0xe)
+       SIGBUS    = syscall.Signal(0xa)
+       SIGCHLD   = syscall.Signal(0x14)
+       SIGCONT   = syscall.Signal(0x13)
+       SIGEMT    = syscall.Signal(0x7)
+       SIGFPE    = syscall.Signal(0x8)
+       SIGHUP    = syscall.Signal(0x1)
+       SIGILL    = syscall.Signal(0x4)
+       SIGINFO   = syscall.Signal(0x1d)
+       SIGINT    = syscall.Signal(0x2)
+       SIGIO     = syscall.Signal(0x17)
+       SIGIOT    = syscall.Signal(0x6)
+       SIGKILL   = syscall.Signal(0x9)
+       SIGPIPE   = syscall.Signal(0xd)
+       SIGPROF   = syscall.Signal(0x1b)
+       SIGPWR    = syscall.Signal(0x20)
+       SIGQUIT   = syscall.Signal(0x3)
+       SIGSEGV   = syscall.Signal(0xb)
+       SIGSTOP   = syscall.Signal(0x11)
+       SIGSYS    = syscall.Signal(0xc)
+       SIGTERM   = syscall.Signal(0xf)
+       SIGTRAP   = syscall.Signal(0x5)
+       SIGTSTP   = syscall.Signal(0x12)
+       SIGTTIN   = syscall.Signal(0x15)
+       SIGTTOU   = syscall.Signal(0x16)
+       SIGURG    = syscall.Signal(0x10)
+       SIGUSR1   = syscall.Signal(0x1e)
+       SIGUSR2   = syscall.Signal(0x1f)
+       SIGVTALRM = syscall.Signal(0x1a)
+       SIGWINCH  = syscall.Signal(0x1c)
+       SIGXCPU   = syscall.Signal(0x18)
+       SIGXFSZ   = syscall.Signal(0x19)
+)
+
+// Error table
+var errors = [...]string{
+       1:  "operation not permitted",
+       2:  "no such file or directory",
+       3:  "no such process",
+       4:  "interrupted system call",
+       5:  "input/output error",
+       6:  "device not configured",
+       7:  "argument list too long",
+       8:  "exec format error",
+       9:  "bad file descriptor",
+       10: "no child processes",
+       11: "resource deadlock avoided",
+       12: "cannot allocate memory",
+       13: "permission denied",
+       14: "bad address",
+       15: "block device required",
+       16: "device busy",
+       17: "file exists",
+       18: "cross-device link",
+       19: "operation not supported by device",
+       20: "not a directory",
+       21: "is a directory",
+       22: "invalid argument",
+       23: "too many open files in system",
+       24: "too many open files",
+       25: "inappropriate ioctl for device",
+       26: "text file busy",
+       27: "file too large",
+       28: "no space left on device",
+       29: "illegal seek",
+       30: "read-only file system",
+       31: "too many links",
+       32: "broken pipe",
+       33: "numerical argument out of domain",
+       34: "result too large or too small",
+       35: "resource temporarily unavailable",
+       36: "operation now in progress",
+       37: "operation already in progress",
+       38: "socket operation on non-socket",
+       39: "destination address required",
+       40: "message too long",
+       41: "protocol wrong type for socket",
+       42: "protocol option not available",
+       43: "protocol not supported",
+       44: "socket type not supported",
+       45: "operation not supported",
+       46: "protocol family not supported",
+       47: "address family not supported by protocol family",
+       48: "address already in use",
+       49: "can't assign requested address",
+       50: "network is down",
+       51: "network is unreachable",
+       52: "network dropped connection on reset",
+       53: "software caused connection abort",
+       54: "connection reset by peer",
+       55: "no buffer space available",
+       56: "socket is already connected",
+       57: "socket is not connected",
+       58: "can't send after socket shutdown",
+       59: "too many references: can't splice",
+       60: "connection timed out",
+       61: "connection refused",
+       62: "too many levels of symbolic links",
+       63: "file name too long",
+       64: "host is down",
+       65: "no route to host",
+       66: "directory not empty",
+       67: "too many processes",
+       68: "too many users",
+       69: "disc quota exceeded",
+       70: "stale NFS file handle",
+       71: "too many levels of remote in path",
+       72: "RPC struct is bad",
+       73: "RPC version wrong",
+       74: "RPC prog. not avail",
+       75: "program version wrong",
+       76: "bad procedure for program",
+       77: "no locks available",
+       78: "function not implemented",
+       79: "inappropriate file type or format",
+       80: "authentication error",
+       81: "need authenticator",
+       82: "identifier removed",
+       83: "no message of desired type",
+       84: "value too large to be stored in data type",
+       85: "illegal byte sequence",
+       86: "not supported",
+       87: "operation Canceled",
+       88: "bad or Corrupt message",
+       89: "no message available",
+       90: "no STREAM resources",
+       91: "not a STREAM",
+       92: "STREAM ioctl timeout",
+       93: "attribute not found",
+       94: "multihop attempted",
+       95: "link has been severed",
+       96: "protocol error",
+}
+
+// Signal table
+var signals = [...]string{
+       1:  "hangup",
+       2:  "interrupt",
+       3:  "quit",
+       4:  "illegal instruction",
+       5:  "trace/BPT trap",
+       6:  "abort trap",
+       7:  "EMT trap",
+       8:  "floating point exception",
+       9:  "killed",
+       10: "bus error",
+       11: "segmentation fault",
+       12: "bad system call",
+       13: "broken pipe",
+       14: "alarm clock",
+       15: "terminated",
+       16: "urgent I/O condition",
+       17: "stopped (signal)",
+       18: "stopped",
+       19: "continued",
+       20: "child exited",
+       21: "stopped (tty input)",
+       22: "stopped (tty output)",
+       23: "I/O possible",
+       24: "cputime limit exceeded",
+       25: "filesize limit exceeded",
+       26: "virtual timer expired",
+       27: "profiling timer expired",
+       28: "window size changes",
+       29: "information request",
+       30: "user defined signal 1",
+       31: "user defined signal 2",
+       32: "power fail/restart",
+}
diff --git a/vendor/golang.org/x/sys/unix/zerrors_netbsd_amd64.go b/vendor/golang.org/x/sys/unix/zerrors_netbsd_amd64.go
new file mode 100644 (file)
index 0000000..4994437
--- /dev/null
@@ -0,0 +1,1702 @@
+// mkerrors.sh -m64
+// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT
+
+// +build amd64,netbsd
+
+// Created by cgo -godefs - DO NOT EDIT
+// cgo -godefs -- -m64 _const.go
+
+package unix
+
+import "syscall"
+
+const (
+       AF_APPLETALK                      = 0x10
+       AF_ARP                            = 0x1c
+       AF_BLUETOOTH                      = 0x1f
+       AF_CCITT                          = 0xa
+       AF_CHAOS                          = 0x5
+       AF_CNT                            = 0x15
+       AF_COIP                           = 0x14
+       AF_DATAKIT                        = 0x9
+       AF_DECnet                         = 0xc
+       AF_DLI                            = 0xd
+       AF_E164                           = 0x1a
+       AF_ECMA                           = 0x8
+       AF_HYLINK                         = 0xf
+       AF_IEEE80211                      = 0x20
+       AF_IMPLINK                        = 0x3
+       AF_INET                           = 0x2
+       AF_INET6                          = 0x18
+       AF_IPX                            = 0x17
+       AF_ISDN                           = 0x1a
+       AF_ISO                            = 0x7
+       AF_LAT                            = 0xe
+       AF_LINK                           = 0x12
+       AF_LOCAL                          = 0x1
+       AF_MAX                            = 0x23
+       AF_MPLS                           = 0x21
+       AF_NATM                           = 0x1b
+       AF_NS                             = 0x6
+       AF_OROUTE                         = 0x11
+       AF_OSI                            = 0x7
+       AF_PUP                            = 0x4
+       AF_ROUTE                          = 0x22
+       AF_SNA                            = 0xb
+       AF_UNIX                           = 0x1
+       AF_UNSPEC                         = 0x0
+       ARPHRD_ARCNET                     = 0x7
+       ARPHRD_ETHER                      = 0x1
+       ARPHRD_FRELAY                     = 0xf
+       ARPHRD_IEEE1394                   = 0x18
+       ARPHRD_IEEE802                    = 0x6
+       ARPHRD_STRIP                      = 0x17
+       B0                                = 0x0
+       B110                              = 0x6e
+       B115200                           = 0x1c200
+       B1200                             = 0x4b0
+       B134                              = 0x86
+       B14400                            = 0x3840
+       B150                              = 0x96
+       B1800                             = 0x708
+       B19200                            = 0x4b00
+       B200                              = 0xc8
+       B230400                           = 0x38400
+       B2400                             = 0x960
+       B28800                            = 0x7080
+       B300                              = 0x12c
+       B38400                            = 0x9600
+       B460800                           = 0x70800
+       B4800                             = 0x12c0
+       B50                               = 0x32
+       B57600                            = 0xe100
+       B600                              = 0x258
+       B7200                             = 0x1c20
+       B75                               = 0x4b
+       B76800                            = 0x12c00
+       B921600                           = 0xe1000
+       B9600                             = 0x2580
+       BIOCFEEDBACK                      = 0x8004427d
+       BIOCFLUSH                         = 0x20004268
+       BIOCGBLEN                         = 0x40044266
+       BIOCGDLT                          = 0x4004426a
+       BIOCGDLTLIST                      = 0xc0104277
+       BIOCGETIF                         = 0x4090426b
+       BIOCGFEEDBACK                     = 0x4004427c
+       BIOCGHDRCMPLT                     = 0x40044274
+       BIOCGRTIMEOUT                     = 0x4010427b
+       BIOCGSEESENT                      = 0x40044278
+       BIOCGSTATS                        = 0x4080426f
+       BIOCGSTATSOLD                     = 0x4008426f
+       BIOCIMMEDIATE                     = 0x80044270
+       BIOCPROMISC                       = 0x20004269
+       BIOCSBLEN                         = 0xc0044266
+       BIOCSDLT                          = 0x80044276
+       BIOCSETF                          = 0x80104267
+       BIOCSETIF                         = 0x8090426c
+       BIOCSFEEDBACK                     = 0x8004427d
+       BIOCSHDRCMPLT                     = 0x80044275
+       BIOCSRTIMEOUT                     = 0x8010427a
+       BIOCSSEESENT                      = 0x80044279
+       BIOCSTCPF                         = 0x80104272
+       BIOCSUDPF                         = 0x80104273
+       BIOCVERSION                       = 0x40044271
+       BPF_A                             = 0x10
+       BPF_ABS                           = 0x20
+       BPF_ADD                           = 0x0
+       BPF_ALIGNMENT                     = 0x8
+       BPF_ALIGNMENT32                   = 0x4
+       BPF_ALU                           = 0x4
+       BPF_AND                           = 0x50
+       BPF_B                             = 0x10
+       BPF_DFLTBUFSIZE                   = 0x100000
+       BPF_DIV                           = 0x30
+       BPF_H                             = 0x8
+       BPF_IMM                           = 0x0
+       BPF_IND                           = 0x40
+       BPF_JA                            = 0x0
+       BPF_JEQ                           = 0x10
+       BPF_JGE                           = 0x30
+       BPF_JGT                           = 0x20
+       BPF_JMP                           = 0x5
+       BPF_JSET                          = 0x40
+       BPF_K                             = 0x0
+       BPF_LD                            = 0x0
+       BPF_LDX                           = 0x1
+       BPF_LEN                           = 0x80
+       BPF_LSH                           = 0x60
+       BPF_MAJOR_VERSION                 = 0x1
+       BPF_MAXBUFSIZE                    = 0x1000000
+       BPF_MAXINSNS                      = 0x200
+       BPF_MEM                           = 0x60
+       BPF_MEMWORDS                      = 0x10
+       BPF_MINBUFSIZE                    = 0x20
+       BPF_MINOR_VERSION                 = 0x1
+       BPF_MISC                          = 0x7
+       BPF_MSH                           = 0xa0
+       BPF_MUL                           = 0x20
+       BPF_NEG                           = 0x80
+       BPF_OR                            = 0x40
+       BPF_RELEASE                       = 0x30bb6
+       BPF_RET                           = 0x6
+       BPF_RSH                           = 0x70
+       BPF_ST                            = 0x2
+       BPF_STX                           = 0x3
+       BPF_SUB                           = 0x10
+       BPF_TAX                           = 0x0
+       BPF_TXA                           = 0x80
+       BPF_W                             = 0x0
+       BPF_X                             = 0x8
+       BRKINT                            = 0x2
+       CFLUSH                            = 0xf
+       CLOCAL                            = 0x8000
+       CLONE_CSIGNAL                     = 0xff
+       CLONE_FILES                       = 0x400
+       CLONE_FS                          = 0x200
+       CLONE_PID                         = 0x1000
+       CLONE_PTRACE                      = 0x2000
+       CLONE_SIGHAND                     = 0x800
+       CLONE_VFORK                       = 0x4000
+       CLONE_VM                          = 0x100
+       CREAD                             = 0x800
+       CS5                               = 0x0
+       CS6                               = 0x100
+       CS7                               = 0x200
+       CS8                               = 0x300
+       CSIZE                             = 0x300
+       CSTART                            = 0x11
+       CSTATUS                           = 0x14
+       CSTOP                             = 0x13
+       CSTOPB                            = 0x400
+       CSUSP                             = 0x1a
+       CTL_MAXNAME                       = 0xc
+       CTL_NET                           = 0x4
+       CTL_QUERY                         = -0x2
+       DIOCBSFLUSH                       = 0x20006478
+       DLT_A429                          = 0xb8
+       DLT_A653_ICM                      = 0xb9
+       DLT_AIRONET_HEADER                = 0x78
+       DLT_AOS                           = 0xde
+       DLT_APPLE_IP_OVER_IEEE1394        = 0x8a
+       DLT_ARCNET                        = 0x7
+       DLT_ARCNET_LINUX                  = 0x81
+       DLT_ATM_CLIP                      = 0x13
+       DLT_ATM_RFC1483                   = 0xb
+       DLT_AURORA                        = 0x7e
+       DLT_AX25                          = 0x3
+       DLT_AX25_KISS                     = 0xca
+       DLT_BACNET_MS_TP                  = 0xa5
+       DLT_BLUETOOTH_HCI_H4              = 0xbb
+       DLT_BLUETOOTH_HCI_H4_WITH_PHDR    = 0xc9
+       DLT_CAN20B                        = 0xbe
+       DLT_CAN_SOCKETCAN                 = 0xe3
+       DLT_CHAOS                         = 0x5
+       DLT_CISCO_IOS                     = 0x76
+       DLT_C_HDLC                        = 0x68
+       DLT_C_HDLC_WITH_DIR               = 0xcd
+       DLT_DECT                          = 0xdd
+       DLT_DOCSIS                        = 0x8f
+       DLT_ECONET                        = 0x73
+       DLT_EN10MB                        = 0x1
+       DLT_EN3MB                         = 0x2
+       DLT_ENC                           = 0x6d
+       DLT_ERF                           = 0xc5
+       DLT_ERF_ETH                       = 0xaf
+       DLT_ERF_POS                       = 0xb0
+       DLT_FC_2                          = 0xe0
+       DLT_FC_2_WITH_FRAME_DELIMS        = 0xe1
+       DLT_FDDI                          = 0xa
+       DLT_FLEXRAY                       = 0xd2
+       DLT_FRELAY                        = 0x6b
+       DLT_FRELAY_WITH_DIR               = 0xce
+       DLT_GCOM_SERIAL                   = 0xad
+       DLT_GCOM_T1E1                     = 0xac
+       DLT_GPF_F                         = 0xab
+       DLT_GPF_T                         = 0xaa
+       DLT_GPRS_LLC                      = 0xa9
+       DLT_GSMTAP_ABIS                   = 0xda
+       DLT_GSMTAP_UM                     = 0xd9
+       DLT_HDLC                          = 0x10
+       DLT_HHDLC                         = 0x79
+       DLT_HIPPI                         = 0xf
+       DLT_IBM_SN                        = 0x92
+       DLT_IBM_SP                        = 0x91
+       DLT_IEEE802                       = 0x6
+       DLT_IEEE802_11                    = 0x69
+       DLT_IEEE802_11_RADIO              = 0x7f
+       DLT_IEEE802_11_RADIO_AVS          = 0xa3
+       DLT_IEEE802_15_4                  = 0xc3
+       DLT_IEEE802_15_4_LINUX            = 0xbf
+       DLT_IEEE802_15_4_NONASK_PHY       = 0xd7
+       DLT_IEEE802_16_MAC_CPS            = 0xbc
+       DLT_IEEE802_16_MAC_CPS_RADIO      = 0xc1
+       DLT_IPMB                          = 0xc7
+       DLT_IPMB_LINUX                    = 0xd1
+       DLT_IPNET                         = 0xe2
+       DLT_IPV4                          = 0xe4
+       DLT_IPV6                          = 0xe5
+       DLT_IP_OVER_FC                    = 0x7a
+       DLT_JUNIPER_ATM1                  = 0x89
+       DLT_JUNIPER_ATM2                  = 0x87
+       DLT_JUNIPER_CHDLC                 = 0xb5
+       DLT_JUNIPER_ES                    = 0x84
+       DLT_JUNIPER_ETHER                 = 0xb2
+       DLT_JUNIPER_FRELAY                = 0xb4
+       DLT_JUNIPER_GGSN                  = 0x85
+       DLT_JUNIPER_ISM                   = 0xc2
+       DLT_JUNIPER_MFR                   = 0x86
+       DLT_JUNIPER_MLFR                  = 0x83
+       DLT_JUNIPER_MLPPP                 = 0x82
+       DLT_JUNIPER_MONITOR               = 0xa4
+       DLT_JUNIPER_PIC_PEER              = 0xae
+       DLT_JUNIPER_PPP                   = 0xb3
+       DLT_JUNIPER_PPPOE                 = 0xa7
+       DLT_JUNIPER_PPPOE_ATM             = 0xa8
+       DLT_JUNIPER_SERVICES              = 0x88
+       DLT_JUNIPER_ST                    = 0xc8
+       DLT_JUNIPER_VP                    = 0xb7
+       DLT_LAPB_WITH_DIR                 = 0xcf
+       DLT_LAPD                          = 0xcb
+       DLT_LIN                           = 0xd4
+       DLT_LINUX_EVDEV                   = 0xd8
+       DLT_LINUX_IRDA                    = 0x90
+       DLT_LINUX_LAPD                    = 0xb1
+       DLT_LINUX_SLL                     = 0x71
+       DLT_LOOP                          = 0x6c
+       DLT_LTALK                         = 0x72
+       DLT_MFR                           = 0xb6
+       DLT_MOST                          = 0xd3
+       DLT_MPLS                          = 0xdb
+       DLT_MTP2                          = 0x8c
+       DLT_MTP2_WITH_PHDR                = 0x8b
+       DLT_MTP3                          = 0x8d
+       DLT_NULL                          = 0x0
+       DLT_PCI_EXP                       = 0x7d
+       DLT_PFLOG                         = 0x75
+       DLT_PFSYNC                        = 0x12
+       DLT_PPI                           = 0xc0
+       DLT_PPP                           = 0x9
+       DLT_PPP_BSDOS                     = 0xe
+       DLT_PPP_ETHER                     = 0x33
+       DLT_PPP_PPPD                      = 0xa6
+       DLT_PPP_SERIAL                    = 0x32
+       DLT_PPP_WITH_DIR                  = 0xcc
+       DLT_PRISM_HEADER                  = 0x77
+       DLT_PRONET                        = 0x4
+       DLT_RAIF1                         = 0xc6
+       DLT_RAW                           = 0xc
+       DLT_RAWAF_MASK                    = 0x2240000
+       DLT_RIO                           = 0x7c
+       DLT_SCCP                          = 0x8e
+       DLT_SITA                          = 0xc4
+       DLT_SLIP                          = 0x8
+       DLT_SLIP_BSDOS                    = 0xd
+       DLT_SUNATM                        = 0x7b
+       DLT_SYMANTEC_FIREWALL             = 0x63
+       DLT_TZSP                          = 0x80
+       DLT_USB                           = 0xba
+       DLT_USB_LINUX                     = 0xbd
+       DLT_USB_LINUX_MMAPPED             = 0xdc
+       DLT_WIHART                        = 0xdf
+       DLT_X2E_SERIAL                    = 0xd5
+       DLT_X2E_XORAYA                    = 0xd6
+       DT_BLK                            = 0x6
+       DT_CHR                            = 0x2
+       DT_DIR                            = 0x4
+       DT_FIFO                           = 0x1
+       DT_LNK                            = 0xa
+       DT_REG                            = 0x8
+       DT_SOCK                           = 0xc
+       DT_UNKNOWN                        = 0x0
+       DT_WHT                            = 0xe
+       ECHO                              = 0x8
+       ECHOCTL                           = 0x40
+       ECHOE                             = 0x2
+       ECHOK                             = 0x4
+       ECHOKE                            = 0x1
+       ECHONL                            = 0x10
+       ECHOPRT                           = 0x20
+       EMUL_LINUX                        = 0x1
+       EMUL_LINUX32                      = 0x5
+       EMUL_MAXID                        = 0x6
+       ETHERCAP_JUMBO_MTU                = 0x4
+       ETHERCAP_VLAN_HWTAGGING           = 0x2
+       ETHERCAP_VLAN_MTU                 = 0x1
+       ETHERMIN                          = 0x2e
+       ETHERMTU                          = 0x5dc
+       ETHERMTU_JUMBO                    = 0x2328
+       ETHERTYPE_8023                    = 0x4
+       ETHERTYPE_AARP                    = 0x80f3
+       ETHERTYPE_ACCTON                  = 0x8390
+       ETHERTYPE_AEONIC                  = 0x8036
+       ETHERTYPE_ALPHA                   = 0x814a
+       ETHERTYPE_AMBER                   = 0x6008
+       ETHERTYPE_AMOEBA                  = 0x8145
+       ETHERTYPE_APOLLO                  = 0x80f7
+       ETHERTYPE_APOLLODOMAIN            = 0x8019
+       ETHERTYPE_APPLETALK               = 0x809b
+       ETHERTYPE_APPLITEK                = 0x80c7
+       ETHERTYPE_ARGONAUT                = 0x803a
+       ETHERTYPE_ARP                     = 0x806
+       ETHERTYPE_AT                      = 0x809b
+       ETHERTYPE_ATALK                   = 0x809b
+       ETHERTYPE_ATOMIC                  = 0x86df
+       ETHERTYPE_ATT                     = 0x8069
+       ETHERTYPE_ATTSTANFORD             = 0x8008
+       ETHERTYPE_AUTOPHON                = 0x806a
+       ETHERTYPE_AXIS                    = 0x8856
+       ETHERTYPE_BCLOOP                  = 0x9003
+       ETHERTYPE_BOFL                    = 0x8102
+       ETHERTYPE_CABLETRON               = 0x7034
+       ETHERTYPE_CHAOS                   = 0x804
+       ETHERTYPE_COMDESIGN               = 0x806c
+       ETHERTYPE_COMPUGRAPHIC            = 0x806d
+       ETHERTYPE_COUNTERPOINT            = 0x8062
+       ETHERTYPE_CRONUS                  = 0x8004
+       ETHERTYPE_CRONUSVLN               = 0x8003
+       ETHERTYPE_DCA                     = 0x1234
+       ETHERTYPE_DDE                     = 0x807b
+       ETHERTYPE_DEBNI                   = 0xaaaa
+       ETHERTYPE_DECAM                   = 0x8048
+       ETHERTYPE_DECCUST                 = 0x6006
+       ETHERTYPE_DECDIAG                 = 0x6005
+       ETHERTYPE_DECDNS                  = 0x803c
+       ETHERTYPE_DECDTS                  = 0x803e
+       ETHERTYPE_DECEXPER                = 0x6000
+       ETHERTYPE_DECLAST                 = 0x8041
+       ETHERTYPE_DECLTM                  = 0x803f
+       ETHERTYPE_DECMUMPS                = 0x6009
+       ETHERTYPE_DECNETBIOS              = 0x8040
+       ETHERTYPE_DELTACON                = 0x86de
+       ETHERTYPE_DIDDLE                  = 0x4321
+       ETHERTYPE_DLOG1                   = 0x660
+       ETHERTYPE_DLOG2                   = 0x661
+       ETHERTYPE_DN                      = 0x6003
+       ETHERTYPE_DOGFIGHT                = 0x1989
+       ETHERTYPE_DSMD                    = 0x8039
+       ETHERTYPE_ECMA                    = 0x803
+       ETHERTYPE_ENCRYPT                 = 0x803d
+       ETHERTYPE_ES                      = 0x805d
+       ETHERTYPE_EXCELAN                 = 0x8010
+       ETHERTYPE_EXPERDATA               = 0x8049
+       ETHERTYPE_FLIP                    = 0x8146
+       ETHERTYPE_FLOWCONTROL             = 0x8808
+       ETHERTYPE_FRARP                   = 0x808
+       ETHERTYPE_GENDYN                  = 0x8068
+       ETHERTYPE_HAYES                   = 0x8130
+       ETHERTYPE_HIPPI_FP                = 0x8180
+       ETHERTYPE_HITACHI                 = 0x8820
+       ETHERTYPE_HP                      = 0x8005
+       ETHERTYPE_IEEEPUP                 = 0xa00
+       ETHERTYPE_IEEEPUPAT               = 0xa01
+       ETHERTYPE_IMLBL                   = 0x4c42
+       ETHERTYPE_IMLBLDIAG               = 0x424c
+       ETHERTYPE_IP                      = 0x800
+       ETHERTYPE_IPAS                    = 0x876c
+       ETHERTYPE_IPV6                    = 0x86dd
+       ETHERTYPE_IPX                     = 0x8137
+       ETHERTYPE_IPXNEW                  = 0x8037
+       ETHERTYPE_KALPANA                 = 0x8582
+       ETHERTYPE_LANBRIDGE               = 0x8038
+       ETHERTYPE_LANPROBE                = 0x8888
+       ETHERTYPE_LAT                     = 0x6004
+       ETHERTYPE_LBACK                   = 0x9000
+       ETHERTYPE_LITTLE                  = 0x8060
+       ETHERTYPE_LOGICRAFT               = 0x8148
+       ETHERTYPE_LOOPBACK                = 0x9000
+       ETHERTYPE_MATRA                   = 0x807a
+       ETHERTYPE_MAX                     = 0xffff
+       ETHERTYPE_MERIT                   = 0x807c
+       ETHERTYPE_MICP                    = 0x873a
+       ETHERTYPE_MOPDL                   = 0x6001
+       ETHERTYPE_MOPRC                   = 0x6002
+       ETHERTYPE_MOTOROLA                = 0x818d
+       ETHERTYPE_MPLS                    = 0x8847
+       ETHERTYPE_MPLS_MCAST              = 0x8848
+       ETHERTYPE_MUMPS                   = 0x813f
+       ETHERTYPE_NBPCC                   = 0x3c04
+       ETHERTYPE_NBPCLAIM                = 0x3c09
+       ETHERTYPE_NBPCLREQ                = 0x3c05
+       ETHERTYPE_NBPCLRSP                = 0x3c06
+       ETHERTYPE_NBPCREQ                 = 0x3c02
+       ETHERTYPE_NBPCRSP                 = 0x3c03
+       ETHERTYPE_NBPDG                   = 0x3c07
+       ETHERTYPE_NBPDGB                  = 0x3c08
+       ETHERTYPE_NBPDLTE                 = 0x3c0a
+       ETHERTYPE_NBPRAR                  = 0x3c0c
+       ETHERTYPE_NBPRAS                  = 0x3c0b
+       ETHERTYPE_NBPRST                  = 0x3c0d
+       ETHERTYPE_NBPSCD                  = 0x3c01
+       ETHERTYPE_NBPVCD                  = 0x3c00
+       ETHERTYPE_NBS                     = 0x802
+       ETHERTYPE_NCD                     = 0x8149
+       ETHERTYPE_NESTAR                  = 0x8006
+       ETHERTYPE_NETBEUI                 = 0x8191
+       ETHERTYPE_NOVELL                  = 0x8138
+       ETHERTYPE_NS                      = 0x600
+       ETHERTYPE_NSAT                    = 0x601
+       ETHERTYPE_NSCOMPAT                = 0x807
+       ETHERTYPE_NTRAILER                = 0x10
+       ETHERTYPE_OS9                     = 0x7007
+       ETHERTYPE_OS9NET                  = 0x7009
+       ETHERTYPE_PACER                   = 0x80c6
+       ETHERTYPE_PAE                     = 0x888e
+       ETHERTYPE_PCS                     = 0x4242
+       ETHERTYPE_PLANNING                = 0x8044
+       ETHERTYPE_PPP                     = 0x880b
+       ETHERTYPE_PPPOE                   = 0x8864
+       ETHERTYPE_PPPOEDISC               = 0x8863
+       ETHERTYPE_PRIMENTS                = 0x7031
+       ETHERTYPE_PUP                     = 0x200
+       ETHERTYPE_PUPAT                   = 0x200
+       ETHERTYPE_RACAL                   = 0x7030
+       ETHERTYPE_RATIONAL                = 0x8150
+       ETHERTYPE_RAWFR                   = 0x6559
+       ETHERTYPE_RCL                     = 0x1995
+       ETHERTYPE_RDP                     = 0x8739
+       ETHERTYPE_RETIX                   = 0x80f2
+       ETHERTYPE_REVARP                  = 0x8035
+       ETHERTYPE_SCA                     = 0x6007
+       ETHERTYPE_SECTRA                  = 0x86db
+       ETHERTYPE_SECUREDATA              = 0x876d
+       ETHERTYPE_SGITW                   = 0x817e
+       ETHERTYPE_SG_BOUNCE               = 0x8016
+       ETHERTYPE_SG_DIAG                 = 0x8013
+       ETHERTYPE_SG_NETGAMES             = 0x8014
+       ETHERTYPE_SG_RESV                 = 0x8015
+       ETHERTYPE_SIMNET                  = 0x5208
+       ETHERTYPE_SLOWPROTOCOLS           = 0x8809
+       ETHERTYPE_SNA                     = 0x80d5
+       ETHERTYPE_SNMP                    = 0x814c
+       ETHERTYPE_SONIX                   = 0xfaf5
+       ETHERTYPE_SPIDER                  = 0x809f
+       ETHERTYPE_SPRITE                  = 0x500
+       ETHERTYPE_STP                     = 0x8181
+       ETHERTYPE_TALARIS                 = 0x812b
+       ETHERTYPE_TALARISMC               = 0x852b
+       ETHERTYPE_TCPCOMP                 = 0x876b
+       ETHERTYPE_TCPSM                   = 0x9002
+       ETHERTYPE_TEC                     = 0x814f
+       ETHERTYPE_TIGAN                   = 0x802f
+       ETHERTYPE_TRAIL                   = 0x1000
+       ETHERTYPE_TRANSETHER              = 0x6558
+       ETHERTYPE_TYMSHARE                = 0x802e
+       ETHERTYPE_UBBST                   = 0x7005
+       ETHERTYPE_UBDEBUG                 = 0x900
+       ETHERTYPE_UBDIAGLOOP              = 0x7002
+       ETHERTYPE_UBDL                    = 0x7000
+       ETHERTYPE_UBNIU                   = 0x7001
+       ETHERTYPE_UBNMC                   = 0x7003
+       ETHERTYPE_VALID                   = 0x1600
+       ETHERTYPE_VARIAN                  = 0x80dd
+       ETHERTYPE_VAXELN                  = 0x803b
+       ETHERTYPE_VEECO                   = 0x8067
+       ETHERTYPE_VEXP                    = 0x805b
+       ETHERTYPE_VGLAB                   = 0x8131
+       ETHERTYPE_VINES                   = 0xbad
+       ETHERTYPE_VINESECHO               = 0xbaf
+       ETHERTYPE_VINESLOOP               = 0xbae
+       ETHERTYPE_VITAL                   = 0xff00
+       ETHERTYPE_VLAN                    = 0x8100
+       ETHERTYPE_VLTLMAN                 = 0x8080
+       ETHERTYPE_VPROD                   = 0x805c
+       ETHERTYPE_VURESERVED              = 0x8147
+       ETHERTYPE_WATERLOO                = 0x8130
+       ETHERTYPE_WELLFLEET               = 0x8103
+       ETHERTYPE_X25                     = 0x805
+       ETHERTYPE_X75                     = 0x801
+       ETHERTYPE_XNSSM                   = 0x9001
+       ETHERTYPE_XTP                     = 0x817d
+       ETHER_ADDR_LEN                    = 0x6
+       ETHER_CRC_LEN                     = 0x4
+       ETHER_CRC_POLY_BE                 = 0x4c11db6
+       ETHER_CRC_POLY_LE                 = 0xedb88320
+       ETHER_HDR_LEN                     = 0xe
+       ETHER_MAX_LEN                     = 0x5ee
+       ETHER_MAX_LEN_JUMBO               = 0x233a
+       ETHER_MIN_LEN                     = 0x40
+       ETHER_PPPOE_ENCAP_LEN             = 0x8
+       ETHER_TYPE_LEN                    = 0x2
+       ETHER_VLAN_ENCAP_LEN              = 0x4
+       EVFILT_AIO                        = 0x2
+       EVFILT_PROC                       = 0x4
+       EVFILT_READ                       = 0x0
+       EVFILT_SIGNAL                     = 0x5
+       EVFILT_SYSCOUNT                   = 0x7
+       EVFILT_TIMER                      = 0x6
+       EVFILT_VNODE                      = 0x3
+       EVFILT_WRITE                      = 0x1
+       EV_ADD                            = 0x1
+       EV_CLEAR                          = 0x20
+       EV_DELETE                         = 0x2
+       EV_DISABLE                        = 0x8
+       EV_ENABLE                         = 0x4
+       EV_EOF                            = 0x8000
+       EV_ERROR                          = 0x4000
+       EV_FLAG1                          = 0x2000
+       EV_ONESHOT                        = 0x10
+       EV_SYSFLAGS                       = 0xf000
+       EXTA                              = 0x4b00
+       EXTB                              = 0x9600
+       EXTPROC                           = 0x800
+       FD_CLOEXEC                        = 0x1
+       FD_SETSIZE                        = 0x100
+       FLUSHO                            = 0x800000
+       F_CLOSEM                          = 0xa
+       F_DUPFD                           = 0x0
+       F_DUPFD_CLOEXEC                   = 0xc
+       F_FSCTL                           = -0x80000000
+       F_FSDIRMASK                       = 0x70000000
+       F_FSIN                            = 0x10000000
+       F_FSINOUT                         = 0x30000000
+       F_FSOUT                           = 0x20000000
+       F_FSPRIV                          = 0x8000
+       F_FSVOID                          = 0x40000000
+       F_GETFD                           = 0x1
+       F_GETFL                           = 0x3
+       F_GETLK                           = 0x7
+       F_GETNOSIGPIPE                    = 0xd
+       F_GETOWN                          = 0x5
+       F_MAXFD                           = 0xb
+       F_OK                              = 0x0
+       F_PARAM_MASK                      = 0xfff
+       F_PARAM_MAX                       = 0xfff
+       F_RDLCK                           = 0x1
+       F_SETFD                           = 0x2
+       F_SETFL                           = 0x4
+       F_SETLK                           = 0x8
+       F_SETLKW                          = 0x9
+       F_SETNOSIGPIPE                    = 0xe
+       F_SETOWN                          = 0x6
+       F_UNLCK                           = 0x2
+       F_WRLCK                           = 0x3
+       HUPCL                             = 0x4000
+       ICANON                            = 0x100
+       ICMP6_FILTER                      = 0x12
+       ICRNL                             = 0x100
+       IEXTEN                            = 0x400
+       IFAN_ARRIVAL                      = 0x0
+       IFAN_DEPARTURE                    = 0x1
+       IFA_ROUTE                         = 0x1
+       IFF_ALLMULTI                      = 0x200
+       IFF_BROADCAST                     = 0x2
+       IFF_CANTCHANGE                    = 0x8f52
+       IFF_DEBUG                         = 0x4
+       IFF_LINK0                         = 0x1000
+       IFF_LINK1                         = 0x2000
+       IFF_LINK2                         = 0x4000
+       IFF_LOOPBACK                      = 0x8
+       IFF_MULTICAST                     = 0x8000
+       IFF_NOARP                         = 0x80
+       IFF_NOTRAILERS                    = 0x20
+       IFF_OACTIVE                       = 0x400
+       IFF_POINTOPOINT                   = 0x10
+       IFF_PROMISC                       = 0x100
+       IFF_RUNNING                       = 0x40
+       IFF_SIMPLEX                       = 0x800
+       IFF_UP                            = 0x1
+       IFNAMSIZ                          = 0x10
+       IFT_1822                          = 0x2
+       IFT_A12MPPSWITCH                  = 0x82
+       IFT_AAL2                          = 0xbb
+       IFT_AAL5                          = 0x31
+       IFT_ADSL                          = 0x5e
+       IFT_AFLANE8023                    = 0x3b
+       IFT_AFLANE8025                    = 0x3c
+       IFT_ARAP                          = 0x58
+       IFT_ARCNET                        = 0x23
+       IFT_ARCNETPLUS                    = 0x24
+       IFT_ASYNC                         = 0x54
+       IFT_ATM                           = 0x25
+       IFT_ATMDXI                        = 0x69
+       IFT_ATMFUNI                       = 0x6a
+       IFT_ATMIMA                        = 0x6b
+       IFT_ATMLOGICAL                    = 0x50
+       IFT_ATMRADIO                      = 0xbd
+       IFT_ATMSUBINTERFACE               = 0x86
+       IFT_ATMVCIENDPT                   = 0xc2
+       IFT_ATMVIRTUAL                    = 0x95
+       IFT_BGPPOLICYACCOUNTING           = 0xa2
+       IFT_BRIDGE                        = 0xd1
+       IFT_BSC                           = 0x53
+       IFT_CARP                          = 0xf8
+       IFT_CCTEMUL                       = 0x3d
+       IFT_CEPT                          = 0x13
+       IFT_CES                           = 0x85
+       IFT_CHANNEL                       = 0x46
+       IFT_CNR                           = 0x55
+       IFT_COFFEE                        = 0x84
+       IFT_COMPOSITELINK                 = 0x9b
+       IFT_DCN                           = 0x8d
+       IFT_DIGITALPOWERLINE              = 0x8a
+       IFT_DIGITALWRAPPEROVERHEADCHANNEL = 0xba
+       IFT_DLSW                          = 0x4a
+       IFT_DOCSCABLEDOWNSTREAM           = 0x80
+       IFT_DOCSCABLEMACLAYER             = 0x7f
+       IFT_DOCSCABLEUPSTREAM             = 0x81
+       IFT_DOCSCABLEUPSTREAMCHANNEL      = 0xcd
+       IFT_DS0                           = 0x51
+       IFT_DS0BUNDLE                     = 0x52
+       IFT_DS1FDL                        = 0xaa
+       IFT_DS3                           = 0x1e
+       IFT_DTM                           = 0x8c
+       IFT_DVBASILN                      = 0xac
+       IFT_DVBASIOUT                     = 0xad
+       IFT_DVBRCCDOWNSTREAM              = 0x93
+       IFT_DVBRCCMACLAYER                = 0x92
+       IFT_DVBRCCUPSTREAM                = 0x94
+       IFT_ECONET                        = 0xce
+       IFT_EON                           = 0x19
+       IFT_EPLRS                         = 0x57
+       IFT_ESCON                         = 0x49
+       IFT_ETHER                         = 0x6
+       IFT_FAITH                         = 0xf2
+       IFT_FAST                          = 0x7d
+       IFT_FASTETHER                     = 0x3e
+       IFT_FASTETHERFX                   = 0x45
+       IFT_FDDI                          = 0xf
+       IFT_FIBRECHANNEL                  = 0x38
+       IFT_FRAMERELAYINTERCONNECT        = 0x3a
+       IFT_FRAMERELAYMPI                 = 0x5c
+       IFT_FRDLCIENDPT                   = 0xc1
+       IFT_FRELAY                        = 0x20
+       IFT_FRELAYDCE                     = 0x2c
+       IFT_FRF16MFRBUNDLE                = 0xa3
+       IFT_FRFORWARD                     = 0x9e
+       IFT_G703AT2MB                     = 0x43
+       IFT_G703AT64K                     = 0x42
+       IFT_GIF                           = 0xf0
+       IFT_GIGABITETHERNET               = 0x75
+       IFT_GR303IDT                      = 0xb2
+       IFT_GR303RDT                      = 0xb1
+       IFT_H323GATEKEEPER                = 0xa4
+       IFT_H323PROXY                     = 0xa5
+       IFT_HDH1822                       = 0x3
+       IFT_HDLC                          = 0x76
+       IFT_HDSL2                         = 0xa8
+       IFT_HIPERLAN2                     = 0xb7
+       IFT_HIPPI                         = 0x2f
+       IFT_HIPPIINTERFACE                = 0x39
+       IFT_HOSTPAD                       = 0x5a
+       IFT_HSSI                          = 0x2e
+       IFT_HY                            = 0xe
+       IFT_IBM370PARCHAN                 = 0x48
+       IFT_IDSL                          = 0x9a
+       IFT_IEEE1394                      = 0x90
+       IFT_IEEE80211                     = 0x47
+       IFT_IEEE80212                     = 0x37
+       IFT_IEEE8023ADLAG                 = 0xa1
+       IFT_IFGSN                         = 0x91
+       IFT_IMT                           = 0xbe
+       IFT_INFINIBAND                    = 0xc7
+       IFT_INTERLEAVE                    = 0x7c
+       IFT_IP                            = 0x7e
+       IFT_IPFORWARD                     = 0x8e
+       IFT_IPOVERATM                     = 0x72
+       IFT_IPOVERCDLC                    = 0x6d
+       IFT_IPOVERCLAW                    = 0x6e
+       IFT_IPSWITCH                      = 0x4e
+       IFT_ISDN                          = 0x3f
+       IFT_ISDNBASIC                     = 0x14
+       IFT_ISDNPRIMARY                   = 0x15
+       IFT_ISDNS                         = 0x4b
+       IFT_ISDNU                         = 0x4c
+       IFT_ISO88022LLC                   = 0x29
+       IFT_ISO88023                      = 0x7
+       IFT_ISO88024                      = 0x8
+       IFT_ISO88025                      = 0x9
+       IFT_ISO88025CRFPINT               = 0x62
+       IFT_ISO88025DTR                   = 0x56
+       IFT_ISO88025FIBER                 = 0x73
+       IFT_ISO88026                      = 0xa
+       IFT_ISUP                          = 0xb3
+       IFT_L2VLAN                        = 0x87
+       IFT_L3IPVLAN                      = 0x88
+       IFT_L3IPXVLAN                     = 0x89
+       IFT_LAPB                          = 0x10
+       IFT_LAPD                          = 0x4d
+       IFT_LAPF                          = 0x77
+       IFT_LINEGROUP                     = 0xd2
+       IFT_LOCALTALK                     = 0x2a
+       IFT_LOOP                          = 0x18
+       IFT_MEDIAMAILOVERIP               = 0x8b
+       IFT_MFSIGLINK                     = 0xa7
+       IFT_MIOX25                        = 0x26
+       IFT_MODEM                         = 0x30
+       IFT_MPC                           = 0x71
+       IFT_MPLS                          = 0xa6
+       IFT_MPLSTUNNEL                    = 0x96
+       IFT_MSDSL                         = 0x8f
+       IFT_MVL                           = 0xbf
+       IFT_MYRINET                       = 0x63
+       IFT_NFAS                          = 0xaf
+       IFT_NSIP                          = 0x1b
+       IFT_OPTICALCHANNEL                = 0xc3
+       IFT_OPTICALTRANSPORT              = 0xc4
+       IFT_OTHER                         = 0x1
+       IFT_P10                           = 0xc
+       IFT_P80                           = 0xd
+       IFT_PARA                          = 0x22
+       IFT_PFLOG                         = 0xf5
+       IFT_PFSYNC                        = 0xf6
+       IFT_PLC                           = 0xae
+       IFT_PON155                        = 0xcf
+       IFT_PON622                        = 0xd0
+       IFT_POS                           = 0xab
+       IFT_PPP                           = 0x17
+       IFT_PPPMULTILINKBUNDLE            = 0x6c
+       IFT_PROPATM                       = 0xc5
+       IFT_PROPBWAP2MP                   = 0xb8
+       IFT_PROPCNLS                      = 0x59
+       IFT_PROPDOCSWIRELESSDOWNSTREAM    = 0xb5
+       IFT_PROPDOCSWIRELESSMACLAYER      = 0xb4
+       IFT_PROPDOCSWIRELESSUPSTREAM      = 0xb6
+       IFT_PROPMUX                       = 0x36
+       IFT_PROPVIRTUAL                   = 0x35
+       IFT_PROPWIRELESSP2P               = 0x9d
+       IFT_PTPSERIAL                     = 0x16
+       IFT_PVC                           = 0xf1
+       IFT_Q2931                         = 0xc9
+       IFT_QLLC                          = 0x44
+       IFT_RADIOMAC                      = 0xbc
+       IFT_RADSL                         = 0x5f
+       IFT_REACHDSL                      = 0xc0
+       IFT_RFC1483                       = 0x9f
+       IFT_RS232                         = 0x21
+       IFT_RSRB                          = 0x4f
+       IFT_SDLC                          = 0x11
+       IFT_SDSL                          = 0x60
+       IFT_SHDSL                         = 0xa9
+       IFT_SIP                           = 0x1f
+       IFT_SIPSIG                        = 0xcc
+       IFT_SIPTG                         = 0xcb
+       IFT_SLIP                          = 0x1c
+       IFT_SMDSDXI                       = 0x2b
+       IFT_SMDSICIP                      = 0x34
+       IFT_SONET                         = 0x27
+       IFT_SONETOVERHEADCHANNEL          = 0xb9
+       IFT_SONETPATH                     = 0x32
+       IFT_SONETVT                       = 0x33
+       IFT_SRP                           = 0x97
+       IFT_SS7SIGLINK                    = 0x9c
+       IFT_STACKTOSTACK                  = 0x6f
+       IFT_STARLAN                       = 0xb
+       IFT_STF                           = 0xd7
+       IFT_T1                            = 0x12
+       IFT_TDLC                          = 0x74
+       IFT_TELINK                        = 0xc8
+       IFT_TERMPAD                       = 0x5b
+       IFT_TR008                         = 0xb0
+       IFT_TRANSPHDLC                    = 0x7b
+       IFT_TUNNEL                        = 0x83
+       IFT_ULTRA                         = 0x1d
+       IFT_USB                           = 0xa0
+       IFT_V11                           = 0x40
+       IFT_V35                           = 0x2d
+       IFT_V36                           = 0x41
+       IFT_V37                           = 0x78
+       IFT_VDSL                          = 0x61
+       IFT_VIRTUALIPADDRESS              = 0x70
+       IFT_VIRTUALTG                     = 0xca
+       IFT_VOICEDID                      = 0xd5
+       IFT_VOICEEM                       = 0x64
+       IFT_VOICEEMFGD                    = 0xd3
+       IFT_VOICEENCAP                    = 0x67
+       IFT_VOICEFGDEANA                  = 0xd4
+       IFT_VOICEFXO                      = 0x65
+       IFT_VOICEFXS                      = 0x66
+       IFT_VOICEOVERATM                  = 0x98
+       IFT_VOICEOVERCABLE                = 0xc6
+       IFT_VOICEOVERFRAMERELAY           = 0x99
+       IFT_VOICEOVERIP                   = 0x68
+       IFT_X213                          = 0x5d
+       IFT_X25                           = 0x5
+       IFT_X25DDN                        = 0x4
+       IFT_X25HUNTGROUP                  = 0x7a
+       IFT_X25MLP                        = 0x79
+       IFT_X25PLE                        = 0x28
+       IFT_XETHER                        = 0x1a
+       IGNBRK                            = 0x1
+       IGNCR                             = 0x80
+       IGNPAR                            = 0x4
+       IMAXBEL                           = 0x2000
+       INLCR                             = 0x40
+       INPCK                             = 0x10
+       IN_CLASSA_HOST                    = 0xffffff
+       IN_CLASSA_MAX                     = 0x80
+       IN_CLASSA_NET                     = 0xff000000
+       IN_CLASSA_NSHIFT                  = 0x18
+       IN_CLASSB_HOST                    = 0xffff
+       IN_CLASSB_MAX                     = 0x10000
+       IN_CLASSB_NET                     = 0xffff0000
+       IN_CLASSB_NSHIFT                  = 0x10
+       IN_CLASSC_HOST                    = 0xff
+       IN_CLASSC_NET                     = 0xffffff00
+       IN_CLASSC_NSHIFT                  = 0x8
+       IN_CLASSD_HOST                    = 0xfffffff
+       IN_CLASSD_NET                     = 0xf0000000
+       IN_CLASSD_NSHIFT                  = 0x1c
+       IN_LOOPBACKNET                    = 0x7f
+       IPPROTO_AH                        = 0x33
+       IPPROTO_CARP                      = 0x70
+       IPPROTO_DONE                      = 0x101
+       IPPROTO_DSTOPTS                   = 0x3c
+       IPPROTO_EGP                       = 0x8
+       IPPROTO_ENCAP                     = 0x62
+       IPPROTO_EON                       = 0x50
+       IPPROTO_ESP                       = 0x32
+       IPPROTO_ETHERIP                   = 0x61
+       IPPROTO_FRAGMENT                  = 0x2c
+       IPPROTO_GGP                       = 0x3
+       IPPROTO_GRE                       = 0x2f
+       IPPROTO_HOPOPTS                   = 0x0
+       IPPROTO_ICMP                      = 0x1
+       IPPROTO_ICMPV6                    = 0x3a
+       IPPROTO_IDP                       = 0x16
+       IPPROTO_IGMP                      = 0x2
+       IPPROTO_IP                        = 0x0
+       IPPROTO_IPCOMP                    = 0x6c
+       IPPROTO_IPIP                      = 0x4
+       IPPROTO_IPV4                      = 0x4
+       IPPROTO_IPV6                      = 0x29
+       IPPROTO_IPV6_ICMP                 = 0x3a
+       IPPROTO_MAX                       = 0x100
+       IPPROTO_MAXID                     = 0x34
+       IPPROTO_MOBILE                    = 0x37
+       IPPROTO_NONE                      = 0x3b
+       IPPROTO_PFSYNC                    = 0xf0
+       IPPROTO_PIM                       = 0x67
+       IPPROTO_PUP                       = 0xc
+       IPPROTO_RAW                       = 0xff
+       IPPROTO_ROUTING                   = 0x2b
+       IPPROTO_RSVP                      = 0x2e
+       IPPROTO_TCP                       = 0x6
+       IPPROTO_TP                        = 0x1d
+       IPPROTO_UDP                       = 0x11
+       IPPROTO_VRRP                      = 0x70
+       IPV6_CHECKSUM                     = 0x1a
+       IPV6_DEFAULT_MULTICAST_HOPS       = 0x1
+       IPV6_DEFAULT_MULTICAST_LOOP       = 0x1
+       IPV6_DEFHLIM                      = 0x40
+       IPV6_DONTFRAG                     = 0x3e
+       IPV6_DSTOPTS                      = 0x32
+       IPV6_FAITH                        = 0x1d
+       IPV6_FLOWINFO_MASK                = 0xffffff0f
+       IPV6_FLOWLABEL_MASK               = 0xffff0f00
+       IPV6_FRAGTTL                      = 0x78
+       IPV6_HLIMDEC                      = 0x1
+       IPV6_HOPLIMIT                     = 0x2f
+       IPV6_HOPOPTS                      = 0x31
+       IPV6_IPSEC_POLICY                 = 0x1c
+       IPV6_JOIN_GROUP                   = 0xc
+       IPV6_LEAVE_GROUP                  = 0xd
+       IPV6_MAXHLIM                      = 0xff
+       IPV6_MAXPACKET                    = 0xffff
+       IPV6_MMTU                         = 0x500
+       IPV6_MULTICAST_HOPS               = 0xa
+       IPV6_MULTICAST_IF                 = 0x9
+       IPV6_MULTICAST_LOOP               = 0xb
+       IPV6_NEXTHOP                      = 0x30
+       IPV6_PATHMTU                      = 0x2c
+       IPV6_PKTINFO                      = 0x2e
+       IPV6_PORTRANGE                    = 0xe
+       IPV6_PORTRANGE_DEFAULT            = 0x0
+       IPV6_PORTRANGE_HIGH               = 0x1
+       IPV6_PORTRANGE_LOW                = 0x2
+       IPV6_RECVDSTOPTS                  = 0x28
+       IPV6_RECVHOPLIMIT                 = 0x25
+       IPV6_RECVHOPOPTS                  = 0x27
+       IPV6_RECVPATHMTU                  = 0x2b
+       IPV6_RECVPKTINFO                  = 0x24
+       IPV6_RECVRTHDR                    = 0x26
+       IPV6_RECVTCLASS                   = 0x39
+       IPV6_RTHDR                        = 0x33
+       IPV6_RTHDRDSTOPTS                 = 0x23
+       IPV6_RTHDR_LOOSE                  = 0x0
+       IPV6_RTHDR_STRICT                 = 0x1
+       IPV6_RTHDR_TYPE_0                 = 0x0
+       IPV6_SOCKOPT_RESERVED1            = 0x3
+       IPV6_TCLASS                       = 0x3d
+       IPV6_UNICAST_HOPS                 = 0x4
+       IPV6_USE_MIN_MTU                  = 0x2a
+       IPV6_V6ONLY                       = 0x1b
+       IPV6_VERSION                      = 0x60
+       IPV6_VERSION_MASK                 = 0xf0
+       IP_ADD_MEMBERSHIP                 = 0xc
+       IP_DEFAULT_MULTICAST_LOOP         = 0x1
+       IP_DEFAULT_MULTICAST_TTL          = 0x1
+       IP_DF                             = 0x4000
+       IP_DROP_MEMBERSHIP                = 0xd
+       IP_EF                             = 0x8000
+       IP_ERRORMTU                       = 0x15
+       IP_HDRINCL                        = 0x2
+       IP_IPSEC_POLICY                   = 0x16
+       IP_MAXPACKET                      = 0xffff
+       IP_MAX_MEMBERSHIPS                = 0x14
+       IP_MF                             = 0x2000
+       IP_MINFRAGSIZE                    = 0x45
+       IP_MINTTL                         = 0x18
+       IP_MSS                            = 0x240
+       IP_MULTICAST_IF                   = 0x9
+       IP_MULTICAST_LOOP                 = 0xb
+       IP_MULTICAST_TTL                  = 0xa
+       IP_OFFMASK                        = 0x1fff
+       IP_OPTIONS                        = 0x1
+       IP_PORTRANGE                      = 0x13
+       IP_PORTRANGE_DEFAULT              = 0x0
+       IP_PORTRANGE_HIGH                 = 0x1
+       IP_PORTRANGE_LOW                  = 0x2
+       IP_RECVDSTADDR                    = 0x7
+       IP_RECVIF                         = 0x14
+       IP_RECVOPTS                       = 0x5
+       IP_RECVRETOPTS                    = 0x6
+       IP_RECVTTL                        = 0x17
+       IP_RETOPTS                        = 0x8
+       IP_RF                             = 0x8000
+       IP_TOS                            = 0x3
+       IP_TTL                            = 0x4
+       ISIG                              = 0x80
+       ISTRIP                            = 0x20
+       IXANY                             = 0x800
+       IXOFF                             = 0x400
+       IXON                              = 0x200
+       LOCK_EX                           = 0x2
+       LOCK_NB                           = 0x4
+       LOCK_SH                           = 0x1
+       LOCK_UN                           = 0x8
+       MADV_DONTNEED                     = 0x4
+       MADV_FREE                         = 0x6
+       MADV_NORMAL                       = 0x0
+       MADV_RANDOM                       = 0x1
+       MADV_SEQUENTIAL                   = 0x2
+       MADV_SPACEAVAIL                   = 0x5
+       MADV_WILLNEED                     = 0x3
+       MAP_ALIGNMENT_16MB                = 0x18000000
+       MAP_ALIGNMENT_1TB                 = 0x28000000
+       MAP_ALIGNMENT_256TB               = 0x30000000
+       MAP_ALIGNMENT_4GB                 = 0x20000000
+       MAP_ALIGNMENT_64KB                = 0x10000000
+       MAP_ALIGNMENT_64PB                = 0x38000000
+       MAP_ALIGNMENT_MASK                = -0x1000000
+       MAP_ALIGNMENT_SHIFT               = 0x18
+       MAP_ANON                          = 0x1000
+       MAP_FILE                          = 0x0
+       MAP_FIXED                         = 0x10
+       MAP_HASSEMAPHORE                  = 0x200
+       MAP_INHERIT                       = 0x80
+       MAP_INHERIT_COPY                  = 0x1
+       MAP_INHERIT_DEFAULT               = 0x1
+       MAP_INHERIT_DONATE_COPY           = 0x3
+       MAP_INHERIT_NONE                  = 0x2
+       MAP_INHERIT_SHARE                 = 0x0
+       MAP_NORESERVE                     = 0x40
+       MAP_PRIVATE                       = 0x2
+       MAP_RENAME                        = 0x20
+       MAP_SHARED                        = 0x1
+       MAP_STACK                         = 0x2000
+       MAP_TRYFIXED                      = 0x400
+       MAP_WIRED                         = 0x800
+       MCL_CURRENT                       = 0x1
+       MCL_FUTURE                        = 0x2
+       MSG_BCAST                         = 0x100
+       MSG_CMSG_CLOEXEC                  = 0x800
+       MSG_CONTROLMBUF                   = 0x2000000
+       MSG_CTRUNC                        = 0x20
+       MSG_DONTROUTE                     = 0x4
+       MSG_DONTWAIT                      = 0x80
+       MSG_EOR                           = 0x8
+       MSG_IOVUSRSPACE                   = 0x4000000
+       MSG_LENUSRSPACE                   = 0x8000000
+       MSG_MCAST                         = 0x200
+       MSG_NAMEMBUF                      = 0x1000000
+       MSG_NBIO                          = 0x1000
+       MSG_NOSIGNAL                      = 0x400
+       MSG_OOB                           = 0x1
+       MSG_PEEK                          = 0x2
+       MSG_TRUNC                         = 0x10
+       MSG_USERFLAGS                     = 0xffffff
+       MSG_WAITALL                       = 0x40
+       MS_ASYNC                          = 0x1
+       MS_INVALIDATE                     = 0x2
+       MS_SYNC                           = 0x4
+       NAME_MAX                          = 0x1ff
+       NET_RT_DUMP                       = 0x1
+       NET_RT_FLAGS                      = 0x2
+       NET_RT_IFLIST                     = 0x5
+       NET_RT_MAXID                      = 0x6
+       NET_RT_OIFLIST                    = 0x4
+       NET_RT_OOIFLIST                   = 0x3
+       NOFLSH                            = 0x80000000
+       NOTE_ATTRIB                       = 0x8
+       NOTE_CHILD                        = 0x4
+       NOTE_DELETE                       = 0x1
+       NOTE_EXEC                         = 0x20000000
+       NOTE_EXIT                         = 0x80000000
+       NOTE_EXTEND                       = 0x4
+       NOTE_FORK                         = 0x40000000
+       NOTE_LINK                         = 0x10
+       NOTE_LOWAT                        = 0x1
+       NOTE_PCTRLMASK                    = 0xf0000000
+       NOTE_PDATAMASK                    = 0xfffff
+       NOTE_RENAME                       = 0x20
+       NOTE_REVOKE                       = 0x40
+       NOTE_TRACK                        = 0x1
+       NOTE_TRACKERR                     = 0x2
+       NOTE_WRITE                        = 0x2
+       OCRNL                             = 0x10
+       OFIOGETBMAP                       = 0xc004667a
+       ONLCR                             = 0x2
+       ONLRET                            = 0x40
+       ONOCR                             = 0x20
+       ONOEOT                            = 0x8
+       OPOST                             = 0x1
+       O_ACCMODE                         = 0x3
+       O_ALT_IO                          = 0x40000
+       O_APPEND                          = 0x8
+       O_ASYNC                           = 0x40
+       O_CLOEXEC                         = 0x400000
+       O_CREAT                           = 0x200
+       O_DIRECT                          = 0x80000
+       O_DIRECTORY                       = 0x200000
+       O_DSYNC                           = 0x10000
+       O_EXCL                            = 0x800
+       O_EXLOCK                          = 0x20
+       O_FSYNC                           = 0x80
+       O_NDELAY                          = 0x4
+       O_NOCTTY                          = 0x8000
+       O_NOFOLLOW                        = 0x100
+       O_NONBLOCK                        = 0x4
+       O_NOSIGPIPE                       = 0x1000000
+       O_RDONLY                          = 0x0
+       O_RDWR                            = 0x2
+       O_RSYNC                           = 0x20000
+       O_SHLOCK                          = 0x10
+       O_SYNC                            = 0x80
+       O_TRUNC                           = 0x400
+       O_WRONLY                          = 0x1
+       PARENB                            = 0x1000
+       PARMRK                            = 0x8
+       PARODD                            = 0x2000
+       PENDIN                            = 0x20000000
+       PRIO_PGRP                         = 0x1
+       PRIO_PROCESS                      = 0x0
+       PRIO_USER                         = 0x2
+       PRI_IOFLUSH                       = 0x7c
+       PROT_EXEC                         = 0x4
+       PROT_NONE                         = 0x0
+       PROT_READ                         = 0x1
+       PROT_WRITE                        = 0x2
+       RLIMIT_AS                         = 0xa
+       RLIMIT_CORE                       = 0x4
+       RLIMIT_CPU                        = 0x0
+       RLIMIT_DATA                       = 0x2
+       RLIMIT_FSIZE                      = 0x1
+       RLIMIT_NOFILE                     = 0x8
+       RLIMIT_STACK                      = 0x3
+       RLIM_INFINITY                     = 0x7fffffffffffffff
+       RTAX_AUTHOR                       = 0x6
+       RTAX_BRD                          = 0x7
+       RTAX_DST                          = 0x0
+       RTAX_GATEWAY                      = 0x1
+       RTAX_GENMASK                      = 0x3
+       RTAX_IFA                          = 0x5
+       RTAX_IFP                          = 0x4
+       RTAX_MAX                          = 0x9
+       RTAX_NETMASK                      = 0x2
+       RTAX_TAG                          = 0x8
+       RTA_AUTHOR                        = 0x40
+       RTA_BRD                           = 0x80
+       RTA_DST                           = 0x1
+       RTA_GATEWAY                       = 0x2
+       RTA_GENMASK                       = 0x8
+       RTA_IFA                           = 0x20
+       RTA_IFP                           = 0x10
+       RTA_NETMASK                       = 0x4
+       RTA_TAG                           = 0x100
+       RTF_ANNOUNCE                      = 0x20000
+       RTF_BLACKHOLE                     = 0x1000
+       RTF_CLONED                        = 0x2000
+       RTF_CLONING                       = 0x100
+       RTF_DONE                          = 0x40
+       RTF_DYNAMIC                       = 0x10
+       RTF_GATEWAY                       = 0x2
+       RTF_HOST                          = 0x4
+       RTF_LLINFO                        = 0x400
+       RTF_MASK                          = 0x80
+       RTF_MODIFIED                      = 0x20
+       RTF_PROTO1                        = 0x8000
+       RTF_PROTO2                        = 0x4000
+       RTF_REJECT                        = 0x8
+       RTF_SRC                           = 0x10000
+       RTF_STATIC                        = 0x800
+       RTF_UP                            = 0x1
+       RTF_XRESOLVE                      = 0x200
+       RTM_ADD                           = 0x1
+       RTM_CHANGE                        = 0x3
+       RTM_CHGADDR                       = 0x15
+       RTM_DELADDR                       = 0xd
+       RTM_DELETE                        = 0x2
+       RTM_GET                           = 0x4
+       RTM_IEEE80211                     = 0x11
+       RTM_IFANNOUNCE                    = 0x10
+       RTM_IFINFO                        = 0x14
+       RTM_LLINFO_UPD                    = 0x13
+       RTM_LOCK                          = 0x8
+       RTM_LOSING                        = 0x5
+       RTM_MISS                          = 0x7
+       RTM_NEWADDR                       = 0xc
+       RTM_OIFINFO                       = 0xf
+       RTM_OLDADD                        = 0x9
+       RTM_OLDDEL                        = 0xa
+       RTM_OOIFINFO                      = 0xe
+       RTM_REDIRECT                      = 0x6
+       RTM_RESOLVE                       = 0xb
+       RTM_RTTUNIT                       = 0xf4240
+       RTM_SETGATE                       = 0x12
+       RTM_VERSION                       = 0x4
+       RTV_EXPIRE                        = 0x4
+       RTV_HOPCOUNT                      = 0x2
+       RTV_MTU                           = 0x1
+       RTV_RPIPE                         = 0x8
+       RTV_RTT                           = 0x40
+       RTV_RTTVAR                        = 0x80
+       RTV_SPIPE                         = 0x10
+       RTV_SSTHRESH                      = 0x20
+       RUSAGE_CHILDREN                   = -0x1
+       RUSAGE_SELF                       = 0x0
+       SCM_CREDS                         = 0x4
+       SCM_RIGHTS                        = 0x1
+       SCM_TIMESTAMP                     = 0x8
+       SHUT_RD                           = 0x0
+       SHUT_RDWR                         = 0x2
+       SHUT_WR                           = 0x1
+       SIOCADDMULTI                      = 0x80906931
+       SIOCADDRT                         = 0x8038720a
+       SIOCAIFADDR                       = 0x8040691a
+       SIOCALIFADDR                      = 0x8118691c
+       SIOCATMARK                        = 0x40047307
+       SIOCDELMULTI                      = 0x80906932
+       SIOCDELRT                         = 0x8038720b
+       SIOCDIFADDR                       = 0x80906919
+       SIOCDIFPHYADDR                    = 0x80906949
+       SIOCDLIFADDR                      = 0x8118691e
+       SIOCGDRVSPEC                      = 0xc028697b
+       SIOCGETPFSYNC                     = 0xc09069f8
+       SIOCGETSGCNT                      = 0xc0207534
+       SIOCGETVIFCNT                     = 0xc0287533
+       SIOCGHIWAT                        = 0x40047301
+       SIOCGIFADDR                       = 0xc0906921
+       SIOCGIFADDRPREF                   = 0xc0986920
+       SIOCGIFALIAS                      = 0xc040691b
+       SIOCGIFBRDADDR                    = 0xc0906923
+       SIOCGIFCAP                        = 0xc0206976
+       SIOCGIFCONF                       = 0xc0106926
+       SIOCGIFDATA                       = 0xc0986985
+       SIOCGIFDLT                        = 0xc0906977
+       SIOCGIFDSTADDR                    = 0xc0906922
+       SIOCGIFFLAGS                      = 0xc0906911
+       SIOCGIFGENERIC                    = 0xc090693a
+       SIOCGIFMEDIA                      = 0xc0306936
+       SIOCGIFMETRIC                     = 0xc0906917
+       SIOCGIFMTU                        = 0xc090697e
+       SIOCGIFNETMASK                    = 0xc0906925
+       SIOCGIFPDSTADDR                   = 0xc0906948
+       SIOCGIFPSRCADDR                   = 0xc0906947
+       SIOCGLIFADDR                      = 0xc118691d
+       SIOCGLIFPHYADDR                   = 0xc118694b
+       SIOCGLINKSTR                      = 0xc0286987
+       SIOCGLOWAT                        = 0x40047303
+       SIOCGPGRP                         = 0x40047309
+       SIOCGVH                           = 0xc0906983
+       SIOCIFCREATE                      = 0x8090697a
+       SIOCIFDESTROY                     = 0x80906979
+       SIOCIFGCLONERS                    = 0xc0106978
+       SIOCINITIFADDR                    = 0xc0706984
+       SIOCSDRVSPEC                      = 0x8028697b
+       SIOCSETPFSYNC                     = 0x809069f7
+       SIOCSHIWAT                        = 0x80047300
+       SIOCSIFADDR                       = 0x8090690c
+       SIOCSIFADDRPREF                   = 0x8098691f
+       SIOCSIFBRDADDR                    = 0x80906913
+       SIOCSIFCAP                        = 0x80206975
+       SIOCSIFDSTADDR                    = 0x8090690e
+       SIOCSIFFLAGS                      = 0x80906910
+       SIOCSIFGENERIC                    = 0x80906939
+       SIOCSIFMEDIA                      = 0xc0906935
+       SIOCSIFMETRIC                     = 0x80906918
+       SIOCSIFMTU                        = 0x8090697f
+       SIOCSIFNETMASK                    = 0x80906916
+       SIOCSIFPHYADDR                    = 0x80406946
+       SIOCSLIFPHYADDR                   = 0x8118694a
+       SIOCSLINKSTR                      = 0x80286988
+       SIOCSLOWAT                        = 0x80047302
+       SIOCSPGRP                         = 0x80047308
+       SIOCSVH                           = 0xc0906982
+       SIOCZIFDATA                       = 0xc0986986
+       SOCK_CLOEXEC                      = 0x10000000
+       SOCK_DGRAM                        = 0x2
+       SOCK_FLAGS_MASK                   = 0xf0000000
+       SOCK_NONBLOCK                     = 0x20000000
+       SOCK_NOSIGPIPE                    = 0x40000000
+       SOCK_RAW                          = 0x3
+       SOCK_RDM                          = 0x4
+       SOCK_SEQPACKET                    = 0x5
+       SOCK_STREAM                       = 0x1
+       SOL_SOCKET                        = 0xffff
+       SOMAXCONN                         = 0x80
+       SO_ACCEPTCONN                     = 0x2
+       SO_ACCEPTFILTER                   = 0x1000
+       SO_BROADCAST                      = 0x20
+       SO_DEBUG                          = 0x1
+       SO_DONTROUTE                      = 0x10
+       SO_ERROR                          = 0x1007
+       SO_KEEPALIVE                      = 0x8
+       SO_LINGER                         = 0x80
+       SO_NOHEADER                       = 0x100a
+       SO_NOSIGPIPE                      = 0x800
+       SO_OOBINLINE                      = 0x100
+       SO_OVERFLOWED                     = 0x1009
+       SO_RCVBUF                         = 0x1002
+       SO_RCVLOWAT                       = 0x1004
+       SO_RCVTIMEO                       = 0x100c
+       SO_REUSEADDR                      = 0x4
+       SO_REUSEPORT                      = 0x200
+       SO_SNDBUF                         = 0x1001
+       SO_SNDLOWAT                       = 0x1003
+       SO_SNDTIMEO                       = 0x100b
+       SO_TIMESTAMP                      = 0x2000
+       SO_TYPE                           = 0x1008
+       SO_USELOOPBACK                    = 0x40
+       SYSCTL_VERSION                    = 0x1000000
+       SYSCTL_VERS_0                     = 0x0
+       SYSCTL_VERS_1                     = 0x1000000
+       SYSCTL_VERS_MASK                  = 0xff000000
+       S_ARCH1                           = 0x10000
+       S_ARCH2                           = 0x20000
+       S_BLKSIZE                         = 0x200
+       S_IEXEC                           = 0x40
+       S_IFBLK                           = 0x6000
+       S_IFCHR                           = 0x2000
+       S_IFDIR                           = 0x4000
+       S_IFIFO                           = 0x1000
+       S_IFLNK                           = 0xa000
+       S_IFMT                            = 0xf000
+       S_IFREG                           = 0x8000
+       S_IFSOCK                          = 0xc000
+       S_IFWHT                           = 0xe000
+       S_IREAD                           = 0x100
+       S_IRGRP                           = 0x20
+       S_IROTH                           = 0x4
+       S_IRUSR                           = 0x100
+       S_IRWXG                           = 0x38
+       S_IRWXO                           = 0x7
+       S_IRWXU                           = 0x1c0
+       S_ISGID                           = 0x400
+       S_ISTXT                           = 0x200
+       S_ISUID                           = 0x800
+       S_ISVTX                           = 0x200
+       S_IWGRP                           = 0x10
+       S_IWOTH                           = 0x2
+       S_IWRITE                          = 0x80
+       S_IWUSR                           = 0x80
+       S_IXGRP                           = 0x8
+       S_IXOTH                           = 0x1
+       S_IXUSR                           = 0x40
+       S_LOGIN_SET                       = 0x1
+       TCIFLUSH                          = 0x1
+       TCIOFLUSH                         = 0x3
+       TCOFLUSH                          = 0x2
+       TCP_CONGCTL                       = 0x20
+       TCP_KEEPCNT                       = 0x6
+       TCP_KEEPIDLE                      = 0x3
+       TCP_KEEPINIT                      = 0x7
+       TCP_KEEPINTVL                     = 0x5
+       TCP_MAXBURST                      = 0x4
+       TCP_MAXSEG                        = 0x2
+       TCP_MAXWIN                        = 0xffff
+       TCP_MAX_WINSHIFT                  = 0xe
+       TCP_MD5SIG                        = 0x10
+       TCP_MINMSS                        = 0xd8
+       TCP_MSS                           = 0x218
+       TCP_NODELAY                       = 0x1
+       TCSAFLUSH                         = 0x2
+       TIOCCBRK                          = 0x2000747a
+       TIOCCDTR                          = 0x20007478
+       TIOCCONS                          = 0x80047462
+       TIOCDCDTIMESTAMP                  = 0x40107458
+       TIOCDRAIN                         = 0x2000745e
+       TIOCEXCL                          = 0x2000740d
+       TIOCEXT                           = 0x80047460
+       TIOCFLAG_CDTRCTS                  = 0x10
+       TIOCFLAG_CLOCAL                   = 0x2
+       TIOCFLAG_CRTSCTS                  = 0x4
+       TIOCFLAG_MDMBUF                   = 0x8
+       TIOCFLAG_SOFTCAR                  = 0x1
+       TIOCFLUSH                         = 0x80047410
+       TIOCGETA                          = 0x402c7413
+       TIOCGETD                          = 0x4004741a
+       TIOCGFLAGS                        = 0x4004745d
+       TIOCGLINED                        = 0x40207442
+       TIOCGPGRP                         = 0x40047477
+       TIOCGQSIZE                        = 0x40047481
+       TIOCGRANTPT                       = 0x20007447
+       TIOCGSID                          = 0x40047463
+       TIOCGSIZE                         = 0x40087468
+       TIOCGWINSZ                        = 0x40087468
+       TIOCMBIC                          = 0x8004746b
+       TIOCMBIS                          = 0x8004746c
+       TIOCMGET                          = 0x4004746a
+       TIOCMSET                          = 0x8004746d
+       TIOCM_CAR                         = 0x40
+       TIOCM_CD                          = 0x40
+       TIOCM_CTS                         = 0x20
+       TIOCM_DSR                         = 0x100
+       TIOCM_DTR                         = 0x2
+       TIOCM_LE                          = 0x1
+       TIOCM_RI                          = 0x80
+       TIOCM_RNG                         = 0x80
+       TIOCM_RTS                         = 0x4
+       TIOCM_SR                          = 0x10
+       TIOCM_ST                          = 0x8
+       TIOCNOTTY                         = 0x20007471
+       TIOCNXCL                          = 0x2000740e
+       TIOCOUTQ                          = 0x40047473
+       TIOCPKT                           = 0x80047470
+       TIOCPKT_DATA                      = 0x0
+       TIOCPKT_DOSTOP                    = 0x20
+       TIOCPKT_FLUSHREAD                 = 0x1
+       TIOCPKT_FLUSHWRITE                = 0x2
+       TIOCPKT_IOCTL                     = 0x40
+       TIOCPKT_NOSTOP                    = 0x10
+       TIOCPKT_START                     = 0x8
+       TIOCPKT_STOP                      = 0x4
+       TIOCPTMGET                        = 0x40287446
+       TIOCPTSNAME                       = 0x40287448
+       TIOCRCVFRAME                      = 0x80087445
+       TIOCREMOTE                        = 0x80047469
+       TIOCSBRK                          = 0x2000747b
+       TIOCSCTTY                         = 0x20007461
+       TIOCSDTR                          = 0x20007479
+       TIOCSETA                          = 0x802c7414
+       TIOCSETAF                         = 0x802c7416
+       TIOCSETAW                         = 0x802c7415
+       TIOCSETD                          = 0x8004741b
+       TIOCSFLAGS                        = 0x8004745c
+       TIOCSIG                           = 0x2000745f
+       TIOCSLINED                        = 0x80207443
+       TIOCSPGRP                         = 0x80047476
+       TIOCSQSIZE                        = 0x80047480
+       TIOCSSIZE                         = 0x80087467
+       TIOCSTART                         = 0x2000746e
+       TIOCSTAT                          = 0x80047465
+       TIOCSTI                           = 0x80017472
+       TIOCSTOP                          = 0x2000746f
+       TIOCSWINSZ                        = 0x80087467
+       TIOCUCNTL                         = 0x80047466
+       TIOCXMTFRAME                      = 0x80087444
+       TOSTOP                            = 0x400000
+       VDISCARD                          = 0xf
+       VDSUSP                            = 0xb
+       VEOF                              = 0x0
+       VEOL                              = 0x1
+       VEOL2                             = 0x2
+       VERASE                            = 0x3
+       VINTR                             = 0x8
+       VKILL                             = 0x5
+       VLNEXT                            = 0xe
+       VMIN                              = 0x10
+       VQUIT                             = 0x9
+       VREPRINT                          = 0x6
+       VSTART                            = 0xc
+       VSTATUS                           = 0x12
+       VSTOP                             = 0xd
+       VSUSP                             = 0xa
+       VTIME                             = 0x11
+       VWERASE                           = 0x4
+       WALL                              = 0x8
+       WALLSIG                           = 0x8
+       WALTSIG                           = 0x4
+       WCLONE                            = 0x4
+       WCOREFLAG                         = 0x80
+       WNOHANG                           = 0x1
+       WNOWAIT                           = 0x10000
+       WNOZOMBIE                         = 0x20000
+       WOPTSCHECKED                      = 0x40000
+       WSTOPPED                          = 0x7f
+       WUNTRACED                         = 0x2
+)
+
+// Errors
+const (
+       E2BIG           = syscall.Errno(0x7)
+       EACCES          = syscall.Errno(0xd)
+       EADDRINUSE      = syscall.Errno(0x30)
+       EADDRNOTAVAIL   = syscall.Errno(0x31)
+       EAFNOSUPPORT    = syscall.Errno(0x2f)
+       EAGAIN          = syscall.Errno(0x23)
+       EALREADY        = syscall.Errno(0x25)
+       EAUTH           = syscall.Errno(0x50)
+       EBADF           = syscall.Errno(0x9)
+       EBADMSG         = syscall.Errno(0x58)
+       EBADRPC         = syscall.Errno(0x48)
+       EBUSY           = syscall.Errno(0x10)
+       ECANCELED       = syscall.Errno(0x57)
+       ECHILD          = syscall.Errno(0xa)
+       ECONNABORTED    = syscall.Errno(0x35)
+       ECONNREFUSED    = syscall.Errno(0x3d)
+       ECONNRESET      = syscall.Errno(0x36)
+       EDEADLK         = syscall.Errno(0xb)
+       EDESTADDRREQ    = syscall.Errno(0x27)
+       EDOM            = syscall.Errno(0x21)
+       EDQUOT          = syscall.Errno(0x45)
+       EEXIST          = syscall.Errno(0x11)
+       EFAULT          = syscall.Errno(0xe)
+       EFBIG           = syscall.Errno(0x1b)
+       EFTYPE          = syscall.Errno(0x4f)
+       EHOSTDOWN       = syscall.Errno(0x40)
+       EHOSTUNREACH    = syscall.Errno(0x41)
+       EIDRM           = syscall.Errno(0x52)
+       EILSEQ          = syscall.Errno(0x55)
+       EINPROGRESS     = syscall.Errno(0x24)
+       EINTR           = syscall.Errno(0x4)
+       EINVAL          = syscall.Errno(0x16)
+       EIO             = syscall.Errno(0x5)
+       EISCONN         = syscall.Errno(0x38)
+       EISDIR          = syscall.Errno(0x15)
+       ELAST           = syscall.Errno(0x60)
+       ELOOP           = syscall.Errno(0x3e)
+       EMFILE          = syscall.Errno(0x18)
+       EMLINK          = syscall.Errno(0x1f)
+       EMSGSIZE        = syscall.Errno(0x28)
+       EMULTIHOP       = syscall.Errno(0x5e)
+       ENAMETOOLONG    = syscall.Errno(0x3f)
+       ENEEDAUTH       = syscall.Errno(0x51)
+       ENETDOWN        = syscall.Errno(0x32)
+       ENETRESET       = syscall.Errno(0x34)
+       ENETUNREACH     = syscall.Errno(0x33)
+       ENFILE          = syscall.Errno(0x17)
+       ENOATTR         = syscall.Errno(0x5d)
+       ENOBUFS         = syscall.Errno(0x37)
+       ENODATA         = syscall.Errno(0x59)
+       ENODEV          = syscall.Errno(0x13)
+       ENOENT          = syscall.Errno(0x2)
+       ENOEXEC         = syscall.Errno(0x8)
+       ENOLCK          = syscall.Errno(0x4d)
+       ENOLINK         = syscall.Errno(0x5f)
+       ENOMEM          = syscall.Errno(0xc)
+       ENOMSG          = syscall.Errno(0x53)
+       ENOPROTOOPT     = syscall.Errno(0x2a)
+       ENOSPC          = syscall.Errno(0x1c)
+       ENOSR           = syscall.Errno(0x5a)
+       ENOSTR          = syscall.Errno(0x5b)
+       ENOSYS          = syscall.Errno(0x4e)
+       ENOTBLK         = syscall.Errno(0xf)
+       ENOTCONN        = syscall.Errno(0x39)
+       ENOTDIR         = syscall.Errno(0x14)
+       ENOTEMPTY       = syscall.Errno(0x42)
+       ENOTSOCK        = syscall.Errno(0x26)
+       ENOTSUP         = syscall.Errno(0x56)
+       ENOTTY          = syscall.Errno(0x19)
+       ENXIO           = syscall.Errno(0x6)
+       EOPNOTSUPP      = syscall.Errno(0x2d)
+       EOVERFLOW       = syscall.Errno(0x54)
+       EPERM           = syscall.Errno(0x1)
+       EPFNOSUPPORT    = syscall.Errno(0x2e)
+       EPIPE           = syscall.Errno(0x20)
+       EPROCLIM        = syscall.Errno(0x43)
+       EPROCUNAVAIL    = syscall.Errno(0x4c)
+       EPROGMISMATCH   = syscall.Errno(0x4b)
+       EPROGUNAVAIL    = syscall.Errno(0x4a)
+       EPROTO          = syscall.Errno(0x60)
+       EPROTONOSUPPORT = syscall.Errno(0x2b)
+       EPROTOTYPE      = syscall.Errno(0x29)
+       ERANGE          = syscall.Errno(0x22)
+       EREMOTE         = syscall.Errno(0x47)
+       EROFS           = syscall.Errno(0x1e)
+       ERPCMISMATCH    = syscall.Errno(0x49)
+       ESHUTDOWN       = syscall.Errno(0x3a)
+       ESOCKTNOSUPPORT = syscall.Errno(0x2c)
+       ESPIPE          = syscall.Errno(0x1d)
+       ESRCH           = syscall.Errno(0x3)
+       ESTALE          = syscall.Errno(0x46)
+       ETIME           = syscall.Errno(0x5c)
+       ETIMEDOUT       = syscall.Errno(0x3c)
+       ETOOMANYREFS    = syscall.Errno(0x3b)
+       ETXTBSY         = syscall.Errno(0x1a)
+       EUSERS          = syscall.Errno(0x44)
+       EWOULDBLOCK     = syscall.Errno(0x23)
+       EXDEV           = syscall.Errno(0x12)
+)
+
+// Signals
+const (
+       SIGABRT   = syscall.Signal(0x6)
+       SIGALRM   = syscall.Signal(0xe)
+       SIGBUS    = syscall.Signal(0xa)
+       SIGCHLD   = syscall.Signal(0x14)
+       SIGCONT   = syscall.Signal(0x13)
+       SIGEMT    = syscall.Signal(0x7)
+       SIGFPE    = syscall.Signal(0x8)
+       SIGHUP    = syscall.Signal(0x1)
+       SIGILL    = syscall.Signal(0x4)
+       SIGINFO   = syscall.Signal(0x1d)
+       SIGINT    = syscall.Signal(0x2)
+       SIGIO     = syscall.Signal(0x17)
+       SIGIOT    = syscall.Signal(0x6)
+       SIGKILL   = syscall.Signal(0x9)
+       SIGPIPE   = syscall.Signal(0xd)
+       SIGPROF   = syscall.Signal(0x1b)
+       SIGPWR    = syscall.Signal(0x20)
+       SIGQUIT   = syscall.Signal(0x3)
+       SIGSEGV   = syscall.Signal(0xb)
+       SIGSTOP   = syscall.Signal(0x11)
+       SIGSYS    = syscall.Signal(0xc)
+       SIGTERM   = syscall.Signal(0xf)
+       SIGTRAP   = syscall.Signal(0x5)
+       SIGTSTP   = syscall.Signal(0x12)
+       SIGTTIN   = syscall.Signal(0x15)
+       SIGTTOU   = syscall.Signal(0x16)
+       SIGURG    = syscall.Signal(0x10)
+       SIGUSR1   = syscall.Signal(0x1e)
+       SIGUSR2   = syscall.Signal(0x1f)
+       SIGVTALRM = syscall.Signal(0x1a)
+       SIGWINCH  = syscall.Signal(0x1c)
+       SIGXCPU   = syscall.Signal(0x18)
+       SIGXFSZ   = syscall.Signal(0x19)
+)
+
+// Error table
+var errors = [...]string{
+       1:  "operation not permitted",
+       2:  "no such file or directory",
+       3:  "no such process",
+       4:  "interrupted system call",
+       5:  "input/output error",
+       6:  "device not configured",
+       7:  "argument list too long",
+       8:  "exec format error",
+       9:  "bad file descriptor",
+       10: "no child processes",
+       11: "resource deadlock avoided",
+       12: "cannot allocate memory",
+       13: "permission denied",
+       14: "bad address",
+       15: "block device required",
+       16: "device busy",
+       17: "file exists",
+       18: "cross-device link",
+       19: "operation not supported by device",
+       20: "not a directory",
+       21: "is a directory",
+       22: "invalid argument",
+       23: "too many open files in system",
+       24: "too many open files",
+       25: "inappropriate ioctl for device",
+       26: "text file busy",
+       27: "file too large",
+       28: "no space left on device",
+       29: "illegal seek",
+       30: "read-only file system",
+       31: "too many links",
+       32: "broken pipe",
+       33: "numerical argument out of domain",
+       34: "result too large or too small",
+       35: "resource temporarily unavailable",
+       36: "operation now in progress",
+       37: "operation already in progress",
+       38: "socket operation on non-socket",
+       39: "destination address required",
+       40: "message too long",
+       41: "protocol wrong type for socket",
+       42: "protocol option not available",
+       43: "protocol not supported",
+       44: "socket type not supported",
+       45: "operation not supported",
+       46: "protocol family not supported",
+       47: "address family not supported by protocol family",
+       48: "address already in use",
+       49: "can't assign requested address",
+       50: "network is down",
+       51: "network is unreachable",
+       52: "network dropped connection on reset",
+       53: "software caused connection abort",
+       54: "connection reset by peer",
+       55: "no buffer space available",
+       56: "socket is already connected",
+       57: "socket is not connected",
+       58: "can't send after socket shutdown",
+       59: "too many references: can't splice",
+       60: "connection timed out",
+       61: "connection refused",
+       62: "too many levels of symbolic links",
+       63: "file name too long",
+       64: "host is down",
+       65: "no route to host",
+       66: "directory not empty",
+       67: "too many processes",
+       68: "too many users",
+       69: "disc quota exceeded",
+       70: "stale NFS file handle",
+       71: "too many levels of remote in path",
+       72: "RPC struct is bad",
+       73: "RPC version wrong",
+       74: "RPC prog. not avail",
+       75: "program version wrong",
+       76: "bad procedure for program",
+       77: "no locks available",
+       78: "function not implemented",
+       79: "inappropriate file type or format",
+       80: "authentication error",
+       81: "need authenticator",
+       82: "identifier removed",
+       83: "no message of desired type",
+       84: "value too large to be stored in data type",
+       85: "illegal byte sequence",
+       86: "not supported",
+       87: "operation Canceled",
+       88: "bad or Corrupt message",
+       89: "no message available",
+       90: "no STREAM resources",
+       91: "not a STREAM",
+       92: "STREAM ioctl timeout",
+       93: "attribute not found",
+       94: "multihop attempted",
+       95: "link has been severed",
+       96: "protocol error",
+}
+
+// Signal table
+var signals = [...]string{
+       1:  "hangup",
+       2:  "interrupt",
+       3:  "quit",
+       4:  "illegal instruction",
+       5:  "trace/BPT trap",
+       6:  "abort trap",
+       7:  "EMT trap",
+       8:  "floating point exception",
+       9:  "killed",
+       10: "bus error",
+       11: "segmentation fault",
+       12: "bad system call",
+       13: "broken pipe",
+       14: "alarm clock",
+       15: "terminated",
+       16: "urgent I/O condition",
+       17: "stopped (signal)",
+       18: "stopped",
+       19: "continued",
+       20: "child exited",
+       21: "stopped (tty input)",
+       22: "stopped (tty output)",
+       23: "I/O possible",
+       24: "cputime limit exceeded",
+       25: "filesize limit exceeded",
+       26: "virtual timer expired",
+       27: "profiling timer expired",
+       28: "window size changes",
+       29: "information request",
+       30: "user defined signal 1",
+       31: "user defined signal 2",
+       32: "power fail/restart",
+}
diff --git a/vendor/golang.org/x/sys/unix/zerrors_netbsd_arm.go b/vendor/golang.org/x/sys/unix/zerrors_netbsd_arm.go
new file mode 100644 (file)
index 0000000..206c75f
--- /dev/null
@@ -0,0 +1,1691 @@
+// mkerrors.sh -marm
+// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT
+
+// +build arm,netbsd
+
+// Created by cgo -godefs - DO NOT EDIT
+// cgo -godefs -- -marm _const.go
+
+package unix
+
+import "syscall"
+
+const (
+       AF_APPLETALK                      = 0x10
+       AF_ARP                            = 0x1c
+       AF_BLUETOOTH                      = 0x1f
+       AF_CCITT                          = 0xa
+       AF_CHAOS                          = 0x5
+       AF_CNT                            = 0x15
+       AF_COIP                           = 0x14
+       AF_DATAKIT                        = 0x9
+       AF_DECnet                         = 0xc
+       AF_DLI                            = 0xd
+       AF_E164                           = 0x1a
+       AF_ECMA                           = 0x8
+       AF_HYLINK                         = 0xf
+       AF_IEEE80211                      = 0x20
+       AF_IMPLINK                        = 0x3
+       AF_INET                           = 0x2
+       AF_INET6                          = 0x18
+       AF_IPX                            = 0x17
+       AF_ISDN                           = 0x1a
+       AF_ISO                            = 0x7
+       AF_LAT                            = 0xe
+       AF_LINK                           = 0x12
+       AF_LOCAL                          = 0x1
+       AF_MAX                            = 0x23
+       AF_MPLS                           = 0x21
+       AF_NATM                           = 0x1b
+       AF_NS                             = 0x6
+       AF_OROUTE                         = 0x11
+       AF_OSI                            = 0x7
+       AF_PUP                            = 0x4
+       AF_ROUTE                          = 0x22
+       AF_SNA                            = 0xb
+       AF_UNIX                           = 0x1
+       AF_UNSPEC                         = 0x0
+       ARPHRD_ARCNET                     = 0x7
+       ARPHRD_ETHER                      = 0x1
+       ARPHRD_FRELAY                     = 0xf
+       ARPHRD_IEEE1394                   = 0x18
+       ARPHRD_IEEE802                    = 0x6
+       ARPHRD_STRIP                      = 0x17
+       B0                                = 0x0
+       B110                              = 0x6e
+       B115200                           = 0x1c200
+       B1200                             = 0x4b0
+       B134                              = 0x86
+       B14400                            = 0x3840
+       B150                              = 0x96
+       B1800                             = 0x708
+       B19200                            = 0x4b00
+       B200                              = 0xc8
+       B230400                           = 0x38400
+       B2400                             = 0x960
+       B28800                            = 0x7080
+       B300                              = 0x12c
+       B38400                            = 0x9600
+       B460800                           = 0x70800
+       B4800                             = 0x12c0
+       B50                               = 0x32
+       B57600                            = 0xe100
+       B600                              = 0x258
+       B7200                             = 0x1c20
+       B75                               = 0x4b
+       B76800                            = 0x12c00
+       B921600                           = 0xe1000
+       B9600                             = 0x2580
+       BIOCFEEDBACK                      = 0x8004427d
+       BIOCFLUSH                         = 0x20004268
+       BIOCGBLEN                         = 0x40044266
+       BIOCGDLT                          = 0x4004426a
+       BIOCGDLTLIST                      = 0xc0084277
+       BIOCGETIF                         = 0x4090426b
+       BIOCGFEEDBACK                     = 0x4004427c
+       BIOCGHDRCMPLT                     = 0x40044274
+       BIOCGRTIMEOUT                     = 0x400c427b
+       BIOCGSEESENT                      = 0x40044278
+       BIOCGSTATS                        = 0x4080426f
+       BIOCGSTATSOLD                     = 0x4008426f
+       BIOCIMMEDIATE                     = 0x80044270
+       BIOCPROMISC                       = 0x20004269
+       BIOCSBLEN                         = 0xc0044266
+       BIOCSDLT                          = 0x80044276
+       BIOCSETF                          = 0x80084267
+       BIOCSETIF                         = 0x8090426c
+       BIOCSFEEDBACK                     = 0x8004427d
+       BIOCSHDRCMPLT                     = 0x80044275
+       BIOCSRTIMEOUT                     = 0x800c427a
+       BIOCSSEESENT                      = 0x80044279
+       BIOCSTCPF                         = 0x80084272
+       BIOCSUDPF                         = 0x80084273
+       BIOCVERSION                       = 0x40044271
+       BPF_A                             = 0x10
+       BPF_ABS                           = 0x20
+       BPF_ADD                           = 0x0
+       BPF_ALIGNMENT                     = 0x4
+       BPF_ALIGNMENT32                   = 0x4
+       BPF_ALU                           = 0x4
+       BPF_AND                           = 0x50
+       BPF_B                             = 0x10
+       BPF_DFLTBUFSIZE                   = 0x100000
+       BPF_DIV                           = 0x30
+       BPF_H                             = 0x8
+       BPF_IMM                           = 0x0
+       BPF_IND                           = 0x40
+       BPF_JA                            = 0x0
+       BPF_JEQ                           = 0x10
+       BPF_JGE                           = 0x30
+       BPF_JGT                           = 0x20
+       BPF_JMP                           = 0x5
+       BPF_JSET                          = 0x40
+       BPF_K                             = 0x0
+       BPF_LD                            = 0x0
+       BPF_LDX                           = 0x1
+       BPF_LEN                           = 0x80
+       BPF_LSH                           = 0x60
+       BPF_MAJOR_VERSION                 = 0x1
+       BPF_MAXBUFSIZE                    = 0x1000000
+       BPF_MAXINSNS                      = 0x200
+       BPF_MEM                           = 0x60
+       BPF_MEMWORDS                      = 0x10
+       BPF_MINBUFSIZE                    = 0x20
+       BPF_MINOR_VERSION                 = 0x1
+       BPF_MISC                          = 0x7
+       BPF_MSH                           = 0xa0
+       BPF_MUL                           = 0x20
+       BPF_NEG                           = 0x80
+       BPF_OR                            = 0x40
+       BPF_RELEASE                       = 0x30bb6
+       BPF_RET                           = 0x6
+       BPF_RSH                           = 0x70
+       BPF_ST                            = 0x2
+       BPF_STX                           = 0x3
+       BPF_SUB                           = 0x10
+       BPF_TAX                           = 0x0
+       BPF_TXA                           = 0x80
+       BPF_W                             = 0x0
+       BPF_X                             = 0x8
+       BRKINT                            = 0x2
+       CFLUSH                            = 0xf
+       CLOCAL                            = 0x8000
+       CREAD                             = 0x800
+       CS5                               = 0x0
+       CS6                               = 0x100
+       CS7                               = 0x200
+       CS8                               = 0x300
+       CSIZE                             = 0x300
+       CSTART                            = 0x11
+       CSTATUS                           = 0x14
+       CSTOP                             = 0x13
+       CSTOPB                            = 0x400
+       CSUSP                             = 0x1a
+       CTL_MAXNAME                       = 0xc
+       CTL_NET                           = 0x4
+       CTL_QUERY                         = -0x2
+       DIOCBSFLUSH                       = 0x20006478
+       DLT_A429                          = 0xb8
+       DLT_A653_ICM                      = 0xb9
+       DLT_AIRONET_HEADER                = 0x78
+       DLT_AOS                           = 0xde
+       DLT_APPLE_IP_OVER_IEEE1394        = 0x8a
+       DLT_ARCNET                        = 0x7
+       DLT_ARCNET_LINUX                  = 0x81
+       DLT_ATM_CLIP                      = 0x13
+       DLT_ATM_RFC1483                   = 0xb
+       DLT_AURORA                        = 0x7e
+       DLT_AX25                          = 0x3
+       DLT_AX25_KISS                     = 0xca
+       DLT_BACNET_MS_TP                  = 0xa5
+       DLT_BLUETOOTH_HCI_H4              = 0xbb
+       DLT_BLUETOOTH_HCI_H4_WITH_PHDR    = 0xc9
+       DLT_CAN20B                        = 0xbe
+       DLT_CAN_SOCKETCAN                 = 0xe3
+       DLT_CHAOS                         = 0x5
+       DLT_CISCO_IOS                     = 0x76
+       DLT_C_HDLC                        = 0x68
+       DLT_C_HDLC_WITH_DIR               = 0xcd
+       DLT_DECT                          = 0xdd
+       DLT_DOCSIS                        = 0x8f
+       DLT_ECONET                        = 0x73
+       DLT_EN10MB                        = 0x1
+       DLT_EN3MB                         = 0x2
+       DLT_ENC                           = 0x6d
+       DLT_ERF                           = 0xc5
+       DLT_ERF_ETH                       = 0xaf
+       DLT_ERF_POS                       = 0xb0
+       DLT_FC_2                          = 0xe0
+       DLT_FC_2_WITH_FRAME_DELIMS        = 0xe1
+       DLT_FDDI                          = 0xa
+       DLT_FLEXRAY                       = 0xd2
+       DLT_FRELAY                        = 0x6b
+       DLT_FRELAY_WITH_DIR               = 0xce
+       DLT_GCOM_SERIAL                   = 0xad
+       DLT_GCOM_T1E1                     = 0xac
+       DLT_GPF_F                         = 0xab
+       DLT_GPF_T                         = 0xaa
+       DLT_GPRS_LLC                      = 0xa9
+       DLT_GSMTAP_ABIS                   = 0xda
+       DLT_GSMTAP_UM                     = 0xd9
+       DLT_HDLC                          = 0x10
+       DLT_HHDLC                         = 0x79
+       DLT_HIPPI                         = 0xf
+       DLT_IBM_SN                        = 0x92
+       DLT_IBM_SP                        = 0x91
+       DLT_IEEE802                       = 0x6
+       DLT_IEEE802_11                    = 0x69
+       DLT_IEEE802_11_RADIO              = 0x7f
+       DLT_IEEE802_11_RADIO_AVS          = 0xa3
+       DLT_IEEE802_15_4                  = 0xc3
+       DLT_IEEE802_15_4_LINUX            = 0xbf
+       DLT_IEEE802_15_4_NONASK_PHY       = 0xd7
+       DLT_IEEE802_16_MAC_CPS            = 0xbc
+       DLT_IEEE802_16_MAC_CPS_RADIO      = 0xc1
+       DLT_IPMB                          = 0xc7
+       DLT_IPMB_LINUX                    = 0xd1
+       DLT_IPNET                         = 0xe2
+       DLT_IPV4                          = 0xe4
+       DLT_IPV6                          = 0xe5
+       DLT_IP_OVER_FC                    = 0x7a
+       DLT_JUNIPER_ATM1                  = 0x89
+       DLT_JUNIPER_ATM2                  = 0x87
+       DLT_JUNIPER_CHDLC                 = 0xb5
+       DLT_JUNIPER_ES                    = 0x84
+       DLT_JUNIPER_ETHER                 = 0xb2
+       DLT_JUNIPER_FRELAY                = 0xb4
+       DLT_JUNIPER_GGSN                  = 0x85
+       DLT_JUNIPER_ISM                   = 0xc2
+       DLT_JUNIPER_MFR                   = 0x86
+       DLT_JUNIPER_MLFR                  = 0x83
+       DLT_JUNIPER_MLPPP                 = 0x82
+       DLT_JUNIPER_MONITOR               = 0xa4
+       DLT_JUNIPER_PIC_PEER              = 0xae
+       DLT_JUNIPER_PPP                   = 0xb3
+       DLT_JUNIPER_PPPOE                 = 0xa7
+       DLT_JUNIPER_PPPOE_ATM             = 0xa8
+       DLT_JUNIPER_SERVICES              = 0x88
+       DLT_JUNIPER_ST                    = 0xc8
+       DLT_JUNIPER_VP                    = 0xb7
+       DLT_LAPB_WITH_DIR                 = 0xcf
+       DLT_LAPD                          = 0xcb
+       DLT_LIN                           = 0xd4
+       DLT_LINUX_EVDEV                   = 0xd8
+       DLT_LINUX_IRDA                    = 0x90
+       DLT_LINUX_LAPD                    = 0xb1
+       DLT_LINUX_SLL                     = 0x71
+       DLT_LOOP                          = 0x6c
+       DLT_LTALK                         = 0x72
+       DLT_MFR                           = 0xb6
+       DLT_MOST                          = 0xd3
+       DLT_MPLS                          = 0xdb
+       DLT_MTP2                          = 0x8c
+       DLT_MTP2_WITH_PHDR                = 0x8b
+       DLT_MTP3                          = 0x8d
+       DLT_NULL                          = 0x0
+       DLT_PCI_EXP                       = 0x7d
+       DLT_PFLOG                         = 0x75
+       DLT_PFSYNC                        = 0x12
+       DLT_PPI                           = 0xc0
+       DLT_PPP                           = 0x9
+       DLT_PPP_BSDOS                     = 0xe
+       DLT_PPP_ETHER                     = 0x33
+       DLT_PPP_PPPD                      = 0xa6
+       DLT_PPP_SERIAL                    = 0x32
+       DLT_PPP_WITH_DIR                  = 0xcc
+       DLT_PRISM_HEADER                  = 0x77
+       DLT_PRONET                        = 0x4
+       DLT_RAIF1                         = 0xc6
+       DLT_RAW                           = 0xc
+       DLT_RAWAF_MASK                    = 0x2240000
+       DLT_RIO                           = 0x7c
+       DLT_SCCP                          = 0x8e
+       DLT_SITA                          = 0xc4
+       DLT_SLIP                          = 0x8
+       DLT_SLIP_BSDOS                    = 0xd
+       DLT_SUNATM                        = 0x7b
+       DLT_SYMANTEC_FIREWALL             = 0x63
+       DLT_TZSP                          = 0x80
+       DLT_USB                           = 0xba
+       DLT_USB_LINUX                     = 0xbd
+       DLT_USB_LINUX_MMAPPED             = 0xdc
+       DLT_WIHART                        = 0xdf
+       DLT_X2E_SERIAL                    = 0xd5
+       DLT_X2E_XORAYA                    = 0xd6
+       DT_BLK                            = 0x6
+       DT_CHR                            = 0x2
+       DT_DIR                            = 0x4
+       DT_FIFO                           = 0x1
+       DT_LNK                            = 0xa
+       DT_REG                            = 0x8
+       DT_SOCK                           = 0xc
+       DT_UNKNOWN                        = 0x0
+       DT_WHT                            = 0xe
+       ECHO                              = 0x8
+       ECHOCTL                           = 0x40
+       ECHOE                             = 0x2
+       ECHOK                             = 0x4
+       ECHOKE                            = 0x1
+       ECHONL                            = 0x10
+       ECHOPRT                           = 0x20
+       EMUL_LINUX                        = 0x1
+       EMUL_LINUX32                      = 0x5
+       EMUL_MAXID                        = 0x6
+       ETHERCAP_JUMBO_MTU                = 0x4
+       ETHERCAP_VLAN_HWTAGGING           = 0x2
+       ETHERCAP_VLAN_MTU                 = 0x1
+       ETHERMIN                          = 0x2e
+       ETHERMTU                          = 0x5dc
+       ETHERMTU_JUMBO                    = 0x2328
+       ETHERTYPE_8023                    = 0x4
+       ETHERTYPE_AARP                    = 0x80f3
+       ETHERTYPE_ACCTON                  = 0x8390
+       ETHERTYPE_AEONIC                  = 0x8036
+       ETHERTYPE_ALPHA                   = 0x814a
+       ETHERTYPE_AMBER                   = 0x6008
+       ETHERTYPE_AMOEBA                  = 0x8145
+       ETHERTYPE_APOLLO                  = 0x80f7
+       ETHERTYPE_APOLLODOMAIN            = 0x8019
+       ETHERTYPE_APPLETALK               = 0x809b
+       ETHERTYPE_APPLITEK                = 0x80c7
+       ETHERTYPE_ARGONAUT                = 0x803a
+       ETHERTYPE_ARP                     = 0x806
+       ETHERTYPE_AT                      = 0x809b
+       ETHERTYPE_ATALK                   = 0x809b
+       ETHERTYPE_ATOMIC                  = 0x86df
+       ETHERTYPE_ATT                     = 0x8069
+       ETHERTYPE_ATTSTANFORD             = 0x8008
+       ETHERTYPE_AUTOPHON                = 0x806a
+       ETHERTYPE_AXIS                    = 0x8856
+       ETHERTYPE_BCLOOP                  = 0x9003
+       ETHERTYPE_BOFL                    = 0x8102
+       ETHERTYPE_CABLETRON               = 0x7034
+       ETHERTYPE_CHAOS                   = 0x804
+       ETHERTYPE_COMDESIGN               = 0x806c
+       ETHERTYPE_COMPUGRAPHIC            = 0x806d
+       ETHERTYPE_COUNTERPOINT            = 0x8062
+       ETHERTYPE_CRONUS                  = 0x8004
+       ETHERTYPE_CRONUSVLN               = 0x8003
+       ETHERTYPE_DCA                     = 0x1234
+       ETHERTYPE_DDE                     = 0x807b
+       ETHERTYPE_DEBNI                   = 0xaaaa
+       ETHERTYPE_DECAM                   = 0x8048
+       ETHERTYPE_DECCUST                 = 0x6006
+       ETHERTYPE_DECDIAG                 = 0x6005
+       ETHERTYPE_DECDNS                  = 0x803c
+       ETHERTYPE_DECDTS                  = 0x803e
+       ETHERTYPE_DECEXPER                = 0x6000
+       ETHERTYPE_DECLAST                 = 0x8041
+       ETHERTYPE_DECLTM                  = 0x803f
+       ETHERTYPE_DECMUMPS                = 0x6009
+       ETHERTYPE_DECNETBIOS              = 0x8040
+       ETHERTYPE_DELTACON                = 0x86de
+       ETHERTYPE_DIDDLE                  = 0x4321
+       ETHERTYPE_DLOG1                   = 0x660
+       ETHERTYPE_DLOG2                   = 0x661
+       ETHERTYPE_DN                      = 0x6003
+       ETHERTYPE_DOGFIGHT                = 0x1989
+       ETHERTYPE_DSMD                    = 0x8039
+       ETHERTYPE_ECMA                    = 0x803
+       ETHERTYPE_ENCRYPT                 = 0x803d
+       ETHERTYPE_ES                      = 0x805d
+       ETHERTYPE_EXCELAN                 = 0x8010
+       ETHERTYPE_EXPERDATA               = 0x8049
+       ETHERTYPE_FLIP                    = 0x8146
+       ETHERTYPE_FLOWCONTROL             = 0x8808
+       ETHERTYPE_FRARP                   = 0x808
+       ETHERTYPE_GENDYN                  = 0x8068
+       ETHERTYPE_HAYES                   = 0x8130
+       ETHERTYPE_HIPPI_FP                = 0x8180
+       ETHERTYPE_HITACHI                 = 0x8820
+       ETHERTYPE_HP                      = 0x8005
+       ETHERTYPE_IEEEPUP                 = 0xa00
+       ETHERTYPE_IEEEPUPAT               = 0xa01
+       ETHERTYPE_IMLBL                   = 0x4c42
+       ETHERTYPE_IMLBLDIAG               = 0x424c
+       ETHERTYPE_IP                      = 0x800
+       ETHERTYPE_IPAS                    = 0x876c
+       ETHERTYPE_IPV6                    = 0x86dd
+       ETHERTYPE_IPX                     = 0x8137
+       ETHERTYPE_IPXNEW                  = 0x8037
+       ETHERTYPE_KALPANA                 = 0x8582
+       ETHERTYPE_LANBRIDGE               = 0x8038
+       ETHERTYPE_LANPROBE                = 0x8888
+       ETHERTYPE_LAT                     = 0x6004
+       ETHERTYPE_LBACK                   = 0x9000
+       ETHERTYPE_LITTLE                  = 0x8060
+       ETHERTYPE_LOGICRAFT               = 0x8148
+       ETHERTYPE_LOOPBACK                = 0x9000
+       ETHERTYPE_MATRA                   = 0x807a
+       ETHERTYPE_MAX                     = 0xffff
+       ETHERTYPE_MERIT                   = 0x807c
+       ETHERTYPE_MICP                    = 0x873a
+       ETHERTYPE_MOPDL                   = 0x6001
+       ETHERTYPE_MOPRC                   = 0x6002
+       ETHERTYPE_MOTOROLA                = 0x818d
+       ETHERTYPE_MPLS                    = 0x8847
+       ETHERTYPE_MPLS_MCAST              = 0x8848
+       ETHERTYPE_MUMPS                   = 0x813f
+       ETHERTYPE_NBPCC                   = 0x3c04
+       ETHERTYPE_NBPCLAIM                = 0x3c09
+       ETHERTYPE_NBPCLREQ                = 0x3c05
+       ETHERTYPE_NBPCLRSP                = 0x3c06
+       ETHERTYPE_NBPCREQ                 = 0x3c02
+       ETHERTYPE_NBPCRSP                 = 0x3c03
+       ETHERTYPE_NBPDG                   = 0x3c07
+       ETHERTYPE_NBPDGB                  = 0x3c08
+       ETHERTYPE_NBPDLTE                 = 0x3c0a
+       ETHERTYPE_NBPRAR                  = 0x3c0c
+       ETHERTYPE_NBPRAS                  = 0x3c0b
+       ETHERTYPE_NBPRST                  = 0x3c0d
+       ETHERTYPE_NBPSCD                  = 0x3c01
+       ETHERTYPE_NBPVCD                  = 0x3c00
+       ETHERTYPE_NBS                     = 0x802
+       ETHERTYPE_NCD                     = 0x8149
+       ETHERTYPE_NESTAR                  = 0x8006
+       ETHERTYPE_NETBEUI                 = 0x8191
+       ETHERTYPE_NOVELL                  = 0x8138
+       ETHERTYPE_NS                      = 0x600
+       ETHERTYPE_NSAT                    = 0x601
+       ETHERTYPE_NSCOMPAT                = 0x807
+       ETHERTYPE_NTRAILER                = 0x10
+       ETHERTYPE_OS9                     = 0x7007
+       ETHERTYPE_OS9NET                  = 0x7009
+       ETHERTYPE_PACER                   = 0x80c6
+       ETHERTYPE_PAE                     = 0x888e
+       ETHERTYPE_PCS                     = 0x4242
+       ETHERTYPE_PLANNING                = 0x8044
+       ETHERTYPE_PPP                     = 0x880b
+       ETHERTYPE_PPPOE                   = 0x8864
+       ETHERTYPE_PPPOEDISC               = 0x8863
+       ETHERTYPE_PRIMENTS                = 0x7031
+       ETHERTYPE_PUP                     = 0x200
+       ETHERTYPE_PUPAT                   = 0x200
+       ETHERTYPE_RACAL                   = 0x7030
+       ETHERTYPE_RATIONAL                = 0x8150
+       ETHERTYPE_RAWFR                   = 0x6559
+       ETHERTYPE_RCL                     = 0x1995
+       ETHERTYPE_RDP                     = 0x8739
+       ETHERTYPE_RETIX                   = 0x80f2
+       ETHERTYPE_REVARP                  = 0x8035
+       ETHERTYPE_SCA                     = 0x6007
+       ETHERTYPE_SECTRA                  = 0x86db
+       ETHERTYPE_SECUREDATA              = 0x876d
+       ETHERTYPE_SGITW                   = 0x817e
+       ETHERTYPE_SG_BOUNCE               = 0x8016
+       ETHERTYPE_SG_DIAG                 = 0x8013
+       ETHERTYPE_SG_NETGAMES             = 0x8014
+       ETHERTYPE_SG_RESV                 = 0x8015
+       ETHERTYPE_SIMNET                  = 0x5208
+       ETHERTYPE_SLOWPROTOCOLS           = 0x8809
+       ETHERTYPE_SNA                     = 0x80d5
+       ETHERTYPE_SNMP                    = 0x814c
+       ETHERTYPE_SONIX                   = 0xfaf5
+       ETHERTYPE_SPIDER                  = 0x809f
+       ETHERTYPE_SPRITE                  = 0x500
+       ETHERTYPE_STP                     = 0x8181
+       ETHERTYPE_TALARIS                 = 0x812b
+       ETHERTYPE_TALARISMC               = 0x852b
+       ETHERTYPE_TCPCOMP                 = 0x876b
+       ETHERTYPE_TCPSM                   = 0x9002
+       ETHERTYPE_TEC                     = 0x814f
+       ETHERTYPE_TIGAN                   = 0x802f
+       ETHERTYPE_TRAIL                   = 0x1000
+       ETHERTYPE_TRANSETHER              = 0x6558
+       ETHERTYPE_TYMSHARE                = 0x802e
+       ETHERTYPE_UBBST                   = 0x7005
+       ETHERTYPE_UBDEBUG                 = 0x900
+       ETHERTYPE_UBDIAGLOOP              = 0x7002
+       ETHERTYPE_UBDL                    = 0x7000
+       ETHERTYPE_UBNIU                   = 0x7001
+       ETHERTYPE_UBNMC                   = 0x7003
+       ETHERTYPE_VALID                   = 0x1600
+       ETHERTYPE_VARIAN                  = 0x80dd
+       ETHERTYPE_VAXELN                  = 0x803b
+       ETHERTYPE_VEECO                   = 0x8067
+       ETHERTYPE_VEXP                    = 0x805b
+       ETHERTYPE_VGLAB                   = 0x8131
+       ETHERTYPE_VINES                   = 0xbad
+       ETHERTYPE_VINESECHO               = 0xbaf
+       ETHERTYPE_VINESLOOP               = 0xbae
+       ETHERTYPE_VITAL                   = 0xff00
+       ETHERTYPE_VLAN                    = 0x8100
+       ETHERTYPE_VLTLMAN                 = 0x8080
+       ETHERTYPE_VPROD                   = 0x805c
+       ETHERTYPE_VURESERVED              = 0x8147
+       ETHERTYPE_WATERLOO                = 0x8130
+       ETHERTYPE_WELLFLEET               = 0x8103
+       ETHERTYPE_X25                     = 0x805
+       ETHERTYPE_X75                     = 0x801
+       ETHERTYPE_XNSSM                   = 0x9001
+       ETHERTYPE_XTP                     = 0x817d
+       ETHER_ADDR_LEN                    = 0x6
+       ETHER_CRC_LEN                     = 0x4
+       ETHER_CRC_POLY_BE                 = 0x4c11db6
+       ETHER_CRC_POLY_LE                 = 0xedb88320
+       ETHER_HDR_LEN                     = 0xe
+       ETHER_MAX_LEN                     = 0x5ee
+       ETHER_MAX_LEN_JUMBO               = 0x233a
+       ETHER_MIN_LEN                     = 0x40
+       ETHER_PPPOE_ENCAP_LEN             = 0x8
+       ETHER_TYPE_LEN                    = 0x2
+       ETHER_VLAN_ENCAP_LEN              = 0x4
+       EVFILT_AIO                        = 0x2
+       EVFILT_PROC                       = 0x4
+       EVFILT_READ                       = 0x0
+       EVFILT_SIGNAL                     = 0x5
+       EVFILT_SYSCOUNT                   = 0x7
+       EVFILT_TIMER                      = 0x6
+       EVFILT_VNODE                      = 0x3
+       EVFILT_WRITE                      = 0x1
+       EV_ADD                            = 0x1
+       EV_CLEAR                          = 0x20
+       EV_DELETE                         = 0x2
+       EV_DISABLE                        = 0x8
+       EV_ENABLE                         = 0x4
+       EV_EOF                            = 0x8000
+       EV_ERROR                          = 0x4000
+       EV_FLAG1                          = 0x2000
+       EV_ONESHOT                        = 0x10
+       EV_SYSFLAGS                       = 0xf000
+       EXTA                              = 0x4b00
+       EXTB                              = 0x9600
+       EXTPROC                           = 0x800
+       FD_CLOEXEC                        = 0x1
+       FD_SETSIZE                        = 0x100
+       FLUSHO                            = 0x800000
+       F_CLOSEM                          = 0xa
+       F_DUPFD                           = 0x0
+       F_DUPFD_CLOEXEC                   = 0xc
+       F_FSCTL                           = -0x80000000
+       F_FSDIRMASK                       = 0x70000000
+       F_FSIN                            = 0x10000000
+       F_FSINOUT                         = 0x30000000
+       F_FSOUT                           = 0x20000000
+       F_FSPRIV                          = 0x8000
+       F_FSVOID                          = 0x40000000
+       F_GETFD                           = 0x1
+       F_GETFL                           = 0x3
+       F_GETLK                           = 0x7
+       F_GETNOSIGPIPE                    = 0xd
+       F_GETOWN                          = 0x5
+       F_MAXFD                           = 0xb
+       F_OK                              = 0x0
+       F_PARAM_MASK                      = 0xfff
+       F_PARAM_MAX                       = 0xfff
+       F_RDLCK                           = 0x1
+       F_SETFD                           = 0x2
+       F_SETFL                           = 0x4
+       F_SETLK                           = 0x8
+       F_SETLKW                          = 0x9
+       F_SETNOSIGPIPE                    = 0xe
+       F_SETOWN                          = 0x6
+       F_UNLCK                           = 0x2
+       F_WRLCK                           = 0x3
+       HUPCL                             = 0x4000
+       ICANON                            = 0x100
+       ICMP6_FILTER                      = 0x12
+       ICRNL                             = 0x100
+       IEXTEN                            = 0x400
+       IFAN_ARRIVAL                      = 0x0
+       IFAN_DEPARTURE                    = 0x1
+       IFA_ROUTE                         = 0x1
+       IFF_ALLMULTI                      = 0x200
+       IFF_BROADCAST                     = 0x2
+       IFF_CANTCHANGE                    = 0x8f52
+       IFF_DEBUG                         = 0x4
+       IFF_LINK0                         = 0x1000
+       IFF_LINK1                         = 0x2000
+       IFF_LINK2                         = 0x4000
+       IFF_LOOPBACK                      = 0x8
+       IFF_MULTICAST                     = 0x8000
+       IFF_NOARP                         = 0x80
+       IFF_NOTRAILERS                    = 0x20
+       IFF_OACTIVE                       = 0x400
+       IFF_POINTOPOINT                   = 0x10
+       IFF_PROMISC                       = 0x100
+       IFF_RUNNING                       = 0x40
+       IFF_SIMPLEX                       = 0x800
+       IFF_UP                            = 0x1
+       IFNAMSIZ                          = 0x10
+       IFT_1822                          = 0x2
+       IFT_A12MPPSWITCH                  = 0x82
+       IFT_AAL2                          = 0xbb
+       IFT_AAL5                          = 0x31
+       IFT_ADSL                          = 0x5e
+       IFT_AFLANE8023                    = 0x3b
+       IFT_AFLANE8025                    = 0x3c
+       IFT_ARAP                          = 0x58
+       IFT_ARCNET                        = 0x23
+       IFT_ARCNETPLUS                    = 0x24
+       IFT_ASYNC                         = 0x54
+       IFT_ATM                           = 0x25
+       IFT_ATMDXI                        = 0x69
+       IFT_ATMFUNI                       = 0x6a
+       IFT_ATMIMA                        = 0x6b
+       IFT_ATMLOGICAL                    = 0x50
+       IFT_ATMRADIO                      = 0xbd
+       IFT_ATMSUBINTERFACE               = 0x86
+       IFT_ATMVCIENDPT                   = 0xc2
+       IFT_ATMVIRTUAL                    = 0x95
+       IFT_BGPPOLICYACCOUNTING           = 0xa2
+       IFT_BRIDGE                        = 0xd1
+       IFT_BSC                           = 0x53
+       IFT_CARP                          = 0xf8
+       IFT_CCTEMUL                       = 0x3d
+       IFT_CEPT                          = 0x13
+       IFT_CES                           = 0x85
+       IFT_CHANNEL                       = 0x46
+       IFT_CNR                           = 0x55
+       IFT_COFFEE                        = 0x84
+       IFT_COMPOSITELINK                 = 0x9b
+       IFT_DCN                           = 0x8d
+       IFT_DIGITALPOWERLINE              = 0x8a
+       IFT_DIGITALWRAPPEROVERHEADCHANNEL = 0xba
+       IFT_DLSW                          = 0x4a
+       IFT_DOCSCABLEDOWNSTREAM           = 0x80
+       IFT_DOCSCABLEMACLAYER             = 0x7f
+       IFT_DOCSCABLEUPSTREAM             = 0x81
+       IFT_DOCSCABLEUPSTREAMCHANNEL      = 0xcd
+       IFT_DS0                           = 0x51
+       IFT_DS0BUNDLE                     = 0x52
+       IFT_DS1FDL                        = 0xaa
+       IFT_DS3                           = 0x1e
+       IFT_DTM                           = 0x8c
+       IFT_DVBASILN                      = 0xac
+       IFT_DVBASIOUT                     = 0xad
+       IFT_DVBRCCDOWNSTREAM              = 0x93
+       IFT_DVBRCCMACLAYER                = 0x92
+       IFT_DVBRCCUPSTREAM                = 0x94
+       IFT_ECONET                        = 0xce
+       IFT_EON                           = 0x19
+       IFT_EPLRS                         = 0x57
+       IFT_ESCON                         = 0x49
+       IFT_ETHER                         = 0x6
+       IFT_FAITH                         = 0xf2
+       IFT_FAST                          = 0x7d
+       IFT_FASTETHER                     = 0x3e
+       IFT_FASTETHERFX                   = 0x45
+       IFT_FDDI                          = 0xf
+       IFT_FIBRECHANNEL                  = 0x38
+       IFT_FRAMERELAYINTERCONNECT        = 0x3a
+       IFT_FRAMERELAYMPI                 = 0x5c
+       IFT_FRDLCIENDPT                   = 0xc1
+       IFT_FRELAY                        = 0x20
+       IFT_FRELAYDCE                     = 0x2c
+       IFT_FRF16MFRBUNDLE                = 0xa3
+       IFT_FRFORWARD                     = 0x9e
+       IFT_G703AT2MB                     = 0x43
+       IFT_G703AT64K                     = 0x42
+       IFT_GIF                           = 0xf0
+       IFT_GIGABITETHERNET               = 0x75
+       IFT_GR303IDT                      = 0xb2
+       IFT_GR303RDT                      = 0xb1
+       IFT_H323GATEKEEPER                = 0xa4
+       IFT_H323PROXY                     = 0xa5
+       IFT_HDH1822                       = 0x3
+       IFT_HDLC                          = 0x76
+       IFT_HDSL2                         = 0xa8
+       IFT_HIPERLAN2                     = 0xb7
+       IFT_HIPPI                         = 0x2f
+       IFT_HIPPIINTERFACE                = 0x39
+       IFT_HOSTPAD                       = 0x5a
+       IFT_HSSI                          = 0x2e
+       IFT_HY                            = 0xe
+       IFT_IBM370PARCHAN                 = 0x48
+       IFT_IDSL                          = 0x9a
+       IFT_IEEE1394                      = 0x90
+       IFT_IEEE80211                     = 0x47
+       IFT_IEEE80212                     = 0x37
+       IFT_IEEE8023ADLAG                 = 0xa1
+       IFT_IFGSN                         = 0x91
+       IFT_IMT                           = 0xbe
+       IFT_INFINIBAND                    = 0xc7
+       IFT_INTERLEAVE                    = 0x7c
+       IFT_IP                            = 0x7e
+       IFT_IPFORWARD                     = 0x8e
+       IFT_IPOVERATM                     = 0x72
+       IFT_IPOVERCDLC                    = 0x6d
+       IFT_IPOVERCLAW                    = 0x6e
+       IFT_IPSWITCH                      = 0x4e
+       IFT_ISDN                          = 0x3f
+       IFT_ISDNBASIC                     = 0x14
+       IFT_ISDNPRIMARY                   = 0x15
+       IFT_ISDNS                         = 0x4b
+       IFT_ISDNU                         = 0x4c
+       IFT_ISO88022LLC                   = 0x29
+       IFT_ISO88023                      = 0x7
+       IFT_ISO88024                      = 0x8
+       IFT_ISO88025                      = 0x9
+       IFT_ISO88025CRFPINT               = 0x62
+       IFT_ISO88025DTR                   = 0x56
+       IFT_ISO88025FIBER                 = 0x73
+       IFT_ISO88026                      = 0xa
+       IFT_ISUP                          = 0xb3
+       IFT_L2VLAN                        = 0x87
+       IFT_L3IPVLAN                      = 0x88
+       IFT_L3IPXVLAN                     = 0x89
+       IFT_LAPB                          = 0x10
+       IFT_LAPD                          = 0x4d
+       IFT_LAPF                          = 0x77
+       IFT_LINEGROUP                     = 0xd2
+       IFT_LOCALTALK                     = 0x2a
+       IFT_LOOP                          = 0x18
+       IFT_MEDIAMAILOVERIP               = 0x8b
+       IFT_MFSIGLINK                     = 0xa7
+       IFT_MIOX25                        = 0x26
+       IFT_MODEM                         = 0x30
+       IFT_MPC                           = 0x71
+       IFT_MPLS                          = 0xa6
+       IFT_MPLSTUNNEL                    = 0x96
+       IFT_MSDSL                         = 0x8f
+       IFT_MVL                           = 0xbf
+       IFT_MYRINET                       = 0x63
+       IFT_NFAS                          = 0xaf
+       IFT_NSIP                          = 0x1b
+       IFT_OPTICALCHANNEL                = 0xc3
+       IFT_OPTICALTRANSPORT              = 0xc4
+       IFT_OTHER                         = 0x1
+       IFT_P10                           = 0xc
+       IFT_P80                           = 0xd
+       IFT_PARA                          = 0x22
+       IFT_PFLOG                         = 0xf5
+       IFT_PFSYNC                        = 0xf6
+       IFT_PLC                           = 0xae
+       IFT_PON155                        = 0xcf
+       IFT_PON622                        = 0xd0
+       IFT_POS                           = 0xab
+       IFT_PPP                           = 0x17
+       IFT_PPPMULTILINKBUNDLE            = 0x6c
+       IFT_PROPATM                       = 0xc5
+       IFT_PROPBWAP2MP                   = 0xb8
+       IFT_PROPCNLS                      = 0x59
+       IFT_PROPDOCSWIRELESSDOWNSTREAM    = 0xb5
+       IFT_PROPDOCSWIRELESSMACLAYER      = 0xb4
+       IFT_PROPDOCSWIRELESSUPSTREAM      = 0xb6
+       IFT_PROPMUX                       = 0x36
+       IFT_PROPVIRTUAL                   = 0x35
+       IFT_PROPWIRELESSP2P               = 0x9d
+       IFT_PTPSERIAL                     = 0x16
+       IFT_PVC                           = 0xf1
+       IFT_Q2931                         = 0xc9
+       IFT_QLLC                          = 0x44
+       IFT_RADIOMAC                      = 0xbc
+       IFT_RADSL                         = 0x5f
+       IFT_REACHDSL                      = 0xc0
+       IFT_RFC1483                       = 0x9f
+       IFT_RS232                         = 0x21
+       IFT_RSRB                          = 0x4f
+       IFT_SDLC                          = 0x11
+       IFT_SDSL                          = 0x60
+       IFT_SHDSL                         = 0xa9
+       IFT_SIP                           = 0x1f
+       IFT_SIPSIG                        = 0xcc
+       IFT_SIPTG                         = 0xcb
+       IFT_SLIP                          = 0x1c
+       IFT_SMDSDXI                       = 0x2b
+       IFT_SMDSICIP                      = 0x34
+       IFT_SONET                         = 0x27
+       IFT_SONETOVERHEADCHANNEL          = 0xb9
+       IFT_SONETPATH                     = 0x32
+       IFT_SONETVT                       = 0x33
+       IFT_SRP                           = 0x97
+       IFT_SS7SIGLINK                    = 0x9c
+       IFT_STACKTOSTACK                  = 0x6f
+       IFT_STARLAN                       = 0xb
+       IFT_STF                           = 0xd7
+       IFT_T1                            = 0x12
+       IFT_TDLC                          = 0x74
+       IFT_TELINK                        = 0xc8
+       IFT_TERMPAD                       = 0x5b
+       IFT_TR008                         = 0xb0
+       IFT_TRANSPHDLC                    = 0x7b
+       IFT_TUNNEL                        = 0x83
+       IFT_ULTRA                         = 0x1d
+       IFT_USB                           = 0xa0
+       IFT_V11                           = 0x40
+       IFT_V35                           = 0x2d
+       IFT_V36                           = 0x41
+       IFT_V37                           = 0x78
+       IFT_VDSL                          = 0x61
+       IFT_VIRTUALIPADDRESS              = 0x70
+       IFT_VIRTUALTG                     = 0xca
+       IFT_VOICEDID                      = 0xd5
+       IFT_VOICEEM                       = 0x64
+       IFT_VOICEEMFGD                    = 0xd3
+       IFT_VOICEENCAP                    = 0x67
+       IFT_VOICEFGDEANA                  = 0xd4
+       IFT_VOICEFXO                      = 0x65
+       IFT_VOICEFXS                      = 0x66
+       IFT_VOICEOVERATM                  = 0x98
+       IFT_VOICEOVERCABLE                = 0xc6
+       IFT_VOICEOVERFRAMERELAY           = 0x99
+       IFT_VOICEOVERIP                   = 0x68
+       IFT_X213                          = 0x5d
+       IFT_X25                           = 0x5
+       IFT_X25DDN                        = 0x4
+       IFT_X25HUNTGROUP                  = 0x7a
+       IFT_X25MLP                        = 0x79
+       IFT_X25PLE                        = 0x28
+       IFT_XETHER                        = 0x1a
+       IGNBRK                            = 0x1
+       IGNCR                             = 0x80
+       IGNPAR                            = 0x4
+       IMAXBEL                           = 0x2000
+       INLCR                             = 0x40
+       INPCK                             = 0x10
+       IN_CLASSA_HOST                    = 0xffffff
+       IN_CLASSA_MAX                     = 0x80
+       IN_CLASSA_NET                     = 0xff000000
+       IN_CLASSA_NSHIFT                  = 0x18
+       IN_CLASSB_HOST                    = 0xffff
+       IN_CLASSB_MAX                     = 0x10000
+       IN_CLASSB_NET                     = 0xffff0000
+       IN_CLASSB_NSHIFT                  = 0x10
+       IN_CLASSC_HOST                    = 0xff
+       IN_CLASSC_NET                     = 0xffffff00
+       IN_CLASSC_NSHIFT                  = 0x8
+       IN_CLASSD_HOST                    = 0xfffffff
+       IN_CLASSD_NET                     = 0xf0000000
+       IN_CLASSD_NSHIFT                  = 0x1c
+       IN_LOOPBACKNET                    = 0x7f
+       IPPROTO_AH                        = 0x33
+       IPPROTO_CARP                      = 0x70
+       IPPROTO_DONE                      = 0x101
+       IPPROTO_DSTOPTS                   = 0x3c
+       IPPROTO_EGP                       = 0x8
+       IPPROTO_ENCAP                     = 0x62
+       IPPROTO_EON                       = 0x50
+       IPPROTO_ESP                       = 0x32
+       IPPROTO_ETHERIP                   = 0x61
+       IPPROTO_FRAGMENT                  = 0x2c
+       IPPROTO_GGP                       = 0x3
+       IPPROTO_GRE                       = 0x2f
+       IPPROTO_HOPOPTS                   = 0x0
+       IPPROTO_ICMP                      = 0x1
+       IPPROTO_ICMPV6                    = 0x3a
+       IPPROTO_IDP                       = 0x16
+       IPPROTO_IGMP                      = 0x2
+       IPPROTO_IP                        = 0x0
+       IPPROTO_IPCOMP                    = 0x6c
+       IPPROTO_IPIP                      = 0x4
+       IPPROTO_IPV4                      = 0x4
+       IPPROTO_IPV6                      = 0x29
+       IPPROTO_IPV6_ICMP                 = 0x3a
+       IPPROTO_MAX                       = 0x100
+       IPPROTO_MAXID                     = 0x34
+       IPPROTO_MOBILE                    = 0x37
+       IPPROTO_NONE                      = 0x3b
+       IPPROTO_PFSYNC                    = 0xf0
+       IPPROTO_PIM                       = 0x67
+       IPPROTO_PUP                       = 0xc
+       IPPROTO_RAW                       = 0xff
+       IPPROTO_ROUTING                   = 0x2b
+       IPPROTO_RSVP                      = 0x2e
+       IPPROTO_TCP                       = 0x6
+       IPPROTO_TP                        = 0x1d
+       IPPROTO_UDP                       = 0x11
+       IPPROTO_VRRP                      = 0x70
+       IPV6_CHECKSUM                     = 0x1a
+       IPV6_DEFAULT_MULTICAST_HOPS       = 0x1
+       IPV6_DEFAULT_MULTICAST_LOOP       = 0x1
+       IPV6_DEFHLIM                      = 0x40
+       IPV6_DONTFRAG                     = 0x3e
+       IPV6_DSTOPTS                      = 0x32
+       IPV6_FAITH                        = 0x1d
+       IPV6_FLOWINFO_MASK                = 0xffffff0f
+       IPV6_FLOWLABEL_MASK               = 0xffff0f00
+       IPV6_FRAGTTL                      = 0x78
+       IPV6_HLIMDEC                      = 0x1
+       IPV6_HOPLIMIT                     = 0x2f
+       IPV6_HOPOPTS                      = 0x31
+       IPV6_IPSEC_POLICY                 = 0x1c
+       IPV6_JOIN_GROUP                   = 0xc
+       IPV6_LEAVE_GROUP                  = 0xd
+       IPV6_MAXHLIM                      = 0xff
+       IPV6_MAXPACKET                    = 0xffff
+       IPV6_MMTU                         = 0x500
+       IPV6_MULTICAST_HOPS               = 0xa
+       IPV6_MULTICAST_IF                 = 0x9
+       IPV6_MULTICAST_LOOP               = 0xb
+       IPV6_NEXTHOP                      = 0x30
+       IPV6_PATHMTU                      = 0x2c
+       IPV6_PKTINFO                      = 0x2e
+       IPV6_PORTRANGE                    = 0xe
+       IPV6_PORTRANGE_DEFAULT            = 0x0
+       IPV6_PORTRANGE_HIGH               = 0x1
+       IPV6_PORTRANGE_LOW                = 0x2
+       IPV6_RECVDSTOPTS                  = 0x28
+       IPV6_RECVHOPLIMIT                 = 0x25
+       IPV6_RECVHOPOPTS                  = 0x27
+       IPV6_RECVPATHMTU                  = 0x2b
+       IPV6_RECVPKTINFO                  = 0x24
+       IPV6_RECVRTHDR                    = 0x26
+       IPV6_RECVTCLASS                   = 0x39
+       IPV6_RTHDR                        = 0x33
+       IPV6_RTHDRDSTOPTS                 = 0x23
+       IPV6_RTHDR_LOOSE                  = 0x0
+       IPV6_RTHDR_STRICT                 = 0x1
+       IPV6_RTHDR_TYPE_0                 = 0x0
+       IPV6_SOCKOPT_RESERVED1            = 0x3
+       IPV6_TCLASS                       = 0x3d
+       IPV6_UNICAST_HOPS                 = 0x4
+       IPV6_USE_MIN_MTU                  = 0x2a
+       IPV6_V6ONLY                       = 0x1b
+       IPV6_VERSION                      = 0x60
+       IPV6_VERSION_MASK                 = 0xf0
+       IP_ADD_MEMBERSHIP                 = 0xc
+       IP_DEFAULT_MULTICAST_LOOP         = 0x1
+       IP_DEFAULT_MULTICAST_TTL          = 0x1
+       IP_DF                             = 0x4000
+       IP_DROP_MEMBERSHIP                = 0xd
+       IP_EF                             = 0x8000
+       IP_ERRORMTU                       = 0x15
+       IP_HDRINCL                        = 0x2
+       IP_IPSEC_POLICY                   = 0x16
+       IP_MAXPACKET                      = 0xffff
+       IP_MAX_MEMBERSHIPS                = 0x14
+       IP_MF                             = 0x2000
+       IP_MINFRAGSIZE                    = 0x45
+       IP_MINTTL                         = 0x18
+       IP_MSS                            = 0x240
+       IP_MULTICAST_IF                   = 0x9
+       IP_MULTICAST_LOOP                 = 0xb
+       IP_MULTICAST_TTL                  = 0xa
+       IP_OFFMASK                        = 0x1fff
+       IP_OPTIONS                        = 0x1
+       IP_PORTRANGE                      = 0x13
+       IP_PORTRANGE_DEFAULT              = 0x0
+       IP_PORTRANGE_HIGH                 = 0x1
+       IP_PORTRANGE_LOW                  = 0x2
+       IP_RECVDSTADDR                    = 0x7
+       IP_RECVIF                         = 0x14
+       IP_RECVOPTS                       = 0x5
+       IP_RECVRETOPTS                    = 0x6
+       IP_RECVTTL                        = 0x17
+       IP_RETOPTS                        = 0x8
+       IP_RF                             = 0x8000
+       IP_TOS                            = 0x3
+       IP_TTL                            = 0x4
+       ISIG                              = 0x80
+       ISTRIP                            = 0x20
+       IXANY                             = 0x800
+       IXOFF                             = 0x400
+       IXON                              = 0x200
+       LOCK_EX                           = 0x2
+       LOCK_NB                           = 0x4
+       LOCK_SH                           = 0x1
+       LOCK_UN                           = 0x8
+       MADV_DONTNEED                     = 0x4
+       MADV_FREE                         = 0x6
+       MADV_NORMAL                       = 0x0
+       MADV_RANDOM                       = 0x1
+       MADV_SEQUENTIAL                   = 0x2
+       MADV_SPACEAVAIL                   = 0x5
+       MADV_WILLNEED                     = 0x3
+       MAP_ALIGNMENT_16MB                = 0x18000000
+       MAP_ALIGNMENT_1TB                 = 0x28000000
+       MAP_ALIGNMENT_256TB               = 0x30000000
+       MAP_ALIGNMENT_4GB                 = 0x20000000
+       MAP_ALIGNMENT_64KB                = 0x10000000
+       MAP_ALIGNMENT_64PB                = 0x38000000
+       MAP_ALIGNMENT_MASK                = -0x1000000
+       MAP_ALIGNMENT_SHIFT               = 0x18
+       MAP_ANON                          = 0x1000
+       MAP_FILE                          = 0x0
+       MAP_FIXED                         = 0x10
+       MAP_HASSEMAPHORE                  = 0x200
+       MAP_INHERIT                       = 0x80
+       MAP_INHERIT_COPY                  = 0x1
+       MAP_INHERIT_DEFAULT               = 0x1
+       MAP_INHERIT_DONATE_COPY           = 0x3
+       MAP_INHERIT_NONE                  = 0x2
+       MAP_INHERIT_SHARE                 = 0x0
+       MAP_NORESERVE                     = 0x40
+       MAP_PRIVATE                       = 0x2
+       MAP_RENAME                        = 0x20
+       MAP_SHARED                        = 0x1
+       MAP_STACK                         = 0x2000
+       MAP_TRYFIXED                      = 0x400
+       MAP_WIRED                         = 0x800
+       MSG_BCAST                         = 0x100
+       MSG_CMSG_CLOEXEC                  = 0x800
+       MSG_CONTROLMBUF                   = 0x2000000
+       MSG_CTRUNC                        = 0x20
+       MSG_DONTROUTE                     = 0x4
+       MSG_DONTWAIT                      = 0x80
+       MSG_EOR                           = 0x8
+       MSG_IOVUSRSPACE                   = 0x4000000
+       MSG_LENUSRSPACE                   = 0x8000000
+       MSG_MCAST                         = 0x200
+       MSG_NAMEMBUF                      = 0x1000000
+       MSG_NBIO                          = 0x1000
+       MSG_NOSIGNAL                      = 0x400
+       MSG_OOB                           = 0x1
+       MSG_PEEK                          = 0x2
+       MSG_TRUNC                         = 0x10
+       MSG_USERFLAGS                     = 0xffffff
+       MSG_WAITALL                       = 0x40
+       MS_ASYNC                          = 0x1
+       MS_INVALIDATE                     = 0x2
+       MS_SYNC                           = 0x4
+       NAME_MAX                          = 0x1ff
+       NET_RT_DUMP                       = 0x1
+       NET_RT_FLAGS                      = 0x2
+       NET_RT_IFLIST                     = 0x5
+       NET_RT_MAXID                      = 0x6
+       NET_RT_OIFLIST                    = 0x4
+       NET_RT_OOIFLIST                   = 0x3
+       NOFLSH                            = 0x80000000
+       NOTE_ATTRIB                       = 0x8
+       NOTE_CHILD                        = 0x4
+       NOTE_DELETE                       = 0x1
+       NOTE_EXEC                         = 0x20000000
+       NOTE_EXIT                         = 0x80000000
+       NOTE_EXTEND                       = 0x4
+       NOTE_FORK                         = 0x40000000
+       NOTE_LINK                         = 0x10
+       NOTE_LOWAT                        = 0x1
+       NOTE_PCTRLMASK                    = 0xf0000000
+       NOTE_PDATAMASK                    = 0xfffff
+       NOTE_RENAME                       = 0x20
+       NOTE_REVOKE                       = 0x40
+       NOTE_TRACK                        = 0x1
+       NOTE_TRACKERR                     = 0x2
+       NOTE_WRITE                        = 0x2
+       OCRNL                             = 0x10
+       OFIOGETBMAP                       = 0xc004667a
+       ONLCR                             = 0x2
+       ONLRET                            = 0x40
+       ONOCR                             = 0x20
+       ONOEOT                            = 0x8
+       OPOST                             = 0x1
+       O_ACCMODE                         = 0x3
+       O_ALT_IO                          = 0x40000
+       O_APPEND                          = 0x8
+       O_ASYNC                           = 0x40
+       O_CLOEXEC                         = 0x400000
+       O_CREAT                           = 0x200
+       O_DIRECT                          = 0x80000
+       O_DIRECTORY                       = 0x200000
+       O_DSYNC                           = 0x10000
+       O_EXCL                            = 0x800
+       O_EXLOCK                          = 0x20
+       O_FSYNC                           = 0x80
+       O_NDELAY                          = 0x4
+       O_NOCTTY                          = 0x8000
+       O_NOFOLLOW                        = 0x100
+       O_NONBLOCK                        = 0x4
+       O_NOSIGPIPE                       = 0x1000000
+       O_RDONLY                          = 0x0
+       O_RDWR                            = 0x2
+       O_RSYNC                           = 0x20000
+       O_SHLOCK                          = 0x10
+       O_SYNC                            = 0x80
+       O_TRUNC                           = 0x400
+       O_WRONLY                          = 0x1
+       PARENB                            = 0x1000
+       PARMRK                            = 0x8
+       PARODD                            = 0x2000
+       PENDIN                            = 0x20000000
+       PROT_EXEC                         = 0x4
+       PROT_NONE                         = 0x0
+       PROT_READ                         = 0x1
+       PROT_WRITE                        = 0x2
+       PRI_IOFLUSH                       = 0x7c
+       PRIO_PGRP                         = 0x1
+       PRIO_PROCESS                      = 0x0
+       PRIO_USER                         = 0x2
+       RLIMIT_AS                         = 0xa
+       RLIMIT_CORE                       = 0x4
+       RLIMIT_CPU                        = 0x0
+       RLIMIT_DATA                       = 0x2
+       RLIMIT_FSIZE                      = 0x1
+       RLIMIT_NOFILE                     = 0x8
+       RLIMIT_STACK                      = 0x3
+       RLIM_INFINITY                     = 0x7fffffffffffffff
+       RTAX_AUTHOR                       = 0x6
+       RTAX_BRD                          = 0x7
+       RTAX_DST                          = 0x0
+       RTAX_GATEWAY                      = 0x1
+       RTAX_GENMASK                      = 0x3
+       RTAX_IFA                          = 0x5
+       RTAX_IFP                          = 0x4
+       RTAX_MAX                          = 0x9
+       RTAX_NETMASK                      = 0x2
+       RTAX_TAG                          = 0x8
+       RTA_AUTHOR                        = 0x40
+       RTA_BRD                           = 0x80
+       RTA_DST                           = 0x1
+       RTA_GATEWAY                       = 0x2
+       RTA_GENMASK                       = 0x8
+       RTA_IFA                           = 0x20
+       RTA_IFP                           = 0x10
+       RTA_NETMASK                       = 0x4
+       RTA_TAG                           = 0x100
+       RTF_ANNOUNCE                      = 0x20000
+       RTF_BLACKHOLE                     = 0x1000
+       RTF_CLONED                        = 0x2000
+       RTF_CLONING                       = 0x100
+       RTF_DONE                          = 0x40
+       RTF_DYNAMIC                       = 0x10
+       RTF_GATEWAY                       = 0x2
+       RTF_HOST                          = 0x4
+       RTF_LLINFO                        = 0x400
+       RTF_MASK                          = 0x80
+       RTF_MODIFIED                      = 0x20
+       RTF_PROTO1                        = 0x8000
+       RTF_PROTO2                        = 0x4000
+       RTF_REJECT                        = 0x8
+       RTF_SRC                           = 0x10000
+       RTF_STATIC                        = 0x800
+       RTF_UP                            = 0x1
+       RTF_XRESOLVE                      = 0x200
+       RTM_ADD                           = 0x1
+       RTM_CHANGE                        = 0x3
+       RTM_CHGADDR                       = 0x15
+       RTM_DELADDR                       = 0xd
+       RTM_DELETE                        = 0x2
+       RTM_GET                           = 0x4
+       RTM_IEEE80211                     = 0x11
+       RTM_IFANNOUNCE                    = 0x10
+       RTM_IFINFO                        = 0x14
+       RTM_LLINFO_UPD                    = 0x13
+       RTM_LOCK                          = 0x8
+       RTM_LOSING                        = 0x5
+       RTM_MISS                          = 0x7
+       RTM_NEWADDR                       = 0xc
+       RTM_OIFINFO                       = 0xf
+       RTM_OLDADD                        = 0x9
+       RTM_OLDDEL                        = 0xa
+       RTM_OOIFINFO                      = 0xe
+       RTM_REDIRECT                      = 0x6
+       RTM_RESOLVE                       = 0xb
+       RTM_RTTUNIT                       = 0xf4240
+       RTM_SETGATE                       = 0x12
+       RTM_VERSION                       = 0x4
+       RTV_EXPIRE                        = 0x4
+       RTV_HOPCOUNT                      = 0x2
+       RTV_MTU                           = 0x1
+       RTV_RPIPE                         = 0x8
+       RTV_RTT                           = 0x40
+       RTV_RTTVAR                        = 0x80
+       RTV_SPIPE                         = 0x10
+       RTV_SSTHRESH                      = 0x20
+       RUSAGE_CHILDREN                   = -0x1
+       RUSAGE_SELF                       = 0x0
+       SCM_CREDS                         = 0x4
+       SCM_RIGHTS                        = 0x1
+       SCM_TIMESTAMP                     = 0x8
+       SHUT_RD                           = 0x0
+       SHUT_RDWR                         = 0x2
+       SHUT_WR                           = 0x1
+       SIOCADDMULTI                      = 0x80906931
+       SIOCADDRT                         = 0x8030720a
+       SIOCAIFADDR                       = 0x8040691a
+       SIOCALIFADDR                      = 0x8118691c
+       SIOCATMARK                        = 0x40047307
+       SIOCDELMULTI                      = 0x80906932
+       SIOCDELRT                         = 0x8030720b
+       SIOCDIFADDR                       = 0x80906919
+       SIOCDIFPHYADDR                    = 0x80906949
+       SIOCDLIFADDR                      = 0x8118691e
+       SIOCGDRVSPEC                      = 0xc01c697b
+       SIOCGETPFSYNC                     = 0xc09069f8
+       SIOCGETSGCNT                      = 0xc0147534
+       SIOCGETVIFCNT                     = 0xc0147533
+       SIOCGHIWAT                        = 0x40047301
+       SIOCGIFADDR                       = 0xc0906921
+       SIOCGIFADDRPREF                   = 0xc0946920
+       SIOCGIFALIAS                      = 0xc040691b
+       SIOCGIFBRDADDR                    = 0xc0906923
+       SIOCGIFCAP                        = 0xc0206976
+       SIOCGIFCONF                       = 0xc0086926
+       SIOCGIFDATA                       = 0xc0946985
+       SIOCGIFDLT                        = 0xc0906977
+       SIOCGIFDSTADDR                    = 0xc0906922
+       SIOCGIFFLAGS                      = 0xc0906911
+       SIOCGIFGENERIC                    = 0xc090693a
+       SIOCGIFMEDIA                      = 0xc0286936
+       SIOCGIFMETRIC                     = 0xc0906917
+       SIOCGIFMTU                        = 0xc090697e
+       SIOCGIFNETMASK                    = 0xc0906925
+       SIOCGIFPDSTADDR                   = 0xc0906948
+       SIOCGIFPSRCADDR                   = 0xc0906947
+       SIOCGLIFADDR                      = 0xc118691d
+       SIOCGLIFPHYADDR                   = 0xc118694b
+       SIOCGLINKSTR                      = 0xc01c6987
+       SIOCGLOWAT                        = 0x40047303
+       SIOCGPGRP                         = 0x40047309
+       SIOCGVH                           = 0xc0906983
+       SIOCIFCREATE                      = 0x8090697a
+       SIOCIFDESTROY                     = 0x80906979
+       SIOCIFGCLONERS                    = 0xc00c6978
+       SIOCINITIFADDR                    = 0xc0446984
+       SIOCSDRVSPEC                      = 0x801c697b
+       SIOCSETPFSYNC                     = 0x809069f7
+       SIOCSHIWAT                        = 0x80047300
+       SIOCSIFADDR                       = 0x8090690c
+       SIOCSIFADDRPREF                   = 0x8094691f
+       SIOCSIFBRDADDR                    = 0x80906913
+       SIOCSIFCAP                        = 0x80206975
+       SIOCSIFDSTADDR                    = 0x8090690e
+       SIOCSIFFLAGS                      = 0x80906910
+       SIOCSIFGENERIC                    = 0x80906939
+       SIOCSIFMEDIA                      = 0xc0906935
+       SIOCSIFMETRIC                     = 0x80906918
+       SIOCSIFMTU                        = 0x8090697f
+       SIOCSIFNETMASK                    = 0x80906916
+       SIOCSIFPHYADDR                    = 0x80406946
+       SIOCSLIFPHYADDR                   = 0x8118694a
+       SIOCSLINKSTR                      = 0x801c6988
+       SIOCSLOWAT                        = 0x80047302
+       SIOCSPGRP                         = 0x80047308
+       SIOCSVH                           = 0xc0906982
+       SIOCZIFDATA                       = 0xc0946986
+       SOCK_CLOEXEC                      = 0x10000000
+       SOCK_DGRAM                        = 0x2
+       SOCK_FLAGS_MASK                   = 0xf0000000
+       SOCK_NONBLOCK                     = 0x20000000
+       SOCK_NOSIGPIPE                    = 0x40000000
+       SOCK_RAW                          = 0x3
+       SOCK_RDM                          = 0x4
+       SOCK_SEQPACKET                    = 0x5
+       SOCK_STREAM                       = 0x1
+       SOL_SOCKET                        = 0xffff
+       SOMAXCONN                         = 0x80
+       SO_ACCEPTCONN                     = 0x2
+       SO_ACCEPTFILTER                   = 0x1000
+       SO_BROADCAST                      = 0x20
+       SO_DEBUG                          = 0x1
+       SO_DONTROUTE                      = 0x10
+       SO_ERROR                          = 0x1007
+       SO_KEEPALIVE                      = 0x8
+       SO_LINGER                         = 0x80
+       SO_NOHEADER                       = 0x100a
+       SO_NOSIGPIPE                      = 0x800
+       SO_OOBINLINE                      = 0x100
+       SO_OVERFLOWED                     = 0x1009
+       SO_RCVBUF                         = 0x1002
+       SO_RCVLOWAT                       = 0x1004
+       SO_RCVTIMEO                       = 0x100c
+       SO_REUSEADDR                      = 0x4
+       SO_REUSEPORT                      = 0x200
+       SO_SNDBUF                         = 0x1001
+       SO_SNDLOWAT                       = 0x1003
+       SO_SNDTIMEO                       = 0x100b
+       SO_TIMESTAMP                      = 0x2000
+       SO_TYPE                           = 0x1008
+       SO_USELOOPBACK                    = 0x40
+       SYSCTL_VERSION                    = 0x1000000
+       SYSCTL_VERS_0                     = 0x0
+       SYSCTL_VERS_1                     = 0x1000000
+       SYSCTL_VERS_MASK                  = 0xff000000
+       S_ARCH1                           = 0x10000
+       S_ARCH2                           = 0x20000
+       S_BLKSIZE                         = 0x200
+       S_IEXEC                           = 0x40
+       S_IFBLK                           = 0x6000
+       S_IFCHR                           = 0x2000
+       S_IFDIR                           = 0x4000
+       S_IFIFO                           = 0x1000
+       S_IFLNK                           = 0xa000
+       S_IFMT                            = 0xf000
+       S_IFREG                           = 0x8000
+       S_IFSOCK                          = 0xc000
+       S_IFWHT                           = 0xe000
+       S_IREAD                           = 0x100
+       S_IRGRP                           = 0x20
+       S_IROTH                           = 0x4
+       S_IRUSR                           = 0x100
+       S_IRWXG                           = 0x38
+       S_IRWXO                           = 0x7
+       S_IRWXU                           = 0x1c0
+       S_ISGID                           = 0x400
+       S_ISTXT                           = 0x200
+       S_ISUID                           = 0x800
+       S_ISVTX                           = 0x200
+       S_IWGRP                           = 0x10
+       S_IWOTH                           = 0x2
+       S_IWRITE                          = 0x80
+       S_IWUSR                           = 0x80
+       S_IXGRP                           = 0x8
+       S_IXOTH                           = 0x1
+       S_IXUSR                           = 0x40
+       TCIFLUSH                          = 0x1
+       TCIOFLUSH                         = 0x3
+       TCOFLUSH                          = 0x2
+       TCP_CONGCTL                       = 0x20
+       TCP_KEEPCNT                       = 0x6
+       TCP_KEEPIDLE                      = 0x3
+       TCP_KEEPINIT                      = 0x7
+       TCP_KEEPINTVL                     = 0x5
+       TCP_MAXBURST                      = 0x4
+       TCP_MAXSEG                        = 0x2
+       TCP_MAXWIN                        = 0xffff
+       TCP_MAX_WINSHIFT                  = 0xe
+       TCP_MD5SIG                        = 0x10
+       TCP_MINMSS                        = 0xd8
+       TCP_MSS                           = 0x218
+       TCP_NODELAY                       = 0x1
+       TCSAFLUSH                         = 0x2
+       TIOCCBRK                          = 0x2000747a
+       TIOCCDTR                          = 0x20007478
+       TIOCCONS                          = 0x80047462
+       TIOCDCDTIMESTAMP                  = 0x400c7458
+       TIOCDRAIN                         = 0x2000745e
+       TIOCEXCL                          = 0x2000740d
+       TIOCEXT                           = 0x80047460
+       TIOCFLAG_CDTRCTS                  = 0x10
+       TIOCFLAG_CLOCAL                   = 0x2
+       TIOCFLAG_CRTSCTS                  = 0x4
+       TIOCFLAG_MDMBUF                   = 0x8
+       TIOCFLAG_SOFTCAR                  = 0x1
+       TIOCFLUSH                         = 0x80047410
+       TIOCGETA                          = 0x402c7413
+       TIOCGETD                          = 0x4004741a
+       TIOCGFLAGS                        = 0x4004745d
+       TIOCGLINED                        = 0x40207442
+       TIOCGPGRP                         = 0x40047477
+       TIOCGQSIZE                        = 0x40047481
+       TIOCGRANTPT                       = 0x20007447
+       TIOCGSID                          = 0x40047463
+       TIOCGSIZE                         = 0x40087468
+       TIOCGWINSZ                        = 0x40087468
+       TIOCMBIC                          = 0x8004746b
+       TIOCMBIS                          = 0x8004746c
+       TIOCMGET                          = 0x4004746a
+       TIOCMSET                          = 0x8004746d
+       TIOCM_CAR                         = 0x40
+       TIOCM_CD                          = 0x40
+       TIOCM_CTS                         = 0x20
+       TIOCM_DSR                         = 0x100
+       TIOCM_DTR                         = 0x2
+       TIOCM_LE                          = 0x1
+       TIOCM_RI                          = 0x80
+       TIOCM_RNG                         = 0x80
+       TIOCM_RTS                         = 0x4
+       TIOCM_SR                          = 0x10
+       TIOCM_ST                          = 0x8
+       TIOCNOTTY                         = 0x20007471
+       TIOCNXCL                          = 0x2000740e
+       TIOCOUTQ                          = 0x40047473
+       TIOCPKT                           = 0x80047470
+       TIOCPKT_DATA                      = 0x0
+       TIOCPKT_DOSTOP                    = 0x20
+       TIOCPKT_FLUSHREAD                 = 0x1
+       TIOCPKT_FLUSHWRITE                = 0x2
+       TIOCPKT_IOCTL                     = 0x40
+       TIOCPKT_NOSTOP                    = 0x10
+       TIOCPKT_START                     = 0x8
+       TIOCPKT_STOP                      = 0x4
+       TIOCPTMGET                        = 0x48087446
+       TIOCPTSNAME                       = 0x48087448
+       TIOCRCVFRAME                      = 0x80047445
+       TIOCREMOTE                        = 0x80047469
+       TIOCSBRK                          = 0x2000747b
+       TIOCSCTTY                         = 0x20007461
+       TIOCSDTR                          = 0x20007479
+       TIOCSETA                          = 0x802c7414
+       TIOCSETAF                         = 0x802c7416
+       TIOCSETAW                         = 0x802c7415
+       TIOCSETD                          = 0x8004741b
+       TIOCSFLAGS                        = 0x8004745c
+       TIOCSIG                           = 0x2000745f
+       TIOCSLINED                        = 0x80207443
+       TIOCSPGRP                         = 0x80047476
+       TIOCSQSIZE                        = 0x80047480
+       TIOCSSIZE                         = 0x80087467
+       TIOCSTART                         = 0x2000746e
+       TIOCSTAT                          = 0x80047465
+       TIOCSTI                           = 0x80017472
+       TIOCSTOP                          = 0x2000746f
+       TIOCSWINSZ                        = 0x80087467
+       TIOCUCNTL                         = 0x80047466
+       TIOCXMTFRAME                      = 0x80047444
+       TOSTOP                            = 0x400000
+       VDISCARD                          = 0xf
+       VDSUSP                            = 0xb
+       VEOF                              = 0x0
+       VEOL                              = 0x1
+       VEOL2                             = 0x2
+       VERASE                            = 0x3
+       VINTR                             = 0x8
+       VKILL                             = 0x5
+       VLNEXT                            = 0xe
+       VMIN                              = 0x10
+       VQUIT                             = 0x9
+       VREPRINT                          = 0x6
+       VSTART                            = 0xc
+       VSTATUS                           = 0x12
+       VSTOP                             = 0xd
+       VSUSP                             = 0xa
+       VTIME                             = 0x11
+       VWERASE                           = 0x4
+       WALL                              = 0x8
+       WALLSIG                           = 0x8
+       WALTSIG                           = 0x4
+       WCLONE                            = 0x4
+       WCOREFLAG                         = 0x80
+       WNOHANG                           = 0x1
+       WNOWAIT                           = 0x10000
+       WNOZOMBIE                         = 0x20000
+       WOPTSCHECKED                      = 0x40000
+       WSTOPPED                          = 0x7f
+       WUNTRACED                         = 0x2
+)
+
+// Errors
+const (
+       E2BIG           = syscall.Errno(0x7)
+       EACCES          = syscall.Errno(0xd)
+       EADDRINUSE      = syscall.Errno(0x30)
+       EADDRNOTAVAIL   = syscall.Errno(0x31)
+       EAFNOSUPPORT    = syscall.Errno(0x2f)
+       EAGAIN          = syscall.Errno(0x23)
+       EALREADY        = syscall.Errno(0x25)
+       EAUTH           = syscall.Errno(0x50)
+       EBADF           = syscall.Errno(0x9)
+       EBADMSG         = syscall.Errno(0x58)
+       EBADRPC         = syscall.Errno(0x48)
+       EBUSY           = syscall.Errno(0x10)
+       ECANCELED       = syscall.Errno(0x57)
+       ECHILD          = syscall.Errno(0xa)
+       ECONNABORTED    = syscall.Errno(0x35)
+       ECONNREFUSED    = syscall.Errno(0x3d)
+       ECONNRESET      = syscall.Errno(0x36)
+       EDEADLK         = syscall.Errno(0xb)
+       EDESTADDRREQ    = syscall.Errno(0x27)
+       EDOM            = syscall.Errno(0x21)
+       EDQUOT          = syscall.Errno(0x45)
+       EEXIST          = syscall.Errno(0x11)
+       EFAULT          = syscall.Errno(0xe)
+       EFBIG           = syscall.Errno(0x1b)
+       EFTYPE          = syscall.Errno(0x4f)
+       EHOSTDOWN       = syscall.Errno(0x40)
+       EHOSTUNREACH    = syscall.Errno(0x41)
+       EIDRM           = syscall.Errno(0x52)
+       EILSEQ          = syscall.Errno(0x55)
+       EINPROGRESS     = syscall.Errno(0x24)
+       EINTR           = syscall.Errno(0x4)
+       EINVAL          = syscall.Errno(0x16)
+       EIO             = syscall.Errno(0x5)
+       EISCONN         = syscall.Errno(0x38)
+       EISDIR          = syscall.Errno(0x15)
+       ELAST           = syscall.Errno(0x60)
+       ELOOP           = syscall.Errno(0x3e)
+       EMFILE          = syscall.Errno(0x18)
+       EMLINK          = syscall.Errno(0x1f)
+       EMSGSIZE        = syscall.Errno(0x28)
+       EMULTIHOP       = syscall.Errno(0x5e)
+       ENAMETOOLONG    = syscall.Errno(0x3f)
+       ENEEDAUTH       = syscall.Errno(0x51)
+       ENETDOWN        = syscall.Errno(0x32)
+       ENETRESET       = syscall.Errno(0x34)
+       ENETUNREACH     = syscall.Errno(0x33)
+       ENFILE          = syscall.Errno(0x17)
+       ENOATTR         = syscall.Errno(0x5d)
+       ENOBUFS         = syscall.Errno(0x37)
+       ENODATA         = syscall.Errno(0x59)
+       ENODEV          = syscall.Errno(0x13)
+       ENOENT          = syscall.Errno(0x2)
+       ENOEXEC         = syscall.Errno(0x8)
+       ENOLCK          = syscall.Errno(0x4d)
+       ENOLINK         = syscall.Errno(0x5f)
+       ENOMEM          = syscall.Errno(0xc)
+       ENOMSG          = syscall.Errno(0x53)
+       ENOPROTOOPT     = syscall.Errno(0x2a)
+       ENOSPC          = syscall.Errno(0x1c)
+       ENOSR           = syscall.Errno(0x5a)
+       ENOSTR          = syscall.Errno(0x5b)
+       ENOSYS          = syscall.Errno(0x4e)
+       ENOTBLK         = syscall.Errno(0xf)
+       ENOTCONN        = syscall.Errno(0x39)
+       ENOTDIR         = syscall.Errno(0x14)
+       ENOTEMPTY       = syscall.Errno(0x42)
+       ENOTSOCK        = syscall.Errno(0x26)
+       ENOTSUP         = syscall.Errno(0x56)
+       ENOTTY          = syscall.Errno(0x19)
+       ENXIO           = syscall.Errno(0x6)
+       EOPNOTSUPP      = syscall.Errno(0x2d)
+       EOVERFLOW       = syscall.Errno(0x54)
+       EPERM           = syscall.Errno(0x1)
+       EPFNOSUPPORT    = syscall.Errno(0x2e)
+       EPIPE           = syscall.Errno(0x20)
+       EPROCLIM        = syscall.Errno(0x43)
+       EPROCUNAVAIL    = syscall.Errno(0x4c)
+       EPROGMISMATCH   = syscall.Errno(0x4b)
+       EPROGUNAVAIL    = syscall.Errno(0x4a)
+       EPROTO          = syscall.Errno(0x60)
+       EPROTONOSUPPORT = syscall.Errno(0x2b)
+       EPROTOTYPE      = syscall.Errno(0x29)
+       ERANGE          = syscall.Errno(0x22)
+       EREMOTE         = syscall.Errno(0x47)
+       EROFS           = syscall.Errno(0x1e)
+       ERPCMISMATCH    = syscall.Errno(0x49)
+       ESHUTDOWN       = syscall.Errno(0x3a)
+       ESOCKTNOSUPPORT = syscall.Errno(0x2c)
+       ESPIPE          = syscall.Errno(0x1d)
+       ESRCH           = syscall.Errno(0x3)
+       ESTALE          = syscall.Errno(0x46)
+       ETIME           = syscall.Errno(0x5c)
+       ETIMEDOUT       = syscall.Errno(0x3c)
+       ETOOMANYREFS    = syscall.Errno(0x3b)
+       ETXTBSY         = syscall.Errno(0x1a)
+       EUSERS          = syscall.Errno(0x44)
+       EWOULDBLOCK     = syscall.Errno(0x23)
+       EXDEV           = syscall.Errno(0x12)
+)
+
+// Signals
+const (
+       SIGABRT   = syscall.Signal(0x6)
+       SIGALRM   = syscall.Signal(0xe)
+       SIGBUS    = syscall.Signal(0xa)
+       SIGCHLD   = syscall.Signal(0x14)
+       SIGCONT   = syscall.Signal(0x13)
+       SIGEMT    = syscall.Signal(0x7)
+       SIGFPE    = syscall.Signal(0x8)
+       SIGHUP    = syscall.Signal(0x1)
+       SIGILL    = syscall.Signal(0x4)
+       SIGINFO   = syscall.Signal(0x1d)
+       SIGINT    = syscall.Signal(0x2)
+       SIGIO     = syscall.Signal(0x17)
+       SIGIOT    = syscall.Signal(0x6)
+       SIGKILL   = syscall.Signal(0x9)
+       SIGPIPE   = syscall.Signal(0xd)
+       SIGPROF   = syscall.Signal(0x1b)
+       SIGPWR    = syscall.Signal(0x20)
+       SIGQUIT   = syscall.Signal(0x3)
+       SIGSEGV   = syscall.Signal(0xb)
+       SIGSTOP   = syscall.Signal(0x11)
+       SIGSYS    = syscall.Signal(0xc)
+       SIGTERM   = syscall.Signal(0xf)
+       SIGTRAP   = syscall.Signal(0x5)
+       SIGTSTP   = syscall.Signal(0x12)
+       SIGTTIN   = syscall.Signal(0x15)
+       SIGTTOU   = syscall.Signal(0x16)
+       SIGURG    = syscall.Signal(0x10)
+       SIGUSR1   = syscall.Signal(0x1e)
+       SIGUSR2   = syscall.Signal(0x1f)
+       SIGVTALRM = syscall.Signal(0x1a)
+       SIGWINCH  = syscall.Signal(0x1c)
+       SIGXCPU   = syscall.Signal(0x18)
+       SIGXFSZ   = syscall.Signal(0x19)
+)
+
+// Error table
+var errors = [...]string{
+       1:  "operation not permitted",
+       2:  "no such file or directory",
+       3:  "no such process",
+       4:  "interrupted system call",
+       5:  "input/output error",
+       6:  "device not configured",
+       7:  "argument list too long",
+       8:  "exec format error",
+       9:  "bad file descriptor",
+       10: "no child processes",
+       11: "resource deadlock avoided",
+       12: "cannot allocate memory",
+       13: "permission denied",
+       14: "bad address",
+       15: "block device required",
+       16: "device busy",
+       17: "file exists",
+       18: "cross-device link",
+       19: "operation not supported by device",
+       20: "not a directory",
+       21: "is a directory",
+       22: "invalid argument",
+       23: "too many open files in system",
+       24: "too many open files",
+       25: "inappropriate ioctl for device",
+       26: "text file busy",
+       27: "file too large",
+       28: "no space left on device",
+       29: "illegal seek",
+       30: "read-only file system",
+       31: "too many links",
+       32: "broken pipe",
+       33: "numerical argument out of domain",
+       34: "result too large or too small",
+       35: "resource temporarily unavailable",
+       36: "operation now in progress",
+       37: "operation already in progress",
+       38: "socket operation on non-socket",
+       39: "destination address required",
+       40: "message too long",
+       41: "protocol wrong type for socket",
+       42: "protocol option not available",
+       43: "protocol not supported",
+       44: "socket type not supported",
+       45: "operation not supported",
+       46: "protocol family not supported",
+       47: "address family not supported by protocol family",
+       48: "address already in use",
+       49: "can't assign requested address",
+       50: "network is down",
+       51: "network is unreachable",
+       52: "network dropped connection on reset",
+       53: "software caused connection abort",
+       54: "connection reset by peer",
+       55: "no buffer space available",
+       56: "socket is already connected",
+       57: "socket is not connected",
+       58: "can't send after socket shutdown",
+       59: "too many references: can't splice",
+       60: "connection timed out",
+       61: "connection refused",
+       62: "too many levels of symbolic links",
+       63: "file name too long",
+       64: "host is down",
+       65: "no route to host",
+       66: "directory not empty",
+       67: "too many processes",
+       68: "too many users",
+       69: "disc quota exceeded",
+       70: "stale NFS file handle",
+       71: "too many levels of remote in path",
+       72: "RPC struct is bad",
+       73: "RPC version wrong",
+       74: "RPC prog. not avail",
+       75: "program version wrong",
+       76: "bad procedure for program",
+       77: "no locks available",
+       78: "function not implemented",
+       79: "inappropriate file type or format",
+       80: "authentication error",
+       81: "need authenticator",
+       82: "identifier removed",
+       83: "no message of desired type",
+       84: "value too large to be stored in data type",
+       85: "illegal byte sequence",
+       86: "not supported",
+       87: "operation Canceled",
+       88: "bad or Corrupt message",
+       89: "no message available",
+       90: "no STREAM resources",
+       91: "not a STREAM",
+       92: "STREAM ioctl timeout",
+       93: "attribute not found",
+       94: "multihop attempted",
+       95: "link has been severed",
+       96: "protocol error",
+}
+
+// Signal table
+var signals = [...]string{
+       1:  "hangup",
+       2:  "interrupt",
+       3:  "quit",
+       4:  "illegal instruction",
+       5:  "trace/BPT trap",
+       6:  "abort trap",
+       7:  "EMT trap",
+       8:  "floating point exception",
+       9:  "killed",
+       10: "bus error",
+       11: "segmentation fault",
+       12: "bad system call",
+       13: "broken pipe",
+       14: "alarm clock",
+       15: "terminated",
+       16: "urgent I/O condition",
+       17: "stopped (signal)",
+       18: "stopped",
+       19: "continued",
+       20: "child exited",
+       21: "stopped (tty input)",
+       22: "stopped (tty output)",
+       23: "I/O possible",
+       24: "cputime limit exceeded",
+       25: "filesize limit exceeded",
+       26: "virtual timer expired",
+       27: "profiling timer expired",
+       28: "window size changes",
+       29: "information request",
+       30: "user defined signal 1",
+       31: "user defined signal 2",
+       32: "power fail/restart",
+}
diff --git a/vendor/golang.org/x/sys/unix/zerrors_openbsd_386.go b/vendor/golang.org/x/sys/unix/zerrors_openbsd_386.go
new file mode 100644 (file)
index 0000000..3322e99
--- /dev/null
@@ -0,0 +1,1584 @@
+// mkerrors.sh -m32
+// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT
+
+// +build 386,openbsd
+
+// Created by cgo -godefs - DO NOT EDIT
+// cgo -godefs -- -m32 _const.go
+
+package unix
+
+import "syscall"
+
+const (
+       AF_APPLETALK                      = 0x10
+       AF_BLUETOOTH                      = 0x20
+       AF_CCITT                          = 0xa
+       AF_CHAOS                          = 0x5
+       AF_CNT                            = 0x15
+       AF_COIP                           = 0x14
+       AF_DATAKIT                        = 0x9
+       AF_DECnet                         = 0xc
+       AF_DLI                            = 0xd
+       AF_E164                           = 0x1a
+       AF_ECMA                           = 0x8
+       AF_ENCAP                          = 0x1c
+       AF_HYLINK                         = 0xf
+       AF_IMPLINK                        = 0x3
+       AF_INET                           = 0x2
+       AF_INET6                          = 0x18
+       AF_IPX                            = 0x17
+       AF_ISDN                           = 0x1a
+       AF_ISO                            = 0x7
+       AF_KEY                            = 0x1e
+       AF_LAT                            = 0xe
+       AF_LINK                           = 0x12
+       AF_LOCAL                          = 0x1
+       AF_MAX                            = 0x24
+       AF_MPLS                           = 0x21
+       AF_NATM                           = 0x1b
+       AF_NS                             = 0x6
+       AF_OSI                            = 0x7
+       AF_PUP                            = 0x4
+       AF_ROUTE                          = 0x11
+       AF_SIP                            = 0x1d
+       AF_SNA                            = 0xb
+       AF_UNIX                           = 0x1
+       AF_UNSPEC                         = 0x0
+       ARPHRD_ETHER                      = 0x1
+       ARPHRD_FRELAY                     = 0xf
+       ARPHRD_IEEE1394                   = 0x18
+       ARPHRD_IEEE802                    = 0x6
+       B0                                = 0x0
+       B110                              = 0x6e
+       B115200                           = 0x1c200
+       B1200                             = 0x4b0
+       B134                              = 0x86
+       B14400                            = 0x3840
+       B150                              = 0x96
+       B1800                             = 0x708
+       B19200                            = 0x4b00
+       B200                              = 0xc8
+       B230400                           = 0x38400
+       B2400                             = 0x960
+       B28800                            = 0x7080
+       B300                              = 0x12c
+       B38400                            = 0x9600
+       B4800                             = 0x12c0
+       B50                               = 0x32
+       B57600                            = 0xe100
+       B600                              = 0x258
+       B7200                             = 0x1c20
+       B75                               = 0x4b
+       B76800                            = 0x12c00
+       B9600                             = 0x2580
+       BIOCFLUSH                         = 0x20004268
+       BIOCGBLEN                         = 0x40044266
+       BIOCGDIRFILT                      = 0x4004427c
+       BIOCGDLT                          = 0x4004426a
+       BIOCGDLTLIST                      = 0xc008427b
+       BIOCGETIF                         = 0x4020426b
+       BIOCGFILDROP                      = 0x40044278
+       BIOCGHDRCMPLT                     = 0x40044274
+       BIOCGRSIG                         = 0x40044273
+       BIOCGRTIMEOUT                     = 0x400c426e
+       BIOCGSTATS                        = 0x4008426f
+       BIOCIMMEDIATE                     = 0x80044270
+       BIOCLOCK                          = 0x20004276
+       BIOCPROMISC                       = 0x20004269
+       BIOCSBLEN                         = 0xc0044266
+       BIOCSDIRFILT                      = 0x8004427d
+       BIOCSDLT                          = 0x8004427a
+       BIOCSETF                          = 0x80084267
+       BIOCSETIF                         = 0x8020426c
+       BIOCSETWF                         = 0x80084277
+       BIOCSFILDROP                      = 0x80044279
+       BIOCSHDRCMPLT                     = 0x80044275
+       BIOCSRSIG                         = 0x80044272
+       BIOCSRTIMEOUT                     = 0x800c426d
+       BIOCVERSION                       = 0x40044271
+       BPF_A                             = 0x10
+       BPF_ABS                           = 0x20
+       BPF_ADD                           = 0x0
+       BPF_ALIGNMENT                     = 0x4
+       BPF_ALU                           = 0x4
+       BPF_AND                           = 0x50
+       BPF_B                             = 0x10
+       BPF_DIRECTION_IN                  = 0x1
+       BPF_DIRECTION_OUT                 = 0x2
+       BPF_DIV                           = 0x30
+       BPF_H                             = 0x8
+       BPF_IMM                           = 0x0
+       BPF_IND                           = 0x40
+       BPF_JA                            = 0x0
+       BPF_JEQ                           = 0x10
+       BPF_JGE                           = 0x30
+       BPF_JGT                           = 0x20
+       BPF_JMP                           = 0x5
+       BPF_JSET                          = 0x40
+       BPF_K                             = 0x0
+       BPF_LD                            = 0x0
+       BPF_LDX                           = 0x1
+       BPF_LEN                           = 0x80
+       BPF_LSH                           = 0x60
+       BPF_MAJOR_VERSION                 = 0x1
+       BPF_MAXBUFSIZE                    = 0x200000
+       BPF_MAXINSNS                      = 0x200
+       BPF_MEM                           = 0x60
+       BPF_MEMWORDS                      = 0x10
+       BPF_MINBUFSIZE                    = 0x20
+       BPF_MINOR_VERSION                 = 0x1
+       BPF_MISC                          = 0x7
+       BPF_MSH                           = 0xa0
+       BPF_MUL                           = 0x20
+       BPF_NEG                           = 0x80
+       BPF_OR                            = 0x40
+       BPF_RELEASE                       = 0x30bb6
+       BPF_RET                           = 0x6
+       BPF_RSH                           = 0x70
+       BPF_ST                            = 0x2
+       BPF_STX                           = 0x3
+       BPF_SUB                           = 0x10
+       BPF_TAX                           = 0x0
+       BPF_TXA                           = 0x80
+       BPF_W                             = 0x0
+       BPF_X                             = 0x8
+       BRKINT                            = 0x2
+       CFLUSH                            = 0xf
+       CLOCAL                            = 0x8000
+       CREAD                             = 0x800
+       CS5                               = 0x0
+       CS6                               = 0x100
+       CS7                               = 0x200
+       CS8                               = 0x300
+       CSIZE                             = 0x300
+       CSTART                            = 0x11
+       CSTATUS                           = 0xff
+       CSTOP                             = 0x13
+       CSTOPB                            = 0x400
+       CSUSP                             = 0x1a
+       CTL_MAXNAME                       = 0xc
+       CTL_NET                           = 0x4
+       DIOCOSFPFLUSH                     = 0x2000444e
+       DLT_ARCNET                        = 0x7
+       DLT_ATM_RFC1483                   = 0xb
+       DLT_AX25                          = 0x3
+       DLT_CHAOS                         = 0x5
+       DLT_C_HDLC                        = 0x68
+       DLT_EN10MB                        = 0x1
+       DLT_EN3MB                         = 0x2
+       DLT_ENC                           = 0xd
+       DLT_FDDI                          = 0xa
+       DLT_IEEE802                       = 0x6
+       DLT_IEEE802_11                    = 0x69
+       DLT_IEEE802_11_RADIO              = 0x7f
+       DLT_LOOP                          = 0xc
+       DLT_MPLS                          = 0xdb
+       DLT_NULL                          = 0x0
+       DLT_PFLOG                         = 0x75
+       DLT_PFSYNC                        = 0x12
+       DLT_PPP                           = 0x9
+       DLT_PPP_BSDOS                     = 0x10
+       DLT_PPP_ETHER                     = 0x33
+       DLT_PPP_SERIAL                    = 0x32
+       DLT_PRONET                        = 0x4
+       DLT_RAW                           = 0xe
+       DLT_SLIP                          = 0x8
+       DLT_SLIP_BSDOS                    = 0xf
+       DT_BLK                            = 0x6
+       DT_CHR                            = 0x2
+       DT_DIR                            = 0x4
+       DT_FIFO                           = 0x1
+       DT_LNK                            = 0xa
+       DT_REG                            = 0x8
+       DT_SOCK                           = 0xc
+       DT_UNKNOWN                        = 0x0
+       ECHO                              = 0x8
+       ECHOCTL                           = 0x40
+       ECHOE                             = 0x2
+       ECHOK                             = 0x4
+       ECHOKE                            = 0x1
+       ECHONL                            = 0x10
+       ECHOPRT                           = 0x20
+       EMT_TAGOVF                        = 0x1
+       EMUL_ENABLED                      = 0x1
+       EMUL_NATIVE                       = 0x2
+       ENDRUNDISC                        = 0x9
+       ETHERMIN                          = 0x2e
+       ETHERMTU                          = 0x5dc
+       ETHERTYPE_8023                    = 0x4
+       ETHERTYPE_AARP                    = 0x80f3
+       ETHERTYPE_ACCTON                  = 0x8390
+       ETHERTYPE_AEONIC                  = 0x8036
+       ETHERTYPE_ALPHA                   = 0x814a
+       ETHERTYPE_AMBER                   = 0x6008
+       ETHERTYPE_AMOEBA                  = 0x8145
+       ETHERTYPE_AOE                     = 0x88a2
+       ETHERTYPE_APOLLO                  = 0x80f7
+       ETHERTYPE_APOLLODOMAIN            = 0x8019
+       ETHERTYPE_APPLETALK               = 0x809b
+       ETHERTYPE_APPLITEK                = 0x80c7
+       ETHERTYPE_ARGONAUT                = 0x803a
+       ETHERTYPE_ARP                     = 0x806
+       ETHERTYPE_AT                      = 0x809b
+       ETHERTYPE_ATALK                   = 0x809b
+       ETHERTYPE_ATOMIC                  = 0x86df
+       ETHERTYPE_ATT                     = 0x8069
+       ETHERTYPE_ATTSTANFORD             = 0x8008
+       ETHERTYPE_AUTOPHON                = 0x806a
+       ETHERTYPE_AXIS                    = 0x8856
+       ETHERTYPE_BCLOOP                  = 0x9003
+       ETHERTYPE_BOFL                    = 0x8102
+       ETHERTYPE_CABLETRON               = 0x7034
+       ETHERTYPE_CHAOS                   = 0x804
+       ETHERTYPE_COMDESIGN               = 0x806c
+       ETHERTYPE_COMPUGRAPHIC            = 0x806d
+       ETHERTYPE_COUNTERPOINT            = 0x8062
+       ETHERTYPE_CRONUS                  = 0x8004
+       ETHERTYPE_CRONUSVLN               = 0x8003
+       ETHERTYPE_DCA                     = 0x1234
+       ETHERTYPE_DDE                     = 0x807b
+       ETHERTYPE_DEBNI                   = 0xaaaa
+       ETHERTYPE_DECAM                   = 0x8048
+       ETHERTYPE_DECCUST                 = 0x6006
+       ETHERTYPE_DECDIAG                 = 0x6005
+       ETHERTYPE_DECDNS                  = 0x803c
+       ETHERTYPE_DECDTS                  = 0x803e
+       ETHERTYPE_DECEXPER                = 0x6000
+       ETHERTYPE_DECLAST                 = 0x8041
+       ETHERTYPE_DECLTM                  = 0x803f
+       ETHERTYPE_DECMUMPS                = 0x6009
+       ETHERTYPE_DECNETBIOS              = 0x8040
+       ETHERTYPE_DELTACON                = 0x86de
+       ETHERTYPE_DIDDLE                  = 0x4321
+       ETHERTYPE_DLOG1                   = 0x660
+       ETHERTYPE_DLOG2                   = 0x661
+       ETHERTYPE_DN                      = 0x6003
+       ETHERTYPE_DOGFIGHT                = 0x1989
+       ETHERTYPE_DSMD                    = 0x8039
+       ETHERTYPE_ECMA                    = 0x803
+       ETHERTYPE_ENCRYPT                 = 0x803d
+       ETHERTYPE_ES                      = 0x805d
+       ETHERTYPE_EXCELAN                 = 0x8010
+       ETHERTYPE_EXPERDATA               = 0x8049
+       ETHERTYPE_FLIP                    = 0x8146
+       ETHERTYPE_FLOWCONTROL             = 0x8808
+       ETHERTYPE_FRARP                   = 0x808
+       ETHERTYPE_GENDYN                  = 0x8068
+       ETHERTYPE_HAYES                   = 0x8130
+       ETHERTYPE_HIPPI_FP                = 0x8180
+       ETHERTYPE_HITACHI                 = 0x8820
+       ETHERTYPE_HP                      = 0x8005
+       ETHERTYPE_IEEEPUP                 = 0xa00
+       ETHERTYPE_IEEEPUPAT               = 0xa01
+       ETHERTYPE_IMLBL                   = 0x4c42
+       ETHERTYPE_IMLBLDIAG               = 0x424c
+       ETHERTYPE_IP                      = 0x800
+       ETHERTYPE_IPAS                    = 0x876c
+       ETHERTYPE_IPV6                    = 0x86dd
+       ETHERTYPE_IPX                     = 0x8137
+       ETHERTYPE_IPXNEW                  = 0x8037
+       ETHERTYPE_KALPANA                 = 0x8582
+       ETHERTYPE_LANBRIDGE               = 0x8038
+       ETHERTYPE_LANPROBE                = 0x8888
+       ETHERTYPE_LAT                     = 0x6004
+       ETHERTYPE_LBACK                   = 0x9000
+       ETHERTYPE_LITTLE                  = 0x8060
+       ETHERTYPE_LLDP                    = 0x88cc
+       ETHERTYPE_LOGICRAFT               = 0x8148
+       ETHERTYPE_LOOPBACK                = 0x9000
+       ETHERTYPE_MATRA                   = 0x807a
+       ETHERTYPE_MAX                     = 0xffff
+       ETHERTYPE_MERIT                   = 0x807c
+       ETHERTYPE_MICP                    = 0x873a
+       ETHERTYPE_MOPDL                   = 0x6001
+       ETHERTYPE_MOPRC                   = 0x6002
+       ETHERTYPE_MOTOROLA                = 0x818d
+       ETHERTYPE_MPLS                    = 0x8847
+       ETHERTYPE_MPLS_MCAST              = 0x8848
+       ETHERTYPE_MUMPS                   = 0x813f
+       ETHERTYPE_NBPCC                   = 0x3c04
+       ETHERTYPE_NBPCLAIM                = 0x3c09
+       ETHERTYPE_NBPCLREQ                = 0x3c05
+       ETHERTYPE_NBPCLRSP                = 0x3c06
+       ETHERTYPE_NBPCREQ                 = 0x3c02
+       ETHERTYPE_NBPCRSP                 = 0x3c03
+       ETHERTYPE_NBPDG                   = 0x3c07
+       ETHERTYPE_NBPDGB                  = 0x3c08
+       ETHERTYPE_NBPDLTE                 = 0x3c0a
+       ETHERTYPE_NBPRAR                  = 0x3c0c
+       ETHERTYPE_NBPRAS                  = 0x3c0b
+       ETHERTYPE_NBPRST                  = 0x3c0d
+       ETHERTYPE_NBPSCD                  = 0x3c01
+       ETHERTYPE_NBPVCD                  = 0x3c00
+       ETHERTYPE_NBS                     = 0x802
+       ETHERTYPE_NCD                     = 0x8149
+       ETHERTYPE_NESTAR                  = 0x8006
+       ETHERTYPE_NETBEUI                 = 0x8191
+       ETHERTYPE_NOVELL                  = 0x8138
+       ETHERTYPE_NS                      = 0x600
+       ETHERTYPE_NSAT                    = 0x601
+       ETHERTYPE_NSCOMPAT                = 0x807
+       ETHERTYPE_NTRAILER                = 0x10
+       ETHERTYPE_OS9                     = 0x7007
+       ETHERTYPE_OS9NET                  = 0x7009
+       ETHERTYPE_PACER                   = 0x80c6
+       ETHERTYPE_PAE                     = 0x888e
+       ETHERTYPE_PCS                     = 0x4242
+       ETHERTYPE_PLANNING                = 0x8044
+       ETHERTYPE_PPP                     = 0x880b
+       ETHERTYPE_PPPOE                   = 0x8864
+       ETHERTYPE_PPPOEDISC               = 0x8863
+       ETHERTYPE_PRIMENTS                = 0x7031
+       ETHERTYPE_PUP                     = 0x200
+       ETHERTYPE_PUPAT                   = 0x200
+       ETHERTYPE_QINQ                    = 0x88a8
+       ETHERTYPE_RACAL                   = 0x7030
+       ETHERTYPE_RATIONAL                = 0x8150
+       ETHERTYPE_RAWFR                   = 0x6559
+       ETHERTYPE_RCL                     = 0x1995
+       ETHERTYPE_RDP                     = 0x8739
+       ETHERTYPE_RETIX                   = 0x80f2
+       ETHERTYPE_REVARP                  = 0x8035
+       ETHERTYPE_SCA                     = 0x6007
+       ETHERTYPE_SECTRA                  = 0x86db
+       ETHERTYPE_SECUREDATA              = 0x876d
+       ETHERTYPE_SGITW                   = 0x817e
+       ETHERTYPE_SG_BOUNCE               = 0x8016
+       ETHERTYPE_SG_DIAG                 = 0x8013
+       ETHERTYPE_SG_NETGAMES             = 0x8014
+       ETHERTYPE_SG_RESV                 = 0x8015
+       ETHERTYPE_SIMNET                  = 0x5208
+       ETHERTYPE_SLOW                    = 0x8809
+       ETHERTYPE_SNA                     = 0x80d5
+       ETHERTYPE_SNMP                    = 0x814c
+       ETHERTYPE_SONIX                   = 0xfaf5
+       ETHERTYPE_SPIDER                  = 0x809f
+       ETHERTYPE_SPRITE                  = 0x500
+       ETHERTYPE_STP                     = 0x8181
+       ETHERTYPE_TALARIS                 = 0x812b
+       ETHERTYPE_TALARISMC               = 0x852b
+       ETHERTYPE_TCPCOMP                 = 0x876b
+       ETHERTYPE_TCPSM                   = 0x9002
+       ETHERTYPE_TEC                     = 0x814f
+       ETHERTYPE_TIGAN                   = 0x802f
+       ETHERTYPE_TRAIL                   = 0x1000
+       ETHERTYPE_TRANSETHER              = 0x6558
+       ETHERTYPE_TYMSHARE                = 0x802e
+       ETHERTYPE_UBBST                   = 0x7005
+       ETHERTYPE_UBDEBUG                 = 0x900
+       ETHERTYPE_UBDIAGLOOP              = 0x7002
+       ETHERTYPE_UBDL                    = 0x7000
+       ETHERTYPE_UBNIU                   = 0x7001
+       ETHERTYPE_UBNMC                   = 0x7003
+       ETHERTYPE_VALID                   = 0x1600
+       ETHERTYPE_VARIAN                  = 0x80dd
+       ETHERTYPE_VAXELN                  = 0x803b
+       ETHERTYPE_VEECO                   = 0x8067
+       ETHERTYPE_VEXP                    = 0x805b
+       ETHERTYPE_VGLAB                   = 0x8131
+       ETHERTYPE_VINES                   = 0xbad
+       ETHERTYPE_VINESECHO               = 0xbaf
+       ETHERTYPE_VINESLOOP               = 0xbae
+       ETHERTYPE_VITAL                   = 0xff00
+       ETHERTYPE_VLAN                    = 0x8100
+       ETHERTYPE_VLTLMAN                 = 0x8080
+       ETHERTYPE_VPROD                   = 0x805c
+       ETHERTYPE_VURESERVED              = 0x8147
+       ETHERTYPE_WATERLOO                = 0x8130
+       ETHERTYPE_WELLFLEET               = 0x8103
+       ETHERTYPE_X25                     = 0x805
+       ETHERTYPE_X75                     = 0x801
+       ETHERTYPE_XNSSM                   = 0x9001
+       ETHERTYPE_XTP                     = 0x817d
+       ETHER_ADDR_LEN                    = 0x6
+       ETHER_ALIGN                       = 0x2
+       ETHER_CRC_LEN                     = 0x4
+       ETHER_CRC_POLY_BE                 = 0x4c11db6
+       ETHER_CRC_POLY_LE                 = 0xedb88320
+       ETHER_HDR_LEN                     = 0xe
+       ETHER_MAX_DIX_LEN                 = 0x600
+       ETHER_MAX_LEN                     = 0x5ee
+       ETHER_MIN_LEN                     = 0x40
+       ETHER_TYPE_LEN                    = 0x2
+       ETHER_VLAN_ENCAP_LEN              = 0x4
+       EVFILT_AIO                        = -0x3
+       EVFILT_PROC                       = -0x5
+       EVFILT_READ                       = -0x1
+       EVFILT_SIGNAL                     = -0x6
+       EVFILT_SYSCOUNT                   = 0x7
+       EVFILT_TIMER                      = -0x7
+       EVFILT_VNODE                      = -0x4
+       EVFILT_WRITE                      = -0x2
+       EV_ADD                            = 0x1
+       EV_CLEAR                          = 0x20
+       EV_DELETE                         = 0x2
+       EV_DISABLE                        = 0x8
+       EV_ENABLE                         = 0x4
+       EV_EOF                            = 0x8000
+       EV_ERROR                          = 0x4000
+       EV_FLAG1                          = 0x2000
+       EV_ONESHOT                        = 0x10
+       EV_SYSFLAGS                       = 0xf000
+       EXTA                              = 0x4b00
+       EXTB                              = 0x9600
+       EXTPROC                           = 0x800
+       FD_CLOEXEC                        = 0x1
+       FD_SETSIZE                        = 0x400
+       FLUSHO                            = 0x800000
+       F_DUPFD                           = 0x0
+       F_DUPFD_CLOEXEC                   = 0xa
+       F_GETFD                           = 0x1
+       F_GETFL                           = 0x3
+       F_GETLK                           = 0x7
+       F_GETOWN                          = 0x5
+       F_OK                              = 0x0
+       F_RDLCK                           = 0x1
+       F_SETFD                           = 0x2
+       F_SETFL                           = 0x4
+       F_SETLK                           = 0x8
+       F_SETLKW                          = 0x9
+       F_SETOWN                          = 0x6
+       F_UNLCK                           = 0x2
+       F_WRLCK                           = 0x3
+       HUPCL                             = 0x4000
+       ICANON                            = 0x100
+       ICMP6_FILTER                      = 0x12
+       ICRNL                             = 0x100
+       IEXTEN                            = 0x400
+       IFAN_ARRIVAL                      = 0x0
+       IFAN_DEPARTURE                    = 0x1
+       IFA_ROUTE                         = 0x1
+       IFF_ALLMULTI                      = 0x200
+       IFF_BROADCAST                     = 0x2
+       IFF_CANTCHANGE                    = 0x8e52
+       IFF_DEBUG                         = 0x4
+       IFF_LINK0                         = 0x1000
+       IFF_LINK1                         = 0x2000
+       IFF_LINK2                         = 0x4000
+       IFF_LOOPBACK                      = 0x8
+       IFF_MULTICAST                     = 0x8000
+       IFF_NOARP                         = 0x80
+       IFF_NOTRAILERS                    = 0x20
+       IFF_OACTIVE                       = 0x400
+       IFF_POINTOPOINT                   = 0x10
+       IFF_PROMISC                       = 0x100
+       IFF_RUNNING                       = 0x40
+       IFF_SIMPLEX                       = 0x800
+       IFF_UP                            = 0x1
+       IFNAMSIZ                          = 0x10
+       IFT_1822                          = 0x2
+       IFT_A12MPPSWITCH                  = 0x82
+       IFT_AAL2                          = 0xbb
+       IFT_AAL5                          = 0x31
+       IFT_ADSL                          = 0x5e
+       IFT_AFLANE8023                    = 0x3b
+       IFT_AFLANE8025                    = 0x3c
+       IFT_ARAP                          = 0x58
+       IFT_ARCNET                        = 0x23
+       IFT_ARCNETPLUS                    = 0x24
+       IFT_ASYNC                         = 0x54
+       IFT_ATM                           = 0x25
+       IFT_ATMDXI                        = 0x69
+       IFT_ATMFUNI                       = 0x6a
+       IFT_ATMIMA                        = 0x6b
+       IFT_ATMLOGICAL                    = 0x50
+       IFT_ATMRADIO                      = 0xbd
+       IFT_ATMSUBINTERFACE               = 0x86
+       IFT_ATMVCIENDPT                   = 0xc2
+       IFT_ATMVIRTUAL                    = 0x95
+       IFT_BGPPOLICYACCOUNTING           = 0xa2
+       IFT_BLUETOOTH                     = 0xf8
+       IFT_BRIDGE                        = 0xd1
+       IFT_BSC                           = 0x53
+       IFT_CARP                          = 0xf7
+       IFT_CCTEMUL                       = 0x3d
+       IFT_CEPT                          = 0x13
+       IFT_CES                           = 0x85
+       IFT_CHANNEL                       = 0x46
+       IFT_CNR                           = 0x55
+       IFT_COFFEE                        = 0x84
+       IFT_COMPOSITELINK                 = 0x9b
+       IFT_DCN                           = 0x8d
+       IFT_DIGITALPOWERLINE              = 0x8a
+       IFT_DIGITALWRAPPEROVERHEADCHANNEL = 0xba
+       IFT_DLSW                          = 0x4a
+       IFT_DOCSCABLEDOWNSTREAM           = 0x80
+       IFT_DOCSCABLEMACLAYER             = 0x7f
+       IFT_DOCSCABLEUPSTREAM             = 0x81
+       IFT_DOCSCABLEUPSTREAMCHANNEL      = 0xcd
+       IFT_DS0                           = 0x51
+       IFT_DS0BUNDLE                     = 0x52
+       IFT_DS1FDL                        = 0xaa
+       IFT_DS3                           = 0x1e
+       IFT_DTM                           = 0x8c
+       IFT_DUMMY                         = 0xf1
+       IFT_DVBASILN                      = 0xac
+       IFT_DVBASIOUT                     = 0xad
+       IFT_DVBRCCDOWNSTREAM              = 0x93
+       IFT_DVBRCCMACLAYER                = 0x92
+       IFT_DVBRCCUPSTREAM                = 0x94
+       IFT_ECONET                        = 0xce
+       IFT_ENC                           = 0xf4
+       IFT_EON                           = 0x19
+       IFT_EPLRS                         = 0x57
+       IFT_ESCON                         = 0x49
+       IFT_ETHER                         = 0x6
+       IFT_FAITH                         = 0xf3
+       IFT_FAST                          = 0x7d
+       IFT_FASTETHER                     = 0x3e
+       IFT_FASTETHERFX                   = 0x45
+       IFT_FDDI                          = 0xf
+       IFT_FIBRECHANNEL                  = 0x38
+       IFT_FRAMERELAYINTERCONNECT        = 0x3a
+       IFT_FRAMERELAYMPI                 = 0x5c
+       IFT_FRDLCIENDPT                   = 0xc1
+       IFT_FRELAY                        = 0x20
+       IFT_FRELAYDCE                     = 0x2c
+       IFT_FRF16MFRBUNDLE                = 0xa3
+       IFT_FRFORWARD                     = 0x9e
+       IFT_G703AT2MB                     = 0x43
+       IFT_G703AT64K                     = 0x42
+       IFT_GIF                           = 0xf0
+       IFT_GIGABITETHERNET               = 0x75
+       IFT_GR303IDT                      = 0xb2
+       IFT_GR303RDT                      = 0xb1
+       IFT_H323GATEKEEPER                = 0xa4
+       IFT_H323PROXY                     = 0xa5
+       IFT_HDH1822                       = 0x3
+       IFT_HDLC                          = 0x76
+       IFT_HDSL2                         = 0xa8
+       IFT_HIPERLAN2                     = 0xb7
+       IFT_HIPPI                         = 0x2f
+       IFT_HIPPIINTERFACE                = 0x39
+       IFT_HOSTPAD                       = 0x5a
+       IFT_HSSI                          = 0x2e
+       IFT_HY                            = 0xe
+       IFT_IBM370PARCHAN                 = 0x48
+       IFT_IDSL                          = 0x9a
+       IFT_IEEE1394                      = 0x90
+       IFT_IEEE80211                     = 0x47
+       IFT_IEEE80212                     = 0x37
+       IFT_IEEE8023ADLAG                 = 0xa1
+       IFT_IFGSN                         = 0x91
+       IFT_IMT                           = 0xbe
+       IFT_INFINIBAND                    = 0xc7
+       IFT_INTERLEAVE                    = 0x7c
+       IFT_IP                            = 0x7e
+       IFT_IPFORWARD                     = 0x8e
+       IFT_IPOVERATM                     = 0x72
+       IFT_IPOVERCDLC                    = 0x6d
+       IFT_IPOVERCLAW                    = 0x6e
+       IFT_IPSWITCH                      = 0x4e
+       IFT_ISDN                          = 0x3f
+       IFT_ISDNBASIC                     = 0x14
+       IFT_ISDNPRIMARY                   = 0x15
+       IFT_ISDNS                         = 0x4b
+       IFT_ISDNU                         = 0x4c
+       IFT_ISO88022LLC                   = 0x29
+       IFT_ISO88023                      = 0x7
+       IFT_ISO88024                      = 0x8
+       IFT_ISO88025                      = 0x9
+       IFT_ISO88025CRFPINT               = 0x62
+       IFT_ISO88025DTR                   = 0x56
+       IFT_ISO88025FIBER                 = 0x73
+       IFT_ISO88026                      = 0xa
+       IFT_ISUP                          = 0xb3
+       IFT_L2VLAN                        = 0x87
+       IFT_L3IPVLAN                      = 0x88
+       IFT_L3IPXVLAN                     = 0x89
+       IFT_LAPB                          = 0x10
+       IFT_LAPD                          = 0x4d
+       IFT_LAPF                          = 0x77
+       IFT_LINEGROUP                     = 0xd2
+       IFT_LOCALTALK                     = 0x2a
+       IFT_LOOP                          = 0x18
+       IFT_MEDIAMAILOVERIP               = 0x8b
+       IFT_MFSIGLINK                     = 0xa7
+       IFT_MIOX25                        = 0x26
+       IFT_MODEM                         = 0x30
+       IFT_MPC                           = 0x71
+       IFT_MPLS                          = 0xa6
+       IFT_MPLSTUNNEL                    = 0x96
+       IFT_MSDSL                         = 0x8f
+       IFT_MVL                           = 0xbf
+       IFT_MYRINET                       = 0x63
+       IFT_NFAS                          = 0xaf
+       IFT_NSIP                          = 0x1b
+       IFT_OPTICALCHANNEL                = 0xc3
+       IFT_OPTICALTRANSPORT              = 0xc4
+       IFT_OTHER                         = 0x1
+       IFT_P10                           = 0xc
+       IFT_P80                           = 0xd
+       IFT_PARA                          = 0x22
+       IFT_PFLOG                         = 0xf5
+       IFT_PFLOW                         = 0xf9
+       IFT_PFSYNC                        = 0xf6
+       IFT_PLC                           = 0xae
+       IFT_PON155                        = 0xcf
+       IFT_PON622                        = 0xd0
+       IFT_POS                           = 0xab
+       IFT_PPP                           = 0x17
+       IFT_PPPMULTILINKBUNDLE            = 0x6c
+       IFT_PROPATM                       = 0xc5
+       IFT_PROPBWAP2MP                   = 0xb8
+       IFT_PROPCNLS                      = 0x59
+       IFT_PROPDOCSWIRELESSDOWNSTREAM    = 0xb5
+       IFT_PROPDOCSWIRELESSMACLAYER      = 0xb4
+       IFT_PROPDOCSWIRELESSUPSTREAM      = 0xb6
+       IFT_PROPMUX                       = 0x36
+       IFT_PROPVIRTUAL                   = 0x35
+       IFT_PROPWIRELESSP2P               = 0x9d
+       IFT_PTPSERIAL                     = 0x16
+       IFT_PVC                           = 0xf2
+       IFT_Q2931                         = 0xc9
+       IFT_QLLC                          = 0x44
+       IFT_RADIOMAC                      = 0xbc
+       IFT_RADSL                         = 0x5f
+       IFT_REACHDSL                      = 0xc0
+       IFT_RFC1483                       = 0x9f
+       IFT_RS232                         = 0x21
+       IFT_RSRB                          = 0x4f
+       IFT_SDLC                          = 0x11
+       IFT_SDSL                          = 0x60
+       IFT_SHDSL                         = 0xa9
+       IFT_SIP                           = 0x1f
+       IFT_SIPSIG                        = 0xcc
+       IFT_SIPTG                         = 0xcb
+       IFT_SLIP                          = 0x1c
+       IFT_SMDSDXI                       = 0x2b
+       IFT_SMDSICIP                      = 0x34
+       IFT_SONET                         = 0x27
+       IFT_SONETOVERHEADCHANNEL          = 0xb9
+       IFT_SONETPATH                     = 0x32
+       IFT_SONETVT                       = 0x33
+       IFT_SRP                           = 0x97
+       IFT_SS7SIGLINK                    = 0x9c
+       IFT_STACKTOSTACK                  = 0x6f
+       IFT_STARLAN                       = 0xb
+       IFT_T1                            = 0x12
+       IFT_TDLC                          = 0x74
+       IFT_TELINK                        = 0xc8
+       IFT_TERMPAD                       = 0x5b
+       IFT_TR008                         = 0xb0
+       IFT_TRANSPHDLC                    = 0x7b
+       IFT_TUNNEL                        = 0x83
+       IFT_ULTRA                         = 0x1d
+       IFT_USB                           = 0xa0
+       IFT_V11                           = 0x40
+       IFT_V35                           = 0x2d
+       IFT_V36                           = 0x41
+       IFT_V37                           = 0x78
+       IFT_VDSL                          = 0x61
+       IFT_VIRTUALIPADDRESS              = 0x70
+       IFT_VIRTUALTG                     = 0xca
+       IFT_VOICEDID                      = 0xd5
+       IFT_VOICEEM                       = 0x64
+       IFT_VOICEEMFGD                    = 0xd3
+       IFT_VOICEENCAP                    = 0x67
+       IFT_VOICEFGDEANA                  = 0xd4
+       IFT_VOICEFXO                      = 0x65
+       IFT_VOICEFXS                      = 0x66
+       IFT_VOICEOVERATM                  = 0x98
+       IFT_VOICEOVERCABLE                = 0xc6
+       IFT_VOICEOVERFRAMERELAY           = 0x99
+       IFT_VOICEOVERIP                   = 0x68
+       IFT_X213                          = 0x5d
+       IFT_X25                           = 0x5
+       IFT_X25DDN                        = 0x4
+       IFT_X25HUNTGROUP                  = 0x7a
+       IFT_X25MLP                        = 0x79
+       IFT_X25PLE                        = 0x28
+       IFT_XETHER                        = 0x1a
+       IGNBRK                            = 0x1
+       IGNCR                             = 0x80
+       IGNPAR                            = 0x4
+       IMAXBEL                           = 0x2000
+       INLCR                             = 0x40
+       INPCK                             = 0x10
+       IN_CLASSA_HOST                    = 0xffffff
+       IN_CLASSA_MAX                     = 0x80
+       IN_CLASSA_NET                     = 0xff000000
+       IN_CLASSA_NSHIFT                  = 0x18
+       IN_CLASSB_HOST                    = 0xffff
+       IN_CLASSB_MAX                     = 0x10000
+       IN_CLASSB_NET                     = 0xffff0000
+       IN_CLASSB_NSHIFT                  = 0x10
+       IN_CLASSC_HOST                    = 0xff
+       IN_CLASSC_NET                     = 0xffffff00
+       IN_CLASSC_NSHIFT                  = 0x8
+       IN_CLASSD_HOST                    = 0xfffffff
+       IN_CLASSD_NET                     = 0xf0000000
+       IN_CLASSD_NSHIFT                  = 0x1c
+       IN_LOOPBACKNET                    = 0x7f
+       IN_RFC3021_HOST                   = 0x1
+       IN_RFC3021_NET                    = 0xfffffffe
+       IN_RFC3021_NSHIFT                 = 0x1f
+       IPPROTO_AH                        = 0x33
+       IPPROTO_CARP                      = 0x70
+       IPPROTO_DIVERT                    = 0x102
+       IPPROTO_DIVERT_INIT               = 0x2
+       IPPROTO_DIVERT_RESP               = 0x1
+       IPPROTO_DONE                      = 0x101
+       IPPROTO_DSTOPTS                   = 0x3c
+       IPPROTO_EGP                       = 0x8
+       IPPROTO_ENCAP                     = 0x62
+       IPPROTO_EON                       = 0x50
+       IPPROTO_ESP                       = 0x32
+       IPPROTO_ETHERIP                   = 0x61
+       IPPROTO_FRAGMENT                  = 0x2c
+       IPPROTO_GGP                       = 0x3
+       IPPROTO_GRE                       = 0x2f
+       IPPROTO_HOPOPTS                   = 0x0
+       IPPROTO_ICMP                      = 0x1
+       IPPROTO_ICMPV6                    = 0x3a
+       IPPROTO_IDP                       = 0x16
+       IPPROTO_IGMP                      = 0x2
+       IPPROTO_IP                        = 0x0
+       IPPROTO_IPCOMP                    = 0x6c
+       IPPROTO_IPIP                      = 0x4
+       IPPROTO_IPV4                      = 0x4
+       IPPROTO_IPV6                      = 0x29
+       IPPROTO_MAX                       = 0x100
+       IPPROTO_MAXID                     = 0x103
+       IPPROTO_MOBILE                    = 0x37
+       IPPROTO_MPLS                      = 0x89
+       IPPROTO_NONE                      = 0x3b
+       IPPROTO_PFSYNC                    = 0xf0
+       IPPROTO_PIM                       = 0x67
+       IPPROTO_PUP                       = 0xc
+       IPPROTO_RAW                       = 0xff
+       IPPROTO_ROUTING                   = 0x2b
+       IPPROTO_RSVP                      = 0x2e
+       IPPROTO_TCP                       = 0x6
+       IPPROTO_TP                        = 0x1d
+       IPPROTO_UDP                       = 0x11
+       IPV6_AUTH_LEVEL                   = 0x35
+       IPV6_AUTOFLOWLABEL                = 0x3b
+       IPV6_CHECKSUM                     = 0x1a
+       IPV6_DEFAULT_MULTICAST_HOPS       = 0x1
+       IPV6_DEFAULT_MULTICAST_LOOP       = 0x1
+       IPV6_DEFHLIM                      = 0x40
+       IPV6_DONTFRAG                     = 0x3e
+       IPV6_DSTOPTS                      = 0x32
+       IPV6_ESP_NETWORK_LEVEL            = 0x37
+       IPV6_ESP_TRANS_LEVEL              = 0x36
+       IPV6_FAITH                        = 0x1d
+       IPV6_FLOWINFO_MASK                = 0xffffff0f
+       IPV6_FLOWLABEL_MASK               = 0xffff0f00
+       IPV6_FRAGTTL                      = 0x78
+       IPV6_HLIMDEC                      = 0x1
+       IPV6_HOPLIMIT                     = 0x2f
+       IPV6_HOPOPTS                      = 0x31
+       IPV6_IPCOMP_LEVEL                 = 0x3c
+       IPV6_JOIN_GROUP                   = 0xc
+       IPV6_LEAVE_GROUP                  = 0xd
+       IPV6_MAXHLIM                      = 0xff
+       IPV6_MAXPACKET                    = 0xffff
+       IPV6_MMTU                         = 0x500
+       IPV6_MULTICAST_HOPS               = 0xa
+       IPV6_MULTICAST_IF                 = 0x9
+       IPV6_MULTICAST_LOOP               = 0xb
+       IPV6_NEXTHOP                      = 0x30
+       IPV6_OPTIONS                      = 0x1
+       IPV6_PATHMTU                      = 0x2c
+       IPV6_PIPEX                        = 0x3f
+       IPV6_PKTINFO                      = 0x2e
+       IPV6_PORTRANGE                    = 0xe
+       IPV6_PORTRANGE_DEFAULT            = 0x0
+       IPV6_PORTRANGE_HIGH               = 0x1
+       IPV6_PORTRANGE_LOW                = 0x2
+       IPV6_RECVDSTOPTS                  = 0x28
+       IPV6_RECVDSTPORT                  = 0x40
+       IPV6_RECVHOPLIMIT                 = 0x25
+       IPV6_RECVHOPOPTS                  = 0x27
+       IPV6_RECVPATHMTU                  = 0x2b
+       IPV6_RECVPKTINFO                  = 0x24
+       IPV6_RECVRTHDR                    = 0x26
+       IPV6_RECVTCLASS                   = 0x39
+       IPV6_RTABLE                       = 0x1021
+       IPV6_RTHDR                        = 0x33
+       IPV6_RTHDRDSTOPTS                 = 0x23
+       IPV6_RTHDR_LOOSE                  = 0x0
+       IPV6_RTHDR_STRICT                 = 0x1
+       IPV6_RTHDR_TYPE_0                 = 0x0
+       IPV6_SOCKOPT_RESERVED1            = 0x3
+       IPV6_TCLASS                       = 0x3d
+       IPV6_UNICAST_HOPS                 = 0x4
+       IPV6_USE_MIN_MTU                  = 0x2a
+       IPV6_V6ONLY                       = 0x1b
+       IPV6_VERSION                      = 0x60
+       IPV6_VERSION_MASK                 = 0xf0
+       IP_ADD_MEMBERSHIP                 = 0xc
+       IP_AUTH_LEVEL                     = 0x14
+       IP_DEFAULT_MULTICAST_LOOP         = 0x1
+       IP_DEFAULT_MULTICAST_TTL          = 0x1
+       IP_DF                             = 0x4000
+       IP_DIVERTFL                       = 0x1022
+       IP_DROP_MEMBERSHIP                = 0xd
+       IP_ESP_NETWORK_LEVEL              = 0x16
+       IP_ESP_TRANS_LEVEL                = 0x15
+       IP_HDRINCL                        = 0x2
+       IP_IPCOMP_LEVEL                   = 0x1d
+       IP_IPSECFLOWINFO                  = 0x24
+       IP_IPSEC_LOCAL_AUTH               = 0x1b
+       IP_IPSEC_LOCAL_CRED               = 0x19
+       IP_IPSEC_LOCAL_ID                 = 0x17
+       IP_IPSEC_REMOTE_AUTH              = 0x1c
+       IP_IPSEC_REMOTE_CRED              = 0x1a
+       IP_IPSEC_REMOTE_ID                = 0x18
+       IP_MAXPACKET                      = 0xffff
+       IP_MAX_MEMBERSHIPS                = 0xfff
+       IP_MF                             = 0x2000
+       IP_MINTTL                         = 0x20
+       IP_MIN_MEMBERSHIPS                = 0xf
+       IP_MSS                            = 0x240
+       IP_MULTICAST_IF                   = 0x9
+       IP_MULTICAST_LOOP                 = 0xb
+       IP_MULTICAST_TTL                  = 0xa
+       IP_OFFMASK                        = 0x1fff
+       IP_OPTIONS                        = 0x1
+       IP_PIPEX                          = 0x22
+       IP_PORTRANGE                      = 0x13
+       IP_PORTRANGE_DEFAULT              = 0x0
+       IP_PORTRANGE_HIGH                 = 0x1
+       IP_PORTRANGE_LOW                  = 0x2
+       IP_RECVDSTADDR                    = 0x7
+       IP_RECVDSTPORT                    = 0x21
+       IP_RECVIF                         = 0x1e
+       IP_RECVOPTS                       = 0x5
+       IP_RECVRETOPTS                    = 0x6
+       IP_RECVRTABLE                     = 0x23
+       IP_RECVTTL                        = 0x1f
+       IP_RETOPTS                        = 0x8
+       IP_RF                             = 0x8000
+       IP_RTABLE                         = 0x1021
+       IP_TOS                            = 0x3
+       IP_TTL                            = 0x4
+       ISIG                              = 0x80
+       ISTRIP                            = 0x20
+       IXANY                             = 0x800
+       IXOFF                             = 0x400
+       IXON                              = 0x200
+       LCNT_OVERLOAD_FLUSH               = 0x6
+       LOCK_EX                           = 0x2
+       LOCK_NB                           = 0x4
+       LOCK_SH                           = 0x1
+       LOCK_UN                           = 0x8
+       MADV_DONTNEED                     = 0x4
+       MADV_FREE                         = 0x6
+       MADV_NORMAL                       = 0x0
+       MADV_RANDOM                       = 0x1
+       MADV_SEQUENTIAL                   = 0x2
+       MADV_SPACEAVAIL                   = 0x5
+       MADV_WILLNEED                     = 0x3
+       MAP_ANON                          = 0x1000
+       MAP_COPY                          = 0x4
+       MAP_FILE                          = 0x0
+       MAP_FIXED                         = 0x10
+       MAP_FLAGMASK                      = 0x1ff7
+       MAP_HASSEMAPHORE                  = 0x200
+       MAP_INHERIT                       = 0x80
+       MAP_INHERIT_COPY                  = 0x1
+       MAP_INHERIT_DONATE_COPY           = 0x3
+       MAP_INHERIT_NONE                  = 0x2
+       MAP_INHERIT_SHARE                 = 0x0
+       MAP_NOEXTEND                      = 0x100
+       MAP_NORESERVE                     = 0x40
+       MAP_PRIVATE                       = 0x2
+       MAP_RENAME                        = 0x20
+       MAP_SHARED                        = 0x1
+       MAP_TRYFIXED                      = 0x400
+       MCL_CURRENT                       = 0x1
+       MCL_FUTURE                        = 0x2
+       MSG_BCAST                         = 0x100
+       MSG_CTRUNC                        = 0x20
+       MSG_DONTROUTE                     = 0x4
+       MSG_DONTWAIT                      = 0x80
+       MSG_EOR                           = 0x8
+       MSG_MCAST                         = 0x200
+       MSG_NOSIGNAL                      = 0x400
+       MSG_OOB                           = 0x1
+       MSG_PEEK                          = 0x2
+       MSG_TRUNC                         = 0x10
+       MSG_WAITALL                       = 0x40
+       MS_ASYNC                          = 0x1
+       MS_INVALIDATE                     = 0x4
+       MS_SYNC                           = 0x2
+       NAME_MAX                          = 0xff
+       NET_RT_DUMP                       = 0x1
+       NET_RT_FLAGS                      = 0x2
+       NET_RT_IFLIST                     = 0x3
+       NET_RT_MAXID                      = 0x6
+       NET_RT_STATS                      = 0x4
+       NET_RT_TABLE                      = 0x5
+       NOFLSH                            = 0x80000000
+       NOTE_ATTRIB                       = 0x8
+       NOTE_CHILD                        = 0x4
+       NOTE_DELETE                       = 0x1
+       NOTE_EOF                          = 0x2
+       NOTE_EXEC                         = 0x20000000
+       NOTE_EXIT                         = 0x80000000
+       NOTE_EXTEND                       = 0x4
+       NOTE_FORK                         = 0x40000000
+       NOTE_LINK                         = 0x10
+       NOTE_LOWAT                        = 0x1
+       NOTE_PCTRLMASK                    = 0xf0000000
+       NOTE_PDATAMASK                    = 0xfffff
+       NOTE_RENAME                       = 0x20
+       NOTE_REVOKE                       = 0x40
+       NOTE_TRACK                        = 0x1
+       NOTE_TRACKERR                     = 0x2
+       NOTE_TRUNCATE                     = 0x80
+       NOTE_WRITE                        = 0x2
+       OCRNL                             = 0x10
+       ONLCR                             = 0x2
+       ONLRET                            = 0x80
+       ONOCR                             = 0x40
+       ONOEOT                            = 0x8
+       OPOST                             = 0x1
+       O_ACCMODE                         = 0x3
+       O_APPEND                          = 0x8
+       O_ASYNC                           = 0x40
+       O_CLOEXEC                         = 0x10000
+       O_CREAT                           = 0x200
+       O_DIRECTORY                       = 0x20000
+       O_DSYNC                           = 0x80
+       O_EXCL                            = 0x800
+       O_EXLOCK                          = 0x20
+       O_FSYNC                           = 0x80
+       O_NDELAY                          = 0x4
+       O_NOCTTY                          = 0x8000
+       O_NOFOLLOW                        = 0x100
+       O_NONBLOCK                        = 0x4
+       O_RDONLY                          = 0x0
+       O_RDWR                            = 0x2
+       O_RSYNC                           = 0x80
+       O_SHLOCK                          = 0x10
+       O_SYNC                            = 0x80
+       O_TRUNC                           = 0x400
+       O_WRONLY                          = 0x1
+       PARENB                            = 0x1000
+       PARMRK                            = 0x8
+       PARODD                            = 0x2000
+       PENDIN                            = 0x20000000
+       PF_FLUSH                          = 0x1
+       PRIO_PGRP                         = 0x1
+       PRIO_PROCESS                      = 0x0
+       PRIO_USER                         = 0x2
+       PROT_EXEC                         = 0x4
+       PROT_NONE                         = 0x0
+       PROT_READ                         = 0x1
+       PROT_WRITE                        = 0x2
+       PT_MASK                           = 0x3ff000
+       RLIMIT_CORE                       = 0x4
+       RLIMIT_CPU                        = 0x0
+       RLIMIT_DATA                       = 0x2
+       RLIMIT_FSIZE                      = 0x1
+       RLIMIT_NOFILE                     = 0x8
+       RLIMIT_STACK                      = 0x3
+       RLIM_INFINITY                     = 0x7fffffffffffffff
+       RTAX_AUTHOR                       = 0x6
+       RTAX_BRD                          = 0x7
+       RTAX_DST                          = 0x0
+       RTAX_GATEWAY                      = 0x1
+       RTAX_GENMASK                      = 0x3
+       RTAX_IFA                          = 0x5
+       RTAX_IFP                          = 0x4
+       RTAX_LABEL                        = 0xa
+       RTAX_MAX                          = 0xb
+       RTAX_NETMASK                      = 0x2
+       RTAX_SRC                          = 0x8
+       RTAX_SRCMASK                      = 0x9
+       RTA_AUTHOR                        = 0x40
+       RTA_BRD                           = 0x80
+       RTA_DST                           = 0x1
+       RTA_GATEWAY                       = 0x2
+       RTA_GENMASK                       = 0x8
+       RTA_IFA                           = 0x20
+       RTA_IFP                           = 0x10
+       RTA_LABEL                         = 0x400
+       RTA_NETMASK                       = 0x4
+       RTA_SRC                           = 0x100
+       RTA_SRCMASK                       = 0x200
+       RTF_ANNOUNCE                      = 0x4000
+       RTF_BLACKHOLE                     = 0x1000
+       RTF_CLONED                        = 0x10000
+       RTF_CLONING                       = 0x100
+       RTF_DONE                          = 0x40
+       RTF_DYNAMIC                       = 0x10
+       RTF_FMASK                         = 0x10f808
+       RTF_GATEWAY                       = 0x2
+       RTF_HOST                          = 0x4
+       RTF_LLINFO                        = 0x400
+       RTF_MASK                          = 0x80
+       RTF_MODIFIED                      = 0x20
+       RTF_MPATH                         = 0x40000
+       RTF_MPLS                          = 0x100000
+       RTF_PERMANENT_ARP                 = 0x2000
+       RTF_PROTO1                        = 0x8000
+       RTF_PROTO2                        = 0x4000
+       RTF_PROTO3                        = 0x2000
+       RTF_REJECT                        = 0x8
+       RTF_SOURCE                        = 0x20000
+       RTF_STATIC                        = 0x800
+       RTF_TUNNEL                        = 0x100000
+       RTF_UP                            = 0x1
+       RTF_USETRAILERS                   = 0x8000
+       RTF_XRESOLVE                      = 0x200
+       RTM_ADD                           = 0x1
+       RTM_CHANGE                        = 0x3
+       RTM_DELADDR                       = 0xd
+       RTM_DELETE                        = 0x2
+       RTM_DESYNC                        = 0x10
+       RTM_GET                           = 0x4
+       RTM_IFANNOUNCE                    = 0xf
+       RTM_IFINFO                        = 0xe
+       RTM_LOCK                          = 0x8
+       RTM_LOSING                        = 0x5
+       RTM_MAXSIZE                       = 0x800
+       RTM_MISS                          = 0x7
+       RTM_NEWADDR                       = 0xc
+       RTM_REDIRECT                      = 0x6
+       RTM_RESOLVE                       = 0xb
+       RTM_RTTUNIT                       = 0xf4240
+       RTM_VERSION                       = 0x5
+       RTV_EXPIRE                        = 0x4
+       RTV_HOPCOUNT                      = 0x2
+       RTV_MTU                           = 0x1
+       RTV_RPIPE                         = 0x8
+       RTV_RTT                           = 0x40
+       RTV_RTTVAR                        = 0x80
+       RTV_SPIPE                         = 0x10
+       RTV_SSTHRESH                      = 0x20
+       RT_TABLEID_MAX                    = 0xff
+       RUSAGE_CHILDREN                   = -0x1
+       RUSAGE_SELF                       = 0x0
+       RUSAGE_THREAD                     = 0x1
+       SCM_RIGHTS                        = 0x1
+       SCM_TIMESTAMP                     = 0x4
+       SHUT_RD                           = 0x0
+       SHUT_RDWR                         = 0x2
+       SHUT_WR                           = 0x1
+       SIOCADDMULTI                      = 0x80206931
+       SIOCAIFADDR                       = 0x8040691a
+       SIOCAIFGROUP                      = 0x80246987
+       SIOCALIFADDR                      = 0x8218691c
+       SIOCATMARK                        = 0x40047307
+       SIOCBRDGADD                       = 0x8054693c
+       SIOCBRDGADDS                      = 0x80546941
+       SIOCBRDGARL                       = 0x806e694d
+       SIOCBRDGDADDR                     = 0x81286947
+       SIOCBRDGDEL                       = 0x8054693d
+       SIOCBRDGDELS                      = 0x80546942
+       SIOCBRDGFLUSH                     = 0x80546948
+       SIOCBRDGFRL                       = 0x806e694e
+       SIOCBRDGGCACHE                    = 0xc0146941
+       SIOCBRDGGFD                       = 0xc0146952
+       SIOCBRDGGHT                       = 0xc0146951
+       SIOCBRDGGIFFLGS                   = 0xc054693e
+       SIOCBRDGGMA                       = 0xc0146953
+       SIOCBRDGGPARAM                    = 0xc03c6958
+       SIOCBRDGGPRI                      = 0xc0146950
+       SIOCBRDGGRL                       = 0xc028694f
+       SIOCBRDGGSIFS                     = 0xc054693c
+       SIOCBRDGGTO                       = 0xc0146946
+       SIOCBRDGIFS                       = 0xc0546942
+       SIOCBRDGRTS                       = 0xc0186943
+       SIOCBRDGSADDR                     = 0xc1286944
+       SIOCBRDGSCACHE                    = 0x80146940
+       SIOCBRDGSFD                       = 0x80146952
+       SIOCBRDGSHT                       = 0x80146951
+       SIOCBRDGSIFCOST                   = 0x80546955
+       SIOCBRDGSIFFLGS                   = 0x8054693f
+       SIOCBRDGSIFPRIO                   = 0x80546954
+       SIOCBRDGSMA                       = 0x80146953
+       SIOCBRDGSPRI                      = 0x80146950
+       SIOCBRDGSPROTO                    = 0x8014695a
+       SIOCBRDGSTO                       = 0x80146945
+       SIOCBRDGSTXHC                     = 0x80146959
+       SIOCDELMULTI                      = 0x80206932
+       SIOCDIFADDR                       = 0x80206919
+       SIOCDIFGROUP                      = 0x80246989
+       SIOCDIFPHYADDR                    = 0x80206949
+       SIOCDLIFADDR                      = 0x8218691e
+       SIOCGETKALIVE                     = 0xc01869a4
+       SIOCGETLABEL                      = 0x8020699a
+       SIOCGETPFLOW                      = 0xc02069fe
+       SIOCGETPFSYNC                     = 0xc02069f8
+       SIOCGETSGCNT                      = 0xc0147534
+       SIOCGETVIFCNT                     = 0xc0147533
+       SIOCGETVLAN                       = 0xc0206990
+       SIOCGHIWAT                        = 0x40047301
+       SIOCGIFADDR                       = 0xc0206921
+       SIOCGIFASYNCMAP                   = 0xc020697c
+       SIOCGIFBRDADDR                    = 0xc0206923
+       SIOCGIFCONF                       = 0xc0086924
+       SIOCGIFDATA                       = 0xc020691b
+       SIOCGIFDESCR                      = 0xc0206981
+       SIOCGIFDSTADDR                    = 0xc0206922
+       SIOCGIFFLAGS                      = 0xc0206911
+       SIOCGIFGATTR                      = 0xc024698b
+       SIOCGIFGENERIC                    = 0xc020693a
+       SIOCGIFGMEMB                      = 0xc024698a
+       SIOCGIFGROUP                      = 0xc0246988
+       SIOCGIFHARDMTU                    = 0xc02069a5
+       SIOCGIFMEDIA                      = 0xc0286936
+       SIOCGIFMETRIC                     = 0xc0206917
+       SIOCGIFMTU                        = 0xc020697e
+       SIOCGIFNETMASK                    = 0xc0206925
+       SIOCGIFPDSTADDR                   = 0xc0206948
+       SIOCGIFPRIORITY                   = 0xc020699c
+       SIOCGIFPSRCADDR                   = 0xc0206947
+       SIOCGIFRDOMAIN                    = 0xc02069a0
+       SIOCGIFRTLABEL                    = 0xc0206983
+       SIOCGIFTIMESLOT                   = 0xc0206986
+       SIOCGIFXFLAGS                     = 0xc020699e
+       SIOCGLIFADDR                      = 0xc218691d
+       SIOCGLIFPHYADDR                   = 0xc218694b
+       SIOCGLIFPHYRTABLE                 = 0xc02069a2
+       SIOCGLIFPHYTTL                    = 0xc02069a9
+       SIOCGLOWAT                        = 0x40047303
+       SIOCGPGRP                         = 0x40047309
+       SIOCGSPPPPARAMS                   = 0xc0206994
+       SIOCGVH                           = 0xc02069f6
+       SIOCGVNETID                       = 0xc02069a7
+       SIOCIFCREATE                      = 0x8020697a
+       SIOCIFDESTROY                     = 0x80206979
+       SIOCIFGCLONERS                    = 0xc00c6978
+       SIOCSETKALIVE                     = 0x801869a3
+       SIOCSETLABEL                      = 0x80206999
+       SIOCSETPFLOW                      = 0x802069fd
+       SIOCSETPFSYNC                     = 0x802069f7
+       SIOCSETVLAN                       = 0x8020698f
+       SIOCSHIWAT                        = 0x80047300
+       SIOCSIFADDR                       = 0x8020690c
+       SIOCSIFASYNCMAP                   = 0x8020697d
+       SIOCSIFBRDADDR                    = 0x80206913
+       SIOCSIFDESCR                      = 0x80206980
+       SIOCSIFDSTADDR                    = 0x8020690e
+       SIOCSIFFLAGS                      = 0x80206910
+       SIOCSIFGATTR                      = 0x8024698c
+       SIOCSIFGENERIC                    = 0x80206939
+       SIOCSIFLLADDR                     = 0x8020691f
+       SIOCSIFMEDIA                      = 0xc0206935
+       SIOCSIFMETRIC                     = 0x80206918
+       SIOCSIFMTU                        = 0x8020697f
+       SIOCSIFNETMASK                    = 0x80206916
+       SIOCSIFPHYADDR                    = 0x80406946
+       SIOCSIFPRIORITY                   = 0x8020699b
+       SIOCSIFRDOMAIN                    = 0x8020699f
+       SIOCSIFRTLABEL                    = 0x80206982
+       SIOCSIFTIMESLOT                   = 0x80206985
+       SIOCSIFXFLAGS                     = 0x8020699d
+       SIOCSLIFPHYADDR                   = 0x8218694a
+       SIOCSLIFPHYRTABLE                 = 0x802069a1
+       SIOCSLIFPHYTTL                    = 0x802069a8
+       SIOCSLOWAT                        = 0x80047302
+       SIOCSPGRP                         = 0x80047308
+       SIOCSSPPPPARAMS                   = 0x80206993
+       SIOCSVH                           = 0xc02069f5
+       SIOCSVNETID                       = 0x802069a6
+       SOCK_DGRAM                        = 0x2
+       SOCK_RAW                          = 0x3
+       SOCK_RDM                          = 0x4
+       SOCK_SEQPACKET                    = 0x5
+       SOCK_STREAM                       = 0x1
+       SOL_SOCKET                        = 0xffff
+       SOMAXCONN                         = 0x80
+       SO_ACCEPTCONN                     = 0x2
+       SO_BINDANY                        = 0x1000
+       SO_BROADCAST                      = 0x20
+       SO_DEBUG                          = 0x1
+       SO_DONTROUTE                      = 0x10
+       SO_ERROR                          = 0x1007
+       SO_KEEPALIVE                      = 0x8
+       SO_LINGER                         = 0x80
+       SO_NETPROC                        = 0x1020
+       SO_OOBINLINE                      = 0x100
+       SO_PEERCRED                       = 0x1022
+       SO_RCVBUF                         = 0x1002
+       SO_RCVLOWAT                       = 0x1004
+       SO_RCVTIMEO                       = 0x1006
+       SO_REUSEADDR                      = 0x4
+       SO_REUSEPORT                      = 0x200
+       SO_RTABLE                         = 0x1021
+       SO_SNDBUF                         = 0x1001
+       SO_SNDLOWAT                       = 0x1003
+       SO_SNDTIMEO                       = 0x1005
+       SO_SPLICE                         = 0x1023
+       SO_TIMESTAMP                      = 0x800
+       SO_TYPE                           = 0x1008
+       SO_USELOOPBACK                    = 0x40
+       TCIFLUSH                          = 0x1
+       TCIOFLUSH                         = 0x3
+       TCOFLUSH                          = 0x2
+       TCP_MAXBURST                      = 0x4
+       TCP_MAXSEG                        = 0x2
+       TCP_MAXWIN                        = 0xffff
+       TCP_MAX_SACK                      = 0x3
+       TCP_MAX_WINSHIFT                  = 0xe
+       TCP_MD5SIG                        = 0x4
+       TCP_MSS                           = 0x200
+       TCP_NODELAY                       = 0x1
+       TCP_NOPUSH                        = 0x10
+       TCP_NSTATES                       = 0xb
+       TCP_SACK_ENABLE                   = 0x8
+       TCSAFLUSH                         = 0x2
+       TIOCCBRK                          = 0x2000747a
+       TIOCCDTR                          = 0x20007478
+       TIOCCONS                          = 0x80047462
+       TIOCDRAIN                         = 0x2000745e
+       TIOCEXCL                          = 0x2000740d
+       TIOCEXT                           = 0x80047460
+       TIOCFLAG_CLOCAL                   = 0x2
+       TIOCFLAG_CRTSCTS                  = 0x4
+       TIOCFLAG_MDMBUF                   = 0x8
+       TIOCFLAG_PPS                      = 0x10
+       TIOCFLAG_SOFTCAR                  = 0x1
+       TIOCFLUSH                         = 0x80047410
+       TIOCGETA                          = 0x402c7413
+       TIOCGETD                          = 0x4004741a
+       TIOCGFLAGS                        = 0x4004745d
+       TIOCGPGRP                         = 0x40047477
+       TIOCGSID                          = 0x40047463
+       TIOCGTSTAMP                       = 0x400c745b
+       TIOCGWINSZ                        = 0x40087468
+       TIOCMBIC                          = 0x8004746b
+       TIOCMBIS                          = 0x8004746c
+       TIOCMGET                          = 0x4004746a
+       TIOCMODG                          = 0x4004746a
+       TIOCMODS                          = 0x8004746d
+       TIOCMSET                          = 0x8004746d
+       TIOCM_CAR                         = 0x40
+       TIOCM_CD                          = 0x40
+       TIOCM_CTS                         = 0x20
+       TIOCM_DSR                         = 0x100
+       TIOCM_DTR                         = 0x2
+       TIOCM_LE                          = 0x1
+       TIOCM_RI                          = 0x80
+       TIOCM_RNG                         = 0x80
+       TIOCM_RTS                         = 0x4
+       TIOCM_SR                          = 0x10
+       TIOCM_ST                          = 0x8
+       TIOCNOTTY                         = 0x20007471
+       TIOCNXCL                          = 0x2000740e
+       TIOCOUTQ                          = 0x40047473
+       TIOCPKT                           = 0x80047470
+       TIOCPKT_DATA                      = 0x0
+       TIOCPKT_DOSTOP                    = 0x20
+       TIOCPKT_FLUSHREAD                 = 0x1
+       TIOCPKT_FLUSHWRITE                = 0x2
+       TIOCPKT_IOCTL                     = 0x40
+       TIOCPKT_NOSTOP                    = 0x10
+       TIOCPKT_START                     = 0x8
+       TIOCPKT_STOP                      = 0x4
+       TIOCREMOTE                        = 0x80047469
+       TIOCSBRK                          = 0x2000747b
+       TIOCSCTTY                         = 0x20007461
+       TIOCSDTR                          = 0x20007479
+       TIOCSETA                          = 0x802c7414
+       TIOCSETAF                         = 0x802c7416
+       TIOCSETAW                         = 0x802c7415
+       TIOCSETD                          = 0x8004741b
+       TIOCSFLAGS                        = 0x8004745c
+       TIOCSIG                           = 0x8004745f
+       TIOCSPGRP                         = 0x80047476
+       TIOCSTART                         = 0x2000746e
+       TIOCSTAT                          = 0x80047465
+       TIOCSTI                           = 0x80017472
+       TIOCSTOP                          = 0x2000746f
+       TIOCSTSTAMP                       = 0x8008745a
+       TIOCSWINSZ                        = 0x80087467
+       TIOCUCNTL                         = 0x80047466
+       TOSTOP                            = 0x400000
+       VDISCARD                          = 0xf
+       VDSUSP                            = 0xb
+       VEOF                              = 0x0
+       VEOL                              = 0x1
+       VEOL2                             = 0x2
+       VERASE                            = 0x3
+       VINTR                             = 0x8
+       VKILL                             = 0x5
+       VLNEXT                            = 0xe
+       VMIN                              = 0x10
+       VQUIT                             = 0x9
+       VREPRINT                          = 0x6
+       VSTART                            = 0xc
+       VSTATUS                           = 0x12
+       VSTOP                             = 0xd
+       VSUSP                             = 0xa
+       VTIME                             = 0x11
+       VWERASE                           = 0x4
+       WALTSIG                           = 0x4
+       WCONTINUED                        = 0x8
+       WCOREFLAG                         = 0x80
+       WNOHANG                           = 0x1
+       WSTOPPED                          = 0x7f
+       WUNTRACED                         = 0x2
+)
+
+// Errors
+const (
+       E2BIG           = syscall.Errno(0x7)
+       EACCES          = syscall.Errno(0xd)
+       EADDRINUSE      = syscall.Errno(0x30)
+       EADDRNOTAVAIL   = syscall.Errno(0x31)
+       EAFNOSUPPORT    = syscall.Errno(0x2f)
+       EAGAIN          = syscall.Errno(0x23)
+       EALREADY        = syscall.Errno(0x25)
+       EAUTH           = syscall.Errno(0x50)
+       EBADF           = syscall.Errno(0x9)
+       EBADRPC         = syscall.Errno(0x48)
+       EBUSY           = syscall.Errno(0x10)
+       ECANCELED       = syscall.Errno(0x58)
+       ECHILD          = syscall.Errno(0xa)
+       ECONNABORTED    = syscall.Errno(0x35)
+       ECONNREFUSED    = syscall.Errno(0x3d)
+       ECONNRESET      = syscall.Errno(0x36)
+       EDEADLK         = syscall.Errno(0xb)
+       EDESTADDRREQ    = syscall.Errno(0x27)
+       EDOM            = syscall.Errno(0x21)
+       EDQUOT          = syscall.Errno(0x45)
+       EEXIST          = syscall.Errno(0x11)
+       EFAULT          = syscall.Errno(0xe)
+       EFBIG           = syscall.Errno(0x1b)
+       EFTYPE          = syscall.Errno(0x4f)
+       EHOSTDOWN       = syscall.Errno(0x40)
+       EHOSTUNREACH    = syscall.Errno(0x41)
+       EIDRM           = syscall.Errno(0x59)
+       EILSEQ          = syscall.Errno(0x54)
+       EINPROGRESS     = syscall.Errno(0x24)
+       EINTR           = syscall.Errno(0x4)
+       EINVAL          = syscall.Errno(0x16)
+       EIO             = syscall.Errno(0x5)
+       EIPSEC          = syscall.Errno(0x52)
+       EISCONN         = syscall.Errno(0x38)
+       EISDIR          = syscall.Errno(0x15)
+       ELAST           = syscall.Errno(0x5b)
+       ELOOP           = syscall.Errno(0x3e)
+       EMEDIUMTYPE     = syscall.Errno(0x56)
+       EMFILE          = syscall.Errno(0x18)
+       EMLINK          = syscall.Errno(0x1f)
+       EMSGSIZE        = syscall.Errno(0x28)
+       ENAMETOOLONG    = syscall.Errno(0x3f)
+       ENEEDAUTH       = syscall.Errno(0x51)
+       ENETDOWN        = syscall.Errno(0x32)
+       ENETRESET       = syscall.Errno(0x34)
+       ENETUNREACH     = syscall.Errno(0x33)
+       ENFILE          = syscall.Errno(0x17)
+       ENOATTR         = syscall.Errno(0x53)
+       ENOBUFS         = syscall.Errno(0x37)
+       ENODEV          = syscall.Errno(0x13)
+       ENOENT          = syscall.Errno(0x2)
+       ENOEXEC         = syscall.Errno(0x8)
+       ENOLCK          = syscall.Errno(0x4d)
+       ENOMEDIUM       = syscall.Errno(0x55)
+       ENOMEM          = syscall.Errno(0xc)
+       ENOMSG          = syscall.Errno(0x5a)
+       ENOPROTOOPT     = syscall.Errno(0x2a)
+       ENOSPC          = syscall.Errno(0x1c)
+       ENOSYS          = syscall.Errno(0x4e)
+       ENOTBLK         = syscall.Errno(0xf)
+       ENOTCONN        = syscall.Errno(0x39)
+       ENOTDIR         = syscall.Errno(0x14)
+       ENOTEMPTY       = syscall.Errno(0x42)
+       ENOTSOCK        = syscall.Errno(0x26)
+       ENOTSUP         = syscall.Errno(0x5b)
+       ENOTTY          = syscall.Errno(0x19)
+       ENXIO           = syscall.Errno(0x6)
+       EOPNOTSUPP      = syscall.Errno(0x2d)
+       EOVERFLOW       = syscall.Errno(0x57)
+       EPERM           = syscall.Errno(0x1)
+       EPFNOSUPPORT    = syscall.Errno(0x2e)
+       EPIPE           = syscall.Errno(0x20)
+       EPROCLIM        = syscall.Errno(0x43)
+       EPROCUNAVAIL    = syscall.Errno(0x4c)
+       EPROGMISMATCH   = syscall.Errno(0x4b)
+       EPROGUNAVAIL    = syscall.Errno(0x4a)
+       EPROTONOSUPPORT = syscall.Errno(0x2b)
+       EPROTOTYPE      = syscall.Errno(0x29)
+       ERANGE          = syscall.Errno(0x22)
+       EREMOTE         = syscall.Errno(0x47)
+       EROFS           = syscall.Errno(0x1e)
+       ERPCMISMATCH    = syscall.Errno(0x49)
+       ESHUTDOWN       = syscall.Errno(0x3a)
+       ESOCKTNOSUPPORT = syscall.Errno(0x2c)
+       ESPIPE          = syscall.Errno(0x1d)
+       ESRCH           = syscall.Errno(0x3)
+       ESTALE          = syscall.Errno(0x46)
+       ETIMEDOUT       = syscall.Errno(0x3c)
+       ETOOMANYREFS    = syscall.Errno(0x3b)
+       ETXTBSY         = syscall.Errno(0x1a)
+       EUSERS          = syscall.Errno(0x44)
+       EWOULDBLOCK     = syscall.Errno(0x23)
+       EXDEV           = syscall.Errno(0x12)
+)
+
+// Signals
+const (
+       SIGABRT   = syscall.Signal(0x6)
+       SIGALRM   = syscall.Signal(0xe)
+       SIGBUS    = syscall.Signal(0xa)
+       SIGCHLD   = syscall.Signal(0x14)
+       SIGCONT   = syscall.Signal(0x13)
+       SIGEMT    = syscall.Signal(0x7)
+       SIGFPE    = syscall.Signal(0x8)
+       SIGHUP    = syscall.Signal(0x1)
+       SIGILL    = syscall.Signal(0x4)
+       SIGINFO   = syscall.Signal(0x1d)
+       SIGINT    = syscall.Signal(0x2)
+       SIGIO     = syscall.Signal(0x17)
+       SIGIOT    = syscall.Signal(0x6)
+       SIGKILL   = syscall.Signal(0x9)
+       SIGPIPE   = syscall.Signal(0xd)
+       SIGPROF   = syscall.Signal(0x1b)
+       SIGQUIT   = syscall.Signal(0x3)
+       SIGSEGV   = syscall.Signal(0xb)
+       SIGSTOP   = syscall.Signal(0x11)
+       SIGSYS    = syscall.Signal(0xc)
+       SIGTERM   = syscall.Signal(0xf)
+       SIGTHR    = syscall.Signal(0x20)
+       SIGTRAP   = syscall.Signal(0x5)
+       SIGTSTP   = syscall.Signal(0x12)
+       SIGTTIN   = syscall.Signal(0x15)
+       SIGTTOU   = syscall.Signal(0x16)
+       SIGURG    = syscall.Signal(0x10)
+       SIGUSR1   = syscall.Signal(0x1e)
+       SIGUSR2   = syscall.Signal(0x1f)
+       SIGVTALRM = syscall.Signal(0x1a)
+       SIGWINCH  = syscall.Signal(0x1c)
+       SIGXCPU   = syscall.Signal(0x18)
+       SIGXFSZ   = syscall.Signal(0x19)
+)
+
+// Error table
+var errors = [...]string{
+       1:  "operation not permitted",
+       2:  "no such file or directory",
+       3:  "no such process",
+       4:  "interrupted system call",
+       5:  "input/output error",
+       6:  "device not configured",
+       7:  "argument list too long",
+       8:  "exec format error",
+       9:  "bad file descriptor",
+       10: "no child processes",
+       11: "resource deadlock avoided",
+       12: "cannot allocate memory",
+       13: "permission denied",
+       14: "bad address",
+       15: "block device required",
+       16: "device busy",
+       17: "file exists",
+       18: "cross-device link",
+       19: "operation not supported by device",
+       20: "not a directory",
+       21: "is a directory",
+       22: "invalid argument",
+       23: "too many open files in system",
+       24: "too many open files",
+       25: "inappropriate ioctl for device",
+       26: "text file busy",
+       27: "file too large",
+       28: "no space left on device",
+       29: "illegal seek",
+       30: "read-only file system",
+       31: "too many links",
+       32: "broken pipe",
+       33: "numerical argument out of domain",
+       34: "result too large",
+       35: "resource temporarily unavailable",
+       36: "operation now in progress",
+       37: "operation already in progress",
+       38: "socket operation on non-socket",
+       39: "destination address required",
+       40: "message too long",
+       41: "protocol wrong type for socket",
+       42: "protocol not available",
+       43: "protocol not supported",
+       44: "socket type not supported",
+       45: "operation not supported",
+       46: "protocol family not supported",
+       47: "address family not supported by protocol family",
+       48: "address already in use",
+       49: "can't assign requested address",
+       50: "network is down",
+       51: "network is unreachable",
+       52: "network dropped connection on reset",
+       53: "software caused connection abort",
+       54: "connection reset by peer",
+       55: "no buffer space available",
+       56: "socket is already connected",
+       57: "socket is not connected",
+       58: "can't send after socket shutdown",
+       59: "too many references: can't splice",
+       60: "connection timed out",
+       61: "connection refused",
+       62: "too many levels of symbolic links",
+       63: "file name too long",
+       64: "host is down",
+       65: "no route to host",
+       66: "directory not empty",
+       67: "too many processes",
+       68: "too many users",
+       69: "disc quota exceeded",
+       70: "stale NFS file handle",
+       71: "too many levels of remote in path",
+       72: "RPC struct is bad",
+       73: "RPC version wrong",
+       74: "RPC prog. not avail",
+       75: "program version wrong",
+       76: "bad procedure for program",
+       77: "no locks available",
+       78: "function not implemented",
+       79: "inappropriate file type or format",
+       80: "authentication error",
+       81: "need authenticator",
+       82: "IPsec processing failure",
+       83: "attribute not found",
+       84: "illegal byte sequence",
+       85: "no medium found",
+       86: "wrong medium type",
+       87: "value too large to be stored in data type",
+       88: "operation canceled",
+       89: "identifier removed",
+       90: "no message of desired type",
+       91: "not supported",
+}
+
+// Signal table
+var signals = [...]string{
+       1:  "hangup",
+       2:  "interrupt",
+       3:  "quit",
+       4:  "illegal instruction",
+       5:  "trace/BPT trap",
+       6:  "abort trap",
+       7:  "EMT trap",
+       8:  "floating point exception",
+       9:  "killed",
+       10: "bus error",
+       11: "segmentation fault",
+       12: "bad system call",
+       13: "broken pipe",
+       14: "alarm clock",
+       15: "terminated",
+       16: "urgent I/O condition",
+       17: "stopped (signal)",
+       18: "stopped",
+       19: "continued",
+       20: "child exited",
+       21: "stopped (tty input)",
+       22: "stopped (tty output)",
+       23: "I/O possible",
+       24: "cputime limit exceeded",
+       25: "filesize limit exceeded",
+       26: "virtual timer expired",
+       27: "profiling timer expired",
+       28: "window size changes",
+       29: "information request",
+       30: "user defined signal 1",
+       31: "user defined signal 2",
+       32: "thread AST",
+}
diff --git a/vendor/golang.org/x/sys/unix/zerrors_openbsd_amd64.go b/vendor/golang.org/x/sys/unix/zerrors_openbsd_amd64.go
new file mode 100644 (file)
index 0000000..1758ecc
--- /dev/null
@@ -0,0 +1,1583 @@
+// mkerrors.sh -m64
+// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT
+
+// +build amd64,openbsd
+
+// Created by cgo -godefs - DO NOT EDIT
+// cgo -godefs -- -m64 _const.go
+
+package unix
+
+import "syscall"
+
+const (
+       AF_APPLETALK                      = 0x10
+       AF_BLUETOOTH                      = 0x20
+       AF_CCITT                          = 0xa
+       AF_CHAOS                          = 0x5
+       AF_CNT                            = 0x15
+       AF_COIP                           = 0x14
+       AF_DATAKIT                        = 0x9
+       AF_DECnet                         = 0xc
+       AF_DLI                            = 0xd
+       AF_E164                           = 0x1a
+       AF_ECMA                           = 0x8
+       AF_ENCAP                          = 0x1c
+       AF_HYLINK                         = 0xf
+       AF_IMPLINK                        = 0x3
+       AF_INET                           = 0x2
+       AF_INET6                          = 0x18
+       AF_IPX                            = 0x17
+       AF_ISDN                           = 0x1a
+       AF_ISO                            = 0x7
+       AF_KEY                            = 0x1e
+       AF_LAT                            = 0xe
+       AF_LINK                           = 0x12
+       AF_LOCAL                          = 0x1
+       AF_MAX                            = 0x24
+       AF_MPLS                           = 0x21
+       AF_NATM                           = 0x1b
+       AF_NS                             = 0x6
+       AF_OSI                            = 0x7
+       AF_PUP                            = 0x4
+       AF_ROUTE                          = 0x11
+       AF_SIP                            = 0x1d
+       AF_SNA                            = 0xb
+       AF_UNIX                           = 0x1
+       AF_UNSPEC                         = 0x0
+       ARPHRD_ETHER                      = 0x1
+       ARPHRD_FRELAY                     = 0xf
+       ARPHRD_IEEE1394                   = 0x18
+       ARPHRD_IEEE802                    = 0x6
+       B0                                = 0x0
+       B110                              = 0x6e
+       B115200                           = 0x1c200
+       B1200                             = 0x4b0
+       B134                              = 0x86
+       B14400                            = 0x3840
+       B150                              = 0x96
+       B1800                             = 0x708
+       B19200                            = 0x4b00
+       B200                              = 0xc8
+       B230400                           = 0x38400
+       B2400                             = 0x960
+       B28800                            = 0x7080
+       B300                              = 0x12c
+       B38400                            = 0x9600
+       B4800                             = 0x12c0
+       B50                               = 0x32
+       B57600                            = 0xe100
+       B600                              = 0x258
+       B7200                             = 0x1c20
+       B75                               = 0x4b
+       B76800                            = 0x12c00
+       B9600                             = 0x2580
+       BIOCFLUSH                         = 0x20004268
+       BIOCGBLEN                         = 0x40044266
+       BIOCGDIRFILT                      = 0x4004427c
+       BIOCGDLT                          = 0x4004426a
+       BIOCGDLTLIST                      = 0xc010427b
+       BIOCGETIF                         = 0x4020426b
+       BIOCGFILDROP                      = 0x40044278
+       BIOCGHDRCMPLT                     = 0x40044274
+       BIOCGRSIG                         = 0x40044273
+       BIOCGRTIMEOUT                     = 0x4010426e
+       BIOCGSTATS                        = 0x4008426f
+       BIOCIMMEDIATE                     = 0x80044270
+       BIOCLOCK                          = 0x20004276
+       BIOCPROMISC                       = 0x20004269
+       BIOCSBLEN                         = 0xc0044266
+       BIOCSDIRFILT                      = 0x8004427d
+       BIOCSDLT                          = 0x8004427a
+       BIOCSETF                          = 0x80104267
+       BIOCSETIF                         = 0x8020426c
+       BIOCSETWF                         = 0x80104277
+       BIOCSFILDROP                      = 0x80044279
+       BIOCSHDRCMPLT                     = 0x80044275
+       BIOCSRSIG                         = 0x80044272
+       BIOCSRTIMEOUT                     = 0x8010426d
+       BIOCVERSION                       = 0x40044271
+       BPF_A                             = 0x10
+       BPF_ABS                           = 0x20
+       BPF_ADD                           = 0x0
+       BPF_ALIGNMENT                     = 0x4
+       BPF_ALU                           = 0x4
+       BPF_AND                           = 0x50
+       BPF_B                             = 0x10
+       BPF_DIRECTION_IN                  = 0x1
+       BPF_DIRECTION_OUT                 = 0x2
+       BPF_DIV                           = 0x30
+       BPF_H                             = 0x8
+       BPF_IMM                           = 0x0
+       BPF_IND                           = 0x40
+       BPF_JA                            = 0x0
+       BPF_JEQ                           = 0x10
+       BPF_JGE                           = 0x30
+       BPF_JGT                           = 0x20
+       BPF_JMP                           = 0x5
+       BPF_JSET                          = 0x40
+       BPF_K                             = 0x0
+       BPF_LD                            = 0x0
+       BPF_LDX                           = 0x1
+       BPF_LEN                           = 0x80
+       BPF_LSH                           = 0x60
+       BPF_MAJOR_VERSION                 = 0x1
+       BPF_MAXBUFSIZE                    = 0x200000
+       BPF_MAXINSNS                      = 0x200
+       BPF_MEM                           = 0x60
+       BPF_MEMWORDS                      = 0x10
+       BPF_MINBUFSIZE                    = 0x20
+       BPF_MINOR_VERSION                 = 0x1
+       BPF_MISC                          = 0x7
+       BPF_MSH                           = 0xa0
+       BPF_MUL                           = 0x20
+       BPF_NEG                           = 0x80
+       BPF_OR                            = 0x40
+       BPF_RELEASE                       = 0x30bb6
+       BPF_RET                           = 0x6
+       BPF_RSH                           = 0x70
+       BPF_ST                            = 0x2
+       BPF_STX                           = 0x3
+       BPF_SUB                           = 0x10
+       BPF_TAX                           = 0x0
+       BPF_TXA                           = 0x80
+       BPF_W                             = 0x0
+       BPF_X                             = 0x8
+       BRKINT                            = 0x2
+       CFLUSH                            = 0xf
+       CLOCAL                            = 0x8000
+       CREAD                             = 0x800
+       CS5                               = 0x0
+       CS6                               = 0x100
+       CS7                               = 0x200
+       CS8                               = 0x300
+       CSIZE                             = 0x300
+       CSTART                            = 0x11
+       CSTATUS                           = 0xff
+       CSTOP                             = 0x13
+       CSTOPB                            = 0x400
+       CSUSP                             = 0x1a
+       CTL_MAXNAME                       = 0xc
+       CTL_NET                           = 0x4
+       DIOCOSFPFLUSH                     = 0x2000444e
+       DLT_ARCNET                        = 0x7
+       DLT_ATM_RFC1483                   = 0xb
+       DLT_AX25                          = 0x3
+       DLT_CHAOS                         = 0x5
+       DLT_C_HDLC                        = 0x68
+       DLT_EN10MB                        = 0x1
+       DLT_EN3MB                         = 0x2
+       DLT_ENC                           = 0xd
+       DLT_FDDI                          = 0xa
+       DLT_IEEE802                       = 0x6
+       DLT_IEEE802_11                    = 0x69
+       DLT_IEEE802_11_RADIO              = 0x7f
+       DLT_LOOP                          = 0xc
+       DLT_MPLS                          = 0xdb
+       DLT_NULL                          = 0x0
+       DLT_PFLOG                         = 0x75
+       DLT_PFSYNC                        = 0x12
+       DLT_PPP                           = 0x9
+       DLT_PPP_BSDOS                     = 0x10
+       DLT_PPP_ETHER                     = 0x33
+       DLT_PPP_SERIAL                    = 0x32
+       DLT_PRONET                        = 0x4
+       DLT_RAW                           = 0xe
+       DLT_SLIP                          = 0x8
+       DLT_SLIP_BSDOS                    = 0xf
+       DT_BLK                            = 0x6
+       DT_CHR                            = 0x2
+       DT_DIR                            = 0x4
+       DT_FIFO                           = 0x1
+       DT_LNK                            = 0xa
+       DT_REG                            = 0x8
+       DT_SOCK                           = 0xc
+       DT_UNKNOWN                        = 0x0
+       ECHO                              = 0x8
+       ECHOCTL                           = 0x40
+       ECHOE                             = 0x2
+       ECHOK                             = 0x4
+       ECHOKE                            = 0x1
+       ECHONL                            = 0x10
+       ECHOPRT                           = 0x20
+       EMT_TAGOVF                        = 0x1
+       EMUL_ENABLED                      = 0x1
+       EMUL_NATIVE                       = 0x2
+       ENDRUNDISC                        = 0x9
+       ETHERMIN                          = 0x2e
+       ETHERMTU                          = 0x5dc
+       ETHERTYPE_8023                    = 0x4
+       ETHERTYPE_AARP                    = 0x80f3
+       ETHERTYPE_ACCTON                  = 0x8390
+       ETHERTYPE_AEONIC                  = 0x8036
+       ETHERTYPE_ALPHA                   = 0x814a
+       ETHERTYPE_AMBER                   = 0x6008
+       ETHERTYPE_AMOEBA                  = 0x8145
+       ETHERTYPE_AOE                     = 0x88a2
+       ETHERTYPE_APOLLO                  = 0x80f7
+       ETHERTYPE_APOLLODOMAIN            = 0x8019
+       ETHERTYPE_APPLETALK               = 0x809b
+       ETHERTYPE_APPLITEK                = 0x80c7
+       ETHERTYPE_ARGONAUT                = 0x803a
+       ETHERTYPE_ARP                     = 0x806
+       ETHERTYPE_AT                      = 0x809b
+       ETHERTYPE_ATALK                   = 0x809b
+       ETHERTYPE_ATOMIC                  = 0x86df
+       ETHERTYPE_ATT                     = 0x8069
+       ETHERTYPE_ATTSTANFORD             = 0x8008
+       ETHERTYPE_AUTOPHON                = 0x806a
+       ETHERTYPE_AXIS                    = 0x8856
+       ETHERTYPE_BCLOOP                  = 0x9003
+       ETHERTYPE_BOFL                    = 0x8102
+       ETHERTYPE_CABLETRON               = 0x7034
+       ETHERTYPE_CHAOS                   = 0x804
+       ETHERTYPE_COMDESIGN               = 0x806c
+       ETHERTYPE_COMPUGRAPHIC            = 0x806d
+       ETHERTYPE_COUNTERPOINT            = 0x8062
+       ETHERTYPE_CRONUS                  = 0x8004
+       ETHERTYPE_CRONUSVLN               = 0x8003
+       ETHERTYPE_DCA                     = 0x1234
+       ETHERTYPE_DDE                     = 0x807b
+       ETHERTYPE_DEBNI                   = 0xaaaa
+       ETHERTYPE_DECAM                   = 0x8048
+       ETHERTYPE_DECCUST                 = 0x6006
+       ETHERTYPE_DECDIAG                 = 0x6005
+       ETHERTYPE_DECDNS                  = 0x803c
+       ETHERTYPE_DECDTS                  = 0x803e
+       ETHERTYPE_DECEXPER                = 0x6000
+       ETHERTYPE_DECLAST                 = 0x8041
+       ETHERTYPE_DECLTM                  = 0x803f
+       ETHERTYPE_DECMUMPS                = 0x6009
+       ETHERTYPE_DECNETBIOS              = 0x8040
+       ETHERTYPE_DELTACON                = 0x86de
+       ETHERTYPE_DIDDLE                  = 0x4321
+       ETHERTYPE_DLOG1                   = 0x660
+       ETHERTYPE_DLOG2                   = 0x661
+       ETHERTYPE_DN                      = 0x6003
+       ETHERTYPE_DOGFIGHT                = 0x1989
+       ETHERTYPE_DSMD                    = 0x8039
+       ETHERTYPE_ECMA                    = 0x803
+       ETHERTYPE_ENCRYPT                 = 0x803d
+       ETHERTYPE_ES                      = 0x805d
+       ETHERTYPE_EXCELAN                 = 0x8010
+       ETHERTYPE_EXPERDATA               = 0x8049
+       ETHERTYPE_FLIP                    = 0x8146
+       ETHERTYPE_FLOWCONTROL             = 0x8808
+       ETHERTYPE_FRARP                   = 0x808
+       ETHERTYPE_GENDYN                  = 0x8068
+       ETHERTYPE_HAYES                   = 0x8130
+       ETHERTYPE_HIPPI_FP                = 0x8180
+       ETHERTYPE_HITACHI                 = 0x8820
+       ETHERTYPE_HP                      = 0x8005
+       ETHERTYPE_IEEEPUP                 = 0xa00
+       ETHERTYPE_IEEEPUPAT               = 0xa01
+       ETHERTYPE_IMLBL                   = 0x4c42
+       ETHERTYPE_IMLBLDIAG               = 0x424c
+       ETHERTYPE_IP                      = 0x800
+       ETHERTYPE_IPAS                    = 0x876c
+       ETHERTYPE_IPV6                    = 0x86dd
+       ETHERTYPE_IPX                     = 0x8137
+       ETHERTYPE_IPXNEW                  = 0x8037
+       ETHERTYPE_KALPANA                 = 0x8582
+       ETHERTYPE_LANBRIDGE               = 0x8038
+       ETHERTYPE_LANPROBE                = 0x8888
+       ETHERTYPE_LAT                     = 0x6004
+       ETHERTYPE_LBACK                   = 0x9000
+       ETHERTYPE_LITTLE                  = 0x8060
+       ETHERTYPE_LLDP                    = 0x88cc
+       ETHERTYPE_LOGICRAFT               = 0x8148
+       ETHERTYPE_LOOPBACK                = 0x9000
+       ETHERTYPE_MATRA                   = 0x807a
+       ETHERTYPE_MAX                     = 0xffff
+       ETHERTYPE_MERIT                   = 0x807c
+       ETHERTYPE_MICP                    = 0x873a
+       ETHERTYPE_MOPDL                   = 0x6001
+       ETHERTYPE_MOPRC                   = 0x6002
+       ETHERTYPE_MOTOROLA                = 0x818d
+       ETHERTYPE_MPLS                    = 0x8847
+       ETHERTYPE_MPLS_MCAST              = 0x8848
+       ETHERTYPE_MUMPS                   = 0x813f
+       ETHERTYPE_NBPCC                   = 0x3c04
+       ETHERTYPE_NBPCLAIM                = 0x3c09
+       ETHERTYPE_NBPCLREQ                = 0x3c05
+       ETHERTYPE_NBPCLRSP                = 0x3c06
+       ETHERTYPE_NBPCREQ                 = 0x3c02
+       ETHERTYPE_NBPCRSP                 = 0x3c03
+       ETHERTYPE_NBPDG                   = 0x3c07
+       ETHERTYPE_NBPDGB                  = 0x3c08
+       ETHERTYPE_NBPDLTE                 = 0x3c0a
+       ETHERTYPE_NBPRAR                  = 0x3c0c
+       ETHERTYPE_NBPRAS                  = 0x3c0b
+       ETHERTYPE_NBPRST                  = 0x3c0d
+       ETHERTYPE_NBPSCD                  = 0x3c01
+       ETHERTYPE_NBPVCD                  = 0x3c00
+       ETHERTYPE_NBS                     = 0x802
+       ETHERTYPE_NCD                     = 0x8149
+       ETHERTYPE_NESTAR                  = 0x8006
+       ETHERTYPE_NETBEUI                 = 0x8191
+       ETHERTYPE_NOVELL                  = 0x8138
+       ETHERTYPE_NS                      = 0x600
+       ETHERTYPE_NSAT                    = 0x601
+       ETHERTYPE_NSCOMPAT                = 0x807
+       ETHERTYPE_NTRAILER                = 0x10
+       ETHERTYPE_OS9                     = 0x7007
+       ETHERTYPE_OS9NET                  = 0x7009
+       ETHERTYPE_PACER                   = 0x80c6
+       ETHERTYPE_PAE                     = 0x888e
+       ETHERTYPE_PCS                     = 0x4242
+       ETHERTYPE_PLANNING                = 0x8044
+       ETHERTYPE_PPP                     = 0x880b
+       ETHERTYPE_PPPOE                   = 0x8864
+       ETHERTYPE_PPPOEDISC               = 0x8863
+       ETHERTYPE_PRIMENTS                = 0x7031
+       ETHERTYPE_PUP                     = 0x200
+       ETHERTYPE_PUPAT                   = 0x200
+       ETHERTYPE_QINQ                    = 0x88a8
+       ETHERTYPE_RACAL                   = 0x7030
+       ETHERTYPE_RATIONAL                = 0x8150
+       ETHERTYPE_RAWFR                   = 0x6559
+       ETHERTYPE_RCL                     = 0x1995
+       ETHERTYPE_RDP                     = 0x8739
+       ETHERTYPE_RETIX                   = 0x80f2
+       ETHERTYPE_REVARP                  = 0x8035
+       ETHERTYPE_SCA                     = 0x6007
+       ETHERTYPE_SECTRA                  = 0x86db
+       ETHERTYPE_SECUREDATA              = 0x876d
+       ETHERTYPE_SGITW                   = 0x817e
+       ETHERTYPE_SG_BOUNCE               = 0x8016
+       ETHERTYPE_SG_DIAG                 = 0x8013
+       ETHERTYPE_SG_NETGAMES             = 0x8014
+       ETHERTYPE_SG_RESV                 = 0x8015
+       ETHERTYPE_SIMNET                  = 0x5208
+       ETHERTYPE_SLOW                    = 0x8809
+       ETHERTYPE_SNA                     = 0x80d5
+       ETHERTYPE_SNMP                    = 0x814c
+       ETHERTYPE_SONIX                   = 0xfaf5
+       ETHERTYPE_SPIDER                  = 0x809f
+       ETHERTYPE_SPRITE                  = 0x500
+       ETHERTYPE_STP                     = 0x8181
+       ETHERTYPE_TALARIS                 = 0x812b
+       ETHERTYPE_TALARISMC               = 0x852b
+       ETHERTYPE_TCPCOMP                 = 0x876b
+       ETHERTYPE_TCPSM                   = 0x9002
+       ETHERTYPE_TEC                     = 0x814f
+       ETHERTYPE_TIGAN                   = 0x802f
+       ETHERTYPE_TRAIL                   = 0x1000
+       ETHERTYPE_TRANSETHER              = 0x6558
+       ETHERTYPE_TYMSHARE                = 0x802e
+       ETHERTYPE_UBBST                   = 0x7005
+       ETHERTYPE_UBDEBUG                 = 0x900
+       ETHERTYPE_UBDIAGLOOP              = 0x7002
+       ETHERTYPE_UBDL                    = 0x7000
+       ETHERTYPE_UBNIU                   = 0x7001
+       ETHERTYPE_UBNMC                   = 0x7003
+       ETHERTYPE_VALID                   = 0x1600
+       ETHERTYPE_VARIAN                  = 0x80dd
+       ETHERTYPE_VAXELN                  = 0x803b
+       ETHERTYPE_VEECO                   = 0x8067
+       ETHERTYPE_VEXP                    = 0x805b
+       ETHERTYPE_VGLAB                   = 0x8131
+       ETHERTYPE_VINES                   = 0xbad
+       ETHERTYPE_VINESECHO               = 0xbaf
+       ETHERTYPE_VINESLOOP               = 0xbae
+       ETHERTYPE_VITAL                   = 0xff00
+       ETHERTYPE_VLAN                    = 0x8100
+       ETHERTYPE_VLTLMAN                 = 0x8080
+       ETHERTYPE_VPROD                   = 0x805c
+       ETHERTYPE_VURESERVED              = 0x8147
+       ETHERTYPE_WATERLOO                = 0x8130
+       ETHERTYPE_WELLFLEET               = 0x8103
+       ETHERTYPE_X25                     = 0x805
+       ETHERTYPE_X75                     = 0x801
+       ETHERTYPE_XNSSM                   = 0x9001
+       ETHERTYPE_XTP                     = 0x817d
+       ETHER_ADDR_LEN                    = 0x6
+       ETHER_ALIGN                       = 0x2
+       ETHER_CRC_LEN                     = 0x4
+       ETHER_CRC_POLY_BE                 = 0x4c11db6
+       ETHER_CRC_POLY_LE                 = 0xedb88320
+       ETHER_HDR_LEN                     = 0xe
+       ETHER_MAX_DIX_LEN                 = 0x600
+       ETHER_MAX_LEN                     = 0x5ee
+       ETHER_MIN_LEN                     = 0x40
+       ETHER_TYPE_LEN                    = 0x2
+       ETHER_VLAN_ENCAP_LEN              = 0x4
+       EVFILT_AIO                        = -0x3
+       EVFILT_PROC                       = -0x5
+       EVFILT_READ                       = -0x1
+       EVFILT_SIGNAL                     = -0x6
+       EVFILT_SYSCOUNT                   = 0x7
+       EVFILT_TIMER                      = -0x7
+       EVFILT_VNODE                      = -0x4
+       EVFILT_WRITE                      = -0x2
+       EV_ADD                            = 0x1
+       EV_CLEAR                          = 0x20
+       EV_DELETE                         = 0x2
+       EV_DISABLE                        = 0x8
+       EV_ENABLE                         = 0x4
+       EV_EOF                            = 0x8000
+       EV_ERROR                          = 0x4000
+       EV_FLAG1                          = 0x2000
+       EV_ONESHOT                        = 0x10
+       EV_SYSFLAGS                       = 0xf000
+       EXTA                              = 0x4b00
+       EXTB                              = 0x9600
+       EXTPROC                           = 0x800
+       FD_CLOEXEC                        = 0x1
+       FD_SETSIZE                        = 0x400
+       FLUSHO                            = 0x800000
+       F_DUPFD                           = 0x0
+       F_DUPFD_CLOEXEC                   = 0xa
+       F_GETFD                           = 0x1
+       F_GETFL                           = 0x3
+       F_GETLK                           = 0x7
+       F_GETOWN                          = 0x5
+       F_OK                              = 0x0
+       F_RDLCK                           = 0x1
+       F_SETFD                           = 0x2
+       F_SETFL                           = 0x4
+       F_SETLK                           = 0x8
+       F_SETLKW                          = 0x9
+       F_SETOWN                          = 0x6
+       F_UNLCK                           = 0x2
+       F_WRLCK                           = 0x3
+       HUPCL                             = 0x4000
+       ICANON                            = 0x100
+       ICMP6_FILTER                      = 0x12
+       ICRNL                             = 0x100
+       IEXTEN                            = 0x400
+       IFAN_ARRIVAL                      = 0x0
+       IFAN_DEPARTURE                    = 0x1
+       IFA_ROUTE                         = 0x1
+       IFF_ALLMULTI                      = 0x200
+       IFF_BROADCAST                     = 0x2
+       IFF_CANTCHANGE                    = 0x8e52
+       IFF_DEBUG                         = 0x4
+       IFF_LINK0                         = 0x1000
+       IFF_LINK1                         = 0x2000
+       IFF_LINK2                         = 0x4000
+       IFF_LOOPBACK                      = 0x8
+       IFF_MULTICAST                     = 0x8000
+       IFF_NOARP                         = 0x80
+       IFF_NOTRAILERS                    = 0x20
+       IFF_OACTIVE                       = 0x400
+       IFF_POINTOPOINT                   = 0x10
+       IFF_PROMISC                       = 0x100
+       IFF_RUNNING                       = 0x40
+       IFF_SIMPLEX                       = 0x800
+       IFF_UP                            = 0x1
+       IFNAMSIZ                          = 0x10
+       IFT_1822                          = 0x2
+       IFT_A12MPPSWITCH                  = 0x82
+       IFT_AAL2                          = 0xbb
+       IFT_AAL5                          = 0x31
+       IFT_ADSL                          = 0x5e
+       IFT_AFLANE8023                    = 0x3b
+       IFT_AFLANE8025                    = 0x3c
+       IFT_ARAP                          = 0x58
+       IFT_ARCNET                        = 0x23
+       IFT_ARCNETPLUS                    = 0x24
+       IFT_ASYNC                         = 0x54
+       IFT_ATM                           = 0x25
+       IFT_ATMDXI                        = 0x69
+       IFT_ATMFUNI                       = 0x6a
+       IFT_ATMIMA                        = 0x6b
+       IFT_ATMLOGICAL                    = 0x50
+       IFT_ATMRADIO                      = 0xbd
+       IFT_ATMSUBINTERFACE               = 0x86
+       IFT_ATMVCIENDPT                   = 0xc2
+       IFT_ATMVIRTUAL                    = 0x95
+       IFT_BGPPOLICYACCOUNTING           = 0xa2
+       IFT_BLUETOOTH                     = 0xf8
+       IFT_BRIDGE                        = 0xd1
+       IFT_BSC                           = 0x53
+       IFT_CARP                          = 0xf7
+       IFT_CCTEMUL                       = 0x3d
+       IFT_CEPT                          = 0x13
+       IFT_CES                           = 0x85
+       IFT_CHANNEL                       = 0x46
+       IFT_CNR                           = 0x55
+       IFT_COFFEE                        = 0x84
+       IFT_COMPOSITELINK                 = 0x9b
+       IFT_DCN                           = 0x8d
+       IFT_DIGITALPOWERLINE              = 0x8a
+       IFT_DIGITALWRAPPEROVERHEADCHANNEL = 0xba
+       IFT_DLSW                          = 0x4a
+       IFT_DOCSCABLEDOWNSTREAM           = 0x80
+       IFT_DOCSCABLEMACLAYER             = 0x7f
+       IFT_DOCSCABLEUPSTREAM             = 0x81
+       IFT_DOCSCABLEUPSTREAMCHANNEL      = 0xcd
+       IFT_DS0                           = 0x51
+       IFT_DS0BUNDLE                     = 0x52
+       IFT_DS1FDL                        = 0xaa
+       IFT_DS3                           = 0x1e
+       IFT_DTM                           = 0x8c
+       IFT_DUMMY                         = 0xf1
+       IFT_DVBASILN                      = 0xac
+       IFT_DVBASIOUT                     = 0xad
+       IFT_DVBRCCDOWNSTREAM              = 0x93
+       IFT_DVBRCCMACLAYER                = 0x92
+       IFT_DVBRCCUPSTREAM                = 0x94
+       IFT_ECONET                        = 0xce
+       IFT_ENC                           = 0xf4
+       IFT_EON                           = 0x19
+       IFT_EPLRS                         = 0x57
+       IFT_ESCON                         = 0x49
+       IFT_ETHER                         = 0x6
+       IFT_FAITH                         = 0xf3
+       IFT_FAST                          = 0x7d
+       IFT_FASTETHER                     = 0x3e
+       IFT_FASTETHERFX                   = 0x45
+       IFT_FDDI                          = 0xf
+       IFT_FIBRECHANNEL                  = 0x38
+       IFT_FRAMERELAYINTERCONNECT        = 0x3a
+       IFT_FRAMERELAYMPI                 = 0x5c
+       IFT_FRDLCIENDPT                   = 0xc1
+       IFT_FRELAY                        = 0x20
+       IFT_FRELAYDCE                     = 0x2c
+       IFT_FRF16MFRBUNDLE                = 0xa3
+       IFT_FRFORWARD                     = 0x9e
+       IFT_G703AT2MB                     = 0x43
+       IFT_G703AT64K                     = 0x42
+       IFT_GIF                           = 0xf0
+       IFT_GIGABITETHERNET               = 0x75
+       IFT_GR303IDT                      = 0xb2
+       IFT_GR303RDT                      = 0xb1
+       IFT_H323GATEKEEPER                = 0xa4
+       IFT_H323PROXY                     = 0xa5
+       IFT_HDH1822                       = 0x3
+       IFT_HDLC                          = 0x76
+       IFT_HDSL2                         = 0xa8
+       IFT_HIPERLAN2                     = 0xb7
+       IFT_HIPPI                         = 0x2f
+       IFT_HIPPIINTERFACE                = 0x39
+       IFT_HOSTPAD                       = 0x5a
+       IFT_HSSI                          = 0x2e
+       IFT_HY                            = 0xe
+       IFT_IBM370PARCHAN                 = 0x48
+       IFT_IDSL                          = 0x9a
+       IFT_IEEE1394                      = 0x90
+       IFT_IEEE80211                     = 0x47
+       IFT_IEEE80212                     = 0x37
+       IFT_IEEE8023ADLAG                 = 0xa1
+       IFT_IFGSN                         = 0x91
+       IFT_IMT                           = 0xbe
+       IFT_INFINIBAND                    = 0xc7
+       IFT_INTERLEAVE                    = 0x7c
+       IFT_IP                            = 0x7e
+       IFT_IPFORWARD                     = 0x8e
+       IFT_IPOVERATM                     = 0x72
+       IFT_IPOVERCDLC                    = 0x6d
+       IFT_IPOVERCLAW                    = 0x6e
+       IFT_IPSWITCH                      = 0x4e
+       IFT_ISDN                          = 0x3f
+       IFT_ISDNBASIC                     = 0x14
+       IFT_ISDNPRIMARY                   = 0x15
+       IFT_ISDNS                         = 0x4b
+       IFT_ISDNU                         = 0x4c
+       IFT_ISO88022LLC                   = 0x29
+       IFT_ISO88023                      = 0x7
+       IFT_ISO88024                      = 0x8
+       IFT_ISO88025                      = 0x9
+       IFT_ISO88025CRFPINT               = 0x62
+       IFT_ISO88025DTR                   = 0x56
+       IFT_ISO88025FIBER                 = 0x73
+       IFT_ISO88026                      = 0xa
+       IFT_ISUP                          = 0xb3
+       IFT_L2VLAN                        = 0x87
+       IFT_L3IPVLAN                      = 0x88
+       IFT_L3IPXVLAN                     = 0x89
+       IFT_LAPB                          = 0x10
+       IFT_LAPD                          = 0x4d
+       IFT_LAPF                          = 0x77
+       IFT_LINEGROUP                     = 0xd2
+       IFT_LOCALTALK                     = 0x2a
+       IFT_LOOP                          = 0x18
+       IFT_MEDIAMAILOVERIP               = 0x8b
+       IFT_MFSIGLINK                     = 0xa7
+       IFT_MIOX25                        = 0x26
+       IFT_MODEM                         = 0x30
+       IFT_MPC                           = 0x71
+       IFT_MPLS                          = 0xa6
+       IFT_MPLSTUNNEL                    = 0x96
+       IFT_MSDSL                         = 0x8f
+       IFT_MVL                           = 0xbf
+       IFT_MYRINET                       = 0x63
+       IFT_NFAS                          = 0xaf
+       IFT_NSIP                          = 0x1b
+       IFT_OPTICALCHANNEL                = 0xc3
+       IFT_OPTICALTRANSPORT              = 0xc4
+       IFT_OTHER                         = 0x1
+       IFT_P10                           = 0xc
+       IFT_P80                           = 0xd
+       IFT_PARA                          = 0x22
+       IFT_PFLOG                         = 0xf5
+       IFT_PFLOW                         = 0xf9
+       IFT_PFSYNC                        = 0xf6
+       IFT_PLC                           = 0xae
+       IFT_PON155                        = 0xcf
+       IFT_PON622                        = 0xd0
+       IFT_POS                           = 0xab
+       IFT_PPP                           = 0x17
+       IFT_PPPMULTILINKBUNDLE            = 0x6c
+       IFT_PROPATM                       = 0xc5
+       IFT_PROPBWAP2MP                   = 0xb8
+       IFT_PROPCNLS                      = 0x59
+       IFT_PROPDOCSWIRELESSDOWNSTREAM    = 0xb5
+       IFT_PROPDOCSWIRELESSMACLAYER      = 0xb4
+       IFT_PROPDOCSWIRELESSUPSTREAM      = 0xb6
+       IFT_PROPMUX                       = 0x36
+       IFT_PROPVIRTUAL                   = 0x35
+       IFT_PROPWIRELESSP2P               = 0x9d
+       IFT_PTPSERIAL                     = 0x16
+       IFT_PVC                           = 0xf2
+       IFT_Q2931                         = 0xc9
+       IFT_QLLC                          = 0x44
+       IFT_RADIOMAC                      = 0xbc
+       IFT_RADSL                         = 0x5f
+       IFT_REACHDSL                      = 0xc0
+       IFT_RFC1483                       = 0x9f
+       IFT_RS232                         = 0x21
+       IFT_RSRB                          = 0x4f
+       IFT_SDLC                          = 0x11
+       IFT_SDSL                          = 0x60
+       IFT_SHDSL                         = 0xa9
+       IFT_SIP                           = 0x1f
+       IFT_SIPSIG                        = 0xcc
+       IFT_SIPTG                         = 0xcb
+       IFT_SLIP                          = 0x1c
+       IFT_SMDSDXI                       = 0x2b
+       IFT_SMDSICIP                      = 0x34
+       IFT_SONET                         = 0x27
+       IFT_SONETOVERHEADCHANNEL          = 0xb9
+       IFT_SONETPATH                     = 0x32
+       IFT_SONETVT                       = 0x33
+       IFT_SRP                           = 0x97
+       IFT_SS7SIGLINK                    = 0x9c
+       IFT_STACKTOSTACK                  = 0x6f
+       IFT_STARLAN                       = 0xb
+       IFT_T1                            = 0x12
+       IFT_TDLC                          = 0x74
+       IFT_TELINK                        = 0xc8
+       IFT_TERMPAD                       = 0x5b
+       IFT_TR008                         = 0xb0
+       IFT_TRANSPHDLC                    = 0x7b
+       IFT_TUNNEL                        = 0x83
+       IFT_ULTRA                         = 0x1d
+       IFT_USB                           = 0xa0
+       IFT_V11                           = 0x40
+       IFT_V35                           = 0x2d
+       IFT_V36                           = 0x41
+       IFT_V37                           = 0x78
+       IFT_VDSL                          = 0x61
+       IFT_VIRTUALIPADDRESS              = 0x70
+       IFT_VIRTUALTG                     = 0xca
+       IFT_VOICEDID                      = 0xd5
+       IFT_VOICEEM                       = 0x64
+       IFT_VOICEEMFGD                    = 0xd3
+       IFT_VOICEENCAP                    = 0x67
+       IFT_VOICEFGDEANA                  = 0xd4
+       IFT_VOICEFXO                      = 0x65
+       IFT_VOICEFXS                      = 0x66
+       IFT_VOICEOVERATM                  = 0x98
+       IFT_VOICEOVERCABLE                = 0xc6
+       IFT_VOICEOVERFRAMERELAY           = 0x99
+       IFT_VOICEOVERIP                   = 0x68
+       IFT_X213                          = 0x5d
+       IFT_X25                           = 0x5
+       IFT_X25DDN                        = 0x4
+       IFT_X25HUNTGROUP                  = 0x7a
+       IFT_X25MLP                        = 0x79
+       IFT_X25PLE                        = 0x28
+       IFT_XETHER                        = 0x1a
+       IGNBRK                            = 0x1
+       IGNCR                             = 0x80
+       IGNPAR                            = 0x4
+       IMAXBEL                           = 0x2000
+       INLCR                             = 0x40
+       INPCK                             = 0x10
+       IN_CLASSA_HOST                    = 0xffffff
+       IN_CLASSA_MAX                     = 0x80
+       IN_CLASSA_NET                     = 0xff000000
+       IN_CLASSA_NSHIFT                  = 0x18
+       IN_CLASSB_HOST                    = 0xffff
+       IN_CLASSB_MAX                     = 0x10000
+       IN_CLASSB_NET                     = 0xffff0000
+       IN_CLASSB_NSHIFT                  = 0x10
+       IN_CLASSC_HOST                    = 0xff
+       IN_CLASSC_NET                     = 0xffffff00
+       IN_CLASSC_NSHIFT                  = 0x8
+       IN_CLASSD_HOST                    = 0xfffffff
+       IN_CLASSD_NET                     = 0xf0000000
+       IN_CLASSD_NSHIFT                  = 0x1c
+       IN_LOOPBACKNET                    = 0x7f
+       IN_RFC3021_HOST                   = 0x1
+       IN_RFC3021_NET                    = 0xfffffffe
+       IN_RFC3021_NSHIFT                 = 0x1f
+       IPPROTO_AH                        = 0x33
+       IPPROTO_CARP                      = 0x70
+       IPPROTO_DIVERT                    = 0x102
+       IPPROTO_DIVERT_INIT               = 0x2
+       IPPROTO_DIVERT_RESP               = 0x1
+       IPPROTO_DONE                      = 0x101
+       IPPROTO_DSTOPTS                   = 0x3c
+       IPPROTO_EGP                       = 0x8
+       IPPROTO_ENCAP                     = 0x62
+       IPPROTO_EON                       = 0x50
+       IPPROTO_ESP                       = 0x32
+       IPPROTO_ETHERIP                   = 0x61
+       IPPROTO_FRAGMENT                  = 0x2c
+       IPPROTO_GGP                       = 0x3
+       IPPROTO_GRE                       = 0x2f
+       IPPROTO_HOPOPTS                   = 0x0
+       IPPROTO_ICMP                      = 0x1
+       IPPROTO_ICMPV6                    = 0x3a
+       IPPROTO_IDP                       = 0x16
+       IPPROTO_IGMP                      = 0x2
+       IPPROTO_IP                        = 0x0
+       IPPROTO_IPCOMP                    = 0x6c
+       IPPROTO_IPIP                      = 0x4
+       IPPROTO_IPV4                      = 0x4
+       IPPROTO_IPV6                      = 0x29
+       IPPROTO_MAX                       = 0x100
+       IPPROTO_MAXID                     = 0x103
+       IPPROTO_MOBILE                    = 0x37
+       IPPROTO_MPLS                      = 0x89
+       IPPROTO_NONE                      = 0x3b
+       IPPROTO_PFSYNC                    = 0xf0
+       IPPROTO_PIM                       = 0x67
+       IPPROTO_PUP                       = 0xc
+       IPPROTO_RAW                       = 0xff
+       IPPROTO_ROUTING                   = 0x2b
+       IPPROTO_RSVP                      = 0x2e
+       IPPROTO_TCP                       = 0x6
+       IPPROTO_TP                        = 0x1d
+       IPPROTO_UDP                       = 0x11
+       IPV6_AUTH_LEVEL                   = 0x35
+       IPV6_AUTOFLOWLABEL                = 0x3b
+       IPV6_CHECKSUM                     = 0x1a
+       IPV6_DEFAULT_MULTICAST_HOPS       = 0x1
+       IPV6_DEFAULT_MULTICAST_LOOP       = 0x1
+       IPV6_DEFHLIM                      = 0x40
+       IPV6_DONTFRAG                     = 0x3e
+       IPV6_DSTOPTS                      = 0x32
+       IPV6_ESP_NETWORK_LEVEL            = 0x37
+       IPV6_ESP_TRANS_LEVEL              = 0x36
+       IPV6_FAITH                        = 0x1d
+       IPV6_FLOWINFO_MASK                = 0xffffff0f
+       IPV6_FLOWLABEL_MASK               = 0xffff0f00
+       IPV6_FRAGTTL                      = 0x78
+       IPV6_HLIMDEC                      = 0x1
+       IPV6_HOPLIMIT                     = 0x2f
+       IPV6_HOPOPTS                      = 0x31
+       IPV6_IPCOMP_LEVEL                 = 0x3c
+       IPV6_JOIN_GROUP                   = 0xc
+       IPV6_LEAVE_GROUP                  = 0xd
+       IPV6_MAXHLIM                      = 0xff
+       IPV6_MAXPACKET                    = 0xffff
+       IPV6_MMTU                         = 0x500
+       IPV6_MULTICAST_HOPS               = 0xa
+       IPV6_MULTICAST_IF                 = 0x9
+       IPV6_MULTICAST_LOOP               = 0xb
+       IPV6_NEXTHOP                      = 0x30
+       IPV6_OPTIONS                      = 0x1
+       IPV6_PATHMTU                      = 0x2c
+       IPV6_PIPEX                        = 0x3f
+       IPV6_PKTINFO                      = 0x2e
+       IPV6_PORTRANGE                    = 0xe
+       IPV6_PORTRANGE_DEFAULT            = 0x0
+       IPV6_PORTRANGE_HIGH               = 0x1
+       IPV6_PORTRANGE_LOW                = 0x2
+       IPV6_RECVDSTOPTS                  = 0x28
+       IPV6_RECVDSTPORT                  = 0x40
+       IPV6_RECVHOPLIMIT                 = 0x25
+       IPV6_RECVHOPOPTS                  = 0x27
+       IPV6_RECVPATHMTU                  = 0x2b
+       IPV6_RECVPKTINFO                  = 0x24
+       IPV6_RECVRTHDR                    = 0x26
+       IPV6_RECVTCLASS                   = 0x39
+       IPV6_RTABLE                       = 0x1021
+       IPV6_RTHDR                        = 0x33
+       IPV6_RTHDRDSTOPTS                 = 0x23
+       IPV6_RTHDR_LOOSE                  = 0x0
+       IPV6_RTHDR_STRICT                 = 0x1
+       IPV6_RTHDR_TYPE_0                 = 0x0
+       IPV6_SOCKOPT_RESERVED1            = 0x3
+       IPV6_TCLASS                       = 0x3d
+       IPV6_UNICAST_HOPS                 = 0x4
+       IPV6_USE_MIN_MTU                  = 0x2a
+       IPV6_V6ONLY                       = 0x1b
+       IPV6_VERSION                      = 0x60
+       IPV6_VERSION_MASK                 = 0xf0
+       IP_ADD_MEMBERSHIP                 = 0xc
+       IP_AUTH_LEVEL                     = 0x14
+       IP_DEFAULT_MULTICAST_LOOP         = 0x1
+       IP_DEFAULT_MULTICAST_TTL          = 0x1
+       IP_DF                             = 0x4000
+       IP_DIVERTFL                       = 0x1022
+       IP_DROP_MEMBERSHIP                = 0xd
+       IP_ESP_NETWORK_LEVEL              = 0x16
+       IP_ESP_TRANS_LEVEL                = 0x15
+       IP_HDRINCL                        = 0x2
+       IP_IPCOMP_LEVEL                   = 0x1d
+       IP_IPSECFLOWINFO                  = 0x24
+       IP_IPSEC_LOCAL_AUTH               = 0x1b
+       IP_IPSEC_LOCAL_CRED               = 0x19
+       IP_IPSEC_LOCAL_ID                 = 0x17
+       IP_IPSEC_REMOTE_AUTH              = 0x1c
+       IP_IPSEC_REMOTE_CRED              = 0x1a
+       IP_IPSEC_REMOTE_ID                = 0x18
+       IP_MAXPACKET                      = 0xffff
+       IP_MAX_MEMBERSHIPS                = 0xfff
+       IP_MF                             = 0x2000
+       IP_MINTTL                         = 0x20
+       IP_MIN_MEMBERSHIPS                = 0xf
+       IP_MSS                            = 0x240
+       IP_MULTICAST_IF                   = 0x9
+       IP_MULTICAST_LOOP                 = 0xb
+       IP_MULTICAST_TTL                  = 0xa
+       IP_OFFMASK                        = 0x1fff
+       IP_OPTIONS                        = 0x1
+       IP_PIPEX                          = 0x22
+       IP_PORTRANGE                      = 0x13
+       IP_PORTRANGE_DEFAULT              = 0x0
+       IP_PORTRANGE_HIGH                 = 0x1
+       IP_PORTRANGE_LOW                  = 0x2
+       IP_RECVDSTADDR                    = 0x7
+       IP_RECVDSTPORT                    = 0x21
+       IP_RECVIF                         = 0x1e
+       IP_RECVOPTS                       = 0x5
+       IP_RECVRETOPTS                    = 0x6
+       IP_RECVRTABLE                     = 0x23
+       IP_RECVTTL                        = 0x1f
+       IP_RETOPTS                        = 0x8
+       IP_RF                             = 0x8000
+       IP_RTABLE                         = 0x1021
+       IP_TOS                            = 0x3
+       IP_TTL                            = 0x4
+       ISIG                              = 0x80
+       ISTRIP                            = 0x20
+       IXANY                             = 0x800
+       IXOFF                             = 0x400
+       IXON                              = 0x200
+       LCNT_OVERLOAD_FLUSH               = 0x6
+       LOCK_EX                           = 0x2
+       LOCK_NB                           = 0x4
+       LOCK_SH                           = 0x1
+       LOCK_UN                           = 0x8
+       MADV_DONTNEED                     = 0x4
+       MADV_FREE                         = 0x6
+       MADV_NORMAL                       = 0x0
+       MADV_RANDOM                       = 0x1
+       MADV_SEQUENTIAL                   = 0x2
+       MADV_SPACEAVAIL                   = 0x5
+       MADV_WILLNEED                     = 0x3
+       MAP_ANON                          = 0x1000
+       MAP_COPY                          = 0x4
+       MAP_FILE                          = 0x0
+       MAP_FIXED                         = 0x10
+       MAP_FLAGMASK                      = 0x1ff7
+       MAP_HASSEMAPHORE                  = 0x200
+       MAP_INHERIT                       = 0x80
+       MAP_INHERIT_COPY                  = 0x1
+       MAP_INHERIT_DONATE_COPY           = 0x3
+       MAP_INHERIT_NONE                  = 0x2
+       MAP_INHERIT_SHARE                 = 0x0
+       MAP_NOEXTEND                      = 0x100
+       MAP_NORESERVE                     = 0x40
+       MAP_PRIVATE                       = 0x2
+       MAP_RENAME                        = 0x20
+       MAP_SHARED                        = 0x1
+       MAP_TRYFIXED                      = 0x400
+       MCL_CURRENT                       = 0x1
+       MCL_FUTURE                        = 0x2
+       MSG_BCAST                         = 0x100
+       MSG_CTRUNC                        = 0x20
+       MSG_DONTROUTE                     = 0x4
+       MSG_DONTWAIT                      = 0x80
+       MSG_EOR                           = 0x8
+       MSG_MCAST                         = 0x200
+       MSG_NOSIGNAL                      = 0x400
+       MSG_OOB                           = 0x1
+       MSG_PEEK                          = 0x2
+       MSG_TRUNC                         = 0x10
+       MSG_WAITALL                       = 0x40
+       MS_ASYNC                          = 0x1
+       MS_INVALIDATE                     = 0x4
+       MS_SYNC                           = 0x2
+       NAME_MAX                          = 0xff
+       NET_RT_DUMP                       = 0x1
+       NET_RT_FLAGS                      = 0x2
+       NET_RT_IFLIST                     = 0x3
+       NET_RT_MAXID                      = 0x6
+       NET_RT_STATS                      = 0x4
+       NET_RT_TABLE                      = 0x5
+       NOFLSH                            = 0x80000000
+       NOTE_ATTRIB                       = 0x8
+       NOTE_CHILD                        = 0x4
+       NOTE_DELETE                       = 0x1
+       NOTE_EOF                          = 0x2
+       NOTE_EXEC                         = 0x20000000
+       NOTE_EXIT                         = 0x80000000
+       NOTE_EXTEND                       = 0x4
+       NOTE_FORK                         = 0x40000000
+       NOTE_LINK                         = 0x10
+       NOTE_LOWAT                        = 0x1
+       NOTE_PCTRLMASK                    = 0xf0000000
+       NOTE_PDATAMASK                    = 0xfffff
+       NOTE_RENAME                       = 0x20
+       NOTE_REVOKE                       = 0x40
+       NOTE_TRACK                        = 0x1
+       NOTE_TRACKERR                     = 0x2
+       NOTE_TRUNCATE                     = 0x80
+       NOTE_WRITE                        = 0x2
+       OCRNL                             = 0x10
+       ONLCR                             = 0x2
+       ONLRET                            = 0x80
+       ONOCR                             = 0x40
+       ONOEOT                            = 0x8
+       OPOST                             = 0x1
+       O_ACCMODE                         = 0x3
+       O_APPEND                          = 0x8
+       O_ASYNC                           = 0x40
+       O_CLOEXEC                         = 0x10000
+       O_CREAT                           = 0x200
+       O_DIRECTORY                       = 0x20000
+       O_DSYNC                           = 0x80
+       O_EXCL                            = 0x800
+       O_EXLOCK                          = 0x20
+       O_FSYNC                           = 0x80
+       O_NDELAY                          = 0x4
+       O_NOCTTY                          = 0x8000
+       O_NOFOLLOW                        = 0x100
+       O_NONBLOCK                        = 0x4
+       O_RDONLY                          = 0x0
+       O_RDWR                            = 0x2
+       O_RSYNC                           = 0x80
+       O_SHLOCK                          = 0x10
+       O_SYNC                            = 0x80
+       O_TRUNC                           = 0x400
+       O_WRONLY                          = 0x1
+       PARENB                            = 0x1000
+       PARMRK                            = 0x8
+       PARODD                            = 0x2000
+       PENDIN                            = 0x20000000
+       PF_FLUSH                          = 0x1
+       PRIO_PGRP                         = 0x1
+       PRIO_PROCESS                      = 0x0
+       PRIO_USER                         = 0x2
+       PROT_EXEC                         = 0x4
+       PROT_NONE                         = 0x0
+       PROT_READ                         = 0x1
+       PROT_WRITE                        = 0x2
+       RLIMIT_CORE                       = 0x4
+       RLIMIT_CPU                        = 0x0
+       RLIMIT_DATA                       = 0x2
+       RLIMIT_FSIZE                      = 0x1
+       RLIMIT_NOFILE                     = 0x8
+       RLIMIT_STACK                      = 0x3
+       RLIM_INFINITY                     = 0x7fffffffffffffff
+       RTAX_AUTHOR                       = 0x6
+       RTAX_BRD                          = 0x7
+       RTAX_DST                          = 0x0
+       RTAX_GATEWAY                      = 0x1
+       RTAX_GENMASK                      = 0x3
+       RTAX_IFA                          = 0x5
+       RTAX_IFP                          = 0x4
+       RTAX_LABEL                        = 0xa
+       RTAX_MAX                          = 0xb
+       RTAX_NETMASK                      = 0x2
+       RTAX_SRC                          = 0x8
+       RTAX_SRCMASK                      = 0x9
+       RTA_AUTHOR                        = 0x40
+       RTA_BRD                           = 0x80
+       RTA_DST                           = 0x1
+       RTA_GATEWAY                       = 0x2
+       RTA_GENMASK                       = 0x8
+       RTA_IFA                           = 0x20
+       RTA_IFP                           = 0x10
+       RTA_LABEL                         = 0x400
+       RTA_NETMASK                       = 0x4
+       RTA_SRC                           = 0x100
+       RTA_SRCMASK                       = 0x200
+       RTF_ANNOUNCE                      = 0x4000
+       RTF_BLACKHOLE                     = 0x1000
+       RTF_CLONED                        = 0x10000
+       RTF_CLONING                       = 0x100
+       RTF_DONE                          = 0x40
+       RTF_DYNAMIC                       = 0x10
+       RTF_FMASK                         = 0x10f808
+       RTF_GATEWAY                       = 0x2
+       RTF_HOST                          = 0x4
+       RTF_LLINFO                        = 0x400
+       RTF_MASK                          = 0x80
+       RTF_MODIFIED                      = 0x20
+       RTF_MPATH                         = 0x40000
+       RTF_MPLS                          = 0x100000
+       RTF_PERMANENT_ARP                 = 0x2000
+       RTF_PROTO1                        = 0x8000
+       RTF_PROTO2                        = 0x4000
+       RTF_PROTO3                        = 0x2000
+       RTF_REJECT                        = 0x8
+       RTF_SOURCE                        = 0x20000
+       RTF_STATIC                        = 0x800
+       RTF_TUNNEL                        = 0x100000
+       RTF_UP                            = 0x1
+       RTF_USETRAILERS                   = 0x8000
+       RTF_XRESOLVE                      = 0x200
+       RTM_ADD                           = 0x1
+       RTM_CHANGE                        = 0x3
+       RTM_DELADDR                       = 0xd
+       RTM_DELETE                        = 0x2
+       RTM_DESYNC                        = 0x10
+       RTM_GET                           = 0x4
+       RTM_IFANNOUNCE                    = 0xf
+       RTM_IFINFO                        = 0xe
+       RTM_LOCK                          = 0x8
+       RTM_LOSING                        = 0x5
+       RTM_MAXSIZE                       = 0x800
+       RTM_MISS                          = 0x7
+       RTM_NEWADDR                       = 0xc
+       RTM_REDIRECT                      = 0x6
+       RTM_RESOLVE                       = 0xb
+       RTM_RTTUNIT                       = 0xf4240
+       RTM_VERSION                       = 0x5
+       RTV_EXPIRE                        = 0x4
+       RTV_HOPCOUNT                      = 0x2
+       RTV_MTU                           = 0x1
+       RTV_RPIPE                         = 0x8
+       RTV_RTT                           = 0x40
+       RTV_RTTVAR                        = 0x80
+       RTV_SPIPE                         = 0x10
+       RTV_SSTHRESH                      = 0x20
+       RT_TABLEID_MAX                    = 0xff
+       RUSAGE_CHILDREN                   = -0x1
+       RUSAGE_SELF                       = 0x0
+       RUSAGE_THREAD                     = 0x1
+       SCM_RIGHTS                        = 0x1
+       SCM_TIMESTAMP                     = 0x4
+       SHUT_RD                           = 0x0
+       SHUT_RDWR                         = 0x2
+       SHUT_WR                           = 0x1
+       SIOCADDMULTI                      = 0x80206931
+       SIOCAIFADDR                       = 0x8040691a
+       SIOCAIFGROUP                      = 0x80286987
+       SIOCALIFADDR                      = 0x8218691c
+       SIOCATMARK                        = 0x40047307
+       SIOCBRDGADD                       = 0x8058693c
+       SIOCBRDGADDS                      = 0x80586941
+       SIOCBRDGARL                       = 0x806e694d
+       SIOCBRDGDADDR                     = 0x81286947
+       SIOCBRDGDEL                       = 0x8058693d
+       SIOCBRDGDELS                      = 0x80586942
+       SIOCBRDGFLUSH                     = 0x80586948
+       SIOCBRDGFRL                       = 0x806e694e
+       SIOCBRDGGCACHE                    = 0xc0146941
+       SIOCBRDGGFD                       = 0xc0146952
+       SIOCBRDGGHT                       = 0xc0146951
+       SIOCBRDGGIFFLGS                   = 0xc058693e
+       SIOCBRDGGMA                       = 0xc0146953
+       SIOCBRDGGPARAM                    = 0xc0406958
+       SIOCBRDGGPRI                      = 0xc0146950
+       SIOCBRDGGRL                       = 0xc030694f
+       SIOCBRDGGSIFS                     = 0xc058693c
+       SIOCBRDGGTO                       = 0xc0146946
+       SIOCBRDGIFS                       = 0xc0586942
+       SIOCBRDGRTS                       = 0xc0206943
+       SIOCBRDGSADDR                     = 0xc1286944
+       SIOCBRDGSCACHE                    = 0x80146940
+       SIOCBRDGSFD                       = 0x80146952
+       SIOCBRDGSHT                       = 0x80146951
+       SIOCBRDGSIFCOST                   = 0x80586955
+       SIOCBRDGSIFFLGS                   = 0x8058693f
+       SIOCBRDGSIFPRIO                   = 0x80586954
+       SIOCBRDGSMA                       = 0x80146953
+       SIOCBRDGSPRI                      = 0x80146950
+       SIOCBRDGSPROTO                    = 0x8014695a
+       SIOCBRDGSTO                       = 0x80146945
+       SIOCBRDGSTXHC                     = 0x80146959
+       SIOCDELMULTI                      = 0x80206932
+       SIOCDIFADDR                       = 0x80206919
+       SIOCDIFGROUP                      = 0x80286989
+       SIOCDIFPHYADDR                    = 0x80206949
+       SIOCDLIFADDR                      = 0x8218691e
+       SIOCGETKALIVE                     = 0xc01869a4
+       SIOCGETLABEL                      = 0x8020699a
+       SIOCGETPFLOW                      = 0xc02069fe
+       SIOCGETPFSYNC                     = 0xc02069f8
+       SIOCGETSGCNT                      = 0xc0207534
+       SIOCGETVIFCNT                     = 0xc0287533
+       SIOCGETVLAN                       = 0xc0206990
+       SIOCGHIWAT                        = 0x40047301
+       SIOCGIFADDR                       = 0xc0206921
+       SIOCGIFASYNCMAP                   = 0xc020697c
+       SIOCGIFBRDADDR                    = 0xc0206923
+       SIOCGIFCONF                       = 0xc0106924
+       SIOCGIFDATA                       = 0xc020691b
+       SIOCGIFDESCR                      = 0xc0206981
+       SIOCGIFDSTADDR                    = 0xc0206922
+       SIOCGIFFLAGS                      = 0xc0206911
+       SIOCGIFGATTR                      = 0xc028698b
+       SIOCGIFGENERIC                    = 0xc020693a
+       SIOCGIFGMEMB                      = 0xc028698a
+       SIOCGIFGROUP                      = 0xc0286988
+       SIOCGIFHARDMTU                    = 0xc02069a5
+       SIOCGIFMEDIA                      = 0xc0306936
+       SIOCGIFMETRIC                     = 0xc0206917
+       SIOCGIFMTU                        = 0xc020697e
+       SIOCGIFNETMASK                    = 0xc0206925
+       SIOCGIFPDSTADDR                   = 0xc0206948
+       SIOCGIFPRIORITY                   = 0xc020699c
+       SIOCGIFPSRCADDR                   = 0xc0206947
+       SIOCGIFRDOMAIN                    = 0xc02069a0
+       SIOCGIFRTLABEL                    = 0xc0206983
+       SIOCGIFTIMESLOT                   = 0xc0206986
+       SIOCGIFXFLAGS                     = 0xc020699e
+       SIOCGLIFADDR                      = 0xc218691d
+       SIOCGLIFPHYADDR                   = 0xc218694b
+       SIOCGLIFPHYRTABLE                 = 0xc02069a2
+       SIOCGLIFPHYTTL                    = 0xc02069a9
+       SIOCGLOWAT                        = 0x40047303
+       SIOCGPGRP                         = 0x40047309
+       SIOCGSPPPPARAMS                   = 0xc0206994
+       SIOCGVH                           = 0xc02069f6
+       SIOCGVNETID                       = 0xc02069a7
+       SIOCIFCREATE                      = 0x8020697a
+       SIOCIFDESTROY                     = 0x80206979
+       SIOCIFGCLONERS                    = 0xc0106978
+       SIOCSETKALIVE                     = 0x801869a3
+       SIOCSETLABEL                      = 0x80206999
+       SIOCSETPFLOW                      = 0x802069fd
+       SIOCSETPFSYNC                     = 0x802069f7
+       SIOCSETVLAN                       = 0x8020698f
+       SIOCSHIWAT                        = 0x80047300
+       SIOCSIFADDR                       = 0x8020690c
+       SIOCSIFASYNCMAP                   = 0x8020697d
+       SIOCSIFBRDADDR                    = 0x80206913
+       SIOCSIFDESCR                      = 0x80206980
+       SIOCSIFDSTADDR                    = 0x8020690e
+       SIOCSIFFLAGS                      = 0x80206910
+       SIOCSIFGATTR                      = 0x8028698c
+       SIOCSIFGENERIC                    = 0x80206939
+       SIOCSIFLLADDR                     = 0x8020691f
+       SIOCSIFMEDIA                      = 0xc0206935
+       SIOCSIFMETRIC                     = 0x80206918
+       SIOCSIFMTU                        = 0x8020697f
+       SIOCSIFNETMASK                    = 0x80206916
+       SIOCSIFPHYADDR                    = 0x80406946
+       SIOCSIFPRIORITY                   = 0x8020699b
+       SIOCSIFRDOMAIN                    = 0x8020699f
+       SIOCSIFRTLABEL                    = 0x80206982
+       SIOCSIFTIMESLOT                   = 0x80206985
+       SIOCSIFXFLAGS                     = 0x8020699d
+       SIOCSLIFPHYADDR                   = 0x8218694a
+       SIOCSLIFPHYRTABLE                 = 0x802069a1
+       SIOCSLIFPHYTTL                    = 0x802069a8
+       SIOCSLOWAT                        = 0x80047302
+       SIOCSPGRP                         = 0x80047308
+       SIOCSSPPPPARAMS                   = 0x80206993
+       SIOCSVH                           = 0xc02069f5
+       SIOCSVNETID                       = 0x802069a6
+       SOCK_DGRAM                        = 0x2
+       SOCK_RAW                          = 0x3
+       SOCK_RDM                          = 0x4
+       SOCK_SEQPACKET                    = 0x5
+       SOCK_STREAM                       = 0x1
+       SOL_SOCKET                        = 0xffff
+       SOMAXCONN                         = 0x80
+       SO_ACCEPTCONN                     = 0x2
+       SO_BINDANY                        = 0x1000
+       SO_BROADCAST                      = 0x20
+       SO_DEBUG                          = 0x1
+       SO_DONTROUTE                      = 0x10
+       SO_ERROR                          = 0x1007
+       SO_KEEPALIVE                      = 0x8
+       SO_LINGER                         = 0x80
+       SO_NETPROC                        = 0x1020
+       SO_OOBINLINE                      = 0x100
+       SO_PEERCRED                       = 0x1022
+       SO_RCVBUF                         = 0x1002
+       SO_RCVLOWAT                       = 0x1004
+       SO_RCVTIMEO                       = 0x1006
+       SO_REUSEADDR                      = 0x4
+       SO_REUSEPORT                      = 0x200
+       SO_RTABLE                         = 0x1021
+       SO_SNDBUF                         = 0x1001
+       SO_SNDLOWAT                       = 0x1003
+       SO_SNDTIMEO                       = 0x1005
+       SO_SPLICE                         = 0x1023
+       SO_TIMESTAMP                      = 0x800
+       SO_TYPE                           = 0x1008
+       SO_USELOOPBACK                    = 0x40
+       TCIFLUSH                          = 0x1
+       TCIOFLUSH                         = 0x3
+       TCOFLUSH                          = 0x2
+       TCP_MAXBURST                      = 0x4
+       TCP_MAXSEG                        = 0x2
+       TCP_MAXWIN                        = 0xffff
+       TCP_MAX_SACK                      = 0x3
+       TCP_MAX_WINSHIFT                  = 0xe
+       TCP_MD5SIG                        = 0x4
+       TCP_MSS                           = 0x200
+       TCP_NODELAY                       = 0x1
+       TCP_NOPUSH                        = 0x10
+       TCP_NSTATES                       = 0xb
+       TCP_SACK_ENABLE                   = 0x8
+       TCSAFLUSH                         = 0x2
+       TIOCCBRK                          = 0x2000747a
+       TIOCCDTR                          = 0x20007478
+       TIOCCONS                          = 0x80047462
+       TIOCDRAIN                         = 0x2000745e
+       TIOCEXCL                          = 0x2000740d
+       TIOCEXT                           = 0x80047460
+       TIOCFLAG_CLOCAL                   = 0x2
+       TIOCFLAG_CRTSCTS                  = 0x4
+       TIOCFLAG_MDMBUF                   = 0x8
+       TIOCFLAG_PPS                      = 0x10
+       TIOCFLAG_SOFTCAR                  = 0x1
+       TIOCFLUSH                         = 0x80047410
+       TIOCGETA                          = 0x402c7413
+       TIOCGETD                          = 0x4004741a
+       TIOCGFLAGS                        = 0x4004745d
+       TIOCGPGRP                         = 0x40047477
+       TIOCGSID                          = 0x40047463
+       TIOCGTSTAMP                       = 0x4010745b
+       TIOCGWINSZ                        = 0x40087468
+       TIOCMBIC                          = 0x8004746b
+       TIOCMBIS                          = 0x8004746c
+       TIOCMGET                          = 0x4004746a
+       TIOCMODG                          = 0x4004746a
+       TIOCMODS                          = 0x8004746d
+       TIOCMSET                          = 0x8004746d
+       TIOCM_CAR                         = 0x40
+       TIOCM_CD                          = 0x40
+       TIOCM_CTS                         = 0x20
+       TIOCM_DSR                         = 0x100
+       TIOCM_DTR                         = 0x2
+       TIOCM_LE                          = 0x1
+       TIOCM_RI                          = 0x80
+       TIOCM_RNG                         = 0x80
+       TIOCM_RTS                         = 0x4
+       TIOCM_SR                          = 0x10
+       TIOCM_ST                          = 0x8
+       TIOCNOTTY                         = 0x20007471
+       TIOCNXCL                          = 0x2000740e
+       TIOCOUTQ                          = 0x40047473
+       TIOCPKT                           = 0x80047470
+       TIOCPKT_DATA                      = 0x0
+       TIOCPKT_DOSTOP                    = 0x20
+       TIOCPKT_FLUSHREAD                 = 0x1
+       TIOCPKT_FLUSHWRITE                = 0x2
+       TIOCPKT_IOCTL                     = 0x40
+       TIOCPKT_NOSTOP                    = 0x10
+       TIOCPKT_START                     = 0x8
+       TIOCPKT_STOP                      = 0x4
+       TIOCREMOTE                        = 0x80047469
+       TIOCSBRK                          = 0x2000747b
+       TIOCSCTTY                         = 0x20007461
+       TIOCSDTR                          = 0x20007479
+       TIOCSETA                          = 0x802c7414
+       TIOCSETAF                         = 0x802c7416
+       TIOCSETAW                         = 0x802c7415
+       TIOCSETD                          = 0x8004741b
+       TIOCSFLAGS                        = 0x8004745c
+       TIOCSIG                           = 0x8004745f
+       TIOCSPGRP                         = 0x80047476
+       TIOCSTART                         = 0x2000746e
+       TIOCSTAT                          = 0x80047465
+       TIOCSTI                           = 0x80017472
+       TIOCSTOP                          = 0x2000746f
+       TIOCSTSTAMP                       = 0x8008745a
+       TIOCSWINSZ                        = 0x80087467
+       TIOCUCNTL                         = 0x80047466
+       TOSTOP                            = 0x400000
+       VDISCARD                          = 0xf
+       VDSUSP                            = 0xb
+       VEOF                              = 0x0
+       VEOL                              = 0x1
+       VEOL2                             = 0x2
+       VERASE                            = 0x3
+       VINTR                             = 0x8
+       VKILL                             = 0x5
+       VLNEXT                            = 0xe
+       VMIN                              = 0x10
+       VQUIT                             = 0x9
+       VREPRINT                          = 0x6
+       VSTART                            = 0xc
+       VSTATUS                           = 0x12
+       VSTOP                             = 0xd
+       VSUSP                             = 0xa
+       VTIME                             = 0x11
+       VWERASE                           = 0x4
+       WALTSIG                           = 0x4
+       WCONTINUED                        = 0x8
+       WCOREFLAG                         = 0x80
+       WNOHANG                           = 0x1
+       WSTOPPED                          = 0x7f
+       WUNTRACED                         = 0x2
+)
+
+// Errors
+const (
+       E2BIG           = syscall.Errno(0x7)
+       EACCES          = syscall.Errno(0xd)
+       EADDRINUSE      = syscall.Errno(0x30)
+       EADDRNOTAVAIL   = syscall.Errno(0x31)
+       EAFNOSUPPORT    = syscall.Errno(0x2f)
+       EAGAIN          = syscall.Errno(0x23)
+       EALREADY        = syscall.Errno(0x25)
+       EAUTH           = syscall.Errno(0x50)
+       EBADF           = syscall.Errno(0x9)
+       EBADRPC         = syscall.Errno(0x48)
+       EBUSY           = syscall.Errno(0x10)
+       ECANCELED       = syscall.Errno(0x58)
+       ECHILD          = syscall.Errno(0xa)
+       ECONNABORTED    = syscall.Errno(0x35)
+       ECONNREFUSED    = syscall.Errno(0x3d)
+       ECONNRESET      = syscall.Errno(0x36)
+       EDEADLK         = syscall.Errno(0xb)
+       EDESTADDRREQ    = syscall.Errno(0x27)
+       EDOM            = syscall.Errno(0x21)
+       EDQUOT          = syscall.Errno(0x45)
+       EEXIST          = syscall.Errno(0x11)
+       EFAULT          = syscall.Errno(0xe)
+       EFBIG           = syscall.Errno(0x1b)
+       EFTYPE          = syscall.Errno(0x4f)
+       EHOSTDOWN       = syscall.Errno(0x40)
+       EHOSTUNREACH    = syscall.Errno(0x41)
+       EIDRM           = syscall.Errno(0x59)
+       EILSEQ          = syscall.Errno(0x54)
+       EINPROGRESS     = syscall.Errno(0x24)
+       EINTR           = syscall.Errno(0x4)
+       EINVAL          = syscall.Errno(0x16)
+       EIO             = syscall.Errno(0x5)
+       EIPSEC          = syscall.Errno(0x52)
+       EISCONN         = syscall.Errno(0x38)
+       EISDIR          = syscall.Errno(0x15)
+       ELAST           = syscall.Errno(0x5b)
+       ELOOP           = syscall.Errno(0x3e)
+       EMEDIUMTYPE     = syscall.Errno(0x56)
+       EMFILE          = syscall.Errno(0x18)
+       EMLINK          = syscall.Errno(0x1f)
+       EMSGSIZE        = syscall.Errno(0x28)
+       ENAMETOOLONG    = syscall.Errno(0x3f)
+       ENEEDAUTH       = syscall.Errno(0x51)
+       ENETDOWN        = syscall.Errno(0x32)
+       ENETRESET       = syscall.Errno(0x34)
+       ENETUNREACH     = syscall.Errno(0x33)
+       ENFILE          = syscall.Errno(0x17)
+       ENOATTR         = syscall.Errno(0x53)
+       ENOBUFS         = syscall.Errno(0x37)
+       ENODEV          = syscall.Errno(0x13)
+       ENOENT          = syscall.Errno(0x2)
+       ENOEXEC         = syscall.Errno(0x8)
+       ENOLCK          = syscall.Errno(0x4d)
+       ENOMEDIUM       = syscall.Errno(0x55)
+       ENOMEM          = syscall.Errno(0xc)
+       ENOMSG          = syscall.Errno(0x5a)
+       ENOPROTOOPT     = syscall.Errno(0x2a)
+       ENOSPC          = syscall.Errno(0x1c)
+       ENOSYS          = syscall.Errno(0x4e)
+       ENOTBLK         = syscall.Errno(0xf)
+       ENOTCONN        = syscall.Errno(0x39)
+       ENOTDIR         = syscall.Errno(0x14)
+       ENOTEMPTY       = syscall.Errno(0x42)
+       ENOTSOCK        = syscall.Errno(0x26)
+       ENOTSUP         = syscall.Errno(0x5b)
+       ENOTTY          = syscall.Errno(0x19)
+       ENXIO           = syscall.Errno(0x6)
+       EOPNOTSUPP      = syscall.Errno(0x2d)
+       EOVERFLOW       = syscall.Errno(0x57)
+       EPERM           = syscall.Errno(0x1)
+       EPFNOSUPPORT    = syscall.Errno(0x2e)
+       EPIPE           = syscall.Errno(0x20)
+       EPROCLIM        = syscall.Errno(0x43)
+       EPROCUNAVAIL    = syscall.Errno(0x4c)
+       EPROGMISMATCH   = syscall.Errno(0x4b)
+       EPROGUNAVAIL    = syscall.Errno(0x4a)
+       EPROTONOSUPPORT = syscall.Errno(0x2b)
+       EPROTOTYPE      = syscall.Errno(0x29)
+       ERANGE          = syscall.Errno(0x22)
+       EREMOTE         = syscall.Errno(0x47)
+       EROFS           = syscall.Errno(0x1e)
+       ERPCMISMATCH    = syscall.Errno(0x49)
+       ESHUTDOWN       = syscall.Errno(0x3a)
+       ESOCKTNOSUPPORT = syscall.Errno(0x2c)
+       ESPIPE          = syscall.Errno(0x1d)
+       ESRCH           = syscall.Errno(0x3)
+       ESTALE          = syscall.Errno(0x46)
+       ETIMEDOUT       = syscall.Errno(0x3c)
+       ETOOMANYREFS    = syscall.Errno(0x3b)
+       ETXTBSY         = syscall.Errno(0x1a)
+       EUSERS          = syscall.Errno(0x44)
+       EWOULDBLOCK     = syscall.Errno(0x23)
+       EXDEV           = syscall.Errno(0x12)
+)
+
+// Signals
+const (
+       SIGABRT   = syscall.Signal(0x6)
+       SIGALRM   = syscall.Signal(0xe)
+       SIGBUS    = syscall.Signal(0xa)
+       SIGCHLD   = syscall.Signal(0x14)
+       SIGCONT   = syscall.Signal(0x13)
+       SIGEMT    = syscall.Signal(0x7)
+       SIGFPE    = syscall.Signal(0x8)
+       SIGHUP    = syscall.Signal(0x1)
+       SIGILL    = syscall.Signal(0x4)
+       SIGINFO   = syscall.Signal(0x1d)
+       SIGINT    = syscall.Signal(0x2)
+       SIGIO     = syscall.Signal(0x17)
+       SIGIOT    = syscall.Signal(0x6)
+       SIGKILL   = syscall.Signal(0x9)
+       SIGPIPE   = syscall.Signal(0xd)
+       SIGPROF   = syscall.Signal(0x1b)
+       SIGQUIT   = syscall.Signal(0x3)
+       SIGSEGV   = syscall.Signal(0xb)
+       SIGSTOP   = syscall.Signal(0x11)
+       SIGSYS    = syscall.Signal(0xc)
+       SIGTERM   = syscall.Signal(0xf)
+       SIGTHR    = syscall.Signal(0x20)
+       SIGTRAP   = syscall.Signal(0x5)
+       SIGTSTP   = syscall.Signal(0x12)
+       SIGTTIN   = syscall.Signal(0x15)
+       SIGTTOU   = syscall.Signal(0x16)
+       SIGURG    = syscall.Signal(0x10)
+       SIGUSR1   = syscall.Signal(0x1e)
+       SIGUSR2   = syscall.Signal(0x1f)
+       SIGVTALRM = syscall.Signal(0x1a)
+       SIGWINCH  = syscall.Signal(0x1c)
+       SIGXCPU   = syscall.Signal(0x18)
+       SIGXFSZ   = syscall.Signal(0x19)
+)
+
+// Error table
+var errors = [...]string{
+       1:  "operation not permitted",
+       2:  "no such file or directory",
+       3:  "no such process",
+       4:  "interrupted system call",
+       5:  "input/output error",
+       6:  "device not configured",
+       7:  "argument list too long",
+       8:  "exec format error",
+       9:  "bad file descriptor",
+       10: "no child processes",
+       11: "resource deadlock avoided",
+       12: "cannot allocate memory",
+       13: "permission denied",
+       14: "bad address",
+       15: "block device required",
+       16: "device busy",
+       17: "file exists",
+       18: "cross-device link",
+       19: "operation not supported by device",
+       20: "not a directory",
+       21: "is a directory",
+       22: "invalid argument",
+       23: "too many open files in system",
+       24: "too many open files",
+       25: "inappropriate ioctl for device",
+       26: "text file busy",
+       27: "file too large",
+       28: "no space left on device",
+       29: "illegal seek",
+       30: "read-only file system",
+       31: "too many links",
+       32: "broken pipe",
+       33: "numerical argument out of domain",
+       34: "result too large",
+       35: "resource temporarily unavailable",
+       36: "operation now in progress",
+       37: "operation already in progress",
+       38: "socket operation on non-socket",
+       39: "destination address required",
+       40: "message too long",
+       41: "protocol wrong type for socket",
+       42: "protocol not available",
+       43: "protocol not supported",
+       44: "socket type not supported",
+       45: "operation not supported",
+       46: "protocol family not supported",
+       47: "address family not supported by protocol family",
+       48: "address already in use",
+       49: "can't assign requested address",
+       50: "network is down",
+       51: "network is unreachable",
+       52: "network dropped connection on reset",
+       53: "software caused connection abort",
+       54: "connection reset by peer",
+       55: "no buffer space available",
+       56: "socket is already connected",
+       57: "socket is not connected",
+       58: "can't send after socket shutdown",
+       59: "too many references: can't splice",
+       60: "connection timed out",
+       61: "connection refused",
+       62: "too many levels of symbolic links",
+       63: "file name too long",
+       64: "host is down",
+       65: "no route to host",
+       66: "directory not empty",
+       67: "too many processes",
+       68: "too many users",
+       69: "disc quota exceeded",
+       70: "stale NFS file handle",
+       71: "too many levels of remote in path",
+       72: "RPC struct is bad",
+       73: "RPC version wrong",
+       74: "RPC prog. not avail",
+       75: "program version wrong",
+       76: "bad procedure for program",
+       77: "no locks available",
+       78: "function not implemented",
+       79: "inappropriate file type or format",
+       80: "authentication error",
+       81: "need authenticator",
+       82: "IPsec processing failure",
+       83: "attribute not found",
+       84: "illegal byte sequence",
+       85: "no medium found",
+       86: "wrong medium type",
+       87: "value too large to be stored in data type",
+       88: "operation canceled",
+       89: "identifier removed",
+       90: "no message of desired type",
+       91: "not supported",
+}
+
+// Signal table
+var signals = [...]string{
+       1:  "hangup",
+       2:  "interrupt",
+       3:  "quit",
+       4:  "illegal instruction",
+       5:  "trace/BPT trap",
+       6:  "abort trap",
+       7:  "EMT trap",
+       8:  "floating point exception",
+       9:  "killed",
+       10: "bus error",
+       11: "segmentation fault",
+       12: "bad system call",
+       13: "broken pipe",
+       14: "alarm clock",
+       15: "terminated",
+       16: "urgent I/O condition",
+       17: "stopped (signal)",
+       18: "stopped",
+       19: "continued",
+       20: "child exited",
+       21: "stopped (tty input)",
+       22: "stopped (tty output)",
+       23: "I/O possible",
+       24: "cputime limit exceeded",
+       25: "filesize limit exceeded",
+       26: "virtual timer expired",
+       27: "profiling timer expired",
+       28: "window size changes",
+       29: "information request",
+       30: "user defined signal 1",
+       31: "user defined signal 2",
+       32: "thread AST",
+}
diff --git a/vendor/golang.org/x/sys/unix/zerrors_openbsd_arm.go b/vendor/golang.org/x/sys/unix/zerrors_openbsd_arm.go
new file mode 100644 (file)
index 0000000..3ed0b26
--- /dev/null
@@ -0,0 +1,1586 @@
+// mkerrors.sh
+// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT
+
+// Created by cgo -godefs - DO NOT EDIT
+// cgo -godefs -- _const.go
+
+// +build arm,openbsd
+
+package unix
+
+import "syscall"
+
+const (
+       AF_APPLETALK                      = 0x10
+       AF_BLUETOOTH                      = 0x20
+       AF_CCITT                          = 0xa
+       AF_CHAOS                          = 0x5
+       AF_CNT                            = 0x15
+       AF_COIP                           = 0x14
+       AF_DATAKIT                        = 0x9
+       AF_DECnet                         = 0xc
+       AF_DLI                            = 0xd
+       AF_E164                           = 0x1a
+       AF_ECMA                           = 0x8
+       AF_ENCAP                          = 0x1c
+       AF_HYLINK                         = 0xf
+       AF_IMPLINK                        = 0x3
+       AF_INET                           = 0x2
+       AF_INET6                          = 0x18
+       AF_IPX                            = 0x17
+       AF_ISDN                           = 0x1a
+       AF_ISO                            = 0x7
+       AF_KEY                            = 0x1e
+       AF_LAT                            = 0xe
+       AF_LINK                           = 0x12
+       AF_LOCAL                          = 0x1
+       AF_MAX                            = 0x24
+       AF_MPLS                           = 0x21
+       AF_NATM                           = 0x1b
+       AF_NS                             = 0x6
+       AF_OSI                            = 0x7
+       AF_PUP                            = 0x4
+       AF_ROUTE                          = 0x11
+       AF_SIP                            = 0x1d
+       AF_SNA                            = 0xb
+       AF_UNIX                           = 0x1
+       AF_UNSPEC                         = 0x0
+       ARPHRD_ETHER                      = 0x1
+       ARPHRD_FRELAY                     = 0xf
+       ARPHRD_IEEE1394                   = 0x18
+       ARPHRD_IEEE802                    = 0x6
+       B0                                = 0x0
+       B110                              = 0x6e
+       B115200                           = 0x1c200
+       B1200                             = 0x4b0
+       B134                              = 0x86
+       B14400                            = 0x3840
+       B150                              = 0x96
+       B1800                             = 0x708
+       B19200                            = 0x4b00
+       B200                              = 0xc8
+       B230400                           = 0x38400
+       B2400                             = 0x960
+       B28800                            = 0x7080
+       B300                              = 0x12c
+       B38400                            = 0x9600
+       B4800                             = 0x12c0
+       B50                               = 0x32
+       B57600                            = 0xe100
+       B600                              = 0x258
+       B7200                             = 0x1c20
+       B75                               = 0x4b
+       B76800                            = 0x12c00
+       B9600                             = 0x2580
+       BIOCFLUSH                         = 0x20004268
+       BIOCGBLEN                         = 0x40044266
+       BIOCGDIRFILT                      = 0x4004427c
+       BIOCGDLT                          = 0x4004426a
+       BIOCGDLTLIST                      = 0xc008427b
+       BIOCGETIF                         = 0x4020426b
+       BIOCGFILDROP                      = 0x40044278
+       BIOCGHDRCMPLT                     = 0x40044274
+       BIOCGRSIG                         = 0x40044273
+       BIOCGRTIMEOUT                     = 0x400c426e
+       BIOCGSTATS                        = 0x4008426f
+       BIOCIMMEDIATE                     = 0x80044270
+       BIOCLOCK                          = 0x20004276
+       BIOCPROMISC                       = 0x20004269
+       BIOCSBLEN                         = 0xc0044266
+       BIOCSDIRFILT                      = 0x8004427d
+       BIOCSDLT                          = 0x8004427a
+       BIOCSETF                          = 0x80084267
+       BIOCSETIF                         = 0x8020426c
+       BIOCSETWF                         = 0x80084277
+       BIOCSFILDROP                      = 0x80044279
+       BIOCSHDRCMPLT                     = 0x80044275
+       BIOCSRSIG                         = 0x80044272
+       BIOCSRTIMEOUT                     = 0x800c426d
+       BIOCVERSION                       = 0x40044271
+       BPF_A                             = 0x10
+       BPF_ABS                           = 0x20
+       BPF_ADD                           = 0x0
+       BPF_ALIGNMENT                     = 0x4
+       BPF_ALU                           = 0x4
+       BPF_AND                           = 0x50
+       BPF_B                             = 0x10
+       BPF_DIRECTION_IN                  = 0x1
+       BPF_DIRECTION_OUT                 = 0x2
+       BPF_DIV                           = 0x30
+       BPF_H                             = 0x8
+       BPF_IMM                           = 0x0
+       BPF_IND                           = 0x40
+       BPF_JA                            = 0x0
+       BPF_JEQ                           = 0x10
+       BPF_JGE                           = 0x30
+       BPF_JGT                           = 0x20
+       BPF_JMP                           = 0x5
+       BPF_JSET                          = 0x40
+       BPF_K                             = 0x0
+       BPF_LD                            = 0x0
+       BPF_LDX                           = 0x1
+       BPF_LEN                           = 0x80
+       BPF_LSH                           = 0x60
+       BPF_MAJOR_VERSION                 = 0x1
+       BPF_MAXBUFSIZE                    = 0x200000
+       BPF_MAXINSNS                      = 0x200
+       BPF_MEM                           = 0x60
+       BPF_MEMWORDS                      = 0x10
+       BPF_MINBUFSIZE                    = 0x20
+       BPF_MINOR_VERSION                 = 0x1
+       BPF_MISC                          = 0x7
+       BPF_MSH                           = 0xa0
+       BPF_MUL                           = 0x20
+       BPF_NEG                           = 0x80
+       BPF_OR                            = 0x40
+       BPF_RELEASE                       = 0x30bb6
+       BPF_RET                           = 0x6
+       BPF_RSH                           = 0x70
+       BPF_ST                            = 0x2
+       BPF_STX                           = 0x3
+       BPF_SUB                           = 0x10
+       BPF_TAX                           = 0x0
+       BPF_TXA                           = 0x80
+       BPF_W                             = 0x0
+       BPF_X                             = 0x8
+       BRKINT                            = 0x2
+       CFLUSH                            = 0xf
+       CLOCAL                            = 0x8000
+       CREAD                             = 0x800
+       CS5                               = 0x0
+       CS6                               = 0x100
+       CS7                               = 0x200
+       CS8                               = 0x300
+       CSIZE                             = 0x300
+       CSTART                            = 0x11
+       CSTATUS                           = 0xff
+       CSTOP                             = 0x13
+       CSTOPB                            = 0x400
+       CSUSP                             = 0x1a
+       CTL_MAXNAME                       = 0xc
+       CTL_NET                           = 0x4
+       DIOCOSFPFLUSH                     = 0x2000444e
+       DLT_ARCNET                        = 0x7
+       DLT_ATM_RFC1483                   = 0xb
+       DLT_AX25                          = 0x3
+       DLT_CHAOS                         = 0x5
+       DLT_C_HDLC                        = 0x68
+       DLT_EN10MB                        = 0x1
+       DLT_EN3MB                         = 0x2
+       DLT_ENC                           = 0xd
+       DLT_FDDI                          = 0xa
+       DLT_IEEE802                       = 0x6
+       DLT_IEEE802_11                    = 0x69
+       DLT_IEEE802_11_RADIO              = 0x7f
+       DLT_LOOP                          = 0xc
+       DLT_MPLS                          = 0xdb
+       DLT_NULL                          = 0x0
+       DLT_PFLOG                         = 0x75
+       DLT_PFSYNC                        = 0x12
+       DLT_PPP                           = 0x9
+       DLT_PPP_BSDOS                     = 0x10
+       DLT_PPP_ETHER                     = 0x33
+       DLT_PPP_SERIAL                    = 0x32
+       DLT_PRONET                        = 0x4
+       DLT_RAW                           = 0xe
+       DLT_SLIP                          = 0x8
+       DLT_SLIP_BSDOS                    = 0xf
+       DT_BLK                            = 0x6
+       DT_CHR                            = 0x2
+       DT_DIR                            = 0x4
+       DT_FIFO                           = 0x1
+       DT_LNK                            = 0xa
+       DT_REG                            = 0x8
+       DT_SOCK                           = 0xc
+       DT_UNKNOWN                        = 0x0
+       ECHO                              = 0x8
+       ECHOCTL                           = 0x40
+       ECHOE                             = 0x2
+       ECHOK                             = 0x4
+       ECHOKE                            = 0x1
+       ECHONL                            = 0x10
+       ECHOPRT                           = 0x20
+       EMT_TAGOVF                        = 0x1
+       EMUL_ENABLED                      = 0x1
+       EMUL_NATIVE                       = 0x2
+       ENDRUNDISC                        = 0x9
+       ETHERMIN                          = 0x2e
+       ETHERMTU                          = 0x5dc
+       ETHERTYPE_8023                    = 0x4
+       ETHERTYPE_AARP                    = 0x80f3
+       ETHERTYPE_ACCTON                  = 0x8390
+       ETHERTYPE_AEONIC                  = 0x8036
+       ETHERTYPE_ALPHA                   = 0x814a
+       ETHERTYPE_AMBER                   = 0x6008
+       ETHERTYPE_AMOEBA                  = 0x8145
+       ETHERTYPE_AOE                     = 0x88a2
+       ETHERTYPE_APOLLO                  = 0x80f7
+       ETHERTYPE_APOLLODOMAIN            = 0x8019
+       ETHERTYPE_APPLETALK               = 0x809b
+       ETHERTYPE_APPLITEK                = 0x80c7
+       ETHERTYPE_ARGONAUT                = 0x803a
+       ETHERTYPE_ARP                     = 0x806
+       ETHERTYPE_AT                      = 0x809b
+       ETHERTYPE_ATALK                   = 0x809b
+       ETHERTYPE_ATOMIC                  = 0x86df
+       ETHERTYPE_ATT                     = 0x8069
+       ETHERTYPE_ATTSTANFORD             = 0x8008
+       ETHERTYPE_AUTOPHON                = 0x806a
+       ETHERTYPE_AXIS                    = 0x8856
+       ETHERTYPE_BCLOOP                  = 0x9003
+       ETHERTYPE_BOFL                    = 0x8102
+       ETHERTYPE_CABLETRON               = 0x7034
+       ETHERTYPE_CHAOS                   = 0x804
+       ETHERTYPE_COMDESIGN               = 0x806c
+       ETHERTYPE_COMPUGRAPHIC            = 0x806d
+       ETHERTYPE_COUNTERPOINT            = 0x8062
+       ETHERTYPE_CRONUS                  = 0x8004
+       ETHERTYPE_CRONUSVLN               = 0x8003
+       ETHERTYPE_DCA                     = 0x1234
+       ETHERTYPE_DDE                     = 0x807b
+       ETHERTYPE_DEBNI                   = 0xaaaa
+       ETHERTYPE_DECAM                   = 0x8048
+       ETHERTYPE_DECCUST                 = 0x6006
+       ETHERTYPE_DECDIAG                 = 0x6005
+       ETHERTYPE_DECDNS                  = 0x803c
+       ETHERTYPE_DECDTS                  = 0x803e
+       ETHERTYPE_DECEXPER                = 0x6000
+       ETHERTYPE_DECLAST                 = 0x8041
+       ETHERTYPE_DECLTM                  = 0x803f
+       ETHERTYPE_DECMUMPS                = 0x6009
+       ETHERTYPE_DECNETBIOS              = 0x8040
+       ETHERTYPE_DELTACON                = 0x86de
+       ETHERTYPE_DIDDLE                  = 0x4321
+       ETHERTYPE_DLOG1                   = 0x660
+       ETHERTYPE_DLOG2                   = 0x661
+       ETHERTYPE_DN                      = 0x6003
+       ETHERTYPE_DOGFIGHT                = 0x1989
+       ETHERTYPE_DSMD                    = 0x8039
+       ETHERTYPE_ECMA                    = 0x803
+       ETHERTYPE_ENCRYPT                 = 0x803d
+       ETHERTYPE_ES                      = 0x805d
+       ETHERTYPE_EXCELAN                 = 0x8010
+       ETHERTYPE_EXPERDATA               = 0x8049
+       ETHERTYPE_FLIP                    = 0x8146
+       ETHERTYPE_FLOWCONTROL             = 0x8808
+       ETHERTYPE_FRARP                   = 0x808
+       ETHERTYPE_GENDYN                  = 0x8068
+       ETHERTYPE_HAYES                   = 0x8130
+       ETHERTYPE_HIPPI_FP                = 0x8180
+       ETHERTYPE_HITACHI                 = 0x8820
+       ETHERTYPE_HP                      = 0x8005
+       ETHERTYPE_IEEEPUP                 = 0xa00
+       ETHERTYPE_IEEEPUPAT               = 0xa01
+       ETHERTYPE_IMLBL                   = 0x4c42
+       ETHERTYPE_IMLBLDIAG               = 0x424c
+       ETHERTYPE_IP                      = 0x800
+       ETHERTYPE_IPAS                    = 0x876c
+       ETHERTYPE_IPV6                    = 0x86dd
+       ETHERTYPE_IPX                     = 0x8137
+       ETHERTYPE_IPXNEW                  = 0x8037
+       ETHERTYPE_KALPANA                 = 0x8582
+       ETHERTYPE_LANBRIDGE               = 0x8038
+       ETHERTYPE_LANPROBE                = 0x8888
+       ETHERTYPE_LAT                     = 0x6004
+       ETHERTYPE_LBACK                   = 0x9000
+       ETHERTYPE_LITTLE                  = 0x8060
+       ETHERTYPE_LLDP                    = 0x88cc
+       ETHERTYPE_LOGICRAFT               = 0x8148
+       ETHERTYPE_LOOPBACK                = 0x9000
+       ETHERTYPE_MATRA                   = 0x807a
+       ETHERTYPE_MAX                     = 0xffff
+       ETHERTYPE_MERIT                   = 0x807c
+       ETHERTYPE_MICP                    = 0x873a
+       ETHERTYPE_MOPDL                   = 0x6001
+       ETHERTYPE_MOPRC                   = 0x6002
+       ETHERTYPE_MOTOROLA                = 0x818d
+       ETHERTYPE_MPLS                    = 0x8847
+       ETHERTYPE_MPLS_MCAST              = 0x8848
+       ETHERTYPE_MUMPS                   = 0x813f
+       ETHERTYPE_NBPCC                   = 0x3c04
+       ETHERTYPE_NBPCLAIM                = 0x3c09
+       ETHERTYPE_NBPCLREQ                = 0x3c05
+       ETHERTYPE_NBPCLRSP                = 0x3c06
+       ETHERTYPE_NBPCREQ                 = 0x3c02
+       ETHERTYPE_NBPCRSP                 = 0x3c03
+       ETHERTYPE_NBPDG                   = 0x3c07
+       ETHERTYPE_NBPDGB                  = 0x3c08
+       ETHERTYPE_NBPDLTE                 = 0x3c0a
+       ETHERTYPE_NBPRAR                  = 0x3c0c
+       ETHERTYPE_NBPRAS                  = 0x3c0b
+       ETHERTYPE_NBPRST                  = 0x3c0d
+       ETHERTYPE_NBPSCD                  = 0x3c01
+       ETHERTYPE_NBPVCD                  = 0x3c00
+       ETHERTYPE_NBS                     = 0x802
+       ETHERTYPE_NCD                     = 0x8149
+       ETHERTYPE_NESTAR                  = 0x8006
+       ETHERTYPE_NETBEUI                 = 0x8191
+       ETHERTYPE_NOVELL                  = 0x8138
+       ETHERTYPE_NS                      = 0x600
+       ETHERTYPE_NSAT                    = 0x601
+       ETHERTYPE_NSCOMPAT                = 0x807
+       ETHERTYPE_NTRAILER                = 0x10
+       ETHERTYPE_OS9                     = 0x7007
+       ETHERTYPE_OS9NET                  = 0x7009
+       ETHERTYPE_PACER                   = 0x80c6
+       ETHERTYPE_PAE                     = 0x888e
+       ETHERTYPE_PCS                     = 0x4242
+       ETHERTYPE_PLANNING                = 0x8044
+       ETHERTYPE_PPP                     = 0x880b
+       ETHERTYPE_PPPOE                   = 0x8864
+       ETHERTYPE_PPPOEDISC               = 0x8863
+       ETHERTYPE_PRIMENTS                = 0x7031
+       ETHERTYPE_PUP                     = 0x200
+       ETHERTYPE_PUPAT                   = 0x200
+       ETHERTYPE_QINQ                    = 0x88a8
+       ETHERTYPE_RACAL                   = 0x7030
+       ETHERTYPE_RATIONAL                = 0x8150
+       ETHERTYPE_RAWFR                   = 0x6559
+       ETHERTYPE_RCL                     = 0x1995
+       ETHERTYPE_RDP                     = 0x8739
+       ETHERTYPE_RETIX                   = 0x80f2
+       ETHERTYPE_REVARP                  = 0x8035
+       ETHERTYPE_SCA                     = 0x6007
+       ETHERTYPE_SECTRA                  = 0x86db
+       ETHERTYPE_SECUREDATA              = 0x876d
+       ETHERTYPE_SGITW                   = 0x817e
+       ETHERTYPE_SG_BOUNCE               = 0x8016
+       ETHERTYPE_SG_DIAG                 = 0x8013
+       ETHERTYPE_SG_NETGAMES             = 0x8014
+       ETHERTYPE_SG_RESV                 = 0x8015
+       ETHERTYPE_SIMNET                  = 0x5208
+       ETHERTYPE_SLOW                    = 0x8809
+       ETHERTYPE_SNA                     = 0x80d5
+       ETHERTYPE_SNMP                    = 0x814c
+       ETHERTYPE_SONIX                   = 0xfaf5
+       ETHERTYPE_SPIDER                  = 0x809f
+       ETHERTYPE_SPRITE                  = 0x500
+       ETHERTYPE_STP                     = 0x8181
+       ETHERTYPE_TALARIS                 = 0x812b
+       ETHERTYPE_TALARISMC               = 0x852b
+       ETHERTYPE_TCPCOMP                 = 0x876b
+       ETHERTYPE_TCPSM                   = 0x9002
+       ETHERTYPE_TEC                     = 0x814f
+       ETHERTYPE_TIGAN                   = 0x802f
+       ETHERTYPE_TRAIL                   = 0x1000
+       ETHERTYPE_TRANSETHER              = 0x6558
+       ETHERTYPE_TYMSHARE                = 0x802e
+       ETHERTYPE_UBBST                   = 0x7005
+       ETHERTYPE_UBDEBUG                 = 0x900
+       ETHERTYPE_UBDIAGLOOP              = 0x7002
+       ETHERTYPE_UBDL                    = 0x7000
+       ETHERTYPE_UBNIU                   = 0x7001
+       ETHERTYPE_UBNMC                   = 0x7003
+       ETHERTYPE_VALID                   = 0x1600
+       ETHERTYPE_VARIAN                  = 0x80dd
+       ETHERTYPE_VAXELN                  = 0x803b
+       ETHERTYPE_VEECO                   = 0x8067
+       ETHERTYPE_VEXP                    = 0x805b
+       ETHERTYPE_VGLAB                   = 0x8131
+       ETHERTYPE_VINES                   = 0xbad
+       ETHERTYPE_VINESECHO               = 0xbaf
+       ETHERTYPE_VINESLOOP               = 0xbae
+       ETHERTYPE_VITAL                   = 0xff00
+       ETHERTYPE_VLAN                    = 0x8100
+       ETHERTYPE_VLTLMAN                 = 0x8080
+       ETHERTYPE_VPROD                   = 0x805c
+       ETHERTYPE_VURESERVED              = 0x8147
+       ETHERTYPE_WATERLOO                = 0x8130
+       ETHERTYPE_WELLFLEET               = 0x8103
+       ETHERTYPE_X25                     = 0x805
+       ETHERTYPE_X75                     = 0x801
+       ETHERTYPE_XNSSM                   = 0x9001
+       ETHERTYPE_XTP                     = 0x817d
+       ETHER_ADDR_LEN                    = 0x6
+       ETHER_ALIGN                       = 0x2
+       ETHER_CRC_LEN                     = 0x4
+       ETHER_CRC_POLY_BE                 = 0x4c11db6
+       ETHER_CRC_POLY_LE                 = 0xedb88320
+       ETHER_HDR_LEN                     = 0xe
+       ETHER_MAX_DIX_LEN                 = 0x600
+       ETHER_MAX_LEN                     = 0x5ee
+       ETHER_MIN_LEN                     = 0x40
+       ETHER_TYPE_LEN                    = 0x2
+       ETHER_VLAN_ENCAP_LEN              = 0x4
+       EVFILT_AIO                        = -0x3
+       EVFILT_PROC                       = -0x5
+       EVFILT_READ                       = -0x1
+       EVFILT_SIGNAL                     = -0x6
+       EVFILT_SYSCOUNT                   = 0x7
+       EVFILT_TIMER                      = -0x7
+       EVFILT_VNODE                      = -0x4
+       EVFILT_WRITE                      = -0x2
+       EV_ADD                            = 0x1
+       EV_CLEAR                          = 0x20
+       EV_DELETE                         = 0x2
+       EV_DISABLE                        = 0x8
+       EV_ENABLE                         = 0x4
+       EV_EOF                            = 0x8000
+       EV_ERROR                          = 0x4000
+       EV_FLAG1                          = 0x2000
+       EV_ONESHOT                        = 0x10
+       EV_SYSFLAGS                       = 0xf000
+       EXTA                              = 0x4b00
+       EXTB                              = 0x9600
+       EXTPROC                           = 0x800
+       FD_CLOEXEC                        = 0x1
+       FD_SETSIZE                        = 0x400
+       FLUSHO                            = 0x800000
+       F_DUPFD                           = 0x0
+       F_DUPFD_CLOEXEC                   = 0xa
+       F_GETFD                           = 0x1
+       F_GETFL                           = 0x3
+       F_GETLK                           = 0x7
+       F_GETOWN                          = 0x5
+       F_RDLCK                           = 0x1
+       F_SETFD                           = 0x2
+       F_SETFL                           = 0x4
+       F_SETLK                           = 0x8
+       F_SETLKW                          = 0x9
+       F_SETOWN                          = 0x6
+       F_UNLCK                           = 0x2
+       F_WRLCK                           = 0x3
+       HUPCL                             = 0x4000
+       ICANON                            = 0x100
+       ICMP6_FILTER                      = 0x12
+       ICRNL                             = 0x100
+       IEXTEN                            = 0x400
+       IFAN_ARRIVAL                      = 0x0
+       IFAN_DEPARTURE                    = 0x1
+       IFA_ROUTE                         = 0x1
+       IFF_ALLMULTI                      = 0x200
+       IFF_BROADCAST                     = 0x2
+       IFF_CANTCHANGE                    = 0x8e52
+       IFF_DEBUG                         = 0x4
+       IFF_LINK0                         = 0x1000
+       IFF_LINK1                         = 0x2000
+       IFF_LINK2                         = 0x4000
+       IFF_LOOPBACK                      = 0x8
+       IFF_MULTICAST                     = 0x8000
+       IFF_NOARP                         = 0x80
+       IFF_NOTRAILERS                    = 0x20
+       IFF_OACTIVE                       = 0x400
+       IFF_POINTOPOINT                   = 0x10
+       IFF_PROMISC                       = 0x100
+       IFF_RUNNING                       = 0x40
+       IFF_SIMPLEX                       = 0x800
+       IFF_UP                            = 0x1
+       IFNAMSIZ                          = 0x10
+       IFT_1822                          = 0x2
+       IFT_A12MPPSWITCH                  = 0x82
+       IFT_AAL2                          = 0xbb
+       IFT_AAL5                          = 0x31
+       IFT_ADSL                          = 0x5e
+       IFT_AFLANE8023                    = 0x3b
+       IFT_AFLANE8025                    = 0x3c
+       IFT_ARAP                          = 0x58
+       IFT_ARCNET                        = 0x23
+       IFT_ARCNETPLUS                    = 0x24
+       IFT_ASYNC                         = 0x54
+       IFT_ATM                           = 0x25
+       IFT_ATMDXI                        = 0x69
+       IFT_ATMFUNI                       = 0x6a
+       IFT_ATMIMA                        = 0x6b
+       IFT_ATMLOGICAL                    = 0x50
+       IFT_ATMRADIO                      = 0xbd
+       IFT_ATMSUBINTERFACE               = 0x86
+       IFT_ATMVCIENDPT                   = 0xc2
+       IFT_ATMVIRTUAL                    = 0x95
+       IFT_BGPPOLICYACCOUNTING           = 0xa2
+       IFT_BLUETOOTH                     = 0xf8
+       IFT_BRIDGE                        = 0xd1
+       IFT_BSC                           = 0x53
+       IFT_CARP                          = 0xf7
+       IFT_CCTEMUL                       = 0x3d
+       IFT_CEPT                          = 0x13
+       IFT_CES                           = 0x85
+       IFT_CHANNEL                       = 0x46
+       IFT_CNR                           = 0x55
+       IFT_COFFEE                        = 0x84
+       IFT_COMPOSITELINK                 = 0x9b
+       IFT_DCN                           = 0x8d
+       IFT_DIGITALPOWERLINE              = 0x8a
+       IFT_DIGITALWRAPPEROVERHEADCHANNEL = 0xba
+       IFT_DLSW                          = 0x4a
+       IFT_DOCSCABLEDOWNSTREAM           = 0x80
+       IFT_DOCSCABLEMACLAYER             = 0x7f
+       IFT_DOCSCABLEUPSTREAM             = 0x81
+       IFT_DOCSCABLEUPSTREAMCHANNEL      = 0xcd
+       IFT_DS0                           = 0x51
+       IFT_DS0BUNDLE                     = 0x52
+       IFT_DS1FDL                        = 0xaa
+       IFT_DS3                           = 0x1e
+       IFT_DTM                           = 0x8c
+       IFT_DUMMY                         = 0xf1
+       IFT_DVBASILN                      = 0xac
+       IFT_DVBASIOUT                     = 0xad
+       IFT_DVBRCCDOWNSTREAM              = 0x93
+       IFT_DVBRCCMACLAYER                = 0x92
+       IFT_DVBRCCUPSTREAM                = 0x94
+       IFT_ECONET                        = 0xce
+       IFT_ENC                           = 0xf4
+       IFT_EON                           = 0x19
+       IFT_EPLRS                         = 0x57
+       IFT_ESCON                         = 0x49
+       IFT_ETHER                         = 0x6
+       IFT_FAITH                         = 0xf3
+       IFT_FAST                          = 0x7d
+       IFT_FASTETHER                     = 0x3e
+       IFT_FASTETHERFX                   = 0x45
+       IFT_FDDI                          = 0xf
+       IFT_FIBRECHANNEL                  = 0x38
+       IFT_FRAMERELAYINTERCONNECT        = 0x3a
+       IFT_FRAMERELAYMPI                 = 0x5c
+       IFT_FRDLCIENDPT                   = 0xc1
+       IFT_FRELAY                        = 0x20
+       IFT_FRELAYDCE                     = 0x2c
+       IFT_FRF16MFRBUNDLE                = 0xa3
+       IFT_FRFORWARD                     = 0x9e
+       IFT_G703AT2MB                     = 0x43
+       IFT_G703AT64K                     = 0x42
+       IFT_GIF                           = 0xf0
+       IFT_GIGABITETHERNET               = 0x75
+       IFT_GR303IDT                      = 0xb2
+       IFT_GR303RDT                      = 0xb1
+       IFT_H323GATEKEEPER                = 0xa4
+       IFT_H323PROXY                     = 0xa5
+       IFT_HDH1822                       = 0x3
+       IFT_HDLC                          = 0x76
+       IFT_HDSL2                         = 0xa8
+       IFT_HIPERLAN2                     = 0xb7
+       IFT_HIPPI                         = 0x2f
+       IFT_HIPPIINTERFACE                = 0x39
+       IFT_HOSTPAD                       = 0x5a
+       IFT_HSSI                          = 0x2e
+       IFT_HY                            = 0xe
+       IFT_IBM370PARCHAN                 = 0x48
+       IFT_IDSL                          = 0x9a
+       IFT_IEEE1394                      = 0x90
+       IFT_IEEE80211                     = 0x47
+       IFT_IEEE80212                     = 0x37
+       IFT_IEEE8023ADLAG                 = 0xa1
+       IFT_IFGSN                         = 0x91
+       IFT_IMT                           = 0xbe
+       IFT_INFINIBAND                    = 0xc7
+       IFT_INTERLEAVE                    = 0x7c
+       IFT_IP                            = 0x7e
+       IFT_IPFORWARD                     = 0x8e
+       IFT_IPOVERATM                     = 0x72
+       IFT_IPOVERCDLC                    = 0x6d
+       IFT_IPOVERCLAW                    = 0x6e
+       IFT_IPSWITCH                      = 0x4e
+       IFT_ISDN                          = 0x3f
+       IFT_ISDNBASIC                     = 0x14
+       IFT_ISDNPRIMARY                   = 0x15
+       IFT_ISDNS                         = 0x4b
+       IFT_ISDNU                         = 0x4c
+       IFT_ISO88022LLC                   = 0x29
+       IFT_ISO88023                      = 0x7
+       IFT_ISO88024                      = 0x8
+       IFT_ISO88025                      = 0x9
+       IFT_ISO88025CRFPINT               = 0x62
+       IFT_ISO88025DTR                   = 0x56
+       IFT_ISO88025FIBER                 = 0x73
+       IFT_ISO88026                      = 0xa
+       IFT_ISUP                          = 0xb3
+       IFT_L2VLAN                        = 0x87
+       IFT_L3IPVLAN                      = 0x88
+       IFT_L3IPXVLAN                     = 0x89
+       IFT_LAPB                          = 0x10
+       IFT_LAPD                          = 0x4d
+       IFT_LAPF                          = 0x77
+       IFT_LINEGROUP                     = 0xd2
+       IFT_LOCALTALK                     = 0x2a
+       IFT_LOOP                          = 0x18
+       IFT_MEDIAMAILOVERIP               = 0x8b
+       IFT_MFSIGLINK                     = 0xa7
+       IFT_MIOX25                        = 0x26
+       IFT_MODEM                         = 0x30
+       IFT_MPC                           = 0x71
+       IFT_MPLS                          = 0xa6
+       IFT_MPLSTUNNEL                    = 0x96
+       IFT_MSDSL                         = 0x8f
+       IFT_MVL                           = 0xbf
+       IFT_MYRINET                       = 0x63
+       IFT_NFAS                          = 0xaf
+       IFT_NSIP                          = 0x1b
+       IFT_OPTICALCHANNEL                = 0xc3
+       IFT_OPTICALTRANSPORT              = 0xc4
+       IFT_OTHER                         = 0x1
+       IFT_P10                           = 0xc
+       IFT_P80                           = 0xd
+       IFT_PARA                          = 0x22
+       IFT_PFLOG                         = 0xf5
+       IFT_PFLOW                         = 0xf9
+       IFT_PFSYNC                        = 0xf6
+       IFT_PLC                           = 0xae
+       IFT_PON155                        = 0xcf
+       IFT_PON622                        = 0xd0
+       IFT_POS                           = 0xab
+       IFT_PPP                           = 0x17
+       IFT_PPPMULTILINKBUNDLE            = 0x6c
+       IFT_PROPATM                       = 0xc5
+       IFT_PROPBWAP2MP                   = 0xb8
+       IFT_PROPCNLS                      = 0x59
+       IFT_PROPDOCSWIRELESSDOWNSTREAM    = 0xb5
+       IFT_PROPDOCSWIRELESSMACLAYER      = 0xb4
+       IFT_PROPDOCSWIRELESSUPSTREAM      = 0xb6
+       IFT_PROPMUX                       = 0x36
+       IFT_PROPVIRTUAL                   = 0x35
+       IFT_PROPWIRELESSP2P               = 0x9d
+       IFT_PTPSERIAL                     = 0x16
+       IFT_PVC                           = 0xf2
+       IFT_Q2931                         = 0xc9
+       IFT_QLLC                          = 0x44
+       IFT_RADIOMAC                      = 0xbc
+       IFT_RADSL                         = 0x5f
+       IFT_REACHDSL                      = 0xc0
+       IFT_RFC1483                       = 0x9f
+       IFT_RS232                         = 0x21
+       IFT_RSRB                          = 0x4f
+       IFT_SDLC                          = 0x11
+       IFT_SDSL                          = 0x60
+       IFT_SHDSL                         = 0xa9
+       IFT_SIP                           = 0x1f
+       IFT_SIPSIG                        = 0xcc
+       IFT_SIPTG                         = 0xcb
+       IFT_SLIP                          = 0x1c
+       IFT_SMDSDXI                       = 0x2b
+       IFT_SMDSICIP                      = 0x34
+       IFT_SONET                         = 0x27
+       IFT_SONETOVERHEADCHANNEL          = 0xb9
+       IFT_SONETPATH                     = 0x32
+       IFT_SONETVT                       = 0x33
+       IFT_SRP                           = 0x97
+       IFT_SS7SIGLINK                    = 0x9c
+       IFT_STACKTOSTACK                  = 0x6f
+       IFT_STARLAN                       = 0xb
+       IFT_T1                            = 0x12
+       IFT_TDLC                          = 0x74
+       IFT_TELINK                        = 0xc8
+       IFT_TERMPAD                       = 0x5b
+       IFT_TR008                         = 0xb0
+       IFT_TRANSPHDLC                    = 0x7b
+       IFT_TUNNEL                        = 0x83
+       IFT_ULTRA                         = 0x1d
+       IFT_USB                           = 0xa0
+       IFT_V11                           = 0x40
+       IFT_V35                           = 0x2d
+       IFT_V36                           = 0x41
+       IFT_V37                           = 0x78
+       IFT_VDSL                          = 0x61
+       IFT_VIRTUALIPADDRESS              = 0x70
+       IFT_VIRTUALTG                     = 0xca
+       IFT_VOICEDID                      = 0xd5
+       IFT_VOICEEM                       = 0x64
+       IFT_VOICEEMFGD                    = 0xd3
+       IFT_VOICEENCAP                    = 0x67
+       IFT_VOICEFGDEANA                  = 0xd4
+       IFT_VOICEFXO                      = 0x65
+       IFT_VOICEFXS                      = 0x66
+       IFT_VOICEOVERATM                  = 0x98
+       IFT_VOICEOVERCABLE                = 0xc6
+       IFT_VOICEOVERFRAMERELAY           = 0x99
+       IFT_VOICEOVERIP                   = 0x68
+       IFT_X213                          = 0x5d
+       IFT_X25                           = 0x5
+       IFT_X25DDN                        = 0x4
+       IFT_X25HUNTGROUP                  = 0x7a
+       IFT_X25MLP                        = 0x79
+       IFT_X25PLE                        = 0x28
+       IFT_XETHER                        = 0x1a
+       IGNBRK                            = 0x1
+       IGNCR                             = 0x80
+       IGNPAR                            = 0x4
+       IMAXBEL                           = 0x2000
+       INLCR                             = 0x40
+       INPCK                             = 0x10
+       IN_CLASSA_HOST                    = 0xffffff
+       IN_CLASSA_MAX                     = 0x80
+       IN_CLASSA_NET                     = 0xff000000
+       IN_CLASSA_NSHIFT                  = 0x18
+       IN_CLASSB_HOST                    = 0xffff
+       IN_CLASSB_MAX                     = 0x10000
+       IN_CLASSB_NET                     = 0xffff0000
+       IN_CLASSB_NSHIFT                  = 0x10
+       IN_CLASSC_HOST                    = 0xff
+       IN_CLASSC_NET                     = 0xffffff00
+       IN_CLASSC_NSHIFT                  = 0x8
+       IN_CLASSD_HOST                    = 0xfffffff
+       IN_CLASSD_NET                     = 0xf0000000
+       IN_CLASSD_NSHIFT                  = 0x1c
+       IN_LOOPBACKNET                    = 0x7f
+       IN_RFC3021_HOST                   = 0x1
+       IN_RFC3021_NET                    = 0xfffffffe
+       IN_RFC3021_NSHIFT                 = 0x1f
+       IPPROTO_AH                        = 0x33
+       IPPROTO_CARP                      = 0x70
+       IPPROTO_DIVERT                    = 0x102
+       IPPROTO_DIVERT_INIT               = 0x2
+       IPPROTO_DIVERT_RESP               = 0x1
+       IPPROTO_DONE                      = 0x101
+       IPPROTO_DSTOPTS                   = 0x3c
+       IPPROTO_EGP                       = 0x8
+       IPPROTO_ENCAP                     = 0x62
+       IPPROTO_EON                       = 0x50
+       IPPROTO_ESP                       = 0x32
+       IPPROTO_ETHERIP                   = 0x61
+       IPPROTO_FRAGMENT                  = 0x2c
+       IPPROTO_GGP                       = 0x3
+       IPPROTO_GRE                       = 0x2f
+       IPPROTO_HOPOPTS                   = 0x0
+       IPPROTO_ICMP                      = 0x1
+       IPPROTO_ICMPV6                    = 0x3a
+       IPPROTO_IDP                       = 0x16
+       IPPROTO_IGMP                      = 0x2
+       IPPROTO_IP                        = 0x0
+       IPPROTO_IPCOMP                    = 0x6c
+       IPPROTO_IPIP                      = 0x4
+       IPPROTO_IPV4                      = 0x4
+       IPPROTO_IPV6                      = 0x29
+       IPPROTO_MAX                       = 0x100
+       IPPROTO_MAXID                     = 0x103
+       IPPROTO_MOBILE                    = 0x37
+       IPPROTO_MPLS                      = 0x89
+       IPPROTO_NONE                      = 0x3b
+       IPPROTO_PFSYNC                    = 0xf0
+       IPPROTO_PIM                       = 0x67
+       IPPROTO_PUP                       = 0xc
+       IPPROTO_RAW                       = 0xff
+       IPPROTO_ROUTING                   = 0x2b
+       IPPROTO_RSVP                      = 0x2e
+       IPPROTO_TCP                       = 0x6
+       IPPROTO_TP                        = 0x1d
+       IPPROTO_UDP                       = 0x11
+       IPV6_AUTH_LEVEL                   = 0x35
+       IPV6_AUTOFLOWLABEL                = 0x3b
+       IPV6_CHECKSUM                     = 0x1a
+       IPV6_DEFAULT_MULTICAST_HOPS       = 0x1
+       IPV6_DEFAULT_MULTICAST_LOOP       = 0x1
+       IPV6_DEFHLIM                      = 0x40
+       IPV6_DONTFRAG                     = 0x3e
+       IPV6_DSTOPTS                      = 0x32
+       IPV6_ESP_NETWORK_LEVEL            = 0x37
+       IPV6_ESP_TRANS_LEVEL              = 0x36
+       IPV6_FAITH                        = 0x1d
+       IPV6_FLOWINFO_MASK                = 0xffffff0f
+       IPV6_FLOWLABEL_MASK               = 0xffff0f00
+       IPV6_FRAGTTL                      = 0x78
+       IPV6_HLIMDEC                      = 0x1
+       IPV6_HOPLIMIT                     = 0x2f
+       IPV6_HOPOPTS                      = 0x31
+       IPV6_IPCOMP_LEVEL                 = 0x3c
+       IPV6_JOIN_GROUP                   = 0xc
+       IPV6_LEAVE_GROUP                  = 0xd
+       IPV6_MAXHLIM                      = 0xff
+       IPV6_MAXPACKET                    = 0xffff
+       IPV6_MMTU                         = 0x500
+       IPV6_MULTICAST_HOPS               = 0xa
+       IPV6_MULTICAST_IF                 = 0x9
+       IPV6_MULTICAST_LOOP               = 0xb
+       IPV6_NEXTHOP                      = 0x30
+       IPV6_OPTIONS                      = 0x1
+       IPV6_PATHMTU                      = 0x2c
+       IPV6_PIPEX                        = 0x3f
+       IPV6_PKTINFO                      = 0x2e
+       IPV6_PORTRANGE                    = 0xe
+       IPV6_PORTRANGE_DEFAULT            = 0x0
+       IPV6_PORTRANGE_HIGH               = 0x1
+       IPV6_PORTRANGE_LOW                = 0x2
+       IPV6_RECVDSTOPTS                  = 0x28
+       IPV6_RECVDSTPORT                  = 0x40
+       IPV6_RECVHOPLIMIT                 = 0x25
+       IPV6_RECVHOPOPTS                  = 0x27
+       IPV6_RECVPATHMTU                  = 0x2b
+       IPV6_RECVPKTINFO                  = 0x24
+       IPV6_RECVRTHDR                    = 0x26
+       IPV6_RECVTCLASS                   = 0x39
+       IPV6_RTABLE                       = 0x1021
+       IPV6_RTHDR                        = 0x33
+       IPV6_RTHDRDSTOPTS                 = 0x23
+       IPV6_RTHDR_LOOSE                  = 0x0
+       IPV6_RTHDR_STRICT                 = 0x1
+       IPV6_RTHDR_TYPE_0                 = 0x0
+       IPV6_SOCKOPT_RESERVED1            = 0x3
+       IPV6_TCLASS                       = 0x3d
+       IPV6_UNICAST_HOPS                 = 0x4
+       IPV6_USE_MIN_MTU                  = 0x2a
+       IPV6_V6ONLY                       = 0x1b
+       IPV6_VERSION                      = 0x60
+       IPV6_VERSION_MASK                 = 0xf0
+       IP_ADD_MEMBERSHIP                 = 0xc
+       IP_AUTH_LEVEL                     = 0x14
+       IP_DEFAULT_MULTICAST_LOOP         = 0x1
+       IP_DEFAULT_MULTICAST_TTL          = 0x1
+       IP_DF                             = 0x4000
+       IP_DIVERTFL                       = 0x1022
+       IP_DROP_MEMBERSHIP                = 0xd
+       IP_ESP_NETWORK_LEVEL              = 0x16
+       IP_ESP_TRANS_LEVEL                = 0x15
+       IP_HDRINCL                        = 0x2
+       IP_IPCOMP_LEVEL                   = 0x1d
+       IP_IPSECFLOWINFO                  = 0x24
+       IP_IPSEC_LOCAL_AUTH               = 0x1b
+       IP_IPSEC_LOCAL_CRED               = 0x19
+       IP_IPSEC_LOCAL_ID                 = 0x17
+       IP_IPSEC_REMOTE_AUTH              = 0x1c
+       IP_IPSEC_REMOTE_CRED              = 0x1a
+       IP_IPSEC_REMOTE_ID                = 0x18
+       IP_MAXPACKET                      = 0xffff
+       IP_MAX_MEMBERSHIPS                = 0xfff
+       IP_MF                             = 0x2000
+       IP_MINTTL                         = 0x20
+       IP_MIN_MEMBERSHIPS                = 0xf
+       IP_MSS                            = 0x240
+       IP_MULTICAST_IF                   = 0x9
+       IP_MULTICAST_LOOP                 = 0xb
+       IP_MULTICAST_TTL                  = 0xa
+       IP_OFFMASK                        = 0x1fff
+       IP_OPTIONS                        = 0x1
+       IP_PIPEX                          = 0x22
+       IP_PORTRANGE                      = 0x13
+       IP_PORTRANGE_DEFAULT              = 0x0
+       IP_PORTRANGE_HIGH                 = 0x1
+       IP_PORTRANGE_LOW                  = 0x2
+       IP_RECVDSTADDR                    = 0x7
+       IP_RECVDSTPORT                    = 0x21
+       IP_RECVIF                         = 0x1e
+       IP_RECVOPTS                       = 0x5
+       IP_RECVRETOPTS                    = 0x6
+       IP_RECVRTABLE                     = 0x23
+       IP_RECVTTL                        = 0x1f
+       IP_RETOPTS                        = 0x8
+       IP_RF                             = 0x8000
+       IP_RTABLE                         = 0x1021
+       IP_TOS                            = 0x3
+       IP_TTL                            = 0x4
+       ISIG                              = 0x80
+       ISTRIP                            = 0x20
+       IXANY                             = 0x800
+       IXOFF                             = 0x400
+       IXON                              = 0x200
+       LCNT_OVERLOAD_FLUSH               = 0x6
+       LOCK_EX                           = 0x2
+       LOCK_NB                           = 0x4
+       LOCK_SH                           = 0x1
+       LOCK_UN                           = 0x8
+       MADV_DONTNEED                     = 0x4
+       MADV_FREE                         = 0x6
+       MADV_NORMAL                       = 0x0
+       MADV_RANDOM                       = 0x1
+       MADV_SEQUENTIAL                   = 0x2
+       MADV_SPACEAVAIL                   = 0x5
+       MADV_WILLNEED                     = 0x3
+       MAP_ANON                          = 0x1000
+       MAP_ANONYMOUS                     = 0x1000
+       MAP_COPY                          = 0x2
+       MAP_FILE                          = 0x0
+       MAP_FIXED                         = 0x10
+       MAP_FLAGMASK                      = 0x3ff7
+       MAP_HASSEMAPHORE                  = 0x0
+       MAP_INHERIT                       = 0x0
+       MAP_INHERIT_COPY                  = 0x1
+       MAP_INHERIT_NONE                  = 0x2
+       MAP_INHERIT_SHARE                 = 0x0
+       MAP_INHERIT_ZERO                  = 0x3
+       MAP_NOEXTEND                      = 0x0
+       MAP_NORESERVE                     = 0x0
+       MAP_PRIVATE                       = 0x2
+       MAP_RENAME                        = 0x0
+       MAP_SHARED                        = 0x1
+       MAP_TRYFIXED                      = 0x0
+       MCL_CURRENT                       = 0x1
+       MCL_FUTURE                        = 0x2
+       MSG_BCAST                         = 0x100
+       MSG_CMSG_CLOEXEC                  = 0x800
+       MSG_CTRUNC                        = 0x20
+       MSG_DONTROUTE                     = 0x4
+       MSG_DONTWAIT                      = 0x80
+       MSG_EOR                           = 0x8
+       MSG_MCAST                         = 0x200
+       MSG_NOSIGNAL                      = 0x400
+       MSG_OOB                           = 0x1
+       MSG_PEEK                          = 0x2
+       MSG_TRUNC                         = 0x10
+       MSG_WAITALL                       = 0x40
+       MS_ASYNC                          = 0x1
+       MS_INVALIDATE                     = 0x4
+       MS_SYNC                           = 0x2
+       NAME_MAX                          = 0xff
+       NET_RT_DUMP                       = 0x1
+       NET_RT_FLAGS                      = 0x2
+       NET_RT_IFLIST                     = 0x3
+       NET_RT_MAXID                      = 0x6
+       NET_RT_STATS                      = 0x4
+       NET_RT_TABLE                      = 0x5
+       NOFLSH                            = 0x80000000
+       NOTE_ATTRIB                       = 0x8
+       NOTE_CHILD                        = 0x4
+       NOTE_DELETE                       = 0x1
+       NOTE_EOF                          = 0x2
+       NOTE_EXEC                         = 0x20000000
+       NOTE_EXIT                         = 0x80000000
+       NOTE_EXTEND                       = 0x4
+       NOTE_FORK                         = 0x40000000
+       NOTE_LINK                         = 0x10
+       NOTE_LOWAT                        = 0x1
+       NOTE_PCTRLMASK                    = 0xf0000000
+       NOTE_PDATAMASK                    = 0xfffff
+       NOTE_RENAME                       = 0x20
+       NOTE_REVOKE                       = 0x40
+       NOTE_TRACK                        = 0x1
+       NOTE_TRACKERR                     = 0x2
+       NOTE_TRUNCATE                     = 0x80
+       NOTE_WRITE                        = 0x2
+       OCRNL                             = 0x10
+       ONLCR                             = 0x2
+       ONLRET                            = 0x80
+       ONOCR                             = 0x40
+       ONOEOT                            = 0x8
+       OPOST                             = 0x1
+       O_ACCMODE                         = 0x3
+       O_APPEND                          = 0x8
+       O_ASYNC                           = 0x40
+       O_CLOEXEC                         = 0x10000
+       O_CREAT                           = 0x200
+       O_DIRECTORY                       = 0x20000
+       O_DSYNC                           = 0x80
+       O_EXCL                            = 0x800
+       O_EXLOCK                          = 0x20
+       O_FSYNC                           = 0x80
+       O_NDELAY                          = 0x4
+       O_NOCTTY                          = 0x8000
+       O_NOFOLLOW                        = 0x100
+       O_NONBLOCK                        = 0x4
+       O_RDONLY                          = 0x0
+       O_RDWR                            = 0x2
+       O_RSYNC                           = 0x80
+       O_SHLOCK                          = 0x10
+       O_SYNC                            = 0x80
+       O_TRUNC                           = 0x400
+       O_WRONLY                          = 0x1
+       PARENB                            = 0x1000
+       PARMRK                            = 0x8
+       PARODD                            = 0x2000
+       PENDIN                            = 0x20000000
+       PF_FLUSH                          = 0x1
+       PRIO_PGRP                         = 0x1
+       PRIO_PROCESS                      = 0x0
+       PRIO_USER                         = 0x2
+       PROT_EXEC                         = 0x4
+       PROT_NONE                         = 0x0
+       PROT_READ                         = 0x1
+       PROT_WRITE                        = 0x2
+       RLIMIT_CORE                       = 0x4
+       RLIMIT_CPU                        = 0x0
+       RLIMIT_DATA                       = 0x2
+       RLIMIT_FSIZE                      = 0x1
+       RLIMIT_NOFILE                     = 0x8
+       RLIMIT_STACK                      = 0x3
+       RLIM_INFINITY                     = 0x7fffffffffffffff
+       RTAX_AUTHOR                       = 0x6
+       RTAX_BRD                          = 0x7
+       RTAX_DST                          = 0x0
+       RTAX_GATEWAY                      = 0x1
+       RTAX_GENMASK                      = 0x3
+       RTAX_IFA                          = 0x5
+       RTAX_IFP                          = 0x4
+       RTAX_LABEL                        = 0xa
+       RTAX_MAX                          = 0xb
+       RTAX_NETMASK                      = 0x2
+       RTAX_SRC                          = 0x8
+       RTAX_SRCMASK                      = 0x9
+       RTA_AUTHOR                        = 0x40
+       RTA_BRD                           = 0x80
+       RTA_DST                           = 0x1
+       RTA_GATEWAY                       = 0x2
+       RTA_GENMASK                       = 0x8
+       RTA_IFA                           = 0x20
+       RTA_IFP                           = 0x10
+       RTA_LABEL                         = 0x400
+       RTA_NETMASK                       = 0x4
+       RTA_SRC                           = 0x100
+       RTA_SRCMASK                       = 0x200
+       RTF_ANNOUNCE                      = 0x4000
+       RTF_BLACKHOLE                     = 0x1000
+       RTF_BROADCAST                     = 0x400000
+       RTF_CLONED                        = 0x10000
+       RTF_CLONING                       = 0x100
+       RTF_DONE                          = 0x40
+       RTF_DYNAMIC                       = 0x10
+       RTF_FMASK                         = 0x70f808
+       RTF_GATEWAY                       = 0x2
+       RTF_HOST                          = 0x4
+       RTF_LLINFO                        = 0x400
+       RTF_LOCAL                         = 0x200000
+       RTF_MASK                          = 0x80
+       RTF_MODIFIED                      = 0x20
+       RTF_MPATH                         = 0x40000
+       RTF_MPLS                          = 0x100000
+       RTF_PERMANENT_ARP                 = 0x2000
+       RTF_PROTO1                        = 0x8000
+       RTF_PROTO2                        = 0x4000
+       RTF_PROTO3                        = 0x2000
+       RTF_REJECT                        = 0x8
+       RTF_STATIC                        = 0x800
+       RTF_UP                            = 0x1
+       RTF_USETRAILERS                   = 0x8000
+       RTF_XRESOLVE                      = 0x200
+       RTM_ADD                           = 0x1
+       RTM_CHANGE                        = 0x3
+       RTM_DELADDR                       = 0xd
+       RTM_DELETE                        = 0x2
+       RTM_DESYNC                        = 0x10
+       RTM_GET                           = 0x4
+       RTM_IFANNOUNCE                    = 0xf
+       RTM_IFINFO                        = 0xe
+       RTM_LOCK                          = 0x8
+       RTM_LOSING                        = 0x5
+       RTM_MAXSIZE                       = 0x800
+       RTM_MISS                          = 0x7
+       RTM_NEWADDR                       = 0xc
+       RTM_REDIRECT                      = 0x6
+       RTM_RESOLVE                       = 0xb
+       RTM_RTTUNIT                       = 0xf4240
+       RTM_VERSION                       = 0x5
+       RTV_EXPIRE                        = 0x4
+       RTV_HOPCOUNT                      = 0x2
+       RTV_MTU                           = 0x1
+       RTV_RPIPE                         = 0x8
+       RTV_RTT                           = 0x40
+       RTV_RTTVAR                        = 0x80
+       RTV_SPIPE                         = 0x10
+       RTV_SSTHRESH                      = 0x20
+       RT_TABLEID_MAX                    = 0xff
+       RUSAGE_CHILDREN                   = -0x1
+       RUSAGE_SELF                       = 0x0
+       RUSAGE_THREAD                     = 0x1
+       SCM_RIGHTS                        = 0x1
+       SCM_TIMESTAMP                     = 0x4
+       SHUT_RD                           = 0x0
+       SHUT_RDWR                         = 0x2
+       SHUT_WR                           = 0x1
+       SIOCADDMULTI                      = 0x80206931
+       SIOCAIFADDR                       = 0x8040691a
+       SIOCAIFGROUP                      = 0x80246987
+       SIOCALIFADDR                      = 0x8218691c
+       SIOCATMARK                        = 0x40047307
+       SIOCBRDGADD                       = 0x8054693c
+       SIOCBRDGADDS                      = 0x80546941
+       SIOCBRDGARL                       = 0x806e694d
+       SIOCBRDGDADDR                     = 0x81286947
+       SIOCBRDGDEL                       = 0x8054693d
+       SIOCBRDGDELS                      = 0x80546942
+       SIOCBRDGFLUSH                     = 0x80546948
+       SIOCBRDGFRL                       = 0x806e694e
+       SIOCBRDGGCACHE                    = 0xc0146941
+       SIOCBRDGGFD                       = 0xc0146952
+       SIOCBRDGGHT                       = 0xc0146951
+       SIOCBRDGGIFFLGS                   = 0xc054693e
+       SIOCBRDGGMA                       = 0xc0146953
+       SIOCBRDGGPARAM                    = 0xc03c6958
+       SIOCBRDGGPRI                      = 0xc0146950
+       SIOCBRDGGRL                       = 0xc028694f
+       SIOCBRDGGSIFS                     = 0xc054693c
+       SIOCBRDGGTO                       = 0xc0146946
+       SIOCBRDGIFS                       = 0xc0546942
+       SIOCBRDGRTS                       = 0xc0186943
+       SIOCBRDGSADDR                     = 0xc1286944
+       SIOCBRDGSCACHE                    = 0x80146940
+       SIOCBRDGSFD                       = 0x80146952
+       SIOCBRDGSHT                       = 0x80146951
+       SIOCBRDGSIFCOST                   = 0x80546955
+       SIOCBRDGSIFFLGS                   = 0x8054693f
+       SIOCBRDGSIFPRIO                   = 0x80546954
+       SIOCBRDGSMA                       = 0x80146953
+       SIOCBRDGSPRI                      = 0x80146950
+       SIOCBRDGSPROTO                    = 0x8014695a
+       SIOCBRDGSTO                       = 0x80146945
+       SIOCBRDGSTXHC                     = 0x80146959
+       SIOCDELMULTI                      = 0x80206932
+       SIOCDIFADDR                       = 0x80206919
+       SIOCDIFGROUP                      = 0x80246989
+       SIOCDIFPHYADDR                    = 0x80206949
+       SIOCDLIFADDR                      = 0x8218691e
+       SIOCGETKALIVE                     = 0xc01869a4
+       SIOCGETLABEL                      = 0x8020699a
+       SIOCGETPFLOW                      = 0xc02069fe
+       SIOCGETPFSYNC                     = 0xc02069f8
+       SIOCGETSGCNT                      = 0xc0147534
+       SIOCGETVIFCNT                     = 0xc0147533
+       SIOCGETVLAN                       = 0xc0206990
+       SIOCGHIWAT                        = 0x40047301
+       SIOCGIFADDR                       = 0xc0206921
+       SIOCGIFASYNCMAP                   = 0xc020697c
+       SIOCGIFBRDADDR                    = 0xc0206923
+       SIOCGIFCONF                       = 0xc0086924
+       SIOCGIFDATA                       = 0xc020691b
+       SIOCGIFDESCR                      = 0xc0206981
+       SIOCGIFDSTADDR                    = 0xc0206922
+       SIOCGIFFLAGS                      = 0xc0206911
+       SIOCGIFGATTR                      = 0xc024698b
+       SIOCGIFGENERIC                    = 0xc020693a
+       SIOCGIFGMEMB                      = 0xc024698a
+       SIOCGIFGROUP                      = 0xc0246988
+       SIOCGIFHARDMTU                    = 0xc02069a5
+       SIOCGIFMEDIA                      = 0xc0286936
+       SIOCGIFMETRIC                     = 0xc0206917
+       SIOCGIFMTU                        = 0xc020697e
+       SIOCGIFNETMASK                    = 0xc0206925
+       SIOCGIFPDSTADDR                   = 0xc0206948
+       SIOCGIFPRIORITY                   = 0xc020699c
+       SIOCGIFPSRCADDR                   = 0xc0206947
+       SIOCGIFRDOMAIN                    = 0xc02069a0
+       SIOCGIFRTLABEL                    = 0xc0206983
+       SIOCGIFRXR                        = 0x802069aa
+       SIOCGIFTIMESLOT                   = 0xc0206986
+       SIOCGIFXFLAGS                     = 0xc020699e
+       SIOCGLIFADDR                      = 0xc218691d
+       SIOCGLIFPHYADDR                   = 0xc218694b
+       SIOCGLIFPHYRTABLE                 = 0xc02069a2
+       SIOCGLIFPHYTTL                    = 0xc02069a9
+       SIOCGLOWAT                        = 0x40047303
+       SIOCGPGRP                         = 0x40047309
+       SIOCGSPPPPARAMS                   = 0xc0206994
+       SIOCGVH                           = 0xc02069f6
+       SIOCGVNETID                       = 0xc02069a7
+       SIOCIFCREATE                      = 0x8020697a
+       SIOCIFDESTROY                     = 0x80206979
+       SIOCIFGCLONERS                    = 0xc00c6978
+       SIOCSETKALIVE                     = 0x801869a3
+       SIOCSETLABEL                      = 0x80206999
+       SIOCSETPFLOW                      = 0x802069fd
+       SIOCSETPFSYNC                     = 0x802069f7
+       SIOCSETVLAN                       = 0x8020698f
+       SIOCSHIWAT                        = 0x80047300
+       SIOCSIFADDR                       = 0x8020690c
+       SIOCSIFASYNCMAP                   = 0x8020697d
+       SIOCSIFBRDADDR                    = 0x80206913
+       SIOCSIFDESCR                      = 0x80206980
+       SIOCSIFDSTADDR                    = 0x8020690e
+       SIOCSIFFLAGS                      = 0x80206910
+       SIOCSIFGATTR                      = 0x8024698c
+       SIOCSIFGENERIC                    = 0x80206939
+       SIOCSIFLLADDR                     = 0x8020691f
+       SIOCSIFMEDIA                      = 0xc0206935
+       SIOCSIFMETRIC                     = 0x80206918
+       SIOCSIFMTU                        = 0x8020697f
+       SIOCSIFNETMASK                    = 0x80206916
+       SIOCSIFPHYADDR                    = 0x80406946
+       SIOCSIFPRIORITY                   = 0x8020699b
+       SIOCSIFRDOMAIN                    = 0x8020699f
+       SIOCSIFRTLABEL                    = 0x80206982
+       SIOCSIFTIMESLOT                   = 0x80206985
+       SIOCSIFXFLAGS                     = 0x8020699d
+       SIOCSLIFPHYADDR                   = 0x8218694a
+       SIOCSLIFPHYRTABLE                 = 0x802069a1
+       SIOCSLIFPHYTTL                    = 0x802069a8
+       SIOCSLOWAT                        = 0x80047302
+       SIOCSPGRP                         = 0x80047308
+       SIOCSSPPPPARAMS                   = 0x80206993
+       SIOCSVH                           = 0xc02069f5
+       SIOCSVNETID                       = 0x802069a6
+       SOCK_CLOEXEC                      = 0x8000
+       SOCK_DGRAM                        = 0x2
+       SOCK_NONBLOCK                     = 0x4000
+       SOCK_RAW                          = 0x3
+       SOCK_RDM                          = 0x4
+       SOCK_SEQPACKET                    = 0x5
+       SOCK_STREAM                       = 0x1
+       SOL_SOCKET                        = 0xffff
+       SOMAXCONN                         = 0x80
+       SO_ACCEPTCONN                     = 0x2
+       SO_BINDANY                        = 0x1000
+       SO_BROADCAST                      = 0x20
+       SO_DEBUG                          = 0x1
+       SO_DONTROUTE                      = 0x10
+       SO_ERROR                          = 0x1007
+       SO_KEEPALIVE                      = 0x8
+       SO_LINGER                         = 0x80
+       SO_NETPROC                        = 0x1020
+       SO_OOBINLINE                      = 0x100
+       SO_PEERCRED                       = 0x1022
+       SO_RCVBUF                         = 0x1002
+       SO_RCVLOWAT                       = 0x1004
+       SO_RCVTIMEO                       = 0x1006
+       SO_REUSEADDR                      = 0x4
+       SO_REUSEPORT                      = 0x200
+       SO_RTABLE                         = 0x1021
+       SO_SNDBUF                         = 0x1001
+       SO_SNDLOWAT                       = 0x1003
+       SO_SNDTIMEO                       = 0x1005
+       SO_SPLICE                         = 0x1023
+       SO_TIMESTAMP                      = 0x800
+       SO_TYPE                           = 0x1008
+       SO_USELOOPBACK                    = 0x40
+       TCIFLUSH                          = 0x1
+       TCIOFLUSH                         = 0x3
+       TCOFLUSH                          = 0x2
+       TCP_MAXBURST                      = 0x4
+       TCP_MAXSEG                        = 0x2
+       TCP_MAXWIN                        = 0xffff
+       TCP_MAX_SACK                      = 0x3
+       TCP_MAX_WINSHIFT                  = 0xe
+       TCP_MD5SIG                        = 0x4
+       TCP_MSS                           = 0x200
+       TCP_NODELAY                       = 0x1
+       TCP_NOPUSH                        = 0x10
+       TCP_NSTATES                       = 0xb
+       TCP_SACK_ENABLE                   = 0x8
+       TCSAFLUSH                         = 0x2
+       TIOCCBRK                          = 0x2000747a
+       TIOCCDTR                          = 0x20007478
+       TIOCCONS                          = 0x80047462
+       TIOCDRAIN                         = 0x2000745e
+       TIOCEXCL                          = 0x2000740d
+       TIOCEXT                           = 0x80047460
+       TIOCFLAG_CLOCAL                   = 0x2
+       TIOCFLAG_CRTSCTS                  = 0x4
+       TIOCFLAG_MDMBUF                   = 0x8
+       TIOCFLAG_PPS                      = 0x10
+       TIOCFLAG_SOFTCAR                  = 0x1
+       TIOCFLUSH                         = 0x80047410
+       TIOCGETA                          = 0x402c7413
+       TIOCGETD                          = 0x4004741a
+       TIOCGFLAGS                        = 0x4004745d
+       TIOCGPGRP                         = 0x40047477
+       TIOCGSID                          = 0x40047463
+       TIOCGTSTAMP                       = 0x400c745b
+       TIOCGWINSZ                        = 0x40087468
+       TIOCMBIC                          = 0x8004746b
+       TIOCMBIS                          = 0x8004746c
+       TIOCMGET                          = 0x4004746a
+       TIOCMODG                          = 0x4004746a
+       TIOCMODS                          = 0x8004746d
+       TIOCMSET                          = 0x8004746d
+       TIOCM_CAR                         = 0x40
+       TIOCM_CD                          = 0x40
+       TIOCM_CTS                         = 0x20
+       TIOCM_DSR                         = 0x100
+       TIOCM_DTR                         = 0x2
+       TIOCM_LE                          = 0x1
+       TIOCM_RI                          = 0x80
+       TIOCM_RNG                         = 0x80
+       TIOCM_RTS                         = 0x4
+       TIOCM_SR                          = 0x10
+       TIOCM_ST                          = 0x8
+       TIOCNOTTY                         = 0x20007471
+       TIOCNXCL                          = 0x2000740e
+       TIOCOUTQ                          = 0x40047473
+       TIOCPKT                           = 0x80047470
+       TIOCPKT_DATA                      = 0x0
+       TIOCPKT_DOSTOP                    = 0x20
+       TIOCPKT_FLUSHREAD                 = 0x1
+       TIOCPKT_FLUSHWRITE                = 0x2
+       TIOCPKT_IOCTL                     = 0x40
+       TIOCPKT_NOSTOP                    = 0x10
+       TIOCPKT_START                     = 0x8
+       TIOCPKT_STOP                      = 0x4
+       TIOCREMOTE                        = 0x80047469
+       TIOCSBRK                          = 0x2000747b
+       TIOCSCTTY                         = 0x20007461
+       TIOCSDTR                          = 0x20007479
+       TIOCSETA                          = 0x802c7414
+       TIOCSETAF                         = 0x802c7416
+       TIOCSETAW                         = 0x802c7415
+       TIOCSETD                          = 0x8004741b
+       TIOCSFLAGS                        = 0x8004745c
+       TIOCSIG                           = 0x8004745f
+       TIOCSPGRP                         = 0x80047476
+       TIOCSTART                         = 0x2000746e
+       TIOCSTAT                          = 0x80047465
+       TIOCSTI                           = 0x80017472
+       TIOCSTOP                          = 0x2000746f
+       TIOCSTSTAMP                       = 0x8008745a
+       TIOCSWINSZ                        = 0x80087467
+       TIOCUCNTL                         = 0x80047466
+       TOSTOP                            = 0x400000
+       VDISCARD                          = 0xf
+       VDSUSP                            = 0xb
+       VEOF                              = 0x0
+       VEOL                              = 0x1
+       VEOL2                             = 0x2
+       VERASE                            = 0x3
+       VINTR                             = 0x8
+       VKILL                             = 0x5
+       VLNEXT                            = 0xe
+       VMIN                              = 0x10
+       VQUIT                             = 0x9
+       VREPRINT                          = 0x6
+       VSTART                            = 0xc
+       VSTATUS                           = 0x12
+       VSTOP                             = 0xd
+       VSUSP                             = 0xa
+       VTIME                             = 0x11
+       VWERASE                           = 0x4
+       WALTSIG                           = 0x4
+       WCONTINUED                        = 0x8
+       WCOREFLAG                         = 0x80
+       WNOHANG                           = 0x1
+       WUNTRACED                         = 0x2
+)
+
+// Errors
+const (
+       E2BIG           = syscall.Errno(0x7)
+       EACCES          = syscall.Errno(0xd)
+       EADDRINUSE      = syscall.Errno(0x30)
+       EADDRNOTAVAIL   = syscall.Errno(0x31)
+       EAFNOSUPPORT    = syscall.Errno(0x2f)
+       EAGAIN          = syscall.Errno(0x23)
+       EALREADY        = syscall.Errno(0x25)
+       EAUTH           = syscall.Errno(0x50)
+       EBADF           = syscall.Errno(0x9)
+       EBADRPC         = syscall.Errno(0x48)
+       EBUSY           = syscall.Errno(0x10)
+       ECANCELED       = syscall.Errno(0x58)
+       ECHILD          = syscall.Errno(0xa)
+       ECONNABORTED    = syscall.Errno(0x35)
+       ECONNREFUSED    = syscall.Errno(0x3d)
+       ECONNRESET      = syscall.Errno(0x36)
+       EDEADLK         = syscall.Errno(0xb)
+       EDESTADDRREQ    = syscall.Errno(0x27)
+       EDOM            = syscall.Errno(0x21)
+       EDQUOT          = syscall.Errno(0x45)
+       EEXIST          = syscall.Errno(0x11)
+       EFAULT          = syscall.Errno(0xe)
+       EFBIG           = syscall.Errno(0x1b)
+       EFTYPE          = syscall.Errno(0x4f)
+       EHOSTDOWN       = syscall.Errno(0x40)
+       EHOSTUNREACH    = syscall.Errno(0x41)
+       EIDRM           = syscall.Errno(0x59)
+       EILSEQ          = syscall.Errno(0x54)
+       EINPROGRESS     = syscall.Errno(0x24)
+       EINTR           = syscall.Errno(0x4)
+       EINVAL          = syscall.Errno(0x16)
+       EIO             = syscall.Errno(0x5)
+       EIPSEC          = syscall.Errno(0x52)
+       EISCONN         = syscall.Errno(0x38)
+       EISDIR          = syscall.Errno(0x15)
+       ELAST           = syscall.Errno(0x5b)
+       ELOOP           = syscall.Errno(0x3e)
+       EMEDIUMTYPE     = syscall.Errno(0x56)
+       EMFILE          = syscall.Errno(0x18)
+       EMLINK          = syscall.Errno(0x1f)
+       EMSGSIZE        = syscall.Errno(0x28)
+       ENAMETOOLONG    = syscall.Errno(0x3f)
+       ENEEDAUTH       = syscall.Errno(0x51)
+       ENETDOWN        = syscall.Errno(0x32)
+       ENETRESET       = syscall.Errno(0x34)
+       ENETUNREACH     = syscall.Errno(0x33)
+       ENFILE          = syscall.Errno(0x17)
+       ENOATTR         = syscall.Errno(0x53)
+       ENOBUFS         = syscall.Errno(0x37)
+       ENODEV          = syscall.Errno(0x13)
+       ENOENT          = syscall.Errno(0x2)
+       ENOEXEC         = syscall.Errno(0x8)
+       ENOLCK          = syscall.Errno(0x4d)
+       ENOMEDIUM       = syscall.Errno(0x55)
+       ENOMEM          = syscall.Errno(0xc)
+       ENOMSG          = syscall.Errno(0x5a)
+       ENOPROTOOPT     = syscall.Errno(0x2a)
+       ENOSPC          = syscall.Errno(0x1c)
+       ENOSYS          = syscall.Errno(0x4e)
+       ENOTBLK         = syscall.Errno(0xf)
+       ENOTCONN        = syscall.Errno(0x39)
+       ENOTDIR         = syscall.Errno(0x14)
+       ENOTEMPTY       = syscall.Errno(0x42)
+       ENOTSOCK        = syscall.Errno(0x26)
+       ENOTSUP         = syscall.Errno(0x5b)
+       ENOTTY          = syscall.Errno(0x19)
+       ENXIO           = syscall.Errno(0x6)
+       EOPNOTSUPP      = syscall.Errno(0x2d)
+       EOVERFLOW       = syscall.Errno(0x57)
+       EPERM           = syscall.Errno(0x1)
+       EPFNOSUPPORT    = syscall.Errno(0x2e)
+       EPIPE           = syscall.Errno(0x20)
+       EPROCLIM        = syscall.Errno(0x43)
+       EPROCUNAVAIL    = syscall.Errno(0x4c)
+       EPROGMISMATCH   = syscall.Errno(0x4b)
+       EPROGUNAVAIL    = syscall.Errno(0x4a)
+       EPROTONOSUPPORT = syscall.Errno(0x2b)
+       EPROTOTYPE      = syscall.Errno(0x29)
+       ERANGE          = syscall.Errno(0x22)
+       EREMOTE         = syscall.Errno(0x47)
+       EROFS           = syscall.Errno(0x1e)
+       ERPCMISMATCH    = syscall.Errno(0x49)
+       ESHUTDOWN       = syscall.Errno(0x3a)
+       ESOCKTNOSUPPORT = syscall.Errno(0x2c)
+       ESPIPE          = syscall.Errno(0x1d)
+       ESRCH           = syscall.Errno(0x3)
+       ESTALE          = syscall.Errno(0x46)
+       ETIMEDOUT       = syscall.Errno(0x3c)
+       ETOOMANYREFS    = syscall.Errno(0x3b)
+       ETXTBSY         = syscall.Errno(0x1a)
+       EUSERS          = syscall.Errno(0x44)
+       EWOULDBLOCK     = syscall.Errno(0x23)
+       EXDEV           = syscall.Errno(0x12)
+)
+
+// Signals
+const (
+       SIGABRT   = syscall.Signal(0x6)
+       SIGALRM   = syscall.Signal(0xe)
+       SIGBUS    = syscall.Signal(0xa)
+       SIGCHLD   = syscall.Signal(0x14)
+       SIGCONT   = syscall.Signal(0x13)
+       SIGEMT    = syscall.Signal(0x7)
+       SIGFPE    = syscall.Signal(0x8)
+       SIGHUP    = syscall.Signal(0x1)
+       SIGILL    = syscall.Signal(0x4)
+       SIGINFO   = syscall.Signal(0x1d)
+       SIGINT    = syscall.Signal(0x2)
+       SIGIO     = syscall.Signal(0x17)
+       SIGIOT    = syscall.Signal(0x6)
+       SIGKILL   = syscall.Signal(0x9)
+       SIGPIPE   = syscall.Signal(0xd)
+       SIGPROF   = syscall.Signal(0x1b)
+       SIGQUIT   = syscall.Signal(0x3)
+       SIGSEGV   = syscall.Signal(0xb)
+       SIGSTOP   = syscall.Signal(0x11)
+       SIGSYS    = syscall.Signal(0xc)
+       SIGTERM   = syscall.Signal(0xf)
+       SIGTHR    = syscall.Signal(0x20)
+       SIGTRAP   = syscall.Signal(0x5)
+       SIGTSTP   = syscall.Signal(0x12)
+       SIGTTIN   = syscall.Signal(0x15)
+       SIGTTOU   = syscall.Signal(0x16)
+       SIGURG    = syscall.Signal(0x10)
+       SIGUSR1   = syscall.Signal(0x1e)
+       SIGUSR2   = syscall.Signal(0x1f)
+       SIGVTALRM = syscall.Signal(0x1a)
+       SIGWINCH  = syscall.Signal(0x1c)
+       SIGXCPU   = syscall.Signal(0x18)
+       SIGXFSZ   = syscall.Signal(0x19)
+)
+
+// Error table
+var errors = [...]string{
+       1:  "operation not permitted",
+       2:  "no such file or directory",
+       3:  "no such process",
+       4:  "interrupted system call",
+       5:  "input/output error",
+       6:  "device not configured",
+       7:  "argument list too long",
+       8:  "exec format error",
+       9:  "bad file descriptor",
+       10: "no child processes",
+       11: "resource deadlock avoided",
+       12: "cannot allocate memory",
+       13: "permission denied",
+       14: "bad address",
+       15: "block device required",
+       16: "device busy",
+       17: "file exists",
+       18: "cross-device link",
+       19: "operation not supported by device",
+       20: "not a directory",
+       21: "is a directory",
+       22: "invalid argument",
+       23: "too many open files in system",
+       24: "too many open files",
+       25: "inappropriate ioctl for device",
+       26: "text file busy",
+       27: "file too large",
+       28: "no space left on device",
+       29: "illegal seek",
+       30: "read-only file system",
+       31: "too many links",
+       32: "broken pipe",
+       33: "numerical argument out of domain",
+       34: "result too large",
+       35: "resource temporarily unavailable",
+       36: "operation now in progress",
+       37: "operation already in progress",
+       38: "socket operation on non-socket",
+       39: "destination address required",
+       40: "message too long",
+       41: "protocol wrong type for socket",
+       42: "protocol not available",
+       43: "protocol not supported",
+       44: "socket type not supported",
+       45: "operation not supported",
+       46: "protocol family not supported",
+       47: "address family not supported by protocol family",
+       48: "address already in use",
+       49: "can't assign requested address",
+       50: "network is down",
+       51: "network is unreachable",
+       52: "network dropped connection on reset",
+       53: "software caused connection abort",
+       54: "connection reset by peer",
+       55: "no buffer space available",
+       56: "socket is already connected",
+       57: "socket is not connected",
+       58: "can't send after socket shutdown",
+       59: "too many references: can't splice",
+       60: "connection timed out",
+       61: "connection refused",
+       62: "too many levels of symbolic links",
+       63: "file name too long",
+       64: "host is down",
+       65: "no route to host",
+       66: "directory not empty",
+       67: "too many processes",
+       68: "too many users",
+       69: "disc quota exceeded",
+       70: "stale NFS file handle",
+       71: "too many levels of remote in path",
+       72: "RPC struct is bad",
+       73: "RPC version wrong",
+       74: "RPC prog. not avail",
+       75: "program version wrong",
+       76: "bad procedure for program",
+       77: "no locks available",
+       78: "function not implemented",
+       79: "inappropriate file type or format",
+       80: "authentication error",
+       81: "need authenticator",
+       82: "IPsec processing failure",
+       83: "attribute not found",
+       84: "illegal byte sequence",
+       85: "no medium found",
+       86: "wrong medium type",
+       87: "value too large to be stored in data type",
+       88: "operation canceled",
+       89: "identifier removed",
+       90: "no message of desired type",
+       91: "not supported",
+}
+
+// Signal table
+var signals = [...]string{
+       1:  "hangup",
+       2:  "interrupt",
+       3:  "quit",
+       4:  "illegal instruction",
+       5:  "trace/BPT trap",
+       6:  "abort trap",
+       7:  "EMT trap",
+       8:  "floating point exception",
+       9:  "killed",
+       10: "bus error",
+       11: "segmentation fault",
+       12: "bad system call",
+       13: "broken pipe",
+       14: "alarm clock",
+       15: "terminated",
+       16: "urgent I/O condition",
+       17: "stopped (signal)",
+       18: "stopped",
+       19: "continued",
+       20: "child exited",
+       21: "stopped (tty input)",
+       22: "stopped (tty output)",
+       23: "I/O possible",
+       24: "cputime limit exceeded",
+       25: "filesize limit exceeded",
+       26: "virtual timer expired",
+       27: "profiling timer expired",
+       28: "window size changes",
+       29: "information request",
+       30: "user defined signal 1",
+       31: "user defined signal 2",
+       32: "thread AST",
+}
diff --git a/vendor/golang.org/x/sys/unix/zerrors_solaris_amd64.go b/vendor/golang.org/x/sys/unix/zerrors_solaris_amd64.go
new file mode 100644 (file)
index 0000000..81e83d7
--- /dev/null
@@ -0,0 +1,1483 @@
+// mkerrors.sh -m64
+// Code generated by the command above; see README.md. DO NOT EDIT.
+
+// +build amd64,solaris
+
+// Created by cgo -godefs - DO NOT EDIT
+// cgo -godefs -- -m64 _const.go
+
+package unix
+
+import "syscall"
+
+const (
+       AF_802                        = 0x12
+       AF_APPLETALK                  = 0x10
+       AF_CCITT                      = 0xa
+       AF_CHAOS                      = 0x5
+       AF_DATAKIT                    = 0x9
+       AF_DECnet                     = 0xc
+       AF_DLI                        = 0xd
+       AF_ECMA                       = 0x8
+       AF_FILE                       = 0x1
+       AF_GOSIP                      = 0x16
+       AF_HYLINK                     = 0xf
+       AF_IMPLINK                    = 0x3
+       AF_INET                       = 0x2
+       AF_INET6                      = 0x1a
+       AF_INET_OFFLOAD               = 0x1e
+       AF_IPX                        = 0x17
+       AF_KEY                        = 0x1b
+       AF_LAT                        = 0xe
+       AF_LINK                       = 0x19
+       AF_LOCAL                      = 0x1
+       AF_MAX                        = 0x20
+       AF_NBS                        = 0x7
+       AF_NCA                        = 0x1c
+       AF_NIT                        = 0x11
+       AF_NS                         = 0x6
+       AF_OSI                        = 0x13
+       AF_OSINET                     = 0x15
+       AF_PACKET                     = 0x20
+       AF_POLICY                     = 0x1d
+       AF_PUP                        = 0x4
+       AF_ROUTE                      = 0x18
+       AF_SNA                        = 0xb
+       AF_TRILL                      = 0x1f
+       AF_UNIX                       = 0x1
+       AF_UNSPEC                     = 0x0
+       AF_X25                        = 0x14
+       ARPHRD_ARCNET                 = 0x7
+       ARPHRD_ATM                    = 0x10
+       ARPHRD_AX25                   = 0x3
+       ARPHRD_CHAOS                  = 0x5
+       ARPHRD_EETHER                 = 0x2
+       ARPHRD_ETHER                  = 0x1
+       ARPHRD_FC                     = 0x12
+       ARPHRD_FRAME                  = 0xf
+       ARPHRD_HDLC                   = 0x11
+       ARPHRD_IB                     = 0x20
+       ARPHRD_IEEE802                = 0x6
+       ARPHRD_IPATM                  = 0x13
+       ARPHRD_METRICOM               = 0x17
+       ARPHRD_TUNNEL                 = 0x1f
+       B0                            = 0x0
+       B110                          = 0x3
+       B115200                       = 0x12
+       B1200                         = 0x9
+       B134                          = 0x4
+       B150                          = 0x5
+       B153600                       = 0x13
+       B1800                         = 0xa
+       B19200                        = 0xe
+       B200                          = 0x6
+       B230400                       = 0x14
+       B2400                         = 0xb
+       B300                          = 0x7
+       B307200                       = 0x15
+       B38400                        = 0xf
+       B460800                       = 0x16
+       B4800                         = 0xc
+       B50                           = 0x1
+       B57600                        = 0x10
+       B600                          = 0x8
+       B75                           = 0x2
+       B76800                        = 0x11
+       B921600                       = 0x17
+       B9600                         = 0xd
+       BIOCFLUSH                     = 0x20004268
+       BIOCGBLEN                     = 0x40044266
+       BIOCGDLT                      = 0x4004426a
+       BIOCGDLTLIST                  = -0x3fefbd89
+       BIOCGDLTLIST32                = -0x3ff7bd89
+       BIOCGETIF                     = 0x4020426b
+       BIOCGETLIF                    = 0x4078426b
+       BIOCGHDRCMPLT                 = 0x40044274
+       BIOCGRTIMEOUT                 = 0x4010427b
+       BIOCGRTIMEOUT32               = 0x4008427b
+       BIOCGSEESENT                  = 0x40044278
+       BIOCGSTATS                    = 0x4080426f
+       BIOCGSTATSOLD                 = 0x4008426f
+       BIOCIMMEDIATE                 = -0x7ffbbd90
+       BIOCPROMISC                   = 0x20004269
+       BIOCSBLEN                     = -0x3ffbbd9a
+       BIOCSDLT                      = -0x7ffbbd8a
+       BIOCSETF                      = -0x7fefbd99
+       BIOCSETF32                    = -0x7ff7bd99
+       BIOCSETIF                     = -0x7fdfbd94
+       BIOCSETLIF                    = -0x7f87bd94
+       BIOCSHDRCMPLT                 = -0x7ffbbd8b
+       BIOCSRTIMEOUT                 = -0x7fefbd86
+       BIOCSRTIMEOUT32               = -0x7ff7bd86
+       BIOCSSEESENT                  = -0x7ffbbd87
+       BIOCSTCPF                     = -0x7fefbd8e
+       BIOCSUDPF                     = -0x7fefbd8d
+       BIOCVERSION                   = 0x40044271
+       BPF_A                         = 0x10
+       BPF_ABS                       = 0x20
+       BPF_ADD                       = 0x0
+       BPF_ALIGNMENT                 = 0x4
+       BPF_ALU                       = 0x4
+       BPF_AND                       = 0x50
+       BPF_B                         = 0x10
+       BPF_DFLTBUFSIZE               = 0x100000
+       BPF_DIV                       = 0x30
+       BPF_H                         = 0x8
+       BPF_IMM                       = 0x0
+       BPF_IND                       = 0x40
+       BPF_JA                        = 0x0
+       BPF_JEQ                       = 0x10
+       BPF_JGE                       = 0x30
+       BPF_JGT                       = 0x20
+       BPF_JMP                       = 0x5
+       BPF_JSET                      = 0x40
+       BPF_K                         = 0x0
+       BPF_LD                        = 0x0
+       BPF_LDX                       = 0x1
+       BPF_LEN                       = 0x80
+       BPF_LSH                       = 0x60
+       BPF_MAJOR_VERSION             = 0x1
+       BPF_MAXBUFSIZE                = 0x1000000
+       BPF_MAXINSNS                  = 0x200
+       BPF_MEM                       = 0x60
+       BPF_MEMWORDS                  = 0x10
+       BPF_MINBUFSIZE                = 0x20
+       BPF_MINOR_VERSION             = 0x1
+       BPF_MISC                      = 0x7
+       BPF_MSH                       = 0xa0
+       BPF_MUL                       = 0x20
+       BPF_NEG                       = 0x80
+       BPF_OR                        = 0x40
+       BPF_RELEASE                   = 0x30bb6
+       BPF_RET                       = 0x6
+       BPF_RSH                       = 0x70
+       BPF_ST                        = 0x2
+       BPF_STX                       = 0x3
+       BPF_SUB                       = 0x10
+       BPF_TAX                       = 0x0
+       BPF_TXA                       = 0x80
+       BPF_W                         = 0x0
+       BPF_X                         = 0x8
+       BRKINT                        = 0x2
+       BS0                           = 0x0
+       BS1                           = 0x2000
+       BSDLY                         = 0x2000
+       CBAUD                         = 0xf
+       CFLUSH                        = 0xf
+       CIBAUD                        = 0xf0000
+       CLOCAL                        = 0x800
+       CLOCK_HIGHRES                 = 0x4
+       CLOCK_LEVEL                   = 0xa
+       CLOCK_MONOTONIC               = 0x4
+       CLOCK_PROCESS_CPUTIME_ID      = 0x5
+       CLOCK_PROF                    = 0x2
+       CLOCK_REALTIME                = 0x3
+       CLOCK_THREAD_CPUTIME_ID       = 0x2
+       CLOCK_VIRTUAL                 = 0x1
+       CR0                           = 0x0
+       CR1                           = 0x200
+       CR2                           = 0x400
+       CR3                           = 0x600
+       CRDLY                         = 0x600
+       CREAD                         = 0x80
+       CRTSCTS                       = 0x80000000
+       CS5                           = 0x0
+       CS6                           = 0x10
+       CS7                           = 0x20
+       CS8                           = 0x30
+       CSIZE                         = 0x30
+       CSTART                        = 0x11
+       CSTATUS                       = 0x14
+       CSTOP                         = 0x13
+       CSTOPB                        = 0x40
+       CSUSP                         = 0x1a
+       CSWTCH                        = 0x1a
+       DLT_AIRONET_HEADER            = 0x78
+       DLT_APPLE_IP_OVER_IEEE1394    = 0x8a
+       DLT_ARCNET                    = 0x7
+       DLT_ARCNET_LINUX              = 0x81
+       DLT_ATM_CLIP                  = 0x13
+       DLT_ATM_RFC1483               = 0xb
+       DLT_AURORA                    = 0x7e
+       DLT_AX25                      = 0x3
+       DLT_BACNET_MS_TP              = 0xa5
+       DLT_CHAOS                     = 0x5
+       DLT_CISCO_IOS                 = 0x76
+       DLT_C_HDLC                    = 0x68
+       DLT_DOCSIS                    = 0x8f
+       DLT_ECONET                    = 0x73
+       DLT_EN10MB                    = 0x1
+       DLT_EN3MB                     = 0x2
+       DLT_ENC                       = 0x6d
+       DLT_ERF_ETH                   = 0xaf
+       DLT_ERF_POS                   = 0xb0
+       DLT_FDDI                      = 0xa
+       DLT_FRELAY                    = 0x6b
+       DLT_GCOM_SERIAL               = 0xad
+       DLT_GCOM_T1E1                 = 0xac
+       DLT_GPF_F                     = 0xab
+       DLT_GPF_T                     = 0xaa
+       DLT_GPRS_LLC                  = 0xa9
+       DLT_HDLC                      = 0x10
+       DLT_HHDLC                     = 0x79
+       DLT_HIPPI                     = 0xf
+       DLT_IBM_SN                    = 0x92
+       DLT_IBM_SP                    = 0x91
+       DLT_IEEE802                   = 0x6
+       DLT_IEEE802_11                = 0x69
+       DLT_IEEE802_11_RADIO          = 0x7f
+       DLT_IEEE802_11_RADIO_AVS      = 0xa3
+       DLT_IPNET                     = 0xe2
+       DLT_IPOIB                     = 0xa2
+       DLT_IP_OVER_FC                = 0x7a
+       DLT_JUNIPER_ATM1              = 0x89
+       DLT_JUNIPER_ATM2              = 0x87
+       DLT_JUNIPER_CHDLC             = 0xb5
+       DLT_JUNIPER_ES                = 0x84
+       DLT_JUNIPER_ETHER             = 0xb2
+       DLT_JUNIPER_FRELAY            = 0xb4
+       DLT_JUNIPER_GGSN              = 0x85
+       DLT_JUNIPER_MFR               = 0x86
+       DLT_JUNIPER_MLFR              = 0x83
+       DLT_JUNIPER_MLPPP             = 0x82
+       DLT_JUNIPER_MONITOR           = 0xa4
+       DLT_JUNIPER_PIC_PEER          = 0xae
+       DLT_JUNIPER_PPP               = 0xb3
+       DLT_JUNIPER_PPPOE             = 0xa7
+       DLT_JUNIPER_PPPOE_ATM         = 0xa8
+       DLT_JUNIPER_SERVICES          = 0x88
+       DLT_LINUX_IRDA                = 0x90
+       DLT_LINUX_LAPD                = 0xb1
+       DLT_LINUX_SLL                 = 0x71
+       DLT_LOOP                      = 0x6c
+       DLT_LTALK                     = 0x72
+       DLT_MTP2                      = 0x8c
+       DLT_MTP2_WITH_PHDR            = 0x8b
+       DLT_MTP3                      = 0x8d
+       DLT_NULL                      = 0x0
+       DLT_PCI_EXP                   = 0x7d
+       DLT_PFLOG                     = 0x75
+       DLT_PFSYNC                    = 0x12
+       DLT_PPP                       = 0x9
+       DLT_PPP_BSDOS                 = 0xe
+       DLT_PPP_PPPD                  = 0xa6
+       DLT_PRISM_HEADER              = 0x77
+       DLT_PRONET                    = 0x4
+       DLT_RAW                       = 0xc
+       DLT_RAWAF_MASK                = 0x2240000
+       DLT_RIO                       = 0x7c
+       DLT_SCCP                      = 0x8e
+       DLT_SLIP                      = 0x8
+       DLT_SLIP_BSDOS                = 0xd
+       DLT_SUNATM                    = 0x7b
+       DLT_SYMANTEC_FIREWALL         = 0x63
+       DLT_TZSP                      = 0x80
+       ECHO                          = 0x8
+       ECHOCTL                       = 0x200
+       ECHOE                         = 0x10
+       ECHOK                         = 0x20
+       ECHOKE                        = 0x800
+       ECHONL                        = 0x40
+       ECHOPRT                       = 0x400
+       EMPTY_SET                     = 0x0
+       EMT_CPCOVF                    = 0x1
+       EQUALITY_CHECK                = 0x0
+       EXTA                          = 0xe
+       EXTB                          = 0xf
+       FD_CLOEXEC                    = 0x1
+       FD_NFDBITS                    = 0x40
+       FD_SETSIZE                    = 0x10000
+       FF0                           = 0x0
+       FF1                           = 0x8000
+       FFDLY                         = 0x8000
+       FLUSHALL                      = 0x1
+       FLUSHDATA                     = 0x0
+       FLUSHO                        = 0x2000
+       F_ALLOCSP                     = 0xa
+       F_ALLOCSP64                   = 0xa
+       F_BADFD                       = 0x2e
+       F_BLKSIZE                     = 0x13
+       F_BLOCKS                      = 0x12
+       F_CHKFL                       = 0x8
+       F_COMPAT                      = 0x8
+       F_DUP2FD                      = 0x9
+       F_DUP2FD_CLOEXEC              = 0x24
+       F_DUPFD                       = 0x0
+       F_DUPFD_CLOEXEC               = 0x25
+       F_FLOCK                       = 0x35
+       F_FLOCK64                     = 0x35
+       F_FLOCKW                      = 0x36
+       F_FLOCKW64                    = 0x36
+       F_FREESP                      = 0xb
+       F_FREESP64                    = 0xb
+       F_GETFD                       = 0x1
+       F_GETFL                       = 0x3
+       F_GETLK                       = 0xe
+       F_GETLK64                     = 0xe
+       F_GETOWN                      = 0x17
+       F_GETXFL                      = 0x2d
+       F_HASREMOTELOCKS              = 0x1a
+       F_ISSTREAM                    = 0xd
+       F_MANDDNY                     = 0x10
+       F_MDACC                       = 0x20
+       F_NODNY                       = 0x0
+       F_NPRIV                       = 0x10
+       F_OFD_GETLK                   = 0x2f
+       F_OFD_GETLK64                 = 0x2f
+       F_OFD_SETLK                   = 0x30
+       F_OFD_SETLK64                 = 0x30
+       F_OFD_SETLKW                  = 0x31
+       F_OFD_SETLKW64                = 0x31
+       F_PRIV                        = 0xf
+       F_QUOTACTL                    = 0x11
+       F_RDACC                       = 0x1
+       F_RDDNY                       = 0x1
+       F_RDLCK                       = 0x1
+       F_REVOKE                      = 0x19
+       F_RMACC                       = 0x4
+       F_RMDNY                       = 0x4
+       F_RWACC                       = 0x3
+       F_RWDNY                       = 0x3
+       F_SETFD                       = 0x2
+       F_SETFL                       = 0x4
+       F_SETLK                       = 0x6
+       F_SETLK64                     = 0x6
+       F_SETLK64_NBMAND              = 0x2a
+       F_SETLKW                      = 0x7
+       F_SETLKW64                    = 0x7
+       F_SETLK_NBMAND                = 0x2a
+       F_SETOWN                      = 0x18
+       F_SHARE                       = 0x28
+       F_SHARE_NBMAND                = 0x2b
+       F_UNLCK                       = 0x3
+       F_UNLKSYS                     = 0x4
+       F_UNSHARE                     = 0x29
+       F_WRACC                       = 0x2
+       F_WRDNY                       = 0x2
+       F_WRLCK                       = 0x2
+       HUPCL                         = 0x400
+       IBSHIFT                       = 0x10
+       ICANON                        = 0x2
+       ICRNL                         = 0x100
+       IEXTEN                        = 0x8000
+       IFF_ADDRCONF                  = 0x80000
+       IFF_ALLMULTI                  = 0x200
+       IFF_ANYCAST                   = 0x400000
+       IFF_BROADCAST                 = 0x2
+       IFF_CANTCHANGE                = 0x7f203003b5a
+       IFF_COS_ENABLED               = 0x200000000
+       IFF_DEBUG                     = 0x4
+       IFF_DEPRECATED                = 0x40000
+       IFF_DHCPRUNNING               = 0x4000
+       IFF_DUPLICATE                 = 0x4000000000
+       IFF_FAILED                    = 0x10000000
+       IFF_FIXEDMTU                  = 0x1000000000
+       IFF_INACTIVE                  = 0x40000000
+       IFF_INTELLIGENT               = 0x400
+       IFF_IPMP                      = 0x8000000000
+       IFF_IPMP_CANTCHANGE           = 0x10000000
+       IFF_IPMP_INVALID              = 0x1ec200080
+       IFF_IPV4                      = 0x1000000
+       IFF_IPV6                      = 0x2000000
+       IFF_L3PROTECT                 = 0x40000000000
+       IFF_LOOPBACK                  = 0x8
+       IFF_MULTICAST                 = 0x800
+       IFF_MULTI_BCAST               = 0x1000
+       IFF_NOACCEPT                  = 0x4000000
+       IFF_NOARP                     = 0x80
+       IFF_NOFAILOVER                = 0x8000000
+       IFF_NOLINKLOCAL               = 0x20000000000
+       IFF_NOLOCAL                   = 0x20000
+       IFF_NONUD                     = 0x200000
+       IFF_NORTEXCH                  = 0x800000
+       IFF_NOTRAILERS                = 0x20
+       IFF_NOXMIT                    = 0x10000
+       IFF_OFFLINE                   = 0x80000000
+       IFF_POINTOPOINT               = 0x10
+       IFF_PREFERRED                 = 0x400000000
+       IFF_PRIVATE                   = 0x8000
+       IFF_PROMISC                   = 0x100
+       IFF_ROUTER                    = 0x100000
+       IFF_RUNNING                   = 0x40
+       IFF_STANDBY                   = 0x20000000
+       IFF_TEMPORARY                 = 0x800000000
+       IFF_UNNUMBERED                = 0x2000
+       IFF_UP                        = 0x1
+       IFF_VIRTUAL                   = 0x2000000000
+       IFF_VRRP                      = 0x10000000000
+       IFF_XRESOLV                   = 0x100000000
+       IFNAMSIZ                      = 0x10
+       IFT_1822                      = 0x2
+       IFT_6TO4                      = 0xca
+       IFT_AAL5                      = 0x31
+       IFT_ARCNET                    = 0x23
+       IFT_ARCNETPLUS                = 0x24
+       IFT_ATM                       = 0x25
+       IFT_CEPT                      = 0x13
+       IFT_DS3                       = 0x1e
+       IFT_EON                       = 0x19
+       IFT_ETHER                     = 0x6
+       IFT_FDDI                      = 0xf
+       IFT_FRELAY                    = 0x20
+       IFT_FRELAYDCE                 = 0x2c
+       IFT_HDH1822                   = 0x3
+       IFT_HIPPI                     = 0x2f
+       IFT_HSSI                      = 0x2e
+       IFT_HY                        = 0xe
+       IFT_IB                        = 0xc7
+       IFT_IPV4                      = 0xc8
+       IFT_IPV6                      = 0xc9
+       IFT_ISDNBASIC                 = 0x14
+       IFT_ISDNPRIMARY               = 0x15
+       IFT_ISO88022LLC               = 0x29
+       IFT_ISO88023                  = 0x7
+       IFT_ISO88024                  = 0x8
+       IFT_ISO88025                  = 0x9
+       IFT_ISO88026                  = 0xa
+       IFT_LAPB                      = 0x10
+       IFT_LOCALTALK                 = 0x2a
+       IFT_LOOP                      = 0x18
+       IFT_MIOX25                    = 0x26
+       IFT_MODEM                     = 0x30
+       IFT_NSIP                      = 0x1b
+       IFT_OTHER                     = 0x1
+       IFT_P10                       = 0xc
+       IFT_P80                       = 0xd
+       IFT_PARA                      = 0x22
+       IFT_PPP                       = 0x17
+       IFT_PROPMUX                   = 0x36
+       IFT_PROPVIRTUAL               = 0x35
+       IFT_PTPSERIAL                 = 0x16
+       IFT_RS232                     = 0x21
+       IFT_SDLC                      = 0x11
+       IFT_SIP                       = 0x1f
+       IFT_SLIP                      = 0x1c
+       IFT_SMDSDXI                   = 0x2b
+       IFT_SMDSICIP                  = 0x34
+       IFT_SONET                     = 0x27
+       IFT_SONETPATH                 = 0x32
+       IFT_SONETVT                   = 0x33
+       IFT_STARLAN                   = 0xb
+       IFT_T1                        = 0x12
+       IFT_ULTRA                     = 0x1d
+       IFT_V35                       = 0x2d
+       IFT_X25                       = 0x5
+       IFT_X25DDN                    = 0x4
+       IFT_X25PLE                    = 0x28
+       IFT_XETHER                    = 0x1a
+       IGNBRK                        = 0x1
+       IGNCR                         = 0x80
+       IGNPAR                        = 0x4
+       IMAXBEL                       = 0x2000
+       INLCR                         = 0x40
+       INPCK                         = 0x10
+       IN_AUTOCONF_MASK              = 0xffff0000
+       IN_AUTOCONF_NET               = 0xa9fe0000
+       IN_CLASSA_HOST                = 0xffffff
+       IN_CLASSA_MAX                 = 0x80
+       IN_CLASSA_NET                 = 0xff000000
+       IN_CLASSA_NSHIFT              = 0x18
+       IN_CLASSB_HOST                = 0xffff
+       IN_CLASSB_MAX                 = 0x10000
+       IN_CLASSB_NET                 = 0xffff0000
+       IN_CLASSB_NSHIFT              = 0x10
+       IN_CLASSC_HOST                = 0xff
+       IN_CLASSC_NET                 = 0xffffff00
+       IN_CLASSC_NSHIFT              = 0x8
+       IN_CLASSD_HOST                = 0xfffffff
+       IN_CLASSD_NET                 = 0xf0000000
+       IN_CLASSD_NSHIFT              = 0x1c
+       IN_CLASSE_NET                 = 0xffffffff
+       IN_LOOPBACKNET                = 0x7f
+       IN_PRIVATE12_MASK             = 0xfff00000
+       IN_PRIVATE12_NET              = 0xac100000
+       IN_PRIVATE16_MASK             = 0xffff0000
+       IN_PRIVATE16_NET              = 0xc0a80000
+       IN_PRIVATE8_MASK              = 0xff000000
+       IN_PRIVATE8_NET               = 0xa000000
+       IPPROTO_AH                    = 0x33
+       IPPROTO_DSTOPTS               = 0x3c
+       IPPROTO_EGP                   = 0x8
+       IPPROTO_ENCAP                 = 0x4
+       IPPROTO_EON                   = 0x50
+       IPPROTO_ESP                   = 0x32
+       IPPROTO_FRAGMENT              = 0x2c
+       IPPROTO_GGP                   = 0x3
+       IPPROTO_HELLO                 = 0x3f
+       IPPROTO_HOPOPTS               = 0x0
+       IPPROTO_ICMP                  = 0x1
+       IPPROTO_ICMPV6                = 0x3a
+       IPPROTO_IDP                   = 0x16
+       IPPROTO_IGMP                  = 0x2
+       IPPROTO_IP                    = 0x0
+       IPPROTO_IPV6                  = 0x29
+       IPPROTO_MAX                   = 0x100
+       IPPROTO_ND                    = 0x4d
+       IPPROTO_NONE                  = 0x3b
+       IPPROTO_OSPF                  = 0x59
+       IPPROTO_PIM                   = 0x67
+       IPPROTO_PUP                   = 0xc
+       IPPROTO_RAW                   = 0xff
+       IPPROTO_ROUTING               = 0x2b
+       IPPROTO_RSVP                  = 0x2e
+       IPPROTO_SCTP                  = 0x84
+       IPPROTO_TCP                   = 0x6
+       IPPROTO_UDP                   = 0x11
+       IPV6_ADD_MEMBERSHIP           = 0x9
+       IPV6_BOUND_IF                 = 0x41
+       IPV6_CHECKSUM                 = 0x18
+       IPV6_DONTFRAG                 = 0x21
+       IPV6_DROP_MEMBERSHIP          = 0xa
+       IPV6_DSTOPTS                  = 0xf
+       IPV6_FLOWINFO_FLOWLABEL       = 0xffff0f00
+       IPV6_FLOWINFO_TCLASS          = 0xf00f
+       IPV6_HOPLIMIT                 = 0xc
+       IPV6_HOPOPTS                  = 0xe
+       IPV6_JOIN_GROUP               = 0x9
+       IPV6_LEAVE_GROUP              = 0xa
+       IPV6_MULTICAST_HOPS           = 0x7
+       IPV6_MULTICAST_IF             = 0x6
+       IPV6_MULTICAST_LOOP           = 0x8
+       IPV6_NEXTHOP                  = 0xd
+       IPV6_PAD1_OPT                 = 0x0
+       IPV6_PATHMTU                  = 0x25
+       IPV6_PKTINFO                  = 0xb
+       IPV6_PREFER_SRC_CGA           = 0x20
+       IPV6_PREFER_SRC_CGADEFAULT    = 0x10
+       IPV6_PREFER_SRC_CGAMASK       = 0x30
+       IPV6_PREFER_SRC_COA           = 0x2
+       IPV6_PREFER_SRC_DEFAULT       = 0x15
+       IPV6_PREFER_SRC_HOME          = 0x1
+       IPV6_PREFER_SRC_MASK          = 0x3f
+       IPV6_PREFER_SRC_MIPDEFAULT    = 0x1
+       IPV6_PREFER_SRC_MIPMASK       = 0x3
+       IPV6_PREFER_SRC_NONCGA        = 0x10
+       IPV6_PREFER_SRC_PUBLIC        = 0x4
+       IPV6_PREFER_SRC_TMP           = 0x8
+       IPV6_PREFER_SRC_TMPDEFAULT    = 0x4
+       IPV6_PREFER_SRC_TMPMASK       = 0xc
+       IPV6_RECVDSTOPTS              = 0x28
+       IPV6_RECVHOPLIMIT             = 0x13
+       IPV6_RECVHOPOPTS              = 0x14
+       IPV6_RECVPATHMTU              = 0x24
+       IPV6_RECVPKTINFO              = 0x12
+       IPV6_RECVRTHDR                = 0x16
+       IPV6_RECVRTHDRDSTOPTS         = 0x17
+       IPV6_RECVTCLASS               = 0x19
+       IPV6_RTHDR                    = 0x10
+       IPV6_RTHDRDSTOPTS             = 0x11
+       IPV6_RTHDR_TYPE_0             = 0x0
+       IPV6_SEC_OPT                  = 0x22
+       IPV6_SRC_PREFERENCES          = 0x23
+       IPV6_TCLASS                   = 0x26
+       IPV6_UNICAST_HOPS             = 0x5
+       IPV6_UNSPEC_SRC               = 0x42
+       IPV6_USE_MIN_MTU              = 0x20
+       IPV6_V6ONLY                   = 0x27
+       IP_ADD_MEMBERSHIP             = 0x13
+       IP_ADD_SOURCE_MEMBERSHIP      = 0x17
+       IP_BLOCK_SOURCE               = 0x15
+       IP_BOUND_IF                   = 0x41
+       IP_BROADCAST                  = 0x106
+       IP_BROADCAST_TTL              = 0x43
+       IP_DEFAULT_MULTICAST_LOOP     = 0x1
+       IP_DEFAULT_MULTICAST_TTL      = 0x1
+       IP_DF                         = 0x4000
+       IP_DHCPINIT_IF                = 0x45
+       IP_DONTFRAG                   = 0x1b
+       IP_DONTROUTE                  = 0x105
+       IP_DROP_MEMBERSHIP            = 0x14
+       IP_DROP_SOURCE_MEMBERSHIP     = 0x18
+       IP_HDRINCL                    = 0x2
+       IP_MAXPACKET                  = 0xffff
+       IP_MF                         = 0x2000
+       IP_MSS                        = 0x240
+       IP_MULTICAST_IF               = 0x10
+       IP_MULTICAST_LOOP             = 0x12
+       IP_MULTICAST_TTL              = 0x11
+       IP_NEXTHOP                    = 0x19
+       IP_OPTIONS                    = 0x1
+       IP_PKTINFO                    = 0x1a
+       IP_RECVDSTADDR                = 0x7
+       IP_RECVIF                     = 0x9
+       IP_RECVOPTS                   = 0x5
+       IP_RECVPKTINFO                = 0x1a
+       IP_RECVRETOPTS                = 0x6
+       IP_RECVSLLA                   = 0xa
+       IP_RECVTTL                    = 0xb
+       IP_RETOPTS                    = 0x8
+       IP_REUSEADDR                  = 0x104
+       IP_SEC_OPT                    = 0x22
+       IP_TOS                        = 0x3
+       IP_TTL                        = 0x4
+       IP_UNBLOCK_SOURCE             = 0x16
+       IP_UNSPEC_SRC                 = 0x42
+       ISIG                          = 0x1
+       ISTRIP                        = 0x20
+       IUCLC                         = 0x200
+       IXANY                         = 0x800
+       IXOFF                         = 0x1000
+       IXON                          = 0x400
+       LOCK_EX                       = 0x2
+       LOCK_NB                       = 0x4
+       LOCK_SH                       = 0x1
+       LOCK_UN                       = 0x8
+       MADV_ACCESS_DEFAULT           = 0x6
+       MADV_ACCESS_LWP               = 0x7
+       MADV_ACCESS_MANY              = 0x8
+       MADV_DONTNEED                 = 0x4
+       MADV_FREE                     = 0x5
+       MADV_NORMAL                   = 0x0
+       MADV_PURGE                    = 0x9
+       MADV_RANDOM                   = 0x1
+       MADV_SEQUENTIAL               = 0x2
+       MADV_WILLNEED                 = 0x3
+       MAP_32BIT                     = 0x80
+       MAP_ALIGN                     = 0x200
+       MAP_ANON                      = 0x100
+       MAP_ANONYMOUS                 = 0x100
+       MAP_FILE                      = 0x0
+       MAP_FIXED                     = 0x10
+       MAP_INITDATA                  = 0x800
+       MAP_NORESERVE                 = 0x40
+       MAP_PRIVATE                   = 0x2
+       MAP_RENAME                    = 0x20
+       MAP_SHARED                    = 0x1
+       MAP_TEXT                      = 0x400
+       MAP_TYPE                      = 0xf
+       MCL_CURRENT                   = 0x1
+       MCL_FUTURE                    = 0x2
+       MSG_CTRUNC                    = 0x10
+       MSG_DONTROUTE                 = 0x4
+       MSG_DONTWAIT                  = 0x80
+       MSG_DUPCTRL                   = 0x800
+       MSG_EOR                       = 0x8
+       MSG_MAXIOVLEN                 = 0x10
+       MSG_NOTIFICATION              = 0x100
+       MSG_OOB                       = 0x1
+       MSG_PEEK                      = 0x2
+       MSG_TRUNC                     = 0x20
+       MSG_WAITALL                   = 0x40
+       MSG_XPG4_2                    = 0x8000
+       MS_ASYNC                      = 0x1
+       MS_INVALIDATE                 = 0x2
+       MS_OLDSYNC                    = 0x0
+       MS_SYNC                       = 0x4
+       M_FLUSH                       = 0x86
+       NL0                           = 0x0
+       NL1                           = 0x100
+       NLDLY                         = 0x100
+       NOFLSH                        = 0x80
+       OCRNL                         = 0x8
+       OFDEL                         = 0x80
+       OFILL                         = 0x40
+       OLCUC                         = 0x2
+       ONLCR                         = 0x4
+       ONLRET                        = 0x20
+       ONOCR                         = 0x10
+       OPENFAIL                      = -0x1
+       OPOST                         = 0x1
+       O_ACCMODE                     = 0x600003
+       O_APPEND                      = 0x8
+       O_CLOEXEC                     = 0x800000
+       O_CREAT                       = 0x100
+       O_DSYNC                       = 0x40
+       O_EXCL                        = 0x400
+       O_EXEC                        = 0x400000
+       O_LARGEFILE                   = 0x2000
+       O_NDELAY                      = 0x4
+       O_NOCTTY                      = 0x800
+       O_NOFOLLOW                    = 0x20000
+       O_NOLINKS                     = 0x40000
+       O_NONBLOCK                    = 0x80
+       O_RDONLY                      = 0x0
+       O_RDWR                        = 0x2
+       O_RSYNC                       = 0x8000
+       O_SEARCH                      = 0x200000
+       O_SIOCGIFCONF                 = -0x3ff796ec
+       O_SIOCGLIFCONF                = -0x3fef9688
+       O_SYNC                        = 0x10
+       O_TRUNC                       = 0x200
+       O_WRONLY                      = 0x1
+       O_XATTR                       = 0x4000
+       PARENB                        = 0x100
+       PAREXT                        = 0x100000
+       PARMRK                        = 0x8
+       PARODD                        = 0x200
+       PENDIN                        = 0x4000
+       PRIO_PGRP                     = 0x1
+       PRIO_PROCESS                  = 0x0
+       PRIO_USER                     = 0x2
+       PROT_EXEC                     = 0x4
+       PROT_NONE                     = 0x0
+       PROT_READ                     = 0x1
+       PROT_WRITE                    = 0x2
+       RLIMIT_AS                     = 0x6
+       RLIMIT_CORE                   = 0x4
+       RLIMIT_CPU                    = 0x0
+       RLIMIT_DATA                   = 0x2
+       RLIMIT_FSIZE                  = 0x1
+       RLIMIT_NOFILE                 = 0x5
+       RLIMIT_STACK                  = 0x3
+       RLIM_INFINITY                 = -0x3
+       RTAX_AUTHOR                   = 0x6
+       RTAX_BRD                      = 0x7
+       RTAX_DST                      = 0x0
+       RTAX_GATEWAY                  = 0x1
+       RTAX_GENMASK                  = 0x3
+       RTAX_IFA                      = 0x5
+       RTAX_IFP                      = 0x4
+       RTAX_MAX                      = 0x9
+       RTAX_NETMASK                  = 0x2
+       RTAX_SRC                      = 0x8
+       RTA_AUTHOR                    = 0x40
+       RTA_BRD                       = 0x80
+       RTA_DST                       = 0x1
+       RTA_GATEWAY                   = 0x2
+       RTA_GENMASK                   = 0x8
+       RTA_IFA                       = 0x20
+       RTA_IFP                       = 0x10
+       RTA_NETMASK                   = 0x4
+       RTA_NUMBITS                   = 0x9
+       RTA_SRC                       = 0x100
+       RTF_BLACKHOLE                 = 0x1000
+       RTF_CLONING                   = 0x100
+       RTF_DONE                      = 0x40
+       RTF_DYNAMIC                   = 0x10
+       RTF_GATEWAY                   = 0x2
+       RTF_HOST                      = 0x4
+       RTF_INDIRECT                  = 0x40000
+       RTF_KERNEL                    = 0x80000
+       RTF_LLINFO                    = 0x400
+       RTF_MASK                      = 0x80
+       RTF_MODIFIED                  = 0x20
+       RTF_MULTIRT                   = 0x10000
+       RTF_PRIVATE                   = 0x2000
+       RTF_PROTO1                    = 0x8000
+       RTF_PROTO2                    = 0x4000
+       RTF_REJECT                    = 0x8
+       RTF_SETSRC                    = 0x20000
+       RTF_STATIC                    = 0x800
+       RTF_UP                        = 0x1
+       RTF_XRESOLVE                  = 0x200
+       RTF_ZONE                      = 0x100000
+       RTM_ADD                       = 0x1
+       RTM_CHANGE                    = 0x3
+       RTM_CHGADDR                   = 0xf
+       RTM_DELADDR                   = 0xd
+       RTM_DELETE                    = 0x2
+       RTM_FREEADDR                  = 0x10
+       RTM_GET                       = 0x4
+       RTM_IFINFO                    = 0xe
+       RTM_LOCK                      = 0x8
+       RTM_LOSING                    = 0x5
+       RTM_MISS                      = 0x7
+       RTM_NEWADDR                   = 0xc
+       RTM_OLDADD                    = 0x9
+       RTM_OLDDEL                    = 0xa
+       RTM_REDIRECT                  = 0x6
+       RTM_RESOLVE                   = 0xb
+       RTM_VERSION                   = 0x3
+       RTV_EXPIRE                    = 0x4
+       RTV_HOPCOUNT                  = 0x2
+       RTV_MTU                       = 0x1
+       RTV_RPIPE                     = 0x8
+       RTV_RTT                       = 0x40
+       RTV_RTTVAR                    = 0x80
+       RTV_SPIPE                     = 0x10
+       RTV_SSTHRESH                  = 0x20
+       RT_AWARE                      = 0x1
+       RUSAGE_CHILDREN               = -0x1
+       RUSAGE_SELF                   = 0x0
+       SCM_RIGHTS                    = 0x1010
+       SCM_TIMESTAMP                 = 0x1013
+       SCM_UCRED                     = 0x1012
+       SHUT_RD                       = 0x0
+       SHUT_RDWR                     = 0x2
+       SHUT_WR                       = 0x1
+       SIG2STR_MAX                   = 0x20
+       SIOCADDMULTI                  = -0x7fdf96cf
+       SIOCADDRT                     = -0x7fcf8df6
+       SIOCATMARK                    = 0x40047307
+       SIOCDARP                      = -0x7fdb96e0
+       SIOCDELMULTI                  = -0x7fdf96ce
+       SIOCDELRT                     = -0x7fcf8df5
+       SIOCDXARP                     = -0x7fff9658
+       SIOCGARP                      = -0x3fdb96e1
+       SIOCGDSTINFO                  = -0x3fff965c
+       SIOCGENADDR                   = -0x3fdf96ab
+       SIOCGENPSTATS                 = -0x3fdf96c7
+       SIOCGETLSGCNT                 = -0x3fef8deb
+       SIOCGETNAME                   = 0x40107334
+       SIOCGETPEER                   = 0x40107335
+       SIOCGETPROP                   = -0x3fff8f44
+       SIOCGETSGCNT                  = -0x3feb8deb
+       SIOCGETSYNC                   = -0x3fdf96d3
+       SIOCGETVIFCNT                 = -0x3feb8dec
+       SIOCGHIWAT                    = 0x40047301
+       SIOCGIFADDR                   = -0x3fdf96f3
+       SIOCGIFBRDADDR                = -0x3fdf96e9
+       SIOCGIFCONF                   = -0x3ff796a4
+       SIOCGIFDSTADDR                = -0x3fdf96f1
+       SIOCGIFFLAGS                  = -0x3fdf96ef
+       SIOCGIFHWADDR                 = -0x3fdf9647
+       SIOCGIFINDEX                  = -0x3fdf96a6
+       SIOCGIFMEM                    = -0x3fdf96ed
+       SIOCGIFMETRIC                 = -0x3fdf96e5
+       SIOCGIFMTU                    = -0x3fdf96ea
+       SIOCGIFMUXID                  = -0x3fdf96a8
+       SIOCGIFNETMASK                = -0x3fdf96e7
+       SIOCGIFNUM                    = 0x40046957
+       SIOCGIP6ADDRPOLICY            = -0x3fff965e
+       SIOCGIPMSFILTER               = -0x3ffb964c
+       SIOCGLIFADDR                  = -0x3f87968f
+       SIOCGLIFBINDING               = -0x3f879666
+       SIOCGLIFBRDADDR               = -0x3f879685
+       SIOCGLIFCONF                  = -0x3fef965b
+       SIOCGLIFDADSTATE              = -0x3f879642
+       SIOCGLIFDSTADDR               = -0x3f87968d
+       SIOCGLIFFLAGS                 = -0x3f87968b
+       SIOCGLIFGROUPINFO             = -0x3f4b9663
+       SIOCGLIFGROUPNAME             = -0x3f879664
+       SIOCGLIFHWADDR                = -0x3f879640
+       SIOCGLIFINDEX                 = -0x3f87967b
+       SIOCGLIFLNKINFO               = -0x3f879674
+       SIOCGLIFMETRIC                = -0x3f879681
+       SIOCGLIFMTU                   = -0x3f879686
+       SIOCGLIFMUXID                 = -0x3f87967d
+       SIOCGLIFNETMASK               = -0x3f879683
+       SIOCGLIFNUM                   = -0x3ff3967e
+       SIOCGLIFSRCOF                 = -0x3fef964f
+       SIOCGLIFSUBNET                = -0x3f879676
+       SIOCGLIFTOKEN                 = -0x3f879678
+       SIOCGLIFUSESRC                = -0x3f879651
+       SIOCGLIFZONE                  = -0x3f879656
+       SIOCGLOWAT                    = 0x40047303
+       SIOCGMSFILTER                 = -0x3ffb964e
+       SIOCGPGRP                     = 0x40047309
+       SIOCGSTAMP                    = -0x3fef9646
+       SIOCGXARP                     = -0x3fff9659
+       SIOCIFDETACH                  = -0x7fdf96c8
+       SIOCILB                       = -0x3ffb9645
+       SIOCLIFADDIF                  = -0x3f879691
+       SIOCLIFDELND                  = -0x7f879673
+       SIOCLIFGETND                  = -0x3f879672
+       SIOCLIFREMOVEIF               = -0x7f879692
+       SIOCLIFSETND                  = -0x7f879671
+       SIOCLOWER                     = -0x7fdf96d7
+       SIOCSARP                      = -0x7fdb96e2
+       SIOCSCTPGOPT                  = -0x3fef9653
+       SIOCSCTPPEELOFF               = -0x3ffb9652
+       SIOCSCTPSOPT                  = -0x7fef9654
+       SIOCSENABLESDP                = -0x3ffb9649
+       SIOCSETPROP                   = -0x7ffb8f43
+       SIOCSETSYNC                   = -0x7fdf96d4
+       SIOCSHIWAT                    = -0x7ffb8d00
+       SIOCSIFADDR                   = -0x7fdf96f4
+       SIOCSIFBRDADDR                = -0x7fdf96e8
+       SIOCSIFDSTADDR                = -0x7fdf96f2
+       SIOCSIFFLAGS                  = -0x7fdf96f0
+       SIOCSIFINDEX                  = -0x7fdf96a5
+       SIOCSIFMEM                    = -0x7fdf96ee
+       SIOCSIFMETRIC                 = -0x7fdf96e4
+       SIOCSIFMTU                    = -0x7fdf96eb
+       SIOCSIFMUXID                  = -0x7fdf96a7
+       SIOCSIFNAME                   = -0x7fdf96b7
+       SIOCSIFNETMASK                = -0x7fdf96e6
+       SIOCSIP6ADDRPOLICY            = -0x7fff965d
+       SIOCSIPMSFILTER               = -0x7ffb964b
+       SIOCSLGETREQ                  = -0x3fdf96b9
+       SIOCSLIFADDR                  = -0x7f879690
+       SIOCSLIFBRDADDR               = -0x7f879684
+       SIOCSLIFDSTADDR               = -0x7f87968e
+       SIOCSLIFFLAGS                 = -0x7f87968c
+       SIOCSLIFGROUPNAME             = -0x7f879665
+       SIOCSLIFINDEX                 = -0x7f87967a
+       SIOCSLIFLNKINFO               = -0x7f879675
+       SIOCSLIFMETRIC                = -0x7f879680
+       SIOCSLIFMTU                   = -0x7f879687
+       SIOCSLIFMUXID                 = -0x7f87967c
+       SIOCSLIFNAME                  = -0x3f87967f
+       SIOCSLIFNETMASK               = -0x7f879682
+       SIOCSLIFPREFIX                = -0x3f879641
+       SIOCSLIFSUBNET                = -0x7f879677
+       SIOCSLIFTOKEN                 = -0x7f879679
+       SIOCSLIFUSESRC                = -0x7f879650
+       SIOCSLIFZONE                  = -0x7f879655
+       SIOCSLOWAT                    = -0x7ffb8cfe
+       SIOCSLSTAT                    = -0x7fdf96b8
+       SIOCSMSFILTER                 = -0x7ffb964d
+       SIOCSPGRP                     = -0x7ffb8cf8
+       SIOCSPROMISC                  = -0x7ffb96d0
+       SIOCSQPTR                     = -0x3ffb9648
+       SIOCSSDSTATS                  = -0x3fdf96d2
+       SIOCSSESTATS                  = -0x3fdf96d1
+       SIOCSXARP                     = -0x7fff965a
+       SIOCTMYADDR                   = -0x3ff79670
+       SIOCTMYSITE                   = -0x3ff7966e
+       SIOCTONLINK                   = -0x3ff7966f
+       SIOCUPPER                     = -0x7fdf96d8
+       SIOCX25RCV                    = -0x3fdf96c4
+       SIOCX25TBL                    = -0x3fdf96c3
+       SIOCX25XMT                    = -0x3fdf96c5
+       SIOCXPROTO                    = 0x20007337
+       SOCK_CLOEXEC                  = 0x80000
+       SOCK_DGRAM                    = 0x1
+       SOCK_NDELAY                   = 0x200000
+       SOCK_NONBLOCK                 = 0x100000
+       SOCK_RAW                      = 0x4
+       SOCK_RDM                      = 0x5
+       SOCK_SEQPACKET                = 0x6
+       SOCK_STREAM                   = 0x2
+       SOCK_TYPE_MASK                = 0xffff
+       SOL_FILTER                    = 0xfffc
+       SOL_PACKET                    = 0xfffd
+       SOL_ROUTE                     = 0xfffe
+       SOL_SOCKET                    = 0xffff
+       SOMAXCONN                     = 0x80
+       SO_ACCEPTCONN                 = 0x2
+       SO_ALL                        = 0x3f
+       SO_ALLZONES                   = 0x1014
+       SO_ANON_MLP                   = 0x100a
+       SO_ATTACH_FILTER              = 0x40000001
+       SO_BAND                       = 0x4000
+       SO_BROADCAST                  = 0x20
+       SO_COPYOPT                    = 0x80000
+       SO_DEBUG                      = 0x1
+       SO_DELIM                      = 0x8000
+       SO_DETACH_FILTER              = 0x40000002
+       SO_DGRAM_ERRIND               = 0x200
+       SO_DOMAIN                     = 0x100c
+       SO_DONTLINGER                 = -0x81
+       SO_DONTROUTE                  = 0x10
+       SO_ERROPT                     = 0x40000
+       SO_ERROR                      = 0x1007
+       SO_EXCLBIND                   = 0x1015
+       SO_HIWAT                      = 0x10
+       SO_ISNTTY                     = 0x800
+       SO_ISTTY                      = 0x400
+       SO_KEEPALIVE                  = 0x8
+       SO_LINGER                     = 0x80
+       SO_LOWAT                      = 0x20
+       SO_MAC_EXEMPT                 = 0x100b
+       SO_MAC_IMPLICIT               = 0x1016
+       SO_MAXBLK                     = 0x100000
+       SO_MAXPSZ                     = 0x8
+       SO_MINPSZ                     = 0x4
+       SO_MREADOFF                   = 0x80
+       SO_MREADON                    = 0x40
+       SO_NDELOFF                    = 0x200
+       SO_NDELON                     = 0x100
+       SO_NODELIM                    = 0x10000
+       SO_OOBINLINE                  = 0x100
+       SO_PROTOTYPE                  = 0x1009
+       SO_RCVBUF                     = 0x1002
+       SO_RCVLOWAT                   = 0x1004
+       SO_RCVPSH                     = 0x100d
+       SO_RCVTIMEO                   = 0x1006
+       SO_READOPT                    = 0x1
+       SO_RECVUCRED                  = 0x400
+       SO_REUSEADDR                  = 0x4
+       SO_SECATTR                    = 0x1011
+       SO_SNDBUF                     = 0x1001
+       SO_SNDLOWAT                   = 0x1003
+       SO_SNDTIMEO                   = 0x1005
+       SO_STRHOLD                    = 0x20000
+       SO_TAIL                       = 0x200000
+       SO_TIMESTAMP                  = 0x1013
+       SO_TONSTOP                    = 0x2000
+       SO_TOSTOP                     = 0x1000
+       SO_TYPE                       = 0x1008
+       SO_USELOOPBACK                = 0x40
+       SO_VRRP                       = 0x1017
+       SO_WROFF                      = 0x2
+       TAB0                          = 0x0
+       TAB1                          = 0x800
+       TAB2                          = 0x1000
+       TAB3                          = 0x1800
+       TABDLY                        = 0x1800
+       TCFLSH                        = 0x5407
+       TCGETA                        = 0x5401
+       TCGETS                        = 0x540d
+       TCIFLUSH                      = 0x0
+       TCIOFF                        = 0x2
+       TCIOFLUSH                     = 0x2
+       TCION                         = 0x3
+       TCOFLUSH                      = 0x1
+       TCOOFF                        = 0x0
+       TCOON                         = 0x1
+       TCP_ABORT_THRESHOLD           = 0x11
+       TCP_ANONPRIVBIND              = 0x20
+       TCP_CONN_ABORT_THRESHOLD      = 0x13
+       TCP_CONN_NOTIFY_THRESHOLD     = 0x12
+       TCP_CORK                      = 0x18
+       TCP_EXCLBIND                  = 0x21
+       TCP_INIT_CWND                 = 0x15
+       TCP_KEEPALIVE                 = 0x8
+       TCP_KEEPALIVE_ABORT_THRESHOLD = 0x17
+       TCP_KEEPALIVE_THRESHOLD       = 0x16
+       TCP_KEEPCNT                   = 0x23
+       TCP_KEEPIDLE                  = 0x22
+       TCP_KEEPINTVL                 = 0x24
+       TCP_LINGER2                   = 0x1c
+       TCP_MAXSEG                    = 0x2
+       TCP_MSS                       = 0x218
+       TCP_NODELAY                   = 0x1
+       TCP_NOTIFY_THRESHOLD          = 0x10
+       TCP_RECVDSTADDR               = 0x14
+       TCP_RTO_INITIAL               = 0x19
+       TCP_RTO_MAX                   = 0x1b
+       TCP_RTO_MIN                   = 0x1a
+       TCSAFLUSH                     = 0x5410
+       TCSBRK                        = 0x5405
+       TCSETA                        = 0x5402
+       TCSETAF                       = 0x5404
+       TCSETAW                       = 0x5403
+       TCSETS                        = 0x540e
+       TCSETSF                       = 0x5410
+       TCSETSW                       = 0x540f
+       TCXONC                        = 0x5406
+       TIOC                          = 0x5400
+       TIOCCBRK                      = 0x747a
+       TIOCCDTR                      = 0x7478
+       TIOCCILOOP                    = 0x746c
+       TIOCEXCL                      = 0x740d
+       TIOCFLUSH                     = 0x7410
+       TIOCGETC                      = 0x7412
+       TIOCGETD                      = 0x7400
+       TIOCGETP                      = 0x7408
+       TIOCGLTC                      = 0x7474
+       TIOCGPGRP                     = 0x7414
+       TIOCGPPS                      = 0x547d
+       TIOCGPPSEV                    = 0x547f
+       TIOCGSID                      = 0x7416
+       TIOCGSOFTCAR                  = 0x5469
+       TIOCGWINSZ                    = 0x5468
+       TIOCHPCL                      = 0x7402
+       TIOCKBOF                      = 0x5409
+       TIOCKBON                      = 0x5408
+       TIOCLBIC                      = 0x747e
+       TIOCLBIS                      = 0x747f
+       TIOCLGET                      = 0x747c
+       TIOCLSET                      = 0x747d
+       TIOCMBIC                      = 0x741c
+       TIOCMBIS                      = 0x741b
+       TIOCMGET                      = 0x741d
+       TIOCMSET                      = 0x741a
+       TIOCM_CAR                     = 0x40
+       TIOCM_CD                      = 0x40
+       TIOCM_CTS                     = 0x20
+       TIOCM_DSR                     = 0x100
+       TIOCM_DTR                     = 0x2
+       TIOCM_LE                      = 0x1
+       TIOCM_RI                      = 0x80
+       TIOCM_RNG                     = 0x80
+       TIOCM_RTS                     = 0x4
+       TIOCM_SR                      = 0x10
+       TIOCM_ST                      = 0x8
+       TIOCNOTTY                     = 0x7471
+       TIOCNXCL                      = 0x740e
+       TIOCOUTQ                      = 0x7473
+       TIOCREMOTE                    = 0x741e
+       TIOCSBRK                      = 0x747b
+       TIOCSCTTY                     = 0x7484
+       TIOCSDTR                      = 0x7479
+       TIOCSETC                      = 0x7411
+       TIOCSETD                      = 0x7401
+       TIOCSETN                      = 0x740a
+       TIOCSETP                      = 0x7409
+       TIOCSIGNAL                    = 0x741f
+       TIOCSILOOP                    = 0x746d
+       TIOCSLTC                      = 0x7475
+       TIOCSPGRP                     = 0x7415
+       TIOCSPPS                      = 0x547e
+       TIOCSSOFTCAR                  = 0x546a
+       TIOCSTART                     = 0x746e
+       TIOCSTI                       = 0x7417
+       TIOCSTOP                      = 0x746f
+       TIOCSWINSZ                    = 0x5467
+       TOSTOP                        = 0x100
+       VCEOF                         = 0x8
+       VCEOL                         = 0x9
+       VDISCARD                      = 0xd
+       VDSUSP                        = 0xb
+       VEOF                          = 0x4
+       VEOL                          = 0x5
+       VEOL2                         = 0x6
+       VERASE                        = 0x2
+       VINTR                         = 0x0
+       VKILL                         = 0x3
+       VLNEXT                        = 0xf
+       VMIN                          = 0x4
+       VQUIT                         = 0x1
+       VREPRINT                      = 0xc
+       VSTART                        = 0x8
+       VSTATUS                       = 0x10
+       VSTOP                         = 0x9
+       VSUSP                         = 0xa
+       VSWTCH                        = 0x7
+       VT0                           = 0x0
+       VT1                           = 0x4000
+       VTDLY                         = 0x4000
+       VTIME                         = 0x5
+       VWERASE                       = 0xe
+       WCONTFLG                      = 0xffff
+       WCONTINUED                    = 0x8
+       WCOREFLG                      = 0x80
+       WEXITED                       = 0x1
+       WNOHANG                       = 0x40
+       WNOWAIT                       = 0x80
+       WOPTMASK                      = 0xcf
+       WRAP                          = 0x20000
+       WSIGMASK                      = 0x7f
+       WSTOPFLG                      = 0x7f
+       WSTOPPED                      = 0x4
+       WTRAPPED                      = 0x2
+       WUNTRACED                     = 0x4
+       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(0x39)
+       EBUSY           = syscall.Errno(0x10)
+       ECANCELED       = syscall.Errno(0x2f)
+       ECHILD          = syscall.Errno(0xa)
+       ECHRNG          = syscall.Errno(0x25)
+       ECOMM           = syscall.Errno(0x46)
+       ECONNABORTED    = syscall.Errno(0x82)
+       ECONNREFUSED    = syscall.Errno(0x92)
+       ECONNRESET      = syscall.Errno(0x83)
+       EDEADLK         = syscall.Errno(0x2d)
+       EDEADLOCK       = syscall.Errno(0x38)
+       EDESTADDRREQ    = syscall.Errno(0x60)
+       EDOM            = syscall.Errno(0x21)
+       EDQUOT          = syscall.Errno(0x31)
+       EEXIST          = syscall.Errno(0x11)
+       EFAULT          = syscall.Errno(0xe)
+       EFBIG           = syscall.Errno(0x1b)
+       EHOSTDOWN       = syscall.Errno(0x93)
+       EHOSTUNREACH    = syscall.Errno(0x94)
+       EIDRM           = syscall.Errno(0x24)
+       EILSEQ          = syscall.Errno(0x58)
+       EINPROGRESS     = syscall.Errno(0x96)
+       EINTR           = syscall.Errno(0x4)
+       EINVAL          = syscall.Errno(0x16)
+       EIO             = syscall.Errno(0x5)
+       EISCONN         = syscall.Errno(0x85)
+       EISDIR          = syscall.Errno(0x15)
+       EL2HLT          = syscall.Errno(0x2c)
+       EL2NSYNC        = syscall.Errno(0x26)
+       EL3HLT          = syscall.Errno(0x27)
+       EL3RST          = syscall.Errno(0x28)
+       ELIBACC         = syscall.Errno(0x53)
+       ELIBBAD         = syscall.Errno(0x54)
+       ELIBEXEC        = syscall.Errno(0x57)
+       ELIBMAX         = syscall.Errno(0x56)
+       ELIBSCN         = syscall.Errno(0x55)
+       ELNRNG          = syscall.Errno(0x29)
+       ELOCKUNMAPPED   = syscall.Errno(0x48)
+       ELOOP           = syscall.Errno(0x5a)
+       EMFILE          = syscall.Errno(0x18)
+       EMLINK          = syscall.Errno(0x1f)
+       EMSGSIZE        = syscall.Errno(0x61)
+       EMULTIHOP       = syscall.Errno(0x4a)
+       ENAMETOOLONG    = syscall.Errno(0x4e)
+       ENETDOWN        = syscall.Errno(0x7f)
+       ENETRESET       = syscall.Errno(0x81)
+       ENETUNREACH     = syscall.Errno(0x80)
+       ENFILE          = syscall.Errno(0x17)
+       ENOANO          = syscall.Errno(0x35)
+       ENOBUFS         = syscall.Errno(0x84)
+       ENOCSI          = syscall.Errno(0x2b)
+       ENODATA         = syscall.Errno(0x3d)
+       ENODEV          = syscall.Errno(0x13)
+       ENOENT          = syscall.Errno(0x2)
+       ENOEXEC         = syscall.Errno(0x8)
+       ENOLCK          = syscall.Errno(0x2e)
+       ENOLINK         = syscall.Errno(0x43)
+       ENOMEM          = syscall.Errno(0xc)
+       ENOMSG          = syscall.Errno(0x23)
+       ENONET          = syscall.Errno(0x40)
+       ENOPKG          = syscall.Errno(0x41)
+       ENOPROTOOPT     = syscall.Errno(0x63)
+       ENOSPC          = syscall.Errno(0x1c)
+       ENOSR           = syscall.Errno(0x3f)
+       ENOSTR          = syscall.Errno(0x3c)
+       ENOSYS          = syscall.Errno(0x59)
+       ENOTACTIVE      = syscall.Errno(0x49)
+       ENOTBLK         = syscall.Errno(0xf)
+       ENOTCONN        = syscall.Errno(0x86)
+       ENOTDIR         = syscall.Errno(0x14)
+       ENOTEMPTY       = syscall.Errno(0x5d)
+       ENOTRECOVERABLE = syscall.Errno(0x3b)
+       ENOTSOCK        = syscall.Errno(0x5f)
+       ENOTSUP         = syscall.Errno(0x30)
+       ENOTTY          = syscall.Errno(0x19)
+       ENOTUNIQ        = syscall.Errno(0x50)
+       ENXIO           = syscall.Errno(0x6)
+       EOPNOTSUPP      = syscall.Errno(0x7a)
+       EOVERFLOW       = syscall.Errno(0x4f)
+       EOWNERDEAD      = syscall.Errno(0x3a)
+       EPERM           = syscall.Errno(0x1)
+       EPFNOSUPPORT    = syscall.Errno(0x7b)
+       EPIPE           = syscall.Errno(0x20)
+       EPROTO          = syscall.Errno(0x47)
+       EPROTONOSUPPORT = syscall.Errno(0x78)
+       EPROTOTYPE      = syscall.Errno(0x62)
+       ERANGE          = syscall.Errno(0x22)
+       EREMCHG         = syscall.Errno(0x52)
+       EREMOTE         = syscall.Errno(0x42)
+       ERESTART        = syscall.Errno(0x5b)
+       EROFS           = syscall.Errno(0x1e)
+       ESHUTDOWN       = syscall.Errno(0x8f)
+       ESOCKTNOSUPPORT = syscall.Errno(0x79)
+       ESPIPE          = syscall.Errno(0x1d)
+       ESRCH           = syscall.Errno(0x3)
+       ESRMNT          = syscall.Errno(0x45)
+       ESTALE          = syscall.Errno(0x97)
+       ESTRPIPE        = syscall.Errno(0x5c)
+       ETIME           = syscall.Errno(0x3e)
+       ETIMEDOUT       = syscall.Errno(0x91)
+       ETOOMANYREFS    = syscall.Errno(0x90)
+       ETXTBSY         = syscall.Errno(0x1a)
+       EUNATCH         = syscall.Errno(0x2a)
+       EUSERS          = syscall.Errno(0x5e)
+       EWOULDBLOCK     = syscall.Errno(0xb)
+       EXDEV           = syscall.Errno(0x12)
+       EXFULL          = syscall.Errno(0x34)
+)
+
+// Signals
+const (
+       SIGABRT    = syscall.Signal(0x6)
+       SIGALRM    = syscall.Signal(0xe)
+       SIGBUS     = syscall.Signal(0xa)
+       SIGCANCEL  = syscall.Signal(0x24)
+       SIGCHLD    = syscall.Signal(0x12)
+       SIGCLD     = syscall.Signal(0x12)
+       SIGCONT    = syscall.Signal(0x19)
+       SIGEMT     = syscall.Signal(0x7)
+       SIGFPE     = syscall.Signal(0x8)
+       SIGFREEZE  = syscall.Signal(0x22)
+       SIGHUP     = syscall.Signal(0x1)
+       SIGILL     = syscall.Signal(0x4)
+       SIGINFO    = syscall.Signal(0x29)
+       SIGINT     = syscall.Signal(0x2)
+       SIGIO      = syscall.Signal(0x16)
+       SIGIOT     = syscall.Signal(0x6)
+       SIGJVM1    = syscall.Signal(0x27)
+       SIGJVM2    = syscall.Signal(0x28)
+       SIGKILL    = syscall.Signal(0x9)
+       SIGLOST    = syscall.Signal(0x25)
+       SIGLWP     = syscall.Signal(0x21)
+       SIGPIPE    = syscall.Signal(0xd)
+       SIGPOLL    = syscall.Signal(0x16)
+       SIGPROF    = syscall.Signal(0x1d)
+       SIGPWR     = syscall.Signal(0x13)
+       SIGQUIT    = syscall.Signal(0x3)
+       SIGSEGV    = syscall.Signal(0xb)
+       SIGSTOP    = syscall.Signal(0x17)
+       SIGSYS     = syscall.Signal(0xc)
+       SIGTERM    = syscall.Signal(0xf)
+       SIGTHAW    = syscall.Signal(0x23)
+       SIGTRAP    = syscall.Signal(0x5)
+       SIGTSTP    = syscall.Signal(0x18)
+       SIGTTIN    = syscall.Signal(0x1a)
+       SIGTTOU    = syscall.Signal(0x1b)
+       SIGURG     = syscall.Signal(0x15)
+       SIGUSR1    = syscall.Signal(0x10)
+       SIGUSR2    = syscall.Signal(0x11)
+       SIGVTALRM  = syscall.Signal(0x1c)
+       SIGWAITING = syscall.Signal(0x20)
+       SIGWINCH   = syscall.Signal(0x14)
+       SIGXCPU    = syscall.Signal(0x1e)
+       SIGXFSZ    = syscall.Signal(0x1f)
+       SIGXRES    = syscall.Signal(0x26)
+)
+
+// Error table
+var errors = [...]string{
+       1:   "not owner",
+       2:   "no such file or directory",
+       3:   "no such process",
+       4:   "interrupted system call",
+       5:   "I/O error",
+       6:   "no such device or address",
+       7:   "arg list too long",
+       8:   "exec format error",
+       9:   "bad file number",
+       10:  "no child processes",
+       11:  "resource temporarily unavailable",
+       12:  "not enough space",
+       13:  "permission denied",
+       14:  "bad address",
+       15:  "block device required",
+       16:  "device busy",
+       17:  "file exists",
+       18:  "cross-device link",
+       19:  "no such device",
+       20:  "not a directory",
+       21:  "is a directory",
+       22:  "invalid argument",
+       23:  "file table overflow",
+       24:  "too many open files",
+       25:  "inappropriate ioctl for device",
+       26:  "text file busy",
+       27:  "file too large",
+       28:  "no space left on device",
+       29:  "illegal seek",
+       30:  "read-only file system",
+       31:  "too many links",
+       32:  "broken pipe",
+       33:  "argument out of domain",
+       34:  "result too large",
+       35:  "no message of desired type",
+       36:  "identifier removed",
+       37:  "channel number out of range",
+       38:  "level 2 not synchronized",
+       39:  "level 3 halted",
+       40:  "level 3 reset",
+       41:  "link number out of range",
+       42:  "protocol driver not attached",
+       43:  "no CSI structure available",
+       44:  "level 2 halted",
+       45:  "deadlock situation detected/avoided",
+       46:  "no record locks available",
+       47:  "operation canceled",
+       48:  "operation not supported",
+       49:  "disc quota exceeded",
+       50:  "bad exchange descriptor",
+       51:  "bad request descriptor",
+       52:  "message tables full",
+       53:  "anode table overflow",
+       54:  "bad request code",
+       55:  "invalid slot",
+       56:  "file locking deadlock",
+       57:  "bad font file format",
+       58:  "owner of the lock died",
+       59:  "lock is not recoverable",
+       60:  "not a stream device",
+       61:  "no data available",
+       62:  "timer expired",
+       63:  "out of stream resources",
+       64:  "machine is not on the network",
+       65:  "package not installed",
+       66:  "object is remote",
+       67:  "link has been severed",
+       68:  "advertise error",
+       69:  "srmount error",
+       70:  "communication error on send",
+       71:  "protocol error",
+       72:  "locked lock was unmapped ",
+       73:  "facility is not active",
+       74:  "multihop attempted",
+       77:  "not a data message",
+       78:  "file name too long",
+       79:  "value too large for defined data type",
+       80:  "name not unique on network",
+       81:  "file descriptor in bad state",
+       82:  "remote address changed",
+       83:  "can not access a needed shared library",
+       84:  "accessing a corrupted shared library",
+       85:  ".lib section in a.out corrupted",
+       86:  "attempting to link in more shared libraries than system limit",
+       87:  "can not exec a shared library directly",
+       88:  "illegal byte sequence",
+       89:  "operation not applicable",
+       90:  "number of symbolic links encountered during path name traversal exceeds MAXSYMLINKS",
+       91:  "error 91",
+       92:  "error 92",
+       93:  "directory not empty",
+       94:  "too many users",
+       95:  "socket operation on non-socket",
+       96:  "destination address required",
+       97:  "message too long",
+       98:  "protocol wrong type for socket",
+       99:  "option not supported by protocol",
+       120: "protocol not supported",
+       121: "socket type not supported",
+       122: "operation not supported on transport endpoint",
+       123: "protocol family not supported",
+       124: "address family not supported by protocol family",
+       125: "address already in use",
+       126: "cannot assign requested address",
+       127: "network is down",
+       128: "network is unreachable",
+       129: "network dropped connection because of reset",
+       130: "software caused connection abort",
+       131: "connection reset by peer",
+       132: "no buffer space available",
+       133: "transport endpoint is already connected",
+       134: "transport endpoint is not connected",
+       143: "cannot send after socket shutdown",
+       144: "too many references: cannot splice",
+       145: "connection timed out",
+       146: "connection refused",
+       147: "host is down",
+       148: "no route to host",
+       149: "operation already in progress",
+       150: "operation now in progress",
+       151: "stale NFS file handle",
+}
+
+// Signal table
+var signals = [...]string{
+       1:  "hangup",
+       2:  "interrupt",
+       3:  "quit",
+       4:  "illegal Instruction",
+       5:  "trace/Breakpoint Trap",
+       6:  "abort",
+       7:  "emulation Trap",
+       8:  "arithmetic Exception",
+       9:  "killed",
+       10: "bus Error",
+       11: "segmentation Fault",
+       12: "bad System Call",
+       13: "broken Pipe",
+       14: "alarm Clock",
+       15: "terminated",
+       16: "user Signal 1",
+       17: "user Signal 2",
+       18: "child Status Changed",
+       19: "power-Fail/Restart",
+       20: "window Size Change",
+       21: "urgent Socket Condition",
+       22: "pollable Event",
+       23: "stopped (signal)",
+       24: "stopped (user)",
+       25: "continued",
+       26: "stopped (tty input)",
+       27: "stopped (tty output)",
+       28: "virtual Timer Expired",
+       29: "profiling Timer Expired",
+       30: "cpu Limit Exceeded",
+       31: "file Size Limit Exceeded",
+       32: "no runnable lwp",
+       33: "inter-lwp signal",
+       34: "checkpoint Freeze",
+       35: "checkpoint Thaw",
+       36: "thread Cancellation",
+       37: "resource Lost",
+       38: "resource Control Exceeded",
+       39: "reserved for JVM 1",
+       40: "reserved for JVM 2",
+       41: "information Request",
+}
diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_386.go b/vendor/golang.org/x/sys/unix/zsyscall_darwin_386.go
new file mode 100644 (file)
index 0000000..10491e9
--- /dev/null
@@ -0,0 +1,1609 @@
+// mksyscall.pl -l32 -tags darwin,386 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
+
+package unix
+
+import (
+       "syscall"
+       "unsafe"
+)
+
+var _ syscall.Errno
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func getgroups(ngid int, gid *_Gid_t) (n int, err error) {
+       r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func setgroups(ngid int, gid *_Gid_t) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) {
+       r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0)
+       wpid = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {
+       r0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))
+       fd = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {
+       _, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {
+       _, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func socket(domain int, typ int, proto int) (fd int, err error) {
+       r0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto))
+       fd = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {
+       _, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {
+       _, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {
+       _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {
+       _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Shutdown(s int, how int) (err error) {
+       _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(s), uintptr(how), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {
+       _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {
+       var _p0 unsafe.Pointer
+       if len(p) > 0 {
+               _p0 = unsafe.Pointer(&p[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {
+       var _p0 unsafe.Pointer
+       if len(buf) > 0 {
+               _p0 = unsafe.Pointer(&buf[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {
+       r0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {
+       r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) {
+       r0, _, e1 := Syscall6(SYS_KEVENT, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout)))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {
+       var _p0 unsafe.Pointer
+       if len(mib) > 0 {
+               _p0 = unsafe.Pointer(&mib[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func utimes(path string, timeval *[2]Timeval) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func futimes(fd int, timeval *[2]Timeval) (err error) {
+       _, _, e1 := Syscall(SYS_FUTIMES, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func fcntl(fd int, cmd int, arg int) (val int, err error) {
+       r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg))
+       val = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func 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))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Mlock(b []byte) (err error) {
+       var _p0 unsafe.Pointer
+       if len(b) > 0 {
+               _p0 = unsafe.Pointer(&b[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Mlockall(flags int) (err error) {
+       _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Mprotect(b []byte, prot int) (err error) {
+       var _p0 unsafe.Pointer
+       if len(b) > 0 {
+               _p0 = unsafe.Pointer(&b[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func 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 Munlock(b []byte) (err error) {
+       var _p0 unsafe.Pointer
+       if len(b) > 0 {
+               _p0 = unsafe.Pointer(&b[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Munlockall() (err error) {
+       _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) {
+       _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func pipe() (r int, w int, err error) {
+       r0, r1, e1 := RawSyscall(SYS_PIPE, 0, 0, 0)
+       r = int(r0)
+       w = int(r1)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func kill(pid int, signum int, posix int) (err error) {
+       _, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), uintptr(posix))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func 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)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Adjtime(delta *Timeval, olddelta *Timeval) (err error) {
+       _, _, e1 := Syscall(SYS_ADJTIME, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Chdir(path string) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Chflags(path string, flags int) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Chmod(path string, mode uint32) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Chown(path string, uid int, gid int) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Chroot(path string) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Close(fd int) (err error) {
+       _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Dup(fd int) (nfd int, err error) {
+       r0, _, e1 := Syscall(SYS_DUP, uintptr(fd), 0, 0)
+       nfd = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Dup2(from int, to int) (err error) {
+       _, _, e1 := Syscall(SYS_DUP2, uintptr(from), uintptr(to), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Exchangedata(path1 string, path2 string, options int) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path1)
+       if err != nil {
+               return
+       }
+       var _p1 *byte
+       _p1, err = BytePtrFromString(path2)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_EXCHANGEDATA, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(options))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Exit(code int) {
+       Syscall(SYS_EXIT, uintptr(code), 0, 0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func 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 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fchflags(fd int, flags int) (err error) {
+       _, _, e1 := Syscall(SYS_FCHFLAGS, uintptr(fd), uintptr(flags), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fchmod(fd int, mode uint32) (err error) {
+       _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func 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 {
+               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 Flock(fd int, how int) (err error) {
+       _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fpathconf(fd int, name int) (val int, err error) {
+       r0, _, e1 := Syscall(SYS_FPATHCONF, uintptr(fd), uintptr(name), 0)
+       val = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fstat(fd int, stat *Stat_t) (err error) {
+       _, _, e1 := Syscall(SYS_FSTAT64, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fstatfs(fd int, stat *Statfs_t) (err error) {
+       _, _, e1 := Syscall(SYS_FSTATFS64, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fsync(fd int) (err error) {
+       _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Ftruncate(fd int, length int64) (err error) {
+       _, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), uintptr(length>>32))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) {
+       var _p0 unsafe.Pointer
+       if len(buf) > 0 {
+               _p0 = unsafe.Pointer(&buf[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       r0, _, e1 := Syscall6(SYS_GETDIRENTRIES64, uintptr(fd), uintptr(_p0), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 0, 0)
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getdtablesize() (size int) {
+       r0, _, _ := Syscall(SYS_GETDTABLESIZE, 0, 0, 0)
+       size = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getegid() (egid int) {
+       r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0)
+       egid = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Geteuid() (uid int) {
+       r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0)
+       uid = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getgid() (gid int) {
+       r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0)
+       gid = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getpgid(pid int) (pgid int, err error) {
+       r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0)
+       pgid = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getpgrp() (pgrp int) {
+       r0, _, _ := RawSyscall(SYS_GETPGRP, 0, 0, 0)
+       pgrp = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getpid() (pid int) {
+       r0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0)
+       pid = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getppid() (ppid int) {
+       r0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0)
+       ppid = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getpriority(which int, who int) (prio int, err error) {
+       r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0)
+       prio = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getrlimit(which int, lim *Rlimit) (err error) {
+       _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getrusage(who int, rusage *Rusage) (err error) {
+       _, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getsid(pid int) (sid int, err error) {
+       r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0)
+       sid = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getuid() (uid int) {
+       r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0)
+       uid = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Issetugid() (tainted bool) {
+       r0, _, _ := RawSyscall(SYS_ISSETUGID, 0, 0, 0)
+       tainted = bool(r0 != 0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Kqueue() (fd int, err error) {
+       r0, _, e1 := Syscall(SYS_KQUEUE, 0, 0, 0)
+       fd = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Lchown(path string, uid int, gid int) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Link(path string, link string) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       var _p1 *byte
+       _p1, err = BytePtrFromString(link)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func 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 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Lstat(path string, stat *Stat_t) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_LSTAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Mkdir(path string, mode uint32) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func 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)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Mknod(path string, mode uint32, dev int) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_MKNOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Open(path string, mode int, perm uint32) (fd int, err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       r0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm))
+       fd = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func 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)
+       if err != nil {
+               return
+       }
+       r0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0)
+       val = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Pread(fd int, p []byte, offset int64) (n int, err error) {
+       var _p0 unsafe.Pointer
+       if len(p) > 0 {
+               _p0 = unsafe.Pointer(&p[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       r0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0)
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Pwrite(fd int, p []byte, offset int64) (n int, err error) {
+       var _p0 unsafe.Pointer
+       if len(p) > 0 {
+               _p0 = unsafe.Pointer(&p[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       r0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0)
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func read(fd int, p []byte) (n int, err error) {
+       var _p0 unsafe.Pointer
+       if len(p) > 0 {
+               _p0 = unsafe.Pointer(&p[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p)))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Readlink(path string, buf []byte) (n int, err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       var _p1 unsafe.Pointer
+       if len(buf) > 0 {
+               _p1 = unsafe.Pointer(&buf[0])
+       } else {
+               _p1 = unsafe.Pointer(&_zero)
+       }
+       r0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func 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)
+       if err != nil {
+               return
+       }
+       var _p1 *byte
+       _p1, err = BytePtrFromString(to)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func 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)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Rmdir(path string) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Seek(fd int, offset int64, whence int) (newoffset int64, err error) {
+       r0, r1, e1 := Syscall6(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(offset>>32), uintptr(whence), 0, 0)
+       newoffset = int64(int64(r1)<<32 | int64(r0))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) {
+       _, _, e1 := Syscall6(SYS_SELECT, uintptr(n), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setegid(egid int) (err error) {
+       _, _, e1 := Syscall(SYS_SETEGID, uintptr(egid), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Seteuid(euid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETEUID, uintptr(euid), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setgid(gid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETGID, uintptr(gid), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setlogin(name string) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(name)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_SETLOGIN, uintptr(unsafe.Pointer(_p0)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setpgid(pid int, pgid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setpriority(which int, who int, prio int) (err error) {
+       _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setprivexec(flag int) (err error) {
+       _, _, e1 := Syscall(SYS_SETPRIVEXEC, uintptr(flag), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setregid(rgid int, egid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setreuid(ruid int, euid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setrlimit(which int, lim *Rlimit) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setsid() (pid int, err error) {
+       r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0)
+       pid = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Settimeofday(tp *Timeval) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setuid(uid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETUID, uintptr(uid), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Stat(path string, stat *Stat_t) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_STAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Statfs(path string, stat *Statfs_t) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_STATFS64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Symlink(path string, link string) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       var _p1 *byte
+       _p1, err = BytePtrFromString(link)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func 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 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Truncate(path string, length int64) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), uintptr(length>>32))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Umask(newmask int) (oldmask int) {
+       r0, _, _ := Syscall(SYS_UMASK, uintptr(newmask), 0, 0)
+       oldmask = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Undelete(path string) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_UNDELETE, uintptr(unsafe.Pointer(_p0)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Unlink(path string) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func 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)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func write(fd int, p []byte) (n int, err error) {
+       var _p0 unsafe.Pointer
+       if len(p) > 0 {
+               _p0 = unsafe.Pointer(&p[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) {
+       r0, _, e1 := Syscall9(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos), uintptr(pos>>32), 0, 0)
+       ret = uintptr(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func munmap(addr uintptr, length uintptr) (err error) {
+       _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func readlen(fd int, buf *byte, nbuf int) (n int, err error) {
+       r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func writelen(fd int, buf *byte, nbuf int) (n int, err error) {
+       r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func gettimeofday(tp *Timeval) (sec int32, usec int32, err error) {
+       r0, r1, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0)
+       sec = int32(r0)
+       usec = int32(r1)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.go
new file mode 100644 (file)
index 0000000..5f1f6bf
--- /dev/null
@@ -0,0 +1,1609 @@
+// mksyscall.pl -tags darwin,amd64 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
+
+package unix
+
+import (
+       "syscall"
+       "unsafe"
+)
+
+var _ syscall.Errno
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func getgroups(ngid int, gid *_Gid_t) (n int, err error) {
+       r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func setgroups(ngid int, gid *_Gid_t) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) {
+       r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0)
+       wpid = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {
+       r0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))
+       fd = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {
+       _, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {
+       _, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func socket(domain int, typ int, proto int) (fd int, err error) {
+       r0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto))
+       fd = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {
+       _, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {
+       _, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {
+       _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {
+       _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Shutdown(s int, how int) (err error) {
+       _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(s), uintptr(how), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {
+       _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {
+       var _p0 unsafe.Pointer
+       if len(p) > 0 {
+               _p0 = unsafe.Pointer(&p[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {
+       var _p0 unsafe.Pointer
+       if len(buf) > 0 {
+               _p0 = unsafe.Pointer(&buf[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {
+       r0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {
+       r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) {
+       r0, _, e1 := Syscall6(SYS_KEVENT, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout)))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {
+       var _p0 unsafe.Pointer
+       if len(mib) > 0 {
+               _p0 = unsafe.Pointer(&mib[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func utimes(path string, timeval *[2]Timeval) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func futimes(fd int, timeval *[2]Timeval) (err error) {
+       _, _, e1 := Syscall(SYS_FUTIMES, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func fcntl(fd int, cmd int, arg int) (val int, err error) {
+       r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg))
+       val = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func 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))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Mlock(b []byte) (err error) {
+       var _p0 unsafe.Pointer
+       if len(b) > 0 {
+               _p0 = unsafe.Pointer(&b[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Mlockall(flags int) (err error) {
+       _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Mprotect(b []byte, prot int) (err error) {
+       var _p0 unsafe.Pointer
+       if len(b) > 0 {
+               _p0 = unsafe.Pointer(&b[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func 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 Munlock(b []byte) (err error) {
+       var _p0 unsafe.Pointer
+       if len(b) > 0 {
+               _p0 = unsafe.Pointer(&b[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Munlockall() (err error) {
+       _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) {
+       _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func pipe() (r int, w int, err error) {
+       r0, r1, e1 := RawSyscall(SYS_PIPE, 0, 0, 0)
+       r = int(r0)
+       w = int(r1)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func kill(pid int, signum int, posix int) (err error) {
+       _, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), uintptr(posix))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func 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)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Adjtime(delta *Timeval, olddelta *Timeval) (err error) {
+       _, _, e1 := Syscall(SYS_ADJTIME, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Chdir(path string) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Chflags(path string, flags int) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Chmod(path string, mode uint32) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Chown(path string, uid int, gid int) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Chroot(path string) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Close(fd int) (err error) {
+       _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Dup(fd int) (nfd int, err error) {
+       r0, _, e1 := Syscall(SYS_DUP, uintptr(fd), 0, 0)
+       nfd = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Dup2(from int, to int) (err error) {
+       _, _, e1 := Syscall(SYS_DUP2, uintptr(from), uintptr(to), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Exchangedata(path1 string, path2 string, options int) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path1)
+       if err != nil {
+               return
+       }
+       var _p1 *byte
+       _p1, err = BytePtrFromString(path2)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_EXCHANGEDATA, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(options))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Exit(code int) {
+       Syscall(SYS_EXIT, uintptr(code), 0, 0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func 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 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fchflags(fd int, flags int) (err error) {
+       _, _, e1 := Syscall(SYS_FCHFLAGS, uintptr(fd), uintptr(flags), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fchmod(fd int, mode uint32) (err error) {
+       _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func 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 {
+               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 Flock(fd int, how int) (err error) {
+       _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fpathconf(fd int, name int) (val int, err error) {
+       r0, _, e1 := Syscall(SYS_FPATHCONF, uintptr(fd), uintptr(name), 0)
+       val = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fstat(fd int, stat *Stat_t) (err error) {
+       _, _, e1 := Syscall(SYS_FSTAT64, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fstatfs(fd int, stat *Statfs_t) (err error) {
+       _, _, e1 := Syscall(SYS_FSTATFS64, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fsync(fd int) (err error) {
+       _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Ftruncate(fd int, length int64) (err error) {
+       _, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) {
+       var _p0 unsafe.Pointer
+       if len(buf) > 0 {
+               _p0 = unsafe.Pointer(&buf[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       r0, _, e1 := Syscall6(SYS_GETDIRENTRIES64, uintptr(fd), uintptr(_p0), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 0, 0)
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getdtablesize() (size int) {
+       r0, _, _ := Syscall(SYS_GETDTABLESIZE, 0, 0, 0)
+       size = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getegid() (egid int) {
+       r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0)
+       egid = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Geteuid() (uid int) {
+       r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0)
+       uid = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getgid() (gid int) {
+       r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0)
+       gid = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getpgid(pid int) (pgid int, err error) {
+       r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0)
+       pgid = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getpgrp() (pgrp int) {
+       r0, _, _ := RawSyscall(SYS_GETPGRP, 0, 0, 0)
+       pgrp = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getpid() (pid int) {
+       r0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0)
+       pid = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getppid() (ppid int) {
+       r0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0)
+       ppid = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getpriority(which int, who int) (prio int, err error) {
+       r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0)
+       prio = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getrlimit(which int, lim *Rlimit) (err error) {
+       _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getrusage(who int, rusage *Rusage) (err error) {
+       _, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getsid(pid int) (sid int, err error) {
+       r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0)
+       sid = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getuid() (uid int) {
+       r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0)
+       uid = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Issetugid() (tainted bool) {
+       r0, _, _ := RawSyscall(SYS_ISSETUGID, 0, 0, 0)
+       tainted = bool(r0 != 0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Kqueue() (fd int, err error) {
+       r0, _, e1 := Syscall(SYS_KQUEUE, 0, 0, 0)
+       fd = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Lchown(path string, uid int, gid int) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Link(path string, link string) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       var _p1 *byte
+       _p1, err = BytePtrFromString(link)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func 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 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Lstat(path string, stat *Stat_t) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_LSTAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Mkdir(path string, mode uint32) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func 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)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Mknod(path string, mode uint32, dev int) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_MKNOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Open(path string, mode int, perm uint32) (fd int, err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       r0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm))
+       fd = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func 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)
+       if err != nil {
+               return
+       }
+       r0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0)
+       val = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Pread(fd int, p []byte, offset int64) (n int, err error) {
+       var _p0 unsafe.Pointer
+       if len(p) > 0 {
+               _p0 = unsafe.Pointer(&p[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       r0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Pwrite(fd int, p []byte, offset int64) (n int, err error) {
+       var _p0 unsafe.Pointer
+       if len(p) > 0 {
+               _p0 = unsafe.Pointer(&p[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       r0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func read(fd int, p []byte) (n int, err error) {
+       var _p0 unsafe.Pointer
+       if len(p) > 0 {
+               _p0 = unsafe.Pointer(&p[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p)))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Readlink(path string, buf []byte) (n int, err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       var _p1 unsafe.Pointer
+       if len(buf) > 0 {
+               _p1 = unsafe.Pointer(&buf[0])
+       } else {
+               _p1 = unsafe.Pointer(&_zero)
+       }
+       r0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func 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)
+       if err != nil {
+               return
+       }
+       var _p1 *byte
+       _p1, err = BytePtrFromString(to)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func 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)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Rmdir(path string) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Seek(fd int, offset int64, whence int) (newoffset int64, err error) {
+       r0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence))
+       newoffset = int64(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) {
+       _, _, e1 := Syscall6(SYS_SELECT, uintptr(n), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setegid(egid int) (err error) {
+       _, _, e1 := Syscall(SYS_SETEGID, uintptr(egid), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Seteuid(euid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETEUID, uintptr(euid), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setgid(gid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETGID, uintptr(gid), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setlogin(name string) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(name)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_SETLOGIN, uintptr(unsafe.Pointer(_p0)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setpgid(pid int, pgid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setpriority(which int, who int, prio int) (err error) {
+       _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setprivexec(flag int) (err error) {
+       _, _, e1 := Syscall(SYS_SETPRIVEXEC, uintptr(flag), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setregid(rgid int, egid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setreuid(ruid int, euid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setrlimit(which int, lim *Rlimit) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setsid() (pid int, err error) {
+       r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0)
+       pid = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Settimeofday(tp *Timeval) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setuid(uid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETUID, uintptr(uid), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Stat(path string, stat *Stat_t) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_STAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Statfs(path string, stat *Statfs_t) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_STATFS64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Symlink(path string, link string) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       var _p1 *byte
+       _p1, err = BytePtrFromString(link)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func 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 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Truncate(path string, length int64) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Umask(newmask int) (oldmask int) {
+       r0, _, _ := Syscall(SYS_UMASK, uintptr(newmask), 0, 0)
+       oldmask = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Undelete(path string) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_UNDELETE, uintptr(unsafe.Pointer(_p0)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Unlink(path string) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func 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)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func write(fd int, p []byte) (n int, err error) {
+       var _p0 unsafe.Pointer
+       if len(p) > 0 {
+               _p0 = unsafe.Pointer(&p[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) {
+       r0, _, e1 := Syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos))
+       ret = uintptr(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func munmap(addr uintptr, length uintptr) (err error) {
+       _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func readlen(fd int, buf *byte, nbuf int) (n int, err error) {
+       r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func writelen(fd int, buf *byte, nbuf int) (n int, err error) {
+       r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func gettimeofday(tp *Timeval) (sec int64, usec int32, err error) {
+       r0, r1, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0)
+       sec = int64(r0)
+       usec = int32(r1)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.go b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.go
new file mode 100644 (file)
index 0000000..7a40974
--- /dev/null
@@ -0,0 +1,1609 @@
+// mksyscall.pl -tags darwin,arm 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
+
+package unix
+
+import (
+       "syscall"
+       "unsafe"
+)
+
+var _ syscall.Errno
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func getgroups(ngid int, gid *_Gid_t) (n int, err error) {
+       r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func setgroups(ngid int, gid *_Gid_t) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) {
+       r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0)
+       wpid = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {
+       r0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))
+       fd = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {
+       _, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {
+       _, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func socket(domain int, typ int, proto int) (fd int, err error) {
+       r0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto))
+       fd = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {
+       _, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {
+       _, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {
+       _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {
+       _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Shutdown(s int, how int) (err error) {
+       _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(s), uintptr(how), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {
+       _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {
+       var _p0 unsafe.Pointer
+       if len(p) > 0 {
+               _p0 = unsafe.Pointer(&p[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {
+       var _p0 unsafe.Pointer
+       if len(buf) > 0 {
+               _p0 = unsafe.Pointer(&buf[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {
+       r0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {
+       r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) {
+       r0, _, e1 := Syscall6(SYS_KEVENT, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout)))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {
+       var _p0 unsafe.Pointer
+       if len(mib) > 0 {
+               _p0 = unsafe.Pointer(&mib[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       _, _, e1 := Syscall6(SYS_SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func utimes(path string, timeval *[2]Timeval) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func futimes(fd int, timeval *[2]Timeval) (err error) {
+       _, _, e1 := Syscall(SYS_FUTIMES, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func fcntl(fd int, cmd int, arg int) (val int, err error) {
+       r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg))
+       val = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func 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))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Mlock(b []byte) (err error) {
+       var _p0 unsafe.Pointer
+       if len(b) > 0 {
+               _p0 = unsafe.Pointer(&b[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Mlockall(flags int) (err error) {
+       _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Mprotect(b []byte, prot int) (err error) {
+       var _p0 unsafe.Pointer
+       if len(b) > 0 {
+               _p0 = unsafe.Pointer(&b[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func 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 Munlock(b []byte) (err error) {
+       var _p0 unsafe.Pointer
+       if len(b) > 0 {
+               _p0 = unsafe.Pointer(&b[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Munlockall() (err error) {
+       _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) {
+       _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func pipe() (r int, w int, err error) {
+       r0, r1, e1 := RawSyscall(SYS_PIPE, 0, 0, 0)
+       r = int(r0)
+       w = int(r1)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func kill(pid int, signum int, posix int) (err error) {
+       _, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), uintptr(posix))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func 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)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Adjtime(delta *Timeval, olddelta *Timeval) (err error) {
+       _, _, e1 := Syscall(SYS_ADJTIME, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Chdir(path string) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Chflags(path string, flags int) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Chmod(path string, mode uint32) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Chown(path string, uid int, gid int) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Chroot(path string) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Close(fd int) (err error) {
+       _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Dup(fd int) (nfd int, err error) {
+       r0, _, e1 := Syscall(SYS_DUP, uintptr(fd), 0, 0)
+       nfd = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Dup2(from int, to int) (err error) {
+       _, _, e1 := Syscall(SYS_DUP2, uintptr(from), uintptr(to), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Exchangedata(path1 string, path2 string, options int) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path1)
+       if err != nil {
+               return
+       }
+       var _p1 *byte
+       _p1, err = BytePtrFromString(path2)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_EXCHANGEDATA, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(options))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Exit(code int) {
+       Syscall(SYS_EXIT, uintptr(code), 0, 0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func 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 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fchflags(fd int, flags int) (err error) {
+       _, _, e1 := Syscall(SYS_FCHFLAGS, uintptr(fd), uintptr(flags), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fchmod(fd int, mode uint32) (err error) {
+       _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func 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 {
+               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 Flock(fd int, how int) (err error) {
+       _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fpathconf(fd int, name int) (val int, err error) {
+       r0, _, e1 := Syscall(SYS_FPATHCONF, uintptr(fd), uintptr(name), 0)
+       val = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fstat(fd int, stat *Stat_t) (err error) {
+       _, _, e1 := Syscall(SYS_FSTAT64, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fstatfs(fd int, stat *Statfs_t) (err error) {
+       _, _, e1 := Syscall(SYS_FSTATFS64, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fsync(fd int) (err error) {
+       _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Ftruncate(fd int, length int64) (err error) {
+       _, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), uintptr(length>>32))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) {
+       var _p0 unsafe.Pointer
+       if len(buf) > 0 {
+               _p0 = unsafe.Pointer(&buf[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       r0, _, e1 := Syscall6(SYS_GETDIRENTRIES64, uintptr(fd), uintptr(_p0), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 0, 0)
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getdtablesize() (size int) {
+       r0, _, _ := Syscall(SYS_GETDTABLESIZE, 0, 0, 0)
+       size = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getegid() (egid int) {
+       r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0)
+       egid = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Geteuid() (uid int) {
+       r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0)
+       uid = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getgid() (gid int) {
+       r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0)
+       gid = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getpgid(pid int) (pgid int, err error) {
+       r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0)
+       pgid = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getpgrp() (pgrp int) {
+       r0, _, _ := RawSyscall(SYS_GETPGRP, 0, 0, 0)
+       pgrp = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getpid() (pid int) {
+       r0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0)
+       pid = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getppid() (ppid int) {
+       r0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0)
+       ppid = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getpriority(which int, who int) (prio int, err error) {
+       r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0)
+       prio = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getrlimit(which int, lim *Rlimit) (err error) {
+       _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getrusage(who int, rusage *Rusage) (err error) {
+       _, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getsid(pid int) (sid int, err error) {
+       r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0)
+       sid = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getuid() (uid int) {
+       r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0)
+       uid = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Issetugid() (tainted bool) {
+       r0, _, _ := RawSyscall(SYS_ISSETUGID, 0, 0, 0)
+       tainted = bool(r0 != 0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Kqueue() (fd int, err error) {
+       r0, _, e1 := Syscall(SYS_KQUEUE, 0, 0, 0)
+       fd = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Lchown(path string, uid int, gid int) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Link(path string, link string) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       var _p1 *byte
+       _p1, err = BytePtrFromString(link)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func 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 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Lstat(path string, stat *Stat_t) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_LSTAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Mkdir(path string, mode uint32) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func 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)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Mknod(path string, mode uint32, dev int) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_MKNOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Open(path string, mode int, perm uint32) (fd int, err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       r0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm))
+       fd = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func 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)
+       if err != nil {
+               return
+       }
+       r0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0)
+       val = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Pread(fd int, p []byte, offset int64) (n int, err error) {
+       var _p0 unsafe.Pointer
+       if len(p) > 0 {
+               _p0 = unsafe.Pointer(&p[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       r0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0)
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Pwrite(fd int, p []byte, offset int64) (n int, err error) {
+       var _p0 unsafe.Pointer
+       if len(p) > 0 {
+               _p0 = unsafe.Pointer(&p[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       r0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0)
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func read(fd int, p []byte) (n int, err error) {
+       var _p0 unsafe.Pointer
+       if len(p) > 0 {
+               _p0 = unsafe.Pointer(&p[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p)))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Readlink(path string, buf []byte) (n int, err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       var _p1 unsafe.Pointer
+       if len(buf) > 0 {
+               _p1 = unsafe.Pointer(&buf[0])
+       } else {
+               _p1 = unsafe.Pointer(&_zero)
+       }
+       r0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func 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)
+       if err != nil {
+               return
+       }
+       var _p1 *byte
+       _p1, err = BytePtrFromString(to)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func 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)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Rmdir(path string) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Seek(fd int, offset int64, whence int) (newoffset int64, err error) {
+       r0, r1, e1 := Syscall6(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(offset>>32), uintptr(whence), 0, 0)
+       newoffset = int64(int64(r1)<<32 | int64(r0))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) {
+       _, _, e1 := Syscall6(SYS_SELECT, uintptr(n), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setegid(egid int) (err error) {
+       _, _, e1 := Syscall(SYS_SETEGID, uintptr(egid), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Seteuid(euid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETEUID, uintptr(euid), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setgid(gid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETGID, uintptr(gid), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setlogin(name string) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(name)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_SETLOGIN, uintptr(unsafe.Pointer(_p0)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setpgid(pid int, pgid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setpriority(which int, who int, prio int) (err error) {
+       _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setprivexec(flag int) (err error) {
+       _, _, e1 := Syscall(SYS_SETPRIVEXEC, uintptr(flag), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setregid(rgid int, egid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setreuid(ruid int, euid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setrlimit(which int, lim *Rlimit) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setsid() (pid int, err error) {
+       r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0)
+       pid = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Settimeofday(tp *Timeval) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setuid(uid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETUID, uintptr(uid), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Stat(path string, stat *Stat_t) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_STAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Statfs(path string, stat *Statfs_t) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_STATFS64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Symlink(path string, link string) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       var _p1 *byte
+       _p1, err = BytePtrFromString(link)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func 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 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Truncate(path string, length int64) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), uintptr(length>>32))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Umask(newmask int) (oldmask int) {
+       r0, _, _ := Syscall(SYS_UMASK, uintptr(newmask), 0, 0)
+       oldmask = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Undelete(path string) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_UNDELETE, uintptr(unsafe.Pointer(_p0)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Unlink(path string) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func 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)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func write(fd int, p []byte) (n int, err error) {
+       var _p0 unsafe.Pointer
+       if len(p) > 0 {
+               _p0 = unsafe.Pointer(&p[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) {
+       r0, _, e1 := Syscall9(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos), uintptr(pos>>32), 0, 0)
+       ret = uintptr(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func munmap(addr uintptr, length uintptr) (err error) {
+       _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func readlen(fd int, buf *byte, nbuf int) (n int, err error) {
+       r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func writelen(fd int, buf *byte, nbuf int) (n int, err error) {
+       r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func gettimeofday(tp *Timeval) (sec int32, usec int32, err error) {
+       r0, r1, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0)
+       sec = int32(r0)
+       usec = int32(r1)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.go b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.go
new file mode 100644 (file)
index 0000000..07c6ebc
--- /dev/null
@@ -0,0 +1,1609 @@
+// mksyscall.pl -tags darwin,arm64 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
+
+package unix
+
+import (
+       "syscall"
+       "unsafe"
+)
+
+var _ syscall.Errno
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func getgroups(ngid int, gid *_Gid_t) (n int, err error) {
+       r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func setgroups(ngid int, gid *_Gid_t) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) {
+       r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0)
+       wpid = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {
+       r0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))
+       fd = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {
+       _, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {
+       _, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func socket(domain int, typ int, proto int) (fd int, err error) {
+       r0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto))
+       fd = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {
+       _, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {
+       _, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {
+       _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {
+       _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Shutdown(s int, how int) (err error) {
+       _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(s), uintptr(how), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {
+       _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {
+       var _p0 unsafe.Pointer
+       if len(p) > 0 {
+               _p0 = unsafe.Pointer(&p[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {
+       var _p0 unsafe.Pointer
+       if len(buf) > 0 {
+               _p0 = unsafe.Pointer(&buf[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {
+       r0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {
+       r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) {
+       r0, _, e1 := Syscall6(SYS_KEVENT, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout)))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {
+       var _p0 unsafe.Pointer
+       if len(mib) > 0 {
+               _p0 = unsafe.Pointer(&mib[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func utimes(path string, timeval *[2]Timeval) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func futimes(fd int, timeval *[2]Timeval) (err error) {
+       _, _, e1 := Syscall(SYS_FUTIMES, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func fcntl(fd int, cmd int, arg int) (val int, err error) {
+       r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg))
+       val = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func 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))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Mlock(b []byte) (err error) {
+       var _p0 unsafe.Pointer
+       if len(b) > 0 {
+               _p0 = unsafe.Pointer(&b[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Mlockall(flags int) (err error) {
+       _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Mprotect(b []byte, prot int) (err error) {
+       var _p0 unsafe.Pointer
+       if len(b) > 0 {
+               _p0 = unsafe.Pointer(&b[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func 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 Munlock(b []byte) (err error) {
+       var _p0 unsafe.Pointer
+       if len(b) > 0 {
+               _p0 = unsafe.Pointer(&b[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Munlockall() (err error) {
+       _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) {
+       _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func pipe() (r int, w int, err error) {
+       r0, r1, e1 := RawSyscall(SYS_PIPE, 0, 0, 0)
+       r = int(r0)
+       w = int(r1)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func kill(pid int, signum int, posix int) (err error) {
+       _, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), uintptr(posix))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func 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)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Adjtime(delta *Timeval, olddelta *Timeval) (err error) {
+       _, _, e1 := Syscall(SYS_ADJTIME, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Chdir(path string) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Chflags(path string, flags int) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Chmod(path string, mode uint32) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Chown(path string, uid int, gid int) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Chroot(path string) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Close(fd int) (err error) {
+       _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Dup(fd int) (nfd int, err error) {
+       r0, _, e1 := Syscall(SYS_DUP, uintptr(fd), 0, 0)
+       nfd = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Dup2(from int, to int) (err error) {
+       _, _, e1 := Syscall(SYS_DUP2, uintptr(from), uintptr(to), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Exchangedata(path1 string, path2 string, options int) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path1)
+       if err != nil {
+               return
+       }
+       var _p1 *byte
+       _p1, err = BytePtrFromString(path2)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_EXCHANGEDATA, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(options))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Exit(code int) {
+       Syscall(SYS_EXIT, uintptr(code), 0, 0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func 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 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fchflags(fd int, flags int) (err error) {
+       _, _, e1 := Syscall(SYS_FCHFLAGS, uintptr(fd), uintptr(flags), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fchmod(fd int, mode uint32) (err error) {
+       _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func 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 {
+               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 Flock(fd int, how int) (err error) {
+       _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fpathconf(fd int, name int) (val int, err error) {
+       r0, _, e1 := Syscall(SYS_FPATHCONF, uintptr(fd), uintptr(name), 0)
+       val = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fstat(fd int, stat *Stat_t) (err error) {
+       _, _, e1 := Syscall(SYS_FSTAT64, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fstatfs(fd int, stat *Statfs_t) (err error) {
+       _, _, e1 := Syscall(SYS_FSTATFS64, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fsync(fd int) (err error) {
+       _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Ftruncate(fd int, length int64) (err error) {
+       _, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) {
+       var _p0 unsafe.Pointer
+       if len(buf) > 0 {
+               _p0 = unsafe.Pointer(&buf[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       r0, _, e1 := Syscall6(SYS_GETDIRENTRIES64, uintptr(fd), uintptr(_p0), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 0, 0)
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getdtablesize() (size int) {
+       r0, _, _ := Syscall(SYS_GETDTABLESIZE, 0, 0, 0)
+       size = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getegid() (egid int) {
+       r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0)
+       egid = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Geteuid() (uid int) {
+       r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0)
+       uid = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getgid() (gid int) {
+       r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0)
+       gid = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getpgid(pid int) (pgid int, err error) {
+       r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0)
+       pgid = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getpgrp() (pgrp int) {
+       r0, _, _ := RawSyscall(SYS_GETPGRP, 0, 0, 0)
+       pgrp = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getpid() (pid int) {
+       r0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0)
+       pid = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getppid() (ppid int) {
+       r0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0)
+       ppid = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getpriority(which int, who int) (prio int, err error) {
+       r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0)
+       prio = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getrlimit(which int, lim *Rlimit) (err error) {
+       _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getrusage(who int, rusage *Rusage) (err error) {
+       _, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getsid(pid int) (sid int, err error) {
+       r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0)
+       sid = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getuid() (uid int) {
+       r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0)
+       uid = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Issetugid() (tainted bool) {
+       r0, _, _ := RawSyscall(SYS_ISSETUGID, 0, 0, 0)
+       tainted = bool(r0 != 0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Kqueue() (fd int, err error) {
+       r0, _, e1 := Syscall(SYS_KQUEUE, 0, 0, 0)
+       fd = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Lchown(path string, uid int, gid int) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Link(path string, link string) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       var _p1 *byte
+       _p1, err = BytePtrFromString(link)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func 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 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Lstat(path string, stat *Stat_t) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_LSTAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Mkdir(path string, mode uint32) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func 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)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Mknod(path string, mode uint32, dev int) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_MKNOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Open(path string, mode int, perm uint32) (fd int, err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       r0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm))
+       fd = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func 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)
+       if err != nil {
+               return
+       }
+       r0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0)
+       val = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Pread(fd int, p []byte, offset int64) (n int, err error) {
+       var _p0 unsafe.Pointer
+       if len(p) > 0 {
+               _p0 = unsafe.Pointer(&p[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       r0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Pwrite(fd int, p []byte, offset int64) (n int, err error) {
+       var _p0 unsafe.Pointer
+       if len(p) > 0 {
+               _p0 = unsafe.Pointer(&p[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       r0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func read(fd int, p []byte) (n int, err error) {
+       var _p0 unsafe.Pointer
+       if len(p) > 0 {
+               _p0 = unsafe.Pointer(&p[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p)))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Readlink(path string, buf []byte) (n int, err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       var _p1 unsafe.Pointer
+       if len(buf) > 0 {
+               _p1 = unsafe.Pointer(&buf[0])
+       } else {
+               _p1 = unsafe.Pointer(&_zero)
+       }
+       r0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func 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)
+       if err != nil {
+               return
+       }
+       var _p1 *byte
+       _p1, err = BytePtrFromString(to)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func 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)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Rmdir(path string) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Seek(fd int, offset int64, whence int) (newoffset int64, err error) {
+       r0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence))
+       newoffset = int64(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) {
+       _, _, e1 := Syscall6(SYS_SELECT, uintptr(n), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setegid(egid int) (err error) {
+       _, _, e1 := Syscall(SYS_SETEGID, uintptr(egid), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Seteuid(euid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETEUID, uintptr(euid), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setgid(gid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETGID, uintptr(gid), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setlogin(name string) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(name)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_SETLOGIN, uintptr(unsafe.Pointer(_p0)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setpgid(pid int, pgid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setpriority(which int, who int, prio int) (err error) {
+       _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setprivexec(flag int) (err error) {
+       _, _, e1 := Syscall(SYS_SETPRIVEXEC, uintptr(flag), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setregid(rgid int, egid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setreuid(ruid int, euid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setrlimit(which int, lim *Rlimit) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setsid() (pid int, err error) {
+       r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0)
+       pid = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Settimeofday(tp *Timeval) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setuid(uid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETUID, uintptr(uid), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Stat(path string, stat *Stat_t) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_STAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Statfs(path string, stat *Statfs_t) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_STATFS64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Symlink(path string, link string) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       var _p1 *byte
+       _p1, err = BytePtrFromString(link)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func 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 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Truncate(path string, length int64) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Umask(newmask int) (oldmask int) {
+       r0, _, _ := Syscall(SYS_UMASK, uintptr(newmask), 0, 0)
+       oldmask = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Undelete(path string) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_UNDELETE, uintptr(unsafe.Pointer(_p0)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Unlink(path string) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func 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)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func write(fd int, p []byte) (n int, err error) {
+       var _p0 unsafe.Pointer
+       if len(p) > 0 {
+               _p0 = unsafe.Pointer(&p[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) {
+       r0, _, e1 := Syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos))
+       ret = uintptr(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func munmap(addr uintptr, length uintptr) (err error) {
+       _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func readlen(fd int, buf *byte, nbuf int) (n int, err error) {
+       r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func writelen(fd int, buf *byte, nbuf int) (n int, err error) {
+       r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func gettimeofday(tp *Timeval) (sec int64, usec int32, err error) {
+       r0, r1, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0)
+       sec = int64(r0)
+       usec = int32(r1)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
diff --git a/vendor/golang.org/x/sys/unix/zsyscall_dragonfly_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_dragonfly_amd64.go
new file mode 100644 (file)
index 0000000..7fa205c
--- /dev/null
@@ -0,0 +1,1440 @@
+// mksyscall.pl -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
+
+package unix
+
+import (
+       "syscall"
+       "unsafe"
+)
+
+var _ syscall.Errno
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func getgroups(ngid int, gid *_Gid_t) (n int, err error) {
+       r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func setgroups(ngid int, gid *_Gid_t) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) {
+       r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0)
+       wpid = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {
+       r0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))
+       fd = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {
+       _, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {
+       _, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func socket(domain int, typ int, proto int) (fd int, err error) {
+       r0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto))
+       fd = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {
+       _, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {
+       _, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {
+       _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {
+       _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Shutdown(s int, how int) (err error) {
+       _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(s), uintptr(how), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {
+       _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {
+       var _p0 unsafe.Pointer
+       if len(p) > 0 {
+               _p0 = unsafe.Pointer(&p[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {
+       var _p0 unsafe.Pointer
+       if len(buf) > 0 {
+               _p0 = unsafe.Pointer(&buf[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {
+       r0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {
+       r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) {
+       r0, _, e1 := Syscall6(SYS_KEVENT, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout)))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {
+       var _p0 unsafe.Pointer
+       if len(mib) > 0 {
+               _p0 = unsafe.Pointer(&mib[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func utimes(path string, timeval *[2]Timeval) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func futimes(fd int, timeval *[2]Timeval) (err error) {
+       _, _, e1 := Syscall(SYS_FUTIMES, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func fcntl(fd int, cmd int, arg int) (val int, err error) {
+       r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg))
+       val = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func 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))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Mlock(b []byte) (err error) {
+       var _p0 unsafe.Pointer
+       if len(b) > 0 {
+               _p0 = unsafe.Pointer(&b[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Mlockall(flags int) (err error) {
+       _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Mprotect(b []byte, prot int) (err error) {
+       var _p0 unsafe.Pointer
+       if len(b) > 0 {
+               _p0 = unsafe.Pointer(&b[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func 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 Munlock(b []byte) (err error) {
+       var _p0 unsafe.Pointer
+       if len(b) > 0 {
+               _p0 = unsafe.Pointer(&b[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Munlockall() (err error) {
+       _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func pipe() (r int, w int, err error) {
+       r0, r1, e1 := RawSyscall(SYS_PIPE, 0, 0, 0)
+       r = int(r0)
+       w = int(r1)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func extpread(fd int, p []byte, flags int, offset int64) (n int, err error) {
+       var _p0 unsafe.Pointer
+       if len(p) > 0 {
+               _p0 = unsafe.Pointer(&p[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       r0, _, e1 := Syscall6(SYS_EXTPREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(offset), 0)
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func extpwrite(fd int, p []byte, flags int, offset int64) (n int, err error) {
+       var _p0 unsafe.Pointer
+       if len(p) > 0 {
+               _p0 = unsafe.Pointer(&p[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       r0, _, e1 := Syscall6(SYS_EXTPWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(offset), 0)
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Access(path string, mode uint32) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Adjtime(delta *Timeval, olddelta *Timeval) (err error) {
+       _, _, e1 := Syscall(SYS_ADJTIME, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Chdir(path string) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Chflags(path string, flags int) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Chmod(path string, mode uint32) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Chown(path string, uid int, gid int) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Chroot(path string) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Close(fd int) (err error) {
+       _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Dup(fd int) (nfd int, err error) {
+       r0, _, e1 := Syscall(SYS_DUP, uintptr(fd), 0, 0)
+       nfd = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Dup2(from int, to int) (err error) {
+       _, _, e1 := Syscall(SYS_DUP2, uintptr(from), uintptr(to), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Exit(code int) {
+       Syscall(SYS_EXIT, uintptr(code), 0, 0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fchdir(fd int) (err error) {
+       _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fchflags(fd int, flags int) (err error) {
+       _, _, e1 := Syscall(SYS_FCHFLAGS, uintptr(fd), uintptr(flags), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fchmod(fd int, mode uint32) (err error) {
+       _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fchown(fd int, uid int, gid int) (err error) {
+       _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Flock(fd int, how int) (err error) {
+       _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fpathconf(fd int, name int) (val int, err error) {
+       r0, _, e1 := Syscall(SYS_FPATHCONF, uintptr(fd), uintptr(name), 0)
+       val = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fstat(fd int, stat *Stat_t) (err error) {
+       _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fstatfs(fd int, stat *Statfs_t) (err error) {
+       _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fsync(fd int) (err error) {
+       _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Ftruncate(fd int, length int64) (err error) {
+       _, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), 0, uintptr(length))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) {
+       var _p0 unsafe.Pointer
+       if len(buf) > 0 {
+               _p0 = unsafe.Pointer(&buf[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       r0, _, e1 := Syscall6(SYS_GETDIRENTRIES, uintptr(fd), uintptr(_p0), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 0, 0)
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getdtablesize() (size int) {
+       r0, _, _ := Syscall(SYS_GETDTABLESIZE, 0, 0, 0)
+       size = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getegid() (egid int) {
+       r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0)
+       egid = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Geteuid() (uid int) {
+       r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0)
+       uid = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getgid() (gid int) {
+       r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0)
+       gid = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getpgid(pid int) (pgid int, err error) {
+       r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0)
+       pgid = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getpgrp() (pgrp int) {
+       r0, _, _ := RawSyscall(SYS_GETPGRP, 0, 0, 0)
+       pgrp = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getpid() (pid int) {
+       r0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0)
+       pid = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getppid() (ppid int) {
+       r0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0)
+       ppid = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getpriority(which int, who int) (prio int, err error) {
+       r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0)
+       prio = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getrlimit(which int, lim *Rlimit) (err error) {
+       _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getrusage(who int, rusage *Rusage) (err error) {
+       _, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getsid(pid int) (sid int, err error) {
+       r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0)
+       sid = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Gettimeofday(tv *Timeval) (err error) {
+       _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getuid() (uid int) {
+       r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0)
+       uid = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Issetugid() (tainted bool) {
+       r0, _, _ := Syscall(SYS_ISSETUGID, 0, 0, 0)
+       tainted = bool(r0 != 0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Kill(pid int, signum syscall.Signal) (err error) {
+       _, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Kqueue() (fd int, err error) {
+       r0, _, e1 := Syscall(SYS_KQUEUE, 0, 0, 0)
+       fd = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Lchown(path string, uid int, gid int) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Link(path string, link string) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       var _p1 *byte
+       _p1, err = BytePtrFromString(link)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Listen(s int, backlog int) (err error) {
+       _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Lstat(path string, stat *Stat_t) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Mkdir(path string, mode uint32) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Mkfifo(path string, mode uint32) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Mknod(path string, mode uint32, dev int) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_MKNOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Nanosleep(time *Timespec, leftover *Timespec) (err error) {
+       _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Open(path string, mode int, perm uint32) (fd int, err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       r0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm))
+       fd = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Pathconf(path string, name int) (val int, err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       r0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0)
+       val = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func read(fd int, p []byte) (n int, err error) {
+       var _p0 unsafe.Pointer
+       if len(p) > 0 {
+               _p0 = unsafe.Pointer(&p[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p)))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Readlink(path string, buf []byte) (n int, err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       var _p1 unsafe.Pointer
+       if len(buf) > 0 {
+               _p1 = unsafe.Pointer(&buf[0])
+       } else {
+               _p1 = unsafe.Pointer(&_zero)
+       }
+       r0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Rename(from string, to string) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(from)
+       if err != nil {
+               return
+       }
+       var _p1 *byte
+       _p1, err = BytePtrFromString(to)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Revoke(path string) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Rmdir(path string) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Seek(fd int, offset int64, whence int) (newoffset int64, err error) {
+       r0, _, e1 := Syscall6(SYS_LSEEK, uintptr(fd), 0, uintptr(offset), uintptr(whence), 0, 0)
+       newoffset = int64(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) {
+       _, _, e1 := Syscall6(SYS_SELECT, uintptr(n), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setegid(egid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETEGID, uintptr(egid), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Seteuid(euid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETEUID, uintptr(euid), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setgid(gid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETGID, uintptr(gid), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setlogin(name string) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(name)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_SETLOGIN, uintptr(unsafe.Pointer(_p0)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setpgid(pid int, pgid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setpriority(which int, who int, prio int) (err error) {
+       _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setregid(rgid int, egid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setreuid(ruid int, euid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setresgid(rgid int, egid int, sgid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setresuid(ruid int, euid int, suid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setrlimit(which int, lim *Rlimit) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setsid() (pid int, err error) {
+       r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0)
+       pid = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Settimeofday(tp *Timeval) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setuid(uid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETUID, uintptr(uid), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Stat(path string, stat *Stat_t) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Statfs(path string, stat *Statfs_t) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Symlink(path string, link string) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       var _p1 *byte
+       _p1, err = BytePtrFromString(link)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Sync() (err error) {
+       _, _, e1 := Syscall(SYS_SYNC, 0, 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Truncate(path string, length int64) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Umask(newmask int) (oldmask int) {
+       r0, _, _ := Syscall(SYS_UMASK, uintptr(newmask), 0, 0)
+       oldmask = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Undelete(path string) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_UNDELETE, uintptr(unsafe.Pointer(_p0)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Unlink(path string) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Unmount(path string, flags int) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func write(fd int, p []byte) (n int, err error) {
+       var _p0 unsafe.Pointer
+       if len(p) > 0 {
+               _p0 = unsafe.Pointer(&p[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) {
+       r0, _, e1 := Syscall9(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), 0, uintptr(pos), 0, 0)
+       ret = uintptr(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func munmap(addr uintptr, length uintptr) (err error) {
+       _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func readlen(fd int, buf *byte, nbuf int) (n int, err error) {
+       r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func writelen(fd int, buf *byte, nbuf int) (n int, err error) {
+       r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// 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)
+       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
+}
diff --git a/vendor/golang.org/x/sys/unix/zsyscall_freebsd_386.go b/vendor/golang.org/x/sys/unix/zsyscall_freebsd_386.go
new file mode 100644 (file)
index 0000000..1a0bb4c
--- /dev/null
@@ -0,0 +1,1877 @@
+// mksyscall.pl -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
+
+package unix
+
+import (
+       "syscall"
+       "unsafe"
+)
+
+var _ syscall.Errno
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func getgroups(ngid int, gid *_Gid_t) (n int, err error) {
+       r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func setgroups(ngid int, gid *_Gid_t) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) {
+       r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0)
+       wpid = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {
+       r0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))
+       fd = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {
+       _, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {
+       _, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func socket(domain int, typ int, proto int) (fd int, err error) {
+       r0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto))
+       fd = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {
+       _, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {
+       _, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {
+       _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {
+       _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Shutdown(s int, how int) (err error) {
+       _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(s), uintptr(how), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {
+       _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {
+       var _p0 unsafe.Pointer
+       if len(p) > 0 {
+               _p0 = unsafe.Pointer(&p[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {
+       var _p0 unsafe.Pointer
+       if len(buf) > 0 {
+               _p0 = unsafe.Pointer(&buf[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {
+       r0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {
+       r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) {
+       r0, _, e1 := Syscall6(SYS_KEVENT, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout)))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {
+       var _p0 unsafe.Pointer
+       if len(mib) > 0 {
+               _p0 = unsafe.Pointer(&mib[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func utimes(path string, timeval *[2]Timeval) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func futimes(fd int, timeval *[2]Timeval) (err error) {
+       _, _, e1 := Syscall(SYS_FUTIMES, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func fcntl(fd int, cmd int, arg int) (val int, err error) {
+       r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg))
+       val = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func 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))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Mlock(b []byte) (err error) {
+       var _p0 unsafe.Pointer
+       if len(b) > 0 {
+               _p0 = unsafe.Pointer(&b[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Mlockall(flags int) (err error) {
+       _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Mprotect(b []byte, prot int) (err error) {
+       var _p0 unsafe.Pointer
+       if len(b) > 0 {
+               _p0 = unsafe.Pointer(&b[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func 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 Munlock(b []byte) (err error) {
+       var _p0 unsafe.Pointer
+       if len(b) > 0 {
+               _p0 = unsafe.Pointer(&b[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Munlockall() (err error) {
+       _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func pipe() (r int, w int, err error) {
+       r0, r1, e1 := RawSyscall(SYS_PIPE, 0, 0, 0)
+       r = int(r0)
+       w = int(r1)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func 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)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Adjtime(delta *Timeval, olddelta *Timeval) (err error) {
+       _, _, e1 := Syscall(SYS_ADJTIME, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func CapEnter() (err error) {
+       _, _, e1 := Syscall(SYS_CAP_ENTER, 0, 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// 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)))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// 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)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Chdir(path string) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Chflags(path string, flags int) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Chmod(path string, mode uint32) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Chown(path string, uid int, gid int) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Chroot(path string) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Close(fd int) (err error) {
+       _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Dup(fd int) (nfd int, err error) {
+       r0, _, e1 := Syscall(SYS_DUP, uintptr(fd), 0, 0)
+       nfd = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Dup2(from int, to int) (err error) {
+       _, _, e1 := Syscall(SYS_DUP2, uintptr(from), uintptr(to), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Exit(code int) {
+       Syscall(SYS_EXIT, uintptr(code), 0, 0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func ExtattrGetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(attrname)
+       if err != nil {
+               return
+       }
+       r0, _, e1 := Syscall6(SYS_EXTATTR_GET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0)
+       ret = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func ExtattrSetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(attrname)
+       if err != nil {
+               return
+       }
+       r0, _, e1 := Syscall6(SYS_EXTATTR_SET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0)
+       ret = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func ExtattrDeleteFd(fd int, attrnamespace int, attrname string) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(attrname)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_EXTATTR_DELETE_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func ExtattrListFd(fd int, attrnamespace int, data uintptr, nbytes int) (ret int, err error) {
+       r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FD, uintptr(fd), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0)
+       ret = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func ExtattrGetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(file)
+       if err != nil {
+               return
+       }
+       var _p1 *byte
+       _p1, err = BytePtrFromString(attrname)
+       if err != nil {
+               return
+       }
+       r0, _, e1 := Syscall6(SYS_EXTATTR_GET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)
+       ret = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func ExtattrSetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(file)
+       if err != nil {
+               return
+       }
+       var _p1 *byte
+       _p1, err = BytePtrFromString(attrname)
+       if err != nil {
+               return
+       }
+       r0, _, e1 := Syscall6(SYS_EXTATTR_SET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)
+       ret = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func ExtattrDeleteFile(file string, attrnamespace int, attrname string) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(file)
+       if err != nil {
+               return
+       }
+       var _p1 *byte
+       _p1, err = BytePtrFromString(attrname)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_EXTATTR_DELETE_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func ExtattrListFile(file string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(file)
+       if err != nil {
+               return
+       }
+       r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0)
+       ret = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func ExtattrGetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(link)
+       if err != nil {
+               return
+       }
+       var _p1 *byte
+       _p1, err = BytePtrFromString(attrname)
+       if err != nil {
+               return
+       }
+       r0, _, e1 := Syscall6(SYS_EXTATTR_GET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)
+       ret = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func ExtattrSetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(link)
+       if err != nil {
+               return
+       }
+       var _p1 *byte
+       _p1, err = BytePtrFromString(attrname)
+       if err != nil {
+               return
+       }
+       r0, _, e1 := Syscall6(SYS_EXTATTR_SET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)
+       ret = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func ExtattrDeleteLink(link string, attrnamespace int, attrname string) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(link)
+       if err != nil {
+               return
+       }
+       var _p1 *byte
+       _p1, err = BytePtrFromString(attrname)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_EXTATTR_DELETE_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func ExtattrListLink(link string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(link)
+       if err != nil {
+               return
+       }
+       r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0)
+       ret = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fadvise(fd int, offset int64, length int64, advice int) (err error) {
+       _, _, e1 := Syscall6(SYS_POSIX_FADVISE, uintptr(fd), uintptr(offset), uintptr(offset>>32), uintptr(length), uintptr(length>>32), uintptr(advice))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func 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 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fchflags(fd int, flags int) (err error) {
+       _, _, e1 := Syscall(SYS_FCHFLAGS, uintptr(fd), uintptr(flags), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fchmod(fd int, mode uint32) (err error) {
+       _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func 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 {
+               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 Flock(fd int, how int) (err error) {
+       _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fpathconf(fd int, name int) (val int, err error) {
+       r0, _, e1 := Syscall(SYS_FPATHCONF, uintptr(fd), uintptr(name), 0)
+       val = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fstat(fd int, stat *Stat_t) (err error) {
+       _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fstatfs(fd int, stat *Statfs_t) (err error) {
+       _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fsync(fd int) (err error) {
+       _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Ftruncate(fd int, length int64) (err error) {
+       _, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), uintptr(length>>32))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) {
+       var _p0 unsafe.Pointer
+       if len(buf) > 0 {
+               _p0 = unsafe.Pointer(&buf[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       r0, _, e1 := Syscall6(SYS_GETDIRENTRIES, uintptr(fd), uintptr(_p0), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 0, 0)
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getdtablesize() (size int) {
+       r0, _, _ := Syscall(SYS_GETDTABLESIZE, 0, 0, 0)
+       size = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getegid() (egid int) {
+       r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0)
+       egid = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Geteuid() (uid int) {
+       r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0)
+       uid = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getgid() (gid int) {
+       r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0)
+       gid = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getpgid(pid int) (pgid int, err error) {
+       r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0)
+       pgid = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getpgrp() (pgrp int) {
+       r0, _, _ := RawSyscall(SYS_GETPGRP, 0, 0, 0)
+       pgrp = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getpid() (pid int) {
+       r0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0)
+       pid = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getppid() (ppid int) {
+       r0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0)
+       ppid = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getpriority(which int, who int) (prio int, err error) {
+       r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0)
+       prio = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getrlimit(which int, lim *Rlimit) (err error) {
+       _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getrusage(who int, rusage *Rusage) (err error) {
+       _, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getsid(pid int) (sid int, err error) {
+       r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0)
+       sid = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Gettimeofday(tv *Timeval) (err error) {
+       _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getuid() (uid int) {
+       r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0)
+       uid = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Issetugid() (tainted bool) {
+       r0, _, _ := Syscall(SYS_ISSETUGID, 0, 0, 0)
+       tainted = bool(r0 != 0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Kill(pid int, signum syscall.Signal) (err error) {
+       _, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Kqueue() (fd int, err error) {
+       r0, _, e1 := Syscall(SYS_KQUEUE, 0, 0, 0)
+       fd = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Lchown(path string, uid int, gid int) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Link(path string, link string) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       var _p1 *byte
+       _p1, err = BytePtrFromString(link)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func 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 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Lstat(path string, stat *Stat_t) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Mkdir(path string, mode uint32) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func 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)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Mknod(path string, mode uint32, dev int) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_MKNOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Nanosleep(time *Timespec, leftover *Timespec) (err error) {
+       _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Open(path string, mode int, perm uint32) (fd int, err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       r0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm))
+       fd = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Openat(fdat 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)
+       fd = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Pathconf(path string, name int) (val int, err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       r0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0)
+       val = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Pread(fd int, p []byte, offset int64) (n int, err error) {
+       var _p0 unsafe.Pointer
+       if len(p) > 0 {
+               _p0 = unsafe.Pointer(&p[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       r0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0)
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Pwrite(fd int, p []byte, offset int64) (n int, err error) {
+       var _p0 unsafe.Pointer
+       if len(p) > 0 {
+               _p0 = unsafe.Pointer(&p[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       r0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0)
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func read(fd int, p []byte) (n int, err error) {
+       var _p0 unsafe.Pointer
+       if len(p) > 0 {
+               _p0 = unsafe.Pointer(&p[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p)))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Readlink(path string, buf []byte) (n int, err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       var _p1 unsafe.Pointer
+       if len(buf) > 0 {
+               _p1 = unsafe.Pointer(&buf[0])
+       } else {
+               _p1 = unsafe.Pointer(&_zero)
+       }
+       r0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func 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)
+       if err != nil {
+               return
+       }
+       var _p1 *byte
+       _p1, err = BytePtrFromString(to)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func 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)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Rmdir(path string) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Seek(fd int, offset int64, whence int) (newoffset int64, err error) {
+       r0, r1, e1 := Syscall6(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(offset>>32), uintptr(whence), 0, 0)
+       newoffset = int64(int64(r1)<<32 | int64(r0))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) {
+       _, _, e1 := Syscall6(SYS_SELECT, uintptr(n), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setegid(egid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETEGID, uintptr(egid), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Seteuid(euid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETEUID, uintptr(euid), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setgid(gid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETGID, uintptr(gid), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setlogin(name string) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(name)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_SETLOGIN, uintptr(unsafe.Pointer(_p0)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setpgid(pid int, pgid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setpriority(which int, who int, prio int) (err error) {
+       _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setregid(rgid int, egid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setreuid(ruid int, euid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setresgid(rgid int, egid int, sgid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setresuid(ruid int, euid int, suid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setrlimit(which int, lim *Rlimit) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setsid() (pid int, err error) {
+       r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0)
+       pid = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Settimeofday(tp *Timeval) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setuid(uid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETUID, uintptr(uid), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Stat(path string, stat *Stat_t) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Statfs(path string, stat *Statfs_t) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Symlink(path string, link string) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       var _p1 *byte
+       _p1, err = BytePtrFromString(link)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func 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 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Truncate(path string, length int64) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), uintptr(length>>32))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Umask(newmask int) (oldmask int) {
+       r0, _, _ := Syscall(SYS_UMASK, uintptr(newmask), 0, 0)
+       oldmask = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Undelete(path string) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_UNDELETE, uintptr(unsafe.Pointer(_p0)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Unlink(path string) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func 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)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func write(fd int, p []byte) (n int, err error) {
+       var _p0 unsafe.Pointer
+       if len(p) > 0 {
+               _p0 = unsafe.Pointer(&p[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) {
+       r0, _, e1 := Syscall9(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos), uintptr(pos>>32), 0, 0)
+       ret = uintptr(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func munmap(addr uintptr, length uintptr) (err error) {
+       _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func readlen(fd int, buf *byte, nbuf int) (n int, err error) {
+       r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func writelen(fd int, buf *byte, nbuf int) (n int, err error) {
+       r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func accept4(fd int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (nfd int, err error) {
+       r0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0)
+       nfd = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// 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
+}
diff --git a/vendor/golang.org/x/sys/unix/zsyscall_freebsd_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_freebsd_amd64.go
new file mode 100644 (file)
index 0000000..ac1e8e0
--- /dev/null
@@ -0,0 +1,1877 @@
+// mksyscall.pl -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
+
+package unix
+
+import (
+       "syscall"
+       "unsafe"
+)
+
+var _ syscall.Errno
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func getgroups(ngid int, gid *_Gid_t) (n int, err error) {
+       r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func setgroups(ngid int, gid *_Gid_t) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) {
+       r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0)
+       wpid = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {
+       r0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))
+       fd = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {
+       _, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {
+       _, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func socket(domain int, typ int, proto int) (fd int, err error) {
+       r0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto))
+       fd = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {
+       _, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {
+       _, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {
+       _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {
+       _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Shutdown(s int, how int) (err error) {
+       _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(s), uintptr(how), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {
+       _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {
+       var _p0 unsafe.Pointer
+       if len(p) > 0 {
+               _p0 = unsafe.Pointer(&p[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {
+       var _p0 unsafe.Pointer
+       if len(buf) > 0 {
+               _p0 = unsafe.Pointer(&buf[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {
+       r0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {
+       r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) {
+       r0, _, e1 := Syscall6(SYS_KEVENT, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout)))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {
+       var _p0 unsafe.Pointer
+       if len(mib) > 0 {
+               _p0 = unsafe.Pointer(&mib[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func utimes(path string, timeval *[2]Timeval) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func futimes(fd int, timeval *[2]Timeval) (err error) {
+       _, _, e1 := Syscall(SYS_FUTIMES, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func fcntl(fd int, cmd int, arg int) (val int, err error) {
+       r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg))
+       val = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func 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))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Mlock(b []byte) (err error) {
+       var _p0 unsafe.Pointer
+       if len(b) > 0 {
+               _p0 = unsafe.Pointer(&b[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Mlockall(flags int) (err error) {
+       _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Mprotect(b []byte, prot int) (err error) {
+       var _p0 unsafe.Pointer
+       if len(b) > 0 {
+               _p0 = unsafe.Pointer(&b[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func 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 Munlock(b []byte) (err error) {
+       var _p0 unsafe.Pointer
+       if len(b) > 0 {
+               _p0 = unsafe.Pointer(&b[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Munlockall() (err error) {
+       _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func pipe() (r int, w int, err error) {
+       r0, r1, e1 := RawSyscall(SYS_PIPE, 0, 0, 0)
+       r = int(r0)
+       w = int(r1)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func 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)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Adjtime(delta *Timeval, olddelta *Timeval) (err error) {
+       _, _, e1 := Syscall(SYS_ADJTIME, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func CapEnter() (err error) {
+       _, _, e1 := Syscall(SYS_CAP_ENTER, 0, 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// 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)))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// 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)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Chdir(path string) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Chflags(path string, flags int) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Chmod(path string, mode uint32) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Chown(path string, uid int, gid int) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Chroot(path string) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Close(fd int) (err error) {
+       _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Dup(fd int) (nfd int, err error) {
+       r0, _, e1 := Syscall(SYS_DUP, uintptr(fd), 0, 0)
+       nfd = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Dup2(from int, to int) (err error) {
+       _, _, e1 := Syscall(SYS_DUP2, uintptr(from), uintptr(to), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Exit(code int) {
+       Syscall(SYS_EXIT, uintptr(code), 0, 0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func ExtattrGetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(attrname)
+       if err != nil {
+               return
+       }
+       r0, _, e1 := Syscall6(SYS_EXTATTR_GET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0)
+       ret = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func ExtattrSetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(attrname)
+       if err != nil {
+               return
+       }
+       r0, _, e1 := Syscall6(SYS_EXTATTR_SET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0)
+       ret = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func ExtattrDeleteFd(fd int, attrnamespace int, attrname string) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(attrname)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_EXTATTR_DELETE_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func ExtattrListFd(fd int, attrnamespace int, data uintptr, nbytes int) (ret int, err error) {
+       r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FD, uintptr(fd), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0)
+       ret = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func ExtattrGetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(file)
+       if err != nil {
+               return
+       }
+       var _p1 *byte
+       _p1, err = BytePtrFromString(attrname)
+       if err != nil {
+               return
+       }
+       r0, _, e1 := Syscall6(SYS_EXTATTR_GET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)
+       ret = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func ExtattrSetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(file)
+       if err != nil {
+               return
+       }
+       var _p1 *byte
+       _p1, err = BytePtrFromString(attrname)
+       if err != nil {
+               return
+       }
+       r0, _, e1 := Syscall6(SYS_EXTATTR_SET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)
+       ret = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func ExtattrDeleteFile(file string, attrnamespace int, attrname string) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(file)
+       if err != nil {
+               return
+       }
+       var _p1 *byte
+       _p1, err = BytePtrFromString(attrname)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_EXTATTR_DELETE_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func ExtattrListFile(file string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(file)
+       if err != nil {
+               return
+       }
+       r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0)
+       ret = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func ExtattrGetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(link)
+       if err != nil {
+               return
+       }
+       var _p1 *byte
+       _p1, err = BytePtrFromString(attrname)
+       if err != nil {
+               return
+       }
+       r0, _, e1 := Syscall6(SYS_EXTATTR_GET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)
+       ret = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func ExtattrSetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(link)
+       if err != nil {
+               return
+       }
+       var _p1 *byte
+       _p1, err = BytePtrFromString(attrname)
+       if err != nil {
+               return
+       }
+       r0, _, e1 := Syscall6(SYS_EXTATTR_SET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)
+       ret = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func ExtattrDeleteLink(link string, attrnamespace int, attrname string) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(link)
+       if err != nil {
+               return
+       }
+       var _p1 *byte
+       _p1, err = BytePtrFromString(attrname)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_EXTATTR_DELETE_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func ExtattrListLink(link string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(link)
+       if err != nil {
+               return
+       }
+       r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0)
+       ret = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fadvise(fd int, offset int64, length int64, advice int) (err error) {
+       _, _, e1 := Syscall6(SYS_POSIX_FADVISE, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func 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 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fchflags(fd int, flags int) (err error) {
+       _, _, e1 := Syscall(SYS_FCHFLAGS, uintptr(fd), uintptr(flags), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fchmod(fd int, mode uint32) (err error) {
+       _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func 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 {
+               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 Flock(fd int, how int) (err error) {
+       _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fpathconf(fd int, name int) (val int, err error) {
+       r0, _, e1 := Syscall(SYS_FPATHCONF, uintptr(fd), uintptr(name), 0)
+       val = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fstat(fd int, stat *Stat_t) (err error) {
+       _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fstatfs(fd int, stat *Statfs_t) (err error) {
+       _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fsync(fd int) (err error) {
+       _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Ftruncate(fd int, length int64) (err error) {
+       _, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) {
+       var _p0 unsafe.Pointer
+       if len(buf) > 0 {
+               _p0 = unsafe.Pointer(&buf[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       r0, _, e1 := Syscall6(SYS_GETDIRENTRIES, uintptr(fd), uintptr(_p0), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 0, 0)
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getdtablesize() (size int) {
+       r0, _, _ := Syscall(SYS_GETDTABLESIZE, 0, 0, 0)
+       size = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getegid() (egid int) {
+       r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0)
+       egid = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Geteuid() (uid int) {
+       r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0)
+       uid = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getgid() (gid int) {
+       r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0)
+       gid = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getpgid(pid int) (pgid int, err error) {
+       r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0)
+       pgid = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getpgrp() (pgrp int) {
+       r0, _, _ := RawSyscall(SYS_GETPGRP, 0, 0, 0)
+       pgrp = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getpid() (pid int) {
+       r0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0)
+       pid = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getppid() (ppid int) {
+       r0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0)
+       ppid = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getpriority(which int, who int) (prio int, err error) {
+       r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0)
+       prio = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getrlimit(which int, lim *Rlimit) (err error) {
+       _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getrusage(who int, rusage *Rusage) (err error) {
+       _, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getsid(pid int) (sid int, err error) {
+       r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0)
+       sid = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Gettimeofday(tv *Timeval) (err error) {
+       _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getuid() (uid int) {
+       r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0)
+       uid = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Issetugid() (tainted bool) {
+       r0, _, _ := Syscall(SYS_ISSETUGID, 0, 0, 0)
+       tainted = bool(r0 != 0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Kill(pid int, signum syscall.Signal) (err error) {
+       _, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Kqueue() (fd int, err error) {
+       r0, _, e1 := Syscall(SYS_KQUEUE, 0, 0, 0)
+       fd = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Lchown(path string, uid int, gid int) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Link(path string, link string) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       var _p1 *byte
+       _p1, err = BytePtrFromString(link)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func 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 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Lstat(path string, stat *Stat_t) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Mkdir(path string, mode uint32) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func 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)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Mknod(path string, mode uint32, dev int) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_MKNOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Nanosleep(time *Timespec, leftover *Timespec) (err error) {
+       _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Open(path string, mode int, perm uint32) (fd int, err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       r0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm))
+       fd = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Openat(fdat 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)
+       fd = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Pathconf(path string, name int) (val int, err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       r0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0)
+       val = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Pread(fd int, p []byte, offset int64) (n int, err error) {
+       var _p0 unsafe.Pointer
+       if len(p) > 0 {
+               _p0 = unsafe.Pointer(&p[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       r0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Pwrite(fd int, p []byte, offset int64) (n int, err error) {
+       var _p0 unsafe.Pointer
+       if len(p) > 0 {
+               _p0 = unsafe.Pointer(&p[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       r0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func read(fd int, p []byte) (n int, err error) {
+       var _p0 unsafe.Pointer
+       if len(p) > 0 {
+               _p0 = unsafe.Pointer(&p[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p)))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Readlink(path string, buf []byte) (n int, err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       var _p1 unsafe.Pointer
+       if len(buf) > 0 {
+               _p1 = unsafe.Pointer(&buf[0])
+       } else {
+               _p1 = unsafe.Pointer(&_zero)
+       }
+       r0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func 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)
+       if err != nil {
+               return
+       }
+       var _p1 *byte
+       _p1, err = BytePtrFromString(to)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func 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)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Rmdir(path string) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Seek(fd int, offset int64, whence int) (newoffset int64, err error) {
+       r0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence))
+       newoffset = int64(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) {
+       _, _, e1 := Syscall6(SYS_SELECT, uintptr(n), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setegid(egid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETEGID, uintptr(egid), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Seteuid(euid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETEUID, uintptr(euid), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setgid(gid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETGID, uintptr(gid), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setlogin(name string) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(name)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_SETLOGIN, uintptr(unsafe.Pointer(_p0)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setpgid(pid int, pgid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setpriority(which int, who int, prio int) (err error) {
+       _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setregid(rgid int, egid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setreuid(ruid int, euid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setresgid(rgid int, egid int, sgid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setresuid(ruid int, euid int, suid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setrlimit(which int, lim *Rlimit) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setsid() (pid int, err error) {
+       r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0)
+       pid = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Settimeofday(tp *Timeval) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setuid(uid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETUID, uintptr(uid), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Stat(path string, stat *Stat_t) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Statfs(path string, stat *Statfs_t) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Symlink(path string, link string) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       var _p1 *byte
+       _p1, err = BytePtrFromString(link)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func 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 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Truncate(path string, length int64) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Umask(newmask int) (oldmask int) {
+       r0, _, _ := Syscall(SYS_UMASK, uintptr(newmask), 0, 0)
+       oldmask = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Undelete(path string) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_UNDELETE, uintptr(unsafe.Pointer(_p0)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Unlink(path string) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func 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)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func write(fd int, p []byte) (n int, err error) {
+       var _p0 unsafe.Pointer
+       if len(p) > 0 {
+               _p0 = unsafe.Pointer(&p[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) {
+       r0, _, e1 := Syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos))
+       ret = uintptr(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func munmap(addr uintptr, length uintptr) (err error) {
+       _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func readlen(fd int, buf *byte, nbuf int) (n int, err error) {
+       r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func writelen(fd int, buf *byte, nbuf int) (n int, err error) {
+       r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func accept4(fd int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (nfd int, err error) {
+       r0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0)
+       nfd = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// 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
+}
diff --git a/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm.go b/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm.go
new file mode 100644 (file)
index 0000000..2b4e6ac
--- /dev/null
@@ -0,0 +1,1877 @@
+// mksyscall.pl -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
+
+package unix
+
+import (
+       "syscall"
+       "unsafe"
+)
+
+var _ syscall.Errno
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func getgroups(ngid int, gid *_Gid_t) (n int, err error) {
+       r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func setgroups(ngid int, gid *_Gid_t) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) {
+       r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0)
+       wpid = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {
+       r0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))
+       fd = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {
+       _, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {
+       _, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func socket(domain int, typ int, proto int) (fd int, err error) {
+       r0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto))
+       fd = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {
+       _, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {
+       _, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {
+       _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {
+       _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Shutdown(s int, how int) (err error) {
+       _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(s), uintptr(how), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {
+       _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {
+       var _p0 unsafe.Pointer
+       if len(p) > 0 {
+               _p0 = unsafe.Pointer(&p[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {
+       var _p0 unsafe.Pointer
+       if len(buf) > 0 {
+               _p0 = unsafe.Pointer(&buf[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {
+       r0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {
+       r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) {
+       r0, _, e1 := Syscall6(SYS_KEVENT, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout)))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {
+       var _p0 unsafe.Pointer
+       if len(mib) > 0 {
+               _p0 = unsafe.Pointer(&mib[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func utimes(path string, timeval *[2]Timeval) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func futimes(fd int, timeval *[2]Timeval) (err error) {
+       _, _, e1 := Syscall(SYS_FUTIMES, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func fcntl(fd int, cmd int, arg int) (val int, err error) {
+       r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg))
+       val = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func 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))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Mlock(b []byte) (err error) {
+       var _p0 unsafe.Pointer
+       if len(b) > 0 {
+               _p0 = unsafe.Pointer(&b[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Mlockall(flags int) (err error) {
+       _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Mprotect(b []byte, prot int) (err error) {
+       var _p0 unsafe.Pointer
+       if len(b) > 0 {
+               _p0 = unsafe.Pointer(&b[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func 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 Munlock(b []byte) (err error) {
+       var _p0 unsafe.Pointer
+       if len(b) > 0 {
+               _p0 = unsafe.Pointer(&b[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Munlockall() (err error) {
+       _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func pipe() (r int, w int, err error) {
+       r0, r1, e1 := RawSyscall(SYS_PIPE, 0, 0, 0)
+       r = int(r0)
+       w = int(r1)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func 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)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Adjtime(delta *Timeval, olddelta *Timeval) (err error) {
+       _, _, e1 := Syscall(SYS_ADJTIME, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func CapEnter() (err error) {
+       _, _, e1 := Syscall(SYS_CAP_ENTER, 0, 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// 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)))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// 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)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Chdir(path string) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Chflags(path string, flags int) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Chmod(path string, mode uint32) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Chown(path string, uid int, gid int) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Chroot(path string) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Close(fd int) (err error) {
+       _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Dup(fd int) (nfd int, err error) {
+       r0, _, e1 := Syscall(SYS_DUP, uintptr(fd), 0, 0)
+       nfd = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Dup2(from int, to int) (err error) {
+       _, _, e1 := Syscall(SYS_DUP2, uintptr(from), uintptr(to), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Exit(code int) {
+       Syscall(SYS_EXIT, uintptr(code), 0, 0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func ExtattrGetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(attrname)
+       if err != nil {
+               return
+       }
+       r0, _, e1 := Syscall6(SYS_EXTATTR_GET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0)
+       ret = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func ExtattrSetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(attrname)
+       if err != nil {
+               return
+       }
+       r0, _, e1 := Syscall6(SYS_EXTATTR_SET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0)
+       ret = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func ExtattrDeleteFd(fd int, attrnamespace int, attrname string) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(attrname)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_EXTATTR_DELETE_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func ExtattrListFd(fd int, attrnamespace int, data uintptr, nbytes int) (ret int, err error) {
+       r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FD, uintptr(fd), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0)
+       ret = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func ExtattrGetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(file)
+       if err != nil {
+               return
+       }
+       var _p1 *byte
+       _p1, err = BytePtrFromString(attrname)
+       if err != nil {
+               return
+       }
+       r0, _, e1 := Syscall6(SYS_EXTATTR_GET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)
+       ret = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func ExtattrSetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(file)
+       if err != nil {
+               return
+       }
+       var _p1 *byte
+       _p1, err = BytePtrFromString(attrname)
+       if err != nil {
+               return
+       }
+       r0, _, e1 := Syscall6(SYS_EXTATTR_SET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)
+       ret = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func ExtattrDeleteFile(file string, attrnamespace int, attrname string) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(file)
+       if err != nil {
+               return
+       }
+       var _p1 *byte
+       _p1, err = BytePtrFromString(attrname)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_EXTATTR_DELETE_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func ExtattrListFile(file string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(file)
+       if err != nil {
+               return
+       }
+       r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0)
+       ret = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func ExtattrGetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(link)
+       if err != nil {
+               return
+       }
+       var _p1 *byte
+       _p1, err = BytePtrFromString(attrname)
+       if err != nil {
+               return
+       }
+       r0, _, e1 := Syscall6(SYS_EXTATTR_GET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)
+       ret = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func ExtattrSetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(link)
+       if err != nil {
+               return
+       }
+       var _p1 *byte
+       _p1, err = BytePtrFromString(attrname)
+       if err != nil {
+               return
+       }
+       r0, _, e1 := Syscall6(SYS_EXTATTR_SET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)
+       ret = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func ExtattrDeleteLink(link string, attrnamespace int, attrname string) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(link)
+       if err != nil {
+               return
+       }
+       var _p1 *byte
+       _p1, err = BytePtrFromString(attrname)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_EXTATTR_DELETE_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func ExtattrListLink(link string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(link)
+       if err != nil {
+               return
+       }
+       r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0)
+       ret = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fadvise(fd int, offset int64, length int64, advice int) (err error) {
+       _, _, e1 := Syscall9(SYS_POSIX_FADVISE, uintptr(fd), 0, uintptr(offset), uintptr(offset>>32), uintptr(length), uintptr(length>>32), uintptr(advice), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func 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 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fchflags(fd int, flags int) (err error) {
+       _, _, e1 := Syscall(SYS_FCHFLAGS, uintptr(fd), uintptr(flags), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fchmod(fd int, mode uint32) (err error) {
+       _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func 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 {
+               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 Flock(fd int, how int) (err error) {
+       _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fpathconf(fd int, name int) (val int, err error) {
+       r0, _, e1 := Syscall(SYS_FPATHCONF, uintptr(fd), uintptr(name), 0)
+       val = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fstat(fd int, stat *Stat_t) (err error) {
+       _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fstatfs(fd int, stat *Statfs_t) (err error) {
+       _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fsync(fd int) (err error) {
+       _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Ftruncate(fd int, length int64) (err error) {
+       _, _, e1 := Syscall6(SYS_FTRUNCATE, uintptr(fd), 0, uintptr(length), uintptr(length>>32), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) {
+       var _p0 unsafe.Pointer
+       if len(buf) > 0 {
+               _p0 = unsafe.Pointer(&buf[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       r0, _, e1 := Syscall6(SYS_GETDIRENTRIES, uintptr(fd), uintptr(_p0), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 0, 0)
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getdtablesize() (size int) {
+       r0, _, _ := Syscall(SYS_GETDTABLESIZE, 0, 0, 0)
+       size = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getegid() (egid int) {
+       r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0)
+       egid = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Geteuid() (uid int) {
+       r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0)
+       uid = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getgid() (gid int) {
+       r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0)
+       gid = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getpgid(pid int) (pgid int, err error) {
+       r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0)
+       pgid = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getpgrp() (pgrp int) {
+       r0, _, _ := RawSyscall(SYS_GETPGRP, 0, 0, 0)
+       pgrp = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getpid() (pid int) {
+       r0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0)
+       pid = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getppid() (ppid int) {
+       r0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0)
+       ppid = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getpriority(which int, who int) (prio int, err error) {
+       r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0)
+       prio = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getrlimit(which int, lim *Rlimit) (err error) {
+       _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getrusage(who int, rusage *Rusage) (err error) {
+       _, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getsid(pid int) (sid int, err error) {
+       r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0)
+       sid = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Gettimeofday(tv *Timeval) (err error) {
+       _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getuid() (uid int) {
+       r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0)
+       uid = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Issetugid() (tainted bool) {
+       r0, _, _ := Syscall(SYS_ISSETUGID, 0, 0, 0)
+       tainted = bool(r0 != 0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Kill(pid int, signum syscall.Signal) (err error) {
+       _, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Kqueue() (fd int, err error) {
+       r0, _, e1 := Syscall(SYS_KQUEUE, 0, 0, 0)
+       fd = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Lchown(path string, uid int, gid int) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Link(path string, link string) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       var _p1 *byte
+       _p1, err = BytePtrFromString(link)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func 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 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Lstat(path string, stat *Stat_t) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Mkdir(path string, mode uint32) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func 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)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Mknod(path string, mode uint32, dev int) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_MKNOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Nanosleep(time *Timespec, leftover *Timespec) (err error) {
+       _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Open(path string, mode int, perm uint32) (fd int, err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       r0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm))
+       fd = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Openat(fdat 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)
+       fd = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Pathconf(path string, name int) (val int, err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       r0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0)
+       val = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Pread(fd int, p []byte, offset int64) (n int, err error) {
+       var _p0 unsafe.Pointer
+       if len(p) > 0 {
+               _p0 = unsafe.Pointer(&p[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       r0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), uintptr(offset>>32))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Pwrite(fd int, p []byte, offset int64) (n int, err error) {
+       var _p0 unsafe.Pointer
+       if len(p) > 0 {
+               _p0 = unsafe.Pointer(&p[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       r0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), uintptr(offset>>32))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func read(fd int, p []byte) (n int, err error) {
+       var _p0 unsafe.Pointer
+       if len(p) > 0 {
+               _p0 = unsafe.Pointer(&p[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p)))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Readlink(path string, buf []byte) (n int, err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       var _p1 unsafe.Pointer
+       if len(buf) > 0 {
+               _p1 = unsafe.Pointer(&buf[0])
+       } else {
+               _p1 = unsafe.Pointer(&_zero)
+       }
+       r0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func 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)
+       if err != nil {
+               return
+       }
+       var _p1 *byte
+       _p1, err = BytePtrFromString(to)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func 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)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Rmdir(path string) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Seek(fd int, offset int64, whence int) (newoffset int64, err error) {
+       r0, r1, e1 := Syscall6(SYS_LSEEK, uintptr(fd), 0, uintptr(offset), uintptr(offset>>32), uintptr(whence), 0)
+       newoffset = int64(int64(r1)<<32 | int64(r0))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) {
+       _, _, e1 := Syscall6(SYS_SELECT, uintptr(n), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setegid(egid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETEGID, uintptr(egid), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Seteuid(euid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETEUID, uintptr(euid), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setgid(gid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETGID, uintptr(gid), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setlogin(name string) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(name)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_SETLOGIN, uintptr(unsafe.Pointer(_p0)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setpgid(pid int, pgid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setpriority(which int, who int, prio int) (err error) {
+       _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setregid(rgid int, egid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setreuid(ruid int, euid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setresgid(rgid int, egid int, sgid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setresuid(ruid int, euid int, suid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setrlimit(which int, lim *Rlimit) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setsid() (pid int, err error) {
+       r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0)
+       pid = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Settimeofday(tp *Timeval) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setuid(uid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETUID, uintptr(uid), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Stat(path string, stat *Stat_t) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Statfs(path string, stat *Statfs_t) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Symlink(path string, link string) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       var _p1 *byte
+       _p1, err = BytePtrFromString(link)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func 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 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Truncate(path string, length int64) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall6(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length), uintptr(length>>32), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Umask(newmask int) (oldmask int) {
+       r0, _, _ := Syscall(SYS_UMASK, uintptr(newmask), 0, 0)
+       oldmask = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Undelete(path string) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_UNDELETE, uintptr(unsafe.Pointer(_p0)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Unlink(path string) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func 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)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func write(fd int, p []byte) (n int, err error) {
+       var _p0 unsafe.Pointer
+       if len(p) > 0 {
+               _p0 = unsafe.Pointer(&p[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) {
+       r0, _, e1 := Syscall9(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), 0, uintptr(pos), uintptr(pos>>32), 0)
+       ret = uintptr(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func munmap(addr uintptr, length uintptr) (err error) {
+       _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func readlen(fd int, buf *byte, nbuf int) (n int, err error) {
+       r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func writelen(fd int, buf *byte, nbuf int) (n int, err error) {
+       r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func accept4(fd int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (nfd int, err error) {
+       r0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0)
+       nfd = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// 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
+}
diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_386.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_386.go
new file mode 100644 (file)
index 0000000..38c1bbd
--- /dev/null
@@ -0,0 +1,1953 @@
+// mksyscall.pl -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
+
+package unix
+
+import (
+       "syscall"
+       "unsafe"
+)
+
+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)
+       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)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Dup2(oldfd int, newfd int) (err error) {
+       _, _, e1 := Syscall(SYS_DUP2, uintptr(oldfd), uintptr(newfd), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fadvise(fd int, offset int64, length int64, advice int) (err error) {
+       _, _, e1 := Syscall6(SYS_FADVISE64_64, uintptr(fd), uintptr(offset), uintptr(offset>>32), uintptr(length), uintptr(length>>32), uintptr(advice))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fchown(fd int, uid int, gid int) (err error) {
+       _, _, e1 := Syscall(SYS_FCHOWN32, uintptr(fd), uintptr(uid), uintptr(gid))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fstat(fd int, stat *Stat_t) (err error) {
+       _, _, e1 := Syscall(SYS_FSTAT64, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Ftruncate(fd int, length int64) (err error) {
+       _, _, e1 := Syscall(SYS_FTRUNCATE64, uintptr(fd), uintptr(length), uintptr(length>>32))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getegid() (egid int) {
+       r0, _, _ := RawSyscall(SYS_GETEGID32, 0, 0, 0)
+       egid = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Geteuid() (euid int) {
+       r0, _, _ := RawSyscall(SYS_GETEUID32, 0, 0, 0)
+       euid = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getgid() (gid int) {
+       r0, _, _ := RawSyscall(SYS_GETGID32, 0, 0, 0)
+       gid = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getuid() (uid int) {
+       r0, _, _ := RawSyscall(SYS_GETUID32, 0, 0, 0)
+       uid = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func InotifyInit() (fd int, err error) {
+       r0, _, e1 := RawSyscall(SYS_INOTIFY_INIT, 0, 0, 0)
+       fd = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Ioperm(from int, num int, on int) (err error) {
+       _, _, e1 := Syscall(SYS_IOPERM, uintptr(from), uintptr(num), uintptr(on))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Iopl(level int) (err error) {
+       _, _, e1 := Syscall(SYS_IOPL, uintptr(level), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Lchown(path string, uid int, gid int) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_LCHOWN32, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Lstat(path string, stat *Stat_t) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_LSTAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Pread(fd int, p []byte, offset int64) (n int, err error) {
+       var _p0 unsafe.Pointer
+       if len(p) > 0 {
+               _p0 = unsafe.Pointer(&p[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       r0, _, e1 := Syscall6(SYS_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0)
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Pwrite(fd int, p []byte, offset int64) (n int, err error) {
+       var _p0 unsafe.Pointer
+       if len(p) > 0 {
+               _p0 = unsafe.Pointer(&p[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       r0, _, e1 := Syscall6(SYS_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0)
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {
+       r0, _, e1 := Syscall6(SYS_SENDFILE64, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0)
+       written = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setfsgid(gid int) (err error) {
+       _, _, e1 := Syscall(SYS_SETFSGID32, uintptr(gid), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setfsuid(uid int) (err error) {
+       _, _, e1 := Syscall(SYS_SETFSUID32, uintptr(uid), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setregid(rgid int, egid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETREGID32, uintptr(rgid), uintptr(egid), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setresgid(rgid int, egid int, sgid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETRESGID32, uintptr(rgid), uintptr(egid), uintptr(sgid))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setresuid(ruid int, euid int, suid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETRESUID32, uintptr(ruid), uintptr(euid), uintptr(suid))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setreuid(ruid int, euid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETREUID32, uintptr(ruid), uintptr(euid), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) {
+       r0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Stat(path string, stat *Stat_t) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_STAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func SyncFileRange(fd int, off int64, n int64, flags int) (err error) {
+       _, _, e1 := Syscall6(SYS_SYNC_FILE_RANGE, uintptr(fd), uintptr(off), uintptr(off>>32), uintptr(n), uintptr(n>>32), uintptr(flags))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Truncate(path string, length int64) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_TRUNCATE64, uintptr(unsafe.Pointer(_p0)), uintptr(length), uintptr(length>>32))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func getgroups(n int, list *_Gid_t) (nn int, err error) {
+       r0, _, e1 := RawSyscall(SYS_GETGROUPS32, uintptr(n), uintptr(unsafe.Pointer(list)), 0)
+       nn = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func setgroups(n int, list *_Gid_t) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETGROUPS32, uintptr(n), uintptr(unsafe.Pointer(list)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {
+       r0, _, e1 := Syscall6(SYS__NEWSELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func mmap2(addr uintptr, length uintptr, prot int, flags int, fd int, pageOffset uintptr) (xaddr uintptr, err error) {
+       r0, _, e1 := Syscall6(SYS_MMAP2, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(pageOffset))
+       xaddr = uintptr(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) {
+       var _p0 unsafe.Pointer
+       if len(events) > 0 {
+               _p0 = unsafe.Pointer(&events[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0)
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Pause() (err error) {
+       _, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func getrlimit(resource int, rlim *rlimit32) (err error) {
+       _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func setrlimit(resource int, rlim *rlimit32) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Gettimeofday(tv *Timeval) (err error) {
+       _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Time(t *Time_t) (tt Time_t, err error) {
+       r0, _, e1 := RawSyscall(SYS_TIME, uintptr(unsafe.Pointer(t)), 0, 0)
+       tt = Time_t(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Utime(path string, buf *Utimbuf) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func poll(fds *PollFd, nfds int, timeout int) (n int, err error) {
+       r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_amd64.go
new file mode 100644 (file)
index 0000000..dc8fe0a
--- /dev/null
@@ -0,0 +1,2146 @@
+// mksyscall.pl -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
+
+package unix
+
+import (
+       "syscall"
+       "unsafe"
+)
+
+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)
+       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)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fadvise(fd int, offset int64, length int64, advice int) (err error) {
+       _, _, e1 := Syscall6(SYS_FADVISE64, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fchown(fd int, uid int, gid int) (err error) {
+       _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fstat(fd int, stat *Stat_t) (err error) {
+       _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fstatfs(fd int, buf *Statfs_t) (err error) {
+       _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(buf)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Ftruncate(fd int, length int64) (err error) {
+       _, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getegid() (egid int) {
+       r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0)
+       egid = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Geteuid() (euid int) {
+       r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0)
+       euid = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getgid() (gid int) {
+       r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0)
+       gid = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getrlimit(resource int, rlim *Rlimit) (err error) {
+       _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getuid() (uid int) {
+       r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0)
+       uid = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func InotifyInit() (fd int, err error) {
+       r0, _, e1 := RawSyscall(SYS_INOTIFY_INIT, 0, 0, 0)
+       fd = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Ioperm(from int, num int, on int) (err error) {
+       _, _, e1 := Syscall(SYS_IOPERM, uintptr(from), uintptr(num), uintptr(on))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Iopl(level int) (err error) {
+       _, _, e1 := Syscall(SYS_IOPL, uintptr(level), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Lchown(path string, uid int, gid int) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Listen(s int, n int) (err error) {
+       _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(n), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Lstat(path string, stat *Stat_t) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Pause() (err error) {
+       _, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Pread(fd int, p []byte, offset int64) (n int, err error) {
+       var _p0 unsafe.Pointer
+       if len(p) > 0 {
+               _p0 = unsafe.Pointer(&p[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       r0, _, e1 := Syscall6(SYS_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Pwrite(fd int, p []byte, offset int64) (n int, err error) {
+       var _p0 unsafe.Pointer
+       if len(p) > 0 {
+               _p0 = unsafe.Pointer(&p[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       r0, _, e1 := Syscall6(SYS_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Seek(fd int, offset int64, whence int) (off int64, err error) {
+       r0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence))
+       off = int64(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {
+       r0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {
+       r0, _, e1 := Syscall6(SYS_SENDFILE, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0)
+       written = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setfsgid(gid int) (err error) {
+       _, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setfsuid(uid int) (err error) {
+       _, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setregid(rgid int, egid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setresgid(rgid int, egid int, sgid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setresuid(ruid int, euid int, suid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setrlimit(resource int, rlim *Rlimit) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setreuid(ruid int, euid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Shutdown(fd int, how int) (err error) {
+       _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(fd), uintptr(how), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) {
+       r0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags))
+       n = int64(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Stat(path string, stat *Stat_t) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Statfs(path string, buf *Statfs_t) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func SyncFileRange(fd int, off int64, n int64, flags int) (err error) {
+       _, _, e1 := Syscall6(SYS_SYNC_FILE_RANGE, uintptr(fd), uintptr(off), uintptr(n), uintptr(flags), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Truncate(path string, length int64) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {
+       r0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))
+       fd = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) {
+       r0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0)
+       fd = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {
+       _, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {
+       _, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func getgroups(n int, list *_Gid_t) (nn int, err error) {
+       r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0)
+       nn = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func setgroups(n int, list *_Gid_t) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {
+       _, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {
+       _, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func socket(domain int, typ int, proto int) (fd int, err error) {
+       r0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto))
+       fd = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {
+       _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {
+       _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {
+       _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {
+       var _p0 unsafe.Pointer
+       if len(p) > 0 {
+               _p0 = unsafe.Pointer(&p[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {
+       var _p0 unsafe.Pointer
+       if len(buf) > 0 {
+               _p0 = unsafe.Pointer(&buf[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {
+       r0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {
+       r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) {
+       r0, _, e1 := Syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset))
+       xaddr = uintptr(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Utime(path string, buf *Utimbuf) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func pipe(p *[2]_C_int) (err error) {
+       _, _, e1 := RawSyscall(SYS_PIPE, uintptr(unsafe.Pointer(p)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func pipe2(p *[2]_C_int, flags int) (err error) {
+       _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func poll(fds *PollFd, nfds int, timeout int) (n int, err error) {
+       r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_arm.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_arm.go
new file mode 100644 (file)
index 0000000..4d28042
--- /dev/null
@@ -0,0 +1,2055 @@
+// mksyscall.pl -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
+
+package unix
+
+import (
+       "syscall"
+       "unsafe"
+)
+
+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)
+       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 pipe2(p *[2]_C_int, flags int) (err error) {
+       _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {
+       r0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))
+       fd = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) {
+       r0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0)
+       fd = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {
+       _, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {
+       _, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func getgroups(n int, list *_Gid_t) (nn int, err error) {
+       r0, _, e1 := RawSyscall(SYS_GETGROUPS32, uintptr(n), uintptr(unsafe.Pointer(list)), 0)
+       nn = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func setgroups(n int, list *_Gid_t) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETGROUPS32, uintptr(n), uintptr(unsafe.Pointer(list)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {
+       _, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {
+       _, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func socket(domain int, typ int, proto int) (fd int, err error) {
+       r0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto))
+       fd = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {
+       _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {
+       _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {
+       var _p0 unsafe.Pointer
+       if len(p) > 0 {
+               _p0 = unsafe.Pointer(&p[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {
+       var _p0 unsafe.Pointer
+       if len(buf) > 0 {
+               _p0 = unsafe.Pointer(&buf[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func socketpair(domain int, typ int, flags int, fd *[2]int32) (err error) {
+       _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(flags), uintptr(unsafe.Pointer(fd)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {
+       r0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {
+       r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Dup2(oldfd int, newfd int) (err error) {
+       _, _, e1 := Syscall(SYS_DUP2, uintptr(oldfd), uintptr(newfd), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fchown(fd int, uid int, gid int) (err error) {
+       _, _, e1 := Syscall(SYS_FCHOWN32, uintptr(fd), uintptr(uid), uintptr(gid))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fstat(fd int, stat *Stat_t) (err error) {
+       _, _, e1 := Syscall(SYS_FSTAT64, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getegid() (egid int) {
+       r0, _, _ := RawSyscall(SYS_GETEGID32, 0, 0, 0)
+       egid = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Geteuid() (euid int) {
+       r0, _, _ := RawSyscall(SYS_GETEUID32, 0, 0, 0)
+       euid = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getgid() (gid int) {
+       r0, _, _ := RawSyscall(SYS_GETGID32, 0, 0, 0)
+       gid = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getuid() (uid int) {
+       r0, _, _ := RawSyscall(SYS_GETUID32, 0, 0, 0)
+       uid = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func InotifyInit() (fd int, err error) {
+       r0, _, e1 := RawSyscall(SYS_INOTIFY_INIT, 0, 0, 0)
+       fd = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Lchown(path string, uid int, gid int) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_LCHOWN32, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Listen(s int, n int) (err error) {
+       _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(n), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Lstat(path string, stat *Stat_t) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_LSTAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {
+       r0, _, e1 := Syscall6(SYS_SENDFILE64, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0)
+       written = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {
+       r0, _, e1 := Syscall6(SYS__NEWSELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setfsgid(gid int) (err error) {
+       _, _, e1 := Syscall(SYS_SETFSGID32, uintptr(gid), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setfsuid(uid int) (err error) {
+       _, _, e1 := Syscall(SYS_SETFSUID32, uintptr(uid), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setregid(rgid int, egid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETREGID32, uintptr(rgid), uintptr(egid), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setresgid(rgid int, egid int, sgid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETRESGID32, uintptr(rgid), uintptr(egid), uintptr(sgid))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setresuid(ruid int, euid int, suid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETRESUID32, uintptr(ruid), uintptr(euid), uintptr(suid))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setreuid(ruid int, euid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETREUID32, uintptr(ruid), uintptr(euid), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Shutdown(fd int, how int) (err error) {
+       _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(fd), uintptr(how), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) {
+       r0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Stat(path string, stat *Stat_t) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_STAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Gettimeofday(tv *Timeval) (err error) {
+       _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) {
+       var _p0 unsafe.Pointer
+       if len(events) > 0 {
+               _p0 = unsafe.Pointer(&events[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0)
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Pause() (err error) {
+       _, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Pread(fd int, p []byte, offset int64) (n int, err error) {
+       var _p0 unsafe.Pointer
+       if len(p) > 0 {
+               _p0 = unsafe.Pointer(&p[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       r0, _, e1 := Syscall6(SYS_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), uintptr(offset>>32))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Pwrite(fd int, p []byte, offset int64) (n int, err error) {
+       var _p0 unsafe.Pointer
+       if len(p) > 0 {
+               _p0 = unsafe.Pointer(&p[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       r0, _, e1 := Syscall6(SYS_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), uintptr(offset>>32))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Truncate(path string, length int64) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall6(SYS_TRUNCATE64, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length), uintptr(length>>32), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Ftruncate(fd int, length int64) (err error) {
+       _, _, e1 := Syscall6(SYS_FTRUNCATE64, uintptr(fd), 0, uintptr(length), uintptr(length>>32), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func mmap2(addr uintptr, length uintptr, prot int, flags int, fd int, pageOffset uintptr) (xaddr uintptr, err error) {
+       r0, _, e1 := Syscall6(SYS_MMAP2, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(pageOffset))
+       xaddr = uintptr(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func getrlimit(resource int, rlim *rlimit32) (err error) {
+       _, _, e1 := RawSyscall(SYS_UGETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func setrlimit(resource int, rlim *rlimit32) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func poll(fds *PollFd, nfds int, timeout int) (n int, err error) {
+       r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_arm64.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_arm64.go
new file mode 100644 (file)
index 0000000..20ad4b6
--- /dev/null
@@ -0,0 +1,2029 @@
+// mksyscall.pl -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
+
+package unix
+
+import (
+       "syscall"
+       "unsafe"
+)
+
+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)
+       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)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fchown(fd int, uid int, gid int) (err error) {
+       _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fstat(fd int, stat *Stat_t) (err error) {
+       _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall6(SYS_FSTATAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fstatfs(fd int, buf *Statfs_t) (err error) {
+       _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(buf)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Ftruncate(fd int, length int64) (err error) {
+       _, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getegid() (egid int) {
+       r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0)
+       egid = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Geteuid() (euid int) {
+       r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0)
+       euid = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getgid() (gid int) {
+       r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0)
+       gid = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getrlimit(resource int, rlim *Rlimit) (err error) {
+       _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getuid() (uid int) {
+       r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0)
+       uid = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Listen(s int, n int) (err error) {
+       _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(n), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Pread(fd int, p []byte, offset int64) (n int, err error) {
+       var _p0 unsafe.Pointer
+       if len(p) > 0 {
+               _p0 = unsafe.Pointer(&p[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       r0, _, e1 := Syscall6(SYS_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Pwrite(fd int, p []byte, offset int64) (n int, err error) {
+       var _p0 unsafe.Pointer
+       if len(p) > 0 {
+               _p0 = unsafe.Pointer(&p[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       r0, _, e1 := Syscall6(SYS_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Seek(fd int, offset int64, whence int) (off int64, err error) {
+       r0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence))
+       off = int64(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {
+       r0, _, e1 := Syscall6(SYS_PSELECT6, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {
+       r0, _, e1 := Syscall6(SYS_SENDFILE, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0)
+       written = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setfsgid(gid int) (err error) {
+       _, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setfsuid(uid int) (err error) {
+       _, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setregid(rgid int, egid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setresgid(rgid int, egid int, sgid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setresuid(ruid int, euid int, suid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setrlimit(resource int, rlim *Rlimit) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setreuid(ruid int, euid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Shutdown(fd int, how int) (err error) {
+       _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(fd), uintptr(how), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) {
+       r0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags))
+       n = int64(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Statfs(path string, buf *Statfs_t) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func SyncFileRange(fd int, off int64, n int64, flags int) (err error) {
+       _, _, e1 := Syscall6(SYS_SYNC_FILE_RANGE, uintptr(fd), uintptr(off), uintptr(n), uintptr(flags), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Truncate(path string, length int64) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {
+       r0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))
+       fd = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) {
+       r0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0)
+       fd = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {
+       _, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {
+       _, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func getgroups(n int, list *_Gid_t) (nn int, err error) {
+       r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0)
+       nn = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func setgroups(n int, list *_Gid_t) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {
+       _, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {
+       _, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func socket(domain int, typ int, proto int) (fd int, err error) {
+       r0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto))
+       fd = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {
+       _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {
+       _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {
+       _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {
+       var _p0 unsafe.Pointer
+       if len(p) > 0 {
+               _p0 = unsafe.Pointer(&p[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {
+       var _p0 unsafe.Pointer
+       if len(buf) > 0 {
+               _p0 = unsafe.Pointer(&buf[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {
+       r0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {
+       r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) {
+       r0, _, e1 := Syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset))
+       xaddr = uintptr(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Gettimeofday(tv *Timeval) (err error) {
+       _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func pipe2(p *[2]_C_int, flags int) (err error) {
+       _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_mips.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_mips.go
new file mode 100644 (file)
index 0000000..9f194dc
--- /dev/null
@@ -0,0 +1,2111 @@
+// mksyscall.pl -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
+
+package unix
+
+import (
+       "syscall"
+       "unsafe"
+)
+
+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)
+       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(r0)<<32 | int64(r1))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Tgkill(tgid int, tid int, sig syscall.Signal) (err error) {
+       _, _, e1 := RawSyscall(SYS_TGKILL, uintptr(tgid), uintptr(tid), uintptr(sig))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Times(tms *Tms) (ticks uintptr, err error) {
+       r0, _, e1 := RawSyscall(SYS_TIMES, uintptr(unsafe.Pointer(tms)), 0, 0)
+       ticks = uintptr(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Umask(mask int) (oldmask int) {
+       r0, _, _ := RawSyscall(SYS_UMASK, uintptr(mask), 0, 0)
+       oldmask = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Uname(buf *Utsname) (err error) {
+       _, _, e1 := RawSyscall(SYS_UNAME, uintptr(unsafe.Pointer(buf)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Unmount(target string, flags int) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(target)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_UMOUNT2, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Unshare(flags int) (err error) {
+       _, _, e1 := Syscall(SYS_UNSHARE, uintptr(flags), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Ustat(dev int, ubuf *Ustat_t) (err error) {
+       _, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func write(fd int, p []byte) (n int, err error) {
+       var _p0 unsafe.Pointer
+       if len(p) > 0 {
+               _p0 = unsafe.Pointer(&p[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func exitThread(code int) (err error) {
+       _, _, e1 := Syscall(SYS_EXIT, uintptr(code), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func readlen(fd int, p *byte, np int) (n int, err error) {
+       r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func writelen(fd int, p *byte, np int) (n int, err error) {
+       r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func munmap(addr uintptr, length uintptr) (err error) {
+       _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Madvise(b []byte, advice int) (err error) {
+       var _p0 unsafe.Pointer
+       if len(b) > 0 {
+               _p0 = unsafe.Pointer(&b[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(advice))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Mprotect(b []byte, prot int) (err error) {
+       var _p0 unsafe.Pointer
+       if len(b) > 0 {
+               _p0 = unsafe.Pointer(&b[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Mlock(b []byte) (err error) {
+       var _p0 unsafe.Pointer
+       if len(b) > 0 {
+               _p0 = unsafe.Pointer(&b[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Munlock(b []byte) (err error) {
+       var _p0 unsafe.Pointer
+       if len(b) > 0 {
+               _p0 = unsafe.Pointer(&b[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Mlockall(flags int) (err error) {
+       _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func 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 Fchown(fd int, uid int, gid int) (err error) {
+       _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Ftruncate(fd int, length int64) (err error) {
+       _, _, e1 := Syscall6(SYS_FTRUNCATE64, uintptr(fd), 0, uintptr(length>>32), uintptr(length), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getegid() (egid int) {
+       r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0)
+       egid = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Geteuid() (euid int) {
+       r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0)
+       euid = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getgid() (gid int) {
+       r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0)
+       gid = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getuid() (uid int) {
+       r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0)
+       uid = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Lchown(path string, uid int, gid int) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Listen(s int, n int) (err error) {
+       _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(n), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Pread(fd int, p []byte, offset int64) (n int, err error) {
+       var _p0 unsafe.Pointer
+       if len(p) > 0 {
+               _p0 = unsafe.Pointer(&p[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       r0, _, e1 := Syscall6(SYS_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset>>32), uintptr(offset))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Pwrite(fd int, p []byte, offset int64) (n int, err error) {
+       var _p0 unsafe.Pointer
+       if len(p) > 0 {
+               _p0 = unsafe.Pointer(&p[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       r0, _, e1 := Syscall6(SYS_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset>>32), uintptr(offset))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {
+       r0, _, e1 := Syscall6(SYS__NEWSELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {
+       r0, _, e1 := Syscall6(SYS_SENDFILE64, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0)
+       written = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setfsgid(gid int) (err error) {
+       _, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setfsuid(uid int) (err error) {
+       _, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setregid(rgid int, egid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setresgid(rgid int, egid int, sgid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setresuid(ruid int, euid int, suid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setreuid(ruid int, euid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Shutdown(fd int, how int) (err error) {
+       _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(fd), uintptr(how), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) {
+       r0, r1, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags))
+       n = int64(int64(r0)<<32 | int64(r1))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func SyncFileRange(fd int, off int64, n int64, flags int) (err error) {
+       _, _, e1 := Syscall9(SYS_SYNC_FILE_RANGE, uintptr(fd), 0, uintptr(off>>32), uintptr(off), uintptr(n>>32), uintptr(n), uintptr(flags), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Truncate(path string, length int64) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall6(SYS_TRUNCATE64, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length>>32), uintptr(length), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {
+       r0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))
+       fd = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) {
+       r0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0)
+       fd = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {
+       _, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {
+       _, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func getgroups(n int, list *_Gid_t) (nn int, err error) {
+       r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0)
+       nn = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func setgroups(n int, list *_Gid_t) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {
+       _, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {
+       _, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func socket(domain int, typ int, proto int) (fd int, err error) {
+       r0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto))
+       fd = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {
+       _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {
+       _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {
+       _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {
+       var _p0 unsafe.Pointer
+       if len(p) > 0 {
+               _p0 = unsafe.Pointer(&p[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {
+       var _p0 unsafe.Pointer
+       if len(buf) > 0 {
+               _p0 = unsafe.Pointer(&buf[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {
+       r0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {
+       r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func InotifyInit() (fd int, err error) {
+       r0, _, e1 := RawSyscall(SYS_INOTIFY_INIT, 0, 0, 0)
+       fd = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Ioperm(from int, num int, on int) (err error) {
+       _, _, e1 := Syscall(SYS_IOPERM, uintptr(from), uintptr(num), uintptr(on))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Iopl(level int) (err error) {
+       _, _, e1 := Syscall(SYS_IOPL, uintptr(level), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Gettimeofday(tv *Timeval) (err error) {
+       _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Time(t *Time_t) (tt Time_t, err error) {
+       r0, _, e1 := RawSyscall(SYS_TIME, uintptr(unsafe.Pointer(t)), 0, 0)
+       tt = Time_t(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Lstat(path string, stat *Stat_t) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_LSTAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fstat(fd int, stat *Stat_t) (err error) {
+       _, _, e1 := Syscall(SYS_FSTAT64, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Stat(path string, stat *Stat_t) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_STAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Utime(path string, buf *Utimbuf) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) {
+       var _p0 unsafe.Pointer
+       if len(events) > 0 {
+               _p0 = unsafe.Pointer(&events[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0)
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Pause() (err error) {
+       _, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func pipe2(p *[2]_C_int, flags int) (err error) {
+       _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func mmap2(addr uintptr, length uintptr, prot int, flags int, fd int, pageOffset uintptr) (xaddr uintptr, err error) {
+       r0, _, e1 := Syscall6(SYS_MMAP2, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(pageOffset))
+       xaddr = uintptr(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func getrlimit(resource int, rlim *rlimit32) (err error) {
+       _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func setrlimit(resource int, rlim *rlimit32) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func poll(fds *PollFd, nfds int, timeout int) (n int, err error) {
+       r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64.go
new file mode 100644 (file)
index 0000000..4fde3ef
--- /dev/null
@@ -0,0 +1,2105 @@
+// mksyscall.pl -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
+
+package unix
+
+import (
+       "syscall"
+       "unsafe"
+)
+
+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)
+       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)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fchown(fd int, uid int, gid int) (err error) {
+       _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fstatfs(fd int, buf *Statfs_t) (err error) {
+       _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(buf)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Ftruncate(fd int, length int64) (err error) {
+       _, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getegid() (egid int) {
+       r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0)
+       egid = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Geteuid() (euid int) {
+       r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0)
+       euid = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getgid() (gid int) {
+       r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0)
+       gid = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getrlimit(resource int, rlim *Rlimit) (err error) {
+       _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getuid() (uid int) {
+       r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0)
+       uid = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Lchown(path string, uid int, gid int) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Listen(s int, n int) (err error) {
+       _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(n), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Pause() (err error) {
+       _, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Pread(fd int, p []byte, offset int64) (n int, err error) {
+       var _p0 unsafe.Pointer
+       if len(p) > 0 {
+               _p0 = unsafe.Pointer(&p[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       r0, _, e1 := Syscall6(SYS_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Pwrite(fd int, p []byte, offset int64) (n int, err error) {
+       var _p0 unsafe.Pointer
+       if len(p) > 0 {
+               _p0 = unsafe.Pointer(&p[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       r0, _, e1 := Syscall6(SYS_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Seek(fd int, offset int64, whence int) (off int64, err error) {
+       r0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence))
+       off = int64(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {
+       r0, _, e1 := Syscall6(SYS_PSELECT6, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {
+       r0, _, e1 := Syscall6(SYS_SENDFILE, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0)
+       written = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setfsgid(gid int) (err error) {
+       _, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setfsuid(uid int) (err error) {
+       _, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setregid(rgid int, egid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setresgid(rgid int, egid int, sgid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setresuid(ruid int, euid int, suid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setrlimit(resource int, rlim *Rlimit) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setreuid(ruid int, euid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Shutdown(fd int, how int) (err error) {
+       _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(fd), uintptr(how), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) {
+       r0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags))
+       n = int64(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Statfs(path string, buf *Statfs_t) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func SyncFileRange(fd int, off int64, n int64, flags int) (err error) {
+       _, _, e1 := Syscall6(SYS_SYNC_FILE_RANGE, uintptr(fd), uintptr(off), uintptr(n), uintptr(flags), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Truncate(path string, length int64) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {
+       r0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))
+       fd = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) {
+       r0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0)
+       fd = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {
+       _, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {
+       _, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func getgroups(n int, list *_Gid_t) (nn int, err error) {
+       r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0)
+       nn = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func setgroups(n int, list *_Gid_t) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {
+       _, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {
+       _, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func socket(domain int, typ int, proto int) (fd int, err error) {
+       r0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto))
+       fd = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {
+       _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {
+       _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {
+       _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {
+       var _p0 unsafe.Pointer
+       if len(p) > 0 {
+               _p0 = unsafe.Pointer(&p[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {
+       var _p0 unsafe.Pointer
+       if len(buf) > 0 {
+               _p0 = unsafe.Pointer(&buf[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {
+       r0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {
+       r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) {
+       r0, _, e1 := Syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset))
+       xaddr = uintptr(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Gettimeofday(tv *Timeval) (err error) {
+       _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Utime(path string, buf *Utimbuf) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func pipe2(p *[2]_C_int, flags int) (err error) {
+       _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func fstat(fd int, st *stat_t) (err error) {
+       _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(st)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func lstat(path string, st *stat_t) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(st)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func stat(path string, st *stat_t) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(st)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func poll(fds *PollFd, nfds int, timeout int) (n int, err error) {
+       r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64le.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64le.go
new file mode 100644 (file)
index 0000000..f646342
--- /dev/null
@@ -0,0 +1,2105 @@
+// mksyscall.pl -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
+
+package unix
+
+import (
+       "syscall"
+       "unsafe"
+)
+
+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)
+       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)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fchown(fd int, uid int, gid int) (err error) {
+       _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fstatfs(fd int, buf *Statfs_t) (err error) {
+       _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(buf)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Ftruncate(fd int, length int64) (err error) {
+       _, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getegid() (egid int) {
+       r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0)
+       egid = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Geteuid() (euid int) {
+       r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0)
+       euid = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getgid() (gid int) {
+       r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0)
+       gid = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getrlimit(resource int, rlim *Rlimit) (err error) {
+       _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getuid() (uid int) {
+       r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0)
+       uid = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Lchown(path string, uid int, gid int) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Listen(s int, n int) (err error) {
+       _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(n), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Pause() (err error) {
+       _, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Pread(fd int, p []byte, offset int64) (n int, err error) {
+       var _p0 unsafe.Pointer
+       if len(p) > 0 {
+               _p0 = unsafe.Pointer(&p[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       r0, _, e1 := Syscall6(SYS_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Pwrite(fd int, p []byte, offset int64) (n int, err error) {
+       var _p0 unsafe.Pointer
+       if len(p) > 0 {
+               _p0 = unsafe.Pointer(&p[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       r0, _, e1 := Syscall6(SYS_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Seek(fd int, offset int64, whence int) (off int64, err error) {
+       r0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence))
+       off = int64(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {
+       r0, _, e1 := Syscall6(SYS_PSELECT6, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {
+       r0, _, e1 := Syscall6(SYS_SENDFILE, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0)
+       written = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setfsgid(gid int) (err error) {
+       _, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setfsuid(uid int) (err error) {
+       _, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setregid(rgid int, egid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setresgid(rgid int, egid int, sgid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setresuid(ruid int, euid int, suid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setrlimit(resource int, rlim *Rlimit) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setreuid(ruid int, euid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Shutdown(fd int, how int) (err error) {
+       _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(fd), uintptr(how), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) {
+       r0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags))
+       n = int64(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Statfs(path string, buf *Statfs_t) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func SyncFileRange(fd int, off int64, n int64, flags int) (err error) {
+       _, _, e1 := Syscall6(SYS_SYNC_FILE_RANGE, uintptr(fd), uintptr(off), uintptr(n), uintptr(flags), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Truncate(path string, length int64) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {
+       r0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))
+       fd = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) {
+       r0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0)
+       fd = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {
+       _, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {
+       _, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func getgroups(n int, list *_Gid_t) (nn int, err error) {
+       r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0)
+       nn = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func setgroups(n int, list *_Gid_t) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {
+       _, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {
+       _, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func socket(domain int, typ int, proto int) (fd int, err error) {
+       r0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto))
+       fd = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {
+       _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {
+       _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {
+       _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {
+       var _p0 unsafe.Pointer
+       if len(p) > 0 {
+               _p0 = unsafe.Pointer(&p[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {
+       var _p0 unsafe.Pointer
+       if len(buf) > 0 {
+               _p0 = unsafe.Pointer(&buf[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {
+       r0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {
+       r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) {
+       r0, _, e1 := Syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset))
+       xaddr = uintptr(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Gettimeofday(tv *Timeval) (err error) {
+       _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Utime(path string, buf *Utimbuf) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func pipe2(p *[2]_C_int, flags int) (err error) {
+       _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func fstat(fd int, st *stat_t) (err error) {
+       _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(st)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func lstat(path string, st *stat_t) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(st)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func stat(path string, st *stat_t) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(st)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func poll(fds *PollFd, nfds int, timeout int) (n int, err error) {
+       r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_mipsle.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_mipsle.go
new file mode 100644 (file)
index 0000000..964591e
--- /dev/null
@@ -0,0 +1,2111 @@
+// mksyscall.pl -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
+
+package unix
+
+import (
+       "syscall"
+       "unsafe"
+)
+
+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)
+       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 Fchown(fd int, uid int, gid int) (err error) {
+       _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Ftruncate(fd int, length int64) (err error) {
+       _, _, e1 := Syscall6(SYS_FTRUNCATE64, uintptr(fd), 0, uintptr(length), uintptr(length>>32), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getegid() (egid int) {
+       r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0)
+       egid = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Geteuid() (euid int) {
+       r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0)
+       euid = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getgid() (gid int) {
+       r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0)
+       gid = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getuid() (uid int) {
+       r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0)
+       uid = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Lchown(path string, uid int, gid int) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Listen(s int, n int) (err error) {
+       _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(n), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Pread(fd int, p []byte, offset int64) (n int, err error) {
+       var _p0 unsafe.Pointer
+       if len(p) > 0 {
+               _p0 = unsafe.Pointer(&p[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       r0, _, e1 := Syscall6(SYS_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), uintptr(offset>>32))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Pwrite(fd int, p []byte, offset int64) (n int, err error) {
+       var _p0 unsafe.Pointer
+       if len(p) > 0 {
+               _p0 = unsafe.Pointer(&p[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       r0, _, e1 := Syscall6(SYS_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), uintptr(offset>>32))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {
+       r0, _, e1 := Syscall6(SYS__NEWSELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {
+       r0, _, e1 := Syscall6(SYS_SENDFILE64, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0)
+       written = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setfsgid(gid int) (err error) {
+       _, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setfsuid(uid int) (err error) {
+       _, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setregid(rgid int, egid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setresgid(rgid int, egid int, sgid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setresuid(ruid int, euid int, suid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setreuid(ruid int, euid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Shutdown(fd int, how int) (err error) {
+       _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(fd), uintptr(how), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) {
+       r0, r1, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags))
+       n = int64(int64(r1)<<32 | int64(r0))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func SyncFileRange(fd int, off int64, n int64, flags int) (err error) {
+       _, _, e1 := Syscall9(SYS_SYNC_FILE_RANGE, uintptr(fd), 0, uintptr(off), uintptr(off>>32), uintptr(n), uintptr(n>>32), uintptr(flags), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Truncate(path string, length int64) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall6(SYS_TRUNCATE64, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length), uintptr(length>>32), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {
+       r0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))
+       fd = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) {
+       r0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0)
+       fd = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {
+       _, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {
+       _, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func getgroups(n int, list *_Gid_t) (nn int, err error) {
+       r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0)
+       nn = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func setgroups(n int, list *_Gid_t) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {
+       _, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {
+       _, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func socket(domain int, typ int, proto int) (fd int, err error) {
+       r0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto))
+       fd = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {
+       _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {
+       _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {
+       _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {
+       var _p0 unsafe.Pointer
+       if len(p) > 0 {
+               _p0 = unsafe.Pointer(&p[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {
+       var _p0 unsafe.Pointer
+       if len(buf) > 0 {
+               _p0 = unsafe.Pointer(&buf[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {
+       r0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {
+       r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func InotifyInit() (fd int, err error) {
+       r0, _, e1 := RawSyscall(SYS_INOTIFY_INIT, 0, 0, 0)
+       fd = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Ioperm(from int, num int, on int) (err error) {
+       _, _, e1 := Syscall(SYS_IOPERM, uintptr(from), uintptr(num), uintptr(on))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Iopl(level int) (err error) {
+       _, _, e1 := Syscall(SYS_IOPL, uintptr(level), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Gettimeofday(tv *Timeval) (err error) {
+       _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Time(t *Time_t) (tt Time_t, err error) {
+       r0, _, e1 := RawSyscall(SYS_TIME, uintptr(unsafe.Pointer(t)), 0, 0)
+       tt = Time_t(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Lstat(path string, stat *Stat_t) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_LSTAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fstat(fd int, stat *Stat_t) (err error) {
+       _, _, e1 := Syscall(SYS_FSTAT64, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Stat(path string, stat *Stat_t) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_STAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Utime(path string, buf *Utimbuf) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) {
+       var _p0 unsafe.Pointer
+       if len(events) > 0 {
+               _p0 = unsafe.Pointer(&events[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0)
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Pause() (err error) {
+       _, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func pipe2(p *[2]_C_int, flags int) (err error) {
+       _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func mmap2(addr uintptr, length uintptr, prot int, flags int, fd int, pageOffset uintptr) (xaddr uintptr, err error) {
+       r0, _, e1 := Syscall6(SYS_MMAP2, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(pageOffset))
+       xaddr = uintptr(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func getrlimit(resource int, rlim *rlimit32) (err error) {
+       _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func setrlimit(resource int, rlim *rlimit32) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func poll(fds *PollFd, nfds int, timeout int) (n int, err error) {
+       r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64.go
new file mode 100644 (file)
index 0000000..204ab1a
--- /dev/null
@@ -0,0 +1,2157 @@
+// mksyscall.pl -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
+
+package unix
+
+import (
+       "syscall"
+       "unsafe"
+)
+
+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)
+       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_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0)
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Dup2(oldfd int, newfd int) (err error) {
+       _, _, e1 := Syscall(SYS_DUP2, uintptr(oldfd), uintptr(newfd), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fchown(fd int, uid int, gid int) (err error) {
+       _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fstat(fd int, stat *Stat_t) (err error) {
+       _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fstatfs(fd int, buf *Statfs_t) (err error) {
+       _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(buf)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Ftruncate(fd int, length int64) (err error) {
+       _, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getegid() (egid int) {
+       r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0)
+       egid = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Geteuid() (euid int) {
+       r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0)
+       euid = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getgid() (gid int) {
+       r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0)
+       gid = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getrlimit(resource int, rlim *Rlimit) (err error) {
+       _, _, e1 := RawSyscall(SYS_UGETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getuid() (uid int) {
+       r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0)
+       uid = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func InotifyInit() (fd int, err error) {
+       r0, _, e1 := RawSyscall(SYS_INOTIFY_INIT, 0, 0, 0)
+       fd = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Ioperm(from int, num int, on int) (err error) {
+       _, _, e1 := Syscall(SYS_IOPERM, uintptr(from), uintptr(num), uintptr(on))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Iopl(level int) (err error) {
+       _, _, e1 := Syscall(SYS_IOPL, uintptr(level), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Lchown(path string, uid int, gid int) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Listen(s int, n int) (err error) {
+       _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(n), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Lstat(path string, stat *Stat_t) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Pause() (err error) {
+       _, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Pread(fd int, p []byte, offset int64) (n int, err error) {
+       var _p0 unsafe.Pointer
+       if len(p) > 0 {
+               _p0 = unsafe.Pointer(&p[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       r0, _, e1 := Syscall6(SYS_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Pwrite(fd int, p []byte, offset int64) (n int, err error) {
+       var _p0 unsafe.Pointer
+       if len(p) > 0 {
+               _p0 = unsafe.Pointer(&p[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       r0, _, e1 := Syscall6(SYS_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Seek(fd int, offset int64, whence int) (off int64, err error) {
+       r0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence))
+       off = int64(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {
+       r0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {
+       r0, _, e1 := Syscall6(SYS_SENDFILE, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0)
+       written = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setfsgid(gid int) (err error) {
+       _, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setfsuid(uid int) (err error) {
+       _, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setregid(rgid int, egid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setresgid(rgid int, egid int, sgid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setresuid(ruid int, euid int, suid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setrlimit(resource int, rlim *Rlimit) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setreuid(ruid int, euid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Shutdown(fd int, how int) (err error) {
+       _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(fd), uintptr(how), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) {
+       r0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags))
+       n = int64(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Stat(path string, stat *Stat_t) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Statfs(path string, buf *Statfs_t) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func SyncFileRange(fd int, off int64, n int64, flags int) (err error) {
+       _, _, e1 := Syscall6(SYS_SYNC_FILE_RANGE2, uintptr(fd), uintptr(off), uintptr(n), uintptr(flags), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Truncate(path string, length int64) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {
+       r0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))
+       fd = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) {
+       r0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0)
+       fd = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {
+       _, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {
+       _, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func getgroups(n int, list *_Gid_t) (nn int, err error) {
+       r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0)
+       nn = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func setgroups(n int, list *_Gid_t) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {
+       _, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {
+       _, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func socket(domain int, typ int, proto int) (fd int, err error) {
+       r0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto))
+       fd = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {
+       _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {
+       _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {
+       _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {
+       var _p0 unsafe.Pointer
+       if len(p) > 0 {
+               _p0 = unsafe.Pointer(&p[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {
+       var _p0 unsafe.Pointer
+       if len(buf) > 0 {
+               _p0 = unsafe.Pointer(&buf[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {
+       r0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {
+       r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) {
+       r0, _, e1 := Syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset))
+       xaddr = uintptr(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Gettimeofday(tv *Timeval) (err error) {
+       _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Time(t *Time_t) (tt Time_t, err error) {
+       r0, _, e1 := RawSyscall(SYS_TIME, uintptr(unsafe.Pointer(t)), 0, 0)
+       tt = Time_t(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Utime(path string, buf *Utimbuf) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func pipe(p *[2]_C_int) (err error) {
+       _, _, e1 := RawSyscall(SYS_PIPE, uintptr(unsafe.Pointer(p)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func pipe2(p *[2]_C_int, flags int) (err error) {
+       _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func poll(fds *PollFd, nfds int, timeout int) (n int, err error) {
+       r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64le.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64le.go
new file mode 100644 (file)
index 0000000..a8a2b0b
--- /dev/null
@@ -0,0 +1,2157 @@
+// mksyscall.pl -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
+
+package unix
+
+import (
+       "syscall"
+       "unsafe"
+)
+
+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)
+       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_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0)
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Dup2(oldfd int, newfd int) (err error) {
+       _, _, e1 := Syscall(SYS_DUP2, uintptr(oldfd), uintptr(newfd), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fchown(fd int, uid int, gid int) (err error) {
+       _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fstat(fd int, stat *Stat_t) (err error) {
+       _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fstatfs(fd int, buf *Statfs_t) (err error) {
+       _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(buf)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Ftruncate(fd int, length int64) (err error) {
+       _, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getegid() (egid int) {
+       r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0)
+       egid = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Geteuid() (euid int) {
+       r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0)
+       euid = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getgid() (gid int) {
+       r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0)
+       gid = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getrlimit(resource int, rlim *Rlimit) (err error) {
+       _, _, e1 := RawSyscall(SYS_UGETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getuid() (uid int) {
+       r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0)
+       uid = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func InotifyInit() (fd int, err error) {
+       r0, _, e1 := RawSyscall(SYS_INOTIFY_INIT, 0, 0, 0)
+       fd = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Ioperm(from int, num int, on int) (err error) {
+       _, _, e1 := Syscall(SYS_IOPERM, uintptr(from), uintptr(num), uintptr(on))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Iopl(level int) (err error) {
+       _, _, e1 := Syscall(SYS_IOPL, uintptr(level), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Lchown(path string, uid int, gid int) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Listen(s int, n int) (err error) {
+       _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(n), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Lstat(path string, stat *Stat_t) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Pause() (err error) {
+       _, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Pread(fd int, p []byte, offset int64) (n int, err error) {
+       var _p0 unsafe.Pointer
+       if len(p) > 0 {
+               _p0 = unsafe.Pointer(&p[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       r0, _, e1 := Syscall6(SYS_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Pwrite(fd int, p []byte, offset int64) (n int, err error) {
+       var _p0 unsafe.Pointer
+       if len(p) > 0 {
+               _p0 = unsafe.Pointer(&p[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       r0, _, e1 := Syscall6(SYS_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Seek(fd int, offset int64, whence int) (off int64, err error) {
+       r0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence))
+       off = int64(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {
+       r0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {
+       r0, _, e1 := Syscall6(SYS_SENDFILE, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0)
+       written = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setfsgid(gid int) (err error) {
+       _, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setfsuid(uid int) (err error) {
+       _, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setregid(rgid int, egid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setresgid(rgid int, egid int, sgid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setresuid(ruid int, euid int, suid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setrlimit(resource int, rlim *Rlimit) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setreuid(ruid int, euid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Shutdown(fd int, how int) (err error) {
+       _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(fd), uintptr(how), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) {
+       r0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags))
+       n = int64(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Stat(path string, stat *Stat_t) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Statfs(path string, buf *Statfs_t) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func SyncFileRange(fd int, off int64, n int64, flags int) (err error) {
+       _, _, e1 := Syscall6(SYS_SYNC_FILE_RANGE2, uintptr(fd), uintptr(off), uintptr(n), uintptr(flags), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Truncate(path string, length int64) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {
+       r0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))
+       fd = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) {
+       r0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0)
+       fd = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {
+       _, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {
+       _, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func getgroups(n int, list *_Gid_t) (nn int, err error) {
+       r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0)
+       nn = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func setgroups(n int, list *_Gid_t) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {
+       _, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {
+       _, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func socket(domain int, typ int, proto int) (fd int, err error) {
+       r0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto))
+       fd = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {
+       _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {
+       _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {
+       _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {
+       var _p0 unsafe.Pointer
+       if len(p) > 0 {
+               _p0 = unsafe.Pointer(&p[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {
+       var _p0 unsafe.Pointer
+       if len(buf) > 0 {
+               _p0 = unsafe.Pointer(&buf[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {
+       r0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {
+       r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) {
+       r0, _, e1 := Syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset))
+       xaddr = uintptr(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Gettimeofday(tv *Timeval) (err error) {
+       _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Time(t *Time_t) (tt Time_t, err error) {
+       r0, _, e1 := RawSyscall(SYS_TIME, uintptr(unsafe.Pointer(t)), 0, 0)
+       tt = Time_t(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Utime(path string, buf *Utimbuf) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func pipe(p *[2]_C_int) (err error) {
+       _, _, e1 := RawSyscall(SYS_PIPE, uintptr(unsafe.Pointer(p)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func pipe2(p *[2]_C_int, flags int) (err error) {
+       _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func poll(fds *PollFd, nfds int, timeout int) (n int, err error) {
+       r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_s390x.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_s390x.go
new file mode 100644 (file)
index 0000000..b6ff9e3
--- /dev/null
@@ -0,0 +1,1937 @@
+// mksyscall.pl -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
+
+package unix
+
+import (
+       "syscall"
+       "unsafe"
+)
+
+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)
+       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)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fadvise(fd int, offset int64, length int64, advice int) (err error) {
+       _, _, e1 := Syscall6(SYS_FADVISE64, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fchown(fd int, uid int, gid int) (err error) {
+       _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fstat(fd int, stat *Stat_t) (err error) {
+       _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fstatfs(fd int, buf *Statfs_t) (err error) {
+       _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(buf)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Ftruncate(fd int, length int64) (err error) {
+       _, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getegid() (egid int) {
+       r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0)
+       egid = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Geteuid() (euid int) {
+       r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0)
+       euid = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getgid() (gid int) {
+       r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0)
+       gid = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getrlimit(resource int, rlim *Rlimit) (err error) {
+       _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getuid() (uid int) {
+       r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0)
+       uid = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func InotifyInit() (fd int, err error) {
+       r0, _, e1 := RawSyscall(SYS_INOTIFY_INIT, 0, 0, 0)
+       fd = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Lchown(path string, uid int, gid int) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Lstat(path string, stat *Stat_t) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Pause() (err error) {
+       _, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Pread(fd int, p []byte, offset int64) (n int, err error) {
+       var _p0 unsafe.Pointer
+       if len(p) > 0 {
+               _p0 = unsafe.Pointer(&p[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       r0, _, e1 := Syscall6(SYS_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Pwrite(fd int, p []byte, offset int64) (n int, err error) {
+       var _p0 unsafe.Pointer
+       if len(p) > 0 {
+               _p0 = unsafe.Pointer(&p[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       r0, _, e1 := Syscall6(SYS_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Seek(fd int, offset int64, whence int) (off int64, err error) {
+       r0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence))
+       off = int64(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {
+       r0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {
+       r0, _, e1 := Syscall6(SYS_SENDFILE, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0)
+       written = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setfsgid(gid int) (err error) {
+       _, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setfsuid(uid int) (err error) {
+       _, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setregid(rgid int, egid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setresgid(rgid int, egid int, sgid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setresuid(ruid int, euid int, suid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setrlimit(resource int, rlim *Rlimit) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setreuid(ruid int, euid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) {
+       r0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags))
+       n = int64(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Stat(path string, stat *Stat_t) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Statfs(path string, buf *Statfs_t) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func SyncFileRange(fd int, off int64, n int64, flags int) (err error) {
+       _, _, e1 := Syscall6(SYS_SYNC_FILE_RANGE, uintptr(fd), uintptr(off), uintptr(n), uintptr(flags), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Truncate(path string, length int64) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func getgroups(n int, list *_Gid_t) (nn int, err error) {
+       r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0)
+       nn = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func setgroups(n int, list *_Gid_t) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Gettimeofday(tv *Timeval) (err error) {
+       _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Utime(path string, buf *Utimbuf) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func pipe2(p *[2]_C_int, flags int) (err error) {
+       _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func poll(fds *PollFd, nfds int, timeout int) (n int, err error) {
+       r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_sparc64.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_sparc64.go
new file mode 100644 (file)
index 0000000..2dd9843
--- /dev/null
@@ -0,0 +1,1833 @@
+// mksyscall.pl -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
+
+package unix
+
+import (
+       "syscall"
+       "unsafe"
+)
+
+var _ syscall.Errno
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Linkat(olddirfd int, oldpath string, newdirfd int, newpath string, flags int) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(oldpath)
+       if err != nil {
+               return
+       }
+       var _p1 *byte
+       _p1, err = BytePtrFromString(newpath)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall6(SYS_LINKAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mode), 0, 0)
+       fd = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) {
+       r0, _, e1 := Syscall6(SYS_PPOLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0)
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       var _p1 unsafe.Pointer
+       if len(buf) > 0 {
+               _p1 = unsafe.Pointer(&buf[0])
+       } else {
+               _p1 = unsafe.Pointer(&_zero)
+       }
+       r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0)
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(oldpath)
+       if err != nil {
+               return
+       }
+       var _p1 *byte
+       _p1, err = BytePtrFromString(newpath)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Unlinkat(dirfd int, path string, flags int) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func utimes(path string, times *[2]Timeval) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func futimesat(dirfd int, path *byte, times *[2]Timeval) (err error) {
+       _, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(times)))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getcwd(buf []byte) (n int, err error) {
+       var _p0 unsafe.Pointer
+       if len(buf) > 0 {
+               _p0 = unsafe.Pointer(&buf[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       r0, _, e1 := Syscall(SYS_GETCWD, uintptr(_p0), uintptr(len(buf)), 0)
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) {
+       r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0)
+       wpid = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) {
+       _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func reboot(magic1 uint, magic2 uint, cmd int, arg string) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(arg)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall6(SYS_REBOOT, uintptr(magic1), uintptr(magic2), uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func mount(source string, target string, fstype string, flags uintptr, data *byte) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(source)
+       if err != nil {
+               return
+       }
+       var _p1 *byte
+       _p1, err = BytePtrFromString(target)
+       if err != nil {
+               return
+       }
+       var _p2 *byte
+       _p2, err = BytePtrFromString(fstype)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall6(SYS_MOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(flags), uintptr(unsafe.Pointer(data)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Acct(path string) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_ACCT, uintptr(unsafe.Pointer(_p0)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Adjtimex(buf *Timex) (state int, err error) {
+       r0, _, e1 := Syscall(SYS_ADJTIMEX, uintptr(unsafe.Pointer(buf)), 0, 0)
+       state = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Chdir(path string) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Chroot(path string) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func ClockGettime(clockid int32, time *Timespec) (err error) {
+       _, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Close(fd int) (err error) {
+       _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func 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)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Sync() {
+       Syscall(SYS_SYNC, 0, 0, 0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Sysinfo(info *Sysinfo_t) (err error) {
+       _, _, e1 := RawSyscall(SYS_SYSINFO, uintptr(unsafe.Pointer(info)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Tee(rfd int, wfd int, len int, flags int) (n int64, err error) {
+       r0, _, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0)
+       n = int64(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Tgkill(tgid int, tid int, sig syscall.Signal) (err error) {
+       _, _, e1 := RawSyscall(SYS_TGKILL, uintptr(tgid), uintptr(tid), uintptr(sig))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Times(tms *Tms) (ticks uintptr, err error) {
+       r0, _, e1 := RawSyscall(SYS_TIMES, uintptr(unsafe.Pointer(tms)), 0, 0)
+       ticks = uintptr(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Umask(mask int) (oldmask int) {
+       r0, _, _ := RawSyscall(SYS_UMASK, uintptr(mask), 0, 0)
+       oldmask = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Uname(buf *Utsname) (err error) {
+       _, _, e1 := RawSyscall(SYS_UNAME, uintptr(unsafe.Pointer(buf)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Unmount(target string, flags int) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(target)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_UMOUNT2, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Unshare(flags int) (err error) {
+       _, _, e1 := Syscall(SYS_UNSHARE, uintptr(flags), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Ustat(dev int, ubuf *Ustat_t) (err error) {
+       _, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func write(fd int, p []byte) (n int, err error) {
+       var _p0 unsafe.Pointer
+       if len(p) > 0 {
+               _p0 = unsafe.Pointer(&p[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func exitThread(code int) (err error) {
+       _, _, e1 := Syscall(SYS_EXIT, uintptr(code), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func readlen(fd int, p *byte, np int) (n int, err error) {
+       r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func writelen(fd int, p *byte, np int) (n int, err error) {
+       r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func munmap(addr uintptr, length uintptr) (err error) {
+       _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Madvise(b []byte, advice int) (err error) {
+       var _p0 unsafe.Pointer
+       if len(b) > 0 {
+               _p0 = unsafe.Pointer(&b[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(advice))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Mprotect(b []byte, prot int) (err error) {
+       var _p0 unsafe.Pointer
+       if len(b) > 0 {
+               _p0 = unsafe.Pointer(&b[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Mlock(b []byte) (err error) {
+       var _p0 unsafe.Pointer
+       if len(b) > 0 {
+               _p0 = unsafe.Pointer(&b[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Munlock(b []byte) (err error) {
+       var _p0 unsafe.Pointer
+       if len(b) > 0 {
+               _p0 = unsafe.Pointer(&b[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Mlockall(flags int) (err error) {
+       _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Munlockall() (err error) {
+       _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) {
+       var _p0 unsafe.Pointer
+       if len(events) > 0 {
+               _p0 = unsafe.Pointer(&events[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0)
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Dup2(oldfd int, newfd int) (err error) {
+       _, _, e1 := Syscall(SYS_DUP2, uintptr(oldfd), uintptr(newfd), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fchown(fd int, uid int, gid int) (err error) {
+       _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fstat(fd int, stat *Stat_t) (err error) {
+       _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fstatfs(fd int, buf *Statfs_t) (err error) {
+       _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(buf)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Ftruncate(fd int, length int64) (err error) {
+       _, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getegid() (egid int) {
+       r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0)
+       egid = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Geteuid() (euid int) {
+       r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0)
+       euid = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getgid() (gid int) {
+       r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0)
+       gid = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getrlimit(resource int, rlim *Rlimit) (err error) {
+       _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getuid() (uid int) {
+       r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0)
+       uid = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func InotifyInit() (fd int, err error) {
+       r0, _, e1 := RawSyscall(SYS_INOTIFY_INIT, 0, 0, 0)
+       fd = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Lchown(path string, uid int, gid int) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Listen(s int, n int) (err error) {
+       _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(n), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Lstat(path string, stat *Stat_t) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Pause() (err error) {
+       _, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Pread(fd int, p []byte, offset int64) (n int, err error) {
+       var _p0 unsafe.Pointer
+       if len(p) > 0 {
+               _p0 = unsafe.Pointer(&p[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       r0, _, e1 := Syscall6(SYS_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Pwrite(fd int, p []byte, offset int64) (n int, err error) {
+       var _p0 unsafe.Pointer
+       if len(p) > 0 {
+               _p0 = unsafe.Pointer(&p[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       r0, _, e1 := Syscall6(SYS_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Seek(fd int, offset int64, whence int) (off int64, err error) {
+       r0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence))
+       off = int64(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {
+       r0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {
+       r0, _, e1 := Syscall6(SYS_SENDFILE, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0)
+       written = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setfsgid(gid int) (err error) {
+       _, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setfsuid(uid int) (err error) {
+       _, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setregid(rgid int, egid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setresgid(rgid int, egid int, sgid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setresuid(ruid int, euid int, suid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setrlimit(resource int, rlim *Rlimit) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setreuid(ruid int, euid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Shutdown(fd int, how int) (err error) {
+       _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(fd), uintptr(how), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) {
+       r0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags))
+       n = int64(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Stat(path string, stat *Stat_t) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Statfs(path string, buf *Statfs_t) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func SyncFileRange(fd int, off int64, n int64, flags int) (err error) {
+       _, _, e1 := Syscall6(SYS_SYNC_FILE_RANGE, uintptr(fd), uintptr(off), uintptr(n), uintptr(flags), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Truncate(path string, length int64) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {
+       r0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))
+       fd = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) {
+       r0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0)
+       fd = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {
+       _, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {
+       _, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func getgroups(n int, list *_Gid_t) (nn int, err error) {
+       r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0)
+       nn = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func setgroups(n int, list *_Gid_t) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {
+       _, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {
+       _, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func socket(domain int, typ int, proto int) (fd int, err error) {
+       r0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto))
+       fd = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {
+       _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {
+       _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {
+       _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {
+       var _p0 unsafe.Pointer
+       if len(p) > 0 {
+               _p0 = unsafe.Pointer(&p[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {
+       var _p0 unsafe.Pointer
+       if len(buf) > 0 {
+               _p0 = unsafe.Pointer(&buf[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {
+       r0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {
+       r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) {
+       r0, _, e1 := Syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset))
+       xaddr = uintptr(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Gettimeofday(tv *Timeval) (err error) {
+       _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Utime(path string, buf *Utimbuf) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func pipe(p *[2]_C_int) (err error) {
+       _, _, e1 := RawSyscall(SYS_PIPE, uintptr(unsafe.Pointer(p)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func pipe2(p *[2]_C_int, flags int) (err error) {
+       _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func poll(fds *PollFd, nfds int, timeout int) (n int, err error) {
+       r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
diff --git a/vendor/golang.org/x/sys/unix/zsyscall_netbsd_386.go b/vendor/golang.org/x/sys/unix/zsyscall_netbsd_386.go
new file mode 100644 (file)
index 0000000..db99fd0
--- /dev/null
@@ -0,0 +1,1346 @@
+// mksyscall.pl -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
+
+package unix
+
+import (
+       "syscall"
+       "unsafe"
+)
+
+var _ syscall.Errno
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func getgroups(ngid int, gid *_Gid_t) (n int, err error) {
+       r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func setgroups(ngid int, gid *_Gid_t) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) {
+       r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0)
+       wpid = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {
+       r0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))
+       fd = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {
+       _, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {
+       _, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func socket(domain int, typ int, proto int) (fd int, err error) {
+       r0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto))
+       fd = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {
+       _, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {
+       _, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {
+       _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {
+       _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Shutdown(s int, how int) (err error) {
+       _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(s), uintptr(how), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {
+       _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {
+       var _p0 unsafe.Pointer
+       if len(p) > 0 {
+               _p0 = unsafe.Pointer(&p[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {
+       var _p0 unsafe.Pointer
+       if len(buf) > 0 {
+               _p0 = unsafe.Pointer(&buf[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {
+       r0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {
+       r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) {
+       r0, _, e1 := Syscall6(SYS_KEVENT, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout)))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {
+       var _p0 unsafe.Pointer
+       if len(mib) > 0 {
+               _p0 = unsafe.Pointer(&mib[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func utimes(path string, timeval *[2]Timeval) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func futimes(fd int, timeval *[2]Timeval) (err error) {
+       _, _, e1 := Syscall(SYS_FUTIMES, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func fcntl(fd int, cmd int, arg int) (val int, err error) {
+       r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg))
+       val = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func 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))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Mlock(b []byte) (err error) {
+       var _p0 unsafe.Pointer
+       if len(b) > 0 {
+               _p0 = unsafe.Pointer(&b[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Mlockall(flags int) (err error) {
+       _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Mprotect(b []byte, prot int) (err error) {
+       var _p0 unsafe.Pointer
+       if len(b) > 0 {
+               _p0 = unsafe.Pointer(&b[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func 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 Munlock(b []byte) (err error) {
+       var _p0 unsafe.Pointer
+       if len(b) > 0 {
+               _p0 = unsafe.Pointer(&b[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Munlockall() (err error) {
+       _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func pipe() (fd1 int, fd2 int, err error) {
+       r0, r1, e1 := RawSyscall(SYS_PIPE, 0, 0, 0)
+       fd1 = int(r0)
+       fd2 = int(r1)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func getdents(fd int, buf []byte) (n int, err error) {
+       var _p0 unsafe.Pointer
+       if len(buf) > 0 {
+               _p0 = unsafe.Pointer(&buf[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       r0, _, e1 := Syscall(SYS_GETDENTS, uintptr(fd), uintptr(_p0), uintptr(len(buf)))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Access(path string, mode uint32) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Adjtime(delta *Timeval, olddelta *Timeval) (err error) {
+       _, _, e1 := Syscall(SYS_ADJTIME, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Chdir(path string) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Chflags(path string, flags int) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Chmod(path string, mode uint32) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Chown(path string, uid int, gid int) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Chroot(path string) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Close(fd int) (err error) {
+       _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Dup(fd int) (nfd int, err error) {
+       r0, _, e1 := Syscall(SYS_DUP, uintptr(fd), 0, 0)
+       nfd = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Dup2(from int, to int) (err error) {
+       _, _, e1 := Syscall(SYS_DUP2, uintptr(from), uintptr(to), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Exit(code int) {
+       Syscall(SYS_EXIT, uintptr(code), 0, 0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fchdir(fd int) (err error) {
+       _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fchflags(fd int, flags int) (err error) {
+       _, _, e1 := Syscall(SYS_FCHFLAGS, uintptr(fd), uintptr(flags), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fchmod(fd int, mode uint32) (err error) {
+       _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fchown(fd int, uid int, gid int) (err error) {
+       _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Flock(fd int, how int) (err error) {
+       _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fpathconf(fd int, name int) (val int, err error) {
+       r0, _, e1 := Syscall(SYS_FPATHCONF, uintptr(fd), uintptr(name), 0)
+       val = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fstat(fd int, stat *Stat_t) (err error) {
+       _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fsync(fd int) (err error) {
+       _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Ftruncate(fd int, length int64) (err error) {
+       _, _, e1 := Syscall6(SYS_FTRUNCATE, uintptr(fd), 0, uintptr(length), uintptr(length>>32), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getegid() (egid int) {
+       r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0)
+       egid = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Geteuid() (uid int) {
+       r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0)
+       uid = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getgid() (gid int) {
+       r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0)
+       gid = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getpgid(pid int) (pgid int, err error) {
+       r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0)
+       pgid = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getpgrp() (pgrp int) {
+       r0, _, _ := RawSyscall(SYS_GETPGRP, 0, 0, 0)
+       pgrp = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getpid() (pid int) {
+       r0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0)
+       pid = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getppid() (ppid int) {
+       r0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0)
+       ppid = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getpriority(which int, who int) (prio int, err error) {
+       r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0)
+       prio = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getrlimit(which int, lim *Rlimit) (err error) {
+       _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getrusage(who int, rusage *Rusage) (err error) {
+       _, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getsid(pid int) (sid int, err error) {
+       r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0)
+       sid = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Gettimeofday(tv *Timeval) (err error) {
+       _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getuid() (uid int) {
+       r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0)
+       uid = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Issetugid() (tainted bool) {
+       r0, _, _ := Syscall(SYS_ISSETUGID, 0, 0, 0)
+       tainted = bool(r0 != 0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Kill(pid int, signum syscall.Signal) (err error) {
+       _, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Kqueue() (fd int, err error) {
+       r0, _, e1 := Syscall(SYS_KQUEUE, 0, 0, 0)
+       fd = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Lchown(path string, uid int, gid int) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Link(path string, link string) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       var _p1 *byte
+       _p1, err = BytePtrFromString(link)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Listen(s int, backlog int) (err error) {
+       _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Lstat(path string, stat *Stat_t) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Mkdir(path string, mode uint32) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Mkfifo(path string, mode uint32) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Mknod(path string, mode uint32, dev int) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_MKNOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Nanosleep(time *Timespec, leftover *Timespec) (err error) {
+       _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Open(path string, mode int, perm uint32) (fd int, err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       r0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm))
+       fd = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Pathconf(path string, name int) (val int, err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       r0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0)
+       val = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Pread(fd int, p []byte, offset int64) (n int, err error) {
+       var _p0 unsafe.Pointer
+       if len(p) > 0 {
+               _p0 = unsafe.Pointer(&p[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       r0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), uintptr(offset>>32))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Pwrite(fd int, p []byte, offset int64) (n int, err error) {
+       var _p0 unsafe.Pointer
+       if len(p) > 0 {
+               _p0 = unsafe.Pointer(&p[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       r0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), uintptr(offset>>32))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func read(fd int, p []byte) (n int, err error) {
+       var _p0 unsafe.Pointer
+       if len(p) > 0 {
+               _p0 = unsafe.Pointer(&p[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p)))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Readlink(path string, buf []byte) (n int, err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       var _p1 unsafe.Pointer
+       if len(buf) > 0 {
+               _p1 = unsafe.Pointer(&buf[0])
+       } else {
+               _p1 = unsafe.Pointer(&_zero)
+       }
+       r0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Rename(from string, to string) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(from)
+       if err != nil {
+               return
+       }
+       var _p1 *byte
+       _p1, err = BytePtrFromString(to)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Revoke(path string) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Rmdir(path string) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Seek(fd int, offset int64, whence int) (newoffset int64, err error) {
+       r0, r1, e1 := Syscall6(SYS_LSEEK, uintptr(fd), 0, uintptr(offset), uintptr(offset>>32), uintptr(whence), 0)
+       newoffset = int64(int64(r1)<<32 | int64(r0))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) {
+       _, _, e1 := Syscall6(SYS_SELECT, uintptr(n), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setegid(egid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETEGID, uintptr(egid), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Seteuid(euid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETEUID, uintptr(euid), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setgid(gid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETGID, uintptr(gid), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setpgid(pid int, pgid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setpriority(which int, who int, prio int) (err error) {
+       _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setregid(rgid int, egid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setreuid(ruid int, euid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setrlimit(which int, lim *Rlimit) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setsid() (pid int, err error) {
+       r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0)
+       pid = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Settimeofday(tp *Timeval) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setuid(uid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETUID, uintptr(uid), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Stat(path string, stat *Stat_t) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Symlink(path string, link string) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       var _p1 *byte
+       _p1, err = BytePtrFromString(link)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Sync() (err error) {
+       _, _, e1 := Syscall(SYS_SYNC, 0, 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Truncate(path string, length int64) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall6(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length), uintptr(length>>32), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Umask(newmask int) (oldmask int) {
+       r0, _, _ := Syscall(SYS_UMASK, uintptr(newmask), 0, 0)
+       oldmask = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Unlink(path string) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Unmount(path string, flags int) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func write(fd int, p []byte) (n int, err error) {
+       var _p0 unsafe.Pointer
+       if len(p) > 0 {
+               _p0 = unsafe.Pointer(&p[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) {
+       r0, _, e1 := Syscall9(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), 0, uintptr(pos), uintptr(pos>>32), 0)
+       ret = uintptr(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func munmap(addr uintptr, length uintptr) (err error) {
+       _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func readlen(fd int, buf *byte, nbuf int) (n int, err error) {
+       r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func writelen(fd int, buf *byte, nbuf int) (n int, err error) {
+       r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// 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
+}
diff --git a/vendor/golang.org/x/sys/unix/zsyscall_netbsd_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_netbsd_amd64.go
new file mode 100644 (file)
index 0000000..7b6c2c8
--- /dev/null
@@ -0,0 +1,1346 @@
+// mksyscall.pl -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
+
+package unix
+
+import (
+       "syscall"
+       "unsafe"
+)
+
+var _ syscall.Errno
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func getgroups(ngid int, gid *_Gid_t) (n int, err error) {
+       r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func setgroups(ngid int, gid *_Gid_t) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) {
+       r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0)
+       wpid = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {
+       r0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))
+       fd = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {
+       _, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {
+       _, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func socket(domain int, typ int, proto int) (fd int, err error) {
+       r0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto))
+       fd = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {
+       _, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {
+       _, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {
+       _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {
+       _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Shutdown(s int, how int) (err error) {
+       _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(s), uintptr(how), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {
+       _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {
+       var _p0 unsafe.Pointer
+       if len(p) > 0 {
+               _p0 = unsafe.Pointer(&p[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {
+       var _p0 unsafe.Pointer
+       if len(buf) > 0 {
+               _p0 = unsafe.Pointer(&buf[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {
+       r0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {
+       r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) {
+       r0, _, e1 := Syscall6(SYS_KEVENT, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout)))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {
+       var _p0 unsafe.Pointer
+       if len(mib) > 0 {
+               _p0 = unsafe.Pointer(&mib[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func utimes(path string, timeval *[2]Timeval) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func futimes(fd int, timeval *[2]Timeval) (err error) {
+       _, _, e1 := Syscall(SYS_FUTIMES, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func fcntl(fd int, cmd int, arg int) (val int, err error) {
+       r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg))
+       val = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func 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))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Mlock(b []byte) (err error) {
+       var _p0 unsafe.Pointer
+       if len(b) > 0 {
+               _p0 = unsafe.Pointer(&b[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Mlockall(flags int) (err error) {
+       _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Mprotect(b []byte, prot int) (err error) {
+       var _p0 unsafe.Pointer
+       if len(b) > 0 {
+               _p0 = unsafe.Pointer(&b[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func 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 Munlock(b []byte) (err error) {
+       var _p0 unsafe.Pointer
+       if len(b) > 0 {
+               _p0 = unsafe.Pointer(&b[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Munlockall() (err error) {
+       _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func pipe() (fd1 int, fd2 int, err error) {
+       r0, r1, e1 := RawSyscall(SYS_PIPE, 0, 0, 0)
+       fd1 = int(r0)
+       fd2 = int(r1)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func getdents(fd int, buf []byte) (n int, err error) {
+       var _p0 unsafe.Pointer
+       if len(buf) > 0 {
+               _p0 = unsafe.Pointer(&buf[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       r0, _, e1 := Syscall(SYS_GETDENTS, uintptr(fd), uintptr(_p0), uintptr(len(buf)))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Access(path string, mode uint32) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Adjtime(delta *Timeval, olddelta *Timeval) (err error) {
+       _, _, e1 := Syscall(SYS_ADJTIME, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Chdir(path string) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Chflags(path string, flags int) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Chmod(path string, mode uint32) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Chown(path string, uid int, gid int) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Chroot(path string) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Close(fd int) (err error) {
+       _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Dup(fd int) (nfd int, err error) {
+       r0, _, e1 := Syscall(SYS_DUP, uintptr(fd), 0, 0)
+       nfd = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Dup2(from int, to int) (err error) {
+       _, _, e1 := Syscall(SYS_DUP2, uintptr(from), uintptr(to), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Exit(code int) {
+       Syscall(SYS_EXIT, uintptr(code), 0, 0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fchdir(fd int) (err error) {
+       _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fchflags(fd int, flags int) (err error) {
+       _, _, e1 := Syscall(SYS_FCHFLAGS, uintptr(fd), uintptr(flags), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fchmod(fd int, mode uint32) (err error) {
+       _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fchown(fd int, uid int, gid int) (err error) {
+       _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Flock(fd int, how int) (err error) {
+       _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fpathconf(fd int, name int) (val int, err error) {
+       r0, _, e1 := Syscall(SYS_FPATHCONF, uintptr(fd), uintptr(name), 0)
+       val = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fstat(fd int, stat *Stat_t) (err error) {
+       _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fsync(fd int) (err error) {
+       _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Ftruncate(fd int, length int64) (err error) {
+       _, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), 0, uintptr(length))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getegid() (egid int) {
+       r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0)
+       egid = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Geteuid() (uid int) {
+       r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0)
+       uid = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getgid() (gid int) {
+       r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0)
+       gid = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getpgid(pid int) (pgid int, err error) {
+       r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0)
+       pgid = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getpgrp() (pgrp int) {
+       r0, _, _ := RawSyscall(SYS_GETPGRP, 0, 0, 0)
+       pgrp = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getpid() (pid int) {
+       r0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0)
+       pid = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getppid() (ppid int) {
+       r0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0)
+       ppid = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getpriority(which int, who int) (prio int, err error) {
+       r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0)
+       prio = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getrlimit(which int, lim *Rlimit) (err error) {
+       _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getrusage(who int, rusage *Rusage) (err error) {
+       _, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getsid(pid int) (sid int, err error) {
+       r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0)
+       sid = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Gettimeofday(tv *Timeval) (err error) {
+       _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getuid() (uid int) {
+       r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0)
+       uid = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Issetugid() (tainted bool) {
+       r0, _, _ := Syscall(SYS_ISSETUGID, 0, 0, 0)
+       tainted = bool(r0 != 0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Kill(pid int, signum syscall.Signal) (err error) {
+       _, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Kqueue() (fd int, err error) {
+       r0, _, e1 := Syscall(SYS_KQUEUE, 0, 0, 0)
+       fd = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Lchown(path string, uid int, gid int) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Link(path string, link string) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       var _p1 *byte
+       _p1, err = BytePtrFromString(link)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Listen(s int, backlog int) (err error) {
+       _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Lstat(path string, stat *Stat_t) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Mkdir(path string, mode uint32) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Mkfifo(path string, mode uint32) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Mknod(path string, mode uint32, dev int) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_MKNOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Nanosleep(time *Timespec, leftover *Timespec) (err error) {
+       _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Open(path string, mode int, perm uint32) (fd int, err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       r0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm))
+       fd = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Pathconf(path string, name int) (val int, err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       r0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0)
+       val = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Pread(fd int, p []byte, offset int64) (n int, err error) {
+       var _p0 unsafe.Pointer
+       if len(p) > 0 {
+               _p0 = unsafe.Pointer(&p[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       r0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), 0)
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Pwrite(fd int, p []byte, offset int64) (n int, err error) {
+       var _p0 unsafe.Pointer
+       if len(p) > 0 {
+               _p0 = unsafe.Pointer(&p[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       r0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), 0)
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func read(fd int, p []byte) (n int, err error) {
+       var _p0 unsafe.Pointer
+       if len(p) > 0 {
+               _p0 = unsafe.Pointer(&p[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p)))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Readlink(path string, buf []byte) (n int, err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       var _p1 unsafe.Pointer
+       if len(buf) > 0 {
+               _p1 = unsafe.Pointer(&buf[0])
+       } else {
+               _p1 = unsafe.Pointer(&_zero)
+       }
+       r0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Rename(from string, to string) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(from)
+       if err != nil {
+               return
+       }
+       var _p1 *byte
+       _p1, err = BytePtrFromString(to)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Revoke(path string) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Rmdir(path string) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Seek(fd int, offset int64, whence int) (newoffset int64, err error) {
+       r0, _, e1 := Syscall6(SYS_LSEEK, uintptr(fd), 0, uintptr(offset), uintptr(whence), 0, 0)
+       newoffset = int64(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) {
+       _, _, e1 := Syscall6(SYS_SELECT, uintptr(n), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setegid(egid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETEGID, uintptr(egid), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Seteuid(euid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETEUID, uintptr(euid), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setgid(gid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETGID, uintptr(gid), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setpgid(pid int, pgid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setpriority(which int, who int, prio int) (err error) {
+       _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setregid(rgid int, egid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setreuid(ruid int, euid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setrlimit(which int, lim *Rlimit) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setsid() (pid int, err error) {
+       r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0)
+       pid = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Settimeofday(tp *Timeval) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setuid(uid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETUID, uintptr(uid), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Stat(path string, stat *Stat_t) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Symlink(path string, link string) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       var _p1 *byte
+       _p1, err = BytePtrFromString(link)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Sync() (err error) {
+       _, _, e1 := Syscall(SYS_SYNC, 0, 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Truncate(path string, length int64) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Umask(newmask int) (oldmask int) {
+       r0, _, _ := Syscall(SYS_UMASK, uintptr(newmask), 0, 0)
+       oldmask = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Unlink(path string) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Unmount(path string, flags int) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func write(fd int, p []byte) (n int, err error) {
+       var _p0 unsafe.Pointer
+       if len(p) > 0 {
+               _p0 = unsafe.Pointer(&p[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) {
+       r0, _, e1 := Syscall9(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), 0, uintptr(pos), 0, 0)
+       ret = uintptr(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func munmap(addr uintptr, length uintptr) (err error) {
+       _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func readlen(fd int, buf *byte, nbuf int) (n int, err error) {
+       r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func writelen(fd int, buf *byte, nbuf int) (n int, err error) {
+       r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// 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
+}
diff --git a/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm.go b/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm.go
new file mode 100644 (file)
index 0000000..0f4cc3b
--- /dev/null
@@ -0,0 +1,1346 @@
+// mksyscall.pl -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
+
+package unix
+
+import (
+       "syscall"
+       "unsafe"
+)
+
+var _ syscall.Errno
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func getgroups(ngid int, gid *_Gid_t) (n int, err error) {
+       r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func setgroups(ngid int, gid *_Gid_t) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) {
+       r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0)
+       wpid = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {
+       r0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))
+       fd = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {
+       _, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {
+       _, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func socket(domain int, typ int, proto int) (fd int, err error) {
+       r0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto))
+       fd = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {
+       _, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {
+       _, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {
+       _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {
+       _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Shutdown(s int, how int) (err error) {
+       _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(s), uintptr(how), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {
+       _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {
+       var _p0 unsafe.Pointer
+       if len(p) > 0 {
+               _p0 = unsafe.Pointer(&p[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {
+       var _p0 unsafe.Pointer
+       if len(buf) > 0 {
+               _p0 = unsafe.Pointer(&buf[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {
+       r0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {
+       r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) {
+       r0, _, e1 := Syscall6(SYS_KEVENT, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout)))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {
+       var _p0 unsafe.Pointer
+       if len(mib) > 0 {
+               _p0 = unsafe.Pointer(&mib[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func utimes(path string, timeval *[2]Timeval) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func futimes(fd int, timeval *[2]Timeval) (err error) {
+       _, _, e1 := Syscall(SYS_FUTIMES, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func fcntl(fd int, cmd int, arg int) (val int, err error) {
+       r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg))
+       val = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func 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))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Mlock(b []byte) (err error) {
+       var _p0 unsafe.Pointer
+       if len(b) > 0 {
+               _p0 = unsafe.Pointer(&b[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Mlockall(flags int) (err error) {
+       _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Mprotect(b []byte, prot int) (err error) {
+       var _p0 unsafe.Pointer
+       if len(b) > 0 {
+               _p0 = unsafe.Pointer(&b[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func 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 Munlock(b []byte) (err error) {
+       var _p0 unsafe.Pointer
+       if len(b) > 0 {
+               _p0 = unsafe.Pointer(&b[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Munlockall() (err error) {
+       _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func pipe() (fd1 int, fd2 int, err error) {
+       r0, r1, e1 := RawSyscall(SYS_PIPE, 0, 0, 0)
+       fd1 = int(r0)
+       fd2 = int(r1)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func getdents(fd int, buf []byte) (n int, err error) {
+       var _p0 unsafe.Pointer
+       if len(buf) > 0 {
+               _p0 = unsafe.Pointer(&buf[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       r0, _, e1 := Syscall(SYS_GETDENTS, uintptr(fd), uintptr(_p0), uintptr(len(buf)))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Access(path string, mode uint32) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Adjtime(delta *Timeval, olddelta *Timeval) (err error) {
+       _, _, e1 := Syscall(SYS_ADJTIME, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Chdir(path string) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Chflags(path string, flags int) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Chmod(path string, mode uint32) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Chown(path string, uid int, gid int) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Chroot(path string) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Close(fd int) (err error) {
+       _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Dup(fd int) (nfd int, err error) {
+       r0, _, e1 := Syscall(SYS_DUP, uintptr(fd), 0, 0)
+       nfd = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Dup2(from int, to int) (err error) {
+       _, _, e1 := Syscall(SYS_DUP2, uintptr(from), uintptr(to), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Exit(code int) {
+       Syscall(SYS_EXIT, uintptr(code), 0, 0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fchdir(fd int) (err error) {
+       _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fchflags(fd int, flags int) (err error) {
+       _, _, e1 := Syscall(SYS_FCHFLAGS, uintptr(fd), uintptr(flags), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fchmod(fd int, mode uint32) (err error) {
+       _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fchown(fd int, uid int, gid int) (err error) {
+       _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Flock(fd int, how int) (err error) {
+       _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fpathconf(fd int, name int) (val int, err error) {
+       r0, _, e1 := Syscall(SYS_FPATHCONF, uintptr(fd), uintptr(name), 0)
+       val = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fstat(fd int, stat *Stat_t) (err error) {
+       _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fsync(fd int) (err error) {
+       _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Ftruncate(fd int, length int64) (err error) {
+       _, _, e1 := Syscall6(SYS_FTRUNCATE, uintptr(fd), 0, uintptr(length), uintptr(length>>32), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getegid() (egid int) {
+       r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0)
+       egid = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Geteuid() (uid int) {
+       r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0)
+       uid = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getgid() (gid int) {
+       r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0)
+       gid = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getpgid(pid int) (pgid int, err error) {
+       r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0)
+       pgid = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getpgrp() (pgrp int) {
+       r0, _, _ := RawSyscall(SYS_GETPGRP, 0, 0, 0)
+       pgrp = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getpid() (pid int) {
+       r0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0)
+       pid = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getppid() (ppid int) {
+       r0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0)
+       ppid = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getpriority(which int, who int) (prio int, err error) {
+       r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0)
+       prio = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getrlimit(which int, lim *Rlimit) (err error) {
+       _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getrusage(who int, rusage *Rusage) (err error) {
+       _, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getsid(pid int) (sid int, err error) {
+       r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0)
+       sid = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Gettimeofday(tv *Timeval) (err error) {
+       _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getuid() (uid int) {
+       r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0)
+       uid = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Issetugid() (tainted bool) {
+       r0, _, _ := Syscall(SYS_ISSETUGID, 0, 0, 0)
+       tainted = bool(r0 != 0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Kill(pid int, signum syscall.Signal) (err error) {
+       _, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Kqueue() (fd int, err error) {
+       r0, _, e1 := Syscall(SYS_KQUEUE, 0, 0, 0)
+       fd = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Lchown(path string, uid int, gid int) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Link(path string, link string) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       var _p1 *byte
+       _p1, err = BytePtrFromString(link)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Listen(s int, backlog int) (err error) {
+       _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Lstat(path string, stat *Stat_t) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Mkdir(path string, mode uint32) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Mkfifo(path string, mode uint32) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Mknod(path string, mode uint32, dev int) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_MKNOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Nanosleep(time *Timespec, leftover *Timespec) (err error) {
+       _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Open(path string, mode int, perm uint32) (fd int, err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       r0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm))
+       fd = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Pathconf(path string, name int) (val int, err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       r0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0)
+       val = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Pread(fd int, p []byte, offset int64) (n int, err error) {
+       var _p0 unsafe.Pointer
+       if len(p) > 0 {
+               _p0 = unsafe.Pointer(&p[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       r0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), uintptr(offset>>32))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Pwrite(fd int, p []byte, offset int64) (n int, err error) {
+       var _p0 unsafe.Pointer
+       if len(p) > 0 {
+               _p0 = unsafe.Pointer(&p[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       r0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), uintptr(offset>>32))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func read(fd int, p []byte) (n int, err error) {
+       var _p0 unsafe.Pointer
+       if len(p) > 0 {
+               _p0 = unsafe.Pointer(&p[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p)))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Readlink(path string, buf []byte) (n int, err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       var _p1 unsafe.Pointer
+       if len(buf) > 0 {
+               _p1 = unsafe.Pointer(&buf[0])
+       } else {
+               _p1 = unsafe.Pointer(&_zero)
+       }
+       r0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Rename(from string, to string) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(from)
+       if err != nil {
+               return
+       }
+       var _p1 *byte
+       _p1, err = BytePtrFromString(to)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Revoke(path string) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Rmdir(path string) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Seek(fd int, offset int64, whence int) (newoffset int64, err error) {
+       r0, r1, e1 := Syscall6(SYS_LSEEK, uintptr(fd), 0, uintptr(offset), uintptr(offset>>32), uintptr(whence), 0)
+       newoffset = int64(int64(r1)<<32 | int64(r0))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) {
+       _, _, e1 := Syscall6(SYS_SELECT, uintptr(n), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setegid(egid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETEGID, uintptr(egid), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Seteuid(euid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETEUID, uintptr(euid), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setgid(gid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETGID, uintptr(gid), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setpgid(pid int, pgid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setpriority(which int, who int, prio int) (err error) {
+       _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setregid(rgid int, egid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setreuid(ruid int, euid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setrlimit(which int, lim *Rlimit) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setsid() (pid int, err error) {
+       r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0)
+       pid = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Settimeofday(tp *Timeval) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setuid(uid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETUID, uintptr(uid), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Stat(path string, stat *Stat_t) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Symlink(path string, link string) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       var _p1 *byte
+       _p1, err = BytePtrFromString(link)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Sync() (err error) {
+       _, _, e1 := Syscall(SYS_SYNC, 0, 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Truncate(path string, length int64) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall6(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length), uintptr(length>>32), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Umask(newmask int) (oldmask int) {
+       r0, _, _ := Syscall(SYS_UMASK, uintptr(newmask), 0, 0)
+       oldmask = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Unlink(path string) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Unmount(path string, flags int) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func write(fd int, p []byte) (n int, err error) {
+       var _p0 unsafe.Pointer
+       if len(p) > 0 {
+               _p0 = unsafe.Pointer(&p[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) {
+       r0, _, e1 := Syscall9(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), 0, uintptr(pos), uintptr(pos>>32), 0)
+       ret = uintptr(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func munmap(addr uintptr, length uintptr) (err error) {
+       _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func readlen(fd int, buf *byte, nbuf int) (n int, err error) {
+       r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func writelen(fd int, buf *byte, nbuf int) (n int, err error) {
+       r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// 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
+}
diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.go b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.go
new file mode 100644 (file)
index 0000000..7baea87
--- /dev/null
@@ -0,0 +1,1404 @@
+// mksyscall.pl -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
+
+package unix
+
+import (
+       "syscall"
+       "unsafe"
+)
+
+var _ syscall.Errno
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func getgroups(ngid int, gid *_Gid_t) (n int, err error) {
+       r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func setgroups(ngid int, gid *_Gid_t) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) {
+       r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0)
+       wpid = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {
+       r0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))
+       fd = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {
+       _, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {
+       _, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func socket(domain int, typ int, proto int) (fd int, err error) {
+       r0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto))
+       fd = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {
+       _, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {
+       _, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {
+       _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {
+       _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Shutdown(s int, how int) (err error) {
+       _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(s), uintptr(how), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {
+       _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {
+       var _p0 unsafe.Pointer
+       if len(p) > 0 {
+               _p0 = unsafe.Pointer(&p[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {
+       var _p0 unsafe.Pointer
+       if len(buf) > 0 {
+               _p0 = unsafe.Pointer(&buf[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {
+       r0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {
+       r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) {
+       r0, _, e1 := Syscall6(SYS_KEVENT, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout)))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {
+       var _p0 unsafe.Pointer
+       if len(mib) > 0 {
+               _p0 = unsafe.Pointer(&mib[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func utimes(path string, timeval *[2]Timeval) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func futimes(fd int, timeval *[2]Timeval) (err error) {
+       _, _, e1 := Syscall(SYS_FUTIMES, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func fcntl(fd int, cmd int, arg int) (val int, err error) {
+       r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg))
+       val = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func 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))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Mlock(b []byte) (err error) {
+       var _p0 unsafe.Pointer
+       if len(b) > 0 {
+               _p0 = unsafe.Pointer(&b[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Mlockall(flags int) (err error) {
+       _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Mprotect(b []byte, prot int) (err error) {
+       var _p0 unsafe.Pointer
+       if len(b) > 0 {
+               _p0 = unsafe.Pointer(&b[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func 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 Munlock(b []byte) (err error) {
+       var _p0 unsafe.Pointer
+       if len(b) > 0 {
+               _p0 = unsafe.Pointer(&b[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Munlockall() (err error) {
+       _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func pipe(p *[2]_C_int) (err error) {
+       _, _, e1 := RawSyscall(SYS_PIPE, uintptr(unsafe.Pointer(p)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func getdents(fd int, buf []byte) (n int, err error) {
+       var _p0 unsafe.Pointer
+       if len(buf) > 0 {
+               _p0 = unsafe.Pointer(&buf[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       r0, _, e1 := Syscall(SYS_GETDENTS, uintptr(fd), uintptr(_p0), uintptr(len(buf)))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Access(path string, mode uint32) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Adjtime(delta *Timeval, olddelta *Timeval) (err error) {
+       _, _, e1 := Syscall(SYS_ADJTIME, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Chdir(path string) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Chflags(path string, flags int) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Chmod(path string, mode uint32) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Chown(path string, uid int, gid int) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Chroot(path string) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Close(fd int) (err error) {
+       _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Dup(fd int) (nfd int, err error) {
+       r0, _, e1 := Syscall(SYS_DUP, uintptr(fd), 0, 0)
+       nfd = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Dup2(from int, to int) (err error) {
+       _, _, e1 := Syscall(SYS_DUP2, uintptr(from), uintptr(to), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Exit(code int) {
+       Syscall(SYS_EXIT, uintptr(code), 0, 0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fchdir(fd int) (err error) {
+       _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fchflags(fd int, flags int) (err error) {
+       _, _, e1 := Syscall(SYS_FCHFLAGS, uintptr(fd), uintptr(flags), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fchmod(fd int, mode uint32) (err error) {
+       _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fchown(fd int, uid int, gid int) (err error) {
+       _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Flock(fd int, how int) (err error) {
+       _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fpathconf(fd int, name int) (val int, err error) {
+       r0, _, e1 := Syscall(SYS_FPATHCONF, uintptr(fd), uintptr(name), 0)
+       val = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fstat(fd int, stat *Stat_t) (err error) {
+       _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fstatfs(fd int, stat *Statfs_t) (err error) {
+       _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fsync(fd int) (err error) {
+       _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Ftruncate(fd int, length int64) (err error) {
+       _, _, e1 := Syscall6(SYS_FTRUNCATE, uintptr(fd), 0, uintptr(length), uintptr(length>>32), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getegid() (egid int) {
+       r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0)
+       egid = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Geteuid() (uid int) {
+       r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0)
+       uid = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getgid() (gid int) {
+       r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0)
+       gid = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getpgid(pid int) (pgid int, err error) {
+       r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0)
+       pgid = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getpgrp() (pgrp int) {
+       r0, _, _ := RawSyscall(SYS_GETPGRP, 0, 0, 0)
+       pgrp = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getpid() (pid int) {
+       r0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0)
+       pid = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getppid() (ppid int) {
+       r0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0)
+       ppid = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getpriority(which int, who int) (prio int, err error) {
+       r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0)
+       prio = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getrlimit(which int, lim *Rlimit) (err error) {
+       _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getrusage(who int, rusage *Rusage) (err error) {
+       _, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getsid(pid int) (sid int, err error) {
+       r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0)
+       sid = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Gettimeofday(tv *Timeval) (err error) {
+       _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getuid() (uid int) {
+       r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0)
+       uid = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Issetugid() (tainted bool) {
+       r0, _, _ := Syscall(SYS_ISSETUGID, 0, 0, 0)
+       tainted = bool(r0 != 0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Kill(pid int, signum syscall.Signal) (err error) {
+       _, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Kqueue() (fd int, err error) {
+       r0, _, e1 := Syscall(SYS_KQUEUE, 0, 0, 0)
+       fd = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Lchown(path string, uid int, gid int) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Link(path string, link string) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       var _p1 *byte
+       _p1, err = BytePtrFromString(link)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Listen(s int, backlog int) (err error) {
+       _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Lstat(path string, stat *Stat_t) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Mkdir(path string, mode uint32) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Mkfifo(path string, mode uint32) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Mknod(path string, mode uint32, dev int) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_MKNOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Nanosleep(time *Timespec, leftover *Timespec) (err error) {
+       _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Open(path string, mode int, perm uint32) (fd int, err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       r0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm))
+       fd = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Pathconf(path string, name int) (val int, err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       r0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0)
+       val = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Pread(fd int, p []byte, offset int64) (n int, err error) {
+       var _p0 unsafe.Pointer
+       if len(p) > 0 {
+               _p0 = unsafe.Pointer(&p[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       r0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), uintptr(offset>>32))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Pwrite(fd int, p []byte, offset int64) (n int, err error) {
+       var _p0 unsafe.Pointer
+       if len(p) > 0 {
+               _p0 = unsafe.Pointer(&p[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       r0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), uintptr(offset>>32))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func read(fd int, p []byte) (n int, err error) {
+       var _p0 unsafe.Pointer
+       if len(p) > 0 {
+               _p0 = unsafe.Pointer(&p[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p)))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Readlink(path string, buf []byte) (n int, err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       var _p1 unsafe.Pointer
+       if len(buf) > 0 {
+               _p1 = unsafe.Pointer(&buf[0])
+       } else {
+               _p1 = unsafe.Pointer(&_zero)
+       }
+       r0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Rename(from string, to string) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(from)
+       if err != nil {
+               return
+       }
+       var _p1 *byte
+       _p1, err = BytePtrFromString(to)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Revoke(path string) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Rmdir(path string) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Seek(fd int, offset int64, whence int) (newoffset int64, err error) {
+       r0, r1, e1 := Syscall6(SYS_LSEEK, uintptr(fd), 0, uintptr(offset), uintptr(offset>>32), uintptr(whence), 0)
+       newoffset = int64(int64(r1)<<32 | int64(r0))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) {
+       _, _, e1 := Syscall6(SYS_SELECT, uintptr(n), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setegid(egid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETEGID, uintptr(egid), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Seteuid(euid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETEUID, uintptr(euid), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setgid(gid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETGID, uintptr(gid), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setlogin(name string) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(name)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_SETLOGIN, uintptr(unsafe.Pointer(_p0)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setpgid(pid int, pgid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setpriority(which int, who int, prio int) (err error) {
+       _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setregid(rgid int, egid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setreuid(ruid int, euid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setresgid(rgid int, egid int, sgid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setresuid(ruid int, euid int, suid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setrlimit(which int, lim *Rlimit) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setsid() (pid int, err error) {
+       r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0)
+       pid = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Settimeofday(tp *Timeval) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setuid(uid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETUID, uintptr(uid), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Stat(path string, stat *Stat_t) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Statfs(path string, stat *Statfs_t) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Symlink(path string, link string) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       var _p1 *byte
+       _p1, err = BytePtrFromString(link)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Sync() (err error) {
+       _, _, e1 := Syscall(SYS_SYNC, 0, 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Truncate(path string, length int64) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall6(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length), uintptr(length>>32), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Umask(newmask int) (oldmask int) {
+       r0, _, _ := Syscall(SYS_UMASK, uintptr(newmask), 0, 0)
+       oldmask = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Unlink(path string) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Unmount(path string, flags int) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func write(fd int, p []byte) (n int, err error) {
+       var _p0 unsafe.Pointer
+       if len(p) > 0 {
+               _p0 = unsafe.Pointer(&p[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) {
+       r0, _, e1 := Syscall9(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), 0, uintptr(pos), uintptr(pos>>32), 0)
+       ret = uintptr(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func munmap(addr uintptr, length uintptr) (err error) {
+       _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func readlen(fd int, buf *byte, nbuf int) (n int, err error) {
+       r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func writelen(fd int, buf *byte, nbuf int) (n int, err error) {
+       r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// 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
+}
diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.go
new file mode 100644 (file)
index 0000000..0d69ce6
--- /dev/null
@@ -0,0 +1,1404 @@
+// mksyscall.pl -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
+
+package unix
+
+import (
+       "syscall"
+       "unsafe"
+)
+
+var _ syscall.Errno
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func getgroups(ngid int, gid *_Gid_t) (n int, err error) {
+       r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func setgroups(ngid int, gid *_Gid_t) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) {
+       r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0)
+       wpid = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {
+       r0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))
+       fd = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {
+       _, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {
+       _, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func socket(domain int, typ int, proto int) (fd int, err error) {
+       r0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto))
+       fd = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {
+       _, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {
+       _, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {
+       _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {
+       _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Shutdown(s int, how int) (err error) {
+       _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(s), uintptr(how), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {
+       _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {
+       var _p0 unsafe.Pointer
+       if len(p) > 0 {
+               _p0 = unsafe.Pointer(&p[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {
+       var _p0 unsafe.Pointer
+       if len(buf) > 0 {
+               _p0 = unsafe.Pointer(&buf[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {
+       r0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {
+       r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) {
+       r0, _, e1 := Syscall6(SYS_KEVENT, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout)))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {
+       var _p0 unsafe.Pointer
+       if len(mib) > 0 {
+               _p0 = unsafe.Pointer(&mib[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func utimes(path string, timeval *[2]Timeval) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func futimes(fd int, timeval *[2]Timeval) (err error) {
+       _, _, e1 := Syscall(SYS_FUTIMES, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func fcntl(fd int, cmd int, arg int) (val int, err error) {
+       r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg))
+       val = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func 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))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Mlock(b []byte) (err error) {
+       var _p0 unsafe.Pointer
+       if len(b) > 0 {
+               _p0 = unsafe.Pointer(&b[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Mlockall(flags int) (err error) {
+       _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Mprotect(b []byte, prot int) (err error) {
+       var _p0 unsafe.Pointer
+       if len(b) > 0 {
+               _p0 = unsafe.Pointer(&b[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func 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 Munlock(b []byte) (err error) {
+       var _p0 unsafe.Pointer
+       if len(b) > 0 {
+               _p0 = unsafe.Pointer(&b[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Munlockall() (err error) {
+       _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func pipe(p *[2]_C_int) (err error) {
+       _, _, e1 := RawSyscall(SYS_PIPE, uintptr(unsafe.Pointer(p)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func getdents(fd int, buf []byte) (n int, err error) {
+       var _p0 unsafe.Pointer
+       if len(buf) > 0 {
+               _p0 = unsafe.Pointer(&buf[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       r0, _, e1 := Syscall(SYS_GETDENTS, uintptr(fd), uintptr(_p0), uintptr(len(buf)))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Access(path string, mode uint32) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Adjtime(delta *Timeval, olddelta *Timeval) (err error) {
+       _, _, e1 := Syscall(SYS_ADJTIME, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Chdir(path string) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Chflags(path string, flags int) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Chmod(path string, mode uint32) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Chown(path string, uid int, gid int) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Chroot(path string) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Close(fd int) (err error) {
+       _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Dup(fd int) (nfd int, err error) {
+       r0, _, e1 := Syscall(SYS_DUP, uintptr(fd), 0, 0)
+       nfd = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Dup2(from int, to int) (err error) {
+       _, _, e1 := Syscall(SYS_DUP2, uintptr(from), uintptr(to), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Exit(code int) {
+       Syscall(SYS_EXIT, uintptr(code), 0, 0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fchdir(fd int) (err error) {
+       _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fchflags(fd int, flags int) (err error) {
+       _, _, e1 := Syscall(SYS_FCHFLAGS, uintptr(fd), uintptr(flags), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fchmod(fd int, mode uint32) (err error) {
+       _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fchown(fd int, uid int, gid int) (err error) {
+       _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Flock(fd int, how int) (err error) {
+       _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fpathconf(fd int, name int) (val int, err error) {
+       r0, _, e1 := Syscall(SYS_FPATHCONF, uintptr(fd), uintptr(name), 0)
+       val = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fstat(fd int, stat *Stat_t) (err error) {
+       _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fstatfs(fd int, stat *Statfs_t) (err error) {
+       _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fsync(fd int) (err error) {
+       _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Ftruncate(fd int, length int64) (err error) {
+       _, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), 0, uintptr(length))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getegid() (egid int) {
+       r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0)
+       egid = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Geteuid() (uid int) {
+       r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0)
+       uid = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getgid() (gid int) {
+       r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0)
+       gid = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getpgid(pid int) (pgid int, err error) {
+       r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0)
+       pgid = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getpgrp() (pgrp int) {
+       r0, _, _ := RawSyscall(SYS_GETPGRP, 0, 0, 0)
+       pgrp = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getpid() (pid int) {
+       r0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0)
+       pid = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getppid() (ppid int) {
+       r0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0)
+       ppid = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getpriority(which int, who int) (prio int, err error) {
+       r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0)
+       prio = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getrlimit(which int, lim *Rlimit) (err error) {
+       _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getrusage(who int, rusage *Rusage) (err error) {
+       _, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getsid(pid int) (sid int, err error) {
+       r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0)
+       sid = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Gettimeofday(tv *Timeval) (err error) {
+       _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getuid() (uid int) {
+       r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0)
+       uid = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Issetugid() (tainted bool) {
+       r0, _, _ := Syscall(SYS_ISSETUGID, 0, 0, 0)
+       tainted = bool(r0 != 0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Kill(pid int, signum syscall.Signal) (err error) {
+       _, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Kqueue() (fd int, err error) {
+       r0, _, e1 := Syscall(SYS_KQUEUE, 0, 0, 0)
+       fd = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Lchown(path string, uid int, gid int) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Link(path string, link string) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       var _p1 *byte
+       _p1, err = BytePtrFromString(link)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Listen(s int, backlog int) (err error) {
+       _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Lstat(path string, stat *Stat_t) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Mkdir(path string, mode uint32) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Mkfifo(path string, mode uint32) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Mknod(path string, mode uint32, dev int) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_MKNOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Nanosleep(time *Timespec, leftover *Timespec) (err error) {
+       _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Open(path string, mode int, perm uint32) (fd int, err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       r0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm))
+       fd = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Pathconf(path string, name int) (val int, err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       r0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0)
+       val = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Pread(fd int, p []byte, offset int64) (n int, err error) {
+       var _p0 unsafe.Pointer
+       if len(p) > 0 {
+               _p0 = unsafe.Pointer(&p[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       r0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), 0)
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Pwrite(fd int, p []byte, offset int64) (n int, err error) {
+       var _p0 unsafe.Pointer
+       if len(p) > 0 {
+               _p0 = unsafe.Pointer(&p[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       r0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), 0)
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func read(fd int, p []byte) (n int, err error) {
+       var _p0 unsafe.Pointer
+       if len(p) > 0 {
+               _p0 = unsafe.Pointer(&p[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p)))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Readlink(path string, buf []byte) (n int, err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       var _p1 unsafe.Pointer
+       if len(buf) > 0 {
+               _p1 = unsafe.Pointer(&buf[0])
+       } else {
+               _p1 = unsafe.Pointer(&_zero)
+       }
+       r0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Rename(from string, to string) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(from)
+       if err != nil {
+               return
+       }
+       var _p1 *byte
+       _p1, err = BytePtrFromString(to)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Revoke(path string) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Rmdir(path string) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Seek(fd int, offset int64, whence int) (newoffset int64, err error) {
+       r0, _, e1 := Syscall6(SYS_LSEEK, uintptr(fd), 0, uintptr(offset), uintptr(whence), 0, 0)
+       newoffset = int64(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) {
+       _, _, e1 := Syscall6(SYS_SELECT, uintptr(n), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setegid(egid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETEGID, uintptr(egid), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Seteuid(euid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETEUID, uintptr(euid), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setgid(gid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETGID, uintptr(gid), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setlogin(name string) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(name)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_SETLOGIN, uintptr(unsafe.Pointer(_p0)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setpgid(pid int, pgid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setpriority(which int, who int, prio int) (err error) {
+       _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setregid(rgid int, egid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setreuid(ruid int, euid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setresgid(rgid int, egid int, sgid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setresuid(ruid int, euid int, suid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setrlimit(which int, lim *Rlimit) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setsid() (pid int, err error) {
+       r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0)
+       pid = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Settimeofday(tp *Timeval) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setuid(uid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETUID, uintptr(uid), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Stat(path string, stat *Stat_t) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Statfs(path string, stat *Statfs_t) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Symlink(path string, link string) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       var _p1 *byte
+       _p1, err = BytePtrFromString(link)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Sync() (err error) {
+       _, _, e1 := Syscall(SYS_SYNC, 0, 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Truncate(path string, length int64) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Umask(newmask int) (oldmask int) {
+       r0, _, _ := Syscall(SYS_UMASK, uintptr(newmask), 0, 0)
+       oldmask = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Unlink(path string) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Unmount(path string, flags int) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func write(fd int, p []byte) (n int, err error) {
+       var _p0 unsafe.Pointer
+       if len(p) > 0 {
+               _p0 = unsafe.Pointer(&p[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) {
+       r0, _, e1 := Syscall9(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), 0, uintptr(pos), 0, 0)
+       ret = uintptr(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func munmap(addr uintptr, length uintptr) (err error) {
+       _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func readlen(fd int, buf *byte, nbuf int) (n int, err error) {
+       r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func writelen(fd int, buf *byte, nbuf int) (n int, err error) {
+       r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// 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
+}
diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.go b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.go
new file mode 100644 (file)
index 0000000..41572c2
--- /dev/null
@@ -0,0 +1,1404 @@
+// mksyscall.pl -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
+
+package unix
+
+import (
+       "syscall"
+       "unsafe"
+)
+
+var _ syscall.Errno
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func getgroups(ngid int, gid *_Gid_t) (n int, err error) {
+       r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func setgroups(ngid int, gid *_Gid_t) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) {
+       r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0)
+       wpid = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {
+       r0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))
+       fd = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {
+       _, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {
+       _, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func socket(domain int, typ int, proto int) (fd int, err error) {
+       r0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto))
+       fd = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {
+       _, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {
+       _, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {
+       _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {
+       _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Shutdown(s int, how int) (err error) {
+       _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(s), uintptr(how), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {
+       _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {
+       var _p0 unsafe.Pointer
+       if len(p) > 0 {
+               _p0 = unsafe.Pointer(&p[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {
+       var _p0 unsafe.Pointer
+       if len(buf) > 0 {
+               _p0 = unsafe.Pointer(&buf[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {
+       r0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {
+       r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) {
+       r0, _, e1 := Syscall6(SYS_KEVENT, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout)))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {
+       var _p0 unsafe.Pointer
+       if len(mib) > 0 {
+               _p0 = unsafe.Pointer(&mib[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func utimes(path string, timeval *[2]Timeval) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func futimes(fd int, timeval *[2]Timeval) (err error) {
+       _, _, e1 := Syscall(SYS_FUTIMES, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func fcntl(fd int, cmd int, arg int) (val int, err error) {
+       r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg))
+       val = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func 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))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Mlock(b []byte) (err error) {
+       var _p0 unsafe.Pointer
+       if len(b) > 0 {
+               _p0 = unsafe.Pointer(&b[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Mlockall(flags int) (err error) {
+       _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Mprotect(b []byte, prot int) (err error) {
+       var _p0 unsafe.Pointer
+       if len(b) > 0 {
+               _p0 = unsafe.Pointer(&b[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func 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 Munlock(b []byte) (err error) {
+       var _p0 unsafe.Pointer
+       if len(b) > 0 {
+               _p0 = unsafe.Pointer(&b[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Munlockall() (err error) {
+       _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func pipe(p *[2]_C_int) (err error) {
+       _, _, e1 := RawSyscall(SYS_PIPE, uintptr(unsafe.Pointer(p)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func getdents(fd int, buf []byte) (n int, err error) {
+       var _p0 unsafe.Pointer
+       if len(buf) > 0 {
+               _p0 = unsafe.Pointer(&buf[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       r0, _, e1 := Syscall(SYS_GETDENTS, uintptr(fd), uintptr(_p0), uintptr(len(buf)))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Access(path string, mode uint32) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Adjtime(delta *Timeval, olddelta *Timeval) (err error) {
+       _, _, e1 := Syscall(SYS_ADJTIME, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Chdir(path string) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Chflags(path string, flags int) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Chmod(path string, mode uint32) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Chown(path string, uid int, gid int) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Chroot(path string) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Close(fd int) (err error) {
+       _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Dup(fd int) (nfd int, err error) {
+       r0, _, e1 := Syscall(SYS_DUP, uintptr(fd), 0, 0)
+       nfd = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Dup2(from int, to int) (err error) {
+       _, _, e1 := Syscall(SYS_DUP2, uintptr(from), uintptr(to), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Exit(code int) {
+       Syscall(SYS_EXIT, uintptr(code), 0, 0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fchdir(fd int) (err error) {
+       _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fchflags(fd int, flags int) (err error) {
+       _, _, e1 := Syscall(SYS_FCHFLAGS, uintptr(fd), uintptr(flags), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fchmod(fd int, mode uint32) (err error) {
+       _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fchown(fd int, uid int, gid int) (err error) {
+       _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Flock(fd int, how int) (err error) {
+       _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fpathconf(fd int, name int) (val int, err error) {
+       r0, _, e1 := Syscall(SYS_FPATHCONF, uintptr(fd), uintptr(name), 0)
+       val = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fstat(fd int, stat *Stat_t) (err error) {
+       _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fstatfs(fd int, stat *Statfs_t) (err error) {
+       _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fsync(fd int) (err error) {
+       _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Ftruncate(fd int, length int64) (err error) {
+       _, _, e1 := Syscall6(SYS_FTRUNCATE, uintptr(fd), 0, uintptr(length), uintptr(length>>32), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getegid() (egid int) {
+       r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0)
+       egid = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Geteuid() (uid int) {
+       r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0)
+       uid = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getgid() (gid int) {
+       r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0)
+       gid = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getpgid(pid int) (pgid int, err error) {
+       r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0)
+       pgid = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getpgrp() (pgrp int) {
+       r0, _, _ := RawSyscall(SYS_GETPGRP, 0, 0, 0)
+       pgrp = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getpid() (pid int) {
+       r0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0)
+       pid = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getppid() (ppid int) {
+       r0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0)
+       ppid = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getpriority(which int, who int) (prio int, err error) {
+       r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0)
+       prio = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getrlimit(which int, lim *Rlimit) (err error) {
+       _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getrusage(who int, rusage *Rusage) (err error) {
+       _, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getsid(pid int) (sid int, err error) {
+       r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0)
+       sid = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Gettimeofday(tv *Timeval) (err error) {
+       _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getuid() (uid int) {
+       r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0)
+       uid = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Issetugid() (tainted bool) {
+       r0, _, _ := Syscall(SYS_ISSETUGID, 0, 0, 0)
+       tainted = bool(r0 != 0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Kill(pid int, signum syscall.Signal) (err error) {
+       _, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Kqueue() (fd int, err error) {
+       r0, _, e1 := Syscall(SYS_KQUEUE, 0, 0, 0)
+       fd = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Lchown(path string, uid int, gid int) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Link(path string, link string) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       var _p1 *byte
+       _p1, err = BytePtrFromString(link)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Listen(s int, backlog int) (err error) {
+       _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Lstat(path string, stat *Stat_t) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Mkdir(path string, mode uint32) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Mkfifo(path string, mode uint32) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Mknod(path string, mode uint32, dev int) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_MKNOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Nanosleep(time *Timespec, leftover *Timespec) (err error) {
+       _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Open(path string, mode int, perm uint32) (fd int, err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       r0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm))
+       fd = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Pathconf(path string, name int) (val int, err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       r0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0)
+       val = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Pread(fd int, p []byte, offset int64) (n int, err error) {
+       var _p0 unsafe.Pointer
+       if len(p) > 0 {
+               _p0 = unsafe.Pointer(&p[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       r0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), uintptr(offset>>32))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Pwrite(fd int, p []byte, offset int64) (n int, err error) {
+       var _p0 unsafe.Pointer
+       if len(p) > 0 {
+               _p0 = unsafe.Pointer(&p[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       r0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), uintptr(offset>>32))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func read(fd int, p []byte) (n int, err error) {
+       var _p0 unsafe.Pointer
+       if len(p) > 0 {
+               _p0 = unsafe.Pointer(&p[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p)))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Readlink(path string, buf []byte) (n int, err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       var _p1 unsafe.Pointer
+       if len(buf) > 0 {
+               _p1 = unsafe.Pointer(&buf[0])
+       } else {
+               _p1 = unsafe.Pointer(&_zero)
+       }
+       r0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Rename(from string, to string) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(from)
+       if err != nil {
+               return
+       }
+       var _p1 *byte
+       _p1, err = BytePtrFromString(to)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Revoke(path string) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Rmdir(path string) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Seek(fd int, offset int64, whence int) (newoffset int64, err error) {
+       r0, r1, e1 := Syscall6(SYS_LSEEK, uintptr(fd), 0, uintptr(offset), uintptr(offset>>32), uintptr(whence), 0)
+       newoffset = int64(int64(r1)<<32 | int64(r0))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) {
+       _, _, e1 := Syscall6(SYS_SELECT, uintptr(n), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setegid(egid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETEGID, uintptr(egid), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Seteuid(euid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETEUID, uintptr(euid), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setgid(gid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETGID, uintptr(gid), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setlogin(name string) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(name)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_SETLOGIN, uintptr(unsafe.Pointer(_p0)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setpgid(pid int, pgid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setpriority(which int, who int, prio int) (err error) {
+       _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setregid(rgid int, egid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setreuid(ruid int, euid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setresgid(rgid int, egid int, sgid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setresuid(ruid int, euid int, suid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setrlimit(which int, lim *Rlimit) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setsid() (pid int, err error) {
+       r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0)
+       pid = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Settimeofday(tp *Timeval) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setuid(uid int) (err error) {
+       _, _, e1 := RawSyscall(SYS_SETUID, uintptr(uid), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Stat(path string, stat *Stat_t) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Statfs(path string, stat *Statfs_t) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Symlink(path string, link string) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       var _p1 *byte
+       _p1, err = BytePtrFromString(link)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Sync() (err error) {
+       _, _, e1 := Syscall(SYS_SYNC, 0, 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Truncate(path string, length int64) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall6(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length), uintptr(length>>32), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Umask(newmask int) (oldmask int) {
+       r0, _, _ := Syscall(SYS_UMASK, uintptr(newmask), 0, 0)
+       oldmask = int(r0)
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Unlink(path string) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Unmount(path string, flags int) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func write(fd int, p []byte) (n int, err error) {
+       var _p0 unsafe.Pointer
+       if len(p) > 0 {
+               _p0 = unsafe.Pointer(&p[0])
+       } else {
+               _p0 = unsafe.Pointer(&_zero)
+       }
+       r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) {
+       r0, _, e1 := Syscall9(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), 0, uintptr(pos), uintptr(pos>>32), 0)
+       ret = uintptr(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func munmap(addr uintptr, length uintptr) (err error) {
+       _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func readlen(fd int, buf *byte, nbuf int) (n int, err error) {
+       r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func writelen(fd int, buf *byte, nbuf int) (n int, err error) {
+       r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf))
+       n = int(r0)
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+// 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
+}
diff --git a/vendor/golang.org/x/sys/unix/zsyscall_solaris_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_solaris_amd64.go
new file mode 100644 (file)
index 0000000..4287133
--- /dev/null
@@ -0,0 +1,1600 @@
+// mksyscall_solaris.pl -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
+
+package unix
+
+import (
+       "syscall"
+       "unsafe"
+)
+
+//go:cgo_import_dynamic libc_pipe pipe "libc.so"
+//go:cgo_import_dynamic libc_getsockname getsockname "libsocket.so"
+//go:cgo_import_dynamic libc_getcwd getcwd "libc.so"
+//go:cgo_import_dynamic libc_getgroups getgroups "libc.so"
+//go:cgo_import_dynamic libc_setgroups setgroups "libc.so"
+//go:cgo_import_dynamic libc_wait4 wait4 "libc.so"
+//go:cgo_import_dynamic libc_gethostname gethostname "libc.so"
+//go:cgo_import_dynamic libc_utimes utimes "libc.so"
+//go:cgo_import_dynamic libc_utimensat utimensat "libc.so"
+//go:cgo_import_dynamic libc_fcntl fcntl "libc.so"
+//go:cgo_import_dynamic libc_futimesat futimesat "libc.so"
+//go:cgo_import_dynamic libc_accept accept "libsocket.so"
+//go:cgo_import_dynamic libc___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_ioctl ioctl "libc.so"
+//go:cgo_import_dynamic libc_access access "libc.so"
+//go:cgo_import_dynamic libc_adjtime adjtime "libc.so"
+//go:cgo_import_dynamic libc_chdir chdir "libc.so"
+//go:cgo_import_dynamic libc_chmod chmod "libc.so"
+//go:cgo_import_dynamic libc_chown chown "libc.so"
+//go:cgo_import_dynamic libc_chroot chroot "libc.so"
+//go:cgo_import_dynamic libc_close close "libc.so"
+//go:cgo_import_dynamic libc_creat creat "libc.so"
+//go:cgo_import_dynamic libc_dup dup "libc.so"
+//go:cgo_import_dynamic libc_dup2 dup2 "libc.so"
+//go:cgo_import_dynamic libc_exit exit "libc.so"
+//go:cgo_import_dynamic libc_fchdir fchdir "libc.so"
+//go:cgo_import_dynamic libc_fchmod fchmod "libc.so"
+//go:cgo_import_dynamic libc_fchmodat fchmodat "libc.so"
+//go:cgo_import_dynamic libc_fchown fchown "libc.so"
+//go:cgo_import_dynamic libc_fchownat fchownat "libc.so"
+//go:cgo_import_dynamic libc_fdatasync fdatasync "libc.so"
+//go:cgo_import_dynamic libc_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_fstatvfs fstatvfs "libc.so"
+//go:cgo_import_dynamic libc_getdents getdents "libc.so"
+//go:cgo_import_dynamic libc_getgid getgid "libc.so"
+//go:cgo_import_dynamic libc_getpid getpid "libc.so"
+//go:cgo_import_dynamic libc_getpgid getpgid "libc.so"
+//go:cgo_import_dynamic libc_getpgrp getpgrp "libc.so"
+//go:cgo_import_dynamic libc_geteuid geteuid "libc.so"
+//go:cgo_import_dynamic libc_getegid getegid "libc.so"
+//go:cgo_import_dynamic libc_getppid getppid "libc.so"
+//go:cgo_import_dynamic libc_getpriority getpriority "libc.so"
+//go:cgo_import_dynamic libc_getrlimit getrlimit "libc.so"
+//go:cgo_import_dynamic libc_getrusage getrusage "libc.so"
+//go:cgo_import_dynamic libc_gettimeofday gettimeofday "libc.so"
+//go:cgo_import_dynamic libc_getuid getuid "libc.so"
+//go:cgo_import_dynamic libc_kill kill "libc.so"
+//go:cgo_import_dynamic libc_lchown lchown "libc.so"
+//go:cgo_import_dynamic libc_link link "libc.so"
+//go:cgo_import_dynamic libc___xnet_llisten __xnet_llisten "libsocket.so"
+//go:cgo_import_dynamic libc_lstat lstat "libc.so"
+//go:cgo_import_dynamic libc_madvise madvise "libc.so"
+//go:cgo_import_dynamic libc_mkdir mkdir "libc.so"
+//go:cgo_import_dynamic libc_mkdirat mkdirat "libc.so"
+//go:cgo_import_dynamic libc_mkfifo mkfifo "libc.so"
+//go:cgo_import_dynamic libc_mkfifoat mkfifoat "libc.so"
+//go:cgo_import_dynamic libc_mknod mknod "libc.so"
+//go:cgo_import_dynamic libc_mknodat mknodat "libc.so"
+//go:cgo_import_dynamic libc_mlock mlock "libc.so"
+//go:cgo_import_dynamic libc_mlockall mlockall "libc.so"
+//go:cgo_import_dynamic libc_mprotect mprotect "libc.so"
+//go:cgo_import_dynamic libc_munlock munlock "libc.so"
+//go:cgo_import_dynamic libc_munlockall munlockall "libc.so"
+//go:cgo_import_dynamic libc_nanosleep nanosleep "libc.so"
+//go:cgo_import_dynamic libc_open open "libc.so"
+//go:cgo_import_dynamic libc_openat openat "libc.so"
+//go:cgo_import_dynamic libc_pathconf pathconf "libc.so"
+//go:cgo_import_dynamic libc_pause pause "libc.so"
+//go:cgo_import_dynamic libc_pread pread "libc.so"
+//go:cgo_import_dynamic libc_pwrite pwrite "libc.so"
+//go:cgo_import_dynamic libc_read read "libc.so"
+//go:cgo_import_dynamic libc_readlink readlink "libc.so"
+//go:cgo_import_dynamic libc_rename rename "libc.so"
+//go:cgo_import_dynamic libc_renameat renameat "libc.so"
+//go:cgo_import_dynamic libc_rmdir rmdir "libc.so"
+//go:cgo_import_dynamic libc_lseek lseek "libc.so"
+//go:cgo_import_dynamic libc_setegid setegid "libc.so"
+//go:cgo_import_dynamic libc_seteuid seteuid "libc.so"
+//go:cgo_import_dynamic libc_setgid setgid "libc.so"
+//go:cgo_import_dynamic libc_sethostname sethostname "libc.so"
+//go:cgo_import_dynamic libc_setpgid setpgid "libc.so"
+//go:cgo_import_dynamic libc_setpriority setpriority "libc.so"
+//go:cgo_import_dynamic libc_setregid setregid "libc.so"
+//go:cgo_import_dynamic libc_setreuid setreuid "libc.so"
+//go:cgo_import_dynamic libc_setrlimit setrlimit "libc.so"
+//go:cgo_import_dynamic libc_setsid setsid "libc.so"
+//go:cgo_import_dynamic libc_setuid setuid "libc.so"
+//go:cgo_import_dynamic libc_shutdown shutdown "libsocket.so"
+//go:cgo_import_dynamic libc_stat stat "libc.so"
+//go:cgo_import_dynamic libc_statvfs statvfs "libc.so"
+//go:cgo_import_dynamic libc_symlink symlink "libc.so"
+//go:cgo_import_dynamic libc_sync sync "libc.so"
+//go:cgo_import_dynamic libc_times times "libc.so"
+//go:cgo_import_dynamic libc_truncate truncate "libc.so"
+//go:cgo_import_dynamic libc_fsync fsync "libc.so"
+//go:cgo_import_dynamic libc_ftruncate ftruncate "libc.so"
+//go:cgo_import_dynamic libc_umask umask "libc.so"
+//go:cgo_import_dynamic libc_uname uname "libc.so"
+//go:cgo_import_dynamic libc_umount umount "libc.so"
+//go:cgo_import_dynamic libc_unlink unlink "libc.so"
+//go:cgo_import_dynamic libc_unlinkat unlinkat "libc.so"
+//go:cgo_import_dynamic libc_ustat ustat "libc.so"
+//go:cgo_import_dynamic libc_utime utime "libc.so"
+//go:cgo_import_dynamic libc___xnet_bind __xnet_bind "libsocket.so"
+//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___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"
+//go:cgo_import_dynamic libc_write write "libc.so"
+//go:cgo_import_dynamic libc___xnet_getsockopt __xnet_getsockopt "libsocket.so"
+//go:cgo_import_dynamic libc_getpeername getpeername "libsocket.so"
+//go:cgo_import_dynamic libc_setsockopt setsockopt "libsocket.so"
+//go:cgo_import_dynamic libc_recvfrom recvfrom "libsocket.so"
+//go:cgo_import_dynamic libc_sysconf sysconf "libc.so"
+
+//go:linkname procpipe libc_pipe
+//go:linkname procgetsockname libc_getsockname
+//go:linkname procGetcwd libc_getcwd
+//go:linkname procgetgroups libc_getgroups
+//go:linkname procsetgroups libc_setgroups
+//go:linkname procwait4 libc_wait4
+//go:linkname procgethostname libc_gethostname
+//go:linkname procutimes libc_utimes
+//go:linkname procutimensat libc_utimensat
+//go:linkname procfcntl libc_fcntl
+//go:linkname procfutimesat libc_futimesat
+//go:linkname procaccept libc_accept
+//go:linkname proc__xnet_recvmsg libc___xnet_recvmsg
+//go:linkname proc__xnet_sendmsg libc___xnet_sendmsg
+//go:linkname procacct libc_acct
+//go:linkname procioctl libc_ioctl
+//go:linkname procAccess libc_access
+//go:linkname procAdjtime libc_adjtime
+//go:linkname procChdir libc_chdir
+//go:linkname procChmod libc_chmod
+//go:linkname procChown libc_chown
+//go:linkname procChroot libc_chroot
+//go:linkname procClose libc_close
+//go:linkname procCreat libc_creat
+//go:linkname procDup libc_dup
+//go:linkname procDup2 libc_dup2
+//go:linkname procExit libc_exit
+//go:linkname procFchdir libc_fchdir
+//go:linkname procFchmod libc_fchmod
+//go:linkname procFchmodat libc_fchmodat
+//go:linkname procFchown libc_fchown
+//go:linkname procFchownat libc_fchownat
+//go:linkname procFdatasync libc_fdatasync
+//go:linkname procFlock libc_flock
+//go:linkname procFpathconf libc_fpathconf
+//go:linkname procFstat libc_fstat
+//go:linkname procFstatvfs libc_fstatvfs
+//go:linkname procGetdents libc_getdents
+//go:linkname procGetgid libc_getgid
+//go:linkname procGetpid libc_getpid
+//go:linkname procGetpgid libc_getpgid
+//go:linkname procGetpgrp libc_getpgrp
+//go:linkname procGeteuid libc_geteuid
+//go:linkname procGetegid libc_getegid
+//go:linkname procGetppid libc_getppid
+//go:linkname procGetpriority libc_getpriority
+//go:linkname procGetrlimit libc_getrlimit
+//go:linkname procGetrusage libc_getrusage
+//go:linkname procGettimeofday libc_gettimeofday
+//go:linkname procGetuid libc_getuid
+//go:linkname procKill libc_kill
+//go:linkname procLchown libc_lchown
+//go:linkname procLink libc_link
+//go:linkname proc__xnet_llisten libc___xnet_llisten
+//go:linkname procLstat libc_lstat
+//go:linkname procMadvise libc_madvise
+//go:linkname procMkdir libc_mkdir
+//go:linkname procMkdirat libc_mkdirat
+//go:linkname procMkfifo libc_mkfifo
+//go:linkname procMkfifoat libc_mkfifoat
+//go:linkname procMknod libc_mknod
+//go:linkname procMknodat libc_mknodat
+//go:linkname procMlock libc_mlock
+//go:linkname procMlockall libc_mlockall
+//go:linkname procMprotect libc_mprotect
+//go:linkname procMunlock libc_munlock
+//go:linkname procMunlockall libc_munlockall
+//go:linkname procNanosleep libc_nanosleep
+//go:linkname procOpen libc_open
+//go:linkname procOpenat libc_openat
+//go:linkname procPathconf libc_pathconf
+//go:linkname procPause libc_pause
+//go:linkname procPread libc_pread
+//go:linkname procPwrite libc_pwrite
+//go:linkname procread libc_read
+//go:linkname procReadlink libc_readlink
+//go:linkname procRename libc_rename
+//go:linkname procRenameat libc_renameat
+//go:linkname procRmdir libc_rmdir
+//go:linkname proclseek libc_lseek
+//go:linkname procSetegid libc_setegid
+//go:linkname procSeteuid libc_seteuid
+//go:linkname procSetgid libc_setgid
+//go:linkname procSethostname libc_sethostname
+//go:linkname procSetpgid libc_setpgid
+//go:linkname procSetpriority libc_setpriority
+//go:linkname procSetregid libc_setregid
+//go:linkname procSetreuid libc_setreuid
+//go:linkname procSetrlimit libc_setrlimit
+//go:linkname procSetsid libc_setsid
+//go:linkname procSetuid libc_setuid
+//go:linkname procshutdown libc_shutdown
+//go:linkname procStat libc_stat
+//go:linkname procStatvfs libc_statvfs
+//go:linkname procSymlink libc_symlink
+//go:linkname procSync libc_sync
+//go:linkname procTimes libc_times
+//go:linkname procTruncate libc_truncate
+//go:linkname procFsync libc_fsync
+//go:linkname procFtruncate libc_ftruncate
+//go:linkname procUmask libc_umask
+//go:linkname procUname libc_uname
+//go:linkname procumount libc_umount
+//go:linkname procUnlink libc_unlink
+//go:linkname procUnlinkat libc_unlinkat
+//go:linkname procUstat libc_ustat
+//go:linkname procUtime libc_utime
+//go:linkname proc__xnet_bind libc___xnet_bind
+//go:linkname proc__xnet_connect libc___xnet_connect
+//go:linkname procmmap libc_mmap
+//go:linkname procmunmap libc_munmap
+//go:linkname proc__xnet_sendto libc___xnet_sendto
+//go:linkname proc__xnet_socket libc___xnet_socket
+//go:linkname proc__xnet_socketpair libc___xnet_socketpair
+//go:linkname procwrite libc_write
+//go:linkname proc__xnet_getsockopt libc___xnet_getsockopt
+//go:linkname procgetpeername libc_getpeername
+//go:linkname procsetsockopt libc_setsockopt
+//go:linkname procrecvfrom libc_recvfrom
+//go:linkname procsysconf libc_sysconf
+
+var (
+       procpipe,
+       procgetsockname,
+       procGetcwd,
+       procgetgroups,
+       procsetgroups,
+       procwait4,
+       procgethostname,
+       procutimes,
+       procutimensat,
+       procfcntl,
+       procfutimesat,
+       procaccept,
+       proc__xnet_recvmsg,
+       proc__xnet_sendmsg,
+       procacct,
+       procioctl,
+       procAccess,
+       procAdjtime,
+       procChdir,
+       procChmod,
+       procChown,
+       procChroot,
+       procClose,
+       procCreat,
+       procDup,
+       procDup2,
+       procExit,
+       procFchdir,
+       procFchmod,
+       procFchmodat,
+       procFchown,
+       procFchownat,
+       procFdatasync,
+       procFlock,
+       procFpathconf,
+       procFstat,
+       procFstatvfs,
+       procGetdents,
+       procGetgid,
+       procGetpid,
+       procGetpgid,
+       procGetpgrp,
+       procGeteuid,
+       procGetegid,
+       procGetppid,
+       procGetpriority,
+       procGetrlimit,
+       procGetrusage,
+       procGettimeofday,
+       procGetuid,
+       procKill,
+       procLchown,
+       procLink,
+       proc__xnet_llisten,
+       procLstat,
+       procMadvise,
+       procMkdir,
+       procMkdirat,
+       procMkfifo,
+       procMkfifoat,
+       procMknod,
+       procMknodat,
+       procMlock,
+       procMlockall,
+       procMprotect,
+       procMunlock,
+       procMunlockall,
+       procNanosleep,
+       procOpen,
+       procOpenat,
+       procPathconf,
+       procPause,
+       procPread,
+       procPwrite,
+       procread,
+       procReadlink,
+       procRename,
+       procRenameat,
+       procRmdir,
+       proclseek,
+       procSetegid,
+       procSeteuid,
+       procSetgid,
+       procSethostname,
+       procSetpgid,
+       procSetpriority,
+       procSetregid,
+       procSetreuid,
+       procSetrlimit,
+       procSetsid,
+       procSetuid,
+       procshutdown,
+       procStat,
+       procStatvfs,
+       procSymlink,
+       procSync,
+       procTimes,
+       procTruncate,
+       procFsync,
+       procFtruncate,
+       procUmask,
+       procUname,
+       procumount,
+       procUnlink,
+       procUnlinkat,
+       procUstat,
+       procUtime,
+       proc__xnet_bind,
+       proc__xnet_connect,
+       procmmap,
+       procmunmap,
+       proc__xnet_sendto,
+       proc__xnet_socket,
+       proc__xnet_socketpair,
+       procwrite,
+       proc__xnet_getsockopt,
+       procgetpeername,
+       procsetsockopt,
+       procrecvfrom,
+       procsysconf syscallFunc
+)
+
+func pipe(p *[2]_C_int) (n int, err error) {
+       r0, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procpipe)), 1, uintptr(unsafe.Pointer(p)), 0, 0, 0, 0, 0)
+       n = int(r0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {
+       _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procgetsockname)), 3, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), 0, 0, 0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+func Getcwd(buf []byte) (n int, err error) {
+       var _p0 *byte
+       if len(buf) > 0 {
+               _p0 = &buf[0]
+       }
+       r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procGetcwd)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), 0, 0, 0, 0)
+       n = int(r0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+func getgroups(ngid int, gid *_Gid_t) (n int, err error) {
+       r0, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procgetgroups)), 2, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0, 0, 0, 0)
+       n = int(r0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+func setgroups(ngid int, gid *_Gid_t) (err error) {
+       _, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procsetgroups)), 2, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0, 0, 0, 0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+func wait4(pid int32, statusp *_C_int, options int, rusage *Rusage) (wpid int32, err error) {
+       r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procwait4)), 4, uintptr(pid), uintptr(unsafe.Pointer(statusp)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0)
+       wpid = int32(r0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+func gethostname(buf []byte) (n int, err error) {
+       var _p0 *byte
+       if len(buf) > 0 {
+               _p0 = &buf[0]
+       }
+       r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procgethostname)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), 0, 0, 0, 0)
+       n = int(r0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+func utimes(path string, times *[2]Timeval) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procutimes)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0, 0, 0, 0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+func utimensat(fd int, path string, times *[2]Timespec, flag int) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procutimensat)), 4, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flag), 0, 0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+func fcntl(fd int, cmd int, arg int) (val int, err error) {
+       r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procfcntl)), 3, uintptr(fd), uintptr(cmd), uintptr(arg), 0, 0, 0)
+       val = int(r0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+func futimesat(fildes int, path *byte, times *[2]Timeval) (err error) {
+       _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procfutimesat)), 3, uintptr(fildes), uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(times)), 0, 0, 0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {
+       r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procaccept)), 3, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), 0, 0, 0)
+       fd = int(r0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {
+       r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&proc__xnet_recvmsg)), 3, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags), 0, 0, 0)
+       n = int(r0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {
+       r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&proc__xnet_sendmsg)), 3, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags), 0, 0, 0)
+       n = int(r0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+func acct(path *byte) (err error) {
+       _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procacct)), 1, uintptr(unsafe.Pointer(path)), 0, 0, 0, 0, 0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+func ioctl(fd int, req uint, arg uintptr) (err error) {
+       _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procioctl)), 3, uintptr(fd), uintptr(req), uintptr(arg), 0, 0, 0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+func Access(path string, mode uint32) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procAccess)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0, 0, 0, 0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+func Adjtime(delta *Timeval, olddelta *Timeval) (err error) {
+       _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procAdjtime)), 2, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0, 0, 0, 0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+func Chdir(path string) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procChdir)), 1, uintptr(unsafe.Pointer(_p0)), 0, 0, 0, 0, 0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+func Chmod(path string, mode uint32) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procChmod)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0, 0, 0, 0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+func Chown(path string, uid int, gid int) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procChown)), 3, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), 0, 0, 0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+func Chroot(path string) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procChroot)), 1, uintptr(unsafe.Pointer(_p0)), 0, 0, 0, 0, 0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+func Close(fd int) (err error) {
+       _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procClose)), 1, uintptr(fd), 0, 0, 0, 0, 0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+func Creat(path string, mode uint32) (fd int, err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procCreat)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0, 0, 0, 0)
+       fd = int(r0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+func Dup(fd int) (nfd int, err error) {
+       r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procDup)), 1, uintptr(fd), 0, 0, 0, 0, 0)
+       nfd = int(r0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+func Dup2(oldfd int, newfd int) (err error) {
+       _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procDup2)), 2, uintptr(oldfd), uintptr(newfd), 0, 0, 0, 0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+func Exit(code int) {
+       sysvicall6(uintptr(unsafe.Pointer(&procExit)), 1, uintptr(code), 0, 0, 0, 0, 0)
+       return
+}
+
+func Fchdir(fd int) (err error) {
+       _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFchdir)), 1, uintptr(fd), 0, 0, 0, 0, 0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+func Fchmod(fd int, mode uint32) (err error) {
+       _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFchmod)), 2, uintptr(fd), uintptr(mode), 0, 0, 0, 0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFchmodat)), 4, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+func Fchown(fd int, uid int, gid int) (err error) {
+       _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFchown)), 3, uintptr(fd), uintptr(uid), uintptr(gid), 0, 0, 0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFchownat)), 5, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+func Fdatasync(fd int) (err error) {
+       _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFdatasync)), 1, uintptr(fd), 0, 0, 0, 0, 0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+func 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 {
+               err = e1
+       }
+       return
+}
+
+func Fpathconf(fd int, name int) (val int, err error) {
+       r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFpathconf)), 2, uintptr(fd), uintptr(name), 0, 0, 0, 0)
+       val = int(r0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+func Fstat(fd int, stat *Stat_t) (err error) {
+       _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFstat)), 2, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0, 0, 0, 0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+func 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 {
+               err = e1
+       }
+       return
+}
+
+func Getdents(fd int, buf []byte, basep *uintptr) (n int, err error) {
+       var _p0 *byte
+       if len(buf) > 0 {
+               _p0 = &buf[0]
+       }
+       r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procGetdents)), 4, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 0, 0)
+       n = int(r0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+func Getgid() (gid int) {
+       r0, _, _ := rawSysvicall6(uintptr(unsafe.Pointer(&procGetgid)), 0, 0, 0, 0, 0, 0, 0)
+       gid = int(r0)
+       return
+}
+
+func Getpid() (pid int) {
+       r0, _, _ := rawSysvicall6(uintptr(unsafe.Pointer(&procGetpid)), 0, 0, 0, 0, 0, 0, 0)
+       pid = int(r0)
+       return
+}
+
+func Getpgid(pid int) (pgid int, err error) {
+       r0, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procGetpgid)), 1, uintptr(pid), 0, 0, 0, 0, 0)
+       pgid = int(r0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+func Getpgrp() (pgid int, err error) {
+       r0, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procGetpgrp)), 0, 0, 0, 0, 0, 0, 0)
+       pgid = int(r0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+func Geteuid() (euid int) {
+       r0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&procGeteuid)), 0, 0, 0, 0, 0, 0, 0)
+       euid = int(r0)
+       return
+}
+
+func Getegid() (egid int) {
+       r0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&procGetegid)), 0, 0, 0, 0, 0, 0, 0)
+       egid = int(r0)
+       return
+}
+
+func Getppid() (ppid int) {
+       r0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&procGetppid)), 0, 0, 0, 0, 0, 0, 0)
+       ppid = int(r0)
+       return
+}
+
+func Getpriority(which int, who int) (n int, err error) {
+       r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procGetpriority)), 2, uintptr(which), uintptr(who), 0, 0, 0, 0)
+       n = int(r0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+func Getrlimit(which int, lim *Rlimit) (err error) {
+       _, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procGetrlimit)), 2, uintptr(which), uintptr(unsafe.Pointer(lim)), 0, 0, 0, 0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+func Getrusage(who int, rusage *Rusage) (err error) {
+       _, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procGetrusage)), 2, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0, 0, 0, 0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+func Gettimeofday(tv *Timeval) (err error) {
+       _, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procGettimeofday)), 1, uintptr(unsafe.Pointer(tv)), 0, 0, 0, 0, 0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+func Getuid() (uid int) {
+       r0, _, _ := rawSysvicall6(uintptr(unsafe.Pointer(&procGetuid)), 0, 0, 0, 0, 0, 0, 0)
+       uid = int(r0)
+       return
+}
+
+func Kill(pid int, signum syscall.Signal) (err error) {
+       _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procKill)), 2, uintptr(pid), uintptr(signum), 0, 0, 0, 0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+func Lchown(path string, uid int, gid int) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procLchown)), 3, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), 0, 0, 0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+func Link(path string, link string) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       var _p1 *byte
+       _p1, err = BytePtrFromString(link)
+       if err != nil {
+               return
+       }
+       _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procLink)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0, 0, 0, 0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+func Listen(s int, backlog int) (err error) {
+       _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&proc__xnet_llisten)), 2, uintptr(s), uintptr(backlog), 0, 0, 0, 0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+func Lstat(path string, stat *Stat_t) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procLstat)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0, 0, 0, 0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+func Madvise(b []byte, advice int) (err error) {
+       var _p0 *byte
+       if len(b) > 0 {
+               _p0 = &b[0]
+       }
+       _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMadvise)), 3, uintptr(unsafe.Pointer(_p0)), uintptr(len(b)), uintptr(advice), 0, 0, 0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+func Mkdir(path string, mode uint32) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMkdir)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0, 0, 0, 0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+func Mkdirat(dirfd int, path string, mode uint32) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMkdirat)), 3, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0, 0, 0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+func Mkfifo(path string, mode uint32) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMkfifo)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0, 0, 0, 0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+func Mkfifoat(dirfd int, path string, mode uint32) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMkfifoat)), 3, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0, 0, 0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+func Mknod(path string, mode uint32, dev int) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMknod)), 3, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0, 0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMknodat)), 4, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+func Mlock(b []byte) (err error) {
+       var _p0 *byte
+       if len(b) > 0 {
+               _p0 = &b[0]
+       }
+       _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMlock)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(len(b)), 0, 0, 0, 0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+func Mlockall(flags int) (err error) {
+       _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMlockall)), 1, uintptr(flags), 0, 0, 0, 0, 0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+func Mprotect(b []byte, prot int) (err error) {
+       var _p0 *byte
+       if len(b) > 0 {
+               _p0 = &b[0]
+       }
+       _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMprotect)), 3, uintptr(unsafe.Pointer(_p0)), uintptr(len(b)), uintptr(prot), 0, 0, 0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+func Munlock(b []byte) (err error) {
+       var _p0 *byte
+       if len(b) > 0 {
+               _p0 = &b[0]
+       }
+       _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMunlock)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(len(b)), 0, 0, 0, 0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+func Munlockall() (err error) {
+       _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMunlockall)), 0, 0, 0, 0, 0, 0, 0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+func Nanosleep(time *Timespec, leftover *Timespec) (err error) {
+       _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procNanosleep)), 2, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0, 0, 0, 0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+func Open(path string, mode int, perm uint32) (fd int, err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procOpen)), 3, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0, 0)
+       fd = int(r0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+func Openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procOpenat)), 4, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mode), 0, 0)
+       fd = int(r0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+func Pathconf(path string, name int) (val int, err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procPathconf)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0, 0, 0, 0)
+       val = int(r0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+func Pause() (err error) {
+       _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procPause)), 0, 0, 0, 0, 0, 0, 0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+func Pread(fd int, p []byte, offset int64) (n int, err error) {
+       var _p0 *byte
+       if len(p) > 0 {
+               _p0 = &p[0]
+       }
+       r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procPread)), 4, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(p)), uintptr(offset), 0, 0)
+       n = int(r0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+func Pwrite(fd int, p []byte, offset int64) (n int, err error) {
+       var _p0 *byte
+       if len(p) > 0 {
+               _p0 = &p[0]
+       }
+       r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procPwrite)), 4, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(p)), uintptr(offset), 0, 0)
+       n = int(r0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+func read(fd int, p []byte) (n int, err error) {
+       var _p0 *byte
+       if len(p) > 0 {
+               _p0 = &p[0]
+       }
+       r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procread)), 3, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(p)), 0, 0, 0)
+       n = int(r0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+func Readlink(path string, buf []byte) (n int, err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       var _p1 *byte
+       if len(buf) > 0 {
+               _p1 = &buf[0]
+       }
+       r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procReadlink)), 3, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(len(buf)), 0, 0, 0)
+       n = int(r0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+func Rename(from string, to string) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(from)
+       if err != nil {
+               return
+       }
+       var _p1 *byte
+       _p1, err = BytePtrFromString(to)
+       if err != nil {
+               return
+       }
+       _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procRename)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0, 0, 0, 0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(oldpath)
+       if err != nil {
+               return
+       }
+       var _p1 *byte
+       _p1, err = BytePtrFromString(newpath)
+       if err != nil {
+               return
+       }
+       _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procRenameat)), 4, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+func Rmdir(path string) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procRmdir)), 1, uintptr(unsafe.Pointer(_p0)), 0, 0, 0, 0, 0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+func Seek(fd int, offset int64, whence int) (newoffset int64, err error) {
+       r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&proclseek)), 3, uintptr(fd), uintptr(offset), uintptr(whence), 0, 0, 0)
+       newoffset = int64(r0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+func Setegid(egid int) (err error) {
+       _, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procSetegid)), 1, uintptr(egid), 0, 0, 0, 0, 0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+func Seteuid(euid int) (err error) {
+       _, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procSeteuid)), 1, uintptr(euid), 0, 0, 0, 0, 0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+func Setgid(gid int) (err error) {
+       _, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procSetgid)), 1, uintptr(gid), 0, 0, 0, 0, 0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+func Sethostname(p []byte) (err error) {
+       var _p0 *byte
+       if len(p) > 0 {
+               _p0 = &p[0]
+       }
+       _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procSethostname)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(len(p)), 0, 0, 0, 0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+func Setpgid(pid int, pgid int) (err error) {
+       _, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procSetpgid)), 2, uintptr(pid), uintptr(pgid), 0, 0, 0, 0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+func Setpriority(which int, who int, prio int) (err error) {
+       _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procSetpriority)), 3, uintptr(which), uintptr(who), uintptr(prio), 0, 0, 0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+func Setregid(rgid int, egid int) (err error) {
+       _, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procSetregid)), 2, uintptr(rgid), uintptr(egid), 0, 0, 0, 0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+func Setreuid(ruid int, euid int) (err error) {
+       _, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procSetreuid)), 2, uintptr(ruid), uintptr(euid), 0, 0, 0, 0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+func Setrlimit(which int, lim *Rlimit) (err error) {
+       _, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procSetrlimit)), 2, uintptr(which), uintptr(unsafe.Pointer(lim)), 0, 0, 0, 0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+func Setsid() (pid int, err error) {
+       r0, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procSetsid)), 0, 0, 0, 0, 0, 0, 0)
+       pid = int(r0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+func Setuid(uid int) (err error) {
+       _, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procSetuid)), 1, uintptr(uid), 0, 0, 0, 0, 0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+func Shutdown(s int, how int) (err error) {
+       _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procshutdown)), 2, uintptr(s), uintptr(how), 0, 0, 0, 0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+func Stat(path string, stat *Stat_t) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procStat)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0, 0, 0, 0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+func Statvfs(path string, vfsstat *Statvfs_t) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procStatvfs)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(vfsstat)), 0, 0, 0, 0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+func Symlink(path string, link string) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       var _p1 *byte
+       _p1, err = BytePtrFromString(link)
+       if err != nil {
+               return
+       }
+       _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procSymlink)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0, 0, 0, 0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+func Sync() (err error) {
+       _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procSync)), 0, 0, 0, 0, 0, 0, 0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+func Times(tms *Tms) (ticks uintptr, err error) {
+       r0, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procTimes)), 1, uintptr(unsafe.Pointer(tms)), 0, 0, 0, 0, 0)
+       ticks = uintptr(r0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+func Truncate(path string, length int64) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procTruncate)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0, 0, 0, 0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+func Fsync(fd int) (err error) {
+       _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFsync)), 1, uintptr(fd), 0, 0, 0, 0, 0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+func Ftruncate(fd int, length int64) (err error) {
+       _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFtruncate)), 2, uintptr(fd), uintptr(length), 0, 0, 0, 0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+func Umask(mask int) (oldmask int) {
+       r0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&procUmask)), 1, uintptr(mask), 0, 0, 0, 0, 0)
+       oldmask = int(r0)
+       return
+}
+
+func Uname(buf *Utsname) (err error) {
+       _, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procUname)), 1, uintptr(unsafe.Pointer(buf)), 0, 0, 0, 0, 0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+func Unmount(target string, flags int) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(target)
+       if err != nil {
+               return
+       }
+       _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procumount)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0, 0, 0, 0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+func Unlink(path string) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procUnlink)), 1, uintptr(unsafe.Pointer(_p0)), 0, 0, 0, 0, 0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+func Unlinkat(dirfd int, path string, flags int) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procUnlinkat)), 3, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0, 0, 0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+func Ustat(dev int, ubuf *Ustat_t) (err error) {
+       _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procUstat)), 2, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0, 0, 0, 0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+func Utime(path string, buf *Utimbuf) (err error) {
+       var _p0 *byte
+       _p0, err = BytePtrFromString(path)
+       if err != nil {
+               return
+       }
+       _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procUtime)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0, 0, 0, 0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {
+       _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&proc__xnet_bind)), 3, uintptr(s), uintptr(addr), uintptr(addrlen), 0, 0, 0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {
+       _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&proc__xnet_connect)), 3, uintptr(s), uintptr(addr), uintptr(addrlen), 0, 0, 0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) {
+       r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procmmap)), 6, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos))
+       ret = uintptr(r0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+func munmap(addr uintptr, length uintptr) (err error) {
+       _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procmunmap)), 2, uintptr(addr), uintptr(length), 0, 0, 0, 0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {
+       var _p0 *byte
+       if len(buf) > 0 {
+               _p0 = &buf[0]
+       }
+       _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&proc__xnet_sendto)), 6, uintptr(s), uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+func socket(domain int, typ int, proto int) (fd int, err error) {
+       r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&proc__xnet_socket)), 3, uintptr(domain), uintptr(typ), uintptr(proto), 0, 0, 0)
+       fd = int(r0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {
+       _, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&proc__xnet_socketpair)), 4, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+func write(fd int, p []byte) (n int, err error) {
+       var _p0 *byte
+       if len(p) > 0 {
+               _p0 = &p[0]
+       }
+       r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procwrite)), 3, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(p)), 0, 0, 0)
+       n = int(r0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {
+       _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&proc__xnet_getsockopt)), 5, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {
+       _, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procgetpeername)), 3, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), 0, 0, 0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {
+       _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procsetsockopt)), 5, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {
+       var _p0 *byte
+       if len(p) > 0 {
+               _p0 = &p[0]
+       }
+       r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procrecvfrom)), 6, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))
+       n = int(r0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
+
+func sysconf(name int) (n int64, err error) {
+       r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procsysconf)), 1, uintptr(name), 0, 0, 0, 0, 0)
+       n = int64(r0)
+       if e1 != 0 {
+               err = e1
+       }
+       return
+}
diff --git a/vendor/golang.org/x/sys/unix/zsysctl_openbsd.go b/vendor/golang.org/x/sys/unix/zsysctl_openbsd.go
new file mode 100644 (file)
index 0000000..83bb935
--- /dev/null
@@ -0,0 +1,270 @@
+// mksysctl_openbsd.pl
+// MACHINE GENERATED BY THE ABOVE COMMAND; DO NOT EDIT
+
+package unix
+
+type mibentry struct {
+       ctlname string
+       ctloid  []_C_int
+}
+
+var sysctlMib = []mibentry{
+       {"ddb.console", []_C_int{9, 6}},
+       {"ddb.log", []_C_int{9, 7}},
+       {"ddb.max_line", []_C_int{9, 3}},
+       {"ddb.max_width", []_C_int{9, 2}},
+       {"ddb.panic", []_C_int{9, 5}},
+       {"ddb.radix", []_C_int{9, 1}},
+       {"ddb.tab_stop_width", []_C_int{9, 4}},
+       {"ddb.trigger", []_C_int{9, 8}},
+       {"fs.posix.setuid", []_C_int{3, 1, 1}},
+       {"hw.allowpowerdown", []_C_int{6, 22}},
+       {"hw.byteorder", []_C_int{6, 4}},
+       {"hw.cpuspeed", []_C_int{6, 12}},
+       {"hw.diskcount", []_C_int{6, 10}},
+       {"hw.disknames", []_C_int{6, 8}},
+       {"hw.diskstats", []_C_int{6, 9}},
+       {"hw.machine", []_C_int{6, 1}},
+       {"hw.model", []_C_int{6, 2}},
+       {"hw.ncpu", []_C_int{6, 3}},
+       {"hw.ncpufound", []_C_int{6, 21}},
+       {"hw.pagesize", []_C_int{6, 7}},
+       {"hw.physmem", []_C_int{6, 19}},
+       {"hw.product", []_C_int{6, 15}},
+       {"hw.serialno", []_C_int{6, 17}},
+       {"hw.setperf", []_C_int{6, 13}},
+       {"hw.usermem", []_C_int{6, 20}},
+       {"hw.uuid", []_C_int{6, 18}},
+       {"hw.vendor", []_C_int{6, 14}},
+       {"hw.version", []_C_int{6, 16}},
+       {"kern.arandom", []_C_int{1, 37}},
+       {"kern.argmax", []_C_int{1, 8}},
+       {"kern.boottime", []_C_int{1, 21}},
+       {"kern.bufcachepercent", []_C_int{1, 72}},
+       {"kern.ccpu", []_C_int{1, 45}},
+       {"kern.clockrate", []_C_int{1, 12}},
+       {"kern.consdev", []_C_int{1, 75}},
+       {"kern.cp_time", []_C_int{1, 40}},
+       {"kern.cp_time2", []_C_int{1, 71}},
+       {"kern.cryptodevallowsoft", []_C_int{1, 53}},
+       {"kern.domainname", []_C_int{1, 22}},
+       {"kern.file", []_C_int{1, 73}},
+       {"kern.forkstat", []_C_int{1, 42}},
+       {"kern.fscale", []_C_int{1, 46}},
+       {"kern.fsync", []_C_int{1, 33}},
+       {"kern.hostid", []_C_int{1, 11}},
+       {"kern.hostname", []_C_int{1, 10}},
+       {"kern.intrcnt.nintrcnt", []_C_int{1, 63, 1}},
+       {"kern.job_control", []_C_int{1, 19}},
+       {"kern.malloc.buckets", []_C_int{1, 39, 1}},
+       {"kern.malloc.kmemnames", []_C_int{1, 39, 3}},
+       {"kern.maxclusters", []_C_int{1, 67}},
+       {"kern.maxfiles", []_C_int{1, 7}},
+       {"kern.maxlocksperuid", []_C_int{1, 70}},
+       {"kern.maxpartitions", []_C_int{1, 23}},
+       {"kern.maxproc", []_C_int{1, 6}},
+       {"kern.maxthread", []_C_int{1, 25}},
+       {"kern.maxvnodes", []_C_int{1, 5}},
+       {"kern.mbstat", []_C_int{1, 59}},
+       {"kern.msgbuf", []_C_int{1, 48}},
+       {"kern.msgbufsize", []_C_int{1, 38}},
+       {"kern.nchstats", []_C_int{1, 41}},
+       {"kern.netlivelocks", []_C_int{1, 76}},
+       {"kern.nfiles", []_C_int{1, 56}},
+       {"kern.ngroups", []_C_int{1, 18}},
+       {"kern.nosuidcoredump", []_C_int{1, 32}},
+       {"kern.nprocs", []_C_int{1, 47}},
+       {"kern.nselcoll", []_C_int{1, 43}},
+       {"kern.nthreads", []_C_int{1, 26}},
+       {"kern.numvnodes", []_C_int{1, 58}},
+       {"kern.osrelease", []_C_int{1, 2}},
+       {"kern.osrevision", []_C_int{1, 3}},
+       {"kern.ostype", []_C_int{1, 1}},
+       {"kern.osversion", []_C_int{1, 27}},
+       {"kern.pool_debug", []_C_int{1, 77}},
+       {"kern.posix1version", []_C_int{1, 17}},
+       {"kern.proc", []_C_int{1, 66}},
+       {"kern.random", []_C_int{1, 31}},
+       {"kern.rawpartition", []_C_int{1, 24}},
+       {"kern.saved_ids", []_C_int{1, 20}},
+       {"kern.securelevel", []_C_int{1, 9}},
+       {"kern.seminfo", []_C_int{1, 61}},
+       {"kern.shminfo", []_C_int{1, 62}},
+       {"kern.somaxconn", []_C_int{1, 28}},
+       {"kern.sominconn", []_C_int{1, 29}},
+       {"kern.splassert", []_C_int{1, 54}},
+       {"kern.stackgap_random", []_C_int{1, 50}},
+       {"kern.sysvipc_info", []_C_int{1, 51}},
+       {"kern.sysvmsg", []_C_int{1, 34}},
+       {"kern.sysvsem", []_C_int{1, 35}},
+       {"kern.sysvshm", []_C_int{1, 36}},
+       {"kern.timecounter.choice", []_C_int{1, 69, 4}},
+       {"kern.timecounter.hardware", []_C_int{1, 69, 3}},
+       {"kern.timecounter.tick", []_C_int{1, 69, 1}},
+       {"kern.timecounter.timestepwarnings", []_C_int{1, 69, 2}},
+       {"kern.tty.maxptys", []_C_int{1, 44, 6}},
+       {"kern.tty.nptys", []_C_int{1, 44, 7}},
+       {"kern.tty.tk_cancc", []_C_int{1, 44, 4}},
+       {"kern.tty.tk_nin", []_C_int{1, 44, 1}},
+       {"kern.tty.tk_nout", []_C_int{1, 44, 2}},
+       {"kern.tty.tk_rawcc", []_C_int{1, 44, 3}},
+       {"kern.tty.ttyinfo", []_C_int{1, 44, 5}},
+       {"kern.ttycount", []_C_int{1, 57}},
+       {"kern.userasymcrypto", []_C_int{1, 60}},
+       {"kern.usercrypto", []_C_int{1, 52}},
+       {"kern.usermount", []_C_int{1, 30}},
+       {"kern.version", []_C_int{1, 4}},
+       {"kern.vnode", []_C_int{1, 13}},
+       {"kern.watchdog.auto", []_C_int{1, 64, 2}},
+       {"kern.watchdog.period", []_C_int{1, 64, 1}},
+       {"net.bpf.bufsize", []_C_int{4, 31, 1}},
+       {"net.bpf.maxbufsize", []_C_int{4, 31, 2}},
+       {"net.inet.ah.enable", []_C_int{4, 2, 51, 1}},
+       {"net.inet.ah.stats", []_C_int{4, 2, 51, 2}},
+       {"net.inet.carp.allow", []_C_int{4, 2, 112, 1}},
+       {"net.inet.carp.log", []_C_int{4, 2, 112, 3}},
+       {"net.inet.carp.preempt", []_C_int{4, 2, 112, 2}},
+       {"net.inet.carp.stats", []_C_int{4, 2, 112, 4}},
+       {"net.inet.divert.recvspace", []_C_int{4, 2, 258, 1}},
+       {"net.inet.divert.sendspace", []_C_int{4, 2, 258, 2}},
+       {"net.inet.divert.stats", []_C_int{4, 2, 258, 3}},
+       {"net.inet.esp.enable", []_C_int{4, 2, 50, 1}},
+       {"net.inet.esp.stats", []_C_int{4, 2, 50, 4}},
+       {"net.inet.esp.udpencap", []_C_int{4, 2, 50, 2}},
+       {"net.inet.esp.udpencap_port", []_C_int{4, 2, 50, 3}},
+       {"net.inet.etherip.allow", []_C_int{4, 2, 97, 1}},
+       {"net.inet.etherip.stats", []_C_int{4, 2, 97, 2}},
+       {"net.inet.gre.allow", []_C_int{4, 2, 47, 1}},
+       {"net.inet.gre.wccp", []_C_int{4, 2, 47, 2}},
+       {"net.inet.icmp.bmcastecho", []_C_int{4, 2, 1, 2}},
+       {"net.inet.icmp.errppslimit", []_C_int{4, 2, 1, 3}},
+       {"net.inet.icmp.maskrepl", []_C_int{4, 2, 1, 1}},
+       {"net.inet.icmp.rediraccept", []_C_int{4, 2, 1, 4}},
+       {"net.inet.icmp.redirtimeout", []_C_int{4, 2, 1, 5}},
+       {"net.inet.icmp.stats", []_C_int{4, 2, 1, 7}},
+       {"net.inet.icmp.tstamprepl", []_C_int{4, 2, 1, 6}},
+       {"net.inet.igmp.stats", []_C_int{4, 2, 2, 1}},
+       {"net.inet.ip.arpqueued", []_C_int{4, 2, 0, 36}},
+       {"net.inet.ip.encdebug", []_C_int{4, 2, 0, 12}},
+       {"net.inet.ip.forwarding", []_C_int{4, 2, 0, 1}},
+       {"net.inet.ip.ifq.congestion", []_C_int{4, 2, 0, 30, 4}},
+       {"net.inet.ip.ifq.drops", []_C_int{4, 2, 0, 30, 3}},
+       {"net.inet.ip.ifq.len", []_C_int{4, 2, 0, 30, 1}},
+       {"net.inet.ip.ifq.maxlen", []_C_int{4, 2, 0, 30, 2}},
+       {"net.inet.ip.maxqueue", []_C_int{4, 2, 0, 11}},
+       {"net.inet.ip.mforwarding", []_C_int{4, 2, 0, 31}},
+       {"net.inet.ip.mrtproto", []_C_int{4, 2, 0, 34}},
+       {"net.inet.ip.mrtstats", []_C_int{4, 2, 0, 35}},
+       {"net.inet.ip.mtu", []_C_int{4, 2, 0, 4}},
+       {"net.inet.ip.mtudisc", []_C_int{4, 2, 0, 27}},
+       {"net.inet.ip.mtudisctimeout", []_C_int{4, 2, 0, 28}},
+       {"net.inet.ip.multipath", []_C_int{4, 2, 0, 32}},
+       {"net.inet.ip.portfirst", []_C_int{4, 2, 0, 7}},
+       {"net.inet.ip.porthifirst", []_C_int{4, 2, 0, 9}},
+       {"net.inet.ip.porthilast", []_C_int{4, 2, 0, 10}},
+       {"net.inet.ip.portlast", []_C_int{4, 2, 0, 8}},
+       {"net.inet.ip.redirect", []_C_int{4, 2, 0, 2}},
+       {"net.inet.ip.sourceroute", []_C_int{4, 2, 0, 5}},
+       {"net.inet.ip.stats", []_C_int{4, 2, 0, 33}},
+       {"net.inet.ip.ttl", []_C_int{4, 2, 0, 3}},
+       {"net.inet.ipcomp.enable", []_C_int{4, 2, 108, 1}},
+       {"net.inet.ipcomp.stats", []_C_int{4, 2, 108, 2}},
+       {"net.inet.ipip.allow", []_C_int{4, 2, 4, 1}},
+       {"net.inet.ipip.stats", []_C_int{4, 2, 4, 2}},
+       {"net.inet.mobileip.allow", []_C_int{4, 2, 55, 1}},
+       {"net.inet.pfsync.stats", []_C_int{4, 2, 240, 1}},
+       {"net.inet.pim.stats", []_C_int{4, 2, 103, 1}},
+       {"net.inet.tcp.ackonpush", []_C_int{4, 2, 6, 13}},
+       {"net.inet.tcp.always_keepalive", []_C_int{4, 2, 6, 22}},
+       {"net.inet.tcp.baddynamic", []_C_int{4, 2, 6, 6}},
+       {"net.inet.tcp.drop", []_C_int{4, 2, 6, 19}},
+       {"net.inet.tcp.ecn", []_C_int{4, 2, 6, 14}},
+       {"net.inet.tcp.ident", []_C_int{4, 2, 6, 9}},
+       {"net.inet.tcp.keepidle", []_C_int{4, 2, 6, 3}},
+       {"net.inet.tcp.keepinittime", []_C_int{4, 2, 6, 2}},
+       {"net.inet.tcp.keepintvl", []_C_int{4, 2, 6, 4}},
+       {"net.inet.tcp.mssdflt", []_C_int{4, 2, 6, 11}},
+       {"net.inet.tcp.reasslimit", []_C_int{4, 2, 6, 18}},
+       {"net.inet.tcp.rfc1323", []_C_int{4, 2, 6, 1}},
+       {"net.inet.tcp.rfc3390", []_C_int{4, 2, 6, 17}},
+       {"net.inet.tcp.rstppslimit", []_C_int{4, 2, 6, 12}},
+       {"net.inet.tcp.sack", []_C_int{4, 2, 6, 10}},
+       {"net.inet.tcp.sackholelimit", []_C_int{4, 2, 6, 20}},
+       {"net.inet.tcp.slowhz", []_C_int{4, 2, 6, 5}},
+       {"net.inet.tcp.stats", []_C_int{4, 2, 6, 21}},
+       {"net.inet.tcp.synbucketlimit", []_C_int{4, 2, 6, 16}},
+       {"net.inet.tcp.syncachelimit", []_C_int{4, 2, 6, 15}},
+       {"net.inet.udp.baddynamic", []_C_int{4, 2, 17, 2}},
+       {"net.inet.udp.checksum", []_C_int{4, 2, 17, 1}},
+       {"net.inet.udp.recvspace", []_C_int{4, 2, 17, 3}},
+       {"net.inet.udp.sendspace", []_C_int{4, 2, 17, 4}},
+       {"net.inet.udp.stats", []_C_int{4, 2, 17, 5}},
+       {"net.inet6.divert.recvspace", []_C_int{4, 24, 86, 1}},
+       {"net.inet6.divert.sendspace", []_C_int{4, 24, 86, 2}},
+       {"net.inet6.divert.stats", []_C_int{4, 24, 86, 3}},
+       {"net.inet6.icmp6.errppslimit", []_C_int{4, 24, 30, 14}},
+       {"net.inet6.icmp6.mtudisc_hiwat", []_C_int{4, 24, 30, 16}},
+       {"net.inet6.icmp6.mtudisc_lowat", []_C_int{4, 24, 30, 17}},
+       {"net.inet6.icmp6.nd6_debug", []_C_int{4, 24, 30, 18}},
+       {"net.inet6.icmp6.nd6_delay", []_C_int{4, 24, 30, 8}},
+       {"net.inet6.icmp6.nd6_maxnudhint", []_C_int{4, 24, 30, 15}},
+       {"net.inet6.icmp6.nd6_mmaxtries", []_C_int{4, 24, 30, 10}},
+       {"net.inet6.icmp6.nd6_prune", []_C_int{4, 24, 30, 6}},
+       {"net.inet6.icmp6.nd6_umaxtries", []_C_int{4, 24, 30, 9}},
+       {"net.inet6.icmp6.nd6_useloopback", []_C_int{4, 24, 30, 11}},
+       {"net.inet6.icmp6.nodeinfo", []_C_int{4, 24, 30, 13}},
+       {"net.inet6.icmp6.rediraccept", []_C_int{4, 24, 30, 2}},
+       {"net.inet6.icmp6.redirtimeout", []_C_int{4, 24, 30, 3}},
+       {"net.inet6.ip6.accept_rtadv", []_C_int{4, 24, 17, 12}},
+       {"net.inet6.ip6.auto_flowlabel", []_C_int{4, 24, 17, 17}},
+       {"net.inet6.ip6.dad_count", []_C_int{4, 24, 17, 16}},
+       {"net.inet6.ip6.dad_pending", []_C_int{4, 24, 17, 49}},
+       {"net.inet6.ip6.defmcasthlim", []_C_int{4, 24, 17, 18}},
+       {"net.inet6.ip6.forwarding", []_C_int{4, 24, 17, 1}},
+       {"net.inet6.ip6.forwsrcrt", []_C_int{4, 24, 17, 5}},
+       {"net.inet6.ip6.hdrnestlimit", []_C_int{4, 24, 17, 15}},
+       {"net.inet6.ip6.hlim", []_C_int{4, 24, 17, 3}},
+       {"net.inet6.ip6.log_interval", []_C_int{4, 24, 17, 14}},
+       {"net.inet6.ip6.maxdynroutes", []_C_int{4, 24, 17, 48}},
+       {"net.inet6.ip6.maxfragpackets", []_C_int{4, 24, 17, 9}},
+       {"net.inet6.ip6.maxfrags", []_C_int{4, 24, 17, 41}},
+       {"net.inet6.ip6.maxifdefrouters", []_C_int{4, 24, 17, 47}},
+       {"net.inet6.ip6.maxifprefixes", []_C_int{4, 24, 17, 46}},
+       {"net.inet6.ip6.mforwarding", []_C_int{4, 24, 17, 42}},
+       {"net.inet6.ip6.mrtproto", []_C_int{4, 24, 17, 8}},
+       {"net.inet6.ip6.mtudisctimeout", []_C_int{4, 24, 17, 50}},
+       {"net.inet6.ip6.multicast_mtudisc", []_C_int{4, 24, 17, 44}},
+       {"net.inet6.ip6.multipath", []_C_int{4, 24, 17, 43}},
+       {"net.inet6.ip6.neighborgcthresh", []_C_int{4, 24, 17, 45}},
+       {"net.inet6.ip6.redirect", []_C_int{4, 24, 17, 2}},
+       {"net.inet6.ip6.rr_prune", []_C_int{4, 24, 17, 22}},
+       {"net.inet6.ip6.sourcecheck", []_C_int{4, 24, 17, 10}},
+       {"net.inet6.ip6.sourcecheck_logint", []_C_int{4, 24, 17, 11}},
+       {"net.inet6.ip6.use_deprecated", []_C_int{4, 24, 17, 21}},
+       {"net.inet6.ip6.v6only", []_C_int{4, 24, 17, 24}},
+       {"net.key.sadb_dump", []_C_int{4, 30, 1}},
+       {"net.key.spd_dump", []_C_int{4, 30, 2}},
+       {"net.mpls.ifq.congestion", []_C_int{4, 33, 3, 4}},
+       {"net.mpls.ifq.drops", []_C_int{4, 33, 3, 3}},
+       {"net.mpls.ifq.len", []_C_int{4, 33, 3, 1}},
+       {"net.mpls.ifq.maxlen", []_C_int{4, 33, 3, 2}},
+       {"net.mpls.mapttl_ip", []_C_int{4, 33, 5}},
+       {"net.mpls.mapttl_ip6", []_C_int{4, 33, 6}},
+       {"net.mpls.maxloop_inkernel", []_C_int{4, 33, 4}},
+       {"net.mpls.ttl", []_C_int{4, 33, 2}},
+       {"net.pflow.stats", []_C_int{4, 34, 1}},
+       {"net.pipex.enable", []_C_int{4, 35, 1}},
+       {"vm.anonmin", []_C_int{2, 7}},
+       {"vm.loadavg", []_C_int{2, 2}},
+       {"vm.maxslp", []_C_int{2, 10}},
+       {"vm.nkmempages", []_C_int{2, 6}},
+       {"vm.psstrings", []_C_int{2, 3}},
+       {"vm.swapencrypt.enable", []_C_int{2, 5, 0}},
+       {"vm.swapencrypt.keyscreated", []_C_int{2, 5, 1}},
+       {"vm.swapencrypt.keysdeleted", []_C_int{2, 5, 2}},
+       {"vm.uspace", []_C_int{2, 11}},
+       {"vm.uvmexp", []_C_int{2, 4}},
+       {"vm.vmmeter", []_C_int{2, 1}},
+       {"vm.vnodemin", []_C_int{2, 9}},
+       {"vm.vtextmin", []_C_int{2, 8}},
+}
diff --git a/vendor/golang.org/x/sys/unix/zsysnum_darwin_386.go b/vendor/golang.org/x/sys/unix/zsysnum_darwin_386.go
new file mode 100644 (file)
index 0000000..2786773
--- /dev/null
@@ -0,0 +1,398 @@
+// mksysnum_darwin.pl /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/usr/include/sys/syscall.h
+// MACHINE GENERATED BY THE ABOVE COMMAND; DO NOT EDIT
+
+// +build 386,darwin
+
+package unix
+
+const (
+       SYS_SYSCALL                        = 0
+       SYS_EXIT                           = 1
+       SYS_FORK                           = 2
+       SYS_READ                           = 3
+       SYS_WRITE                          = 4
+       SYS_OPEN                           = 5
+       SYS_CLOSE                          = 6
+       SYS_WAIT4                          = 7
+       SYS_LINK                           = 9
+       SYS_UNLINK                         = 10
+       SYS_CHDIR                          = 12
+       SYS_FCHDIR                         = 13
+       SYS_MKNOD                          = 14
+       SYS_CHMOD                          = 15
+       SYS_CHOWN                          = 16
+       SYS_GETFSSTAT                      = 18
+       SYS_GETPID                         = 20
+       SYS_SETUID                         = 23
+       SYS_GETUID                         = 24
+       SYS_GETEUID                        = 25
+       SYS_PTRACE                         = 26
+       SYS_RECVMSG                        = 27
+       SYS_SENDMSG                        = 28
+       SYS_RECVFROM                       = 29
+       SYS_ACCEPT                         = 30
+       SYS_GETPEERNAME                    = 31
+       SYS_GETSOCKNAME                    = 32
+       SYS_ACCESS                         = 33
+       SYS_CHFLAGS                        = 34
+       SYS_FCHFLAGS                       = 35
+       SYS_SYNC                           = 36
+       SYS_KILL                           = 37
+       SYS_GETPPID                        = 39
+       SYS_DUP                            = 41
+       SYS_PIPE                           = 42
+       SYS_GETEGID                        = 43
+       SYS_SIGACTION                      = 46
+       SYS_GETGID                         = 47
+       SYS_SIGPROCMASK                    = 48
+       SYS_GETLOGIN                       = 49
+       SYS_SETLOGIN                       = 50
+       SYS_ACCT                           = 51
+       SYS_SIGPENDING                     = 52
+       SYS_SIGALTSTACK                    = 53
+       SYS_IOCTL                          = 54
+       SYS_REBOOT                         = 55
+       SYS_REVOKE                         = 56
+       SYS_SYMLINK                        = 57
+       SYS_READLINK                       = 58
+       SYS_EXECVE                         = 59
+       SYS_UMASK                          = 60
+       SYS_CHROOT                         = 61
+       SYS_MSYNC                          = 65
+       SYS_VFORK                          = 66
+       SYS_MUNMAP                         = 73
+       SYS_MPROTECT                       = 74
+       SYS_MADVISE                        = 75
+       SYS_MINCORE                        = 78
+       SYS_GETGROUPS                      = 79
+       SYS_SETGROUPS                      = 80
+       SYS_GETPGRP                        = 81
+       SYS_SETPGID                        = 82
+       SYS_SETITIMER                      = 83
+       SYS_SWAPON                         = 85
+       SYS_GETITIMER                      = 86
+       SYS_GETDTABLESIZE                  = 89
+       SYS_DUP2                           = 90
+       SYS_FCNTL                          = 92
+       SYS_SELECT                         = 93
+       SYS_FSYNC                          = 95
+       SYS_SETPRIORITY                    = 96
+       SYS_SOCKET                         = 97
+       SYS_CONNECT                        = 98
+       SYS_GETPRIORITY                    = 100
+       SYS_BIND                           = 104
+       SYS_SETSOCKOPT                     = 105
+       SYS_LISTEN                         = 106
+       SYS_SIGSUSPEND                     = 111
+       SYS_GETTIMEOFDAY                   = 116
+       SYS_GETRUSAGE                      = 117
+       SYS_GETSOCKOPT                     = 118
+       SYS_READV                          = 120
+       SYS_WRITEV                         = 121
+       SYS_SETTIMEOFDAY                   = 122
+       SYS_FCHOWN                         = 123
+       SYS_FCHMOD                         = 124
+       SYS_SETREUID                       = 126
+       SYS_SETREGID                       = 127
+       SYS_RENAME                         = 128
+       SYS_FLOCK                          = 131
+       SYS_MKFIFO                         = 132
+       SYS_SENDTO                         = 133
+       SYS_SHUTDOWN                       = 134
+       SYS_SOCKETPAIR                     = 135
+       SYS_MKDIR                          = 136
+       SYS_RMDIR                          = 137
+       SYS_UTIMES                         = 138
+       SYS_FUTIMES                        = 139
+       SYS_ADJTIME                        = 140
+       SYS_GETHOSTUUID                    = 142
+       SYS_SETSID                         = 147
+       SYS_GETPGID                        = 151
+       SYS_SETPRIVEXEC                    = 152
+       SYS_PREAD                          = 153
+       SYS_PWRITE                         = 154
+       SYS_NFSSVC                         = 155
+       SYS_STATFS                         = 157
+       SYS_FSTATFS                        = 158
+       SYS_UNMOUNT                        = 159
+       SYS_GETFH                          = 161
+       SYS_QUOTACTL                       = 165
+       SYS_MOUNT                          = 167
+       SYS_CSOPS                          = 169
+       SYS_CSOPS_AUDITTOKEN               = 170
+       SYS_WAITID                         = 173
+       SYS_KDEBUG_TRACE64                 = 179
+       SYS_KDEBUG_TRACE                   = 180
+       SYS_SETGID                         = 181
+       SYS_SETEGID                        = 182
+       SYS_SETEUID                        = 183
+       SYS_SIGRETURN                      = 184
+       SYS_CHUD                           = 185
+       SYS_FDATASYNC                      = 187
+       SYS_STAT                           = 188
+       SYS_FSTAT                          = 189
+       SYS_LSTAT                          = 190
+       SYS_PATHCONF                       = 191
+       SYS_FPATHCONF                      = 192
+       SYS_GETRLIMIT                      = 194
+       SYS_SETRLIMIT                      = 195
+       SYS_GETDIRENTRIES                  = 196
+       SYS_MMAP                           = 197
+       SYS_LSEEK                          = 199
+       SYS_TRUNCATE                       = 200
+       SYS_FTRUNCATE                      = 201
+       SYS_SYSCTL                         = 202
+       SYS_MLOCK                          = 203
+       SYS_MUNLOCK                        = 204
+       SYS_UNDELETE                       = 205
+       SYS_OPEN_DPROTECTED_NP             = 216
+       SYS_GETATTRLIST                    = 220
+       SYS_SETATTRLIST                    = 221
+       SYS_GETDIRENTRIESATTR              = 222
+       SYS_EXCHANGEDATA                   = 223
+       SYS_SEARCHFS                       = 225
+       SYS_DELETE                         = 226
+       SYS_COPYFILE                       = 227
+       SYS_FGETATTRLIST                   = 228
+       SYS_FSETATTRLIST                   = 229
+       SYS_POLL                           = 230
+       SYS_WATCHEVENT                     = 231
+       SYS_WAITEVENT                      = 232
+       SYS_MODWATCH                       = 233
+       SYS_GETXATTR                       = 234
+       SYS_FGETXATTR                      = 235
+       SYS_SETXATTR                       = 236
+       SYS_FSETXATTR                      = 237
+       SYS_REMOVEXATTR                    = 238
+       SYS_FREMOVEXATTR                   = 239
+       SYS_LISTXATTR                      = 240
+       SYS_FLISTXATTR                     = 241
+       SYS_FSCTL                          = 242
+       SYS_INITGROUPS                     = 243
+       SYS_POSIX_SPAWN                    = 244
+       SYS_FFSCTL                         = 245
+       SYS_NFSCLNT                        = 247
+       SYS_FHOPEN                         = 248
+       SYS_MINHERIT                       = 250
+       SYS_SEMSYS                         = 251
+       SYS_MSGSYS                         = 252
+       SYS_SHMSYS                         = 253
+       SYS_SEMCTL                         = 254
+       SYS_SEMGET                         = 255
+       SYS_SEMOP                          = 256
+       SYS_MSGCTL                         = 258
+       SYS_MSGGET                         = 259
+       SYS_MSGSND                         = 260
+       SYS_MSGRCV                         = 261
+       SYS_SHMAT                          = 262
+       SYS_SHMCTL                         = 263
+       SYS_SHMDT                          = 264
+       SYS_SHMGET                         = 265
+       SYS_SHM_OPEN                       = 266
+       SYS_SHM_UNLINK                     = 267
+       SYS_SEM_OPEN                       = 268
+       SYS_SEM_CLOSE                      = 269
+       SYS_SEM_UNLINK                     = 270
+       SYS_SEM_WAIT                       = 271
+       SYS_SEM_TRYWAIT                    = 272
+       SYS_SEM_POST                       = 273
+       SYS_SYSCTLBYNAME                   = 274
+       SYS_OPEN_EXTENDED                  = 277
+       SYS_UMASK_EXTENDED                 = 278
+       SYS_STAT_EXTENDED                  = 279
+       SYS_LSTAT_EXTENDED                 = 280
+       SYS_FSTAT_EXTENDED                 = 281
+       SYS_CHMOD_EXTENDED                 = 282
+       SYS_FCHMOD_EXTENDED                = 283
+       SYS_ACCESS_EXTENDED                = 284
+       SYS_SETTID                         = 285
+       SYS_GETTID                         = 286
+       SYS_SETSGROUPS                     = 287
+       SYS_GETSGROUPS                     = 288
+       SYS_SETWGROUPS                     = 289
+       SYS_GETWGROUPS                     = 290
+       SYS_MKFIFO_EXTENDED                = 291
+       SYS_MKDIR_EXTENDED                 = 292
+       SYS_IDENTITYSVC                    = 293
+       SYS_SHARED_REGION_CHECK_NP         = 294
+       SYS_VM_PRESSURE_MONITOR            = 296
+       SYS_PSYNCH_RW_LONGRDLOCK           = 297
+       SYS_PSYNCH_RW_YIELDWRLOCK          = 298
+       SYS_PSYNCH_RW_DOWNGRADE            = 299
+       SYS_PSYNCH_RW_UPGRADE              = 300
+       SYS_PSYNCH_MUTEXWAIT               = 301
+       SYS_PSYNCH_MUTEXDROP               = 302
+       SYS_PSYNCH_CVBROAD                 = 303
+       SYS_PSYNCH_CVSIGNAL                = 304
+       SYS_PSYNCH_CVWAIT                  = 305
+       SYS_PSYNCH_RW_RDLOCK               = 306
+       SYS_PSYNCH_RW_WRLOCK               = 307
+       SYS_PSYNCH_RW_UNLOCK               = 308
+       SYS_PSYNCH_RW_UNLOCK2              = 309
+       SYS_GETSID                         = 310
+       SYS_SETTID_WITH_PID                = 311
+       SYS_PSYNCH_CVCLRPREPOST            = 312
+       SYS_AIO_FSYNC                      = 313
+       SYS_AIO_RETURN                     = 314
+       SYS_AIO_SUSPEND                    = 315
+       SYS_AIO_CANCEL                     = 316
+       SYS_AIO_ERROR                      = 317
+       SYS_AIO_READ                       = 318
+       SYS_AIO_WRITE                      = 319
+       SYS_LIO_LISTIO                     = 320
+       SYS_IOPOLICYSYS                    = 322
+       SYS_PROCESS_POLICY                 = 323
+       SYS_MLOCKALL                       = 324
+       SYS_MUNLOCKALL                     = 325
+       SYS_ISSETUGID                      = 327
+       SYS___PTHREAD_KILL                 = 328
+       SYS___PTHREAD_SIGMASK              = 329
+       SYS___SIGWAIT                      = 330
+       SYS___DISABLE_THREADSIGNAL         = 331
+       SYS___PTHREAD_MARKCANCEL           = 332
+       SYS___PTHREAD_CANCELED             = 333
+       SYS___SEMWAIT_SIGNAL               = 334
+       SYS_PROC_INFO                      = 336
+       SYS_SENDFILE                       = 337
+       SYS_STAT64                         = 338
+       SYS_FSTAT64                        = 339
+       SYS_LSTAT64                        = 340
+       SYS_STAT64_EXTENDED                = 341
+       SYS_LSTAT64_EXTENDED               = 342
+       SYS_FSTAT64_EXTENDED               = 343
+       SYS_GETDIRENTRIES64                = 344
+       SYS_STATFS64                       = 345
+       SYS_FSTATFS64                      = 346
+       SYS_GETFSSTAT64                    = 347
+       SYS___PTHREAD_CHDIR                = 348
+       SYS___PTHREAD_FCHDIR               = 349
+       SYS_AUDIT                          = 350
+       SYS_AUDITON                        = 351
+       SYS_GETAUID                        = 353
+       SYS_SETAUID                        = 354
+       SYS_GETAUDIT_ADDR                  = 357
+       SYS_SETAUDIT_ADDR                  = 358
+       SYS_AUDITCTL                       = 359
+       SYS_BSDTHREAD_CREATE               = 360
+       SYS_BSDTHREAD_TERMINATE            = 361
+       SYS_KQUEUE                         = 362
+       SYS_KEVENT                         = 363
+       SYS_LCHOWN                         = 364
+       SYS_STACK_SNAPSHOT                 = 365
+       SYS_BSDTHREAD_REGISTER             = 366
+       SYS_WORKQ_OPEN                     = 367
+       SYS_WORKQ_KERNRETURN               = 368
+       SYS_KEVENT64                       = 369
+       SYS___OLD_SEMWAIT_SIGNAL           = 370
+       SYS___OLD_SEMWAIT_SIGNAL_NOCANCEL  = 371
+       SYS_THREAD_SELFID                  = 372
+       SYS_LEDGER                         = 373
+       SYS___MAC_EXECVE                   = 380
+       SYS___MAC_SYSCALL                  = 381
+       SYS___MAC_GET_FILE                 = 382
+       SYS___MAC_SET_FILE                 = 383
+       SYS___MAC_GET_LINK                 = 384
+       SYS___MAC_SET_LINK                 = 385
+       SYS___MAC_GET_PROC                 = 386
+       SYS___MAC_SET_PROC                 = 387
+       SYS___MAC_GET_FD                   = 388
+       SYS___MAC_SET_FD                   = 389
+       SYS___MAC_GET_PID                  = 390
+       SYS___MAC_GET_LCID                 = 391
+       SYS___MAC_GET_LCTX                 = 392
+       SYS___MAC_SET_LCTX                 = 393
+       SYS_SETLCID                        = 394
+       SYS_GETLCID                        = 395
+       SYS_READ_NOCANCEL                  = 396
+       SYS_WRITE_NOCANCEL                 = 397
+       SYS_OPEN_NOCANCEL                  = 398
+       SYS_CLOSE_NOCANCEL                 = 399
+       SYS_WAIT4_NOCANCEL                 = 400
+       SYS_RECVMSG_NOCANCEL               = 401
+       SYS_SENDMSG_NOCANCEL               = 402
+       SYS_RECVFROM_NOCANCEL              = 403
+       SYS_ACCEPT_NOCANCEL                = 404
+       SYS_MSYNC_NOCANCEL                 = 405
+       SYS_FCNTL_NOCANCEL                 = 406
+       SYS_SELECT_NOCANCEL                = 407
+       SYS_FSYNC_NOCANCEL                 = 408
+       SYS_CONNECT_NOCANCEL               = 409
+       SYS_SIGSUSPEND_NOCANCEL            = 410
+       SYS_READV_NOCANCEL                 = 411
+       SYS_WRITEV_NOCANCEL                = 412
+       SYS_SENDTO_NOCANCEL                = 413
+       SYS_PREAD_NOCANCEL                 = 414
+       SYS_PWRITE_NOCANCEL                = 415
+       SYS_WAITID_NOCANCEL                = 416
+       SYS_POLL_NOCANCEL                  = 417
+       SYS_MSGSND_NOCANCEL                = 418
+       SYS_MSGRCV_NOCANCEL                = 419
+       SYS_SEM_WAIT_NOCANCEL              = 420
+       SYS_AIO_SUSPEND_NOCANCEL           = 421
+       SYS___SIGWAIT_NOCANCEL             = 422
+       SYS___SEMWAIT_SIGNAL_NOCANCEL      = 423
+       SYS___MAC_MOUNT                    = 424
+       SYS___MAC_GET_MOUNT                = 425
+       SYS___MAC_GETFSSTAT                = 426
+       SYS_FSGETPATH                      = 427
+       SYS_AUDIT_SESSION_SELF             = 428
+       SYS_AUDIT_SESSION_JOIN             = 429
+       SYS_FILEPORT_MAKEPORT              = 430
+       SYS_FILEPORT_MAKEFD                = 431
+       SYS_AUDIT_SESSION_PORT             = 432
+       SYS_PID_SUSPEND                    = 433
+       SYS_PID_RESUME                     = 434
+       SYS_PID_HIBERNATE                  = 435
+       SYS_PID_SHUTDOWN_SOCKETS           = 436
+       SYS_SHARED_REGION_MAP_AND_SLIDE_NP = 438
+       SYS_KAS_INFO                       = 439
+       SYS_MEMORYSTATUS_CONTROL           = 440
+       SYS_GUARDED_OPEN_NP                = 441
+       SYS_GUARDED_CLOSE_NP               = 442
+       SYS_GUARDED_KQUEUE_NP              = 443
+       SYS_CHANGE_FDGUARD_NP              = 444
+       SYS_PROC_RLIMIT_CONTROL            = 446
+       SYS_CONNECTX                       = 447
+       SYS_DISCONNECTX                    = 448
+       SYS_PEELOFF                        = 449
+       SYS_SOCKET_DELEGATE                = 450
+       SYS_TELEMETRY                      = 451
+       SYS_PROC_UUID_POLICY               = 452
+       SYS_MEMORYSTATUS_GET_LEVEL         = 453
+       SYS_SYSTEM_OVERRIDE                = 454
+       SYS_VFS_PURGE                      = 455
+       SYS_SFI_CTL                        = 456
+       SYS_SFI_PIDCTL                     = 457
+       SYS_COALITION                      = 458
+       SYS_COALITION_INFO                 = 459
+       SYS_NECP_MATCH_POLICY              = 460
+       SYS_GETATTRLISTBULK                = 461
+       SYS_OPENAT                         = 463
+       SYS_OPENAT_NOCANCEL                = 464
+       SYS_RENAMEAT                       = 465
+       SYS_FACCESSAT                      = 466
+       SYS_FCHMODAT                       = 467
+       SYS_FCHOWNAT                       = 468
+       SYS_FSTATAT                        = 469
+       SYS_FSTATAT64                      = 470
+       SYS_LINKAT                         = 471
+       SYS_UNLINKAT                       = 472
+       SYS_READLINKAT                     = 473
+       SYS_SYMLINKAT                      = 474
+       SYS_MKDIRAT                        = 475
+       SYS_GETATTRLISTAT                  = 476
+       SYS_PROC_TRACE_LOG                 = 477
+       SYS_BSDTHREAD_CTL                  = 478
+       SYS_OPENBYID_NP                    = 479
+       SYS_RECVMSG_X                      = 480
+       SYS_SENDMSG_X                      = 481
+       SYS_THREAD_SELFUSAGE               = 482
+       SYS_CSRCTL                         = 483
+       SYS_GUARDED_OPEN_DPROTECTED_NP     = 484
+       SYS_GUARDED_WRITE_NP               = 485
+       SYS_GUARDED_PWRITE_NP              = 486
+       SYS_GUARDED_WRITEV_NP              = 487
+       SYS_RENAME_EXT                     = 488
+       SYS_MREMAP_ENCRYPTED               = 489
+       SYS_MAXSYSCALL                     = 490
+)
diff --git a/vendor/golang.org/x/sys/unix/zsysnum_darwin_amd64.go b/vendor/golang.org/x/sys/unix/zsysnum_darwin_amd64.go
new file mode 100644 (file)
index 0000000..09de240
--- /dev/null
@@ -0,0 +1,398 @@
+// mksysnum_darwin.pl /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/usr/include/sys/syscall.h
+// MACHINE GENERATED BY THE ABOVE COMMAND; DO NOT EDIT
+
+// +build amd64,darwin
+
+package unix
+
+const (
+       SYS_SYSCALL                        = 0
+       SYS_EXIT                           = 1
+       SYS_FORK                           = 2
+       SYS_READ                           = 3
+       SYS_WRITE                          = 4
+       SYS_OPEN                           = 5
+       SYS_CLOSE                          = 6
+       SYS_WAIT4                          = 7
+       SYS_LINK                           = 9
+       SYS_UNLINK                         = 10
+       SYS_CHDIR                          = 12
+       SYS_FCHDIR                         = 13
+       SYS_MKNOD                          = 14
+       SYS_CHMOD                          = 15
+       SYS_CHOWN                          = 16
+       SYS_GETFSSTAT                      = 18
+       SYS_GETPID                         = 20
+       SYS_SETUID                         = 23
+       SYS_GETUID                         = 24
+       SYS_GETEUID                        = 25
+       SYS_PTRACE                         = 26
+       SYS_RECVMSG                        = 27
+       SYS_SENDMSG                        = 28
+       SYS_RECVFROM                       = 29
+       SYS_ACCEPT                         = 30
+       SYS_GETPEERNAME                    = 31
+       SYS_GETSOCKNAME                    = 32
+       SYS_ACCESS                         = 33
+       SYS_CHFLAGS                        = 34
+       SYS_FCHFLAGS                       = 35
+       SYS_SYNC                           = 36
+       SYS_KILL                           = 37
+       SYS_GETPPID                        = 39
+       SYS_DUP                            = 41
+       SYS_PIPE                           = 42
+       SYS_GETEGID                        = 43
+       SYS_SIGACTION                      = 46
+       SYS_GETGID                         = 47
+       SYS_SIGPROCMASK                    = 48
+       SYS_GETLOGIN                       = 49
+       SYS_SETLOGIN                       = 50
+       SYS_ACCT                           = 51
+       SYS_SIGPENDING                     = 52
+       SYS_SIGALTSTACK                    = 53
+       SYS_IOCTL                          = 54
+       SYS_REBOOT                         = 55
+       SYS_REVOKE                         = 56
+       SYS_SYMLINK                        = 57
+       SYS_READLINK                       = 58
+       SYS_EXECVE                         = 59
+       SYS_UMASK                          = 60
+       SYS_CHROOT                         = 61
+       SYS_MSYNC                          = 65
+       SYS_VFORK                          = 66
+       SYS_MUNMAP                         = 73
+       SYS_MPROTECT                       = 74
+       SYS_MADVISE                        = 75
+       SYS_MINCORE                        = 78
+       SYS_GETGROUPS                      = 79
+       SYS_SETGROUPS                      = 80
+       SYS_GETPGRP                        = 81
+       SYS_SETPGID                        = 82
+       SYS_SETITIMER                      = 83
+       SYS_SWAPON                         = 85
+       SYS_GETITIMER                      = 86
+       SYS_GETDTABLESIZE                  = 89
+       SYS_DUP2                           = 90
+       SYS_FCNTL                          = 92
+       SYS_SELECT                         = 93
+       SYS_FSYNC                          = 95
+       SYS_SETPRIORITY                    = 96
+       SYS_SOCKET                         = 97
+       SYS_CONNECT                        = 98
+       SYS_GETPRIORITY                    = 100
+       SYS_BIND                           = 104
+       SYS_SETSOCKOPT                     = 105
+       SYS_LISTEN                         = 106
+       SYS_SIGSUSPEND                     = 111
+       SYS_GETTIMEOFDAY                   = 116
+       SYS_GETRUSAGE                      = 117
+       SYS_GETSOCKOPT                     = 118
+       SYS_READV                          = 120
+       SYS_WRITEV                         = 121
+       SYS_SETTIMEOFDAY                   = 122
+       SYS_FCHOWN                         = 123
+       SYS_FCHMOD                         = 124
+       SYS_SETREUID                       = 126
+       SYS_SETREGID                       = 127
+       SYS_RENAME                         = 128
+       SYS_FLOCK                          = 131
+       SYS_MKFIFO                         = 132
+       SYS_SENDTO                         = 133
+       SYS_SHUTDOWN                       = 134
+       SYS_SOCKETPAIR                     = 135
+       SYS_MKDIR                          = 136
+       SYS_RMDIR                          = 137
+       SYS_UTIMES                         = 138
+       SYS_FUTIMES                        = 139
+       SYS_ADJTIME                        = 140
+       SYS_GETHOSTUUID                    = 142
+       SYS_SETSID                         = 147
+       SYS_GETPGID                        = 151
+       SYS_SETPRIVEXEC                    = 152
+       SYS_PREAD                          = 153
+       SYS_PWRITE                         = 154
+       SYS_NFSSVC                         = 155
+       SYS_STATFS                         = 157
+       SYS_FSTATFS                        = 158
+       SYS_UNMOUNT                        = 159
+       SYS_GETFH                          = 161
+       SYS_QUOTACTL                       = 165
+       SYS_MOUNT                          = 167
+       SYS_CSOPS                          = 169
+       SYS_CSOPS_AUDITTOKEN               = 170
+       SYS_WAITID                         = 173
+       SYS_KDEBUG_TRACE64                 = 179
+       SYS_KDEBUG_TRACE                   = 180
+       SYS_SETGID                         = 181
+       SYS_SETEGID                        = 182
+       SYS_SETEUID                        = 183
+       SYS_SIGRETURN                      = 184
+       SYS_CHUD                           = 185
+       SYS_FDATASYNC                      = 187
+       SYS_STAT                           = 188
+       SYS_FSTAT                          = 189
+       SYS_LSTAT                          = 190
+       SYS_PATHCONF                       = 191
+       SYS_FPATHCONF                      = 192
+       SYS_GETRLIMIT                      = 194
+       SYS_SETRLIMIT                      = 195
+       SYS_GETDIRENTRIES                  = 196
+       SYS_MMAP                           = 197
+       SYS_LSEEK                          = 199
+       SYS_TRUNCATE                       = 200
+       SYS_FTRUNCATE                      = 201
+       SYS_SYSCTL                         = 202
+       SYS_MLOCK                          = 203
+       SYS_MUNLOCK                        = 204
+       SYS_UNDELETE                       = 205
+       SYS_OPEN_DPROTECTED_NP             = 216
+       SYS_GETATTRLIST                    = 220
+       SYS_SETATTRLIST                    = 221
+       SYS_GETDIRENTRIESATTR              = 222
+       SYS_EXCHANGEDATA                   = 223
+       SYS_SEARCHFS                       = 225
+       SYS_DELETE                         = 226
+       SYS_COPYFILE                       = 227
+       SYS_FGETATTRLIST                   = 228
+       SYS_FSETATTRLIST                   = 229
+       SYS_POLL                           = 230
+       SYS_WATCHEVENT                     = 231
+       SYS_WAITEVENT                      = 232
+       SYS_MODWATCH                       = 233
+       SYS_GETXATTR                       = 234
+       SYS_FGETXATTR                      = 235
+       SYS_SETXATTR                       = 236
+       SYS_FSETXATTR                      = 237
+       SYS_REMOVEXATTR                    = 238
+       SYS_FREMOVEXATTR                   = 239
+       SYS_LISTXATTR                      = 240
+       SYS_FLISTXATTR                     = 241
+       SYS_FSCTL                          = 242
+       SYS_INITGROUPS                     = 243
+       SYS_POSIX_SPAWN                    = 244
+       SYS_FFSCTL                         = 245
+       SYS_NFSCLNT                        = 247
+       SYS_FHOPEN                         = 248
+       SYS_MINHERIT                       = 250
+       SYS_SEMSYS                         = 251
+       SYS_MSGSYS                         = 252
+       SYS_SHMSYS                         = 253
+       SYS_SEMCTL                         = 254
+       SYS_SEMGET                         = 255
+       SYS_SEMOP                          = 256
+       SYS_MSGCTL                         = 258
+       SYS_MSGGET                         = 259
+       SYS_MSGSND                         = 260
+       SYS_MSGRCV                         = 261
+       SYS_SHMAT                          = 262
+       SYS_SHMCTL                         = 263
+       SYS_SHMDT                          = 264
+       SYS_SHMGET                         = 265
+       SYS_SHM_OPEN                       = 266
+       SYS_SHM_UNLINK                     = 267
+       SYS_SEM_OPEN                       = 268
+       SYS_SEM_CLOSE                      = 269
+       SYS_SEM_UNLINK                     = 270
+       SYS_SEM_WAIT                       = 271
+       SYS_SEM_TRYWAIT                    = 272
+       SYS_SEM_POST                       = 273
+       SYS_SYSCTLBYNAME                   = 274
+       SYS_OPEN_EXTENDED                  = 277
+       SYS_UMASK_EXTENDED                 = 278
+       SYS_STAT_EXTENDED                  = 279
+       SYS_LSTAT_EXTENDED                 = 280
+       SYS_FSTAT_EXTENDED                 = 281
+       SYS_CHMOD_EXTENDED                 = 282
+       SYS_FCHMOD_EXTENDED                = 283
+       SYS_ACCESS_EXTENDED                = 284
+       SYS_SETTID                         = 285
+       SYS_GETTID                         = 286
+       SYS_SETSGROUPS                     = 287
+       SYS_GETSGROUPS                     = 288
+       SYS_SETWGROUPS                     = 289
+       SYS_GETWGROUPS                     = 290
+       SYS_MKFIFO_EXTENDED                = 291
+       SYS_MKDIR_EXTENDED                 = 292
+       SYS_IDENTITYSVC                    = 293
+       SYS_SHARED_REGION_CHECK_NP         = 294
+       SYS_VM_PRESSURE_MONITOR            = 296
+       SYS_PSYNCH_RW_LONGRDLOCK           = 297
+       SYS_PSYNCH_RW_YIELDWRLOCK          = 298
+       SYS_PSYNCH_RW_DOWNGRADE            = 299
+       SYS_PSYNCH_RW_UPGRADE              = 300
+       SYS_PSYNCH_MUTEXWAIT               = 301
+       SYS_PSYNCH_MUTEXDROP               = 302
+       SYS_PSYNCH_CVBROAD                 = 303
+       SYS_PSYNCH_CVSIGNAL                = 304
+       SYS_PSYNCH_CVWAIT                  = 305
+       SYS_PSYNCH_RW_RDLOCK               = 306
+       SYS_PSYNCH_RW_WRLOCK               = 307
+       SYS_PSYNCH_RW_UNLOCK               = 308
+       SYS_PSYNCH_RW_UNLOCK2              = 309
+       SYS_GETSID                         = 310
+       SYS_SETTID_WITH_PID                = 311
+       SYS_PSYNCH_CVCLRPREPOST            = 312
+       SYS_AIO_FSYNC                      = 313
+       SYS_AIO_RETURN                     = 314
+       SYS_AIO_SUSPEND                    = 315
+       SYS_AIO_CANCEL                     = 316
+       SYS_AIO_ERROR                      = 317
+       SYS_AIO_READ                       = 318
+       SYS_AIO_WRITE                      = 319
+       SYS_LIO_LISTIO                     = 320
+       SYS_IOPOLICYSYS                    = 322
+       SYS_PROCESS_POLICY                 = 323
+       SYS_MLOCKALL                       = 324
+       SYS_MUNLOCKALL                     = 325
+       SYS_ISSETUGID                      = 327
+       SYS___PTHREAD_KILL                 = 328
+       SYS___PTHREAD_SIGMASK              = 329
+       SYS___SIGWAIT                      = 330
+       SYS___DISABLE_THREADSIGNAL         = 331
+       SYS___PTHREAD_MARKCANCEL           = 332
+       SYS___PTHREAD_CANCELED             = 333
+       SYS___SEMWAIT_SIGNAL               = 334
+       SYS_PROC_INFO                      = 336
+       SYS_SENDFILE                       = 337
+       SYS_STAT64                         = 338
+       SYS_FSTAT64                        = 339
+       SYS_LSTAT64                        = 340
+       SYS_STAT64_EXTENDED                = 341
+       SYS_LSTAT64_EXTENDED               = 342
+       SYS_FSTAT64_EXTENDED               = 343
+       SYS_GETDIRENTRIES64                = 344
+       SYS_STATFS64                       = 345
+       SYS_FSTATFS64                      = 346
+       SYS_GETFSSTAT64                    = 347
+       SYS___PTHREAD_CHDIR                = 348
+       SYS___PTHREAD_FCHDIR               = 349
+       SYS_AUDIT                          = 350
+       SYS_AUDITON                        = 351
+       SYS_GETAUID                        = 353
+       SYS_SETAUID                        = 354
+       SYS_GETAUDIT_ADDR                  = 357
+       SYS_SETAUDIT_ADDR                  = 358
+       SYS_AUDITCTL                       = 359
+       SYS_BSDTHREAD_CREATE               = 360
+       SYS_BSDTHREAD_TERMINATE            = 361
+       SYS_KQUEUE                         = 362
+       SYS_KEVENT                         = 363
+       SYS_LCHOWN                         = 364
+       SYS_STACK_SNAPSHOT                 = 365
+       SYS_BSDTHREAD_REGISTER             = 366
+       SYS_WORKQ_OPEN                     = 367
+       SYS_WORKQ_KERNRETURN               = 368
+       SYS_KEVENT64                       = 369
+       SYS___OLD_SEMWAIT_SIGNAL           = 370
+       SYS___OLD_SEMWAIT_SIGNAL_NOCANCEL  = 371
+       SYS_THREAD_SELFID                  = 372
+       SYS_LEDGER                         = 373
+       SYS___MAC_EXECVE                   = 380
+       SYS___MAC_SYSCALL                  = 381
+       SYS___MAC_GET_FILE                 = 382
+       SYS___MAC_SET_FILE                 = 383
+       SYS___MAC_GET_LINK                 = 384
+       SYS___MAC_SET_LINK                 = 385
+       SYS___MAC_GET_PROC                 = 386
+       SYS___MAC_SET_PROC                 = 387
+       SYS___MAC_GET_FD                   = 388
+       SYS___MAC_SET_FD                   = 389
+       SYS___MAC_GET_PID                  = 390
+       SYS___MAC_GET_LCID                 = 391
+       SYS___MAC_GET_LCTX                 = 392
+       SYS___MAC_SET_LCTX                 = 393
+       SYS_SETLCID                        = 394
+       SYS_GETLCID                        = 395
+       SYS_READ_NOCANCEL                  = 396
+       SYS_WRITE_NOCANCEL                 = 397
+       SYS_OPEN_NOCANCEL                  = 398
+       SYS_CLOSE_NOCANCEL                 = 399
+       SYS_WAIT4_NOCANCEL                 = 400
+       SYS_RECVMSG_NOCANCEL               = 401
+       SYS_SENDMSG_NOCANCEL               = 402
+       SYS_RECVFROM_NOCANCEL              = 403
+       SYS_ACCEPT_NOCANCEL                = 404
+       SYS_MSYNC_NOCANCEL                 = 405
+       SYS_FCNTL_NOCANCEL                 = 406
+       SYS_SELECT_NOCANCEL                = 407
+       SYS_FSYNC_NOCANCEL                 = 408
+       SYS_CONNECT_NOCANCEL               = 409
+       SYS_SIGSUSPEND_NOCANCEL            = 410
+       SYS_READV_NOCANCEL                 = 411
+       SYS_WRITEV_NOCANCEL                = 412
+       SYS_SENDTO_NOCANCEL                = 413
+       SYS_PREAD_NOCANCEL                 = 414
+       SYS_PWRITE_NOCANCEL                = 415
+       SYS_WAITID_NOCANCEL                = 416
+       SYS_POLL_NOCANCEL                  = 417
+       SYS_MSGSND_NOCANCEL                = 418
+       SYS_MSGRCV_NOCANCEL                = 419
+       SYS_SEM_WAIT_NOCANCEL              = 420
+       SYS_AIO_SUSPEND_NOCANCEL           = 421
+       SYS___SIGWAIT_NOCANCEL             = 422
+       SYS___SEMWAIT_SIGNAL_NOCANCEL      = 423
+       SYS___MAC_MOUNT                    = 424
+       SYS___MAC_GET_MOUNT                = 425
+       SYS___MAC_GETFSSTAT                = 426
+       SYS_FSGETPATH                      = 427
+       SYS_AUDIT_SESSION_SELF             = 428
+       SYS_AUDIT_SESSION_JOIN             = 429
+       SYS_FILEPORT_MAKEPORT              = 430
+       SYS_FILEPORT_MAKEFD                = 431
+       SYS_AUDIT_SESSION_PORT             = 432
+       SYS_PID_SUSPEND                    = 433
+       SYS_PID_RESUME                     = 434
+       SYS_PID_HIBERNATE                  = 435
+       SYS_PID_SHUTDOWN_SOCKETS           = 436
+       SYS_SHARED_REGION_MAP_AND_SLIDE_NP = 438
+       SYS_KAS_INFO                       = 439
+       SYS_MEMORYSTATUS_CONTROL           = 440
+       SYS_GUARDED_OPEN_NP                = 441
+       SYS_GUARDED_CLOSE_NP               = 442
+       SYS_GUARDED_KQUEUE_NP              = 443
+       SYS_CHANGE_FDGUARD_NP              = 444
+       SYS_PROC_RLIMIT_CONTROL            = 446
+       SYS_CONNECTX                       = 447
+       SYS_DISCONNECTX                    = 448
+       SYS_PEELOFF                        = 449
+       SYS_SOCKET_DELEGATE                = 450
+       SYS_TELEMETRY                      = 451
+       SYS_PROC_UUID_POLICY               = 452
+       SYS_MEMORYSTATUS_GET_LEVEL         = 453
+       SYS_SYSTEM_OVERRIDE                = 454
+       SYS_VFS_PURGE                      = 455
+       SYS_SFI_CTL                        = 456
+       SYS_SFI_PIDCTL                     = 457
+       SYS_COALITION                      = 458
+       SYS_COALITION_INFO                 = 459
+       SYS_NECP_MATCH_POLICY              = 460
+       SYS_GETATTRLISTBULK                = 461
+       SYS_OPENAT                         = 463
+       SYS_OPENAT_NOCANCEL                = 464
+       SYS_RENAMEAT                       = 465
+       SYS_FACCESSAT                      = 466
+       SYS_FCHMODAT                       = 467
+       SYS_FCHOWNAT                       = 468
+       SYS_FSTATAT                        = 469
+       SYS_FSTATAT64                      = 470
+       SYS_LINKAT                         = 471
+       SYS_UNLINKAT                       = 472
+       SYS_READLINKAT                     = 473
+       SYS_SYMLINKAT                      = 474
+       SYS_MKDIRAT                        = 475
+       SYS_GETATTRLISTAT                  = 476
+       SYS_PROC_TRACE_LOG                 = 477
+       SYS_BSDTHREAD_CTL                  = 478
+       SYS_OPENBYID_NP                    = 479
+       SYS_RECVMSG_X                      = 480
+       SYS_SENDMSG_X                      = 481
+       SYS_THREAD_SELFUSAGE               = 482
+       SYS_CSRCTL                         = 483
+       SYS_GUARDED_OPEN_DPROTECTED_NP     = 484
+       SYS_GUARDED_WRITE_NP               = 485
+       SYS_GUARDED_PWRITE_NP              = 486
+       SYS_GUARDED_WRITEV_NP              = 487
+       SYS_RENAME_EXT                     = 488
+       SYS_MREMAP_ENCRYPTED               = 489
+       SYS_MAXSYSCALL                     = 490
+)
diff --git a/vendor/golang.org/x/sys/unix/zsysnum_darwin_arm.go b/vendor/golang.org/x/sys/unix/zsysnum_darwin_arm.go
new file mode 100644 (file)
index 0000000..41cb6ed
--- /dev/null
@@ -0,0 +1,426 @@
+// mksysnum_darwin.pl /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.2.sdk/usr/include/sys/syscall.h
+// Code generated by the command above; see README.md. DO NOT EDIT.
+
+// +build arm,darwin
+
+package unix
+
+const (
+       SYS_SYSCALL                        = 0
+       SYS_EXIT                           = 1
+       SYS_FORK                           = 2
+       SYS_READ                           = 3
+       SYS_WRITE                          = 4
+       SYS_OPEN                           = 5
+       SYS_CLOSE                          = 6
+       SYS_WAIT4                          = 7
+       SYS_LINK                           = 9
+       SYS_UNLINK                         = 10
+       SYS_CHDIR                          = 12
+       SYS_FCHDIR                         = 13
+       SYS_MKNOD                          = 14
+       SYS_CHMOD                          = 15
+       SYS_CHOWN                          = 16
+       SYS_GETFSSTAT                      = 18
+       SYS_GETPID                         = 20
+       SYS_SETUID                         = 23
+       SYS_GETUID                         = 24
+       SYS_GETEUID                        = 25
+       SYS_PTRACE                         = 26
+       SYS_RECVMSG                        = 27
+       SYS_SENDMSG                        = 28
+       SYS_RECVFROM                       = 29
+       SYS_ACCEPT                         = 30
+       SYS_GETPEERNAME                    = 31
+       SYS_GETSOCKNAME                    = 32
+       SYS_ACCESS                         = 33
+       SYS_CHFLAGS                        = 34
+       SYS_FCHFLAGS                       = 35
+       SYS_SYNC                           = 36
+       SYS_KILL                           = 37
+       SYS_GETPPID                        = 39
+       SYS_DUP                            = 41
+       SYS_PIPE                           = 42
+       SYS_GETEGID                        = 43
+       SYS_SIGACTION                      = 46
+       SYS_GETGID                         = 47
+       SYS_SIGPROCMASK                    = 48
+       SYS_GETLOGIN                       = 49
+       SYS_SETLOGIN                       = 50
+       SYS_ACCT                           = 51
+       SYS_SIGPENDING                     = 52
+       SYS_SIGALTSTACK                    = 53
+       SYS_IOCTL                          = 54
+       SYS_REBOOT                         = 55
+       SYS_REVOKE                         = 56
+       SYS_SYMLINK                        = 57
+       SYS_READLINK                       = 58
+       SYS_EXECVE                         = 59
+       SYS_UMASK                          = 60
+       SYS_CHROOT                         = 61
+       SYS_MSYNC                          = 65
+       SYS_VFORK                          = 66
+       SYS_MUNMAP                         = 73
+       SYS_MPROTECT                       = 74
+       SYS_MADVISE                        = 75
+       SYS_MINCORE                        = 78
+       SYS_GETGROUPS                      = 79
+       SYS_SETGROUPS                      = 80
+       SYS_GETPGRP                        = 81
+       SYS_SETPGID                        = 82
+       SYS_SETITIMER                      = 83
+       SYS_SWAPON                         = 85
+       SYS_GETITIMER                      = 86
+       SYS_GETDTABLESIZE                  = 89
+       SYS_DUP2                           = 90
+       SYS_FCNTL                          = 92
+       SYS_SELECT                         = 93
+       SYS_FSYNC                          = 95
+       SYS_SETPRIORITY                    = 96
+       SYS_SOCKET                         = 97
+       SYS_CONNECT                        = 98
+       SYS_GETPRIORITY                    = 100
+       SYS_BIND                           = 104
+       SYS_SETSOCKOPT                     = 105
+       SYS_LISTEN                         = 106
+       SYS_SIGSUSPEND                     = 111
+       SYS_GETTIMEOFDAY                   = 116
+       SYS_GETRUSAGE                      = 117
+       SYS_GETSOCKOPT                     = 118
+       SYS_READV                          = 120
+       SYS_WRITEV                         = 121
+       SYS_SETTIMEOFDAY                   = 122
+       SYS_FCHOWN                         = 123
+       SYS_FCHMOD                         = 124
+       SYS_SETREUID                       = 126
+       SYS_SETREGID                       = 127
+       SYS_RENAME                         = 128
+       SYS_FLOCK                          = 131
+       SYS_MKFIFO                         = 132
+       SYS_SENDTO                         = 133
+       SYS_SHUTDOWN                       = 134
+       SYS_SOCKETPAIR                     = 135
+       SYS_MKDIR                          = 136
+       SYS_RMDIR                          = 137
+       SYS_UTIMES                         = 138
+       SYS_FUTIMES                        = 139
+       SYS_ADJTIME                        = 140
+       SYS_GETHOSTUUID                    = 142
+       SYS_SETSID                         = 147
+       SYS_GETPGID                        = 151
+       SYS_SETPRIVEXEC                    = 152
+       SYS_PREAD                          = 153
+       SYS_PWRITE                         = 154
+       SYS_NFSSVC                         = 155
+       SYS_STATFS                         = 157
+       SYS_FSTATFS                        = 158
+       SYS_UNMOUNT                        = 159
+       SYS_GETFH                          = 161
+       SYS_QUOTACTL                       = 165
+       SYS_MOUNT                          = 167
+       SYS_CSOPS                          = 169
+       SYS_CSOPS_AUDITTOKEN               = 170
+       SYS_WAITID                         = 173
+       SYS_KDEBUG_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_FDATASYNC                      = 187
+       SYS_STAT                           = 188
+       SYS_FSTAT                          = 189
+       SYS_LSTAT                          = 190
+       SYS_PATHCONF                       = 191
+       SYS_FPATHCONF                      = 192
+       SYS_GETRLIMIT                      = 194
+       SYS_SETRLIMIT                      = 195
+       SYS_GETDIRENTRIES                  = 196
+       SYS_MMAP                           = 197
+       SYS_LSEEK                          = 199
+       SYS_TRUNCATE                       = 200
+       SYS_FTRUNCATE                      = 201
+       SYS_SYSCTL                         = 202
+       SYS_MLOCK                          = 203
+       SYS_MUNLOCK                        = 204
+       SYS_UNDELETE                       = 205
+       SYS_OPEN_DPROTECTED_NP             = 216
+       SYS_GETATTRLIST                    = 220
+       SYS_SETATTRLIST                    = 221
+       SYS_GETDIRENTRIESATTR              = 222
+       SYS_EXCHANGEDATA                   = 223
+       SYS_SEARCHFS                       = 225
+       SYS_DELETE                         = 226
+       SYS_COPYFILE                       = 227
+       SYS_FGETATTRLIST                   = 228
+       SYS_FSETATTRLIST                   = 229
+       SYS_POLL                           = 230
+       SYS_WATCHEVENT                     = 231
+       SYS_WAITEVENT                      = 232
+       SYS_MODWATCH                       = 233
+       SYS_GETXATTR                       = 234
+       SYS_FGETXATTR                      = 235
+       SYS_SETXATTR                       = 236
+       SYS_FSETXATTR                      = 237
+       SYS_REMOVEXATTR                    = 238
+       SYS_FREMOVEXATTR                   = 239
+       SYS_LISTXATTR                      = 240
+       SYS_FLISTXATTR                     = 241
+       SYS_FSCTL                          = 242
+       SYS_INITGROUPS                     = 243
+       SYS_POSIX_SPAWN                    = 244
+       SYS_FFSCTL                         = 245
+       SYS_NFSCLNT                        = 247
+       SYS_FHOPEN                         = 248
+       SYS_MINHERIT                       = 250
+       SYS_SEMSYS                         = 251
+       SYS_MSGSYS                         = 252
+       SYS_SHMSYS                         = 253
+       SYS_SEMCTL                         = 254
+       SYS_SEMGET                         = 255
+       SYS_SEMOP                          = 256
+       SYS_MSGCTL                         = 258
+       SYS_MSGGET                         = 259
+       SYS_MSGSND                         = 260
+       SYS_MSGRCV                         = 261
+       SYS_SHMAT                          = 262
+       SYS_SHMCTL                         = 263
+       SYS_SHMDT                          = 264
+       SYS_SHMGET                         = 265
+       SYS_SHM_OPEN                       = 266
+       SYS_SHM_UNLINK                     = 267
+       SYS_SEM_OPEN                       = 268
+       SYS_SEM_CLOSE                      = 269
+       SYS_SEM_UNLINK                     = 270
+       SYS_SEM_WAIT                       = 271
+       SYS_SEM_TRYWAIT                    = 272
+       SYS_SEM_POST                       = 273
+       SYS_SYSCTLBYNAME                   = 274
+       SYS_OPEN_EXTENDED                  = 277
+       SYS_UMASK_EXTENDED                 = 278
+       SYS_STAT_EXTENDED                  = 279
+       SYS_LSTAT_EXTENDED                 = 280
+       SYS_FSTAT_EXTENDED                 = 281
+       SYS_CHMOD_EXTENDED                 = 282
+       SYS_FCHMOD_EXTENDED                = 283
+       SYS_ACCESS_EXTENDED                = 284
+       SYS_SETTID                         = 285
+       SYS_GETTID                         = 286
+       SYS_SETSGROUPS                     = 287
+       SYS_GETSGROUPS                     = 288
+       SYS_SETWGROUPS                     = 289
+       SYS_GETWGROUPS                     = 290
+       SYS_MKFIFO_EXTENDED                = 291
+       SYS_MKDIR_EXTENDED                 = 292
+       SYS_IDENTITYSVC                    = 293
+       SYS_SHARED_REGION_CHECK_NP         = 294
+       SYS_VM_PRESSURE_MONITOR            = 296
+       SYS_PSYNCH_RW_LONGRDLOCK           = 297
+       SYS_PSYNCH_RW_YIELDWRLOCK          = 298
+       SYS_PSYNCH_RW_DOWNGRADE            = 299
+       SYS_PSYNCH_RW_UPGRADE              = 300
+       SYS_PSYNCH_MUTEXWAIT               = 301
+       SYS_PSYNCH_MUTEXDROP               = 302
+       SYS_PSYNCH_CVBROAD                 = 303
+       SYS_PSYNCH_CVSIGNAL                = 304
+       SYS_PSYNCH_CVWAIT                  = 305
+       SYS_PSYNCH_RW_RDLOCK               = 306
+       SYS_PSYNCH_RW_WRLOCK               = 307
+       SYS_PSYNCH_RW_UNLOCK               = 308
+       SYS_PSYNCH_RW_UNLOCK2              = 309
+       SYS_GETSID                         = 310
+       SYS_SETTID_WITH_PID                = 311
+       SYS_PSYNCH_CVCLRPREPOST            = 312
+       SYS_AIO_FSYNC                      = 313
+       SYS_AIO_RETURN                     = 314
+       SYS_AIO_SUSPEND                    = 315
+       SYS_AIO_CANCEL                     = 316
+       SYS_AIO_ERROR                      = 317
+       SYS_AIO_READ                       = 318
+       SYS_AIO_WRITE                      = 319
+       SYS_LIO_LISTIO                     = 320
+       SYS_IOPOLICYSYS                    = 322
+       SYS_PROCESS_POLICY                 = 323
+       SYS_MLOCKALL                       = 324
+       SYS_MUNLOCKALL                     = 325
+       SYS_ISSETUGID                      = 327
+       SYS___PTHREAD_KILL                 = 328
+       SYS___PTHREAD_SIGMASK              = 329
+       SYS___SIGWAIT                      = 330
+       SYS___DISABLE_THREADSIGNAL         = 331
+       SYS___PTHREAD_MARKCANCEL           = 332
+       SYS___PTHREAD_CANCELED             = 333
+       SYS___SEMWAIT_SIGNAL               = 334
+       SYS_PROC_INFO                      = 336
+       SYS_SENDFILE                       = 337
+       SYS_STAT64                         = 338
+       SYS_FSTAT64                        = 339
+       SYS_LSTAT64                        = 340
+       SYS_STAT64_EXTENDED                = 341
+       SYS_LSTAT64_EXTENDED               = 342
+       SYS_FSTAT64_EXTENDED               = 343
+       SYS_GETDIRENTRIES64                = 344
+       SYS_STATFS64                       = 345
+       SYS_FSTATFS64                      = 346
+       SYS_GETFSSTAT64                    = 347
+       SYS___PTHREAD_CHDIR                = 348
+       SYS___PTHREAD_FCHDIR               = 349
+       SYS_AUDIT                          = 350
+       SYS_AUDITON                        = 351
+       SYS_GETAUID                        = 353
+       SYS_SETAUID                        = 354
+       SYS_GETAUDIT_ADDR                  = 357
+       SYS_SETAUDIT_ADDR                  = 358
+       SYS_AUDITCTL                       = 359
+       SYS_BSDTHREAD_CREATE               = 360
+       SYS_BSDTHREAD_TERMINATE            = 361
+       SYS_KQUEUE                         = 362
+       SYS_KEVENT                         = 363
+       SYS_LCHOWN                         = 364
+       SYS_BSDTHREAD_REGISTER             = 366
+       SYS_WORKQ_OPEN                     = 367
+       SYS_WORKQ_KERNRETURN               = 368
+       SYS_KEVENT64                       = 369
+       SYS___OLD_SEMWAIT_SIGNAL           = 370
+       SYS___OLD_SEMWAIT_SIGNAL_NOCANCEL  = 371
+       SYS_THREAD_SELFID                  = 372
+       SYS_LEDGER                         = 373
+       SYS_KEVENT_QOS                     = 374
+       SYS___MAC_EXECVE                   = 380
+       SYS___MAC_SYSCALL                  = 381
+       SYS___MAC_GET_FILE                 = 382
+       SYS___MAC_SET_FILE                 = 383
+       SYS___MAC_GET_LINK                 = 384
+       SYS___MAC_SET_LINK                 = 385
+       SYS___MAC_GET_PROC                 = 386
+       SYS___MAC_SET_PROC                 = 387
+       SYS___MAC_GET_FD                   = 388
+       SYS___MAC_SET_FD                   = 389
+       SYS___MAC_GET_PID                  = 390
+       SYS_PSELECT                        = 394
+       SYS_PSELECT_NOCANCEL               = 395
+       SYS_READ_NOCANCEL                  = 396
+       SYS_WRITE_NOCANCEL                 = 397
+       SYS_OPEN_NOCANCEL                  = 398
+       SYS_CLOSE_NOCANCEL                 = 399
+       SYS_WAIT4_NOCANCEL                 = 400
+       SYS_RECVMSG_NOCANCEL               = 401
+       SYS_SENDMSG_NOCANCEL               = 402
+       SYS_RECVFROM_NOCANCEL              = 403
+       SYS_ACCEPT_NOCANCEL                = 404
+       SYS_MSYNC_NOCANCEL                 = 405
+       SYS_FCNTL_NOCANCEL                 = 406
+       SYS_SELECT_NOCANCEL                = 407
+       SYS_FSYNC_NOCANCEL                 = 408
+       SYS_CONNECT_NOCANCEL               = 409
+       SYS_SIGSUSPEND_NOCANCEL            = 410
+       SYS_READV_NOCANCEL                 = 411
+       SYS_WRITEV_NOCANCEL                = 412
+       SYS_SENDTO_NOCANCEL                = 413
+       SYS_PREAD_NOCANCEL                 = 414
+       SYS_PWRITE_NOCANCEL                = 415
+       SYS_WAITID_NOCANCEL                = 416
+       SYS_POLL_NOCANCEL                  = 417
+       SYS_MSGSND_NOCANCEL                = 418
+       SYS_MSGRCV_NOCANCEL                = 419
+       SYS_SEM_WAIT_NOCANCEL              = 420
+       SYS_AIO_SUSPEND_NOCANCEL           = 421
+       SYS___SIGWAIT_NOCANCEL             = 422
+       SYS___SEMWAIT_SIGNAL_NOCANCEL      = 423
+       SYS___MAC_MOUNT                    = 424
+       SYS___MAC_GET_MOUNT                = 425
+       SYS___MAC_GETFSSTAT                = 426
+       SYS_FSGETPATH                      = 427
+       SYS_AUDIT_SESSION_SELF             = 428
+       SYS_AUDIT_SESSION_JOIN             = 429
+       SYS_FILEPORT_MAKEPORT              = 430
+       SYS_FILEPORT_MAKEFD                = 431
+       SYS_AUDIT_SESSION_PORT             = 432
+       SYS_PID_SUSPEND                    = 433
+       SYS_PID_RESUME                     = 434
+       SYS_PID_HIBERNATE                  = 435
+       SYS_PID_SHUTDOWN_SOCKETS           = 436
+       SYS_SHARED_REGION_MAP_AND_SLIDE_NP = 438
+       SYS_KAS_INFO                       = 439
+       SYS_MEMORYSTATUS_CONTROL           = 440
+       SYS_GUARDED_OPEN_NP                = 441
+       SYS_GUARDED_CLOSE_NP               = 442
+       SYS_GUARDED_KQUEUE_NP              = 443
+       SYS_CHANGE_FDGUARD_NP              = 444
+       SYS_USRCTL                         = 445
+       SYS_PROC_RLIMIT_CONTROL            = 446
+       SYS_CONNECTX                       = 447
+       SYS_DISCONNECTX                    = 448
+       SYS_PEELOFF                        = 449
+       SYS_SOCKET_DELEGATE                = 450
+       SYS_TELEMETRY                      = 451
+       SYS_PROC_UUID_POLICY               = 452
+       SYS_MEMORYSTATUS_GET_LEVEL         = 453
+       SYS_SYSTEM_OVERRIDE                = 454
+       SYS_VFS_PURGE                      = 455
+       SYS_SFI_CTL                        = 456
+       SYS_SFI_PIDCTL                     = 457
+       SYS_COALITION                      = 458
+       SYS_COALITION_INFO                 = 459
+       SYS_NECP_MATCH_POLICY              = 460
+       SYS_GETATTRLISTBULK                = 461
+       SYS_CLONEFILEAT                    = 462
+       SYS_OPENAT                         = 463
+       SYS_OPENAT_NOCANCEL                = 464
+       SYS_RENAMEAT                       = 465
+       SYS_FACCESSAT                      = 466
+       SYS_FCHMODAT                       = 467
+       SYS_FCHOWNAT                       = 468
+       SYS_FSTATAT                        = 469
+       SYS_FSTATAT64                      = 470
+       SYS_LINKAT                         = 471
+       SYS_UNLINKAT                       = 472
+       SYS_READLINKAT                     = 473
+       SYS_SYMLINKAT                      = 474
+       SYS_MKDIRAT                        = 475
+       SYS_GETATTRLISTAT                  = 476
+       SYS_PROC_TRACE_LOG                 = 477
+       SYS_BSDTHREAD_CTL                  = 478
+       SYS_OPENBYID_NP                    = 479
+       SYS_RECVMSG_X                      = 480
+       SYS_SENDMSG_X                      = 481
+       SYS_THREAD_SELFUSAGE               = 482
+       SYS_CSRCTL                         = 483
+       SYS_GUARDED_OPEN_DPROTECTED_NP     = 484
+       SYS_GUARDED_WRITE_NP               = 485
+       SYS_GUARDED_PWRITE_NP              = 486
+       SYS_GUARDED_WRITEV_NP              = 487
+       SYS_RENAMEATX_NP                   = 488
+       SYS_MREMAP_ENCRYPTED               = 489
+       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_MAXSYSCALL                     = 522
+       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
new file mode 100644 (file)
index 0000000..075816c
--- /dev/null
@@ -0,0 +1,426 @@
+// mksysnum_darwin.pl /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.2.sdk/usr/include/sys/syscall.h
+// Code generated by the command above; see README.md. DO NOT EDIT.
+
+// +build arm64,darwin
+
+package unix
+
+const (
+       SYS_SYSCALL                        = 0
+       SYS_EXIT                           = 1
+       SYS_FORK                           = 2
+       SYS_READ                           = 3
+       SYS_WRITE                          = 4
+       SYS_OPEN                           = 5
+       SYS_CLOSE                          = 6
+       SYS_WAIT4                          = 7
+       SYS_LINK                           = 9
+       SYS_UNLINK                         = 10
+       SYS_CHDIR                          = 12
+       SYS_FCHDIR                         = 13
+       SYS_MKNOD                          = 14
+       SYS_CHMOD                          = 15
+       SYS_CHOWN                          = 16
+       SYS_GETFSSTAT                      = 18
+       SYS_GETPID                         = 20
+       SYS_SETUID                         = 23
+       SYS_GETUID                         = 24
+       SYS_GETEUID                        = 25
+       SYS_PTRACE                         = 26
+       SYS_RECVMSG                        = 27
+       SYS_SENDMSG                        = 28
+       SYS_RECVFROM                       = 29
+       SYS_ACCEPT                         = 30
+       SYS_GETPEERNAME                    = 31
+       SYS_GETSOCKNAME                    = 32
+       SYS_ACCESS                         = 33
+       SYS_CHFLAGS                        = 34
+       SYS_FCHFLAGS                       = 35
+       SYS_SYNC                           = 36
+       SYS_KILL                           = 37
+       SYS_GETPPID                        = 39
+       SYS_DUP                            = 41
+       SYS_PIPE                           = 42
+       SYS_GETEGID                        = 43
+       SYS_SIGACTION                      = 46
+       SYS_GETGID                         = 47
+       SYS_SIGPROCMASK                    = 48
+       SYS_GETLOGIN                       = 49
+       SYS_SETLOGIN                       = 50
+       SYS_ACCT                           = 51
+       SYS_SIGPENDING                     = 52
+       SYS_SIGALTSTACK                    = 53
+       SYS_IOCTL                          = 54
+       SYS_REBOOT                         = 55
+       SYS_REVOKE                         = 56
+       SYS_SYMLINK                        = 57
+       SYS_READLINK                       = 58
+       SYS_EXECVE                         = 59
+       SYS_UMASK                          = 60
+       SYS_CHROOT                         = 61
+       SYS_MSYNC                          = 65
+       SYS_VFORK                          = 66
+       SYS_MUNMAP                         = 73
+       SYS_MPROTECT                       = 74
+       SYS_MADVISE                        = 75
+       SYS_MINCORE                        = 78
+       SYS_GETGROUPS                      = 79
+       SYS_SETGROUPS                      = 80
+       SYS_GETPGRP                        = 81
+       SYS_SETPGID                        = 82
+       SYS_SETITIMER                      = 83
+       SYS_SWAPON                         = 85
+       SYS_GETITIMER                      = 86
+       SYS_GETDTABLESIZE                  = 89
+       SYS_DUP2                           = 90
+       SYS_FCNTL                          = 92
+       SYS_SELECT                         = 93
+       SYS_FSYNC                          = 95
+       SYS_SETPRIORITY                    = 96
+       SYS_SOCKET                         = 97
+       SYS_CONNECT                        = 98
+       SYS_GETPRIORITY                    = 100
+       SYS_BIND                           = 104
+       SYS_SETSOCKOPT                     = 105
+       SYS_LISTEN                         = 106
+       SYS_SIGSUSPEND                     = 111
+       SYS_GETTIMEOFDAY                   = 116
+       SYS_GETRUSAGE                      = 117
+       SYS_GETSOCKOPT                     = 118
+       SYS_READV                          = 120
+       SYS_WRITEV                         = 121
+       SYS_SETTIMEOFDAY                   = 122
+       SYS_FCHOWN                         = 123
+       SYS_FCHMOD                         = 124
+       SYS_SETREUID                       = 126
+       SYS_SETREGID                       = 127
+       SYS_RENAME                         = 128
+       SYS_FLOCK                          = 131
+       SYS_MKFIFO                         = 132
+       SYS_SENDTO                         = 133
+       SYS_SHUTDOWN                       = 134
+       SYS_SOCKETPAIR                     = 135
+       SYS_MKDIR                          = 136
+       SYS_RMDIR                          = 137
+       SYS_UTIMES                         = 138
+       SYS_FUTIMES                        = 139
+       SYS_ADJTIME                        = 140
+       SYS_GETHOSTUUID                    = 142
+       SYS_SETSID                         = 147
+       SYS_GETPGID                        = 151
+       SYS_SETPRIVEXEC                    = 152
+       SYS_PREAD                          = 153
+       SYS_PWRITE                         = 154
+       SYS_NFSSVC                         = 155
+       SYS_STATFS                         = 157
+       SYS_FSTATFS                        = 158
+       SYS_UNMOUNT                        = 159
+       SYS_GETFH                          = 161
+       SYS_QUOTACTL                       = 165
+       SYS_MOUNT                          = 167
+       SYS_CSOPS                          = 169
+       SYS_CSOPS_AUDITTOKEN               = 170
+       SYS_WAITID                         = 173
+       SYS_KDEBUG_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_FDATASYNC                      = 187
+       SYS_STAT                           = 188
+       SYS_FSTAT                          = 189
+       SYS_LSTAT                          = 190
+       SYS_PATHCONF                       = 191
+       SYS_FPATHCONF                      = 192
+       SYS_GETRLIMIT                      = 194
+       SYS_SETRLIMIT                      = 195
+       SYS_GETDIRENTRIES                  = 196
+       SYS_MMAP                           = 197
+       SYS_LSEEK                          = 199
+       SYS_TRUNCATE                       = 200
+       SYS_FTRUNCATE                      = 201
+       SYS_SYSCTL                         = 202
+       SYS_MLOCK                          = 203
+       SYS_MUNLOCK                        = 204
+       SYS_UNDELETE                       = 205
+       SYS_OPEN_DPROTECTED_NP             = 216
+       SYS_GETATTRLIST                    = 220
+       SYS_SETATTRLIST                    = 221
+       SYS_GETDIRENTRIESATTR              = 222
+       SYS_EXCHANGEDATA                   = 223
+       SYS_SEARCHFS                       = 225
+       SYS_DELETE                         = 226
+       SYS_COPYFILE                       = 227
+       SYS_FGETATTRLIST                   = 228
+       SYS_FSETATTRLIST                   = 229
+       SYS_POLL                           = 230
+       SYS_WATCHEVENT                     = 231
+       SYS_WAITEVENT                      = 232
+       SYS_MODWATCH                       = 233
+       SYS_GETXATTR                       = 234
+       SYS_FGETXATTR                      = 235
+       SYS_SETXATTR                       = 236
+       SYS_FSETXATTR                      = 237
+       SYS_REMOVEXATTR                    = 238
+       SYS_FREMOVEXATTR                   = 239
+       SYS_LISTXATTR                      = 240
+       SYS_FLISTXATTR                     = 241
+       SYS_FSCTL                          = 242
+       SYS_INITGROUPS                     = 243
+       SYS_POSIX_SPAWN                    = 244
+       SYS_FFSCTL                         = 245
+       SYS_NFSCLNT                        = 247
+       SYS_FHOPEN                         = 248
+       SYS_MINHERIT                       = 250
+       SYS_SEMSYS                         = 251
+       SYS_MSGSYS                         = 252
+       SYS_SHMSYS                         = 253
+       SYS_SEMCTL                         = 254
+       SYS_SEMGET                         = 255
+       SYS_SEMOP                          = 256
+       SYS_MSGCTL                         = 258
+       SYS_MSGGET                         = 259
+       SYS_MSGSND                         = 260
+       SYS_MSGRCV                         = 261
+       SYS_SHMAT                          = 262
+       SYS_SHMCTL                         = 263
+       SYS_SHMDT                          = 264
+       SYS_SHMGET                         = 265
+       SYS_SHM_OPEN                       = 266
+       SYS_SHM_UNLINK                     = 267
+       SYS_SEM_OPEN                       = 268
+       SYS_SEM_CLOSE                      = 269
+       SYS_SEM_UNLINK                     = 270
+       SYS_SEM_WAIT                       = 271
+       SYS_SEM_TRYWAIT                    = 272
+       SYS_SEM_POST                       = 273
+       SYS_SYSCTLBYNAME                   = 274
+       SYS_OPEN_EXTENDED                  = 277
+       SYS_UMASK_EXTENDED                 = 278
+       SYS_STAT_EXTENDED                  = 279
+       SYS_LSTAT_EXTENDED                 = 280
+       SYS_FSTAT_EXTENDED                 = 281
+       SYS_CHMOD_EXTENDED                 = 282
+       SYS_FCHMOD_EXTENDED                = 283
+       SYS_ACCESS_EXTENDED                = 284
+       SYS_SETTID                         = 285
+       SYS_GETTID                         = 286
+       SYS_SETSGROUPS                     = 287
+       SYS_GETSGROUPS                     = 288
+       SYS_SETWGROUPS                     = 289
+       SYS_GETWGROUPS                     = 290
+       SYS_MKFIFO_EXTENDED                = 291
+       SYS_MKDIR_EXTENDED                 = 292
+       SYS_IDENTITYSVC                    = 293
+       SYS_SHARED_REGION_CHECK_NP         = 294
+       SYS_VM_PRESSURE_MONITOR            = 296
+       SYS_PSYNCH_RW_LONGRDLOCK           = 297
+       SYS_PSYNCH_RW_YIELDWRLOCK          = 298
+       SYS_PSYNCH_RW_DOWNGRADE            = 299
+       SYS_PSYNCH_RW_UPGRADE              = 300
+       SYS_PSYNCH_MUTEXWAIT               = 301
+       SYS_PSYNCH_MUTEXDROP               = 302
+       SYS_PSYNCH_CVBROAD                 = 303
+       SYS_PSYNCH_CVSIGNAL                = 304
+       SYS_PSYNCH_CVWAIT                  = 305
+       SYS_PSYNCH_RW_RDLOCK               = 306
+       SYS_PSYNCH_RW_WRLOCK               = 307
+       SYS_PSYNCH_RW_UNLOCK               = 308
+       SYS_PSYNCH_RW_UNLOCK2              = 309
+       SYS_GETSID                         = 310
+       SYS_SETTID_WITH_PID                = 311
+       SYS_PSYNCH_CVCLRPREPOST            = 312
+       SYS_AIO_FSYNC                      = 313
+       SYS_AIO_RETURN                     = 314
+       SYS_AIO_SUSPEND                    = 315
+       SYS_AIO_CANCEL                     = 316
+       SYS_AIO_ERROR                      = 317
+       SYS_AIO_READ                       = 318
+       SYS_AIO_WRITE                      = 319
+       SYS_LIO_LISTIO                     = 320
+       SYS_IOPOLICYSYS                    = 322
+       SYS_PROCESS_POLICY                 = 323
+       SYS_MLOCKALL                       = 324
+       SYS_MUNLOCKALL                     = 325
+       SYS_ISSETUGID                      = 327
+       SYS___PTHREAD_KILL                 = 328
+       SYS___PTHREAD_SIGMASK              = 329
+       SYS___SIGWAIT                      = 330
+       SYS___DISABLE_THREADSIGNAL         = 331
+       SYS___PTHREAD_MARKCANCEL           = 332
+       SYS___PTHREAD_CANCELED             = 333
+       SYS___SEMWAIT_SIGNAL               = 334
+       SYS_PROC_INFO                      = 336
+       SYS_SENDFILE                       = 337
+       SYS_STAT64                         = 338
+       SYS_FSTAT64                        = 339
+       SYS_LSTAT64                        = 340
+       SYS_STAT64_EXTENDED                = 341
+       SYS_LSTAT64_EXTENDED               = 342
+       SYS_FSTAT64_EXTENDED               = 343
+       SYS_GETDIRENTRIES64                = 344
+       SYS_STATFS64                       = 345
+       SYS_FSTATFS64                      = 346
+       SYS_GETFSSTAT64                    = 347
+       SYS___PTHREAD_CHDIR                = 348
+       SYS___PTHREAD_FCHDIR               = 349
+       SYS_AUDIT                          = 350
+       SYS_AUDITON                        = 351
+       SYS_GETAUID                        = 353
+       SYS_SETAUID                        = 354
+       SYS_GETAUDIT_ADDR                  = 357
+       SYS_SETAUDIT_ADDR                  = 358
+       SYS_AUDITCTL                       = 359
+       SYS_BSDTHREAD_CREATE               = 360
+       SYS_BSDTHREAD_TERMINATE            = 361
+       SYS_KQUEUE                         = 362
+       SYS_KEVENT                         = 363
+       SYS_LCHOWN                         = 364
+       SYS_BSDTHREAD_REGISTER             = 366
+       SYS_WORKQ_OPEN                     = 367
+       SYS_WORKQ_KERNRETURN               = 368
+       SYS_KEVENT64                       = 369
+       SYS___OLD_SEMWAIT_SIGNAL           = 370
+       SYS___OLD_SEMWAIT_SIGNAL_NOCANCEL  = 371
+       SYS_THREAD_SELFID                  = 372
+       SYS_LEDGER                         = 373
+       SYS_KEVENT_QOS                     = 374
+       SYS___MAC_EXECVE                   = 380
+       SYS___MAC_SYSCALL                  = 381
+       SYS___MAC_GET_FILE                 = 382
+       SYS___MAC_SET_FILE                 = 383
+       SYS___MAC_GET_LINK                 = 384
+       SYS___MAC_SET_LINK                 = 385
+       SYS___MAC_GET_PROC                 = 386
+       SYS___MAC_SET_PROC                 = 387
+       SYS___MAC_GET_FD                   = 388
+       SYS___MAC_SET_FD                   = 389
+       SYS___MAC_GET_PID                  = 390
+       SYS_PSELECT                        = 394
+       SYS_PSELECT_NOCANCEL               = 395
+       SYS_READ_NOCANCEL                  = 396
+       SYS_WRITE_NOCANCEL                 = 397
+       SYS_OPEN_NOCANCEL                  = 398
+       SYS_CLOSE_NOCANCEL                 = 399
+       SYS_WAIT4_NOCANCEL                 = 400
+       SYS_RECVMSG_NOCANCEL               = 401
+       SYS_SENDMSG_NOCANCEL               = 402
+       SYS_RECVFROM_NOCANCEL              = 403
+       SYS_ACCEPT_NOCANCEL                = 404
+       SYS_MSYNC_NOCANCEL                 = 405
+       SYS_FCNTL_NOCANCEL                 = 406
+       SYS_SELECT_NOCANCEL                = 407
+       SYS_FSYNC_NOCANCEL                 = 408
+       SYS_CONNECT_NOCANCEL               = 409
+       SYS_SIGSUSPEND_NOCANCEL            = 410
+       SYS_READV_NOCANCEL                 = 411
+       SYS_WRITEV_NOCANCEL                = 412
+       SYS_SENDTO_NOCANCEL                = 413
+       SYS_PREAD_NOCANCEL                 = 414
+       SYS_PWRITE_NOCANCEL                = 415
+       SYS_WAITID_NOCANCEL                = 416
+       SYS_POLL_NOCANCEL                  = 417
+       SYS_MSGSND_NOCANCEL                = 418
+       SYS_MSGRCV_NOCANCEL                = 419
+       SYS_SEM_WAIT_NOCANCEL              = 420
+       SYS_AIO_SUSPEND_NOCANCEL           = 421
+       SYS___SIGWAIT_NOCANCEL             = 422
+       SYS___SEMWAIT_SIGNAL_NOCANCEL      = 423
+       SYS___MAC_MOUNT                    = 424
+       SYS___MAC_GET_MOUNT                = 425
+       SYS___MAC_GETFSSTAT                = 426
+       SYS_FSGETPATH                      = 427
+       SYS_AUDIT_SESSION_SELF             = 428
+       SYS_AUDIT_SESSION_JOIN             = 429
+       SYS_FILEPORT_MAKEPORT              = 430
+       SYS_FILEPORT_MAKEFD                = 431
+       SYS_AUDIT_SESSION_PORT             = 432
+       SYS_PID_SUSPEND                    = 433
+       SYS_PID_RESUME                     = 434
+       SYS_PID_HIBERNATE                  = 435
+       SYS_PID_SHUTDOWN_SOCKETS           = 436
+       SYS_SHARED_REGION_MAP_AND_SLIDE_NP = 438
+       SYS_KAS_INFO                       = 439
+       SYS_MEMORYSTATUS_CONTROL           = 440
+       SYS_GUARDED_OPEN_NP                = 441
+       SYS_GUARDED_CLOSE_NP               = 442
+       SYS_GUARDED_KQUEUE_NP              = 443
+       SYS_CHANGE_FDGUARD_NP              = 444
+       SYS_USRCTL                         = 445
+       SYS_PROC_RLIMIT_CONTROL            = 446
+       SYS_CONNECTX                       = 447
+       SYS_DISCONNECTX                    = 448
+       SYS_PEELOFF                        = 449
+       SYS_SOCKET_DELEGATE                = 450
+       SYS_TELEMETRY                      = 451
+       SYS_PROC_UUID_POLICY               = 452
+       SYS_MEMORYSTATUS_GET_LEVEL         = 453
+       SYS_SYSTEM_OVERRIDE                = 454
+       SYS_VFS_PURGE                      = 455
+       SYS_SFI_CTL                        = 456
+       SYS_SFI_PIDCTL                     = 457
+       SYS_COALITION                      = 458
+       SYS_COALITION_INFO                 = 459
+       SYS_NECP_MATCH_POLICY              = 460
+       SYS_GETATTRLISTBULK                = 461
+       SYS_CLONEFILEAT                    = 462
+       SYS_OPENAT                         = 463
+       SYS_OPENAT_NOCANCEL                = 464
+       SYS_RENAMEAT                       = 465
+       SYS_FACCESSAT                      = 466
+       SYS_FCHMODAT                       = 467
+       SYS_FCHOWNAT                       = 468
+       SYS_FSTATAT                        = 469
+       SYS_FSTATAT64                      = 470
+       SYS_LINKAT                         = 471
+       SYS_UNLINKAT                       = 472
+       SYS_READLINKAT                     = 473
+       SYS_SYMLINKAT                      = 474
+       SYS_MKDIRAT                        = 475
+       SYS_GETATTRLISTAT                  = 476
+       SYS_PROC_TRACE_LOG                 = 477
+       SYS_BSDTHREAD_CTL                  = 478
+       SYS_OPENBYID_NP                    = 479
+       SYS_RECVMSG_X                      = 480
+       SYS_SENDMSG_X                      = 481
+       SYS_THREAD_SELFUSAGE               = 482
+       SYS_CSRCTL                         = 483
+       SYS_GUARDED_OPEN_DPROTECTED_NP     = 484
+       SYS_GUARDED_WRITE_NP               = 485
+       SYS_GUARDED_PWRITE_NP              = 486
+       SYS_GUARDED_WRITEV_NP              = 487
+       SYS_RENAMEATX_NP                   = 488
+       SYS_MREMAP_ENCRYPTED               = 489
+       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_MAXSYSCALL                     = 522
+       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
new file mode 100644 (file)
index 0000000..b2c9ef8
--- /dev/null
@@ -0,0 +1,315 @@
+// mksysnum_dragonfly.pl
+// Code generated by the command above; see README.md. DO NOT EDIT.
+
+// +build amd64,dragonfly
+
+package unix
+
+const (
+       // SYS_NOSYS = 0;  // { int nosys(void); } syscall nosys_args int
+       SYS_EXIT          = 1   // { void exit(int rval); }
+       SYS_FORK          = 2   // { int fork(void); }
+       SYS_READ          = 3   // { ssize_t read(int fd, void *buf, size_t nbyte); }
+       SYS_WRITE         = 4   // { ssize_t write(int fd, const void *buf, size_t nbyte); }
+       SYS_OPEN          = 5   // { int open(char *path, int flags, int mode); }
+       SYS_CLOSE         = 6   // { int close(int fd); }
+       SYS_WAIT4         = 7   // { int wait4(int pid, int *status, int options, \
+       SYS_LINK          = 9   // { int link(char *path, char *link); }
+       SYS_UNLINK        = 10  // { int unlink(char *path); }
+       SYS_CHDIR         = 12  // { int chdir(char *path); }
+       SYS_FCHDIR        = 13  // { int fchdir(int fd); }
+       SYS_MKNOD         = 14  // { int mknod(char *path, int mode, int dev); }
+       SYS_CHMOD         = 15  // { int chmod(char *path, int mode); }
+       SYS_CHOWN         = 16  // { int chown(char *path, int uid, int gid); }
+       SYS_OBREAK        = 17  // { int obreak(char *nsize); } break obreak_args int
+       SYS_GETFSSTAT     = 18  // { int getfsstat(struct statfs *buf, long bufsize, \
+       SYS_GETPID        = 20  // { pid_t getpid(void); }
+       SYS_MOUNT         = 21  // { int mount(char *type, char *path, int flags, \
+       SYS_UNMOUNT       = 22  // { int unmount(char *path, int flags); }
+       SYS_SETUID        = 23  // { int setuid(uid_t uid); }
+       SYS_GETUID        = 24  // { uid_t getuid(void); }
+       SYS_GETEUID       = 25  // { uid_t geteuid(void); }
+       SYS_PTRACE        = 26  // { int ptrace(int req, pid_t pid, caddr_t addr, \
+       SYS_RECVMSG       = 27  // { int recvmsg(int s, struct msghdr *msg, int flags); }
+       SYS_SENDMSG       = 28  // { int sendmsg(int s, caddr_t msg, int flags); }
+       SYS_RECVFROM      = 29  // { int recvfrom(int s, caddr_t buf, size_t len, \
+       SYS_ACCEPT        = 30  // { int accept(int s, caddr_t name, int *anamelen); }
+       SYS_GETPEERNAME   = 31  // { int getpeername(int fdes, caddr_t asa, int *alen); }
+       SYS_GETSOCKNAME   = 32  // { int getsockname(int fdes, caddr_t asa, int *alen); }
+       SYS_ACCESS        = 33  // { int access(char *path, int flags); }
+       SYS_CHFLAGS       = 34  // { int chflags(char *path, int flags); }
+       SYS_FCHFLAGS      = 35  // { int fchflags(int fd, int flags); }
+       SYS_SYNC          = 36  // { int sync(void); }
+       SYS_KILL          = 37  // { int kill(int pid, int signum); }
+       SYS_GETPPID       = 39  // { pid_t getppid(void); }
+       SYS_DUP           = 41  // { int dup(int fd); }
+       SYS_PIPE          = 42  // { int pipe(void); }
+       SYS_GETEGID       = 43  // { gid_t getegid(void); }
+       SYS_PROFIL        = 44  // { int profil(caddr_t samples, size_t size, \
+       SYS_KTRACE        = 45  // { int ktrace(const char *fname, int ops, int facs, \
+       SYS_GETGID        = 47  // { gid_t getgid(void); }
+       SYS_GETLOGIN      = 49  // { int getlogin(char *namebuf, u_int namelen); }
+       SYS_SETLOGIN      = 50  // { int setlogin(char *namebuf); }
+       SYS_ACCT          = 51  // { int acct(char *path); }
+       SYS_SIGALTSTACK   = 53  // { int sigaltstack(stack_t *ss, stack_t *oss); }
+       SYS_IOCTL         = 54  // { int ioctl(int fd, u_long com, caddr_t data); }
+       SYS_REBOOT        = 55  // { int reboot(int opt); }
+       SYS_REVOKE        = 56  // { int revoke(char *path); }
+       SYS_SYMLINK       = 57  // { int symlink(char *path, char *link); }
+       SYS_READLINK      = 58  // { int readlink(char *path, char *buf, int count); }
+       SYS_EXECVE        = 59  // { int execve(char *fname, char **argv, char **envv); }
+       SYS_UMASK         = 60  // { int umask(int newmask); } umask umask_args int
+       SYS_CHROOT        = 61  // { int chroot(char *path); }
+       SYS_MSYNC         = 65  // { int msync(void *addr, size_t len, int flags); }
+       SYS_VFORK         = 66  // { pid_t vfork(void); }
+       SYS_SBRK          = 69  // { int sbrk(int incr); }
+       SYS_SSTK          = 70  // { int sstk(int incr); }
+       SYS_MUNMAP        = 73  // { int munmap(void *addr, size_t len); }
+       SYS_MPROTECT      = 74  // { int mprotect(void *addr, size_t len, int prot); }
+       SYS_MADVISE       = 75  // { int madvise(void *addr, size_t len, int behav); }
+       SYS_MINCORE       = 78  // { int mincore(const void *addr, size_t len, \
+       SYS_GETGROUPS     = 79  // { int getgroups(u_int gidsetsize, gid_t *gidset); }
+       SYS_SETGROUPS     = 80  // { int setgroups(u_int gidsetsize, gid_t *gidset); }
+       SYS_GETPGRP       = 81  // { int getpgrp(void); }
+       SYS_SETPGID       = 82  // { int setpgid(int pid, int pgid); }
+       SYS_SETITIMER     = 83  // { int setitimer(u_int which, struct itimerval *itv, \
+       SYS_SWAPON        = 85  // { int swapon(char *name); }
+       SYS_GETITIMER     = 86  // { int getitimer(u_int which, struct itimerval *itv); }
+       SYS_GETDTABLESIZE = 89  // { int getdtablesize(void); }
+       SYS_DUP2          = 90  // { int dup2(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_FSYNC         = 95  // { int fsync(int fd); }
+       SYS_SETPRIORITY   = 96  // { int setpriority(int which, int who, int prio); }
+       SYS_SOCKET        = 97  // { int socket(int domain, int type, int protocol); }
+       SYS_CONNECT       = 98  // { int connect(int s, caddr_t name, int namelen); }
+       SYS_GETPRIORITY   = 100 // { int getpriority(int which, int who); }
+       SYS_BIND          = 104 // { int bind(int s, caddr_t name, int namelen); }
+       SYS_SETSOCKOPT    = 105 // { int setsockopt(int s, int level, int name, \
+       SYS_LISTEN        = 106 // { int listen(int s, int backlog); }
+       SYS_GETTIMEOFDAY  = 116 // { int gettimeofday(struct timeval *tp, \
+       SYS_GETRUSAGE     = 117 // { int getrusage(int who, struct rusage *rusage); }
+       SYS_GETSOCKOPT    = 118 // { int getsockopt(int s, int level, int name, \
+       SYS_READV         = 120 // { int readv(int fd, struct iovec *iovp, u_int iovcnt); }
+       SYS_WRITEV        = 121 // { int writev(int fd, struct iovec *iovp, \
+       SYS_SETTIMEOFDAY  = 122 // { int settimeofday(struct timeval *tv, \
+       SYS_FCHOWN        = 123 // { int fchown(int fd, int uid, int gid); }
+       SYS_FCHMOD        = 124 // { int fchmod(int fd, int mode); }
+       SYS_SETREUID      = 126 // { int setreuid(int ruid, int euid); }
+       SYS_SETREGID      = 127 // { int setregid(int rgid, int egid); }
+       SYS_RENAME        = 128 // { int rename(char *from, char *to); }
+       SYS_FLOCK         = 131 // { int flock(int fd, int how); }
+       SYS_MKFIFO        = 132 // { int mkfifo(char *path, int mode); }
+       SYS_SENDTO        = 133 // { int sendto(int s, caddr_t buf, size_t len, \
+       SYS_SHUTDOWN      = 134 // { int shutdown(int s, int how); }
+       SYS_SOCKETPAIR    = 135 // { int socketpair(int domain, int type, int protocol, \
+       SYS_MKDIR         = 136 // { int mkdir(char *path, int mode); }
+       SYS_RMDIR         = 137 // { int rmdir(char *path); }
+       SYS_UTIMES        = 138 // { int utimes(char *path, struct timeval *tptr); }
+       SYS_ADJTIME       = 140 // { int adjtime(struct timeval *delta, \
+       SYS_SETSID        = 147 // { int setsid(void); }
+       SYS_QUOTACTL      = 148 // { int quotactl(char *path, int cmd, int uid, \
+       SYS_STATFS        = 157 // { int statfs(char *path, struct statfs *buf); }
+       SYS_FSTATFS       = 158 // { int fstatfs(int fd, struct statfs *buf); }
+       SYS_GETFH         = 161 // { int getfh(char *fname, struct fhandle *fhp); }
+       SYS_GETDOMAINNAME = 162 // { int getdomainname(char *domainname, int len); }
+       SYS_SETDOMAINNAME = 163 // { int setdomainname(char *domainname, int len); }
+       SYS_UNAME         = 164 // { int uname(struct utsname *name); }
+       SYS_SYSARCH       = 165 // { int sysarch(int op, char *parms); }
+       SYS_RTPRIO        = 166 // { int rtprio(int function, pid_t pid, \
+       SYS_EXTPREAD      = 173 // { ssize_t extpread(int fd, void *buf, \
+       SYS_EXTPWRITE     = 174 // { ssize_t extpwrite(int fd, const void *buf, \
+       SYS_NTP_ADJTIME   = 176 // { int ntp_adjtime(struct timex *tp); }
+       SYS_SETGID        = 181 // { int setgid(gid_t gid); }
+       SYS_SETEGID       = 182 // { int setegid(gid_t egid); }
+       SYS_SETEUID       = 183 // { int seteuid(uid_t euid); }
+       SYS_PATHCONF      = 191 // { int pathconf(char *path, int name); }
+       SYS_FPATHCONF     = 192 // { int fpathconf(int fd, int name); }
+       SYS_GETRLIMIT     = 194 // { int getrlimit(u_int which, \
+       SYS_SETRLIMIT     = 195 // { int setrlimit(u_int which, \
+       SYS_MMAP          = 197 // { caddr_t mmap(caddr_t addr, size_t len, int prot, \
+       // SYS_NOSYS = 198;  // { int nosys(void); } __syscall __syscall_args int
+       SYS_LSEEK                  = 199 // { off_t lseek(int fd, int pad, off_t offset, \
+       SYS_TRUNCATE               = 200 // { int truncate(char *path, int pad, off_t length); }
+       SYS_FTRUNCATE              = 201 // { int ftruncate(int fd, int pad, off_t length); }
+       SYS___SYSCTL               = 202 // { int __sysctl(int *name, u_int namelen, void *old, \
+       SYS_MLOCK                  = 203 // { int mlock(const void *addr, size_t len); }
+       SYS_MUNLOCK                = 204 // { int munlock(const void *addr, size_t len); }
+       SYS_UNDELETE               = 205 // { int undelete(char *path); }
+       SYS_FUTIMES                = 206 // { int futimes(int fd, struct timeval *tptr); }
+       SYS_GETPGID                = 207 // { int getpgid(pid_t pid); }
+       SYS_POLL                   = 209 // { int poll(struct pollfd *fds, u_int nfds, \
+       SYS___SEMCTL               = 220 // { int __semctl(int semid, int semnum, int cmd, \
+       SYS_SEMGET                 = 221 // { int semget(key_t key, int nsems, int semflg); }
+       SYS_SEMOP                  = 222 // { int semop(int semid, struct sembuf *sops, \
+       SYS_MSGCTL                 = 224 // { int msgctl(int msqid, int cmd, \
+       SYS_MSGGET                 = 225 // { int msgget(key_t key, int msgflg); }
+       SYS_MSGSND                 = 226 // { int msgsnd(int msqid, 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_SHMDT                  = 230 // { int shmdt(const void *shmaddr); }
+       SYS_SHMGET                 = 231 // { int shmget(key_t key, size_t size, int shmflg); }
+       SYS_CLOCK_GETTIME          = 232 // { int clock_gettime(clockid_t clock_id, \
+       SYS_CLOCK_SETTIME          = 233 // { int clock_settime(clockid_t clock_id, \
+       SYS_CLOCK_GETRES           = 234 // { int clock_getres(clockid_t clock_id, \
+       SYS_NANOSLEEP              = 240 // { int nanosleep(const struct timespec *rqtp, \
+       SYS_MINHERIT               = 250 // { int minherit(void *addr, size_t len, int inherit); }
+       SYS_RFORK                  = 251 // { int rfork(int flags); }
+       SYS_OPENBSD_POLL           = 252 // { int openbsd_poll(struct pollfd *fds, u_int nfds, \
+       SYS_ISSETUGID              = 253 // { int issetugid(void); }
+       SYS_LCHOWN                 = 254 // { int lchown(char *path, int uid, int gid); }
+       SYS_LCHMOD                 = 274 // { int lchmod(char *path, mode_t mode); }
+       SYS_LUTIMES                = 276 // { int lutimes(char *path, struct timeval *tptr); }
+       SYS_EXTPREADV              = 289 // { ssize_t extpreadv(int fd, struct iovec *iovp, \
+       SYS_EXTPWRITEV             = 290 // { ssize_t extpwritev(int fd, struct iovec *iovp,\
+       SYS_FHSTATFS               = 297 // { int fhstatfs(const struct fhandle *u_fhp, struct statfs *buf); }
+       SYS_FHOPEN                 = 298 // { int fhopen(const struct fhandle *u_fhp, int flags); }
+       SYS_MODNEXT                = 300 // { int modnext(int modid); }
+       SYS_MODSTAT                = 301 // { int modstat(int modid, struct module_stat* stat); }
+       SYS_MODFNEXT               = 302 // { int modfnext(int modid); }
+       SYS_MODFIND                = 303 // { int modfind(const char *name); }
+       SYS_KLDLOAD                = 304 // { int kldload(const char *file); }
+       SYS_KLDUNLOAD              = 305 // { int kldunload(int fileid); }
+       SYS_KLDFIND                = 306 // { int kldfind(const char *file); }
+       SYS_KLDNEXT                = 307 // { int kldnext(int fileid); }
+       SYS_KLDSTAT                = 308 // { int kldstat(int fileid, struct kld_file_stat* stat); }
+       SYS_KLDFIRSTMOD            = 309 // { int kldfirstmod(int fileid); }
+       SYS_GETSID                 = 310 // { int getsid(pid_t pid); }
+       SYS_SETRESUID              = 311 // { int setresuid(uid_t ruid, uid_t euid, uid_t suid); }
+       SYS_SETRESGID              = 312 // { int setresgid(gid_t rgid, gid_t egid, gid_t sgid); }
+       SYS_AIO_RETURN             = 314 // { int aio_return(struct aiocb *aiocbp); }
+       SYS_AIO_SUSPEND            = 315 // { int aio_suspend(struct aiocb * const * aiocbp, int nent, const struct timespec *timeout); }
+       SYS_AIO_CANCEL             = 316 // { int aio_cancel(int fd, struct aiocb *aiocbp); }
+       SYS_AIO_ERROR              = 317 // { int aio_error(struct aiocb *aiocbp); }
+       SYS_AIO_READ               = 318 // { int aio_read(struct aiocb *aiocbp); }
+       SYS_AIO_WRITE              = 319 // { int aio_write(struct aiocb *aiocbp); }
+       SYS_LIO_LISTIO             = 320 // { int lio_listio(int mode, struct aiocb * const *acb_list, int nent, struct sigevent *sig); }
+       SYS_YIELD                  = 321 // { int yield(void); }
+       SYS_MLOCKALL               = 324 // { int mlockall(int how); }
+       SYS_MUNLOCKALL             = 325 // { int munlockall(void); }
+       SYS___GETCWD               = 326 // { int __getcwd(u_char *buf, u_int buflen); }
+       SYS_SCHED_SETPARAM         = 327 // { int sched_setparam (pid_t pid, const struct sched_param *param); }
+       SYS_SCHED_GETPARAM         = 328 // { int sched_getparam (pid_t pid, struct sched_param *param); }
+       SYS_SCHED_SETSCHEDULER     = 329 // { int sched_setscheduler (pid_t pid, int policy, const struct sched_param *param); }
+       SYS_SCHED_GETSCHEDULER     = 330 // { int sched_getscheduler (pid_t pid); }
+       SYS_SCHED_YIELD            = 331 // { int sched_yield (void); }
+       SYS_SCHED_GET_PRIORITY_MAX = 332 // { int sched_get_priority_max (int policy); }
+       SYS_SCHED_GET_PRIORITY_MIN = 333 // { int sched_get_priority_min (int policy); }
+       SYS_SCHED_RR_GET_INTERVAL  = 334 // { int sched_rr_get_interval (pid_t pid, struct timespec *interval); }
+       SYS_UTRACE                 = 335 // { int utrace(const void *addr, size_t len); }
+       SYS_KLDSYM                 = 337 // { int kldsym(int fileid, int cmd, void *data); }
+       SYS_JAIL                   = 338 // { int jail(struct jail *jail); }
+       SYS_SIGPROCMASK            = 340 // { int sigprocmask(int how, const sigset_t *set, \
+       SYS_SIGSUSPEND             = 341 // { int sigsuspend(const sigset_t *sigmask); }
+       SYS_SIGACTION              = 342 // { int sigaction(int sig, const struct sigaction *act, \
+       SYS_SIGPENDING             = 343 // { int sigpending(sigset_t *set); }
+       SYS_SIGRETURN              = 344 // { int sigreturn(ucontext_t *sigcntxp); }
+       SYS_SIGTIMEDWAIT           = 345 // { int sigtimedwait(const sigset_t *set,\
+       SYS_SIGWAITINFO            = 346 // { int sigwaitinfo(const sigset_t *set,\
+       SYS___ACL_GET_FILE         = 347 // { int __acl_get_file(const char *path, \
+       SYS___ACL_SET_FILE         = 348 // { int __acl_set_file(const char *path, \
+       SYS___ACL_GET_FD           = 349 // { int __acl_get_fd(int filedes, acl_type_t type, \
+       SYS___ACL_SET_FD           = 350 // { int __acl_set_fd(int filedes, acl_type_t type, \
+       SYS___ACL_DELETE_FILE      = 351 // { int __acl_delete_file(const char *path, \
+       SYS___ACL_DELETE_FD        = 352 // { int __acl_delete_fd(int filedes, acl_type_t type); }
+       SYS___ACL_ACLCHECK_FILE    = 353 // { int __acl_aclcheck_file(const char *path, \
+       SYS___ACL_ACLCHECK_FD      = 354 // { int __acl_aclcheck_fd(int filedes, acl_type_t type, \
+       SYS_EXTATTRCTL             = 355 // { int extattrctl(const char *path, int cmd, \
+       SYS_EXTATTR_SET_FILE       = 356 // { int extattr_set_file(const char *path, \
+       SYS_EXTATTR_GET_FILE       = 357 // { int extattr_get_file(const char *path, \
+       SYS_EXTATTR_DELETE_FILE    = 358 // { int extattr_delete_file(const char *path, \
+       SYS_AIO_WAITCOMPLETE       = 359 // { int aio_waitcomplete(struct aiocb **aiocbp, struct timespec *timeout); }
+       SYS_GETRESUID              = 360 // { int getresuid(uid_t *ruid, uid_t *euid, uid_t *suid); }
+       SYS_GETRESGID              = 361 // { int getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid); }
+       SYS_KQUEUE                 = 362 // { int kqueue(void); }
+       SYS_KEVENT                 = 363 // { int kevent(int fd, \
+       SYS_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_VARSYM_SET             = 450 // { int varsym_set(int level, const char *name, const char *data); }
+       SYS_VARSYM_GET             = 451 // { int varsym_get(int mask, const char *wild, char *buf, int bufsize); }
+       SYS_VARSYM_LIST            = 452 // { int varsym_list(int level, char *buf, int maxsize, int *marker); }
+       SYS_EXEC_SYS_REGISTER      = 465 // { int exec_sys_register(void *entry); }
+       SYS_EXEC_SYS_UNREGISTER    = 466 // { int exec_sys_unregister(int id); }
+       SYS_SYS_CHECKPOINT         = 467 // { int sys_checkpoint(int type, int fd, pid_t pid, int retval); }
+       SYS_MOUNTCTL               = 468 // { int mountctl(const char *path, int op, int fd, const void *ctl, int ctllen, void *buf, int buflen); }
+       SYS_UMTX_SLEEP             = 469 // { int umtx_sleep(volatile const int *ptr, int value, int timeout); }
+       SYS_UMTX_WAKEUP            = 470 // { int umtx_wakeup(volatile const int *ptr, int count); }
+       SYS_JAIL_ATTACH            = 471 // { int jail_attach(int jid); }
+       SYS_SET_TLS_AREA           = 472 // { int set_tls_area(int which, struct tls_info *info, size_t infosize); }
+       SYS_GET_TLS_AREA           = 473 // { int get_tls_area(int which, struct tls_info *info, size_t infosize); }
+       SYS_CLOSEFROM              = 474 // { int closefrom(int fd); }
+       SYS_STAT                   = 475 // { int stat(const char *path, struct stat *ub); }
+       SYS_FSTAT                  = 476 // { int fstat(int fd, struct stat *sb); }
+       SYS_LSTAT                  = 477 // { int lstat(const char *path, struct stat *ub); }
+       SYS_FHSTAT                 = 478 // { int fhstat(const struct fhandle *u_fhp, struct stat *sb); }
+       SYS_GETDIRENTRIES          = 479 // { int getdirentries(int fd, char *buf, u_int count, \
+       SYS_GETDENTS               = 480 // { int getdents(int fd, char *buf, size_t count); }
+       SYS_USCHED_SET             = 481 // { int usched_set(pid_t pid, int cmd, void *data, \
+       SYS_EXTACCEPT              = 482 // { int extaccept(int s, int flags, caddr_t name, int *anamelen); }
+       SYS_EXTCONNECT             = 483 // { int extconnect(int s, int flags, caddr_t name, int namelen); }
+       SYS_MCONTROL               = 485 // { int mcontrol(void *addr, size_t len, int behav, off_t value); }
+       SYS_VMSPACE_CREATE         = 486 // { int vmspace_create(void *id, int type, void *data); }
+       SYS_VMSPACE_DESTROY        = 487 // { int vmspace_destroy(void *id); }
+       SYS_VMSPACE_CTL            = 488 // { int vmspace_ctl(void *id, int cmd,                \
+       SYS_VMSPACE_MMAP           = 489 // { int vmspace_mmap(void *id, void *addr, size_t len, \
+       SYS_VMSPACE_MUNMAP         = 490 // { int vmspace_munmap(void *id, void *addr,  \
+       SYS_VMSPACE_MCONTROL       = 491 // { int vmspace_mcontrol(void *id, void *addr,        \
+       SYS_VMSPACE_PREAD          = 492 // { ssize_t vmspace_pread(void *id, void *buf, \
+       SYS_VMSPACE_PWRITE         = 493 // { ssize_t vmspace_pwrite(void *id, const void *buf, \
+       SYS_EXTEXIT                = 494 // { void extexit(int how, int status, void *addr); }
+       SYS_LWP_CREATE             = 495 // { int lwp_create(struct lwp_params *params); }
+       SYS_LWP_GETTID             = 496 // { lwpid_t lwp_gettid(void); }
+       SYS_LWP_KILL               = 497 // { int lwp_kill(pid_t pid, lwpid_t tid, int signum); }
+       SYS_LWP_RTPRIO             = 498 // { int lwp_rtprio(int function, pid_t pid, lwpid_t tid, struct rtprio *rtp); }
+       SYS_PSELECT                = 499 // { int pselect(int nd, fd_set *in, fd_set *ou, \
+       SYS_STATVFS                = 500 // { int statvfs(const char *path, struct statvfs *buf); }
+       SYS_FSTATVFS               = 501 // { int fstatvfs(int fd, struct statvfs *buf); }
+       SYS_FHSTATVFS              = 502 // { int fhstatvfs(const struct fhandle *u_fhp, struct statvfs *buf); }
+       SYS_GETVFSSTAT             = 503 // { int getvfsstat(struct statfs *buf,          \
+       SYS_OPENAT                 = 504 // { int openat(int fd, char *path, int flags, int mode); }
+       SYS_FSTATAT                = 505 // { int fstatat(int fd, char *path,   \
+       SYS_FCHMODAT               = 506 // { int fchmodat(int fd, char *path, int mode, \
+       SYS_FCHOWNAT               = 507 // { int fchownat(int fd, char *path, int uid, int gid, \
+       SYS_UNLINKAT               = 508 // { int unlinkat(int fd, char *path, int flags); }
+       SYS_FACCESSAT              = 509 // { int faccessat(int fd, char *path, int amode, \
+       SYS_MQ_OPEN                = 510 // { mqd_t mq_open(const char * name, int oflag, \
+       SYS_MQ_CLOSE               = 511 // { int mq_close(mqd_t mqdes); }
+       SYS_MQ_UNLINK              = 512 // { int mq_unlink(const char *name); }
+       SYS_MQ_GETATTR             = 513 // { int mq_getattr(mqd_t mqdes, \
+       SYS_MQ_SETATTR             = 514 // { int mq_setattr(mqd_t mqdes, \
+       SYS_MQ_NOTIFY              = 515 // { int mq_notify(mqd_t mqdes, \
+       SYS_MQ_SEND                = 516 // { int mq_send(mqd_t mqdes, const char *msg_ptr, \
+       SYS_MQ_RECEIVE             = 517 // { ssize_t mq_receive(mqd_t mqdes, char *msg_ptr, \
+       SYS_MQ_TIMEDSEND           = 518 // { int mq_timedsend(mqd_t mqdes, \
+       SYS_MQ_TIMEDRECEIVE        = 519 // { ssize_t mq_timedreceive(mqd_t mqdes, \
+       SYS_IOPRIO_SET             = 520 // { int ioprio_set(int which, int who, int prio); }
+       SYS_IOPRIO_GET             = 521 // { int ioprio_get(int which, int who); }
+       SYS_CHROOT_KERNEL          = 522 // { int chroot_kernel(char *path); }
+       SYS_RENAMEAT               = 523 // { int renameat(int oldfd, char *old, int newfd, \
+       SYS_MKDIRAT                = 524 // { int mkdirat(int fd, char *path, mode_t mode); }
+       SYS_MKFIFOAT               = 525 // { int mkfifoat(int fd, char *path, mode_t mode); }
+       SYS_MKNODAT                = 526 // { int mknodat(int fd, char *path, mode_t mode, \
+       SYS_READLINKAT             = 527 // { int readlinkat(int fd, char *path, char *buf, \
+       SYS_SYMLINKAT              = 528 // { int symlinkat(char *path1, int fd, char *path2); }
+       SYS_SWAPOFF                = 529 // { int swapoff(char *name); }
+       SYS_VQUOTACTL              = 530 // { int vquotactl(const char *path, \
+       SYS_LINKAT                 = 531 // { int linkat(int fd1, char *path1, int fd2, \
+       SYS_EACCESS                = 532 // { int eaccess(char *path, int flags); }
+       SYS_LPATHCONF              = 533 // { int lpathconf(char *path, int name); }
+       SYS_VMM_GUEST_CTL          = 534 // { int vmm_guest_ctl(int op, struct vmm_guest_options *options); }
+       SYS_VMM_GUEST_SYNC_ADDR    = 535 // { int vmm_guest_sync_addr(long *dstaddr, long *srcaddr); }
+       SYS_PROCCTL                = 536 // { int procctl(idtype_t idtype, id_t id, int cmd, void *data); }
+       SYS_CHFLAGSAT              = 537 // { int chflagsat(int fd, const char *path, int flags, int atflags);}
+       SYS_PIPE2                  = 538 // { int pipe2(int *fildes, int flags); }
+       SYS_UTIMENSAT              = 539 // { int utimensat(int fd, const char *path, const struct timespec *ts, int flags); }
+       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_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
new file mode 100644 (file)
index 0000000..b64a812
--- /dev/null
@@ -0,0 +1,353 @@
+// mksysnum_freebsd.pl
+// Code generated by the command above; see README.md. DO NOT EDIT.
+
+// +build 386,freebsd
+
+package unix
+
+const (
+       // SYS_NOSYS = 0;  // { int nosys(void); } syscall nosys_args int
+       SYS_EXIT                   = 1   // { void sys_exit(int rval); } exit \
+       SYS_FORK                   = 2   // { int fork(void); }
+       SYS_READ                   = 3   // { ssize_t read(int fd, void *buf, \
+       SYS_WRITE                  = 4   // { ssize_t write(int fd, const void *buf, \
+       SYS_OPEN                   = 5   // { int open(char *path, int flags, int mode); }
+       SYS_CLOSE                  = 6   // { int close(int fd); }
+       SYS_WAIT4                  = 7   // { int wait4(int pid, int *status, \
+       SYS_LINK                   = 9   // { int link(char *path, char *link); }
+       SYS_UNLINK                 = 10  // { int unlink(char *path); }
+       SYS_CHDIR                  = 12  // { int chdir(char *path); }
+       SYS_FCHDIR                 = 13  // { int fchdir(int fd); }
+       SYS_MKNOD                  = 14  // { int mknod(char *path, int mode, int dev); }
+       SYS_CHMOD                  = 15  // { int chmod(char *path, int mode); }
+       SYS_CHOWN                  = 16  // { int chown(char *path, int uid, int gid); }
+       SYS_OBREAK                 = 17  // { int obreak(char *nsize); } break \
+       SYS_GETPID                 = 20  // { pid_t getpid(void); }
+       SYS_MOUNT                  = 21  // { int mount(char *type, char *path, \
+       SYS_UNMOUNT                = 22  // { int unmount(char *path, int flags); }
+       SYS_SETUID                 = 23  // { int setuid(uid_t uid); }
+       SYS_GETUID                 = 24  // { uid_t getuid(void); }
+       SYS_GETEUID                = 25  // { uid_t geteuid(void); }
+       SYS_PTRACE                 = 26  // { int ptrace(int req, pid_t pid, \
+       SYS_RECVMSG                = 27  // { int recvmsg(int s, struct msghdr *msg, \
+       SYS_SENDMSG                = 28  // { int sendmsg(int s, struct msghdr *msg, \
+       SYS_RECVFROM               = 29  // { int recvfrom(int s, caddr_t buf, \
+       SYS_ACCEPT                 = 30  // { int accept(int s, \
+       SYS_GETPEERNAME            = 31  // { int getpeername(int fdes, \
+       SYS_GETSOCKNAME            = 32  // { int getsockname(int fdes, \
+       SYS_ACCESS                 = 33  // { int access(char *path, int amode); }
+       SYS_CHFLAGS                = 34  // { int chflags(const char *path, u_long flags); }
+       SYS_FCHFLAGS               = 35  // { int fchflags(int fd, u_long flags); }
+       SYS_SYNC                   = 36  // { int sync(void); }
+       SYS_KILL                   = 37  // { int kill(int pid, int signum); }
+       SYS_GETPPID                = 39  // { pid_t getppid(void); }
+       SYS_DUP                    = 41  // { int dup(u_int fd); }
+       SYS_PIPE                   = 42  // { int pipe(void); }
+       SYS_GETEGID                = 43  // { gid_t getegid(void); }
+       SYS_PROFIL                 = 44  // { int profil(caddr_t samples, size_t size, \
+       SYS_KTRACE                 = 45  // { int ktrace(const char *fname, int ops, \
+       SYS_GETGID                 = 47  // { gid_t getgid(void); }
+       SYS_GETLOGIN               = 49  // { int getlogin(char *namebuf, u_int \
+       SYS_SETLOGIN               = 50  // { int setlogin(char *namebuf); }
+       SYS_ACCT                   = 51  // { int acct(char *path); }
+       SYS_SIGALTSTACK            = 53  // { int sigaltstack(stack_t *ss, \
+       SYS_IOCTL                  = 54  // { int ioctl(int fd, u_long com, \
+       SYS_REBOOT                 = 55  // { int reboot(int opt); }
+       SYS_REVOKE                 = 56  // { int revoke(char *path); }
+       SYS_SYMLINK                = 57  // { int symlink(char *path, char *link); }
+       SYS_READLINK               = 58  // { ssize_t readlink(char *path, char *buf, \
+       SYS_EXECVE                 = 59  // { int execve(char *fname, char **argv, \
+       SYS_UMASK                  = 60  // { int umask(int newmask); } umask umask_args \
+       SYS_CHROOT                 = 61  // { int chroot(char *path); }
+       SYS_MSYNC                  = 65  // { int msync(void *addr, size_t len, \
+       SYS_VFORK                  = 66  // { int vfork(void); }
+       SYS_SBRK                   = 69  // { int sbrk(int incr); }
+       SYS_SSTK                   = 70  // { int sstk(int incr); }
+       SYS_OVADVISE               = 72  // { int ovadvise(int anom); } vadvise \
+       SYS_MUNMAP                 = 73  // { int munmap(void *addr, size_t len); }
+       SYS_MPROTECT               = 74  // { int mprotect(const void *addr, size_t len, \
+       SYS_MADVISE                = 75  // { int madvise(void *addr, size_t len, \
+       SYS_MINCORE                = 78  // { int mincore(const void *addr, size_t len, \
+       SYS_GETGROUPS              = 79  // { int getgroups(u_int gidsetsize, \
+       SYS_SETGROUPS              = 80  // { int setgroups(u_int gidsetsize, \
+       SYS_GETPGRP                = 81  // { int getpgrp(void); }
+       SYS_SETPGID                = 82  // { int setpgid(int pid, int pgid); }
+       SYS_SETITIMER              = 83  // { int setitimer(u_int which, struct \
+       SYS_SWAPON                 = 85  // { int swapon(char *name); }
+       SYS_GETITIMER              = 86  // { int getitimer(u_int which, \
+       SYS_GETDTABLESIZE          = 89  // { int getdtablesize(void); }
+       SYS_DUP2                   = 90  // { int dup2(u_int from, u_int to); }
+       SYS_FCNTL                  = 92  // { int fcntl(int fd, int cmd, long arg); }
+       SYS_SELECT                 = 93  // { int select(int nd, fd_set *in, fd_set *ou, \
+       SYS_FSYNC                  = 95  // { int fsync(int fd); }
+       SYS_SETPRIORITY            = 96  // { int setpriority(int which, int who, \
+       SYS_SOCKET                 = 97  // { int socket(int domain, int type, \
+       SYS_CONNECT                = 98  // { int connect(int s, caddr_t name, \
+       SYS_GETPRIORITY            = 100 // { int getpriority(int which, int who); }
+       SYS_BIND                   = 104 // { int bind(int s, caddr_t name, \
+       SYS_SETSOCKOPT             = 105 // { int setsockopt(int s, int level, int name, \
+       SYS_LISTEN                 = 106 // { int listen(int s, int backlog); }
+       SYS_GETTIMEOFDAY           = 116 // { int gettimeofday(struct timeval *tp, \
+       SYS_GETRUSAGE              = 117 // { int getrusage(int who, \
+       SYS_GETSOCKOPT             = 118 // { int getsockopt(int s, int level, int name, \
+       SYS_READV                  = 120 // { int readv(int fd, struct iovec *iovp, \
+       SYS_WRITEV                 = 121 // { int writev(int fd, struct iovec *iovp, \
+       SYS_SETTIMEOFDAY           = 122 // { int settimeofday(struct timeval *tv, \
+       SYS_FCHOWN                 = 123 // { int fchown(int fd, int uid, int gid); }
+       SYS_FCHMOD                 = 124 // { int fchmod(int fd, int mode); }
+       SYS_SETREUID               = 126 // { int setreuid(int ruid, int euid); }
+       SYS_SETREGID               = 127 // { int setregid(int rgid, int egid); }
+       SYS_RENAME                 = 128 // { int rename(char *from, char *to); }
+       SYS_FLOCK                  = 131 // { int flock(int fd, int how); }
+       SYS_MKFIFO                 = 132 // { int mkfifo(char *path, int mode); }
+       SYS_SENDTO                 = 133 // { int sendto(int s, caddr_t buf, size_t len, \
+       SYS_SHUTDOWN               = 134 // { int shutdown(int s, int how); }
+       SYS_SOCKETPAIR             = 135 // { int socketpair(int domain, int type, \
+       SYS_MKDIR                  = 136 // { int mkdir(char *path, int mode); }
+       SYS_RMDIR                  = 137 // { int rmdir(char *path); }
+       SYS_UTIMES                 = 138 // { int utimes(char *path, \
+       SYS_ADJTIME                = 140 // { int adjtime(struct timeval *delta, \
+       SYS_SETSID                 = 147 // { int setsid(void); }
+       SYS_QUOTACTL               = 148 // { int quotactl(char *path, int cmd, int uid, \
+       SYS_LGETFH                 = 160 // { int lgetfh(char *fname, \
+       SYS_GETFH                  = 161 // { int getfh(char *fname, \
+       SYS_SYSARCH                = 165 // { int sysarch(int op, char *parms); }
+       SYS_RTPRIO                 = 166 // { int rtprio(int function, pid_t pid, \
+       SYS_FREEBSD6_PREAD         = 173 // { ssize_t freebsd6_pread(int fd, void *buf, \
+       SYS_FREEBSD6_PWRITE        = 174 // { ssize_t freebsd6_pwrite(int fd, \
+       SYS_SETFIB                 = 175 // { int setfib(int fibnum); }
+       SYS_NTP_ADJTIME            = 176 // { int ntp_adjtime(struct timex *tp); }
+       SYS_SETGID                 = 181 // { int setgid(gid_t gid); }
+       SYS_SETEGID                = 182 // { int setegid(gid_t egid); }
+       SYS_SETEUID                = 183 // { int seteuid(uid_t euid); }
+       SYS_STAT                   = 188 // { int stat(char *path, struct stat *ub); }
+       SYS_FSTAT                  = 189 // { int fstat(int fd, struct stat *sb); }
+       SYS_LSTAT                  = 190 // { int lstat(char *path, struct stat *ub); }
+       SYS_PATHCONF               = 191 // { int pathconf(char *path, int name); }
+       SYS_FPATHCONF              = 192 // { int fpathconf(int fd, int name); }
+       SYS_GETRLIMIT              = 194 // { int getrlimit(u_int which, \
+       SYS_SETRLIMIT              = 195 // { int setrlimit(u_int which, \
+       SYS_GETDIRENTRIES          = 196 // { int getdirentries(int fd, char *buf, \
+       SYS_FREEBSD6_MMAP          = 197 // { caddr_t freebsd6_mmap(caddr_t addr, \
+       SYS_FREEBSD6_LSEEK         = 199 // { off_t freebsd6_lseek(int fd, int pad, \
+       SYS_FREEBSD6_TRUNCATE      = 200 // { int freebsd6_truncate(char *path, int pad, \
+       SYS_FREEBSD6_FTRUNCATE     = 201 // { int freebsd6_ftruncate(int fd, int pad, \
+       SYS___SYSCTL               = 202 // { int __sysctl(int *name, u_int namelen, \
+       SYS_MLOCK                  = 203 // { int mlock(const void *addr, size_t len); }
+       SYS_MUNLOCK                = 204 // { int munlock(const void *addr, size_t len); }
+       SYS_UNDELETE               = 205 // { int undelete(char *path); }
+       SYS_FUTIMES                = 206 // { int futimes(int fd, struct timeval *tptr); }
+       SYS_GETPGID                = 207 // { int getpgid(pid_t pid); }
+       SYS_POLL                   = 209 // { int poll(struct pollfd *fds, u_int nfds, \
+       SYS_CLOCK_GETTIME          = 232 // { int clock_gettime(clockid_t clock_id, \
+       SYS_CLOCK_SETTIME          = 233 // { int clock_settime( \
+       SYS_CLOCK_GETRES           = 234 // { int clock_getres(clockid_t clock_id, \
+       SYS_KTIMER_CREATE          = 235 // { int ktimer_create(clockid_t clock_id, \
+       SYS_KTIMER_DELETE          = 236 // { int ktimer_delete(int timerid); }
+       SYS_KTIMER_SETTIME         = 237 // { int ktimer_settime(int timerid, int flags, \
+       SYS_KTIMER_GETTIME         = 238 // { int ktimer_gettime(int timerid, struct \
+       SYS_KTIMER_GETOVERRUN      = 239 // { int ktimer_getoverrun(int timerid); }
+       SYS_NANOSLEEP              = 240 // { int nanosleep(const struct timespec *rqtp, \
+       SYS_FFCLOCK_GETCOUNTER     = 241 // { int ffclock_getcounter(ffcounter *ffcount); }
+       SYS_FFCLOCK_SETESTIMATE    = 242 // { int ffclock_setestimate( \
+       SYS_FFCLOCK_GETESTIMATE    = 243 // { int ffclock_getestimate( \
+       SYS_CLOCK_GETCPUCLOCKID2   = 247 // { int clock_getcpuclockid2(id_t id,\
+       SYS_NTP_GETTIME            = 248 // { int ntp_gettime(struct ntptimeval *ntvp); }
+       SYS_MINHERIT               = 250 // { int minherit(void *addr, size_t len, \
+       SYS_RFORK                  = 251 // { int rfork(int flags); }
+       SYS_OPENBSD_POLL           = 252 // { int openbsd_poll(struct pollfd *fds, \
+       SYS_ISSETUGID              = 253 // { int issetugid(void); }
+       SYS_LCHOWN                 = 254 // { int lchown(char *path, int uid, int gid); }
+       SYS_GETDENTS               = 272 // { int getdents(int fd, char *buf, \
+       SYS_LCHMOD                 = 274 // { int lchmod(char *path, mode_t mode); }
+       SYS_LUTIMES                = 276 // { int lutimes(char *path, \
+       SYS_NSTAT                  = 278 // { int nstat(char *path, struct nstat *ub); }
+       SYS_NFSTAT                 = 279 // { int nfstat(int fd, struct nstat *sb); }
+       SYS_NLSTAT                 = 280 // { int nlstat(char *path, struct nstat *ub); }
+       SYS_PREADV                 = 289 // { ssize_t preadv(int fd, struct iovec *iovp, \
+       SYS_PWRITEV                = 290 // { ssize_t pwritev(int fd, struct iovec *iovp, \
+       SYS_FHOPEN                 = 298 // { int fhopen(const struct fhandle *u_fhp, \
+       SYS_FHSTAT                 = 299 // { int fhstat(const struct fhandle *u_fhp, \
+       SYS_MODNEXT                = 300 // { int modnext(int modid); }
+       SYS_MODSTAT                = 301 // { int modstat(int modid, \
+       SYS_MODFNEXT               = 302 // { int modfnext(int modid); }
+       SYS_MODFIND                = 303 // { int modfind(const char *name); }
+       SYS_KLDLOAD                = 304 // { int kldload(const char *file); }
+       SYS_KLDUNLOAD              = 305 // { int kldunload(int fileid); }
+       SYS_KLDFIND                = 306 // { int kldfind(const char *file); }
+       SYS_KLDNEXT                = 307 // { int kldnext(int fileid); }
+       SYS_KLDSTAT                = 308 // { int kldstat(int fileid, struct \
+       SYS_KLDFIRSTMOD            = 309 // { int kldfirstmod(int fileid); }
+       SYS_GETSID                 = 310 // { int getsid(pid_t pid); }
+       SYS_SETRESUID              = 311 // { int setresuid(uid_t ruid, uid_t euid, \
+       SYS_SETRESGID              = 312 // { int setresgid(gid_t rgid, gid_t egid, \
+       SYS_YIELD                  = 321 // { int yield(void); }
+       SYS_MLOCKALL               = 324 // { int mlockall(int how); }
+       SYS_MUNLOCKALL             = 325 // { int munlockall(void); }
+       SYS___GETCWD               = 326 // { int __getcwd(char *buf, u_int buflen); }
+       SYS_SCHED_SETPARAM         = 327 // { int sched_setparam (pid_t pid, \
+       SYS_SCHED_GETPARAM         = 328 // { int sched_getparam (pid_t pid, struct \
+       SYS_SCHED_SETSCHEDULER     = 329 // { int sched_setscheduler (pid_t pid, int \
+       SYS_SCHED_GETSCHEDULER     = 330 // { int sched_getscheduler (pid_t pid); }
+       SYS_SCHED_YIELD            = 331 // { int sched_yield (void); }
+       SYS_SCHED_GET_PRIORITY_MAX = 332 // { int sched_get_priority_max (int policy); }
+       SYS_SCHED_GET_PRIORITY_MIN = 333 // { int sched_get_priority_min (int policy); }
+       SYS_SCHED_RR_GET_INTERVAL  = 334 // { int sched_rr_get_interval (pid_t pid, \
+       SYS_UTRACE                 = 335 // { int utrace(const void *addr, size_t len); }
+       SYS_KLDSYM                 = 337 // { int kldsym(int fileid, int cmd, \
+       SYS_JAIL                   = 338 // { int jail(struct jail *jail); }
+       SYS_SIGPROCMASK            = 340 // { int sigprocmask(int how, \
+       SYS_SIGSUSPEND             = 341 // { int sigsuspend(const sigset_t *sigmask); }
+       SYS_SIGPENDING             = 343 // { int sigpending(sigset_t *set); }
+       SYS_SIGTIMEDWAIT           = 345 // { int sigtimedwait(const sigset_t *set, \
+       SYS_SIGWAITINFO            = 346 // { int sigwaitinfo(const sigset_t *set, \
+       SYS___ACL_GET_FILE         = 347 // { int __acl_get_file(const char *path, \
+       SYS___ACL_SET_FILE         = 348 // { int __acl_set_file(const char *path, \
+       SYS___ACL_GET_FD           = 349 // { int __acl_get_fd(int filedes, \
+       SYS___ACL_SET_FD           = 350 // { int __acl_set_fd(int filedes, \
+       SYS___ACL_DELETE_FILE      = 351 // { int __acl_delete_file(const char *path, \
+       SYS___ACL_DELETE_FD        = 352 // { int __acl_delete_fd(int filedes, \
+       SYS___ACL_ACLCHECK_FILE    = 353 // { int __acl_aclcheck_file(const char *path, \
+       SYS___ACL_ACLCHECK_FD      = 354 // { int __acl_aclcheck_fd(int filedes, \
+       SYS_EXTATTRCTL             = 355 // { int extattrctl(const char *path, int cmd, \
+       SYS_EXTATTR_SET_FILE       = 356 // { ssize_t extattr_set_file( \
+       SYS_EXTATTR_GET_FILE       = 357 // { ssize_t extattr_get_file( \
+       SYS_EXTATTR_DELETE_FILE    = 358 // { int extattr_delete_file(const char *path, \
+       SYS_GETRESUID              = 360 // { int getresuid(uid_t *ruid, uid_t *euid, \
+       SYS_GETRESGID              = 361 // { int getresgid(gid_t *rgid, gid_t *egid, \
+       SYS_KQUEUE                 = 362 // { int kqueue(void); }
+       SYS_KEVENT                 = 363 // { int kevent(int fd, \
+       SYS_EXTATTR_SET_FD         = 371 // { ssize_t extattr_set_fd(int fd, \
+       SYS_EXTATTR_GET_FD         = 372 // { ssize_t extattr_get_fd(int fd, \
+       SYS_EXTATTR_DELETE_FD      = 373 // { int extattr_delete_fd(int fd, \
+       SYS___SETUGID              = 374 // { int __setugid(int flag); }
+       SYS_EACCESS                = 376 // { int eaccess(char *path, int amode); }
+       SYS_NMOUNT                 = 378 // { int nmount(struct iovec *iovp, \
+       SYS___MAC_GET_PROC         = 384 // { int __mac_get_proc(struct mac *mac_p); }
+       SYS___MAC_SET_PROC         = 385 // { int __mac_set_proc(struct mac *mac_p); }
+       SYS___MAC_GET_FD           = 386 // { int __mac_get_fd(int fd, \
+       SYS___MAC_GET_FILE         = 387 // { int __mac_get_file(const char *path_p, \
+       SYS___MAC_SET_FD           = 388 // { int __mac_set_fd(int fd, \
+       SYS___MAC_SET_FILE         = 389 // { int __mac_set_file(const char *path_p, \
+       SYS_KENV                   = 390 // { int kenv(int what, const char *name, \
+       SYS_LCHFLAGS               = 391 // { int lchflags(const char *path, \
+       SYS_UUIDGEN                = 392 // { int uuidgen(struct uuid *store, \
+       SYS_SENDFILE               = 393 // { int sendfile(int fd, int s, off_t offset, \
+       SYS_MAC_SYSCALL            = 394 // { int mac_syscall(const char *policy, \
+       SYS_GETFSSTAT              = 395 // { int getfsstat(struct statfs *buf, \
+       SYS_STATFS                 = 396 // { int statfs(char *path, \
+       SYS_FSTATFS                = 397 // { int fstatfs(int fd, struct statfs *buf); }
+       SYS_FHSTATFS               = 398 // { int fhstatfs(const struct fhandle *u_fhp, \
+       SYS___MAC_GET_PID          = 409 // { int __mac_get_pid(pid_t pid, \
+       SYS___MAC_GET_LINK         = 410 // { int __mac_get_link(const char *path_p, \
+       SYS___MAC_SET_LINK         = 411 // { int __mac_set_link(const char *path_p, \
+       SYS_EXTATTR_SET_LINK       = 412 // { ssize_t extattr_set_link( \
+       SYS_EXTATTR_GET_LINK       = 413 // { ssize_t extattr_get_link( \
+       SYS_EXTATTR_DELETE_LINK    = 414 // { int extattr_delete_link( \
+       SYS___MAC_EXECVE           = 415 // { int __mac_execve(char *fname, char **argv, \
+       SYS_SIGACTION              = 416 // { int sigaction(int sig, \
+       SYS_SIGRETURN              = 417 // { int sigreturn( \
+       SYS_GETCONTEXT             = 421 // { int getcontext(struct __ucontext *ucp); }
+       SYS_SETCONTEXT             = 422 // { int setcontext( \
+       SYS_SWAPCONTEXT            = 423 // { int swapcontext(struct __ucontext *oucp, \
+       SYS_SWAPOFF                = 424 // { int swapoff(const char *name); }
+       SYS___ACL_GET_LINK         = 425 // { int __acl_get_link(const char *path, \
+       SYS___ACL_SET_LINK         = 426 // { int __acl_set_link(const char *path, \
+       SYS___ACL_DELETE_LINK      = 427 // { int __acl_delete_link(const char *path, \
+       SYS___ACL_ACLCHECK_LINK    = 428 // { int __acl_aclcheck_link(const char *path, \
+       SYS_SIGWAIT                = 429 // { int sigwait(const sigset_t *set, \
+       SYS_THR_CREATE             = 430 // { int thr_create(ucontext_t *ctx, long *id, \
+       SYS_THR_EXIT               = 431 // { void thr_exit(long *state); }
+       SYS_THR_SELF               = 432 // { int thr_self(long *id); }
+       SYS_THR_KILL               = 433 // { int thr_kill(long id, int sig); }
+       SYS__UMTX_LOCK             = 434 // { int _umtx_lock(struct umtx *umtx); }
+       SYS__UMTX_UNLOCK           = 435 // { int _umtx_unlock(struct umtx *umtx); }
+       SYS_JAIL_ATTACH            = 436 // { int jail_attach(int jid); }
+       SYS_EXTATTR_LIST_FD        = 437 // { ssize_t extattr_list_fd(int fd, \
+       SYS_EXTATTR_LIST_FILE      = 438 // { ssize_t extattr_list_file( \
+       SYS_EXTATTR_LIST_LINK      = 439 // { ssize_t extattr_list_link( \
+       SYS_THR_SUSPEND            = 442 // { int thr_suspend( \
+       SYS_THR_WAKE               = 443 // { int thr_wake(long id); }
+       SYS_KLDUNLOADF             = 444 // { int kldunloadf(int fileid, int flags); }
+       SYS_AUDIT                  = 445 // { int audit(const void *record, \
+       SYS_AUDITON                = 446 // { int auditon(int cmd, void *data, \
+       SYS_GETAUID                = 447 // { int getauid(uid_t *auid); }
+       SYS_SETAUID                = 448 // { int setauid(uid_t *auid); }
+       SYS_GETAUDIT               = 449 // { int getaudit(struct auditinfo *auditinfo); }
+       SYS_SETAUDIT               = 450 // { int setaudit(struct auditinfo *auditinfo); }
+       SYS_GETAUDIT_ADDR          = 451 // { int getaudit_addr( \
+       SYS_SETAUDIT_ADDR          = 452 // { int setaudit_addr( \
+       SYS_AUDITCTL               = 453 // { int auditctl(char *path); }
+       SYS__UMTX_OP               = 454 // { int _umtx_op(void *obj, int op, \
+       SYS_THR_NEW                = 455 // { int thr_new(struct thr_param *param, \
+       SYS_SIGQUEUE               = 456 // { int sigqueue(pid_t pid, int signum, void *value); }
+       SYS_ABORT2                 = 463 // { int abort2(const char *why, int nargs, void **args); }
+       SYS_THR_SET_NAME           = 464 // { int thr_set_name(long id, const char *name); }
+       SYS_RTPRIO_THREAD          = 466 // { int rtprio_thread(int function, \
+       SYS_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, \
+)
diff --git a/vendor/golang.org/x/sys/unix/zsysnum_freebsd_amd64.go b/vendor/golang.org/x/sys/unix/zsysnum_freebsd_amd64.go
new file mode 100644 (file)
index 0000000..81722ac
--- /dev/null
@@ -0,0 +1,353 @@
+// mksysnum_freebsd.pl
+// Code generated by the command above; see README.md. DO NOT EDIT.
+
+// +build amd64,freebsd
+
+package unix
+
+const (
+       // SYS_NOSYS = 0;  // { int nosys(void); } syscall nosys_args int
+       SYS_EXIT                   = 1   // { void sys_exit(int rval); } exit \
+       SYS_FORK                   = 2   // { int fork(void); }
+       SYS_READ                   = 3   // { ssize_t read(int fd, void *buf, \
+       SYS_WRITE                  = 4   // { ssize_t write(int fd, const void *buf, \
+       SYS_OPEN                   = 5   // { int open(char *path, int flags, int mode); }
+       SYS_CLOSE                  = 6   // { int close(int fd); }
+       SYS_WAIT4                  = 7   // { int wait4(int pid, int *status, \
+       SYS_LINK                   = 9   // { int link(char *path, char *link); }
+       SYS_UNLINK                 = 10  // { int unlink(char *path); }
+       SYS_CHDIR                  = 12  // { int chdir(char *path); }
+       SYS_FCHDIR                 = 13  // { int fchdir(int fd); }
+       SYS_MKNOD                  = 14  // { int mknod(char *path, int mode, int dev); }
+       SYS_CHMOD                  = 15  // { int chmod(char *path, int mode); }
+       SYS_CHOWN                  = 16  // { int chown(char *path, int uid, int gid); }
+       SYS_OBREAK                 = 17  // { int obreak(char *nsize); } break \
+       SYS_GETPID                 = 20  // { pid_t getpid(void); }
+       SYS_MOUNT                  = 21  // { int mount(char *type, char *path, \
+       SYS_UNMOUNT                = 22  // { int unmount(char *path, int flags); }
+       SYS_SETUID                 = 23  // { int setuid(uid_t uid); }
+       SYS_GETUID                 = 24  // { uid_t getuid(void); }
+       SYS_GETEUID                = 25  // { uid_t geteuid(void); }
+       SYS_PTRACE                 = 26  // { int ptrace(int req, pid_t pid, \
+       SYS_RECVMSG                = 27  // { int recvmsg(int s, struct msghdr *msg, \
+       SYS_SENDMSG                = 28  // { int sendmsg(int s, struct msghdr *msg, \
+       SYS_RECVFROM               = 29  // { int recvfrom(int s, caddr_t buf, \
+       SYS_ACCEPT                 = 30  // { int accept(int s, \
+       SYS_GETPEERNAME            = 31  // { int getpeername(int fdes, \
+       SYS_GETSOCKNAME            = 32  // { int getsockname(int fdes, \
+       SYS_ACCESS                 = 33  // { int access(char *path, int amode); }
+       SYS_CHFLAGS                = 34  // { int chflags(const char *path, u_long flags); }
+       SYS_FCHFLAGS               = 35  // { int fchflags(int fd, u_long flags); }
+       SYS_SYNC                   = 36  // { int sync(void); }
+       SYS_KILL                   = 37  // { int kill(int pid, int signum); }
+       SYS_GETPPID                = 39  // { pid_t getppid(void); }
+       SYS_DUP                    = 41  // { int dup(u_int fd); }
+       SYS_PIPE                   = 42  // { int pipe(void); }
+       SYS_GETEGID                = 43  // { gid_t getegid(void); }
+       SYS_PROFIL                 = 44  // { int profil(caddr_t samples, size_t size, \
+       SYS_KTRACE                 = 45  // { int ktrace(const char *fname, int ops, \
+       SYS_GETGID                 = 47  // { gid_t getgid(void); }
+       SYS_GETLOGIN               = 49  // { int getlogin(char *namebuf, u_int \
+       SYS_SETLOGIN               = 50  // { int setlogin(char *namebuf); }
+       SYS_ACCT                   = 51  // { int acct(char *path); }
+       SYS_SIGALTSTACK            = 53  // { int sigaltstack(stack_t *ss, \
+       SYS_IOCTL                  = 54  // { int ioctl(int fd, u_long com, \
+       SYS_REBOOT                 = 55  // { int reboot(int opt); }
+       SYS_REVOKE                 = 56  // { int revoke(char *path); }
+       SYS_SYMLINK                = 57  // { int symlink(char *path, char *link); }
+       SYS_READLINK               = 58  // { ssize_t readlink(char *path, char *buf, \
+       SYS_EXECVE                 = 59  // { int execve(char *fname, char **argv, \
+       SYS_UMASK                  = 60  // { int umask(int newmask); } umask umask_args \
+       SYS_CHROOT                 = 61  // { int chroot(char *path); }
+       SYS_MSYNC                  = 65  // { int msync(void *addr, size_t len, \
+       SYS_VFORK                  = 66  // { int vfork(void); }
+       SYS_SBRK                   = 69  // { int sbrk(int incr); }
+       SYS_SSTK                   = 70  // { int sstk(int incr); }
+       SYS_OVADVISE               = 72  // { int ovadvise(int anom); } vadvise \
+       SYS_MUNMAP                 = 73  // { int munmap(void *addr, size_t len); }
+       SYS_MPROTECT               = 74  // { int mprotect(const void *addr, size_t len, \
+       SYS_MADVISE                = 75  // { int madvise(void *addr, size_t len, \
+       SYS_MINCORE                = 78  // { int mincore(const void *addr, size_t len, \
+       SYS_GETGROUPS              = 79  // { int getgroups(u_int gidsetsize, \
+       SYS_SETGROUPS              = 80  // { int setgroups(u_int gidsetsize, \
+       SYS_GETPGRP                = 81  // { int getpgrp(void); }
+       SYS_SETPGID                = 82  // { int setpgid(int pid, int pgid); }
+       SYS_SETITIMER              = 83  // { int setitimer(u_int which, struct \
+       SYS_SWAPON                 = 85  // { int swapon(char *name); }
+       SYS_GETITIMER              = 86  // { int getitimer(u_int which, \
+       SYS_GETDTABLESIZE          = 89  // { int getdtablesize(void); }
+       SYS_DUP2                   = 90  // { int dup2(u_int from, u_int to); }
+       SYS_FCNTL                  = 92  // { int fcntl(int fd, int cmd, long arg); }
+       SYS_SELECT                 = 93  // { int select(int nd, fd_set *in, fd_set *ou, \
+       SYS_FSYNC                  = 95  // { int fsync(int fd); }
+       SYS_SETPRIORITY            = 96  // { int setpriority(int which, int who, \
+       SYS_SOCKET                 = 97  // { int socket(int domain, int type, \
+       SYS_CONNECT                = 98  // { int connect(int s, caddr_t name, \
+       SYS_GETPRIORITY            = 100 // { int getpriority(int which, int who); }
+       SYS_BIND                   = 104 // { int bind(int s, caddr_t name, \
+       SYS_SETSOCKOPT             = 105 // { int setsockopt(int s, int level, int name, \
+       SYS_LISTEN                 = 106 // { int listen(int s, int backlog); }
+       SYS_GETTIMEOFDAY           = 116 // { int gettimeofday(struct timeval *tp, \
+       SYS_GETRUSAGE              = 117 // { int getrusage(int who, \
+       SYS_GETSOCKOPT             = 118 // { int getsockopt(int s, int level, int name, \
+       SYS_READV                  = 120 // { int readv(int fd, struct iovec *iovp, \
+       SYS_WRITEV                 = 121 // { int writev(int fd, struct iovec *iovp, \
+       SYS_SETTIMEOFDAY           = 122 // { int settimeofday(struct timeval *tv, \
+       SYS_FCHOWN                 = 123 // { int fchown(int fd, int uid, int gid); }
+       SYS_FCHMOD                 = 124 // { int fchmod(int fd, int mode); }
+       SYS_SETREUID               = 126 // { int setreuid(int ruid, int euid); }
+       SYS_SETREGID               = 127 // { int setregid(int rgid, int egid); }
+       SYS_RENAME                 = 128 // { int rename(char *from, char *to); }
+       SYS_FLOCK                  = 131 // { int flock(int fd, int how); }
+       SYS_MKFIFO                 = 132 // { int mkfifo(char *path, int mode); }
+       SYS_SENDTO                 = 133 // { int sendto(int s, caddr_t buf, size_t len, \
+       SYS_SHUTDOWN               = 134 // { int shutdown(int s, int how); }
+       SYS_SOCKETPAIR             = 135 // { int socketpair(int domain, int type, \
+       SYS_MKDIR                  = 136 // { int mkdir(char *path, int mode); }
+       SYS_RMDIR                  = 137 // { int rmdir(char *path); }
+       SYS_UTIMES                 = 138 // { int utimes(char *path, \
+       SYS_ADJTIME                = 140 // { int adjtime(struct timeval *delta, \
+       SYS_SETSID                 = 147 // { int setsid(void); }
+       SYS_QUOTACTL               = 148 // { int quotactl(char *path, int cmd, int uid, \
+       SYS_LGETFH                 = 160 // { int lgetfh(char *fname, \
+       SYS_GETFH                  = 161 // { int getfh(char *fname, \
+       SYS_SYSARCH                = 165 // { int sysarch(int op, char *parms); }
+       SYS_RTPRIO                 = 166 // { int rtprio(int function, pid_t pid, \
+       SYS_FREEBSD6_PREAD         = 173 // { ssize_t freebsd6_pread(int fd, void *buf, \
+       SYS_FREEBSD6_PWRITE        = 174 // { ssize_t freebsd6_pwrite(int fd, \
+       SYS_SETFIB                 = 175 // { int setfib(int fibnum); }
+       SYS_NTP_ADJTIME            = 176 // { int ntp_adjtime(struct timex *tp); }
+       SYS_SETGID                 = 181 // { int setgid(gid_t gid); }
+       SYS_SETEGID                = 182 // { int setegid(gid_t egid); }
+       SYS_SETEUID                = 183 // { int seteuid(uid_t euid); }
+       SYS_STAT                   = 188 // { int stat(char *path, struct stat *ub); }
+       SYS_FSTAT                  = 189 // { int fstat(int fd, struct stat *sb); }
+       SYS_LSTAT                  = 190 // { int lstat(char *path, struct stat *ub); }
+       SYS_PATHCONF               = 191 // { int pathconf(char *path, int name); }
+       SYS_FPATHCONF              = 192 // { int fpathconf(int fd, int name); }
+       SYS_GETRLIMIT              = 194 // { int getrlimit(u_int which, \
+       SYS_SETRLIMIT              = 195 // { int setrlimit(u_int which, \
+       SYS_GETDIRENTRIES          = 196 // { int getdirentries(int fd, char *buf, \
+       SYS_FREEBSD6_MMAP          = 197 // { caddr_t freebsd6_mmap(caddr_t addr, \
+       SYS_FREEBSD6_LSEEK         = 199 // { off_t freebsd6_lseek(int fd, int pad, \
+       SYS_FREEBSD6_TRUNCATE      = 200 // { int freebsd6_truncate(char *path, int pad, \
+       SYS_FREEBSD6_FTRUNCATE     = 201 // { int freebsd6_ftruncate(int fd, int pad, \
+       SYS___SYSCTL               = 202 // { int __sysctl(int *name, u_int namelen, \
+       SYS_MLOCK                  = 203 // { int mlock(const void *addr, size_t len); }
+       SYS_MUNLOCK                = 204 // { int munlock(const void *addr, size_t len); }
+       SYS_UNDELETE               = 205 // { int undelete(char *path); }
+       SYS_FUTIMES                = 206 // { int futimes(int fd, struct timeval *tptr); }
+       SYS_GETPGID                = 207 // { int getpgid(pid_t pid); }
+       SYS_POLL                   = 209 // { int poll(struct pollfd *fds, u_int nfds, \
+       SYS_CLOCK_GETTIME          = 232 // { int clock_gettime(clockid_t clock_id, \
+       SYS_CLOCK_SETTIME          = 233 // { int clock_settime( \
+       SYS_CLOCK_GETRES           = 234 // { int clock_getres(clockid_t clock_id, \
+       SYS_KTIMER_CREATE          = 235 // { int ktimer_create(clockid_t clock_id, \
+       SYS_KTIMER_DELETE          = 236 // { int ktimer_delete(int timerid); }
+       SYS_KTIMER_SETTIME         = 237 // { int ktimer_settime(int timerid, int flags, \
+       SYS_KTIMER_GETTIME         = 238 // { int ktimer_gettime(int timerid, struct \
+       SYS_KTIMER_GETOVERRUN      = 239 // { int ktimer_getoverrun(int timerid); }
+       SYS_NANOSLEEP              = 240 // { int nanosleep(const struct timespec *rqtp, \
+       SYS_FFCLOCK_GETCOUNTER     = 241 // { int ffclock_getcounter(ffcounter *ffcount); }
+       SYS_FFCLOCK_SETESTIMATE    = 242 // { int ffclock_setestimate( \
+       SYS_FFCLOCK_GETESTIMATE    = 243 // { int ffclock_getestimate( \
+       SYS_CLOCK_GETCPUCLOCKID2   = 247 // { int clock_getcpuclockid2(id_t id,\
+       SYS_NTP_GETTIME            = 248 // { int ntp_gettime(struct ntptimeval *ntvp); }
+       SYS_MINHERIT               = 250 // { int minherit(void *addr, size_t len, \
+       SYS_RFORK                  = 251 // { int rfork(int flags); }
+       SYS_OPENBSD_POLL           = 252 // { int openbsd_poll(struct pollfd *fds, \
+       SYS_ISSETUGID              = 253 // { int issetugid(void); }
+       SYS_LCHOWN                 = 254 // { int lchown(char *path, int uid, int gid); }
+       SYS_GETDENTS               = 272 // { int getdents(int fd, char *buf, \
+       SYS_LCHMOD                 = 274 // { int lchmod(char *path, mode_t mode); }
+       SYS_LUTIMES                = 276 // { int lutimes(char *path, \
+       SYS_NSTAT                  = 278 // { int nstat(char *path, struct nstat *ub); }
+       SYS_NFSTAT                 = 279 // { int nfstat(int fd, struct nstat *sb); }
+       SYS_NLSTAT                 = 280 // { int nlstat(char *path, struct nstat *ub); }
+       SYS_PREADV                 = 289 // { ssize_t preadv(int fd, struct iovec *iovp, \
+       SYS_PWRITEV                = 290 // { ssize_t pwritev(int fd, struct iovec *iovp, \
+       SYS_FHOPEN                 = 298 // { int fhopen(const struct fhandle *u_fhp, \
+       SYS_FHSTAT                 = 299 // { int fhstat(const struct fhandle *u_fhp, \
+       SYS_MODNEXT                = 300 // { int modnext(int modid); }
+       SYS_MODSTAT                = 301 // { int modstat(int modid, \
+       SYS_MODFNEXT               = 302 // { int modfnext(int modid); }
+       SYS_MODFIND                = 303 // { int modfind(const char *name); }
+       SYS_KLDLOAD                = 304 // { int kldload(const char *file); }
+       SYS_KLDUNLOAD              = 305 // { int kldunload(int fileid); }
+       SYS_KLDFIND                = 306 // { int kldfind(const char *file); }
+       SYS_KLDNEXT                = 307 // { int kldnext(int fileid); }
+       SYS_KLDSTAT                = 308 // { int kldstat(int fileid, struct \
+       SYS_KLDFIRSTMOD            = 309 // { int kldfirstmod(int fileid); }
+       SYS_GETSID                 = 310 // { int getsid(pid_t pid); }
+       SYS_SETRESUID              = 311 // { int setresuid(uid_t ruid, uid_t euid, \
+       SYS_SETRESGID              = 312 // { int setresgid(gid_t rgid, gid_t egid, \
+       SYS_YIELD                  = 321 // { int yield(void); }
+       SYS_MLOCKALL               = 324 // { int mlockall(int how); }
+       SYS_MUNLOCKALL             = 325 // { int munlockall(void); }
+       SYS___GETCWD               = 326 // { int __getcwd(char *buf, u_int buflen); }
+       SYS_SCHED_SETPARAM         = 327 // { int sched_setparam (pid_t pid, \
+       SYS_SCHED_GETPARAM         = 328 // { int sched_getparam (pid_t pid, struct \
+       SYS_SCHED_SETSCHEDULER     = 329 // { int sched_setscheduler (pid_t pid, int \
+       SYS_SCHED_GETSCHEDULER     = 330 // { int sched_getscheduler (pid_t pid); }
+       SYS_SCHED_YIELD            = 331 // { int sched_yield (void); }
+       SYS_SCHED_GET_PRIORITY_MAX = 332 // { int sched_get_priority_max (int policy); }
+       SYS_SCHED_GET_PRIORITY_MIN = 333 // { int sched_get_priority_min (int policy); }
+       SYS_SCHED_RR_GET_INTERVAL  = 334 // { int sched_rr_get_interval (pid_t pid, \
+       SYS_UTRACE                 = 335 // { int utrace(const void *addr, size_t len); }
+       SYS_KLDSYM                 = 337 // { int kldsym(int fileid, int cmd, \
+       SYS_JAIL                   = 338 // { int jail(struct jail *jail); }
+       SYS_SIGPROCMASK            = 340 // { int sigprocmask(int how, \
+       SYS_SIGSUSPEND             = 341 // { int sigsuspend(const sigset_t *sigmask); }
+       SYS_SIGPENDING             = 343 // { int sigpending(sigset_t *set); }
+       SYS_SIGTIMEDWAIT           = 345 // { int sigtimedwait(const sigset_t *set, \
+       SYS_SIGWAITINFO            = 346 // { int sigwaitinfo(const sigset_t *set, \
+       SYS___ACL_GET_FILE         = 347 // { int __acl_get_file(const char *path, \
+       SYS___ACL_SET_FILE         = 348 // { int __acl_set_file(const char *path, \
+       SYS___ACL_GET_FD           = 349 // { int __acl_get_fd(int filedes, \
+       SYS___ACL_SET_FD           = 350 // { int __acl_set_fd(int filedes, \
+       SYS___ACL_DELETE_FILE      = 351 // { int __acl_delete_file(const char *path, \
+       SYS___ACL_DELETE_FD        = 352 // { int __acl_delete_fd(int filedes, \
+       SYS___ACL_ACLCHECK_FILE    = 353 // { int __acl_aclcheck_file(const char *path, \
+       SYS___ACL_ACLCHECK_FD      = 354 // { int __acl_aclcheck_fd(int filedes, \
+       SYS_EXTATTRCTL             = 355 // { int extattrctl(const char *path, int cmd, \
+       SYS_EXTATTR_SET_FILE       = 356 // { ssize_t extattr_set_file( \
+       SYS_EXTATTR_GET_FILE       = 357 // { ssize_t extattr_get_file( \
+       SYS_EXTATTR_DELETE_FILE    = 358 // { int extattr_delete_file(const char *path, \
+       SYS_GETRESUID              = 360 // { int getresuid(uid_t *ruid, uid_t *euid, \
+       SYS_GETRESGID              = 361 // { int getresgid(gid_t *rgid, gid_t *egid, \
+       SYS_KQUEUE                 = 362 // { int kqueue(void); }
+       SYS_KEVENT                 = 363 // { int kevent(int fd, \
+       SYS_EXTATTR_SET_FD         = 371 // { ssize_t extattr_set_fd(int fd, \
+       SYS_EXTATTR_GET_FD         = 372 // { ssize_t extattr_get_fd(int fd, \
+       SYS_EXTATTR_DELETE_FD      = 373 // { int extattr_delete_fd(int fd, \
+       SYS___SETUGID              = 374 // { int __setugid(int flag); }
+       SYS_EACCESS                = 376 // { int eaccess(char *path, int amode); }
+       SYS_NMOUNT                 = 378 // { int nmount(struct iovec *iovp, \
+       SYS___MAC_GET_PROC         = 384 // { int __mac_get_proc(struct mac *mac_p); }
+       SYS___MAC_SET_PROC         = 385 // { int __mac_set_proc(struct mac *mac_p); }
+       SYS___MAC_GET_FD           = 386 // { int __mac_get_fd(int fd, \
+       SYS___MAC_GET_FILE         = 387 // { int __mac_get_file(const char *path_p, \
+       SYS___MAC_SET_FD           = 388 // { int __mac_set_fd(int fd, \
+       SYS___MAC_SET_FILE         = 389 // { int __mac_set_file(const char *path_p, \
+       SYS_KENV                   = 390 // { int kenv(int what, const char *name, \
+       SYS_LCHFLAGS               = 391 // { int lchflags(const char *path, \
+       SYS_UUIDGEN                = 392 // { int uuidgen(struct uuid *store, \
+       SYS_SENDFILE               = 393 // { int sendfile(int fd, int s, off_t offset, \
+       SYS_MAC_SYSCALL            = 394 // { int mac_syscall(const char *policy, \
+       SYS_GETFSSTAT              = 395 // { int getfsstat(struct statfs *buf, \
+       SYS_STATFS                 = 396 // { int statfs(char *path, \
+       SYS_FSTATFS                = 397 // { int fstatfs(int fd, struct statfs *buf); }
+       SYS_FHSTATFS               = 398 // { int fhstatfs(const struct fhandle *u_fhp, \
+       SYS___MAC_GET_PID          = 409 // { int __mac_get_pid(pid_t pid, \
+       SYS___MAC_GET_LINK         = 410 // { int __mac_get_link(const char *path_p, \
+       SYS___MAC_SET_LINK         = 411 // { int __mac_set_link(const char *path_p, \
+       SYS_EXTATTR_SET_LINK       = 412 // { ssize_t extattr_set_link( \
+       SYS_EXTATTR_GET_LINK       = 413 // { ssize_t extattr_get_link( \
+       SYS_EXTATTR_DELETE_LINK    = 414 // { int extattr_delete_link( \
+       SYS___MAC_EXECVE           = 415 // { int __mac_execve(char *fname, char **argv, \
+       SYS_SIGACTION              = 416 // { int sigaction(int sig, \
+       SYS_SIGRETURN              = 417 // { int sigreturn( \
+       SYS_GETCONTEXT             = 421 // { int getcontext(struct __ucontext *ucp); }
+       SYS_SETCONTEXT             = 422 // { int setcontext( \
+       SYS_SWAPCONTEXT            = 423 // { int swapcontext(struct __ucontext *oucp, \
+       SYS_SWAPOFF                = 424 // { int swapoff(const char *name); }
+       SYS___ACL_GET_LINK         = 425 // { int __acl_get_link(const char *path, \
+       SYS___ACL_SET_LINK         = 426 // { int __acl_set_link(const char *path, \
+       SYS___ACL_DELETE_LINK      = 427 // { int __acl_delete_link(const char *path, \
+       SYS___ACL_ACLCHECK_LINK    = 428 // { int __acl_aclcheck_link(const char *path, \
+       SYS_SIGWAIT                = 429 // { int sigwait(const sigset_t *set, \
+       SYS_THR_CREATE             = 430 // { int thr_create(ucontext_t *ctx, long *id, \
+       SYS_THR_EXIT               = 431 // { void thr_exit(long *state); }
+       SYS_THR_SELF               = 432 // { int thr_self(long *id); }
+       SYS_THR_KILL               = 433 // { int thr_kill(long id, int sig); }
+       SYS__UMTX_LOCK             = 434 // { int _umtx_lock(struct umtx *umtx); }
+       SYS__UMTX_UNLOCK           = 435 // { int _umtx_unlock(struct umtx *umtx); }
+       SYS_JAIL_ATTACH            = 436 // { int jail_attach(int jid); }
+       SYS_EXTATTR_LIST_FD        = 437 // { ssize_t extattr_list_fd(int fd, \
+       SYS_EXTATTR_LIST_FILE      = 438 // { ssize_t extattr_list_file( \
+       SYS_EXTATTR_LIST_LINK      = 439 // { ssize_t extattr_list_link( \
+       SYS_THR_SUSPEND            = 442 // { int thr_suspend( \
+       SYS_THR_WAKE               = 443 // { int thr_wake(long id); }
+       SYS_KLDUNLOADF             = 444 // { int kldunloadf(int fileid, int flags); }
+       SYS_AUDIT                  = 445 // { int audit(const void *record, \
+       SYS_AUDITON                = 446 // { int auditon(int cmd, void *data, \
+       SYS_GETAUID                = 447 // { int getauid(uid_t *auid); }
+       SYS_SETAUID                = 448 // { int setauid(uid_t *auid); }
+       SYS_GETAUDIT               = 449 // { int getaudit(struct auditinfo *auditinfo); }
+       SYS_SETAUDIT               = 450 // { int setaudit(struct auditinfo *auditinfo); }
+       SYS_GETAUDIT_ADDR          = 451 // { int getaudit_addr( \
+       SYS_SETAUDIT_ADDR          = 452 // { int setaudit_addr( \
+       SYS_AUDITCTL               = 453 // { int auditctl(char *path); }
+       SYS__UMTX_OP               = 454 // { int _umtx_op(void *obj, int op, \
+       SYS_THR_NEW                = 455 // { int thr_new(struct thr_param *param, \
+       SYS_SIGQUEUE               = 456 // { int sigqueue(pid_t pid, int signum, void *value); }
+       SYS_ABORT2                 = 463 // { int abort2(const char *why, int nargs, void **args); }
+       SYS_THR_SET_NAME           = 464 // { int thr_set_name(long id, const char *name); }
+       SYS_RTPRIO_THREAD          = 466 // { int rtprio_thread(int function, \
+       SYS_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, \
+)
diff --git a/vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm.go b/vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm.go
new file mode 100644 (file)
index 0000000..4488314
--- /dev/null
@@ -0,0 +1,353 @@
+// mksysnum_freebsd.pl
+// Code generated by the command above; see README.md. DO NOT EDIT.
+
+// +build arm,freebsd
+
+package unix
+
+const (
+       // SYS_NOSYS = 0;  // { int nosys(void); } syscall nosys_args int
+       SYS_EXIT                   = 1   // { void sys_exit(int rval); } exit \
+       SYS_FORK                   = 2   // { int fork(void); }
+       SYS_READ                   = 3   // { ssize_t read(int fd, void *buf, \
+       SYS_WRITE                  = 4   // { ssize_t write(int fd, const void *buf, \
+       SYS_OPEN                   = 5   // { int open(char *path, int flags, int mode); }
+       SYS_CLOSE                  = 6   // { int close(int fd); }
+       SYS_WAIT4                  = 7   // { int wait4(int pid, int *status, \
+       SYS_LINK                   = 9   // { int link(char *path, char *link); }
+       SYS_UNLINK                 = 10  // { int unlink(char *path); }
+       SYS_CHDIR                  = 12  // { int chdir(char *path); }
+       SYS_FCHDIR                 = 13  // { int fchdir(int fd); }
+       SYS_MKNOD                  = 14  // { int mknod(char *path, int mode, int dev); }
+       SYS_CHMOD                  = 15  // { int chmod(char *path, int mode); }
+       SYS_CHOWN                  = 16  // { int chown(char *path, int uid, int gid); }
+       SYS_OBREAK                 = 17  // { int obreak(char *nsize); } break \
+       SYS_GETPID                 = 20  // { pid_t getpid(void); }
+       SYS_MOUNT                  = 21  // { int mount(char *type, char *path, \
+       SYS_UNMOUNT                = 22  // { int unmount(char *path, int flags); }
+       SYS_SETUID                 = 23  // { int setuid(uid_t uid); }
+       SYS_GETUID                 = 24  // { uid_t getuid(void); }
+       SYS_GETEUID                = 25  // { uid_t geteuid(void); }
+       SYS_PTRACE                 = 26  // { int ptrace(int req, pid_t pid, \
+       SYS_RECVMSG                = 27  // { int recvmsg(int s, struct msghdr *msg, \
+       SYS_SENDMSG                = 28  // { int sendmsg(int s, struct msghdr *msg, \
+       SYS_RECVFROM               = 29  // { int recvfrom(int s, caddr_t buf, \
+       SYS_ACCEPT                 = 30  // { int accept(int s, \
+       SYS_GETPEERNAME            = 31  // { int getpeername(int fdes, \
+       SYS_GETSOCKNAME            = 32  // { int getsockname(int fdes, \
+       SYS_ACCESS                 = 33  // { int access(char *path, int amode); }
+       SYS_CHFLAGS                = 34  // { int chflags(const char *path, u_long flags); }
+       SYS_FCHFLAGS               = 35  // { int fchflags(int fd, u_long flags); }
+       SYS_SYNC                   = 36  // { int sync(void); }
+       SYS_KILL                   = 37  // { int kill(int pid, int signum); }
+       SYS_GETPPID                = 39  // { pid_t getppid(void); }
+       SYS_DUP                    = 41  // { int dup(u_int fd); }
+       SYS_PIPE                   = 42  // { int pipe(void); }
+       SYS_GETEGID                = 43  // { gid_t getegid(void); }
+       SYS_PROFIL                 = 44  // { int profil(caddr_t samples, size_t size, \
+       SYS_KTRACE                 = 45  // { int ktrace(const char *fname, int ops, \
+       SYS_GETGID                 = 47  // { gid_t getgid(void); }
+       SYS_GETLOGIN               = 49  // { int getlogin(char *namebuf, u_int \
+       SYS_SETLOGIN               = 50  // { int setlogin(char *namebuf); }
+       SYS_ACCT                   = 51  // { int acct(char *path); }
+       SYS_SIGALTSTACK            = 53  // { int sigaltstack(stack_t *ss, \
+       SYS_IOCTL                  = 54  // { int ioctl(int fd, u_long com, \
+       SYS_REBOOT                 = 55  // { int reboot(int opt); }
+       SYS_REVOKE                 = 56  // { int revoke(char *path); }
+       SYS_SYMLINK                = 57  // { int symlink(char *path, char *link); }
+       SYS_READLINK               = 58  // { ssize_t readlink(char *path, char *buf, \
+       SYS_EXECVE                 = 59  // { int execve(char *fname, char **argv, \
+       SYS_UMASK                  = 60  // { int umask(int newmask); } umask umask_args \
+       SYS_CHROOT                 = 61  // { int chroot(char *path); }
+       SYS_MSYNC                  = 65  // { int msync(void *addr, size_t len, \
+       SYS_VFORK                  = 66  // { int vfork(void); }
+       SYS_SBRK                   = 69  // { int sbrk(int incr); }
+       SYS_SSTK                   = 70  // { int sstk(int incr); }
+       SYS_OVADVISE               = 72  // { int ovadvise(int anom); } vadvise \
+       SYS_MUNMAP                 = 73  // { int munmap(void *addr, size_t len); }
+       SYS_MPROTECT               = 74  // { int mprotect(const void *addr, size_t len, \
+       SYS_MADVISE                = 75  // { int madvise(void *addr, size_t len, \
+       SYS_MINCORE                = 78  // { int mincore(const void *addr, size_t len, \
+       SYS_GETGROUPS              = 79  // { int getgroups(u_int gidsetsize, \
+       SYS_SETGROUPS              = 80  // { int setgroups(u_int gidsetsize, \
+       SYS_GETPGRP                = 81  // { int getpgrp(void); }
+       SYS_SETPGID                = 82  // { int setpgid(int pid, int pgid); }
+       SYS_SETITIMER              = 83  // { int setitimer(u_int which, struct \
+       SYS_SWAPON                 = 85  // { int swapon(char *name); }
+       SYS_GETITIMER              = 86  // { int getitimer(u_int which, \
+       SYS_GETDTABLESIZE          = 89  // { int getdtablesize(void); }
+       SYS_DUP2                   = 90  // { int dup2(u_int from, u_int to); }
+       SYS_FCNTL                  = 92  // { int fcntl(int fd, int cmd, long arg); }
+       SYS_SELECT                 = 93  // { int select(int nd, fd_set *in, fd_set *ou, \
+       SYS_FSYNC                  = 95  // { int fsync(int fd); }
+       SYS_SETPRIORITY            = 96  // { int setpriority(int which, int who, \
+       SYS_SOCKET                 = 97  // { int socket(int domain, int type, \
+       SYS_CONNECT                = 98  // { int connect(int s, caddr_t name, \
+       SYS_GETPRIORITY            = 100 // { int getpriority(int which, int who); }
+       SYS_BIND                   = 104 // { int bind(int s, caddr_t name, \
+       SYS_SETSOCKOPT             = 105 // { int setsockopt(int s, int level, int name, \
+       SYS_LISTEN                 = 106 // { int listen(int s, int backlog); }
+       SYS_GETTIMEOFDAY           = 116 // { int gettimeofday(struct timeval *tp, \
+       SYS_GETRUSAGE              = 117 // { int getrusage(int who, \
+       SYS_GETSOCKOPT             = 118 // { int getsockopt(int s, int level, int name, \
+       SYS_READV                  = 120 // { int readv(int fd, struct iovec *iovp, \
+       SYS_WRITEV                 = 121 // { int writev(int fd, struct iovec *iovp, \
+       SYS_SETTIMEOFDAY           = 122 // { int settimeofday(struct timeval *tv, \
+       SYS_FCHOWN                 = 123 // { int fchown(int fd, int uid, int gid); }
+       SYS_FCHMOD                 = 124 // { int fchmod(int fd, int mode); }
+       SYS_SETREUID               = 126 // { int setreuid(int ruid, int euid); }
+       SYS_SETREGID               = 127 // { int setregid(int rgid, int egid); }
+       SYS_RENAME                 = 128 // { int rename(char *from, char *to); }
+       SYS_FLOCK                  = 131 // { int flock(int fd, int how); }
+       SYS_MKFIFO                 = 132 // { int mkfifo(char *path, int mode); }
+       SYS_SENDTO                 = 133 // { int sendto(int s, caddr_t buf, size_t len, \
+       SYS_SHUTDOWN               = 134 // { int shutdown(int s, int how); }
+       SYS_SOCKETPAIR             = 135 // { int socketpair(int domain, int type, \
+       SYS_MKDIR                  = 136 // { int mkdir(char *path, int mode); }
+       SYS_RMDIR                  = 137 // { int rmdir(char *path); }
+       SYS_UTIMES                 = 138 // { int utimes(char *path, \
+       SYS_ADJTIME                = 140 // { int adjtime(struct timeval *delta, \
+       SYS_SETSID                 = 147 // { int setsid(void); }
+       SYS_QUOTACTL               = 148 // { int quotactl(char *path, int cmd, int uid, \
+       SYS_LGETFH                 = 160 // { int lgetfh(char *fname, \
+       SYS_GETFH                  = 161 // { int getfh(char *fname, \
+       SYS_SYSARCH                = 165 // { int sysarch(int op, char *parms); }
+       SYS_RTPRIO                 = 166 // { int rtprio(int function, pid_t pid, \
+       SYS_FREEBSD6_PREAD         = 173 // { ssize_t freebsd6_pread(int fd, void *buf, \
+       SYS_FREEBSD6_PWRITE        = 174 // { ssize_t freebsd6_pwrite(int fd, \
+       SYS_SETFIB                 = 175 // { int setfib(int fibnum); }
+       SYS_NTP_ADJTIME            = 176 // { int ntp_adjtime(struct timex *tp); }
+       SYS_SETGID                 = 181 // { int setgid(gid_t gid); }
+       SYS_SETEGID                = 182 // { int setegid(gid_t egid); }
+       SYS_SETEUID                = 183 // { int seteuid(uid_t euid); }
+       SYS_STAT                   = 188 // { int stat(char *path, struct stat *ub); }
+       SYS_FSTAT                  = 189 // { int fstat(int fd, struct stat *sb); }
+       SYS_LSTAT                  = 190 // { int lstat(char *path, struct stat *ub); }
+       SYS_PATHCONF               = 191 // { int pathconf(char *path, int name); }
+       SYS_FPATHCONF              = 192 // { int fpathconf(int fd, int name); }
+       SYS_GETRLIMIT              = 194 // { int getrlimit(u_int which, \
+       SYS_SETRLIMIT              = 195 // { int setrlimit(u_int which, \
+       SYS_GETDIRENTRIES          = 196 // { int getdirentries(int fd, char *buf, \
+       SYS_FREEBSD6_MMAP          = 197 // { caddr_t freebsd6_mmap(caddr_t addr, \
+       SYS_FREEBSD6_LSEEK         = 199 // { off_t freebsd6_lseek(int fd, int pad, \
+       SYS_FREEBSD6_TRUNCATE      = 200 // { int freebsd6_truncate(char *path, int pad, \
+       SYS_FREEBSD6_FTRUNCATE     = 201 // { int freebsd6_ftruncate(int fd, int pad, \
+       SYS___SYSCTL               = 202 // { int __sysctl(int *name, u_int namelen, \
+       SYS_MLOCK                  = 203 // { int mlock(const void *addr, size_t len); }
+       SYS_MUNLOCK                = 204 // { int munlock(const void *addr, size_t len); }
+       SYS_UNDELETE               = 205 // { int undelete(char *path); }
+       SYS_FUTIMES                = 206 // { int futimes(int fd, struct timeval *tptr); }
+       SYS_GETPGID                = 207 // { int getpgid(pid_t pid); }
+       SYS_POLL                   = 209 // { int poll(struct pollfd *fds, u_int nfds, \
+       SYS_CLOCK_GETTIME          = 232 // { int clock_gettime(clockid_t clock_id, \
+       SYS_CLOCK_SETTIME          = 233 // { int clock_settime( \
+       SYS_CLOCK_GETRES           = 234 // { int clock_getres(clockid_t clock_id, \
+       SYS_KTIMER_CREATE          = 235 // { int ktimer_create(clockid_t clock_id, \
+       SYS_KTIMER_DELETE          = 236 // { int ktimer_delete(int timerid); }
+       SYS_KTIMER_SETTIME         = 237 // { int ktimer_settime(int timerid, int flags, \
+       SYS_KTIMER_GETTIME         = 238 // { int ktimer_gettime(int timerid, struct \
+       SYS_KTIMER_GETOVERRUN      = 239 // { int ktimer_getoverrun(int timerid); }
+       SYS_NANOSLEEP              = 240 // { int nanosleep(const struct timespec *rqtp, \
+       SYS_FFCLOCK_GETCOUNTER     = 241 // { int ffclock_getcounter(ffcounter *ffcount); }
+       SYS_FFCLOCK_SETESTIMATE    = 242 // { int ffclock_setestimate( \
+       SYS_FFCLOCK_GETESTIMATE    = 243 // { int ffclock_getestimate( \
+       SYS_CLOCK_GETCPUCLOCKID2   = 247 // { int clock_getcpuclockid2(id_t id,\
+       SYS_NTP_GETTIME            = 248 // { int ntp_gettime(struct ntptimeval *ntvp); }
+       SYS_MINHERIT               = 250 // { int minherit(void *addr, size_t len, \
+       SYS_RFORK                  = 251 // { int rfork(int flags); }
+       SYS_OPENBSD_POLL           = 252 // { int openbsd_poll(struct pollfd *fds, \
+       SYS_ISSETUGID              = 253 // { int issetugid(void); }
+       SYS_LCHOWN                 = 254 // { int lchown(char *path, int uid, int gid); }
+       SYS_GETDENTS               = 272 // { int getdents(int fd, char *buf, \
+       SYS_LCHMOD                 = 274 // { int lchmod(char *path, mode_t mode); }
+       SYS_LUTIMES                = 276 // { int lutimes(char *path, \
+       SYS_NSTAT                  = 278 // { int nstat(char *path, struct nstat *ub); }
+       SYS_NFSTAT                 = 279 // { int nfstat(int fd, struct nstat *sb); }
+       SYS_NLSTAT                 = 280 // { int nlstat(char *path, struct nstat *ub); }
+       SYS_PREADV                 = 289 // { ssize_t preadv(int fd, struct iovec *iovp, \
+       SYS_PWRITEV                = 290 // { ssize_t pwritev(int fd, struct iovec *iovp, \
+       SYS_FHOPEN                 = 298 // { int fhopen(const struct fhandle *u_fhp, \
+       SYS_FHSTAT                 = 299 // { int fhstat(const struct fhandle *u_fhp, \
+       SYS_MODNEXT                = 300 // { int modnext(int modid); }
+       SYS_MODSTAT                = 301 // { int modstat(int modid, \
+       SYS_MODFNEXT               = 302 // { int modfnext(int modid); }
+       SYS_MODFIND                = 303 // { int modfind(const char *name); }
+       SYS_KLDLOAD                = 304 // { int kldload(const char *file); }
+       SYS_KLDUNLOAD              = 305 // { int kldunload(int fileid); }
+       SYS_KLDFIND                = 306 // { int kldfind(const char *file); }
+       SYS_KLDNEXT                = 307 // { int kldnext(int fileid); }
+       SYS_KLDSTAT                = 308 // { int kldstat(int fileid, struct \
+       SYS_KLDFIRSTMOD            = 309 // { int kldfirstmod(int fileid); }
+       SYS_GETSID                 = 310 // { int getsid(pid_t pid); }
+       SYS_SETRESUID              = 311 // { int setresuid(uid_t ruid, uid_t euid, \
+       SYS_SETRESGID              = 312 // { int setresgid(gid_t rgid, gid_t egid, \
+       SYS_YIELD                  = 321 // { int yield(void); }
+       SYS_MLOCKALL               = 324 // { int mlockall(int how); }
+       SYS_MUNLOCKALL             = 325 // { int munlockall(void); }
+       SYS___GETCWD               = 326 // { int __getcwd(char *buf, u_int buflen); }
+       SYS_SCHED_SETPARAM         = 327 // { int sched_setparam (pid_t pid, \
+       SYS_SCHED_GETPARAM         = 328 // { int sched_getparam (pid_t pid, struct \
+       SYS_SCHED_SETSCHEDULER     = 329 // { int sched_setscheduler (pid_t pid, int \
+       SYS_SCHED_GETSCHEDULER     = 330 // { int sched_getscheduler (pid_t pid); }
+       SYS_SCHED_YIELD            = 331 // { int sched_yield (void); }
+       SYS_SCHED_GET_PRIORITY_MAX = 332 // { int sched_get_priority_max (int policy); }
+       SYS_SCHED_GET_PRIORITY_MIN = 333 // { int sched_get_priority_min (int policy); }
+       SYS_SCHED_RR_GET_INTERVAL  = 334 // { int sched_rr_get_interval (pid_t pid, \
+       SYS_UTRACE                 = 335 // { int utrace(const void *addr, size_t len); }
+       SYS_KLDSYM                 = 337 // { int kldsym(int fileid, int cmd, \
+       SYS_JAIL                   = 338 // { int jail(struct jail *jail); }
+       SYS_SIGPROCMASK            = 340 // { int sigprocmask(int how, \
+       SYS_SIGSUSPEND             = 341 // { int sigsuspend(const sigset_t *sigmask); }
+       SYS_SIGPENDING             = 343 // { int sigpending(sigset_t *set); }
+       SYS_SIGTIMEDWAIT           = 345 // { int sigtimedwait(const sigset_t *set, \
+       SYS_SIGWAITINFO            = 346 // { int sigwaitinfo(const sigset_t *set, \
+       SYS___ACL_GET_FILE         = 347 // { int __acl_get_file(const char *path, \
+       SYS___ACL_SET_FILE         = 348 // { int __acl_set_file(const char *path, \
+       SYS___ACL_GET_FD           = 349 // { int __acl_get_fd(int filedes, \
+       SYS___ACL_SET_FD           = 350 // { int __acl_set_fd(int filedes, \
+       SYS___ACL_DELETE_FILE      = 351 // { int __acl_delete_file(const char *path, \
+       SYS___ACL_DELETE_FD        = 352 // { int __acl_delete_fd(int filedes, \
+       SYS___ACL_ACLCHECK_FILE    = 353 // { int __acl_aclcheck_file(const char *path, \
+       SYS___ACL_ACLCHECK_FD      = 354 // { int __acl_aclcheck_fd(int filedes, \
+       SYS_EXTATTRCTL             = 355 // { int extattrctl(const char *path, int cmd, \
+       SYS_EXTATTR_SET_FILE       = 356 // { ssize_t extattr_set_file( \
+       SYS_EXTATTR_GET_FILE       = 357 // { ssize_t extattr_get_file( \
+       SYS_EXTATTR_DELETE_FILE    = 358 // { int extattr_delete_file(const char *path, \
+       SYS_GETRESUID              = 360 // { int getresuid(uid_t *ruid, uid_t *euid, \
+       SYS_GETRESGID              = 361 // { int getresgid(gid_t *rgid, gid_t *egid, \
+       SYS_KQUEUE                 = 362 // { int kqueue(void); }
+       SYS_KEVENT                 = 363 // { int kevent(int fd, \
+       SYS_EXTATTR_SET_FD         = 371 // { ssize_t extattr_set_fd(int fd, \
+       SYS_EXTATTR_GET_FD         = 372 // { ssize_t extattr_get_fd(int fd, \
+       SYS_EXTATTR_DELETE_FD      = 373 // { int extattr_delete_fd(int fd, \
+       SYS___SETUGID              = 374 // { int __setugid(int flag); }
+       SYS_EACCESS                = 376 // { int eaccess(char *path, int amode); }
+       SYS_NMOUNT                 = 378 // { int nmount(struct iovec *iovp, \
+       SYS___MAC_GET_PROC         = 384 // { int __mac_get_proc(struct mac *mac_p); }
+       SYS___MAC_SET_PROC         = 385 // { int __mac_set_proc(struct mac *mac_p); }
+       SYS___MAC_GET_FD           = 386 // { int __mac_get_fd(int fd, \
+       SYS___MAC_GET_FILE         = 387 // { int __mac_get_file(const char *path_p, \
+       SYS___MAC_SET_FD           = 388 // { int __mac_set_fd(int fd, \
+       SYS___MAC_SET_FILE         = 389 // { int __mac_set_file(const char *path_p, \
+       SYS_KENV                   = 390 // { int kenv(int what, const char *name, \
+       SYS_LCHFLAGS               = 391 // { int lchflags(const char *path, \
+       SYS_UUIDGEN                = 392 // { int uuidgen(struct uuid *store, \
+       SYS_SENDFILE               = 393 // { int sendfile(int fd, int s, off_t offset, \
+       SYS_MAC_SYSCALL            = 394 // { int mac_syscall(const char *policy, \
+       SYS_GETFSSTAT              = 395 // { int getfsstat(struct statfs *buf, \
+       SYS_STATFS                 = 396 // { int statfs(char *path, \
+       SYS_FSTATFS                = 397 // { int fstatfs(int fd, struct statfs *buf); }
+       SYS_FHSTATFS               = 398 // { int fhstatfs(const struct fhandle *u_fhp, \
+       SYS___MAC_GET_PID          = 409 // { int __mac_get_pid(pid_t pid, \
+       SYS___MAC_GET_LINK         = 410 // { int __mac_get_link(const char *path_p, \
+       SYS___MAC_SET_LINK         = 411 // { int __mac_set_link(const char *path_p, \
+       SYS_EXTATTR_SET_LINK       = 412 // { ssize_t extattr_set_link( \
+       SYS_EXTATTR_GET_LINK       = 413 // { ssize_t extattr_get_link( \
+       SYS_EXTATTR_DELETE_LINK    = 414 // { int extattr_delete_link( \
+       SYS___MAC_EXECVE           = 415 // { int __mac_execve(char *fname, char **argv, \
+       SYS_SIGACTION              = 416 // { int sigaction(int sig, \
+       SYS_SIGRETURN              = 417 // { int sigreturn( \
+       SYS_GETCONTEXT             = 421 // { int getcontext(struct __ucontext *ucp); }
+       SYS_SETCONTEXT             = 422 // { int setcontext( \
+       SYS_SWAPCONTEXT            = 423 // { int swapcontext(struct __ucontext *oucp, \
+       SYS_SWAPOFF                = 424 // { int swapoff(const char *name); }
+       SYS___ACL_GET_LINK         = 425 // { int __acl_get_link(const char *path, \
+       SYS___ACL_SET_LINK         = 426 // { int __acl_set_link(const char *path, \
+       SYS___ACL_DELETE_LINK      = 427 // { int __acl_delete_link(const char *path, \
+       SYS___ACL_ACLCHECK_LINK    = 428 // { int __acl_aclcheck_link(const char *path, \
+       SYS_SIGWAIT                = 429 // { int sigwait(const sigset_t *set, \
+       SYS_THR_CREATE             = 430 // { int thr_create(ucontext_t *ctx, long *id, \
+       SYS_THR_EXIT               = 431 // { void thr_exit(long *state); }
+       SYS_THR_SELF               = 432 // { int thr_self(long *id); }
+       SYS_THR_KILL               = 433 // { int thr_kill(long id, int sig); }
+       SYS__UMTX_LOCK             = 434 // { int _umtx_lock(struct umtx *umtx); }
+       SYS__UMTX_UNLOCK           = 435 // { int _umtx_unlock(struct umtx *umtx); }
+       SYS_JAIL_ATTACH            = 436 // { int jail_attach(int jid); }
+       SYS_EXTATTR_LIST_FD        = 437 // { ssize_t extattr_list_fd(int fd, \
+       SYS_EXTATTR_LIST_FILE      = 438 // { ssize_t extattr_list_file( \
+       SYS_EXTATTR_LIST_LINK      = 439 // { ssize_t extattr_list_link( \
+       SYS_THR_SUSPEND            = 442 // { int thr_suspend( \
+       SYS_THR_WAKE               = 443 // { int thr_wake(long id); }
+       SYS_KLDUNLOADF             = 444 // { int kldunloadf(int fileid, int flags); }
+       SYS_AUDIT                  = 445 // { int audit(const void *record, \
+       SYS_AUDITON                = 446 // { int auditon(int cmd, void *data, \
+       SYS_GETAUID                = 447 // { int getauid(uid_t *auid); }
+       SYS_SETAUID                = 448 // { int setauid(uid_t *auid); }
+       SYS_GETAUDIT               = 449 // { int getaudit(struct auditinfo *auditinfo); }
+       SYS_SETAUDIT               = 450 // { int setaudit(struct auditinfo *auditinfo); }
+       SYS_GETAUDIT_ADDR          = 451 // { int getaudit_addr( \
+       SYS_SETAUDIT_ADDR          = 452 // { int setaudit_addr( \
+       SYS_AUDITCTL               = 453 // { int auditctl(char *path); }
+       SYS__UMTX_OP               = 454 // { int _umtx_op(void *obj, int op, \
+       SYS_THR_NEW                = 455 // { int thr_new(struct thr_param *param, \
+       SYS_SIGQUEUE               = 456 // { int sigqueue(pid_t pid, int signum, void *value); }
+       SYS_ABORT2                 = 463 // { int abort2(const char *why, int nargs, void **args); }
+       SYS_THR_SET_NAME           = 464 // { int thr_set_name(long id, const char *name); }
+       SYS_RTPRIO_THREAD          = 466 // { int rtprio_thread(int function, \
+       SYS_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, \
+)
diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_386.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_386.go
new file mode 100644 (file)
index 0000000..cef4fed
--- /dev/null
@@ -0,0 +1,388 @@
+// linux/mksysnum.pl -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
+
+package unix
+
+const (
+       SYS_RESTART_SYSCALL        = 0
+       SYS_EXIT                   = 1
+       SYS_FORK                   = 2
+       SYS_READ                   = 3
+       SYS_WRITE                  = 4
+       SYS_OPEN                   = 5
+       SYS_CLOSE                  = 6
+       SYS_WAITPID                = 7
+       SYS_CREAT                  = 8
+       SYS_LINK                   = 9
+       SYS_UNLINK                 = 10
+       SYS_EXECVE                 = 11
+       SYS_CHDIR                  = 12
+       SYS_TIME                   = 13
+       SYS_MKNOD                  = 14
+       SYS_CHMOD                  = 15
+       SYS_LCHOWN                 = 16
+       SYS_BREAK                  = 17
+       SYS_OLDSTAT                = 18
+       SYS_LSEEK                  = 19
+       SYS_GETPID                 = 20
+       SYS_MOUNT                  = 21
+       SYS_UMOUNT                 = 22
+       SYS_SETUID                 = 23
+       SYS_GETUID                 = 24
+       SYS_STIME                  = 25
+       SYS_PTRACE                 = 26
+       SYS_ALARM                  = 27
+       SYS_OLDFSTAT               = 28
+       SYS_PAUSE                  = 29
+       SYS_UTIME                  = 30
+       SYS_STTY                   = 31
+       SYS_GTTY                   = 32
+       SYS_ACCESS                 = 33
+       SYS_NICE                   = 34
+       SYS_FTIME                  = 35
+       SYS_SYNC                   = 36
+       SYS_KILL                   = 37
+       SYS_RENAME                 = 38
+       SYS_MKDIR                  = 39
+       SYS_RMDIR                  = 40
+       SYS_DUP                    = 41
+       SYS_PIPE                   = 42
+       SYS_TIMES                  = 43
+       SYS_PROF                   = 44
+       SYS_BRK                    = 45
+       SYS_SETGID                 = 46
+       SYS_GETGID                 = 47
+       SYS_SIGNAL                 = 48
+       SYS_GETEUID                = 49
+       SYS_GETEGID                = 50
+       SYS_ACCT                   = 51
+       SYS_UMOUNT2                = 52
+       SYS_LOCK                   = 53
+       SYS_IOCTL                  = 54
+       SYS_FCNTL                  = 55
+       SYS_MPX                    = 56
+       SYS_SETPGID                = 57
+       SYS_ULIMIT                 = 58
+       SYS_OLDOLDUNAME            = 59
+       SYS_UMASK                  = 60
+       SYS_CHROOT                 = 61
+       SYS_USTAT                  = 62
+       SYS_DUP2                   = 63
+       SYS_GETPPID                = 64
+       SYS_GETPGRP                = 65
+       SYS_SETSID                 = 66
+       SYS_SIGACTION              = 67
+       SYS_SGETMASK               = 68
+       SYS_SSETMASK               = 69
+       SYS_SETREUID               = 70
+       SYS_SETREGID               = 71
+       SYS_SIGSUSPEND             = 72
+       SYS_SIGPENDING             = 73
+       SYS_SETHOSTNAME            = 74
+       SYS_SETRLIMIT              = 75
+       SYS_GETRLIMIT              = 76
+       SYS_GETRUSAGE              = 77
+       SYS_GETTIMEOFDAY           = 78
+       SYS_SETTIMEOFDAY           = 79
+       SYS_GETGROUPS              = 80
+       SYS_SETGROUPS              = 81
+       SYS_SELECT                 = 82
+       SYS_SYMLINK                = 83
+       SYS_OLDLSTAT               = 84
+       SYS_READLINK               = 85
+       SYS_USELIB                 = 86
+       SYS_SWAPON                 = 87
+       SYS_REBOOT                 = 88
+       SYS_READDIR                = 89
+       SYS_MMAP                   = 90
+       SYS_MUNMAP                 = 91
+       SYS_TRUNCATE               = 92
+       SYS_FTRUNCATE              = 93
+       SYS_FCHMOD                 = 94
+       SYS_FCHOWN                 = 95
+       SYS_GETPRIORITY            = 96
+       SYS_SETPRIORITY            = 97
+       SYS_PROFIL                 = 98
+       SYS_STATFS                 = 99
+       SYS_FSTATFS                = 100
+       SYS_IOPERM                 = 101
+       SYS_SOCKETCALL             = 102
+       SYS_SYSLOG                 = 103
+       SYS_SETITIMER              = 104
+       SYS_GETITIMER              = 105
+       SYS_STAT                   = 106
+       SYS_LSTAT                  = 107
+       SYS_FSTAT                  = 108
+       SYS_OLDUNAME               = 109
+       SYS_IOPL                   = 110
+       SYS_VHANGUP                = 111
+       SYS_IDLE                   = 112
+       SYS_VM86OLD                = 113
+       SYS_WAIT4                  = 114
+       SYS_SWAPOFF                = 115
+       SYS_SYSINFO                = 116
+       SYS_IPC                    = 117
+       SYS_FSYNC                  = 118
+       SYS_SIGRETURN              = 119
+       SYS_CLONE                  = 120
+       SYS_SETDOMAINNAME          = 121
+       SYS_UNAME                  = 122
+       SYS_MODIFY_LDT             = 123
+       SYS_ADJTIMEX               = 124
+       SYS_MPROTECT               = 125
+       SYS_SIGPROCMASK            = 126
+       SYS_CREATE_MODULE          = 127
+       SYS_INIT_MODULE            = 128
+       SYS_DELETE_MODULE          = 129
+       SYS_GET_KERNEL_SYMS        = 130
+       SYS_QUOTACTL               = 131
+       SYS_GETPGID                = 132
+       SYS_FCHDIR                 = 133
+       SYS_BDFLUSH                = 134
+       SYS_SYSFS                  = 135
+       SYS_PERSONALITY            = 136
+       SYS_AFS_SYSCALL            = 137
+       SYS_SETFSUID               = 138
+       SYS_SETFSGID               = 139
+       SYS__LLSEEK                = 140
+       SYS_GETDENTS               = 141
+       SYS__NEWSELECT             = 142
+       SYS_FLOCK                  = 143
+       SYS_MSYNC                  = 144
+       SYS_READV                  = 145
+       SYS_WRITEV                 = 146
+       SYS_GETSID                 = 147
+       SYS_FDATASYNC              = 148
+       SYS__SYSCTL                = 149
+       SYS_MLOCK                  = 150
+       SYS_MUNLOCK                = 151
+       SYS_MLOCKALL               = 152
+       SYS_MUNLOCKALL             = 153
+       SYS_SCHED_SETPARAM         = 154
+       SYS_SCHED_GETPARAM         = 155
+       SYS_SCHED_SETSCHEDULER     = 156
+       SYS_SCHED_GETSCHEDULER     = 157
+       SYS_SCHED_YIELD            = 158
+       SYS_SCHED_GET_PRIORITY_MAX = 159
+       SYS_SCHED_GET_PRIORITY_MIN = 160
+       SYS_SCHED_RR_GET_INTERVAL  = 161
+       SYS_NANOSLEEP              = 162
+       SYS_MREMAP                 = 163
+       SYS_SETRESUID              = 164
+       SYS_GETRESUID              = 165
+       SYS_VM86                   = 166
+       SYS_QUERY_MODULE           = 167
+       SYS_POLL                   = 168
+       SYS_NFSSERVCTL             = 169
+       SYS_SETRESGID              = 170
+       SYS_GETRESGID              = 171
+       SYS_PRCTL                  = 172
+       SYS_RT_SIGRETURN           = 173
+       SYS_RT_SIGACTION           = 174
+       SYS_RT_SIGPROCMASK         = 175
+       SYS_RT_SIGPENDING          = 176
+       SYS_RT_SIGTIMEDWAIT        = 177
+       SYS_RT_SIGQUEUEINFO        = 178
+       SYS_RT_SIGSUSPEND          = 179
+       SYS_PREAD64                = 180
+       SYS_PWRITE64               = 181
+       SYS_CHOWN                  = 182
+       SYS_GETCWD                 = 183
+       SYS_CAPGET                 = 184
+       SYS_CAPSET                 = 185
+       SYS_SIGALTSTACK            = 186
+       SYS_SENDFILE               = 187
+       SYS_GETPMSG                = 188
+       SYS_PUTPMSG                = 189
+       SYS_VFORK                  = 190
+       SYS_UGETRLIMIT             = 191
+       SYS_MMAP2                  = 192
+       SYS_TRUNCATE64             = 193
+       SYS_FTRUNCATE64            = 194
+       SYS_STAT64                 = 195
+       SYS_LSTAT64                = 196
+       SYS_FSTAT64                = 197
+       SYS_LCHOWN32               = 198
+       SYS_GETUID32               = 199
+       SYS_GETGID32               = 200
+       SYS_GETEUID32              = 201
+       SYS_GETEGID32              = 202
+       SYS_SETREUID32             = 203
+       SYS_SETREGID32             = 204
+       SYS_GETGROUPS32            = 205
+       SYS_SETGROUPS32            = 206
+       SYS_FCHOWN32               = 207
+       SYS_SETRESUID32            = 208
+       SYS_GETRESUID32            = 209
+       SYS_SETRESGID32            = 210
+       SYS_GETRESGID32            = 211
+       SYS_CHOWN32                = 212
+       SYS_SETUID32               = 213
+       SYS_SETGID32               = 214
+       SYS_SETFSUID32             = 215
+       SYS_SETFSGID32             = 216
+       SYS_PIVOT_ROOT             = 217
+       SYS_MINCORE                = 218
+       SYS_MADVISE                = 219
+       SYS_GETDENTS64             = 220
+       SYS_FCNTL64                = 221
+       SYS_GETTID                 = 224
+       SYS_READAHEAD              = 225
+       SYS_SETXATTR               = 226
+       SYS_LSETXATTR              = 227
+       SYS_FSETXATTR              = 228
+       SYS_GETXATTR               = 229
+       SYS_LGETXATTR              = 230
+       SYS_FGETXATTR              = 231
+       SYS_LISTXATTR              = 232
+       SYS_LLISTXATTR             = 233
+       SYS_FLISTXATTR             = 234
+       SYS_REMOVEXATTR            = 235
+       SYS_LREMOVEXATTR           = 236
+       SYS_FREMOVEXATTR           = 237
+       SYS_TKILL                  = 238
+       SYS_SENDFILE64             = 239
+       SYS_FUTEX                  = 240
+       SYS_SCHED_SETAFFINITY      = 241
+       SYS_SCHED_GETAFFINITY      = 242
+       SYS_SET_THREAD_AREA        = 243
+       SYS_GET_THREAD_AREA        = 244
+       SYS_IO_SETUP               = 245
+       SYS_IO_DESTROY             = 246
+       SYS_IO_GETEVENTS           = 247
+       SYS_IO_SUBMIT              = 248
+       SYS_IO_CANCEL              = 249
+       SYS_FADVISE64              = 250
+       SYS_EXIT_GROUP             = 252
+       SYS_LOOKUP_DCOOKIE         = 253
+       SYS_EPOLL_CREATE           = 254
+       SYS_EPOLL_CTL              = 255
+       SYS_EPOLL_WAIT             = 256
+       SYS_REMAP_FILE_PAGES       = 257
+       SYS_SET_TID_ADDRESS        = 258
+       SYS_TIMER_CREATE           = 259
+       SYS_TIMER_SETTIME          = 260
+       SYS_TIMER_GETTIME          = 261
+       SYS_TIMER_GETOVERRUN       = 262
+       SYS_TIMER_DELETE           = 263
+       SYS_CLOCK_SETTIME          = 264
+       SYS_CLOCK_GETTIME          = 265
+       SYS_CLOCK_GETRES           = 266
+       SYS_CLOCK_NANOSLEEP        = 267
+       SYS_STATFS64               = 268
+       SYS_FSTATFS64              = 269
+       SYS_TGKILL                 = 270
+       SYS_UTIMES                 = 271
+       SYS_FADVISE64_64           = 272
+       SYS_VSERVER                = 273
+       SYS_MBIND                  = 274
+       SYS_GET_MEMPOLICY          = 275
+       SYS_SET_MEMPOLICY          = 276
+       SYS_MQ_OPEN                = 277
+       SYS_MQ_UNLINK              = 278
+       SYS_MQ_TIMEDSEND           = 279
+       SYS_MQ_TIMEDRECEIVE        = 280
+       SYS_MQ_NOTIFY              = 281
+       SYS_MQ_GETSETATTR          = 282
+       SYS_KEXEC_LOAD             = 283
+       SYS_WAITID                 = 284
+       SYS_ADD_KEY                = 286
+       SYS_REQUEST_KEY            = 287
+       SYS_KEYCTL                 = 288
+       SYS_IOPRIO_SET             = 289
+       SYS_IOPRIO_GET             = 290
+       SYS_INOTIFY_INIT           = 291
+       SYS_INOTIFY_ADD_WATCH      = 292
+       SYS_INOTIFY_RM_WATCH       = 293
+       SYS_MIGRATE_PAGES          = 294
+       SYS_OPENAT                 = 295
+       SYS_MKDIRAT                = 296
+       SYS_MKNODAT                = 297
+       SYS_FCHOWNAT               = 298
+       SYS_FUTIMESAT              = 299
+       SYS_FSTATAT64              = 300
+       SYS_UNLINKAT               = 301
+       SYS_RENAMEAT               = 302
+       SYS_LINKAT                 = 303
+       SYS_SYMLINKAT              = 304
+       SYS_READLINKAT             = 305
+       SYS_FCHMODAT               = 306
+       SYS_FACCESSAT              = 307
+       SYS_PSELECT6               = 308
+       SYS_PPOLL                  = 309
+       SYS_UNSHARE                = 310
+       SYS_SET_ROBUST_LIST        = 311
+       SYS_GET_ROBUST_LIST        = 312
+       SYS_SPLICE                 = 313
+       SYS_SYNC_FILE_RANGE        = 314
+       SYS_TEE                    = 315
+       SYS_VMSPLICE               = 316
+       SYS_MOVE_PAGES             = 317
+       SYS_GETCPU                 = 318
+       SYS_EPOLL_PWAIT            = 319
+       SYS_UTIMENSAT              = 320
+       SYS_SIGNALFD               = 321
+       SYS_TIMERFD_CREATE         = 322
+       SYS_EVENTFD                = 323
+       SYS_FALLOCATE              = 324
+       SYS_TIMERFD_SETTIME        = 325
+       SYS_TIMERFD_GETTIME        = 326
+       SYS_SIGNALFD4              = 327
+       SYS_EVENTFD2               = 328
+       SYS_EPOLL_CREATE1          = 329
+       SYS_DUP3                   = 330
+       SYS_PIPE2                  = 331
+       SYS_INOTIFY_INIT1          = 332
+       SYS_PREADV                 = 333
+       SYS_PWRITEV                = 334
+       SYS_RT_TGSIGQUEUEINFO      = 335
+       SYS_PERF_EVENT_OPEN        = 336
+       SYS_RECVMMSG               = 337
+       SYS_FANOTIFY_INIT          = 338
+       SYS_FANOTIFY_MARK          = 339
+       SYS_PRLIMIT64              = 340
+       SYS_NAME_TO_HANDLE_AT      = 341
+       SYS_OPEN_BY_HANDLE_AT      = 342
+       SYS_CLOCK_ADJTIME          = 343
+       SYS_SYNCFS                 = 344
+       SYS_SENDMMSG               = 345
+       SYS_SETNS                  = 346
+       SYS_PROCESS_VM_READV       = 347
+       SYS_PROCESS_VM_WRITEV      = 348
+       SYS_KCMP                   = 349
+       SYS_FINIT_MODULE           = 350
+       SYS_SCHED_SETATTR          = 351
+       SYS_SCHED_GETATTR          = 352
+       SYS_RENAMEAT2              = 353
+       SYS_SECCOMP                = 354
+       SYS_GETRANDOM              = 355
+       SYS_MEMFD_CREATE           = 356
+       SYS_BPF                    = 357
+       SYS_EXECVEAT               = 358
+       SYS_SOCKET                 = 359
+       SYS_SOCKETPAIR             = 360
+       SYS_BIND                   = 361
+       SYS_CONNECT                = 362
+       SYS_LISTEN                 = 363
+       SYS_ACCEPT4                = 364
+       SYS_GETSOCKOPT             = 365
+       SYS_SETSOCKOPT             = 366
+       SYS_GETSOCKNAME            = 367
+       SYS_GETPEERNAME            = 368
+       SYS_SENDTO                 = 369
+       SYS_SENDMSG                = 370
+       SYS_RECVFROM               = 371
+       SYS_RECVMSG                = 372
+       SYS_SHUTDOWN               = 373
+       SYS_USERFAULTFD            = 374
+       SYS_MEMBARRIER             = 375
+       SYS_MLOCK2                 = 376
+       SYS_COPY_FILE_RANGE        = 377
+       SYS_PREADV2                = 378
+       SYS_PWRITEV2               = 379
+       SYS_PKEY_MPROTECT          = 380
+       SYS_PKEY_ALLOC             = 381
+       SYS_PKEY_FREE              = 382
+)
diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go
new file mode 100644 (file)
index 0000000..49bfa12
--- /dev/null
@@ -0,0 +1,341 @@
+// linux/mksysnum.pl -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
+
+package unix
+
+const (
+       SYS_READ                   = 0
+       SYS_WRITE                  = 1
+       SYS_OPEN                   = 2
+       SYS_CLOSE                  = 3
+       SYS_STAT                   = 4
+       SYS_FSTAT                  = 5
+       SYS_LSTAT                  = 6
+       SYS_POLL                   = 7
+       SYS_LSEEK                  = 8
+       SYS_MMAP                   = 9
+       SYS_MPROTECT               = 10
+       SYS_MUNMAP                 = 11
+       SYS_BRK                    = 12
+       SYS_RT_SIGACTION           = 13
+       SYS_RT_SIGPROCMASK         = 14
+       SYS_RT_SIGRETURN           = 15
+       SYS_IOCTL                  = 16
+       SYS_PREAD64                = 17
+       SYS_PWRITE64               = 18
+       SYS_READV                  = 19
+       SYS_WRITEV                 = 20
+       SYS_ACCESS                 = 21
+       SYS_PIPE                   = 22
+       SYS_SELECT                 = 23
+       SYS_SCHED_YIELD            = 24
+       SYS_MREMAP                 = 25
+       SYS_MSYNC                  = 26
+       SYS_MINCORE                = 27
+       SYS_MADVISE                = 28
+       SYS_SHMGET                 = 29
+       SYS_SHMAT                  = 30
+       SYS_SHMCTL                 = 31
+       SYS_DUP                    = 32
+       SYS_DUP2                   = 33
+       SYS_PAUSE                  = 34
+       SYS_NANOSLEEP              = 35
+       SYS_GETITIMER              = 36
+       SYS_ALARM                  = 37
+       SYS_SETITIMER              = 38
+       SYS_GETPID                 = 39
+       SYS_SENDFILE               = 40
+       SYS_SOCKET                 = 41
+       SYS_CONNECT                = 42
+       SYS_ACCEPT                 = 43
+       SYS_SENDTO                 = 44
+       SYS_RECVFROM               = 45
+       SYS_SENDMSG                = 46
+       SYS_RECVMSG                = 47
+       SYS_SHUTDOWN               = 48
+       SYS_BIND                   = 49
+       SYS_LISTEN                 = 50
+       SYS_GETSOCKNAME            = 51
+       SYS_GETPEERNAME            = 52
+       SYS_SOCKETPAIR             = 53
+       SYS_SETSOCKOPT             = 54
+       SYS_GETSOCKOPT             = 55
+       SYS_CLONE                  = 56
+       SYS_FORK                   = 57
+       SYS_VFORK                  = 58
+       SYS_EXECVE                 = 59
+       SYS_EXIT                   = 60
+       SYS_WAIT4                  = 61
+       SYS_KILL                   = 62
+       SYS_UNAME                  = 63
+       SYS_SEMGET                 = 64
+       SYS_SEMOP                  = 65
+       SYS_SEMCTL                 = 66
+       SYS_SHMDT                  = 67
+       SYS_MSGGET                 = 68
+       SYS_MSGSND                 = 69
+       SYS_MSGRCV                 = 70
+       SYS_MSGCTL                 = 71
+       SYS_FCNTL                  = 72
+       SYS_FLOCK                  = 73
+       SYS_FSYNC                  = 74
+       SYS_FDATASYNC              = 75
+       SYS_TRUNCATE               = 76
+       SYS_FTRUNCATE              = 77
+       SYS_GETDENTS               = 78
+       SYS_GETCWD                 = 79
+       SYS_CHDIR                  = 80
+       SYS_FCHDIR                 = 81
+       SYS_RENAME                 = 82
+       SYS_MKDIR                  = 83
+       SYS_RMDIR                  = 84
+       SYS_CREAT                  = 85
+       SYS_LINK                   = 86
+       SYS_UNLINK                 = 87
+       SYS_SYMLINK                = 88
+       SYS_READLINK               = 89
+       SYS_CHMOD                  = 90
+       SYS_FCHMOD                 = 91
+       SYS_CHOWN                  = 92
+       SYS_FCHOWN                 = 93
+       SYS_LCHOWN                 = 94
+       SYS_UMASK                  = 95
+       SYS_GETTIMEOFDAY           = 96
+       SYS_GETRLIMIT              = 97
+       SYS_GETRUSAGE              = 98
+       SYS_SYSINFO                = 99
+       SYS_TIMES                  = 100
+       SYS_PTRACE                 = 101
+       SYS_GETUID                 = 102
+       SYS_SYSLOG                 = 103
+       SYS_GETGID                 = 104
+       SYS_SETUID                 = 105
+       SYS_SETGID                 = 106
+       SYS_GETEUID                = 107
+       SYS_GETEGID                = 108
+       SYS_SETPGID                = 109
+       SYS_GETPPID                = 110
+       SYS_GETPGRP                = 111
+       SYS_SETSID                 = 112
+       SYS_SETREUID               = 113
+       SYS_SETREGID               = 114
+       SYS_GETGROUPS              = 115
+       SYS_SETGROUPS              = 116
+       SYS_SETRESUID              = 117
+       SYS_GETRESUID              = 118
+       SYS_SETRESGID              = 119
+       SYS_GETRESGID              = 120
+       SYS_GETPGID                = 121
+       SYS_SETFSUID               = 122
+       SYS_SETFSGID               = 123
+       SYS_GETSID                 = 124
+       SYS_CAPGET                 = 125
+       SYS_CAPSET                 = 126
+       SYS_RT_SIGPENDING          = 127
+       SYS_RT_SIGTIMEDWAIT        = 128
+       SYS_RT_SIGQUEUEINFO        = 129
+       SYS_RT_SIGSUSPEND          = 130
+       SYS_SIGALTSTACK            = 131
+       SYS_UTIME                  = 132
+       SYS_MKNOD                  = 133
+       SYS_USELIB                 = 134
+       SYS_PERSONALITY            = 135
+       SYS_USTAT                  = 136
+       SYS_STATFS                 = 137
+       SYS_FSTATFS                = 138
+       SYS_SYSFS                  = 139
+       SYS_GETPRIORITY            = 140
+       SYS_SETPRIORITY            = 141
+       SYS_SCHED_SETPARAM         = 142
+       SYS_SCHED_GETPARAM         = 143
+       SYS_SCHED_SETSCHEDULER     = 144
+       SYS_SCHED_GETSCHEDULER     = 145
+       SYS_SCHED_GET_PRIORITY_MAX = 146
+       SYS_SCHED_GET_PRIORITY_MIN = 147
+       SYS_SCHED_RR_GET_INTERVAL  = 148
+       SYS_MLOCK                  = 149
+       SYS_MUNLOCK                = 150
+       SYS_MLOCKALL               = 151
+       SYS_MUNLOCKALL             = 152
+       SYS_VHANGUP                = 153
+       SYS_MODIFY_LDT             = 154
+       SYS_PIVOT_ROOT             = 155
+       SYS__SYSCTL                = 156
+       SYS_PRCTL                  = 157
+       SYS_ARCH_PRCTL             = 158
+       SYS_ADJTIMEX               = 159
+       SYS_SETRLIMIT              = 160
+       SYS_CHROOT                 = 161
+       SYS_SYNC                   = 162
+       SYS_ACCT                   = 163
+       SYS_SETTIMEOFDAY           = 164
+       SYS_MOUNT                  = 165
+       SYS_UMOUNT2                = 166
+       SYS_SWAPON                 = 167
+       SYS_SWAPOFF                = 168
+       SYS_REBOOT                 = 169
+       SYS_SETHOSTNAME            = 170
+       SYS_SETDOMAINNAME          = 171
+       SYS_IOPL                   = 172
+       SYS_IOPERM                 = 173
+       SYS_CREATE_MODULE          = 174
+       SYS_INIT_MODULE            = 175
+       SYS_DELETE_MODULE          = 176
+       SYS_GET_KERNEL_SYMS        = 177
+       SYS_QUERY_MODULE           = 178
+       SYS_QUOTACTL               = 179
+       SYS_NFSSERVCTL             = 180
+       SYS_GETPMSG                = 181
+       SYS_PUTPMSG                = 182
+       SYS_AFS_SYSCALL            = 183
+       SYS_TUXCALL                = 184
+       SYS_SECURITY               = 185
+       SYS_GETTID                 = 186
+       SYS_READAHEAD              = 187
+       SYS_SETXATTR               = 188
+       SYS_LSETXATTR              = 189
+       SYS_FSETXATTR              = 190
+       SYS_GETXATTR               = 191
+       SYS_LGETXATTR              = 192
+       SYS_FGETXATTR              = 193
+       SYS_LISTXATTR              = 194
+       SYS_LLISTXATTR             = 195
+       SYS_FLISTXATTR             = 196
+       SYS_REMOVEXATTR            = 197
+       SYS_LREMOVEXATTR           = 198
+       SYS_FREMOVEXATTR           = 199
+       SYS_TKILL                  = 200
+       SYS_TIME                   = 201
+       SYS_FUTEX                  = 202
+       SYS_SCHED_SETAFFINITY      = 203
+       SYS_SCHED_GETAFFINITY      = 204
+       SYS_SET_THREAD_AREA        = 205
+       SYS_IO_SETUP               = 206
+       SYS_IO_DESTROY             = 207
+       SYS_IO_GETEVENTS           = 208
+       SYS_IO_SUBMIT              = 209
+       SYS_IO_CANCEL              = 210
+       SYS_GET_THREAD_AREA        = 211
+       SYS_LOOKUP_DCOOKIE         = 212
+       SYS_EPOLL_CREATE           = 213
+       SYS_EPOLL_CTL_OLD          = 214
+       SYS_EPOLL_WAIT_OLD         = 215
+       SYS_REMAP_FILE_PAGES       = 216
+       SYS_GETDENTS64             = 217
+       SYS_SET_TID_ADDRESS        = 218
+       SYS_RESTART_SYSCALL        = 219
+       SYS_SEMTIMEDOP             = 220
+       SYS_FADVISE64              = 221
+       SYS_TIMER_CREATE           = 222
+       SYS_TIMER_SETTIME          = 223
+       SYS_TIMER_GETTIME          = 224
+       SYS_TIMER_GETOVERRUN       = 225
+       SYS_TIMER_DELETE           = 226
+       SYS_CLOCK_SETTIME          = 227
+       SYS_CLOCK_GETTIME          = 228
+       SYS_CLOCK_GETRES           = 229
+       SYS_CLOCK_NANOSLEEP        = 230
+       SYS_EXIT_GROUP             = 231
+       SYS_EPOLL_WAIT             = 232
+       SYS_EPOLL_CTL              = 233
+       SYS_TGKILL                 = 234
+       SYS_UTIMES                 = 235
+       SYS_VSERVER                = 236
+       SYS_MBIND                  = 237
+       SYS_SET_MEMPOLICY          = 238
+       SYS_GET_MEMPOLICY          = 239
+       SYS_MQ_OPEN                = 240
+       SYS_MQ_UNLINK              = 241
+       SYS_MQ_TIMEDSEND           = 242
+       SYS_MQ_TIMEDRECEIVE        = 243
+       SYS_MQ_NOTIFY              = 244
+       SYS_MQ_GETSETATTR          = 245
+       SYS_KEXEC_LOAD             = 246
+       SYS_WAITID                 = 247
+       SYS_ADD_KEY                = 248
+       SYS_REQUEST_KEY            = 249
+       SYS_KEYCTL                 = 250
+       SYS_IOPRIO_SET             = 251
+       SYS_IOPRIO_GET             = 252
+       SYS_INOTIFY_INIT           = 253
+       SYS_INOTIFY_ADD_WATCH      = 254
+       SYS_INOTIFY_RM_WATCH       = 255
+       SYS_MIGRATE_PAGES          = 256
+       SYS_OPENAT                 = 257
+       SYS_MKDIRAT                = 258
+       SYS_MKNODAT                = 259
+       SYS_FCHOWNAT               = 260
+       SYS_FUTIMESAT              = 261
+       SYS_NEWFSTATAT             = 262
+       SYS_UNLINKAT               = 263
+       SYS_RENAMEAT               = 264
+       SYS_LINKAT                 = 265
+       SYS_SYMLINKAT              = 266
+       SYS_READLINKAT             = 267
+       SYS_FCHMODAT               = 268
+       SYS_FACCESSAT              = 269
+       SYS_PSELECT6               = 270
+       SYS_PPOLL                  = 271
+       SYS_UNSHARE                = 272
+       SYS_SET_ROBUST_LIST        = 273
+       SYS_GET_ROBUST_LIST        = 274
+       SYS_SPLICE                 = 275
+       SYS_TEE                    = 276
+       SYS_SYNC_FILE_RANGE        = 277
+       SYS_VMSPLICE               = 278
+       SYS_MOVE_PAGES             = 279
+       SYS_UTIMENSAT              = 280
+       SYS_EPOLL_PWAIT            = 281
+       SYS_SIGNALFD               = 282
+       SYS_TIMERFD_CREATE         = 283
+       SYS_EVENTFD                = 284
+       SYS_FALLOCATE              = 285
+       SYS_TIMERFD_SETTIME        = 286
+       SYS_TIMERFD_GETTIME        = 287
+       SYS_ACCEPT4                = 288
+       SYS_SIGNALFD4              = 289
+       SYS_EVENTFD2               = 290
+       SYS_EPOLL_CREATE1          = 291
+       SYS_DUP3                   = 292
+       SYS_PIPE2                  = 293
+       SYS_INOTIFY_INIT1          = 294
+       SYS_PREADV                 = 295
+       SYS_PWRITEV                = 296
+       SYS_RT_TGSIGQUEUEINFO      = 297
+       SYS_PERF_EVENT_OPEN        = 298
+       SYS_RECVMMSG               = 299
+       SYS_FANOTIFY_INIT          = 300
+       SYS_FANOTIFY_MARK          = 301
+       SYS_PRLIMIT64              = 302
+       SYS_NAME_TO_HANDLE_AT      = 303
+       SYS_OPEN_BY_HANDLE_AT      = 304
+       SYS_CLOCK_ADJTIME          = 305
+       SYS_SYNCFS                 = 306
+       SYS_SENDMMSG               = 307
+       SYS_SETNS                  = 308
+       SYS_GETCPU                 = 309
+       SYS_PROCESS_VM_READV       = 310
+       SYS_PROCESS_VM_WRITEV      = 311
+       SYS_KCMP                   = 312
+       SYS_FINIT_MODULE           = 313
+       SYS_SCHED_SETATTR          = 314
+       SYS_SCHED_GETATTR          = 315
+       SYS_RENAMEAT2              = 316
+       SYS_SECCOMP                = 317
+       SYS_GETRANDOM              = 318
+       SYS_MEMFD_CREATE           = 319
+       SYS_KEXEC_FILE_LOAD        = 320
+       SYS_BPF                    = 321
+       SYS_EXECVEAT               = 322
+       SYS_USERFAULTFD            = 323
+       SYS_MEMBARRIER             = 324
+       SYS_MLOCK2                 = 325
+       SYS_COPY_FILE_RANGE        = 326
+       SYS_PREADV2                = 327
+       SYS_PWRITEV2               = 328
+       SYS_PKEY_MPROTECT          = 329
+       SYS_PKEY_ALLOC             = 330
+       SYS_PKEY_FREE              = 331
+)
diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_arm.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_arm.go
new file mode 100644 (file)
index 0000000..97b182e
--- /dev/null
@@ -0,0 +1,361 @@
+// linux/mksysnum.pl -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
+
+package unix
+
+const (
+       SYS_RESTART_SYSCALL        = 0
+       SYS_EXIT                   = 1
+       SYS_FORK                   = 2
+       SYS_READ                   = 3
+       SYS_WRITE                  = 4
+       SYS_OPEN                   = 5
+       SYS_CLOSE                  = 6
+       SYS_CREAT                  = 8
+       SYS_LINK                   = 9
+       SYS_UNLINK                 = 10
+       SYS_EXECVE                 = 11
+       SYS_CHDIR                  = 12
+       SYS_MKNOD                  = 14
+       SYS_CHMOD                  = 15
+       SYS_LCHOWN                 = 16
+       SYS_LSEEK                  = 19
+       SYS_GETPID                 = 20
+       SYS_MOUNT                  = 21
+       SYS_SETUID                 = 23
+       SYS_GETUID                 = 24
+       SYS_PTRACE                 = 26
+       SYS_PAUSE                  = 29
+       SYS_ACCESS                 = 33
+       SYS_NICE                   = 34
+       SYS_SYNC                   = 36
+       SYS_KILL                   = 37
+       SYS_RENAME                 = 38
+       SYS_MKDIR                  = 39
+       SYS_RMDIR                  = 40
+       SYS_DUP                    = 41
+       SYS_PIPE                   = 42
+       SYS_TIMES                  = 43
+       SYS_BRK                    = 45
+       SYS_SETGID                 = 46
+       SYS_GETGID                 = 47
+       SYS_GETEUID                = 49
+       SYS_GETEGID                = 50
+       SYS_ACCT                   = 51
+       SYS_UMOUNT2                = 52
+       SYS_IOCTL                  = 54
+       SYS_FCNTL                  = 55
+       SYS_SETPGID                = 57
+       SYS_UMASK                  = 60
+       SYS_CHROOT                 = 61
+       SYS_USTAT                  = 62
+       SYS_DUP2                   = 63
+       SYS_GETPPID                = 64
+       SYS_GETPGRP                = 65
+       SYS_SETSID                 = 66
+       SYS_SIGACTION              = 67
+       SYS_SETREUID               = 70
+       SYS_SETREGID               = 71
+       SYS_SIGSUSPEND             = 72
+       SYS_SIGPENDING             = 73
+       SYS_SETHOSTNAME            = 74
+       SYS_SETRLIMIT              = 75
+       SYS_GETRUSAGE              = 77
+       SYS_GETTIMEOFDAY           = 78
+       SYS_SETTIMEOFDAY           = 79
+       SYS_GETGROUPS              = 80
+       SYS_SETGROUPS              = 81
+       SYS_SYMLINK                = 83
+       SYS_READLINK               = 85
+       SYS_USELIB                 = 86
+       SYS_SWAPON                 = 87
+       SYS_REBOOT                 = 88
+       SYS_MUNMAP                 = 91
+       SYS_TRUNCATE               = 92
+       SYS_FTRUNCATE              = 93
+       SYS_FCHMOD                 = 94
+       SYS_FCHOWN                 = 95
+       SYS_GETPRIORITY            = 96
+       SYS_SETPRIORITY            = 97
+       SYS_STATFS                 = 99
+       SYS_FSTATFS                = 100
+       SYS_SYSLOG                 = 103
+       SYS_SETITIMER              = 104
+       SYS_GETITIMER              = 105
+       SYS_STAT                   = 106
+       SYS_LSTAT                  = 107
+       SYS_FSTAT                  = 108
+       SYS_VHANGUP                = 111
+       SYS_WAIT4                  = 114
+       SYS_SWAPOFF                = 115
+       SYS_SYSINFO                = 116
+       SYS_FSYNC                  = 118
+       SYS_SIGRETURN              = 119
+       SYS_CLONE                  = 120
+       SYS_SETDOMAINNAME          = 121
+       SYS_UNAME                  = 122
+       SYS_ADJTIMEX               = 124
+       SYS_MPROTECT               = 125
+       SYS_SIGPROCMASK            = 126
+       SYS_INIT_MODULE            = 128
+       SYS_DELETE_MODULE          = 129
+       SYS_QUOTACTL               = 131
+       SYS_GETPGID                = 132
+       SYS_FCHDIR                 = 133
+       SYS_BDFLUSH                = 134
+       SYS_SYSFS                  = 135
+       SYS_PERSONALITY            = 136
+       SYS_SETFSUID               = 138
+       SYS_SETFSGID               = 139
+       SYS__LLSEEK                = 140
+       SYS_GETDENTS               = 141
+       SYS__NEWSELECT             = 142
+       SYS_FLOCK                  = 143
+       SYS_MSYNC                  = 144
+       SYS_READV                  = 145
+       SYS_WRITEV                 = 146
+       SYS_GETSID                 = 147
+       SYS_FDATASYNC              = 148
+       SYS__SYSCTL                = 149
+       SYS_MLOCK                  = 150
+       SYS_MUNLOCK                = 151
+       SYS_MLOCKALL               = 152
+       SYS_MUNLOCKALL             = 153
+       SYS_SCHED_SETPARAM         = 154
+       SYS_SCHED_GETPARAM         = 155
+       SYS_SCHED_SETSCHEDULER     = 156
+       SYS_SCHED_GETSCHEDULER     = 157
+       SYS_SCHED_YIELD            = 158
+       SYS_SCHED_GET_PRIORITY_MAX = 159
+       SYS_SCHED_GET_PRIORITY_MIN = 160
+       SYS_SCHED_RR_GET_INTERVAL  = 161
+       SYS_NANOSLEEP              = 162
+       SYS_MREMAP                 = 163
+       SYS_SETRESUID              = 164
+       SYS_GETRESUID              = 165
+       SYS_POLL                   = 168
+       SYS_NFSSERVCTL             = 169
+       SYS_SETRESGID              = 170
+       SYS_GETRESGID              = 171
+       SYS_PRCTL                  = 172
+       SYS_RT_SIGRETURN           = 173
+       SYS_RT_SIGACTION           = 174
+       SYS_RT_SIGPROCMASK         = 175
+       SYS_RT_SIGPENDING          = 176
+       SYS_RT_SIGTIMEDWAIT        = 177
+       SYS_RT_SIGQUEUEINFO        = 178
+       SYS_RT_SIGSUSPEND          = 179
+       SYS_PREAD64                = 180
+       SYS_PWRITE64               = 181
+       SYS_CHOWN                  = 182
+       SYS_GETCWD                 = 183
+       SYS_CAPGET                 = 184
+       SYS_CAPSET                 = 185
+       SYS_SIGALTSTACK            = 186
+       SYS_SENDFILE               = 187
+       SYS_VFORK                  = 190
+       SYS_UGETRLIMIT             = 191
+       SYS_MMAP2                  = 192
+       SYS_TRUNCATE64             = 193
+       SYS_FTRUNCATE64            = 194
+       SYS_STAT64                 = 195
+       SYS_LSTAT64                = 196
+       SYS_FSTAT64                = 197
+       SYS_LCHOWN32               = 198
+       SYS_GETUID32               = 199
+       SYS_GETGID32               = 200
+       SYS_GETEUID32              = 201
+       SYS_GETEGID32              = 202
+       SYS_SETREUID32             = 203
+       SYS_SETREGID32             = 204
+       SYS_GETGROUPS32            = 205
+       SYS_SETGROUPS32            = 206
+       SYS_FCHOWN32               = 207
+       SYS_SETRESUID32            = 208
+       SYS_GETRESUID32            = 209
+       SYS_SETRESGID32            = 210
+       SYS_GETRESGID32            = 211
+       SYS_CHOWN32                = 212
+       SYS_SETUID32               = 213
+       SYS_SETGID32               = 214
+       SYS_SETFSUID32             = 215
+       SYS_SETFSGID32             = 216
+       SYS_GETDENTS64             = 217
+       SYS_PIVOT_ROOT             = 218
+       SYS_MINCORE                = 219
+       SYS_MADVISE                = 220
+       SYS_FCNTL64                = 221
+       SYS_GETTID                 = 224
+       SYS_READAHEAD              = 225
+       SYS_SETXATTR               = 226
+       SYS_LSETXATTR              = 227
+       SYS_FSETXATTR              = 228
+       SYS_GETXATTR               = 229
+       SYS_LGETXATTR              = 230
+       SYS_FGETXATTR              = 231
+       SYS_LISTXATTR              = 232
+       SYS_LLISTXATTR             = 233
+       SYS_FLISTXATTR             = 234
+       SYS_REMOVEXATTR            = 235
+       SYS_LREMOVEXATTR           = 236
+       SYS_FREMOVEXATTR           = 237
+       SYS_TKILL                  = 238
+       SYS_SENDFILE64             = 239
+       SYS_FUTEX                  = 240
+       SYS_SCHED_SETAFFINITY      = 241
+       SYS_SCHED_GETAFFINITY      = 242
+       SYS_IO_SETUP               = 243
+       SYS_IO_DESTROY             = 244
+       SYS_IO_GETEVENTS           = 245
+       SYS_IO_SUBMIT              = 246
+       SYS_IO_CANCEL              = 247
+       SYS_EXIT_GROUP             = 248
+       SYS_LOOKUP_DCOOKIE         = 249
+       SYS_EPOLL_CREATE           = 250
+       SYS_EPOLL_CTL              = 251
+       SYS_EPOLL_WAIT             = 252
+       SYS_REMAP_FILE_PAGES       = 253
+       SYS_SET_TID_ADDRESS        = 256
+       SYS_TIMER_CREATE           = 257
+       SYS_TIMER_SETTIME          = 258
+       SYS_TIMER_GETTIME          = 259
+       SYS_TIMER_GETOVERRUN       = 260
+       SYS_TIMER_DELETE           = 261
+       SYS_CLOCK_SETTIME          = 262
+       SYS_CLOCK_GETTIME          = 263
+       SYS_CLOCK_GETRES           = 264
+       SYS_CLOCK_NANOSLEEP        = 265
+       SYS_STATFS64               = 266
+       SYS_FSTATFS64              = 267
+       SYS_TGKILL                 = 268
+       SYS_UTIMES                 = 269
+       SYS_ARM_FADVISE64_64       = 270
+       SYS_PCICONFIG_IOBASE       = 271
+       SYS_PCICONFIG_READ         = 272
+       SYS_PCICONFIG_WRITE        = 273
+       SYS_MQ_OPEN                = 274
+       SYS_MQ_UNLINK              = 275
+       SYS_MQ_TIMEDSEND           = 276
+       SYS_MQ_TIMEDRECEIVE        = 277
+       SYS_MQ_NOTIFY              = 278
+       SYS_MQ_GETSETATTR          = 279
+       SYS_WAITID                 = 280
+       SYS_SOCKET                 = 281
+       SYS_BIND                   = 282
+       SYS_CONNECT                = 283
+       SYS_LISTEN                 = 284
+       SYS_ACCEPT                 = 285
+       SYS_GETSOCKNAME            = 286
+       SYS_GETPEERNAME            = 287
+       SYS_SOCKETPAIR             = 288
+       SYS_SEND                   = 289
+       SYS_SENDTO                 = 290
+       SYS_RECV                   = 291
+       SYS_RECVFROM               = 292
+       SYS_SHUTDOWN               = 293
+       SYS_SETSOCKOPT             = 294
+       SYS_GETSOCKOPT             = 295
+       SYS_SENDMSG                = 296
+       SYS_RECVMSG                = 297
+       SYS_SEMOP                  = 298
+       SYS_SEMGET                 = 299
+       SYS_SEMCTL                 = 300
+       SYS_MSGSND                 = 301
+       SYS_MSGRCV                 = 302
+       SYS_MSGGET                 = 303
+       SYS_MSGCTL                 = 304
+       SYS_SHMAT                  = 305
+       SYS_SHMDT                  = 306
+       SYS_SHMGET                 = 307
+       SYS_SHMCTL                 = 308
+       SYS_ADD_KEY                = 309
+       SYS_REQUEST_KEY            = 310
+       SYS_KEYCTL                 = 311
+       SYS_SEMTIMEDOP             = 312
+       SYS_VSERVER                = 313
+       SYS_IOPRIO_SET             = 314
+       SYS_IOPRIO_GET             = 315
+       SYS_INOTIFY_INIT           = 316
+       SYS_INOTIFY_ADD_WATCH      = 317
+       SYS_INOTIFY_RM_WATCH       = 318
+       SYS_MBIND                  = 319
+       SYS_GET_MEMPOLICY          = 320
+       SYS_SET_MEMPOLICY          = 321
+       SYS_OPENAT                 = 322
+       SYS_MKDIRAT                = 323
+       SYS_MKNODAT                = 324
+       SYS_FCHOWNAT               = 325
+       SYS_FUTIMESAT              = 326
+       SYS_FSTATAT64              = 327
+       SYS_UNLINKAT               = 328
+       SYS_RENAMEAT               = 329
+       SYS_LINKAT                 = 330
+       SYS_SYMLINKAT              = 331
+       SYS_READLINKAT             = 332
+       SYS_FCHMODAT               = 333
+       SYS_FACCESSAT              = 334
+       SYS_PSELECT6               = 335
+       SYS_PPOLL                  = 336
+       SYS_UNSHARE                = 337
+       SYS_SET_ROBUST_LIST        = 338
+       SYS_GET_ROBUST_LIST        = 339
+       SYS_SPLICE                 = 340
+       SYS_ARM_SYNC_FILE_RANGE    = 341
+       SYS_TEE                    = 342
+       SYS_VMSPLICE               = 343
+       SYS_MOVE_PAGES             = 344
+       SYS_GETCPU                 = 345
+       SYS_EPOLL_PWAIT            = 346
+       SYS_KEXEC_LOAD             = 347
+       SYS_UTIMENSAT              = 348
+       SYS_SIGNALFD               = 349
+       SYS_TIMERFD_CREATE         = 350
+       SYS_EVENTFD                = 351
+       SYS_FALLOCATE              = 352
+       SYS_TIMERFD_SETTIME        = 353
+       SYS_TIMERFD_GETTIME        = 354
+       SYS_SIGNALFD4              = 355
+       SYS_EVENTFD2               = 356
+       SYS_EPOLL_CREATE1          = 357
+       SYS_DUP3                   = 358
+       SYS_PIPE2                  = 359
+       SYS_INOTIFY_INIT1          = 360
+       SYS_PREADV                 = 361
+       SYS_PWRITEV                = 362
+       SYS_RT_TGSIGQUEUEINFO      = 363
+       SYS_PERF_EVENT_OPEN        = 364
+       SYS_RECVMMSG               = 365
+       SYS_ACCEPT4                = 366
+       SYS_FANOTIFY_INIT          = 367
+       SYS_FANOTIFY_MARK          = 368
+       SYS_PRLIMIT64              = 369
+       SYS_NAME_TO_HANDLE_AT      = 370
+       SYS_OPEN_BY_HANDLE_AT      = 371
+       SYS_CLOCK_ADJTIME          = 372
+       SYS_SYNCFS                 = 373
+       SYS_SENDMMSG               = 374
+       SYS_SETNS                  = 375
+       SYS_PROCESS_VM_READV       = 376
+       SYS_PROCESS_VM_WRITEV      = 377
+       SYS_KCMP                   = 378
+       SYS_FINIT_MODULE           = 379
+       SYS_SCHED_SETATTR          = 380
+       SYS_SCHED_GETATTR          = 381
+       SYS_RENAMEAT2              = 382
+       SYS_SECCOMP                = 383
+       SYS_GETRANDOM              = 384
+       SYS_MEMFD_CREATE           = 385
+       SYS_BPF                    = 386
+       SYS_EXECVEAT               = 387
+       SYS_USERFAULTFD            = 388
+       SYS_MEMBARRIER             = 389
+       SYS_MLOCK2                 = 390
+       SYS_COPY_FILE_RANGE        = 391
+       SYS_PREADV2                = 392
+       SYS_PWRITEV2               = 393
+       SYS_PKEY_MPROTECT          = 394
+       SYS_PKEY_ALLOC             = 395
+       SYS_PKEY_FREE              = 396
+)
diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go
new file mode 100644 (file)
index 0000000..6407843
--- /dev/null
@@ -0,0 +1,285 @@
+// linux/mksysnum.pl -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
+
+package unix
+
+const (
+       SYS_IO_SETUP               = 0
+       SYS_IO_DESTROY             = 1
+       SYS_IO_SUBMIT              = 2
+       SYS_IO_CANCEL              = 3
+       SYS_IO_GETEVENTS           = 4
+       SYS_SETXATTR               = 5
+       SYS_LSETXATTR              = 6
+       SYS_FSETXATTR              = 7
+       SYS_GETXATTR               = 8
+       SYS_LGETXATTR              = 9
+       SYS_FGETXATTR              = 10
+       SYS_LISTXATTR              = 11
+       SYS_LLISTXATTR             = 12
+       SYS_FLISTXATTR             = 13
+       SYS_REMOVEXATTR            = 14
+       SYS_LREMOVEXATTR           = 15
+       SYS_FREMOVEXATTR           = 16
+       SYS_GETCWD                 = 17
+       SYS_LOOKUP_DCOOKIE         = 18
+       SYS_EVENTFD2               = 19
+       SYS_EPOLL_CREATE1          = 20
+       SYS_EPOLL_CTL              = 21
+       SYS_EPOLL_PWAIT            = 22
+       SYS_DUP                    = 23
+       SYS_DUP3                   = 24
+       SYS_FCNTL                  = 25
+       SYS_INOTIFY_INIT1          = 26
+       SYS_INOTIFY_ADD_WATCH      = 27
+       SYS_INOTIFY_RM_WATCH       = 28
+       SYS_IOCTL                  = 29
+       SYS_IOPRIO_SET             = 30
+       SYS_IOPRIO_GET             = 31
+       SYS_FLOCK                  = 32
+       SYS_MKNODAT                = 33
+       SYS_MKDIRAT                = 34
+       SYS_UNLINKAT               = 35
+       SYS_SYMLINKAT              = 36
+       SYS_LINKAT                 = 37
+       SYS_RENAMEAT               = 38
+       SYS_UMOUNT2                = 39
+       SYS_MOUNT                  = 40
+       SYS_PIVOT_ROOT             = 41
+       SYS_NFSSERVCTL             = 42
+       SYS_STATFS                 = 43
+       SYS_FSTATFS                = 44
+       SYS_TRUNCATE               = 45
+       SYS_FTRUNCATE              = 46
+       SYS_FALLOCATE              = 47
+       SYS_FACCESSAT              = 48
+       SYS_CHDIR                  = 49
+       SYS_FCHDIR                 = 50
+       SYS_CHROOT                 = 51
+       SYS_FCHMOD                 = 52
+       SYS_FCHMODAT               = 53
+       SYS_FCHOWNAT               = 54
+       SYS_FCHOWN                 = 55
+       SYS_OPENAT                 = 56
+       SYS_CLOSE                  = 57
+       SYS_VHANGUP                = 58
+       SYS_PIPE2                  = 59
+       SYS_QUOTACTL               = 60
+       SYS_GETDENTS64             = 61
+       SYS_LSEEK                  = 62
+       SYS_READ                   = 63
+       SYS_WRITE                  = 64
+       SYS_READV                  = 65
+       SYS_WRITEV                 = 66
+       SYS_PREAD64                = 67
+       SYS_PWRITE64               = 68
+       SYS_PREADV                 = 69
+       SYS_PWRITEV                = 70
+       SYS_SENDFILE               = 71
+       SYS_PSELECT6               = 72
+       SYS_PPOLL                  = 73
+       SYS_SIGNALFD4              = 74
+       SYS_VMSPLICE               = 75
+       SYS_SPLICE                 = 76
+       SYS_TEE                    = 77
+       SYS_READLINKAT             = 78
+       SYS_FSTATAT                = 79
+       SYS_FSTAT                  = 80
+       SYS_SYNC                   = 81
+       SYS_FSYNC                  = 82
+       SYS_FDATASYNC              = 83
+       SYS_SYNC_FILE_RANGE        = 84
+       SYS_TIMERFD_CREATE         = 85
+       SYS_TIMERFD_SETTIME        = 86
+       SYS_TIMERFD_GETTIME        = 87
+       SYS_UTIMENSAT              = 88
+       SYS_ACCT                   = 89
+       SYS_CAPGET                 = 90
+       SYS_CAPSET                 = 91
+       SYS_PERSONALITY            = 92
+       SYS_EXIT                   = 93
+       SYS_EXIT_GROUP             = 94
+       SYS_WAITID                 = 95
+       SYS_SET_TID_ADDRESS        = 96
+       SYS_UNSHARE                = 97
+       SYS_FUTEX                  = 98
+       SYS_SET_ROBUST_LIST        = 99
+       SYS_GET_ROBUST_LIST        = 100
+       SYS_NANOSLEEP              = 101
+       SYS_GETITIMER              = 102
+       SYS_SETITIMER              = 103
+       SYS_KEXEC_LOAD             = 104
+       SYS_INIT_MODULE            = 105
+       SYS_DELETE_MODULE          = 106
+       SYS_TIMER_CREATE           = 107
+       SYS_TIMER_GETTIME          = 108
+       SYS_TIMER_GETOVERRUN       = 109
+       SYS_TIMER_SETTIME          = 110
+       SYS_TIMER_DELETE           = 111
+       SYS_CLOCK_SETTIME          = 112
+       SYS_CLOCK_GETTIME          = 113
+       SYS_CLOCK_GETRES           = 114
+       SYS_CLOCK_NANOSLEEP        = 115
+       SYS_SYSLOG                 = 116
+       SYS_PTRACE                 = 117
+       SYS_SCHED_SETPARAM         = 118
+       SYS_SCHED_SETSCHEDULER     = 119
+       SYS_SCHED_GETSCHEDULER     = 120
+       SYS_SCHED_GETPARAM         = 121
+       SYS_SCHED_SETAFFINITY      = 122
+       SYS_SCHED_GETAFFINITY      = 123
+       SYS_SCHED_YIELD            = 124
+       SYS_SCHED_GET_PRIORITY_MAX = 125
+       SYS_SCHED_GET_PRIORITY_MIN = 126
+       SYS_SCHED_RR_GET_INTERVAL  = 127
+       SYS_RESTART_SYSCALL        = 128
+       SYS_KILL                   = 129
+       SYS_TKILL                  = 130
+       SYS_TGKILL                 = 131
+       SYS_SIGALTSTACK            = 132
+       SYS_RT_SIGSUSPEND          = 133
+       SYS_RT_SIGACTION           = 134
+       SYS_RT_SIGPROCMASK         = 135
+       SYS_RT_SIGPENDING          = 136
+       SYS_RT_SIGTIMEDWAIT        = 137
+       SYS_RT_SIGQUEUEINFO        = 138
+       SYS_RT_SIGRETURN           = 139
+       SYS_SETPRIORITY            = 140
+       SYS_GETPRIORITY            = 141
+       SYS_REBOOT                 = 142
+       SYS_SETREGID               = 143
+       SYS_SETGID                 = 144
+       SYS_SETREUID               = 145
+       SYS_SETUID                 = 146
+       SYS_SETRESUID              = 147
+       SYS_GETRESUID              = 148
+       SYS_SETRESGID              = 149
+       SYS_GETRESGID              = 150
+       SYS_SETFSUID               = 151
+       SYS_SETFSGID               = 152
+       SYS_TIMES                  = 153
+       SYS_SETPGID                = 154
+       SYS_GETPGID                = 155
+       SYS_GETSID                 = 156
+       SYS_SETSID                 = 157
+       SYS_GETGROUPS              = 158
+       SYS_SETGROUPS              = 159
+       SYS_UNAME                  = 160
+       SYS_SETHOSTNAME            = 161
+       SYS_SETDOMAINNAME          = 162
+       SYS_GETRLIMIT              = 163
+       SYS_SETRLIMIT              = 164
+       SYS_GETRUSAGE              = 165
+       SYS_UMASK                  = 166
+       SYS_PRCTL                  = 167
+       SYS_GETCPU                 = 168
+       SYS_GETTIMEOFDAY           = 169
+       SYS_SETTIMEOFDAY           = 170
+       SYS_ADJTIMEX               = 171
+       SYS_GETPID                 = 172
+       SYS_GETPPID                = 173
+       SYS_GETUID                 = 174
+       SYS_GETEUID                = 175
+       SYS_GETGID                 = 176
+       SYS_GETEGID                = 177
+       SYS_GETTID                 = 178
+       SYS_SYSINFO                = 179
+       SYS_MQ_OPEN                = 180
+       SYS_MQ_UNLINK              = 181
+       SYS_MQ_TIMEDSEND           = 182
+       SYS_MQ_TIMEDRECEIVE        = 183
+       SYS_MQ_NOTIFY              = 184
+       SYS_MQ_GETSETATTR          = 185
+       SYS_MSGGET                 = 186
+       SYS_MSGCTL                 = 187
+       SYS_MSGRCV                 = 188
+       SYS_MSGSND                 = 189
+       SYS_SEMGET                 = 190
+       SYS_SEMCTL                 = 191
+       SYS_SEMTIMEDOP             = 192
+       SYS_SEMOP                  = 193
+       SYS_SHMGET                 = 194
+       SYS_SHMCTL                 = 195
+       SYS_SHMAT                  = 196
+       SYS_SHMDT                  = 197
+       SYS_SOCKET                 = 198
+       SYS_SOCKETPAIR             = 199
+       SYS_BIND                   = 200
+       SYS_LISTEN                 = 201
+       SYS_ACCEPT                 = 202
+       SYS_CONNECT                = 203
+       SYS_GETSOCKNAME            = 204
+       SYS_GETPEERNAME            = 205
+       SYS_SENDTO                 = 206
+       SYS_RECVFROM               = 207
+       SYS_SETSOCKOPT             = 208
+       SYS_GETSOCKOPT             = 209
+       SYS_SHUTDOWN               = 210
+       SYS_SENDMSG                = 211
+       SYS_RECVMSG                = 212
+       SYS_READAHEAD              = 213
+       SYS_BRK                    = 214
+       SYS_MUNMAP                 = 215
+       SYS_MREMAP                 = 216
+       SYS_ADD_KEY                = 217
+       SYS_REQUEST_KEY            = 218
+       SYS_KEYCTL                 = 219
+       SYS_CLONE                  = 220
+       SYS_EXECVE                 = 221
+       SYS_MMAP                   = 222
+       SYS_FADVISE64              = 223
+       SYS_SWAPON                 = 224
+       SYS_SWAPOFF                = 225
+       SYS_MPROTECT               = 226
+       SYS_MSYNC                  = 227
+       SYS_MLOCK                  = 228
+       SYS_MUNLOCK                = 229
+       SYS_MLOCKALL               = 230
+       SYS_MUNLOCKALL             = 231
+       SYS_MINCORE                = 232
+       SYS_MADVISE                = 233
+       SYS_REMAP_FILE_PAGES       = 234
+       SYS_MBIND                  = 235
+       SYS_GET_MEMPOLICY          = 236
+       SYS_SET_MEMPOLICY          = 237
+       SYS_MIGRATE_PAGES          = 238
+       SYS_MOVE_PAGES             = 239
+       SYS_RT_TGSIGQUEUEINFO      = 240
+       SYS_PERF_EVENT_OPEN        = 241
+       SYS_ACCEPT4                = 242
+       SYS_RECVMMSG               = 243
+       SYS_ARCH_SPECIFIC_SYSCALL  = 244
+       SYS_WAIT4                  = 260
+       SYS_PRLIMIT64              = 261
+       SYS_FANOTIFY_INIT          = 262
+       SYS_FANOTIFY_MARK          = 263
+       SYS_NAME_TO_HANDLE_AT      = 264
+       SYS_OPEN_BY_HANDLE_AT      = 265
+       SYS_CLOCK_ADJTIME          = 266
+       SYS_SYNCFS                 = 267
+       SYS_SETNS                  = 268
+       SYS_SENDMMSG               = 269
+       SYS_PROCESS_VM_READV       = 270
+       SYS_PROCESS_VM_WRITEV      = 271
+       SYS_KCMP                   = 272
+       SYS_FINIT_MODULE           = 273
+       SYS_SCHED_SETATTR          = 274
+       SYS_SCHED_GETATTR          = 275
+       SYS_RENAMEAT2              = 276
+       SYS_SECCOMP                = 277
+       SYS_GETRANDOM              = 278
+       SYS_MEMFD_CREATE           = 279
+       SYS_BPF                    = 280
+       SYS_EXECVEAT               = 281
+       SYS_USERFAULTFD            = 282
+       SYS_MEMBARRIER             = 283
+       SYS_MLOCK2                 = 284
+       SYS_COPY_FILE_RANGE        = 285
+       SYS_PREADV2                = 286
+       SYS_PWRITEV2               = 287
+       SYS_PKEY_MPROTECT          = 288
+       SYS_PKEY_ALLOC             = 289
+       SYS_PKEY_FREE              = 290
+)
diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_mips.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_mips.go
new file mode 100644 (file)
index 0000000..939567c
--- /dev/null
@@ -0,0 +1,374 @@
+// linux/mksysnum.pl -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
+
+package unix
+
+const (
+       SYS_SYSCALL                = 4000
+       SYS_EXIT                   = 4001
+       SYS_FORK                   = 4002
+       SYS_READ                   = 4003
+       SYS_WRITE                  = 4004
+       SYS_OPEN                   = 4005
+       SYS_CLOSE                  = 4006
+       SYS_WAITPID                = 4007
+       SYS_CREAT                  = 4008
+       SYS_LINK                   = 4009
+       SYS_UNLINK                 = 4010
+       SYS_EXECVE                 = 4011
+       SYS_CHDIR                  = 4012
+       SYS_TIME                   = 4013
+       SYS_MKNOD                  = 4014
+       SYS_CHMOD                  = 4015
+       SYS_LCHOWN                 = 4016
+       SYS_BREAK                  = 4017
+       SYS_UNUSED18               = 4018
+       SYS_LSEEK                  = 4019
+       SYS_GETPID                 = 4020
+       SYS_MOUNT                  = 4021
+       SYS_UMOUNT                 = 4022
+       SYS_SETUID                 = 4023
+       SYS_GETUID                 = 4024
+       SYS_STIME                  = 4025
+       SYS_PTRACE                 = 4026
+       SYS_ALARM                  = 4027
+       SYS_UNUSED28               = 4028
+       SYS_PAUSE                  = 4029
+       SYS_UTIME                  = 4030
+       SYS_STTY                   = 4031
+       SYS_GTTY                   = 4032
+       SYS_ACCESS                 = 4033
+       SYS_NICE                   = 4034
+       SYS_FTIME                  = 4035
+       SYS_SYNC                   = 4036
+       SYS_KILL                   = 4037
+       SYS_RENAME                 = 4038
+       SYS_MKDIR                  = 4039
+       SYS_RMDIR                  = 4040
+       SYS_DUP                    = 4041
+       SYS_PIPE                   = 4042
+       SYS_TIMES                  = 4043
+       SYS_PROF                   = 4044
+       SYS_BRK                    = 4045
+       SYS_SETGID                 = 4046
+       SYS_GETGID                 = 4047
+       SYS_SIGNAL                 = 4048
+       SYS_GETEUID                = 4049
+       SYS_GETEGID                = 4050
+       SYS_ACCT                   = 4051
+       SYS_UMOUNT2                = 4052
+       SYS_LOCK                   = 4053
+       SYS_IOCTL                  = 4054
+       SYS_FCNTL                  = 4055
+       SYS_MPX                    = 4056
+       SYS_SETPGID                = 4057
+       SYS_ULIMIT                 = 4058
+       SYS_UNUSED59               = 4059
+       SYS_UMASK                  = 4060
+       SYS_CHROOT                 = 4061
+       SYS_USTAT                  = 4062
+       SYS_DUP2                   = 4063
+       SYS_GETPPID                = 4064
+       SYS_GETPGRP                = 4065
+       SYS_SETSID                 = 4066
+       SYS_SIGACTION              = 4067
+       SYS_SGETMASK               = 4068
+       SYS_SSETMASK               = 4069
+       SYS_SETREUID               = 4070
+       SYS_SETREGID               = 4071
+       SYS_SIGSUSPEND             = 4072
+       SYS_SIGPENDING             = 4073
+       SYS_SETHOSTNAME            = 4074
+       SYS_SETRLIMIT              = 4075
+       SYS_GETRLIMIT              = 4076
+       SYS_GETRUSAGE              = 4077
+       SYS_GETTIMEOFDAY           = 4078
+       SYS_SETTIMEOFDAY           = 4079
+       SYS_GETGROUPS              = 4080
+       SYS_SETGROUPS              = 4081
+       SYS_RESERVED82             = 4082
+       SYS_SYMLINK                = 4083
+       SYS_UNUSED84               = 4084
+       SYS_READLINK               = 4085
+       SYS_USELIB                 = 4086
+       SYS_SWAPON                 = 4087
+       SYS_REBOOT                 = 4088
+       SYS_READDIR                = 4089
+       SYS_MMAP                   = 4090
+       SYS_MUNMAP                 = 4091
+       SYS_TRUNCATE               = 4092
+       SYS_FTRUNCATE              = 4093
+       SYS_FCHMOD                 = 4094
+       SYS_FCHOWN                 = 4095
+       SYS_GETPRIORITY            = 4096
+       SYS_SETPRIORITY            = 4097
+       SYS_PROFIL                 = 4098
+       SYS_STATFS                 = 4099
+       SYS_FSTATFS                = 4100
+       SYS_IOPERM                 = 4101
+       SYS_SOCKETCALL             = 4102
+       SYS_SYSLOG                 = 4103
+       SYS_SETITIMER              = 4104
+       SYS_GETITIMER              = 4105
+       SYS_STAT                   = 4106
+       SYS_LSTAT                  = 4107
+       SYS_FSTAT                  = 4108
+       SYS_UNUSED109              = 4109
+       SYS_IOPL                   = 4110
+       SYS_VHANGUP                = 4111
+       SYS_IDLE                   = 4112
+       SYS_VM86                   = 4113
+       SYS_WAIT4                  = 4114
+       SYS_SWAPOFF                = 4115
+       SYS_SYSINFO                = 4116
+       SYS_IPC                    = 4117
+       SYS_FSYNC                  = 4118
+       SYS_SIGRETURN              = 4119
+       SYS_CLONE                  = 4120
+       SYS_SETDOMAINNAME          = 4121
+       SYS_UNAME                  = 4122
+       SYS_MODIFY_LDT             = 4123
+       SYS_ADJTIMEX               = 4124
+       SYS_MPROTECT               = 4125
+       SYS_SIGPROCMASK            = 4126
+       SYS_CREATE_MODULE          = 4127
+       SYS_INIT_MODULE            = 4128
+       SYS_DELETE_MODULE          = 4129
+       SYS_GET_KERNEL_SYMS        = 4130
+       SYS_QUOTACTL               = 4131
+       SYS_GETPGID                = 4132
+       SYS_FCHDIR                 = 4133
+       SYS_BDFLUSH                = 4134
+       SYS_SYSFS                  = 4135
+       SYS_PERSONALITY            = 4136
+       SYS_AFS_SYSCALL            = 4137
+       SYS_SETFSUID               = 4138
+       SYS_SETFSGID               = 4139
+       SYS__LLSEEK                = 4140
+       SYS_GETDENTS               = 4141
+       SYS__NEWSELECT             = 4142
+       SYS_FLOCK                  = 4143
+       SYS_MSYNC                  = 4144
+       SYS_READV                  = 4145
+       SYS_WRITEV                 = 4146
+       SYS_CACHEFLUSH             = 4147
+       SYS_CACHECTL               = 4148
+       SYS_SYSMIPS                = 4149
+       SYS_UNUSED150              = 4150
+       SYS_GETSID                 = 4151
+       SYS_FDATASYNC              = 4152
+       SYS__SYSCTL                = 4153
+       SYS_MLOCK                  = 4154
+       SYS_MUNLOCK                = 4155
+       SYS_MLOCKALL               = 4156
+       SYS_MUNLOCKALL             = 4157
+       SYS_SCHED_SETPARAM         = 4158
+       SYS_SCHED_GETPARAM         = 4159
+       SYS_SCHED_SETSCHEDULER     = 4160
+       SYS_SCHED_GETSCHEDULER     = 4161
+       SYS_SCHED_YIELD            = 4162
+       SYS_SCHED_GET_PRIORITY_MAX = 4163
+       SYS_SCHED_GET_PRIORITY_MIN = 4164
+       SYS_SCHED_RR_GET_INTERVAL  = 4165
+       SYS_NANOSLEEP              = 4166
+       SYS_MREMAP                 = 4167
+       SYS_ACCEPT                 = 4168
+       SYS_BIND                   = 4169
+       SYS_CONNECT                = 4170
+       SYS_GETPEERNAME            = 4171
+       SYS_GETSOCKNAME            = 4172
+       SYS_GETSOCKOPT             = 4173
+       SYS_LISTEN                 = 4174
+       SYS_RECV                   = 4175
+       SYS_RECVFROM               = 4176
+       SYS_RECVMSG                = 4177
+       SYS_SEND                   = 4178
+       SYS_SENDMSG                = 4179
+       SYS_SENDTO                 = 4180
+       SYS_SETSOCKOPT             = 4181
+       SYS_SHUTDOWN               = 4182
+       SYS_SOCKET                 = 4183
+       SYS_SOCKETPAIR             = 4184
+       SYS_SETRESUID              = 4185
+       SYS_GETRESUID              = 4186
+       SYS_QUERY_MODULE           = 4187
+       SYS_POLL                   = 4188
+       SYS_NFSSERVCTL             = 4189
+       SYS_SETRESGID              = 4190
+       SYS_GETRESGID              = 4191
+       SYS_PRCTL                  = 4192
+       SYS_RT_SIGRETURN           = 4193
+       SYS_RT_SIGACTION           = 4194
+       SYS_RT_SIGPROCMASK         = 4195
+       SYS_RT_SIGPENDING          = 4196
+       SYS_RT_SIGTIMEDWAIT        = 4197
+       SYS_RT_SIGQUEUEINFO        = 4198
+       SYS_RT_SIGSUSPEND          = 4199
+       SYS_PREAD64                = 4200
+       SYS_PWRITE64               = 4201
+       SYS_CHOWN                  = 4202
+       SYS_GETCWD                 = 4203
+       SYS_CAPGET                 = 4204
+       SYS_CAPSET                 = 4205
+       SYS_SIGALTSTACK            = 4206
+       SYS_SENDFILE               = 4207
+       SYS_GETPMSG                = 4208
+       SYS_PUTPMSG                = 4209
+       SYS_MMAP2                  = 4210
+       SYS_TRUNCATE64             = 4211
+       SYS_FTRUNCATE64            = 4212
+       SYS_STAT64                 = 4213
+       SYS_LSTAT64                = 4214
+       SYS_FSTAT64                = 4215
+       SYS_PIVOT_ROOT             = 4216
+       SYS_MINCORE                = 4217
+       SYS_MADVISE                = 4218
+       SYS_GETDENTS64             = 4219
+       SYS_FCNTL64                = 4220
+       SYS_RESERVED221            = 4221
+       SYS_GETTID                 = 4222
+       SYS_READAHEAD              = 4223
+       SYS_SETXATTR               = 4224
+       SYS_LSETXATTR              = 4225
+       SYS_FSETXATTR              = 4226
+       SYS_GETXATTR               = 4227
+       SYS_LGETXATTR              = 4228
+       SYS_FGETXATTR              = 4229
+       SYS_LISTXATTR              = 4230
+       SYS_LLISTXATTR             = 4231
+       SYS_FLISTXATTR             = 4232
+       SYS_REMOVEXATTR            = 4233
+       SYS_LREMOVEXATTR           = 4234
+       SYS_FREMOVEXATTR           = 4235
+       SYS_TKILL                  = 4236
+       SYS_SENDFILE64             = 4237
+       SYS_FUTEX                  = 4238
+       SYS_SCHED_SETAFFINITY      = 4239
+       SYS_SCHED_GETAFFINITY      = 4240
+       SYS_IO_SETUP               = 4241
+       SYS_IO_DESTROY             = 4242
+       SYS_IO_GETEVENTS           = 4243
+       SYS_IO_SUBMIT              = 4244
+       SYS_IO_CANCEL              = 4245
+       SYS_EXIT_GROUP             = 4246
+       SYS_LOOKUP_DCOOKIE         = 4247
+       SYS_EPOLL_CREATE           = 4248
+       SYS_EPOLL_CTL              = 4249
+       SYS_EPOLL_WAIT             = 4250
+       SYS_REMAP_FILE_PAGES       = 4251
+       SYS_SET_TID_ADDRESS        = 4252
+       SYS_RESTART_SYSCALL        = 4253
+       SYS_FADVISE64              = 4254
+       SYS_STATFS64               = 4255
+       SYS_FSTATFS64              = 4256
+       SYS_TIMER_CREATE           = 4257
+       SYS_TIMER_SETTIME          = 4258
+       SYS_TIMER_GETTIME          = 4259
+       SYS_TIMER_GETOVERRUN       = 4260
+       SYS_TIMER_DELETE           = 4261
+       SYS_CLOCK_SETTIME          = 4262
+       SYS_CLOCK_GETTIME          = 4263
+       SYS_CLOCK_GETRES           = 4264
+       SYS_CLOCK_NANOSLEEP        = 4265
+       SYS_TGKILL                 = 4266
+       SYS_UTIMES                 = 4267
+       SYS_MBIND                  = 4268
+       SYS_GET_MEMPOLICY          = 4269
+       SYS_SET_MEMPOLICY          = 4270
+       SYS_MQ_OPEN                = 4271
+       SYS_MQ_UNLINK              = 4272
+       SYS_MQ_TIMEDSEND           = 4273
+       SYS_MQ_TIMEDRECEIVE        = 4274
+       SYS_MQ_NOTIFY              = 4275
+       SYS_MQ_GETSETATTR          = 4276
+       SYS_VSERVER                = 4277
+       SYS_WAITID                 = 4278
+       SYS_ADD_KEY                = 4280
+       SYS_REQUEST_KEY            = 4281
+       SYS_KEYCTL                 = 4282
+       SYS_SET_THREAD_AREA        = 4283
+       SYS_INOTIFY_INIT           = 4284
+       SYS_INOTIFY_ADD_WATCH      = 4285
+       SYS_INOTIFY_RM_WATCH       = 4286
+       SYS_MIGRATE_PAGES          = 4287
+       SYS_OPENAT                 = 4288
+       SYS_MKDIRAT                = 4289
+       SYS_MKNODAT                = 4290
+       SYS_FCHOWNAT               = 4291
+       SYS_FUTIMESAT              = 4292
+       SYS_FSTATAT64              = 4293
+       SYS_UNLINKAT               = 4294
+       SYS_RENAMEAT               = 4295
+       SYS_LINKAT                 = 4296
+       SYS_SYMLINKAT              = 4297
+       SYS_READLINKAT             = 4298
+       SYS_FCHMODAT               = 4299
+       SYS_FACCESSAT              = 4300
+       SYS_PSELECT6               = 4301
+       SYS_PPOLL                  = 4302
+       SYS_UNSHARE                = 4303
+       SYS_SPLICE                 = 4304
+       SYS_SYNC_FILE_RANGE        = 4305
+       SYS_TEE                    = 4306
+       SYS_VMSPLICE               = 4307
+       SYS_MOVE_PAGES             = 4308
+       SYS_SET_ROBUST_LIST        = 4309
+       SYS_GET_ROBUST_LIST        = 4310
+       SYS_KEXEC_LOAD             = 4311
+       SYS_GETCPU                 = 4312
+       SYS_EPOLL_PWAIT            = 4313
+       SYS_IOPRIO_SET             = 4314
+       SYS_IOPRIO_GET             = 4315
+       SYS_UTIMENSAT              = 4316
+       SYS_SIGNALFD               = 4317
+       SYS_TIMERFD                = 4318
+       SYS_EVENTFD                = 4319
+       SYS_FALLOCATE              = 4320
+       SYS_TIMERFD_CREATE         = 4321
+       SYS_TIMERFD_GETTIME        = 4322
+       SYS_TIMERFD_SETTIME        = 4323
+       SYS_SIGNALFD4              = 4324
+       SYS_EVENTFD2               = 4325
+       SYS_EPOLL_CREATE1          = 4326
+       SYS_DUP3                   = 4327
+       SYS_PIPE2                  = 4328
+       SYS_INOTIFY_INIT1          = 4329
+       SYS_PREADV                 = 4330
+       SYS_PWRITEV                = 4331
+       SYS_RT_TGSIGQUEUEINFO      = 4332
+       SYS_PERF_EVENT_OPEN        = 4333
+       SYS_ACCEPT4                = 4334
+       SYS_RECVMMSG               = 4335
+       SYS_FANOTIFY_INIT          = 4336
+       SYS_FANOTIFY_MARK          = 4337
+       SYS_PRLIMIT64              = 4338
+       SYS_NAME_TO_HANDLE_AT      = 4339
+       SYS_OPEN_BY_HANDLE_AT      = 4340
+       SYS_CLOCK_ADJTIME          = 4341
+       SYS_SYNCFS                 = 4342
+       SYS_SENDMMSG               = 4343
+       SYS_SETNS                  = 4344
+       SYS_PROCESS_VM_READV       = 4345
+       SYS_PROCESS_VM_WRITEV      = 4346
+       SYS_KCMP                   = 4347
+       SYS_FINIT_MODULE           = 4348
+       SYS_SCHED_SETATTR          = 4349
+       SYS_SCHED_GETATTR          = 4350
+       SYS_RENAMEAT2              = 4351
+       SYS_SECCOMP                = 4352
+       SYS_GETRANDOM              = 4353
+       SYS_MEMFD_CREATE           = 4354
+       SYS_BPF                    = 4355
+       SYS_EXECVEAT               = 4356
+       SYS_USERFAULTFD            = 4357
+       SYS_MEMBARRIER             = 4358
+       SYS_MLOCK2                 = 4359
+       SYS_COPY_FILE_RANGE        = 4360
+       SYS_PREADV2                = 4361
+       SYS_PWRITEV2               = 4362
+       SYS_PKEY_MPROTECT          = 4363
+       SYS_PKEY_ALLOC             = 4364
+       SYS_PKEY_FREE              = 4365
+)
diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go
new file mode 100644 (file)
index 0000000..09db959
--- /dev/null
@@ -0,0 +1,334 @@
+// linux/mksysnum.pl -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
+
+package unix
+
+const (
+       SYS_READ                   = 5000
+       SYS_WRITE                  = 5001
+       SYS_OPEN                   = 5002
+       SYS_CLOSE                  = 5003
+       SYS_STAT                   = 5004
+       SYS_FSTAT                  = 5005
+       SYS_LSTAT                  = 5006
+       SYS_POLL                   = 5007
+       SYS_LSEEK                  = 5008
+       SYS_MMAP                   = 5009
+       SYS_MPROTECT               = 5010
+       SYS_MUNMAP                 = 5011
+       SYS_BRK                    = 5012
+       SYS_RT_SIGACTION           = 5013
+       SYS_RT_SIGPROCMASK         = 5014
+       SYS_IOCTL                  = 5015
+       SYS_PREAD64                = 5016
+       SYS_PWRITE64               = 5017
+       SYS_READV                  = 5018
+       SYS_WRITEV                 = 5019
+       SYS_ACCESS                 = 5020
+       SYS_PIPE                   = 5021
+       SYS__NEWSELECT             = 5022
+       SYS_SCHED_YIELD            = 5023
+       SYS_MREMAP                 = 5024
+       SYS_MSYNC                  = 5025
+       SYS_MINCORE                = 5026
+       SYS_MADVISE                = 5027
+       SYS_SHMGET                 = 5028
+       SYS_SHMAT                  = 5029
+       SYS_SHMCTL                 = 5030
+       SYS_DUP                    = 5031
+       SYS_DUP2                   = 5032
+       SYS_PAUSE                  = 5033
+       SYS_NANOSLEEP              = 5034
+       SYS_GETITIMER              = 5035
+       SYS_SETITIMER              = 5036
+       SYS_ALARM                  = 5037
+       SYS_GETPID                 = 5038
+       SYS_SENDFILE               = 5039
+       SYS_SOCKET                 = 5040
+       SYS_CONNECT                = 5041
+       SYS_ACCEPT                 = 5042
+       SYS_SENDTO                 = 5043
+       SYS_RECVFROM               = 5044
+       SYS_SENDMSG                = 5045
+       SYS_RECVMSG                = 5046
+       SYS_SHUTDOWN               = 5047
+       SYS_BIND                   = 5048
+       SYS_LISTEN                 = 5049
+       SYS_GETSOCKNAME            = 5050
+       SYS_GETPEERNAME            = 5051
+       SYS_SOCKETPAIR             = 5052
+       SYS_SETSOCKOPT             = 5053
+       SYS_GETSOCKOPT             = 5054
+       SYS_CLONE                  = 5055
+       SYS_FORK                   = 5056
+       SYS_EXECVE                 = 5057
+       SYS_EXIT                   = 5058
+       SYS_WAIT4                  = 5059
+       SYS_KILL                   = 5060
+       SYS_UNAME                  = 5061
+       SYS_SEMGET                 = 5062
+       SYS_SEMOP                  = 5063
+       SYS_SEMCTL                 = 5064
+       SYS_SHMDT                  = 5065
+       SYS_MSGGET                 = 5066
+       SYS_MSGSND                 = 5067
+       SYS_MSGRCV                 = 5068
+       SYS_MSGCTL                 = 5069
+       SYS_FCNTL                  = 5070
+       SYS_FLOCK                  = 5071
+       SYS_FSYNC                  = 5072
+       SYS_FDATASYNC              = 5073
+       SYS_TRUNCATE               = 5074
+       SYS_FTRUNCATE              = 5075
+       SYS_GETDENTS               = 5076
+       SYS_GETCWD                 = 5077
+       SYS_CHDIR                  = 5078
+       SYS_FCHDIR                 = 5079
+       SYS_RENAME                 = 5080
+       SYS_MKDIR                  = 5081
+       SYS_RMDIR                  = 5082
+       SYS_CREAT                  = 5083
+       SYS_LINK                   = 5084
+       SYS_UNLINK                 = 5085
+       SYS_SYMLINK                = 5086
+       SYS_READLINK               = 5087
+       SYS_CHMOD                  = 5088
+       SYS_FCHMOD                 = 5089
+       SYS_CHOWN                  = 5090
+       SYS_FCHOWN                 = 5091
+       SYS_LCHOWN                 = 5092
+       SYS_UMASK                  = 5093
+       SYS_GETTIMEOFDAY           = 5094
+       SYS_GETRLIMIT              = 5095
+       SYS_GETRUSAGE              = 5096
+       SYS_SYSINFO                = 5097
+       SYS_TIMES                  = 5098
+       SYS_PTRACE                 = 5099
+       SYS_GETUID                 = 5100
+       SYS_SYSLOG                 = 5101
+       SYS_GETGID                 = 5102
+       SYS_SETUID                 = 5103
+       SYS_SETGID                 = 5104
+       SYS_GETEUID                = 5105
+       SYS_GETEGID                = 5106
+       SYS_SETPGID                = 5107
+       SYS_GETPPID                = 5108
+       SYS_GETPGRP                = 5109
+       SYS_SETSID                 = 5110
+       SYS_SETREUID               = 5111
+       SYS_SETREGID               = 5112
+       SYS_GETGROUPS              = 5113
+       SYS_SETGROUPS              = 5114
+       SYS_SETRESUID              = 5115
+       SYS_GETRESUID              = 5116
+       SYS_SETRESGID              = 5117
+       SYS_GETRESGID              = 5118
+       SYS_GETPGID                = 5119
+       SYS_SETFSUID               = 5120
+       SYS_SETFSGID               = 5121
+       SYS_GETSID                 = 5122
+       SYS_CAPGET                 = 5123
+       SYS_CAPSET                 = 5124
+       SYS_RT_SIGPENDING          = 5125
+       SYS_RT_SIGTIMEDWAIT        = 5126
+       SYS_RT_SIGQUEUEINFO        = 5127
+       SYS_RT_SIGSUSPEND          = 5128
+       SYS_SIGALTSTACK            = 5129
+       SYS_UTIME                  = 5130
+       SYS_MKNOD                  = 5131
+       SYS_PERSONALITY            = 5132
+       SYS_USTAT                  = 5133
+       SYS_STATFS                 = 5134
+       SYS_FSTATFS                = 5135
+       SYS_SYSFS                  = 5136
+       SYS_GETPRIORITY            = 5137
+       SYS_SETPRIORITY            = 5138
+       SYS_SCHED_SETPARAM         = 5139
+       SYS_SCHED_GETPARAM         = 5140
+       SYS_SCHED_SETSCHEDULER     = 5141
+       SYS_SCHED_GETSCHEDULER     = 5142
+       SYS_SCHED_GET_PRIORITY_MAX = 5143
+       SYS_SCHED_GET_PRIORITY_MIN = 5144
+       SYS_SCHED_RR_GET_INTERVAL  = 5145
+       SYS_MLOCK                  = 5146
+       SYS_MUNLOCK                = 5147
+       SYS_MLOCKALL               = 5148
+       SYS_MUNLOCKALL             = 5149
+       SYS_VHANGUP                = 5150
+       SYS_PIVOT_ROOT             = 5151
+       SYS__SYSCTL                = 5152
+       SYS_PRCTL                  = 5153
+       SYS_ADJTIMEX               = 5154
+       SYS_SETRLIMIT              = 5155
+       SYS_CHROOT                 = 5156
+       SYS_SYNC                   = 5157
+       SYS_ACCT                   = 5158
+       SYS_SETTIMEOFDAY           = 5159
+       SYS_MOUNT                  = 5160
+       SYS_UMOUNT2                = 5161
+       SYS_SWAPON                 = 5162
+       SYS_SWAPOFF                = 5163
+       SYS_REBOOT                 = 5164
+       SYS_SETHOSTNAME            = 5165
+       SYS_SETDOMAINNAME          = 5166
+       SYS_CREATE_MODULE          = 5167
+       SYS_INIT_MODULE            = 5168
+       SYS_DELETE_MODULE          = 5169
+       SYS_GET_KERNEL_SYMS        = 5170
+       SYS_QUERY_MODULE           = 5171
+       SYS_QUOTACTL               = 5172
+       SYS_NFSSERVCTL             = 5173
+       SYS_GETPMSG                = 5174
+       SYS_PUTPMSG                = 5175
+       SYS_AFS_SYSCALL            = 5176
+       SYS_RESERVED177            = 5177
+       SYS_GETTID                 = 5178
+       SYS_READAHEAD              = 5179
+       SYS_SETXATTR               = 5180
+       SYS_LSETXATTR              = 5181
+       SYS_FSETXATTR              = 5182
+       SYS_GETXATTR               = 5183
+       SYS_LGETXATTR              = 5184
+       SYS_FGETXATTR              = 5185
+       SYS_LISTXATTR              = 5186
+       SYS_LLISTXATTR             = 5187
+       SYS_FLISTXATTR             = 5188
+       SYS_REMOVEXATTR            = 5189
+       SYS_LREMOVEXATTR           = 5190
+       SYS_FREMOVEXATTR           = 5191
+       SYS_TKILL                  = 5192
+       SYS_RESERVED193            = 5193
+       SYS_FUTEX                  = 5194
+       SYS_SCHED_SETAFFINITY      = 5195
+       SYS_SCHED_GETAFFINITY      = 5196
+       SYS_CACHEFLUSH             = 5197
+       SYS_CACHECTL               = 5198
+       SYS_SYSMIPS                = 5199
+       SYS_IO_SETUP               = 5200
+       SYS_IO_DESTROY             = 5201
+       SYS_IO_GETEVENTS           = 5202
+       SYS_IO_SUBMIT              = 5203
+       SYS_IO_CANCEL              = 5204
+       SYS_EXIT_GROUP             = 5205
+       SYS_LOOKUP_DCOOKIE         = 5206
+       SYS_EPOLL_CREATE           = 5207
+       SYS_EPOLL_CTL              = 5208
+       SYS_EPOLL_WAIT             = 5209
+       SYS_REMAP_FILE_PAGES       = 5210
+       SYS_RT_SIGRETURN           = 5211
+       SYS_SET_TID_ADDRESS        = 5212
+       SYS_RESTART_SYSCALL        = 5213
+       SYS_SEMTIMEDOP             = 5214
+       SYS_FADVISE64              = 5215
+       SYS_TIMER_CREATE           = 5216
+       SYS_TIMER_SETTIME          = 5217
+       SYS_TIMER_GETTIME          = 5218
+       SYS_TIMER_GETOVERRUN       = 5219
+       SYS_TIMER_DELETE           = 5220
+       SYS_CLOCK_SETTIME          = 5221
+       SYS_CLOCK_GETTIME          = 5222
+       SYS_CLOCK_GETRES           = 5223
+       SYS_CLOCK_NANOSLEEP        = 5224
+       SYS_TGKILL                 = 5225
+       SYS_UTIMES                 = 5226
+       SYS_MBIND                  = 5227
+       SYS_GET_MEMPOLICY          = 5228
+       SYS_SET_MEMPOLICY          = 5229
+       SYS_MQ_OPEN                = 5230
+       SYS_MQ_UNLINK              = 5231
+       SYS_MQ_TIMEDSEND           = 5232
+       SYS_MQ_TIMEDRECEIVE        = 5233
+       SYS_MQ_NOTIFY              = 5234
+       SYS_MQ_GETSETATTR          = 5235
+       SYS_VSERVER                = 5236
+       SYS_WAITID                 = 5237
+       SYS_ADD_KEY                = 5239
+       SYS_REQUEST_KEY            = 5240
+       SYS_KEYCTL                 = 5241
+       SYS_SET_THREAD_AREA        = 5242
+       SYS_INOTIFY_INIT           = 5243
+       SYS_INOTIFY_ADD_WATCH      = 5244
+       SYS_INOTIFY_RM_WATCH       = 5245
+       SYS_MIGRATE_PAGES          = 5246
+       SYS_OPENAT                 = 5247
+       SYS_MKDIRAT                = 5248
+       SYS_MKNODAT                = 5249
+       SYS_FCHOWNAT               = 5250
+       SYS_FUTIMESAT              = 5251
+       SYS_NEWFSTATAT             = 5252
+       SYS_UNLINKAT               = 5253
+       SYS_RENAMEAT               = 5254
+       SYS_LINKAT                 = 5255
+       SYS_SYMLINKAT              = 5256
+       SYS_READLINKAT             = 5257
+       SYS_FCHMODAT               = 5258
+       SYS_FACCESSAT              = 5259
+       SYS_PSELECT6               = 5260
+       SYS_PPOLL                  = 5261
+       SYS_UNSHARE                = 5262
+       SYS_SPLICE                 = 5263
+       SYS_SYNC_FILE_RANGE        = 5264
+       SYS_TEE                    = 5265
+       SYS_VMSPLICE               = 5266
+       SYS_MOVE_PAGES             = 5267
+       SYS_SET_ROBUST_LIST        = 5268
+       SYS_GET_ROBUST_LIST        = 5269
+       SYS_KEXEC_LOAD             = 5270
+       SYS_GETCPU                 = 5271
+       SYS_EPOLL_PWAIT            = 5272
+       SYS_IOPRIO_SET             = 5273
+       SYS_IOPRIO_GET             = 5274
+       SYS_UTIMENSAT              = 5275
+       SYS_SIGNALFD               = 5276
+       SYS_TIMERFD                = 5277
+       SYS_EVENTFD                = 5278
+       SYS_FALLOCATE              = 5279
+       SYS_TIMERFD_CREATE         = 5280
+       SYS_TIMERFD_GETTIME        = 5281
+       SYS_TIMERFD_SETTIME        = 5282
+       SYS_SIGNALFD4              = 5283
+       SYS_EVENTFD2               = 5284
+       SYS_EPOLL_CREATE1          = 5285
+       SYS_DUP3                   = 5286
+       SYS_PIPE2                  = 5287
+       SYS_INOTIFY_INIT1          = 5288
+       SYS_PREADV                 = 5289
+       SYS_PWRITEV                = 5290
+       SYS_RT_TGSIGQUEUEINFO      = 5291
+       SYS_PERF_EVENT_OPEN        = 5292
+       SYS_ACCEPT4                = 5293
+       SYS_RECVMMSG               = 5294
+       SYS_FANOTIFY_INIT          = 5295
+       SYS_FANOTIFY_MARK          = 5296
+       SYS_PRLIMIT64              = 5297
+       SYS_NAME_TO_HANDLE_AT      = 5298
+       SYS_OPEN_BY_HANDLE_AT      = 5299
+       SYS_CLOCK_ADJTIME          = 5300
+       SYS_SYNCFS                 = 5301
+       SYS_SENDMMSG               = 5302
+       SYS_SETNS                  = 5303
+       SYS_PROCESS_VM_READV       = 5304
+       SYS_PROCESS_VM_WRITEV      = 5305
+       SYS_KCMP                   = 5306
+       SYS_FINIT_MODULE           = 5307
+       SYS_GETDENTS64             = 5308
+       SYS_SCHED_SETATTR          = 5309
+       SYS_SCHED_GETATTR          = 5310
+       SYS_RENAMEAT2              = 5311
+       SYS_SECCOMP                = 5312
+       SYS_GETRANDOM              = 5313
+       SYS_MEMFD_CREATE           = 5314
+       SYS_BPF                    = 5315
+       SYS_EXECVEAT               = 5316
+       SYS_USERFAULTFD            = 5317
+       SYS_MEMBARRIER             = 5318
+       SYS_MLOCK2                 = 5319
+       SYS_COPY_FILE_RANGE        = 5320
+       SYS_PREADV2                = 5321
+       SYS_PWRITEV2               = 5322
+       SYS_PKEY_MPROTECT          = 5323
+       SYS_PKEY_ALLOC             = 5324
+       SYS_PKEY_FREE              = 5325
+)
diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go
new file mode 100644 (file)
index 0000000..d1b872a
--- /dev/null
@@ -0,0 +1,334 @@
+// linux/mksysnum.pl -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
+
+package unix
+
+const (
+       SYS_READ                   = 5000
+       SYS_WRITE                  = 5001
+       SYS_OPEN                   = 5002
+       SYS_CLOSE                  = 5003
+       SYS_STAT                   = 5004
+       SYS_FSTAT                  = 5005
+       SYS_LSTAT                  = 5006
+       SYS_POLL                   = 5007
+       SYS_LSEEK                  = 5008
+       SYS_MMAP                   = 5009
+       SYS_MPROTECT               = 5010
+       SYS_MUNMAP                 = 5011
+       SYS_BRK                    = 5012
+       SYS_RT_SIGACTION           = 5013
+       SYS_RT_SIGPROCMASK         = 5014
+       SYS_IOCTL                  = 5015
+       SYS_PREAD64                = 5016
+       SYS_PWRITE64               = 5017
+       SYS_READV                  = 5018
+       SYS_WRITEV                 = 5019
+       SYS_ACCESS                 = 5020
+       SYS_PIPE                   = 5021
+       SYS__NEWSELECT             = 5022
+       SYS_SCHED_YIELD            = 5023
+       SYS_MREMAP                 = 5024
+       SYS_MSYNC                  = 5025
+       SYS_MINCORE                = 5026
+       SYS_MADVISE                = 5027
+       SYS_SHMGET                 = 5028
+       SYS_SHMAT                  = 5029
+       SYS_SHMCTL                 = 5030
+       SYS_DUP                    = 5031
+       SYS_DUP2                   = 5032
+       SYS_PAUSE                  = 5033
+       SYS_NANOSLEEP              = 5034
+       SYS_GETITIMER              = 5035
+       SYS_SETITIMER              = 5036
+       SYS_ALARM                  = 5037
+       SYS_GETPID                 = 5038
+       SYS_SENDFILE               = 5039
+       SYS_SOCKET                 = 5040
+       SYS_CONNECT                = 5041
+       SYS_ACCEPT                 = 5042
+       SYS_SENDTO                 = 5043
+       SYS_RECVFROM               = 5044
+       SYS_SENDMSG                = 5045
+       SYS_RECVMSG                = 5046
+       SYS_SHUTDOWN               = 5047
+       SYS_BIND                   = 5048
+       SYS_LISTEN                 = 5049
+       SYS_GETSOCKNAME            = 5050
+       SYS_GETPEERNAME            = 5051
+       SYS_SOCKETPAIR             = 5052
+       SYS_SETSOCKOPT             = 5053
+       SYS_GETSOCKOPT             = 5054
+       SYS_CLONE                  = 5055
+       SYS_FORK                   = 5056
+       SYS_EXECVE                 = 5057
+       SYS_EXIT                   = 5058
+       SYS_WAIT4                  = 5059
+       SYS_KILL                   = 5060
+       SYS_UNAME                  = 5061
+       SYS_SEMGET                 = 5062
+       SYS_SEMOP                  = 5063
+       SYS_SEMCTL                 = 5064
+       SYS_SHMDT                  = 5065
+       SYS_MSGGET                 = 5066
+       SYS_MSGSND                 = 5067
+       SYS_MSGRCV                 = 5068
+       SYS_MSGCTL                 = 5069
+       SYS_FCNTL                  = 5070
+       SYS_FLOCK                  = 5071
+       SYS_FSYNC                  = 5072
+       SYS_FDATASYNC              = 5073
+       SYS_TRUNCATE               = 5074
+       SYS_FTRUNCATE              = 5075
+       SYS_GETDENTS               = 5076
+       SYS_GETCWD                 = 5077
+       SYS_CHDIR                  = 5078
+       SYS_FCHDIR                 = 5079
+       SYS_RENAME                 = 5080
+       SYS_MKDIR                  = 5081
+       SYS_RMDIR                  = 5082
+       SYS_CREAT                  = 5083
+       SYS_LINK                   = 5084
+       SYS_UNLINK                 = 5085
+       SYS_SYMLINK                = 5086
+       SYS_READLINK               = 5087
+       SYS_CHMOD                  = 5088
+       SYS_FCHMOD                 = 5089
+       SYS_CHOWN                  = 5090
+       SYS_FCHOWN                 = 5091
+       SYS_LCHOWN                 = 5092
+       SYS_UMASK                  = 5093
+       SYS_GETTIMEOFDAY           = 5094
+       SYS_GETRLIMIT              = 5095
+       SYS_GETRUSAGE              = 5096
+       SYS_SYSINFO                = 5097
+       SYS_TIMES                  = 5098
+       SYS_PTRACE                 = 5099
+       SYS_GETUID                 = 5100
+       SYS_SYSLOG                 = 5101
+       SYS_GETGID                 = 5102
+       SYS_SETUID                 = 5103
+       SYS_SETGID                 = 5104
+       SYS_GETEUID                = 5105
+       SYS_GETEGID                = 5106
+       SYS_SETPGID                = 5107
+       SYS_GETPPID                = 5108
+       SYS_GETPGRP                = 5109
+       SYS_SETSID                 = 5110
+       SYS_SETREUID               = 5111
+       SYS_SETREGID               = 5112
+       SYS_GETGROUPS              = 5113
+       SYS_SETGROUPS              = 5114
+       SYS_SETRESUID              = 5115
+       SYS_GETRESUID              = 5116
+       SYS_SETRESGID              = 5117
+       SYS_GETRESGID              = 5118
+       SYS_GETPGID                = 5119
+       SYS_SETFSUID               = 5120
+       SYS_SETFSGID               = 5121
+       SYS_GETSID                 = 5122
+       SYS_CAPGET                 = 5123
+       SYS_CAPSET                 = 5124
+       SYS_RT_SIGPENDING          = 5125
+       SYS_RT_SIGTIMEDWAIT        = 5126
+       SYS_RT_SIGQUEUEINFO        = 5127
+       SYS_RT_SIGSUSPEND          = 5128
+       SYS_SIGALTSTACK            = 5129
+       SYS_UTIME                  = 5130
+       SYS_MKNOD                  = 5131
+       SYS_PERSONALITY            = 5132
+       SYS_USTAT                  = 5133
+       SYS_STATFS                 = 5134
+       SYS_FSTATFS                = 5135
+       SYS_SYSFS                  = 5136
+       SYS_GETPRIORITY            = 5137
+       SYS_SETPRIORITY            = 5138
+       SYS_SCHED_SETPARAM         = 5139
+       SYS_SCHED_GETPARAM         = 5140
+       SYS_SCHED_SETSCHEDULER     = 5141
+       SYS_SCHED_GETSCHEDULER     = 5142
+       SYS_SCHED_GET_PRIORITY_MAX = 5143
+       SYS_SCHED_GET_PRIORITY_MIN = 5144
+       SYS_SCHED_RR_GET_INTERVAL  = 5145
+       SYS_MLOCK                  = 5146
+       SYS_MUNLOCK                = 5147
+       SYS_MLOCKALL               = 5148
+       SYS_MUNLOCKALL             = 5149
+       SYS_VHANGUP                = 5150
+       SYS_PIVOT_ROOT             = 5151
+       SYS__SYSCTL                = 5152
+       SYS_PRCTL                  = 5153
+       SYS_ADJTIMEX               = 5154
+       SYS_SETRLIMIT              = 5155
+       SYS_CHROOT                 = 5156
+       SYS_SYNC                   = 5157
+       SYS_ACCT                   = 5158
+       SYS_SETTIMEOFDAY           = 5159
+       SYS_MOUNT                  = 5160
+       SYS_UMOUNT2                = 5161
+       SYS_SWAPON                 = 5162
+       SYS_SWAPOFF                = 5163
+       SYS_REBOOT                 = 5164
+       SYS_SETHOSTNAME            = 5165
+       SYS_SETDOMAINNAME          = 5166
+       SYS_CREATE_MODULE          = 5167
+       SYS_INIT_MODULE            = 5168
+       SYS_DELETE_MODULE          = 5169
+       SYS_GET_KERNEL_SYMS        = 5170
+       SYS_QUERY_MODULE           = 5171
+       SYS_QUOTACTL               = 5172
+       SYS_NFSSERVCTL             = 5173
+       SYS_GETPMSG                = 5174
+       SYS_PUTPMSG                = 5175
+       SYS_AFS_SYSCALL            = 5176
+       SYS_RESERVED177            = 5177
+       SYS_GETTID                 = 5178
+       SYS_READAHEAD              = 5179
+       SYS_SETXATTR               = 5180
+       SYS_LSETXATTR              = 5181
+       SYS_FSETXATTR              = 5182
+       SYS_GETXATTR               = 5183
+       SYS_LGETXATTR              = 5184
+       SYS_FGETXATTR              = 5185
+       SYS_LISTXATTR              = 5186
+       SYS_LLISTXATTR             = 5187
+       SYS_FLISTXATTR             = 5188
+       SYS_REMOVEXATTR            = 5189
+       SYS_LREMOVEXATTR           = 5190
+       SYS_FREMOVEXATTR           = 5191
+       SYS_TKILL                  = 5192
+       SYS_RESERVED193            = 5193
+       SYS_FUTEX                  = 5194
+       SYS_SCHED_SETAFFINITY      = 5195
+       SYS_SCHED_GETAFFINITY      = 5196
+       SYS_CACHEFLUSH             = 5197
+       SYS_CACHECTL               = 5198
+       SYS_SYSMIPS                = 5199
+       SYS_IO_SETUP               = 5200
+       SYS_IO_DESTROY             = 5201
+       SYS_IO_GETEVENTS           = 5202
+       SYS_IO_SUBMIT              = 5203
+       SYS_IO_CANCEL              = 5204
+       SYS_EXIT_GROUP             = 5205
+       SYS_LOOKUP_DCOOKIE         = 5206
+       SYS_EPOLL_CREATE           = 5207
+       SYS_EPOLL_CTL              = 5208
+       SYS_EPOLL_WAIT             = 5209
+       SYS_REMAP_FILE_PAGES       = 5210
+       SYS_RT_SIGRETURN           = 5211
+       SYS_SET_TID_ADDRESS        = 5212
+       SYS_RESTART_SYSCALL        = 5213
+       SYS_SEMTIMEDOP             = 5214
+       SYS_FADVISE64              = 5215
+       SYS_TIMER_CREATE           = 5216
+       SYS_TIMER_SETTIME          = 5217
+       SYS_TIMER_GETTIME          = 5218
+       SYS_TIMER_GETOVERRUN       = 5219
+       SYS_TIMER_DELETE           = 5220
+       SYS_CLOCK_SETTIME          = 5221
+       SYS_CLOCK_GETTIME          = 5222
+       SYS_CLOCK_GETRES           = 5223
+       SYS_CLOCK_NANOSLEEP        = 5224
+       SYS_TGKILL                 = 5225
+       SYS_UTIMES                 = 5226
+       SYS_MBIND                  = 5227
+       SYS_GET_MEMPOLICY          = 5228
+       SYS_SET_MEMPOLICY          = 5229
+       SYS_MQ_OPEN                = 5230
+       SYS_MQ_UNLINK              = 5231
+       SYS_MQ_TIMEDSEND           = 5232
+       SYS_MQ_TIMEDRECEIVE        = 5233
+       SYS_MQ_NOTIFY              = 5234
+       SYS_MQ_GETSETATTR          = 5235
+       SYS_VSERVER                = 5236
+       SYS_WAITID                 = 5237
+       SYS_ADD_KEY                = 5239
+       SYS_REQUEST_KEY            = 5240
+       SYS_KEYCTL                 = 5241
+       SYS_SET_THREAD_AREA        = 5242
+       SYS_INOTIFY_INIT           = 5243
+       SYS_INOTIFY_ADD_WATCH      = 5244
+       SYS_INOTIFY_RM_WATCH       = 5245
+       SYS_MIGRATE_PAGES          = 5246
+       SYS_OPENAT                 = 5247
+       SYS_MKDIRAT                = 5248
+       SYS_MKNODAT                = 5249
+       SYS_FCHOWNAT               = 5250
+       SYS_FUTIMESAT              = 5251
+       SYS_NEWFSTATAT             = 5252
+       SYS_UNLINKAT               = 5253
+       SYS_RENAMEAT               = 5254
+       SYS_LINKAT                 = 5255
+       SYS_SYMLINKAT              = 5256
+       SYS_READLINKAT             = 5257
+       SYS_FCHMODAT               = 5258
+       SYS_FACCESSAT              = 5259
+       SYS_PSELECT6               = 5260
+       SYS_PPOLL                  = 5261
+       SYS_UNSHARE                = 5262
+       SYS_SPLICE                 = 5263
+       SYS_SYNC_FILE_RANGE        = 5264
+       SYS_TEE                    = 5265
+       SYS_VMSPLICE               = 5266
+       SYS_MOVE_PAGES             = 5267
+       SYS_SET_ROBUST_LIST        = 5268
+       SYS_GET_ROBUST_LIST        = 5269
+       SYS_KEXEC_LOAD             = 5270
+       SYS_GETCPU                 = 5271
+       SYS_EPOLL_PWAIT            = 5272
+       SYS_IOPRIO_SET             = 5273
+       SYS_IOPRIO_GET             = 5274
+       SYS_UTIMENSAT              = 5275
+       SYS_SIGNALFD               = 5276
+       SYS_TIMERFD                = 5277
+       SYS_EVENTFD                = 5278
+       SYS_FALLOCATE              = 5279
+       SYS_TIMERFD_CREATE         = 5280
+       SYS_TIMERFD_GETTIME        = 5281
+       SYS_TIMERFD_SETTIME        = 5282
+       SYS_SIGNALFD4              = 5283
+       SYS_EVENTFD2               = 5284
+       SYS_EPOLL_CREATE1          = 5285
+       SYS_DUP3                   = 5286
+       SYS_PIPE2                  = 5287
+       SYS_INOTIFY_INIT1          = 5288
+       SYS_PREADV                 = 5289
+       SYS_PWRITEV                = 5290
+       SYS_RT_TGSIGQUEUEINFO      = 5291
+       SYS_PERF_EVENT_OPEN        = 5292
+       SYS_ACCEPT4                = 5293
+       SYS_RECVMMSG               = 5294
+       SYS_FANOTIFY_INIT          = 5295
+       SYS_FANOTIFY_MARK          = 5296
+       SYS_PRLIMIT64              = 5297
+       SYS_NAME_TO_HANDLE_AT      = 5298
+       SYS_OPEN_BY_HANDLE_AT      = 5299
+       SYS_CLOCK_ADJTIME          = 5300
+       SYS_SYNCFS                 = 5301
+       SYS_SENDMMSG               = 5302
+       SYS_SETNS                  = 5303
+       SYS_PROCESS_VM_READV       = 5304
+       SYS_PROCESS_VM_WRITEV      = 5305
+       SYS_KCMP                   = 5306
+       SYS_FINIT_MODULE           = 5307
+       SYS_GETDENTS64             = 5308
+       SYS_SCHED_SETATTR          = 5309
+       SYS_SCHED_GETATTR          = 5310
+       SYS_RENAMEAT2              = 5311
+       SYS_SECCOMP                = 5312
+       SYS_GETRANDOM              = 5313
+       SYS_MEMFD_CREATE           = 5314
+       SYS_BPF                    = 5315
+       SYS_EXECVEAT               = 5316
+       SYS_USERFAULTFD            = 5317
+       SYS_MEMBARRIER             = 5318
+       SYS_MLOCK2                 = 5319
+       SYS_COPY_FILE_RANGE        = 5320
+       SYS_PREADV2                = 5321
+       SYS_PWRITEV2               = 5322
+       SYS_PKEY_MPROTECT          = 5323
+       SYS_PKEY_ALLOC             = 5324
+       SYS_PKEY_FREE              = 5325
+)
diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go
new file mode 100644 (file)
index 0000000..82ba20f
--- /dev/null
@@ -0,0 +1,374 @@
+// linux/mksysnum.pl -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
+
+package unix
+
+const (
+       SYS_SYSCALL                = 4000
+       SYS_EXIT                   = 4001
+       SYS_FORK                   = 4002
+       SYS_READ                   = 4003
+       SYS_WRITE                  = 4004
+       SYS_OPEN                   = 4005
+       SYS_CLOSE                  = 4006
+       SYS_WAITPID                = 4007
+       SYS_CREAT                  = 4008
+       SYS_LINK                   = 4009
+       SYS_UNLINK                 = 4010
+       SYS_EXECVE                 = 4011
+       SYS_CHDIR                  = 4012
+       SYS_TIME                   = 4013
+       SYS_MKNOD                  = 4014
+       SYS_CHMOD                  = 4015
+       SYS_LCHOWN                 = 4016
+       SYS_BREAK                  = 4017
+       SYS_UNUSED18               = 4018
+       SYS_LSEEK                  = 4019
+       SYS_GETPID                 = 4020
+       SYS_MOUNT                  = 4021
+       SYS_UMOUNT                 = 4022
+       SYS_SETUID                 = 4023
+       SYS_GETUID                 = 4024
+       SYS_STIME                  = 4025
+       SYS_PTRACE                 = 4026
+       SYS_ALARM                  = 4027
+       SYS_UNUSED28               = 4028
+       SYS_PAUSE                  = 4029
+       SYS_UTIME                  = 4030
+       SYS_STTY                   = 4031
+       SYS_GTTY                   = 4032
+       SYS_ACCESS                 = 4033
+       SYS_NICE                   = 4034
+       SYS_FTIME                  = 4035
+       SYS_SYNC                   = 4036
+       SYS_KILL                   = 4037
+       SYS_RENAME                 = 4038
+       SYS_MKDIR                  = 4039
+       SYS_RMDIR                  = 4040
+       SYS_DUP                    = 4041
+       SYS_PIPE                   = 4042
+       SYS_TIMES                  = 4043
+       SYS_PROF                   = 4044
+       SYS_BRK                    = 4045
+       SYS_SETGID                 = 4046
+       SYS_GETGID                 = 4047
+       SYS_SIGNAL                 = 4048
+       SYS_GETEUID                = 4049
+       SYS_GETEGID                = 4050
+       SYS_ACCT                   = 4051
+       SYS_UMOUNT2                = 4052
+       SYS_LOCK                   = 4053
+       SYS_IOCTL                  = 4054
+       SYS_FCNTL                  = 4055
+       SYS_MPX                    = 4056
+       SYS_SETPGID                = 4057
+       SYS_ULIMIT                 = 4058
+       SYS_UNUSED59               = 4059
+       SYS_UMASK                  = 4060
+       SYS_CHROOT                 = 4061
+       SYS_USTAT                  = 4062
+       SYS_DUP2                   = 4063
+       SYS_GETPPID                = 4064
+       SYS_GETPGRP                = 4065
+       SYS_SETSID                 = 4066
+       SYS_SIGACTION              = 4067
+       SYS_SGETMASK               = 4068
+       SYS_SSETMASK               = 4069
+       SYS_SETREUID               = 4070
+       SYS_SETREGID               = 4071
+       SYS_SIGSUSPEND             = 4072
+       SYS_SIGPENDING             = 4073
+       SYS_SETHOSTNAME            = 4074
+       SYS_SETRLIMIT              = 4075
+       SYS_GETRLIMIT              = 4076
+       SYS_GETRUSAGE              = 4077
+       SYS_GETTIMEOFDAY           = 4078
+       SYS_SETTIMEOFDAY           = 4079
+       SYS_GETGROUPS              = 4080
+       SYS_SETGROUPS              = 4081
+       SYS_RESERVED82             = 4082
+       SYS_SYMLINK                = 4083
+       SYS_UNUSED84               = 4084
+       SYS_READLINK               = 4085
+       SYS_USELIB                 = 4086
+       SYS_SWAPON                 = 4087
+       SYS_REBOOT                 = 4088
+       SYS_READDIR                = 4089
+       SYS_MMAP                   = 4090
+       SYS_MUNMAP                 = 4091
+       SYS_TRUNCATE               = 4092
+       SYS_FTRUNCATE              = 4093
+       SYS_FCHMOD                 = 4094
+       SYS_FCHOWN                 = 4095
+       SYS_GETPRIORITY            = 4096
+       SYS_SETPRIORITY            = 4097
+       SYS_PROFIL                 = 4098
+       SYS_STATFS                 = 4099
+       SYS_FSTATFS                = 4100
+       SYS_IOPERM                 = 4101
+       SYS_SOCKETCALL             = 4102
+       SYS_SYSLOG                 = 4103
+       SYS_SETITIMER              = 4104
+       SYS_GETITIMER              = 4105
+       SYS_STAT                   = 4106
+       SYS_LSTAT                  = 4107
+       SYS_FSTAT                  = 4108
+       SYS_UNUSED109              = 4109
+       SYS_IOPL                   = 4110
+       SYS_VHANGUP                = 4111
+       SYS_IDLE                   = 4112
+       SYS_VM86                   = 4113
+       SYS_WAIT4                  = 4114
+       SYS_SWAPOFF                = 4115
+       SYS_SYSINFO                = 4116
+       SYS_IPC                    = 4117
+       SYS_FSYNC                  = 4118
+       SYS_SIGRETURN              = 4119
+       SYS_CLONE                  = 4120
+       SYS_SETDOMAINNAME          = 4121
+       SYS_UNAME                  = 4122
+       SYS_MODIFY_LDT             = 4123
+       SYS_ADJTIMEX               = 4124
+       SYS_MPROTECT               = 4125
+       SYS_SIGPROCMASK            = 4126
+       SYS_CREATE_MODULE          = 4127
+       SYS_INIT_MODULE            = 4128
+       SYS_DELETE_MODULE          = 4129
+       SYS_GET_KERNEL_SYMS        = 4130
+       SYS_QUOTACTL               = 4131
+       SYS_GETPGID                = 4132
+       SYS_FCHDIR                 = 4133
+       SYS_BDFLUSH                = 4134
+       SYS_SYSFS                  = 4135
+       SYS_PERSONALITY            = 4136
+       SYS_AFS_SYSCALL            = 4137
+       SYS_SETFSUID               = 4138
+       SYS_SETFSGID               = 4139
+       SYS__LLSEEK                = 4140
+       SYS_GETDENTS               = 4141
+       SYS__NEWSELECT             = 4142
+       SYS_FLOCK                  = 4143
+       SYS_MSYNC                  = 4144
+       SYS_READV                  = 4145
+       SYS_WRITEV                 = 4146
+       SYS_CACHEFLUSH             = 4147
+       SYS_CACHECTL               = 4148
+       SYS_SYSMIPS                = 4149
+       SYS_UNUSED150              = 4150
+       SYS_GETSID                 = 4151
+       SYS_FDATASYNC              = 4152
+       SYS__SYSCTL                = 4153
+       SYS_MLOCK                  = 4154
+       SYS_MUNLOCK                = 4155
+       SYS_MLOCKALL               = 4156
+       SYS_MUNLOCKALL             = 4157
+       SYS_SCHED_SETPARAM         = 4158
+       SYS_SCHED_GETPARAM         = 4159
+       SYS_SCHED_SETSCHEDULER     = 4160
+       SYS_SCHED_GETSCHEDULER     = 4161
+       SYS_SCHED_YIELD            = 4162
+       SYS_SCHED_GET_PRIORITY_MAX = 4163
+       SYS_SCHED_GET_PRIORITY_MIN = 4164
+       SYS_SCHED_RR_GET_INTERVAL  = 4165
+       SYS_NANOSLEEP              = 4166
+       SYS_MREMAP                 = 4167
+       SYS_ACCEPT                 = 4168
+       SYS_BIND                   = 4169
+       SYS_CONNECT                = 4170
+       SYS_GETPEERNAME            = 4171
+       SYS_GETSOCKNAME            = 4172
+       SYS_GETSOCKOPT             = 4173
+       SYS_LISTEN                 = 4174
+       SYS_RECV                   = 4175
+       SYS_RECVFROM               = 4176
+       SYS_RECVMSG                = 4177
+       SYS_SEND                   = 4178
+       SYS_SENDMSG                = 4179
+       SYS_SENDTO                 = 4180
+       SYS_SETSOCKOPT             = 4181
+       SYS_SHUTDOWN               = 4182
+       SYS_SOCKET                 = 4183
+       SYS_SOCKETPAIR             = 4184
+       SYS_SETRESUID              = 4185
+       SYS_GETRESUID              = 4186
+       SYS_QUERY_MODULE           = 4187
+       SYS_POLL                   = 4188
+       SYS_NFSSERVCTL             = 4189
+       SYS_SETRESGID              = 4190
+       SYS_GETRESGID              = 4191
+       SYS_PRCTL                  = 4192
+       SYS_RT_SIGRETURN           = 4193
+       SYS_RT_SIGACTION           = 4194
+       SYS_RT_SIGPROCMASK         = 4195
+       SYS_RT_SIGPENDING          = 4196
+       SYS_RT_SIGTIMEDWAIT        = 4197
+       SYS_RT_SIGQUEUEINFO        = 4198
+       SYS_RT_SIGSUSPEND          = 4199
+       SYS_PREAD64                = 4200
+       SYS_PWRITE64               = 4201
+       SYS_CHOWN                  = 4202
+       SYS_GETCWD                 = 4203
+       SYS_CAPGET                 = 4204
+       SYS_CAPSET                 = 4205
+       SYS_SIGALTSTACK            = 4206
+       SYS_SENDFILE               = 4207
+       SYS_GETPMSG                = 4208
+       SYS_PUTPMSG                = 4209
+       SYS_MMAP2                  = 4210
+       SYS_TRUNCATE64             = 4211
+       SYS_FTRUNCATE64            = 4212
+       SYS_STAT64                 = 4213
+       SYS_LSTAT64                = 4214
+       SYS_FSTAT64                = 4215
+       SYS_PIVOT_ROOT             = 4216
+       SYS_MINCORE                = 4217
+       SYS_MADVISE                = 4218
+       SYS_GETDENTS64             = 4219
+       SYS_FCNTL64                = 4220
+       SYS_RESERVED221            = 4221
+       SYS_GETTID                 = 4222
+       SYS_READAHEAD              = 4223
+       SYS_SETXATTR               = 4224
+       SYS_LSETXATTR              = 4225
+       SYS_FSETXATTR              = 4226
+       SYS_GETXATTR               = 4227
+       SYS_LGETXATTR              = 4228
+       SYS_FGETXATTR              = 4229
+       SYS_LISTXATTR              = 4230
+       SYS_LLISTXATTR             = 4231
+       SYS_FLISTXATTR             = 4232
+       SYS_REMOVEXATTR            = 4233
+       SYS_LREMOVEXATTR           = 4234
+       SYS_FREMOVEXATTR           = 4235
+       SYS_TKILL                  = 4236
+       SYS_SENDFILE64             = 4237
+       SYS_FUTEX                  = 4238
+       SYS_SCHED_SETAFFINITY      = 4239
+       SYS_SCHED_GETAFFINITY      = 4240
+       SYS_IO_SETUP               = 4241
+       SYS_IO_DESTROY             = 4242
+       SYS_IO_GETEVENTS           = 4243
+       SYS_IO_SUBMIT              = 4244
+       SYS_IO_CANCEL              = 4245
+       SYS_EXIT_GROUP             = 4246
+       SYS_LOOKUP_DCOOKIE         = 4247
+       SYS_EPOLL_CREATE           = 4248
+       SYS_EPOLL_CTL              = 4249
+       SYS_EPOLL_WAIT             = 4250
+       SYS_REMAP_FILE_PAGES       = 4251
+       SYS_SET_TID_ADDRESS        = 4252
+       SYS_RESTART_SYSCALL        = 4253
+       SYS_FADVISE64              = 4254
+       SYS_STATFS64               = 4255
+       SYS_FSTATFS64              = 4256
+       SYS_TIMER_CREATE           = 4257
+       SYS_TIMER_SETTIME          = 4258
+       SYS_TIMER_GETTIME          = 4259
+       SYS_TIMER_GETOVERRUN       = 4260
+       SYS_TIMER_DELETE           = 4261
+       SYS_CLOCK_SETTIME          = 4262
+       SYS_CLOCK_GETTIME          = 4263
+       SYS_CLOCK_GETRES           = 4264
+       SYS_CLOCK_NANOSLEEP        = 4265
+       SYS_TGKILL                 = 4266
+       SYS_UTIMES                 = 4267
+       SYS_MBIND                  = 4268
+       SYS_GET_MEMPOLICY          = 4269
+       SYS_SET_MEMPOLICY          = 4270
+       SYS_MQ_OPEN                = 4271
+       SYS_MQ_UNLINK              = 4272
+       SYS_MQ_TIMEDSEND           = 4273
+       SYS_MQ_TIMEDRECEIVE        = 4274
+       SYS_MQ_NOTIFY              = 4275
+       SYS_MQ_GETSETATTR          = 4276
+       SYS_VSERVER                = 4277
+       SYS_WAITID                 = 4278
+       SYS_ADD_KEY                = 4280
+       SYS_REQUEST_KEY            = 4281
+       SYS_KEYCTL                 = 4282
+       SYS_SET_THREAD_AREA        = 4283
+       SYS_INOTIFY_INIT           = 4284
+       SYS_INOTIFY_ADD_WATCH      = 4285
+       SYS_INOTIFY_RM_WATCH       = 4286
+       SYS_MIGRATE_PAGES          = 4287
+       SYS_OPENAT                 = 4288
+       SYS_MKDIRAT                = 4289
+       SYS_MKNODAT                = 4290
+       SYS_FCHOWNAT               = 4291
+       SYS_FUTIMESAT              = 4292
+       SYS_FSTATAT64              = 4293
+       SYS_UNLINKAT               = 4294
+       SYS_RENAMEAT               = 4295
+       SYS_LINKAT                 = 4296
+       SYS_SYMLINKAT              = 4297
+       SYS_READLINKAT             = 4298
+       SYS_FCHMODAT               = 4299
+       SYS_FACCESSAT              = 4300
+       SYS_PSELECT6               = 4301
+       SYS_PPOLL                  = 4302
+       SYS_UNSHARE                = 4303
+       SYS_SPLICE                 = 4304
+       SYS_SYNC_FILE_RANGE        = 4305
+       SYS_TEE                    = 4306
+       SYS_VMSPLICE               = 4307
+       SYS_MOVE_PAGES             = 4308
+       SYS_SET_ROBUST_LIST        = 4309
+       SYS_GET_ROBUST_LIST        = 4310
+       SYS_KEXEC_LOAD             = 4311
+       SYS_GETCPU                 = 4312
+       SYS_EPOLL_PWAIT            = 4313
+       SYS_IOPRIO_SET             = 4314
+       SYS_IOPRIO_GET             = 4315
+       SYS_UTIMENSAT              = 4316
+       SYS_SIGNALFD               = 4317
+       SYS_TIMERFD                = 4318
+       SYS_EVENTFD                = 4319
+       SYS_FALLOCATE              = 4320
+       SYS_TIMERFD_CREATE         = 4321
+       SYS_TIMERFD_GETTIME        = 4322
+       SYS_TIMERFD_SETTIME        = 4323
+       SYS_SIGNALFD4              = 4324
+       SYS_EVENTFD2               = 4325
+       SYS_EPOLL_CREATE1          = 4326
+       SYS_DUP3                   = 4327
+       SYS_PIPE2                  = 4328
+       SYS_INOTIFY_INIT1          = 4329
+       SYS_PREADV                 = 4330
+       SYS_PWRITEV                = 4331
+       SYS_RT_TGSIGQUEUEINFO      = 4332
+       SYS_PERF_EVENT_OPEN        = 4333
+       SYS_ACCEPT4                = 4334
+       SYS_RECVMMSG               = 4335
+       SYS_FANOTIFY_INIT          = 4336
+       SYS_FANOTIFY_MARK          = 4337
+       SYS_PRLIMIT64              = 4338
+       SYS_NAME_TO_HANDLE_AT      = 4339
+       SYS_OPEN_BY_HANDLE_AT      = 4340
+       SYS_CLOCK_ADJTIME          = 4341
+       SYS_SYNCFS                 = 4342
+       SYS_SENDMMSG               = 4343
+       SYS_SETNS                  = 4344
+       SYS_PROCESS_VM_READV       = 4345
+       SYS_PROCESS_VM_WRITEV      = 4346
+       SYS_KCMP                   = 4347
+       SYS_FINIT_MODULE           = 4348
+       SYS_SCHED_SETATTR          = 4349
+       SYS_SCHED_GETATTR          = 4350
+       SYS_RENAMEAT2              = 4351
+       SYS_SECCOMP                = 4352
+       SYS_GETRANDOM              = 4353
+       SYS_MEMFD_CREATE           = 4354
+       SYS_BPF                    = 4355
+       SYS_EXECVEAT               = 4356
+       SYS_USERFAULTFD            = 4357
+       SYS_MEMBARRIER             = 4358
+       SYS_MLOCK2                 = 4359
+       SYS_COPY_FILE_RANGE        = 4360
+       SYS_PREADV2                = 4361
+       SYS_PWRITEV2               = 4362
+       SYS_PKEY_MPROTECT          = 4363
+       SYS_PKEY_ALLOC             = 4364
+       SYS_PKEY_FREE              = 4365
+)
diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go
new file mode 100644 (file)
index 0000000..8944448
--- /dev/null
@@ -0,0 +1,369 @@
+// linux/mksysnum.pl -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
+
+package unix
+
+const (
+       SYS_RESTART_SYSCALL        = 0
+       SYS_EXIT                   = 1
+       SYS_FORK                   = 2
+       SYS_READ                   = 3
+       SYS_WRITE                  = 4
+       SYS_OPEN                   = 5
+       SYS_CLOSE                  = 6
+       SYS_WAITPID                = 7
+       SYS_CREAT                  = 8
+       SYS_LINK                   = 9
+       SYS_UNLINK                 = 10
+       SYS_EXECVE                 = 11
+       SYS_CHDIR                  = 12
+       SYS_TIME                   = 13
+       SYS_MKNOD                  = 14
+       SYS_CHMOD                  = 15
+       SYS_LCHOWN                 = 16
+       SYS_BREAK                  = 17
+       SYS_OLDSTAT                = 18
+       SYS_LSEEK                  = 19
+       SYS_GETPID                 = 20
+       SYS_MOUNT                  = 21
+       SYS_UMOUNT                 = 22
+       SYS_SETUID                 = 23
+       SYS_GETUID                 = 24
+       SYS_STIME                  = 25
+       SYS_PTRACE                 = 26
+       SYS_ALARM                  = 27
+       SYS_OLDFSTAT               = 28
+       SYS_PAUSE                  = 29
+       SYS_UTIME                  = 30
+       SYS_STTY                   = 31
+       SYS_GTTY                   = 32
+       SYS_ACCESS                 = 33
+       SYS_NICE                   = 34
+       SYS_FTIME                  = 35
+       SYS_SYNC                   = 36
+       SYS_KILL                   = 37
+       SYS_RENAME                 = 38
+       SYS_MKDIR                  = 39
+       SYS_RMDIR                  = 40
+       SYS_DUP                    = 41
+       SYS_PIPE                   = 42
+       SYS_TIMES                  = 43
+       SYS_PROF                   = 44
+       SYS_BRK                    = 45
+       SYS_SETGID                 = 46
+       SYS_GETGID                 = 47
+       SYS_SIGNAL                 = 48
+       SYS_GETEUID                = 49
+       SYS_GETEGID                = 50
+       SYS_ACCT                   = 51
+       SYS_UMOUNT2                = 52
+       SYS_LOCK                   = 53
+       SYS_IOCTL                  = 54
+       SYS_FCNTL                  = 55
+       SYS_MPX                    = 56
+       SYS_SETPGID                = 57
+       SYS_ULIMIT                 = 58
+       SYS_OLDOLDUNAME            = 59
+       SYS_UMASK                  = 60
+       SYS_CHROOT                 = 61
+       SYS_USTAT                  = 62
+       SYS_DUP2                   = 63
+       SYS_GETPPID                = 64
+       SYS_GETPGRP                = 65
+       SYS_SETSID                 = 66
+       SYS_SIGACTION              = 67
+       SYS_SGETMASK               = 68
+       SYS_SSETMASK               = 69
+       SYS_SETREUID               = 70
+       SYS_SETREGID               = 71
+       SYS_SIGSUSPEND             = 72
+       SYS_SIGPENDING             = 73
+       SYS_SETHOSTNAME            = 74
+       SYS_SETRLIMIT              = 75
+       SYS_GETRLIMIT              = 76
+       SYS_GETRUSAGE              = 77
+       SYS_GETTIMEOFDAY           = 78
+       SYS_SETTIMEOFDAY           = 79
+       SYS_GETGROUPS              = 80
+       SYS_SETGROUPS              = 81
+       SYS_SELECT                 = 82
+       SYS_SYMLINK                = 83
+       SYS_OLDLSTAT               = 84
+       SYS_READLINK               = 85
+       SYS_USELIB                 = 86
+       SYS_SWAPON                 = 87
+       SYS_REBOOT                 = 88
+       SYS_READDIR                = 89
+       SYS_MMAP                   = 90
+       SYS_MUNMAP                 = 91
+       SYS_TRUNCATE               = 92
+       SYS_FTRUNCATE              = 93
+       SYS_FCHMOD                 = 94
+       SYS_FCHOWN                 = 95
+       SYS_GETPRIORITY            = 96
+       SYS_SETPRIORITY            = 97
+       SYS_PROFIL                 = 98
+       SYS_STATFS                 = 99
+       SYS_FSTATFS                = 100
+       SYS_IOPERM                 = 101
+       SYS_SOCKETCALL             = 102
+       SYS_SYSLOG                 = 103
+       SYS_SETITIMER              = 104
+       SYS_GETITIMER              = 105
+       SYS_STAT                   = 106
+       SYS_LSTAT                  = 107
+       SYS_FSTAT                  = 108
+       SYS_OLDUNAME               = 109
+       SYS_IOPL                   = 110
+       SYS_VHANGUP                = 111
+       SYS_IDLE                   = 112
+       SYS_VM86                   = 113
+       SYS_WAIT4                  = 114
+       SYS_SWAPOFF                = 115
+       SYS_SYSINFO                = 116
+       SYS_IPC                    = 117
+       SYS_FSYNC                  = 118
+       SYS_SIGRETURN              = 119
+       SYS_CLONE                  = 120
+       SYS_SETDOMAINNAME          = 121
+       SYS_UNAME                  = 122
+       SYS_MODIFY_LDT             = 123
+       SYS_ADJTIMEX               = 124
+       SYS_MPROTECT               = 125
+       SYS_SIGPROCMASK            = 126
+       SYS_CREATE_MODULE          = 127
+       SYS_INIT_MODULE            = 128
+       SYS_DELETE_MODULE          = 129
+       SYS_GET_KERNEL_SYMS        = 130
+       SYS_QUOTACTL               = 131
+       SYS_GETPGID                = 132
+       SYS_FCHDIR                 = 133
+       SYS_BDFLUSH                = 134
+       SYS_SYSFS                  = 135
+       SYS_PERSONALITY            = 136
+       SYS_AFS_SYSCALL            = 137
+       SYS_SETFSUID               = 138
+       SYS_SETFSGID               = 139
+       SYS__LLSEEK                = 140
+       SYS_GETDENTS               = 141
+       SYS__NEWSELECT             = 142
+       SYS_FLOCK                  = 143
+       SYS_MSYNC                  = 144
+       SYS_READV                  = 145
+       SYS_WRITEV                 = 146
+       SYS_GETSID                 = 147
+       SYS_FDATASYNC              = 148
+       SYS__SYSCTL                = 149
+       SYS_MLOCK                  = 150
+       SYS_MUNLOCK                = 151
+       SYS_MLOCKALL               = 152
+       SYS_MUNLOCKALL             = 153
+       SYS_SCHED_SETPARAM         = 154
+       SYS_SCHED_GETPARAM         = 155
+       SYS_SCHED_SETSCHEDULER     = 156
+       SYS_SCHED_GETSCHEDULER     = 157
+       SYS_SCHED_YIELD            = 158
+       SYS_SCHED_GET_PRIORITY_MAX = 159
+       SYS_SCHED_GET_PRIORITY_MIN = 160
+       SYS_SCHED_RR_GET_INTERVAL  = 161
+       SYS_NANOSLEEP              = 162
+       SYS_MREMAP                 = 163
+       SYS_SETRESUID              = 164
+       SYS_GETRESUID              = 165
+       SYS_QUERY_MODULE           = 166
+       SYS_POLL                   = 167
+       SYS_NFSSERVCTL             = 168
+       SYS_SETRESGID              = 169
+       SYS_GETRESGID              = 170
+       SYS_PRCTL                  = 171
+       SYS_RT_SIGRETURN           = 172
+       SYS_RT_SIGACTION           = 173
+       SYS_RT_SIGPROCMASK         = 174
+       SYS_RT_SIGPENDING          = 175
+       SYS_RT_SIGTIMEDWAIT        = 176
+       SYS_RT_SIGQUEUEINFO        = 177
+       SYS_RT_SIGSUSPEND          = 178
+       SYS_PREAD64                = 179
+       SYS_PWRITE64               = 180
+       SYS_CHOWN                  = 181
+       SYS_GETCWD                 = 182
+       SYS_CAPGET                 = 183
+       SYS_CAPSET                 = 184
+       SYS_SIGALTSTACK            = 185
+       SYS_SENDFILE               = 186
+       SYS_GETPMSG                = 187
+       SYS_PUTPMSG                = 188
+       SYS_VFORK                  = 189
+       SYS_UGETRLIMIT             = 190
+       SYS_READAHEAD              = 191
+       SYS_PCICONFIG_READ         = 198
+       SYS_PCICONFIG_WRITE        = 199
+       SYS_PCICONFIG_IOBASE       = 200
+       SYS_MULTIPLEXER            = 201
+       SYS_GETDENTS64             = 202
+       SYS_PIVOT_ROOT             = 203
+       SYS_MADVISE                = 205
+       SYS_MINCORE                = 206
+       SYS_GETTID                 = 207
+       SYS_TKILL                  = 208
+       SYS_SETXATTR               = 209
+       SYS_LSETXATTR              = 210
+       SYS_FSETXATTR              = 211
+       SYS_GETXATTR               = 212
+       SYS_LGETXATTR              = 213
+       SYS_FGETXATTR              = 214
+       SYS_LISTXATTR              = 215
+       SYS_LLISTXATTR             = 216
+       SYS_FLISTXATTR             = 217
+       SYS_REMOVEXATTR            = 218
+       SYS_LREMOVEXATTR           = 219
+       SYS_FREMOVEXATTR           = 220
+       SYS_FUTEX                  = 221
+       SYS_SCHED_SETAFFINITY      = 222
+       SYS_SCHED_GETAFFINITY      = 223
+       SYS_TUXCALL                = 225
+       SYS_IO_SETUP               = 227
+       SYS_IO_DESTROY             = 228
+       SYS_IO_GETEVENTS           = 229
+       SYS_IO_SUBMIT              = 230
+       SYS_IO_CANCEL              = 231
+       SYS_SET_TID_ADDRESS        = 232
+       SYS_FADVISE64              = 233
+       SYS_EXIT_GROUP             = 234
+       SYS_LOOKUP_DCOOKIE         = 235
+       SYS_EPOLL_CREATE           = 236
+       SYS_EPOLL_CTL              = 237
+       SYS_EPOLL_WAIT             = 238
+       SYS_REMAP_FILE_PAGES       = 239
+       SYS_TIMER_CREATE           = 240
+       SYS_TIMER_SETTIME          = 241
+       SYS_TIMER_GETTIME          = 242
+       SYS_TIMER_GETOVERRUN       = 243
+       SYS_TIMER_DELETE           = 244
+       SYS_CLOCK_SETTIME          = 245
+       SYS_CLOCK_GETTIME          = 246
+       SYS_CLOCK_GETRES           = 247
+       SYS_CLOCK_NANOSLEEP        = 248
+       SYS_SWAPCONTEXT            = 249
+       SYS_TGKILL                 = 250
+       SYS_UTIMES                 = 251
+       SYS_STATFS64               = 252
+       SYS_FSTATFS64              = 253
+       SYS_RTAS                   = 255
+       SYS_SYS_DEBUG_SETCONTEXT   = 256
+       SYS_MIGRATE_PAGES          = 258
+       SYS_MBIND                  = 259
+       SYS_GET_MEMPOLICY          = 260
+       SYS_SET_MEMPOLICY          = 261
+       SYS_MQ_OPEN                = 262
+       SYS_MQ_UNLINK              = 263
+       SYS_MQ_TIMEDSEND           = 264
+       SYS_MQ_TIMEDRECEIVE        = 265
+       SYS_MQ_NOTIFY              = 266
+       SYS_MQ_GETSETATTR          = 267
+       SYS_KEXEC_LOAD             = 268
+       SYS_ADD_KEY                = 269
+       SYS_REQUEST_KEY            = 270
+       SYS_KEYCTL                 = 271
+       SYS_WAITID                 = 272
+       SYS_IOPRIO_SET             = 273
+       SYS_IOPRIO_GET             = 274
+       SYS_INOTIFY_INIT           = 275
+       SYS_INOTIFY_ADD_WATCH      = 276
+       SYS_INOTIFY_RM_WATCH       = 277
+       SYS_SPU_RUN                = 278
+       SYS_SPU_CREATE             = 279
+       SYS_PSELECT6               = 280
+       SYS_PPOLL                  = 281
+       SYS_UNSHARE                = 282
+       SYS_SPLICE                 = 283
+       SYS_TEE                    = 284
+       SYS_VMSPLICE               = 285
+       SYS_OPENAT                 = 286
+       SYS_MKDIRAT                = 287
+       SYS_MKNODAT                = 288
+       SYS_FCHOWNAT               = 289
+       SYS_FUTIMESAT              = 290
+       SYS_NEWFSTATAT             = 291
+       SYS_UNLINKAT               = 292
+       SYS_RENAMEAT               = 293
+       SYS_LINKAT                 = 294
+       SYS_SYMLINKAT              = 295
+       SYS_READLINKAT             = 296
+       SYS_FCHMODAT               = 297
+       SYS_FACCESSAT              = 298
+       SYS_GET_ROBUST_LIST        = 299
+       SYS_SET_ROBUST_LIST        = 300
+       SYS_MOVE_PAGES             = 301
+       SYS_GETCPU                 = 302
+       SYS_EPOLL_PWAIT            = 303
+       SYS_UTIMENSAT              = 304
+       SYS_SIGNALFD               = 305
+       SYS_TIMERFD_CREATE         = 306
+       SYS_EVENTFD                = 307
+       SYS_SYNC_FILE_RANGE2       = 308
+       SYS_FALLOCATE              = 309
+       SYS_SUBPAGE_PROT           = 310
+       SYS_TIMERFD_SETTIME        = 311
+       SYS_TIMERFD_GETTIME        = 312
+       SYS_SIGNALFD4              = 313
+       SYS_EVENTFD2               = 314
+       SYS_EPOLL_CREATE1          = 315
+       SYS_DUP3                   = 316
+       SYS_PIPE2                  = 317
+       SYS_INOTIFY_INIT1          = 318
+       SYS_PERF_EVENT_OPEN        = 319
+       SYS_PREADV                 = 320
+       SYS_PWRITEV                = 321
+       SYS_RT_TGSIGQUEUEINFO      = 322
+       SYS_FANOTIFY_INIT          = 323
+       SYS_FANOTIFY_MARK          = 324
+       SYS_PRLIMIT64              = 325
+       SYS_SOCKET                 = 326
+       SYS_BIND                   = 327
+       SYS_CONNECT                = 328
+       SYS_LISTEN                 = 329
+       SYS_ACCEPT                 = 330
+       SYS_GETSOCKNAME            = 331
+       SYS_GETPEERNAME            = 332
+       SYS_SOCKETPAIR             = 333
+       SYS_SEND                   = 334
+       SYS_SENDTO                 = 335
+       SYS_RECV                   = 336
+       SYS_RECVFROM               = 337
+       SYS_SHUTDOWN               = 338
+       SYS_SETSOCKOPT             = 339
+       SYS_GETSOCKOPT             = 340
+       SYS_SENDMSG                = 341
+       SYS_RECVMSG                = 342
+       SYS_RECVMMSG               = 343
+       SYS_ACCEPT4                = 344
+       SYS_NAME_TO_HANDLE_AT      = 345
+       SYS_OPEN_BY_HANDLE_AT      = 346
+       SYS_CLOCK_ADJTIME          = 347
+       SYS_SYNCFS                 = 348
+       SYS_SENDMMSG               = 349
+       SYS_SETNS                  = 350
+       SYS_PROCESS_VM_READV       = 351
+       SYS_PROCESS_VM_WRITEV      = 352
+       SYS_FINIT_MODULE           = 353
+       SYS_KCMP                   = 354
+       SYS_SCHED_SETATTR          = 355
+       SYS_SCHED_GETATTR          = 356
+       SYS_RENAMEAT2              = 357
+       SYS_SECCOMP                = 358
+       SYS_GETRANDOM              = 359
+       SYS_MEMFD_CREATE           = 360
+       SYS_BPF                    = 361
+       SYS_EXECVEAT               = 362
+       SYS_SWITCH_ENDIAN          = 363
+       SYS_USERFAULTFD            = 364
+       SYS_MEMBARRIER             = 365
+       SYS_MLOCK2                 = 378
+       SYS_COPY_FILE_RANGE        = 379
+       SYS_PREADV2                = 380
+       SYS_PWRITEV2               = 381
+       SYS_KEXEC_FILE_LOAD        = 382
+)
diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go
new file mode 100644 (file)
index 0000000..90a039b
--- /dev/null
@@ -0,0 +1,369 @@
+// linux/mksysnum.pl -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
+
+package unix
+
+const (
+       SYS_RESTART_SYSCALL        = 0
+       SYS_EXIT                   = 1
+       SYS_FORK                   = 2
+       SYS_READ                   = 3
+       SYS_WRITE                  = 4
+       SYS_OPEN                   = 5
+       SYS_CLOSE                  = 6
+       SYS_WAITPID                = 7
+       SYS_CREAT                  = 8
+       SYS_LINK                   = 9
+       SYS_UNLINK                 = 10
+       SYS_EXECVE                 = 11
+       SYS_CHDIR                  = 12
+       SYS_TIME                   = 13
+       SYS_MKNOD                  = 14
+       SYS_CHMOD                  = 15
+       SYS_LCHOWN                 = 16
+       SYS_BREAK                  = 17
+       SYS_OLDSTAT                = 18
+       SYS_LSEEK                  = 19
+       SYS_GETPID                 = 20
+       SYS_MOUNT                  = 21
+       SYS_UMOUNT                 = 22
+       SYS_SETUID                 = 23
+       SYS_GETUID                 = 24
+       SYS_STIME                  = 25
+       SYS_PTRACE                 = 26
+       SYS_ALARM                  = 27
+       SYS_OLDFSTAT               = 28
+       SYS_PAUSE                  = 29
+       SYS_UTIME                  = 30
+       SYS_STTY                   = 31
+       SYS_GTTY                   = 32
+       SYS_ACCESS                 = 33
+       SYS_NICE                   = 34
+       SYS_FTIME                  = 35
+       SYS_SYNC                   = 36
+       SYS_KILL                   = 37
+       SYS_RENAME                 = 38
+       SYS_MKDIR                  = 39
+       SYS_RMDIR                  = 40
+       SYS_DUP                    = 41
+       SYS_PIPE                   = 42
+       SYS_TIMES                  = 43
+       SYS_PROF                   = 44
+       SYS_BRK                    = 45
+       SYS_SETGID                 = 46
+       SYS_GETGID                 = 47
+       SYS_SIGNAL                 = 48
+       SYS_GETEUID                = 49
+       SYS_GETEGID                = 50
+       SYS_ACCT                   = 51
+       SYS_UMOUNT2                = 52
+       SYS_LOCK                   = 53
+       SYS_IOCTL                  = 54
+       SYS_FCNTL                  = 55
+       SYS_MPX                    = 56
+       SYS_SETPGID                = 57
+       SYS_ULIMIT                 = 58
+       SYS_OLDOLDUNAME            = 59
+       SYS_UMASK                  = 60
+       SYS_CHROOT                 = 61
+       SYS_USTAT                  = 62
+       SYS_DUP2                   = 63
+       SYS_GETPPID                = 64
+       SYS_GETPGRP                = 65
+       SYS_SETSID                 = 66
+       SYS_SIGACTION              = 67
+       SYS_SGETMASK               = 68
+       SYS_SSETMASK               = 69
+       SYS_SETREUID               = 70
+       SYS_SETREGID               = 71
+       SYS_SIGSUSPEND             = 72
+       SYS_SIGPENDING             = 73
+       SYS_SETHOSTNAME            = 74
+       SYS_SETRLIMIT              = 75
+       SYS_GETRLIMIT              = 76
+       SYS_GETRUSAGE              = 77
+       SYS_GETTIMEOFDAY           = 78
+       SYS_SETTIMEOFDAY           = 79
+       SYS_GETGROUPS              = 80
+       SYS_SETGROUPS              = 81
+       SYS_SELECT                 = 82
+       SYS_SYMLINK                = 83
+       SYS_OLDLSTAT               = 84
+       SYS_READLINK               = 85
+       SYS_USELIB                 = 86
+       SYS_SWAPON                 = 87
+       SYS_REBOOT                 = 88
+       SYS_READDIR                = 89
+       SYS_MMAP                   = 90
+       SYS_MUNMAP                 = 91
+       SYS_TRUNCATE               = 92
+       SYS_FTRUNCATE              = 93
+       SYS_FCHMOD                 = 94
+       SYS_FCHOWN                 = 95
+       SYS_GETPRIORITY            = 96
+       SYS_SETPRIORITY            = 97
+       SYS_PROFIL                 = 98
+       SYS_STATFS                 = 99
+       SYS_FSTATFS                = 100
+       SYS_IOPERM                 = 101
+       SYS_SOCKETCALL             = 102
+       SYS_SYSLOG                 = 103
+       SYS_SETITIMER              = 104
+       SYS_GETITIMER              = 105
+       SYS_STAT                   = 106
+       SYS_LSTAT                  = 107
+       SYS_FSTAT                  = 108
+       SYS_OLDUNAME               = 109
+       SYS_IOPL                   = 110
+       SYS_VHANGUP                = 111
+       SYS_IDLE                   = 112
+       SYS_VM86                   = 113
+       SYS_WAIT4                  = 114
+       SYS_SWAPOFF                = 115
+       SYS_SYSINFO                = 116
+       SYS_IPC                    = 117
+       SYS_FSYNC                  = 118
+       SYS_SIGRETURN              = 119
+       SYS_CLONE                  = 120
+       SYS_SETDOMAINNAME          = 121
+       SYS_UNAME                  = 122
+       SYS_MODIFY_LDT             = 123
+       SYS_ADJTIMEX               = 124
+       SYS_MPROTECT               = 125
+       SYS_SIGPROCMASK            = 126
+       SYS_CREATE_MODULE          = 127
+       SYS_INIT_MODULE            = 128
+       SYS_DELETE_MODULE          = 129
+       SYS_GET_KERNEL_SYMS        = 130
+       SYS_QUOTACTL               = 131
+       SYS_GETPGID                = 132
+       SYS_FCHDIR                 = 133
+       SYS_BDFLUSH                = 134
+       SYS_SYSFS                  = 135
+       SYS_PERSONALITY            = 136
+       SYS_AFS_SYSCALL            = 137
+       SYS_SETFSUID               = 138
+       SYS_SETFSGID               = 139
+       SYS__LLSEEK                = 140
+       SYS_GETDENTS               = 141
+       SYS__NEWSELECT             = 142
+       SYS_FLOCK                  = 143
+       SYS_MSYNC                  = 144
+       SYS_READV                  = 145
+       SYS_WRITEV                 = 146
+       SYS_GETSID                 = 147
+       SYS_FDATASYNC              = 148
+       SYS__SYSCTL                = 149
+       SYS_MLOCK                  = 150
+       SYS_MUNLOCK                = 151
+       SYS_MLOCKALL               = 152
+       SYS_MUNLOCKALL             = 153
+       SYS_SCHED_SETPARAM         = 154
+       SYS_SCHED_GETPARAM         = 155
+       SYS_SCHED_SETSCHEDULER     = 156
+       SYS_SCHED_GETSCHEDULER     = 157
+       SYS_SCHED_YIELD            = 158
+       SYS_SCHED_GET_PRIORITY_MAX = 159
+       SYS_SCHED_GET_PRIORITY_MIN = 160
+       SYS_SCHED_RR_GET_INTERVAL  = 161
+       SYS_NANOSLEEP              = 162
+       SYS_MREMAP                 = 163
+       SYS_SETRESUID              = 164
+       SYS_GETRESUID              = 165
+       SYS_QUERY_MODULE           = 166
+       SYS_POLL                   = 167
+       SYS_NFSSERVCTL             = 168
+       SYS_SETRESGID              = 169
+       SYS_GETRESGID              = 170
+       SYS_PRCTL                  = 171
+       SYS_RT_SIGRETURN           = 172
+       SYS_RT_SIGACTION           = 173
+       SYS_RT_SIGPROCMASK         = 174
+       SYS_RT_SIGPENDING          = 175
+       SYS_RT_SIGTIMEDWAIT        = 176
+       SYS_RT_SIGQUEUEINFO        = 177
+       SYS_RT_SIGSUSPEND          = 178
+       SYS_PREAD64                = 179
+       SYS_PWRITE64               = 180
+       SYS_CHOWN                  = 181
+       SYS_GETCWD                 = 182
+       SYS_CAPGET                 = 183
+       SYS_CAPSET                 = 184
+       SYS_SIGALTSTACK            = 185
+       SYS_SENDFILE               = 186
+       SYS_GETPMSG                = 187
+       SYS_PUTPMSG                = 188
+       SYS_VFORK                  = 189
+       SYS_UGETRLIMIT             = 190
+       SYS_READAHEAD              = 191
+       SYS_PCICONFIG_READ         = 198
+       SYS_PCICONFIG_WRITE        = 199
+       SYS_PCICONFIG_IOBASE       = 200
+       SYS_MULTIPLEXER            = 201
+       SYS_GETDENTS64             = 202
+       SYS_PIVOT_ROOT             = 203
+       SYS_MADVISE                = 205
+       SYS_MINCORE                = 206
+       SYS_GETTID                 = 207
+       SYS_TKILL                  = 208
+       SYS_SETXATTR               = 209
+       SYS_LSETXATTR              = 210
+       SYS_FSETXATTR              = 211
+       SYS_GETXATTR               = 212
+       SYS_LGETXATTR              = 213
+       SYS_FGETXATTR              = 214
+       SYS_LISTXATTR              = 215
+       SYS_LLISTXATTR             = 216
+       SYS_FLISTXATTR             = 217
+       SYS_REMOVEXATTR            = 218
+       SYS_LREMOVEXATTR           = 219
+       SYS_FREMOVEXATTR           = 220
+       SYS_FUTEX                  = 221
+       SYS_SCHED_SETAFFINITY      = 222
+       SYS_SCHED_GETAFFINITY      = 223
+       SYS_TUXCALL                = 225
+       SYS_IO_SETUP               = 227
+       SYS_IO_DESTROY             = 228
+       SYS_IO_GETEVENTS           = 229
+       SYS_IO_SUBMIT              = 230
+       SYS_IO_CANCEL              = 231
+       SYS_SET_TID_ADDRESS        = 232
+       SYS_FADVISE64              = 233
+       SYS_EXIT_GROUP             = 234
+       SYS_LOOKUP_DCOOKIE         = 235
+       SYS_EPOLL_CREATE           = 236
+       SYS_EPOLL_CTL              = 237
+       SYS_EPOLL_WAIT             = 238
+       SYS_REMAP_FILE_PAGES       = 239
+       SYS_TIMER_CREATE           = 240
+       SYS_TIMER_SETTIME          = 241
+       SYS_TIMER_GETTIME          = 242
+       SYS_TIMER_GETOVERRUN       = 243
+       SYS_TIMER_DELETE           = 244
+       SYS_CLOCK_SETTIME          = 245
+       SYS_CLOCK_GETTIME          = 246
+       SYS_CLOCK_GETRES           = 247
+       SYS_CLOCK_NANOSLEEP        = 248
+       SYS_SWAPCONTEXT            = 249
+       SYS_TGKILL                 = 250
+       SYS_UTIMES                 = 251
+       SYS_STATFS64               = 252
+       SYS_FSTATFS64              = 253
+       SYS_RTAS                   = 255
+       SYS_SYS_DEBUG_SETCONTEXT   = 256
+       SYS_MIGRATE_PAGES          = 258
+       SYS_MBIND                  = 259
+       SYS_GET_MEMPOLICY          = 260
+       SYS_SET_MEMPOLICY          = 261
+       SYS_MQ_OPEN                = 262
+       SYS_MQ_UNLINK              = 263
+       SYS_MQ_TIMEDSEND           = 264
+       SYS_MQ_TIMEDRECEIVE        = 265
+       SYS_MQ_NOTIFY              = 266
+       SYS_MQ_GETSETATTR          = 267
+       SYS_KEXEC_LOAD             = 268
+       SYS_ADD_KEY                = 269
+       SYS_REQUEST_KEY            = 270
+       SYS_KEYCTL                 = 271
+       SYS_WAITID                 = 272
+       SYS_IOPRIO_SET             = 273
+       SYS_IOPRIO_GET             = 274
+       SYS_INOTIFY_INIT           = 275
+       SYS_INOTIFY_ADD_WATCH      = 276
+       SYS_INOTIFY_RM_WATCH       = 277
+       SYS_SPU_RUN                = 278
+       SYS_SPU_CREATE             = 279
+       SYS_PSELECT6               = 280
+       SYS_PPOLL                  = 281
+       SYS_UNSHARE                = 282
+       SYS_SPLICE                 = 283
+       SYS_TEE                    = 284
+       SYS_VMSPLICE               = 285
+       SYS_OPENAT                 = 286
+       SYS_MKDIRAT                = 287
+       SYS_MKNODAT                = 288
+       SYS_FCHOWNAT               = 289
+       SYS_FUTIMESAT              = 290
+       SYS_NEWFSTATAT             = 291
+       SYS_UNLINKAT               = 292
+       SYS_RENAMEAT               = 293
+       SYS_LINKAT                 = 294
+       SYS_SYMLINKAT              = 295
+       SYS_READLINKAT             = 296
+       SYS_FCHMODAT               = 297
+       SYS_FACCESSAT              = 298
+       SYS_GET_ROBUST_LIST        = 299
+       SYS_SET_ROBUST_LIST        = 300
+       SYS_MOVE_PAGES             = 301
+       SYS_GETCPU                 = 302
+       SYS_EPOLL_PWAIT            = 303
+       SYS_UTIMENSAT              = 304
+       SYS_SIGNALFD               = 305
+       SYS_TIMERFD_CREATE         = 306
+       SYS_EVENTFD                = 307
+       SYS_SYNC_FILE_RANGE2       = 308
+       SYS_FALLOCATE              = 309
+       SYS_SUBPAGE_PROT           = 310
+       SYS_TIMERFD_SETTIME        = 311
+       SYS_TIMERFD_GETTIME        = 312
+       SYS_SIGNALFD4              = 313
+       SYS_EVENTFD2               = 314
+       SYS_EPOLL_CREATE1          = 315
+       SYS_DUP3                   = 316
+       SYS_PIPE2                  = 317
+       SYS_INOTIFY_INIT1          = 318
+       SYS_PERF_EVENT_OPEN        = 319
+       SYS_PREADV                 = 320
+       SYS_PWRITEV                = 321
+       SYS_RT_TGSIGQUEUEINFO      = 322
+       SYS_FANOTIFY_INIT          = 323
+       SYS_FANOTIFY_MARK          = 324
+       SYS_PRLIMIT64              = 325
+       SYS_SOCKET                 = 326
+       SYS_BIND                   = 327
+       SYS_CONNECT                = 328
+       SYS_LISTEN                 = 329
+       SYS_ACCEPT                 = 330
+       SYS_GETSOCKNAME            = 331
+       SYS_GETPEERNAME            = 332
+       SYS_SOCKETPAIR             = 333
+       SYS_SEND                   = 334
+       SYS_SENDTO                 = 335
+       SYS_RECV                   = 336
+       SYS_RECVFROM               = 337
+       SYS_SHUTDOWN               = 338
+       SYS_SETSOCKOPT             = 339
+       SYS_GETSOCKOPT             = 340
+       SYS_SENDMSG                = 341
+       SYS_RECVMSG                = 342
+       SYS_RECVMMSG               = 343
+       SYS_ACCEPT4                = 344
+       SYS_NAME_TO_HANDLE_AT      = 345
+       SYS_OPEN_BY_HANDLE_AT      = 346
+       SYS_CLOCK_ADJTIME          = 347
+       SYS_SYNCFS                 = 348
+       SYS_SENDMMSG               = 349
+       SYS_SETNS                  = 350
+       SYS_PROCESS_VM_READV       = 351
+       SYS_PROCESS_VM_WRITEV      = 352
+       SYS_FINIT_MODULE           = 353
+       SYS_KCMP                   = 354
+       SYS_SCHED_SETATTR          = 355
+       SYS_SCHED_GETATTR          = 356
+       SYS_RENAMEAT2              = 357
+       SYS_SECCOMP                = 358
+       SYS_GETRANDOM              = 359
+       SYS_MEMFD_CREATE           = 360
+       SYS_BPF                    = 361
+       SYS_EXECVEAT               = 362
+       SYS_SWITCH_ENDIAN          = 363
+       SYS_USERFAULTFD            = 364
+       SYS_MEMBARRIER             = 365
+       SYS_MLOCK2                 = 378
+       SYS_COPY_FILE_RANGE        = 379
+       SYS_PREADV2                = 380
+       SYS_PWRITEV2               = 381
+       SYS_KEXEC_FILE_LOAD        = 382
+)
diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go
new file mode 100644 (file)
index 0000000..aab0cdb
--- /dev/null
@@ -0,0 +1,331 @@
+// linux/mksysnum.pl -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
+
+package unix
+
+const (
+       SYS_EXIT                   = 1
+       SYS_FORK                   = 2
+       SYS_READ                   = 3
+       SYS_WRITE                  = 4
+       SYS_OPEN                   = 5
+       SYS_CLOSE                  = 6
+       SYS_RESTART_SYSCALL        = 7
+       SYS_CREAT                  = 8
+       SYS_LINK                   = 9
+       SYS_UNLINK                 = 10
+       SYS_EXECVE                 = 11
+       SYS_CHDIR                  = 12
+       SYS_MKNOD                  = 14
+       SYS_CHMOD                  = 15
+       SYS_LSEEK                  = 19
+       SYS_GETPID                 = 20
+       SYS_MOUNT                  = 21
+       SYS_UMOUNT                 = 22
+       SYS_PTRACE                 = 26
+       SYS_ALARM                  = 27
+       SYS_PAUSE                  = 29
+       SYS_UTIME                  = 30
+       SYS_ACCESS                 = 33
+       SYS_NICE                   = 34
+       SYS_SYNC                   = 36
+       SYS_KILL                   = 37
+       SYS_RENAME                 = 38
+       SYS_MKDIR                  = 39
+       SYS_RMDIR                  = 40
+       SYS_DUP                    = 41
+       SYS_PIPE                   = 42
+       SYS_TIMES                  = 43
+       SYS_BRK                    = 45
+       SYS_SIGNAL                 = 48
+       SYS_ACCT                   = 51
+       SYS_UMOUNT2                = 52
+       SYS_IOCTL                  = 54
+       SYS_FCNTL                  = 55
+       SYS_SETPGID                = 57
+       SYS_UMASK                  = 60
+       SYS_CHROOT                 = 61
+       SYS_USTAT                  = 62
+       SYS_DUP2                   = 63
+       SYS_GETPPID                = 64
+       SYS_GETPGRP                = 65
+       SYS_SETSID                 = 66
+       SYS_SIGACTION              = 67
+       SYS_SIGSUSPEND             = 72
+       SYS_SIGPENDING             = 73
+       SYS_SETHOSTNAME            = 74
+       SYS_SETRLIMIT              = 75
+       SYS_GETRUSAGE              = 77
+       SYS_GETTIMEOFDAY           = 78
+       SYS_SETTIMEOFDAY           = 79
+       SYS_SYMLINK                = 83
+       SYS_READLINK               = 85
+       SYS_USELIB                 = 86
+       SYS_SWAPON                 = 87
+       SYS_REBOOT                 = 88
+       SYS_READDIR                = 89
+       SYS_MMAP                   = 90
+       SYS_MUNMAP                 = 91
+       SYS_TRUNCATE               = 92
+       SYS_FTRUNCATE              = 93
+       SYS_FCHMOD                 = 94
+       SYS_GETPRIORITY            = 96
+       SYS_SETPRIORITY            = 97
+       SYS_STATFS                 = 99
+       SYS_FSTATFS                = 100
+       SYS_SOCKETCALL             = 102
+       SYS_SYSLOG                 = 103
+       SYS_SETITIMER              = 104
+       SYS_GETITIMER              = 105
+       SYS_STAT                   = 106
+       SYS_LSTAT                  = 107
+       SYS_FSTAT                  = 108
+       SYS_LOOKUP_DCOOKIE         = 110
+       SYS_VHANGUP                = 111
+       SYS_IDLE                   = 112
+       SYS_WAIT4                  = 114
+       SYS_SWAPOFF                = 115
+       SYS_SYSINFO                = 116
+       SYS_IPC                    = 117
+       SYS_FSYNC                  = 118
+       SYS_SIGRETURN              = 119
+       SYS_CLONE                  = 120
+       SYS_SETDOMAINNAME          = 121
+       SYS_UNAME                  = 122
+       SYS_ADJTIMEX               = 124
+       SYS_MPROTECT               = 125
+       SYS_SIGPROCMASK            = 126
+       SYS_CREATE_MODULE          = 127
+       SYS_INIT_MODULE            = 128
+       SYS_DELETE_MODULE          = 129
+       SYS_GET_KERNEL_SYMS        = 130
+       SYS_QUOTACTL               = 131
+       SYS_GETPGID                = 132
+       SYS_FCHDIR                 = 133
+       SYS_BDFLUSH                = 134
+       SYS_SYSFS                  = 135
+       SYS_PERSONALITY            = 136
+       SYS_AFS_SYSCALL            = 137
+       SYS_GETDENTS               = 141
+       SYS_FLOCK                  = 143
+       SYS_MSYNC                  = 144
+       SYS_READV                  = 145
+       SYS_WRITEV                 = 146
+       SYS_GETSID                 = 147
+       SYS_FDATASYNC              = 148
+       SYS__SYSCTL                = 149
+       SYS_MLOCK                  = 150
+       SYS_MUNLOCK                = 151
+       SYS_MLOCKALL               = 152
+       SYS_MUNLOCKALL             = 153
+       SYS_SCHED_SETPARAM         = 154
+       SYS_SCHED_GETPARAM         = 155
+       SYS_SCHED_SETSCHEDULER     = 156
+       SYS_SCHED_GETSCHEDULER     = 157
+       SYS_SCHED_YIELD            = 158
+       SYS_SCHED_GET_PRIORITY_MAX = 159
+       SYS_SCHED_GET_PRIORITY_MIN = 160
+       SYS_SCHED_RR_GET_INTERVAL  = 161
+       SYS_NANOSLEEP              = 162
+       SYS_MREMAP                 = 163
+       SYS_QUERY_MODULE           = 167
+       SYS_POLL                   = 168
+       SYS_NFSSERVCTL             = 169
+       SYS_PRCTL                  = 172
+       SYS_RT_SIGRETURN           = 173
+       SYS_RT_SIGACTION           = 174
+       SYS_RT_SIGPROCMASK         = 175
+       SYS_RT_SIGPENDING          = 176
+       SYS_RT_SIGTIMEDWAIT        = 177
+       SYS_RT_SIGQUEUEINFO        = 178
+       SYS_RT_SIGSUSPEND          = 179
+       SYS_PREAD64                = 180
+       SYS_PWRITE64               = 181
+       SYS_GETCWD                 = 183
+       SYS_CAPGET                 = 184
+       SYS_CAPSET                 = 185
+       SYS_SIGALTSTACK            = 186
+       SYS_SENDFILE               = 187
+       SYS_GETPMSG                = 188
+       SYS_PUTPMSG                = 189
+       SYS_VFORK                  = 190
+       SYS_PIVOT_ROOT             = 217
+       SYS_MINCORE                = 218
+       SYS_MADVISE                = 219
+       SYS_GETDENTS64             = 220
+       SYS_READAHEAD              = 222
+       SYS_SETXATTR               = 224
+       SYS_LSETXATTR              = 225
+       SYS_FSETXATTR              = 226
+       SYS_GETXATTR               = 227
+       SYS_LGETXATTR              = 228
+       SYS_FGETXATTR              = 229
+       SYS_LISTXATTR              = 230
+       SYS_LLISTXATTR             = 231
+       SYS_FLISTXATTR             = 232
+       SYS_REMOVEXATTR            = 233
+       SYS_LREMOVEXATTR           = 234
+       SYS_FREMOVEXATTR           = 235
+       SYS_GETTID                 = 236
+       SYS_TKILL                  = 237
+       SYS_FUTEX                  = 238
+       SYS_SCHED_SETAFFINITY      = 239
+       SYS_SCHED_GETAFFINITY      = 240
+       SYS_TGKILL                 = 241
+       SYS_IO_SETUP               = 243
+       SYS_IO_DESTROY             = 244
+       SYS_IO_GETEVENTS           = 245
+       SYS_IO_SUBMIT              = 246
+       SYS_IO_CANCEL              = 247
+       SYS_EXIT_GROUP             = 248
+       SYS_EPOLL_CREATE           = 249
+       SYS_EPOLL_CTL              = 250
+       SYS_EPOLL_WAIT             = 251
+       SYS_SET_TID_ADDRESS        = 252
+       SYS_FADVISE64              = 253
+       SYS_TIMER_CREATE           = 254
+       SYS_TIMER_SETTIME          = 255
+       SYS_TIMER_GETTIME          = 256
+       SYS_TIMER_GETOVERRUN       = 257
+       SYS_TIMER_DELETE           = 258
+       SYS_CLOCK_SETTIME          = 259
+       SYS_CLOCK_GETTIME          = 260
+       SYS_CLOCK_GETRES           = 261
+       SYS_CLOCK_NANOSLEEP        = 262
+       SYS_STATFS64               = 265
+       SYS_FSTATFS64              = 266
+       SYS_REMAP_FILE_PAGES       = 267
+       SYS_MBIND                  = 268
+       SYS_GET_MEMPOLICY          = 269
+       SYS_SET_MEMPOLICY          = 270
+       SYS_MQ_OPEN                = 271
+       SYS_MQ_UNLINK              = 272
+       SYS_MQ_TIMEDSEND           = 273
+       SYS_MQ_TIMEDRECEIVE        = 274
+       SYS_MQ_NOTIFY              = 275
+       SYS_MQ_GETSETATTR          = 276
+       SYS_KEXEC_LOAD             = 277
+       SYS_ADD_KEY                = 278
+       SYS_REQUEST_KEY            = 279
+       SYS_KEYCTL                 = 280
+       SYS_WAITID                 = 281
+       SYS_IOPRIO_SET             = 282
+       SYS_IOPRIO_GET             = 283
+       SYS_INOTIFY_INIT           = 284
+       SYS_INOTIFY_ADD_WATCH      = 285
+       SYS_INOTIFY_RM_WATCH       = 286
+       SYS_MIGRATE_PAGES          = 287
+       SYS_OPENAT                 = 288
+       SYS_MKDIRAT                = 289
+       SYS_MKNODAT                = 290
+       SYS_FCHOWNAT               = 291
+       SYS_FUTIMESAT              = 292
+       SYS_UNLINKAT               = 294
+       SYS_RENAMEAT               = 295
+       SYS_LINKAT                 = 296
+       SYS_SYMLINKAT              = 297
+       SYS_READLINKAT             = 298
+       SYS_FCHMODAT               = 299
+       SYS_FACCESSAT              = 300
+       SYS_PSELECT6               = 301
+       SYS_PPOLL                  = 302
+       SYS_UNSHARE                = 303
+       SYS_SET_ROBUST_LIST        = 304
+       SYS_GET_ROBUST_LIST        = 305
+       SYS_SPLICE                 = 306
+       SYS_SYNC_FILE_RANGE        = 307
+       SYS_TEE                    = 308
+       SYS_VMSPLICE               = 309
+       SYS_MOVE_PAGES             = 310
+       SYS_GETCPU                 = 311
+       SYS_EPOLL_PWAIT            = 312
+       SYS_UTIMES                 = 313
+       SYS_FALLOCATE              = 314
+       SYS_UTIMENSAT              = 315
+       SYS_SIGNALFD               = 316
+       SYS_TIMERFD                = 317
+       SYS_EVENTFD                = 318
+       SYS_TIMERFD_CREATE         = 319
+       SYS_TIMERFD_SETTIME        = 320
+       SYS_TIMERFD_GETTIME        = 321
+       SYS_SIGNALFD4              = 322
+       SYS_EVENTFD2               = 323
+       SYS_INOTIFY_INIT1          = 324
+       SYS_PIPE2                  = 325
+       SYS_DUP3                   = 326
+       SYS_EPOLL_CREATE1          = 327
+       SYS_PREADV                 = 328
+       SYS_PWRITEV                = 329
+       SYS_RT_TGSIGQUEUEINFO      = 330
+       SYS_PERF_EVENT_OPEN        = 331
+       SYS_FANOTIFY_INIT          = 332
+       SYS_FANOTIFY_MARK          = 333
+       SYS_PRLIMIT64              = 334
+       SYS_NAME_TO_HANDLE_AT      = 335
+       SYS_OPEN_BY_HANDLE_AT      = 336
+       SYS_CLOCK_ADJTIME          = 337
+       SYS_SYNCFS                 = 338
+       SYS_SETNS                  = 339
+       SYS_PROCESS_VM_READV       = 340
+       SYS_PROCESS_VM_WRITEV      = 341
+       SYS_S390_RUNTIME_INSTR     = 342
+       SYS_KCMP                   = 343
+       SYS_FINIT_MODULE           = 344
+       SYS_SCHED_SETATTR          = 345
+       SYS_SCHED_GETATTR          = 346
+       SYS_RENAMEAT2              = 347
+       SYS_SECCOMP                = 348
+       SYS_GETRANDOM              = 349
+       SYS_MEMFD_CREATE           = 350
+       SYS_BPF                    = 351
+       SYS_S390_PCI_MMIO_WRITE    = 352
+       SYS_S390_PCI_MMIO_READ     = 353
+       SYS_EXECVEAT               = 354
+       SYS_USERFAULTFD            = 355
+       SYS_MEMBARRIER             = 356
+       SYS_RECVMMSG               = 357
+       SYS_SENDMMSG               = 358
+       SYS_SOCKET                 = 359
+       SYS_SOCKETPAIR             = 360
+       SYS_BIND                   = 361
+       SYS_CONNECT                = 362
+       SYS_LISTEN                 = 363
+       SYS_ACCEPT4                = 364
+       SYS_GETSOCKOPT             = 365
+       SYS_SETSOCKOPT             = 366
+       SYS_GETSOCKNAME            = 367
+       SYS_GETPEERNAME            = 368
+       SYS_SENDTO                 = 369
+       SYS_SENDMSG                = 370
+       SYS_RECVFROM               = 371
+       SYS_RECVMSG                = 372
+       SYS_SHUTDOWN               = 373
+       SYS_MLOCK2                 = 374
+       SYS_COPY_FILE_RANGE        = 375
+       SYS_PREADV2                = 376
+       SYS_PWRITEV2               = 377
+       SYS_SELECT                 = 142
+       SYS_GETRLIMIT              = 191
+       SYS_LCHOWN                 = 198
+       SYS_GETUID                 = 199
+       SYS_GETGID                 = 200
+       SYS_GETEUID                = 201
+       SYS_GETEGID                = 202
+       SYS_SETREUID               = 203
+       SYS_SETREGID               = 204
+       SYS_GETGROUPS              = 205
+       SYS_SETGROUPS              = 206
+       SYS_FCHOWN                 = 207
+       SYS_SETRESUID              = 208
+       SYS_GETRESUID              = 209
+       SYS_SETRESGID              = 210
+       SYS_GETRESGID              = 211
+       SYS_CHOWN                  = 212
+       SYS_SETUID                 = 213
+       SYS_SETGID                 = 214
+       SYS_SETFSUID               = 215
+       SYS_SETFSGID               = 216
+       SYS_NEWFSTATAT             = 293
+)
diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go
new file mode 100644 (file)
index 0000000..c9c129d
--- /dev/null
@@ -0,0 +1,348 @@
+// mksysnum_linux.pl -Ilinux/usr/include -m64 -D__arch64__ linux/usr/include/asm/unistd.h
+// MACHINE GENERATED BY THE ABOVE COMMAND; DO NOT EDIT
+
+// +build sparc64,linux
+
+package unix
+
+const (
+       SYS_RESTART_SYSCALL        = 0
+       SYS_EXIT                   = 1
+       SYS_FORK                   = 2
+       SYS_READ                   = 3
+       SYS_WRITE                  = 4
+       SYS_OPEN                   = 5
+       SYS_CLOSE                  = 6
+       SYS_WAIT4                  = 7
+       SYS_CREAT                  = 8
+       SYS_LINK                   = 9
+       SYS_UNLINK                 = 10
+       SYS_EXECV                  = 11
+       SYS_CHDIR                  = 12
+       SYS_CHOWN                  = 13
+       SYS_MKNOD                  = 14
+       SYS_CHMOD                  = 15
+       SYS_LCHOWN                 = 16
+       SYS_BRK                    = 17
+       SYS_PERFCTR                = 18
+       SYS_LSEEK                  = 19
+       SYS_GETPID                 = 20
+       SYS_CAPGET                 = 21
+       SYS_CAPSET                 = 22
+       SYS_SETUID                 = 23
+       SYS_GETUID                 = 24
+       SYS_VMSPLICE               = 25
+       SYS_PTRACE                 = 26
+       SYS_ALARM                  = 27
+       SYS_SIGALTSTACK            = 28
+       SYS_PAUSE                  = 29
+       SYS_UTIME                  = 30
+       SYS_ACCESS                 = 33
+       SYS_NICE                   = 34
+       SYS_SYNC                   = 36
+       SYS_KILL                   = 37
+       SYS_STAT                   = 38
+       SYS_SENDFILE               = 39
+       SYS_LSTAT                  = 40
+       SYS_DUP                    = 41
+       SYS_PIPE                   = 42
+       SYS_TIMES                  = 43
+       SYS_UMOUNT2                = 45
+       SYS_SETGID                 = 46
+       SYS_GETGID                 = 47
+       SYS_SIGNAL                 = 48
+       SYS_GETEUID                = 49
+       SYS_GETEGID                = 50
+       SYS_ACCT                   = 51
+       SYS_MEMORY_ORDERING        = 52
+       SYS_IOCTL                  = 54
+       SYS_REBOOT                 = 55
+       SYS_SYMLINK                = 57
+       SYS_READLINK               = 58
+       SYS_EXECVE                 = 59
+       SYS_UMASK                  = 60
+       SYS_CHROOT                 = 61
+       SYS_FSTAT                  = 62
+       SYS_FSTAT64                = 63
+       SYS_GETPAGESIZE            = 64
+       SYS_MSYNC                  = 65
+       SYS_VFORK                  = 66
+       SYS_PREAD64                = 67
+       SYS_PWRITE64               = 68
+       SYS_MMAP                   = 71
+       SYS_MUNMAP                 = 73
+       SYS_MPROTECT               = 74
+       SYS_MADVISE                = 75
+       SYS_VHANGUP                = 76
+       SYS_MINCORE                = 78
+       SYS_GETGROUPS              = 79
+       SYS_SETGROUPS              = 80
+       SYS_GETPGRP                = 81
+       SYS_SETITIMER              = 83
+       SYS_SWAPON                 = 85
+       SYS_GETITIMER              = 86
+       SYS_SETHOSTNAME            = 88
+       SYS_DUP2                   = 90
+       SYS_FCNTL                  = 92
+       SYS_SELECT                 = 93
+       SYS_FSYNC                  = 95
+       SYS_SETPRIORITY            = 96
+       SYS_SOCKET                 = 97
+       SYS_CONNECT                = 98
+       SYS_ACCEPT                 = 99
+       SYS_GETPRIORITY            = 100
+       SYS_RT_SIGRETURN           = 101
+       SYS_RT_SIGACTION           = 102
+       SYS_RT_SIGPROCMASK         = 103
+       SYS_RT_SIGPENDING          = 104
+       SYS_RT_SIGTIMEDWAIT        = 105
+       SYS_RT_SIGQUEUEINFO        = 106
+       SYS_RT_SIGSUSPEND          = 107
+       SYS_SETRESUID              = 108
+       SYS_GETRESUID              = 109
+       SYS_SETRESGID              = 110
+       SYS_GETRESGID              = 111
+       SYS_RECVMSG                = 113
+       SYS_SENDMSG                = 114
+       SYS_GETTIMEOFDAY           = 116
+       SYS_GETRUSAGE              = 117
+       SYS_GETSOCKOPT             = 118
+       SYS_GETCWD                 = 119
+       SYS_READV                  = 120
+       SYS_WRITEV                 = 121
+       SYS_SETTIMEOFDAY           = 122
+       SYS_FCHOWN                 = 123
+       SYS_FCHMOD                 = 124
+       SYS_RECVFROM               = 125
+       SYS_SETREUID               = 126
+       SYS_SETREGID               = 127
+       SYS_RENAME                 = 128
+       SYS_TRUNCATE               = 129
+       SYS_FTRUNCATE              = 130
+       SYS_FLOCK                  = 131
+       SYS_LSTAT64                = 132
+       SYS_SENDTO                 = 133
+       SYS_SHUTDOWN               = 134
+       SYS_SOCKETPAIR             = 135
+       SYS_MKDIR                  = 136
+       SYS_RMDIR                  = 137
+       SYS_UTIMES                 = 138
+       SYS_STAT64                 = 139
+       SYS_SENDFILE64             = 140
+       SYS_GETPEERNAME            = 141
+       SYS_FUTEX                  = 142
+       SYS_GETTID                 = 143
+       SYS_GETRLIMIT              = 144
+       SYS_SETRLIMIT              = 145
+       SYS_PIVOT_ROOT             = 146
+       SYS_PRCTL                  = 147
+       SYS_PCICONFIG_READ         = 148
+       SYS_PCICONFIG_WRITE        = 149
+       SYS_GETSOCKNAME            = 150
+       SYS_INOTIFY_INIT           = 151
+       SYS_INOTIFY_ADD_WATCH      = 152
+       SYS_POLL                   = 153
+       SYS_GETDENTS64             = 154
+       SYS_INOTIFY_RM_WATCH       = 156
+       SYS_STATFS                 = 157
+       SYS_FSTATFS                = 158
+       SYS_UMOUNT                 = 159
+       SYS_SCHED_SET_AFFINITY     = 160
+       SYS_SCHED_GET_AFFINITY     = 161
+       SYS_GETDOMAINNAME          = 162
+       SYS_SETDOMAINNAME          = 163
+       SYS_UTRAP_INSTALL          = 164
+       SYS_QUOTACTL               = 165
+       SYS_SET_TID_ADDRESS        = 166
+       SYS_MOUNT                  = 167
+       SYS_USTAT                  = 168
+       SYS_SETXATTR               = 169
+       SYS_LSETXATTR              = 170
+       SYS_FSETXATTR              = 171
+       SYS_GETXATTR               = 172
+       SYS_LGETXATTR              = 173
+       SYS_GETDENTS               = 174
+       SYS_SETSID                 = 175
+       SYS_FCHDIR                 = 176
+       SYS_FGETXATTR              = 177
+       SYS_LISTXATTR              = 178
+       SYS_LLISTXATTR             = 179
+       SYS_FLISTXATTR             = 180
+       SYS_REMOVEXATTR            = 181
+       SYS_LREMOVEXATTR           = 182
+       SYS_SIGPENDING             = 183
+       SYS_QUERY_MODULE           = 184
+       SYS_SETPGID                = 185
+       SYS_FREMOVEXATTR           = 186
+       SYS_TKILL                  = 187
+       SYS_EXIT_GROUP             = 188
+       SYS_UNAME                  = 189
+       SYS_INIT_MODULE            = 190
+       SYS_PERSONALITY            = 191
+       SYS_REMAP_FILE_PAGES       = 192
+       SYS_EPOLL_CREATE           = 193
+       SYS_EPOLL_CTL              = 194
+       SYS_EPOLL_WAIT             = 195
+       SYS_IOPRIO_SET             = 196
+       SYS_GETPPID                = 197
+       SYS_SIGACTION              = 198
+       SYS_SGETMASK               = 199
+       SYS_SSETMASK               = 200
+       SYS_SIGSUSPEND             = 201
+       SYS_OLDLSTAT               = 202
+       SYS_USELIB                 = 203
+       SYS_READDIR                = 204
+       SYS_READAHEAD              = 205
+       SYS_SOCKETCALL             = 206
+       SYS_SYSLOG                 = 207
+       SYS_LOOKUP_DCOOKIE         = 208
+       SYS_FADVISE64              = 209
+       SYS_FADVISE64_64           = 210
+       SYS_TGKILL                 = 211
+       SYS_WAITPID                = 212
+       SYS_SWAPOFF                = 213
+       SYS_SYSINFO                = 214
+       SYS_IPC                    = 215
+       SYS_SIGRETURN              = 216
+       SYS_CLONE                  = 217
+       SYS_IOPRIO_GET             = 218
+       SYS_ADJTIMEX               = 219
+       SYS_SIGPROCMASK            = 220
+       SYS_CREATE_MODULE          = 221
+       SYS_DELETE_MODULE          = 222
+       SYS_GET_KERNEL_SYMS        = 223
+       SYS_GETPGID                = 224
+       SYS_BDFLUSH                = 225
+       SYS_SYSFS                  = 226
+       SYS_AFS_SYSCALL            = 227
+       SYS_SETFSUID               = 228
+       SYS_SETFSGID               = 229
+       SYS__NEWSELECT             = 230
+       SYS_SPLICE                 = 232
+       SYS_STIME                  = 233
+       SYS_STATFS64               = 234
+       SYS_FSTATFS64              = 235
+       SYS__LLSEEK                = 236
+       SYS_MLOCK                  = 237
+       SYS_MUNLOCK                = 238
+       SYS_MLOCKALL               = 239
+       SYS_MUNLOCKALL             = 240
+       SYS_SCHED_SETPARAM         = 241
+       SYS_SCHED_GETPARAM         = 242
+       SYS_SCHED_SETSCHEDULER     = 243
+       SYS_SCHED_GETSCHEDULER     = 244
+       SYS_SCHED_YIELD            = 245
+       SYS_SCHED_GET_PRIORITY_MAX = 246
+       SYS_SCHED_GET_PRIORITY_MIN = 247
+       SYS_SCHED_RR_GET_INTERVAL  = 248
+       SYS_NANOSLEEP              = 249
+       SYS_MREMAP                 = 250
+       SYS__SYSCTL                = 251
+       SYS_GETSID                 = 252
+       SYS_FDATASYNC              = 253
+       SYS_NFSSERVCTL             = 254
+       SYS_SYNC_FILE_RANGE        = 255
+       SYS_CLOCK_SETTIME          = 256
+       SYS_CLOCK_GETTIME          = 257
+       SYS_CLOCK_GETRES           = 258
+       SYS_CLOCK_NANOSLEEP        = 259
+       SYS_SCHED_GETAFFINITY      = 260
+       SYS_SCHED_SETAFFINITY      = 261
+       SYS_TIMER_SETTIME          = 262
+       SYS_TIMER_GETTIME          = 263
+       SYS_TIMER_GETOVERRUN       = 264
+       SYS_TIMER_DELETE           = 265
+       SYS_TIMER_CREATE           = 266
+       SYS_IO_SETUP               = 268
+       SYS_IO_DESTROY             = 269
+       SYS_IO_SUBMIT              = 270
+       SYS_IO_CANCEL              = 271
+       SYS_IO_GETEVENTS           = 272
+       SYS_MQ_OPEN                = 273
+       SYS_MQ_UNLINK              = 274
+       SYS_MQ_TIMEDSEND           = 275
+       SYS_MQ_TIMEDRECEIVE        = 276
+       SYS_MQ_NOTIFY              = 277
+       SYS_MQ_GETSETATTR          = 278
+       SYS_WAITID                 = 279
+       SYS_TEE                    = 280
+       SYS_ADD_KEY                = 281
+       SYS_REQUEST_KEY            = 282
+       SYS_KEYCTL                 = 283
+       SYS_OPENAT                 = 284
+       SYS_MKDIRAT                = 285
+       SYS_MKNODAT                = 286
+       SYS_FCHOWNAT               = 287
+       SYS_FUTIMESAT              = 288
+       SYS_FSTATAT64              = 289
+       SYS_UNLINKAT               = 290
+       SYS_RENAMEAT               = 291
+       SYS_LINKAT                 = 292
+       SYS_SYMLINKAT              = 293
+       SYS_READLINKAT             = 294
+       SYS_FCHMODAT               = 295
+       SYS_FACCESSAT              = 296
+       SYS_PSELECT6               = 297
+       SYS_PPOLL                  = 298
+       SYS_UNSHARE                = 299
+       SYS_SET_ROBUST_LIST        = 300
+       SYS_GET_ROBUST_LIST        = 301
+       SYS_MIGRATE_PAGES          = 302
+       SYS_MBIND                  = 303
+       SYS_GET_MEMPOLICY          = 304
+       SYS_SET_MEMPOLICY          = 305
+       SYS_KEXEC_LOAD             = 306
+       SYS_MOVE_PAGES             = 307
+       SYS_GETCPU                 = 308
+       SYS_EPOLL_PWAIT            = 309
+       SYS_UTIMENSAT              = 310
+       SYS_SIGNALFD               = 311
+       SYS_TIMERFD_CREATE         = 312
+       SYS_EVENTFD                = 313
+       SYS_FALLOCATE              = 314
+       SYS_TIMERFD_SETTIME        = 315
+       SYS_TIMERFD_GETTIME        = 316
+       SYS_SIGNALFD4              = 317
+       SYS_EVENTFD2               = 318
+       SYS_EPOLL_CREATE1          = 319
+       SYS_DUP3                   = 320
+       SYS_PIPE2                  = 321
+       SYS_INOTIFY_INIT1          = 322
+       SYS_ACCEPT4                = 323
+       SYS_PREADV                 = 324
+       SYS_PWRITEV                = 325
+       SYS_RT_TGSIGQUEUEINFO      = 326
+       SYS_PERF_EVENT_OPEN        = 327
+       SYS_RECVMMSG               = 328
+       SYS_FANOTIFY_INIT          = 329
+       SYS_FANOTIFY_MARK          = 330
+       SYS_PRLIMIT64              = 331
+       SYS_NAME_TO_HANDLE_AT      = 332
+       SYS_OPEN_BY_HANDLE_AT      = 333
+       SYS_CLOCK_ADJTIME          = 334
+       SYS_SYNCFS                 = 335
+       SYS_SENDMMSG               = 336
+       SYS_SETNS                  = 337
+       SYS_PROCESS_VM_READV       = 338
+       SYS_PROCESS_VM_WRITEV      = 339
+       SYS_KERN_FEATURES          = 340
+       SYS_KCMP                   = 341
+       SYS_FINIT_MODULE           = 342
+       SYS_SCHED_SETATTR          = 343
+       SYS_SCHED_GETATTR          = 344
+       SYS_RENAMEAT2              = 345
+       SYS_SECCOMP                = 346
+       SYS_GETRANDOM              = 347
+       SYS_MEMFD_CREATE           = 348
+       SYS_BPF                    = 349
+       SYS_EXECVEAT               = 350
+       SYS_MEMBARRIER             = 351
+       SYS_USERFAULTFD            = 352
+       SYS_BIND                   = 353
+       SYS_LISTEN                 = 354
+       SYS_SETSOCKOPT             = 355
+       SYS_MLOCK2                 = 356
+       SYS_COPY_FILE_RANGE        = 357
+       SYS_PREADV2                = 358
+       SYS_PWRITEV2               = 359
+)
diff --git a/vendor/golang.org/x/sys/unix/zsysnum_netbsd_386.go b/vendor/golang.org/x/sys/unix/zsysnum_netbsd_386.go
new file mode 100644 (file)
index 0000000..8afda9c
--- /dev/null
@@ -0,0 +1,274 @@
+// mksysnum_netbsd.pl
+// MACHINE GENERATED BY THE ABOVE COMMAND; DO NOT EDIT
+
+// +build 386,netbsd
+
+package unix
+
+const (
+       SYS_EXIT                 = 1   // { void|sys||exit(int rval); }
+       SYS_FORK                 = 2   // { int|sys||fork(void); }
+       SYS_READ                 = 3   // { ssize_t|sys||read(int fd, void *buf, size_t nbyte); }
+       SYS_WRITE                = 4   // { ssize_t|sys||write(int fd, const void *buf, size_t nbyte); }
+       SYS_OPEN                 = 5   // { int|sys||open(const char *path, int flags, ... mode_t mode); }
+       SYS_CLOSE                = 6   // { int|sys||close(int fd); }
+       SYS_LINK                 = 9   // { int|sys||link(const char *path, const char *link); }
+       SYS_UNLINK               = 10  // { int|sys||unlink(const char *path); }
+       SYS_CHDIR                = 12  // { int|sys||chdir(const char *path); }
+       SYS_FCHDIR               = 13  // { int|sys||fchdir(int fd); }
+       SYS_CHMOD                = 15  // { int|sys||chmod(const char *path, mode_t mode); }
+       SYS_CHOWN                = 16  // { int|sys||chown(const char *path, uid_t uid, gid_t gid); }
+       SYS_BREAK                = 17  // { int|sys||obreak(char *nsize); }
+       SYS_GETPID               = 20  // { pid_t|sys||getpid_with_ppid(void); }
+       SYS_UNMOUNT              = 22  // { int|sys||unmount(const char *path, int flags); }
+       SYS_SETUID               = 23  // { int|sys||setuid(uid_t uid); }
+       SYS_GETUID               = 24  // { uid_t|sys||getuid_with_euid(void); }
+       SYS_GETEUID              = 25  // { uid_t|sys||geteuid(void); }
+       SYS_PTRACE               = 26  // { int|sys||ptrace(int req, pid_t pid, void *addr, int data); }
+       SYS_RECVMSG              = 27  // { ssize_t|sys||recvmsg(int s, struct msghdr *msg, int flags); }
+       SYS_SENDMSG              = 28  // { ssize_t|sys||sendmsg(int s, const struct msghdr *msg, int flags); }
+       SYS_RECVFROM             = 29  // { ssize_t|sys||recvfrom(int s, void *buf, size_t len, int flags, struct sockaddr *from, socklen_t *fromlenaddr); }
+       SYS_ACCEPT               = 30  // { int|sys||accept(int s, struct sockaddr *name, socklen_t *anamelen); }
+       SYS_GETPEERNAME          = 31  // { int|sys||getpeername(int fdes, struct sockaddr *asa, socklen_t *alen); }
+       SYS_GETSOCKNAME          = 32  // { int|sys||getsockname(int fdes, struct sockaddr *asa, socklen_t *alen); }
+       SYS_ACCESS               = 33  // { int|sys||access(const char *path, int flags); }
+       SYS_CHFLAGS              = 34  // { int|sys||chflags(const char *path, u_long flags); }
+       SYS_FCHFLAGS             = 35  // { int|sys||fchflags(int fd, u_long flags); }
+       SYS_SYNC                 = 36  // { void|sys||sync(void); }
+       SYS_KILL                 = 37  // { int|sys||kill(pid_t pid, int signum); }
+       SYS_GETPPID              = 39  // { pid_t|sys||getppid(void); }
+       SYS_DUP                  = 41  // { int|sys||dup(int fd); }
+       SYS_PIPE                 = 42  // { int|sys||pipe(void); }
+       SYS_GETEGID              = 43  // { gid_t|sys||getegid(void); }
+       SYS_PROFIL               = 44  // { int|sys||profil(char *samples, size_t size, u_long offset, u_int scale); }
+       SYS_KTRACE               = 45  // { int|sys||ktrace(const char *fname, int ops, int facs, pid_t pid); }
+       SYS_GETGID               = 47  // { gid_t|sys||getgid_with_egid(void); }
+       SYS___GETLOGIN           = 49  // { int|sys||__getlogin(char *namebuf, size_t namelen); }
+       SYS___SETLOGIN           = 50  // { int|sys||__setlogin(const char *namebuf); }
+       SYS_ACCT                 = 51  // { int|sys||acct(const char *path); }
+       SYS_IOCTL                = 54  // { int|sys||ioctl(int fd, u_long com, ... void *data); }
+       SYS_REVOKE               = 56  // { int|sys||revoke(const char *path); }
+       SYS_SYMLINK              = 57  // { int|sys||symlink(const char *path, const char *link); }
+       SYS_READLINK             = 58  // { ssize_t|sys||readlink(const char *path, char *buf, size_t count); }
+       SYS_EXECVE               = 59  // { int|sys||execve(const char *path, char * const *argp, char * const *envp); }
+       SYS_UMASK                = 60  // { mode_t|sys||umask(mode_t newmask); }
+       SYS_CHROOT               = 61  // { int|sys||chroot(const char *path); }
+       SYS_VFORK                = 66  // { int|sys||vfork(void); }
+       SYS_SBRK                 = 69  // { int|sys||sbrk(intptr_t incr); }
+       SYS_SSTK                 = 70  // { int|sys||sstk(int incr); }
+       SYS_VADVISE              = 72  // { int|sys||ovadvise(int anom); }
+       SYS_MUNMAP               = 73  // { int|sys||munmap(void *addr, size_t len); }
+       SYS_MPROTECT             = 74  // { int|sys||mprotect(void *addr, size_t len, int prot); }
+       SYS_MADVISE              = 75  // { int|sys||madvise(void *addr, size_t len, int behav); }
+       SYS_MINCORE              = 78  // { int|sys||mincore(void *addr, size_t len, char *vec); }
+       SYS_GETGROUPS            = 79  // { int|sys||getgroups(int gidsetsize, gid_t *gidset); }
+       SYS_SETGROUPS            = 80  // { int|sys||setgroups(int gidsetsize, const gid_t *gidset); }
+       SYS_GETPGRP              = 81  // { int|sys||getpgrp(void); }
+       SYS_SETPGID              = 82  // { int|sys||setpgid(pid_t pid, pid_t pgid); }
+       SYS_DUP2                 = 90  // { int|sys||dup2(int from, int to); }
+       SYS_FCNTL                = 92  // { int|sys||fcntl(int fd, int cmd, ... void *arg); }
+       SYS_FSYNC                = 95  // { int|sys||fsync(int fd); }
+       SYS_SETPRIORITY          = 96  // { int|sys||setpriority(int which, id_t who, int prio); }
+       SYS_CONNECT              = 98  // { int|sys||connect(int s, const struct sockaddr *name, socklen_t namelen); }
+       SYS_GETPRIORITY          = 100 // { int|sys||getpriority(int which, id_t who); }
+       SYS_BIND                 = 104 // { int|sys||bind(int s, const struct sockaddr *name, socklen_t namelen); }
+       SYS_SETSOCKOPT           = 105 // { int|sys||setsockopt(int s, int level, int name, const void *val, socklen_t valsize); }
+       SYS_LISTEN               = 106 // { int|sys||listen(int s, int backlog); }
+       SYS_GETSOCKOPT           = 118 // { int|sys||getsockopt(int s, int level, int name, void *val, socklen_t *avalsize); }
+       SYS_READV                = 120 // { ssize_t|sys||readv(int fd, const struct iovec *iovp, int iovcnt); }
+       SYS_WRITEV               = 121 // { ssize_t|sys||writev(int fd, const struct iovec *iovp, int iovcnt); }
+       SYS_FCHOWN               = 123 // { int|sys||fchown(int fd, uid_t uid, gid_t gid); }
+       SYS_FCHMOD               = 124 // { int|sys||fchmod(int fd, mode_t mode); }
+       SYS_SETREUID             = 126 // { int|sys||setreuid(uid_t ruid, uid_t euid); }
+       SYS_SETREGID             = 127 // { int|sys||setregid(gid_t rgid, gid_t egid); }
+       SYS_RENAME               = 128 // { int|sys||rename(const char *from, const char *to); }
+       SYS_FLOCK                = 131 // { int|sys||flock(int fd, int how); }
+       SYS_MKFIFO               = 132 // { int|sys||mkfifo(const char *path, mode_t mode); }
+       SYS_SENDTO               = 133 // { ssize_t|sys||sendto(int s, const void *buf, size_t len, int flags, const struct sockaddr *to, socklen_t tolen); }
+       SYS_SHUTDOWN             = 134 // { int|sys||shutdown(int s, int how); }
+       SYS_SOCKETPAIR           = 135 // { int|sys||socketpair(int domain, int type, int protocol, int *rsv); }
+       SYS_MKDIR                = 136 // { int|sys||mkdir(const char *path, mode_t mode); }
+       SYS_RMDIR                = 137 // { int|sys||rmdir(const char *path); }
+       SYS_SETSID               = 147 // { int|sys||setsid(void); }
+       SYS_SYSARCH              = 165 // { int|sys||sysarch(int op, void *parms); }
+       SYS_PREAD                = 173 // { ssize_t|sys||pread(int fd, void *buf, size_t nbyte, int PAD, off_t offset); }
+       SYS_PWRITE               = 174 // { ssize_t|sys||pwrite(int fd, const void *buf, size_t nbyte, int PAD, off_t offset); }
+       SYS_NTP_ADJTIME          = 176 // { int|sys||ntp_adjtime(struct timex *tp); }
+       SYS_SETGID               = 181 // { int|sys||setgid(gid_t gid); }
+       SYS_SETEGID              = 182 // { int|sys||setegid(gid_t egid); }
+       SYS_SETEUID              = 183 // { int|sys||seteuid(uid_t euid); }
+       SYS_PATHCONF             = 191 // { long|sys||pathconf(const char *path, int name); }
+       SYS_FPATHCONF            = 192 // { long|sys||fpathconf(int fd, int name); }
+       SYS_GETRLIMIT            = 194 // { int|sys||getrlimit(int which, struct rlimit *rlp); }
+       SYS_SETRLIMIT            = 195 // { int|sys||setrlimit(int which, const struct rlimit *rlp); }
+       SYS_MMAP                 = 197 // { void *|sys||mmap(void *addr, size_t len, int prot, int flags, int fd, long PAD, off_t pos); }
+       SYS_LSEEK                = 199 // { off_t|sys||lseek(int fd, int PAD, off_t offset, int whence); }
+       SYS_TRUNCATE             = 200 // { int|sys||truncate(const char *path, int PAD, off_t length); }
+       SYS_FTRUNCATE            = 201 // { int|sys||ftruncate(int fd, int PAD, off_t length); }
+       SYS___SYSCTL             = 202 // { int|sys||__sysctl(const int *name, u_int namelen, void *old, size_t *oldlenp, const void *new, size_t newlen); }
+       SYS_MLOCK                = 203 // { int|sys||mlock(const void *addr, size_t len); }
+       SYS_MUNLOCK              = 204 // { int|sys||munlock(const void *addr, size_t len); }
+       SYS_UNDELETE             = 205 // { int|sys||undelete(const char *path); }
+       SYS_GETPGID              = 207 // { pid_t|sys||getpgid(pid_t pid); }
+       SYS_REBOOT               = 208 // { int|sys||reboot(int opt, char *bootstr); }
+       SYS_POLL                 = 209 // { int|sys||poll(struct pollfd *fds, u_int nfds, int timeout); }
+       SYS_SEMGET               = 221 // { int|sys||semget(key_t key, int nsems, int semflg); }
+       SYS_SEMOP                = 222 // { int|sys||semop(int semid, struct sembuf *sops, size_t nsops); }
+       SYS_SEMCONFIG            = 223 // { int|sys||semconfig(int flag); }
+       SYS_MSGGET               = 225 // { int|sys||msgget(key_t key, int msgflg); }
+       SYS_MSGSND               = 226 // { int|sys||msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); }
+       SYS_MSGRCV               = 227 // { ssize_t|sys||msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg); }
+       SYS_SHMAT                = 228 // { void *|sys||shmat(int shmid, const void *shmaddr, int shmflg); }
+       SYS_SHMDT                = 230 // { int|sys||shmdt(const void *shmaddr); }
+       SYS_SHMGET               = 231 // { int|sys||shmget(key_t key, size_t size, int shmflg); }
+       SYS_TIMER_CREATE         = 235 // { int|sys||timer_create(clockid_t clock_id, struct sigevent *evp, timer_t *timerid); }
+       SYS_TIMER_DELETE         = 236 // { int|sys||timer_delete(timer_t timerid); }
+       SYS_TIMER_GETOVERRUN     = 239 // { int|sys||timer_getoverrun(timer_t timerid); }
+       SYS_FDATASYNC            = 241 // { int|sys||fdatasync(int fd); }
+       SYS_MLOCKALL             = 242 // { int|sys||mlockall(int flags); }
+       SYS_MUNLOCKALL           = 243 // { int|sys||munlockall(void); }
+       SYS_SIGQUEUEINFO         = 245 // { int|sys||sigqueueinfo(pid_t pid, const siginfo_t *info); }
+       SYS_MODCTL               = 246 // { int|sys||modctl(int cmd, void *arg); }
+       SYS___POSIX_RENAME       = 270 // { int|sys||__posix_rename(const char *from, const char *to); }
+       SYS_SWAPCTL              = 271 // { int|sys||swapctl(int cmd, void *arg, int misc); }
+       SYS_MINHERIT             = 273 // { int|sys||minherit(void *addr, size_t len, int inherit); }
+       SYS_LCHMOD               = 274 // { int|sys||lchmod(const char *path, mode_t mode); }
+       SYS_LCHOWN               = 275 // { int|sys||lchown(const char *path, uid_t uid, gid_t gid); }
+       SYS_MSYNC                = 277 // { int|sys|13|msync(void *addr, size_t len, int flags); }
+       SYS___POSIX_CHOWN        = 283 // { int|sys||__posix_chown(const char *path, uid_t uid, gid_t gid); }
+       SYS___POSIX_FCHOWN       = 284 // { int|sys||__posix_fchown(int fd, uid_t uid, gid_t gid); }
+       SYS___POSIX_LCHOWN       = 285 // { int|sys||__posix_lchown(const char *path, uid_t uid, gid_t gid); }
+       SYS_GETSID               = 286 // { pid_t|sys||getsid(pid_t pid); }
+       SYS___CLONE              = 287 // { pid_t|sys||__clone(int flags, void *stack); }
+       SYS_FKTRACE              = 288 // { int|sys||fktrace(int fd, int ops, int facs, pid_t pid); }
+       SYS_PREADV               = 289 // { ssize_t|sys||preadv(int fd, const struct iovec *iovp, int iovcnt, int PAD, off_t offset); }
+       SYS_PWRITEV              = 290 // { ssize_t|sys||pwritev(int fd, const struct iovec *iovp, int iovcnt, int PAD, off_t offset); }
+       SYS___GETCWD             = 296 // { int|sys||__getcwd(char *bufp, size_t length); }
+       SYS_FCHROOT              = 297 // { int|sys||fchroot(int fd); }
+       SYS_LCHFLAGS             = 304 // { int|sys||lchflags(const char *path, u_long flags); }
+       SYS_ISSETUGID            = 305 // { int|sys||issetugid(void); }
+       SYS_UTRACE               = 306 // { int|sys||utrace(const char *label, void *addr, size_t len); }
+       SYS_GETCONTEXT           = 307 // { int|sys||getcontext(struct __ucontext *ucp); }
+       SYS_SETCONTEXT           = 308 // { int|sys||setcontext(const struct __ucontext *ucp); }
+       SYS__LWP_CREATE          = 309 // { int|sys||_lwp_create(const struct __ucontext *ucp, u_long flags, lwpid_t *new_lwp); }
+       SYS__LWP_EXIT            = 310 // { int|sys||_lwp_exit(void); }
+       SYS__LWP_SELF            = 311 // { lwpid_t|sys||_lwp_self(void); }
+       SYS__LWP_WAIT            = 312 // { int|sys||_lwp_wait(lwpid_t wait_for, lwpid_t *departed); }
+       SYS__LWP_SUSPEND         = 313 // { int|sys||_lwp_suspend(lwpid_t target); }
+       SYS__LWP_CONTINUE        = 314 // { int|sys||_lwp_continue(lwpid_t target); }
+       SYS__LWP_WAKEUP          = 315 // { int|sys||_lwp_wakeup(lwpid_t target); }
+       SYS__LWP_GETPRIVATE      = 316 // { void *|sys||_lwp_getprivate(void); }
+       SYS__LWP_SETPRIVATE      = 317 // { void|sys||_lwp_setprivate(void *ptr); }
+       SYS__LWP_KILL            = 318 // { int|sys||_lwp_kill(lwpid_t target, int signo); }
+       SYS__LWP_DETACH          = 319 // { int|sys||_lwp_detach(lwpid_t target); }
+       SYS__LWP_UNPARK          = 321 // { int|sys||_lwp_unpark(lwpid_t target, const void *hint); }
+       SYS__LWP_UNPARK_ALL      = 322 // { ssize_t|sys||_lwp_unpark_all(const lwpid_t *targets, size_t ntargets, const void *hint); }
+       SYS__LWP_SETNAME         = 323 // { int|sys||_lwp_setname(lwpid_t target, const char *name); }
+       SYS__LWP_GETNAME         = 324 // { int|sys||_lwp_getname(lwpid_t target, char *name, size_t len); }
+       SYS__LWP_CTL             = 325 // { int|sys||_lwp_ctl(int features, struct lwpctl **address); }
+       SYS___SIGACTION_SIGTRAMP = 340 // { int|sys||__sigaction_sigtramp(int signum, const struct sigaction *nsa, struct sigaction *osa, const void *tramp, int vers); }
+       SYS_PMC_GET_INFO         = 341 // { int|sys||pmc_get_info(int ctr, int op, void *args); }
+       SYS_PMC_CONTROL          = 342 // { int|sys||pmc_control(int ctr, int op, void *args); }
+       SYS_RASCTL               = 343 // { int|sys||rasctl(void *addr, size_t len, int op); }
+       SYS_KQUEUE               = 344 // { int|sys||kqueue(void); }
+       SYS__SCHED_SETPARAM      = 346 // { int|sys||_sched_setparam(pid_t pid, lwpid_t lid, int policy, const struct sched_param *params); }
+       SYS__SCHED_GETPARAM      = 347 // { int|sys||_sched_getparam(pid_t pid, lwpid_t lid, int *policy, struct sched_param *params); }
+       SYS__SCHED_SETAFFINITY   = 348 // { int|sys||_sched_setaffinity(pid_t pid, lwpid_t lid, size_t size, const cpuset_t *cpuset); }
+       SYS__SCHED_GETAFFINITY   = 349 // { int|sys||_sched_getaffinity(pid_t pid, lwpid_t lid, size_t size, cpuset_t *cpuset); }
+       SYS_SCHED_YIELD          = 350 // { int|sys||sched_yield(void); }
+       SYS_FSYNC_RANGE          = 354 // { int|sys||fsync_range(int fd, int flags, off_t start, off_t length); }
+       SYS_UUIDGEN              = 355 // { int|sys||uuidgen(struct uuid *store, int count); }
+       SYS_GETVFSSTAT           = 356 // { int|sys||getvfsstat(struct statvfs *buf, size_t bufsize, int flags); }
+       SYS_STATVFS1             = 357 // { int|sys||statvfs1(const char *path, struct statvfs *buf, int flags); }
+       SYS_FSTATVFS1            = 358 // { int|sys||fstatvfs1(int fd, struct statvfs *buf, int flags); }
+       SYS_EXTATTRCTL           = 360 // { int|sys||extattrctl(const char *path, int cmd, const char *filename, int attrnamespace, const char *attrname); }
+       SYS_EXTATTR_SET_FILE     = 361 // { int|sys||extattr_set_file(const char *path, int attrnamespace, const char *attrname, const void *data, size_t nbytes); }
+       SYS_EXTATTR_GET_FILE     = 362 // { ssize_t|sys||extattr_get_file(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }
+       SYS_EXTATTR_DELETE_FILE  = 363 // { int|sys||extattr_delete_file(const char *path, int attrnamespace, const char *attrname); }
+       SYS_EXTATTR_SET_FD       = 364 // { int|sys||extattr_set_fd(int fd, int attrnamespace, const char *attrname, const void *data, size_t nbytes); }
+       SYS_EXTATTR_GET_FD       = 365 // { ssize_t|sys||extattr_get_fd(int fd, int attrnamespace, const char *attrname, void *data, size_t nbytes); }
+       SYS_EXTATTR_DELETE_FD    = 366 // { int|sys||extattr_delete_fd(int fd, int attrnamespace, const char *attrname); }
+       SYS_EXTATTR_SET_LINK     = 367 // { int|sys||extattr_set_link(const char *path, int attrnamespace, const char *attrname, const void *data, size_t nbytes); }
+       SYS_EXTATTR_GET_LINK     = 368 // { ssize_t|sys||extattr_get_link(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }
+       SYS_EXTATTR_DELETE_LINK  = 369 // { int|sys||extattr_delete_link(const char *path, int attrnamespace, const char *attrname); }
+       SYS_EXTATTR_LIST_FD      = 370 // { ssize_t|sys||extattr_list_fd(int fd, int attrnamespace, void *data, size_t nbytes); }
+       SYS_EXTATTR_LIST_FILE    = 371 // { ssize_t|sys||extattr_list_file(const char *path, int attrnamespace, void *data, size_t nbytes); }
+       SYS_EXTATTR_LIST_LINK    = 372 // { ssize_t|sys||extattr_list_link(const char *path, int attrnamespace, void *data, size_t nbytes); }
+       SYS_SETXATTR             = 375 // { int|sys||setxattr(const char *path, const char *name, const void *value, size_t size, int flags); }
+       SYS_LSETXATTR            = 376 // { int|sys||lsetxattr(const char *path, const char *name, const void *value, size_t size, int flags); }
+       SYS_FSETXATTR            = 377 // { int|sys||fsetxattr(int fd, const char *name, const void *value, size_t size, int flags); }
+       SYS_GETXATTR             = 378 // { int|sys||getxattr(const char *path, const char *name, void *value, size_t size); }
+       SYS_LGETXATTR            = 379 // { int|sys||lgetxattr(const char *path, const char *name, void *value, size_t size); }
+       SYS_FGETXATTR            = 380 // { int|sys||fgetxattr(int fd, const char *name, void *value, size_t size); }
+       SYS_LISTXATTR            = 381 // { int|sys||listxattr(const char *path, char *list, size_t size); }
+       SYS_LLISTXATTR           = 382 // { int|sys||llistxattr(const char *path, char *list, size_t size); }
+       SYS_FLISTXATTR           = 383 // { int|sys||flistxattr(int fd, char *list, size_t size); }
+       SYS_REMOVEXATTR          = 384 // { int|sys||removexattr(const char *path, const char *name); }
+       SYS_LREMOVEXATTR         = 385 // { int|sys||lremovexattr(const char *path, const char *name); }
+       SYS_FREMOVEXATTR         = 386 // { int|sys||fremovexattr(int fd, const char *name); }
+       SYS_GETDENTS             = 390 // { int|sys|30|getdents(int fd, char *buf, size_t count); }
+       SYS_SOCKET               = 394 // { int|sys|30|socket(int domain, int type, int protocol); }
+       SYS_GETFH                = 395 // { int|sys|30|getfh(const char *fname, void *fhp, size_t *fh_size); }
+       SYS_MOUNT                = 410 // { int|sys|50|mount(const char *type, const char *path, int flags, void *data, size_t data_len); }
+       SYS_MREMAP               = 411 // { void *|sys||mremap(void *old_address, size_t old_size, void *new_address, size_t new_size, int flags); }
+       SYS_PSET_CREATE          = 412 // { int|sys||pset_create(psetid_t *psid); }
+       SYS_PSET_DESTROY         = 413 // { int|sys||pset_destroy(psetid_t psid); }
+       SYS_PSET_ASSIGN          = 414 // { int|sys||pset_assign(psetid_t psid, cpuid_t cpuid, psetid_t *opsid); }
+       SYS__PSET_BIND           = 415 // { int|sys||_pset_bind(idtype_t idtype, id_t first_id, id_t second_id, psetid_t psid, psetid_t *opsid); }
+       SYS_POSIX_FADVISE        = 416 // { int|sys|50|posix_fadvise(int fd, int PAD, off_t offset, off_t len, int advice); }
+       SYS_SELECT               = 417 // { int|sys|50|select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); }
+       SYS_GETTIMEOFDAY         = 418 // { int|sys|50|gettimeofday(struct timeval *tp, void *tzp); }
+       SYS_SETTIMEOFDAY         = 419 // { int|sys|50|settimeofday(const struct timeval *tv, const void *tzp); }
+       SYS_UTIMES               = 420 // { int|sys|50|utimes(const char *path, const struct timeval *tptr); }
+       SYS_ADJTIME              = 421 // { int|sys|50|adjtime(const struct timeval *delta, struct timeval *olddelta); }
+       SYS_FUTIMES              = 423 // { int|sys|50|futimes(int fd, const struct timeval *tptr); }
+       SYS_LUTIMES              = 424 // { int|sys|50|lutimes(const char *path, const struct timeval *tptr); }
+       SYS_SETITIMER            = 425 // { int|sys|50|setitimer(int which, const struct itimerval *itv, struct itimerval *oitv); }
+       SYS_GETITIMER            = 426 // { int|sys|50|getitimer(int which, struct itimerval *itv); }
+       SYS_CLOCK_GETTIME        = 427 // { int|sys|50|clock_gettime(clockid_t clock_id, struct timespec *tp); }
+       SYS_CLOCK_SETTIME        = 428 // { int|sys|50|clock_settime(clockid_t clock_id, const struct timespec *tp); }
+       SYS_CLOCK_GETRES         = 429 // { int|sys|50|clock_getres(clockid_t clock_id, struct timespec *tp); }
+       SYS_NANOSLEEP            = 430 // { int|sys|50|nanosleep(const struct timespec *rqtp, struct timespec *rmtp); }
+       SYS___SIGTIMEDWAIT       = 431 // { int|sys|50|__sigtimedwait(const sigset_t *set, siginfo_t *info, struct timespec *timeout); }
+       SYS__LWP_PARK            = 434 // { int|sys|50|_lwp_park(const struct timespec *ts, lwpid_t unpark, const void *hint, const void *unparkhint); }
+       SYS_KEVENT               = 435 // { int|sys|50|kevent(int fd, const struct kevent *changelist, size_t nchanges, struct kevent *eventlist, size_t nevents, const struct timespec *timeout); }
+       SYS_PSELECT              = 436 // { int|sys|50|pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *mask); }
+       SYS_POLLTS               = 437 // { int|sys|50|pollts(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *mask); }
+       SYS_STAT                 = 439 // { int|sys|50|stat(const char *path, struct stat *ub); }
+       SYS_FSTAT                = 440 // { int|sys|50|fstat(int fd, struct stat *sb); }
+       SYS_LSTAT                = 441 // { int|sys|50|lstat(const char *path, struct stat *ub); }
+       SYS___SEMCTL             = 442 // { int|sys|50|__semctl(int semid, int semnum, int cmd, ... union __semun *arg); }
+       SYS_SHMCTL               = 443 // { int|sys|50|shmctl(int shmid, int cmd, struct shmid_ds *buf); }
+       SYS_MSGCTL               = 444 // { int|sys|50|msgctl(int msqid, int cmd, struct msqid_ds *buf); }
+       SYS_GETRUSAGE            = 445 // { int|sys|50|getrusage(int who, struct rusage *rusage); }
+       SYS_TIMER_SETTIME        = 446 // { int|sys|50|timer_settime(timer_t timerid, int flags, const struct itimerspec *value, struct itimerspec *ovalue); }
+       SYS_TIMER_GETTIME        = 447 // { int|sys|50|timer_gettime(timer_t timerid, struct itimerspec *value); }
+       SYS_NTP_GETTIME          = 448 // { int|sys|50|ntp_gettime(struct ntptimeval *ntvp); }
+       SYS_WAIT4                = 449 // { int|sys|50|wait4(pid_t pid, int *status, int options, struct rusage *rusage); }
+       SYS_MKNOD                = 450 // { int|sys|50|mknod(const char *path, mode_t mode, dev_t dev); }
+       SYS_FHSTAT               = 451 // { int|sys|50|fhstat(const void *fhp, size_t fh_size, struct stat *sb); }
+       SYS_PIPE2                = 453 // { int|sys||pipe2(int *fildes, int flags); }
+       SYS_DUP3                 = 454 // { int|sys||dup3(int from, int to, int flags); }
+       SYS_KQUEUE1              = 455 // { int|sys||kqueue1(int flags); }
+       SYS_PACCEPT              = 456 // { int|sys||paccept(int s, struct sockaddr *name, socklen_t *anamelen, const sigset_t *mask, int flags); }
+       SYS_LINKAT               = 457 // { int|sys||linkat(int fd1, const char *name1, int fd2, const char *name2, int flags); }
+       SYS_RENAMEAT             = 458 // { int|sys||renameat(int fromfd, const char *from, int tofd, const char *to); }
+       SYS_MKFIFOAT             = 459 // { int|sys||mkfifoat(int fd, const char *path, mode_t mode); }
+       SYS_MKNODAT              = 460 // { int|sys||mknodat(int fd, const char *path, mode_t mode, uint32_t dev); }
+       SYS_MKDIRAT              = 461 // { int|sys||mkdirat(int fd, const char *path, mode_t mode); }
+       SYS_FACCESSAT            = 462 // { int|sys||faccessat(int fd, const char *path, int amode, int flag); }
+       SYS_FCHMODAT             = 463 // { int|sys||fchmodat(int fd, const char *path, mode_t mode, int flag); }
+       SYS_FCHOWNAT             = 464 // { int|sys||fchownat(int fd, const char *path, uid_t owner, gid_t group, int flag); }
+       SYS_FEXECVE              = 465 // { int|sys||fexecve(int fd, char * const *argp, char * const *envp); }
+       SYS_FSTATAT              = 466 // { int|sys||fstatat(int fd, const char *path, struct stat *buf, int flag); }
+       SYS_UTIMENSAT            = 467 // { int|sys||utimensat(int fd, const char *path, const struct timespec *tptr, int flag); }
+       SYS_OPENAT               = 468 // { int|sys||openat(int fd, const char *path, int oflags, ... mode_t mode); }
+       SYS_READLINKAT           = 469 // { int|sys||readlinkat(int fd, const char *path, char *buf, size_t bufsize); }
+       SYS_SYMLINKAT            = 470 // { int|sys||symlinkat(const char *path1, int fd, const char *path2); }
+       SYS_UNLINKAT             = 471 // { int|sys||unlinkat(int fd, const char *path, int flag); }
+       SYS_FUTIMENS             = 472 // { int|sys||futimens(int fd, const struct timespec *tptr); }
+       SYS___QUOTACTL           = 473 // { int|sys||__quotactl(const char *path, struct quotactl_args *args); }
+       SYS_POSIX_SPAWN          = 474 // { int|sys||posix_spawn(pid_t *pid, const char *path, const struct posix_spawn_file_actions *file_actions, const struct posix_spawnattr *attrp, char *const *argv, char *const *envp); }
+       SYS_RECVMMSG             = 475 // { int|sys||recvmmsg(int s, struct mmsghdr *mmsg, unsigned int vlen, unsigned int flags, struct timespec *timeout); }
+       SYS_SENDMMSG             = 476 // { int|sys||sendmmsg(int s, struct mmsghdr *mmsg, unsigned int vlen, unsigned int flags); }
+)
diff --git a/vendor/golang.org/x/sys/unix/zsysnum_netbsd_amd64.go b/vendor/golang.org/x/sys/unix/zsysnum_netbsd_amd64.go
new file mode 100644 (file)
index 0000000..aea8dbe
--- /dev/null
@@ -0,0 +1,274 @@
+// mksysnum_netbsd.pl
+// MACHINE GENERATED BY THE ABOVE COMMAND; DO NOT EDIT
+
+// +build amd64,netbsd
+
+package unix
+
+const (
+       SYS_EXIT                 = 1   // { void|sys||exit(int rval); }
+       SYS_FORK                 = 2   // { int|sys||fork(void); }
+       SYS_READ                 = 3   // { ssize_t|sys||read(int fd, void *buf, size_t nbyte); }
+       SYS_WRITE                = 4   // { ssize_t|sys||write(int fd, const void *buf, size_t nbyte); }
+       SYS_OPEN                 = 5   // { int|sys||open(const char *path, int flags, ... mode_t mode); }
+       SYS_CLOSE                = 6   // { int|sys||close(int fd); }
+       SYS_LINK                 = 9   // { int|sys||link(const char *path, const char *link); }
+       SYS_UNLINK               = 10  // { int|sys||unlink(const char *path); }
+       SYS_CHDIR                = 12  // { int|sys||chdir(const char *path); }
+       SYS_FCHDIR               = 13  // { int|sys||fchdir(int fd); }
+       SYS_CHMOD                = 15  // { int|sys||chmod(const char *path, mode_t mode); }
+       SYS_CHOWN                = 16  // { int|sys||chown(const char *path, uid_t uid, gid_t gid); }
+       SYS_BREAK                = 17  // { int|sys||obreak(char *nsize); }
+       SYS_GETPID               = 20  // { pid_t|sys||getpid_with_ppid(void); }
+       SYS_UNMOUNT              = 22  // { int|sys||unmount(const char *path, int flags); }
+       SYS_SETUID               = 23  // { int|sys||setuid(uid_t uid); }
+       SYS_GETUID               = 24  // { uid_t|sys||getuid_with_euid(void); }
+       SYS_GETEUID              = 25  // { uid_t|sys||geteuid(void); }
+       SYS_PTRACE               = 26  // { int|sys||ptrace(int req, pid_t pid, void *addr, int data); }
+       SYS_RECVMSG              = 27  // { ssize_t|sys||recvmsg(int s, struct msghdr *msg, int flags); }
+       SYS_SENDMSG              = 28  // { ssize_t|sys||sendmsg(int s, const struct msghdr *msg, int flags); }
+       SYS_RECVFROM             = 29  // { ssize_t|sys||recvfrom(int s, void *buf, size_t len, int flags, struct sockaddr *from, socklen_t *fromlenaddr); }
+       SYS_ACCEPT               = 30  // { int|sys||accept(int s, struct sockaddr *name, socklen_t *anamelen); }
+       SYS_GETPEERNAME          = 31  // { int|sys||getpeername(int fdes, struct sockaddr *asa, socklen_t *alen); }
+       SYS_GETSOCKNAME          = 32  // { int|sys||getsockname(int fdes, struct sockaddr *asa, socklen_t *alen); }
+       SYS_ACCESS               = 33  // { int|sys||access(const char *path, int flags); }
+       SYS_CHFLAGS              = 34  // { int|sys||chflags(const char *path, u_long flags); }
+       SYS_FCHFLAGS             = 35  // { int|sys||fchflags(int fd, u_long flags); }
+       SYS_SYNC                 = 36  // { void|sys||sync(void); }
+       SYS_KILL                 = 37  // { int|sys||kill(pid_t pid, int signum); }
+       SYS_GETPPID              = 39  // { pid_t|sys||getppid(void); }
+       SYS_DUP                  = 41  // { int|sys||dup(int fd); }
+       SYS_PIPE                 = 42  // { int|sys||pipe(void); }
+       SYS_GETEGID              = 43  // { gid_t|sys||getegid(void); }
+       SYS_PROFIL               = 44  // { int|sys||profil(char *samples, size_t size, u_long offset, u_int scale); }
+       SYS_KTRACE               = 45  // { int|sys||ktrace(const char *fname, int ops, int facs, pid_t pid); }
+       SYS_GETGID               = 47  // { gid_t|sys||getgid_with_egid(void); }
+       SYS___GETLOGIN           = 49  // { int|sys||__getlogin(char *namebuf, size_t namelen); }
+       SYS___SETLOGIN           = 50  // { int|sys||__setlogin(const char *namebuf); }
+       SYS_ACCT                 = 51  // { int|sys||acct(const char *path); }
+       SYS_IOCTL                = 54  // { int|sys||ioctl(int fd, u_long com, ... void *data); }
+       SYS_REVOKE               = 56  // { int|sys||revoke(const char *path); }
+       SYS_SYMLINK              = 57  // { int|sys||symlink(const char *path, const char *link); }
+       SYS_READLINK             = 58  // { ssize_t|sys||readlink(const char *path, char *buf, size_t count); }
+       SYS_EXECVE               = 59  // { int|sys||execve(const char *path, char * const *argp, char * const *envp); }
+       SYS_UMASK                = 60  // { mode_t|sys||umask(mode_t newmask); }
+       SYS_CHROOT               = 61  // { int|sys||chroot(const char *path); }
+       SYS_VFORK                = 66  // { int|sys||vfork(void); }
+       SYS_SBRK                 = 69  // { int|sys||sbrk(intptr_t incr); }
+       SYS_SSTK                 = 70  // { int|sys||sstk(int incr); }
+       SYS_VADVISE              = 72  // { int|sys||ovadvise(int anom); }
+       SYS_MUNMAP               = 73  // { int|sys||munmap(void *addr, size_t len); }
+       SYS_MPROTECT             = 74  // { int|sys||mprotect(void *addr, size_t len, int prot); }
+       SYS_MADVISE              = 75  // { int|sys||madvise(void *addr, size_t len, int behav); }
+       SYS_MINCORE              = 78  // { int|sys||mincore(void *addr, size_t len, char *vec); }
+       SYS_GETGROUPS            = 79  // { int|sys||getgroups(int gidsetsize, gid_t *gidset); }
+       SYS_SETGROUPS            = 80  // { int|sys||setgroups(int gidsetsize, const gid_t *gidset); }
+       SYS_GETPGRP              = 81  // { int|sys||getpgrp(void); }
+       SYS_SETPGID              = 82  // { int|sys||setpgid(pid_t pid, pid_t pgid); }
+       SYS_DUP2                 = 90  // { int|sys||dup2(int from, int to); }
+       SYS_FCNTL                = 92  // { int|sys||fcntl(int fd, int cmd, ... void *arg); }
+       SYS_FSYNC                = 95  // { int|sys||fsync(int fd); }
+       SYS_SETPRIORITY          = 96  // { int|sys||setpriority(int which, id_t who, int prio); }
+       SYS_CONNECT              = 98  // { int|sys||connect(int s, const struct sockaddr *name, socklen_t namelen); }
+       SYS_GETPRIORITY          = 100 // { int|sys||getpriority(int which, id_t who); }
+       SYS_BIND                 = 104 // { int|sys||bind(int s, const struct sockaddr *name, socklen_t namelen); }
+       SYS_SETSOCKOPT           = 105 // { int|sys||setsockopt(int s, int level, int name, const void *val, socklen_t valsize); }
+       SYS_LISTEN               = 106 // { int|sys||listen(int s, int backlog); }
+       SYS_GETSOCKOPT           = 118 // { int|sys||getsockopt(int s, int level, int name, void *val, socklen_t *avalsize); }
+       SYS_READV                = 120 // { ssize_t|sys||readv(int fd, const struct iovec *iovp, int iovcnt); }
+       SYS_WRITEV               = 121 // { ssize_t|sys||writev(int fd, const struct iovec *iovp, int iovcnt); }
+       SYS_FCHOWN               = 123 // { int|sys||fchown(int fd, uid_t uid, gid_t gid); }
+       SYS_FCHMOD               = 124 // { int|sys||fchmod(int fd, mode_t mode); }
+       SYS_SETREUID             = 126 // { int|sys||setreuid(uid_t ruid, uid_t euid); }
+       SYS_SETREGID             = 127 // { int|sys||setregid(gid_t rgid, gid_t egid); }
+       SYS_RENAME               = 128 // { int|sys||rename(const char *from, const char *to); }
+       SYS_FLOCK                = 131 // { int|sys||flock(int fd, int how); }
+       SYS_MKFIFO               = 132 // { int|sys||mkfifo(const char *path, mode_t mode); }
+       SYS_SENDTO               = 133 // { ssize_t|sys||sendto(int s, const void *buf, size_t len, int flags, const struct sockaddr *to, socklen_t tolen); }
+       SYS_SHUTDOWN             = 134 // { int|sys||shutdown(int s, int how); }
+       SYS_SOCKETPAIR           = 135 // { int|sys||socketpair(int domain, int type, int protocol, int *rsv); }
+       SYS_MKDIR                = 136 // { int|sys||mkdir(const char *path, mode_t mode); }
+       SYS_RMDIR                = 137 // { int|sys||rmdir(const char *path); }
+       SYS_SETSID               = 147 // { int|sys||setsid(void); }
+       SYS_SYSARCH              = 165 // { int|sys||sysarch(int op, void *parms); }
+       SYS_PREAD                = 173 // { ssize_t|sys||pread(int fd, void *buf, size_t nbyte, int PAD, off_t offset); }
+       SYS_PWRITE               = 174 // { ssize_t|sys||pwrite(int fd, const void *buf, size_t nbyte, int PAD, off_t offset); }
+       SYS_NTP_ADJTIME          = 176 // { int|sys||ntp_adjtime(struct timex *tp); }
+       SYS_SETGID               = 181 // { int|sys||setgid(gid_t gid); }
+       SYS_SETEGID              = 182 // { int|sys||setegid(gid_t egid); }
+       SYS_SETEUID              = 183 // { int|sys||seteuid(uid_t euid); }
+       SYS_PATHCONF             = 191 // { long|sys||pathconf(const char *path, int name); }
+       SYS_FPATHCONF            = 192 // { long|sys||fpathconf(int fd, int name); }
+       SYS_GETRLIMIT            = 194 // { int|sys||getrlimit(int which, struct rlimit *rlp); }
+       SYS_SETRLIMIT            = 195 // { int|sys||setrlimit(int which, const struct rlimit *rlp); }
+       SYS_MMAP                 = 197 // { void *|sys||mmap(void *addr, size_t len, int prot, int flags, int fd, long PAD, off_t pos); }
+       SYS_LSEEK                = 199 // { off_t|sys||lseek(int fd, int PAD, off_t offset, int whence); }
+       SYS_TRUNCATE             = 200 // { int|sys||truncate(const char *path, int PAD, off_t length); }
+       SYS_FTRUNCATE            = 201 // { int|sys||ftruncate(int fd, int PAD, off_t length); }
+       SYS___SYSCTL             = 202 // { int|sys||__sysctl(const int *name, u_int namelen, void *old, size_t *oldlenp, const void *new, size_t newlen); }
+       SYS_MLOCK                = 203 // { int|sys||mlock(const void *addr, size_t len); }
+       SYS_MUNLOCK              = 204 // { int|sys||munlock(const void *addr, size_t len); }
+       SYS_UNDELETE             = 205 // { int|sys||undelete(const char *path); }
+       SYS_GETPGID              = 207 // { pid_t|sys||getpgid(pid_t pid); }
+       SYS_REBOOT               = 208 // { int|sys||reboot(int opt, char *bootstr); }
+       SYS_POLL                 = 209 // { int|sys||poll(struct pollfd *fds, u_int nfds, int timeout); }
+       SYS_SEMGET               = 221 // { int|sys||semget(key_t key, int nsems, int semflg); }
+       SYS_SEMOP                = 222 // { int|sys||semop(int semid, struct sembuf *sops, size_t nsops); }
+       SYS_SEMCONFIG            = 223 // { int|sys||semconfig(int flag); }
+       SYS_MSGGET               = 225 // { int|sys||msgget(key_t key, int msgflg); }
+       SYS_MSGSND               = 226 // { int|sys||msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); }
+       SYS_MSGRCV               = 227 // { ssize_t|sys||msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg); }
+       SYS_SHMAT                = 228 // { void *|sys||shmat(int shmid, const void *shmaddr, int shmflg); }
+       SYS_SHMDT                = 230 // { int|sys||shmdt(const void *shmaddr); }
+       SYS_SHMGET               = 231 // { int|sys||shmget(key_t key, size_t size, int shmflg); }
+       SYS_TIMER_CREATE         = 235 // { int|sys||timer_create(clockid_t clock_id, struct sigevent *evp, timer_t *timerid); }
+       SYS_TIMER_DELETE         = 236 // { int|sys||timer_delete(timer_t timerid); }
+       SYS_TIMER_GETOVERRUN     = 239 // { int|sys||timer_getoverrun(timer_t timerid); }
+       SYS_FDATASYNC            = 241 // { int|sys||fdatasync(int fd); }
+       SYS_MLOCKALL             = 242 // { int|sys||mlockall(int flags); }
+       SYS_MUNLOCKALL           = 243 // { int|sys||munlockall(void); }
+       SYS_SIGQUEUEINFO         = 245 // { int|sys||sigqueueinfo(pid_t pid, const siginfo_t *info); }
+       SYS_MODCTL               = 246 // { int|sys||modctl(int cmd, void *arg); }
+       SYS___POSIX_RENAME       = 270 // { int|sys||__posix_rename(const char *from, const char *to); }
+       SYS_SWAPCTL              = 271 // { int|sys||swapctl(int cmd, void *arg, int misc); }
+       SYS_MINHERIT             = 273 // { int|sys||minherit(void *addr, size_t len, int inherit); }
+       SYS_LCHMOD               = 274 // { int|sys||lchmod(const char *path, mode_t mode); }
+       SYS_LCHOWN               = 275 // { int|sys||lchown(const char *path, uid_t uid, gid_t gid); }
+       SYS_MSYNC                = 277 // { int|sys|13|msync(void *addr, size_t len, int flags); }
+       SYS___POSIX_CHOWN        = 283 // { int|sys||__posix_chown(const char *path, uid_t uid, gid_t gid); }
+       SYS___POSIX_FCHOWN       = 284 // { int|sys||__posix_fchown(int fd, uid_t uid, gid_t gid); }
+       SYS___POSIX_LCHOWN       = 285 // { int|sys||__posix_lchown(const char *path, uid_t uid, gid_t gid); }
+       SYS_GETSID               = 286 // { pid_t|sys||getsid(pid_t pid); }
+       SYS___CLONE              = 287 // { pid_t|sys||__clone(int flags, void *stack); }
+       SYS_FKTRACE              = 288 // { int|sys||fktrace(int fd, int ops, int facs, pid_t pid); }
+       SYS_PREADV               = 289 // { ssize_t|sys||preadv(int fd, const struct iovec *iovp, int iovcnt, int PAD, off_t offset); }
+       SYS_PWRITEV              = 290 // { ssize_t|sys||pwritev(int fd, const struct iovec *iovp, int iovcnt, int PAD, off_t offset); }
+       SYS___GETCWD             = 296 // { int|sys||__getcwd(char *bufp, size_t length); }
+       SYS_FCHROOT              = 297 // { int|sys||fchroot(int fd); }
+       SYS_LCHFLAGS             = 304 // { int|sys||lchflags(const char *path, u_long flags); }
+       SYS_ISSETUGID            = 305 // { int|sys||issetugid(void); }
+       SYS_UTRACE               = 306 // { int|sys||utrace(const char *label, void *addr, size_t len); }
+       SYS_GETCONTEXT           = 307 // { int|sys||getcontext(struct __ucontext *ucp); }
+       SYS_SETCONTEXT           = 308 // { int|sys||setcontext(const struct __ucontext *ucp); }
+       SYS__LWP_CREATE          = 309 // { int|sys||_lwp_create(const struct __ucontext *ucp, u_long flags, lwpid_t *new_lwp); }
+       SYS__LWP_EXIT            = 310 // { int|sys||_lwp_exit(void); }
+       SYS__LWP_SELF            = 311 // { lwpid_t|sys||_lwp_self(void); }
+       SYS__LWP_WAIT            = 312 // { int|sys||_lwp_wait(lwpid_t wait_for, lwpid_t *departed); }
+       SYS__LWP_SUSPEND         = 313 // { int|sys||_lwp_suspend(lwpid_t target); }
+       SYS__LWP_CONTINUE        = 314 // { int|sys||_lwp_continue(lwpid_t target); }
+       SYS__LWP_WAKEUP          = 315 // { int|sys||_lwp_wakeup(lwpid_t target); }
+       SYS__LWP_GETPRIVATE      = 316 // { void *|sys||_lwp_getprivate(void); }
+       SYS__LWP_SETPRIVATE      = 317 // { void|sys||_lwp_setprivate(void *ptr); }
+       SYS__LWP_KILL            = 318 // { int|sys||_lwp_kill(lwpid_t target, int signo); }
+       SYS__LWP_DETACH          = 319 // { int|sys||_lwp_detach(lwpid_t target); }
+       SYS__LWP_UNPARK          = 321 // { int|sys||_lwp_unpark(lwpid_t target, const void *hint); }
+       SYS__LWP_UNPARK_ALL      = 322 // { ssize_t|sys||_lwp_unpark_all(const lwpid_t *targets, size_t ntargets, const void *hint); }
+       SYS__LWP_SETNAME         = 323 // { int|sys||_lwp_setname(lwpid_t target, const char *name); }
+       SYS__LWP_GETNAME         = 324 // { int|sys||_lwp_getname(lwpid_t target, char *name, size_t len); }
+       SYS__LWP_CTL             = 325 // { int|sys||_lwp_ctl(int features, struct lwpctl **address); }
+       SYS___SIGACTION_SIGTRAMP = 340 // { int|sys||__sigaction_sigtramp(int signum, const struct sigaction *nsa, struct sigaction *osa, const void *tramp, int vers); }
+       SYS_PMC_GET_INFO         = 341 // { int|sys||pmc_get_info(int ctr, int op, void *args); }
+       SYS_PMC_CONTROL          = 342 // { int|sys||pmc_control(int ctr, int op, void *args); }
+       SYS_RASCTL               = 343 // { int|sys||rasctl(void *addr, size_t len, int op); }
+       SYS_KQUEUE               = 344 // { int|sys||kqueue(void); }
+       SYS__SCHED_SETPARAM      = 346 // { int|sys||_sched_setparam(pid_t pid, lwpid_t lid, int policy, const struct sched_param *params); }
+       SYS__SCHED_GETPARAM      = 347 // { int|sys||_sched_getparam(pid_t pid, lwpid_t lid, int *policy, struct sched_param *params); }
+       SYS__SCHED_SETAFFINITY   = 348 // { int|sys||_sched_setaffinity(pid_t pid, lwpid_t lid, size_t size, const cpuset_t *cpuset); }
+       SYS__SCHED_GETAFFINITY   = 349 // { int|sys||_sched_getaffinity(pid_t pid, lwpid_t lid, size_t size, cpuset_t *cpuset); }
+       SYS_SCHED_YIELD          = 350 // { int|sys||sched_yield(void); }
+       SYS_FSYNC_RANGE          = 354 // { int|sys||fsync_range(int fd, int flags, off_t start, off_t length); }
+       SYS_UUIDGEN              = 355 // { int|sys||uuidgen(struct uuid *store, int count); }
+       SYS_GETVFSSTAT           = 356 // { int|sys||getvfsstat(struct statvfs *buf, size_t bufsize, int flags); }
+       SYS_STATVFS1             = 357 // { int|sys||statvfs1(const char *path, struct statvfs *buf, int flags); }
+       SYS_FSTATVFS1            = 358 // { int|sys||fstatvfs1(int fd, struct statvfs *buf, int flags); }
+       SYS_EXTATTRCTL           = 360 // { int|sys||extattrctl(const char *path, int cmd, const char *filename, int attrnamespace, const char *attrname); }
+       SYS_EXTATTR_SET_FILE     = 361 // { int|sys||extattr_set_file(const char *path, int attrnamespace, const char *attrname, const void *data, size_t nbytes); }
+       SYS_EXTATTR_GET_FILE     = 362 // { ssize_t|sys||extattr_get_file(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }
+       SYS_EXTATTR_DELETE_FILE  = 363 // { int|sys||extattr_delete_file(const char *path, int attrnamespace, const char *attrname); }
+       SYS_EXTATTR_SET_FD       = 364 // { int|sys||extattr_set_fd(int fd, int attrnamespace, const char *attrname, const void *data, size_t nbytes); }
+       SYS_EXTATTR_GET_FD       = 365 // { ssize_t|sys||extattr_get_fd(int fd, int attrnamespace, const char *attrname, void *data, size_t nbytes); }
+       SYS_EXTATTR_DELETE_FD    = 366 // { int|sys||extattr_delete_fd(int fd, int attrnamespace, const char *attrname); }
+       SYS_EXTATTR_SET_LINK     = 367 // { int|sys||extattr_set_link(const char *path, int attrnamespace, const char *attrname, const void *data, size_t nbytes); }
+       SYS_EXTATTR_GET_LINK     = 368 // { ssize_t|sys||extattr_get_link(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }
+       SYS_EXTATTR_DELETE_LINK  = 369 // { int|sys||extattr_delete_link(const char *path, int attrnamespace, const char *attrname); }
+       SYS_EXTATTR_LIST_FD      = 370 // { ssize_t|sys||extattr_list_fd(int fd, int attrnamespace, void *data, size_t nbytes); }
+       SYS_EXTATTR_LIST_FILE    = 371 // { ssize_t|sys||extattr_list_file(const char *path, int attrnamespace, void *data, size_t nbytes); }
+       SYS_EXTATTR_LIST_LINK    = 372 // { ssize_t|sys||extattr_list_link(const char *path, int attrnamespace, void *data, size_t nbytes); }
+       SYS_SETXATTR             = 375 // { int|sys||setxattr(const char *path, const char *name, const void *value, size_t size, int flags); }
+       SYS_LSETXATTR            = 376 // { int|sys||lsetxattr(const char *path, const char *name, const void *value, size_t size, int flags); }
+       SYS_FSETXATTR            = 377 // { int|sys||fsetxattr(int fd, const char *name, const void *value, size_t size, int flags); }
+       SYS_GETXATTR             = 378 // { int|sys||getxattr(const char *path, const char *name, void *value, size_t size); }
+       SYS_LGETXATTR            = 379 // { int|sys||lgetxattr(const char *path, const char *name, void *value, size_t size); }
+       SYS_FGETXATTR            = 380 // { int|sys||fgetxattr(int fd, const char *name, void *value, size_t size); }
+       SYS_LISTXATTR            = 381 // { int|sys||listxattr(const char *path, char *list, size_t size); }
+       SYS_LLISTXATTR           = 382 // { int|sys||llistxattr(const char *path, char *list, size_t size); }
+       SYS_FLISTXATTR           = 383 // { int|sys||flistxattr(int fd, char *list, size_t size); }
+       SYS_REMOVEXATTR          = 384 // { int|sys||removexattr(const char *path, const char *name); }
+       SYS_LREMOVEXATTR         = 385 // { int|sys||lremovexattr(const char *path, const char *name); }
+       SYS_FREMOVEXATTR         = 386 // { int|sys||fremovexattr(int fd, const char *name); }
+       SYS_GETDENTS             = 390 // { int|sys|30|getdents(int fd, char *buf, size_t count); }
+       SYS_SOCKET               = 394 // { int|sys|30|socket(int domain, int type, int protocol); }
+       SYS_GETFH                = 395 // { int|sys|30|getfh(const char *fname, void *fhp, size_t *fh_size); }
+       SYS_MOUNT                = 410 // { int|sys|50|mount(const char *type, const char *path, int flags, void *data, size_t data_len); }
+       SYS_MREMAP               = 411 // { void *|sys||mremap(void *old_address, size_t old_size, void *new_address, size_t new_size, int flags); }
+       SYS_PSET_CREATE          = 412 // { int|sys||pset_create(psetid_t *psid); }
+       SYS_PSET_DESTROY         = 413 // { int|sys||pset_destroy(psetid_t psid); }
+       SYS_PSET_ASSIGN          = 414 // { int|sys||pset_assign(psetid_t psid, cpuid_t cpuid, psetid_t *opsid); }
+       SYS__PSET_BIND           = 415 // { int|sys||_pset_bind(idtype_t idtype, id_t first_id, id_t second_id, psetid_t psid, psetid_t *opsid); }
+       SYS_POSIX_FADVISE        = 416 // { int|sys|50|posix_fadvise(int fd, int PAD, off_t offset, off_t len, int advice); }
+       SYS_SELECT               = 417 // { int|sys|50|select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); }
+       SYS_GETTIMEOFDAY         = 418 // { int|sys|50|gettimeofday(struct timeval *tp, void *tzp); }
+       SYS_SETTIMEOFDAY         = 419 // { int|sys|50|settimeofday(const struct timeval *tv, const void *tzp); }
+       SYS_UTIMES               = 420 // { int|sys|50|utimes(const char *path, const struct timeval *tptr); }
+       SYS_ADJTIME              = 421 // { int|sys|50|adjtime(const struct timeval *delta, struct timeval *olddelta); }
+       SYS_FUTIMES              = 423 // { int|sys|50|futimes(int fd, const struct timeval *tptr); }
+       SYS_LUTIMES              = 424 // { int|sys|50|lutimes(const char *path, const struct timeval *tptr); }
+       SYS_SETITIMER            = 425 // { int|sys|50|setitimer(int which, const struct itimerval *itv, struct itimerval *oitv); }
+       SYS_GETITIMER            = 426 // { int|sys|50|getitimer(int which, struct itimerval *itv); }
+       SYS_CLOCK_GETTIME        = 427 // { int|sys|50|clock_gettime(clockid_t clock_id, struct timespec *tp); }
+       SYS_CLOCK_SETTIME        = 428 // { int|sys|50|clock_settime(clockid_t clock_id, const struct timespec *tp); }
+       SYS_CLOCK_GETRES         = 429 // { int|sys|50|clock_getres(clockid_t clock_id, struct timespec *tp); }
+       SYS_NANOSLEEP            = 430 // { int|sys|50|nanosleep(const struct timespec *rqtp, struct timespec *rmtp); }
+       SYS___SIGTIMEDWAIT       = 431 // { int|sys|50|__sigtimedwait(const sigset_t *set, siginfo_t *info, struct timespec *timeout); }
+       SYS__LWP_PARK            = 434 // { int|sys|50|_lwp_park(const struct timespec *ts, lwpid_t unpark, const void *hint, const void *unparkhint); }
+       SYS_KEVENT               = 435 // { int|sys|50|kevent(int fd, const struct kevent *changelist, size_t nchanges, struct kevent *eventlist, size_t nevents, const struct timespec *timeout); }
+       SYS_PSELECT              = 436 // { int|sys|50|pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *mask); }
+       SYS_POLLTS               = 437 // { int|sys|50|pollts(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *mask); }
+       SYS_STAT                 = 439 // { int|sys|50|stat(const char *path, struct stat *ub); }
+       SYS_FSTAT                = 440 // { int|sys|50|fstat(int fd, struct stat *sb); }
+       SYS_LSTAT                = 441 // { int|sys|50|lstat(const char *path, struct stat *ub); }
+       SYS___SEMCTL             = 442 // { int|sys|50|__semctl(int semid, int semnum, int cmd, ... union __semun *arg); }
+       SYS_SHMCTL               = 443 // { int|sys|50|shmctl(int shmid, int cmd, struct shmid_ds *buf); }
+       SYS_MSGCTL               = 444 // { int|sys|50|msgctl(int msqid, int cmd, struct msqid_ds *buf); }
+       SYS_GETRUSAGE            = 445 // { int|sys|50|getrusage(int who, struct rusage *rusage); }
+       SYS_TIMER_SETTIME        = 446 // { int|sys|50|timer_settime(timer_t timerid, int flags, const struct itimerspec *value, struct itimerspec *ovalue); }
+       SYS_TIMER_GETTIME        = 447 // { int|sys|50|timer_gettime(timer_t timerid, struct itimerspec *value); }
+       SYS_NTP_GETTIME          = 448 // { int|sys|50|ntp_gettime(struct ntptimeval *ntvp); }
+       SYS_WAIT4                = 449 // { int|sys|50|wait4(pid_t pid, int *status, int options, struct rusage *rusage); }
+       SYS_MKNOD                = 450 // { int|sys|50|mknod(const char *path, mode_t mode, dev_t dev); }
+       SYS_FHSTAT               = 451 // { int|sys|50|fhstat(const void *fhp, size_t fh_size, struct stat *sb); }
+       SYS_PIPE2                = 453 // { int|sys||pipe2(int *fildes, int flags); }
+       SYS_DUP3                 = 454 // { int|sys||dup3(int from, int to, int flags); }
+       SYS_KQUEUE1              = 455 // { int|sys||kqueue1(int flags); }
+       SYS_PACCEPT              = 456 // { int|sys||paccept(int s, struct sockaddr *name, socklen_t *anamelen, const sigset_t *mask, int flags); }
+       SYS_LINKAT               = 457 // { int|sys||linkat(int fd1, const char *name1, int fd2, const char *name2, int flags); }
+       SYS_RENAMEAT             = 458 // { int|sys||renameat(int fromfd, const char *from, int tofd, const char *to); }
+       SYS_MKFIFOAT             = 459 // { int|sys||mkfifoat(int fd, const char *path, mode_t mode); }
+       SYS_MKNODAT              = 460 // { int|sys||mknodat(int fd, const char *path, mode_t mode, uint32_t dev); }
+       SYS_MKDIRAT              = 461 // { int|sys||mkdirat(int fd, const char *path, mode_t mode); }
+       SYS_FACCESSAT            = 462 // { int|sys||faccessat(int fd, const char *path, int amode, int flag); }
+       SYS_FCHMODAT             = 463 // { int|sys||fchmodat(int fd, const char *path, mode_t mode, int flag); }
+       SYS_FCHOWNAT             = 464 // { int|sys||fchownat(int fd, const char *path, uid_t owner, gid_t group, int flag); }
+       SYS_FEXECVE              = 465 // { int|sys||fexecve(int fd, char * const *argp, char * const *envp); }
+       SYS_FSTATAT              = 466 // { int|sys||fstatat(int fd, const char *path, struct stat *buf, int flag); }
+       SYS_UTIMENSAT            = 467 // { int|sys||utimensat(int fd, const char *path, const struct timespec *tptr, int flag); }
+       SYS_OPENAT               = 468 // { int|sys||openat(int fd, const char *path, int oflags, ... mode_t mode); }
+       SYS_READLINKAT           = 469 // { int|sys||readlinkat(int fd, const char *path, char *buf, size_t bufsize); }
+       SYS_SYMLINKAT            = 470 // { int|sys||symlinkat(const char *path1, int fd, const char *path2); }
+       SYS_UNLINKAT             = 471 // { int|sys||unlinkat(int fd, const char *path, int flag); }
+       SYS_FUTIMENS             = 472 // { int|sys||futimens(int fd, const struct timespec *tptr); }
+       SYS___QUOTACTL           = 473 // { int|sys||__quotactl(const char *path, struct quotactl_args *args); }
+       SYS_POSIX_SPAWN          = 474 // { int|sys||posix_spawn(pid_t *pid, const char *path, const struct posix_spawn_file_actions *file_actions, const struct posix_spawnattr *attrp, char *const *argv, char *const *envp); }
+       SYS_RECVMMSG             = 475 // { int|sys||recvmmsg(int s, struct mmsghdr *mmsg, unsigned int vlen, unsigned int flags, struct timespec *timeout); }
+       SYS_SENDMMSG             = 476 // { int|sys||sendmmsg(int s, struct mmsghdr *mmsg, unsigned int vlen, unsigned int flags); }
+)
diff --git a/vendor/golang.org/x/sys/unix/zsysnum_netbsd_arm.go b/vendor/golang.org/x/sys/unix/zsysnum_netbsd_arm.go
new file mode 100644 (file)
index 0000000..c6158a7
--- /dev/null
@@ -0,0 +1,274 @@
+// mksysnum_netbsd.pl
+// MACHINE GENERATED BY THE ABOVE COMMAND; DO NOT EDIT
+
+// +build arm,netbsd
+
+package unix
+
+const (
+       SYS_EXIT                 = 1   // { void|sys||exit(int rval); }
+       SYS_FORK                 = 2   // { int|sys||fork(void); }
+       SYS_READ                 = 3   // { ssize_t|sys||read(int fd, void *buf, size_t nbyte); }
+       SYS_WRITE                = 4   // { ssize_t|sys||write(int fd, const void *buf, size_t nbyte); }
+       SYS_OPEN                 = 5   // { int|sys||open(const char *path, int flags, ... mode_t mode); }
+       SYS_CLOSE                = 6   // { int|sys||close(int fd); }
+       SYS_LINK                 = 9   // { int|sys||link(const char *path, const char *link); }
+       SYS_UNLINK               = 10  // { int|sys||unlink(const char *path); }
+       SYS_CHDIR                = 12  // { int|sys||chdir(const char *path); }
+       SYS_FCHDIR               = 13  // { int|sys||fchdir(int fd); }
+       SYS_CHMOD                = 15  // { int|sys||chmod(const char *path, mode_t mode); }
+       SYS_CHOWN                = 16  // { int|sys||chown(const char *path, uid_t uid, gid_t gid); }
+       SYS_BREAK                = 17  // { int|sys||obreak(char *nsize); }
+       SYS_GETPID               = 20  // { pid_t|sys||getpid_with_ppid(void); }
+       SYS_UNMOUNT              = 22  // { int|sys||unmount(const char *path, int flags); }
+       SYS_SETUID               = 23  // { int|sys||setuid(uid_t uid); }
+       SYS_GETUID               = 24  // { uid_t|sys||getuid_with_euid(void); }
+       SYS_GETEUID              = 25  // { uid_t|sys||geteuid(void); }
+       SYS_PTRACE               = 26  // { int|sys||ptrace(int req, pid_t pid, void *addr, int data); }
+       SYS_RECVMSG              = 27  // { ssize_t|sys||recvmsg(int s, struct msghdr *msg, int flags); }
+       SYS_SENDMSG              = 28  // { ssize_t|sys||sendmsg(int s, const struct msghdr *msg, int flags); }
+       SYS_RECVFROM             = 29  // { ssize_t|sys||recvfrom(int s, void *buf, size_t len, int flags, struct sockaddr *from, socklen_t *fromlenaddr); }
+       SYS_ACCEPT               = 30  // { int|sys||accept(int s, struct sockaddr *name, socklen_t *anamelen); }
+       SYS_GETPEERNAME          = 31  // { int|sys||getpeername(int fdes, struct sockaddr *asa, socklen_t *alen); }
+       SYS_GETSOCKNAME          = 32  // { int|sys||getsockname(int fdes, struct sockaddr *asa, socklen_t *alen); }
+       SYS_ACCESS               = 33  // { int|sys||access(const char *path, int flags); }
+       SYS_CHFLAGS              = 34  // { int|sys||chflags(const char *path, u_long flags); }
+       SYS_FCHFLAGS             = 35  // { int|sys||fchflags(int fd, u_long flags); }
+       SYS_SYNC                 = 36  // { void|sys||sync(void); }
+       SYS_KILL                 = 37  // { int|sys||kill(pid_t pid, int signum); }
+       SYS_GETPPID              = 39  // { pid_t|sys||getppid(void); }
+       SYS_DUP                  = 41  // { int|sys||dup(int fd); }
+       SYS_PIPE                 = 42  // { int|sys||pipe(void); }
+       SYS_GETEGID              = 43  // { gid_t|sys||getegid(void); }
+       SYS_PROFIL               = 44  // { int|sys||profil(char *samples, size_t size, u_long offset, u_int scale); }
+       SYS_KTRACE               = 45  // { int|sys||ktrace(const char *fname, int ops, int facs, pid_t pid); }
+       SYS_GETGID               = 47  // { gid_t|sys||getgid_with_egid(void); }
+       SYS___GETLOGIN           = 49  // { int|sys||__getlogin(char *namebuf, size_t namelen); }
+       SYS___SETLOGIN           = 50  // { int|sys||__setlogin(const char *namebuf); }
+       SYS_ACCT                 = 51  // { int|sys||acct(const char *path); }
+       SYS_IOCTL                = 54  // { int|sys||ioctl(int fd, u_long com, ... void *data); }
+       SYS_REVOKE               = 56  // { int|sys||revoke(const char *path); }
+       SYS_SYMLINK              = 57  // { int|sys||symlink(const char *path, const char *link); }
+       SYS_READLINK             = 58  // { ssize_t|sys||readlink(const char *path, char *buf, size_t count); }
+       SYS_EXECVE               = 59  // { int|sys||execve(const char *path, char * const *argp, char * const *envp); }
+       SYS_UMASK                = 60  // { mode_t|sys||umask(mode_t newmask); }
+       SYS_CHROOT               = 61  // { int|sys||chroot(const char *path); }
+       SYS_VFORK                = 66  // { int|sys||vfork(void); }
+       SYS_SBRK                 = 69  // { int|sys||sbrk(intptr_t incr); }
+       SYS_SSTK                 = 70  // { int|sys||sstk(int incr); }
+       SYS_VADVISE              = 72  // { int|sys||ovadvise(int anom); }
+       SYS_MUNMAP               = 73  // { int|sys||munmap(void *addr, size_t len); }
+       SYS_MPROTECT             = 74  // { int|sys||mprotect(void *addr, size_t len, int prot); }
+       SYS_MADVISE              = 75  // { int|sys||madvise(void *addr, size_t len, int behav); }
+       SYS_MINCORE              = 78  // { int|sys||mincore(void *addr, size_t len, char *vec); }
+       SYS_GETGROUPS            = 79  // { int|sys||getgroups(int gidsetsize, gid_t *gidset); }
+       SYS_SETGROUPS            = 80  // { int|sys||setgroups(int gidsetsize, const gid_t *gidset); }
+       SYS_GETPGRP              = 81  // { int|sys||getpgrp(void); }
+       SYS_SETPGID              = 82  // { int|sys||setpgid(pid_t pid, pid_t pgid); }
+       SYS_DUP2                 = 90  // { int|sys||dup2(int from, int to); }
+       SYS_FCNTL                = 92  // { int|sys||fcntl(int fd, int cmd, ... void *arg); }
+       SYS_FSYNC                = 95  // { int|sys||fsync(int fd); }
+       SYS_SETPRIORITY          = 96  // { int|sys||setpriority(int which, id_t who, int prio); }
+       SYS_CONNECT              = 98  // { int|sys||connect(int s, const struct sockaddr *name, socklen_t namelen); }
+       SYS_GETPRIORITY          = 100 // { int|sys||getpriority(int which, id_t who); }
+       SYS_BIND                 = 104 // { int|sys||bind(int s, const struct sockaddr *name, socklen_t namelen); }
+       SYS_SETSOCKOPT           = 105 // { int|sys||setsockopt(int s, int level, int name, const void *val, socklen_t valsize); }
+       SYS_LISTEN               = 106 // { int|sys||listen(int s, int backlog); }
+       SYS_GETSOCKOPT           = 118 // { int|sys||getsockopt(int s, int level, int name, void *val, socklen_t *avalsize); }
+       SYS_READV                = 120 // { ssize_t|sys||readv(int fd, const struct iovec *iovp, int iovcnt); }
+       SYS_WRITEV               = 121 // { ssize_t|sys||writev(int fd, const struct iovec *iovp, int iovcnt); }
+       SYS_FCHOWN               = 123 // { int|sys||fchown(int fd, uid_t uid, gid_t gid); }
+       SYS_FCHMOD               = 124 // { int|sys||fchmod(int fd, mode_t mode); }
+       SYS_SETREUID             = 126 // { int|sys||setreuid(uid_t ruid, uid_t euid); }
+       SYS_SETREGID             = 127 // { int|sys||setregid(gid_t rgid, gid_t egid); }
+       SYS_RENAME               = 128 // { int|sys||rename(const char *from, const char *to); }
+       SYS_FLOCK                = 131 // { int|sys||flock(int fd, int how); }
+       SYS_MKFIFO               = 132 // { int|sys||mkfifo(const char *path, mode_t mode); }
+       SYS_SENDTO               = 133 // { ssize_t|sys||sendto(int s, const void *buf, size_t len, int flags, const struct sockaddr *to, socklen_t tolen); }
+       SYS_SHUTDOWN             = 134 // { int|sys||shutdown(int s, int how); }
+       SYS_SOCKETPAIR           = 135 // { int|sys||socketpair(int domain, int type, int protocol, int *rsv); }
+       SYS_MKDIR                = 136 // { int|sys||mkdir(const char *path, mode_t mode); }
+       SYS_RMDIR                = 137 // { int|sys||rmdir(const char *path); }
+       SYS_SETSID               = 147 // { int|sys||setsid(void); }
+       SYS_SYSARCH              = 165 // { int|sys||sysarch(int op, void *parms); }
+       SYS_PREAD                = 173 // { ssize_t|sys||pread(int fd, void *buf, size_t nbyte, int PAD, off_t offset); }
+       SYS_PWRITE               = 174 // { ssize_t|sys||pwrite(int fd, const void *buf, size_t nbyte, int PAD, off_t offset); }
+       SYS_NTP_ADJTIME          = 176 // { int|sys||ntp_adjtime(struct timex *tp); }
+       SYS_SETGID               = 181 // { int|sys||setgid(gid_t gid); }
+       SYS_SETEGID              = 182 // { int|sys||setegid(gid_t egid); }
+       SYS_SETEUID              = 183 // { int|sys||seteuid(uid_t euid); }
+       SYS_PATHCONF             = 191 // { long|sys||pathconf(const char *path, int name); }
+       SYS_FPATHCONF            = 192 // { long|sys||fpathconf(int fd, int name); }
+       SYS_GETRLIMIT            = 194 // { int|sys||getrlimit(int which, struct rlimit *rlp); }
+       SYS_SETRLIMIT            = 195 // { int|sys||setrlimit(int which, const struct rlimit *rlp); }
+       SYS_MMAP                 = 197 // { void *|sys||mmap(void *addr, size_t len, int prot, int flags, int fd, long PAD, off_t pos); }
+       SYS_LSEEK                = 199 // { off_t|sys||lseek(int fd, int PAD, off_t offset, int whence); }
+       SYS_TRUNCATE             = 200 // { int|sys||truncate(const char *path, int PAD, off_t length); }
+       SYS_FTRUNCATE            = 201 // { int|sys||ftruncate(int fd, int PAD, off_t length); }
+       SYS___SYSCTL             = 202 // { int|sys||__sysctl(const int *name, u_int namelen, void *old, size_t *oldlenp, const void *new, size_t newlen); }
+       SYS_MLOCK                = 203 // { int|sys||mlock(const void *addr, size_t len); }
+       SYS_MUNLOCK              = 204 // { int|sys||munlock(const void *addr, size_t len); }
+       SYS_UNDELETE             = 205 // { int|sys||undelete(const char *path); }
+       SYS_GETPGID              = 207 // { pid_t|sys||getpgid(pid_t pid); }
+       SYS_REBOOT               = 208 // { int|sys||reboot(int opt, char *bootstr); }
+       SYS_POLL                 = 209 // { int|sys||poll(struct pollfd *fds, u_int nfds, int timeout); }
+       SYS_SEMGET               = 221 // { int|sys||semget(key_t key, int nsems, int semflg); }
+       SYS_SEMOP                = 222 // { int|sys||semop(int semid, struct sembuf *sops, size_t nsops); }
+       SYS_SEMCONFIG            = 223 // { int|sys||semconfig(int flag); }
+       SYS_MSGGET               = 225 // { int|sys||msgget(key_t key, int msgflg); }
+       SYS_MSGSND               = 226 // { int|sys||msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); }
+       SYS_MSGRCV               = 227 // { ssize_t|sys||msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg); }
+       SYS_SHMAT                = 228 // { void *|sys||shmat(int shmid, const void *shmaddr, int shmflg); }
+       SYS_SHMDT                = 230 // { int|sys||shmdt(const void *shmaddr); }
+       SYS_SHMGET               = 231 // { int|sys||shmget(key_t key, size_t size, int shmflg); }
+       SYS_TIMER_CREATE         = 235 // { int|sys||timer_create(clockid_t clock_id, struct sigevent *evp, timer_t *timerid); }
+       SYS_TIMER_DELETE         = 236 // { int|sys||timer_delete(timer_t timerid); }
+       SYS_TIMER_GETOVERRUN     = 239 // { int|sys||timer_getoverrun(timer_t timerid); }
+       SYS_FDATASYNC            = 241 // { int|sys||fdatasync(int fd); }
+       SYS_MLOCKALL             = 242 // { int|sys||mlockall(int flags); }
+       SYS_MUNLOCKALL           = 243 // { int|sys||munlockall(void); }
+       SYS_SIGQUEUEINFO         = 245 // { int|sys||sigqueueinfo(pid_t pid, const siginfo_t *info); }
+       SYS_MODCTL               = 246 // { int|sys||modctl(int cmd, void *arg); }
+       SYS___POSIX_RENAME       = 270 // { int|sys||__posix_rename(const char *from, const char *to); }
+       SYS_SWAPCTL              = 271 // { int|sys||swapctl(int cmd, void *arg, int misc); }
+       SYS_MINHERIT             = 273 // { int|sys||minherit(void *addr, size_t len, int inherit); }
+       SYS_LCHMOD               = 274 // { int|sys||lchmod(const char *path, mode_t mode); }
+       SYS_LCHOWN               = 275 // { int|sys||lchown(const char *path, uid_t uid, gid_t gid); }
+       SYS_MSYNC                = 277 // { int|sys|13|msync(void *addr, size_t len, int flags); }
+       SYS___POSIX_CHOWN        = 283 // { int|sys||__posix_chown(const char *path, uid_t uid, gid_t gid); }
+       SYS___POSIX_FCHOWN       = 284 // { int|sys||__posix_fchown(int fd, uid_t uid, gid_t gid); }
+       SYS___POSIX_LCHOWN       = 285 // { int|sys||__posix_lchown(const char *path, uid_t uid, gid_t gid); }
+       SYS_GETSID               = 286 // { pid_t|sys||getsid(pid_t pid); }
+       SYS___CLONE              = 287 // { pid_t|sys||__clone(int flags, void *stack); }
+       SYS_FKTRACE              = 288 // { int|sys||fktrace(int fd, int ops, int facs, pid_t pid); }
+       SYS_PREADV               = 289 // { ssize_t|sys||preadv(int fd, const struct iovec *iovp, int iovcnt, int PAD, off_t offset); }
+       SYS_PWRITEV              = 290 // { ssize_t|sys||pwritev(int fd, const struct iovec *iovp, int iovcnt, int PAD, off_t offset); }
+       SYS___GETCWD             = 296 // { int|sys||__getcwd(char *bufp, size_t length); }
+       SYS_FCHROOT              = 297 // { int|sys||fchroot(int fd); }
+       SYS_LCHFLAGS             = 304 // { int|sys||lchflags(const char *path, u_long flags); }
+       SYS_ISSETUGID            = 305 // { int|sys||issetugid(void); }
+       SYS_UTRACE               = 306 // { int|sys||utrace(const char *label, void *addr, size_t len); }
+       SYS_GETCONTEXT           = 307 // { int|sys||getcontext(struct __ucontext *ucp); }
+       SYS_SETCONTEXT           = 308 // { int|sys||setcontext(const struct __ucontext *ucp); }
+       SYS__LWP_CREATE          = 309 // { int|sys||_lwp_create(const struct __ucontext *ucp, u_long flags, lwpid_t *new_lwp); }
+       SYS__LWP_EXIT            = 310 // { int|sys||_lwp_exit(void); }
+       SYS__LWP_SELF            = 311 // { lwpid_t|sys||_lwp_self(void); }
+       SYS__LWP_WAIT            = 312 // { int|sys||_lwp_wait(lwpid_t wait_for, lwpid_t *departed); }
+       SYS__LWP_SUSPEND         = 313 // { int|sys||_lwp_suspend(lwpid_t target); }
+       SYS__LWP_CONTINUE        = 314 // { int|sys||_lwp_continue(lwpid_t target); }
+       SYS__LWP_WAKEUP          = 315 // { int|sys||_lwp_wakeup(lwpid_t target); }
+       SYS__LWP_GETPRIVATE      = 316 // { void *|sys||_lwp_getprivate(void); }
+       SYS__LWP_SETPRIVATE      = 317 // { void|sys||_lwp_setprivate(void *ptr); }
+       SYS__LWP_KILL            = 318 // { int|sys||_lwp_kill(lwpid_t target, int signo); }
+       SYS__LWP_DETACH          = 319 // { int|sys||_lwp_detach(lwpid_t target); }
+       SYS__LWP_UNPARK          = 321 // { int|sys||_lwp_unpark(lwpid_t target, const void *hint); }
+       SYS__LWP_UNPARK_ALL      = 322 // { ssize_t|sys||_lwp_unpark_all(const lwpid_t *targets, size_t ntargets, const void *hint); }
+       SYS__LWP_SETNAME         = 323 // { int|sys||_lwp_setname(lwpid_t target, const char *name); }
+       SYS__LWP_GETNAME         = 324 // { int|sys||_lwp_getname(lwpid_t target, char *name, size_t len); }
+       SYS__LWP_CTL             = 325 // { int|sys||_lwp_ctl(int features, struct lwpctl **address); }
+       SYS___SIGACTION_SIGTRAMP = 340 // { int|sys||__sigaction_sigtramp(int signum, const struct sigaction *nsa, struct sigaction *osa, const void *tramp, int vers); }
+       SYS_PMC_GET_INFO         = 341 // { int|sys||pmc_get_info(int ctr, int op, void *args); }
+       SYS_PMC_CONTROL          = 342 // { int|sys||pmc_control(int ctr, int op, void *args); }
+       SYS_RASCTL               = 343 // { int|sys||rasctl(void *addr, size_t len, int op); }
+       SYS_KQUEUE               = 344 // { int|sys||kqueue(void); }
+       SYS__SCHED_SETPARAM      = 346 // { int|sys||_sched_setparam(pid_t pid, lwpid_t lid, int policy, const struct sched_param *params); }
+       SYS__SCHED_GETPARAM      = 347 // { int|sys||_sched_getparam(pid_t pid, lwpid_t lid, int *policy, struct sched_param *params); }
+       SYS__SCHED_SETAFFINITY   = 348 // { int|sys||_sched_setaffinity(pid_t pid, lwpid_t lid, size_t size, const cpuset_t *cpuset); }
+       SYS__SCHED_GETAFFINITY   = 349 // { int|sys||_sched_getaffinity(pid_t pid, lwpid_t lid, size_t size, cpuset_t *cpuset); }
+       SYS_SCHED_YIELD          = 350 // { int|sys||sched_yield(void); }
+       SYS_FSYNC_RANGE          = 354 // { int|sys||fsync_range(int fd, int flags, off_t start, off_t length); }
+       SYS_UUIDGEN              = 355 // { int|sys||uuidgen(struct uuid *store, int count); }
+       SYS_GETVFSSTAT           = 356 // { int|sys||getvfsstat(struct statvfs *buf, size_t bufsize, int flags); }
+       SYS_STATVFS1             = 357 // { int|sys||statvfs1(const char *path, struct statvfs *buf, int flags); }
+       SYS_FSTATVFS1            = 358 // { int|sys||fstatvfs1(int fd, struct statvfs *buf, int flags); }
+       SYS_EXTATTRCTL           = 360 // { int|sys||extattrctl(const char *path, int cmd, const char *filename, int attrnamespace, const char *attrname); }
+       SYS_EXTATTR_SET_FILE     = 361 // { int|sys||extattr_set_file(const char *path, int attrnamespace, const char *attrname, const void *data, size_t nbytes); }
+       SYS_EXTATTR_GET_FILE     = 362 // { ssize_t|sys||extattr_get_file(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }
+       SYS_EXTATTR_DELETE_FILE  = 363 // { int|sys||extattr_delete_file(const char *path, int attrnamespace, const char *attrname); }
+       SYS_EXTATTR_SET_FD       = 364 // { int|sys||extattr_set_fd(int fd, int attrnamespace, const char *attrname, const void *data, size_t nbytes); }
+       SYS_EXTATTR_GET_FD       = 365 // { ssize_t|sys||extattr_get_fd(int fd, int attrnamespace, const char *attrname, void *data, size_t nbytes); }
+       SYS_EXTATTR_DELETE_FD    = 366 // { int|sys||extattr_delete_fd(int fd, int attrnamespace, const char *attrname); }
+       SYS_EXTATTR_SET_LINK     = 367 // { int|sys||extattr_set_link(const char *path, int attrnamespace, const char *attrname, const void *data, size_t nbytes); }
+       SYS_EXTATTR_GET_LINK     = 368 // { ssize_t|sys||extattr_get_link(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }
+       SYS_EXTATTR_DELETE_LINK  = 369 // { int|sys||extattr_delete_link(const char *path, int attrnamespace, const char *attrname); }
+       SYS_EXTATTR_LIST_FD      = 370 // { ssize_t|sys||extattr_list_fd(int fd, int attrnamespace, void *data, size_t nbytes); }
+       SYS_EXTATTR_LIST_FILE    = 371 // { ssize_t|sys||extattr_list_file(const char *path, int attrnamespace, void *data, size_t nbytes); }
+       SYS_EXTATTR_LIST_LINK    = 372 // { ssize_t|sys||extattr_list_link(const char *path, int attrnamespace, void *data, size_t nbytes); }
+       SYS_SETXATTR             = 375 // { int|sys||setxattr(const char *path, const char *name, const void *value, size_t size, int flags); }
+       SYS_LSETXATTR            = 376 // { int|sys||lsetxattr(const char *path, const char *name, const void *value, size_t size, int flags); }
+       SYS_FSETXATTR            = 377 // { int|sys||fsetxattr(int fd, const char *name, const void *value, size_t size, int flags); }
+       SYS_GETXATTR             = 378 // { int|sys||getxattr(const char *path, const char *name, void *value, size_t size); }
+       SYS_LGETXATTR            = 379 // { int|sys||lgetxattr(const char *path, const char *name, void *value, size_t size); }
+       SYS_FGETXATTR            = 380 // { int|sys||fgetxattr(int fd, const char *name, void *value, size_t size); }
+       SYS_LISTXATTR            = 381 // { int|sys||listxattr(const char *path, char *list, size_t size); }
+       SYS_LLISTXATTR           = 382 // { int|sys||llistxattr(const char *path, char *list, size_t size); }
+       SYS_FLISTXATTR           = 383 // { int|sys||flistxattr(int fd, char *list, size_t size); }
+       SYS_REMOVEXATTR          = 384 // { int|sys||removexattr(const char *path, const char *name); }
+       SYS_LREMOVEXATTR         = 385 // { int|sys||lremovexattr(const char *path, const char *name); }
+       SYS_FREMOVEXATTR         = 386 // { int|sys||fremovexattr(int fd, const char *name); }
+       SYS_GETDENTS             = 390 // { int|sys|30|getdents(int fd, char *buf, size_t count); }
+       SYS_SOCKET               = 394 // { int|sys|30|socket(int domain, int type, int protocol); }
+       SYS_GETFH                = 395 // { int|sys|30|getfh(const char *fname, void *fhp, size_t *fh_size); }
+       SYS_MOUNT                = 410 // { int|sys|50|mount(const char *type, const char *path, int flags, void *data, size_t data_len); }
+       SYS_MREMAP               = 411 // { void *|sys||mremap(void *old_address, size_t old_size, void *new_address, size_t new_size, int flags); }
+       SYS_PSET_CREATE          = 412 // { int|sys||pset_create(psetid_t *psid); }
+       SYS_PSET_DESTROY         = 413 // { int|sys||pset_destroy(psetid_t psid); }
+       SYS_PSET_ASSIGN          = 414 // { int|sys||pset_assign(psetid_t psid, cpuid_t cpuid, psetid_t *opsid); }
+       SYS__PSET_BIND           = 415 // { int|sys||_pset_bind(idtype_t idtype, id_t first_id, id_t second_id, psetid_t psid, psetid_t *opsid); }
+       SYS_POSIX_FADVISE        = 416 // { int|sys|50|posix_fadvise(int fd, int PAD, off_t offset, off_t len, int advice); }
+       SYS_SELECT               = 417 // { int|sys|50|select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); }
+       SYS_GETTIMEOFDAY         = 418 // { int|sys|50|gettimeofday(struct timeval *tp, void *tzp); }
+       SYS_SETTIMEOFDAY         = 419 // { int|sys|50|settimeofday(const struct timeval *tv, const void *tzp); }
+       SYS_UTIMES               = 420 // { int|sys|50|utimes(const char *path, const struct timeval *tptr); }
+       SYS_ADJTIME              = 421 // { int|sys|50|adjtime(const struct timeval *delta, struct timeval *olddelta); }
+       SYS_FUTIMES              = 423 // { int|sys|50|futimes(int fd, const struct timeval *tptr); }
+       SYS_LUTIMES              = 424 // { int|sys|50|lutimes(const char *path, const struct timeval *tptr); }
+       SYS_SETITIMER            = 425 // { int|sys|50|setitimer(int which, const struct itimerval *itv, struct itimerval *oitv); }
+       SYS_GETITIMER            = 426 // { int|sys|50|getitimer(int which, struct itimerval *itv); }
+       SYS_CLOCK_GETTIME        = 427 // { int|sys|50|clock_gettime(clockid_t clock_id, struct timespec *tp); }
+       SYS_CLOCK_SETTIME        = 428 // { int|sys|50|clock_settime(clockid_t clock_id, const struct timespec *tp); }
+       SYS_CLOCK_GETRES         = 429 // { int|sys|50|clock_getres(clockid_t clock_id, struct timespec *tp); }
+       SYS_NANOSLEEP            = 430 // { int|sys|50|nanosleep(const struct timespec *rqtp, struct timespec *rmtp); }
+       SYS___SIGTIMEDWAIT       = 431 // { int|sys|50|__sigtimedwait(const sigset_t *set, siginfo_t *info, struct timespec *timeout); }
+       SYS__LWP_PARK            = 434 // { int|sys|50|_lwp_park(const struct timespec *ts, lwpid_t unpark, const void *hint, const void *unparkhint); }
+       SYS_KEVENT               = 435 // { int|sys|50|kevent(int fd, const struct kevent *changelist, size_t nchanges, struct kevent *eventlist, size_t nevents, const struct timespec *timeout); }
+       SYS_PSELECT              = 436 // { int|sys|50|pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *mask); }
+       SYS_POLLTS               = 437 // { int|sys|50|pollts(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *mask); }
+       SYS_STAT                 = 439 // { int|sys|50|stat(const char *path, struct stat *ub); }
+       SYS_FSTAT                = 440 // { int|sys|50|fstat(int fd, struct stat *sb); }
+       SYS_LSTAT                = 441 // { int|sys|50|lstat(const char *path, struct stat *ub); }
+       SYS___SEMCTL             = 442 // { int|sys|50|__semctl(int semid, int semnum, int cmd, ... union __semun *arg); }
+       SYS_SHMCTL               = 443 // { int|sys|50|shmctl(int shmid, int cmd, struct shmid_ds *buf); }
+       SYS_MSGCTL               = 444 // { int|sys|50|msgctl(int msqid, int cmd, struct msqid_ds *buf); }
+       SYS_GETRUSAGE            = 445 // { int|sys|50|getrusage(int who, struct rusage *rusage); }
+       SYS_TIMER_SETTIME        = 446 // { int|sys|50|timer_settime(timer_t timerid, int flags, const struct itimerspec *value, struct itimerspec *ovalue); }
+       SYS_TIMER_GETTIME        = 447 // { int|sys|50|timer_gettime(timer_t timerid, struct itimerspec *value); }
+       SYS_NTP_GETTIME          = 448 // { int|sys|50|ntp_gettime(struct ntptimeval *ntvp); }
+       SYS_WAIT4                = 449 // { int|sys|50|wait4(pid_t pid, int *status, int options, struct rusage *rusage); }
+       SYS_MKNOD                = 450 // { int|sys|50|mknod(const char *path, mode_t mode, dev_t dev); }
+       SYS_FHSTAT               = 451 // { int|sys|50|fhstat(const void *fhp, size_t fh_size, struct stat *sb); }
+       SYS_PIPE2                = 453 // { int|sys||pipe2(int *fildes, int flags); }
+       SYS_DUP3                 = 454 // { int|sys||dup3(int from, int to, int flags); }
+       SYS_KQUEUE1              = 455 // { int|sys||kqueue1(int flags); }
+       SYS_PACCEPT              = 456 // { int|sys||paccept(int s, struct sockaddr *name, socklen_t *anamelen, const sigset_t *mask, int flags); }
+       SYS_LINKAT               = 457 // { int|sys||linkat(int fd1, const char *name1, int fd2, const char *name2, int flags); }
+       SYS_RENAMEAT             = 458 // { int|sys||renameat(int fromfd, const char *from, int tofd, const char *to); }
+       SYS_MKFIFOAT             = 459 // { int|sys||mkfifoat(int fd, const char *path, mode_t mode); }
+       SYS_MKNODAT              = 460 // { int|sys||mknodat(int fd, const char *path, mode_t mode, uint32_t dev); }
+       SYS_MKDIRAT              = 461 // { int|sys||mkdirat(int fd, const char *path, mode_t mode); }
+       SYS_FACCESSAT            = 462 // { int|sys||faccessat(int fd, const char *path, int amode, int flag); }
+       SYS_FCHMODAT             = 463 // { int|sys||fchmodat(int fd, const char *path, mode_t mode, int flag); }
+       SYS_FCHOWNAT             = 464 // { int|sys||fchownat(int fd, const char *path, uid_t owner, gid_t group, int flag); }
+       SYS_FEXECVE              = 465 // { int|sys||fexecve(int fd, char * const *argp, char * const *envp); }
+       SYS_FSTATAT              = 466 // { int|sys||fstatat(int fd, const char *path, struct stat *buf, int flag); }
+       SYS_UTIMENSAT            = 467 // { int|sys||utimensat(int fd, const char *path, const struct timespec *tptr, int flag); }
+       SYS_OPENAT               = 468 // { int|sys||openat(int fd, const char *path, int oflags, ... mode_t mode); }
+       SYS_READLINKAT           = 469 // { int|sys||readlinkat(int fd, const char *path, char *buf, size_t bufsize); }
+       SYS_SYMLINKAT            = 470 // { int|sys||symlinkat(const char *path1, int fd, const char *path2); }
+       SYS_UNLINKAT             = 471 // { int|sys||unlinkat(int fd, const char *path, int flag); }
+       SYS_FUTIMENS             = 472 // { int|sys||futimens(int fd, const struct timespec *tptr); }
+       SYS___QUOTACTL           = 473 // { int|sys||__quotactl(const char *path, struct quotactl_args *args); }
+       SYS_POSIX_SPAWN          = 474 // { int|sys||posix_spawn(pid_t *pid, const char *path, const struct posix_spawn_file_actions *file_actions, const struct posix_spawnattr *attrp, char *const *argv, char *const *envp); }
+       SYS_RECVMMSG             = 475 // { int|sys||recvmmsg(int s, struct mmsghdr *mmsg, unsigned int vlen, unsigned int flags, struct timespec *timeout); }
+       SYS_SENDMMSG             = 476 // { int|sys||sendmmsg(int s, struct mmsghdr *mmsg, unsigned int vlen, unsigned int flags); }
+)
diff --git a/vendor/golang.org/x/sys/unix/zsysnum_openbsd_386.go b/vendor/golang.org/x/sys/unix/zsysnum_openbsd_386.go
new file mode 100644 (file)
index 0000000..3e8ce2a
--- /dev/null
@@ -0,0 +1,207 @@
+// mksysnum_openbsd.pl
+// MACHINE GENERATED BY THE ABOVE COMMAND; DO NOT EDIT
+
+// +build 386,openbsd
+
+package unix
+
+const (
+       SYS_EXIT           = 1   // { void sys_exit(int rval); }
+       SYS_FORK           = 2   // { int sys_fork(void); }
+       SYS_READ           = 3   // { ssize_t sys_read(int fd, void *buf, size_t nbyte); }
+       SYS_WRITE          = 4   // { ssize_t sys_write(int fd, const void *buf, \
+       SYS_OPEN           = 5   // { int sys_open(const char *path, \
+       SYS_CLOSE          = 6   // { int sys_close(int fd); }
+       SYS___TFORK        = 8   // { int sys___tfork(const struct __tfork *param, \
+       SYS_LINK           = 9   // { int sys_link(const char *path, const char *link); }
+       SYS_UNLINK         = 10  // { int sys_unlink(const char *path); }
+       SYS_WAIT4          = 11  // { pid_t sys_wait4(pid_t pid, int *status, \
+       SYS_CHDIR          = 12  // { int sys_chdir(const char *path); }
+       SYS_FCHDIR         = 13  // { int sys_fchdir(int fd); }
+       SYS_MKNOD          = 14  // { int sys_mknod(const char *path, mode_t mode, \
+       SYS_CHMOD          = 15  // { int sys_chmod(const char *path, mode_t mode); }
+       SYS_CHOWN          = 16  // { int sys_chown(const char *path, uid_t uid, \
+       SYS_OBREAK         = 17  // { int sys_obreak(char *nsize); } break
+       SYS_GETDTABLECOUNT = 18  // { int sys_getdtablecount(void); }
+       SYS_GETRUSAGE      = 19  // { int sys_getrusage(int who, \
+       SYS_GETPID         = 20  // { pid_t sys_getpid(void); }
+       SYS_MOUNT          = 21  // { int sys_mount(const char *type, const char *path, \
+       SYS_UNMOUNT        = 22  // { int sys_unmount(const char *path, int flags); }
+       SYS_SETUID         = 23  // { int sys_setuid(uid_t uid); }
+       SYS_GETUID         = 24  // { uid_t sys_getuid(void); }
+       SYS_GETEUID        = 25  // { uid_t sys_geteuid(void); }
+       SYS_PTRACE         = 26  // { int sys_ptrace(int req, pid_t pid, caddr_t addr, \
+       SYS_RECVMSG        = 27  // { ssize_t sys_recvmsg(int s, struct msghdr *msg, \
+       SYS_SENDMSG        = 28  // { ssize_t sys_sendmsg(int s, \
+       SYS_RECVFROM       = 29  // { ssize_t sys_recvfrom(int s, void *buf, size_t len, \
+       SYS_ACCEPT         = 30  // { int sys_accept(int s, struct sockaddr *name, \
+       SYS_GETPEERNAME    = 31  // { int sys_getpeername(int fdes, struct sockaddr *asa, \
+       SYS_GETSOCKNAME    = 32  // { int sys_getsockname(int fdes, struct sockaddr *asa, \
+       SYS_ACCESS         = 33  // { int sys_access(const char *path, int flags); }
+       SYS_CHFLAGS        = 34  // { int sys_chflags(const char *path, u_int flags); }
+       SYS_FCHFLAGS       = 35  // { int sys_fchflags(int fd, u_int flags); }
+       SYS_SYNC           = 36  // { void sys_sync(void); }
+       SYS_KILL           = 37  // { int sys_kill(int pid, int signum); }
+       SYS_STAT           = 38  // { int sys_stat(const char *path, struct stat *ub); }
+       SYS_GETPPID        = 39  // { pid_t sys_getppid(void); }
+       SYS_LSTAT          = 40  // { int sys_lstat(const char *path, struct stat *ub); }
+       SYS_DUP            = 41  // { int sys_dup(int fd); }
+       SYS_FSTATAT        = 42  // { int sys_fstatat(int fd, const char *path, \
+       SYS_GETEGID        = 43  // { gid_t sys_getegid(void); }
+       SYS_PROFIL         = 44  // { int sys_profil(caddr_t samples, size_t size, \
+       SYS_KTRACE         = 45  // { int sys_ktrace(const char *fname, int ops, \
+       SYS_SIGACTION      = 46  // { int sys_sigaction(int signum, \
+       SYS_GETGID         = 47  // { gid_t sys_getgid(void); }
+       SYS_SIGPROCMASK    = 48  // { int sys_sigprocmask(int how, sigset_t mask); }
+       SYS_GETLOGIN       = 49  // { int sys_getlogin(char *namebuf, u_int namelen); }
+       SYS_SETLOGIN       = 50  // { int sys_setlogin(const char *namebuf); }
+       SYS_ACCT           = 51  // { int sys_acct(const char *path); }
+       SYS_SIGPENDING     = 52  // { int sys_sigpending(void); }
+       SYS_FSTAT          = 53  // { int sys_fstat(int fd, struct stat *sb); }
+       SYS_IOCTL          = 54  // { int sys_ioctl(int fd, \
+       SYS_REBOOT         = 55  // { int sys_reboot(int opt); }
+       SYS_REVOKE         = 56  // { int sys_revoke(const char *path); }
+       SYS_SYMLINK        = 57  // { int sys_symlink(const char *path, \
+       SYS_READLINK       = 58  // { int sys_readlink(const char *path, char *buf, \
+       SYS_EXECVE         = 59  // { int sys_execve(const char *path, \
+       SYS_UMASK          = 60  // { mode_t sys_umask(mode_t newmask); }
+       SYS_CHROOT         = 61  // { int sys_chroot(const char *path); }
+       SYS_GETFSSTAT      = 62  // { int sys_getfsstat(struct statfs *buf, size_t bufsize, \
+       SYS_STATFS         = 63  // { int sys_statfs(const char *path, \
+       SYS_FSTATFS        = 64  // { int sys_fstatfs(int fd, struct statfs *buf); }
+       SYS_FHSTATFS       = 65  // { int sys_fhstatfs(const fhandle_t *fhp, \
+       SYS_VFORK          = 66  // { int sys_vfork(void); }
+       SYS_GETTIMEOFDAY   = 67  // { int sys_gettimeofday(struct timeval *tp, \
+       SYS_SETTIMEOFDAY   = 68  // { int sys_settimeofday(const struct timeval *tv, \
+       SYS_SETITIMER      = 69  // { int sys_setitimer(int which, \
+       SYS_GETITIMER      = 70  // { int sys_getitimer(int which, \
+       SYS_SELECT         = 71  // { int sys_select(int nd, fd_set *in, fd_set *ou, \
+       SYS_KEVENT         = 72  // { int sys_kevent(int fd, \
+       SYS_MUNMAP         = 73  // { int sys_munmap(void *addr, size_t len); }
+       SYS_MPROTECT       = 74  // { int sys_mprotect(void *addr, size_t len, \
+       SYS_MADVISE        = 75  // { int sys_madvise(void *addr, size_t len, \
+       SYS_UTIMES         = 76  // { int sys_utimes(const char *path, \
+       SYS_FUTIMES        = 77  // { int sys_futimes(int fd, \
+       SYS_MINCORE        = 78  // { int sys_mincore(void *addr, size_t len, \
+       SYS_GETGROUPS      = 79  // { int sys_getgroups(int gidsetsize, \
+       SYS_SETGROUPS      = 80  // { int sys_setgroups(int gidsetsize, \
+       SYS_GETPGRP        = 81  // { int sys_getpgrp(void); }
+       SYS_SETPGID        = 82  // { int sys_setpgid(pid_t pid, int pgid); }
+       SYS_UTIMENSAT      = 84  // { int sys_utimensat(int fd, const char *path, \
+       SYS_FUTIMENS       = 85  // { int sys_futimens(int fd, \
+       SYS_CLOCK_GETTIME  = 87  // { int sys_clock_gettime(clockid_t clock_id, \
+       SYS_CLOCK_SETTIME  = 88  // { int sys_clock_settime(clockid_t clock_id, \
+       SYS_CLOCK_GETRES   = 89  // { int sys_clock_getres(clockid_t clock_id, \
+       SYS_DUP2           = 90  // { int sys_dup2(int from, int to); }
+       SYS_NANOSLEEP      = 91  // { int sys_nanosleep(const struct timespec *rqtp, \
+       SYS_FCNTL          = 92  // { int sys_fcntl(int fd, int cmd, ... void *arg); }
+       SYS___THRSLEEP     = 94  // { int sys___thrsleep(const volatile void *ident, \
+       SYS_FSYNC          = 95  // { int sys_fsync(int fd); }
+       SYS_SETPRIORITY    = 96  // { int sys_setpriority(int which, id_t who, int prio); }
+       SYS_SOCKET         = 97  // { int sys_socket(int domain, int type, int protocol); }
+       SYS_CONNECT        = 98  // { int sys_connect(int s, const struct sockaddr *name, \
+       SYS_GETDENTS       = 99  // { int sys_getdents(int fd, void *buf, size_t buflen); }
+       SYS_GETPRIORITY    = 100 // { int sys_getpriority(int which, id_t who); }
+       SYS_SIGRETURN      = 103 // { int sys_sigreturn(struct sigcontext *sigcntxp); }
+       SYS_BIND           = 104 // { int sys_bind(int s, const struct sockaddr *name, \
+       SYS_SETSOCKOPT     = 105 // { int sys_setsockopt(int s, int level, int name, \
+       SYS_LISTEN         = 106 // { int sys_listen(int s, int backlog); }
+       SYS_PPOLL          = 109 // { int sys_ppoll(struct pollfd *fds, \
+       SYS_PSELECT        = 110 // { int sys_pselect(int nd, fd_set *in, fd_set *ou, \
+       SYS_SIGSUSPEND     = 111 // { int sys_sigsuspend(int mask); }
+       SYS_GETSOCKOPT     = 118 // { int sys_getsockopt(int s, int level, int name, \
+       SYS_READV          = 120 // { ssize_t sys_readv(int fd, \
+       SYS_WRITEV         = 121 // { ssize_t sys_writev(int fd, \
+       SYS_FCHOWN         = 123 // { int sys_fchown(int fd, uid_t uid, gid_t gid); }
+       SYS_FCHMOD         = 124 // { int sys_fchmod(int fd, mode_t mode); }
+       SYS_SETREUID       = 126 // { int sys_setreuid(uid_t ruid, uid_t euid); }
+       SYS_SETREGID       = 127 // { int sys_setregid(gid_t rgid, gid_t egid); }
+       SYS_RENAME         = 128 // { int sys_rename(const char *from, const char *to); }
+       SYS_FLOCK          = 131 // { int sys_flock(int fd, int how); }
+       SYS_MKFIFO         = 132 // { int sys_mkfifo(const char *path, mode_t mode); }
+       SYS_SENDTO         = 133 // { ssize_t sys_sendto(int s, const void *buf, \
+       SYS_SHUTDOWN       = 134 // { int sys_shutdown(int s, int how); }
+       SYS_SOCKETPAIR     = 135 // { int sys_socketpair(int domain, int type, \
+       SYS_MKDIR          = 136 // { int sys_mkdir(const char *path, mode_t mode); }
+       SYS_RMDIR          = 137 // { int sys_rmdir(const char *path); }
+       SYS_ADJTIME        = 140 // { int sys_adjtime(const struct timeval *delta, \
+       SYS_SETSID         = 147 // { int sys_setsid(void); }
+       SYS_QUOTACTL       = 148 // { int sys_quotactl(const char *path, int cmd, \
+       SYS_NFSSVC         = 155 // { int sys_nfssvc(int flag, void *argp); }
+       SYS_GETFH          = 161 // { int sys_getfh(const char *fname, fhandle_t *fhp); }
+       SYS_SYSARCH        = 165 // { int sys_sysarch(int op, void *parms); }
+       SYS_PREAD          = 173 // { ssize_t sys_pread(int fd, void *buf, \
+       SYS_PWRITE         = 174 // { ssize_t sys_pwrite(int fd, const void *buf, \
+       SYS_SETGID         = 181 // { int sys_setgid(gid_t gid); }
+       SYS_SETEGID        = 182 // { int sys_setegid(gid_t egid); }
+       SYS_SETEUID        = 183 // { int sys_seteuid(uid_t euid); }
+       SYS_PATHCONF       = 191 // { long sys_pathconf(const char *path, int name); }
+       SYS_FPATHCONF      = 192 // { long sys_fpathconf(int fd, int name); }
+       SYS_SWAPCTL        = 193 // { int sys_swapctl(int cmd, const void *arg, int misc); }
+       SYS_GETRLIMIT      = 194 // { int sys_getrlimit(int which, \
+       SYS_SETRLIMIT      = 195 // { int sys_setrlimit(int which, \
+       SYS_MMAP           = 197 // { void *sys_mmap(void *addr, size_t len, int prot, \
+       SYS_LSEEK          = 199 // { off_t sys_lseek(int fd, int pad, off_t offset, \
+       SYS_TRUNCATE       = 200 // { int sys_truncate(const char *path, int pad, \
+       SYS_FTRUNCATE      = 201 // { int sys_ftruncate(int fd, int pad, off_t length); }
+       SYS___SYSCTL       = 202 // { int sys___sysctl(const int *name, u_int namelen, \
+       SYS_MLOCK          = 203 // { int sys_mlock(const void *addr, size_t len); }
+       SYS_MUNLOCK        = 204 // { int sys_munlock(const void *addr, size_t len); }
+       SYS_GETPGID        = 207 // { pid_t sys_getpgid(pid_t pid); }
+       SYS_UTRACE         = 209 // { int sys_utrace(const char *label, const void *addr, \
+       SYS_SEMGET         = 221 // { int sys_semget(key_t key, int nsems, int semflg); }
+       SYS_MSGGET         = 225 // { int sys_msgget(key_t key, int msgflg); }
+       SYS_MSGSND         = 226 // { int sys_msgsnd(int msqid, const void *msgp, size_t msgsz, \
+       SYS_MSGRCV         = 227 // { int sys_msgrcv(int msqid, void *msgp, size_t msgsz, \
+       SYS_SHMAT          = 228 // { void *sys_shmat(int shmid, const void *shmaddr, \
+       SYS_SHMDT          = 230 // { int sys_shmdt(const void *shmaddr); }
+       SYS_MINHERIT       = 250 // { int sys_minherit(void *addr, size_t len, \
+       SYS_POLL           = 252 // { int sys_poll(struct pollfd *fds, \
+       SYS_ISSETUGID      = 253 // { int sys_issetugid(void); }
+       SYS_LCHOWN         = 254 // { int sys_lchown(const char *path, uid_t uid, gid_t gid); }
+       SYS_GETSID         = 255 // { pid_t sys_getsid(pid_t pid); }
+       SYS_MSYNC          = 256 // { int sys_msync(void *addr, size_t len, int flags); }
+       SYS_PIPE           = 263 // { int sys_pipe(int *fdp); }
+       SYS_FHOPEN         = 264 // { int sys_fhopen(const fhandle_t *fhp, int flags); }
+       SYS_PREADV         = 267 // { ssize_t sys_preadv(int fd, \
+       SYS_PWRITEV        = 268 // { ssize_t sys_pwritev(int fd, \
+       SYS_KQUEUE         = 269 // { int sys_kqueue(void); }
+       SYS_MLOCKALL       = 271 // { int sys_mlockall(int flags); }
+       SYS_MUNLOCKALL     = 272 // { int sys_munlockall(void); }
+       SYS_GETRESUID      = 281 // { int sys_getresuid(uid_t *ruid, uid_t *euid, \
+       SYS_SETRESUID      = 282 // { int sys_setresuid(uid_t ruid, uid_t euid, \
+       SYS_GETRESGID      = 283 // { int sys_getresgid(gid_t *rgid, gid_t *egid, \
+       SYS_SETRESGID      = 284 // { int sys_setresgid(gid_t rgid, gid_t egid, \
+       SYS_MQUERY         = 286 // { void *sys_mquery(void *addr, size_t len, int prot, \
+       SYS_CLOSEFROM      = 287 // { int sys_closefrom(int fd); }
+       SYS_SIGALTSTACK    = 288 // { int sys_sigaltstack(const struct sigaltstack *nss, \
+       SYS_SHMGET         = 289 // { int sys_shmget(key_t key, size_t size, int shmflg); }
+       SYS_SEMOP          = 290 // { int sys_semop(int semid, struct sembuf *sops, \
+       SYS_FHSTAT         = 294 // { int sys_fhstat(const fhandle_t *fhp, \
+       SYS___SEMCTL       = 295 // { int sys___semctl(int semid, int semnum, int cmd, \
+       SYS_SHMCTL         = 296 // { int sys_shmctl(int shmid, int cmd, \
+       SYS_MSGCTL         = 297 // { int sys_msgctl(int msqid, int cmd, \
+       SYS_SCHED_YIELD    = 298 // { int sys_sched_yield(void); }
+       SYS_GETTHRID       = 299 // { pid_t sys_getthrid(void); }
+       SYS___THRWAKEUP    = 301 // { int sys___thrwakeup(const volatile void *ident, \
+       SYS___THREXIT      = 302 // { void sys___threxit(pid_t *notdead); }
+       SYS___THRSIGDIVERT = 303 // { int sys___thrsigdivert(sigset_t sigmask, \
+       SYS___GETCWD       = 304 // { int sys___getcwd(char *buf, size_t len); }
+       SYS_ADJFREQ        = 305 // { int sys_adjfreq(const int64_t *freq, \
+       SYS_SETRTABLE      = 310 // { int sys_setrtable(int rtableid); }
+       SYS_GETRTABLE      = 311 // { int sys_getrtable(void); }
+       SYS_FACCESSAT      = 313 // { int sys_faccessat(int fd, const char *path, \
+       SYS_FCHMODAT       = 314 // { int sys_fchmodat(int fd, const char *path, \
+       SYS_FCHOWNAT       = 315 // { int sys_fchownat(int fd, const char *path, \
+       SYS_LINKAT         = 317 // { int sys_linkat(int fd1, const char *path1, int fd2, \
+       SYS_MKDIRAT        = 318 // { int sys_mkdirat(int fd, const char *path, \
+       SYS_MKFIFOAT       = 319 // { int sys_mkfifoat(int fd, const char *path, \
+       SYS_MKNODAT        = 320 // { int sys_mknodat(int fd, const char *path, \
+       SYS_OPENAT         = 321 // { int sys_openat(int fd, const char *path, int flags, \
+       SYS_READLINKAT     = 322 // { ssize_t sys_readlinkat(int fd, const char *path, \
+       SYS_RENAMEAT       = 323 // { int sys_renameat(int fromfd, const char *from, \
+       SYS_SYMLINKAT      = 324 // { int sys_symlinkat(const char *path, int fd, \
+       SYS_UNLINKAT       = 325 // { int sys_unlinkat(int fd, const char *path, \
+       SYS___SET_TCB      = 329 // { void sys___set_tcb(void *tcb); }
+       SYS___GET_TCB      = 330 // { void *sys___get_tcb(void); }
+)
diff --git a/vendor/golang.org/x/sys/unix/zsysnum_openbsd_amd64.go b/vendor/golang.org/x/sys/unix/zsysnum_openbsd_amd64.go
new file mode 100644 (file)
index 0000000..bd28146
--- /dev/null
@@ -0,0 +1,207 @@
+// mksysnum_openbsd.pl
+// MACHINE GENERATED BY THE ABOVE COMMAND; DO NOT EDIT
+
+// +build amd64,openbsd
+
+package unix
+
+const (
+       SYS_EXIT           = 1   // { void sys_exit(int rval); }
+       SYS_FORK           = 2   // { int sys_fork(void); }
+       SYS_READ           = 3   // { ssize_t sys_read(int fd, void *buf, size_t nbyte); }
+       SYS_WRITE          = 4   // { ssize_t sys_write(int fd, const void *buf, \
+       SYS_OPEN           = 5   // { int sys_open(const char *path, \
+       SYS_CLOSE          = 6   // { int sys_close(int fd); }
+       SYS___TFORK        = 8   // { int sys___tfork(const struct __tfork *param, \
+       SYS_LINK           = 9   // { int sys_link(const char *path, const char *link); }
+       SYS_UNLINK         = 10  // { int sys_unlink(const char *path); }
+       SYS_WAIT4          = 11  // { pid_t sys_wait4(pid_t pid, int *status, \
+       SYS_CHDIR          = 12  // { int sys_chdir(const char *path); }
+       SYS_FCHDIR         = 13  // { int sys_fchdir(int fd); }
+       SYS_MKNOD          = 14  // { int sys_mknod(const char *path, mode_t mode, \
+       SYS_CHMOD          = 15  // { int sys_chmod(const char *path, mode_t mode); }
+       SYS_CHOWN          = 16  // { int sys_chown(const char *path, uid_t uid, \
+       SYS_OBREAK         = 17  // { int sys_obreak(char *nsize); } break
+       SYS_GETDTABLECOUNT = 18  // { int sys_getdtablecount(void); }
+       SYS_GETRUSAGE      = 19  // { int sys_getrusage(int who, \
+       SYS_GETPID         = 20  // { pid_t sys_getpid(void); }
+       SYS_MOUNT          = 21  // { int sys_mount(const char *type, const char *path, \
+       SYS_UNMOUNT        = 22  // { int sys_unmount(const char *path, int flags); }
+       SYS_SETUID         = 23  // { int sys_setuid(uid_t uid); }
+       SYS_GETUID         = 24  // { uid_t sys_getuid(void); }
+       SYS_GETEUID        = 25  // { uid_t sys_geteuid(void); }
+       SYS_PTRACE         = 26  // { int sys_ptrace(int req, pid_t pid, caddr_t addr, \
+       SYS_RECVMSG        = 27  // { ssize_t sys_recvmsg(int s, struct msghdr *msg, \
+       SYS_SENDMSG        = 28  // { ssize_t sys_sendmsg(int s, \
+       SYS_RECVFROM       = 29  // { ssize_t sys_recvfrom(int s, void *buf, size_t len, \
+       SYS_ACCEPT         = 30  // { int sys_accept(int s, struct sockaddr *name, \
+       SYS_GETPEERNAME    = 31  // { int sys_getpeername(int fdes, struct sockaddr *asa, \
+       SYS_GETSOCKNAME    = 32  // { int sys_getsockname(int fdes, struct sockaddr *asa, \
+       SYS_ACCESS         = 33  // { int sys_access(const char *path, int flags); }
+       SYS_CHFLAGS        = 34  // { int sys_chflags(const char *path, u_int flags); }
+       SYS_FCHFLAGS       = 35  // { int sys_fchflags(int fd, u_int flags); }
+       SYS_SYNC           = 36  // { void sys_sync(void); }
+       SYS_KILL           = 37  // { int sys_kill(int pid, int signum); }
+       SYS_STAT           = 38  // { int sys_stat(const char *path, struct stat *ub); }
+       SYS_GETPPID        = 39  // { pid_t sys_getppid(void); }
+       SYS_LSTAT          = 40  // { int sys_lstat(const char *path, struct stat *ub); }
+       SYS_DUP            = 41  // { int sys_dup(int fd); }
+       SYS_FSTATAT        = 42  // { int sys_fstatat(int fd, const char *path, \
+       SYS_GETEGID        = 43  // { gid_t sys_getegid(void); }
+       SYS_PROFIL         = 44  // { int sys_profil(caddr_t samples, size_t size, \
+       SYS_KTRACE         = 45  // { int sys_ktrace(const char *fname, int ops, \
+       SYS_SIGACTION      = 46  // { int sys_sigaction(int signum, \
+       SYS_GETGID         = 47  // { gid_t sys_getgid(void); }
+       SYS_SIGPROCMASK    = 48  // { int sys_sigprocmask(int how, sigset_t mask); }
+       SYS_GETLOGIN       = 49  // { int sys_getlogin(char *namebuf, u_int namelen); }
+       SYS_SETLOGIN       = 50  // { int sys_setlogin(const char *namebuf); }
+       SYS_ACCT           = 51  // { int sys_acct(const char *path); }
+       SYS_SIGPENDING     = 52  // { int sys_sigpending(void); }
+       SYS_FSTAT          = 53  // { int sys_fstat(int fd, struct stat *sb); }
+       SYS_IOCTL          = 54  // { int sys_ioctl(int fd, \
+       SYS_REBOOT         = 55  // { int sys_reboot(int opt); }
+       SYS_REVOKE         = 56  // { int sys_revoke(const char *path); }
+       SYS_SYMLINK        = 57  // { int sys_symlink(const char *path, \
+       SYS_READLINK       = 58  // { int sys_readlink(const char *path, char *buf, \
+       SYS_EXECVE         = 59  // { int sys_execve(const char *path, \
+       SYS_UMASK          = 60  // { mode_t sys_umask(mode_t newmask); }
+       SYS_CHROOT         = 61  // { int sys_chroot(const char *path); }
+       SYS_GETFSSTAT      = 62  // { int sys_getfsstat(struct statfs *buf, size_t bufsize, \
+       SYS_STATFS         = 63  // { int sys_statfs(const char *path, \
+       SYS_FSTATFS        = 64  // { int sys_fstatfs(int fd, struct statfs *buf); }
+       SYS_FHSTATFS       = 65  // { int sys_fhstatfs(const fhandle_t *fhp, \
+       SYS_VFORK          = 66  // { int sys_vfork(void); }
+       SYS_GETTIMEOFDAY   = 67  // { int sys_gettimeofday(struct timeval *tp, \
+       SYS_SETTIMEOFDAY   = 68  // { int sys_settimeofday(const struct timeval *tv, \
+       SYS_SETITIMER      = 69  // { int sys_setitimer(int which, \
+       SYS_GETITIMER      = 70  // { int sys_getitimer(int which, \
+       SYS_SELECT         = 71  // { int sys_select(int nd, fd_set *in, fd_set *ou, \
+       SYS_KEVENT         = 72  // { int sys_kevent(int fd, \
+       SYS_MUNMAP         = 73  // { int sys_munmap(void *addr, size_t len); }
+       SYS_MPROTECT       = 74  // { int sys_mprotect(void *addr, size_t len, \
+       SYS_MADVISE        = 75  // { int sys_madvise(void *addr, size_t len, \
+       SYS_UTIMES         = 76  // { int sys_utimes(const char *path, \
+       SYS_FUTIMES        = 77  // { int sys_futimes(int fd, \
+       SYS_MINCORE        = 78  // { int sys_mincore(void *addr, size_t len, \
+       SYS_GETGROUPS      = 79  // { int sys_getgroups(int gidsetsize, \
+       SYS_SETGROUPS      = 80  // { int sys_setgroups(int gidsetsize, \
+       SYS_GETPGRP        = 81  // { int sys_getpgrp(void); }
+       SYS_SETPGID        = 82  // { int sys_setpgid(pid_t pid, int pgid); }
+       SYS_UTIMENSAT      = 84  // { int sys_utimensat(int fd, const char *path, \
+       SYS_FUTIMENS       = 85  // { int sys_futimens(int fd, \
+       SYS_CLOCK_GETTIME  = 87  // { int sys_clock_gettime(clockid_t clock_id, \
+       SYS_CLOCK_SETTIME  = 88  // { int sys_clock_settime(clockid_t clock_id, \
+       SYS_CLOCK_GETRES   = 89  // { int sys_clock_getres(clockid_t clock_id, \
+       SYS_DUP2           = 90  // { int sys_dup2(int from, int to); }
+       SYS_NANOSLEEP      = 91  // { int sys_nanosleep(const struct timespec *rqtp, \
+       SYS_FCNTL          = 92  // { int sys_fcntl(int fd, int cmd, ... void *arg); }
+       SYS___THRSLEEP     = 94  // { int sys___thrsleep(const volatile void *ident, \
+       SYS_FSYNC          = 95  // { int sys_fsync(int fd); }
+       SYS_SETPRIORITY    = 96  // { int sys_setpriority(int which, id_t who, int prio); }
+       SYS_SOCKET         = 97  // { int sys_socket(int domain, int type, int protocol); }
+       SYS_CONNECT        = 98  // { int sys_connect(int s, const struct sockaddr *name, \
+       SYS_GETDENTS       = 99  // { int sys_getdents(int fd, void *buf, size_t buflen); }
+       SYS_GETPRIORITY    = 100 // { int sys_getpriority(int which, id_t who); }
+       SYS_SIGRETURN      = 103 // { int sys_sigreturn(struct sigcontext *sigcntxp); }
+       SYS_BIND           = 104 // { int sys_bind(int s, const struct sockaddr *name, \
+       SYS_SETSOCKOPT     = 105 // { int sys_setsockopt(int s, int level, int name, \
+       SYS_LISTEN         = 106 // { int sys_listen(int s, int backlog); }
+       SYS_PPOLL          = 109 // { int sys_ppoll(struct pollfd *fds, \
+       SYS_PSELECT        = 110 // { int sys_pselect(int nd, fd_set *in, fd_set *ou, \
+       SYS_SIGSUSPEND     = 111 // { int sys_sigsuspend(int mask); }
+       SYS_GETSOCKOPT     = 118 // { int sys_getsockopt(int s, int level, int name, \
+       SYS_READV          = 120 // { ssize_t sys_readv(int fd, \
+       SYS_WRITEV         = 121 // { ssize_t sys_writev(int fd, \
+       SYS_FCHOWN         = 123 // { int sys_fchown(int fd, uid_t uid, gid_t gid); }
+       SYS_FCHMOD         = 124 // { int sys_fchmod(int fd, mode_t mode); }
+       SYS_SETREUID       = 126 // { int sys_setreuid(uid_t ruid, uid_t euid); }
+       SYS_SETREGID       = 127 // { int sys_setregid(gid_t rgid, gid_t egid); }
+       SYS_RENAME         = 128 // { int sys_rename(const char *from, const char *to); }
+       SYS_FLOCK          = 131 // { int sys_flock(int fd, int how); }
+       SYS_MKFIFO         = 132 // { int sys_mkfifo(const char *path, mode_t mode); }
+       SYS_SENDTO         = 133 // { ssize_t sys_sendto(int s, const void *buf, \
+       SYS_SHUTDOWN       = 134 // { int sys_shutdown(int s, int how); }
+       SYS_SOCKETPAIR     = 135 // { int sys_socketpair(int domain, int type, \
+       SYS_MKDIR          = 136 // { int sys_mkdir(const char *path, mode_t mode); }
+       SYS_RMDIR          = 137 // { int sys_rmdir(const char *path); }
+       SYS_ADJTIME        = 140 // { int sys_adjtime(const struct timeval *delta, \
+       SYS_SETSID         = 147 // { int sys_setsid(void); }
+       SYS_QUOTACTL       = 148 // { int sys_quotactl(const char *path, int cmd, \
+       SYS_NFSSVC         = 155 // { int sys_nfssvc(int flag, void *argp); }
+       SYS_GETFH          = 161 // { int sys_getfh(const char *fname, fhandle_t *fhp); }
+       SYS_SYSARCH        = 165 // { int sys_sysarch(int op, void *parms); }
+       SYS_PREAD          = 173 // { ssize_t sys_pread(int fd, void *buf, \
+       SYS_PWRITE         = 174 // { ssize_t sys_pwrite(int fd, const void *buf, \
+       SYS_SETGID         = 181 // { int sys_setgid(gid_t gid); }
+       SYS_SETEGID        = 182 // { int sys_setegid(gid_t egid); }
+       SYS_SETEUID        = 183 // { int sys_seteuid(uid_t euid); }
+       SYS_PATHCONF       = 191 // { long sys_pathconf(const char *path, int name); }
+       SYS_FPATHCONF      = 192 // { long sys_fpathconf(int fd, int name); }
+       SYS_SWAPCTL        = 193 // { int sys_swapctl(int cmd, const void *arg, int misc); }
+       SYS_GETRLIMIT      = 194 // { int sys_getrlimit(int which, \
+       SYS_SETRLIMIT      = 195 // { int sys_setrlimit(int which, \
+       SYS_MMAP           = 197 // { void *sys_mmap(void *addr, size_t len, int prot, \
+       SYS_LSEEK          = 199 // { off_t sys_lseek(int fd, int pad, off_t offset, \
+       SYS_TRUNCATE       = 200 // { int sys_truncate(const char *path, int pad, \
+       SYS_FTRUNCATE      = 201 // { int sys_ftruncate(int fd, int pad, off_t length); }
+       SYS___SYSCTL       = 202 // { int sys___sysctl(const int *name, u_int namelen, \
+       SYS_MLOCK          = 203 // { int sys_mlock(const void *addr, size_t len); }
+       SYS_MUNLOCK        = 204 // { int sys_munlock(const void *addr, size_t len); }
+       SYS_GETPGID        = 207 // { pid_t sys_getpgid(pid_t pid); }
+       SYS_UTRACE         = 209 // { int sys_utrace(const char *label, const void *addr, \
+       SYS_SEMGET         = 221 // { int sys_semget(key_t key, int nsems, int semflg); }
+       SYS_MSGGET         = 225 // { int sys_msgget(key_t key, int msgflg); }
+       SYS_MSGSND         = 226 // { int sys_msgsnd(int msqid, const void *msgp, size_t msgsz, \
+       SYS_MSGRCV         = 227 // { int sys_msgrcv(int msqid, void *msgp, size_t msgsz, \
+       SYS_SHMAT          = 228 // { void *sys_shmat(int shmid, const void *shmaddr, \
+       SYS_SHMDT          = 230 // { int sys_shmdt(const void *shmaddr); }
+       SYS_MINHERIT       = 250 // { int sys_minherit(void *addr, size_t len, \
+       SYS_POLL           = 252 // { int sys_poll(struct pollfd *fds, \
+       SYS_ISSETUGID      = 253 // { int sys_issetugid(void); }
+       SYS_LCHOWN         = 254 // { int sys_lchown(const char *path, uid_t uid, gid_t gid); }
+       SYS_GETSID         = 255 // { pid_t sys_getsid(pid_t pid); }
+       SYS_MSYNC          = 256 // { int sys_msync(void *addr, size_t len, int flags); }
+       SYS_PIPE           = 263 // { int sys_pipe(int *fdp); }
+       SYS_FHOPEN         = 264 // { int sys_fhopen(const fhandle_t *fhp, int flags); }
+       SYS_PREADV         = 267 // { ssize_t sys_preadv(int fd, \
+       SYS_PWRITEV        = 268 // { ssize_t sys_pwritev(int fd, \
+       SYS_KQUEUE         = 269 // { int sys_kqueue(void); }
+       SYS_MLOCKALL       = 271 // { int sys_mlockall(int flags); }
+       SYS_MUNLOCKALL     = 272 // { int sys_munlockall(void); }
+       SYS_GETRESUID      = 281 // { int sys_getresuid(uid_t *ruid, uid_t *euid, \
+       SYS_SETRESUID      = 282 // { int sys_setresuid(uid_t ruid, uid_t euid, \
+       SYS_GETRESGID      = 283 // { int sys_getresgid(gid_t *rgid, gid_t *egid, \
+       SYS_SETRESGID      = 284 // { int sys_setresgid(gid_t rgid, gid_t egid, \
+       SYS_MQUERY         = 286 // { void *sys_mquery(void *addr, size_t len, int prot, \
+       SYS_CLOSEFROM      = 287 // { int sys_closefrom(int fd); }
+       SYS_SIGALTSTACK    = 288 // { int sys_sigaltstack(const struct sigaltstack *nss, \
+       SYS_SHMGET         = 289 // { int sys_shmget(key_t key, size_t size, int shmflg); }
+       SYS_SEMOP          = 290 // { int sys_semop(int semid, struct sembuf *sops, \
+       SYS_FHSTAT         = 294 // { int sys_fhstat(const fhandle_t *fhp, \
+       SYS___SEMCTL       = 295 // { int sys___semctl(int semid, int semnum, int cmd, \
+       SYS_SHMCTL         = 296 // { int sys_shmctl(int shmid, int cmd, \
+       SYS_MSGCTL         = 297 // { int sys_msgctl(int msqid, int cmd, \
+       SYS_SCHED_YIELD    = 298 // { int sys_sched_yield(void); }
+       SYS_GETTHRID       = 299 // { pid_t sys_getthrid(void); }
+       SYS___THRWAKEUP    = 301 // { int sys___thrwakeup(const volatile void *ident, \
+       SYS___THREXIT      = 302 // { void sys___threxit(pid_t *notdead); }
+       SYS___THRSIGDIVERT = 303 // { int sys___thrsigdivert(sigset_t sigmask, \
+       SYS___GETCWD       = 304 // { int sys___getcwd(char *buf, size_t len); }
+       SYS_ADJFREQ        = 305 // { int sys_adjfreq(const int64_t *freq, \
+       SYS_SETRTABLE      = 310 // { int sys_setrtable(int rtableid); }
+       SYS_GETRTABLE      = 311 // { int sys_getrtable(void); }
+       SYS_FACCESSAT      = 313 // { int sys_faccessat(int fd, const char *path, \
+       SYS_FCHMODAT       = 314 // { int sys_fchmodat(int fd, const char *path, \
+       SYS_FCHOWNAT       = 315 // { int sys_fchownat(int fd, const char *path, \
+       SYS_LINKAT         = 317 // { int sys_linkat(int fd1, const char *path1, int fd2, \
+       SYS_MKDIRAT        = 318 // { int sys_mkdirat(int fd, const char *path, \
+       SYS_MKFIFOAT       = 319 // { int sys_mkfifoat(int fd, const char *path, \
+       SYS_MKNODAT        = 320 // { int sys_mknodat(int fd, const char *path, \
+       SYS_OPENAT         = 321 // { int sys_openat(int fd, const char *path, int flags, \
+       SYS_READLINKAT     = 322 // { ssize_t sys_readlinkat(int fd, const char *path, \
+       SYS_RENAMEAT       = 323 // { int sys_renameat(int fromfd, const char *from, \
+       SYS_SYMLINKAT      = 324 // { int sys_symlinkat(const char *path, int fd, \
+       SYS_UNLINKAT       = 325 // { int sys_unlinkat(int fd, const char *path, \
+       SYS___SET_TCB      = 329 // { void sys___set_tcb(void *tcb); }
+       SYS___GET_TCB      = 330 // { void *sys___get_tcb(void); }
+)
diff --git a/vendor/golang.org/x/sys/unix/zsysnum_openbsd_arm.go b/vendor/golang.org/x/sys/unix/zsysnum_openbsd_arm.go
new file mode 100644 (file)
index 0000000..32653e5
--- /dev/null
@@ -0,0 +1,213 @@
+// mksysnum_openbsd.pl
+// MACHINE GENERATED BY THE ABOVE COMMAND; DO NOT EDIT
+
+// +build arm,openbsd
+
+package unix
+
+const (
+       SYS_EXIT           = 1   // { void sys_exit(int rval); }
+       SYS_FORK           = 2   // { int sys_fork(void); }
+       SYS_READ           = 3   // { ssize_t sys_read(int fd, void *buf, size_t nbyte); }
+       SYS_WRITE          = 4   // { ssize_t sys_write(int fd, const void *buf, \
+       SYS_OPEN           = 5   // { int sys_open(const char *path, \
+       SYS_CLOSE          = 6   // { int sys_close(int fd); }
+       SYS_GETENTROPY     = 7   // { int sys_getentropy(void *buf, size_t nbyte); }
+       SYS___TFORK        = 8   // { int sys___tfork(const struct __tfork *param, \
+       SYS_LINK           = 9   // { int sys_link(const char *path, const char *link); }
+       SYS_UNLINK         = 10  // { int sys_unlink(const char *path); }
+       SYS_WAIT4          = 11  // { pid_t sys_wait4(pid_t pid, int *status, \
+       SYS_CHDIR          = 12  // { int sys_chdir(const char *path); }
+       SYS_FCHDIR         = 13  // { int sys_fchdir(int fd); }
+       SYS_MKNOD          = 14  // { int sys_mknod(const char *path, mode_t mode, \
+       SYS_CHMOD          = 15  // { int sys_chmod(const char *path, mode_t mode); }
+       SYS_CHOWN          = 16  // { int sys_chown(const char *path, uid_t uid, \
+       SYS_OBREAK         = 17  // { int sys_obreak(char *nsize); } break
+       SYS_GETDTABLECOUNT = 18  // { int sys_getdtablecount(void); }
+       SYS_GETRUSAGE      = 19  // { int sys_getrusage(int who, \
+       SYS_GETPID         = 20  // { pid_t sys_getpid(void); }
+       SYS_MOUNT          = 21  // { int sys_mount(const char *type, const char *path, \
+       SYS_UNMOUNT        = 22  // { int sys_unmount(const char *path, int flags); }
+       SYS_SETUID         = 23  // { int sys_setuid(uid_t uid); }
+       SYS_GETUID         = 24  // { uid_t sys_getuid(void); }
+       SYS_GETEUID        = 25  // { uid_t sys_geteuid(void); }
+       SYS_PTRACE         = 26  // { int sys_ptrace(int req, pid_t pid, caddr_t addr, \
+       SYS_RECVMSG        = 27  // { ssize_t sys_recvmsg(int s, struct msghdr *msg, \
+       SYS_SENDMSG        = 28  // { ssize_t sys_sendmsg(int s, \
+       SYS_RECVFROM       = 29  // { ssize_t sys_recvfrom(int s, void *buf, size_t len, \
+       SYS_ACCEPT         = 30  // { int sys_accept(int s, struct sockaddr *name, \
+       SYS_GETPEERNAME    = 31  // { int sys_getpeername(int fdes, struct sockaddr *asa, \
+       SYS_GETSOCKNAME    = 32  // { int sys_getsockname(int fdes, struct sockaddr *asa, \
+       SYS_ACCESS         = 33  // { int sys_access(const char *path, int 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_STAT           = 38  // { int sys_stat(const char *path, struct stat *ub); }
+       SYS_GETPPID        = 39  // { pid_t sys_getppid(void); }
+       SYS_LSTAT          = 40  // { int sys_lstat(const char *path, struct stat *ub); }
+       SYS_DUP            = 41  // { int sys_dup(int fd); }
+       SYS_FSTATAT        = 42  // { int sys_fstatat(int fd, const char *path, \
+       SYS_GETEGID        = 43  // { gid_t sys_getegid(void); }
+       SYS_PROFIL         = 44  // { int sys_profil(caddr_t samples, size_t size, \
+       SYS_KTRACE         = 45  // { int sys_ktrace(const char *fname, int ops, \
+       SYS_SIGACTION      = 46  // { int sys_sigaction(int signum, \
+       SYS_GETGID         = 47  // { gid_t sys_getgid(void); }
+       SYS_SIGPROCMASK    = 48  // { int sys_sigprocmask(int how, sigset_t mask); }
+       SYS_GETLOGIN       = 49  // { int sys_getlogin(char *namebuf, u_int namelen); }
+       SYS_SETLOGIN       = 50  // { int sys_setlogin(const char *namebuf); }
+       SYS_ACCT           = 51  // { int sys_acct(const char *path); }
+       SYS_SIGPENDING     = 52  // { int sys_sigpending(void); }
+       SYS_FSTAT          = 53  // { int sys_fstat(int fd, struct stat *sb); }
+       SYS_IOCTL          = 54  // { int sys_ioctl(int fd, \
+       SYS_REBOOT         = 55  // { int sys_reboot(int opt); }
+       SYS_REVOKE         = 56  // { int sys_revoke(const char *path); }
+       SYS_SYMLINK        = 57  // { int sys_symlink(const char *path, \
+       SYS_READLINK       = 58  // { ssize_t sys_readlink(const char *path, \
+       SYS_EXECVE         = 59  // { int sys_execve(const char *path, \
+       SYS_UMASK          = 60  // { mode_t sys_umask(mode_t newmask); }
+       SYS_CHROOT         = 61  // { int sys_chroot(const char *path); }
+       SYS_GETFSSTAT      = 62  // { int sys_getfsstat(struct statfs *buf, size_t bufsize, \
+       SYS_STATFS         = 63  // { int sys_statfs(const char *path, \
+       SYS_FSTATFS        = 64  // { int sys_fstatfs(int fd, struct statfs *buf); }
+       SYS_FHSTATFS       = 65  // { int sys_fhstatfs(const fhandle_t *fhp, \
+       SYS_VFORK          = 66  // { int sys_vfork(void); }
+       SYS_GETTIMEOFDAY   = 67  // { int sys_gettimeofday(struct timeval *tp, \
+       SYS_SETTIMEOFDAY   = 68  // { int sys_settimeofday(const struct timeval *tv, \
+       SYS_SETITIMER      = 69  // { int sys_setitimer(int which, \
+       SYS_GETITIMER      = 70  // { int sys_getitimer(int which, \
+       SYS_SELECT         = 71  // { int sys_select(int nd, fd_set *in, fd_set *ou, \
+       SYS_KEVENT         = 72  // { int sys_kevent(int fd, \
+       SYS_MUNMAP         = 73  // { int sys_munmap(void *addr, size_t len); }
+       SYS_MPROTECT       = 74  // { int sys_mprotect(void *addr, size_t len, \
+       SYS_MADVISE        = 75  // { int sys_madvise(void *addr, size_t len, \
+       SYS_UTIMES         = 76  // { int sys_utimes(const char *path, \
+       SYS_FUTIMES        = 77  // { int sys_futimes(int fd, \
+       SYS_MINCORE        = 78  // { int sys_mincore(void *addr, size_t len, \
+       SYS_GETGROUPS      = 79  // { int sys_getgroups(int gidsetsize, \
+       SYS_SETGROUPS      = 80  // { int sys_setgroups(int gidsetsize, \
+       SYS_GETPGRP        = 81  // { int sys_getpgrp(void); }
+       SYS_SETPGID        = 82  // { int sys_setpgid(pid_t pid, 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_DUP2           = 90  // { int sys_dup2(int from, int to); }
+       SYS_NANOSLEEP      = 91  // { int sys_nanosleep(const struct timespec *rqtp, \
+       SYS_FCNTL          = 92  // { int sys_fcntl(int fd, int cmd, ... void *arg); }
+       SYS_ACCEPT4        = 93  // { int sys_accept4(int s, struct sockaddr *name, \
+       SYS___THRSLEEP     = 94  // { int sys___thrsleep(const volatile void *ident, \
+       SYS_FSYNC          = 95  // { int sys_fsync(int fd); }
+       SYS_SETPRIORITY    = 96  // { int sys_setpriority(int which, id_t who, int prio); }
+       SYS_SOCKET         = 97  // { int sys_socket(int domain, int type, int protocol); }
+       SYS_CONNECT        = 98  // { int sys_connect(int s, const struct sockaddr *name, \
+       SYS_GETDENTS       = 99  // { int sys_getdents(int fd, void *buf, size_t buflen); }
+       SYS_GETPRIORITY    = 100 // { int sys_getpriority(int which, id_t who); }
+       SYS_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_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_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_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); }
+       SYS_SETREGID       = 127 // { int sys_setregid(gid_t rgid, gid_t egid); }
+       SYS_RENAME         = 128 // { int sys_rename(const char *from, const char *to); }
+       SYS_FLOCK          = 131 // { int sys_flock(int fd, int how); }
+       SYS_MKFIFO         = 132 // { int sys_mkfifo(const char *path, mode_t mode); }
+       SYS_SENDTO         = 133 // { ssize_t sys_sendto(int s, const void *buf, \
+       SYS_SHUTDOWN       = 134 // { int sys_shutdown(int s, int how); }
+       SYS_SOCKETPAIR     = 135 // { int sys_socketpair(int domain, int type, \
+       SYS_MKDIR          = 136 // { int sys_mkdir(const char *path, mode_t mode); }
+       SYS_RMDIR          = 137 // { int sys_rmdir(const char *path); }
+       SYS_ADJTIME        = 140 // { int sys_adjtime(const struct timeval *delta, \
+       SYS_SETSID         = 147 // { int sys_setsid(void); }
+       SYS_QUOTACTL       = 148 // { int sys_quotactl(const char *path, int cmd, \
+       SYS_NFSSVC         = 155 // { int sys_nfssvc(int flag, void *argp); }
+       SYS_GETFH          = 161 // { int sys_getfh(const char *fname, fhandle_t *fhp); }
+       SYS_SYSARCH        = 165 // { int sys_sysarch(int op, void *parms); }
+       SYS_PREAD          = 173 // { ssize_t sys_pread(int fd, void *buf, \
+       SYS_PWRITE         = 174 // { ssize_t sys_pwrite(int fd, const void *buf, \
+       SYS_SETGID         = 181 // { int sys_setgid(gid_t gid); }
+       SYS_SETEGID        = 182 // { int sys_setegid(gid_t egid); }
+       SYS_SETEUID        = 183 // { int sys_seteuid(uid_t euid); }
+       SYS_PATHCONF       = 191 // { long sys_pathconf(const char *path, int name); }
+       SYS_FPATHCONF      = 192 // { long sys_fpathconf(int fd, int name); }
+       SYS_SWAPCTL        = 193 // { int sys_swapctl(int cmd, const void *arg, int misc); }
+       SYS_GETRLIMIT      = 194 // { int sys_getrlimit(int which, \
+       SYS_SETRLIMIT      = 195 // { int sys_setrlimit(int which, \
+       SYS_MMAP           = 197 // { void *sys_mmap(void *addr, size_t len, int prot, \
+       SYS_LSEEK          = 199 // { off_t sys_lseek(int fd, int pad, off_t offset, \
+       SYS_TRUNCATE       = 200 // { int sys_truncate(const char *path, int pad, \
+       SYS_FTRUNCATE      = 201 // { int sys_ftruncate(int fd, int pad, off_t length); }
+       SYS___SYSCTL       = 202 // { int sys___sysctl(const int *name, u_int namelen, \
+       SYS_MLOCK          = 203 // { int sys_mlock(const void *addr, size_t len); }
+       SYS_MUNLOCK        = 204 // { int sys_munlock(const void *addr, size_t len); }
+       SYS_GETPGID        = 207 // { pid_t sys_getpgid(pid_t pid); }
+       SYS_UTRACE         = 209 // { int sys_utrace(const char *label, const void *addr, \
+       SYS_SEMGET         = 221 // { int sys_semget(key_t key, int nsems, int semflg); }
+       SYS_MSGGET         = 225 // { int sys_msgget(key_t key, int msgflg); }
+       SYS_MSGSND         = 226 // { int sys_msgsnd(int msqid, const void *msgp, size_t msgsz, \
+       SYS_MSGRCV         = 227 // { int sys_msgrcv(int msqid, void *msgp, size_t msgsz, \
+       SYS_SHMAT          = 228 // { void *sys_shmat(int shmid, const void *shmaddr, \
+       SYS_SHMDT          = 230 // { int sys_shmdt(const void *shmaddr); }
+       SYS_MINHERIT       = 250 // { int sys_minherit(void *addr, size_t len, \
+       SYS_POLL           = 252 // { int sys_poll(struct pollfd *fds, \
+       SYS_ISSETUGID      = 253 // { int sys_issetugid(void); }
+       SYS_LCHOWN         = 254 // { int sys_lchown(const char *path, uid_t uid, gid_t gid); }
+       SYS_GETSID         = 255 // { pid_t sys_getsid(pid_t pid); }
+       SYS_MSYNC          = 256 // { int sys_msync(void *addr, size_t len, int flags); }
+       SYS_PIPE           = 263 // { int sys_pipe(int *fdp); }
+       SYS_FHOPEN         = 264 // { int sys_fhopen(const fhandle_t *fhp, int flags); }
+       SYS_PREADV         = 267 // { ssize_t sys_preadv(int fd, \
+       SYS_PWRITEV        = 268 // { ssize_t sys_pwritev(int fd, \
+       SYS_KQUEUE         = 269 // { int sys_kqueue(void); }
+       SYS_MLOCKALL       = 271 // { int sys_mlockall(int flags); }
+       SYS_MUNLOCKALL     = 272 // { int sys_munlockall(void); }
+       SYS_GETRESUID      = 281 // { int sys_getresuid(uid_t *ruid, uid_t *euid, \
+       SYS_SETRESUID      = 282 // { int sys_setresuid(uid_t ruid, uid_t euid, \
+       SYS_GETRESGID      = 283 // { int sys_getresgid(gid_t *rgid, gid_t *egid, \
+       SYS_SETRESGID      = 284 // { int sys_setresgid(gid_t rgid, gid_t egid, \
+       SYS_MQUERY         = 286 // { void *sys_mquery(void *addr, size_t len, int prot, \
+       SYS_CLOSEFROM      = 287 // { int sys_closefrom(int fd); }
+       SYS_SIGALTSTACK    = 288 // { int sys_sigaltstack(const struct sigaltstack *nss, \
+       SYS_SHMGET         = 289 // { int sys_shmget(key_t key, size_t size, int shmflg); }
+       SYS_SEMOP          = 290 // { int sys_semop(int semid, struct sembuf *sops, \
+       SYS_FHSTAT         = 294 // { int sys_fhstat(const fhandle_t *fhp, \
+       SYS___SEMCTL       = 295 // { int sys___semctl(int semid, int semnum, int cmd, \
+       SYS_SHMCTL         = 296 // { int sys_shmctl(int shmid, int cmd, \
+       SYS_MSGCTL         = 297 // { int sys_msgctl(int msqid, int cmd, \
+       SYS_SCHED_YIELD    = 298 // { int sys_sched_yield(void); }
+       SYS_GETTHRID       = 299 // { pid_t sys_getthrid(void); }
+       SYS___THRWAKEUP    = 301 // { int sys___thrwakeup(const volatile void *ident, \
+       SYS___THREXIT      = 302 // { void sys___threxit(pid_t *notdead); }
+       SYS___THRSIGDIVERT = 303 // { int sys___thrsigdivert(sigset_t sigmask, \
+       SYS___GETCWD       = 304 // { int sys___getcwd(char *buf, size_t len); }
+       SYS_ADJFREQ        = 305 // { int sys_adjfreq(const int64_t *freq, \
+       SYS_SETRTABLE      = 310 // { int sys_setrtable(int rtableid); }
+       SYS_GETRTABLE      = 311 // { int sys_getrtable(void); }
+       SYS_FACCESSAT      = 313 // { int sys_faccessat(int fd, const char *path, \
+       SYS_FCHMODAT       = 314 // { int sys_fchmodat(int fd, const char *path, \
+       SYS_FCHOWNAT       = 315 // { int sys_fchownat(int fd, const char *path, \
+       SYS_LINKAT         = 317 // { int sys_linkat(int fd1, const char *path1, int fd2, \
+       SYS_MKDIRAT        = 318 // { int sys_mkdirat(int fd, const char *path, \
+       SYS_MKFIFOAT       = 319 // { int sys_mkfifoat(int fd, const char *path, \
+       SYS_MKNODAT        = 320 // { int sys_mknodat(int fd, const char *path, \
+       SYS_OPENAT         = 321 // { int sys_openat(int fd, const char *path, int flags, \
+       SYS_READLINKAT     = 322 // { ssize_t sys_readlinkat(int fd, const char *path, \
+       SYS_RENAMEAT       = 323 // { int sys_renameat(int fromfd, const char *from, \
+       SYS_SYMLINKAT      = 324 // { int sys_symlinkat(const char *path, int fd, \
+       SYS_UNLINKAT       = 325 // { int sys_unlinkat(int fd, const char *path, \
+       SYS___SET_TCB      = 329 // { void sys___set_tcb(void *tcb); }
+       SYS___GET_TCB      = 330 // { void *sys___get_tcb(void); }
+)
diff --git a/vendor/golang.org/x/sys/unix/zsysnum_solaris_amd64.go b/vendor/golang.org/x/sys/unix/zsysnum_solaris_amd64.go
new file mode 100644 (file)
index 0000000..c708659
--- /dev/null
@@ -0,0 +1,13 @@
+// Copyright 2014 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build amd64,solaris
+
+package unix
+
+// TODO(aram): remove these before Go 1.3.
+const (
+       SYS_EXECVE = 59
+       SYS_FCNTL  = 62
+)
diff --git a/vendor/golang.org/x/sys/unix/ztypes_darwin_386.go b/vendor/golang.org/x/sys/unix/ztypes_darwin_386.go
new file mode 100644 (file)
index 0000000..e61d78a
--- /dev/null
@@ -0,0 +1,462 @@
+// cgo -godefs types_darwin.go | go run mkpost.go
+// Code generated by the command above; see README.md. DO NOT EDIT.
+
+// +build 386,darwin
+
+package unix
+
+const (
+       sizeofPtr      = 0x4
+       sizeofShort    = 0x2
+       sizeofInt      = 0x4
+       sizeofLong     = 0x4
+       sizeofLongLong = 0x8
+)
+
+type (
+       _C_short     int16
+       _C_int       int32
+       _C_long      int32
+       _C_long_long int64
+)
+
+type Timespec struct {
+       Sec  int32
+       Nsec int32
+}
+
+type Timeval struct {
+       Sec  int32
+       Usec int32
+}
+
+type Timeval32 struct{}
+
+type Rusage struct {
+       Utime    Timeval
+       Stime    Timeval
+       Maxrss   int32
+       Ixrss    int32
+       Idrss    int32
+       Isrss    int32
+       Minflt   int32
+       Majflt   int32
+       Nswap    int32
+       Inblock  int32
+       Oublock  int32
+       Msgsnd   int32
+       Msgrcv   int32
+       Nsignals int32
+       Nvcsw    int32
+       Nivcsw   int32
+}
+
+type Rlimit struct {
+       Cur uint64
+       Max uint64
+}
+
+type _Gid_t uint32
+
+type Stat_t struct {
+       Dev           int32
+       Mode          uint16
+       Nlink         uint16
+       Ino           uint64
+       Uid           uint32
+       Gid           uint32
+       Rdev          int32
+       Atimespec     Timespec
+       Mtimespec     Timespec
+       Ctimespec     Timespec
+       Birthtimespec Timespec
+       Size          int64
+       Blocks        int64
+       Blksize       int32
+       Flags         uint32
+       Gen           uint32
+       Lspare        int32
+       Qspare        [2]int64
+}
+
+type Statfs_t struct {
+       Bsize       uint32
+       Iosize      int32
+       Blocks      uint64
+       Bfree       uint64
+       Bavail      uint64
+       Files       uint64
+       Ffree       uint64
+       Fsid        Fsid
+       Owner       uint32
+       Type        uint32
+       Flags       uint32
+       Fssubtype   uint32
+       Fstypename  [16]int8
+       Mntonname   [1024]int8
+       Mntfromname [1024]int8
+       Reserved    [8]uint32
+}
+
+type Flock_t struct {
+       Start  int64
+       Len    int64
+       Pid    int32
+       Type   int16
+       Whence int16
+}
+
+type Fstore_t struct {
+       Flags      uint32
+       Posmode    int32
+       Offset     int64
+       Length     int64
+       Bytesalloc int64
+}
+
+type Radvisory_t struct {
+       Offset int64
+       Count  int32
+}
+
+type Fbootstraptransfer_t struct {
+       Offset int64
+       Length uint32
+       Buffer *byte
+}
+
+type Log2phys_t struct {
+       Flags       uint32
+       Contigbytes int64
+       Devoffset   int64
+}
+
+type Fsid struct {
+       Val [2]int32
+}
+
+type Dirent struct {
+       Ino       uint64
+       Seekoff   uint64
+       Reclen    uint16
+       Namlen    uint16
+       Type      uint8
+       Name      [1024]int8
+       Pad_cgo_0 [3]byte
+}
+
+type RawSockaddrInet4 struct {
+       Len    uint8
+       Family uint8
+       Port   uint16
+       Addr   [4]byte /* in_addr */
+       Zero   [8]int8
+}
+
+type RawSockaddrInet6 struct {
+       Len      uint8
+       Family   uint8
+       Port     uint16
+       Flowinfo uint32
+       Addr     [16]byte /* in6_addr */
+       Scope_id uint32
+}
+
+type RawSockaddrUnix struct {
+       Len    uint8
+       Family uint8
+       Path   [104]int8
+}
+
+type RawSockaddrDatalink struct {
+       Len    uint8
+       Family uint8
+       Index  uint16
+       Type   uint8
+       Nlen   uint8
+       Alen   uint8
+       Slen   uint8
+       Data   [12]int8
+}
+
+type RawSockaddr struct {
+       Len    uint8
+       Family uint8
+       Data   [14]int8
+}
+
+type RawSockaddrAny struct {
+       Addr RawSockaddr
+       Pad  [92]int8
+}
+
+type _Socklen uint32
+
+type Linger struct {
+       Onoff  int32
+       Linger int32
+}
+
+type Iovec struct {
+       Base *byte
+       Len  uint32
+}
+
+type IPMreq struct {
+       Multiaddr [4]byte /* in_addr */
+       Interface [4]byte /* in_addr */
+}
+
+type IPv6Mreq struct {
+       Multiaddr [16]byte /* in6_addr */
+       Interface uint32
+}
+
+type Msghdr struct {
+       Name       *byte
+       Namelen    uint32
+       Iov        *Iovec
+       Iovlen     int32
+       Control    *byte
+       Controllen uint32
+       Flags      int32
+}
+
+type Cmsghdr struct {
+       Len   uint32
+       Level int32
+       Type  int32
+}
+
+type Inet4Pktinfo struct {
+       Ifindex  uint32
+       Spec_dst [4]byte /* in_addr */
+       Addr     [4]byte /* in_addr */
+}
+
+type Inet6Pktinfo struct {
+       Addr    [16]byte /* in6_addr */
+       Ifindex uint32
+}
+
+type IPv6MTUInfo struct {
+       Addr RawSockaddrInet6
+       Mtu  uint32
+}
+
+type ICMPv6Filter struct {
+       Filt [8]uint32
+}
+
+const (
+       SizeofSockaddrInet4    = 0x10
+       SizeofSockaddrInet6    = 0x1c
+       SizeofSockaddrAny      = 0x6c
+       SizeofSockaddrUnix     = 0x6a
+       SizeofSockaddrDatalink = 0x14
+       SizeofLinger           = 0x8
+       SizeofIPMreq           = 0x8
+       SizeofIPv6Mreq         = 0x14
+       SizeofMsghdr           = 0x1c
+       SizeofCmsghdr          = 0xc
+       SizeofInet4Pktinfo     = 0xc
+       SizeofInet6Pktinfo     = 0x14
+       SizeofIPv6MTUInfo      = 0x20
+       SizeofICMPv6Filter     = 0x20
+)
+
+const (
+       PTRACE_TRACEME = 0x0
+       PTRACE_CONT    = 0x7
+       PTRACE_KILL    = 0x8
+)
+
+type Kevent_t struct {
+       Ident  uint32
+       Filter int16
+       Flags  uint16
+       Fflags uint32
+       Data   int32
+       Udata  *byte
+}
+
+type FdSet struct {
+       Bits [32]int32
+}
+
+const (
+       SizeofIfMsghdr    = 0x70
+       SizeofIfData      = 0x60
+       SizeofIfaMsghdr   = 0x14
+       SizeofIfmaMsghdr  = 0x10
+       SizeofIfmaMsghdr2 = 0x14
+       SizeofRtMsghdr    = 0x5c
+       SizeofRtMetrics   = 0x38
+)
+
+type IfMsghdr struct {
+       Msglen    uint16
+       Version   uint8
+       Type      uint8
+       Addrs     int32
+       Flags     int32
+       Index     uint16
+       Pad_cgo_0 [2]byte
+       Data      IfData
+}
+
+type IfData struct {
+       Type       uint8
+       Typelen    uint8
+       Physical   uint8
+       Addrlen    uint8
+       Hdrlen     uint8
+       Recvquota  uint8
+       Xmitquota  uint8
+       Unused1    uint8
+       Mtu        uint32
+       Metric     uint32
+       Baudrate   uint32
+       Ipackets   uint32
+       Ierrors    uint32
+       Opackets   uint32
+       Oerrors    uint32
+       Collisions uint32
+       Ibytes     uint32
+       Obytes     uint32
+       Imcasts    uint32
+       Omcasts    uint32
+       Iqdrops    uint32
+       Noproto    uint32
+       Recvtiming uint32
+       Xmittiming uint32
+       Lastchange Timeval
+       Unused2    uint32
+       Hwassist   uint32
+       Reserved1  uint32
+       Reserved2  uint32
+}
+
+type IfaMsghdr struct {
+       Msglen    uint16
+       Version   uint8
+       Type      uint8
+       Addrs     int32
+       Flags     int32
+       Index     uint16
+       Pad_cgo_0 [2]byte
+       Metric    int32
+}
+
+type IfmaMsghdr struct {
+       Msglen    uint16
+       Version   uint8
+       Type      uint8
+       Addrs     int32
+       Flags     int32
+       Index     uint16
+       Pad_cgo_0 [2]byte
+}
+
+type IfmaMsghdr2 struct {
+       Msglen    uint16
+       Version   uint8
+       Type      uint8
+       Addrs     int32
+       Flags     int32
+       Index     uint16
+       Pad_cgo_0 [2]byte
+       Refcount  int32
+}
+
+type RtMsghdr struct {
+       Msglen    uint16
+       Version   uint8
+       Type      uint8
+       Index     uint16
+       Pad_cgo_0 [2]byte
+       Flags     int32
+       Addrs     int32
+       Pid       int32
+       Seq       int32
+       Errno     int32
+       Use       int32
+       Inits     uint32
+       Rmx       RtMetrics
+}
+
+type RtMetrics struct {
+       Locks    uint32
+       Mtu      uint32
+       Hopcount uint32
+       Expire   int32
+       Recvpipe uint32
+       Sendpipe uint32
+       Ssthresh uint32
+       Rtt      uint32
+       Rttvar   uint32
+       Pksent   uint32
+       Filler   [4]uint32
+}
+
+const (
+       SizeofBpfVersion = 0x4
+       SizeofBpfStat    = 0x8
+       SizeofBpfProgram = 0x8
+       SizeofBpfInsn    = 0x8
+       SizeofBpfHdr     = 0x14
+)
+
+type BpfVersion struct {
+       Major uint16
+       Minor uint16
+}
+
+type BpfStat struct {
+       Recv uint32
+       Drop uint32
+}
+
+type BpfProgram struct {
+       Len   uint32
+       Insns *BpfInsn
+}
+
+type BpfInsn struct {
+       Code uint16
+       Jt   uint8
+       Jf   uint8
+       K    uint32
+}
+
+type BpfHdr struct {
+       Tstamp    Timeval
+       Caplen    uint32
+       Datalen   uint32
+       Hdrlen    uint16
+       Pad_cgo_0 [2]byte
+}
+
+type Termios struct {
+       Iflag  uint32
+       Oflag  uint32
+       Cflag  uint32
+       Lflag  uint32
+       Cc     [20]uint8
+       Ispeed uint32
+       Ospeed uint32
+}
+
+type Winsize struct {
+       Row    uint16
+       Col    uint16
+       Xpixel uint16
+       Ypixel uint16
+}
+
+const (
+       AT_FDCWD            = -0x2
+       AT_REMOVEDIR        = 0x80
+       AT_SYMLINK_FOLLOW   = 0x40
+       AT_SYMLINK_NOFOLLOW = 0x20
+)
diff --git a/vendor/golang.org/x/sys/unix/ztypes_darwin_amd64.go b/vendor/golang.org/x/sys/unix/ztypes_darwin_amd64.go
new file mode 100644 (file)
index 0000000..2619155
--- /dev/null
@@ -0,0 +1,472 @@
+// cgo -godefs types_darwin.go | go run mkpost.go
+// Code generated by the command above; see README.md. DO NOT EDIT.
+
+// +build amd64,darwin
+
+package unix
+
+const (
+       sizeofPtr      = 0x8
+       sizeofShort    = 0x2
+       sizeofInt      = 0x4
+       sizeofLong     = 0x8
+       sizeofLongLong = 0x8
+)
+
+type (
+       _C_short     int16
+       _C_int       int32
+       _C_long      int64
+       _C_long_long int64
+)
+
+type Timespec struct {
+       Sec  int64
+       Nsec int64
+}
+
+type Timeval struct {
+       Sec       int64
+       Usec      int32
+       Pad_cgo_0 [4]byte
+}
+
+type Timeval32 struct {
+       Sec  int32
+       Usec int32
+}
+
+type Rusage struct {
+       Utime    Timeval
+       Stime    Timeval
+       Maxrss   int64
+       Ixrss    int64
+       Idrss    int64
+       Isrss    int64
+       Minflt   int64
+       Majflt   int64
+       Nswap    int64
+       Inblock  int64
+       Oublock  int64
+       Msgsnd   int64
+       Msgrcv   int64
+       Nsignals int64
+       Nvcsw    int64
+       Nivcsw   int64
+}
+
+type Rlimit struct {
+       Cur uint64
+       Max uint64
+}
+
+type _Gid_t uint32
+
+type Stat_t struct {
+       Dev           int32
+       Mode          uint16
+       Nlink         uint16
+       Ino           uint64
+       Uid           uint32
+       Gid           uint32
+       Rdev          int32
+       Pad_cgo_0     [4]byte
+       Atimespec     Timespec
+       Mtimespec     Timespec
+       Ctimespec     Timespec
+       Birthtimespec Timespec
+       Size          int64
+       Blocks        int64
+       Blksize       int32
+       Flags         uint32
+       Gen           uint32
+       Lspare        int32
+       Qspare        [2]int64
+}
+
+type Statfs_t struct {
+       Bsize       uint32
+       Iosize      int32
+       Blocks      uint64
+       Bfree       uint64
+       Bavail      uint64
+       Files       uint64
+       Ffree       uint64
+       Fsid        Fsid
+       Owner       uint32
+       Type        uint32
+       Flags       uint32
+       Fssubtype   uint32
+       Fstypename  [16]int8
+       Mntonname   [1024]int8
+       Mntfromname [1024]int8
+       Reserved    [8]uint32
+}
+
+type Flock_t struct {
+       Start  int64
+       Len    int64
+       Pid    int32
+       Type   int16
+       Whence int16
+}
+
+type Fstore_t struct {
+       Flags      uint32
+       Posmode    int32
+       Offset     int64
+       Length     int64
+       Bytesalloc int64
+}
+
+type Radvisory_t struct {
+       Offset    int64
+       Count     int32
+       Pad_cgo_0 [4]byte
+}
+
+type Fbootstraptransfer_t struct {
+       Offset int64
+       Length uint64
+       Buffer *byte
+}
+
+type Log2phys_t struct {
+       Flags     uint32
+       Pad_cgo_0 [8]byte
+       Pad_cgo_1 [8]byte
+}
+
+type Fsid struct {
+       Val [2]int32
+}
+
+type Dirent struct {
+       Ino       uint64
+       Seekoff   uint64
+       Reclen    uint16
+       Namlen    uint16
+       Type      uint8
+       Name      [1024]int8
+       Pad_cgo_0 [3]byte
+}
+
+type RawSockaddrInet4 struct {
+       Len    uint8
+       Family uint8
+       Port   uint16
+       Addr   [4]byte /* in_addr */
+       Zero   [8]int8
+}
+
+type RawSockaddrInet6 struct {
+       Len      uint8
+       Family   uint8
+       Port     uint16
+       Flowinfo uint32
+       Addr     [16]byte /* in6_addr */
+       Scope_id uint32
+}
+
+type RawSockaddrUnix struct {
+       Len    uint8
+       Family uint8
+       Path   [104]int8
+}
+
+type RawSockaddrDatalink struct {
+       Len    uint8
+       Family uint8
+       Index  uint16
+       Type   uint8
+       Nlen   uint8
+       Alen   uint8
+       Slen   uint8
+       Data   [12]int8
+}
+
+type RawSockaddr struct {
+       Len    uint8
+       Family uint8
+       Data   [14]int8
+}
+
+type RawSockaddrAny struct {
+       Addr RawSockaddr
+       Pad  [92]int8
+}
+
+type _Socklen uint32
+
+type Linger struct {
+       Onoff  int32
+       Linger int32
+}
+
+type Iovec struct {
+       Base *byte
+       Len  uint64
+}
+
+type IPMreq struct {
+       Multiaddr [4]byte /* in_addr */
+       Interface [4]byte /* in_addr */
+}
+
+type IPv6Mreq struct {
+       Multiaddr [16]byte /* in6_addr */
+       Interface uint32
+}
+
+type Msghdr struct {
+       Name       *byte
+       Namelen    uint32
+       Pad_cgo_0  [4]byte
+       Iov        *Iovec
+       Iovlen     int32
+       Pad_cgo_1  [4]byte
+       Control    *byte
+       Controllen uint32
+       Flags      int32
+}
+
+type Cmsghdr struct {
+       Len   uint32
+       Level int32
+       Type  int32
+}
+
+type Inet4Pktinfo struct {
+       Ifindex  uint32
+       Spec_dst [4]byte /* in_addr */
+       Addr     [4]byte /* in_addr */
+}
+
+type Inet6Pktinfo struct {
+       Addr    [16]byte /* in6_addr */
+       Ifindex uint32
+}
+
+type IPv6MTUInfo struct {
+       Addr RawSockaddrInet6
+       Mtu  uint32
+}
+
+type ICMPv6Filter struct {
+       Filt [8]uint32
+}
+
+const (
+       SizeofSockaddrInet4    = 0x10
+       SizeofSockaddrInet6    = 0x1c
+       SizeofSockaddrAny      = 0x6c
+       SizeofSockaddrUnix     = 0x6a
+       SizeofSockaddrDatalink = 0x14
+       SizeofLinger           = 0x8
+       SizeofIPMreq           = 0x8
+       SizeofIPv6Mreq         = 0x14
+       SizeofMsghdr           = 0x30
+       SizeofCmsghdr          = 0xc
+       SizeofInet4Pktinfo     = 0xc
+       SizeofInet6Pktinfo     = 0x14
+       SizeofIPv6MTUInfo      = 0x20
+       SizeofICMPv6Filter     = 0x20
+)
+
+const (
+       PTRACE_TRACEME = 0x0
+       PTRACE_CONT    = 0x7
+       PTRACE_KILL    = 0x8
+)
+
+type Kevent_t struct {
+       Ident  uint64
+       Filter int16
+       Flags  uint16
+       Fflags uint32
+       Data   int64
+       Udata  *byte
+}
+
+type FdSet struct {
+       Bits [32]int32
+}
+
+const (
+       SizeofIfMsghdr    = 0x70
+       SizeofIfData      = 0x60
+       SizeofIfaMsghdr   = 0x14
+       SizeofIfmaMsghdr  = 0x10
+       SizeofIfmaMsghdr2 = 0x14
+       SizeofRtMsghdr    = 0x5c
+       SizeofRtMetrics   = 0x38
+)
+
+type IfMsghdr struct {
+       Msglen    uint16
+       Version   uint8
+       Type      uint8
+       Addrs     int32
+       Flags     int32
+       Index     uint16
+       Pad_cgo_0 [2]byte
+       Data      IfData
+}
+
+type IfData struct {
+       Type       uint8
+       Typelen    uint8
+       Physical   uint8
+       Addrlen    uint8
+       Hdrlen     uint8
+       Recvquota  uint8
+       Xmitquota  uint8
+       Unused1    uint8
+       Mtu        uint32
+       Metric     uint32
+       Baudrate   uint32
+       Ipackets   uint32
+       Ierrors    uint32
+       Opackets   uint32
+       Oerrors    uint32
+       Collisions uint32
+       Ibytes     uint32
+       Obytes     uint32
+       Imcasts    uint32
+       Omcasts    uint32
+       Iqdrops    uint32
+       Noproto    uint32
+       Recvtiming uint32
+       Xmittiming uint32
+       Lastchange Timeval32
+       Unused2    uint32
+       Hwassist   uint32
+       Reserved1  uint32
+       Reserved2  uint32
+}
+
+type IfaMsghdr struct {
+       Msglen    uint16
+       Version   uint8
+       Type      uint8
+       Addrs     int32
+       Flags     int32
+       Index     uint16
+       Pad_cgo_0 [2]byte
+       Metric    int32
+}
+
+type IfmaMsghdr struct {
+       Msglen    uint16
+       Version   uint8
+       Type      uint8
+       Addrs     int32
+       Flags     int32
+       Index     uint16
+       Pad_cgo_0 [2]byte
+}
+
+type IfmaMsghdr2 struct {
+       Msglen    uint16
+       Version   uint8
+       Type      uint8
+       Addrs     int32
+       Flags     int32
+       Index     uint16
+       Pad_cgo_0 [2]byte
+       Refcount  int32
+}
+
+type RtMsghdr struct {
+       Msglen    uint16
+       Version   uint8
+       Type      uint8
+       Index     uint16
+       Pad_cgo_0 [2]byte
+       Flags     int32
+       Addrs     int32
+       Pid       int32
+       Seq       int32
+       Errno     int32
+       Use       int32
+       Inits     uint32
+       Rmx       RtMetrics
+}
+
+type RtMetrics struct {
+       Locks    uint32
+       Mtu      uint32
+       Hopcount uint32
+       Expire   int32
+       Recvpipe uint32
+       Sendpipe uint32
+       Ssthresh uint32
+       Rtt      uint32
+       Rttvar   uint32
+       Pksent   uint32
+       Filler   [4]uint32
+}
+
+const (
+       SizeofBpfVersion = 0x4
+       SizeofBpfStat    = 0x8
+       SizeofBpfProgram = 0x10
+       SizeofBpfInsn    = 0x8
+       SizeofBpfHdr     = 0x14
+)
+
+type BpfVersion struct {
+       Major uint16
+       Minor uint16
+}
+
+type BpfStat struct {
+       Recv uint32
+       Drop uint32
+}
+
+type BpfProgram struct {
+       Len       uint32
+       Pad_cgo_0 [4]byte
+       Insns     *BpfInsn
+}
+
+type BpfInsn struct {
+       Code uint16
+       Jt   uint8
+       Jf   uint8
+       K    uint32
+}
+
+type BpfHdr struct {
+       Tstamp    Timeval32
+       Caplen    uint32
+       Datalen   uint32
+       Hdrlen    uint16
+       Pad_cgo_0 [2]byte
+}
+
+type Termios struct {
+       Iflag     uint64
+       Oflag     uint64
+       Cflag     uint64
+       Lflag     uint64
+       Cc        [20]uint8
+       Pad_cgo_0 [4]byte
+       Ispeed    uint64
+       Ospeed    uint64
+}
+
+type Winsize struct {
+       Row    uint16
+       Col    uint16
+       Xpixel uint16
+       Ypixel uint16
+}
+
+const (
+       AT_FDCWD            = -0x2
+       AT_REMOVEDIR        = 0x80
+       AT_SYMLINK_FOLLOW   = 0x40
+       AT_SYMLINK_NOFOLLOW = 0x20
+)
diff --git a/vendor/golang.org/x/sys/unix/ztypes_darwin_arm.go b/vendor/golang.org/x/sys/unix/ztypes_darwin_arm.go
new file mode 100644 (file)
index 0000000..4dca0d4
--- /dev/null
@@ -0,0 +1,463 @@
+// NOTE: cgo can't generate struct Stat_t and struct Statfs_t yet
+// Created by cgo -godefs - DO NOT EDIT
+// cgo -godefs types_darwin.go
+
+// +build arm,darwin
+
+package unix
+
+const (
+       sizeofPtr      = 0x4
+       sizeofShort    = 0x2
+       sizeofInt      = 0x4
+       sizeofLong     = 0x4
+       sizeofLongLong = 0x8
+)
+
+type (
+       _C_short     int16
+       _C_int       int32
+       _C_long      int32
+       _C_long_long int64
+)
+
+type Timespec struct {
+       Sec  int32
+       Nsec int32
+}
+
+type Timeval struct {
+       Sec  int32
+       Usec int32
+}
+
+type Timeval32 [0]byte
+
+type Rusage struct {
+       Utime    Timeval
+       Stime    Timeval
+       Maxrss   int32
+       Ixrss    int32
+       Idrss    int32
+       Isrss    int32
+       Minflt   int32
+       Majflt   int32
+       Nswap    int32
+       Inblock  int32
+       Oublock  int32
+       Msgsnd   int32
+       Msgrcv   int32
+       Nsignals int32
+       Nvcsw    int32
+       Nivcsw   int32
+}
+
+type Rlimit struct {
+       Cur uint64
+       Max uint64
+}
+
+type _Gid_t uint32
+
+type Stat_t struct {
+       Dev           int32
+       Mode          uint16
+       Nlink         uint16
+       Ino           uint64
+       Uid           uint32
+       Gid           uint32
+       Rdev          int32
+       Atimespec     Timespec
+       Mtimespec     Timespec
+       Ctimespec     Timespec
+       Birthtimespec Timespec
+       Size          int64
+       Blocks        int64
+       Blksize       int32
+       Flags         uint32
+       Gen           uint32
+       Lspare        int32
+       Qspare        [2]int64
+}
+
+type Statfs_t struct {
+       Bsize       uint32
+       Iosize      int32
+       Blocks      uint64
+       Bfree       uint64
+       Bavail      uint64
+       Files       uint64
+       Ffree       uint64
+       Fsid        Fsid
+       Owner       uint32
+       Type        uint32
+       Flags       uint32
+       Fssubtype   uint32
+       Fstypename  [16]int8
+       Mntonname   [1024]int8
+       Mntfromname [1024]int8
+       Reserved    [8]uint32
+}
+
+type Flock_t struct {
+       Start  int64
+       Len    int64
+       Pid    int32
+       Type   int16
+       Whence int16
+}
+
+type Fstore_t struct {
+       Flags      uint32
+       Posmode    int32
+       Offset     int64
+       Length     int64
+       Bytesalloc int64
+}
+
+type Radvisory_t struct {
+       Offset int64
+       Count  int32
+}
+
+type Fbootstraptransfer_t struct {
+       Offset int64
+       Length uint32
+       Buffer *byte
+}
+
+type Log2phys_t struct {
+       Flags       uint32
+       Contigbytes int64
+       Devoffset   int64
+}
+
+type Fsid struct {
+       Val [2]int32
+}
+
+type Dirent struct {
+       Ino       uint64
+       Seekoff   uint64
+       Reclen    uint16
+       Namlen    uint16
+       Type      uint8
+       Name      [1024]int8
+       Pad_cgo_0 [3]byte
+}
+
+type RawSockaddrInet4 struct {
+       Len    uint8
+       Family uint8
+       Port   uint16
+       Addr   [4]byte /* in_addr */
+       Zero   [8]int8
+}
+
+type RawSockaddrInet6 struct {
+       Len      uint8
+       Family   uint8
+       Port     uint16
+       Flowinfo uint32
+       Addr     [16]byte /* in6_addr */
+       Scope_id uint32
+}
+
+type RawSockaddrUnix struct {
+       Len    uint8
+       Family uint8
+       Path   [104]int8
+}
+
+type RawSockaddrDatalink struct {
+       Len    uint8
+       Family uint8
+       Index  uint16
+       Type   uint8
+       Nlen   uint8
+       Alen   uint8
+       Slen   uint8
+       Data   [12]int8
+}
+
+type RawSockaddr struct {
+       Len    uint8
+       Family uint8
+       Data   [14]int8
+}
+
+type RawSockaddrAny struct {
+       Addr RawSockaddr
+       Pad  [92]int8
+}
+
+type _Socklen uint32
+
+type Linger struct {
+       Onoff  int32
+       Linger int32
+}
+
+type Iovec struct {
+       Base *byte
+       Len  uint32
+}
+
+type IPMreq struct {
+       Multiaddr [4]byte /* in_addr */
+       Interface [4]byte /* in_addr */
+}
+
+type IPv6Mreq struct {
+       Multiaddr [16]byte /* in6_addr */
+       Interface uint32
+}
+
+type Msghdr struct {
+       Name       *byte
+       Namelen    uint32
+       Iov        *Iovec
+       Iovlen     int32
+       Control    *byte
+       Controllen uint32
+       Flags      int32
+}
+
+type Cmsghdr struct {
+       Len   uint32
+       Level int32
+       Type  int32
+}
+
+type Inet4Pktinfo struct {
+       Ifindex  uint32
+       Spec_dst [4]byte /* in_addr */
+       Addr     [4]byte /* in_addr */
+}
+
+type Inet6Pktinfo struct {
+       Addr    [16]byte /* in6_addr */
+       Ifindex uint32
+}
+
+type IPv6MTUInfo struct {
+       Addr RawSockaddrInet6
+       Mtu  uint32
+}
+
+type ICMPv6Filter struct {
+       Filt [8]uint32
+}
+
+const (
+       SizeofSockaddrInet4    = 0x10
+       SizeofSockaddrInet6    = 0x1c
+       SizeofSockaddrAny      = 0x6c
+       SizeofSockaddrUnix     = 0x6a
+       SizeofSockaddrDatalink = 0x14
+       SizeofLinger           = 0x8
+       SizeofIPMreq           = 0x8
+       SizeofIPv6Mreq         = 0x14
+       SizeofMsghdr           = 0x1c
+       SizeofCmsghdr          = 0xc
+       SizeofInet4Pktinfo     = 0xc
+       SizeofInet6Pktinfo     = 0x14
+       SizeofIPv6MTUInfo      = 0x20
+       SizeofICMPv6Filter     = 0x20
+)
+
+const (
+       PTRACE_TRACEME = 0x0
+       PTRACE_CONT    = 0x7
+       PTRACE_KILL    = 0x8
+)
+
+type Kevent_t struct {
+       Ident  uint32
+       Filter int16
+       Flags  uint16
+       Fflags uint32
+       Data   int32
+       Udata  *byte
+}
+
+type FdSet struct {
+       Bits [32]int32
+}
+
+const (
+       SizeofIfMsghdr    = 0x70
+       SizeofIfData      = 0x60
+       SizeofIfaMsghdr   = 0x14
+       SizeofIfmaMsghdr  = 0x10
+       SizeofIfmaMsghdr2 = 0x14
+       SizeofRtMsghdr    = 0x5c
+       SizeofRtMetrics   = 0x38
+)
+
+type IfMsghdr struct {
+       Msglen    uint16
+       Version   uint8
+       Type      uint8
+       Addrs     int32
+       Flags     int32
+       Index     uint16
+       Pad_cgo_0 [2]byte
+       Data      IfData
+}
+
+type IfData struct {
+       Type       uint8
+       Typelen    uint8
+       Physical   uint8
+       Addrlen    uint8
+       Hdrlen     uint8
+       Recvquota  uint8
+       Xmitquota  uint8
+       Unused1    uint8
+       Mtu        uint32
+       Metric     uint32
+       Baudrate   uint32
+       Ipackets   uint32
+       Ierrors    uint32
+       Opackets   uint32
+       Oerrors    uint32
+       Collisions uint32
+       Ibytes     uint32
+       Obytes     uint32
+       Imcasts    uint32
+       Omcasts    uint32
+       Iqdrops    uint32
+       Noproto    uint32
+       Recvtiming uint32
+       Xmittiming uint32
+       Lastchange Timeval
+       Unused2    uint32
+       Hwassist   uint32
+       Reserved1  uint32
+       Reserved2  uint32
+}
+
+type IfaMsghdr struct {
+       Msglen    uint16
+       Version   uint8
+       Type      uint8
+       Addrs     int32
+       Flags     int32
+       Index     uint16
+       Pad_cgo_0 [2]byte
+       Metric    int32
+}
+
+type IfmaMsghdr struct {
+       Msglen    uint16
+       Version   uint8
+       Type      uint8
+       Addrs     int32
+       Flags     int32
+       Index     uint16
+       Pad_cgo_0 [2]byte
+}
+
+type IfmaMsghdr2 struct {
+       Msglen    uint16
+       Version   uint8
+       Type      uint8
+       Addrs     int32
+       Flags     int32
+       Index     uint16
+       Pad_cgo_0 [2]byte
+       Refcount  int32
+}
+
+type RtMsghdr struct {
+       Msglen    uint16
+       Version   uint8
+       Type      uint8
+       Index     uint16
+       Pad_cgo_0 [2]byte
+       Flags     int32
+       Addrs     int32
+       Pid       int32
+       Seq       int32
+       Errno     int32
+       Use       int32
+       Inits     uint32
+       Rmx       RtMetrics
+}
+
+type RtMetrics struct {
+       Locks    uint32
+       Mtu      uint32
+       Hopcount uint32
+       Expire   int32
+       Recvpipe uint32
+       Sendpipe uint32
+       Ssthresh uint32
+       Rtt      uint32
+       Rttvar   uint32
+       Pksent   uint32
+       Filler   [4]uint32
+}
+
+const (
+       SizeofBpfVersion = 0x4
+       SizeofBpfStat    = 0x8
+       SizeofBpfProgram = 0x8
+       SizeofBpfInsn    = 0x8
+       SizeofBpfHdr     = 0x14
+)
+
+type BpfVersion struct {
+       Major uint16
+       Minor uint16
+}
+
+type BpfStat struct {
+       Recv uint32
+       Drop uint32
+}
+
+type BpfProgram struct {
+       Len   uint32
+       Insns *BpfInsn
+}
+
+type BpfInsn struct {
+       Code uint16
+       Jt   uint8
+       Jf   uint8
+       K    uint32
+}
+
+type BpfHdr struct {
+       Tstamp    Timeval
+       Caplen    uint32
+       Datalen   uint32
+       Hdrlen    uint16
+       Pad_cgo_0 [2]byte
+}
+
+type Termios struct {
+       Iflag  uint32
+       Oflag  uint32
+       Cflag  uint32
+       Lflag  uint32
+       Cc     [20]uint8
+       Ispeed uint32
+       Ospeed uint32
+}
+
+type Winsize struct {
+       Row    uint16
+       Col    uint16
+       Xpixel uint16
+       Ypixel uint16
+}
+
+const (
+       AT_FDCWD            = -0x2
+       AT_REMOVEDIR        = 0x80
+       AT_SYMLINK_FOLLOW   = 0x40
+       AT_SYMLINK_NOFOLLOW = 0x20
+)
diff --git a/vendor/golang.org/x/sys/unix/ztypes_darwin_arm64.go b/vendor/golang.org/x/sys/unix/ztypes_darwin_arm64.go
new file mode 100644 (file)
index 0000000..f2881fd
--- /dev/null
@@ -0,0 +1,471 @@
+// +build arm64,darwin
+// Created by cgo -godefs - DO NOT EDIT
+// cgo -godefs types_darwin.go
+
+package unix
+
+const (
+       sizeofPtr      = 0x8
+       sizeofShort    = 0x2
+       sizeofInt      = 0x4
+       sizeofLong     = 0x8
+       sizeofLongLong = 0x8
+)
+
+type (
+       _C_short     int16
+       _C_int       int32
+       _C_long      int64
+       _C_long_long int64
+)
+
+type Timespec struct {
+       Sec  int64
+       Nsec int64
+}
+
+type Timeval struct {
+       Sec       int64
+       Usec      int32
+       Pad_cgo_0 [4]byte
+}
+
+type Timeval32 struct {
+       Sec  int32
+       Usec int32
+}
+
+type Rusage struct {
+       Utime    Timeval
+       Stime    Timeval
+       Maxrss   int64
+       Ixrss    int64
+       Idrss    int64
+       Isrss    int64
+       Minflt   int64
+       Majflt   int64
+       Nswap    int64
+       Inblock  int64
+       Oublock  int64
+       Msgsnd   int64
+       Msgrcv   int64
+       Nsignals int64
+       Nvcsw    int64
+       Nivcsw   int64
+}
+
+type Rlimit struct {
+       Cur uint64
+       Max uint64
+}
+
+type _Gid_t uint32
+
+type Stat_t struct {
+       Dev           int32
+       Mode          uint16
+       Nlink         uint16
+       Ino           uint64
+       Uid           uint32
+       Gid           uint32
+       Rdev          int32
+       Pad_cgo_0     [4]byte
+       Atimespec     Timespec
+       Mtimespec     Timespec
+       Ctimespec     Timespec
+       Birthtimespec Timespec
+       Size          int64
+       Blocks        int64
+       Blksize       int32
+       Flags         uint32
+       Gen           uint32
+       Lspare        int32
+       Qspare        [2]int64
+}
+
+type Statfs_t struct {
+       Bsize       uint32
+       Iosize      int32
+       Blocks      uint64
+       Bfree       uint64
+       Bavail      uint64
+       Files       uint64
+       Ffree       uint64
+       Fsid        Fsid
+       Owner       uint32
+       Type        uint32
+       Flags       uint32
+       Fssubtype   uint32
+       Fstypename  [16]int8
+       Mntonname   [1024]int8
+       Mntfromname [1024]int8
+       Reserved    [8]uint32
+}
+
+type Flock_t struct {
+       Start  int64
+       Len    int64
+       Pid    int32
+       Type   int16
+       Whence int16
+}
+
+type Fstore_t struct {
+       Flags      uint32
+       Posmode    int32
+       Offset     int64
+       Length     int64
+       Bytesalloc int64
+}
+
+type Radvisory_t struct {
+       Offset    int64
+       Count     int32
+       Pad_cgo_0 [4]byte
+}
+
+type Fbootstraptransfer_t struct {
+       Offset int64
+       Length uint64
+       Buffer *byte
+}
+
+type Log2phys_t struct {
+       Flags     uint32
+       Pad_cgo_0 [8]byte
+       Pad_cgo_1 [8]byte
+}
+
+type Fsid struct {
+       Val [2]int32
+}
+
+type Dirent struct {
+       Ino       uint64
+       Seekoff   uint64
+       Reclen    uint16
+       Namlen    uint16
+       Type      uint8
+       Name      [1024]int8
+       Pad_cgo_0 [3]byte
+}
+
+type RawSockaddrInet4 struct {
+       Len    uint8
+       Family uint8
+       Port   uint16
+       Addr   [4]byte /* in_addr */
+       Zero   [8]int8
+}
+
+type RawSockaddrInet6 struct {
+       Len      uint8
+       Family   uint8
+       Port     uint16
+       Flowinfo uint32
+       Addr     [16]byte /* in6_addr */
+       Scope_id uint32
+}
+
+type RawSockaddrUnix struct {
+       Len    uint8
+       Family uint8
+       Path   [104]int8
+}
+
+type RawSockaddrDatalink struct {
+       Len    uint8
+       Family uint8
+       Index  uint16
+       Type   uint8
+       Nlen   uint8
+       Alen   uint8
+       Slen   uint8
+       Data   [12]int8
+}
+
+type RawSockaddr struct {
+       Len    uint8
+       Family uint8
+       Data   [14]int8
+}
+
+type RawSockaddrAny struct {
+       Addr RawSockaddr
+       Pad  [92]int8
+}
+
+type _Socklen uint32
+
+type Linger struct {
+       Onoff  int32
+       Linger int32
+}
+
+type Iovec struct {
+       Base *byte
+       Len  uint64
+}
+
+type IPMreq struct {
+       Multiaddr [4]byte /* in_addr */
+       Interface [4]byte /* in_addr */
+}
+
+type IPv6Mreq struct {
+       Multiaddr [16]byte /* in6_addr */
+       Interface uint32
+}
+
+type Msghdr struct {
+       Name       *byte
+       Namelen    uint32
+       Pad_cgo_0  [4]byte
+       Iov        *Iovec
+       Iovlen     int32
+       Pad_cgo_1  [4]byte
+       Control    *byte
+       Controllen uint32
+       Flags      int32
+}
+
+type Cmsghdr struct {
+       Len   uint32
+       Level int32
+       Type  int32
+}
+
+type Inet4Pktinfo struct {
+       Ifindex  uint32
+       Spec_dst [4]byte /* in_addr */
+       Addr     [4]byte /* in_addr */
+}
+
+type Inet6Pktinfo struct {
+       Addr    [16]byte /* in6_addr */
+       Ifindex uint32
+}
+
+type IPv6MTUInfo struct {
+       Addr RawSockaddrInet6
+       Mtu  uint32
+}
+
+type ICMPv6Filter struct {
+       Filt [8]uint32
+}
+
+const (
+       SizeofSockaddrInet4    = 0x10
+       SizeofSockaddrInet6    = 0x1c
+       SizeofSockaddrAny      = 0x6c
+       SizeofSockaddrUnix     = 0x6a
+       SizeofSockaddrDatalink = 0x14
+       SizeofLinger           = 0x8
+       SizeofIPMreq           = 0x8
+       SizeofIPv6Mreq         = 0x14
+       SizeofMsghdr           = 0x30
+       SizeofCmsghdr          = 0xc
+       SizeofInet4Pktinfo     = 0xc
+       SizeofInet6Pktinfo     = 0x14
+       SizeofIPv6MTUInfo      = 0x20
+       SizeofICMPv6Filter     = 0x20
+)
+
+const (
+       PTRACE_TRACEME = 0x0
+       PTRACE_CONT    = 0x7
+       PTRACE_KILL    = 0x8
+)
+
+type Kevent_t struct {
+       Ident  uint64
+       Filter int16
+       Flags  uint16
+       Fflags uint32
+       Data   int64
+       Udata  *byte
+}
+
+type FdSet struct {
+       Bits [32]int32
+}
+
+const (
+       SizeofIfMsghdr    = 0x70
+       SizeofIfData      = 0x60
+       SizeofIfaMsghdr   = 0x14
+       SizeofIfmaMsghdr  = 0x10
+       SizeofIfmaMsghdr2 = 0x14
+       SizeofRtMsghdr    = 0x5c
+       SizeofRtMetrics   = 0x38
+)
+
+type IfMsghdr struct {
+       Msglen    uint16
+       Version   uint8
+       Type      uint8
+       Addrs     int32
+       Flags     int32
+       Index     uint16
+       Pad_cgo_0 [2]byte
+       Data      IfData
+}
+
+type IfData struct {
+       Type       uint8
+       Typelen    uint8
+       Physical   uint8
+       Addrlen    uint8
+       Hdrlen     uint8
+       Recvquota  uint8
+       Xmitquota  uint8
+       Unused1    uint8
+       Mtu        uint32
+       Metric     uint32
+       Baudrate   uint32
+       Ipackets   uint32
+       Ierrors    uint32
+       Opackets   uint32
+       Oerrors    uint32
+       Collisions uint32
+       Ibytes     uint32
+       Obytes     uint32
+       Imcasts    uint32
+       Omcasts    uint32
+       Iqdrops    uint32
+       Noproto    uint32
+       Recvtiming uint32
+       Xmittiming uint32
+       Lastchange Timeval32
+       Unused2    uint32
+       Hwassist   uint32
+       Reserved1  uint32
+       Reserved2  uint32
+}
+
+type IfaMsghdr struct {
+       Msglen    uint16
+       Version   uint8
+       Type      uint8
+       Addrs     int32
+       Flags     int32
+       Index     uint16
+       Pad_cgo_0 [2]byte
+       Metric    int32
+}
+
+type IfmaMsghdr struct {
+       Msglen    uint16
+       Version   uint8
+       Type      uint8
+       Addrs     int32
+       Flags     int32
+       Index     uint16
+       Pad_cgo_0 [2]byte
+}
+
+type IfmaMsghdr2 struct {
+       Msglen    uint16
+       Version   uint8
+       Type      uint8
+       Addrs     int32
+       Flags     int32
+       Index     uint16
+       Pad_cgo_0 [2]byte
+       Refcount  int32
+}
+
+type RtMsghdr struct {
+       Msglen    uint16
+       Version   uint8
+       Type      uint8
+       Index     uint16
+       Pad_cgo_0 [2]byte
+       Flags     int32
+       Addrs     int32
+       Pid       int32
+       Seq       int32
+       Errno     int32
+       Use       int32
+       Inits     uint32
+       Rmx       RtMetrics
+}
+
+type RtMetrics struct {
+       Locks    uint32
+       Mtu      uint32
+       Hopcount uint32
+       Expire   int32
+       Recvpipe uint32
+       Sendpipe uint32
+       Ssthresh uint32
+       Rtt      uint32
+       Rttvar   uint32
+       Pksent   uint32
+       Filler   [4]uint32
+}
+
+const (
+       SizeofBpfVersion = 0x4
+       SizeofBpfStat    = 0x8
+       SizeofBpfProgram = 0x10
+       SizeofBpfInsn    = 0x8
+       SizeofBpfHdr     = 0x14
+)
+
+type BpfVersion struct {
+       Major uint16
+       Minor uint16
+}
+
+type BpfStat struct {
+       Recv uint32
+       Drop uint32
+}
+
+type BpfProgram struct {
+       Len       uint32
+       Pad_cgo_0 [4]byte
+       Insns     *BpfInsn
+}
+
+type BpfInsn struct {
+       Code uint16
+       Jt   uint8
+       Jf   uint8
+       K    uint32
+}
+
+type BpfHdr struct {
+       Tstamp    Timeval32
+       Caplen    uint32
+       Datalen   uint32
+       Hdrlen    uint16
+       Pad_cgo_0 [2]byte
+}
+
+type Termios struct {
+       Iflag     uint64
+       Oflag     uint64
+       Cflag     uint64
+       Lflag     uint64
+       Cc        [20]uint8
+       Pad_cgo_0 [4]byte
+       Ispeed    uint64
+       Ospeed    uint64
+}
+
+type Winsize struct {
+       Row    uint16
+       Col    uint16
+       Xpixel uint16
+       Ypixel uint16
+}
+
+const (
+       AT_FDCWD            = -0x2
+       AT_REMOVEDIR        = 0x80
+       AT_SYMLINK_FOLLOW   = 0x40
+       AT_SYMLINK_NOFOLLOW = 0x20
+)
diff --git a/vendor/golang.org/x/sys/unix/ztypes_dragonfly_amd64.go b/vendor/golang.org/x/sys/unix/ztypes_dragonfly_amd64.go
new file mode 100644 (file)
index 0000000..67c6bf8
--- /dev/null
@@ -0,0 +1,448 @@
+// cgo -godefs types_dragonfly.go | go run mkpost.go
+// Code generated by the command above; see README.md. DO NOT EDIT.
+
+// +build amd64,dragonfly
+
+package unix
+
+const (
+       sizeofPtr      = 0x8
+       sizeofShort    = 0x2
+       sizeofInt      = 0x4
+       sizeofLong     = 0x8
+       sizeofLongLong = 0x8
+)
+
+type (
+       _C_short     int16
+       _C_int       int32
+       _C_long      int64
+       _C_long_long int64
+)
+
+type Timespec struct {
+       Sec  int64
+       Nsec int64
+}
+
+type Timeval struct {
+       Sec  int64
+       Usec int64
+}
+
+type Rusage struct {
+       Utime    Timeval
+       Stime    Timeval
+       Maxrss   int64
+       Ixrss    int64
+       Idrss    int64
+       Isrss    int64
+       Minflt   int64
+       Majflt   int64
+       Nswap    int64
+       Inblock  int64
+       Oublock  int64
+       Msgsnd   int64
+       Msgrcv   int64
+       Nsignals int64
+       Nvcsw    int64
+       Nivcsw   int64
+}
+
+type Rlimit struct {
+       Cur int64
+       Max int64
+}
+
+type _Gid_t uint32
+
+const (
+       S_IFMT   = 0xf000
+       S_IFIFO  = 0x1000
+       S_IFCHR  = 0x2000
+       S_IFDIR  = 0x4000
+       S_IFBLK  = 0x6000
+       S_IFREG  = 0x8000
+       S_IFLNK  = 0xa000
+       S_IFSOCK = 0xc000
+       S_ISUID  = 0x800
+       S_ISGID  = 0x400
+       S_ISVTX  = 0x200
+       S_IRUSR  = 0x100
+       S_IWUSR  = 0x80
+       S_IXUSR  = 0x40
+)
+
+type Stat_t struct {
+       Ino      uint64
+       Nlink    uint32
+       Dev      uint32
+       Mode     uint16
+       Padding1 uint16
+       Uid      uint32
+       Gid      uint32
+       Rdev     uint32
+       Atim     Timespec
+       Mtim     Timespec
+       Ctim     Timespec
+       Size     int64
+       Blocks   int64
+       Blksize  uint32
+       Flags    uint32
+       Gen      uint32
+       Lspare   int32
+       Qspare1  int64
+       Qspare2  int64
+}
+
+type Statfs_t struct {
+       Spare2      int64
+       Bsize       int64
+       Iosize      int64
+       Blocks      int64
+       Bfree       int64
+       Bavail      int64
+       Files       int64
+       Ffree       int64
+       Fsid        Fsid
+       Owner       uint32
+       Type        int32
+       Flags       int32
+       Pad_cgo_0   [4]byte
+       Syncwrites  int64
+       Asyncwrites int64
+       Fstypename  [16]int8
+       Mntonname   [80]int8
+       Syncreads   int64
+       Asyncreads  int64
+       Spares1     int16
+       Mntfromname [80]int8
+       Spares2     int16
+       Pad_cgo_1   [4]byte
+       Spare       [2]int64
+}
+
+type Flock_t struct {
+       Start  int64
+       Len    int64
+       Pid    int32
+       Type   int16
+       Whence int16
+}
+
+type Dirent struct {
+       Fileno  uint64
+       Namlen  uint16
+       Type    uint8
+       Unused1 uint8
+       Unused2 uint32
+       Name    [256]int8
+}
+
+type Fsid struct {
+       Val [2]int32
+}
+
+type RawSockaddrInet4 struct {
+       Len    uint8
+       Family uint8
+       Port   uint16
+       Addr   [4]byte /* in_addr */
+       Zero   [8]int8
+}
+
+type RawSockaddrInet6 struct {
+       Len      uint8
+       Family   uint8
+       Port     uint16
+       Flowinfo uint32
+       Addr     [16]byte /* in6_addr */
+       Scope_id uint32
+}
+
+type RawSockaddrUnix struct {
+       Len    uint8
+       Family uint8
+       Path   [104]int8
+}
+
+type RawSockaddrDatalink struct {
+       Len    uint8
+       Family uint8
+       Index  uint16
+       Type   uint8
+       Nlen   uint8
+       Alen   uint8
+       Slen   uint8
+       Data   [12]int8
+       Rcf    uint16
+       Route  [16]uint16
+}
+
+type RawSockaddr struct {
+       Len    uint8
+       Family uint8
+       Data   [14]int8
+}
+
+type RawSockaddrAny struct {
+       Addr RawSockaddr
+       Pad  [92]int8
+}
+
+type _Socklen uint32
+
+type Linger struct {
+       Onoff  int32
+       Linger int32
+}
+
+type Iovec struct {
+       Base *byte
+       Len  uint64
+}
+
+type IPMreq struct {
+       Multiaddr [4]byte /* in_addr */
+       Interface [4]byte /* in_addr */
+}
+
+type IPv6Mreq struct {
+       Multiaddr [16]byte /* in6_addr */
+       Interface uint32
+}
+
+type Msghdr struct {
+       Name       *byte
+       Namelen    uint32
+       Pad_cgo_0  [4]byte
+       Iov        *Iovec
+       Iovlen     int32
+       Pad_cgo_1  [4]byte
+       Control    *byte
+       Controllen uint32
+       Flags      int32
+}
+
+type Cmsghdr struct {
+       Len   uint32
+       Level int32
+       Type  int32
+}
+
+type Inet6Pktinfo struct {
+       Addr    [16]byte /* in6_addr */
+       Ifindex uint32
+}
+
+type IPv6MTUInfo struct {
+       Addr RawSockaddrInet6
+       Mtu  uint32
+}
+
+type ICMPv6Filter struct {
+       Filt [8]uint32
+}
+
+const (
+       SizeofSockaddrInet4    = 0x10
+       SizeofSockaddrInet6    = 0x1c
+       SizeofSockaddrAny      = 0x6c
+       SizeofSockaddrUnix     = 0x6a
+       SizeofSockaddrDatalink = 0x36
+       SizeofLinger           = 0x8
+       SizeofIPMreq           = 0x8
+       SizeofIPv6Mreq         = 0x14
+       SizeofMsghdr           = 0x30
+       SizeofCmsghdr          = 0xc
+       SizeofInet6Pktinfo     = 0x14
+       SizeofIPv6MTUInfo      = 0x20
+       SizeofICMPv6Filter     = 0x20
+)
+
+const (
+       PTRACE_TRACEME = 0x0
+       PTRACE_CONT    = 0x7
+       PTRACE_KILL    = 0x8
+)
+
+type Kevent_t struct {
+       Ident  uint64
+       Filter int16
+       Flags  uint16
+       Fflags uint32
+       Data   int64
+       Udata  *byte
+}
+
+type FdSet struct {
+       Bits [16]uint64
+}
+
+const (
+       SizeofIfMsghdr         = 0xb0
+       SizeofIfData           = 0xa0
+       SizeofIfaMsghdr        = 0x14
+       SizeofIfmaMsghdr       = 0x10
+       SizeofIfAnnounceMsghdr = 0x18
+       SizeofRtMsghdr         = 0x98
+       SizeofRtMetrics        = 0x70
+)
+
+type IfMsghdr struct {
+       Msglen    uint16
+       Version   uint8
+       Type      uint8
+       Addrs     int32
+       Flags     int32
+       Index     uint16
+       Pad_cgo_0 [2]byte
+       Data      IfData
+}
+
+type IfData struct {
+       Type       uint8
+       Physical   uint8
+       Addrlen    uint8
+       Hdrlen     uint8
+       Recvquota  uint8
+       Xmitquota  uint8
+       Pad_cgo_0  [2]byte
+       Mtu        uint64
+       Metric     uint64
+       Link_state uint64
+       Baudrate   uint64
+       Ipackets   uint64
+       Ierrors    uint64
+       Opackets   uint64
+       Oerrors    uint64
+       Collisions uint64
+       Ibytes     uint64
+       Obytes     uint64
+       Imcasts    uint64
+       Omcasts    uint64
+       Iqdrops    uint64
+       Noproto    uint64
+       Hwassist   uint64
+       Oqdrops    uint64
+       Lastchange Timeval
+}
+
+type IfaMsghdr struct {
+       Msglen    uint16
+       Version   uint8
+       Type      uint8
+       Addrs     int32
+       Flags     int32
+       Index     uint16
+       Pad_cgo_0 [2]byte
+       Metric    int32
+}
+
+type IfmaMsghdr struct {
+       Msglen    uint16
+       Version   uint8
+       Type      uint8
+       Addrs     int32
+       Flags     int32
+       Index     uint16
+       Pad_cgo_0 [2]byte
+}
+
+type IfAnnounceMsghdr struct {
+       Msglen  uint16
+       Version uint8
+       Type    uint8
+       Index   uint16
+       Name    [16]int8
+       What    uint16
+}
+
+type RtMsghdr struct {
+       Msglen    uint16
+       Version   uint8
+       Type      uint8
+       Index     uint16
+       Pad_cgo_0 [2]byte
+       Flags     int32
+       Addrs     int32
+       Pid       int32
+       Seq       int32
+       Errno     int32
+       Use       int32
+       Inits     uint64
+       Rmx       RtMetrics
+}
+
+type RtMetrics struct {
+       Locks     uint64
+       Mtu       uint64
+       Pksent    uint64
+       Expire    uint64
+       Sendpipe  uint64
+       Ssthresh  uint64
+       Rtt       uint64
+       Rttvar    uint64
+       Recvpipe  uint64
+       Hopcount  uint64
+       Mssopt    uint16
+       Pad       uint16
+       Pad_cgo_0 [4]byte
+       Msl       uint64
+       Iwmaxsegs uint64
+       Iwcapsegs uint64
+}
+
+const (
+       SizeofBpfVersion = 0x4
+       SizeofBpfStat    = 0x8
+       SizeofBpfProgram = 0x10
+       SizeofBpfInsn    = 0x8
+       SizeofBpfHdr     = 0x20
+)
+
+type BpfVersion struct {
+       Major uint16
+       Minor uint16
+}
+
+type BpfStat struct {
+       Recv uint32
+       Drop uint32
+}
+
+type BpfProgram struct {
+       Len       uint32
+       Pad_cgo_0 [4]byte
+       Insns     *BpfInsn
+}
+
+type BpfInsn struct {
+       Code uint16
+       Jt   uint8
+       Jf   uint8
+       K    uint32
+}
+
+type BpfHdr struct {
+       Tstamp    Timeval
+       Caplen    uint32
+       Datalen   uint32
+       Hdrlen    uint16
+       Pad_cgo_0 [6]byte
+}
+
+type Termios struct {
+       Iflag  uint32
+       Oflag  uint32
+       Cflag  uint32
+       Lflag  uint32
+       Cc     [20]uint8
+       Ispeed uint32
+       Ospeed uint32
+}
+
+const (
+       AT_FDCWD            = 0xfffafdcd
+       AT_SYMLINK_NOFOLLOW = 0x1
+)
diff --git a/vendor/golang.org/x/sys/unix/ztypes_freebsd_386.go b/vendor/golang.org/x/sys/unix/ztypes_freebsd_386.go
new file mode 100644 (file)
index 0000000..5b28bcb
--- /dev/null
@@ -0,0 +1,521 @@
+// cgo -godefs types_freebsd.go | go run mkpost.go
+// Code generated by the command above; see README.md. DO NOT EDIT.
+
+// +build 386,freebsd
+
+package unix
+
+const (
+       sizeofPtr      = 0x4
+       sizeofShort    = 0x2
+       sizeofInt      = 0x4
+       sizeofLong     = 0x4
+       sizeofLongLong = 0x8
+)
+
+type (
+       _C_short     int16
+       _C_int       int32
+       _C_long      int32
+       _C_long_long int64
+)
+
+type Timespec struct {
+       Sec  int32
+       Nsec int32
+}
+
+type Timeval struct {
+       Sec  int32
+       Usec int32
+}
+
+type Rusage struct {
+       Utime    Timeval
+       Stime    Timeval
+       Maxrss   int32
+       Ixrss    int32
+       Idrss    int32
+       Isrss    int32
+       Minflt   int32
+       Majflt   int32
+       Nswap    int32
+       Inblock  int32
+       Oublock  int32
+       Msgsnd   int32
+       Msgrcv   int32
+       Nsignals int32
+       Nvcsw    int32
+       Nivcsw   int32
+}
+
+type Rlimit struct {
+       Cur int64
+       Max int64
+}
+
+type _Gid_t uint32
+
+const (
+       S_IFMT   = 0xf000
+       S_IFIFO  = 0x1000
+       S_IFCHR  = 0x2000
+       S_IFDIR  = 0x4000
+       S_IFBLK  = 0x6000
+       S_IFREG  = 0x8000
+       S_IFLNK  = 0xa000
+       S_IFSOCK = 0xc000
+       S_ISUID  = 0x800
+       S_ISGID  = 0x400
+       S_ISVTX  = 0x200
+       S_IRUSR  = 0x100
+       S_IWUSR  = 0x80
+       S_IXUSR  = 0x40
+)
+
+type Stat_t struct {
+       Dev           uint32
+       Ino           uint32
+       Mode          uint16
+       Nlink         uint16
+       Uid           uint32
+       Gid           uint32
+       Rdev          uint32
+       Atimespec     Timespec
+       Mtimespec     Timespec
+       Ctimespec     Timespec
+       Size          int64
+       Blocks        int64
+       Blksize       int32
+       Flags         uint32
+       Gen           uint32
+       Lspare        int32
+       Birthtimespec Timespec
+       Pad_cgo_0     [8]byte
+}
+
+type Statfs_t struct {
+       Version     uint32
+       Type        uint32
+       Flags       uint64
+       Bsize       uint64
+       Iosize      uint64
+       Blocks      uint64
+       Bfree       uint64
+       Bavail      int64
+       Files       uint64
+       Ffree       int64
+       Syncwrites  uint64
+       Asyncwrites uint64
+       Syncreads   uint64
+       Asyncreads  uint64
+       Spare       [10]uint64
+       Namemax     uint32
+       Owner       uint32
+       Fsid        Fsid
+       Charspare   [80]int8
+       Fstypename  [16]int8
+       Mntfromname [88]int8
+       Mntonname   [88]int8
+}
+
+type Flock_t struct {
+       Start  int64
+       Len    int64
+       Pid    int32
+       Type   int16
+       Whence int16
+       Sysid  int32
+}
+
+type Dirent struct {
+       Fileno uint32
+       Reclen uint16
+       Type   uint8
+       Namlen uint8
+       Name   [256]int8
+}
+
+type Fsid struct {
+       Val [2]int32
+}
+
+const (
+       FADV_NORMAL     = 0x0
+       FADV_RANDOM     = 0x1
+       FADV_SEQUENTIAL = 0x2
+       FADV_WILLNEED   = 0x3
+       FADV_DONTNEED   = 0x4
+       FADV_NOREUSE    = 0x5
+)
+
+type RawSockaddrInet4 struct {
+       Len    uint8
+       Family uint8
+       Port   uint16
+       Addr   [4]byte /* in_addr */
+       Zero   [8]int8
+}
+
+type RawSockaddrInet6 struct {
+       Len      uint8
+       Family   uint8
+       Port     uint16
+       Flowinfo uint32
+       Addr     [16]byte /* in6_addr */
+       Scope_id uint32
+}
+
+type RawSockaddrUnix struct {
+       Len    uint8
+       Family uint8
+       Path   [104]int8
+}
+
+type RawSockaddrDatalink struct {
+       Len    uint8
+       Family uint8
+       Index  uint16
+       Type   uint8
+       Nlen   uint8
+       Alen   uint8
+       Slen   uint8
+       Data   [46]int8
+}
+
+type RawSockaddr struct {
+       Len    uint8
+       Family uint8
+       Data   [14]int8
+}
+
+type RawSockaddrAny struct {
+       Addr RawSockaddr
+       Pad  [92]int8
+}
+
+type _Socklen uint32
+
+type Linger struct {
+       Onoff  int32
+       Linger int32
+}
+
+type Iovec struct {
+       Base *byte
+       Len  uint32
+}
+
+type IPMreq struct {
+       Multiaddr [4]byte /* in_addr */
+       Interface [4]byte /* in_addr */
+}
+
+type IPMreqn struct {
+       Multiaddr [4]byte /* in_addr */
+       Address   [4]byte /* in_addr */
+       Ifindex   int32
+}
+
+type IPv6Mreq struct {
+       Multiaddr [16]byte /* in6_addr */
+       Interface uint32
+}
+
+type Msghdr struct {
+       Name       *byte
+       Namelen    uint32
+       Iov        *Iovec
+       Iovlen     int32
+       Control    *byte
+       Controllen uint32
+       Flags      int32
+}
+
+type Cmsghdr struct {
+       Len   uint32
+       Level int32
+       Type  int32
+}
+
+type Inet6Pktinfo struct {
+       Addr    [16]byte /* in6_addr */
+       Ifindex uint32
+}
+
+type IPv6MTUInfo struct {
+       Addr RawSockaddrInet6
+       Mtu  uint32
+}
+
+type ICMPv6Filter struct {
+       Filt [8]uint32
+}
+
+const (
+       SizeofSockaddrInet4    = 0x10
+       SizeofSockaddrInet6    = 0x1c
+       SizeofSockaddrAny      = 0x6c
+       SizeofSockaddrUnix     = 0x6a
+       SizeofSockaddrDatalink = 0x36
+       SizeofLinger           = 0x8
+       SizeofIPMreq           = 0x8
+       SizeofIPMreqn          = 0xc
+       SizeofIPv6Mreq         = 0x14
+       SizeofMsghdr           = 0x1c
+       SizeofCmsghdr          = 0xc
+       SizeofInet6Pktinfo     = 0x14
+       SizeofIPv6MTUInfo      = 0x20
+       SizeofICMPv6Filter     = 0x20
+)
+
+const (
+       PTRACE_TRACEME = 0x0
+       PTRACE_CONT    = 0x7
+       PTRACE_KILL    = 0x8
+)
+
+type Kevent_t struct {
+       Ident  uint32
+       Filter int16
+       Flags  uint16
+       Fflags uint32
+       Data   int32
+       Udata  *byte
+}
+
+type FdSet struct {
+       X__fds_bits [32]uint32
+}
+
+const (
+       sizeofIfMsghdr         = 0xa8
+       SizeofIfMsghdr         = 0x60
+       sizeofIfData           = 0x98
+       SizeofIfData           = 0x50
+       SizeofIfaMsghdr        = 0x14
+       SizeofIfmaMsghdr       = 0x10
+       SizeofIfAnnounceMsghdr = 0x18
+       SizeofRtMsghdr         = 0x5c
+       SizeofRtMetrics        = 0x38
+)
+
+type ifMsghdr struct {
+       Msglen    uint16
+       Version   uint8
+       Type      uint8
+       Addrs     int32
+       Flags     int32
+       Index     uint16
+       Pad_cgo_0 [2]byte
+       Data      ifData
+}
+
+type IfMsghdr struct {
+       Msglen    uint16
+       Version   uint8
+       Type      uint8
+       Addrs     int32
+       Flags     int32
+       Index     uint16
+       Pad_cgo_0 [2]byte
+       Data      IfData
+}
+
+type ifData struct {
+       Type              uint8
+       Physical          uint8
+       Addrlen           uint8
+       Hdrlen            uint8
+       Link_state        uint8
+       Vhid              uint8
+       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 IfData struct {
+       Type        uint8
+       Physical    uint8
+       Addrlen     uint8
+       Hdrlen      uint8
+       Link_state  uint8
+       Spare_char1 uint8
+       Spare_char2 uint8
+       Datalen     uint8
+       Mtu         uint32
+       Metric      uint32
+       Baudrate    uint32
+       Ipackets    uint32
+       Ierrors     uint32
+       Opackets    uint32
+       Oerrors     uint32
+       Collisions  uint32
+       Ibytes      uint32
+       Obytes      uint32
+       Imcasts     uint32
+       Omcasts     uint32
+       Iqdrops     uint32
+       Noproto     uint32
+       Hwassist    uint32
+       Epoch       int32
+       Lastchange  Timeval
+}
+
+type IfaMsghdr struct {
+       Msglen    uint16
+       Version   uint8
+       Type      uint8
+       Addrs     int32
+       Flags     int32
+       Index     uint16
+       Pad_cgo_0 [2]byte
+       Metric    int32
+}
+
+type IfmaMsghdr struct {
+       Msglen    uint16
+       Version   uint8
+       Type      uint8
+       Addrs     int32
+       Flags     int32
+       Index     uint16
+       Pad_cgo_0 [2]byte
+}
+
+type IfAnnounceMsghdr struct {
+       Msglen  uint16
+       Version uint8
+       Type    uint8
+       Index   uint16
+       Name    [16]int8
+       What    uint16
+}
+
+type RtMsghdr struct {
+       Msglen    uint16
+       Version   uint8
+       Type      uint8
+       Index     uint16
+       Pad_cgo_0 [2]byte
+       Flags     int32
+       Addrs     int32
+       Pid       int32
+       Seq       int32
+       Errno     int32
+       Fmask     int32
+       Inits     uint32
+       Rmx       RtMetrics
+}
+
+type RtMetrics struct {
+       Locks    uint32
+       Mtu      uint32
+       Hopcount uint32
+       Expire   uint32
+       Recvpipe uint32
+       Sendpipe uint32
+       Ssthresh uint32
+       Rtt      uint32
+       Rttvar   uint32
+       Pksent   uint32
+       Weight   uint32
+       Filler   [3]uint32
+}
+
+const (
+       SizeofBpfVersion    = 0x4
+       SizeofBpfStat       = 0x8
+       SizeofBpfZbuf       = 0xc
+       SizeofBpfProgram    = 0x8
+       SizeofBpfInsn       = 0x8
+       SizeofBpfHdr        = 0x14
+       SizeofBpfZbufHeader = 0x20
+)
+
+type BpfVersion struct {
+       Major uint16
+       Minor uint16
+}
+
+type BpfStat struct {
+       Recv uint32
+       Drop uint32
+}
+
+type BpfZbuf struct {
+       Bufa   *byte
+       Bufb   *byte
+       Buflen uint32
+}
+
+type BpfProgram struct {
+       Len   uint32
+       Insns *BpfInsn
+}
+
+type BpfInsn struct {
+       Code uint16
+       Jt   uint8
+       Jf   uint8
+       K    uint32
+}
+
+type BpfHdr struct {
+       Tstamp    Timeval
+       Caplen    uint32
+       Datalen   uint32
+       Hdrlen    uint16
+       Pad_cgo_0 [2]byte
+}
+
+type BpfZbufHeader struct {
+       Kernel_gen uint32
+       Kernel_len uint32
+       User_gen   uint32
+       X_bzh_pad  [5]uint32
+}
+
+type Termios struct {
+       Iflag  uint32
+       Oflag  uint32
+       Cflag  uint32
+       Lflag  uint32
+       Cc     [20]uint8
+       Ispeed uint32
+       Ospeed uint32
+}
+
+type Winsize struct {
+       Row    uint16
+       Col    uint16
+       Xpixel uint16
+       Ypixel uint16
+}
+
+const (
+       AT_FDCWD            = -0x64
+       AT_REMOVEDIR        = 0x800
+       AT_SYMLINK_FOLLOW   = 0x400
+       AT_SYMLINK_NOFOLLOW = 0x200
+)
+
+type CapRights struct {
+       Rights [2]uint64
+}
diff --git a/vendor/golang.org/x/sys/unix/ztypes_freebsd_amd64.go b/vendor/golang.org/x/sys/unix/ztypes_freebsd_amd64.go
new file mode 100644 (file)
index 0000000..c65d89e
--- /dev/null
@@ -0,0 +1,524 @@
+// cgo -godefs types_freebsd.go | go run mkpost.go
+// Code generated by the command above; see README.md. DO NOT EDIT.
+
+// +build amd64,freebsd
+
+package unix
+
+const (
+       sizeofPtr      = 0x8
+       sizeofShort    = 0x2
+       sizeofInt      = 0x4
+       sizeofLong     = 0x8
+       sizeofLongLong = 0x8
+)
+
+type (
+       _C_short     int16
+       _C_int       int32
+       _C_long      int64
+       _C_long_long int64
+)
+
+type Timespec struct {
+       Sec  int64
+       Nsec int64
+}
+
+type Timeval struct {
+       Sec  int64
+       Usec int64
+}
+
+type Rusage struct {
+       Utime    Timeval
+       Stime    Timeval
+       Maxrss   int64
+       Ixrss    int64
+       Idrss    int64
+       Isrss    int64
+       Minflt   int64
+       Majflt   int64
+       Nswap    int64
+       Inblock  int64
+       Oublock  int64
+       Msgsnd   int64
+       Msgrcv   int64
+       Nsignals int64
+       Nvcsw    int64
+       Nivcsw   int64
+}
+
+type Rlimit struct {
+       Cur int64
+       Max int64
+}
+
+type _Gid_t uint32
+
+const (
+       S_IFMT   = 0xf000
+       S_IFIFO  = 0x1000
+       S_IFCHR  = 0x2000
+       S_IFDIR  = 0x4000
+       S_IFBLK  = 0x6000
+       S_IFREG  = 0x8000
+       S_IFLNK  = 0xa000
+       S_IFSOCK = 0xc000
+       S_ISUID  = 0x800
+       S_ISGID  = 0x400
+       S_ISVTX  = 0x200
+       S_IRUSR  = 0x100
+       S_IWUSR  = 0x80
+       S_IXUSR  = 0x40
+)
+
+type Stat_t struct {
+       Dev           uint32
+       Ino           uint32
+       Mode          uint16
+       Nlink         uint16
+       Uid           uint32
+       Gid           uint32
+       Rdev          uint32
+       Atimespec     Timespec
+       Mtimespec     Timespec
+       Ctimespec     Timespec
+       Size          int64
+       Blocks        int64
+       Blksize       int32
+       Flags         uint32
+       Gen           uint32
+       Lspare        int32
+       Birthtimespec Timespec
+}
+
+type Statfs_t struct {
+       Version     uint32
+       Type        uint32
+       Flags       uint64
+       Bsize       uint64
+       Iosize      uint64
+       Blocks      uint64
+       Bfree       uint64
+       Bavail      int64
+       Files       uint64
+       Ffree       int64
+       Syncwrites  uint64
+       Asyncwrites uint64
+       Syncreads   uint64
+       Asyncreads  uint64
+       Spare       [10]uint64
+       Namemax     uint32
+       Owner       uint32
+       Fsid        Fsid
+       Charspare   [80]int8
+       Fstypename  [16]int8
+       Mntfromname [88]int8
+       Mntonname   [88]int8
+}
+
+type Flock_t struct {
+       Start     int64
+       Len       int64
+       Pid       int32
+       Type      int16
+       Whence    int16
+       Sysid     int32
+       Pad_cgo_0 [4]byte
+}
+
+type Dirent struct {
+       Fileno uint32
+       Reclen uint16
+       Type   uint8
+       Namlen uint8
+       Name   [256]int8
+}
+
+type Fsid struct {
+       Val [2]int32
+}
+
+const (
+       FADV_NORMAL     = 0x0
+       FADV_RANDOM     = 0x1
+       FADV_SEQUENTIAL = 0x2
+       FADV_WILLNEED   = 0x3
+       FADV_DONTNEED   = 0x4
+       FADV_NOREUSE    = 0x5
+)
+
+type RawSockaddrInet4 struct {
+       Len    uint8
+       Family uint8
+       Port   uint16
+       Addr   [4]byte /* in_addr */
+       Zero   [8]int8
+}
+
+type RawSockaddrInet6 struct {
+       Len      uint8
+       Family   uint8
+       Port     uint16
+       Flowinfo uint32
+       Addr     [16]byte /* in6_addr */
+       Scope_id uint32
+}
+
+type RawSockaddrUnix struct {
+       Len    uint8
+       Family uint8
+       Path   [104]int8
+}
+
+type RawSockaddrDatalink struct {
+       Len    uint8
+       Family uint8
+       Index  uint16
+       Type   uint8
+       Nlen   uint8
+       Alen   uint8
+       Slen   uint8
+       Data   [46]int8
+}
+
+type RawSockaddr struct {
+       Len    uint8
+       Family uint8
+       Data   [14]int8
+}
+
+type RawSockaddrAny struct {
+       Addr RawSockaddr
+       Pad  [92]int8
+}
+
+type _Socklen uint32
+
+type Linger struct {
+       Onoff  int32
+       Linger int32
+}
+
+type Iovec struct {
+       Base *byte
+       Len  uint64
+}
+
+type IPMreq struct {
+       Multiaddr [4]byte /* in_addr */
+       Interface [4]byte /* in_addr */
+}
+
+type IPMreqn struct {
+       Multiaddr [4]byte /* in_addr */
+       Address   [4]byte /* in_addr */
+       Ifindex   int32
+}
+
+type IPv6Mreq struct {
+       Multiaddr [16]byte /* in6_addr */
+       Interface uint32
+}
+
+type Msghdr struct {
+       Name       *byte
+       Namelen    uint32
+       Pad_cgo_0  [4]byte
+       Iov        *Iovec
+       Iovlen     int32
+       Pad_cgo_1  [4]byte
+       Control    *byte
+       Controllen uint32
+       Flags      int32
+}
+
+type Cmsghdr struct {
+       Len   uint32
+       Level int32
+       Type  int32
+}
+
+type Inet6Pktinfo struct {
+       Addr    [16]byte /* in6_addr */
+       Ifindex uint32
+}
+
+type IPv6MTUInfo struct {
+       Addr RawSockaddrInet6
+       Mtu  uint32
+}
+
+type ICMPv6Filter struct {
+       Filt [8]uint32
+}
+
+const (
+       SizeofSockaddrInet4    = 0x10
+       SizeofSockaddrInet6    = 0x1c
+       SizeofSockaddrAny      = 0x6c
+       SizeofSockaddrUnix     = 0x6a
+       SizeofSockaddrDatalink = 0x36
+       SizeofLinger           = 0x8
+       SizeofIPMreq           = 0x8
+       SizeofIPMreqn          = 0xc
+       SizeofIPv6Mreq         = 0x14
+       SizeofMsghdr           = 0x30
+       SizeofCmsghdr          = 0xc
+       SizeofInet6Pktinfo     = 0x14
+       SizeofIPv6MTUInfo      = 0x20
+       SizeofICMPv6Filter     = 0x20
+)
+
+const (
+       PTRACE_TRACEME = 0x0
+       PTRACE_CONT    = 0x7
+       PTRACE_KILL    = 0x8
+)
+
+type Kevent_t struct {
+       Ident  uint64
+       Filter int16
+       Flags  uint16
+       Fflags uint32
+       Data   int64
+       Udata  *byte
+}
+
+type FdSet struct {
+       X__fds_bits [16]uint64
+}
+
+const (
+       sizeofIfMsghdr         = 0xa8
+       SizeofIfMsghdr         = 0xa8
+       sizeofIfData           = 0x98
+       SizeofIfData           = 0x98
+       SizeofIfaMsghdr        = 0x14
+       SizeofIfmaMsghdr       = 0x10
+       SizeofIfAnnounceMsghdr = 0x18
+       SizeofRtMsghdr         = 0x98
+       SizeofRtMetrics        = 0x70
+)
+
+type ifMsghdr struct {
+       Msglen    uint16
+       Version   uint8
+       Type      uint8
+       Addrs     int32
+       Flags     int32
+       Index     uint16
+       Pad_cgo_0 [2]byte
+       Data      ifData
+}
+
+type IfMsghdr struct {
+       Msglen    uint16
+       Version   uint8
+       Type      uint8
+       Addrs     int32
+       Flags     int32
+       Index     uint16
+       Pad_cgo_0 [2]byte
+       Data      IfData
+}
+
+type ifData struct {
+       Type              uint8
+       Physical          uint8
+       Addrlen           uint8
+       Hdrlen            uint8
+       Link_state        uint8
+       Vhid              uint8
+       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 IfData struct {
+       Type        uint8
+       Physical    uint8
+       Addrlen     uint8
+       Hdrlen      uint8
+       Link_state  uint8
+       Spare_char1 uint8
+       Spare_char2 uint8
+       Datalen     uint8
+       Mtu         uint64
+       Metric      uint64
+       Baudrate    uint64
+       Ipackets    uint64
+       Ierrors     uint64
+       Opackets    uint64
+       Oerrors     uint64
+       Collisions  uint64
+       Ibytes      uint64
+       Obytes      uint64
+       Imcasts     uint64
+       Omcasts     uint64
+       Iqdrops     uint64
+       Noproto     uint64
+       Hwassist    uint64
+       Epoch       int64
+       Lastchange  Timeval
+}
+
+type IfaMsghdr struct {
+       Msglen    uint16
+       Version   uint8
+       Type      uint8
+       Addrs     int32
+       Flags     int32
+       Index     uint16
+       Pad_cgo_0 [2]byte
+       Metric    int32
+}
+
+type IfmaMsghdr struct {
+       Msglen    uint16
+       Version   uint8
+       Type      uint8
+       Addrs     int32
+       Flags     int32
+       Index     uint16
+       Pad_cgo_0 [2]byte
+}
+
+type IfAnnounceMsghdr struct {
+       Msglen  uint16
+       Version uint8
+       Type    uint8
+       Index   uint16
+       Name    [16]int8
+       What    uint16
+}
+
+type RtMsghdr struct {
+       Msglen    uint16
+       Version   uint8
+       Type      uint8
+       Index     uint16
+       Pad_cgo_0 [2]byte
+       Flags     int32
+       Addrs     int32
+       Pid       int32
+       Seq       int32
+       Errno     int32
+       Fmask     int32
+       Inits     uint64
+       Rmx       RtMetrics
+}
+
+type RtMetrics struct {
+       Locks    uint64
+       Mtu      uint64
+       Hopcount uint64
+       Expire   uint64
+       Recvpipe uint64
+       Sendpipe uint64
+       Ssthresh uint64
+       Rtt      uint64
+       Rttvar   uint64
+       Pksent   uint64
+       Weight   uint64
+       Filler   [3]uint64
+}
+
+const (
+       SizeofBpfVersion    = 0x4
+       SizeofBpfStat       = 0x8
+       SizeofBpfZbuf       = 0x18
+       SizeofBpfProgram    = 0x10
+       SizeofBpfInsn       = 0x8
+       SizeofBpfHdr        = 0x20
+       SizeofBpfZbufHeader = 0x20
+)
+
+type BpfVersion struct {
+       Major uint16
+       Minor uint16
+}
+
+type BpfStat struct {
+       Recv uint32
+       Drop uint32
+}
+
+type BpfZbuf struct {
+       Bufa   *byte
+       Bufb   *byte
+       Buflen uint64
+}
+
+type BpfProgram struct {
+       Len       uint32
+       Pad_cgo_0 [4]byte
+       Insns     *BpfInsn
+}
+
+type BpfInsn struct {
+       Code uint16
+       Jt   uint8
+       Jf   uint8
+       K    uint32
+}
+
+type BpfHdr struct {
+       Tstamp    Timeval
+       Caplen    uint32
+       Datalen   uint32
+       Hdrlen    uint16
+       Pad_cgo_0 [6]byte
+}
+
+type BpfZbufHeader struct {
+       Kernel_gen uint32
+       Kernel_len uint32
+       User_gen   uint32
+       X_bzh_pad  [5]uint32
+}
+
+type Termios struct {
+       Iflag  uint32
+       Oflag  uint32
+       Cflag  uint32
+       Lflag  uint32
+       Cc     [20]uint8
+       Ispeed uint32
+       Ospeed uint32
+}
+
+type Winsize struct {
+       Row    uint16
+       Col    uint16
+       Xpixel uint16
+       Ypixel uint16
+}
+
+const (
+       AT_FDCWD            = -0x64
+       AT_REMOVEDIR        = 0x800
+       AT_SYMLINK_FOLLOW   = 0x400
+       AT_SYMLINK_NOFOLLOW = 0x200
+)
+
+type CapRights struct {
+       Rights [2]uint64
+}
diff --git a/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm.go b/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm.go
new file mode 100644 (file)
index 0000000..42c0a50
--- /dev/null
@@ -0,0 +1,524 @@
+// cgo -godefs -- -fsigned-char types_freebsd.go | go run mkpost.go
+// Code generated by the command above; see README.md. DO NOT EDIT.
+
+// +build arm,freebsd
+
+package unix
+
+const (
+       sizeofPtr      = 0x4
+       sizeofShort    = 0x2
+       sizeofInt      = 0x4
+       sizeofLong     = 0x4
+       sizeofLongLong = 0x8
+)
+
+type (
+       _C_short     int16
+       _C_int       int32
+       _C_long      int32
+       _C_long_long int64
+)
+
+type Timespec struct {
+       Sec       int64
+       Nsec      int32
+       Pad_cgo_0 [4]byte
+}
+
+type Timeval struct {
+       Sec       int64
+       Usec      int32
+       Pad_cgo_0 [4]byte
+}
+
+type Rusage struct {
+       Utime    Timeval
+       Stime    Timeval
+       Maxrss   int32
+       Ixrss    int32
+       Idrss    int32
+       Isrss    int32
+       Minflt   int32
+       Majflt   int32
+       Nswap    int32
+       Inblock  int32
+       Oublock  int32
+       Msgsnd   int32
+       Msgrcv   int32
+       Nsignals int32
+       Nvcsw    int32
+       Nivcsw   int32
+}
+
+type Rlimit struct {
+       Cur int64
+       Max int64
+}
+
+type _Gid_t uint32
+
+const (
+       S_IFMT   = 0xf000
+       S_IFIFO  = 0x1000
+       S_IFCHR  = 0x2000
+       S_IFDIR  = 0x4000
+       S_IFBLK  = 0x6000
+       S_IFREG  = 0x8000
+       S_IFLNK  = 0xa000
+       S_IFSOCK = 0xc000
+       S_ISUID  = 0x800
+       S_ISGID  = 0x400
+       S_ISVTX  = 0x200
+       S_IRUSR  = 0x100
+       S_IWUSR  = 0x80
+       S_IXUSR  = 0x40
+)
+
+type Stat_t struct {
+       Dev           uint32
+       Ino           uint32
+       Mode          uint16
+       Nlink         uint16
+       Uid           uint32
+       Gid           uint32
+       Rdev          uint32
+       Atimespec     Timespec
+       Mtimespec     Timespec
+       Ctimespec     Timespec
+       Size          int64
+       Blocks        int64
+       Blksize       int32
+       Flags         uint32
+       Gen           uint32
+       Lspare        int32
+       Birthtimespec Timespec
+}
+
+type Statfs_t struct {
+       Version     uint32
+       Type        uint32
+       Flags       uint64
+       Bsize       uint64
+       Iosize      uint64
+       Blocks      uint64
+       Bfree       uint64
+       Bavail      int64
+       Files       uint64
+       Ffree       int64
+       Syncwrites  uint64
+       Asyncwrites uint64
+       Syncreads   uint64
+       Asyncreads  uint64
+       Spare       [10]uint64
+       Namemax     uint32
+       Owner       uint32
+       Fsid        Fsid
+       Charspare   [80]int8
+       Fstypename  [16]int8
+       Mntfromname [88]int8
+       Mntonname   [88]int8
+}
+
+type Flock_t struct {
+       Start     int64
+       Len       int64
+       Pid       int32
+       Type      int16
+       Whence    int16
+       Sysid     int32
+       Pad_cgo_0 [4]byte
+}
+
+type Dirent struct {
+       Fileno uint32
+       Reclen uint16
+       Type   uint8
+       Namlen uint8
+       Name   [256]int8
+}
+
+type Fsid struct {
+       Val [2]int32
+}
+
+const (
+       FADV_NORMAL     = 0x0
+       FADV_RANDOM     = 0x1
+       FADV_SEQUENTIAL = 0x2
+       FADV_WILLNEED   = 0x3
+       FADV_DONTNEED   = 0x4
+       FADV_NOREUSE    = 0x5
+)
+
+type RawSockaddrInet4 struct {
+       Len    uint8
+       Family uint8
+       Port   uint16
+       Addr   [4]byte /* in_addr */
+       Zero   [8]int8
+}
+
+type RawSockaddrInet6 struct {
+       Len      uint8
+       Family   uint8
+       Port     uint16
+       Flowinfo uint32
+       Addr     [16]byte /* in6_addr */
+       Scope_id uint32
+}
+
+type RawSockaddrUnix struct {
+       Len    uint8
+       Family uint8
+       Path   [104]int8
+}
+
+type RawSockaddrDatalink struct {
+       Len    uint8
+       Family uint8
+       Index  uint16
+       Type   uint8
+       Nlen   uint8
+       Alen   uint8
+       Slen   uint8
+       Data   [46]int8
+}
+
+type RawSockaddr struct {
+       Len    uint8
+       Family uint8
+       Data   [14]int8
+}
+
+type RawSockaddrAny struct {
+       Addr RawSockaddr
+       Pad  [92]int8
+}
+
+type _Socklen uint32
+
+type Linger struct {
+       Onoff  int32
+       Linger int32
+}
+
+type Iovec struct {
+       Base *byte
+       Len  uint32
+}
+
+type IPMreq struct {
+       Multiaddr [4]byte /* in_addr */
+       Interface [4]byte /* in_addr */
+}
+
+type IPMreqn struct {
+       Multiaddr [4]byte /* in_addr */
+       Address   [4]byte /* in_addr */
+       Ifindex   int32
+}
+
+type IPv6Mreq struct {
+       Multiaddr [16]byte /* in6_addr */
+       Interface uint32
+}
+
+type Msghdr struct {
+       Name       *byte
+       Namelen    uint32
+       Iov        *Iovec
+       Iovlen     int32
+       Control    *byte
+       Controllen uint32
+       Flags      int32
+}
+
+type Cmsghdr struct {
+       Len   uint32
+       Level int32
+       Type  int32
+}
+
+type Inet6Pktinfo struct {
+       Addr    [16]byte /* in6_addr */
+       Ifindex uint32
+}
+
+type IPv6MTUInfo struct {
+       Addr RawSockaddrInet6
+       Mtu  uint32
+}
+
+type ICMPv6Filter struct {
+       Filt [8]uint32
+}
+
+const (
+       SizeofSockaddrInet4    = 0x10
+       SizeofSockaddrInet6    = 0x1c
+       SizeofSockaddrAny      = 0x6c
+       SizeofSockaddrUnix     = 0x6a
+       SizeofSockaddrDatalink = 0x36
+       SizeofLinger           = 0x8
+       SizeofIPMreq           = 0x8
+       SizeofIPMreqn          = 0xc
+       SizeofIPv6Mreq         = 0x14
+       SizeofMsghdr           = 0x1c
+       SizeofCmsghdr          = 0xc
+       SizeofInet6Pktinfo     = 0x14
+       SizeofIPv6MTUInfo      = 0x20
+       SizeofICMPv6Filter     = 0x20
+)
+
+const (
+       PTRACE_TRACEME = 0x0
+       PTRACE_CONT    = 0x7
+       PTRACE_KILL    = 0x8
+)
+
+type Kevent_t struct {
+       Ident  uint32
+       Filter int16
+       Flags  uint16
+       Fflags uint32
+       Data   int32
+       Udata  *byte
+}
+
+type FdSet struct {
+       X__fds_bits [32]uint32
+}
+
+const (
+       sizeofIfMsghdr         = 0xa8
+       SizeofIfMsghdr         = 0x70
+       sizeofIfData           = 0x98
+       SizeofIfData           = 0x60
+       SizeofIfaMsghdr        = 0x14
+       SizeofIfmaMsghdr       = 0x10
+       SizeofIfAnnounceMsghdr = 0x18
+       SizeofRtMsghdr         = 0x5c
+       SizeofRtMetrics        = 0x38
+)
+
+type ifMsghdr struct {
+       Msglen    uint16
+       Version   uint8
+       Type      uint8
+       Addrs     int32
+       Flags     int32
+       Index     uint16
+       Pad_cgo_0 [2]byte
+       Data      ifData
+}
+
+type IfMsghdr struct {
+       Msglen    uint16
+       Version   uint8
+       Type      uint8
+       Addrs     int32
+       Flags     int32
+       Index     uint16
+       Pad_cgo_0 [2]byte
+       Data      IfData
+}
+
+type ifData struct {
+       Type              uint8
+       Physical          uint8
+       Addrlen           uint8
+       Hdrlen            uint8
+       Link_state        uint8
+       Vhid              uint8
+       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 IfData struct {
+       Type        uint8
+       Physical    uint8
+       Addrlen     uint8
+       Hdrlen      uint8
+       Link_state  uint8
+       Spare_char1 uint8
+       Spare_char2 uint8
+       Datalen     uint8
+       Mtu         uint32
+       Metric      uint32
+       Baudrate    uint32
+       Ipackets    uint32
+       Ierrors     uint32
+       Opackets    uint32
+       Oerrors     uint32
+       Collisions  uint32
+       Ibytes      uint32
+       Obytes      uint32
+       Imcasts     uint32
+       Omcasts     uint32
+       Iqdrops     uint32
+       Noproto     uint32
+       Hwassist    uint32
+       Pad_cgo_0   [4]byte
+       Epoch       int64
+       Lastchange  Timeval
+}
+
+type IfaMsghdr struct {
+       Msglen    uint16
+       Version   uint8
+       Type      uint8
+       Addrs     int32
+       Flags     int32
+       Index     uint16
+       Pad_cgo_0 [2]byte
+       Metric    int32
+}
+
+type IfmaMsghdr struct {
+       Msglen    uint16
+       Version   uint8
+       Type      uint8
+       Addrs     int32
+       Flags     int32
+       Index     uint16
+       Pad_cgo_0 [2]byte
+}
+
+type IfAnnounceMsghdr struct {
+       Msglen  uint16
+       Version uint8
+       Type    uint8
+       Index   uint16
+       Name    [16]int8
+       What    uint16
+}
+
+type RtMsghdr struct {
+       Msglen    uint16
+       Version   uint8
+       Type      uint8
+       Index     uint16
+       Pad_cgo_0 [2]byte
+       Flags     int32
+       Addrs     int32
+       Pid       int32
+       Seq       int32
+       Errno     int32
+       Fmask     int32
+       Inits     uint32
+       Rmx       RtMetrics
+}
+
+type RtMetrics struct {
+       Locks    uint32
+       Mtu      uint32
+       Hopcount uint32
+       Expire   uint32
+       Recvpipe uint32
+       Sendpipe uint32
+       Ssthresh uint32
+       Rtt      uint32
+       Rttvar   uint32
+       Pksent   uint32
+       Weight   uint32
+       Filler   [3]uint32
+}
+
+const (
+       SizeofBpfVersion    = 0x4
+       SizeofBpfStat       = 0x8
+       SizeofBpfZbuf       = 0xc
+       SizeofBpfProgram    = 0x8
+       SizeofBpfInsn       = 0x8
+       SizeofBpfHdr        = 0x20
+       SizeofBpfZbufHeader = 0x20
+)
+
+type BpfVersion struct {
+       Major uint16
+       Minor uint16
+}
+
+type BpfStat struct {
+       Recv uint32
+       Drop uint32
+}
+
+type BpfZbuf struct {
+       Bufa   *byte
+       Bufb   *byte
+       Buflen uint32
+}
+
+type BpfProgram struct {
+       Len   uint32
+       Insns *BpfInsn
+}
+
+type BpfInsn struct {
+       Code uint16
+       Jt   uint8
+       Jf   uint8
+       K    uint32
+}
+
+type BpfHdr struct {
+       Tstamp    Timeval
+       Caplen    uint32
+       Datalen   uint32
+       Hdrlen    uint16
+       Pad_cgo_0 [6]byte
+}
+
+type BpfZbufHeader struct {
+       Kernel_gen uint32
+       Kernel_len uint32
+       User_gen   uint32
+       X_bzh_pad  [5]uint32
+}
+
+type Termios struct {
+       Iflag  uint32
+       Oflag  uint32
+       Cflag  uint32
+       Lflag  uint32
+       Cc     [20]uint8
+       Ispeed uint32
+       Ospeed uint32
+}
+
+type Winsize struct {
+       Row    uint16
+       Col    uint16
+       Xpixel uint16
+       Ypixel uint16
+}
+
+const (
+       AT_FDCWD            = -0x64
+       AT_REMOVEDIR        = 0x800
+       AT_SYMLINK_FOLLOW   = 0x400
+       AT_SYMLINK_NOFOLLOW = 0x200
+)
+
+type CapRights struct {
+       Rights [2]uint64
+}
diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_386.go b/vendor/golang.org/x/sys/unix/ztypes_linux_386.go
new file mode 100644 (file)
index 0000000..7b36896
--- /dev/null
@@ -0,0 +1,795 @@
+// cgo -godefs -- -Wall -Werror -static -I/tmp/include -m32 linux/types.go | go run mkpost.go
+// Code generated by the command above; see README.md. DO NOT EDIT.
+
+// +build 386,linux
+
+package unix
+
+const (
+       sizeofPtr      = 0x4
+       sizeofShort    = 0x2
+       sizeofInt      = 0x4
+       sizeofLong     = 0x4
+       sizeofLongLong = 0x8
+       PathMax        = 0x1000
+)
+
+type (
+       _C_short     int16
+       _C_int       int32
+       _C_long      int32
+       _C_long_long int64
+)
+
+type Timespec struct {
+       Sec  int32
+       Nsec int32
+}
+
+type Timeval struct {
+       Sec  int32
+       Usec int32
+}
+
+type Timex struct {
+       Modes     uint32
+       Offset    int32
+       Freq      int32
+       Maxerror  int32
+       Esterror  int32
+       Status    int32
+       Constant  int32
+       Precision int32
+       Tolerance int32
+       Time      Timeval
+       Tick      int32
+       Ppsfreq   int32
+       Jitter    int32
+       Shift     int32
+       Stabil    int32
+       Jitcnt    int32
+       Calcnt    int32
+       Errcnt    int32
+       Stbcnt    int32
+       Tai       int32
+       Pad_cgo_0 [44]byte
+}
+
+type Time_t int32
+
+type Tms struct {
+       Utime  int32
+       Stime  int32
+       Cutime int32
+       Cstime int32
+}
+
+type Utimbuf struct {
+       Actime  int32
+       Modtime int32
+}
+
+type Rusage struct {
+       Utime    Timeval
+       Stime    Timeval
+       Maxrss   int32
+       Ixrss    int32
+       Idrss    int32
+       Isrss    int32
+       Minflt   int32
+       Majflt   int32
+       Nswap    int32
+       Inblock  int32
+       Oublock  int32
+       Msgsnd   int32
+       Msgrcv   int32
+       Nsignals int32
+       Nvcsw    int32
+       Nivcsw   int32
+}
+
+type Rlimit struct {
+       Cur uint64
+       Max uint64
+}
+
+type _Gid_t uint32
+
+type Stat_t struct {
+       Dev       uint64
+       X__pad1   uint16
+       Pad_cgo_0 [2]byte
+       X__st_ino uint32
+       Mode      uint32
+       Nlink     uint32
+       Uid       uint32
+       Gid       uint32
+       Rdev      uint64
+       X__pad2   uint16
+       Pad_cgo_1 [2]byte
+       Size      int64
+       Blksize   int32
+       Blocks    int64
+       Atim      Timespec
+       Mtim      Timespec
+       Ctim      Timespec
+       Ino       uint64
+}
+
+type Statfs_t struct {
+       Type    int32
+       Bsize   int32
+       Blocks  uint64
+       Bfree   uint64
+       Bavail  uint64
+       Files   uint64
+       Ffree   uint64
+       Fsid    Fsid
+       Namelen int32
+       Frsize  int32
+       Flags   int32
+       Spare   [4]int32
+}
+
+type Dirent struct {
+       Ino       uint64
+       Off       int64
+       Reclen    uint16
+       Type      uint8
+       Name      [256]int8
+       Pad_cgo_0 [1]byte
+}
+
+type Fsid struct {
+       X__val [2]int32
+}
+
+type Flock_t struct {
+       Type   int16
+       Whence int16
+       Start  int64
+       Len    int64
+       Pid    int32
+}
+
+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
+)
+
+type RawSockaddrInet4 struct {
+       Family uint16
+       Port   uint16
+       Addr   [4]byte /* in_addr */
+       Zero   [8]uint8
+}
+
+type RawSockaddrInet6 struct {
+       Family   uint16
+       Port     uint16
+       Flowinfo uint32
+       Addr     [16]byte /* in6_addr */
+       Scope_id uint32
+}
+
+type RawSockaddrUnix struct {
+       Family uint16
+       Path   [108]int8
+}
+
+type RawSockaddrLinklayer struct {
+       Family   uint16
+       Protocol uint16
+       Ifindex  int32
+       Hatype   uint16
+       Pkttype  uint8
+       Halen    uint8
+       Addr     [8]uint8
+}
+
+type RawSockaddrNetlink struct {
+       Family uint16
+       Pad    uint16
+       Pid    uint32
+       Groups uint32
+}
+
+type RawSockaddrHCI struct {
+       Family  uint16
+       Dev     uint16
+       Channel uint16
+}
+
+type RawSockaddrCAN struct {
+       Family    uint16
+       Pad_cgo_0 [2]byte
+       Ifindex   int32
+       Addr      [8]byte
+}
+
+type RawSockaddrALG struct {
+       Family uint16
+       Type   [14]uint8
+       Feat   uint32
+       Mask   uint32
+       Name   [64]uint8
+}
+
+type RawSockaddrVM struct {
+       Family    uint16
+       Reserved1 uint16
+       Port      uint32
+       Cid       uint32
+       Zero      [4]uint8
+}
+
+type RawSockaddr struct {
+       Family uint16
+       Data   [14]int8
+}
+
+type RawSockaddrAny struct {
+       Addr RawSockaddr
+       Pad  [96]int8
+}
+
+type _Socklen uint32
+
+type Linger struct {
+       Onoff  int32
+       Linger int32
+}
+
+type Iovec struct {
+       Base *byte
+       Len  uint32
+}
+
+type IPMreq struct {
+       Multiaddr [4]byte /* in_addr */
+       Interface [4]byte /* in_addr */
+}
+
+type IPMreqn struct {
+       Multiaddr [4]byte /* in_addr */
+       Address   [4]byte /* in_addr */
+       Ifindex   int32
+}
+
+type IPv6Mreq struct {
+       Multiaddr [16]byte /* in6_addr */
+       Interface uint32
+}
+
+type PacketMreq struct {
+       Ifindex int32
+       Type    uint16
+       Alen    uint16
+       Address [8]uint8
+}
+
+type Msghdr struct {
+       Name       *byte
+       Namelen    uint32
+       Iov        *Iovec
+       Iovlen     uint32
+       Control    *byte
+       Controllen uint32
+       Flags      int32
+}
+
+type Cmsghdr struct {
+       Len   uint32
+       Level int32
+       Type  int32
+}
+
+type Inet4Pktinfo struct {
+       Ifindex  int32
+       Spec_dst [4]byte /* in_addr */
+       Addr     [4]byte /* in_addr */
+}
+
+type Inet6Pktinfo struct {
+       Addr    [16]byte /* in6_addr */
+       Ifindex uint32
+}
+
+type IPv6MTUInfo struct {
+       Addr RawSockaddrInet6
+       Mtu  uint32
+}
+
+type ICMPv6Filter struct {
+       Data [8]uint32
+}
+
+type Ucred struct {
+       Pid int32
+       Uid uint32
+       Gid uint32
+}
+
+type TCPInfo struct {
+       State          uint8
+       Ca_state       uint8
+       Retransmits    uint8
+       Probes         uint8
+       Backoff        uint8
+       Options        uint8
+       Pad_cgo_0      [2]byte
+       Rto            uint32
+       Ato            uint32
+       Snd_mss        uint32
+       Rcv_mss        uint32
+       Unacked        uint32
+       Sacked         uint32
+       Lost           uint32
+       Retrans        uint32
+       Fackets        uint32
+       Last_data_sent uint32
+       Last_ack_sent  uint32
+       Last_data_recv uint32
+       Last_ack_recv  uint32
+       Pmtu           uint32
+       Rcv_ssthresh   uint32
+       Rtt            uint32
+       Rttvar         uint32
+       Snd_ssthresh   uint32
+       Snd_cwnd       uint32
+       Advmss         uint32
+       Reordering     uint32
+       Rcv_rtt        uint32
+       Rcv_space      uint32
+       Total_retrans  uint32
+}
+
+const (
+       SizeofSockaddrInet4     = 0x10
+       SizeofSockaddrInet6     = 0x1c
+       SizeofSockaddrAny       = 0x70
+       SizeofSockaddrUnix      = 0x6e
+       SizeofSockaddrLinklayer = 0x14
+       SizeofSockaddrNetlink   = 0xc
+       SizeofSockaddrHCI       = 0x6
+       SizeofSockaddrCAN       = 0x10
+       SizeofSockaddrALG       = 0x58
+       SizeofSockaddrVM        = 0x10
+       SizeofLinger            = 0x8
+       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
+)
+
+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
+)
+
+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
+       Edx      int32
+       Esi      int32
+       Edi      int32
+       Ebp      int32
+       Eax      int32
+       Xds      int32
+       Xes      int32
+       Xfs      int32
+       Xgs      int32
+       Orig_eax int32
+       Eip      int32
+       Xcs      int32
+       Eflags   int32
+       Esp      int32
+       Xss      int32
+}
+
+type FdSet struct {
+       Bits [32]int32
+}
+
+type Sysinfo_t struct {
+       Uptime    int32
+       Loads     [3]uint32
+       Totalram  uint32
+       Freeram   uint32
+       Sharedram uint32
+       Bufferram uint32
+       Totalswap uint32
+       Freeswap  uint32
+       Procs     uint16
+       Pad       uint16
+       Totalhigh uint32
+       Freehigh  uint32
+       Unit      uint32
+       X_f       [8]int8
+}
+
+type Utsname struct {
+       Sysname    [65]int8
+       Nodename   [65]int8
+       Release    [65]int8
+       Version    [65]int8
+       Machine    [65]int8
+       Domainname [65]int8
+}
+
+type Ustat_t struct {
+       Tfree  int32
+       Tinode uint32
+       Fname  [6]int8
+       Fpack  [6]int8
+}
+
+type EpollEvent struct {
+       Events uint32
+       Fd     int32
+       Pad    int32
+}
+
+const (
+       AT_FDCWD            = -0x64
+       AT_REMOVEDIR        = 0x200
+       AT_SYMLINK_FOLLOW   = 0x400
+       AT_SYMLINK_NOFOLLOW = 0x100
+)
+
+type PollFd struct {
+       Fd      int32
+       Events  int16
+       Revents int16
+}
+
+const (
+       POLLIN    = 0x1
+       POLLPRI   = 0x2
+       POLLOUT   = 0x4
+       POLLRDHUP = 0x2000
+       POLLERR   = 0x8
+       POLLHUP   = 0x10
+       POLLNVAL  = 0x20
+)
+
+type Sigset_t struct {
+       X__val [32]uint32
+}
+
+const RNDGETENTCNT = 0x80045200
+
+const PERF_IOC_FLAG_GROUP = 0x1
+
+const _SC_PAGESIZE = 0x1e
+
+type Termios struct {
+       Iflag  uint32
+       Oflag  uint32
+       Cflag  uint32
+       Lflag  uint32
+       Line   uint8
+       Cc     [19]uint8
+       Ispeed uint32
+       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
+       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
+       Pad_cgo_2                 [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
+       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
+}
+
+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 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
+)
diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_amd64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_amd64.go
new file mode 100644 (file)
index 0000000..e54fa98
--- /dev/null
@@ -0,0 +1,813 @@
+// cgo -godefs -- -Wall -Werror -static -I/tmp/include -m64 linux/types.go | go run mkpost.go
+// Code generated by the command above; see README.md. DO NOT EDIT.
+
+// +build amd64,linux
+
+package unix
+
+const (
+       sizeofPtr      = 0x8
+       sizeofShort    = 0x2
+       sizeofInt      = 0x4
+       sizeofLong     = 0x8
+       sizeofLongLong = 0x8
+       PathMax        = 0x1000
+)
+
+type (
+       _C_short     int16
+       _C_int       int32
+       _C_long      int64
+       _C_long_long int64
+)
+
+type Timespec struct {
+       Sec  int64
+       Nsec int64
+}
+
+type Timeval struct {
+       Sec  int64
+       Usec int64
+}
+
+type Timex struct {
+       Modes     uint32
+       Pad_cgo_0 [4]byte
+       Offset    int64
+       Freq      int64
+       Maxerror  int64
+       Esterror  int64
+       Status    int32
+       Pad_cgo_1 [4]byte
+       Constant  int64
+       Precision int64
+       Tolerance int64
+       Time      Timeval
+       Tick      int64
+       Ppsfreq   int64
+       Jitter    int64
+       Shift     int32
+       Pad_cgo_2 [4]byte
+       Stabil    int64
+       Jitcnt    int64
+       Calcnt    int64
+       Errcnt    int64
+       Stbcnt    int64
+       Tai       int32
+       Pad_cgo_3 [44]byte
+}
+
+type Time_t int64
+
+type Tms struct {
+       Utime  int64
+       Stime  int64
+       Cutime int64
+       Cstime int64
+}
+
+type Utimbuf struct {
+       Actime  int64
+       Modtime int64
+}
+
+type Rusage struct {
+       Utime    Timeval
+       Stime    Timeval
+       Maxrss   int64
+       Ixrss    int64
+       Idrss    int64
+       Isrss    int64
+       Minflt   int64
+       Majflt   int64
+       Nswap    int64
+       Inblock  int64
+       Oublock  int64
+       Msgsnd   int64
+       Msgrcv   int64
+       Nsignals int64
+       Nvcsw    int64
+       Nivcsw   int64
+}
+
+type Rlimit struct {
+       Cur uint64
+       Max uint64
+}
+
+type _Gid_t uint32
+
+type Stat_t struct {
+       Dev     uint64
+       Ino     uint64
+       Nlink   uint64
+       Mode    uint32
+       Uid     uint32
+       Gid     uint32
+       X__pad0 int32
+       Rdev    uint64
+       Size    int64
+       Blksize int64
+       Blocks  int64
+       Atim    Timespec
+       Mtim    Timespec
+       Ctim    Timespec
+       _       [3]int64
+}
+
+type Statfs_t struct {
+       Type    int64
+       Bsize   int64
+       Blocks  uint64
+       Bfree   uint64
+       Bavail  uint64
+       Files   uint64
+       Ffree   uint64
+       Fsid    Fsid
+       Namelen int64
+       Frsize  int64
+       Flags   int64
+       Spare   [4]int64
+}
+
+type Dirent struct {
+       Ino       uint64
+       Off       int64
+       Reclen    uint16
+       Type      uint8
+       Name      [256]int8
+       Pad_cgo_0 [5]byte
+}
+
+type Fsid struct {
+       X__val [2]int32
+}
+
+type Flock_t struct {
+       Type      int16
+       Whence    int16
+       Pad_cgo_0 [4]byte
+       Start     int64
+       Len       int64
+       Pid       int32
+       Pad_cgo_1 [4]byte
+}
+
+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
+)
+
+type RawSockaddrInet4 struct {
+       Family uint16
+       Port   uint16
+       Addr   [4]byte /* in_addr */
+       Zero   [8]uint8
+}
+
+type RawSockaddrInet6 struct {
+       Family   uint16
+       Port     uint16
+       Flowinfo uint32
+       Addr     [16]byte /* in6_addr */
+       Scope_id uint32
+}
+
+type RawSockaddrUnix struct {
+       Family uint16
+       Path   [108]int8
+}
+
+type RawSockaddrLinklayer struct {
+       Family   uint16
+       Protocol uint16
+       Ifindex  int32
+       Hatype   uint16
+       Pkttype  uint8
+       Halen    uint8
+       Addr     [8]uint8
+}
+
+type RawSockaddrNetlink struct {
+       Family uint16
+       Pad    uint16
+       Pid    uint32
+       Groups uint32
+}
+
+type RawSockaddrHCI struct {
+       Family  uint16
+       Dev     uint16
+       Channel uint16
+}
+
+type RawSockaddrCAN struct {
+       Family    uint16
+       Pad_cgo_0 [2]byte
+       Ifindex   int32
+       Addr      [8]byte
+}
+
+type RawSockaddrALG struct {
+       Family uint16
+       Type   [14]uint8
+       Feat   uint32
+       Mask   uint32
+       Name   [64]uint8
+}
+
+type RawSockaddrVM struct {
+       Family    uint16
+       Reserved1 uint16
+       Port      uint32
+       Cid       uint32
+       Zero      [4]uint8
+}
+
+type RawSockaddr struct {
+       Family uint16
+       Data   [14]int8
+}
+
+type RawSockaddrAny struct {
+       Addr RawSockaddr
+       Pad  [96]int8
+}
+
+type _Socklen uint32
+
+type Linger struct {
+       Onoff  int32
+       Linger int32
+}
+
+type Iovec struct {
+       Base *byte
+       Len  uint64
+}
+
+type IPMreq struct {
+       Multiaddr [4]byte /* in_addr */
+       Interface [4]byte /* in_addr */
+}
+
+type IPMreqn struct {
+       Multiaddr [4]byte /* in_addr */
+       Address   [4]byte /* in_addr */
+       Ifindex   int32
+}
+
+type IPv6Mreq struct {
+       Multiaddr [16]byte /* in6_addr */
+       Interface uint32
+}
+
+type 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
+}
+
+type Cmsghdr struct {
+       Len   uint64
+       Level int32
+       Type  int32
+}
+
+type Inet4Pktinfo struct {
+       Ifindex  int32
+       Spec_dst [4]byte /* in_addr */
+       Addr     [4]byte /* in_addr */
+}
+
+type Inet6Pktinfo struct {
+       Addr    [16]byte /* in6_addr */
+       Ifindex uint32
+}
+
+type IPv6MTUInfo struct {
+       Addr RawSockaddrInet6
+       Mtu  uint32
+}
+
+type ICMPv6Filter struct {
+       Data [8]uint32
+}
+
+type Ucred struct {
+       Pid int32
+       Uid uint32
+       Gid uint32
+}
+
+type TCPInfo struct {
+       State          uint8
+       Ca_state       uint8
+       Retransmits    uint8
+       Probes         uint8
+       Backoff        uint8
+       Options        uint8
+       Pad_cgo_0      [2]byte
+       Rto            uint32
+       Ato            uint32
+       Snd_mss        uint32
+       Rcv_mss        uint32
+       Unacked        uint32
+       Sacked         uint32
+       Lost           uint32
+       Retrans        uint32
+       Fackets        uint32
+       Last_data_sent uint32
+       Last_ack_sent  uint32
+       Last_data_recv uint32
+       Last_ack_recv  uint32
+       Pmtu           uint32
+       Rcv_ssthresh   uint32
+       Rtt            uint32
+       Rttvar         uint32
+       Snd_ssthresh   uint32
+       Snd_cwnd       uint32
+       Advmss         uint32
+       Reordering     uint32
+       Rcv_rtt        uint32
+       Rcv_space      uint32
+       Total_retrans  uint32
+}
+
+const (
+       SizeofSockaddrInet4     = 0x10
+       SizeofSockaddrInet6     = 0x1c
+       SizeofSockaddrAny       = 0x70
+       SizeofSockaddrUnix      = 0x6e
+       SizeofSockaddrLinklayer = 0x14
+       SizeofSockaddrNetlink   = 0xc
+       SizeofSockaddrHCI       = 0x6
+       SizeofSockaddrCAN       = 0x10
+       SizeofSockaddrALG       = 0x58
+       SizeofSockaddrVM        = 0x10
+       SizeofLinger            = 0x8
+       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
+)
+
+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
+       R13      uint64
+       R12      uint64
+       Rbp      uint64
+       Rbx      uint64
+       R11      uint64
+       R10      uint64
+       R9       uint64
+       R8       uint64
+       Rax      uint64
+       Rcx      uint64
+       Rdx      uint64
+       Rsi      uint64
+       Rdi      uint64
+       Orig_rax uint64
+       Rip      uint64
+       Cs       uint64
+       Eflags   uint64
+       Rsp      uint64
+       Ss       uint64
+       Fs_base  uint64
+       Gs_base  uint64
+       Ds       uint64
+       Es       uint64
+       Fs       uint64
+       Gs       uint64
+}
+
+type FdSet struct {
+       Bits [16]int64
+}
+
+type Sysinfo_t struct {
+       Uptime    int64
+       Loads     [3]uint64
+       Totalram  uint64
+       Freeram   uint64
+       Sharedram uint64
+       Bufferram uint64
+       Totalswap uint64
+       Freeswap  uint64
+       Procs     uint16
+       Pad       uint16
+       Pad_cgo_0 [4]byte
+       Totalhigh uint64
+       Freehigh  uint64
+       Unit      uint32
+       X_f       [0]int8
+       Pad_cgo_1 [4]byte
+}
+
+type Utsname struct {
+       Sysname    [65]int8
+       Nodename   [65]int8
+       Release    [65]int8
+       Version    [65]int8
+       Machine    [65]int8
+       Domainname [65]int8
+}
+
+type Ustat_t struct {
+       Tfree     int32
+       Pad_cgo_0 [4]byte
+       Tinode    uint64
+       Fname     [6]int8
+       Fpack     [6]int8
+       Pad_cgo_1 [4]byte
+}
+
+type EpollEvent struct {
+       Events uint32
+       Fd     int32
+       Pad    int32
+}
+
+const (
+       AT_FDCWD            = -0x64
+       AT_REMOVEDIR        = 0x200
+       AT_SYMLINK_FOLLOW   = 0x400
+       AT_SYMLINK_NOFOLLOW = 0x100
+)
+
+type PollFd struct {
+       Fd      int32
+       Events  int16
+       Revents int16
+}
+
+const (
+       POLLIN    = 0x1
+       POLLPRI   = 0x2
+       POLLOUT   = 0x4
+       POLLRDHUP = 0x2000
+       POLLERR   = 0x8
+       POLLHUP   = 0x10
+       POLLNVAL  = 0x20
+)
+
+type Sigset_t struct {
+       X__val [16]uint64
+}
+
+const RNDGETENTCNT = 0x80045200
+
+const PERF_IOC_FLAG_GROUP = 0x1
+
+const _SC_PAGESIZE = 0x1e
+
+type Termios struct {
+       Iflag  uint32
+       Oflag  uint32
+       Cflag  uint32
+       Lflag  uint32
+       Line   uint8
+       Cc     [19]uint8
+       Ispeed uint32
+       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
+       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
+       Pad_cgo_2                 [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
+       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
+}
+
+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 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
+)
diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_arm.go b/vendor/golang.org/x/sys/unix/ztypes_linux_arm.go
new file mode 100644 (file)
index 0000000..bff6ce2
--- /dev/null
@@ -0,0 +1,784 @@
+// 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 arm,linux
+
+package unix
+
+const (
+       sizeofPtr      = 0x4
+       sizeofShort    = 0x2
+       sizeofInt      = 0x4
+       sizeofLong     = 0x4
+       sizeofLongLong = 0x8
+       PathMax        = 0x1000
+)
+
+type (
+       _C_short     int16
+       _C_int       int32
+       _C_long      int32
+       _C_long_long int64
+)
+
+type Timespec struct {
+       Sec  int32
+       Nsec int32
+}
+
+type Timeval struct {
+       Sec  int32
+       Usec int32
+}
+
+type Timex struct {
+       Modes     uint32
+       Offset    int32
+       Freq      int32
+       Maxerror  int32
+       Esterror  int32
+       Status    int32
+       Constant  int32
+       Precision int32
+       Tolerance int32
+       Time      Timeval
+       Tick      int32
+       Ppsfreq   int32
+       Jitter    int32
+       Shift     int32
+       Stabil    int32
+       Jitcnt    int32
+       Calcnt    int32
+       Errcnt    int32
+       Stbcnt    int32
+       Tai       int32
+       Pad_cgo_0 [44]byte
+}
+
+type Time_t int32
+
+type Tms struct {
+       Utime  int32
+       Stime  int32
+       Cutime int32
+       Cstime int32
+}
+
+type Utimbuf struct {
+       Actime  int32
+       Modtime int32
+}
+
+type Rusage struct {
+       Utime    Timeval
+       Stime    Timeval
+       Maxrss   int32
+       Ixrss    int32
+       Idrss    int32
+       Isrss    int32
+       Minflt   int32
+       Majflt   int32
+       Nswap    int32
+       Inblock  int32
+       Oublock  int32
+       Msgsnd   int32
+       Msgrcv   int32
+       Nsignals int32
+       Nvcsw    int32
+       Nivcsw   int32
+}
+
+type Rlimit struct {
+       Cur uint64
+       Max uint64
+}
+
+type _Gid_t uint32
+
+type Stat_t struct {
+       Dev       uint64
+       X__pad1   uint16
+       Pad_cgo_0 [2]byte
+       X__st_ino uint32
+       Mode      uint32
+       Nlink     uint32
+       Uid       uint32
+       Gid       uint32
+       Rdev      uint64
+       X__pad2   uint16
+       Pad_cgo_1 [6]byte
+       Size      int64
+       Blksize   int32
+       Pad_cgo_2 [4]byte
+       Blocks    int64
+       Atim      Timespec
+       Mtim      Timespec
+       Ctim      Timespec
+       Ino       uint64
+}
+
+type Statfs_t struct {
+       Type      int32
+       Bsize     int32
+       Blocks    uint64
+       Bfree     uint64
+       Bavail    uint64
+       Files     uint64
+       Ffree     uint64
+       Fsid      Fsid
+       Namelen   int32
+       Frsize    int32
+       Flags     int32
+       Spare     [4]int32
+       Pad_cgo_0 [4]byte
+}
+
+type Dirent struct {
+       Ino       uint64
+       Off       int64
+       Reclen    uint16
+       Type      uint8
+       Name      [256]uint8
+       Pad_cgo_0 [5]byte
+}
+
+type Fsid struct {
+       X__val [2]int32
+}
+
+type Flock_t struct {
+       Type      int16
+       Whence    int16
+       Pad_cgo_0 [4]byte
+       Start     int64
+       Len       int64
+       Pid       int32
+       Pad_cgo_1 [4]byte
+}
+
+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
+)
+
+type RawSockaddrInet4 struct {
+       Family uint16
+       Port   uint16
+       Addr   [4]byte /* in_addr */
+       Zero   [8]uint8
+}
+
+type RawSockaddrInet6 struct {
+       Family   uint16
+       Port     uint16
+       Flowinfo uint32
+       Addr     [16]byte /* in6_addr */
+       Scope_id uint32
+}
+
+type RawSockaddrUnix struct {
+       Family uint16
+       Path   [108]int8
+}
+
+type RawSockaddrLinklayer struct {
+       Family   uint16
+       Protocol uint16
+       Ifindex  int32
+       Hatype   uint16
+       Pkttype  uint8
+       Halen    uint8
+       Addr     [8]uint8
+}
+
+type RawSockaddrNetlink struct {
+       Family uint16
+       Pad    uint16
+       Pid    uint32
+       Groups uint32
+}
+
+type RawSockaddrHCI struct {
+       Family  uint16
+       Dev     uint16
+       Channel uint16
+}
+
+type RawSockaddrCAN struct {
+       Family    uint16
+       Pad_cgo_0 [2]byte
+       Ifindex   int32
+       Addr      [8]byte
+}
+
+type RawSockaddrALG struct {
+       Family uint16
+       Type   [14]uint8
+       Feat   uint32
+       Mask   uint32
+       Name   [64]uint8
+}
+
+type RawSockaddrVM struct {
+       Family    uint16
+       Reserved1 uint16
+       Port      uint32
+       Cid       uint32
+       Zero      [4]uint8
+}
+
+type RawSockaddr struct {
+       Family uint16
+       Data   [14]uint8
+}
+
+type RawSockaddrAny struct {
+       Addr RawSockaddr
+       Pad  [96]uint8
+}
+
+type _Socklen uint32
+
+type Linger struct {
+       Onoff  int32
+       Linger int32
+}
+
+type Iovec struct {
+       Base *byte
+       Len  uint32
+}
+
+type IPMreq struct {
+       Multiaddr [4]byte /* in_addr */
+       Interface [4]byte /* in_addr */
+}
+
+type IPMreqn struct {
+       Multiaddr [4]byte /* in_addr */
+       Address   [4]byte /* in_addr */
+       Ifindex   int32
+}
+
+type IPv6Mreq struct {
+       Multiaddr [16]byte /* in6_addr */
+       Interface uint32
+}
+
+type PacketMreq struct {
+       Ifindex int32
+       Type    uint16
+       Alen    uint16
+       Address [8]uint8
+}
+
+type Msghdr struct {
+       Name       *byte
+       Namelen    uint32
+       Iov        *Iovec
+       Iovlen     uint32
+       Control    *byte
+       Controllen uint32
+       Flags      int32
+}
+
+type Cmsghdr struct {
+       Len   uint32
+       Level int32
+       Type  int32
+}
+
+type Inet4Pktinfo struct {
+       Ifindex  int32
+       Spec_dst [4]byte /* in_addr */
+       Addr     [4]byte /* in_addr */
+}
+
+type Inet6Pktinfo struct {
+       Addr    [16]byte /* in6_addr */
+       Ifindex uint32
+}
+
+type IPv6MTUInfo struct {
+       Addr RawSockaddrInet6
+       Mtu  uint32
+}
+
+type ICMPv6Filter struct {
+       Data [8]uint32
+}
+
+type Ucred struct {
+       Pid int32
+       Uid uint32
+       Gid uint32
+}
+
+type TCPInfo struct {
+       State          uint8
+       Ca_state       uint8
+       Retransmits    uint8
+       Probes         uint8
+       Backoff        uint8
+       Options        uint8
+       Pad_cgo_0      [2]byte
+       Rto            uint32
+       Ato            uint32
+       Snd_mss        uint32
+       Rcv_mss        uint32
+       Unacked        uint32
+       Sacked         uint32
+       Lost           uint32
+       Retrans        uint32
+       Fackets        uint32
+       Last_data_sent uint32
+       Last_ack_sent  uint32
+       Last_data_recv uint32
+       Last_ack_recv  uint32
+       Pmtu           uint32
+       Rcv_ssthresh   uint32
+       Rtt            uint32
+       Rttvar         uint32
+       Snd_ssthresh   uint32
+       Snd_cwnd       uint32
+       Advmss         uint32
+       Reordering     uint32
+       Rcv_rtt        uint32
+       Rcv_space      uint32
+       Total_retrans  uint32
+}
+
+const (
+       SizeofSockaddrInet4     = 0x10
+       SizeofSockaddrInet6     = 0x1c
+       SizeofSockaddrAny       = 0x70
+       SizeofSockaddrUnix      = 0x6e
+       SizeofSockaddrLinklayer = 0x14
+       SizeofSockaddrNetlink   = 0xc
+       SizeofSockaddrHCI       = 0x6
+       SizeofSockaddrCAN       = 0x10
+       SizeofSockaddrALG       = 0x58
+       SizeofSockaddrVM        = 0x10
+       SizeofLinger            = 0x8
+       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
+)
+
+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
+)
+
+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
+}
+
+type FdSet struct {
+       Bits [32]int32
+}
+
+type Sysinfo_t struct {
+       Uptime    int32
+       Loads     [3]uint32
+       Totalram  uint32
+       Freeram   uint32
+       Sharedram uint32
+       Bufferram uint32
+       Totalswap uint32
+       Freeswap  uint32
+       Procs     uint16
+       Pad       uint16
+       Totalhigh uint32
+       Freehigh  uint32
+       Unit      uint32
+       X_f       [8]uint8
+}
+
+type Utsname struct {
+       Sysname    [65]uint8
+       Nodename   [65]uint8
+       Release    [65]uint8
+       Version    [65]uint8
+       Machine    [65]uint8
+       Domainname [65]uint8
+}
+
+type Ustat_t struct {
+       Tfree  int32
+       Tinode uint32
+       Fname  [6]uint8
+       Fpack  [6]uint8
+}
+
+type EpollEvent struct {
+       Events uint32
+       PadFd  int32
+       Fd     int32
+       Pad    int32
+}
+
+const (
+       AT_FDCWD            = -0x64
+       AT_REMOVEDIR        = 0x200
+       AT_SYMLINK_FOLLOW   = 0x400
+       AT_SYMLINK_NOFOLLOW = 0x100
+)
+
+type PollFd struct {
+       Fd      int32
+       Events  int16
+       Revents int16
+}
+
+const (
+       POLLIN    = 0x1
+       POLLPRI   = 0x2
+       POLLOUT   = 0x4
+       POLLRDHUP = 0x2000
+       POLLERR   = 0x8
+       POLLHUP   = 0x10
+       POLLNVAL  = 0x20
+)
+
+type Sigset_t struct {
+       X__val [32]uint32
+}
+
+const RNDGETENTCNT = 0x80045200
+
+const PERF_IOC_FLAG_GROUP = 0x1
+
+const _SC_PAGESIZE = 0x1e
+
+type Termios struct {
+       Iflag  uint32
+       Oflag  uint32
+       Cflag  uint32
+       Lflag  uint32
+       Line   uint8
+       Cc     [19]uint8
+       Ispeed uint32
+       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
+       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
+       Pad_cgo_2                 [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
+       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
+}
+
+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 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
+)
diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_arm64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_arm64.go
new file mode 100644 (file)
index 0000000..a3d0cc4
--- /dev/null
@@ -0,0 +1,792 @@
+// cgo -godefs -- -Wall -Werror -static -I/tmp/include -fsigned-char linux/types.go | go run mkpost.go
+// Code generated by the command above; see README.md. DO NOT EDIT.
+
+// +build arm64,linux
+
+package unix
+
+const (
+       sizeofPtr      = 0x8
+       sizeofShort    = 0x2
+       sizeofInt      = 0x4
+       sizeofLong     = 0x8
+       sizeofLongLong = 0x8
+       PathMax        = 0x1000
+)
+
+type (
+       _C_short     int16
+       _C_int       int32
+       _C_long      int64
+       _C_long_long int64
+)
+
+type Timespec struct {
+       Sec  int64
+       Nsec int64
+}
+
+type Timeval struct {
+       Sec  int64
+       Usec int64
+}
+
+type Timex struct {
+       Modes     uint32
+       Pad_cgo_0 [4]byte
+       Offset    int64
+       Freq      int64
+       Maxerror  int64
+       Esterror  int64
+       Status    int32
+       Pad_cgo_1 [4]byte
+       Constant  int64
+       Precision int64
+       Tolerance int64
+       Time      Timeval
+       Tick      int64
+       Ppsfreq   int64
+       Jitter    int64
+       Shift     int32
+       Pad_cgo_2 [4]byte
+       Stabil    int64
+       Jitcnt    int64
+       Calcnt    int64
+       Errcnt    int64
+       Stbcnt    int64
+       Tai       int32
+       Pad_cgo_3 [44]byte
+}
+
+type Time_t int64
+
+type Tms struct {
+       Utime  int64
+       Stime  int64
+       Cutime int64
+       Cstime int64
+}
+
+type Utimbuf struct {
+       Actime  int64
+       Modtime int64
+}
+
+type Rusage struct {
+       Utime    Timeval
+       Stime    Timeval
+       Maxrss   int64
+       Ixrss    int64
+       Idrss    int64
+       Isrss    int64
+       Minflt   int64
+       Majflt   int64
+       Nswap    int64
+       Inblock  int64
+       Oublock  int64
+       Msgsnd   int64
+       Msgrcv   int64
+       Nsignals int64
+       Nvcsw    int64
+       Nivcsw   int64
+}
+
+type Rlimit struct {
+       Cur uint64
+       Max uint64
+}
+
+type _Gid_t uint32
+
+type Stat_t struct {
+       Dev     uint64
+       Ino     uint64
+       Mode    uint32
+       Nlink   uint32
+       Uid     uint32
+       Gid     uint32
+       Rdev    uint64
+       X__pad1 uint64
+       Size    int64
+       Blksize int32
+       X__pad2 int32
+       Blocks  int64
+       Atim    Timespec
+       Mtim    Timespec
+       Ctim    Timespec
+       _       [2]int32
+}
+
+type Statfs_t struct {
+       Type    int64
+       Bsize   int64
+       Blocks  uint64
+       Bfree   uint64
+       Bavail  uint64
+       Files   uint64
+       Ffree   uint64
+       Fsid    Fsid
+       Namelen int64
+       Frsize  int64
+       Flags   int64
+       Spare   [4]int64
+}
+
+type Dirent struct {
+       Ino       uint64
+       Off       int64
+       Reclen    uint16
+       Type      uint8
+       Name      [256]int8
+       Pad_cgo_0 [5]byte
+}
+
+type Fsid struct {
+       X__val [2]int32
+}
+
+type Flock_t struct {
+       Type      int16
+       Whence    int16
+       Pad_cgo_0 [4]byte
+       Start     int64
+       Len       int64
+       Pid       int32
+       Pad_cgo_1 [4]byte
+}
+
+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
+)
+
+type RawSockaddrInet4 struct {
+       Family uint16
+       Port   uint16
+       Addr   [4]byte /* in_addr */
+       Zero   [8]uint8
+}
+
+type RawSockaddrInet6 struct {
+       Family   uint16
+       Port     uint16
+       Flowinfo uint32
+       Addr     [16]byte /* in6_addr */
+       Scope_id uint32
+}
+
+type RawSockaddrUnix struct {
+       Family uint16
+       Path   [108]int8
+}
+
+type RawSockaddrLinklayer struct {
+       Family   uint16
+       Protocol uint16
+       Ifindex  int32
+       Hatype   uint16
+       Pkttype  uint8
+       Halen    uint8
+       Addr     [8]uint8
+}
+
+type RawSockaddrNetlink struct {
+       Family uint16
+       Pad    uint16
+       Pid    uint32
+       Groups uint32
+}
+
+type RawSockaddrHCI struct {
+       Family  uint16
+       Dev     uint16
+       Channel uint16
+}
+
+type RawSockaddrCAN struct {
+       Family    uint16
+       Pad_cgo_0 [2]byte
+       Ifindex   int32
+       Addr      [8]byte
+}
+
+type RawSockaddrALG struct {
+       Family uint16
+       Type   [14]uint8
+       Feat   uint32
+       Mask   uint32
+       Name   [64]uint8
+}
+
+type RawSockaddrVM struct {
+       Family    uint16
+       Reserved1 uint16
+       Port      uint32
+       Cid       uint32
+       Zero      [4]uint8
+}
+
+type RawSockaddr struct {
+       Family uint16
+       Data   [14]int8
+}
+
+type RawSockaddrAny struct {
+       Addr RawSockaddr
+       Pad  [96]int8
+}
+
+type _Socklen uint32
+
+type Linger struct {
+       Onoff  int32
+       Linger int32
+}
+
+type Iovec struct {
+       Base *byte
+       Len  uint64
+}
+
+type IPMreq struct {
+       Multiaddr [4]byte /* in_addr */
+       Interface [4]byte /* in_addr */
+}
+
+type IPMreqn struct {
+       Multiaddr [4]byte /* in_addr */
+       Address   [4]byte /* in_addr */
+       Ifindex   int32
+}
+
+type IPv6Mreq struct {
+       Multiaddr [16]byte /* in6_addr */
+       Interface uint32
+}
+
+type 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
+}
+
+type Cmsghdr struct {
+       Len   uint64
+       Level int32
+       Type  int32
+}
+
+type Inet4Pktinfo struct {
+       Ifindex  int32
+       Spec_dst [4]byte /* in_addr */
+       Addr     [4]byte /* in_addr */
+}
+
+type Inet6Pktinfo struct {
+       Addr    [16]byte /* in6_addr */
+       Ifindex uint32
+}
+
+type IPv6MTUInfo struct {
+       Addr RawSockaddrInet6
+       Mtu  uint32
+}
+
+type ICMPv6Filter struct {
+       Data [8]uint32
+}
+
+type Ucred struct {
+       Pid int32
+       Uid uint32
+       Gid uint32
+}
+
+type TCPInfo struct {
+       State          uint8
+       Ca_state       uint8
+       Retransmits    uint8
+       Probes         uint8
+       Backoff        uint8
+       Options        uint8
+       Pad_cgo_0      [2]byte
+       Rto            uint32
+       Ato            uint32
+       Snd_mss        uint32
+       Rcv_mss        uint32
+       Unacked        uint32
+       Sacked         uint32
+       Lost           uint32
+       Retrans        uint32
+       Fackets        uint32
+       Last_data_sent uint32
+       Last_ack_sent  uint32
+       Last_data_recv uint32
+       Last_ack_recv  uint32
+       Pmtu           uint32
+       Rcv_ssthresh   uint32
+       Rtt            uint32
+       Rttvar         uint32
+       Snd_ssthresh   uint32
+       Snd_cwnd       uint32
+       Advmss         uint32
+       Reordering     uint32
+       Rcv_rtt        uint32
+       Rcv_space      uint32
+       Total_retrans  uint32
+}
+
+const (
+       SizeofSockaddrInet4     = 0x10
+       SizeofSockaddrInet6     = 0x1c
+       SizeofSockaddrAny       = 0x70
+       SizeofSockaddrUnix      = 0x6e
+       SizeofSockaddrLinklayer = 0x14
+       SizeofSockaddrNetlink   = 0xc
+       SizeofSockaddrHCI       = 0x6
+       SizeofSockaddrCAN       = 0x10
+       SizeofSockaddrALG       = 0x58
+       SizeofSockaddrVM        = 0x10
+       SizeofLinger            = 0x8
+       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
+)
+
+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
+       Pc     uint64
+       Pstate uint64
+}
+
+type FdSet struct {
+       Bits [16]int64
+}
+
+type Sysinfo_t struct {
+       Uptime    int64
+       Loads     [3]uint64
+       Totalram  uint64
+       Freeram   uint64
+       Sharedram uint64
+       Bufferram uint64
+       Totalswap uint64
+       Freeswap  uint64
+       Procs     uint16
+       Pad       uint16
+       Pad_cgo_0 [4]byte
+       Totalhigh uint64
+       Freehigh  uint64
+       Unit      uint32
+       X_f       [0]int8
+       Pad_cgo_1 [4]byte
+}
+
+type Utsname struct {
+       Sysname    [65]int8
+       Nodename   [65]int8
+       Release    [65]int8
+       Version    [65]int8
+       Machine    [65]int8
+       Domainname [65]int8
+}
+
+type Ustat_t struct {
+       Tfree     int32
+       Pad_cgo_0 [4]byte
+       Tinode    uint64
+       Fname     [6]int8
+       Fpack     [6]int8
+       Pad_cgo_1 [4]byte
+}
+
+type EpollEvent struct {
+       Events uint32
+       PadFd  int32
+       Fd     int32
+       Pad    int32
+}
+
+const (
+       AT_FDCWD            = -0x64
+       AT_REMOVEDIR        = 0x200
+       AT_SYMLINK_FOLLOW   = 0x400
+       AT_SYMLINK_NOFOLLOW = 0x100
+)
+
+type PollFd struct {
+       Fd      int32
+       Events  int16
+       Revents int16
+}
+
+const (
+       POLLIN    = 0x1
+       POLLPRI   = 0x2
+       POLLOUT   = 0x4
+       POLLRDHUP = 0x2000
+       POLLERR   = 0x8
+       POLLHUP   = 0x10
+       POLLNVAL  = 0x20
+)
+
+type Sigset_t struct {
+       X__val [16]uint64
+}
+
+const RNDGETENTCNT = 0x80045200
+
+const PERF_IOC_FLAG_GROUP = 0x1
+
+const _SC_PAGESIZE = 0x1e
+
+type Termios struct {
+       Iflag  uint32
+       Oflag  uint32
+       Cflag  uint32
+       Lflag  uint32
+       Line   uint8
+       Cc     [19]uint8
+       Ispeed uint32
+       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
+       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
+       Pad_cgo_2                 [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
+       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
+}
+
+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 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
+)
diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_mips.go b/vendor/golang.org/x/sys/unix/ztypes_linux_mips.go
new file mode 100644 (file)
index 0000000..8fa6603
--- /dev/null
@@ -0,0 +1,789 @@
+// 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 mips,linux
+
+package unix
+
+const (
+       sizeofPtr      = 0x4
+       sizeofShort    = 0x2
+       sizeofInt      = 0x4
+       sizeofLong     = 0x4
+       sizeofLongLong = 0x8
+       PathMax        = 0x1000
+)
+
+type (
+       _C_short     int16
+       _C_int       int32
+       _C_long      int32
+       _C_long_long int64
+)
+
+type Timespec struct {
+       Sec  int32
+       Nsec int32
+}
+
+type Timeval struct {
+       Sec  int32
+       Usec int32
+}
+
+type Timex struct {
+       Modes     uint32
+       Offset    int32
+       Freq      int32
+       Maxerror  int32
+       Esterror  int32
+       Status    int32
+       Constant  int32
+       Precision int32
+       Tolerance int32
+       Time      Timeval
+       Tick      int32
+       Ppsfreq   int32
+       Jitter    int32
+       Shift     int32
+       Stabil    int32
+       Jitcnt    int32
+       Calcnt    int32
+       Errcnt    int32
+       Stbcnt    int32
+       Tai       int32
+       Pad_cgo_0 [44]byte
+}
+
+type Time_t int32
+
+type Tms struct {
+       Utime  int32
+       Stime  int32
+       Cutime int32
+       Cstime int32
+}
+
+type Utimbuf struct {
+       Actime  int32
+       Modtime int32
+}
+
+type Rusage struct {
+       Utime    Timeval
+       Stime    Timeval
+       Maxrss   int32
+       Ixrss    int32
+       Idrss    int32
+       Isrss    int32
+       Minflt   int32
+       Majflt   int32
+       Nswap    int32
+       Inblock  int32
+       Oublock  int32
+       Msgsnd   int32
+       Msgrcv   int32
+       Nsignals int32
+       Nvcsw    int32
+       Nivcsw   int32
+}
+
+type Rlimit struct {
+       Cur uint64
+       Max uint64
+}
+
+type _Gid_t uint32
+
+type Stat_t struct {
+       Dev     uint32
+       Pad1    [3]int32
+       Ino     uint64
+       Mode    uint32
+       Nlink   uint32
+       Uid     uint32
+       Gid     uint32
+       Rdev    uint32
+       Pad2    [3]int32
+       Size    int64
+       Atim    Timespec
+       Mtim    Timespec
+       Ctim    Timespec
+       Blksize int32
+       Pad4    int32
+       Blocks  int64
+       Pad5    [14]int32
+}
+
+type Statfs_t struct {
+       Type      int32
+       Bsize     int32
+       Frsize    int32
+       Pad_cgo_0 [4]byte
+       Blocks    uint64
+       Bfree     uint64
+       Files     uint64
+       Ffree     uint64
+       Bavail    uint64
+       Fsid      Fsid
+       Namelen   int32
+       Flags     int32
+       Spare     [5]int32
+       Pad_cgo_1 [4]byte
+}
+
+type Dirent struct {
+       Ino       uint64
+       Off       int64
+       Reclen    uint16
+       Type      uint8
+       Name      [256]int8
+       Pad_cgo_0 [5]byte
+}
+
+type Fsid struct {
+       X__val [2]int32
+}
+
+type Flock_t struct {
+       Type      int16
+       Whence    int16
+       Pad_cgo_0 [4]byte
+       Start     int64
+       Len       int64
+       Pid       int32
+       Pad_cgo_1 [4]byte
+}
+
+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
+)
+
+type RawSockaddrInet4 struct {
+       Family uint16
+       Port   uint16
+       Addr   [4]byte /* in_addr */
+       Zero   [8]uint8
+}
+
+type RawSockaddrInet6 struct {
+       Family   uint16
+       Port     uint16
+       Flowinfo uint32
+       Addr     [16]byte /* in6_addr */
+       Scope_id uint32
+}
+
+type RawSockaddrUnix struct {
+       Family uint16
+       Path   [108]int8
+}
+
+type RawSockaddrLinklayer struct {
+       Family   uint16
+       Protocol uint16
+       Ifindex  int32
+       Hatype   uint16
+       Pkttype  uint8
+       Halen    uint8
+       Addr     [8]uint8
+}
+
+type RawSockaddrNetlink struct {
+       Family uint16
+       Pad    uint16
+       Pid    uint32
+       Groups uint32
+}
+
+type RawSockaddrHCI struct {
+       Family  uint16
+       Dev     uint16
+       Channel uint16
+}
+
+type RawSockaddrCAN struct {
+       Family    uint16
+       Pad_cgo_0 [2]byte
+       Ifindex   int32
+       Addr      [8]byte
+}
+
+type RawSockaddrALG struct {
+       Family uint16
+       Type   [14]uint8
+       Feat   uint32
+       Mask   uint32
+       Name   [64]uint8
+}
+
+type RawSockaddrVM struct {
+       Family    uint16
+       Reserved1 uint16
+       Port      uint32
+       Cid       uint32
+       Zero      [4]uint8
+}
+
+type RawSockaddr struct {
+       Family uint16
+       Data   [14]int8
+}
+
+type RawSockaddrAny struct {
+       Addr RawSockaddr
+       Pad  [96]int8
+}
+
+type _Socklen uint32
+
+type Linger struct {
+       Onoff  int32
+       Linger int32
+}
+
+type Iovec struct {
+       Base *byte
+       Len  uint32
+}
+
+type IPMreq struct {
+       Multiaddr [4]byte /* in_addr */
+       Interface [4]byte /* in_addr */
+}
+
+type IPMreqn struct {
+       Multiaddr [4]byte /* in_addr */
+       Address   [4]byte /* in_addr */
+       Ifindex   int32
+}
+
+type IPv6Mreq struct {
+       Multiaddr [16]byte /* in6_addr */
+       Interface uint32
+}
+
+type PacketMreq struct {
+       Ifindex int32
+       Type    uint16
+       Alen    uint16
+       Address [8]uint8
+}
+
+type Msghdr struct {
+       Name       *byte
+       Namelen    uint32
+       Iov        *Iovec
+       Iovlen     uint32
+       Control    *byte
+       Controllen uint32
+       Flags      int32
+}
+
+type Cmsghdr struct {
+       Len   uint32
+       Level int32
+       Type  int32
+}
+
+type Inet4Pktinfo struct {
+       Ifindex  int32
+       Spec_dst [4]byte /* in_addr */
+       Addr     [4]byte /* in_addr */
+}
+
+type Inet6Pktinfo struct {
+       Addr    [16]byte /* in6_addr */
+       Ifindex uint32
+}
+
+type IPv6MTUInfo struct {
+       Addr RawSockaddrInet6
+       Mtu  uint32
+}
+
+type ICMPv6Filter struct {
+       Data [8]uint32
+}
+
+type Ucred struct {
+       Pid int32
+       Uid uint32
+       Gid uint32
+}
+
+type TCPInfo struct {
+       State          uint8
+       Ca_state       uint8
+       Retransmits    uint8
+       Probes         uint8
+       Backoff        uint8
+       Options        uint8
+       Pad_cgo_0      [2]byte
+       Rto            uint32
+       Ato            uint32
+       Snd_mss        uint32
+       Rcv_mss        uint32
+       Unacked        uint32
+       Sacked         uint32
+       Lost           uint32
+       Retrans        uint32
+       Fackets        uint32
+       Last_data_sent uint32
+       Last_ack_sent  uint32
+       Last_data_recv uint32
+       Last_ack_recv  uint32
+       Pmtu           uint32
+       Rcv_ssthresh   uint32
+       Rtt            uint32
+       Rttvar         uint32
+       Snd_ssthresh   uint32
+       Snd_cwnd       uint32
+       Advmss         uint32
+       Reordering     uint32
+       Rcv_rtt        uint32
+       Rcv_space      uint32
+       Total_retrans  uint32
+}
+
+const (
+       SizeofSockaddrInet4     = 0x10
+       SizeofSockaddrInet6     = 0x1c
+       SizeofSockaddrAny       = 0x70
+       SizeofSockaddrUnix      = 0x6e
+       SizeofSockaddrLinklayer = 0x14
+       SizeofSockaddrNetlink   = 0xc
+       SizeofSockaddrHCI       = 0x6
+       SizeofSockaddrCAN       = 0x10
+       SizeofSockaddrALG       = 0x58
+       SizeofSockaddrVM        = 0x10
+       SizeofLinger            = 0x8
+       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
+)
+
+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
+)
+
+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
+       Hi       uint64
+       Epc      uint64
+       Badvaddr uint64
+       Status   uint64
+       Cause    uint64
+}
+
+type FdSet struct {
+       Bits [32]int32
+}
+
+type Sysinfo_t struct {
+       Uptime    int32
+       Loads     [3]uint32
+       Totalram  uint32
+       Freeram   uint32
+       Sharedram uint32
+       Bufferram uint32
+       Totalswap uint32
+       Freeswap  uint32
+       Procs     uint16
+       Pad       uint16
+       Totalhigh uint32
+       Freehigh  uint32
+       Unit      uint32
+       X_f       [8]int8
+}
+
+type Utsname struct {
+       Sysname    [65]int8
+       Nodename   [65]int8
+       Release    [65]int8
+       Version    [65]int8
+       Machine    [65]int8
+       Domainname [65]int8
+}
+
+type Ustat_t struct {
+       Tfree  int32
+       Tinode uint32
+       Fname  [6]int8
+       Fpack  [6]int8
+}
+
+type EpollEvent struct {
+       Events uint32
+       PadFd  int32
+       Fd     int32
+       Pad    int32
+}
+
+const (
+       AT_FDCWD            = -0x64
+       AT_REMOVEDIR        = 0x200
+       AT_SYMLINK_FOLLOW   = 0x400
+       AT_SYMLINK_NOFOLLOW = 0x100
+)
+
+type PollFd struct {
+       Fd      int32
+       Events  int16
+       Revents int16
+}
+
+const (
+       POLLIN    = 0x1
+       POLLPRI   = 0x2
+       POLLOUT   = 0x4
+       POLLRDHUP = 0x2000
+       POLLERR   = 0x8
+       POLLHUP   = 0x10
+       POLLNVAL  = 0x20
+)
+
+type Sigset_t struct {
+       X__val [32]uint32
+}
+
+const RNDGETENTCNT = 0x40045200
+
+const PERF_IOC_FLAG_GROUP = 0x1
+
+const _SC_PAGESIZE = 0x1e
+
+type Termios struct {
+       Iflag  uint32
+       Oflag  uint32
+       Cflag  uint32
+       Lflag  uint32
+       Line   uint8
+       Cc     [23]uint8
+       Ispeed uint32
+       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
+       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
+       Pad_cgo_2                 [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
+       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
+}
+
+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 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
+)
diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_mips64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_mips64.go
new file mode 100644 (file)
index 0000000..3e5fc62
--- /dev/null
@@ -0,0 +1,794 @@
+// 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 mips64,linux
+
+package unix
+
+const (
+       sizeofPtr      = 0x8
+       sizeofShort    = 0x2
+       sizeofInt      = 0x4
+       sizeofLong     = 0x8
+       sizeofLongLong = 0x8
+       PathMax        = 0x1000
+)
+
+type (
+       _C_short     int16
+       _C_int       int32
+       _C_long      int64
+       _C_long_long int64
+)
+
+type Timespec struct {
+       Sec  int64
+       Nsec int64
+}
+
+type Timeval struct {
+       Sec  int64
+       Usec int64
+}
+
+type Timex struct {
+       Modes     uint32
+       Pad_cgo_0 [4]byte
+       Offset    int64
+       Freq      int64
+       Maxerror  int64
+       Esterror  int64
+       Status    int32
+       Pad_cgo_1 [4]byte
+       Constant  int64
+       Precision int64
+       Tolerance int64
+       Time      Timeval
+       Tick      int64
+       Ppsfreq   int64
+       Jitter    int64
+       Shift     int32
+       Pad_cgo_2 [4]byte
+       Stabil    int64
+       Jitcnt    int64
+       Calcnt    int64
+       Errcnt    int64
+       Stbcnt    int64
+       Tai       int32
+       Pad_cgo_3 [44]byte
+}
+
+type Time_t int64
+
+type Tms struct {
+       Utime  int64
+       Stime  int64
+       Cutime int64
+       Cstime int64
+}
+
+type Utimbuf struct {
+       Actime  int64
+       Modtime int64
+}
+
+type Rusage struct {
+       Utime    Timeval
+       Stime    Timeval
+       Maxrss   int64
+       Ixrss    int64
+       Idrss    int64
+       Isrss    int64
+       Minflt   int64
+       Majflt   int64
+       Nswap    int64
+       Inblock  int64
+       Oublock  int64
+       Msgsnd   int64
+       Msgrcv   int64
+       Nsignals int64
+       Nvcsw    int64
+       Nivcsw   int64
+}
+
+type Rlimit struct {
+       Cur uint64
+       Max uint64
+}
+
+type _Gid_t uint32
+
+type Stat_t struct {
+       Dev     uint32
+       Pad1    [3]uint32
+       Ino     uint64
+       Mode    uint32
+       Nlink   uint32
+       Uid     uint32
+       Gid     uint32
+       Rdev    uint32
+       Pad2    [3]uint32
+       Size    int64
+       Atim    Timespec
+       Mtim    Timespec
+       Ctim    Timespec
+       Blksize uint32
+       Pad4    uint32
+       Blocks  int64
+}
+
+type Statfs_t struct {
+       Type    int64
+       Bsize   int64
+       Frsize  int64
+       Blocks  uint64
+       Bfree   uint64
+       Files   uint64
+       Ffree   uint64
+       Bavail  uint64
+       Fsid    Fsid
+       Namelen int64
+       Flags   int64
+       Spare   [5]int64
+}
+
+type Dirent struct {
+       Ino       uint64
+       Off       int64
+       Reclen    uint16
+       Type      uint8
+       Name      [256]int8
+       Pad_cgo_0 [5]byte
+}
+
+type Fsid struct {
+       X__val [2]int32
+}
+
+type Flock_t struct {
+       Type      int16
+       Whence    int16
+       Pad_cgo_0 [4]byte
+       Start     int64
+       Len       int64
+       Pid       int32
+       Pad_cgo_1 [4]byte
+}
+
+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
+)
+
+type RawSockaddrInet4 struct {
+       Family uint16
+       Port   uint16
+       Addr   [4]byte /* in_addr */
+       Zero   [8]uint8
+}
+
+type RawSockaddrInet6 struct {
+       Family   uint16
+       Port     uint16
+       Flowinfo uint32
+       Addr     [16]byte /* in6_addr */
+       Scope_id uint32
+}
+
+type RawSockaddrUnix struct {
+       Family uint16
+       Path   [108]int8
+}
+
+type RawSockaddrLinklayer struct {
+       Family   uint16
+       Protocol uint16
+       Ifindex  int32
+       Hatype   uint16
+       Pkttype  uint8
+       Halen    uint8
+       Addr     [8]uint8
+}
+
+type RawSockaddrNetlink struct {
+       Family uint16
+       Pad    uint16
+       Pid    uint32
+       Groups uint32
+}
+
+type RawSockaddrHCI struct {
+       Family  uint16
+       Dev     uint16
+       Channel uint16
+}
+
+type RawSockaddrCAN struct {
+       Family    uint16
+       Pad_cgo_0 [2]byte
+       Ifindex   int32
+       Addr      [8]byte
+}
+
+type RawSockaddrALG struct {
+       Family uint16
+       Type   [14]uint8
+       Feat   uint32
+       Mask   uint32
+       Name   [64]uint8
+}
+
+type RawSockaddrVM struct {
+       Family    uint16
+       Reserved1 uint16
+       Port      uint32
+       Cid       uint32
+       Zero      [4]uint8
+}
+
+type RawSockaddr struct {
+       Family uint16
+       Data   [14]int8
+}
+
+type RawSockaddrAny struct {
+       Addr RawSockaddr
+       Pad  [96]int8
+}
+
+type _Socklen uint32
+
+type Linger struct {
+       Onoff  int32
+       Linger int32
+}
+
+type Iovec struct {
+       Base *byte
+       Len  uint64
+}
+
+type IPMreq struct {
+       Multiaddr [4]byte /* in_addr */
+       Interface [4]byte /* in_addr */
+}
+
+type IPMreqn struct {
+       Multiaddr [4]byte /* in_addr */
+       Address   [4]byte /* in_addr */
+       Ifindex   int32
+}
+
+type IPv6Mreq struct {
+       Multiaddr [16]byte /* in6_addr */
+       Interface uint32
+}
+
+type 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
+}
+
+type Cmsghdr struct {
+       Len   uint64
+       Level int32
+       Type  int32
+}
+
+type Inet4Pktinfo struct {
+       Ifindex  int32
+       Spec_dst [4]byte /* in_addr */
+       Addr     [4]byte /* in_addr */
+}
+
+type Inet6Pktinfo struct {
+       Addr    [16]byte /* in6_addr */
+       Ifindex uint32
+}
+
+type IPv6MTUInfo struct {
+       Addr RawSockaddrInet6
+       Mtu  uint32
+}
+
+type ICMPv6Filter struct {
+       Data [8]uint32
+}
+
+type Ucred struct {
+       Pid int32
+       Uid uint32
+       Gid uint32
+}
+
+type TCPInfo struct {
+       State          uint8
+       Ca_state       uint8
+       Retransmits    uint8
+       Probes         uint8
+       Backoff        uint8
+       Options        uint8
+       Pad_cgo_0      [2]byte
+       Rto            uint32
+       Ato            uint32
+       Snd_mss        uint32
+       Rcv_mss        uint32
+       Unacked        uint32
+       Sacked         uint32
+       Lost           uint32
+       Retrans        uint32
+       Fackets        uint32
+       Last_data_sent uint32
+       Last_ack_sent  uint32
+       Last_data_recv uint32
+       Last_ack_recv  uint32
+       Pmtu           uint32
+       Rcv_ssthresh   uint32
+       Rtt            uint32
+       Rttvar         uint32
+       Snd_ssthresh   uint32
+       Snd_cwnd       uint32
+       Advmss         uint32
+       Reordering     uint32
+       Rcv_rtt        uint32
+       Rcv_space      uint32
+       Total_retrans  uint32
+}
+
+const (
+       SizeofSockaddrInet4     = 0x10
+       SizeofSockaddrInet6     = 0x1c
+       SizeofSockaddrAny       = 0x70
+       SizeofSockaddrUnix      = 0x6e
+       SizeofSockaddrLinklayer = 0x14
+       SizeofSockaddrNetlink   = 0xc
+       SizeofSockaddrHCI       = 0x6
+       SizeofSockaddrCAN       = 0x10
+       SizeofSockaddrALG       = 0x58
+       SizeofSockaddrVM        = 0x10
+       SizeofLinger            = 0x8
+       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
+)
+
+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
+       Hi       uint64
+       Epc      uint64
+       Badvaddr uint64
+       Status   uint64
+       Cause    uint64
+}
+
+type FdSet struct {
+       Bits [16]int64
+}
+
+type Sysinfo_t struct {
+       Uptime    int64
+       Loads     [3]uint64
+       Totalram  uint64
+       Freeram   uint64
+       Sharedram uint64
+       Bufferram uint64
+       Totalswap uint64
+       Freeswap  uint64
+       Procs     uint16
+       Pad       uint16
+       Pad_cgo_0 [4]byte
+       Totalhigh uint64
+       Freehigh  uint64
+       Unit      uint32
+       X_f       [0]int8
+       Pad_cgo_1 [4]byte
+}
+
+type Utsname struct {
+       Sysname    [65]int8
+       Nodename   [65]int8
+       Release    [65]int8
+       Version    [65]int8
+       Machine    [65]int8
+       Domainname [65]int8
+}
+
+type Ustat_t struct {
+       Tfree     int32
+       Pad_cgo_0 [4]byte
+       Tinode    uint64
+       Fname     [6]int8
+       Fpack     [6]int8
+       Pad_cgo_1 [4]byte
+}
+
+type EpollEvent struct {
+       Events uint32
+       Fd     int32
+       Pad    int32
+}
+
+const (
+       AT_FDCWD            = -0x64
+       AT_REMOVEDIR        = 0x200
+       AT_SYMLINK_FOLLOW   = 0x400
+       AT_SYMLINK_NOFOLLOW = 0x100
+)
+
+type PollFd struct {
+       Fd      int32
+       Events  int16
+       Revents int16
+}
+
+const (
+       POLLIN    = 0x1
+       POLLPRI   = 0x2
+       POLLOUT   = 0x4
+       POLLRDHUP = 0x2000
+       POLLERR   = 0x8
+       POLLHUP   = 0x10
+       POLLNVAL  = 0x20
+)
+
+type Sigset_t struct {
+       X__val [16]uint64
+}
+
+const RNDGETENTCNT = 0x40045200
+
+const PERF_IOC_FLAG_GROUP = 0x1
+
+const _SC_PAGESIZE = 0x1e
+
+type Termios struct {
+       Iflag  uint32
+       Oflag  uint32
+       Cflag  uint32
+       Lflag  uint32
+       Line   uint8
+       Cc     [23]uint8
+       Ispeed uint32
+       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
+       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
+       Pad_cgo_2                 [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
+       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
+}
+
+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 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
+)
diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go b/vendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go
new file mode 100644 (file)
index 0000000..f9bd1ab
--- /dev/null
@@ -0,0 +1,794 @@
+// 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 mips64le,linux
+
+package unix
+
+const (
+       sizeofPtr      = 0x8
+       sizeofShort    = 0x2
+       sizeofInt      = 0x4
+       sizeofLong     = 0x8
+       sizeofLongLong = 0x8
+       PathMax        = 0x1000
+)
+
+type (
+       _C_short     int16
+       _C_int       int32
+       _C_long      int64
+       _C_long_long int64
+)
+
+type Timespec struct {
+       Sec  int64
+       Nsec int64
+}
+
+type Timeval struct {
+       Sec  int64
+       Usec int64
+}
+
+type Timex struct {
+       Modes     uint32
+       Pad_cgo_0 [4]byte
+       Offset    int64
+       Freq      int64
+       Maxerror  int64
+       Esterror  int64
+       Status    int32
+       Pad_cgo_1 [4]byte
+       Constant  int64
+       Precision int64
+       Tolerance int64
+       Time      Timeval
+       Tick      int64
+       Ppsfreq   int64
+       Jitter    int64
+       Shift     int32
+       Pad_cgo_2 [4]byte
+       Stabil    int64
+       Jitcnt    int64
+       Calcnt    int64
+       Errcnt    int64
+       Stbcnt    int64
+       Tai       int32
+       Pad_cgo_3 [44]byte
+}
+
+type Time_t int64
+
+type Tms struct {
+       Utime  int64
+       Stime  int64
+       Cutime int64
+       Cstime int64
+}
+
+type Utimbuf struct {
+       Actime  int64
+       Modtime int64
+}
+
+type Rusage struct {
+       Utime    Timeval
+       Stime    Timeval
+       Maxrss   int64
+       Ixrss    int64
+       Idrss    int64
+       Isrss    int64
+       Minflt   int64
+       Majflt   int64
+       Nswap    int64
+       Inblock  int64
+       Oublock  int64
+       Msgsnd   int64
+       Msgrcv   int64
+       Nsignals int64
+       Nvcsw    int64
+       Nivcsw   int64
+}
+
+type Rlimit struct {
+       Cur uint64
+       Max uint64
+}
+
+type _Gid_t uint32
+
+type Stat_t struct {
+       Dev     uint32
+       Pad1    [3]uint32
+       Ino     uint64
+       Mode    uint32
+       Nlink   uint32
+       Uid     uint32
+       Gid     uint32
+       Rdev    uint32
+       Pad2    [3]uint32
+       Size    int64
+       Atim    Timespec
+       Mtim    Timespec
+       Ctim    Timespec
+       Blksize uint32
+       Pad4    uint32
+       Blocks  int64
+}
+
+type Statfs_t struct {
+       Type    int64
+       Bsize   int64
+       Frsize  int64
+       Blocks  uint64
+       Bfree   uint64
+       Files   uint64
+       Ffree   uint64
+       Bavail  uint64
+       Fsid    Fsid
+       Namelen int64
+       Flags   int64
+       Spare   [5]int64
+}
+
+type Dirent struct {
+       Ino       uint64
+       Off       int64
+       Reclen    uint16
+       Type      uint8
+       Name      [256]int8
+       Pad_cgo_0 [5]byte
+}
+
+type Fsid struct {
+       X__val [2]int32
+}
+
+type Flock_t struct {
+       Type      int16
+       Whence    int16
+       Pad_cgo_0 [4]byte
+       Start     int64
+       Len       int64
+       Pid       int32
+       Pad_cgo_1 [4]byte
+}
+
+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
+)
+
+type RawSockaddrInet4 struct {
+       Family uint16
+       Port   uint16
+       Addr   [4]byte /* in_addr */
+       Zero   [8]uint8
+}
+
+type RawSockaddrInet6 struct {
+       Family   uint16
+       Port     uint16
+       Flowinfo uint32
+       Addr     [16]byte /* in6_addr */
+       Scope_id uint32
+}
+
+type RawSockaddrUnix struct {
+       Family uint16
+       Path   [108]int8
+}
+
+type RawSockaddrLinklayer struct {
+       Family   uint16
+       Protocol uint16
+       Ifindex  int32
+       Hatype   uint16
+       Pkttype  uint8
+       Halen    uint8
+       Addr     [8]uint8
+}
+
+type RawSockaddrNetlink struct {
+       Family uint16
+       Pad    uint16
+       Pid    uint32
+       Groups uint32
+}
+
+type RawSockaddrHCI struct {
+       Family  uint16
+       Dev     uint16
+       Channel uint16
+}
+
+type RawSockaddrCAN struct {
+       Family    uint16
+       Pad_cgo_0 [2]byte
+       Ifindex   int32
+       Addr      [8]byte
+}
+
+type RawSockaddrALG struct {
+       Family uint16
+       Type   [14]uint8
+       Feat   uint32
+       Mask   uint32
+       Name   [64]uint8
+}
+
+type RawSockaddrVM struct {
+       Family    uint16
+       Reserved1 uint16
+       Port      uint32
+       Cid       uint32
+       Zero      [4]uint8
+}
+
+type RawSockaddr struct {
+       Family uint16
+       Data   [14]int8
+}
+
+type RawSockaddrAny struct {
+       Addr RawSockaddr
+       Pad  [96]int8
+}
+
+type _Socklen uint32
+
+type Linger struct {
+       Onoff  int32
+       Linger int32
+}
+
+type Iovec struct {
+       Base *byte
+       Len  uint64
+}
+
+type IPMreq struct {
+       Multiaddr [4]byte /* in_addr */
+       Interface [4]byte /* in_addr */
+}
+
+type IPMreqn struct {
+       Multiaddr [4]byte /* in_addr */
+       Address   [4]byte /* in_addr */
+       Ifindex   int32
+}
+
+type IPv6Mreq struct {
+       Multiaddr [16]byte /* in6_addr */
+       Interface uint32
+}
+
+type 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
+}
+
+type Cmsghdr struct {
+       Len   uint64
+       Level int32
+       Type  int32
+}
+
+type Inet4Pktinfo struct {
+       Ifindex  int32
+       Spec_dst [4]byte /* in_addr */
+       Addr     [4]byte /* in_addr */
+}
+
+type Inet6Pktinfo struct {
+       Addr    [16]byte /* in6_addr */
+       Ifindex uint32
+}
+
+type IPv6MTUInfo struct {
+       Addr RawSockaddrInet6
+       Mtu  uint32
+}
+
+type ICMPv6Filter struct {
+       Data [8]uint32
+}
+
+type Ucred struct {
+       Pid int32
+       Uid uint32
+       Gid uint32
+}
+
+type TCPInfo struct {
+       State          uint8
+       Ca_state       uint8
+       Retransmits    uint8
+       Probes         uint8
+       Backoff        uint8
+       Options        uint8
+       Pad_cgo_0      [2]byte
+       Rto            uint32
+       Ato            uint32
+       Snd_mss        uint32
+       Rcv_mss        uint32
+       Unacked        uint32
+       Sacked         uint32
+       Lost           uint32
+       Retrans        uint32
+       Fackets        uint32
+       Last_data_sent uint32
+       Last_ack_sent  uint32
+       Last_data_recv uint32
+       Last_ack_recv  uint32
+       Pmtu           uint32
+       Rcv_ssthresh   uint32
+       Rtt            uint32
+       Rttvar         uint32
+       Snd_ssthresh   uint32
+       Snd_cwnd       uint32
+       Advmss         uint32
+       Reordering     uint32
+       Rcv_rtt        uint32
+       Rcv_space      uint32
+       Total_retrans  uint32
+}
+
+const (
+       SizeofSockaddrInet4     = 0x10
+       SizeofSockaddrInet6     = 0x1c
+       SizeofSockaddrAny       = 0x70
+       SizeofSockaddrUnix      = 0x6e
+       SizeofSockaddrLinklayer = 0x14
+       SizeofSockaddrNetlink   = 0xc
+       SizeofSockaddrHCI       = 0x6
+       SizeofSockaddrCAN       = 0x10
+       SizeofSockaddrALG       = 0x58
+       SizeofSockaddrVM        = 0x10
+       SizeofLinger            = 0x8
+       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
+)
+
+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
+       Hi       uint64
+       Epc      uint64
+       Badvaddr uint64
+       Status   uint64
+       Cause    uint64
+}
+
+type FdSet struct {
+       Bits [16]int64
+}
+
+type Sysinfo_t struct {
+       Uptime    int64
+       Loads     [3]uint64
+       Totalram  uint64
+       Freeram   uint64
+       Sharedram uint64
+       Bufferram uint64
+       Totalswap uint64
+       Freeswap  uint64
+       Procs     uint16
+       Pad       uint16
+       Pad_cgo_0 [4]byte
+       Totalhigh uint64
+       Freehigh  uint64
+       Unit      uint32
+       X_f       [0]int8
+       Pad_cgo_1 [4]byte
+}
+
+type Utsname struct {
+       Sysname    [65]int8
+       Nodename   [65]int8
+       Release    [65]int8
+       Version    [65]int8
+       Machine    [65]int8
+       Domainname [65]int8
+}
+
+type Ustat_t struct {
+       Tfree     int32
+       Pad_cgo_0 [4]byte
+       Tinode    uint64
+       Fname     [6]int8
+       Fpack     [6]int8
+       Pad_cgo_1 [4]byte
+}
+
+type EpollEvent struct {
+       Events uint32
+       Fd     int32
+       Pad    int32
+}
+
+const (
+       AT_FDCWD            = -0x64
+       AT_REMOVEDIR        = 0x200
+       AT_SYMLINK_FOLLOW   = 0x400
+       AT_SYMLINK_NOFOLLOW = 0x100
+)
+
+type PollFd struct {
+       Fd      int32
+       Events  int16
+       Revents int16
+}
+
+const (
+       POLLIN    = 0x1
+       POLLPRI   = 0x2
+       POLLOUT   = 0x4
+       POLLRDHUP = 0x2000
+       POLLERR   = 0x8
+       POLLHUP   = 0x10
+       POLLNVAL  = 0x20
+)
+
+type Sigset_t struct {
+       X__val [16]uint64
+}
+
+const RNDGETENTCNT = 0x40045200
+
+const PERF_IOC_FLAG_GROUP = 0x1
+
+const _SC_PAGESIZE = 0x1e
+
+type Termios struct {
+       Iflag  uint32
+       Oflag  uint32
+       Cflag  uint32
+       Lflag  uint32
+       Line   uint8
+       Cc     [23]uint8
+       Ispeed uint32
+       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
+       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
+       Pad_cgo_2                 [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
+       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
+}
+
+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 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
+)
diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_mipsle.go b/vendor/golang.org/x/sys/unix/ztypes_linux_mipsle.go
new file mode 100644 (file)
index 0000000..74c5421
--- /dev/null
@@ -0,0 +1,789 @@
+// 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 mipsle,linux
+
+package unix
+
+const (
+       sizeofPtr      = 0x4
+       sizeofShort    = 0x2
+       sizeofInt      = 0x4
+       sizeofLong     = 0x4
+       sizeofLongLong = 0x8
+       PathMax        = 0x1000
+)
+
+type (
+       _C_short     int16
+       _C_int       int32
+       _C_long      int32
+       _C_long_long int64
+)
+
+type Timespec struct {
+       Sec  int32
+       Nsec int32
+}
+
+type Timeval struct {
+       Sec  int32
+       Usec int32
+}
+
+type Timex struct {
+       Modes     uint32
+       Offset    int32
+       Freq      int32
+       Maxerror  int32
+       Esterror  int32
+       Status    int32
+       Constant  int32
+       Precision int32
+       Tolerance int32
+       Time      Timeval
+       Tick      int32
+       Ppsfreq   int32
+       Jitter    int32
+       Shift     int32
+       Stabil    int32
+       Jitcnt    int32
+       Calcnt    int32
+       Errcnt    int32
+       Stbcnt    int32
+       Tai       int32
+       Pad_cgo_0 [44]byte
+}
+
+type Time_t int32
+
+type Tms struct {
+       Utime  int32
+       Stime  int32
+       Cutime int32
+       Cstime int32
+}
+
+type Utimbuf struct {
+       Actime  int32
+       Modtime int32
+}
+
+type Rusage struct {
+       Utime    Timeval
+       Stime    Timeval
+       Maxrss   int32
+       Ixrss    int32
+       Idrss    int32
+       Isrss    int32
+       Minflt   int32
+       Majflt   int32
+       Nswap    int32
+       Inblock  int32
+       Oublock  int32
+       Msgsnd   int32
+       Msgrcv   int32
+       Nsignals int32
+       Nvcsw    int32
+       Nivcsw   int32
+}
+
+type Rlimit struct {
+       Cur uint64
+       Max uint64
+}
+
+type _Gid_t uint32
+
+type Stat_t struct {
+       Dev     uint32
+       Pad1    [3]int32
+       Ino     uint64
+       Mode    uint32
+       Nlink   uint32
+       Uid     uint32
+       Gid     uint32
+       Rdev    uint32
+       Pad2    [3]int32
+       Size    int64
+       Atim    Timespec
+       Mtim    Timespec
+       Ctim    Timespec
+       Blksize int32
+       Pad4    int32
+       Blocks  int64
+       Pad5    [14]int32
+}
+
+type Statfs_t struct {
+       Type      int32
+       Bsize     int32
+       Frsize    int32
+       Pad_cgo_0 [4]byte
+       Blocks    uint64
+       Bfree     uint64
+       Files     uint64
+       Ffree     uint64
+       Bavail    uint64
+       Fsid      Fsid
+       Namelen   int32
+       Flags     int32
+       Spare     [5]int32
+       Pad_cgo_1 [4]byte
+}
+
+type Dirent struct {
+       Ino       uint64
+       Off       int64
+       Reclen    uint16
+       Type      uint8
+       Name      [256]int8
+       Pad_cgo_0 [5]byte
+}
+
+type Fsid struct {
+       X__val [2]int32
+}
+
+type Flock_t struct {
+       Type      int16
+       Whence    int16
+       Pad_cgo_0 [4]byte
+       Start     int64
+       Len       int64
+       Pid       int32
+       Pad_cgo_1 [4]byte
+}
+
+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
+)
+
+type RawSockaddrInet4 struct {
+       Family uint16
+       Port   uint16
+       Addr   [4]byte /* in_addr */
+       Zero   [8]uint8
+}
+
+type RawSockaddrInet6 struct {
+       Family   uint16
+       Port     uint16
+       Flowinfo uint32
+       Addr     [16]byte /* in6_addr */
+       Scope_id uint32
+}
+
+type RawSockaddrUnix struct {
+       Family uint16
+       Path   [108]int8
+}
+
+type RawSockaddrLinklayer struct {
+       Family   uint16
+       Protocol uint16
+       Ifindex  int32
+       Hatype   uint16
+       Pkttype  uint8
+       Halen    uint8
+       Addr     [8]uint8
+}
+
+type RawSockaddrNetlink struct {
+       Family uint16
+       Pad    uint16
+       Pid    uint32
+       Groups uint32
+}
+
+type RawSockaddrHCI struct {
+       Family  uint16
+       Dev     uint16
+       Channel uint16
+}
+
+type RawSockaddrCAN struct {
+       Family    uint16
+       Pad_cgo_0 [2]byte
+       Ifindex   int32
+       Addr      [8]byte
+}
+
+type RawSockaddrALG struct {
+       Family uint16
+       Type   [14]uint8
+       Feat   uint32
+       Mask   uint32
+       Name   [64]uint8
+}
+
+type RawSockaddrVM struct {
+       Family    uint16
+       Reserved1 uint16
+       Port      uint32
+       Cid       uint32
+       Zero      [4]uint8
+}
+
+type RawSockaddr struct {
+       Family uint16
+       Data   [14]int8
+}
+
+type RawSockaddrAny struct {
+       Addr RawSockaddr
+       Pad  [96]int8
+}
+
+type _Socklen uint32
+
+type Linger struct {
+       Onoff  int32
+       Linger int32
+}
+
+type Iovec struct {
+       Base *byte
+       Len  uint32
+}
+
+type IPMreq struct {
+       Multiaddr [4]byte /* in_addr */
+       Interface [4]byte /* in_addr */
+}
+
+type IPMreqn struct {
+       Multiaddr [4]byte /* in_addr */
+       Address   [4]byte /* in_addr */
+       Ifindex   int32
+}
+
+type IPv6Mreq struct {
+       Multiaddr [16]byte /* in6_addr */
+       Interface uint32
+}
+
+type PacketMreq struct {
+       Ifindex int32
+       Type    uint16
+       Alen    uint16
+       Address [8]uint8
+}
+
+type Msghdr struct {
+       Name       *byte
+       Namelen    uint32
+       Iov        *Iovec
+       Iovlen     uint32
+       Control    *byte
+       Controllen uint32
+       Flags      int32
+}
+
+type Cmsghdr struct {
+       Len   uint32
+       Level int32
+       Type  int32
+}
+
+type Inet4Pktinfo struct {
+       Ifindex  int32
+       Spec_dst [4]byte /* in_addr */
+       Addr     [4]byte /* in_addr */
+}
+
+type Inet6Pktinfo struct {
+       Addr    [16]byte /* in6_addr */
+       Ifindex uint32
+}
+
+type IPv6MTUInfo struct {
+       Addr RawSockaddrInet6
+       Mtu  uint32
+}
+
+type ICMPv6Filter struct {
+       Data [8]uint32
+}
+
+type Ucred struct {
+       Pid int32
+       Uid uint32
+       Gid uint32
+}
+
+type TCPInfo struct {
+       State          uint8
+       Ca_state       uint8
+       Retransmits    uint8
+       Probes         uint8
+       Backoff        uint8
+       Options        uint8
+       Pad_cgo_0      [2]byte
+       Rto            uint32
+       Ato            uint32
+       Snd_mss        uint32
+       Rcv_mss        uint32
+       Unacked        uint32
+       Sacked         uint32
+       Lost           uint32
+       Retrans        uint32
+       Fackets        uint32
+       Last_data_sent uint32
+       Last_ack_sent  uint32
+       Last_data_recv uint32
+       Last_ack_recv  uint32
+       Pmtu           uint32
+       Rcv_ssthresh   uint32
+       Rtt            uint32
+       Rttvar         uint32
+       Snd_ssthresh   uint32
+       Snd_cwnd       uint32
+       Advmss         uint32
+       Reordering     uint32
+       Rcv_rtt        uint32
+       Rcv_space      uint32
+       Total_retrans  uint32
+}
+
+const (
+       SizeofSockaddrInet4     = 0x10
+       SizeofSockaddrInet6     = 0x1c
+       SizeofSockaddrAny       = 0x70
+       SizeofSockaddrUnix      = 0x6e
+       SizeofSockaddrLinklayer = 0x14
+       SizeofSockaddrNetlink   = 0xc
+       SizeofSockaddrHCI       = 0x6
+       SizeofSockaddrCAN       = 0x10
+       SizeofSockaddrALG       = 0x58
+       SizeofSockaddrVM        = 0x10
+       SizeofLinger            = 0x8
+       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
+)
+
+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
+)
+
+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
+       Hi       uint64
+       Epc      uint64
+       Badvaddr uint64
+       Status   uint64
+       Cause    uint64
+}
+
+type FdSet struct {
+       Bits [32]int32
+}
+
+type Sysinfo_t struct {
+       Uptime    int32
+       Loads     [3]uint32
+       Totalram  uint32
+       Freeram   uint32
+       Sharedram uint32
+       Bufferram uint32
+       Totalswap uint32
+       Freeswap  uint32
+       Procs     uint16
+       Pad       uint16
+       Totalhigh uint32
+       Freehigh  uint32
+       Unit      uint32
+       X_f       [8]int8
+}
+
+type Utsname struct {
+       Sysname    [65]int8
+       Nodename   [65]int8
+       Release    [65]int8
+       Version    [65]int8
+       Machine    [65]int8
+       Domainname [65]int8
+}
+
+type Ustat_t struct {
+       Tfree  int32
+       Tinode uint32
+       Fname  [6]int8
+       Fpack  [6]int8
+}
+
+type EpollEvent struct {
+       Events uint32
+       PadFd  int32
+       Fd     int32
+       Pad    int32
+}
+
+const (
+       AT_FDCWD            = -0x64
+       AT_REMOVEDIR        = 0x200
+       AT_SYMLINK_FOLLOW   = 0x400
+       AT_SYMLINK_NOFOLLOW = 0x100
+)
+
+type PollFd struct {
+       Fd      int32
+       Events  int16
+       Revents int16
+}
+
+const (
+       POLLIN    = 0x1
+       POLLPRI   = 0x2
+       POLLOUT   = 0x4
+       POLLRDHUP = 0x2000
+       POLLERR   = 0x8
+       POLLHUP   = 0x10
+       POLLNVAL  = 0x20
+)
+
+type Sigset_t struct {
+       X__val [32]uint32
+}
+
+const RNDGETENTCNT = 0x40045200
+
+const PERF_IOC_FLAG_GROUP = 0x1
+
+const _SC_PAGESIZE = 0x1e
+
+type Termios struct {
+       Iflag  uint32
+       Oflag  uint32
+       Cflag  uint32
+       Lflag  uint32
+       Line   uint8
+       Cc     [23]uint8
+       Ispeed uint32
+       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
+       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
+       Pad_cgo_2                 [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
+       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
+}
+
+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 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
+)
diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go
new file mode 100644 (file)
index 0000000..2b0b18e
--- /dev/null
@@ -0,0 +1,802 @@
+// 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 ppc64,linux
+
+package unix
+
+const (
+       sizeofPtr      = 0x8
+       sizeofShort    = 0x2
+       sizeofInt      = 0x4
+       sizeofLong     = 0x8
+       sizeofLongLong = 0x8
+       PathMax        = 0x1000
+)
+
+type (
+       _C_short     int16
+       _C_int       int32
+       _C_long      int64
+       _C_long_long int64
+)
+
+type Timespec struct {
+       Sec  int64
+       Nsec int64
+}
+
+type Timeval struct {
+       Sec  int64
+       Usec int64
+}
+
+type Timex struct {
+       Modes     uint32
+       Pad_cgo_0 [4]byte
+       Offset    int64
+       Freq      int64
+       Maxerror  int64
+       Esterror  int64
+       Status    int32
+       Pad_cgo_1 [4]byte
+       Constant  int64
+       Precision int64
+       Tolerance int64
+       Time      Timeval
+       Tick      int64
+       Ppsfreq   int64
+       Jitter    int64
+       Shift     int32
+       Pad_cgo_2 [4]byte
+       Stabil    int64
+       Jitcnt    int64
+       Calcnt    int64
+       Errcnt    int64
+       Stbcnt    int64
+       Tai       int32
+       Pad_cgo_3 [44]byte
+}
+
+type Time_t int64
+
+type Tms struct {
+       Utime  int64
+       Stime  int64
+       Cutime int64
+       Cstime int64
+}
+
+type Utimbuf struct {
+       Actime  int64
+       Modtime int64
+}
+
+type Rusage struct {
+       Utime    Timeval
+       Stime    Timeval
+       Maxrss   int64
+       Ixrss    int64
+       Idrss    int64
+       Isrss    int64
+       Minflt   int64
+       Majflt   int64
+       Nswap    int64
+       Inblock  int64
+       Oublock  int64
+       Msgsnd   int64
+       Msgrcv   int64
+       Nsignals int64
+       Nvcsw    int64
+       Nivcsw   int64
+}
+
+type Rlimit struct {
+       Cur uint64
+       Max uint64
+}
+
+type _Gid_t uint32
+
+type Stat_t struct {
+       Dev     uint64
+       Ino     uint64
+       Nlink   uint64
+       Mode    uint32
+       Uid     uint32
+       Gid     uint32
+       X__pad2 int32
+       Rdev    uint64
+       Size    int64
+       Blksize int64
+       Blocks  int64
+       Atim    Timespec
+       Mtim    Timespec
+       Ctim    Timespec
+       _       uint64
+       _       uint64
+       _       uint64
+}
+
+type Statfs_t struct {
+       Type    int64
+       Bsize   int64
+       Blocks  uint64
+       Bfree   uint64
+       Bavail  uint64
+       Files   uint64
+       Ffree   uint64
+       Fsid    Fsid
+       Namelen int64
+       Frsize  int64
+       Flags   int64
+       Spare   [4]int64
+}
+
+type Dirent struct {
+       Ino       uint64
+       Off       int64
+       Reclen    uint16
+       Type      uint8
+       Name      [256]uint8
+       Pad_cgo_0 [5]byte
+}
+
+type Fsid struct {
+       X__val [2]int32
+}
+
+type Flock_t struct {
+       Type      int16
+       Whence    int16
+       Pad_cgo_0 [4]byte
+       Start     int64
+       Len       int64
+       Pid       int32
+       Pad_cgo_1 [4]byte
+}
+
+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
+)
+
+type RawSockaddrInet4 struct {
+       Family uint16
+       Port   uint16
+       Addr   [4]byte /* in_addr */
+       Zero   [8]uint8
+}
+
+type RawSockaddrInet6 struct {
+       Family   uint16
+       Port     uint16
+       Flowinfo uint32
+       Addr     [16]byte /* in6_addr */
+       Scope_id uint32
+}
+
+type RawSockaddrUnix struct {
+       Family uint16
+       Path   [108]int8
+}
+
+type RawSockaddrLinklayer struct {
+       Family   uint16
+       Protocol uint16
+       Ifindex  int32
+       Hatype   uint16
+       Pkttype  uint8
+       Halen    uint8
+       Addr     [8]uint8
+}
+
+type RawSockaddrNetlink struct {
+       Family uint16
+       Pad    uint16
+       Pid    uint32
+       Groups uint32
+}
+
+type RawSockaddrHCI struct {
+       Family  uint16
+       Dev     uint16
+       Channel uint16
+}
+
+type RawSockaddrCAN struct {
+       Family    uint16
+       Pad_cgo_0 [2]byte
+       Ifindex   int32
+       Addr      [8]byte
+}
+
+type RawSockaddrALG struct {
+       Family uint16
+       Type   [14]uint8
+       Feat   uint32
+       Mask   uint32
+       Name   [64]uint8
+}
+
+type RawSockaddrVM struct {
+       Family    uint16
+       Reserved1 uint16
+       Port      uint32
+       Cid       uint32
+       Zero      [4]uint8
+}
+
+type RawSockaddr struct {
+       Family uint16
+       Data   [14]uint8
+}
+
+type RawSockaddrAny struct {
+       Addr RawSockaddr
+       Pad  [96]uint8
+}
+
+type _Socklen uint32
+
+type Linger struct {
+       Onoff  int32
+       Linger int32
+}
+
+type Iovec struct {
+       Base *byte
+       Len  uint64
+}
+
+type IPMreq struct {
+       Multiaddr [4]byte /* in_addr */
+       Interface [4]byte /* in_addr */
+}
+
+type IPMreqn struct {
+       Multiaddr [4]byte /* in_addr */
+       Address   [4]byte /* in_addr */
+       Ifindex   int32
+}
+
+type IPv6Mreq struct {
+       Multiaddr [16]byte /* in6_addr */
+       Interface uint32
+}
+
+type 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
+}
+
+type Cmsghdr struct {
+       Len   uint64
+       Level int32
+       Type  int32
+}
+
+type Inet4Pktinfo struct {
+       Ifindex  int32
+       Spec_dst [4]byte /* in_addr */
+       Addr     [4]byte /* in_addr */
+}
+
+type Inet6Pktinfo struct {
+       Addr    [16]byte /* in6_addr */
+       Ifindex uint32
+}
+
+type IPv6MTUInfo struct {
+       Addr RawSockaddrInet6
+       Mtu  uint32
+}
+
+type ICMPv6Filter struct {
+       Data [8]uint32
+}
+
+type Ucred struct {
+       Pid int32
+       Uid uint32
+       Gid uint32
+}
+
+type TCPInfo struct {
+       State          uint8
+       Ca_state       uint8
+       Retransmits    uint8
+       Probes         uint8
+       Backoff        uint8
+       Options        uint8
+       Pad_cgo_0      [2]byte
+       Rto            uint32
+       Ato            uint32
+       Snd_mss        uint32
+       Rcv_mss        uint32
+       Unacked        uint32
+       Sacked         uint32
+       Lost           uint32
+       Retrans        uint32
+       Fackets        uint32
+       Last_data_sent uint32
+       Last_ack_sent  uint32
+       Last_data_recv uint32
+       Last_ack_recv  uint32
+       Pmtu           uint32
+       Rcv_ssthresh   uint32
+       Rtt            uint32
+       Rttvar         uint32
+       Snd_ssthresh   uint32
+       Snd_cwnd       uint32
+       Advmss         uint32
+       Reordering     uint32
+       Rcv_rtt        uint32
+       Rcv_space      uint32
+       Total_retrans  uint32
+}
+
+const (
+       SizeofSockaddrInet4     = 0x10
+       SizeofSockaddrInet6     = 0x1c
+       SizeofSockaddrAny       = 0x70
+       SizeofSockaddrUnix      = 0x6e
+       SizeofSockaddrLinklayer = 0x14
+       SizeofSockaddrNetlink   = 0xc
+       SizeofSockaddrHCI       = 0x6
+       SizeofSockaddrCAN       = 0x10
+       SizeofSockaddrALG       = 0x58
+       SizeofSockaddrVM        = 0x10
+       SizeofLinger            = 0x8
+       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
+)
+
+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
+       Msr       uint64
+       Orig_gpr3 uint64
+       Ctr       uint64
+       Link      uint64
+       Xer       uint64
+       Ccr       uint64
+       Softe     uint64
+       Trap      uint64
+       Dar       uint64
+       Dsisr     uint64
+       Result    uint64
+}
+
+type FdSet struct {
+       Bits [16]int64
+}
+
+type Sysinfo_t struct {
+       Uptime    int64
+       Loads     [3]uint64
+       Totalram  uint64
+       Freeram   uint64
+       Sharedram uint64
+       Bufferram uint64
+       Totalswap uint64
+       Freeswap  uint64
+       Procs     uint16
+       Pad       uint16
+       Pad_cgo_0 [4]byte
+       Totalhigh uint64
+       Freehigh  uint64
+       Unit      uint32
+       X_f       [0]uint8
+       Pad_cgo_1 [4]byte
+}
+
+type Utsname struct {
+       Sysname    [65]uint8
+       Nodename   [65]uint8
+       Release    [65]uint8
+       Version    [65]uint8
+       Machine    [65]uint8
+       Domainname [65]uint8
+}
+
+type Ustat_t struct {
+       Tfree     int32
+       Pad_cgo_0 [4]byte
+       Tinode    uint64
+       Fname     [6]uint8
+       Fpack     [6]uint8
+       Pad_cgo_1 [4]byte
+}
+
+type EpollEvent struct {
+       Events  uint32
+       X_padFd int32
+       Fd      int32
+       Pad     int32
+}
+
+const (
+       AT_FDCWD            = -0x64
+       AT_REMOVEDIR        = 0x200
+       AT_SYMLINK_FOLLOW   = 0x400
+       AT_SYMLINK_NOFOLLOW = 0x100
+)
+
+type PollFd struct {
+       Fd      int32
+       Events  int16
+       Revents int16
+}
+
+const (
+       POLLIN    = 0x1
+       POLLPRI   = 0x2
+       POLLOUT   = 0x4
+       POLLRDHUP = 0x2000
+       POLLERR   = 0x8
+       POLLHUP   = 0x10
+       POLLNVAL  = 0x20
+)
+
+type Sigset_t struct {
+       X__val [16]uint64
+}
+
+const RNDGETENTCNT = 0x40045200
+
+const PERF_IOC_FLAG_GROUP = 0x1
+
+const _SC_PAGESIZE = 0x1e
+
+type Termios struct {
+       Iflag  uint32
+       Oflag  uint32
+       Cflag  uint32
+       Lflag  uint32
+       Cc     [19]uint8
+       Line   uint8
+       Ispeed uint32
+       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
+       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
+       Pad_cgo_2                 [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
+       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
+}
+
+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 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
+)
diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go b/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go
new file mode 100644 (file)
index 0000000..b2b5999
--- /dev/null
@@ -0,0 +1,802 @@
+// 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 ppc64le,linux
+
+package unix
+
+const (
+       sizeofPtr      = 0x8
+       sizeofShort    = 0x2
+       sizeofInt      = 0x4
+       sizeofLong     = 0x8
+       sizeofLongLong = 0x8
+       PathMax        = 0x1000
+)
+
+type (
+       _C_short     int16
+       _C_int       int32
+       _C_long      int64
+       _C_long_long int64
+)
+
+type Timespec struct {
+       Sec  int64
+       Nsec int64
+}
+
+type Timeval struct {
+       Sec  int64
+       Usec int64
+}
+
+type Timex struct {
+       Modes     uint32
+       Pad_cgo_0 [4]byte
+       Offset    int64
+       Freq      int64
+       Maxerror  int64
+       Esterror  int64
+       Status    int32
+       Pad_cgo_1 [4]byte
+       Constant  int64
+       Precision int64
+       Tolerance int64
+       Time      Timeval
+       Tick      int64
+       Ppsfreq   int64
+       Jitter    int64
+       Shift     int32
+       Pad_cgo_2 [4]byte
+       Stabil    int64
+       Jitcnt    int64
+       Calcnt    int64
+       Errcnt    int64
+       Stbcnt    int64
+       Tai       int32
+       Pad_cgo_3 [44]byte
+}
+
+type Time_t int64
+
+type Tms struct {
+       Utime  int64
+       Stime  int64
+       Cutime int64
+       Cstime int64
+}
+
+type Utimbuf struct {
+       Actime  int64
+       Modtime int64
+}
+
+type Rusage struct {
+       Utime    Timeval
+       Stime    Timeval
+       Maxrss   int64
+       Ixrss    int64
+       Idrss    int64
+       Isrss    int64
+       Minflt   int64
+       Majflt   int64
+       Nswap    int64
+       Inblock  int64
+       Oublock  int64
+       Msgsnd   int64
+       Msgrcv   int64
+       Nsignals int64
+       Nvcsw    int64
+       Nivcsw   int64
+}
+
+type Rlimit struct {
+       Cur uint64
+       Max uint64
+}
+
+type _Gid_t uint32
+
+type Stat_t struct {
+       Dev     uint64
+       Ino     uint64
+       Nlink   uint64
+       Mode    uint32
+       Uid     uint32
+       Gid     uint32
+       X__pad2 int32
+       Rdev    uint64
+       Size    int64
+       Blksize int64
+       Blocks  int64
+       Atim    Timespec
+       Mtim    Timespec
+       Ctim    Timespec
+       _       uint64
+       _       uint64
+       _       uint64
+}
+
+type Statfs_t struct {
+       Type    int64
+       Bsize   int64
+       Blocks  uint64
+       Bfree   uint64
+       Bavail  uint64
+       Files   uint64
+       Ffree   uint64
+       Fsid    Fsid
+       Namelen int64
+       Frsize  int64
+       Flags   int64
+       Spare   [4]int64
+}
+
+type Dirent struct {
+       Ino       uint64
+       Off       int64
+       Reclen    uint16
+       Type      uint8
+       Name      [256]uint8
+       Pad_cgo_0 [5]byte
+}
+
+type Fsid struct {
+       X__val [2]int32
+}
+
+type Flock_t struct {
+       Type      int16
+       Whence    int16
+       Pad_cgo_0 [4]byte
+       Start     int64
+       Len       int64
+       Pid       int32
+       Pad_cgo_1 [4]byte
+}
+
+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
+)
+
+type RawSockaddrInet4 struct {
+       Family uint16
+       Port   uint16
+       Addr   [4]byte /* in_addr */
+       Zero   [8]uint8
+}
+
+type RawSockaddrInet6 struct {
+       Family   uint16
+       Port     uint16
+       Flowinfo uint32
+       Addr     [16]byte /* in6_addr */
+       Scope_id uint32
+}
+
+type RawSockaddrUnix struct {
+       Family uint16
+       Path   [108]int8
+}
+
+type RawSockaddrLinklayer struct {
+       Family   uint16
+       Protocol uint16
+       Ifindex  int32
+       Hatype   uint16
+       Pkttype  uint8
+       Halen    uint8
+       Addr     [8]uint8
+}
+
+type RawSockaddrNetlink struct {
+       Family uint16
+       Pad    uint16
+       Pid    uint32
+       Groups uint32
+}
+
+type RawSockaddrHCI struct {
+       Family  uint16
+       Dev     uint16
+       Channel uint16
+}
+
+type RawSockaddrCAN struct {
+       Family    uint16
+       Pad_cgo_0 [2]byte
+       Ifindex   int32
+       Addr      [8]byte
+}
+
+type RawSockaddrALG struct {
+       Family uint16
+       Type   [14]uint8
+       Feat   uint32
+       Mask   uint32
+       Name   [64]uint8
+}
+
+type RawSockaddrVM struct {
+       Family    uint16
+       Reserved1 uint16
+       Port      uint32
+       Cid       uint32
+       Zero      [4]uint8
+}
+
+type RawSockaddr struct {
+       Family uint16
+       Data   [14]uint8
+}
+
+type RawSockaddrAny struct {
+       Addr RawSockaddr
+       Pad  [96]uint8
+}
+
+type _Socklen uint32
+
+type Linger struct {
+       Onoff  int32
+       Linger int32
+}
+
+type Iovec struct {
+       Base *byte
+       Len  uint64
+}
+
+type IPMreq struct {
+       Multiaddr [4]byte /* in_addr */
+       Interface [4]byte /* in_addr */
+}
+
+type IPMreqn struct {
+       Multiaddr [4]byte /* in_addr */
+       Address   [4]byte /* in_addr */
+       Ifindex   int32
+}
+
+type IPv6Mreq struct {
+       Multiaddr [16]byte /* in6_addr */
+       Interface uint32
+}
+
+type 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
+}
+
+type Cmsghdr struct {
+       Len   uint64
+       Level int32
+       Type  int32
+}
+
+type Inet4Pktinfo struct {
+       Ifindex  int32
+       Spec_dst [4]byte /* in_addr */
+       Addr     [4]byte /* in_addr */
+}
+
+type Inet6Pktinfo struct {
+       Addr    [16]byte /* in6_addr */
+       Ifindex uint32
+}
+
+type IPv6MTUInfo struct {
+       Addr RawSockaddrInet6
+       Mtu  uint32
+}
+
+type ICMPv6Filter struct {
+       Data [8]uint32
+}
+
+type Ucred struct {
+       Pid int32
+       Uid uint32
+       Gid uint32
+}
+
+type TCPInfo struct {
+       State          uint8
+       Ca_state       uint8
+       Retransmits    uint8
+       Probes         uint8
+       Backoff        uint8
+       Options        uint8
+       Pad_cgo_0      [2]byte
+       Rto            uint32
+       Ato            uint32
+       Snd_mss        uint32
+       Rcv_mss        uint32
+       Unacked        uint32
+       Sacked         uint32
+       Lost           uint32
+       Retrans        uint32
+       Fackets        uint32
+       Last_data_sent uint32
+       Last_ack_sent  uint32
+       Last_data_recv uint32
+       Last_ack_recv  uint32
+       Pmtu           uint32
+       Rcv_ssthresh   uint32
+       Rtt            uint32
+       Rttvar         uint32
+       Snd_ssthresh   uint32
+       Snd_cwnd       uint32
+       Advmss         uint32
+       Reordering     uint32
+       Rcv_rtt        uint32
+       Rcv_space      uint32
+       Total_retrans  uint32
+}
+
+const (
+       SizeofSockaddrInet4     = 0x10
+       SizeofSockaddrInet6     = 0x1c
+       SizeofSockaddrAny       = 0x70
+       SizeofSockaddrUnix      = 0x6e
+       SizeofSockaddrLinklayer = 0x14
+       SizeofSockaddrNetlink   = 0xc
+       SizeofSockaddrHCI       = 0x6
+       SizeofSockaddrCAN       = 0x10
+       SizeofSockaddrALG       = 0x58
+       SizeofSockaddrVM        = 0x10
+       SizeofLinger            = 0x8
+       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
+)
+
+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
+       Msr       uint64
+       Orig_gpr3 uint64
+       Ctr       uint64
+       Link      uint64
+       Xer       uint64
+       Ccr       uint64
+       Softe     uint64
+       Trap      uint64
+       Dar       uint64
+       Dsisr     uint64
+       Result    uint64
+}
+
+type FdSet struct {
+       Bits [16]int64
+}
+
+type Sysinfo_t struct {
+       Uptime    int64
+       Loads     [3]uint64
+       Totalram  uint64
+       Freeram   uint64
+       Sharedram uint64
+       Bufferram uint64
+       Totalswap uint64
+       Freeswap  uint64
+       Procs     uint16
+       Pad       uint16
+       Pad_cgo_0 [4]byte
+       Totalhigh uint64
+       Freehigh  uint64
+       Unit      uint32
+       X_f       [0]uint8
+       Pad_cgo_1 [4]byte
+}
+
+type Utsname struct {
+       Sysname    [65]uint8
+       Nodename   [65]uint8
+       Release    [65]uint8
+       Version    [65]uint8
+       Machine    [65]uint8
+       Domainname [65]uint8
+}
+
+type Ustat_t struct {
+       Tfree     int32
+       Pad_cgo_0 [4]byte
+       Tinode    uint64
+       Fname     [6]uint8
+       Fpack     [6]uint8
+       Pad_cgo_1 [4]byte
+}
+
+type EpollEvent struct {
+       Events  uint32
+       X_padFd int32
+       Fd      int32
+       Pad     int32
+}
+
+const (
+       AT_FDCWD            = -0x64
+       AT_REMOVEDIR        = 0x200
+       AT_SYMLINK_FOLLOW   = 0x400
+       AT_SYMLINK_NOFOLLOW = 0x100
+)
+
+type PollFd struct {
+       Fd      int32
+       Events  int16
+       Revents int16
+}
+
+const (
+       POLLIN    = 0x1
+       POLLPRI   = 0x2
+       POLLOUT   = 0x4
+       POLLRDHUP = 0x2000
+       POLLERR   = 0x8
+       POLLHUP   = 0x10
+       POLLNVAL  = 0x20
+)
+
+type Sigset_t struct {
+       X__val [16]uint64
+}
+
+const RNDGETENTCNT = 0x40045200
+
+const PERF_IOC_FLAG_GROUP = 0x1
+
+const _SC_PAGESIZE = 0x1e
+
+type Termios struct {
+       Iflag  uint32
+       Oflag  uint32
+       Cflag  uint32
+       Lflag  uint32
+       Cc     [19]uint8
+       Line   uint8
+       Ispeed uint32
+       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
+       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
+       Pad_cgo_2                 [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
+       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
+}
+
+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 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
+)
diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_s390x.go b/vendor/golang.org/x/sys/unix/ztypes_linux_s390x.go
new file mode 100644 (file)
index 0000000..5e0aa66
--- /dev/null
@@ -0,0 +1,819 @@
+// cgo -godefs -- -Wall -Werror -static -I/tmp/include -fsigned-char linux/types.go | go run mkpost.go
+// Code generated by the command above; see README.md. DO NOT EDIT.
+
+// +build s390x,linux
+
+package unix
+
+const (
+       sizeofPtr      = 0x8
+       sizeofShort    = 0x2
+       sizeofInt      = 0x4
+       sizeofLong     = 0x8
+       sizeofLongLong = 0x8
+       PathMax        = 0x1000
+)
+
+type (
+       _C_short     int16
+       _C_int       int32
+       _C_long      int64
+       _C_long_long int64
+)
+
+type Timespec struct {
+       Sec  int64
+       Nsec int64
+}
+
+type Timeval struct {
+       Sec  int64
+       Usec int64
+}
+
+type Timex struct {
+       Modes     uint32
+       _         [4]byte
+       Offset    int64
+       Freq      int64
+       Maxerror  int64
+       Esterror  int64
+       Status    int32
+       _         [4]byte
+       Constant  int64
+       Precision int64
+       Tolerance int64
+       Time      Timeval
+       Tick      int64
+       Ppsfreq   int64
+       Jitter    int64
+       Shift     int32
+       _         [4]byte
+       Stabil    int64
+       Jitcnt    int64
+       Calcnt    int64
+       Errcnt    int64
+       Stbcnt    int64
+       Tai       int32
+       _         [44]byte
+}
+
+type Time_t int64
+
+type Tms struct {
+       Utime  int64
+       Stime  int64
+       Cutime int64
+       Cstime int64
+}
+
+type Utimbuf struct {
+       Actime  int64
+       Modtime int64
+}
+
+type Rusage struct {
+       Utime    Timeval
+       Stime    Timeval
+       Maxrss   int64
+       Ixrss    int64
+       Idrss    int64
+       Isrss    int64
+       Minflt   int64
+       Majflt   int64
+       Nswap    int64
+       Inblock  int64
+       Oublock  int64
+       Msgsnd   int64
+       Msgrcv   int64
+       Nsignals int64
+       Nvcsw    int64
+       Nivcsw   int64
+}
+
+type Rlimit struct {
+       Cur uint64
+       Max uint64
+}
+
+type _Gid_t uint32
+
+type Stat_t struct {
+       Dev     uint64
+       Ino     uint64
+       Nlink   uint64
+       Mode    uint32
+       Uid     uint32
+       Gid     uint32
+       _       int32
+       Rdev    uint64
+       Size    int64
+       Atim    Timespec
+       Mtim    Timespec
+       Ctim    Timespec
+       Blksize int64
+       Blocks  int64
+       _       [3]int64
+}
+
+type Statfs_t struct {
+       Type    uint32
+       Bsize   uint32
+       Blocks  uint64
+       Bfree   uint64
+       Bavail  uint64
+       Files   uint64
+       Ffree   uint64
+       Fsid    Fsid
+       Namelen uint32
+       Frsize  uint32
+       Flags   uint32
+       Spare   [4]uint32
+       _       [4]byte
+}
+
+type Dirent struct {
+       Ino    uint64
+       Off    int64
+       Reclen uint16
+       Type   uint8
+       Name   [256]int8
+       _      [5]byte
+}
+
+type Fsid struct {
+       _ [2]int32
+}
+
+type Flock_t struct {
+       Type   int16
+       Whence int16
+       _      [4]byte
+       Start  int64
+       Len    int64
+       Pid    int32
+       _      [4]byte
+}
+
+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
+)
+
+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
+}
+
+type RawSockaddrAny struct {
+       Addr RawSockaddr
+       Pad  [96]int8
+}
+
+type _Socklen uint32
+
+type Linger struct {
+       Onoff  int32
+       Linger int32
+}
+
+type Iovec struct {
+       Base *byte
+       Len  uint64
+}
+
+type IPMreq struct {
+       Multiaddr [4]byte /* in_addr */
+       Interface [4]byte /* in_addr */
+}
+
+type IPMreqn struct {
+       Multiaddr [4]byte /* in_addr */
+       Address   [4]byte /* in_addr */
+       Ifindex   int32
+}
+
+type IPv6Mreq struct {
+       Multiaddr [16]byte /* in6_addr */
+       Interface uint32
+}
+
+type 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
+       Controllen uint64
+       Flags      int32
+       _          [4]byte
+}
+
+type Cmsghdr struct {
+       Len   uint64
+       Level int32
+       Type  int32
+}
+
+type Inet4Pktinfo struct {
+       Ifindex  int32
+       Spec_dst [4]byte /* in_addr */
+       Addr     [4]byte /* in_addr */
+}
+
+type Inet6Pktinfo struct {
+       Addr    [16]byte /* in6_addr */
+       Ifindex uint32
+}
+
+type IPv6MTUInfo struct {
+       Addr RawSockaddrInet6
+       Mtu  uint32
+}
+
+type ICMPv6Filter struct {
+       Data [8]uint32
+}
+
+type Ucred struct {
+       Pid int32
+       Uid uint32
+       Gid uint32
+}
+
+type TCPInfo struct {
+       State          uint8
+       Ca_state       uint8
+       Retransmits    uint8
+       Probes         uint8
+       Backoff        uint8
+       Options        uint8
+       _              [2]byte
+       Rto            uint32
+       Ato            uint32
+       Snd_mss        uint32
+       Rcv_mss        uint32
+       Unacked        uint32
+       Sacked         uint32
+       Lost           uint32
+       Retrans        uint32
+       Fackets        uint32
+       Last_data_sent uint32
+       Last_ack_sent  uint32
+       Last_data_recv uint32
+       Last_ack_recv  uint32
+       Pmtu           uint32
+       Rcv_ssthresh   uint32
+       Rtt            uint32
+       Rttvar         uint32
+       Snd_ssthresh   uint32
+       Snd_cwnd       uint32
+       Advmss         uint32
+       Reordering     uint32
+       Rcv_rtt        uint32
+       Rcv_space      uint32
+       Total_retrans  uint32
+}
+
+const (
+       SizeofSockaddrInet4     = 0x10
+       SizeofSockaddrInet6     = 0x1c
+       SizeofSockaddrAny       = 0x70
+       SizeofSockaddrUnix      = 0x6e
+       SizeofSockaddrLinklayer = 0x14
+       SizeofSockaddrNetlink   = 0xc
+       SizeofSockaddrHCI       = 0x6
+       SizeofSockaddrCAN       = 0x10
+       SizeofSockaddrALG       = 0x58
+       SizeofSockaddrVM        = 0x10
+       SizeofLinger            = 0x8
+       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
+)
+
+type NlMsghdr struct {
+       Len   uint32
+       Type  uint16
+       Flags uint16
+       Seq   uint32
+       Pid   uint32
+}
+
+type NlMsgerr struct {
+       Error int32
+       Msg   NlMsghdr
+}
+
+type RtGenmsg struct {
+       Family uint8
+}
+
+type NlAttr struct {
+       Len  uint16
+       Type uint16
+}
+
+type RtAttr struct {
+       Len  uint16
+       Type uint16
+}
+
+type IfInfomsg struct {
+       Family uint8
+       _      uint8
+       Type   uint16
+       Index  int32
+       Flags  uint32
+       Change uint32
+}
+
+type IfAddrmsg struct {
+       Family    uint8
+       Prefixlen uint8
+       Flags     uint8
+       Scope     uint8
+       Index     uint32
+}
+
+type RtMsg struct {
+       Family   uint8
+       Dst_len  uint8
+       Src_len  uint8
+       Tos      uint8
+       Table    uint8
+       Protocol uint8
+       Scope    uint8
+       Type     uint8
+       Flags    uint32
+}
+
+type RtNexthop struct {
+       Len     uint16
+       Flags   uint8
+       Hops    uint8
+       Ifindex int32
+}
+
+const (
+       SizeofSockFilter = 0x8
+       SizeofSockFprog  = 0x10
+)
+
+type SockFilter struct {
+       Code uint16
+       Jt   uint8
+       Jf   uint8
+       K    uint32
+}
+
+type SockFprog struct {
+       Len    uint16
+       _      [6]byte
+       Filter *SockFilter
+}
+
+type InotifyEvent struct {
+       Wd     int32
+       Mask   uint32
+       Cookie uint32
+       Len    uint32
+}
+
+const SizeofInotifyEvent = 0x10
+
+type PtraceRegs struct {
+       Psw                      PtracePsw
+       Gprs                     [16]uint64
+       Acrs                     [16]uint32
+       Orig_gpr2                uint64
+       Fp_regs                  PtraceFpregs
+       Per_info                 PtracePer
+       Ieee_instruction_pointer uint64
+}
+
+type PtracePsw struct {
+       Mask uint64
+       Addr uint64
+}
+
+type PtraceFpregs struct {
+       Fpc  uint32
+       _    [4]byte
+       Fprs [16]float64
+}
+
+type PtracePer struct {
+       _             [0]uint64
+       _             [24]byte
+       _             [8]byte
+       Starting_addr uint64
+       Ending_addr   uint64
+       Perc_atmid    uint16
+       _             [6]byte
+       Address       uint64
+       Access_id     uint8
+       _             [7]byte
+}
+
+type FdSet struct {
+       Bits [16]int64
+}
+
+type Sysinfo_t struct {
+       Uptime    int64
+       Loads     [3]uint64
+       Totalram  uint64
+       Freeram   uint64
+       Sharedram uint64
+       Bufferram uint64
+       Totalswap uint64
+       Freeswap  uint64
+       Procs     uint16
+       Pad       uint16
+       _         [4]byte
+       Totalhigh uint64
+       Freehigh  uint64
+       Unit      uint32
+       _         [0]int8
+       _         [4]byte
+}
+
+type Utsname struct {
+       Sysname    [65]int8
+       Nodename   [65]int8
+       Release    [65]int8
+       Version    [65]int8
+       Machine    [65]int8
+       Domainname [65]int8
+}
+
+type Ustat_t struct {
+       Tfree  int32
+       _      [4]byte
+       Tinode uint64
+       Fname  [6]int8
+       Fpack  [6]int8
+       _      [4]byte
+}
+
+type EpollEvent struct {
+       Events uint32
+       _      int32
+       Fd     int32
+       Pad    int32
+}
+
+const (
+       AT_FDCWD            = -0x64
+       AT_REMOVEDIR        = 0x200
+       AT_SYMLINK_FOLLOW   = 0x400
+       AT_SYMLINK_NOFOLLOW = 0x100
+)
+
+type PollFd struct {
+       Fd      int32
+       Events  int16
+       Revents int16
+}
+
+const (
+       POLLIN    = 0x1
+       POLLPRI   = 0x2
+       POLLOUT   = 0x4
+       POLLRDHUP = 0x2000
+       POLLERR   = 0x8
+       POLLHUP   = 0x10
+       POLLNVAL  = 0x20
+)
+
+type Sigset_t struct {
+       _ [16]uint64
+}
+
+const RNDGETENTCNT = 0x80045200
+
+const PERF_IOC_FLAG_GROUP = 0x1
+
+const _SC_PAGESIZE = 0x1e
+
+type Termios struct {
+       Iflag  uint32
+       Oflag  uint32
+       Cflag  uint32
+       Lflag  uint32
+       Line   uint8
+       Cc     [19]uint8
+       Ispeed uint32
+       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
+       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
+       _                         [4]byte
+       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
+}
+
+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 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
+)
diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go
new file mode 100644 (file)
index 0000000..22bdab9
--- /dev/null
@@ -0,0 +1,666 @@
+// +build sparc64,linux
+// Created by cgo -godefs - DO NOT EDIT
+// cgo -godefs types_linux.go | go run mkpost.go
+
+package unix
+
+const (
+       sizeofPtr      = 0x8
+       sizeofShort    = 0x2
+       sizeofInt      = 0x4
+       sizeofLong     = 0x8
+       sizeofLongLong = 0x8
+       PathMax        = 0x1000
+)
+
+type (
+       _C_short     int16
+       _C_int       int32
+       _C_long      int64
+       _C_long_long int64
+)
+
+type Timespec struct {
+       Sec  int64
+       Nsec int64
+}
+
+type Timeval struct {
+       Sec       int64
+       Usec      int32
+       Pad_cgo_0 [4]byte
+}
+
+type Timex struct {
+       Modes     uint32
+       Pad_cgo_0 [4]byte
+       Offset    int64
+       Freq      int64
+       Maxerror  int64
+       Esterror  int64
+       Status    int32
+       Pad_cgo_1 [4]byte
+       Constant  int64
+       Precision int64
+       Tolerance int64
+       Time      Timeval
+       Tick      int64
+       Ppsfreq   int64
+       Jitter    int64
+       Shift     int32
+       Pad_cgo_2 [4]byte
+       Stabil    int64
+       Jitcnt    int64
+       Calcnt    int64
+       Errcnt    int64
+       Stbcnt    int64
+       Tai       int32
+       Pad_cgo_3 [44]byte
+}
+
+type Time_t int64
+
+type Tms struct {
+       Utime  int64
+       Stime  int64
+       Cutime int64
+       Cstime int64
+}
+
+type Utimbuf struct {
+       Actime  int64
+       Modtime int64
+}
+
+type Rusage struct {
+       Utime    Timeval
+       Stime    Timeval
+       Maxrss   int64
+       Ixrss    int64
+       Idrss    int64
+       Isrss    int64
+       Minflt   int64
+       Majflt   int64
+       Nswap    int64
+       Inblock  int64
+       Oublock  int64
+       Msgsnd   int64
+       Msgrcv   int64
+       Nsignals int64
+       Nvcsw    int64
+       Nivcsw   int64
+}
+
+type Rlimit struct {
+       Cur uint64
+       Max uint64
+}
+
+type _Gid_t uint32
+
+type Stat_t struct {
+       Dev                uint64
+       X__pad1            uint16
+       Pad_cgo_0          [6]byte
+       Ino                uint64
+       Mode               uint32
+       Nlink              uint32
+       Uid                uint32
+       Gid                uint32
+       Rdev               uint64
+       X__pad2            uint16
+       Pad_cgo_1          [6]byte
+       Size               int64
+       Blksize            int64
+       Blocks             int64
+       Atim               Timespec
+       Mtim               Timespec
+       Ctim               Timespec
+       X__glibc_reserved4 uint64
+       X__glibc_reserved5 uint64
+}
+
+type Statfs_t struct {
+       Type    int64
+       Bsize   int64
+       Blocks  uint64
+       Bfree   uint64
+       Bavail  uint64
+       Files   uint64
+       Ffree   uint64
+       Fsid    Fsid
+       Namelen int64
+       Frsize  int64
+       Flags   int64
+       Spare   [4]int64
+}
+
+type Dirent struct {
+       Ino       uint64
+       Off       int64
+       Reclen    uint16
+       Type      uint8
+       Name      [256]int8
+       Pad_cgo_0 [5]byte
+}
+
+type Fsid struct {
+       X__val [2]int32
+}
+
+type Flock_t struct {
+       Type              int16
+       Whence            int16
+       Pad_cgo_0         [4]byte
+       Start             int64
+       Len               int64
+       Pid               int32
+       X__glibc_reserved int16
+       Pad_cgo_1         [2]byte
+}
+
+const (
+       FADV_NORMAL     = 0x0
+       FADV_RANDOM     = 0x1
+       FADV_SEQUENTIAL = 0x2
+       FADV_WILLNEED   = 0x3
+       FADV_DONTNEED   = 0x4
+       FADV_NOREUSE    = 0x5
+)
+
+type RawSockaddrInet4 struct {
+       Family uint16
+       Port   uint16
+       Addr   [4]byte /* in_addr */
+       Zero   [8]uint8
+}
+
+type RawSockaddrInet6 struct {
+       Family   uint16
+       Port     uint16
+       Flowinfo uint32
+       Addr     [16]byte /* in6_addr */
+       Scope_id uint32
+}
+
+type RawSockaddrUnix struct {
+       Family uint16
+       Path   [108]int8
+}
+
+type RawSockaddrLinklayer struct {
+       Family   uint16
+       Protocol uint16
+       Ifindex  int32
+       Hatype   uint16
+       Pkttype  uint8
+       Halen    uint8
+       Addr     [8]uint8
+}
+
+type RawSockaddrNetlink struct {
+       Family uint16
+       Pad    uint16
+       Pid    uint32
+       Groups uint32
+}
+
+type RawSockaddrHCI struct {
+       Family  uint16
+       Dev     uint16
+       Channel uint16
+}
+
+type RawSockaddrCAN struct {
+       Family    uint16
+       Pad_cgo_0 [2]byte
+       Ifindex   int32
+       Addr      [8]byte
+}
+
+type RawSockaddrALG struct {
+       Family uint16
+       Type   [14]uint8
+       Feat   uint32
+       Mask   uint32
+       Name   [64]uint8
+}
+
+type RawSockaddrVM struct {
+       Family    uint16
+       Reserved1 uint16
+       Port      uint32
+       Cid       uint32
+       Zero      [4]uint8
+}
+
+type RawSockaddr struct {
+       Family uint16
+       Data   [14]int8
+}
+
+type RawSockaddrAny struct {
+       Addr RawSockaddr
+       Pad  [96]int8
+}
+
+type _Socklen uint32
+
+type Linger struct {
+       Onoff  int32
+       Linger int32
+}
+
+type Iovec struct {
+       Base *byte
+       Len  uint64
+}
+
+type IPMreq struct {
+       Multiaddr [4]byte /* in_addr */
+       Interface [4]byte /* in_addr */
+}
+
+type IPMreqn struct {
+       Multiaddr [4]byte /* in_addr */
+       Address   [4]byte /* in_addr */
+       Ifindex   int32
+}
+
+type IPv6Mreq struct {
+       Multiaddr [16]byte /* in6_addr */
+       Interface uint32
+}
+
+type Msghdr struct {
+       Name       *byte
+       Namelen    uint32
+       Pad_cgo_0  [4]byte
+       Iov        *Iovec
+       Iovlen     uint64
+       Control    *byte
+       Controllen uint64
+       Flags      int32
+       Pad_cgo_1  [4]byte
+}
+
+type Cmsghdr struct {
+       Len   uint64
+       Level int32
+       Type  int32
+}
+
+type Inet4Pktinfo struct {
+       Ifindex  int32
+       Spec_dst [4]byte /* in_addr */
+       Addr     [4]byte /* in_addr */
+}
+
+type Inet6Pktinfo struct {
+       Addr    [16]byte /* in6_addr */
+       Ifindex uint32
+}
+
+type IPv6MTUInfo struct {
+       Addr RawSockaddrInet6
+       Mtu  uint32
+}
+
+type ICMPv6Filter struct {
+       Data [8]uint32
+}
+
+type Ucred struct {
+       Pid int32
+       Uid uint32
+       Gid uint32
+}
+
+type TCPInfo struct {
+       State          uint8
+       Ca_state       uint8
+       Retransmits    uint8
+       Probes         uint8
+       Backoff        uint8
+       Options        uint8
+       Pad_cgo_0      [2]byte
+       Rto            uint32
+       Ato            uint32
+       Snd_mss        uint32
+       Rcv_mss        uint32
+       Unacked        uint32
+       Sacked         uint32
+       Lost           uint32
+       Retrans        uint32
+       Fackets        uint32
+       Last_data_sent uint32
+       Last_ack_sent  uint32
+       Last_data_recv uint32
+       Last_ack_recv  uint32
+       Pmtu           uint32
+       Rcv_ssthresh   uint32
+       Rtt            uint32
+       Rttvar         uint32
+       Snd_ssthresh   uint32
+       Snd_cwnd       uint32
+       Advmss         uint32
+       Reordering     uint32
+       Rcv_rtt        uint32
+       Rcv_space      uint32
+       Total_retrans  uint32
+}
+
+const (
+       SizeofSockaddrInet4     = 0x10
+       SizeofSockaddrInet6     = 0x1c
+       SizeofSockaddrAny       = 0x70
+       SizeofSockaddrUnix      = 0x6e
+       SizeofSockaddrLinklayer = 0x14
+       SizeofSockaddrNetlink   = 0xc
+       SizeofSockaddrHCI       = 0x6
+       SizeofSockaddrCAN       = 0x10
+       SizeofSockaddrALG       = 0x58
+       SizeofSockaddrVM        = 0x10
+       SizeofLinger            = 0x8
+       SizeofIPMreq            = 0x8
+       SizeofIPMreqn           = 0xc
+       SizeofIPv6Mreq          = 0x14
+       SizeofMsghdr            = 0x38
+       SizeofCmsghdr           = 0x10
+       SizeofInet4Pktinfo      = 0xc
+       SizeofInet6Pktinfo      = 0x14
+       SizeofIPv6MTUInfo       = 0x20
+       SizeofICMPv6Filter      = 0x20
+       SizeofUcred             = 0xc
+       SizeofTCPInfo           = 0x68
+)
+
+const (
+       IFA_UNSPEC          = 0x0
+       IFA_ADDRESS         = 0x1
+       IFA_LOCAL           = 0x2
+       IFA_LABEL           = 0x3
+       IFA_BROADCAST       = 0x4
+       IFA_ANYCAST         = 0x5
+       IFA_CACHEINFO       = 0x6
+       IFA_MULTICAST       = 0x7
+       IFLA_UNSPEC         = 0x0
+       IFLA_ADDRESS        = 0x1
+       IFLA_BROADCAST      = 0x2
+       IFLA_IFNAME         = 0x3
+       IFLA_MTU            = 0x4
+       IFLA_LINK           = 0x5
+       IFLA_QDISC          = 0x6
+       IFLA_STATS          = 0x7
+       IFLA_COST           = 0x8
+       IFLA_PRIORITY       = 0x9
+       IFLA_MASTER         = 0xa
+       IFLA_WIRELESS       = 0xb
+       IFLA_PROTINFO       = 0xc
+       IFLA_TXQLEN         = 0xd
+       IFLA_MAP            = 0xe
+       IFLA_WEIGHT         = 0xf
+       IFLA_OPERSTATE      = 0x10
+       IFLA_LINKMODE       = 0x11
+       IFLA_LINKINFO       = 0x12
+       IFLA_NET_NS_PID     = 0x13
+       IFLA_IFALIAS        = 0x14
+       IFLA_MAX            = 0x2a
+       RT_SCOPE_UNIVERSE   = 0x0
+       RT_SCOPE_SITE       = 0xc8
+       RT_SCOPE_LINK       = 0xfd
+       RT_SCOPE_HOST       = 0xfe
+       RT_SCOPE_NOWHERE    = 0xff
+       RT_TABLE_UNSPEC     = 0x0
+       RT_TABLE_COMPAT     = 0xfc
+       RT_TABLE_DEFAULT    = 0xfd
+       RT_TABLE_MAIN       = 0xfe
+       RT_TABLE_LOCAL      = 0xff
+       RT_TABLE_MAX        = 0xffffffff
+       RTA_UNSPEC          = 0x0
+       RTA_DST             = 0x1
+       RTA_SRC             = 0x2
+       RTA_IIF             = 0x3
+       RTA_OIF             = 0x4
+       RTA_GATEWAY         = 0x5
+       RTA_PRIORITY        = 0x6
+       RTA_PREFSRC         = 0x7
+       RTA_METRICS         = 0x8
+       RTA_MULTIPATH       = 0x9
+       RTA_FLOW            = 0xb
+       RTA_CACHEINFO       = 0xc
+       RTA_TABLE           = 0xf
+       RTN_UNSPEC          = 0x0
+       RTN_UNICAST         = 0x1
+       RTN_LOCAL           = 0x2
+       RTN_BROADCAST       = 0x3
+       RTN_ANYCAST         = 0x4
+       RTN_MULTICAST       = 0x5
+       RTN_BLACKHOLE       = 0x6
+       RTN_UNREACHABLE     = 0x7
+       RTN_PROHIBIT        = 0x8
+       RTN_THROW           = 0x9
+       RTN_NAT             = 0xa
+       RTN_XRESOLVE        = 0xb
+       RTNLGRP_NONE        = 0x0
+       RTNLGRP_LINK        = 0x1
+       RTNLGRP_NOTIFY      = 0x2
+       RTNLGRP_NEIGH       = 0x3
+       RTNLGRP_TC          = 0x4
+       RTNLGRP_IPV4_IFADDR = 0x5
+       RTNLGRP_IPV4_MROUTE = 0x6
+       RTNLGRP_IPV4_ROUTE  = 0x7
+       RTNLGRP_IPV4_RULE   = 0x8
+       RTNLGRP_IPV6_IFADDR = 0x9
+       RTNLGRP_IPV6_MROUTE = 0xa
+       RTNLGRP_IPV6_ROUTE  = 0xb
+       RTNLGRP_IPV6_IFINFO = 0xc
+       RTNLGRP_IPV6_PREFIX = 0x12
+       RTNLGRP_IPV6_RULE   = 0x13
+       RTNLGRP_ND_USEROPT  = 0x14
+       SizeofNlMsghdr      = 0x10
+       SizeofNlMsgerr      = 0x14
+       SizeofRtGenmsg      = 0x1
+       SizeofNlAttr        = 0x4
+       SizeofRtAttr        = 0x4
+       SizeofIfInfomsg     = 0x10
+       SizeofIfAddrmsg     = 0x8
+       SizeofRtMsg         = 0xc
+       SizeofRtNexthop     = 0x8
+)
+
+type NlMsghdr struct {
+       Len   uint32
+       Type  uint16
+       Flags uint16
+       Seq   uint32
+       Pid   uint32
+}
+
+type NlMsgerr struct {
+       Error int32
+       Msg   NlMsghdr
+}
+
+type RtGenmsg struct {
+       Family uint8
+}
+
+type NlAttr struct {
+       Len  uint16
+       Type uint16
+}
+
+type RtAttr struct {
+       Len  uint16
+       Type uint16
+}
+
+type IfInfomsg struct {
+       Family     uint8
+       X__ifi_pad uint8
+       Type       uint16
+       Index      int32
+       Flags      uint32
+       Change     uint32
+}
+
+type IfAddrmsg struct {
+       Family    uint8
+       Prefixlen uint8
+       Flags     uint8
+       Scope     uint8
+       Index     uint32
+}
+
+type RtMsg struct {
+       Family   uint8
+       Dst_len  uint8
+       Src_len  uint8
+       Tos      uint8
+       Table    uint8
+       Protocol uint8
+       Scope    uint8
+       Type     uint8
+       Flags    uint32
+}
+
+type RtNexthop struct {
+       Len     uint16
+       Flags   uint8
+       Hops    uint8
+       Ifindex int32
+}
+
+const (
+       SizeofSockFilter = 0x8
+       SizeofSockFprog  = 0x10
+)
+
+type SockFilter struct {
+       Code uint16
+       Jt   uint8
+       Jf   uint8
+       K    uint32
+}
+
+type SockFprog struct {
+       Len       uint16
+       Pad_cgo_0 [6]byte
+       Filter    *SockFilter
+}
+
+type InotifyEvent struct {
+       Wd     int32
+       Mask   uint32
+       Cookie uint32
+       Len    uint32
+}
+
+const SizeofInotifyEvent = 0x10
+
+type PtraceRegs struct {
+       Regs   [16]uint64
+       Tstate uint64
+       Tpc    uint64
+       Tnpc   uint64
+       Y      uint32
+       Magic  uint32
+}
+
+type ptracePsw struct {
+}
+
+type ptraceFpregs struct {
+}
+
+type ptracePer struct {
+}
+
+type FdSet struct {
+       Bits [16]int64
+}
+
+type Sysinfo_t struct {
+       Uptime    int64
+       Loads     [3]uint64
+       Totalram  uint64
+       Freeram   uint64
+       Sharedram uint64
+       Bufferram uint64
+       Totalswap uint64
+       Freeswap  uint64
+       Procs     uint16
+       Pad       uint16
+       Pad_cgo_0 [4]byte
+       Totalhigh uint64
+       Freehigh  uint64
+       Unit      uint32
+       X_f       [0]int8
+       Pad_cgo_1 [4]byte
+}
+
+type Utsname struct {
+       Sysname    [65]int8
+       Nodename   [65]int8
+       Release    [65]int8
+       Version    [65]int8
+       Machine    [65]int8
+       Domainname [65]int8
+}
+
+type Ustat_t struct {
+       Tfree     int32
+       Pad_cgo_0 [4]byte
+       Tinode    uint64
+       Fname     [6]int8
+       Fpack     [6]int8
+       Pad_cgo_1 [4]byte
+}
+
+type EpollEvent struct {
+       Events  uint32
+       X_padFd int32
+       Fd      int32
+       Pad     int32
+}
+
+const (
+       AT_FDCWD            = -0x64
+       AT_REMOVEDIR        = 0x200
+       AT_SYMLINK_FOLLOW   = 0x400
+       AT_SYMLINK_NOFOLLOW = 0x100
+)
+
+type PollFd struct {
+       Fd      int32
+       Events  int16
+       Revents int16
+}
+
+const (
+       POLLIN    = 0x1
+       POLLPRI   = 0x2
+       POLLOUT   = 0x4
+       POLLRDHUP = 0x800
+       POLLERR   = 0x8
+       POLLHUP   = 0x10
+       POLLNVAL  = 0x20
+)
+
+type Sigset_t struct {
+       X__val [16]uint64
+}
+
+const _SC_PAGESIZE = 0x1e
+
+type Termios struct {
+       Iflag  uint32
+       Oflag  uint32
+       Cflag  uint32
+       Lflag  uint32
+       Line   uint8
+       Cc     [19]uint8
+       Ispeed uint32
+       Ospeed uint32
+}
diff --git a/vendor/golang.org/x/sys/unix/ztypes_netbsd_386.go b/vendor/golang.org/x/sys/unix/ztypes_netbsd_386.go
new file mode 100644 (file)
index 0000000..42f99c0
--- /dev/null
@@ -0,0 +1,401 @@
+// Created by cgo -godefs - DO NOT EDIT
+// cgo -godefs types_netbsd.go
+
+// +build 386,netbsd
+
+package unix
+
+const (
+       sizeofPtr      = 0x4
+       sizeofShort    = 0x2
+       sizeofInt      = 0x4
+       sizeofLong     = 0x4
+       sizeofLongLong = 0x8
+)
+
+type (
+       _C_short     int16
+       _C_int       int32
+       _C_long      int32
+       _C_long_long int64
+)
+
+type Timespec struct {
+       Sec  int64
+       Nsec int32
+}
+
+type Timeval struct {
+       Sec  int64
+       Usec int32
+}
+
+type Rusage struct {
+       Utime    Timeval
+       Stime    Timeval
+       Maxrss   int32
+       Ixrss    int32
+       Idrss    int32
+       Isrss    int32
+       Minflt   int32
+       Majflt   int32
+       Nswap    int32
+       Inblock  int32
+       Oublock  int32
+       Msgsnd   int32
+       Msgrcv   int32
+       Nsignals int32
+       Nvcsw    int32
+       Nivcsw   int32
+}
+
+type Rlimit struct {
+       Cur uint64
+       Max uint64
+}
+
+type _Gid_t uint32
+
+type Stat_t struct {
+       Dev           uint64
+       Mode          uint32
+       Ino           uint64
+       Nlink         uint32
+       Uid           uint32
+       Gid           uint32
+       Rdev          uint64
+       Atimespec     Timespec
+       Mtimespec     Timespec
+       Ctimespec     Timespec
+       Birthtimespec Timespec
+       Size          int64
+       Blocks        int64
+       Blksize       uint32
+       Flags         uint32
+       Gen           uint32
+       Spare         [2]uint32
+}
+
+type Statfs_t [0]byte
+
+type Flock_t struct {
+       Start  int64
+       Len    int64
+       Pid    int32
+       Type   int16
+       Whence int16
+}
+
+type Dirent struct {
+       Fileno    uint64
+       Reclen    uint16
+       Namlen    uint16
+       Type      uint8
+       Name      [512]int8
+       Pad_cgo_0 [3]byte
+}
+
+type Fsid struct {
+       X__fsid_val [2]int32
+}
+
+type RawSockaddrInet4 struct {
+       Len    uint8
+       Family uint8
+       Port   uint16
+       Addr   [4]byte /* in_addr */
+       Zero   [8]int8
+}
+
+type RawSockaddrInet6 struct {
+       Len      uint8
+       Family   uint8
+       Port     uint16
+       Flowinfo uint32
+       Addr     [16]byte /* in6_addr */
+       Scope_id uint32
+}
+
+type RawSockaddrUnix struct {
+       Len    uint8
+       Family uint8
+       Path   [104]int8
+}
+
+type RawSockaddrDatalink struct {
+       Len    uint8
+       Family uint8
+       Index  uint16
+       Type   uint8
+       Nlen   uint8
+       Alen   uint8
+       Slen   uint8
+       Data   [12]int8
+}
+
+type RawSockaddr struct {
+       Len    uint8
+       Family uint8
+       Data   [14]int8
+}
+
+type RawSockaddrAny struct {
+       Addr RawSockaddr
+       Pad  [92]int8
+}
+
+type _Socklen uint32
+
+type Linger struct {
+       Onoff  int32
+       Linger int32
+}
+
+type Iovec struct {
+       Base *byte
+       Len  uint32
+}
+
+type IPMreq struct {
+       Multiaddr [4]byte /* in_addr */
+       Interface [4]byte /* in_addr */
+}
+
+type IPv6Mreq struct {
+       Multiaddr [16]byte /* in6_addr */
+       Interface uint32
+}
+
+type Msghdr struct {
+       Name       *byte
+       Namelen    uint32
+       Iov        *Iovec
+       Iovlen     int32
+       Control    *byte
+       Controllen uint32
+       Flags      int32
+}
+
+type Cmsghdr struct {
+       Len   uint32
+       Level int32
+       Type  int32
+}
+
+type Inet6Pktinfo struct {
+       Addr    [16]byte /* in6_addr */
+       Ifindex uint32
+}
+
+type IPv6MTUInfo struct {
+       Addr RawSockaddrInet6
+       Mtu  uint32
+}
+
+type ICMPv6Filter struct {
+       Filt [8]uint32
+}
+
+const (
+       SizeofSockaddrInet4    = 0x10
+       SizeofSockaddrInet6    = 0x1c
+       SizeofSockaddrAny      = 0x6c
+       SizeofSockaddrUnix     = 0x6a
+       SizeofSockaddrDatalink = 0x14
+       SizeofLinger           = 0x8
+       SizeofIPMreq           = 0x8
+       SizeofIPv6Mreq         = 0x14
+       SizeofMsghdr           = 0x1c
+       SizeofCmsghdr          = 0xc
+       SizeofInet6Pktinfo     = 0x14
+       SizeofIPv6MTUInfo      = 0x20
+       SizeofICMPv6Filter     = 0x20
+)
+
+const (
+       PTRACE_TRACEME = 0x0
+       PTRACE_CONT    = 0x7
+       PTRACE_KILL    = 0x8
+)
+
+type Kevent_t struct {
+       Ident  uint32
+       Filter uint32
+       Flags  uint32
+       Fflags uint32
+       Data   int64
+       Udata  int32
+}
+
+type FdSet struct {
+       Bits [8]uint32
+}
+
+const (
+       SizeofIfMsghdr         = 0x98
+       SizeofIfData           = 0x84
+       SizeofIfaMsghdr        = 0x18
+       SizeofIfAnnounceMsghdr = 0x18
+       SizeofRtMsghdr         = 0x78
+       SizeofRtMetrics        = 0x50
+)
+
+type IfMsghdr struct {
+       Msglen    uint16
+       Version   uint8
+       Type      uint8
+       Addrs     int32
+       Flags     int32
+       Index     uint16
+       Pad_cgo_0 [2]byte
+       Data      IfData
+       Pad_cgo_1 [4]byte
+}
+
+type IfData struct {
+       Type       uint8
+       Addrlen    uint8
+       Hdrlen     uint8
+       Pad_cgo_0  [1]byte
+       Link_state int32
+       Mtu        uint64
+       Metric     uint64
+       Baudrate   uint64
+       Ipackets   uint64
+       Ierrors    uint64
+       Opackets   uint64
+       Oerrors    uint64
+       Collisions uint64
+       Ibytes     uint64
+       Obytes     uint64
+       Imcasts    uint64
+       Omcasts    uint64
+       Iqdrops    uint64
+       Noproto    uint64
+       Lastchange Timespec
+}
+
+type IfaMsghdr struct {
+       Msglen    uint16
+       Version   uint8
+       Type      uint8
+       Addrs     int32
+       Flags     int32
+       Metric    int32
+       Index     uint16
+       Pad_cgo_0 [6]byte
+}
+
+type IfAnnounceMsghdr struct {
+       Msglen  uint16
+       Version uint8
+       Type    uint8
+       Index   uint16
+       Name    [16]int8
+       What    uint16
+}
+
+type RtMsghdr struct {
+       Msglen    uint16
+       Version   uint8
+       Type      uint8
+       Index     uint16
+       Pad_cgo_0 [2]byte
+       Flags     int32
+       Addrs     int32
+       Pid       int32
+       Seq       int32
+       Errno     int32
+       Use       int32
+       Inits     int32
+       Pad_cgo_1 [4]byte
+       Rmx       RtMetrics
+}
+
+type RtMetrics struct {
+       Locks    uint64
+       Mtu      uint64
+       Hopcount uint64
+       Recvpipe uint64
+       Sendpipe uint64
+       Ssthresh uint64
+       Rtt      uint64
+       Rttvar   uint64
+       Expire   int64
+       Pksent   int64
+}
+
+type Mclpool [0]byte
+
+const (
+       SizeofBpfVersion = 0x4
+       SizeofBpfStat    = 0x80
+       SizeofBpfProgram = 0x8
+       SizeofBpfInsn    = 0x8
+       SizeofBpfHdr     = 0x14
+)
+
+type BpfVersion struct {
+       Major uint16
+       Minor uint16
+}
+
+type BpfStat struct {
+       Recv    uint64
+       Drop    uint64
+       Capt    uint64
+       Padding [13]uint64
+}
+
+type BpfProgram struct {
+       Len   uint32
+       Insns *BpfInsn
+}
+
+type BpfInsn struct {
+       Code uint16
+       Jt   uint8
+       Jf   uint8
+       K    uint32
+}
+
+type BpfHdr struct {
+       Tstamp    BpfTimeval
+       Caplen    uint32
+       Datalen   uint32
+       Hdrlen    uint16
+       Pad_cgo_0 [2]byte
+}
+
+type BpfTimeval struct {
+       Sec  int32
+       Usec int32
+}
+
+type Termios struct {
+       Iflag  uint32
+       Oflag  uint32
+       Cflag  uint32
+       Lflag  uint32
+       Cc     [20]uint8
+       Ispeed int32
+       Ospeed int32
+}
+
+const (
+       AT_FDCWD            = -0x64
+       AT_SYMLINK_NOFOLLOW = 0x200
+)
+
+type Sysctlnode struct {
+       Flags           uint32
+       Num             int32
+       Name            [32]int8
+       Ver             uint32
+       X__rsvd         uint32
+       Un              [16]byte
+       X_sysctl_size   [8]byte
+       X_sysctl_func   [8]byte
+       X_sysctl_parent [8]byte
+       X_sysctl_desc   [8]byte
+}
diff --git a/vendor/golang.org/x/sys/unix/ztypes_netbsd_amd64.go b/vendor/golang.org/x/sys/unix/ztypes_netbsd_amd64.go
new file mode 100644 (file)
index 0000000..ff290ba
--- /dev/null
@@ -0,0 +1,408 @@
+// Created by cgo -godefs - DO NOT EDIT
+// cgo -godefs types_netbsd.go
+
+// +build amd64,netbsd
+
+package unix
+
+const (
+       sizeofPtr      = 0x8
+       sizeofShort    = 0x2
+       sizeofInt      = 0x4
+       sizeofLong     = 0x8
+       sizeofLongLong = 0x8
+)
+
+type (
+       _C_short     int16
+       _C_int       int32
+       _C_long      int64
+       _C_long_long int64
+)
+
+type Timespec struct {
+       Sec  int64
+       Nsec int64
+}
+
+type Timeval struct {
+       Sec       int64
+       Usec      int32
+       Pad_cgo_0 [4]byte
+}
+
+type Rusage struct {
+       Utime    Timeval
+       Stime    Timeval
+       Maxrss   int64
+       Ixrss    int64
+       Idrss    int64
+       Isrss    int64
+       Minflt   int64
+       Majflt   int64
+       Nswap    int64
+       Inblock  int64
+       Oublock  int64
+       Msgsnd   int64
+       Msgrcv   int64
+       Nsignals int64
+       Nvcsw    int64
+       Nivcsw   int64
+}
+
+type Rlimit struct {
+       Cur uint64
+       Max uint64
+}
+
+type _Gid_t uint32
+
+type Stat_t struct {
+       Dev           uint64
+       Mode          uint32
+       Pad_cgo_0     [4]byte
+       Ino           uint64
+       Nlink         uint32
+       Uid           uint32
+       Gid           uint32
+       Pad_cgo_1     [4]byte
+       Rdev          uint64
+       Atimespec     Timespec
+       Mtimespec     Timespec
+       Ctimespec     Timespec
+       Birthtimespec Timespec
+       Size          int64
+       Blocks        int64
+       Blksize       uint32
+       Flags         uint32
+       Gen           uint32
+       Spare         [2]uint32
+       Pad_cgo_2     [4]byte
+}
+
+type Statfs_t [0]byte
+
+type Flock_t struct {
+       Start  int64
+       Len    int64
+       Pid    int32
+       Type   int16
+       Whence int16
+}
+
+type Dirent struct {
+       Fileno    uint64
+       Reclen    uint16
+       Namlen    uint16
+       Type      uint8
+       Name      [512]int8
+       Pad_cgo_0 [3]byte
+}
+
+type Fsid struct {
+       X__fsid_val [2]int32
+}
+
+type RawSockaddrInet4 struct {
+       Len    uint8
+       Family uint8
+       Port   uint16
+       Addr   [4]byte /* in_addr */
+       Zero   [8]int8
+}
+
+type RawSockaddrInet6 struct {
+       Len      uint8
+       Family   uint8
+       Port     uint16
+       Flowinfo uint32
+       Addr     [16]byte /* in6_addr */
+       Scope_id uint32
+}
+
+type RawSockaddrUnix struct {
+       Len    uint8
+       Family uint8
+       Path   [104]int8
+}
+
+type RawSockaddrDatalink struct {
+       Len    uint8
+       Family uint8
+       Index  uint16
+       Type   uint8
+       Nlen   uint8
+       Alen   uint8
+       Slen   uint8
+       Data   [12]int8
+}
+
+type RawSockaddr struct {
+       Len    uint8
+       Family uint8
+       Data   [14]int8
+}
+
+type RawSockaddrAny struct {
+       Addr RawSockaddr
+       Pad  [92]int8
+}
+
+type _Socklen uint32
+
+type Linger struct {
+       Onoff  int32
+       Linger int32
+}
+
+type Iovec struct {
+       Base *byte
+       Len  uint64
+}
+
+type IPMreq struct {
+       Multiaddr [4]byte /* in_addr */
+       Interface [4]byte /* in_addr */
+}
+
+type IPv6Mreq struct {
+       Multiaddr [16]byte /* in6_addr */
+       Interface uint32
+}
+
+type Msghdr struct {
+       Name       *byte
+       Namelen    uint32
+       Pad_cgo_0  [4]byte
+       Iov        *Iovec
+       Iovlen     int32
+       Pad_cgo_1  [4]byte
+       Control    *byte
+       Controllen uint32
+       Flags      int32
+}
+
+type Cmsghdr struct {
+       Len   uint32
+       Level int32
+       Type  int32
+}
+
+type Inet6Pktinfo struct {
+       Addr    [16]byte /* in6_addr */
+       Ifindex uint32
+}
+
+type IPv6MTUInfo struct {
+       Addr RawSockaddrInet6
+       Mtu  uint32
+}
+
+type ICMPv6Filter struct {
+       Filt [8]uint32
+}
+
+const (
+       SizeofSockaddrInet4    = 0x10
+       SizeofSockaddrInet6    = 0x1c
+       SizeofSockaddrAny      = 0x6c
+       SizeofSockaddrUnix     = 0x6a
+       SizeofSockaddrDatalink = 0x14
+       SizeofLinger           = 0x8
+       SizeofIPMreq           = 0x8
+       SizeofIPv6Mreq         = 0x14
+       SizeofMsghdr           = 0x30
+       SizeofCmsghdr          = 0xc
+       SizeofInet6Pktinfo     = 0x14
+       SizeofIPv6MTUInfo      = 0x20
+       SizeofICMPv6Filter     = 0x20
+)
+
+const (
+       PTRACE_TRACEME = 0x0
+       PTRACE_CONT    = 0x7
+       PTRACE_KILL    = 0x8
+)
+
+type Kevent_t struct {
+       Ident     uint64
+       Filter    uint32
+       Flags     uint32
+       Fflags    uint32
+       Pad_cgo_0 [4]byte
+       Data      int64
+       Udata     int64
+}
+
+type FdSet struct {
+       Bits [8]uint32
+}
+
+const (
+       SizeofIfMsghdr         = 0x98
+       SizeofIfData           = 0x88
+       SizeofIfaMsghdr        = 0x18
+       SizeofIfAnnounceMsghdr = 0x18
+       SizeofRtMsghdr         = 0x78
+       SizeofRtMetrics        = 0x50
+)
+
+type IfMsghdr struct {
+       Msglen    uint16
+       Version   uint8
+       Type      uint8
+       Addrs     int32
+       Flags     int32
+       Index     uint16
+       Pad_cgo_0 [2]byte
+       Data      IfData
+}
+
+type IfData struct {
+       Type       uint8
+       Addrlen    uint8
+       Hdrlen     uint8
+       Pad_cgo_0  [1]byte
+       Link_state int32
+       Mtu        uint64
+       Metric     uint64
+       Baudrate   uint64
+       Ipackets   uint64
+       Ierrors    uint64
+       Opackets   uint64
+       Oerrors    uint64
+       Collisions uint64
+       Ibytes     uint64
+       Obytes     uint64
+       Imcasts    uint64
+       Omcasts    uint64
+       Iqdrops    uint64
+       Noproto    uint64
+       Lastchange Timespec
+}
+
+type IfaMsghdr struct {
+       Msglen    uint16
+       Version   uint8
+       Type      uint8
+       Addrs     int32
+       Flags     int32
+       Metric    int32
+       Index     uint16
+       Pad_cgo_0 [6]byte
+}
+
+type IfAnnounceMsghdr struct {
+       Msglen  uint16
+       Version uint8
+       Type    uint8
+       Index   uint16
+       Name    [16]int8
+       What    uint16
+}
+
+type RtMsghdr struct {
+       Msglen    uint16
+       Version   uint8
+       Type      uint8
+       Index     uint16
+       Pad_cgo_0 [2]byte
+       Flags     int32
+       Addrs     int32
+       Pid       int32
+       Seq       int32
+       Errno     int32
+       Use       int32
+       Inits     int32
+       Pad_cgo_1 [4]byte
+       Rmx       RtMetrics
+}
+
+type RtMetrics struct {
+       Locks    uint64
+       Mtu      uint64
+       Hopcount uint64
+       Recvpipe uint64
+       Sendpipe uint64
+       Ssthresh uint64
+       Rtt      uint64
+       Rttvar   uint64
+       Expire   int64
+       Pksent   int64
+}
+
+type Mclpool [0]byte
+
+const (
+       SizeofBpfVersion = 0x4
+       SizeofBpfStat    = 0x80
+       SizeofBpfProgram = 0x10
+       SizeofBpfInsn    = 0x8
+       SizeofBpfHdr     = 0x20
+)
+
+type BpfVersion struct {
+       Major uint16
+       Minor uint16
+}
+
+type BpfStat struct {
+       Recv    uint64
+       Drop    uint64
+       Capt    uint64
+       Padding [13]uint64
+}
+
+type BpfProgram struct {
+       Len       uint32
+       Pad_cgo_0 [4]byte
+       Insns     *BpfInsn
+}
+
+type BpfInsn struct {
+       Code uint16
+       Jt   uint8
+       Jf   uint8
+       K    uint32
+}
+
+type BpfHdr struct {
+       Tstamp    BpfTimeval
+       Caplen    uint32
+       Datalen   uint32
+       Hdrlen    uint16
+       Pad_cgo_0 [6]byte
+}
+
+type BpfTimeval struct {
+       Sec  int64
+       Usec int64
+}
+
+type Termios struct {
+       Iflag  uint32
+       Oflag  uint32
+       Cflag  uint32
+       Lflag  uint32
+       Cc     [20]uint8
+       Ispeed int32
+       Ospeed int32
+}
+
+const (
+       AT_FDCWD            = -0x64
+       AT_SYMLINK_NOFOLLOW = 0x200
+)
+
+type Sysctlnode struct {
+       Flags           uint32
+       Num             int32
+       Name            [32]int8
+       Ver             uint32
+       X__rsvd         uint32
+       Un              [16]byte
+       X_sysctl_size   [8]byte
+       X_sysctl_func   [8]byte
+       X_sysctl_parent [8]byte
+       X_sysctl_desc   [8]byte
+}
diff --git a/vendor/golang.org/x/sys/unix/ztypes_netbsd_arm.go b/vendor/golang.org/x/sys/unix/ztypes_netbsd_arm.go
new file mode 100644 (file)
index 0000000..66dbd7c
--- /dev/null
@@ -0,0 +1,406 @@
+// Created by cgo -godefs - DO NOT EDIT
+// cgo -godefs types_netbsd.go
+
+// +build arm,netbsd
+
+package unix
+
+const (
+       sizeofPtr      = 0x4
+       sizeofShort    = 0x2
+       sizeofInt      = 0x4
+       sizeofLong     = 0x4
+       sizeofLongLong = 0x8
+)
+
+type (
+       _C_short     int16
+       _C_int       int32
+       _C_long      int32
+       _C_long_long int64
+)
+
+type Timespec struct {
+       Sec       int64
+       Nsec      int32
+       Pad_cgo_0 [4]byte
+}
+
+type Timeval struct {
+       Sec       int64
+       Usec      int32
+       Pad_cgo_0 [4]byte
+}
+
+type Rusage struct {
+       Utime    Timeval
+       Stime    Timeval
+       Maxrss   int32
+       Ixrss    int32
+       Idrss    int32
+       Isrss    int32
+       Minflt   int32
+       Majflt   int32
+       Nswap    int32
+       Inblock  int32
+       Oublock  int32
+       Msgsnd   int32
+       Msgrcv   int32
+       Nsignals int32
+       Nvcsw    int32
+       Nivcsw   int32
+}
+
+type Rlimit struct {
+       Cur uint64
+       Max uint64
+}
+
+type _Gid_t uint32
+
+type Stat_t struct {
+       Dev           uint64
+       Mode          uint32
+       Pad_cgo_0     [4]byte
+       Ino           uint64
+       Nlink         uint32
+       Uid           uint32
+       Gid           uint32
+       Pad_cgo_1     [4]byte
+       Rdev          uint64
+       Atimespec     Timespec
+       Mtimespec     Timespec
+       Ctimespec     Timespec
+       Birthtimespec Timespec
+       Size          int64
+       Blocks        int64
+       Blksize       uint32
+       Flags         uint32
+       Gen           uint32
+       Spare         [2]uint32
+       Pad_cgo_2     [4]byte
+}
+
+type Statfs_t [0]byte
+
+type Flock_t struct {
+       Start  int64
+       Len    int64
+       Pid    int32
+       Type   int16
+       Whence int16
+}
+
+type Dirent struct {
+       Fileno    uint64
+       Reclen    uint16
+       Namlen    uint16
+       Type      uint8
+       Name      [512]int8
+       Pad_cgo_0 [3]byte
+}
+
+type Fsid struct {
+       X__fsid_val [2]int32
+}
+
+type RawSockaddrInet4 struct {
+       Len    uint8
+       Family uint8
+       Port   uint16
+       Addr   [4]byte /* in_addr */
+       Zero   [8]int8
+}
+
+type RawSockaddrInet6 struct {
+       Len      uint8
+       Family   uint8
+       Port     uint16
+       Flowinfo uint32
+       Addr     [16]byte /* in6_addr */
+       Scope_id uint32
+}
+
+type RawSockaddrUnix struct {
+       Len    uint8
+       Family uint8
+       Path   [104]int8
+}
+
+type RawSockaddrDatalink struct {
+       Len    uint8
+       Family uint8
+       Index  uint16
+       Type   uint8
+       Nlen   uint8
+       Alen   uint8
+       Slen   uint8
+       Data   [12]int8
+}
+
+type RawSockaddr struct {
+       Len    uint8
+       Family uint8
+       Data   [14]int8
+}
+
+type RawSockaddrAny struct {
+       Addr RawSockaddr
+       Pad  [92]int8
+}
+
+type _Socklen uint32
+
+type Linger struct {
+       Onoff  int32
+       Linger int32
+}
+
+type Iovec struct {
+       Base *byte
+       Len  uint32
+}
+
+type IPMreq struct {
+       Multiaddr [4]byte /* in_addr */
+       Interface [4]byte /* in_addr */
+}
+
+type IPv6Mreq struct {
+       Multiaddr [16]byte /* in6_addr */
+       Interface uint32
+}
+
+type Msghdr struct {
+       Name       *byte
+       Namelen    uint32
+       Iov        *Iovec
+       Iovlen     int32
+       Control    *byte
+       Controllen uint32
+       Flags      int32
+}
+
+type Cmsghdr struct {
+       Len   uint32
+       Level int32
+       Type  int32
+}
+
+type Inet6Pktinfo struct {
+       Addr    [16]byte /* in6_addr */
+       Ifindex uint32
+}
+
+type IPv6MTUInfo struct {
+       Addr RawSockaddrInet6
+       Mtu  uint32
+}
+
+type ICMPv6Filter struct {
+       Filt [8]uint32
+}
+
+const (
+       SizeofSockaddrInet4    = 0x10
+       SizeofSockaddrInet6    = 0x1c
+       SizeofSockaddrAny      = 0x6c
+       SizeofSockaddrUnix     = 0x6a
+       SizeofSockaddrDatalink = 0x14
+       SizeofLinger           = 0x8
+       SizeofIPMreq           = 0x8
+       SizeofIPv6Mreq         = 0x14
+       SizeofMsghdr           = 0x1c
+       SizeofCmsghdr          = 0xc
+       SizeofInet6Pktinfo     = 0x14
+       SizeofIPv6MTUInfo      = 0x20
+       SizeofICMPv6Filter     = 0x20
+)
+
+const (
+       PTRACE_TRACEME = 0x0
+       PTRACE_CONT    = 0x7
+       PTRACE_KILL    = 0x8
+)
+
+type Kevent_t struct {
+       Ident     uint32
+       Filter    uint32
+       Flags     uint32
+       Fflags    uint32
+       Data      int64
+       Udata     int32
+       Pad_cgo_0 [4]byte
+}
+
+type FdSet struct {
+       Bits [8]uint32
+}
+
+const (
+       SizeofIfMsghdr         = 0x98
+       SizeofIfData           = 0x88
+       SizeofIfaMsghdr        = 0x18
+       SizeofIfAnnounceMsghdr = 0x18
+       SizeofRtMsghdr         = 0x78
+       SizeofRtMetrics        = 0x50
+)
+
+type IfMsghdr struct {
+       Msglen    uint16
+       Version   uint8
+       Type      uint8
+       Addrs     int32
+       Flags     int32
+       Index     uint16
+       Pad_cgo_0 [2]byte
+       Data      IfData
+}
+
+type IfData struct {
+       Type       uint8
+       Addrlen    uint8
+       Hdrlen     uint8
+       Pad_cgo_0  [1]byte
+       Link_state int32
+       Mtu        uint64
+       Metric     uint64
+       Baudrate   uint64
+       Ipackets   uint64
+       Ierrors    uint64
+       Opackets   uint64
+       Oerrors    uint64
+       Collisions uint64
+       Ibytes     uint64
+       Obytes     uint64
+       Imcasts    uint64
+       Omcasts    uint64
+       Iqdrops    uint64
+       Noproto    uint64
+       Lastchange Timespec
+}
+
+type IfaMsghdr struct {
+       Msglen    uint16
+       Version   uint8
+       Type      uint8
+       Addrs     int32
+       Flags     int32
+       Metric    int32
+       Index     uint16
+       Pad_cgo_0 [6]byte
+}
+
+type IfAnnounceMsghdr struct {
+       Msglen  uint16
+       Version uint8
+       Type    uint8
+       Index   uint16
+       Name    [16]int8
+       What    uint16
+}
+
+type RtMsghdr struct {
+       Msglen    uint16
+       Version   uint8
+       Type      uint8
+       Index     uint16
+       Pad_cgo_0 [2]byte
+       Flags     int32
+       Addrs     int32
+       Pid       int32
+       Seq       int32
+       Errno     int32
+       Use       int32
+       Inits     int32
+       Pad_cgo_1 [4]byte
+       Rmx       RtMetrics
+}
+
+type RtMetrics struct {
+       Locks    uint64
+       Mtu      uint64
+       Hopcount uint64
+       Recvpipe uint64
+       Sendpipe uint64
+       Ssthresh uint64
+       Rtt      uint64
+       Rttvar   uint64
+       Expire   int64
+       Pksent   int64
+}
+
+type Mclpool [0]byte
+
+const (
+       SizeofBpfVersion = 0x4
+       SizeofBpfStat    = 0x80
+       SizeofBpfProgram = 0x8
+       SizeofBpfInsn    = 0x8
+       SizeofBpfHdr     = 0x14
+)
+
+type BpfVersion struct {
+       Major uint16
+       Minor uint16
+}
+
+type BpfStat struct {
+       Recv    uint64
+       Drop    uint64
+       Capt    uint64
+       Padding [13]uint64
+}
+
+type BpfProgram struct {
+       Len   uint32
+       Insns *BpfInsn
+}
+
+type BpfInsn struct {
+       Code uint16
+       Jt   uint8
+       Jf   uint8
+       K    uint32
+}
+
+type BpfHdr struct {
+       Tstamp    BpfTimeval
+       Caplen    uint32
+       Datalen   uint32
+       Hdrlen    uint16
+       Pad_cgo_0 [2]byte
+}
+
+type BpfTimeval struct {
+       Sec  int32
+       Usec int32
+}
+
+type Termios struct {
+       Iflag  uint32
+       Oflag  uint32
+       Cflag  uint32
+       Lflag  uint32
+       Cc     [20]uint8
+       Ispeed int32
+       Ospeed int32
+}
+
+const (
+       AT_FDCWD            = -0x64
+       AT_SYMLINK_NOFOLLOW = 0x200
+)
+
+type Sysctlnode struct {
+       Flags           uint32
+       Num             int32
+       Name            [32]int8
+       Ver             uint32
+       X__rsvd         uint32
+       Un              [16]byte
+       X_sysctl_size   [8]byte
+       X_sysctl_func   [8]byte
+       X_sysctl_parent [8]byte
+       X_sysctl_desc   [8]byte
+}
diff --git a/vendor/golang.org/x/sys/unix/ztypes_openbsd_386.go b/vendor/golang.org/x/sys/unix/ztypes_openbsd_386.go
new file mode 100644 (file)
index 0000000..20fc9f4
--- /dev/null
@@ -0,0 +1,446 @@
+// Created by cgo -godefs - DO NOT EDIT
+// cgo -godefs types_openbsd.go
+
+// +build 386,openbsd
+
+package unix
+
+const (
+       sizeofPtr      = 0x4
+       sizeofShort    = 0x2
+       sizeofInt      = 0x4
+       sizeofLong     = 0x4
+       sizeofLongLong = 0x8
+)
+
+type (
+       _C_short     int16
+       _C_int       int32
+       _C_long      int32
+       _C_long_long int64
+)
+
+type Timespec struct {
+       Sec  int64
+       Nsec int32
+}
+
+type Timeval struct {
+       Sec  int64
+       Usec int32
+}
+
+type Rusage struct {
+       Utime    Timeval
+       Stime    Timeval
+       Maxrss   int32
+       Ixrss    int32
+       Idrss    int32
+       Isrss    int32
+       Minflt   int32
+       Majflt   int32
+       Nswap    int32
+       Inblock  int32
+       Oublock  int32
+       Msgsnd   int32
+       Msgrcv   int32
+       Nsignals int32
+       Nvcsw    int32
+       Nivcsw   int32
+}
+
+type Rlimit struct {
+       Cur uint64
+       Max uint64
+}
+
+type _Gid_t uint32
+
+const (
+       S_IFMT   = 0xf000
+       S_IFIFO  = 0x1000
+       S_IFCHR  = 0x2000
+       S_IFDIR  = 0x4000
+       S_IFBLK  = 0x6000
+       S_IFREG  = 0x8000
+       S_IFLNK  = 0xa000
+       S_IFSOCK = 0xc000
+       S_ISUID  = 0x800
+       S_ISGID  = 0x400
+       S_ISVTX  = 0x200
+       S_IRUSR  = 0x100
+       S_IWUSR  = 0x80
+       S_IXUSR  = 0x40
+)
+
+type Stat_t struct {
+       Mode           uint32
+       Dev            int32
+       Ino            uint64
+       Nlink          uint32
+       Uid            uint32
+       Gid            uint32
+       Rdev           int32
+       Atim           Timespec
+       Mtim           Timespec
+       Ctim           Timespec
+       Size           int64
+       Blocks         int64
+       Blksize        uint32
+       Flags          uint32
+       Gen            uint32
+       X__st_birthtim Timespec
+}
+
+type Statfs_t struct {
+       F_flags       uint32
+       F_bsize       uint32
+       F_iosize      uint32
+       F_blocks      uint64
+       F_bfree       uint64
+       F_bavail      int64
+       F_files       uint64
+       F_ffree       uint64
+       F_favail      int64
+       F_syncwrites  uint64
+       F_syncreads   uint64
+       F_asyncwrites uint64
+       F_asyncreads  uint64
+       F_fsid        Fsid
+       F_namemax     uint32
+       F_owner       uint32
+       F_ctime       uint64
+       F_fstypename  [16]int8
+       F_mntonname   [90]int8
+       F_mntfromname [90]int8
+       F_mntfromspec [90]int8
+       Pad_cgo_0     [2]byte
+       Mount_info    [160]byte
+}
+
+type Flock_t struct {
+       Start  int64
+       Len    int64
+       Pid    int32
+       Type   int16
+       Whence int16
+}
+
+type Dirent struct {
+       Fileno       uint64
+       Off          int64
+       Reclen       uint16
+       Type         uint8
+       Namlen       uint8
+       X__d_padding [4]uint8
+       Name         [256]int8
+}
+
+type Fsid struct {
+       Val [2]int32
+}
+
+type RawSockaddrInet4 struct {
+       Len    uint8
+       Family uint8
+       Port   uint16
+       Addr   [4]byte /* in_addr */
+       Zero   [8]int8
+}
+
+type RawSockaddrInet6 struct {
+       Len      uint8
+       Family   uint8
+       Port     uint16
+       Flowinfo uint32
+       Addr     [16]byte /* in6_addr */
+       Scope_id uint32
+}
+
+type RawSockaddrUnix struct {
+       Len    uint8
+       Family uint8
+       Path   [104]int8
+}
+
+type RawSockaddrDatalink struct {
+       Len    uint8
+       Family uint8
+       Index  uint16
+       Type   uint8
+       Nlen   uint8
+       Alen   uint8
+       Slen   uint8
+       Data   [24]int8
+}
+
+type RawSockaddr struct {
+       Len    uint8
+       Family uint8
+       Data   [14]int8
+}
+
+type RawSockaddrAny struct {
+       Addr RawSockaddr
+       Pad  [92]int8
+}
+
+type _Socklen uint32
+
+type Linger struct {
+       Onoff  int32
+       Linger int32
+}
+
+type Iovec struct {
+       Base *byte
+       Len  uint32
+}
+
+type IPMreq struct {
+       Multiaddr [4]byte /* in_addr */
+       Interface [4]byte /* in_addr */
+}
+
+type IPv6Mreq struct {
+       Multiaddr [16]byte /* in6_addr */
+       Interface uint32
+}
+
+type Msghdr struct {
+       Name       *byte
+       Namelen    uint32
+       Iov        *Iovec
+       Iovlen     uint32
+       Control    *byte
+       Controllen uint32
+       Flags      int32
+}
+
+type Cmsghdr struct {
+       Len   uint32
+       Level int32
+       Type  int32
+}
+
+type Inet6Pktinfo struct {
+       Addr    [16]byte /* in6_addr */
+       Ifindex uint32
+}
+
+type IPv6MTUInfo struct {
+       Addr RawSockaddrInet6
+       Mtu  uint32
+}
+
+type ICMPv6Filter struct {
+       Filt [8]uint32
+}
+
+const (
+       SizeofSockaddrInet4    = 0x10
+       SizeofSockaddrInet6    = 0x1c
+       SizeofSockaddrAny      = 0x6c
+       SizeofSockaddrUnix     = 0x6a
+       SizeofSockaddrDatalink = 0x20
+       SizeofLinger           = 0x8
+       SizeofIPMreq           = 0x8
+       SizeofIPv6Mreq         = 0x14
+       SizeofMsghdr           = 0x1c
+       SizeofCmsghdr          = 0xc
+       SizeofInet6Pktinfo     = 0x14
+       SizeofIPv6MTUInfo      = 0x20
+       SizeofICMPv6Filter     = 0x20
+)
+
+const (
+       PTRACE_TRACEME = 0x0
+       PTRACE_CONT    = 0x7
+       PTRACE_KILL    = 0x8
+)
+
+type Kevent_t struct {
+       Ident  uint32
+       Filter int16
+       Flags  uint16
+       Fflags uint32
+       Data   int64
+       Udata  *byte
+}
+
+type FdSet struct {
+       Bits [32]uint32
+}
+
+const (
+       SizeofIfMsghdr         = 0xec
+       SizeofIfData           = 0xd4
+       SizeofIfaMsghdr        = 0x18
+       SizeofIfAnnounceMsghdr = 0x1a
+       SizeofRtMsghdr         = 0x60
+       SizeofRtMetrics        = 0x38
+)
+
+type IfMsghdr struct {
+       Msglen  uint16
+       Version uint8
+       Type    uint8
+       Hdrlen  uint16
+       Index   uint16
+       Tableid uint16
+       Pad1    uint8
+       Pad2    uint8
+       Addrs   int32
+       Flags   int32
+       Xflags  int32
+       Data    IfData
+}
+
+type IfData struct {
+       Type         uint8
+       Addrlen      uint8
+       Hdrlen       uint8
+       Link_state   uint8
+       Mtu          uint32
+       Metric       uint32
+       Pad          uint32
+       Baudrate     uint64
+       Ipackets     uint64
+       Ierrors      uint64
+       Opackets     uint64
+       Oerrors      uint64
+       Collisions   uint64
+       Ibytes       uint64
+       Obytes       uint64
+       Imcasts      uint64
+       Omcasts      uint64
+       Iqdrops      uint64
+       Noproto      uint64
+       Capabilities uint32
+       Lastchange   Timeval
+       Mclpool      [7]Mclpool
+}
+
+type IfaMsghdr struct {
+       Msglen  uint16
+       Version uint8
+       Type    uint8
+       Hdrlen  uint16
+       Index   uint16
+       Tableid uint16
+       Pad1    uint8
+       Pad2    uint8
+       Addrs   int32
+       Flags   int32
+       Metric  int32
+}
+
+type IfAnnounceMsghdr struct {
+       Msglen  uint16
+       Version uint8
+       Type    uint8
+       Hdrlen  uint16
+       Index   uint16
+       What    uint16
+       Name    [16]int8
+}
+
+type RtMsghdr struct {
+       Msglen   uint16
+       Version  uint8
+       Type     uint8
+       Hdrlen   uint16
+       Index    uint16
+       Tableid  uint16
+       Priority uint8
+       Mpls     uint8
+       Addrs    int32
+       Flags    int32
+       Fmask    int32
+       Pid      int32
+       Seq      int32
+       Errno    int32
+       Inits    uint32
+       Rmx      RtMetrics
+}
+
+type RtMetrics struct {
+       Pksent   uint64
+       Expire   int64
+       Locks    uint32
+       Mtu      uint32
+       Refcnt   uint32
+       Hopcount uint32
+       Recvpipe uint32
+       Sendpipe uint32
+       Ssthresh uint32
+       Rtt      uint32
+       Rttvar   uint32
+       Pad      uint32
+}
+
+type Mclpool struct {
+       Grown int32
+       Alive uint16
+       Hwm   uint16
+       Cwm   uint16
+       Lwm   uint16
+}
+
+const (
+       SizeofBpfVersion = 0x4
+       SizeofBpfStat    = 0x8
+       SizeofBpfProgram = 0x8
+       SizeofBpfInsn    = 0x8
+       SizeofBpfHdr     = 0x14
+)
+
+type BpfVersion struct {
+       Major uint16
+       Minor uint16
+}
+
+type BpfStat struct {
+       Recv uint32
+       Drop uint32
+}
+
+type BpfProgram struct {
+       Len   uint32
+       Insns *BpfInsn
+}
+
+type BpfInsn struct {
+       Code uint16
+       Jt   uint8
+       Jf   uint8
+       K    uint32
+}
+
+type BpfHdr struct {
+       Tstamp    BpfTimeval
+       Caplen    uint32
+       Datalen   uint32
+       Hdrlen    uint16
+       Pad_cgo_0 [2]byte
+}
+
+type BpfTimeval struct {
+       Sec  uint32
+       Usec uint32
+}
+
+type Termios struct {
+       Iflag  uint32
+       Oflag  uint32
+       Cflag  uint32
+       Lflag  uint32
+       Cc     [20]uint8
+       Ispeed int32
+       Ospeed int32
+}
+
+const (
+       AT_FDCWD            = -0x64
+       AT_SYMLINK_NOFOLLOW = 0x2
+)
diff --git a/vendor/golang.org/x/sys/unix/ztypes_openbsd_amd64.go b/vendor/golang.org/x/sys/unix/ztypes_openbsd_amd64.go
new file mode 100644 (file)
index 0000000..46fe949
--- /dev/null
@@ -0,0 +1,453 @@
+// Created by cgo -godefs - DO NOT EDIT
+// cgo -godefs types_openbsd.go
+
+// +build amd64,openbsd
+
+package unix
+
+const (
+       sizeofPtr      = 0x8
+       sizeofShort    = 0x2
+       sizeofInt      = 0x4
+       sizeofLong     = 0x8
+       sizeofLongLong = 0x8
+)
+
+type (
+       _C_short     int16
+       _C_int       int32
+       _C_long      int64
+       _C_long_long int64
+)
+
+type Timespec struct {
+       Sec  int64
+       Nsec int64
+}
+
+type Timeval struct {
+       Sec  int64
+       Usec int64
+}
+
+type Rusage struct {
+       Utime    Timeval
+       Stime    Timeval
+       Maxrss   int64
+       Ixrss    int64
+       Idrss    int64
+       Isrss    int64
+       Minflt   int64
+       Majflt   int64
+       Nswap    int64
+       Inblock  int64
+       Oublock  int64
+       Msgsnd   int64
+       Msgrcv   int64
+       Nsignals int64
+       Nvcsw    int64
+       Nivcsw   int64
+}
+
+type Rlimit struct {
+       Cur uint64
+       Max uint64
+}
+
+type _Gid_t uint32
+
+const (
+       S_IFMT   = 0xf000
+       S_IFIFO  = 0x1000
+       S_IFCHR  = 0x2000
+       S_IFDIR  = 0x4000
+       S_IFBLK  = 0x6000
+       S_IFREG  = 0x8000
+       S_IFLNK  = 0xa000
+       S_IFSOCK = 0xc000
+       S_ISUID  = 0x800
+       S_ISGID  = 0x400
+       S_ISVTX  = 0x200
+       S_IRUSR  = 0x100
+       S_IWUSR  = 0x80
+       S_IXUSR  = 0x40
+)
+
+type Stat_t struct {
+       Mode           uint32
+       Dev            int32
+       Ino            uint64
+       Nlink          uint32
+       Uid            uint32
+       Gid            uint32
+       Rdev           int32
+       Atim           Timespec
+       Mtim           Timespec
+       Ctim           Timespec
+       Size           int64
+       Blocks         int64
+       Blksize        uint32
+       Flags          uint32
+       Gen            uint32
+       Pad_cgo_0      [4]byte
+       X__st_birthtim Timespec
+}
+
+type Statfs_t struct {
+       F_flags       uint32
+       F_bsize       uint32
+       F_iosize      uint32
+       Pad_cgo_0     [4]byte
+       F_blocks      uint64
+       F_bfree       uint64
+       F_bavail      int64
+       F_files       uint64
+       F_ffree       uint64
+       F_favail      int64
+       F_syncwrites  uint64
+       F_syncreads   uint64
+       F_asyncwrites uint64
+       F_asyncreads  uint64
+       F_fsid        Fsid
+       F_namemax     uint32
+       F_owner       uint32
+       F_ctime       uint64
+       F_fstypename  [16]int8
+       F_mntonname   [90]int8
+       F_mntfromname [90]int8
+       F_mntfromspec [90]int8
+       Pad_cgo_1     [2]byte
+       Mount_info    [160]byte
+}
+
+type Flock_t struct {
+       Start  int64
+       Len    int64
+       Pid    int32
+       Type   int16
+       Whence int16
+}
+
+type Dirent struct {
+       Fileno       uint64
+       Off          int64
+       Reclen       uint16
+       Type         uint8
+       Namlen       uint8
+       X__d_padding [4]uint8
+       Name         [256]int8
+}
+
+type Fsid struct {
+       Val [2]int32
+}
+
+type RawSockaddrInet4 struct {
+       Len    uint8
+       Family uint8
+       Port   uint16
+       Addr   [4]byte /* in_addr */
+       Zero   [8]int8
+}
+
+type RawSockaddrInet6 struct {
+       Len      uint8
+       Family   uint8
+       Port     uint16
+       Flowinfo uint32
+       Addr     [16]byte /* in6_addr */
+       Scope_id uint32
+}
+
+type RawSockaddrUnix struct {
+       Len    uint8
+       Family uint8
+       Path   [104]int8
+}
+
+type RawSockaddrDatalink struct {
+       Len    uint8
+       Family uint8
+       Index  uint16
+       Type   uint8
+       Nlen   uint8
+       Alen   uint8
+       Slen   uint8
+       Data   [24]int8
+}
+
+type RawSockaddr struct {
+       Len    uint8
+       Family uint8
+       Data   [14]int8
+}
+
+type RawSockaddrAny struct {
+       Addr RawSockaddr
+       Pad  [92]int8
+}
+
+type _Socklen uint32
+
+type Linger struct {
+       Onoff  int32
+       Linger int32
+}
+
+type Iovec struct {
+       Base *byte
+       Len  uint64
+}
+
+type IPMreq struct {
+       Multiaddr [4]byte /* in_addr */
+       Interface [4]byte /* in_addr */
+}
+
+type IPv6Mreq struct {
+       Multiaddr [16]byte /* in6_addr */
+       Interface uint32
+}
+
+type Msghdr struct {
+       Name       *byte
+       Namelen    uint32
+       Pad_cgo_0  [4]byte
+       Iov        *Iovec
+       Iovlen     uint32
+       Pad_cgo_1  [4]byte
+       Control    *byte
+       Controllen uint32
+       Flags      int32
+}
+
+type Cmsghdr struct {
+       Len   uint32
+       Level int32
+       Type  int32
+}
+
+type Inet6Pktinfo struct {
+       Addr    [16]byte /* in6_addr */
+       Ifindex uint32
+}
+
+type IPv6MTUInfo struct {
+       Addr RawSockaddrInet6
+       Mtu  uint32
+}
+
+type ICMPv6Filter struct {
+       Filt [8]uint32
+}
+
+const (
+       SizeofSockaddrInet4    = 0x10
+       SizeofSockaddrInet6    = 0x1c
+       SizeofSockaddrAny      = 0x6c
+       SizeofSockaddrUnix     = 0x6a
+       SizeofSockaddrDatalink = 0x20
+       SizeofLinger           = 0x8
+       SizeofIPMreq           = 0x8
+       SizeofIPv6Mreq         = 0x14
+       SizeofMsghdr           = 0x30
+       SizeofCmsghdr          = 0xc
+       SizeofInet6Pktinfo     = 0x14
+       SizeofIPv6MTUInfo      = 0x20
+       SizeofICMPv6Filter     = 0x20
+)
+
+const (
+       PTRACE_TRACEME = 0x0
+       PTRACE_CONT    = 0x7
+       PTRACE_KILL    = 0x8
+)
+
+type Kevent_t struct {
+       Ident  uint64
+       Filter int16
+       Flags  uint16
+       Fflags uint32
+       Data   int64
+       Udata  *byte
+}
+
+type FdSet struct {
+       Bits [32]uint32
+}
+
+const (
+       SizeofIfMsghdr         = 0xf8
+       SizeofIfData           = 0xe0
+       SizeofIfaMsghdr        = 0x18
+       SizeofIfAnnounceMsghdr = 0x1a
+       SizeofRtMsghdr         = 0x60
+       SizeofRtMetrics        = 0x38
+)
+
+type IfMsghdr struct {
+       Msglen  uint16
+       Version uint8
+       Type    uint8
+       Hdrlen  uint16
+       Index   uint16
+       Tableid uint16
+       Pad1    uint8
+       Pad2    uint8
+       Addrs   int32
+       Flags   int32
+       Xflags  int32
+       Data    IfData
+}
+
+type IfData struct {
+       Type         uint8
+       Addrlen      uint8
+       Hdrlen       uint8
+       Link_state   uint8
+       Mtu          uint32
+       Metric       uint32
+       Pad          uint32
+       Baudrate     uint64
+       Ipackets     uint64
+       Ierrors      uint64
+       Opackets     uint64
+       Oerrors      uint64
+       Collisions   uint64
+       Ibytes       uint64
+       Obytes       uint64
+       Imcasts      uint64
+       Omcasts      uint64
+       Iqdrops      uint64
+       Noproto      uint64
+       Capabilities uint32
+       Pad_cgo_0    [4]byte
+       Lastchange   Timeval
+       Mclpool      [7]Mclpool
+       Pad_cgo_1    [4]byte
+}
+
+type IfaMsghdr struct {
+       Msglen  uint16
+       Version uint8
+       Type    uint8
+       Hdrlen  uint16
+       Index   uint16
+       Tableid uint16
+       Pad1    uint8
+       Pad2    uint8
+       Addrs   int32
+       Flags   int32
+       Metric  int32
+}
+
+type IfAnnounceMsghdr struct {
+       Msglen  uint16
+       Version uint8
+       Type    uint8
+       Hdrlen  uint16
+       Index   uint16
+       What    uint16
+       Name    [16]int8
+}
+
+type RtMsghdr struct {
+       Msglen   uint16
+       Version  uint8
+       Type     uint8
+       Hdrlen   uint16
+       Index    uint16
+       Tableid  uint16
+       Priority uint8
+       Mpls     uint8
+       Addrs    int32
+       Flags    int32
+       Fmask    int32
+       Pid      int32
+       Seq      int32
+       Errno    int32
+       Inits    uint32
+       Rmx      RtMetrics
+}
+
+type RtMetrics struct {
+       Pksent   uint64
+       Expire   int64
+       Locks    uint32
+       Mtu      uint32
+       Refcnt   uint32
+       Hopcount uint32
+       Recvpipe uint32
+       Sendpipe uint32
+       Ssthresh uint32
+       Rtt      uint32
+       Rttvar   uint32
+       Pad      uint32
+}
+
+type Mclpool struct {
+       Grown int32
+       Alive uint16
+       Hwm   uint16
+       Cwm   uint16
+       Lwm   uint16
+}
+
+const (
+       SizeofBpfVersion = 0x4
+       SizeofBpfStat    = 0x8
+       SizeofBpfProgram = 0x10
+       SizeofBpfInsn    = 0x8
+       SizeofBpfHdr     = 0x14
+)
+
+type BpfVersion struct {
+       Major uint16
+       Minor uint16
+}
+
+type BpfStat struct {
+       Recv uint32
+       Drop uint32
+}
+
+type BpfProgram struct {
+       Len       uint32
+       Pad_cgo_0 [4]byte
+       Insns     *BpfInsn
+}
+
+type BpfInsn struct {
+       Code uint16
+       Jt   uint8
+       Jf   uint8
+       K    uint32
+}
+
+type BpfHdr struct {
+       Tstamp    BpfTimeval
+       Caplen    uint32
+       Datalen   uint32
+       Hdrlen    uint16
+       Pad_cgo_0 [2]byte
+}
+
+type BpfTimeval struct {
+       Sec  uint32
+       Usec uint32
+}
+
+type Termios struct {
+       Iflag  uint32
+       Oflag  uint32
+       Cflag  uint32
+       Lflag  uint32
+       Cc     [20]uint8
+       Ispeed int32
+       Ospeed int32
+}
+
+const (
+       AT_FDCWD            = -0x64
+       AT_SYMLINK_NOFOLLOW = 0x2
+)
diff --git a/vendor/golang.org/x/sys/unix/ztypes_openbsd_arm.go b/vendor/golang.org/x/sys/unix/ztypes_openbsd_arm.go
new file mode 100644 (file)
index 0000000..62e1f7c
--- /dev/null
@@ -0,0 +1,439 @@
+// Created by cgo -godefs - DO NOT EDIT
+// cgo -godefs types_openbsd.go
+
+// +build arm,openbsd
+
+package unix
+
+const (
+       sizeofPtr      = 0x4
+       sizeofShort    = 0x2
+       sizeofInt      = 0x4
+       sizeofLong     = 0x4
+       sizeofLongLong = 0x8
+)
+
+type (
+       _C_short     int16
+       _C_int       int32
+       _C_long      int32
+       _C_long_long int64
+)
+
+type Timespec struct {
+       Sec  int64
+       Nsec int32
+}
+
+type Timeval struct {
+       Sec  int64
+       Usec int32
+}
+
+type Rusage struct {
+       Utime    Timeval
+       Stime    Timeval
+       Maxrss   int32
+       Ixrss    int32
+       Idrss    int32
+       Isrss    int32
+       Minflt   int32
+       Majflt   int32
+       Nswap    int32
+       Inblock  int32
+       Oublock  int32
+       Msgsnd   int32
+       Msgrcv   int32
+       Nsignals int32
+       Nvcsw    int32
+       Nivcsw   int32
+}
+
+type Rlimit struct {
+       Cur uint64
+       Max uint64
+}
+
+type _Gid_t uint32
+
+const (
+       S_IFMT   = 0xf000
+       S_IFIFO  = 0x1000
+       S_IFCHR  = 0x2000
+       S_IFDIR  = 0x4000
+       S_IFBLK  = 0x6000
+       S_IFREG  = 0x8000
+       S_IFLNK  = 0xa000
+       S_IFSOCK = 0xc000
+       S_ISUID  = 0x800
+       S_ISGID  = 0x400
+       S_ISVTX  = 0x200
+       S_IRUSR  = 0x100
+       S_IWUSR  = 0x80
+       S_IXUSR  = 0x40
+)
+
+type Stat_t struct {
+       Mode           uint32
+       Dev            int32
+       Ino            uint64
+       Nlink          uint32
+       Uid            uint32
+       Gid            uint32
+       Rdev           int32
+       Atim           Timespec
+       Mtim           Timespec
+       Ctim           Timespec
+       Size           int64
+       Blocks         int64
+       Blksize        int32
+       Flags          uint32
+       Gen            uint32
+       X__st_birthtim Timespec
+}
+
+type Statfs_t struct {
+       F_flags       uint32
+       F_bsize       uint32
+       F_iosize      uint32
+       F_blocks      uint64
+       F_bfree       uint64
+       F_bavail      int64
+       F_files       uint64
+       F_ffree       uint64
+       F_favail      int64
+       F_syncwrites  uint64
+       F_syncreads   uint64
+       F_asyncwrites uint64
+       F_asyncreads  uint64
+       F_fsid        Fsid
+       F_namemax     uint32
+       F_owner       uint32
+       F_ctime       uint64
+       F_fstypename  [16]uint8
+       F_mntonname   [90]uint8
+       F_mntfromname [90]uint8
+       F_mntfromspec [90]uint8
+       Pad_cgo_0     [2]byte
+       Mount_info    [160]byte
+}
+
+type Flock_t struct {
+       Start  int64
+       Len    int64
+       Pid    int32
+       Type   int16
+       Whence int16
+}
+
+type Dirent struct {
+       Fileno       uint64
+       Off          int64
+       Reclen       uint16
+       Type         uint8
+       Namlen       uint8
+       X__d_padding [4]uint8
+       Name         [256]uint8
+}
+
+type Fsid struct {
+       Val [2]int32
+}
+
+type RawSockaddrInet4 struct {
+       Len    uint8
+       Family uint8
+       Port   uint16
+       Addr   [4]byte /* in_addr */
+       Zero   [8]int8
+}
+
+type RawSockaddrInet6 struct {
+       Len      uint8
+       Family   uint8
+       Port     uint16
+       Flowinfo uint32
+       Addr     [16]byte /* in6_addr */
+       Scope_id uint32
+}
+
+type RawSockaddrUnix struct {
+       Len    uint8
+       Family uint8
+       Path   [104]int8
+}
+
+type RawSockaddrDatalink struct {
+       Len    uint8
+       Family uint8
+       Index  uint16
+       Type   uint8
+       Nlen   uint8
+       Alen   uint8
+       Slen   uint8
+       Data   [24]int8
+}
+
+type RawSockaddr struct {
+       Len    uint8
+       Family uint8
+       Data   [14]int8
+}
+
+type RawSockaddrAny struct {
+       Addr RawSockaddr
+       Pad  [92]int8
+}
+
+type _Socklen uint32
+
+type Linger struct {
+       Onoff  int32
+       Linger int32
+}
+
+type Iovec struct {
+       Base *byte
+       Len  uint32
+}
+
+type IPMreq struct {
+       Multiaddr [4]byte /* in_addr */
+       Interface [4]byte /* in_addr */
+}
+
+type IPv6Mreq struct {
+       Multiaddr [16]byte /* in6_addr */
+       Interface uint32
+}
+
+type Msghdr struct {
+       Name       *byte
+       Namelen    uint32
+       Iov        *Iovec
+       Iovlen     uint32
+       Control    *byte
+       Controllen uint32
+       Flags      int32
+}
+
+type Cmsghdr struct {
+       Len   uint32
+       Level int32
+       Type  int32
+}
+
+type Inet6Pktinfo struct {
+       Addr    [16]byte /* in6_addr */
+       Ifindex uint32
+}
+
+type IPv6MTUInfo struct {
+       Addr RawSockaddrInet6
+       Mtu  uint32
+}
+
+type ICMPv6Filter struct {
+       Filt [8]uint32
+}
+
+const (
+       SizeofSockaddrInet4    = 0x10
+       SizeofSockaddrInet6    = 0x1c
+       SizeofSockaddrAny      = 0x6c
+       SizeofSockaddrUnix     = 0x6a
+       SizeofSockaddrDatalink = 0x20
+       SizeofLinger           = 0x8
+       SizeofIPMreq           = 0x8
+       SizeofIPv6Mreq         = 0x14
+       SizeofMsghdr           = 0x1c
+       SizeofCmsghdr          = 0xc
+       SizeofInet6Pktinfo     = 0x14
+       SizeofIPv6MTUInfo      = 0x20
+       SizeofICMPv6Filter     = 0x20
+)
+
+const (
+       PTRACE_TRACEME = 0x0
+       PTRACE_CONT    = 0x7
+       PTRACE_KILL    = 0x8
+)
+
+type Kevent_t struct {
+       Ident  uint32
+       Filter int16
+       Flags  uint16
+       Fflags uint32
+       Data   int64
+       Udata  *byte
+}
+
+type FdSet struct {
+       Bits [32]uint32
+}
+
+const (
+       SizeofIfMsghdr         = 0x98
+       SizeofIfData           = 0x80
+       SizeofIfaMsghdr        = 0x18
+       SizeofIfAnnounceMsghdr = 0x1a
+       SizeofRtMsghdr         = 0x60
+       SizeofRtMetrics        = 0x38
+)
+
+type IfMsghdr struct {
+       Msglen  uint16
+       Version uint8
+       Type    uint8
+       Hdrlen  uint16
+       Index   uint16
+       Tableid uint16
+       Pad1    uint8
+       Pad2    uint8
+       Addrs   int32
+       Flags   int32
+       Xflags  int32
+       Data    IfData
+}
+
+type IfData struct {
+       Type         uint8
+       Addrlen      uint8
+       Hdrlen       uint8
+       Link_state   uint8
+       Mtu          uint32
+       Metric       uint32
+       Pad          uint32
+       Baudrate     uint64
+       Ipackets     uint64
+       Ierrors      uint64
+       Opackets     uint64
+       Oerrors      uint64
+       Collisions   uint64
+       Ibytes       uint64
+       Obytes       uint64
+       Imcasts      uint64
+       Omcasts      uint64
+       Iqdrops      uint64
+       Noproto      uint64
+       Capabilities uint32
+       Lastchange   Timeval
+}
+
+type IfaMsghdr struct {
+       Msglen  uint16
+       Version uint8
+       Type    uint8
+       Hdrlen  uint16
+       Index   uint16
+       Tableid uint16
+       Pad1    uint8
+       Pad2    uint8
+       Addrs   int32
+       Flags   int32
+       Metric  int32
+}
+
+type IfAnnounceMsghdr struct {
+       Msglen  uint16
+       Version uint8
+       Type    uint8
+       Hdrlen  uint16
+       Index   uint16
+       What    uint16
+       Name    [16]uint8
+}
+
+type RtMsghdr struct {
+       Msglen   uint16
+       Version  uint8
+       Type     uint8
+       Hdrlen   uint16
+       Index    uint16
+       Tableid  uint16
+       Priority uint8
+       Mpls     uint8
+       Addrs    int32
+       Flags    int32
+       Fmask    int32
+       Pid      int32
+       Seq      int32
+       Errno    int32
+       Inits    uint32
+       Rmx      RtMetrics
+}
+
+type RtMetrics struct {
+       Pksent   uint64
+       Expire   int64
+       Locks    uint32
+       Mtu      uint32
+       Refcnt   uint32
+       Hopcount uint32
+       Recvpipe uint32
+       Sendpipe uint32
+       Ssthresh uint32
+       Rtt      uint32
+       Rttvar   uint32
+       Pad      uint32
+}
+
+type Mclpool struct{}
+
+const (
+       SizeofBpfVersion = 0x4
+       SizeofBpfStat    = 0x8
+       SizeofBpfProgram = 0x8
+       SizeofBpfInsn    = 0x8
+       SizeofBpfHdr     = 0x14
+)
+
+type BpfVersion struct {
+       Major uint16
+       Minor uint16
+}
+
+type BpfStat struct {
+       Recv uint32
+       Drop uint32
+}
+
+type BpfProgram struct {
+       Len   uint32
+       Insns *BpfInsn
+}
+
+type BpfInsn struct {
+       Code uint16
+       Jt   uint8
+       Jf   uint8
+       K    uint32
+}
+
+type BpfHdr struct {
+       Tstamp    BpfTimeval
+       Caplen    uint32
+       Datalen   uint32
+       Hdrlen    uint16
+       Pad_cgo_0 [2]byte
+}
+
+type BpfTimeval struct {
+       Sec  uint32
+       Usec uint32
+}
+
+type Termios struct {
+       Iflag  uint32
+       Oflag  uint32
+       Cflag  uint32
+       Lflag  uint32
+       Cc     [20]uint8
+       Ispeed int32
+       Ospeed int32
+}
+
+const (
+       AT_FDCWD            = -0x64
+       AT_SYMLINK_NOFOLLOW = 0x2
+)
diff --git a/vendor/golang.org/x/sys/unix/ztypes_solaris_amd64.go b/vendor/golang.org/x/sys/unix/ztypes_solaris_amd64.go
new file mode 100644 (file)
index 0000000..92336f9
--- /dev/null
@@ -0,0 +1,442 @@
+// cgo -godefs types_solaris.go | go run mkpost.go
+// Code generated by the command above; see README.md. DO NOT EDIT.
+
+// +build amd64,solaris
+
+package unix
+
+const (
+       sizeofPtr      = 0x8
+       sizeofShort    = 0x2
+       sizeofInt      = 0x4
+       sizeofLong     = 0x8
+       sizeofLongLong = 0x8
+       PathMax        = 0x400
+       MaxHostNameLen = 0x100
+)
+
+type (
+       _C_short     int16
+       _C_int       int32
+       _C_long      int64
+       _C_long_long int64
+)
+
+type Timespec struct {
+       Sec  int64
+       Nsec int64
+}
+
+type Timeval struct {
+       Sec  int64
+       Usec int64
+}
+
+type Timeval32 struct {
+       Sec  int32
+       Usec int32
+}
+
+type Tms struct {
+       Utime  int64
+       Stime  int64
+       Cutime int64
+       Cstime int64
+}
+
+type Utimbuf struct {
+       Actime  int64
+       Modtime int64
+}
+
+type Rusage struct {
+       Utime    Timeval
+       Stime    Timeval
+       Maxrss   int64
+       Ixrss    int64
+       Idrss    int64
+       Isrss    int64
+       Minflt   int64
+       Majflt   int64
+       Nswap    int64
+       Inblock  int64
+       Oublock  int64
+       Msgsnd   int64
+       Msgrcv   int64
+       Nsignals int64
+       Nvcsw    int64
+       Nivcsw   int64
+}
+
+type Rlimit struct {
+       Cur uint64
+       Max uint64
+}
+
+type _Gid_t uint32
+
+const (
+       S_IFMT   = 0xf000
+       S_IFIFO  = 0x1000
+       S_IFCHR  = 0x2000
+       S_IFDIR  = 0x4000
+       S_IFBLK  = 0x6000
+       S_IFREG  = 0x8000
+       S_IFLNK  = 0xa000
+       S_IFSOCK = 0xc000
+       S_ISUID  = 0x800
+       S_ISGID  = 0x400
+       S_ISVTX  = 0x200
+       S_IRUSR  = 0x100
+       S_IWUSR  = 0x80
+       S_IXUSR  = 0x40
+)
+
+type Stat_t struct {
+       Dev       uint64
+       Ino       uint64
+       Mode      uint32
+       Nlink     uint32
+       Uid       uint32
+       Gid       uint32
+       Rdev      uint64
+       Size      int64
+       Atim      Timespec
+       Mtim      Timespec
+       Ctim      Timespec
+       Blksize   int32
+       Pad_cgo_0 [4]byte
+       Blocks    int64
+       Fstype    [16]int8
+}
+
+type Flock_t struct {
+       Type      int16
+       Whence    int16
+       Pad_cgo_0 [4]byte
+       Start     int64
+       Len       int64
+       Sysid     int32
+       Pid       int32
+       Pad       [4]int64
+}
+
+type Dirent struct {
+       Ino       uint64
+       Off       int64
+       Reclen    uint16
+       Name      [1]int8
+       Pad_cgo_0 [5]byte
+}
+
+type _Fsblkcnt_t uint64
+
+type Statvfs_t struct {
+       Bsize    uint64
+       Frsize   uint64
+       Blocks   uint64
+       Bfree    uint64
+       Bavail   uint64
+       Files    uint64
+       Ffree    uint64
+       Favail   uint64
+       Fsid     uint64
+       Basetype [16]int8
+       Flag     uint64
+       Namemax  uint64
+       Fstr     [32]int8
+}
+
+type RawSockaddrInet4 struct {
+       Family uint16
+       Port   uint16
+       Addr   [4]byte /* in_addr */
+       Zero   [8]int8
+}
+
+type RawSockaddrInet6 struct {
+       Family         uint16
+       Port           uint16
+       Flowinfo       uint32
+       Addr           [16]byte /* in6_addr */
+       Scope_id       uint32
+       X__sin6_src_id uint32
+}
+
+type RawSockaddrUnix struct {
+       Family uint16
+       Path   [108]int8
+}
+
+type RawSockaddrDatalink struct {
+       Family uint16
+       Index  uint16
+       Type   uint8
+       Nlen   uint8
+       Alen   uint8
+       Slen   uint8
+       Data   [244]int8
+}
+
+type RawSockaddr struct {
+       Family uint16
+       Data   [14]int8
+}
+
+type RawSockaddrAny struct {
+       Addr RawSockaddr
+       Pad  [236]int8
+}
+
+type _Socklen uint32
+
+type Linger struct {
+       Onoff  int32
+       Linger int32
+}
+
+type Iovec struct {
+       Base *int8
+       Len  uint64
+}
+
+type IPMreq struct {
+       Multiaddr [4]byte /* in_addr */
+       Interface [4]byte /* in_addr */
+}
+
+type IPv6Mreq struct {
+       Multiaddr [16]byte /* in6_addr */
+       Interface uint32
+}
+
+type Msghdr struct {
+       Name         *byte
+       Namelen      uint32
+       Pad_cgo_0    [4]byte
+       Iov          *Iovec
+       Iovlen       int32
+       Pad_cgo_1    [4]byte
+       Accrights    *int8
+       Accrightslen int32
+       Pad_cgo_2    [4]byte
+}
+
+type Cmsghdr struct {
+       Len   uint32
+       Level int32
+       Type  int32
+}
+
+type Inet6Pktinfo struct {
+       Addr    [16]byte /* in6_addr */
+       Ifindex uint32
+}
+
+type IPv6MTUInfo struct {
+       Addr RawSockaddrInet6
+       Mtu  uint32
+}
+
+type ICMPv6Filter struct {
+       X__icmp6_filt [8]uint32
+}
+
+const (
+       SizeofSockaddrInet4    = 0x10
+       SizeofSockaddrInet6    = 0x20
+       SizeofSockaddrAny      = 0xfc
+       SizeofSockaddrUnix     = 0x6e
+       SizeofSockaddrDatalink = 0xfc
+       SizeofLinger           = 0x8
+       SizeofIPMreq           = 0x8
+       SizeofIPv6Mreq         = 0x14
+       SizeofMsghdr           = 0x30
+       SizeofCmsghdr          = 0xc
+       SizeofInet6Pktinfo     = 0x14
+       SizeofIPv6MTUInfo      = 0x24
+       SizeofICMPv6Filter     = 0x20
+)
+
+type FdSet struct {
+       Bits [1024]int64
+}
+
+type Utsname struct {
+       Sysname  [257]int8
+       Nodename [257]int8
+       Release  [257]int8
+       Version  [257]int8
+       Machine  [257]int8
+}
+
+type Ustat_t struct {
+       Tfree     int64
+       Tinode    uint64
+       Fname     [6]int8
+       Fpack     [6]int8
+       Pad_cgo_0 [4]byte
+}
+
+const (
+       AT_FDCWD            = 0xffd19553
+       AT_SYMLINK_NOFOLLOW = 0x1000
+       AT_SYMLINK_FOLLOW   = 0x2000
+       AT_REMOVEDIR        = 0x1
+       AT_EACCESS          = 0x4
+)
+
+const (
+       SizeofIfMsghdr  = 0x54
+       SizeofIfData    = 0x44
+       SizeofIfaMsghdr = 0x14
+       SizeofRtMsghdr  = 0x4c
+       SizeofRtMetrics = 0x28
+)
+
+type IfMsghdr struct {
+       Msglen    uint16
+       Version   uint8
+       Type      uint8
+       Addrs     int32
+       Flags     int32
+       Index     uint16
+       Pad_cgo_0 [2]byte
+       Data      IfData
+}
+
+type IfData struct {
+       Type       uint8
+       Addrlen    uint8
+       Hdrlen     uint8
+       Pad_cgo_0  [1]byte
+       Mtu        uint32
+       Metric     uint32
+       Baudrate   uint32
+       Ipackets   uint32
+       Ierrors    uint32
+       Opackets   uint32
+       Oerrors    uint32
+       Collisions uint32
+       Ibytes     uint32
+       Obytes     uint32
+       Imcasts    uint32
+       Omcasts    uint32
+       Iqdrops    uint32
+       Noproto    uint32
+       Lastchange Timeval32
+}
+
+type IfaMsghdr struct {
+       Msglen    uint16
+       Version   uint8
+       Type      uint8
+       Addrs     int32
+       Flags     int32
+       Index     uint16
+       Pad_cgo_0 [2]byte
+       Metric    int32
+}
+
+type RtMsghdr struct {
+       Msglen    uint16
+       Version   uint8
+       Type      uint8
+       Index     uint16
+       Pad_cgo_0 [2]byte
+       Flags     int32
+       Addrs     int32
+       Pid       int32
+       Seq       int32
+       Errno     int32
+       Use       int32
+       Inits     uint32
+       Rmx       RtMetrics
+}
+
+type RtMetrics struct {
+       Locks    uint32
+       Mtu      uint32
+       Hopcount uint32
+       Expire   uint32
+       Recvpipe uint32
+       Sendpipe uint32
+       Ssthresh uint32
+       Rtt      uint32
+       Rttvar   uint32
+       Pksent   uint32
+}
+
+const (
+       SizeofBpfVersion = 0x4
+       SizeofBpfStat    = 0x80
+       SizeofBpfProgram = 0x10
+       SizeofBpfInsn    = 0x8
+       SizeofBpfHdr     = 0x14
+)
+
+type BpfVersion struct {
+       Major uint16
+       Minor uint16
+}
+
+type BpfStat struct {
+       Recv    uint64
+       Drop    uint64
+       Capt    uint64
+       Padding [13]uint64
+}
+
+type BpfProgram struct {
+       Len       uint32
+       Pad_cgo_0 [4]byte
+       Insns     *BpfInsn
+}
+
+type BpfInsn struct {
+       Code uint16
+       Jt   uint8
+       Jf   uint8
+       K    uint32
+}
+
+type BpfTimeval struct {
+       Sec  int32
+       Usec int32
+}
+
+type BpfHdr struct {
+       Tstamp    BpfTimeval
+       Caplen    uint32
+       Datalen   uint32
+       Hdrlen    uint16
+       Pad_cgo_0 [2]byte
+}
+
+const _SC_PAGESIZE = 0xb
+
+type Termios struct {
+       Iflag     uint32
+       Oflag     uint32
+       Cflag     uint32
+       Lflag     uint32
+       Cc        [19]uint8
+       Pad_cgo_0 [1]byte
+}
+
+type Termio struct {
+       Iflag     uint16
+       Oflag     uint16
+       Cflag     uint16
+       Lflag     uint16
+       Line      int8
+       Cc        [8]uint8
+       Pad_cgo_0 [1]byte
+}
+
+type Winsize struct {
+       Row    uint16
+       Col    uint16
+       Xpixel uint16
+       Ypixel uint16
+}