aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBen Kochie <superq@gmail.com>2020-02-18 13:27:11 +0100
committerGitHub <noreply@github.com>2020-02-18 13:27:11 +0100
commit1567cefdaeec156b9f1a231f1bd82fa043f2bd7b (patch)
treebda0f7108dcd06b724e5a3c05f41251754b7d035
parent14df2a1a1a24f14070fe5a158f8b099c0e000fa3 (diff)
downloadprometheus_node_collector-1567cefdaeec156b9f1a231f1bd82fa043f2bd7b.tar.bz2
prometheus_node_collector-1567cefdaeec156b9f1a231f1bd82fa043f2bd7b.tar.xz
prometheus_node_collector-1567cefdaeec156b9f1a231f1bd82fa043f2bd7b.zip
Bump all vendoring (#1612)
Update all vendoring to current releases. Signed-off-by: Ben Kochie <superq@gmail.com>
-rw-r--r--collector/fixtures/e2e-64k-page-output.txt2
-rw-r--r--collector/fixtures/e2e-output.txt2
-rw-r--r--go.mod29
-rw-r--r--go.sum357
-rw-r--r--vendor/github.com/BurntSushi/toml/.gitignore5
-rw-r--r--vendor/github.com/BurntSushi/toml/.travis.yml15
-rw-r--r--vendor/github.com/BurntSushi/toml/COMPATIBLE3
-rw-r--r--vendor/github.com/BurntSushi/toml/COPYING21
-rw-r--r--vendor/github.com/BurntSushi/toml/Makefile19
-rw-r--r--vendor/github.com/BurntSushi/toml/README.md218
-rw-r--r--vendor/github.com/BurntSushi/toml/decode.go509
-rw-r--r--vendor/github.com/BurntSushi/toml/decode_meta.go121
-rw-r--r--vendor/github.com/BurntSushi/toml/doc.go27
-rw-r--r--vendor/github.com/BurntSushi/toml/encode.go568
-rw-r--r--vendor/github.com/BurntSushi/toml/encoding_types.go19
-rw-r--r--vendor/github.com/BurntSushi/toml/encoding_types_1.1.go18
-rw-r--r--vendor/github.com/BurntSushi/toml/lex.go953
-rw-r--r--vendor/github.com/BurntSushi/toml/parse.go592
-rw-r--r--vendor/github.com/BurntSushi/toml/session.vim1
-rw-r--r--vendor/github.com/BurntSushi/toml/type_check.go91
-rw-r--r--vendor/github.com/BurntSushi/toml/type_fields.go242
-rw-r--r--vendor/github.com/alecthomas/units/bytes.go4
-rw-r--r--vendor/github.com/alecthomas/units/go.mod2
-rw-r--r--vendor/github.com/alecthomas/units/go.sum11
-rw-r--r--vendor/github.com/alecthomas/units/si.go30
-rw-r--r--vendor/github.com/cespare/xxhash/v2/.travis.yml8
-rw-r--r--vendor/github.com/cespare/xxhash/v2/LICENSE.txt22
-rw-r--r--vendor/github.com/cespare/xxhash/v2/README.md67
-rw-r--r--vendor/github.com/cespare/xxhash/v2/go.mod3
-rw-r--r--vendor/github.com/cespare/xxhash/v2/go.sum0
-rw-r--r--vendor/github.com/cespare/xxhash/v2/xxhash.go236
-rw-r--r--vendor/github.com/cespare/xxhash/v2/xxhash_amd64.go13
-rw-r--r--vendor/github.com/cespare/xxhash/v2/xxhash_amd64.s215
-rw-r--r--vendor/github.com/cespare/xxhash/v2/xxhash_other.go76
-rw-r--r--vendor/github.com/cespare/xxhash/v2/xxhash_safe.go15
-rw-r--r--vendor/github.com/cespare/xxhash/v2/xxhash_unsafe.go46
-rw-r--r--vendor/github.com/coreos/go-systemd/dbus/methods.go6
-rw-r--r--vendor/github.com/go-kit/kit/log/json_logger.go4
-rw-r--r--vendor/github.com/go-logfmt/logfmt/.gitignore5
-rw-r--r--vendor/github.com/go-logfmt/logfmt/.travis.yml2
-rw-r--r--vendor/github.com/go-logfmt/logfmt/CHANGELOG.md7
-rw-r--r--vendor/github.com/go-logfmt/logfmt/decode.go6
-rw-r--r--vendor/github.com/go-logfmt/logfmt/fuzz.go126
-rw-r--r--vendor/github.com/go-logfmt/logfmt/go.mod2
-rw-r--r--vendor/github.com/go-logfmt/logfmt/go.sum2
-rw-r--r--vendor/github.com/golang/protobuf/proto/lib.go2
-rw-r--r--vendor/github.com/golang/protobuf/proto/text.go6
-rw-r--r--vendor/github.com/golang/protobuf/ptypes/any.go141
-rw-r--r--vendor/github.com/golang/protobuf/ptypes/any/any.pb.go200
-rw-r--r--vendor/github.com/golang/protobuf/ptypes/any/any.proto154
-rw-r--r--vendor/github.com/golang/protobuf/ptypes/doc.go35
-rw-r--r--vendor/github.com/golang/protobuf/ptypes/duration.go102
-rw-r--r--vendor/github.com/golang/protobuf/ptypes/duration/duration.pb.go161
-rw-r--r--vendor/github.com/golang/protobuf/ptypes/duration/duration.proto117
-rw-r--r--vendor/github.com/golang/protobuf/ptypes/timestamp.go132
-rw-r--r--vendor/github.com/golang/protobuf/ptypes/timestamp/timestamp.pb.go179
-rw-r--r--vendor/github.com/golang/protobuf/ptypes/timestamp/timestamp.proto135
-rw-r--r--vendor/github.com/hodgesds/perf-utils/README.md40
-rw-r--r--vendor/github.com/hodgesds/perf-utils/utils.go19
-rw-r--r--vendor/github.com/kr/logfmt/.gitignore3
-rw-r--r--vendor/github.com/kr/logfmt/Readme12
-rw-r--r--vendor/github.com/kr/logfmt/decode.go184
-rw-r--r--vendor/github.com/kr/logfmt/scanner.go149
-rw-r--r--vendor/github.com/kr/logfmt/unquote.go149
-rw-r--r--vendor/github.com/mdlayher/genetlink/CHANGELOG.md9
-rw-r--r--vendor/github.com/mdlayher/genetlink/README.md15
-rw-r--r--vendor/github.com/mdlayher/genetlink/family_linux.go43
-rw-r--r--vendor/github.com/mdlayher/genetlink/go.mod8
-rw-r--r--vendor/github.com/mdlayher/genetlink/go.sum8
-rw-r--r--vendor/github.com/mdlayher/netlink/CHANGELOG.md22
-rw-r--r--vendor/github.com/mdlayher/netlink/README.md12
-rw-r--r--vendor/github.com/mdlayher/netlink/attribute.go215
-rw-r--r--vendor/github.com/mdlayher/netlink/conn.go18
-rw-r--r--vendor/github.com/mdlayher/netlink/conn_linux.go57
-rw-r--r--vendor/github.com/mdlayher/netlink/errors.go13
-rw-r--r--vendor/github.com/mdlayher/netlink/go.mod8
-rw-r--r--vendor/github.com/mdlayher/netlink/go.sum13
-rw-r--r--vendor/github.com/mdlayher/netlink/message.go14
-rw-r--r--vendor/github.com/pkg/errors/.travis.yml11
-rw-r--r--vendor/github.com/pkg/errors/Makefile44
-rw-r--r--vendor/github.com/pkg/errors/README.md11
-rw-r--r--vendor/github.com/pkg/errors/errors.go8
-rw-r--r--vendor/github.com/pkg/errors/go113.go38
-rw-r--r--vendor/github.com/pkg/errors/stack.go58
-rw-r--r--vendor/github.com/prometheus/client_golang/prometheus/counter.go48
-rw-r--r--vendor/github.com/prometheus/client_golang/prometheus/desc.go21
-rw-r--r--vendor/github.com/prometheus/client_golang/prometheus/gauge.go11
-rw-r--r--vendor/github.com/prometheus/client_golang/prometheus/go_collector.go2
-rw-r--r--vendor/github.com/prometheus/client_golang/prometheus/histogram.go114
-rw-r--r--vendor/github.com/prometheus/client_golang/prometheus/metric.go3
-rw-r--r--vendor/github.com/prometheus/client_golang/prometheus/observer.go12
-rw-r--r--vendor/github.com/prometheus/client_golang/prometheus/promhttp/delegator.go9
-rw-r--r--vendor/github.com/prometheus/client_golang/prometheus/promhttp/http.go63
-rw-r--r--vendor/github.com/prometheus/client_golang/prometheus/registry.go32
-rw-r--r--vendor/github.com/prometheus/client_golang/prometheus/summary.go2
-rw-r--r--vendor/github.com/prometheus/client_golang/prometheus/value.go47
-rw-r--r--vendor/github.com/prometheus/client_golang/prometheus/vec.go2
-rw-r--r--vendor/github.com/prometheus/client_model/go/metrics.pb.go268
-rw-r--r--vendor/github.com/prometheus/common/expfmt/encode.go124
-rw-r--r--vendor/github.com/prometheus/common/expfmt/expfmt.go11
-rw-r--r--vendor/github.com/prometheus/common/expfmt/openmetrics_create.go527
-rw-r--r--vendor/github.com/prometheus/common/expfmt/text_create.go3
-rw-r--r--vendor/github.com/prometheus/common/version/info.go17
-rw-r--r--vendor/go.uber.org/atomic/.gitignore3
-rw-r--r--vendor/go.uber.org/atomic/.travis.yml22
-rw-r--r--vendor/go.uber.org/atomic/CHANGELOG.md59
-rw-r--r--vendor/go.uber.org/atomic/Makefile73
-rw-r--r--vendor/go.uber.org/atomic/README.md35
-rw-r--r--vendor/go.uber.org/atomic/atomic.go9
-rw-r--r--vendor/go.uber.org/atomic/error.go55
-rw-r--r--vendor/go.uber.org/atomic/glide.lock17
-rw-r--r--vendor/go.uber.org/atomic/glide.yaml6
-rw-r--r--vendor/go.uber.org/atomic/go.mod10
-rw-r--r--vendor/go.uber.org/atomic/go.sum22
-rw-r--r--vendor/go.uber.org/atomic/tools.go28
-rw-r--r--vendor/go.uber.org/multierr/.gitignore3
-rw-r--r--vendor/go.uber.org/multierr/.travis.yml14
-rw-r--r--vendor/go.uber.org/multierr/CHANGELOG.md20
-rw-r--r--vendor/go.uber.org/multierr/Makefile56
-rw-r--r--vendor/go.uber.org/multierr/README.md4
-rw-r--r--vendor/go.uber.org/multierr/error.go56
-rw-r--r--vendor/go.uber.org/multierr/glide.lock19
-rw-r--r--vendor/go.uber.org/multierr/go.mod12
-rw-r--r--vendor/go.uber.org/multierr/go.sum45
-rw-r--r--vendor/go.uber.org/multierr/go113.go52
-rw-r--r--vendor/go.uber.org/multierr/tools.go30
-rw-r--r--vendor/go.uber.org/tools/LICENSE19
-rw-r--r--vendor/go.uber.org/tools/update-license/.gitignore1
-rw-r--r--vendor/go.uber.org/tools/update-license/README.md24
-rw-r--r--vendor/go.uber.org/tools/update-license/licenses.go56
-rw-r--r--vendor/go.uber.org/tools/update-license/main.go228
-rw-r--r--vendor/golang.org/x/lint/.travis.yml19
-rw-r--r--vendor/golang.org/x/lint/CONTRIBUTING.md15
-rw-r--r--vendor/golang.org/x/lint/LICENSE27
-rw-r--r--vendor/golang.org/x/lint/README.md88
-rw-r--r--vendor/golang.org/x/lint/go.mod5
-rw-r--r--vendor/golang.org/x/lint/go.sum12
-rw-r--r--vendor/golang.org/x/lint/golint/golint.go159
-rw-r--r--vendor/golang.org/x/lint/golint/import.go309
-rw-r--r--vendor/golang.org/x/lint/golint/importcomment.go13
-rw-r--r--vendor/golang.org/x/lint/lint.go1614
-rw-r--r--vendor/golang.org/x/net/internal/socket/norace.go12
-rw-r--r--vendor/golang.org/x/net/internal/socket/race.go37
-rw-r--r--vendor/golang.org/x/net/internal/socket/rawconn_mmsg.go6
-rw-r--r--vendor/golang.org/x/net/internal/socket/rawconn_msg.go2
-rw-r--r--vendor/golang.org/x/net/internal/socket/sys_dragonfly.go27
-rw-r--r--vendor/golang.org/x/net/internal/socket/zsys_aix_ppc64.go1
-rw-r--r--vendor/golang.org/x/net/internal/socket/zsys_linux_386.go1
-rw-r--r--vendor/golang.org/x/net/internal/socket/zsys_linux_amd64.go1
-rw-r--r--vendor/golang.org/x/net/internal/socket/zsys_linux_arm.go6
-rw-r--r--vendor/golang.org/x/net/internal/socket/zsys_linux_arm64.go6
-rw-r--r--vendor/golang.org/x/net/internal/socket/zsys_linux_mips.go6
-rw-r--r--vendor/golang.org/x/net/internal/socket/zsys_linux_mips64.go6
-rw-r--r--vendor/golang.org/x/net/internal/socket/zsys_linux_mips64le.go6
-rw-r--r--vendor/golang.org/x/net/internal/socket/zsys_linux_mipsle.go6
-rw-r--r--vendor/golang.org/x/net/internal/socket/zsys_linux_ppc64.go6
-rw-r--r--vendor/golang.org/x/net/internal/socket/zsys_linux_ppc64le.go6
-rw-r--r--vendor/golang.org/x/net/internal/socket/zsys_linux_riscv64.go6
-rw-r--r--vendor/golang.org/x/net/internal/socket/zsys_linux_s390x.go6
-rw-r--r--vendor/golang.org/x/net/internal/socket/zsys_netbsd_386.go6
-rw-r--r--vendor/golang.org/x/net/internal/socket/zsys_netbsd_amd64.go6
-rw-r--r--vendor/golang.org/x/net/internal/socket/zsys_netbsd_arm.go6
-rw-r--r--vendor/golang.org/x/net/internal/socket/zsys_netbsd_arm64.go1
-rw-r--r--vendor/golang.org/x/net/ipv4/control_bsd.go3
-rw-r--r--vendor/golang.org/x/net/ipv4/sys_bpf.go7
-rw-r--r--vendor/golang.org/x/net/ipv4/sys_linux.go3
-rw-r--r--vendor/golang.org/x/net/ipv4/zsys_freebsd_arm64.go93
-rw-r--r--vendor/golang.org/x/net/ipv4/zsys_linux_386.go18
-rw-r--r--vendor/golang.org/x/net/ipv4/zsys_linux_amd64.go18
-rw-r--r--vendor/golang.org/x/net/ipv4/zsys_linux_arm.go18
-rw-r--r--vendor/golang.org/x/net/ipv4/zsys_linux_arm64.go18
-rw-r--r--vendor/golang.org/x/net/ipv4/zsys_linux_mips.go18
-rw-r--r--vendor/golang.org/x/net/ipv4/zsys_linux_mips64.go18
-rw-r--r--vendor/golang.org/x/net/ipv4/zsys_linux_mips64le.go18
-rw-r--r--vendor/golang.org/x/net/ipv4/zsys_linux_mipsle.go18
-rw-r--r--vendor/golang.org/x/net/ipv4/zsys_linux_ppc.go18
-rw-r--r--vendor/golang.org/x/net/ipv4/zsys_linux_ppc64.go18
-rw-r--r--vendor/golang.org/x/net/ipv4/zsys_linux_ppc64le.go18
-rw-r--r--vendor/golang.org/x/net/ipv4/zsys_linux_riscv64.go17
-rw-r--r--vendor/golang.org/x/net/ipv4/zsys_linux_s390x.go18
-rw-r--r--vendor/golang.org/x/sys/unix/asm_linux_riscv64.s7
-rw-r--r--vendor/golang.org/x/sys/unix/bluetooth_linux.go1
-rw-r--r--vendor/golang.org/x/sys/unix/fcntl.go12
-rw-r--r--vendor/golang.org/x/sys/unix/fdset.go29
-rw-r--r--vendor/golang.org/x/sys/unix/mkall.sh6
-rw-r--r--vendor/golang.org/x/sys/unix/mkerrors.sh60
-rw-r--r--vendor/golang.org/x/sys/unix/sockcmsg_dragonfly.go16
-rw-r--r--vendor/golang.org/x/sys/unix/sockcmsg_linux.go2
-rw-r--r--vendor/golang.org/x/sys/unix/sockcmsg_unix.go36
-rw-r--r--vendor/golang.org/x/sys/unix/sockcmsg_unix_other.go38
-rw-r--r--vendor/golang.org/x/sys/unix/syscall_aix_ppc.go4
-rw-r--r--vendor/golang.org/x/sys/unix/syscall_aix_ppc64.go4
-rw-r--r--vendor/golang.org/x/sys/unix/syscall_bsd.go23
-rw-r--r--vendor/golang.org/x/sys/unix/syscall_darwin.1_12.go29
-rw-r--r--vendor/golang.org/x/sys/unix/syscall_darwin.1_13.go101
-rw-r--r--vendor/golang.org/x/sys/unix/syscall_darwin.go23
-rw-r--r--vendor/golang.org/x/sys/unix/syscall_darwin_386.1_11.go9
-rw-r--r--vendor/golang.org/x/sys/unix/syscall_darwin_386.go5
-rw-r--r--vendor/golang.org/x/sys/unix/syscall_darwin_amd64.1_11.go9
-rw-r--r--vendor/golang.org/x/sys/unix/syscall_darwin_amd64.go5
-rw-r--r--vendor/golang.org/x/sys/unix/syscall_darwin_arm.1_11.go11
-rw-r--r--vendor/golang.org/x/sys/unix/syscall_darwin_arm.go8
-rw-r--r--vendor/golang.org/x/sys/unix/syscall_darwin_arm64.1_11.go11
-rw-r--r--vendor/golang.org/x/sys/unix/syscall_darwin_arm64.go8
-rw-r--r--vendor/golang.org/x/sys/unix/syscall_darwin_libSystem.go2
-rw-r--r--vendor/golang.org/x/sys/unix/syscall_dragonfly.go24
-rw-r--r--vendor/golang.org/x/sys/unix/syscall_dragonfly_amd64.go4
-rw-r--r--vendor/golang.org/x/sys/unix/syscall_freebsd.go19
-rw-r--r--vendor/golang.org/x/sys/unix/syscall_freebsd_386.go10
-rw-r--r--vendor/golang.org/x/sys/unix/syscall_freebsd_amd64.go10
-rw-r--r--vendor/golang.org/x/sys/unix/syscall_freebsd_arm.go10
-rw-r--r--vendor/golang.org/x/sys/unix/syscall_freebsd_arm64.go10
-rw-r--r--vendor/golang.org/x/sys/unix/syscall_linux.go283
-rw-r--r--vendor/golang.org/x/sys/unix/syscall_linux_386.go8
-rw-r--r--vendor/golang.org/x/sys/unix/syscall_linux_amd64.go8
-rw-r--r--vendor/golang.org/x/sys/unix/syscall_linux_arm.go8
-rw-r--r--vendor/golang.org/x/sys/unix/syscall_linux_arm64.go8
-rw-r--r--vendor/golang.org/x/sys/unix/syscall_linux_mips64x.go12
-rw-r--r--vendor/golang.org/x/sys/unix/syscall_linux_mipsx.go8
-rw-r--r--vendor/golang.org/x/sys/unix/syscall_linux_ppc64x.go8
-rw-r--r--vendor/golang.org/x/sys/unix/syscall_linux_riscv64.go8
-rw-r--r--vendor/golang.org/x/sys/unix/syscall_linux_s390x.go8
-rw-r--r--vendor/golang.org/x/sys/unix/syscall_linux_sparc64.go8
-rw-r--r--vendor/golang.org/x/sys/unix/syscall_netbsd.go32
-rw-r--r--vendor/golang.org/x/sys/unix/syscall_netbsd_386.go4
-rw-r--r--vendor/golang.org/x/sys/unix/syscall_netbsd_amd64.go4
-rw-r--r--vendor/golang.org/x/sys/unix/syscall_netbsd_arm.go4
-rw-r--r--vendor/golang.org/x/sys/unix/syscall_netbsd_arm64.go4
-rw-r--r--vendor/golang.org/x/sys/unix/syscall_openbsd.go33
-rw-r--r--vendor/golang.org/x/sys/unix/syscall_openbsd_386.go4
-rw-r--r--vendor/golang.org/x/sys/unix/syscall_openbsd_amd64.go4
-rw-r--r--vendor/golang.org/x/sys/unix/syscall_openbsd_arm.go4
-rw-r--r--vendor/golang.org/x/sys/unix/syscall_openbsd_arm64.go4
-rw-r--r--vendor/golang.org/x/sys/unix/syscall_solaris.go4
-rw-r--r--vendor/golang.org/x/sys/unix/syscall_solaris_amd64.go4
-rw-r--r--vendor/golang.org/x/sys/unix/zerrors_aix_ppc.go12
-rw-r--r--vendor/golang.org/x/sys/unix/zerrors_aix_ppc64.go12
-rw-r--r--vendor/golang.org/x/sys/unix/zerrors_darwin_386.go3
-rw-r--r--vendor/golang.org/x/sys/unix/zerrors_darwin_amd64.go3
-rw-r--r--vendor/golang.org/x/sys/unix/zerrors_darwin_arm.go3
-rw-r--r--vendor/golang.org/x/sys/unix/zerrors_darwin_arm64.go3
-rw-r--r--vendor/golang.org/x/sys/unix/zerrors_dragonfly_amd64.go1
-rw-r--r--vendor/golang.org/x/sys/unix/zerrors_freebsd_386.go3
-rw-r--r--vendor/golang.org/x/sys/unix/zerrors_freebsd_amd64.go3
-rw-r--r--vendor/golang.org/x/sys/unix/zerrors_freebsd_arm.go3
-rw-r--r--vendor/golang.org/x/sys/unix/zerrors_freebsd_arm64.go3
-rw-r--r--vendor/golang.org/x/sys/unix/zerrors_linux_386.go5505
-rw-r--r--vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go5505
-rw-r--r--vendor/golang.org/x/sys/unix/zerrors_linux_arm.go5517
-rw-r--r--vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go5489
-rw-r--r--vendor/golang.org/x/sys/unix/zerrors_linux_mips.go5509
-rw-r--r--vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go5509
-rw-r--r--vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go5509
-rw-r--r--vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go5509
-rw-r--r--vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go5628
-rw-r--r--vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go5628
-rw-r--r--vendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go5479
-rw-r--r--vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go5625
-rw-r--r--vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go5606
-rw-r--r--vendor/golang.org/x/sys/unix/zerrors_netbsd_386.go3
-rw-r--r--vendor/golang.org/x/sys/unix/zerrors_netbsd_amd64.go3
-rw-r--r--vendor/golang.org/x/sys/unix/zerrors_netbsd_arm.go3
-rw-r--r--vendor/golang.org/x/sys/unix/zerrors_netbsd_arm64.go3
-rw-r--r--vendor/golang.org/x/sys/unix/zerrors_openbsd_386.go17
-rw-r--r--vendor/golang.org/x/sys/unix/zerrors_openbsd_amd64.go6
-rw-r--r--vendor/golang.org/x/sys/unix/zerrors_openbsd_arm.go11
-rw-r--r--vendor/golang.org/x/sys/unix/zerrors_openbsd_arm64.go1
-rw-r--r--vendor/golang.org/x/sys/unix/zerrors_solaris_amd64.go3
-rw-r--r--vendor/golang.org/x/sys/unix/zptrace_armnn_linux.go (renamed from vendor/golang.org/x/sys/unix/zptracearm_linux.go)2
-rw-r--r--vendor/golang.org/x/sys/unix/zptrace_linux_arm64.go17
-rw-r--r--vendor/golang.org/x/sys/unix/zptrace_mipsnn_linux.go (renamed from vendor/golang.org/x/sys/unix/zptracemips_linux.go)2
-rw-r--r--vendor/golang.org/x/sys/unix/zptrace_mipsnnle_linux.go (renamed from vendor/golang.org/x/sys/unix/zptracemipsle_linux.go)2
-rw-r--r--vendor/golang.org/x/sys/unix/zptrace_x86_linux.go (renamed from vendor/golang.org/x/sys/unix/zptrace386_linux.go)2
-rw-r--r--vendor/golang.org/x/sys/unix/zsyscall_darwin_386.1_11.go95
-rw-r--r--vendor/golang.org/x/sys/unix/zsyscall_darwin_386.1_13.go41
-rw-r--r--vendor/golang.org/x/sys/unix/zsyscall_darwin_386.1_13.s12
-rw-r--r--vendor/golang.org/x/sys/unix/zsyscall_darwin_386.go116
-rw-r--r--vendor/golang.org/x/sys/unix/zsyscall_darwin_386.s12
-rw-r--r--vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.1_11.go115
-rw-r--r--vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.1_13.go41
-rw-r--r--vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.1_13.s12
-rw-r--r--vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.go101
-rw-r--r--vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.s10
-rw-r--r--vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.1_11.go71
-rw-r--r--vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.1_13.go41
-rw-r--r--vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.1_13.s12
-rw-r--r--vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.go94
-rw-r--r--vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.s10
-rw-r--r--vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.1_11.go71
-rw-r--r--vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.1_13.go41
-rw-r--r--vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.1_13.s12
-rw-r--r--vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.go94
-rw-r--r--vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.s10
-rw-r--r--vendor/golang.org/x/sys/unix/zsyscall_dragonfly_amd64.go16
-rw-r--r--vendor/golang.org/x/sys/unix/zsyscall_freebsd_386.go16
-rw-r--r--vendor/golang.org/x/sys/unix/zsyscall_freebsd_amd64.go56
-rw-r--r--vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm.go56
-rw-r--r--vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm64.go56
-rw-r--r--vendor/golang.org/x/sys/unix/zsyscall_linux_386.go153
-rw-r--r--vendor/golang.org/x/sys/unix/zsyscall_linux_amd64.go153
-rw-r--r--vendor/golang.org/x/sys/unix/zsyscall_linux_arm.go153
-rw-r--r--vendor/golang.org/x/sys/unix/zsyscall_linux_arm64.go153
-rw-r--r--vendor/golang.org/x/sys/unix/zsyscall_linux_mips.go153
-rw-r--r--vendor/golang.org/x/sys/unix/zsyscall_linux_mips64.go153
-rw-r--r--vendor/golang.org/x/sys/unix/zsyscall_linux_mips64le.go153
-rw-r--r--vendor/golang.org/x/sys/unix/zsyscall_linux_mipsle.go153
-rw-r--r--vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64.go153
-rw-r--r--vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64le.go153
-rw-r--r--vendor/golang.org/x/sys/unix/zsyscall_linux_riscv64.go153
-rw-r--r--vendor/golang.org/x/sys/unix/zsyscall_linux_s390x.go153
-rw-r--r--vendor/golang.org/x/sys/unix/zsyscall_linux_sparc64.go153
-rw-r--r--vendor/golang.org/x/sys/unix/zsyscall_netbsd_386.go83
-rw-r--r--vendor/golang.org/x/sys/unix/zsyscall_netbsd_amd64.go83
-rw-r--r--vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm.go83
-rw-r--r--vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm64.go83
-rw-r--r--vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.go62
-rw-r--r--vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.go62
-rw-r--r--vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.go62
-rw-r--r--vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.go62
-rw-r--r--vendor/golang.org/x/sys/unix/zsyscall_solaris_amd64.go5
-rw-r--r--vendor/golang.org/x/sys/unix/zsysnum_linux_386.go2
-rw-r--r--vendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go2
-rw-r--r--vendor/golang.org/x/sys/unix/zsysnum_linux_arm.go2
-rw-r--r--vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go2
-rw-r--r--vendor/golang.org/x/sys/unix/zsysnum_linux_mips.go2
-rw-r--r--vendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go2
-rw-r--r--vendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go2
-rw-r--r--vendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go2
-rw-r--r--vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go2
-rw-r--r--vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go2
-rw-r--r--vendor/golang.org/x/sys/unix/zsysnum_linux_riscv64.go2
-rw-r--r--vendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go2
-rw-r--r--vendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go1
-rw-r--r--vendor/golang.org/x/sys/unix/ztypes_dragonfly_amd64.go10
-rw-r--r--vendor/golang.org/x/sys/unix/ztypes_freebsd_386.go12
-rw-r--r--vendor/golang.org/x/sys/unix/ztypes_freebsd_amd64.go12
-rw-r--r--vendor/golang.org/x/sys/unix/ztypes_freebsd_arm.go12
-rw-r--r--vendor/golang.org/x/sys/unix/ztypes_freebsd_arm64.go14
-rw-r--r--vendor/golang.org/x/sys/unix/ztypes_linux_386.go323
-rw-r--r--vendor/golang.org/x/sys/unix/ztypes_linux_amd64.go324
-rw-r--r--vendor/golang.org/x/sys/unix/ztypes_linux_arm.go324
-rw-r--r--vendor/golang.org/x/sys/unix/ztypes_linux_arm64.go324
-rw-r--r--vendor/golang.org/x/sys/unix/ztypes_linux_mips.go324
-rw-r--r--vendor/golang.org/x/sys/unix/ztypes_linux_mips64.go325
-rw-r--r--vendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go325
-rw-r--r--vendor/golang.org/x/sys/unix/ztypes_linux_mipsle.go324
-rw-r--r--vendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go324
-rw-r--r--vendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go324
-rw-r--r--vendor/golang.org/x/sys/unix/ztypes_linux_riscv64.go324
-rw-r--r--vendor/golang.org/x/sys/unix/ztypes_linux_s390x.go324
-rw-r--r--vendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go324
-rw-r--r--vendor/golang.org/x/sys/unix/ztypes_netbsd_386.go32
-rw-r--r--vendor/golang.org/x/sys/unix/ztypes_netbsd_amd64.go33
-rw-r--r--vendor/golang.org/x/sys/unix/ztypes_netbsd_arm.go32
-rw-r--r--vendor/golang.org/x/sys/unix/ztypes_netbsd_arm64.go33
-rw-r--r--vendor/golang.org/x/sys/unix/ztypes_solaris_amd64.go7
-rw-r--r--vendor/golang.org/x/sys/windows/asm_windows_386.s13
-rw-r--r--vendor/golang.org/x/sys/windows/asm_windows_amd64.s13
-rw-r--r--vendor/golang.org/x/sys/windows/asm_windows_arm.s11
-rw-r--r--vendor/golang.org/x/sys/windows/dll_windows.go22
-rw-r--r--vendor/golang.org/x/sys/windows/empty.s8
-rw-r--r--vendor/golang.org/x/sys/windows/mksyscall.go2
-rw-r--r--vendor/golang.org/x/sys/windows/security_windows.go558
-rw-r--r--vendor/golang.org/x/sys/windows/syscall_windows.go134
-rw-r--r--vendor/golang.org/x/sys/windows/types_windows.go142
-rw-r--r--vendor/golang.org/x/sys/windows/zsyscall_windows.go1176
-rw-r--r--vendor/golang.org/x/tools/AUTHORS3
-rw-r--r--vendor/golang.org/x/tools/CONTRIBUTORS3
-rw-r--r--vendor/golang.org/x/tools/LICENSE27
-rw-r--r--vendor/golang.org/x/tools/PATENTS22
-rw-r--r--vendor/golang.org/x/tools/go/analysis/analysis.go221
-rw-r--r--vendor/golang.org/x/tools/go/analysis/diagnostic.go61
-rw-r--r--vendor/golang.org/x/tools/go/analysis/doc.go301
-rw-r--r--vendor/golang.org/x/tools/go/analysis/passes/inspect/inspect.go49
-rw-r--r--vendor/golang.org/x/tools/go/analysis/validate.go97
-rw-r--r--vendor/golang.org/x/tools/go/ast/astutil/enclosing.go627
-rw-r--r--vendor/golang.org/x/tools/go/ast/astutil/imports.go482
-rw-r--r--vendor/golang.org/x/tools/go/ast/astutil/rewrite.go477
-rw-r--r--vendor/golang.org/x/tools/go/ast/astutil/util.go14
-rw-r--r--vendor/golang.org/x/tools/go/ast/inspector/inspector.go182
-rw-r--r--vendor/golang.org/x/tools/go/ast/inspector/typeof.go216
-rw-r--r--vendor/golang.org/x/tools/go/buildutil/allpackages.go198
-rw-r--r--vendor/golang.org/x/tools/go/buildutil/fakecontext.go109
-rw-r--r--vendor/golang.org/x/tools/go/buildutil/overlay.go103
-rw-r--r--vendor/golang.org/x/tools/go/buildutil/tags.go75
-rw-r--r--vendor/golang.org/x/tools/go/buildutil/util.go212
-rw-r--r--vendor/golang.org/x/tools/go/gcexportdata/gcexportdata.go109
-rw-r--r--vendor/golang.org/x/tools/go/gcexportdata/importer.go73
-rw-r--r--vendor/golang.org/x/tools/go/internal/gcimporter/bexport.go852
-rw-r--r--vendor/golang.org/x/tools/go/internal/gcimporter/bimport.go1039
-rw-r--r--vendor/golang.org/x/tools/go/internal/gcimporter/exportdata.go93
-rw-r--r--vendor/golang.org/x/tools/go/internal/gcimporter/gcimporter.go1078
-rw-r--r--vendor/golang.org/x/tools/go/internal/gcimporter/iexport.go739
-rw-r--r--vendor/golang.org/x/tools/go/internal/gcimporter/iimport.go630
-rw-r--r--vendor/golang.org/x/tools/go/internal/gcimporter/newInterface10.go21
-rw-r--r--vendor/golang.org/x/tools/go/internal/gcimporter/newInterface11.go13
-rw-r--r--vendor/golang.org/x/tools/go/internal/packagesdriver/sizes.go174
-rw-r--r--vendor/golang.org/x/tools/go/packages/doc.go221
-rw-r--r--vendor/golang.org/x/tools/go/packages/external.go101
-rw-r--r--vendor/golang.org/x/tools/go/packages/golist.go895
-rw-r--r--vendor/golang.org/x/tools/go/packages/golist_overlay.go376
-rw-r--r--vendor/golang.org/x/tools/go/packages/loadmode_string.go57
-rw-r--r--vendor/golang.org/x/tools/go/packages/packages.go1140
-rw-r--r--vendor/golang.org/x/tools/go/packages/visit.go55
-rw-r--r--vendor/golang.org/x/tools/go/types/objectpath/objectpath.go523
-rw-r--r--vendor/golang.org/x/tools/go/types/typeutil/callee.go46
-rw-r--r--vendor/golang.org/x/tools/go/types/typeutil/imports.go31
-rw-r--r--vendor/golang.org/x/tools/go/types/typeutil/map.go313
-rw-r--r--vendor/golang.org/x/tools/go/types/typeutil/methodsetcache.go72
-rw-r--r--vendor/golang.org/x/tools/go/types/typeutil/ui.go52
-rw-r--r--vendor/golang.org/x/tools/internal/packagesinternal/packages.go4
-rw-r--r--vendor/gopkg.in/yaml.v2/.travis.yml18
-rw-r--r--vendor/gopkg.in/yaml.v2/decode.go48
-rw-r--r--vendor/gopkg.in/yaml.v2/resolve.go2
-rw-r--r--vendor/gopkg.in/yaml.v2/scannerc.go123
-rw-r--r--vendor/gopkg.in/yaml.v2/yaml.go2
-rw-r--r--vendor/gopkg.in/yaml.v2/yamlh.go1
-rw-r--r--vendor/honnef.co/go/tools/LICENSE20
-rw-r--r--vendor/honnef.co/go/tools/LICENSE-THIRD-PARTY226
-rw-r--r--vendor/honnef.co/go/tools/arg/arg.go48
-rw-r--r--vendor/honnef.co/go/tools/cmd/staticcheck/README.md15
-rw-r--r--vendor/honnef.co/go/tools/cmd/staticcheck/staticcheck.go44
-rw-r--r--vendor/honnef.co/go/tools/config/config.go224
-rw-r--r--vendor/honnef.co/go/tools/config/example.conf10
-rw-r--r--vendor/honnef.co/go/tools/deprecated/stdlib.go112
-rw-r--r--vendor/honnef.co/go/tools/facts/deprecated.go144
-rw-r--r--vendor/honnef.co/go/tools/facts/generated.go86
-rw-r--r--vendor/honnef.co/go/tools/facts/purity.go175
-rw-r--r--vendor/honnef.co/go/tools/facts/token.go24
-rw-r--r--vendor/honnef.co/go/tools/functions/loops.go54
-rw-r--r--vendor/honnef.co/go/tools/functions/pure.go46
-rw-r--r--vendor/honnef.co/go/tools/functions/terminates.go24
-rw-r--r--vendor/honnef.co/go/tools/go/types/typeutil/callee.go46
-rw-r--r--vendor/honnef.co/go/tools/go/types/typeutil/identical.go75
-rw-r--r--vendor/honnef.co/go/tools/go/types/typeutil/imports.go31
-rw-r--r--vendor/honnef.co/go/tools/go/types/typeutil/map.go319
-rw-r--r--vendor/honnef.co/go/tools/go/types/typeutil/methodsetcache.go72
-rw-r--r--vendor/honnef.co/go/tools/go/types/typeutil/ui.go52
-rw-r--r--vendor/honnef.co/go/tools/internal/cache/cache.go474
-rw-r--r--vendor/honnef.co/go/tools/internal/cache/default.go85
-rw-r--r--vendor/honnef.co/go/tools/internal/cache/hash.go176
-rw-r--r--vendor/honnef.co/go/tools/internal/passes/buildssa/buildssa.go116
-rw-r--r--vendor/honnef.co/go/tools/internal/renameio/renameio.go83
-rw-r--r--vendor/honnef.co/go/tools/internal/sharedcheck/lint.go70
-rw-r--r--vendor/honnef.co/go/tools/lint/LICENSE28
-rw-r--r--vendor/honnef.co/go/tools/lint/lint.go491
-rw-r--r--vendor/honnef.co/go/tools/lint/lintdsl/lintdsl.go400
-rw-r--r--vendor/honnef.co/go/tools/lint/lintutil/format/format.go135
-rw-r--r--vendor/honnef.co/go/tools/lint/lintutil/stats.go7
-rw-r--r--vendor/honnef.co/go/tools/lint/lintutil/stats_bsd.go10
-rw-r--r--vendor/honnef.co/go/tools/lint/lintutil/stats_posix.go10
-rw-r--r--vendor/honnef.co/go/tools/lint/lintutil/util.go392
-rw-r--r--vendor/honnef.co/go/tools/lint/runner.go970
-rw-r--r--vendor/honnef.co/go/tools/lint/stats.go20
-rw-r--r--vendor/honnef.co/go/tools/loader/loader.go197
-rw-r--r--vendor/honnef.co/go/tools/printf/fuzz.go11
-rw-r--r--vendor/honnef.co/go/tools/printf/printf.go197
-rw-r--r--vendor/honnef.co/go/tools/simple/CONTRIBUTING.md15
-rw-r--r--vendor/honnef.co/go/tools/simple/analysis.go223
-rw-r--r--vendor/honnef.co/go/tools/simple/doc.go425
-rw-r--r--vendor/honnef.co/go/tools/simple/lint.go1816
-rw-r--r--vendor/honnef.co/go/tools/ssa/LICENSE28
-rw-r--r--vendor/honnef.co/go/tools/ssa/blockopt.go195
-rw-r--r--vendor/honnef.co/go/tools/ssa/builder.go2379
-rw-r--r--vendor/honnef.co/go/tools/ssa/const.go169
-rw-r--r--vendor/honnef.co/go/tools/ssa/create.go270
-rw-r--r--vendor/honnef.co/go/tools/ssa/doc.go125
-rw-r--r--vendor/honnef.co/go/tools/ssa/dom.go343
-rw-r--r--vendor/honnef.co/go/tools/ssa/emit.go469
-rw-r--r--vendor/honnef.co/go/tools/ssa/func.go765
-rw-r--r--vendor/honnef.co/go/tools/ssa/identical.go7
-rw-r--r--vendor/honnef.co/go/tools/ssa/identical_17.go7
-rw-r--r--vendor/honnef.co/go/tools/ssa/lift.go657
-rw-r--r--vendor/honnef.co/go/tools/ssa/lvalue.go123
-rw-r--r--vendor/honnef.co/go/tools/ssa/methods.go239
-rw-r--r--vendor/honnef.co/go/tools/ssa/mode.go100
-rw-r--r--vendor/honnef.co/go/tools/ssa/print.go435
-rw-r--r--vendor/honnef.co/go/tools/ssa/sanity.go535
-rw-r--r--vendor/honnef.co/go/tools/ssa/source.go293
-rw-r--r--vendor/honnef.co/go/tools/ssa/ssa.go1745
-rw-r--r--vendor/honnef.co/go/tools/ssa/staticcheck.conf3
-rw-r--r--vendor/honnef.co/go/tools/ssa/testmain.go271
-rw-r--r--vendor/honnef.co/go/tools/ssa/util.go119
-rw-r--r--vendor/honnef.co/go/tools/ssa/wrappers.go290
-rw-r--r--vendor/honnef.co/go/tools/ssa/write.go5
-rw-r--r--vendor/honnef.co/go/tools/ssautil/ssautil.go58
-rw-r--r--vendor/honnef.co/go/tools/staticcheck/CONTRIBUTING.md15
-rw-r--r--vendor/honnef.co/go/tools/staticcheck/analysis.go525
-rw-r--r--vendor/honnef.co/go/tools/staticcheck/buildtag.go21
-rw-r--r--vendor/honnef.co/go/tools/staticcheck/doc.go764
-rw-r--r--vendor/honnef.co/go/tools/staticcheck/knowledge.go25
-rw-r--r--vendor/honnef.co/go/tools/staticcheck/lint.go3360
-rw-r--r--vendor/honnef.co/go/tools/staticcheck/rules.go321
-rw-r--r--vendor/honnef.co/go/tools/staticcheck/structtag.go58
-rw-r--r--vendor/honnef.co/go/tools/staticcheck/vrp/channel.go73
-rw-r--r--vendor/honnef.co/go/tools/staticcheck/vrp/int.go476
-rw-r--r--vendor/honnef.co/go/tools/staticcheck/vrp/slice.go273
-rw-r--r--vendor/honnef.co/go/tools/staticcheck/vrp/string.go258
-rw-r--r--vendor/honnef.co/go/tools/staticcheck/vrp/vrp.go1056
-rw-r--r--vendor/honnef.co/go/tools/stylecheck/analysis.go111
-rw-r--r--vendor/honnef.co/go/tools/stylecheck/doc.go154
-rw-r--r--vendor/honnef.co/go/tools/stylecheck/lint.go629
-rw-r--r--vendor/honnef.co/go/tools/stylecheck/names.go264
-rw-r--r--vendor/honnef.co/go/tools/unused/edge.go54
-rw-r--r--vendor/honnef.co/go/tools/unused/edgekind_string.go109
-rw-r--r--vendor/honnef.co/go/tools/unused/implements.go82
-rw-r--r--vendor/honnef.co/go/tools/unused/unused.go1964
-rw-r--r--vendor/honnef.co/go/tools/version/buildinfo.go46
-rw-r--r--vendor/honnef.co/go/tools/version/buildinfo111.go6
-rw-r--r--vendor/honnef.co/go/tools/version/version.go42
-rw-r--r--vendor/modules.txt90
511 files changed, 98653 insertions, 38115 deletions
diff --git a/collector/fixtures/e2e-64k-page-output.txt b/collector/fixtures/e2e-64k-page-output.txt
index f6a02c4..aab19fc 100644
--- a/collector/fixtures/e2e-64k-page-output.txt
+++ b/collector/fixtures/e2e-64k-page-output.txt
@@ -1,4 +1,4 @@
1# HELP go_gc_duration_seconds A summary of the GC invocation durations. 1# HELP go_gc_duration_seconds A summary of the pause duration of garbage collection cycles.
2# TYPE go_gc_duration_seconds summary 2# TYPE go_gc_duration_seconds summary
3# HELP go_goroutines Number of goroutines that currently exist. 3# HELP go_goroutines Number of goroutines that currently exist.
4# TYPE go_goroutines gauge 4# TYPE go_goroutines gauge
diff --git a/collector/fixtures/e2e-output.txt b/collector/fixtures/e2e-output.txt
index 1ba311f..38b7649 100644
--- a/collector/fixtures/e2e-output.txt
+++ b/collector/fixtures/e2e-output.txt
@@ -1,4 +1,4 @@
1# HELP go_gc_duration_seconds A summary of the GC invocation durations. 1# HELP go_gc_duration_seconds A summary of the pause duration of garbage collection cycles.
2# TYPE go_gc_duration_seconds summary 2# TYPE go_gc_duration_seconds summary
3# HELP go_goroutines Number of goroutines that currently exist. 3# HELP go_goroutines Number of goroutines that currently exist.
4# TYPE go_goroutines gauge 4# TYPE go_goroutines gauge
diff --git a/go.mod b/go.mod
index 547fd44..d8f9a4e 100644
--- a/go.mod
+++ b/go.mod
@@ -1,28 +1,33 @@
1module github.com/prometheus/node_exporter 1module github.com/prometheus/node_exporter
2 2
3require ( 3require (
4 github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d // indirect
4 github.com/beevik/ntp v0.2.0 5 github.com/beevik/ntp v0.2.0
5 github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e 6 github.com/coreos/go-systemd v0.0.0-20191104093116-d3cd4ed1dbcf
6 github.com/ema/qdisc v0.0.0-20190904071900-b82c76788043 7 github.com/ema/qdisc v0.0.0-20190904071900-b82c76788043
7 github.com/go-kit/kit v0.9.0 8 github.com/go-kit/kit v0.10.0
8 github.com/godbus/dbus v0.0.0-20190402143921-271e53dc4968 9 github.com/godbus/dbus v0.0.0-20190402143921-271e53dc4968
9 github.com/hodgesds/perf-utils v0.0.7 10 github.com/golang/protobuf v1.3.3 // indirect
11 github.com/hodgesds/perf-utils v0.0.8
10 github.com/lufia/iostat v0.0.0-20170605150913-9f7362b77ad3 12 github.com/lufia/iostat v0.0.0-20170605150913-9f7362b77ad3
11 github.com/mattn/go-xmlrpc v0.0.3 13 github.com/mattn/go-xmlrpc v0.0.3
12 github.com/mdlayher/genetlink v0.0.0-20190828143517-e35f2bf499b9 // indirect 14 github.com/mdlayher/genetlink v1.0.0 // indirect
15 github.com/mdlayher/netlink v1.1.0 // indirect
13 github.com/mdlayher/wifi v0.0.0-20190303161829-b1436901ddee 16 github.com/mdlayher/wifi v0.0.0-20190303161829-b1436901ddee
14 github.com/pkg/errors v0.8.1 17 github.com/pkg/errors v0.9.1
15 github.com/prometheus/client_golang v1.0.0 18 github.com/prometheus/client_golang v1.4.1
16 github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90 19 github.com/prometheus/client_model v0.2.0
17 github.com/prometheus/common v0.7.0 20 github.com/prometheus/common v0.9.1
18 github.com/prometheus/procfs v0.0.10 21 github.com/prometheus/procfs v0.0.10
19 github.com/siebenmann/go-kstat v0.0.0-20160321171754-d34789b79745 22 github.com/siebenmann/go-kstat v0.0.0-20160321171754-d34789b79745
20 github.com/soundcloud/go-runit v0.0.0-20150630195641-06ad41a06c4a 23 github.com/soundcloud/go-runit v0.0.0-20150630195641-06ad41a06c4a
21 go.uber.org/atomic v1.3.2 // indirect 24 go.uber.org/atomic v1.5.1 // indirect
22 go.uber.org/multierr v1.1.0 // indirect 25 go.uber.org/multierr v1.4.0 // indirect
23 golang.org/x/sys v0.0.0-20190902133755-9109b7679e13 26 golang.org/x/lint v0.0.0-20200130185559-910be7a94367 // indirect
27 golang.org/x/sys v0.0.0-20200217220822-9197077df867
28 golang.org/x/tools v0.0.0-20200216192241-b320d3a0f5a2 // indirect
24 gopkg.in/alecthomas/kingpin.v2 v2.2.6 29 gopkg.in/alecthomas/kingpin.v2 v2.2.6
25 gopkg.in/yaml.v2 v2.2.2 30 gopkg.in/yaml.v2 v2.2.8
26) 31)
27 32
28go 1.13 33go 1.13
diff --git a/go.sum b/go.sum
index 7a9b22f..b161752 100644
--- a/go.sum
+++ b/go.sum
@@ -1,3 +1,12 @@
1cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
2cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
3github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ=
4github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
5github.com/Knetic/govaluate v3.0.1-0.20171022003610-9aa49832a739+incompatible/go.mod h1:r7JcOSlj0wfOMncg0iLm8Leh48TZaKVeNIfJntJ2wa0=
6github.com/Shopify/sarama v1.19.0/go.mod h1:FVkBWblsNy7DGZRfXLU0O9RCGt5g3g3yEuWXgklEdEo=
7github.com/Shopify/toxiproxy v2.1.4+incompatible/go.mod h1:OXgGpZ6Cli1/URJOF1DMxUHB2q5Ap20/P/eIdh4G0pI=
8github.com/VividCortex/gohistogram v1.0.0/go.mod h1:Pf5mBqqDxYaXu3hDrrU+w6nw50o/4+TcAqDqk/vUH7g=
9github.com/afex/hystrix-go v0.0.0-20180502004556-fa1af6a1f4f5/go.mod h1:SkGFH1ia65gfNATL8TAiHDNxPzPdmEL5uirI2Uyuz6c=
1github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc h1:cAKDfWh5VpdgMhJosfJnn5/FoN2SRZ4p7fJNX58YPaU= 10github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc h1:cAKDfWh5VpdgMhJosfJnn5/FoN2SRZ4p7fJNX58YPaU=
2github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= 11github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
3github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751 h1:JYp7IbQjafoB+tBA3gMyHYHrpOtNuDiK/uB5uXxq5wM= 12github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751 h1:JYp7IbQjafoB+tBA3gMyHYHrpOtNuDiK/uB5uXxq5wM=
@@ -6,134 +15,470 @@ github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf h1:qet1QNfXsQxTZq
6github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= 15github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=
7github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4 h1:Hs82Z41s6SdL1CELW+XaDYmOH4hkBN4/N9og/AsOv7E= 16github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4 h1:Hs82Z41s6SdL1CELW+XaDYmOH4hkBN4/N9og/AsOv7E=
8github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= 17github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=
18github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d h1:UQZhZ2O0vMHr2cI+DC1Mbh0TJxzA3RcLoMsFw+aXw7E=
19github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d/go.mod h1:rBZYJk541a8SKzHPHnH3zbiI+7dagKZ0cgpgrD7Fyho=
20github.com/apache/thrift v0.12.0/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ=
21github.com/apache/thrift v0.13.0/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ=
22github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o=
23github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY=
24github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8=
25github.com/aryann/difflib v0.0.0-20170710044230-e206f873d14a/go.mod h1:DAHtR1m6lCRdSC2Tm3DSWRPvIPr6xNKyeHdqDQSQT+A=
26github.com/aws/aws-lambda-go v1.13.3/go.mod h1:4UKl9IzQMoD+QF79YdCuzCwp8VbmG4VAQwij/eHl5CU=
27github.com/aws/aws-sdk-go v1.27.0/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo=
28github.com/aws/aws-sdk-go-v2 v0.18.0/go.mod h1:JWVYvqSMppoMJC0x5wdwiImzgXTI9FuZwxzkQq9wy+g=
9github.com/beevik/ntp v0.2.0 h1:sGsd+kAXzT0bfVfzJfce04g+dSRfrs+tbQW8lweuYgw= 29github.com/beevik/ntp v0.2.0 h1:sGsd+kAXzT0bfVfzJfce04g+dSRfrs+tbQW8lweuYgw=
10github.com/beevik/ntp v0.2.0/go.mod h1:hIHWr+l3+/clUnF44zdK+CWW7fO8dR5cIylAQ76NRpg= 30github.com/beevik/ntp v0.2.0/go.mod h1:hIHWr+l3+/clUnF44zdK+CWW7fO8dR5cIylAQ76NRpg=
11github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973 h1:xJ4a3vCFaGF/jqvzLMYoU8P317H5OQ+Via4RmuPwCS0= 31github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973 h1:xJ4a3vCFaGF/jqvzLMYoU8P317H5OQ+Via4RmuPwCS0=
12github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= 32github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q=
13github.com/beorn7/perks v1.0.0 h1:HWo1m869IqiPhD389kmkxeTalrjNbbJTC8LXupb+sl0= 33github.com/beorn7/perks v1.0.0 h1:HWo1m869IqiPhD389kmkxeTalrjNbbJTC8LXupb+sl0=
14github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= 34github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8=
15github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e h1:Wf6HqHfScWJN9/ZjdUKyjop4mf3Qdd+1TvvltAvM3m8= 35github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM=
16github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= 36github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw=
37github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs=
38github.com/casbin/casbin/v2 v2.1.2/go.mod h1:YcPU1XXisHhLzuxH9coDNf2FbKpjGlbCg3n9yuLkIJQ=
39github.com/cenkalti/backoff v2.2.1+incompatible/go.mod h1:90ReRw6GdpyfrHakVjL/QHaoyV4aDUVVkXQJJJ3NXXM=
40github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
41github.com/cespare/xxhash/v2 v2.1.1 h1:6MnRN8NT7+YBpUIWxHtefFZOKTAPgGjpQSxqLNn0+qY=
42github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
43github.com/clbanning/x2j v0.0.0-20191024224557-825249438eec/go.mod h1:jMjuTZXRI4dUb/I5gc9Hdhagfvm9+RyrPryS/auMzxE=
44github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
45github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod h1:zn76sxSg3SzpJ0PPJaLDCu+Bu0Lg3sKTORVIj19EIF8=
46github.com/codahale/hdrhistogram v0.0.0-20161010025455-3a0bb77429bd/go.mod h1:sE/e/2PUdi/liOCUjSTXgM1o87ZssimdTWN964YiIeI=
47github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk=
48github.com/coreos/go-systemd v0.0.0-20180511133405-39ca1b05acc7/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4=
49github.com/coreos/go-systemd v0.0.0-20191104093116-d3cd4ed1dbcf h1:iW4rZ826su+pqaw19uhpSCzhj44qo35pNgKFGqzDKkU=
50github.com/coreos/go-systemd v0.0.0-20191104093116-d3cd4ed1dbcf/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4=
51github.com/coreos/pkg v0.0.0-20160727233714-3ac0863d7acf/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA=
52github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU=
53github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY=
17github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= 54github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
18github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= 55github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
19github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= 56github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
57github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ=
58github.com/dustin/go-humanize v0.0.0-20171111073723-bb3d318650d4/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk=
59github.com/eapache/go-resiliency v1.1.0/go.mod h1:kFI+JgMyC7bLPUVY133qvEBtVayf5mFgVsvEsIPBvNs=
60github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21/go.mod h1:+020luEh2TKB4/GOp8oxxtq0Daoen/Cii55CzbTV6DU=
61github.com/eapache/queue v1.1.0/go.mod h1:6eCeP0CKFpHLu8blIFXhExK/dRa7WDZfr6jVFPTqq+I=
62github.com/edsrzf/mmap-go v1.0.0/go.mod h1:YO35OhQPt3KJa3ryjFM5Bs14WD66h8eGKpfaBNrHW5M=
20github.com/ema/qdisc v0.0.0-20190904071900-b82c76788043 h1:I3hLsM87FSASssIrIOGwJCio31dvLkvpYDKn2+r31ec= 63github.com/ema/qdisc v0.0.0-20190904071900-b82c76788043 h1:I3hLsM87FSASssIrIOGwJCio31dvLkvpYDKn2+r31ec=
21github.com/ema/qdisc v0.0.0-20190904071900-b82c76788043/go.mod h1:ix4kG2zvdUd8kEKSW0ZTr1XLks0epFpI4j745DXxlNE= 64github.com/ema/qdisc v0.0.0-20190904071900-b82c76788043/go.mod h1:ix4kG2zvdUd8kEKSW0ZTr1XLks0epFpI4j745DXxlNE=
65github.com/envoyproxy/go-control-plane v0.6.9/go.mod h1:SBwIajubJHhxtWwsL9s8ss4safvEdbitLhGGK48rN6g=
66github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
67github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
68github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4=
69github.com/franela/goblin v0.0.0-20200105215937-c9ffbefa60db/go.mod h1:7dvUGVsVBjqR7JHJk0brhHOZYGmfBYOrK0ZhYMEtBr4=
70github.com/franela/goreq v0.0.0-20171204163338-bcd34c9993f8/go.mod h1:ZhphrRTfi2rbfLwlschooIH4+wKKDR4Pdxhh+TRoA20=
71github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
72github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=
22github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= 73github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as=
23github.com/go-kit/kit v0.9.0 h1:wDJmvq38kDhkVxi50ni9ykkdUr1PKgqKOoi01fa0Mdk= 74github.com/go-kit/kit v0.9.0 h1:wDJmvq38kDhkVxi50ni9ykkdUr1PKgqKOoi01fa0Mdk=
24github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= 75github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as=
76github.com/go-kit/kit v0.10.0 h1:dXFJfIHVvUcpSgDOV+Ne6t7jXri8Tfv2uOLHUZ2XNuo=
77github.com/go-kit/kit v0.10.0/go.mod h1:xUsJbQ/Fp4kEt7AFgCuvyX4a71u8h9jB8tj/ORgOZ7o=
25github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= 78github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE=
26github.com/go-logfmt/logfmt v0.4.0 h1:MP4Eh7ZCb31lleYCFuwm0oe4/YGak+5l1vA2NOE80nA= 79github.com/go-logfmt/logfmt v0.4.0 h1:MP4Eh7ZCb31lleYCFuwm0oe4/YGak+5l1vA2NOE80nA=
27github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= 80github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk=
81github.com/go-logfmt/logfmt v0.5.0 h1:TrB8swr/68K7m9CcGut2g3UOihhbcbiMAYiuTXdEih4=
82github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG1KdI/P7A=
83github.com/go-sql-driver/mysql v1.4.0/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w=
28github.com/go-stack/stack v1.8.0 h1:5SgMzNM5HxrEjV0ww2lTmX6E2Izsfxas4+YHWRs3Lsk= 84github.com/go-stack/stack v1.8.0 h1:5SgMzNM5HxrEjV0ww2lTmX6E2Izsfxas4+YHWRs3Lsk=
29github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= 85github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY=
30github.com/godbus/dbus v0.0.0-20190402143921-271e53dc4968 h1:s+PDl6lozQ+dEUtUtQnO7+A2iPG3sK1pI4liU+jxn90= 86github.com/godbus/dbus v0.0.0-20190402143921-271e53dc4968 h1:s+PDl6lozQ+dEUtUtQnO7+A2iPG3sK1pI4liU+jxn90=
31github.com/godbus/dbus v0.0.0-20190402143921-271e53dc4968/go.mod h1:/YcGZj5zSblfDWMMoOzV4fas9FZnQYTkDnsGvmh2Grw= 87github.com/godbus/dbus v0.0.0-20190402143921-271e53dc4968/go.mod h1:/YcGZj5zSblfDWMMoOzV4fas9FZnQYTkDnsGvmh2Grw=
88github.com/gogo/googleapis v1.1.0/go.mod h1:gf4bu3Q80BeJ6H1S1vYPm8/ELATdvryBaNFGgqEef3s=
32github.com/gogo/protobuf v1.1.1 h1:72R+M5VuhED/KujmZVcIquuo8mBgX4oVda//DQb3PXo= 89github.com/gogo/protobuf v1.1.1 h1:72R+M5VuhED/KujmZVcIquuo8mBgX4oVda//DQb3PXo=
33github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= 90github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=
91github.com/gogo/protobuf v1.2.0/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=
92github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4=
93github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=
94github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
95github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
96github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A=
34github.com/golang/protobuf v1.2.0 h1:P3YflyNX/ehuJFLhxviNdFxQPkGK5cDcApsge1SqnvM= 97github.com/golang/protobuf v1.2.0 h1:P3YflyNX/ehuJFLhxviNdFxQPkGK5cDcApsge1SqnvM=
35github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= 98github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
36github.com/golang/protobuf v1.3.1 h1:YF8+flBXS5eO826T4nzqPrxfhQThhXl0YzfuUPu4SBg= 99github.com/golang/protobuf v1.3.1 h1:YF8+flBXS5eO826T4nzqPrxfhQThhXl0YzfuUPu4SBg=
37github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= 100github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
38github.com/golang/protobuf v1.3.2 h1:6nsPYzhq5kReh6QImI3k5qWzO4PEbvbIW2cwSfR/6xs= 101github.com/golang/protobuf v1.3.2 h1:6nsPYzhq5kReh6QImI3k5qWzO4PEbvbIW2cwSfR/6xs=
39github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= 102github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
103github.com/golang/protobuf v1.3.3 h1:gyjaxf+svBWX08ZjK86iN9geUJF0H6gp2IRKX6Nf6/I=
104github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw=
105github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
106github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
107github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
40github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= 108github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M=
109github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
41github.com/google/go-cmp v0.3.1 h1:Xye71clBPdm5HgqGwUkwhbynsUJZhDbS20FvLhQ2izg= 110github.com/google/go-cmp v0.3.1 h1:Xye71clBPdm5HgqGwUkwhbynsUJZhDbS20FvLhQ2izg=
42github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= 111github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
43github.com/hodgesds/perf-utils v0.0.7 h1:V/5aRKeXn/membOpFdzAgd+fFvmtvTYD6moDuZ7K7SM= 112github.com/google/go-cmp v0.4.0 h1:xsAVV57WRhGj6kEIi8ReJzQlHHqcBYCElAvkovg3B/4=
44github.com/hodgesds/perf-utils v0.0.7/go.mod h1:F6TfvsbtrF88i++hou29dTXlI2sfsJv+gRZDtmTJkAs= 113github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
114github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
115github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI=
116github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
117github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY=
118github.com/gorilla/context v1.1.1/go.mod h1:kBGZzfjB9CEq2AlWe17Uuf7NDRt0dE0s8S51q0aT7Yg=
119github.com/gorilla/mux v1.6.2/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs=
120github.com/gorilla/mux v1.7.3/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs=
121github.com/gorilla/websocket v0.0.0-20170926233335-4201258b820c/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ=
122github.com/grpc-ecosystem/go-grpc-middleware v1.0.1-0.20190118093823-f849b5445de4/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs=
123github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk=
124github.com/grpc-ecosystem/grpc-gateway v1.9.5/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY=
125github.com/hashicorp/consul/api v1.3.0/go.mod h1:MmDNSzIMUjNpY/mQ398R4bk2FnqQLoPndWW5VkKPlCE=
126github.com/hashicorp/consul/sdk v0.3.0/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8=
127github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4=
128github.com/hashicorp/go-cleanhttp v0.5.1/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80=
129github.com/hashicorp/go-immutable-radix v1.0.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60=
130github.com/hashicorp/go-msgpack v0.5.3/go.mod h1:ahLV/dePpqEmjfWmKiqvPkv/twdG7iPBM1vqhUKIvfM=
131github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHhCYQXV3UM06sGGrk=
132github.com/hashicorp/go-rootcerts v1.0.0/go.mod h1:K6zTfqpRlCUIjkwsN4Z+hiSfzSTQa6eBIzfwKfwNnHU=
133github.com/hashicorp/go-sockaddr v1.0.0/go.mod h1:7Xibr9yA9JjQq1JpNB2Vw7kxv8xerXegt+ozgdvDeDU=
134github.com/hashicorp/go-syslog v1.0.0/go.mod h1:qPfqrKkXGihmCqbJM2mZgkZGvKG1dFdvsLplgctolz4=
135github.com/hashicorp/go-uuid v1.0.0/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro=
136github.com/hashicorp/go-uuid v1.0.1/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro=
137github.com/hashicorp/go-version v1.2.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA=
138github.com/hashicorp/go.net v0.0.1/go.mod h1:hjKkEWcCURg++eb33jQU7oqQcI9XDCnUzHA0oac0k90=
139github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
140github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
141github.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO+LraFDTW64=
142github.com/hashicorp/mdns v1.0.0/go.mod h1:tL+uN++7HEJ6SQLQ2/p+z2pH24WQKWjBPkE0mNTz8vQ=
143github.com/hashicorp/memberlist v0.1.3/go.mod h1:ajVTdAv/9Im8oMAAj5G31PhhMCZJV2pPBoIllUwCN7I=
144github.com/hashicorp/serf v0.8.2/go.mod h1:6hOLApaqBFA1NXqRQAsxw9QxuDEvNxSQRwA/JwenrHc=
145github.com/hodgesds/perf-utils v0.0.8 h1:6BT6cddpouM0G7eHhLFS+XcqtPvhrzWbPreyIvgFEcg=
146github.com/hodgesds/perf-utils v0.0.8/go.mod h1:F6TfvsbtrF88i++hou29dTXlI2sfsJv+gRZDtmTJkAs=
147github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU=
148github.com/hudl/fargo v1.3.0/go.mod h1:y3CKSmjA+wD2gak7sUSXTAoopbhU08POFhmITJgmKTg=
149github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8=
150github.com/influxdata/influxdb1-client v0.0.0-20191209144304-8bf82d3c094d/go.mod h1:qj24IKcXYK6Iy9ceXlo3Tc+vtHo9lIhSX5JddghvEPo=
151github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k=
152github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo=
45github.com/jsimonetti/rtnetlink v0.0.0-20190606172950-9527aa82566a/go.mod h1:Oz+70psSo5OFh8DBl0Zv2ACw7Esh6pPUphlvZG9x7uw= 153github.com/jsimonetti/rtnetlink v0.0.0-20190606172950-9527aa82566a/go.mod h1:Oz+70psSo5OFh8DBl0Zv2ACw7Esh6pPUphlvZG9x7uw=
46github.com/jsimonetti/rtnetlink v0.0.0-20190830100107-3784a6c7c552 h1:Ve/e6edHdAHn+8/24Xco7IhQCv3u5Dab2qZNvR9e5/U= 154github.com/jsimonetti/rtnetlink v0.0.0-20190830100107-3784a6c7c552 h1:Ve/e6edHdAHn+8/24Xco7IhQCv3u5Dab2qZNvR9e5/U=
47github.com/jsimonetti/rtnetlink v0.0.0-20190830100107-3784a6c7c552/go.mod h1:Oz+70psSo5OFh8DBl0Zv2ACw7Esh6pPUphlvZG9x7uw= 155github.com/jsimonetti/rtnetlink v0.0.0-20190830100107-3784a6c7c552/go.mod h1:Oz+70psSo5OFh8DBl0Zv2ACw7Esh6pPUphlvZG9x7uw=
156github.com/jsimonetti/rtnetlink v0.0.0-20200117123717-f846d4f6c1f4 h1:nwOc1YaOrYJ37sEBrtWZrdqzK22hiJs3GpDmP3sR2Yw=
157github.com/jsimonetti/rtnetlink v0.0.0-20200117123717-f846d4f6c1f4/go.mod h1:WGuG/smIU4J/54PblvSbh+xvCZmpJnFgr3ds6Z55XMQ=
48github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= 158github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU=
159github.com/json-iterator/go v1.1.7/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
160github.com/json-iterator/go v1.1.8/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
161github.com/json-iterator/go v1.1.9/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
162github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU=
49github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= 163github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w=
164github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q=
165github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
50github.com/konsorten/go-windows-terminal-sequences v1.0.1 h1:mweAR1A6xJ3oS2pRaGiHgQ4OO8tzTaLawm8vnODuwDk= 166github.com/konsorten/go-windows-terminal-sequences v1.0.1 h1:mweAR1A6xJ3oS2pRaGiHgQ4OO8tzTaLawm8vnODuwDk=
51github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= 167github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
52github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515 h1:T+h1c/A9Gawja4Y9mFVWj2vyii2bbUNDw3kt9VxK2EY= 168github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515 h1:T+h1c/A9Gawja4Y9mFVWj2vyii2bbUNDw3kt9VxK2EY=
53github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= 169github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc=
170github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI=
171github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
172github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
173github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE=
174github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
175github.com/lightstep/lightstep-tracer-common/golang/gogo v0.0.0-20190605223551-bc2310a04743/go.mod h1:qklhhLq1aX+mtWk9cPHPzaBjWImj5ULL6C7HFJtXQMM=
176github.com/lightstep/lightstep-tracer-go v0.18.1/go.mod h1:jlF1pusYV4pidLvZ+XD0UBX0ZE6WURAspgAczcDHrL4=
54github.com/lufia/iostat v0.0.0-20170605150913-9f7362b77ad3 h1:XGhvld9vIpj929Gri5ybjukYZeyZwKkFkqgATqBQiOs= 177github.com/lufia/iostat v0.0.0-20170605150913-9f7362b77ad3 h1:XGhvld9vIpj929Gri5ybjukYZeyZwKkFkqgATqBQiOs=
55github.com/lufia/iostat v0.0.0-20170605150913-9f7362b77ad3/go.mod h1:lRgtFVamD7L7GaXOSwBiuXMwU3Aicfn5h66LVs4u2SA= 178github.com/lufia/iostat v0.0.0-20170605150913-9f7362b77ad3/go.mod h1:lRgtFVamD7L7GaXOSwBiuXMwU3Aicfn5h66LVs4u2SA=
179github.com/lyft/protoc-gen-validate v0.0.13/go.mod h1:XbGvPuh87YZc5TdIa2/I4pLk0QoUACkjt2znoq26NVQ=
180github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU=
181github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4=
182github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4=
183github.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU=
56github.com/mattn/go-xmlrpc v0.0.3 h1:Y6WEMLEsqs3RviBrAa1/7qmbGB7DVD3brZIbqMbQdGY= 184github.com/mattn/go-xmlrpc v0.0.3 h1:Y6WEMLEsqs3RviBrAa1/7qmbGB7DVD3brZIbqMbQdGY=
57github.com/mattn/go-xmlrpc v0.0.3/go.mod h1:mqc2dz7tP5x5BKlCahN/n+hs7OSZKJkS9JsHNBRlrxA= 185github.com/mattn/go-xmlrpc v0.0.3/go.mod h1:mqc2dz7tP5x5BKlCahN/n+hs7OSZKJkS9JsHNBRlrxA=
58github.com/matttproud/golang_protobuf_extensions v1.0.1 h1:4hp9jkHxhMHkqkrB3Ix0jegS5sx/RkqARlsWZ6pIwiU= 186github.com/matttproud/golang_protobuf_extensions v1.0.1 h1:4hp9jkHxhMHkqkrB3Ix0jegS5sx/RkqARlsWZ6pIwiU=
59github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= 187github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0=
60github.com/mdlayher/genetlink v0.0.0-20190828143517-e35f2bf499b9 h1:o+ckyx58UC6Itoo7sEwmXMpHcnI31lRK6w4M5gQMIMw= 188github.com/mdlayher/genetlink v1.0.0 h1:OoHN1OdyEIkScEmRgxLEe2M9U8ClMytqA5niynLtfj0=
61github.com/mdlayher/genetlink v0.0.0-20190828143517-e35f2bf499b9/go.mod h1:jdlTGSEt8SRUJPk5+vLsPyojmLVAxsOKNjVkqrixnJ8= 189github.com/mdlayher/genetlink v1.0.0/go.mod h1:0rJ0h4itni50A86M2kHcgS85ttZazNt7a8H2a2cw0Gc=
62github.com/mdlayher/netlink v0.0.0-20190409211403-11939a169225/go.mod h1:eQB3mZE4aiYnlUsyGGCOpPETfdQq4Jhsgf1fk3cwQaA= 190github.com/mdlayher/netlink v0.0.0-20190409211403-11939a169225/go.mod h1:eQB3mZE4aiYnlUsyGGCOpPETfdQq4Jhsgf1fk3cwQaA=
63github.com/mdlayher/netlink v0.0.0-20190828143259-340058475d09 h1:U2vuol6i4UF6MSpZJclH4HHiLRMoq1NAzxpIpCUJK/Y= 191github.com/mdlayher/netlink v0.0.0-20190828143259-340058475d09 h1:U2vuol6i4UF6MSpZJclH4HHiLRMoq1NAzxpIpCUJK/Y=
64github.com/mdlayher/netlink v0.0.0-20190828143259-340058475d09/go.mod h1:KxeJAFOFLG6AjpyDkQ/iIhxygIUKD+vcwqcnu43w/+M= 192github.com/mdlayher/netlink v0.0.0-20190828143259-340058475d09/go.mod h1:KxeJAFOFLG6AjpyDkQ/iIhxygIUKD+vcwqcnu43w/+M=
193github.com/mdlayher/netlink v1.0.0 h1:vySPY5Oxnn/8lxAPn2cK6kAzcZzYJl3KriSLO46OT18=
194github.com/mdlayher/netlink v1.0.0/go.mod h1:KxeJAFOFLG6AjpyDkQ/iIhxygIUKD+vcwqcnu43w/+M=
195github.com/mdlayher/netlink v1.1.0 h1:mpdLgm+brq10nI9zM1BpX1kpDbh3NLl3RSnVq6ZSkfg=
196github.com/mdlayher/netlink v1.1.0/go.mod h1:H4WCitaheIsdF9yOYu8CFmCgQthAPIWZmcKp9uZHgmY=
65github.com/mdlayher/wifi v0.0.0-20190303161829-b1436901ddee h1:hZDujBrW3ye2xxdKNFYT59D4yCH5Q0zLuNBNtysKtok= 197github.com/mdlayher/wifi v0.0.0-20190303161829-b1436901ddee h1:hZDujBrW3ye2xxdKNFYT59D4yCH5Q0zLuNBNtysKtok=
66github.com/mdlayher/wifi v0.0.0-20190303161829-b1436901ddee/go.mod h1:Evt/EIne46u9PtQbeTx2NTcqURpr5K4SvKtGmBuDPN8= 198github.com/mdlayher/wifi v0.0.0-20190303161829-b1436901ddee/go.mod h1:Evt/EIne46u9PtQbeTx2NTcqURpr5K4SvKtGmBuDPN8=
199github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg=
200github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc=
201github.com/mitchellh/go-homedir v1.0.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0=
202github.com/mitchellh/go-testing-interface v1.0.0/go.mod h1:kRemZodwjscx+RGhAo8eIhFbs2+BFgRtFPeD/KE+zxI=
203github.com/mitchellh/gox v0.4.0/go.mod h1:Sd9lOJ0+aimLBi73mGofS1ycjY8lL3uZM3JPS42BGNg=
204github.com/mitchellh/iochan v1.0.0/go.mod h1:JwYml1nuB7xOzsp52dPpHFffvOCDupsG0QubkSMEySY=
205github.com/mitchellh/mapstructure v0.0.0-20160808181253-ca63d7c062ee/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y=
206github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y=
207github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
67github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= 208github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
209github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0=
68github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= 210github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0=
69github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= 211github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U=
212github.com/nats-io/jwt v0.3.0/go.mod h1:fRYCDE99xlTsqUzISS1Bi75UBJ6ljOJQOAAu5VglpSg=
213github.com/nats-io/jwt v0.3.2/go.mod h1:/euKqTS1ZD+zzjYrY7pseZrTtWQSjujC7xjPc8wL6eU=
214github.com/nats-io/nats-server/v2 v2.1.2/go.mod h1:Afk+wRZqkMQs/p45uXdrVLuab3gwv3Z8C4HTBu8GD/k=
215github.com/nats-io/nats.go v1.9.1/go.mod h1:ZjDU1L/7fJ09jvUSRVBR2e7+RnLiiIQyqyzEE/Zbp4w=
216github.com/nats-io/nkeys v0.1.0/go.mod h1:xpnFELMwJABBLVhffcfd1MZx6VsNRFpEugbxziKVo7w=
217github.com/nats-io/nkeys v0.1.3/go.mod h1:xpnFELMwJABBLVhffcfd1MZx6VsNRFpEugbxziKVo7w=
218github.com/nats-io/nuid v1.0.1/go.mod h1:19wcPz3Ph3q0Jbyiqsd0kePYG7A95tJPxeL+1OSON2c=
219github.com/oklog/oklog v0.3.2/go.mod h1:FCV+B7mhrz4o+ueLpx+KqkyXRGMWOYEvfiXtdGtbWGs=
220github.com/oklog/run v1.0.0/go.mod h1:dlhp/R75TPv97u0XWUtDeV/lRKWPKSdTuV0TZvrmrQA=
221github.com/olekukonko/tablewriter v0.0.0-20170122224234-a0225b3f23b5/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo=
222github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
223github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
224github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY=
225github.com/op/go-logging v0.0.0-20160315200505-970db520ece7/go.mod h1:HzydrMdWErDVzsI23lYNej1Htcns9BCg93Dk0bBINWk=
226github.com/opentracing-contrib/go-observer v0.0.0-20170622124052-a52f23424492/go.mod h1:Ngi6UdF0k5OKD5t5wlmGhe/EDKPoUM3BXZSSfIuJbis=
227github.com/opentracing/basictracer-go v1.0.0/go.mod h1:QfBfYuafItcjQuMwinw9GhYKwFXS9KnPs5lxoYwgW74=
228github.com/opentracing/opentracing-go v1.0.2/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o=
229github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o=
230github.com/openzipkin-contrib/zipkin-go-opentracing v0.4.5/go.mod h1:/wsWhb9smxSfWAKL3wpBW7V8scJMt8N8gnaMCS9E/cA=
231github.com/openzipkin/zipkin-go v0.1.6/go.mod h1:QgAqvLzwWbR/WpD4A3cGpPtJrZXNIiJc5AZX7/PBEpw=
232github.com/openzipkin/zipkin-go v0.2.1/go.mod h1:NaW6tEwdmWMaCDZzg8sh+IBNOxHMPnhQw8ySjnjRyN4=
233github.com/openzipkin/zipkin-go v0.2.2/go.mod h1:NaW6tEwdmWMaCDZzg8sh+IBNOxHMPnhQw8ySjnjRyN4=
234github.com/pact-foundation/pact-go v1.0.4/go.mod h1:uExwJY4kCzNPcHRj+hCR/HBbOOIwwtUjcrb0b5/5kLM=
235github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc=
236github.com/pborman/uuid v1.2.0/go.mod h1:X/NO0urCmaxf9VXbdlT7C2Yzkj2IKimNn4k+gtPdI/k=
237github.com/performancecopilot/speed v3.0.0+incompatible/go.mod h1:/CLtqpZ5gBg1M9iaPbIdPPGyKcA8hKdoy6hAWba7Yac=
238github.com/pierrec/lz4 v1.0.2-0.20190131084431-473cd7ce01a1/go.mod h1:3/3N9NVKO0jef7pBehbT1qWhCMrIgbYNnFAZCqQ5LRc=
239github.com/pierrec/lz4 v2.0.5+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY=
70github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= 240github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
71github.com/pkg/errors v0.8.1 h1:iURUrRGxPUNPdy5/HRSm+Yj6okJ6UtLINN0Q9M4+h3I= 241github.com/pkg/errors v0.8.1 h1:iURUrRGxPUNPdy5/HRSm+Yj6okJ6UtLINN0Q9M4+h3I=
72github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= 242github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
243github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
244github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
245github.com/pkg/profile v1.2.1/go.mod h1:hJw3o1OdXxsrSjjVksARp5W95eeEaEfptyVZyv6JUPA=
73github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= 246github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
74github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= 247github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
248github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI=
75github.com/prometheus/client_golang v0.9.1 h1:K47Rk0v/fkEfwfQet2KWhscE0cJzjgCCDBG2KHZoVno= 249github.com/prometheus/client_golang v0.9.1 h1:K47Rk0v/fkEfwfQet2KWhscE0cJzjgCCDBG2KHZoVno=
76github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= 250github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw=
251github.com/prometheus/client_golang v0.9.3-0.20190127221311-3c4408c8b829/go.mod h1:p2iRAGwDERtqlqzRXnrOVns+ignqQo//hLXqYxZYVNs=
77github.com/prometheus/client_golang v1.0.0 h1:vrDKnkGzuGvhNAL56c7DBz29ZL+KxnoR0x7enabFceM= 252github.com/prometheus/client_golang v1.0.0 h1:vrDKnkGzuGvhNAL56c7DBz29ZL+KxnoR0x7enabFceM=
78github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= 253github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo=
254github.com/prometheus/client_golang v1.3.0/go.mod h1:hJaj2vgQTGQmVCsAACORcieXFeDPbaTKGT+JTgUa3og=
255github.com/prometheus/client_golang v1.4.1 h1:FFSuS004yOQEtDdTq+TAOLP5xUq63KqAFYyOi8zA+Y8=
256github.com/prometheus/client_golang v1.4.1/go.mod h1:e9GMxYsXl05ICDXkRhurwBS4Q3OK1iX/F2sw+iXX5zU=
79github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910 h1:idejC8f05m9MGOsuEi1ATq9shN03HrxNkD/luQvxCv8= 257github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910 h1:idejC8f05m9MGOsuEi1ATq9shN03HrxNkD/luQvxCv8=
80github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= 258github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo=
259github.com/prometheus/client_model v0.0.0-20190115171406-56726106282f/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo=
81github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90 h1:S/YWwWx/RA8rT8tKFRuGUZhuA90OyIBpPCXkcbwU8DE= 260github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90 h1:S/YWwWx/RA8rT8tKFRuGUZhuA90OyIBpPCXkcbwU8DE=
82github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= 261github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
262github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
263github.com/prometheus/client_model v0.1.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
264github.com/prometheus/client_model v0.2.0 h1:uq5h0d+GuxiXLJLNABMgp2qUWDPiLvgCzz2dUR+/W/M=
265github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
266github.com/prometheus/common v0.2.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4=
83github.com/prometheus/common v0.4.1 h1:K0MGApIoQvMw27RTdJkPbr3JZ7DNbtxQNyi5STVM6Kw= 267github.com/prometheus/common v0.4.1 h1:K0MGApIoQvMw27RTdJkPbr3JZ7DNbtxQNyi5STVM6Kw=
84github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= 268github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4=
85github.com/prometheus/common v0.7.0 h1:L+1lyG48J1zAQXA3RBX/nG/B3gjlHq0zTt2tlbJLyCY= 269github.com/prometheus/common v0.7.0 h1:L+1lyG48J1zAQXA3RBX/nG/B3gjlHq0zTt2tlbJLyCY=
86github.com/prometheus/common v0.7.0/go.mod h1:DjGbpBbp5NYNiECxcL/VnbXCCaQpKd3tt26CguLLsqA= 270github.com/prometheus/common v0.7.0/go.mod h1:DjGbpBbp5NYNiECxcL/VnbXCCaQpKd3tt26CguLLsqA=
271github.com/prometheus/common v0.9.1 h1:KOMtN28tlbam3/7ZKEYKHhKoJZYYj3gMH4uc62x7X7U=
272github.com/prometheus/common v0.9.1/go.mod h1:yhUN8i9wzaXS3w1O07YhxHEBxD+W35wd8bs7vj7HSQ4=
87github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= 273github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk=
274github.com/prometheus/procfs v0.0.0-20190117184657-bf6a532e95b1/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk=
88github.com/prometheus/procfs v0.0.2 h1:6LJUbpNm42llc4HRCuvApCSWB/WfhuNo9K98Q9sNGfs= 275github.com/prometheus/procfs v0.0.2 h1:6LJUbpNm42llc4HRCuvApCSWB/WfhuNo9K98Q9sNGfs=
89github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= 276github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA=
277github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A=
90github.com/prometheus/procfs v0.0.10 h1:QJQN3jYQhkamO4mhfUWqdDH2asK7ONOI9MTWjyAxNKM= 278github.com/prometheus/procfs v0.0.10 h1:QJQN3jYQhkamO4mhfUWqdDH2asK7ONOI9MTWjyAxNKM=
91github.com/prometheus/procfs v0.0.10/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A= 279github.com/prometheus/procfs v0.0.10/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A=
280github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4=
281github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg=
282github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
283github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
284github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts=
285github.com/samuel/go-zookeeper v0.0.0-20190923202752-2cc03de413da/go.mod h1:gi+0XIa01GRL2eRQVjQkKGqKF3SF9vZR/HnPullcV2E=
286github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc=
287github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc=
92github.com/siebenmann/go-kstat v0.0.0-20160321171754-d34789b79745 h1:IuH7WumZNax0D+rEqmy2TyhKCzrtMGqbZO0b8rO00JA= 288github.com/siebenmann/go-kstat v0.0.0-20160321171754-d34789b79745 h1:IuH7WumZNax0D+rEqmy2TyhKCzrtMGqbZO0b8rO00JA=
93github.com/siebenmann/go-kstat v0.0.0-20160321171754-d34789b79745/go.mod h1:G81aIFAMS9ECrwBYR9YxhlPjWgrItd+Kje78O6+uqm8= 289github.com/siebenmann/go-kstat v0.0.0-20160321171754-d34789b79745/go.mod h1:G81aIFAMS9ECrwBYR9YxhlPjWgrItd+Kje78O6+uqm8=
94github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= 290github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo=
95github.com/sirupsen/logrus v1.4.2 h1:SPIRibHv4MatM3XXNO2BJeFLZwZ2LvZgfQ5+UNI2im4= 291github.com/sirupsen/logrus v1.4.2 h1:SPIRibHv4MatM3XXNO2BJeFLZwZ2LvZgfQ5+UNI2im4=
96github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= 292github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE=
293github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc=
294github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA=
295github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM=
296github.com/sony/gobreaker v0.4.1/go.mod h1:ZKptC7FHNvhBz7dN2LGjPVBz2sZJmc0/PkyDJOjmxWY=
97github.com/soundcloud/go-runit v0.0.0-20150630195641-06ad41a06c4a h1:os5OBNhwOwybXZMNLqT96XqtjdTtwRFw2w08uluvNeI= 297github.com/soundcloud/go-runit v0.0.0-20150630195641-06ad41a06c4a h1:os5OBNhwOwybXZMNLqT96XqtjdTtwRFw2w08uluvNeI=
98github.com/soundcloud/go-runit v0.0.0-20150630195641-06ad41a06c4a/go.mod h1:LeFCbQYJ3KJlPs/FvPz2dy1tkpxyeNESVyCNNzRXFR0= 298github.com/soundcloud/go-runit v0.0.0-20150630195641-06ad41a06c4a/go.mod h1:LeFCbQYJ3KJlPs/FvPz2dy1tkpxyeNESVyCNNzRXFR0=
299github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ=
300github.com/spf13/pflag v1.0.1/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=
301github.com/streadway/amqp v0.0.0-20190404075320-75d898a42a94/go.mod h1:AZpEONHx3DKn8O/DFsRAY58/XVQiIPMTMB1SddzLXVw=
302github.com/streadway/amqp v0.0.0-20190827072141-edfb9018d271/go.mod h1:AZpEONHx3DKn8O/DFsRAY58/XVQiIPMTMB1SddzLXVw=
303github.com/streadway/handy v0.0.0-20190108123426-d5acb3125c2a/go.mod h1:qNTQ5P5JnDBl6z3cMAg/SywNDC5ABu5ApDIw6lUbRmI=
99github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= 304github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
100github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= 305github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
101github.com/stretchr/testify v1.2.2 h1:bSDNvY7ZPG5RlJ8otE/7V6gMiyenm9RtJ7IUVIAoJ1w= 306github.com/stretchr/testify v1.2.2 h1:bSDNvY7ZPG5RlJ8otE/7V6gMiyenm9RtJ7IUVIAoJ1w=
102github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= 307github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
103github.com/stretchr/testify v1.3.0 h1:TivCn/peBQ7UY8ooIcPgZFpTNSz0Q2U6UrFlUfqbe0Q= 308github.com/stretchr/testify v1.3.0 h1:TivCn/peBQ7UY8ooIcPgZFpTNSz0Q2U6UrFlUfqbe0Q=
104github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= 309github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
310github.com/stretchr/testify v1.4.0 h1:2E4SXV/wtOkTonXsotYi4li6zVWxYlZuYNCXe9XRJyk=
311github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
312github.com/tmc/grpc-websocket-proxy v0.0.0-20170815181823-89b8d40f7ca8/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U=
313github.com/urfave/cli v1.20.0/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA=
314github.com/urfave/cli v1.22.1/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0=
315github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU=
316go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU=
317go.etcd.io/etcd v0.0.0-20191023171146-3cf2f69b5738/go.mod h1:dnLIgRNXwCJa5e+c6mIZCrds/GIG4ncV9HhK5PX7jPg=
318go.opencensus.io v0.20.1/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk=
319go.opencensus.io v0.20.2/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk=
320go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw=
105go.uber.org/atomic v1.3.2 h1:2Oa65PReHzfn29GpvgsYwloV9AVFHPDk8tYxt2c2tr4= 321go.uber.org/atomic v1.3.2 h1:2Oa65PReHzfn29GpvgsYwloV9AVFHPDk8tYxt2c2tr4=
106go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= 322go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE=
323go.uber.org/atomic v1.5.0 h1:OI5t8sDa1Or+q8AeE+yKeB/SDYioSHAgcVljj9JIETY=
324go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ=
325go.uber.org/atomic v1.5.1 h1:rsqfU5vBkVknbhUGbAUwQKR2H4ItV8tjJ+6kJX4cxHM=
326go.uber.org/atomic v1.5.1/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ=
107go.uber.org/multierr v1.1.0 h1:HoEmRHQPVSqub6w2z2d2EOVs2fjyFRGyofhKuyDq0QI= 327go.uber.org/multierr v1.1.0 h1:HoEmRHQPVSqub6w2z2d2EOVs2fjyFRGyofhKuyDq0QI=
108go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= 328go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0=
329go.uber.org/multierr v1.3.0/go.mod h1:VgVr7evmIr6uPjLBxg28wmKNXyqE9akIJ5XnfpiKl+4=
330go.uber.org/multierr v1.4.0 h1:f3WCSC2KzAcBXGATIxAB1E2XuCpNU255wNKZ505qi3E=
331go.uber.org/multierr v1.4.0/go.mod h1:VgVr7evmIr6uPjLBxg28wmKNXyqE9akIJ5XnfpiKl+4=
332go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee h1:0mgffUl7nfd+FpvXMVz4IDEaUSmT1ysygQC7qYo7sG4=
333go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee/go.mod h1:vJERXedbb3MVM5f9Ejo0C68/HhF8uaILCdgjnY+goOA=
334go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q=
335go.uber.org/zap v1.13.0/go.mod h1:zwrFLgMcdUuIBviXEYEH1YKNaOBnKXsx2IPda5bBwHM=
109golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= 336golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
337golang.org/x/crypto v0.0.0-20181029021203-45a5f77698d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
110golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= 338golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
339golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
340golang.org/x/crypto v0.0.0-20190701094942-4def268fd1a4/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
341golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
342golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
343golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
344golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU=
345golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
346golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
347golang.org/x/lint v0.0.0-20190930215403-16217165b5de h1:5hukYrvBGR8/eNkX5mdUezrA6JiaEZDtJb9Ei+1LlBs=
348golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
349golang.org/x/lint v0.0.0-20200130185559-910be7a94367 h1:0IiAsCRByjO2QjX7ZPkw5oU9x+n1YqRL802rjC0c3Aw=
350golang.org/x/lint v0.0.0-20200130185559-910be7a94367/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY=
351golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc=
352golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee h1:WG0RUwxtNT4qqaXX3DPA8zHFNm/D9xaBpxzHt1WcA/E=
353golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg=
354golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
355golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
356golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
357golang.org/x/net v0.0.0-20181023162649-9b4f9f5ad519/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
111golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= 358golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
359golang.org/x/net v0.0.0-20181201002055-351d144fa1fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
360golang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
361golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
362golang.org/x/net v0.0.0-20190125091013-d26f9f9a57f3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
363golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
112golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= 364golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
365golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
366golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks=
113golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= 367golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
368golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
369golang.org/x/net v0.0.0-20190813141303-74dc4d7220e7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
114golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297 h1:k7pJ2yAPLPgbskkFdhRCsA77k2fySZ1zf2zCjvQCiIM= 370golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297 h1:k7pJ2yAPLPgbskkFdhRCsA77k2fySZ1zf2zCjvQCiIM=
115golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= 371golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
372golang.org/x/net v0.0.0-20191007182048-72f939374954 h1:JGZucVF/L/TotR719NbujzadOZ2AgnYlqphQGHDCKaU=
373golang.org/x/net v0.0.0-20191007182048-72f939374954/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
374golang.org/x/net v0.0.0-20200202094626-16171245cfb2 h1:CCH4IOTTfewWjGOlSp+zGcjutRKlBEZQ6wTn8ozI/nI=
375golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
376golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
377golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
378golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
116golang.org/x/sync v0.0.0-20181108010431-42b317875d0f h1:Bl/8QSvNqXvPGPGXa2z5xUTmV7VDcZyvRZ+QQXkXTZQ= 379golang.org/x/sync v0.0.0-20181108010431-42b317875d0f h1:Bl/8QSvNqXvPGPGXa2z5xUTmV7VDcZyvRZ+QQXkXTZQ=
117golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= 380golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
118golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4 h1:YUO/7uOKsKeq9UokNS62b8FYywz3ker1l1vDZRCRefw= 381golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4 h1:YUO/7uOKsKeq9UokNS62b8FYywz3ker1l1vDZRCRefw=
119golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= 382golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
383golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
384golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
120golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e h1:vcxGaoTs7kV8m5Np9uUNQin4BrLOthgV7252N8V+FwY= 385golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e h1:vcxGaoTs7kV8m5Np9uUNQin4BrLOthgV7252N8V+FwY=
121golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= 386golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
387golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
388golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
122golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= 389golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
390golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
391golang.org/x/sys v0.0.0-20181026203630-95b1ffbd15a5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
392golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
123golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= 393golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
394golang.org/x/sys v0.0.0-20181122145206-62eef0e2fa9b/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
124golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= 395golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
125golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 396golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
126golang.org/x/sys v0.0.0-20190411185658-b44545bcd369/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 397golang.org/x/sys v0.0.0-20190411185658-b44545bcd369/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
398golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
127golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 399golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
400golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
401golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
128golang.org/x/sys v0.0.0-20190826190057-c7b8b68b1456/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 402golang.org/x/sys v0.0.0-20190826190057-c7b8b68b1456/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
129golang.org/x/sys v0.0.0-20190902133755-9109b7679e13 h1:tdsQdquKbTNMsSZLqnLELJGzCANp9oXhu6zFBW6ODx4= 403golang.org/x/sys v0.0.0-20190902133755-9109b7679e13 h1:tdsQdquKbTNMsSZLqnLELJGzCANp9oXhu6zFBW6ODx4=
130golang.org/x/sys v0.0.0-20190902133755-9109b7679e13/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 404golang.org/x/sys v0.0.0-20190902133755-9109b7679e13/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
405golang.org/x/sys v0.0.0-20191008105621-543471e840be h1:QAcqgptGM8IQBC9K/RC4o+O9YmqEm0diQn9QmZw/0mU=
406golang.org/x/sys v0.0.0-20191008105621-543471e840be/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
407golang.org/x/sys v0.0.0-20191220142924-d4481acd189f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
408golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
409golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
410golang.org/x/sys v0.0.0-20200217220822-9197077df867 h1:JoRuNIf+rpHl+VhScRQQvzbHed86tKkqwPMV34T8myw=
411golang.org/x/sys v0.0.0-20200217220822-9197077df867/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
131golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= 412golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
413golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
414golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
415golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
416golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
417golang.org/x/tools v0.0.0-20180828015842-6cd1fcedba52/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
418golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
419golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
420golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY=
421golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
422golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
423golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
424golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
425golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
426golang.org/x/tools v0.0.0-20191029041327-9cc4af7d6b2c/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
427golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5 h1:hKsoRgsbwY1NafxrwTs+k64bikrLBkAgPir1TNCj3Zs=
428golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
429golang.org/x/tools v0.0.0-20200103221440-774c71fcf114/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
430golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
431golang.org/x/tools v0.0.0-20200216192241-b320d3a0f5a2 h1:0sfSpGSa544Fwnbot3Oxq/U6SXqjty6Jy/3wRhVS7ig=
432golang.org/x/tools v0.0.0-20200216192241-b320d3a0f5a2/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
433golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
434golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
435golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4=
436golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
437google.golang.org/api v0.3.1/go.mod h1:6wY9I6uQWHQ8EM57III9mq/AjF+i8G65rmVagqKMtkk=
438google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM=
439google.golang.org/appengine v1.2.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
440google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
441google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc=
442google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=
443google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=
444google.golang.org/genproto v0.0.0-20190530194941-fb225487d101/go.mod h1:z3L6/3dTEVtUr6QSP8miRzeRqwQOioJ9I66odjN4I7s=
445google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc=
446google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs=
447google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
448google.golang.org/grpc v1.20.0/go.mod h1:chYK+tFQF0nDUGJgXMSgLCQk3phJEuONr2DCgLDdAQM=
449google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38=
450google.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM=
451google.golang.org/grpc v1.22.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg=
452google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg=
453google.golang.org/grpc v1.23.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg=
454google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk=
132gopkg.in/alecthomas/kingpin.v2 v2.2.6 h1:jMFz6MfLP0/4fUyZle81rXUoxOBFi19VUFKVDOQfozc= 455gopkg.in/alecthomas/kingpin.v2 v2.2.6 h1:jMFz6MfLP0/4fUyZle81rXUoxOBFi19VUFKVDOQfozc=
133gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= 456gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw=
134gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= 457gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM=
135gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= 458gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
459gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
460gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 h1:YR8cESwS4TdDjEe65xsg0ogRM/Nc3DYOhEAlW+xobZo=
461gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
462gopkg.in/cheggaaa/pb.v1 v1.0.25/go.mod h1:V/YB90LKu/1FcN3WVnfiiE5oMCibMjukxqG/qStrOgw=
463gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI=
464gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys=
465gopkg.in/gcfg.v1 v1.2.3/go.mod h1:yesOnuUOFQAhST5vPY4nbZsb/huCgGGXlipJsBn0b3o=
466gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo=
467gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw=
468gopkg.in/warnings.v0 v0.1.2/go.mod h1:jksf8JmL6Qr/oQM2OXTHunEvvTAsrWBLb6OOjuVWRNI=
469gopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74=
136gopkg.in/yaml.v2 v2.2.1 h1:mUhvW9EsL+naU5Q3cakzfE91YhliOondGd6ZrsDBHQE= 470gopkg.in/yaml.v2 v2.2.1 h1:mUhvW9EsL+naU5Q3cakzfE91YhliOondGd6ZrsDBHQE=
137gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= 471gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
138gopkg.in/yaml.v2 v2.2.2 h1:ZCJp+EgiOT7lHqUV2J862kp8Qj64Jo6az82+3Td9dZw= 472gopkg.in/yaml.v2 v2.2.2 h1:ZCJp+EgiOT7lHqUV2J862kp8Qj64Jo6az82+3Td9dZw=
139gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= 473gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
474gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
475gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
476gopkg.in/yaml.v2 v2.2.8 h1:obN1ZagJSUGI0Ek/LBmuj4SNLPfIny3KsKFopxRdj10=
477gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
478honnef.co/go/tools v0.0.0-20180728063816-88497007e858/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
479honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
480honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
481honnef.co/go/tools v0.0.1-2019.2.3 h1:3JgtbtFHMiCmsznwGVTUWbgGov+pVqnlf1dEJTNAXeM=
482honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg=
483sigs.k8s.io/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o=
484sourcegraph.com/sourcegraph/appdash v0.0.0-20190731080439-ebfcffb1b5c0/go.mod h1:hI742Nqp5OhwiqlzhgfbWU4mW4yO10fP+LoT9WOswdU=
diff --git a/vendor/github.com/BurntSushi/toml/.gitignore b/vendor/github.com/BurntSushi/toml/.gitignore
new file mode 100644
index 0000000..0cd3800
--- /dev/null
+++ b/vendor/github.com/BurntSushi/toml/.gitignore
@@ -0,0 +1,5 @@
1TAGS
2tags
3.*.swp
4tomlcheck/tomlcheck
5toml.test
diff --git a/vendor/github.com/BurntSushi/toml/.travis.yml b/vendor/github.com/BurntSushi/toml/.travis.yml
new file mode 100644
index 0000000..8b8afc4
--- /dev/null
+++ b/vendor/github.com/BurntSushi/toml/.travis.yml
@@ -0,0 +1,15 @@
1language: go
2go:
3 - 1.1
4 - 1.2
5 - 1.3
6 - 1.4
7 - 1.5
8 - 1.6
9 - tip
10install:
11 - go install ./...
12 - go get github.com/BurntSushi/toml-test
13script:
14 - export PATH="$PATH:$HOME/gopath/bin"
15 - make test
diff --git a/vendor/github.com/BurntSushi/toml/COMPATIBLE b/vendor/github.com/BurntSushi/toml/COMPATIBLE
new file mode 100644
index 0000000..6efcfd0
--- /dev/null
+++ b/vendor/github.com/BurntSushi/toml/COMPATIBLE
@@ -0,0 +1,3 @@
1Compatible with TOML version
2[v0.4.0](https://github.com/toml-lang/toml/blob/v0.4.0/versions/en/toml-v0.4.0.md)
3
diff --git a/vendor/github.com/BurntSushi/toml/COPYING b/vendor/github.com/BurntSushi/toml/COPYING
new file mode 100644
index 0000000..01b5743
--- /dev/null
+++ b/vendor/github.com/BurntSushi/toml/COPYING
@@ -0,0 +1,21 @@
1The MIT License (MIT)
2
3Copyright (c) 2013 TOML authors
4
5Permission is hereby granted, free of charge, to any person obtaining a copy
6of this software and associated documentation files (the "Software"), to deal
7in the Software without restriction, including without limitation the rights
8to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9copies of the Software, and to permit persons to whom the Software is
10furnished to do so, subject to the following conditions:
11
12The above copyright notice and this permission notice shall be included in
13all copies or substantial portions of the Software.
14
15THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21THE SOFTWARE.
diff --git a/vendor/github.com/BurntSushi/toml/Makefile b/vendor/github.com/BurntSushi/toml/Makefile
new file mode 100644
index 0000000..3600848
--- /dev/null
+++ b/vendor/github.com/BurntSushi/toml/Makefile
@@ -0,0 +1,19 @@
1install:
2 go install ./...
3
4test: install
5 go test -v
6 toml-test toml-test-decoder
7 toml-test -encoder toml-test-encoder
8
9fmt:
10 gofmt -w *.go */*.go
11 colcheck *.go */*.go
12
13tags:
14 find ./ -name '*.go' -print0 | xargs -0 gotags > TAGS
15
16push:
17 git push origin master
18 git push github master
19
diff --git a/vendor/github.com/BurntSushi/toml/README.md b/vendor/github.com/BurntSushi/toml/README.md
new file mode 100644
index 0000000..7c1b37e
--- /dev/null
+++ b/vendor/github.com/BurntSushi/toml/README.md
@@ -0,0 +1,218 @@
1## TOML parser and encoder for Go with reflection
2
3TOML stands for Tom's Obvious, Minimal Language. This Go package provides a
4reflection interface similar to Go's standard library `json` and `xml`
5packages. This package also supports the `encoding.TextUnmarshaler` and
6`encoding.TextMarshaler` interfaces so that you can define custom data
7representations. (There is an example of this below.)
8
9Spec: https://github.com/toml-lang/toml
10
11Compatible with TOML version
12[v0.4.0](https://github.com/toml-lang/toml/blob/master/versions/en/toml-v0.4.0.md)
13
14Documentation: https://godoc.org/github.com/BurntSushi/toml
15
16Installation:
17
18```bash
19go get github.com/BurntSushi/toml
20```
21
22Try the toml validator:
23
24```bash
25go get github.com/BurntSushi/toml/cmd/tomlv
26tomlv some-toml-file.toml
27```
28
29[![Build Status](https://travis-ci.org/BurntSushi/toml.svg?branch=master)](https://travis-ci.org/BurntSushi/toml) [![GoDoc](https://godoc.org/github.com/BurntSushi/toml?status.svg)](https://godoc.org/github.com/BurntSushi/toml)
30
31### Testing
32
33This package passes all tests in
34[toml-test](https://github.com/BurntSushi/toml-test) for both the decoder
35and the encoder.
36
37### Examples
38
39This package works similarly to how the Go standard library handles `XML`
40and `JSON`. Namely, data is loaded into Go values via reflection.
41
42For the simplest example, consider some TOML file as just a list of keys
43and values:
44
45```toml
46Age = 25
47Cats = [ "Cauchy", "Plato" ]
48Pi = 3.14
49Perfection = [ 6, 28, 496, 8128 ]
50DOB = 1987-07-05T05:45:00Z
51```
52
53Which could be defined in Go as:
54
55```go
56type Config struct {
57 Age int
58 Cats []string
59 Pi float64
60 Perfection []int
61 DOB time.Time // requires `import time`
62}
63```
64
65And then decoded with:
66
67```go
68var conf Config
69if _, err := toml.Decode(tomlData, &conf); err != nil {
70 // handle error
71}
72```
73
74You can also use struct tags if your struct field name doesn't map to a TOML
75key value directly:
76
77```toml
78some_key_NAME = "wat"
79```
80
81```go
82type TOML struct {
83 ObscureKey string `toml:"some_key_NAME"`
84}
85```
86
87### Using the `encoding.TextUnmarshaler` interface
88
89Here's an example that automatically parses duration strings into
90`time.Duration` values:
91
92```toml
93[[song]]
94name = "Thunder Road"
95duration = "4m49s"
96
97[[song]]
98name = "Stairway to Heaven"
99duration = "8m03s"
100```
101
102Which can be decoded with:
103
104```go
105type song struct {
106 Name string
107 Duration duration
108}
109type songs struct {
110 Song []song
111}
112var favorites songs
113if _, err := toml.Decode(blob, &favorites); err != nil {
114 log.Fatal(err)
115}
116
117for _, s := range favorites.Song {
118 fmt.Printf("%s (%s)\n", s.Name, s.Duration)
119}
120```
121
122And you'll also need a `duration` type that satisfies the
123`encoding.TextUnmarshaler` interface:
124
125```go
126type duration struct {
127 time.Duration
128}
129
130func (d *duration) UnmarshalText(text []byte) error {
131 var err error
132 d.Duration, err = time.ParseDuration(string(text))
133 return err
134}
135```
136
137### More complex usage
138
139Here's an example of how to load the example from the official spec page:
140
141```toml
142# This is a TOML document. Boom.
143
144title = "TOML Example"
145
146[owner]
147name = "Tom Preston-Werner"
148organization = "GitHub"
149bio = "GitHub Cofounder & CEO\nLikes tater tots and beer."
150dob = 1979-05-27T07:32:00Z # First class dates? Why not?
151
152[database]
153server = "192.168.1.1"
154ports = [ 8001, 8001, 8002 ]
155connection_max = 5000
156enabled = true
157
158[servers]
159
160 # You can indent as you please. Tabs or spaces. TOML don't care.
161 [servers.alpha]
162 ip = "10.0.0.1"
163 dc = "eqdc10"
164
165 [servers.beta]
166 ip = "10.0.0.2"
167 dc = "eqdc10"
168
169[clients]
170data = [ ["gamma", "delta"], [1, 2] ] # just an update to make sure parsers support it
171
172# Line breaks are OK when inside arrays
173hosts = [
174 "alpha",
175 "omega"
176]
177```
178
179And the corresponding Go types are:
180
181```go
182type tomlConfig struct {
183 Title string
184 Owner ownerInfo
185 DB database `toml:"database"`
186 Servers map[string]server
187 Clients clients
188}
189
190type ownerInfo struct {
191 Name string
192 Org string `toml:"organization"`
193 Bio string
194 DOB time.Time
195}
196
197type database struct {
198 Server string
199 Ports []int
200 ConnMax int `toml:"connection_max"`
201 Enabled bool
202}
203
204type server struct {
205 IP string
206 DC string
207}
208
209type clients struct {
210 Data [][]interface{}
211 Hosts []string
212}
213```
214
215Note that a case insensitive match will be tried if an exact match can't be
216found.
217
218A working example of the above can be found in `_examples/example.{go,toml}`.
diff --git a/vendor/github.com/BurntSushi/toml/decode.go b/vendor/github.com/BurntSushi/toml/decode.go
new file mode 100644
index 0000000..b0fd51d
--- /dev/null
+++ b/vendor/github.com/BurntSushi/toml/decode.go
@@ -0,0 +1,509 @@
1package toml
2
3import (
4 "fmt"
5 "io"
6 "io/ioutil"
7 "math"
8 "reflect"
9 "strings"
10 "time"
11)
12
13func e(format string, args ...interface{}) error {
14 return fmt.Errorf("toml: "+format, args...)
15}
16
17// Unmarshaler is the interface implemented by objects that can unmarshal a
18// TOML description of themselves.
19type Unmarshaler interface {
20 UnmarshalTOML(interface{}) error
21}
22
23// Unmarshal decodes the contents of `p` in TOML format into a pointer `v`.
24func Unmarshal(p []byte, v interface{}) error {
25 _, err := Decode(string(p), v)
26 return err
27}
28
29// Primitive is a TOML value that hasn't been decoded into a Go value.
30// When using the various `Decode*` functions, the type `Primitive` may
31// be given to any value, and its decoding will be delayed.
32//
33// A `Primitive` value can be decoded using the `PrimitiveDecode` function.
34//
35// The underlying representation of a `Primitive` value is subject to change.
36// Do not rely on it.
37//
38// N.B. Primitive values are still parsed, so using them will only avoid
39// the overhead of reflection. They can be useful when you don't know the
40// exact type of TOML data until run time.
41type Primitive struct {
42 undecoded interface{}
43 context Key
44}
45
46// DEPRECATED!
47//
48// Use MetaData.PrimitiveDecode instead.
49func PrimitiveDecode(primValue Primitive, v interface{}) error {
50 md := MetaData{decoded: make(map[string]bool)}
51 return md.unify(primValue.undecoded, rvalue(v))
52}
53
54// PrimitiveDecode is just like the other `Decode*` functions, except it
55// decodes a TOML value that has already been parsed. Valid primitive values
56// can *only* be obtained from values filled by the decoder functions,
57// including this method. (i.e., `v` may contain more `Primitive`
58// values.)
59//
60// Meta data for primitive values is included in the meta data returned by
61// the `Decode*` functions with one exception: keys returned by the Undecoded
62// method will only reflect keys that were decoded. Namely, any keys hidden
63// behind a Primitive will be considered undecoded. Executing this method will
64// update the undecoded keys in the meta data. (See the example.)
65func (md *MetaData) PrimitiveDecode(primValue Primitive, v interface{}) error {
66 md.context = primValue.context
67 defer func() { md.context = nil }()
68 return md.unify(primValue.undecoded, rvalue(v))
69}
70
71// Decode will decode the contents of `data` in TOML format into a pointer
72// `v`.
73//
74// TOML hashes correspond to Go structs or maps. (Dealer's choice. They can be
75// used interchangeably.)
76//
77// TOML arrays of tables correspond to either a slice of structs or a slice
78// of maps.
79//
80// TOML datetimes correspond to Go `time.Time` values.
81//
82// All other TOML types (float, string, int, bool and array) correspond
83// to the obvious Go types.
84//
85// An exception to the above rules is if a type implements the
86// encoding.TextUnmarshaler interface. In this case, any primitive TOML value
87// (floats, strings, integers, booleans and datetimes) will be converted to
88// a byte string and given to the value's UnmarshalText method. See the
89// Unmarshaler example for a demonstration with time duration strings.
90//
91// Key mapping
92//
93// TOML keys can map to either keys in a Go map or field names in a Go
94// struct. The special `toml` struct tag may be used to map TOML keys to
95// struct fields that don't match the key name exactly. (See the example.)
96// A case insensitive match to struct names will be tried if an exact match
97// can't be found.
98//
99// The mapping between TOML values and Go values is loose. That is, there
100// may exist TOML values that cannot be placed into your representation, and
101// there may be parts of your representation that do not correspond to
102// TOML values. This loose mapping can be made stricter by using the IsDefined
103// and/or Undecoded methods on the MetaData returned.
104//
105// This decoder will not handle cyclic types. If a cyclic type is passed,
106// `Decode` will not terminate.
107func Decode(data string, v interface{}) (MetaData, error) {
108 rv := reflect.ValueOf(v)
109 if rv.Kind() != reflect.Ptr {
110 return MetaData{}, e("Decode of non-pointer %s", reflect.TypeOf(v))
111 }
112 if rv.IsNil() {
113 return MetaData{}, e("Decode of nil %s", reflect.TypeOf(v))
114 }
115 p, err := parse(data)
116 if err != nil {
117 return MetaData{}, err
118 }
119 md := MetaData{
120 p.mapping, p.types, p.ordered,
121 make(map[string]bool, len(p.ordered)), nil,
122 }
123 return md, md.unify(p.mapping, indirect(rv))
124}
125
126// DecodeFile is just like Decode, except it will automatically read the
127// contents of the file at `fpath` and decode it for you.
128func DecodeFile(fpath string, v interface{}) (MetaData, error) {
129 bs, err := ioutil.ReadFile(fpath)
130 if err != nil {
131 return MetaData{}, err
132 }
133 return Decode(string(bs), v)
134}
135
136// DecodeReader is just like Decode, except it will consume all bytes
137// from the reader and decode it for you.
138func DecodeReader(r io.Reader, v interface{}) (MetaData, error) {
139 bs, err := ioutil.ReadAll(r)
140 if err != nil {
141 return MetaData{}, err
142 }
143 return Decode(string(bs), v)
144}
145
146// unify performs a sort of type unification based on the structure of `rv`,
147// which is the client representation.
148//
149// Any type mismatch produces an error. Finding a type that we don't know
150// how to handle produces an unsupported type error.
151func (md *MetaData) unify(data interface{}, rv reflect.Value) error {
152
153 // Special case. Look for a `Primitive` value.
154 if rv.Type() == reflect.TypeOf((*Primitive)(nil)).Elem() {
155 // Save the undecoded data and the key context into the primitive
156 // value.
157 context := make(Key, len(md.context))
158 copy(context, md.context)
159 rv.Set(reflect.ValueOf(Primitive{
160 undecoded: data,
161 context: context,
162 }))
163 return nil
164 }
165
166 // Special case. Unmarshaler Interface support.
167 if rv.CanAddr() {
168 if v, ok := rv.Addr().Interface().(Unmarshaler); ok {
169 return v.UnmarshalTOML(data)
170 }
171 }
172
173 // Special case. Handle time.Time values specifically.
174 // TODO: Remove this code when we decide to drop support for Go 1.1.
175 // This isn't necessary in Go 1.2 because time.Time satisfies the encoding
176 // interfaces.
177 if rv.Type().AssignableTo(rvalue(time.Time{}).Type()) {
178 return md.unifyDatetime(data, rv)
179 }
180
181 // Special case. Look for a value satisfying the TextUnmarshaler interface.
182 if v, ok := rv.Interface().(TextUnmarshaler); ok {
183 return md.unifyText(data, v)
184 }
185 // BUG(burntsushi)
186 // The behavior here is incorrect whenever a Go type satisfies the
187 // encoding.TextUnmarshaler interface but also corresponds to a TOML
188 // hash or array. In particular, the unmarshaler should only be applied
189 // to primitive TOML values. But at this point, it will be applied to
190 // all kinds of values and produce an incorrect error whenever those values
191 // are hashes or arrays (including arrays of tables).
192
193 k := rv.Kind()
194
195 // laziness
196 if k >= reflect.Int && k <= reflect.Uint64 {
197 return md.unifyInt(data, rv)
198 }
199 switch k {
200 case reflect.Ptr:
201 elem := reflect.New(rv.Type().Elem())
202 err := md.unify(data, reflect.Indirect(elem))
203 if err != nil {
204 return err
205 }
206 rv.Set(elem)
207 return nil
208 case reflect.Struct:
209 return md.unifyStruct(data, rv)
210 case reflect.Map:
211 return md.unifyMap(data, rv)
212 case reflect.Array:
213 return md.unifyArray(data, rv)
214 case reflect.Slice:
215 return md.unifySlice(data, rv)
216 case reflect.String:
217 return md.unifyString(data, rv)
218 case reflect.Bool:
219 return md.unifyBool(data, rv)
220 case reflect.Interface:
221 // we only support empty interfaces.
222 if rv.NumMethod() > 0 {
223 return e("unsupported type %s", rv.Type())
224 }
225 return md.unifyAnything(data, rv)
226 case reflect.Float32:
227 fallthrough
228 case reflect.Float64:
229 return md.unifyFloat64(data, rv)
230 }
231 return e("unsupported type %s", rv.Kind())
232}
233
234func (md *MetaData) unifyStruct(mapping interface{}, rv reflect.Value) error {
235 tmap, ok := mapping.(map[string]interface{})
236 if !ok {
237 if mapping == nil {
238 return nil
239 }
240 return e("type mismatch for %s: expected table but found %T",
241 rv.Type().String(), mapping)
242 }
243
244 for key, datum := range tmap {
245 var f *field
246 fields := cachedTypeFields(rv.Type())
247 for i := range fields {
248 ff := &fields[i]
249 if ff.name == key {
250 f = ff
251 break
252 }
253 if f == nil && strings.EqualFold(ff.name, key) {
254 f = ff
255 }
256 }
257 if f != nil {
258 subv := rv
259 for _, i := range f.index {
260 subv = indirect(subv.Field(i))
261 }
262 if isUnifiable(subv) {
263 md.decoded[md.context.add(key).String()] = true
264 md.context = append(md.context, key)
265 if err := md.unify(datum, subv); err != nil {
266 return err
267 }
268 md.context = md.context[0 : len(md.context)-1]
269 } else if f.name != "" {
270 // Bad user! No soup for you!
271 return e("cannot write unexported field %s.%s",
272 rv.Type().String(), f.name)
273 }
274 }
275 }
276 return nil
277}
278
279func (md *MetaData) unifyMap(mapping interface{}, rv reflect.Value) error {
280 tmap, ok := mapping.(map[string]interface{})
281 if !ok {
282 if tmap == nil {
283 return nil
284 }
285 return badtype("map", mapping)
286 }
287 if rv.IsNil() {
288 rv.Set(reflect.MakeMap(rv.Type()))
289 }
290 for k, v := range tmap {
291 md.decoded[md.context.add(k).String()] = true
292 md.context = append(md.context, k)
293
294 rvkey := indirect(reflect.New(rv.Type().Key()))
295 rvval := reflect.Indirect(reflect.New(rv.Type().Elem()))
296 if err := md.unify(v, rvval); err != nil {
297 return err
298 }
299 md.context = md.context[0 : len(md.context)-1]
300
301 rvkey.SetString(k)
302 rv.SetMapIndex(rvkey, rvval)
303 }
304 return nil
305}
306
307func (md *MetaData) unifyArray(data interface{}, rv reflect.Value) error {
308 datav := reflect.ValueOf(data)
309 if datav.Kind() != reflect.Slice {
310 if !datav.IsValid() {
311 return nil
312 }
313 return badtype("slice", data)
314 }
315 sliceLen := datav.Len()
316 if sliceLen != rv.Len() {
317 return e("expected array length %d; got TOML array of length %d",
318 rv.Len(), sliceLen)
319 }
320 return md.unifySliceArray(datav, rv)
321}
322
323func (md *MetaData) unifySlice(data interface{}, rv reflect.Value) error {
324 datav := reflect.ValueOf(data)
325 if datav.Kind() != reflect.Slice {
326 if !datav.IsValid() {
327 return nil
328 }
329 return badtype("slice", data)
330 }
331 n := datav.Len()
332 if rv.IsNil() || rv.Cap() < n {
333 rv.Set(reflect.MakeSlice(rv.Type(), n, n))
334 }
335 rv.SetLen(n)
336 return md.unifySliceArray(datav, rv)
337}
338
339func (md *MetaData) unifySliceArray(data, rv reflect.Value) error {
340 sliceLen := data.Len()
341 for i := 0; i < sliceLen; i++ {
342 v := data.Index(i).Interface()
343 sliceval := indirect(rv.Index(i))
344 if err := md.unify(v, sliceval); err != nil {
345 return err
346 }
347 }
348 return nil
349}
350
351func (md *MetaData) unifyDatetime(data interface{}, rv reflect.Value) error {
352 if _, ok := data.(time.Time); ok {
353 rv.Set(reflect.ValueOf(data))
354 return nil
355 }
356 return badtype("time.Time", data)
357}
358
359func (md *MetaData) unifyString(data interface{}, rv reflect.Value) error {
360 if s, ok := data.(string); ok {
361 rv.SetString(s)
362 return nil
363 }
364 return badtype("string", data)
365}
366
367func (md *MetaData) unifyFloat64(data interface{}, rv reflect.Value) error {
368 if num, ok := data.(float64); ok {
369 switch rv.Kind() {
370 case reflect.Float32:
371 fallthrough
372 case reflect.Float64:
373 rv.SetFloat(num)
374 default:
375 panic("bug")
376 }
377 return nil
378 }
379 return badtype("float", data)
380}
381
382func (md *MetaData) unifyInt(data interface{}, rv reflect.Value) error {
383 if num, ok := data.(int64); ok {
384 if rv.Kind() >= reflect.Int && rv.Kind() <= reflect.Int64 {
385 switch rv.Kind() {
386 case reflect.Int, reflect.Int64:
387 // No bounds checking necessary.
388 case reflect.Int8:
389 if num < math.MinInt8 || num > math.MaxInt8 {
390 return e("value %d is out of range for int8", num)
391 }
392 case reflect.Int16:
393 if num < math.MinInt16 || num > math.MaxInt16 {
394 return e("value %d is out of range for int16", num)
395 }
396 case reflect.Int32:
397 if num < math.MinInt32 || num > math.MaxInt32 {
398 return e("value %d is out of range for int32", num)
399 }
400 }
401 rv.SetInt(num)
402 } else if rv.Kind() >= reflect.Uint && rv.Kind() <= reflect.Uint64 {
403 unum := uint64(num)
404 switch rv.Kind() {
405 case reflect.Uint, reflect.Uint64:
406 // No bounds checking necessary.
407 case reflect.Uint8:
408 if num < 0 || unum > math.MaxUint8 {
409 return e("value %d is out of range for uint8", num)
410 }
411 case reflect.Uint16:
412 if num < 0 || unum > math.MaxUint16 {
413 return e("value %d is out of range for uint16", num)
414 }
415 case reflect.Uint32:
416 if num < 0 || unum > math.MaxUint32 {
417 return e("value %d is out of range for uint32", num)
418 }
419 }
420 rv.SetUint(unum)
421 } else {
422 panic("unreachable")
423 }
424 return nil
425 }
426 return badtype("integer", data)
427}
428
429func (md *MetaData) unifyBool(data interface{}, rv reflect.Value) error {
430 if b, ok := data.(bool); ok {
431 rv.SetBool(b)
432 return nil
433 }
434 return badtype("boolean", data)
435}
436
437func (md *MetaData) unifyAnything(data interface{}, rv reflect.Value) error {
438 rv.Set(reflect.ValueOf(data))
439 return nil
440}
441
442func (md *MetaData) unifyText(data interface{}, v TextUnmarshaler) error {
443 var s string
444 switch sdata := data.(type) {
445 case TextMarshaler:
446 text, err := sdata.MarshalText()
447 if err != nil {
448 return err
449 }
450 s = string(text)
451 case fmt.Stringer:
452 s = sdata.String()
453 case string:
454 s = sdata
455 case bool:
456 s = fmt.Sprintf("%v", sdata)
457 case int64:
458 s = fmt.Sprintf("%d", sdata)
459 case float64:
460 s = fmt.Sprintf("%f", sdata)
461 default:
462 return badtype("primitive (string-like)", data)
463 }
464 if err := v.UnmarshalText([]byte(s)); err != nil {
465 return err
466 }
467 return nil
468}
469
470// rvalue returns a reflect.Value of `v`. All pointers are resolved.
471func rvalue(v interface{}) reflect.Value {
472 return indirect(reflect.ValueOf(v))
473}
474
475// indirect returns the value pointed to by a pointer.
476// Pointers are followed until the value is not a pointer.
477// New values are allocated for each nil pointer.
478//
479// An exception to this rule is if the value satisfies an interface of
480// interest to us (like encoding.TextUnmarshaler).
481func indirect(v reflect.Value) reflect.Value {
482 if v.Kind() != reflect.Ptr {
483 if v.CanSet() {
484 pv := v.Addr()
485 if _, ok := pv.Interface().(TextUnmarshaler); ok {
486 return pv
487 }
488 }
489 return v
490 }
491 if v.IsNil() {
492 v.Set(reflect.New(v.Type().Elem()))
493 }
494 return indirect(reflect.Indirect(v))
495}
496
497func isUnifiable(rv reflect.Value) bool {
498 if rv.CanSet() {
499 return true
500 }
501 if _, ok := rv.Interface().(TextUnmarshaler); ok {
502 return true
503 }
504 return false
505}
506
507func badtype(expected string, data interface{}) error {
508 return e("cannot load TOML value of type %T into a Go %s", data, expected)
509}
diff --git a/vendor/github.com/BurntSushi/toml/decode_meta.go b/vendor/github.com/BurntSushi/toml/decode_meta.go
new file mode 100644
index 0000000..b9914a6
--- /dev/null
+++ b/vendor/github.com/BurntSushi/toml/decode_meta.go
@@ -0,0 +1,121 @@
1package toml
2
3import "strings"
4
5// MetaData allows access to meta information about TOML data that may not
6// be inferrable via reflection. In particular, whether a key has been defined
7// and the TOML type of a key.
8type MetaData struct {
9 mapping map[string]interface{}
10 types map[string]tomlType
11 keys []Key
12 decoded map[string]bool
13 context Key // Used only during decoding.
14}
15
16// IsDefined returns true if the key given exists in the TOML data. The key
17// should be specified hierarchially. e.g.,
18//
19// // access the TOML key 'a.b.c'
20// IsDefined("a", "b", "c")
21//
22// IsDefined will return false if an empty key given. Keys are case sensitive.
23func (md *MetaData) IsDefined(key ...string) bool {
24 if len(key) == 0 {
25 return false
26 }
27
28 var hash map[string]interface{}
29 var ok bool
30 var hashOrVal interface{} = md.mapping
31 for _, k := range key {
32 if hash, ok = hashOrVal.(map[string]interface{}); !ok {
33 return false
34 }
35 if hashOrVal, ok = hash[k]; !ok {
36 return false
37 }
38 }
39 return true
40}
41
42// Type returns a string representation of the type of the key specified.
43//
44// Type will return the empty string if given an empty key or a key that
45// does not exist. Keys are case sensitive.
46func (md *MetaData) Type(key ...string) string {
47 fullkey := strings.Join(key, ".")
48 if typ, ok := md.types[fullkey]; ok {
49 return typ.typeString()
50 }
51 return ""
52}
53
54// Key is the type of any TOML key, including key groups. Use (MetaData).Keys
55// to get values of this type.
56type Key []string
57
58func (k Key) String() string {
59 return strings.Join(k, ".")
60}
61
62func (k Key) maybeQuotedAll() string {
63 var ss []string
64 for i := range k {
65 ss = append(ss, k.maybeQuoted(i))
66 }
67 return strings.Join(ss, ".")
68}
69
70func (k Key) maybeQuoted(i int) string {
71 quote := false
72 for _, c := range k[i] {
73 if !isBareKeyChar(c) {
74 quote = true
75 break
76 }
77 }
78 if quote {
79 return "\"" + strings.Replace(k[i], "\"", "\\\"", -1) + "\""
80 }
81 return k[i]
82}
83
84func (k Key) add(piece string) Key {
85 newKey := make(Key, len(k)+1)
86 copy(newKey, k)
87 newKey[len(k)] = piece
88 return newKey
89}
90
91// Keys returns a slice of every key in the TOML data, including key groups.
92// Each key is itself a slice, where the first element is the top of the
93// hierarchy and the last is the most specific.
94//
95// The list will have the same order as the keys appeared in the TOML data.
96//
97// All keys returned are non-empty.
98func (md *MetaData) Keys() []Key {
99 return md.keys
100}
101
102// Undecoded returns all keys that have not been decoded in the order in which
103// they appear in the original TOML document.
104//
105// This includes keys that haven't been decoded because of a Primitive value.
106// Once the Primitive value is decoded, the keys will be considered decoded.
107//
108// Also note that decoding into an empty interface will result in no decoding,
109// and so no keys will be considered decoded.
110//
111// In this sense, the Undecoded keys correspond to keys in the TOML document
112// that do not have a concrete type in your representation.
113func (md *MetaData) Undecoded() []Key {
114 undecoded := make([]Key, 0, len(md.keys))
115 for _, key := range md.keys {
116 if !md.decoded[key.String()] {
117 undecoded = append(undecoded, key)
118 }
119 }
120 return undecoded
121}
diff --git a/vendor/github.com/BurntSushi/toml/doc.go b/vendor/github.com/BurntSushi/toml/doc.go
new file mode 100644
index 0000000..b371f39
--- /dev/null
+++ b/vendor/github.com/BurntSushi/toml/doc.go
@@ -0,0 +1,27 @@
1/*
2Package toml provides facilities for decoding and encoding TOML configuration
3files via reflection. There is also support for delaying decoding with
4the Primitive type, and querying the set of keys in a TOML document with the
5MetaData type.
6
7The specification implemented: https://github.com/toml-lang/toml
8
9The sub-command github.com/BurntSushi/toml/cmd/tomlv can be used to verify
10whether a file is a valid TOML document. It can also be used to print the
11type of each key in a TOML document.
12
13Testing
14
15There are two important types of tests used for this package. The first is
16contained inside '*_test.go' files and uses the standard Go unit testing
17framework. These tests are primarily devoted to holistically testing the
18decoder and encoder.
19
20The second type of testing is used to verify the implementation's adherence
21to the TOML specification. These tests have been factored into their own
22project: https://github.com/BurntSushi/toml-test
23
24The reason the tests are in a separate project is so that they can be used by
25any implementation of TOML. Namely, it is language agnostic.
26*/
27package toml
diff --git a/vendor/github.com/BurntSushi/toml/encode.go b/vendor/github.com/BurntSushi/toml/encode.go
new file mode 100644
index 0000000..d905c21
--- /dev/null
+++ b/vendor/github.com/BurntSushi/toml/encode.go
@@ -0,0 +1,568 @@
1package toml
2
3import (
4 "bufio"
5 "errors"
6 "fmt"
7 "io"
8 "reflect"
9 "sort"
10 "strconv"
11 "strings"
12 "time"
13)
14
15type tomlEncodeError struct{ error }
16
17var (
18 errArrayMixedElementTypes = errors.New(
19 "toml: cannot encode array with mixed element types")
20 errArrayNilElement = errors.New(
21 "toml: cannot encode array with nil element")
22 errNonString = errors.New(
23 "toml: cannot encode a map with non-string key type")
24 errAnonNonStruct = errors.New(
25 "toml: cannot encode an anonymous field that is not a struct")
26 errArrayNoTable = errors.New(
27 "toml: TOML array element cannot contain a table")
28 errNoKey = errors.New(
29 "toml: top-level values must be Go maps or structs")
30 errAnything = errors.New("") // used in testing
31)
32
33var quotedReplacer = strings.NewReplacer(
34 "\t", "\\t",
35 "\n", "\\n",
36 "\r", "\\r",
37 "\"", "\\\"",
38 "\\", "\\\\",
39)
40
41// Encoder controls the encoding of Go values to a TOML document to some
42// io.Writer.
43//
44// The indentation level can be controlled with the Indent field.
45type Encoder struct {
46 // A single indentation level. By default it is two spaces.
47 Indent string
48
49 // hasWritten is whether we have written any output to w yet.
50 hasWritten bool
51 w *bufio.Writer
52}
53
54// NewEncoder returns a TOML encoder that encodes Go values to the io.Writer
55// given. By default, a single indentation level is 2 spaces.
56func NewEncoder(w io.Writer) *Encoder {
57 return &Encoder{
58 w: bufio.NewWriter(w),
59 Indent: " ",
60 }
61}
62
63// Encode writes a TOML representation of the Go value to the underlying
64// io.Writer. If the value given cannot be encoded to a valid TOML document,
65// then an error is returned.
66//
67// The mapping between Go values and TOML values should be precisely the same
68// as for the Decode* functions. Similarly, the TextMarshaler interface is
69// supported by encoding the resulting bytes as strings. (If you want to write
70// arbitrary binary data then you will need to use something like base64 since
71// TOML does not have any binary types.)
72//
73// When encoding TOML hashes (i.e., Go maps or structs), keys without any
74// sub-hashes are encoded first.
75//
76// If a Go map is encoded, then its keys are sorted alphabetically for
77// deterministic output. More control over this behavior may be provided if
78// there is demand for it.
79//
80// Encoding Go values without a corresponding TOML representation---like map
81// types with non-string keys---will cause an error to be returned. Similarly
82// for mixed arrays/slices, arrays/slices with nil elements, embedded
83// non-struct types and nested slices containing maps or structs.
84// (e.g., [][]map[string]string is not allowed but []map[string]string is OK
85// and so is []map[string][]string.)
86func (enc *Encoder) Encode(v interface{}) error {
87 rv := eindirect(reflect.ValueOf(v))
88 if err := enc.safeEncode(Key([]string{}), rv); err != nil {
89 return err
90 }
91 return enc.w.Flush()
92}
93
94func (enc *Encoder) safeEncode(key Key, rv reflect.Value) (err error) {
95 defer func() {
96 if r := recover(); r != nil {
97 if terr, ok := r.(tomlEncodeError); ok {
98 err = terr.error
99 return
100 }
101 panic(r)
102 }
103 }()
104 enc.encode(key, rv)
105 return nil
106}
107
108func (enc *Encoder) encode(key Key, rv reflect.Value) {
109 // Special case. Time needs to be in ISO8601 format.
110 // Special case. If we can marshal the type to text, then we used that.
111 // Basically, this prevents the encoder for handling these types as
112 // generic structs (or whatever the underlying type of a TextMarshaler is).
113 switch rv.Interface().(type) {
114 case time.Time, TextMarshaler:
115 enc.keyEqElement(key, rv)
116 return
117 }
118
119 k := rv.Kind()
120 switch k {
121 case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32,
122 reflect.Int64,
123 reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32,
124 reflect.Uint64,
125 reflect.Float32, reflect.Float64, reflect.String, reflect.Bool:
126 enc.keyEqElement(key, rv)
127 case reflect.Array, reflect.Slice:
128 if typeEqual(tomlArrayHash, tomlTypeOfGo(rv)) {
129 enc.eArrayOfTables(key, rv)
130 } else {
131 enc.keyEqElement(key, rv)
132 }
133 case reflect.Interface:
134 if rv.IsNil() {
135 return
136 }
137 enc.encode(key, rv.Elem())
138 case reflect.Map:
139 if rv.IsNil() {
140 return
141 }
142 enc.eTable(key, rv)
143 case reflect.Ptr:
144 if rv.IsNil() {
145 return
146 }
147 enc.encode(key, rv.Elem())
148 case reflect.Struct:
149 enc.eTable(key, rv)
150 default:
151 panic(e("unsupported type for key '%s': %s", key, k))
152 }
153}
154
155// eElement encodes any value that can be an array element (primitives and
156// arrays).
157func (enc *Encoder) eElement(rv reflect.Value) {
158 switch v := rv.Interface().(type) {
159 case time.Time:
160 // Special case time.Time as a primitive. Has to come before
161 // TextMarshaler below because time.Time implements
162 // encoding.TextMarshaler, but we need to always use UTC.
163 enc.wf(v.UTC().Format("2006-01-02T15:04:05Z"))
164 return
165 case TextMarshaler:
166 // Special case. Use text marshaler if it's available for this value.
167 if s, err := v.MarshalText(); err != nil {
168 encPanic(err)
169 } else {
170 enc.writeQuoted(string(s))
171 }
172 return
173 }
174 switch rv.Kind() {
175 case reflect.Bool:
176 enc.wf(strconv.FormatBool(rv.Bool()))
177 case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32,
178 reflect.Int64:
179 enc.wf(strconv.FormatInt(rv.Int(), 10))
180 case reflect.Uint, reflect.Uint8, reflect.Uint16,
181 reflect.Uint32, reflect.Uint64:
182 enc.wf(strconv.FormatUint(rv.Uint(), 10))
183 case reflect.Float32:
184 enc.wf(floatAddDecimal(strconv.FormatFloat(rv.Float(), 'f', -1, 32)))
185 case reflect.Float64:
186 enc.wf(floatAddDecimal(strconv.FormatFloat(rv.Float(), 'f', -1, 64)))
187 case reflect.Array, reflect.Slice:
188 enc.eArrayOrSliceElement(rv)
189 case reflect.Interface:
190 enc.eElement(rv.Elem())
191 case reflect.String:
192 enc.writeQuoted(rv.String())
193 default:
194 panic(e("unexpected primitive type: %s", rv.Kind()))
195 }
196}
197
198// By the TOML spec, all floats must have a decimal with at least one
199// number on either side.
200func floatAddDecimal(fstr string) string {
201 if !strings.Contains(fstr, ".") {
202 return fstr + ".0"
203 }
204 return fstr
205}
206
207func (enc *Encoder) writeQuoted(s string) {
208 enc.wf("\"%s\"", quotedReplacer.Replace(s))
209}
210
211func (enc *Encoder) eArrayOrSliceElement(rv reflect.Value) {
212 length := rv.Len()
213 enc.wf("[")
214 for i := 0; i < length; i++ {
215 elem := rv.Index(i)
216 enc.eElement(elem)
217 if i != length-1 {
218 enc.wf(", ")
219 }
220 }
221 enc.wf("]")
222}
223
224func (enc *Encoder) eArrayOfTables(key Key, rv reflect.Value) {
225 if len(key) == 0 {
226 encPanic(errNoKey)
227 }
228 for i := 0; i < rv.Len(); i++ {
229 trv := rv.Index(i)
230 if isNil(trv) {
231 continue
232 }
233 panicIfInvalidKey(key)
234 enc.newline()
235 enc.wf("%s[[%s]]", enc.indentStr(key), key.maybeQuotedAll())
236 enc.newline()
237 enc.eMapOrStruct(key, trv)
238 }
239}
240
241func (enc *Encoder) eTable(key Key, rv reflect.Value) {
242 panicIfInvalidKey(key)
243 if len(key) == 1 {
244 // Output an extra newline between top-level tables.
245 // (The newline isn't written if nothing else has been written though.)
246 enc.newline()
247 }
248 if len(key) > 0 {
249 enc.wf("%s[%s]", enc.indentStr(key), key.maybeQuotedAll())
250 enc.newline()
251 }
252 enc.eMapOrStruct(key, rv)
253}
254
255func (enc *Encoder) eMapOrStruct(key Key, rv reflect.Value) {
256 switch rv := eindirect(rv); rv.Kind() {
257 case reflect.Map:
258 enc.eMap(key, rv)
259 case reflect.Struct:
260 enc.eStruct(key, rv)
261 default:
262 panic("eTable: unhandled reflect.Value Kind: " + rv.Kind().String())
263 }
264}
265
266func (enc *Encoder) eMap(key Key, rv reflect.Value) {
267 rt := rv.Type()
268 if rt.Key().Kind() != reflect.String {
269 encPanic(errNonString)
270 }
271
272 // Sort keys so that we have deterministic output. And write keys directly
273 // underneath this key first, before writing sub-structs or sub-maps.
274 var mapKeysDirect, mapKeysSub []string
275 for _, mapKey := range rv.MapKeys() {
276 k := mapKey.String()
277 if typeIsHash(tomlTypeOfGo(rv.MapIndex(mapKey))) {
278 mapKeysSub = append(mapKeysSub, k)
279 } else {
280 mapKeysDirect = append(mapKeysDirect, k)
281 }
282 }
283
284 var writeMapKeys = func(mapKeys []string) {
285 sort.Strings(mapKeys)
286 for _, mapKey := range mapKeys {
287 mrv := rv.MapIndex(reflect.ValueOf(mapKey))
288 if isNil(mrv) {
289 // Don't write anything for nil fields.
290 continue
291 }
292 enc.encode(key.add(mapKey), mrv)
293 }
294 }
295 writeMapKeys(mapKeysDirect)
296 writeMapKeys(mapKeysSub)
297}
298
299func (enc *Encoder) eStruct(key Key, rv reflect.Value) {
300 // Write keys for fields directly under this key first, because if we write
301 // a field that creates a new table, then all keys under it will be in that
302 // table (not the one we're writing here).
303 rt := rv.Type()
304 var fieldsDirect, fieldsSub [][]int
305 var addFields func(rt reflect.Type, rv reflect.Value, start []int)
306 addFields = func(rt reflect.Type, rv reflect.Value, start []int) {
307 for i := 0; i < rt.NumField(); i++ {
308 f := rt.Field(i)
309 // skip unexported fields
310 if f.PkgPath != "" && !f.Anonymous {
311 continue
312 }
313 frv := rv.Field(i)
314 if f.Anonymous {
315 t := f.Type
316 switch t.Kind() {
317 case reflect.Struct:
318 // Treat anonymous struct fields with
319 // tag names as though they are not
320 // anonymous, like encoding/json does.
321 if getOptions(f.Tag).name == "" {
322 addFields(t, frv, f.Index)
323 continue
324 }
325 case reflect.Ptr:
326 if t.Elem().Kind() == reflect.Struct &&
327 getOptions(f.Tag).name == "" {
328 if !frv.IsNil() {
329 addFields(t.Elem(), frv.Elem(), f.Index)
330 }
331 continue
332 }
333 // Fall through to the normal field encoding logic below
334 // for non-struct anonymous fields.
335 }
336 }
337
338 if typeIsHash(tomlTypeOfGo(frv)) {
339 fieldsSub = append(fieldsSub, append(start, f.Index...))
340 } else {
341 fieldsDirect = append(fieldsDirect, append(start, f.Index...))
342 }
343 }
344 }
345 addFields(rt, rv, nil)
346
347 var writeFields = func(fields [][]int) {
348 for _, fieldIndex := range fields {
349 sft := rt.FieldByIndex(fieldIndex)
350 sf := rv.FieldByIndex(fieldIndex)
351 if isNil(sf) {
352 // Don't write anything for nil fields.
353 continue
354 }
355
356 opts := getOptions(sft.Tag)
357 if opts.skip {
358 continue
359 }
360 keyName := sft.Name
361 if opts.name != "" {
362 keyName = opts.name
363 }
364 if opts.omitempty && isEmpty(sf) {
365 continue
366 }
367 if opts.omitzero && isZero(sf) {
368 continue
369 }
370
371 enc.encode(key.add(keyName), sf)
372 }
373 }
374 writeFields(fieldsDirect)
375 writeFields(fieldsSub)
376}
377
378// tomlTypeName returns the TOML type name of the Go value's type. It is
379// used to determine whether the types of array elements are mixed (which is
380// forbidden). If the Go value is nil, then it is illegal for it to be an array
381// element, and valueIsNil is returned as true.
382
383// Returns the TOML type of a Go value. The type may be `nil`, which means
384// no concrete TOML type could be found.
385func tomlTypeOfGo(rv reflect.Value) tomlType {
386 if isNil(rv) || !rv.IsValid() {
387 return nil
388 }
389 switch rv.Kind() {
390 case reflect.Bool:
391 return tomlBool
392 case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32,
393 reflect.Int64,
394 reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32,
395 reflect.Uint64:
396 return tomlInteger
397 case reflect.Float32, reflect.Float64:
398 return tomlFloat
399 case reflect.Array, reflect.Slice:
400 if typeEqual(tomlHash, tomlArrayType(rv)) {
401 return tomlArrayHash
402 }
403 return tomlArray
404 case reflect.Ptr, reflect.Interface:
405 return tomlTypeOfGo(rv.Elem())
406 case reflect.String:
407 return tomlString
408 case reflect.Map:
409 return tomlHash
410 case reflect.Struct:
411 switch rv.Interface().(type) {
412 case time.Time:
413 return tomlDatetime
414 case TextMarshaler:
415 return tomlString
416 default:
417 return tomlHash
418 }
419 default:
420 panic("unexpected reflect.Kind: " + rv.Kind().String())
421 }
422}
423
424// tomlArrayType returns the element type of a TOML array. The type returned
425// may be nil if it cannot be determined (e.g., a nil slice or a zero length
426// slize). This function may also panic if it finds a type that cannot be
427// expressed in TOML (such as nil elements, heterogeneous arrays or directly
428// nested arrays of tables).
429func tomlArrayType(rv reflect.Value) tomlType {
430 if isNil(rv) || !rv.IsValid() || rv.Len() == 0 {
431 return nil
432 }
433 firstType := tomlTypeOfGo(rv.Index(0))
434 if firstType == nil {
435 encPanic(errArrayNilElement)
436 }
437
438 rvlen := rv.Len()
439 for i := 1; i < rvlen; i++ {
440 elem := rv.Index(i)
441 switch elemType := tomlTypeOfGo(elem); {
442 case elemType == nil:
443 encPanic(errArrayNilElement)
444 case !typeEqual(firstType, elemType):
445 encPanic(errArrayMixedElementTypes)
446 }
447 }
448 // If we have a nested array, then we must make sure that the nested
449 // array contains ONLY primitives.
450 // This checks arbitrarily nested arrays.
451 if typeEqual(firstType, tomlArray) || typeEqual(firstType, tomlArrayHash) {
452 nest := tomlArrayType(eindirect(rv.Index(0)))
453 if typeEqual(nest, tomlHash) || typeEqual(nest, tomlArrayHash) {
454 encPanic(errArrayNoTable)
455 }
456 }
457 return firstType
458}
459
460type tagOptions struct {
461 skip bool // "-"
462 name string
463 omitempty bool
464 omitzero bool
465}
466
467func getOptions(tag reflect.StructTag) tagOptions {
468 t := tag.Get("toml")
469 if t == "-" {
470 return tagOptions{skip: true}
471 }
472 var opts tagOptions
473 parts := strings.Split(t, ",")
474 opts.name = parts[0]
475 for _, s := range parts[1:] {
476 switch s {
477 case "omitempty":
478 opts.omitempty = true
479 case "omitzero":
480 opts.omitzero = true
481 }
482 }
483 return opts
484}
485
486func isZero(rv reflect.Value) bool {
487 switch rv.Kind() {
488 case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:
489 return rv.Int() == 0
490 case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64:
491 return rv.Uint() == 0
492 case reflect.Float32, reflect.Float64:
493 return rv.Float() == 0.0
494 }
495 return false
496}
497
498func isEmpty(rv reflect.Value) bool {
499 switch rv.Kind() {
500 case reflect.Array, reflect.Slice, reflect.Map, reflect.String:
501 return rv.Len() == 0
502 case reflect.Bool:
503 return !rv.Bool()
504 }
505 return false
506}
507
508func (enc *Encoder) newline() {
509 if enc.hasWritten {
510 enc.wf("\n")
511 }
512}
513
514func (enc *Encoder) keyEqElement(key Key, val reflect.Value) {
515 if len(key) == 0 {
516 encPanic(errNoKey)
517 }
518 panicIfInvalidKey(key)
519 enc.wf("%s%s = ", enc.indentStr(key), key.maybeQuoted(len(key)-1))
520 enc.eElement(val)
521 enc.newline()
522}
523
524func (enc *Encoder) wf(format string, v ...interface{}) {
525 if _, err := fmt.Fprintf(enc.w, format, v...); err != nil {
526 encPanic(err)
527 }
528 enc.hasWritten = true
529}
530
531func (enc *Encoder) indentStr(key Key) string {
532 return strings.Repeat(enc.Indent, len(key)-1)
533}
534
535func encPanic(err error) {
536 panic(tomlEncodeError{err})
537}
538
539func eindirect(v reflect.Value) reflect.Value {
540 switch v.Kind() {
541 case reflect.Ptr, reflect.Interface:
542 return eindirect(v.Elem())
543 default:
544 return v
545 }
546}
547
548func isNil(rv reflect.Value) bool {
549 switch rv.Kind() {
550 case reflect.Interface, reflect.Map, reflect.Ptr, reflect.Slice:
551 return rv.IsNil()
552 default:
553 return false
554 }
555}
556
557func panicIfInvalidKey(key Key) {
558 for _, k := range key {
559 if len(k) == 0 {
560 encPanic(e("Key '%s' is not a valid table name. Key names "+
561 "cannot be empty.", key.maybeQuotedAll()))
562 }
563 }
564}
565
566func isValidKeyName(s string) bool {
567 return len(s) != 0
568}
diff --git a/vendor/github.com/BurntSushi/toml/encoding_types.go b/vendor/github.com/BurntSushi/toml/encoding_types.go
new file mode 100644
index 0000000..d36e1dd
--- /dev/null
+++ b/vendor/github.com/BurntSushi/toml/encoding_types.go
@@ -0,0 +1,19 @@
1// +build go1.2
2
3package toml
4
5// In order to support Go 1.1, we define our own TextMarshaler and
6// TextUnmarshaler types. For Go 1.2+, we just alias them with the
7// standard library interfaces.
8
9import (
10 "encoding"
11)
12
13// TextMarshaler is a synonym for encoding.TextMarshaler. It is defined here
14// so that Go 1.1 can be supported.
15type TextMarshaler encoding.TextMarshaler
16
17// TextUnmarshaler is a synonym for encoding.TextUnmarshaler. It is defined
18// here so that Go 1.1 can be supported.
19type TextUnmarshaler encoding.TextUnmarshaler
diff --git a/vendor/github.com/BurntSushi/toml/encoding_types_1.1.go b/vendor/github.com/BurntSushi/toml/encoding_types_1.1.go
new file mode 100644
index 0000000..e8d503d
--- /dev/null
+++ b/vendor/github.com/BurntSushi/toml/encoding_types_1.1.go
@@ -0,0 +1,18 @@
1// +build !go1.2
2
3package toml
4
5// These interfaces were introduced in Go 1.2, so we add them manually when
6// compiling for Go 1.1.
7
8// TextMarshaler is a synonym for encoding.TextMarshaler. It is defined here
9// so that Go 1.1 can be supported.
10type TextMarshaler interface {
11 MarshalText() (text []byte, err error)
12}
13
14// TextUnmarshaler is a synonym for encoding.TextUnmarshaler. It is defined
15// here so that Go 1.1 can be supported.
16type TextUnmarshaler interface {
17 UnmarshalText(text []byte) error
18}
diff --git a/vendor/github.com/BurntSushi/toml/lex.go b/vendor/github.com/BurntSushi/toml/lex.go
new file mode 100644
index 0000000..e0a742a
--- /dev/null
+++ b/vendor/github.com/BurntSushi/toml/lex.go
@@ -0,0 +1,953 @@
1package toml
2
3import (
4 "fmt"
5 "strings"
6 "unicode"
7 "unicode/utf8"
8)
9
10type itemType int
11
12const (
13 itemError itemType = iota
14 itemNIL // used in the parser to indicate no type
15 itemEOF
16 itemText
17 itemString
18 itemRawString
19 itemMultilineString
20 itemRawMultilineString
21 itemBool
22 itemInteger
23 itemFloat
24 itemDatetime
25 itemArray // the start of an array
26 itemArrayEnd
27 itemTableStart
28 itemTableEnd
29 itemArrayTableStart
30 itemArrayTableEnd
31 itemKeyStart
32 itemCommentStart
33 itemInlineTableStart
34 itemInlineTableEnd
35)
36
37const (
38 eof = 0
39 comma = ','
40 tableStart = '['
41 tableEnd = ']'
42 arrayTableStart = '['
43 arrayTableEnd = ']'
44 tableSep = '.'
45 keySep = '='
46 arrayStart = '['
47 arrayEnd = ']'
48 commentStart = '#'
49 stringStart = '"'
50 stringEnd = '"'
51 rawStringStart = '\''
52 rawStringEnd = '\''
53 inlineTableStart = '{'
54 inlineTableEnd = '}'
55)
56
57type stateFn func(lx *lexer) stateFn
58
59type lexer struct {
60 input string
61 start int
62 pos int
63 line int
64 state stateFn
65 items chan item
66
67 // Allow for backing up up to three runes.
68 // This is necessary because TOML contains 3-rune tokens (""" and ''').
69 prevWidths [3]int
70 nprev int // how many of prevWidths are in use
71 // If we emit an eof, we can still back up, but it is not OK to call
72 // next again.
73 atEOF bool
74
75 // A stack of state functions used to maintain context.
76 // The idea is to reuse parts of the state machine in various places.
77 // For example, values can appear at the top level or within arbitrarily
78 // nested arrays. The last state on the stack is used after a value has
79 // been lexed. Similarly for comments.
80 stack []stateFn
81}
82
83type item struct {
84 typ itemType
85 val string
86 line int
87}
88
89func (lx *lexer) nextItem() item {
90 for {
91 select {
92 case item := <-lx.items:
93 return item
94 default:
95 lx.state = lx.state(lx)
96 }
97 }
98}
99
100func lex(input string) *lexer {
101 lx := &lexer{
102 input: input,
103 state: lexTop,
104 line: 1,
105 items: make(chan item, 10),
106 stack: make([]stateFn, 0, 10),
107 }
108 return lx
109}
110
111func (lx *lexer) push(state stateFn) {
112 lx.stack = append(lx.stack, state)
113}
114
115func (lx *lexer) pop() stateFn {
116 if len(lx.stack) == 0 {
117 return lx.errorf("BUG in lexer: no states to pop")
118 }
119 last := lx.stack[len(lx.stack)-1]
120 lx.stack = lx.stack[0 : len(lx.stack)-1]
121 return last
122}
123
124func (lx *lexer) current() string {
125 return lx.input[lx.start:lx.pos]
126}
127
128func (lx *lexer) emit(typ itemType) {
129 lx.items <- item{typ, lx.current(), lx.line}
130 lx.start = lx.pos
131}
132
133func (lx *lexer) emitTrim(typ itemType) {
134 lx.items <- item{typ, strings.TrimSpace(lx.current()), lx.line}
135 lx.start = lx.pos
136}
137
138func (lx *lexer) next() (r rune) {
139 if lx.atEOF {
140 panic("next called after EOF")
141 }
142 if lx.pos >= len(lx.input) {
143 lx.atEOF = true
144 return eof
145 }
146
147 if lx.input[lx.pos] == '\n' {
148 lx.line++
149 }
150 lx.prevWidths[2] = lx.prevWidths[1]
151 lx.prevWidths[1] = lx.prevWidths[0]
152 if lx.nprev < 3 {
153 lx.nprev++
154 }
155 r, w := utf8.DecodeRuneInString(lx.input[lx.pos:])
156 lx.prevWidths[0] = w
157 lx.pos += w
158 return r
159}
160
161// ignore skips over the pending input before this point.
162func (lx *lexer) ignore() {
163 lx.start = lx.pos
164}
165
166// backup steps back one rune. Can be called only twice between calls to next.
167func (lx *lexer) backup() {
168 if lx.atEOF {
169 lx.atEOF = false
170 return
171 }
172 if lx.nprev < 1 {
173 panic("backed up too far")
174 }
175 w := lx.prevWidths[0]
176 lx.prevWidths[0] = lx.prevWidths[1]
177 lx.prevWidths[1] = lx.prevWidths[2]
178 lx.nprev--
179 lx.pos -= w
180 if lx.pos < len(lx.input) && lx.input[lx.pos] == '\n' {
181 lx.line--
182 }
183}
184
185// accept consumes the next rune if it's equal to `valid`.
186func (lx *lexer) accept(valid rune) bool {
187 if lx.next() == valid {
188 return true
189 }
190 lx.backup()
191 return false
192}
193
194// peek returns but does not consume the next rune in the input.
195func (lx *lexer) peek() rune {
196 r := lx.next()
197 lx.backup()
198 return r
199}
200
201// skip ignores all input that matches the given predicate.
202func (lx *lexer) skip(pred func(rune) bool) {
203 for {
204 r := lx.next()
205 if pred(r) {
206 continue
207 }
208 lx.backup()
209 lx.ignore()
210 return
211 }
212}
213
214// errorf stops all lexing by emitting an error and returning `nil`.
215// Note that any value that is a character is escaped if it's a special
216// character (newlines, tabs, etc.).
217func (lx *lexer) errorf(format string, values ...interface{}) stateFn {
218 lx.items <- item{
219 itemError,
220 fmt.Sprintf(format, values...),
221 lx.line,
222 }
223 return nil
224}
225
226// lexTop consumes elements at the top level of TOML data.
227func lexTop(lx *lexer) stateFn {
228 r := lx.next()
229 if isWhitespace(r) || isNL(r) {
230 return lexSkip(lx, lexTop)
231 }
232 switch r {
233 case commentStart:
234 lx.push(lexTop)
235 return lexCommentStart
236 case tableStart:
237 return lexTableStart
238 case eof:
239 if lx.pos > lx.start {
240 return lx.errorf("unexpected EOF")
241 }
242 lx.emit(itemEOF)
243 return nil
244 }
245
246 // At this point, the only valid item can be a key, so we back up
247 // and let the key lexer do the rest.
248 lx.backup()
249 lx.push(lexTopEnd)
250 return lexKeyStart
251}
252
253// lexTopEnd is entered whenever a top-level item has been consumed. (A value
254// or a table.) It must see only whitespace, and will turn back to lexTop
255// upon a newline. If it sees EOF, it will quit the lexer successfully.
256func lexTopEnd(lx *lexer) stateFn {
257 r := lx.next()
258 switch {
259 case r == commentStart:
260 // a comment will read to a newline for us.
261 lx.push(lexTop)
262 return lexCommentStart
263 case isWhitespace(r):
264 return lexTopEnd
265 case isNL(r):
266 lx.ignore()
267 return lexTop
268 case r == eof:
269 lx.emit(itemEOF)
270 return nil
271 }
272 return lx.errorf("expected a top-level item to end with a newline, "+
273 "comment, or EOF, but got %q instead", r)
274}
275
276// lexTable lexes the beginning of a table. Namely, it makes sure that
277// it starts with a character other than '.' and ']'.
278// It assumes that '[' has already been consumed.
279// It also handles the case that this is an item in an array of tables.
280// e.g., '[[name]]'.
281func lexTableStart(lx *lexer) stateFn {
282 if lx.peek() == arrayTableStart {
283 lx.next()
284 lx.emit(itemArrayTableStart)
285 lx.push(lexArrayTableEnd)
286 } else {
287 lx.emit(itemTableStart)
288 lx.push(lexTableEnd)
289 }
290 return lexTableNameStart
291}
292
293func lexTableEnd(lx *lexer) stateFn {
294 lx.emit(itemTableEnd)
295 return lexTopEnd
296}
297
298func lexArrayTableEnd(lx *lexer) stateFn {
299 if r := lx.next(); r != arrayTableEnd {
300 return lx.errorf("expected end of table array name delimiter %q, "+
301 "but got %q instead", arrayTableEnd, r)
302 }
303 lx.emit(itemArrayTableEnd)
304 return lexTopEnd
305}
306
307func lexTableNameStart(lx *lexer) stateFn {
308 lx.skip(isWhitespace)
309 switch r := lx.peek(); {
310 case r == tableEnd || r == eof:
311 return lx.errorf("unexpected end of table name " +
312 "(table names cannot be empty)")
313 case r == tableSep:
314 return lx.errorf("unexpected table separator " +
315 "(table names cannot be empty)")
316 case r == stringStart || r == rawStringStart:
317 lx.ignore()
318 lx.push(lexTableNameEnd)
319 return lexValue // reuse string lexing
320 default:
321 return lexBareTableName
322 }
323}
324
325// lexBareTableName lexes the name of a table. It assumes that at least one
326// valid character for the table has already been read.
327func lexBareTableName(lx *lexer) stateFn {
328 r := lx.next()
329 if isBareKeyChar(r) {
330 return lexBareTableName
331 }
332 lx.backup()
333 lx.emit(itemText)
334 return lexTableNameEnd
335}
336
337// lexTableNameEnd reads the end of a piece of a table name, optionally
338// consuming whitespace.
339func lexTableNameEnd(lx *lexer) stateFn {
340 lx.skip(isWhitespace)
341 switch r := lx.next(); {
342 case isWhitespace(r):
343 return lexTableNameEnd
344 case r == tableSep:
345 lx.ignore()
346 return lexTableNameStart
347 case r == tableEnd:
348 return lx.pop()
349 default:
350 return lx.errorf("expected '.' or ']' to end table name, "+
351 "but got %q instead", r)
352 }
353}
354
355// lexKeyStart consumes a key name up until the first non-whitespace character.
356// lexKeyStart will ignore whitespace.
357func lexKeyStart(lx *lexer) stateFn {
358 r := lx.peek()
359 switch {
360 case r == keySep:
361 return lx.errorf("unexpected key separator %q", keySep)
362 case isWhitespace(r) || isNL(r):
363 lx.next()
364 return lexSkip(lx, lexKeyStart)
365 case r == stringStart || r == rawStringStart:
366 lx.ignore()
367 lx.emit(itemKeyStart)
368 lx.push(lexKeyEnd)
369 return lexValue // reuse string lexing
370 default:
371 lx.ignore()
372 lx.emit(itemKeyStart)
373 return lexBareKey
374 }
375}
376
377// lexBareKey consumes the text of a bare key. Assumes that the first character
378// (which is not whitespace) has not yet been consumed.
379func lexBareKey(lx *lexer) stateFn {
380 switch r := lx.next(); {
381 case isBareKeyChar(r):
382 return lexBareKey
383 case isWhitespace(r):
384 lx.backup()
385 lx.emit(itemText)
386 return lexKeyEnd
387 case r == keySep:
388 lx.backup()
389 lx.emit(itemText)
390 return lexKeyEnd
391 default:
392 return lx.errorf("bare keys cannot contain %q", r)
393 }
394}
395
396// lexKeyEnd consumes the end of a key and trims whitespace (up to the key
397// separator).
398func lexKeyEnd(lx *lexer) stateFn {
399 switch r := lx.next(); {
400 case r == keySep:
401 return lexSkip(lx, lexValue)
402 case isWhitespace(r):
403 return lexSkip(lx, lexKeyEnd)
404 default:
405 return lx.errorf("expected key separator %q, but got %q instead",
406 keySep, r)
407 }
408}
409
410// lexValue starts the consumption of a value anywhere a value is expected.
411// lexValue will ignore whitespace.
412// After a value is lexed, the last state on the next is popped and returned.
413func lexValue(lx *lexer) stateFn {
414 // We allow whitespace to precede a value, but NOT newlines.
415 // In array syntax, the array states are responsible for ignoring newlines.
416 r := lx.next()
417 switch {
418 case isWhitespace(r):
419 return lexSkip(lx, lexValue)
420 case isDigit(r):
421 lx.backup() // avoid an extra state and use the same as above
422 return lexNumberOrDateStart
423 }
424 switch r {
425 case arrayStart:
426 lx.ignore()
427 lx.emit(itemArray)
428 return lexArrayValue
429 case inlineTableStart:
430 lx.ignore()
431 lx.emit(itemInlineTableStart)
432 return lexInlineTableValue
433 case stringStart:
434 if lx.accept(stringStart) {
435 if lx.accept(stringStart) {
436 lx.ignore() // Ignore """
437 return lexMultilineString
438 }
439 lx.backup()
440 }
441 lx.ignore() // ignore the '"'
442 return lexString
443 case rawStringStart:
444 if lx.accept(rawStringStart) {
445 if lx.accept(rawStringStart) {
446 lx.ignore() // Ignore """
447 return lexMultilineRawString
448 }
449 lx.backup()
450 }
451 lx.ignore() // ignore the "'"
452 return lexRawString
453 case '+', '-':
454 return lexNumberStart
455 case '.': // special error case, be kind to users
456 return lx.errorf("floats must start with a digit, not '.'")
457 }
458 if unicode.IsLetter(r) {
459 // Be permissive here; lexBool will give a nice error if the
460 // user wrote something like
461 // x = foo
462 // (i.e. not 'true' or 'false' but is something else word-like.)
463 lx.backup()
464 return lexBool
465 }
466 return lx.errorf("expected value but found %q instead", r)
467}
468
469// lexArrayValue consumes one value in an array. It assumes that '[' or ','
470// have already been consumed. All whitespace and newlines are ignored.
471func lexArrayValue(lx *lexer) stateFn {
472 r := lx.next()
473 switch {
474 case isWhitespace(r) || isNL(r):
475 return lexSkip(lx, lexArrayValue)
476 case r == commentStart:
477 lx.push(lexArrayValue)
478 return lexCommentStart
479 case r == comma:
480 return lx.errorf("unexpected comma")
481 case r == arrayEnd:
482 // NOTE(caleb): The spec isn't clear about whether you can have
483 // a trailing comma or not, so we'll allow it.
484 return lexArrayEnd
485 }
486
487 lx.backup()
488 lx.push(lexArrayValueEnd)
489 return lexValue
490}
491
492// lexArrayValueEnd consumes everything between the end of an array value and
493// the next value (or the end of the array): it ignores whitespace and newlines
494// and expects either a ',' or a ']'.
495func lexArrayValueEnd(lx *lexer) stateFn {
496 r := lx.next()
497 switch {
498 case isWhitespace(r) || isNL(r):
499 return lexSkip(lx, lexArrayValueEnd)
500 case r == commentStart:
501 lx.push(lexArrayValueEnd)
502 return lexCommentStart
503 case r == comma:
504 lx.ignore()
505 return lexArrayValue // move on to the next value
506 case r == arrayEnd:
507 return lexArrayEnd
508 }
509 return lx.errorf(
510 "expected a comma or array terminator %q, but got %q instead",
511 arrayEnd, r,
512 )
513}
514
515// lexArrayEnd finishes the lexing of an array.
516// It assumes that a ']' has just been consumed.
517func lexArrayEnd(lx *lexer) stateFn {
518 lx.ignore()
519 lx.emit(itemArrayEnd)
520 return lx.pop()
521}
522
523// lexInlineTableValue consumes one key/value pair in an inline table.
524// It assumes that '{' or ',' have already been consumed. Whitespace is ignored.
525func lexInlineTableValue(lx *lexer) stateFn {
526 r := lx.next()
527 switch {
528 case isWhitespace(r):
529 return lexSkip(lx, lexInlineTableValue)
530 case isNL(r):
531 return lx.errorf("newlines not allowed within inline tables")
532 case r == commentStart:
533 lx.push(lexInlineTableValue)
534 return lexCommentStart
535 case r == comma:
536 return lx.errorf("unexpected comma")
537 case r == inlineTableEnd:
538 return lexInlineTableEnd
539 }
540 lx.backup()
541 lx.push(lexInlineTableValueEnd)
542 return lexKeyStart
543}
544
545// lexInlineTableValueEnd consumes everything between the end of an inline table
546// key/value pair and the next pair (or the end of the table):
547// it ignores whitespace and expects either a ',' or a '}'.
548func lexInlineTableValueEnd(lx *lexer) stateFn {
549 r := lx.next()
550 switch {
551 case isWhitespace(r):
552 return lexSkip(lx, lexInlineTableValueEnd)
553 case isNL(r):
554 return lx.errorf("newlines not allowed within inline tables")
555 case r == commentStart:
556 lx.push(lexInlineTableValueEnd)
557 return lexCommentStart
558 case r == comma:
559 lx.ignore()
560 return lexInlineTableValue
561 case r == inlineTableEnd:
562 return lexInlineTableEnd
563 }
564 return lx.errorf("expected a comma or an inline table terminator %q, "+
565 "but got %q instead", inlineTableEnd, r)
566}
567
568// lexInlineTableEnd finishes the lexing of an inline table.
569// It assumes that a '}' has just been consumed.
570func lexInlineTableEnd(lx *lexer) stateFn {
571 lx.ignore()
572 lx.emit(itemInlineTableEnd)
573 return lx.pop()
574}
575
576// lexString consumes the inner contents of a string. It assumes that the
577// beginning '"' has already been consumed and ignored.
578func lexString(lx *lexer) stateFn {
579 r := lx.next()
580 switch {
581 case r == eof:
582 return lx.errorf("unexpected EOF")
583 case isNL(r):
584 return lx.errorf("strings cannot contain newlines")
585 case r == '\\':
586 lx.push(lexString)
587 return lexStringEscape
588 case r == stringEnd:
589 lx.backup()
590 lx.emit(itemString)
591 lx.next()
592 lx.ignore()
593 return lx.pop()
594 }
595 return lexString
596}
597
598// lexMultilineString consumes the inner contents of a string. It assumes that
599// the beginning '"""' has already been consumed and ignored.
600func lexMultilineString(lx *lexer) stateFn {
601 switch lx.next() {
602 case eof:
603 return lx.errorf("unexpected EOF")
604 case '\\':
605 return lexMultilineStringEscape
606 case stringEnd:
607 if lx.accept(stringEnd) {
608 if lx.accept(stringEnd) {
609 lx.backup()
610 lx.backup()
611 lx.backup()
612 lx.emit(itemMultilineString)
613 lx.next()
614 lx.next()
615 lx.next()
616 lx.ignore()
617 return lx.pop()
618 }
619 lx.backup()
620 }
621 }
622 return lexMultilineString
623}
624
625// lexRawString consumes a raw string. Nothing can be escaped in such a string.
626// It assumes that the beginning "'" has already been consumed and ignored.
627func lexRawString(lx *lexer) stateFn {
628 r := lx.next()
629 switch {
630 case r == eof:
631 return lx.errorf("unexpected EOF")
632 case isNL(r):
633 return lx.errorf("strings cannot contain newlines")
634 case r == rawStringEnd:
635 lx.backup()
636 lx.emit(itemRawString)
637 lx.next()
638 lx.ignore()
639 return lx.pop()
640 }
641 return lexRawString
642}
643
644// lexMultilineRawString consumes a raw string. Nothing can be escaped in such
645// a string. It assumes that the beginning "'''" has already been consumed and
646// ignored.
647func lexMultilineRawString(lx *lexer) stateFn {
648 switch lx.next() {
649 case eof:
650 return lx.errorf("unexpected EOF")
651 case rawStringEnd:
652 if lx.accept(rawStringEnd) {
653 if lx.accept(rawStringEnd) {
654 lx.backup()
655 lx.backup()
656 lx.backup()
657 lx.emit(itemRawMultilineString)
658 lx.next()
659 lx.next()
660 lx.next()
661 lx.ignore()
662 return lx.pop()
663 }
664 lx.backup()
665 }
666 }
667 return lexMultilineRawString
668}
669
670// lexMultilineStringEscape consumes an escaped character. It assumes that the
671// preceding '\\' has already been consumed.
672func lexMultilineStringEscape(lx *lexer) stateFn {
673 // Handle the special case first:
674 if isNL(lx.next()) {
675 return lexMultilineString
676 }
677 lx.backup()
678 lx.push(lexMultilineString)
679 return lexStringEscape(lx)
680}
681
682func lexStringEscape(lx *lexer) stateFn {
683 r := lx.next()
684 switch r {
685 case 'b':
686 fallthrough
687 case 't':
688 fallthrough
689 case 'n':
690 fallthrough
691 case 'f':
692 fallthrough
693 case 'r':
694 fallthrough
695 case '"':
696 fallthrough
697 case '\\':
698 return lx.pop()
699 case 'u':
700 return lexShortUnicodeEscape
701 case 'U':
702 return lexLongUnicodeEscape
703 }
704 return lx.errorf("invalid escape character %q; only the following "+
705 "escape characters are allowed: "+
706 `\b, \t, \n, \f, \r, \", \\, \uXXXX, and \UXXXXXXXX`, r)
707}
708
709func lexShortUnicodeEscape(lx *lexer) stateFn {
710 var r rune
711 for i := 0; i < 4; i++ {
712 r = lx.next()
713 if !isHexadecimal(r) {
714 return lx.errorf(`expected four hexadecimal digits after '\u', `+
715 "but got %q instead", lx.current())
716 }
717 }
718 return lx.pop()
719}
720
721func lexLongUnicodeEscape(lx *lexer) stateFn {
722 var r rune
723 for i := 0; i < 8; i++ {
724 r = lx.next()
725 if !isHexadecimal(r) {
726 return lx.errorf(`expected eight hexadecimal digits after '\U', `+
727 "but got %q instead", lx.current())
728 }
729 }
730 return lx.pop()
731}
732
733// lexNumberOrDateStart consumes either an integer, a float, or datetime.
734func lexNumberOrDateStart(lx *lexer) stateFn {
735 r := lx.next()
736 if isDigit(r) {
737 return lexNumberOrDate
738 }
739 switch r {
740 case '_':
741 return lexNumber
742 case 'e', 'E':
743 return lexFloat
744 case '.':
745 return lx.errorf("floats must start with a digit, not '.'")
746 }
747 return lx.errorf("expected a digit but got %q", r)
748}
749
750// lexNumberOrDate consumes either an integer, float or datetime.
751func lexNumberOrDate(lx *lexer) stateFn {
752 r := lx.next()
753 if isDigit(r) {
754 return lexNumberOrDate
755 }
756 switch r {
757 case '-':
758 return lexDatetime
759 case '_':
760 return lexNumber
761 case '.', 'e', 'E':
762 return lexFloat
763 }
764
765 lx.backup()
766 lx.emit(itemInteger)
767 return lx.pop()
768}
769
770// lexDatetime consumes a Datetime, to a first approximation.
771// The parser validates that it matches one of the accepted formats.
772func lexDatetime(lx *lexer) stateFn {
773 r := lx.next()
774 if isDigit(r) {
775 return lexDatetime
776 }
777 switch r {
778 case '-', 'T', ':', '.', 'Z', '+':
779 return lexDatetime
780 }
781
782 lx.backup()
783 lx.emit(itemDatetime)
784 return lx.pop()
785}
786
787// lexNumberStart consumes either an integer or a float. It assumes that a sign
788// has already been read, but that *no* digits have been consumed.
789// lexNumberStart will move to the appropriate integer or float states.
790func lexNumberStart(lx *lexer) stateFn {
791 // We MUST see a digit. Even floats have to start with a digit.
792 r := lx.next()
793 if !isDigit(r) {
794 if r == '.' {
795 return lx.errorf("floats must start with a digit, not '.'")
796 }
797 return lx.errorf("expected a digit but got %q", r)
798 }
799 return lexNumber
800}
801
802// lexNumber consumes an integer or a float after seeing the first digit.
803func lexNumber(lx *lexer) stateFn {
804 r := lx.next()
805 if isDigit(r) {
806 return lexNumber
807 }
808 switch r {
809 case '_':
810 return lexNumber
811 case '.', 'e', 'E':
812 return lexFloat
813 }
814
815 lx.backup()
816 lx.emit(itemInteger)
817 return lx.pop()
818}
819
820// lexFloat consumes the elements of a float. It allows any sequence of
821// float-like characters, so floats emitted by the lexer are only a first
822// approximation and must be validated by the parser.
823func lexFloat(lx *lexer) stateFn {
824 r := lx.next()
825 if isDigit(r) {
826 return lexFloat
827 }
828 switch r {
829 case '_', '.', '-', '+', 'e', 'E':
830 return lexFloat
831 }
832
833 lx.backup()
834 lx.emit(itemFloat)
835 return lx.pop()
836}
837
838// lexBool consumes a bool string: 'true' or 'false.
839func lexBool(lx *lexer) stateFn {
840 var rs []rune
841 for {
842 r := lx.next()
843 if !unicode.IsLetter(r) {
844 lx.backup()
845 break
846 }
847 rs = append(rs, r)
848 }
849 s := string(rs)
850 switch s {
851 case "true", "false":
852 lx.emit(itemBool)
853 return lx.pop()
854 }
855 return lx.errorf("expected value but found %q instead", s)
856}
857
858// lexCommentStart begins the lexing of a comment. It will emit
859// itemCommentStart and consume no characters, passing control to lexComment.
860func lexCommentStart(lx *lexer) stateFn {
861 lx.ignore()
862 lx.emit(itemCommentStart)
863 return lexComment
864}
865
866// lexComment lexes an entire comment. It assumes that '#' has been consumed.
867// It will consume *up to* the first newline character, and pass control
868// back to the last state on the stack.
869func lexComment(lx *lexer) stateFn {
870 r := lx.peek()
871 if isNL(r) || r == eof {
872 lx.emit(itemText)
873 return lx.pop()
874 }
875 lx.next()
876 return lexComment
877}
878
879// lexSkip ignores all slurped input and moves on to the next state.
880func lexSkip(lx *lexer, nextState stateFn) stateFn {
881 return func(lx *lexer) stateFn {
882 lx.ignore()
883 return nextState
884 }
885}
886
887// isWhitespace returns true if `r` is a whitespace character according
888// to the spec.
889func isWhitespace(r rune) bool {
890 return r == '\t' || r == ' '
891}
892
893func isNL(r rune) bool {
894 return r == '\n' || r == '\r'
895}
896
897func isDigit(r rune) bool {
898 return r >= '0' && r <= '9'
899}
900
901func isHexadecimal(r rune) bool {
902 return (r >= '0' && r <= '9') ||
903 (r >= 'a' && r <= 'f') ||
904 (r >= 'A' && r <= 'F')
905}
906
907func isBareKeyChar(r rune) bool {
908 return (r >= 'A' && r <= 'Z') ||
909 (r >= 'a' && r <= 'z') ||
910 (r >= '0' && r <= '9') ||
911 r == '_' ||
912 r == '-'
913}
914
915func (itype itemType) String() string {
916 switch itype {
917 case itemError:
918 return "Error"
919 case itemNIL:
920 return "NIL"
921 case itemEOF:
922 return "EOF"
923 case itemText:
924 return "Text"
925 case itemString, itemRawString, itemMultilineString, itemRawMultilineString:
926 return "String"
927 case itemBool:
928 return "Bool"
929 case itemInteger:
930 return "Integer"
931 case itemFloat:
932 return "Float"
933 case itemDatetime:
934 return "DateTime"
935 case itemTableStart:
936 return "TableStart"
937 case itemTableEnd:
938 return "TableEnd"
939 case itemKeyStart:
940 return "KeyStart"
941 case itemArray:
942 return "Array"
943 case itemArrayEnd:
944 return "ArrayEnd"
945 case itemCommentStart:
946 return "CommentStart"
947 }
948 panic(fmt.Sprintf("BUG: Unknown type '%d'.", int(itype)))
949}
950
951func (item item) String() string {
952 return fmt.Sprintf("(%s, %s)", item.typ.String(), item.val)
953}
diff --git a/vendor/github.com/BurntSushi/toml/parse.go b/vendor/github.com/BurntSushi/toml/parse.go
new file mode 100644
index 0000000..50869ef
--- /dev/null
+++ b/vendor/github.com/BurntSushi/toml/parse.go
@@ -0,0 +1,592 @@
1package toml
2
3import (
4 "fmt"
5 "strconv"
6 "strings"
7 "time"
8 "unicode"
9 "unicode/utf8"
10)
11
12type parser struct {
13 mapping map[string]interface{}
14 types map[string]tomlType
15 lx *lexer
16
17 // A list of keys in the order that they appear in the TOML data.
18 ordered []Key
19
20 // the full key for the current hash in scope
21 context Key
22
23 // the base key name for everything except hashes
24 currentKey string
25
26 // rough approximation of line number
27 approxLine int
28
29 // A map of 'key.group.names' to whether they were created implicitly.
30 implicits map[string]bool
31}
32
33type parseError string
34
35func (pe parseError) Error() string {
36 return string(pe)
37}
38
39func parse(data string) (p *parser, err error) {
40 defer func() {
41 if r := recover(); r != nil {
42 var ok bool
43 if err, ok = r.(parseError); ok {
44 return
45 }
46 panic(r)
47 }
48 }()
49
50 p = &parser{
51 mapping: make(map[string]interface{}),
52 types: make(map[string]tomlType),
53 lx: lex(data),
54 ordered: make([]Key, 0),
55 implicits: make(map[string]bool),
56 }
57 for {
58 item := p.next()
59 if item.typ == itemEOF {
60 break
61 }
62 p.topLevel(item)
63 }
64
65 return p, nil
66}
67
68func (p *parser) panicf(format string, v ...interface{}) {
69 msg := fmt.Sprintf("Near line %d (last key parsed '%s'): %s",
70 p.approxLine, p.current(), fmt.Sprintf(format, v...))
71 panic(parseError(msg))
72}
73
74func (p *parser) next() item {
75 it := p.lx.nextItem()
76 if it.typ == itemError {
77 p.panicf("%s", it.val)
78 }
79 return it
80}
81
82func (p *parser) bug(format string, v ...interface{}) {
83 panic(fmt.Sprintf("BUG: "+format+"\n\n", v...))
84}
85
86func (p *parser) expect(typ itemType) item {
87 it := p.next()
88 p.assertEqual(typ, it.typ)
89 return it
90}
91
92func (p *parser) assertEqual(expected, got itemType) {
93 if expected != got {
94 p.bug("Expected '%s' but got '%s'.", expected, got)
95 }
96}
97
98func (p *parser) topLevel(item item) {
99 switch item.typ {
100 case itemCommentStart:
101 p.approxLine = item.line
102 p.expect(itemText)
103 case itemTableStart:
104 kg := p.next()
105 p.approxLine = kg.line
106
107 var key Key
108 for ; kg.typ != itemTableEnd && kg.typ != itemEOF; kg = p.next() {
109 key = append(key, p.keyString(kg))
110 }
111 p.assertEqual(itemTableEnd, kg.typ)
112
113 p.establishContext(key, false)
114 p.setType("", tomlHash)
115 p.ordered = append(p.ordered, key)
116 case itemArrayTableStart:
117 kg := p.next()
118 p.approxLine = kg.line
119
120 var key Key
121 for ; kg.typ != itemArrayTableEnd && kg.typ != itemEOF; kg = p.next() {
122 key = append(key, p.keyString(kg))
123 }
124 p.assertEqual(itemArrayTableEnd, kg.typ)
125
126 p.establishContext(key, true)
127 p.setType("", tomlArrayHash)
128 p.ordered = append(p.ordered, key)
129 case itemKeyStart:
130 kname := p.next()
131 p.approxLine = kname.line
132 p.currentKey = p.keyString(kname)
133
134 val, typ := p.value(p.next())
135 p.setValue(p.currentKey, val)
136 p.setType(p.currentKey, typ)
137 p.ordered = append(p.ordered, p.context.add(p.currentKey))
138 p.currentKey = ""
139 default:
140 p.bug("Unexpected type at top level: %s", item.typ)
141 }
142}
143
144// Gets a string for a key (or part of a key in a table name).
145func (p *parser) keyString(it item) string {
146 switch it.typ {
147 case itemText:
148 return it.val
149 case itemString, itemMultilineString,
150 itemRawString, itemRawMultilineString:
151 s, _ := p.value(it)
152 return s.(string)
153 default:
154 p.bug("Unexpected key type: %s", it.typ)
155 panic("unreachable")
156 }
157}
158
159// value translates an expected value from the lexer into a Go value wrapped
160// as an empty interface.
161func (p *parser) value(it item) (interface{}, tomlType) {
162 switch it.typ {
163 case itemString:
164 return p.replaceEscapes(it.val), p.typeOfPrimitive(it)
165 case itemMultilineString:
166 trimmed := stripFirstNewline(stripEscapedWhitespace(it.val))
167 return p.replaceEscapes(trimmed), p.typeOfPrimitive(it)
168 case itemRawString:
169 return it.val, p.typeOfPrimitive(it)
170 case itemRawMultilineString:
171 return stripFirstNewline(it.val), p.typeOfPrimitive(it)
172 case itemBool:
173 switch it.val {
174 case "true":
175 return true, p.typeOfPrimitive(it)
176 case "false":
177 return false, p.typeOfPrimitive(it)
178 }
179 p.bug("Expected boolean value, but got '%s'.", it.val)
180 case itemInteger:
181 if !numUnderscoresOK(it.val) {
182 p.panicf("Invalid integer %q: underscores must be surrounded by digits",
183 it.val)
184 }
185 val := strings.Replace(it.val, "_", "", -1)
186 num, err := strconv.ParseInt(val, 10, 64)
187 if err != nil {
188 // Distinguish integer values. Normally, it'd be a bug if the lexer
189 // provides an invalid integer, but it's possible that the number is
190 // out of range of valid values (which the lexer cannot determine).
191 // So mark the former as a bug but the latter as a legitimate user
192 // error.
193 if e, ok := err.(*strconv.NumError); ok &&
194 e.Err == strconv.ErrRange {
195
196 p.panicf("Integer '%s' is out of the range of 64-bit "+
197 "signed integers.", it.val)
198 } else {
199 p.bug("Expected integer value, but got '%s'.", it.val)
200 }
201 }
202 return num, p.typeOfPrimitive(it)
203 case itemFloat:
204 parts := strings.FieldsFunc(it.val, func(r rune) bool {
205 switch r {
206 case '.', 'e', 'E':
207 return true
208 }
209 return false
210 })
211 for _, part := range parts {
212 if !numUnderscoresOK(part) {
213 p.panicf("Invalid float %q: underscores must be "+
214 "surrounded by digits", it.val)
215 }
216 }
217 if !numPeriodsOK(it.val) {
218 // As a special case, numbers like '123.' or '1.e2',
219 // which are valid as far as Go/strconv are concerned,
220 // must be rejected because TOML says that a fractional
221 // part consists of '.' followed by 1+ digits.
222 p.panicf("Invalid float %q: '.' must be followed "+
223 "by one or more digits", it.val)
224 }
225 val := strings.Replace(it.val, "_", "", -1)
226 num, err := strconv.ParseFloat(val, 64)
227 if err != nil {
228 if e, ok := err.(*strconv.NumError); ok &&
229 e.Err == strconv.ErrRange {
230
231 p.panicf("Float '%s' is out of the range of 64-bit "+
232 "IEEE-754 floating-point numbers.", it.val)
233 } else {
234 p.panicf("Invalid float value: %q", it.val)
235 }
236 }
237 return num, p.typeOfPrimitive(it)
238 case itemDatetime:
239 var t time.Time
240 var ok bool
241 var err error
242 for _, format := range []string{
243 "2006-01-02T15:04:05Z07:00",
244 "2006-01-02T15:04:05",
245 "2006-01-02",
246 } {
247 t, err = time.ParseInLocation(format, it.val, time.Local)
248 if err == nil {
249 ok = true
250 break
251 }
252 }
253 if !ok {
254 p.panicf("Invalid TOML Datetime: %q.", it.val)
255 }
256 return t, p.typeOfPrimitive(it)
257 case itemArray:
258 array := make([]interface{}, 0)
259 types := make([]tomlType, 0)
260
261 for it = p.next(); it.typ != itemArrayEnd; it = p.next() {
262 if it.typ == itemCommentStart {
263 p.expect(itemText)
264 continue
265 }
266
267 val, typ := p.value(it)
268 array = append(array, val)
269 types = append(types, typ)
270 }
271 return array, p.typeOfArray(types)
272 case itemInlineTableStart:
273 var (
274 hash = make(map[string]interface{})
275 outerContext = p.context
276 outerKey = p.currentKey
277 )
278
279 p.context = append(p.context, p.currentKey)
280 p.currentKey = ""
281 for it := p.next(); it.typ != itemInlineTableEnd; it = p.next() {
282 if it.typ != itemKeyStart {
283 p.bug("Expected key start but instead found %q, around line %d",
284 it.val, p.approxLine)
285 }
286 if it.typ == itemCommentStart {
287 p.expect(itemText)
288 continue
289 }
290
291 // retrieve key
292 k := p.next()
293 p.approxLine = k.line
294 kname := p.keyString(k)
295
296 // retrieve value
297 p.currentKey = kname
298 val, typ := p.value(p.next())
299 // make sure we keep metadata up to date
300 p.setType(kname, typ)
301 p.ordered = append(p.ordered, p.context.add(p.currentKey))
302 hash[kname] = val
303 }
304 p.context = outerContext
305 p.currentKey = outerKey
306 return hash, tomlHash
307 }
308 p.bug("Unexpected value type: %s", it.typ)
309 panic("unreachable")
310}
311
312// numUnderscoresOK checks whether each underscore in s is surrounded by
313// characters that are not underscores.
314func numUnderscoresOK(s string) bool {
315 accept := false
316 for _, r := range s {
317 if r == '_' {
318 if !accept {
319 return false
320 }
321 accept = false
322 continue
323 }
324 accept = true
325 }
326 return accept
327}
328
329// numPeriodsOK checks whether every period in s is followed by a digit.
330func numPeriodsOK(s string) bool {
331 period := false
332 for _, r := range s {
333 if period && !isDigit(r) {
334 return false
335 }
336 period = r == '.'
337 }
338 return !period
339}
340
341// establishContext sets the current context of the parser,
342// where the context is either a hash or an array of hashes. Which one is
343// set depends on the value of the `array` parameter.
344//
345// Establishing the context also makes sure that the key isn't a duplicate, and
346// will create implicit hashes automatically.
347func (p *parser) establishContext(key Key, array bool) {
348 var ok bool
349
350 // Always start at the top level and drill down for our context.
351 hashContext := p.mapping
352 keyContext := make(Key, 0)
353
354 // We only need implicit hashes for key[0:-1]
355 for _, k := range key[0 : len(key)-1] {
356 _, ok = hashContext[k]
357 keyContext = append(keyContext, k)
358
359 // No key? Make an implicit hash and move on.
360 if !ok {
361 p.addImplicit(keyContext)
362 hashContext[k] = make(map[string]interface{})
363 }
364
365 // If the hash context is actually an array of tables, then set
366 // the hash context to the last element in that array.
367 //
368 // Otherwise, it better be a table, since this MUST be a key group (by
369 // virtue of it not being the last element in a key).
370 switch t := hashContext[k].(type) {
371 case []map[string]interface{}:
372 hashContext = t[len(t)-1]
373 case map[string]interface{}:
374 hashContext = t
375 default:
376 p.panicf("Key '%s' was already created as a hash.", keyContext)
377 }
378 }
379
380 p.context = keyContext
381 if array {
382 // If this is the first element for this array, then allocate a new
383 // list of tables for it.
384 k := key[len(key)-1]
385 if _, ok := hashContext[k]; !ok {
386 hashContext[k] = make([]map[string]interface{}, 0, 5)
387 }
388
389 // Add a new table. But make sure the key hasn't already been used
390 // for something else.
391 if hash, ok := hashContext[k].([]map[string]interface{}); ok {
392 hashContext[k] = append(hash, make(map[string]interface{}))
393 } else {
394 p.panicf("Key '%s' was already created and cannot be used as "+
395 "an array.", keyContext)
396 }
397 } else {
398 p.setValue(key[len(key)-1], make(map[string]interface{}))
399 }
400 p.context = append(p.context, key[len(key)-1])
401}
402
403// setValue sets the given key to the given value in the current context.
404// It will make sure that the key hasn't already been defined, account for
405// implicit key groups.
406func (p *parser) setValue(key string, value interface{}) {
407 var tmpHash interface{}
408 var ok bool
409
410 hash := p.mapping
411 keyContext := make(Key, 0)
412 for _, k := range p.context {
413 keyContext = append(keyContext, k)
414 if tmpHash, ok = hash[k]; !ok {
415 p.bug("Context for key '%s' has not been established.", keyContext)
416 }
417 switch t := tmpHash.(type) {
418 case []map[string]interface{}:
419 // The context is a table of hashes. Pick the most recent table
420 // defined as the current hash.
421 hash = t[len(t)-1]
422 case map[string]interface{}:
423 hash = t
424 default:
425 p.bug("Expected hash to have type 'map[string]interface{}', but "+
426 "it has '%T' instead.", tmpHash)
427 }
428 }
429 keyContext = append(keyContext, key)
430
431 if _, ok := hash[key]; ok {
432 // Typically, if the given key has already been set, then we have
433 // to raise an error since duplicate keys are disallowed. However,
434 // it's possible that a key was previously defined implicitly. In this
435 // case, it is allowed to be redefined concretely. (See the
436 // `tests/valid/implicit-and-explicit-after.toml` test in `toml-test`.)
437 //
438 // But we have to make sure to stop marking it as an implicit. (So that
439 // another redefinition provokes an error.)
440 //
441 // Note that since it has already been defined (as a hash), we don't
442 // want to overwrite it. So our business is done.
443 if p.isImplicit(keyContext) {
444 p.removeImplicit(keyContext)
445 return
446 }
447
448 // Otherwise, we have a concrete key trying to override a previous
449 // key, which is *always* wrong.
450 p.panicf("Key '%s' has already been defined.", keyContext)
451 }
452 hash[key] = value
453}
454
455// setType sets the type of a particular value at a given key.
456// It should be called immediately AFTER setValue.
457//
458// Note that if `key` is empty, then the type given will be applied to the
459// current context (which is either a table or an array of tables).
460func (p *parser) setType(key string, typ tomlType) {
461 keyContext := make(Key, 0, len(p.context)+1)
462 for _, k := range p.context {
463 keyContext = append(keyContext, k)
464 }
465 if len(key) > 0 { // allow type setting for hashes
466 keyContext = append(keyContext, key)
467 }
468 p.types[keyContext.String()] = typ
469}
470
471// addImplicit sets the given Key as having been created implicitly.
472func (p *parser) addImplicit(key Key) {
473 p.implicits[key.String()] = true
474}
475
476// removeImplicit stops tagging the given key as having been implicitly
477// created.
478func (p *parser) removeImplicit(key Key) {
479 p.implicits[key.String()] = false
480}
481
482// isImplicit returns true if the key group pointed to by the key was created
483// implicitly.
484func (p *parser) isImplicit(key Key) bool {
485 return p.implicits[key.String()]
486}
487
488// current returns the full key name of the current context.
489func (p *parser) current() string {
490 if len(p.currentKey) == 0 {
491 return p.context.String()
492 }
493 if len(p.context) == 0 {
494 return p.currentKey
495 }
496 return fmt.Sprintf("%s.%s", p.context, p.currentKey)
497}
498
499func stripFirstNewline(s string) string {
500 if len(s) == 0 || s[0] != '\n' {
501 return s
502 }
503 return s[1:]
504}
505
506func stripEscapedWhitespace(s string) string {
507 esc := strings.Split(s, "\\\n")
508 if len(esc) > 1 {
509 for i := 1; i < len(esc); i++ {
510 esc[i] = strings.TrimLeftFunc(esc[i], unicode.IsSpace)
511 }
512 }
513 return strings.Join(esc, "")
514}
515
516func (p *parser) replaceEscapes(str string) string {
517 var replaced []rune
518 s := []byte(str)
519 r := 0
520 for r < len(s) {
521 if s[r] != '\\' {
522 c, size := utf8.DecodeRune(s[r:])
523 r += size
524 replaced = append(replaced, c)
525 continue
526 }
527 r += 1
528 if r >= len(s) {
529 p.bug("Escape sequence at end of string.")
530 return ""
531 }
532 switch s[r] {
533 default:
534 p.bug("Expected valid escape code after \\, but got %q.", s[r])
535 return ""
536 case 'b':
537 replaced = append(replaced, rune(0x0008))
538 r += 1
539 case 't':
540 replaced = append(replaced, rune(0x0009))
541 r += 1
542 case 'n':
543 replaced = append(replaced, rune(0x000A))
544 r += 1
545 case 'f':
546 replaced = append(replaced, rune(0x000C))
547 r += 1
548 case 'r':
549 replaced = append(replaced, rune(0x000D))
550 r += 1
551 case '"':
552 replaced = append(replaced, rune(0x0022))
553 r += 1
554 case '\\':
555 replaced = append(replaced, rune(0x005C))
556 r += 1
557 case 'u':
558 // At this point, we know we have a Unicode escape of the form
559 // `uXXXX` at [r, r+5). (Because the lexer guarantees this
560 // for us.)
561 escaped := p.asciiEscapeToUnicode(s[r+1 : r+5])
562 replaced = append(replaced, escaped)
563 r += 5
564 case 'U':
565 // At this point, we know we have a Unicode escape of the form
566 // `uXXXX` at [r, r+9). (Because the lexer guarantees this
567 // for us.)
568 escaped := p.asciiEscapeToUnicode(s[r+1 : r+9])
569 replaced = append(replaced, escaped)
570 r += 9
571 }
572 }
573 return string(replaced)
574}
575
576func (p *parser) asciiEscapeToUnicode(bs []byte) rune {
577 s := string(bs)
578 hex, err := strconv.ParseUint(strings.ToLower(s), 16, 32)
579 if err != nil {
580 p.bug("Could not parse '%s' as a hexadecimal number, but the "+
581 "lexer claims it's OK: %s", s, err)
582 }
583 if !utf8.ValidRune(rune(hex)) {
584 p.panicf("Escaped character '\\u%s' is not valid UTF-8.", s)
585 }
586 return rune(hex)
587}
588
589func isStringType(ty itemType) bool {
590 return ty == itemString || ty == itemMultilineString ||
591 ty == itemRawString || ty == itemRawMultilineString
592}
diff --git a/vendor/github.com/BurntSushi/toml/session.vim b/vendor/github.com/BurntSushi/toml/session.vim
new file mode 100644
index 0000000..562164b
--- /dev/null
+++ b/vendor/github.com/BurntSushi/toml/session.vim
@@ -0,0 +1 @@
au BufWritePost *.go silent!make tags > /dev/null 2>&1
diff --git a/vendor/github.com/BurntSushi/toml/type_check.go b/vendor/github.com/BurntSushi/toml/type_check.go
new file mode 100644
index 0000000..c73f8af
--- /dev/null
+++ b/vendor/github.com/BurntSushi/toml/type_check.go
@@ -0,0 +1,91 @@
1package toml
2
3// tomlType represents any Go type that corresponds to a TOML type.
4// While the first draft of the TOML spec has a simplistic type system that
5// probably doesn't need this level of sophistication, we seem to be militating
6// toward adding real composite types.
7type tomlType interface {
8 typeString() string
9}
10
11// typeEqual accepts any two types and returns true if they are equal.
12func typeEqual(t1, t2 tomlType) bool {
13 if t1 == nil || t2 == nil {
14 return false
15 }
16 return t1.typeString() == t2.typeString()
17}
18
19func typeIsHash(t tomlType) bool {
20 return typeEqual(t, tomlHash) || typeEqual(t, tomlArrayHash)
21}
22
23type tomlBaseType string
24
25func (btype tomlBaseType) typeString() string {
26 return string(btype)
27}
28
29func (btype tomlBaseType) String() string {
30 return btype.typeString()
31}
32
33var (
34 tomlInteger tomlBaseType = "Integer"
35 tomlFloat tomlBaseType = "Float"
36 tomlDatetime tomlBaseType = "Datetime"
37 tomlString tomlBaseType = "String"
38 tomlBool tomlBaseType = "Bool"
39 tomlArray tomlBaseType = "Array"
40 tomlHash tomlBaseType = "Hash"
41 tomlArrayHash tomlBaseType = "ArrayHash"
42)
43
44// typeOfPrimitive returns a tomlType of any primitive value in TOML.
45// Primitive values are: Integer, Float, Datetime, String and Bool.
46//
47// Passing a lexer item other than the following will cause a BUG message
48// to occur: itemString, itemBool, itemInteger, itemFloat, itemDatetime.
49func (p *parser) typeOfPrimitive(lexItem item) tomlType {
50 switch lexItem.typ {
51 case itemInteger:
52 return tomlInteger
53 case itemFloat:
54 return tomlFloat
55 case itemDatetime:
56 return tomlDatetime
57 case itemString:
58 return tomlString
59 case itemMultilineString:
60 return tomlString
61 case itemRawString:
62 return tomlString
63 case itemRawMultilineString:
64 return tomlString
65 case itemBool:
66 return tomlBool
67 }
68 p.bug("Cannot infer primitive type of lex item '%s'.", lexItem)
69 panic("unreachable")
70}
71
72// typeOfArray returns a tomlType for an array given a list of types of its
73// values.
74//
75// In the current spec, if an array is homogeneous, then its type is always
76// "Array". If the array is not homogeneous, an error is generated.
77func (p *parser) typeOfArray(types []tomlType) tomlType {
78 // Empty arrays are cool.
79 if len(types) == 0 {
80 return tomlArray
81 }
82
83 theType := types[0]
84 for _, t := range types[1:] {
85 if !typeEqual(theType, t) {
86 p.panicf("Array contains values of type '%s' and '%s', but "+
87 "arrays must be homogeneous.", theType, t)
88 }
89 }
90 return tomlArray
91}
diff --git a/vendor/github.com/BurntSushi/toml/type_fields.go b/vendor/github.com/BurntSushi/toml/type_fields.go
new file mode 100644
index 0000000..608997c
--- /dev/null
+++ b/vendor/github.com/BurntSushi/toml/type_fields.go
@@ -0,0 +1,242 @@
1package toml
2
3// Struct field handling is adapted from code in encoding/json:
4//
5// Copyright 2010 The Go Authors. All rights reserved.
6// Use of this source code is governed by a BSD-style
7// license that can be found in the Go distribution.
8
9import (
10 "reflect"
11 "sort"
12 "sync"
13)
14
15// A field represents a single field found in a struct.
16type field struct {
17 name string // the name of the field (`toml` tag included)
18 tag bool // whether field has a `toml` tag
19 index []int // represents the depth of an anonymous field
20 typ reflect.Type // the type of the field
21}
22
23// byName sorts field by name, breaking ties with depth,
24// then breaking ties with "name came from toml tag", then
25// breaking ties with index sequence.
26type byName []field
27
28func (x byName) Len() int { return len(x) }
29
30func (x byName) Swap(i, j int) { x[i], x[j] = x[j], x[i] }
31
32func (x byName) Less(i, j int) bool {
33 if x[i].name != x[j].name {
34 return x[i].name < x[j].name
35 }
36 if len(x[i].index) != len(x[j].index) {
37 return len(x[i].index) < len(x[j].index)
38 }
39 if x[i].tag != x[j].tag {
40 return x[i].tag
41 }
42 return byIndex(x).Less(i, j)
43}
44
45// byIndex sorts field by index sequence.
46type byIndex []field
47
48func (x byIndex) Len() int { return len(x) }
49
50func (x byIndex) Swap(i, j int) { x[i], x[j] = x[j], x[i] }
51
52func (x byIndex) Less(i, j int) bool {
53 for k, xik := range x[i].index {
54 if k >= len(x[j].index) {
55 return false
56 }
57 if xik != x[j].index[k] {
58 return xik < x[j].index[k]
59 }
60 }
61 return len(x[i].index) < len(x[j].index)
62}
63
64// typeFields returns a list of fields that TOML should recognize for the given
65// type. The algorithm is breadth-first search over the set of structs to
66// include - the top struct and then any reachable anonymous structs.
67func typeFields(t reflect.Type) []field {
68 // Anonymous fields to explore at the current level and the next.
69 current := []field{}
70 next := []field{{typ: t}}
71
72 // Count of queued names for current level and the next.
73 count := map[reflect.Type]int{}
74 nextCount := map[reflect.Type]int{}
75
76 // Types already visited at an earlier level.
77 visited := map[reflect.Type]bool{}
78
79 // Fields found.
80 var fields []field
81
82 for len(next) > 0 {
83 current, next = next, current[:0]
84 count, nextCount = nextCount, map[reflect.Type]int{}
85
86 for _, f := range current {
87 if visited[f.typ] {
88 continue
89 }
90 visited[f.typ] = true
91
92 // Scan f.typ for fields to include.
93 for i := 0; i < f.typ.NumField(); i++ {
94 sf := f.typ.Field(i)
95 if sf.PkgPath != "" && !sf.Anonymous { // unexported
96 continue
97 }
98 opts := getOptions(sf.Tag)
99 if opts.skip {
100 continue
101 }
102 index := make([]int, len(f.index)+1)
103 copy(index, f.index)
104 index[len(f.index)] = i
105
106 ft := sf.Type
107 if ft.Name() == "" && ft.Kind() == reflect.Ptr {
108 // Follow pointer.
109 ft = ft.Elem()
110 }
111
112 // Record found field and index sequence.
113 if opts.name != "" || !sf.Anonymous || ft.Kind() != reflect.Struct {
114 tagged := opts.name != ""
115 name := opts.name
116 if name == "" {
117 name = sf.Name
118 }
119 fields = append(fields, field{name, tagged, index, ft})
120 if count[f.typ] > 1 {
121 // If there were multiple instances, add a second,
122 // so that the annihilation code will see a duplicate.
123 // It only cares about the distinction between 1 or 2,
124 // so don't bother generating any more copies.
125 fields = append(fields, fields[len(fields)-1])
126 }
127 continue
128 }
129
130 // Record new anonymous struct to explore in next round.
131 nextCount[ft]++
132 if nextCount[ft] == 1 {
133 f := field{name: ft.Name(), index: index, typ: ft}
134 next = append(next, f)
135 }
136 }
137 }
138 }
139
140 sort.Sort(byName(fields))
141
142 // Delete all fields that are hidden by the Go rules for embedded fields,
143 // except that fields with TOML tags are promoted.
144
145 // The fields are sorted in primary order of name, secondary order
146 // of field index length. Loop over names; for each name, delete
147 // hidden fields by choosing the one dominant field that survives.
148 out := fields[:0]
149 for advance, i := 0, 0; i < len(fields); i += advance {
150 // One iteration per name.
151 // Find the sequence of fields with the name of this first field.
152 fi := fields[i]
153 name := fi.name
154 for advance = 1; i+advance < len(fields); advance++ {
155 fj := fields[i+advance]
156 if fj.name != name {
157 break
158 }
159 }
160 if advance == 1 { // Only one field with this name
161 out = append(out, fi)
162 continue
163 }
164 dominant, ok := dominantField(fields[i : i+advance])
165 if ok {
166 out = append(out, dominant)
167 }
168 }
169
170 fields = out
171 sort.Sort(byIndex(fields))
172
173 return fields
174}
175
176// dominantField looks through the fields, all of which are known to
177// have the same name, to find the single field that dominates the
178// others using Go's embedding rules, modified by the presence of
179// TOML tags. If there are multiple top-level fields, the boolean
180// will be false: This condition is an error in Go and we skip all
181// the fields.
182func dominantField(fields []field) (field, bool) {
183 // The fields are sorted in increasing index-length order. The winner
184 // must therefore be one with the shortest index length. Drop all
185 // longer entries, which is easy: just truncate the slice.
186 length := len(fields[0].index)
187 tagged := -1 // Index of first tagged field.
188 for i, f := range fields {
189 if len(f.index) > length {
190 fields = fields[:i]
191 break
192 }
193 if f.tag {
194 if tagged >= 0 {
195 // Multiple tagged fields at the same level: conflict.
196 // Return no field.
197 return field{}, false
198 }
199 tagged = i
200 }
201 }
202 if tagged >= 0 {
203 return fields[tagged], true
204 }
205 // All remaining fields have the same length. If there's more than one,
206 // we have a conflict (two fields named "X" at the same level) and we
207 // return no field.
208 if len(fields) > 1 {
209 return field{}, false
210 }
211 return fields[0], true
212}
213
214var fieldCache struct {
215 sync.RWMutex
216 m map[reflect.Type][]field
217}
218
219// cachedTypeFields is like typeFields but uses a cache to avoid repeated work.
220func cachedTypeFields(t reflect.Type) []field {
221 fieldCache.RLock()
222 f := fieldCache.m[t]
223 fieldCache.RUnlock()
224 if f != nil {
225 return f
226 }
227
228 // Compute fields without lock.
229 // Might duplicate effort but won't hold other computations back.
230 f = typeFields(t)
231 if f == nil {
232 f = []field{}
233 }
234
235 fieldCache.Lock()
236 if fieldCache.m == nil {
237 fieldCache.m = map[reflect.Type][]field{}
238 }
239 fieldCache.m[t] = f
240 fieldCache.Unlock()
241 return f
242}
diff --git a/vendor/github.com/alecthomas/units/bytes.go b/vendor/github.com/alecthomas/units/bytes.go
index eaadeb8..61d0ca4 100644
--- a/vendor/github.com/alecthomas/units/bytes.go
+++ b/vendor/github.com/alecthomas/units/bytes.go
@@ -27,6 +27,7 @@ var (
27 27
28// ParseBase2Bytes supports both iB and B in base-2 multipliers. That is, KB 28// ParseBase2Bytes supports both iB and B in base-2 multipliers. That is, KB
29// and KiB are both 1024. 29// and KiB are both 1024.
30// However "kB", which is the correct SI spelling of 1000 Bytes, is rejected.
30func ParseBase2Bytes(s string) (Base2Bytes, error) { 31func ParseBase2Bytes(s string) (Base2Bytes, error) {
31 n, err := ParseUnit(s, bytesUnitMap) 32 n, err := ParseUnit(s, bytesUnitMap)
32 if err != nil { 33 if err != nil {
@@ -68,12 +69,13 @@ func ParseMetricBytes(s string) (MetricBytes, error) {
68 return MetricBytes(n), err 69 return MetricBytes(n), err
69} 70}
70 71
72// TODO: represents 1000B as uppercase "KB", while SI standard requires "kB".
71func (m MetricBytes) String() string { 73func (m MetricBytes) String() string {
72 return ToString(int64(m), 1000, "B", "B") 74 return ToString(int64(m), 1000, "B", "B")
73} 75}
74 76
75// ParseStrictBytes supports both iB and B suffixes for base 2 and metric, 77// ParseStrictBytes supports both iB and B suffixes for base 2 and metric,
76// respectively. That is, KiB represents 1024 and KB represents 1000. 78// respectively. That is, KiB represents 1024 and kB, KB represent 1000.
77func ParseStrictBytes(s string) (int64, error) { 79func ParseStrictBytes(s string) (int64, error) {
78 n, err := ParseUnit(s, bytesUnitMap) 80 n, err := ParseUnit(s, bytesUnitMap)
79 if err != nil { 81 if err != nil {
diff --git a/vendor/github.com/alecthomas/units/go.mod b/vendor/github.com/alecthomas/units/go.mod
index f572173..c7fb91f 100644
--- a/vendor/github.com/alecthomas/units/go.mod
+++ b/vendor/github.com/alecthomas/units/go.mod
@@ -1 +1,3 @@
1module github.com/alecthomas/units 1module github.com/alecthomas/units
2
3require github.com/stretchr/testify v1.4.0
diff --git a/vendor/github.com/alecthomas/units/go.sum b/vendor/github.com/alecthomas/units/go.sum
new file mode 100644
index 0000000..8fdee58
--- /dev/null
+++ b/vendor/github.com/alecthomas/units/go.sum
@@ -0,0 +1,11 @@
1github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8=
2github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
3github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
4github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
5github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
6github.com/stretchr/testify v1.4.0 h1:2E4SXV/wtOkTonXsotYi4li6zVWxYlZuYNCXe9XRJyk=
7github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
8gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM=
9gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
10gopkg.in/yaml.v2 v2.2.2 h1:ZCJp+EgiOT7lHqUV2J862kp8Qj64Jo6az82+3Td9dZw=
11gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
diff --git a/vendor/github.com/alecthomas/units/si.go b/vendor/github.com/alecthomas/units/si.go
index 8234a9d..99b2fa4 100644
--- a/vendor/github.com/alecthomas/units/si.go
+++ b/vendor/github.com/alecthomas/units/si.go
@@ -14,13 +14,37 @@ const (
14) 14)
15 15
16func MakeUnitMap(suffix, shortSuffix string, scale int64) map[string]float64 { 16func MakeUnitMap(suffix, shortSuffix string, scale int64) map[string]float64 {
17 return map[string]float64{ 17 res := map[string]float64{
18 shortSuffix: 1, 18 shortSuffix: 1,
19 "K" + suffix: float64(scale), 19 // see below for "k" / "K"
20 "M" + suffix: float64(scale * scale), 20 "M" + suffix: float64(scale * scale),
21 "G" + suffix: float64(scale * scale * scale), 21 "G" + suffix: float64(scale * scale * scale),
22 "T" + suffix: float64(scale * scale * scale * scale), 22 "T" + suffix: float64(scale * scale * scale * scale),
23 "P" + suffix: float64(scale * scale * scale * scale * scale), 23 "P" + suffix: float64(scale * scale * scale * scale * scale),
24 "E" + suffix: float64(scale * scale * scale * scale * scale * scale), 24 "E" + suffix: float64(scale * scale * scale * scale * scale * scale),
25 } 25 }
26
27 // Standard SI prefixes use lowercase "k" for kilo = 1000.
28 // For compatibility, and to be fool-proof, we accept both "k" and "K" in metric mode.
29 //
30 // However, official binary prefixes are always capitalized - "KiB" -
31 // and we specifically never parse "kB" as 1024B because:
32 //
33 // (1) people pedantic enough to use lowercase according to SI unlikely to abuse "k" to mean 1024 :-)
34 //
35 // (2) Use of capital K for 1024 was an informal tradition predating IEC prefixes:
36 // "The binary meaning of the kilobyte for 1024 bytes typically uses the symbol KB, with an
37 // uppercase letter K."
38 // -- https://en.wikipedia.org/wiki/Kilobyte#Base_2_(1024_bytes)
39 // "Capitalization of the letter K became the de facto standard for binary notation, although this
40 // could not be extended to higher powers, and use of the lowercase k did persist.[13][14][15]"
41 // -- https://en.wikipedia.org/wiki/Binary_prefix#History
42 // See also the extensive https://en.wikipedia.org/wiki/Timeline_of_binary_prefixes.
43 if scale == 1024 {
44 res["K"+suffix] = float64(scale)
45 } else {
46 res["k"+suffix] = float64(scale)
47 res["K"+suffix] = float64(scale)
48 }
49 return res
26} 50}
diff --git a/vendor/github.com/cespare/xxhash/v2/.travis.yml b/vendor/github.com/cespare/xxhash/v2/.travis.yml
new file mode 100644
index 0000000..c516ea8
--- /dev/null
+++ b/vendor/github.com/cespare/xxhash/v2/.travis.yml
@@ -0,0 +1,8 @@
1language: go
2go:
3 - "1.x"
4 - master
5env:
6 - TAGS=""
7 - TAGS="-tags purego"
8script: go test $TAGS -v ./...
diff --git a/vendor/github.com/cespare/xxhash/v2/LICENSE.txt b/vendor/github.com/cespare/xxhash/v2/LICENSE.txt
new file mode 100644
index 0000000..24b5306
--- /dev/null
+++ b/vendor/github.com/cespare/xxhash/v2/LICENSE.txt
@@ -0,0 +1,22 @@
1Copyright (c) 2016 Caleb Spare
2
3MIT License
4
5Permission is hereby granted, free of charge, to any person obtaining
6a copy of this software and associated documentation files (the
7"Software"), to deal in the Software without restriction, including
8without limitation the rights to use, copy, modify, merge, publish,
9distribute, sublicense, and/or sell copies of the Software, and to
10permit persons to whom the Software is furnished to do so, subject to
11the following conditions:
12
13The above copyright notice and this permission notice shall be
14included in all copies or substantial portions of the Software.
15
16THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/vendor/github.com/cespare/xxhash/v2/README.md b/vendor/github.com/cespare/xxhash/v2/README.md
new file mode 100644
index 0000000..2fd8693
--- /dev/null
+++ b/vendor/github.com/cespare/xxhash/v2/README.md
@@ -0,0 +1,67 @@
1# xxhash
2
3[![GoDoc](https://godoc.org/github.com/cespare/xxhash?status.svg)](https://godoc.org/github.com/cespare/xxhash)
4[![Build Status](https://travis-ci.org/cespare/xxhash.svg?branch=master)](https://travis-ci.org/cespare/xxhash)
5
6xxhash is a Go implementation of the 64-bit
7[xxHash](http://cyan4973.github.io/xxHash/) algorithm, XXH64. This is a
8high-quality hashing algorithm that is much faster than anything in the Go
9standard library.
10
11This package provides a straightforward API:
12
13```
14func Sum64(b []byte) uint64
15func Sum64String(s string) uint64
16type Digest struct{ ... }
17 func New() *Digest
18```
19
20The `Digest` type implements hash.Hash64. Its key methods are:
21
22```
23func (*Digest) Write([]byte) (int, error)
24func (*Digest) WriteString(string) (int, error)
25func (*Digest) Sum64() uint64
26```
27
28This implementation provides a fast pure-Go implementation and an even faster
29assembly implementation for amd64.
30
31## Compatibility
32
33This package is in a module and the latest code is in version 2 of the module.
34You need a version of Go with at least "minimal module compatibility" to use
35github.com/cespare/xxhash/v2:
36
37* 1.9.7+ for Go 1.9
38* 1.10.3+ for Go 1.10
39* Go 1.11 or later
40
41I recommend using the latest release of Go.
42
43## Benchmarks
44
45Here are some quick benchmarks comparing the pure-Go and assembly
46implementations of Sum64.
47
48| input size | purego | asm |
49| --- | --- | --- |
50| 5 B | 979.66 MB/s | 1291.17 MB/s |
51| 100 B | 7475.26 MB/s | 7973.40 MB/s |
52| 4 KB | 17573.46 MB/s | 17602.65 MB/s |
53| 10 MB | 17131.46 MB/s | 17142.16 MB/s |
54
55These numbers were generated on Ubuntu 18.04 with an Intel i7-8700K CPU using
56the following commands under Go 1.11.2:
57
58```
59$ go test -tags purego -benchtime 10s -bench '/xxhash,direct,bytes'
60$ go test -benchtime 10s -bench '/xxhash,direct,bytes'
61```
62
63## Projects using this package
64
65- [InfluxDB](https://github.com/influxdata/influxdb)
66- [Prometheus](https://github.com/prometheus/prometheus)
67- [FreeCache](https://github.com/coocood/freecache)
diff --git a/vendor/github.com/cespare/xxhash/v2/go.mod b/vendor/github.com/cespare/xxhash/v2/go.mod
new file mode 100644
index 0000000..49f6760
--- /dev/null
+++ b/vendor/github.com/cespare/xxhash/v2/go.mod
@@ -0,0 +1,3 @@
1module github.com/cespare/xxhash/v2
2
3go 1.11
diff --git a/vendor/github.com/cespare/xxhash/v2/go.sum b/vendor/github.com/cespare/xxhash/v2/go.sum
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/vendor/github.com/cespare/xxhash/v2/go.sum
diff --git a/vendor/github.com/cespare/xxhash/v2/xxhash.go b/vendor/github.com/cespare/xxhash/v2/xxhash.go
new file mode 100644
index 0000000..db0b35f
--- /dev/null
+++ b/vendor/github.com/cespare/xxhash/v2/xxhash.go
@@ -0,0 +1,236 @@
1// Package xxhash implements the 64-bit variant of xxHash (XXH64) as described
2// at http://cyan4973.github.io/xxHash/.
3package xxhash
4
5import (
6 "encoding/binary"
7 "errors"
8 "math/bits"
9)
10
11const (
12 prime1 uint64 = 11400714785074694791
13 prime2 uint64 = 14029467366897019727
14 prime3 uint64 = 1609587929392839161
15 prime4 uint64 = 9650029242287828579
16 prime5 uint64 = 2870177450012600261
17)
18
19// NOTE(caleb): I'm using both consts and vars of the primes. Using consts where
20// possible in the Go code is worth a small (but measurable) performance boost
21// by avoiding some MOVQs. Vars are needed for the asm and also are useful for
22// convenience in the Go code in a few places where we need to intentionally
23// avoid constant arithmetic (e.g., v1 := prime1 + prime2 fails because the
24// result overflows a uint64).
25var (
26 prime1v = prime1
27 prime2v = prime2
28 prime3v = prime3
29 prime4v = prime4
30 prime5v = prime5
31)
32
33// Digest implements hash.Hash64.
34type Digest struct {
35 v1 uint64
36 v2 uint64
37 v3 uint64
38 v4 uint64
39 total uint64
40 mem [32]byte
41 n int // how much of mem is used
42}
43
44// New creates a new Digest that computes the 64-bit xxHash algorithm.
45func New() *Digest {
46 var d Digest
47 d.Reset()
48 return &d
49}
50
51// Reset clears the Digest's state so that it can be reused.
52func (d *Digest) Reset() {
53 d.v1 = prime1v + prime2
54 d.v2 = prime2
55 d.v3 = 0
56 d.v4 = -prime1v
57 d.total = 0
58 d.n = 0
59}
60
61// Size always returns 8 bytes.
62func (d *Digest) Size() int { return 8 }
63
64// BlockSize always returns 32 bytes.
65func (d *Digest) BlockSize() int { return 32 }
66
67// Write adds more data to d. It always returns len(b), nil.
68func (d *Digest) Write(b []byte) (n int, err error) {
69 n = len(b)
70 d.total += uint64(n)
71
72 if d.n+n < 32 {
73 // This new data doesn't even fill the current block.
74 copy(d.mem[d.n:], b)
75 d.n += n
76 return
77 }
78
79 if d.n > 0 {
80 // Finish off the partial block.
81 copy(d.mem[d.n:], b)
82 d.v1 = round(d.v1, u64(d.mem[0:8]))
83 d.v2 = round(d.v2, u64(d.mem[8:16]))
84 d.v3 = round(d.v3, u64(d.mem[16:24]))
85 d.v4 = round(d.v4, u64(d.mem[24:32]))
86 b = b[32-d.n:]
87 d.n = 0
88 }
89
90 if len(b) >= 32 {
91 // One or more full blocks left.
92 nw := writeBlocks(d, b)
93 b = b[nw:]
94 }
95
96 // Store any remaining partial block.
97 copy(d.mem[:], b)
98 d.n = len(b)
99
100 return
101}
102
103// Sum appends the current hash to b and returns the resulting slice.
104func (d *Digest) Sum(b []byte) []byte {
105 s := d.Sum64()
106 return append(
107 b,
108 byte(s>>56),
109 byte(s>>48),
110 byte(s>>40),
111 byte(s>>32),
112 byte(s>>24),
113 byte(s>>16),
114 byte(s>>8),
115 byte(s),
116 )
117}
118
119// Sum64 returns the current hash.
120func (d *Digest) Sum64() uint64 {
121 var h uint64
122
123 if d.total >= 32 {
124 v1, v2, v3, v4 := d.v1, d.v2, d.v3, d.v4
125 h = rol1(v1) + rol7(v2) + rol12(v3) + rol18(v4)
126 h = mergeRound(h, v1)
127 h = mergeRound(h, v2)
128 h = mergeRound(h, v3)
129 h = mergeRound(h, v4)
130 } else {
131 h = d.v3 + prime5
132 }
133
134 h += d.total
135
136 i, end := 0, d.n
137 for ; i+8 <= end; i += 8 {
138 k1 := round(0, u64(d.mem[i:i+8]))
139 h ^= k1
140 h = rol27(h)*prime1 + prime4
141 }
142 if i+4 <= end {
143 h ^= uint64(u32(d.mem[i:i+4])) * prime1
144 h = rol23(h)*prime2 + prime3
145 i += 4
146 }
147 for i < end {
148 h ^= uint64(d.mem[i]) * prime5
149 h = rol11(h) * prime1
150 i++
151 }
152
153 h ^= h >> 33
154 h *= prime2
155 h ^= h >> 29
156 h *= prime3
157 h ^= h >> 32
158
159 return h
160}
161
162const (
163 magic = "xxh\x06"
164 marshaledSize = len(magic) + 8*5 + 32
165)
166
167// MarshalBinary implements the encoding.BinaryMarshaler interface.
168func (d *Digest) MarshalBinary() ([]byte, error) {
169 b := make([]byte, 0, marshaledSize)
170 b = append(b, magic...)
171 b = appendUint64(b, d.v1)
172 b = appendUint64(b, d.v2)
173 b = appendUint64(b, d.v3)
174 b = appendUint64(b, d.v4)
175 b = appendUint64(b, d.total)
176 b = append(b, d.mem[:d.n]...)
177 b = b[:len(b)+len(d.mem)-d.n]
178 return b, nil
179}
180
181// UnmarshalBinary implements the encoding.BinaryUnmarshaler interface.
182func (d *Digest) UnmarshalBinary(b []byte) error {
183 if len(b) < len(magic) || string(b[:len(magic)]) != magic {
184 return errors.New("xxhash: invalid hash state identifier")
185 }
186 if len(b) != marshaledSize {
187 return errors.New("xxhash: invalid hash state size")
188 }
189 b = b[len(magic):]
190 b, d.v1 = consumeUint64(b)
191 b, d.v2 = consumeUint64(b)
192 b, d.v3 = consumeUint64(b)
193 b, d.v4 = consumeUint64(b)
194 b, d.total = consumeUint64(b)
195 copy(d.mem[:], b)
196 b = b[len(d.mem):]
197 d.n = int(d.total % uint64(len(d.mem)))
198 return nil
199}
200
201func appendUint64(b []byte, x uint64) []byte {
202 var a [8]byte
203 binary.LittleEndian.PutUint64(a[:], x)
204 return append(b, a[:]...)
205}
206
207func consumeUint64(b []byte) ([]byte, uint64) {
208 x := u64(b)
209 return b[8:], x
210}
211
212func u64(b []byte) uint64 { return binary.LittleEndian.Uint64(b) }
213func u32(b []byte) uint32 { return binary.LittleEndian.Uint32(b) }
214
215func round(acc, input uint64) uint64 {
216 acc += input * prime2
217 acc = rol31(acc)
218 acc *= prime1
219 return acc
220}
221
222func mergeRound(acc, val uint64) uint64 {
223 val = round(0, val)
224 acc ^= val
225 acc = acc*prime1 + prime4
226 return acc
227}
228
229func rol1(x uint64) uint64 { return bits.RotateLeft64(x, 1) }
230func rol7(x uint64) uint64 { return bits.RotateLeft64(x, 7) }
231func rol11(x uint64) uint64 { return bits.RotateLeft64(x, 11) }
232func rol12(x uint64) uint64 { return bits.RotateLeft64(x, 12) }
233func rol18(x uint64) uint64 { return bits.RotateLeft64(x, 18) }
234func rol23(x uint64) uint64 { return bits.RotateLeft64(x, 23) }
235func rol27(x uint64) uint64 { return bits.RotateLeft64(x, 27) }
236func rol31(x uint64) uint64 { return bits.RotateLeft64(x, 31) }
diff --git a/vendor/github.com/cespare/xxhash/v2/xxhash_amd64.go b/vendor/github.com/cespare/xxhash/v2/xxhash_amd64.go
new file mode 100644
index 0000000..ad14b80
--- /dev/null
+++ b/vendor/github.com/cespare/xxhash/v2/xxhash_amd64.go
@@ -0,0 +1,13 @@
1// +build !appengine
2// +build gc
3// +build !purego
4
5package xxhash
6
7// Sum64 computes the 64-bit xxHash digest of b.
8//
9//go:noescape
10func Sum64(b []byte) uint64
11
12//go:noescape
13func writeBlocks(d *Digest, b []byte) int
diff --git a/vendor/github.com/cespare/xxhash/v2/xxhash_amd64.s b/vendor/github.com/cespare/xxhash/v2/xxhash_amd64.s
new file mode 100644
index 0000000..d580e32
--- /dev/null
+++ b/vendor/github.com/cespare/xxhash/v2/xxhash_amd64.s
@@ -0,0 +1,215 @@
1// +build !appengine
2// +build gc
3// +build !purego
4
5#include "textflag.h"
6
7// Register allocation:
8// AX h
9// CX pointer to advance through b
10// DX n
11// BX loop end
12// R8 v1, k1
13// R9 v2
14// R10 v3
15// R11 v4
16// R12 tmp
17// R13 prime1v
18// R14 prime2v
19// R15 prime4v
20
21// round reads from and advances the buffer pointer in CX.
22// It assumes that R13 has prime1v and R14 has prime2v.
23#define round(r) \
24 MOVQ (CX), R12 \
25 ADDQ $8, CX \
26 IMULQ R14, R12 \
27 ADDQ R12, r \
28 ROLQ $31, r \
29 IMULQ R13, r
30
31// mergeRound applies a merge round on the two registers acc and val.
32// It assumes that R13 has prime1v, R14 has prime2v, and R15 has prime4v.
33#define mergeRound(acc, val) \
34 IMULQ R14, val \
35 ROLQ $31, val \
36 IMULQ R13, val \
37 XORQ val, acc \
38 IMULQ R13, acc \
39 ADDQ R15, acc
40
41// func Sum64(b []byte) uint64
42TEXT ·Sum64(SB), NOSPLIT, $0-32
43 // Load fixed primes.
44 MOVQ ·prime1v(SB), R13
45 MOVQ ·prime2v(SB), R14
46 MOVQ ·prime4v(SB), R15
47
48 // Load slice.
49 MOVQ b_base+0(FP), CX
50 MOVQ b_len+8(FP), DX
51 LEAQ (CX)(DX*1), BX
52
53 // The first loop limit will be len(b)-32.
54 SUBQ $32, BX
55
56 // Check whether we have at least one block.
57 CMPQ DX, $32
58 JLT noBlocks
59
60 // Set up initial state (v1, v2, v3, v4).
61 MOVQ R13, R8
62 ADDQ R14, R8
63 MOVQ R14, R9
64 XORQ R10, R10
65 XORQ R11, R11
66 SUBQ R13, R11
67
68 // Loop until CX > BX.
69blockLoop:
70 round(R8)
71 round(R9)
72 round(R10)
73 round(R11)
74
75 CMPQ CX, BX
76 JLE blockLoop
77
78 MOVQ R8, AX
79 ROLQ $1, AX
80 MOVQ R9, R12
81 ROLQ $7, R12
82 ADDQ R12, AX
83 MOVQ R10, R12
84 ROLQ $12, R12
85 ADDQ R12, AX
86 MOVQ R11, R12
87 ROLQ $18, R12
88 ADDQ R12, AX
89
90 mergeRound(AX, R8)
91 mergeRound(AX, R9)
92 mergeRound(AX, R10)
93 mergeRound(AX, R11)
94
95 JMP afterBlocks
96
97noBlocks:
98 MOVQ ·prime5v(SB), AX
99
100afterBlocks:
101 ADDQ DX, AX
102
103 // Right now BX has len(b)-32, and we want to loop until CX > len(b)-8.
104 ADDQ $24, BX
105
106 CMPQ CX, BX
107 JG fourByte
108
109wordLoop:
110 // Calculate k1.
111 MOVQ (CX), R8
112 ADDQ $8, CX
113 IMULQ R14, R8
114 ROLQ $31, R8
115 IMULQ R13, R8
116
117 XORQ R8, AX
118 ROLQ $27, AX
119 IMULQ R13, AX
120 ADDQ R15, AX
121
122 CMPQ CX, BX
123 JLE wordLoop
124
125fourByte:
126 ADDQ $4, BX
127 CMPQ CX, BX
128 JG singles
129
130 MOVL (CX), R8
131 ADDQ $4, CX
132 IMULQ R13, R8
133 XORQ R8, AX
134
135 ROLQ $23, AX
136 IMULQ R14, AX
137 ADDQ ·prime3v(SB), AX
138
139singles:
140 ADDQ $4, BX
141 CMPQ CX, BX
142 JGE finalize
143
144singlesLoop:
145 MOVBQZX (CX), R12
146 ADDQ $1, CX
147 IMULQ ·prime5v(SB), R12
148 XORQ R12, AX
149
150 ROLQ $11, AX
151 IMULQ R13, AX
152
153 CMPQ CX, BX
154 JL singlesLoop
155
156finalize:
157 MOVQ AX, R12
158 SHRQ $33, R12
159 XORQ R12, AX
160 IMULQ R14, AX
161 MOVQ AX, R12
162 SHRQ $29, R12
163 XORQ R12, AX
164 IMULQ ·prime3v(SB), AX
165 MOVQ AX, R12
166 SHRQ $32, R12
167 XORQ R12, AX
168
169 MOVQ AX, ret+24(FP)
170 RET
171
172// writeBlocks uses the same registers as above except that it uses AX to store
173// the d pointer.
174
175// func writeBlocks(d *Digest, b []byte) int
176TEXT ·writeBlocks(SB), NOSPLIT, $0-40
177 // Load fixed primes needed for round.
178 MOVQ ·prime1v(SB), R13
179 MOVQ ·prime2v(SB), R14
180
181 // Load slice.
182 MOVQ b_base+8(FP), CX
183 MOVQ b_len+16(FP), DX
184 LEAQ (CX)(DX*1), BX
185 SUBQ $32, BX
186
187 // Load vN from d.
188 MOVQ d+0(FP), AX
189 MOVQ 0(AX), R8 // v1
190 MOVQ 8(AX), R9 // v2
191 MOVQ 16(AX), R10 // v3
192 MOVQ 24(AX), R11 // v4
193
194 // We don't need to check the loop condition here; this function is
195 // always called with at least one block of data to process.
196blockLoop:
197 round(R8)
198 round(R9)
199 round(R10)
200 round(R11)
201
202 CMPQ CX, BX
203 JLE blockLoop
204
205 // Copy vN back to d.
206 MOVQ R8, 0(AX)
207 MOVQ R9, 8(AX)
208 MOVQ R10, 16(AX)
209 MOVQ R11, 24(AX)
210
211 // The number of bytes written is CX minus the old base pointer.
212 SUBQ b_base+8(FP), CX
213 MOVQ CX, ret+32(FP)
214
215 RET
diff --git a/vendor/github.com/cespare/xxhash/v2/xxhash_other.go b/vendor/github.com/cespare/xxhash/v2/xxhash_other.go
new file mode 100644
index 0000000..4a5a821
--- /dev/null
+++ b/vendor/github.com/cespare/xxhash/v2/xxhash_other.go
@@ -0,0 +1,76 @@
1// +build !amd64 appengine !gc purego
2
3package xxhash
4
5// Sum64 computes the 64-bit xxHash digest of b.
6func Sum64(b []byte) uint64 {
7 // A simpler version would be
8 // d := New()
9 // d.Write(b)
10 // return d.Sum64()
11 // but this is faster, particularly for small inputs.
12
13 n := len(b)
14 var h uint64
15
16 if n >= 32 {
17 v1 := prime1v + prime2
18 v2 := prime2
19 v3 := uint64(0)
20 v4 := -prime1v
21 for len(b) >= 32 {
22 v1 = round(v1, u64(b[0:8:len(b)]))
23 v2 = round(v2, u64(b[8:16:len(b)]))
24 v3 = round(v3, u64(b[16:24:len(b)]))
25 v4 = round(v4, u64(b[24:32:len(b)]))
26 b = b[32:len(b):len(b)]
27 }
28 h = rol1(v1) + rol7(v2) + rol12(v3) + rol18(v4)
29 h = mergeRound(h, v1)
30 h = mergeRound(h, v2)
31 h = mergeRound(h, v3)
32 h = mergeRound(h, v4)
33 } else {
34 h = prime5
35 }
36
37 h += uint64(n)
38
39 i, end := 0, len(b)
40 for ; i+8 <= end; i += 8 {
41 k1 := round(0, u64(b[i:i+8:len(b)]))
42 h ^= k1
43 h = rol27(h)*prime1 + prime4
44 }
45 if i+4 <= end {
46 h ^= uint64(u32(b[i:i+4:len(b)])) * prime1
47 h = rol23(h)*prime2 + prime3
48 i += 4
49 }
50 for ; i < end; i++ {
51 h ^= uint64(b[i]) * prime5
52 h = rol11(h) * prime1
53 }
54
55 h ^= h >> 33
56 h *= prime2
57 h ^= h >> 29
58 h *= prime3
59 h ^= h >> 32
60
61 return h
62}
63
64func writeBlocks(d *Digest, b []byte) int {
65 v1, v2, v3, v4 := d.v1, d.v2, d.v3, d.v4
66 n := len(b)
67 for len(b) >= 32 {
68 v1 = round(v1, u64(b[0:8:len(b)]))
69 v2 = round(v2, u64(b[8:16:len(b)]))
70 v3 = round(v3, u64(b[16:24:len(b)]))
71 v4 = round(v4, u64(b[24:32:len(b)]))
72 b = b[32:len(b):len(b)]
73 }
74 d.v1, d.v2, d.v3, d.v4 = v1, v2, v3, v4
75 return n - len(b)
76}
diff --git a/vendor/github.com/cespare/xxhash/v2/xxhash_safe.go b/vendor/github.com/cespare/xxhash/v2/xxhash_safe.go
new file mode 100644
index 0000000..fc9bea7
--- /dev/null
+++ b/vendor/github.com/cespare/xxhash/v2/xxhash_safe.go
@@ -0,0 +1,15 @@
1// +build appengine
2
3// This file contains the safe implementations of otherwise unsafe-using code.
4
5package xxhash
6
7// Sum64String computes the 64-bit xxHash digest of s.
8func Sum64String(s string) uint64 {
9 return Sum64([]byte(s))
10}
11
12// WriteString adds more data to d. It always returns len(s), nil.
13func (d *Digest) WriteString(s string) (n int, err error) {
14 return d.Write([]byte(s))
15}
diff --git a/vendor/github.com/cespare/xxhash/v2/xxhash_unsafe.go b/vendor/github.com/cespare/xxhash/v2/xxhash_unsafe.go
new file mode 100644
index 0000000..53bf76e
--- /dev/null
+++ b/vendor/github.com/cespare/xxhash/v2/xxhash_unsafe.go
@@ -0,0 +1,46 @@
1// +build !appengine
2
3// This file encapsulates usage of unsafe.
4// xxhash_safe.go contains the safe implementations.
5
6package xxhash
7
8import (
9 "reflect"
10 "unsafe"
11)
12
13// Notes:
14//
15// See https://groups.google.com/d/msg/golang-nuts/dcjzJy-bSpw/tcZYBzQqAQAJ
16// for some discussion about these unsafe conversions.
17//
18// In the future it's possible that compiler optimizations will make these
19// unsafe operations unnecessary: https://golang.org/issue/2205.
20//
21// Both of these wrapper functions still incur function call overhead since they
22// will not be inlined. We could write Go/asm copies of Sum64 and Digest.Write
23// for strings to squeeze out a bit more speed. Mid-stack inlining should
24// eventually fix this.
25
26// Sum64String computes the 64-bit xxHash digest of s.
27// It may be faster than Sum64([]byte(s)) by avoiding a copy.
28func Sum64String(s string) uint64 {
29 var b []byte
30 bh := (*reflect.SliceHeader)(unsafe.Pointer(&b))
31 bh.Data = (*reflect.StringHeader)(unsafe.Pointer(&s)).Data
32 bh.Len = len(s)
33 bh.Cap = len(s)
34 return Sum64(b)
35}
36
37// WriteString adds more data to d. It always returns len(s), nil.
38// It may be faster than Write([]byte(s)) by avoiding a copy.
39func (d *Digest) WriteString(s string) (n int, err error) {
40 var b []byte
41 bh := (*reflect.SliceHeader)(unsafe.Pointer(&b))
42 bh.Data = (*reflect.StringHeader)(unsafe.Pointer(&s)).Data
43 bh.Len = len(s)
44 bh.Cap = len(s)
45 return d.Write(b)
46}
diff --git a/vendor/github.com/coreos/go-systemd/dbus/methods.go b/vendor/github.com/coreos/go-systemd/dbus/methods.go
index 5f2790a..5859583 100644
--- a/vendor/github.com/coreos/go-systemd/dbus/methods.go
+++ b/vendor/github.com/coreos/go-systemd/dbus/methods.go
@@ -197,6 +197,12 @@ func (c *Conn) GetUnitPathProperties(path dbus.ObjectPath) (map[string]interface
197 return c.getProperties(path, "org.freedesktop.systemd1.Unit") 197 return c.getProperties(path, "org.freedesktop.systemd1.Unit")
198} 198}
199 199
200// GetAllProperties takes the (unescaped) unit name and returns all of its dbus object properties.
201func (c *Conn) GetAllProperties(unit string) (map[string]interface{}, error) {
202 path := unitPath(unit)
203 return c.getProperties(path, "")
204}
205
200func (c *Conn) getProperty(unit string, dbusInterface string, propertyName string) (*Property, error) { 206func (c *Conn) getProperty(unit string, dbusInterface string, propertyName string) (*Property, error) {
201 var err error 207 var err error
202 var prop dbus.Variant 208 var prop dbus.Variant
diff --git a/vendor/github.com/go-kit/kit/log/json_logger.go b/vendor/github.com/go-kit/kit/log/json_logger.go
index 66094b4..0cedbf8 100644
--- a/vendor/github.com/go-kit/kit/log/json_logger.go
+++ b/vendor/github.com/go-kit/kit/log/json_logger.go
@@ -31,7 +31,9 @@ func (l *jsonLogger) Log(keyvals ...interface{}) error {
31 } 31 }
32 merge(m, k, v) 32 merge(m, k, v)
33 } 33 }
34 return json.NewEncoder(l.Writer).Encode(m) 34 enc := json.NewEncoder(l.Writer)
35 enc.SetEscapeHTML(false)
36 return enc.Encode(m)
35} 37}
36 38
37func merge(dst map[string]interface{}, k, v interface{}) { 39func merge(dst map[string]interface{}, k, v interface{}) {
diff --git a/vendor/github.com/go-logfmt/logfmt/.gitignore b/vendor/github.com/go-logfmt/logfmt/.gitignore
index 320e53e..1d74e21 100644
--- a/vendor/github.com/go-logfmt/logfmt/.gitignore
+++ b/vendor/github.com/go-logfmt/logfmt/.gitignore
@@ -1,4 +1 @@
1_testdata/ .vscode/
2_testdata2/
3logfmt-fuzz.zip
4logfmt.test.exe
diff --git a/vendor/github.com/go-logfmt/logfmt/.travis.yml b/vendor/github.com/go-logfmt/logfmt/.travis.yml
index 25976da..5139309 100644
--- a/vendor/github.com/go-logfmt/logfmt/.travis.yml
+++ b/vendor/github.com/go-logfmt/logfmt/.travis.yml
@@ -6,6 +6,8 @@ go:
6 - "1.9.x" 6 - "1.9.x"
7 - "1.10.x" 7 - "1.10.x"
8 - "1.11.x" 8 - "1.11.x"
9 - "1.12.x"
10 - "1.13.x"
9 - "tip" 11 - "tip"
10 12
11before_install: 13before_install:
diff --git a/vendor/github.com/go-logfmt/logfmt/CHANGELOG.md b/vendor/github.com/go-logfmt/logfmt/CHANGELOG.md
index 3455b8e..1a9a27b 100644
--- a/vendor/github.com/go-logfmt/logfmt/CHANGELOG.md
+++ b/vendor/github.com/go-logfmt/logfmt/CHANGELOG.md
@@ -4,6 +4,12 @@ All notable changes to this project will be documented in this file.
4The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), 4The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
5and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). 5and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
6 6
7## [0.5.0] - 2020-01-03
8
9### Changed
10- Remove the dependency on github.com/kr/logfmt by [@ChrisHines]
11- Move fuzz code to github.com/go-logfmt/fuzzlogfmt by [@ChrisHines]
12
7## [0.4.0] - 2018-11-21 13## [0.4.0] - 2018-11-21
8 14
9### Added 15### Added
@@ -30,6 +36,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
30- Decoder by [@ChrisHines] 36- Decoder by [@ChrisHines]
31- MarshalKeyvals by [@ChrisHines] 37- MarshalKeyvals by [@ChrisHines]
32 38
39[0.5.0]: https://github.com/go-logfmt/logfmt/compare/v0.4.0...v0.5.0
33[0.4.0]: https://github.com/go-logfmt/logfmt/compare/v0.3.0...v0.4.0 40[0.4.0]: https://github.com/go-logfmt/logfmt/compare/v0.3.0...v0.4.0
34[0.3.0]: https://github.com/go-logfmt/logfmt/compare/v0.2.0...v0.3.0 41[0.3.0]: https://github.com/go-logfmt/logfmt/compare/v0.2.0...v0.3.0
35[0.2.0]: https://github.com/go-logfmt/logfmt/compare/v0.1.0...v0.2.0 42[0.2.0]: https://github.com/go-logfmt/logfmt/compare/v0.1.0...v0.2.0
diff --git a/vendor/github.com/go-logfmt/logfmt/decode.go b/vendor/github.com/go-logfmt/logfmt/decode.go
index 04e0eff..2013708 100644
--- a/vendor/github.com/go-logfmt/logfmt/decode.go
+++ b/vendor/github.com/go-logfmt/logfmt/decode.go
@@ -79,7 +79,7 @@ key:
79 dec.pos += p 79 dec.pos += p
80 if dec.pos > start { 80 if dec.pos > start {
81 dec.key = line[start:dec.pos] 81 dec.key = line[start:dec.pos]
82 if multibyte && bytes.IndexRune(dec.key, utf8.RuneError) != -1 { 82 if multibyte && bytes.ContainsRune(dec.key, utf8.RuneError) {
83 dec.syntaxError(invalidKeyError) 83 dec.syntaxError(invalidKeyError)
84 return false 84 return false
85 } 85 }
@@ -97,7 +97,7 @@ key:
97 dec.pos += p 97 dec.pos += p
98 if dec.pos > start { 98 if dec.pos > start {
99 dec.key = line[start:dec.pos] 99 dec.key = line[start:dec.pos]
100 if multibyte && bytes.IndexRune(dec.key, utf8.RuneError) != -1 { 100 if multibyte && bytes.ContainsRune(dec.key, utf8.RuneError) {
101 dec.syntaxError(invalidKeyError) 101 dec.syntaxError(invalidKeyError)
102 return false 102 return false
103 } 103 }
@@ -110,7 +110,7 @@ key:
110 dec.pos = len(line) 110 dec.pos = len(line)
111 if dec.pos > start { 111 if dec.pos > start {
112 dec.key = line[start:dec.pos] 112 dec.key = line[start:dec.pos]
113 if multibyte && bytes.IndexRune(dec.key, utf8.RuneError) != -1 { 113 if multibyte && bytes.ContainsRune(dec.key, utf8.RuneError) {
114 dec.syntaxError(invalidKeyError) 114 dec.syntaxError(invalidKeyError)
115 return false 115 return false
116 } 116 }
diff --git a/vendor/github.com/go-logfmt/logfmt/fuzz.go b/vendor/github.com/go-logfmt/logfmt/fuzz.go
deleted file mode 100644
index 6553b35..0000000
--- a/vendor/github.com/go-logfmt/logfmt/fuzz.go
+++ /dev/null
@@ -1,126 +0,0 @@
1// +build gofuzz
2
3package logfmt
4
5import (
6 "bufio"
7 "bytes"
8 "fmt"
9 "io"
10 "reflect"
11
12 kr "github.com/kr/logfmt"
13)
14
15// Fuzz checks reserialized data matches
16func Fuzz(data []byte) int {
17 parsed, err := parse(data)
18 if err != nil {
19 return 0
20 }
21 var w1 bytes.Buffer
22 if err = write(parsed, &w1); err != nil {
23 panic(err)
24 }
25 parsed, err = parse(w1.Bytes())
26 if err != nil {
27 panic(err)
28 }
29 var w2 bytes.Buffer
30 if err = write(parsed, &w2); err != nil {
31 panic(err)
32 }
33 if !bytes.Equal(w1.Bytes(), w2.Bytes()) {
34 panic(fmt.Sprintf("reserialized data does not match:\n%q\n%q\n", w1.Bytes(), w2.Bytes()))
35 }
36 return 1
37}
38
39// FuzzVsKR checks go-logfmt/logfmt against kr/logfmt
40func FuzzVsKR(data []byte) int {
41 parsed, err := parse(data)
42 parsedKR, errKR := parseKR(data)
43
44 // github.com/go-logfmt/logfmt is a stricter parser. It returns errors for
45 // more inputs than github.com/kr/logfmt. Ignore any inputs that have a
46 // stict error.
47 if err != nil {
48 return 0
49 }
50
51 // Fail if the more forgiving parser finds an error not found by the
52 // stricter parser.
53 if errKR != nil {
54 panic(fmt.Sprintf("unmatched error: %v", errKR))
55 }
56
57 if !reflect.DeepEqual(parsed, parsedKR) {
58 panic(fmt.Sprintf("parsers disagree:\n%+v\n%+v\n", parsed, parsedKR))
59 }
60 return 1
61}
62
63type kv struct {
64 k, v []byte
65}
66
67func parse(data []byte) ([][]kv, error) {
68 var got [][]kv
69 dec := NewDecoder(bytes.NewReader(data))
70 for dec.ScanRecord() {
71 var kvs []kv
72 for dec.ScanKeyval() {
73 kvs = append(kvs, kv{dec.Key(), dec.Value()})
74 }
75 got = append(got, kvs)
76 }
77 return got, dec.Err()
78}
79
80func parseKR(data []byte) ([][]kv, error) {
81 var (
82 s = bufio.NewScanner(bytes.NewReader(data))
83 err error
84 h saveHandler
85 got [][]kv
86 )
87 for err == nil && s.Scan() {
88 h.kvs = nil
89 err = kr.Unmarshal(s.Bytes(), &h)
90 got = append(got, h.kvs)
91 }
92 if err == nil {
93 err = s.Err()
94 }
95 return got, err
96}
97
98type saveHandler struct {
99 kvs []kv
100}
101
102func (h *saveHandler) HandleLogfmt(key, val []byte) error {
103 if len(key) == 0 {
104 key = nil
105 }
106 if len(val) == 0 {
107 val = nil
108 }
109 h.kvs = append(h.kvs, kv{key, val})
110 return nil
111}
112
113func write(recs [][]kv, w io.Writer) error {
114 enc := NewEncoder(w)
115 for _, rec := range recs {
116 for _, f := range rec {
117 if err := enc.EncodeKeyval(f.k, f.v); err != nil {
118 return err
119 }
120 }
121 if err := enc.EndRecord(); err != nil {
122 return err
123 }
124 }
125 return nil
126}
diff --git a/vendor/github.com/go-logfmt/logfmt/go.mod b/vendor/github.com/go-logfmt/logfmt/go.mod
index 63d50f0..df71929 100644
--- a/vendor/github.com/go-logfmt/logfmt/go.mod
+++ b/vendor/github.com/go-logfmt/logfmt/go.mod
@@ -1,3 +1,3 @@
1module github.com/go-logfmt/logfmt 1module github.com/go-logfmt/logfmt
2 2
3require github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515 3go 1.13
diff --git a/vendor/github.com/go-logfmt/logfmt/go.sum b/vendor/github.com/go-logfmt/logfmt/go.sum
deleted file mode 100644
index d0cdc16..0000000
--- a/vendor/github.com/go-logfmt/logfmt/go.sum
+++ /dev/null
@@ -1,2 +0,0 @@
1github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515 h1:T+h1c/A9Gawja4Y9mFVWj2vyii2bbUNDw3kt9VxK2EY=
2github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc=
diff --git a/vendor/github.com/golang/protobuf/proto/lib.go b/vendor/github.com/golang/protobuf/proto/lib.go
index fdd328b..70fbda5 100644
--- a/vendor/github.com/golang/protobuf/proto/lib.go
+++ b/vendor/github.com/golang/protobuf/proto/lib.go
@@ -393,7 +393,7 @@ func (p *Buffer) Bytes() []byte { return p.buf }
393// than relying on this API. 393// than relying on this API.
394// 394//
395// If deterministic serialization is requested, map entries will be sorted 395// If deterministic serialization is requested, map entries will be sorted
396// by keys in lexographical order. This is an implementation detail and 396// by keys in lexicographical order. This is an implementation detail and
397// subject to change. 397// subject to change.
398func (p *Buffer) SetDeterministic(deterministic bool) { 398func (p *Buffer) SetDeterministic(deterministic bool) {
399 p.deterministic = deterministic 399 p.deterministic = deterministic
diff --git a/vendor/github.com/golang/protobuf/proto/text.go b/vendor/github.com/golang/protobuf/proto/text.go
index 1aaee72..d97f9b3 100644
--- a/vendor/github.com/golang/protobuf/proto/text.go
+++ b/vendor/github.com/golang/protobuf/proto/text.go
@@ -456,6 +456,8 @@ func (tm *TextMarshaler) writeStruct(w *textWriter, sv reflect.Value) error {
456 return nil 456 return nil
457} 457}
458 458
459var textMarshalerType = reflect.TypeOf((*encoding.TextMarshaler)(nil)).Elem()
460
459// writeAny writes an arbitrary field. 461// writeAny writes an arbitrary field.
460func (tm *TextMarshaler) writeAny(w *textWriter, v reflect.Value, props *Properties) error { 462func (tm *TextMarshaler) writeAny(w *textWriter, v reflect.Value, props *Properties) error {
461 v = reflect.Indirect(v) 463 v = reflect.Indirect(v)
@@ -519,8 +521,8 @@ func (tm *TextMarshaler) writeAny(w *textWriter, v reflect.Value, props *Propert
519 // mutating this value. 521 // mutating this value.
520 v = v.Addr() 522 v = v.Addr()
521 } 523 }
522 if etm, ok := v.Interface().(encoding.TextMarshaler); ok { 524 if v.Type().Implements(textMarshalerType) {
523 text, err := etm.MarshalText() 525 text, err := v.Interface().(encoding.TextMarshaler).MarshalText()
524 if err != nil { 526 if err != nil {
525 return err 527 return err
526 } 528 }
diff --git a/vendor/github.com/golang/protobuf/ptypes/any.go b/vendor/github.com/golang/protobuf/ptypes/any.go
new file mode 100644
index 0000000..70276e8
--- /dev/null
+++ b/vendor/github.com/golang/protobuf/ptypes/any.go
@@ -0,0 +1,141 @@
1// Go support for Protocol Buffers - Google's data interchange format
2//
3// Copyright 2016 The Go Authors. All rights reserved.
4// https://github.com/golang/protobuf
5//
6// Redistribution and use in source and binary forms, with or without
7// modification, are permitted provided that the following conditions are
8// met:
9//
10// * Redistributions of source code must retain the above copyright
11// notice, this list of conditions and the following disclaimer.
12// * Redistributions in binary form must reproduce the above
13// copyright notice, this list of conditions and the following disclaimer
14// in the documentation and/or other materials provided with the
15// distribution.
16// * Neither the name of Google Inc. nor the names of its
17// contributors may be used to endorse or promote products derived from
18// this software without specific prior written permission.
19//
20// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
21// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
22// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
23// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
24// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
25// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
26// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
27// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
28// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
29// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
30// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31
32package ptypes
33
34// This file implements functions to marshal proto.Message to/from
35// google.protobuf.Any message.
36
37import (
38 "fmt"
39 "reflect"
40 "strings"
41
42 "github.com/golang/protobuf/proto"
43 "github.com/golang/protobuf/ptypes/any"
44)
45
46const googleApis = "type.googleapis.com/"
47
48// AnyMessageName returns the name of the message contained in a google.protobuf.Any message.
49//
50// Note that regular type assertions should be done using the Is
51// function. AnyMessageName is provided for less common use cases like filtering a
52// sequence of Any messages based on a set of allowed message type names.
53func AnyMessageName(any *any.Any) (string, error) {
54 if any == nil {
55 return "", fmt.Errorf("message is nil")
56 }
57 slash := strings.LastIndex(any.TypeUrl, "/")
58 if slash < 0 {
59 return "", fmt.Errorf("message type url %q is invalid", any.TypeUrl)
60 }
61 return any.TypeUrl[slash+1:], nil
62}
63
64// MarshalAny takes the protocol buffer and encodes it into google.protobuf.Any.
65func MarshalAny(pb proto.Message) (*any.Any, error) {
66 value, err := proto.Marshal(pb)
67 if err != nil {
68 return nil, err
69 }
70 return &any.Any{TypeUrl: googleApis + proto.MessageName(pb), Value: value}, nil
71}
72
73// DynamicAny is a value that can be passed to UnmarshalAny to automatically
74// allocate a proto.Message for the type specified in a google.protobuf.Any
75// message. The allocated message is stored in the embedded proto.Message.
76//
77// Example:
78//
79// var x ptypes.DynamicAny
80// if err := ptypes.UnmarshalAny(a, &x); err != nil { ... }
81// fmt.Printf("unmarshaled message: %v", x.Message)
82type DynamicAny struct {
83 proto.Message
84}
85
86// Empty returns a new proto.Message of the type specified in a
87// google.protobuf.Any message. It returns an error if corresponding message
88// type isn't linked in.
89func Empty(any *any.Any) (proto.Message, error) {
90 aname, err := AnyMessageName(any)
91 if err != nil {
92 return nil, err
93 }
94
95 t := proto.MessageType(aname)
96 if t == nil {
97 return nil, fmt.Errorf("any: message type %q isn't linked in", aname)
98 }
99 return reflect.New(t.Elem()).Interface().(proto.Message), nil
100}
101
102// UnmarshalAny parses the protocol buffer representation in a google.protobuf.Any
103// message and places the decoded result in pb. It returns an error if type of
104// contents of Any message does not match type of pb message.
105//
106// pb can be a proto.Message, or a *DynamicAny.
107func UnmarshalAny(any *any.Any, pb proto.Message) error {
108 if d, ok := pb.(*DynamicAny); ok {
109 if d.Message == nil {
110 var err error
111 d.Message, err = Empty(any)
112 if err != nil {
113 return err
114 }
115 }
116 return UnmarshalAny(any, d.Message)
117 }
118
119 aname, err := AnyMessageName(any)
120 if err != nil {
121 return err
122 }
123
124 mname := proto.MessageName(pb)
125 if aname != mname {
126 return fmt.Errorf("mismatched message type: got %q want %q", aname, mname)
127 }
128 return proto.Unmarshal(any.Value, pb)
129}
130
131// Is returns true if any value contains a given message type.
132func Is(any *any.Any, pb proto.Message) bool {
133 // The following is equivalent to AnyMessageName(any) == proto.MessageName(pb),
134 // but it avoids scanning TypeUrl for the slash.
135 if any == nil {
136 return false
137 }
138 name := proto.MessageName(pb)
139 prefix := len(any.TypeUrl) - len(name)
140 return prefix >= 1 && any.TypeUrl[prefix-1] == '/' && any.TypeUrl[prefix:] == name
141}
diff --git a/vendor/github.com/golang/protobuf/ptypes/any/any.pb.go b/vendor/github.com/golang/protobuf/ptypes/any/any.pb.go
new file mode 100644
index 0000000..78ee523
--- /dev/null
+++ b/vendor/github.com/golang/protobuf/ptypes/any/any.pb.go
@@ -0,0 +1,200 @@
1// Code generated by protoc-gen-go. DO NOT EDIT.
2// source: google/protobuf/any.proto
3
4package any
5
6import (
7 fmt "fmt"
8 proto "github.com/golang/protobuf/proto"
9 math "math"
10)
11
12// Reference imports to suppress errors if they are not otherwise used.
13var _ = proto.Marshal
14var _ = fmt.Errorf
15var _ = math.Inf
16
17// This is a compile-time assertion to ensure that this generated file
18// is compatible with the proto package it is being compiled against.
19// A compilation error at this line likely means your copy of the
20// proto package needs to be updated.
21const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package
22
23// `Any` contains an arbitrary serialized protocol buffer message along with a
24// URL that describes the type of the serialized message.
25//
26// Protobuf library provides support to pack/unpack Any values in the form
27// of utility functions or additional generated methods of the Any type.
28//
29// Example 1: Pack and unpack a message in C++.
30//
31// Foo foo = ...;
32// Any any;
33// any.PackFrom(foo);
34// ...
35// if (any.UnpackTo(&foo)) {
36// ...
37// }
38//
39// Example 2: Pack and unpack a message in Java.
40//
41// Foo foo = ...;
42// Any any = Any.pack(foo);
43// ...
44// if (any.is(Foo.class)) {
45// foo = any.unpack(Foo.class);
46// }
47//
48// Example 3: Pack and unpack a message in Python.
49//
50// foo = Foo(...)
51// any = Any()
52// any.Pack(foo)
53// ...
54// if any.Is(Foo.DESCRIPTOR):
55// any.Unpack(foo)
56// ...
57//
58// Example 4: Pack and unpack a message in Go
59//
60// foo := &pb.Foo{...}
61// any, err := ptypes.MarshalAny(foo)
62// ...
63// foo := &pb.Foo{}
64// if err := ptypes.UnmarshalAny(any, foo); err != nil {
65// ...
66// }
67//
68// The pack methods provided by protobuf library will by default use
69// 'type.googleapis.com/full.type.name' as the type URL and the unpack
70// methods only use the fully qualified type name after the last '/'
71// in the type URL, for example "foo.bar.com/x/y.z" will yield type
72// name "y.z".
73//
74//
75// JSON
76// ====
77// The JSON representation of an `Any` value uses the regular
78// representation of the deserialized, embedded message, with an
79// additional field `@type` which contains the type URL. Example:
80//
81// package google.profile;
82// message Person {
83// string first_name = 1;
84// string last_name = 2;
85// }
86//
87// {
88// "@type": "type.googleapis.com/google.profile.Person",
89// "firstName": <string>,
90// "lastName": <string>
91// }
92//
93// If the embedded message type is well-known and has a custom JSON
94// representation, that representation will be embedded adding a field
95// `value` which holds the custom JSON in addition to the `@type`
96// field. Example (for message [google.protobuf.Duration][]):
97//
98// {
99// "@type": "type.googleapis.com/google.protobuf.Duration",
100// "value": "1.212s"
101// }
102//
103type Any struct {
104 // A URL/resource name that uniquely identifies the type of the serialized
105 // protocol buffer message. The last segment of the URL's path must represent
106 // the fully qualified name of the type (as in
107 // `path/google.protobuf.Duration`). The name should be in a canonical form
108 // (e.g., leading "." is not accepted).
109 //
110 // In practice, teams usually precompile into the binary all types that they
111 // expect it to use in the context of Any. However, for URLs which use the
112 // scheme `http`, `https`, or no scheme, one can optionally set up a type
113 // server that maps type URLs to message definitions as follows:
114 //
115 // * If no scheme is provided, `https` is assumed.
116 // * An HTTP GET on the URL must yield a [google.protobuf.Type][]
117 // value in binary format, or produce an error.
118 // * Applications are allowed to cache lookup results based on the
119 // URL, or have them precompiled into a binary to avoid any
120 // lookup. Therefore, binary compatibility needs to be preserved
121 // on changes to types. (Use versioned type names to manage
122 // breaking changes.)
123 //
124 // Note: this functionality is not currently available in the official
125 // protobuf release, and it is not used for type URLs beginning with
126 // type.googleapis.com.
127 //
128 // Schemes other than `http`, `https` (or the empty scheme) might be
129 // used with implementation specific semantics.
130 //
131 TypeUrl string `protobuf:"bytes,1,opt,name=type_url,json=typeUrl,proto3" json:"type_url,omitempty"`
132 // Must be a valid serialized protocol buffer of the above specified type.
133 Value []byte `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
134 XXX_NoUnkeyedLiteral struct{} `json:"-"`
135 XXX_unrecognized []byte `json:"-"`
136 XXX_sizecache int32 `json:"-"`
137}
138
139func (m *Any) Reset() { *m = Any{} }
140func (m *Any) String() string { return proto.CompactTextString(m) }
141func (*Any) ProtoMessage() {}
142func (*Any) Descriptor() ([]byte, []int) {
143 return fileDescriptor_b53526c13ae22eb4, []int{0}
144}
145
146func (*Any) XXX_WellKnownType() string { return "Any" }
147
148func (m *Any) XXX_Unmarshal(b []byte) error {
149 return xxx_messageInfo_Any.Unmarshal(m, b)
150}
151func (m *Any) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
152 return xxx_messageInfo_Any.Marshal(b, m, deterministic)
153}
154func (m *Any) XXX_Merge(src proto.Message) {
155 xxx_messageInfo_Any.Merge(m, src)
156}
157func (m *Any) XXX_Size() int {
158 return xxx_messageInfo_Any.Size(m)
159}
160func (m *Any) XXX_DiscardUnknown() {
161 xxx_messageInfo_Any.DiscardUnknown(m)
162}
163
164var xxx_messageInfo_Any proto.InternalMessageInfo
165
166func (m *Any) GetTypeUrl() string {
167 if m != nil {
168 return m.TypeUrl
169 }
170 return ""
171}
172
173func (m *Any) GetValue() []byte {
174 if m != nil {
175 return m.Value
176 }
177 return nil
178}
179
180func init() {
181 proto.RegisterType((*Any)(nil), "google.protobuf.Any")
182}
183
184func init() { proto.RegisterFile("google/protobuf/any.proto", fileDescriptor_b53526c13ae22eb4) }
185
186var fileDescriptor_b53526c13ae22eb4 = []byte{
187 // 185 bytes of a gzipped FileDescriptorProto
188 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x92, 0x4c, 0xcf, 0xcf, 0x4f,
189 0xcf, 0x49, 0xd5, 0x2f, 0x28, 0xca, 0x2f, 0xc9, 0x4f, 0x2a, 0x4d, 0xd3, 0x4f, 0xcc, 0xab, 0xd4,
190 0x03, 0x73, 0x84, 0xf8, 0x21, 0x52, 0x7a, 0x30, 0x29, 0x25, 0x33, 0x2e, 0x66, 0xc7, 0xbc, 0x4a,
191 0x21, 0x49, 0x2e, 0x8e, 0x92, 0xca, 0x82, 0xd4, 0xf8, 0xd2, 0xa2, 0x1c, 0x09, 0x46, 0x05, 0x46,
192 0x0d, 0xce, 0x20, 0x76, 0x10, 0x3f, 0xb4, 0x28, 0x47, 0x48, 0x84, 0x8b, 0xb5, 0x2c, 0x31, 0xa7,
193 0x34, 0x55, 0x82, 0x49, 0x81, 0x51, 0x83, 0x27, 0x08, 0xc2, 0x71, 0xca, 0xe7, 0x12, 0x4e, 0xce,
194 0xcf, 0xd5, 0x43, 0x33, 0xce, 0x89, 0xc3, 0x31, 0xaf, 0x32, 0x00, 0xc4, 0x09, 0x60, 0x8c, 0x52,
195 0x4d, 0xcf, 0x2c, 0xc9, 0x28, 0x4d, 0xd2, 0x4b, 0xce, 0xcf, 0xd5, 0x4f, 0xcf, 0xcf, 0x49, 0xcc,
196 0x4b, 0x47, 0xb8, 0xa8, 0x00, 0x64, 0x7a, 0x31, 0xc8, 0x61, 0x8b, 0x98, 0x98, 0xdd, 0x03, 0x9c,
197 0x56, 0x31, 0xc9, 0xb9, 0x43, 0x8c, 0x0a, 0x80, 0x2a, 0xd1, 0x0b, 0x4f, 0xcd, 0xc9, 0xf1, 0xce,
198 0xcb, 0x2f, 0xcf, 0x0b, 0x01, 0x29, 0x4d, 0x62, 0x03, 0xeb, 0x35, 0x06, 0x04, 0x00, 0x00, 0xff,
199 0xff, 0x13, 0xf8, 0xe8, 0x42, 0xdd, 0x00, 0x00, 0x00,
200}
diff --git a/vendor/github.com/golang/protobuf/ptypes/any/any.proto b/vendor/github.com/golang/protobuf/ptypes/any/any.proto
new file mode 100644
index 0000000..4932942
--- /dev/null
+++ b/vendor/github.com/golang/protobuf/ptypes/any/any.proto
@@ -0,0 +1,154 @@
1// Protocol Buffers - Google's data interchange format
2// Copyright 2008 Google Inc. All rights reserved.
3// https://developers.google.com/protocol-buffers/
4//
5// Redistribution and use in source and binary forms, with or without
6// modification, are permitted provided that the following conditions are
7// met:
8//
9// * Redistributions of source code must retain the above copyright
10// notice, this list of conditions and the following disclaimer.
11// * Redistributions in binary form must reproduce the above
12// copyright notice, this list of conditions and the following disclaimer
13// in the documentation and/or other materials provided with the
14// distribution.
15// * Neither the name of Google Inc. nor the names of its
16// contributors may be used to endorse or promote products derived from
17// this software without specific prior written permission.
18//
19// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
22// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
23// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30
31syntax = "proto3";
32
33package google.protobuf;
34
35option csharp_namespace = "Google.Protobuf.WellKnownTypes";
36option go_package = "github.com/golang/protobuf/ptypes/any";
37option java_package = "com.google.protobuf";
38option java_outer_classname = "AnyProto";
39option java_multiple_files = true;
40option objc_class_prefix = "GPB";
41
42// `Any` contains an arbitrary serialized protocol buffer message along with a
43// URL that describes the type of the serialized message.
44//
45// Protobuf library provides support to pack/unpack Any values in the form
46// of utility functions or additional generated methods of the Any type.
47//
48// Example 1: Pack and unpack a message in C++.
49//
50// Foo foo = ...;
51// Any any;
52// any.PackFrom(foo);
53// ...
54// if (any.UnpackTo(&foo)) {
55// ...
56// }
57//
58// Example 2: Pack and unpack a message in Java.
59//
60// Foo foo = ...;
61// Any any = Any.pack(foo);
62// ...
63// if (any.is(Foo.class)) {
64// foo = any.unpack(Foo.class);
65// }
66//
67// Example 3: Pack and unpack a message in Python.
68//
69// foo = Foo(...)
70// any = Any()
71// any.Pack(foo)
72// ...
73// if any.Is(Foo.DESCRIPTOR):
74// any.Unpack(foo)
75// ...
76//
77// Example 4: Pack and unpack a message in Go
78//
79// foo := &pb.Foo{...}
80// any, err := ptypes.MarshalAny(foo)
81// ...
82// foo := &pb.Foo{}
83// if err := ptypes.UnmarshalAny(any, foo); err != nil {
84// ...
85// }
86//
87// The pack methods provided by protobuf library will by default use
88// 'type.googleapis.com/full.type.name' as the type URL and the unpack
89// methods only use the fully qualified type name after the last '/'
90// in the type URL, for example "foo.bar.com/x/y.z" will yield type
91// name "y.z".
92//
93//
94// JSON
95// ====
96// The JSON representation of an `Any` value uses the regular
97// representation of the deserialized, embedded message, with an
98// additional field `@type` which contains the type URL. Example:
99//
100// package google.profile;
101// message Person {
102// string first_name = 1;
103// string last_name = 2;
104// }
105//
106// {
107// "@type": "type.googleapis.com/google.profile.Person",
108// "firstName": <string>,
109// "lastName": <string>
110// }
111//
112// If the embedded message type is well-known and has a custom JSON
113// representation, that representation will be embedded adding a field
114// `value` which holds the custom JSON in addition to the `@type`
115// field. Example (for message [google.protobuf.Duration][]):
116//
117// {
118// "@type": "type.googleapis.com/google.protobuf.Duration",
119// "value": "1.212s"
120// }
121//
122message Any {
123 // A URL/resource name that uniquely identifies the type of the serialized
124 // protocol buffer message. The last segment of the URL's path must represent
125 // the fully qualified name of the type (as in
126 // `path/google.protobuf.Duration`). The name should be in a canonical form
127 // (e.g., leading "." is not accepted).
128 //
129 // In practice, teams usually precompile into the binary all types that they
130 // expect it to use in the context of Any. However, for URLs which use the
131 // scheme `http`, `https`, or no scheme, one can optionally set up a type
132 // server that maps type URLs to message definitions as follows:
133 //
134 // * If no scheme is provided, `https` is assumed.
135 // * An HTTP GET on the URL must yield a [google.protobuf.Type][]
136 // value in binary format, or produce an error.
137 // * Applications are allowed to cache lookup results based on the
138 // URL, or have them precompiled into a binary to avoid any
139 // lookup. Therefore, binary compatibility needs to be preserved
140 // on changes to types. (Use versioned type names to manage
141 // breaking changes.)
142 //
143 // Note: this functionality is not currently available in the official
144 // protobuf release, and it is not used for type URLs beginning with
145 // type.googleapis.com.
146 //
147 // Schemes other than `http`, `https` (or the empty scheme) might be
148 // used with implementation specific semantics.
149 //
150 string type_url = 1;
151
152 // Must be a valid serialized protocol buffer of the above specified type.
153 bytes value = 2;
154}
diff --git a/vendor/github.com/golang/protobuf/ptypes/doc.go b/vendor/github.com/golang/protobuf/ptypes/doc.go
new file mode 100644
index 0000000..c0d595d
--- /dev/null
+++ b/vendor/github.com/golang/protobuf/ptypes/doc.go
@@ -0,0 +1,35 @@
1// Go support for Protocol Buffers - Google's data interchange format
2//
3// Copyright 2016 The Go Authors. All rights reserved.
4// https://github.com/golang/protobuf
5//
6// Redistribution and use in source and binary forms, with or without
7// modification, are permitted provided that the following conditions are
8// met:
9//
10// * Redistributions of source code must retain the above copyright
11// notice, this list of conditions and the following disclaimer.
12// * Redistributions in binary form must reproduce the above
13// copyright notice, this list of conditions and the following disclaimer
14// in the documentation and/or other materials provided with the
15// distribution.
16// * Neither the name of Google Inc. nor the names of its
17// contributors may be used to endorse or promote products derived from
18// this software without specific prior written permission.
19//
20// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
21// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
22// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
23// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
24// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
25// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
26// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
27// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
28// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
29// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
30// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31
32/*
33Package ptypes contains code for interacting with well-known types.
34*/
35package ptypes
diff --git a/vendor/github.com/golang/protobuf/ptypes/duration.go b/vendor/github.com/golang/protobuf/ptypes/duration.go
new file mode 100644
index 0000000..26d1ca2
--- /dev/null
+++ b/vendor/github.com/golang/protobuf/ptypes/duration.go
@@ -0,0 +1,102 @@
1// Go support for Protocol Buffers - Google's data interchange format
2//
3// Copyright 2016 The Go Authors. All rights reserved.
4// https://github.com/golang/protobuf
5//
6// Redistribution and use in source and binary forms, with or without
7// modification, are permitted provided that the following conditions are
8// met:
9//
10// * Redistributions of source code must retain the above copyright
11// notice, this list of conditions and the following disclaimer.
12// * Redistributions in binary form must reproduce the above
13// copyright notice, this list of conditions and the following disclaimer
14// in the documentation and/or other materials provided with the
15// distribution.
16// * Neither the name of Google Inc. nor the names of its
17// contributors may be used to endorse or promote products derived from
18// this software without specific prior written permission.
19//
20// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
21// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
22// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
23// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
24// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
25// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
26// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
27// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
28// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
29// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
30// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31
32package ptypes
33
34// This file implements conversions between google.protobuf.Duration
35// and time.Duration.
36
37import (
38 "errors"
39 "fmt"
40 "time"
41
42 durpb "github.com/golang/protobuf/ptypes/duration"
43)
44
45const (
46 // Range of a durpb.Duration in seconds, as specified in
47 // google/protobuf/duration.proto. This is about 10,000 years in seconds.
48 maxSeconds = int64(10000 * 365.25 * 24 * 60 * 60)
49 minSeconds = -maxSeconds
50)
51
52// validateDuration determines whether the durpb.Duration is valid according to the
53// definition in google/protobuf/duration.proto. A valid durpb.Duration
54// may still be too large to fit into a time.Duration (the range of durpb.Duration
55// is about 10,000 years, and the range of time.Duration is about 290).
56func validateDuration(d *durpb.Duration) error {
57 if d == nil {
58 return errors.New("duration: nil Duration")
59 }
60 if d.Seconds < minSeconds || d.Seconds > maxSeconds {
61 return fmt.Errorf("duration: %v: seconds out of range", d)
62 }
63 if d.Nanos <= -1e9 || d.Nanos >= 1e9 {
64 return fmt.Errorf("duration: %v: nanos out of range", d)
65 }
66 // Seconds and Nanos must have the same sign, unless d.Nanos is zero.
67 if (d.Seconds < 0 && d.Nanos > 0) || (d.Seconds > 0 && d.Nanos < 0) {
68 return fmt.Errorf("duration: %v: seconds and nanos have different signs", d)
69 }
70 return nil
71}
72
73// Duration converts a durpb.Duration to a time.Duration. Duration
74// returns an error if the durpb.Duration is invalid or is too large to be
75// represented in a time.Duration.
76func Duration(p *durpb.Duration) (time.Duration, error) {
77 if err := validateDuration(p); err != nil {
78 return 0, err
79 }
80 d := time.Duration(p.Seconds) * time.Second
81 if int64(d/time.Second) != p.Seconds {
82 return 0, fmt.Errorf("duration: %v is out of range for time.Duration", p)
83 }
84 if p.Nanos != 0 {
85 d += time.Duration(p.Nanos) * time.Nanosecond
86 if (d < 0) != (p.Nanos < 0) {
87 return 0, fmt.Errorf("duration: %v is out of range for time.Duration", p)
88 }
89 }
90 return d, nil
91}
92
93// DurationProto converts a time.Duration to a durpb.Duration.
94func DurationProto(d time.Duration) *durpb.Duration {
95 nanos := d.Nanoseconds()
96 secs := nanos / 1e9
97 nanos -= secs * 1e9
98 return &durpb.Duration{
99 Seconds: secs,
100 Nanos: int32(nanos),
101 }
102}
diff --git a/vendor/github.com/golang/protobuf/ptypes/duration/duration.pb.go b/vendor/github.com/golang/protobuf/ptypes/duration/duration.pb.go
new file mode 100644
index 0000000..0d681ee
--- /dev/null
+++ b/vendor/github.com/golang/protobuf/ptypes/duration/duration.pb.go
@@ -0,0 +1,161 @@
1// Code generated by protoc-gen-go. DO NOT EDIT.
2// source: google/protobuf/duration.proto
3
4package duration
5
6import (
7 fmt "fmt"
8 proto "github.com/golang/protobuf/proto"
9 math "math"
10)
11
12// Reference imports to suppress errors if they are not otherwise used.
13var _ = proto.Marshal
14var _ = fmt.Errorf
15var _ = math.Inf
16
17// This is a compile-time assertion to ensure that this generated file
18// is compatible with the proto package it is being compiled against.
19// A compilation error at this line likely means your copy of the
20// proto package needs to be updated.
21const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package
22
23// A Duration represents a signed, fixed-length span of time represented
24// as a count of seconds and fractions of seconds at nanosecond
25// resolution. It is independent of any calendar and concepts like "day"
26// or "month". It is related to Timestamp in that the difference between
27// two Timestamp values is a Duration and it can be added or subtracted
28// from a Timestamp. Range is approximately +-10,000 years.
29//
30// # Examples
31//
32// Example 1: Compute Duration from two Timestamps in pseudo code.
33//
34// Timestamp start = ...;
35// Timestamp end = ...;
36// Duration duration = ...;
37//
38// duration.seconds = end.seconds - start.seconds;
39// duration.nanos = end.nanos - start.nanos;
40//
41// if (duration.seconds < 0 && duration.nanos > 0) {
42// duration.seconds += 1;
43// duration.nanos -= 1000000000;
44// } else if (durations.seconds > 0 && duration.nanos < 0) {
45// duration.seconds -= 1;
46// duration.nanos += 1000000000;
47// }
48//
49// Example 2: Compute Timestamp from Timestamp + Duration in pseudo code.
50//
51// Timestamp start = ...;
52// Duration duration = ...;
53// Timestamp end = ...;
54//
55// end.seconds = start.seconds + duration.seconds;
56// end.nanos = start.nanos + duration.nanos;
57//
58// if (end.nanos < 0) {
59// end.seconds -= 1;
60// end.nanos += 1000000000;
61// } else if (end.nanos >= 1000000000) {
62// end.seconds += 1;
63// end.nanos -= 1000000000;
64// }
65//
66// Example 3: Compute Duration from datetime.timedelta in Python.
67//
68// td = datetime.timedelta(days=3, minutes=10)
69// duration = Duration()
70// duration.FromTimedelta(td)
71//
72// # JSON Mapping
73//
74// In JSON format, the Duration type is encoded as a string rather than an
75// object, where the string ends in the suffix "s" (indicating seconds) and
76// is preceded by the number of seconds, with nanoseconds expressed as
77// fractional seconds. For example, 3 seconds with 0 nanoseconds should be
78// encoded in JSON format as "3s", while 3 seconds and 1 nanosecond should
79// be expressed in JSON format as "3.000000001s", and 3 seconds and 1
80// microsecond should be expressed in JSON format as "3.000001s".
81//
82//
83type Duration struct {
84 // Signed seconds of the span of time. Must be from -315,576,000,000
85 // to +315,576,000,000 inclusive. Note: these bounds are computed from:
86 // 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years
87 Seconds int64 `protobuf:"varint,1,opt,name=seconds,proto3" json:"seconds,omitempty"`
88 // Signed fractions of a second at nanosecond resolution of the span
89 // of time. Durations less than one second are represented with a 0
90 // `seconds` field and a positive or negative `nanos` field. For durations
91 // of one second or more, a non-zero value for the `nanos` field must be
92 // of the same sign as the `seconds` field. Must be from -999,999,999
93 // to +999,999,999 inclusive.
94 Nanos int32 `protobuf:"varint,2,opt,name=nanos,proto3" json:"nanos,omitempty"`
95 XXX_NoUnkeyedLiteral struct{} `json:"-"`
96 XXX_unrecognized []byte `json:"-"`
97 XXX_sizecache int32 `json:"-"`
98}
99
100func (m *Duration) Reset() { *m = Duration{} }
101func (m *Duration) String() string { return proto.CompactTextString(m) }
102func (*Duration) ProtoMessage() {}
103func (*Duration) Descriptor() ([]byte, []int) {
104 return fileDescriptor_23597b2ebd7ac6c5, []int{0}
105}
106
107func (*Duration) XXX_WellKnownType() string { return "Duration" }
108
109func (m *Duration) XXX_Unmarshal(b []byte) error {
110 return xxx_messageInfo_Duration.Unmarshal(m, b)
111}
112func (m *Duration) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
113 return xxx_messageInfo_Duration.Marshal(b, m, deterministic)
114}
115func (m *Duration) XXX_Merge(src proto.Message) {
116 xxx_messageInfo_Duration.Merge(m, src)
117}
118func (m *Duration) XXX_Size() int {
119 return xxx_messageInfo_Duration.Size(m)
120}
121func (m *Duration) XXX_DiscardUnknown() {
122 xxx_messageInfo_Duration.DiscardUnknown(m)
123}
124
125var xxx_messageInfo_Duration proto.InternalMessageInfo
126
127func (m *Duration) GetSeconds() int64 {
128 if m != nil {
129 return m.Seconds
130 }
131 return 0
132}
133
134func (m *Duration) GetNanos() int32 {
135 if m != nil {
136 return m.Nanos
137 }
138 return 0
139}
140
141func init() {
142 proto.RegisterType((*Duration)(nil), "google.protobuf.Duration")
143}
144
145func init() { proto.RegisterFile("google/protobuf/duration.proto", fileDescriptor_23597b2ebd7ac6c5) }
146
147var fileDescriptor_23597b2ebd7ac6c5 = []byte{
148 // 190 bytes of a gzipped FileDescriptorProto
149 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x92, 0x4b, 0xcf, 0xcf, 0x4f,
150 0xcf, 0x49, 0xd5, 0x2f, 0x28, 0xca, 0x2f, 0xc9, 0x4f, 0x2a, 0x4d, 0xd3, 0x4f, 0x29, 0x2d, 0x4a,
151 0x2c, 0xc9, 0xcc, 0xcf, 0xd3, 0x03, 0x8b, 0x08, 0xf1, 0x43, 0xe4, 0xf5, 0x60, 0xf2, 0x4a, 0x56,
152 0x5c, 0x1c, 0x2e, 0x50, 0x25, 0x42, 0x12, 0x5c, 0xec, 0xc5, 0xa9, 0xc9, 0xf9, 0x79, 0x29, 0xc5,
153 0x12, 0x8c, 0x0a, 0x8c, 0x1a, 0xcc, 0x41, 0x30, 0xae, 0x90, 0x08, 0x17, 0x6b, 0x5e, 0x62, 0x5e,
154 0x7e, 0xb1, 0x04, 0x93, 0x02, 0xa3, 0x06, 0x6b, 0x10, 0x84, 0xe3, 0x54, 0xc3, 0x25, 0x9c, 0x9c,
155 0x9f, 0xab, 0x87, 0x66, 0xa4, 0x13, 0x2f, 0xcc, 0xc0, 0x00, 0x90, 0x48, 0x00, 0x63, 0x94, 0x56,
156 0x7a, 0x66, 0x49, 0x46, 0x69, 0x92, 0x5e, 0x72, 0x7e, 0xae, 0x7e, 0x7a, 0x7e, 0x4e, 0x62, 0x5e,
157 0x3a, 0xc2, 0x7d, 0x05, 0x25, 0x95, 0x05, 0xa9, 0xc5, 0x70, 0x67, 0xfe, 0x60, 0x64, 0x5c, 0xc4,
158 0xc4, 0xec, 0x1e, 0xe0, 0xb4, 0x8a, 0x49, 0xce, 0x1d, 0x62, 0x6e, 0x00, 0x54, 0xa9, 0x5e, 0x78,
159 0x6a, 0x4e, 0x8e, 0x77, 0x5e, 0x7e, 0x79, 0x5e, 0x08, 0x48, 0x4b, 0x12, 0x1b, 0xd8, 0x0c, 0x63,
160 0x40, 0x00, 0x00, 0x00, 0xff, 0xff, 0xdc, 0x84, 0x30, 0xff, 0xf3, 0x00, 0x00, 0x00,
161}
diff --git a/vendor/github.com/golang/protobuf/ptypes/duration/duration.proto b/vendor/github.com/golang/protobuf/ptypes/duration/duration.proto
new file mode 100644
index 0000000..975fce4
--- /dev/null
+++ b/vendor/github.com/golang/protobuf/ptypes/duration/duration.proto
@@ -0,0 +1,117 @@
1// Protocol Buffers - Google's data interchange format
2// Copyright 2008 Google Inc. All rights reserved.
3// https://developers.google.com/protocol-buffers/
4//
5// Redistribution and use in source and binary forms, with or without
6// modification, are permitted provided that the following conditions are
7// met:
8//
9// * Redistributions of source code must retain the above copyright
10// notice, this list of conditions and the following disclaimer.
11// * Redistributions in binary form must reproduce the above
12// copyright notice, this list of conditions and the following disclaimer
13// in the documentation and/or other materials provided with the
14// distribution.
15// * Neither the name of Google Inc. nor the names of its
16// contributors may be used to endorse or promote products derived from
17// this software without specific prior written permission.
18//
19// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
22// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
23// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30
31syntax = "proto3";
32
33package google.protobuf;
34
35option csharp_namespace = "Google.Protobuf.WellKnownTypes";
36option cc_enable_arenas = true;
37option go_package = "github.com/golang/protobuf/ptypes/duration";
38option java_package = "com.google.protobuf";
39option java_outer_classname = "DurationProto";
40option java_multiple_files = true;
41option objc_class_prefix = "GPB";
42
43// A Duration represents a signed, fixed-length span of time represented
44// as a count of seconds and fractions of seconds at nanosecond
45// resolution. It is independent of any calendar and concepts like "day"
46// or "month". It is related to Timestamp in that the difference between
47// two Timestamp values is a Duration and it can be added or subtracted
48// from a Timestamp. Range is approximately +-10,000 years.
49//
50// # Examples
51//
52// Example 1: Compute Duration from two Timestamps in pseudo code.
53//
54// Timestamp start = ...;
55// Timestamp end = ...;
56// Duration duration = ...;
57//
58// duration.seconds = end.seconds - start.seconds;
59// duration.nanos = end.nanos - start.nanos;
60//
61// if (duration.seconds < 0 && duration.nanos > 0) {
62// duration.seconds += 1;
63// duration.nanos -= 1000000000;
64// } else if (durations.seconds > 0 && duration.nanos < 0) {
65// duration.seconds -= 1;
66// duration.nanos += 1000000000;
67// }
68//
69// Example 2: Compute Timestamp from Timestamp + Duration in pseudo code.
70//
71// Timestamp start = ...;
72// Duration duration = ...;
73// Timestamp end = ...;
74//
75// end.seconds = start.seconds + duration.seconds;
76// end.nanos = start.nanos + duration.nanos;
77//
78// if (end.nanos < 0) {
79// end.seconds -= 1;
80// end.nanos += 1000000000;
81// } else if (end.nanos >= 1000000000) {
82// end.seconds += 1;
83// end.nanos -= 1000000000;
84// }
85//
86// Example 3: Compute Duration from datetime.timedelta in Python.
87//
88// td = datetime.timedelta(days=3, minutes=10)
89// duration = Duration()
90// duration.FromTimedelta(td)
91//
92// # JSON Mapping
93//
94// In JSON format, the Duration type is encoded as a string rather than an
95// object, where the string ends in the suffix "s" (indicating seconds) and
96// is preceded by the number of seconds, with nanoseconds expressed as
97// fractional seconds. For example, 3 seconds with 0 nanoseconds should be
98// encoded in JSON format as "3s", while 3 seconds and 1 nanosecond should
99// be expressed in JSON format as "3.000000001s", and 3 seconds and 1
100// microsecond should be expressed in JSON format as "3.000001s".
101//
102//
103message Duration {
104
105 // Signed seconds of the span of time. Must be from -315,576,000,000
106 // to +315,576,000,000 inclusive. Note: these bounds are computed from:
107 // 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years
108 int64 seconds = 1;
109
110 // Signed fractions of a second at nanosecond resolution of the span
111 // of time. Durations less than one second are represented with a 0
112 // `seconds` field and a positive or negative `nanos` field. For durations
113 // of one second or more, a non-zero value for the `nanos` field must be
114 // of the same sign as the `seconds` field. Must be from -999,999,999
115 // to +999,999,999 inclusive.
116 int32 nanos = 2;
117}
diff --git a/vendor/github.com/golang/protobuf/ptypes/timestamp.go b/vendor/github.com/golang/protobuf/ptypes/timestamp.go
new file mode 100644
index 0000000..8da0df0
--- /dev/null
+++ b/vendor/github.com/golang/protobuf/ptypes/timestamp.go
@@ -0,0 +1,132 @@
1// Go support for Protocol Buffers - Google's data interchange format
2//
3// Copyright 2016 The Go Authors. All rights reserved.
4// https://github.com/golang/protobuf
5//
6// Redistribution and use in source and binary forms, with or without
7// modification, are permitted provided that the following conditions are
8// met:
9//
10// * Redistributions of source code must retain the above copyright
11// notice, this list of conditions and the following disclaimer.
12// * Redistributions in binary form must reproduce the above
13// copyright notice, this list of conditions and the following disclaimer
14// in the documentation and/or other materials provided with the
15// distribution.
16// * Neither the name of Google Inc. nor the names of its
17// contributors may be used to endorse or promote products derived from
18// this software without specific prior written permission.
19//
20// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
21// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
22// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
23// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
24// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
25// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
26// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
27// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
28// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
29// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
30// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31
32package ptypes
33
34// This file implements operations on google.protobuf.Timestamp.
35
36import (
37 "errors"
38 "fmt"
39 "time"
40
41 tspb "github.com/golang/protobuf/ptypes/timestamp"
42)
43
44const (
45 // Seconds field of the earliest valid Timestamp.
46 // This is time.Date(1, 1, 1, 0, 0, 0, 0, time.UTC).Unix().
47 minValidSeconds = -62135596800
48 // Seconds field just after the latest valid Timestamp.
49 // This is time.Date(10000, 1, 1, 0, 0, 0, 0, time.UTC).Unix().
50 maxValidSeconds = 253402300800
51)
52
53// validateTimestamp determines whether a Timestamp is valid.
54// A valid timestamp represents a time in the range
55// [0001-01-01, 10000-01-01) and has a Nanos field
56// in the range [0, 1e9).
57//
58// If the Timestamp is valid, validateTimestamp returns nil.
59// Otherwise, it returns an error that describes
60// the problem.
61//
62// Every valid Timestamp can be represented by a time.Time, but the converse is not true.
63func validateTimestamp(ts *tspb.Timestamp) error {
64 if ts == nil {
65 return errors.New("timestamp: nil Timestamp")
66 }
67 if ts.Seconds < minValidSeconds {
68 return fmt.Errorf("timestamp: %v before 0001-01-01", ts)
69 }
70 if ts.Seconds >= maxValidSeconds {
71 return fmt.Errorf("timestamp: %v after 10000-01-01", ts)
72 }
73 if ts.Nanos < 0 || ts.Nanos >= 1e9 {
74 return fmt.Errorf("timestamp: %v: nanos not in range [0, 1e9)", ts)
75 }
76 return nil
77}
78
79// Timestamp converts a google.protobuf.Timestamp proto to a time.Time.
80// It returns an error if the argument is invalid.
81//
82// Unlike most Go functions, if Timestamp returns an error, the first return value
83// is not the zero time.Time. Instead, it is the value obtained from the
84// time.Unix function when passed the contents of the Timestamp, in the UTC
85// locale. This may or may not be a meaningful time; many invalid Timestamps
86// do map to valid time.Times.
87//
88// A nil Timestamp returns an error. The first return value in that case is
89// undefined.
90func Timestamp(ts *tspb.Timestamp) (time.Time, error) {
91 // Don't return the zero value on error, because corresponds to a valid
92 // timestamp. Instead return whatever time.Unix gives us.
93 var t time.Time
94 if ts == nil {
95 t = time.Unix(0, 0).UTC() // treat nil like the empty Timestamp
96 } else {
97 t = time.Unix(ts.Seconds, int64(ts.Nanos)).UTC()
98 }
99 return t, validateTimestamp(ts)
100}
101
102// TimestampNow returns a google.protobuf.Timestamp for the current time.
103func TimestampNow() *tspb.Timestamp {
104 ts, err := TimestampProto(time.Now())
105 if err != nil {
106 panic("ptypes: time.Now() out of Timestamp range")
107 }
108 return ts
109}
110
111// TimestampProto converts the time.Time to a google.protobuf.Timestamp proto.
112// It returns an error if the resulting Timestamp is invalid.
113func TimestampProto(t time.Time) (*tspb.Timestamp, error) {
114 ts := &tspb.Timestamp{
115 Seconds: t.Unix(),
116 Nanos: int32(t.Nanosecond()),
117 }
118 if err := validateTimestamp(ts); err != nil {
119 return nil, err
120 }
121 return ts, nil
122}
123
124// TimestampString returns the RFC 3339 string for valid Timestamps. For invalid
125// Timestamps, it returns an error message in parentheses.
126func TimestampString(ts *tspb.Timestamp) string {
127 t, err := Timestamp(ts)
128 if err != nil {
129 return fmt.Sprintf("(%v)", err)
130 }
131 return t.Format(time.RFC3339Nano)
132}
diff --git a/vendor/github.com/golang/protobuf/ptypes/timestamp/timestamp.pb.go b/vendor/github.com/golang/protobuf/ptypes/timestamp/timestamp.pb.go
new file mode 100644
index 0000000..31cd846
--- /dev/null
+++ b/vendor/github.com/golang/protobuf/ptypes/timestamp/timestamp.pb.go
@@ -0,0 +1,179 @@
1// Code generated by protoc-gen-go. DO NOT EDIT.
2// source: google/protobuf/timestamp.proto
3
4package timestamp
5
6import (
7 fmt "fmt"
8 proto "github.com/golang/protobuf/proto"
9 math "math"
10)
11
12// Reference imports to suppress errors if they are not otherwise used.
13var _ = proto.Marshal
14var _ = fmt.Errorf
15var _ = math.Inf
16
17// This is a compile-time assertion to ensure that this generated file
18// is compatible with the proto package it is being compiled against.
19// A compilation error at this line likely means your copy of the
20// proto package needs to be updated.
21const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package
22
23// A Timestamp represents a point in time independent of any time zone
24// or calendar, represented as seconds and fractions of seconds at
25// nanosecond resolution in UTC Epoch time. It is encoded using the
26// Proleptic Gregorian Calendar which extends the Gregorian calendar
27// backwards to year one. It is encoded assuming all minutes are 60
28// seconds long, i.e. leap seconds are "smeared" so that no leap second
29// table is needed for interpretation. Range is from
30// 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z.
31// By restricting to that range, we ensure that we can convert to
32// and from RFC 3339 date strings.
33// See [https://www.ietf.org/rfc/rfc3339.txt](https://www.ietf.org/rfc/rfc3339.txt).
34//
35// # Examples
36//
37// Example 1: Compute Timestamp from POSIX `time()`.
38//
39// Timestamp timestamp;
40// timestamp.set_seconds(time(NULL));
41// timestamp.set_nanos(0);
42//
43// Example 2: Compute Timestamp from POSIX `gettimeofday()`.
44//
45// struct timeval tv;
46// gettimeofday(&tv, NULL);
47//
48// Timestamp timestamp;
49// timestamp.set_seconds(tv.tv_sec);
50// timestamp.set_nanos(tv.tv_usec * 1000);
51//
52// Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`.
53//
54// FILETIME ft;
55// GetSystemTimeAsFileTime(&ft);
56// UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime;
57//
58// // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z
59// // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z.
60// Timestamp timestamp;
61// timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL));
62// timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));
63//
64// Example 4: Compute Timestamp from Java `System.currentTimeMillis()`.
65//
66// long millis = System.currentTimeMillis();
67//
68// Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000)
69// .setNanos((int) ((millis % 1000) * 1000000)).build();
70//
71//
72// Example 5: Compute Timestamp from current time in Python.
73//
74// timestamp = Timestamp()
75// timestamp.GetCurrentTime()
76//
77// # JSON Mapping
78//
79// In JSON format, the Timestamp type is encoded as a string in the
80// [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the
81// format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z"
82// where {year} is always expressed using four digits while {month}, {day},
83// {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional
84// seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution),
85// are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone
86// is required. A proto3 JSON serializer should always use UTC (as indicated by
87// "Z") when printing the Timestamp type and a proto3 JSON parser should be
88// able to accept both UTC and other timezones (as indicated by an offset).
89//
90// For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past
91// 01:30 UTC on January 15, 2017.
92//
93// In JavaScript, one can convert a Date object to this format using the
94// standard [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString]
95// method. In Python, a standard `datetime.datetime` object can be converted
96// to this format using [`strftime`](https://docs.python.org/2/library/time.html#time.strftime)
97// with the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one
98// can use the Joda Time's [`ISODateTimeFormat.dateTime()`](
99// http://www.joda.org/joda-time/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime--
100// ) to obtain a formatter capable of generating timestamps in this format.
101//
102//
103type Timestamp struct {
104 // Represents seconds of UTC time since Unix epoch
105 // 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to
106 // 9999-12-31T23:59:59Z inclusive.
107 Seconds int64 `protobuf:"varint,1,opt,name=seconds,proto3" json:"seconds,omitempty"`
108 // Non-negative fractions of a second at nanosecond resolution. Negative
109 // second values with fractions must still have non-negative nanos values
110 // that count forward in time. Must be from 0 to 999,999,999
111 // inclusive.
112 Nanos int32 `protobuf:"varint,2,opt,name=nanos,proto3" json:"nanos,omitempty"`
113 XXX_NoUnkeyedLiteral struct{} `json:"-"`
114 XXX_unrecognized []byte `json:"-"`
115 XXX_sizecache int32 `json:"-"`
116}
117
118func (m *Timestamp) Reset() { *m = Timestamp{} }
119func (m *Timestamp) String() string { return proto.CompactTextString(m) }
120func (*Timestamp) ProtoMessage() {}
121func (*Timestamp) Descriptor() ([]byte, []int) {
122 return fileDescriptor_292007bbfe81227e, []int{0}
123}
124
125func (*Timestamp) XXX_WellKnownType() string { return "Timestamp" }
126
127func (m *Timestamp) XXX_Unmarshal(b []byte) error {
128 return xxx_messageInfo_Timestamp.Unmarshal(m, b)
129}
130func (m *Timestamp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
131 return xxx_messageInfo_Timestamp.Marshal(b, m, deterministic)
132}
133func (m *Timestamp) XXX_Merge(src proto.Message) {
134 xxx_messageInfo_Timestamp.Merge(m, src)
135}
136func (m *Timestamp) XXX_Size() int {
137 return xxx_messageInfo_Timestamp.Size(m)
138}
139func (m *Timestamp) XXX_DiscardUnknown() {
140 xxx_messageInfo_Timestamp.DiscardUnknown(m)
141}
142
143var xxx_messageInfo_Timestamp proto.InternalMessageInfo
144
145func (m *Timestamp) GetSeconds() int64 {
146 if m != nil {
147 return m.Seconds
148 }
149 return 0
150}
151
152func (m *Timestamp) GetNanos() int32 {
153 if m != nil {
154 return m.Nanos
155 }
156 return 0
157}
158
159func init() {
160 proto.RegisterType((*Timestamp)(nil), "google.protobuf.Timestamp")
161}
162
163func init() { proto.RegisterFile("google/protobuf/timestamp.proto", fileDescriptor_292007bbfe81227e) }
164
165var fileDescriptor_292007bbfe81227e = []byte{
166 // 191 bytes of a gzipped FileDescriptorProto
167 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x92, 0x4f, 0xcf, 0xcf, 0x4f,
168 0xcf, 0x49, 0xd5, 0x2f, 0x28, 0xca, 0x2f, 0xc9, 0x4f, 0x2a, 0x4d, 0xd3, 0x2f, 0xc9, 0xcc, 0x4d,
169 0x2d, 0x2e, 0x49, 0xcc, 0x2d, 0xd0, 0x03, 0x0b, 0x09, 0xf1, 0x43, 0x14, 0xe8, 0xc1, 0x14, 0x28,
170 0x59, 0x73, 0x71, 0x86, 0xc0, 0xd4, 0x08, 0x49, 0x70, 0xb1, 0x17, 0xa7, 0x26, 0xe7, 0xe7, 0xa5,
171 0x14, 0x4b, 0x30, 0x2a, 0x30, 0x6a, 0x30, 0x07, 0xc1, 0xb8, 0x42, 0x22, 0x5c, 0xac, 0x79, 0x89,
172 0x79, 0xf9, 0xc5, 0x12, 0x4c, 0x0a, 0x8c, 0x1a, 0xac, 0x41, 0x10, 0x8e, 0x53, 0x1d, 0x97, 0x70,
173 0x72, 0x7e, 0xae, 0x1e, 0x9a, 0x99, 0x4e, 0x7c, 0x70, 0x13, 0x03, 0x40, 0x42, 0x01, 0x8c, 0x51,
174 0xda, 0xe9, 0x99, 0x25, 0x19, 0xa5, 0x49, 0x7a, 0xc9, 0xf9, 0xb9, 0xfa, 0xe9, 0xf9, 0x39, 0x89,
175 0x79, 0xe9, 0x08, 0x27, 0x16, 0x94, 0x54, 0x16, 0xa4, 0x16, 0x23, 0x5c, 0xfa, 0x83, 0x91, 0x71,
176 0x11, 0x13, 0xb3, 0x7b, 0x80, 0xd3, 0x2a, 0x26, 0x39, 0x77, 0x88, 0xc9, 0x01, 0x50, 0xb5, 0x7a,
177 0xe1, 0xa9, 0x39, 0x39, 0xde, 0x79, 0xf9, 0xe5, 0x79, 0x21, 0x20, 0x3d, 0x49, 0x6c, 0x60, 0x43,
178 0x8c, 0x01, 0x01, 0x00, 0x00, 0xff, 0xff, 0xbc, 0x77, 0x4a, 0x07, 0xf7, 0x00, 0x00, 0x00,
179}
diff --git a/vendor/github.com/golang/protobuf/ptypes/timestamp/timestamp.proto b/vendor/github.com/golang/protobuf/ptypes/timestamp/timestamp.proto
new file mode 100644
index 0000000..eafb3fa
--- /dev/null
+++ b/vendor/github.com/golang/protobuf/ptypes/timestamp/timestamp.proto
@@ -0,0 +1,135 @@
1// Protocol Buffers - Google's data interchange format
2// Copyright 2008 Google Inc. All rights reserved.
3// https://developers.google.com/protocol-buffers/
4//
5// Redistribution and use in source and binary forms, with or without
6// modification, are permitted provided that the following conditions are
7// met:
8//
9// * Redistributions of source code must retain the above copyright
10// notice, this list of conditions and the following disclaimer.
11// * Redistributions in binary form must reproduce the above
12// copyright notice, this list of conditions and the following disclaimer
13// in the documentation and/or other materials provided with the
14// distribution.
15// * Neither the name of Google Inc. nor the names of its
16// contributors may be used to endorse or promote products derived from
17// this software without specific prior written permission.
18//
19// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
22// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
23// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30
31syntax = "proto3";
32
33package google.protobuf;
34
35option csharp_namespace = "Google.Protobuf.WellKnownTypes";
36option cc_enable_arenas = true;
37option go_package = "github.com/golang/protobuf/ptypes/timestamp";
38option java_package = "com.google.protobuf";
39option java_outer_classname = "TimestampProto";
40option java_multiple_files = true;
41option objc_class_prefix = "GPB";
42
43// A Timestamp represents a point in time independent of any time zone
44// or calendar, represented as seconds and fractions of seconds at
45// nanosecond resolution in UTC Epoch time. It is encoded using the
46// Proleptic Gregorian Calendar which extends the Gregorian calendar
47// backwards to year one. It is encoded assuming all minutes are 60
48// seconds long, i.e. leap seconds are "smeared" so that no leap second
49// table is needed for interpretation. Range is from
50// 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z.
51// By restricting to that range, we ensure that we can convert to
52// and from RFC 3339 date strings.
53// See [https://www.ietf.org/rfc/rfc3339.txt](https://www.ietf.org/rfc/rfc3339.txt).
54//
55// # Examples
56//
57// Example 1: Compute Timestamp from POSIX `time()`.
58//
59// Timestamp timestamp;
60// timestamp.set_seconds(time(NULL));
61// timestamp.set_nanos(0);
62//
63// Example 2: Compute Timestamp from POSIX `gettimeofday()`.
64//
65// struct timeval tv;
66// gettimeofday(&tv, NULL);
67//
68// Timestamp timestamp;
69// timestamp.set_seconds(tv.tv_sec);
70// timestamp.set_nanos(tv.tv_usec * 1000);
71//
72// Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`.
73//
74// FILETIME ft;
75// GetSystemTimeAsFileTime(&ft);
76// UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime;
77//
78// // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z
79// // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z.
80// Timestamp timestamp;
81// timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL));
82// timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));
83//
84// Example 4: Compute Timestamp from Java `System.currentTimeMillis()`.
85//
86// long millis = System.currentTimeMillis();
87//
88// Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000)
89// .setNanos((int) ((millis % 1000) * 1000000)).build();
90//
91//
92// Example 5: Compute Timestamp from current time in Python.
93//
94// timestamp = Timestamp()
95// timestamp.GetCurrentTime()
96//
97// # JSON Mapping
98//
99// In JSON format, the Timestamp type is encoded as a string in the
100// [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the
101// format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z"
102// where {year} is always expressed using four digits while {month}, {day},
103// {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional
104// seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution),
105// are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone
106// is required. A proto3 JSON serializer should always use UTC (as indicated by
107// "Z") when printing the Timestamp type and a proto3 JSON parser should be
108// able to accept both UTC and other timezones (as indicated by an offset).
109//
110// For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past
111// 01:30 UTC on January 15, 2017.
112//
113// In JavaScript, one can convert a Date object to this format using the
114// standard [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString]
115// method. In Python, a standard `datetime.datetime` object can be converted
116// to this format using [`strftime`](https://docs.python.org/2/library/time.html#time.strftime)
117// with the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one
118// can use the Joda Time's [`ISODateTimeFormat.dateTime()`](
119// http://www.joda.org/joda-time/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime--
120// ) to obtain a formatter capable of generating timestamps in this format.
121//
122//
123message Timestamp {
124
125 // Represents seconds of UTC time since Unix epoch
126 // 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to
127 // 9999-12-31T23:59:59Z inclusive.
128 int64 seconds = 1;
129
130 // Non-negative fractions of a second at nanosecond resolution. Negative
131 // second values with fractions must still have non-negative nanos values
132 // that count forward in time. Must be from 0 to 999,999,999
133 // inclusive.
134 int32 nanos = 2;
135}
diff --git a/vendor/github.com/hodgesds/perf-utils/README.md b/vendor/github.com/hodgesds/perf-utils/README.md
index f15b0ea..d033a10 100644
--- a/vendor/github.com/hodgesds/perf-utils/README.md
+++ b/vendor/github.com/hodgesds/perf-utils/README.md
@@ -2,28 +2,45 @@
2[![GoDoc](https://godoc.org/github.com/hodgesds/perf-utils?status.svg)](https://godoc.org/github.com/hodgesds/perf-utils) 2[![GoDoc](https://godoc.org/github.com/hodgesds/perf-utils?status.svg)](https://godoc.org/github.com/hodgesds/perf-utils)
3 3
4This package is a go library for interacting with the `perf` subsystem in 4This package is a go library for interacting with the `perf` subsystem in
5Linux. It allows you to do things like see how many CPU instructions a function 5Linux. I had trouble finding a golang perf library so I decided to write this
6takes, profile a process for various hardware events, and other interesting 6by using the linux's perf as a reference. This library allows you to do things
7things. The library is by no means finalized and should be considered pre-alpha 7like see how many CPU instructions a function takes (roughly), profile a
8at best. 8process for various hardware events, and other interesting things. Note that
9because the go scheduler can schedule a goroutine across many OS threads it
10becomes rather difficult to get an _exact_ profile of an invididual goroutine.
11However, a few tricks can be used; first a call to
12`[runtime.LockOSThread](https://golang.org/pkg/runtime/#LockOSThread)` to lock
13the current goroutine to an OS thread. Second a call to
14`[unix.SchedSetaffinity](https://godoc.org/golang.org/x/sys/unix#SchedSetaffinity)`,
15with a CPU set mask set. Note that if the pid argument is set 0 the calling
16thread is used (the thread that was just locked). Before using this library you
17should probably read the
18[`perf_event_open`](http://www.man7.org/linux/man-pages/man2/perf_event_open.2.html)
19man page which this library uses heavily.
9 20
10# Use Cases 21# Use Cases
11A majority of the utility methods in this package should only be used for 22If you are looking to interact with the perf subsystem directly with
12testing and/or debugging performance issues. Due to the nature of the go 23`perf_event_open` syscall than this library is most likely for you. A large
13runtime profiling on the goroutine level is extremely tricky, with the 24number of the utility methods in this package should only be used for testing
25and/or debugging performance issues. This is due to the nature of the go
26runtime being extremely tricky to profile on the goroutine level, with the
14exception of a long running worker goroutine locked to an OS thread. Eventually 27exception of a long running worker goroutine locked to an OS thread. Eventually
15this library could be used to implement many of the features of `perf` but in 28this library could be used to implement many of the features of `perf` but in
16accessible via Go directly. 29pure Go. Currently this library is used in
30[node_exporter](https://github.com/prometheus/node_exporter) as well as
31[perf_exporter](https://github.com/hodgesds/perf_exporter), which is a
32Prometheus exporter for perf related metrics.
17 33
18## Caveats 34## Caveats
19* Some utility functions will call 35* Some utility functions will call
20 [`runtime.LockOSThread`](https://golang.org/pkg/runtime/#LockOSThread) for 36 [`runtime.LockOSThread`](https://golang.org/pkg/runtime/#LockOSThread) for
21 you, they will also unlock the thread after profiling. ***Note*** using these 37 you, they will also unlock the thread after profiling. ***Note*** using these
22 utility functions will incur significant overhead. 38 utility functions will incur significant overhead (~4ms).
23* Overflow handling is not implemented. 39* Overflow handling is not implemented.
24 40
25# Setup 41# Setup
26Most likely you will need to tweak some system settings unless you are running as root. From `man perf_event_open`: 42Most likely you will need to tweak some system settings unless you are running
43as root. From `man perf_event_open`:
27 44
28``` 45```
29 perf_event related configuration files 46 perf_event related configuration files
@@ -108,8 +125,7 @@ ok github.com/hodgesds/perf-utils 1.981s
108# BPF Support 125# BPF Support
109BPF is supported by using the `BPFProfiler` which is available via the 126BPF is supported by using the `BPFProfiler` which is available via the
110`ProfileTracepoint` function. To use BPF you need to create the BPF program and 127`ProfileTracepoint` function. To use BPF you need to create the BPF program and
111then call `AttachBPF` with the file descriptor of the BPF program. This is not 128then call `AttachBPF` with the file descriptor of the BPF program.
112well tested so use at your own peril.
113 129
114# Misc 130# Misc
115Originally I set out to use `go generate` to build Go structs that were 131Originally I set out to use `go generate` to build Go structs that were
diff --git a/vendor/github.com/hodgesds/perf-utils/utils.go b/vendor/github.com/hodgesds/perf-utils/utils.go
index 1593c0c..7a8f7ff 100644
--- a/vendor/github.com/hodgesds/perf-utils/utils.go
+++ b/vendor/github.com/hodgesds/perf-utils/utils.go
@@ -4,6 +4,7 @@ package perf
4 4
5import ( 5import (
6 "encoding/binary" 6 "encoding/binary"
7 "math/rand"
7 "runtime" 8 "runtime"
8 "syscall" 9 "syscall"
9 "unsafe" 10 "unsafe"
@@ -16,10 +17,22 @@ var (
16 EventAttrSize = uint32(unsafe.Sizeof(unix.PerfEventAttr{})) 17 EventAttrSize = uint32(unsafe.Sizeof(unix.PerfEventAttr{}))
17) 18)
18 19
19// profileFn is a helper function to profile a function. 20// LockThread locks an goroutine to an OS thread and then sets the affinity of
20func profileFn(eventAttr *unix.PerfEventAttr, f func() error) (*ProfileValue, error) { 21// the thread to a processor core.
22func LockThread(core int) (func(), error) {
21 runtime.LockOSThread() 23 runtime.LockOSThread()
22 defer runtime.UnlockOSThread() 24 cpuSet := unix.CPUSet{}
25 cpuSet.Set(core)
26 return runtime.UnlockOSThread, unix.SchedSetaffinity(0, &cpuSet)
27}
28
29// profileFn is a helper function to profile a function, it will randomly choose a core to run on.
30func profileFn(eventAttr *unix.PerfEventAttr, f func() error) (*ProfileValue, error) {
31 cb, err := LockThread(rand.Intn(runtime.NumCPU()))
32 if err != nil {
33 return nil, err
34 }
35 defer cb()
23 fd, err := unix.PerfEventOpen( 36 fd, err := unix.PerfEventOpen(
24 eventAttr, 37 eventAttr,
25 unix.Gettid(), 38 unix.Gettid(),
diff --git a/vendor/github.com/kr/logfmt/.gitignore b/vendor/github.com/kr/logfmt/.gitignore
deleted file mode 100644
index 8e524f6..0000000
--- a/vendor/github.com/kr/logfmt/.gitignore
+++ /dev/null
@@ -1,3 +0,0 @@
1*.test
2*.swp
3*.prof
diff --git a/vendor/github.com/kr/logfmt/Readme b/vendor/github.com/kr/logfmt/Readme
deleted file mode 100644
index 1865a11..0000000
--- a/vendor/github.com/kr/logfmt/Readme
+++ /dev/null
@@ -1,12 +0,0 @@
1Go package for parsing (and, eventually, generating)
2log lines in the logfmt style.
3
4See http://godoc.org/github.com/kr/logfmt for format, and other documentation and examples.
5
6Copyright (C) 2013 Keith Rarick, Blake Mizerany
7
8Permission 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:
9
10The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
11
12THE 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/kr/logfmt/decode.go b/vendor/github.com/kr/logfmt/decode.go
deleted file mode 100644
index 1397fb7..0000000
--- a/vendor/github.com/kr/logfmt/decode.go
+++ /dev/null
@@ -1,184 +0,0 @@
1// Package implements the decoding of logfmt key-value pairs.
2//
3// Example logfmt message:
4//
5// foo=bar a=14 baz="hello kitty" cool%story=bro f %^asdf
6//
7// Example result in JSON:
8//
9// { "foo": "bar", "a": 14, "baz": "hello kitty", "cool%story": "bro", "f": true, "%^asdf": true }
10//
11// EBNFish:
12//
13// ident_byte = any byte greater than ' ', excluding '=' and '"'
14// string_byte = any byte excluding '"' and '\'
15// garbage = !ident_byte
16// ident = ident_byte, { ident byte }
17// key = ident
18// value = ident | '"', { string_byte | '\', '"' }, '"'
19// pair = key, '=', value | key, '=' | key
20// message = { garbage, pair }, garbage
21package logfmt
22
23import (
24 "reflect"
25 "strconv"
26 "strings"
27 "time"
28)
29
30// Handler is the interface implemented by objects that accept logfmt
31// key-value pairs. HandleLogfmt must copy the logfmt data if it
32// wishes to retain the data after returning.
33type Handler interface {
34 HandleLogfmt(key, val []byte) error
35}
36
37// The HandlerFunc type is an adapter to allow the use of ordinary functions as
38// logfmt handlers. If f is a function with the appropriate signature,
39// HandlerFunc(f) is a Handler object that calls f.
40type HandlerFunc func(key, val []byte) error
41
42func (f HandlerFunc) HandleLogfmt(key, val []byte) error {
43 return f(key, val)
44}
45
46// Unmarshal parses the logfmt encoding data and stores the result in the value
47// pointed to by v. If v is an Handler, HandleLogfmt will be called for each
48// key-value pair.
49//
50// If v is not a Handler, it will pass v to NewStructHandler and use the
51// returned StructHandler for decoding.
52func Unmarshal(data []byte, v interface{}) (err error) {
53 h, ok := v.(Handler)
54 if !ok {
55 h, err = NewStructHandler(v)
56 if err != nil {
57 return err
58 }
59 }
60 return gotoScanner(data, h)
61}
62
63// StructHandler unmarshals logfmt into a struct. It matches incoming keys to
64// the the struct's fields (either the struct field name or its tag, preferring
65// an exact match but also accepting a case-insensitive match.
66//
67// Field types supported by StructHandler are:
68//
69// all numeric types (e.g. float32, int, etc.)
70// []byte
71// string
72// bool - true if key is present, false otherwise (the value is ignored).
73// time.Duration - uses time.ParseDuration
74//
75// If a field is a pointer to an above type, and a matching key is not present
76// in the logfmt data, the pointer will be untouched.
77//
78// If v is not a pointer to an Handler or struct, Unmarshal will return an
79// error.
80type StructHandler struct {
81 rv reflect.Value
82}
83
84func NewStructHandler(v interface{}) (Handler, error) {
85 rv := reflect.ValueOf(v)
86 if rv.Kind() != reflect.Ptr || rv.IsNil() {
87 return nil, &InvalidUnmarshalError{reflect.TypeOf(v)}
88 }
89 return &StructHandler{rv: rv}, nil
90}
91
92func (h *StructHandler) HandleLogfmt(key, val []byte) error {
93 el := h.rv.Elem()
94 skey := string(key)
95 for i := 0; i < el.NumField(); i++ {
96 fv := el.Field(i)
97 ft := el.Type().Field(i)
98 switch {
99 case ft.Name == skey:
100 case ft.Tag.Get("logfmt") == skey:
101 case strings.EqualFold(ft.Name, skey):
102 default:
103 continue
104 }
105 if fv.Kind() == reflect.Ptr {
106 if fv.IsNil() {
107 t := fv.Type().Elem()
108 v := reflect.New(t)
109 fv.Set(v)
110 fv = v
111 }
112 fv = fv.Elem()
113 }
114 switch fv.Interface().(type) {
115 case time.Duration:
116 d, err := time.ParseDuration(string(val))
117 if err != nil {
118 return &UnmarshalTypeError{string(val), fv.Type()}
119 }
120 fv.Set(reflect.ValueOf(d))
121 case string:
122 fv.SetString(string(val))
123 case []byte:
124 b := make([]byte, len(val))
125 copy(b, val)
126 fv.SetBytes(b)
127 case bool:
128 fv.SetBool(true)
129 default:
130 switch {
131 case reflect.Int <= fv.Kind() && fv.Kind() <= reflect.Int64:
132 v, err := strconv.ParseInt(string(val), 10, 64)
133 if err != nil {
134 return err
135 }
136 fv.SetInt(v)
137 case reflect.Uint32 <= fv.Kind() && fv.Kind() <= reflect.Uint64:
138 v, err := strconv.ParseUint(string(val), 10, 64)
139 if err != nil {
140 return err
141 }
142 fv.SetUint(v)
143 case reflect.Float32 <= fv.Kind() && fv.Kind() <= reflect.Float64:
144 v, err := strconv.ParseFloat(string(val), 10)
145 if err != nil {
146 return err
147 }
148 fv.SetFloat(v)
149 default:
150 return &UnmarshalTypeError{string(val), fv.Type()}
151 }
152 }
153
154 }
155 return nil
156}
157
158// An InvalidUnmarshalError describes an invalid argument passed to Unmarshal.
159// (The argument to Unmarshal must be a non-nil pointer.)
160type InvalidUnmarshalError struct {
161 Type reflect.Type
162}
163
164func (e *InvalidUnmarshalError) Error() string {
165 if e.Type == nil {
166 return "logfmt: Unmarshal(nil)"
167 }
168
169 if e.Type.Kind() != reflect.Ptr {
170 return "logfmt: Unmarshal(non-pointer " + e.Type.String() + ")"
171 }
172 return "logfmt: Unmarshal(nil " + e.Type.String() + ")"
173}
174
175// An UnmarshalTypeError describes a logfmt value that was
176// not appropriate for a value of a specific Go type.
177type UnmarshalTypeError struct {
178 Value string // the logfmt value
179 Type reflect.Type // type of Go value it could not be assigned to
180}
181
182func (e *UnmarshalTypeError) Error() string {
183 return "logfmt: cannot unmarshal " + e.Value + " into Go value of type " + e.Type.String()
184}
diff --git a/vendor/github.com/kr/logfmt/scanner.go b/vendor/github.com/kr/logfmt/scanner.go
deleted file mode 100644
index 095221f..0000000
--- a/vendor/github.com/kr/logfmt/scanner.go
+++ /dev/null
@@ -1,149 +0,0 @@
1package logfmt
2
3import (
4 "errors"
5 "fmt"
6)
7
8var ErrUnterminatedString = errors.New("logfmt: unterminated string")
9
10func gotoScanner(data []byte, h Handler) (err error) {
11 saveError := func(e error) {
12 if err == nil {
13 err = e
14 }
15 }
16
17 var c byte
18 var i int
19 var m int
20 var key []byte
21 var val []byte
22 var ok bool
23 var esc bool
24
25garbage:
26 if i == len(data) {
27 return
28 }
29
30 c = data[i]
31 switch {
32 case c > ' ' && c != '"' && c != '=':
33 key, val = nil, nil
34 m = i
35 i++
36 goto key
37 default:
38 i++
39 goto garbage
40 }
41
42key:
43 if i >= len(data) {
44 if m >= 0 {
45 key = data[m:i]
46 saveError(h.HandleLogfmt(key, nil))
47 }
48 return
49 }
50
51 c = data[i]
52 switch {
53 case c > ' ' && c != '"' && c != '=':
54 i++
55 goto key
56 case c == '=':
57 key = data[m:i]
58 i++
59 goto equal
60 default:
61 key = data[m:i]
62 i++
63 saveError(h.HandleLogfmt(key, nil))
64 goto garbage
65 }
66
67equal:
68 if i >= len(data) {
69 if m >= 0 {
70 i--
71 key = data[m:i]
72 saveError(h.HandleLogfmt(key, nil))
73 }
74 return
75 }
76
77 c = data[i]
78 switch {
79 case c > ' ' && c != '"' && c != '=':
80 m = i
81 i++
82 goto ivalue
83 case c == '"':
84 m = i
85 i++
86 esc = false
87 goto qvalue
88 default:
89 if key != nil {
90 saveError(h.HandleLogfmt(key, val))
91 }
92 i++
93 goto garbage
94 }
95
96ivalue:
97 if i >= len(data) {
98 if m >= 0 {
99 val = data[m:i]
100 saveError(h.HandleLogfmt(key, val))
101 }
102 return
103 }
104
105 c = data[i]
106 switch {
107 case c > ' ' && c != '"' && c != '=':
108 i++
109 goto ivalue
110 default:
111 val = data[m:i]
112 saveError(h.HandleLogfmt(key, val))
113 i++
114 goto garbage
115 }
116
117qvalue:
118 if i >= len(data) {
119 if m >= 0 {
120 saveError(ErrUnterminatedString)
121 }
122 return
123 }
124
125 c = data[i]
126 switch c {
127 case '\\':
128 i += 2
129 esc = true
130 goto qvalue
131 case '"':
132 i++
133 val = data[m:i]
134 if esc {
135 val, ok = unquoteBytes(val)
136 if !ok {
137 saveError(fmt.Errorf("logfmt: error unquoting bytes %q", string(val)))
138 goto garbage
139 }
140 } else {
141 val = val[1 : len(val)-1]
142 }
143 saveError(h.HandleLogfmt(key, val))
144 goto garbage
145 default:
146 i++
147 goto qvalue
148 }
149}
diff --git a/vendor/github.com/kr/logfmt/unquote.go b/vendor/github.com/kr/logfmt/unquote.go
deleted file mode 100644
index fb088a4..0000000
--- a/vendor/github.com/kr/logfmt/unquote.go
+++ /dev/null
@@ -1,149 +0,0 @@
1package logfmt
2
3import (
4 "strconv"
5 "unicode"
6 "unicode/utf16"
7 "unicode/utf8"
8)
9
10// Taken from Go's encoding/json
11
12// Copyright 2010 The Go Authors. All rights reserved.
13// Use of this source code is governed by a BSD-style
14// license that can be found in the LICENSE file.
15
16// getu4 decodes \uXXXX from the beginning of s, returning the hex value,
17// or it returns -1.
18func getu4(s []byte) rune {
19 if len(s) < 6 || s[0] != '\\' || s[1] != 'u' {
20 return -1
21 }
22 r, err := strconv.ParseUint(string(s[2:6]), 16, 64)
23 if err != nil {
24 return -1
25 }
26 return rune(r)
27}
28
29// unquote converts a quoted JSON string literal s into an actual string t.
30// The rules are different than for Go, so cannot use strconv.Unquote.
31func unquote(s []byte) (t string, ok bool) {
32 s, ok = unquoteBytes(s)
33 t = string(s)
34 return
35}
36
37func unquoteBytes(s []byte) (t []byte, ok bool) {
38 if len(s) < 2 || s[0] != '"' || s[len(s)-1] != '"' {
39 return
40 }
41 s = s[1 : len(s)-1]
42
43 // Check for unusual characters. If there are none,
44 // then no unquoting is needed, so return a slice of the
45 // original bytes.
46 r := 0
47 for r < len(s) {
48 c := s[r]
49 if c == '\\' || c == '"' || c < ' ' {
50 break
51 }
52 if c < utf8.RuneSelf {
53 r++
54 continue
55 }
56 rr, size := utf8.DecodeRune(s[r:])
57 if rr == utf8.RuneError && size == 1 {
58 break
59 }
60 r += size
61 }
62 if r == len(s) {
63 return s, true
64 }
65
66 b := make([]byte, len(s)+2*utf8.UTFMax)
67 w := copy(b, s[0:r])
68 for r < len(s) {
69 // Out of room? Can only happen if s is full of
70 // malformed UTF-8 and we're replacing each
71 // byte with RuneError.
72 if w >= len(b)-2*utf8.UTFMax {
73 nb := make([]byte, (len(b)+utf8.UTFMax)*2)
74 copy(nb, b[0:w])
75 b = nb
76 }
77 switch c := s[r]; {
78 case c == '\\':
79 r++
80 if r >= len(s) {
81 return
82 }
83 switch s[r] {
84 default:
85 return
86 case '"', '\\', '/', '\'':
87 b[w] = s[r]
88 r++
89 w++
90 case 'b':
91 b[w] = '\b'
92 r++
93 w++
94 case 'f':
95 b[w] = '\f'
96 r++
97 w++
98 case 'n':
99 b[w] = '\n'
100 r++
101 w++
102 case 'r':
103 b[w] = '\r'
104 r++
105 w++
106 case 't':
107 b[w] = '\t'
108 r++
109 w++
110 case 'u':
111 r--
112 rr := getu4(s[r:])
113 if rr < 0 {
114 return
115 }
116 r += 6
117 if utf16.IsSurrogate(rr) {
118 rr1 := getu4(s[r:])
119 if dec := utf16.DecodeRune(rr, rr1); dec != unicode.ReplacementChar {
120 // A valid pair; consume.
121 r += 6
122 w += utf8.EncodeRune(b[w:], dec)
123 break
124 }
125 // Invalid surrogate; fall back to replacement rune.
126 rr = unicode.ReplacementChar
127 }
128 w += utf8.EncodeRune(b[w:], rr)
129 }
130
131 // Quote, control characters are invalid.
132 case c == '"', c < ' ':
133 return
134
135 // ASCII
136 case c < utf8.RuneSelf:
137 b[w] = c
138 r++
139 w++
140
141 // Coerce to well-formed UTF-8.
142 default:
143 rr, size := utf8.DecodeRune(s[r:])
144 r += size
145 w += utf8.EncodeRune(b[w:], rr)
146 }
147 }
148 return b[0:w], true
149}
diff --git a/vendor/github.com/mdlayher/genetlink/CHANGELOG.md b/vendor/github.com/mdlayher/genetlink/CHANGELOG.md
new file mode 100644
index 0000000..6860e4b
--- /dev/null
+++ b/vendor/github.com/mdlayher/genetlink/CHANGELOG.md
@@ -0,0 +1,9 @@
1# CHANGELOG
2
3## Unreleased
4
5n/a
6
7## v1.0.0
8
9- Initial stable commit.
diff --git a/vendor/github.com/mdlayher/genetlink/README.md b/vendor/github.com/mdlayher/genetlink/README.md
index 9a190b3..a619295 100644
--- a/vendor/github.com/mdlayher/genetlink/README.md
+++ b/vendor/github.com/mdlayher/genetlink/README.md
@@ -10,3 +10,18 @@ check out my blog series on [Linux, Netlink, and Go](https://mdlayher.com/blog/l
10If you have any questions or you'd like some guidance, please join us on 10If you have any questions or you'd like some guidance, please join us on
11[Gophers Slack](https://invite.slack.golangbridge.org) in the `#networking` 11[Gophers Slack](https://invite.slack.golangbridge.org) in the `#networking`
12channel! 12channel!
13
14## Stability
15
16See the [CHANGELOG](./CHANGELOG.md) file for a description of changes between
17releases.
18
19This package has reached v1.0.0 and any future breaking API changes will prompt
20the release of a new major version. Features and bug fixes will continue to
21occur in the v1.x.x series.
22
23The general policy of this package is to only support the latest, stable version
24of Go. Compatibility shims may be added for prior versions of Go on an as-needed
25basis. If you would like to raise a concern, please [file an issue](https://github.com/mdlayher/genetlink/issues/new).
26
27**If you depend on this package in your applications, please use Go modules.**
diff --git a/vendor/github.com/mdlayher/genetlink/family_linux.go b/vendor/github.com/mdlayher/genetlink/family_linux.go
index 9c1b7ff..af5c7eb 100644
--- a/vendor/github.com/mdlayher/genetlink/family_linux.go
+++ b/vendor/github.com/mdlayher/genetlink/family_linux.go
@@ -111,13 +111,8 @@ func (f *Family) parseAttributes(b []byte) error {
111 111
112 f.Version = uint8(v) 112 f.Version = uint8(v)
113 case unix.CTRL_ATTR_MCAST_GROUPS: 113 case unix.CTRL_ATTR_MCAST_GROUPS:
114 ad.Do(func(b []byte) error { 114 ad.Nested(func(nad *netlink.AttributeDecoder) error {
115 groups, err := parseMulticastGroups(b) 115 f.Groups = parseMulticastGroups(nad)
116 if err != nil {
117 return err
118 }
119
120 f.Groups = groups
121 return nil 116 return nil
122 }) 117 })
123 } 118 }
@@ -128,42 +123,24 @@ func (f *Family) parseAttributes(b []byte) error {
128 123
129// parseMulticastGroups parses an array of multicast group nested attributes 124// parseMulticastGroups parses an array of multicast group nested attributes
130// into a slice of MulticastGroups. 125// into a slice of MulticastGroups.
131func parseMulticastGroups(b []byte) ([]MulticastGroup, error) { 126func parseMulticastGroups(ad *netlink.AttributeDecoder) []MulticastGroup {
132 ad, err := netlink.NewAttributeDecoder(b) 127 groups := make([]MulticastGroup, 0, ad.Len())
133 if err != nil {
134 return nil, err
135 }
136
137 var groups []MulticastGroup
138 for ad.Next() { 128 for ad.Next() {
139 ad.Do(func(b []byte) error { 129 ad.Nested(func(nad *netlink.AttributeDecoder) error {
140 adi, err := netlink.NewAttributeDecoder(b)
141 if err != nil {
142 return err
143 }
144
145 var g MulticastGroup 130 var g MulticastGroup
146 for adi.Next() { 131 for nad.Next() {
147 switch adi.Type() { 132 switch nad.Type() {
148 case unix.CTRL_ATTR_MCAST_GRP_NAME: 133 case unix.CTRL_ATTR_MCAST_GRP_NAME:
149 g.Name = adi.String() 134 g.Name = nad.String()
150 case unix.CTRL_ATTR_MCAST_GRP_ID: 135 case unix.CTRL_ATTR_MCAST_GRP_ID:
151 g.ID = adi.Uint32() 136 g.ID = nad.Uint32()
152 } 137 }
153 } 138 }
154 139
155 if err := ad.Err(); err != nil {
156 return err
157 }
158
159 groups = append(groups, g) 140 groups = append(groups, g)
160 return nil 141 return nil
161 }) 142 })
162 } 143 }
163 144
164 if err := ad.Err(); err != nil { 145 return groups
165 return nil, err
166 }
167
168 return groups, nil
169} 146}
diff --git a/vendor/github.com/mdlayher/genetlink/go.mod b/vendor/github.com/mdlayher/genetlink/go.mod
index a7285b5..ee52e46 100644
--- a/vendor/github.com/mdlayher/genetlink/go.mod
+++ b/vendor/github.com/mdlayher/genetlink/go.mod
@@ -1,10 +1,10 @@
1module github.com/mdlayher/genetlink 1module github.com/mdlayher/genetlink
2 2
3go 1.12 3go 1.13
4 4
5require ( 5require (
6 github.com/google/go-cmp v0.3.1 6 github.com/google/go-cmp v0.3.1
7 github.com/mdlayher/netlink v0.0.0-20190828143259-340058475d09 7 github.com/mdlayher/netlink v1.0.0
8 golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297 8 golang.org/x/net v0.0.0-20191007182048-72f939374954
9 golang.org/x/sys v0.0.0-20190826190057-c7b8b68b1456 9 golang.org/x/sys v0.0.0-20191008105621-543471e840be
10) 10)
diff --git a/vendor/github.com/mdlayher/genetlink/go.sum b/vendor/github.com/mdlayher/genetlink/go.sum
index 167aafc..a8690be 100644
--- a/vendor/github.com/mdlayher/genetlink/go.sum
+++ b/vendor/github.com/mdlayher/genetlink/go.sum
@@ -4,15 +4,19 @@ github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMyw
4github.com/jsimonetti/rtnetlink v0.0.0-20190606172950-9527aa82566a h1:84IpUNXj4mCR9CuCEvSiCArMbzr/TMbuPIadKDwypkI= 4github.com/jsimonetti/rtnetlink v0.0.0-20190606172950-9527aa82566a h1:84IpUNXj4mCR9CuCEvSiCArMbzr/TMbuPIadKDwypkI=
5github.com/jsimonetti/rtnetlink v0.0.0-20190606172950-9527aa82566a/go.mod h1:Oz+70psSo5OFh8DBl0Zv2ACw7Esh6pPUphlvZG9x7uw= 5github.com/jsimonetti/rtnetlink v0.0.0-20190606172950-9527aa82566a/go.mod h1:Oz+70psSo5OFh8DBl0Zv2ACw7Esh6pPUphlvZG9x7uw=
6github.com/mdlayher/netlink v0.0.0-20190409211403-11939a169225/go.mod h1:eQB3mZE4aiYnlUsyGGCOpPETfdQq4Jhsgf1fk3cwQaA= 6github.com/mdlayher/netlink v0.0.0-20190409211403-11939a169225/go.mod h1:eQB3mZE4aiYnlUsyGGCOpPETfdQq4Jhsgf1fk3cwQaA=
7github.com/mdlayher/netlink v0.0.0-20190828143259-340058475d09 h1:U2vuol6i4UF6MSpZJclH4HHiLRMoq1NAzxpIpCUJK/Y= 7github.com/mdlayher/netlink v1.0.0 h1:vySPY5Oxnn/8lxAPn2cK6kAzcZzYJl3KriSLO46OT18=
8github.com/mdlayher/netlink v0.0.0-20190828143259-340058475d09/go.mod h1:KxeJAFOFLG6AjpyDkQ/iIhxygIUKD+vcwqcnu43w/+M= 8github.com/mdlayher/netlink v1.0.0/go.mod h1:KxeJAFOFLG6AjpyDkQ/iIhxygIUKD+vcwqcnu43w/+M=
9golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= 9golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
10golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= 10golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
11golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297 h1:k7pJ2yAPLPgbskkFdhRCsA77k2fySZ1zf2zCjvQCiIM= 11golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297 h1:k7pJ2yAPLPgbskkFdhRCsA77k2fySZ1zf2zCjvQCiIM=
12golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= 12golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
13golang.org/x/net v0.0.0-20191007182048-72f939374954 h1:JGZucVF/L/TotR719NbujzadOZ2AgnYlqphQGHDCKaU=
14golang.org/x/net v0.0.0-20191007182048-72f939374954/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
13golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= 15golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
14golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 16golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
15golang.org/x/sys v0.0.0-20190411185658-b44545bcd369/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 17golang.org/x/sys v0.0.0-20190411185658-b44545bcd369/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
16golang.org/x/sys v0.0.0-20190826190057-c7b8b68b1456 h1:ng0gs1AKnRRuEMZoTLLlbOd+C17zUDepwGQBb/n+JVg= 18golang.org/x/sys v0.0.0-20190826190057-c7b8b68b1456 h1:ng0gs1AKnRRuEMZoTLLlbOd+C17zUDepwGQBb/n+JVg=
17golang.org/x/sys v0.0.0-20190826190057-c7b8b68b1456/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 19golang.org/x/sys v0.0.0-20190826190057-c7b8b68b1456/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
20golang.org/x/sys v0.0.0-20191008105621-543471e840be h1:QAcqgptGM8IQBC9K/RC4o+O9YmqEm0diQn9QmZw/0mU=
21golang.org/x/sys v0.0.0-20191008105621-543471e840be/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
18golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= 22golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
diff --git a/vendor/github.com/mdlayher/netlink/CHANGELOG.md b/vendor/github.com/mdlayher/netlink/CHANGELOG.md
new file mode 100644
index 0000000..9b5f766
--- /dev/null
+++ b/vendor/github.com/mdlayher/netlink/CHANGELOG.md
@@ -0,0 +1,22 @@
1# CHANGELOG
2
3## Unreleased
4
5- n/a
6
7## v1.1.0
8
9- [New API] [#157](https://github.com/mdlayher/netlink/pull/157): the
10 `netlink.AttributeDecoder.TypeFlags` method enables retrieval of the type bits
11 stored in a netlink attribute's type field, because the existing `Type` method
12 masks away these bits. Thanks @ti-mo!
13- [Performance] [#157](https://github.com/mdlayher/netlink/pull/157): `netlink.AttributeDecoder`
14 now decodes netlink attributes on demand, enabling callers who only need a
15 limited number of attributes to exit early from decoding loops. Thanks @ti-mo!
16- [Improvement] [#161](https://github.com/mdlayher/netlink/pull/161): `netlink.Conn`
17 system calls are now ready for Go 1.14+'s changes to goroutine preemption.
18 See the PR for details.
19
20## v1.0.0
21
22- Initial stable commit.
diff --git a/vendor/github.com/mdlayher/netlink/README.md b/vendor/github.com/mdlayher/netlink/README.md
index 122168c..7c21453 100644
--- a/vendor/github.com/mdlayher/netlink/README.md
+++ b/vendor/github.com/mdlayher/netlink/README.md
@@ -12,16 +12,18 @@ channel!
12 12
13## Stability 13## Stability
14 14
15At this time, package `netlink` is in a pre-v1.0.0 state. Changes are being made 15See the [CHANGELOG](./CHANGELOG.md) file for a description of changes between
16which may impact the exported API of this package and others in its ecosystem. 16releases.
17To follow along on the status of a v1.0.0 release, [see the associated issue](https://github.com/mdlayher/netlink/issues/123). 17
18This package has a stable v1 API and any future breaking changes will prompt
19the release of a new major version. Features and bug fixes will continue to
20occur in the v1.x.x series.
18 21
19The general policy of this package is to only support the latest, stable version 22The general policy of this package is to only support the latest, stable version
20of Go. Compatibility shims may be added for prior versions of Go on an as-needed 23of Go. Compatibility shims may be added for prior versions of Go on an as-needed
21basis. If you would like to raise a concern, please [file an issue](https://github.com/mdlayher/netlink/issues/new). 24basis. If you would like to raise a concern, please [file an issue](https://github.com/mdlayher/netlink/issues/new).
22 25
23**If you depend on this package in your applications, please vendor it or use Go 26**If you depend on this package in your applications, please use Go modules.**
24modules when building your application.**
25 27
26## Design 28## Design
27 29
diff --git a/vendor/github.com/mdlayher/netlink/attribute.go b/vendor/github.com/mdlayher/netlink/attribute.go
index 1e40a72..cee748d 100644
--- a/vendor/github.com/mdlayher/netlink/attribute.go
+++ b/vendor/github.com/mdlayher/netlink/attribute.go
@@ -17,7 +17,9 @@ type Attribute struct {
17 // Length of an Attribute, including this field and Type. 17 // Length of an Attribute, including this field and Type.
18 Length uint16 18 Length uint16
19 19
20 // The type of this Attribute, typically matched to a constant. 20 // The type of this Attribute, typically matched to a constant. Note that
21 // flags such as Nested and NetByteOrder must be handled manually when
22 // working with Attribute structures directly.
21 Type uint16 23 Type uint16
22 24
23 // An arbitrary payload which is specified by Type. 25 // An arbitrary payload which is specified by Type.
@@ -70,6 +72,9 @@ func (a *Attribute) unmarshal(b []byte) error {
70// MarshalAttributes packs a slice of Attributes into a single byte slice. 72// MarshalAttributes packs a slice of Attributes into a single byte slice.
71// In most cases, the Length field of each Attribute should be set to 0, so it 73// In most cases, the Length field of each Attribute should be set to 0, so it
72// can be calculated and populated automatically for each Attribute. 74// can be calculated and populated automatically for each Attribute.
75//
76// It is recommend to use the AttributeEncoder type where possible instead of
77// calling MarshalAttributes and using package nlenc functions directly.
73func MarshalAttributes(attrs []Attribute) ([]byte, error) { 78func MarshalAttributes(attrs []Attribute) ([]byte, error) {
74 // Count how many bytes we should allocate to store each attribute's contents. 79 // Count how many bytes we should allocate to store each attribute's contents.
75 var c int 80 var c int
@@ -102,26 +107,26 @@ func MarshalAttributes(attrs []Attribute) ([]byte, error) {
102// It is recommend to use the AttributeDecoder type where possible instead of calling 107// It is recommend to use the AttributeDecoder type where possible instead of calling
103// UnmarshalAttributes and using package nlenc functions directly. 108// UnmarshalAttributes and using package nlenc functions directly.
104func UnmarshalAttributes(b []byte) ([]Attribute, error) { 109func UnmarshalAttributes(b []byte) ([]Attribute, error) {
105 var attrs []Attribute 110 ad, err := NewAttributeDecoder(b)
106 var i int 111 if err != nil {
107 for { 112 return nil, err
108 if i > len(b) || len(b[i:]) == 0 { 113 }
109 break
110 }
111 114
112 var a Attribute 115 // Return a nil slice when there are no attributes to decode.
113 if err := (&a).unmarshal(b[i:]); err != nil { 116 if ad.Len() == 0 {
114 return nil, err 117 return nil, nil
115 } 118 }
116 119
117 if a.Length == 0 { 120 attrs := make([]Attribute, 0, ad.Len())
118 i += nlaHeaderLen
119 continue
120 }
121 121
122 i += nlaAlign(int(a.Length)) 122 for ad.Next() {
123 if ad.attr().Length != 0 {
124 attrs = append(attrs, ad.attr())
125 }
126 }
123 127
124 attrs = append(attrs, a) 128 if err := ad.Err(); err != nil {
129 return nil, err
125 } 130 }
126 131
127 return attrs, nil 132 return attrs, nil
@@ -143,10 +148,14 @@ type AttributeDecoder struct {
143 // If not set, the native byte order will be used. 148 // If not set, the native byte order will be used.
144 ByteOrder binary.ByteOrder 149 ByteOrder binary.ByteOrder
145 150
146 // The attributes being worked on, and the iterator index into the slice of 151 // The current attribute being worked on.
147 // attributes. 152 a Attribute
148 attrs []Attribute 153
149 i int 154 // The slice of input bytes and its iterator index.
155 b []byte
156 i int
157
158 length int
150 159
151 // Any error encountered while decoding attributes. 160 // Any error encountered while decoding attributes.
152 err error 161 err error
@@ -155,17 +164,20 @@ type AttributeDecoder struct {
155// NewAttributeDecoder creates an AttributeDecoder that unpacks Attributes 164// NewAttributeDecoder creates an AttributeDecoder that unpacks Attributes
156// from b and prepares the decoder for iteration. 165// from b and prepares the decoder for iteration.
157func NewAttributeDecoder(b []byte) (*AttributeDecoder, error) { 166func NewAttributeDecoder(b []byte) (*AttributeDecoder, error) {
158 attrs, err := UnmarshalAttributes(b) 167 ad := &AttributeDecoder{
168 // By default, use native byte order.
169 ByteOrder: nlenc.NativeEndian(),
170
171 b: b,
172 }
173
174 var err error
175 ad.length, err = ad.available()
159 if err != nil { 176 if err != nil {
160 return nil, err 177 return nil, err
161 } 178 }
162 179
163 return &AttributeDecoder{ 180 return ad, nil
164 // By default, use native byte order.
165 ByteOrder: nlenc.NativeEndian(),
166
167 attrs: attrs,
168 }, nil
169} 181}
170 182
171// Next advances the decoder to the next netlink attribute. It returns false 183// Next advances the decoder to the next netlink attribute. It returns false
@@ -176,26 +188,92 @@ func (ad *AttributeDecoder) Next() bool {
176 return false 188 return false
177 } 189 }
178 190
179 ad.i++ 191 // Exit if array pointer is at or beyond the end of the slice.
192 if ad.i >= len(ad.b) {
193 return false
194 }
180 195
181 // More attributes? 196 if err := ad.a.unmarshal(ad.b[ad.i:]); err != nil {
182 return len(ad.attrs) >= ad.i 197 ad.err = err
198 return false
199 }
200
201 // Advance the pointer by at least one header's length.
202 if int(ad.a.Length) < nlaHeaderLen {
203 ad.i += nlaHeaderLen
204 } else {
205 ad.i += nlaAlign(int(ad.a.Length))
206 }
207
208 return true
183} 209}
184 210
185// Type returns the Attribute.Type field of the current netlink attribute 211// Type returns the Attribute.Type field of the current netlink attribute
186// pointed to by the decoder. 212// pointed to by the decoder.
213//
214// Type masks off the high bits of the netlink attribute type which may contain
215// the Nested and NetByteOrder flags. These can be obtained by calling TypeFlags.
187func (ad *AttributeDecoder) Type() uint16 { 216func (ad *AttributeDecoder) Type() uint16 {
188 return ad.attr().Type 217 // Mask off any flags stored in the high bits.
218 return ad.a.Type & attrTypeMask
219}
220
221// TypeFlags returns the two high bits of the Attribute.Type field of the current
222// netlink attribute pointed to by the decoder.
223//
224// These bits of the netlink attribute type are used for the Nested and NetByteOrder
225// flags, available as the Nested and NetByteOrder constants in this package.
226func (ad *AttributeDecoder) TypeFlags() uint16 {
227 return ad.a.Type & ^attrTypeMask
228}
229
230// Len returns the number of netlink attributes pointed to by the decoder.
231func (ad *AttributeDecoder) Len() int { return ad.length }
232
233// count scans the input slice to count the number of netlink attributes
234// that could be decoded by Next().
235func (ad *AttributeDecoder) available() (int, error) {
236 var i, count int
237 for {
238
239 // No more data to read.
240 if i >= len(ad.b) {
241 break
242 }
243
244 // Make sure there's at least a header's worth
245 // of data to read on each iteration.
246 if len(ad.b[i:]) < nlaHeaderLen {
247 return 0, errInvalidAttribute
248 }
249
250 // Extract the length of the attribute.
251 l := int(nlenc.Uint16(ad.b[i : i+2]))
252
253 // Ignore zero-length attributes.
254 if l != 0 {
255 count++
256 }
257
258 // Advance by at least a header's worth of bytes.
259 if l < nlaHeaderLen {
260 l = nlaHeaderLen
261 }
262
263 i += nlaAlign(l)
264 }
265
266 return count, nil
189} 267}
190 268
191// attr returns the current Attribute pointed to by the decoder. 269// attr returns the current Attribute pointed to by the decoder.
192func (ad *AttributeDecoder) attr() Attribute { 270func (ad *AttributeDecoder) attr() Attribute {
193 return ad.attrs[ad.i-1] 271 return ad.a
194} 272}
195 273
196// data returns the Data field of the current Attribute pointed to by the decoder. 274// data returns the Data field of the current Attribute pointed to by the decoder.
197func (ad *AttributeDecoder) data() []byte { 275func (ad *AttributeDecoder) data() []byte {
198 return ad.attr().Data 276 return ad.a.Data
199} 277}
200 278
201// Err returns the first error encountered by the decoder. 279// Err returns the first error encountered by the decoder.
@@ -280,6 +358,21 @@ func (ad *AttributeDecoder) Uint64() uint64 {
280 return ad.ByteOrder.Uint64(b) 358 return ad.ByteOrder.Uint64(b)
281} 359}
282 360
361// Flag returns a boolean representing the Attribute.
362func (ad *AttributeDecoder) Flag() bool {
363 if ad.err != nil {
364 return false
365 }
366
367 b := ad.data()
368 if len(b) != 0 {
369 ad.err = fmt.Errorf("netlink: attribute %d is not a flag; length: %d", ad.Type(), len(b))
370 return false
371 }
372
373 return true
374}
375
283// Do is a general purpose function which allows access to the current data 376// Do is a general purpose function which allows access to the current data
284// pointed to by the AttributeDecoder. 377// pointed to by the AttributeDecoder.
285// 378//
@@ -301,6 +394,29 @@ func (ad *AttributeDecoder) Do(fn func(b []byte) error) {
301 } 394 }
302} 395}
303 396
397// Nested decodes data into a nested AttributeDecoder to handle nested netlink
398// attributes. When calling Nested, the Err method does not need to be called on
399// the nested AttributeDecoder.
400//
401// The nested AttributeDecoder nad inherits the same ByteOrder setting as the
402// top-level AttributeDecoder ad.
403func (ad *AttributeDecoder) Nested(fn func(nad *AttributeDecoder) error) {
404 // Because we are wrapping Do, there is no need to check ad.err immediately.
405 ad.Do(func(b []byte) error {
406 nad, err := NewAttributeDecoder(b)
407 if err != nil {
408 return err
409 }
410 nad.ByteOrder = ad.ByteOrder
411
412 if err := fn(nad); err != nil {
413 return err
414 }
415
416 return nad.Err()
417 })
418}
419
304// An AttributeEncoder provides a safe way to encode attributes. 420// An AttributeEncoder provides a safe way to encode attributes.
305// 421//
306// It is recommended to use an AttributeEncoder where possible instead of 422// It is recommended to use an AttributeEncoder where possible instead of
@@ -384,6 +500,17 @@ func (ae *AttributeEncoder) Uint64(typ uint16, v uint64) {
384 }) 500 })
385} 501}
386 502
503// Flag encodes a flag into an Attribute specidied by typ.
504func (ae *AttributeEncoder) Flag(typ uint16, v bool) {
505 // Only set flag on no previous error or v == true.
506 if ae.err != nil || !v {
507 return
508 }
509
510 // Flags have no length or data fields.
511 ae.attrs = append(ae.attrs, Attribute{Type: typ})
512}
513
387// String encodes string s as a null-terminated string into an Attribute 514// String encodes string s as a null-terminated string into an Attribute
388// specified by typ. 515// specified by typ.
389func (ae *AttributeEncoder) String(typ uint16, s string) { 516func (ae *AttributeEncoder) String(typ uint16, s string) {
@@ -432,6 +559,26 @@ func (ae *AttributeEncoder) Do(typ uint16, fn func() ([]byte, error)) {
432 }) 559 })
433} 560}
434 561
562// Nested embeds data produced by a nested AttributeEncoder and flags that data
563// with the Nested flag. When calling Nested, the Encode method should not be
564// called on the nested AttributeEncoder.
565//
566// The nested AttributeEncoder nae inherits the same ByteOrder setting as the
567// top-level AttributeEncoder ae.
568func (ae *AttributeEncoder) Nested(typ uint16, fn func(nae *AttributeEncoder) error) {
569 // Because we are wrapping Do, there is no need to check ae.err immediately.
570 ae.Do(Nested|typ, func() ([]byte, error) {
571 nae := NewAttributeEncoder()
572 nae.ByteOrder = ae.ByteOrder
573
574 if err := fn(nae); err != nil {
575 return nil, err
576 }
577
578 return nae.Encode()
579 })
580}
581
435// Encode returns the encoded bytes representing the attributes. 582// Encode returns the encoded bytes representing the attributes.
436func (ae *AttributeEncoder) Encode() ([]byte, error) { 583func (ae *AttributeEncoder) Encode() ([]byte, error) {
437 if ae.err != nil { 584 if ae.err != nil {
diff --git a/vendor/github.com/mdlayher/netlink/conn.go b/vendor/github.com/mdlayher/netlink/conn.go
index 46e0c30..5baaf9b 100644
--- a/vendor/github.com/mdlayher/netlink/conn.go
+++ b/vendor/github.com/mdlayher/netlink/conn.go
@@ -583,4 +583,22 @@ type Config struct {
583 // CAP_SYS_ADMIN are required), and most applications should leave this set 583 // CAP_SYS_ADMIN are required), and most applications should leave this set
584 // to 0. 584 // to 0.
585 NetNS int 585 NetNS int
586
587 // DisableNSLockThread disables package netlink's default goroutine thread
588 // locking behavior.
589 //
590 // By default, the library will lock the processing goroutine to its
591 // corresponding OS thread in order to enable communication over netlink to
592 // a different network namespace.
593 //
594 // If the caller already knows that the netlink socket is in the same
595 // namespace as the calling thread, this can introduce a performance
596 // impact. This option disables the OS thread locking behavior if
597 // performance considerations are of interest.
598 //
599 // If disabled, it is the responsibility of the caller to make sure that all
600 // threads are running in the correct namespace.
601 //
602 // When DisableNSLockThread is set, the caller cannot set the NetNS value.
603 DisableNSLockThread bool
586} 604}
diff --git a/vendor/github.com/mdlayher/netlink/conn_linux.go b/vendor/github.com/mdlayher/netlink/conn_linux.go
index 7ac144c..61af3a2 100644
--- a/vendor/github.com/mdlayher/netlink/conn_linux.go
+++ b/vendor/github.com/mdlayher/netlink/conn_linux.go
@@ -3,6 +3,7 @@
3package netlink 3package netlink
4 4
5import ( 5import (
6 "errors"
6 "math" 7 "math"
7 "os" 8 "os"
8 "runtime" 9 "runtime"
@@ -339,7 +340,7 @@ type sysSocket struct {
339// to a single thread. 340// to a single thread.
340func newSysSocket(config *Config) (*sysSocket, error) { 341func newSysSocket(config *Config) (*sysSocket, error) {
341 // Determine network namespaces using the threadNetNS function. 342 // Determine network namespaces using the threadNetNS function.
342 g, err := newLockedNetNSGoroutine(config.NetNS, threadNetNS) 343 g, err := newLockedNetNSGoroutine(config.NetNS, threadNetNS, !config.DisableNSLockThread)
343 if err != nil { 344 if err != nil {
344 return nil, err 345 return nil, err
345 } 346 }
@@ -542,13 +543,8 @@ func (s *sysSocket) Recvmsg(p, oob []byte, flags int) (int, int, int, unix.Socka
542 doErr := s.read(func(fd int) bool { 543 doErr := s.read(func(fd int) bool {
543 n, oobn, recvflags, from, err = unix.Recvmsg(fd, p, oob, flags) 544 n, oobn, recvflags, from, err = unix.Recvmsg(fd, p, oob, flags)
544 545
545 // When the socket is in non-blocking mode, we might see 546 // Check for readiness.
546 // EAGAIN and end up here. In that case, return false to 547 return ready(err)
547 // let the poller wait for readiness. See the source code
548 // for internal/poll.FD.RawRead for more details.
549 //
550 // If the socket is in blocking mode, EAGAIN should never occur.
551 return err != syscall.EAGAIN
552 }) 548 })
553 if doErr != nil { 549 if doErr != nil {
554 return 0, 0, 0, nil, doErr 550 return 0, 0, 0, nil, doErr
@@ -562,8 +558,8 @@ func (s *sysSocket) Sendmsg(p, oob []byte, to unix.Sockaddr, flags int) error {
562 doErr := s.write(func(fd int) bool { 558 doErr := s.write(func(fd int) bool {
563 err = unix.Sendmsg(fd, p, oob, to, flags) 559 err = unix.Sendmsg(fd, p, oob, to, flags)
564 560
565 // Analogous to Recvmsg. See the comments there. 561 // Check for readiness.
566 return err != syscall.EAGAIN 562 return ready(err)
567 }) 563 })
568 if doErr != nil { 564 if doErr != nil {
569 return doErr 565 return doErr
@@ -613,6 +609,28 @@ func (s *sysSocket) SetSockoptSockFprog(level, opt int, fprog *unix.SockFprog) e
613 return err 609 return err
614} 610}
615 611
612// ready indicates readiness based on the value of err.
613func ready(err error) bool {
614 // When a socket is in non-blocking mode, we might see
615 // EAGAIN. In that case, return false to let the poller wait for readiness.
616 // See the source code for internal/poll.FD.RawRead for more details.
617 //
618 // Starting in Go 1.14, goroutines are asynchronously preemptible. The 1.14
619 // release notes indicate that applications should expect to see EINTR more
620 // often on slow system calls (like recvmsg while waiting for input), so
621 // we must handle that case as well.
622 //
623 // If the socket is in blocking mode, EAGAIN should never occur.
624 switch err {
625 case syscall.EAGAIN, syscall.EINTR:
626 // Not ready.
627 return false
628 default:
629 // Ready whether there was error or no error.
630 return true
631 }
632}
633
616// lockedNetNSGoroutine is a worker goroutine locked to an operating system 634// lockedNetNSGoroutine is a worker goroutine locked to an operating system
617// thread, optionally configured to run in a non-default network namespace. 635// thread, optionally configured to run in a non-default network namespace.
618type lockedNetNSGoroutine struct { 636type lockedNetNSGoroutine struct {
@@ -624,10 +642,16 @@ type lockedNetNSGoroutine struct {
624// newLockedNetNSGoroutine creates a lockedNetNSGoroutine that will enter the 642// newLockedNetNSGoroutine creates a lockedNetNSGoroutine that will enter the
625// specified network namespace netNS (by file descriptor), and will use the 643// specified network namespace netNS (by file descriptor), and will use the
626// getNS function to produce netNS handles. 644// getNS function to produce netNS handles.
627func newLockedNetNSGoroutine(netNS int, getNS func() (*netNS, error)) (*lockedNetNSGoroutine, error) { 645func newLockedNetNSGoroutine(netNS int, getNS func() (*netNS, error), lockThread bool) (*lockedNetNSGoroutine, error) {
628 // Any bare syscall errors (e.g. setns) should be wrapped with 646 // Any bare syscall errors (e.g. setns) should be wrapped with
629 // os.NewSyscallError for the remainder of this function. 647 // os.NewSyscallError for the remainder of this function.
630 648
649 // If the caller has instructed us to not lock OS thread but also attempts
650 // to set a namespace, return an error.
651 if !lockThread && netNS != 0 {
652 return nil, errors.New("netlink Conn attempted to set a namespace with OS thread locking disabled")
653 }
654
631 callerNS, err := getNS() 655 callerNS, err := getNS()
632 if err != nil { 656 if err != nil {
633 return nil, err 657 return nil, err
@@ -660,9 +684,16 @@ func newLockedNetNSGoroutine(netNS int, getNS func() (*netNS, error)) (*lockedNe
660 // with the Go runtime for threads which are not unlocked, we have 684 // with the Go runtime for threads which are not unlocked, we have
661 // elected to temporarily unlock the thread when the goroutine terminates: 685 // elected to temporarily unlock the thread when the goroutine terminates:
662 // https://github.com/golang/go/issues/25128#issuecomment-410764489. 686 // https://github.com/golang/go/issues/25128#issuecomment-410764489.
687 //
688 // Locking the thread is not implemented if the caller explicitly asks
689 // for an unlocked thread.
690
691 // Only lock the tread, if the lockThread is set.
692 if lockThread {
693 runtime.LockOSThread()
694 defer runtime.UnlockOSThread()
695 }
663 696
664 runtime.LockOSThread()
665 defer runtime.UnlockOSThread()
666 defer g.wg.Done() 697 defer g.wg.Done()
667 698
668 // Get the current namespace of the thread the goroutine is locked to. 699 // Get the current namespace of the thread the goroutine is locked to.
diff --git a/vendor/github.com/mdlayher/netlink/errors.go b/vendor/github.com/mdlayher/netlink/errors.go
index 1d93eb9..648f409 100644
--- a/vendor/github.com/mdlayher/netlink/errors.go
+++ b/vendor/github.com/mdlayher/netlink/errors.go
@@ -32,6 +32,8 @@ func notSupported(op string) error {
32// Errors types created by this package, such as OpError, can be used with 32// Errors types created by this package, such as OpError, can be used with
33// IsNotExist, but this function also defers to the behavior of os.IsNotExist 33// IsNotExist, but this function also defers to the behavior of os.IsNotExist
34// for unrecognized error types. 34// for unrecognized error types.
35//
36// Deprecated: make use of errors.Unwrap and errors.Is in Go 1.13+.
35func IsNotExist(err error) bool { 37func IsNotExist(err error) bool {
36 switch err := err.(type) { 38 switch err := err.(type) {
37 case *OpError: 39 case *OpError:
@@ -44,8 +46,12 @@ func IsNotExist(err error) bool {
44 } 46 }
45} 47}
46 48
47var _ error = &OpError{} 49var (
48var _ net.Error = &OpError{} 50 _ error = &OpError{}
51 _ net.Error = &OpError{}
52 // Ensure compatibility with Go 1.13+ errors package.
53 _ interface{ Unwrap() error } = &OpError{}
54)
49 55
50// An OpError is an error produced as the result of a failed netlink operation. 56// An OpError is an error produced as the result of a failed netlink operation.
51type OpError struct { 57type OpError struct {
@@ -84,6 +90,9 @@ func (e *OpError) Error() string {
84 return fmt.Sprintf("netlink %s: %v", e.Op, e.Err) 90 return fmt.Sprintf("netlink %s: %v", e.Op, e.Err)
85} 91}
86 92
93// Unwrap unwraps the internal Err field for use with errors.Unwrap.
94func (e *OpError) Unwrap() error { return e.Err }
95
87// Portions of this code taken from the Go standard library: 96// Portions of this code taken from the Go standard library:
88// 97//
89// Copyright 2009 The Go Authors. All rights reserved. 98// Copyright 2009 The Go Authors. All rights reserved.
diff --git a/vendor/github.com/mdlayher/netlink/go.mod b/vendor/github.com/mdlayher/netlink/go.mod
index 85a1ab2..ddc9d35 100644
--- a/vendor/github.com/mdlayher/netlink/go.mod
+++ b/vendor/github.com/mdlayher/netlink/go.mod
@@ -3,8 +3,8 @@ module github.com/mdlayher/netlink
3go 1.12 3go 1.12
4 4
5require ( 5require (
6 github.com/google/go-cmp v0.3.1 6 github.com/google/go-cmp v0.4.0
7 github.com/jsimonetti/rtnetlink v0.0.0-20190606172950-9527aa82566a 7 github.com/jsimonetti/rtnetlink v0.0.0-20200117123717-f846d4f6c1f4
8 golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297 8 golang.org/x/net v0.0.0-20200202094626-16171245cfb2
9 golang.org/x/sys v0.0.0-20190826190057-c7b8b68b1456 9 golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5
10) 10)
diff --git a/vendor/github.com/mdlayher/netlink/go.sum b/vendor/github.com/mdlayher/netlink/go.sum
index 91479d6..fa89b49 100644
--- a/vendor/github.com/mdlayher/netlink/go.sum
+++ b/vendor/github.com/mdlayher/netlink/go.sum
@@ -1,16 +1,29 @@
1github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= 1github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M=
2github.com/google/go-cmp v0.3.1 h1:Xye71clBPdm5HgqGwUkwhbynsUJZhDbS20FvLhQ2izg= 2github.com/google/go-cmp v0.3.1 h1:Xye71clBPdm5HgqGwUkwhbynsUJZhDbS20FvLhQ2izg=
3github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= 3github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
4github.com/google/go-cmp v0.4.0 h1:xsAVV57WRhGj6kEIi8ReJzQlHHqcBYCElAvkovg3B/4=
5github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
4github.com/jsimonetti/rtnetlink v0.0.0-20190606172950-9527aa82566a h1:84IpUNXj4mCR9CuCEvSiCArMbzr/TMbuPIadKDwypkI= 6github.com/jsimonetti/rtnetlink v0.0.0-20190606172950-9527aa82566a h1:84IpUNXj4mCR9CuCEvSiCArMbzr/TMbuPIadKDwypkI=
5github.com/jsimonetti/rtnetlink v0.0.0-20190606172950-9527aa82566a/go.mod h1:Oz+70psSo5OFh8DBl0Zv2ACw7Esh6pPUphlvZG9x7uw= 7github.com/jsimonetti/rtnetlink v0.0.0-20190606172950-9527aa82566a/go.mod h1:Oz+70psSo5OFh8DBl0Zv2ACw7Esh6pPUphlvZG9x7uw=
8github.com/jsimonetti/rtnetlink v0.0.0-20200117123717-f846d4f6c1f4 h1:nwOc1YaOrYJ37sEBrtWZrdqzK22hiJs3GpDmP3sR2Yw=
9github.com/jsimonetti/rtnetlink v0.0.0-20200117123717-f846d4f6c1f4/go.mod h1:WGuG/smIU4J/54PblvSbh+xvCZmpJnFgr3ds6Z55XMQ=
6github.com/mdlayher/netlink v0.0.0-20190409211403-11939a169225/go.mod h1:eQB3mZE4aiYnlUsyGGCOpPETfdQq4Jhsgf1fk3cwQaA= 10github.com/mdlayher/netlink v0.0.0-20190409211403-11939a169225/go.mod h1:eQB3mZE4aiYnlUsyGGCOpPETfdQq4Jhsgf1fk3cwQaA=
11github.com/mdlayher/netlink v1.0.0/go.mod h1:KxeJAFOFLG6AjpyDkQ/iIhxygIUKD+vcwqcnu43w/+M=
7golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= 12golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
8golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= 13golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
9golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297 h1:k7pJ2yAPLPgbskkFdhRCsA77k2fySZ1zf2zCjvQCiIM= 14golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297 h1:k7pJ2yAPLPgbskkFdhRCsA77k2fySZ1zf2zCjvQCiIM=
10golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= 15golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
16golang.org/x/net v0.0.0-20191007182048-72f939374954/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
17golang.org/x/net v0.0.0-20200202094626-16171245cfb2 h1:CCH4IOTTfewWjGOlSp+zGcjutRKlBEZQ6wTn8ozI/nI=
18golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
11golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= 19golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
12golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 20golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
13golang.org/x/sys v0.0.0-20190411185658-b44545bcd369/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 21golang.org/x/sys v0.0.0-20190411185658-b44545bcd369/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
14golang.org/x/sys v0.0.0-20190826190057-c7b8b68b1456 h1:ng0gs1AKnRRuEMZoTLLlbOd+C17zUDepwGQBb/n+JVg= 22golang.org/x/sys v0.0.0-20190826190057-c7b8b68b1456 h1:ng0gs1AKnRRuEMZoTLLlbOd+C17zUDepwGQBb/n+JVg=
15golang.org/x/sys v0.0.0-20190826190057-c7b8b68b1456/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 23golang.org/x/sys v0.0.0-20190826190057-c7b8b68b1456/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
24golang.org/x/sys v0.0.0-20191008105621-543471e840be/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
25golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5 h1:LfCXLvNmTYH9kEmVgqbnsWfruoXZIrh4YBgqVHtDvw0=
26golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
16golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= 27golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
28golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4=
29golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
diff --git a/vendor/github.com/mdlayher/netlink/message.go b/vendor/github.com/mdlayher/netlink/message.go
index 4cd2972..0189091 100644
--- a/vendor/github.com/mdlayher/netlink/message.go
+++ b/vendor/github.com/mdlayher/netlink/message.go
@@ -7,6 +7,16 @@ import (
7 "github.com/mdlayher/netlink/nlenc" 7 "github.com/mdlayher/netlink/nlenc"
8) 8)
9 9
10// Flags which may apply to netlink attribute types when communicating with
11// certain netlink families.
12const (
13 Nested uint16 = 0x8000
14 NetByteOrder uint16 = 0x4000
15
16 // attrTypeMask masks off Type bits used for the above flags.
17 attrTypeMask uint16 = 0x3fff
18)
19
10// Various errors which may occur when attempting to marshal or unmarshal 20// Various errors which may occur when attempting to marshal or unmarshal
11// a Message to and from its binary form. 21// a Message to and from its binary form.
12var ( 22var (
@@ -174,8 +184,8 @@ type Header struct {
174// A Message is a netlink message. It contains a Header and an arbitrary 184// A Message is a netlink message. It contains a Header and an arbitrary
175// byte payload, which may be decoded using information from the Header. 185// byte payload, which may be decoded using information from the Header.
176// 186//
177// Data is encoded in the native endianness of the host system. For easier 187// Data is often populated with netlink attributes. For easy encoding and
178// of encoding and decoding of integers, use package nlenc. 188// decoding of attributes, see the AttributeDecoder and AttributeEncoder types.
179type Message struct { 189type Message struct {
180 Header Header 190 Header Header
181 Data []byte 191 Data []byte
diff --git a/vendor/github.com/pkg/errors/.travis.yml b/vendor/github.com/pkg/errors/.travis.yml
index d4b9266..9159de0 100644
--- a/vendor/github.com/pkg/errors/.travis.yml
+++ b/vendor/github.com/pkg/errors/.travis.yml
@@ -1,15 +1,10 @@
1language: go 1language: go
2go_import_path: github.com/pkg/errors 2go_import_path: github.com/pkg/errors
3go: 3go:
4 - 1.4.x
5 - 1.5.x
6 - 1.6.x
7 - 1.7.x
8 - 1.8.x
9 - 1.9.x
10 - 1.10.x
11 - 1.11.x 4 - 1.11.x
5 - 1.12.x
6 - 1.13.x
12 - tip 7 - tip
13 8
14script: 9script:
15 - go test -v ./... 10 - make check
diff --git a/vendor/github.com/pkg/errors/Makefile b/vendor/github.com/pkg/errors/Makefile
new file mode 100644
index 0000000..ce9d7cd
--- /dev/null
+++ b/vendor/github.com/pkg/errors/Makefile
@@ -0,0 +1,44 @@
1PKGS := github.com/pkg/errors
2SRCDIRS := $(shell go list -f '{{.Dir}}' $(PKGS))
3GO := go
4
5check: test vet gofmt misspell unconvert staticcheck ineffassign unparam
6
7test:
8 $(GO) test $(PKGS)
9
10vet: | test
11 $(GO) vet $(PKGS)
12
13staticcheck:
14 $(GO) get honnef.co/go/tools/cmd/staticcheck
15 staticcheck -checks all $(PKGS)
16
17misspell:
18 $(GO) get github.com/client9/misspell/cmd/misspell
19 misspell \
20 -locale GB \
21 -error \
22 *.md *.go
23
24unconvert:
25 $(GO) get github.com/mdempsky/unconvert
26 unconvert -v $(PKGS)
27
28ineffassign:
29 $(GO) get github.com/gordonklaus/ineffassign
30 find $(SRCDIRS) -name '*.go' | xargs ineffassign
31
32pedantic: check errcheck
33
34unparam:
35 $(GO) get mvdan.cc/unparam
36 unparam ./...
37
38errcheck:
39 $(GO) get github.com/kisielk/errcheck
40 errcheck $(PKGS)
41
42gofmt:
43 @echo Checking code is gofmted
44 @test -z "$(shell gofmt -s -l -d -e $(SRCDIRS) | tee /dev/stderr)"
diff --git a/vendor/github.com/pkg/errors/README.md b/vendor/github.com/pkg/errors/README.md
index 6483ba2..54dfdcb 100644
--- a/vendor/github.com/pkg/errors/README.md
+++ b/vendor/github.com/pkg/errors/README.md
@@ -41,11 +41,18 @@ default:
41 41
42[Read the package documentation for more information](https://godoc.org/github.com/pkg/errors). 42[Read the package documentation for more information](https://godoc.org/github.com/pkg/errors).
43 43
44## Roadmap
45
46With the upcoming [Go2 error proposals](https://go.googlesource.com/proposal/+/master/design/go2draft.md) this package is moving into maintenance mode. The roadmap for a 1.0 release is as follows:
47
48- 0.9. Remove pre Go 1.9 and Go 1.10 support, address outstanding pull requests (if possible)
49- 1.0. Final release.
50
44## Contributing 51## Contributing
45 52
46We welcome pull requests, bug fixes and issue reports. With that said, the bar for adding new symbols to this package is intentionally set high. 53Because of the Go2 errors changes, this package is not accepting proposals for new functionality. With that said, we welcome pull requests, bug fixes and issue reports.
47 54
48Before proposing a change, please discuss your change by raising an issue. 55Before sending a PR, please discuss your change by raising an issue.
49 56
50## License 57## License
51 58
diff --git a/vendor/github.com/pkg/errors/errors.go b/vendor/github.com/pkg/errors/errors.go
index 7421f32..161aea2 100644
--- a/vendor/github.com/pkg/errors/errors.go
+++ b/vendor/github.com/pkg/errors/errors.go
@@ -82,7 +82,7 @@
82// 82//
83// if err, ok := err.(stackTracer); ok { 83// if err, ok := err.(stackTracer); ok {
84// for _, f := range err.StackTrace() { 84// for _, f := range err.StackTrace() {
85// fmt.Printf("%+s:%d", f) 85// fmt.Printf("%+s:%d\n", f, f)
86// } 86// }
87// } 87// }
88// 88//
@@ -159,6 +159,9 @@ type withStack struct {
159 159
160func (w *withStack) Cause() error { return w.error } 160func (w *withStack) Cause() error { return w.error }
161 161
162// Unwrap provides compatibility for Go 1.13 error chains.
163func (w *withStack) Unwrap() error { return w.error }
164
162func (w *withStack) Format(s fmt.State, verb rune) { 165func (w *withStack) Format(s fmt.State, verb rune) {
163 switch verb { 166 switch verb {
164 case 'v': 167 case 'v':
@@ -241,6 +244,9 @@ type withMessage struct {
241func (w *withMessage) Error() string { return w.msg + ": " + w.cause.Error() } 244func (w *withMessage) Error() string { return w.msg + ": " + w.cause.Error() }
242func (w *withMessage) Cause() error { return w.cause } 245func (w *withMessage) Cause() error { return w.cause }
243 246
247// Unwrap provides compatibility for Go 1.13 error chains.
248func (w *withMessage) Unwrap() error { return w.cause }
249
244func (w *withMessage) Format(s fmt.State, verb rune) { 250func (w *withMessage) Format(s fmt.State, verb rune) {
245 switch verb { 251 switch verb {
246 case 'v': 252 case 'v':
diff --git a/vendor/github.com/pkg/errors/go113.go b/vendor/github.com/pkg/errors/go113.go
new file mode 100644
index 0000000..be0d10d
--- /dev/null
+++ b/vendor/github.com/pkg/errors/go113.go
@@ -0,0 +1,38 @@
1// +build go1.13
2
3package errors
4
5import (
6 stderrors "errors"
7)
8
9// Is reports whether any error in err's chain matches target.
10//
11// The chain consists of err itself followed by the sequence of errors obtained by
12// repeatedly calling Unwrap.
13//
14// An error is considered to match a target if it is equal to that target or if
15// it implements a method Is(error) bool such that Is(target) returns true.
16func Is(err, target error) bool { return stderrors.Is(err, target) }
17
18// As finds the first error in err's chain that matches target, and if so, sets
19// target to that error value and returns true.
20//
21// The chain consists of err itself followed by the sequence of errors obtained by
22// repeatedly calling Unwrap.
23//
24// An error matches target if the error's concrete value is assignable to the value
25// pointed to by target, or if the error has a method As(interface{}) bool such that
26// As(target) returns true. In the latter case, the As method is responsible for
27// setting target.
28//
29// As will panic if target is not a non-nil pointer to either a type that implements
30// error, or to any interface type. As returns false if err is nil.
31func As(err error, target interface{}) bool { return stderrors.As(err, target) }
32
33// Unwrap returns the result of calling the Unwrap method on err, if err's
34// type contains an Unwrap method returning error.
35// Otherwise, Unwrap returns nil.
36func Unwrap(err error) error {
37 return stderrors.Unwrap(err)
38}
diff --git a/vendor/github.com/pkg/errors/stack.go b/vendor/github.com/pkg/errors/stack.go
index 2874a04..779a834 100644
--- a/vendor/github.com/pkg/errors/stack.go
+++ b/vendor/github.com/pkg/errors/stack.go
@@ -5,10 +5,13 @@ import (
5 "io" 5 "io"
6 "path" 6 "path"
7 "runtime" 7 "runtime"
8 "strconv"
8 "strings" 9 "strings"
9) 10)
10 11
11// Frame represents a program counter inside a stack frame. 12// Frame represents a program counter inside a stack frame.
13// For historical reasons if Frame is interpreted as a uintptr
14// its value represents the program counter + 1.
12type Frame uintptr 15type Frame uintptr
13 16
14// pc returns the program counter for this frame; 17// pc returns the program counter for this frame;
@@ -37,6 +40,15 @@ func (f Frame) line() int {
37 return line 40 return line
38} 41}
39 42
43// name returns the name of this function, if known.
44func (f Frame) name() string {
45 fn := runtime.FuncForPC(f.pc())
46 if fn == nil {
47 return "unknown"
48 }
49 return fn.Name()
50}
51
40// Format formats the frame according to the fmt.Formatter interface. 52// Format formats the frame according to the fmt.Formatter interface.
41// 53//
42// %s source file 54// %s source file
@@ -54,22 +66,16 @@ func (f Frame) Format(s fmt.State, verb rune) {
54 case 's': 66 case 's':
55 switch { 67 switch {
56 case s.Flag('+'): 68 case s.Flag('+'):
57 pc := f.pc() 69 io.WriteString(s, f.name())
58 fn := runtime.FuncForPC(pc) 70 io.WriteString(s, "\n\t")
59 if fn == nil { 71 io.WriteString(s, f.file())
60 io.WriteString(s, "unknown")
61 } else {
62 file, _ := fn.FileLine(pc)
63 fmt.Fprintf(s, "%s\n\t%s", fn.Name(), file)
64 }
65 default: 72 default:
66 io.WriteString(s, path.Base(f.file())) 73 io.WriteString(s, path.Base(f.file()))
67 } 74 }
68 case 'd': 75 case 'd':
69 fmt.Fprintf(s, "%d", f.line()) 76 io.WriteString(s, strconv.Itoa(f.line()))
70 case 'n': 77 case 'n':
71 name := runtime.FuncForPC(f.pc()).Name() 78 io.WriteString(s, funcname(f.name()))
72 io.WriteString(s, funcname(name))
73 case 'v': 79 case 'v':
74 f.Format(s, 's') 80 f.Format(s, 's')
75 io.WriteString(s, ":") 81 io.WriteString(s, ":")
@@ -77,6 +83,16 @@ func (f Frame) Format(s fmt.State, verb rune) {
77 } 83 }
78} 84}
79 85
86// MarshalText formats a stacktrace Frame as a text string. The output is the
87// same as that of fmt.Sprintf("%+v", f), but without newlines or tabs.
88func (f Frame) MarshalText() ([]byte, error) {
89 name := f.name()
90 if name == "unknown" {
91 return []byte(name), nil
92 }
93 return []byte(fmt.Sprintf("%s %s:%d", name, f.file(), f.line())), nil
94}
95
80// StackTrace is stack of Frames from innermost (newest) to outermost (oldest). 96// StackTrace is stack of Frames from innermost (newest) to outermost (oldest).
81type StackTrace []Frame 97type StackTrace []Frame
82 98
@@ -94,16 +110,30 @@ func (st StackTrace) Format(s fmt.State, verb rune) {
94 switch { 110 switch {
95 case s.Flag('+'): 111 case s.Flag('+'):
96 for _, f := range st { 112 for _, f := range st {
97 fmt.Fprintf(s, "\n%+v", f) 113 io.WriteString(s, "\n")
114 f.Format(s, verb)
98 } 115 }
99 case s.Flag('#'): 116 case s.Flag('#'):
100 fmt.Fprintf(s, "%#v", []Frame(st)) 117 fmt.Fprintf(s, "%#v", []Frame(st))
101 default: 118 default:
102 fmt.Fprintf(s, "%v", []Frame(st)) 119 st.formatSlice(s, verb)
103 } 120 }
104 case 's': 121 case 's':
105 fmt.Fprintf(s, "%s", []Frame(st)) 122 st.formatSlice(s, verb)
123 }
124}
125
126// formatSlice will format this StackTrace into the given buffer as a slice of
127// Frame, only valid when called with '%s' or '%v'.
128func (st StackTrace) formatSlice(s fmt.State, verb rune) {
129 io.WriteString(s, "[")
130 for i, f := range st {
131 if i > 0 {
132 io.WriteString(s, " ")
133 }
134 f.Format(s, verb)
106 } 135 }
136 io.WriteString(s, "]")
107} 137}
108 138
109// stack represents a stack of program counters. 139// stack represents a stack of program counters.
diff --git a/vendor/github.com/prometheus/client_golang/prometheus/counter.go b/vendor/github.com/prometheus/client_golang/prometheus/counter.go
index d463e36..df72fcf 100644
--- a/vendor/github.com/prometheus/client_golang/prometheus/counter.go
+++ b/vendor/github.com/prometheus/client_golang/prometheus/counter.go
@@ -17,6 +17,7 @@ import (
17 "errors" 17 "errors"
18 "math" 18 "math"
19 "sync/atomic" 19 "sync/atomic"
20 "time"
20 21
21 dto "github.com/prometheus/client_model/go" 22 dto "github.com/prometheus/client_model/go"
22) 23)
@@ -42,11 +43,27 @@ type Counter interface {
42 Add(float64) 43 Add(float64)
43} 44}
44 45
46// ExemplarAdder is implemented by Counters that offer the option of adding a
47// value to the Counter together with an exemplar. Its AddWithExemplar method
48// works like the Add method of the Counter interface but also replaces the
49// currently saved exemplar (if any) with a new one, created from the provided
50// value, the current time as timestamp, and the provided labels. Empty Labels
51// will lead to a valid (label-less) exemplar. But if Labels is nil, the current
52// exemplar is left in place. AddWithExemplar panics if the value is < 0, if any
53// of the provided labels are invalid, or if the provided labels contain more
54// than 64 runes in total.
55type ExemplarAdder interface {
56 AddWithExemplar(value float64, exemplar Labels)
57}
58
45// CounterOpts is an alias for Opts. See there for doc comments. 59// CounterOpts is an alias for Opts. See there for doc comments.
46type CounterOpts Opts 60type CounterOpts Opts
47 61
48// NewCounter creates a new Counter based on the provided CounterOpts. 62// NewCounter creates a new Counter based on the provided CounterOpts.
49// 63//
64// The returned implementation also implements ExemplarAdder. It is safe to
65// perform the corresponding type assertion.
66//
50// The returned implementation tracks the counter value in two separate 67// The returned implementation tracks the counter value in two separate
51// variables, a float64 and a uint64. The latter is used to track calls of the 68// variables, a float64 and a uint64. The latter is used to track calls of the
52// Inc method and calls of the Add method with a value that can be represented 69// Inc method and calls of the Add method with a value that can be represented
@@ -61,7 +78,7 @@ func NewCounter(opts CounterOpts) Counter {
61 nil, 78 nil,
62 opts.ConstLabels, 79 opts.ConstLabels,
63 ) 80 )
64 result := &counter{desc: desc, labelPairs: desc.constLabelPairs} 81 result := &counter{desc: desc, labelPairs: desc.constLabelPairs, now: time.Now}
65 result.init(result) // Init self-collection. 82 result.init(result) // Init self-collection.
66 return result 83 return result
67} 84}
@@ -78,6 +95,9 @@ type counter struct {
78 desc *Desc 95 desc *Desc
79 96
80 labelPairs []*dto.LabelPair 97 labelPairs []*dto.LabelPair
98 exemplar atomic.Value // Containing nil or a *dto.Exemplar.
99
100 now func() time.Time // To mock out time.Now() for testing.
81} 101}
82 102
83func (c *counter) Desc() *Desc { 103func (c *counter) Desc() *Desc {
@@ -88,6 +108,7 @@ func (c *counter) Add(v float64) {
88 if v < 0 { 108 if v < 0 {
89 panic(errors.New("counter cannot decrease in value")) 109 panic(errors.New("counter cannot decrease in value"))
90 } 110 }
111
91 ival := uint64(v) 112 ival := uint64(v)
92 if float64(ival) == v { 113 if float64(ival) == v {
93 atomic.AddUint64(&c.valInt, ival) 114 atomic.AddUint64(&c.valInt, ival)
@@ -103,6 +124,11 @@ func (c *counter) Add(v float64) {
103 } 124 }
104} 125}
105 126
127func (c *counter) AddWithExemplar(v float64, e Labels) {
128 c.Add(v)
129 c.updateExemplar(v, e)
130}
131
106func (c *counter) Inc() { 132func (c *counter) Inc() {
107 atomic.AddUint64(&c.valInt, 1) 133 atomic.AddUint64(&c.valInt, 1)
108} 134}
@@ -112,7 +138,23 @@ func (c *counter) Write(out *dto.Metric) error {
112 ival := atomic.LoadUint64(&c.valInt) 138 ival := atomic.LoadUint64(&c.valInt)
113 val := fval + float64(ival) 139 val := fval + float64(ival)
114 140
115 return populateMetric(CounterValue, val, c.labelPairs, out) 141 var exemplar *dto.Exemplar
142 if e := c.exemplar.Load(); e != nil {
143 exemplar = e.(*dto.Exemplar)
144 }
145
146 return populateMetric(CounterValue, val, c.labelPairs, exemplar, out)
147}
148
149func (c *counter) updateExemplar(v float64, l Labels) {
150 if l == nil {
151 return
152 }
153 e, err := newExemplar(v, c.now(), l)
154 if err != nil {
155 panic(err)
156 }
157 c.exemplar.Store(e)
116} 158}
117 159
118// CounterVec is a Collector that bundles a set of Counters that all share the 160// CounterVec is a Collector that bundles a set of Counters that all share the
@@ -138,7 +180,7 @@ func NewCounterVec(opts CounterOpts, labelNames []string) *CounterVec {
138 if len(lvs) != len(desc.variableLabels) { 180 if len(lvs) != len(desc.variableLabels) {
139 panic(makeInconsistentCardinalityError(desc.fqName, desc.variableLabels, lvs)) 181 panic(makeInconsistentCardinalityError(desc.fqName, desc.variableLabels, lvs))
140 } 182 }
141 result := &counter{desc: desc, labelPairs: makeLabelPairs(desc, lvs)} 183 result := &counter{desc: desc, labelPairs: makeLabelPairs(desc, lvs), now: time.Now}
142 result.init(result) // Init self-collection. 184 result.init(result) // Init self-collection.
143 return result 185 return result
144 }), 186 }),
diff --git a/vendor/github.com/prometheus/client_golang/prometheus/desc.go b/vendor/github.com/prometheus/client_golang/prometheus/desc.go
index 1d034f8..e3232d7 100644
--- a/vendor/github.com/prometheus/client_golang/prometheus/desc.go
+++ b/vendor/github.com/prometheus/client_golang/prometheus/desc.go
@@ -19,6 +19,7 @@ import (
19 "sort" 19 "sort"
20 "strings" 20 "strings"
21 21
22 "github.com/cespare/xxhash/v2"
22 "github.com/golang/protobuf/proto" 23 "github.com/golang/protobuf/proto"
23 "github.com/prometheus/common/model" 24 "github.com/prometheus/common/model"
24 25
@@ -126,24 +127,24 @@ func NewDesc(fqName, help string, variableLabels []string, constLabels Labels) *
126 return d 127 return d
127 } 128 }
128 129
129 vh := hashNew() 130 xxh := xxhash.New()
130 for _, val := range labelValues { 131 for _, val := range labelValues {
131 vh = hashAdd(vh, val) 132 xxh.WriteString(val)
132 vh = hashAddByte(vh, separatorByte) 133 xxh.Write(separatorByteSlice)
133 } 134 }
134 d.id = vh 135 d.id = xxh.Sum64()
135 // Sort labelNames so that order doesn't matter for the hash. 136 // Sort labelNames so that order doesn't matter for the hash.
136 sort.Strings(labelNames) 137 sort.Strings(labelNames)
137 // Now hash together (in this order) the help string and the sorted 138 // Now hash together (in this order) the help string and the sorted
138 // label names. 139 // label names.
139 lh := hashNew() 140 xxh.Reset()
140 lh = hashAdd(lh, help) 141 xxh.WriteString(help)
141 lh = hashAddByte(lh, separatorByte) 142 xxh.Write(separatorByteSlice)
142 for _, labelName := range labelNames { 143 for _, labelName := range labelNames {
143 lh = hashAdd(lh, labelName) 144 xxh.WriteString(labelName)
144 lh = hashAddByte(lh, separatorByte) 145 xxh.Write(separatorByteSlice)
145 } 146 }
146 d.dimHash = lh 147 d.dimHash = xxh.Sum64()
147 148
148 d.constLabelPairs = make([]*dto.LabelPair, 0, len(constLabels)) 149 d.constLabelPairs = make([]*dto.LabelPair, 0, len(constLabels))
149 for n, v := range constLabels { 150 for n, v := range constLabels {
diff --git a/vendor/github.com/prometheus/client_golang/prometheus/gauge.go b/vendor/github.com/prometheus/client_golang/prometheus/gauge.go
index 71d406b..d67573f 100644
--- a/vendor/github.com/prometheus/client_golang/prometheus/gauge.go
+++ b/vendor/github.com/prometheus/client_golang/prometheus/gauge.go
@@ -123,7 +123,7 @@ func (g *gauge) Sub(val float64) {
123 123
124func (g *gauge) Write(out *dto.Metric) error { 124func (g *gauge) Write(out *dto.Metric) error {
125 val := math.Float64frombits(atomic.LoadUint64(&g.valBits)) 125 val := math.Float64frombits(atomic.LoadUint64(&g.valBits))
126 return populateMetric(GaugeValue, val, g.labelPairs, out) 126 return populateMetric(GaugeValue, val, g.labelPairs, nil, out)
127} 127}
128 128
129// GaugeVec is a Collector that bundles a set of Gauges that all share the same 129// GaugeVec is a Collector that bundles a set of Gauges that all share the same
@@ -273,9 +273,12 @@ type GaugeFunc interface {
273// NewGaugeFunc creates a new GaugeFunc based on the provided GaugeOpts. The 273// NewGaugeFunc creates a new GaugeFunc based on the provided GaugeOpts. The
274// value reported is determined by calling the given function from within the 274// value reported is determined by calling the given function from within the
275// Write method. Take into account that metric collection may happen 275// Write method. Take into account that metric collection may happen
276// concurrently. If that results in concurrent calls to Write, like in the case 276// concurrently. Therefore, it must be safe to call the provided function
277// where a GaugeFunc is directly registered with Prometheus, the provided 277// concurrently.
278// function must be concurrency-safe. 278//
279// NewGaugeFunc is a good way to create an “info” style metric with a constant
280// value of 1. Example:
281// https://github.com/prometheus/common/blob/8558a5b7db3c84fa38b4766966059a7bd5bfa2ee/version/info.go#L36-L56
279func NewGaugeFunc(opts GaugeOpts, function func() float64) GaugeFunc { 282func NewGaugeFunc(opts GaugeOpts, function func() float64) GaugeFunc {
280 return newValueFunc(NewDesc( 283 return newValueFunc(NewDesc(
281 BuildFQName(opts.Namespace, opts.Subsystem, opts.Name), 284 BuildFQName(opts.Namespace, opts.Subsystem, opts.Name),
diff --git a/vendor/github.com/prometheus/client_golang/prometheus/go_collector.go b/vendor/github.com/prometheus/client_golang/prometheus/go_collector.go
index dc9247f..ea05cf4 100644
--- a/vendor/github.com/prometheus/client_golang/prometheus/go_collector.go
+++ b/vendor/github.com/prometheus/client_golang/prometheus/go_collector.go
@@ -73,7 +73,7 @@ func NewGoCollector() Collector {
73 nil, nil), 73 nil, nil),
74 gcDesc: NewDesc( 74 gcDesc: NewDesc(
75 "go_gc_duration_seconds", 75 "go_gc_duration_seconds",
76 "A summary of the GC invocation durations.", 76 "A summary of the pause duration of garbage collection cycles.",
77 nil, nil), 77 nil, nil),
78 goInfoDesc: NewDesc( 78 goInfoDesc: NewDesc(
79 "go_info", 79 "go_info",
diff --git a/vendor/github.com/prometheus/client_golang/prometheus/histogram.go b/vendor/github.com/prometheus/client_golang/prometheus/histogram.go
index d7ea67b..4271f43 100644
--- a/vendor/github.com/prometheus/client_golang/prometheus/histogram.go
+++ b/vendor/github.com/prometheus/client_golang/prometheus/histogram.go
@@ -20,6 +20,7 @@ import (
20 "sort" 20 "sort"
21 "sync" 21 "sync"
22 "sync/atomic" 22 "sync/atomic"
23 "time"
23 24
24 "github.com/golang/protobuf/proto" 25 "github.com/golang/protobuf/proto"
25 26
@@ -138,7 +139,7 @@ type HistogramOpts struct {
138 // better covered by target labels set by the scraping Prometheus 139 // better covered by target labels set by the scraping Prometheus
139 // server, or by one specific metric (e.g. a build_info or a 140 // server, or by one specific metric (e.g. a build_info or a
140 // machine_role metric). See also 141 // machine_role metric). See also
141 // https://prometheus.io/docs/instrumenting/writing_exporters/#target-labels,-not-static-scraped-labels 142 // https://prometheus.io/docs/instrumenting/writing_exporters/#target-labels-not-static-scraped-labels
142 ConstLabels Labels 143 ConstLabels Labels
143 144
144 // Buckets defines the buckets into which observations are counted. Each 145 // Buckets defines the buckets into which observations are counted. Each
@@ -151,6 +152,10 @@ type HistogramOpts struct {
151 152
152// NewHistogram creates a new Histogram based on the provided HistogramOpts. It 153// NewHistogram creates a new Histogram based on the provided HistogramOpts. It
153// panics if the buckets in HistogramOpts are not in strictly increasing order. 154// panics if the buckets in HistogramOpts are not in strictly increasing order.
155//
156// The returned implementation also implements ExemplarObserver. It is safe to
157// perform the corresponding type assertion. Exemplars are tracked separately
158// for each bucket.
154func NewHistogram(opts HistogramOpts) Histogram { 159func NewHistogram(opts HistogramOpts) Histogram {
155 return newHistogram( 160 return newHistogram(
156 NewDesc( 161 NewDesc(
@@ -187,7 +192,8 @@ func newHistogram(desc *Desc, opts HistogramOpts, labelValues ...string) Histogr
187 desc: desc, 192 desc: desc,
188 upperBounds: opts.Buckets, 193 upperBounds: opts.Buckets,
189 labelPairs: makeLabelPairs(desc, labelValues), 194 labelPairs: makeLabelPairs(desc, labelValues),
190 counts: [2]*histogramCounts{&histogramCounts{}, &histogramCounts{}}, 195 counts: [2]*histogramCounts{{}, {}},
196 now: time.Now,
191 } 197 }
192 for i, upperBound := range h.upperBounds { 198 for i, upperBound := range h.upperBounds {
193 if i < len(h.upperBounds)-1 { 199 if i < len(h.upperBounds)-1 {
@@ -205,9 +211,10 @@ func newHistogram(desc *Desc, opts HistogramOpts, labelValues ...string) Histogr
205 } 211 }
206 } 212 }
207 // Finally we know the final length of h.upperBounds and can make buckets 213 // Finally we know the final length of h.upperBounds and can make buckets
208 // for both counts: 214 // for both counts as well as exemplars:
209 h.counts[0].buckets = make([]uint64, len(h.upperBounds)) 215 h.counts[0].buckets = make([]uint64, len(h.upperBounds))
210 h.counts[1].buckets = make([]uint64, len(h.upperBounds)) 216 h.counts[1].buckets = make([]uint64, len(h.upperBounds))
217 h.exemplars = make([]atomic.Value, len(h.upperBounds)+1)
211 218
212 h.init(h) // Init self-collection. 219 h.init(h) // Init self-collection.
213 return h 220 return h
@@ -254,6 +261,9 @@ type histogram struct {
254 261
255 upperBounds []float64 262 upperBounds []float64
256 labelPairs []*dto.LabelPair 263 labelPairs []*dto.LabelPair
264 exemplars []atomic.Value // One more than buckets (to include +Inf), each a *dto.Exemplar.
265
266 now func() time.Time // To mock out time.Now() for testing.
257} 267}
258 268
259func (h *histogram) Desc() *Desc { 269func (h *histogram) Desc() *Desc {
@@ -261,36 +271,13 @@ func (h *histogram) Desc() *Desc {
261} 271}
262 272
263func (h *histogram) Observe(v float64) { 273func (h *histogram) Observe(v float64) {
264 // TODO(beorn7): For small numbers of buckets (<30), a linear search is 274 h.observe(v, h.findBucket(v))
265 // slightly faster than the binary search. If we really care, we could 275}
266 // switch from one search strategy to the other depending on the number
267 // of buckets.
268 //
269 // Microbenchmarks (BenchmarkHistogramNoLabels):
270 // 11 buckets: 38.3 ns/op linear - binary 48.7 ns/op
271 // 100 buckets: 78.1 ns/op linear - binary 54.9 ns/op
272 // 300 buckets: 154 ns/op linear - binary 61.6 ns/op
273 i := sort.SearchFloat64s(h.upperBounds, v)
274
275 // We increment h.countAndHotIdx so that the counter in the lower
276 // 63 bits gets incremented. At the same time, we get the new value
277 // back, which we can use to find the currently-hot counts.
278 n := atomic.AddUint64(&h.countAndHotIdx, 1)
279 hotCounts := h.counts[n>>63]
280 276
281 if i < len(h.upperBounds) { 277func (h *histogram) ObserveWithExemplar(v float64, e Labels) {
282 atomic.AddUint64(&hotCounts.buckets[i], 1) 278 i := h.findBucket(v)
283 } 279 h.observe(v, i)
284 for { 280 h.updateExemplar(v, i, e)
285 oldBits := atomic.LoadUint64(&hotCounts.sumBits)
286 newBits := math.Float64bits(math.Float64frombits(oldBits) + v)
287 if atomic.CompareAndSwapUint64(&hotCounts.sumBits, oldBits, newBits) {
288 break
289 }
290 }
291 // Increment count last as we take it as a signal that the observation
292 // is complete.
293 atomic.AddUint64(&hotCounts.count, 1)
294} 281}
295 282
296func (h *histogram) Write(out *dto.Metric) error { 283func (h *histogram) Write(out *dto.Metric) error {
@@ -329,6 +316,18 @@ func (h *histogram) Write(out *dto.Metric) error {
329 CumulativeCount: proto.Uint64(cumCount), 316 CumulativeCount: proto.Uint64(cumCount),
330 UpperBound: proto.Float64(upperBound), 317 UpperBound: proto.Float64(upperBound),
331 } 318 }
319 if e := h.exemplars[i].Load(); e != nil {
320 his.Bucket[i].Exemplar = e.(*dto.Exemplar)
321 }
322 }
323 // If there is an exemplar for the +Inf bucket, we have to add that bucket explicitly.
324 if e := h.exemplars[len(h.upperBounds)].Load(); e != nil {
325 b := &dto.Bucket{
326 CumulativeCount: proto.Uint64(count),
327 UpperBound: proto.Float64(math.Inf(1)),
328 Exemplar: e.(*dto.Exemplar),
329 }
330 his.Bucket = append(his.Bucket, b)
332 } 331 }
333 332
334 out.Histogram = his 333 out.Histogram = his
@@ -352,6 +351,57 @@ func (h *histogram) Write(out *dto.Metric) error {
352 return nil 351 return nil
353} 352}
354 353
354// findBucket returns the index of the bucket for the provided value, or
355// len(h.upperBounds) for the +Inf bucket.
356func (h *histogram) findBucket(v float64) int {
357 // TODO(beorn7): For small numbers of buckets (<30), a linear search is
358 // slightly faster than the binary search. If we really care, we could
359 // switch from one search strategy to the other depending on the number
360 // of buckets.
361 //
362 // Microbenchmarks (BenchmarkHistogramNoLabels):
363 // 11 buckets: 38.3 ns/op linear - binary 48.7 ns/op
364 // 100 buckets: 78.1 ns/op linear - binary 54.9 ns/op
365 // 300 buckets: 154 ns/op linear - binary 61.6 ns/op
366 return sort.SearchFloat64s(h.upperBounds, v)
367}
368
369// observe is the implementation for Observe without the findBucket part.
370func (h *histogram) observe(v float64, bucket int) {
371 // We increment h.countAndHotIdx so that the counter in the lower
372 // 63 bits gets incremented. At the same time, we get the new value
373 // back, which we can use to find the currently-hot counts.
374 n := atomic.AddUint64(&h.countAndHotIdx, 1)
375 hotCounts := h.counts[n>>63]
376
377 if bucket < len(h.upperBounds) {
378 atomic.AddUint64(&hotCounts.buckets[bucket], 1)
379 }
380 for {
381 oldBits := atomic.LoadUint64(&hotCounts.sumBits)
382 newBits := math.Float64bits(math.Float64frombits(oldBits) + v)
383 if atomic.CompareAndSwapUint64(&hotCounts.sumBits, oldBits, newBits) {
384 break
385 }
386 }
387 // Increment count last as we take it as a signal that the observation
388 // is complete.
389 atomic.AddUint64(&hotCounts.count, 1)
390}
391
392// updateExemplar replaces the exemplar for the provided bucket. With empty
393// labels, it's a no-op. It panics if any of the labels is invalid.
394func (h *histogram) updateExemplar(v float64, bucket int, l Labels) {
395 if l == nil {
396 return
397 }
398 e, err := newExemplar(v, h.now(), l)
399 if err != nil {
400 panic(err)
401 }
402 h.exemplars[bucket].Store(e)
403}
404
355// HistogramVec is a Collector that bundles a set of Histograms that all share the 405// HistogramVec is a Collector that bundles a set of Histograms that all share the
356// same Desc, but have different values for their variable labels. This is used 406// same Desc, but have different values for their variable labels. This is used
357// if you want to count the same thing partitioned by various dimensions 407// if you want to count the same thing partitioned by various dimensions
diff --git a/vendor/github.com/prometheus/client_golang/prometheus/metric.go b/vendor/github.com/prometheus/client_golang/prometheus/metric.go
index 55e6d86..0df1eff 100644
--- a/vendor/github.com/prometheus/client_golang/prometheus/metric.go
+++ b/vendor/github.com/prometheus/client_golang/prometheus/metric.go
@@ -18,11 +18,12 @@ import (
18 "time" 18 "time"
19 19
20 "github.com/golang/protobuf/proto" 20 "github.com/golang/protobuf/proto"
21 "github.com/prometheus/common/model"
21 22
22 dto "github.com/prometheus/client_model/go" 23 dto "github.com/prometheus/client_model/go"
23) 24)
24 25
25const separatorByte byte = 255 26var separatorByteSlice = []byte{model.SeparatorByte} // For convenient use with xxhash.
26 27
27// A Metric models a single sample value with its meta data being exported to 28// A Metric models a single sample value with its meta data being exported to
28// Prometheus. Implementations of Metric in this package are Gauge, Counter, 29// Prometheus. Implementations of Metric in this package are Gauge, Counter,
diff --git a/vendor/github.com/prometheus/client_golang/prometheus/observer.go b/vendor/github.com/prometheus/client_golang/prometheus/observer.go
index 5806cd0..4412801 100644
--- a/vendor/github.com/prometheus/client_golang/prometheus/observer.go
+++ b/vendor/github.com/prometheus/client_golang/prometheus/observer.go
@@ -50,3 +50,15 @@ type ObserverVec interface {
50 50
51 Collector 51 Collector
52} 52}
53
54// ExemplarObserver is implemented by Observers that offer the option of
55// observing a value together with an exemplar. Its ObserveWithExemplar method
56// works like the Observe method of an Observer but also replaces the currently
57// saved exemplar (if any) with a new one, created from the provided value, the
58// current time as timestamp, and the provided Labels. Empty Labels will lead to
59// a valid (label-less) exemplar. But if Labels is nil, the current exemplar is
60// left in place. ObserveWithExemplar panics if any of the provided labels are
61// invalid or if the provided labels contain more than 64 runes in total.
62type ExemplarObserver interface {
63 ObserveWithExemplar(value float64, exemplar Labels)
64}
diff --git a/vendor/github.com/prometheus/client_golang/prometheus/promhttp/delegator.go b/vendor/github.com/prometheus/client_golang/prometheus/promhttp/delegator.go
index fa53568..d1354b1 100644
--- a/vendor/github.com/prometheus/client_golang/prometheus/promhttp/delegator.go
+++ b/vendor/github.com/prometheus/client_golang/prometheus/promhttp/delegator.go
@@ -62,6 +62,8 @@ func (r *responseWriterDelegator) WriteHeader(code int) {
62} 62}
63 63
64func (r *responseWriterDelegator) Write(b []byte) (int, error) { 64func (r *responseWriterDelegator) Write(b []byte) (int, error) {
65 // If applicable, call WriteHeader here so that observeWriteHeader is
66 // handled appropriately.
65 if !r.wroteHeader { 67 if !r.wroteHeader {
66 r.WriteHeader(http.StatusOK) 68 r.WriteHeader(http.StatusOK)
67 } 69 }
@@ -82,12 +84,19 @@ func (d closeNotifierDelegator) CloseNotify() <-chan bool {
82 return d.ResponseWriter.(http.CloseNotifier).CloseNotify() 84 return d.ResponseWriter.(http.CloseNotifier).CloseNotify()
83} 85}
84func (d flusherDelegator) Flush() { 86func (d flusherDelegator) Flush() {
87 // If applicable, call WriteHeader here so that observeWriteHeader is
88 // handled appropriately.
89 if !d.wroteHeader {
90 d.WriteHeader(http.StatusOK)
91 }
85 d.ResponseWriter.(http.Flusher).Flush() 92 d.ResponseWriter.(http.Flusher).Flush()
86} 93}
87func (d hijackerDelegator) Hijack() (net.Conn, *bufio.ReadWriter, error) { 94func (d hijackerDelegator) Hijack() (net.Conn, *bufio.ReadWriter, error) {
88 return d.ResponseWriter.(http.Hijacker).Hijack() 95 return d.ResponseWriter.(http.Hijacker).Hijack()
89} 96}
90func (d readerFromDelegator) ReadFrom(re io.Reader) (int64, error) { 97func (d readerFromDelegator) ReadFrom(re io.Reader) (int64, error) {
98 // If applicable, call WriteHeader here so that observeWriteHeader is
99 // handled appropriately.
91 if !d.wroteHeader { 100 if !d.wroteHeader {
92 d.WriteHeader(http.StatusOK) 101 d.WriteHeader(http.StatusOK)
93 } 102 }
diff --git a/vendor/github.com/prometheus/client_golang/prometheus/promhttp/http.go b/vendor/github.com/prometheus/client_golang/prometheus/promhttp/http.go
index cea5a90..b0ee467 100644
--- a/vendor/github.com/prometheus/client_golang/prometheus/promhttp/http.go
+++ b/vendor/github.com/prometheus/client_golang/prometheus/promhttp/http.go
@@ -144,7 +144,12 @@ func HandlerFor(reg prometheus.Gatherer, opts HandlerOpts) http.Handler {
144 } 144 }
145 } 145 }
146 146
147 contentType := expfmt.Negotiate(req.Header) 147 var contentType expfmt.Format
148 if opts.EnableOpenMetrics {
149 contentType = expfmt.NegotiateIncludingOpenMetrics(req.Header)
150 } else {
151 contentType = expfmt.Negotiate(req.Header)
152 }
148 header := rsp.Header() 153 header := rsp.Header()
149 header.Set(contentTypeHeader, string(contentType)) 154 header.Set(contentTypeHeader, string(contentType))
150 155
@@ -163,22 +168,38 @@ func HandlerFor(reg prometheus.Gatherer, opts HandlerOpts) http.Handler {
163 enc := expfmt.NewEncoder(w, contentType) 168 enc := expfmt.NewEncoder(w, contentType)
164 169
165 var lastErr error 170 var lastErr error
171
172 // handleError handles the error according to opts.ErrorHandling
173 // and returns true if we have to abort after the handling.
174 handleError := func(err error) bool {
175 if err == nil {
176 return false
177 }
178 lastErr = err
179 if opts.ErrorLog != nil {
180 opts.ErrorLog.Println("error encoding and sending metric family:", err)
181 }
182 errCnt.WithLabelValues("encoding").Inc()
183 switch opts.ErrorHandling {
184 case PanicOnError:
185 panic(err)
186 case HTTPErrorOnError:
187 httpError(rsp, err)
188 return true
189 }
190 // Do nothing in all other cases, including ContinueOnError.
191 return false
192 }
193
166 for _, mf := range mfs { 194 for _, mf := range mfs {
167 if err := enc.Encode(mf); err != nil { 195 if handleError(enc.Encode(mf)) {
168 lastErr = err 196 return
169 if opts.ErrorLog != nil { 197 }
170 opts.ErrorLog.Println("error encoding and sending metric family:", err) 198 }
171 } 199 if closer, ok := enc.(expfmt.Closer); ok {
172 errCnt.WithLabelValues("encoding").Inc() 200 // This in particular takes care of the final "# EOF\n" line for OpenMetrics.
173 switch opts.ErrorHandling { 201 if handleError(closer.Close()) {
174 case PanicOnError: 202 return
175 panic(err)
176 case ContinueOnError:
177 // Handled later.
178 case HTTPErrorOnError:
179 httpError(rsp, err)
180 return
181 }
182 } 203 }
183 } 204 }
184 205
@@ -318,6 +339,16 @@ type HandlerOpts struct {
318 // away). Until the implementation is improved, it is recommended to 339 // away). Until the implementation is improved, it is recommended to
319 // implement a separate timeout in potentially slow Collectors. 340 // implement a separate timeout in potentially slow Collectors.
320 Timeout time.Duration 341 Timeout time.Duration
342 // If true, the experimental OpenMetrics encoding is added to the
343 // possible options during content negotiation. Note that Prometheus
344 // 2.5.0+ will negotiate OpenMetrics as first priority. OpenMetrics is
345 // the only way to transmit exemplars. However, the move to OpenMetrics
346 // is not completely transparent. Most notably, the values of "quantile"
347 // labels of Summaries and "le" labels of Histograms are formatted with
348 // a trailing ".0" if they would otherwise look like integer numbers
349 // (which changes the identity of the resulting series on the Prometheus
350 // server).
351 EnableOpenMetrics bool
321} 352}
322 353
323// gzipAccepted returns whether the client will accept gzip-encoded content. 354// gzipAccepted returns whether the client will accept gzip-encoded content.
diff --git a/vendor/github.com/prometheus/client_golang/prometheus/registry.go b/vendor/github.com/prometheus/client_golang/prometheus/registry.go
index 6c32516..c05d6ee 100644
--- a/vendor/github.com/prometheus/client_golang/prometheus/registry.go
+++ b/vendor/github.com/prometheus/client_golang/prometheus/registry.go
@@ -25,6 +25,7 @@ import (
25 "sync" 25 "sync"
26 "unicode/utf8" 26 "unicode/utf8"
27 27
28 "github.com/cespare/xxhash/v2"
28 "github.com/golang/protobuf/proto" 29 "github.com/golang/protobuf/proto"
29 "github.com/prometheus/common/expfmt" 30 "github.com/prometheus/common/expfmt"
30 31
@@ -74,7 +75,7 @@ func NewRegistry() *Registry {
74// NewPedanticRegistry returns a registry that checks during collection if each 75// NewPedanticRegistry returns a registry that checks during collection if each
75// collected Metric is consistent with its reported Desc, and if the Desc has 76// collected Metric is consistent with its reported Desc, and if the Desc has
76// actually been registered with the registry. Unchecked Collectors (those whose 77// actually been registered with the registry. Unchecked Collectors (those whose
77// Describe methed does not yield any descriptors) are excluded from the check. 78// Describe method does not yield any descriptors) are excluded from the check.
78// 79//
79// Usually, a Registry will be happy as long as the union of all collected 80// Usually, a Registry will be happy as long as the union of all collected
80// Metrics is consistent and valid even if some metrics are not consistent with 81// Metrics is consistent and valid even if some metrics are not consistent with
@@ -266,7 +267,7 @@ func (r *Registry) Register(c Collector) error {
266 descChan = make(chan *Desc, capDescChan) 267 descChan = make(chan *Desc, capDescChan)
267 newDescIDs = map[uint64]struct{}{} 268 newDescIDs = map[uint64]struct{}{}
268 newDimHashesByName = map[string]uint64{} 269 newDimHashesByName = map[string]uint64{}
269 collectorID uint64 // Just a sum of all desc IDs. 270 collectorID uint64 // All desc IDs XOR'd together.
270 duplicateDescErr error 271 duplicateDescErr error
271 ) 272 )
272 go func() { 273 go func() {
@@ -293,12 +294,12 @@ func (r *Registry) Register(c Collector) error {
293 if _, exists := r.descIDs[desc.id]; exists { 294 if _, exists := r.descIDs[desc.id]; exists {
294 duplicateDescErr = fmt.Errorf("descriptor %s already exists with the same fully-qualified name and const label values", desc) 295 duplicateDescErr = fmt.Errorf("descriptor %s already exists with the same fully-qualified name and const label values", desc)
295 } 296 }
296 // If it is not a duplicate desc in this collector, add it to 297 // If it is not a duplicate desc in this collector, XOR it to
297 // the collectorID. (We allow duplicate descs within the same 298 // the collectorID. (We allow duplicate descs within the same
298 // collector, but their existence must be a no-op.) 299 // collector, but their existence must be a no-op.)
299 if _, exists := newDescIDs[desc.id]; !exists { 300 if _, exists := newDescIDs[desc.id]; !exists {
300 newDescIDs[desc.id] = struct{}{} 301 newDescIDs[desc.id] = struct{}{}
301 collectorID += desc.id 302 collectorID ^= desc.id
302 } 303 }
303 304
304 // Are all the label names and the help string consistent with 305 // Are all the label names and the help string consistent with
@@ -360,7 +361,7 @@ func (r *Registry) Unregister(c Collector) bool {
360 var ( 361 var (
361 descChan = make(chan *Desc, capDescChan) 362 descChan = make(chan *Desc, capDescChan)
362 descIDs = map[uint64]struct{}{} 363 descIDs = map[uint64]struct{}{}
363 collectorID uint64 // Just a sum of the desc IDs. 364 collectorID uint64 // All desc IDs XOR'd together.
364 ) 365 )
365 go func() { 366 go func() {
366 c.Describe(descChan) 367 c.Describe(descChan)
@@ -368,7 +369,7 @@ func (r *Registry) Unregister(c Collector) bool {
368 }() 369 }()
369 for desc := range descChan { 370 for desc := range descChan {
370 if _, exists := descIDs[desc.id]; !exists { 371 if _, exists := descIDs[desc.id]; !exists {
371 collectorID += desc.id 372 collectorID ^= desc.id
372 descIDs[desc.id] = struct{}{} 373 descIDs[desc.id] = struct{}{}
373 } 374 }
374 } 375 }
@@ -875,9 +876,9 @@ func checkMetricConsistency(
875 } 876 }
876 877
877 // Is the metric unique (i.e. no other metric with the same name and the same labels)? 878 // Is the metric unique (i.e. no other metric with the same name and the same labels)?
878 h := hashNew() 879 h := xxhash.New()
879 h = hashAdd(h, name) 880 h.WriteString(name)
880 h = hashAddByte(h, separatorByte) 881 h.Write(separatorByteSlice)
881 // Make sure label pairs are sorted. We depend on it for the consistency 882 // Make sure label pairs are sorted. We depend on it for the consistency
882 // check. 883 // check.
883 if !sort.IsSorted(labelPairSorter(dtoMetric.Label)) { 884 if !sort.IsSorted(labelPairSorter(dtoMetric.Label)) {
@@ -888,18 +889,19 @@ func checkMetricConsistency(
888 dtoMetric.Label = copiedLabels 889 dtoMetric.Label = copiedLabels
889 } 890 }
890 for _, lp := range dtoMetric.Label { 891 for _, lp := range dtoMetric.Label {
891 h = hashAdd(h, lp.GetName()) 892 h.WriteString(lp.GetName())
892 h = hashAddByte(h, separatorByte) 893 h.Write(separatorByteSlice)
893 h = hashAdd(h, lp.GetValue()) 894 h.WriteString(lp.GetValue())
894 h = hashAddByte(h, separatorByte) 895 h.Write(separatorByteSlice)
895 } 896 }
896 if _, exists := metricHashes[h]; exists { 897 hSum := h.Sum64()
898 if _, exists := metricHashes[hSum]; exists {
897 return fmt.Errorf( 899 return fmt.Errorf(
898 "collected metric %q { %s} was collected before with the same name and label values", 900 "collected metric %q { %s} was collected before with the same name and label values",
899 name, dtoMetric, 901 name, dtoMetric,
900 ) 902 )
901 } 903 }
902 metricHashes[h] = struct{}{} 904 metricHashes[hSum] = struct{}{}
903 return nil 905 return nil
904} 906}
905 907
diff --git a/vendor/github.com/prometheus/client_golang/prometheus/summary.go b/vendor/github.com/prometheus/client_golang/prometheus/summary.go
index c970fde..ae42e76 100644
--- a/vendor/github.com/prometheus/client_golang/prometheus/summary.go
+++ b/vendor/github.com/prometheus/client_golang/prometheus/summary.go
@@ -208,7 +208,7 @@ func newSummary(desc *Desc, opts SummaryOpts, labelValues ...string) Summary {
208 s := &noObjectivesSummary{ 208 s := &noObjectivesSummary{
209 desc: desc, 209 desc: desc,
210 labelPairs: makeLabelPairs(desc, labelValues), 210 labelPairs: makeLabelPairs(desc, labelValues),
211 counts: [2]*summaryCounts{&summaryCounts{}, &summaryCounts{}}, 211 counts: [2]*summaryCounts{{}, {}},
212 } 212 }
213 s.init(s) // Init self-collection. 213 s.init(s) // Init self-collection.
214 return s 214 return s
diff --git a/vendor/github.com/prometheus/client_golang/prometheus/value.go b/vendor/github.com/prometheus/client_golang/prometheus/value.go
index eb248f1..3dcb4fd 100644
--- a/vendor/github.com/prometheus/client_golang/prometheus/value.go
+++ b/vendor/github.com/prometheus/client_golang/prometheus/value.go
@@ -16,8 +16,11 @@ package prometheus
16import ( 16import (
17 "fmt" 17 "fmt"
18 "sort" 18 "sort"
19 "time"
20 "unicode/utf8"
19 21
20 "github.com/golang/protobuf/proto" 22 "github.com/golang/protobuf/proto"
23 "github.com/golang/protobuf/ptypes"
21 24
22 dto "github.com/prometheus/client_model/go" 25 dto "github.com/prometheus/client_model/go"
23) 26)
@@ -69,7 +72,7 @@ func (v *valueFunc) Desc() *Desc {
69} 72}
70 73
71func (v *valueFunc) Write(out *dto.Metric) error { 74func (v *valueFunc) Write(out *dto.Metric) error {
72 return populateMetric(v.valType, v.function(), v.labelPairs, out) 75 return populateMetric(v.valType, v.function(), v.labelPairs, nil, out)
73} 76}
74 77
75// NewConstMetric returns a metric with one fixed value that cannot be 78// NewConstMetric returns a metric with one fixed value that cannot be
@@ -116,19 +119,20 @@ func (m *constMetric) Desc() *Desc {
116} 119}
117 120
118func (m *constMetric) Write(out *dto.Metric) error { 121func (m *constMetric) Write(out *dto.Metric) error {
119 return populateMetric(m.valType, m.val, m.labelPairs, out) 122 return populateMetric(m.valType, m.val, m.labelPairs, nil, out)
120} 123}
121 124
122func populateMetric( 125func populateMetric(
123 t ValueType, 126 t ValueType,
124 v float64, 127 v float64,
125 labelPairs []*dto.LabelPair, 128 labelPairs []*dto.LabelPair,
129 e *dto.Exemplar,
126 m *dto.Metric, 130 m *dto.Metric,
127) error { 131) error {
128 m.Label = labelPairs 132 m.Label = labelPairs
129 switch t { 133 switch t {
130 case CounterValue: 134 case CounterValue:
131 m.Counter = &dto.Counter{Value: proto.Float64(v)} 135 m.Counter = &dto.Counter{Value: proto.Float64(v), Exemplar: e}
132 case GaugeValue: 136 case GaugeValue:
133 m.Gauge = &dto.Gauge{Value: proto.Float64(v)} 137 m.Gauge = &dto.Gauge{Value: proto.Float64(v)}
134 case UntypedValue: 138 case UntypedValue:
@@ -160,3 +164,40 @@ func makeLabelPairs(desc *Desc, labelValues []string) []*dto.LabelPair {
160 sort.Sort(labelPairSorter(labelPairs)) 164 sort.Sort(labelPairSorter(labelPairs))
161 return labelPairs 165 return labelPairs
162} 166}
167
168// ExemplarMaxRunes is the max total number of runes allowed in exemplar labels.
169const ExemplarMaxRunes = 64
170
171// newExemplar creates a new dto.Exemplar from the provided values. An error is
172// returned if any of the label names or values are invalid or if the total
173// number of runes in the label names and values exceeds ExemplarMaxRunes.
174func newExemplar(value float64, ts time.Time, l Labels) (*dto.Exemplar, error) {
175 e := &dto.Exemplar{}
176 e.Value = proto.Float64(value)
177 tsProto, err := ptypes.TimestampProto(ts)
178 if err != nil {
179 return nil, err
180 }
181 e.Timestamp = tsProto
182 labelPairs := make([]*dto.LabelPair, 0, len(l))
183 var runes int
184 for name, value := range l {
185 if !checkLabelName(name) {
186 return nil, fmt.Errorf("exemplar label name %q is invalid", name)
187 }
188 runes += utf8.RuneCountInString(name)
189 if !utf8.ValidString(value) {
190 return nil, fmt.Errorf("exemplar label value %q is not valid UTF-8", value)
191 }
192 runes += utf8.RuneCountInString(value)
193 labelPairs = append(labelPairs, &dto.LabelPair{
194 Name: proto.String(name),
195 Value: proto.String(value),
196 })
197 }
198 if runes > ExemplarMaxRunes {
199 return nil, fmt.Errorf("exemplar labels have %d runes, exceeding the limit of %d", runes, ExemplarMaxRunes)
200 }
201 e.Label = labelPairs
202 return e, nil
203}
diff --git a/vendor/github.com/prometheus/client_golang/prometheus/vec.go b/vendor/github.com/prometheus/client_golang/prometheus/vec.go
index 14ed9e8..19df3fe 100644
--- a/vendor/github.com/prometheus/client_golang/prometheus/vec.go
+++ b/vendor/github.com/prometheus/client_golang/prometheus/vec.go
@@ -24,7 +24,7 @@ import (
24// their label values. metricVec is not used directly (and therefore 24// their label values. metricVec is not used directly (and therefore
25// unexported). It is used as a building block for implementations of vectors of 25// unexported). It is used as a building block for implementations of vectors of
26// a given metric type, like GaugeVec, CounterVec, SummaryVec, and HistogramVec. 26// a given metric type, like GaugeVec, CounterVec, SummaryVec, and HistogramVec.
27// It also handles label currying. It uses basicMetricVec internally. 27// It also handles label currying.
28type metricVec struct { 28type metricVec struct {
29 *metricMap 29 *metricMap
30 30
diff --git a/vendor/github.com/prometheus/client_model/go/metrics.pb.go b/vendor/github.com/prometheus/client_model/go/metrics.pb.go
index 9805432..2f4930d 100644
--- a/vendor/github.com/prometheus/client_model/go/metrics.pb.go
+++ b/vendor/github.com/prometheus/client_model/go/metrics.pb.go
@@ -1,11 +1,14 @@
1// Code generated by protoc-gen-go. DO NOT EDIT. 1// Code generated by protoc-gen-go. DO NOT EDIT.
2// source: metrics.proto 2// source: metrics.proto
3 3
4package io_prometheus_client // import "github.com/prometheus/client_model/go" 4package io_prometheus_client
5 5
6import proto "github.com/golang/protobuf/proto" 6import (
7import fmt "fmt" 7 fmt "fmt"
8import math "math" 8 proto "github.com/golang/protobuf/proto"
9 timestamp "github.com/golang/protobuf/ptypes/timestamp"
10 math "math"
11)
9 12
10// Reference imports to suppress errors if they are not otherwise used. 13// Reference imports to suppress errors if they are not otherwise used.
11var _ = proto.Marshal 14var _ = proto.Marshal
@@ -16,7 +19,7 @@ var _ = math.Inf
16// is compatible with the proto package it is being compiled against. 19// is compatible with the proto package it is being compiled against.
17// A compilation error at this line likely means your copy of the 20// A compilation error at this line likely means your copy of the
18// proto package needs to be updated. 21// proto package needs to be updated.
19const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package 22const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package
20 23
21type MetricType int32 24type MetricType int32
22 25
@@ -35,6 +38,7 @@ var MetricType_name = map[int32]string{
35 3: "UNTYPED", 38 3: "UNTYPED",
36 4: "HISTOGRAM", 39 4: "HISTOGRAM",
37} 40}
41
38var MetricType_value = map[string]int32{ 42var MetricType_value = map[string]int32{
39 "COUNTER": 0, 43 "COUNTER": 0,
40 "GAUGE": 1, 44 "GAUGE": 1,
@@ -48,9 +52,11 @@ func (x MetricType) Enum() *MetricType {
48 *p = x 52 *p = x
49 return p 53 return p
50} 54}
55
51func (x MetricType) String() string { 56func (x MetricType) String() string {
52 return proto.EnumName(MetricType_name, int32(x)) 57 return proto.EnumName(MetricType_name, int32(x))
53} 58}
59
54func (x *MetricType) UnmarshalJSON(data []byte) error { 60func (x *MetricType) UnmarshalJSON(data []byte) error {
55 value, err := proto.UnmarshalJSONEnum(MetricType_value, data, "MetricType") 61 value, err := proto.UnmarshalJSONEnum(MetricType_value, data, "MetricType")
56 if err != nil { 62 if err != nil {
@@ -59,8 +65,9 @@ func (x *MetricType) UnmarshalJSON(data []byte) error {
59 *x = MetricType(value) 65 *x = MetricType(value)
60 return nil 66 return nil
61} 67}
68
62func (MetricType) EnumDescriptor() ([]byte, []int) { 69func (MetricType) EnumDescriptor() ([]byte, []int) {
63 return fileDescriptor_metrics_c97c9a2b9560cb8f, []int{0} 70 return fileDescriptor_6039342a2ba47b72, []int{0}
64} 71}
65 72
66type LabelPair struct { 73type LabelPair struct {
@@ -75,16 +82,17 @@ func (m *LabelPair) Reset() { *m = LabelPair{} }
75func (m *LabelPair) String() string { return proto.CompactTextString(m) } 82func (m *LabelPair) String() string { return proto.CompactTextString(m) }
76func (*LabelPair) ProtoMessage() {} 83func (*LabelPair) ProtoMessage() {}
77func (*LabelPair) Descriptor() ([]byte, []int) { 84func (*LabelPair) Descriptor() ([]byte, []int) {
78 return fileDescriptor_metrics_c97c9a2b9560cb8f, []int{0} 85 return fileDescriptor_6039342a2ba47b72, []int{0}
79} 86}
87
80func (m *LabelPair) XXX_Unmarshal(b []byte) error { 88func (m *LabelPair) XXX_Unmarshal(b []byte) error {
81 return xxx_messageInfo_LabelPair.Unmarshal(m, b) 89 return xxx_messageInfo_LabelPair.Unmarshal(m, b)
82} 90}
83func (m *LabelPair) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { 91func (m *LabelPair) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
84 return xxx_messageInfo_LabelPair.Marshal(b, m, deterministic) 92 return xxx_messageInfo_LabelPair.Marshal(b, m, deterministic)
85} 93}
86func (dst *LabelPair) XXX_Merge(src proto.Message) { 94func (m *LabelPair) XXX_Merge(src proto.Message) {
87 xxx_messageInfo_LabelPair.Merge(dst, src) 95 xxx_messageInfo_LabelPair.Merge(m, src)
88} 96}
89func (m *LabelPair) XXX_Size() int { 97func (m *LabelPair) XXX_Size() int {
90 return xxx_messageInfo_LabelPair.Size(m) 98 return xxx_messageInfo_LabelPair.Size(m)
@@ -120,16 +128,17 @@ func (m *Gauge) Reset() { *m = Gauge{} }
120func (m *Gauge) String() string { return proto.CompactTextString(m) } 128func (m *Gauge) String() string { return proto.CompactTextString(m) }
121func (*Gauge) ProtoMessage() {} 129func (*Gauge) ProtoMessage() {}
122func (*Gauge) Descriptor() ([]byte, []int) { 130func (*Gauge) Descriptor() ([]byte, []int) {
123 return fileDescriptor_metrics_c97c9a2b9560cb8f, []int{1} 131 return fileDescriptor_6039342a2ba47b72, []int{1}
124} 132}
133
125func (m *Gauge) XXX_Unmarshal(b []byte) error { 134func (m *Gauge) XXX_Unmarshal(b []byte) error {
126 return xxx_messageInfo_Gauge.Unmarshal(m, b) 135 return xxx_messageInfo_Gauge.Unmarshal(m, b)
127} 136}
128func (m *Gauge) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { 137func (m *Gauge) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
129 return xxx_messageInfo_Gauge.Marshal(b, m, deterministic) 138 return xxx_messageInfo_Gauge.Marshal(b, m, deterministic)
130} 139}
131func (dst *Gauge) XXX_Merge(src proto.Message) { 140func (m *Gauge) XXX_Merge(src proto.Message) {
132 xxx_messageInfo_Gauge.Merge(dst, src) 141 xxx_messageInfo_Gauge.Merge(m, src)
133} 142}
134func (m *Gauge) XXX_Size() int { 143func (m *Gauge) XXX_Size() int {
135 return xxx_messageInfo_Gauge.Size(m) 144 return xxx_messageInfo_Gauge.Size(m)
@@ -148,26 +157,28 @@ func (m *Gauge) GetValue() float64 {
148} 157}
149 158
150type Counter struct { 159type Counter struct {
151 Value *float64 `protobuf:"fixed64,1,opt,name=value" json:"value,omitempty"` 160 Value *float64 `protobuf:"fixed64,1,opt,name=value" json:"value,omitempty"`
152 XXX_NoUnkeyedLiteral struct{} `json:"-"` 161 Exemplar *Exemplar `protobuf:"bytes,2,opt,name=exemplar" json:"exemplar,omitempty"`
153 XXX_unrecognized []byte `json:"-"` 162 XXX_NoUnkeyedLiteral struct{} `json:"-"`
154 XXX_sizecache int32 `json:"-"` 163 XXX_unrecognized []byte `json:"-"`
164 XXX_sizecache int32 `json:"-"`
155} 165}
156 166
157func (m *Counter) Reset() { *m = Counter{} } 167func (m *Counter) Reset() { *m = Counter{} }
158func (m *Counter) String() string { return proto.CompactTextString(m) } 168func (m *Counter) String() string { return proto.CompactTextString(m) }
159func (*Counter) ProtoMessage() {} 169func (*Counter) ProtoMessage() {}
160func (*Counter) Descriptor() ([]byte, []int) { 170func (*Counter) Descriptor() ([]byte, []int) {
161 return fileDescriptor_metrics_c97c9a2b9560cb8f, []int{2} 171 return fileDescriptor_6039342a2ba47b72, []int{2}
162} 172}
173
163func (m *Counter) XXX_Unmarshal(b []byte) error { 174func (m *Counter) XXX_Unmarshal(b []byte) error {
164 return xxx_messageInfo_Counter.Unmarshal(m, b) 175 return xxx_messageInfo_Counter.Unmarshal(m, b)
165} 176}
166func (m *Counter) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { 177func (m *Counter) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
167 return xxx_messageInfo_Counter.Marshal(b, m, deterministic) 178 return xxx_messageInfo_Counter.Marshal(b, m, deterministic)
168} 179}
169func (dst *Counter) XXX_Merge(src proto.Message) { 180func (m *Counter) XXX_Merge(src proto.Message) {
170 xxx_messageInfo_Counter.Merge(dst, src) 181 xxx_messageInfo_Counter.Merge(m, src)
171} 182}
172func (m *Counter) XXX_Size() int { 183func (m *Counter) XXX_Size() int {
173 return xxx_messageInfo_Counter.Size(m) 184 return xxx_messageInfo_Counter.Size(m)
@@ -185,6 +196,13 @@ func (m *Counter) GetValue() float64 {
185 return 0 196 return 0
186} 197}
187 198
199func (m *Counter) GetExemplar() *Exemplar {
200 if m != nil {
201 return m.Exemplar
202 }
203 return nil
204}
205
188type Quantile struct { 206type Quantile struct {
189 Quantile *float64 `protobuf:"fixed64,1,opt,name=quantile" json:"quantile,omitempty"` 207 Quantile *float64 `protobuf:"fixed64,1,opt,name=quantile" json:"quantile,omitempty"`
190 Value *float64 `protobuf:"fixed64,2,opt,name=value" json:"value,omitempty"` 208 Value *float64 `protobuf:"fixed64,2,opt,name=value" json:"value,omitempty"`
@@ -197,16 +215,17 @@ func (m *Quantile) Reset() { *m = Quantile{} }
197func (m *Quantile) String() string { return proto.CompactTextString(m) } 215func (m *Quantile) String() string { return proto.CompactTextString(m) }
198func (*Quantile) ProtoMessage() {} 216func (*Quantile) ProtoMessage() {}
199func (*Quantile) Descriptor() ([]byte, []int) { 217func (*Quantile) Descriptor() ([]byte, []int) {
200 return fileDescriptor_metrics_c97c9a2b9560cb8f, []int{3} 218 return fileDescriptor_6039342a2ba47b72, []int{3}
201} 219}
220
202func (m *Quantile) XXX_Unmarshal(b []byte) error { 221func (m *Quantile) XXX_Unmarshal(b []byte) error {
203 return xxx_messageInfo_Quantile.Unmarshal(m, b) 222 return xxx_messageInfo_Quantile.Unmarshal(m, b)
204} 223}
205func (m *Quantile) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { 224func (m *Quantile) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
206 return xxx_messageInfo_Quantile.Marshal(b, m, deterministic) 225 return xxx_messageInfo_Quantile.Marshal(b, m, deterministic)
207} 226}
208func (dst *Quantile) XXX_Merge(src proto.Message) { 227func (m *Quantile) XXX_Merge(src proto.Message) {
209 xxx_messageInfo_Quantile.Merge(dst, src) 228 xxx_messageInfo_Quantile.Merge(m, src)
210} 229}
211func (m *Quantile) XXX_Size() int { 230func (m *Quantile) XXX_Size() int {
212 return xxx_messageInfo_Quantile.Size(m) 231 return xxx_messageInfo_Quantile.Size(m)
@@ -244,16 +263,17 @@ func (m *Summary) Reset() { *m = Summary{} }
244func (m *Summary) String() string { return proto.CompactTextString(m) } 263func (m *Summary) String() string { return proto.CompactTextString(m) }
245func (*Summary) ProtoMessage() {} 264func (*Summary) ProtoMessage() {}
246func (*Summary) Descriptor() ([]byte, []int) { 265func (*Summary) Descriptor() ([]byte, []int) {
247 return fileDescriptor_metrics_c97c9a2b9560cb8f, []int{4} 266 return fileDescriptor_6039342a2ba47b72, []int{4}
248} 267}
268
249func (m *Summary) XXX_Unmarshal(b []byte) error { 269func (m *Summary) XXX_Unmarshal(b []byte) error {
250 return xxx_messageInfo_Summary.Unmarshal(m, b) 270 return xxx_messageInfo_Summary.Unmarshal(m, b)
251} 271}
252func (m *Summary) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { 272func (m *Summary) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
253 return xxx_messageInfo_Summary.Marshal(b, m, deterministic) 273 return xxx_messageInfo_Summary.Marshal(b, m, deterministic)
254} 274}
255func (dst *Summary) XXX_Merge(src proto.Message) { 275func (m *Summary) XXX_Merge(src proto.Message) {
256 xxx_messageInfo_Summary.Merge(dst, src) 276 xxx_messageInfo_Summary.Merge(m, src)
257} 277}
258func (m *Summary) XXX_Size() int { 278func (m *Summary) XXX_Size() int {
259 return xxx_messageInfo_Summary.Size(m) 279 return xxx_messageInfo_Summary.Size(m)
@@ -296,16 +316,17 @@ func (m *Untyped) Reset() { *m = Untyped{} }
296func (m *Untyped) String() string { return proto.CompactTextString(m) } 316func (m *Untyped) String() string { return proto.CompactTextString(m) }
297func (*Untyped) ProtoMessage() {} 317func (*Untyped) ProtoMessage() {}
298func (*Untyped) Descriptor() ([]byte, []int) { 318func (*Untyped) Descriptor() ([]byte, []int) {
299 return fileDescriptor_metrics_c97c9a2b9560cb8f, []int{5} 319 return fileDescriptor_6039342a2ba47b72, []int{5}
300} 320}
321
301func (m *Untyped) XXX_Unmarshal(b []byte) error { 322func (m *Untyped) XXX_Unmarshal(b []byte) error {
302 return xxx_messageInfo_Untyped.Unmarshal(m, b) 323 return xxx_messageInfo_Untyped.Unmarshal(m, b)
303} 324}
304func (m *Untyped) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { 325func (m *Untyped) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
305 return xxx_messageInfo_Untyped.Marshal(b, m, deterministic) 326 return xxx_messageInfo_Untyped.Marshal(b, m, deterministic)
306} 327}
307func (dst *Untyped) XXX_Merge(src proto.Message) { 328func (m *Untyped) XXX_Merge(src proto.Message) {
308 xxx_messageInfo_Untyped.Merge(dst, src) 329 xxx_messageInfo_Untyped.Merge(m, src)
309} 330}
310func (m *Untyped) XXX_Size() int { 331func (m *Untyped) XXX_Size() int {
311 return xxx_messageInfo_Untyped.Size(m) 332 return xxx_messageInfo_Untyped.Size(m)
@@ -336,16 +357,17 @@ func (m *Histogram) Reset() { *m = Histogram{} }
336func (m *Histogram) String() string { return proto.CompactTextString(m) } 357func (m *Histogram) String() string { return proto.CompactTextString(m) }
337func (*Histogram) ProtoMessage() {} 358func (*Histogram) ProtoMessage() {}
338func (*Histogram) Descriptor() ([]byte, []int) { 359func (*Histogram) Descriptor() ([]byte, []int) {
339 return fileDescriptor_metrics_c97c9a2b9560cb8f, []int{6} 360 return fileDescriptor_6039342a2ba47b72, []int{6}
340} 361}
362
341func (m *Histogram) XXX_Unmarshal(b []byte) error { 363func (m *Histogram) XXX_Unmarshal(b []byte) error {
342 return xxx_messageInfo_Histogram.Unmarshal(m, b) 364 return xxx_messageInfo_Histogram.Unmarshal(m, b)
343} 365}
344func (m *Histogram) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { 366func (m *Histogram) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
345 return xxx_messageInfo_Histogram.Marshal(b, m, deterministic) 367 return xxx_messageInfo_Histogram.Marshal(b, m, deterministic)
346} 368}
347func (dst *Histogram) XXX_Merge(src proto.Message) { 369func (m *Histogram) XXX_Merge(src proto.Message) {
348 xxx_messageInfo_Histogram.Merge(dst, src) 370 xxx_messageInfo_Histogram.Merge(m, src)
349} 371}
350func (m *Histogram) XXX_Size() int { 372func (m *Histogram) XXX_Size() int {
351 return xxx_messageInfo_Histogram.Size(m) 373 return xxx_messageInfo_Histogram.Size(m)
@@ -378,27 +400,29 @@ func (m *Histogram) GetBucket() []*Bucket {
378} 400}
379 401
380type Bucket struct { 402type Bucket struct {
381 CumulativeCount *uint64 `protobuf:"varint,1,opt,name=cumulative_count,json=cumulativeCount" json:"cumulative_count,omitempty"` 403 CumulativeCount *uint64 `protobuf:"varint,1,opt,name=cumulative_count,json=cumulativeCount" json:"cumulative_count,omitempty"`
382 UpperBound *float64 `protobuf:"fixed64,2,opt,name=upper_bound,json=upperBound" json:"upper_bound,omitempty"` 404 UpperBound *float64 `protobuf:"fixed64,2,opt,name=upper_bound,json=upperBound" json:"upper_bound,omitempty"`
383 XXX_NoUnkeyedLiteral struct{} `json:"-"` 405 Exemplar *Exemplar `protobuf:"bytes,3,opt,name=exemplar" json:"exemplar,omitempty"`
384 XXX_unrecognized []byte `json:"-"` 406 XXX_NoUnkeyedLiteral struct{} `json:"-"`
385 XXX_sizecache int32 `json:"-"` 407 XXX_unrecognized []byte `json:"-"`
408 XXX_sizecache int32 `json:"-"`
386} 409}
387 410
388func (m *Bucket) Reset() { *m = Bucket{} } 411func (m *Bucket) Reset() { *m = Bucket{} }
389func (m *Bucket) String() string { return proto.CompactTextString(m) } 412func (m *Bucket) String() string { return proto.CompactTextString(m) }
390func (*Bucket) ProtoMessage() {} 413func (*Bucket) ProtoMessage() {}
391func (*Bucket) Descriptor() ([]byte, []int) { 414func (*Bucket) Descriptor() ([]byte, []int) {
392 return fileDescriptor_metrics_c97c9a2b9560cb8f, []int{7} 415 return fileDescriptor_6039342a2ba47b72, []int{7}
393} 416}
417
394func (m *Bucket) XXX_Unmarshal(b []byte) error { 418func (m *Bucket) XXX_Unmarshal(b []byte) error {
395 return xxx_messageInfo_Bucket.Unmarshal(m, b) 419 return xxx_messageInfo_Bucket.Unmarshal(m, b)
396} 420}
397func (m *Bucket) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { 421func (m *Bucket) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
398 return xxx_messageInfo_Bucket.Marshal(b, m, deterministic) 422 return xxx_messageInfo_Bucket.Marshal(b, m, deterministic)
399} 423}
400func (dst *Bucket) XXX_Merge(src proto.Message) { 424func (m *Bucket) XXX_Merge(src proto.Message) {
401 xxx_messageInfo_Bucket.Merge(dst, src) 425 xxx_messageInfo_Bucket.Merge(m, src)
402} 426}
403func (m *Bucket) XXX_Size() int { 427func (m *Bucket) XXX_Size() int {
404 return xxx_messageInfo_Bucket.Size(m) 428 return xxx_messageInfo_Bucket.Size(m)
@@ -423,6 +447,68 @@ func (m *Bucket) GetUpperBound() float64 {
423 return 0 447 return 0
424} 448}
425 449
450func (m *Bucket) GetExemplar() *Exemplar {
451 if m != nil {
452 return m.Exemplar
453 }
454 return nil
455}
456
457type Exemplar struct {
458 Label []*LabelPair `protobuf:"bytes,1,rep,name=label" json:"label,omitempty"`
459 Value *float64 `protobuf:"fixed64,2,opt,name=value" json:"value,omitempty"`
460 Timestamp *timestamp.Timestamp `protobuf:"bytes,3,opt,name=timestamp" json:"timestamp,omitempty"`
461 XXX_NoUnkeyedLiteral struct{} `json:"-"`
462 XXX_unrecognized []byte `json:"-"`
463 XXX_sizecache int32 `json:"-"`
464}
465
466func (m *Exemplar) Reset() { *m = Exemplar{} }
467func (m *Exemplar) String() string { return proto.CompactTextString(m) }
468func (*Exemplar) ProtoMessage() {}
469func (*Exemplar) Descriptor() ([]byte, []int) {
470 return fileDescriptor_6039342a2ba47b72, []int{8}
471}
472
473func (m *Exemplar) XXX_Unmarshal(b []byte) error {
474 return xxx_messageInfo_Exemplar.Unmarshal(m, b)
475}
476func (m *Exemplar) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
477 return xxx_messageInfo_Exemplar.Marshal(b, m, deterministic)
478}
479func (m *Exemplar) XXX_Merge(src proto.Message) {
480 xxx_messageInfo_Exemplar.Merge(m, src)
481}
482func (m *Exemplar) XXX_Size() int {
483 return xxx_messageInfo_Exemplar.Size(m)
484}
485func (m *Exemplar) XXX_DiscardUnknown() {
486 xxx_messageInfo_Exemplar.DiscardUnknown(m)
487}
488
489var xxx_messageInfo_Exemplar proto.InternalMessageInfo
490
491func (m *Exemplar) GetLabel() []*LabelPair {
492 if m != nil {
493 return m.Label
494 }
495 return nil
496}
497
498func (m *Exemplar) GetValue() float64 {
499 if m != nil && m.Value != nil {
500 return *m.Value
501 }
502 return 0
503}
504
505func (m *Exemplar) GetTimestamp() *timestamp.Timestamp {
506 if m != nil {
507 return m.Timestamp
508 }
509 return nil
510}
511
426type Metric struct { 512type Metric struct {
427 Label []*LabelPair `protobuf:"bytes,1,rep,name=label" json:"label,omitempty"` 513 Label []*LabelPair `protobuf:"bytes,1,rep,name=label" json:"label,omitempty"`
428 Gauge *Gauge `protobuf:"bytes,2,opt,name=gauge" json:"gauge,omitempty"` 514 Gauge *Gauge `protobuf:"bytes,2,opt,name=gauge" json:"gauge,omitempty"`
@@ -440,16 +526,17 @@ func (m *Metric) Reset() { *m = Metric{} }
440func (m *Metric) String() string { return proto.CompactTextString(m) } 526func (m *Metric) String() string { return proto.CompactTextString(m) }
441func (*Metric) ProtoMessage() {} 527func (*Metric) ProtoMessage() {}
442func (*Metric) Descriptor() ([]byte, []int) { 528func (*Metric) Descriptor() ([]byte, []int) {
443 return fileDescriptor_metrics_c97c9a2b9560cb8f, []int{8} 529 return fileDescriptor_6039342a2ba47b72, []int{9}
444} 530}
531
445func (m *Metric) XXX_Unmarshal(b []byte) error { 532func (m *Metric) XXX_Unmarshal(b []byte) error {
446 return xxx_messageInfo_Metric.Unmarshal(m, b) 533 return xxx_messageInfo_Metric.Unmarshal(m, b)
447} 534}
448func (m *Metric) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { 535func (m *Metric) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
449 return xxx_messageInfo_Metric.Marshal(b, m, deterministic) 536 return xxx_messageInfo_Metric.Marshal(b, m, deterministic)
450} 537}
451func (dst *Metric) XXX_Merge(src proto.Message) { 538func (m *Metric) XXX_Merge(src proto.Message) {
452 xxx_messageInfo_Metric.Merge(dst, src) 539 xxx_messageInfo_Metric.Merge(m, src)
453} 540}
454func (m *Metric) XXX_Size() int { 541func (m *Metric) XXX_Size() int {
455 return xxx_messageInfo_Metric.Size(m) 542 return xxx_messageInfo_Metric.Size(m)
@@ -523,16 +610,17 @@ func (m *MetricFamily) Reset() { *m = MetricFamily{} }
523func (m *MetricFamily) String() string { return proto.CompactTextString(m) } 610func (m *MetricFamily) String() string { return proto.CompactTextString(m) }
524func (*MetricFamily) ProtoMessage() {} 611func (*MetricFamily) ProtoMessage() {}
525func (*MetricFamily) Descriptor() ([]byte, []int) { 612func (*MetricFamily) Descriptor() ([]byte, []int) {
526 return fileDescriptor_metrics_c97c9a2b9560cb8f, []int{9} 613 return fileDescriptor_6039342a2ba47b72, []int{10}
527} 614}
615
528func (m *MetricFamily) XXX_Unmarshal(b []byte) error { 616func (m *MetricFamily) XXX_Unmarshal(b []byte) error {
529 return xxx_messageInfo_MetricFamily.Unmarshal(m, b) 617 return xxx_messageInfo_MetricFamily.Unmarshal(m, b)
530} 618}
531func (m *MetricFamily) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { 619func (m *MetricFamily) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
532 return xxx_messageInfo_MetricFamily.Marshal(b, m, deterministic) 620 return xxx_messageInfo_MetricFamily.Marshal(b, m, deterministic)
533} 621}
534func (dst *MetricFamily) XXX_Merge(src proto.Message) { 622func (m *MetricFamily) XXX_Merge(src proto.Message) {
535 xxx_messageInfo_MetricFamily.Merge(dst, src) 623 xxx_messageInfo_MetricFamily.Merge(m, src)
536} 624}
537func (m *MetricFamily) XXX_Size() int { 625func (m *MetricFamily) XXX_Size() int {
538 return xxx_messageInfo_MetricFamily.Size(m) 626 return xxx_messageInfo_MetricFamily.Size(m)
@@ -572,6 +660,7 @@ func (m *MetricFamily) GetMetric() []*Metric {
572} 660}
573 661
574func init() { 662func init() {
663 proto.RegisterEnum("io.prometheus.client.MetricType", MetricType_name, MetricType_value)
575 proto.RegisterType((*LabelPair)(nil), "io.prometheus.client.LabelPair") 664 proto.RegisterType((*LabelPair)(nil), "io.prometheus.client.LabelPair")
576 proto.RegisterType((*Gauge)(nil), "io.prometheus.client.Gauge") 665 proto.RegisterType((*Gauge)(nil), "io.prometheus.client.Gauge")
577 proto.RegisterType((*Counter)(nil), "io.prometheus.client.Counter") 666 proto.RegisterType((*Counter)(nil), "io.prometheus.client.Counter")
@@ -580,50 +669,55 @@ func init() {
580 proto.RegisterType((*Untyped)(nil), "io.prometheus.client.Untyped") 669 proto.RegisterType((*Untyped)(nil), "io.prometheus.client.Untyped")
581 proto.RegisterType((*Histogram)(nil), "io.prometheus.client.Histogram") 670 proto.RegisterType((*Histogram)(nil), "io.prometheus.client.Histogram")
582 proto.RegisterType((*Bucket)(nil), "io.prometheus.client.Bucket") 671 proto.RegisterType((*Bucket)(nil), "io.prometheus.client.Bucket")
672 proto.RegisterType((*Exemplar)(nil), "io.prometheus.client.Exemplar")
583 proto.RegisterType((*Metric)(nil), "io.prometheus.client.Metric") 673 proto.RegisterType((*Metric)(nil), "io.prometheus.client.Metric")
584 proto.RegisterType((*MetricFamily)(nil), "io.prometheus.client.MetricFamily") 674 proto.RegisterType((*MetricFamily)(nil), "io.prometheus.client.MetricFamily")
585 proto.RegisterEnum("io.prometheus.client.MetricType", MetricType_name, MetricType_value)
586} 675}
587 676
588func init() { proto.RegisterFile("metrics.proto", fileDescriptor_metrics_c97c9a2b9560cb8f) } 677func init() { proto.RegisterFile("metrics.proto", fileDescriptor_6039342a2ba47b72) }
589 678
590var fileDescriptor_metrics_c97c9a2b9560cb8f = []byte{ 679var fileDescriptor_6039342a2ba47b72 = []byte{
591 // 591 bytes of a gzipped FileDescriptorProto 680 // 665 bytes of a gzipped FileDescriptorProto
592 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x54, 0x4f, 0x4f, 0xdb, 0x4e, 681 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x54, 0xcd, 0x6e, 0xd3, 0x4c,
593 0x14, 0xfc, 0x99, 0xd8, 0x09, 0x7e, 0x86, 0x5f, 0xad, 0x15, 0x07, 0xab, 0x2d, 0x25, 0xcd, 0x89, 682 0x14, 0xfd, 0xdc, 0x38, 0x3f, 0xbe, 0x69, 0x3f, 0xa2, 0x51, 0x17, 0x56, 0xa1, 0x24, 0x78, 0x55,
594 0xf6, 0x10, 0x54, 0x04, 0xaa, 0x44, 0xdb, 0x03, 0x50, 0x1a, 0x2a, 0xd5, 0x40, 0x37, 0xc9, 0x81, 683 0x58, 0x38, 0xa2, 0x6a, 0x05, 0x2a, 0xb0, 0x68, 0x4b, 0x48, 0x91, 0x48, 0x5b, 0x26, 0xc9, 0xa2,
595 0x5e, 0xac, 0x8d, 0x59, 0x25, 0x56, 0xbd, 0xb6, 0x6b, 0xef, 0x22, 0xe5, 0xdc, 0x43, 0xbf, 0x47, 684 0xb0, 0x88, 0x1c, 0x77, 0x70, 0x2c, 0x3c, 0xb1, 0xb1, 0x67, 0x2a, 0xb2, 0x66, 0xc1, 0x16, 0x5e,
596 0xbf, 0x68, 0xab, 0xfd, 0xe3, 0x18, 0x24, 0xc3, 0xa9, 0xb7, 0xb7, 0xf3, 0x66, 0xde, 0x8e, 0x77, 685 0x81, 0x17, 0x05, 0xcd, 0x8f, 0x6d, 0x2a, 0xb9, 0x95, 0x40, 0xec, 0x66, 0xee, 0x3d, 0xe7, 0xfa,
597 0xc7, 0x0b, 0x9b, 0x8c, 0xf2, 0x32, 0x89, 0xab, 0x61, 0x51, 0xe6, 0x3c, 0x47, 0x5b, 0x49, 0x2e, 686 0xcc, 0xf8, 0x9c, 0x81, 0x0d, 0x4a, 0x58, 0x1a, 0xfa, 0x99, 0x9b, 0xa4, 0x31, 0x8b, 0xd1, 0x66,
598 0x2b, 0x46, 0xf9, 0x82, 0x8a, 0x6a, 0x18, 0xa7, 0x09, 0xcd, 0xf8, 0xe0, 0x10, 0xdc, 0x2f, 0x64, 687 0x18, 0x8b, 0x15, 0x25, 0x6c, 0x41, 0x78, 0xe6, 0xfa, 0x51, 0x48, 0x96, 0x6c, 0xab, 0x1b, 0xc4,
599 0x46, 0xd3, 0x2b, 0x92, 0x94, 0x08, 0x81, 0x9d, 0x11, 0x46, 0x03, 0xab, 0x6f, 0xed, 0xba, 0x58, 688 0x71, 0x10, 0x91, 0xbe, 0xc4, 0xcc, 0xf9, 0x87, 0x3e, 0x0b, 0x29, 0xc9, 0x98, 0x47, 0x13, 0x45,
600 0xd5, 0x68, 0x0b, 0x9c, 0x5b, 0x92, 0x0a, 0x1a, 0xac, 0x29, 0x50, 0x2f, 0x06, 0xdb, 0xe0, 0x8c, 689 0x73, 0xf6, 0xc1, 0x7a, 0xe3, 0xcd, 0x49, 0x74, 0xee, 0x85, 0x29, 0x42, 0x60, 0x2e, 0x3d, 0x4a,
601 0x88, 0x98, 0xdf, 0x69, 0x4b, 0x8d, 0x55, 0xb7, 0x77, 0xa0, 0x77, 0x9a, 0x8b, 0x8c, 0xd3, 0xf2, 690 0x6c, 0xa3, 0x67, 0xec, 0x58, 0x58, 0xae, 0xd1, 0x26, 0xd4, 0xaf, 0xbc, 0x88, 0x13, 0x7b, 0x4d,
602 0x01, 0xc2, 0x7b, 0x58, 0xff, 0x2a, 0x48, 0xc6, 0x93, 0x94, 0xa2, 0xa7, 0xb0, 0xfe, 0xc3, 0xd4, 691 0x16, 0xd5, 0xc6, 0xd9, 0x86, 0xfa, 0xd0, 0xe3, 0xc1, 0x6f, 0x6d, 0xc1, 0x31, 0xf2, 0xf6, 0x7b,
603 0x86, 0xb4, 0x5a, 0xdf, 0xdf, 0x7d, 0xa5, 0xfe, 0x65, 0x41, 0x6f, 0x2c, 0x18, 0x23, 0xe5, 0x12, 692 0x68, 0x1e, 0xc7, 0x7c, 0xc9, 0x48, 0x5a, 0x0d, 0x40, 0x07, 0xd0, 0x22, 0x9f, 0x09, 0x4d, 0x22,
604 0xbd, 0x84, 0x8d, 0x8a, 0xb0, 0x22, 0xa5, 0x51, 0x2c, 0x77, 0x54, 0x13, 0x6c, 0xec, 0x69, 0x4c, 693 0x2f, 0x95, 0x83, 0xdb, 0xbb, 0xf7, 0xdd, 0xaa, 0x03, 0xb8, 0x03, 0x8d, 0xc2, 0x05, 0xde, 0x79,
605 0x99, 0x40, 0xdb, 0x00, 0x86, 0x52, 0x09, 0x66, 0x26, 0xb9, 0x1a, 0x19, 0x0b, 0x86, 0x8e, 0xee, 694 0x0e, 0xad, 0xb7, 0xdc, 0x5b, 0xb2, 0x30, 0x22, 0x68, 0x0b, 0x5a, 0x9f, 0xf4, 0x5a, 0x7f, 0xa0,
606 0xec, 0xdf, 0xe9, 0x77, 0x76, 0xbd, 0xfd, 0x17, 0xc3, 0xb6, 0xb3, 0x1a, 0xd6, 0x8e, 0x1b, 0x7f, 695 0xd8, 0x5f, 0x57, 0x5e, 0x48, 0xfb, 0x6a, 0x40, 0x73, 0xcc, 0x29, 0xf5, 0xd2, 0x15, 0x7a, 0x00,
607 0xf2, 0x43, 0xa7, 0x19, 0x5f, 0x16, 0xf4, 0xe6, 0x81, 0x0f, 0xfd, 0x69, 0x81, 0x7b, 0x9e, 0x54, 696 0xeb, 0x99, 0x47, 0x93, 0x88, 0xcc, 0x7c, 0xa1, 0x56, 0x4e, 0x30, 0x71, 0x5b, 0xd5, 0xe4, 0x01,
608 0x3c, 0x9f, 0x97, 0x84, 0xfd, 0x03, 0xb3, 0x07, 0xd0, 0x9d, 0x89, 0xf8, 0x3b, 0xe5, 0xc6, 0xea, 697 0xd0, 0x36, 0x80, 0x86, 0x64, 0x9c, 0xea, 0x49, 0x96, 0xaa, 0x8c, 0x39, 0x15, 0xe7, 0x28, 0xbe,
609 0xf3, 0x76, 0xab, 0x27, 0x8a, 0x83, 0x0d, 0x77, 0x30, 0x81, 0xae, 0x46, 0xd0, 0x2b, 0xf0, 0x63, 698 0x5f, 0xeb, 0xd5, 0x6e, 0x3e, 0x47, 0xae, 0xb8, 0xd4, 0xe7, 0x74, 0xa1, 0x39, 0x5d, 0xb2, 0x55,
610 0xc1, 0x44, 0x4a, 0x78, 0x72, 0x7b, 0xdf, 0xc5, 0x93, 0x06, 0xd7, 0x4e, 0x76, 0xc0, 0x13, 0x45, 699 0x42, 0x2e, 0x6f, 0xb8, 0xc5, 0x2f, 0x06, 0x58, 0x27, 0x61, 0xc6, 0xe2, 0x20, 0xf5, 0xe8, 0x3f,
611 0x41, 0xcb, 0x68, 0x96, 0x8b, 0xec, 0xc6, 0x58, 0x01, 0x05, 0x9d, 0x48, 0x64, 0xf0, 0x67, 0x0d, 700 0x10, 0xbb, 0x07, 0x8d, 0x39, 0xf7, 0x3f, 0x12, 0xa6, 0xa5, 0xde, 0xab, 0x96, 0x7a, 0x24, 0x31,
612 0xba, 0xa1, 0xca, 0x18, 0x3a, 0x04, 0x27, 0x95, 0x31, 0x0a, 0x2c, 0xe5, 0x6a, 0xa7, 0xdd, 0xd5, 701 0x58, 0x63, 0x9d, 0x6f, 0x06, 0x34, 0x54, 0x09, 0x3d, 0x84, 0x8e, 0xcf, 0x29, 0x8f, 0x3c, 0x16,
613 0x2a, 0x69, 0x58, 0xb3, 0xd1, 0x1b, 0x70, 0xe6, 0x32, 0x46, 0x6a, 0xb8, 0xb7, 0xff, 0xac, 0x5d, 702 0x5e, 0x5d, 0x97, 0x71, 0xa7, 0xac, 0x2b, 0x29, 0x5d, 0x68, 0xf3, 0x24, 0x21, 0xe9, 0x6c, 0x1e,
614 0xa6, 0x92, 0x86, 0x35, 0x13, 0xbd, 0x85, 0x5e, 0xac, 0xa3, 0x15, 0x74, 0x94, 0x68, 0xbb, 0x5d, 703 0xf3, 0xe5, 0xa5, 0xd6, 0x02, 0xb2, 0x74, 0x24, 0x2a, 0xd7, 0x1c, 0x50, 0xfb, 0x43, 0x07, 0x7c,
615 0x64, 0xf2, 0x87, 0x6b, 0xb6, 0x14, 0x56, 0x3a, 0x33, 0x81, 0xfd, 0x98, 0xd0, 0x04, 0x0b, 0xd7, 704 0x37, 0xa0, 0x95, 0x97, 0xd1, 0x3e, 0xd4, 0x23, 0xe1, 0x60, 0xdb, 0x90, 0x87, 0xea, 0x56, 0x4f,
616 0x6c, 0x29, 0x14, 0xfa, 0x8e, 0x03, 0xe7, 0x31, 0xa1, 0x09, 0x02, 0xae, 0xd9, 0xe8, 0x03, 0xb8, 705 0x29, 0x4c, 0x8e, 0x15, 0xba, 0xda, 0x1d, 0xe8, 0x29, 0x58, 0x45, 0x42, 0xb4, 0xac, 0x2d, 0x57,
617 0x8b, 0xfa, 0xea, 0x83, 0x9e, 0x92, 0x3e, 0x70, 0x30, 0xab, 0x84, 0xe0, 0x46, 0x21, 0xc3, 0xc2, 706 0x65, 0xc8, 0xcd, 0x33, 0xe4, 0x4e, 0x72, 0x04, 0x2e, 0xc1, 0xce, 0xcf, 0x35, 0x68, 0x8c, 0x64,
618 0x13, 0x46, 0x2b, 0x4e, 0x58, 0x11, 0xb1, 0x2a, 0xe8, 0xf6, 0xad, 0xdd, 0x0e, 0xf6, 0x56, 0x58, 707 0x22, 0xff, 0x56, 0xd1, 0x63, 0xa8, 0x07, 0x22, 0x53, 0x3a, 0x10, 0x77, 0xab, 0x69, 0x32, 0x76,
619 0x58, 0x0d, 0x7e, 0x5b, 0xb0, 0xa1, 0x6f, 0xe0, 0x13, 0x61, 0x49, 0xba, 0x6c, 0xfd, 0x83, 0x11, 708 0x58, 0x21, 0xd1, 0x13, 0x68, 0xfa, 0x2a, 0x67, 0x5a, 0xec, 0x76, 0x35, 0x49, 0x87, 0x11, 0xe7,
620 0xd8, 0x0b, 0x9a, 0x16, 0xe6, 0x07, 0x56, 0x35, 0x3a, 0x00, 0x5b, 0x7a, 0x54, 0x47, 0xf8, 0xff, 709 0x68, 0x41, 0xcc, 0x54, 0x08, 0x6c, 0xf3, 0x36, 0xa2, 0x4e, 0x0a, 0xce, 0xd1, 0x82, 0xc8, 0x95,
621 0x7e, 0xbf, 0xdd, 0x95, 0x9e, 0x3c, 0x59, 0x16, 0x14, 0x2b, 0xb6, 0x0c, 0x9f, 0x7e, 0x53, 0x02, 710 0x69, 0xed, 0xfa, 0x6d, 0x44, 0xed, 0x6c, 0x9c, 0xa3, 0xd1, 0x0b, 0xb0, 0x16, 0xb9, 0x97, 0xed,
622 0xfb, 0xb1, 0xf0, 0x69, 0x1d, 0x36, 0xdc, 0xd7, 0x21, 0x40, 0x33, 0x09, 0x79, 0xd0, 0x3b, 0xbd, 711 0xa6, 0xa4, 0xde, 0x70, 0x31, 0x85, 0xe5, 0x71, 0xc9, 0x10, 0xee, 0x2f, 0xee, 0x7a, 0x46, 0x33,
623 0x9c, 0x5e, 0x4c, 0xce, 0xb0, 0xff, 0x1f, 0x72, 0xc1, 0x19, 0x1d, 0x4f, 0x47, 0x67, 0xbe, 0x25, 712 0xbb, 0xd1, 0x33, 0x76, 0x6a, 0xb8, 0x5d, 0xd4, 0x46, 0x99, 0xf3, 0xc3, 0x80, 0x75, 0xf5, 0x07,
624 0xf1, 0xf1, 0x34, 0x0c, 0x8f, 0xf1, 0xb5, 0xbf, 0x26, 0x17, 0xd3, 0x8b, 0xc9, 0xf5, 0xd5, 0xd9, 713 0x5e, 0x79, 0x34, 0x8c, 0x56, 0x95, 0xcf, 0x19, 0x02, 0x73, 0x41, 0xa2, 0x44, 0xbf, 0x66, 0x72,
625 0x47, 0xbf, 0x83, 0x36, 0xc1, 0x3d, 0xff, 0x3c, 0x9e, 0x5c, 0x8e, 0xf0, 0x71, 0xe8, 0xdb, 0x27, 714 0x8d, 0xf6, 0xc0, 0x14, 0x1a, 0xe5, 0x15, 0xfe, 0xbf, 0xdb, 0xab, 0x56, 0xa5, 0x26, 0x4f, 0x56,
626 0x18, 0x5a, 0x5f, 0xb2, 0x6f, 0x47, 0xf3, 0x84, 0x2f, 0xc4, 0x6c, 0x18, 0xe7, 0x6c, 0xaf, 0xe9, 715 0x09, 0xc1, 0x12, 0x2d, 0xd2, 0xa4, 0x5e, 0x60, 0xdb, 0xbc, 0x2d, 0x4d, 0x8a, 0x87, 0x35, 0xf6,
627 0xee, 0xe9, 0x6e, 0xc4, 0xf2, 0x1b, 0x9a, 0xee, 0xcd, 0xf3, 0x77, 0x49, 0x1e, 0x35, 0xdd, 0x48, 716 0xd1, 0x08, 0xa0, 0x9c, 0x84, 0xda, 0xd0, 0x3c, 0x3e, 0x9b, 0x9e, 0x4e, 0x06, 0xb8, 0xf3, 0x1f,
628 0x77, 0xff, 0x06, 0x00, 0x00, 0xff, 0xff, 0x45, 0x21, 0x7f, 0x64, 0x2b, 0x05, 0x00, 0x00, 717 0xb2, 0xa0, 0x3e, 0x3c, 0x9c, 0x0e, 0x07, 0x1d, 0x43, 0xd4, 0xc7, 0xd3, 0xd1, 0xe8, 0x10, 0x5f,
718 0x74, 0xd6, 0xc4, 0x66, 0x7a, 0x3a, 0xb9, 0x38, 0x1f, 0xbc, 0xec, 0xd4, 0xd0, 0x06, 0x58, 0x27,
719 0xaf, 0xc7, 0x93, 0xb3, 0x21, 0x3e, 0x1c, 0x75, 0xcc, 0x23, 0x0c, 0x95, 0xef, 0xfe, 0xbb, 0x83,
720 0x20, 0x64, 0x0b, 0x3e, 0x77, 0xfd, 0x98, 0xf6, 0xcb, 0x6e, 0x5f, 0x75, 0x67, 0x34, 0xbe, 0x24,
721 0x51, 0x3f, 0x88, 0x9f, 0x85, 0xf1, 0xac, 0xec, 0xce, 0x54, 0xf7, 0x57, 0x00, 0x00, 0x00, 0xff,
722 0xff, 0xd0, 0x84, 0x91, 0x73, 0x59, 0x06, 0x00, 0x00,
629} 723}
diff --git a/vendor/github.com/prometheus/common/expfmt/encode.go b/vendor/github.com/prometheus/common/expfmt/encode.go
index 11839ed..bd4e347 100644
--- a/vendor/github.com/prometheus/common/expfmt/encode.go
+++ b/vendor/github.com/prometheus/common/expfmt/encode.go
@@ -30,17 +30,38 @@ type Encoder interface {
30 Encode(*dto.MetricFamily) error 30 Encode(*dto.MetricFamily) error
31} 31}
32 32
33type encoder func(*dto.MetricFamily) error 33// Closer is implemented by Encoders that need to be closed to finalize
34// encoding. (For example, OpenMetrics needs a final `# EOF` line.)
35//
36// Note that all Encoder implementations returned from this package implement
37// Closer, too, even if the Close call is a no-op. This happens in preparation
38// for adding a Close method to the Encoder interface directly in a (mildly
39// breaking) release in the future.
40type Closer interface {
41 Close() error
42}
43
44type encoderCloser struct {
45 encode func(*dto.MetricFamily) error
46 close func() error
47}
34 48
35func (e encoder) Encode(v *dto.MetricFamily) error { 49func (ec encoderCloser) Encode(v *dto.MetricFamily) error {
36 return e(v) 50 return ec.encode(v)
37} 51}
38 52
39// Negotiate returns the Content-Type based on the given Accept header. 53func (ec encoderCloser) Close() error {
40// If no appropriate accepted type is found, FmtText is returned. 54 return ec.close()
55}
56
57// Negotiate returns the Content-Type based on the given Accept header. If no
58// appropriate accepted type is found, FmtText is returned (which is the
59// Prometheus text format). This function will never negotiate FmtOpenMetrics,
60// as the support is still experimental. To include the option to negotiate
61// FmtOpenMetrics, use NegotiateOpenMetrics.
41func Negotiate(h http.Header) Format { 62func Negotiate(h http.Header) Format {
42 for _, ac := range goautoneg.ParseAccept(h.Get(hdrAccept)) { 63 for _, ac := range goautoneg.ParseAccept(h.Get(hdrAccept)) {
43 // Check for protocol buffer 64 ver := ac.Params["version"]
44 if ac.Type+"/"+ac.SubType == ProtoType && ac.Params["proto"] == ProtoProtocol { 65 if ac.Type+"/"+ac.SubType == ProtoType && ac.Params["proto"] == ProtoProtocol {
45 switch ac.Params["encoding"] { 66 switch ac.Params["encoding"] {
46 case "delimited": 67 case "delimited":
@@ -51,38 +72,91 @@ func Negotiate(h http.Header) Format {
51 return FmtProtoCompact 72 return FmtProtoCompact
52 } 73 }
53 } 74 }
54 // Check for text format. 75 if ac.Type == "text" && ac.SubType == "plain" && (ver == TextVersion || ver == "") {
76 return FmtText
77 }
78 }
79 return FmtText
80}
81
82// NegotiateIncludingOpenMetrics works like Negotiate but includes
83// FmtOpenMetrics as an option for the result. Note that this function is
84// temporary and will disappear once FmtOpenMetrics is fully supported and as
85// such may be negotiated by the normal Negotiate function.
86func NegotiateIncludingOpenMetrics(h http.Header) Format {
87 for _, ac := range goautoneg.ParseAccept(h.Get(hdrAccept)) {
55 ver := ac.Params["version"] 88 ver := ac.Params["version"]
89 if ac.Type+"/"+ac.SubType == ProtoType && ac.Params["proto"] == ProtoProtocol {
90 switch ac.Params["encoding"] {
91 case "delimited":
92 return FmtProtoDelim
93 case "text":
94 return FmtProtoText
95 case "compact-text":
96 return FmtProtoCompact
97 }
98 }
56 if ac.Type == "text" && ac.SubType == "plain" && (ver == TextVersion || ver == "") { 99 if ac.Type == "text" && ac.SubType == "plain" && (ver == TextVersion || ver == "") {
57 return FmtText 100 return FmtText
58 } 101 }
102 if ac.Type+"/"+ac.SubType == OpenMetricsType && (ver == OpenMetricsVersion || ver == "") {
103 return FmtOpenMetrics
104 }
59 } 105 }
60 return FmtText 106 return FmtText
61} 107}
62 108
63// NewEncoder returns a new encoder based on content type negotiation. 109// NewEncoder returns a new encoder based on content type negotiation. All
110// Encoder implementations returned by NewEncoder also implement Closer, and
111// callers should always call the Close method. It is currently only required
112// for FmtOpenMetrics, but a future (breaking) release will add the Close method
113// to the Encoder interface directly. The current version of the Encoder
114// interface is kept for backwards compatibility.
64func NewEncoder(w io.Writer, format Format) Encoder { 115func NewEncoder(w io.Writer, format Format) Encoder {
65 switch format { 116 switch format {
66 case FmtProtoDelim: 117 case FmtProtoDelim:
67 return encoder(func(v *dto.MetricFamily) error { 118 return encoderCloser{
68 _, err := pbutil.WriteDelimited(w, v) 119 encode: func(v *dto.MetricFamily) error {
69 return err 120 _, err := pbutil.WriteDelimited(w, v)
70 }) 121 return err
122 },
123 close: func() error { return nil },
124 }
71 case FmtProtoCompact: 125 case FmtProtoCompact:
72 return encoder(func(v *dto.MetricFamily) error { 126 return encoderCloser{
73 _, err := fmt.Fprintln(w, v.String()) 127 encode: func(v *dto.MetricFamily) error {
74 return err 128 _, err := fmt.Fprintln(w, v.String())
75 }) 129 return err
130 },
131 close: func() error { return nil },
132 }
76 case FmtProtoText: 133 case FmtProtoText:
77 return encoder(func(v *dto.MetricFamily) error { 134 return encoderCloser{
78 _, err := fmt.Fprintln(w, proto.MarshalTextString(v)) 135 encode: func(v *dto.MetricFamily) error {
79 return err 136 _, err := fmt.Fprintln(w, proto.MarshalTextString(v))
80 }) 137 return err
138 },
139 close: func() error { return nil },
140 }
81 case FmtText: 141 case FmtText:
82 return encoder(func(v *dto.MetricFamily) error { 142 return encoderCloser{
83 _, err := MetricFamilyToText(w, v) 143 encode: func(v *dto.MetricFamily) error {
84 return err 144 _, err := MetricFamilyToText(w, v)
85 }) 145 return err
146 },
147 close: func() error { return nil },
148 }
149 case FmtOpenMetrics:
150 return encoderCloser{
151 encode: func(v *dto.MetricFamily) error {
152 _, err := MetricFamilyToOpenMetrics(w, v)
153 return err
154 },
155 close: func() error {
156 _, err := FinalizeOpenMetrics(w)
157 return err
158 },
159 }
86 } 160 }
87 panic("expfmt.NewEncoder: unknown format") 161 panic(fmt.Errorf("expfmt.NewEncoder: unknown format %q", format))
88} 162}
diff --git a/vendor/github.com/prometheus/common/expfmt/expfmt.go b/vendor/github.com/prometheus/common/expfmt/expfmt.go
index c71bcb9..0f176fa 100644
--- a/vendor/github.com/prometheus/common/expfmt/expfmt.go
+++ b/vendor/github.com/prometheus/common/expfmt/expfmt.go
@@ -19,10 +19,12 @@ type Format string
19 19
20// Constants to assemble the Content-Type values for the different wire protocols. 20// Constants to assemble the Content-Type values for the different wire protocols.
21const ( 21const (
22 TextVersion = "0.0.4" 22 TextVersion = "0.0.4"
23 ProtoType = `application/vnd.google.protobuf` 23 ProtoType = `application/vnd.google.protobuf`
24 ProtoProtocol = `io.prometheus.client.MetricFamily` 24 ProtoProtocol = `io.prometheus.client.MetricFamily`
25 ProtoFmt = ProtoType + "; proto=" + ProtoProtocol + ";" 25 ProtoFmt = ProtoType + "; proto=" + ProtoProtocol + ";"
26 OpenMetricsType = `application/openmetrics-text`
27 OpenMetricsVersion = "0.0.1"
26 28
27 // The Content-Type values for the different wire protocols. 29 // The Content-Type values for the different wire protocols.
28 FmtUnknown Format = `<unknown>` 30 FmtUnknown Format = `<unknown>`
@@ -30,6 +32,7 @@ const (
30 FmtProtoDelim Format = ProtoFmt + ` encoding=delimited` 32 FmtProtoDelim Format = ProtoFmt + ` encoding=delimited`
31 FmtProtoText Format = ProtoFmt + ` encoding=text` 33 FmtProtoText Format = ProtoFmt + ` encoding=text`
32 FmtProtoCompact Format = ProtoFmt + ` encoding=compact-text` 34 FmtProtoCompact Format = ProtoFmt + ` encoding=compact-text`
35 FmtOpenMetrics Format = OpenMetricsType + `; version=` + OpenMetricsVersion + `; charset=utf-8`
33) 36)
34 37
35const ( 38const (
diff --git a/vendor/github.com/prometheus/common/expfmt/openmetrics_create.go b/vendor/github.com/prometheus/common/expfmt/openmetrics_create.go
new file mode 100644
index 0000000..8a9313a
--- /dev/null
+++ b/vendor/github.com/prometheus/common/expfmt/openmetrics_create.go
@@ -0,0 +1,527 @@
1// Copyright 2020 The Prometheus Authors
2// Licensed under the Apache License, Version 2.0 (the "License");
3// you may not use this file except in compliance with the License.
4// You may obtain a copy of the License at
5//
6// http://www.apache.org/licenses/LICENSE-2.0
7//
8// Unless required by applicable law or agreed to in writing, software
9// distributed under the License is distributed on an "AS IS" BASIS,
10// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11// See the License for the specific language governing permissions and
12// limitations under the License.
13
14package expfmt
15
16import (
17 "bufio"
18 "bytes"
19 "fmt"
20 "io"
21 "math"
22 "strconv"
23 "strings"
24
25 "github.com/golang/protobuf/ptypes"
26 "github.com/prometheus/common/model"
27
28 dto "github.com/prometheus/client_model/go"
29)
30
31// MetricFamilyToOpenMetrics converts a MetricFamily proto message into the
32// OpenMetrics text format and writes the resulting lines to 'out'. It returns
33// the number of bytes written and any error encountered. The output will have
34// the same order as the input, no further sorting is performed. Furthermore,
35// this function assumes the input is already sanitized and does not perform any
36// sanity checks. If the input contains duplicate metrics or invalid metric or
37// label names, the conversion will result in invalid text format output.
38//
39// This function fulfills the type 'expfmt.encoder'.
40//
41// Note that OpenMetrics requires a final `# EOF` line. Since this function acts
42// on individual metric families, it is the responsibility of the caller to
43// append this line to 'out' once all metric families have been written.
44// Conveniently, this can be done by calling FinalizeOpenMetrics.
45//
46// The output should be fully OpenMetrics compliant. However, there are a few
47// missing features and peculiarities to avoid complications when switching from
48// Prometheus to OpenMetrics or vice versa:
49//
50// - Counters are expected to have the `_total` suffix in their metric name. In
51// the output, the suffix will be truncated from the `# TYPE` and `# HELP`
52// line. A counter with a missing `_total` suffix is not an error. However,
53// its type will be set to `unknown` in that case to avoid invalid OpenMetrics
54// output.
55//
56// - No support for the following (optional) features: `# UNIT` line, `_created`
57// line, info type, stateset type, gaugehistogram type.
58//
59// - The size of exemplar labels is not checked (i.e. it's possible to create
60// exemplars that are larger than allowed by the OpenMetrics specification).
61//
62// - The value of Counters is not checked. (OpenMetrics doesn't allow counters
63// with a `NaN` value.)
64func MetricFamilyToOpenMetrics(out io.Writer, in *dto.MetricFamily) (written int, err error) {
65 name := in.GetName()
66 if name == "" {
67 return 0, fmt.Errorf("MetricFamily has no name: %s", in)
68 }
69
70 // Try the interface upgrade. If it doesn't work, we'll use a
71 // bufio.Writer from the sync.Pool.
72 w, ok := out.(enhancedWriter)
73 if !ok {
74 b := bufPool.Get().(*bufio.Writer)
75 b.Reset(out)
76 w = b
77 defer func() {
78 bErr := b.Flush()
79 if err == nil {
80 err = bErr
81 }
82 bufPool.Put(b)
83 }()
84 }
85
86 var (
87 n int
88 metricType = in.GetType()
89 shortName = name
90 )
91 if metricType == dto.MetricType_COUNTER && strings.HasSuffix(shortName, "_total") {
92 shortName = name[:len(name)-6]
93 }
94
95 // Comments, first HELP, then TYPE.
96 if in.Help != nil {
97 n, err = w.WriteString("# HELP ")
98 written += n
99 if err != nil {
100 return
101 }
102 n, err = w.WriteString(shortName)
103 written += n
104 if err != nil {
105 return
106 }
107 err = w.WriteByte(' ')
108 written++
109 if err != nil {
110 return
111 }
112 n, err = writeEscapedString(w, *in.Help, true)
113 written += n
114 if err != nil {
115 return
116 }
117 err = w.WriteByte('\n')
118 written++
119 if err != nil {
120 return
121 }
122 }
123 n, err = w.WriteString("# TYPE ")
124 written += n
125 if err != nil {
126 return
127 }
128 n, err = w.WriteString(shortName)
129 written += n
130 if err != nil {
131 return
132 }
133 switch metricType {
134 case dto.MetricType_COUNTER:
135 if strings.HasSuffix(name, "_total") {
136 n, err = w.WriteString(" counter\n")
137 } else {
138 n, err = w.WriteString(" unknown\n")
139 }
140 case dto.MetricType_GAUGE:
141 n, err = w.WriteString(" gauge\n")
142 case dto.MetricType_SUMMARY:
143 n, err = w.WriteString(" summary\n")
144 case dto.MetricType_UNTYPED:
145 n, err = w.WriteString(" unknown\n")
146 case dto.MetricType_HISTOGRAM:
147 n, err = w.WriteString(" histogram\n")
148 default:
149 return written, fmt.Errorf("unknown metric type %s", metricType.String())
150 }
151 written += n
152 if err != nil {
153 return
154 }
155
156 // Finally the samples, one line for each.
157 for _, metric := range in.Metric {
158 switch metricType {
159 case dto.MetricType_COUNTER:
160 if metric.Counter == nil {
161 return written, fmt.Errorf(
162 "expected counter in metric %s %s", name, metric,
163 )
164 }
165 // Note that we have ensured above that either the name
166 // ends on `_total` or that the rendered type is
167 // `unknown`. Therefore, no `_total` must be added here.
168 n, err = writeOpenMetricsSample(
169 w, name, "", metric, "", 0,
170 metric.Counter.GetValue(), 0, false,
171 metric.Counter.Exemplar,
172 )
173 case dto.MetricType_GAUGE:
174 if metric.Gauge == nil {
175 return written, fmt.Errorf(
176 "expected gauge in metric %s %s", name, metric,
177 )
178 }
179 n, err = writeOpenMetricsSample(
180 w, name, "", metric, "", 0,
181 metric.Gauge.GetValue(), 0, false,
182 nil,
183 )
184 case dto.MetricType_UNTYPED:
185 if metric.Untyped == nil {
186 return written, fmt.Errorf(
187 "expected untyped in metric %s %s", name, metric,
188 )
189 }
190 n, err = writeOpenMetricsSample(
191 w, name, "", metric, "", 0,
192 metric.Untyped.GetValue(), 0, false,
193 nil,
194 )
195 case dto.MetricType_SUMMARY:
196 if metric.Summary == nil {
197 return written, fmt.Errorf(
198 "expected summary in metric %s %s", name, metric,
199 )
200 }
201 for _, q := range metric.Summary.Quantile {
202 n, err = writeOpenMetricsSample(
203 w, name, "", metric,
204 model.QuantileLabel, q.GetQuantile(),
205 q.GetValue(), 0, false,
206 nil,
207 )
208 written += n
209 if err != nil {
210 return
211 }
212 }
213 n, err = writeOpenMetricsSample(
214 w, name, "_sum", metric, "", 0,
215 metric.Summary.GetSampleSum(), 0, false,
216 nil,
217 )
218 written += n
219 if err != nil {
220 return
221 }
222 n, err = writeOpenMetricsSample(
223 w, name, "_count", metric, "", 0,
224 0, metric.Summary.GetSampleCount(), true,
225 nil,
226 )
227 case dto.MetricType_HISTOGRAM:
228 if metric.Histogram == nil {
229 return written, fmt.Errorf(
230 "expected histogram in metric %s %s", name, metric,
231 )
232 }
233 infSeen := false
234 for _, b := range metric.Histogram.Bucket {
235 n, err = writeOpenMetricsSample(
236 w, name, "_bucket", metric,
237 model.BucketLabel, b.GetUpperBound(),
238 0, b.GetCumulativeCount(), true,
239 b.Exemplar,
240 )
241 written += n
242 if err != nil {
243 return
244 }
245 if math.IsInf(b.GetUpperBound(), +1) {
246 infSeen = true
247 }
248 }
249 if !infSeen {
250 n, err = writeOpenMetricsSample(
251 w, name, "_bucket", metric,
252 model.BucketLabel, math.Inf(+1),
253 0, metric.Histogram.GetSampleCount(), true,
254 nil,
255 )
256 written += n
257 if err != nil {
258 return
259 }
260 }
261 n, err = writeOpenMetricsSample(
262 w, name, "_sum", metric, "", 0,
263 metric.Histogram.GetSampleSum(), 0, false,
264 nil,
265 )
266 written += n
267 if err != nil {
268 return
269 }
270 n, err = writeOpenMetricsSample(
271 w, name, "_count", metric, "", 0,
272 0, metric.Histogram.GetSampleCount(), true,
273 nil,
274 )
275 default:
276 return written, fmt.Errorf(
277 "unexpected type in metric %s %s", name, metric,
278 )
279 }
280 written += n
281 if err != nil {
282 return
283 }
284 }
285 return
286}
287
288// FinalizeOpenMetrics writes the final `# EOF\n` line required by OpenMetrics.
289func FinalizeOpenMetrics(w io.Writer) (written int, err error) {
290 return w.Write([]byte("# EOF\n"))
291}
292
293// writeOpenMetricsSample writes a single sample in OpenMetrics text format to
294// w, given the metric name, the metric proto message itself, optionally an
295// additional label name with a float64 value (use empty string as label name if
296// not required), the value (optionally as float64 or uint64, determined by
297// useIntValue), and optionally an exemplar (use nil if not required). The
298// function returns the number of bytes written and any error encountered.
299func writeOpenMetricsSample(
300 w enhancedWriter,
301 name, suffix string,
302 metric *dto.Metric,
303 additionalLabelName string, additionalLabelValue float64,
304 floatValue float64, intValue uint64, useIntValue bool,
305 exemplar *dto.Exemplar,
306) (int, error) {
307 var written int
308 n, err := w.WriteString(name)
309 written += n
310 if err != nil {
311 return written, err
312 }
313 if suffix != "" {
314 n, err = w.WriteString(suffix)
315 written += n
316 if err != nil {
317 return written, err
318 }
319 }
320 n, err = writeOpenMetricsLabelPairs(
321 w, metric.Label, additionalLabelName, additionalLabelValue,
322 )
323 written += n
324 if err != nil {
325 return written, err
326 }
327 err = w.WriteByte(' ')
328 written++
329 if err != nil {
330 return written, err
331 }
332 if useIntValue {
333 n, err = writeUint(w, intValue)
334 } else {
335 n, err = writeOpenMetricsFloat(w, floatValue)
336 }
337 written += n
338 if err != nil {
339 return written, err
340 }
341 if metric.TimestampMs != nil {
342 err = w.WriteByte(' ')
343 written++
344 if err != nil {
345 return written, err
346 }
347 // TODO(beorn7): Format this directly without converting to a float first.
348 n, err = writeOpenMetricsFloat(w, float64(*metric.TimestampMs)/1000)
349 written += n
350 if err != nil {
351 return written, err
352 }
353 }
354 if exemplar != nil {
355 n, err = writeExemplar(w, exemplar)
356 written += n
357 if err != nil {
358 return written, err
359 }
360 }
361 err = w.WriteByte('\n')
362 written++
363 if err != nil {
364 return written, err
365 }
366 return written, nil
367}
368
369// writeOpenMetricsLabelPairs works like writeOpenMetrics but formats the float
370// in OpenMetrics style.
371func writeOpenMetricsLabelPairs(
372 w enhancedWriter,
373 in []*dto.LabelPair,
374 additionalLabelName string, additionalLabelValue float64,
375) (int, error) {
376 if len(in) == 0 && additionalLabelName == "" {
377 return 0, nil
378 }
379 var (
380 written int
381 separator byte = '{'
382 )
383 for _, lp := range in {
384 err := w.WriteByte(separator)
385 written++
386 if err != nil {
387 return written, err
388 }
389 n, err := w.WriteString(lp.GetName())
390 written += n
391 if err != nil {
392 return written, err
393 }
394 n, err = w.WriteString(`="`)
395 written += n
396 if err != nil {
397 return written, err
398 }
399 n, err = writeEscapedString(w, lp.GetValue(), true)
400 written += n
401 if err != nil {
402 return written, err
403 }
404 err = w.WriteByte('"')
405 written++
406 if err != nil {
407 return written, err
408 }
409 separator = ','
410 }
411 if additionalLabelName != "" {
412 err := w.WriteByte(separator)
413 written++
414 if err != nil {
415 return written, err
416 }
417 n, err := w.WriteString(additionalLabelName)
418 written += n
419 if err != nil {
420 return written, err
421 }
422 n, err = w.WriteString(`="`)
423 written += n
424 if err != nil {
425 return written, err
426 }
427 n, err = writeOpenMetricsFloat(w, additionalLabelValue)
428 written += n
429 if err != nil {
430 return written, err
431 }
432 err = w.WriteByte('"')
433 written++
434 if err != nil {
435 return written, err
436 }
437 }
438 err := w.WriteByte('}')
439 written++
440 if err != nil {
441 return written, err
442 }
443 return written, nil
444}
445
446// writeExemplar writes the provided exemplar in OpenMetrics format to w. The
447// function returns the number of bytes written and any error encountered.
448func writeExemplar(w enhancedWriter, e *dto.Exemplar) (int, error) {
449 written := 0
450 n, err := w.WriteString(" # ")
451 written += n
452 if err != nil {
453 return written, err
454 }
455 n, err = writeOpenMetricsLabelPairs(w, e.Label, "", 0)
456 written += n
457 if err != nil {
458 return written, err
459 }
460 err = w.WriteByte(' ')
461 written++
462 if err != nil {
463 return written, err
464 }
465 n, err = writeOpenMetricsFloat(w, e.GetValue())
466 written += n
467 if err != nil {
468 return written, err
469 }
470 if e.Timestamp != nil {
471 err = w.WriteByte(' ')
472 written++
473 if err != nil {
474 return written, err
475 }
476 ts, err := ptypes.Timestamp((*e).Timestamp)
477 if err != nil {
478 return written, err
479 }
480 // TODO(beorn7): Format this directly from components of ts to
481 // avoid overflow/underflow and precision issues of the float
482 // conversion.
483 n, err = writeOpenMetricsFloat(w, float64(ts.UnixNano())/1e9)
484 written += n
485 if err != nil {
486 return written, err
487 }
488 }
489 return written, nil
490}
491
492// writeOpenMetricsFloat works like writeFloat but appends ".0" if the resulting
493// number would otherwise contain neither a "." nor an "e".
494func writeOpenMetricsFloat(w enhancedWriter, f float64) (int, error) {
495 switch {
496 case f == 1:
497 return w.WriteString("1.0")
498 case f == 0:
499 return w.WriteString("0.0")
500 case f == -1:
501 return w.WriteString("-1.0")
502 case math.IsNaN(f):
503 return w.WriteString("NaN")
504 case math.IsInf(f, +1):
505 return w.WriteString("+Inf")
506 case math.IsInf(f, -1):
507 return w.WriteString("-Inf")
508 default:
509 bp := numBufPool.Get().(*[]byte)
510 *bp = strconv.AppendFloat((*bp)[:0], f, 'g', -1, 64)
511 if !bytes.ContainsAny(*bp, "e.") {
512 *bp = append(*bp, '.', '0')
513 }
514 written, err := w.Write(*bp)
515 numBufPool.Put(bp)
516 return written, err
517 }
518}
519
520// writeUint is like writeInt just for uint64.
521func writeUint(w enhancedWriter, u uint64) (int, error) {
522 bp := numBufPool.Get().(*[]byte)
523 *bp = strconv.AppendUint((*bp)[:0], u, 10)
524 written, err := w.Write(*bp)
525 numBufPool.Put(bp)
526 return written, err
527}
diff --git a/vendor/github.com/prometheus/common/expfmt/text_create.go b/vendor/github.com/prometheus/common/expfmt/text_create.go
index 0327865..5ba503b 100644
--- a/vendor/github.com/prometheus/common/expfmt/text_create.go
+++ b/vendor/github.com/prometheus/common/expfmt/text_create.go
@@ -423,9 +423,8 @@ var (
423func writeEscapedString(w enhancedWriter, v string, includeDoubleQuote bool) (int, error) { 423func writeEscapedString(w enhancedWriter, v string, includeDoubleQuote bool) (int, error) {
424 if includeDoubleQuote { 424 if includeDoubleQuote {
425 return quotedEscaper.WriteString(w, v) 425 return quotedEscaper.WriteString(w, v)
426 } else {
427 return escaper.WriteString(w, v)
428 } 426 }
427 return escaper.WriteString(w, v)
429} 428}
430 429
431// writeFloat is equivalent to fmt.Fprint with a float64 argument but hardcodes 430// writeFloat is equivalent to fmt.Fprint with a float64 argument but hardcodes
diff --git a/vendor/github.com/prometheus/common/version/info.go b/vendor/github.com/prometheus/common/version/info.go
index 84489a5..ac9af1f 100644
--- a/vendor/github.com/prometheus/common/version/info.go
+++ b/vendor/github.com/prometheus/common/version/info.go
@@ -33,9 +33,10 @@ var (
33 GoVersion = runtime.Version() 33 GoVersion = runtime.Version()
34) 34)
35 35
36// NewCollector returns a collector which exports metrics about current version information. 36// NewCollector returns a collector that exports metrics about current version
37func NewCollector(program string) *prometheus.GaugeVec { 37// information.
38 buildInfo := prometheus.NewGaugeVec( 38func NewCollector(program string) prometheus.Collector {
39 return prometheus.NewGaugeFunc(
39 prometheus.GaugeOpts{ 40 prometheus.GaugeOpts{
40 Namespace: program, 41 Namespace: program,
41 Name: "build_info", 42 Name: "build_info",
@@ -43,11 +44,15 @@ func NewCollector(program string) *prometheus.GaugeVec {
43 "A metric with a constant '1' value labeled by version, revision, branch, and goversion from which %s was built.", 44 "A metric with a constant '1' value labeled by version, revision, branch, and goversion from which %s was built.",
44 program, 45 program,
45 ), 46 ),
47 ConstLabels: prometheus.Labels{
48 "version": Version,
49 "revision": Revision,
50 "branch": Branch,
51 "goversion": GoVersion,
52 },
46 }, 53 },
47 []string{"version", "revision", "branch", "goversion"}, 54 func() float64 { return 1 },
48 ) 55 )
49 buildInfo.WithLabelValues(Version, Revision, Branch, GoVersion).Set(1)
50 return buildInfo
51} 56}
52 57
53// versionInfoTmpl contains the template used by Info. 58// versionInfoTmpl contains the template used by Info.
diff --git a/vendor/go.uber.org/atomic/.gitignore b/vendor/go.uber.org/atomic/.gitignore
index 0a4504f..c3fa253 100644
--- a/vendor/go.uber.org/atomic/.gitignore
+++ b/vendor/go.uber.org/atomic/.gitignore
@@ -1,6 +1,7 @@
1/bin
1.DS_Store 2.DS_Store
2/vendor 3/vendor
3/cover 4cover.html
4cover.out 5cover.out
5lint.log 6lint.log
6 7
diff --git a/vendor/go.uber.org/atomic/.travis.yml b/vendor/go.uber.org/atomic/.travis.yml
index 5895722..4e73268 100644
--- a/vendor/go.uber.org/atomic/.travis.yml
+++ b/vendor/go.uber.org/atomic/.travis.yml
@@ -2,22 +2,26 @@ sudo: false
2language: go 2language: go
3go_import_path: go.uber.org/atomic 3go_import_path: go.uber.org/atomic
4 4
5go: 5env:
6 - 1.7 6 global:
7 - 1.8 7 - GO111MODULE=on
8 - 1.9 8
9matrix:
10 include:
11 - go: 1.12.x
12 - go: 1.13.x
13 env: LINT=1
9 14
10cache: 15cache:
11 directories: 16 directories:
12 - vendor 17 - vendor
13 18
14install: 19before_install:
15 - make install_ci 20 - go version
16 21
17script: 22script:
18 - make test_ci 23 - test -z "$LINT" || make lint
19 - scripts/test-ubergo.sh 24 - make cover
20 - make lint
21 25
22after_success: 26after_success:
23 - bash <(curl -s https://codecov.io/bash) 27 - bash <(curl -s https://codecov.io/bash)
diff --git a/vendor/go.uber.org/atomic/CHANGELOG.md b/vendor/go.uber.org/atomic/CHANGELOG.md
new file mode 100644
index 0000000..6db846f
--- /dev/null
+++ b/vendor/go.uber.org/atomic/CHANGELOG.md
@@ -0,0 +1,59 @@
1# Changelog
2All notable changes to this project will be documented in this file.
3
4The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
5and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
6
7## [1.5.1] - 2019-11-19
8- Fix bug where `Bool.CAS` and `Bool.Toggle` do work correctly together
9 causing `CAS` to fail even though the old value matches.
10
11## [1.5.0] - 2019-10-29
12### Changed
13- With Go modules, only the `go.uber.org/atomic` import path is supported now.
14 If you need to use the old import path, please add a `replace` directive to
15 your `go.mod`.
16
17## [1.4.0] - 2019-05-01
18### Added
19 - Add `atomic.Error` type for atomic operations on `error` values.
20
21## [1.3.2] - 2018-05-02
22### Added
23- Add `atomic.Duration` type for atomic operations on `time.Duration` values.
24
25## [1.3.1] - 2017-11-14
26### Fixed
27- Revert optimization for `atomic.String.Store("")` which caused data races.
28
29## [1.3.0] - 2017-11-13
30### Added
31- Add `atomic.Bool.CAS` for compare-and-swap semantics on bools.
32
33### Changed
34- Optimize `atomic.String.Store("")` by avoiding an allocation.
35
36## [1.2.0] - 2017-04-12
37### Added
38- Shadow `atomic.Value` from `sync/atomic`.
39
40## [1.1.0] - 2017-03-10
41### Added
42- Add atomic `Float64` type.
43
44### Changed
45- Support new `go.uber.org/atomic` import path.
46
47## [1.0.0] - 2016-07-18
48
49- Initial release.
50
51[1.5.1]: https://github.com/uber-go/atomic/compare/v1.5.0...v1.5.1
52[1.5.0]: https://github.com/uber-go/atomic/compare/v1.4.0...v1.5.0
53[1.4.0]: https://github.com/uber-go/atomic/compare/v1.3.2...v1.4.0
54[1.3.2]: https://github.com/uber-go/atomic/compare/v1.3.1...v1.3.2
55[1.3.1]: https://github.com/uber-go/atomic/compare/v1.3.0...v1.3.1
56[1.3.0]: https://github.com/uber-go/atomic/compare/v1.2.0...v1.3.0
57[1.2.0]: https://github.com/uber-go/atomic/compare/v1.1.0...v1.2.0
58[1.1.0]: https://github.com/uber-go/atomic/compare/v1.0.0...v1.1.0
59[1.0.0]: https://github.com/uber-go/atomic/releases/tag/v1.0.0
diff --git a/vendor/go.uber.org/atomic/Makefile b/vendor/go.uber.org/atomic/Makefile
index dfc63d9..39af0fb 100644
--- a/vendor/go.uber.org/atomic/Makefile
+++ b/vendor/go.uber.org/atomic/Makefile
@@ -1,64 +1,35 @@
1PACKAGES := $(shell glide nv) 1# Directory to place `go install`ed binaries into.
2# Many Go tools take file globs or directories as arguments instead of packages. 2export GOBIN ?= $(shell pwd)/bin
3PACKAGE_FILES ?= *.go
4 3
4GOLINT = $(GOBIN)/golint
5 5
6# The linting tools evolve with each Go version, so run them only on the latest 6GO_FILES ?= *.go
7# stable release.
8GO_VERSION := $(shell go version | cut -d " " -f 3)
9GO_MINOR_VERSION := $(word 2,$(subst ., ,$(GO_VERSION)))
10LINTABLE_MINOR_VERSIONS := 7 8
11ifneq ($(filter $(LINTABLE_MINOR_VERSIONS),$(GO_MINOR_VERSION)),)
12SHOULD_LINT := true
13endif
14
15
16export GO15VENDOREXPERIMENT=1
17
18 7
19.PHONY: build 8.PHONY: build
20build: 9build:
21 go build -i $(PACKAGES) 10 go build ./...
22
23
24.PHONY: install
25install:
26 glide --version || go get github.com/Masterminds/glide
27 glide install
28
29 11
30.PHONY: test 12.PHONY: test
31test: 13test:
32 go test -cover -race $(PACKAGES) 14 go test -race ./...
33 15
16.PHONY: gofmt
17gofmt:
18 $(eval FMT_LOG := $(shell mktemp -t gofmt.XXXXX))
19 gofmt -e -s -l $(GO_FILES) > $(FMT_LOG) || true
20 @[ ! -s "$(FMT_LOG)" ] || (echo "gofmt failed:" && cat $(FMT_LOG) && false)
34 21
35.PHONY: install_ci 22$(GOLINT):
36install_ci: install 23 go install golang.org/x/lint/golint
37 go get github.com/wadey/gocovmerge
38 go get github.com/mattn/goveralls
39 go get golang.org/x/tools/cmd/cover
40ifdef SHOULD_LINT
41 go get github.com/golang/lint/golint
42endif
43 24
44.PHONY: lint 25.PHONY: golint
45lint: 26golint: $(GOLINT)
46ifdef SHOULD_LINT 27 $(GOLINT) ./...
47 @rm -rf lint.log
48 @echo "Checking formatting..."
49 @gofmt -d -s $(PACKAGE_FILES) 2>&1 | tee lint.log
50 @echo "Checking vet..."
51 @$(foreach dir,$(PACKAGE_FILES),go tool vet $(dir) 2>&1 | tee -a lint.log;)
52 @echo "Checking lint..."
53 @$(foreach dir,$(PKGS),golint $(dir) 2>&1 | tee -a lint.log;)
54 @echo "Checking for unresolved FIXMEs..."
55 @git grep -i fixme | grep -v -e vendor -e Makefile | tee -a lint.log
56 @[ ! -s lint.log ]
57else
58 @echo "Skipping linters on" $(GO_VERSION)
59endif
60 28
29.PHONY: lint
30lint: gofmt golint
61 31
62.PHONY: test_ci 32.PHONY: cover
63test_ci: install_ci build 33cover:
64 ./scripts/cover.sh $(shell go list $(PACKAGES)) 34 go test -coverprofile=cover.out -coverpkg ./... -v ./...
35 go tool cover -html=cover.out -o cover.html
diff --git a/vendor/go.uber.org/atomic/README.md b/vendor/go.uber.org/atomic/README.md
index 6505abf..ade0c20 100644
--- a/vendor/go.uber.org/atomic/README.md
+++ b/vendor/go.uber.org/atomic/README.md
@@ -3,9 +3,34 @@
3Simple wrappers for primitive types to enforce atomic access. 3Simple wrappers for primitive types to enforce atomic access.
4 4
5## Installation 5## Installation
6`go get -u go.uber.org/atomic` 6
7```shell
8$ go get -u go.uber.org/atomic@v1
9```
10
11### Legacy Import Path
12
13As of v1.5.0, the import path `go.uber.org/atomic` is the only supported way
14of using this package. If you are using Go modules, this package will fail to
15compile with the legacy import path path `github.com/uber-go/atomic`.
16
17We recommend migrating your code to the new import path but if you're unable
18to do so, or if your dependencies are still using the old import path, you
19will have to add a `replace` directive to your `go.mod` file downgrading the
20legacy import path to an older version.
21
22```
23replace github.com/uber-go/atomic => github.com/uber-go/atomic v1.4.0
24```
25
26You can do so automatically by running the following command.
27
28```shell
29$ go mod edit -replace github.com/uber-go/atomic=github.com/uber-go/atomic@v1.4.0
30```
7 31
8## Usage 32## Usage
33
9The standard library's `sync/atomic` is powerful, but it's easy to forget which 34The standard library's `sync/atomic` is powerful, but it's easy to forget which
10variables must be accessed atomically. `go.uber.org/atomic` preserves all the 35variables must be accessed atomically. `go.uber.org/atomic` preserves all the
11functionality of the standard library, but wraps the primitive types to 36functionality of the standard library, but wraps the primitive types to
@@ -21,15 +46,17 @@ atom.CAS(40, 11)
21See the [documentation][doc] for a complete API specification. 46See the [documentation][doc] for a complete API specification.
22 47
23## Development Status 48## Development Status
49
24Stable. 50Stable.
25 51
26<hr> 52---
53
27Released under the [MIT License](LICENSE.txt). 54Released under the [MIT License](LICENSE.txt).
28 55
29[doc-img]: https://godoc.org/github.com/uber-go/atomic?status.svg 56[doc-img]: https://godoc.org/github.com/uber-go/atomic?status.svg
30[doc]: https://godoc.org/go.uber.org/atomic 57[doc]: https://godoc.org/go.uber.org/atomic
31[ci-img]: https://travis-ci.org/uber-go/atomic.svg?branch=master 58[ci-img]: https://travis-ci.com/uber-go/atomic.svg?branch=master
32[ci]: https://travis-ci.org/uber-go/atomic 59[ci]: https://travis-ci.com/uber-go/atomic
33[cov-img]: https://codecov.io/gh/uber-go/atomic/branch/master/graph/badge.svg 60[cov-img]: https://codecov.io/gh/uber-go/atomic/branch/master/graph/badge.svg
34[cov]: https://codecov.io/gh/uber-go/atomic 61[cov]: https://codecov.io/gh/uber-go/atomic
35[reportcard-img]: https://goreportcard.com/badge/go.uber.org/atomic 62[reportcard-img]: https://goreportcard.com/badge/go.uber.org/atomic
diff --git a/vendor/go.uber.org/atomic/atomic.go b/vendor/go.uber.org/atomic/atomic.go
index 1db6849..ad5fa09 100644
--- a/vendor/go.uber.org/atomic/atomic.go
+++ b/vendor/go.uber.org/atomic/atomic.go
@@ -250,11 +250,16 @@ func (b *Bool) Swap(new bool) bool {
250 250
251// Toggle atomically negates the Boolean and returns the previous value. 251// Toggle atomically negates the Boolean and returns the previous value.
252func (b *Bool) Toggle() bool { 252func (b *Bool) Toggle() bool {
253 return truthy(atomic.AddUint32(&b.v, 1) - 1) 253 for {
254 old := b.Load()
255 if b.CAS(old, !old) {
256 return old
257 }
258 }
254} 259}
255 260
256func truthy(n uint32) bool { 261func truthy(n uint32) bool {
257 return n&1 == 1 262 return n == 1
258} 263}
259 264
260func boolToInt(b bool) uint32 { 265func boolToInt(b bool) uint32 {
diff --git a/vendor/go.uber.org/atomic/error.go b/vendor/go.uber.org/atomic/error.go
new file mode 100644
index 0000000..0489d19
--- /dev/null
+++ b/vendor/go.uber.org/atomic/error.go
@@ -0,0 +1,55 @@
1// Copyright (c) 2016 Uber Technologies, Inc.
2//
3// Permission is hereby granted, free of charge, to any person obtaining a copy
4// of this software and associated documentation files (the "Software"), to deal
5// in the Software without restriction, including without limitation the rights
6// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7// copies of the Software, and to permit persons to whom the Software is
8// furnished to do so, subject to the following conditions:
9//
10// The above copyright notice and this permission notice shall be included in
11// all copies or substantial portions of the Software.
12//
13// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19// THE SOFTWARE.
20
21package atomic
22
23// Error is an atomic type-safe wrapper around Value for errors
24type Error struct{ v Value }
25
26// errorHolder is non-nil holder for error object.
27// atomic.Value panics on saving nil object, so err object needs to be
28// wrapped with valid object first.
29type errorHolder struct{ err error }
30
31// NewError creates new atomic error object
32func NewError(err error) *Error {
33 e := &Error{}
34 if err != nil {
35 e.Store(err)
36 }
37 return e
38}
39
40// Load atomically loads the wrapped error
41func (e *Error) Load() error {
42 v := e.v.Load()
43 if v == nil {
44 return nil
45 }
46
47 eh := v.(errorHolder)
48 return eh.err
49}
50
51// Store atomically stores error.
52// NOTE: a holder object is allocated on each Store call.
53func (e *Error) Store(err error) {
54 e.v.Store(errorHolder{err: err})
55}
diff --git a/vendor/go.uber.org/atomic/glide.lock b/vendor/go.uber.org/atomic/glide.lock
deleted file mode 100644
index 3c72c59..0000000
--- a/vendor/go.uber.org/atomic/glide.lock
+++ /dev/null
@@ -1,17 +0,0 @@
1hash: f14d51408e3e0e4f73b34e4039484c78059cd7fc5f4996fdd73db20dc8d24f53
2updated: 2016-10-27T00:10:51.16960137-07:00
3imports: []
4testImports:
5- name: github.com/davecgh/go-spew
6 version: 5215b55f46b2b919f50a1df0eaa5886afe4e3b3d
7 subpackages:
8 - spew
9- name: github.com/pmezard/go-difflib
10 version: d8ed2627bdf02c080bf22230dbb337003b7aba2d
11 subpackages:
12 - difflib
13- name: github.com/stretchr/testify
14 version: d77da356e56a7428ad25149ca77381849a6a5232
15 subpackages:
16 - assert
17 - require
diff --git a/vendor/go.uber.org/atomic/glide.yaml b/vendor/go.uber.org/atomic/glide.yaml
deleted file mode 100644
index 4cf608e..0000000
--- a/vendor/go.uber.org/atomic/glide.yaml
+++ /dev/null
@@ -1,6 +0,0 @@
1package: go.uber.org/atomic
2testImport:
3- package: github.com/stretchr/testify
4 subpackages:
5 - assert
6 - require
diff --git a/vendor/go.uber.org/atomic/go.mod b/vendor/go.uber.org/atomic/go.mod
new file mode 100644
index 0000000..a935dae
--- /dev/null
+++ b/vendor/go.uber.org/atomic/go.mod
@@ -0,0 +1,10 @@
1module go.uber.org/atomic
2
3require (
4 github.com/davecgh/go-spew v1.1.1 // indirect
5 github.com/stretchr/testify v1.3.0
6 golang.org/x/lint v0.0.0-20190930215403-16217165b5de
7 golang.org/x/tools v0.0.0-20191029041327-9cc4af7d6b2c // indirect
8)
9
10go 1.13
diff --git a/vendor/go.uber.org/atomic/go.sum b/vendor/go.uber.org/atomic/go.sum
new file mode 100644
index 0000000..51b2b62
--- /dev/null
+++ b/vendor/go.uber.org/atomic/go.sum
@@ -0,0 +1,22 @@
1github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8=
2github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
3github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
4github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
5github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
6github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
7github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
8github.com/stretchr/testify v1.3.0 h1:TivCn/peBQ7UY8ooIcPgZFpTNSz0Q2U6UrFlUfqbe0Q=
9github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
10golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
11golang.org/x/lint v0.0.0-20190930215403-16217165b5de h1:5hukYrvBGR8/eNkX5mdUezrA6JiaEZDtJb9Ei+1LlBs=
12golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
13golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
14golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
15golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
16golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
17golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
18golang.org/x/tools v0.0.0-20190311212946-11955173bddd h1:/e+gpKk9r3dJobndpTytxS2gOy6m5uvpg+ISQoEcusQ=
19golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
20golang.org/x/tools v0.0.0-20191029041327-9cc4af7d6b2c h1:IGkKhmfzcztjm6gYkykvu/NiS8kaqbCWAEWWAyf8J5U=
21golang.org/x/tools v0.0.0-20191029041327-9cc4af7d6b2c/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
22golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
diff --git a/vendor/go.uber.org/atomic/tools.go b/vendor/go.uber.org/atomic/tools.go
new file mode 100644
index 0000000..654f5b2
--- /dev/null
+++ b/vendor/go.uber.org/atomic/tools.go
@@ -0,0 +1,28 @@
1// Copyright (c) 2019 Uber Technologies, Inc.
2//
3// Permission is hereby granted, free of charge, to any person obtaining a copy
4// of this software and associated documentation files (the "Software"), to deal
5// in the Software without restriction, including without limitation the rights
6// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7// copies of the Software, and to permit persons to whom the Software is
8// furnished to do so, subject to the following conditions:
9//
10// The above copyright notice and this permission notice shall be included in
11// all copies or substantial portions of the Software.
12//
13// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19// THE SOFTWARE.
20
21// +build tools
22
23package atomic
24
25import (
26 // Tools used during development.
27 _ "golang.org/x/lint/golint"
28)
diff --git a/vendor/go.uber.org/multierr/.gitignore b/vendor/go.uber.org/multierr/.gitignore
index 61ead86..b9a05e3 100644
--- a/vendor/go.uber.org/multierr/.gitignore
+++ b/vendor/go.uber.org/multierr/.gitignore
@@ -1 +1,4 @@
1/vendor 1/vendor
2cover.html
3cover.out
4/bin
diff --git a/vendor/go.uber.org/multierr/.travis.yml b/vendor/go.uber.org/multierr/.travis.yml
index 5ffa8fe..786c917 100644
--- a/vendor/go.uber.org/multierr/.travis.yml
+++ b/vendor/go.uber.org/multierr/.travis.yml
@@ -5,11 +5,12 @@ go_import_path: go.uber.org/multierr
5env: 5env:
6 global: 6 global:
7 - GO15VENDOREXPERIMENT=1 7 - GO15VENDOREXPERIMENT=1
8 - GO111MODULE=on
8 9
9go: 10go:
10 - 1.7 11 - 1.11.x
11 - 1.8 12 - 1.12.x
12 - tip 13 - 1.13.x
13 14
14cache: 15cache:
15 directories: 16 directories:
@@ -18,16 +19,11 @@ cache:
18before_install: 19before_install:
19- go version 20- go version
20 21
21install:
22- |
23 set -e
24 make install_ci
25
26script: 22script:
27- | 23- |
28 set -e 24 set -e
29 make lint 25 make lint
30 make test_ci 26 make cover
31 27
32after_success: 28after_success:
33- bash <(curl -s https://codecov.io/bash) 29- bash <(curl -s https://codecov.io/bash)
diff --git a/vendor/go.uber.org/multierr/CHANGELOG.md b/vendor/go.uber.org/multierr/CHANGELOG.md
index 898445d..abb355a 100644
--- a/vendor/go.uber.org/multierr/CHANGELOG.md
+++ b/vendor/go.uber.org/multierr/CHANGELOG.md
@@ -1,6 +1,26 @@
1Releases 1Releases
2======== 2========
3 3
4v1.4.0 (2019-11-04)
5===================
6
7- Add `AppendInto` function to more ergonomically build errors inside a
8 loop.
9
10
11v1.3.0 (2019-10-29)
12===================
13
14- Switch to Go modules.
15
16
17v1.2.0 (2019-09-26)
18===================
19
20- Support extracting and matching against wrapped errors with `errors.As`
21 and `errors.Is`.
22
23
4v1.1.0 (2017-06-30) 24v1.1.0 (2017-06-30)
5=================== 25===================
6 26
diff --git a/vendor/go.uber.org/multierr/Makefile b/vendor/go.uber.org/multierr/Makefile
index a7437d0..4160182 100644
--- a/vendor/go.uber.org/multierr/Makefile
+++ b/vendor/go.uber.org/multierr/Makefile
@@ -1,23 +1,17 @@
1export GO15VENDOREXPERIMENT=1 1# Directory to put `go install`ed binaries in.
2 2export GOBIN ?= $(shell pwd)/bin
3PACKAGES := $(shell glide nv)
4 3
5GO_FILES := $(shell \ 4GO_FILES := $(shell \
6 find . '(' -path '*/.*' -o -path './vendor' ')' -prune \ 5 find . '(' -path '*/.*' -o -path './vendor' ')' -prune \
7 -o -name '*.go' -print | cut -b3-) 6 -o -name '*.go' -print | cut -b3-)
8 7
9.PHONY: install
10install:
11 glide --version || go get github.com/Masterminds/glide
12 glide install
13
14.PHONY: build 8.PHONY: build
15build: 9build:
16 go build -i $(PACKAGES) 10 go build ./...
17 11
18.PHONY: test 12.PHONY: test
19test: 13test:
20 go test -cover -race $(PACKAGES) 14 go test -race ./...
21 15
22.PHONY: gofmt 16.PHONY: gofmt
23gofmt: 17gofmt:
@@ -25,50 +19,24 @@ gofmt:
25 @gofmt -e -s -l $(GO_FILES) > $(FMT_LOG) || true 19 @gofmt -e -s -l $(GO_FILES) > $(FMT_LOG) || true
26 @[ ! -s "$(FMT_LOG)" ] || (echo "gofmt failed:" | cat - $(FMT_LOG) && false) 20 @[ ! -s "$(FMT_LOG)" ] || (echo "gofmt failed:" | cat - $(FMT_LOG) && false)
27 21
28.PHONY: govet
29govet:
30 $(eval VET_LOG := $(shell mktemp -t govet.XXXXX))
31 @go vet $(PACKAGES) 2>&1 \
32 | grep -v '^exit status' > $(VET_LOG) || true
33 @[ ! -s "$(VET_LOG)" ] || (echo "govet failed:" | cat - $(VET_LOG) && false)
34
35.PHONY: golint 22.PHONY: golint
36golint: 23golint:
37 @go get github.com/golang/lint/golint 24 @go install golang.org/x/lint/golint
38 $(eval LINT_LOG := $(shell mktemp -t golint.XXXXX)) 25 @$(GOBIN)/golint ./...
39 @cat /dev/null > $(LINT_LOG)
40 @$(foreach pkg, $(PACKAGES), golint $(pkg) >> $(LINT_LOG) || true;)
41 @[ ! -s "$(LINT_LOG)" ] || (echo "golint failed:" | cat - $(LINT_LOG) && false)
42 26
43.PHONY: staticcheck 27.PHONY: staticcheck
44staticcheck: 28staticcheck:
45 @go get honnef.co/go/tools/cmd/staticcheck 29 @go install honnef.co/go/tools/cmd/staticcheck
46 $(eval STATICCHECK_LOG := $(shell mktemp -t staticcheck.XXXXX)) 30 @$(GOBIN)/staticcheck ./...
47 @staticcheck $(PACKAGES) 2>&1 > $(STATICCHECK_LOG) || true
48 @[ ! -s "$(STATICCHECK_LOG)" ] || (echo "staticcheck failed:" | cat - $(STATICCHECK_LOG) && false)
49 31
50.PHONY: lint 32.PHONY: lint
51lint: gofmt govet golint staticcheck 33lint: gofmt golint staticcheck
52 34
53.PHONY: cover 35.PHONY: cover
54cover: 36cover:
55 ./scripts/cover.sh $(shell go list $(PACKAGES)) 37 go test -coverprofile=cover.out -coverpkg=./... -v ./...
56 go tool cover -html=cover.out -o cover.html 38 go tool cover -html=cover.out -o cover.html
57 39
58update-license: 40update-license:
59 @go get go.uber.org/tools/update-license 41 @go install go.uber.org/tools/update-license
60 @update-license \ 42 @$(GOBIN)/update-license $(GO_FILES)
61 $(shell go list -json $(PACKAGES) | \
62 jq -r '.Dir + "/" + (.GoFiles | .[])')
63
64##############################################################################
65
66.PHONY: install_ci
67install_ci: install
68 go get github.com/wadey/gocovmerge
69 go get github.com/mattn/goveralls
70 go get golang.org/x/tools/cmd/cover
71
72.PHONY: test_ci
73test_ci: install_ci
74 ./scripts/cover.sh $(shell go list $(PACKAGES))
diff --git a/vendor/go.uber.org/multierr/README.md b/vendor/go.uber.org/multierr/README.md
index 065088f..751bd65 100644
--- a/vendor/go.uber.org/multierr/README.md
+++ b/vendor/go.uber.org/multierr/README.md
@@ -17,7 +17,7 @@ Released under the [MIT License].
17[MIT License]: LICENSE.txt 17[MIT License]: LICENSE.txt
18[doc-img]: https://godoc.org/go.uber.org/multierr?status.svg 18[doc-img]: https://godoc.org/go.uber.org/multierr?status.svg
19[doc]: https://godoc.org/go.uber.org/multierr 19[doc]: https://godoc.org/go.uber.org/multierr
20[ci-img]: https://travis-ci.org/uber-go/multierr.svg?branch=master 20[ci-img]: https://travis-ci.com/uber-go/multierr.svg?branch=master
21[cov-img]: https://codecov.io/gh/uber-go/multierr/branch/master/graph/badge.svg 21[cov-img]: https://codecov.io/gh/uber-go/multierr/branch/master/graph/badge.svg
22[ci]: https://travis-ci.org/uber-go/multierr 22[ci]: https://travis-ci.com/uber-go/multierr
23[cov]: https://codecov.io/gh/uber-go/multierr 23[cov]: https://codecov.io/gh/uber-go/multierr
diff --git a/vendor/go.uber.org/multierr/error.go b/vendor/go.uber.org/multierr/error.go
index de6ce47..0ee6fe8 100644
--- a/vendor/go.uber.org/multierr/error.go
+++ b/vendor/go.uber.org/multierr/error.go
@@ -1,4 +1,4 @@
1// Copyright (c) 2017 Uber Technologies, Inc. 1// Copyright (c) 2019 Uber Technologies, Inc.
2// 2//
3// Permission is hereby granted, free of charge, to any person obtaining a copy 3// Permission is hereby granted, free of charge, to any person obtaining a copy
4// of this software and associated documentation files (the "Software"), to deal 4// of this software and associated documentation files (the "Software"), to deal
@@ -33,7 +33,7 @@
33// If only two errors are being combined, the Append function may be used 33// If only two errors are being combined, the Append function may be used
34// instead. 34// instead.
35// 35//
36// err = multierr.Combine(reader.Close(), writer.Close()) 36// err = multierr.Append(reader.Close(), writer.Close())
37// 37//
38// This makes it possible to record resource cleanup failures from deferred 38// This makes it possible to record resource cleanup failures from deferred
39// blocks with the help of named return values. 39// blocks with the help of named return values.
@@ -99,8 +99,6 @@ var (
99 // Separator for single-line error messages. 99 // Separator for single-line error messages.
100 _singlelineSeparator = []byte("; ") 100 _singlelineSeparator = []byte("; ")
101 101
102 _newline = []byte("\n")
103
104 // Prefix for multi-line messages 102 // Prefix for multi-line messages
105 _multilinePrefix = []byte("the following errors occurred:") 103 _multilinePrefix = []byte("the following errors occurred:")
106 104
@@ -399,3 +397,53 @@ func Append(left error, right error) error {
399 errors := [2]error{left, right} 397 errors := [2]error{left, right}
400 return fromSlice(errors[0:]) 398 return fromSlice(errors[0:])
401} 399}
400
401// AppendInto appends an error into the destination of an error pointer and
402// returns whether the error being appended was non-nil.
403//
404// var err error
405// multierr.AppendInto(&err, r.Close())
406// multierr.AppendInto(&err, w.Close())
407//
408// The above is equivalent to,
409//
410// err := multierr.Append(r.Close(), w.Close())
411//
412// As AppendInto reports whether the provided error was non-nil, it may be
413// used to build a multierr error in a loop more ergonomically. For example:
414//
415// var err error
416// for line := range lines {
417// var item Item
418// if multierr.AppendInto(&err, parse(line, &item)) {
419// continue
420// }
421// items = append(items, item)
422// }
423//
424// Compare this with a verison that relies solely on Append:
425//
426// var err error
427// for line := range lines {
428// var item Item
429// if parseErr := parse(line, &item); parseErr != nil {
430// err = multierr.Append(err, parseErr)
431// continue
432// }
433// items = append(items, item)
434// }
435func AppendInto(into *error, err error) (errored bool) {
436 if into == nil {
437 // We panic if 'into' is nil. This is not documented above
438 // because suggesting that the pointer must be non-nil may
439 // confuse users into thinking that the error that it points
440 // to must be non-nil.
441 panic("misuse of multierr.AppendInto: into pointer must not be nil")
442 }
443
444 if err == nil {
445 return false
446 }
447 *into = Append(*into, err)
448 return true
449}
diff --git a/vendor/go.uber.org/multierr/glide.lock b/vendor/go.uber.org/multierr/glide.lock
deleted file mode 100644
index f9ea94c..0000000
--- a/vendor/go.uber.org/multierr/glide.lock
+++ /dev/null
@@ -1,19 +0,0 @@
1hash: b53b5e9a84b9cb3cc4b2d0499e23da2feca1eec318ce9bb717ecf35bf24bf221
2updated: 2017-04-10T13:34:45.671678062-07:00
3imports:
4- name: go.uber.org/atomic
5 version: 3b8db5e93c4c02efbc313e17b2e796b0914a01fb
6testImports:
7- name: github.com/davecgh/go-spew
8 version: 6d212800a42e8ab5c146b8ace3490ee17e5225f9
9 subpackages:
10 - spew
11- name: github.com/pmezard/go-difflib
12 version: d8ed2627bdf02c080bf22230dbb337003b7aba2d
13 subpackages:
14 - difflib
15- name: github.com/stretchr/testify
16 version: 69483b4bd14f5845b5a1e55bca19e954e827f1d0
17 subpackages:
18 - assert
19 - require
diff --git a/vendor/go.uber.org/multierr/go.mod b/vendor/go.uber.org/multierr/go.mod
new file mode 100644
index 0000000..5463fac
--- /dev/null
+++ b/vendor/go.uber.org/multierr/go.mod
@@ -0,0 +1,12 @@
1module go.uber.org/multierr
2
3go 1.12
4
5require (
6 github.com/stretchr/testify v1.3.0
7 go.uber.org/atomic v1.5.0
8 go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee
9 golang.org/x/lint v0.0.0-20190930215403-16217165b5de
10 golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5 // indirect
11 honnef.co/go/tools v0.0.1-2019.2.3
12)
diff --git a/vendor/go.uber.org/multierr/go.sum b/vendor/go.uber.org/multierr/go.sum
new file mode 100644
index 0000000..b460913
--- /dev/null
+++ b/vendor/go.uber.org/multierr/go.sum
@@ -0,0 +1,45 @@
1github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ=
2github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
3github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8=
4github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
5github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
6github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
7github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI=
8github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
9github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
10github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
11github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
12github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
13github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
14github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
15github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
16github.com/stretchr/testify v1.3.0 h1:TivCn/peBQ7UY8ooIcPgZFpTNSz0Q2U6UrFlUfqbe0Q=
17github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
18go.uber.org/atomic v1.5.0 h1:OI5t8sDa1Or+q8AeE+yKeB/SDYioSHAgcVljj9JIETY=
19go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ=
20go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee h1:0mgffUl7nfd+FpvXMVz4IDEaUSmT1ysygQC7qYo7sG4=
21go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee/go.mod h1:vJERXedbb3MVM5f9Ejo0C68/HhF8uaILCdgjnY+goOA=
22golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
23golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
24golang.org/x/lint v0.0.0-20190930215403-16217165b5de h1:5hukYrvBGR8/eNkX5mdUezrA6JiaEZDtJb9Ei+1LlBs=
25golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
26golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc=
27golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
28golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
29golang.org/x/net v0.0.0-20190620200207-3b0461eec859 h1:R/3boaszxrf1GEUWTVDzSKVwLmSJpwZ1yqXm8j0v2QI=
30golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
31golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
32golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
33golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
34golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
35golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
36golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
37golang.org/x/tools v0.0.0-20191029041327-9cc4af7d6b2c h1:IGkKhmfzcztjm6gYkykvu/NiS8kaqbCWAEWWAyf8J5U=
38golang.org/x/tools v0.0.0-20191029041327-9cc4af7d6b2c/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
39golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5 h1:hKsoRgsbwY1NafxrwTs+k64bikrLBkAgPir1TNCj3Zs=
40golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
41golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
42gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
43gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI=
44honnef.co/go/tools v0.0.1-2019.2.3 h1:3JgtbtFHMiCmsznwGVTUWbgGov+pVqnlf1dEJTNAXeM=
45honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg=
diff --git a/vendor/go.uber.org/multierr/go113.go b/vendor/go.uber.org/multierr/go113.go
new file mode 100644
index 0000000..264b0ea
--- /dev/null
+++ b/vendor/go.uber.org/multierr/go113.go
@@ -0,0 +1,52 @@
1// Copyright (c) 2019 Uber Technologies, Inc.
2//
3// Permission is hereby granted, free of charge, to any person obtaining a copy
4// of this software and associated documentation files (the "Software"), to deal
5// in the Software without restriction, including without limitation the rights
6// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7// copies of the Software, and to permit persons to whom the Software is
8// furnished to do so, subject to the following conditions:
9//
10// The above copyright notice and this permission notice shall be included in
11// all copies or substantial portions of the Software.
12//
13// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19// THE SOFTWARE.
20
21// +build go1.13
22
23package multierr
24
25import "errors"
26
27// As attempts to find the first error in the error list that matches the type
28// of the value that target points to.
29//
30// This function allows errors.As to traverse the values stored on the
31// multierr error.
32func (merr *multiError) As(target interface{}) bool {
33 for _, err := range merr.Errors() {
34 if errors.As(err, target) {
35 return true
36 }
37 }
38 return false
39}
40
41// Is attempts to match the provided error against errors in the error list.
42//
43// This function allows errors.Is to traverse the values stored on the
44// multierr error.
45func (merr *multiError) Is(target error) bool {
46 for _, err := range merr.Errors() {
47 if errors.Is(err, target) {
48 return true
49 }
50 }
51 return false
52}
diff --git a/vendor/go.uber.org/multierr/tools.go b/vendor/go.uber.org/multierr/tools.go
new file mode 100644
index 0000000..df93f07
--- /dev/null
+++ b/vendor/go.uber.org/multierr/tools.go
@@ -0,0 +1,30 @@
1// Copyright (c) 2019 Uber Technologies, Inc.
2//
3// Permission is hereby granted, free of charge, to any person obtaining a copy
4// of this software and associated documentation files (the "Software"), to deal
5// in the Software without restriction, including without limitation the rights
6// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7// copies of the Software, and to permit persons to whom the Software is
8// furnished to do so, subject to the following conditions:
9//
10// The above copyright notice and this permission notice shall be included in
11// all copies or substantial portions of the Software.
12//
13// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19// THE SOFTWARE.
20
21// +build tools
22
23package multierr
24
25import (
26 // Tools we use during development.
27 _ "go.uber.org/tools/update-license"
28 _ "golang.org/x/lint/golint"
29 _ "honnef.co/go/tools/cmd/staticcheck"
30)
diff --git a/vendor/go.uber.org/tools/LICENSE b/vendor/go.uber.org/tools/LICENSE
new file mode 100644
index 0000000..858e024
--- /dev/null
+++ b/vendor/go.uber.org/tools/LICENSE
@@ -0,0 +1,19 @@
1Copyright (c) 2017 Uber Technologies, Inc.
2
3Permission is hereby granted, free of charge, to any person obtaining a copy
4of this software and associated documentation files (the "Software"), to deal
5in the Software without restriction, including without limitation the rights
6to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7copies of the Software, and to permit persons to whom the Software is
8furnished to do so, subject to the following conditions:
9
10The above copyright notice and this permission notice shall be included in
11all copies or substantial portions of the Software.
12
13THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19THE SOFTWARE.
diff --git a/vendor/go.uber.org/tools/update-license/.gitignore b/vendor/go.uber.org/tools/update-license/.gitignore
new file mode 100644
index 0000000..b167772
--- /dev/null
+++ b/vendor/go.uber.org/tools/update-license/.gitignore
@@ -0,0 +1 @@
update-license
diff --git a/vendor/go.uber.org/tools/update-license/README.md b/vendor/go.uber.org/tools/update-license/README.md
new file mode 100644
index 0000000..5887df1
--- /dev/null
+++ b/vendor/go.uber.org/tools/update-license/README.md
@@ -0,0 +1,24 @@
1# update-license
2
3This is a small tool that updates the license header for Uber's open source Golang files.
4
5## Installation
6
7```
8go get go.uber.org/tools/update-license
9```
10
11## Usage
12
13```
14update-license go_files...
15```
16
17## Further Work
18
19* Support more licenses by name (MIT, Apache 2.0, etc), file path, url (http GET)
20* Support custom owner (not just "Uber Technologies, Inc.")
21* Support more languages than go (cover go, java, js, py to start, along with LICENSE, LICENSE.txt)
22* Talk about removing custom logic for header comments (ie `@generated`, `Code generated by`), it probably makes more sense just to put the license at the top
23* Better detection support for existing licenses so they can be removed
24* Verbose, dry run support
diff --git a/vendor/go.uber.org/tools/update-license/licenses.go b/vendor/go.uber.org/tools/update-license/licenses.go
new file mode 100644
index 0000000..76957c2
--- /dev/null
+++ b/vendor/go.uber.org/tools/update-license/licenses.go
@@ -0,0 +1,56 @@
1// Copyright (c) 2019 Uber Technologies, Inc.
2//
3// Permission is hereby granted, free of charge, to any person obtaining a copy
4// of this software and associated documentation files (the "Software"), to deal
5// in the Software without restriction, including without limitation the rights
6// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7// copies of the Software, and to permit persons to whom the Software is
8// furnished to do so, subject to the following conditions:
9//
10// The above copyright notice and this permission notice shall be included in
11// all copies or substantial portions of the Software.
12//
13// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19// THE SOFTWARE.
20
21package main
22
23var licenseTemplates = map[string]string{
24 "Apache-2.0": `// Copyright {{.Year}} {{.Owner}}
25//
26// Licensed under the Apache License, Version 2.0 (the "License");
27// you may not use this file except in compliance with the License.
28// You may obtain a copy of the License at
29//
30// http://www.apache.org/licenses/LICENSE-2.0
31//
32// Unless required by applicable law or agreed to in writing, software
33// distributed under the License is distributed on an "AS IS" BASIS,
34// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
35// See the License for the specific language governing permissions and
36// limitations under the License.`,
37 "MIT": `// Copyright (c) {{.Year}} {{.Owner}}
38//
39// Permission is hereby granted, free of charge, to any person obtaining a copy
40// of this software and associated documentation files (the "Software"), to deal
41// in the Software without restriction, including without limitation the rights
42// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
43// copies of the Software, and to permit persons to whom the Software is
44// furnished to do so, subject to the following conditions:
45//
46// The above copyright notice and this permission notice shall be included in
47// all copies or substantial portions of the Software.
48//
49// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
50// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
51// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
52// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
53// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
54// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
55// THE SOFTWARE.`,
56}
diff --git a/vendor/go.uber.org/tools/update-license/main.go b/vendor/go.uber.org/tools/update-license/main.go
new file mode 100644
index 0000000..269fd9b
--- /dev/null
+++ b/vendor/go.uber.org/tools/update-license/main.go
@@ -0,0 +1,228 @@
1// Copyright (c) 2019 Uber Technologies, Inc.
2//
3// Permission is hereby granted, free of charge, to any person obtaining a copy
4// of this software and associated documentation files (the "Software"), to deal
5// in the Software without restriction, including without limitation the rights
6// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7// copies of the Software, and to permit persons to whom the Software is
8// furnished to do so, subject to the following conditions:
9//
10// The above copyright notice and this permission notice shall be included in
11// all copies or substantial portions of the Software.
12//
13// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19// THE SOFTWARE.
20
21package main
22
23import (
24 "bytes"
25 "flag"
26 "fmt"
27 "html/template"
28 "io/ioutil"
29 "log"
30 "os"
31 "path/filepath"
32 "sort"
33 "strings"
34 "time"
35)
36
37const (
38 // how many lines to check for an existing copyright
39 // this logic is not great and we should probably do something else
40 // but this was copied from the python script
41 copyrightLineLimit = 5
42 headerPrefix = "// Copyright"
43)
44
45var (
46 flagDryRun = flag.Bool("dry", false, "Do not edit files and just print out what files would be edited")
47 flagOwner = flag.String("owner", "Uber Technologies, Inc.", "Copyright owner")
48 flagLicense = flag.String(
49 "license",
50 "MIT",
51 fmt.Sprintf(
52 "Type of license to use [%s]",
53 strings.Join(validLicenses(), ", "),
54 ),
55 )
56
57 lineSkipPrefixes = []string{
58 "// Code generated by",
59 "// @generated",
60 }
61)
62
63func main() {
64 log.SetFlags(0)
65 log.SetOutput(os.Stdout)
66 log.SetPrefix("")
67 if err := do(); err != nil {
68 log.Fatal(err)
69 }
70}
71
72func do() error {
73 flag.Parse()
74
75 if len(flag.Args()) < 1 {
76 return fmt.Errorf("usage: %s GO_FILES", os.Args[0])
77 }
78
79 return updateFiles(
80 flag.Args(),
81 time.Now().UTC().Year(),
82 *flagLicense,
83 *flagOwner,
84 *flagDryRun,
85 )
86}
87
88func fullLicense(ts string, year int, owner string) string {
89 var buf bytes.Buffer
90 t, err := template.New("").Parse(ts)
91 if err != nil {
92 log.Panic("failed to parse license template", err)
93 }
94
95 data := struct {
96 Year int
97 Owner string
98 }{year, owner}
99 if err := t.Execute(&buf, data); err != nil {
100 log.Panic("failed to execture license template", err)
101 }
102
103 return strings.TrimSpace(buf.String())
104}
105
106// validLicenses grabs all the license templates from the folder
107func validLicenses() []string {
108 res := make([]string, 0, len(licenseTemplates))
109
110 for k := range licenseTemplates {
111 res = append(res, k)
112 }
113
114 sort.Strings(res)
115 return res
116}
117
118func updateFiles(
119 filePaths []string,
120 year int,
121 license string,
122 owner string,
123 dryRun bool,
124) error {
125 if err := checkFilePaths(filePaths); err != nil {
126 return err
127 }
128 for _, filePath := range filePaths {
129 if err := updateFile(filePath, year, license, owner, dryRun); err != nil {
130 return err
131 }
132 }
133 return nil
134}
135
136func checkFilePaths(filePaths []string) error {
137 for _, filePath := range filePaths {
138 if filepath.Ext(filePath) != ".go" {
139 return fmt.Errorf("%s is not a go file", filePath)
140 }
141 }
142 return nil
143}
144
145func updateFile(
146 filePath string,
147 year int,
148 license string,
149 owner string,
150 dryRun bool,
151) error {
152 data, err := ioutil.ReadFile(filePath)
153 if err != nil {
154 return err
155 }
156 newData := updateData(data, year, license, owner)
157 if !bytes.Equal(data, newData) {
158 if dryRun {
159 log.Print(filePath)
160 return nil
161 }
162 // we could do something more complicated so that we do not
163 // need to pass 0644 as the file mode, but in this case it should
164 // never actually be used to create a file since we know the file
165 // already exists, and it's easier to use the ReadFile/WriteFile
166 // logic as it is right now, and since this is just a generation
167 // program, this should be acceptable
168 return ioutil.WriteFile(filePath, newData, 0644)
169 }
170 return nil
171}
172
173func updateData(
174 data []byte,
175 year int,
176 license string,
177 owner string,
178) []byte {
179 licenseText := fullLicense(string(licenseTemplates[license]), year, owner)
180
181 return []byte(
182 strings.Join(
183 updateLines(strings.Split(string(data), "\n"), licenseText),
184 "\n",
185 ),
186 )
187}
188
189// a value in the returned slice may contain newlines itself
190func updateLines(lines []string, license string) []string {
191 for i, line := range lines {
192 if i >= copyrightLineLimit {
193 break
194 }
195 if strings.HasPrefix(line, headerPrefix) {
196 // assume that the new license text always starts with the copyright
197 // string. Pretty safe to assume, right? RIGHT?
198 lines[i] = strings.Split(license, "\n")[0]
199 return lines
200 }
201 }
202 return addToLines(lines, license)
203}
204
205// a value in the returned slice may contain newlines itself
206func addToLines(lines []string, license string) []string {
207 i := 0
208 for len(lines) > i && lineContainsSkipPrefix(lines[i]) {
209 i++
210 // skip comments under the generated line too
211 for strings.HasPrefix(lines[i], "//") {
212 i++
213 }
214 }
215 if i == 0 {
216 return append([]string{license, ""}, lines...)
217 }
218 return append(lines[0:i], append([]string{"", license}, lines[i:]...)...)
219}
220
221func lineContainsSkipPrefix(line string) bool {
222 for _, skipPrefix := range lineSkipPrefixes {
223 if strings.HasPrefix(line, skipPrefix) {
224 return true
225 }
226 }
227 return false
228}
diff --git a/vendor/golang.org/x/lint/.travis.yml b/vendor/golang.org/x/lint/.travis.yml
new file mode 100644
index 0000000..50553eb
--- /dev/null
+++ b/vendor/golang.org/x/lint/.travis.yml
@@ -0,0 +1,19 @@
1sudo: false
2language: go
3go:
4 - 1.10.x
5 - 1.11.x
6 - master
7
8go_import_path: golang.org/x/lint
9
10install:
11 - go get -t -v ./...
12
13script:
14 - go test -v -race ./...
15
16matrix:
17 allow_failures:
18 - go: master
19 fast_finish: true
diff --git a/vendor/golang.org/x/lint/CONTRIBUTING.md b/vendor/golang.org/x/lint/CONTRIBUTING.md
new file mode 100644
index 0000000..1fadda6
--- /dev/null
+++ b/vendor/golang.org/x/lint/CONTRIBUTING.md
@@ -0,0 +1,15 @@
1# Contributing to Golint
2
3## Before filing an issue:
4
5### Are you having trouble building golint?
6
7Check you have the latest version of its dependencies. Run
8```
9go get -u golang.org/x/lint/golint
10```
11If you still have problems, consider searching for existing issues before filing a new issue.
12
13## Before sending a pull request:
14
15Have you understood the purpose of golint? Make sure to carefully read `README`.
diff --git a/vendor/golang.org/x/lint/LICENSE b/vendor/golang.org/x/lint/LICENSE
new file mode 100644
index 0000000..65d761b
--- /dev/null
+++ b/vendor/golang.org/x/lint/LICENSE
@@ -0,0 +1,27 @@
1Copyright (c) 2013 The Go Authors. All rights reserved.
2
3Redistribution and use in source and binary forms, with or without
4modification, are permitted provided that the following conditions are
5met:
6
7 * Redistributions of source code must retain the above copyright
8notice, this list of conditions and the following disclaimer.
9 * Redistributions in binary form must reproduce the above
10copyright notice, this list of conditions and the following disclaimer
11in the documentation and/or other materials provided with the
12distribution.
13 * Neither the name of Google Inc. nor the names of its
14contributors may be used to endorse or promote products derived from
15this software without specific prior written permission.
16
17THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
18"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
19LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
20A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
21OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
22SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
23LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
24DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
25THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
26(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
27OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/vendor/golang.org/x/lint/README.md b/vendor/golang.org/x/lint/README.md
new file mode 100644
index 0000000..4968b13
--- /dev/null
+++ b/vendor/golang.org/x/lint/README.md
@@ -0,0 +1,88 @@
1Golint is a linter for Go source code.
2
3[![Build Status](https://travis-ci.org/golang/lint.svg?branch=master)](https://travis-ci.org/golang/lint)
4
5## Installation
6
7Golint requires a
8[supported release of Go](https://golang.org/doc/devel/release.html#policy).
9
10 go get -u golang.org/x/lint/golint
11
12To find out where `golint` was installed you can run `go list -f {{.Target}} golang.org/x/lint/golint`. For `golint` to be used globally add that directory to the `$PATH` environment setting.
13
14## Usage
15
16Invoke `golint` with one or more filenames, directories, or packages named
17by its import path. Golint uses the same
18[import path syntax](https://golang.org/cmd/go/#hdr-Import_path_syntax) as
19the `go` command and therefore
20also supports relative import paths like `./...`. Additionally the `...`
21wildcard can be used as suffix on relative and absolute file paths to recurse
22into them.
23
24The output of this tool is a list of suggestions in Vim quickfix format,
25which is accepted by lots of different editors.
26
27## Purpose
28
29Golint differs from gofmt. Gofmt reformats Go source code, whereas
30golint prints out style mistakes.
31
32Golint differs from govet. Govet is concerned with correctness, whereas
33golint is concerned with coding style. Golint is in use at Google, and it
34seeks to match the accepted style of the open source Go project.
35
36The suggestions made by golint are exactly that: suggestions.
37Golint is not perfect, and has both false positives and false negatives.
38Do not treat its output as a gold standard. We will not be adding pragmas
39or other knobs to suppress specific warnings, so do not expect or require
40code to be completely "lint-free".
41In short, this tool is not, and will never be, trustworthy enough for its
42suggestions to be enforced automatically, for example as part of a build process.
43Golint makes suggestions for many of the mechanically checkable items listed in
44[Effective Go](https://golang.org/doc/effective_go.html) and the
45[CodeReviewComments wiki page](https://golang.org/wiki/CodeReviewComments).
46
47## Scope
48
49Golint is meant to carry out the stylistic conventions put forth in
50[Effective Go](https://golang.org/doc/effective_go.html) and
51[CodeReviewComments](https://golang.org/wiki/CodeReviewComments).
52Changes that are not aligned with those documents will not be considered.
53
54## Contributions
55
56Contributions to this project are welcome provided they are [in scope](#scope),
57though please send mail before starting work on anything major.
58Contributors retain their copyright, so we need you to fill out
59[a short form](https://developers.google.com/open-source/cla/individual)
60before we can accept your contribution.
61
62## Vim
63
64Add this to your ~/.vimrc:
65
66 set rtp+=$GOPATH/src/golang.org/x/lint/misc/vim
67
68If you have multiple entries in your GOPATH, replace `$GOPATH` with the right value.
69
70Running `:Lint` will run golint on the current file and populate the quickfix list.
71
72Optionally, add this to your `~/.vimrc` to automatically run `golint` on `:w`
73
74 autocmd BufWritePost,FileWritePost *.go execute 'Lint' | cwindow
75
76
77## Emacs
78
79Add this to your `.emacs` file:
80
81 (add-to-list 'load-path (concat (getenv "GOPATH") "/src/golang.org/x/lint/misc/emacs/"))
82 (require 'golint)
83
84If you have multiple entries in your GOPATH, replace `$GOPATH` with the right value.
85
86Running M-x golint will run golint on the current file.
87
88For more usage, see [Compilation-Mode](http://www.gnu.org/software/emacs/manual/html_node/emacs/Compilation-Mode.html).
diff --git a/vendor/golang.org/x/lint/go.mod b/vendor/golang.org/x/lint/go.mod
new file mode 100644
index 0000000..b32309c
--- /dev/null
+++ b/vendor/golang.org/x/lint/go.mod
@@ -0,0 +1,5 @@
1module golang.org/x/lint
2
3go 1.11
4
5require golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7
diff --git a/vendor/golang.org/x/lint/go.sum b/vendor/golang.org/x/lint/go.sum
new file mode 100644
index 0000000..2ad45ca
--- /dev/null
+++ b/vendor/golang.org/x/lint/go.sum
@@ -0,0 +1,12 @@
1golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
2golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
3golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg=
4golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
5golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
6golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
7golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
8golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
9golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
10golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7 h1:EBZoQjiKKPaLbPrbpssUfuHtwM6KV/vb4U85g/cigFY=
11golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
12golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
diff --git a/vendor/golang.org/x/lint/golint/golint.go b/vendor/golang.org/x/lint/golint/golint.go
new file mode 100644
index 0000000..ac024b6
--- /dev/null
+++ b/vendor/golang.org/x/lint/golint/golint.go
@@ -0,0 +1,159 @@
1// Copyright (c) 2013 The Go Authors. All rights reserved.
2//
3// Use of this source code is governed by a BSD-style
4// license that can be found in the LICENSE file or at
5// https://developers.google.com/open-source/licenses/bsd.
6
7// golint lints the Go source files named on its command line.
8package main
9
10import (
11 "flag"
12 "fmt"
13 "go/build"
14 "io/ioutil"
15 "os"
16 "path/filepath"
17 "strings"
18
19 "golang.org/x/lint"
20)
21
22var (
23 minConfidence = flag.Float64("min_confidence", 0.8, "minimum confidence of a problem to print it")
24 setExitStatus = flag.Bool("set_exit_status", false, "set exit status to 1 if any issues are found")
25 suggestions int
26)
27
28func usage() {
29 fmt.Fprintf(os.Stderr, "Usage of %s:\n", os.Args[0])
30 fmt.Fprintf(os.Stderr, "\tgolint [flags] # runs on package in current directory\n")
31 fmt.Fprintf(os.Stderr, "\tgolint [flags] [packages]\n")
32 fmt.Fprintf(os.Stderr, "\tgolint [flags] [directories] # where a '/...' suffix includes all sub-directories\n")
33 fmt.Fprintf(os.Stderr, "\tgolint [flags] [files] # all must belong to a single package\n")
34 fmt.Fprintf(os.Stderr, "Flags:\n")
35 flag.PrintDefaults()
36}
37
38func main() {
39 flag.Usage = usage
40 flag.Parse()
41
42 if flag.NArg() == 0 {
43 lintDir(".")
44 } else {
45 // dirsRun, filesRun, and pkgsRun indicate whether golint is applied to
46 // directory, file or package targets. The distinction affects which
47 // checks are run. It is no valid to mix target types.
48 var dirsRun, filesRun, pkgsRun int
49 var args []string
50 for _, arg := range flag.Args() {
51 if strings.HasSuffix(arg, "/...") && isDir(arg[:len(arg)-len("/...")]) {
52 dirsRun = 1
53 for _, dirname := range allPackagesInFS(arg) {
54 args = append(args, dirname)
55 }
56 } else if isDir(arg) {
57 dirsRun = 1
58 args = append(args, arg)
59 } else if exists(arg) {
60 filesRun = 1
61 args = append(args, arg)
62 } else {
63 pkgsRun = 1
64 args = append(args, arg)
65 }
66 }
67
68 if dirsRun+filesRun+pkgsRun != 1 {
69 usage()
70 os.Exit(2)
71 }
72 switch {
73 case dirsRun == 1:
74 for _, dir := range args {
75 lintDir(dir)
76 }
77 case filesRun == 1:
78 lintFiles(args...)
79 case pkgsRun == 1:
80 for _, pkg := range importPaths(args) {
81 lintPackage(pkg)
82 }
83 }
84 }
85
86 if *setExitStatus && suggestions > 0 {
87 fmt.Fprintf(os.Stderr, "Found %d lint suggestions; failing.\n", suggestions)
88 os.Exit(1)
89 }
90}
91
92func isDir(filename string) bool {
93 fi, err := os.Stat(filename)
94 return err == nil && fi.IsDir()
95}
96
97func exists(filename string) bool {
98 _, err := os.Stat(filename)
99 return err == nil
100}
101
102func lintFiles(filenames ...string) {
103 files := make(map[string][]byte)
104 for _, filename := range filenames {
105 src, err := ioutil.ReadFile(filename)
106 if err != nil {
107 fmt.Fprintln(os.Stderr, err)
108 continue
109 }
110 files[filename] = src
111 }
112
113 l := new(lint.Linter)
114 ps, err := l.LintFiles(files)
115 if err != nil {
116 fmt.Fprintf(os.Stderr, "%v\n", err)
117 return
118 }
119 for _, p := range ps {
120 if p.Confidence >= *minConfidence {
121 fmt.Printf("%v: %s\n", p.Position, p.Text)
122 suggestions++
123 }
124 }
125}
126
127func lintDir(dirname string) {
128 pkg, err := build.ImportDir(dirname, 0)
129 lintImportedPackage(pkg, err)
130}
131
132func lintPackage(pkgname string) {
133 pkg, err := build.Import(pkgname, ".", 0)
134 lintImportedPackage(pkg, err)
135}
136
137func lintImportedPackage(pkg *build.Package, err error) {
138 if err != nil {
139 if _, nogo := err.(*build.NoGoError); nogo {
140 // Don't complain if the failure is due to no Go source files.
141 return
142 }
143 fmt.Fprintln(os.Stderr, err)
144 return
145 }
146
147 var files []string
148 files = append(files, pkg.GoFiles...)
149 files = append(files, pkg.CgoFiles...)
150 files = append(files, pkg.TestGoFiles...)
151 if pkg.Dir != "." {
152 for i, f := range files {
153 files[i] = filepath.Join(pkg.Dir, f)
154 }
155 }
156 // TODO(dsymonds): Do foo_test too (pkg.XTestGoFiles)
157
158 lintFiles(files...)
159}
diff --git a/vendor/golang.org/x/lint/golint/import.go b/vendor/golang.org/x/lint/golint/import.go
new file mode 100644
index 0000000..2ba9dea
--- /dev/null
+++ b/vendor/golang.org/x/lint/golint/import.go
@@ -0,0 +1,309 @@
1package main
2
3/*
4
5This file holds a direct copy of the import path matching code of
6https://github.com/golang/go/blob/master/src/cmd/go/main.go. It can be
7replaced when https://golang.org/issue/8768 is resolved.
8
9It has been updated to follow upstream changes in a few ways.
10
11*/
12
13import (
14 "fmt"
15 "go/build"
16 "log"
17 "os"
18 "path"
19 "path/filepath"
20 "regexp"
21 "runtime"
22 "strings"
23)
24
25var (
26 buildContext = build.Default
27 goroot = filepath.Clean(runtime.GOROOT())
28 gorootSrc = filepath.Join(goroot, "src")
29)
30
31// importPathsNoDotExpansion returns the import paths to use for the given
32// command line, but it does no ... expansion.
33func importPathsNoDotExpansion(args []string) []string {
34 if len(args) == 0 {
35 return []string{"."}
36 }
37 var out []string
38 for _, a := range args {
39 // Arguments are supposed to be import paths, but
40 // as a courtesy to Windows developers, rewrite \ to /
41 // in command-line arguments. Handles .\... and so on.
42 if filepath.Separator == '\\' {
43 a = strings.Replace(a, `\`, `/`, -1)
44 }
45
46 // Put argument in canonical form, but preserve leading ./.
47 if strings.HasPrefix(a, "./") {
48 a = "./" + path.Clean(a)
49 if a == "./." {
50 a = "."
51 }
52 } else {
53 a = path.Clean(a)
54 }
55 if a == "all" || a == "std" {
56 out = append(out, allPackages(a)...)
57 continue
58 }
59 out = append(out, a)
60 }
61 return out
62}
63
64// importPaths returns the import paths to use for the given command line.
65func importPaths(args []string) []string {
66 args = importPathsNoDotExpansion(args)
67 var out []string
68 for _, a := range args {
69 if strings.Contains(a, "...") {
70 if build.IsLocalImport(a) {
71 out = append(out, allPackagesInFS(a)...)
72 } else {
73 out = append(out, allPackages(a)...)
74 }
75 continue
76 }
77 out = append(out, a)
78 }
79 return out
80}
81
82// matchPattern(pattern)(name) reports whether
83// name matches pattern. Pattern is a limited glob
84// pattern in which '...' means 'any string' and there
85// is no other special syntax.
86func matchPattern(pattern string) func(name string) bool {
87 re := regexp.QuoteMeta(pattern)
88 re = strings.Replace(re, `\.\.\.`, `.*`, -1)
89 // Special case: foo/... matches foo too.
90 if strings.HasSuffix(re, `/.*`) {
91 re = re[:len(re)-len(`/.*`)] + `(/.*)?`
92 }
93 reg := regexp.MustCompile(`^` + re + `$`)
94 return func(name string) bool {
95 return reg.MatchString(name)
96 }
97}
98
99// hasPathPrefix reports whether the path s begins with the
100// elements in prefix.
101func hasPathPrefix(s, prefix string) bool {
102 switch {
103 default:
104 return false
105 case len(s) == len(prefix):
106 return s == prefix
107 case len(s) > len(prefix):
108 if prefix != "" && prefix[len(prefix)-1] == '/' {
109 return strings.HasPrefix(s, prefix)
110 }
111 return s[len(prefix)] == '/' && s[:len(prefix)] == prefix
112 }
113}
114
115// treeCanMatchPattern(pattern)(name) reports whether
116// name or children of name can possibly match pattern.
117// Pattern is the same limited glob accepted by matchPattern.
118func treeCanMatchPattern(pattern string) func(name string) bool {
119 wildCard := false
120 if i := strings.Index(pattern, "..."); i >= 0 {
121 wildCard = true
122 pattern = pattern[:i]
123 }
124 return func(name string) bool {
125 return len(name) <= len(pattern) && hasPathPrefix(pattern, name) ||
126 wildCard && strings.HasPrefix(name, pattern)
127 }
128}
129
130// allPackages returns all the packages that can be found
131// under the $GOPATH directories and $GOROOT matching pattern.
132// The pattern is either "all" (all packages), "std" (standard packages)
133// or a path including "...".
134func allPackages(pattern string) []string {
135 pkgs := matchPackages(pattern)
136 if len(pkgs) == 0 {
137 fmt.Fprintf(os.Stderr, "warning: %q matched no packages\n", pattern)
138 }
139 return pkgs
140}
141
142func matchPackages(pattern string) []string {
143 match := func(string) bool { return true }
144 treeCanMatch := func(string) bool { return true }
145 if pattern != "all" && pattern != "std" {
146 match = matchPattern(pattern)
147 treeCanMatch = treeCanMatchPattern(pattern)
148 }
149
150 have := map[string]bool{
151 "builtin": true, // ignore pseudo-package that exists only for documentation
152 }
153 if !buildContext.CgoEnabled {
154 have["runtime/cgo"] = true // ignore during walk
155 }
156 var pkgs []string
157
158 // Commands
159 cmd := filepath.Join(goroot, "src/cmd") + string(filepath.Separator)
160 filepath.Walk(cmd, func(path string, fi os.FileInfo, err error) error {
161 if err != nil || !fi.IsDir() || path == cmd {
162 return nil
163 }
164 name := path[len(cmd):]
165 if !treeCanMatch(name) {
166 return filepath.SkipDir
167 }
168 // Commands are all in cmd/, not in subdirectories.
169 if strings.Contains(name, string(filepath.Separator)) {
170 return filepath.SkipDir
171 }
172
173 // We use, e.g., cmd/gofmt as the pseudo import path for gofmt.
174 name = "cmd/" + name
175 if have[name] {
176 return nil
177 }
178 have[name] = true
179 if !match(name) {
180 return nil
181 }
182 _, err = buildContext.ImportDir(path, 0)
183 if err != nil {
184 if _, noGo := err.(*build.NoGoError); !noGo {
185 log.Print(err)
186 }
187 return nil
188 }
189 pkgs = append(pkgs, name)
190 return nil
191 })
192
193 for _, src := range buildContext.SrcDirs() {
194 if (pattern == "std" || pattern == "cmd") && src != gorootSrc {
195 continue
196 }
197 src = filepath.Clean(src) + string(filepath.Separator)
198 root := src
199 if pattern == "cmd" {
200 root += "cmd" + string(filepath.Separator)
201 }
202 filepath.Walk(root, func(path string, fi os.FileInfo, err error) error {
203 if err != nil || !fi.IsDir() || path == src {
204 return nil
205 }
206
207 // Avoid .foo, _foo, and testdata directory trees.
208 _, elem := filepath.Split(path)
209 if strings.HasPrefix(elem, ".") || strings.HasPrefix(elem, "_") || elem == "testdata" {
210 return filepath.SkipDir
211 }
212
213 name := filepath.ToSlash(path[len(src):])
214 if pattern == "std" && (strings.Contains(name, ".") || name == "cmd") {
215 // The name "std" is only the standard library.
216 // If the name is cmd, it's the root of the command tree.
217 return filepath.SkipDir
218 }
219 if !treeCanMatch(name) {
220 return filepath.SkipDir
221 }
222 if have[name] {
223 return nil
224 }
225 have[name] = true
226 if !match(name) {
227 return nil
228 }
229 _, err = buildContext.ImportDir(path, 0)
230 if err != nil {
231 if _, noGo := err.(*build.NoGoError); noGo {
232 return nil
233 }
234 }
235 pkgs = append(pkgs, name)
236 return nil
237 })
238 }
239 return pkgs
240}
241
242// allPackagesInFS is like allPackages but is passed a pattern
243// beginning ./ or ../, meaning it should scan the tree rooted
244// at the given directory. There are ... in the pattern too.
245func allPackagesInFS(pattern string) []string {
246 pkgs := matchPackagesInFS(pattern)
247 if len(pkgs) == 0 {
248 fmt.Fprintf(os.Stderr, "warning: %q matched no packages\n", pattern)
249 }
250 return pkgs
251}
252
253func matchPackagesInFS(pattern string) []string {
254 // Find directory to begin the scan.
255 // Could be smarter but this one optimization
256 // is enough for now, since ... is usually at the
257 // end of a path.
258 i := strings.Index(pattern, "...")
259 dir, _ := path.Split(pattern[:i])
260
261 // pattern begins with ./ or ../.
262 // path.Clean will discard the ./ but not the ../.
263 // We need to preserve the ./ for pattern matching
264 // and in the returned import paths.
265 prefix := ""
266 if strings.HasPrefix(pattern, "./") {
267 prefix = "./"
268 }
269 match := matchPattern(pattern)
270
271 var pkgs []string
272 filepath.Walk(dir, func(path string, fi os.FileInfo, err error) error {
273 if err != nil || !fi.IsDir() {
274 return nil
275 }
276 if path == dir {
277 // filepath.Walk starts at dir and recurses. For the recursive case,
278 // the path is the result of filepath.Join, which calls filepath.Clean.
279 // The initial case is not Cleaned, though, so we do this explicitly.
280 //
281 // This converts a path like "./io/" to "io". Without this step, running
282 // "cd $GOROOT/src/pkg; go list ./io/..." would incorrectly skip the io
283 // package, because prepending the prefix "./" to the unclean path would
284 // result in "././io", and match("././io") returns false.
285 path = filepath.Clean(path)
286 }
287
288 // Avoid .foo, _foo, and testdata directory trees, but do not avoid "." or "..".
289 _, elem := filepath.Split(path)
290 dot := strings.HasPrefix(elem, ".") && elem != "." && elem != ".."
291 if dot || strings.HasPrefix(elem, "_") || elem == "testdata" {
292 return filepath.SkipDir
293 }
294
295 name := prefix + filepath.ToSlash(path)
296 if !match(name) {
297 return nil
298 }
299 if _, err = build.ImportDir(path, 0); err != nil {
300 if _, noGo := err.(*build.NoGoError); !noGo {
301 log.Print(err)
302 }
303 return nil
304 }
305 pkgs = append(pkgs, name)
306 return nil
307 })
308 return pkgs
309}
diff --git a/vendor/golang.org/x/lint/golint/importcomment.go b/vendor/golang.org/x/lint/golint/importcomment.go
new file mode 100644
index 0000000..d5b32f7
--- /dev/null
+++ b/vendor/golang.org/x/lint/golint/importcomment.go
@@ -0,0 +1,13 @@
1// Copyright (c) 2018 The Go Authors. All rights reserved.
2//
3// Use of this source code is governed by a BSD-style
4// license that can be found in the LICENSE file or at
5// https://developers.google.com/open-source/licenses/bsd.
6
7// +build go1.12
8
9// Require use of the correct import path only for Go 1.12+ users, so
10// any breakages coincide with people updating their CI configs or
11// whatnot.
12
13package main // import "golang.org/x/lint/golint"
diff --git a/vendor/golang.org/x/lint/lint.go b/vendor/golang.org/x/lint/lint.go
new file mode 100644
index 0000000..532a75a
--- /dev/null
+++ b/vendor/golang.org/x/lint/lint.go
@@ -0,0 +1,1614 @@
1// Copyright (c) 2013 The Go Authors. All rights reserved.
2//
3// Use of this source code is governed by a BSD-style
4// license that can be found in the LICENSE file or at
5// https://developers.google.com/open-source/licenses/bsd.
6
7// Package lint contains a linter for Go source code.
8package lint // import "golang.org/x/lint"
9
10import (
11 "bufio"
12 "bytes"
13 "fmt"
14 "go/ast"
15 "go/parser"
16 "go/printer"
17 "go/token"
18 "go/types"
19 "regexp"
20 "sort"
21 "strconv"
22 "strings"
23 "unicode"
24 "unicode/utf8"
25
26 "golang.org/x/tools/go/ast/astutil"
27 "golang.org/x/tools/go/gcexportdata"
28)
29
30const styleGuideBase = "https://golang.org/wiki/CodeReviewComments"
31
32// A Linter lints Go source code.
33type Linter struct {
34}
35
36// Problem represents a problem in some source code.
37type Problem struct {
38 Position token.Position // position in source file
39 Text string // the prose that describes the problem
40 Link string // (optional) the link to the style guide for the problem
41 Confidence float64 // a value in (0,1] estimating the confidence in this problem's correctness
42 LineText string // the source line
43 Category string // a short name for the general category of the problem
44
45 // If the problem has a suggested fix (the minority case),
46 // ReplacementLine is a full replacement for the relevant line of the source file.
47 ReplacementLine string
48}
49
50func (p *Problem) String() string {
51 if p.Link != "" {
52 return p.Text + "\n\n" + p.Link
53 }
54 return p.Text
55}
56
57type byPosition []Problem
58
59func (p byPosition) Len() int { return len(p) }
60func (p byPosition) Swap(i, j int) { p[i], p[j] = p[j], p[i] }
61
62func (p byPosition) Less(i, j int) bool {
63 pi, pj := p[i].Position, p[j].Position
64
65 if pi.Filename != pj.Filename {
66 return pi.Filename < pj.Filename
67 }
68 if pi.Line != pj.Line {
69 return pi.Line < pj.Line
70 }
71 if pi.Column != pj.Column {
72 return pi.Column < pj.Column
73 }
74
75 return p[i].Text < p[j].Text
76}
77
78// Lint lints src.
79func (l *Linter) Lint(filename string, src []byte) ([]Problem, error) {
80 return l.LintFiles(map[string][]byte{filename: src})
81}
82
83// LintFiles lints a set of files of a single package.
84// The argument is a map of filename to source.
85func (l *Linter) LintFiles(files map[string][]byte) ([]Problem, error) {
86 pkg := &pkg{
87 fset: token.NewFileSet(),
88 files: make(map[string]*file),
89 }
90 var pkgName string
91 for filename, src := range files {
92 if isGenerated(src) {
93 continue // See issue #239
94 }
95 f, err := parser.ParseFile(pkg.fset, filename, src, parser.ParseComments)
96 if err != nil {
97 return nil, err
98 }
99 if pkgName == "" {
100 pkgName = f.Name.Name
101 } else if f.Name.Name != pkgName {
102 return nil, fmt.Errorf("%s is in package %s, not %s", filename, f.Name.Name, pkgName)
103 }
104 pkg.files[filename] = &file{
105 pkg: pkg,
106 f: f,
107 fset: pkg.fset,
108 src: src,
109 filename: filename,
110 }
111 }
112 if len(pkg.files) == 0 {
113 return nil, nil
114 }
115 return pkg.lint(), nil
116}
117
118var (
119 genHdr = []byte("// Code generated ")
120 genFtr = []byte(" DO NOT EDIT.")
121)
122
123// isGenerated reports whether the source file is generated code
124// according the rules from https://golang.org/s/generatedcode.
125func isGenerated(src []byte) bool {
126 sc := bufio.NewScanner(bytes.NewReader(src))
127 for sc.Scan() {
128 b := sc.Bytes()
129 if bytes.HasPrefix(b, genHdr) && bytes.HasSuffix(b, genFtr) && len(b) >= len(genHdr)+len(genFtr) {
130 return true
131 }
132 }
133 return false
134}
135
136// pkg represents a package being linted.
137type pkg struct {
138 fset *token.FileSet
139 files map[string]*file
140
141 typesPkg *types.Package
142 typesInfo *types.Info
143
144 // sortable is the set of types in the package that implement sort.Interface.
145 sortable map[string]bool
146 // main is whether this is a "main" package.
147 main bool
148
149 problems []Problem
150}
151
152func (p *pkg) lint() []Problem {
153 if err := p.typeCheck(); err != nil {
154 /* TODO(dsymonds): Consider reporting these errors when golint operates on entire packages.
155 if e, ok := err.(types.Error); ok {
156 pos := p.fset.Position(e.Pos)
157 conf := 1.0
158 if strings.Contains(e.Msg, "can't find import: ") {
159 // Golint is probably being run in a context that doesn't support
160 // typechecking (e.g. package files aren't found), so don't warn about it.
161 conf = 0
162 }
163 if conf > 0 {
164 p.errorfAt(pos, conf, category("typechecking"), e.Msg)
165 }
166
167 // TODO(dsymonds): Abort if !e.Soft?
168 }
169 */
170 }
171
172 p.scanSortable()
173 p.main = p.isMain()
174
175 for _, f := range p.files {
176 f.lint()
177 }
178
179 sort.Sort(byPosition(p.problems))
180
181 return p.problems
182}
183
184// file represents a file being linted.
185type file struct {
186 pkg *pkg
187 f *ast.File
188 fset *token.FileSet
189 src []byte
190 filename string
191}
192
193func (f *file) isTest() bool { return strings.HasSuffix(f.filename, "_test.go") }
194
195func (f *file) lint() {
196 f.lintPackageComment()
197 f.lintImports()
198 f.lintBlankImports()
199 f.lintExported()
200 f.lintNames()
201 f.lintElses()
202 f.lintRanges()
203 f.lintErrorf()
204 f.lintErrors()
205 f.lintErrorStrings()
206 f.lintReceiverNames()
207 f.lintIncDec()
208 f.lintErrorReturn()
209 f.lintUnexportedReturn()
210 f.lintTimeNames()
211 f.lintContextKeyTypes()
212 f.lintContextArgs()
213}
214
215type link string
216type category string
217
218// The variadic arguments may start with link and category types,
219// and must end with a format string and any arguments.
220// It returns the new Problem.
221func (f *file) errorf(n ast.Node, confidence float64, args ...interface{}) *Problem {
222 pos := f.fset.Position(n.Pos())
223 if pos.Filename == "" {
224 pos.Filename = f.filename
225 }
226 return f.pkg.errorfAt(pos, confidence, args...)
227}
228
229func (p *pkg) errorfAt(pos token.Position, confidence float64, args ...interface{}) *Problem {
230 problem := Problem{
231 Position: pos,
232 Confidence: confidence,
233 }
234 if pos.Filename != "" {
235 // The file might not exist in our mapping if a //line directive was encountered.
236 if f, ok := p.files[pos.Filename]; ok {
237 problem.LineText = srcLine(f.src, pos)
238 }
239 }
240
241argLoop:
242 for len(args) > 1 { // always leave at least the format string in args
243 switch v := args[0].(type) {
244 case link:
245 problem.Link = string(v)
246 case category:
247 problem.Category = string(v)
248 default:
249 break argLoop
250 }
251 args = args[1:]
252 }
253
254 problem.Text = fmt.Sprintf(args[0].(string), args[1:]...)
255
256 p.problems = append(p.problems, problem)
257 return &p.problems[len(p.problems)-1]
258}
259
260var newImporter = func(fset *token.FileSet) types.ImporterFrom {
261 return gcexportdata.NewImporter(fset, make(map[string]*types.Package))
262}
263
264func (p *pkg) typeCheck() error {
265 config := &types.Config{
266 // By setting a no-op error reporter, the type checker does as much work as possible.
267 Error: func(error) {},
268 Importer: newImporter(p.fset),
269 }
270 info := &types.Info{
271 Types: make(map[ast.Expr]types.TypeAndValue),
272 Defs: make(map[*ast.Ident]types.Object),
273 Uses: make(map[*ast.Ident]types.Object),
274 Scopes: make(map[ast.Node]*types.Scope),
275 }
276 var anyFile *file
277 var astFiles []*ast.File
278 for _, f := range p.files {
279 anyFile = f
280 astFiles = append(astFiles, f.f)
281 }
282 pkg, err := config.Check(anyFile.f.Name.Name, p.fset, astFiles, info)
283 // Remember the typechecking info, even if config.Check failed,
284 // since we will get partial information.
285 p.typesPkg = pkg
286 p.typesInfo = info
287 return err
288}
289
290func (p *pkg) typeOf(expr ast.Expr) types.Type {
291 if p.typesInfo == nil {
292 return nil
293 }
294 return p.typesInfo.TypeOf(expr)
295}
296
297func (p *pkg) isNamedType(typ types.Type, importPath, name string) bool {
298 n, ok := typ.(*types.Named)
299 if !ok {
300 return false
301 }
302 tn := n.Obj()
303 return tn != nil && tn.Pkg() != nil && tn.Pkg().Path() == importPath && tn.Name() == name
304}
305
306// scopeOf returns the tightest scope encompassing id.
307func (p *pkg) scopeOf(id *ast.Ident) *types.Scope {
308 var scope *types.Scope
309 if obj := p.typesInfo.ObjectOf(id); obj != nil {
310 scope = obj.Parent()
311 }
312 if scope == p.typesPkg.Scope() {
313 // We were given a top-level identifier.
314 // Use the file-level scope instead of the package-level scope.
315 pos := id.Pos()
316 for _, f := range p.files {
317 if f.f.Pos() <= pos && pos < f.f.End() {
318 scope = p.typesInfo.Scopes[f.f]
319 break
320 }
321 }
322 }
323 return scope
324}
325
326func (p *pkg) scanSortable() {
327 p.sortable = make(map[string]bool)
328
329 // bitfield for which methods exist on each type.
330 const (
331 Len = 1 << iota
332 Less
333 Swap
334 )
335 nmap := map[string]int{"Len": Len, "Less": Less, "Swap": Swap}
336 has := make(map[string]int)
337 for _, f := range p.files {
338 f.walk(func(n ast.Node) bool {
339 fn, ok := n.(*ast.FuncDecl)
340 if !ok || fn.Recv == nil || len(fn.Recv.List) == 0 {
341 return true
342 }
343 // TODO(dsymonds): We could check the signature to be more precise.
344 recv := receiverType(fn)
345 if i, ok := nmap[fn.Name.Name]; ok {
346 has[recv] |= i
347 }
348 return false
349 })
350 }
351 for typ, ms := range has {
352 if ms == Len|Less|Swap {
353 p.sortable[typ] = true
354 }
355 }
356}
357
358func (p *pkg) isMain() bool {
359 for _, f := range p.files {
360 if f.isMain() {
361 return true
362 }
363 }
364 return false
365}
366
367func (f *file) isMain() bool {
368 if f.f.Name.Name == "main" {
369 return true
370 }
371 return false
372}
373
374// lintPackageComment checks package comments. It complains if
375// there is no package comment, or if it is not of the right form.
376// This has a notable false positive in that a package comment
377// could rightfully appear in a different file of the same package,
378// but that's not easy to fix since this linter is file-oriented.
379func (f *file) lintPackageComment() {
380 if f.isTest() {
381 return
382 }
383
384 const ref = styleGuideBase + "#package-comments"
385 prefix := "Package " + f.f.Name.Name + " "
386
387 // Look for a detached package comment.
388 // First, scan for the last comment that occurs before the "package" keyword.
389 var lastCG *ast.CommentGroup
390 for _, cg := range f.f.Comments {
391 if cg.Pos() > f.f.Package {
392 // Gone past "package" keyword.
393 break
394 }
395 lastCG = cg
396 }
397 if lastCG != nil && strings.HasPrefix(lastCG.Text(), prefix) {
398 endPos := f.fset.Position(lastCG.End())
399 pkgPos := f.fset.Position(f.f.Package)
400 if endPos.Line+1 < pkgPos.Line {
401 // There isn't a great place to anchor this error;
402 // the start of the blank lines between the doc and the package statement
403 // is at least pointing at the location of the problem.
404 pos := token.Position{
405 Filename: endPos.Filename,
406 // Offset not set; it is non-trivial, and doesn't appear to be needed.
407 Line: endPos.Line + 1,
408 Column: 1,
409 }
410 f.pkg.errorfAt(pos, 0.9, link(ref), category("comments"), "package comment is detached; there should be no blank lines between it and the package statement")
411 return
412 }
413 }
414
415 if f.f.Doc == nil {
416 f.errorf(f.f, 0.2, link(ref), category("comments"), "should have a package comment, unless it's in another file for this package")
417 return
418 }
419 s := f.f.Doc.Text()
420 if ts := strings.TrimLeft(s, " \t"); ts != s {
421 f.errorf(f.f.Doc, 1, link(ref), category("comments"), "package comment should not have leading space")
422 s = ts
423 }
424 // Only non-main packages need to keep to this form.
425 if !f.pkg.main && !strings.HasPrefix(s, prefix) {
426 f.errorf(f.f.Doc, 1, link(ref), category("comments"), `package comment should be of the form "%s..."`, prefix)
427 }
428}
429
430// lintBlankImports complains if a non-main package has blank imports that are
431// not documented.
432func (f *file) lintBlankImports() {
433 // In package main and in tests, we don't complain about blank imports.
434 if f.pkg.main || f.isTest() {
435 return
436 }
437
438 // The first element of each contiguous group of blank imports should have
439 // an explanatory comment of some kind.
440 for i, imp := range f.f.Imports {
441 pos := f.fset.Position(imp.Pos())
442
443 if !isBlank(imp.Name) {
444 continue // Ignore non-blank imports.
445 }
446 if i > 0 {
447 prev := f.f.Imports[i-1]
448 prevPos := f.fset.Position(prev.Pos())
449 if isBlank(prev.Name) && prevPos.Line+1 == pos.Line {
450 continue // A subsequent blank in a group.
451 }
452 }
453
454 // This is the first blank import of a group.
455 if imp.Doc == nil && imp.Comment == nil {
456 ref := ""
457 f.errorf(imp, 1, link(ref), category("imports"), "a blank import should be only in a main or test package, or have a comment justifying it")
458 }
459 }
460}
461
462// lintImports examines import blocks.
463func (f *file) lintImports() {
464 for i, is := range f.f.Imports {
465 _ = i
466 if is.Name != nil && is.Name.Name == "." && !f.isTest() {
467 f.errorf(is, 1, link(styleGuideBase+"#import-dot"), category("imports"), "should not use dot imports")
468 }
469
470 }
471}
472
473const docCommentsLink = styleGuideBase + "#doc-comments"
474
475// lintExported examines the exported names.
476// It complains if any required doc comments are missing,
477// or if they are not of the right form. The exact rules are in
478// lintFuncDoc, lintTypeDoc and lintValueSpecDoc; this function
479// also tracks the GenDecl structure being traversed to permit
480// doc comments for constants to be on top of the const block.
481// It also complains if the names stutter when combined with
482// the package name.
483func (f *file) lintExported() {
484 if f.isTest() {
485 return
486 }
487
488 var lastGen *ast.GenDecl // last GenDecl entered.
489
490 // Set of GenDecls that have already had missing comments flagged.
491 genDeclMissingComments := make(map[*ast.GenDecl]bool)
492
493 f.walk(func(node ast.Node) bool {
494 switch v := node.(type) {
495 case *ast.GenDecl:
496 if v.Tok == token.IMPORT {
497 return false
498 }
499 // token.CONST, token.TYPE or token.VAR
500 lastGen = v
501 return true
502 case *ast.FuncDecl:
503 f.lintFuncDoc(v)
504 if v.Recv == nil {
505 // Only check for stutter on functions, not methods.
506 // Method names are not used package-qualified.
507 f.checkStutter(v.Name, "func")
508 }
509 // Don't proceed inside funcs.
510 return false
511 case *ast.TypeSpec:
512 // inside a GenDecl, which usually has the doc
513 doc := v.Doc
514 if doc == nil {
515 doc = lastGen.Doc
516 }
517 f.lintTypeDoc(v, doc)
518 f.checkStutter(v.Name, "type")
519 // Don't proceed inside types.
520 return false
521 case *ast.ValueSpec:
522 f.lintValueSpecDoc(v, lastGen, genDeclMissingComments)
523 return false
524 }
525 return true
526 })
527}
528
529var (
530 allCapsRE = regexp.MustCompile(`^[A-Z0-9_]+$`)
531 anyCapsRE = regexp.MustCompile(`[A-Z]`)
532)
533
534// knownNameExceptions is a set of names that are known to be exempt from naming checks.
535// This is usually because they are constrained by having to match names in the
536// standard library.
537var knownNameExceptions = map[string]bool{
538 "LastInsertId": true, // must match database/sql
539 "kWh": true,
540}
541
542func isInTopLevel(f *ast.File, ident *ast.Ident) bool {
543 path, _ := astutil.PathEnclosingInterval(f, ident.Pos(), ident.End())
544 for _, f := range path {
545 switch f.(type) {
546 case *ast.File, *ast.GenDecl, *ast.ValueSpec, *ast.Ident:
547 continue
548 }
549 return false
550 }
551 return true
552}
553
554// lintNames examines all names in the file.
555// It complains if any use underscores or incorrect known initialisms.
556func (f *file) lintNames() {
557 // Package names need slightly different handling than other names.
558 if strings.Contains(f.f.Name.Name, "_") && !strings.HasSuffix(f.f.Name.Name, "_test") {
559 f.errorf(f.f, 1, link("http://golang.org/doc/effective_go.html#package-names"), category("naming"), "don't use an underscore in package name")
560 }
561 if anyCapsRE.MatchString(f.f.Name.Name) {
562 f.errorf(f.f, 1, link("http://golang.org/doc/effective_go.html#package-names"), category("mixed-caps"), "don't use MixedCaps in package name; %s should be %s", f.f.Name.Name, strings.ToLower(f.f.Name.Name))
563 }
564
565 check := func(id *ast.Ident, thing string) {
566 if id.Name == "_" {
567 return
568 }
569 if knownNameExceptions[id.Name] {
570 return
571 }
572
573 // Handle two common styles from other languages that don't belong in Go.
574 if len(id.Name) >= 5 && allCapsRE.MatchString(id.Name) && strings.Contains(id.Name, "_") {
575 capCount := 0
576 for _, c := range id.Name {
577 if 'A' <= c && c <= 'Z' {
578 capCount++
579 }
580 }
581 if capCount >= 2 {
582 f.errorf(id, 0.8, link(styleGuideBase+"#mixed-caps"), category("naming"), "don't use ALL_CAPS in Go names; use CamelCase")
583 return
584 }
585 }
586 if thing == "const" || (thing == "var" && isInTopLevel(f.f, id)) {
587 if len(id.Name) > 2 && id.Name[0] == 'k' && id.Name[1] >= 'A' && id.Name[1] <= 'Z' {
588 should := string(id.Name[1]+'a'-'A') + id.Name[2:]
589 f.errorf(id, 0.8, link(styleGuideBase+"#mixed-caps"), category("naming"), "don't use leading k in Go names; %s %s should be %s", thing, id.Name, should)
590 }
591 }
592
593 should := lintName(id.Name)
594 if id.Name == should {
595 return
596 }
597
598 if len(id.Name) > 2 && strings.Contains(id.Name[1:], "_") {
599 f.errorf(id, 0.9, link("http://golang.org/doc/effective_go.html#mixed-caps"), category("naming"), "don't use underscores in Go names; %s %s should be %s", thing, id.Name, should)
600 return
601 }
602 f.errorf(id, 0.8, link(styleGuideBase+"#initialisms"), category("naming"), "%s %s should be %s", thing, id.Name, should)
603 }
604 checkList := func(fl *ast.FieldList, thing string) {
605 if fl == nil {
606 return
607 }
608 for _, f := range fl.List {
609 for _, id := range f.Names {
610 check(id, thing)
611 }
612 }
613 }
614 f.walk(func(node ast.Node) bool {
615 switch v := node.(type) {
616 case *ast.AssignStmt:
617 if v.Tok == token.ASSIGN {
618 return true
619 }
620 for _, exp := range v.Lhs {
621 if id, ok := exp.(*ast.Ident); ok {
622 check(id, "var")
623 }
624 }
625 case *ast.FuncDecl:
626 if f.isTest() && (strings.HasPrefix(v.Name.Name, "Example") || strings.HasPrefix(v.Name.Name, "Test") || strings.HasPrefix(v.Name.Name, "Benchmark")) {
627 return true
628 }
629
630 thing := "func"
631 if v.Recv != nil {
632 thing = "method"
633 }
634
635 // Exclude naming warnings for functions that are exported to C but
636 // not exported in the Go API.
637 // See https://github.com/golang/lint/issues/144.
638 if ast.IsExported(v.Name.Name) || !isCgoExported(v) {
639 check(v.Name, thing)
640 }
641
642 checkList(v.Type.Params, thing+" parameter")
643 checkList(v.Type.Results, thing+" result")
644 case *ast.GenDecl:
645 if v.Tok == token.IMPORT {
646 return true
647 }
648 var thing string
649 switch v.Tok {
650 case token.CONST:
651 thing = "const"
652 case token.TYPE:
653 thing = "type"
654 case token.VAR:
655 thing = "var"
656 }
657 for _, spec := range v.Specs {
658 switch s := spec.(type) {
659 case *ast.TypeSpec:
660 check(s.Name, thing)
661 case *ast.ValueSpec:
662 for _, id := range s.Names {
663 check(id, thing)
664 }
665 }
666 }
667 case *ast.InterfaceType:
668 // Do not check interface method names.
669 // They are often constrainted by the method names of concrete types.
670 for _, x := range v.Methods.List {
671 ft, ok := x.Type.(*ast.FuncType)
672 if !ok { // might be an embedded interface name
673 continue
674 }
675 checkList(ft.Params, "interface method parameter")
676 checkList(ft.Results, "interface method result")
677 }
678 case *ast.RangeStmt:
679 if v.Tok == token.ASSIGN {
680 return true
681 }
682 if id, ok := v.Key.(*ast.Ident); ok {
683 check(id, "range var")
684 }
685 if id, ok := v.Value.(*ast.Ident); ok {
686 check(id, "range var")
687 }
688 case *ast.StructType:
689 for _, f := range v.Fields.List {
690 for _, id := range f.Names {
691 check(id, "struct field")
692 }
693 }
694 }
695 return true
696 })
697}
698
699// lintName returns a different name if it should be different.
700func lintName(name string) (should string) {
701 // Fast path for simple cases: "_" and all lowercase.
702 if name == "_" {
703 return name
704 }
705 allLower := true
706 for _, r := range name {
707 if !unicode.IsLower(r) {
708 allLower = false
709 break
710 }
711 }
712 if allLower {
713 return name
714 }
715
716 // Split camelCase at any lower->upper transition, and split on underscores.
717 // Check each word for common initialisms.
718 runes := []rune(name)
719 w, i := 0, 0 // index of start of word, scan
720 for i+1 <= len(runes) {
721 eow := false // whether we hit the end of a word
722 if i+1 == len(runes) {
723 eow = true
724 } else if runes[i+1] == '_' {
725 // underscore; shift the remainder forward over any run of underscores
726 eow = true
727 n := 1
728 for i+n+1 < len(runes) && runes[i+n+1] == '_' {
729 n++
730 }
731
732 // Leave at most one underscore if the underscore is between two digits
733 if i+n+1 < len(runes) && unicode.IsDigit(runes[i]) && unicode.IsDigit(runes[i+n+1]) {
734 n--
735 }
736
737 copy(runes[i+1:], runes[i+n+1:])
738 runes = runes[:len(runes)-n]
739 } else if unicode.IsLower(runes[i]) && !unicode.IsLower(runes[i+1]) {
740 // lower->non-lower
741 eow = true
742 }
743 i++
744 if !eow {
745 continue
746 }
747
748 // [w,i) is a word.
749 word := string(runes[w:i])
750 if u := strings.ToUpper(word); commonInitialisms[u] {
751 // Keep consistent case, which is lowercase only at the start.
752 if w == 0 && unicode.IsLower(runes[w]) {
753 u = strings.ToLower(u)
754 }
755 // All the common initialisms are ASCII,
756 // so we can replace the bytes exactly.
757 copy(runes[w:], []rune(u))
758 } else if w > 0 && strings.ToLower(word) == word {
759 // already all lowercase, and not the first word, so uppercase the first character.
760 runes[w] = unicode.ToUpper(runes[w])
761 }
762 w = i
763 }
764 return string(runes)
765}
766
767// commonInitialisms is a set of common initialisms.
768// Only add entries that are highly unlikely to be non-initialisms.
769// For instance, "ID" is fine (Freudian code is rare), but "AND" is not.
770var commonInitialisms = map[string]bool{
771 "ACL": true,
772 "API": true,
773 "ASCII": true,
774 "CPU": true,
775 "CSS": true,
776 "DNS": true,
777 "EOF": true,
778 "GUID": true,
779 "HTML": true,
780 "HTTP": true,
781 "HTTPS": true,
782 "ID": true,
783 "IP": true,
784 "JSON": true,
785 "LHS": true,
786 "QPS": true,
787 "RAM": true,
788 "RHS": true,
789 "RPC": true,
790 "SLA": true,
791 "SMTP": true,
792 "SQL": true,
793 "SSH": true,
794 "TCP": true,
795 "TLS": true,
796 "TTL": true,
797 "UDP": true,
798 "UI": true,
799 "UID": true,
800 "UUID": true,
801 "URI": true,
802 "URL": true,
803 "UTF8": true,
804 "VM": true,
805 "XML": true,
806 "XMPP": true,
807 "XSRF": true,
808 "XSS": true,
809}
810
811// lintTypeDoc examines the doc comment on a type.
812// It complains if they are missing from an exported type,
813// or if they are not of the standard form.
814func (f *file) lintTypeDoc(t *ast.TypeSpec, doc *ast.CommentGroup) {
815 if !ast.IsExported(t.Name.Name) {
816 return
817 }
818 if doc == nil {
819 f.errorf(t, 1, link(docCommentsLink), category("comments"), "exported type %v should have comment or be unexported", t.Name)
820 return
821 }
822
823 s := doc.Text()
824 articles := [...]string{"A", "An", "The"}
825 for _, a := range articles {
826 if strings.HasPrefix(s, a+" ") {
827 s = s[len(a)+1:]
828 break
829 }
830 }
831 if !strings.HasPrefix(s, t.Name.Name+" ") {
832 f.errorf(doc, 1, link(docCommentsLink), category("comments"), `comment on exported type %v should be of the form "%v ..." (with optional leading article)`, t.Name, t.Name)
833 }
834}
835
836var commonMethods = map[string]bool{
837 "Error": true,
838 "Read": true,
839 "ServeHTTP": true,
840 "String": true,
841 "Write": true,
842}
843
844// lintFuncDoc examines doc comments on functions and methods.
845// It complains if they are missing, or not of the right form.
846// It has specific exclusions for well-known methods (see commonMethods above).
847func (f *file) lintFuncDoc(fn *ast.FuncDecl) {
848 if !ast.IsExported(fn.Name.Name) {
849 // func is unexported
850 return
851 }
852 kind := "function"
853 name := fn.Name.Name
854 if fn.Recv != nil && len(fn.Recv.List) > 0 {
855 // method
856 kind = "method"
857 recv := receiverType(fn)
858 if !ast.IsExported(recv) {
859 // receiver is unexported
860 return
861 }
862 if commonMethods[name] {
863 return
864 }
865 switch name {
866 case "Len", "Less", "Swap":
867 if f.pkg.sortable[recv] {
868 return
869 }
870 }
871 name = recv + "." + name
872 }
873 if fn.Doc == nil {
874 f.errorf(fn, 1, link(docCommentsLink), category("comments"), "exported %s %s should have comment or be unexported", kind, name)
875 return
876 }
877 s := fn.Doc.Text()
878 prefix := fn.Name.Name + " "
879 if !strings.HasPrefix(s, prefix) {
880 f.errorf(fn.Doc, 1, link(docCommentsLink), category("comments"), `comment on exported %s %s should be of the form "%s..."`, kind, name, prefix)
881 }
882}
883
884// lintValueSpecDoc examines package-global variables and constants.
885// It complains if they are not individually declared,
886// or if they are not suitably documented in the right form (unless they are in a block that is commented).
887func (f *file) lintValueSpecDoc(vs *ast.ValueSpec, gd *ast.GenDecl, genDeclMissingComments map[*ast.GenDecl]bool) {
888 kind := "var"
889 if gd.Tok == token.CONST {
890 kind = "const"
891 }
892
893 if len(vs.Names) > 1 {
894 // Check that none are exported except for the first.
895 for _, n := range vs.Names[1:] {
896 if ast.IsExported(n.Name) {
897 f.errorf(vs, 1, category("comments"), "exported %s %s should have its own declaration", kind, n.Name)
898 return
899 }
900 }
901 }
902
903 // Only one name.
904 name := vs.Names[0].Name
905 if !ast.IsExported(name) {
906 return
907 }
908
909 if vs.Doc == nil && gd.Doc == nil {
910 if genDeclMissingComments[gd] {
911 return
912 }
913 block := ""
914 if kind == "const" && gd.Lparen.IsValid() {
915 block = " (or a comment on this block)"
916 }
917 f.errorf(vs, 1, link(docCommentsLink), category("comments"), "exported %s %s should have comment%s or be unexported", kind, name, block)
918 genDeclMissingComments[gd] = true
919 return
920 }
921 // If this GenDecl has parens and a comment, we don't check its comment form.
922 if gd.Lparen.IsValid() && gd.Doc != nil {
923 return
924 }
925 // The relevant text to check will be on either vs.Doc or gd.Doc.
926 // Use vs.Doc preferentially.
927 doc := vs.Doc
928 if doc == nil {
929 doc = gd.Doc
930 }
931 prefix := name + " "
932 if !strings.HasPrefix(doc.Text(), prefix) {
933 f.errorf(doc, 1, link(docCommentsLink), category("comments"), `comment on exported %s %s should be of the form "%s..."`, kind, name, prefix)
934 }
935}
936
937func (f *file) checkStutter(id *ast.Ident, thing string) {
938 pkg, name := f.f.Name.Name, id.Name
939 if !ast.IsExported(name) {
940 // unexported name
941 return
942 }
943 // A name stutters if the package name is a strict prefix
944 // and the next character of the name starts a new word.
945 if len(name) <= len(pkg) {
946 // name is too short to stutter.
947 // This permits the name to be the same as the package name.
948 return
949 }
950 if !strings.EqualFold(pkg, name[:len(pkg)]) {
951 return
952 }
953 // We can assume the name is well-formed UTF-8.
954 // If the next rune after the package name is uppercase or an underscore
955 // the it's starting a new word and thus this name stutters.
956 rem := name[len(pkg):]
957 if next, _ := utf8.DecodeRuneInString(rem); next == '_' || unicode.IsUpper(next) {
958 f.errorf(id, 0.8, link(styleGuideBase+"#package-names"), category("naming"), "%s name will be used as %s.%s by other packages, and that stutters; consider calling this %s", thing, pkg, name, rem)
959 }
960}
961
962// zeroLiteral is a set of ast.BasicLit values that are zero values.
963// It is not exhaustive.
964var zeroLiteral = map[string]bool{
965 "false": true, // bool
966 // runes
967 `'\x00'`: true,
968 `'\000'`: true,
969 // strings
970 `""`: true,
971 "``": true,
972 // numerics
973 "0": true,
974 "0.": true,
975 "0.0": true,
976 "0i": true,
977}
978
979// lintElses examines else blocks. It complains about any else block whose if block ends in a return.
980func (f *file) lintElses() {
981 // We don't want to flag if { } else if { } else { } constructions.
982 // They will appear as an IfStmt whose Else field is also an IfStmt.
983 // Record such a node so we ignore it when we visit it.
984 ignore := make(map[*ast.IfStmt]bool)
985
986 f.walk(func(node ast.Node) bool {
987 ifStmt, ok := node.(*ast.IfStmt)
988 if !ok || ifStmt.Else == nil {
989 return true
990 }
991 if elseif, ok := ifStmt.Else.(*ast.IfStmt); ok {
992 ignore[elseif] = true
993 return true
994 }
995 if ignore[ifStmt] {
996 return true
997 }
998 if _, ok := ifStmt.Else.(*ast.BlockStmt); !ok {
999 // only care about elses without conditions
1000 return true
1001 }
1002 if len(ifStmt.Body.List) == 0 {
1003 return true
1004 }
1005 shortDecl := false // does the if statement have a ":=" initialization statement?
1006 if ifStmt.Init != nil {
1007 if as, ok := ifStmt.Init.(*ast.AssignStmt); ok && as.Tok == token.DEFINE {
1008 shortDecl = true
1009 }
1010 }
1011 lastStmt := ifStmt.Body.List[len(ifStmt.Body.List)-1]
1012 if _, ok := lastStmt.(*ast.ReturnStmt); ok {
1013 extra := ""
1014 if shortDecl {
1015 extra = " (move short variable declaration to its own line if necessary)"
1016 }
1017 f.errorf(ifStmt.Else, 1, link(styleGuideBase+"#indent-error-flow"), category("indent"), "if block ends with a return statement, so drop this else and outdent its block"+extra)
1018 }
1019 return true
1020 })
1021}
1022
1023// lintRanges examines range clauses. It complains about redundant constructions.
1024func (f *file) lintRanges() {
1025 f.walk(func(node ast.Node) bool {
1026 rs, ok := node.(*ast.RangeStmt)
1027 if !ok {
1028 return true
1029 }
1030
1031 if isIdent(rs.Key, "_") && (rs.Value == nil || isIdent(rs.Value, "_")) {
1032 p := f.errorf(rs.Key, 1, category("range-loop"), "should omit values from range; this loop is equivalent to `for range ...`")
1033
1034 newRS := *rs // shallow copy
1035 newRS.Value = nil
1036 newRS.Key = nil
1037 p.ReplacementLine = f.firstLineOf(&newRS, rs)
1038
1039 return true
1040 }
1041
1042 if isIdent(rs.Value, "_") {
1043 p := f.errorf(rs.Value, 1, category("range-loop"), "should omit 2nd value from range; this loop is equivalent to `for %s %s range ...`", f.render(rs.Key), rs.Tok)
1044
1045 newRS := *rs // shallow copy
1046 newRS.Value = nil
1047 p.ReplacementLine = f.firstLineOf(&newRS, rs)
1048 }
1049
1050 return true
1051 })
1052}
1053
1054// lintErrorf examines errors.New and testing.Error calls. It complains if its only argument is an fmt.Sprintf invocation.
1055func (f *file) lintErrorf() {
1056 f.walk(func(node ast.Node) bool {
1057 ce, ok := node.(*ast.CallExpr)
1058 if !ok || len(ce.Args) != 1 {
1059 return true
1060 }
1061 isErrorsNew := isPkgDot(ce.Fun, "errors", "New")
1062 var isTestingError bool
1063 se, ok := ce.Fun.(*ast.SelectorExpr)
1064 if ok && se.Sel.Name == "Error" {
1065 if typ := f.pkg.typeOf(se.X); typ != nil {
1066 isTestingError = typ.String() == "*testing.T"
1067 }
1068 }
1069 if !isErrorsNew && !isTestingError {
1070 return true
1071 }
1072 if !f.imports("errors") {
1073 return true
1074 }
1075 arg := ce.Args[0]
1076 ce, ok = arg.(*ast.CallExpr)
1077 if !ok || !isPkgDot(ce.Fun, "fmt", "Sprintf") {
1078 return true
1079 }
1080 errorfPrefix := "fmt"
1081 if isTestingError {
1082 errorfPrefix = f.render(se.X)
1083 }
1084 p := f.errorf(node, 1, category("errors"), "should replace %s(fmt.Sprintf(...)) with %s.Errorf(...)", f.render(se), errorfPrefix)
1085
1086 m := f.srcLineWithMatch(ce, `^(.*)`+f.render(se)+`\(fmt\.Sprintf\((.*)\)\)(.*)$`)
1087 if m != nil {
1088 p.ReplacementLine = m[1] + errorfPrefix + ".Errorf(" + m[2] + ")" + m[3]
1089 }
1090
1091 return true
1092 })
1093}
1094
1095// lintErrors examines global error vars. It complains if they aren't named in the standard way.
1096func (f *file) lintErrors() {
1097 for _, decl := range f.f.Decls {
1098 gd, ok := decl.(*ast.GenDecl)
1099 if !ok || gd.Tok != token.VAR {
1100 continue
1101 }
1102 for _, spec := range gd.Specs {
1103 spec := spec.(*ast.ValueSpec)
1104 if len(spec.Names) != 1 || len(spec.Values) != 1 {
1105 continue
1106 }
1107 ce, ok := spec.Values[0].(*ast.CallExpr)
1108 if !ok {
1109 continue
1110 }
1111 if !isPkgDot(ce.Fun, "errors", "New") && !isPkgDot(ce.Fun, "fmt", "Errorf") {
1112 continue
1113 }
1114
1115 id := spec.Names[0]
1116 prefix := "err"
1117 if id.IsExported() {
1118 prefix = "Err"
1119 }
1120 if !strings.HasPrefix(id.Name, prefix) {
1121 f.errorf(id, 0.9, category("naming"), "error var %s should have name of the form %sFoo", id.Name, prefix)
1122 }
1123 }
1124 }
1125}
1126
1127func lintErrorString(s string) (isClean bool, conf float64) {
1128 const basicConfidence = 0.8
1129 const capConfidence = basicConfidence - 0.2
1130 first, firstN := utf8.DecodeRuneInString(s)
1131 last, _ := utf8.DecodeLastRuneInString(s)
1132 if last == '.' || last == ':' || last == '!' || last == '\n' {
1133 return false, basicConfidence
1134 }
1135 if unicode.IsUpper(first) {
1136 // People use proper nouns and exported Go identifiers in error strings,
1137 // so decrease the confidence of warnings for capitalization.
1138 if len(s) <= firstN {
1139 return false, capConfidence
1140 }
1141 // Flag strings starting with something that doesn't look like an initialism.
1142 if second, _ := utf8.DecodeRuneInString(s[firstN:]); !unicode.IsUpper(second) {
1143 return false, capConfidence
1144 }
1145 }
1146 return true, 0
1147}
1148
1149// lintErrorStrings examines error strings.
1150// It complains if they are capitalized or end in punctuation or a newline.
1151func (f *file) lintErrorStrings() {
1152 f.walk(func(node ast.Node) bool {
1153 ce, ok := node.(*ast.CallExpr)
1154 if !ok {
1155 return true
1156 }
1157 if !isPkgDot(ce.Fun, "errors", "New") && !isPkgDot(ce.Fun, "fmt", "Errorf") {
1158 return true
1159 }
1160 if len(ce.Args) < 1 {
1161 return true
1162 }
1163 str, ok := ce.Args[0].(*ast.BasicLit)
1164 if !ok || str.Kind != token.STRING {
1165 return true
1166 }
1167 s, _ := strconv.Unquote(str.Value) // can assume well-formed Go
1168 if s == "" {
1169 return true
1170 }
1171 clean, conf := lintErrorString(s)
1172 if clean {
1173 return true
1174 }
1175
1176 f.errorf(str, conf, link(styleGuideBase+"#error-strings"), category("errors"),
1177 "error strings should not be capitalized or end with punctuation or a newline")
1178 return true
1179 })
1180}
1181
1182// lintReceiverNames examines receiver names. It complains about inconsistent
1183// names used for the same type and names such as "this".
1184func (f *file) lintReceiverNames() {
1185 typeReceiver := map[string]string{}
1186 f.walk(func(n ast.Node) bool {
1187 fn, ok := n.(*ast.FuncDecl)
1188 if !ok || fn.Recv == nil || len(fn.Recv.List) == 0 {
1189 return true
1190 }
1191 names := fn.Recv.List[0].Names
1192 if len(names) < 1 {
1193 return true
1194 }
1195 name := names[0].Name
1196 const ref = styleGuideBase + "#receiver-names"
1197 if name == "_" {
1198 f.errorf(n, 1, link(ref), category("naming"), `receiver name should not be an underscore, omit the name if it is unused`)
1199 return true
1200 }
1201 if name == "this" || name == "self" {
1202 f.errorf(n, 1, link(ref), category("naming"), `receiver name should be a reflection of its identity; don't use generic names such as "this" or "self"`)
1203 return true
1204 }
1205 recv := receiverType(fn)
1206 if prev, ok := typeReceiver[recv]; ok && prev != name {
1207 f.errorf(n, 1, link(ref), category("naming"), "receiver name %s should be consistent with previous receiver name %s for %s", name, prev, recv)
1208 return true
1209 }
1210 typeReceiver[recv] = name
1211 return true
1212 })
1213}
1214
1215// lintIncDec examines statements that increment or decrement a variable.
1216// It complains if they don't use x++ or x--.
1217func (f *file) lintIncDec() {
1218 f.walk(func(n ast.Node) bool {
1219 as, ok := n.(*ast.AssignStmt)
1220 if !ok {
1221 return true
1222 }
1223 if len(as.Lhs) != 1 {
1224 return true
1225 }
1226 if !isOne(as.Rhs[0]) {
1227 return true
1228 }
1229 var suffix string
1230 switch as.Tok {
1231 case token.ADD_ASSIGN:
1232 suffix = "++"
1233 case token.SUB_ASSIGN:
1234 suffix = "--"
1235 default:
1236 return true
1237 }
1238 f.errorf(as, 0.8, category("unary-op"), "should replace %s with %s%s", f.render(as), f.render(as.Lhs[0]), suffix)
1239 return true
1240 })
1241}
1242
1243// lintErrorReturn examines function declarations that return an error.
1244// It complains if the error isn't the last parameter.
1245func (f *file) lintErrorReturn() {
1246 f.walk(func(n ast.Node) bool {
1247 fn, ok := n.(*ast.FuncDecl)
1248 if !ok || fn.Type.Results == nil {
1249 return true
1250 }
1251 ret := fn.Type.Results.List
1252 if len(ret) <= 1 {
1253 return true
1254 }
1255 if isIdent(ret[len(ret)-1].Type, "error") {
1256 return true
1257 }
1258 // An error return parameter should be the last parameter.
1259 // Flag any error parameters found before the last.
1260 for _, r := range ret[:len(ret)-1] {
1261 if isIdent(r.Type, "error") {
1262 f.errorf(fn, 0.9, category("arg-order"), "error should be the last type when returning multiple items")
1263 break // only flag one
1264 }
1265 }
1266 return true
1267 })
1268}
1269
1270// lintUnexportedReturn examines exported function declarations.
1271// It complains if any return an unexported type.
1272func (f *file) lintUnexportedReturn() {
1273 f.walk(func(n ast.Node) bool {
1274 fn, ok := n.(*ast.FuncDecl)
1275 if !ok {
1276 return true
1277 }
1278 if fn.Type.Results == nil {
1279 return false
1280 }
1281 if !fn.Name.IsExported() {
1282 return false
1283 }
1284 thing := "func"
1285 if fn.Recv != nil && len(fn.Recv.List) > 0 {
1286 thing = "method"
1287 if !ast.IsExported(receiverType(fn)) {
1288 // Don't report exported methods of unexported types,
1289 // such as private implementations of sort.Interface.
1290 return false
1291 }
1292 }
1293 for _, ret := range fn.Type.Results.List {
1294 typ := f.pkg.typeOf(ret.Type)
1295 if exportedType(typ) {
1296 continue
1297 }
1298 f.errorf(ret.Type, 0.8, category("unexported-type-in-api"),
1299 "exported %s %s returns unexported type %s, which can be annoying to use",
1300 thing, fn.Name.Name, typ)
1301 break // only flag one
1302 }
1303 return false
1304 })
1305}
1306
1307// exportedType reports whether typ is an exported type.
1308// It is imprecise, and will err on the side of returning true,
1309// such as for composite types.
1310func exportedType(typ types.Type) bool {
1311 switch T := typ.(type) {
1312 case *types.Named:
1313 // Builtin types have no package.
1314 return T.Obj().Pkg() == nil || T.Obj().Exported()
1315 case *types.Map:
1316 return exportedType(T.Key()) && exportedType(T.Elem())
1317 case interface {
1318 Elem() types.Type
1319 }: // array, slice, pointer, chan
1320 return exportedType(T.Elem())
1321 }
1322 // Be conservative about other types, such as struct, interface, etc.
1323 return true
1324}
1325
1326// timeSuffixes is a list of name suffixes that imply a time unit.
1327// This is not an exhaustive list.
1328var timeSuffixes = []string{
1329 "Sec", "Secs", "Seconds",
1330 "Msec", "Msecs",
1331 "Milli", "Millis", "Milliseconds",
1332 "Usec", "Usecs", "Microseconds",
1333 "MS", "Ms",
1334}
1335
1336func (f *file) lintTimeNames() {
1337 f.walk(func(node ast.Node) bool {
1338 v, ok := node.(*ast.ValueSpec)
1339 if !ok {
1340 return true
1341 }
1342 for _, name := range v.Names {
1343 origTyp := f.pkg.typeOf(name)
1344 // Look for time.Duration or *time.Duration;
1345 // the latter is common when using flag.Duration.
1346 typ := origTyp
1347 if pt, ok := typ.(*types.Pointer); ok {
1348 typ = pt.Elem()
1349 }
1350 if !f.pkg.isNamedType(typ, "time", "Duration") {
1351 continue
1352 }
1353 suffix := ""
1354 for _, suf := range timeSuffixes {
1355 if strings.HasSuffix(name.Name, suf) {
1356 suffix = suf
1357 break
1358 }
1359 }
1360 if suffix == "" {
1361 continue
1362 }
1363 f.errorf(v, 0.9, category("time"), "var %s is of type %v; don't use unit-specific suffix %q", name.Name, origTyp, suffix)
1364 }
1365 return true
1366 })
1367}
1368
1369// lintContextKeyTypes checks for call expressions to context.WithValue with
1370// basic types used for the key argument.
1371// See: https://golang.org/issue/17293
1372func (f *file) lintContextKeyTypes() {
1373 f.walk(func(node ast.Node) bool {
1374 switch node := node.(type) {
1375 case *ast.CallExpr:
1376 f.checkContextKeyType(node)
1377 }
1378
1379 return true
1380 })
1381}
1382
1383// checkContextKeyType reports an error if the call expression calls
1384// context.WithValue with a key argument of basic type.
1385func (f *file) checkContextKeyType(x *ast.CallExpr) {
1386 sel, ok := x.Fun.(*ast.SelectorExpr)
1387 if !ok {
1388 return
1389 }
1390 pkg, ok := sel.X.(*ast.Ident)
1391 if !ok || pkg.Name != "context" {
1392 return
1393 }
1394 if sel.Sel.Name != "WithValue" {
1395 return
1396 }
1397
1398 // key is second argument to context.WithValue
1399 if len(x.Args) != 3 {
1400 return
1401 }
1402 key := f.pkg.typesInfo.Types[x.Args[1]]
1403
1404 if ktyp, ok := key.Type.(*types.Basic); ok && ktyp.Kind() != types.Invalid {
1405 f.errorf(x, 1.0, category("context"), fmt.Sprintf("should not use basic type %s as key in context.WithValue", key.Type))
1406 }
1407}
1408
1409// lintContextArgs examines function declarations that contain an
1410// argument with a type of context.Context
1411// It complains if that argument isn't the first parameter.
1412func (f *file) lintContextArgs() {
1413 f.walk(func(n ast.Node) bool {
1414 fn, ok := n.(*ast.FuncDecl)
1415 if !ok || len(fn.Type.Params.List) <= 1 {
1416 return true
1417 }
1418 // A context.Context should be the first parameter of a function.
1419 // Flag any that show up after the first.
1420 for _, arg := range fn.Type.Params.List[1:] {
1421 if isPkgDot(arg.Type, "context", "Context") {
1422 f.errorf(fn, 0.9, link("https://golang.org/pkg/context/"), category("arg-order"), "context.Context should be the first parameter of a function")
1423 break // only flag one
1424 }
1425 }
1426 return true
1427 })
1428}
1429
1430// containsComments returns whether the interval [start, end) contains any
1431// comments without "// MATCH " prefix.
1432func (f *file) containsComments(start, end token.Pos) bool {
1433 for _, cgroup := range f.f.Comments {
1434 comments := cgroup.List
1435 if comments[0].Slash >= end {
1436 // All comments starting with this group are after end pos.
1437 return false
1438 }
1439 if comments[len(comments)-1].Slash < start {
1440 // Comments group ends before start pos.
1441 continue
1442 }
1443 for _, c := range comments {
1444 if start <= c.Slash && c.Slash < end && !strings.HasPrefix(c.Text, "// MATCH ") {
1445 return true
1446 }
1447 }
1448 }
1449 return false
1450}
1451
1452// receiverType returns the named type of the method receiver, sans "*",
1453// or "invalid-type" if fn.Recv is ill formed.
1454func receiverType(fn *ast.FuncDecl) string {
1455 switch e := fn.Recv.List[0].Type.(type) {
1456 case *ast.Ident:
1457 return e.Name
1458 case *ast.StarExpr:
1459 if id, ok := e.X.(*ast.Ident); ok {
1460 return id.Name
1461 }
1462 }
1463 // The parser accepts much more than just the legal forms.
1464 return "invalid-type"
1465}
1466
1467func (f *file) walk(fn func(ast.Node) bool) {
1468 ast.Walk(walker(fn), f.f)
1469}
1470
1471func (f *file) render(x interface{}) string {
1472 var buf bytes.Buffer
1473 if err := printer.Fprint(&buf, f.fset, x); err != nil {
1474 panic(err)
1475 }
1476 return buf.String()
1477}
1478
1479func (f *file) debugRender(x interface{}) string {
1480 var buf bytes.Buffer
1481 if err := ast.Fprint(&buf, f.fset, x, nil); err != nil {
1482 panic(err)
1483 }
1484 return buf.String()
1485}
1486
1487// walker adapts a function to satisfy the ast.Visitor interface.
1488// The function return whether the walk should proceed into the node's children.
1489type walker func(ast.Node) bool
1490
1491func (w walker) Visit(node ast.Node) ast.Visitor {
1492 if w(node) {
1493 return w
1494 }
1495 return nil
1496}
1497
1498func isIdent(expr ast.Expr, ident string) bool {
1499 id, ok := expr.(*ast.Ident)
1500 return ok && id.Name == ident
1501}
1502
1503// isBlank returns whether id is the blank identifier "_".
1504// If id == nil, the answer is false.
1505func isBlank(id *ast.Ident) bool { return id != nil && id.Name == "_" }
1506
1507func isPkgDot(expr ast.Expr, pkg, name string) bool {
1508 sel, ok := expr.(*ast.SelectorExpr)
1509 return ok && isIdent(sel.X, pkg) && isIdent(sel.Sel, name)
1510}
1511
1512func isOne(expr ast.Expr) bool {
1513 lit, ok := expr.(*ast.BasicLit)
1514 return ok && lit.Kind == token.INT && lit.Value == "1"
1515}
1516
1517func isCgoExported(f *ast.FuncDecl) bool {
1518 if f.Recv != nil || f.Doc == nil {
1519 return false
1520 }
1521
1522 cgoExport := regexp.MustCompile(fmt.Sprintf("(?m)^//export %s$", regexp.QuoteMeta(f.Name.Name)))
1523 for _, c := range f.Doc.List {
1524 if cgoExport.MatchString(c.Text) {
1525 return true
1526 }
1527 }
1528 return false
1529}
1530
1531var basicTypeKinds = map[types.BasicKind]string{
1532 types.UntypedBool: "bool",
1533 types.UntypedInt: "int",
1534 types.UntypedRune: "rune",
1535 types.UntypedFloat: "float64",
1536 types.UntypedComplex: "complex128",
1537 types.UntypedString: "string",
1538}
1539
1540// isUntypedConst reports whether expr is an untyped constant,
1541// and indicates what its default type is.
1542// scope may be nil.
1543func (f *file) isUntypedConst(expr ast.Expr) (defType string, ok bool) {
1544 // Re-evaluate expr outside of its context to see if it's untyped.
1545 // (An expr evaluated within, for example, an assignment context will get the type of the LHS.)
1546 exprStr := f.render(expr)
1547 tv, err := types.Eval(f.fset, f.pkg.typesPkg, expr.Pos(), exprStr)
1548 if err != nil {
1549 return "", false
1550 }
1551 if b, ok := tv.Type.(*types.Basic); ok {
1552 if dt, ok := basicTypeKinds[b.Kind()]; ok {
1553 return dt, true
1554 }
1555 }
1556
1557 return "", false
1558}
1559
1560// firstLineOf renders the given node and returns its first line.
1561// It will also match the indentation of another node.
1562func (f *file) firstLineOf(node, match ast.Node) string {
1563 line := f.render(node)
1564 if i := strings.Index(line, "\n"); i >= 0 {
1565 line = line[:i]
1566 }
1567 return f.indentOf(match) + line
1568}
1569
1570func (f *file) indentOf(node ast.Node) string {
1571 line := srcLine(f.src, f.fset.Position(node.Pos()))
1572 for i, r := range line {
1573 switch r {
1574 case ' ', '\t':
1575 default:
1576 return line[:i]
1577 }
1578 }
1579 return line // unusual or empty line
1580}
1581
1582func (f *file) srcLineWithMatch(node ast.Node, pattern string) (m []string) {
1583 line := srcLine(f.src, f.fset.Position(node.Pos()))
1584 line = strings.TrimSuffix(line, "\n")
1585 rx := regexp.MustCompile(pattern)
1586 return rx.FindStringSubmatch(line)
1587}
1588
1589// imports returns true if the current file imports the specified package path.
1590func (f *file) imports(importPath string) bool {
1591 all := astutil.Imports(f.fset, f.f)
1592 for _, p := range all {
1593 for _, i := range p {
1594 uq, err := strconv.Unquote(i.Path.Value)
1595 if err == nil && importPath == uq {
1596 return true
1597 }
1598 }
1599 }
1600 return false
1601}
1602
1603// srcLine returns the complete line at p, including the terminating newline.
1604func srcLine(src []byte, p token.Position) string {
1605 // Run to end of line in both directions if not at line start/end.
1606 lo, hi := p.Offset, p.Offset+1
1607 for lo > 0 && src[lo-1] != '\n' {
1608 lo--
1609 }
1610 for hi < len(src) && src[hi-1] != '\n' {
1611 hi++
1612 }
1613 return string(src[lo:hi])
1614}
diff --git a/vendor/golang.org/x/net/internal/socket/norace.go b/vendor/golang.org/x/net/internal/socket/norace.go
new file mode 100644
index 0000000..9519ffb
--- /dev/null
+++ b/vendor/golang.org/x/net/internal/socket/norace.go
@@ -0,0 +1,12 @@
1// Copyright 2019 The Go Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style
3// license that can be found in the LICENSE file.
4
5// +build !race
6
7package socket
8
9func (m *Message) raceRead() {
10}
11func (m *Message) raceWrite() {
12}
diff --git a/vendor/golang.org/x/net/internal/socket/race.go b/vendor/golang.org/x/net/internal/socket/race.go
new file mode 100644
index 0000000..df60c62
--- /dev/null
+++ b/vendor/golang.org/x/net/internal/socket/race.go
@@ -0,0 +1,37 @@
1// Copyright 2019 The Go Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style
3// license that can be found in the LICENSE file.
4
5// +build race
6
7package socket
8
9import (
10 "runtime"
11 "unsafe"
12)
13
14// This package reads and writes the Message buffers using a
15// direct system call, which the race detector can't see.
16// These functions tell the race detector what is going on during the syscall.
17
18func (m *Message) raceRead() {
19 for _, b := range m.Buffers {
20 if len(b) > 0 {
21 runtime.RaceReadRange(unsafe.Pointer(&b[0]), len(b))
22 }
23 }
24 if b := m.OOB; len(b) > 0 {
25 runtime.RaceReadRange(unsafe.Pointer(&b[0]), len(b))
26 }
27}
28func (m *Message) raceWrite() {
29 for _, b := range m.Buffers {
30 if len(b) > 0 {
31 runtime.RaceWriteRange(unsafe.Pointer(&b[0]), len(b))
32 }
33 }
34 if b := m.OOB; len(b) > 0 {
35 runtime.RaceWriteRange(unsafe.Pointer(&b[0]), len(b))
36 }
37}
diff --git a/vendor/golang.org/x/net/internal/socket/rawconn_mmsg.go b/vendor/golang.org/x/net/internal/socket/rawconn_mmsg.go
index 1f4cb3b..d01fc4c 100644
--- a/vendor/golang.org/x/net/internal/socket/rawconn_mmsg.go
+++ b/vendor/golang.org/x/net/internal/socket/rawconn_mmsg.go
@@ -13,6 +13,9 @@ import (
13) 13)
14 14
15func (c *Conn) recvMsgs(ms []Message, flags int) (int, error) { 15func (c *Conn) recvMsgs(ms []Message, flags int) (int, error) {
16 for i := range ms {
17 ms[i].raceWrite()
18 }
16 hs := make(mmsghdrs, len(ms)) 19 hs := make(mmsghdrs, len(ms))
17 var parseFn func([]byte, string) (net.Addr, error) 20 var parseFn func([]byte, string) (net.Addr, error)
18 if c.network != "tcp" { 21 if c.network != "tcp" {
@@ -43,6 +46,9 @@ func (c *Conn) recvMsgs(ms []Message, flags int) (int, error) {
43} 46}
44 47
45func (c *Conn) sendMsgs(ms []Message, flags int) (int, error) { 48func (c *Conn) sendMsgs(ms []Message, flags int) (int, error) {
49 for i := range ms {
50 ms[i].raceRead()
51 }
46 hs := make(mmsghdrs, len(ms)) 52 hs := make(mmsghdrs, len(ms))
47 var marshalFn func(net.Addr) []byte 53 var marshalFn func(net.Addr) []byte
48 if c.network != "tcp" { 54 if c.network != "tcp" {
diff --git a/vendor/golang.org/x/net/internal/socket/rawconn_msg.go b/vendor/golang.org/x/net/internal/socket/rawconn_msg.go
index a972011..d5ae3f8 100644
--- a/vendor/golang.org/x/net/internal/socket/rawconn_msg.go
+++ b/vendor/golang.org/x/net/internal/socket/rawconn_msg.go
@@ -12,6 +12,7 @@ import (
12) 12)
13 13
14func (c *Conn) recvMsg(m *Message, flags int) error { 14func (c *Conn) recvMsg(m *Message, flags int) error {
15 m.raceWrite()
15 var h msghdr 16 var h msghdr
16 vs := make([]iovec, len(m.Buffers)) 17 vs := make([]iovec, len(m.Buffers))
17 var sa []byte 18 var sa []byte
@@ -48,6 +49,7 @@ func (c *Conn) recvMsg(m *Message, flags int) error {
48} 49}
49 50
50func (c *Conn) sendMsg(m *Message, flags int) error { 51func (c *Conn) sendMsg(m *Message, flags int) error {
52 m.raceRead()
51 var h msghdr 53 var h msghdr
52 vs := make([]iovec, len(m.Buffers)) 54 vs := make([]iovec, len(m.Buffers))
53 var sa []byte 55 var sa []byte
diff --git a/vendor/golang.org/x/net/internal/socket/sys_dragonfly.go b/vendor/golang.org/x/net/internal/socket/sys_dragonfly.go
index b17d223..ed0448f 100644
--- a/vendor/golang.org/x/net/internal/socket/sys_dragonfly.go
+++ b/vendor/golang.org/x/net/internal/socket/sys_dragonfly.go
@@ -4,4 +4,29 @@
4 4
5package socket 5package socket
6 6
7func probeProtocolStack() int { return 4 } 7import (
8 "sync"
9 "syscall"
10 "unsafe"
11)
12
13// See version list in https://github.com/DragonFlyBSD/DragonFlyBSD/blob/master/sys/sys/param.h
14var (
15 osreldateOnce sync.Once
16 osreldate uint32
17)
18
19// First __DragonFly_version after September 2019 ABI changes
20// http://lists.dragonflybsd.org/pipermail/users/2019-September/358280.html
21const _dragonflyABIChangeVersion = 500705
22
23func probeProtocolStack() int {
24 osreldateOnce.Do(func() { osreldate, _ = syscall.SysctlUint32("kern.osreldate") })
25 var p uintptr
26 if int(unsafe.Sizeof(p)) == 8 && osreldate >= _dragonflyABIChangeVersion {
27 return int(unsafe.Sizeof(p))
28 }
29 // 64-bit Dragonfly before the September 2019 ABI changes still requires
30 // 32-bit aligned access to network subsystem.
31 return 4
32}
diff --git a/vendor/golang.org/x/net/internal/socket/zsys_aix_ppc64.go b/vendor/golang.org/x/net/internal/socket/zsys_aix_ppc64.go
index 813385a..e740c8f 100644
--- a/vendor/golang.org/x/net/internal/socket/zsys_aix_ppc64.go
+++ b/vendor/golang.org/x/net/internal/socket/zsys_aix_ppc64.go
@@ -53,7 +53,6 @@ type sockaddrInet6 struct {
53const ( 53const (
54 sizeofIovec = 0x10 54 sizeofIovec = 0x10
55 sizeofMsghdr = 0x30 55 sizeofMsghdr = 0x30
56 sizeofMmsghdr = 0x38
57 sizeofCmsghdr = 0xc 56 sizeofCmsghdr = 0xc
58 57
59 sizeofSockaddrInet = 0x10 58 sizeofSockaddrInet = 0x10
diff --git a/vendor/golang.org/x/net/internal/socket/zsys_linux_386.go b/vendor/golang.org/x/net/internal/socket/zsys_linux_386.go
index 72d8b25..d33025b 100644
--- a/vendor/golang.org/x/net/internal/socket/zsys_linux_386.go
+++ b/vendor/golang.org/x/net/internal/socket/zsys_linux_386.go
@@ -47,7 +47,6 @@ type sockaddrInet6 struct {
47const ( 47const (
48 sizeofIovec = 0x8 48 sizeofIovec = 0x8
49 sizeofMsghdr = 0x1c 49 sizeofMsghdr = 0x1c
50 sizeofMmsghdr = 0x20
51 sizeofCmsghdr = 0xc 50 sizeofCmsghdr = 0xc
52 51
53 sizeofSockaddrInet = 0x10 52 sizeofSockaddrInet = 0x10
diff --git a/vendor/golang.org/x/net/internal/socket/zsys_linux_amd64.go b/vendor/golang.org/x/net/internal/socket/zsys_linux_amd64.go
index 3545319..b20d216 100644
--- a/vendor/golang.org/x/net/internal/socket/zsys_linux_amd64.go
+++ b/vendor/golang.org/x/net/internal/socket/zsys_linux_amd64.go
@@ -50,7 +50,6 @@ type sockaddrInet6 struct {
50const ( 50const (
51 sizeofIovec = 0x10 51 sizeofIovec = 0x10
52 sizeofMsghdr = 0x38 52 sizeofMsghdr = 0x38
53 sizeofMmsghdr = 0x40
54 sizeofCmsghdr = 0x10 53 sizeofCmsghdr = 0x10
55 54
56 sizeofSockaddrInet = 0x10 55 sizeofSockaddrInet = 0x10
diff --git a/vendor/golang.org/x/net/internal/socket/zsys_linux_arm.go b/vendor/golang.org/x/net/internal/socket/zsys_linux_arm.go
index 72d8b25..1bb10a4 100644
--- a/vendor/golang.org/x/net/internal/socket/zsys_linux_arm.go
+++ b/vendor/golang.org/x/net/internal/socket/zsys_linux_arm.go
@@ -45,9 +45,9 @@ type sockaddrInet6 struct {
45} 45}
46 46
47const ( 47const (
48 sizeofIovec = 0x8 48 sizeofIovec = 0x8
49 sizeofMsghdr = 0x1c 49 sizeofMsghdr = 0x1c
50 sizeofMmsghdr = 0x20 50
51 sizeofCmsghdr = 0xc 51 sizeofCmsghdr = 0xc
52 52
53 sizeofSockaddrInet = 0x10 53 sizeofSockaddrInet = 0x10
diff --git a/vendor/golang.org/x/net/internal/socket/zsys_linux_arm64.go b/vendor/golang.org/x/net/internal/socket/zsys_linux_arm64.go
index 3545319..7f6e8a7 100644
--- a/vendor/golang.org/x/net/internal/socket/zsys_linux_arm64.go
+++ b/vendor/golang.org/x/net/internal/socket/zsys_linux_arm64.go
@@ -48,9 +48,9 @@ type sockaddrInet6 struct {
48} 48}
49 49
50const ( 50const (
51 sizeofIovec = 0x10 51 sizeofIovec = 0x10
52 sizeofMsghdr = 0x38 52 sizeofMsghdr = 0x38
53 sizeofMmsghdr = 0x40 53
54 sizeofCmsghdr = 0x10 54 sizeofCmsghdr = 0x10
55 55
56 sizeofSockaddrInet = 0x10 56 sizeofSockaddrInet = 0x10
diff --git a/vendor/golang.org/x/net/internal/socket/zsys_linux_mips.go b/vendor/golang.org/x/net/internal/socket/zsys_linux_mips.go
index 72d8b25..1bb10a4 100644
--- a/vendor/golang.org/x/net/internal/socket/zsys_linux_mips.go
+++ b/vendor/golang.org/x/net/internal/socket/zsys_linux_mips.go
@@ -45,9 +45,9 @@ type sockaddrInet6 struct {
45} 45}
46 46
47const ( 47const (
48 sizeofIovec = 0x8 48 sizeofIovec = 0x8
49 sizeofMsghdr = 0x1c 49 sizeofMsghdr = 0x1c
50 sizeofMmsghdr = 0x20 50
51 sizeofCmsghdr = 0xc 51 sizeofCmsghdr = 0xc
52 52
53 sizeofSockaddrInet = 0x10 53 sizeofSockaddrInet = 0x10
diff --git a/vendor/golang.org/x/net/internal/socket/zsys_linux_mips64.go b/vendor/golang.org/x/net/internal/socket/zsys_linux_mips64.go
index 3545319..7f6e8a7 100644
--- a/vendor/golang.org/x/net/internal/socket/zsys_linux_mips64.go
+++ b/vendor/golang.org/x/net/internal/socket/zsys_linux_mips64.go
@@ -48,9 +48,9 @@ type sockaddrInet6 struct {
48} 48}
49 49
50const ( 50const (
51 sizeofIovec = 0x10 51 sizeofIovec = 0x10
52 sizeofMsghdr = 0x38 52 sizeofMsghdr = 0x38
53 sizeofMmsghdr = 0x40 53
54 sizeofCmsghdr = 0x10 54 sizeofCmsghdr = 0x10
55 55
56 sizeofSockaddrInet = 0x10 56 sizeofSockaddrInet = 0x10
diff --git a/vendor/golang.org/x/net/internal/socket/zsys_linux_mips64le.go b/vendor/golang.org/x/net/internal/socket/zsys_linux_mips64le.go
index 3545319..7f6e8a7 100644
--- a/vendor/golang.org/x/net/internal/socket/zsys_linux_mips64le.go
+++ b/vendor/golang.org/x/net/internal/socket/zsys_linux_mips64le.go
@@ -48,9 +48,9 @@ type sockaddrInet6 struct {
48} 48}
49 49
50const ( 50const (
51 sizeofIovec = 0x10 51 sizeofIovec = 0x10
52 sizeofMsghdr = 0x38 52 sizeofMsghdr = 0x38
53 sizeofMmsghdr = 0x40 53
54 sizeofCmsghdr = 0x10 54 sizeofCmsghdr = 0x10
55 55
56 sizeofSockaddrInet = 0x10 56 sizeofSockaddrInet = 0x10
diff --git a/vendor/golang.org/x/net/internal/socket/zsys_linux_mipsle.go b/vendor/golang.org/x/net/internal/socket/zsys_linux_mipsle.go
index 72d8b25..1bb10a4 100644
--- a/vendor/golang.org/x/net/internal/socket/zsys_linux_mipsle.go
+++ b/vendor/golang.org/x/net/internal/socket/zsys_linux_mipsle.go
@@ -45,9 +45,9 @@ type sockaddrInet6 struct {
45} 45}
46 46
47const ( 47const (
48 sizeofIovec = 0x8 48 sizeofIovec = 0x8
49 sizeofMsghdr = 0x1c 49 sizeofMsghdr = 0x1c
50 sizeofMmsghdr = 0x20 50
51 sizeofCmsghdr = 0xc 51 sizeofCmsghdr = 0xc
52 52
53 sizeofSockaddrInet = 0x10 53 sizeofSockaddrInet = 0x10
diff --git a/vendor/golang.org/x/net/internal/socket/zsys_linux_ppc64.go b/vendor/golang.org/x/net/internal/socket/zsys_linux_ppc64.go
index 3545319..7f6e8a7 100644
--- a/vendor/golang.org/x/net/internal/socket/zsys_linux_ppc64.go
+++ b/vendor/golang.org/x/net/internal/socket/zsys_linux_ppc64.go
@@ -48,9 +48,9 @@ type sockaddrInet6 struct {
48} 48}
49 49
50const ( 50const (
51 sizeofIovec = 0x10 51 sizeofIovec = 0x10
52 sizeofMsghdr = 0x38 52 sizeofMsghdr = 0x38
53 sizeofMmsghdr = 0x40 53
54 sizeofCmsghdr = 0x10 54 sizeofCmsghdr = 0x10
55 55
56 sizeofSockaddrInet = 0x10 56 sizeofSockaddrInet = 0x10
diff --git a/vendor/golang.org/x/net/internal/socket/zsys_linux_ppc64le.go b/vendor/golang.org/x/net/internal/socket/zsys_linux_ppc64le.go
index 3545319..7f6e8a7 100644
--- a/vendor/golang.org/x/net/internal/socket/zsys_linux_ppc64le.go
+++ b/vendor/golang.org/x/net/internal/socket/zsys_linux_ppc64le.go
@@ -48,9 +48,9 @@ type sockaddrInet6 struct {
48} 48}
49 49
50const ( 50const (
51 sizeofIovec = 0x10 51 sizeofIovec = 0x10
52 sizeofMsghdr = 0x38 52 sizeofMsghdr = 0x38
53 sizeofMmsghdr = 0x40 53
54 sizeofCmsghdr = 0x10 54 sizeofCmsghdr = 0x10
55 55
56 sizeofSockaddrInet = 0x10 56 sizeofSockaddrInet = 0x10
diff --git a/vendor/golang.org/x/net/internal/socket/zsys_linux_riscv64.go b/vendor/golang.org/x/net/internal/socket/zsys_linux_riscv64.go
index dbff234..f12a1d7 100644
--- a/vendor/golang.org/x/net/internal/socket/zsys_linux_riscv64.go
+++ b/vendor/golang.org/x/net/internal/socket/zsys_linux_riscv64.go
@@ -49,9 +49,9 @@ type sockaddrInet6 struct {
49} 49}
50 50
51const ( 51const (
52 sizeofIovec = 0x10 52 sizeofIovec = 0x10
53 sizeofMsghdr = 0x38 53 sizeofMsghdr = 0x38
54 sizeofMmsghdr = 0x40 54
55 sizeofCmsghdr = 0x10 55 sizeofCmsghdr = 0x10
56 56
57 sizeofSockaddrInet = 0x10 57 sizeofSockaddrInet = 0x10
diff --git a/vendor/golang.org/x/net/internal/socket/zsys_linux_s390x.go b/vendor/golang.org/x/net/internal/socket/zsys_linux_s390x.go
index 3545319..7f6e8a7 100644
--- a/vendor/golang.org/x/net/internal/socket/zsys_linux_s390x.go
+++ b/vendor/golang.org/x/net/internal/socket/zsys_linux_s390x.go
@@ -48,9 +48,9 @@ type sockaddrInet6 struct {
48} 48}
49 49
50const ( 50const (
51 sizeofIovec = 0x10 51 sizeofIovec = 0x10
52 sizeofMsghdr = 0x38 52 sizeofMsghdr = 0x38
53 sizeofMmsghdr = 0x40 53
54 sizeofCmsghdr = 0x10 54 sizeofCmsghdr = 0x10
55 55
56 sizeofSockaddrInet = 0x10 56 sizeofSockaddrInet = 0x10
diff --git a/vendor/golang.org/x/net/internal/socket/zsys_netbsd_386.go b/vendor/golang.org/x/net/internal/socket/zsys_netbsd_386.go
index bf8f47c..7e258ce 100644
--- a/vendor/golang.org/x/net/internal/socket/zsys_netbsd_386.go
+++ b/vendor/golang.org/x/net/internal/socket/zsys_netbsd_386.go
@@ -47,9 +47,9 @@ type sockaddrInet6 struct {
47} 47}
48 48
49const ( 49const (
50 sizeofIovec = 0x8 50 sizeofIovec = 0x8
51 sizeofMsghdr = 0x1c 51 sizeofMsghdr = 0x1c
52 sizeofMmsghdr = 0x20 52
53 sizeofCmsghdr = 0xc 53 sizeofCmsghdr = 0xc
54 54
55 sizeofSockaddrInet = 0x10 55 sizeofSockaddrInet = 0x10
diff --git a/vendor/golang.org/x/net/internal/socket/zsys_netbsd_amd64.go b/vendor/golang.org/x/net/internal/socket/zsys_netbsd_amd64.go
index a46eff9..b3f9c0d 100644
--- a/vendor/golang.org/x/net/internal/socket/zsys_netbsd_amd64.go
+++ b/vendor/golang.org/x/net/internal/socket/zsys_netbsd_amd64.go
@@ -50,9 +50,9 @@ type sockaddrInet6 struct {
50} 50}
51 51
52const ( 52const (
53 sizeofIovec = 0x10 53 sizeofIovec = 0x10
54 sizeofMsghdr = 0x30 54 sizeofMsghdr = 0x30
55 sizeofMmsghdr = 0x40 55
56 sizeofCmsghdr = 0xc 56 sizeofCmsghdr = 0xc
57 57
58 sizeofSockaddrInet = 0x10 58 sizeofSockaddrInet = 0x10
diff --git a/vendor/golang.org/x/net/internal/socket/zsys_netbsd_arm.go b/vendor/golang.org/x/net/internal/socket/zsys_netbsd_arm.go
index bf8f47c..7e258ce 100644
--- a/vendor/golang.org/x/net/internal/socket/zsys_netbsd_arm.go
+++ b/vendor/golang.org/x/net/internal/socket/zsys_netbsd_arm.go
@@ -47,9 +47,9 @@ type sockaddrInet6 struct {
47} 47}
48 48
49const ( 49const (
50 sizeofIovec = 0x8 50 sizeofIovec = 0x8
51 sizeofMsghdr = 0x1c 51 sizeofMsghdr = 0x1c
52 sizeofMmsghdr = 0x20 52
53 sizeofCmsghdr = 0xc 53 sizeofCmsghdr = 0xc
54 54
55 sizeofSockaddrInet = 0x10 55 sizeofSockaddrInet = 0x10
diff --git a/vendor/golang.org/x/net/internal/socket/zsys_netbsd_arm64.go b/vendor/golang.org/x/net/internal/socket/zsys_netbsd_arm64.go
index a46eff9..da26ef0 100644
--- a/vendor/golang.org/x/net/internal/socket/zsys_netbsd_arm64.go
+++ b/vendor/golang.org/x/net/internal/socket/zsys_netbsd_arm64.go
@@ -52,7 +52,6 @@ type sockaddrInet6 struct {
52const ( 52const (
53 sizeofIovec = 0x10 53 sizeofIovec = 0x10
54 sizeofMsghdr = 0x30 54 sizeofMsghdr = 0x30
55 sizeofMmsghdr = 0x40
56 sizeofCmsghdr = 0xc 55 sizeofCmsghdr = 0xc
57 56
58 sizeofSockaddrInet = 0x10 57 sizeofSockaddrInet = 0x10
diff --git a/vendor/golang.org/x/net/ipv4/control_bsd.go b/vendor/golang.org/x/net/ipv4/control_bsd.go
index 19845c5..69c4f55 100644
--- a/vendor/golang.org/x/net/ipv4/control_bsd.go
+++ b/vendor/golang.org/x/net/ipv4/control_bsd.go
@@ -35,6 +35,7 @@ func marshalInterface(b []byte, cm *ControlMessage) []byte {
35} 35}
36 36
37func parseInterface(cm *ControlMessage, b []byte) { 37func parseInterface(cm *ControlMessage, b []byte) {
38 sadl := (*syscall.SockaddrDatalink)(unsafe.Pointer(&b[0])) 38 var sadl syscall.SockaddrDatalink
39 copy((*[unsafe.Sizeof(sadl)]byte)(unsafe.Pointer(&sadl))[:], b)
39 cm.IfIndex = int(sadl.Index) 40 cm.IfIndex = int(sadl.Index)
40} 41}
diff --git a/vendor/golang.org/x/net/ipv4/sys_bpf.go b/vendor/golang.org/x/net/ipv4/sys_bpf.go
index 9f30b73..5c03dce 100644
--- a/vendor/golang.org/x/net/ipv4/sys_bpf.go
+++ b/vendor/golang.org/x/net/ipv4/sys_bpf.go
@@ -11,13 +11,14 @@ import (
11 11
12 "golang.org/x/net/bpf" 12 "golang.org/x/net/bpf"
13 "golang.org/x/net/internal/socket" 13 "golang.org/x/net/internal/socket"
14 "golang.org/x/sys/unix"
14) 15)
15 16
16func (so *sockOpt) setAttachFilter(c *socket.Conn, f []bpf.RawInstruction) error { 17func (so *sockOpt) setAttachFilter(c *socket.Conn, f []bpf.RawInstruction) error {
17 prog := sockFProg{ 18 prog := unix.SockFprog{
18 Len: uint16(len(f)), 19 Len: uint16(len(f)),
19 Filter: (*sockFilter)(unsafe.Pointer(&f[0])), 20 Filter: (*unix.SockFilter)(unsafe.Pointer(&f[0])),
20 } 21 }
21 b := (*[sizeofSockFprog]byte)(unsafe.Pointer(&prog))[:sizeofSockFprog] 22 b := (*[unix.SizeofSockFprog]byte)(unsafe.Pointer(&prog))[:unix.SizeofSockFprog]
22 return so.Set(c, b) 23 return so.Set(c, b)
23} 24}
diff --git a/vendor/golang.org/x/net/ipv4/sys_linux.go b/vendor/golang.org/x/net/ipv4/sys_linux.go
index 60defe1..cf755c7 100644
--- a/vendor/golang.org/x/net/ipv4/sys_linux.go
+++ b/vendor/golang.org/x/net/ipv4/sys_linux.go
@@ -11,6 +11,7 @@ import (
11 11
12 "golang.org/x/net/internal/iana" 12 "golang.org/x/net/internal/iana"
13 "golang.org/x/net/internal/socket" 13 "golang.org/x/net/internal/socket"
14 "golang.org/x/sys/unix"
14) 15)
15 16
16var ( 17var (
@@ -35,7 +36,7 @@ var (
35 ssoLeaveSourceGroup: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysMCAST_LEAVE_SOURCE_GROUP, Len: sizeofGroupSourceReq}, typ: ssoTypeGroupSourceReq}, 36 ssoLeaveSourceGroup: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysMCAST_LEAVE_SOURCE_GROUP, Len: sizeofGroupSourceReq}, typ: ssoTypeGroupSourceReq},
36 ssoBlockSourceGroup: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysMCAST_BLOCK_SOURCE, Len: sizeofGroupSourceReq}, typ: ssoTypeGroupSourceReq}, 37 ssoBlockSourceGroup: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysMCAST_BLOCK_SOURCE, Len: sizeofGroupSourceReq}, typ: ssoTypeGroupSourceReq},
37 ssoUnblockSourceGroup: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysMCAST_UNBLOCK_SOURCE, Len: sizeofGroupSourceReq}, typ: ssoTypeGroupSourceReq}, 38 ssoUnblockSourceGroup: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysMCAST_UNBLOCK_SOURCE, Len: sizeofGroupSourceReq}, typ: ssoTypeGroupSourceReq},
38 ssoAttachFilter: {Option: socket.Option{Level: sysSOL_SOCKET, Name: sysSO_ATTACH_FILTER, Len: sizeofSockFprog}}, 39 ssoAttachFilter: {Option: socket.Option{Level: unix.SOL_SOCKET, Name: unix.SO_ATTACH_FILTER, Len: unix.SizeofSockFprog}},
39 } 40 }
40) 41)
41 42
diff --git a/vendor/golang.org/x/net/ipv4/zsys_freebsd_arm64.go b/vendor/golang.org/x/net/ipv4/zsys_freebsd_arm64.go
new file mode 100644
index 0000000..ecebf32
--- /dev/null
+++ b/vendor/golang.org/x/net/ipv4/zsys_freebsd_arm64.go
@@ -0,0 +1,93 @@
1// Code generated by cmd/cgo -godefs; DO NOT EDIT.
2// cgo -godefs defs_freebsd.go
3
4package ipv4
5
6const (
7 sysIP_OPTIONS = 0x1
8 sysIP_HDRINCL = 0x2
9 sysIP_TOS = 0x3
10 sysIP_TTL = 0x4
11 sysIP_RECVOPTS = 0x5
12 sysIP_RECVRETOPTS = 0x6
13 sysIP_RECVDSTADDR = 0x7
14 sysIP_SENDSRCADDR = 0x7
15 sysIP_RETOPTS = 0x8
16 sysIP_RECVIF = 0x14
17 sysIP_ONESBCAST = 0x17
18 sysIP_BINDANY = 0x18
19 sysIP_RECVTTL = 0x41
20 sysIP_MINTTL = 0x42
21 sysIP_DONTFRAG = 0x43
22 sysIP_RECVTOS = 0x44
23
24 sysIP_MULTICAST_IF = 0x9
25 sysIP_MULTICAST_TTL = 0xa
26 sysIP_MULTICAST_LOOP = 0xb
27 sysIP_ADD_MEMBERSHIP = 0xc
28 sysIP_DROP_MEMBERSHIP = 0xd
29 sysIP_MULTICAST_VIF = 0xe
30 sysIP_ADD_SOURCE_MEMBERSHIP = 0x46
31 sysIP_DROP_SOURCE_MEMBERSHIP = 0x47
32 sysIP_BLOCK_SOURCE = 0x48
33 sysIP_UNBLOCK_SOURCE = 0x49
34 sysMCAST_JOIN_GROUP = 0x50
35 sysMCAST_LEAVE_GROUP = 0x51
36 sysMCAST_JOIN_SOURCE_GROUP = 0x52
37 sysMCAST_LEAVE_SOURCE_GROUP = 0x53
38 sysMCAST_BLOCK_SOURCE = 0x54
39 sysMCAST_UNBLOCK_SOURCE = 0x55
40
41 sizeofSockaddrStorage = 0x80
42 sizeofSockaddrInet = 0x10
43
44 sizeofIPMreq = 0x8
45 sizeofIPMreqn = 0xc
46 sizeofIPMreqSource = 0xc
47 sizeofGroupReq = 0x88
48 sizeofGroupSourceReq = 0x108
49)
50
51type sockaddrStorage struct {
52 Len uint8
53 Family uint8
54 X__ss_pad1 [6]uint8
55 X__ss_align int64
56 X__ss_pad2 [112]uint8
57}
58
59type sockaddrInet struct {
60 Len uint8
61 Family uint8
62 Port uint16
63 Addr [4]byte /* in_addr */
64 Zero [8]uint8
65}
66
67type ipMreq struct {
68 Multiaddr [4]byte /* in_addr */
69 Interface [4]byte /* in_addr */
70}
71
72type ipMreqn struct {
73 Multiaddr [4]byte /* in_addr */
74 Address [4]byte /* in_addr */
75 Ifindex int32
76}
77
78type ipMreqSource struct {
79 Multiaddr [4]byte /* in_addr */
80 Sourceaddr [4]byte /* in_addr */
81 Interface [4]byte /* in_addr */
82}
83
84type groupReq struct {
85 Interface uint32
86 Group sockaddrStorage
87}
88
89type groupSourceReq struct {
90 Interface uint32
91 Group sockaddrStorage
92 Source sockaddrStorage
93}
diff --git a/vendor/golang.org/x/net/ipv4/zsys_linux_386.go b/vendor/golang.org/x/net/ipv4/zsys_linux_386.go
index 43ef8e5..1c7fdfa 100644
--- a/vendor/golang.org/x/net/ipv4/zsys_linux_386.go
+++ b/vendor/golang.org/x/net/ipv4/zsys_linux_386.go
@@ -55,9 +55,6 @@ const (
55 sysSO_EE_ORIGIN_TXSTATUS = 0x4 55 sysSO_EE_ORIGIN_TXSTATUS = 0x4
56 sysSO_EE_ORIGIN_TIMESTAMPING = 0x4 56 sysSO_EE_ORIGIN_TIMESTAMPING = 0x4
57 57
58 sysSOL_SOCKET = 0x1
59 sysSO_ATTACH_FILTER = 0x1a
60
61 sizeofKernelSockaddrStorage = 0x80 58 sizeofKernelSockaddrStorage = 0x80
62 sizeofSockaddrInet = 0x10 59 sizeofSockaddrInet = 0x10
63 sizeofInetPktinfo = 0xc 60 sizeofInetPktinfo = 0xc
@@ -70,8 +67,6 @@ const (
70 sizeofGroupSourceReq = 0x104 67 sizeofGroupSourceReq = 0x104
71 68
72 sizeofICMPFilter = 0x4 69 sizeofICMPFilter = 0x4
73
74 sizeofSockFprog = 0x8
75) 70)
76 71
77type kernelSockaddrStorage struct { 72type kernelSockaddrStorage struct {
@@ -133,16 +128,3 @@ type groupSourceReq struct {
133type icmpFilter struct { 128type icmpFilter struct {
134 Data uint32 129 Data uint32
135} 130}
136
137type sockFProg struct {
138 Len uint16
139 Pad_cgo_0 [2]byte
140 Filter *sockFilter
141}
142
143type sockFilter struct {
144 Code uint16
145 Jt uint8
146 Jf uint8
147 K uint32
148}
diff --git a/vendor/golang.org/x/net/ipv4/zsys_linux_amd64.go b/vendor/golang.org/x/net/ipv4/zsys_linux_amd64.go
index ee8204d..a04e785 100644
--- a/vendor/golang.org/x/net/ipv4/zsys_linux_amd64.go
+++ b/vendor/golang.org/x/net/ipv4/zsys_linux_amd64.go
@@ -55,9 +55,6 @@ const (
55 sysSO_EE_ORIGIN_TXSTATUS = 0x4 55 sysSO_EE_ORIGIN_TXSTATUS = 0x4
56 sysSO_EE_ORIGIN_TIMESTAMPING = 0x4 56 sysSO_EE_ORIGIN_TIMESTAMPING = 0x4
57 57
58 sysSOL_SOCKET = 0x1
59 sysSO_ATTACH_FILTER = 0x1a
60
61 sizeofKernelSockaddrStorage = 0x80 58 sizeofKernelSockaddrStorage = 0x80
62 sizeofSockaddrInet = 0x10 59 sizeofSockaddrInet = 0x10
63 sizeofInetPktinfo = 0xc 60 sizeofInetPktinfo = 0xc
@@ -70,8 +67,6 @@ const (
70 sizeofGroupSourceReq = 0x108 67 sizeofGroupSourceReq = 0x108
71 68
72 sizeofICMPFilter = 0x4 69 sizeofICMPFilter = 0x4
73
74 sizeofSockFprog = 0x10
75) 70)
76 71
77type kernelSockaddrStorage struct { 72type kernelSockaddrStorage struct {
@@ -135,16 +130,3 @@ type groupSourceReq struct {
135type icmpFilter struct { 130type icmpFilter struct {
136 Data uint32 131 Data uint32
137} 132}
138
139type sockFProg struct {
140 Len uint16
141 Pad_cgo_0 [6]byte
142 Filter *sockFilter
143}
144
145type sockFilter struct {
146 Code uint16
147 Jt uint8
148 Jf uint8
149 K uint32
150}
diff --git a/vendor/golang.org/x/net/ipv4/zsys_linux_arm.go b/vendor/golang.org/x/net/ipv4/zsys_linux_arm.go
index 43ef8e5..1c7fdfa 100644
--- a/vendor/golang.org/x/net/ipv4/zsys_linux_arm.go
+++ b/vendor/golang.org/x/net/ipv4/zsys_linux_arm.go
@@ -55,9 +55,6 @@ const (
55 sysSO_EE_ORIGIN_TXSTATUS = 0x4 55 sysSO_EE_ORIGIN_TXSTATUS = 0x4
56 sysSO_EE_ORIGIN_TIMESTAMPING = 0x4 56 sysSO_EE_ORIGIN_TIMESTAMPING = 0x4
57 57
58 sysSOL_SOCKET = 0x1
59 sysSO_ATTACH_FILTER = 0x1a
60
61 sizeofKernelSockaddrStorage = 0x80 58 sizeofKernelSockaddrStorage = 0x80
62 sizeofSockaddrInet = 0x10 59 sizeofSockaddrInet = 0x10
63 sizeofInetPktinfo = 0xc 60 sizeofInetPktinfo = 0xc
@@ -70,8 +67,6 @@ const (
70 sizeofGroupSourceReq = 0x104 67 sizeofGroupSourceReq = 0x104
71 68
72 sizeofICMPFilter = 0x4 69 sizeofICMPFilter = 0x4
73
74 sizeofSockFprog = 0x8
75) 70)
76 71
77type kernelSockaddrStorage struct { 72type kernelSockaddrStorage struct {
@@ -133,16 +128,3 @@ type groupSourceReq struct {
133type icmpFilter struct { 128type icmpFilter struct {
134 Data uint32 129 Data uint32
135} 130}
136
137type sockFProg struct {
138 Len uint16
139 Pad_cgo_0 [2]byte
140 Filter *sockFilter
141}
142
143type sockFilter struct {
144 Code uint16
145 Jt uint8
146 Jf uint8
147 K uint32
148}
diff --git a/vendor/golang.org/x/net/ipv4/zsys_linux_arm64.go b/vendor/golang.org/x/net/ipv4/zsys_linux_arm64.go
index ee8204d..a04e785 100644
--- a/vendor/golang.org/x/net/ipv4/zsys_linux_arm64.go
+++ b/vendor/golang.org/x/net/ipv4/zsys_linux_arm64.go
@@ -55,9 +55,6 @@ const (
55 sysSO_EE_ORIGIN_TXSTATUS = 0x4 55 sysSO_EE_ORIGIN_TXSTATUS = 0x4
56 sysSO_EE_ORIGIN_TIMESTAMPING = 0x4 56 sysSO_EE_ORIGIN_TIMESTAMPING = 0x4
57 57
58 sysSOL_SOCKET = 0x1
59 sysSO_ATTACH_FILTER = 0x1a
60
61 sizeofKernelSockaddrStorage = 0x80 58 sizeofKernelSockaddrStorage = 0x80
62 sizeofSockaddrInet = 0x10 59 sizeofSockaddrInet = 0x10
63 sizeofInetPktinfo = 0xc 60 sizeofInetPktinfo = 0xc
@@ -70,8 +67,6 @@ const (
70 sizeofGroupSourceReq = 0x108 67 sizeofGroupSourceReq = 0x108
71 68
72 sizeofICMPFilter = 0x4 69 sizeofICMPFilter = 0x4
73
74 sizeofSockFprog = 0x10
75) 70)
76 71
77type kernelSockaddrStorage struct { 72type kernelSockaddrStorage struct {
@@ -135,16 +130,3 @@ type groupSourceReq struct {
135type icmpFilter struct { 130type icmpFilter struct {
136 Data uint32 131 Data uint32
137} 132}
138
139type sockFProg struct {
140 Len uint16
141 Pad_cgo_0 [6]byte
142 Filter *sockFilter
143}
144
145type sockFilter struct {
146 Code uint16
147 Jt uint8
148 Jf uint8
149 K uint32
150}
diff --git a/vendor/golang.org/x/net/ipv4/zsys_linux_mips.go b/vendor/golang.org/x/net/ipv4/zsys_linux_mips.go
index 43ef8e5..1c7fdfa 100644
--- a/vendor/golang.org/x/net/ipv4/zsys_linux_mips.go
+++ b/vendor/golang.org/x/net/ipv4/zsys_linux_mips.go
@@ -55,9 +55,6 @@ const (
55 sysSO_EE_ORIGIN_TXSTATUS = 0x4 55 sysSO_EE_ORIGIN_TXSTATUS = 0x4
56 sysSO_EE_ORIGIN_TIMESTAMPING = 0x4 56 sysSO_EE_ORIGIN_TIMESTAMPING = 0x4
57 57
58 sysSOL_SOCKET = 0x1
59 sysSO_ATTACH_FILTER = 0x1a
60
61 sizeofKernelSockaddrStorage = 0x80 58 sizeofKernelSockaddrStorage = 0x80
62 sizeofSockaddrInet = 0x10 59 sizeofSockaddrInet = 0x10
63 sizeofInetPktinfo = 0xc 60 sizeofInetPktinfo = 0xc
@@ -70,8 +67,6 @@ const (
70 sizeofGroupSourceReq = 0x104 67 sizeofGroupSourceReq = 0x104
71 68
72 sizeofICMPFilter = 0x4 69 sizeofICMPFilter = 0x4
73
74 sizeofSockFprog = 0x8
75) 70)
76 71
77type kernelSockaddrStorage struct { 72type kernelSockaddrStorage struct {
@@ -133,16 +128,3 @@ type groupSourceReq struct {
133type icmpFilter struct { 128type icmpFilter struct {
134 Data uint32 129 Data uint32
135} 130}
136
137type sockFProg struct {
138 Len uint16
139 Pad_cgo_0 [2]byte
140 Filter *sockFilter
141}
142
143type sockFilter struct {
144 Code uint16
145 Jt uint8
146 Jf uint8
147 K uint32
148}
diff --git a/vendor/golang.org/x/net/ipv4/zsys_linux_mips64.go b/vendor/golang.org/x/net/ipv4/zsys_linux_mips64.go
index ee8204d..a04e785 100644
--- a/vendor/golang.org/x/net/ipv4/zsys_linux_mips64.go
+++ b/vendor/golang.org/x/net/ipv4/zsys_linux_mips64.go
@@ -55,9 +55,6 @@ const (
55 sysSO_EE_ORIGIN_TXSTATUS = 0x4 55 sysSO_EE_ORIGIN_TXSTATUS = 0x4
56 sysSO_EE_ORIGIN_TIMESTAMPING = 0x4 56 sysSO_EE_ORIGIN_TIMESTAMPING = 0x4
57 57
58 sysSOL_SOCKET = 0x1
59 sysSO_ATTACH_FILTER = 0x1a
60
61 sizeofKernelSockaddrStorage = 0x80 58 sizeofKernelSockaddrStorage = 0x80
62 sizeofSockaddrInet = 0x10 59 sizeofSockaddrInet = 0x10
63 sizeofInetPktinfo = 0xc 60 sizeofInetPktinfo = 0xc
@@ -70,8 +67,6 @@ const (
70 sizeofGroupSourceReq = 0x108 67 sizeofGroupSourceReq = 0x108
71 68
72 sizeofICMPFilter = 0x4 69 sizeofICMPFilter = 0x4
73
74 sizeofSockFprog = 0x10
75) 70)
76 71
77type kernelSockaddrStorage struct { 72type kernelSockaddrStorage struct {
@@ -135,16 +130,3 @@ type groupSourceReq struct {
135type icmpFilter struct { 130type icmpFilter struct {
136 Data uint32 131 Data uint32
137} 132}
138
139type sockFProg struct {
140 Len uint16
141 Pad_cgo_0 [6]byte
142 Filter *sockFilter
143}
144
145type sockFilter struct {
146 Code uint16
147 Jt uint8
148 Jf uint8
149 K uint32
150}
diff --git a/vendor/golang.org/x/net/ipv4/zsys_linux_mips64le.go b/vendor/golang.org/x/net/ipv4/zsys_linux_mips64le.go
index ee8204d..a04e785 100644
--- a/vendor/golang.org/x/net/ipv4/zsys_linux_mips64le.go
+++ b/vendor/golang.org/x/net/ipv4/zsys_linux_mips64le.go
@@ -55,9 +55,6 @@ const (
55 sysSO_EE_ORIGIN_TXSTATUS = 0x4 55 sysSO_EE_ORIGIN_TXSTATUS = 0x4
56 sysSO_EE_ORIGIN_TIMESTAMPING = 0x4 56 sysSO_EE_ORIGIN_TIMESTAMPING = 0x4
57 57
58 sysSOL_SOCKET = 0x1
59 sysSO_ATTACH_FILTER = 0x1a
60
61 sizeofKernelSockaddrStorage = 0x80 58 sizeofKernelSockaddrStorage = 0x80
62 sizeofSockaddrInet = 0x10 59 sizeofSockaddrInet = 0x10
63 sizeofInetPktinfo = 0xc 60 sizeofInetPktinfo = 0xc
@@ -70,8 +67,6 @@ const (
70 sizeofGroupSourceReq = 0x108 67 sizeofGroupSourceReq = 0x108
71 68
72 sizeofICMPFilter = 0x4 69 sizeofICMPFilter = 0x4
73
74 sizeofSockFprog = 0x10
75) 70)
76 71
77type kernelSockaddrStorage struct { 72type kernelSockaddrStorage struct {
@@ -135,16 +130,3 @@ type groupSourceReq struct {
135type icmpFilter struct { 130type icmpFilter struct {
136 Data uint32 131 Data uint32
137} 132}
138
139type sockFProg struct {
140 Len uint16
141 Pad_cgo_0 [6]byte
142 Filter *sockFilter
143}
144
145type sockFilter struct {
146 Code uint16
147 Jt uint8
148 Jf uint8
149 K uint32
150}
diff --git a/vendor/golang.org/x/net/ipv4/zsys_linux_mipsle.go b/vendor/golang.org/x/net/ipv4/zsys_linux_mipsle.go
index 43ef8e5..1c7fdfa 100644
--- a/vendor/golang.org/x/net/ipv4/zsys_linux_mipsle.go
+++ b/vendor/golang.org/x/net/ipv4/zsys_linux_mipsle.go
@@ -55,9 +55,6 @@ const (
55 sysSO_EE_ORIGIN_TXSTATUS = 0x4 55 sysSO_EE_ORIGIN_TXSTATUS = 0x4
56 sysSO_EE_ORIGIN_TIMESTAMPING = 0x4 56 sysSO_EE_ORIGIN_TIMESTAMPING = 0x4
57 57
58 sysSOL_SOCKET = 0x1
59 sysSO_ATTACH_FILTER = 0x1a
60
61 sizeofKernelSockaddrStorage = 0x80 58 sizeofKernelSockaddrStorage = 0x80
62 sizeofSockaddrInet = 0x10 59 sizeofSockaddrInet = 0x10
63 sizeofInetPktinfo = 0xc 60 sizeofInetPktinfo = 0xc
@@ -70,8 +67,6 @@ const (
70 sizeofGroupSourceReq = 0x104 67 sizeofGroupSourceReq = 0x104
71 68
72 sizeofICMPFilter = 0x4 69 sizeofICMPFilter = 0x4
73
74 sizeofSockFprog = 0x8
75) 70)
76 71
77type kernelSockaddrStorage struct { 72type kernelSockaddrStorage struct {
@@ -133,16 +128,3 @@ type groupSourceReq struct {
133type icmpFilter struct { 128type icmpFilter struct {
134 Data uint32 129 Data uint32
135} 130}
136
137type sockFProg struct {
138 Len uint16
139 Pad_cgo_0 [2]byte
140 Filter *sockFilter
141}
142
143type sockFilter struct {
144 Code uint16
145 Jt uint8
146 Jf uint8
147 K uint32
148}
diff --git a/vendor/golang.org/x/net/ipv4/zsys_linux_ppc.go b/vendor/golang.org/x/net/ipv4/zsys_linux_ppc.go
index fa1b6bc..3c5ea54 100644
--- a/vendor/golang.org/x/net/ipv4/zsys_linux_ppc.go
+++ b/vendor/golang.org/x/net/ipv4/zsys_linux_ppc.go
@@ -55,9 +55,6 @@ const (
55 sysSO_EE_ORIGIN_TXSTATUS = 0x4 55 sysSO_EE_ORIGIN_TXSTATUS = 0x4
56 sysSO_EE_ORIGIN_TIMESTAMPING = 0x4 56 sysSO_EE_ORIGIN_TIMESTAMPING = 0x4
57 57
58 sysSOL_SOCKET = 0x1
59 sysSO_ATTACH_FILTER = 0x1a
60
61 sizeofKernelSockaddrStorage = 0x80 58 sizeofKernelSockaddrStorage = 0x80
62 sizeofSockaddrInet = 0x10 59 sizeofSockaddrInet = 0x10
63 sizeofInetPktinfo = 0xc 60 sizeofInetPktinfo = 0xc
@@ -70,8 +67,6 @@ const (
70 sizeofGroupSourceReq = 0x104 67 sizeofGroupSourceReq = 0x104
71 68
72 sizeofICMPFilter = 0x4 69 sizeofICMPFilter = 0x4
73
74 sizeofSockFprog = 0x8
75) 70)
76 71
77type kernelSockaddrStorage struct { 72type kernelSockaddrStorage struct {
@@ -133,16 +128,3 @@ type groupSourceReq struct {
133type icmpFilter struct { 128type icmpFilter struct {
134 Data uint32 129 Data uint32
135} 130}
136
137type sockFProg struct {
138 Len uint16
139 Pad_cgo_0 [2]byte
140 Filter *sockFilter
141}
142
143type sockFilter struct {
144 Code uint16
145 Jt uint8
146 Jf uint8
147 K uint32
148}
diff --git a/vendor/golang.org/x/net/ipv4/zsys_linux_ppc64.go b/vendor/golang.org/x/net/ipv4/zsys_linux_ppc64.go
index ee8204d..a04e785 100644
--- a/vendor/golang.org/x/net/ipv4/zsys_linux_ppc64.go
+++ b/vendor/golang.org/x/net/ipv4/zsys_linux_ppc64.go
@@ -55,9 +55,6 @@ const (
55 sysSO_EE_ORIGIN_TXSTATUS = 0x4 55 sysSO_EE_ORIGIN_TXSTATUS = 0x4
56 sysSO_EE_ORIGIN_TIMESTAMPING = 0x4 56 sysSO_EE_ORIGIN_TIMESTAMPING = 0x4
57 57
58 sysSOL_SOCKET = 0x1
59 sysSO_ATTACH_FILTER = 0x1a
60
61 sizeofKernelSockaddrStorage = 0x80 58 sizeofKernelSockaddrStorage = 0x80
62 sizeofSockaddrInet = 0x10 59 sizeofSockaddrInet = 0x10
63 sizeofInetPktinfo = 0xc 60 sizeofInetPktinfo = 0xc
@@ -70,8 +67,6 @@ const (
70 sizeofGroupSourceReq = 0x108 67 sizeofGroupSourceReq = 0x108
71 68
72 sizeofICMPFilter = 0x4 69 sizeofICMPFilter = 0x4
73
74 sizeofSockFprog = 0x10
75) 70)
76 71
77type kernelSockaddrStorage struct { 72type kernelSockaddrStorage struct {
@@ -135,16 +130,3 @@ type groupSourceReq struct {
135type icmpFilter struct { 130type icmpFilter struct {
136 Data uint32 131 Data uint32
137} 132}
138
139type sockFProg struct {
140 Len uint16
141 Pad_cgo_0 [6]byte
142 Filter *sockFilter
143}
144
145type sockFilter struct {
146 Code uint16
147 Jt uint8
148 Jf uint8
149 K uint32
150}
diff --git a/vendor/golang.org/x/net/ipv4/zsys_linux_ppc64le.go b/vendor/golang.org/x/net/ipv4/zsys_linux_ppc64le.go
index ee8204d..a04e785 100644
--- a/vendor/golang.org/x/net/ipv4/zsys_linux_ppc64le.go
+++ b/vendor/golang.org/x/net/ipv4/zsys_linux_ppc64le.go
@@ -55,9 +55,6 @@ const (
55 sysSO_EE_ORIGIN_TXSTATUS = 0x4 55 sysSO_EE_ORIGIN_TXSTATUS = 0x4
56 sysSO_EE_ORIGIN_TIMESTAMPING = 0x4 56 sysSO_EE_ORIGIN_TIMESTAMPING = 0x4
57 57
58 sysSOL_SOCKET = 0x1
59 sysSO_ATTACH_FILTER = 0x1a
60
61 sizeofKernelSockaddrStorage = 0x80 58 sizeofKernelSockaddrStorage = 0x80
62 sizeofSockaddrInet = 0x10 59 sizeofSockaddrInet = 0x10
63 sizeofInetPktinfo = 0xc 60 sizeofInetPktinfo = 0xc
@@ -70,8 +67,6 @@ const (
70 sizeofGroupSourceReq = 0x108 67 sizeofGroupSourceReq = 0x108
71 68
72 sizeofICMPFilter = 0x4 69 sizeofICMPFilter = 0x4
73
74 sizeofSockFprog = 0x10
75) 70)
76 71
77type kernelSockaddrStorage struct { 72type kernelSockaddrStorage struct {
@@ -135,16 +130,3 @@ type groupSourceReq struct {
135type icmpFilter struct { 130type icmpFilter struct {
136 Data uint32 131 Data uint32
137} 132}
138
139type sockFProg struct {
140 Len uint16
141 Pad_cgo_0 [6]byte
142 Filter *sockFilter
143}
144
145type sockFilter struct {
146 Code uint16
147 Jt uint8
148 Jf uint8
149 K uint32
150}
diff --git a/vendor/golang.org/x/net/ipv4/zsys_linux_riscv64.go b/vendor/golang.org/x/net/ipv4/zsys_linux_riscv64.go
index 0c0d480..e626134 100644
--- a/vendor/golang.org/x/net/ipv4/zsys_linux_riscv64.go
+++ b/vendor/golang.org/x/net/ipv4/zsys_linux_riscv64.go
@@ -57,9 +57,6 @@ const (
57 sysSO_EE_ORIGIN_TXSTATUS = 0x4 57 sysSO_EE_ORIGIN_TXSTATUS = 0x4
58 sysSO_EE_ORIGIN_TIMESTAMPING = 0x4 58 sysSO_EE_ORIGIN_TIMESTAMPING = 0x4
59 59
60 sysSOL_SOCKET = 0x1
61 sysSO_ATTACH_FILTER = 0x1a
62
63 sizeofKernelSockaddrStorage = 0x80 60 sizeofKernelSockaddrStorage = 0x80
64 sizeofSockaddrInet = 0x10 61 sizeofSockaddrInet = 0x10
65 sizeofInetPktinfo = 0xc 62 sizeofInetPktinfo = 0xc
@@ -72,8 +69,6 @@ const (
72 sizeofGroupSourceReq = 0x108 69 sizeofGroupSourceReq = 0x108
73 70
74 sizeofICMPFilter = 0x4 71 sizeofICMPFilter = 0x4
75
76 sizeofSockFprog = 0x10
77) 72)
78 73
79type kernelSockaddrStorage struct { 74type kernelSockaddrStorage struct {
@@ -137,15 +132,3 @@ type groupSourceReq struct {
137type icmpFilter struct { 132type icmpFilter struct {
138 Data uint32 133 Data uint32
139} 134}
140
141type sockFProg struct {
142 Len uint16
143 Filter *sockFilter
144}
145
146type sockFilter struct {
147 Code uint16
148 Jt uint8
149 Jf uint8
150 K uint32
151}
diff --git a/vendor/golang.org/x/net/ipv4/zsys_linux_s390x.go b/vendor/golang.org/x/net/ipv4/zsys_linux_s390x.go
index ee8204d..a04e785 100644
--- a/vendor/golang.org/x/net/ipv4/zsys_linux_s390x.go
+++ b/vendor/golang.org/x/net/ipv4/zsys_linux_s390x.go
@@ -55,9 +55,6 @@ const (
55 sysSO_EE_ORIGIN_TXSTATUS = 0x4 55 sysSO_EE_ORIGIN_TXSTATUS = 0x4
56 sysSO_EE_ORIGIN_TIMESTAMPING = 0x4 56 sysSO_EE_ORIGIN_TIMESTAMPING = 0x4
57 57
58 sysSOL_SOCKET = 0x1
59 sysSO_ATTACH_FILTER = 0x1a
60
61 sizeofKernelSockaddrStorage = 0x80 58 sizeofKernelSockaddrStorage = 0x80
62 sizeofSockaddrInet = 0x10 59 sizeofSockaddrInet = 0x10
63 sizeofInetPktinfo = 0xc 60 sizeofInetPktinfo = 0xc
@@ -70,8 +67,6 @@ const (
70 sizeofGroupSourceReq = 0x108 67 sizeofGroupSourceReq = 0x108
71 68
72 sizeofICMPFilter = 0x4 69 sizeofICMPFilter = 0x4
73
74 sizeofSockFprog = 0x10
75) 70)
76 71
77type kernelSockaddrStorage struct { 72type kernelSockaddrStorage struct {
@@ -135,16 +130,3 @@ type groupSourceReq struct {
135type icmpFilter struct { 130type icmpFilter struct {
136 Data uint32 131 Data uint32
137} 132}
138
139type sockFProg struct {
140 Len uint16
141 Pad_cgo_0 [6]byte
142 Filter *sockFilter
143}
144
145type sockFilter struct {
146 Code uint16
147 Jt uint8
148 Jf uint8
149 K uint32
150}
diff --git a/vendor/golang.org/x/sys/unix/asm_linux_riscv64.s b/vendor/golang.org/x/sys/unix/asm_linux_riscv64.s
index 6db717d..3cfefed 100644
--- a/vendor/golang.org/x/sys/unix/asm_linux_riscv64.s
+++ b/vendor/golang.org/x/sys/unix/asm_linux_riscv64.s
@@ -23,10 +23,6 @@ TEXT ·SyscallNoError(SB),NOSPLIT,$0-48
23 MOV a1+8(FP), A0 23 MOV a1+8(FP), A0
24 MOV a2+16(FP), A1 24 MOV a2+16(FP), A1
25 MOV a3+24(FP), A2 25 MOV a3+24(FP), A2
26 MOV $0, A3
27 MOV $0, A4
28 MOV $0, A5
29 MOV $0, A6
30 MOV trap+0(FP), A7 // syscall entry 26 MOV trap+0(FP), A7 // syscall entry
31 ECALL 27 ECALL
32 MOV A0, r1+32(FP) // r1 28 MOV A0, r1+32(FP) // r1
@@ -44,9 +40,6 @@ TEXT ·RawSyscallNoError(SB),NOSPLIT,$0-48
44 MOV a1+8(FP), A0 40 MOV a1+8(FP), A0
45 MOV a2+16(FP), A1 41 MOV a2+16(FP), A1
46 MOV a3+24(FP), A2 42 MOV a3+24(FP), A2
47 MOV ZERO, A3
48 MOV ZERO, A4
49 MOV ZERO, A5
50 MOV trap+0(FP), A7 // syscall entry 43 MOV trap+0(FP), A7 // syscall entry
51 ECALL 44 ECALL
52 MOV A0, r1+32(FP) 45 MOV A0, r1+32(FP)
diff --git a/vendor/golang.org/x/sys/unix/bluetooth_linux.go b/vendor/golang.org/x/sys/unix/bluetooth_linux.go
index 6e32296..a178a61 100644
--- a/vendor/golang.org/x/sys/unix/bluetooth_linux.go
+++ b/vendor/golang.org/x/sys/unix/bluetooth_linux.go
@@ -23,6 +23,7 @@ const (
23 HCI_CHANNEL_USER = 1 23 HCI_CHANNEL_USER = 1
24 HCI_CHANNEL_MONITOR = 2 24 HCI_CHANNEL_MONITOR = 2
25 HCI_CHANNEL_CONTROL = 3 25 HCI_CHANNEL_CONTROL = 3
26 HCI_CHANNEL_LOGGING = 4
26) 27)
27 28
28// Socketoption Level 29// Socketoption Level
diff --git a/vendor/golang.org/x/sys/unix/fcntl.go b/vendor/golang.org/x/sys/unix/fcntl.go
index 39c03f1..4dc5348 100644
--- a/vendor/golang.org/x/sys/unix/fcntl.go
+++ b/vendor/golang.org/x/sys/unix/fcntl.go
@@ -9,12 +9,11 @@ package unix
9import "unsafe" 9import "unsafe"
10 10
11// fcntl64Syscall is usually SYS_FCNTL, but is overridden on 32-bit Linux 11// fcntl64Syscall is usually SYS_FCNTL, but is overridden on 32-bit Linux
12// systems by flock_linux_32bit.go to be SYS_FCNTL64. 12// systems by fcntl_linux_32bit.go to be SYS_FCNTL64.
13var fcntl64Syscall uintptr = SYS_FCNTL 13var fcntl64Syscall uintptr = SYS_FCNTL
14 14
15// FcntlInt performs a fcntl syscall on fd with the provided command and argument. 15func fcntl(fd int, cmd, arg int) (int, error) {
16func FcntlInt(fd uintptr, cmd, arg int) (int, error) { 16 valptr, _, errno := Syscall(fcntl64Syscall, uintptr(fd), uintptr(cmd), uintptr(arg))
17 valptr, _, errno := Syscall(fcntl64Syscall, fd, uintptr(cmd), uintptr(arg))
18 var err error 17 var err error
19 if errno != 0 { 18 if errno != 0 {
20 err = errno 19 err = errno
@@ -22,6 +21,11 @@ func FcntlInt(fd uintptr, cmd, arg int) (int, error) {
22 return int(valptr), err 21 return int(valptr), err
23} 22}
24 23
24// FcntlInt performs a fcntl syscall on fd with the provided command and argument.
25func FcntlInt(fd uintptr, cmd, arg int) (int, error) {
26 return fcntl(int(fd), cmd, arg)
27}
28
25// FcntlFlock performs a fcntl syscall for the F_GETLK, F_SETLK or F_SETLKW command. 29// FcntlFlock performs a fcntl syscall for the F_GETLK, F_SETLK or F_SETLKW command.
26func FcntlFlock(fd uintptr, cmd int, lk *Flock_t) error { 30func FcntlFlock(fd uintptr, cmd int, lk *Flock_t) error {
27 _, _, errno := Syscall(fcntl64Syscall, fd, uintptr(cmd), uintptr(unsafe.Pointer(lk))) 31 _, _, errno := Syscall(fcntl64Syscall, fd, uintptr(cmd), uintptr(unsafe.Pointer(lk)))
diff --git a/vendor/golang.org/x/sys/unix/fdset.go b/vendor/golang.org/x/sys/unix/fdset.go
new file mode 100644
index 0000000..b27be0a
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/fdset.go
@@ -0,0 +1,29 @@
1// Copyright 2019 The Go Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style
3// license that can be found in the LICENSE file.
4
5// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris
6
7package unix
8
9// Set adds fd to the set fds.
10func (fds *FdSet) Set(fd int) {
11 fds.Bits[fd/NFDBITS] |= (1 << (uintptr(fd) % NFDBITS))
12}
13
14// Clear removes fd from the set fds.
15func (fds *FdSet) Clear(fd int) {
16 fds.Bits[fd/NFDBITS] &^= (1 << (uintptr(fd) % NFDBITS))
17}
18
19// IsSet returns whether fd is in the set fds.
20func (fds *FdSet) IsSet(fd int) bool {
21 return fds.Bits[fd/NFDBITS]&(1<<(uintptr(fd)%NFDBITS)) != 0
22}
23
24// Zero clears the set fds.
25func (fds *FdSet) Zero() {
26 for i := range fds.Bits {
27 fds.Bits[i] = 0
28 }
29}
diff --git a/vendor/golang.org/x/sys/unix/mkall.sh b/vendor/golang.org/x/sys/unix/mkall.sh
index 5a22eca..fa0c69b 100644
--- a/vendor/golang.org/x/sys/unix/mkall.sh
+++ b/vendor/golang.org/x/sys/unix/mkall.sh
@@ -50,7 +50,7 @@ if [[ "$GOOS" = "linux" ]]; then
50 # Use the Docker-based build system 50 # Use the Docker-based build system
51 # Files generated through docker (use $cmd so you can Ctl-C the build or run) 51 # Files generated through docker (use $cmd so you can Ctl-C the build or run)
52 $cmd docker build --tag generate:$GOOS $GOOS 52 $cmd docker build --tag generate:$GOOS $GOOS
53 $cmd docker run --interactive --tty --volume $(dirname "$(readlink -f "$0")"):/build generate:$GOOS 53 $cmd docker run --interactive --tty --volume $(cd -- "$(dirname -- "$0")" && /bin/pwd):/build generate:$GOOS
54 exit 54 exit
55fi 55fi
56 56
@@ -212,9 +212,11 @@ esac
212 echo "$mksyscall -tags $GOOS,$GOARCH $syscall_goos $GOOSARCH_in && gofmt -w zsyscall_$GOOSARCH.go && gofmt -w zsyscall_"$GOOSARCH"_gccgo.go && gofmt -w zsyscall_"$GOOSARCH"_gc.go " ; 212 echo "$mksyscall -tags $GOOS,$GOARCH $syscall_goos $GOOSARCH_in && gofmt -w zsyscall_$GOOSARCH.go && gofmt -w zsyscall_"$GOOSARCH"_gccgo.go && gofmt -w zsyscall_"$GOOSARCH"_gc.go " ;
213 elif [ "$GOOS" == "darwin" ]; then 213 elif [ "$GOOS" == "darwin" ]; then
214 # pre-1.12, direct syscalls 214 # pre-1.12, direct syscalls
215 echo "$mksyscall -tags $GOOS,$GOARCH,!go1.12 $syscall_goos $GOOSARCH_in |gofmt >zsyscall_$GOOSARCH.1_11.go"; 215 echo "$mksyscall -tags $GOOS,$GOARCH,!go1.12 $syscall_goos syscall_darwin_${GOARCH}.1_11.go $GOOSARCH_in |gofmt >zsyscall_$GOOSARCH.1_11.go";
216 # 1.12 and later, syscalls via libSystem 216 # 1.12 and later, syscalls via libSystem
217 echo "$mksyscall -tags $GOOS,$GOARCH,go1.12 $syscall_goos $GOOSARCH_in |gofmt >zsyscall_$GOOSARCH.go"; 217 echo "$mksyscall -tags $GOOS,$GOARCH,go1.12 $syscall_goos $GOOSARCH_in |gofmt >zsyscall_$GOOSARCH.go";
218 # 1.13 and later, syscalls via libSystem (including syscallPtr)
219 echo "$mksyscall -tags $GOOS,$GOARCH,go1.13 syscall_darwin.1_13.go |gofmt >zsyscall_$GOOSARCH.1_13.go";
218 else 220 else
219 echo "$mksyscall -tags $GOOS,$GOARCH $syscall_goos $GOOSARCH_in |gofmt >zsyscall_$GOOSARCH.go"; 221 echo "$mksyscall -tags $GOOS,$GOARCH $syscall_goos $GOOSARCH_in |gofmt >zsyscall_$GOOSARCH.go";
220 fi 222 fi
diff --git a/vendor/golang.org/x/sys/unix/mkerrors.sh b/vendor/golang.org/x/sys/unix/mkerrors.sh
index 85cfbd0..96bf2a9 100644
--- a/vendor/golang.org/x/sys/unix/mkerrors.sh
+++ b/vendor/golang.org/x/sys/unix/mkerrors.sh
@@ -44,6 +44,7 @@ includes_AIX='
44#include <sys/stropts.h> 44#include <sys/stropts.h>
45#include <sys/mman.h> 45#include <sys/mman.h>
46#include <sys/poll.h> 46#include <sys/poll.h>
47#include <sys/select.h>
47#include <sys/termio.h> 48#include <sys/termio.h>
48#include <termios.h> 49#include <termios.h>
49#include <fcntl.h> 50#include <fcntl.h>
@@ -60,6 +61,7 @@ includes_Darwin='
60#include <sys/types.h> 61#include <sys/types.h>
61#include <sys/event.h> 62#include <sys/event.h>
62#include <sys/ptrace.h> 63#include <sys/ptrace.h>
64#include <sys/select.h>
63#include <sys/socket.h> 65#include <sys/socket.h>
64#include <sys/sockio.h> 66#include <sys/sockio.h>
65#include <sys/sysctl.h> 67#include <sys/sysctl.h>
@@ -80,6 +82,7 @@ includes_Darwin='
80includes_DragonFly=' 82includes_DragonFly='
81#include <sys/types.h> 83#include <sys/types.h>
82#include <sys/event.h> 84#include <sys/event.h>
85#include <sys/select.h>
83#include <sys/socket.h> 86#include <sys/socket.h>
84#include <sys/sockio.h> 87#include <sys/sockio.h>
85#include <sys/stat.h> 88#include <sys/stat.h>
@@ -103,6 +106,7 @@ includes_FreeBSD='
103#include <sys/param.h> 106#include <sys/param.h>
104#include <sys/types.h> 107#include <sys/types.h>
105#include <sys/event.h> 108#include <sys/event.h>
109#include <sys/select.h>
106#include <sys/socket.h> 110#include <sys/socket.h>
107#include <sys/sockio.h> 111#include <sys/sockio.h>
108#include <sys/stat.h> 112#include <sys/stat.h>
@@ -179,24 +183,34 @@ struct ltchars {
179#include <sys/stat.h> 183#include <sys/stat.h>
180#include <sys/types.h> 184#include <sys/types.h>
181#include <sys/time.h> 185#include <sys/time.h>
186#include <sys/select.h>
182#include <sys/signalfd.h> 187#include <sys/signalfd.h>
183#include <sys/socket.h> 188#include <sys/socket.h>
189#include <sys/uio.h>
184#include <sys/xattr.h> 190#include <sys/xattr.h>
185#include <linux/bpf.h> 191#include <linux/bpf.h>
192#include <linux/can.h>
186#include <linux/capability.h> 193#include <linux/capability.h>
194#include <linux/cryptouser.h>
195#include <linux/devlink.h>
187#include <linux/errqueue.h> 196#include <linux/errqueue.h>
197#include <linux/falloc.h>
198#include <linux/fanotify.h>
199#include <linux/filter.h>
200#include <linux/fs.h>
201#include <linux/fscrypt.h>
202#include <linux/genetlink.h>
203#include <linux/hdreg.h>
204#include <linux/icmpv6.h>
188#include <linux/if.h> 205#include <linux/if.h>
206#include <linux/if_addr.h>
189#include <linux/if_alg.h> 207#include <linux/if_alg.h>
190#include <linux/if_arp.h> 208#include <linux/if_arp.h>
191#include <linux/if_ether.h> 209#include <linux/if_ether.h>
192#include <linux/if_ppp.h> 210#include <linux/if_ppp.h>
193#include <linux/if_tun.h> 211#include <linux/if_tun.h>
194#include <linux/if_packet.h> 212#include <linux/if_packet.h>
195#include <linux/if_addr.h> 213#include <linux/if_xdp.h>
196#include <linux/falloc.h>
197#include <linux/fanotify.h>
198#include <linux/filter.h>
199#include <linux/fs.h>
200#include <linux/kexec.h> 214#include <linux/kexec.h>
201#include <linux/keyctl.h> 215#include <linux/keyctl.h>
202#include <linux/loop.h> 216#include <linux/loop.h>
@@ -208,25 +222,21 @@ struct ltchars {
208#include <linux/net_namespace.h> 222#include <linux/net_namespace.h>
209#include <linux/nsfs.h> 223#include <linux/nsfs.h>
210#include <linux/perf_event.h> 224#include <linux/perf_event.h>
225#include <linux/ptrace.h>
211#include <linux/random.h> 226#include <linux/random.h>
212#include <linux/reboot.h> 227#include <linux/reboot.h>
228#include <linux/rtc.h>
213#include <linux/rtnetlink.h> 229#include <linux/rtnetlink.h>
214#include <linux/ptrace.h>
215#include <linux/sched.h> 230#include <linux/sched.h>
216#include <linux/seccomp.h> 231#include <linux/seccomp.h>
217#include <linux/sockios.h>
218#include <linux/wait.h>
219#include <linux/icmpv6.h>
220#include <linux/serial.h> 232#include <linux/serial.h>
221#include <linux/can.h> 233#include <linux/sockios.h>
222#include <linux/vm_sockets.h>
223#include <linux/taskstats.h> 234#include <linux/taskstats.h>
224#include <linux/genetlink.h> 235#include <linux/tipc.h>
236#include <linux/vm_sockets.h>
237#include <linux/wait.h>
225#include <linux/watchdog.h> 238#include <linux/watchdog.h>
226#include <linux/hdreg.h> 239
227#include <linux/rtc.h>
228#include <linux/if_xdp.h>
229#include <linux/cryptouser.h>
230#include <mtd/ubi-user.h> 240#include <mtd/ubi-user.h>
231#include <net/route.h> 241#include <net/route.h>
232 242
@@ -265,6 +275,11 @@ struct ltchars {
265#define FS_KEY_DESC_PREFIX "fscrypt:" 275#define FS_KEY_DESC_PREFIX "fscrypt:"
266#define FS_KEY_DESC_PREFIX_SIZE 8 276#define FS_KEY_DESC_PREFIX_SIZE 8
267#define FS_MAX_KEY_SIZE 64 277#define FS_MAX_KEY_SIZE 64
278
279// The code generator produces -0x1 for (~0), but an unsigned value is necessary
280// for the tipc_subscr timeout __u32 field.
281#undef TIPC_WAIT_FOREVER
282#define TIPC_WAIT_FOREVER 0xffffffff
268' 283'
269 284
270includes_NetBSD=' 285includes_NetBSD='
@@ -274,6 +289,7 @@ includes_NetBSD='
274#include <sys/extattr.h> 289#include <sys/extattr.h>
275#include <sys/mman.h> 290#include <sys/mman.h>
276#include <sys/mount.h> 291#include <sys/mount.h>
292#include <sys/select.h>
277#include <sys/socket.h> 293#include <sys/socket.h>
278#include <sys/sockio.h> 294#include <sys/sockio.h>
279#include <sys/sysctl.h> 295#include <sys/sysctl.h>
@@ -300,6 +316,7 @@ includes_OpenBSD='
300#include <sys/event.h> 316#include <sys/event.h>
301#include <sys/mman.h> 317#include <sys/mman.h>
302#include <sys/mount.h> 318#include <sys/mount.h>
319#include <sys/select.h>
303#include <sys/socket.h> 320#include <sys/socket.h>
304#include <sys/sockio.h> 321#include <sys/sockio.h>
305#include <sys/stat.h> 322#include <sys/stat.h>
@@ -336,6 +353,7 @@ includes_OpenBSD='
336includes_SunOS=' 353includes_SunOS='
337#include <limits.h> 354#include <limits.h>
338#include <sys/types.h> 355#include <sys/types.h>
356#include <sys/select.h>
339#include <sys/socket.h> 357#include <sys/socket.h>
340#include <sys/sockio.h> 358#include <sys/sockio.h>
341#include <sys/stat.h> 359#include <sys/stat.h>
@@ -428,6 +446,7 @@ ccflags="$@"
428 $2 == "XCASE" || 446 $2 == "XCASE" ||
429 $2 == "ALTWERASE" || 447 $2 == "ALTWERASE" ||
430 $2 == "NOKERNINFO" || 448 $2 == "NOKERNINFO" ||
449 $2 == "NFDBITS" ||
431 $2 ~ /^PAR/ || 450 $2 ~ /^PAR/ ||
432 $2 ~ /^SIG[^_]/ || 451 $2 ~ /^SIG[^_]/ ||
433 $2 ~ /^O[CNPFPL][A-Z]+[^_][A-Z]+$/ || 452 $2 ~ /^O[CNPFPL][A-Z]+[^_][A-Z]+$/ ||
@@ -467,7 +486,7 @@ ccflags="$@"
467 $2 ~ /^TCSET/ || 486 $2 ~ /^TCSET/ ||
468 $2 ~ /^TC(FLSH|SBRKP?|XONC)$/ || 487 $2 ~ /^TC(FLSH|SBRKP?|XONC)$/ ||
469 $2 !~ "RTF_BITS" && 488 $2 !~ "RTF_BITS" &&
470 $2 ~ /^(IFF|IFT|NET_RT|RTM|RTF|RTV|RTA|RTAX)_/ || 489 $2 ~ /^(IFF|IFT|NET_RT|RTM(GRP)?|RTF|RTV|RTA|RTAX)_/ ||
471 $2 ~ /^BIOC/ || 490 $2 ~ /^BIOC/ ||
472 $2 ~ /^RUSAGE_(SELF|CHILDREN|THREAD)/ || 491 $2 ~ /^RUSAGE_(SELF|CHILDREN|THREAD)/ ||
473 $2 ~ /^RLIMIT_(AS|CORE|CPU|DATA|FSIZE|LOCKS|MEMLOCK|MSGQUEUE|NICE|NOFILE|NPROC|RSS|RTPRIO|RTTIME|SIGPENDING|STACK)|RLIM_INFINITY/ || 492 $2 ~ /^RLIMIT_(AS|CORE|CPU|DATA|FSIZE|LOCKS|MEMLOCK|MSGQUEUE|NICE|NOFILE|NPROC|RSS|RTPRIO|RTTIME|SIGPENDING|STACK)|RLIM_INFINITY/ ||
@@ -479,7 +498,9 @@ ccflags="$@"
479 $2 ~ /^CAN_/ || 498 $2 ~ /^CAN_/ ||
480 $2 ~ /^CAP_/ || 499 $2 ~ /^CAP_/ ||
481 $2 ~ /^ALG_/ || 500 $2 ~ /^ALG_/ ||
482 $2 ~ /^FS_(POLICY_FLAGS|KEY_DESC|ENCRYPTION_MODE|[A-Z0-9_]+_KEY_SIZE|IOC_(GET|SET)_ENCRYPTION)/ || 501 $2 ~ /^FS_(POLICY_FLAGS|KEY_DESC|ENCRYPTION_MODE|[A-Z0-9_]+_KEY_SIZE)/ ||
502 $2 ~ /^FS_IOC_.*ENCRYPTION/ ||
503 $2 ~ /^FSCRYPT_/ ||
483 $2 ~ /^GRND_/ || 504 $2 ~ /^GRND_/ ||
484 $2 ~ /^RND/ || 505 $2 ~ /^RND/ ||
485 $2 ~ /^KEY_(SPEC|REQKEY_DEFL)_/ || 506 $2 ~ /^KEY_(SPEC|REQKEY_DEFL)_/ ||
@@ -506,8 +527,11 @@ ccflags="$@"
506 $2 ~ /^WDIOC_/ || 527 $2 ~ /^WDIOC_/ ||
507 $2 ~ /^NFN/ || 528 $2 ~ /^NFN/ ||
508 $2 ~ /^XDP_/ || 529 $2 ~ /^XDP_/ ||
530 $2 ~ /^RWF_/ ||
509 $2 ~ /^(HDIO|WIN|SMART)_/ || 531 $2 ~ /^(HDIO|WIN|SMART)_/ ||
510 $2 ~ /^CRYPTO_/ || 532 $2 ~ /^CRYPTO_/ ||
533 $2 ~ /^TIPC_/ ||
534 $2 ~ /^DEVLINK_/ ||
511 $2 !~ "WMESGLEN" && 535 $2 !~ "WMESGLEN" &&
512 $2 ~ /^W[A-Z0-9]+$/ || 536 $2 ~ /^W[A-Z0-9]+$/ ||
513 $2 ~/^PPPIOC/ || 537 $2 ~/^PPPIOC/ ||
diff --git a/vendor/golang.org/x/sys/unix/sockcmsg_dragonfly.go b/vendor/golang.org/x/sys/unix/sockcmsg_dragonfly.go
new file mode 100644
index 0000000..5144dee
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/sockcmsg_dragonfly.go
@@ -0,0 +1,16 @@
1// Copyright 2019 The Go Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style
3// license that can be found in the LICENSE file.
4
5package unix
6
7// Round the length of a raw sockaddr up to align it properly.
8func cmsgAlignOf(salen int) int {
9 salign := SizeofPtr
10 if SizeofPtr == 8 && !supportsABI(_dragonflyABIChangeVersion) {
11 // 64-bit Dragonfly before the September 2019 ABI changes still requires
12 // 32-bit aligned access to network subsystem.
13 salign = 4
14 }
15 return (salen + salign - 1) & ^(salign - 1)
16}
diff --git a/vendor/golang.org/x/sys/unix/sockcmsg_linux.go b/vendor/golang.org/x/sys/unix/sockcmsg_linux.go
index 6079eb4..8bf4570 100644
--- a/vendor/golang.org/x/sys/unix/sockcmsg_linux.go
+++ b/vendor/golang.org/x/sys/unix/sockcmsg_linux.go
@@ -17,7 +17,7 @@ func UnixCredentials(ucred *Ucred) []byte {
17 h.Level = SOL_SOCKET 17 h.Level = SOL_SOCKET
18 h.Type = SCM_CREDENTIALS 18 h.Type = SCM_CREDENTIALS
19 h.SetLen(CmsgLen(SizeofUcred)) 19 h.SetLen(CmsgLen(SizeofUcred))
20 *((*Ucred)(cmsgData(h))) = *ucred 20 *(*Ucred)(h.data(0)) = *ucred
21 return b 21 return b
22} 22}
23 23
diff --git a/vendor/golang.org/x/sys/unix/sockcmsg_unix.go b/vendor/golang.org/x/sys/unix/sockcmsg_unix.go
index 062bcab..003916e 100644
--- a/vendor/golang.org/x/sys/unix/sockcmsg_unix.go
+++ b/vendor/golang.org/x/sys/unix/sockcmsg_unix.go
@@ -9,35 +9,9 @@
9package unix 9package unix
10 10
11import ( 11import (
12 "runtime"
13 "unsafe" 12 "unsafe"
14) 13)
15 14
16// Round the length of a raw sockaddr up to align it properly.
17func cmsgAlignOf(salen int) int {
18 salign := SizeofPtr
19
20 switch runtime.GOOS {
21 case "aix":
22 // There is no alignment on AIX.
23 salign = 1
24 case "darwin", "dragonfly", "solaris", "illumos":
25 // NOTE: It seems like 64-bit Darwin, DragonFly BSD,
26 // illumos, and Solaris kernels still require 32-bit
27 // aligned access to network subsystem.
28 if SizeofPtr == 8 {
29 salign = 4
30 }
31 case "netbsd", "openbsd":
32 // NetBSD and OpenBSD armv7 require 64-bit alignment.
33 if runtime.GOARCH == "arm" {
34 salign = 8
35 }
36 }
37
38 return (salen + salign - 1) & ^(salign - 1)
39}
40
41// CmsgLen returns the value to store in the Len field of the Cmsghdr 15// CmsgLen returns the value to store in the Len field of the Cmsghdr
42// structure, taking into account any necessary alignment. 16// structure, taking into account any necessary alignment.
43func CmsgLen(datalen int) int { 17func CmsgLen(datalen int) int {
@@ -50,8 +24,8 @@ func CmsgSpace(datalen int) int {
50 return cmsgAlignOf(SizeofCmsghdr) + cmsgAlignOf(datalen) 24 return cmsgAlignOf(SizeofCmsghdr) + cmsgAlignOf(datalen)
51} 25}
52 26
53func cmsgData(h *Cmsghdr) unsafe.Pointer { 27func (h *Cmsghdr) data(offset uintptr) unsafe.Pointer {
54 return unsafe.Pointer(uintptr(unsafe.Pointer(h)) + uintptr(cmsgAlignOf(SizeofCmsghdr))) 28 return unsafe.Pointer(uintptr(unsafe.Pointer(h)) + uintptr(cmsgAlignOf(SizeofCmsghdr)) + offset)
55} 29}
56 30
57// SocketControlMessage represents a socket control message. 31// SocketControlMessage represents a socket control message.
@@ -94,10 +68,8 @@ func UnixRights(fds ...int) []byte {
94 h.Level = SOL_SOCKET 68 h.Level = SOL_SOCKET
95 h.Type = SCM_RIGHTS 69 h.Type = SCM_RIGHTS
96 h.SetLen(CmsgLen(datalen)) 70 h.SetLen(CmsgLen(datalen))
97 data := cmsgData(h) 71 for i, fd := range fds {
98 for _, fd := range fds { 72 *(*int32)(h.data(4 * uintptr(i))) = int32(fd)
99 *(*int32)(data) = int32(fd)
100 data = unsafe.Pointer(uintptr(data) + 4)
101 } 73 }
102 return b 74 return b
103} 75}
diff --git a/vendor/golang.org/x/sys/unix/sockcmsg_unix_other.go b/vendor/golang.org/x/sys/unix/sockcmsg_unix_other.go
new file mode 100644
index 0000000..7d08dae
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/sockcmsg_unix_other.go
@@ -0,0 +1,38 @@
1// Copyright 2019 The Go Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style
3// license that can be found in the LICENSE file.
4
5// +build aix darwin freebsd linux netbsd openbsd solaris
6
7package unix
8
9import (
10 "runtime"
11)
12
13// Round the length of a raw sockaddr up to align it properly.
14func cmsgAlignOf(salen int) int {
15 salign := SizeofPtr
16
17 // dragonfly needs to check ABI version at runtime, see cmsgAlignOf in
18 // sockcmsg_dragonfly.go
19 switch runtime.GOOS {
20 case "aix":
21 // There is no alignment on AIX.
22 salign = 1
23 case "darwin", "illumos", "solaris":
24 // NOTE: It seems like 64-bit Darwin, Illumos and Solaris
25 // kernels still require 32-bit aligned access to network
26 // subsystem.
27 if SizeofPtr == 8 {
28 salign = 4
29 }
30 case "netbsd", "openbsd":
31 // NetBSD and OpenBSD armv7 require 64-bit alignment.
32 if runtime.GOARCH == "arm" {
33 salign = 8
34 }
35 }
36
37 return (salen + salign - 1) & ^(salign - 1)
38}
diff --git a/vendor/golang.org/x/sys/unix/syscall_aix_ppc.go b/vendor/golang.org/x/sys/unix/syscall_aix_ppc.go
index bf05603..b3c8e33 100644
--- a/vendor/golang.org/x/sys/unix/syscall_aix_ppc.go
+++ b/vendor/golang.org/x/sys/unix/syscall_aix_ppc.go
@@ -29,6 +29,10 @@ func (msghdr *Msghdr) SetControllen(length int) {
29 msghdr.Controllen = uint32(length) 29 msghdr.Controllen = uint32(length)
30} 30}
31 31
32func (msghdr *Msghdr) SetIovlen(length int) {
33 msghdr.Iovlen = int32(length)
34}
35
32func (cmsg *Cmsghdr) SetLen(length int) { 36func (cmsg *Cmsghdr) SetLen(length int) {
33 cmsg.Len = uint32(length) 37 cmsg.Len = uint32(length)
34} 38}
diff --git a/vendor/golang.org/x/sys/unix/syscall_aix_ppc64.go b/vendor/golang.org/x/sys/unix/syscall_aix_ppc64.go
index 13d4321..9a6e024 100644
--- a/vendor/golang.org/x/sys/unix/syscall_aix_ppc64.go
+++ b/vendor/golang.org/x/sys/unix/syscall_aix_ppc64.go
@@ -29,6 +29,10 @@ func (msghdr *Msghdr) SetControllen(length int) {
29 msghdr.Controllen = uint32(length) 29 msghdr.Controllen = uint32(length)
30} 30}
31 31
32func (msghdr *Msghdr) SetIovlen(length int) {
33 msghdr.Iovlen = int32(length)
34}
35
32func (cmsg *Cmsghdr) SetLen(length int) { 36func (cmsg *Cmsghdr) SetLen(length int) {
33 cmsg.Len = uint32(length) 37 cmsg.Len = uint32(length)
34} 38}
diff --git a/vendor/golang.org/x/sys/unix/syscall_bsd.go b/vendor/golang.org/x/sys/unix/syscall_bsd.go
index 97a8eef..68605db 100644
--- a/vendor/golang.org/x/sys/unix/syscall_bsd.go
+++ b/vendor/golang.org/x/sys/unix/syscall_bsd.go
@@ -237,7 +237,7 @@ func anyToSockaddr(fd int, rsa *RawSockaddrAny) (Sockaddr, error) {
237 break 237 break
238 } 238 }
239 } 239 }
240 bytes := (*[10000]byte)(unsafe.Pointer(&pp.Path[0]))[0:n] 240 bytes := (*[len(pp.Path)]byte)(unsafe.Pointer(&pp.Path[0]))[0:n]
241 sa.Name = string(bytes) 241 sa.Name = string(bytes)
242 return sa, nil 242 return sa, nil
243 243
@@ -413,8 +413,6 @@ func Kevent(kq int, changes, events []Kevent_t, timeout *Timespec) (n int, err e
413 return kevent(kq, change, len(changes), event, len(events), timeout) 413 return kevent(kq, change, len(changes), event, len(events), timeout)
414} 414}
415 415
416//sys sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) = SYS___SYSCTL
417
418// sysctlmib translates name to mib number and appends any additional args. 416// sysctlmib translates name to mib number and appends any additional args.
419func sysctlmib(name string, args ...int) ([]_C_int, error) { 417func sysctlmib(name string, args ...int) ([]_C_int, error) {
420 // Translate name to mib number. 418 // Translate name to mib number.
@@ -512,6 +510,23 @@ func SysctlRaw(name string, args ...int) ([]byte, error) {
512 return buf[:n], nil 510 return buf[:n], nil
513} 511}
514 512
513func SysctlClockinfo(name string) (*Clockinfo, error) {
514 mib, err := sysctlmib(name)
515 if err != nil {
516 return nil, err
517 }
518
519 n := uintptr(SizeofClockinfo)
520 var ci Clockinfo
521 if err := sysctl(mib, (*byte)(unsafe.Pointer(&ci)), &n, nil, 0); err != nil {
522 return nil, err
523 }
524 if n != SizeofClockinfo {
525 return nil, EIO
526 }
527 return &ci, nil
528}
529
515//sys utimes(path string, timeval *[2]Timeval) (err error) 530//sys utimes(path string, timeval *[2]Timeval) (err error)
516 531
517func Utimes(path string, tv []Timeval) error { 532func Utimes(path string, tv []Timeval) error {
@@ -579,8 +594,6 @@ func Futimes(fd int, tv []Timeval) error {
579 return futimes(fd, (*[2]Timeval)(unsafe.Pointer(&tv[0]))) 594 return futimes(fd, (*[2]Timeval)(unsafe.Pointer(&tv[0])))
580} 595}
581 596
582//sys fcntl(fd int, cmd int, arg int) (val int, err error)
583
584//sys poll(fds *PollFd, nfds int, timeout int) (n int, err error) 597//sys poll(fds *PollFd, nfds int, timeout int) (n int, err error)
585 598
586func Poll(fds []PollFd, timeout int) (n int, err error) { 599func Poll(fds []PollFd, timeout int) (n int, err error) {
diff --git a/vendor/golang.org/x/sys/unix/syscall_darwin.1_12.go b/vendor/golang.org/x/sys/unix/syscall_darwin.1_12.go
new file mode 100644
index 0000000..6a15cba
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/syscall_darwin.1_12.go
@@ -0,0 +1,29 @@
1// Copyright 2019 The Go Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style
3// license that can be found in the LICENSE file.
4
5// +build darwin,go1.12,!go1.13
6
7package unix
8
9import (
10 "unsafe"
11)
12
13func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) {
14 // To implement this using libSystem we'd need syscall_syscallPtr for
15 // fdopendir. However, syscallPtr was only added in Go 1.13, so we fall
16 // back to raw syscalls for this func on Go 1.12.
17 var p unsafe.Pointer
18 if len(buf) > 0 {
19 p = unsafe.Pointer(&buf[0])
20 } else {
21 p = unsafe.Pointer(&_zero)
22 }
23 r0, _, e1 := Syscall6(SYS_GETDIRENTRIES64, uintptr(fd), uintptr(p), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 0, 0)
24 n = int(r0)
25 if e1 != 0 {
26 return n, errnoErr(e1)
27 }
28 return n, nil
29}
diff --git a/vendor/golang.org/x/sys/unix/syscall_darwin.1_13.go b/vendor/golang.org/x/sys/unix/syscall_darwin.1_13.go
new file mode 100644
index 0000000..f911617
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/syscall_darwin.1_13.go
@@ -0,0 +1,101 @@
1// Copyright 2019 The Go Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style
3// license that can be found in the LICENSE file.
4
5// +build darwin,go1.13
6
7package unix
8
9import "unsafe"
10
11//sys closedir(dir uintptr) (err error)
12//sys readdir_r(dir uintptr, entry *Dirent, result **Dirent) (res Errno)
13
14func fdopendir(fd int) (dir uintptr, err error) {
15 r0, _, e1 := syscall_syscallPtr(funcPC(libc_fdopendir_trampoline), uintptr(fd), 0, 0)
16 dir = uintptr(r0)
17 if e1 != 0 {
18 err = errnoErr(e1)
19 }
20 return
21}
22
23func libc_fdopendir_trampoline()
24
25//go:linkname libc_fdopendir libc_fdopendir
26//go:cgo_import_dynamic libc_fdopendir fdopendir "/usr/lib/libSystem.B.dylib"
27
28func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) {
29 // Simulate Getdirentries using fdopendir/readdir_r/closedir.
30 // We store the number of entries to skip in the seek
31 // offset of fd. See issue #31368.
32 // It's not the full required semantics, but should handle the case
33 // of calling Getdirentries or ReadDirent repeatedly.
34 // It won't handle assigning the results of lseek to *basep, or handle
35 // the directory being edited underfoot.
36 skip, err := Seek(fd, 0, 1 /* SEEK_CUR */)
37 if err != nil {
38 return 0, err
39 }
40
41 // We need to duplicate the incoming file descriptor
42 // because the caller expects to retain control of it, but
43 // fdopendir expects to take control of its argument.
44 // Just Dup'ing the file descriptor is not enough, as the
45 // result shares underlying state. Use Openat to make a really
46 // new file descriptor referring to the same directory.
47 fd2, err := Openat(fd, ".", O_RDONLY, 0)
48 if err != nil {
49 return 0, err
50 }
51 d, err := fdopendir(fd2)
52 if err != nil {
53 Close(fd2)
54 return 0, err
55 }
56 defer closedir(d)
57
58 var cnt int64
59 for {
60 var entry Dirent
61 var entryp *Dirent
62 e := readdir_r(d, &entry, &entryp)
63 if e != 0 {
64 return n, errnoErr(e)
65 }
66 if entryp == nil {
67 break
68 }
69 if skip > 0 {
70 skip--
71 cnt++
72 continue
73 }
74 reclen := int(entry.Reclen)
75 if reclen > len(buf) {
76 // Not enough room. Return for now.
77 // The counter will let us know where we should start up again.
78 // Note: this strategy for suspending in the middle and
79 // restarting is O(n^2) in the length of the directory. Oh well.
80 break
81 }
82 // Copy entry into return buffer.
83 s := struct {
84 ptr unsafe.Pointer
85 siz int
86 cap int
87 }{ptr: unsafe.Pointer(&entry), siz: reclen, cap: reclen}
88 copy(buf, *(*[]byte)(unsafe.Pointer(&s)))
89 buf = buf[reclen:]
90 n += reclen
91 cnt++
92 }
93 // Set the seek offset of the input fd to record
94 // how many files we've already returned.
95 _, err = Seek(fd, cnt, 0 /* SEEK_SET */)
96 if err != nil {
97 return n, err
98 }
99
100 return n, nil
101}
diff --git a/vendor/golang.org/x/sys/unix/syscall_darwin.go b/vendor/golang.org/x/sys/unix/syscall_darwin.go
index f26a19e..9a5a6ee 100644
--- a/vendor/golang.org/x/sys/unix/syscall_darwin.go
+++ b/vendor/golang.org/x/sys/unix/syscall_darwin.go
@@ -155,23 +155,6 @@ func getAttrList(path string, attrList attrList, attrBuf []byte, options uint) (
155 155
156//sys getattrlist(path *byte, list unsafe.Pointer, buf unsafe.Pointer, size uintptr, options int) (err error) 156//sys getattrlist(path *byte, list unsafe.Pointer, buf unsafe.Pointer, size uintptr, options int) (err error)
157 157
158func SysctlClockinfo(name string) (*Clockinfo, error) {
159 mib, err := sysctlmib(name)
160 if err != nil {
161 return nil, err
162 }
163
164 n := uintptr(SizeofClockinfo)
165 var ci Clockinfo
166 if err := sysctl(mib, (*byte)(unsafe.Pointer(&ci)), &n, nil, 0); err != nil {
167 return nil, err
168 }
169 if n != SizeofClockinfo {
170 return nil, EIO
171 }
172 return &ci, nil
173}
174
175//sysnb pipe() (r int, w int, err error) 158//sysnb pipe() (r int, w int, err error)
176 159
177func Pipe(p []int) (err error) { 160func Pipe(p []int) (err error) {
@@ -333,12 +316,16 @@ func utimensat(dirfd int, path string, times *[2]Timespec, flags int) error {
333 * Wrapped 316 * Wrapped
334 */ 317 */
335 318
319//sys fcntl(fd int, cmd int, arg int) (val int, err error)
320
336//sys kill(pid int, signum int, posix int) (err error) 321//sys kill(pid int, signum int, posix int) (err error)
337 322
338func Kill(pid int, signum syscall.Signal) (err error) { return kill(pid, int(signum), 1) } 323func Kill(pid int, signum syscall.Signal) (err error) { return kill(pid, int(signum), 1) }
339 324
340//sys ioctl(fd int, req uint, arg uintptr) (err error) 325//sys ioctl(fd int, req uint, arg uintptr) (err error)
341 326
327//sys sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) = SYS_SYSCTL
328
342func Uname(uname *Utsname) error { 329func Uname(uname *Utsname) error {
343 mib := []_C_int{CTL_KERN, KERN_OSTYPE} 330 mib := []_C_int{CTL_KERN, KERN_OSTYPE}
344 n := unsafe.Sizeof(uname.Sysname) 331 n := unsafe.Sizeof(uname.Sysname)
@@ -460,7 +447,7 @@ func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err e
460//sys Revoke(path string) (err error) 447//sys Revoke(path string) (err error)
461//sys Rmdir(path string) (err error) 448//sys Rmdir(path string) (err error)
462//sys Seek(fd int, offset int64, whence int) (newoffset int64, err error) = SYS_LSEEK 449//sys Seek(fd int, offset int64, whence int) (newoffset int64, err error) = SYS_LSEEK
463//sys Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) 450//sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error)
464//sys Setegid(egid int) (err error) 451//sys Setegid(egid int) (err error)
465//sysnb Seteuid(euid int) (err error) 452//sysnb Seteuid(euid int) (err error)
466//sysnb Setgid(gid int) (err error) 453//sysnb Setgid(gid int) (err error)
diff --git a/vendor/golang.org/x/sys/unix/syscall_darwin_386.1_11.go b/vendor/golang.org/x/sys/unix/syscall_darwin_386.1_11.go
new file mode 100644
index 0000000..6b223f9
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/syscall_darwin_386.1_11.go
@@ -0,0 +1,9 @@
1// Copyright 2019 The Go Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style
3// license that can be found in the LICENSE file.
4
5// +build darwin,386,!go1.12
6
7package unix
8
9//sys Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) = SYS_GETDIRENTRIES64
diff --git a/vendor/golang.org/x/sys/unix/syscall_darwin_386.go b/vendor/golang.org/x/sys/unix/syscall_darwin_386.go
index cd8be18..707ba4f 100644
--- a/vendor/golang.org/x/sys/unix/syscall_darwin_386.go
+++ b/vendor/golang.org/x/sys/unix/syscall_darwin_386.go
@@ -45,6 +45,10 @@ func (msghdr *Msghdr) SetControllen(length int) {
45 msghdr.Controllen = uint32(length) 45 msghdr.Controllen = uint32(length)
46} 46}
47 47
48func (msghdr *Msghdr) SetIovlen(length int) {
49 msghdr.Iovlen = int32(length)
50}
51
48func (cmsg *Cmsghdr) SetLen(length int) { 52func (cmsg *Cmsghdr) SetLen(length int) {
49 cmsg.Len = uint32(length) 53 cmsg.Len = uint32(length)
50} 54}
@@ -58,7 +62,6 @@ const SYS___SYSCTL = SYS_SYSCTL
58//sys Fstat(fd int, stat *Stat_t) (err error) = SYS_FSTAT64 62//sys Fstat(fd int, stat *Stat_t) (err error) = SYS_FSTAT64
59//sys Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) = SYS_FSTATAT64 63//sys Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) = SYS_FSTATAT64
60//sys Fstatfs(fd int, stat *Statfs_t) (err error) = SYS_FSTATFS64 64//sys Fstatfs(fd int, stat *Statfs_t) (err error) = SYS_FSTATFS64
61//sys Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) = SYS_GETDIRENTRIES64
62//sys getfsstat(buf unsafe.Pointer, size uintptr, flags int) (n int, err error) = SYS_GETFSSTAT64 65//sys getfsstat(buf unsafe.Pointer, size uintptr, flags int) (n int, err error) = SYS_GETFSSTAT64
63//sys Lstat(path string, stat *Stat_t) (err error) = SYS_LSTAT64 66//sys Lstat(path string, stat *Stat_t) (err error) = SYS_LSTAT64
64//sys Stat(path string, stat *Stat_t) (err error) = SYS_STAT64 67//sys Stat(path string, stat *Stat_t) (err error) = SYS_STAT64
diff --git a/vendor/golang.org/x/sys/unix/syscall_darwin_amd64.1_11.go b/vendor/golang.org/x/sys/unix/syscall_darwin_amd64.1_11.go
new file mode 100644
index 0000000..68ebd6f
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/syscall_darwin_amd64.1_11.go
@@ -0,0 +1,9 @@
1// Copyright 2019 The Go Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style
3// license that can be found in the LICENSE file.
4
5// +build darwin,amd64,!go1.12
6
7package unix
8
9//sys Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) = SYS_GETDIRENTRIES64
diff --git a/vendor/golang.org/x/sys/unix/syscall_darwin_amd64.go b/vendor/golang.org/x/sys/unix/syscall_darwin_amd64.go
index d0d0724..fdbfb59 100644
--- a/vendor/golang.org/x/sys/unix/syscall_darwin_amd64.go
+++ b/vendor/golang.org/x/sys/unix/syscall_darwin_amd64.go
@@ -45,6 +45,10 @@ func (msghdr *Msghdr) SetControllen(length int) {
45 msghdr.Controllen = uint32(length) 45 msghdr.Controllen = uint32(length)
46} 46}
47 47
48func (msghdr *Msghdr) SetIovlen(length int) {
49 msghdr.Iovlen = int32(length)
50}
51
48func (cmsg *Cmsghdr) SetLen(length int) { 52func (cmsg *Cmsghdr) SetLen(length int) {
49 cmsg.Len = uint32(length) 53 cmsg.Len = uint32(length)
50} 54}
@@ -58,7 +62,6 @@ const SYS___SYSCTL = SYS_SYSCTL
58//sys Fstat(fd int, stat *Stat_t) (err error) = SYS_FSTAT64 62//sys Fstat(fd int, stat *Stat_t) (err error) = SYS_FSTAT64
59//sys Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) = SYS_FSTATAT64 63//sys Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) = SYS_FSTATAT64
60//sys Fstatfs(fd int, stat *Statfs_t) (err error) = SYS_FSTATFS64 64//sys Fstatfs(fd int, stat *Statfs_t) (err error) = SYS_FSTATFS64
61//sys Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) = SYS_GETDIRENTRIES64
62//sys getfsstat(buf unsafe.Pointer, size uintptr, flags int) (n int, err error) = SYS_GETFSSTAT64 65//sys getfsstat(buf unsafe.Pointer, size uintptr, flags int) (n int, err error) = SYS_GETFSSTAT64
63//sys Lstat(path string, stat *Stat_t) (err error) = SYS_LSTAT64 66//sys Lstat(path string, stat *Stat_t) (err error) = SYS_LSTAT64
64//sys Stat(path string, stat *Stat_t) (err error) = SYS_STAT64 67//sys Stat(path string, stat *Stat_t) (err error) = SYS_STAT64
diff --git a/vendor/golang.org/x/sys/unix/syscall_darwin_arm.1_11.go b/vendor/golang.org/x/sys/unix/syscall_darwin_arm.1_11.go
new file mode 100644
index 0000000..0e3f25a
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/syscall_darwin_arm.1_11.go
@@ -0,0 +1,11 @@
1// Copyright 2019 The Go Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style
3// license that can be found in the LICENSE file.
4
5// +build darwin,arm,!go1.12
6
7package unix
8
9func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) {
10 return 0, ENOSYS
11}
diff --git a/vendor/golang.org/x/sys/unix/syscall_darwin_arm.go b/vendor/golang.org/x/sys/unix/syscall_darwin_arm.go
index 01e8a38..f8bc4cf 100644
--- a/vendor/golang.org/x/sys/unix/syscall_darwin_arm.go
+++ b/vendor/golang.org/x/sys/unix/syscall_darwin_arm.go
@@ -45,6 +45,10 @@ func (msghdr *Msghdr) SetControllen(length int) {
45 msghdr.Controllen = uint32(length) 45 msghdr.Controllen = uint32(length)
46} 46}
47 47
48func (msghdr *Msghdr) SetIovlen(length int) {
49 msghdr.Iovlen = int32(length)
50}
51
48func (cmsg *Cmsghdr) SetLen(length int) { 52func (cmsg *Cmsghdr) SetLen(length int) {
49 cmsg.Len = uint32(length) 53 cmsg.Len = uint32(length)
50} 54}
@@ -62,7 +66,3 @@ const SYS___SYSCTL = SYS_SYSCTL
62//sys Lstat(path string, stat *Stat_t) (err error) 66//sys Lstat(path string, stat *Stat_t) (err error)
63//sys Stat(path string, stat *Stat_t) (err error) 67//sys Stat(path string, stat *Stat_t) (err error)
64//sys Statfs(path string, stat *Statfs_t) (err error) 68//sys Statfs(path string, stat *Statfs_t) (err error)
65
66func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) {
67 return 0, ENOSYS
68}
diff --git a/vendor/golang.org/x/sys/unix/syscall_darwin_arm64.1_11.go b/vendor/golang.org/x/sys/unix/syscall_darwin_arm64.1_11.go
new file mode 100644
index 0000000..01d4504
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/syscall_darwin_arm64.1_11.go
@@ -0,0 +1,11 @@
1// Copyright 2019 The Go Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style
3// license that can be found in the LICENSE file.
4
5// +build darwin,arm64,!go1.12
6
7package unix
8
9func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) {
10 return 0, ENOSYS
11}
diff --git a/vendor/golang.org/x/sys/unix/syscall_darwin_arm64.go b/vendor/golang.org/x/sys/unix/syscall_darwin_arm64.go
index e674f81..5ede3ac 100644
--- a/vendor/golang.org/x/sys/unix/syscall_darwin_arm64.go
+++ b/vendor/golang.org/x/sys/unix/syscall_darwin_arm64.go
@@ -47,6 +47,10 @@ func (msghdr *Msghdr) SetControllen(length int) {
47 msghdr.Controllen = uint32(length) 47 msghdr.Controllen = uint32(length)
48} 48}
49 49
50func (msghdr *Msghdr) SetIovlen(length int) {
51 msghdr.Iovlen = int32(length)
52}
53
50func (cmsg *Cmsghdr) SetLen(length int) { 54func (cmsg *Cmsghdr) SetLen(length int) {
51 cmsg.Len = uint32(length) 55 cmsg.Len = uint32(length)
52} 56}
@@ -64,7 +68,3 @@ const SYS___SYSCTL = SYS_SYSCTL
64//sys Lstat(path string, stat *Stat_t) (err error) 68//sys Lstat(path string, stat *Stat_t) (err error)
65//sys Stat(path string, stat *Stat_t) (err error) 69//sys Stat(path string, stat *Stat_t) (err error)
66//sys Statfs(path string, stat *Statfs_t) (err error) 70//sys Statfs(path string, stat *Statfs_t) (err error)
67
68func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) {
69 return 0, ENOSYS
70}
diff --git a/vendor/golang.org/x/sys/unix/syscall_darwin_libSystem.go b/vendor/golang.org/x/sys/unix/syscall_darwin_libSystem.go
index 4b4ae46..f34c86c 100644
--- a/vendor/golang.org/x/sys/unix/syscall_darwin_libSystem.go
+++ b/vendor/golang.org/x/sys/unix/syscall_darwin_libSystem.go
@@ -15,6 +15,7 @@ func syscall_syscall6X(fn, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err
15func syscall_syscall9(fn, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err Errno) // 32-bit only 15func syscall_syscall9(fn, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err Errno) // 32-bit only
16func syscall_rawSyscall(fn, a1, a2, a3 uintptr) (r1, r2 uintptr, err Errno) 16func syscall_rawSyscall(fn, a1, a2, a3 uintptr) (r1, r2 uintptr, err Errno)
17func syscall_rawSyscall6(fn, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err Errno) 17func syscall_rawSyscall6(fn, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err Errno)
18func syscall_syscallPtr(fn, a1, a2, a3 uintptr) (r1, r2 uintptr, err Errno)
18 19
19//go:linkname syscall_syscall syscall.syscall 20//go:linkname syscall_syscall syscall.syscall
20//go:linkname syscall_syscall6 syscall.syscall6 21//go:linkname syscall_syscall6 syscall.syscall6
@@ -22,6 +23,7 @@ func syscall_rawSyscall6(fn, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, er
22//go:linkname syscall_syscall9 syscall.syscall9 23//go:linkname syscall_syscall9 syscall.syscall9
23//go:linkname syscall_rawSyscall syscall.rawSyscall 24//go:linkname syscall_rawSyscall syscall.rawSyscall
24//go:linkname syscall_rawSyscall6 syscall.rawSyscall6 25//go:linkname syscall_rawSyscall6 syscall.rawSyscall6
26//go:linkname syscall_syscallPtr syscall.syscallPtr
25 27
26// Find the entry point for f. See comments in runtime/proc.go for the 28// Find the entry point for f. See comments in runtime/proc.go for the
27// function of the same name. 29// function of the same name.
diff --git a/vendor/golang.org/x/sys/unix/syscall_dragonfly.go b/vendor/golang.org/x/sys/unix/syscall_dragonfly.go
index 474181c..8a195ae 100644
--- a/vendor/golang.org/x/sys/unix/syscall_dragonfly.go
+++ b/vendor/golang.org/x/sys/unix/syscall_dragonfly.go
@@ -12,7 +12,25 @@
12 12
13package unix 13package unix
14 14
15import "unsafe" 15import (
16 "sync"
17 "unsafe"
18)
19
20// See version list in https://github.com/DragonFlyBSD/DragonFlyBSD/blob/master/sys/sys/param.h
21var (
22 osreldateOnce sync.Once
23 osreldate uint32
24)
25
26// First __DragonFly_version after September 2019 ABI changes
27// http://lists.dragonflybsd.org/pipermail/users/2019-September/358280.html
28const _dragonflyABIChangeVersion = 500705
29
30func supportsABI(ver uint32) bool {
31 osreldateOnce.Do(func() { osreldate, _ = SysctlUint32("kern.osreldate") })
32 return osreldate >= ver
33}
16 34
17// SockaddrDatalink implements the Sockaddr interface for AF_LINK type sockets. 35// SockaddrDatalink implements the Sockaddr interface for AF_LINK type sockets.
18type SockaddrDatalink struct { 36type SockaddrDatalink struct {
@@ -150,6 +168,8 @@ func setattrlistTimes(path string, times []Timespec, flags int) error {
150 168
151//sys ioctl(fd int, req uint, arg uintptr) (err error) 169//sys ioctl(fd int, req uint, arg uintptr) (err error)
152 170
171//sys sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) = SYS___SYSCTL
172
153func sysctlUname(mib []_C_int, old *byte, oldlen *uintptr) error { 173func sysctlUname(mib []_C_int, old *byte, oldlen *uintptr) error {
154 err := sysctl(mib, old, oldlen, nil, 0) 174 err := sysctl(mib, old, oldlen, nil, 0)
155 if err != nil { 175 if err != nil {
@@ -288,7 +308,7 @@ func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err e
288//sys Revoke(path string) (err error) 308//sys Revoke(path string) (err error)
289//sys Rmdir(path string) (err error) 309//sys Rmdir(path string) (err error)
290//sys Seek(fd int, offset int64, whence int) (newoffset int64, err error) = SYS_LSEEK 310//sys Seek(fd int, offset int64, whence int) (newoffset int64, err error) = SYS_LSEEK
291//sys Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) 311//sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error)
292//sysnb Setegid(egid int) (err error) 312//sysnb Setegid(egid int) (err error)
293//sysnb Seteuid(euid int) (err error) 313//sysnb Seteuid(euid int) (err error)
294//sysnb Setgid(gid int) (err error) 314//sysnb Setgid(gid int) (err error)
diff --git a/vendor/golang.org/x/sys/unix/syscall_dragonfly_amd64.go b/vendor/golang.org/x/sys/unix/syscall_dragonfly_amd64.go
index 9babb31..a6b4830 100644
--- a/vendor/golang.org/x/sys/unix/syscall_dragonfly_amd64.go
+++ b/vendor/golang.org/x/sys/unix/syscall_dragonfly_amd64.go
@@ -33,6 +33,10 @@ func (msghdr *Msghdr) SetControllen(length int) {
33 msghdr.Controllen = uint32(length) 33 msghdr.Controllen = uint32(length)
34} 34}
35 35
36func (msghdr *Msghdr) SetIovlen(length int) {
37 msghdr.Iovlen = int32(length)
38}
39
36func (cmsg *Cmsghdr) SetLen(length int) { 40func (cmsg *Cmsghdr) SetLen(length int) {
37 cmsg.Len = uint32(length) 41 cmsg.Len = uint32(length)
38} 42}
diff --git a/vendor/golang.org/x/sys/unix/syscall_freebsd.go b/vendor/golang.org/x/sys/unix/syscall_freebsd.go
index d95c443..6b2eca4 100644
--- a/vendor/golang.org/x/sys/unix/syscall_freebsd.go
+++ b/vendor/golang.org/x/sys/unix/syscall_freebsd.go
@@ -201,6 +201,8 @@ func setattrlistTimes(path string, times []Timespec, flags int) error {
201 201
202//sys ioctl(fd int, req uint, arg uintptr) (err error) 202//sys ioctl(fd int, req uint, arg uintptr) (err error)
203 203
204//sys sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) = SYS___SYSCTL
205
204func Uname(uname *Utsname) error { 206func Uname(uname *Utsname) error {
205 mib := []_C_int{CTL_KERN, KERN_OSTYPE} 207 mib := []_C_int{CTL_KERN, KERN_OSTYPE}
206 n := unsafe.Sizeof(uname.Sysname) 208 n := unsafe.Sizeof(uname.Sysname)
@@ -460,8 +462,12 @@ func convertFromDirents11(buf []byte, old []byte) int {
460 dstPos := 0 462 dstPos := 0
461 srcPos := 0 463 srcPos := 0
462 for dstPos+fixedSize < len(buf) && srcPos+oldFixedSize < len(old) { 464 for dstPos+fixedSize < len(buf) && srcPos+oldFixedSize < len(old) {
463 dstDirent := (*Dirent)(unsafe.Pointer(&buf[dstPos])) 465 var dstDirent Dirent
464 srcDirent := (*dirent_freebsd11)(unsafe.Pointer(&old[srcPos])) 466 var srcDirent dirent_freebsd11
467
468 // If multiple direntries are written, sometimes when we reach the final one,
469 // we may have cap of old less than size of dirent_freebsd11.
470 copy((*[unsafe.Sizeof(srcDirent)]byte)(unsafe.Pointer(&srcDirent))[:], old[srcPos:])
465 471
466 reclen := roundup(fixedSize+int(srcDirent.Namlen)+1, 8) 472 reclen := roundup(fixedSize+int(srcDirent.Namlen)+1, 8)
467 if dstPos+reclen > len(buf) { 473 if dstPos+reclen > len(buf) {
@@ -477,6 +483,7 @@ func convertFromDirents11(buf []byte, old []byte) int {
477 dstDirent.Pad1 = 0 483 dstDirent.Pad1 = 0
478 484
479 copy(dstDirent.Name[:], srcDirent.Name[:srcDirent.Namlen]) 485 copy(dstDirent.Name[:], srcDirent.Name[:srcDirent.Namlen])
486 copy(buf[dstPos:], (*[unsafe.Sizeof(dstDirent)]byte)(unsafe.Pointer(&dstDirent))[:])
480 padding := buf[dstPos+fixedSize+int(dstDirent.Namlen) : dstPos+reclen] 487 padding := buf[dstPos+fixedSize+int(dstDirent.Namlen) : dstPos+reclen]
481 for i := range padding { 488 for i := range padding {
482 padding[i] = 0 489 padding[i] = 0
@@ -522,12 +529,6 @@ func PtraceGetRegs(pid int, regsout *Reg) (err error) {
522 return ptrace(PTRACE_GETREGS, pid, uintptr(unsafe.Pointer(regsout)), 0) 529 return ptrace(PTRACE_GETREGS, pid, uintptr(unsafe.Pointer(regsout)), 0)
523} 530}
524 531
525func PtraceIO(req int, pid int, addr uintptr, out []byte, countin int) (count int, err error) {
526 ioDesc := PtraceIoDesc{Op: int32(req), Offs: (*byte)(unsafe.Pointer(addr)), Addr: (*byte)(unsafe.Pointer(&out[0])), Len: uint(countin)}
527 err = ptrace(PTRACE_IO, pid, uintptr(unsafe.Pointer(&ioDesc)), 0)
528 return int(ioDesc.Len), err
529}
530
531func PtraceLwpEvents(pid int, enable int) (err error) { 532func PtraceLwpEvents(pid int, enable int) (err error) {
532 return ptrace(PTRACE_LWPEVENTS, pid, 0, enable) 533 return ptrace(PTRACE_LWPEVENTS, pid, 0, enable)
533} 534}
@@ -651,7 +652,7 @@ func PtraceSingleStep(pid int) (err error) {
651//sys Revoke(path string) (err error) 652//sys Revoke(path string) (err error)
652//sys Rmdir(path string) (err error) 653//sys Rmdir(path string) (err error)
653//sys Seek(fd int, offset int64, whence int) (newoffset int64, err error) = SYS_LSEEK 654//sys Seek(fd int, offset int64, whence int) (newoffset int64, err error) = SYS_LSEEK
654//sys Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) 655//sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error)
655//sysnb Setegid(egid int) (err error) 656//sysnb Setegid(egid int) (err error)
656//sysnb Seteuid(euid int) (err error) 657//sysnb Seteuid(euid int) (err error)
657//sysnb Setgid(gid int) (err error) 658//sysnb Setgid(gid int) (err error)
diff --git a/vendor/golang.org/x/sys/unix/syscall_freebsd_386.go b/vendor/golang.org/x/sys/unix/syscall_freebsd_386.go
index 21e0395..0a5a66f 100644
--- a/vendor/golang.org/x/sys/unix/syscall_freebsd_386.go
+++ b/vendor/golang.org/x/sys/unix/syscall_freebsd_386.go
@@ -33,6 +33,10 @@ func (msghdr *Msghdr) SetControllen(length int) {
33 msghdr.Controllen = uint32(length) 33 msghdr.Controllen = uint32(length)
34} 34}
35 35
36func (msghdr *Msghdr) SetIovlen(length int) {
37 msghdr.Iovlen = int32(length)
38}
39
36func (cmsg *Cmsghdr) SetLen(length int) { 40func (cmsg *Cmsghdr) SetLen(length int) {
37 cmsg.Len = uint32(length) 41 cmsg.Len = uint32(length)
38} 42}
@@ -50,3 +54,9 @@ func sendfile(outfd int, infd int, offset *int64, count int) (written int, err e
50} 54}
51 55
52func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) 56func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno)
57
58func PtraceIO(req int, pid int, addr uintptr, out []byte, countin int) (count int, err error) {
59 ioDesc := PtraceIoDesc{Op: int32(req), Offs: (*byte)(unsafe.Pointer(addr)), Addr: (*byte)(unsafe.Pointer(&out[0])), Len: uint32(countin)}
60 err = ptrace(PTRACE_IO, pid, uintptr(unsafe.Pointer(&ioDesc)), 0)
61 return int(ioDesc.Len), err
62}
diff --git a/vendor/golang.org/x/sys/unix/syscall_freebsd_amd64.go b/vendor/golang.org/x/sys/unix/syscall_freebsd_amd64.go
index 9c945a6..8025b22 100644
--- a/vendor/golang.org/x/sys/unix/syscall_freebsd_amd64.go
+++ b/vendor/golang.org/x/sys/unix/syscall_freebsd_amd64.go
@@ -33,6 +33,10 @@ func (msghdr *Msghdr) SetControllen(length int) {
33 msghdr.Controllen = uint32(length) 33 msghdr.Controllen = uint32(length)
34} 34}
35 35
36func (msghdr *Msghdr) SetIovlen(length int) {
37 msghdr.Iovlen = int32(length)
38}
39
36func (cmsg *Cmsghdr) SetLen(length int) { 40func (cmsg *Cmsghdr) SetLen(length int) {
37 cmsg.Len = uint32(length) 41 cmsg.Len = uint32(length)
38} 42}
@@ -50,3 +54,9 @@ func sendfile(outfd int, infd int, offset *int64, count int) (written int, err e
50} 54}
51 55
52func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) 56func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno)
57
58func PtraceIO(req int, pid int, addr uintptr, out []byte, countin int) (count int, err error) {
59 ioDesc := PtraceIoDesc{Op: int32(req), Offs: (*byte)(unsafe.Pointer(addr)), Addr: (*byte)(unsafe.Pointer(&out[0])), Len: uint64(countin)}
60 err = ptrace(PTRACE_IO, pid, uintptr(unsafe.Pointer(&ioDesc)), 0)
61 return int(ioDesc.Len), err
62}
diff --git a/vendor/golang.org/x/sys/unix/syscall_freebsd_arm.go b/vendor/golang.org/x/sys/unix/syscall_freebsd_arm.go
index 5cd6243..4ea45bc 100644
--- a/vendor/golang.org/x/sys/unix/syscall_freebsd_arm.go
+++ b/vendor/golang.org/x/sys/unix/syscall_freebsd_arm.go
@@ -33,6 +33,10 @@ func (msghdr *Msghdr) SetControllen(length int) {
33 msghdr.Controllen = uint32(length) 33 msghdr.Controllen = uint32(length)
34} 34}
35 35
36func (msghdr *Msghdr) SetIovlen(length int) {
37 msghdr.Iovlen = int32(length)
38}
39
36func (cmsg *Cmsghdr) SetLen(length int) { 40func (cmsg *Cmsghdr) SetLen(length int) {
37 cmsg.Len = uint32(length) 41 cmsg.Len = uint32(length)
38} 42}
@@ -50,3 +54,9 @@ func sendfile(outfd int, infd int, offset *int64, count int) (written int, err e
50} 54}
51 55
52func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) 56func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno)
57
58func PtraceIO(req int, pid int, addr uintptr, out []byte, countin int) (count int, err error) {
59 ioDesc := PtraceIoDesc{Op: int32(req), Offs: (*byte)(unsafe.Pointer(addr)), Addr: (*byte)(unsafe.Pointer(&out[0])), Len: uint32(countin)}
60 err = ptrace(PTRACE_IO, pid, uintptr(unsafe.Pointer(&ioDesc)), 0)
61 return int(ioDesc.Len), err
62}
diff --git a/vendor/golang.org/x/sys/unix/syscall_freebsd_arm64.go b/vendor/golang.org/x/sys/unix/syscall_freebsd_arm64.go
index a318054..aa5326d 100644
--- a/vendor/golang.org/x/sys/unix/syscall_freebsd_arm64.go
+++ b/vendor/golang.org/x/sys/unix/syscall_freebsd_arm64.go
@@ -33,6 +33,10 @@ func (msghdr *Msghdr) SetControllen(length int) {
33 msghdr.Controllen = uint32(length) 33 msghdr.Controllen = uint32(length)
34} 34}
35 35
36func (msghdr *Msghdr) SetIovlen(length int) {
37 msghdr.Iovlen = int32(length)
38}
39
36func (cmsg *Cmsghdr) SetLen(length int) { 40func (cmsg *Cmsghdr) SetLen(length int) {
37 cmsg.Len = uint32(length) 41 cmsg.Len = uint32(length)
38} 42}
@@ -50,3 +54,9 @@ func sendfile(outfd int, infd int, offset *int64, count int) (written int, err e
50} 54}
51 55
52func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) 56func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno)
57
58func PtraceIO(req int, pid int, addr uintptr, out []byte, countin int) (count int, err error) {
59 ioDesc := PtraceIoDesc{Op: int32(req), Offs: (*byte)(unsafe.Pointer(addr)), Addr: (*byte)(unsafe.Pointer(&out[0])), Len: uint64(countin)}
60 err = ptrace(PTRACE_IO, pid, uintptr(unsafe.Pointer(&ioDesc)), 0)
61 return int(ioDesc.Len), err
62}
diff --git a/vendor/golang.org/x/sys/unix/syscall_linux.go b/vendor/golang.org/x/sys/unix/syscall_linux.go
index fe30b95..0efe45a 100644
--- a/vendor/golang.org/x/sys/unix/syscall_linux.go
+++ b/vendor/golang.org/x/sys/unix/syscall_linux.go
@@ -775,6 +775,70 @@ func (sa *SockaddrPPPoE) sockaddr() (unsafe.Pointer, _Socklen, error) {
775 return unsafe.Pointer(&sa.raw), SizeofSockaddrPPPoX, nil 775 return unsafe.Pointer(&sa.raw), SizeofSockaddrPPPoX, nil
776} 776}
777 777
778// SockaddrTIPC implements the Sockaddr interface for AF_TIPC type sockets.
779// For more information on TIPC, see: http://tipc.sourceforge.net/.
780type SockaddrTIPC struct {
781 // Scope is the publication scopes when binding service/service range.
782 // Should be set to TIPC_CLUSTER_SCOPE or TIPC_NODE_SCOPE.
783 Scope int
784
785 // Addr is the type of address used to manipulate a socket. Addr must be
786 // one of:
787 // - *TIPCSocketAddr: "id" variant in the C addr union
788 // - *TIPCServiceRange: "nameseq" variant in the C addr union
789 // - *TIPCServiceName: "name" variant in the C addr union
790 //
791 // If nil, EINVAL will be returned when the structure is used.
792 Addr TIPCAddr
793
794 raw RawSockaddrTIPC
795}
796
797// TIPCAddr is implemented by types that can be used as an address for
798// SockaddrTIPC. It is only implemented by *TIPCSocketAddr, *TIPCServiceRange,
799// and *TIPCServiceName.
800type TIPCAddr interface {
801 tipcAddrtype() uint8
802 tipcAddr() [12]byte
803}
804
805func (sa *TIPCSocketAddr) tipcAddr() [12]byte {
806 var out [12]byte
807 copy(out[:], (*(*[unsafe.Sizeof(TIPCSocketAddr{})]byte)(unsafe.Pointer(sa)))[:])
808 return out
809}
810
811func (sa *TIPCSocketAddr) tipcAddrtype() uint8 { return TIPC_SOCKET_ADDR }
812
813func (sa *TIPCServiceRange) tipcAddr() [12]byte {
814 var out [12]byte
815 copy(out[:], (*(*[unsafe.Sizeof(TIPCServiceRange{})]byte)(unsafe.Pointer(sa)))[:])
816 return out
817}
818
819func (sa *TIPCServiceRange) tipcAddrtype() uint8 { return TIPC_SERVICE_RANGE }
820
821func (sa *TIPCServiceName) tipcAddr() [12]byte {
822 var out [12]byte
823 copy(out[:], (*(*[unsafe.Sizeof(TIPCServiceName{})]byte)(unsafe.Pointer(sa)))[:])
824 return out
825}
826
827func (sa *TIPCServiceName) tipcAddrtype() uint8 { return TIPC_SERVICE_ADDR }
828
829func (sa *SockaddrTIPC) sockaddr() (unsafe.Pointer, _Socklen, error) {
830 if sa.Addr == nil {
831 return nil, 0, EINVAL
832 }
833
834 sa.raw.Family = AF_TIPC
835 sa.raw.Scope = int8(sa.Scope)
836 sa.raw.Addrtype = sa.Addr.tipcAddrtype()
837 sa.raw.Addr = sa.Addr.tipcAddr()
838
839 return unsafe.Pointer(&sa.raw), SizeofSockaddrTIPC, nil
840}
841
778func anyToSockaddr(fd int, rsa *RawSockaddrAny) (Sockaddr, error) { 842func anyToSockaddr(fd int, rsa *RawSockaddrAny) (Sockaddr, error) {
779 switch rsa.Addr.Family { 843 switch rsa.Addr.Family {
780 case AF_NETLINK: 844 case AF_NETLINK:
@@ -820,7 +884,7 @@ func anyToSockaddr(fd int, rsa *RawSockaddrAny) (Sockaddr, error) {
820 for n < len(pp.Path) && pp.Path[n] != 0 { 884 for n < len(pp.Path) && pp.Path[n] != 0 {
821 n++ 885 n++
822 } 886 }
823 bytes := (*[10000]byte)(unsafe.Pointer(&pp.Path[0]))[0:n] 887 bytes := (*[len(pp.Path)]byte)(unsafe.Pointer(&pp.Path[0]))[0:n]
824 sa.Name = string(bytes) 888 sa.Name = string(bytes)
825 return sa, nil 889 return sa, nil
826 890
@@ -901,6 +965,27 @@ func anyToSockaddr(fd int, rsa *RawSockaddrAny) (Sockaddr, error) {
901 } 965 }
902 } 966 }
903 return sa, nil 967 return sa, nil
968 case AF_TIPC:
969 pp := (*RawSockaddrTIPC)(unsafe.Pointer(rsa))
970
971 sa := &SockaddrTIPC{
972 Scope: int(pp.Scope),
973 }
974
975 // Determine which union variant is present in pp.Addr by checking
976 // pp.Addrtype.
977 switch pp.Addrtype {
978 case TIPC_SERVICE_RANGE:
979 sa.Addr = (*TIPCServiceRange)(unsafe.Pointer(&pp.Addr))
980 case TIPC_SERVICE_ADDR:
981 sa.Addr = (*TIPCServiceName)(unsafe.Pointer(&pp.Addr))
982 case TIPC_SOCKET_ADDR:
983 sa.Addr = (*TIPCSocketAddr)(unsafe.Pointer(&pp.Addr))
984 default:
985 return nil, EINVAL
986 }
987
988 return sa, nil
904 } 989 }
905 return nil, EAFNOSUPPORT 990 return nil, EAFNOSUPPORT
906} 991}
@@ -1137,6 +1222,34 @@ func KeyctlDHCompute(params *KeyctlDHParams, buffer []byte) (size int, err error
1137 return keyctlDH(KEYCTL_DH_COMPUTE, params, buffer) 1222 return keyctlDH(KEYCTL_DH_COMPUTE, params, buffer)
1138} 1223}
1139 1224
1225// KeyctlRestrictKeyring implements the KEYCTL_RESTRICT_KEYRING command. This
1226// command limits the set of keys that can be linked to the keyring, regardless
1227// of keyring permissions. The command requires the "setattr" permission.
1228//
1229// When called with an empty keyType the command locks the keyring, preventing
1230// any further keys from being linked to the keyring.
1231//
1232// The "asymmetric" keyType defines restrictions requiring key payloads to be
1233// DER encoded X.509 certificates signed by keys in another keyring. Restrictions
1234// for "asymmetric" include "builtin_trusted", "builtin_and_secondary_trusted",
1235// "key_or_keyring:<key>", and "key_or_keyring:<key>:chain".
1236//
1237// As of Linux 4.12, only the "asymmetric" keyType defines type-specific
1238// restrictions.
1239//
1240// See the full documentation at:
1241// http://man7.org/linux/man-pages/man3/keyctl_restrict_keyring.3.html
1242// http://man7.org/linux/man-pages/man2/keyctl.2.html
1243func KeyctlRestrictKeyring(ringid int, keyType string, restriction string) error {
1244 if keyType == "" {
1245 return keyctlRestrictKeyring(KEYCTL_RESTRICT_KEYRING, ringid)
1246 }
1247 return keyctlRestrictKeyringByType(KEYCTL_RESTRICT_KEYRING, ringid, keyType, restriction)
1248}
1249
1250//sys keyctlRestrictKeyringByType(cmd int, arg2 int, keyType string, restriction string) (err error) = SYS_KEYCTL
1251//sys keyctlRestrictKeyring(cmd int, arg2 int) (err error) = SYS_KEYCTL
1252
1140func Recvmsg(fd int, p, oob []byte, flags int) (n, oobn int, recvflags int, from Sockaddr, err error) { 1253func Recvmsg(fd int, p, oob []byte, flags int) (n, oobn int, recvflags int, from Sockaddr, err error) {
1141 var msg Msghdr 1254 var msg Msghdr
1142 var rsa RawSockaddrAny 1255 var rsa RawSockaddrAny
@@ -1380,8 +1493,12 @@ func PtraceSyscall(pid int, signal int) (err error) {
1380 1493
1381func PtraceSingleStep(pid int) (err error) { return ptrace(PTRACE_SINGLESTEP, pid, 0, 0) } 1494func PtraceSingleStep(pid int) (err error) { return ptrace(PTRACE_SINGLESTEP, pid, 0, 0) }
1382 1495
1496func PtraceInterrupt(pid int) (err error) { return ptrace(PTRACE_INTERRUPT, pid, 0, 0) }
1497
1383func PtraceAttach(pid int) (err error) { return ptrace(PTRACE_ATTACH, pid, 0, 0) } 1498func PtraceAttach(pid int) (err error) { return ptrace(PTRACE_ATTACH, pid, 0, 0) }
1384 1499
1500func PtraceSeize(pid int) (err error) { return ptrace(PTRACE_SEIZE, pid, 0, 0) }
1501
1385func PtraceDetach(pid int) (err error) { return ptrace(PTRACE_DETACH, pid, 0, 0) } 1502func PtraceDetach(pid int) (err error) { return ptrace(PTRACE_DETACH, pid, 0, 0) }
1386 1503
1387//sys reboot(magic1 uint, magic2 uint, cmd int, arg string) (err error) 1504//sys reboot(magic1 uint, magic2 uint, cmd int, arg string) (err error)
@@ -1458,7 +1575,6 @@ func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err e
1458//sys Fchdir(fd int) (err error) 1575//sys Fchdir(fd int) (err error)
1459//sys Fchmod(fd int, mode uint32) (err error) 1576//sys Fchmod(fd int, mode uint32) (err error)
1460//sys Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) 1577//sys Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error)
1461//sys fcntl(fd int, cmd int, arg int) (val int, err error)
1462//sys Fdatasync(fd int) (err error) 1578//sys Fdatasync(fd int) (err error)
1463//sys Fgetxattr(fd int, attr string, dest []byte) (sz int, err error) 1579//sys Fgetxattr(fd int, attr string, dest []byte) (sz int, err error)
1464//sys FinitModule(fd int, params string, flags int) (err error) 1580//sys FinitModule(fd int, params string, flags int) (err error)
@@ -1514,6 +1630,17 @@ func Getpgrp() (pid int) {
1514//sysnb Settimeofday(tv *Timeval) (err error) 1630//sysnb Settimeofday(tv *Timeval) (err error)
1515//sys Setns(fd int, nstype int) (err error) 1631//sys Setns(fd int, nstype int) (err error)
1516 1632
1633// PrctlRetInt performs a prctl operation specified by option and further
1634// optional arguments arg2 through arg5 depending on option. It returns a
1635// non-negative integer that is returned by the prctl syscall.
1636func PrctlRetInt(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (int, error) {
1637 ret, _, err := Syscall6(SYS_PRCTL, uintptr(option), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0)
1638 if err != 0 {
1639 return 0, err
1640 }
1641 return int(ret), nil
1642}
1643
1517// issue 1435. 1644// issue 1435.
1518// On linux Setuid and Setgid only affects the current thread, not the process. 1645// On linux Setuid and Setgid only affects the current thread, not the process.
1519// This does not match what most callers expect so we must return an error 1646// This does not match what most callers expect so we must return an error
@@ -1527,6 +1654,30 @@ func Setgid(uid int) (err error) {
1527 return EOPNOTSUPP 1654 return EOPNOTSUPP
1528} 1655}
1529 1656
1657// SetfsgidRetGid sets fsgid for current thread and returns previous fsgid set.
1658// setfsgid(2) will return a non-nil error only if its caller lacks CAP_SETUID capability.
1659// If the call fails due to other reasons, current fsgid will be returned.
1660func SetfsgidRetGid(gid int) (int, error) {
1661 return setfsgid(gid)
1662}
1663
1664// SetfsuidRetUid sets fsuid for current thread and returns previous fsuid set.
1665// setfsgid(2) will return a non-nil error only if its caller lacks CAP_SETUID capability
1666// If the call fails due to other reasons, current fsuid will be returned.
1667func SetfsuidRetUid(uid int) (int, error) {
1668 return setfsuid(uid)
1669}
1670
1671func Setfsgid(gid int) error {
1672 _, err := setfsgid(gid)
1673 return err
1674}
1675
1676func Setfsuid(uid int) error {
1677 _, err := setfsuid(uid)
1678 return err
1679}
1680
1530func Signalfd(fd int, sigmask *Sigset_t, flags int) (newfd int, err error) { 1681func Signalfd(fd int, sigmask *Sigset_t, flags int) (newfd int, err error) {
1531 return signalfd(fd, sigmask, _C__NSIG/8, flags) 1682 return signalfd(fd, sigmask, _C__NSIG/8, flags)
1532} 1683}
@@ -1549,6 +1700,123 @@ func Signalfd(fd int, sigmask *Sigset_t, flags int) (newfd int, err error) {
1549//sys exitThread(code int) (err error) = SYS_EXIT 1700//sys exitThread(code int) (err error) = SYS_EXIT
1550//sys readlen(fd int, p *byte, np int) (n int, err error) = SYS_READ 1701//sys readlen(fd int, p *byte, np int) (n int, err error) = SYS_READ
1551//sys writelen(fd int, p *byte, np int) (n int, err error) = SYS_WRITE 1702//sys writelen(fd int, p *byte, np int) (n int, err error) = SYS_WRITE
1703//sys readv(fd int, iovs []Iovec) (n int, err error) = SYS_READV
1704//sys writev(fd int, iovs []Iovec) (n int, err error) = SYS_WRITEV
1705//sys preadv(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr) (n int, err error) = SYS_PREADV
1706//sys pwritev(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr) (n int, err error) = SYS_PWRITEV
1707//sys preadv2(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr, flags int) (n int, err error) = SYS_PREADV2
1708//sys pwritev2(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr, flags int) (n int, err error) = SYS_PWRITEV2
1709
1710func bytes2iovec(bs [][]byte) []Iovec {
1711 iovecs := make([]Iovec, len(bs))
1712 for i, b := range bs {
1713 iovecs[i].SetLen(len(b))
1714 if len(b) > 0 {
1715 iovecs[i].Base = &b[0]
1716 } else {
1717 iovecs[i].Base = (*byte)(unsafe.Pointer(&_zero))
1718 }
1719 }
1720 return iovecs
1721}
1722
1723// offs2lohi splits offs into its lower and upper unsigned long. On 64-bit
1724// systems, hi will always be 0. On 32-bit systems, offs will be split in half.
1725// preadv/pwritev chose this calling convention so they don't need to add a
1726// padding-register for alignment on ARM.
1727func offs2lohi(offs int64) (lo, hi uintptr) {
1728 return uintptr(offs), uintptr(uint64(offs) >> SizeofLong)
1729}
1730
1731func Readv(fd int, iovs [][]byte) (n int, err error) {
1732 iovecs := bytes2iovec(iovs)
1733 n, err = readv(fd, iovecs)
1734 readvRacedetect(iovecs, n, err)
1735 return n, err
1736}
1737
1738func Preadv(fd int, iovs [][]byte, offset int64) (n int, err error) {
1739 iovecs := bytes2iovec(iovs)
1740 lo, hi := offs2lohi(offset)
1741 n, err = preadv(fd, iovecs, lo, hi)
1742 readvRacedetect(iovecs, n, err)
1743 return n, err
1744}
1745
1746func Preadv2(fd int, iovs [][]byte, offset int64, flags int) (n int, err error) {
1747 iovecs := bytes2iovec(iovs)
1748 lo, hi := offs2lohi(offset)
1749 n, err = preadv2(fd, iovecs, lo, hi, flags)
1750 readvRacedetect(iovecs, n, err)
1751 return n, err
1752}
1753
1754func readvRacedetect(iovecs []Iovec, n int, err error) {
1755 if !raceenabled {
1756 return
1757 }
1758 for i := 0; n > 0 && i < len(iovecs); i++ {
1759 m := int(iovecs[i].Len)
1760 if m > n {
1761 m = n
1762 }
1763 n -= m
1764 if m > 0 {
1765 raceWriteRange(unsafe.Pointer(iovecs[i].Base), m)
1766 }
1767 }
1768 if err == nil {
1769 raceAcquire(unsafe.Pointer(&ioSync))
1770 }
1771}
1772
1773func Writev(fd int, iovs [][]byte) (n int, err error) {
1774 iovecs := bytes2iovec(iovs)
1775 if raceenabled {
1776 raceReleaseMerge(unsafe.Pointer(&ioSync))
1777 }
1778 n, err = writev(fd, iovecs)
1779 writevRacedetect(iovecs, n)
1780 return n, err
1781}
1782
1783func Pwritev(fd int, iovs [][]byte, offset int64) (n int, err error) {
1784 iovecs := bytes2iovec(iovs)
1785 if raceenabled {
1786 raceReleaseMerge(unsafe.Pointer(&ioSync))
1787 }
1788 lo, hi := offs2lohi(offset)
1789 n, err = pwritev(fd, iovecs, lo, hi)
1790 writevRacedetect(iovecs, n)
1791 return n, err
1792}
1793
1794func Pwritev2(fd int, iovs [][]byte, offset int64, flags int) (n int, err error) {
1795 iovecs := bytes2iovec(iovs)
1796 if raceenabled {
1797 raceReleaseMerge(unsafe.Pointer(&ioSync))
1798 }
1799 lo, hi := offs2lohi(offset)
1800 n, err = pwritev2(fd, iovecs, lo, hi, flags)
1801 writevRacedetect(iovecs, n)
1802 return n, err
1803}
1804
1805func writevRacedetect(iovecs []Iovec, n int) {
1806 if !raceenabled {
1807 return
1808 }
1809 for i := 0; n > 0 && i < len(iovecs); i++ {
1810 m := int(iovecs[i].Len)
1811 if m > n {
1812 m = n
1813 }
1814 n -= m
1815 if m > 0 {
1816 raceReadRange(unsafe.Pointer(iovecs[i].Base), m)
1817 }
1818 }
1819}
1552 1820
1553// mmap varies by architecture; see syscall_linux_*.go. 1821// mmap varies by architecture; see syscall_linux_*.go.
1554//sys munmap(addr uintptr, length uintptr) (err error) 1822//sys munmap(addr uintptr, length uintptr) (err error)
@@ -1738,6 +2006,17 @@ func OpenByHandleAt(mountFD int, handle FileHandle, flags int) (fd int, err erro
1738 return openByHandleAt(mountFD, handle.fileHandle, flags) 2006 return openByHandleAt(mountFD, handle.fileHandle, flags)
1739} 2007}
1740 2008
2009// Klogset wraps the sys_syslog system call; it sets console_loglevel to
2010// the value specified by arg and passes a dummy pointer to bufp.
2011func Klogset(typ int, arg int) (err error) {
2012 var p unsafe.Pointer
2013 _, _, errno := Syscall(SYS_SYSLOG, uintptr(typ), uintptr(p), uintptr(arg))
2014 if errno != 0 {
2015 return errnoErr(errno)
2016 }
2017 return nil
2018}
2019
1741/* 2020/*
1742 * Unimplemented 2021 * Unimplemented
1743 */ 2022 */
diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_386.go b/vendor/golang.org/x/sys/unix/syscall_linux_386.go
index e2f8cf6..a8374b6 100644
--- a/vendor/golang.org/x/sys/unix/syscall_linux_386.go
+++ b/vendor/golang.org/x/sys/unix/syscall_linux_386.go
@@ -70,8 +70,8 @@ func Pipe2(p []int, flags int) (err error) {
70//sys Pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64 70//sys Pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64
71//sys Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) 71//sys Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error)
72//sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) = SYS_SENDFILE64 72//sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) = SYS_SENDFILE64
73//sys Setfsgid(gid int) (err error) = SYS_SETFSGID32 73//sys setfsgid(gid int) (prev int, err error) = SYS_SETFSGID32
74//sys Setfsuid(uid int) (err error) = SYS_SETFSUID32 74//sys setfsuid(uid int) (prev int, err error) = SYS_SETFSUID32
75//sysnb Setregid(rgid int, egid int) (err error) = SYS_SETREGID32 75//sysnb Setregid(rgid int, egid int) (err error) = SYS_SETREGID32
76//sysnb Setresgid(rgid int, egid int, sgid int) (err error) = SYS_SETRESGID32 76//sysnb Setresgid(rgid int, egid int, sgid int) (err error) = SYS_SETRESGID32
77//sysnb Setresuid(ruid int, euid int, suid int) (err error) = SYS_SETRESUID32 77//sysnb Setresuid(ruid int, euid int, suid int) (err error) = SYS_SETRESUID32
@@ -372,6 +372,10 @@ func (msghdr *Msghdr) SetControllen(length int) {
372 msghdr.Controllen = uint32(length) 372 msghdr.Controllen = uint32(length)
373} 373}
374 374
375func (msghdr *Msghdr) SetIovlen(length int) {
376 msghdr.Iovlen = uint32(length)
377}
378
375func (cmsg *Cmsghdr) SetLen(length int) { 379func (cmsg *Cmsghdr) SetLen(length int) {
376 cmsg.Len = uint32(length) 380 cmsg.Len = uint32(length)
377} 381}
diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_amd64.go b/vendor/golang.org/x/sys/unix/syscall_linux_amd64.go
index 87a3074..8ed1d54 100644
--- a/vendor/golang.org/x/sys/unix/syscall_linux_amd64.go
+++ b/vendor/golang.org/x/sys/unix/syscall_linux_amd64.go
@@ -55,8 +55,8 @@ func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err
55} 55}
56 56
57//sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) 57//sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error)
58//sys Setfsgid(gid int) (err error) 58//sys setfsgid(gid int) (prev int, err error)
59//sys Setfsuid(uid int) (err error) 59//sys setfsuid(uid int) (prev int, err error)
60//sysnb Setregid(rgid int, egid int) (err error) 60//sysnb Setregid(rgid int, egid int) (err error)
61//sysnb Setresgid(rgid int, egid int, sgid int) (err error) 61//sysnb Setresgid(rgid int, egid int, sgid int) (err error)
62//sysnb Setresuid(ruid int, euid int, suid int) (err error) 62//sysnb Setresuid(ruid int, euid int, suid int) (err error)
@@ -163,6 +163,10 @@ func (msghdr *Msghdr) SetControllen(length int) {
163 msghdr.Controllen = uint64(length) 163 msghdr.Controllen = uint64(length)
164} 164}
165 165
166func (msghdr *Msghdr) SetIovlen(length int) {
167 msghdr.Iovlen = uint64(length)
168}
169
166func (cmsg *Cmsghdr) SetLen(length int) { 170func (cmsg *Cmsghdr) SetLen(length int) {
167 cmsg.Len = uint64(length) 171 cmsg.Len = uint64(length)
168} 172}
diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_arm.go b/vendor/golang.org/x/sys/unix/syscall_linux_arm.go
index f626794..99ae613 100644
--- a/vendor/golang.org/x/sys/unix/syscall_linux_arm.go
+++ b/vendor/golang.org/x/sys/unix/syscall_linux_arm.go
@@ -98,8 +98,8 @@ func Seek(fd int, offset int64, whence int) (newoffset int64, err error) {
98//sys Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) 98//sys Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error)
99//sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) = SYS_SENDFILE64 99//sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) = SYS_SENDFILE64
100//sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) = SYS__NEWSELECT 100//sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) = SYS__NEWSELECT
101//sys Setfsgid(gid int) (err error) = SYS_SETFSGID32 101//sys setfsgid(gid int) (prev int, err error) = SYS_SETFSGID32
102//sys Setfsuid(uid int) (err error) = SYS_SETFSUID32 102//sys setfsuid(uid int) (prev int, err error) = SYS_SETFSUID32
103//sysnb Setregid(rgid int, egid int) (err error) = SYS_SETREGID32 103//sysnb Setregid(rgid int, egid int) (err error) = SYS_SETREGID32
104//sysnb Setresgid(rgid int, egid int, sgid int) (err error) = SYS_SETRESGID32 104//sysnb Setresgid(rgid int, egid int, sgid int) (err error) = SYS_SETRESGID32
105//sysnb Setresuid(ruid int, euid int, suid int) (err error) = SYS_SETRESUID32 105//sysnb Setresuid(ruid int, euid int, suid int) (err error) = SYS_SETRESUID32
@@ -252,6 +252,10 @@ func (msghdr *Msghdr) SetControllen(length int) {
252 msghdr.Controllen = uint32(length) 252 msghdr.Controllen = uint32(length)
253} 253}
254 254
255func (msghdr *Msghdr) SetIovlen(length int) {
256 msghdr.Iovlen = uint32(length)
257}
258
255func (cmsg *Cmsghdr) SetLen(length int) { 259func (cmsg *Cmsghdr) SetLen(length int) {
256 cmsg.Len = uint32(length) 260 cmsg.Len = uint32(length)
257} 261}
diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_arm64.go b/vendor/golang.org/x/sys/unix/syscall_linux_arm64.go
index cb20b15..807a0b2 100644
--- a/vendor/golang.org/x/sys/unix/syscall_linux_arm64.go
+++ b/vendor/golang.org/x/sys/unix/syscall_linux_arm64.go
@@ -42,8 +42,8 @@ func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err
42} 42}
43 43
44//sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) 44//sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error)
45//sys Setfsgid(gid int) (err error) 45//sys setfsgid(gid int) (prev int, err error)
46//sys Setfsuid(uid int) (err error) 46//sys setfsuid(uid int) (prev int, err error)
47//sysnb Setregid(rgid int, egid int) (err error) 47//sysnb Setregid(rgid int, egid int) (err error)
48//sysnb Setresgid(rgid int, egid int, sgid int) (err error) 48//sysnb Setresgid(rgid int, egid int, sgid int) (err error)
49//sysnb Setresuid(ruid int, euid int, suid int) (err error) 49//sysnb Setresuid(ruid int, euid int, suid int) (err error)
@@ -180,6 +180,10 @@ func (msghdr *Msghdr) SetControllen(length int) {
180 msghdr.Controllen = uint64(length) 180 msghdr.Controllen = uint64(length)
181} 181}
182 182
183func (msghdr *Msghdr) SetIovlen(length int) {
184 msghdr.Iovlen = uint64(length)
185}
186
183func (cmsg *Cmsghdr) SetLen(length int) { 187func (cmsg *Cmsghdr) SetLen(length int) {
184 cmsg.Len = uint64(length) 188 cmsg.Len = uint64(length)
185} 189}
diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_mips64x.go b/vendor/golang.org/x/sys/unix/syscall_linux_mips64x.go
index b3b21ec..af77e6e 100644
--- a/vendor/golang.org/x/sys/unix/syscall_linux_mips64x.go
+++ b/vendor/golang.org/x/sys/unix/syscall_linux_mips64x.go
@@ -36,8 +36,8 @@ func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err
36} 36}
37 37
38//sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) 38//sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error)
39//sys Setfsgid(gid int) (err error) 39//sys setfsgid(gid int) (prev int, err error)
40//sys Setfsuid(uid int) (err error) 40//sys setfsuid(uid int) (prev int, err error)
41//sysnb Setregid(rgid int, egid int) (err error) 41//sysnb Setregid(rgid int, egid int) (err error)
42//sysnb Setresgid(rgid int, egid int, sgid int) (err error) 42//sysnb Setresgid(rgid int, egid int, sgid int) (err error)
43//sysnb Setresuid(ruid int, euid int, suid int) (err error) 43//sysnb Setresuid(ruid int, euid int, suid int) (err error)
@@ -208,10 +208,18 @@ func (msghdr *Msghdr) SetControllen(length int) {
208 msghdr.Controllen = uint64(length) 208 msghdr.Controllen = uint64(length)
209} 209}
210 210
211func (msghdr *Msghdr) SetIovlen(length int) {
212 msghdr.Iovlen = uint64(length)
213}
214
211func (cmsg *Cmsghdr) SetLen(length int) { 215func (cmsg *Cmsghdr) SetLen(length int) {
212 cmsg.Len = uint64(length) 216 cmsg.Len = uint64(length)
213} 217}
214 218
219func InotifyInit() (fd int, err error) {
220 return InotifyInit1(0)
221}
222
215//sys poll(fds *PollFd, nfds int, timeout int) (n int, err error) 223//sys poll(fds *PollFd, nfds int, timeout int) (n int, err error)
216 224
217func Poll(fds []PollFd, timeout int) (n int, err error) { 225func Poll(fds []PollFd, timeout int) (n int, err error) {
diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_mipsx.go b/vendor/golang.org/x/sys/unix/syscall_linux_mipsx.go
index 5144d4e..e286c6b 100644
--- a/vendor/golang.org/x/sys/unix/syscall_linux_mipsx.go
+++ b/vendor/golang.org/x/sys/unix/syscall_linux_mipsx.go
@@ -31,8 +31,8 @@ func Syscall9(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr,
31//sys Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) 31//sys Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error)
32//sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) = SYS__NEWSELECT 32//sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) = SYS__NEWSELECT
33//sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) = SYS_SENDFILE64 33//sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) = SYS_SENDFILE64
34//sys Setfsgid(gid int) (err error) 34//sys setfsgid(gid int) (prev int, err error)
35//sys Setfsuid(uid int) (err error) 35//sys setfsuid(uid int) (prev int, err error)
36//sysnb Setregid(rgid int, egid int) (err error) 36//sysnb Setregid(rgid int, egid int) (err error)
37//sysnb Setresgid(rgid int, egid int, sgid int) (err error) 37//sysnb Setresgid(rgid int, egid int, sgid int) (err error)
38//sysnb Setresuid(ruid int, euid int, suid int) (err error) 38//sysnb Setresuid(ruid int, euid int, suid int) (err error)
@@ -220,6 +220,10 @@ func (msghdr *Msghdr) SetControllen(length int) {
220 msghdr.Controllen = uint32(length) 220 msghdr.Controllen = uint32(length)
221} 221}
222 222
223func (msghdr *Msghdr) SetIovlen(length int) {
224 msghdr.Iovlen = uint32(length)
225}
226
223func (cmsg *Cmsghdr) SetLen(length int) { 227func (cmsg *Cmsghdr) SetLen(length int) {
224 cmsg.Len = uint32(length) 228 cmsg.Len = uint32(length)
225} 229}
diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_ppc64x.go b/vendor/golang.org/x/sys/unix/syscall_linux_ppc64x.go
index 0a100b6..ca0345a 100644
--- a/vendor/golang.org/x/sys/unix/syscall_linux_ppc64x.go
+++ b/vendor/golang.org/x/sys/unix/syscall_linux_ppc64x.go
@@ -34,8 +34,8 @@ package unix
34//sys Seek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK 34//sys Seek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK
35//sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) = SYS__NEWSELECT 35//sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) = SYS__NEWSELECT
36//sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) 36//sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error)
37//sys Setfsgid(gid int) (err error) 37//sys setfsgid(gid int) (prev int, err error)
38//sys Setfsuid(uid int) (err error) 38//sys setfsuid(uid int) (prev int, err error)
39//sysnb Setregid(rgid int, egid int) (err error) 39//sysnb Setregid(rgid int, egid int) (err error)
40//sysnb Setresgid(rgid int, egid int, sgid int) (err error) 40//sysnb Setresgid(rgid int, egid int, sgid int) (err error)
41//sysnb Setresuid(ruid int, euid int, suid int) (err error) 41//sysnb Setresuid(ruid int, euid int, suid int) (err error)
@@ -91,6 +91,10 @@ func (msghdr *Msghdr) SetControllen(length int) {
91 msghdr.Controllen = uint64(length) 91 msghdr.Controllen = uint64(length)
92} 92}
93 93
94func (msghdr *Msghdr) SetIovlen(length int) {
95 msghdr.Iovlen = uint64(length)
96}
97
94func (cmsg *Cmsghdr) SetLen(length int) { 98func (cmsg *Cmsghdr) SetLen(length int) {
95 cmsg.Len = uint64(length) 99 cmsg.Len = uint64(length)
96} 100}
diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_riscv64.go b/vendor/golang.org/x/sys/unix/syscall_linux_riscv64.go
index 6230f64..abdabba 100644
--- a/vendor/golang.org/x/sys/unix/syscall_linux_riscv64.go
+++ b/vendor/golang.org/x/sys/unix/syscall_linux_riscv64.go
@@ -41,8 +41,8 @@ func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err
41} 41}
42 42
43//sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) 43//sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error)
44//sys Setfsgid(gid int) (err error) 44//sys setfsgid(gid int) (prev int, err error)
45//sys Setfsuid(uid int) (err error) 45//sys setfsuid(uid int) (prev int, err error)
46//sysnb Setregid(rgid int, egid int) (err error) 46//sysnb Setregid(rgid int, egid int) (err error)
47//sysnb Setresgid(rgid int, egid int, sgid int) (err error) 47//sysnb Setresgid(rgid int, egid int, sgid int) (err error)
48//sysnb Setresuid(ruid int, euid int, suid int) (err error) 48//sysnb Setresuid(ruid int, euid int, suid int) (err error)
@@ -179,6 +179,10 @@ func (msghdr *Msghdr) SetControllen(length int) {
179 msghdr.Controllen = uint64(length) 179 msghdr.Controllen = uint64(length)
180} 180}
181 181
182func (msghdr *Msghdr) SetIovlen(length int) {
183 msghdr.Iovlen = uint64(length)
184}
185
182func (cmsg *Cmsghdr) SetLen(length int) { 186func (cmsg *Cmsghdr) SetLen(length int) {
183 cmsg.Len = uint64(length) 187 cmsg.Len = uint64(length)
184} 188}
diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_s390x.go b/vendor/golang.org/x/sys/unix/syscall_linux_s390x.go
index f81dbdc..533e930 100644
--- a/vendor/golang.org/x/sys/unix/syscall_linux_s390x.go
+++ b/vendor/golang.org/x/sys/unix/syscall_linux_s390x.go
@@ -34,8 +34,8 @@ import (
34//sys Seek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK 34//sys Seek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK
35//sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) 35//sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error)
36//sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) 36//sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error)
37//sys Setfsgid(gid int) (err error) 37//sys setfsgid(gid int) (prev int, err error)
38//sys Setfsuid(uid int) (err error) 38//sys setfsuid(uid int) (prev int, err error)
39//sysnb Setregid(rgid int, egid int) (err error) 39//sysnb Setregid(rgid int, egid int) (err error)
40//sysnb Setresgid(rgid int, egid int, sgid int) (err error) 40//sysnb Setresgid(rgid int, egid int, sgid int) (err error)
41//sysnb Setresuid(ruid int, euid int, suid int) (err error) 41//sysnb Setresuid(ruid int, euid int, suid int) (err error)
@@ -120,6 +120,10 @@ func (msghdr *Msghdr) SetControllen(length int) {
120 msghdr.Controllen = uint64(length) 120 msghdr.Controllen = uint64(length)
121} 121}
122 122
123func (msghdr *Msghdr) SetIovlen(length int) {
124 msghdr.Iovlen = uint64(length)
125}
126
123func (cmsg *Cmsghdr) SetLen(length int) { 127func (cmsg *Cmsghdr) SetLen(length int) {
124 cmsg.Len = uint64(length) 128 cmsg.Len = uint64(length)
125} 129}
diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_sparc64.go b/vendor/golang.org/x/sys/unix/syscall_linux_sparc64.go
index b695656..d890a22 100644
--- a/vendor/golang.org/x/sys/unix/syscall_linux_sparc64.go
+++ b/vendor/golang.org/x/sys/unix/syscall_linux_sparc64.go
@@ -30,8 +30,8 @@ package unix
30//sys Seek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK 30//sys Seek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK
31//sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) 31//sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error)
32//sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) 32//sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error)
33//sys Setfsgid(gid int) (err error) 33//sys setfsgid(gid int) (prev int, err error)
34//sys Setfsuid(uid int) (err error) 34//sys setfsuid(uid int) (prev int, err error)
35//sysnb Setregid(rgid int, egid int) (err error) 35//sysnb Setregid(rgid int, egid int) (err error)
36//sysnb Setresgid(rgid int, egid int, sgid int) (err error) 36//sysnb Setresgid(rgid int, egid int, sgid int) (err error)
37//sysnb Setresuid(ruid int, euid int, suid int) (err error) 37//sysnb Setresuid(ruid int, euid int, suid int) (err error)
@@ -107,6 +107,10 @@ func (msghdr *Msghdr) SetControllen(length int) {
107 msghdr.Controllen = uint64(length) 107 msghdr.Controllen = uint64(length)
108} 108}
109 109
110func (msghdr *Msghdr) SetIovlen(length int) {
111 msghdr.Iovlen = uint64(length)
112}
113
110func (cmsg *Cmsghdr) SetLen(length int) { 114func (cmsg *Cmsghdr) SetLen(length int) {
111 cmsg.Len = uint64(length) 115 cmsg.Len = uint64(length)
112} 116}
diff --git a/vendor/golang.org/x/sys/unix/syscall_netbsd.go b/vendor/golang.org/x/sys/unix/syscall_netbsd.go
index 7f9812b..45b50a6 100644
--- a/vendor/golang.org/x/sys/unix/syscall_netbsd.go
+++ b/vendor/golang.org/x/sys/unix/syscall_netbsd.go
@@ -106,23 +106,6 @@ func direntNamlen(buf []byte) (uint64, bool) {
106 return readInt(buf, unsafe.Offsetof(Dirent{}.Namlen), unsafe.Sizeof(Dirent{}.Namlen)) 106 return readInt(buf, unsafe.Offsetof(Dirent{}.Namlen), unsafe.Sizeof(Dirent{}.Namlen))
107} 107}
108 108
109func SysctlClockinfo(name string) (*Clockinfo, error) {
110 mib, err := sysctlmib(name)
111 if err != nil {
112 return nil, err
113 }
114
115 n := uintptr(SizeofClockinfo)
116 var ci Clockinfo
117 if err := sysctl(mib, (*byte)(unsafe.Pointer(&ci)), &n, nil, 0); err != nil {
118 return nil, err
119 }
120 if n != SizeofClockinfo {
121 return nil, EIO
122 }
123 return &ci, nil
124}
125
126//sysnb pipe() (fd1 int, fd2 int, err error) 109//sysnb pipe() (fd1 int, fd2 int, err error)
127func Pipe(p []int) (err error) { 110func Pipe(p []int) (err error) {
128 if len(p) != 2 { 111 if len(p) != 2 {
@@ -187,6 +170,8 @@ func setattrlistTimes(path string, times []Timespec, flags int) error {
187 170
188//sys ioctl(fd int, req uint, arg uintptr) (err error) 171//sys ioctl(fd int, req uint, arg uintptr) (err error)
189 172
173//sys sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) = SYS___SYSCTL
174
190func IoctlGetPtmget(fd int, req uint) (*Ptmget, error) { 175func IoctlGetPtmget(fd int, req uint) (*Ptmget, error) {
191 var value Ptmget 176 var value Ptmget
192 err := ioctl(fd, req, uintptr(unsafe.Pointer(&value))) 177 err := ioctl(fd, req, uintptr(unsafe.Pointer(&value)))
@@ -247,6 +232,14 @@ func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err e
247 return sendfile(outfd, infd, offset, count) 232 return sendfile(outfd, infd, offset, count)
248} 233}
249 234
235func Fstatvfs(fd int, buf *Statvfs_t) (err error) {
236 return Fstatvfs1(fd, buf, ST_WAIT)
237}
238
239func Statvfs(path string, buf *Statvfs_t) (err error) {
240 return Statvfs1(path, buf, ST_WAIT)
241}
242
250/* 243/*
251 * Exposed directly 244 * Exposed directly
252 */ 245 */
@@ -260,6 +253,7 @@ func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err e
260//sys Close(fd int) (err error) 253//sys Close(fd int) (err error)
261//sys Dup(fd int) (nfd int, err error) 254//sys Dup(fd int) (nfd int, err error)
262//sys Dup2(from int, to int) (err error) 255//sys Dup2(from int, to int) (err error)
256//sys Dup3(from int, to int, flags int) (err error)
263//sys Exit(code int) 257//sys Exit(code int)
264//sys ExtattrGetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) 258//sys ExtattrGetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error)
265//sys ExtattrSetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) 259//sys ExtattrSetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error)
@@ -285,6 +279,7 @@ func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err e
285//sys Fpathconf(fd int, name int) (val int, err error) 279//sys Fpathconf(fd int, name int) (val int, err error)
286//sys Fstat(fd int, stat *Stat_t) (err error) 280//sys Fstat(fd int, stat *Stat_t) (err error)
287//sys Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) 281//sys Fstatat(fd int, path string, stat *Stat_t, flags int) (err error)
282//sys Fstatvfs1(fd int, buf *Statvfs_t, flags int) (err error) = SYS_FSTATVFS1
288//sys Fsync(fd int) (err error) 283//sys Fsync(fd int) (err error)
289//sys Ftruncate(fd int, length int64) (err error) 284//sys Ftruncate(fd int, length int64) (err error)
290//sysnb Getegid() (egid int) 285//sysnb Getegid() (egid int)
@@ -328,7 +323,7 @@ func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err e
328//sys Revoke(path string) (err error) 323//sys Revoke(path string) (err error)
329//sys Rmdir(path string) (err error) 324//sys Rmdir(path string) (err error)
330//sys Seek(fd int, offset int64, whence int) (newoffset int64, err error) = SYS_LSEEK 325//sys Seek(fd int, offset int64, whence int) (newoffset int64, err error) = SYS_LSEEK
331//sys Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) 326//sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error)
332//sysnb Setegid(egid int) (err error) 327//sysnb Setegid(egid int) (err error)
333//sysnb Seteuid(euid int) (err error) 328//sysnb Seteuid(euid int) (err error)
334//sysnb Setgid(gid int) (err error) 329//sysnb Setgid(gid int) (err error)
@@ -341,6 +336,7 @@ func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err e
341//sysnb Settimeofday(tp *Timeval) (err error) 336//sysnb Settimeofday(tp *Timeval) (err error)
342//sysnb Setuid(uid int) (err error) 337//sysnb Setuid(uid int) (err error)
343//sys Stat(path string, stat *Stat_t) (err error) 338//sys Stat(path string, stat *Stat_t) (err error)
339//sys Statvfs1(path string, buf *Statvfs_t, flags int) (err error) = SYS_STATVFS1
344//sys Symlink(path string, link string) (err error) 340//sys Symlink(path string, link string) (err error)
345//sys Symlinkat(oldpath string, newdirfd int, newpath string) (err error) 341//sys Symlinkat(oldpath string, newdirfd int, newpath string) (err error)
346//sys Sync() (err error) 342//sys Sync() (err error)
diff --git a/vendor/golang.org/x/sys/unix/syscall_netbsd_386.go b/vendor/golang.org/x/sys/unix/syscall_netbsd_386.go
index 24f74e5..24da8b5 100644
--- a/vendor/golang.org/x/sys/unix/syscall_netbsd_386.go
+++ b/vendor/golang.org/x/sys/unix/syscall_netbsd_386.go
@@ -28,6 +28,10 @@ func (msghdr *Msghdr) SetControllen(length int) {
28 msghdr.Controllen = uint32(length) 28 msghdr.Controllen = uint32(length)
29} 29}
30 30
31func (msghdr *Msghdr) SetIovlen(length int) {
32 msghdr.Iovlen = int32(length)
33}
34
31func (cmsg *Cmsghdr) SetLen(length int) { 35func (cmsg *Cmsghdr) SetLen(length int) {
32 cmsg.Len = uint32(length) 36 cmsg.Len = uint32(length)
33} 37}
diff --git a/vendor/golang.org/x/sys/unix/syscall_netbsd_amd64.go b/vendor/golang.org/x/sys/unix/syscall_netbsd_amd64.go
index 6878bf7..25a0ac8 100644
--- a/vendor/golang.org/x/sys/unix/syscall_netbsd_amd64.go
+++ b/vendor/golang.org/x/sys/unix/syscall_netbsd_amd64.go
@@ -28,6 +28,10 @@ func (msghdr *Msghdr) SetControllen(length int) {
28 msghdr.Controllen = uint32(length) 28 msghdr.Controllen = uint32(length)
29} 29}
30 30
31func (msghdr *Msghdr) SetIovlen(length int) {
32 msghdr.Iovlen = int32(length)
33}
34
31func (cmsg *Cmsghdr) SetLen(length int) { 35func (cmsg *Cmsghdr) SetLen(length int) {
32 cmsg.Len = uint32(length) 36 cmsg.Len = uint32(length)
33} 37}
diff --git a/vendor/golang.org/x/sys/unix/syscall_netbsd_arm.go b/vendor/golang.org/x/sys/unix/syscall_netbsd_arm.go
index dbbfcf7..21591ec 100644
--- a/vendor/golang.org/x/sys/unix/syscall_netbsd_arm.go
+++ b/vendor/golang.org/x/sys/unix/syscall_netbsd_arm.go
@@ -28,6 +28,10 @@ func (msghdr *Msghdr) SetControllen(length int) {
28 msghdr.Controllen = uint32(length) 28 msghdr.Controllen = uint32(length)
29} 29}
30 30
31func (msghdr *Msghdr) SetIovlen(length int) {
32 msghdr.Iovlen = int32(length)
33}
34
31func (cmsg *Cmsghdr) SetLen(length int) { 35func (cmsg *Cmsghdr) SetLen(length int) {
32 cmsg.Len = uint32(length) 36 cmsg.Len = uint32(length)
33} 37}
diff --git a/vendor/golang.org/x/sys/unix/syscall_netbsd_arm64.go b/vendor/golang.org/x/sys/unix/syscall_netbsd_arm64.go
index f343446..8047496 100644
--- a/vendor/golang.org/x/sys/unix/syscall_netbsd_arm64.go
+++ b/vendor/golang.org/x/sys/unix/syscall_netbsd_arm64.go
@@ -28,6 +28,10 @@ func (msghdr *Msghdr) SetControllen(length int) {
28 msghdr.Controllen = uint32(length) 28 msghdr.Controllen = uint32(length)
29} 29}
30 30
31func (msghdr *Msghdr) SetIovlen(length int) {
32 msghdr.Iovlen = int32(length)
33}
34
31func (cmsg *Cmsghdr) SetLen(length int) { 35func (cmsg *Cmsghdr) SetLen(length int) {
32 cmsg.Len = uint32(length) 36 cmsg.Len = uint32(length)
33} 37}
diff --git a/vendor/golang.org/x/sys/unix/syscall_openbsd.go b/vendor/golang.org/x/sys/unix/syscall_openbsd.go
index 9a26768..a266e92 100644
--- a/vendor/golang.org/x/sys/unix/syscall_openbsd.go
+++ b/vendor/golang.org/x/sys/unix/syscall_openbsd.go
@@ -55,23 +55,6 @@ func direntNamlen(buf []byte) (uint64, bool) {
55 return readInt(buf, unsafe.Offsetof(Dirent{}.Namlen), unsafe.Sizeof(Dirent{}.Namlen)) 55 return readInt(buf, unsafe.Offsetof(Dirent{}.Namlen), unsafe.Sizeof(Dirent{}.Namlen))
56} 56}
57 57
58func SysctlClockinfo(name string) (*Clockinfo, error) {
59 mib, err := sysctlmib(name)
60 if err != nil {
61 return nil, err
62 }
63
64 n := uintptr(SizeofClockinfo)
65 var ci Clockinfo
66 if err := sysctl(mib, (*byte)(unsafe.Pointer(&ci)), &n, nil, 0); err != nil {
67 return nil, err
68 }
69 if n != SizeofClockinfo {
70 return nil, EIO
71 }
72 return &ci, nil
73}
74
75func SysctlUvmexp(name string) (*Uvmexp, error) { 58func SysctlUvmexp(name string) (*Uvmexp, error) {
76 mib, err := sysctlmib(name) 59 mib, err := sysctlmib(name)
77 if err != nil { 60 if err != nil {
@@ -89,16 +72,20 @@ func SysctlUvmexp(name string) (*Uvmexp, error) {
89 return &u, nil 72 return &u, nil
90} 73}
91 74
92//sysnb pipe(p *[2]_C_int) (err error)
93func Pipe(p []int) (err error) { 75func Pipe(p []int) (err error) {
76 return Pipe2(p, 0)
77}
78
79//sysnb pipe2(p *[2]_C_int, flags int) (err error)
80func Pipe2(p []int, flags int) error {
94 if len(p) != 2 { 81 if len(p) != 2 {
95 return EINVAL 82 return EINVAL
96 } 83 }
97 var pp [2]_C_int 84 var pp [2]_C_int
98 err = pipe(&pp) 85 err := pipe2(&pp, flags)
99 p[0] = int(pp[0]) 86 p[0] = int(pp[0])
100 p[1] = int(pp[1]) 87 p[1] = int(pp[1])
101 return 88 return err
102} 89}
103 90
104//sys Getdents(fd int, buf []byte) (n int, err error) 91//sys Getdents(fd int, buf []byte) (n int, err error)
@@ -178,6 +165,8 @@ func setattrlistTimes(path string, times []Timespec, flags int) error {
178 165
179//sys ioctl(fd int, req uint, arg uintptr) (err error) 166//sys ioctl(fd int, req uint, arg uintptr) (err error)
180 167
168//sys sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) = SYS___SYSCTL
169
181//sys ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) 170//sys ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error)
182 171
183func Ppoll(fds []PollFd, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { 172func Ppoll(fds []PollFd, timeout *Timespec, sigmask *Sigset_t) (n int, err error) {
@@ -246,6 +235,7 @@ func Uname(uname *Utsname) error {
246//sys Close(fd int) (err error) 235//sys Close(fd int) (err error)
247//sys Dup(fd int) (nfd int, err error) 236//sys Dup(fd int) (nfd int, err error)
248//sys Dup2(from int, to int) (err error) 237//sys Dup2(from int, to int) (err error)
238//sys Dup3(from int, to int, flags int) (err error)
249//sys Exit(code int) 239//sys Exit(code int)
250//sys Faccessat(dirfd int, path string, mode uint32, flags int) (err error) 240//sys Faccessat(dirfd int, path string, mode uint32, flags int) (err error)
251//sys Fchdir(fd int) (err error) 241//sys Fchdir(fd int) (err error)
@@ -303,7 +293,7 @@ func Uname(uname *Utsname) error {
303//sys Revoke(path string) (err error) 293//sys Revoke(path string) (err error)
304//sys Rmdir(path string) (err error) 294//sys Rmdir(path string) (err error)
305//sys Seek(fd int, offset int64, whence int) (newoffset int64, err error) = SYS_LSEEK 295//sys Seek(fd int, offset int64, whence int) (newoffset int64, err error) = SYS_LSEEK
306//sys Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) 296//sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error)
307//sysnb Setegid(egid int) (err error) 297//sysnb Setegid(egid int) (err error)
308//sysnb Seteuid(euid int) (err error) 298//sysnb Seteuid(euid int) (err error)
309//sysnb Setgid(gid int) (err error) 299//sysnb Setgid(gid int) (err error)
@@ -350,7 +340,6 @@ func Uname(uname *Utsname) error {
350// clock_settime 340// clock_settime
351// closefrom 341// closefrom
352// execve 342// execve
353// fcntl
354// fhopen 343// fhopen
355// fhstat 344// fhstat
356// fhstatfs 345// fhstatfs
diff --git a/vendor/golang.org/x/sys/unix/syscall_openbsd_386.go b/vendor/golang.org/x/sys/unix/syscall_openbsd_386.go
index d62da60..42b5a0e 100644
--- a/vendor/golang.org/x/sys/unix/syscall_openbsd_386.go
+++ b/vendor/golang.org/x/sys/unix/syscall_openbsd_386.go
@@ -28,6 +28,10 @@ func (msghdr *Msghdr) SetControllen(length int) {
28 msghdr.Controllen = uint32(length) 28 msghdr.Controllen = uint32(length)
29} 29}
30 30
31func (msghdr *Msghdr) SetIovlen(length int) {
32 msghdr.Iovlen = uint32(length)
33}
34
31func (cmsg *Cmsghdr) SetLen(length int) { 35func (cmsg *Cmsghdr) SetLen(length int) {
32 cmsg.Len = uint32(length) 36 cmsg.Len = uint32(length)
33} 37}
diff --git a/vendor/golang.org/x/sys/unix/syscall_openbsd_amd64.go b/vendor/golang.org/x/sys/unix/syscall_openbsd_amd64.go
index 9a35334..6ea4b48 100644
--- a/vendor/golang.org/x/sys/unix/syscall_openbsd_amd64.go
+++ b/vendor/golang.org/x/sys/unix/syscall_openbsd_amd64.go
@@ -28,6 +28,10 @@ func (msghdr *Msghdr) SetControllen(length int) {
28 msghdr.Controllen = uint32(length) 28 msghdr.Controllen = uint32(length)
29} 29}
30 30
31func (msghdr *Msghdr) SetIovlen(length int) {
32 msghdr.Iovlen = uint32(length)
33}
34
31func (cmsg *Cmsghdr) SetLen(length int) { 35func (cmsg *Cmsghdr) SetLen(length int) {
32 cmsg.Len = uint32(length) 36 cmsg.Len = uint32(length)
33} 37}
diff --git a/vendor/golang.org/x/sys/unix/syscall_openbsd_arm.go b/vendor/golang.org/x/sys/unix/syscall_openbsd_arm.go
index 5d812aa..1c3d26f 100644
--- a/vendor/golang.org/x/sys/unix/syscall_openbsd_arm.go
+++ b/vendor/golang.org/x/sys/unix/syscall_openbsd_arm.go
@@ -28,6 +28,10 @@ func (msghdr *Msghdr) SetControllen(length int) {
28 msghdr.Controllen = uint32(length) 28 msghdr.Controllen = uint32(length)
29} 29}
30 30
31func (msghdr *Msghdr) SetIovlen(length int) {
32 msghdr.Iovlen = uint32(length)
33}
34
31func (cmsg *Cmsghdr) SetLen(length int) { 35func (cmsg *Cmsghdr) SetLen(length int) {
32 cmsg.Len = uint32(length) 36 cmsg.Len = uint32(length)
33} 37}
diff --git a/vendor/golang.org/x/sys/unix/syscall_openbsd_arm64.go b/vendor/golang.org/x/sys/unix/syscall_openbsd_arm64.go
index 0fb39cf..a8c458c 100644
--- a/vendor/golang.org/x/sys/unix/syscall_openbsd_arm64.go
+++ b/vendor/golang.org/x/sys/unix/syscall_openbsd_arm64.go
@@ -28,6 +28,10 @@ func (msghdr *Msghdr) SetControllen(length int) {
28 msghdr.Controllen = uint32(length) 28 msghdr.Controllen = uint32(length)
29} 29}
30 30
31func (msghdr *Msghdr) SetIovlen(length int) {
32 msghdr.Iovlen = uint32(length)
33}
34
31func (cmsg *Cmsghdr) SetLen(length int) { 35func (cmsg *Cmsghdr) SetLen(length int) {
32 cmsg.Len = uint32(length) 36 cmsg.Len = uint32(length)
33} 37}
diff --git a/vendor/golang.org/x/sys/unix/syscall_solaris.go b/vendor/golang.org/x/sys/unix/syscall_solaris.go
index 1610f55..0e2a696 100644
--- a/vendor/golang.org/x/sys/unix/syscall_solaris.go
+++ b/vendor/golang.org/x/sys/unix/syscall_solaris.go
@@ -391,7 +391,7 @@ func anyToSockaddr(fd int, rsa *RawSockaddrAny) (Sockaddr, error) {
391 for n < len(pp.Path) && pp.Path[n] != 0 { 391 for n < len(pp.Path) && pp.Path[n] != 0 {
392 n++ 392 n++
393 } 393 }
394 bytes := (*[10000]byte)(unsafe.Pointer(&pp.Path[0]))[0:n] 394 bytes := (*[len(pp.Path)]byte)(unsafe.Pointer(&pp.Path[0]))[0:n]
395 sa.Name = string(bytes) 395 sa.Name = string(bytes)
396 return sa, nil 396 return sa, nil
397 397
@@ -649,7 +649,7 @@ func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err e
649//sys Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) 649//sys Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error)
650//sys Rmdir(path string) (err error) 650//sys Rmdir(path string) (err error)
651//sys Seek(fd int, offset int64, whence int) (newoffset int64, err error) = lseek 651//sys Seek(fd int, offset int64, whence int) (newoffset int64, err error) = lseek
652//sys Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) 652//sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error)
653//sysnb Setegid(egid int) (err error) 653//sysnb Setegid(egid int) (err error)
654//sysnb Seteuid(euid int) (err error) 654//sysnb Seteuid(euid int) (err error)
655//sysnb Setgid(gid int) (err error) 655//sysnb Setgid(gid int) (err error)
diff --git a/vendor/golang.org/x/sys/unix/syscall_solaris_amd64.go b/vendor/golang.org/x/sys/unix/syscall_solaris_amd64.go
index 91c32dd..b22a34d 100644
--- a/vendor/golang.org/x/sys/unix/syscall_solaris_amd64.go
+++ b/vendor/golang.org/x/sys/unix/syscall_solaris_amd64.go
@@ -18,6 +18,10 @@ func (iov *Iovec) SetLen(length int) {
18 iov.Len = uint64(length) 18 iov.Len = uint64(length)
19} 19}
20 20
21func (msghdr *Msghdr) SetIovlen(length int) {
22 msghdr.Iovlen = int32(length)
23}
24
21func (cmsg *Cmsghdr) SetLen(length int) { 25func (cmsg *Cmsghdr) SetLen(length int) {
22 cmsg.Len = uint32(length) 26 cmsg.Len = uint32(length)
23} 27}
diff --git a/vendor/golang.org/x/sys/unix/zerrors_aix_ppc.go b/vendor/golang.org/x/sys/unix/zerrors_aix_ppc.go
index 1def8a5..104994b 100644
--- a/vendor/golang.org/x/sys/unix/zerrors_aix_ppc.go
+++ b/vendor/golang.org/x/sys/unix/zerrors_aix_ppc.go
@@ -459,6 +459,15 @@ const (
459 MAP_SHARED = 0x1 459 MAP_SHARED = 0x1
460 MAP_TYPE = 0xf0 460 MAP_TYPE = 0xf0
461 MAP_VARIABLE = 0x0 461 MAP_VARIABLE = 0x0
462 MCAST_BLOCK_SOURCE = 0x40
463 MCAST_EXCLUDE = 0x2
464 MCAST_INCLUDE = 0x1
465 MCAST_JOIN_GROUP = 0x3e
466 MCAST_JOIN_SOURCE_GROUP = 0x42
467 MCAST_LEAVE_GROUP = 0x3f
468 MCAST_LEAVE_SOURCE_GROUP = 0x43
469 MCAST_SOURCE_FILTER = 0x49
470 MCAST_UNBLOCK_SOURCE = 0x41
462 MCL_CURRENT = 0x100 471 MCL_CURRENT = 0x100
463 MCL_FUTURE = 0x200 472 MCL_FUTURE = 0x200
464 MSG_ANY = 0x4 473 MSG_ANY = 0x4
@@ -483,6 +492,7 @@ const (
483 MS_INVALIDATE = 0x40 492 MS_INVALIDATE = 0x40
484 MS_PER_SEC = 0x3e8 493 MS_PER_SEC = 0x3e8
485 MS_SYNC = 0x20 494 MS_SYNC = 0x20
495 NFDBITS = 0x20
486 NL0 = 0x0 496 NL0 = 0x0
487 NL1 = 0x4000 497 NL1 = 0x4000
488 NL2 = 0x8000 498 NL2 = 0x8000
@@ -688,7 +698,7 @@ const (
688 SIOCGHIWAT = 0x40047301 698 SIOCGHIWAT = 0x40047301
689 SIOCGIFADDR = -0x3fd796df 699 SIOCGIFADDR = -0x3fd796df
690 SIOCGIFADDRS = 0x2000698c 700 SIOCGIFADDRS = 0x2000698c
691 SIOCGIFBAUDRATE = -0x3fd79693 701 SIOCGIFBAUDRATE = -0x3fdf9669
692 SIOCGIFBRDADDR = -0x3fd796dd 702 SIOCGIFBRDADDR = -0x3fd796dd
693 SIOCGIFCONF = -0x3ff796bb 703 SIOCGIFCONF = -0x3ff796bb
694 SIOCGIFCONFGLOB = -0x3ff79670 704 SIOCGIFCONFGLOB = -0x3ff79670
diff --git a/vendor/golang.org/x/sys/unix/zerrors_aix_ppc64.go b/vendor/golang.org/x/sys/unix/zerrors_aix_ppc64.go
index 03187de..4fc8d30 100644
--- a/vendor/golang.org/x/sys/unix/zerrors_aix_ppc64.go
+++ b/vendor/golang.org/x/sys/unix/zerrors_aix_ppc64.go
@@ -459,6 +459,15 @@ const (
459 MAP_SHARED = 0x1 459 MAP_SHARED = 0x1
460 MAP_TYPE = 0xf0 460 MAP_TYPE = 0xf0
461 MAP_VARIABLE = 0x0 461 MAP_VARIABLE = 0x0
462 MCAST_BLOCK_SOURCE = 0x40
463 MCAST_EXCLUDE = 0x2
464 MCAST_INCLUDE = 0x1
465 MCAST_JOIN_GROUP = 0x3e
466 MCAST_JOIN_SOURCE_GROUP = 0x42
467 MCAST_LEAVE_GROUP = 0x3f
468 MCAST_LEAVE_SOURCE_GROUP = 0x43
469 MCAST_SOURCE_FILTER = 0x49
470 MCAST_UNBLOCK_SOURCE = 0x41
462 MCL_CURRENT = 0x100 471 MCL_CURRENT = 0x100
463 MCL_FUTURE = 0x200 472 MCL_FUTURE = 0x200
464 MSG_ANY = 0x4 473 MSG_ANY = 0x4
@@ -483,6 +492,7 @@ const (
483 MS_INVALIDATE = 0x40 492 MS_INVALIDATE = 0x40
484 MS_PER_SEC = 0x3e8 493 MS_PER_SEC = 0x3e8
485 MS_SYNC = 0x20 494 MS_SYNC = 0x20
495 NFDBITS = 0x40
486 NL0 = 0x0 496 NL0 = 0x0
487 NL1 = 0x4000 497 NL1 = 0x4000
488 NL2 = 0x8000 498 NL2 = 0x8000
@@ -688,7 +698,7 @@ const (
688 SIOCGHIWAT = 0x40047301 698 SIOCGHIWAT = 0x40047301
689 SIOCGIFADDR = -0x3fd796df 699 SIOCGIFADDR = -0x3fd796df
690 SIOCGIFADDRS = 0x2000698c 700 SIOCGIFADDRS = 0x2000698c
691 SIOCGIFBAUDRATE = -0x3fd79693 701 SIOCGIFBAUDRATE = -0x3fdf9669
692 SIOCGIFBRDADDR = -0x3fd796dd 702 SIOCGIFBRDADDR = -0x3fd796dd
693 SIOCGIFCONF = -0x3fef96bb 703 SIOCGIFCONF = -0x3fef96bb
694 SIOCGIFCONFGLOB = -0x3fef9670 704 SIOCGIFCONFGLOB = -0x3fef9670
diff --git a/vendor/golang.org/x/sys/unix/zerrors_darwin_386.go b/vendor/golang.org/x/sys/unix/zerrors_darwin_386.go
index 3b39d74..6217cdb 100644
--- a/vendor/golang.org/x/sys/unix/zerrors_darwin_386.go
+++ b/vendor/golang.org/x/sys/unix/zerrors_darwin_386.go
@@ -3,7 +3,7 @@
3 3
4// +build 386,darwin 4// +build 386,darwin
5 5
6// Created by cgo -godefs - DO NOT EDIT 6// Code generated by cmd/cgo -godefs; DO NOT EDIT.
7// cgo -godefs -- -m32 _const.go 7// cgo -godefs -- -m32 _const.go
8 8
9package unix 9package unix
@@ -980,6 +980,7 @@ const (
980 NET_RT_MAXID = 0xa 980 NET_RT_MAXID = 0xa
981 NET_RT_STAT = 0x4 981 NET_RT_STAT = 0x4
982 NET_RT_TRASH = 0x5 982 NET_RT_TRASH = 0x5
983 NFDBITS = 0x20
983 NL0 = 0x0 984 NL0 = 0x0
984 NL1 = 0x100 985 NL1 = 0x100
985 NL2 = 0x200 986 NL2 = 0x200
diff --git a/vendor/golang.org/x/sys/unix/zerrors_darwin_amd64.go b/vendor/golang.org/x/sys/unix/zerrors_darwin_amd64.go
index 8fe5547..e3ff2ee 100644
--- a/vendor/golang.org/x/sys/unix/zerrors_darwin_amd64.go
+++ b/vendor/golang.org/x/sys/unix/zerrors_darwin_amd64.go
@@ -3,7 +3,7 @@
3 3
4// +build amd64,darwin 4// +build amd64,darwin
5 5
6// Created by cgo -godefs - DO NOT EDIT 6// Code generated by cmd/cgo -godefs; DO NOT EDIT.
7// cgo -godefs -- -m64 _const.go 7// cgo -godefs -- -m64 _const.go
8 8
9package unix 9package unix
@@ -980,6 +980,7 @@ const (
980 NET_RT_MAXID = 0xa 980 NET_RT_MAXID = 0xa
981 NET_RT_STAT = 0x4 981 NET_RT_STAT = 0x4
982 NET_RT_TRASH = 0x5 982 NET_RT_TRASH = 0x5
983 NFDBITS = 0x20
983 NL0 = 0x0 984 NL0 = 0x0
984 NL1 = 0x100 985 NL1 = 0x100
985 NL2 = 0x200 986 NL2 = 0x200
diff --git a/vendor/golang.org/x/sys/unix/zerrors_darwin_arm.go b/vendor/golang.org/x/sys/unix/zerrors_darwin_arm.go
index 7a97777..3e41757 100644
--- a/vendor/golang.org/x/sys/unix/zerrors_darwin_arm.go
+++ b/vendor/golang.org/x/sys/unix/zerrors_darwin_arm.go
@@ -3,7 +3,7 @@
3 3
4// +build arm,darwin 4// +build arm,darwin
5 5
6// Created by cgo -godefs - DO NOT EDIT 6// Code generated by cmd/cgo -godefs; DO NOT EDIT.
7// cgo -godefs -- _const.go 7// cgo -godefs -- _const.go
8 8
9package unix 9package unix
@@ -980,6 +980,7 @@ const (
980 NET_RT_MAXID = 0xa 980 NET_RT_MAXID = 0xa
981 NET_RT_STAT = 0x4 981 NET_RT_STAT = 0x4
982 NET_RT_TRASH = 0x5 982 NET_RT_TRASH = 0x5
983 NFDBITS = 0x20
983 NL0 = 0x0 984 NL0 = 0x0
984 NL1 = 0x100 985 NL1 = 0x100
985 NL2 = 0x200 986 NL2 = 0x200
diff --git a/vendor/golang.org/x/sys/unix/zerrors_darwin_arm64.go b/vendor/golang.org/x/sys/unix/zerrors_darwin_arm64.go
index 6d56d8a..cbd8ed1 100644
--- a/vendor/golang.org/x/sys/unix/zerrors_darwin_arm64.go
+++ b/vendor/golang.org/x/sys/unix/zerrors_darwin_arm64.go
@@ -3,7 +3,7 @@
3 3
4// +build arm64,darwin 4// +build arm64,darwin
5 5
6// Created by cgo -godefs - DO NOT EDIT 6// Code generated by cmd/cgo -godefs; DO NOT EDIT.
7// cgo -godefs -- -m64 _const.go 7// cgo -godefs -- -m64 _const.go
8 8
9package unix 9package unix
@@ -980,6 +980,7 @@ const (
980 NET_RT_MAXID = 0xa 980 NET_RT_MAXID = 0xa
981 NET_RT_STAT = 0x4 981 NET_RT_STAT = 0x4
982 NET_RT_TRASH = 0x5 982 NET_RT_TRASH = 0x5
983 NFDBITS = 0x20
983 NL0 = 0x0 984 NL0 = 0x0
984 NL1 = 0x100 985 NL1 = 0x100
985 NL2 = 0x200 986 NL2 = 0x200
diff --git a/vendor/golang.org/x/sys/unix/zerrors_dragonfly_amd64.go b/vendor/golang.org/x/sys/unix/zerrors_dragonfly_amd64.go
index bbe6089..6130471 100644
--- a/vendor/golang.org/x/sys/unix/zerrors_dragonfly_amd64.go
+++ b/vendor/golang.org/x/sys/unix/zerrors_dragonfly_amd64.go
@@ -938,6 +938,7 @@ const (
938 NET_RT_FLAGS = 0x2 938 NET_RT_FLAGS = 0x2
939 NET_RT_IFLIST = 0x3 939 NET_RT_IFLIST = 0x3
940 NET_RT_MAXID = 0x4 940 NET_RT_MAXID = 0x4
941 NFDBITS = 0x40
941 NOFLSH = 0x80000000 942 NOFLSH = 0x80000000
942 NOKERNINFO = 0x2000000 943 NOKERNINFO = 0x2000000
943 NOTE_ATTRIB = 0x8 944 NOTE_ATTRIB = 0x8
diff --git a/vendor/golang.org/x/sys/unix/zerrors_freebsd_386.go b/vendor/golang.org/x/sys/unix/zerrors_freebsd_386.go
index d2bbaab..b72544f 100644
--- a/vendor/golang.org/x/sys/unix/zerrors_freebsd_386.go
+++ b/vendor/golang.org/x/sys/unix/zerrors_freebsd_386.go
@@ -3,7 +3,7 @@
3 3
4// +build 386,freebsd 4// +build 386,freebsd
5 5
6// Created by cgo -godefs - DO NOT EDIT 6// Code generated by cmd/cgo -godefs; DO NOT EDIT.
7// cgo -godefs -- -m32 _const.go 7// cgo -godefs -- -m32 _const.go
8 8
9package unix 9package unix
@@ -1055,6 +1055,7 @@ const (
1055 NET_RT_IFLIST = 0x3 1055 NET_RT_IFLIST = 0x3
1056 NET_RT_IFLISTL = 0x5 1056 NET_RT_IFLISTL = 0x5
1057 NET_RT_IFMALIST = 0x4 1057 NET_RT_IFMALIST = 0x4
1058 NFDBITS = 0x20
1058 NOFLSH = 0x80000000 1059 NOFLSH = 0x80000000
1059 NOKERNINFO = 0x2000000 1060 NOKERNINFO = 0x2000000
1060 NOTE_ATTRIB = 0x8 1061 NOTE_ATTRIB = 0x8
diff --git a/vendor/golang.org/x/sys/unix/zerrors_freebsd_amd64.go b/vendor/golang.org/x/sys/unix/zerrors_freebsd_amd64.go
index 4f8db78..9f38267 100644
--- a/vendor/golang.org/x/sys/unix/zerrors_freebsd_amd64.go
+++ b/vendor/golang.org/x/sys/unix/zerrors_freebsd_amd64.go
@@ -3,7 +3,7 @@
3 3
4// +build amd64,freebsd 4// +build amd64,freebsd
5 5
6// Created by cgo -godefs - DO NOT EDIT 6// Code generated by cmd/cgo -godefs; DO NOT EDIT.
7// cgo -godefs -- -m64 _const.go 7// cgo -godefs -- -m64 _const.go
8 8
9package unix 9package unix
@@ -1056,6 +1056,7 @@ const (
1056 NET_RT_IFLIST = 0x3 1056 NET_RT_IFLIST = 0x3
1057 NET_RT_IFLISTL = 0x5 1057 NET_RT_IFLISTL = 0x5
1058 NET_RT_IFMALIST = 0x4 1058 NET_RT_IFMALIST = 0x4
1059 NFDBITS = 0x40
1059 NOFLSH = 0x80000000 1060 NOFLSH = 0x80000000
1060 NOKERNINFO = 0x2000000 1061 NOKERNINFO = 0x2000000
1061 NOTE_ATTRIB = 0x8 1062 NOTE_ATTRIB = 0x8
diff --git a/vendor/golang.org/x/sys/unix/zerrors_freebsd_arm.go b/vendor/golang.org/x/sys/unix/zerrors_freebsd_arm.go
index 53e5de6..16db56a 100644
--- a/vendor/golang.org/x/sys/unix/zerrors_freebsd_arm.go
+++ b/vendor/golang.org/x/sys/unix/zerrors_freebsd_arm.go
@@ -3,7 +3,7 @@
3 3
4// +build arm,freebsd 4// +build arm,freebsd
5 5
6// Created by cgo -godefs - DO NOT EDIT 6// Code generated by cmd/cgo -godefs; DO NOT EDIT.
7// cgo -godefs -- _const.go 7// cgo -godefs -- _const.go
8 8
9package unix 9package unix
@@ -1063,6 +1063,7 @@ const (
1063 NET_RT_IFLIST = 0x3 1063 NET_RT_IFLIST = 0x3
1064 NET_RT_IFLISTL = 0x5 1064 NET_RT_IFLISTL = 0x5
1065 NET_RT_IFMALIST = 0x4 1065 NET_RT_IFMALIST = 0x4
1066 NFDBITS = 0x20
1066 NOFLSH = 0x80000000 1067 NOFLSH = 0x80000000
1067 NOKERNINFO = 0x2000000 1068 NOKERNINFO = 0x2000000
1068 NOTE_ATTRIB = 0x8 1069 NOTE_ATTRIB = 0x8
diff --git a/vendor/golang.org/x/sys/unix/zerrors_freebsd_arm64.go b/vendor/golang.org/x/sys/unix/zerrors_freebsd_arm64.go
index d4a192f..1a1de34 100644
--- a/vendor/golang.org/x/sys/unix/zerrors_freebsd_arm64.go
+++ b/vendor/golang.org/x/sys/unix/zerrors_freebsd_arm64.go
@@ -3,7 +3,7 @@
3 3
4// +build arm64,freebsd 4// +build arm64,freebsd
5 5
6// Created by cgo -godefs - DO NOT EDIT 6// Code generated by cmd/cgo -godefs; DO NOT EDIT.
7// cgo -godefs -- -m64 _const.go 7// cgo -godefs -- -m64 _const.go
8 8
9package unix 9package unix
@@ -1056,6 +1056,7 @@ const (
1056 NET_RT_IFLIST = 0x3 1056 NET_RT_IFLIST = 0x3
1057 NET_RT_IFLISTL = 0x5 1057 NET_RT_IFLISTL = 0x5
1058 NET_RT_IFMALIST = 0x4 1058 NET_RT_IFMALIST = 0x4
1059 NFDBITS = 0x40
1059 NOFLSH = 0x80000000 1060 NOFLSH = 0x80000000
1060 NOKERNINFO = 0x2000000 1061 NOKERNINFO = 0x2000000
1061 NOTE_ATTRIB = 0x8 1062 NOTE_ATTRIB = 0x8
diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_386.go b/vendor/golang.org/x/sys/unix/zerrors_linux_386.go
index 2839b3d..72066f8 100644
--- a/vendor/golang.org/x/sys/unix/zerrors_linux_386.go
+++ b/vendor/golang.org/x/sys/unix/zerrors_linux_386.go
@@ -11,2662 +11,2855 @@ package unix
11import "syscall" 11import "syscall"
12 12
13const ( 13const (
14 AAFS_MAGIC = 0x5a3c69f0 14 AAFS_MAGIC = 0x5a3c69f0
15 ADFS_SUPER_MAGIC = 0xadf5 15 ADFS_SUPER_MAGIC = 0xadf5
16 AFFS_SUPER_MAGIC = 0xadff 16 AFFS_SUPER_MAGIC = 0xadff
17 AFS_FS_MAGIC = 0x6b414653 17 AFS_FS_MAGIC = 0x6b414653
18 AFS_SUPER_MAGIC = 0x5346414f 18 AFS_SUPER_MAGIC = 0x5346414f
19 AF_ALG = 0x26 19 AF_ALG = 0x26
20 AF_APPLETALK = 0x5 20 AF_APPLETALK = 0x5
21 AF_ASH = 0x12 21 AF_ASH = 0x12
22 AF_ATMPVC = 0x8 22 AF_ATMPVC = 0x8
23 AF_ATMSVC = 0x14 23 AF_ATMSVC = 0x14
24 AF_AX25 = 0x3 24 AF_AX25 = 0x3
25 AF_BLUETOOTH = 0x1f 25 AF_BLUETOOTH = 0x1f
26 AF_BRIDGE = 0x7 26 AF_BRIDGE = 0x7
27 AF_CAIF = 0x25 27 AF_CAIF = 0x25
28 AF_CAN = 0x1d 28 AF_CAN = 0x1d
29 AF_DECnet = 0xc 29 AF_DECnet = 0xc
30 AF_ECONET = 0x13 30 AF_ECONET = 0x13
31 AF_FILE = 0x1 31 AF_FILE = 0x1
32 AF_IB = 0x1b 32 AF_IB = 0x1b
33 AF_IEEE802154 = 0x24 33 AF_IEEE802154 = 0x24
34 AF_INET = 0x2 34 AF_INET = 0x2
35 AF_INET6 = 0xa 35 AF_INET6 = 0xa
36 AF_IPX = 0x4 36 AF_IPX = 0x4
37 AF_IRDA = 0x17 37 AF_IRDA = 0x17
38 AF_ISDN = 0x22 38 AF_ISDN = 0x22
39 AF_IUCV = 0x20 39 AF_IUCV = 0x20
40 AF_KCM = 0x29 40 AF_KCM = 0x29
41 AF_KEY = 0xf 41 AF_KEY = 0xf
42 AF_LLC = 0x1a 42 AF_LLC = 0x1a
43 AF_LOCAL = 0x1 43 AF_LOCAL = 0x1
44 AF_MAX = 0x2d 44 AF_MAX = 0x2d
45 AF_MPLS = 0x1c 45 AF_MPLS = 0x1c
46 AF_NETBEUI = 0xd 46 AF_NETBEUI = 0xd
47 AF_NETLINK = 0x10 47 AF_NETLINK = 0x10
48 AF_NETROM = 0x6 48 AF_NETROM = 0x6
49 AF_NFC = 0x27 49 AF_NFC = 0x27
50 AF_PACKET = 0x11 50 AF_PACKET = 0x11
51 AF_PHONET = 0x23 51 AF_PHONET = 0x23
52 AF_PPPOX = 0x18 52 AF_PPPOX = 0x18
53 AF_QIPCRTR = 0x2a 53 AF_QIPCRTR = 0x2a
54 AF_RDS = 0x15 54 AF_RDS = 0x15
55 AF_ROSE = 0xb 55 AF_ROSE = 0xb
56 AF_ROUTE = 0x10 56 AF_ROUTE = 0x10
57 AF_RXRPC = 0x21 57 AF_RXRPC = 0x21
58 AF_SECURITY = 0xe 58 AF_SECURITY = 0xe
59 AF_SMC = 0x2b 59 AF_SMC = 0x2b
60 AF_SNA = 0x16 60 AF_SNA = 0x16
61 AF_TIPC = 0x1e 61 AF_TIPC = 0x1e
62 AF_UNIX = 0x1 62 AF_UNIX = 0x1
63 AF_UNSPEC = 0x0 63 AF_UNSPEC = 0x0
64 AF_VSOCK = 0x28 64 AF_VSOCK = 0x28
65 AF_WANPIPE = 0x19 65 AF_WANPIPE = 0x19
66 AF_X25 = 0x9 66 AF_X25 = 0x9
67 AF_XDP = 0x2c 67 AF_XDP = 0x2c
68 ALG_OP_DECRYPT = 0x0 68 ALG_OP_DECRYPT = 0x0
69 ALG_OP_ENCRYPT = 0x1 69 ALG_OP_ENCRYPT = 0x1
70 ALG_SET_AEAD_ASSOCLEN = 0x4 70 ALG_SET_AEAD_ASSOCLEN = 0x4
71 ALG_SET_AEAD_AUTHSIZE = 0x5 71 ALG_SET_AEAD_AUTHSIZE = 0x5
72 ALG_SET_IV = 0x2 72 ALG_SET_IV = 0x2
73 ALG_SET_KEY = 0x1 73 ALG_SET_KEY = 0x1
74 ALG_SET_OP = 0x3 74 ALG_SET_OP = 0x3
75 ANON_INODE_FS_MAGIC = 0x9041934 75 ANON_INODE_FS_MAGIC = 0x9041934
76 ARPHRD_6LOWPAN = 0x339 76 ARPHRD_6LOWPAN = 0x339
77 ARPHRD_ADAPT = 0x108 77 ARPHRD_ADAPT = 0x108
78 ARPHRD_APPLETLK = 0x8 78 ARPHRD_APPLETLK = 0x8
79 ARPHRD_ARCNET = 0x7 79 ARPHRD_ARCNET = 0x7
80 ARPHRD_ASH = 0x30d 80 ARPHRD_ASH = 0x30d
81 ARPHRD_ATM = 0x13 81 ARPHRD_ATM = 0x13
82 ARPHRD_AX25 = 0x3 82 ARPHRD_AX25 = 0x3
83 ARPHRD_BIF = 0x307 83 ARPHRD_BIF = 0x307
84 ARPHRD_CAIF = 0x336 84 ARPHRD_CAIF = 0x336
85 ARPHRD_CAN = 0x118 85 ARPHRD_CAN = 0x118
86 ARPHRD_CHAOS = 0x5 86 ARPHRD_CHAOS = 0x5
87 ARPHRD_CISCO = 0x201 87 ARPHRD_CISCO = 0x201
88 ARPHRD_CSLIP = 0x101 88 ARPHRD_CSLIP = 0x101
89 ARPHRD_CSLIP6 = 0x103 89 ARPHRD_CSLIP6 = 0x103
90 ARPHRD_DDCMP = 0x205 90 ARPHRD_DDCMP = 0x205
91 ARPHRD_DLCI = 0xf 91 ARPHRD_DLCI = 0xf
92 ARPHRD_ECONET = 0x30e 92 ARPHRD_ECONET = 0x30e
93 ARPHRD_EETHER = 0x2 93 ARPHRD_EETHER = 0x2
94 ARPHRD_ETHER = 0x1 94 ARPHRD_ETHER = 0x1
95 ARPHRD_EUI64 = 0x1b 95 ARPHRD_EUI64 = 0x1b
96 ARPHRD_FCAL = 0x311 96 ARPHRD_FCAL = 0x311
97 ARPHRD_FCFABRIC = 0x313 97 ARPHRD_FCFABRIC = 0x313
98 ARPHRD_FCPL = 0x312 98 ARPHRD_FCPL = 0x312
99 ARPHRD_FCPP = 0x310 99 ARPHRD_FCPP = 0x310
100 ARPHRD_FDDI = 0x306 100 ARPHRD_FDDI = 0x306
101 ARPHRD_FRAD = 0x302 101 ARPHRD_FRAD = 0x302
102 ARPHRD_HDLC = 0x201 102 ARPHRD_HDLC = 0x201
103 ARPHRD_HIPPI = 0x30c 103 ARPHRD_HIPPI = 0x30c
104 ARPHRD_HWX25 = 0x110 104 ARPHRD_HWX25 = 0x110
105 ARPHRD_IEEE1394 = 0x18 105 ARPHRD_IEEE1394 = 0x18
106 ARPHRD_IEEE802 = 0x6 106 ARPHRD_IEEE802 = 0x6
107 ARPHRD_IEEE80211 = 0x321 107 ARPHRD_IEEE80211 = 0x321
108 ARPHRD_IEEE80211_PRISM = 0x322 108 ARPHRD_IEEE80211_PRISM = 0x322
109 ARPHRD_IEEE80211_RADIOTAP = 0x323 109 ARPHRD_IEEE80211_RADIOTAP = 0x323
110 ARPHRD_IEEE802154 = 0x324 110 ARPHRD_IEEE802154 = 0x324
111 ARPHRD_IEEE802154_MONITOR = 0x325 111 ARPHRD_IEEE802154_MONITOR = 0x325
112 ARPHRD_IEEE802_TR = 0x320 112 ARPHRD_IEEE802_TR = 0x320
113 ARPHRD_INFINIBAND = 0x20 113 ARPHRD_INFINIBAND = 0x20
114 ARPHRD_IP6GRE = 0x337 114 ARPHRD_IP6GRE = 0x337
115 ARPHRD_IPDDP = 0x309 115 ARPHRD_IPDDP = 0x309
116 ARPHRD_IPGRE = 0x30a 116 ARPHRD_IPGRE = 0x30a
117 ARPHRD_IRDA = 0x30f 117 ARPHRD_IRDA = 0x30f
118 ARPHRD_LAPB = 0x204 118 ARPHRD_LAPB = 0x204
119 ARPHRD_LOCALTLK = 0x305 119 ARPHRD_LOCALTLK = 0x305
120 ARPHRD_LOOPBACK = 0x304 120 ARPHRD_LOOPBACK = 0x304
121 ARPHRD_METRICOM = 0x17 121 ARPHRD_METRICOM = 0x17
122 ARPHRD_NETLINK = 0x338 122 ARPHRD_NETLINK = 0x338
123 ARPHRD_NETROM = 0x0 123 ARPHRD_NETROM = 0x0
124 ARPHRD_NONE = 0xfffe 124 ARPHRD_NONE = 0xfffe
125 ARPHRD_PHONET = 0x334 125 ARPHRD_PHONET = 0x334
126 ARPHRD_PHONET_PIPE = 0x335 126 ARPHRD_PHONET_PIPE = 0x335
127 ARPHRD_PIMREG = 0x30b 127 ARPHRD_PIMREG = 0x30b
128 ARPHRD_PPP = 0x200 128 ARPHRD_PPP = 0x200
129 ARPHRD_PRONET = 0x4 129 ARPHRD_PRONET = 0x4
130 ARPHRD_RAWHDLC = 0x206 130 ARPHRD_RAWHDLC = 0x206
131 ARPHRD_RAWIP = 0x207 131 ARPHRD_RAWIP = 0x207
132 ARPHRD_ROSE = 0x10e 132 ARPHRD_ROSE = 0x10e
133 ARPHRD_RSRVD = 0x104 133 ARPHRD_RSRVD = 0x104
134 ARPHRD_SIT = 0x308 134 ARPHRD_SIT = 0x308
135 ARPHRD_SKIP = 0x303 135 ARPHRD_SKIP = 0x303
136 ARPHRD_SLIP = 0x100 136 ARPHRD_SLIP = 0x100
137 ARPHRD_SLIP6 = 0x102 137 ARPHRD_SLIP6 = 0x102
138 ARPHRD_TUNNEL = 0x300 138 ARPHRD_TUNNEL = 0x300
139 ARPHRD_TUNNEL6 = 0x301 139 ARPHRD_TUNNEL6 = 0x301
140 ARPHRD_VOID = 0xffff 140 ARPHRD_VOID = 0xffff
141 ARPHRD_VSOCKMON = 0x33a 141 ARPHRD_VSOCKMON = 0x33a
142 ARPHRD_X25 = 0x10f 142 ARPHRD_X25 = 0x10f
143 AUTOFS_SUPER_MAGIC = 0x187 143 AUTOFS_SUPER_MAGIC = 0x187
144 B0 = 0x0 144 B0 = 0x0
145 B1000000 = 0x1008 145 B1000000 = 0x1008
146 B110 = 0x3 146 B110 = 0x3
147 B115200 = 0x1002 147 B115200 = 0x1002
148 B1152000 = 0x1009 148 B1152000 = 0x1009
149 B1200 = 0x9 149 B1200 = 0x9
150 B134 = 0x4 150 B134 = 0x4
151 B150 = 0x5 151 B150 = 0x5
152 B1500000 = 0x100a 152 B1500000 = 0x100a
153 B1800 = 0xa 153 B1800 = 0xa
154 B19200 = 0xe 154 B19200 = 0xe
155 B200 = 0x6 155 B200 = 0x6
156 B2000000 = 0x100b 156 B2000000 = 0x100b
157 B230400 = 0x1003 157 B230400 = 0x1003
158 B2400 = 0xb 158 B2400 = 0xb
159 B2500000 = 0x100c 159 B2500000 = 0x100c
160 B300 = 0x7 160 B300 = 0x7
161 B3000000 = 0x100d 161 B3000000 = 0x100d
162 B3500000 = 0x100e 162 B3500000 = 0x100e
163 B38400 = 0xf 163 B38400 = 0xf
164 B4000000 = 0x100f 164 B4000000 = 0x100f
165 B460800 = 0x1004 165 B460800 = 0x1004
166 B4800 = 0xc 166 B4800 = 0xc
167 B50 = 0x1 167 B50 = 0x1
168 B500000 = 0x1005 168 B500000 = 0x1005
169 B57600 = 0x1001 169 B57600 = 0x1001
170 B576000 = 0x1006 170 B576000 = 0x1006
171 B600 = 0x8 171 B600 = 0x8
172 B75 = 0x2 172 B75 = 0x2
173 B921600 = 0x1007 173 B921600 = 0x1007
174 B9600 = 0xd 174 B9600 = 0xd
175 BALLOON_KVM_MAGIC = 0x13661366 175 BALLOON_KVM_MAGIC = 0x13661366
176 BDEVFS_MAGIC = 0x62646576 176 BDEVFS_MAGIC = 0x62646576
177 BINDERFS_SUPER_MAGIC = 0x6c6f6f70 177 BINDERFS_SUPER_MAGIC = 0x6c6f6f70
178 BINFMTFS_MAGIC = 0x42494e4d 178 BINFMTFS_MAGIC = 0x42494e4d
179 BLKBSZGET = 0x80041270 179 BLKBSZGET = 0x80041270
180 BLKBSZSET = 0x40041271 180 BLKBSZSET = 0x40041271
181 BLKFLSBUF = 0x1261 181 BLKFLSBUF = 0x1261
182 BLKFRAGET = 0x1265 182 BLKFRAGET = 0x1265
183 BLKFRASET = 0x1264 183 BLKFRASET = 0x1264
184 BLKGETSIZE = 0x1260 184 BLKGETSIZE = 0x1260
185 BLKGETSIZE64 = 0x80041272 185 BLKGETSIZE64 = 0x80041272
186 BLKPBSZGET = 0x127b 186 BLKPBSZGET = 0x127b
187 BLKRAGET = 0x1263 187 BLKRAGET = 0x1263
188 BLKRASET = 0x1262 188 BLKRASET = 0x1262
189 BLKROGET = 0x125e 189 BLKROGET = 0x125e
190 BLKROSET = 0x125d 190 BLKROSET = 0x125d
191 BLKRRPART = 0x125f 191 BLKRRPART = 0x125f
192 BLKSECTGET = 0x1267 192 BLKSECTGET = 0x1267
193 BLKSECTSET = 0x1266 193 BLKSECTSET = 0x1266
194 BLKSSZGET = 0x1268 194 BLKSSZGET = 0x1268
195 BOTHER = 0x1000 195 BOTHER = 0x1000
196 BPF_A = 0x10 196 BPF_A = 0x10
197 BPF_ABS = 0x20 197 BPF_ABS = 0x20
198 BPF_ADD = 0x0 198 BPF_ADD = 0x0
199 BPF_ADJ_ROOM_ENCAP_L2_MASK = 0xff 199 BPF_ADJ_ROOM_ENCAP_L2_MASK = 0xff
200 BPF_ADJ_ROOM_ENCAP_L2_SHIFT = 0x38 200 BPF_ADJ_ROOM_ENCAP_L2_SHIFT = 0x38
201 BPF_ALU = 0x4 201 BPF_ALU = 0x4
202 BPF_ALU64 = 0x7 202 BPF_ALU64 = 0x7
203 BPF_AND = 0x50 203 BPF_AND = 0x50
204 BPF_ANY = 0x0 204 BPF_ANY = 0x0
205 BPF_ARSH = 0xc0 205 BPF_ARSH = 0xc0
206 BPF_B = 0x10 206 BPF_B = 0x10
207 BPF_BUILD_ID_SIZE = 0x14 207 BPF_BUILD_ID_SIZE = 0x14
208 BPF_CALL = 0x80 208 BPF_CALL = 0x80
209 BPF_DEVCG_ACC_MKNOD = 0x1 209 BPF_DEVCG_ACC_MKNOD = 0x1
210 BPF_DEVCG_ACC_READ = 0x2 210 BPF_DEVCG_ACC_READ = 0x2
211 BPF_DEVCG_ACC_WRITE = 0x4 211 BPF_DEVCG_ACC_WRITE = 0x4
212 BPF_DEVCG_DEV_BLOCK = 0x1 212 BPF_DEVCG_DEV_BLOCK = 0x1
213 BPF_DEVCG_DEV_CHAR = 0x2 213 BPF_DEVCG_DEV_CHAR = 0x2
214 BPF_DIV = 0x30 214 BPF_DIV = 0x30
215 BPF_DW = 0x18 215 BPF_DW = 0x18
216 BPF_END = 0xd0 216 BPF_END = 0xd0
217 BPF_EXIST = 0x2 217 BPF_EXIST = 0x2
218 BPF_EXIT = 0x90 218 BPF_EXIT = 0x90
219 BPF_FROM_BE = 0x8 219 BPF_FLOW_DISSECTOR_F_PARSE_1ST_FRAG = 0x1
220 BPF_FROM_LE = 0x0 220 BPF_FLOW_DISSECTOR_F_STOP_AT_ENCAP = 0x4
221 BPF_FS_MAGIC = 0xcafe4a11 221 BPF_FLOW_DISSECTOR_F_STOP_AT_FLOW_LABEL = 0x2
222 BPF_F_ADJ_ROOM_ENCAP_L3_IPV4 = 0x2 222 BPF_FROM_BE = 0x8
223 BPF_F_ADJ_ROOM_ENCAP_L3_IPV6 = 0x4 223 BPF_FROM_LE = 0x0
224 BPF_F_ADJ_ROOM_ENCAP_L4_GRE = 0x8 224 BPF_FS_MAGIC = 0xcafe4a11
225 BPF_F_ADJ_ROOM_ENCAP_L4_UDP = 0x10 225 BPF_F_ADJ_ROOM_ENCAP_L3_IPV4 = 0x2
226 BPF_F_ADJ_ROOM_FIXED_GSO = 0x1 226 BPF_F_ADJ_ROOM_ENCAP_L3_IPV6 = 0x4
227 BPF_F_ALLOW_MULTI = 0x2 227 BPF_F_ADJ_ROOM_ENCAP_L4_GRE = 0x8
228 BPF_F_ALLOW_OVERRIDE = 0x1 228 BPF_F_ADJ_ROOM_ENCAP_L4_UDP = 0x10
229 BPF_F_ANY_ALIGNMENT = 0x2 229 BPF_F_ADJ_ROOM_FIXED_GSO = 0x1
230 BPF_F_CTXLEN_MASK = 0xfffff00000000 230 BPF_F_ALLOW_MULTI = 0x2
231 BPF_F_CURRENT_CPU = 0xffffffff 231 BPF_F_ALLOW_OVERRIDE = 0x1
232 BPF_F_CURRENT_NETNS = -0x1 232 BPF_F_ANY_ALIGNMENT = 0x2
233 BPF_F_DONT_FRAGMENT = 0x4 233 BPF_F_CLONE = 0x200
234 BPF_F_FAST_STACK_CMP = 0x200 234 BPF_F_CTXLEN_MASK = 0xfffff00000000
235 BPF_F_HDR_FIELD_MASK = 0xf 235 BPF_F_CURRENT_CPU = 0xffffffff
236 BPF_F_INDEX_MASK = 0xffffffff 236 BPF_F_CURRENT_NETNS = -0x1
237 BPF_F_INGRESS = 0x1 237 BPF_F_DONT_FRAGMENT = 0x4
238 BPF_F_INVALIDATE_HASH = 0x2 238 BPF_F_FAST_STACK_CMP = 0x200
239 BPF_F_LOCK = 0x4 239 BPF_F_HDR_FIELD_MASK = 0xf
240 BPF_F_MARK_ENFORCE = 0x40 240 BPF_F_INDEX_MASK = 0xffffffff
241 BPF_F_MARK_MANGLED_0 = 0x20 241 BPF_F_INGRESS = 0x1
242 BPF_F_NO_COMMON_LRU = 0x2 242 BPF_F_INVALIDATE_HASH = 0x2
243 BPF_F_NO_PREALLOC = 0x1 243 BPF_F_LOCK = 0x4
244 BPF_F_NUMA_NODE = 0x4 244 BPF_F_MARK_ENFORCE = 0x40
245 BPF_F_PSEUDO_HDR = 0x10 245 BPF_F_MARK_MANGLED_0 = 0x20
246 BPF_F_QUERY_EFFECTIVE = 0x1 246 BPF_F_MMAPABLE = 0x400
247 BPF_F_RDONLY = 0x8 247 BPF_F_NO_COMMON_LRU = 0x2
248 BPF_F_RDONLY_PROG = 0x80 248 BPF_F_NO_PREALLOC = 0x1
249 BPF_F_RECOMPUTE_CSUM = 0x1 249 BPF_F_NUMA_NODE = 0x4
250 BPF_F_REUSE_STACKID = 0x400 250 BPF_F_PSEUDO_HDR = 0x10
251 BPF_F_SEQ_NUMBER = 0x8 251 BPF_F_QUERY_EFFECTIVE = 0x1
252 BPF_F_SKIP_FIELD_MASK = 0xff 252 BPF_F_RDONLY = 0x8
253 BPF_F_STACK_BUILD_ID = 0x20 253 BPF_F_RDONLY_PROG = 0x80
254 BPF_F_STRICT_ALIGNMENT = 0x1 254 BPF_F_RECOMPUTE_CSUM = 0x1
255 BPF_F_SYSCTL_BASE_NAME = 0x1 255 BPF_F_REUSE_STACKID = 0x400
256 BPF_F_TUNINFO_IPV6 = 0x1 256 BPF_F_SEQ_NUMBER = 0x8
257 BPF_F_USER_BUILD_ID = 0x800 257 BPF_F_SKIP_FIELD_MASK = 0xff
258 BPF_F_USER_STACK = 0x100 258 BPF_F_STACK_BUILD_ID = 0x20
259 BPF_F_WRONLY = 0x10 259 BPF_F_STRICT_ALIGNMENT = 0x1
260 BPF_F_WRONLY_PROG = 0x100 260 BPF_F_SYSCTL_BASE_NAME = 0x1
261 BPF_F_ZERO_CSUM_TX = 0x2 261 BPF_F_TEST_RND_HI32 = 0x4
262 BPF_F_ZERO_SEED = 0x40 262 BPF_F_TEST_STATE_FREQ = 0x8
263 BPF_H = 0x8 263 BPF_F_TUNINFO_IPV6 = 0x1
264 BPF_IMM = 0x0 264 BPF_F_USER_BUILD_ID = 0x800
265 BPF_IND = 0x40 265 BPF_F_USER_STACK = 0x100
266 BPF_JA = 0x0 266 BPF_F_WRONLY = 0x10
267 BPF_JEQ = 0x10 267 BPF_F_WRONLY_PROG = 0x100
268 BPF_JGE = 0x30 268 BPF_F_ZERO_CSUM_TX = 0x2
269 BPF_JGT = 0x20 269 BPF_F_ZERO_SEED = 0x40
270 BPF_JLE = 0xb0 270 BPF_H = 0x8
271 BPF_JLT = 0xa0 271 BPF_IMM = 0x0
272 BPF_JMP = 0x5 272 BPF_IND = 0x40
273 BPF_JMP32 = 0x6 273 BPF_JA = 0x0
274 BPF_JNE = 0x50 274 BPF_JEQ = 0x10
275 BPF_JSET = 0x40 275 BPF_JGE = 0x30
276 BPF_JSGE = 0x70 276 BPF_JGT = 0x20
277 BPF_JSGT = 0x60 277 BPF_JLE = 0xb0
278 BPF_JSLE = 0xd0 278 BPF_JLT = 0xa0
279 BPF_JSLT = 0xc0 279 BPF_JMP = 0x5
280 BPF_K = 0x0 280 BPF_JMP32 = 0x6
281 BPF_LD = 0x0 281 BPF_JNE = 0x50
282 BPF_LDX = 0x1 282 BPF_JSET = 0x40
283 BPF_LEN = 0x80 283 BPF_JSGE = 0x70
284 BPF_LL_OFF = -0x200000 284 BPF_JSGT = 0x60
285 BPF_LSH = 0x60 285 BPF_JSLE = 0xd0
286 BPF_MAJOR_VERSION = 0x1 286 BPF_JSLT = 0xc0
287 BPF_MAXINSNS = 0x1000 287 BPF_K = 0x0
288 BPF_MEM = 0x60 288 BPF_LD = 0x0
289 BPF_MEMWORDS = 0x10 289 BPF_LDX = 0x1
290 BPF_MINOR_VERSION = 0x1 290 BPF_LEN = 0x80
291 BPF_MISC = 0x7 291 BPF_LL_OFF = -0x200000
292 BPF_MOD = 0x90 292 BPF_LSH = 0x60
293 BPF_MOV = 0xb0 293 BPF_MAJOR_VERSION = 0x1
294 BPF_MSH = 0xa0 294 BPF_MAXINSNS = 0x1000
295 BPF_MUL = 0x20 295 BPF_MEM = 0x60
296 BPF_NEG = 0x80 296 BPF_MEMWORDS = 0x10
297 BPF_NET_OFF = -0x100000 297 BPF_MINOR_VERSION = 0x1
298 BPF_NOEXIST = 0x1 298 BPF_MISC = 0x7
299 BPF_OBJ_NAME_LEN = 0x10 299 BPF_MOD = 0x90
300 BPF_OR = 0x40 300 BPF_MOV = 0xb0
301 BPF_PSEUDO_CALL = 0x1 301 BPF_MSH = 0xa0
302 BPF_PSEUDO_MAP_FD = 0x1 302 BPF_MUL = 0x20
303 BPF_PSEUDO_MAP_VALUE = 0x2 303 BPF_NEG = 0x80
304 BPF_RET = 0x6 304 BPF_NET_OFF = -0x100000
305 BPF_RSH = 0x70 305 BPF_NOEXIST = 0x1
306 BPF_SK_STORAGE_GET_F_CREATE = 0x1 306 BPF_OBJ_NAME_LEN = 0x10
307 BPF_SOCK_OPS_ALL_CB_FLAGS = 0x7 307 BPF_OR = 0x40
308 BPF_SOCK_OPS_RETRANS_CB_FLAG = 0x2 308 BPF_PSEUDO_CALL = 0x1
309 BPF_SOCK_OPS_RTO_CB_FLAG = 0x1 309 BPF_PSEUDO_MAP_FD = 0x1
310 BPF_SOCK_OPS_STATE_CB_FLAG = 0x4 310 BPF_PSEUDO_MAP_VALUE = 0x2
311 BPF_ST = 0x2 311 BPF_RET = 0x6
312 BPF_STX = 0x3 312 BPF_RSH = 0x70
313 BPF_SUB = 0x10 313 BPF_SK_STORAGE_GET_F_CREATE = 0x1
314 BPF_TAG_SIZE = 0x8 314 BPF_SOCK_OPS_ALL_CB_FLAGS = 0xf
315 BPF_TAX = 0x0 315 BPF_SOCK_OPS_RETRANS_CB_FLAG = 0x2
316 BPF_TO_BE = 0x8 316 BPF_SOCK_OPS_RTO_CB_FLAG = 0x1
317 BPF_TO_LE = 0x0 317 BPF_SOCK_OPS_RTT_CB_FLAG = 0x8
318 BPF_TXA = 0x80 318 BPF_SOCK_OPS_STATE_CB_FLAG = 0x4
319 BPF_W = 0x0 319 BPF_ST = 0x2
320 BPF_X = 0x8 320 BPF_STX = 0x3
321 BPF_XADD = 0xc0 321 BPF_SUB = 0x10
322 BPF_XOR = 0xa0 322 BPF_TAG_SIZE = 0x8
323 BRKINT = 0x2 323 BPF_TAX = 0x0
324 BS0 = 0x0 324 BPF_TO_BE = 0x8
325 BS1 = 0x2000 325 BPF_TO_LE = 0x0
326 BSDLY = 0x2000 326 BPF_TXA = 0x80
327 BTRFS_SUPER_MAGIC = 0x9123683e 327 BPF_W = 0x0
328 BTRFS_TEST_MAGIC = 0x73727279 328 BPF_X = 0x8
329 CAN_BCM = 0x2 329 BPF_XADD = 0xc0
330 CAN_EFF_FLAG = 0x80000000 330 BPF_XOR = 0xa0
331 CAN_EFF_ID_BITS = 0x1d 331 BRKINT = 0x2
332 CAN_EFF_MASK = 0x1fffffff 332 BS0 = 0x0
333 CAN_ERR_FLAG = 0x20000000 333 BS1 = 0x2000
334 CAN_ERR_MASK = 0x1fffffff 334 BSDLY = 0x2000
335 CAN_INV_FILTER = 0x20000000 335 BTRFS_SUPER_MAGIC = 0x9123683e
336 CAN_ISOTP = 0x6 336 BTRFS_TEST_MAGIC = 0x73727279
337 CAN_MAX_DLC = 0x8 337 CAN_BCM = 0x2
338 CAN_MAX_DLEN = 0x8 338 CAN_EFF_FLAG = 0x80000000
339 CAN_MCNET = 0x5 339 CAN_EFF_ID_BITS = 0x1d
340 CAN_MTU = 0x10 340 CAN_EFF_MASK = 0x1fffffff
341 CAN_NPROTO = 0x7 341 CAN_ERR_FLAG = 0x20000000
342 CAN_RAW = 0x1 342 CAN_ERR_MASK = 0x1fffffff
343 CAN_RAW_FILTER_MAX = 0x200 343 CAN_INV_FILTER = 0x20000000
344 CAN_RTR_FLAG = 0x40000000 344 CAN_ISOTP = 0x6
345 CAN_SFF_ID_BITS = 0xb 345 CAN_J1939 = 0x7
346 CAN_SFF_MASK = 0x7ff 346 CAN_MAX_DLC = 0x8
347 CAN_TP16 = 0x3 347 CAN_MAX_DLEN = 0x8
348 CAN_TP20 = 0x4 348 CAN_MCNET = 0x5
349 CAP_AUDIT_CONTROL = 0x1e 349 CAN_MTU = 0x10
350 CAP_AUDIT_READ = 0x25 350 CAN_NPROTO = 0x8
351 CAP_AUDIT_WRITE = 0x1d 351 CAN_RAW = 0x1
352 CAP_BLOCK_SUSPEND = 0x24 352 CAN_RAW_FILTER_MAX = 0x200
353 CAP_CHOWN = 0x0 353 CAN_RTR_FLAG = 0x40000000
354 CAP_DAC_OVERRIDE = 0x1 354 CAN_SFF_ID_BITS = 0xb
355 CAP_DAC_READ_SEARCH = 0x2 355 CAN_SFF_MASK = 0x7ff
356 CAP_FOWNER = 0x3 356 CAN_TP16 = 0x3
357 CAP_FSETID = 0x4 357 CAN_TP20 = 0x4
358 CAP_IPC_LOCK = 0xe 358 CAP_AUDIT_CONTROL = 0x1e
359 CAP_IPC_OWNER = 0xf 359 CAP_AUDIT_READ = 0x25
360 CAP_KILL = 0x5 360 CAP_AUDIT_WRITE = 0x1d
361 CAP_LAST_CAP = 0x25 361 CAP_BLOCK_SUSPEND = 0x24
362 CAP_LEASE = 0x1c 362 CAP_CHOWN = 0x0
363 CAP_LINUX_IMMUTABLE = 0x9 363 CAP_DAC_OVERRIDE = 0x1
364 CAP_MAC_ADMIN = 0x21 364 CAP_DAC_READ_SEARCH = 0x2
365 CAP_MAC_OVERRIDE = 0x20 365 CAP_FOWNER = 0x3
366 CAP_MKNOD = 0x1b 366 CAP_FSETID = 0x4
367 CAP_NET_ADMIN = 0xc 367 CAP_IPC_LOCK = 0xe
368 CAP_NET_BIND_SERVICE = 0xa 368 CAP_IPC_OWNER = 0xf
369 CAP_NET_BROADCAST = 0xb 369 CAP_KILL = 0x5
370 CAP_NET_RAW = 0xd 370 CAP_LAST_CAP = 0x25
371 CAP_SETFCAP = 0x1f 371 CAP_LEASE = 0x1c
372 CAP_SETGID = 0x6 372 CAP_LINUX_IMMUTABLE = 0x9
373 CAP_SETPCAP = 0x8 373 CAP_MAC_ADMIN = 0x21
374 CAP_SETUID = 0x7 374 CAP_MAC_OVERRIDE = 0x20
375 CAP_SYSLOG = 0x22 375 CAP_MKNOD = 0x1b
376 CAP_SYS_ADMIN = 0x15 376 CAP_NET_ADMIN = 0xc
377 CAP_SYS_BOOT = 0x16 377 CAP_NET_BIND_SERVICE = 0xa
378 CAP_SYS_CHROOT = 0x12 378 CAP_NET_BROADCAST = 0xb
379 CAP_SYS_MODULE = 0x10 379 CAP_NET_RAW = 0xd
380 CAP_SYS_NICE = 0x17 380 CAP_SETFCAP = 0x1f
381 CAP_SYS_PACCT = 0x14 381 CAP_SETGID = 0x6
382 CAP_SYS_PTRACE = 0x13 382 CAP_SETPCAP = 0x8
383 CAP_SYS_RAWIO = 0x11 383 CAP_SETUID = 0x7
384 CAP_SYS_RESOURCE = 0x18 384 CAP_SYSLOG = 0x22
385 CAP_SYS_TIME = 0x19 385 CAP_SYS_ADMIN = 0x15
386 CAP_SYS_TTY_CONFIG = 0x1a 386 CAP_SYS_BOOT = 0x16
387 CAP_WAKE_ALARM = 0x23 387 CAP_SYS_CHROOT = 0x12
388 CBAUD = 0x100f 388 CAP_SYS_MODULE = 0x10
389 CBAUDEX = 0x1000 389 CAP_SYS_NICE = 0x17
390 CFLUSH = 0xf 390 CAP_SYS_PACCT = 0x14
391 CGROUP2_SUPER_MAGIC = 0x63677270 391 CAP_SYS_PTRACE = 0x13
392 CGROUP_SUPER_MAGIC = 0x27e0eb 392 CAP_SYS_RAWIO = 0x11
393 CIBAUD = 0x100f0000 393 CAP_SYS_RESOURCE = 0x18
394 CLOCAL = 0x800 394 CAP_SYS_TIME = 0x19
395 CLOCK_BOOTTIME = 0x7 395 CAP_SYS_TTY_CONFIG = 0x1a
396 CLOCK_BOOTTIME_ALARM = 0x9 396 CAP_WAKE_ALARM = 0x23
397 CLOCK_DEFAULT = 0x0 397 CBAUD = 0x100f
398 CLOCK_EXT = 0x1 398 CBAUDEX = 0x1000
399 CLOCK_INT = 0x2 399 CFLUSH = 0xf
400 CLOCK_MONOTONIC = 0x1 400 CGROUP2_SUPER_MAGIC = 0x63677270
401 CLOCK_MONOTONIC_COARSE = 0x6 401 CGROUP_SUPER_MAGIC = 0x27e0eb
402 CLOCK_MONOTONIC_RAW = 0x4 402 CIBAUD = 0x100f0000
403 CLOCK_PROCESS_CPUTIME_ID = 0x2 403 CLOCAL = 0x800
404 CLOCK_REALTIME = 0x0 404 CLOCK_BOOTTIME = 0x7
405 CLOCK_REALTIME_ALARM = 0x8 405 CLOCK_BOOTTIME_ALARM = 0x9
406 CLOCK_REALTIME_COARSE = 0x5 406 CLOCK_DEFAULT = 0x0
407 CLOCK_TAI = 0xb 407 CLOCK_EXT = 0x1
408 CLOCK_THREAD_CPUTIME_ID = 0x3 408 CLOCK_INT = 0x2
409 CLOCK_TXFROMRX = 0x4 409 CLOCK_MONOTONIC = 0x1
410 CLOCK_TXINT = 0x3 410 CLOCK_MONOTONIC_COARSE = 0x6
411 CLONE_CHILD_CLEARTID = 0x200000 411 CLOCK_MONOTONIC_RAW = 0x4
412 CLONE_CHILD_SETTID = 0x1000000 412 CLOCK_PROCESS_CPUTIME_ID = 0x2
413 CLONE_DETACHED = 0x400000 413 CLOCK_REALTIME = 0x0
414 CLONE_FILES = 0x400 414 CLOCK_REALTIME_ALARM = 0x8
415 CLONE_FS = 0x200 415 CLOCK_REALTIME_COARSE = 0x5
416 CLONE_IO = 0x80000000 416 CLOCK_TAI = 0xb
417 CLONE_NEWCGROUP = 0x2000000 417 CLOCK_THREAD_CPUTIME_ID = 0x3
418 CLONE_NEWIPC = 0x8000000 418 CLOCK_TXFROMRX = 0x4
419 CLONE_NEWNET = 0x40000000 419 CLOCK_TXINT = 0x3
420 CLONE_NEWNS = 0x20000 420 CLONE_ARGS_SIZE_VER0 = 0x40
421 CLONE_NEWPID = 0x20000000 421 CLONE_ARGS_SIZE_VER1 = 0x50
422 CLONE_NEWUSER = 0x10000000 422 CLONE_CHILD_CLEARTID = 0x200000
423 CLONE_NEWUTS = 0x4000000 423 CLONE_CHILD_SETTID = 0x1000000
424 CLONE_PARENT = 0x8000 424 CLONE_CLEAR_SIGHAND = 0x100000000
425 CLONE_PARENT_SETTID = 0x100000 425 CLONE_DETACHED = 0x400000
426 CLONE_PIDFD = 0x1000 426 CLONE_FILES = 0x400
427 CLONE_PTRACE = 0x2000 427 CLONE_FS = 0x200
428 CLONE_SETTLS = 0x80000 428 CLONE_IO = 0x80000000
429 CLONE_SIGHAND = 0x800 429 CLONE_NEWCGROUP = 0x2000000
430 CLONE_SYSVSEM = 0x40000 430 CLONE_NEWIPC = 0x8000000
431 CLONE_THREAD = 0x10000 431 CLONE_NEWNET = 0x40000000
432 CLONE_UNTRACED = 0x800000 432 CLONE_NEWNS = 0x20000
433 CLONE_VFORK = 0x4000 433 CLONE_NEWPID = 0x20000000
434 CLONE_VM = 0x100 434 CLONE_NEWUSER = 0x10000000
435 CMSPAR = 0x40000000 435 CLONE_NEWUTS = 0x4000000
436 CODA_SUPER_MAGIC = 0x73757245 436 CLONE_PARENT = 0x8000
437 CR0 = 0x0 437 CLONE_PARENT_SETTID = 0x100000
438 CR1 = 0x200 438 CLONE_PIDFD = 0x1000
439 CR2 = 0x400 439 CLONE_PTRACE = 0x2000
440 CR3 = 0x600 440 CLONE_SETTLS = 0x80000
441 CRAMFS_MAGIC = 0x28cd3d45 441 CLONE_SIGHAND = 0x800
442 CRDLY = 0x600 442 CLONE_SYSVSEM = 0x40000
443 CREAD = 0x80 443 CLONE_THREAD = 0x10000
444 CRTSCTS = 0x80000000 444 CLONE_UNTRACED = 0x800000
445 CRYPTO_MAX_NAME = 0x40 445 CLONE_VFORK = 0x4000
446 CRYPTO_MSG_MAX = 0x15 446 CLONE_VM = 0x100
447 CRYPTO_NR_MSGTYPES = 0x6 447 CMSPAR = 0x40000000
448 CRYPTO_REPORT_MAXSIZE = 0x160 448 CODA_SUPER_MAGIC = 0x73757245
449 CS5 = 0x0 449 CR0 = 0x0
450 CS6 = 0x10 450 CR1 = 0x200
451 CS7 = 0x20 451 CR2 = 0x400
452 CS8 = 0x30 452 CR3 = 0x600
453 CSIGNAL = 0xff 453 CRAMFS_MAGIC = 0x28cd3d45
454 CSIZE = 0x30 454 CRDLY = 0x600
455 CSTART = 0x11 455 CREAD = 0x80
456 CSTATUS = 0x0 456 CRTSCTS = 0x80000000
457 CSTOP = 0x13 457 CRYPTO_MAX_NAME = 0x40
458 CSTOPB = 0x40 458 CRYPTO_MSG_MAX = 0x15
459 CSUSP = 0x1a 459 CRYPTO_NR_MSGTYPES = 0x6
460 DAXFS_MAGIC = 0x64646178 460 CRYPTO_REPORT_MAXSIZE = 0x160
461 DEBUGFS_MAGIC = 0x64626720 461 CS5 = 0x0
462 DEVPTS_SUPER_MAGIC = 0x1cd1 462 CS6 = 0x10
463 DT_BLK = 0x6 463 CS7 = 0x20
464 DT_CHR = 0x2 464 CS8 = 0x30
465 DT_DIR = 0x4 465 CSIGNAL = 0xff
466 DT_FIFO = 0x1 466 CSIZE = 0x30
467 DT_LNK = 0xa 467 CSTART = 0x11
468 DT_REG = 0x8 468 CSTATUS = 0x0
469 DT_SOCK = 0xc 469 CSTOP = 0x13
470 DT_UNKNOWN = 0x0 470 CSTOPB = 0x40
471 DT_WHT = 0xe 471 CSUSP = 0x1a
472 ECHO = 0x8 472 DAXFS_MAGIC = 0x64646178
473 ECHOCTL = 0x200 473 DEBUGFS_MAGIC = 0x64626720
474 ECHOE = 0x10 474 DEVLINK_CMD_ESWITCH_MODE_GET = 0x1d
475 ECHOK = 0x20 475 DEVLINK_CMD_ESWITCH_MODE_SET = 0x1e
476 ECHOKE = 0x800 476 DEVLINK_GENL_MCGRP_CONFIG_NAME = "config"
477 ECHONL = 0x40 477 DEVLINK_GENL_NAME = "devlink"
478 ECHOPRT = 0x400 478 DEVLINK_GENL_VERSION = 0x1
479 ECRYPTFS_SUPER_MAGIC = 0xf15f 479 DEVLINK_SB_THRESHOLD_TO_ALPHA_MAX = 0x14
480 EFD_CLOEXEC = 0x80000 480 DEVPTS_SUPER_MAGIC = 0x1cd1
481 EFD_NONBLOCK = 0x800 481 DMA_BUF_MAGIC = 0x444d4142
482 EFD_SEMAPHORE = 0x1 482 DT_BLK = 0x6
483 EFIVARFS_MAGIC = 0xde5e81e4 483 DT_CHR = 0x2
484 EFS_SUPER_MAGIC = 0x414a53 484 DT_DIR = 0x4
485 ENCODING_DEFAULT = 0x0 485 DT_FIFO = 0x1
486 ENCODING_FM_MARK = 0x3 486 DT_LNK = 0xa
487 ENCODING_FM_SPACE = 0x4 487 DT_REG = 0x8
488 ENCODING_MANCHESTER = 0x5 488 DT_SOCK = 0xc
489 ENCODING_NRZ = 0x1 489 DT_UNKNOWN = 0x0
490 ENCODING_NRZI = 0x2 490 DT_WHT = 0xe
491 EPOLLERR = 0x8 491 ECHO = 0x8
492 EPOLLET = 0x80000000 492 ECHOCTL = 0x200
493 EPOLLEXCLUSIVE = 0x10000000 493 ECHOE = 0x10
494 EPOLLHUP = 0x10 494 ECHOK = 0x20
495 EPOLLIN = 0x1 495 ECHOKE = 0x800
496 EPOLLMSG = 0x400 496 ECHONL = 0x40
497 EPOLLONESHOT = 0x40000000 497 ECHOPRT = 0x400
498 EPOLLOUT = 0x4 498 ECRYPTFS_SUPER_MAGIC = 0xf15f
499 EPOLLPRI = 0x2 499 EFD_CLOEXEC = 0x80000
500 EPOLLRDBAND = 0x80 500 EFD_NONBLOCK = 0x800
501 EPOLLRDHUP = 0x2000 501 EFD_SEMAPHORE = 0x1
502 EPOLLRDNORM = 0x40 502 EFIVARFS_MAGIC = 0xde5e81e4
503 EPOLLWAKEUP = 0x20000000 503 EFS_SUPER_MAGIC = 0x414a53
504 EPOLLWRBAND = 0x200 504 ENCODING_DEFAULT = 0x0
505 EPOLLWRNORM = 0x100 505 ENCODING_FM_MARK = 0x3
506 EPOLL_CLOEXEC = 0x80000 506 ENCODING_FM_SPACE = 0x4
507 EPOLL_CTL_ADD = 0x1 507 ENCODING_MANCHESTER = 0x5
508 EPOLL_CTL_DEL = 0x2 508 ENCODING_NRZ = 0x1
509 EPOLL_CTL_MOD = 0x3 509 ENCODING_NRZI = 0x2
510 ETH_P_1588 = 0x88f7 510 EPOLLERR = 0x8
511 ETH_P_8021AD = 0x88a8 511 EPOLLET = 0x80000000
512 ETH_P_8021AH = 0x88e7 512 EPOLLEXCLUSIVE = 0x10000000
513 ETH_P_8021Q = 0x8100 513 EPOLLHUP = 0x10
514 ETH_P_80221 = 0x8917 514 EPOLLIN = 0x1
515 ETH_P_802_2 = 0x4 515 EPOLLMSG = 0x400
516 ETH_P_802_3 = 0x1 516 EPOLLONESHOT = 0x40000000
517 ETH_P_802_3_MIN = 0x600 517 EPOLLOUT = 0x4
518 ETH_P_802_EX1 = 0x88b5 518 EPOLLPRI = 0x2
519 ETH_P_AARP = 0x80f3 519 EPOLLRDBAND = 0x80
520 ETH_P_AF_IUCV = 0xfbfb 520 EPOLLRDHUP = 0x2000
521 ETH_P_ALL = 0x3 521 EPOLLRDNORM = 0x40
522 ETH_P_AOE = 0x88a2 522 EPOLLWAKEUP = 0x20000000
523 ETH_P_ARCNET = 0x1a 523 EPOLLWRBAND = 0x200
524 ETH_P_ARP = 0x806 524 EPOLLWRNORM = 0x100
525 ETH_P_ATALK = 0x809b 525 EPOLL_CLOEXEC = 0x80000
526 ETH_P_ATMFATE = 0x8884 526 EPOLL_CTL_ADD = 0x1
527 ETH_P_ATMMPOA = 0x884c 527 EPOLL_CTL_DEL = 0x2
528 ETH_P_AX25 = 0x2 528 EPOLL_CTL_MOD = 0x3
529 ETH_P_BATMAN = 0x4305 529 EROFS_SUPER_MAGIC_V1 = 0xe0f5e1e2
530 ETH_P_BPQ = 0x8ff 530 ETH_P_1588 = 0x88f7
531 ETH_P_CAIF = 0xf7 531 ETH_P_8021AD = 0x88a8
532 ETH_P_CAN = 0xc 532 ETH_P_8021AH = 0x88e7
533 ETH_P_CANFD = 0xd 533 ETH_P_8021Q = 0x8100
534 ETH_P_CONTROL = 0x16 534 ETH_P_80221 = 0x8917
535 ETH_P_CUST = 0x6006 535 ETH_P_802_2 = 0x4
536 ETH_P_DDCMP = 0x6 536 ETH_P_802_3 = 0x1
537 ETH_P_DEC = 0x6000 537 ETH_P_802_3_MIN = 0x600
538 ETH_P_DIAG = 0x6005 538 ETH_P_802_EX1 = 0x88b5
539 ETH_P_DNA_DL = 0x6001 539 ETH_P_AARP = 0x80f3
540 ETH_P_DNA_RC = 0x6002 540 ETH_P_AF_IUCV = 0xfbfb
541 ETH_P_DNA_RT = 0x6003 541 ETH_P_ALL = 0x3
542 ETH_P_DSA = 0x1b 542 ETH_P_AOE = 0x88a2
543 ETH_P_DSA_8021Q = 0xdadb 543 ETH_P_ARCNET = 0x1a
544 ETH_P_ECONET = 0x18 544 ETH_P_ARP = 0x806
545 ETH_P_EDSA = 0xdada 545 ETH_P_ATALK = 0x809b
546 ETH_P_ERSPAN = 0x88be 546 ETH_P_ATMFATE = 0x8884
547 ETH_P_ERSPAN2 = 0x22eb 547 ETH_P_ATMMPOA = 0x884c
548 ETH_P_FCOE = 0x8906 548 ETH_P_AX25 = 0x2
549 ETH_P_FIP = 0x8914 549 ETH_P_BATMAN = 0x4305
550 ETH_P_HDLC = 0x19 550 ETH_P_BPQ = 0x8ff
551 ETH_P_HSR = 0x892f 551 ETH_P_CAIF = 0xf7
552 ETH_P_IBOE = 0x8915 552 ETH_P_CAN = 0xc
553 ETH_P_IEEE802154 = 0xf6 553 ETH_P_CANFD = 0xd
554 ETH_P_IEEEPUP = 0xa00 554 ETH_P_CONTROL = 0x16
555 ETH_P_IEEEPUPAT = 0xa01 555 ETH_P_CUST = 0x6006
556 ETH_P_IFE = 0xed3e 556 ETH_P_DDCMP = 0x6
557 ETH_P_IP = 0x800 557 ETH_P_DEC = 0x6000
558 ETH_P_IPV6 = 0x86dd 558 ETH_P_DIAG = 0x6005
559 ETH_P_IPX = 0x8137 559 ETH_P_DNA_DL = 0x6001
560 ETH_P_IRDA = 0x17 560 ETH_P_DNA_RC = 0x6002
561 ETH_P_LAT = 0x6004 561 ETH_P_DNA_RT = 0x6003
562 ETH_P_LINK_CTL = 0x886c 562 ETH_P_DSA = 0x1b
563 ETH_P_LOCALTALK = 0x9 563 ETH_P_DSA_8021Q = 0xdadb
564 ETH_P_LOOP = 0x60 564 ETH_P_ECONET = 0x18
565 ETH_P_LOOPBACK = 0x9000 565 ETH_P_EDSA = 0xdada
566 ETH_P_MACSEC = 0x88e5 566 ETH_P_ERSPAN = 0x88be
567 ETH_P_MAP = 0xf9 567 ETH_P_ERSPAN2 = 0x22eb
568 ETH_P_MOBITEX = 0x15 568 ETH_P_FCOE = 0x8906
569 ETH_P_MPLS_MC = 0x8848 569 ETH_P_FIP = 0x8914
570 ETH_P_MPLS_UC = 0x8847 570 ETH_P_HDLC = 0x19
571 ETH_P_MVRP = 0x88f5 571 ETH_P_HSR = 0x892f
572 ETH_P_NCSI = 0x88f8 572 ETH_P_IBOE = 0x8915
573 ETH_P_NSH = 0x894f 573 ETH_P_IEEE802154 = 0xf6
574 ETH_P_PAE = 0x888e 574 ETH_P_IEEEPUP = 0xa00
575 ETH_P_PAUSE = 0x8808 575 ETH_P_IEEEPUPAT = 0xa01
576 ETH_P_PHONET = 0xf5 576 ETH_P_IFE = 0xed3e
577 ETH_P_PPPTALK = 0x10 577 ETH_P_IP = 0x800
578 ETH_P_PPP_DISC = 0x8863 578 ETH_P_IPV6 = 0x86dd
579 ETH_P_PPP_MP = 0x8 579 ETH_P_IPX = 0x8137
580 ETH_P_PPP_SES = 0x8864 580 ETH_P_IRDA = 0x17
581 ETH_P_PREAUTH = 0x88c7 581 ETH_P_LAT = 0x6004
582 ETH_P_PRP = 0x88fb 582 ETH_P_LINK_CTL = 0x886c
583 ETH_P_PUP = 0x200 583 ETH_P_LLDP = 0x88cc
584 ETH_P_PUPAT = 0x201 584 ETH_P_LOCALTALK = 0x9
585 ETH_P_QINQ1 = 0x9100 585 ETH_P_LOOP = 0x60
586 ETH_P_QINQ2 = 0x9200 586 ETH_P_LOOPBACK = 0x9000
587 ETH_P_QINQ3 = 0x9300 587 ETH_P_MACSEC = 0x88e5
588 ETH_P_RARP = 0x8035 588 ETH_P_MAP = 0xf9
589 ETH_P_SCA = 0x6007 589 ETH_P_MOBITEX = 0x15
590 ETH_P_SLOW = 0x8809 590 ETH_P_MPLS_MC = 0x8848
591 ETH_P_SNAP = 0x5 591 ETH_P_MPLS_UC = 0x8847
592 ETH_P_TDLS = 0x890d 592 ETH_P_MVRP = 0x88f5
593 ETH_P_TEB = 0x6558 593 ETH_P_NCSI = 0x88f8
594 ETH_P_TIPC = 0x88ca 594 ETH_P_NSH = 0x894f
595 ETH_P_TRAILER = 0x1c 595 ETH_P_PAE = 0x888e
596 ETH_P_TR_802_2 = 0x11 596 ETH_P_PAUSE = 0x8808
597 ETH_P_TSN = 0x22f0 597 ETH_P_PHONET = 0xf5
598 ETH_P_WAN_PPP = 0x7 598 ETH_P_PPPTALK = 0x10
599 ETH_P_WCCP = 0x883e 599 ETH_P_PPP_DISC = 0x8863
600 ETH_P_X25 = 0x805 600 ETH_P_PPP_MP = 0x8
601 ETH_P_XDSA = 0xf8 601 ETH_P_PPP_SES = 0x8864
602 EXABYTE_ENABLE_NEST = 0xf0 602 ETH_P_PREAUTH = 0x88c7
603 EXT2_SUPER_MAGIC = 0xef53 603 ETH_P_PRP = 0x88fb
604 EXT3_SUPER_MAGIC = 0xef53 604 ETH_P_PUP = 0x200
605 EXT4_SUPER_MAGIC = 0xef53 605 ETH_P_PUPAT = 0x201
606 EXTA = 0xe 606 ETH_P_QINQ1 = 0x9100
607 EXTB = 0xf 607 ETH_P_QINQ2 = 0x9200
608 EXTPROC = 0x10000 608 ETH_P_QINQ3 = 0x9300
609 F2FS_SUPER_MAGIC = 0xf2f52010 609 ETH_P_RARP = 0x8035
610 FALLOC_FL_COLLAPSE_RANGE = 0x8 610 ETH_P_SCA = 0x6007
611 FALLOC_FL_INSERT_RANGE = 0x20 611 ETH_P_SLOW = 0x8809
612 FALLOC_FL_KEEP_SIZE = 0x1 612 ETH_P_SNAP = 0x5
613 FALLOC_FL_NO_HIDE_STALE = 0x4 613 ETH_P_TDLS = 0x890d
614 FALLOC_FL_PUNCH_HOLE = 0x2 614 ETH_P_TEB = 0x6558
615 FALLOC_FL_UNSHARE_RANGE = 0x40 615 ETH_P_TIPC = 0x88ca
616 FALLOC_FL_ZERO_RANGE = 0x10 616 ETH_P_TRAILER = 0x1c
617 FANOTIFY_METADATA_VERSION = 0x3 617 ETH_P_TR_802_2 = 0x11
618 FAN_ACCESS = 0x1 618 ETH_P_TSN = 0x22f0
619 FAN_ACCESS_PERM = 0x20000 619 ETH_P_WAN_PPP = 0x7
620 FAN_ALLOW = 0x1 620 ETH_P_WCCP = 0x883e
621 FAN_ALL_CLASS_BITS = 0xc 621 ETH_P_X25 = 0x805
622 FAN_ALL_EVENTS = 0x3b 622 ETH_P_XDSA = 0xf8
623 FAN_ALL_INIT_FLAGS = 0x3f 623 EXABYTE_ENABLE_NEST = 0xf0
624 FAN_ALL_MARK_FLAGS = 0xff 624 EXT2_SUPER_MAGIC = 0xef53
625 FAN_ALL_OUTGOING_EVENTS = 0x3403b 625 EXT3_SUPER_MAGIC = 0xef53
626 FAN_ALL_PERM_EVENTS = 0x30000 626 EXT4_SUPER_MAGIC = 0xef53
627 FAN_ATTRIB = 0x4 627 EXTA = 0xe
628 FAN_AUDIT = 0x10 628 EXTB = 0xf
629 FAN_CLASS_CONTENT = 0x4 629 EXTPROC = 0x10000
630 FAN_CLASS_NOTIF = 0x0 630 F2FS_SUPER_MAGIC = 0xf2f52010
631 FAN_CLASS_PRE_CONTENT = 0x8 631 FALLOC_FL_COLLAPSE_RANGE = 0x8
632 FAN_CLOEXEC = 0x1 632 FALLOC_FL_INSERT_RANGE = 0x20
633 FAN_CLOSE = 0x18 633 FALLOC_FL_KEEP_SIZE = 0x1
634 FAN_CLOSE_NOWRITE = 0x10 634 FALLOC_FL_NO_HIDE_STALE = 0x4
635 FAN_CLOSE_WRITE = 0x8 635 FALLOC_FL_PUNCH_HOLE = 0x2
636 FAN_CREATE = 0x100 636 FALLOC_FL_UNSHARE_RANGE = 0x40
637 FAN_DELETE = 0x200 637 FALLOC_FL_ZERO_RANGE = 0x10
638 FAN_DELETE_SELF = 0x400 638 FANOTIFY_METADATA_VERSION = 0x3
639 FAN_DENY = 0x2 639 FAN_ACCESS = 0x1
640 FAN_ENABLE_AUDIT = 0x40 640 FAN_ACCESS_PERM = 0x20000
641 FAN_EVENT_INFO_TYPE_FID = 0x1 641 FAN_ALLOW = 0x1
642 FAN_EVENT_METADATA_LEN = 0x18 642 FAN_ALL_CLASS_BITS = 0xc
643 FAN_EVENT_ON_CHILD = 0x8000000 643 FAN_ALL_EVENTS = 0x3b
644 FAN_MARK_ADD = 0x1 644 FAN_ALL_INIT_FLAGS = 0x3f
645 FAN_MARK_DONT_FOLLOW = 0x4 645 FAN_ALL_MARK_FLAGS = 0xff
646 FAN_MARK_FILESYSTEM = 0x100 646 FAN_ALL_OUTGOING_EVENTS = 0x3403b
647 FAN_MARK_FLUSH = 0x80 647 FAN_ALL_PERM_EVENTS = 0x30000
648 FAN_MARK_IGNORED_MASK = 0x20 648 FAN_ATTRIB = 0x4
649 FAN_MARK_IGNORED_SURV_MODIFY = 0x40 649 FAN_AUDIT = 0x10
650 FAN_MARK_INODE = 0x0 650 FAN_CLASS_CONTENT = 0x4
651 FAN_MARK_MOUNT = 0x10 651 FAN_CLASS_NOTIF = 0x0
652 FAN_MARK_ONLYDIR = 0x8 652 FAN_CLASS_PRE_CONTENT = 0x8
653 FAN_MARK_REMOVE = 0x2 653 FAN_CLOEXEC = 0x1
654 FAN_MODIFY = 0x2 654 FAN_CLOSE = 0x18
655 FAN_MOVE = 0xc0 655 FAN_CLOSE_NOWRITE = 0x10
656 FAN_MOVED_FROM = 0x40 656 FAN_CLOSE_WRITE = 0x8
657 FAN_MOVED_TO = 0x80 657 FAN_CREATE = 0x100
658 FAN_MOVE_SELF = 0x800 658 FAN_DELETE = 0x200
659 FAN_NOFD = -0x1 659 FAN_DELETE_SELF = 0x400
660 FAN_NONBLOCK = 0x2 660 FAN_DENY = 0x2
661 FAN_ONDIR = 0x40000000 661 FAN_ENABLE_AUDIT = 0x40
662 FAN_OPEN = 0x20 662 FAN_EVENT_INFO_TYPE_FID = 0x1
663 FAN_OPEN_EXEC = 0x1000 663 FAN_EVENT_METADATA_LEN = 0x18
664 FAN_OPEN_EXEC_PERM = 0x40000 664 FAN_EVENT_ON_CHILD = 0x8000000
665 FAN_OPEN_PERM = 0x10000 665 FAN_MARK_ADD = 0x1
666 FAN_Q_OVERFLOW = 0x4000 666 FAN_MARK_DONT_FOLLOW = 0x4
667 FAN_REPORT_FID = 0x200 667 FAN_MARK_FILESYSTEM = 0x100
668 FAN_REPORT_TID = 0x100 668 FAN_MARK_FLUSH = 0x80
669 FAN_UNLIMITED_MARKS = 0x20 669 FAN_MARK_IGNORED_MASK = 0x20
670 FAN_UNLIMITED_QUEUE = 0x10 670 FAN_MARK_IGNORED_SURV_MODIFY = 0x40
671 FD_CLOEXEC = 0x1 671 FAN_MARK_INODE = 0x0
672 FD_SETSIZE = 0x400 672 FAN_MARK_MOUNT = 0x10
673 FF0 = 0x0 673 FAN_MARK_ONLYDIR = 0x8
674 FF1 = 0x8000 674 FAN_MARK_REMOVE = 0x2
675 FFDLY = 0x8000 675 FAN_MODIFY = 0x2
676 FLUSHO = 0x1000 676 FAN_MOVE = 0xc0
677 FP_XSTATE_MAGIC2 = 0x46505845 677 FAN_MOVED_FROM = 0x40
678 FS_ENCRYPTION_MODE_ADIANTUM = 0x9 678 FAN_MOVED_TO = 0x80
679 FS_ENCRYPTION_MODE_AES_128_CBC = 0x5 679 FAN_MOVE_SELF = 0x800
680 FS_ENCRYPTION_MODE_AES_128_CTS = 0x6 680 FAN_NOFD = -0x1
681 FS_ENCRYPTION_MODE_AES_256_CBC = 0x3 681 FAN_NONBLOCK = 0x2
682 FS_ENCRYPTION_MODE_AES_256_CTS = 0x4 682 FAN_ONDIR = 0x40000000
683 FS_ENCRYPTION_MODE_AES_256_GCM = 0x2 683 FAN_OPEN = 0x20
684 FS_ENCRYPTION_MODE_AES_256_XTS = 0x1 684 FAN_OPEN_EXEC = 0x1000
685 FS_ENCRYPTION_MODE_INVALID = 0x0 685 FAN_OPEN_EXEC_PERM = 0x40000
686 FS_ENCRYPTION_MODE_SPECK128_256_CTS = 0x8 686 FAN_OPEN_PERM = 0x10000
687 FS_ENCRYPTION_MODE_SPECK128_256_XTS = 0x7 687 FAN_Q_OVERFLOW = 0x4000
688 FS_IOC_GET_ENCRYPTION_POLICY = 0x400c6615 688 FAN_REPORT_FID = 0x200
689 FS_IOC_GET_ENCRYPTION_PWSALT = 0x40106614 689 FAN_REPORT_TID = 0x100
690 FS_IOC_SET_ENCRYPTION_POLICY = 0x800c6613 690 FAN_UNLIMITED_MARKS = 0x20
691 FS_KEY_DESCRIPTOR_SIZE = 0x8 691 FAN_UNLIMITED_QUEUE = 0x10
692 FS_KEY_DESC_PREFIX = "fscrypt:" 692 FD_CLOEXEC = 0x1
693 FS_KEY_DESC_PREFIX_SIZE = 0x8 693 FD_SETSIZE = 0x400
694 FS_MAX_KEY_SIZE = 0x40 694 FF0 = 0x0
695 FS_POLICY_FLAGS_PAD_16 = 0x2 695 FF1 = 0x8000
696 FS_POLICY_FLAGS_PAD_32 = 0x3 696 FFDLY = 0x8000
697 FS_POLICY_FLAGS_PAD_4 = 0x0 697 FLUSHO = 0x1000
698 FS_POLICY_FLAGS_PAD_8 = 0x1 698 FP_XSTATE_MAGIC2 = 0x46505845
699 FS_POLICY_FLAGS_PAD_MASK = 0x3 699 FSCRYPT_KEY_DESCRIPTOR_SIZE = 0x8
700 FS_POLICY_FLAGS_VALID = 0x7 700 FSCRYPT_KEY_DESC_PREFIX = "fscrypt:"
701 FUTEXFS_SUPER_MAGIC = 0xbad1dea 701 FSCRYPT_KEY_DESC_PREFIX_SIZE = 0x8
702 F_ADD_SEALS = 0x409 702 FSCRYPT_KEY_IDENTIFIER_SIZE = 0x10
703 F_DUPFD = 0x0 703 FSCRYPT_KEY_REMOVAL_STATUS_FLAG_FILES_BUSY = 0x1
704 F_DUPFD_CLOEXEC = 0x406 704 FSCRYPT_KEY_REMOVAL_STATUS_FLAG_OTHER_USERS = 0x2
705 F_EXLCK = 0x4 705 FSCRYPT_KEY_SPEC_TYPE_DESCRIPTOR = 0x1
706 F_GETFD = 0x1 706 FSCRYPT_KEY_SPEC_TYPE_IDENTIFIER = 0x2
707 F_GETFL = 0x3 707 FSCRYPT_KEY_STATUS_ABSENT = 0x1
708 F_GETLEASE = 0x401 708 FSCRYPT_KEY_STATUS_FLAG_ADDED_BY_SELF = 0x1
709 F_GETLK = 0xc 709 FSCRYPT_KEY_STATUS_INCOMPLETELY_REMOVED = 0x3
710 F_GETLK64 = 0xc 710 FSCRYPT_KEY_STATUS_PRESENT = 0x2
711 F_GETOWN = 0x9 711 FSCRYPT_MAX_KEY_SIZE = 0x40
712 F_GETOWN_EX = 0x10 712 FSCRYPT_MODE_ADIANTUM = 0x9
713 F_GETPIPE_SZ = 0x408 713 FSCRYPT_MODE_AES_128_CBC = 0x5
714 F_GETSIG = 0xb 714 FSCRYPT_MODE_AES_128_CTS = 0x6
715 F_GET_FILE_RW_HINT = 0x40d 715 FSCRYPT_MODE_AES_256_CTS = 0x4
716 F_GET_RW_HINT = 0x40b 716 FSCRYPT_MODE_AES_256_XTS = 0x1
717 F_GET_SEALS = 0x40a 717 FSCRYPT_POLICY_FLAGS_PAD_16 = 0x2
718 F_LOCK = 0x1 718 FSCRYPT_POLICY_FLAGS_PAD_32 = 0x3
719 F_NOTIFY = 0x402 719 FSCRYPT_POLICY_FLAGS_PAD_4 = 0x0
720 F_OFD_GETLK = 0x24 720 FSCRYPT_POLICY_FLAGS_PAD_8 = 0x1
721 F_OFD_SETLK = 0x25 721 FSCRYPT_POLICY_FLAGS_PAD_MASK = 0x3
722 F_OFD_SETLKW = 0x26 722 FSCRYPT_POLICY_FLAGS_VALID = 0xf
723 F_OK = 0x0 723 FSCRYPT_POLICY_FLAG_DIRECT_KEY = 0x4
724 F_RDLCK = 0x0 724 FSCRYPT_POLICY_FLAG_IV_INO_LBLK_64 = 0x8
725 F_SEAL_FUTURE_WRITE = 0x10 725 FSCRYPT_POLICY_V1 = 0x0
726 F_SEAL_GROW = 0x4 726 FSCRYPT_POLICY_V2 = 0x2
727 F_SEAL_SEAL = 0x1 727 FS_ENCRYPTION_MODE_ADIANTUM = 0x9
728 F_SEAL_SHRINK = 0x2 728 FS_ENCRYPTION_MODE_AES_128_CBC = 0x5
729 F_SEAL_WRITE = 0x8 729 FS_ENCRYPTION_MODE_AES_128_CTS = 0x6
730 F_SETFD = 0x2 730 FS_ENCRYPTION_MODE_AES_256_CBC = 0x3
731 F_SETFL = 0x4 731 FS_ENCRYPTION_MODE_AES_256_CTS = 0x4
732 F_SETLEASE = 0x400 732 FS_ENCRYPTION_MODE_AES_256_GCM = 0x2
733 F_SETLK = 0xd 733 FS_ENCRYPTION_MODE_AES_256_XTS = 0x1
734 F_SETLK64 = 0xd 734 FS_ENCRYPTION_MODE_INVALID = 0x0
735 F_SETLKW = 0xe 735 FS_ENCRYPTION_MODE_SPECK128_256_CTS = 0x8
736 F_SETLKW64 = 0xe 736 FS_ENCRYPTION_MODE_SPECK128_256_XTS = 0x7
737 F_SETOWN = 0x8 737 FS_IOC_ADD_ENCRYPTION_KEY = 0xc0506617
738 F_SETOWN_EX = 0xf 738 FS_IOC_GET_ENCRYPTION_KEY_STATUS = 0xc080661a
739 F_SETPIPE_SZ = 0x407 739 FS_IOC_GET_ENCRYPTION_POLICY = 0x400c6615
740 F_SETSIG = 0xa 740 FS_IOC_GET_ENCRYPTION_POLICY_EX = 0xc0096616
741 F_SET_FILE_RW_HINT = 0x40e 741 FS_IOC_GET_ENCRYPTION_PWSALT = 0x40106614
742 F_SET_RW_HINT = 0x40c 742 FS_IOC_REMOVE_ENCRYPTION_KEY = 0xc0406618
743 F_SHLCK = 0x8 743 FS_IOC_REMOVE_ENCRYPTION_KEY_ALL_USERS = 0xc0406619
744 F_TEST = 0x3 744 FS_IOC_SET_ENCRYPTION_POLICY = 0x800c6613
745 F_TLOCK = 0x2 745 FS_KEY_DESCRIPTOR_SIZE = 0x8
746 F_ULOCK = 0x0 746 FS_KEY_DESC_PREFIX = "fscrypt:"
747 F_UNLCK = 0x2 747 FS_KEY_DESC_PREFIX_SIZE = 0x8
748 F_WRLCK = 0x1 748 FS_MAX_KEY_SIZE = 0x40
749 GENL_ADMIN_PERM = 0x1 749 FS_POLICY_FLAGS_PAD_16 = 0x2
750 GENL_CMD_CAP_DO = 0x2 750 FS_POLICY_FLAGS_PAD_32 = 0x3
751 GENL_CMD_CAP_DUMP = 0x4 751 FS_POLICY_FLAGS_PAD_4 = 0x0
752 GENL_CMD_CAP_HASPOL = 0x8 752 FS_POLICY_FLAGS_PAD_8 = 0x1
753 GENL_HDRLEN = 0x4 753 FS_POLICY_FLAGS_PAD_MASK = 0x3
754 GENL_ID_CTRL = 0x10 754 FS_POLICY_FLAGS_VALID = 0xf
755 GENL_ID_PMCRAID = 0x12 755 FUTEXFS_SUPER_MAGIC = 0xbad1dea
756 GENL_ID_VFS_DQUOT = 0x11 756 F_ADD_SEALS = 0x409
757 GENL_MAX_ID = 0x3ff 757 F_DUPFD = 0x0
758 GENL_MIN_ID = 0x10 758 F_DUPFD_CLOEXEC = 0x406
759 GENL_NAMSIZ = 0x10 759 F_EXLCK = 0x4
760 GENL_START_ALLOC = 0x13 760 F_GETFD = 0x1
761 GENL_UNS_ADMIN_PERM = 0x10 761 F_GETFL = 0x3
762 GRND_NONBLOCK = 0x1 762 F_GETLEASE = 0x401
763 GRND_RANDOM = 0x2 763 F_GETLK = 0xc
764 HDIO_DRIVE_CMD = 0x31f 764 F_GETLK64 = 0xc
765 HDIO_DRIVE_CMD_AEB = 0x31e 765 F_GETOWN = 0x9
766 HDIO_DRIVE_CMD_HDR_SIZE = 0x4 766 F_GETOWN_EX = 0x10
767 HDIO_DRIVE_HOB_HDR_SIZE = 0x8 767 F_GETPIPE_SZ = 0x408
768 HDIO_DRIVE_RESET = 0x31c 768 F_GETSIG = 0xb
769 HDIO_DRIVE_TASK = 0x31e 769 F_GET_FILE_RW_HINT = 0x40d
770 HDIO_DRIVE_TASKFILE = 0x31d 770 F_GET_RW_HINT = 0x40b
771 HDIO_DRIVE_TASK_HDR_SIZE = 0x8 771 F_GET_SEALS = 0x40a
772 HDIO_GETGEO = 0x301 772 F_LOCK = 0x1
773 HDIO_GET_32BIT = 0x309 773 F_NOTIFY = 0x402
774 HDIO_GET_ACOUSTIC = 0x30f 774 F_OFD_GETLK = 0x24
775 HDIO_GET_ADDRESS = 0x310 775 F_OFD_SETLK = 0x25
776 HDIO_GET_BUSSTATE = 0x31a 776 F_OFD_SETLKW = 0x26
777 HDIO_GET_DMA = 0x30b 777 F_OK = 0x0
778 HDIO_GET_IDENTITY = 0x30d 778 F_RDLCK = 0x0
779 HDIO_GET_KEEPSETTINGS = 0x308 779 F_SEAL_FUTURE_WRITE = 0x10
780 HDIO_GET_MULTCOUNT = 0x304 780 F_SEAL_GROW = 0x4
781 HDIO_GET_NICE = 0x30c 781 F_SEAL_SEAL = 0x1
782 HDIO_GET_NOWERR = 0x30a 782 F_SEAL_SHRINK = 0x2
783 HDIO_GET_QDMA = 0x305 783 F_SEAL_WRITE = 0x8
784 HDIO_GET_UNMASKINTR = 0x302 784 F_SETFD = 0x2
785 HDIO_GET_WCACHE = 0x30e 785 F_SETFL = 0x4
786 HDIO_OBSOLETE_IDENTITY = 0x307 786 F_SETLEASE = 0x400
787 HDIO_SCAN_HWIF = 0x328 787 F_SETLK = 0xd
788 HDIO_SET_32BIT = 0x324 788 F_SETLK64 = 0xd
789 HDIO_SET_ACOUSTIC = 0x32c 789 F_SETLKW = 0xe
790 HDIO_SET_ADDRESS = 0x32f 790 F_SETLKW64 = 0xe
791 HDIO_SET_BUSSTATE = 0x32d 791 F_SETOWN = 0x8
792 HDIO_SET_DMA = 0x326 792 F_SETOWN_EX = 0xf
793 HDIO_SET_KEEPSETTINGS = 0x323 793 F_SETPIPE_SZ = 0x407
794 HDIO_SET_MULTCOUNT = 0x321 794 F_SETSIG = 0xa
795 HDIO_SET_NICE = 0x329 795 F_SET_FILE_RW_HINT = 0x40e
796 HDIO_SET_NOWERR = 0x325 796 F_SET_RW_HINT = 0x40c
797 HDIO_SET_PIO_MODE = 0x327 797 F_SHLCK = 0x8
798 HDIO_SET_QDMA = 0x32e 798 F_TEST = 0x3
799 HDIO_SET_UNMASKINTR = 0x322 799 F_TLOCK = 0x2
800 HDIO_SET_WCACHE = 0x32b 800 F_ULOCK = 0x0
801 HDIO_SET_XFER = 0x306 801 F_UNLCK = 0x2
802 HDIO_TRISTATE_HWIF = 0x31b 802 F_WRLCK = 0x1
803 HDIO_UNREGISTER_HWIF = 0x32a 803 GENL_ADMIN_PERM = 0x1
804 HOSTFS_SUPER_MAGIC = 0xc0ffee 804 GENL_CMD_CAP_DO = 0x2
805 HPFS_SUPER_MAGIC = 0xf995e849 805 GENL_CMD_CAP_DUMP = 0x4
806 HUGETLBFS_MAGIC = 0x958458f6 806 GENL_CMD_CAP_HASPOL = 0x8
807 HUPCL = 0x400 807 GENL_HDRLEN = 0x4
808 IBSHIFT = 0x10 808 GENL_ID_CTRL = 0x10
809 ICANON = 0x2 809 GENL_ID_PMCRAID = 0x12
810 ICMPV6_FILTER = 0x1 810 GENL_ID_VFS_DQUOT = 0x11
811 ICRNL = 0x100 811 GENL_MAX_ID = 0x3ff
812 IEXTEN = 0x8000 812 GENL_MIN_ID = 0x10
813 IFA_F_DADFAILED = 0x8 813 GENL_NAMSIZ = 0x10
814 IFA_F_DEPRECATED = 0x20 814 GENL_START_ALLOC = 0x13
815 IFA_F_HOMEADDRESS = 0x10 815 GENL_UNS_ADMIN_PERM = 0x10
816 IFA_F_MANAGETEMPADDR = 0x100 816 GRND_NONBLOCK = 0x1
817 IFA_F_MCAUTOJOIN = 0x400 817 GRND_RANDOM = 0x2
818 IFA_F_NODAD = 0x2 818 HDIO_DRIVE_CMD = 0x31f
819 IFA_F_NOPREFIXROUTE = 0x200 819 HDIO_DRIVE_CMD_AEB = 0x31e
820 IFA_F_OPTIMISTIC = 0x4 820 HDIO_DRIVE_CMD_HDR_SIZE = 0x4
821 IFA_F_PERMANENT = 0x80 821 HDIO_DRIVE_HOB_HDR_SIZE = 0x8
822 IFA_F_SECONDARY = 0x1 822 HDIO_DRIVE_RESET = 0x31c
823 IFA_F_STABLE_PRIVACY = 0x800 823 HDIO_DRIVE_TASK = 0x31e
824 IFA_F_TEMPORARY = 0x1 824 HDIO_DRIVE_TASKFILE = 0x31d
825 IFA_F_TENTATIVE = 0x40 825 HDIO_DRIVE_TASK_HDR_SIZE = 0x8
826 IFA_MAX = 0xa 826 HDIO_GETGEO = 0x301
827 IFF_ALLMULTI = 0x200 827 HDIO_GET_32BIT = 0x309
828 IFF_ATTACH_QUEUE = 0x200 828 HDIO_GET_ACOUSTIC = 0x30f
829 IFF_AUTOMEDIA = 0x4000 829 HDIO_GET_ADDRESS = 0x310
830 IFF_BROADCAST = 0x2 830 HDIO_GET_BUSSTATE = 0x31a
831 IFF_DEBUG = 0x4 831 HDIO_GET_DMA = 0x30b
832 IFF_DETACH_QUEUE = 0x400 832 HDIO_GET_IDENTITY = 0x30d
833 IFF_DORMANT = 0x20000 833 HDIO_GET_KEEPSETTINGS = 0x308
834 IFF_DYNAMIC = 0x8000 834 HDIO_GET_MULTCOUNT = 0x304
835 IFF_ECHO = 0x40000 835 HDIO_GET_NICE = 0x30c
836 IFF_LOOPBACK = 0x8 836 HDIO_GET_NOWERR = 0x30a
837 IFF_LOWER_UP = 0x10000 837 HDIO_GET_QDMA = 0x305
838 IFF_MASTER = 0x400 838 HDIO_GET_UNMASKINTR = 0x302
839 IFF_MULTICAST = 0x1000 839 HDIO_GET_WCACHE = 0x30e
840 IFF_MULTI_QUEUE = 0x100 840 HDIO_OBSOLETE_IDENTITY = 0x307
841 IFF_NAPI = 0x10 841 HDIO_SCAN_HWIF = 0x328
842 IFF_NAPI_FRAGS = 0x20 842 HDIO_SET_32BIT = 0x324
843 IFF_NOARP = 0x80 843 HDIO_SET_ACOUSTIC = 0x32c
844 IFF_NOFILTER = 0x1000 844 HDIO_SET_ADDRESS = 0x32f
845 IFF_NOTRAILERS = 0x20 845 HDIO_SET_BUSSTATE = 0x32d
846 IFF_NO_PI = 0x1000 846 HDIO_SET_DMA = 0x326
847 IFF_ONE_QUEUE = 0x2000 847 HDIO_SET_KEEPSETTINGS = 0x323
848 IFF_PERSIST = 0x800 848 HDIO_SET_MULTCOUNT = 0x321
849 IFF_POINTOPOINT = 0x10 849 HDIO_SET_NICE = 0x329
850 IFF_PORTSEL = 0x2000 850 HDIO_SET_NOWERR = 0x325
851 IFF_PROMISC = 0x100 851 HDIO_SET_PIO_MODE = 0x327
852 IFF_RUNNING = 0x40 852 HDIO_SET_QDMA = 0x32e
853 IFF_SLAVE = 0x800 853 HDIO_SET_UNMASKINTR = 0x322
854 IFF_TAP = 0x2 854 HDIO_SET_WCACHE = 0x32b
855 IFF_TUN = 0x1 855 HDIO_SET_XFER = 0x306
856 IFF_TUN_EXCL = 0x8000 856 HDIO_TRISTATE_HWIF = 0x31b
857 IFF_UP = 0x1 857 HDIO_UNREGISTER_HWIF = 0x32a
858 IFF_VNET_HDR = 0x4000 858 HOSTFS_SUPER_MAGIC = 0xc0ffee
859 IFF_VOLATILE = 0x70c5a 859 HPFS_SUPER_MAGIC = 0xf995e849
860 IFNAMSIZ = 0x10 860 HUGETLBFS_MAGIC = 0x958458f6
861 IGNBRK = 0x1 861 HUPCL = 0x400
862 IGNCR = 0x80 862 IBSHIFT = 0x10
863 IGNPAR = 0x4 863 ICANON = 0x2
864 IMAXBEL = 0x2000 864 ICMPV6_FILTER = 0x1
865 INLCR = 0x40 865 ICRNL = 0x100
866 INPCK = 0x10 866 IEXTEN = 0x8000
867 IN_ACCESS = 0x1 867 IFA_F_DADFAILED = 0x8
868 IN_ALL_EVENTS = 0xfff 868 IFA_F_DEPRECATED = 0x20
869 IN_ATTRIB = 0x4 869 IFA_F_HOMEADDRESS = 0x10
870 IN_CLASSA_HOST = 0xffffff 870 IFA_F_MANAGETEMPADDR = 0x100
871 IN_CLASSA_MAX = 0x80 871 IFA_F_MCAUTOJOIN = 0x400
872 IN_CLASSA_NET = 0xff000000 872 IFA_F_NODAD = 0x2
873 IN_CLASSA_NSHIFT = 0x18 873 IFA_F_NOPREFIXROUTE = 0x200
874 IN_CLASSB_HOST = 0xffff 874 IFA_F_OPTIMISTIC = 0x4
875 IN_CLASSB_MAX = 0x10000 875 IFA_F_PERMANENT = 0x80
876 IN_CLASSB_NET = 0xffff0000 876 IFA_F_SECONDARY = 0x1
877 IN_CLASSB_NSHIFT = 0x10 877 IFA_F_STABLE_PRIVACY = 0x800
878 IN_CLASSC_HOST = 0xff 878 IFA_F_TEMPORARY = 0x1
879 IN_CLASSC_NET = 0xffffff00 879 IFA_F_TENTATIVE = 0x40
880 IN_CLASSC_NSHIFT = 0x8 880 IFA_MAX = 0xa
881 IN_CLOEXEC = 0x80000 881 IFF_ALLMULTI = 0x200
882 IN_CLOSE = 0x18 882 IFF_ATTACH_QUEUE = 0x200
883 IN_CLOSE_NOWRITE = 0x10 883 IFF_AUTOMEDIA = 0x4000
884 IN_CLOSE_WRITE = 0x8 884 IFF_BROADCAST = 0x2
885 IN_CREATE = 0x100 885 IFF_DEBUG = 0x4
886 IN_DELETE = 0x200 886 IFF_DETACH_QUEUE = 0x400
887 IN_DELETE_SELF = 0x400 887 IFF_DORMANT = 0x20000
888 IN_DONT_FOLLOW = 0x2000000 888 IFF_DYNAMIC = 0x8000
889 IN_EXCL_UNLINK = 0x4000000 889 IFF_ECHO = 0x40000
890 IN_IGNORED = 0x8000 890 IFF_LOOPBACK = 0x8
891 IN_ISDIR = 0x40000000 891 IFF_LOWER_UP = 0x10000
892 IN_LOOPBACKNET = 0x7f 892 IFF_MASTER = 0x400
893 IN_MASK_ADD = 0x20000000 893 IFF_MULTICAST = 0x1000
894 IN_MASK_CREATE = 0x10000000 894 IFF_MULTI_QUEUE = 0x100
895 IN_MODIFY = 0x2 895 IFF_NAPI = 0x10
896 IN_MOVE = 0xc0 896 IFF_NAPI_FRAGS = 0x20
897 IN_MOVED_FROM = 0x40 897 IFF_NOARP = 0x80
898 IN_MOVED_TO = 0x80 898 IFF_NOFILTER = 0x1000
899 IN_MOVE_SELF = 0x800 899 IFF_NOTRAILERS = 0x20
900 IN_NONBLOCK = 0x800 900 IFF_NO_PI = 0x1000
901 IN_ONESHOT = 0x80000000 901 IFF_ONE_QUEUE = 0x2000
902 IN_ONLYDIR = 0x1000000 902 IFF_PERSIST = 0x800
903 IN_OPEN = 0x20 903 IFF_POINTOPOINT = 0x10
904 IN_Q_OVERFLOW = 0x4000 904 IFF_PORTSEL = 0x2000
905 IN_UNMOUNT = 0x2000 905 IFF_PROMISC = 0x100
906 IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x7b9 906 IFF_RUNNING = 0x40
907 IPPROTO_AH = 0x33 907 IFF_SLAVE = 0x800
908 IPPROTO_BEETPH = 0x5e 908 IFF_TAP = 0x2
909 IPPROTO_COMP = 0x6c 909 IFF_TUN = 0x1
910 IPPROTO_DCCP = 0x21 910 IFF_TUN_EXCL = 0x8000
911 IPPROTO_DSTOPTS = 0x3c 911 IFF_UP = 0x1
912 IPPROTO_EGP = 0x8 912 IFF_VNET_HDR = 0x4000
913 IPPROTO_ENCAP = 0x62 913 IFF_VOLATILE = 0x70c5a
914 IPPROTO_ESP = 0x32 914 IFNAMSIZ = 0x10
915 IPPROTO_FRAGMENT = 0x2c 915 IGNBRK = 0x1
916 IPPROTO_GRE = 0x2f 916 IGNCR = 0x80
917 IPPROTO_HOPOPTS = 0x0 917 IGNPAR = 0x4
918 IPPROTO_ICMP = 0x1 918 IMAXBEL = 0x2000
919 IPPROTO_ICMPV6 = 0x3a 919 INLCR = 0x40
920 IPPROTO_IDP = 0x16 920 INPCK = 0x10
921 IPPROTO_IGMP = 0x2 921 IN_ACCESS = 0x1
922 IPPROTO_IP = 0x0 922 IN_ALL_EVENTS = 0xfff
923 IPPROTO_IPIP = 0x4 923 IN_ATTRIB = 0x4
924 IPPROTO_IPV6 = 0x29 924 IN_CLASSA_HOST = 0xffffff
925 IPPROTO_MH = 0x87 925 IN_CLASSA_MAX = 0x80
926 IPPROTO_MPLS = 0x89 926 IN_CLASSA_NET = 0xff000000
927 IPPROTO_MTP = 0x5c 927 IN_CLASSA_NSHIFT = 0x18
928 IPPROTO_NONE = 0x3b 928 IN_CLASSB_HOST = 0xffff
929 IPPROTO_PIM = 0x67 929 IN_CLASSB_MAX = 0x10000
930 IPPROTO_PUP = 0xc 930 IN_CLASSB_NET = 0xffff0000
931 IPPROTO_RAW = 0xff 931 IN_CLASSB_NSHIFT = 0x10
932 IPPROTO_ROUTING = 0x2b 932 IN_CLASSC_HOST = 0xff
933 IPPROTO_RSVP = 0x2e 933 IN_CLASSC_NET = 0xffffff00
934 IPPROTO_SCTP = 0x84 934 IN_CLASSC_NSHIFT = 0x8
935 IPPROTO_TCP = 0x6 935 IN_CLOEXEC = 0x80000
936 IPPROTO_TP = 0x1d 936 IN_CLOSE = 0x18
937 IPPROTO_UDP = 0x11 937 IN_CLOSE_NOWRITE = 0x10
938 IPPROTO_UDPLITE = 0x88 938 IN_CLOSE_WRITE = 0x8
939 IPV6_2292DSTOPTS = 0x4 939 IN_CREATE = 0x100
940 IPV6_2292HOPLIMIT = 0x8 940 IN_DELETE = 0x200
941 IPV6_2292HOPOPTS = 0x3 941 IN_DELETE_SELF = 0x400
942 IPV6_2292PKTINFO = 0x2 942 IN_DONT_FOLLOW = 0x2000000
943 IPV6_2292PKTOPTIONS = 0x6 943 IN_EXCL_UNLINK = 0x4000000
944 IPV6_2292RTHDR = 0x5 944 IN_IGNORED = 0x8000
945 IPV6_ADDRFORM = 0x1 945 IN_ISDIR = 0x40000000
946 IPV6_ADDR_PREFERENCES = 0x48 946 IN_LOOPBACKNET = 0x7f
947 IPV6_ADD_MEMBERSHIP = 0x14 947 IN_MASK_ADD = 0x20000000
948 IPV6_AUTHHDR = 0xa 948 IN_MASK_CREATE = 0x10000000
949 IPV6_AUTOFLOWLABEL = 0x46 949 IN_MODIFY = 0x2
950 IPV6_CHECKSUM = 0x7 950 IN_MOVE = 0xc0
951 IPV6_DONTFRAG = 0x3e 951 IN_MOVED_FROM = 0x40
952 IPV6_DROP_MEMBERSHIP = 0x15 952 IN_MOVED_TO = 0x80
953 IPV6_DSTOPTS = 0x3b 953 IN_MOVE_SELF = 0x800
954 IPV6_FREEBIND = 0x4e 954 IN_NONBLOCK = 0x800
955 IPV6_HDRINCL = 0x24 955 IN_ONESHOT = 0x80000000
956 IPV6_HOPLIMIT = 0x34 956 IN_ONLYDIR = 0x1000000
957 IPV6_HOPOPTS = 0x36 957 IN_OPEN = 0x20
958 IPV6_IPSEC_POLICY = 0x22 958 IN_Q_OVERFLOW = 0x4000
959 IPV6_JOIN_ANYCAST = 0x1b 959 IN_UNMOUNT = 0x2000
960 IPV6_JOIN_GROUP = 0x14 960 IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x7b9
961 IPV6_LEAVE_ANYCAST = 0x1c 961 IPPROTO_AH = 0x33
962 IPV6_LEAVE_GROUP = 0x15 962 IPPROTO_BEETPH = 0x5e
963 IPV6_MINHOPCOUNT = 0x49 963 IPPROTO_COMP = 0x6c
964 IPV6_MTU = 0x18 964 IPPROTO_DCCP = 0x21
965 IPV6_MTU_DISCOVER = 0x17 965 IPPROTO_DSTOPTS = 0x3c
966 IPV6_MULTICAST_ALL = 0x1d 966 IPPROTO_EGP = 0x8
967 IPV6_MULTICAST_HOPS = 0x12 967 IPPROTO_ENCAP = 0x62
968 IPV6_MULTICAST_IF = 0x11 968 IPPROTO_ESP = 0x32
969 IPV6_MULTICAST_LOOP = 0x13 969 IPPROTO_FRAGMENT = 0x2c
970 IPV6_NEXTHOP = 0x9 970 IPPROTO_GRE = 0x2f
971 IPV6_ORIGDSTADDR = 0x4a 971 IPPROTO_HOPOPTS = 0x0
972 IPV6_PATHMTU = 0x3d 972 IPPROTO_ICMP = 0x1
973 IPV6_PKTINFO = 0x32 973 IPPROTO_ICMPV6 = 0x3a
974 IPV6_PMTUDISC_DO = 0x2 974 IPPROTO_IDP = 0x16
975 IPV6_PMTUDISC_DONT = 0x0 975 IPPROTO_IGMP = 0x2
976 IPV6_PMTUDISC_INTERFACE = 0x4 976 IPPROTO_IP = 0x0
977 IPV6_PMTUDISC_OMIT = 0x5 977 IPPROTO_IPIP = 0x4
978 IPV6_PMTUDISC_PROBE = 0x3 978 IPPROTO_IPV6 = 0x29
979 IPV6_PMTUDISC_WANT = 0x1 979 IPPROTO_MH = 0x87
980 IPV6_RECVDSTOPTS = 0x3a 980 IPPROTO_MPLS = 0x89
981 IPV6_RECVERR = 0x19 981 IPPROTO_MTP = 0x5c
982 IPV6_RECVFRAGSIZE = 0x4d 982 IPPROTO_NONE = 0x3b
983 IPV6_RECVHOPLIMIT = 0x33 983 IPPROTO_PIM = 0x67
984 IPV6_RECVHOPOPTS = 0x35 984 IPPROTO_PUP = 0xc
985 IPV6_RECVORIGDSTADDR = 0x4a 985 IPPROTO_RAW = 0xff
986 IPV6_RECVPATHMTU = 0x3c 986 IPPROTO_ROUTING = 0x2b
987 IPV6_RECVPKTINFO = 0x31 987 IPPROTO_RSVP = 0x2e
988 IPV6_RECVRTHDR = 0x38 988 IPPROTO_SCTP = 0x84
989 IPV6_RECVTCLASS = 0x42 989 IPPROTO_TCP = 0x6
990 IPV6_ROUTER_ALERT = 0x16 990 IPPROTO_TP = 0x1d
991 IPV6_ROUTER_ALERT_ISOLATE = 0x1e 991 IPPROTO_UDP = 0x11
992 IPV6_RTHDR = 0x39 992 IPPROTO_UDPLITE = 0x88
993 IPV6_RTHDRDSTOPTS = 0x37 993 IPV6_2292DSTOPTS = 0x4
994 IPV6_RTHDR_LOOSE = 0x0 994 IPV6_2292HOPLIMIT = 0x8
995 IPV6_RTHDR_STRICT = 0x1 995 IPV6_2292HOPOPTS = 0x3
996 IPV6_RTHDR_TYPE_0 = 0x0 996 IPV6_2292PKTINFO = 0x2
997 IPV6_RXDSTOPTS = 0x3b 997 IPV6_2292PKTOPTIONS = 0x6
998 IPV6_RXHOPOPTS = 0x36 998 IPV6_2292RTHDR = 0x5
999 IPV6_TCLASS = 0x43 999 IPV6_ADDRFORM = 0x1
1000 IPV6_TRANSPARENT = 0x4b 1000 IPV6_ADDR_PREFERENCES = 0x48
1001 IPV6_UNICAST_HOPS = 0x10 1001 IPV6_ADD_MEMBERSHIP = 0x14
1002 IPV6_UNICAST_IF = 0x4c 1002 IPV6_AUTHHDR = 0xa
1003 IPV6_V6ONLY = 0x1a 1003 IPV6_AUTOFLOWLABEL = 0x46
1004 IPV6_XFRM_POLICY = 0x23 1004 IPV6_CHECKSUM = 0x7
1005 IP_ADD_MEMBERSHIP = 0x23 1005 IPV6_DONTFRAG = 0x3e
1006 IP_ADD_SOURCE_MEMBERSHIP = 0x27 1006 IPV6_DROP_MEMBERSHIP = 0x15
1007 IP_BIND_ADDRESS_NO_PORT = 0x18 1007 IPV6_DSTOPTS = 0x3b
1008 IP_BLOCK_SOURCE = 0x26 1008 IPV6_FREEBIND = 0x4e
1009 IP_CHECKSUM = 0x17 1009 IPV6_HDRINCL = 0x24
1010 IP_DEFAULT_MULTICAST_LOOP = 0x1 1010 IPV6_HOPLIMIT = 0x34
1011 IP_DEFAULT_MULTICAST_TTL = 0x1 1011 IPV6_HOPOPTS = 0x36
1012 IP_DF = 0x4000 1012 IPV6_IPSEC_POLICY = 0x22
1013 IP_DROP_MEMBERSHIP = 0x24 1013 IPV6_JOIN_ANYCAST = 0x1b
1014 IP_DROP_SOURCE_MEMBERSHIP = 0x28 1014 IPV6_JOIN_GROUP = 0x14
1015 IP_FREEBIND = 0xf 1015 IPV6_LEAVE_ANYCAST = 0x1c
1016 IP_HDRINCL = 0x3 1016 IPV6_LEAVE_GROUP = 0x15
1017 IP_IPSEC_POLICY = 0x10 1017 IPV6_MINHOPCOUNT = 0x49
1018 IP_MAXPACKET = 0xffff 1018 IPV6_MTU = 0x18
1019 IP_MAX_MEMBERSHIPS = 0x14 1019 IPV6_MTU_DISCOVER = 0x17
1020 IP_MF = 0x2000 1020 IPV6_MULTICAST_ALL = 0x1d
1021 IP_MINTTL = 0x15 1021 IPV6_MULTICAST_HOPS = 0x12
1022 IP_MSFILTER = 0x29 1022 IPV6_MULTICAST_IF = 0x11
1023 IP_MSS = 0x240 1023 IPV6_MULTICAST_LOOP = 0x13
1024 IP_MTU = 0xe 1024 IPV6_NEXTHOP = 0x9
1025 IP_MTU_DISCOVER = 0xa 1025 IPV6_ORIGDSTADDR = 0x4a
1026 IP_MULTICAST_ALL = 0x31 1026 IPV6_PATHMTU = 0x3d
1027 IP_MULTICAST_IF = 0x20 1027 IPV6_PKTINFO = 0x32
1028 IP_MULTICAST_LOOP = 0x22 1028 IPV6_PMTUDISC_DO = 0x2
1029 IP_MULTICAST_TTL = 0x21 1029 IPV6_PMTUDISC_DONT = 0x0
1030 IP_NODEFRAG = 0x16 1030 IPV6_PMTUDISC_INTERFACE = 0x4
1031 IP_OFFMASK = 0x1fff 1031 IPV6_PMTUDISC_OMIT = 0x5
1032 IP_OPTIONS = 0x4 1032 IPV6_PMTUDISC_PROBE = 0x3
1033 IP_ORIGDSTADDR = 0x14 1033 IPV6_PMTUDISC_WANT = 0x1
1034 IP_PASSSEC = 0x12 1034 IPV6_RECVDSTOPTS = 0x3a
1035 IP_PKTINFO = 0x8 1035 IPV6_RECVERR = 0x19
1036 IP_PKTOPTIONS = 0x9 1036 IPV6_RECVFRAGSIZE = 0x4d
1037 IP_PMTUDISC = 0xa 1037 IPV6_RECVHOPLIMIT = 0x33
1038 IP_PMTUDISC_DO = 0x2 1038 IPV6_RECVHOPOPTS = 0x35
1039 IP_PMTUDISC_DONT = 0x0 1039 IPV6_RECVORIGDSTADDR = 0x4a
1040 IP_PMTUDISC_INTERFACE = 0x4 1040 IPV6_RECVPATHMTU = 0x3c
1041 IP_PMTUDISC_OMIT = 0x5 1041 IPV6_RECVPKTINFO = 0x31
1042 IP_PMTUDISC_PROBE = 0x3 1042 IPV6_RECVRTHDR = 0x38
1043 IP_PMTUDISC_WANT = 0x1 1043 IPV6_RECVTCLASS = 0x42
1044 IP_RECVERR = 0xb 1044 IPV6_ROUTER_ALERT = 0x16
1045 IP_RECVFRAGSIZE = 0x19 1045 IPV6_ROUTER_ALERT_ISOLATE = 0x1e
1046 IP_RECVOPTS = 0x6 1046 IPV6_RTHDR = 0x39
1047 IP_RECVORIGDSTADDR = 0x14 1047 IPV6_RTHDRDSTOPTS = 0x37
1048 IP_RECVRETOPTS = 0x7 1048 IPV6_RTHDR_LOOSE = 0x0
1049 IP_RECVTOS = 0xd 1049 IPV6_RTHDR_STRICT = 0x1
1050 IP_RECVTTL = 0xc 1050 IPV6_RTHDR_TYPE_0 = 0x0
1051 IP_RETOPTS = 0x7 1051 IPV6_RXDSTOPTS = 0x3b
1052 IP_RF = 0x8000 1052 IPV6_RXHOPOPTS = 0x36
1053 IP_ROUTER_ALERT = 0x5 1053 IPV6_TCLASS = 0x43
1054 IP_TOS = 0x1 1054 IPV6_TRANSPARENT = 0x4b
1055 IP_TRANSPARENT = 0x13 1055 IPV6_UNICAST_HOPS = 0x10
1056 IP_TTL = 0x2 1056 IPV6_UNICAST_IF = 0x4c
1057 IP_UNBLOCK_SOURCE = 0x25 1057 IPV6_V6ONLY = 0x1a
1058 IP_UNICAST_IF = 0x32 1058 IPV6_XFRM_POLICY = 0x23
1059 IP_XFRM_POLICY = 0x11 1059 IP_ADD_MEMBERSHIP = 0x23
1060 ISIG = 0x1 1060 IP_ADD_SOURCE_MEMBERSHIP = 0x27
1061 ISOFS_SUPER_MAGIC = 0x9660 1061 IP_BIND_ADDRESS_NO_PORT = 0x18
1062 ISTRIP = 0x20 1062 IP_BLOCK_SOURCE = 0x26
1063 IUCLC = 0x200 1063 IP_CHECKSUM = 0x17
1064 IUTF8 = 0x4000 1064 IP_DEFAULT_MULTICAST_LOOP = 0x1
1065 IXANY = 0x800 1065 IP_DEFAULT_MULTICAST_TTL = 0x1
1066 IXOFF = 0x1000 1066 IP_DF = 0x4000
1067 IXON = 0x400 1067 IP_DROP_MEMBERSHIP = 0x24
1068 JFFS2_SUPER_MAGIC = 0x72b6 1068 IP_DROP_SOURCE_MEMBERSHIP = 0x28
1069 KEXEC_ARCH_386 = 0x30000 1069 IP_FREEBIND = 0xf
1070 KEXEC_ARCH_68K = 0x40000 1070 IP_HDRINCL = 0x3
1071 KEXEC_ARCH_AARCH64 = 0xb70000 1071 IP_IPSEC_POLICY = 0x10
1072 KEXEC_ARCH_ARM = 0x280000 1072 IP_MAXPACKET = 0xffff
1073 KEXEC_ARCH_DEFAULT = 0x0 1073 IP_MAX_MEMBERSHIPS = 0x14
1074 KEXEC_ARCH_IA_64 = 0x320000 1074 IP_MF = 0x2000
1075 KEXEC_ARCH_MASK = 0xffff0000 1075 IP_MINTTL = 0x15
1076 KEXEC_ARCH_MIPS = 0x80000 1076 IP_MSFILTER = 0x29
1077 KEXEC_ARCH_MIPS_LE = 0xa0000 1077 IP_MSS = 0x240
1078 KEXEC_ARCH_PPC = 0x140000 1078 IP_MTU = 0xe
1079 KEXEC_ARCH_PPC64 = 0x150000 1079 IP_MTU_DISCOVER = 0xa
1080 KEXEC_ARCH_S390 = 0x160000 1080 IP_MULTICAST_ALL = 0x31
1081 KEXEC_ARCH_SH = 0x2a0000 1081 IP_MULTICAST_IF = 0x20
1082 KEXEC_ARCH_X86_64 = 0x3e0000 1082 IP_MULTICAST_LOOP = 0x22
1083 KEXEC_FILE_NO_INITRAMFS = 0x4 1083 IP_MULTICAST_TTL = 0x21
1084 KEXEC_FILE_ON_CRASH = 0x2 1084 IP_NODEFRAG = 0x16
1085 KEXEC_FILE_UNLOAD = 0x1 1085 IP_OFFMASK = 0x1fff
1086 KEXEC_ON_CRASH = 0x1 1086 IP_OPTIONS = 0x4
1087 KEXEC_PRESERVE_CONTEXT = 0x2 1087 IP_ORIGDSTADDR = 0x14
1088 KEXEC_SEGMENT_MAX = 0x10 1088 IP_PASSSEC = 0x12
1089 KEYCTL_ASSUME_AUTHORITY = 0x10 1089 IP_PKTINFO = 0x8
1090 KEYCTL_CHOWN = 0x4 1090 IP_PKTOPTIONS = 0x9
1091 KEYCTL_CLEAR = 0x7 1091 IP_PMTUDISC = 0xa
1092 KEYCTL_DESCRIBE = 0x6 1092 IP_PMTUDISC_DO = 0x2
1093 KEYCTL_DH_COMPUTE = 0x17 1093 IP_PMTUDISC_DONT = 0x0
1094 KEYCTL_GET_KEYRING_ID = 0x0 1094 IP_PMTUDISC_INTERFACE = 0x4
1095 KEYCTL_GET_PERSISTENT = 0x16 1095 IP_PMTUDISC_OMIT = 0x5
1096 KEYCTL_GET_SECURITY = 0x11 1096 IP_PMTUDISC_PROBE = 0x3
1097 KEYCTL_INSTANTIATE = 0xc 1097 IP_PMTUDISC_WANT = 0x1
1098 KEYCTL_INSTANTIATE_IOV = 0x14 1098 IP_RECVERR = 0xb
1099 KEYCTL_INVALIDATE = 0x15 1099 IP_RECVFRAGSIZE = 0x19
1100 KEYCTL_JOIN_SESSION_KEYRING = 0x1 1100 IP_RECVOPTS = 0x6
1101 KEYCTL_LINK = 0x8 1101 IP_RECVORIGDSTADDR = 0x14
1102 KEYCTL_NEGATE = 0xd 1102 IP_RECVRETOPTS = 0x7
1103 KEYCTL_PKEY_DECRYPT = 0x1a 1103 IP_RECVTOS = 0xd
1104 KEYCTL_PKEY_ENCRYPT = 0x19 1104 IP_RECVTTL = 0xc
1105 KEYCTL_PKEY_QUERY = 0x18 1105 IP_RETOPTS = 0x7
1106 KEYCTL_PKEY_SIGN = 0x1b 1106 IP_RF = 0x8000
1107 KEYCTL_PKEY_VERIFY = 0x1c 1107 IP_ROUTER_ALERT = 0x5
1108 KEYCTL_READ = 0xb 1108 IP_TOS = 0x1
1109 KEYCTL_REJECT = 0x13 1109 IP_TRANSPARENT = 0x13
1110 KEYCTL_RESTRICT_KEYRING = 0x1d 1110 IP_TTL = 0x2
1111 KEYCTL_REVOKE = 0x3 1111 IP_UNBLOCK_SOURCE = 0x25
1112 KEYCTL_SEARCH = 0xa 1112 IP_UNICAST_IF = 0x32
1113 KEYCTL_SESSION_TO_PARENT = 0x12 1113 IP_XFRM_POLICY = 0x11
1114 KEYCTL_SETPERM = 0x5 1114 ISIG = 0x1
1115 KEYCTL_SET_REQKEY_KEYRING = 0xe 1115 ISOFS_SUPER_MAGIC = 0x9660
1116 KEYCTL_SET_TIMEOUT = 0xf 1116 ISTRIP = 0x20
1117 KEYCTL_SUPPORTS_DECRYPT = 0x2 1117 IUCLC = 0x200
1118 KEYCTL_SUPPORTS_ENCRYPT = 0x1 1118 IUTF8 = 0x4000
1119 KEYCTL_SUPPORTS_SIGN = 0x4 1119 IXANY = 0x800
1120 KEYCTL_SUPPORTS_VERIFY = 0x8 1120 IXOFF = 0x1000
1121 KEYCTL_UNLINK = 0x9 1121 IXON = 0x400
1122 KEYCTL_UPDATE = 0x2 1122 JFFS2_SUPER_MAGIC = 0x72b6
1123 KEY_REQKEY_DEFL_DEFAULT = 0x0 1123 KEXEC_ARCH_386 = 0x30000
1124 KEY_REQKEY_DEFL_GROUP_KEYRING = 0x6 1124 KEXEC_ARCH_68K = 0x40000
1125 KEY_REQKEY_DEFL_NO_CHANGE = -0x1 1125 KEXEC_ARCH_AARCH64 = 0xb70000
1126 KEY_REQKEY_DEFL_PROCESS_KEYRING = 0x2 1126 KEXEC_ARCH_ARM = 0x280000
1127 KEY_REQKEY_DEFL_REQUESTOR_KEYRING = 0x7 1127 KEXEC_ARCH_DEFAULT = 0x0
1128 KEY_REQKEY_DEFL_SESSION_KEYRING = 0x3 1128 KEXEC_ARCH_IA_64 = 0x320000
1129 KEY_REQKEY_DEFL_THREAD_KEYRING = 0x1 1129 KEXEC_ARCH_MASK = 0xffff0000
1130 KEY_REQKEY_DEFL_USER_KEYRING = 0x4 1130 KEXEC_ARCH_MIPS = 0x80000
1131 KEY_REQKEY_DEFL_USER_SESSION_KEYRING = 0x5 1131 KEXEC_ARCH_MIPS_LE = 0xa0000
1132 KEY_SPEC_GROUP_KEYRING = -0x6 1132 KEXEC_ARCH_PARISC = 0xf0000
1133 KEY_SPEC_PROCESS_KEYRING = -0x2 1133 KEXEC_ARCH_PPC = 0x140000
1134 KEY_SPEC_REQKEY_AUTH_KEY = -0x7 1134 KEXEC_ARCH_PPC64 = 0x150000
1135 KEY_SPEC_REQUESTOR_KEYRING = -0x8 1135 KEXEC_ARCH_S390 = 0x160000
1136 KEY_SPEC_SESSION_KEYRING = -0x3 1136 KEXEC_ARCH_SH = 0x2a0000
1137 KEY_SPEC_THREAD_KEYRING = -0x1 1137 KEXEC_ARCH_X86_64 = 0x3e0000
1138 KEY_SPEC_USER_KEYRING = -0x4 1138 KEXEC_FILE_NO_INITRAMFS = 0x4
1139 KEY_SPEC_USER_SESSION_KEYRING = -0x5 1139 KEXEC_FILE_ON_CRASH = 0x2
1140 LINUX_REBOOT_CMD_CAD_OFF = 0x0 1140 KEXEC_FILE_UNLOAD = 0x1
1141 LINUX_REBOOT_CMD_CAD_ON = 0x89abcdef 1141 KEXEC_ON_CRASH = 0x1
1142 LINUX_REBOOT_CMD_HALT = 0xcdef0123 1142 KEXEC_PRESERVE_CONTEXT = 0x2
1143 LINUX_REBOOT_CMD_KEXEC = 0x45584543 1143 KEXEC_SEGMENT_MAX = 0x10
1144 LINUX_REBOOT_CMD_POWER_OFF = 0x4321fedc 1144 KEYCTL_ASSUME_AUTHORITY = 0x10
1145 LINUX_REBOOT_CMD_RESTART = 0x1234567 1145 KEYCTL_CAPABILITIES = 0x1f
1146 LINUX_REBOOT_CMD_RESTART2 = 0xa1b2c3d4 1146 KEYCTL_CAPS0_BIG_KEY = 0x10
1147 LINUX_REBOOT_CMD_SW_SUSPEND = 0xd000fce2 1147 KEYCTL_CAPS0_CAPABILITIES = 0x1
1148 LINUX_REBOOT_MAGIC1 = 0xfee1dead 1148 KEYCTL_CAPS0_DIFFIE_HELLMAN = 0x4
1149 LINUX_REBOOT_MAGIC2 = 0x28121969 1149 KEYCTL_CAPS0_INVALIDATE = 0x20
1150 LOCK_EX = 0x2 1150 KEYCTL_CAPS0_MOVE = 0x80
1151 LOCK_NB = 0x4 1151 KEYCTL_CAPS0_PERSISTENT_KEYRINGS = 0x2
1152 LOCK_SH = 0x1 1152 KEYCTL_CAPS0_PUBLIC_KEY = 0x8
1153 LOCK_UN = 0x8 1153 KEYCTL_CAPS0_RESTRICT_KEYRING = 0x40
1154 LOOP_CLR_FD = 0x4c01 1154 KEYCTL_CAPS1_NS_KEYRING_NAME = 0x1
1155 LOOP_CTL_ADD = 0x4c80 1155 KEYCTL_CAPS1_NS_KEY_TAG = 0x2
1156 LOOP_CTL_GET_FREE = 0x4c82 1156 KEYCTL_CHOWN = 0x4
1157 LOOP_CTL_REMOVE = 0x4c81 1157 KEYCTL_CLEAR = 0x7
1158 LOOP_GET_STATUS = 0x4c03 1158 KEYCTL_DESCRIBE = 0x6
1159 LOOP_GET_STATUS64 = 0x4c05 1159 KEYCTL_DH_COMPUTE = 0x17
1160 LOOP_SET_BLOCK_SIZE = 0x4c09 1160 KEYCTL_GET_KEYRING_ID = 0x0
1161 LOOP_SET_CAPACITY = 0x4c07 1161 KEYCTL_GET_PERSISTENT = 0x16
1162 LOOP_SET_DIRECT_IO = 0x4c08 1162 KEYCTL_GET_SECURITY = 0x11
1163 LOOP_SET_FD = 0x4c00 1163 KEYCTL_INSTANTIATE = 0xc
1164 LOOP_SET_STATUS = 0x4c02 1164 KEYCTL_INSTANTIATE_IOV = 0x14
1165 LOOP_SET_STATUS64 = 0x4c04 1165 KEYCTL_INVALIDATE = 0x15
1166 LO_KEY_SIZE = 0x20 1166 KEYCTL_JOIN_SESSION_KEYRING = 0x1
1167 LO_NAME_SIZE = 0x40 1167 KEYCTL_LINK = 0x8
1168 MADV_DODUMP = 0x11 1168 KEYCTL_MOVE = 0x1e
1169 MADV_DOFORK = 0xb 1169 KEYCTL_MOVE_EXCL = 0x1
1170 MADV_DONTDUMP = 0x10 1170 KEYCTL_NEGATE = 0xd
1171 MADV_DONTFORK = 0xa 1171 KEYCTL_PKEY_DECRYPT = 0x1a
1172 MADV_DONTNEED = 0x4 1172 KEYCTL_PKEY_ENCRYPT = 0x19
1173 MADV_FREE = 0x8 1173 KEYCTL_PKEY_QUERY = 0x18
1174 MADV_HUGEPAGE = 0xe 1174 KEYCTL_PKEY_SIGN = 0x1b
1175 MADV_HWPOISON = 0x64 1175 KEYCTL_PKEY_VERIFY = 0x1c
1176 MADV_KEEPONFORK = 0x13 1176 KEYCTL_READ = 0xb
1177 MADV_MERGEABLE = 0xc 1177 KEYCTL_REJECT = 0x13
1178 MADV_NOHUGEPAGE = 0xf 1178 KEYCTL_RESTRICT_KEYRING = 0x1d
1179 MADV_NORMAL = 0x0 1179 KEYCTL_REVOKE = 0x3
1180 MADV_RANDOM = 0x1 1180 KEYCTL_SEARCH = 0xa
1181 MADV_REMOVE = 0x9 1181 KEYCTL_SESSION_TO_PARENT = 0x12
1182 MADV_SEQUENTIAL = 0x2 1182 KEYCTL_SETPERM = 0x5
1183 MADV_UNMERGEABLE = 0xd 1183 KEYCTL_SET_REQKEY_KEYRING = 0xe
1184 MADV_WILLNEED = 0x3 1184 KEYCTL_SET_TIMEOUT = 0xf
1185 MADV_WIPEONFORK = 0x12 1185 KEYCTL_SUPPORTS_DECRYPT = 0x2
1186 MAP_32BIT = 0x40 1186 KEYCTL_SUPPORTS_ENCRYPT = 0x1
1187 MAP_ANON = 0x20 1187 KEYCTL_SUPPORTS_SIGN = 0x4
1188 MAP_ANONYMOUS = 0x20 1188 KEYCTL_SUPPORTS_VERIFY = 0x8
1189 MAP_DENYWRITE = 0x800 1189 KEYCTL_UNLINK = 0x9
1190 MAP_EXECUTABLE = 0x1000 1190 KEYCTL_UPDATE = 0x2
1191 MAP_FILE = 0x0 1191 KEY_REQKEY_DEFL_DEFAULT = 0x0
1192 MAP_FIXED = 0x10 1192 KEY_REQKEY_DEFL_GROUP_KEYRING = 0x6
1193 MAP_FIXED_NOREPLACE = 0x100000 1193 KEY_REQKEY_DEFL_NO_CHANGE = -0x1
1194 MAP_GROWSDOWN = 0x100 1194 KEY_REQKEY_DEFL_PROCESS_KEYRING = 0x2
1195 MAP_HUGETLB = 0x40000 1195 KEY_REQKEY_DEFL_REQUESTOR_KEYRING = 0x7
1196 MAP_HUGE_MASK = 0x3f 1196 KEY_REQKEY_DEFL_SESSION_KEYRING = 0x3
1197 MAP_HUGE_SHIFT = 0x1a 1197 KEY_REQKEY_DEFL_THREAD_KEYRING = 0x1
1198 MAP_LOCKED = 0x2000 1198 KEY_REQKEY_DEFL_USER_KEYRING = 0x4
1199 MAP_NONBLOCK = 0x10000 1199 KEY_REQKEY_DEFL_USER_SESSION_KEYRING = 0x5
1200 MAP_NORESERVE = 0x4000 1200 KEY_SPEC_GROUP_KEYRING = -0x6
1201 MAP_POPULATE = 0x8000 1201 KEY_SPEC_PROCESS_KEYRING = -0x2
1202 MAP_PRIVATE = 0x2 1202 KEY_SPEC_REQKEY_AUTH_KEY = -0x7
1203 MAP_SHARED = 0x1 1203 KEY_SPEC_REQUESTOR_KEYRING = -0x8
1204 MAP_SHARED_VALIDATE = 0x3 1204 KEY_SPEC_SESSION_KEYRING = -0x3
1205 MAP_STACK = 0x20000 1205 KEY_SPEC_THREAD_KEYRING = -0x1
1206 MAP_SYNC = 0x80000 1206 KEY_SPEC_USER_KEYRING = -0x4
1207 MAP_TYPE = 0xf 1207 KEY_SPEC_USER_SESSION_KEYRING = -0x5
1208 MCAST_BLOCK_SOURCE = 0x2b 1208 LINUX_REBOOT_CMD_CAD_OFF = 0x0
1209 MCAST_EXCLUDE = 0x0 1209 LINUX_REBOOT_CMD_CAD_ON = 0x89abcdef
1210 MCAST_INCLUDE = 0x1 1210 LINUX_REBOOT_CMD_HALT = 0xcdef0123
1211 MCAST_JOIN_GROUP = 0x2a 1211 LINUX_REBOOT_CMD_KEXEC = 0x45584543
1212 MCAST_JOIN_SOURCE_GROUP = 0x2e 1212 LINUX_REBOOT_CMD_POWER_OFF = 0x4321fedc
1213 MCAST_LEAVE_GROUP = 0x2d 1213 LINUX_REBOOT_CMD_RESTART = 0x1234567
1214 MCAST_LEAVE_SOURCE_GROUP = 0x2f 1214 LINUX_REBOOT_CMD_RESTART2 = 0xa1b2c3d4
1215 MCAST_MSFILTER = 0x30 1215 LINUX_REBOOT_CMD_SW_SUSPEND = 0xd000fce2
1216 MCAST_UNBLOCK_SOURCE = 0x2c 1216 LINUX_REBOOT_MAGIC1 = 0xfee1dead
1217 MCL_CURRENT = 0x1 1217 LINUX_REBOOT_MAGIC2 = 0x28121969
1218 MCL_FUTURE = 0x2 1218 LOCK_EX = 0x2
1219 MCL_ONFAULT = 0x4 1219 LOCK_NB = 0x4
1220 MFD_ALLOW_SEALING = 0x2 1220 LOCK_SH = 0x1
1221 MFD_CLOEXEC = 0x1 1221 LOCK_UN = 0x8
1222 MFD_HUGETLB = 0x4 1222 LOOP_CLR_FD = 0x4c01
1223 MFD_HUGE_16GB = -0x78000000 1223 LOOP_CTL_ADD = 0x4c80
1224 MFD_HUGE_16MB = 0x60000000 1224 LOOP_CTL_GET_FREE = 0x4c82
1225 MFD_HUGE_1GB = 0x78000000 1225 LOOP_CTL_REMOVE = 0x4c81
1226 MFD_HUGE_1MB = 0x50000000 1226 LOOP_GET_STATUS = 0x4c03
1227 MFD_HUGE_256MB = 0x70000000 1227 LOOP_GET_STATUS64 = 0x4c05
1228 MFD_HUGE_2GB = 0x7c000000 1228 LOOP_SET_BLOCK_SIZE = 0x4c09
1229 MFD_HUGE_2MB = 0x54000000 1229 LOOP_SET_CAPACITY = 0x4c07
1230 MFD_HUGE_32MB = 0x64000000 1230 LOOP_SET_DIRECT_IO = 0x4c08
1231 MFD_HUGE_512KB = 0x4c000000 1231 LOOP_SET_FD = 0x4c00
1232 MFD_HUGE_512MB = 0x74000000 1232 LOOP_SET_STATUS = 0x4c02
1233 MFD_HUGE_64KB = 0x40000000 1233 LOOP_SET_STATUS64 = 0x4c04
1234 MFD_HUGE_8MB = 0x5c000000 1234 LO_KEY_SIZE = 0x20
1235 MFD_HUGE_MASK = 0x3f 1235 LO_NAME_SIZE = 0x40
1236 MFD_HUGE_SHIFT = 0x1a 1236 MADV_COLD = 0x14
1237 MINIX2_SUPER_MAGIC = 0x2468 1237 MADV_DODUMP = 0x11
1238 MINIX2_SUPER_MAGIC2 = 0x2478 1238 MADV_DOFORK = 0xb
1239 MINIX3_SUPER_MAGIC = 0x4d5a 1239 MADV_DONTDUMP = 0x10
1240 MINIX_SUPER_MAGIC = 0x137f 1240 MADV_DONTFORK = 0xa
1241 MINIX_SUPER_MAGIC2 = 0x138f 1241 MADV_DONTNEED = 0x4
1242 MNT_DETACH = 0x2 1242 MADV_FREE = 0x8
1243 MNT_EXPIRE = 0x4 1243 MADV_HUGEPAGE = 0xe
1244 MNT_FORCE = 0x1 1244 MADV_HWPOISON = 0x64
1245 MODULE_INIT_IGNORE_MODVERSIONS = 0x1 1245 MADV_KEEPONFORK = 0x13
1246 MODULE_INIT_IGNORE_VERMAGIC = 0x2 1246 MADV_MERGEABLE = 0xc
1247 MSDOS_SUPER_MAGIC = 0x4d44 1247 MADV_NOHUGEPAGE = 0xf
1248 MSG_BATCH = 0x40000 1248 MADV_NORMAL = 0x0
1249 MSG_CMSG_CLOEXEC = 0x40000000 1249 MADV_PAGEOUT = 0x15
1250 MSG_CONFIRM = 0x800 1250 MADV_RANDOM = 0x1
1251 MSG_CTRUNC = 0x8 1251 MADV_REMOVE = 0x9
1252 MSG_DONTROUTE = 0x4 1252 MADV_SEQUENTIAL = 0x2
1253 MSG_DONTWAIT = 0x40 1253 MADV_UNMERGEABLE = 0xd
1254 MSG_EOR = 0x80 1254 MADV_WILLNEED = 0x3
1255 MSG_ERRQUEUE = 0x2000 1255 MADV_WIPEONFORK = 0x12
1256 MSG_FASTOPEN = 0x20000000 1256 MAP_32BIT = 0x40
1257 MSG_FIN = 0x200 1257 MAP_ANON = 0x20
1258 MSG_MORE = 0x8000 1258 MAP_ANONYMOUS = 0x20
1259 MSG_NOSIGNAL = 0x4000 1259 MAP_DENYWRITE = 0x800
1260 MSG_OOB = 0x1 1260 MAP_EXECUTABLE = 0x1000
1261 MSG_PEEK = 0x2 1261 MAP_FILE = 0x0
1262 MSG_PROXY = 0x10 1262 MAP_FIXED = 0x10
1263 MSG_RST = 0x1000 1263 MAP_FIXED_NOREPLACE = 0x100000
1264 MSG_SYN = 0x400 1264 MAP_GROWSDOWN = 0x100
1265 MSG_TRUNC = 0x20 1265 MAP_HUGETLB = 0x40000
1266 MSG_TRYHARD = 0x4 1266 MAP_HUGE_MASK = 0x3f
1267 MSG_WAITALL = 0x100 1267 MAP_HUGE_SHIFT = 0x1a
1268 MSG_WAITFORONE = 0x10000 1268 MAP_LOCKED = 0x2000
1269 MSG_ZEROCOPY = 0x4000000 1269 MAP_NONBLOCK = 0x10000
1270 MS_ACTIVE = 0x40000000 1270 MAP_NORESERVE = 0x4000
1271 MS_ASYNC = 0x1 1271 MAP_POPULATE = 0x8000
1272 MS_BIND = 0x1000 1272 MAP_PRIVATE = 0x2
1273 MS_BORN = 0x20000000 1273 MAP_SHARED = 0x1
1274 MS_DIRSYNC = 0x80 1274 MAP_SHARED_VALIDATE = 0x3
1275 MS_INVALIDATE = 0x2 1275 MAP_STACK = 0x20000
1276 MS_I_VERSION = 0x800000 1276 MAP_SYNC = 0x80000
1277 MS_KERNMOUNT = 0x400000 1277 MAP_TYPE = 0xf
1278 MS_LAZYTIME = 0x2000000 1278 MCAST_BLOCK_SOURCE = 0x2b
1279 MS_MANDLOCK = 0x40 1279 MCAST_EXCLUDE = 0x0
1280 MS_MGC_MSK = 0xffff0000 1280 MCAST_INCLUDE = 0x1
1281 MS_MGC_VAL = 0xc0ed0000 1281 MCAST_JOIN_GROUP = 0x2a
1282 MS_MOVE = 0x2000 1282 MCAST_JOIN_SOURCE_GROUP = 0x2e
1283 MS_NOATIME = 0x400 1283 MCAST_LEAVE_GROUP = 0x2d
1284 MS_NODEV = 0x4 1284 MCAST_LEAVE_SOURCE_GROUP = 0x2f
1285 MS_NODIRATIME = 0x800 1285 MCAST_MSFILTER = 0x30
1286 MS_NOEXEC = 0x8 1286 MCAST_UNBLOCK_SOURCE = 0x2c
1287 MS_NOREMOTELOCK = 0x8000000 1287 MCL_CURRENT = 0x1
1288 MS_NOSEC = 0x10000000 1288 MCL_FUTURE = 0x2
1289 MS_NOSUID = 0x2 1289 MCL_ONFAULT = 0x4
1290 MS_NOUSER = -0x80000000 1290 MFD_ALLOW_SEALING = 0x2
1291 MS_POSIXACL = 0x10000 1291 MFD_CLOEXEC = 0x1
1292 MS_PRIVATE = 0x40000 1292 MFD_HUGETLB = 0x4
1293 MS_RDONLY = 0x1 1293 MFD_HUGE_16GB = -0x78000000
1294 MS_REC = 0x4000 1294 MFD_HUGE_16MB = 0x60000000
1295 MS_RELATIME = 0x200000 1295 MFD_HUGE_1GB = 0x78000000
1296 MS_REMOUNT = 0x20 1296 MFD_HUGE_1MB = 0x50000000
1297 MS_RMT_MASK = 0x2800051 1297 MFD_HUGE_256MB = 0x70000000
1298 MS_SHARED = 0x100000 1298 MFD_HUGE_2GB = 0x7c000000
1299 MS_SILENT = 0x8000 1299 MFD_HUGE_2MB = 0x54000000
1300 MS_SLAVE = 0x80000 1300 MFD_HUGE_32MB = 0x64000000
1301 MS_STRICTATIME = 0x1000000 1301 MFD_HUGE_512KB = 0x4c000000
1302 MS_SUBMOUNT = 0x4000000 1302 MFD_HUGE_512MB = 0x74000000
1303 MS_SYNC = 0x4 1303 MFD_HUGE_64KB = 0x40000000
1304 MS_SYNCHRONOUS = 0x10 1304 MFD_HUGE_8MB = 0x5c000000
1305 MS_UNBINDABLE = 0x20000 1305 MFD_HUGE_MASK = 0x3f
1306 MS_VERBOSE = 0x8000 1306 MFD_HUGE_SHIFT = 0x1a
1307 MTD_INODE_FS_MAGIC = 0x11307854 1307 MINIX2_SUPER_MAGIC = 0x2468
1308 NAME_MAX = 0xff 1308 MINIX2_SUPER_MAGIC2 = 0x2478
1309 NCP_SUPER_MAGIC = 0x564c 1309 MINIX3_SUPER_MAGIC = 0x4d5a
1310 NETLINK_ADD_MEMBERSHIP = 0x1 1310 MINIX_SUPER_MAGIC = 0x137f
1311 NETLINK_AUDIT = 0x9 1311 MINIX_SUPER_MAGIC2 = 0x138f
1312 NETLINK_BROADCAST_ERROR = 0x4 1312 MNT_DETACH = 0x2
1313 NETLINK_CAP_ACK = 0xa 1313 MNT_EXPIRE = 0x4
1314 NETLINK_CONNECTOR = 0xb 1314 MNT_FORCE = 0x1
1315 NETLINK_CRYPTO = 0x15 1315 MODULE_INIT_IGNORE_MODVERSIONS = 0x1
1316 NETLINK_DNRTMSG = 0xe 1316 MODULE_INIT_IGNORE_VERMAGIC = 0x2
1317 NETLINK_DROP_MEMBERSHIP = 0x2 1317 MSDOS_SUPER_MAGIC = 0x4d44
1318 NETLINK_ECRYPTFS = 0x13 1318 MSG_BATCH = 0x40000
1319 NETLINK_EXT_ACK = 0xb 1319 MSG_CMSG_CLOEXEC = 0x40000000
1320 NETLINK_FIB_LOOKUP = 0xa 1320 MSG_CONFIRM = 0x800
1321 NETLINK_FIREWALL = 0x3 1321 MSG_CTRUNC = 0x8
1322 NETLINK_GENERIC = 0x10 1322 MSG_DONTROUTE = 0x4
1323 NETLINK_GET_STRICT_CHK = 0xc 1323 MSG_DONTWAIT = 0x40
1324 NETLINK_INET_DIAG = 0x4 1324 MSG_EOR = 0x80
1325 NETLINK_IP6_FW = 0xd 1325 MSG_ERRQUEUE = 0x2000
1326 NETLINK_ISCSI = 0x8 1326 MSG_FASTOPEN = 0x20000000
1327 NETLINK_KOBJECT_UEVENT = 0xf 1327 MSG_FIN = 0x200
1328 NETLINK_LISTEN_ALL_NSID = 0x8 1328 MSG_MORE = 0x8000
1329 NETLINK_LIST_MEMBERSHIPS = 0x9 1329 MSG_NOSIGNAL = 0x4000
1330 NETLINK_NETFILTER = 0xc 1330 MSG_OOB = 0x1
1331 NETLINK_NFLOG = 0x5 1331 MSG_PEEK = 0x2
1332 NETLINK_NO_ENOBUFS = 0x5 1332 MSG_PROXY = 0x10
1333 NETLINK_PKTINFO = 0x3 1333 MSG_RST = 0x1000
1334 NETLINK_RDMA = 0x14 1334 MSG_SYN = 0x400
1335 NETLINK_ROUTE = 0x0 1335 MSG_TRUNC = 0x20
1336 NETLINK_RX_RING = 0x6 1336 MSG_TRYHARD = 0x4
1337 NETLINK_SCSITRANSPORT = 0x12 1337 MSG_WAITALL = 0x100
1338 NETLINK_SELINUX = 0x7 1338 MSG_WAITFORONE = 0x10000
1339 NETLINK_SMC = 0x16 1339 MSG_ZEROCOPY = 0x4000000
1340 NETLINK_SOCK_DIAG = 0x4 1340 MS_ACTIVE = 0x40000000
1341 NETLINK_TX_RING = 0x7 1341 MS_ASYNC = 0x1
1342 NETLINK_UNUSED = 0x1 1342 MS_BIND = 0x1000
1343 NETLINK_USERSOCK = 0x2 1343 MS_BORN = 0x20000000
1344 NETLINK_XFRM = 0x6 1344 MS_DIRSYNC = 0x80
1345 NETNSA_MAX = 0x5 1345 MS_INVALIDATE = 0x2
1346 NETNSA_NSID_NOT_ASSIGNED = -0x1 1346 MS_I_VERSION = 0x800000
1347 NFNETLINK_V0 = 0x0 1347 MS_KERNMOUNT = 0x400000
1348 NFNLGRP_ACCT_QUOTA = 0x8 1348 MS_LAZYTIME = 0x2000000
1349 NFNLGRP_CONNTRACK_DESTROY = 0x3 1349 MS_MANDLOCK = 0x40
1350 NFNLGRP_CONNTRACK_EXP_DESTROY = 0x6 1350 MS_MGC_MSK = 0xffff0000
1351 NFNLGRP_CONNTRACK_EXP_NEW = 0x4 1351 MS_MGC_VAL = 0xc0ed0000
1352 NFNLGRP_CONNTRACK_EXP_UPDATE = 0x5 1352 MS_MOVE = 0x2000
1353 NFNLGRP_CONNTRACK_NEW = 0x1 1353 MS_NOATIME = 0x400
1354 NFNLGRP_CONNTRACK_UPDATE = 0x2 1354 MS_NODEV = 0x4
1355 NFNLGRP_MAX = 0x9 1355 MS_NODIRATIME = 0x800
1356 NFNLGRP_NFTABLES = 0x7 1356 MS_NOEXEC = 0x8
1357 NFNLGRP_NFTRACE = 0x9 1357 MS_NOREMOTELOCK = 0x8000000
1358 NFNLGRP_NONE = 0x0 1358 MS_NOSEC = 0x10000000
1359 NFNL_BATCH_MAX = 0x1 1359 MS_NOSUID = 0x2
1360 NFNL_MSG_BATCH_BEGIN = 0x10 1360 MS_NOUSER = -0x80000000
1361 NFNL_MSG_BATCH_END = 0x11 1361 MS_POSIXACL = 0x10000
1362 NFNL_NFA_NEST = 0x8000 1362 MS_PRIVATE = 0x40000
1363 NFNL_SUBSYS_ACCT = 0x7 1363 MS_RDONLY = 0x1
1364 NFNL_SUBSYS_COUNT = 0xc 1364 MS_REC = 0x4000
1365 NFNL_SUBSYS_CTHELPER = 0x9 1365 MS_RELATIME = 0x200000
1366 NFNL_SUBSYS_CTNETLINK = 0x1 1366 MS_REMOUNT = 0x20
1367 NFNL_SUBSYS_CTNETLINK_EXP = 0x2 1367 MS_RMT_MASK = 0x2800051
1368 NFNL_SUBSYS_CTNETLINK_TIMEOUT = 0x8 1368 MS_SHARED = 0x100000
1369 NFNL_SUBSYS_IPSET = 0x6 1369 MS_SILENT = 0x8000
1370 NFNL_SUBSYS_NFTABLES = 0xa 1370 MS_SLAVE = 0x80000
1371 NFNL_SUBSYS_NFT_COMPAT = 0xb 1371 MS_STRICTATIME = 0x1000000
1372 NFNL_SUBSYS_NONE = 0x0 1372 MS_SUBMOUNT = 0x4000000
1373 NFNL_SUBSYS_OSF = 0x5 1373 MS_SYNC = 0x4
1374 NFNL_SUBSYS_QUEUE = 0x3 1374 MS_SYNCHRONOUS = 0x10
1375 NFNL_SUBSYS_ULOG = 0x4 1375 MS_UNBINDABLE = 0x20000
1376 NFS_SUPER_MAGIC = 0x6969 1376 MS_VERBOSE = 0x8000
1377 NILFS_SUPER_MAGIC = 0x3434 1377 MTD_INODE_FS_MAGIC = 0x11307854
1378 NL0 = 0x0 1378 NAME_MAX = 0xff
1379 NL1 = 0x100 1379 NCP_SUPER_MAGIC = 0x564c
1380 NLA_ALIGNTO = 0x4 1380 NETLINK_ADD_MEMBERSHIP = 0x1
1381 NLA_F_NESTED = 0x8000 1381 NETLINK_AUDIT = 0x9
1382 NLA_F_NET_BYTEORDER = 0x4000 1382 NETLINK_BROADCAST_ERROR = 0x4
1383 NLA_HDRLEN = 0x4 1383 NETLINK_CAP_ACK = 0xa
1384 NLDLY = 0x100 1384 NETLINK_CONNECTOR = 0xb
1385 NLMSG_ALIGNTO = 0x4 1385 NETLINK_CRYPTO = 0x15
1386 NLMSG_DONE = 0x3 1386 NETLINK_DNRTMSG = 0xe
1387 NLMSG_ERROR = 0x2 1387 NETLINK_DROP_MEMBERSHIP = 0x2
1388 NLMSG_HDRLEN = 0x10 1388 NETLINK_ECRYPTFS = 0x13
1389 NLMSG_MIN_TYPE = 0x10 1389 NETLINK_EXT_ACK = 0xb
1390 NLMSG_NOOP = 0x1 1390 NETLINK_FIB_LOOKUP = 0xa
1391 NLMSG_OVERRUN = 0x4 1391 NETLINK_FIREWALL = 0x3
1392 NLM_F_ACK = 0x4 1392 NETLINK_GENERIC = 0x10
1393 NLM_F_ACK_TLVS = 0x200 1393 NETLINK_GET_STRICT_CHK = 0xc
1394 NLM_F_APPEND = 0x800 1394 NETLINK_INET_DIAG = 0x4
1395 NLM_F_ATOMIC = 0x400 1395 NETLINK_IP6_FW = 0xd
1396 NLM_F_CAPPED = 0x100 1396 NETLINK_ISCSI = 0x8
1397 NLM_F_CREATE = 0x400 1397 NETLINK_KOBJECT_UEVENT = 0xf
1398 NLM_F_DUMP = 0x300 1398 NETLINK_LISTEN_ALL_NSID = 0x8
1399 NLM_F_DUMP_FILTERED = 0x20 1399 NETLINK_LIST_MEMBERSHIPS = 0x9
1400 NLM_F_DUMP_INTR = 0x10 1400 NETLINK_NETFILTER = 0xc
1401 NLM_F_ECHO = 0x8 1401 NETLINK_NFLOG = 0x5
1402 NLM_F_EXCL = 0x200 1402 NETLINK_NO_ENOBUFS = 0x5
1403 NLM_F_MATCH = 0x200 1403 NETLINK_PKTINFO = 0x3
1404 NLM_F_MULTI = 0x2 1404 NETLINK_RDMA = 0x14
1405 NLM_F_NONREC = 0x100 1405 NETLINK_ROUTE = 0x0
1406 NLM_F_REPLACE = 0x100 1406 NETLINK_RX_RING = 0x6
1407 NLM_F_REQUEST = 0x1 1407 NETLINK_SCSITRANSPORT = 0x12
1408 NLM_F_ROOT = 0x100 1408 NETLINK_SELINUX = 0x7
1409 NOFLSH = 0x80 1409 NETLINK_SMC = 0x16
1410 NSFS_MAGIC = 0x6e736673 1410 NETLINK_SOCK_DIAG = 0x4
1411 NS_GET_NSTYPE = 0xb703 1411 NETLINK_TX_RING = 0x7
1412 NS_GET_OWNER_UID = 0xb704 1412 NETLINK_UNUSED = 0x1
1413 NS_GET_PARENT = 0xb702 1413 NETLINK_USERSOCK = 0x2
1414 NS_GET_USERNS = 0xb701 1414 NETLINK_XFRM = 0x6
1415 OCFS2_SUPER_MAGIC = 0x7461636f 1415 NETNSA_MAX = 0x5
1416 OCRNL = 0x8 1416 NETNSA_NSID_NOT_ASSIGNED = -0x1
1417 OFDEL = 0x80 1417 NFDBITS = 0x20
1418 OFILL = 0x40 1418 NFNETLINK_V0 = 0x0
1419 OLCUC = 0x2 1419 NFNLGRP_ACCT_QUOTA = 0x8
1420 ONLCR = 0x4 1420 NFNLGRP_CONNTRACK_DESTROY = 0x3
1421 ONLRET = 0x20 1421 NFNLGRP_CONNTRACK_EXP_DESTROY = 0x6
1422 ONOCR = 0x10 1422 NFNLGRP_CONNTRACK_EXP_NEW = 0x4
1423 OPENPROM_SUPER_MAGIC = 0x9fa1 1423 NFNLGRP_CONNTRACK_EXP_UPDATE = 0x5
1424 OPOST = 0x1 1424 NFNLGRP_CONNTRACK_NEW = 0x1
1425 OVERLAYFS_SUPER_MAGIC = 0x794c7630 1425 NFNLGRP_CONNTRACK_UPDATE = 0x2
1426 O_ACCMODE = 0x3 1426 NFNLGRP_MAX = 0x9
1427 O_APPEND = 0x400 1427 NFNLGRP_NFTABLES = 0x7
1428 O_ASYNC = 0x2000 1428 NFNLGRP_NFTRACE = 0x9
1429 O_CLOEXEC = 0x80000 1429 NFNLGRP_NONE = 0x0
1430 O_CREAT = 0x40 1430 NFNL_BATCH_MAX = 0x1
1431 O_DIRECT = 0x4000 1431 NFNL_MSG_BATCH_BEGIN = 0x10
1432 O_DIRECTORY = 0x10000 1432 NFNL_MSG_BATCH_END = 0x11
1433 O_DSYNC = 0x1000 1433 NFNL_NFA_NEST = 0x8000
1434 O_EXCL = 0x80 1434 NFNL_SUBSYS_ACCT = 0x7
1435 O_FSYNC = 0x101000 1435 NFNL_SUBSYS_COUNT = 0xc
1436 O_LARGEFILE = 0x8000 1436 NFNL_SUBSYS_CTHELPER = 0x9
1437 O_NDELAY = 0x800 1437 NFNL_SUBSYS_CTNETLINK = 0x1
1438 O_NOATIME = 0x40000 1438 NFNL_SUBSYS_CTNETLINK_EXP = 0x2
1439 O_NOCTTY = 0x100 1439 NFNL_SUBSYS_CTNETLINK_TIMEOUT = 0x8
1440 O_NOFOLLOW = 0x20000 1440 NFNL_SUBSYS_IPSET = 0x6
1441 O_NONBLOCK = 0x800 1441 NFNL_SUBSYS_NFTABLES = 0xa
1442 O_PATH = 0x200000 1442 NFNL_SUBSYS_NFT_COMPAT = 0xb
1443 O_RDONLY = 0x0 1443 NFNL_SUBSYS_NONE = 0x0
1444 O_RDWR = 0x2 1444 NFNL_SUBSYS_OSF = 0x5
1445 O_RSYNC = 0x101000 1445 NFNL_SUBSYS_QUEUE = 0x3
1446 O_SYNC = 0x101000 1446 NFNL_SUBSYS_ULOG = 0x4
1447 O_TMPFILE = 0x410000 1447 NFS_SUPER_MAGIC = 0x6969
1448 O_TRUNC = 0x200 1448 NILFS_SUPER_MAGIC = 0x3434
1449 O_WRONLY = 0x1 1449 NL0 = 0x0
1450 PACKET_ADD_MEMBERSHIP = 0x1 1450 NL1 = 0x100
1451 PACKET_AUXDATA = 0x8 1451 NLA_ALIGNTO = 0x4
1452 PACKET_BROADCAST = 0x1 1452 NLA_F_NESTED = 0x8000
1453 PACKET_COPY_THRESH = 0x7 1453 NLA_F_NET_BYTEORDER = 0x4000
1454 PACKET_DROP_MEMBERSHIP = 0x2 1454 NLA_HDRLEN = 0x4
1455 PACKET_FANOUT = 0x12 1455 NLDLY = 0x100
1456 PACKET_FANOUT_CBPF = 0x6 1456 NLMSG_ALIGNTO = 0x4
1457 PACKET_FANOUT_CPU = 0x2 1457 NLMSG_DONE = 0x3
1458 PACKET_FANOUT_DATA = 0x16 1458 NLMSG_ERROR = 0x2
1459 PACKET_FANOUT_EBPF = 0x7 1459 NLMSG_HDRLEN = 0x10
1460 PACKET_FANOUT_FLAG_DEFRAG = 0x8000 1460 NLMSG_MIN_TYPE = 0x10
1461 PACKET_FANOUT_FLAG_ROLLOVER = 0x1000 1461 NLMSG_NOOP = 0x1
1462 PACKET_FANOUT_FLAG_UNIQUEID = 0x2000 1462 NLMSG_OVERRUN = 0x4
1463 PACKET_FANOUT_HASH = 0x0 1463 NLM_F_ACK = 0x4
1464 PACKET_FANOUT_LB = 0x1 1464 NLM_F_ACK_TLVS = 0x200
1465 PACKET_FANOUT_QM = 0x5 1465 NLM_F_APPEND = 0x800
1466 PACKET_FANOUT_RND = 0x4 1466 NLM_F_ATOMIC = 0x400
1467 PACKET_FANOUT_ROLLOVER = 0x3 1467 NLM_F_CAPPED = 0x100
1468 PACKET_FASTROUTE = 0x6 1468 NLM_F_CREATE = 0x400
1469 PACKET_HDRLEN = 0xb 1469 NLM_F_DUMP = 0x300
1470 PACKET_HOST = 0x0 1470 NLM_F_DUMP_FILTERED = 0x20
1471 PACKET_IGNORE_OUTGOING = 0x17 1471 NLM_F_DUMP_INTR = 0x10
1472 PACKET_KERNEL = 0x7 1472 NLM_F_ECHO = 0x8
1473 PACKET_LOOPBACK = 0x5 1473 NLM_F_EXCL = 0x200
1474 PACKET_LOSS = 0xe 1474 NLM_F_MATCH = 0x200
1475 PACKET_MR_ALLMULTI = 0x2 1475 NLM_F_MULTI = 0x2
1476 PACKET_MR_MULTICAST = 0x0 1476 NLM_F_NONREC = 0x100
1477 PACKET_MR_PROMISC = 0x1 1477 NLM_F_REPLACE = 0x100
1478 PACKET_MR_UNICAST = 0x3 1478 NLM_F_REQUEST = 0x1
1479 PACKET_MULTICAST = 0x2 1479 NLM_F_ROOT = 0x100
1480 PACKET_ORIGDEV = 0x9 1480 NOFLSH = 0x80
1481 PACKET_OTHERHOST = 0x3 1481 NSFS_MAGIC = 0x6e736673
1482 PACKET_OUTGOING = 0x4 1482 NS_GET_NSTYPE = 0xb703
1483 PACKET_QDISC_BYPASS = 0x14 1483 NS_GET_OWNER_UID = 0xb704
1484 PACKET_RECV_OUTPUT = 0x3 1484 NS_GET_PARENT = 0xb702
1485 PACKET_RESERVE = 0xc 1485 NS_GET_USERNS = 0xb701
1486 PACKET_ROLLOVER_STATS = 0x15 1486 OCFS2_SUPER_MAGIC = 0x7461636f
1487 PACKET_RX_RING = 0x5 1487 OCRNL = 0x8
1488 PACKET_STATISTICS = 0x6 1488 OFDEL = 0x80
1489 PACKET_TIMESTAMP = 0x11 1489 OFILL = 0x40
1490 PACKET_TX_HAS_OFF = 0x13 1490 OLCUC = 0x2
1491 PACKET_TX_RING = 0xd 1491 ONLCR = 0x4
1492 PACKET_TX_TIMESTAMP = 0x10 1492 ONLRET = 0x20
1493 PACKET_USER = 0x6 1493 ONOCR = 0x10
1494 PACKET_VERSION = 0xa 1494 OPENPROM_SUPER_MAGIC = 0x9fa1
1495 PACKET_VNET_HDR = 0xf 1495 OPOST = 0x1
1496 PARENB = 0x100 1496 OVERLAYFS_SUPER_MAGIC = 0x794c7630
1497 PARITY_CRC16_PR0 = 0x2 1497 O_ACCMODE = 0x3
1498 PARITY_CRC16_PR0_CCITT = 0x4 1498 O_APPEND = 0x400
1499 PARITY_CRC16_PR1 = 0x3 1499 O_ASYNC = 0x2000
1500 PARITY_CRC16_PR1_CCITT = 0x5 1500 O_CLOEXEC = 0x80000
1501 PARITY_CRC32_PR0_CCITT = 0x6 1501 O_CREAT = 0x40
1502 PARITY_CRC32_PR1_CCITT = 0x7 1502 O_DIRECT = 0x4000
1503 PARITY_DEFAULT = 0x0 1503 O_DIRECTORY = 0x10000
1504 PARITY_NONE = 0x1 1504 O_DSYNC = 0x1000
1505 PARMRK = 0x8 1505 O_EXCL = 0x80
1506 PARODD = 0x200 1506 O_FSYNC = 0x101000
1507 PENDIN = 0x4000 1507 O_LARGEFILE = 0x8000
1508 PERF_EVENT_IOC_DISABLE = 0x2401 1508 O_NDELAY = 0x800
1509 PERF_EVENT_IOC_ENABLE = 0x2400 1509 O_NOATIME = 0x40000
1510 PERF_EVENT_IOC_ID = 0x80042407 1510 O_NOCTTY = 0x100
1511 PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x4004240b 1511 O_NOFOLLOW = 0x20000
1512 PERF_EVENT_IOC_PAUSE_OUTPUT = 0x40042409 1512 O_NONBLOCK = 0x800
1513 PERF_EVENT_IOC_PERIOD = 0x40082404 1513 O_PATH = 0x200000
1514 PERF_EVENT_IOC_QUERY_BPF = 0xc004240a 1514 O_RDONLY = 0x0
1515 PERF_EVENT_IOC_REFRESH = 0x2402 1515 O_RDWR = 0x2
1516 PERF_EVENT_IOC_RESET = 0x2403 1516 O_RSYNC = 0x101000
1517 PERF_EVENT_IOC_SET_BPF = 0x40042408 1517 O_SYNC = 0x101000
1518 PERF_EVENT_IOC_SET_FILTER = 0x40042406 1518 O_TMPFILE = 0x410000
1519 PERF_EVENT_IOC_SET_OUTPUT = 0x2405 1519 O_TRUNC = 0x200
1520 PIPEFS_MAGIC = 0x50495045 1520 O_WRONLY = 0x1
1521 PPPIOCATTACH = 0x4004743d 1521 PACKET_ADD_MEMBERSHIP = 0x1
1522 PPPIOCATTCHAN = 0x40047438 1522 PACKET_AUXDATA = 0x8
1523 PPPIOCCONNECT = 0x4004743a 1523 PACKET_BROADCAST = 0x1
1524 PPPIOCDETACH = 0x4004743c 1524 PACKET_COPY_THRESH = 0x7
1525 PPPIOCDISCONN = 0x7439 1525 PACKET_DROP_MEMBERSHIP = 0x2
1526 PPPIOCGASYNCMAP = 0x80047458 1526 PACKET_FANOUT = 0x12
1527 PPPIOCGCHAN = 0x80047437 1527 PACKET_FANOUT_CBPF = 0x6
1528 PPPIOCGDEBUG = 0x80047441 1528 PACKET_FANOUT_CPU = 0x2
1529 PPPIOCGFLAGS = 0x8004745a 1529 PACKET_FANOUT_DATA = 0x16
1530 PPPIOCGIDLE = 0x8008743f 1530 PACKET_FANOUT_EBPF = 0x7
1531 PPPIOCGL2TPSTATS = 0x80487436 1531 PACKET_FANOUT_FLAG_DEFRAG = 0x8000
1532 PPPIOCGMRU = 0x80047453 1532 PACKET_FANOUT_FLAG_ROLLOVER = 0x1000
1533 PPPIOCGNPMODE = 0xc008744c 1533 PACKET_FANOUT_FLAG_UNIQUEID = 0x2000
1534 PPPIOCGRASYNCMAP = 0x80047455 1534 PACKET_FANOUT_HASH = 0x0
1535 PPPIOCGUNIT = 0x80047456 1535 PACKET_FANOUT_LB = 0x1
1536 PPPIOCGXASYNCMAP = 0x80207450 1536 PACKET_FANOUT_QM = 0x5
1537 PPPIOCNEWUNIT = 0xc004743e 1537 PACKET_FANOUT_RND = 0x4
1538 PPPIOCSACTIVE = 0x40087446 1538 PACKET_FANOUT_ROLLOVER = 0x3
1539 PPPIOCSASYNCMAP = 0x40047457 1539 PACKET_FASTROUTE = 0x6
1540 PPPIOCSCOMPRESS = 0x400c744d 1540 PACKET_HDRLEN = 0xb
1541 PPPIOCSDEBUG = 0x40047440 1541 PACKET_HOST = 0x0
1542 PPPIOCSFLAGS = 0x40047459 1542 PACKET_IGNORE_OUTGOING = 0x17
1543 PPPIOCSMAXCID = 0x40047451 1543 PACKET_KERNEL = 0x7
1544 PPPIOCSMRRU = 0x4004743b 1544 PACKET_LOOPBACK = 0x5
1545 PPPIOCSMRU = 0x40047452 1545 PACKET_LOSS = 0xe
1546 PPPIOCSNPMODE = 0x4008744b 1546 PACKET_MR_ALLMULTI = 0x2
1547 PPPIOCSPASS = 0x40087447 1547 PACKET_MR_MULTICAST = 0x0
1548 PPPIOCSRASYNCMAP = 0x40047454 1548 PACKET_MR_PROMISC = 0x1
1549 PPPIOCSXASYNCMAP = 0x4020744f 1549 PACKET_MR_UNICAST = 0x3
1550 PPPIOCXFERUNIT = 0x744e 1550 PACKET_MULTICAST = 0x2
1551 PRIO_PGRP = 0x1 1551 PACKET_ORIGDEV = 0x9
1552 PRIO_PROCESS = 0x0 1552 PACKET_OTHERHOST = 0x3
1553 PRIO_USER = 0x2 1553 PACKET_OUTGOING = 0x4
1554 PROC_SUPER_MAGIC = 0x9fa0 1554 PACKET_QDISC_BYPASS = 0x14
1555 PROT_EXEC = 0x4 1555 PACKET_RECV_OUTPUT = 0x3
1556 PROT_GROWSDOWN = 0x1000000 1556 PACKET_RESERVE = 0xc
1557 PROT_GROWSUP = 0x2000000 1557 PACKET_ROLLOVER_STATS = 0x15
1558 PROT_NONE = 0x0 1558 PACKET_RX_RING = 0x5
1559 PROT_READ = 0x1 1559 PACKET_STATISTICS = 0x6
1560 PROT_WRITE = 0x2 1560 PACKET_TIMESTAMP = 0x11
1561 PR_CAPBSET_DROP = 0x18 1561 PACKET_TX_HAS_OFF = 0x13
1562 PR_CAPBSET_READ = 0x17 1562 PACKET_TX_RING = 0xd
1563 PR_CAP_AMBIENT = 0x2f 1563 PACKET_TX_TIMESTAMP = 0x10
1564 PR_CAP_AMBIENT_CLEAR_ALL = 0x4 1564 PACKET_USER = 0x6
1565 PR_CAP_AMBIENT_IS_SET = 0x1 1565 PACKET_VERSION = 0xa
1566 PR_CAP_AMBIENT_LOWER = 0x3 1566 PACKET_VNET_HDR = 0xf
1567 PR_CAP_AMBIENT_RAISE = 0x2 1567 PARENB = 0x100
1568 PR_ENDIAN_BIG = 0x0 1568 PARITY_CRC16_PR0 = 0x2
1569 PR_ENDIAN_LITTLE = 0x1 1569 PARITY_CRC16_PR0_CCITT = 0x4
1570 PR_ENDIAN_PPC_LITTLE = 0x2 1570 PARITY_CRC16_PR1 = 0x3
1571 PR_FPEMU_NOPRINT = 0x1 1571 PARITY_CRC16_PR1_CCITT = 0x5
1572 PR_FPEMU_SIGFPE = 0x2 1572 PARITY_CRC32_PR0_CCITT = 0x6
1573 PR_FP_EXC_ASYNC = 0x2 1573 PARITY_CRC32_PR1_CCITT = 0x7
1574 PR_FP_EXC_DISABLED = 0x0 1574 PARITY_DEFAULT = 0x0
1575 PR_FP_EXC_DIV = 0x10000 1575 PARITY_NONE = 0x1
1576 PR_FP_EXC_INV = 0x100000 1576 PARMRK = 0x8
1577 PR_FP_EXC_NONRECOV = 0x1 1577 PARODD = 0x200
1578 PR_FP_EXC_OVF = 0x20000 1578 PENDIN = 0x4000
1579 PR_FP_EXC_PRECISE = 0x3 1579 PERF_EVENT_IOC_DISABLE = 0x2401
1580 PR_FP_EXC_RES = 0x80000 1580 PERF_EVENT_IOC_ENABLE = 0x2400
1581 PR_FP_EXC_SW_ENABLE = 0x80 1581 PERF_EVENT_IOC_ID = 0x80042407
1582 PR_FP_EXC_UND = 0x40000 1582 PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x4004240b
1583 PR_FP_MODE_FR = 0x1 1583 PERF_EVENT_IOC_PAUSE_OUTPUT = 0x40042409
1584 PR_FP_MODE_FRE = 0x2 1584 PERF_EVENT_IOC_PERIOD = 0x40082404
1585 PR_GET_CHILD_SUBREAPER = 0x25 1585 PERF_EVENT_IOC_QUERY_BPF = 0xc004240a
1586 PR_GET_DUMPABLE = 0x3 1586 PERF_EVENT_IOC_REFRESH = 0x2402
1587 PR_GET_ENDIAN = 0x13 1587 PERF_EVENT_IOC_RESET = 0x2403
1588 PR_GET_FPEMU = 0x9 1588 PERF_EVENT_IOC_SET_BPF = 0x40042408
1589 PR_GET_FPEXC = 0xb 1589 PERF_EVENT_IOC_SET_FILTER = 0x40042406
1590 PR_GET_FP_MODE = 0x2e 1590 PERF_EVENT_IOC_SET_OUTPUT = 0x2405
1591 PR_GET_KEEPCAPS = 0x7 1591 PIPEFS_MAGIC = 0x50495045
1592 PR_GET_NAME = 0x10 1592 PPC_CMM_MAGIC = 0xc7571590
1593 PR_GET_NO_NEW_PRIVS = 0x27 1593 PPPIOCATTACH = 0x4004743d
1594 PR_GET_PDEATHSIG = 0x2 1594 PPPIOCATTCHAN = 0x40047438
1595 PR_GET_SECCOMP = 0x15 1595 PPPIOCCONNECT = 0x4004743a
1596 PR_GET_SECUREBITS = 0x1b 1596 PPPIOCDETACH = 0x4004743c
1597 PR_GET_SPECULATION_CTRL = 0x34 1597 PPPIOCDISCONN = 0x7439
1598 PR_GET_THP_DISABLE = 0x2a 1598 PPPIOCGASYNCMAP = 0x80047458
1599 PR_GET_TID_ADDRESS = 0x28 1599 PPPIOCGCHAN = 0x80047437
1600 PR_GET_TIMERSLACK = 0x1e 1600 PPPIOCGDEBUG = 0x80047441
1601 PR_GET_TIMING = 0xd 1601 PPPIOCGFLAGS = 0x8004745a
1602 PR_GET_TSC = 0x19 1602 PPPIOCGIDLE = 0x8008743f
1603 PR_GET_UNALIGN = 0x5 1603 PPPIOCGIDLE32 = 0x8008743f
1604 PR_MCE_KILL = 0x21 1604 PPPIOCGIDLE64 = 0x8010743f
1605 PR_MCE_KILL_CLEAR = 0x0 1605 PPPIOCGL2TPSTATS = 0x80487436
1606 PR_MCE_KILL_DEFAULT = 0x2 1606 PPPIOCGMRU = 0x80047453
1607 PR_MCE_KILL_EARLY = 0x1 1607 PPPIOCGNPMODE = 0xc008744c
1608 PR_MCE_KILL_GET = 0x22 1608 PPPIOCGRASYNCMAP = 0x80047455
1609 PR_MCE_KILL_LATE = 0x0 1609 PPPIOCGUNIT = 0x80047456
1610 PR_MCE_KILL_SET = 0x1 1610 PPPIOCGXASYNCMAP = 0x80207450
1611 PR_MPX_DISABLE_MANAGEMENT = 0x2c 1611 PPPIOCNEWUNIT = 0xc004743e
1612 PR_MPX_ENABLE_MANAGEMENT = 0x2b 1612 PPPIOCSACTIVE = 0x40087446
1613 PR_PAC_APDAKEY = 0x4 1613 PPPIOCSASYNCMAP = 0x40047457
1614 PR_PAC_APDBKEY = 0x8 1614 PPPIOCSCOMPRESS = 0x400c744d
1615 PR_PAC_APGAKEY = 0x10 1615 PPPIOCSDEBUG = 0x40047440
1616 PR_PAC_APIAKEY = 0x1 1616 PPPIOCSFLAGS = 0x40047459
1617 PR_PAC_APIBKEY = 0x2 1617 PPPIOCSMAXCID = 0x40047451
1618 PR_PAC_RESET_KEYS = 0x36 1618 PPPIOCSMRRU = 0x4004743b
1619 PR_SET_CHILD_SUBREAPER = 0x24 1619 PPPIOCSMRU = 0x40047452
1620 PR_SET_DUMPABLE = 0x4 1620 PPPIOCSNPMODE = 0x4008744b
1621 PR_SET_ENDIAN = 0x14 1621 PPPIOCSPASS = 0x40087447
1622 PR_SET_FPEMU = 0xa 1622 PPPIOCSRASYNCMAP = 0x40047454
1623 PR_SET_FPEXC = 0xc 1623 PPPIOCSXASYNCMAP = 0x4020744f
1624 PR_SET_FP_MODE = 0x2d 1624 PPPIOCXFERUNIT = 0x744e
1625 PR_SET_KEEPCAPS = 0x8 1625 PRIO_PGRP = 0x1
1626 PR_SET_MM = 0x23 1626 PRIO_PROCESS = 0x0
1627 PR_SET_MM_ARG_END = 0x9 1627 PRIO_USER = 0x2
1628 PR_SET_MM_ARG_START = 0x8 1628 PROC_SUPER_MAGIC = 0x9fa0
1629 PR_SET_MM_AUXV = 0xc 1629 PROT_EXEC = 0x4
1630 PR_SET_MM_BRK = 0x7 1630 PROT_GROWSDOWN = 0x1000000
1631 PR_SET_MM_END_CODE = 0x2 1631 PROT_GROWSUP = 0x2000000
1632 PR_SET_MM_END_DATA = 0x4 1632 PROT_NONE = 0x0
1633 PR_SET_MM_ENV_END = 0xb 1633 PROT_READ = 0x1
1634 PR_SET_MM_ENV_START = 0xa 1634 PROT_WRITE = 0x2
1635 PR_SET_MM_EXE_FILE = 0xd 1635 PR_CAPBSET_DROP = 0x18
1636 PR_SET_MM_MAP = 0xe 1636 PR_CAPBSET_READ = 0x17
1637 PR_SET_MM_MAP_SIZE = 0xf 1637 PR_CAP_AMBIENT = 0x2f
1638 PR_SET_MM_START_BRK = 0x6 1638 PR_CAP_AMBIENT_CLEAR_ALL = 0x4
1639 PR_SET_MM_START_CODE = 0x1 1639 PR_CAP_AMBIENT_IS_SET = 0x1
1640 PR_SET_MM_START_DATA = 0x3 1640 PR_CAP_AMBIENT_LOWER = 0x3
1641 PR_SET_MM_START_STACK = 0x5 1641 PR_CAP_AMBIENT_RAISE = 0x2
1642 PR_SET_NAME = 0xf 1642 PR_ENDIAN_BIG = 0x0
1643 PR_SET_NO_NEW_PRIVS = 0x26 1643 PR_ENDIAN_LITTLE = 0x1
1644 PR_SET_PDEATHSIG = 0x1 1644 PR_ENDIAN_PPC_LITTLE = 0x2
1645 PR_SET_PTRACER = 0x59616d61 1645 PR_FPEMU_NOPRINT = 0x1
1646 PR_SET_PTRACER_ANY = 0xffffffff 1646 PR_FPEMU_SIGFPE = 0x2
1647 PR_SET_SECCOMP = 0x16 1647 PR_FP_EXC_ASYNC = 0x2
1648 PR_SET_SECUREBITS = 0x1c 1648 PR_FP_EXC_DISABLED = 0x0
1649 PR_SET_SPECULATION_CTRL = 0x35 1649 PR_FP_EXC_DIV = 0x10000
1650 PR_SET_THP_DISABLE = 0x29 1650 PR_FP_EXC_INV = 0x100000
1651 PR_SET_TIMERSLACK = 0x1d 1651 PR_FP_EXC_NONRECOV = 0x1
1652 PR_SET_TIMING = 0xe 1652 PR_FP_EXC_OVF = 0x20000
1653 PR_SET_TSC = 0x1a 1653 PR_FP_EXC_PRECISE = 0x3
1654 PR_SET_UNALIGN = 0x6 1654 PR_FP_EXC_RES = 0x80000
1655 PR_SPEC_DISABLE = 0x4 1655 PR_FP_EXC_SW_ENABLE = 0x80
1656 PR_SPEC_DISABLE_NOEXEC = 0x10 1656 PR_FP_EXC_UND = 0x40000
1657 PR_SPEC_ENABLE = 0x2 1657 PR_FP_MODE_FR = 0x1
1658 PR_SPEC_FORCE_DISABLE = 0x8 1658 PR_FP_MODE_FRE = 0x2
1659 PR_SPEC_INDIRECT_BRANCH = 0x1 1659 PR_GET_CHILD_SUBREAPER = 0x25
1660 PR_SPEC_NOT_AFFECTED = 0x0 1660 PR_GET_DUMPABLE = 0x3
1661 PR_SPEC_PRCTL = 0x1 1661 PR_GET_ENDIAN = 0x13
1662 PR_SPEC_STORE_BYPASS = 0x0 1662 PR_GET_FPEMU = 0x9
1663 PR_SVE_GET_VL = 0x33 1663 PR_GET_FPEXC = 0xb
1664 PR_SVE_SET_VL = 0x32 1664 PR_GET_FP_MODE = 0x2e
1665 PR_SVE_SET_VL_ONEXEC = 0x40000 1665 PR_GET_KEEPCAPS = 0x7
1666 PR_SVE_VL_INHERIT = 0x20000 1666 PR_GET_NAME = 0x10
1667 PR_SVE_VL_LEN_MASK = 0xffff 1667 PR_GET_NO_NEW_PRIVS = 0x27
1668 PR_TASK_PERF_EVENTS_DISABLE = 0x1f 1668 PR_GET_PDEATHSIG = 0x2
1669 PR_TASK_PERF_EVENTS_ENABLE = 0x20 1669 PR_GET_SECCOMP = 0x15
1670 PR_TIMING_STATISTICAL = 0x0 1670 PR_GET_SECUREBITS = 0x1b
1671 PR_TIMING_TIMESTAMP = 0x1 1671 PR_GET_SPECULATION_CTRL = 0x34
1672 PR_TSC_ENABLE = 0x1 1672 PR_GET_TAGGED_ADDR_CTRL = 0x38
1673 PR_TSC_SIGSEGV = 0x2 1673 PR_GET_THP_DISABLE = 0x2a
1674 PR_UNALIGN_NOPRINT = 0x1 1674 PR_GET_TID_ADDRESS = 0x28
1675 PR_UNALIGN_SIGBUS = 0x2 1675 PR_GET_TIMERSLACK = 0x1e
1676 PSTOREFS_MAGIC = 0x6165676c 1676 PR_GET_TIMING = 0xd
1677 PTRACE_ATTACH = 0x10 1677 PR_GET_TSC = 0x19
1678 PTRACE_CONT = 0x7 1678 PR_GET_UNALIGN = 0x5
1679 PTRACE_DETACH = 0x11 1679 PR_MCE_KILL = 0x21
1680 PTRACE_EVENT_CLONE = 0x3 1680 PR_MCE_KILL_CLEAR = 0x0
1681 PTRACE_EVENT_EXEC = 0x4 1681 PR_MCE_KILL_DEFAULT = 0x2
1682 PTRACE_EVENT_EXIT = 0x6 1682 PR_MCE_KILL_EARLY = 0x1
1683 PTRACE_EVENT_FORK = 0x1 1683 PR_MCE_KILL_GET = 0x22
1684 PTRACE_EVENT_SECCOMP = 0x7 1684 PR_MCE_KILL_LATE = 0x0
1685 PTRACE_EVENT_STOP = 0x80 1685 PR_MCE_KILL_SET = 0x1
1686 PTRACE_EVENT_VFORK = 0x2 1686 PR_MPX_DISABLE_MANAGEMENT = 0x2c
1687 PTRACE_EVENT_VFORK_DONE = 0x5 1687 PR_MPX_ENABLE_MANAGEMENT = 0x2b
1688 PTRACE_GETEVENTMSG = 0x4201 1688 PR_PAC_APDAKEY = 0x4
1689 PTRACE_GETFPREGS = 0xe 1689 PR_PAC_APDBKEY = 0x8
1690 PTRACE_GETFPXREGS = 0x12 1690 PR_PAC_APGAKEY = 0x10
1691 PTRACE_GETREGS = 0xc 1691 PR_PAC_APIAKEY = 0x1
1692 PTRACE_GETREGSET = 0x4204 1692 PR_PAC_APIBKEY = 0x2
1693 PTRACE_GETSIGINFO = 0x4202 1693 PR_PAC_RESET_KEYS = 0x36
1694 PTRACE_GETSIGMASK = 0x420a 1694 PR_SET_CHILD_SUBREAPER = 0x24
1695 PTRACE_GET_THREAD_AREA = 0x19 1695 PR_SET_DUMPABLE = 0x4
1696 PTRACE_INTERRUPT = 0x4207 1696 PR_SET_ENDIAN = 0x14
1697 PTRACE_KILL = 0x8 1697 PR_SET_FPEMU = 0xa
1698 PTRACE_LISTEN = 0x4208 1698 PR_SET_FPEXC = 0xc
1699 PTRACE_OLDSETOPTIONS = 0x15 1699 PR_SET_FP_MODE = 0x2d
1700 PTRACE_O_EXITKILL = 0x100000 1700 PR_SET_KEEPCAPS = 0x8
1701 PTRACE_O_MASK = 0x3000ff 1701 PR_SET_MM = 0x23
1702 PTRACE_O_SUSPEND_SECCOMP = 0x200000 1702 PR_SET_MM_ARG_END = 0x9
1703 PTRACE_O_TRACECLONE = 0x8 1703 PR_SET_MM_ARG_START = 0x8
1704 PTRACE_O_TRACEEXEC = 0x10 1704 PR_SET_MM_AUXV = 0xc
1705 PTRACE_O_TRACEEXIT = 0x40 1705 PR_SET_MM_BRK = 0x7
1706 PTRACE_O_TRACEFORK = 0x2 1706 PR_SET_MM_END_CODE = 0x2
1707 PTRACE_O_TRACESECCOMP = 0x80 1707 PR_SET_MM_END_DATA = 0x4
1708 PTRACE_O_TRACESYSGOOD = 0x1 1708 PR_SET_MM_ENV_END = 0xb
1709 PTRACE_O_TRACEVFORK = 0x4 1709 PR_SET_MM_ENV_START = 0xa
1710 PTRACE_O_TRACEVFORKDONE = 0x20 1710 PR_SET_MM_EXE_FILE = 0xd
1711 PTRACE_PEEKDATA = 0x2 1711 PR_SET_MM_MAP = 0xe
1712 PTRACE_PEEKSIGINFO = 0x4209 1712 PR_SET_MM_MAP_SIZE = 0xf
1713 PTRACE_PEEKSIGINFO_SHARED = 0x1 1713 PR_SET_MM_START_BRK = 0x6
1714 PTRACE_PEEKTEXT = 0x1 1714 PR_SET_MM_START_CODE = 0x1
1715 PTRACE_PEEKUSR = 0x3 1715 PR_SET_MM_START_DATA = 0x3
1716 PTRACE_POKEDATA = 0x5 1716 PR_SET_MM_START_STACK = 0x5
1717 PTRACE_POKETEXT = 0x4 1717 PR_SET_NAME = 0xf
1718 PTRACE_POKEUSR = 0x6 1718 PR_SET_NO_NEW_PRIVS = 0x26
1719 PTRACE_SECCOMP_GET_FILTER = 0x420c 1719 PR_SET_PDEATHSIG = 0x1
1720 PTRACE_SECCOMP_GET_METADATA = 0x420d 1720 PR_SET_PTRACER = 0x59616d61
1721 PTRACE_SEIZE = 0x4206 1721 PR_SET_PTRACER_ANY = 0xffffffff
1722 PTRACE_SETFPREGS = 0xf 1722 PR_SET_SECCOMP = 0x16
1723 PTRACE_SETFPXREGS = 0x13 1723 PR_SET_SECUREBITS = 0x1c
1724 PTRACE_SETOPTIONS = 0x4200 1724 PR_SET_SPECULATION_CTRL = 0x35
1725 PTRACE_SETREGS = 0xd 1725 PR_SET_TAGGED_ADDR_CTRL = 0x37
1726 PTRACE_SETREGSET = 0x4205 1726 PR_SET_THP_DISABLE = 0x29
1727 PTRACE_SETSIGINFO = 0x4203 1727 PR_SET_TIMERSLACK = 0x1d
1728 PTRACE_SETSIGMASK = 0x420b 1728 PR_SET_TIMING = 0xe
1729 PTRACE_SET_THREAD_AREA = 0x1a 1729 PR_SET_TSC = 0x1a
1730 PTRACE_SINGLEBLOCK = 0x21 1730 PR_SET_UNALIGN = 0x6
1731 PTRACE_SINGLESTEP = 0x9 1731 PR_SPEC_DISABLE = 0x4
1732 PTRACE_SYSCALL = 0x18 1732 PR_SPEC_DISABLE_NOEXEC = 0x10
1733 PTRACE_SYSEMU = 0x1f 1733 PR_SPEC_ENABLE = 0x2
1734 PTRACE_SYSEMU_SINGLESTEP = 0x20 1734 PR_SPEC_FORCE_DISABLE = 0x8
1735 PTRACE_TRACEME = 0x0 1735 PR_SPEC_INDIRECT_BRANCH = 0x1
1736 QNX4_SUPER_MAGIC = 0x2f 1736 PR_SPEC_NOT_AFFECTED = 0x0
1737 QNX6_SUPER_MAGIC = 0x68191122 1737 PR_SPEC_PRCTL = 0x1
1738 RAMFS_MAGIC = 0x858458f6 1738 PR_SPEC_STORE_BYPASS = 0x0
1739 RDTGROUP_SUPER_MAGIC = 0x7655821 1739 PR_SVE_GET_VL = 0x33
1740 REISERFS_SUPER_MAGIC = 0x52654973 1740 PR_SVE_SET_VL = 0x32
1741 RENAME_EXCHANGE = 0x2 1741 PR_SVE_SET_VL_ONEXEC = 0x40000
1742 RENAME_NOREPLACE = 0x1 1742 PR_SVE_VL_INHERIT = 0x20000
1743 RENAME_WHITEOUT = 0x4 1743 PR_SVE_VL_LEN_MASK = 0xffff
1744 RLIMIT_AS = 0x9 1744 PR_TAGGED_ADDR_ENABLE = 0x1
1745 RLIMIT_CORE = 0x4 1745 PR_TASK_PERF_EVENTS_DISABLE = 0x1f
1746 RLIMIT_CPU = 0x0 1746 PR_TASK_PERF_EVENTS_ENABLE = 0x20
1747 RLIMIT_DATA = 0x2 1747 PR_TIMING_STATISTICAL = 0x0
1748 RLIMIT_FSIZE = 0x1 1748 PR_TIMING_TIMESTAMP = 0x1
1749 RLIMIT_LOCKS = 0xa 1749 PR_TSC_ENABLE = 0x1
1750 RLIMIT_MEMLOCK = 0x8 1750 PR_TSC_SIGSEGV = 0x2
1751 RLIMIT_MSGQUEUE = 0xc 1751 PR_UNALIGN_NOPRINT = 0x1
1752 RLIMIT_NICE = 0xd 1752 PR_UNALIGN_SIGBUS = 0x2
1753 RLIMIT_NOFILE = 0x7 1753 PSTOREFS_MAGIC = 0x6165676c
1754 RLIMIT_NPROC = 0x6 1754 PTRACE_ATTACH = 0x10
1755 RLIMIT_RSS = 0x5 1755 PTRACE_CONT = 0x7
1756 RLIMIT_RTPRIO = 0xe 1756 PTRACE_DETACH = 0x11
1757 RLIMIT_RTTIME = 0xf 1757 PTRACE_EVENTMSG_SYSCALL_ENTRY = 0x1
1758 RLIMIT_SIGPENDING = 0xb 1758 PTRACE_EVENTMSG_SYSCALL_EXIT = 0x2
1759 RLIMIT_STACK = 0x3 1759 PTRACE_EVENT_CLONE = 0x3
1760 RLIM_INFINITY = 0xffffffffffffffff 1760 PTRACE_EVENT_EXEC = 0x4
1761 RNDADDENTROPY = 0x40085203 1761 PTRACE_EVENT_EXIT = 0x6
1762 RNDADDTOENTCNT = 0x40045201 1762 PTRACE_EVENT_FORK = 0x1
1763 RNDCLEARPOOL = 0x5206 1763 PTRACE_EVENT_SECCOMP = 0x7
1764 RNDGETENTCNT = 0x80045200 1764 PTRACE_EVENT_STOP = 0x80
1765 RNDGETPOOL = 0x80085202 1765 PTRACE_EVENT_VFORK = 0x2
1766 RNDRESEEDCRNG = 0x5207 1766 PTRACE_EVENT_VFORK_DONE = 0x5
1767 RNDZAPENTCNT = 0x5204 1767 PTRACE_GETEVENTMSG = 0x4201
1768 RTAX_ADVMSS = 0x8 1768 PTRACE_GETFPREGS = 0xe
1769 RTAX_CC_ALGO = 0x10 1769 PTRACE_GETFPXREGS = 0x12
1770 RTAX_CWND = 0x7 1770 PTRACE_GETREGS = 0xc
1771 RTAX_FASTOPEN_NO_COOKIE = 0x11 1771 PTRACE_GETREGSET = 0x4204
1772 RTAX_FEATURES = 0xc 1772 PTRACE_GETSIGINFO = 0x4202
1773 RTAX_FEATURE_ALLFRAG = 0x8 1773 PTRACE_GETSIGMASK = 0x420a
1774 RTAX_FEATURE_ECN = 0x1 1774 PTRACE_GET_SYSCALL_INFO = 0x420e
1775 RTAX_FEATURE_MASK = 0xf 1775 PTRACE_GET_THREAD_AREA = 0x19
1776 RTAX_FEATURE_SACK = 0x2 1776 PTRACE_INTERRUPT = 0x4207
1777 RTAX_FEATURE_TIMESTAMP = 0x4 1777 PTRACE_KILL = 0x8
1778 RTAX_HOPLIMIT = 0xa 1778 PTRACE_LISTEN = 0x4208
1779 RTAX_INITCWND = 0xb 1779 PTRACE_OLDSETOPTIONS = 0x15
1780 RTAX_INITRWND = 0xe 1780 PTRACE_O_EXITKILL = 0x100000
1781 RTAX_LOCK = 0x1 1781 PTRACE_O_MASK = 0x3000ff
1782 RTAX_MAX = 0x11 1782 PTRACE_O_SUSPEND_SECCOMP = 0x200000
1783 RTAX_MTU = 0x2 1783 PTRACE_O_TRACECLONE = 0x8
1784 RTAX_QUICKACK = 0xf 1784 PTRACE_O_TRACEEXEC = 0x10
1785 RTAX_REORDERING = 0x9 1785 PTRACE_O_TRACEEXIT = 0x40
1786 RTAX_RTO_MIN = 0xd 1786 PTRACE_O_TRACEFORK = 0x2
1787 RTAX_RTT = 0x4 1787 PTRACE_O_TRACESECCOMP = 0x80
1788 RTAX_RTTVAR = 0x5 1788 PTRACE_O_TRACESYSGOOD = 0x1
1789 RTAX_SSTHRESH = 0x6 1789 PTRACE_O_TRACEVFORK = 0x4
1790 RTAX_UNSPEC = 0x0 1790 PTRACE_O_TRACEVFORKDONE = 0x20
1791 RTAX_WINDOW = 0x3 1791 PTRACE_PEEKDATA = 0x2
1792 RTA_ALIGNTO = 0x4 1792 PTRACE_PEEKSIGINFO = 0x4209
1793 RTA_MAX = 0x1d 1793 PTRACE_PEEKSIGINFO_SHARED = 0x1
1794 RTCF_DIRECTSRC = 0x4000000 1794 PTRACE_PEEKTEXT = 0x1
1795 RTCF_DOREDIRECT = 0x1000000 1795 PTRACE_PEEKUSR = 0x3
1796 RTCF_LOG = 0x2000000 1796 PTRACE_POKEDATA = 0x5
1797 RTCF_MASQ = 0x400000 1797 PTRACE_POKETEXT = 0x4
1798 RTCF_NAT = 0x800000 1798 PTRACE_POKEUSR = 0x6
1799 RTCF_VALVE = 0x200000 1799 PTRACE_SECCOMP_GET_FILTER = 0x420c
1800 RTC_AF = 0x20 1800 PTRACE_SECCOMP_GET_METADATA = 0x420d
1801 RTC_AIE_OFF = 0x7002 1801 PTRACE_SEIZE = 0x4206
1802 RTC_AIE_ON = 0x7001 1802 PTRACE_SETFPREGS = 0xf
1803 RTC_ALM_READ = 0x80247008 1803 PTRACE_SETFPXREGS = 0x13
1804 RTC_ALM_SET = 0x40247007 1804 PTRACE_SETOPTIONS = 0x4200
1805 RTC_EPOCH_READ = 0x8004700d 1805 PTRACE_SETREGS = 0xd
1806 RTC_EPOCH_SET = 0x4004700e 1806 PTRACE_SETREGSET = 0x4205
1807 RTC_IRQF = 0x80 1807 PTRACE_SETSIGINFO = 0x4203
1808 RTC_IRQP_READ = 0x8004700b 1808 PTRACE_SETSIGMASK = 0x420b
1809 RTC_IRQP_SET = 0x4004700c 1809 PTRACE_SET_THREAD_AREA = 0x1a
1810 RTC_MAX_FREQ = 0x2000 1810 PTRACE_SINGLEBLOCK = 0x21
1811 RTC_PF = 0x40 1811 PTRACE_SINGLESTEP = 0x9
1812 RTC_PIE_OFF = 0x7006 1812 PTRACE_SYSCALL = 0x18
1813 RTC_PIE_ON = 0x7005 1813 PTRACE_SYSCALL_INFO_ENTRY = 0x1
1814 RTC_PLL_GET = 0x801c7011 1814 PTRACE_SYSCALL_INFO_EXIT = 0x2
1815 RTC_PLL_SET = 0x401c7012 1815 PTRACE_SYSCALL_INFO_NONE = 0x0
1816 RTC_RD_TIME = 0x80247009 1816 PTRACE_SYSCALL_INFO_SECCOMP = 0x3
1817 RTC_SET_TIME = 0x4024700a 1817 PTRACE_SYSEMU = 0x1f
1818 RTC_UF = 0x10 1818 PTRACE_SYSEMU_SINGLESTEP = 0x20
1819 RTC_UIE_OFF = 0x7004 1819 PTRACE_TRACEME = 0x0
1820 RTC_UIE_ON = 0x7003 1820 QNX4_SUPER_MAGIC = 0x2f
1821 RTC_VL_CLR = 0x7014 1821 QNX6_SUPER_MAGIC = 0x68191122
1822 RTC_VL_READ = 0x80047013 1822 RAMFS_MAGIC = 0x858458f6
1823 RTC_WIE_OFF = 0x7010 1823 RDTGROUP_SUPER_MAGIC = 0x7655821
1824 RTC_WIE_ON = 0x700f 1824 REISERFS_SUPER_MAGIC = 0x52654973
1825 RTC_WKALM_RD = 0x80287010 1825 RENAME_EXCHANGE = 0x2
1826 RTC_WKALM_SET = 0x4028700f 1826 RENAME_NOREPLACE = 0x1
1827 RTF_ADDRCLASSMASK = 0xf8000000 1827 RENAME_WHITEOUT = 0x4
1828 RTF_ADDRCONF = 0x40000 1828 RLIMIT_AS = 0x9
1829 RTF_ALLONLINK = 0x20000 1829 RLIMIT_CORE = 0x4
1830 RTF_BROADCAST = 0x10000000 1830 RLIMIT_CPU = 0x0
1831 RTF_CACHE = 0x1000000 1831 RLIMIT_DATA = 0x2
1832 RTF_DEFAULT = 0x10000 1832 RLIMIT_FSIZE = 0x1
1833 RTF_DYNAMIC = 0x10 1833 RLIMIT_LOCKS = 0xa
1834 RTF_FLOW = 0x2000000 1834 RLIMIT_MEMLOCK = 0x8
1835 RTF_GATEWAY = 0x2 1835 RLIMIT_MSGQUEUE = 0xc
1836 RTF_HOST = 0x4 1836 RLIMIT_NICE = 0xd
1837 RTF_INTERFACE = 0x40000000 1837 RLIMIT_NOFILE = 0x7
1838 RTF_IRTT = 0x100 1838 RLIMIT_NPROC = 0x6
1839 RTF_LINKRT = 0x100000 1839 RLIMIT_RSS = 0x5
1840 RTF_LOCAL = 0x80000000 1840 RLIMIT_RTPRIO = 0xe
1841 RTF_MODIFIED = 0x20 1841 RLIMIT_RTTIME = 0xf
1842 RTF_MSS = 0x40 1842 RLIMIT_SIGPENDING = 0xb
1843 RTF_MTU = 0x40 1843 RLIMIT_STACK = 0x3
1844 RTF_MULTICAST = 0x20000000 1844 RLIM_INFINITY = 0xffffffffffffffff
1845 RTF_NAT = 0x8000000 1845 RNDADDENTROPY = 0x40085203
1846 RTF_NOFORWARD = 0x1000 1846 RNDADDTOENTCNT = 0x40045201
1847 RTF_NONEXTHOP = 0x200000 1847 RNDCLEARPOOL = 0x5206
1848 RTF_NOPMTUDISC = 0x4000 1848 RNDGETENTCNT = 0x80045200
1849 RTF_POLICY = 0x4000000 1849 RNDGETPOOL = 0x80085202
1850 RTF_REINSTATE = 0x8 1850 RNDRESEEDCRNG = 0x5207
1851 RTF_REJECT = 0x200 1851 RNDZAPENTCNT = 0x5204
1852 RTF_STATIC = 0x400 1852 RTAX_ADVMSS = 0x8
1853 RTF_THROW = 0x2000 1853 RTAX_CC_ALGO = 0x10
1854 RTF_UP = 0x1 1854 RTAX_CWND = 0x7
1855 RTF_WINDOW = 0x80 1855 RTAX_FASTOPEN_NO_COOKIE = 0x11
1856 RTF_XRESOLVE = 0x800 1856 RTAX_FEATURES = 0xc
1857 RTM_BASE = 0x10 1857 RTAX_FEATURE_ALLFRAG = 0x8
1858 RTM_DELACTION = 0x31 1858 RTAX_FEATURE_ECN = 0x1
1859 RTM_DELADDR = 0x15 1859 RTAX_FEATURE_MASK = 0xf
1860 RTM_DELADDRLABEL = 0x49 1860 RTAX_FEATURE_SACK = 0x2
1861 RTM_DELCHAIN = 0x65 1861 RTAX_FEATURE_TIMESTAMP = 0x4
1862 RTM_DELLINK = 0x11 1862 RTAX_HOPLIMIT = 0xa
1863 RTM_DELMDB = 0x55 1863 RTAX_INITCWND = 0xb
1864 RTM_DELNEIGH = 0x1d 1864 RTAX_INITRWND = 0xe
1865 RTM_DELNETCONF = 0x51 1865 RTAX_LOCK = 0x1
1866 RTM_DELNSID = 0x59 1866 RTAX_MAX = 0x11
1867 RTM_DELQDISC = 0x25 1867 RTAX_MTU = 0x2
1868 RTM_DELROUTE = 0x19 1868 RTAX_QUICKACK = 0xf
1869 RTM_DELRULE = 0x21 1869 RTAX_REORDERING = 0x9
1870 RTM_DELTCLASS = 0x29 1870 RTAX_RTO_MIN = 0xd
1871 RTM_DELTFILTER = 0x2d 1871 RTAX_RTT = 0x4
1872 RTM_F_CLONED = 0x200 1872 RTAX_RTTVAR = 0x5
1873 RTM_F_EQUALIZE = 0x400 1873 RTAX_SSTHRESH = 0x6
1874 RTM_F_FIB_MATCH = 0x2000 1874 RTAX_UNSPEC = 0x0
1875 RTM_F_LOOKUP_TABLE = 0x1000 1875 RTAX_WINDOW = 0x3
1876 RTM_F_NOTIFY = 0x100 1876 RTA_ALIGNTO = 0x4
1877 RTM_F_PREFIX = 0x800 1877 RTA_MAX = 0x1e
1878 RTM_GETACTION = 0x32 1878 RTCF_DIRECTSRC = 0x4000000
1879 RTM_GETADDR = 0x16 1879 RTCF_DOREDIRECT = 0x1000000
1880 RTM_GETADDRLABEL = 0x4a 1880 RTCF_LOG = 0x2000000
1881 RTM_GETANYCAST = 0x3e 1881 RTCF_MASQ = 0x400000
1882 RTM_GETCHAIN = 0x66 1882 RTCF_NAT = 0x800000
1883 RTM_GETDCB = 0x4e 1883 RTCF_VALVE = 0x200000
1884 RTM_GETLINK = 0x12 1884 RTC_AF = 0x20
1885 RTM_GETMDB = 0x56 1885 RTC_AIE_OFF = 0x7002
1886 RTM_GETMULTICAST = 0x3a 1886 RTC_AIE_ON = 0x7001
1887 RTM_GETNEIGH = 0x1e 1887 RTC_ALM_READ = 0x80247008
1888 RTM_GETNEIGHTBL = 0x42 1888 RTC_ALM_SET = 0x40247007
1889 RTM_GETNETCONF = 0x52 1889 RTC_EPOCH_READ = 0x8004700d
1890 RTM_GETNSID = 0x5a 1890 RTC_EPOCH_SET = 0x4004700e
1891 RTM_GETQDISC = 0x26 1891 RTC_IRQF = 0x80
1892 RTM_GETROUTE = 0x1a 1892 RTC_IRQP_READ = 0x8004700b
1893 RTM_GETRULE = 0x22 1893 RTC_IRQP_SET = 0x4004700c
1894 RTM_GETSTATS = 0x5e 1894 RTC_MAX_FREQ = 0x2000
1895 RTM_GETTCLASS = 0x2a 1895 RTC_PF = 0x40
1896 RTM_GETTFILTER = 0x2e 1896 RTC_PIE_OFF = 0x7006
1897 RTM_MAX = 0x67 1897 RTC_PIE_ON = 0x7005
1898 RTM_NEWACTION = 0x30 1898 RTC_PLL_GET = 0x801c7011
1899 RTM_NEWADDR = 0x14 1899 RTC_PLL_SET = 0x401c7012
1900 RTM_NEWADDRLABEL = 0x48 1900 RTC_RD_TIME = 0x80247009
1901 RTM_NEWCACHEREPORT = 0x60 1901 RTC_SET_TIME = 0x4024700a
1902 RTM_NEWCHAIN = 0x64 1902 RTC_UF = 0x10
1903 RTM_NEWLINK = 0x10 1903 RTC_UIE_OFF = 0x7004
1904 RTM_NEWMDB = 0x54 1904 RTC_UIE_ON = 0x7003
1905 RTM_NEWNDUSEROPT = 0x44 1905 RTC_VL_CLR = 0x7014
1906 RTM_NEWNEIGH = 0x1c 1906 RTC_VL_READ = 0x80047013
1907 RTM_NEWNEIGHTBL = 0x40 1907 RTC_WIE_OFF = 0x7010
1908 RTM_NEWNETCONF = 0x50 1908 RTC_WIE_ON = 0x700f
1909 RTM_NEWNSID = 0x58 1909 RTC_WKALM_RD = 0x80287010
1910 RTM_NEWPREFIX = 0x34 1910 RTC_WKALM_SET = 0x4028700f
1911 RTM_NEWQDISC = 0x24 1911 RTF_ADDRCLASSMASK = 0xf8000000
1912 RTM_NEWROUTE = 0x18 1912 RTF_ADDRCONF = 0x40000
1913 RTM_NEWRULE = 0x20 1913 RTF_ALLONLINK = 0x20000
1914 RTM_NEWSTATS = 0x5c 1914 RTF_BROADCAST = 0x10000000
1915 RTM_NEWTCLASS = 0x28 1915 RTF_CACHE = 0x1000000
1916 RTM_NEWTFILTER = 0x2c 1916 RTF_DEFAULT = 0x10000
1917 RTM_NR_FAMILIES = 0x16 1917 RTF_DYNAMIC = 0x10
1918 RTM_NR_MSGTYPES = 0x58 1918 RTF_FLOW = 0x2000000
1919 RTM_SETDCB = 0x4f 1919 RTF_GATEWAY = 0x2
1920 RTM_SETLINK = 0x13 1920 RTF_HOST = 0x4
1921 RTM_SETNEIGHTBL = 0x43 1921 RTF_INTERFACE = 0x40000000
1922 RTNH_ALIGNTO = 0x4 1922 RTF_IRTT = 0x100
1923 RTNH_COMPARE_MASK = 0x19 1923 RTF_LINKRT = 0x100000
1924 RTNH_F_DEAD = 0x1 1924 RTF_LOCAL = 0x80000000
1925 RTNH_F_LINKDOWN = 0x10 1925 RTF_MODIFIED = 0x20
1926 RTNH_F_OFFLOAD = 0x8 1926 RTF_MSS = 0x40
1927 RTNH_F_ONLINK = 0x4 1927 RTF_MTU = 0x40
1928 RTNH_F_PERVASIVE = 0x2 1928 RTF_MULTICAST = 0x20000000
1929 RTNH_F_UNRESOLVED = 0x20 1929 RTF_NAT = 0x8000000
1930 RTN_MAX = 0xb 1930 RTF_NOFORWARD = 0x1000
1931 RTPROT_BABEL = 0x2a 1931 RTF_NONEXTHOP = 0x200000
1932 RTPROT_BGP = 0xba 1932 RTF_NOPMTUDISC = 0x4000
1933 RTPROT_BIRD = 0xc 1933 RTF_POLICY = 0x4000000
1934 RTPROT_BOOT = 0x3 1934 RTF_REINSTATE = 0x8
1935 RTPROT_DHCP = 0x10 1935 RTF_REJECT = 0x200
1936 RTPROT_DNROUTED = 0xd 1936 RTF_STATIC = 0x400
1937 RTPROT_EIGRP = 0xc0 1937 RTF_THROW = 0x2000
1938 RTPROT_GATED = 0x8 1938 RTF_UP = 0x1
1939 RTPROT_ISIS = 0xbb 1939 RTF_WINDOW = 0x80
1940 RTPROT_KERNEL = 0x2 1940 RTF_XRESOLVE = 0x800
1941 RTPROT_MROUTED = 0x11 1941 RTMGRP_DECnet_IFADDR = 0x1000
1942 RTPROT_MRT = 0xa 1942 RTMGRP_DECnet_ROUTE = 0x4000
1943 RTPROT_NTK = 0xf 1943 RTMGRP_IPV4_IFADDR = 0x10
1944 RTPROT_OSPF = 0xbc 1944 RTMGRP_IPV4_MROUTE = 0x20
1945 RTPROT_RA = 0x9 1945 RTMGRP_IPV4_ROUTE = 0x40
1946 RTPROT_REDIRECT = 0x1 1946 RTMGRP_IPV4_RULE = 0x80
1947 RTPROT_RIP = 0xbd 1947 RTMGRP_IPV6_IFADDR = 0x100
1948 RTPROT_STATIC = 0x4 1948 RTMGRP_IPV6_IFINFO = 0x800
1949 RTPROT_UNSPEC = 0x0 1949 RTMGRP_IPV6_MROUTE = 0x200
1950 RTPROT_XORP = 0xe 1950 RTMGRP_IPV6_PREFIX = 0x20000
1951 RTPROT_ZEBRA = 0xb 1951 RTMGRP_IPV6_ROUTE = 0x400
1952 RT_CLASS_DEFAULT = 0xfd 1952 RTMGRP_LINK = 0x1
1953 RT_CLASS_LOCAL = 0xff 1953 RTMGRP_NEIGH = 0x4
1954 RT_CLASS_MAIN = 0xfe 1954 RTMGRP_NOTIFY = 0x2
1955 RT_CLASS_MAX = 0xff 1955 RTMGRP_TC = 0x8
1956 RT_CLASS_UNSPEC = 0x0 1956 RTM_BASE = 0x10
1957 RUSAGE_CHILDREN = -0x1 1957 RTM_DELACTION = 0x31
1958 RUSAGE_SELF = 0x0 1958 RTM_DELADDR = 0x15
1959 RUSAGE_THREAD = 0x1 1959 RTM_DELADDRLABEL = 0x49
1960 SCM_CREDENTIALS = 0x2 1960 RTM_DELCHAIN = 0x65
1961 SCM_RIGHTS = 0x1 1961 RTM_DELLINK = 0x11
1962 SCM_TIMESTAMP = 0x1d 1962 RTM_DELLINKPROP = 0x6d
1963 SCM_TIMESTAMPING = 0x25 1963 RTM_DELMDB = 0x55
1964 SCM_TIMESTAMPING_OPT_STATS = 0x36 1964 RTM_DELNEIGH = 0x1d
1965 SCM_TIMESTAMPING_PKTINFO = 0x3a 1965 RTM_DELNETCONF = 0x51
1966 SCM_TIMESTAMPNS = 0x23 1966 RTM_DELNEXTHOP = 0x69
1967 SCM_TXTIME = 0x3d 1967 RTM_DELNSID = 0x59
1968 SCM_WIFI_STATUS = 0x29 1968 RTM_DELQDISC = 0x25
1969 SC_LOG_FLUSH = 0x100000 1969 RTM_DELROUTE = 0x19
1970 SECCOMP_MODE_DISABLED = 0x0 1970 RTM_DELRULE = 0x21
1971 SECCOMP_MODE_FILTER = 0x2 1971 RTM_DELTCLASS = 0x29
1972 SECCOMP_MODE_STRICT = 0x1 1972 RTM_DELTFILTER = 0x2d
1973 SECURITYFS_MAGIC = 0x73636673 1973 RTM_F_CLONED = 0x200
1974 SELINUX_MAGIC = 0xf97cff8c 1974 RTM_F_EQUALIZE = 0x400
1975 SFD_CLOEXEC = 0x80000 1975 RTM_F_FIB_MATCH = 0x2000
1976 SFD_NONBLOCK = 0x800 1976 RTM_F_LOOKUP_TABLE = 0x1000
1977 SHUT_RD = 0x0 1977 RTM_F_NOTIFY = 0x100
1978 SHUT_RDWR = 0x2 1978 RTM_F_PREFIX = 0x800
1979 SHUT_WR = 0x1 1979 RTM_GETACTION = 0x32
1980 SIOCADDDLCI = 0x8980 1980 RTM_GETADDR = 0x16
1981 SIOCADDMULTI = 0x8931 1981 RTM_GETADDRLABEL = 0x4a
1982 SIOCADDRT = 0x890b 1982 RTM_GETANYCAST = 0x3e
1983 SIOCATMARK = 0x8905 1983 RTM_GETCHAIN = 0x66
1984 SIOCBONDCHANGEACTIVE = 0x8995 1984 RTM_GETDCB = 0x4e
1985 SIOCBONDENSLAVE = 0x8990 1985 RTM_GETLINK = 0x12
1986 SIOCBONDINFOQUERY = 0x8994 1986 RTM_GETLINKPROP = 0x6e
1987 SIOCBONDRELEASE = 0x8991 1987 RTM_GETMDB = 0x56
1988 SIOCBONDSETHWADDR = 0x8992 1988 RTM_GETMULTICAST = 0x3a
1989 SIOCBONDSLAVEINFOQUERY = 0x8993 1989 RTM_GETNEIGH = 0x1e
1990 SIOCBRADDBR = 0x89a0 1990 RTM_GETNEIGHTBL = 0x42
1991 SIOCBRADDIF = 0x89a2 1991 RTM_GETNETCONF = 0x52
1992 SIOCBRDELBR = 0x89a1 1992 RTM_GETNEXTHOP = 0x6a
1993 SIOCBRDELIF = 0x89a3 1993 RTM_GETNSID = 0x5a
1994 SIOCDARP = 0x8953 1994 RTM_GETQDISC = 0x26
1995 SIOCDELDLCI = 0x8981 1995 RTM_GETROUTE = 0x1a
1996 SIOCDELMULTI = 0x8932 1996 RTM_GETRULE = 0x22
1997 SIOCDELRT = 0x890c 1997 RTM_GETSTATS = 0x5e
1998 SIOCDEVPRIVATE = 0x89f0 1998 RTM_GETTCLASS = 0x2a
1999 SIOCDIFADDR = 0x8936 1999 RTM_GETTFILTER = 0x2e
2000 SIOCDRARP = 0x8960 2000 RTM_MAX = 0x6f
2001 SIOCETHTOOL = 0x8946 2001 RTM_NEWACTION = 0x30
2002 SIOCGARP = 0x8954 2002 RTM_NEWADDR = 0x14
2003 SIOCGHWTSTAMP = 0x89b1 2003 RTM_NEWADDRLABEL = 0x48
2004 SIOCGIFADDR = 0x8915 2004 RTM_NEWCACHEREPORT = 0x60
2005 SIOCGIFBR = 0x8940 2005 RTM_NEWCHAIN = 0x64
2006 SIOCGIFBRDADDR = 0x8919 2006 RTM_NEWLINK = 0x10
2007 SIOCGIFCONF = 0x8912 2007 RTM_NEWLINKPROP = 0x6c
2008 SIOCGIFCOUNT = 0x8938 2008 RTM_NEWMDB = 0x54
2009 SIOCGIFDSTADDR = 0x8917 2009 RTM_NEWNDUSEROPT = 0x44
2010 SIOCGIFENCAP = 0x8925 2010 RTM_NEWNEIGH = 0x1c
2011 SIOCGIFFLAGS = 0x8913 2011 RTM_NEWNEIGHTBL = 0x40
2012 SIOCGIFHWADDR = 0x8927 2012 RTM_NEWNETCONF = 0x50
2013 SIOCGIFINDEX = 0x8933 2013 RTM_NEWNEXTHOP = 0x68
2014 SIOCGIFMAP = 0x8970 2014 RTM_NEWNSID = 0x58
2015 SIOCGIFMEM = 0x891f 2015 RTM_NEWPREFIX = 0x34
2016 SIOCGIFMETRIC = 0x891d 2016 RTM_NEWQDISC = 0x24
2017 SIOCGIFMTU = 0x8921 2017 RTM_NEWROUTE = 0x18
2018 SIOCGIFNAME = 0x8910 2018 RTM_NEWRULE = 0x20
2019 SIOCGIFNETMASK = 0x891b 2019 RTM_NEWSTATS = 0x5c
2020 SIOCGIFPFLAGS = 0x8935 2020 RTM_NEWTCLASS = 0x28
2021 SIOCGIFSLAVE = 0x8929 2021 RTM_NEWTFILTER = 0x2c
2022 SIOCGIFTXQLEN = 0x8942 2022 RTM_NR_FAMILIES = 0x18
2023 SIOCGIFVLAN = 0x8982 2023 RTM_NR_MSGTYPES = 0x60
2024 SIOCGMIIPHY = 0x8947 2024 RTM_SETDCB = 0x4f
2025 SIOCGMIIREG = 0x8948 2025 RTM_SETLINK = 0x13
2026 SIOCGPGRP = 0x8904 2026 RTM_SETNEIGHTBL = 0x43
2027 SIOCGPPPCSTATS = 0x89f2 2027 RTNH_ALIGNTO = 0x4
2028 SIOCGPPPSTATS = 0x89f0 2028 RTNH_COMPARE_MASK = 0x19
2029 SIOCGPPPVER = 0x89f1 2029 RTNH_F_DEAD = 0x1
2030 SIOCGRARP = 0x8961 2030 RTNH_F_LINKDOWN = 0x10
2031 SIOCGSKNS = 0x894c 2031 RTNH_F_OFFLOAD = 0x8
2032 SIOCGSTAMP = 0x8906 2032 RTNH_F_ONLINK = 0x4
2033 SIOCGSTAMPNS = 0x8907 2033 RTNH_F_PERVASIVE = 0x2
2034 SIOCGSTAMPNS_NEW = 0x80108907 2034 RTNH_F_UNRESOLVED = 0x20
2035 SIOCGSTAMPNS_OLD = 0x8907 2035 RTN_MAX = 0xb
2036 SIOCGSTAMP_NEW = 0x80108906 2036 RTPROT_BABEL = 0x2a
2037 SIOCGSTAMP_OLD = 0x8906 2037 RTPROT_BGP = 0xba
2038 SIOCINQ = 0x541b 2038 RTPROT_BIRD = 0xc
2039 SIOCOUTQ = 0x5411 2039 RTPROT_BOOT = 0x3
2040 SIOCOUTQNSD = 0x894b 2040 RTPROT_DHCP = 0x10
2041 SIOCPROTOPRIVATE = 0x89e0 2041 RTPROT_DNROUTED = 0xd
2042 SIOCRTMSG = 0x890d 2042 RTPROT_EIGRP = 0xc0
2043 SIOCSARP = 0x8955 2043 RTPROT_GATED = 0x8
2044 SIOCSHWTSTAMP = 0x89b0 2044 RTPROT_ISIS = 0xbb
2045 SIOCSIFADDR = 0x8916 2045 RTPROT_KERNEL = 0x2
2046 SIOCSIFBR = 0x8941 2046 RTPROT_MROUTED = 0x11
2047 SIOCSIFBRDADDR = 0x891a 2047 RTPROT_MRT = 0xa
2048 SIOCSIFDSTADDR = 0x8918 2048 RTPROT_NTK = 0xf
2049 SIOCSIFENCAP = 0x8926 2049 RTPROT_OSPF = 0xbc
2050 SIOCSIFFLAGS = 0x8914 2050 RTPROT_RA = 0x9
2051 SIOCSIFHWADDR = 0x8924 2051 RTPROT_REDIRECT = 0x1
2052 SIOCSIFHWBROADCAST = 0x8937 2052 RTPROT_RIP = 0xbd
2053 SIOCSIFLINK = 0x8911 2053 RTPROT_STATIC = 0x4
2054 SIOCSIFMAP = 0x8971 2054 RTPROT_UNSPEC = 0x0
2055 SIOCSIFMEM = 0x8920 2055 RTPROT_XORP = 0xe
2056 SIOCSIFMETRIC = 0x891e 2056 RTPROT_ZEBRA = 0xb
2057 SIOCSIFMTU = 0x8922 2057 RT_CLASS_DEFAULT = 0xfd
2058 SIOCSIFNAME = 0x8923 2058 RT_CLASS_LOCAL = 0xff
2059 SIOCSIFNETMASK = 0x891c 2059 RT_CLASS_MAIN = 0xfe
2060 SIOCSIFPFLAGS = 0x8934 2060 RT_CLASS_MAX = 0xff
2061 SIOCSIFSLAVE = 0x8930 2061 RT_CLASS_UNSPEC = 0x0
2062 SIOCSIFTXQLEN = 0x8943 2062 RUSAGE_CHILDREN = -0x1
2063 SIOCSIFVLAN = 0x8983 2063 RUSAGE_SELF = 0x0
2064 SIOCSMIIREG = 0x8949 2064 RUSAGE_THREAD = 0x1
2065 SIOCSPGRP = 0x8902 2065 RWF_APPEND = 0x10
2066 SIOCSRARP = 0x8962 2066 RWF_DSYNC = 0x2
2067 SIOCWANDEV = 0x894a 2067 RWF_HIPRI = 0x1
2068 SMACK_MAGIC = 0x43415d53 2068 RWF_NOWAIT = 0x8
2069 SMART_AUTOSAVE = 0xd2 2069 RWF_SUPPORTED = 0x1f
2070 SMART_AUTO_OFFLINE = 0xdb 2070 RWF_SYNC = 0x4
2071 SMART_DISABLE = 0xd9 2071 RWF_WRITE_LIFE_NOT_SET = 0x0
2072 SMART_ENABLE = 0xd8 2072 SCM_CREDENTIALS = 0x2
2073 SMART_HCYL_PASS = 0xc2 2073 SCM_RIGHTS = 0x1
2074 SMART_IMMEDIATE_OFFLINE = 0xd4 2074 SCM_TIMESTAMP = 0x1d
2075 SMART_LCYL_PASS = 0x4f 2075 SCM_TIMESTAMPING = 0x25
2076 SMART_READ_LOG_SECTOR = 0xd5 2076 SCM_TIMESTAMPING_OPT_STATS = 0x36
2077 SMART_READ_THRESHOLDS = 0xd1 2077 SCM_TIMESTAMPING_PKTINFO = 0x3a
2078 SMART_READ_VALUES = 0xd0 2078 SCM_TIMESTAMPNS = 0x23
2079 SMART_SAVE = 0xd3 2079 SCM_TXTIME = 0x3d
2080 SMART_STATUS = 0xda 2080 SCM_WIFI_STATUS = 0x29
2081 SMART_WRITE_LOG_SECTOR = 0xd6 2081 SC_LOG_FLUSH = 0x100000
2082 SMART_WRITE_THRESHOLDS = 0xd7 2082 SECCOMP_MODE_DISABLED = 0x0
2083 SMB_SUPER_MAGIC = 0x517b 2083 SECCOMP_MODE_FILTER = 0x2
2084 SOCKFS_MAGIC = 0x534f434b 2084 SECCOMP_MODE_STRICT = 0x1
2085 SOCK_CLOEXEC = 0x80000 2085 SECURITYFS_MAGIC = 0x73636673
2086 SOCK_DCCP = 0x6 2086 SELINUX_MAGIC = 0xf97cff8c
2087 SOCK_DGRAM = 0x2 2087 SFD_CLOEXEC = 0x80000
2088 SOCK_IOC_TYPE = 0x89 2088 SFD_NONBLOCK = 0x800
2089 SOCK_NONBLOCK = 0x800 2089 SHUT_RD = 0x0
2090 SOCK_PACKET = 0xa 2090 SHUT_RDWR = 0x2
2091 SOCK_RAW = 0x3 2091 SHUT_WR = 0x1
2092 SOCK_RDM = 0x4 2092 SIOCADDDLCI = 0x8980
2093 SOCK_SEQPACKET = 0x5 2093 SIOCADDMULTI = 0x8931
2094 SOCK_STREAM = 0x1 2094 SIOCADDRT = 0x890b
2095 SOL_AAL = 0x109 2095 SIOCATMARK = 0x8905
2096 SOL_ALG = 0x117 2096 SIOCBONDCHANGEACTIVE = 0x8995
2097 SOL_ATM = 0x108 2097 SIOCBONDENSLAVE = 0x8990
2098 SOL_CAIF = 0x116 2098 SIOCBONDINFOQUERY = 0x8994
2099 SOL_CAN_BASE = 0x64 2099 SIOCBONDRELEASE = 0x8991
2100 SOL_DCCP = 0x10d 2100 SIOCBONDSETHWADDR = 0x8992
2101 SOL_DECNET = 0x105 2101 SIOCBONDSLAVEINFOQUERY = 0x8993
2102 SOL_ICMPV6 = 0x3a 2102 SIOCBRADDBR = 0x89a0
2103 SOL_IP = 0x0 2103 SIOCBRADDIF = 0x89a2
2104 SOL_IPV6 = 0x29 2104 SIOCBRDELBR = 0x89a1
2105 SOL_IRDA = 0x10a 2105 SIOCBRDELIF = 0x89a3
2106 SOL_IUCV = 0x115 2106 SIOCDARP = 0x8953
2107 SOL_KCM = 0x119 2107 SIOCDELDLCI = 0x8981
2108 SOL_LLC = 0x10c 2108 SIOCDELMULTI = 0x8932
2109 SOL_NETBEUI = 0x10b 2109 SIOCDELRT = 0x890c
2110 SOL_NETLINK = 0x10e 2110 SIOCDEVPRIVATE = 0x89f0
2111 SOL_NFC = 0x118 2111 SIOCDIFADDR = 0x8936
2112 SOL_PACKET = 0x107 2112 SIOCDRARP = 0x8960
2113 SOL_PNPIPE = 0x113 2113 SIOCETHTOOL = 0x8946
2114 SOL_PPPOL2TP = 0x111 2114 SIOCGARP = 0x8954
2115 SOL_RAW = 0xff 2115 SIOCGETLINKNAME = 0x89e0
2116 SOL_RDS = 0x114 2116 SIOCGETNODEID = 0x89e1
2117 SOL_RXRPC = 0x110 2117 SIOCGHWTSTAMP = 0x89b1
2118 SOL_SOCKET = 0x1 2118 SIOCGIFADDR = 0x8915
2119 SOL_TCP = 0x6 2119 SIOCGIFBR = 0x8940
2120 SOL_TIPC = 0x10f 2120 SIOCGIFBRDADDR = 0x8919
2121 SOL_TLS = 0x11a 2121 SIOCGIFCONF = 0x8912
2122 SOL_X25 = 0x106 2122 SIOCGIFCOUNT = 0x8938
2123 SOL_XDP = 0x11b 2123 SIOCGIFDSTADDR = 0x8917
2124 SOMAXCONN = 0x80 2124 SIOCGIFENCAP = 0x8925
2125 SO_ACCEPTCONN = 0x1e 2125 SIOCGIFFLAGS = 0x8913
2126 SO_ATTACH_BPF = 0x32 2126 SIOCGIFHWADDR = 0x8927
2127 SO_ATTACH_FILTER = 0x1a 2127 SIOCGIFINDEX = 0x8933
2128 SO_ATTACH_REUSEPORT_CBPF = 0x33 2128 SIOCGIFMAP = 0x8970
2129 SO_ATTACH_REUSEPORT_EBPF = 0x34 2129 SIOCGIFMEM = 0x891f
2130 SO_BINDTODEVICE = 0x19 2130 SIOCGIFMETRIC = 0x891d
2131 SO_BINDTOIFINDEX = 0x3e 2131 SIOCGIFMTU = 0x8921
2132 SO_BPF_EXTENSIONS = 0x30 2132 SIOCGIFNAME = 0x8910
2133 SO_BROADCAST = 0x6 2133 SIOCGIFNETMASK = 0x891b
2134 SO_BSDCOMPAT = 0xe 2134 SIOCGIFPFLAGS = 0x8935
2135 SO_BUSY_POLL = 0x2e 2135 SIOCGIFSLAVE = 0x8929
2136 SO_CNX_ADVICE = 0x35 2136 SIOCGIFTXQLEN = 0x8942
2137 SO_COOKIE = 0x39 2137 SIOCGIFVLAN = 0x8982
2138 SO_DEBUG = 0x1 2138 SIOCGMIIPHY = 0x8947
2139 SO_DETACH_BPF = 0x1b 2139 SIOCGMIIREG = 0x8948
2140 SO_DETACH_FILTER = 0x1b 2140 SIOCGPGRP = 0x8904
2141 SO_DOMAIN = 0x27 2141 SIOCGPPPCSTATS = 0x89f2
2142 SO_DONTROUTE = 0x5 2142 SIOCGPPPSTATS = 0x89f0
2143 SO_EE_CODE_TXTIME_INVALID_PARAM = 0x1 2143 SIOCGPPPVER = 0x89f1
2144 SO_EE_CODE_TXTIME_MISSED = 0x2 2144 SIOCGRARP = 0x8961
2145 SO_EE_CODE_ZEROCOPY_COPIED = 0x1 2145 SIOCGSKNS = 0x894c
2146 SO_EE_ORIGIN_ICMP = 0x2 2146 SIOCGSTAMP = 0x8906
2147 SO_EE_ORIGIN_ICMP6 = 0x3 2147 SIOCGSTAMPNS = 0x8907
2148 SO_EE_ORIGIN_LOCAL = 0x1 2148 SIOCGSTAMPNS_NEW = 0x80108907
2149 SO_EE_ORIGIN_NONE = 0x0 2149 SIOCGSTAMPNS_OLD = 0x8907
2150 SO_EE_ORIGIN_TIMESTAMPING = 0x4 2150 SIOCGSTAMP_NEW = 0x80108906
2151 SO_EE_ORIGIN_TXSTATUS = 0x4 2151 SIOCGSTAMP_OLD = 0x8906
2152 SO_EE_ORIGIN_TXTIME = 0x6 2152 SIOCINQ = 0x541b
2153 SO_EE_ORIGIN_ZEROCOPY = 0x5 2153 SIOCOUTQ = 0x5411
2154 SO_ERROR = 0x4 2154 SIOCOUTQNSD = 0x894b
2155 SO_GET_FILTER = 0x1a 2155 SIOCPROTOPRIVATE = 0x89e0
2156 SO_INCOMING_CPU = 0x31 2156 SIOCRTMSG = 0x890d
2157 SO_INCOMING_NAPI_ID = 0x38 2157 SIOCSARP = 0x8955
2158 SO_KEEPALIVE = 0x9 2158 SIOCSHWTSTAMP = 0x89b0
2159 SO_LINGER = 0xd 2159 SIOCSIFADDR = 0x8916
2160 SO_LOCK_FILTER = 0x2c 2160 SIOCSIFBR = 0x8941
2161 SO_MARK = 0x24 2161 SIOCSIFBRDADDR = 0x891a
2162 SO_MAX_PACING_RATE = 0x2f 2162 SIOCSIFDSTADDR = 0x8918
2163 SO_MEMINFO = 0x37 2163 SIOCSIFENCAP = 0x8926
2164 SO_NOFCS = 0x2b 2164 SIOCSIFFLAGS = 0x8914
2165 SO_NO_CHECK = 0xb 2165 SIOCSIFHWADDR = 0x8924
2166 SO_OOBINLINE = 0xa 2166 SIOCSIFHWBROADCAST = 0x8937
2167 SO_PASSCRED = 0x10 2167 SIOCSIFLINK = 0x8911
2168 SO_PASSSEC = 0x22 2168 SIOCSIFMAP = 0x8971
2169 SO_PEEK_OFF = 0x2a 2169 SIOCSIFMEM = 0x8920
2170 SO_PEERCRED = 0x11 2170 SIOCSIFMETRIC = 0x891e
2171 SO_PEERGROUPS = 0x3b 2171 SIOCSIFMTU = 0x8922
2172 SO_PEERNAME = 0x1c 2172 SIOCSIFNAME = 0x8923
2173 SO_PEERSEC = 0x1f 2173 SIOCSIFNETMASK = 0x891c
2174 SO_PRIORITY = 0xc 2174 SIOCSIFPFLAGS = 0x8934
2175 SO_PROTOCOL = 0x26 2175 SIOCSIFSLAVE = 0x8930
2176 SO_RCVBUF = 0x8 2176 SIOCSIFTXQLEN = 0x8943
2177 SO_RCVBUFFORCE = 0x21 2177 SIOCSIFVLAN = 0x8983
2178 SO_RCVLOWAT = 0x12 2178 SIOCSMIIREG = 0x8949
2179 SO_RCVTIMEO = 0x14 2179 SIOCSPGRP = 0x8902
2180 SO_RCVTIMEO_NEW = 0x42 2180 SIOCSRARP = 0x8962
2181 SO_RCVTIMEO_OLD = 0x14 2181 SIOCWANDEV = 0x894a
2182 SO_REUSEADDR = 0x2 2182 SMACK_MAGIC = 0x43415d53
2183 SO_REUSEPORT = 0xf 2183 SMART_AUTOSAVE = 0xd2
2184 SO_RXQ_OVFL = 0x28 2184 SMART_AUTO_OFFLINE = 0xdb
2185 SO_SECURITY_AUTHENTICATION = 0x16 2185 SMART_DISABLE = 0xd9
2186 SO_SECURITY_ENCRYPTION_NETWORK = 0x18 2186 SMART_ENABLE = 0xd8
2187 SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17 2187 SMART_HCYL_PASS = 0xc2
2188 SO_SELECT_ERR_QUEUE = 0x2d 2188 SMART_IMMEDIATE_OFFLINE = 0xd4
2189 SO_SNDBUF = 0x7 2189 SMART_LCYL_PASS = 0x4f
2190 SO_SNDBUFFORCE = 0x20 2190 SMART_READ_LOG_SECTOR = 0xd5
2191 SO_SNDLOWAT = 0x13 2191 SMART_READ_THRESHOLDS = 0xd1
2192 SO_SNDTIMEO = 0x15 2192 SMART_READ_VALUES = 0xd0
2193 SO_SNDTIMEO_NEW = 0x43 2193 SMART_SAVE = 0xd3
2194 SO_SNDTIMEO_OLD = 0x15 2194 SMART_STATUS = 0xda
2195 SO_TIMESTAMP = 0x1d 2195 SMART_WRITE_LOG_SECTOR = 0xd6
2196 SO_TIMESTAMPING = 0x25 2196 SMART_WRITE_THRESHOLDS = 0xd7
2197 SO_TIMESTAMPING_NEW = 0x41 2197 SMB_SUPER_MAGIC = 0x517b
2198 SO_TIMESTAMPING_OLD = 0x25 2198 SOCKFS_MAGIC = 0x534f434b
2199 SO_TIMESTAMPNS = 0x23 2199 SOCK_CLOEXEC = 0x80000
2200 SO_TIMESTAMPNS_NEW = 0x40 2200 SOCK_DCCP = 0x6
2201 SO_TIMESTAMPNS_OLD = 0x23 2201 SOCK_DGRAM = 0x2
2202 SO_TIMESTAMP_NEW = 0x3f 2202 SOCK_IOC_TYPE = 0x89
2203 SO_TIMESTAMP_OLD = 0x1d 2203 SOCK_NONBLOCK = 0x800
2204 SO_TXTIME = 0x3d 2204 SOCK_PACKET = 0xa
2205 SO_TYPE = 0x3 2205 SOCK_RAW = 0x3
2206 SO_VM_SOCKETS_BUFFER_MAX_SIZE = 0x2 2206 SOCK_RDM = 0x4
2207 SO_VM_SOCKETS_BUFFER_MIN_SIZE = 0x1 2207 SOCK_SEQPACKET = 0x5
2208 SO_VM_SOCKETS_BUFFER_SIZE = 0x0 2208 SOCK_STREAM = 0x1
2209 SO_VM_SOCKETS_CONNECT_TIMEOUT = 0x6 2209 SOL_AAL = 0x109
2210 SO_VM_SOCKETS_NONBLOCK_TXRX = 0x7 2210 SOL_ALG = 0x117
2211 SO_VM_SOCKETS_PEER_HOST_VM_ID = 0x3 2211 SOL_ATM = 0x108
2212 SO_VM_SOCKETS_TRUSTED = 0x5 2212 SOL_CAIF = 0x116
2213 SO_WIFI_STATUS = 0x29 2213 SOL_CAN_BASE = 0x64
2214 SO_ZEROCOPY = 0x3c 2214 SOL_DCCP = 0x10d
2215 SPLICE_F_GIFT = 0x8 2215 SOL_DECNET = 0x105
2216 SPLICE_F_MORE = 0x4 2216 SOL_ICMPV6 = 0x3a
2217 SPLICE_F_MOVE = 0x1 2217 SOL_IP = 0x0
2218 SPLICE_F_NONBLOCK = 0x2 2218 SOL_IPV6 = 0x29
2219 SQUASHFS_MAGIC = 0x73717368 2219 SOL_IRDA = 0x10a
2220 STACK_END_MAGIC = 0x57ac6e9d 2220 SOL_IUCV = 0x115
2221 STATX_ALL = 0xfff 2221 SOL_KCM = 0x119
2222 STATX_ATIME = 0x20 2222 SOL_LLC = 0x10c
2223 STATX_ATTR_APPEND = 0x20 2223 SOL_NETBEUI = 0x10b
2224 STATX_ATTR_AUTOMOUNT = 0x1000 2224 SOL_NETLINK = 0x10e
2225 STATX_ATTR_COMPRESSED = 0x4 2225 SOL_NFC = 0x118
2226 STATX_ATTR_ENCRYPTED = 0x800 2226 SOL_PACKET = 0x107
2227 STATX_ATTR_IMMUTABLE = 0x10 2227 SOL_PNPIPE = 0x113
2228 STATX_ATTR_NODUMP = 0x40 2228 SOL_PPPOL2TP = 0x111
2229 STATX_BASIC_STATS = 0x7ff 2229 SOL_RAW = 0xff
2230 STATX_BLOCKS = 0x400 2230 SOL_RDS = 0x114
2231 STATX_BTIME = 0x800 2231 SOL_RXRPC = 0x110
2232 STATX_CTIME = 0x80 2232 SOL_SOCKET = 0x1
2233 STATX_GID = 0x10 2233 SOL_TCP = 0x6
2234 STATX_INO = 0x100 2234 SOL_TIPC = 0x10f
2235 STATX_MODE = 0x2 2235 SOL_TLS = 0x11a
2236 STATX_MTIME = 0x40 2236 SOL_X25 = 0x106
2237 STATX_NLINK = 0x4 2237 SOL_XDP = 0x11b
2238 STATX_SIZE = 0x200 2238 SOMAXCONN = 0x1000
2239 STATX_TYPE = 0x1 2239 SO_ACCEPTCONN = 0x1e
2240 STATX_UID = 0x8 2240 SO_ATTACH_BPF = 0x32
2241 STATX__RESERVED = 0x80000000 2241 SO_ATTACH_FILTER = 0x1a
2242 SYNC_FILE_RANGE_WAIT_AFTER = 0x4 2242 SO_ATTACH_REUSEPORT_CBPF = 0x33
2243 SYNC_FILE_RANGE_WAIT_BEFORE = 0x1 2243 SO_ATTACH_REUSEPORT_EBPF = 0x34
2244 SYNC_FILE_RANGE_WRITE = 0x2 2244 SO_BINDTODEVICE = 0x19
2245 SYNC_FILE_RANGE_WRITE_AND_WAIT = 0x7 2245 SO_BINDTOIFINDEX = 0x3e
2246 SYSFS_MAGIC = 0x62656572 2246 SO_BPF_EXTENSIONS = 0x30
2247 S_BLKSIZE = 0x200 2247 SO_BROADCAST = 0x6
2248 S_IEXEC = 0x40 2248 SO_BSDCOMPAT = 0xe
2249 S_IFBLK = 0x6000 2249 SO_BUSY_POLL = 0x2e
2250 S_IFCHR = 0x2000 2250 SO_CNX_ADVICE = 0x35
2251 S_IFDIR = 0x4000 2251 SO_COOKIE = 0x39
2252 S_IFIFO = 0x1000 2252 SO_DEBUG = 0x1
2253 S_IFLNK = 0xa000 2253 SO_DETACH_BPF = 0x1b
2254 S_IFMT = 0xf000 2254 SO_DETACH_FILTER = 0x1b
2255 S_IFREG = 0x8000 2255 SO_DETACH_REUSEPORT_BPF = 0x44
2256 S_IFSOCK = 0xc000 2256 SO_DOMAIN = 0x27
2257 S_IREAD = 0x100 2257 SO_DONTROUTE = 0x5
2258 S_IRGRP = 0x20 2258 SO_EE_CODE_TXTIME_INVALID_PARAM = 0x1
2259 S_IROTH = 0x4 2259 SO_EE_CODE_TXTIME_MISSED = 0x2
2260 S_IRUSR = 0x100 2260 SO_EE_CODE_ZEROCOPY_COPIED = 0x1
2261 S_IRWXG = 0x38 2261 SO_EE_ORIGIN_ICMP = 0x2
2262 S_IRWXO = 0x7 2262 SO_EE_ORIGIN_ICMP6 = 0x3
2263 S_IRWXU = 0x1c0 2263 SO_EE_ORIGIN_LOCAL = 0x1
2264 S_ISGID = 0x400 2264 SO_EE_ORIGIN_NONE = 0x0
2265 S_ISUID = 0x800 2265 SO_EE_ORIGIN_TIMESTAMPING = 0x4
2266 S_ISVTX = 0x200 2266 SO_EE_ORIGIN_TXSTATUS = 0x4
2267 S_IWGRP = 0x10 2267 SO_EE_ORIGIN_TXTIME = 0x6
2268 S_IWOTH = 0x2 2268 SO_EE_ORIGIN_ZEROCOPY = 0x5
2269 S_IWRITE = 0x80 2269 SO_ERROR = 0x4
2270 S_IWUSR = 0x80 2270 SO_GET_FILTER = 0x1a
2271 S_IXGRP = 0x8 2271 SO_INCOMING_CPU = 0x31
2272 S_IXOTH = 0x1 2272 SO_INCOMING_NAPI_ID = 0x38
2273 S_IXUSR = 0x40 2273 SO_KEEPALIVE = 0x9
2274 TAB0 = 0x0 2274 SO_LINGER = 0xd
2275 TAB1 = 0x800 2275 SO_LOCK_FILTER = 0x2c
2276 TAB2 = 0x1000 2276 SO_MARK = 0x24
2277 TAB3 = 0x1800 2277 SO_MAX_PACING_RATE = 0x2f
2278 TABDLY = 0x1800 2278 SO_MEMINFO = 0x37
2279 TASKSTATS_CMD_ATTR_MAX = 0x4 2279 SO_NOFCS = 0x2b
2280 TASKSTATS_CMD_MAX = 0x2 2280 SO_NO_CHECK = 0xb
2281 TASKSTATS_GENL_NAME = "TASKSTATS" 2281 SO_OOBINLINE = 0xa
2282 TASKSTATS_GENL_VERSION = 0x1 2282 SO_PASSCRED = 0x10
2283 TASKSTATS_TYPE_MAX = 0x6 2283 SO_PASSSEC = 0x22
2284 TASKSTATS_VERSION = 0x9 2284 SO_PEEK_OFF = 0x2a
2285 TCFLSH = 0x540b 2285 SO_PEERCRED = 0x11
2286 TCGETA = 0x5405 2286 SO_PEERGROUPS = 0x3b
2287 TCGETS = 0x5401 2287 SO_PEERNAME = 0x1c
2288 TCGETS2 = 0x802c542a 2288 SO_PEERSEC = 0x1f
2289 TCGETX = 0x5432 2289 SO_PRIORITY = 0xc
2290 TCIFLUSH = 0x0 2290 SO_PROTOCOL = 0x26
2291 TCIOFF = 0x2 2291 SO_RCVBUF = 0x8
2292 TCIOFLUSH = 0x2 2292 SO_RCVBUFFORCE = 0x21
2293 TCION = 0x3 2293 SO_RCVLOWAT = 0x12
2294 TCOFLUSH = 0x1 2294 SO_RCVTIMEO = 0x14
2295 TCOOFF = 0x0 2295 SO_RCVTIMEO_NEW = 0x42
2296 TCOON = 0x1 2296 SO_RCVTIMEO_OLD = 0x14
2297 TCP_BPF_IW = 0x3e9 2297 SO_REUSEADDR = 0x2
2298 TCP_BPF_SNDCWND_CLAMP = 0x3ea 2298 SO_REUSEPORT = 0xf
2299 TCP_CC_INFO = 0x1a 2299 SO_RXQ_OVFL = 0x28
2300 TCP_CM_INQ = 0x24 2300 SO_SECURITY_AUTHENTICATION = 0x16
2301 TCP_CONGESTION = 0xd 2301 SO_SECURITY_ENCRYPTION_NETWORK = 0x18
2302 TCP_COOKIE_IN_ALWAYS = 0x1 2302 SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17
2303 TCP_COOKIE_MAX = 0x10 2303 SO_SELECT_ERR_QUEUE = 0x2d
2304 TCP_COOKIE_MIN = 0x8 2304 SO_SNDBUF = 0x7
2305 TCP_COOKIE_OUT_NEVER = 0x2 2305 SO_SNDBUFFORCE = 0x20
2306 TCP_COOKIE_PAIR_SIZE = 0x20 2306 SO_SNDLOWAT = 0x13
2307 TCP_COOKIE_TRANSACTIONS = 0xf 2307 SO_SNDTIMEO = 0x15
2308 TCP_CORK = 0x3 2308 SO_SNDTIMEO_NEW = 0x43
2309 TCP_DEFER_ACCEPT = 0x9 2309 SO_SNDTIMEO_OLD = 0x15
2310 TCP_FASTOPEN = 0x17 2310 SO_TIMESTAMP = 0x1d
2311 TCP_FASTOPEN_CONNECT = 0x1e 2311 SO_TIMESTAMPING = 0x25
2312 TCP_FASTOPEN_KEY = 0x21 2312 SO_TIMESTAMPING_NEW = 0x41
2313 TCP_FASTOPEN_NO_COOKIE = 0x22 2313 SO_TIMESTAMPING_OLD = 0x25
2314 TCP_INFO = 0xb 2314 SO_TIMESTAMPNS = 0x23
2315 TCP_INQ = 0x24 2315 SO_TIMESTAMPNS_NEW = 0x40
2316 TCP_KEEPCNT = 0x6 2316 SO_TIMESTAMPNS_OLD = 0x23
2317 TCP_KEEPIDLE = 0x4 2317 SO_TIMESTAMP_NEW = 0x3f
2318 TCP_KEEPINTVL = 0x5 2318 SO_TIMESTAMP_OLD = 0x1d
2319 TCP_LINGER2 = 0x8 2319 SO_TXTIME = 0x3d
2320 TCP_MAXSEG = 0x2 2320 SO_TYPE = 0x3
2321 TCP_MAXWIN = 0xffff 2321 SO_VM_SOCKETS_BUFFER_MAX_SIZE = 0x2
2322 TCP_MAX_WINSHIFT = 0xe 2322 SO_VM_SOCKETS_BUFFER_MIN_SIZE = 0x1
2323 TCP_MD5SIG = 0xe 2323 SO_VM_SOCKETS_BUFFER_SIZE = 0x0
2324 TCP_MD5SIG_EXT = 0x20 2324 SO_VM_SOCKETS_CONNECT_TIMEOUT = 0x6
2325 TCP_MD5SIG_FLAG_PREFIX = 0x1 2325 SO_VM_SOCKETS_NONBLOCK_TXRX = 0x7
2326 TCP_MD5SIG_MAXKEYLEN = 0x50 2326 SO_VM_SOCKETS_PEER_HOST_VM_ID = 0x3
2327 TCP_MSS = 0x200 2327 SO_VM_SOCKETS_TRUSTED = 0x5
2328 TCP_MSS_DEFAULT = 0x218 2328 SO_WIFI_STATUS = 0x29
2329 TCP_MSS_DESIRED = 0x4c4 2329 SO_ZEROCOPY = 0x3c
2330 TCP_NODELAY = 0x1 2330 SPLICE_F_GIFT = 0x8
2331 TCP_NOTSENT_LOWAT = 0x19 2331 SPLICE_F_MORE = 0x4
2332 TCP_QUEUE_SEQ = 0x15 2332 SPLICE_F_MOVE = 0x1
2333 TCP_QUICKACK = 0xc 2333 SPLICE_F_NONBLOCK = 0x2
2334 TCP_REPAIR = 0x13 2334 SQUASHFS_MAGIC = 0x73717368
2335 TCP_REPAIR_OFF = 0x0 2335 STACK_END_MAGIC = 0x57ac6e9d
2336 TCP_REPAIR_OFF_NO_WP = -0x1 2336 STATX_ALL = 0xfff
2337 TCP_REPAIR_ON = 0x1 2337 STATX_ATIME = 0x20
2338 TCP_REPAIR_OPTIONS = 0x16 2338 STATX_ATTR_APPEND = 0x20
2339 TCP_REPAIR_QUEUE = 0x14 2339 STATX_ATTR_AUTOMOUNT = 0x1000
2340 TCP_REPAIR_WINDOW = 0x1d 2340 STATX_ATTR_COMPRESSED = 0x4
2341 TCP_SAVED_SYN = 0x1c 2341 STATX_ATTR_ENCRYPTED = 0x800
2342 TCP_SAVE_SYN = 0x1b 2342 STATX_ATTR_IMMUTABLE = 0x10
2343 TCP_SYNCNT = 0x7 2343 STATX_ATTR_NODUMP = 0x40
2344 TCP_S_DATA_IN = 0x4 2344 STATX_ATTR_VERITY = 0x100000
2345 TCP_S_DATA_OUT = 0x8 2345 STATX_BASIC_STATS = 0x7ff
2346 TCP_THIN_DUPACK = 0x11 2346 STATX_BLOCKS = 0x400
2347 TCP_THIN_LINEAR_TIMEOUTS = 0x10 2347 STATX_BTIME = 0x800
2348 TCP_TIMESTAMP = 0x18 2348 STATX_CTIME = 0x80
2349 TCP_ULP = 0x1f 2349 STATX_GID = 0x10
2350 TCP_USER_TIMEOUT = 0x12 2350 STATX_INO = 0x100
2351 TCP_WINDOW_CLAMP = 0xa 2351 STATX_MODE = 0x2
2352 TCP_ZEROCOPY_RECEIVE = 0x23 2352 STATX_MTIME = 0x40
2353 TCSAFLUSH = 0x2 2353 STATX_NLINK = 0x4
2354 TCSBRK = 0x5409 2354 STATX_SIZE = 0x200
2355 TCSBRKP = 0x5425 2355 STATX_TYPE = 0x1
2356 TCSETA = 0x5406 2356 STATX_UID = 0x8
2357 TCSETAF = 0x5408 2357 STATX__RESERVED = 0x80000000
2358 TCSETAW = 0x5407 2358 SYNC_FILE_RANGE_WAIT_AFTER = 0x4
2359 TCSETS = 0x5402 2359 SYNC_FILE_RANGE_WAIT_BEFORE = 0x1
2360 TCSETS2 = 0x402c542b 2360 SYNC_FILE_RANGE_WRITE = 0x2
2361 TCSETSF = 0x5404 2361 SYNC_FILE_RANGE_WRITE_AND_WAIT = 0x7
2362 TCSETSF2 = 0x402c542d 2362 SYSFS_MAGIC = 0x62656572
2363 TCSETSW = 0x5403 2363 S_BLKSIZE = 0x200
2364 TCSETSW2 = 0x402c542c 2364 S_IEXEC = 0x40
2365 TCSETX = 0x5433 2365 S_IFBLK = 0x6000
2366 TCSETXF = 0x5434 2366 S_IFCHR = 0x2000
2367 TCSETXW = 0x5435 2367 S_IFDIR = 0x4000
2368 TCXONC = 0x540a 2368 S_IFIFO = 0x1000
2369 TIMER_ABSTIME = 0x1 2369 S_IFLNK = 0xa000
2370 TIOCCBRK = 0x5428 2370 S_IFMT = 0xf000
2371 TIOCCONS = 0x541d 2371 S_IFREG = 0x8000
2372 TIOCEXCL = 0x540c 2372 S_IFSOCK = 0xc000
2373 TIOCGDEV = 0x80045432 2373 S_IREAD = 0x100
2374 TIOCGETD = 0x5424 2374 S_IRGRP = 0x20
2375 TIOCGEXCL = 0x80045440 2375 S_IROTH = 0x4
2376 TIOCGICOUNT = 0x545d 2376 S_IRUSR = 0x100
2377 TIOCGISO7816 = 0x80285442 2377 S_IRWXG = 0x38
2378 TIOCGLCKTRMIOS = 0x5456 2378 S_IRWXO = 0x7
2379 TIOCGPGRP = 0x540f 2379 S_IRWXU = 0x1c0
2380 TIOCGPKT = 0x80045438 2380 S_ISGID = 0x400
2381 TIOCGPTLCK = 0x80045439 2381 S_ISUID = 0x800
2382 TIOCGPTN = 0x80045430 2382 S_ISVTX = 0x200
2383 TIOCGPTPEER = 0x5441 2383 S_IWGRP = 0x10
2384 TIOCGRS485 = 0x542e 2384 S_IWOTH = 0x2
2385 TIOCGSERIAL = 0x541e 2385 S_IWRITE = 0x80
2386 TIOCGSID = 0x5429 2386 S_IWUSR = 0x80
2387 TIOCGSOFTCAR = 0x5419 2387 S_IXGRP = 0x8
2388 TIOCGWINSZ = 0x5413 2388 S_IXOTH = 0x1
2389 TIOCINQ = 0x541b 2389 S_IXUSR = 0x40
2390 TIOCLINUX = 0x541c 2390 TAB0 = 0x0
2391 TIOCMBIC = 0x5417 2391 TAB1 = 0x800
2392 TIOCMBIS = 0x5416 2392 TAB2 = 0x1000
2393 TIOCMGET = 0x5415 2393 TAB3 = 0x1800
2394 TIOCMIWAIT = 0x545c 2394 TABDLY = 0x1800
2395 TIOCMSET = 0x5418 2395 TASKSTATS_CMD_ATTR_MAX = 0x4
2396 TIOCM_CAR = 0x40 2396 TASKSTATS_CMD_MAX = 0x2
2397 TIOCM_CD = 0x40 2397 TASKSTATS_GENL_NAME = "TASKSTATS"
2398 TIOCM_CTS = 0x20 2398 TASKSTATS_GENL_VERSION = 0x1
2399 TIOCM_DSR = 0x100 2399 TASKSTATS_TYPE_MAX = 0x6
2400 TIOCM_DTR = 0x2 2400 TASKSTATS_VERSION = 0x9
2401 TIOCM_LE = 0x1 2401 TCFLSH = 0x540b
2402 TIOCM_RI = 0x80 2402 TCGETA = 0x5405
2403 TIOCM_RNG = 0x80 2403 TCGETS = 0x5401
2404 TIOCM_RTS = 0x4 2404 TCGETS2 = 0x802c542a
2405 TIOCM_SR = 0x10 2405 TCGETX = 0x5432
2406 TIOCM_ST = 0x8 2406 TCIFLUSH = 0x0
2407 TIOCNOTTY = 0x5422 2407 TCIOFF = 0x2
2408 TIOCNXCL = 0x540d 2408 TCIOFLUSH = 0x2
2409 TIOCOUTQ = 0x5411 2409 TCION = 0x3
2410 TIOCPKT = 0x5420 2410 TCOFLUSH = 0x1
2411 TIOCPKT_DATA = 0x0 2411 TCOOFF = 0x0
2412 TIOCPKT_DOSTOP = 0x20 2412 TCOON = 0x1
2413 TIOCPKT_FLUSHREAD = 0x1 2413 TCP_BPF_IW = 0x3e9
2414 TIOCPKT_FLUSHWRITE = 0x2 2414 TCP_BPF_SNDCWND_CLAMP = 0x3ea
2415 TIOCPKT_IOCTL = 0x40 2415 TCP_CC_INFO = 0x1a
2416 TIOCPKT_NOSTOP = 0x10 2416 TCP_CM_INQ = 0x24
2417 TIOCPKT_START = 0x8 2417 TCP_CONGESTION = 0xd
2418 TIOCPKT_STOP = 0x4 2418 TCP_COOKIE_IN_ALWAYS = 0x1
2419 TIOCSBRK = 0x5427 2419 TCP_COOKIE_MAX = 0x10
2420 TIOCSCTTY = 0x540e 2420 TCP_COOKIE_MIN = 0x8
2421 TIOCSERCONFIG = 0x5453 2421 TCP_COOKIE_OUT_NEVER = 0x2
2422 TIOCSERGETLSR = 0x5459 2422 TCP_COOKIE_PAIR_SIZE = 0x20
2423 TIOCSERGETMULTI = 0x545a 2423 TCP_COOKIE_TRANSACTIONS = 0xf
2424 TIOCSERGSTRUCT = 0x5458 2424 TCP_CORK = 0x3
2425 TIOCSERGWILD = 0x5454 2425 TCP_DEFER_ACCEPT = 0x9
2426 TIOCSERSETMULTI = 0x545b 2426 TCP_FASTOPEN = 0x17
2427 TIOCSERSWILD = 0x5455 2427 TCP_FASTOPEN_CONNECT = 0x1e
2428 TIOCSER_TEMT = 0x1 2428 TCP_FASTOPEN_KEY = 0x21
2429 TIOCSETD = 0x5423 2429 TCP_FASTOPEN_NO_COOKIE = 0x22
2430 TIOCSIG = 0x40045436 2430 TCP_INFO = 0xb
2431 TIOCSISO7816 = 0xc0285443 2431 TCP_INQ = 0x24
2432 TIOCSLCKTRMIOS = 0x5457 2432 TCP_KEEPCNT = 0x6
2433 TIOCSPGRP = 0x5410 2433 TCP_KEEPIDLE = 0x4
2434 TIOCSPTLCK = 0x40045431 2434 TCP_KEEPINTVL = 0x5
2435 TIOCSRS485 = 0x542f 2435 TCP_LINGER2 = 0x8
2436 TIOCSSERIAL = 0x541f 2436 TCP_MAXSEG = 0x2
2437 TIOCSSOFTCAR = 0x541a 2437 TCP_MAXWIN = 0xffff
2438 TIOCSTI = 0x5412 2438 TCP_MAX_WINSHIFT = 0xe
2439 TIOCSWINSZ = 0x5414 2439 TCP_MD5SIG = 0xe
2440 TIOCVHANGUP = 0x5437 2440 TCP_MD5SIG_EXT = 0x20
2441 TMPFS_MAGIC = 0x1021994 2441 TCP_MD5SIG_FLAG_PREFIX = 0x1
2442 TOSTOP = 0x100 2442 TCP_MD5SIG_MAXKEYLEN = 0x50
2443 TPACKET_ALIGNMENT = 0x10 2443 TCP_MSS = 0x200
2444 TPACKET_HDRLEN = 0x34 2444 TCP_MSS_DEFAULT = 0x218
2445 TP_STATUS_AVAILABLE = 0x0 2445 TCP_MSS_DESIRED = 0x4c4
2446 TP_STATUS_BLK_TMO = 0x20 2446 TCP_NODELAY = 0x1
2447 TP_STATUS_COPY = 0x2 2447 TCP_NOTSENT_LOWAT = 0x19
2448 TP_STATUS_CSUMNOTREADY = 0x8 2448 TCP_QUEUE_SEQ = 0x15
2449 TP_STATUS_CSUM_VALID = 0x80 2449 TCP_QUICKACK = 0xc
2450 TP_STATUS_KERNEL = 0x0 2450 TCP_REPAIR = 0x13
2451 TP_STATUS_LOSING = 0x4 2451 TCP_REPAIR_OFF = 0x0
2452 TP_STATUS_SENDING = 0x2 2452 TCP_REPAIR_OFF_NO_WP = -0x1
2453 TP_STATUS_SEND_REQUEST = 0x1 2453 TCP_REPAIR_ON = 0x1
2454 TP_STATUS_TS_RAW_HARDWARE = -0x80000000 2454 TCP_REPAIR_OPTIONS = 0x16
2455 TP_STATUS_TS_SOFTWARE = 0x20000000 2455 TCP_REPAIR_QUEUE = 0x14
2456 TP_STATUS_TS_SYS_HARDWARE = 0x40000000 2456 TCP_REPAIR_WINDOW = 0x1d
2457 TP_STATUS_USER = 0x1 2457 TCP_SAVED_SYN = 0x1c
2458 TP_STATUS_VLAN_TPID_VALID = 0x40 2458 TCP_SAVE_SYN = 0x1b
2459 TP_STATUS_VLAN_VALID = 0x10 2459 TCP_SYNCNT = 0x7
2460 TP_STATUS_WRONG_FORMAT = 0x4 2460 TCP_S_DATA_IN = 0x4
2461 TRACEFS_MAGIC = 0x74726163 2461 TCP_S_DATA_OUT = 0x8
2462 TS_COMM_LEN = 0x20 2462 TCP_THIN_DUPACK = 0x11
2463 TUNATTACHFILTER = 0x400854d5 2463 TCP_THIN_LINEAR_TIMEOUTS = 0x10
2464 TUNDETACHFILTER = 0x400854d6 2464 TCP_TIMESTAMP = 0x18
2465 TUNGETDEVNETNS = 0x54e3 2465 TCP_TX_DELAY = 0x25
2466 TUNGETFEATURES = 0x800454cf 2466 TCP_ULP = 0x1f
2467 TUNGETFILTER = 0x800854db 2467 TCP_USER_TIMEOUT = 0x12
2468 TUNGETIFF = 0x800454d2 2468 TCP_WINDOW_CLAMP = 0xa
2469 TUNGETSNDBUF = 0x800454d3 2469 TCP_ZEROCOPY_RECEIVE = 0x23
2470 TUNGETVNETBE = 0x800454df 2470 TCSAFLUSH = 0x2
2471 TUNGETVNETHDRSZ = 0x800454d7 2471 TCSBRK = 0x5409
2472 TUNGETVNETLE = 0x800454dd 2472 TCSBRKP = 0x5425
2473 TUNSETCARRIER = 0x400454e2 2473 TCSETA = 0x5406
2474 TUNSETDEBUG = 0x400454c9 2474 TCSETAF = 0x5408
2475 TUNSETFILTEREBPF = 0x800454e1 2475 TCSETAW = 0x5407
2476 TUNSETGROUP = 0x400454ce 2476 TCSETS = 0x5402
2477 TUNSETIFF = 0x400454ca 2477 TCSETS2 = 0x402c542b
2478 TUNSETIFINDEX = 0x400454da 2478 TCSETSF = 0x5404
2479 TUNSETLINK = 0x400454cd 2479 TCSETSF2 = 0x402c542d
2480 TUNSETNOCSUM = 0x400454c8 2480 TCSETSW = 0x5403
2481 TUNSETOFFLOAD = 0x400454d0 2481 TCSETSW2 = 0x402c542c
2482 TUNSETOWNER = 0x400454cc 2482 TCSETX = 0x5433
2483 TUNSETPERSIST = 0x400454cb 2483 TCSETXF = 0x5434
2484 TUNSETQUEUE = 0x400454d9 2484 TCSETXW = 0x5435
2485 TUNSETSNDBUF = 0x400454d4 2485 TCXONC = 0x540a
2486 TUNSETSTEERINGEBPF = 0x800454e0 2486 TIMER_ABSTIME = 0x1
2487 TUNSETTXFILTER = 0x400454d1 2487 TIOCCBRK = 0x5428
2488 TUNSETVNETBE = 0x400454de 2488 TIOCCONS = 0x541d
2489 TUNSETVNETHDRSZ = 0x400454d8 2489 TIOCEXCL = 0x540c
2490 TUNSETVNETLE = 0x400454dc 2490 TIOCGDEV = 0x80045432
2491 UBI_IOCATT = 0x40186f40 2491 TIOCGETD = 0x5424
2492 UBI_IOCDET = 0x40046f41 2492 TIOCGEXCL = 0x80045440
2493 UBI_IOCEBCH = 0x40044f02 2493 TIOCGICOUNT = 0x545d
2494 UBI_IOCEBER = 0x40044f01 2494 TIOCGISO7816 = 0x80285442
2495 UBI_IOCEBISMAP = 0x80044f05 2495 TIOCGLCKTRMIOS = 0x5456
2496 UBI_IOCEBMAP = 0x40084f03 2496 TIOCGPGRP = 0x540f
2497 UBI_IOCEBUNMAP = 0x40044f04 2497 TIOCGPKT = 0x80045438
2498 UBI_IOCMKVOL = 0x40986f00 2498 TIOCGPTLCK = 0x80045439
2499 UBI_IOCRMVOL = 0x40046f01 2499 TIOCGPTN = 0x80045430
2500 UBI_IOCRNVOL = 0x51106f03 2500 TIOCGPTPEER = 0x5441
2501 UBI_IOCRPEB = 0x40046f04 2501 TIOCGRS485 = 0x542e
2502 UBI_IOCRSVOL = 0x400c6f02 2502 TIOCGSERIAL = 0x541e
2503 UBI_IOCSETVOLPROP = 0x40104f06 2503 TIOCGSID = 0x5429
2504 UBI_IOCSPEB = 0x40046f05 2504 TIOCGSOFTCAR = 0x5419
2505 UBI_IOCVOLCRBLK = 0x40804f07 2505 TIOCGWINSZ = 0x5413
2506 UBI_IOCVOLRMBLK = 0x4f08 2506 TIOCINQ = 0x541b
2507 UBI_IOCVOLUP = 0x40084f00 2507 TIOCLINUX = 0x541c
2508 UDF_SUPER_MAGIC = 0x15013346 2508 TIOCMBIC = 0x5417
2509 UMOUNT_NOFOLLOW = 0x8 2509 TIOCMBIS = 0x5416
2510 USBDEVICE_SUPER_MAGIC = 0x9fa2 2510 TIOCMGET = 0x5415
2511 UTIME_NOW = 0x3fffffff 2511 TIOCMIWAIT = 0x545c
2512 UTIME_OMIT = 0x3ffffffe 2512 TIOCMSET = 0x5418
2513 V9FS_MAGIC = 0x1021997 2513 TIOCM_CAR = 0x40
2514 VDISCARD = 0xd 2514 TIOCM_CD = 0x40
2515 VEOF = 0x4 2515 TIOCM_CTS = 0x20
2516 VEOL = 0xb 2516 TIOCM_DSR = 0x100
2517 VEOL2 = 0x10 2517 TIOCM_DTR = 0x2
2518 VERASE = 0x2 2518 TIOCM_LE = 0x1
2519 VINTR = 0x0 2519 TIOCM_RI = 0x80
2520 VKILL = 0x3 2520 TIOCM_RNG = 0x80
2521 VLNEXT = 0xf 2521 TIOCM_RTS = 0x4
2522 VMADDR_CID_ANY = 0xffffffff 2522 TIOCM_SR = 0x10
2523 VMADDR_CID_HOST = 0x2 2523 TIOCM_ST = 0x8
2524 VMADDR_CID_HYPERVISOR = 0x0 2524 TIOCNOTTY = 0x5422
2525 VMADDR_CID_RESERVED = 0x1 2525 TIOCNXCL = 0x540d
2526 VMADDR_PORT_ANY = 0xffffffff 2526 TIOCOUTQ = 0x5411
2527 VMIN = 0x6 2527 TIOCPKT = 0x5420
2528 VM_SOCKETS_INVALID_VERSION = 0xffffffff 2528 TIOCPKT_DATA = 0x0
2529 VQUIT = 0x1 2529 TIOCPKT_DOSTOP = 0x20
2530 VREPRINT = 0xc 2530 TIOCPKT_FLUSHREAD = 0x1
2531 VSTART = 0x8 2531 TIOCPKT_FLUSHWRITE = 0x2
2532 VSTOP = 0x9 2532 TIOCPKT_IOCTL = 0x40
2533 VSUSP = 0xa 2533 TIOCPKT_NOSTOP = 0x10
2534 VSWTC = 0x7 2534 TIOCPKT_START = 0x8
2535 VT0 = 0x0 2535 TIOCPKT_STOP = 0x4
2536 VT1 = 0x4000 2536 TIOCSBRK = 0x5427
2537 VTDLY = 0x4000 2537 TIOCSCTTY = 0x540e
2538 VTIME = 0x5 2538 TIOCSERCONFIG = 0x5453
2539 VWERASE = 0xe 2539 TIOCSERGETLSR = 0x5459
2540 WALL = 0x40000000 2540 TIOCSERGETMULTI = 0x545a
2541 WCLONE = 0x80000000 2541 TIOCSERGSTRUCT = 0x5458
2542 WCONTINUED = 0x8 2542 TIOCSERGWILD = 0x5454
2543 WDIOC_GETBOOTSTATUS = 0x80045702 2543 TIOCSERSETMULTI = 0x545b
2544 WDIOC_GETPRETIMEOUT = 0x80045709 2544 TIOCSERSWILD = 0x5455
2545 WDIOC_GETSTATUS = 0x80045701 2545 TIOCSER_TEMT = 0x1
2546 WDIOC_GETSUPPORT = 0x80285700 2546 TIOCSETD = 0x5423
2547 WDIOC_GETTEMP = 0x80045703 2547 TIOCSIG = 0x40045436
2548 WDIOC_GETTIMELEFT = 0x8004570a 2548 TIOCSISO7816 = 0xc0285443
2549 WDIOC_GETTIMEOUT = 0x80045707 2549 TIOCSLCKTRMIOS = 0x5457
2550 WDIOC_KEEPALIVE = 0x80045705 2550 TIOCSPGRP = 0x5410
2551 WDIOC_SETOPTIONS = 0x80045704 2551 TIOCSPTLCK = 0x40045431
2552 WDIOC_SETPRETIMEOUT = 0xc0045708 2552 TIOCSRS485 = 0x542f
2553 WDIOC_SETTIMEOUT = 0xc0045706 2553 TIOCSSERIAL = 0x541f
2554 WEXITED = 0x4 2554 TIOCSSOFTCAR = 0x541a
2555 WIN_ACKMEDIACHANGE = 0xdb 2555 TIOCSTI = 0x5412
2556 WIN_CHECKPOWERMODE1 = 0xe5 2556 TIOCSWINSZ = 0x5414
2557 WIN_CHECKPOWERMODE2 = 0x98 2557 TIOCVHANGUP = 0x5437
2558 WIN_DEVICE_RESET = 0x8 2558 TIPC_ADDR_ID = 0x3
2559 WIN_DIAGNOSE = 0x90 2559 TIPC_ADDR_MCAST = 0x1
2560 WIN_DOORLOCK = 0xde 2560 TIPC_ADDR_NAME = 0x2
2561 WIN_DOORUNLOCK = 0xdf 2561 TIPC_ADDR_NAMESEQ = 0x1
2562 WIN_DOWNLOAD_MICROCODE = 0x92 2562 TIPC_AEAD_ALG_NAME = 0x20
2563 WIN_FLUSH_CACHE = 0xe7 2563 TIPC_AEAD_KEYLEN_MAX = 0x24
2564 WIN_FLUSH_CACHE_EXT = 0xea 2564 TIPC_AEAD_KEYLEN_MIN = 0x14
2565 WIN_FORMAT = 0x50 2565 TIPC_AEAD_KEY_SIZE_MAX = 0x48
2566 WIN_GETMEDIASTATUS = 0xda 2566 TIPC_CFG_SRV = 0x0
2567 WIN_IDENTIFY = 0xec 2567 TIPC_CLUSTER_BITS = 0xc
2568 WIN_IDENTIFY_DMA = 0xee 2568 TIPC_CLUSTER_MASK = 0xfff000
2569 WIN_IDLEIMMEDIATE = 0xe1 2569 TIPC_CLUSTER_OFFSET = 0xc
2570 WIN_INIT = 0x60 2570 TIPC_CLUSTER_SIZE = 0xfff
2571 WIN_MEDIAEJECT = 0xed 2571 TIPC_CONN_SHUTDOWN = 0x5
2572 WIN_MULTREAD = 0xc4 2572 TIPC_CONN_TIMEOUT = 0x82
2573 WIN_MULTREAD_EXT = 0x29 2573 TIPC_CRITICAL_IMPORTANCE = 0x3
2574 WIN_MULTWRITE = 0xc5 2574 TIPC_DESTNAME = 0x3
2575 WIN_MULTWRITE_EXT = 0x39 2575 TIPC_DEST_DROPPABLE = 0x81
2576 WIN_NOP = 0x0 2576 TIPC_ERRINFO = 0x1
2577 WIN_PACKETCMD = 0xa0 2577 TIPC_ERR_NO_NAME = 0x1
2578 WIN_PIDENTIFY = 0xa1 2578 TIPC_ERR_NO_NODE = 0x3
2579 WIN_POSTBOOT = 0xdc 2579 TIPC_ERR_NO_PORT = 0x2
2580 WIN_PREBOOT = 0xdd 2580 TIPC_ERR_OVERLOAD = 0x4
2581 WIN_QUEUED_SERVICE = 0xa2 2581 TIPC_GROUP_JOIN = 0x87
2582 WIN_READ = 0x20 2582 TIPC_GROUP_LEAVE = 0x88
2583 WIN_READDMA = 0xc8 2583 TIPC_GROUP_LOOPBACK = 0x1
2584 WIN_READDMA_EXT = 0x25 2584 TIPC_GROUP_MEMBER_EVTS = 0x2
2585 WIN_READDMA_ONCE = 0xc9 2585 TIPC_HIGH_IMPORTANCE = 0x2
2586 WIN_READDMA_QUEUED = 0xc7 2586 TIPC_IMPORTANCE = 0x7f
2587 WIN_READDMA_QUEUED_EXT = 0x26 2587 TIPC_LINK_STATE = 0x2
2588 WIN_READ_BUFFER = 0xe4 2588 TIPC_LOW_IMPORTANCE = 0x0
2589 WIN_READ_EXT = 0x24 2589 TIPC_MAX_BEARER_NAME = 0x20
2590 WIN_READ_LONG = 0x22 2590 TIPC_MAX_IF_NAME = 0x10
2591 WIN_READ_LONG_ONCE = 0x23 2591 TIPC_MAX_LINK_NAME = 0x44
2592 WIN_READ_NATIVE_MAX = 0xf8 2592 TIPC_MAX_MEDIA_NAME = 0x10
2593 WIN_READ_NATIVE_MAX_EXT = 0x27 2593 TIPC_MAX_USER_MSG_SIZE = 0x101d0
2594 WIN_READ_ONCE = 0x21 2594 TIPC_MCAST_BROADCAST = 0x85
2595 WIN_RECAL = 0x10 2595 TIPC_MCAST_REPLICAST = 0x86
2596 WIN_RESTORE = 0x10 2596 TIPC_MEDIUM_IMPORTANCE = 0x1
2597 WIN_SECURITY_DISABLE = 0xf6 2597 TIPC_NODEID_LEN = 0x10
2598 WIN_SECURITY_ERASE_PREPARE = 0xf3 2598 TIPC_NODELAY = 0x8a
2599 WIN_SECURITY_ERASE_UNIT = 0xf4 2599 TIPC_NODE_BITS = 0xc
2600 WIN_SECURITY_FREEZE_LOCK = 0xf5 2600 TIPC_NODE_MASK = 0xfff
2601 WIN_SECURITY_SET_PASS = 0xf1 2601 TIPC_NODE_OFFSET = 0x0
2602 WIN_SECURITY_UNLOCK = 0xf2 2602 TIPC_NODE_RECVQ_DEPTH = 0x83
2603 WIN_SEEK = 0x70 2603 TIPC_NODE_SIZE = 0xfff
2604 WIN_SETFEATURES = 0xef 2604 TIPC_NODE_STATE = 0x0
2605 WIN_SETIDLE1 = 0xe3 2605 TIPC_OK = 0x0
2606 WIN_SETIDLE2 = 0x97 2606 TIPC_PUBLISHED = 0x1
2607 WIN_SETMULT = 0xc6 2607 TIPC_RESERVED_TYPES = 0x40
2608 WIN_SET_MAX = 0xf9 2608 TIPC_RETDATA = 0x2
2609 WIN_SET_MAX_EXT = 0x37 2609 TIPC_SERVICE_ADDR = 0x2
2610 WIN_SLEEPNOW1 = 0xe6 2610 TIPC_SERVICE_RANGE = 0x1
2611 WIN_SLEEPNOW2 = 0x99 2611 TIPC_SOCKET_ADDR = 0x3
2612 WIN_SMART = 0xb0 2612 TIPC_SOCK_RECVQ_DEPTH = 0x84
2613 WIN_SPECIFY = 0x91 2613 TIPC_SOCK_RECVQ_USED = 0x89
2614 WIN_SRST = 0x8 2614 TIPC_SRC_DROPPABLE = 0x80
2615 WIN_STANDBY = 0xe2 2615 TIPC_SUBSCR_TIMEOUT = 0x3
2616 WIN_STANDBY2 = 0x96 2616 TIPC_SUB_CANCEL = 0x4
2617 WIN_STANDBYNOW1 = 0xe0 2617 TIPC_SUB_PORTS = 0x1
2618 WIN_STANDBYNOW2 = 0x94 2618 TIPC_SUB_SERVICE = 0x2
2619 WIN_VERIFY = 0x40 2619 TIPC_TOP_SRV = 0x1
2620 WIN_VERIFY_EXT = 0x42 2620 TIPC_WAIT_FOREVER = 0xffffffff
2621 WIN_VERIFY_ONCE = 0x41 2621 TIPC_WITHDRAWN = 0x2
2622 WIN_WRITE = 0x30 2622 TIPC_ZONE_BITS = 0x8
2623 WIN_WRITEDMA = 0xca 2623 TIPC_ZONE_CLUSTER_MASK = 0xfffff000
2624 WIN_WRITEDMA_EXT = 0x35 2624 TIPC_ZONE_MASK = 0xff000000
2625 WIN_WRITEDMA_ONCE = 0xcb 2625 TIPC_ZONE_OFFSET = 0x18
2626 WIN_WRITEDMA_QUEUED = 0xcc 2626 TIPC_ZONE_SCOPE = 0x1
2627 WIN_WRITEDMA_QUEUED_EXT = 0x36 2627 TIPC_ZONE_SIZE = 0xff
2628 WIN_WRITE_BUFFER = 0xe8 2628 TMPFS_MAGIC = 0x1021994
2629 WIN_WRITE_EXT = 0x34 2629 TOSTOP = 0x100
2630 WIN_WRITE_LONG = 0x32 2630 TPACKET_ALIGNMENT = 0x10
2631 WIN_WRITE_LONG_ONCE = 0x33 2631 TPACKET_HDRLEN = 0x34
2632 WIN_WRITE_ONCE = 0x31 2632 TP_STATUS_AVAILABLE = 0x0
2633 WIN_WRITE_SAME = 0xe9 2633 TP_STATUS_BLK_TMO = 0x20
2634 WIN_WRITE_VERIFY = 0x3c 2634 TP_STATUS_COPY = 0x2
2635 WNOHANG = 0x1 2635 TP_STATUS_CSUMNOTREADY = 0x8
2636 WNOTHREAD = 0x20000000 2636 TP_STATUS_CSUM_VALID = 0x80
2637 WNOWAIT = 0x1000000 2637 TP_STATUS_KERNEL = 0x0
2638 WORDSIZE = 0x20 2638 TP_STATUS_LOSING = 0x4
2639 WSTOPPED = 0x2 2639 TP_STATUS_SENDING = 0x2
2640 WUNTRACED = 0x2 2640 TP_STATUS_SEND_REQUEST = 0x1
2641 X86_FXSR_MAGIC = 0x0 2641 TP_STATUS_TS_RAW_HARDWARE = 0x80000000
2642 XATTR_CREATE = 0x1 2642 TP_STATUS_TS_SOFTWARE = 0x20000000
2643 XATTR_REPLACE = 0x2 2643 TP_STATUS_TS_SYS_HARDWARE = 0x40000000
2644 XCASE = 0x4 2644 TP_STATUS_USER = 0x1
2645 XDP_COPY = 0x2 2645 TP_STATUS_VLAN_TPID_VALID = 0x40
2646 XDP_FLAGS_DRV_MODE = 0x4 2646 TP_STATUS_VLAN_VALID = 0x10
2647 XDP_FLAGS_HW_MODE = 0x8 2647 TP_STATUS_WRONG_FORMAT = 0x4
2648 XDP_FLAGS_MASK = 0xf 2648 TRACEFS_MAGIC = 0x74726163
2649 XDP_FLAGS_MODES = 0xe 2649 TS_COMM_LEN = 0x20
2650 XDP_FLAGS_SKB_MODE = 0x2 2650 TUNATTACHFILTER = 0x400854d5
2651 XDP_FLAGS_UPDATE_IF_NOEXIST = 0x1 2651 TUNDETACHFILTER = 0x400854d6
2652 XDP_MMAP_OFFSETS = 0x1 2652 TUNGETDEVNETNS = 0x54e3
2653 XDP_PACKET_HEADROOM = 0x100 2653 TUNGETFEATURES = 0x800454cf
2654 XDP_PGOFF_RX_RING = 0x0 2654 TUNGETFILTER = 0x800854db
2655 XDP_PGOFF_TX_RING = 0x80000000 2655 TUNGETIFF = 0x800454d2
2656 XDP_RX_RING = 0x2 2656 TUNGETSNDBUF = 0x800454d3
2657 XDP_SHARED_UMEM = 0x1 2657 TUNGETVNETBE = 0x800454df
2658 XDP_STATISTICS = 0x7 2658 TUNGETVNETHDRSZ = 0x800454d7
2659 XDP_TX_RING = 0x3 2659 TUNGETVNETLE = 0x800454dd
2660 XDP_UMEM_COMPLETION_RING = 0x6 2660 TUNSETCARRIER = 0x400454e2
2661 XDP_UMEM_FILL_RING = 0x5 2661 TUNSETDEBUG = 0x400454c9
2662 XDP_UMEM_PGOFF_COMPLETION_RING = 0x180000000 2662 TUNSETFILTEREBPF = 0x800454e1
2663 XDP_UMEM_PGOFF_FILL_RING = 0x100000000 2663 TUNSETGROUP = 0x400454ce
2664 XDP_UMEM_REG = 0x4 2664 TUNSETIFF = 0x400454ca
2665 XDP_ZEROCOPY = 0x4 2665 TUNSETIFINDEX = 0x400454da
2666 XENFS_SUPER_MAGIC = 0xabba1974 2666 TUNSETLINK = 0x400454cd
2667 XFS_SUPER_MAGIC = 0x58465342 2667 TUNSETNOCSUM = 0x400454c8
2668 XTABS = 0x1800 2668 TUNSETOFFLOAD = 0x400454d0
2669 ZSMALLOC_MAGIC = 0x58295829 2669 TUNSETOWNER = 0x400454cc
2670 TUNSETPERSIST = 0x400454cb
2671 TUNSETQUEUE = 0x400454d9
2672 TUNSETSNDBUF = 0x400454d4
2673 TUNSETSTEERINGEBPF = 0x800454e0
2674 TUNSETTXFILTER = 0x400454d1
2675 TUNSETVNETBE = 0x400454de
2676 TUNSETVNETHDRSZ = 0x400454d8
2677 TUNSETVNETLE = 0x400454dc
2678 UBI_IOCATT = 0x40186f40
2679 UBI_IOCDET = 0x40046f41
2680 UBI_IOCEBCH = 0x40044f02
2681 UBI_IOCEBER = 0x40044f01
2682 UBI_IOCEBISMAP = 0x80044f05
2683 UBI_IOCEBMAP = 0x40084f03
2684 UBI_IOCEBUNMAP = 0x40044f04
2685 UBI_IOCMKVOL = 0x40986f00
2686 UBI_IOCRMVOL = 0x40046f01
2687 UBI_IOCRNVOL = 0x51106f03
2688 UBI_IOCRPEB = 0x40046f04
2689 UBI_IOCRSVOL = 0x400c6f02
2690 UBI_IOCSETVOLPROP = 0x40104f06
2691 UBI_IOCSPEB = 0x40046f05
2692 UBI_IOCVOLCRBLK = 0x40804f07
2693 UBI_IOCVOLRMBLK = 0x4f08
2694 UBI_IOCVOLUP = 0x40084f00
2695 UDF_SUPER_MAGIC = 0x15013346
2696 UMOUNT_NOFOLLOW = 0x8
2697 USBDEVICE_SUPER_MAGIC = 0x9fa2
2698 UTIME_NOW = 0x3fffffff
2699 UTIME_OMIT = 0x3ffffffe
2700 V9FS_MAGIC = 0x1021997
2701 VDISCARD = 0xd
2702 VEOF = 0x4
2703 VEOL = 0xb
2704 VEOL2 = 0x10
2705 VERASE = 0x2
2706 VINTR = 0x0
2707 VKILL = 0x3
2708 VLNEXT = 0xf
2709 VMADDR_CID_ANY = 0xffffffff
2710 VMADDR_CID_HOST = 0x2
2711 VMADDR_CID_HYPERVISOR = 0x0
2712 VMADDR_CID_RESERVED = 0x1
2713 VMADDR_PORT_ANY = 0xffffffff
2714 VMIN = 0x6
2715 VM_SOCKETS_INVALID_VERSION = 0xffffffff
2716 VQUIT = 0x1
2717 VREPRINT = 0xc
2718 VSTART = 0x8
2719 VSTOP = 0x9
2720 VSUSP = 0xa
2721 VSWTC = 0x7
2722 VT0 = 0x0
2723 VT1 = 0x4000
2724 VTDLY = 0x4000
2725 VTIME = 0x5
2726 VWERASE = 0xe
2727 WALL = 0x40000000
2728 WCLONE = 0x80000000
2729 WCONTINUED = 0x8
2730 WDIOC_GETBOOTSTATUS = 0x80045702
2731 WDIOC_GETPRETIMEOUT = 0x80045709
2732 WDIOC_GETSTATUS = 0x80045701
2733 WDIOC_GETSUPPORT = 0x80285700
2734 WDIOC_GETTEMP = 0x80045703
2735 WDIOC_GETTIMELEFT = 0x8004570a
2736 WDIOC_GETTIMEOUT = 0x80045707
2737 WDIOC_KEEPALIVE = 0x80045705
2738 WDIOC_SETOPTIONS = 0x80045704
2739 WDIOC_SETPRETIMEOUT = 0xc0045708
2740 WDIOC_SETTIMEOUT = 0xc0045706
2741 WEXITED = 0x4
2742 WIN_ACKMEDIACHANGE = 0xdb
2743 WIN_CHECKPOWERMODE1 = 0xe5
2744 WIN_CHECKPOWERMODE2 = 0x98
2745 WIN_DEVICE_RESET = 0x8
2746 WIN_DIAGNOSE = 0x90
2747 WIN_DOORLOCK = 0xde
2748 WIN_DOORUNLOCK = 0xdf
2749 WIN_DOWNLOAD_MICROCODE = 0x92
2750 WIN_FLUSH_CACHE = 0xe7
2751 WIN_FLUSH_CACHE_EXT = 0xea
2752 WIN_FORMAT = 0x50
2753 WIN_GETMEDIASTATUS = 0xda
2754 WIN_IDENTIFY = 0xec
2755 WIN_IDENTIFY_DMA = 0xee
2756 WIN_IDLEIMMEDIATE = 0xe1
2757 WIN_INIT = 0x60
2758 WIN_MEDIAEJECT = 0xed
2759 WIN_MULTREAD = 0xc4
2760 WIN_MULTREAD_EXT = 0x29
2761 WIN_MULTWRITE = 0xc5
2762 WIN_MULTWRITE_EXT = 0x39
2763 WIN_NOP = 0x0
2764 WIN_PACKETCMD = 0xa0
2765 WIN_PIDENTIFY = 0xa1
2766 WIN_POSTBOOT = 0xdc
2767 WIN_PREBOOT = 0xdd
2768 WIN_QUEUED_SERVICE = 0xa2
2769 WIN_READ = 0x20
2770 WIN_READDMA = 0xc8
2771 WIN_READDMA_EXT = 0x25
2772 WIN_READDMA_ONCE = 0xc9
2773 WIN_READDMA_QUEUED = 0xc7
2774 WIN_READDMA_QUEUED_EXT = 0x26
2775 WIN_READ_BUFFER = 0xe4
2776 WIN_READ_EXT = 0x24
2777 WIN_READ_LONG = 0x22
2778 WIN_READ_LONG_ONCE = 0x23
2779 WIN_READ_NATIVE_MAX = 0xf8
2780 WIN_READ_NATIVE_MAX_EXT = 0x27
2781 WIN_READ_ONCE = 0x21
2782 WIN_RECAL = 0x10
2783 WIN_RESTORE = 0x10
2784 WIN_SECURITY_DISABLE = 0xf6
2785 WIN_SECURITY_ERASE_PREPARE = 0xf3
2786 WIN_SECURITY_ERASE_UNIT = 0xf4
2787 WIN_SECURITY_FREEZE_LOCK = 0xf5
2788 WIN_SECURITY_SET_PASS = 0xf1
2789 WIN_SECURITY_UNLOCK = 0xf2
2790 WIN_SEEK = 0x70
2791 WIN_SETFEATURES = 0xef
2792 WIN_SETIDLE1 = 0xe3
2793 WIN_SETIDLE2 = 0x97
2794 WIN_SETMULT = 0xc6
2795 WIN_SET_MAX = 0xf9
2796 WIN_SET_MAX_EXT = 0x37
2797 WIN_SLEEPNOW1 = 0xe6
2798 WIN_SLEEPNOW2 = 0x99
2799 WIN_SMART = 0xb0
2800 WIN_SPECIFY = 0x91
2801 WIN_SRST = 0x8
2802 WIN_STANDBY = 0xe2
2803 WIN_STANDBY2 = 0x96
2804 WIN_STANDBYNOW1 = 0xe0
2805 WIN_STANDBYNOW2 = 0x94
2806 WIN_VERIFY = 0x40
2807 WIN_VERIFY_EXT = 0x42
2808 WIN_VERIFY_ONCE = 0x41
2809 WIN_WRITE = 0x30
2810 WIN_WRITEDMA = 0xca
2811 WIN_WRITEDMA_EXT = 0x35
2812 WIN_WRITEDMA_ONCE = 0xcb
2813 WIN_WRITEDMA_QUEUED = 0xcc
2814 WIN_WRITEDMA_QUEUED_EXT = 0x36
2815 WIN_WRITE_BUFFER = 0xe8
2816 WIN_WRITE_EXT = 0x34
2817 WIN_WRITE_LONG = 0x32
2818 WIN_WRITE_LONG_ONCE = 0x33
2819 WIN_WRITE_ONCE = 0x31
2820 WIN_WRITE_SAME = 0xe9
2821 WIN_WRITE_VERIFY = 0x3c
2822 WNOHANG = 0x1
2823 WNOTHREAD = 0x20000000
2824 WNOWAIT = 0x1000000
2825 WORDSIZE = 0x20
2826 WSTOPPED = 0x2
2827 WUNTRACED = 0x2
2828 X86_FXSR_MAGIC = 0x0
2829 XATTR_CREATE = 0x1
2830 XATTR_REPLACE = 0x2
2831 XCASE = 0x4
2832 XDP_COPY = 0x2
2833 XDP_FLAGS_DRV_MODE = 0x4
2834 XDP_FLAGS_HW_MODE = 0x8
2835 XDP_FLAGS_MASK = 0xf
2836 XDP_FLAGS_MODES = 0xe
2837 XDP_FLAGS_SKB_MODE = 0x2
2838 XDP_FLAGS_UPDATE_IF_NOEXIST = 0x1
2839 XDP_MMAP_OFFSETS = 0x1
2840 XDP_OPTIONS = 0x8
2841 XDP_OPTIONS_ZEROCOPY = 0x1
2842 XDP_PACKET_HEADROOM = 0x100
2843 XDP_PGOFF_RX_RING = 0x0
2844 XDP_PGOFF_TX_RING = 0x80000000
2845 XDP_RING_NEED_WAKEUP = 0x1
2846 XDP_RX_RING = 0x2
2847 XDP_SHARED_UMEM = 0x1
2848 XDP_STATISTICS = 0x7
2849 XDP_TX_RING = 0x3
2850 XDP_UMEM_COMPLETION_RING = 0x6
2851 XDP_UMEM_FILL_RING = 0x5
2852 XDP_UMEM_PGOFF_COMPLETION_RING = 0x180000000
2853 XDP_UMEM_PGOFF_FILL_RING = 0x100000000
2854 XDP_UMEM_REG = 0x4
2855 XDP_UMEM_UNALIGNED_CHUNK_FLAG = 0x1
2856 XDP_USE_NEED_WAKEUP = 0x8
2857 XDP_ZEROCOPY = 0x4
2858 XENFS_SUPER_MAGIC = 0xabba1974
2859 XFS_SUPER_MAGIC = 0x58465342
2860 XTABS = 0x1800
2861 Z3FOLD_MAGIC = 0x33
2862 ZSMALLOC_MAGIC = 0x58295829
2670) 2863)
2671 2864
2672// Errors 2865// Errors
diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go
index 99e3a3d..ea6bb88 100644
--- a/vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go
+++ b/vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go
@@ -11,2662 +11,2855 @@ package unix
11import "syscall" 11import "syscall"
12 12
13const ( 13const (
14 AAFS_MAGIC = 0x5a3c69f0 14 AAFS_MAGIC = 0x5a3c69f0
15 ADFS_SUPER_MAGIC = 0xadf5 15 ADFS_SUPER_MAGIC = 0xadf5
16 AFFS_SUPER_MAGIC = 0xadff 16 AFFS_SUPER_MAGIC = 0xadff
17 AFS_FS_MAGIC = 0x6b414653 17 AFS_FS_MAGIC = 0x6b414653
18 AFS_SUPER_MAGIC = 0x5346414f 18 AFS_SUPER_MAGIC = 0x5346414f
19 AF_ALG = 0x26 19 AF_ALG = 0x26
20 AF_APPLETALK = 0x5 20 AF_APPLETALK = 0x5
21 AF_ASH = 0x12 21 AF_ASH = 0x12
22 AF_ATMPVC = 0x8 22 AF_ATMPVC = 0x8
23 AF_ATMSVC = 0x14 23 AF_ATMSVC = 0x14
24 AF_AX25 = 0x3 24 AF_AX25 = 0x3
25 AF_BLUETOOTH = 0x1f 25 AF_BLUETOOTH = 0x1f
26 AF_BRIDGE = 0x7 26 AF_BRIDGE = 0x7
27 AF_CAIF = 0x25 27 AF_CAIF = 0x25
28 AF_CAN = 0x1d 28 AF_CAN = 0x1d
29 AF_DECnet = 0xc 29 AF_DECnet = 0xc
30 AF_ECONET = 0x13 30 AF_ECONET = 0x13
31 AF_FILE = 0x1 31 AF_FILE = 0x1
32 AF_IB = 0x1b 32 AF_IB = 0x1b
33 AF_IEEE802154 = 0x24 33 AF_IEEE802154 = 0x24
34 AF_INET = 0x2 34 AF_INET = 0x2
35 AF_INET6 = 0xa 35 AF_INET6 = 0xa
36 AF_IPX = 0x4 36 AF_IPX = 0x4
37 AF_IRDA = 0x17 37 AF_IRDA = 0x17
38 AF_ISDN = 0x22 38 AF_ISDN = 0x22
39 AF_IUCV = 0x20 39 AF_IUCV = 0x20
40 AF_KCM = 0x29 40 AF_KCM = 0x29
41 AF_KEY = 0xf 41 AF_KEY = 0xf
42 AF_LLC = 0x1a 42 AF_LLC = 0x1a
43 AF_LOCAL = 0x1 43 AF_LOCAL = 0x1
44 AF_MAX = 0x2d 44 AF_MAX = 0x2d
45 AF_MPLS = 0x1c 45 AF_MPLS = 0x1c
46 AF_NETBEUI = 0xd 46 AF_NETBEUI = 0xd
47 AF_NETLINK = 0x10 47 AF_NETLINK = 0x10
48 AF_NETROM = 0x6 48 AF_NETROM = 0x6
49 AF_NFC = 0x27 49 AF_NFC = 0x27
50 AF_PACKET = 0x11 50 AF_PACKET = 0x11
51 AF_PHONET = 0x23 51 AF_PHONET = 0x23
52 AF_PPPOX = 0x18 52 AF_PPPOX = 0x18
53 AF_QIPCRTR = 0x2a 53 AF_QIPCRTR = 0x2a
54 AF_RDS = 0x15 54 AF_RDS = 0x15
55 AF_ROSE = 0xb 55 AF_ROSE = 0xb
56 AF_ROUTE = 0x10 56 AF_ROUTE = 0x10
57 AF_RXRPC = 0x21 57 AF_RXRPC = 0x21
58 AF_SECURITY = 0xe 58 AF_SECURITY = 0xe
59 AF_SMC = 0x2b 59 AF_SMC = 0x2b
60 AF_SNA = 0x16 60 AF_SNA = 0x16
61 AF_TIPC = 0x1e 61 AF_TIPC = 0x1e
62 AF_UNIX = 0x1 62 AF_UNIX = 0x1
63 AF_UNSPEC = 0x0 63 AF_UNSPEC = 0x0
64 AF_VSOCK = 0x28 64 AF_VSOCK = 0x28
65 AF_WANPIPE = 0x19 65 AF_WANPIPE = 0x19
66 AF_X25 = 0x9 66 AF_X25 = 0x9
67 AF_XDP = 0x2c 67 AF_XDP = 0x2c
68 ALG_OP_DECRYPT = 0x0 68 ALG_OP_DECRYPT = 0x0
69 ALG_OP_ENCRYPT = 0x1 69 ALG_OP_ENCRYPT = 0x1
70 ALG_SET_AEAD_ASSOCLEN = 0x4 70 ALG_SET_AEAD_ASSOCLEN = 0x4
71 ALG_SET_AEAD_AUTHSIZE = 0x5 71 ALG_SET_AEAD_AUTHSIZE = 0x5
72 ALG_SET_IV = 0x2 72 ALG_SET_IV = 0x2
73 ALG_SET_KEY = 0x1 73 ALG_SET_KEY = 0x1
74 ALG_SET_OP = 0x3 74 ALG_SET_OP = 0x3
75 ANON_INODE_FS_MAGIC = 0x9041934 75 ANON_INODE_FS_MAGIC = 0x9041934
76 ARPHRD_6LOWPAN = 0x339 76 ARPHRD_6LOWPAN = 0x339
77 ARPHRD_ADAPT = 0x108 77 ARPHRD_ADAPT = 0x108
78 ARPHRD_APPLETLK = 0x8 78 ARPHRD_APPLETLK = 0x8
79 ARPHRD_ARCNET = 0x7 79 ARPHRD_ARCNET = 0x7
80 ARPHRD_ASH = 0x30d 80 ARPHRD_ASH = 0x30d
81 ARPHRD_ATM = 0x13 81 ARPHRD_ATM = 0x13
82 ARPHRD_AX25 = 0x3 82 ARPHRD_AX25 = 0x3
83 ARPHRD_BIF = 0x307 83 ARPHRD_BIF = 0x307
84 ARPHRD_CAIF = 0x336 84 ARPHRD_CAIF = 0x336
85 ARPHRD_CAN = 0x118 85 ARPHRD_CAN = 0x118
86 ARPHRD_CHAOS = 0x5 86 ARPHRD_CHAOS = 0x5
87 ARPHRD_CISCO = 0x201 87 ARPHRD_CISCO = 0x201
88 ARPHRD_CSLIP = 0x101 88 ARPHRD_CSLIP = 0x101
89 ARPHRD_CSLIP6 = 0x103 89 ARPHRD_CSLIP6 = 0x103
90 ARPHRD_DDCMP = 0x205 90 ARPHRD_DDCMP = 0x205
91 ARPHRD_DLCI = 0xf 91 ARPHRD_DLCI = 0xf
92 ARPHRD_ECONET = 0x30e 92 ARPHRD_ECONET = 0x30e
93 ARPHRD_EETHER = 0x2 93 ARPHRD_EETHER = 0x2
94 ARPHRD_ETHER = 0x1 94 ARPHRD_ETHER = 0x1
95 ARPHRD_EUI64 = 0x1b 95 ARPHRD_EUI64 = 0x1b
96 ARPHRD_FCAL = 0x311 96 ARPHRD_FCAL = 0x311
97 ARPHRD_FCFABRIC = 0x313 97 ARPHRD_FCFABRIC = 0x313
98 ARPHRD_FCPL = 0x312 98 ARPHRD_FCPL = 0x312
99 ARPHRD_FCPP = 0x310 99 ARPHRD_FCPP = 0x310
100 ARPHRD_FDDI = 0x306 100 ARPHRD_FDDI = 0x306
101 ARPHRD_FRAD = 0x302 101 ARPHRD_FRAD = 0x302
102 ARPHRD_HDLC = 0x201 102 ARPHRD_HDLC = 0x201
103 ARPHRD_HIPPI = 0x30c 103 ARPHRD_HIPPI = 0x30c
104 ARPHRD_HWX25 = 0x110 104 ARPHRD_HWX25 = 0x110
105 ARPHRD_IEEE1394 = 0x18 105 ARPHRD_IEEE1394 = 0x18
106 ARPHRD_IEEE802 = 0x6 106 ARPHRD_IEEE802 = 0x6
107 ARPHRD_IEEE80211 = 0x321 107 ARPHRD_IEEE80211 = 0x321
108 ARPHRD_IEEE80211_PRISM = 0x322 108 ARPHRD_IEEE80211_PRISM = 0x322
109 ARPHRD_IEEE80211_RADIOTAP = 0x323 109 ARPHRD_IEEE80211_RADIOTAP = 0x323
110 ARPHRD_IEEE802154 = 0x324 110 ARPHRD_IEEE802154 = 0x324
111 ARPHRD_IEEE802154_MONITOR = 0x325 111 ARPHRD_IEEE802154_MONITOR = 0x325
112 ARPHRD_IEEE802_TR = 0x320 112 ARPHRD_IEEE802_TR = 0x320
113 ARPHRD_INFINIBAND = 0x20 113 ARPHRD_INFINIBAND = 0x20
114 ARPHRD_IP6GRE = 0x337 114 ARPHRD_IP6GRE = 0x337
115 ARPHRD_IPDDP = 0x309 115 ARPHRD_IPDDP = 0x309
116 ARPHRD_IPGRE = 0x30a 116 ARPHRD_IPGRE = 0x30a
117 ARPHRD_IRDA = 0x30f 117 ARPHRD_IRDA = 0x30f
118 ARPHRD_LAPB = 0x204 118 ARPHRD_LAPB = 0x204
119 ARPHRD_LOCALTLK = 0x305 119 ARPHRD_LOCALTLK = 0x305
120 ARPHRD_LOOPBACK = 0x304 120 ARPHRD_LOOPBACK = 0x304
121 ARPHRD_METRICOM = 0x17 121 ARPHRD_METRICOM = 0x17
122 ARPHRD_NETLINK = 0x338 122 ARPHRD_NETLINK = 0x338
123 ARPHRD_NETROM = 0x0 123 ARPHRD_NETROM = 0x0
124 ARPHRD_NONE = 0xfffe 124 ARPHRD_NONE = 0xfffe
125 ARPHRD_PHONET = 0x334 125 ARPHRD_PHONET = 0x334
126 ARPHRD_PHONET_PIPE = 0x335 126 ARPHRD_PHONET_PIPE = 0x335
127 ARPHRD_PIMREG = 0x30b 127 ARPHRD_PIMREG = 0x30b
128 ARPHRD_PPP = 0x200 128 ARPHRD_PPP = 0x200
129 ARPHRD_PRONET = 0x4 129 ARPHRD_PRONET = 0x4
130 ARPHRD_RAWHDLC = 0x206 130 ARPHRD_RAWHDLC = 0x206
131 ARPHRD_RAWIP = 0x207 131 ARPHRD_RAWIP = 0x207
132 ARPHRD_ROSE = 0x10e 132 ARPHRD_ROSE = 0x10e
133 ARPHRD_RSRVD = 0x104 133 ARPHRD_RSRVD = 0x104
134 ARPHRD_SIT = 0x308 134 ARPHRD_SIT = 0x308
135 ARPHRD_SKIP = 0x303 135 ARPHRD_SKIP = 0x303
136 ARPHRD_SLIP = 0x100 136 ARPHRD_SLIP = 0x100
137 ARPHRD_SLIP6 = 0x102 137 ARPHRD_SLIP6 = 0x102
138 ARPHRD_TUNNEL = 0x300 138 ARPHRD_TUNNEL = 0x300
139 ARPHRD_TUNNEL6 = 0x301 139 ARPHRD_TUNNEL6 = 0x301
140 ARPHRD_VOID = 0xffff 140 ARPHRD_VOID = 0xffff
141 ARPHRD_VSOCKMON = 0x33a 141 ARPHRD_VSOCKMON = 0x33a
142 ARPHRD_X25 = 0x10f 142 ARPHRD_X25 = 0x10f
143 AUTOFS_SUPER_MAGIC = 0x187 143 AUTOFS_SUPER_MAGIC = 0x187
144 B0 = 0x0 144 B0 = 0x0
145 B1000000 = 0x1008 145 B1000000 = 0x1008
146 B110 = 0x3 146 B110 = 0x3
147 B115200 = 0x1002 147 B115200 = 0x1002
148 B1152000 = 0x1009 148 B1152000 = 0x1009
149 B1200 = 0x9 149 B1200 = 0x9
150 B134 = 0x4 150 B134 = 0x4
151 B150 = 0x5 151 B150 = 0x5
152 B1500000 = 0x100a 152 B1500000 = 0x100a
153 B1800 = 0xa 153 B1800 = 0xa
154 B19200 = 0xe 154 B19200 = 0xe
155 B200 = 0x6 155 B200 = 0x6
156 B2000000 = 0x100b 156 B2000000 = 0x100b
157 B230400 = 0x1003 157 B230400 = 0x1003
158 B2400 = 0xb 158 B2400 = 0xb
159 B2500000 = 0x100c 159 B2500000 = 0x100c
160 B300 = 0x7 160 B300 = 0x7
161 B3000000 = 0x100d 161 B3000000 = 0x100d
162 B3500000 = 0x100e 162 B3500000 = 0x100e
163 B38400 = 0xf 163 B38400 = 0xf
164 B4000000 = 0x100f 164 B4000000 = 0x100f
165 B460800 = 0x1004 165 B460800 = 0x1004
166 B4800 = 0xc 166 B4800 = 0xc
167 B50 = 0x1 167 B50 = 0x1
168 B500000 = 0x1005 168 B500000 = 0x1005
169 B57600 = 0x1001 169 B57600 = 0x1001
170 B576000 = 0x1006 170 B576000 = 0x1006
171 B600 = 0x8 171 B600 = 0x8
172 B75 = 0x2 172 B75 = 0x2
173 B921600 = 0x1007 173 B921600 = 0x1007
174 B9600 = 0xd 174 B9600 = 0xd
175 BALLOON_KVM_MAGIC = 0x13661366 175 BALLOON_KVM_MAGIC = 0x13661366
176 BDEVFS_MAGIC = 0x62646576 176 BDEVFS_MAGIC = 0x62646576
177 BINDERFS_SUPER_MAGIC = 0x6c6f6f70 177 BINDERFS_SUPER_MAGIC = 0x6c6f6f70
178 BINFMTFS_MAGIC = 0x42494e4d 178 BINFMTFS_MAGIC = 0x42494e4d
179 BLKBSZGET = 0x80081270 179 BLKBSZGET = 0x80081270
180 BLKBSZSET = 0x40081271 180 BLKBSZSET = 0x40081271
181 BLKFLSBUF = 0x1261 181 BLKFLSBUF = 0x1261
182 BLKFRAGET = 0x1265 182 BLKFRAGET = 0x1265
183 BLKFRASET = 0x1264 183 BLKFRASET = 0x1264
184 BLKGETSIZE = 0x1260 184 BLKGETSIZE = 0x1260
185 BLKGETSIZE64 = 0x80081272 185 BLKGETSIZE64 = 0x80081272
186 BLKPBSZGET = 0x127b 186 BLKPBSZGET = 0x127b
187 BLKRAGET = 0x1263 187 BLKRAGET = 0x1263
188 BLKRASET = 0x1262 188 BLKRASET = 0x1262
189 BLKROGET = 0x125e 189 BLKROGET = 0x125e
190 BLKROSET = 0x125d 190 BLKROSET = 0x125d
191 BLKRRPART = 0x125f 191 BLKRRPART = 0x125f
192 BLKSECTGET = 0x1267 192 BLKSECTGET = 0x1267
193 BLKSECTSET = 0x1266 193 BLKSECTSET = 0x1266
194 BLKSSZGET = 0x1268 194 BLKSSZGET = 0x1268
195 BOTHER = 0x1000 195 BOTHER = 0x1000
196 BPF_A = 0x10 196 BPF_A = 0x10
197 BPF_ABS = 0x20 197 BPF_ABS = 0x20
198 BPF_ADD = 0x0 198 BPF_ADD = 0x0
199 BPF_ADJ_ROOM_ENCAP_L2_MASK = 0xff 199 BPF_ADJ_ROOM_ENCAP_L2_MASK = 0xff
200 BPF_ADJ_ROOM_ENCAP_L2_SHIFT = 0x38 200 BPF_ADJ_ROOM_ENCAP_L2_SHIFT = 0x38
201 BPF_ALU = 0x4 201 BPF_ALU = 0x4
202 BPF_ALU64 = 0x7 202 BPF_ALU64 = 0x7
203 BPF_AND = 0x50 203 BPF_AND = 0x50
204 BPF_ANY = 0x0 204 BPF_ANY = 0x0
205 BPF_ARSH = 0xc0 205 BPF_ARSH = 0xc0
206 BPF_B = 0x10 206 BPF_B = 0x10
207 BPF_BUILD_ID_SIZE = 0x14 207 BPF_BUILD_ID_SIZE = 0x14
208 BPF_CALL = 0x80 208 BPF_CALL = 0x80
209 BPF_DEVCG_ACC_MKNOD = 0x1 209 BPF_DEVCG_ACC_MKNOD = 0x1
210 BPF_DEVCG_ACC_READ = 0x2 210 BPF_DEVCG_ACC_READ = 0x2
211 BPF_DEVCG_ACC_WRITE = 0x4 211 BPF_DEVCG_ACC_WRITE = 0x4
212 BPF_DEVCG_DEV_BLOCK = 0x1 212 BPF_DEVCG_DEV_BLOCK = 0x1
213 BPF_DEVCG_DEV_CHAR = 0x2 213 BPF_DEVCG_DEV_CHAR = 0x2
214 BPF_DIV = 0x30 214 BPF_DIV = 0x30
215 BPF_DW = 0x18 215 BPF_DW = 0x18
216 BPF_END = 0xd0 216 BPF_END = 0xd0
217 BPF_EXIST = 0x2 217 BPF_EXIST = 0x2
218 BPF_EXIT = 0x90 218 BPF_EXIT = 0x90
219 BPF_FROM_BE = 0x8 219 BPF_FLOW_DISSECTOR_F_PARSE_1ST_FRAG = 0x1
220 BPF_FROM_LE = 0x0 220 BPF_FLOW_DISSECTOR_F_STOP_AT_ENCAP = 0x4
221 BPF_FS_MAGIC = 0xcafe4a11 221 BPF_FLOW_DISSECTOR_F_STOP_AT_FLOW_LABEL = 0x2
222 BPF_F_ADJ_ROOM_ENCAP_L3_IPV4 = 0x2 222 BPF_FROM_BE = 0x8
223 BPF_F_ADJ_ROOM_ENCAP_L3_IPV6 = 0x4 223 BPF_FROM_LE = 0x0
224 BPF_F_ADJ_ROOM_ENCAP_L4_GRE = 0x8 224 BPF_FS_MAGIC = 0xcafe4a11
225 BPF_F_ADJ_ROOM_ENCAP_L4_UDP = 0x10 225 BPF_F_ADJ_ROOM_ENCAP_L3_IPV4 = 0x2
226 BPF_F_ADJ_ROOM_FIXED_GSO = 0x1 226 BPF_F_ADJ_ROOM_ENCAP_L3_IPV6 = 0x4
227 BPF_F_ALLOW_MULTI = 0x2 227 BPF_F_ADJ_ROOM_ENCAP_L4_GRE = 0x8
228 BPF_F_ALLOW_OVERRIDE = 0x1 228 BPF_F_ADJ_ROOM_ENCAP_L4_UDP = 0x10
229 BPF_F_ANY_ALIGNMENT = 0x2 229 BPF_F_ADJ_ROOM_FIXED_GSO = 0x1
230 BPF_F_CTXLEN_MASK = 0xfffff00000000 230 BPF_F_ALLOW_MULTI = 0x2
231 BPF_F_CURRENT_CPU = 0xffffffff 231 BPF_F_ALLOW_OVERRIDE = 0x1
232 BPF_F_CURRENT_NETNS = -0x1 232 BPF_F_ANY_ALIGNMENT = 0x2
233 BPF_F_DONT_FRAGMENT = 0x4 233 BPF_F_CLONE = 0x200
234 BPF_F_FAST_STACK_CMP = 0x200 234 BPF_F_CTXLEN_MASK = 0xfffff00000000
235 BPF_F_HDR_FIELD_MASK = 0xf 235 BPF_F_CURRENT_CPU = 0xffffffff
236 BPF_F_INDEX_MASK = 0xffffffff 236 BPF_F_CURRENT_NETNS = -0x1
237 BPF_F_INGRESS = 0x1 237 BPF_F_DONT_FRAGMENT = 0x4
238 BPF_F_INVALIDATE_HASH = 0x2 238 BPF_F_FAST_STACK_CMP = 0x200
239 BPF_F_LOCK = 0x4 239 BPF_F_HDR_FIELD_MASK = 0xf
240 BPF_F_MARK_ENFORCE = 0x40 240 BPF_F_INDEX_MASK = 0xffffffff
241 BPF_F_MARK_MANGLED_0 = 0x20 241 BPF_F_INGRESS = 0x1
242 BPF_F_NO_COMMON_LRU = 0x2 242 BPF_F_INVALIDATE_HASH = 0x2
243 BPF_F_NO_PREALLOC = 0x1 243 BPF_F_LOCK = 0x4
244 BPF_F_NUMA_NODE = 0x4 244 BPF_F_MARK_ENFORCE = 0x40
245 BPF_F_PSEUDO_HDR = 0x10 245 BPF_F_MARK_MANGLED_0 = 0x20
246 BPF_F_QUERY_EFFECTIVE = 0x1 246 BPF_F_MMAPABLE = 0x400
247 BPF_F_RDONLY = 0x8 247 BPF_F_NO_COMMON_LRU = 0x2
248 BPF_F_RDONLY_PROG = 0x80 248 BPF_F_NO_PREALLOC = 0x1
249 BPF_F_RECOMPUTE_CSUM = 0x1 249 BPF_F_NUMA_NODE = 0x4
250 BPF_F_REUSE_STACKID = 0x400 250 BPF_F_PSEUDO_HDR = 0x10
251 BPF_F_SEQ_NUMBER = 0x8 251 BPF_F_QUERY_EFFECTIVE = 0x1
252 BPF_F_SKIP_FIELD_MASK = 0xff 252 BPF_F_RDONLY = 0x8
253 BPF_F_STACK_BUILD_ID = 0x20 253 BPF_F_RDONLY_PROG = 0x80
254 BPF_F_STRICT_ALIGNMENT = 0x1 254 BPF_F_RECOMPUTE_CSUM = 0x1
255 BPF_F_SYSCTL_BASE_NAME = 0x1 255 BPF_F_REUSE_STACKID = 0x400
256 BPF_F_TUNINFO_IPV6 = 0x1 256 BPF_F_SEQ_NUMBER = 0x8
257 BPF_F_USER_BUILD_ID = 0x800 257 BPF_F_SKIP_FIELD_MASK = 0xff
258 BPF_F_USER_STACK = 0x100 258 BPF_F_STACK_BUILD_ID = 0x20
259 BPF_F_WRONLY = 0x10 259 BPF_F_STRICT_ALIGNMENT = 0x1
260 BPF_F_WRONLY_PROG = 0x100 260 BPF_F_SYSCTL_BASE_NAME = 0x1
261 BPF_F_ZERO_CSUM_TX = 0x2 261 BPF_F_TEST_RND_HI32 = 0x4
262 BPF_F_ZERO_SEED = 0x40 262 BPF_F_TEST_STATE_FREQ = 0x8
263 BPF_H = 0x8 263 BPF_F_TUNINFO_IPV6 = 0x1
264 BPF_IMM = 0x0 264 BPF_F_USER_BUILD_ID = 0x800
265 BPF_IND = 0x40 265 BPF_F_USER_STACK = 0x100
266 BPF_JA = 0x0 266 BPF_F_WRONLY = 0x10
267 BPF_JEQ = 0x10 267 BPF_F_WRONLY_PROG = 0x100
268 BPF_JGE = 0x30 268 BPF_F_ZERO_CSUM_TX = 0x2
269 BPF_JGT = 0x20 269 BPF_F_ZERO_SEED = 0x40
270 BPF_JLE = 0xb0 270 BPF_H = 0x8
271 BPF_JLT = 0xa0 271 BPF_IMM = 0x0
272 BPF_JMP = 0x5 272 BPF_IND = 0x40
273 BPF_JMP32 = 0x6 273 BPF_JA = 0x0
274 BPF_JNE = 0x50 274 BPF_JEQ = 0x10
275 BPF_JSET = 0x40 275 BPF_JGE = 0x30
276 BPF_JSGE = 0x70 276 BPF_JGT = 0x20
277 BPF_JSGT = 0x60 277 BPF_JLE = 0xb0
278 BPF_JSLE = 0xd0 278 BPF_JLT = 0xa0
279 BPF_JSLT = 0xc0 279 BPF_JMP = 0x5
280 BPF_K = 0x0 280 BPF_JMP32 = 0x6
281 BPF_LD = 0x0 281 BPF_JNE = 0x50
282 BPF_LDX = 0x1 282 BPF_JSET = 0x40
283 BPF_LEN = 0x80 283 BPF_JSGE = 0x70
284 BPF_LL_OFF = -0x200000 284 BPF_JSGT = 0x60
285 BPF_LSH = 0x60 285 BPF_JSLE = 0xd0
286 BPF_MAJOR_VERSION = 0x1 286 BPF_JSLT = 0xc0
287 BPF_MAXINSNS = 0x1000 287 BPF_K = 0x0
288 BPF_MEM = 0x60 288 BPF_LD = 0x0
289 BPF_MEMWORDS = 0x10 289 BPF_LDX = 0x1
290 BPF_MINOR_VERSION = 0x1 290 BPF_LEN = 0x80
291 BPF_MISC = 0x7 291 BPF_LL_OFF = -0x200000
292 BPF_MOD = 0x90 292 BPF_LSH = 0x60
293 BPF_MOV = 0xb0 293 BPF_MAJOR_VERSION = 0x1
294 BPF_MSH = 0xa0 294 BPF_MAXINSNS = 0x1000
295 BPF_MUL = 0x20 295 BPF_MEM = 0x60
296 BPF_NEG = 0x80 296 BPF_MEMWORDS = 0x10
297 BPF_NET_OFF = -0x100000 297 BPF_MINOR_VERSION = 0x1
298 BPF_NOEXIST = 0x1 298 BPF_MISC = 0x7
299 BPF_OBJ_NAME_LEN = 0x10 299 BPF_MOD = 0x90
300 BPF_OR = 0x40 300 BPF_MOV = 0xb0
301 BPF_PSEUDO_CALL = 0x1 301 BPF_MSH = 0xa0
302 BPF_PSEUDO_MAP_FD = 0x1 302 BPF_MUL = 0x20
303 BPF_PSEUDO_MAP_VALUE = 0x2 303 BPF_NEG = 0x80
304 BPF_RET = 0x6 304 BPF_NET_OFF = -0x100000
305 BPF_RSH = 0x70 305 BPF_NOEXIST = 0x1
306 BPF_SK_STORAGE_GET_F_CREATE = 0x1 306 BPF_OBJ_NAME_LEN = 0x10
307 BPF_SOCK_OPS_ALL_CB_FLAGS = 0x7 307 BPF_OR = 0x40
308 BPF_SOCK_OPS_RETRANS_CB_FLAG = 0x2 308 BPF_PSEUDO_CALL = 0x1
309 BPF_SOCK_OPS_RTO_CB_FLAG = 0x1 309 BPF_PSEUDO_MAP_FD = 0x1
310 BPF_SOCK_OPS_STATE_CB_FLAG = 0x4 310 BPF_PSEUDO_MAP_VALUE = 0x2
311 BPF_ST = 0x2 311 BPF_RET = 0x6
312 BPF_STX = 0x3 312 BPF_RSH = 0x70
313 BPF_SUB = 0x10 313 BPF_SK_STORAGE_GET_F_CREATE = 0x1
314 BPF_TAG_SIZE = 0x8 314 BPF_SOCK_OPS_ALL_CB_FLAGS = 0xf
315 BPF_TAX = 0x0 315 BPF_SOCK_OPS_RETRANS_CB_FLAG = 0x2
316 BPF_TO_BE = 0x8 316 BPF_SOCK_OPS_RTO_CB_FLAG = 0x1
317 BPF_TO_LE = 0x0 317 BPF_SOCK_OPS_RTT_CB_FLAG = 0x8
318 BPF_TXA = 0x80 318 BPF_SOCK_OPS_STATE_CB_FLAG = 0x4
319 BPF_W = 0x0 319 BPF_ST = 0x2
320 BPF_X = 0x8 320 BPF_STX = 0x3
321 BPF_XADD = 0xc0 321 BPF_SUB = 0x10
322 BPF_XOR = 0xa0 322 BPF_TAG_SIZE = 0x8
323 BRKINT = 0x2 323 BPF_TAX = 0x0
324 BS0 = 0x0 324 BPF_TO_BE = 0x8
325 BS1 = 0x2000 325 BPF_TO_LE = 0x0
326 BSDLY = 0x2000 326 BPF_TXA = 0x80
327 BTRFS_SUPER_MAGIC = 0x9123683e 327 BPF_W = 0x0
328 BTRFS_TEST_MAGIC = 0x73727279 328 BPF_X = 0x8
329 CAN_BCM = 0x2 329 BPF_XADD = 0xc0
330 CAN_EFF_FLAG = 0x80000000 330 BPF_XOR = 0xa0
331 CAN_EFF_ID_BITS = 0x1d 331 BRKINT = 0x2
332 CAN_EFF_MASK = 0x1fffffff 332 BS0 = 0x0
333 CAN_ERR_FLAG = 0x20000000 333 BS1 = 0x2000
334 CAN_ERR_MASK = 0x1fffffff 334 BSDLY = 0x2000
335 CAN_INV_FILTER = 0x20000000 335 BTRFS_SUPER_MAGIC = 0x9123683e
336 CAN_ISOTP = 0x6 336 BTRFS_TEST_MAGIC = 0x73727279
337 CAN_MAX_DLC = 0x8 337 CAN_BCM = 0x2
338 CAN_MAX_DLEN = 0x8 338 CAN_EFF_FLAG = 0x80000000
339 CAN_MCNET = 0x5 339 CAN_EFF_ID_BITS = 0x1d
340 CAN_MTU = 0x10 340 CAN_EFF_MASK = 0x1fffffff
341 CAN_NPROTO = 0x7 341 CAN_ERR_FLAG = 0x20000000
342 CAN_RAW = 0x1 342 CAN_ERR_MASK = 0x1fffffff
343 CAN_RAW_FILTER_MAX = 0x200 343 CAN_INV_FILTER = 0x20000000
344 CAN_RTR_FLAG = 0x40000000 344 CAN_ISOTP = 0x6
345 CAN_SFF_ID_BITS = 0xb 345 CAN_J1939 = 0x7
346 CAN_SFF_MASK = 0x7ff 346 CAN_MAX_DLC = 0x8
347 CAN_TP16 = 0x3 347 CAN_MAX_DLEN = 0x8
348 CAN_TP20 = 0x4 348 CAN_MCNET = 0x5
349 CAP_AUDIT_CONTROL = 0x1e 349 CAN_MTU = 0x10
350 CAP_AUDIT_READ = 0x25 350 CAN_NPROTO = 0x8
351 CAP_AUDIT_WRITE = 0x1d 351 CAN_RAW = 0x1
352 CAP_BLOCK_SUSPEND = 0x24 352 CAN_RAW_FILTER_MAX = 0x200
353 CAP_CHOWN = 0x0 353 CAN_RTR_FLAG = 0x40000000
354 CAP_DAC_OVERRIDE = 0x1 354 CAN_SFF_ID_BITS = 0xb
355 CAP_DAC_READ_SEARCH = 0x2 355 CAN_SFF_MASK = 0x7ff
356 CAP_FOWNER = 0x3 356 CAN_TP16 = 0x3
357 CAP_FSETID = 0x4 357 CAN_TP20 = 0x4
358 CAP_IPC_LOCK = 0xe 358 CAP_AUDIT_CONTROL = 0x1e
359 CAP_IPC_OWNER = 0xf 359 CAP_AUDIT_READ = 0x25
360 CAP_KILL = 0x5 360 CAP_AUDIT_WRITE = 0x1d
361 CAP_LAST_CAP = 0x25 361 CAP_BLOCK_SUSPEND = 0x24
362 CAP_LEASE = 0x1c 362 CAP_CHOWN = 0x0
363 CAP_LINUX_IMMUTABLE = 0x9 363 CAP_DAC_OVERRIDE = 0x1
364 CAP_MAC_ADMIN = 0x21 364 CAP_DAC_READ_SEARCH = 0x2
365 CAP_MAC_OVERRIDE = 0x20 365 CAP_FOWNER = 0x3
366 CAP_MKNOD = 0x1b 366 CAP_FSETID = 0x4
367 CAP_NET_ADMIN = 0xc 367 CAP_IPC_LOCK = 0xe
368 CAP_NET_BIND_SERVICE = 0xa 368 CAP_IPC_OWNER = 0xf
369 CAP_NET_BROADCAST = 0xb 369 CAP_KILL = 0x5
370 CAP_NET_RAW = 0xd 370 CAP_LAST_CAP = 0x25
371 CAP_SETFCAP = 0x1f 371 CAP_LEASE = 0x1c
372 CAP_SETGID = 0x6 372 CAP_LINUX_IMMUTABLE = 0x9
373 CAP_SETPCAP = 0x8 373 CAP_MAC_ADMIN = 0x21
374 CAP_SETUID = 0x7 374 CAP_MAC_OVERRIDE = 0x20
375 CAP_SYSLOG = 0x22 375 CAP_MKNOD = 0x1b
376 CAP_SYS_ADMIN = 0x15 376 CAP_NET_ADMIN = 0xc
377 CAP_SYS_BOOT = 0x16 377 CAP_NET_BIND_SERVICE = 0xa
378 CAP_SYS_CHROOT = 0x12 378 CAP_NET_BROADCAST = 0xb
379 CAP_SYS_MODULE = 0x10 379 CAP_NET_RAW = 0xd
380 CAP_SYS_NICE = 0x17 380 CAP_SETFCAP = 0x1f
381 CAP_SYS_PACCT = 0x14 381 CAP_SETGID = 0x6
382 CAP_SYS_PTRACE = 0x13 382 CAP_SETPCAP = 0x8
383 CAP_SYS_RAWIO = 0x11 383 CAP_SETUID = 0x7
384 CAP_SYS_RESOURCE = 0x18 384 CAP_SYSLOG = 0x22
385 CAP_SYS_TIME = 0x19 385 CAP_SYS_ADMIN = 0x15
386 CAP_SYS_TTY_CONFIG = 0x1a 386 CAP_SYS_BOOT = 0x16
387 CAP_WAKE_ALARM = 0x23 387 CAP_SYS_CHROOT = 0x12
388 CBAUD = 0x100f 388 CAP_SYS_MODULE = 0x10
389 CBAUDEX = 0x1000 389 CAP_SYS_NICE = 0x17
390 CFLUSH = 0xf 390 CAP_SYS_PACCT = 0x14
391 CGROUP2_SUPER_MAGIC = 0x63677270 391 CAP_SYS_PTRACE = 0x13
392 CGROUP_SUPER_MAGIC = 0x27e0eb 392 CAP_SYS_RAWIO = 0x11
393 CIBAUD = 0x100f0000 393 CAP_SYS_RESOURCE = 0x18
394 CLOCAL = 0x800 394 CAP_SYS_TIME = 0x19
395 CLOCK_BOOTTIME = 0x7 395 CAP_SYS_TTY_CONFIG = 0x1a
396 CLOCK_BOOTTIME_ALARM = 0x9 396 CAP_WAKE_ALARM = 0x23
397 CLOCK_DEFAULT = 0x0 397 CBAUD = 0x100f
398 CLOCK_EXT = 0x1 398 CBAUDEX = 0x1000
399 CLOCK_INT = 0x2 399 CFLUSH = 0xf
400 CLOCK_MONOTONIC = 0x1 400 CGROUP2_SUPER_MAGIC = 0x63677270
401 CLOCK_MONOTONIC_COARSE = 0x6 401 CGROUP_SUPER_MAGIC = 0x27e0eb
402 CLOCK_MONOTONIC_RAW = 0x4 402 CIBAUD = 0x100f0000
403 CLOCK_PROCESS_CPUTIME_ID = 0x2 403 CLOCAL = 0x800
404 CLOCK_REALTIME = 0x0 404 CLOCK_BOOTTIME = 0x7
405 CLOCK_REALTIME_ALARM = 0x8 405 CLOCK_BOOTTIME_ALARM = 0x9
406 CLOCK_REALTIME_COARSE = 0x5 406 CLOCK_DEFAULT = 0x0
407 CLOCK_TAI = 0xb 407 CLOCK_EXT = 0x1
408 CLOCK_THREAD_CPUTIME_ID = 0x3 408 CLOCK_INT = 0x2
409 CLOCK_TXFROMRX = 0x4 409 CLOCK_MONOTONIC = 0x1
410 CLOCK_TXINT = 0x3 410 CLOCK_MONOTONIC_COARSE = 0x6
411 CLONE_CHILD_CLEARTID = 0x200000 411 CLOCK_MONOTONIC_RAW = 0x4
412 CLONE_CHILD_SETTID = 0x1000000 412 CLOCK_PROCESS_CPUTIME_ID = 0x2
413 CLONE_DETACHED = 0x400000 413 CLOCK_REALTIME = 0x0
414 CLONE_FILES = 0x400 414 CLOCK_REALTIME_ALARM = 0x8
415 CLONE_FS = 0x200 415 CLOCK_REALTIME_COARSE = 0x5
416 CLONE_IO = 0x80000000 416 CLOCK_TAI = 0xb
417 CLONE_NEWCGROUP = 0x2000000 417 CLOCK_THREAD_CPUTIME_ID = 0x3
418 CLONE_NEWIPC = 0x8000000 418 CLOCK_TXFROMRX = 0x4
419 CLONE_NEWNET = 0x40000000 419 CLOCK_TXINT = 0x3
420 CLONE_NEWNS = 0x20000 420 CLONE_ARGS_SIZE_VER0 = 0x40
421 CLONE_NEWPID = 0x20000000 421 CLONE_ARGS_SIZE_VER1 = 0x50
422 CLONE_NEWUSER = 0x10000000 422 CLONE_CHILD_CLEARTID = 0x200000
423 CLONE_NEWUTS = 0x4000000 423 CLONE_CHILD_SETTID = 0x1000000
424 CLONE_PARENT = 0x8000 424 CLONE_CLEAR_SIGHAND = 0x100000000
425 CLONE_PARENT_SETTID = 0x100000 425 CLONE_DETACHED = 0x400000
426 CLONE_PIDFD = 0x1000 426 CLONE_FILES = 0x400
427 CLONE_PTRACE = 0x2000 427 CLONE_FS = 0x200
428 CLONE_SETTLS = 0x80000 428 CLONE_IO = 0x80000000
429 CLONE_SIGHAND = 0x800 429 CLONE_NEWCGROUP = 0x2000000
430 CLONE_SYSVSEM = 0x40000 430 CLONE_NEWIPC = 0x8000000
431 CLONE_THREAD = 0x10000 431 CLONE_NEWNET = 0x40000000
432 CLONE_UNTRACED = 0x800000 432 CLONE_NEWNS = 0x20000
433 CLONE_VFORK = 0x4000 433 CLONE_NEWPID = 0x20000000
434 CLONE_VM = 0x100 434 CLONE_NEWUSER = 0x10000000
435 CMSPAR = 0x40000000 435 CLONE_NEWUTS = 0x4000000
436 CODA_SUPER_MAGIC = 0x73757245 436 CLONE_PARENT = 0x8000
437 CR0 = 0x0 437 CLONE_PARENT_SETTID = 0x100000
438 CR1 = 0x200 438 CLONE_PIDFD = 0x1000
439 CR2 = 0x400 439 CLONE_PTRACE = 0x2000
440 CR3 = 0x600 440 CLONE_SETTLS = 0x80000
441 CRAMFS_MAGIC = 0x28cd3d45 441 CLONE_SIGHAND = 0x800
442 CRDLY = 0x600 442 CLONE_SYSVSEM = 0x40000
443 CREAD = 0x80 443 CLONE_THREAD = 0x10000
444 CRTSCTS = 0x80000000 444 CLONE_UNTRACED = 0x800000
445 CRYPTO_MAX_NAME = 0x40 445 CLONE_VFORK = 0x4000
446 CRYPTO_MSG_MAX = 0x15 446 CLONE_VM = 0x100
447 CRYPTO_NR_MSGTYPES = 0x6 447 CMSPAR = 0x40000000
448 CRYPTO_REPORT_MAXSIZE = 0x160 448 CODA_SUPER_MAGIC = 0x73757245
449 CS5 = 0x0 449 CR0 = 0x0
450 CS6 = 0x10 450 CR1 = 0x200
451 CS7 = 0x20 451 CR2 = 0x400
452 CS8 = 0x30 452 CR3 = 0x600
453 CSIGNAL = 0xff 453 CRAMFS_MAGIC = 0x28cd3d45
454 CSIZE = 0x30 454 CRDLY = 0x600
455 CSTART = 0x11 455 CREAD = 0x80
456 CSTATUS = 0x0 456 CRTSCTS = 0x80000000
457 CSTOP = 0x13 457 CRYPTO_MAX_NAME = 0x40
458 CSTOPB = 0x40 458 CRYPTO_MSG_MAX = 0x15
459 CSUSP = 0x1a 459 CRYPTO_NR_MSGTYPES = 0x6
460 DAXFS_MAGIC = 0x64646178 460 CRYPTO_REPORT_MAXSIZE = 0x160
461 DEBUGFS_MAGIC = 0x64626720 461 CS5 = 0x0
462 DEVPTS_SUPER_MAGIC = 0x1cd1 462 CS6 = 0x10
463 DT_BLK = 0x6 463 CS7 = 0x20
464 DT_CHR = 0x2 464 CS8 = 0x30
465 DT_DIR = 0x4 465 CSIGNAL = 0xff
466 DT_FIFO = 0x1 466 CSIZE = 0x30
467 DT_LNK = 0xa 467 CSTART = 0x11
468 DT_REG = 0x8 468 CSTATUS = 0x0
469 DT_SOCK = 0xc 469 CSTOP = 0x13
470 DT_UNKNOWN = 0x0 470 CSTOPB = 0x40
471 DT_WHT = 0xe 471 CSUSP = 0x1a
472 ECHO = 0x8 472 DAXFS_MAGIC = 0x64646178
473 ECHOCTL = 0x200 473 DEBUGFS_MAGIC = 0x64626720
474 ECHOE = 0x10 474 DEVLINK_CMD_ESWITCH_MODE_GET = 0x1d
475 ECHOK = 0x20 475 DEVLINK_CMD_ESWITCH_MODE_SET = 0x1e
476 ECHOKE = 0x800 476 DEVLINK_GENL_MCGRP_CONFIG_NAME = "config"
477 ECHONL = 0x40 477 DEVLINK_GENL_NAME = "devlink"
478 ECHOPRT = 0x400 478 DEVLINK_GENL_VERSION = 0x1
479 ECRYPTFS_SUPER_MAGIC = 0xf15f 479 DEVLINK_SB_THRESHOLD_TO_ALPHA_MAX = 0x14
480 EFD_CLOEXEC = 0x80000 480 DEVPTS_SUPER_MAGIC = 0x1cd1
481 EFD_NONBLOCK = 0x800 481 DMA_BUF_MAGIC = 0x444d4142
482 EFD_SEMAPHORE = 0x1 482 DT_BLK = 0x6
483 EFIVARFS_MAGIC = 0xde5e81e4 483 DT_CHR = 0x2
484 EFS_SUPER_MAGIC = 0x414a53 484 DT_DIR = 0x4
485 ENCODING_DEFAULT = 0x0 485 DT_FIFO = 0x1
486 ENCODING_FM_MARK = 0x3 486 DT_LNK = 0xa
487 ENCODING_FM_SPACE = 0x4 487 DT_REG = 0x8
488 ENCODING_MANCHESTER = 0x5 488 DT_SOCK = 0xc
489 ENCODING_NRZ = 0x1 489 DT_UNKNOWN = 0x0
490 ENCODING_NRZI = 0x2 490 DT_WHT = 0xe
491 EPOLLERR = 0x8 491 ECHO = 0x8
492 EPOLLET = 0x80000000 492 ECHOCTL = 0x200
493 EPOLLEXCLUSIVE = 0x10000000 493 ECHOE = 0x10
494 EPOLLHUP = 0x10 494 ECHOK = 0x20
495 EPOLLIN = 0x1 495 ECHOKE = 0x800
496 EPOLLMSG = 0x400 496 ECHONL = 0x40
497 EPOLLONESHOT = 0x40000000 497 ECHOPRT = 0x400
498 EPOLLOUT = 0x4 498 ECRYPTFS_SUPER_MAGIC = 0xf15f
499 EPOLLPRI = 0x2 499 EFD_CLOEXEC = 0x80000
500 EPOLLRDBAND = 0x80 500 EFD_NONBLOCK = 0x800
501 EPOLLRDHUP = 0x2000 501 EFD_SEMAPHORE = 0x1
502 EPOLLRDNORM = 0x40 502 EFIVARFS_MAGIC = 0xde5e81e4
503 EPOLLWAKEUP = 0x20000000 503 EFS_SUPER_MAGIC = 0x414a53
504 EPOLLWRBAND = 0x200 504 ENCODING_DEFAULT = 0x0
505 EPOLLWRNORM = 0x100 505 ENCODING_FM_MARK = 0x3
506 EPOLL_CLOEXEC = 0x80000 506 ENCODING_FM_SPACE = 0x4
507 EPOLL_CTL_ADD = 0x1 507 ENCODING_MANCHESTER = 0x5
508 EPOLL_CTL_DEL = 0x2 508 ENCODING_NRZ = 0x1
509 EPOLL_CTL_MOD = 0x3 509 ENCODING_NRZI = 0x2
510 ETH_P_1588 = 0x88f7 510 EPOLLERR = 0x8
511 ETH_P_8021AD = 0x88a8 511 EPOLLET = 0x80000000
512 ETH_P_8021AH = 0x88e7 512 EPOLLEXCLUSIVE = 0x10000000
513 ETH_P_8021Q = 0x8100 513 EPOLLHUP = 0x10
514 ETH_P_80221 = 0x8917 514 EPOLLIN = 0x1
515 ETH_P_802_2 = 0x4 515 EPOLLMSG = 0x400
516 ETH_P_802_3 = 0x1 516 EPOLLONESHOT = 0x40000000
517 ETH_P_802_3_MIN = 0x600 517 EPOLLOUT = 0x4
518 ETH_P_802_EX1 = 0x88b5 518 EPOLLPRI = 0x2
519 ETH_P_AARP = 0x80f3 519 EPOLLRDBAND = 0x80
520 ETH_P_AF_IUCV = 0xfbfb 520 EPOLLRDHUP = 0x2000
521 ETH_P_ALL = 0x3 521 EPOLLRDNORM = 0x40
522 ETH_P_AOE = 0x88a2 522 EPOLLWAKEUP = 0x20000000
523 ETH_P_ARCNET = 0x1a 523 EPOLLWRBAND = 0x200
524 ETH_P_ARP = 0x806 524 EPOLLWRNORM = 0x100
525 ETH_P_ATALK = 0x809b 525 EPOLL_CLOEXEC = 0x80000
526 ETH_P_ATMFATE = 0x8884 526 EPOLL_CTL_ADD = 0x1
527 ETH_P_ATMMPOA = 0x884c 527 EPOLL_CTL_DEL = 0x2
528 ETH_P_AX25 = 0x2 528 EPOLL_CTL_MOD = 0x3
529 ETH_P_BATMAN = 0x4305 529 EROFS_SUPER_MAGIC_V1 = 0xe0f5e1e2
530 ETH_P_BPQ = 0x8ff 530 ETH_P_1588 = 0x88f7
531 ETH_P_CAIF = 0xf7 531 ETH_P_8021AD = 0x88a8
532 ETH_P_CAN = 0xc 532 ETH_P_8021AH = 0x88e7
533 ETH_P_CANFD = 0xd 533 ETH_P_8021Q = 0x8100
534 ETH_P_CONTROL = 0x16 534 ETH_P_80221 = 0x8917
535 ETH_P_CUST = 0x6006 535 ETH_P_802_2 = 0x4
536 ETH_P_DDCMP = 0x6 536 ETH_P_802_3 = 0x1
537 ETH_P_DEC = 0x6000 537 ETH_P_802_3_MIN = 0x600
538 ETH_P_DIAG = 0x6005 538 ETH_P_802_EX1 = 0x88b5
539 ETH_P_DNA_DL = 0x6001 539 ETH_P_AARP = 0x80f3
540 ETH_P_DNA_RC = 0x6002 540 ETH_P_AF_IUCV = 0xfbfb
541 ETH_P_DNA_RT = 0x6003 541 ETH_P_ALL = 0x3
542 ETH_P_DSA = 0x1b 542 ETH_P_AOE = 0x88a2
543 ETH_P_DSA_8021Q = 0xdadb 543 ETH_P_ARCNET = 0x1a
544 ETH_P_ECONET = 0x18 544 ETH_P_ARP = 0x806
545 ETH_P_EDSA = 0xdada 545 ETH_P_ATALK = 0x809b
546 ETH_P_ERSPAN = 0x88be 546 ETH_P_ATMFATE = 0x8884
547 ETH_P_ERSPAN2 = 0x22eb 547 ETH_P_ATMMPOA = 0x884c
548 ETH_P_FCOE = 0x8906 548 ETH_P_AX25 = 0x2
549 ETH_P_FIP = 0x8914 549 ETH_P_BATMAN = 0x4305
550 ETH_P_HDLC = 0x19 550 ETH_P_BPQ = 0x8ff
551 ETH_P_HSR = 0x892f 551 ETH_P_CAIF = 0xf7
552 ETH_P_IBOE = 0x8915 552 ETH_P_CAN = 0xc
553 ETH_P_IEEE802154 = 0xf6 553 ETH_P_CANFD = 0xd
554 ETH_P_IEEEPUP = 0xa00 554 ETH_P_CONTROL = 0x16
555 ETH_P_IEEEPUPAT = 0xa01 555 ETH_P_CUST = 0x6006
556 ETH_P_IFE = 0xed3e 556 ETH_P_DDCMP = 0x6
557 ETH_P_IP = 0x800 557 ETH_P_DEC = 0x6000
558 ETH_P_IPV6 = 0x86dd 558 ETH_P_DIAG = 0x6005
559 ETH_P_IPX = 0x8137 559 ETH_P_DNA_DL = 0x6001
560 ETH_P_IRDA = 0x17 560 ETH_P_DNA_RC = 0x6002
561 ETH_P_LAT = 0x6004 561 ETH_P_DNA_RT = 0x6003
562 ETH_P_LINK_CTL = 0x886c 562 ETH_P_DSA = 0x1b
563 ETH_P_LOCALTALK = 0x9 563 ETH_P_DSA_8021Q = 0xdadb
564 ETH_P_LOOP = 0x60 564 ETH_P_ECONET = 0x18
565 ETH_P_LOOPBACK = 0x9000 565 ETH_P_EDSA = 0xdada
566 ETH_P_MACSEC = 0x88e5 566 ETH_P_ERSPAN = 0x88be
567 ETH_P_MAP = 0xf9 567 ETH_P_ERSPAN2 = 0x22eb
568 ETH_P_MOBITEX = 0x15 568 ETH_P_FCOE = 0x8906
569 ETH_P_MPLS_MC = 0x8848 569 ETH_P_FIP = 0x8914
570 ETH_P_MPLS_UC = 0x8847 570 ETH_P_HDLC = 0x19
571 ETH_P_MVRP = 0x88f5 571 ETH_P_HSR = 0x892f
572 ETH_P_NCSI = 0x88f8 572 ETH_P_IBOE = 0x8915
573 ETH_P_NSH = 0x894f 573 ETH_P_IEEE802154 = 0xf6
574 ETH_P_PAE = 0x888e 574 ETH_P_IEEEPUP = 0xa00
575 ETH_P_PAUSE = 0x8808 575 ETH_P_IEEEPUPAT = 0xa01
576 ETH_P_PHONET = 0xf5 576 ETH_P_IFE = 0xed3e
577 ETH_P_PPPTALK = 0x10 577 ETH_P_IP = 0x800
578 ETH_P_PPP_DISC = 0x8863 578 ETH_P_IPV6 = 0x86dd
579 ETH_P_PPP_MP = 0x8 579 ETH_P_IPX = 0x8137
580 ETH_P_PPP_SES = 0x8864 580 ETH_P_IRDA = 0x17
581 ETH_P_PREAUTH = 0x88c7 581 ETH_P_LAT = 0x6004
582 ETH_P_PRP = 0x88fb 582 ETH_P_LINK_CTL = 0x886c
583 ETH_P_PUP = 0x200 583 ETH_P_LLDP = 0x88cc
584 ETH_P_PUPAT = 0x201 584 ETH_P_LOCALTALK = 0x9
585 ETH_P_QINQ1 = 0x9100 585 ETH_P_LOOP = 0x60
586 ETH_P_QINQ2 = 0x9200 586 ETH_P_LOOPBACK = 0x9000
587 ETH_P_QINQ3 = 0x9300 587 ETH_P_MACSEC = 0x88e5
588 ETH_P_RARP = 0x8035 588 ETH_P_MAP = 0xf9
589 ETH_P_SCA = 0x6007 589 ETH_P_MOBITEX = 0x15
590 ETH_P_SLOW = 0x8809 590 ETH_P_MPLS_MC = 0x8848
591 ETH_P_SNAP = 0x5 591 ETH_P_MPLS_UC = 0x8847
592 ETH_P_TDLS = 0x890d 592 ETH_P_MVRP = 0x88f5
593 ETH_P_TEB = 0x6558 593 ETH_P_NCSI = 0x88f8
594 ETH_P_TIPC = 0x88ca 594 ETH_P_NSH = 0x894f
595 ETH_P_TRAILER = 0x1c 595 ETH_P_PAE = 0x888e
596 ETH_P_TR_802_2 = 0x11 596 ETH_P_PAUSE = 0x8808
597 ETH_P_TSN = 0x22f0 597 ETH_P_PHONET = 0xf5
598 ETH_P_WAN_PPP = 0x7 598 ETH_P_PPPTALK = 0x10
599 ETH_P_WCCP = 0x883e 599 ETH_P_PPP_DISC = 0x8863
600 ETH_P_X25 = 0x805 600 ETH_P_PPP_MP = 0x8
601 ETH_P_XDSA = 0xf8 601 ETH_P_PPP_SES = 0x8864
602 EXABYTE_ENABLE_NEST = 0xf0 602 ETH_P_PREAUTH = 0x88c7
603 EXT2_SUPER_MAGIC = 0xef53 603 ETH_P_PRP = 0x88fb
604 EXT3_SUPER_MAGIC = 0xef53 604 ETH_P_PUP = 0x200
605 EXT4_SUPER_MAGIC = 0xef53 605 ETH_P_PUPAT = 0x201
606 EXTA = 0xe 606 ETH_P_QINQ1 = 0x9100
607 EXTB = 0xf 607 ETH_P_QINQ2 = 0x9200
608 EXTPROC = 0x10000 608 ETH_P_QINQ3 = 0x9300
609 F2FS_SUPER_MAGIC = 0xf2f52010 609 ETH_P_RARP = 0x8035
610 FALLOC_FL_COLLAPSE_RANGE = 0x8 610 ETH_P_SCA = 0x6007
611 FALLOC_FL_INSERT_RANGE = 0x20 611 ETH_P_SLOW = 0x8809
612 FALLOC_FL_KEEP_SIZE = 0x1 612 ETH_P_SNAP = 0x5
613 FALLOC_FL_NO_HIDE_STALE = 0x4 613 ETH_P_TDLS = 0x890d
614 FALLOC_FL_PUNCH_HOLE = 0x2 614 ETH_P_TEB = 0x6558
615 FALLOC_FL_UNSHARE_RANGE = 0x40 615 ETH_P_TIPC = 0x88ca
616 FALLOC_FL_ZERO_RANGE = 0x10 616 ETH_P_TRAILER = 0x1c
617 FANOTIFY_METADATA_VERSION = 0x3 617 ETH_P_TR_802_2 = 0x11
618 FAN_ACCESS = 0x1 618 ETH_P_TSN = 0x22f0
619 FAN_ACCESS_PERM = 0x20000 619 ETH_P_WAN_PPP = 0x7
620 FAN_ALLOW = 0x1 620 ETH_P_WCCP = 0x883e
621 FAN_ALL_CLASS_BITS = 0xc 621 ETH_P_X25 = 0x805
622 FAN_ALL_EVENTS = 0x3b 622 ETH_P_XDSA = 0xf8
623 FAN_ALL_INIT_FLAGS = 0x3f 623 EXABYTE_ENABLE_NEST = 0xf0
624 FAN_ALL_MARK_FLAGS = 0xff 624 EXT2_SUPER_MAGIC = 0xef53
625 FAN_ALL_OUTGOING_EVENTS = 0x3403b 625 EXT3_SUPER_MAGIC = 0xef53
626 FAN_ALL_PERM_EVENTS = 0x30000 626 EXT4_SUPER_MAGIC = 0xef53
627 FAN_ATTRIB = 0x4 627 EXTA = 0xe
628 FAN_AUDIT = 0x10 628 EXTB = 0xf
629 FAN_CLASS_CONTENT = 0x4 629 EXTPROC = 0x10000
630 FAN_CLASS_NOTIF = 0x0 630 F2FS_SUPER_MAGIC = 0xf2f52010
631 FAN_CLASS_PRE_CONTENT = 0x8 631 FALLOC_FL_COLLAPSE_RANGE = 0x8
632 FAN_CLOEXEC = 0x1 632 FALLOC_FL_INSERT_RANGE = 0x20
633 FAN_CLOSE = 0x18 633 FALLOC_FL_KEEP_SIZE = 0x1
634 FAN_CLOSE_NOWRITE = 0x10 634 FALLOC_FL_NO_HIDE_STALE = 0x4
635 FAN_CLOSE_WRITE = 0x8 635 FALLOC_FL_PUNCH_HOLE = 0x2
636 FAN_CREATE = 0x100 636 FALLOC_FL_UNSHARE_RANGE = 0x40
637 FAN_DELETE = 0x200 637 FALLOC_FL_ZERO_RANGE = 0x10
638 FAN_DELETE_SELF = 0x400 638 FANOTIFY_METADATA_VERSION = 0x3
639 FAN_DENY = 0x2 639 FAN_ACCESS = 0x1
640 FAN_ENABLE_AUDIT = 0x40 640 FAN_ACCESS_PERM = 0x20000
641 FAN_EVENT_INFO_TYPE_FID = 0x1 641 FAN_ALLOW = 0x1
642 FAN_EVENT_METADATA_LEN = 0x18 642 FAN_ALL_CLASS_BITS = 0xc
643 FAN_EVENT_ON_CHILD = 0x8000000 643 FAN_ALL_EVENTS = 0x3b
644 FAN_MARK_ADD = 0x1 644 FAN_ALL_INIT_FLAGS = 0x3f
645 FAN_MARK_DONT_FOLLOW = 0x4 645 FAN_ALL_MARK_FLAGS = 0xff
646 FAN_MARK_FILESYSTEM = 0x100 646 FAN_ALL_OUTGOING_EVENTS = 0x3403b
647 FAN_MARK_FLUSH = 0x80 647 FAN_ALL_PERM_EVENTS = 0x30000
648 FAN_MARK_IGNORED_MASK = 0x20 648 FAN_ATTRIB = 0x4
649 FAN_MARK_IGNORED_SURV_MODIFY = 0x40 649 FAN_AUDIT = 0x10
650 FAN_MARK_INODE = 0x0 650 FAN_CLASS_CONTENT = 0x4
651 FAN_MARK_MOUNT = 0x10 651 FAN_CLASS_NOTIF = 0x0
652 FAN_MARK_ONLYDIR = 0x8 652 FAN_CLASS_PRE_CONTENT = 0x8
653 FAN_MARK_REMOVE = 0x2 653 FAN_CLOEXEC = 0x1
654 FAN_MODIFY = 0x2 654 FAN_CLOSE = 0x18
655 FAN_MOVE = 0xc0 655 FAN_CLOSE_NOWRITE = 0x10
656 FAN_MOVED_FROM = 0x40 656 FAN_CLOSE_WRITE = 0x8
657 FAN_MOVED_TO = 0x80 657 FAN_CREATE = 0x100
658 FAN_MOVE_SELF = 0x800 658 FAN_DELETE = 0x200
659 FAN_NOFD = -0x1 659 FAN_DELETE_SELF = 0x400
660 FAN_NONBLOCK = 0x2 660 FAN_DENY = 0x2
661 FAN_ONDIR = 0x40000000 661 FAN_ENABLE_AUDIT = 0x40
662 FAN_OPEN = 0x20 662 FAN_EVENT_INFO_TYPE_FID = 0x1
663 FAN_OPEN_EXEC = 0x1000 663 FAN_EVENT_METADATA_LEN = 0x18
664 FAN_OPEN_EXEC_PERM = 0x40000 664 FAN_EVENT_ON_CHILD = 0x8000000
665 FAN_OPEN_PERM = 0x10000 665 FAN_MARK_ADD = 0x1
666 FAN_Q_OVERFLOW = 0x4000 666 FAN_MARK_DONT_FOLLOW = 0x4
667 FAN_REPORT_FID = 0x200 667 FAN_MARK_FILESYSTEM = 0x100
668 FAN_REPORT_TID = 0x100 668 FAN_MARK_FLUSH = 0x80
669 FAN_UNLIMITED_MARKS = 0x20 669 FAN_MARK_IGNORED_MASK = 0x20
670 FAN_UNLIMITED_QUEUE = 0x10 670 FAN_MARK_IGNORED_SURV_MODIFY = 0x40
671 FD_CLOEXEC = 0x1 671 FAN_MARK_INODE = 0x0
672 FD_SETSIZE = 0x400 672 FAN_MARK_MOUNT = 0x10
673 FF0 = 0x0 673 FAN_MARK_ONLYDIR = 0x8
674 FF1 = 0x8000 674 FAN_MARK_REMOVE = 0x2
675 FFDLY = 0x8000 675 FAN_MODIFY = 0x2
676 FLUSHO = 0x1000 676 FAN_MOVE = 0xc0
677 FP_XSTATE_MAGIC2 = 0x46505845 677 FAN_MOVED_FROM = 0x40
678 FS_ENCRYPTION_MODE_ADIANTUM = 0x9 678 FAN_MOVED_TO = 0x80
679 FS_ENCRYPTION_MODE_AES_128_CBC = 0x5 679 FAN_MOVE_SELF = 0x800
680 FS_ENCRYPTION_MODE_AES_128_CTS = 0x6 680 FAN_NOFD = -0x1
681 FS_ENCRYPTION_MODE_AES_256_CBC = 0x3 681 FAN_NONBLOCK = 0x2
682 FS_ENCRYPTION_MODE_AES_256_CTS = 0x4 682 FAN_ONDIR = 0x40000000
683 FS_ENCRYPTION_MODE_AES_256_GCM = 0x2 683 FAN_OPEN = 0x20
684 FS_ENCRYPTION_MODE_AES_256_XTS = 0x1 684 FAN_OPEN_EXEC = 0x1000
685 FS_ENCRYPTION_MODE_INVALID = 0x0 685 FAN_OPEN_EXEC_PERM = 0x40000
686 FS_ENCRYPTION_MODE_SPECK128_256_CTS = 0x8 686 FAN_OPEN_PERM = 0x10000
687 FS_ENCRYPTION_MODE_SPECK128_256_XTS = 0x7 687 FAN_Q_OVERFLOW = 0x4000
688 FS_IOC_GET_ENCRYPTION_POLICY = 0x400c6615 688 FAN_REPORT_FID = 0x200
689 FS_IOC_GET_ENCRYPTION_PWSALT = 0x40106614 689 FAN_REPORT_TID = 0x100
690 FS_IOC_SET_ENCRYPTION_POLICY = 0x800c6613 690 FAN_UNLIMITED_MARKS = 0x20
691 FS_KEY_DESCRIPTOR_SIZE = 0x8 691 FAN_UNLIMITED_QUEUE = 0x10
692 FS_KEY_DESC_PREFIX = "fscrypt:" 692 FD_CLOEXEC = 0x1
693 FS_KEY_DESC_PREFIX_SIZE = 0x8 693 FD_SETSIZE = 0x400
694 FS_MAX_KEY_SIZE = 0x40 694 FF0 = 0x0
695 FS_POLICY_FLAGS_PAD_16 = 0x2 695 FF1 = 0x8000
696 FS_POLICY_FLAGS_PAD_32 = 0x3 696 FFDLY = 0x8000
697 FS_POLICY_FLAGS_PAD_4 = 0x0 697 FLUSHO = 0x1000
698 FS_POLICY_FLAGS_PAD_8 = 0x1 698 FP_XSTATE_MAGIC2 = 0x46505845
699 FS_POLICY_FLAGS_PAD_MASK = 0x3 699 FSCRYPT_KEY_DESCRIPTOR_SIZE = 0x8
700 FS_POLICY_FLAGS_VALID = 0x7 700 FSCRYPT_KEY_DESC_PREFIX = "fscrypt:"
701 FUTEXFS_SUPER_MAGIC = 0xbad1dea 701 FSCRYPT_KEY_DESC_PREFIX_SIZE = 0x8
702 F_ADD_SEALS = 0x409 702 FSCRYPT_KEY_IDENTIFIER_SIZE = 0x10
703 F_DUPFD = 0x0 703 FSCRYPT_KEY_REMOVAL_STATUS_FLAG_FILES_BUSY = 0x1
704 F_DUPFD_CLOEXEC = 0x406 704 FSCRYPT_KEY_REMOVAL_STATUS_FLAG_OTHER_USERS = 0x2
705 F_EXLCK = 0x4 705 FSCRYPT_KEY_SPEC_TYPE_DESCRIPTOR = 0x1
706 F_GETFD = 0x1 706 FSCRYPT_KEY_SPEC_TYPE_IDENTIFIER = 0x2
707 F_GETFL = 0x3 707 FSCRYPT_KEY_STATUS_ABSENT = 0x1
708 F_GETLEASE = 0x401 708 FSCRYPT_KEY_STATUS_FLAG_ADDED_BY_SELF = 0x1
709 F_GETLK = 0x5 709 FSCRYPT_KEY_STATUS_INCOMPLETELY_REMOVED = 0x3
710 F_GETLK64 = 0x5 710 FSCRYPT_KEY_STATUS_PRESENT = 0x2
711 F_GETOWN = 0x9 711 FSCRYPT_MAX_KEY_SIZE = 0x40
712 F_GETOWN_EX = 0x10 712 FSCRYPT_MODE_ADIANTUM = 0x9
713 F_GETPIPE_SZ = 0x408 713 FSCRYPT_MODE_AES_128_CBC = 0x5
714 F_GETSIG = 0xb 714 FSCRYPT_MODE_AES_128_CTS = 0x6
715 F_GET_FILE_RW_HINT = 0x40d 715 FSCRYPT_MODE_AES_256_CTS = 0x4
716 F_GET_RW_HINT = 0x40b 716 FSCRYPT_MODE_AES_256_XTS = 0x1
717 F_GET_SEALS = 0x40a 717 FSCRYPT_POLICY_FLAGS_PAD_16 = 0x2
718 F_LOCK = 0x1 718 FSCRYPT_POLICY_FLAGS_PAD_32 = 0x3
719 F_NOTIFY = 0x402 719 FSCRYPT_POLICY_FLAGS_PAD_4 = 0x0
720 F_OFD_GETLK = 0x24 720 FSCRYPT_POLICY_FLAGS_PAD_8 = 0x1
721 F_OFD_SETLK = 0x25 721 FSCRYPT_POLICY_FLAGS_PAD_MASK = 0x3
722 F_OFD_SETLKW = 0x26 722 FSCRYPT_POLICY_FLAGS_VALID = 0xf
723 F_OK = 0x0 723 FSCRYPT_POLICY_FLAG_DIRECT_KEY = 0x4
724 F_RDLCK = 0x0 724 FSCRYPT_POLICY_FLAG_IV_INO_LBLK_64 = 0x8
725 F_SEAL_FUTURE_WRITE = 0x10 725 FSCRYPT_POLICY_V1 = 0x0
726 F_SEAL_GROW = 0x4 726 FSCRYPT_POLICY_V2 = 0x2
727 F_SEAL_SEAL = 0x1 727 FS_ENCRYPTION_MODE_ADIANTUM = 0x9
728 F_SEAL_SHRINK = 0x2 728 FS_ENCRYPTION_MODE_AES_128_CBC = 0x5
729 F_SEAL_WRITE = 0x8 729 FS_ENCRYPTION_MODE_AES_128_CTS = 0x6
730 F_SETFD = 0x2 730 FS_ENCRYPTION_MODE_AES_256_CBC = 0x3
731 F_SETFL = 0x4 731 FS_ENCRYPTION_MODE_AES_256_CTS = 0x4
732 F_SETLEASE = 0x400 732 FS_ENCRYPTION_MODE_AES_256_GCM = 0x2
733 F_SETLK = 0x6 733 FS_ENCRYPTION_MODE_AES_256_XTS = 0x1
734 F_SETLK64 = 0x6 734 FS_ENCRYPTION_MODE_INVALID = 0x0
735 F_SETLKW = 0x7 735 FS_ENCRYPTION_MODE_SPECK128_256_CTS = 0x8
736 F_SETLKW64 = 0x7 736 FS_ENCRYPTION_MODE_SPECK128_256_XTS = 0x7
737 F_SETOWN = 0x8 737 FS_IOC_ADD_ENCRYPTION_KEY = 0xc0506617
738 F_SETOWN_EX = 0xf 738 FS_IOC_GET_ENCRYPTION_KEY_STATUS = 0xc080661a
739 F_SETPIPE_SZ = 0x407 739 FS_IOC_GET_ENCRYPTION_POLICY = 0x400c6615
740 F_SETSIG = 0xa 740 FS_IOC_GET_ENCRYPTION_POLICY_EX = 0xc0096616
741 F_SET_FILE_RW_HINT = 0x40e 741 FS_IOC_GET_ENCRYPTION_PWSALT = 0x40106614
742 F_SET_RW_HINT = 0x40c 742 FS_IOC_REMOVE_ENCRYPTION_KEY = 0xc0406618
743 F_SHLCK = 0x8 743 FS_IOC_REMOVE_ENCRYPTION_KEY_ALL_USERS = 0xc0406619
744 F_TEST = 0x3 744 FS_IOC_SET_ENCRYPTION_POLICY = 0x800c6613
745 F_TLOCK = 0x2 745 FS_KEY_DESCRIPTOR_SIZE = 0x8
746 F_ULOCK = 0x0 746 FS_KEY_DESC_PREFIX = "fscrypt:"
747 F_UNLCK = 0x2 747 FS_KEY_DESC_PREFIX_SIZE = 0x8
748 F_WRLCK = 0x1 748 FS_MAX_KEY_SIZE = 0x40
749 GENL_ADMIN_PERM = 0x1 749 FS_POLICY_FLAGS_PAD_16 = 0x2
750 GENL_CMD_CAP_DO = 0x2 750 FS_POLICY_FLAGS_PAD_32 = 0x3
751 GENL_CMD_CAP_DUMP = 0x4 751 FS_POLICY_FLAGS_PAD_4 = 0x0
752 GENL_CMD_CAP_HASPOL = 0x8 752 FS_POLICY_FLAGS_PAD_8 = 0x1
753 GENL_HDRLEN = 0x4 753 FS_POLICY_FLAGS_PAD_MASK = 0x3
754 GENL_ID_CTRL = 0x10 754 FS_POLICY_FLAGS_VALID = 0xf
755 GENL_ID_PMCRAID = 0x12 755 FUTEXFS_SUPER_MAGIC = 0xbad1dea
756 GENL_ID_VFS_DQUOT = 0x11 756 F_ADD_SEALS = 0x409
757 GENL_MAX_ID = 0x3ff 757 F_DUPFD = 0x0
758 GENL_MIN_ID = 0x10 758 F_DUPFD_CLOEXEC = 0x406
759 GENL_NAMSIZ = 0x10 759 F_EXLCK = 0x4
760 GENL_START_ALLOC = 0x13 760 F_GETFD = 0x1
761 GENL_UNS_ADMIN_PERM = 0x10 761 F_GETFL = 0x3
762 GRND_NONBLOCK = 0x1 762 F_GETLEASE = 0x401
763 GRND_RANDOM = 0x2 763 F_GETLK = 0x5
764 HDIO_DRIVE_CMD = 0x31f 764 F_GETLK64 = 0x5
765 HDIO_DRIVE_CMD_AEB = 0x31e 765 F_GETOWN = 0x9
766 HDIO_DRIVE_CMD_HDR_SIZE = 0x4 766 F_GETOWN_EX = 0x10
767 HDIO_DRIVE_HOB_HDR_SIZE = 0x8 767 F_GETPIPE_SZ = 0x408
768 HDIO_DRIVE_RESET = 0x31c 768 F_GETSIG = 0xb
769 HDIO_DRIVE_TASK = 0x31e 769 F_GET_FILE_RW_HINT = 0x40d
770 HDIO_DRIVE_TASKFILE = 0x31d 770 F_GET_RW_HINT = 0x40b
771 HDIO_DRIVE_TASK_HDR_SIZE = 0x8 771 F_GET_SEALS = 0x40a
772 HDIO_GETGEO = 0x301 772 F_LOCK = 0x1
773 HDIO_GET_32BIT = 0x309 773 F_NOTIFY = 0x402
774 HDIO_GET_ACOUSTIC = 0x30f 774 F_OFD_GETLK = 0x24
775 HDIO_GET_ADDRESS = 0x310 775 F_OFD_SETLK = 0x25
776 HDIO_GET_BUSSTATE = 0x31a 776 F_OFD_SETLKW = 0x26
777 HDIO_GET_DMA = 0x30b 777 F_OK = 0x0
778 HDIO_GET_IDENTITY = 0x30d 778 F_RDLCK = 0x0
779 HDIO_GET_KEEPSETTINGS = 0x308 779 F_SEAL_FUTURE_WRITE = 0x10
780 HDIO_GET_MULTCOUNT = 0x304 780 F_SEAL_GROW = 0x4
781 HDIO_GET_NICE = 0x30c 781 F_SEAL_SEAL = 0x1
782 HDIO_GET_NOWERR = 0x30a 782 F_SEAL_SHRINK = 0x2
783 HDIO_GET_QDMA = 0x305 783 F_SEAL_WRITE = 0x8
784 HDIO_GET_UNMASKINTR = 0x302 784 F_SETFD = 0x2
785 HDIO_GET_WCACHE = 0x30e 785 F_SETFL = 0x4
786 HDIO_OBSOLETE_IDENTITY = 0x307 786 F_SETLEASE = 0x400
787 HDIO_SCAN_HWIF = 0x328 787 F_SETLK = 0x6
788 HDIO_SET_32BIT = 0x324 788 F_SETLK64 = 0x6
789 HDIO_SET_ACOUSTIC = 0x32c 789 F_SETLKW = 0x7
790 HDIO_SET_ADDRESS = 0x32f 790 F_SETLKW64 = 0x7
791 HDIO_SET_BUSSTATE = 0x32d 791 F_SETOWN = 0x8
792 HDIO_SET_DMA = 0x326 792 F_SETOWN_EX = 0xf
793 HDIO_SET_KEEPSETTINGS = 0x323 793 F_SETPIPE_SZ = 0x407
794 HDIO_SET_MULTCOUNT = 0x321 794 F_SETSIG = 0xa
795 HDIO_SET_NICE = 0x329 795 F_SET_FILE_RW_HINT = 0x40e
796 HDIO_SET_NOWERR = 0x325 796 F_SET_RW_HINT = 0x40c
797 HDIO_SET_PIO_MODE = 0x327 797 F_SHLCK = 0x8
798 HDIO_SET_QDMA = 0x32e 798 F_TEST = 0x3
799 HDIO_SET_UNMASKINTR = 0x322 799 F_TLOCK = 0x2
800 HDIO_SET_WCACHE = 0x32b 800 F_ULOCK = 0x0
801 HDIO_SET_XFER = 0x306 801 F_UNLCK = 0x2
802 HDIO_TRISTATE_HWIF = 0x31b 802 F_WRLCK = 0x1
803 HDIO_UNREGISTER_HWIF = 0x32a 803 GENL_ADMIN_PERM = 0x1
804 HOSTFS_SUPER_MAGIC = 0xc0ffee 804 GENL_CMD_CAP_DO = 0x2
805 HPFS_SUPER_MAGIC = 0xf995e849 805 GENL_CMD_CAP_DUMP = 0x4
806 HUGETLBFS_MAGIC = 0x958458f6 806 GENL_CMD_CAP_HASPOL = 0x8
807 HUPCL = 0x400 807 GENL_HDRLEN = 0x4
808 IBSHIFT = 0x10 808 GENL_ID_CTRL = 0x10
809 ICANON = 0x2 809 GENL_ID_PMCRAID = 0x12
810 ICMPV6_FILTER = 0x1 810 GENL_ID_VFS_DQUOT = 0x11
811 ICRNL = 0x100 811 GENL_MAX_ID = 0x3ff
812 IEXTEN = 0x8000 812 GENL_MIN_ID = 0x10
813 IFA_F_DADFAILED = 0x8 813 GENL_NAMSIZ = 0x10
814 IFA_F_DEPRECATED = 0x20 814 GENL_START_ALLOC = 0x13
815 IFA_F_HOMEADDRESS = 0x10 815 GENL_UNS_ADMIN_PERM = 0x10
816 IFA_F_MANAGETEMPADDR = 0x100 816 GRND_NONBLOCK = 0x1
817 IFA_F_MCAUTOJOIN = 0x400 817 GRND_RANDOM = 0x2
818 IFA_F_NODAD = 0x2 818 HDIO_DRIVE_CMD = 0x31f
819 IFA_F_NOPREFIXROUTE = 0x200 819 HDIO_DRIVE_CMD_AEB = 0x31e
820 IFA_F_OPTIMISTIC = 0x4 820 HDIO_DRIVE_CMD_HDR_SIZE = 0x4
821 IFA_F_PERMANENT = 0x80 821 HDIO_DRIVE_HOB_HDR_SIZE = 0x8
822 IFA_F_SECONDARY = 0x1 822 HDIO_DRIVE_RESET = 0x31c
823 IFA_F_STABLE_PRIVACY = 0x800 823 HDIO_DRIVE_TASK = 0x31e
824 IFA_F_TEMPORARY = 0x1 824 HDIO_DRIVE_TASKFILE = 0x31d
825 IFA_F_TENTATIVE = 0x40 825 HDIO_DRIVE_TASK_HDR_SIZE = 0x8
826 IFA_MAX = 0xa 826 HDIO_GETGEO = 0x301
827 IFF_ALLMULTI = 0x200 827 HDIO_GET_32BIT = 0x309
828 IFF_ATTACH_QUEUE = 0x200 828 HDIO_GET_ACOUSTIC = 0x30f
829 IFF_AUTOMEDIA = 0x4000 829 HDIO_GET_ADDRESS = 0x310
830 IFF_BROADCAST = 0x2 830 HDIO_GET_BUSSTATE = 0x31a
831 IFF_DEBUG = 0x4 831 HDIO_GET_DMA = 0x30b
832 IFF_DETACH_QUEUE = 0x400 832 HDIO_GET_IDENTITY = 0x30d
833 IFF_DORMANT = 0x20000 833 HDIO_GET_KEEPSETTINGS = 0x308
834 IFF_DYNAMIC = 0x8000 834 HDIO_GET_MULTCOUNT = 0x304
835 IFF_ECHO = 0x40000 835 HDIO_GET_NICE = 0x30c
836 IFF_LOOPBACK = 0x8 836 HDIO_GET_NOWERR = 0x30a
837 IFF_LOWER_UP = 0x10000 837 HDIO_GET_QDMA = 0x305
838 IFF_MASTER = 0x400 838 HDIO_GET_UNMASKINTR = 0x302
839 IFF_MULTICAST = 0x1000 839 HDIO_GET_WCACHE = 0x30e
840 IFF_MULTI_QUEUE = 0x100 840 HDIO_OBSOLETE_IDENTITY = 0x307
841 IFF_NAPI = 0x10 841 HDIO_SCAN_HWIF = 0x328
842 IFF_NAPI_FRAGS = 0x20 842 HDIO_SET_32BIT = 0x324
843 IFF_NOARP = 0x80 843 HDIO_SET_ACOUSTIC = 0x32c
844 IFF_NOFILTER = 0x1000 844 HDIO_SET_ADDRESS = 0x32f
845 IFF_NOTRAILERS = 0x20 845 HDIO_SET_BUSSTATE = 0x32d
846 IFF_NO_PI = 0x1000 846 HDIO_SET_DMA = 0x326
847 IFF_ONE_QUEUE = 0x2000 847 HDIO_SET_KEEPSETTINGS = 0x323
848 IFF_PERSIST = 0x800 848 HDIO_SET_MULTCOUNT = 0x321
849 IFF_POINTOPOINT = 0x10 849 HDIO_SET_NICE = 0x329
850 IFF_PORTSEL = 0x2000 850 HDIO_SET_NOWERR = 0x325
851 IFF_PROMISC = 0x100 851 HDIO_SET_PIO_MODE = 0x327
852 IFF_RUNNING = 0x40 852 HDIO_SET_QDMA = 0x32e
853 IFF_SLAVE = 0x800 853 HDIO_SET_UNMASKINTR = 0x322
854 IFF_TAP = 0x2 854 HDIO_SET_WCACHE = 0x32b
855 IFF_TUN = 0x1 855 HDIO_SET_XFER = 0x306
856 IFF_TUN_EXCL = 0x8000 856 HDIO_TRISTATE_HWIF = 0x31b
857 IFF_UP = 0x1 857 HDIO_UNREGISTER_HWIF = 0x32a
858 IFF_VNET_HDR = 0x4000 858 HOSTFS_SUPER_MAGIC = 0xc0ffee
859 IFF_VOLATILE = 0x70c5a 859 HPFS_SUPER_MAGIC = 0xf995e849
860 IFNAMSIZ = 0x10 860 HUGETLBFS_MAGIC = 0x958458f6
861 IGNBRK = 0x1 861 HUPCL = 0x400
862 IGNCR = 0x80 862 IBSHIFT = 0x10
863 IGNPAR = 0x4 863 ICANON = 0x2
864 IMAXBEL = 0x2000 864 ICMPV6_FILTER = 0x1
865 INLCR = 0x40 865 ICRNL = 0x100
866 INPCK = 0x10 866 IEXTEN = 0x8000
867 IN_ACCESS = 0x1 867 IFA_F_DADFAILED = 0x8
868 IN_ALL_EVENTS = 0xfff 868 IFA_F_DEPRECATED = 0x20
869 IN_ATTRIB = 0x4 869 IFA_F_HOMEADDRESS = 0x10
870 IN_CLASSA_HOST = 0xffffff 870 IFA_F_MANAGETEMPADDR = 0x100
871 IN_CLASSA_MAX = 0x80 871 IFA_F_MCAUTOJOIN = 0x400
872 IN_CLASSA_NET = 0xff000000 872 IFA_F_NODAD = 0x2
873 IN_CLASSA_NSHIFT = 0x18 873 IFA_F_NOPREFIXROUTE = 0x200
874 IN_CLASSB_HOST = 0xffff 874 IFA_F_OPTIMISTIC = 0x4
875 IN_CLASSB_MAX = 0x10000 875 IFA_F_PERMANENT = 0x80
876 IN_CLASSB_NET = 0xffff0000 876 IFA_F_SECONDARY = 0x1
877 IN_CLASSB_NSHIFT = 0x10 877 IFA_F_STABLE_PRIVACY = 0x800
878 IN_CLASSC_HOST = 0xff 878 IFA_F_TEMPORARY = 0x1
879 IN_CLASSC_NET = 0xffffff00 879 IFA_F_TENTATIVE = 0x40
880 IN_CLASSC_NSHIFT = 0x8 880 IFA_MAX = 0xa
881 IN_CLOEXEC = 0x80000 881 IFF_ALLMULTI = 0x200
882 IN_CLOSE = 0x18 882 IFF_ATTACH_QUEUE = 0x200
883 IN_CLOSE_NOWRITE = 0x10 883 IFF_AUTOMEDIA = 0x4000
884 IN_CLOSE_WRITE = 0x8 884 IFF_BROADCAST = 0x2
885 IN_CREATE = 0x100 885 IFF_DEBUG = 0x4
886 IN_DELETE = 0x200 886 IFF_DETACH_QUEUE = 0x400
887 IN_DELETE_SELF = 0x400 887 IFF_DORMANT = 0x20000
888 IN_DONT_FOLLOW = 0x2000000 888 IFF_DYNAMIC = 0x8000
889 IN_EXCL_UNLINK = 0x4000000 889 IFF_ECHO = 0x40000
890 IN_IGNORED = 0x8000 890 IFF_LOOPBACK = 0x8
891 IN_ISDIR = 0x40000000 891 IFF_LOWER_UP = 0x10000
892 IN_LOOPBACKNET = 0x7f 892 IFF_MASTER = 0x400
893 IN_MASK_ADD = 0x20000000 893 IFF_MULTICAST = 0x1000
894 IN_MASK_CREATE = 0x10000000 894 IFF_MULTI_QUEUE = 0x100
895 IN_MODIFY = 0x2 895 IFF_NAPI = 0x10
896 IN_MOVE = 0xc0 896 IFF_NAPI_FRAGS = 0x20
897 IN_MOVED_FROM = 0x40 897 IFF_NOARP = 0x80
898 IN_MOVED_TO = 0x80 898 IFF_NOFILTER = 0x1000
899 IN_MOVE_SELF = 0x800 899 IFF_NOTRAILERS = 0x20
900 IN_NONBLOCK = 0x800 900 IFF_NO_PI = 0x1000
901 IN_ONESHOT = 0x80000000 901 IFF_ONE_QUEUE = 0x2000
902 IN_ONLYDIR = 0x1000000 902 IFF_PERSIST = 0x800
903 IN_OPEN = 0x20 903 IFF_POINTOPOINT = 0x10
904 IN_Q_OVERFLOW = 0x4000 904 IFF_PORTSEL = 0x2000
905 IN_UNMOUNT = 0x2000 905 IFF_PROMISC = 0x100
906 IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x7b9 906 IFF_RUNNING = 0x40
907 IPPROTO_AH = 0x33 907 IFF_SLAVE = 0x800
908 IPPROTO_BEETPH = 0x5e 908 IFF_TAP = 0x2
909 IPPROTO_COMP = 0x6c 909 IFF_TUN = 0x1
910 IPPROTO_DCCP = 0x21 910 IFF_TUN_EXCL = 0x8000
911 IPPROTO_DSTOPTS = 0x3c 911 IFF_UP = 0x1
912 IPPROTO_EGP = 0x8 912 IFF_VNET_HDR = 0x4000
913 IPPROTO_ENCAP = 0x62 913 IFF_VOLATILE = 0x70c5a
914 IPPROTO_ESP = 0x32 914 IFNAMSIZ = 0x10
915 IPPROTO_FRAGMENT = 0x2c 915 IGNBRK = 0x1
916 IPPROTO_GRE = 0x2f 916 IGNCR = 0x80
917 IPPROTO_HOPOPTS = 0x0 917 IGNPAR = 0x4
918 IPPROTO_ICMP = 0x1 918 IMAXBEL = 0x2000
919 IPPROTO_ICMPV6 = 0x3a 919 INLCR = 0x40
920 IPPROTO_IDP = 0x16 920 INPCK = 0x10
921 IPPROTO_IGMP = 0x2 921 IN_ACCESS = 0x1
922 IPPROTO_IP = 0x0 922 IN_ALL_EVENTS = 0xfff
923 IPPROTO_IPIP = 0x4 923 IN_ATTRIB = 0x4
924 IPPROTO_IPV6 = 0x29 924 IN_CLASSA_HOST = 0xffffff
925 IPPROTO_MH = 0x87 925 IN_CLASSA_MAX = 0x80
926 IPPROTO_MPLS = 0x89 926 IN_CLASSA_NET = 0xff000000
927 IPPROTO_MTP = 0x5c 927 IN_CLASSA_NSHIFT = 0x18
928 IPPROTO_NONE = 0x3b 928 IN_CLASSB_HOST = 0xffff
929 IPPROTO_PIM = 0x67 929 IN_CLASSB_MAX = 0x10000
930 IPPROTO_PUP = 0xc 930 IN_CLASSB_NET = 0xffff0000
931 IPPROTO_RAW = 0xff 931 IN_CLASSB_NSHIFT = 0x10
932 IPPROTO_ROUTING = 0x2b 932 IN_CLASSC_HOST = 0xff
933 IPPROTO_RSVP = 0x2e 933 IN_CLASSC_NET = 0xffffff00
934 IPPROTO_SCTP = 0x84 934 IN_CLASSC_NSHIFT = 0x8
935 IPPROTO_TCP = 0x6 935 IN_CLOEXEC = 0x80000
936 IPPROTO_TP = 0x1d 936 IN_CLOSE = 0x18
937 IPPROTO_UDP = 0x11 937 IN_CLOSE_NOWRITE = 0x10
938 IPPROTO_UDPLITE = 0x88 938 IN_CLOSE_WRITE = 0x8
939 IPV6_2292DSTOPTS = 0x4 939 IN_CREATE = 0x100
940 IPV6_2292HOPLIMIT = 0x8 940 IN_DELETE = 0x200
941 IPV6_2292HOPOPTS = 0x3 941 IN_DELETE_SELF = 0x400
942 IPV6_2292PKTINFO = 0x2 942 IN_DONT_FOLLOW = 0x2000000
943 IPV6_2292PKTOPTIONS = 0x6 943 IN_EXCL_UNLINK = 0x4000000
944 IPV6_2292RTHDR = 0x5 944 IN_IGNORED = 0x8000
945 IPV6_ADDRFORM = 0x1 945 IN_ISDIR = 0x40000000
946 IPV6_ADDR_PREFERENCES = 0x48 946 IN_LOOPBACKNET = 0x7f
947 IPV6_ADD_MEMBERSHIP = 0x14 947 IN_MASK_ADD = 0x20000000
948 IPV6_AUTHHDR = 0xa 948 IN_MASK_CREATE = 0x10000000
949 IPV6_AUTOFLOWLABEL = 0x46 949 IN_MODIFY = 0x2
950 IPV6_CHECKSUM = 0x7 950 IN_MOVE = 0xc0
951 IPV6_DONTFRAG = 0x3e 951 IN_MOVED_FROM = 0x40
952 IPV6_DROP_MEMBERSHIP = 0x15 952 IN_MOVED_TO = 0x80
953 IPV6_DSTOPTS = 0x3b 953 IN_MOVE_SELF = 0x800
954 IPV6_FREEBIND = 0x4e 954 IN_NONBLOCK = 0x800
955 IPV6_HDRINCL = 0x24 955 IN_ONESHOT = 0x80000000
956 IPV6_HOPLIMIT = 0x34 956 IN_ONLYDIR = 0x1000000
957 IPV6_HOPOPTS = 0x36 957 IN_OPEN = 0x20
958 IPV6_IPSEC_POLICY = 0x22 958 IN_Q_OVERFLOW = 0x4000
959 IPV6_JOIN_ANYCAST = 0x1b 959 IN_UNMOUNT = 0x2000
960 IPV6_JOIN_GROUP = 0x14 960 IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x7b9
961 IPV6_LEAVE_ANYCAST = 0x1c 961 IPPROTO_AH = 0x33
962 IPV6_LEAVE_GROUP = 0x15 962 IPPROTO_BEETPH = 0x5e
963 IPV6_MINHOPCOUNT = 0x49 963 IPPROTO_COMP = 0x6c
964 IPV6_MTU = 0x18 964 IPPROTO_DCCP = 0x21
965 IPV6_MTU_DISCOVER = 0x17 965 IPPROTO_DSTOPTS = 0x3c
966 IPV6_MULTICAST_ALL = 0x1d 966 IPPROTO_EGP = 0x8
967 IPV6_MULTICAST_HOPS = 0x12 967 IPPROTO_ENCAP = 0x62
968 IPV6_MULTICAST_IF = 0x11 968 IPPROTO_ESP = 0x32
969 IPV6_MULTICAST_LOOP = 0x13 969 IPPROTO_FRAGMENT = 0x2c
970 IPV6_NEXTHOP = 0x9 970 IPPROTO_GRE = 0x2f
971 IPV6_ORIGDSTADDR = 0x4a 971 IPPROTO_HOPOPTS = 0x0
972 IPV6_PATHMTU = 0x3d 972 IPPROTO_ICMP = 0x1
973 IPV6_PKTINFO = 0x32 973 IPPROTO_ICMPV6 = 0x3a
974 IPV6_PMTUDISC_DO = 0x2 974 IPPROTO_IDP = 0x16
975 IPV6_PMTUDISC_DONT = 0x0 975 IPPROTO_IGMP = 0x2
976 IPV6_PMTUDISC_INTERFACE = 0x4 976 IPPROTO_IP = 0x0
977 IPV6_PMTUDISC_OMIT = 0x5 977 IPPROTO_IPIP = 0x4
978 IPV6_PMTUDISC_PROBE = 0x3 978 IPPROTO_IPV6 = 0x29
979 IPV6_PMTUDISC_WANT = 0x1 979 IPPROTO_MH = 0x87
980 IPV6_RECVDSTOPTS = 0x3a 980 IPPROTO_MPLS = 0x89
981 IPV6_RECVERR = 0x19 981 IPPROTO_MTP = 0x5c
982 IPV6_RECVFRAGSIZE = 0x4d 982 IPPROTO_NONE = 0x3b
983 IPV6_RECVHOPLIMIT = 0x33 983 IPPROTO_PIM = 0x67
984 IPV6_RECVHOPOPTS = 0x35 984 IPPROTO_PUP = 0xc
985 IPV6_RECVORIGDSTADDR = 0x4a 985 IPPROTO_RAW = 0xff
986 IPV6_RECVPATHMTU = 0x3c 986 IPPROTO_ROUTING = 0x2b
987 IPV6_RECVPKTINFO = 0x31 987 IPPROTO_RSVP = 0x2e
988 IPV6_RECVRTHDR = 0x38 988 IPPROTO_SCTP = 0x84
989 IPV6_RECVTCLASS = 0x42 989 IPPROTO_TCP = 0x6
990 IPV6_ROUTER_ALERT = 0x16 990 IPPROTO_TP = 0x1d
991 IPV6_ROUTER_ALERT_ISOLATE = 0x1e 991 IPPROTO_UDP = 0x11
992 IPV6_RTHDR = 0x39 992 IPPROTO_UDPLITE = 0x88
993 IPV6_RTHDRDSTOPTS = 0x37 993 IPV6_2292DSTOPTS = 0x4
994 IPV6_RTHDR_LOOSE = 0x0 994 IPV6_2292HOPLIMIT = 0x8
995 IPV6_RTHDR_STRICT = 0x1 995 IPV6_2292HOPOPTS = 0x3
996 IPV6_RTHDR_TYPE_0 = 0x0 996 IPV6_2292PKTINFO = 0x2
997 IPV6_RXDSTOPTS = 0x3b 997 IPV6_2292PKTOPTIONS = 0x6
998 IPV6_RXHOPOPTS = 0x36 998 IPV6_2292RTHDR = 0x5
999 IPV6_TCLASS = 0x43 999 IPV6_ADDRFORM = 0x1
1000 IPV6_TRANSPARENT = 0x4b 1000 IPV6_ADDR_PREFERENCES = 0x48
1001 IPV6_UNICAST_HOPS = 0x10 1001 IPV6_ADD_MEMBERSHIP = 0x14
1002 IPV6_UNICAST_IF = 0x4c 1002 IPV6_AUTHHDR = 0xa
1003 IPV6_V6ONLY = 0x1a 1003 IPV6_AUTOFLOWLABEL = 0x46
1004 IPV6_XFRM_POLICY = 0x23 1004 IPV6_CHECKSUM = 0x7
1005 IP_ADD_MEMBERSHIP = 0x23 1005 IPV6_DONTFRAG = 0x3e
1006 IP_ADD_SOURCE_MEMBERSHIP = 0x27 1006 IPV6_DROP_MEMBERSHIP = 0x15
1007 IP_BIND_ADDRESS_NO_PORT = 0x18 1007 IPV6_DSTOPTS = 0x3b
1008 IP_BLOCK_SOURCE = 0x26 1008 IPV6_FREEBIND = 0x4e
1009 IP_CHECKSUM = 0x17 1009 IPV6_HDRINCL = 0x24
1010 IP_DEFAULT_MULTICAST_LOOP = 0x1 1010 IPV6_HOPLIMIT = 0x34
1011 IP_DEFAULT_MULTICAST_TTL = 0x1 1011 IPV6_HOPOPTS = 0x36
1012 IP_DF = 0x4000 1012 IPV6_IPSEC_POLICY = 0x22
1013 IP_DROP_MEMBERSHIP = 0x24 1013 IPV6_JOIN_ANYCAST = 0x1b
1014 IP_DROP_SOURCE_MEMBERSHIP = 0x28 1014 IPV6_JOIN_GROUP = 0x14
1015 IP_FREEBIND = 0xf 1015 IPV6_LEAVE_ANYCAST = 0x1c
1016 IP_HDRINCL = 0x3 1016 IPV6_LEAVE_GROUP = 0x15
1017 IP_IPSEC_POLICY = 0x10 1017 IPV6_MINHOPCOUNT = 0x49
1018 IP_MAXPACKET = 0xffff 1018 IPV6_MTU = 0x18
1019 IP_MAX_MEMBERSHIPS = 0x14 1019 IPV6_MTU_DISCOVER = 0x17
1020 IP_MF = 0x2000 1020 IPV6_MULTICAST_ALL = 0x1d
1021 IP_MINTTL = 0x15 1021 IPV6_MULTICAST_HOPS = 0x12
1022 IP_MSFILTER = 0x29 1022 IPV6_MULTICAST_IF = 0x11
1023 IP_MSS = 0x240 1023 IPV6_MULTICAST_LOOP = 0x13
1024 IP_MTU = 0xe 1024 IPV6_NEXTHOP = 0x9
1025 IP_MTU_DISCOVER = 0xa 1025 IPV6_ORIGDSTADDR = 0x4a
1026 IP_MULTICAST_ALL = 0x31 1026 IPV6_PATHMTU = 0x3d
1027 IP_MULTICAST_IF = 0x20 1027 IPV6_PKTINFO = 0x32
1028 IP_MULTICAST_LOOP = 0x22 1028 IPV6_PMTUDISC_DO = 0x2
1029 IP_MULTICAST_TTL = 0x21 1029 IPV6_PMTUDISC_DONT = 0x0
1030 IP_NODEFRAG = 0x16 1030 IPV6_PMTUDISC_INTERFACE = 0x4
1031 IP_OFFMASK = 0x1fff 1031 IPV6_PMTUDISC_OMIT = 0x5
1032 IP_OPTIONS = 0x4 1032 IPV6_PMTUDISC_PROBE = 0x3
1033 IP_ORIGDSTADDR = 0x14 1033 IPV6_PMTUDISC_WANT = 0x1
1034 IP_PASSSEC = 0x12 1034 IPV6_RECVDSTOPTS = 0x3a
1035 IP_PKTINFO = 0x8 1035 IPV6_RECVERR = 0x19
1036 IP_PKTOPTIONS = 0x9 1036 IPV6_RECVFRAGSIZE = 0x4d
1037 IP_PMTUDISC = 0xa 1037 IPV6_RECVHOPLIMIT = 0x33
1038 IP_PMTUDISC_DO = 0x2 1038 IPV6_RECVHOPOPTS = 0x35
1039 IP_PMTUDISC_DONT = 0x0 1039 IPV6_RECVORIGDSTADDR = 0x4a
1040 IP_PMTUDISC_INTERFACE = 0x4 1040 IPV6_RECVPATHMTU = 0x3c
1041 IP_PMTUDISC_OMIT = 0x5 1041 IPV6_RECVPKTINFO = 0x31
1042 IP_PMTUDISC_PROBE = 0x3 1042 IPV6_RECVRTHDR = 0x38
1043 IP_PMTUDISC_WANT = 0x1 1043 IPV6_RECVTCLASS = 0x42
1044 IP_RECVERR = 0xb 1044 IPV6_ROUTER_ALERT = 0x16
1045 IP_RECVFRAGSIZE = 0x19 1045 IPV6_ROUTER_ALERT_ISOLATE = 0x1e
1046 IP_RECVOPTS = 0x6 1046 IPV6_RTHDR = 0x39
1047 IP_RECVORIGDSTADDR = 0x14 1047 IPV6_RTHDRDSTOPTS = 0x37
1048 IP_RECVRETOPTS = 0x7 1048 IPV6_RTHDR_LOOSE = 0x0
1049 IP_RECVTOS = 0xd 1049 IPV6_RTHDR_STRICT = 0x1
1050 IP_RECVTTL = 0xc 1050 IPV6_RTHDR_TYPE_0 = 0x0
1051 IP_RETOPTS = 0x7 1051 IPV6_RXDSTOPTS = 0x3b
1052 IP_RF = 0x8000 1052 IPV6_RXHOPOPTS = 0x36
1053 IP_ROUTER_ALERT = 0x5 1053 IPV6_TCLASS = 0x43
1054 IP_TOS = 0x1 1054 IPV6_TRANSPARENT = 0x4b
1055 IP_TRANSPARENT = 0x13 1055 IPV6_UNICAST_HOPS = 0x10
1056 IP_TTL = 0x2 1056 IPV6_UNICAST_IF = 0x4c
1057 IP_UNBLOCK_SOURCE = 0x25 1057 IPV6_V6ONLY = 0x1a
1058 IP_UNICAST_IF = 0x32 1058 IPV6_XFRM_POLICY = 0x23
1059 IP_XFRM_POLICY = 0x11 1059 IP_ADD_MEMBERSHIP = 0x23
1060 ISIG = 0x1 1060 IP_ADD_SOURCE_MEMBERSHIP = 0x27
1061 ISOFS_SUPER_MAGIC = 0x9660 1061 IP_BIND_ADDRESS_NO_PORT = 0x18
1062 ISTRIP = 0x20 1062 IP_BLOCK_SOURCE = 0x26
1063 IUCLC = 0x200 1063 IP_CHECKSUM = 0x17
1064 IUTF8 = 0x4000 1064 IP_DEFAULT_MULTICAST_LOOP = 0x1
1065 IXANY = 0x800 1065 IP_DEFAULT_MULTICAST_TTL = 0x1
1066 IXOFF = 0x1000 1066 IP_DF = 0x4000
1067 IXON = 0x400 1067 IP_DROP_MEMBERSHIP = 0x24
1068 JFFS2_SUPER_MAGIC = 0x72b6 1068 IP_DROP_SOURCE_MEMBERSHIP = 0x28
1069 KEXEC_ARCH_386 = 0x30000 1069 IP_FREEBIND = 0xf
1070 KEXEC_ARCH_68K = 0x40000 1070 IP_HDRINCL = 0x3
1071 KEXEC_ARCH_AARCH64 = 0xb70000 1071 IP_IPSEC_POLICY = 0x10
1072 KEXEC_ARCH_ARM = 0x280000 1072 IP_MAXPACKET = 0xffff
1073 KEXEC_ARCH_DEFAULT = 0x0 1073 IP_MAX_MEMBERSHIPS = 0x14
1074 KEXEC_ARCH_IA_64 = 0x320000 1074 IP_MF = 0x2000
1075 KEXEC_ARCH_MASK = 0xffff0000 1075 IP_MINTTL = 0x15
1076 KEXEC_ARCH_MIPS = 0x80000 1076 IP_MSFILTER = 0x29
1077 KEXEC_ARCH_MIPS_LE = 0xa0000 1077 IP_MSS = 0x240
1078 KEXEC_ARCH_PPC = 0x140000 1078 IP_MTU = 0xe
1079 KEXEC_ARCH_PPC64 = 0x150000 1079 IP_MTU_DISCOVER = 0xa
1080 KEXEC_ARCH_S390 = 0x160000 1080 IP_MULTICAST_ALL = 0x31
1081 KEXEC_ARCH_SH = 0x2a0000 1081 IP_MULTICAST_IF = 0x20
1082 KEXEC_ARCH_X86_64 = 0x3e0000 1082 IP_MULTICAST_LOOP = 0x22
1083 KEXEC_FILE_NO_INITRAMFS = 0x4 1083 IP_MULTICAST_TTL = 0x21
1084 KEXEC_FILE_ON_CRASH = 0x2 1084 IP_NODEFRAG = 0x16
1085 KEXEC_FILE_UNLOAD = 0x1 1085 IP_OFFMASK = 0x1fff
1086 KEXEC_ON_CRASH = 0x1 1086 IP_OPTIONS = 0x4
1087 KEXEC_PRESERVE_CONTEXT = 0x2 1087 IP_ORIGDSTADDR = 0x14
1088 KEXEC_SEGMENT_MAX = 0x10 1088 IP_PASSSEC = 0x12
1089 KEYCTL_ASSUME_AUTHORITY = 0x10 1089 IP_PKTINFO = 0x8
1090 KEYCTL_CHOWN = 0x4 1090 IP_PKTOPTIONS = 0x9
1091 KEYCTL_CLEAR = 0x7 1091 IP_PMTUDISC = 0xa
1092 KEYCTL_DESCRIBE = 0x6 1092 IP_PMTUDISC_DO = 0x2
1093 KEYCTL_DH_COMPUTE = 0x17 1093 IP_PMTUDISC_DONT = 0x0
1094 KEYCTL_GET_KEYRING_ID = 0x0 1094 IP_PMTUDISC_INTERFACE = 0x4
1095 KEYCTL_GET_PERSISTENT = 0x16 1095 IP_PMTUDISC_OMIT = 0x5
1096 KEYCTL_GET_SECURITY = 0x11 1096 IP_PMTUDISC_PROBE = 0x3
1097 KEYCTL_INSTANTIATE = 0xc 1097 IP_PMTUDISC_WANT = 0x1
1098 KEYCTL_INSTANTIATE_IOV = 0x14 1098 IP_RECVERR = 0xb
1099 KEYCTL_INVALIDATE = 0x15 1099 IP_RECVFRAGSIZE = 0x19
1100 KEYCTL_JOIN_SESSION_KEYRING = 0x1 1100 IP_RECVOPTS = 0x6
1101 KEYCTL_LINK = 0x8 1101 IP_RECVORIGDSTADDR = 0x14
1102 KEYCTL_NEGATE = 0xd 1102 IP_RECVRETOPTS = 0x7
1103 KEYCTL_PKEY_DECRYPT = 0x1a 1103 IP_RECVTOS = 0xd
1104 KEYCTL_PKEY_ENCRYPT = 0x19 1104 IP_RECVTTL = 0xc
1105 KEYCTL_PKEY_QUERY = 0x18 1105 IP_RETOPTS = 0x7
1106 KEYCTL_PKEY_SIGN = 0x1b 1106 IP_RF = 0x8000
1107 KEYCTL_PKEY_VERIFY = 0x1c 1107 IP_ROUTER_ALERT = 0x5
1108 KEYCTL_READ = 0xb 1108 IP_TOS = 0x1
1109 KEYCTL_REJECT = 0x13 1109 IP_TRANSPARENT = 0x13
1110 KEYCTL_RESTRICT_KEYRING = 0x1d 1110 IP_TTL = 0x2
1111 KEYCTL_REVOKE = 0x3 1111 IP_UNBLOCK_SOURCE = 0x25
1112 KEYCTL_SEARCH = 0xa 1112 IP_UNICAST_IF = 0x32
1113 KEYCTL_SESSION_TO_PARENT = 0x12 1113 IP_XFRM_POLICY = 0x11
1114 KEYCTL_SETPERM = 0x5 1114 ISIG = 0x1
1115 KEYCTL_SET_REQKEY_KEYRING = 0xe 1115 ISOFS_SUPER_MAGIC = 0x9660
1116 KEYCTL_SET_TIMEOUT = 0xf 1116 ISTRIP = 0x20
1117 KEYCTL_SUPPORTS_DECRYPT = 0x2 1117 IUCLC = 0x200
1118 KEYCTL_SUPPORTS_ENCRYPT = 0x1 1118 IUTF8 = 0x4000
1119 KEYCTL_SUPPORTS_SIGN = 0x4 1119 IXANY = 0x800
1120 KEYCTL_SUPPORTS_VERIFY = 0x8 1120 IXOFF = 0x1000
1121 KEYCTL_UNLINK = 0x9 1121 IXON = 0x400
1122 KEYCTL_UPDATE = 0x2 1122 JFFS2_SUPER_MAGIC = 0x72b6
1123 KEY_REQKEY_DEFL_DEFAULT = 0x0 1123 KEXEC_ARCH_386 = 0x30000
1124 KEY_REQKEY_DEFL_GROUP_KEYRING = 0x6 1124 KEXEC_ARCH_68K = 0x40000
1125 KEY_REQKEY_DEFL_NO_CHANGE = -0x1 1125 KEXEC_ARCH_AARCH64 = 0xb70000
1126 KEY_REQKEY_DEFL_PROCESS_KEYRING = 0x2 1126 KEXEC_ARCH_ARM = 0x280000
1127 KEY_REQKEY_DEFL_REQUESTOR_KEYRING = 0x7 1127 KEXEC_ARCH_DEFAULT = 0x0
1128 KEY_REQKEY_DEFL_SESSION_KEYRING = 0x3 1128 KEXEC_ARCH_IA_64 = 0x320000
1129 KEY_REQKEY_DEFL_THREAD_KEYRING = 0x1 1129 KEXEC_ARCH_MASK = 0xffff0000
1130 KEY_REQKEY_DEFL_USER_KEYRING = 0x4 1130 KEXEC_ARCH_MIPS = 0x80000
1131 KEY_REQKEY_DEFL_USER_SESSION_KEYRING = 0x5 1131 KEXEC_ARCH_MIPS_LE = 0xa0000
1132 KEY_SPEC_GROUP_KEYRING = -0x6 1132 KEXEC_ARCH_PARISC = 0xf0000
1133 KEY_SPEC_PROCESS_KEYRING = -0x2 1133 KEXEC_ARCH_PPC = 0x140000
1134 KEY_SPEC_REQKEY_AUTH_KEY = -0x7 1134 KEXEC_ARCH_PPC64 = 0x150000
1135 KEY_SPEC_REQUESTOR_KEYRING = -0x8 1135 KEXEC_ARCH_S390 = 0x160000
1136 KEY_SPEC_SESSION_KEYRING = -0x3 1136 KEXEC_ARCH_SH = 0x2a0000
1137 KEY_SPEC_THREAD_KEYRING = -0x1 1137 KEXEC_ARCH_X86_64 = 0x3e0000
1138 KEY_SPEC_USER_KEYRING = -0x4 1138 KEXEC_FILE_NO_INITRAMFS = 0x4
1139 KEY_SPEC_USER_SESSION_KEYRING = -0x5 1139 KEXEC_FILE_ON_CRASH = 0x2
1140 LINUX_REBOOT_CMD_CAD_OFF = 0x0 1140 KEXEC_FILE_UNLOAD = 0x1
1141 LINUX_REBOOT_CMD_CAD_ON = 0x89abcdef 1141 KEXEC_ON_CRASH = 0x1
1142 LINUX_REBOOT_CMD_HALT = 0xcdef0123 1142 KEXEC_PRESERVE_CONTEXT = 0x2
1143 LINUX_REBOOT_CMD_KEXEC = 0x45584543 1143 KEXEC_SEGMENT_MAX = 0x10
1144 LINUX_REBOOT_CMD_POWER_OFF = 0x4321fedc 1144 KEYCTL_ASSUME_AUTHORITY = 0x10
1145 LINUX_REBOOT_CMD_RESTART = 0x1234567 1145 KEYCTL_CAPABILITIES = 0x1f
1146 LINUX_REBOOT_CMD_RESTART2 = 0xa1b2c3d4 1146 KEYCTL_CAPS0_BIG_KEY = 0x10
1147 LINUX_REBOOT_CMD_SW_SUSPEND = 0xd000fce2 1147 KEYCTL_CAPS0_CAPABILITIES = 0x1
1148 LINUX_REBOOT_MAGIC1 = 0xfee1dead 1148 KEYCTL_CAPS0_DIFFIE_HELLMAN = 0x4
1149 LINUX_REBOOT_MAGIC2 = 0x28121969 1149 KEYCTL_CAPS0_INVALIDATE = 0x20
1150 LOCK_EX = 0x2 1150 KEYCTL_CAPS0_MOVE = 0x80
1151 LOCK_NB = 0x4 1151 KEYCTL_CAPS0_PERSISTENT_KEYRINGS = 0x2
1152 LOCK_SH = 0x1 1152 KEYCTL_CAPS0_PUBLIC_KEY = 0x8
1153 LOCK_UN = 0x8 1153 KEYCTL_CAPS0_RESTRICT_KEYRING = 0x40
1154 LOOP_CLR_FD = 0x4c01 1154 KEYCTL_CAPS1_NS_KEYRING_NAME = 0x1
1155 LOOP_CTL_ADD = 0x4c80 1155 KEYCTL_CAPS1_NS_KEY_TAG = 0x2
1156 LOOP_CTL_GET_FREE = 0x4c82 1156 KEYCTL_CHOWN = 0x4
1157 LOOP_CTL_REMOVE = 0x4c81 1157 KEYCTL_CLEAR = 0x7
1158 LOOP_GET_STATUS = 0x4c03 1158 KEYCTL_DESCRIBE = 0x6
1159 LOOP_GET_STATUS64 = 0x4c05 1159 KEYCTL_DH_COMPUTE = 0x17
1160 LOOP_SET_BLOCK_SIZE = 0x4c09 1160 KEYCTL_GET_KEYRING_ID = 0x0
1161 LOOP_SET_CAPACITY = 0x4c07 1161 KEYCTL_GET_PERSISTENT = 0x16
1162 LOOP_SET_DIRECT_IO = 0x4c08 1162 KEYCTL_GET_SECURITY = 0x11
1163 LOOP_SET_FD = 0x4c00 1163 KEYCTL_INSTANTIATE = 0xc
1164 LOOP_SET_STATUS = 0x4c02 1164 KEYCTL_INSTANTIATE_IOV = 0x14
1165 LOOP_SET_STATUS64 = 0x4c04 1165 KEYCTL_INVALIDATE = 0x15
1166 LO_KEY_SIZE = 0x20 1166 KEYCTL_JOIN_SESSION_KEYRING = 0x1
1167 LO_NAME_SIZE = 0x40 1167 KEYCTL_LINK = 0x8
1168 MADV_DODUMP = 0x11 1168 KEYCTL_MOVE = 0x1e
1169 MADV_DOFORK = 0xb 1169 KEYCTL_MOVE_EXCL = 0x1
1170 MADV_DONTDUMP = 0x10 1170 KEYCTL_NEGATE = 0xd
1171 MADV_DONTFORK = 0xa 1171 KEYCTL_PKEY_DECRYPT = 0x1a
1172 MADV_DONTNEED = 0x4 1172 KEYCTL_PKEY_ENCRYPT = 0x19
1173 MADV_FREE = 0x8 1173 KEYCTL_PKEY_QUERY = 0x18
1174 MADV_HUGEPAGE = 0xe 1174 KEYCTL_PKEY_SIGN = 0x1b
1175 MADV_HWPOISON = 0x64 1175 KEYCTL_PKEY_VERIFY = 0x1c
1176 MADV_KEEPONFORK = 0x13 1176 KEYCTL_READ = 0xb
1177 MADV_MERGEABLE = 0xc 1177 KEYCTL_REJECT = 0x13
1178 MADV_NOHUGEPAGE = 0xf 1178 KEYCTL_RESTRICT_KEYRING = 0x1d
1179 MADV_NORMAL = 0x0 1179 KEYCTL_REVOKE = 0x3
1180 MADV_RANDOM = 0x1 1180 KEYCTL_SEARCH = 0xa
1181 MADV_REMOVE = 0x9 1181 KEYCTL_SESSION_TO_PARENT = 0x12
1182 MADV_SEQUENTIAL = 0x2 1182 KEYCTL_SETPERM = 0x5
1183 MADV_UNMERGEABLE = 0xd 1183 KEYCTL_SET_REQKEY_KEYRING = 0xe
1184 MADV_WILLNEED = 0x3 1184 KEYCTL_SET_TIMEOUT = 0xf
1185 MADV_WIPEONFORK = 0x12 1185 KEYCTL_SUPPORTS_DECRYPT = 0x2
1186 MAP_32BIT = 0x40 1186 KEYCTL_SUPPORTS_ENCRYPT = 0x1
1187 MAP_ANON = 0x20 1187 KEYCTL_SUPPORTS_SIGN = 0x4
1188 MAP_ANONYMOUS = 0x20 1188 KEYCTL_SUPPORTS_VERIFY = 0x8
1189 MAP_DENYWRITE = 0x800 1189 KEYCTL_UNLINK = 0x9
1190 MAP_EXECUTABLE = 0x1000 1190 KEYCTL_UPDATE = 0x2
1191 MAP_FILE = 0x0 1191 KEY_REQKEY_DEFL_DEFAULT = 0x0
1192 MAP_FIXED = 0x10 1192 KEY_REQKEY_DEFL_GROUP_KEYRING = 0x6
1193 MAP_FIXED_NOREPLACE = 0x100000 1193 KEY_REQKEY_DEFL_NO_CHANGE = -0x1
1194 MAP_GROWSDOWN = 0x100 1194 KEY_REQKEY_DEFL_PROCESS_KEYRING = 0x2
1195 MAP_HUGETLB = 0x40000 1195 KEY_REQKEY_DEFL_REQUESTOR_KEYRING = 0x7
1196 MAP_HUGE_MASK = 0x3f 1196 KEY_REQKEY_DEFL_SESSION_KEYRING = 0x3
1197 MAP_HUGE_SHIFT = 0x1a 1197 KEY_REQKEY_DEFL_THREAD_KEYRING = 0x1
1198 MAP_LOCKED = 0x2000 1198 KEY_REQKEY_DEFL_USER_KEYRING = 0x4
1199 MAP_NONBLOCK = 0x10000 1199 KEY_REQKEY_DEFL_USER_SESSION_KEYRING = 0x5
1200 MAP_NORESERVE = 0x4000 1200 KEY_SPEC_GROUP_KEYRING = -0x6
1201 MAP_POPULATE = 0x8000 1201 KEY_SPEC_PROCESS_KEYRING = -0x2
1202 MAP_PRIVATE = 0x2 1202 KEY_SPEC_REQKEY_AUTH_KEY = -0x7
1203 MAP_SHARED = 0x1 1203 KEY_SPEC_REQUESTOR_KEYRING = -0x8
1204 MAP_SHARED_VALIDATE = 0x3 1204 KEY_SPEC_SESSION_KEYRING = -0x3
1205 MAP_STACK = 0x20000 1205 KEY_SPEC_THREAD_KEYRING = -0x1
1206 MAP_SYNC = 0x80000 1206 KEY_SPEC_USER_KEYRING = -0x4
1207 MAP_TYPE = 0xf 1207 KEY_SPEC_USER_SESSION_KEYRING = -0x5
1208 MCAST_BLOCK_SOURCE = 0x2b 1208 LINUX_REBOOT_CMD_CAD_OFF = 0x0
1209 MCAST_EXCLUDE = 0x0 1209 LINUX_REBOOT_CMD_CAD_ON = 0x89abcdef
1210 MCAST_INCLUDE = 0x1 1210 LINUX_REBOOT_CMD_HALT = 0xcdef0123
1211 MCAST_JOIN_GROUP = 0x2a 1211 LINUX_REBOOT_CMD_KEXEC = 0x45584543
1212 MCAST_JOIN_SOURCE_GROUP = 0x2e 1212 LINUX_REBOOT_CMD_POWER_OFF = 0x4321fedc
1213 MCAST_LEAVE_GROUP = 0x2d 1213 LINUX_REBOOT_CMD_RESTART = 0x1234567
1214 MCAST_LEAVE_SOURCE_GROUP = 0x2f 1214 LINUX_REBOOT_CMD_RESTART2 = 0xa1b2c3d4
1215 MCAST_MSFILTER = 0x30 1215 LINUX_REBOOT_CMD_SW_SUSPEND = 0xd000fce2
1216 MCAST_UNBLOCK_SOURCE = 0x2c 1216 LINUX_REBOOT_MAGIC1 = 0xfee1dead
1217 MCL_CURRENT = 0x1 1217 LINUX_REBOOT_MAGIC2 = 0x28121969
1218 MCL_FUTURE = 0x2 1218 LOCK_EX = 0x2
1219 MCL_ONFAULT = 0x4 1219 LOCK_NB = 0x4
1220 MFD_ALLOW_SEALING = 0x2 1220 LOCK_SH = 0x1
1221 MFD_CLOEXEC = 0x1 1221 LOCK_UN = 0x8
1222 MFD_HUGETLB = 0x4 1222 LOOP_CLR_FD = 0x4c01
1223 MFD_HUGE_16GB = -0x78000000 1223 LOOP_CTL_ADD = 0x4c80
1224 MFD_HUGE_16MB = 0x60000000 1224 LOOP_CTL_GET_FREE = 0x4c82
1225 MFD_HUGE_1GB = 0x78000000 1225 LOOP_CTL_REMOVE = 0x4c81
1226 MFD_HUGE_1MB = 0x50000000 1226 LOOP_GET_STATUS = 0x4c03
1227 MFD_HUGE_256MB = 0x70000000 1227 LOOP_GET_STATUS64 = 0x4c05
1228 MFD_HUGE_2GB = 0x7c000000 1228 LOOP_SET_BLOCK_SIZE = 0x4c09
1229 MFD_HUGE_2MB = 0x54000000 1229 LOOP_SET_CAPACITY = 0x4c07
1230 MFD_HUGE_32MB = 0x64000000 1230 LOOP_SET_DIRECT_IO = 0x4c08
1231 MFD_HUGE_512KB = 0x4c000000 1231 LOOP_SET_FD = 0x4c00
1232 MFD_HUGE_512MB = 0x74000000 1232 LOOP_SET_STATUS = 0x4c02
1233 MFD_HUGE_64KB = 0x40000000 1233 LOOP_SET_STATUS64 = 0x4c04
1234 MFD_HUGE_8MB = 0x5c000000 1234 LO_KEY_SIZE = 0x20
1235 MFD_HUGE_MASK = 0x3f 1235 LO_NAME_SIZE = 0x40
1236 MFD_HUGE_SHIFT = 0x1a 1236 MADV_COLD = 0x14
1237 MINIX2_SUPER_MAGIC = 0x2468 1237 MADV_DODUMP = 0x11
1238 MINIX2_SUPER_MAGIC2 = 0x2478 1238 MADV_DOFORK = 0xb
1239 MINIX3_SUPER_MAGIC = 0x4d5a 1239 MADV_DONTDUMP = 0x10
1240 MINIX_SUPER_MAGIC = 0x137f 1240 MADV_DONTFORK = 0xa
1241 MINIX_SUPER_MAGIC2 = 0x138f 1241 MADV_DONTNEED = 0x4
1242 MNT_DETACH = 0x2 1242 MADV_FREE = 0x8
1243 MNT_EXPIRE = 0x4 1243 MADV_HUGEPAGE = 0xe
1244 MNT_FORCE = 0x1 1244 MADV_HWPOISON = 0x64
1245 MODULE_INIT_IGNORE_MODVERSIONS = 0x1 1245 MADV_KEEPONFORK = 0x13
1246 MODULE_INIT_IGNORE_VERMAGIC = 0x2 1246 MADV_MERGEABLE = 0xc
1247 MSDOS_SUPER_MAGIC = 0x4d44 1247 MADV_NOHUGEPAGE = 0xf
1248 MSG_BATCH = 0x40000 1248 MADV_NORMAL = 0x0
1249 MSG_CMSG_CLOEXEC = 0x40000000 1249 MADV_PAGEOUT = 0x15
1250 MSG_CONFIRM = 0x800 1250 MADV_RANDOM = 0x1
1251 MSG_CTRUNC = 0x8 1251 MADV_REMOVE = 0x9
1252 MSG_DONTROUTE = 0x4 1252 MADV_SEQUENTIAL = 0x2
1253 MSG_DONTWAIT = 0x40 1253 MADV_UNMERGEABLE = 0xd
1254 MSG_EOR = 0x80 1254 MADV_WILLNEED = 0x3
1255 MSG_ERRQUEUE = 0x2000 1255 MADV_WIPEONFORK = 0x12
1256 MSG_FASTOPEN = 0x20000000 1256 MAP_32BIT = 0x40
1257 MSG_FIN = 0x200 1257 MAP_ANON = 0x20
1258 MSG_MORE = 0x8000 1258 MAP_ANONYMOUS = 0x20
1259 MSG_NOSIGNAL = 0x4000 1259 MAP_DENYWRITE = 0x800
1260 MSG_OOB = 0x1 1260 MAP_EXECUTABLE = 0x1000
1261 MSG_PEEK = 0x2 1261 MAP_FILE = 0x0
1262 MSG_PROXY = 0x10 1262 MAP_FIXED = 0x10
1263 MSG_RST = 0x1000 1263 MAP_FIXED_NOREPLACE = 0x100000
1264 MSG_SYN = 0x400 1264 MAP_GROWSDOWN = 0x100
1265 MSG_TRUNC = 0x20 1265 MAP_HUGETLB = 0x40000
1266 MSG_TRYHARD = 0x4 1266 MAP_HUGE_MASK = 0x3f
1267 MSG_WAITALL = 0x100 1267 MAP_HUGE_SHIFT = 0x1a
1268 MSG_WAITFORONE = 0x10000 1268 MAP_LOCKED = 0x2000
1269 MSG_ZEROCOPY = 0x4000000 1269 MAP_NONBLOCK = 0x10000
1270 MS_ACTIVE = 0x40000000 1270 MAP_NORESERVE = 0x4000
1271 MS_ASYNC = 0x1 1271 MAP_POPULATE = 0x8000
1272 MS_BIND = 0x1000 1272 MAP_PRIVATE = 0x2
1273 MS_BORN = 0x20000000 1273 MAP_SHARED = 0x1
1274 MS_DIRSYNC = 0x80 1274 MAP_SHARED_VALIDATE = 0x3
1275 MS_INVALIDATE = 0x2 1275 MAP_STACK = 0x20000
1276 MS_I_VERSION = 0x800000 1276 MAP_SYNC = 0x80000
1277 MS_KERNMOUNT = 0x400000 1277 MAP_TYPE = 0xf
1278 MS_LAZYTIME = 0x2000000 1278 MCAST_BLOCK_SOURCE = 0x2b
1279 MS_MANDLOCK = 0x40 1279 MCAST_EXCLUDE = 0x0
1280 MS_MGC_MSK = 0xffff0000 1280 MCAST_INCLUDE = 0x1
1281 MS_MGC_VAL = 0xc0ed0000 1281 MCAST_JOIN_GROUP = 0x2a
1282 MS_MOVE = 0x2000 1282 MCAST_JOIN_SOURCE_GROUP = 0x2e
1283 MS_NOATIME = 0x400 1283 MCAST_LEAVE_GROUP = 0x2d
1284 MS_NODEV = 0x4 1284 MCAST_LEAVE_SOURCE_GROUP = 0x2f
1285 MS_NODIRATIME = 0x800 1285 MCAST_MSFILTER = 0x30
1286 MS_NOEXEC = 0x8 1286 MCAST_UNBLOCK_SOURCE = 0x2c
1287 MS_NOREMOTELOCK = 0x8000000 1287 MCL_CURRENT = 0x1
1288 MS_NOSEC = 0x10000000 1288 MCL_FUTURE = 0x2
1289 MS_NOSUID = 0x2 1289 MCL_ONFAULT = 0x4
1290 MS_NOUSER = -0x80000000 1290 MFD_ALLOW_SEALING = 0x2
1291 MS_POSIXACL = 0x10000 1291 MFD_CLOEXEC = 0x1
1292 MS_PRIVATE = 0x40000 1292 MFD_HUGETLB = 0x4
1293 MS_RDONLY = 0x1 1293 MFD_HUGE_16GB = -0x78000000
1294 MS_REC = 0x4000 1294 MFD_HUGE_16MB = 0x60000000
1295 MS_RELATIME = 0x200000 1295 MFD_HUGE_1GB = 0x78000000
1296 MS_REMOUNT = 0x20 1296 MFD_HUGE_1MB = 0x50000000
1297 MS_RMT_MASK = 0x2800051 1297 MFD_HUGE_256MB = 0x70000000
1298 MS_SHARED = 0x100000 1298 MFD_HUGE_2GB = 0x7c000000
1299 MS_SILENT = 0x8000 1299 MFD_HUGE_2MB = 0x54000000
1300 MS_SLAVE = 0x80000 1300 MFD_HUGE_32MB = 0x64000000
1301 MS_STRICTATIME = 0x1000000 1301 MFD_HUGE_512KB = 0x4c000000
1302 MS_SUBMOUNT = 0x4000000 1302 MFD_HUGE_512MB = 0x74000000
1303 MS_SYNC = 0x4 1303 MFD_HUGE_64KB = 0x40000000
1304 MS_SYNCHRONOUS = 0x10 1304 MFD_HUGE_8MB = 0x5c000000
1305 MS_UNBINDABLE = 0x20000 1305 MFD_HUGE_MASK = 0x3f
1306 MS_VERBOSE = 0x8000 1306 MFD_HUGE_SHIFT = 0x1a
1307 MTD_INODE_FS_MAGIC = 0x11307854 1307 MINIX2_SUPER_MAGIC = 0x2468
1308 NAME_MAX = 0xff 1308 MINIX2_SUPER_MAGIC2 = 0x2478
1309 NCP_SUPER_MAGIC = 0x564c 1309 MINIX3_SUPER_MAGIC = 0x4d5a
1310 NETLINK_ADD_MEMBERSHIP = 0x1 1310 MINIX_SUPER_MAGIC = 0x137f
1311 NETLINK_AUDIT = 0x9 1311 MINIX_SUPER_MAGIC2 = 0x138f
1312 NETLINK_BROADCAST_ERROR = 0x4 1312 MNT_DETACH = 0x2
1313 NETLINK_CAP_ACK = 0xa 1313 MNT_EXPIRE = 0x4
1314 NETLINK_CONNECTOR = 0xb 1314 MNT_FORCE = 0x1
1315 NETLINK_CRYPTO = 0x15 1315 MODULE_INIT_IGNORE_MODVERSIONS = 0x1
1316 NETLINK_DNRTMSG = 0xe 1316 MODULE_INIT_IGNORE_VERMAGIC = 0x2
1317 NETLINK_DROP_MEMBERSHIP = 0x2 1317 MSDOS_SUPER_MAGIC = 0x4d44
1318 NETLINK_ECRYPTFS = 0x13 1318 MSG_BATCH = 0x40000
1319 NETLINK_EXT_ACK = 0xb 1319 MSG_CMSG_CLOEXEC = 0x40000000
1320 NETLINK_FIB_LOOKUP = 0xa 1320 MSG_CONFIRM = 0x800
1321 NETLINK_FIREWALL = 0x3 1321 MSG_CTRUNC = 0x8
1322 NETLINK_GENERIC = 0x10 1322 MSG_DONTROUTE = 0x4
1323 NETLINK_GET_STRICT_CHK = 0xc 1323 MSG_DONTWAIT = 0x40
1324 NETLINK_INET_DIAG = 0x4 1324 MSG_EOR = 0x80
1325 NETLINK_IP6_FW = 0xd 1325 MSG_ERRQUEUE = 0x2000
1326 NETLINK_ISCSI = 0x8 1326 MSG_FASTOPEN = 0x20000000
1327 NETLINK_KOBJECT_UEVENT = 0xf 1327 MSG_FIN = 0x200
1328 NETLINK_LISTEN_ALL_NSID = 0x8 1328 MSG_MORE = 0x8000
1329 NETLINK_LIST_MEMBERSHIPS = 0x9 1329 MSG_NOSIGNAL = 0x4000
1330 NETLINK_NETFILTER = 0xc 1330 MSG_OOB = 0x1
1331 NETLINK_NFLOG = 0x5 1331 MSG_PEEK = 0x2
1332 NETLINK_NO_ENOBUFS = 0x5 1332 MSG_PROXY = 0x10
1333 NETLINK_PKTINFO = 0x3 1333 MSG_RST = 0x1000
1334 NETLINK_RDMA = 0x14 1334 MSG_SYN = 0x400
1335 NETLINK_ROUTE = 0x0 1335 MSG_TRUNC = 0x20
1336 NETLINK_RX_RING = 0x6 1336 MSG_TRYHARD = 0x4
1337 NETLINK_SCSITRANSPORT = 0x12 1337 MSG_WAITALL = 0x100
1338 NETLINK_SELINUX = 0x7 1338 MSG_WAITFORONE = 0x10000
1339 NETLINK_SMC = 0x16 1339 MSG_ZEROCOPY = 0x4000000
1340 NETLINK_SOCK_DIAG = 0x4 1340 MS_ACTIVE = 0x40000000
1341 NETLINK_TX_RING = 0x7 1341 MS_ASYNC = 0x1
1342 NETLINK_UNUSED = 0x1 1342 MS_BIND = 0x1000
1343 NETLINK_USERSOCK = 0x2 1343 MS_BORN = 0x20000000
1344 NETLINK_XFRM = 0x6 1344 MS_DIRSYNC = 0x80
1345 NETNSA_MAX = 0x5 1345 MS_INVALIDATE = 0x2
1346 NETNSA_NSID_NOT_ASSIGNED = -0x1 1346 MS_I_VERSION = 0x800000
1347 NFNETLINK_V0 = 0x0 1347 MS_KERNMOUNT = 0x400000
1348 NFNLGRP_ACCT_QUOTA = 0x8 1348 MS_LAZYTIME = 0x2000000
1349 NFNLGRP_CONNTRACK_DESTROY = 0x3 1349 MS_MANDLOCK = 0x40
1350 NFNLGRP_CONNTRACK_EXP_DESTROY = 0x6 1350 MS_MGC_MSK = 0xffff0000
1351 NFNLGRP_CONNTRACK_EXP_NEW = 0x4 1351 MS_MGC_VAL = 0xc0ed0000
1352 NFNLGRP_CONNTRACK_EXP_UPDATE = 0x5 1352 MS_MOVE = 0x2000
1353 NFNLGRP_CONNTRACK_NEW = 0x1 1353 MS_NOATIME = 0x400
1354 NFNLGRP_CONNTRACK_UPDATE = 0x2 1354 MS_NODEV = 0x4
1355 NFNLGRP_MAX = 0x9 1355 MS_NODIRATIME = 0x800
1356 NFNLGRP_NFTABLES = 0x7 1356 MS_NOEXEC = 0x8
1357 NFNLGRP_NFTRACE = 0x9 1357 MS_NOREMOTELOCK = 0x8000000
1358 NFNLGRP_NONE = 0x0 1358 MS_NOSEC = 0x10000000
1359 NFNL_BATCH_MAX = 0x1 1359 MS_NOSUID = 0x2
1360 NFNL_MSG_BATCH_BEGIN = 0x10 1360 MS_NOUSER = -0x80000000
1361 NFNL_MSG_BATCH_END = 0x11 1361 MS_POSIXACL = 0x10000
1362 NFNL_NFA_NEST = 0x8000 1362 MS_PRIVATE = 0x40000
1363 NFNL_SUBSYS_ACCT = 0x7 1363 MS_RDONLY = 0x1
1364 NFNL_SUBSYS_COUNT = 0xc 1364 MS_REC = 0x4000
1365 NFNL_SUBSYS_CTHELPER = 0x9 1365 MS_RELATIME = 0x200000
1366 NFNL_SUBSYS_CTNETLINK = 0x1 1366 MS_REMOUNT = 0x20
1367 NFNL_SUBSYS_CTNETLINK_EXP = 0x2 1367 MS_RMT_MASK = 0x2800051
1368 NFNL_SUBSYS_CTNETLINK_TIMEOUT = 0x8 1368 MS_SHARED = 0x100000
1369 NFNL_SUBSYS_IPSET = 0x6 1369 MS_SILENT = 0x8000
1370 NFNL_SUBSYS_NFTABLES = 0xa 1370 MS_SLAVE = 0x80000
1371 NFNL_SUBSYS_NFT_COMPAT = 0xb 1371 MS_STRICTATIME = 0x1000000
1372 NFNL_SUBSYS_NONE = 0x0 1372 MS_SUBMOUNT = 0x4000000
1373 NFNL_SUBSYS_OSF = 0x5 1373 MS_SYNC = 0x4
1374 NFNL_SUBSYS_QUEUE = 0x3 1374 MS_SYNCHRONOUS = 0x10
1375 NFNL_SUBSYS_ULOG = 0x4 1375 MS_UNBINDABLE = 0x20000
1376 NFS_SUPER_MAGIC = 0x6969 1376 MS_VERBOSE = 0x8000
1377 NILFS_SUPER_MAGIC = 0x3434 1377 MTD_INODE_FS_MAGIC = 0x11307854
1378 NL0 = 0x0 1378 NAME_MAX = 0xff
1379 NL1 = 0x100 1379 NCP_SUPER_MAGIC = 0x564c
1380 NLA_ALIGNTO = 0x4 1380 NETLINK_ADD_MEMBERSHIP = 0x1
1381 NLA_F_NESTED = 0x8000 1381 NETLINK_AUDIT = 0x9
1382 NLA_F_NET_BYTEORDER = 0x4000 1382 NETLINK_BROADCAST_ERROR = 0x4
1383 NLA_HDRLEN = 0x4 1383 NETLINK_CAP_ACK = 0xa
1384 NLDLY = 0x100 1384 NETLINK_CONNECTOR = 0xb
1385 NLMSG_ALIGNTO = 0x4 1385 NETLINK_CRYPTO = 0x15
1386 NLMSG_DONE = 0x3 1386 NETLINK_DNRTMSG = 0xe
1387 NLMSG_ERROR = 0x2 1387 NETLINK_DROP_MEMBERSHIP = 0x2
1388 NLMSG_HDRLEN = 0x10 1388 NETLINK_ECRYPTFS = 0x13
1389 NLMSG_MIN_TYPE = 0x10 1389 NETLINK_EXT_ACK = 0xb
1390 NLMSG_NOOP = 0x1 1390 NETLINK_FIB_LOOKUP = 0xa
1391 NLMSG_OVERRUN = 0x4 1391 NETLINK_FIREWALL = 0x3
1392 NLM_F_ACK = 0x4 1392 NETLINK_GENERIC = 0x10
1393 NLM_F_ACK_TLVS = 0x200 1393 NETLINK_GET_STRICT_CHK = 0xc
1394 NLM_F_APPEND = 0x800 1394 NETLINK_INET_DIAG = 0x4
1395 NLM_F_ATOMIC = 0x400 1395 NETLINK_IP6_FW = 0xd
1396 NLM_F_CAPPED = 0x100 1396 NETLINK_ISCSI = 0x8
1397 NLM_F_CREATE = 0x400 1397 NETLINK_KOBJECT_UEVENT = 0xf
1398 NLM_F_DUMP = 0x300 1398 NETLINK_LISTEN_ALL_NSID = 0x8
1399 NLM_F_DUMP_FILTERED = 0x20 1399 NETLINK_LIST_MEMBERSHIPS = 0x9
1400 NLM_F_DUMP_INTR = 0x10 1400 NETLINK_NETFILTER = 0xc
1401 NLM_F_ECHO = 0x8 1401 NETLINK_NFLOG = 0x5
1402 NLM_F_EXCL = 0x200 1402 NETLINK_NO_ENOBUFS = 0x5
1403 NLM_F_MATCH = 0x200 1403 NETLINK_PKTINFO = 0x3
1404 NLM_F_MULTI = 0x2 1404 NETLINK_RDMA = 0x14
1405 NLM_F_NONREC = 0x100 1405 NETLINK_ROUTE = 0x0
1406 NLM_F_REPLACE = 0x100 1406 NETLINK_RX_RING = 0x6
1407 NLM_F_REQUEST = 0x1 1407 NETLINK_SCSITRANSPORT = 0x12
1408 NLM_F_ROOT = 0x100 1408 NETLINK_SELINUX = 0x7
1409 NOFLSH = 0x80 1409 NETLINK_SMC = 0x16
1410 NSFS_MAGIC = 0x6e736673 1410 NETLINK_SOCK_DIAG = 0x4
1411 NS_GET_NSTYPE = 0xb703 1411 NETLINK_TX_RING = 0x7
1412 NS_GET_OWNER_UID = 0xb704 1412 NETLINK_UNUSED = 0x1
1413 NS_GET_PARENT = 0xb702 1413 NETLINK_USERSOCK = 0x2
1414 NS_GET_USERNS = 0xb701 1414 NETLINK_XFRM = 0x6
1415 OCFS2_SUPER_MAGIC = 0x7461636f 1415 NETNSA_MAX = 0x5
1416 OCRNL = 0x8 1416 NETNSA_NSID_NOT_ASSIGNED = -0x1
1417 OFDEL = 0x80 1417 NFDBITS = 0x40
1418 OFILL = 0x40 1418 NFNETLINK_V0 = 0x0
1419 OLCUC = 0x2 1419 NFNLGRP_ACCT_QUOTA = 0x8
1420 ONLCR = 0x4 1420 NFNLGRP_CONNTRACK_DESTROY = 0x3
1421 ONLRET = 0x20 1421 NFNLGRP_CONNTRACK_EXP_DESTROY = 0x6
1422 ONOCR = 0x10 1422 NFNLGRP_CONNTRACK_EXP_NEW = 0x4
1423 OPENPROM_SUPER_MAGIC = 0x9fa1 1423 NFNLGRP_CONNTRACK_EXP_UPDATE = 0x5
1424 OPOST = 0x1 1424 NFNLGRP_CONNTRACK_NEW = 0x1
1425 OVERLAYFS_SUPER_MAGIC = 0x794c7630 1425 NFNLGRP_CONNTRACK_UPDATE = 0x2
1426 O_ACCMODE = 0x3 1426 NFNLGRP_MAX = 0x9
1427 O_APPEND = 0x400 1427 NFNLGRP_NFTABLES = 0x7
1428 O_ASYNC = 0x2000 1428 NFNLGRP_NFTRACE = 0x9
1429 O_CLOEXEC = 0x80000 1429 NFNLGRP_NONE = 0x0
1430 O_CREAT = 0x40 1430 NFNL_BATCH_MAX = 0x1
1431 O_DIRECT = 0x4000 1431 NFNL_MSG_BATCH_BEGIN = 0x10
1432 O_DIRECTORY = 0x10000 1432 NFNL_MSG_BATCH_END = 0x11
1433 O_DSYNC = 0x1000 1433 NFNL_NFA_NEST = 0x8000
1434 O_EXCL = 0x80 1434 NFNL_SUBSYS_ACCT = 0x7
1435 O_FSYNC = 0x101000 1435 NFNL_SUBSYS_COUNT = 0xc
1436 O_LARGEFILE = 0x0 1436 NFNL_SUBSYS_CTHELPER = 0x9
1437 O_NDELAY = 0x800 1437 NFNL_SUBSYS_CTNETLINK = 0x1
1438 O_NOATIME = 0x40000 1438 NFNL_SUBSYS_CTNETLINK_EXP = 0x2
1439 O_NOCTTY = 0x100 1439 NFNL_SUBSYS_CTNETLINK_TIMEOUT = 0x8
1440 O_NOFOLLOW = 0x20000 1440 NFNL_SUBSYS_IPSET = 0x6
1441 O_NONBLOCK = 0x800 1441 NFNL_SUBSYS_NFTABLES = 0xa
1442 O_PATH = 0x200000 1442 NFNL_SUBSYS_NFT_COMPAT = 0xb
1443 O_RDONLY = 0x0 1443 NFNL_SUBSYS_NONE = 0x0
1444 O_RDWR = 0x2 1444 NFNL_SUBSYS_OSF = 0x5
1445 O_RSYNC = 0x101000 1445 NFNL_SUBSYS_QUEUE = 0x3
1446 O_SYNC = 0x101000 1446 NFNL_SUBSYS_ULOG = 0x4
1447 O_TMPFILE = 0x410000 1447 NFS_SUPER_MAGIC = 0x6969
1448 O_TRUNC = 0x200 1448 NILFS_SUPER_MAGIC = 0x3434
1449 O_WRONLY = 0x1 1449 NL0 = 0x0
1450 PACKET_ADD_MEMBERSHIP = 0x1 1450 NL1 = 0x100
1451 PACKET_AUXDATA = 0x8 1451 NLA_ALIGNTO = 0x4
1452 PACKET_BROADCAST = 0x1 1452 NLA_F_NESTED = 0x8000
1453 PACKET_COPY_THRESH = 0x7 1453 NLA_F_NET_BYTEORDER = 0x4000
1454 PACKET_DROP_MEMBERSHIP = 0x2 1454 NLA_HDRLEN = 0x4
1455 PACKET_FANOUT = 0x12 1455 NLDLY = 0x100
1456 PACKET_FANOUT_CBPF = 0x6 1456 NLMSG_ALIGNTO = 0x4
1457 PACKET_FANOUT_CPU = 0x2 1457 NLMSG_DONE = 0x3
1458 PACKET_FANOUT_DATA = 0x16 1458 NLMSG_ERROR = 0x2
1459 PACKET_FANOUT_EBPF = 0x7 1459 NLMSG_HDRLEN = 0x10
1460 PACKET_FANOUT_FLAG_DEFRAG = 0x8000 1460 NLMSG_MIN_TYPE = 0x10
1461 PACKET_FANOUT_FLAG_ROLLOVER = 0x1000 1461 NLMSG_NOOP = 0x1
1462 PACKET_FANOUT_FLAG_UNIQUEID = 0x2000 1462 NLMSG_OVERRUN = 0x4
1463 PACKET_FANOUT_HASH = 0x0 1463 NLM_F_ACK = 0x4
1464 PACKET_FANOUT_LB = 0x1 1464 NLM_F_ACK_TLVS = 0x200
1465 PACKET_FANOUT_QM = 0x5 1465 NLM_F_APPEND = 0x800
1466 PACKET_FANOUT_RND = 0x4 1466 NLM_F_ATOMIC = 0x400
1467 PACKET_FANOUT_ROLLOVER = 0x3 1467 NLM_F_CAPPED = 0x100
1468 PACKET_FASTROUTE = 0x6 1468 NLM_F_CREATE = 0x400
1469 PACKET_HDRLEN = 0xb 1469 NLM_F_DUMP = 0x300
1470 PACKET_HOST = 0x0 1470 NLM_F_DUMP_FILTERED = 0x20
1471 PACKET_IGNORE_OUTGOING = 0x17 1471 NLM_F_DUMP_INTR = 0x10
1472 PACKET_KERNEL = 0x7 1472 NLM_F_ECHO = 0x8
1473 PACKET_LOOPBACK = 0x5 1473 NLM_F_EXCL = 0x200
1474 PACKET_LOSS = 0xe 1474 NLM_F_MATCH = 0x200
1475 PACKET_MR_ALLMULTI = 0x2 1475 NLM_F_MULTI = 0x2
1476 PACKET_MR_MULTICAST = 0x0 1476 NLM_F_NONREC = 0x100
1477 PACKET_MR_PROMISC = 0x1 1477 NLM_F_REPLACE = 0x100
1478 PACKET_MR_UNICAST = 0x3 1478 NLM_F_REQUEST = 0x1
1479 PACKET_MULTICAST = 0x2 1479 NLM_F_ROOT = 0x100
1480 PACKET_ORIGDEV = 0x9 1480 NOFLSH = 0x80
1481 PACKET_OTHERHOST = 0x3 1481 NSFS_MAGIC = 0x6e736673
1482 PACKET_OUTGOING = 0x4 1482 NS_GET_NSTYPE = 0xb703
1483 PACKET_QDISC_BYPASS = 0x14 1483 NS_GET_OWNER_UID = 0xb704
1484 PACKET_RECV_OUTPUT = 0x3 1484 NS_GET_PARENT = 0xb702
1485 PACKET_RESERVE = 0xc 1485 NS_GET_USERNS = 0xb701
1486 PACKET_ROLLOVER_STATS = 0x15 1486 OCFS2_SUPER_MAGIC = 0x7461636f
1487 PACKET_RX_RING = 0x5 1487 OCRNL = 0x8
1488 PACKET_STATISTICS = 0x6 1488 OFDEL = 0x80
1489 PACKET_TIMESTAMP = 0x11 1489 OFILL = 0x40
1490 PACKET_TX_HAS_OFF = 0x13 1490 OLCUC = 0x2
1491 PACKET_TX_RING = 0xd 1491 ONLCR = 0x4
1492 PACKET_TX_TIMESTAMP = 0x10 1492 ONLRET = 0x20
1493 PACKET_USER = 0x6 1493 ONOCR = 0x10
1494 PACKET_VERSION = 0xa 1494 OPENPROM_SUPER_MAGIC = 0x9fa1
1495 PACKET_VNET_HDR = 0xf 1495 OPOST = 0x1
1496 PARENB = 0x100 1496 OVERLAYFS_SUPER_MAGIC = 0x794c7630
1497 PARITY_CRC16_PR0 = 0x2 1497 O_ACCMODE = 0x3
1498 PARITY_CRC16_PR0_CCITT = 0x4 1498 O_APPEND = 0x400
1499 PARITY_CRC16_PR1 = 0x3 1499 O_ASYNC = 0x2000
1500 PARITY_CRC16_PR1_CCITT = 0x5 1500 O_CLOEXEC = 0x80000
1501 PARITY_CRC32_PR0_CCITT = 0x6 1501 O_CREAT = 0x40
1502 PARITY_CRC32_PR1_CCITT = 0x7 1502 O_DIRECT = 0x4000
1503 PARITY_DEFAULT = 0x0 1503 O_DIRECTORY = 0x10000
1504 PARITY_NONE = 0x1 1504 O_DSYNC = 0x1000
1505 PARMRK = 0x8 1505 O_EXCL = 0x80
1506 PARODD = 0x200 1506 O_FSYNC = 0x101000
1507 PENDIN = 0x4000 1507 O_LARGEFILE = 0x0
1508 PERF_EVENT_IOC_DISABLE = 0x2401 1508 O_NDELAY = 0x800
1509 PERF_EVENT_IOC_ENABLE = 0x2400 1509 O_NOATIME = 0x40000
1510 PERF_EVENT_IOC_ID = 0x80082407 1510 O_NOCTTY = 0x100
1511 PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x4008240b 1511 O_NOFOLLOW = 0x20000
1512 PERF_EVENT_IOC_PAUSE_OUTPUT = 0x40042409 1512 O_NONBLOCK = 0x800
1513 PERF_EVENT_IOC_PERIOD = 0x40082404 1513 O_PATH = 0x200000
1514 PERF_EVENT_IOC_QUERY_BPF = 0xc008240a 1514 O_RDONLY = 0x0
1515 PERF_EVENT_IOC_REFRESH = 0x2402 1515 O_RDWR = 0x2
1516 PERF_EVENT_IOC_RESET = 0x2403 1516 O_RSYNC = 0x101000
1517 PERF_EVENT_IOC_SET_BPF = 0x40042408 1517 O_SYNC = 0x101000
1518 PERF_EVENT_IOC_SET_FILTER = 0x40082406 1518 O_TMPFILE = 0x410000
1519 PERF_EVENT_IOC_SET_OUTPUT = 0x2405 1519 O_TRUNC = 0x200
1520 PIPEFS_MAGIC = 0x50495045 1520 O_WRONLY = 0x1
1521 PPPIOCATTACH = 0x4004743d 1521 PACKET_ADD_MEMBERSHIP = 0x1
1522 PPPIOCATTCHAN = 0x40047438 1522 PACKET_AUXDATA = 0x8
1523 PPPIOCCONNECT = 0x4004743a 1523 PACKET_BROADCAST = 0x1
1524 PPPIOCDETACH = 0x4004743c 1524 PACKET_COPY_THRESH = 0x7
1525 PPPIOCDISCONN = 0x7439 1525 PACKET_DROP_MEMBERSHIP = 0x2
1526 PPPIOCGASYNCMAP = 0x80047458 1526 PACKET_FANOUT = 0x12
1527 PPPIOCGCHAN = 0x80047437 1527 PACKET_FANOUT_CBPF = 0x6
1528 PPPIOCGDEBUG = 0x80047441 1528 PACKET_FANOUT_CPU = 0x2
1529 PPPIOCGFLAGS = 0x8004745a 1529 PACKET_FANOUT_DATA = 0x16
1530 PPPIOCGIDLE = 0x8010743f 1530 PACKET_FANOUT_EBPF = 0x7
1531 PPPIOCGL2TPSTATS = 0x80487436 1531 PACKET_FANOUT_FLAG_DEFRAG = 0x8000
1532 PPPIOCGMRU = 0x80047453 1532 PACKET_FANOUT_FLAG_ROLLOVER = 0x1000
1533 PPPIOCGNPMODE = 0xc008744c 1533 PACKET_FANOUT_FLAG_UNIQUEID = 0x2000
1534 PPPIOCGRASYNCMAP = 0x80047455 1534 PACKET_FANOUT_HASH = 0x0
1535 PPPIOCGUNIT = 0x80047456 1535 PACKET_FANOUT_LB = 0x1
1536 PPPIOCGXASYNCMAP = 0x80207450 1536 PACKET_FANOUT_QM = 0x5
1537 PPPIOCNEWUNIT = 0xc004743e 1537 PACKET_FANOUT_RND = 0x4
1538 PPPIOCSACTIVE = 0x40107446 1538 PACKET_FANOUT_ROLLOVER = 0x3
1539 PPPIOCSASYNCMAP = 0x40047457 1539 PACKET_FASTROUTE = 0x6
1540 PPPIOCSCOMPRESS = 0x4010744d 1540 PACKET_HDRLEN = 0xb
1541 PPPIOCSDEBUG = 0x40047440 1541 PACKET_HOST = 0x0
1542 PPPIOCSFLAGS = 0x40047459 1542 PACKET_IGNORE_OUTGOING = 0x17
1543 PPPIOCSMAXCID = 0x40047451 1543 PACKET_KERNEL = 0x7
1544 PPPIOCSMRRU = 0x4004743b 1544 PACKET_LOOPBACK = 0x5
1545 PPPIOCSMRU = 0x40047452 1545 PACKET_LOSS = 0xe
1546 PPPIOCSNPMODE = 0x4008744b 1546 PACKET_MR_ALLMULTI = 0x2
1547 PPPIOCSPASS = 0x40107447 1547 PACKET_MR_MULTICAST = 0x0
1548 PPPIOCSRASYNCMAP = 0x40047454 1548 PACKET_MR_PROMISC = 0x1
1549 PPPIOCSXASYNCMAP = 0x4020744f 1549 PACKET_MR_UNICAST = 0x3
1550 PPPIOCXFERUNIT = 0x744e 1550 PACKET_MULTICAST = 0x2
1551 PRIO_PGRP = 0x1 1551 PACKET_ORIGDEV = 0x9
1552 PRIO_PROCESS = 0x0 1552 PACKET_OTHERHOST = 0x3
1553 PRIO_USER = 0x2 1553 PACKET_OUTGOING = 0x4
1554 PROC_SUPER_MAGIC = 0x9fa0 1554 PACKET_QDISC_BYPASS = 0x14
1555 PROT_EXEC = 0x4 1555 PACKET_RECV_OUTPUT = 0x3
1556 PROT_GROWSDOWN = 0x1000000 1556 PACKET_RESERVE = 0xc
1557 PROT_GROWSUP = 0x2000000 1557 PACKET_ROLLOVER_STATS = 0x15
1558 PROT_NONE = 0x0 1558 PACKET_RX_RING = 0x5
1559 PROT_READ = 0x1 1559 PACKET_STATISTICS = 0x6
1560 PROT_WRITE = 0x2 1560 PACKET_TIMESTAMP = 0x11
1561 PR_CAPBSET_DROP = 0x18 1561 PACKET_TX_HAS_OFF = 0x13
1562 PR_CAPBSET_READ = 0x17 1562 PACKET_TX_RING = 0xd
1563 PR_CAP_AMBIENT = 0x2f 1563 PACKET_TX_TIMESTAMP = 0x10
1564 PR_CAP_AMBIENT_CLEAR_ALL = 0x4 1564 PACKET_USER = 0x6
1565 PR_CAP_AMBIENT_IS_SET = 0x1 1565 PACKET_VERSION = 0xa
1566 PR_CAP_AMBIENT_LOWER = 0x3 1566 PACKET_VNET_HDR = 0xf
1567 PR_CAP_AMBIENT_RAISE = 0x2 1567 PARENB = 0x100
1568 PR_ENDIAN_BIG = 0x0 1568 PARITY_CRC16_PR0 = 0x2
1569 PR_ENDIAN_LITTLE = 0x1 1569 PARITY_CRC16_PR0_CCITT = 0x4
1570 PR_ENDIAN_PPC_LITTLE = 0x2 1570 PARITY_CRC16_PR1 = 0x3
1571 PR_FPEMU_NOPRINT = 0x1 1571 PARITY_CRC16_PR1_CCITT = 0x5
1572 PR_FPEMU_SIGFPE = 0x2 1572 PARITY_CRC32_PR0_CCITT = 0x6
1573 PR_FP_EXC_ASYNC = 0x2 1573 PARITY_CRC32_PR1_CCITT = 0x7
1574 PR_FP_EXC_DISABLED = 0x0 1574 PARITY_DEFAULT = 0x0
1575 PR_FP_EXC_DIV = 0x10000 1575 PARITY_NONE = 0x1
1576 PR_FP_EXC_INV = 0x100000 1576 PARMRK = 0x8
1577 PR_FP_EXC_NONRECOV = 0x1 1577 PARODD = 0x200
1578 PR_FP_EXC_OVF = 0x20000 1578 PENDIN = 0x4000
1579 PR_FP_EXC_PRECISE = 0x3 1579 PERF_EVENT_IOC_DISABLE = 0x2401
1580 PR_FP_EXC_RES = 0x80000 1580 PERF_EVENT_IOC_ENABLE = 0x2400
1581 PR_FP_EXC_SW_ENABLE = 0x80 1581 PERF_EVENT_IOC_ID = 0x80082407
1582 PR_FP_EXC_UND = 0x40000 1582 PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x4008240b
1583 PR_FP_MODE_FR = 0x1 1583 PERF_EVENT_IOC_PAUSE_OUTPUT = 0x40042409
1584 PR_FP_MODE_FRE = 0x2 1584 PERF_EVENT_IOC_PERIOD = 0x40082404
1585 PR_GET_CHILD_SUBREAPER = 0x25 1585 PERF_EVENT_IOC_QUERY_BPF = 0xc008240a
1586 PR_GET_DUMPABLE = 0x3 1586 PERF_EVENT_IOC_REFRESH = 0x2402
1587 PR_GET_ENDIAN = 0x13 1587 PERF_EVENT_IOC_RESET = 0x2403
1588 PR_GET_FPEMU = 0x9 1588 PERF_EVENT_IOC_SET_BPF = 0x40042408
1589 PR_GET_FPEXC = 0xb 1589 PERF_EVENT_IOC_SET_FILTER = 0x40082406
1590 PR_GET_FP_MODE = 0x2e 1590 PERF_EVENT_IOC_SET_OUTPUT = 0x2405
1591 PR_GET_KEEPCAPS = 0x7 1591 PIPEFS_MAGIC = 0x50495045
1592 PR_GET_NAME = 0x10 1592 PPC_CMM_MAGIC = 0xc7571590
1593 PR_GET_NO_NEW_PRIVS = 0x27 1593 PPPIOCATTACH = 0x4004743d
1594 PR_GET_PDEATHSIG = 0x2 1594 PPPIOCATTCHAN = 0x40047438
1595 PR_GET_SECCOMP = 0x15 1595 PPPIOCCONNECT = 0x4004743a
1596 PR_GET_SECUREBITS = 0x1b 1596 PPPIOCDETACH = 0x4004743c
1597 PR_GET_SPECULATION_CTRL = 0x34 1597 PPPIOCDISCONN = 0x7439
1598 PR_GET_THP_DISABLE = 0x2a 1598 PPPIOCGASYNCMAP = 0x80047458
1599 PR_GET_TID_ADDRESS = 0x28 1599 PPPIOCGCHAN = 0x80047437
1600 PR_GET_TIMERSLACK = 0x1e 1600 PPPIOCGDEBUG = 0x80047441
1601 PR_GET_TIMING = 0xd 1601 PPPIOCGFLAGS = 0x8004745a
1602 PR_GET_TSC = 0x19 1602 PPPIOCGIDLE = 0x8010743f
1603 PR_GET_UNALIGN = 0x5 1603 PPPIOCGIDLE32 = 0x8008743f
1604 PR_MCE_KILL = 0x21 1604 PPPIOCGIDLE64 = 0x8010743f
1605 PR_MCE_KILL_CLEAR = 0x0 1605 PPPIOCGL2TPSTATS = 0x80487436
1606 PR_MCE_KILL_DEFAULT = 0x2 1606 PPPIOCGMRU = 0x80047453
1607 PR_MCE_KILL_EARLY = 0x1 1607 PPPIOCGNPMODE = 0xc008744c
1608 PR_MCE_KILL_GET = 0x22 1608 PPPIOCGRASYNCMAP = 0x80047455
1609 PR_MCE_KILL_LATE = 0x0 1609 PPPIOCGUNIT = 0x80047456
1610 PR_MCE_KILL_SET = 0x1 1610 PPPIOCGXASYNCMAP = 0x80207450
1611 PR_MPX_DISABLE_MANAGEMENT = 0x2c 1611 PPPIOCNEWUNIT = 0xc004743e
1612 PR_MPX_ENABLE_MANAGEMENT = 0x2b 1612 PPPIOCSACTIVE = 0x40107446
1613 PR_PAC_APDAKEY = 0x4 1613 PPPIOCSASYNCMAP = 0x40047457
1614 PR_PAC_APDBKEY = 0x8 1614 PPPIOCSCOMPRESS = 0x4010744d
1615 PR_PAC_APGAKEY = 0x10 1615 PPPIOCSDEBUG = 0x40047440
1616 PR_PAC_APIAKEY = 0x1 1616 PPPIOCSFLAGS = 0x40047459
1617 PR_PAC_APIBKEY = 0x2 1617 PPPIOCSMAXCID = 0x40047451
1618 PR_PAC_RESET_KEYS = 0x36 1618 PPPIOCSMRRU = 0x4004743b
1619 PR_SET_CHILD_SUBREAPER = 0x24 1619 PPPIOCSMRU = 0x40047452
1620 PR_SET_DUMPABLE = 0x4 1620 PPPIOCSNPMODE = 0x4008744b
1621 PR_SET_ENDIAN = 0x14 1621 PPPIOCSPASS = 0x40107447
1622 PR_SET_FPEMU = 0xa 1622 PPPIOCSRASYNCMAP = 0x40047454
1623 PR_SET_FPEXC = 0xc 1623 PPPIOCSXASYNCMAP = 0x4020744f
1624 PR_SET_FP_MODE = 0x2d 1624 PPPIOCXFERUNIT = 0x744e
1625 PR_SET_KEEPCAPS = 0x8 1625 PRIO_PGRP = 0x1
1626 PR_SET_MM = 0x23 1626 PRIO_PROCESS = 0x0
1627 PR_SET_MM_ARG_END = 0x9 1627 PRIO_USER = 0x2
1628 PR_SET_MM_ARG_START = 0x8 1628 PROC_SUPER_MAGIC = 0x9fa0
1629 PR_SET_MM_AUXV = 0xc 1629 PROT_EXEC = 0x4
1630 PR_SET_MM_BRK = 0x7 1630 PROT_GROWSDOWN = 0x1000000
1631 PR_SET_MM_END_CODE = 0x2 1631 PROT_GROWSUP = 0x2000000
1632 PR_SET_MM_END_DATA = 0x4 1632 PROT_NONE = 0x0
1633 PR_SET_MM_ENV_END = 0xb 1633 PROT_READ = 0x1
1634 PR_SET_MM_ENV_START = 0xa 1634 PROT_WRITE = 0x2
1635 PR_SET_MM_EXE_FILE = 0xd 1635 PR_CAPBSET_DROP = 0x18
1636 PR_SET_MM_MAP = 0xe 1636 PR_CAPBSET_READ = 0x17
1637 PR_SET_MM_MAP_SIZE = 0xf 1637 PR_CAP_AMBIENT = 0x2f
1638 PR_SET_MM_START_BRK = 0x6 1638 PR_CAP_AMBIENT_CLEAR_ALL = 0x4
1639 PR_SET_MM_START_CODE = 0x1 1639 PR_CAP_AMBIENT_IS_SET = 0x1
1640 PR_SET_MM_START_DATA = 0x3 1640 PR_CAP_AMBIENT_LOWER = 0x3
1641 PR_SET_MM_START_STACK = 0x5 1641 PR_CAP_AMBIENT_RAISE = 0x2
1642 PR_SET_NAME = 0xf 1642 PR_ENDIAN_BIG = 0x0
1643 PR_SET_NO_NEW_PRIVS = 0x26 1643 PR_ENDIAN_LITTLE = 0x1
1644 PR_SET_PDEATHSIG = 0x1 1644 PR_ENDIAN_PPC_LITTLE = 0x2
1645 PR_SET_PTRACER = 0x59616d61 1645 PR_FPEMU_NOPRINT = 0x1
1646 PR_SET_PTRACER_ANY = 0xffffffffffffffff 1646 PR_FPEMU_SIGFPE = 0x2
1647 PR_SET_SECCOMP = 0x16 1647 PR_FP_EXC_ASYNC = 0x2
1648 PR_SET_SECUREBITS = 0x1c 1648 PR_FP_EXC_DISABLED = 0x0
1649 PR_SET_SPECULATION_CTRL = 0x35 1649 PR_FP_EXC_DIV = 0x10000
1650 PR_SET_THP_DISABLE = 0x29 1650 PR_FP_EXC_INV = 0x100000
1651 PR_SET_TIMERSLACK = 0x1d 1651 PR_FP_EXC_NONRECOV = 0x1
1652 PR_SET_TIMING = 0xe 1652 PR_FP_EXC_OVF = 0x20000
1653 PR_SET_TSC = 0x1a 1653 PR_FP_EXC_PRECISE = 0x3
1654 PR_SET_UNALIGN = 0x6 1654 PR_FP_EXC_RES = 0x80000
1655 PR_SPEC_DISABLE = 0x4 1655 PR_FP_EXC_SW_ENABLE = 0x80
1656 PR_SPEC_DISABLE_NOEXEC = 0x10 1656 PR_FP_EXC_UND = 0x40000
1657 PR_SPEC_ENABLE = 0x2 1657 PR_FP_MODE_FR = 0x1
1658 PR_SPEC_FORCE_DISABLE = 0x8 1658 PR_FP_MODE_FRE = 0x2
1659 PR_SPEC_INDIRECT_BRANCH = 0x1 1659 PR_GET_CHILD_SUBREAPER = 0x25
1660 PR_SPEC_NOT_AFFECTED = 0x0 1660 PR_GET_DUMPABLE = 0x3
1661 PR_SPEC_PRCTL = 0x1 1661 PR_GET_ENDIAN = 0x13
1662 PR_SPEC_STORE_BYPASS = 0x0 1662 PR_GET_FPEMU = 0x9
1663 PR_SVE_GET_VL = 0x33 1663 PR_GET_FPEXC = 0xb
1664 PR_SVE_SET_VL = 0x32 1664 PR_GET_FP_MODE = 0x2e
1665 PR_SVE_SET_VL_ONEXEC = 0x40000 1665 PR_GET_KEEPCAPS = 0x7
1666 PR_SVE_VL_INHERIT = 0x20000 1666 PR_GET_NAME = 0x10
1667 PR_SVE_VL_LEN_MASK = 0xffff 1667 PR_GET_NO_NEW_PRIVS = 0x27
1668 PR_TASK_PERF_EVENTS_DISABLE = 0x1f 1668 PR_GET_PDEATHSIG = 0x2
1669 PR_TASK_PERF_EVENTS_ENABLE = 0x20 1669 PR_GET_SECCOMP = 0x15
1670 PR_TIMING_STATISTICAL = 0x0 1670 PR_GET_SECUREBITS = 0x1b
1671 PR_TIMING_TIMESTAMP = 0x1 1671 PR_GET_SPECULATION_CTRL = 0x34
1672 PR_TSC_ENABLE = 0x1 1672 PR_GET_TAGGED_ADDR_CTRL = 0x38
1673 PR_TSC_SIGSEGV = 0x2 1673 PR_GET_THP_DISABLE = 0x2a
1674 PR_UNALIGN_NOPRINT = 0x1 1674 PR_GET_TID_ADDRESS = 0x28
1675 PR_UNALIGN_SIGBUS = 0x2 1675 PR_GET_TIMERSLACK = 0x1e
1676 PSTOREFS_MAGIC = 0x6165676c 1676 PR_GET_TIMING = 0xd
1677 PTRACE_ARCH_PRCTL = 0x1e 1677 PR_GET_TSC = 0x19
1678 PTRACE_ATTACH = 0x10 1678 PR_GET_UNALIGN = 0x5
1679 PTRACE_CONT = 0x7 1679 PR_MCE_KILL = 0x21
1680 PTRACE_DETACH = 0x11 1680 PR_MCE_KILL_CLEAR = 0x0
1681 PTRACE_EVENT_CLONE = 0x3 1681 PR_MCE_KILL_DEFAULT = 0x2
1682 PTRACE_EVENT_EXEC = 0x4 1682 PR_MCE_KILL_EARLY = 0x1
1683 PTRACE_EVENT_EXIT = 0x6 1683 PR_MCE_KILL_GET = 0x22
1684 PTRACE_EVENT_FORK = 0x1 1684 PR_MCE_KILL_LATE = 0x0
1685 PTRACE_EVENT_SECCOMP = 0x7 1685 PR_MCE_KILL_SET = 0x1
1686 PTRACE_EVENT_STOP = 0x80 1686 PR_MPX_DISABLE_MANAGEMENT = 0x2c
1687 PTRACE_EVENT_VFORK = 0x2 1687 PR_MPX_ENABLE_MANAGEMENT = 0x2b
1688 PTRACE_EVENT_VFORK_DONE = 0x5 1688 PR_PAC_APDAKEY = 0x4
1689 PTRACE_GETEVENTMSG = 0x4201 1689 PR_PAC_APDBKEY = 0x8
1690 PTRACE_GETFPREGS = 0xe 1690 PR_PAC_APGAKEY = 0x10
1691 PTRACE_GETFPXREGS = 0x12 1691 PR_PAC_APIAKEY = 0x1
1692 PTRACE_GETREGS = 0xc 1692 PR_PAC_APIBKEY = 0x2
1693 PTRACE_GETREGSET = 0x4204 1693 PR_PAC_RESET_KEYS = 0x36
1694 PTRACE_GETSIGINFO = 0x4202 1694 PR_SET_CHILD_SUBREAPER = 0x24
1695 PTRACE_GETSIGMASK = 0x420a 1695 PR_SET_DUMPABLE = 0x4
1696 PTRACE_GET_THREAD_AREA = 0x19 1696 PR_SET_ENDIAN = 0x14
1697 PTRACE_INTERRUPT = 0x4207 1697 PR_SET_FPEMU = 0xa
1698 PTRACE_KILL = 0x8 1698 PR_SET_FPEXC = 0xc
1699 PTRACE_LISTEN = 0x4208 1699 PR_SET_FP_MODE = 0x2d
1700 PTRACE_OLDSETOPTIONS = 0x15 1700 PR_SET_KEEPCAPS = 0x8
1701 PTRACE_O_EXITKILL = 0x100000 1701 PR_SET_MM = 0x23
1702 PTRACE_O_MASK = 0x3000ff 1702 PR_SET_MM_ARG_END = 0x9
1703 PTRACE_O_SUSPEND_SECCOMP = 0x200000 1703 PR_SET_MM_ARG_START = 0x8
1704 PTRACE_O_TRACECLONE = 0x8 1704 PR_SET_MM_AUXV = 0xc
1705 PTRACE_O_TRACEEXEC = 0x10 1705 PR_SET_MM_BRK = 0x7
1706 PTRACE_O_TRACEEXIT = 0x40 1706 PR_SET_MM_END_CODE = 0x2
1707 PTRACE_O_TRACEFORK = 0x2 1707 PR_SET_MM_END_DATA = 0x4
1708 PTRACE_O_TRACESECCOMP = 0x80 1708 PR_SET_MM_ENV_END = 0xb
1709 PTRACE_O_TRACESYSGOOD = 0x1 1709 PR_SET_MM_ENV_START = 0xa
1710 PTRACE_O_TRACEVFORK = 0x4 1710 PR_SET_MM_EXE_FILE = 0xd
1711 PTRACE_O_TRACEVFORKDONE = 0x20 1711 PR_SET_MM_MAP = 0xe
1712 PTRACE_PEEKDATA = 0x2 1712 PR_SET_MM_MAP_SIZE = 0xf
1713 PTRACE_PEEKSIGINFO = 0x4209 1713 PR_SET_MM_START_BRK = 0x6
1714 PTRACE_PEEKSIGINFO_SHARED = 0x1 1714 PR_SET_MM_START_CODE = 0x1
1715 PTRACE_PEEKTEXT = 0x1 1715 PR_SET_MM_START_DATA = 0x3
1716 PTRACE_PEEKUSR = 0x3 1716 PR_SET_MM_START_STACK = 0x5
1717 PTRACE_POKEDATA = 0x5 1717 PR_SET_NAME = 0xf
1718 PTRACE_POKETEXT = 0x4 1718 PR_SET_NO_NEW_PRIVS = 0x26
1719 PTRACE_POKEUSR = 0x6 1719 PR_SET_PDEATHSIG = 0x1
1720 PTRACE_SECCOMP_GET_FILTER = 0x420c 1720 PR_SET_PTRACER = 0x59616d61
1721 PTRACE_SECCOMP_GET_METADATA = 0x420d 1721 PR_SET_PTRACER_ANY = 0xffffffffffffffff
1722 PTRACE_SEIZE = 0x4206 1722 PR_SET_SECCOMP = 0x16
1723 PTRACE_SETFPREGS = 0xf 1723 PR_SET_SECUREBITS = 0x1c
1724 PTRACE_SETFPXREGS = 0x13 1724 PR_SET_SPECULATION_CTRL = 0x35
1725 PTRACE_SETOPTIONS = 0x4200 1725 PR_SET_TAGGED_ADDR_CTRL = 0x37
1726 PTRACE_SETREGS = 0xd 1726 PR_SET_THP_DISABLE = 0x29
1727 PTRACE_SETREGSET = 0x4205 1727 PR_SET_TIMERSLACK = 0x1d
1728 PTRACE_SETSIGINFO = 0x4203 1728 PR_SET_TIMING = 0xe
1729 PTRACE_SETSIGMASK = 0x420b 1729 PR_SET_TSC = 0x1a
1730 PTRACE_SET_THREAD_AREA = 0x1a 1730 PR_SET_UNALIGN = 0x6
1731 PTRACE_SINGLEBLOCK = 0x21 1731 PR_SPEC_DISABLE = 0x4
1732 PTRACE_SINGLESTEP = 0x9 1732 PR_SPEC_DISABLE_NOEXEC = 0x10
1733 PTRACE_SYSCALL = 0x18 1733 PR_SPEC_ENABLE = 0x2
1734 PTRACE_SYSEMU = 0x1f 1734 PR_SPEC_FORCE_DISABLE = 0x8
1735 PTRACE_SYSEMU_SINGLESTEP = 0x20 1735 PR_SPEC_INDIRECT_BRANCH = 0x1
1736 PTRACE_TRACEME = 0x0 1736 PR_SPEC_NOT_AFFECTED = 0x0
1737 QNX4_SUPER_MAGIC = 0x2f 1737 PR_SPEC_PRCTL = 0x1
1738 QNX6_SUPER_MAGIC = 0x68191122 1738 PR_SPEC_STORE_BYPASS = 0x0
1739 RAMFS_MAGIC = 0x858458f6 1739 PR_SVE_GET_VL = 0x33
1740 RDTGROUP_SUPER_MAGIC = 0x7655821 1740 PR_SVE_SET_VL = 0x32
1741 REISERFS_SUPER_MAGIC = 0x52654973 1741 PR_SVE_SET_VL_ONEXEC = 0x40000
1742 RENAME_EXCHANGE = 0x2 1742 PR_SVE_VL_INHERIT = 0x20000
1743 RENAME_NOREPLACE = 0x1 1743 PR_SVE_VL_LEN_MASK = 0xffff
1744 RENAME_WHITEOUT = 0x4 1744 PR_TAGGED_ADDR_ENABLE = 0x1
1745 RLIMIT_AS = 0x9 1745 PR_TASK_PERF_EVENTS_DISABLE = 0x1f
1746 RLIMIT_CORE = 0x4 1746 PR_TASK_PERF_EVENTS_ENABLE = 0x20
1747 RLIMIT_CPU = 0x0 1747 PR_TIMING_STATISTICAL = 0x0
1748 RLIMIT_DATA = 0x2 1748 PR_TIMING_TIMESTAMP = 0x1
1749 RLIMIT_FSIZE = 0x1 1749 PR_TSC_ENABLE = 0x1
1750 RLIMIT_LOCKS = 0xa 1750 PR_TSC_SIGSEGV = 0x2
1751 RLIMIT_MEMLOCK = 0x8 1751 PR_UNALIGN_NOPRINT = 0x1
1752 RLIMIT_MSGQUEUE = 0xc 1752 PR_UNALIGN_SIGBUS = 0x2
1753 RLIMIT_NICE = 0xd 1753 PSTOREFS_MAGIC = 0x6165676c
1754 RLIMIT_NOFILE = 0x7 1754 PTRACE_ARCH_PRCTL = 0x1e
1755 RLIMIT_NPROC = 0x6 1755 PTRACE_ATTACH = 0x10
1756 RLIMIT_RSS = 0x5 1756 PTRACE_CONT = 0x7
1757 RLIMIT_RTPRIO = 0xe 1757 PTRACE_DETACH = 0x11
1758 RLIMIT_RTTIME = 0xf 1758 PTRACE_EVENTMSG_SYSCALL_ENTRY = 0x1
1759 RLIMIT_SIGPENDING = 0xb 1759 PTRACE_EVENTMSG_SYSCALL_EXIT = 0x2
1760 RLIMIT_STACK = 0x3 1760 PTRACE_EVENT_CLONE = 0x3
1761 RLIM_INFINITY = 0xffffffffffffffff 1761 PTRACE_EVENT_EXEC = 0x4
1762 RNDADDENTROPY = 0x40085203 1762 PTRACE_EVENT_EXIT = 0x6
1763 RNDADDTOENTCNT = 0x40045201 1763 PTRACE_EVENT_FORK = 0x1
1764 RNDCLEARPOOL = 0x5206 1764 PTRACE_EVENT_SECCOMP = 0x7
1765 RNDGETENTCNT = 0x80045200 1765 PTRACE_EVENT_STOP = 0x80
1766 RNDGETPOOL = 0x80085202 1766 PTRACE_EVENT_VFORK = 0x2
1767 RNDRESEEDCRNG = 0x5207 1767 PTRACE_EVENT_VFORK_DONE = 0x5
1768 RNDZAPENTCNT = 0x5204 1768 PTRACE_GETEVENTMSG = 0x4201
1769 RTAX_ADVMSS = 0x8 1769 PTRACE_GETFPREGS = 0xe
1770 RTAX_CC_ALGO = 0x10 1770 PTRACE_GETFPXREGS = 0x12
1771 RTAX_CWND = 0x7 1771 PTRACE_GETREGS = 0xc
1772 RTAX_FASTOPEN_NO_COOKIE = 0x11 1772 PTRACE_GETREGSET = 0x4204
1773 RTAX_FEATURES = 0xc 1773 PTRACE_GETSIGINFO = 0x4202
1774 RTAX_FEATURE_ALLFRAG = 0x8 1774 PTRACE_GETSIGMASK = 0x420a
1775 RTAX_FEATURE_ECN = 0x1 1775 PTRACE_GET_SYSCALL_INFO = 0x420e
1776 RTAX_FEATURE_MASK = 0xf 1776 PTRACE_GET_THREAD_AREA = 0x19
1777 RTAX_FEATURE_SACK = 0x2 1777 PTRACE_INTERRUPT = 0x4207
1778 RTAX_FEATURE_TIMESTAMP = 0x4 1778 PTRACE_KILL = 0x8
1779 RTAX_HOPLIMIT = 0xa 1779 PTRACE_LISTEN = 0x4208
1780 RTAX_INITCWND = 0xb 1780 PTRACE_OLDSETOPTIONS = 0x15
1781 RTAX_INITRWND = 0xe 1781 PTRACE_O_EXITKILL = 0x100000
1782 RTAX_LOCK = 0x1 1782 PTRACE_O_MASK = 0x3000ff
1783 RTAX_MAX = 0x11 1783 PTRACE_O_SUSPEND_SECCOMP = 0x200000
1784 RTAX_MTU = 0x2 1784 PTRACE_O_TRACECLONE = 0x8
1785 RTAX_QUICKACK = 0xf 1785 PTRACE_O_TRACEEXEC = 0x10
1786 RTAX_REORDERING = 0x9 1786 PTRACE_O_TRACEEXIT = 0x40
1787 RTAX_RTO_MIN = 0xd 1787 PTRACE_O_TRACEFORK = 0x2
1788 RTAX_RTT = 0x4 1788 PTRACE_O_TRACESECCOMP = 0x80
1789 RTAX_RTTVAR = 0x5 1789 PTRACE_O_TRACESYSGOOD = 0x1
1790 RTAX_SSTHRESH = 0x6 1790 PTRACE_O_TRACEVFORK = 0x4
1791 RTAX_UNSPEC = 0x0 1791 PTRACE_O_TRACEVFORKDONE = 0x20
1792 RTAX_WINDOW = 0x3 1792 PTRACE_PEEKDATA = 0x2
1793 RTA_ALIGNTO = 0x4 1793 PTRACE_PEEKSIGINFO = 0x4209
1794 RTA_MAX = 0x1d 1794 PTRACE_PEEKSIGINFO_SHARED = 0x1
1795 RTCF_DIRECTSRC = 0x4000000 1795 PTRACE_PEEKTEXT = 0x1
1796 RTCF_DOREDIRECT = 0x1000000 1796 PTRACE_PEEKUSR = 0x3
1797 RTCF_LOG = 0x2000000 1797 PTRACE_POKEDATA = 0x5
1798 RTCF_MASQ = 0x400000 1798 PTRACE_POKETEXT = 0x4
1799 RTCF_NAT = 0x800000 1799 PTRACE_POKEUSR = 0x6
1800 RTCF_VALVE = 0x200000 1800 PTRACE_SECCOMP_GET_FILTER = 0x420c
1801 RTC_AF = 0x20 1801 PTRACE_SECCOMP_GET_METADATA = 0x420d
1802 RTC_AIE_OFF = 0x7002 1802 PTRACE_SEIZE = 0x4206
1803 RTC_AIE_ON = 0x7001 1803 PTRACE_SETFPREGS = 0xf
1804 RTC_ALM_READ = 0x80247008 1804 PTRACE_SETFPXREGS = 0x13
1805 RTC_ALM_SET = 0x40247007 1805 PTRACE_SETOPTIONS = 0x4200
1806 RTC_EPOCH_READ = 0x8008700d 1806 PTRACE_SETREGS = 0xd
1807 RTC_EPOCH_SET = 0x4008700e 1807 PTRACE_SETREGSET = 0x4205
1808 RTC_IRQF = 0x80 1808 PTRACE_SETSIGINFO = 0x4203
1809 RTC_IRQP_READ = 0x8008700b 1809 PTRACE_SETSIGMASK = 0x420b
1810 RTC_IRQP_SET = 0x4008700c 1810 PTRACE_SET_THREAD_AREA = 0x1a
1811 RTC_MAX_FREQ = 0x2000 1811 PTRACE_SINGLEBLOCK = 0x21
1812 RTC_PF = 0x40 1812 PTRACE_SINGLESTEP = 0x9
1813 RTC_PIE_OFF = 0x7006 1813 PTRACE_SYSCALL = 0x18
1814 RTC_PIE_ON = 0x7005 1814 PTRACE_SYSCALL_INFO_ENTRY = 0x1
1815 RTC_PLL_GET = 0x80207011 1815 PTRACE_SYSCALL_INFO_EXIT = 0x2
1816 RTC_PLL_SET = 0x40207012 1816 PTRACE_SYSCALL_INFO_NONE = 0x0
1817 RTC_RD_TIME = 0x80247009 1817 PTRACE_SYSCALL_INFO_SECCOMP = 0x3
1818 RTC_SET_TIME = 0x4024700a 1818 PTRACE_SYSEMU = 0x1f
1819 RTC_UF = 0x10 1819 PTRACE_SYSEMU_SINGLESTEP = 0x20
1820 RTC_UIE_OFF = 0x7004 1820 PTRACE_TRACEME = 0x0
1821 RTC_UIE_ON = 0x7003 1821 QNX4_SUPER_MAGIC = 0x2f
1822 RTC_VL_CLR = 0x7014 1822 QNX6_SUPER_MAGIC = 0x68191122
1823 RTC_VL_READ = 0x80047013 1823 RAMFS_MAGIC = 0x858458f6
1824 RTC_WIE_OFF = 0x7010 1824 RDTGROUP_SUPER_MAGIC = 0x7655821
1825 RTC_WIE_ON = 0x700f 1825 REISERFS_SUPER_MAGIC = 0x52654973
1826 RTC_WKALM_RD = 0x80287010 1826 RENAME_EXCHANGE = 0x2
1827 RTC_WKALM_SET = 0x4028700f 1827 RENAME_NOREPLACE = 0x1
1828 RTF_ADDRCLASSMASK = 0xf8000000 1828 RENAME_WHITEOUT = 0x4
1829 RTF_ADDRCONF = 0x40000 1829 RLIMIT_AS = 0x9
1830 RTF_ALLONLINK = 0x20000 1830 RLIMIT_CORE = 0x4
1831 RTF_BROADCAST = 0x10000000 1831 RLIMIT_CPU = 0x0
1832 RTF_CACHE = 0x1000000 1832 RLIMIT_DATA = 0x2
1833 RTF_DEFAULT = 0x10000 1833 RLIMIT_FSIZE = 0x1
1834 RTF_DYNAMIC = 0x10 1834 RLIMIT_LOCKS = 0xa
1835 RTF_FLOW = 0x2000000 1835 RLIMIT_MEMLOCK = 0x8
1836 RTF_GATEWAY = 0x2 1836 RLIMIT_MSGQUEUE = 0xc
1837 RTF_HOST = 0x4 1837 RLIMIT_NICE = 0xd
1838 RTF_INTERFACE = 0x40000000 1838 RLIMIT_NOFILE = 0x7
1839 RTF_IRTT = 0x100 1839 RLIMIT_NPROC = 0x6
1840 RTF_LINKRT = 0x100000 1840 RLIMIT_RSS = 0x5
1841 RTF_LOCAL = 0x80000000 1841 RLIMIT_RTPRIO = 0xe
1842 RTF_MODIFIED = 0x20 1842 RLIMIT_RTTIME = 0xf
1843 RTF_MSS = 0x40 1843 RLIMIT_SIGPENDING = 0xb
1844 RTF_MTU = 0x40 1844 RLIMIT_STACK = 0x3
1845 RTF_MULTICAST = 0x20000000 1845 RLIM_INFINITY = 0xffffffffffffffff
1846 RTF_NAT = 0x8000000 1846 RNDADDENTROPY = 0x40085203
1847 RTF_NOFORWARD = 0x1000 1847 RNDADDTOENTCNT = 0x40045201
1848 RTF_NONEXTHOP = 0x200000 1848 RNDCLEARPOOL = 0x5206
1849 RTF_NOPMTUDISC = 0x4000 1849 RNDGETENTCNT = 0x80045200
1850 RTF_POLICY = 0x4000000 1850 RNDGETPOOL = 0x80085202
1851 RTF_REINSTATE = 0x8 1851 RNDRESEEDCRNG = 0x5207
1852 RTF_REJECT = 0x200 1852 RNDZAPENTCNT = 0x5204
1853 RTF_STATIC = 0x400 1853 RTAX_ADVMSS = 0x8
1854 RTF_THROW = 0x2000 1854 RTAX_CC_ALGO = 0x10
1855 RTF_UP = 0x1 1855 RTAX_CWND = 0x7
1856 RTF_WINDOW = 0x80 1856 RTAX_FASTOPEN_NO_COOKIE = 0x11
1857 RTF_XRESOLVE = 0x800 1857 RTAX_FEATURES = 0xc
1858 RTM_BASE = 0x10 1858 RTAX_FEATURE_ALLFRAG = 0x8
1859 RTM_DELACTION = 0x31 1859 RTAX_FEATURE_ECN = 0x1
1860 RTM_DELADDR = 0x15 1860 RTAX_FEATURE_MASK = 0xf
1861 RTM_DELADDRLABEL = 0x49 1861 RTAX_FEATURE_SACK = 0x2
1862 RTM_DELCHAIN = 0x65 1862 RTAX_FEATURE_TIMESTAMP = 0x4
1863 RTM_DELLINK = 0x11 1863 RTAX_HOPLIMIT = 0xa
1864 RTM_DELMDB = 0x55 1864 RTAX_INITCWND = 0xb
1865 RTM_DELNEIGH = 0x1d 1865 RTAX_INITRWND = 0xe
1866 RTM_DELNETCONF = 0x51 1866 RTAX_LOCK = 0x1
1867 RTM_DELNSID = 0x59 1867 RTAX_MAX = 0x11
1868 RTM_DELQDISC = 0x25 1868 RTAX_MTU = 0x2
1869 RTM_DELROUTE = 0x19 1869 RTAX_QUICKACK = 0xf
1870 RTM_DELRULE = 0x21 1870 RTAX_REORDERING = 0x9
1871 RTM_DELTCLASS = 0x29 1871 RTAX_RTO_MIN = 0xd
1872 RTM_DELTFILTER = 0x2d 1872 RTAX_RTT = 0x4
1873 RTM_F_CLONED = 0x200 1873 RTAX_RTTVAR = 0x5
1874 RTM_F_EQUALIZE = 0x400 1874 RTAX_SSTHRESH = 0x6
1875 RTM_F_FIB_MATCH = 0x2000 1875 RTAX_UNSPEC = 0x0
1876 RTM_F_LOOKUP_TABLE = 0x1000 1876 RTAX_WINDOW = 0x3
1877 RTM_F_NOTIFY = 0x100 1877 RTA_ALIGNTO = 0x4
1878 RTM_F_PREFIX = 0x800 1878 RTA_MAX = 0x1e
1879 RTM_GETACTION = 0x32 1879 RTCF_DIRECTSRC = 0x4000000
1880 RTM_GETADDR = 0x16 1880 RTCF_DOREDIRECT = 0x1000000
1881 RTM_GETADDRLABEL = 0x4a 1881 RTCF_LOG = 0x2000000
1882 RTM_GETANYCAST = 0x3e 1882 RTCF_MASQ = 0x400000
1883 RTM_GETCHAIN = 0x66 1883 RTCF_NAT = 0x800000
1884 RTM_GETDCB = 0x4e 1884 RTCF_VALVE = 0x200000
1885 RTM_GETLINK = 0x12 1885 RTC_AF = 0x20
1886 RTM_GETMDB = 0x56 1886 RTC_AIE_OFF = 0x7002
1887 RTM_GETMULTICAST = 0x3a 1887 RTC_AIE_ON = 0x7001
1888 RTM_GETNEIGH = 0x1e 1888 RTC_ALM_READ = 0x80247008
1889 RTM_GETNEIGHTBL = 0x42 1889 RTC_ALM_SET = 0x40247007
1890 RTM_GETNETCONF = 0x52 1890 RTC_EPOCH_READ = 0x8008700d
1891 RTM_GETNSID = 0x5a 1891 RTC_EPOCH_SET = 0x4008700e
1892 RTM_GETQDISC = 0x26 1892 RTC_IRQF = 0x80
1893 RTM_GETROUTE = 0x1a 1893 RTC_IRQP_READ = 0x8008700b
1894 RTM_GETRULE = 0x22 1894 RTC_IRQP_SET = 0x4008700c
1895 RTM_GETSTATS = 0x5e 1895 RTC_MAX_FREQ = 0x2000
1896 RTM_GETTCLASS = 0x2a 1896 RTC_PF = 0x40
1897 RTM_GETTFILTER = 0x2e 1897 RTC_PIE_OFF = 0x7006
1898 RTM_MAX = 0x67 1898 RTC_PIE_ON = 0x7005
1899 RTM_NEWACTION = 0x30 1899 RTC_PLL_GET = 0x80207011
1900 RTM_NEWADDR = 0x14 1900 RTC_PLL_SET = 0x40207012
1901 RTM_NEWADDRLABEL = 0x48 1901 RTC_RD_TIME = 0x80247009
1902 RTM_NEWCACHEREPORT = 0x60 1902 RTC_SET_TIME = 0x4024700a
1903 RTM_NEWCHAIN = 0x64 1903 RTC_UF = 0x10
1904 RTM_NEWLINK = 0x10 1904 RTC_UIE_OFF = 0x7004
1905 RTM_NEWMDB = 0x54 1905 RTC_UIE_ON = 0x7003
1906 RTM_NEWNDUSEROPT = 0x44 1906 RTC_VL_CLR = 0x7014
1907 RTM_NEWNEIGH = 0x1c 1907 RTC_VL_READ = 0x80047013
1908 RTM_NEWNEIGHTBL = 0x40 1908 RTC_WIE_OFF = 0x7010
1909 RTM_NEWNETCONF = 0x50 1909 RTC_WIE_ON = 0x700f
1910 RTM_NEWNSID = 0x58 1910 RTC_WKALM_RD = 0x80287010
1911 RTM_NEWPREFIX = 0x34 1911 RTC_WKALM_SET = 0x4028700f
1912 RTM_NEWQDISC = 0x24 1912 RTF_ADDRCLASSMASK = 0xf8000000
1913 RTM_NEWROUTE = 0x18 1913 RTF_ADDRCONF = 0x40000
1914 RTM_NEWRULE = 0x20 1914 RTF_ALLONLINK = 0x20000
1915 RTM_NEWSTATS = 0x5c 1915 RTF_BROADCAST = 0x10000000
1916 RTM_NEWTCLASS = 0x28 1916 RTF_CACHE = 0x1000000
1917 RTM_NEWTFILTER = 0x2c 1917 RTF_DEFAULT = 0x10000
1918 RTM_NR_FAMILIES = 0x16 1918 RTF_DYNAMIC = 0x10
1919 RTM_NR_MSGTYPES = 0x58 1919 RTF_FLOW = 0x2000000
1920 RTM_SETDCB = 0x4f 1920 RTF_GATEWAY = 0x2
1921 RTM_SETLINK = 0x13 1921 RTF_HOST = 0x4
1922 RTM_SETNEIGHTBL = 0x43 1922 RTF_INTERFACE = 0x40000000
1923 RTNH_ALIGNTO = 0x4 1923 RTF_IRTT = 0x100
1924 RTNH_COMPARE_MASK = 0x19 1924 RTF_LINKRT = 0x100000
1925 RTNH_F_DEAD = 0x1 1925 RTF_LOCAL = 0x80000000
1926 RTNH_F_LINKDOWN = 0x10 1926 RTF_MODIFIED = 0x20
1927 RTNH_F_OFFLOAD = 0x8 1927 RTF_MSS = 0x40
1928 RTNH_F_ONLINK = 0x4 1928 RTF_MTU = 0x40
1929 RTNH_F_PERVASIVE = 0x2 1929 RTF_MULTICAST = 0x20000000
1930 RTNH_F_UNRESOLVED = 0x20 1930 RTF_NAT = 0x8000000
1931 RTN_MAX = 0xb 1931 RTF_NOFORWARD = 0x1000
1932 RTPROT_BABEL = 0x2a 1932 RTF_NONEXTHOP = 0x200000
1933 RTPROT_BGP = 0xba 1933 RTF_NOPMTUDISC = 0x4000
1934 RTPROT_BIRD = 0xc 1934 RTF_POLICY = 0x4000000
1935 RTPROT_BOOT = 0x3 1935 RTF_REINSTATE = 0x8
1936 RTPROT_DHCP = 0x10 1936 RTF_REJECT = 0x200
1937 RTPROT_DNROUTED = 0xd 1937 RTF_STATIC = 0x400
1938 RTPROT_EIGRP = 0xc0 1938 RTF_THROW = 0x2000
1939 RTPROT_GATED = 0x8 1939 RTF_UP = 0x1
1940 RTPROT_ISIS = 0xbb 1940 RTF_WINDOW = 0x80
1941 RTPROT_KERNEL = 0x2 1941 RTF_XRESOLVE = 0x800
1942 RTPROT_MROUTED = 0x11 1942 RTMGRP_DECnet_IFADDR = 0x1000
1943 RTPROT_MRT = 0xa 1943 RTMGRP_DECnet_ROUTE = 0x4000
1944 RTPROT_NTK = 0xf 1944 RTMGRP_IPV4_IFADDR = 0x10
1945 RTPROT_OSPF = 0xbc 1945 RTMGRP_IPV4_MROUTE = 0x20
1946 RTPROT_RA = 0x9 1946 RTMGRP_IPV4_ROUTE = 0x40
1947 RTPROT_REDIRECT = 0x1 1947 RTMGRP_IPV4_RULE = 0x80
1948 RTPROT_RIP = 0xbd 1948 RTMGRP_IPV6_IFADDR = 0x100
1949 RTPROT_STATIC = 0x4 1949 RTMGRP_IPV6_IFINFO = 0x800
1950 RTPROT_UNSPEC = 0x0 1950 RTMGRP_IPV6_MROUTE = 0x200
1951 RTPROT_XORP = 0xe 1951 RTMGRP_IPV6_PREFIX = 0x20000
1952 RTPROT_ZEBRA = 0xb 1952 RTMGRP_IPV6_ROUTE = 0x400
1953 RT_CLASS_DEFAULT = 0xfd 1953 RTMGRP_LINK = 0x1
1954 RT_CLASS_LOCAL = 0xff 1954 RTMGRP_NEIGH = 0x4
1955 RT_CLASS_MAIN = 0xfe 1955 RTMGRP_NOTIFY = 0x2
1956 RT_CLASS_MAX = 0xff 1956 RTMGRP_TC = 0x8
1957 RT_CLASS_UNSPEC = 0x0 1957 RTM_BASE = 0x10
1958 RUSAGE_CHILDREN = -0x1 1958 RTM_DELACTION = 0x31
1959 RUSAGE_SELF = 0x0 1959 RTM_DELADDR = 0x15
1960 RUSAGE_THREAD = 0x1 1960 RTM_DELADDRLABEL = 0x49
1961 SCM_CREDENTIALS = 0x2 1961 RTM_DELCHAIN = 0x65
1962 SCM_RIGHTS = 0x1 1962 RTM_DELLINK = 0x11
1963 SCM_TIMESTAMP = 0x1d 1963 RTM_DELLINKPROP = 0x6d
1964 SCM_TIMESTAMPING = 0x25 1964 RTM_DELMDB = 0x55
1965 SCM_TIMESTAMPING_OPT_STATS = 0x36 1965 RTM_DELNEIGH = 0x1d
1966 SCM_TIMESTAMPING_PKTINFO = 0x3a 1966 RTM_DELNETCONF = 0x51
1967 SCM_TIMESTAMPNS = 0x23 1967 RTM_DELNEXTHOP = 0x69
1968 SCM_TXTIME = 0x3d 1968 RTM_DELNSID = 0x59
1969 SCM_WIFI_STATUS = 0x29 1969 RTM_DELQDISC = 0x25
1970 SC_LOG_FLUSH = 0x100000 1970 RTM_DELROUTE = 0x19
1971 SECCOMP_MODE_DISABLED = 0x0 1971 RTM_DELRULE = 0x21
1972 SECCOMP_MODE_FILTER = 0x2 1972 RTM_DELTCLASS = 0x29
1973 SECCOMP_MODE_STRICT = 0x1 1973 RTM_DELTFILTER = 0x2d
1974 SECURITYFS_MAGIC = 0x73636673 1974 RTM_F_CLONED = 0x200
1975 SELINUX_MAGIC = 0xf97cff8c 1975 RTM_F_EQUALIZE = 0x400
1976 SFD_CLOEXEC = 0x80000 1976 RTM_F_FIB_MATCH = 0x2000
1977 SFD_NONBLOCK = 0x800 1977 RTM_F_LOOKUP_TABLE = 0x1000
1978 SHUT_RD = 0x0 1978 RTM_F_NOTIFY = 0x100
1979 SHUT_RDWR = 0x2 1979 RTM_F_PREFIX = 0x800
1980 SHUT_WR = 0x1 1980 RTM_GETACTION = 0x32
1981 SIOCADDDLCI = 0x8980 1981 RTM_GETADDR = 0x16
1982 SIOCADDMULTI = 0x8931 1982 RTM_GETADDRLABEL = 0x4a
1983 SIOCADDRT = 0x890b 1983 RTM_GETANYCAST = 0x3e
1984 SIOCATMARK = 0x8905 1984 RTM_GETCHAIN = 0x66
1985 SIOCBONDCHANGEACTIVE = 0x8995 1985 RTM_GETDCB = 0x4e
1986 SIOCBONDENSLAVE = 0x8990 1986 RTM_GETLINK = 0x12
1987 SIOCBONDINFOQUERY = 0x8994 1987 RTM_GETLINKPROP = 0x6e
1988 SIOCBONDRELEASE = 0x8991 1988 RTM_GETMDB = 0x56
1989 SIOCBONDSETHWADDR = 0x8992 1989 RTM_GETMULTICAST = 0x3a
1990 SIOCBONDSLAVEINFOQUERY = 0x8993 1990 RTM_GETNEIGH = 0x1e
1991 SIOCBRADDBR = 0x89a0 1991 RTM_GETNEIGHTBL = 0x42
1992 SIOCBRADDIF = 0x89a2 1992 RTM_GETNETCONF = 0x52
1993 SIOCBRDELBR = 0x89a1 1993 RTM_GETNEXTHOP = 0x6a
1994 SIOCBRDELIF = 0x89a3 1994 RTM_GETNSID = 0x5a
1995 SIOCDARP = 0x8953 1995 RTM_GETQDISC = 0x26
1996 SIOCDELDLCI = 0x8981 1996 RTM_GETROUTE = 0x1a
1997 SIOCDELMULTI = 0x8932 1997 RTM_GETRULE = 0x22
1998 SIOCDELRT = 0x890c 1998 RTM_GETSTATS = 0x5e
1999 SIOCDEVPRIVATE = 0x89f0 1999 RTM_GETTCLASS = 0x2a
2000 SIOCDIFADDR = 0x8936 2000 RTM_GETTFILTER = 0x2e
2001 SIOCDRARP = 0x8960 2001 RTM_MAX = 0x6f
2002 SIOCETHTOOL = 0x8946 2002 RTM_NEWACTION = 0x30
2003 SIOCGARP = 0x8954 2003 RTM_NEWADDR = 0x14
2004 SIOCGHWTSTAMP = 0x89b1 2004 RTM_NEWADDRLABEL = 0x48
2005 SIOCGIFADDR = 0x8915 2005 RTM_NEWCACHEREPORT = 0x60
2006 SIOCGIFBR = 0x8940 2006 RTM_NEWCHAIN = 0x64
2007 SIOCGIFBRDADDR = 0x8919 2007 RTM_NEWLINK = 0x10
2008 SIOCGIFCONF = 0x8912 2008 RTM_NEWLINKPROP = 0x6c
2009 SIOCGIFCOUNT = 0x8938 2009 RTM_NEWMDB = 0x54
2010 SIOCGIFDSTADDR = 0x8917 2010 RTM_NEWNDUSEROPT = 0x44
2011 SIOCGIFENCAP = 0x8925 2011 RTM_NEWNEIGH = 0x1c
2012 SIOCGIFFLAGS = 0x8913 2012 RTM_NEWNEIGHTBL = 0x40
2013 SIOCGIFHWADDR = 0x8927 2013 RTM_NEWNETCONF = 0x50
2014 SIOCGIFINDEX = 0x8933 2014 RTM_NEWNEXTHOP = 0x68
2015 SIOCGIFMAP = 0x8970 2015 RTM_NEWNSID = 0x58
2016 SIOCGIFMEM = 0x891f 2016 RTM_NEWPREFIX = 0x34
2017 SIOCGIFMETRIC = 0x891d 2017 RTM_NEWQDISC = 0x24
2018 SIOCGIFMTU = 0x8921 2018 RTM_NEWROUTE = 0x18
2019 SIOCGIFNAME = 0x8910 2019 RTM_NEWRULE = 0x20
2020 SIOCGIFNETMASK = 0x891b 2020 RTM_NEWSTATS = 0x5c
2021 SIOCGIFPFLAGS = 0x8935 2021 RTM_NEWTCLASS = 0x28
2022 SIOCGIFSLAVE = 0x8929 2022 RTM_NEWTFILTER = 0x2c
2023 SIOCGIFTXQLEN = 0x8942 2023 RTM_NR_FAMILIES = 0x18
2024 SIOCGIFVLAN = 0x8982 2024 RTM_NR_MSGTYPES = 0x60
2025 SIOCGMIIPHY = 0x8947 2025 RTM_SETDCB = 0x4f
2026 SIOCGMIIREG = 0x8948 2026 RTM_SETLINK = 0x13
2027 SIOCGPGRP = 0x8904 2027 RTM_SETNEIGHTBL = 0x43
2028 SIOCGPPPCSTATS = 0x89f2 2028 RTNH_ALIGNTO = 0x4
2029 SIOCGPPPSTATS = 0x89f0 2029 RTNH_COMPARE_MASK = 0x19
2030 SIOCGPPPVER = 0x89f1 2030 RTNH_F_DEAD = 0x1
2031 SIOCGRARP = 0x8961 2031 RTNH_F_LINKDOWN = 0x10
2032 SIOCGSKNS = 0x894c 2032 RTNH_F_OFFLOAD = 0x8
2033 SIOCGSTAMP = 0x8906 2033 RTNH_F_ONLINK = 0x4
2034 SIOCGSTAMPNS = 0x8907 2034 RTNH_F_PERVASIVE = 0x2
2035 SIOCGSTAMPNS_NEW = 0x80108907 2035 RTNH_F_UNRESOLVED = 0x20
2036 SIOCGSTAMPNS_OLD = 0x8907 2036 RTN_MAX = 0xb
2037 SIOCGSTAMP_NEW = 0x80108906 2037 RTPROT_BABEL = 0x2a
2038 SIOCGSTAMP_OLD = 0x8906 2038 RTPROT_BGP = 0xba
2039 SIOCINQ = 0x541b 2039 RTPROT_BIRD = 0xc
2040 SIOCOUTQ = 0x5411 2040 RTPROT_BOOT = 0x3
2041 SIOCOUTQNSD = 0x894b 2041 RTPROT_DHCP = 0x10
2042 SIOCPROTOPRIVATE = 0x89e0 2042 RTPROT_DNROUTED = 0xd
2043 SIOCRTMSG = 0x890d 2043 RTPROT_EIGRP = 0xc0
2044 SIOCSARP = 0x8955 2044 RTPROT_GATED = 0x8
2045 SIOCSHWTSTAMP = 0x89b0 2045 RTPROT_ISIS = 0xbb
2046 SIOCSIFADDR = 0x8916 2046 RTPROT_KERNEL = 0x2
2047 SIOCSIFBR = 0x8941 2047 RTPROT_MROUTED = 0x11
2048 SIOCSIFBRDADDR = 0x891a 2048 RTPROT_MRT = 0xa
2049 SIOCSIFDSTADDR = 0x8918 2049 RTPROT_NTK = 0xf
2050 SIOCSIFENCAP = 0x8926 2050 RTPROT_OSPF = 0xbc
2051 SIOCSIFFLAGS = 0x8914 2051 RTPROT_RA = 0x9
2052 SIOCSIFHWADDR = 0x8924 2052 RTPROT_REDIRECT = 0x1
2053 SIOCSIFHWBROADCAST = 0x8937 2053 RTPROT_RIP = 0xbd
2054 SIOCSIFLINK = 0x8911 2054 RTPROT_STATIC = 0x4
2055 SIOCSIFMAP = 0x8971 2055 RTPROT_UNSPEC = 0x0
2056 SIOCSIFMEM = 0x8920 2056 RTPROT_XORP = 0xe
2057 SIOCSIFMETRIC = 0x891e 2057 RTPROT_ZEBRA = 0xb
2058 SIOCSIFMTU = 0x8922 2058 RT_CLASS_DEFAULT = 0xfd
2059 SIOCSIFNAME = 0x8923 2059 RT_CLASS_LOCAL = 0xff
2060 SIOCSIFNETMASK = 0x891c 2060 RT_CLASS_MAIN = 0xfe
2061 SIOCSIFPFLAGS = 0x8934 2061 RT_CLASS_MAX = 0xff
2062 SIOCSIFSLAVE = 0x8930 2062 RT_CLASS_UNSPEC = 0x0
2063 SIOCSIFTXQLEN = 0x8943 2063 RUSAGE_CHILDREN = -0x1
2064 SIOCSIFVLAN = 0x8983 2064 RUSAGE_SELF = 0x0
2065 SIOCSMIIREG = 0x8949 2065 RUSAGE_THREAD = 0x1
2066 SIOCSPGRP = 0x8902 2066 RWF_APPEND = 0x10
2067 SIOCSRARP = 0x8962 2067 RWF_DSYNC = 0x2
2068 SIOCWANDEV = 0x894a 2068 RWF_HIPRI = 0x1
2069 SMACK_MAGIC = 0x43415d53 2069 RWF_NOWAIT = 0x8
2070 SMART_AUTOSAVE = 0xd2 2070 RWF_SUPPORTED = 0x1f
2071 SMART_AUTO_OFFLINE = 0xdb 2071 RWF_SYNC = 0x4
2072 SMART_DISABLE = 0xd9 2072 RWF_WRITE_LIFE_NOT_SET = 0x0
2073 SMART_ENABLE = 0xd8 2073 SCM_CREDENTIALS = 0x2
2074 SMART_HCYL_PASS = 0xc2 2074 SCM_RIGHTS = 0x1
2075 SMART_IMMEDIATE_OFFLINE = 0xd4 2075 SCM_TIMESTAMP = 0x1d
2076 SMART_LCYL_PASS = 0x4f 2076 SCM_TIMESTAMPING = 0x25
2077 SMART_READ_LOG_SECTOR = 0xd5 2077 SCM_TIMESTAMPING_OPT_STATS = 0x36
2078 SMART_READ_THRESHOLDS = 0xd1 2078 SCM_TIMESTAMPING_PKTINFO = 0x3a
2079 SMART_READ_VALUES = 0xd0 2079 SCM_TIMESTAMPNS = 0x23
2080 SMART_SAVE = 0xd3 2080 SCM_TXTIME = 0x3d
2081 SMART_STATUS = 0xda 2081 SCM_WIFI_STATUS = 0x29
2082 SMART_WRITE_LOG_SECTOR = 0xd6 2082 SC_LOG_FLUSH = 0x100000
2083 SMART_WRITE_THRESHOLDS = 0xd7 2083 SECCOMP_MODE_DISABLED = 0x0
2084 SMB_SUPER_MAGIC = 0x517b 2084 SECCOMP_MODE_FILTER = 0x2
2085 SOCKFS_MAGIC = 0x534f434b 2085 SECCOMP_MODE_STRICT = 0x1
2086 SOCK_CLOEXEC = 0x80000 2086 SECURITYFS_MAGIC = 0x73636673
2087 SOCK_DCCP = 0x6 2087 SELINUX_MAGIC = 0xf97cff8c
2088 SOCK_DGRAM = 0x2 2088 SFD_CLOEXEC = 0x80000
2089 SOCK_IOC_TYPE = 0x89 2089 SFD_NONBLOCK = 0x800
2090 SOCK_NONBLOCK = 0x800 2090 SHUT_RD = 0x0
2091 SOCK_PACKET = 0xa 2091 SHUT_RDWR = 0x2
2092 SOCK_RAW = 0x3 2092 SHUT_WR = 0x1
2093 SOCK_RDM = 0x4 2093 SIOCADDDLCI = 0x8980
2094 SOCK_SEQPACKET = 0x5 2094 SIOCADDMULTI = 0x8931
2095 SOCK_STREAM = 0x1 2095 SIOCADDRT = 0x890b
2096 SOL_AAL = 0x109 2096 SIOCATMARK = 0x8905
2097 SOL_ALG = 0x117 2097 SIOCBONDCHANGEACTIVE = 0x8995
2098 SOL_ATM = 0x108 2098 SIOCBONDENSLAVE = 0x8990
2099 SOL_CAIF = 0x116 2099 SIOCBONDINFOQUERY = 0x8994
2100 SOL_CAN_BASE = 0x64 2100 SIOCBONDRELEASE = 0x8991
2101 SOL_DCCP = 0x10d 2101 SIOCBONDSETHWADDR = 0x8992
2102 SOL_DECNET = 0x105 2102 SIOCBONDSLAVEINFOQUERY = 0x8993
2103 SOL_ICMPV6 = 0x3a 2103 SIOCBRADDBR = 0x89a0
2104 SOL_IP = 0x0 2104 SIOCBRADDIF = 0x89a2
2105 SOL_IPV6 = 0x29 2105 SIOCBRDELBR = 0x89a1
2106 SOL_IRDA = 0x10a 2106 SIOCBRDELIF = 0x89a3
2107 SOL_IUCV = 0x115 2107 SIOCDARP = 0x8953
2108 SOL_KCM = 0x119 2108 SIOCDELDLCI = 0x8981
2109 SOL_LLC = 0x10c 2109 SIOCDELMULTI = 0x8932
2110 SOL_NETBEUI = 0x10b 2110 SIOCDELRT = 0x890c
2111 SOL_NETLINK = 0x10e 2111 SIOCDEVPRIVATE = 0x89f0
2112 SOL_NFC = 0x118 2112 SIOCDIFADDR = 0x8936
2113 SOL_PACKET = 0x107 2113 SIOCDRARP = 0x8960
2114 SOL_PNPIPE = 0x113 2114 SIOCETHTOOL = 0x8946
2115 SOL_PPPOL2TP = 0x111 2115 SIOCGARP = 0x8954
2116 SOL_RAW = 0xff 2116 SIOCGETLINKNAME = 0x89e0
2117 SOL_RDS = 0x114 2117 SIOCGETNODEID = 0x89e1
2118 SOL_RXRPC = 0x110 2118 SIOCGHWTSTAMP = 0x89b1
2119 SOL_SOCKET = 0x1 2119 SIOCGIFADDR = 0x8915
2120 SOL_TCP = 0x6 2120 SIOCGIFBR = 0x8940
2121 SOL_TIPC = 0x10f 2121 SIOCGIFBRDADDR = 0x8919
2122 SOL_TLS = 0x11a 2122 SIOCGIFCONF = 0x8912
2123 SOL_X25 = 0x106 2123 SIOCGIFCOUNT = 0x8938
2124 SOL_XDP = 0x11b 2124 SIOCGIFDSTADDR = 0x8917
2125 SOMAXCONN = 0x80 2125 SIOCGIFENCAP = 0x8925
2126 SO_ACCEPTCONN = 0x1e 2126 SIOCGIFFLAGS = 0x8913
2127 SO_ATTACH_BPF = 0x32 2127 SIOCGIFHWADDR = 0x8927
2128 SO_ATTACH_FILTER = 0x1a 2128 SIOCGIFINDEX = 0x8933
2129 SO_ATTACH_REUSEPORT_CBPF = 0x33 2129 SIOCGIFMAP = 0x8970
2130 SO_ATTACH_REUSEPORT_EBPF = 0x34 2130 SIOCGIFMEM = 0x891f
2131 SO_BINDTODEVICE = 0x19 2131 SIOCGIFMETRIC = 0x891d
2132 SO_BINDTOIFINDEX = 0x3e 2132 SIOCGIFMTU = 0x8921
2133 SO_BPF_EXTENSIONS = 0x30 2133 SIOCGIFNAME = 0x8910
2134 SO_BROADCAST = 0x6 2134 SIOCGIFNETMASK = 0x891b
2135 SO_BSDCOMPAT = 0xe 2135 SIOCGIFPFLAGS = 0x8935
2136 SO_BUSY_POLL = 0x2e 2136 SIOCGIFSLAVE = 0x8929
2137 SO_CNX_ADVICE = 0x35 2137 SIOCGIFTXQLEN = 0x8942
2138 SO_COOKIE = 0x39 2138 SIOCGIFVLAN = 0x8982
2139 SO_DEBUG = 0x1 2139 SIOCGMIIPHY = 0x8947
2140 SO_DETACH_BPF = 0x1b 2140 SIOCGMIIREG = 0x8948
2141 SO_DETACH_FILTER = 0x1b 2141 SIOCGPGRP = 0x8904
2142 SO_DOMAIN = 0x27 2142 SIOCGPPPCSTATS = 0x89f2
2143 SO_DONTROUTE = 0x5 2143 SIOCGPPPSTATS = 0x89f0
2144 SO_EE_CODE_TXTIME_INVALID_PARAM = 0x1 2144 SIOCGPPPVER = 0x89f1
2145 SO_EE_CODE_TXTIME_MISSED = 0x2 2145 SIOCGRARP = 0x8961
2146 SO_EE_CODE_ZEROCOPY_COPIED = 0x1 2146 SIOCGSKNS = 0x894c
2147 SO_EE_ORIGIN_ICMP = 0x2 2147 SIOCGSTAMP = 0x8906
2148 SO_EE_ORIGIN_ICMP6 = 0x3 2148 SIOCGSTAMPNS = 0x8907
2149 SO_EE_ORIGIN_LOCAL = 0x1 2149 SIOCGSTAMPNS_NEW = 0x80108907
2150 SO_EE_ORIGIN_NONE = 0x0 2150 SIOCGSTAMPNS_OLD = 0x8907
2151 SO_EE_ORIGIN_TIMESTAMPING = 0x4 2151 SIOCGSTAMP_NEW = 0x80108906
2152 SO_EE_ORIGIN_TXSTATUS = 0x4 2152 SIOCGSTAMP_OLD = 0x8906
2153 SO_EE_ORIGIN_TXTIME = 0x6 2153 SIOCINQ = 0x541b
2154 SO_EE_ORIGIN_ZEROCOPY = 0x5 2154 SIOCOUTQ = 0x5411
2155 SO_ERROR = 0x4 2155 SIOCOUTQNSD = 0x894b
2156 SO_GET_FILTER = 0x1a 2156 SIOCPROTOPRIVATE = 0x89e0
2157 SO_INCOMING_CPU = 0x31 2157 SIOCRTMSG = 0x890d
2158 SO_INCOMING_NAPI_ID = 0x38 2158 SIOCSARP = 0x8955
2159 SO_KEEPALIVE = 0x9 2159 SIOCSHWTSTAMP = 0x89b0
2160 SO_LINGER = 0xd 2160 SIOCSIFADDR = 0x8916
2161 SO_LOCK_FILTER = 0x2c 2161 SIOCSIFBR = 0x8941
2162 SO_MARK = 0x24 2162 SIOCSIFBRDADDR = 0x891a
2163 SO_MAX_PACING_RATE = 0x2f 2163 SIOCSIFDSTADDR = 0x8918
2164 SO_MEMINFO = 0x37 2164 SIOCSIFENCAP = 0x8926
2165 SO_NOFCS = 0x2b 2165 SIOCSIFFLAGS = 0x8914
2166 SO_NO_CHECK = 0xb 2166 SIOCSIFHWADDR = 0x8924
2167 SO_OOBINLINE = 0xa 2167 SIOCSIFHWBROADCAST = 0x8937
2168 SO_PASSCRED = 0x10 2168 SIOCSIFLINK = 0x8911
2169 SO_PASSSEC = 0x22 2169 SIOCSIFMAP = 0x8971
2170 SO_PEEK_OFF = 0x2a 2170 SIOCSIFMEM = 0x8920
2171 SO_PEERCRED = 0x11 2171 SIOCSIFMETRIC = 0x891e
2172 SO_PEERGROUPS = 0x3b 2172 SIOCSIFMTU = 0x8922
2173 SO_PEERNAME = 0x1c 2173 SIOCSIFNAME = 0x8923
2174 SO_PEERSEC = 0x1f 2174 SIOCSIFNETMASK = 0x891c
2175 SO_PRIORITY = 0xc 2175 SIOCSIFPFLAGS = 0x8934
2176 SO_PROTOCOL = 0x26 2176 SIOCSIFSLAVE = 0x8930
2177 SO_RCVBUF = 0x8 2177 SIOCSIFTXQLEN = 0x8943
2178 SO_RCVBUFFORCE = 0x21 2178 SIOCSIFVLAN = 0x8983
2179 SO_RCVLOWAT = 0x12 2179 SIOCSMIIREG = 0x8949
2180 SO_RCVTIMEO = 0x14 2180 SIOCSPGRP = 0x8902
2181 SO_RCVTIMEO_NEW = 0x42 2181 SIOCSRARP = 0x8962
2182 SO_RCVTIMEO_OLD = 0x14 2182 SIOCWANDEV = 0x894a
2183 SO_REUSEADDR = 0x2 2183 SMACK_MAGIC = 0x43415d53
2184 SO_REUSEPORT = 0xf 2184 SMART_AUTOSAVE = 0xd2
2185 SO_RXQ_OVFL = 0x28 2185 SMART_AUTO_OFFLINE = 0xdb
2186 SO_SECURITY_AUTHENTICATION = 0x16 2186 SMART_DISABLE = 0xd9
2187 SO_SECURITY_ENCRYPTION_NETWORK = 0x18 2187 SMART_ENABLE = 0xd8
2188 SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17 2188 SMART_HCYL_PASS = 0xc2
2189 SO_SELECT_ERR_QUEUE = 0x2d 2189 SMART_IMMEDIATE_OFFLINE = 0xd4
2190 SO_SNDBUF = 0x7 2190 SMART_LCYL_PASS = 0x4f
2191 SO_SNDBUFFORCE = 0x20 2191 SMART_READ_LOG_SECTOR = 0xd5
2192 SO_SNDLOWAT = 0x13 2192 SMART_READ_THRESHOLDS = 0xd1
2193 SO_SNDTIMEO = 0x15 2193 SMART_READ_VALUES = 0xd0
2194 SO_SNDTIMEO_NEW = 0x43 2194 SMART_SAVE = 0xd3
2195 SO_SNDTIMEO_OLD = 0x15 2195 SMART_STATUS = 0xda
2196 SO_TIMESTAMP = 0x1d 2196 SMART_WRITE_LOG_SECTOR = 0xd6
2197 SO_TIMESTAMPING = 0x25 2197 SMART_WRITE_THRESHOLDS = 0xd7
2198 SO_TIMESTAMPING_NEW = 0x41 2198 SMB_SUPER_MAGIC = 0x517b
2199 SO_TIMESTAMPING_OLD = 0x25 2199 SOCKFS_MAGIC = 0x534f434b
2200 SO_TIMESTAMPNS = 0x23 2200 SOCK_CLOEXEC = 0x80000
2201 SO_TIMESTAMPNS_NEW = 0x40 2201 SOCK_DCCP = 0x6
2202 SO_TIMESTAMPNS_OLD = 0x23 2202 SOCK_DGRAM = 0x2
2203 SO_TIMESTAMP_NEW = 0x3f 2203 SOCK_IOC_TYPE = 0x89
2204 SO_TIMESTAMP_OLD = 0x1d 2204 SOCK_NONBLOCK = 0x800
2205 SO_TXTIME = 0x3d 2205 SOCK_PACKET = 0xa
2206 SO_TYPE = 0x3 2206 SOCK_RAW = 0x3
2207 SO_VM_SOCKETS_BUFFER_MAX_SIZE = 0x2 2207 SOCK_RDM = 0x4
2208 SO_VM_SOCKETS_BUFFER_MIN_SIZE = 0x1 2208 SOCK_SEQPACKET = 0x5
2209 SO_VM_SOCKETS_BUFFER_SIZE = 0x0 2209 SOCK_STREAM = 0x1
2210 SO_VM_SOCKETS_CONNECT_TIMEOUT = 0x6 2210 SOL_AAL = 0x109
2211 SO_VM_SOCKETS_NONBLOCK_TXRX = 0x7 2211 SOL_ALG = 0x117
2212 SO_VM_SOCKETS_PEER_HOST_VM_ID = 0x3 2212 SOL_ATM = 0x108
2213 SO_VM_SOCKETS_TRUSTED = 0x5 2213 SOL_CAIF = 0x116
2214 SO_WIFI_STATUS = 0x29 2214 SOL_CAN_BASE = 0x64
2215 SO_ZEROCOPY = 0x3c 2215 SOL_DCCP = 0x10d
2216 SPLICE_F_GIFT = 0x8 2216 SOL_DECNET = 0x105
2217 SPLICE_F_MORE = 0x4 2217 SOL_ICMPV6 = 0x3a
2218 SPLICE_F_MOVE = 0x1 2218 SOL_IP = 0x0
2219 SPLICE_F_NONBLOCK = 0x2 2219 SOL_IPV6 = 0x29
2220 SQUASHFS_MAGIC = 0x73717368 2220 SOL_IRDA = 0x10a
2221 STACK_END_MAGIC = 0x57ac6e9d 2221 SOL_IUCV = 0x115
2222 STATX_ALL = 0xfff 2222 SOL_KCM = 0x119
2223 STATX_ATIME = 0x20 2223 SOL_LLC = 0x10c
2224 STATX_ATTR_APPEND = 0x20 2224 SOL_NETBEUI = 0x10b
2225 STATX_ATTR_AUTOMOUNT = 0x1000 2225 SOL_NETLINK = 0x10e
2226 STATX_ATTR_COMPRESSED = 0x4 2226 SOL_NFC = 0x118
2227 STATX_ATTR_ENCRYPTED = 0x800 2227 SOL_PACKET = 0x107
2228 STATX_ATTR_IMMUTABLE = 0x10 2228 SOL_PNPIPE = 0x113
2229 STATX_ATTR_NODUMP = 0x40 2229 SOL_PPPOL2TP = 0x111
2230 STATX_BASIC_STATS = 0x7ff 2230 SOL_RAW = 0xff
2231 STATX_BLOCKS = 0x400 2231 SOL_RDS = 0x114
2232 STATX_BTIME = 0x800 2232 SOL_RXRPC = 0x110
2233 STATX_CTIME = 0x80 2233 SOL_SOCKET = 0x1
2234 STATX_GID = 0x10 2234 SOL_TCP = 0x6
2235 STATX_INO = 0x100 2235 SOL_TIPC = 0x10f
2236 STATX_MODE = 0x2 2236 SOL_TLS = 0x11a
2237 STATX_MTIME = 0x40 2237 SOL_X25 = 0x106
2238 STATX_NLINK = 0x4 2238 SOL_XDP = 0x11b
2239 STATX_SIZE = 0x200 2239 SOMAXCONN = 0x1000
2240 STATX_TYPE = 0x1 2240 SO_ACCEPTCONN = 0x1e
2241 STATX_UID = 0x8 2241 SO_ATTACH_BPF = 0x32
2242 STATX__RESERVED = 0x80000000 2242 SO_ATTACH_FILTER = 0x1a
2243 SYNC_FILE_RANGE_WAIT_AFTER = 0x4 2243 SO_ATTACH_REUSEPORT_CBPF = 0x33
2244 SYNC_FILE_RANGE_WAIT_BEFORE = 0x1 2244 SO_ATTACH_REUSEPORT_EBPF = 0x34
2245 SYNC_FILE_RANGE_WRITE = 0x2 2245 SO_BINDTODEVICE = 0x19
2246 SYNC_FILE_RANGE_WRITE_AND_WAIT = 0x7 2246 SO_BINDTOIFINDEX = 0x3e
2247 SYSFS_MAGIC = 0x62656572 2247 SO_BPF_EXTENSIONS = 0x30
2248 S_BLKSIZE = 0x200 2248 SO_BROADCAST = 0x6
2249 S_IEXEC = 0x40 2249 SO_BSDCOMPAT = 0xe
2250 S_IFBLK = 0x6000 2250 SO_BUSY_POLL = 0x2e
2251 S_IFCHR = 0x2000 2251 SO_CNX_ADVICE = 0x35
2252 S_IFDIR = 0x4000 2252 SO_COOKIE = 0x39
2253 S_IFIFO = 0x1000 2253 SO_DEBUG = 0x1
2254 S_IFLNK = 0xa000 2254 SO_DETACH_BPF = 0x1b
2255 S_IFMT = 0xf000 2255 SO_DETACH_FILTER = 0x1b
2256 S_IFREG = 0x8000 2256 SO_DETACH_REUSEPORT_BPF = 0x44
2257 S_IFSOCK = 0xc000 2257 SO_DOMAIN = 0x27
2258 S_IREAD = 0x100 2258 SO_DONTROUTE = 0x5
2259 S_IRGRP = 0x20 2259 SO_EE_CODE_TXTIME_INVALID_PARAM = 0x1
2260 S_IROTH = 0x4 2260 SO_EE_CODE_TXTIME_MISSED = 0x2
2261 S_IRUSR = 0x100 2261 SO_EE_CODE_ZEROCOPY_COPIED = 0x1
2262 S_IRWXG = 0x38 2262 SO_EE_ORIGIN_ICMP = 0x2
2263 S_IRWXO = 0x7 2263 SO_EE_ORIGIN_ICMP6 = 0x3
2264 S_IRWXU = 0x1c0 2264 SO_EE_ORIGIN_LOCAL = 0x1
2265 S_ISGID = 0x400 2265 SO_EE_ORIGIN_NONE = 0x0
2266 S_ISUID = 0x800 2266 SO_EE_ORIGIN_TIMESTAMPING = 0x4
2267 S_ISVTX = 0x200 2267 SO_EE_ORIGIN_TXSTATUS = 0x4
2268 S_IWGRP = 0x10 2268 SO_EE_ORIGIN_TXTIME = 0x6
2269 S_IWOTH = 0x2 2269 SO_EE_ORIGIN_ZEROCOPY = 0x5
2270 S_IWRITE = 0x80 2270 SO_ERROR = 0x4
2271 S_IWUSR = 0x80 2271 SO_GET_FILTER = 0x1a
2272 S_IXGRP = 0x8 2272 SO_INCOMING_CPU = 0x31
2273 S_IXOTH = 0x1 2273 SO_INCOMING_NAPI_ID = 0x38
2274 S_IXUSR = 0x40 2274 SO_KEEPALIVE = 0x9
2275 TAB0 = 0x0 2275 SO_LINGER = 0xd
2276 TAB1 = 0x800 2276 SO_LOCK_FILTER = 0x2c
2277 TAB2 = 0x1000 2277 SO_MARK = 0x24
2278 TAB3 = 0x1800 2278 SO_MAX_PACING_RATE = 0x2f
2279 TABDLY = 0x1800 2279 SO_MEMINFO = 0x37
2280 TASKSTATS_CMD_ATTR_MAX = 0x4 2280 SO_NOFCS = 0x2b
2281 TASKSTATS_CMD_MAX = 0x2 2281 SO_NO_CHECK = 0xb
2282 TASKSTATS_GENL_NAME = "TASKSTATS" 2282 SO_OOBINLINE = 0xa
2283 TASKSTATS_GENL_VERSION = 0x1 2283 SO_PASSCRED = 0x10
2284 TASKSTATS_TYPE_MAX = 0x6 2284 SO_PASSSEC = 0x22
2285 TASKSTATS_VERSION = 0x9 2285 SO_PEEK_OFF = 0x2a
2286 TCFLSH = 0x540b 2286 SO_PEERCRED = 0x11
2287 TCGETA = 0x5405 2287 SO_PEERGROUPS = 0x3b
2288 TCGETS = 0x5401 2288 SO_PEERNAME = 0x1c
2289 TCGETS2 = 0x802c542a 2289 SO_PEERSEC = 0x1f
2290 TCGETX = 0x5432 2290 SO_PRIORITY = 0xc
2291 TCIFLUSH = 0x0 2291 SO_PROTOCOL = 0x26
2292 TCIOFF = 0x2 2292 SO_RCVBUF = 0x8
2293 TCIOFLUSH = 0x2 2293 SO_RCVBUFFORCE = 0x21
2294 TCION = 0x3 2294 SO_RCVLOWAT = 0x12
2295 TCOFLUSH = 0x1 2295 SO_RCVTIMEO = 0x14
2296 TCOOFF = 0x0 2296 SO_RCVTIMEO_NEW = 0x42
2297 TCOON = 0x1 2297 SO_RCVTIMEO_OLD = 0x14
2298 TCP_BPF_IW = 0x3e9 2298 SO_REUSEADDR = 0x2
2299 TCP_BPF_SNDCWND_CLAMP = 0x3ea 2299 SO_REUSEPORT = 0xf
2300 TCP_CC_INFO = 0x1a 2300 SO_RXQ_OVFL = 0x28
2301 TCP_CM_INQ = 0x24 2301 SO_SECURITY_AUTHENTICATION = 0x16
2302 TCP_CONGESTION = 0xd 2302 SO_SECURITY_ENCRYPTION_NETWORK = 0x18
2303 TCP_COOKIE_IN_ALWAYS = 0x1 2303 SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17
2304 TCP_COOKIE_MAX = 0x10 2304 SO_SELECT_ERR_QUEUE = 0x2d
2305 TCP_COOKIE_MIN = 0x8 2305 SO_SNDBUF = 0x7
2306 TCP_COOKIE_OUT_NEVER = 0x2 2306 SO_SNDBUFFORCE = 0x20
2307 TCP_COOKIE_PAIR_SIZE = 0x20 2307 SO_SNDLOWAT = 0x13
2308 TCP_COOKIE_TRANSACTIONS = 0xf 2308 SO_SNDTIMEO = 0x15
2309 TCP_CORK = 0x3 2309 SO_SNDTIMEO_NEW = 0x43
2310 TCP_DEFER_ACCEPT = 0x9 2310 SO_SNDTIMEO_OLD = 0x15
2311 TCP_FASTOPEN = 0x17 2311 SO_TIMESTAMP = 0x1d
2312 TCP_FASTOPEN_CONNECT = 0x1e 2312 SO_TIMESTAMPING = 0x25
2313 TCP_FASTOPEN_KEY = 0x21 2313 SO_TIMESTAMPING_NEW = 0x41
2314 TCP_FASTOPEN_NO_COOKIE = 0x22 2314 SO_TIMESTAMPING_OLD = 0x25
2315 TCP_INFO = 0xb 2315 SO_TIMESTAMPNS = 0x23
2316 TCP_INQ = 0x24 2316 SO_TIMESTAMPNS_NEW = 0x40
2317 TCP_KEEPCNT = 0x6 2317 SO_TIMESTAMPNS_OLD = 0x23
2318 TCP_KEEPIDLE = 0x4 2318 SO_TIMESTAMP_NEW = 0x3f
2319 TCP_KEEPINTVL = 0x5 2319 SO_TIMESTAMP_OLD = 0x1d
2320 TCP_LINGER2 = 0x8 2320 SO_TXTIME = 0x3d
2321 TCP_MAXSEG = 0x2 2321 SO_TYPE = 0x3
2322 TCP_MAXWIN = 0xffff 2322 SO_VM_SOCKETS_BUFFER_MAX_SIZE = 0x2
2323 TCP_MAX_WINSHIFT = 0xe 2323 SO_VM_SOCKETS_BUFFER_MIN_SIZE = 0x1
2324 TCP_MD5SIG = 0xe 2324 SO_VM_SOCKETS_BUFFER_SIZE = 0x0
2325 TCP_MD5SIG_EXT = 0x20 2325 SO_VM_SOCKETS_CONNECT_TIMEOUT = 0x6
2326 TCP_MD5SIG_FLAG_PREFIX = 0x1 2326 SO_VM_SOCKETS_NONBLOCK_TXRX = 0x7
2327 TCP_MD5SIG_MAXKEYLEN = 0x50 2327 SO_VM_SOCKETS_PEER_HOST_VM_ID = 0x3
2328 TCP_MSS = 0x200 2328 SO_VM_SOCKETS_TRUSTED = 0x5
2329 TCP_MSS_DEFAULT = 0x218 2329 SO_WIFI_STATUS = 0x29
2330 TCP_MSS_DESIRED = 0x4c4 2330 SO_ZEROCOPY = 0x3c
2331 TCP_NODELAY = 0x1 2331 SPLICE_F_GIFT = 0x8
2332 TCP_NOTSENT_LOWAT = 0x19 2332 SPLICE_F_MORE = 0x4
2333 TCP_QUEUE_SEQ = 0x15 2333 SPLICE_F_MOVE = 0x1
2334 TCP_QUICKACK = 0xc 2334 SPLICE_F_NONBLOCK = 0x2
2335 TCP_REPAIR = 0x13 2335 SQUASHFS_MAGIC = 0x73717368
2336 TCP_REPAIR_OFF = 0x0 2336 STACK_END_MAGIC = 0x57ac6e9d
2337 TCP_REPAIR_OFF_NO_WP = -0x1 2337 STATX_ALL = 0xfff
2338 TCP_REPAIR_ON = 0x1 2338 STATX_ATIME = 0x20
2339 TCP_REPAIR_OPTIONS = 0x16 2339 STATX_ATTR_APPEND = 0x20
2340 TCP_REPAIR_QUEUE = 0x14 2340 STATX_ATTR_AUTOMOUNT = 0x1000
2341 TCP_REPAIR_WINDOW = 0x1d 2341 STATX_ATTR_COMPRESSED = 0x4
2342 TCP_SAVED_SYN = 0x1c 2342 STATX_ATTR_ENCRYPTED = 0x800
2343 TCP_SAVE_SYN = 0x1b 2343 STATX_ATTR_IMMUTABLE = 0x10
2344 TCP_SYNCNT = 0x7 2344 STATX_ATTR_NODUMP = 0x40
2345 TCP_S_DATA_IN = 0x4 2345 STATX_ATTR_VERITY = 0x100000
2346 TCP_S_DATA_OUT = 0x8 2346 STATX_BASIC_STATS = 0x7ff
2347 TCP_THIN_DUPACK = 0x11 2347 STATX_BLOCKS = 0x400
2348 TCP_THIN_LINEAR_TIMEOUTS = 0x10 2348 STATX_BTIME = 0x800
2349 TCP_TIMESTAMP = 0x18 2349 STATX_CTIME = 0x80
2350 TCP_ULP = 0x1f 2350 STATX_GID = 0x10
2351 TCP_USER_TIMEOUT = 0x12 2351 STATX_INO = 0x100
2352 TCP_WINDOW_CLAMP = 0xa 2352 STATX_MODE = 0x2
2353 TCP_ZEROCOPY_RECEIVE = 0x23 2353 STATX_MTIME = 0x40
2354 TCSAFLUSH = 0x2 2354 STATX_NLINK = 0x4
2355 TCSBRK = 0x5409 2355 STATX_SIZE = 0x200
2356 TCSBRKP = 0x5425 2356 STATX_TYPE = 0x1
2357 TCSETA = 0x5406 2357 STATX_UID = 0x8
2358 TCSETAF = 0x5408 2358 STATX__RESERVED = 0x80000000
2359 TCSETAW = 0x5407 2359 SYNC_FILE_RANGE_WAIT_AFTER = 0x4
2360 TCSETS = 0x5402 2360 SYNC_FILE_RANGE_WAIT_BEFORE = 0x1
2361 TCSETS2 = 0x402c542b 2361 SYNC_FILE_RANGE_WRITE = 0x2
2362 TCSETSF = 0x5404 2362 SYNC_FILE_RANGE_WRITE_AND_WAIT = 0x7
2363 TCSETSF2 = 0x402c542d 2363 SYSFS_MAGIC = 0x62656572
2364 TCSETSW = 0x5403 2364 S_BLKSIZE = 0x200
2365 TCSETSW2 = 0x402c542c 2365 S_IEXEC = 0x40
2366 TCSETX = 0x5433 2366 S_IFBLK = 0x6000
2367 TCSETXF = 0x5434 2367 S_IFCHR = 0x2000
2368 TCSETXW = 0x5435 2368 S_IFDIR = 0x4000
2369 TCXONC = 0x540a 2369 S_IFIFO = 0x1000
2370 TIMER_ABSTIME = 0x1 2370 S_IFLNK = 0xa000
2371 TIOCCBRK = 0x5428 2371 S_IFMT = 0xf000
2372 TIOCCONS = 0x541d 2372 S_IFREG = 0x8000
2373 TIOCEXCL = 0x540c 2373 S_IFSOCK = 0xc000
2374 TIOCGDEV = 0x80045432 2374 S_IREAD = 0x100
2375 TIOCGETD = 0x5424 2375 S_IRGRP = 0x20
2376 TIOCGEXCL = 0x80045440 2376 S_IROTH = 0x4
2377 TIOCGICOUNT = 0x545d 2377 S_IRUSR = 0x100
2378 TIOCGISO7816 = 0x80285442 2378 S_IRWXG = 0x38
2379 TIOCGLCKTRMIOS = 0x5456 2379 S_IRWXO = 0x7
2380 TIOCGPGRP = 0x540f 2380 S_IRWXU = 0x1c0
2381 TIOCGPKT = 0x80045438 2381 S_ISGID = 0x400
2382 TIOCGPTLCK = 0x80045439 2382 S_ISUID = 0x800
2383 TIOCGPTN = 0x80045430 2383 S_ISVTX = 0x200
2384 TIOCGPTPEER = 0x5441 2384 S_IWGRP = 0x10
2385 TIOCGRS485 = 0x542e 2385 S_IWOTH = 0x2
2386 TIOCGSERIAL = 0x541e 2386 S_IWRITE = 0x80
2387 TIOCGSID = 0x5429 2387 S_IWUSR = 0x80
2388 TIOCGSOFTCAR = 0x5419 2388 S_IXGRP = 0x8
2389 TIOCGWINSZ = 0x5413 2389 S_IXOTH = 0x1
2390 TIOCINQ = 0x541b 2390 S_IXUSR = 0x40
2391 TIOCLINUX = 0x541c 2391 TAB0 = 0x0
2392 TIOCMBIC = 0x5417 2392 TAB1 = 0x800
2393 TIOCMBIS = 0x5416 2393 TAB2 = 0x1000
2394 TIOCMGET = 0x5415 2394 TAB3 = 0x1800
2395 TIOCMIWAIT = 0x545c 2395 TABDLY = 0x1800
2396 TIOCMSET = 0x5418 2396 TASKSTATS_CMD_ATTR_MAX = 0x4
2397 TIOCM_CAR = 0x40 2397 TASKSTATS_CMD_MAX = 0x2
2398 TIOCM_CD = 0x40 2398 TASKSTATS_GENL_NAME = "TASKSTATS"
2399 TIOCM_CTS = 0x20 2399 TASKSTATS_GENL_VERSION = 0x1
2400 TIOCM_DSR = 0x100 2400 TASKSTATS_TYPE_MAX = 0x6
2401 TIOCM_DTR = 0x2 2401 TASKSTATS_VERSION = 0x9
2402 TIOCM_LE = 0x1 2402 TCFLSH = 0x540b
2403 TIOCM_RI = 0x80 2403 TCGETA = 0x5405
2404 TIOCM_RNG = 0x80 2404 TCGETS = 0x5401
2405 TIOCM_RTS = 0x4 2405 TCGETS2 = 0x802c542a
2406 TIOCM_SR = 0x10 2406 TCGETX = 0x5432
2407 TIOCM_ST = 0x8 2407 TCIFLUSH = 0x0
2408 TIOCNOTTY = 0x5422 2408 TCIOFF = 0x2
2409 TIOCNXCL = 0x540d 2409 TCIOFLUSH = 0x2
2410 TIOCOUTQ = 0x5411 2410 TCION = 0x3
2411 TIOCPKT = 0x5420 2411 TCOFLUSH = 0x1
2412 TIOCPKT_DATA = 0x0 2412 TCOOFF = 0x0
2413 TIOCPKT_DOSTOP = 0x20 2413 TCOON = 0x1
2414 TIOCPKT_FLUSHREAD = 0x1 2414 TCP_BPF_IW = 0x3e9
2415 TIOCPKT_FLUSHWRITE = 0x2 2415 TCP_BPF_SNDCWND_CLAMP = 0x3ea
2416 TIOCPKT_IOCTL = 0x40 2416 TCP_CC_INFO = 0x1a
2417 TIOCPKT_NOSTOP = 0x10 2417 TCP_CM_INQ = 0x24
2418 TIOCPKT_START = 0x8 2418 TCP_CONGESTION = 0xd
2419 TIOCPKT_STOP = 0x4 2419 TCP_COOKIE_IN_ALWAYS = 0x1
2420 TIOCSBRK = 0x5427 2420 TCP_COOKIE_MAX = 0x10
2421 TIOCSCTTY = 0x540e 2421 TCP_COOKIE_MIN = 0x8
2422 TIOCSERCONFIG = 0x5453 2422 TCP_COOKIE_OUT_NEVER = 0x2
2423 TIOCSERGETLSR = 0x5459 2423 TCP_COOKIE_PAIR_SIZE = 0x20
2424 TIOCSERGETMULTI = 0x545a 2424 TCP_COOKIE_TRANSACTIONS = 0xf
2425 TIOCSERGSTRUCT = 0x5458 2425 TCP_CORK = 0x3
2426 TIOCSERGWILD = 0x5454 2426 TCP_DEFER_ACCEPT = 0x9
2427 TIOCSERSETMULTI = 0x545b 2427 TCP_FASTOPEN = 0x17
2428 TIOCSERSWILD = 0x5455 2428 TCP_FASTOPEN_CONNECT = 0x1e
2429 TIOCSER_TEMT = 0x1 2429 TCP_FASTOPEN_KEY = 0x21
2430 TIOCSETD = 0x5423 2430 TCP_FASTOPEN_NO_COOKIE = 0x22
2431 TIOCSIG = 0x40045436 2431 TCP_INFO = 0xb
2432 TIOCSISO7816 = 0xc0285443 2432 TCP_INQ = 0x24
2433 TIOCSLCKTRMIOS = 0x5457 2433 TCP_KEEPCNT = 0x6
2434 TIOCSPGRP = 0x5410 2434 TCP_KEEPIDLE = 0x4
2435 TIOCSPTLCK = 0x40045431 2435 TCP_KEEPINTVL = 0x5
2436 TIOCSRS485 = 0x542f 2436 TCP_LINGER2 = 0x8
2437 TIOCSSERIAL = 0x541f 2437 TCP_MAXSEG = 0x2
2438 TIOCSSOFTCAR = 0x541a 2438 TCP_MAXWIN = 0xffff
2439 TIOCSTI = 0x5412 2439 TCP_MAX_WINSHIFT = 0xe
2440 TIOCSWINSZ = 0x5414 2440 TCP_MD5SIG = 0xe
2441 TIOCVHANGUP = 0x5437 2441 TCP_MD5SIG_EXT = 0x20
2442 TMPFS_MAGIC = 0x1021994 2442 TCP_MD5SIG_FLAG_PREFIX = 0x1
2443 TOSTOP = 0x100 2443 TCP_MD5SIG_MAXKEYLEN = 0x50
2444 TPACKET_ALIGNMENT = 0x10 2444 TCP_MSS = 0x200
2445 TPACKET_HDRLEN = 0x34 2445 TCP_MSS_DEFAULT = 0x218
2446 TP_STATUS_AVAILABLE = 0x0 2446 TCP_MSS_DESIRED = 0x4c4
2447 TP_STATUS_BLK_TMO = 0x20 2447 TCP_NODELAY = 0x1
2448 TP_STATUS_COPY = 0x2 2448 TCP_NOTSENT_LOWAT = 0x19
2449 TP_STATUS_CSUMNOTREADY = 0x8 2449 TCP_QUEUE_SEQ = 0x15
2450 TP_STATUS_CSUM_VALID = 0x80 2450 TCP_QUICKACK = 0xc
2451 TP_STATUS_KERNEL = 0x0 2451 TCP_REPAIR = 0x13
2452 TP_STATUS_LOSING = 0x4 2452 TCP_REPAIR_OFF = 0x0
2453 TP_STATUS_SENDING = 0x2 2453 TCP_REPAIR_OFF_NO_WP = -0x1
2454 TP_STATUS_SEND_REQUEST = 0x1 2454 TCP_REPAIR_ON = 0x1
2455 TP_STATUS_TS_RAW_HARDWARE = -0x80000000 2455 TCP_REPAIR_OPTIONS = 0x16
2456 TP_STATUS_TS_SOFTWARE = 0x20000000 2456 TCP_REPAIR_QUEUE = 0x14
2457 TP_STATUS_TS_SYS_HARDWARE = 0x40000000 2457 TCP_REPAIR_WINDOW = 0x1d
2458 TP_STATUS_USER = 0x1 2458 TCP_SAVED_SYN = 0x1c
2459 TP_STATUS_VLAN_TPID_VALID = 0x40 2459 TCP_SAVE_SYN = 0x1b
2460 TP_STATUS_VLAN_VALID = 0x10 2460 TCP_SYNCNT = 0x7
2461 TP_STATUS_WRONG_FORMAT = 0x4 2461 TCP_S_DATA_IN = 0x4
2462 TRACEFS_MAGIC = 0x74726163 2462 TCP_S_DATA_OUT = 0x8
2463 TS_COMM_LEN = 0x20 2463 TCP_THIN_DUPACK = 0x11
2464 TUNATTACHFILTER = 0x401054d5 2464 TCP_THIN_LINEAR_TIMEOUTS = 0x10
2465 TUNDETACHFILTER = 0x401054d6 2465 TCP_TIMESTAMP = 0x18
2466 TUNGETDEVNETNS = 0x54e3 2466 TCP_TX_DELAY = 0x25
2467 TUNGETFEATURES = 0x800454cf 2467 TCP_ULP = 0x1f
2468 TUNGETFILTER = 0x801054db 2468 TCP_USER_TIMEOUT = 0x12
2469 TUNGETIFF = 0x800454d2 2469 TCP_WINDOW_CLAMP = 0xa
2470 TUNGETSNDBUF = 0x800454d3 2470 TCP_ZEROCOPY_RECEIVE = 0x23
2471 TUNGETVNETBE = 0x800454df 2471 TCSAFLUSH = 0x2
2472 TUNGETVNETHDRSZ = 0x800454d7 2472 TCSBRK = 0x5409
2473 TUNGETVNETLE = 0x800454dd 2473 TCSBRKP = 0x5425
2474 TUNSETCARRIER = 0x400454e2 2474 TCSETA = 0x5406
2475 TUNSETDEBUG = 0x400454c9 2475 TCSETAF = 0x5408
2476 TUNSETFILTEREBPF = 0x800454e1 2476 TCSETAW = 0x5407
2477 TUNSETGROUP = 0x400454ce 2477 TCSETS = 0x5402
2478 TUNSETIFF = 0x400454ca 2478 TCSETS2 = 0x402c542b
2479 TUNSETIFINDEX = 0x400454da 2479 TCSETSF = 0x5404
2480 TUNSETLINK = 0x400454cd 2480 TCSETSF2 = 0x402c542d
2481 TUNSETNOCSUM = 0x400454c8 2481 TCSETSW = 0x5403
2482 TUNSETOFFLOAD = 0x400454d0 2482 TCSETSW2 = 0x402c542c
2483 TUNSETOWNER = 0x400454cc 2483 TCSETX = 0x5433
2484 TUNSETPERSIST = 0x400454cb 2484 TCSETXF = 0x5434
2485 TUNSETQUEUE = 0x400454d9 2485 TCSETXW = 0x5435
2486 TUNSETSNDBUF = 0x400454d4 2486 TCXONC = 0x540a
2487 TUNSETSTEERINGEBPF = 0x800454e0 2487 TIMER_ABSTIME = 0x1
2488 TUNSETTXFILTER = 0x400454d1 2488 TIOCCBRK = 0x5428
2489 TUNSETVNETBE = 0x400454de 2489 TIOCCONS = 0x541d
2490 TUNSETVNETHDRSZ = 0x400454d8 2490 TIOCEXCL = 0x540c
2491 TUNSETVNETLE = 0x400454dc 2491 TIOCGDEV = 0x80045432
2492 UBI_IOCATT = 0x40186f40 2492 TIOCGETD = 0x5424
2493 UBI_IOCDET = 0x40046f41 2493 TIOCGEXCL = 0x80045440
2494 UBI_IOCEBCH = 0x40044f02 2494 TIOCGICOUNT = 0x545d
2495 UBI_IOCEBER = 0x40044f01 2495 TIOCGISO7816 = 0x80285442
2496 UBI_IOCEBISMAP = 0x80044f05 2496 TIOCGLCKTRMIOS = 0x5456
2497 UBI_IOCEBMAP = 0x40084f03 2497 TIOCGPGRP = 0x540f
2498 UBI_IOCEBUNMAP = 0x40044f04 2498 TIOCGPKT = 0x80045438
2499 UBI_IOCMKVOL = 0x40986f00 2499 TIOCGPTLCK = 0x80045439
2500 UBI_IOCRMVOL = 0x40046f01 2500 TIOCGPTN = 0x80045430
2501 UBI_IOCRNVOL = 0x51106f03 2501 TIOCGPTPEER = 0x5441
2502 UBI_IOCRPEB = 0x40046f04 2502 TIOCGRS485 = 0x542e
2503 UBI_IOCRSVOL = 0x400c6f02 2503 TIOCGSERIAL = 0x541e
2504 UBI_IOCSETVOLPROP = 0x40104f06 2504 TIOCGSID = 0x5429
2505 UBI_IOCSPEB = 0x40046f05 2505 TIOCGSOFTCAR = 0x5419
2506 UBI_IOCVOLCRBLK = 0x40804f07 2506 TIOCGWINSZ = 0x5413
2507 UBI_IOCVOLRMBLK = 0x4f08 2507 TIOCINQ = 0x541b
2508 UBI_IOCVOLUP = 0x40084f00 2508 TIOCLINUX = 0x541c
2509 UDF_SUPER_MAGIC = 0x15013346 2509 TIOCMBIC = 0x5417
2510 UMOUNT_NOFOLLOW = 0x8 2510 TIOCMBIS = 0x5416
2511 USBDEVICE_SUPER_MAGIC = 0x9fa2 2511 TIOCMGET = 0x5415
2512 UTIME_NOW = 0x3fffffff 2512 TIOCMIWAIT = 0x545c
2513 UTIME_OMIT = 0x3ffffffe 2513 TIOCMSET = 0x5418
2514 V9FS_MAGIC = 0x1021997 2514 TIOCM_CAR = 0x40
2515 VDISCARD = 0xd 2515 TIOCM_CD = 0x40
2516 VEOF = 0x4 2516 TIOCM_CTS = 0x20
2517 VEOL = 0xb 2517 TIOCM_DSR = 0x100
2518 VEOL2 = 0x10 2518 TIOCM_DTR = 0x2
2519 VERASE = 0x2 2519 TIOCM_LE = 0x1
2520 VINTR = 0x0 2520 TIOCM_RI = 0x80
2521 VKILL = 0x3 2521 TIOCM_RNG = 0x80
2522 VLNEXT = 0xf 2522 TIOCM_RTS = 0x4
2523 VMADDR_CID_ANY = 0xffffffff 2523 TIOCM_SR = 0x10
2524 VMADDR_CID_HOST = 0x2 2524 TIOCM_ST = 0x8
2525 VMADDR_CID_HYPERVISOR = 0x0 2525 TIOCNOTTY = 0x5422
2526 VMADDR_CID_RESERVED = 0x1 2526 TIOCNXCL = 0x540d
2527 VMADDR_PORT_ANY = 0xffffffff 2527 TIOCOUTQ = 0x5411
2528 VMIN = 0x6 2528 TIOCPKT = 0x5420
2529 VM_SOCKETS_INVALID_VERSION = 0xffffffff 2529 TIOCPKT_DATA = 0x0
2530 VQUIT = 0x1 2530 TIOCPKT_DOSTOP = 0x20
2531 VREPRINT = 0xc 2531 TIOCPKT_FLUSHREAD = 0x1
2532 VSTART = 0x8 2532 TIOCPKT_FLUSHWRITE = 0x2
2533 VSTOP = 0x9 2533 TIOCPKT_IOCTL = 0x40
2534 VSUSP = 0xa 2534 TIOCPKT_NOSTOP = 0x10
2535 VSWTC = 0x7 2535 TIOCPKT_START = 0x8
2536 VT0 = 0x0 2536 TIOCPKT_STOP = 0x4
2537 VT1 = 0x4000 2537 TIOCSBRK = 0x5427
2538 VTDLY = 0x4000 2538 TIOCSCTTY = 0x540e
2539 VTIME = 0x5 2539 TIOCSERCONFIG = 0x5453
2540 VWERASE = 0xe 2540 TIOCSERGETLSR = 0x5459
2541 WALL = 0x40000000 2541 TIOCSERGETMULTI = 0x545a
2542 WCLONE = 0x80000000 2542 TIOCSERGSTRUCT = 0x5458
2543 WCONTINUED = 0x8 2543 TIOCSERGWILD = 0x5454
2544 WDIOC_GETBOOTSTATUS = 0x80045702 2544 TIOCSERSETMULTI = 0x545b
2545 WDIOC_GETPRETIMEOUT = 0x80045709 2545 TIOCSERSWILD = 0x5455
2546 WDIOC_GETSTATUS = 0x80045701 2546 TIOCSER_TEMT = 0x1
2547 WDIOC_GETSUPPORT = 0x80285700 2547 TIOCSETD = 0x5423
2548 WDIOC_GETTEMP = 0x80045703 2548 TIOCSIG = 0x40045436
2549 WDIOC_GETTIMELEFT = 0x8004570a 2549 TIOCSISO7816 = 0xc0285443
2550 WDIOC_GETTIMEOUT = 0x80045707 2550 TIOCSLCKTRMIOS = 0x5457
2551 WDIOC_KEEPALIVE = 0x80045705 2551 TIOCSPGRP = 0x5410
2552 WDIOC_SETOPTIONS = 0x80045704 2552 TIOCSPTLCK = 0x40045431
2553 WDIOC_SETPRETIMEOUT = 0xc0045708 2553 TIOCSRS485 = 0x542f
2554 WDIOC_SETTIMEOUT = 0xc0045706 2554 TIOCSSERIAL = 0x541f
2555 WEXITED = 0x4 2555 TIOCSSOFTCAR = 0x541a
2556 WIN_ACKMEDIACHANGE = 0xdb 2556 TIOCSTI = 0x5412
2557 WIN_CHECKPOWERMODE1 = 0xe5 2557 TIOCSWINSZ = 0x5414
2558 WIN_CHECKPOWERMODE2 = 0x98 2558 TIOCVHANGUP = 0x5437
2559 WIN_DEVICE_RESET = 0x8 2559 TIPC_ADDR_ID = 0x3
2560 WIN_DIAGNOSE = 0x90 2560 TIPC_ADDR_MCAST = 0x1
2561 WIN_DOORLOCK = 0xde 2561 TIPC_ADDR_NAME = 0x2
2562 WIN_DOORUNLOCK = 0xdf 2562 TIPC_ADDR_NAMESEQ = 0x1
2563 WIN_DOWNLOAD_MICROCODE = 0x92 2563 TIPC_AEAD_ALG_NAME = 0x20
2564 WIN_FLUSH_CACHE = 0xe7 2564 TIPC_AEAD_KEYLEN_MAX = 0x24
2565 WIN_FLUSH_CACHE_EXT = 0xea 2565 TIPC_AEAD_KEYLEN_MIN = 0x14
2566 WIN_FORMAT = 0x50 2566 TIPC_AEAD_KEY_SIZE_MAX = 0x48
2567 WIN_GETMEDIASTATUS = 0xda 2567 TIPC_CFG_SRV = 0x0
2568 WIN_IDENTIFY = 0xec 2568 TIPC_CLUSTER_BITS = 0xc
2569 WIN_IDENTIFY_DMA = 0xee 2569 TIPC_CLUSTER_MASK = 0xfff000
2570 WIN_IDLEIMMEDIATE = 0xe1 2570 TIPC_CLUSTER_OFFSET = 0xc
2571 WIN_INIT = 0x60 2571 TIPC_CLUSTER_SIZE = 0xfff
2572 WIN_MEDIAEJECT = 0xed 2572 TIPC_CONN_SHUTDOWN = 0x5
2573 WIN_MULTREAD = 0xc4 2573 TIPC_CONN_TIMEOUT = 0x82
2574 WIN_MULTREAD_EXT = 0x29 2574 TIPC_CRITICAL_IMPORTANCE = 0x3
2575 WIN_MULTWRITE = 0xc5 2575 TIPC_DESTNAME = 0x3
2576 WIN_MULTWRITE_EXT = 0x39 2576 TIPC_DEST_DROPPABLE = 0x81
2577 WIN_NOP = 0x0 2577 TIPC_ERRINFO = 0x1
2578 WIN_PACKETCMD = 0xa0 2578 TIPC_ERR_NO_NAME = 0x1
2579 WIN_PIDENTIFY = 0xa1 2579 TIPC_ERR_NO_NODE = 0x3
2580 WIN_POSTBOOT = 0xdc 2580 TIPC_ERR_NO_PORT = 0x2
2581 WIN_PREBOOT = 0xdd 2581 TIPC_ERR_OVERLOAD = 0x4
2582 WIN_QUEUED_SERVICE = 0xa2 2582 TIPC_GROUP_JOIN = 0x87
2583 WIN_READ = 0x20 2583 TIPC_GROUP_LEAVE = 0x88
2584 WIN_READDMA = 0xc8 2584 TIPC_GROUP_LOOPBACK = 0x1
2585 WIN_READDMA_EXT = 0x25 2585 TIPC_GROUP_MEMBER_EVTS = 0x2
2586 WIN_READDMA_ONCE = 0xc9 2586 TIPC_HIGH_IMPORTANCE = 0x2
2587 WIN_READDMA_QUEUED = 0xc7 2587 TIPC_IMPORTANCE = 0x7f
2588 WIN_READDMA_QUEUED_EXT = 0x26 2588 TIPC_LINK_STATE = 0x2
2589 WIN_READ_BUFFER = 0xe4 2589 TIPC_LOW_IMPORTANCE = 0x0
2590 WIN_READ_EXT = 0x24 2590 TIPC_MAX_BEARER_NAME = 0x20
2591 WIN_READ_LONG = 0x22 2591 TIPC_MAX_IF_NAME = 0x10
2592 WIN_READ_LONG_ONCE = 0x23 2592 TIPC_MAX_LINK_NAME = 0x44
2593 WIN_READ_NATIVE_MAX = 0xf8 2593 TIPC_MAX_MEDIA_NAME = 0x10
2594 WIN_READ_NATIVE_MAX_EXT = 0x27 2594 TIPC_MAX_USER_MSG_SIZE = 0x101d0
2595 WIN_READ_ONCE = 0x21 2595 TIPC_MCAST_BROADCAST = 0x85
2596 WIN_RECAL = 0x10 2596 TIPC_MCAST_REPLICAST = 0x86
2597 WIN_RESTORE = 0x10 2597 TIPC_MEDIUM_IMPORTANCE = 0x1
2598 WIN_SECURITY_DISABLE = 0xf6 2598 TIPC_NODEID_LEN = 0x10
2599 WIN_SECURITY_ERASE_PREPARE = 0xf3 2599 TIPC_NODELAY = 0x8a
2600 WIN_SECURITY_ERASE_UNIT = 0xf4 2600 TIPC_NODE_BITS = 0xc
2601 WIN_SECURITY_FREEZE_LOCK = 0xf5 2601 TIPC_NODE_MASK = 0xfff
2602 WIN_SECURITY_SET_PASS = 0xf1 2602 TIPC_NODE_OFFSET = 0x0
2603 WIN_SECURITY_UNLOCK = 0xf2 2603 TIPC_NODE_RECVQ_DEPTH = 0x83
2604 WIN_SEEK = 0x70 2604 TIPC_NODE_SIZE = 0xfff
2605 WIN_SETFEATURES = 0xef 2605 TIPC_NODE_STATE = 0x0
2606 WIN_SETIDLE1 = 0xe3 2606 TIPC_OK = 0x0
2607 WIN_SETIDLE2 = 0x97 2607 TIPC_PUBLISHED = 0x1
2608 WIN_SETMULT = 0xc6 2608 TIPC_RESERVED_TYPES = 0x40
2609 WIN_SET_MAX = 0xf9 2609 TIPC_RETDATA = 0x2
2610 WIN_SET_MAX_EXT = 0x37 2610 TIPC_SERVICE_ADDR = 0x2
2611 WIN_SLEEPNOW1 = 0xe6 2611 TIPC_SERVICE_RANGE = 0x1
2612 WIN_SLEEPNOW2 = 0x99 2612 TIPC_SOCKET_ADDR = 0x3
2613 WIN_SMART = 0xb0 2613 TIPC_SOCK_RECVQ_DEPTH = 0x84
2614 WIN_SPECIFY = 0x91 2614 TIPC_SOCK_RECVQ_USED = 0x89
2615 WIN_SRST = 0x8 2615 TIPC_SRC_DROPPABLE = 0x80
2616 WIN_STANDBY = 0xe2 2616 TIPC_SUBSCR_TIMEOUT = 0x3
2617 WIN_STANDBY2 = 0x96 2617 TIPC_SUB_CANCEL = 0x4
2618 WIN_STANDBYNOW1 = 0xe0 2618 TIPC_SUB_PORTS = 0x1
2619 WIN_STANDBYNOW2 = 0x94 2619 TIPC_SUB_SERVICE = 0x2
2620 WIN_VERIFY = 0x40 2620 TIPC_TOP_SRV = 0x1
2621 WIN_VERIFY_EXT = 0x42 2621 TIPC_WAIT_FOREVER = 0xffffffff
2622 WIN_VERIFY_ONCE = 0x41 2622 TIPC_WITHDRAWN = 0x2
2623 WIN_WRITE = 0x30 2623 TIPC_ZONE_BITS = 0x8
2624 WIN_WRITEDMA = 0xca 2624 TIPC_ZONE_CLUSTER_MASK = 0xfffff000
2625 WIN_WRITEDMA_EXT = 0x35 2625 TIPC_ZONE_MASK = 0xff000000
2626 WIN_WRITEDMA_ONCE = 0xcb 2626 TIPC_ZONE_OFFSET = 0x18
2627 WIN_WRITEDMA_QUEUED = 0xcc 2627 TIPC_ZONE_SCOPE = 0x1
2628 WIN_WRITEDMA_QUEUED_EXT = 0x36 2628 TIPC_ZONE_SIZE = 0xff
2629 WIN_WRITE_BUFFER = 0xe8 2629 TMPFS_MAGIC = 0x1021994
2630 WIN_WRITE_EXT = 0x34 2630 TOSTOP = 0x100
2631 WIN_WRITE_LONG = 0x32 2631 TPACKET_ALIGNMENT = 0x10
2632 WIN_WRITE_LONG_ONCE = 0x33 2632 TPACKET_HDRLEN = 0x34
2633 WIN_WRITE_ONCE = 0x31 2633 TP_STATUS_AVAILABLE = 0x0
2634 WIN_WRITE_SAME = 0xe9 2634 TP_STATUS_BLK_TMO = 0x20
2635 WIN_WRITE_VERIFY = 0x3c 2635 TP_STATUS_COPY = 0x2
2636 WNOHANG = 0x1 2636 TP_STATUS_CSUMNOTREADY = 0x8
2637 WNOTHREAD = 0x20000000 2637 TP_STATUS_CSUM_VALID = 0x80
2638 WNOWAIT = 0x1000000 2638 TP_STATUS_KERNEL = 0x0
2639 WORDSIZE = 0x40 2639 TP_STATUS_LOSING = 0x4
2640 WSTOPPED = 0x2 2640 TP_STATUS_SENDING = 0x2
2641 WUNTRACED = 0x2 2641 TP_STATUS_SEND_REQUEST = 0x1
2642 XATTR_CREATE = 0x1 2642 TP_STATUS_TS_RAW_HARDWARE = 0x80000000
2643 XATTR_REPLACE = 0x2 2643 TP_STATUS_TS_SOFTWARE = 0x20000000
2644 XCASE = 0x4 2644 TP_STATUS_TS_SYS_HARDWARE = 0x40000000
2645 XDP_COPY = 0x2 2645 TP_STATUS_USER = 0x1
2646 XDP_FLAGS_DRV_MODE = 0x4 2646 TP_STATUS_VLAN_TPID_VALID = 0x40
2647 XDP_FLAGS_HW_MODE = 0x8 2647 TP_STATUS_VLAN_VALID = 0x10
2648 XDP_FLAGS_MASK = 0xf 2648 TP_STATUS_WRONG_FORMAT = 0x4
2649 XDP_FLAGS_MODES = 0xe 2649 TRACEFS_MAGIC = 0x74726163
2650 XDP_FLAGS_SKB_MODE = 0x2 2650 TS_COMM_LEN = 0x20
2651 XDP_FLAGS_UPDATE_IF_NOEXIST = 0x1 2651 TUNATTACHFILTER = 0x401054d5
2652 XDP_MMAP_OFFSETS = 0x1 2652 TUNDETACHFILTER = 0x401054d6
2653 XDP_PACKET_HEADROOM = 0x100 2653 TUNGETDEVNETNS = 0x54e3
2654 XDP_PGOFF_RX_RING = 0x0 2654 TUNGETFEATURES = 0x800454cf
2655 XDP_PGOFF_TX_RING = 0x80000000 2655 TUNGETFILTER = 0x801054db
2656 XDP_RX_RING = 0x2 2656 TUNGETIFF = 0x800454d2
2657 XDP_SHARED_UMEM = 0x1 2657 TUNGETSNDBUF = 0x800454d3
2658 XDP_STATISTICS = 0x7 2658 TUNGETVNETBE = 0x800454df
2659 XDP_TX_RING = 0x3 2659 TUNGETVNETHDRSZ = 0x800454d7
2660 XDP_UMEM_COMPLETION_RING = 0x6 2660 TUNGETVNETLE = 0x800454dd
2661 XDP_UMEM_FILL_RING = 0x5 2661 TUNSETCARRIER = 0x400454e2
2662 XDP_UMEM_PGOFF_COMPLETION_RING = 0x180000000 2662 TUNSETDEBUG = 0x400454c9
2663 XDP_UMEM_PGOFF_FILL_RING = 0x100000000 2663 TUNSETFILTEREBPF = 0x800454e1
2664 XDP_UMEM_REG = 0x4 2664 TUNSETGROUP = 0x400454ce
2665 XDP_ZEROCOPY = 0x4 2665 TUNSETIFF = 0x400454ca
2666 XENFS_SUPER_MAGIC = 0xabba1974 2666 TUNSETIFINDEX = 0x400454da
2667 XFS_SUPER_MAGIC = 0x58465342 2667 TUNSETLINK = 0x400454cd
2668 XTABS = 0x1800 2668 TUNSETNOCSUM = 0x400454c8
2669 ZSMALLOC_MAGIC = 0x58295829 2669 TUNSETOFFLOAD = 0x400454d0
2670 TUNSETOWNER = 0x400454cc
2671 TUNSETPERSIST = 0x400454cb
2672 TUNSETQUEUE = 0x400454d9
2673 TUNSETSNDBUF = 0x400454d4
2674 TUNSETSTEERINGEBPF = 0x800454e0
2675 TUNSETTXFILTER = 0x400454d1
2676 TUNSETVNETBE = 0x400454de
2677 TUNSETVNETHDRSZ = 0x400454d8
2678 TUNSETVNETLE = 0x400454dc
2679 UBI_IOCATT = 0x40186f40
2680 UBI_IOCDET = 0x40046f41
2681 UBI_IOCEBCH = 0x40044f02
2682 UBI_IOCEBER = 0x40044f01
2683 UBI_IOCEBISMAP = 0x80044f05
2684 UBI_IOCEBMAP = 0x40084f03
2685 UBI_IOCEBUNMAP = 0x40044f04
2686 UBI_IOCMKVOL = 0x40986f00
2687 UBI_IOCRMVOL = 0x40046f01
2688 UBI_IOCRNVOL = 0x51106f03
2689 UBI_IOCRPEB = 0x40046f04
2690 UBI_IOCRSVOL = 0x400c6f02
2691 UBI_IOCSETVOLPROP = 0x40104f06
2692 UBI_IOCSPEB = 0x40046f05
2693 UBI_IOCVOLCRBLK = 0x40804f07
2694 UBI_IOCVOLRMBLK = 0x4f08
2695 UBI_IOCVOLUP = 0x40084f00
2696 UDF_SUPER_MAGIC = 0x15013346
2697 UMOUNT_NOFOLLOW = 0x8
2698 USBDEVICE_SUPER_MAGIC = 0x9fa2
2699 UTIME_NOW = 0x3fffffff
2700 UTIME_OMIT = 0x3ffffffe
2701 V9FS_MAGIC = 0x1021997
2702 VDISCARD = 0xd
2703 VEOF = 0x4
2704 VEOL = 0xb
2705 VEOL2 = 0x10
2706 VERASE = 0x2
2707 VINTR = 0x0
2708 VKILL = 0x3
2709 VLNEXT = 0xf
2710 VMADDR_CID_ANY = 0xffffffff
2711 VMADDR_CID_HOST = 0x2
2712 VMADDR_CID_HYPERVISOR = 0x0
2713 VMADDR_CID_RESERVED = 0x1
2714 VMADDR_PORT_ANY = 0xffffffff
2715 VMIN = 0x6
2716 VM_SOCKETS_INVALID_VERSION = 0xffffffff
2717 VQUIT = 0x1
2718 VREPRINT = 0xc
2719 VSTART = 0x8
2720 VSTOP = 0x9
2721 VSUSP = 0xa
2722 VSWTC = 0x7
2723 VT0 = 0x0
2724 VT1 = 0x4000
2725 VTDLY = 0x4000
2726 VTIME = 0x5
2727 VWERASE = 0xe
2728 WALL = 0x40000000
2729 WCLONE = 0x80000000
2730 WCONTINUED = 0x8
2731 WDIOC_GETBOOTSTATUS = 0x80045702
2732 WDIOC_GETPRETIMEOUT = 0x80045709
2733 WDIOC_GETSTATUS = 0x80045701
2734 WDIOC_GETSUPPORT = 0x80285700
2735 WDIOC_GETTEMP = 0x80045703
2736 WDIOC_GETTIMELEFT = 0x8004570a
2737 WDIOC_GETTIMEOUT = 0x80045707
2738 WDIOC_KEEPALIVE = 0x80045705
2739 WDIOC_SETOPTIONS = 0x80045704
2740 WDIOC_SETPRETIMEOUT = 0xc0045708
2741 WDIOC_SETTIMEOUT = 0xc0045706
2742 WEXITED = 0x4
2743 WIN_ACKMEDIACHANGE = 0xdb
2744 WIN_CHECKPOWERMODE1 = 0xe5
2745 WIN_CHECKPOWERMODE2 = 0x98
2746 WIN_DEVICE_RESET = 0x8
2747 WIN_DIAGNOSE = 0x90
2748 WIN_DOORLOCK = 0xde
2749 WIN_DOORUNLOCK = 0xdf
2750 WIN_DOWNLOAD_MICROCODE = 0x92
2751 WIN_FLUSH_CACHE = 0xe7
2752 WIN_FLUSH_CACHE_EXT = 0xea
2753 WIN_FORMAT = 0x50
2754 WIN_GETMEDIASTATUS = 0xda
2755 WIN_IDENTIFY = 0xec
2756 WIN_IDENTIFY_DMA = 0xee
2757 WIN_IDLEIMMEDIATE = 0xe1
2758 WIN_INIT = 0x60
2759 WIN_MEDIAEJECT = 0xed
2760 WIN_MULTREAD = 0xc4
2761 WIN_MULTREAD_EXT = 0x29
2762 WIN_MULTWRITE = 0xc5
2763 WIN_MULTWRITE_EXT = 0x39
2764 WIN_NOP = 0x0
2765 WIN_PACKETCMD = 0xa0
2766 WIN_PIDENTIFY = 0xa1
2767 WIN_POSTBOOT = 0xdc
2768 WIN_PREBOOT = 0xdd
2769 WIN_QUEUED_SERVICE = 0xa2
2770 WIN_READ = 0x20
2771 WIN_READDMA = 0xc8
2772 WIN_READDMA_EXT = 0x25
2773 WIN_READDMA_ONCE = 0xc9
2774 WIN_READDMA_QUEUED = 0xc7
2775 WIN_READDMA_QUEUED_EXT = 0x26
2776 WIN_READ_BUFFER = 0xe4
2777 WIN_READ_EXT = 0x24
2778 WIN_READ_LONG = 0x22
2779 WIN_READ_LONG_ONCE = 0x23
2780 WIN_READ_NATIVE_MAX = 0xf8
2781 WIN_READ_NATIVE_MAX_EXT = 0x27
2782 WIN_READ_ONCE = 0x21
2783 WIN_RECAL = 0x10
2784 WIN_RESTORE = 0x10
2785 WIN_SECURITY_DISABLE = 0xf6
2786 WIN_SECURITY_ERASE_PREPARE = 0xf3
2787 WIN_SECURITY_ERASE_UNIT = 0xf4
2788 WIN_SECURITY_FREEZE_LOCK = 0xf5
2789 WIN_SECURITY_SET_PASS = 0xf1
2790 WIN_SECURITY_UNLOCK = 0xf2
2791 WIN_SEEK = 0x70
2792 WIN_SETFEATURES = 0xef
2793 WIN_SETIDLE1 = 0xe3
2794 WIN_SETIDLE2 = 0x97
2795 WIN_SETMULT = 0xc6
2796 WIN_SET_MAX = 0xf9
2797 WIN_SET_MAX_EXT = 0x37
2798 WIN_SLEEPNOW1 = 0xe6
2799 WIN_SLEEPNOW2 = 0x99
2800 WIN_SMART = 0xb0
2801 WIN_SPECIFY = 0x91
2802 WIN_SRST = 0x8
2803 WIN_STANDBY = 0xe2
2804 WIN_STANDBY2 = 0x96
2805 WIN_STANDBYNOW1 = 0xe0
2806 WIN_STANDBYNOW2 = 0x94
2807 WIN_VERIFY = 0x40
2808 WIN_VERIFY_EXT = 0x42
2809 WIN_VERIFY_ONCE = 0x41
2810 WIN_WRITE = 0x30
2811 WIN_WRITEDMA = 0xca
2812 WIN_WRITEDMA_EXT = 0x35
2813 WIN_WRITEDMA_ONCE = 0xcb
2814 WIN_WRITEDMA_QUEUED = 0xcc
2815 WIN_WRITEDMA_QUEUED_EXT = 0x36
2816 WIN_WRITE_BUFFER = 0xe8
2817 WIN_WRITE_EXT = 0x34
2818 WIN_WRITE_LONG = 0x32
2819 WIN_WRITE_LONG_ONCE = 0x33
2820 WIN_WRITE_ONCE = 0x31
2821 WIN_WRITE_SAME = 0xe9
2822 WIN_WRITE_VERIFY = 0x3c
2823 WNOHANG = 0x1
2824 WNOTHREAD = 0x20000000
2825 WNOWAIT = 0x1000000
2826 WORDSIZE = 0x40
2827 WSTOPPED = 0x2
2828 WUNTRACED = 0x2
2829 XATTR_CREATE = 0x1
2830 XATTR_REPLACE = 0x2
2831 XCASE = 0x4
2832 XDP_COPY = 0x2
2833 XDP_FLAGS_DRV_MODE = 0x4
2834 XDP_FLAGS_HW_MODE = 0x8
2835 XDP_FLAGS_MASK = 0xf
2836 XDP_FLAGS_MODES = 0xe
2837 XDP_FLAGS_SKB_MODE = 0x2
2838 XDP_FLAGS_UPDATE_IF_NOEXIST = 0x1
2839 XDP_MMAP_OFFSETS = 0x1
2840 XDP_OPTIONS = 0x8
2841 XDP_OPTIONS_ZEROCOPY = 0x1
2842 XDP_PACKET_HEADROOM = 0x100
2843 XDP_PGOFF_RX_RING = 0x0
2844 XDP_PGOFF_TX_RING = 0x80000000
2845 XDP_RING_NEED_WAKEUP = 0x1
2846 XDP_RX_RING = 0x2
2847 XDP_SHARED_UMEM = 0x1
2848 XDP_STATISTICS = 0x7
2849 XDP_TX_RING = 0x3
2850 XDP_UMEM_COMPLETION_RING = 0x6
2851 XDP_UMEM_FILL_RING = 0x5
2852 XDP_UMEM_PGOFF_COMPLETION_RING = 0x180000000
2853 XDP_UMEM_PGOFF_FILL_RING = 0x100000000
2854 XDP_UMEM_REG = 0x4
2855 XDP_UMEM_UNALIGNED_CHUNK_FLAG = 0x1
2856 XDP_USE_NEED_WAKEUP = 0x8
2857 XDP_ZEROCOPY = 0x4
2858 XENFS_SUPER_MAGIC = 0xabba1974
2859 XFS_SUPER_MAGIC = 0x58465342
2860 XTABS = 0x1800
2861 Z3FOLD_MAGIC = 0x33
2862 ZSMALLOC_MAGIC = 0x58295829
2670) 2863)
2671 2864
2672// Errors 2865// Errors
diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_arm.go b/vendor/golang.org/x/sys/unix/zerrors_linux_arm.go
index f5f5ee5..76b3d3b 100644
--- a/vendor/golang.org/x/sys/unix/zerrors_linux_arm.go
+++ b/vendor/golang.org/x/sys/unix/zerrors_linux_arm.go
@@ -11,2668 +11,2861 @@ package unix
11import "syscall" 11import "syscall"
12 12
13const ( 13const (
14 AAFS_MAGIC = 0x5a3c69f0 14 AAFS_MAGIC = 0x5a3c69f0
15 ADFS_SUPER_MAGIC = 0xadf5 15 ADFS_SUPER_MAGIC = 0xadf5
16 AFFS_SUPER_MAGIC = 0xadff 16 AFFS_SUPER_MAGIC = 0xadff
17 AFS_FS_MAGIC = 0x6b414653 17 AFS_FS_MAGIC = 0x6b414653
18 AFS_SUPER_MAGIC = 0x5346414f 18 AFS_SUPER_MAGIC = 0x5346414f
19 AF_ALG = 0x26 19 AF_ALG = 0x26
20 AF_APPLETALK = 0x5 20 AF_APPLETALK = 0x5
21 AF_ASH = 0x12 21 AF_ASH = 0x12
22 AF_ATMPVC = 0x8 22 AF_ATMPVC = 0x8
23 AF_ATMSVC = 0x14 23 AF_ATMSVC = 0x14
24 AF_AX25 = 0x3 24 AF_AX25 = 0x3
25 AF_BLUETOOTH = 0x1f 25 AF_BLUETOOTH = 0x1f
26 AF_BRIDGE = 0x7 26 AF_BRIDGE = 0x7
27 AF_CAIF = 0x25 27 AF_CAIF = 0x25
28 AF_CAN = 0x1d 28 AF_CAN = 0x1d
29 AF_DECnet = 0xc 29 AF_DECnet = 0xc
30 AF_ECONET = 0x13 30 AF_ECONET = 0x13
31 AF_FILE = 0x1 31 AF_FILE = 0x1
32 AF_IB = 0x1b 32 AF_IB = 0x1b
33 AF_IEEE802154 = 0x24 33 AF_IEEE802154 = 0x24
34 AF_INET = 0x2 34 AF_INET = 0x2
35 AF_INET6 = 0xa 35 AF_INET6 = 0xa
36 AF_IPX = 0x4 36 AF_IPX = 0x4
37 AF_IRDA = 0x17 37 AF_IRDA = 0x17
38 AF_ISDN = 0x22 38 AF_ISDN = 0x22
39 AF_IUCV = 0x20 39 AF_IUCV = 0x20
40 AF_KCM = 0x29 40 AF_KCM = 0x29
41 AF_KEY = 0xf 41 AF_KEY = 0xf
42 AF_LLC = 0x1a 42 AF_LLC = 0x1a
43 AF_LOCAL = 0x1 43 AF_LOCAL = 0x1
44 AF_MAX = 0x2d 44 AF_MAX = 0x2d
45 AF_MPLS = 0x1c 45 AF_MPLS = 0x1c
46 AF_NETBEUI = 0xd 46 AF_NETBEUI = 0xd
47 AF_NETLINK = 0x10 47 AF_NETLINK = 0x10
48 AF_NETROM = 0x6 48 AF_NETROM = 0x6
49 AF_NFC = 0x27 49 AF_NFC = 0x27
50 AF_PACKET = 0x11 50 AF_PACKET = 0x11
51 AF_PHONET = 0x23 51 AF_PHONET = 0x23
52 AF_PPPOX = 0x18 52 AF_PPPOX = 0x18
53 AF_QIPCRTR = 0x2a 53 AF_QIPCRTR = 0x2a
54 AF_RDS = 0x15 54 AF_RDS = 0x15
55 AF_ROSE = 0xb 55 AF_ROSE = 0xb
56 AF_ROUTE = 0x10 56 AF_ROUTE = 0x10
57 AF_RXRPC = 0x21 57 AF_RXRPC = 0x21
58 AF_SECURITY = 0xe 58 AF_SECURITY = 0xe
59 AF_SMC = 0x2b 59 AF_SMC = 0x2b
60 AF_SNA = 0x16 60 AF_SNA = 0x16
61 AF_TIPC = 0x1e 61 AF_TIPC = 0x1e
62 AF_UNIX = 0x1 62 AF_UNIX = 0x1
63 AF_UNSPEC = 0x0 63 AF_UNSPEC = 0x0
64 AF_VSOCK = 0x28 64 AF_VSOCK = 0x28
65 AF_WANPIPE = 0x19 65 AF_WANPIPE = 0x19
66 AF_X25 = 0x9 66 AF_X25 = 0x9
67 AF_XDP = 0x2c 67 AF_XDP = 0x2c
68 ALG_OP_DECRYPT = 0x0 68 ALG_OP_DECRYPT = 0x0
69 ALG_OP_ENCRYPT = 0x1 69 ALG_OP_ENCRYPT = 0x1
70 ALG_SET_AEAD_ASSOCLEN = 0x4 70 ALG_SET_AEAD_ASSOCLEN = 0x4
71 ALG_SET_AEAD_AUTHSIZE = 0x5 71 ALG_SET_AEAD_AUTHSIZE = 0x5
72 ALG_SET_IV = 0x2 72 ALG_SET_IV = 0x2
73 ALG_SET_KEY = 0x1 73 ALG_SET_KEY = 0x1
74 ALG_SET_OP = 0x3 74 ALG_SET_OP = 0x3
75 ANON_INODE_FS_MAGIC = 0x9041934 75 ANON_INODE_FS_MAGIC = 0x9041934
76 ARPHRD_6LOWPAN = 0x339 76 ARPHRD_6LOWPAN = 0x339
77 ARPHRD_ADAPT = 0x108 77 ARPHRD_ADAPT = 0x108
78 ARPHRD_APPLETLK = 0x8 78 ARPHRD_APPLETLK = 0x8
79 ARPHRD_ARCNET = 0x7 79 ARPHRD_ARCNET = 0x7
80 ARPHRD_ASH = 0x30d 80 ARPHRD_ASH = 0x30d
81 ARPHRD_ATM = 0x13 81 ARPHRD_ATM = 0x13
82 ARPHRD_AX25 = 0x3 82 ARPHRD_AX25 = 0x3
83 ARPHRD_BIF = 0x307 83 ARPHRD_BIF = 0x307
84 ARPHRD_CAIF = 0x336 84 ARPHRD_CAIF = 0x336
85 ARPHRD_CAN = 0x118 85 ARPHRD_CAN = 0x118
86 ARPHRD_CHAOS = 0x5 86 ARPHRD_CHAOS = 0x5
87 ARPHRD_CISCO = 0x201 87 ARPHRD_CISCO = 0x201
88 ARPHRD_CSLIP = 0x101 88 ARPHRD_CSLIP = 0x101
89 ARPHRD_CSLIP6 = 0x103 89 ARPHRD_CSLIP6 = 0x103
90 ARPHRD_DDCMP = 0x205 90 ARPHRD_DDCMP = 0x205
91 ARPHRD_DLCI = 0xf 91 ARPHRD_DLCI = 0xf
92 ARPHRD_ECONET = 0x30e 92 ARPHRD_ECONET = 0x30e
93 ARPHRD_EETHER = 0x2 93 ARPHRD_EETHER = 0x2
94 ARPHRD_ETHER = 0x1 94 ARPHRD_ETHER = 0x1
95 ARPHRD_EUI64 = 0x1b 95 ARPHRD_EUI64 = 0x1b
96 ARPHRD_FCAL = 0x311 96 ARPHRD_FCAL = 0x311
97 ARPHRD_FCFABRIC = 0x313 97 ARPHRD_FCFABRIC = 0x313
98 ARPHRD_FCPL = 0x312 98 ARPHRD_FCPL = 0x312
99 ARPHRD_FCPP = 0x310 99 ARPHRD_FCPP = 0x310
100 ARPHRD_FDDI = 0x306 100 ARPHRD_FDDI = 0x306
101 ARPHRD_FRAD = 0x302 101 ARPHRD_FRAD = 0x302
102 ARPHRD_HDLC = 0x201 102 ARPHRD_HDLC = 0x201
103 ARPHRD_HIPPI = 0x30c 103 ARPHRD_HIPPI = 0x30c
104 ARPHRD_HWX25 = 0x110 104 ARPHRD_HWX25 = 0x110
105 ARPHRD_IEEE1394 = 0x18 105 ARPHRD_IEEE1394 = 0x18
106 ARPHRD_IEEE802 = 0x6 106 ARPHRD_IEEE802 = 0x6
107 ARPHRD_IEEE80211 = 0x321 107 ARPHRD_IEEE80211 = 0x321
108 ARPHRD_IEEE80211_PRISM = 0x322 108 ARPHRD_IEEE80211_PRISM = 0x322
109 ARPHRD_IEEE80211_RADIOTAP = 0x323 109 ARPHRD_IEEE80211_RADIOTAP = 0x323
110 ARPHRD_IEEE802154 = 0x324 110 ARPHRD_IEEE802154 = 0x324
111 ARPHRD_IEEE802154_MONITOR = 0x325 111 ARPHRD_IEEE802154_MONITOR = 0x325
112 ARPHRD_IEEE802_TR = 0x320 112 ARPHRD_IEEE802_TR = 0x320
113 ARPHRD_INFINIBAND = 0x20 113 ARPHRD_INFINIBAND = 0x20
114 ARPHRD_IP6GRE = 0x337 114 ARPHRD_IP6GRE = 0x337
115 ARPHRD_IPDDP = 0x309 115 ARPHRD_IPDDP = 0x309
116 ARPHRD_IPGRE = 0x30a 116 ARPHRD_IPGRE = 0x30a
117 ARPHRD_IRDA = 0x30f 117 ARPHRD_IRDA = 0x30f
118 ARPHRD_LAPB = 0x204 118 ARPHRD_LAPB = 0x204
119 ARPHRD_LOCALTLK = 0x305 119 ARPHRD_LOCALTLK = 0x305
120 ARPHRD_LOOPBACK = 0x304 120 ARPHRD_LOOPBACK = 0x304
121 ARPHRD_METRICOM = 0x17 121 ARPHRD_METRICOM = 0x17
122 ARPHRD_NETLINK = 0x338 122 ARPHRD_NETLINK = 0x338
123 ARPHRD_NETROM = 0x0 123 ARPHRD_NETROM = 0x0
124 ARPHRD_NONE = 0xfffe 124 ARPHRD_NONE = 0xfffe
125 ARPHRD_PHONET = 0x334 125 ARPHRD_PHONET = 0x334
126 ARPHRD_PHONET_PIPE = 0x335 126 ARPHRD_PHONET_PIPE = 0x335
127 ARPHRD_PIMREG = 0x30b 127 ARPHRD_PIMREG = 0x30b
128 ARPHRD_PPP = 0x200 128 ARPHRD_PPP = 0x200
129 ARPHRD_PRONET = 0x4 129 ARPHRD_PRONET = 0x4
130 ARPHRD_RAWHDLC = 0x206 130 ARPHRD_RAWHDLC = 0x206
131 ARPHRD_RAWIP = 0x207 131 ARPHRD_RAWIP = 0x207
132 ARPHRD_ROSE = 0x10e 132 ARPHRD_ROSE = 0x10e
133 ARPHRD_RSRVD = 0x104 133 ARPHRD_RSRVD = 0x104
134 ARPHRD_SIT = 0x308 134 ARPHRD_SIT = 0x308
135 ARPHRD_SKIP = 0x303 135 ARPHRD_SKIP = 0x303
136 ARPHRD_SLIP = 0x100 136 ARPHRD_SLIP = 0x100
137 ARPHRD_SLIP6 = 0x102 137 ARPHRD_SLIP6 = 0x102
138 ARPHRD_TUNNEL = 0x300 138 ARPHRD_TUNNEL = 0x300
139 ARPHRD_TUNNEL6 = 0x301 139 ARPHRD_TUNNEL6 = 0x301
140 ARPHRD_VOID = 0xffff 140 ARPHRD_VOID = 0xffff
141 ARPHRD_VSOCKMON = 0x33a 141 ARPHRD_VSOCKMON = 0x33a
142 ARPHRD_X25 = 0x10f 142 ARPHRD_X25 = 0x10f
143 AUTOFS_SUPER_MAGIC = 0x187 143 AUTOFS_SUPER_MAGIC = 0x187
144 B0 = 0x0 144 B0 = 0x0
145 B1000000 = 0x1008 145 B1000000 = 0x1008
146 B110 = 0x3 146 B110 = 0x3
147 B115200 = 0x1002 147 B115200 = 0x1002
148 B1152000 = 0x1009 148 B1152000 = 0x1009
149 B1200 = 0x9 149 B1200 = 0x9
150 B134 = 0x4 150 B134 = 0x4
151 B150 = 0x5 151 B150 = 0x5
152 B1500000 = 0x100a 152 B1500000 = 0x100a
153 B1800 = 0xa 153 B1800 = 0xa
154 B19200 = 0xe 154 B19200 = 0xe
155 B200 = 0x6 155 B200 = 0x6
156 B2000000 = 0x100b 156 B2000000 = 0x100b
157 B230400 = 0x1003 157 B230400 = 0x1003
158 B2400 = 0xb 158 B2400 = 0xb
159 B2500000 = 0x100c 159 B2500000 = 0x100c
160 B300 = 0x7 160 B300 = 0x7
161 B3000000 = 0x100d 161 B3000000 = 0x100d
162 B3500000 = 0x100e 162 B3500000 = 0x100e
163 B38400 = 0xf 163 B38400 = 0xf
164 B4000000 = 0x100f 164 B4000000 = 0x100f
165 B460800 = 0x1004 165 B460800 = 0x1004
166 B4800 = 0xc 166 B4800 = 0xc
167 B50 = 0x1 167 B50 = 0x1
168 B500000 = 0x1005 168 B500000 = 0x1005
169 B57600 = 0x1001 169 B57600 = 0x1001
170 B576000 = 0x1006 170 B576000 = 0x1006
171 B600 = 0x8 171 B600 = 0x8
172 B75 = 0x2 172 B75 = 0x2
173 B921600 = 0x1007 173 B921600 = 0x1007
174 B9600 = 0xd 174 B9600 = 0xd
175 BALLOON_KVM_MAGIC = 0x13661366 175 BALLOON_KVM_MAGIC = 0x13661366
176 BDEVFS_MAGIC = 0x62646576 176 BDEVFS_MAGIC = 0x62646576
177 BINDERFS_SUPER_MAGIC = 0x6c6f6f70 177 BINDERFS_SUPER_MAGIC = 0x6c6f6f70
178 BINFMTFS_MAGIC = 0x42494e4d 178 BINFMTFS_MAGIC = 0x42494e4d
179 BLKBSZGET = 0x80041270 179 BLKBSZGET = 0x80041270
180 BLKBSZSET = 0x40041271 180 BLKBSZSET = 0x40041271
181 BLKFLSBUF = 0x1261 181 BLKFLSBUF = 0x1261
182 BLKFRAGET = 0x1265 182 BLKFRAGET = 0x1265
183 BLKFRASET = 0x1264 183 BLKFRASET = 0x1264
184 BLKGETSIZE = 0x1260 184 BLKGETSIZE = 0x1260
185 BLKGETSIZE64 = 0x80041272 185 BLKGETSIZE64 = 0x80041272
186 BLKPBSZGET = 0x127b 186 BLKPBSZGET = 0x127b
187 BLKRAGET = 0x1263 187 BLKRAGET = 0x1263
188 BLKRASET = 0x1262 188 BLKRASET = 0x1262
189 BLKROGET = 0x125e 189 BLKROGET = 0x125e
190 BLKROSET = 0x125d 190 BLKROSET = 0x125d
191 BLKRRPART = 0x125f 191 BLKRRPART = 0x125f
192 BLKSECTGET = 0x1267 192 BLKSECTGET = 0x1267
193 BLKSECTSET = 0x1266 193 BLKSECTSET = 0x1266
194 BLKSSZGET = 0x1268 194 BLKSSZGET = 0x1268
195 BOTHER = 0x1000 195 BOTHER = 0x1000
196 BPF_A = 0x10 196 BPF_A = 0x10
197 BPF_ABS = 0x20 197 BPF_ABS = 0x20
198 BPF_ADD = 0x0 198 BPF_ADD = 0x0
199 BPF_ADJ_ROOM_ENCAP_L2_MASK = 0xff 199 BPF_ADJ_ROOM_ENCAP_L2_MASK = 0xff
200 BPF_ADJ_ROOM_ENCAP_L2_SHIFT = 0x38 200 BPF_ADJ_ROOM_ENCAP_L2_SHIFT = 0x38
201 BPF_ALU = 0x4 201 BPF_ALU = 0x4
202 BPF_ALU64 = 0x7 202 BPF_ALU64 = 0x7
203 BPF_AND = 0x50 203 BPF_AND = 0x50
204 BPF_ANY = 0x0 204 BPF_ANY = 0x0
205 BPF_ARSH = 0xc0 205 BPF_ARSH = 0xc0
206 BPF_B = 0x10 206 BPF_B = 0x10
207 BPF_BUILD_ID_SIZE = 0x14 207 BPF_BUILD_ID_SIZE = 0x14
208 BPF_CALL = 0x80 208 BPF_CALL = 0x80
209 BPF_DEVCG_ACC_MKNOD = 0x1 209 BPF_DEVCG_ACC_MKNOD = 0x1
210 BPF_DEVCG_ACC_READ = 0x2 210 BPF_DEVCG_ACC_READ = 0x2
211 BPF_DEVCG_ACC_WRITE = 0x4 211 BPF_DEVCG_ACC_WRITE = 0x4
212 BPF_DEVCG_DEV_BLOCK = 0x1 212 BPF_DEVCG_DEV_BLOCK = 0x1
213 BPF_DEVCG_DEV_CHAR = 0x2 213 BPF_DEVCG_DEV_CHAR = 0x2
214 BPF_DIV = 0x30 214 BPF_DIV = 0x30
215 BPF_DW = 0x18 215 BPF_DW = 0x18
216 BPF_END = 0xd0 216 BPF_END = 0xd0
217 BPF_EXIST = 0x2 217 BPF_EXIST = 0x2
218 BPF_EXIT = 0x90 218 BPF_EXIT = 0x90
219 BPF_FROM_BE = 0x8 219 BPF_FLOW_DISSECTOR_F_PARSE_1ST_FRAG = 0x1
220 BPF_FROM_LE = 0x0 220 BPF_FLOW_DISSECTOR_F_STOP_AT_ENCAP = 0x4
221 BPF_FS_MAGIC = 0xcafe4a11 221 BPF_FLOW_DISSECTOR_F_STOP_AT_FLOW_LABEL = 0x2
222 BPF_F_ADJ_ROOM_ENCAP_L3_IPV4 = 0x2 222 BPF_FROM_BE = 0x8
223 BPF_F_ADJ_ROOM_ENCAP_L3_IPV6 = 0x4 223 BPF_FROM_LE = 0x0
224 BPF_F_ADJ_ROOM_ENCAP_L4_GRE = 0x8 224 BPF_FS_MAGIC = 0xcafe4a11
225 BPF_F_ADJ_ROOM_ENCAP_L4_UDP = 0x10 225 BPF_F_ADJ_ROOM_ENCAP_L3_IPV4 = 0x2
226 BPF_F_ADJ_ROOM_FIXED_GSO = 0x1 226 BPF_F_ADJ_ROOM_ENCAP_L3_IPV6 = 0x4
227 BPF_F_ALLOW_MULTI = 0x2 227 BPF_F_ADJ_ROOM_ENCAP_L4_GRE = 0x8
228 BPF_F_ALLOW_OVERRIDE = 0x1 228 BPF_F_ADJ_ROOM_ENCAP_L4_UDP = 0x10
229 BPF_F_ANY_ALIGNMENT = 0x2 229 BPF_F_ADJ_ROOM_FIXED_GSO = 0x1
230 BPF_F_CTXLEN_MASK = 0xfffff00000000 230 BPF_F_ALLOW_MULTI = 0x2
231 BPF_F_CURRENT_CPU = 0xffffffff 231 BPF_F_ALLOW_OVERRIDE = 0x1
232 BPF_F_CURRENT_NETNS = -0x1 232 BPF_F_ANY_ALIGNMENT = 0x2
233 BPF_F_DONT_FRAGMENT = 0x4 233 BPF_F_CLONE = 0x200
234 BPF_F_FAST_STACK_CMP = 0x200 234 BPF_F_CTXLEN_MASK = 0xfffff00000000
235 BPF_F_HDR_FIELD_MASK = 0xf 235 BPF_F_CURRENT_CPU = 0xffffffff
236 BPF_F_INDEX_MASK = 0xffffffff 236 BPF_F_CURRENT_NETNS = -0x1
237 BPF_F_INGRESS = 0x1 237 BPF_F_DONT_FRAGMENT = 0x4
238 BPF_F_INVALIDATE_HASH = 0x2 238 BPF_F_FAST_STACK_CMP = 0x200
239 BPF_F_LOCK = 0x4 239 BPF_F_HDR_FIELD_MASK = 0xf
240 BPF_F_MARK_ENFORCE = 0x40 240 BPF_F_INDEX_MASK = 0xffffffff
241 BPF_F_MARK_MANGLED_0 = 0x20 241 BPF_F_INGRESS = 0x1
242 BPF_F_NO_COMMON_LRU = 0x2 242 BPF_F_INVALIDATE_HASH = 0x2
243 BPF_F_NO_PREALLOC = 0x1 243 BPF_F_LOCK = 0x4
244 BPF_F_NUMA_NODE = 0x4 244 BPF_F_MARK_ENFORCE = 0x40
245 BPF_F_PSEUDO_HDR = 0x10 245 BPF_F_MARK_MANGLED_0 = 0x20
246 BPF_F_QUERY_EFFECTIVE = 0x1 246 BPF_F_MMAPABLE = 0x400
247 BPF_F_RDONLY = 0x8 247 BPF_F_NO_COMMON_LRU = 0x2
248 BPF_F_RDONLY_PROG = 0x80 248 BPF_F_NO_PREALLOC = 0x1
249 BPF_F_RECOMPUTE_CSUM = 0x1 249 BPF_F_NUMA_NODE = 0x4
250 BPF_F_REUSE_STACKID = 0x400 250 BPF_F_PSEUDO_HDR = 0x10
251 BPF_F_SEQ_NUMBER = 0x8 251 BPF_F_QUERY_EFFECTIVE = 0x1
252 BPF_F_SKIP_FIELD_MASK = 0xff 252 BPF_F_RDONLY = 0x8
253 BPF_F_STACK_BUILD_ID = 0x20 253 BPF_F_RDONLY_PROG = 0x80
254 BPF_F_STRICT_ALIGNMENT = 0x1 254 BPF_F_RECOMPUTE_CSUM = 0x1
255 BPF_F_SYSCTL_BASE_NAME = 0x1 255 BPF_F_REUSE_STACKID = 0x400
256 BPF_F_TUNINFO_IPV6 = 0x1 256 BPF_F_SEQ_NUMBER = 0x8
257 BPF_F_USER_BUILD_ID = 0x800 257 BPF_F_SKIP_FIELD_MASK = 0xff
258 BPF_F_USER_STACK = 0x100 258 BPF_F_STACK_BUILD_ID = 0x20
259 BPF_F_WRONLY = 0x10 259 BPF_F_STRICT_ALIGNMENT = 0x1
260 BPF_F_WRONLY_PROG = 0x100 260 BPF_F_SYSCTL_BASE_NAME = 0x1
261 BPF_F_ZERO_CSUM_TX = 0x2 261 BPF_F_TEST_RND_HI32 = 0x4
262 BPF_F_ZERO_SEED = 0x40 262 BPF_F_TEST_STATE_FREQ = 0x8
263 BPF_H = 0x8 263 BPF_F_TUNINFO_IPV6 = 0x1
264 BPF_IMM = 0x0 264 BPF_F_USER_BUILD_ID = 0x800
265 BPF_IND = 0x40 265 BPF_F_USER_STACK = 0x100
266 BPF_JA = 0x0 266 BPF_F_WRONLY = 0x10
267 BPF_JEQ = 0x10 267 BPF_F_WRONLY_PROG = 0x100
268 BPF_JGE = 0x30 268 BPF_F_ZERO_CSUM_TX = 0x2
269 BPF_JGT = 0x20 269 BPF_F_ZERO_SEED = 0x40
270 BPF_JLE = 0xb0 270 BPF_H = 0x8
271 BPF_JLT = 0xa0 271 BPF_IMM = 0x0
272 BPF_JMP = 0x5 272 BPF_IND = 0x40
273 BPF_JMP32 = 0x6 273 BPF_JA = 0x0
274 BPF_JNE = 0x50 274 BPF_JEQ = 0x10
275 BPF_JSET = 0x40 275 BPF_JGE = 0x30
276 BPF_JSGE = 0x70 276 BPF_JGT = 0x20
277 BPF_JSGT = 0x60 277 BPF_JLE = 0xb0
278 BPF_JSLE = 0xd0 278 BPF_JLT = 0xa0
279 BPF_JSLT = 0xc0 279 BPF_JMP = 0x5
280 BPF_K = 0x0 280 BPF_JMP32 = 0x6
281 BPF_LD = 0x0 281 BPF_JNE = 0x50
282 BPF_LDX = 0x1 282 BPF_JSET = 0x40
283 BPF_LEN = 0x80 283 BPF_JSGE = 0x70
284 BPF_LL_OFF = -0x200000 284 BPF_JSGT = 0x60
285 BPF_LSH = 0x60 285 BPF_JSLE = 0xd0
286 BPF_MAJOR_VERSION = 0x1 286 BPF_JSLT = 0xc0
287 BPF_MAXINSNS = 0x1000 287 BPF_K = 0x0
288 BPF_MEM = 0x60 288 BPF_LD = 0x0
289 BPF_MEMWORDS = 0x10 289 BPF_LDX = 0x1
290 BPF_MINOR_VERSION = 0x1 290 BPF_LEN = 0x80
291 BPF_MISC = 0x7 291 BPF_LL_OFF = -0x200000
292 BPF_MOD = 0x90 292 BPF_LSH = 0x60
293 BPF_MOV = 0xb0 293 BPF_MAJOR_VERSION = 0x1
294 BPF_MSH = 0xa0 294 BPF_MAXINSNS = 0x1000
295 BPF_MUL = 0x20 295 BPF_MEM = 0x60
296 BPF_NEG = 0x80 296 BPF_MEMWORDS = 0x10
297 BPF_NET_OFF = -0x100000 297 BPF_MINOR_VERSION = 0x1
298 BPF_NOEXIST = 0x1 298 BPF_MISC = 0x7
299 BPF_OBJ_NAME_LEN = 0x10 299 BPF_MOD = 0x90
300 BPF_OR = 0x40 300 BPF_MOV = 0xb0
301 BPF_PSEUDO_CALL = 0x1 301 BPF_MSH = 0xa0
302 BPF_PSEUDO_MAP_FD = 0x1 302 BPF_MUL = 0x20
303 BPF_PSEUDO_MAP_VALUE = 0x2 303 BPF_NEG = 0x80
304 BPF_RET = 0x6 304 BPF_NET_OFF = -0x100000
305 BPF_RSH = 0x70 305 BPF_NOEXIST = 0x1
306 BPF_SK_STORAGE_GET_F_CREATE = 0x1 306 BPF_OBJ_NAME_LEN = 0x10
307 BPF_SOCK_OPS_ALL_CB_FLAGS = 0x7 307 BPF_OR = 0x40
308 BPF_SOCK_OPS_RETRANS_CB_FLAG = 0x2 308 BPF_PSEUDO_CALL = 0x1
309 BPF_SOCK_OPS_RTO_CB_FLAG = 0x1 309 BPF_PSEUDO_MAP_FD = 0x1
310 BPF_SOCK_OPS_STATE_CB_FLAG = 0x4 310 BPF_PSEUDO_MAP_VALUE = 0x2
311 BPF_ST = 0x2 311 BPF_RET = 0x6
312 BPF_STX = 0x3 312 BPF_RSH = 0x70
313 BPF_SUB = 0x10 313 BPF_SK_STORAGE_GET_F_CREATE = 0x1
314 BPF_TAG_SIZE = 0x8 314 BPF_SOCK_OPS_ALL_CB_FLAGS = 0xf
315 BPF_TAX = 0x0 315 BPF_SOCK_OPS_RETRANS_CB_FLAG = 0x2
316 BPF_TO_BE = 0x8 316 BPF_SOCK_OPS_RTO_CB_FLAG = 0x1
317 BPF_TO_LE = 0x0 317 BPF_SOCK_OPS_RTT_CB_FLAG = 0x8
318 BPF_TXA = 0x80 318 BPF_SOCK_OPS_STATE_CB_FLAG = 0x4
319 BPF_W = 0x0 319 BPF_ST = 0x2
320 BPF_X = 0x8 320 BPF_STX = 0x3
321 BPF_XADD = 0xc0 321 BPF_SUB = 0x10
322 BPF_XOR = 0xa0 322 BPF_TAG_SIZE = 0x8
323 BRKINT = 0x2 323 BPF_TAX = 0x0
324 BS0 = 0x0 324 BPF_TO_BE = 0x8
325 BS1 = 0x2000 325 BPF_TO_LE = 0x0
326 BSDLY = 0x2000 326 BPF_TXA = 0x80
327 BTRFS_SUPER_MAGIC = 0x9123683e 327 BPF_W = 0x0
328 BTRFS_TEST_MAGIC = 0x73727279 328 BPF_X = 0x8
329 CAN_BCM = 0x2 329 BPF_XADD = 0xc0
330 CAN_EFF_FLAG = 0x80000000 330 BPF_XOR = 0xa0
331 CAN_EFF_ID_BITS = 0x1d 331 BRKINT = 0x2
332 CAN_EFF_MASK = 0x1fffffff 332 BS0 = 0x0
333 CAN_ERR_FLAG = 0x20000000 333 BS1 = 0x2000
334 CAN_ERR_MASK = 0x1fffffff 334 BSDLY = 0x2000
335 CAN_INV_FILTER = 0x20000000 335 BTRFS_SUPER_MAGIC = 0x9123683e
336 CAN_ISOTP = 0x6 336 BTRFS_TEST_MAGIC = 0x73727279
337 CAN_MAX_DLC = 0x8 337 CAN_BCM = 0x2
338 CAN_MAX_DLEN = 0x8 338 CAN_EFF_FLAG = 0x80000000
339 CAN_MCNET = 0x5 339 CAN_EFF_ID_BITS = 0x1d
340 CAN_MTU = 0x10 340 CAN_EFF_MASK = 0x1fffffff
341 CAN_NPROTO = 0x7 341 CAN_ERR_FLAG = 0x20000000
342 CAN_RAW = 0x1 342 CAN_ERR_MASK = 0x1fffffff
343 CAN_RAW_FILTER_MAX = 0x200 343 CAN_INV_FILTER = 0x20000000
344 CAN_RTR_FLAG = 0x40000000 344 CAN_ISOTP = 0x6
345 CAN_SFF_ID_BITS = 0xb 345 CAN_J1939 = 0x7
346 CAN_SFF_MASK = 0x7ff 346 CAN_MAX_DLC = 0x8
347 CAN_TP16 = 0x3 347 CAN_MAX_DLEN = 0x8
348 CAN_TP20 = 0x4 348 CAN_MCNET = 0x5
349 CAP_AUDIT_CONTROL = 0x1e 349 CAN_MTU = 0x10
350 CAP_AUDIT_READ = 0x25 350 CAN_NPROTO = 0x8
351 CAP_AUDIT_WRITE = 0x1d 351 CAN_RAW = 0x1
352 CAP_BLOCK_SUSPEND = 0x24 352 CAN_RAW_FILTER_MAX = 0x200
353 CAP_CHOWN = 0x0 353 CAN_RTR_FLAG = 0x40000000
354 CAP_DAC_OVERRIDE = 0x1 354 CAN_SFF_ID_BITS = 0xb
355 CAP_DAC_READ_SEARCH = 0x2 355 CAN_SFF_MASK = 0x7ff
356 CAP_FOWNER = 0x3 356 CAN_TP16 = 0x3
357 CAP_FSETID = 0x4 357 CAN_TP20 = 0x4
358 CAP_IPC_LOCK = 0xe 358 CAP_AUDIT_CONTROL = 0x1e
359 CAP_IPC_OWNER = 0xf 359 CAP_AUDIT_READ = 0x25
360 CAP_KILL = 0x5 360 CAP_AUDIT_WRITE = 0x1d
361 CAP_LAST_CAP = 0x25 361 CAP_BLOCK_SUSPEND = 0x24
362 CAP_LEASE = 0x1c 362 CAP_CHOWN = 0x0
363 CAP_LINUX_IMMUTABLE = 0x9 363 CAP_DAC_OVERRIDE = 0x1
364 CAP_MAC_ADMIN = 0x21 364 CAP_DAC_READ_SEARCH = 0x2
365 CAP_MAC_OVERRIDE = 0x20 365 CAP_FOWNER = 0x3
366 CAP_MKNOD = 0x1b 366 CAP_FSETID = 0x4
367 CAP_NET_ADMIN = 0xc 367 CAP_IPC_LOCK = 0xe
368 CAP_NET_BIND_SERVICE = 0xa 368 CAP_IPC_OWNER = 0xf
369 CAP_NET_BROADCAST = 0xb 369 CAP_KILL = 0x5
370 CAP_NET_RAW = 0xd 370 CAP_LAST_CAP = 0x25
371 CAP_SETFCAP = 0x1f 371 CAP_LEASE = 0x1c
372 CAP_SETGID = 0x6 372 CAP_LINUX_IMMUTABLE = 0x9
373 CAP_SETPCAP = 0x8 373 CAP_MAC_ADMIN = 0x21
374 CAP_SETUID = 0x7 374 CAP_MAC_OVERRIDE = 0x20
375 CAP_SYSLOG = 0x22 375 CAP_MKNOD = 0x1b
376 CAP_SYS_ADMIN = 0x15 376 CAP_NET_ADMIN = 0xc
377 CAP_SYS_BOOT = 0x16 377 CAP_NET_BIND_SERVICE = 0xa
378 CAP_SYS_CHROOT = 0x12 378 CAP_NET_BROADCAST = 0xb
379 CAP_SYS_MODULE = 0x10 379 CAP_NET_RAW = 0xd
380 CAP_SYS_NICE = 0x17 380 CAP_SETFCAP = 0x1f
381 CAP_SYS_PACCT = 0x14 381 CAP_SETGID = 0x6
382 CAP_SYS_PTRACE = 0x13 382 CAP_SETPCAP = 0x8
383 CAP_SYS_RAWIO = 0x11 383 CAP_SETUID = 0x7
384 CAP_SYS_RESOURCE = 0x18 384 CAP_SYSLOG = 0x22
385 CAP_SYS_TIME = 0x19 385 CAP_SYS_ADMIN = 0x15
386 CAP_SYS_TTY_CONFIG = 0x1a 386 CAP_SYS_BOOT = 0x16
387 CAP_WAKE_ALARM = 0x23 387 CAP_SYS_CHROOT = 0x12
388 CBAUD = 0x100f 388 CAP_SYS_MODULE = 0x10
389 CBAUDEX = 0x1000 389 CAP_SYS_NICE = 0x17
390 CFLUSH = 0xf 390 CAP_SYS_PACCT = 0x14
391 CGROUP2_SUPER_MAGIC = 0x63677270 391 CAP_SYS_PTRACE = 0x13
392 CGROUP_SUPER_MAGIC = 0x27e0eb 392 CAP_SYS_RAWIO = 0x11
393 CIBAUD = 0x100f0000 393 CAP_SYS_RESOURCE = 0x18
394 CLOCAL = 0x800 394 CAP_SYS_TIME = 0x19
395 CLOCK_BOOTTIME = 0x7 395 CAP_SYS_TTY_CONFIG = 0x1a
396 CLOCK_BOOTTIME_ALARM = 0x9 396 CAP_WAKE_ALARM = 0x23
397 CLOCK_DEFAULT = 0x0 397 CBAUD = 0x100f
398 CLOCK_EXT = 0x1 398 CBAUDEX = 0x1000
399 CLOCK_INT = 0x2 399 CFLUSH = 0xf
400 CLOCK_MONOTONIC = 0x1 400 CGROUP2_SUPER_MAGIC = 0x63677270
401 CLOCK_MONOTONIC_COARSE = 0x6 401 CGROUP_SUPER_MAGIC = 0x27e0eb
402 CLOCK_MONOTONIC_RAW = 0x4 402 CIBAUD = 0x100f0000
403 CLOCK_PROCESS_CPUTIME_ID = 0x2 403 CLOCAL = 0x800
404 CLOCK_REALTIME = 0x0 404 CLOCK_BOOTTIME = 0x7
405 CLOCK_REALTIME_ALARM = 0x8 405 CLOCK_BOOTTIME_ALARM = 0x9
406 CLOCK_REALTIME_COARSE = 0x5 406 CLOCK_DEFAULT = 0x0
407 CLOCK_TAI = 0xb 407 CLOCK_EXT = 0x1
408 CLOCK_THREAD_CPUTIME_ID = 0x3 408 CLOCK_INT = 0x2
409 CLOCK_TXFROMRX = 0x4 409 CLOCK_MONOTONIC = 0x1
410 CLOCK_TXINT = 0x3 410 CLOCK_MONOTONIC_COARSE = 0x6
411 CLONE_CHILD_CLEARTID = 0x200000 411 CLOCK_MONOTONIC_RAW = 0x4
412 CLONE_CHILD_SETTID = 0x1000000 412 CLOCK_PROCESS_CPUTIME_ID = 0x2
413 CLONE_DETACHED = 0x400000 413 CLOCK_REALTIME = 0x0
414 CLONE_FILES = 0x400 414 CLOCK_REALTIME_ALARM = 0x8
415 CLONE_FS = 0x200 415 CLOCK_REALTIME_COARSE = 0x5
416 CLONE_IO = 0x80000000 416 CLOCK_TAI = 0xb
417 CLONE_NEWCGROUP = 0x2000000 417 CLOCK_THREAD_CPUTIME_ID = 0x3
418 CLONE_NEWIPC = 0x8000000 418 CLOCK_TXFROMRX = 0x4
419 CLONE_NEWNET = 0x40000000 419 CLOCK_TXINT = 0x3
420 CLONE_NEWNS = 0x20000 420 CLONE_ARGS_SIZE_VER0 = 0x40
421 CLONE_NEWPID = 0x20000000 421 CLONE_ARGS_SIZE_VER1 = 0x50
422 CLONE_NEWUSER = 0x10000000 422 CLONE_CHILD_CLEARTID = 0x200000
423 CLONE_NEWUTS = 0x4000000 423 CLONE_CHILD_SETTID = 0x1000000
424 CLONE_PARENT = 0x8000 424 CLONE_CLEAR_SIGHAND = 0x100000000
425 CLONE_PARENT_SETTID = 0x100000 425 CLONE_DETACHED = 0x400000
426 CLONE_PIDFD = 0x1000 426 CLONE_FILES = 0x400
427 CLONE_PTRACE = 0x2000 427 CLONE_FS = 0x200
428 CLONE_SETTLS = 0x80000 428 CLONE_IO = 0x80000000
429 CLONE_SIGHAND = 0x800 429 CLONE_NEWCGROUP = 0x2000000
430 CLONE_SYSVSEM = 0x40000 430 CLONE_NEWIPC = 0x8000000
431 CLONE_THREAD = 0x10000 431 CLONE_NEWNET = 0x40000000
432 CLONE_UNTRACED = 0x800000 432 CLONE_NEWNS = 0x20000
433 CLONE_VFORK = 0x4000 433 CLONE_NEWPID = 0x20000000
434 CLONE_VM = 0x100 434 CLONE_NEWUSER = 0x10000000
435 CMSPAR = 0x40000000 435 CLONE_NEWUTS = 0x4000000
436 CODA_SUPER_MAGIC = 0x73757245 436 CLONE_PARENT = 0x8000
437 CR0 = 0x0 437 CLONE_PARENT_SETTID = 0x100000
438 CR1 = 0x200 438 CLONE_PIDFD = 0x1000
439 CR2 = 0x400 439 CLONE_PTRACE = 0x2000
440 CR3 = 0x600 440 CLONE_SETTLS = 0x80000
441 CRAMFS_MAGIC = 0x28cd3d45 441 CLONE_SIGHAND = 0x800
442 CRDLY = 0x600 442 CLONE_SYSVSEM = 0x40000
443 CREAD = 0x80 443 CLONE_THREAD = 0x10000
444 CRTSCTS = 0x80000000 444 CLONE_UNTRACED = 0x800000
445 CRYPTO_MAX_NAME = 0x40 445 CLONE_VFORK = 0x4000
446 CRYPTO_MSG_MAX = 0x15 446 CLONE_VM = 0x100
447 CRYPTO_NR_MSGTYPES = 0x6 447 CMSPAR = 0x40000000
448 CRYPTO_REPORT_MAXSIZE = 0x160 448 CODA_SUPER_MAGIC = 0x73757245
449 CS5 = 0x0 449 CR0 = 0x0
450 CS6 = 0x10 450 CR1 = 0x200
451 CS7 = 0x20 451 CR2 = 0x400
452 CS8 = 0x30 452 CR3 = 0x600
453 CSIGNAL = 0xff 453 CRAMFS_MAGIC = 0x28cd3d45
454 CSIZE = 0x30 454 CRDLY = 0x600
455 CSTART = 0x11 455 CREAD = 0x80
456 CSTATUS = 0x0 456 CRTSCTS = 0x80000000
457 CSTOP = 0x13 457 CRYPTO_MAX_NAME = 0x40
458 CSTOPB = 0x40 458 CRYPTO_MSG_MAX = 0x15
459 CSUSP = 0x1a 459 CRYPTO_NR_MSGTYPES = 0x6
460 DAXFS_MAGIC = 0x64646178 460 CRYPTO_REPORT_MAXSIZE = 0x160
461 DEBUGFS_MAGIC = 0x64626720 461 CS5 = 0x0
462 DEVPTS_SUPER_MAGIC = 0x1cd1 462 CS6 = 0x10
463 DT_BLK = 0x6 463 CS7 = 0x20
464 DT_CHR = 0x2 464 CS8 = 0x30
465 DT_DIR = 0x4 465 CSIGNAL = 0xff
466 DT_FIFO = 0x1 466 CSIZE = 0x30
467 DT_LNK = 0xa 467 CSTART = 0x11
468 DT_REG = 0x8 468 CSTATUS = 0x0
469 DT_SOCK = 0xc 469 CSTOP = 0x13
470 DT_UNKNOWN = 0x0 470 CSTOPB = 0x40
471 DT_WHT = 0xe 471 CSUSP = 0x1a
472 ECHO = 0x8 472 DAXFS_MAGIC = 0x64646178
473 ECHOCTL = 0x200 473 DEBUGFS_MAGIC = 0x64626720
474 ECHOE = 0x10 474 DEVLINK_CMD_ESWITCH_MODE_GET = 0x1d
475 ECHOK = 0x20 475 DEVLINK_CMD_ESWITCH_MODE_SET = 0x1e
476 ECHOKE = 0x800 476 DEVLINK_GENL_MCGRP_CONFIG_NAME = "config"
477 ECHONL = 0x40 477 DEVLINK_GENL_NAME = "devlink"
478 ECHOPRT = 0x400 478 DEVLINK_GENL_VERSION = 0x1
479 ECRYPTFS_SUPER_MAGIC = 0xf15f 479 DEVLINK_SB_THRESHOLD_TO_ALPHA_MAX = 0x14
480 EFD_CLOEXEC = 0x80000 480 DEVPTS_SUPER_MAGIC = 0x1cd1
481 EFD_NONBLOCK = 0x800 481 DMA_BUF_MAGIC = 0x444d4142
482 EFD_SEMAPHORE = 0x1 482 DT_BLK = 0x6
483 EFIVARFS_MAGIC = 0xde5e81e4 483 DT_CHR = 0x2
484 EFS_SUPER_MAGIC = 0x414a53 484 DT_DIR = 0x4
485 ENCODING_DEFAULT = 0x0 485 DT_FIFO = 0x1
486 ENCODING_FM_MARK = 0x3 486 DT_LNK = 0xa
487 ENCODING_FM_SPACE = 0x4 487 DT_REG = 0x8
488 ENCODING_MANCHESTER = 0x5 488 DT_SOCK = 0xc
489 ENCODING_NRZ = 0x1 489 DT_UNKNOWN = 0x0
490 ENCODING_NRZI = 0x2 490 DT_WHT = 0xe
491 EPOLLERR = 0x8 491 ECHO = 0x8
492 EPOLLET = 0x80000000 492 ECHOCTL = 0x200
493 EPOLLEXCLUSIVE = 0x10000000 493 ECHOE = 0x10
494 EPOLLHUP = 0x10 494 ECHOK = 0x20
495 EPOLLIN = 0x1 495 ECHOKE = 0x800
496 EPOLLMSG = 0x400 496 ECHONL = 0x40
497 EPOLLONESHOT = 0x40000000 497 ECHOPRT = 0x400
498 EPOLLOUT = 0x4 498 ECRYPTFS_SUPER_MAGIC = 0xf15f
499 EPOLLPRI = 0x2 499 EFD_CLOEXEC = 0x80000
500 EPOLLRDBAND = 0x80 500 EFD_NONBLOCK = 0x800
501 EPOLLRDHUP = 0x2000 501 EFD_SEMAPHORE = 0x1
502 EPOLLRDNORM = 0x40 502 EFIVARFS_MAGIC = 0xde5e81e4
503 EPOLLWAKEUP = 0x20000000 503 EFS_SUPER_MAGIC = 0x414a53
504 EPOLLWRBAND = 0x200 504 ENCODING_DEFAULT = 0x0
505 EPOLLWRNORM = 0x100 505 ENCODING_FM_MARK = 0x3
506 EPOLL_CLOEXEC = 0x80000 506 ENCODING_FM_SPACE = 0x4
507 EPOLL_CTL_ADD = 0x1 507 ENCODING_MANCHESTER = 0x5
508 EPOLL_CTL_DEL = 0x2 508 ENCODING_NRZ = 0x1
509 EPOLL_CTL_MOD = 0x3 509 ENCODING_NRZI = 0x2
510 ETH_P_1588 = 0x88f7 510 EPOLLERR = 0x8
511 ETH_P_8021AD = 0x88a8 511 EPOLLET = 0x80000000
512 ETH_P_8021AH = 0x88e7 512 EPOLLEXCLUSIVE = 0x10000000
513 ETH_P_8021Q = 0x8100 513 EPOLLHUP = 0x10
514 ETH_P_80221 = 0x8917 514 EPOLLIN = 0x1
515 ETH_P_802_2 = 0x4 515 EPOLLMSG = 0x400
516 ETH_P_802_3 = 0x1 516 EPOLLONESHOT = 0x40000000
517 ETH_P_802_3_MIN = 0x600 517 EPOLLOUT = 0x4
518 ETH_P_802_EX1 = 0x88b5 518 EPOLLPRI = 0x2
519 ETH_P_AARP = 0x80f3 519 EPOLLRDBAND = 0x80
520 ETH_P_AF_IUCV = 0xfbfb 520 EPOLLRDHUP = 0x2000
521 ETH_P_ALL = 0x3 521 EPOLLRDNORM = 0x40
522 ETH_P_AOE = 0x88a2 522 EPOLLWAKEUP = 0x20000000
523 ETH_P_ARCNET = 0x1a 523 EPOLLWRBAND = 0x200
524 ETH_P_ARP = 0x806 524 EPOLLWRNORM = 0x100
525 ETH_P_ATALK = 0x809b 525 EPOLL_CLOEXEC = 0x80000
526 ETH_P_ATMFATE = 0x8884 526 EPOLL_CTL_ADD = 0x1
527 ETH_P_ATMMPOA = 0x884c 527 EPOLL_CTL_DEL = 0x2
528 ETH_P_AX25 = 0x2 528 EPOLL_CTL_MOD = 0x3
529 ETH_P_BATMAN = 0x4305 529 EROFS_SUPER_MAGIC_V1 = 0xe0f5e1e2
530 ETH_P_BPQ = 0x8ff 530 ETH_P_1588 = 0x88f7
531 ETH_P_CAIF = 0xf7 531 ETH_P_8021AD = 0x88a8
532 ETH_P_CAN = 0xc 532 ETH_P_8021AH = 0x88e7
533 ETH_P_CANFD = 0xd 533 ETH_P_8021Q = 0x8100
534 ETH_P_CONTROL = 0x16 534 ETH_P_80221 = 0x8917
535 ETH_P_CUST = 0x6006 535 ETH_P_802_2 = 0x4
536 ETH_P_DDCMP = 0x6 536 ETH_P_802_3 = 0x1
537 ETH_P_DEC = 0x6000 537 ETH_P_802_3_MIN = 0x600
538 ETH_P_DIAG = 0x6005 538 ETH_P_802_EX1 = 0x88b5
539 ETH_P_DNA_DL = 0x6001 539 ETH_P_AARP = 0x80f3
540 ETH_P_DNA_RC = 0x6002 540 ETH_P_AF_IUCV = 0xfbfb
541 ETH_P_DNA_RT = 0x6003 541 ETH_P_ALL = 0x3
542 ETH_P_DSA = 0x1b 542 ETH_P_AOE = 0x88a2
543 ETH_P_DSA_8021Q = 0xdadb 543 ETH_P_ARCNET = 0x1a
544 ETH_P_ECONET = 0x18 544 ETH_P_ARP = 0x806
545 ETH_P_EDSA = 0xdada 545 ETH_P_ATALK = 0x809b
546 ETH_P_ERSPAN = 0x88be 546 ETH_P_ATMFATE = 0x8884
547 ETH_P_ERSPAN2 = 0x22eb 547 ETH_P_ATMMPOA = 0x884c
548 ETH_P_FCOE = 0x8906 548 ETH_P_AX25 = 0x2
549 ETH_P_FIP = 0x8914 549 ETH_P_BATMAN = 0x4305
550 ETH_P_HDLC = 0x19 550 ETH_P_BPQ = 0x8ff
551 ETH_P_HSR = 0x892f 551 ETH_P_CAIF = 0xf7
552 ETH_P_IBOE = 0x8915 552 ETH_P_CAN = 0xc
553 ETH_P_IEEE802154 = 0xf6 553 ETH_P_CANFD = 0xd
554 ETH_P_IEEEPUP = 0xa00 554 ETH_P_CONTROL = 0x16
555 ETH_P_IEEEPUPAT = 0xa01 555 ETH_P_CUST = 0x6006
556 ETH_P_IFE = 0xed3e 556 ETH_P_DDCMP = 0x6
557 ETH_P_IP = 0x800 557 ETH_P_DEC = 0x6000
558 ETH_P_IPV6 = 0x86dd 558 ETH_P_DIAG = 0x6005
559 ETH_P_IPX = 0x8137 559 ETH_P_DNA_DL = 0x6001
560 ETH_P_IRDA = 0x17 560 ETH_P_DNA_RC = 0x6002
561 ETH_P_LAT = 0x6004 561 ETH_P_DNA_RT = 0x6003
562 ETH_P_LINK_CTL = 0x886c 562 ETH_P_DSA = 0x1b
563 ETH_P_LOCALTALK = 0x9 563 ETH_P_DSA_8021Q = 0xdadb
564 ETH_P_LOOP = 0x60 564 ETH_P_ECONET = 0x18
565 ETH_P_LOOPBACK = 0x9000 565 ETH_P_EDSA = 0xdada
566 ETH_P_MACSEC = 0x88e5 566 ETH_P_ERSPAN = 0x88be
567 ETH_P_MAP = 0xf9 567 ETH_P_ERSPAN2 = 0x22eb
568 ETH_P_MOBITEX = 0x15 568 ETH_P_FCOE = 0x8906
569 ETH_P_MPLS_MC = 0x8848 569 ETH_P_FIP = 0x8914
570 ETH_P_MPLS_UC = 0x8847 570 ETH_P_HDLC = 0x19
571 ETH_P_MVRP = 0x88f5 571 ETH_P_HSR = 0x892f
572 ETH_P_NCSI = 0x88f8 572 ETH_P_IBOE = 0x8915
573 ETH_P_NSH = 0x894f 573 ETH_P_IEEE802154 = 0xf6
574 ETH_P_PAE = 0x888e 574 ETH_P_IEEEPUP = 0xa00
575 ETH_P_PAUSE = 0x8808 575 ETH_P_IEEEPUPAT = 0xa01
576 ETH_P_PHONET = 0xf5 576 ETH_P_IFE = 0xed3e
577 ETH_P_PPPTALK = 0x10 577 ETH_P_IP = 0x800
578 ETH_P_PPP_DISC = 0x8863 578 ETH_P_IPV6 = 0x86dd
579 ETH_P_PPP_MP = 0x8 579 ETH_P_IPX = 0x8137
580 ETH_P_PPP_SES = 0x8864 580 ETH_P_IRDA = 0x17
581 ETH_P_PREAUTH = 0x88c7 581 ETH_P_LAT = 0x6004
582 ETH_P_PRP = 0x88fb 582 ETH_P_LINK_CTL = 0x886c
583 ETH_P_PUP = 0x200 583 ETH_P_LLDP = 0x88cc
584 ETH_P_PUPAT = 0x201 584 ETH_P_LOCALTALK = 0x9
585 ETH_P_QINQ1 = 0x9100 585 ETH_P_LOOP = 0x60
586 ETH_P_QINQ2 = 0x9200 586 ETH_P_LOOPBACK = 0x9000
587 ETH_P_QINQ3 = 0x9300 587 ETH_P_MACSEC = 0x88e5
588 ETH_P_RARP = 0x8035 588 ETH_P_MAP = 0xf9
589 ETH_P_SCA = 0x6007 589 ETH_P_MOBITEX = 0x15
590 ETH_P_SLOW = 0x8809 590 ETH_P_MPLS_MC = 0x8848
591 ETH_P_SNAP = 0x5 591 ETH_P_MPLS_UC = 0x8847
592 ETH_P_TDLS = 0x890d 592 ETH_P_MVRP = 0x88f5
593 ETH_P_TEB = 0x6558 593 ETH_P_NCSI = 0x88f8
594 ETH_P_TIPC = 0x88ca 594 ETH_P_NSH = 0x894f
595 ETH_P_TRAILER = 0x1c 595 ETH_P_PAE = 0x888e
596 ETH_P_TR_802_2 = 0x11 596 ETH_P_PAUSE = 0x8808
597 ETH_P_TSN = 0x22f0 597 ETH_P_PHONET = 0xf5
598 ETH_P_WAN_PPP = 0x7 598 ETH_P_PPPTALK = 0x10
599 ETH_P_WCCP = 0x883e 599 ETH_P_PPP_DISC = 0x8863
600 ETH_P_X25 = 0x805 600 ETH_P_PPP_MP = 0x8
601 ETH_P_XDSA = 0xf8 601 ETH_P_PPP_SES = 0x8864
602 EXABYTE_ENABLE_NEST = 0xf0 602 ETH_P_PREAUTH = 0x88c7
603 EXT2_SUPER_MAGIC = 0xef53 603 ETH_P_PRP = 0x88fb
604 EXT3_SUPER_MAGIC = 0xef53 604 ETH_P_PUP = 0x200
605 EXT4_SUPER_MAGIC = 0xef53 605 ETH_P_PUPAT = 0x201
606 EXTA = 0xe 606 ETH_P_QINQ1 = 0x9100
607 EXTB = 0xf 607 ETH_P_QINQ2 = 0x9200
608 EXTPROC = 0x10000 608 ETH_P_QINQ3 = 0x9300
609 F2FS_SUPER_MAGIC = 0xf2f52010 609 ETH_P_RARP = 0x8035
610 FALLOC_FL_COLLAPSE_RANGE = 0x8 610 ETH_P_SCA = 0x6007
611 FALLOC_FL_INSERT_RANGE = 0x20 611 ETH_P_SLOW = 0x8809
612 FALLOC_FL_KEEP_SIZE = 0x1 612 ETH_P_SNAP = 0x5
613 FALLOC_FL_NO_HIDE_STALE = 0x4 613 ETH_P_TDLS = 0x890d
614 FALLOC_FL_PUNCH_HOLE = 0x2 614 ETH_P_TEB = 0x6558
615 FALLOC_FL_UNSHARE_RANGE = 0x40 615 ETH_P_TIPC = 0x88ca
616 FALLOC_FL_ZERO_RANGE = 0x10 616 ETH_P_TRAILER = 0x1c
617 FANOTIFY_METADATA_VERSION = 0x3 617 ETH_P_TR_802_2 = 0x11
618 FAN_ACCESS = 0x1 618 ETH_P_TSN = 0x22f0
619 FAN_ACCESS_PERM = 0x20000 619 ETH_P_WAN_PPP = 0x7
620 FAN_ALLOW = 0x1 620 ETH_P_WCCP = 0x883e
621 FAN_ALL_CLASS_BITS = 0xc 621 ETH_P_X25 = 0x805
622 FAN_ALL_EVENTS = 0x3b 622 ETH_P_XDSA = 0xf8
623 FAN_ALL_INIT_FLAGS = 0x3f 623 EXABYTE_ENABLE_NEST = 0xf0
624 FAN_ALL_MARK_FLAGS = 0xff 624 EXT2_SUPER_MAGIC = 0xef53
625 FAN_ALL_OUTGOING_EVENTS = 0x3403b 625 EXT3_SUPER_MAGIC = 0xef53
626 FAN_ALL_PERM_EVENTS = 0x30000 626 EXT4_SUPER_MAGIC = 0xef53
627 FAN_ATTRIB = 0x4 627 EXTA = 0xe
628 FAN_AUDIT = 0x10 628 EXTB = 0xf
629 FAN_CLASS_CONTENT = 0x4 629 EXTPROC = 0x10000
630 FAN_CLASS_NOTIF = 0x0 630 F2FS_SUPER_MAGIC = 0xf2f52010
631 FAN_CLASS_PRE_CONTENT = 0x8 631 FALLOC_FL_COLLAPSE_RANGE = 0x8
632 FAN_CLOEXEC = 0x1 632 FALLOC_FL_INSERT_RANGE = 0x20
633 FAN_CLOSE = 0x18 633 FALLOC_FL_KEEP_SIZE = 0x1
634 FAN_CLOSE_NOWRITE = 0x10 634 FALLOC_FL_NO_HIDE_STALE = 0x4
635 FAN_CLOSE_WRITE = 0x8 635 FALLOC_FL_PUNCH_HOLE = 0x2
636 FAN_CREATE = 0x100 636 FALLOC_FL_UNSHARE_RANGE = 0x40
637 FAN_DELETE = 0x200 637 FALLOC_FL_ZERO_RANGE = 0x10
638 FAN_DELETE_SELF = 0x400 638 FANOTIFY_METADATA_VERSION = 0x3
639 FAN_DENY = 0x2 639 FAN_ACCESS = 0x1
640 FAN_ENABLE_AUDIT = 0x40 640 FAN_ACCESS_PERM = 0x20000
641 FAN_EVENT_INFO_TYPE_FID = 0x1 641 FAN_ALLOW = 0x1
642 FAN_EVENT_METADATA_LEN = 0x18 642 FAN_ALL_CLASS_BITS = 0xc
643 FAN_EVENT_ON_CHILD = 0x8000000 643 FAN_ALL_EVENTS = 0x3b
644 FAN_MARK_ADD = 0x1 644 FAN_ALL_INIT_FLAGS = 0x3f
645 FAN_MARK_DONT_FOLLOW = 0x4 645 FAN_ALL_MARK_FLAGS = 0xff
646 FAN_MARK_FILESYSTEM = 0x100 646 FAN_ALL_OUTGOING_EVENTS = 0x3403b
647 FAN_MARK_FLUSH = 0x80 647 FAN_ALL_PERM_EVENTS = 0x30000
648 FAN_MARK_IGNORED_MASK = 0x20 648 FAN_ATTRIB = 0x4
649 FAN_MARK_IGNORED_SURV_MODIFY = 0x40 649 FAN_AUDIT = 0x10
650 FAN_MARK_INODE = 0x0 650 FAN_CLASS_CONTENT = 0x4
651 FAN_MARK_MOUNT = 0x10 651 FAN_CLASS_NOTIF = 0x0
652 FAN_MARK_ONLYDIR = 0x8 652 FAN_CLASS_PRE_CONTENT = 0x8
653 FAN_MARK_REMOVE = 0x2 653 FAN_CLOEXEC = 0x1
654 FAN_MODIFY = 0x2 654 FAN_CLOSE = 0x18
655 FAN_MOVE = 0xc0 655 FAN_CLOSE_NOWRITE = 0x10
656 FAN_MOVED_FROM = 0x40 656 FAN_CLOSE_WRITE = 0x8
657 FAN_MOVED_TO = 0x80 657 FAN_CREATE = 0x100
658 FAN_MOVE_SELF = 0x800 658 FAN_DELETE = 0x200
659 FAN_NOFD = -0x1 659 FAN_DELETE_SELF = 0x400
660 FAN_NONBLOCK = 0x2 660 FAN_DENY = 0x2
661 FAN_ONDIR = 0x40000000 661 FAN_ENABLE_AUDIT = 0x40
662 FAN_OPEN = 0x20 662 FAN_EVENT_INFO_TYPE_FID = 0x1
663 FAN_OPEN_EXEC = 0x1000 663 FAN_EVENT_METADATA_LEN = 0x18
664 FAN_OPEN_EXEC_PERM = 0x40000 664 FAN_EVENT_ON_CHILD = 0x8000000
665 FAN_OPEN_PERM = 0x10000 665 FAN_MARK_ADD = 0x1
666 FAN_Q_OVERFLOW = 0x4000 666 FAN_MARK_DONT_FOLLOW = 0x4
667 FAN_REPORT_FID = 0x200 667 FAN_MARK_FILESYSTEM = 0x100
668 FAN_REPORT_TID = 0x100 668 FAN_MARK_FLUSH = 0x80
669 FAN_UNLIMITED_MARKS = 0x20 669 FAN_MARK_IGNORED_MASK = 0x20
670 FAN_UNLIMITED_QUEUE = 0x10 670 FAN_MARK_IGNORED_SURV_MODIFY = 0x40
671 FD_CLOEXEC = 0x1 671 FAN_MARK_INODE = 0x0
672 FD_SETSIZE = 0x400 672 FAN_MARK_MOUNT = 0x10
673 FF0 = 0x0 673 FAN_MARK_ONLYDIR = 0x8
674 FF1 = 0x8000 674 FAN_MARK_REMOVE = 0x2
675 FFDLY = 0x8000 675 FAN_MODIFY = 0x2
676 FLUSHO = 0x1000 676 FAN_MOVE = 0xc0
677 FS_ENCRYPTION_MODE_ADIANTUM = 0x9 677 FAN_MOVED_FROM = 0x40
678 FS_ENCRYPTION_MODE_AES_128_CBC = 0x5 678 FAN_MOVED_TO = 0x80
679 FS_ENCRYPTION_MODE_AES_128_CTS = 0x6 679 FAN_MOVE_SELF = 0x800
680 FS_ENCRYPTION_MODE_AES_256_CBC = 0x3 680 FAN_NOFD = -0x1
681 FS_ENCRYPTION_MODE_AES_256_CTS = 0x4 681 FAN_NONBLOCK = 0x2
682 FS_ENCRYPTION_MODE_AES_256_GCM = 0x2 682 FAN_ONDIR = 0x40000000
683 FS_ENCRYPTION_MODE_AES_256_XTS = 0x1 683 FAN_OPEN = 0x20
684 FS_ENCRYPTION_MODE_INVALID = 0x0 684 FAN_OPEN_EXEC = 0x1000
685 FS_ENCRYPTION_MODE_SPECK128_256_CTS = 0x8 685 FAN_OPEN_EXEC_PERM = 0x40000
686 FS_ENCRYPTION_MODE_SPECK128_256_XTS = 0x7 686 FAN_OPEN_PERM = 0x10000
687 FS_IOC_GET_ENCRYPTION_POLICY = 0x400c6615 687 FAN_Q_OVERFLOW = 0x4000
688 FS_IOC_GET_ENCRYPTION_PWSALT = 0x40106614 688 FAN_REPORT_FID = 0x200
689 FS_IOC_SET_ENCRYPTION_POLICY = 0x800c6613 689 FAN_REPORT_TID = 0x100
690 FS_KEY_DESCRIPTOR_SIZE = 0x8 690 FAN_UNLIMITED_MARKS = 0x20
691 FS_KEY_DESC_PREFIX = "fscrypt:" 691 FAN_UNLIMITED_QUEUE = 0x10
692 FS_KEY_DESC_PREFIX_SIZE = 0x8 692 FD_CLOEXEC = 0x1
693 FS_MAX_KEY_SIZE = 0x40 693 FD_SETSIZE = 0x400
694 FS_POLICY_FLAGS_PAD_16 = 0x2 694 FF0 = 0x0
695 FS_POLICY_FLAGS_PAD_32 = 0x3 695 FF1 = 0x8000
696 FS_POLICY_FLAGS_PAD_4 = 0x0 696 FFDLY = 0x8000
697 FS_POLICY_FLAGS_PAD_8 = 0x1 697 FLUSHO = 0x1000
698 FS_POLICY_FLAGS_PAD_MASK = 0x3 698 FSCRYPT_KEY_DESCRIPTOR_SIZE = 0x8
699 FS_POLICY_FLAGS_VALID = 0x7 699 FSCRYPT_KEY_DESC_PREFIX = "fscrypt:"
700 FUTEXFS_SUPER_MAGIC = 0xbad1dea 700 FSCRYPT_KEY_DESC_PREFIX_SIZE = 0x8
701 F_ADD_SEALS = 0x409 701 FSCRYPT_KEY_IDENTIFIER_SIZE = 0x10
702 F_DUPFD = 0x0 702 FSCRYPT_KEY_REMOVAL_STATUS_FLAG_FILES_BUSY = 0x1
703 F_DUPFD_CLOEXEC = 0x406 703 FSCRYPT_KEY_REMOVAL_STATUS_FLAG_OTHER_USERS = 0x2
704 F_EXLCK = 0x4 704 FSCRYPT_KEY_SPEC_TYPE_DESCRIPTOR = 0x1
705 F_GETFD = 0x1 705 FSCRYPT_KEY_SPEC_TYPE_IDENTIFIER = 0x2
706 F_GETFL = 0x3 706 FSCRYPT_KEY_STATUS_ABSENT = 0x1
707 F_GETLEASE = 0x401 707 FSCRYPT_KEY_STATUS_FLAG_ADDED_BY_SELF = 0x1
708 F_GETLK = 0xc 708 FSCRYPT_KEY_STATUS_INCOMPLETELY_REMOVED = 0x3
709 F_GETLK64 = 0xc 709 FSCRYPT_KEY_STATUS_PRESENT = 0x2
710 F_GETOWN = 0x9 710 FSCRYPT_MAX_KEY_SIZE = 0x40
711 F_GETOWN_EX = 0x10 711 FSCRYPT_MODE_ADIANTUM = 0x9
712 F_GETPIPE_SZ = 0x408 712 FSCRYPT_MODE_AES_128_CBC = 0x5
713 F_GETSIG = 0xb 713 FSCRYPT_MODE_AES_128_CTS = 0x6
714 F_GET_FILE_RW_HINT = 0x40d 714 FSCRYPT_MODE_AES_256_CTS = 0x4
715 F_GET_RW_HINT = 0x40b 715 FSCRYPT_MODE_AES_256_XTS = 0x1
716 F_GET_SEALS = 0x40a 716 FSCRYPT_POLICY_FLAGS_PAD_16 = 0x2
717 F_LOCK = 0x1 717 FSCRYPT_POLICY_FLAGS_PAD_32 = 0x3
718 F_NOTIFY = 0x402 718 FSCRYPT_POLICY_FLAGS_PAD_4 = 0x0
719 F_OFD_GETLK = 0x24 719 FSCRYPT_POLICY_FLAGS_PAD_8 = 0x1
720 F_OFD_SETLK = 0x25 720 FSCRYPT_POLICY_FLAGS_PAD_MASK = 0x3
721 F_OFD_SETLKW = 0x26 721 FSCRYPT_POLICY_FLAGS_VALID = 0xf
722 F_OK = 0x0 722 FSCRYPT_POLICY_FLAG_DIRECT_KEY = 0x4
723 F_RDLCK = 0x0 723 FSCRYPT_POLICY_FLAG_IV_INO_LBLK_64 = 0x8
724 F_SEAL_FUTURE_WRITE = 0x10 724 FSCRYPT_POLICY_V1 = 0x0
725 F_SEAL_GROW = 0x4 725 FSCRYPT_POLICY_V2 = 0x2
726 F_SEAL_SEAL = 0x1 726 FS_ENCRYPTION_MODE_ADIANTUM = 0x9
727 F_SEAL_SHRINK = 0x2 727 FS_ENCRYPTION_MODE_AES_128_CBC = 0x5
728 F_SEAL_WRITE = 0x8 728 FS_ENCRYPTION_MODE_AES_128_CTS = 0x6
729 F_SETFD = 0x2 729 FS_ENCRYPTION_MODE_AES_256_CBC = 0x3
730 F_SETFL = 0x4 730 FS_ENCRYPTION_MODE_AES_256_CTS = 0x4
731 F_SETLEASE = 0x400 731 FS_ENCRYPTION_MODE_AES_256_GCM = 0x2
732 F_SETLK = 0xd 732 FS_ENCRYPTION_MODE_AES_256_XTS = 0x1
733 F_SETLK64 = 0xd 733 FS_ENCRYPTION_MODE_INVALID = 0x0
734 F_SETLKW = 0xe 734 FS_ENCRYPTION_MODE_SPECK128_256_CTS = 0x8
735 F_SETLKW64 = 0xe 735 FS_ENCRYPTION_MODE_SPECK128_256_XTS = 0x7
736 F_SETOWN = 0x8 736 FS_IOC_ADD_ENCRYPTION_KEY = 0xc0506617
737 F_SETOWN_EX = 0xf 737 FS_IOC_GET_ENCRYPTION_KEY_STATUS = 0xc080661a
738 F_SETPIPE_SZ = 0x407 738 FS_IOC_GET_ENCRYPTION_POLICY = 0x400c6615
739 F_SETSIG = 0xa 739 FS_IOC_GET_ENCRYPTION_POLICY_EX = 0xc0096616
740 F_SET_FILE_RW_HINT = 0x40e 740 FS_IOC_GET_ENCRYPTION_PWSALT = 0x40106614
741 F_SET_RW_HINT = 0x40c 741 FS_IOC_REMOVE_ENCRYPTION_KEY = 0xc0406618
742 F_SHLCK = 0x8 742 FS_IOC_REMOVE_ENCRYPTION_KEY_ALL_USERS = 0xc0406619
743 F_TEST = 0x3 743 FS_IOC_SET_ENCRYPTION_POLICY = 0x800c6613
744 F_TLOCK = 0x2 744 FS_KEY_DESCRIPTOR_SIZE = 0x8
745 F_ULOCK = 0x0 745 FS_KEY_DESC_PREFIX = "fscrypt:"
746 F_UNLCK = 0x2 746 FS_KEY_DESC_PREFIX_SIZE = 0x8
747 F_WRLCK = 0x1 747 FS_MAX_KEY_SIZE = 0x40
748 GENL_ADMIN_PERM = 0x1 748 FS_POLICY_FLAGS_PAD_16 = 0x2
749 GENL_CMD_CAP_DO = 0x2 749 FS_POLICY_FLAGS_PAD_32 = 0x3
750 GENL_CMD_CAP_DUMP = 0x4 750 FS_POLICY_FLAGS_PAD_4 = 0x0
751 GENL_CMD_CAP_HASPOL = 0x8 751 FS_POLICY_FLAGS_PAD_8 = 0x1
752 GENL_HDRLEN = 0x4 752 FS_POLICY_FLAGS_PAD_MASK = 0x3
753 GENL_ID_CTRL = 0x10 753 FS_POLICY_FLAGS_VALID = 0xf
754 GENL_ID_PMCRAID = 0x12 754 FUTEXFS_SUPER_MAGIC = 0xbad1dea
755 GENL_ID_VFS_DQUOT = 0x11 755 F_ADD_SEALS = 0x409
756 GENL_MAX_ID = 0x3ff 756 F_DUPFD = 0x0
757 GENL_MIN_ID = 0x10 757 F_DUPFD_CLOEXEC = 0x406
758 GENL_NAMSIZ = 0x10 758 F_EXLCK = 0x4
759 GENL_START_ALLOC = 0x13 759 F_GETFD = 0x1
760 GENL_UNS_ADMIN_PERM = 0x10 760 F_GETFL = 0x3
761 GRND_NONBLOCK = 0x1 761 F_GETLEASE = 0x401
762 GRND_RANDOM = 0x2 762 F_GETLK = 0xc
763 HDIO_DRIVE_CMD = 0x31f 763 F_GETLK64 = 0xc
764 HDIO_DRIVE_CMD_AEB = 0x31e 764 F_GETOWN = 0x9
765 HDIO_DRIVE_CMD_HDR_SIZE = 0x4 765 F_GETOWN_EX = 0x10
766 HDIO_DRIVE_HOB_HDR_SIZE = 0x8 766 F_GETPIPE_SZ = 0x408
767 HDIO_DRIVE_RESET = 0x31c 767 F_GETSIG = 0xb
768 HDIO_DRIVE_TASK = 0x31e 768 F_GET_FILE_RW_HINT = 0x40d
769 HDIO_DRIVE_TASKFILE = 0x31d 769 F_GET_RW_HINT = 0x40b
770 HDIO_DRIVE_TASK_HDR_SIZE = 0x8 770 F_GET_SEALS = 0x40a
771 HDIO_GETGEO = 0x301 771 F_LOCK = 0x1
772 HDIO_GET_32BIT = 0x309 772 F_NOTIFY = 0x402
773 HDIO_GET_ACOUSTIC = 0x30f 773 F_OFD_GETLK = 0x24
774 HDIO_GET_ADDRESS = 0x310 774 F_OFD_SETLK = 0x25
775 HDIO_GET_BUSSTATE = 0x31a 775 F_OFD_SETLKW = 0x26
776 HDIO_GET_DMA = 0x30b 776 F_OK = 0x0
777 HDIO_GET_IDENTITY = 0x30d 777 F_RDLCK = 0x0
778 HDIO_GET_KEEPSETTINGS = 0x308 778 F_SEAL_FUTURE_WRITE = 0x10
779 HDIO_GET_MULTCOUNT = 0x304 779 F_SEAL_GROW = 0x4
780 HDIO_GET_NICE = 0x30c 780 F_SEAL_SEAL = 0x1
781 HDIO_GET_NOWERR = 0x30a 781 F_SEAL_SHRINK = 0x2
782 HDIO_GET_QDMA = 0x305 782 F_SEAL_WRITE = 0x8
783 HDIO_GET_UNMASKINTR = 0x302 783 F_SETFD = 0x2
784 HDIO_GET_WCACHE = 0x30e 784 F_SETFL = 0x4
785 HDIO_OBSOLETE_IDENTITY = 0x307 785 F_SETLEASE = 0x400
786 HDIO_SCAN_HWIF = 0x328 786 F_SETLK = 0xd
787 HDIO_SET_32BIT = 0x324 787 F_SETLK64 = 0xd
788 HDIO_SET_ACOUSTIC = 0x32c 788 F_SETLKW = 0xe
789 HDIO_SET_ADDRESS = 0x32f 789 F_SETLKW64 = 0xe
790 HDIO_SET_BUSSTATE = 0x32d 790 F_SETOWN = 0x8
791 HDIO_SET_DMA = 0x326 791 F_SETOWN_EX = 0xf
792 HDIO_SET_KEEPSETTINGS = 0x323 792 F_SETPIPE_SZ = 0x407
793 HDIO_SET_MULTCOUNT = 0x321 793 F_SETSIG = 0xa
794 HDIO_SET_NICE = 0x329 794 F_SET_FILE_RW_HINT = 0x40e
795 HDIO_SET_NOWERR = 0x325 795 F_SET_RW_HINT = 0x40c
796 HDIO_SET_PIO_MODE = 0x327 796 F_SHLCK = 0x8
797 HDIO_SET_QDMA = 0x32e 797 F_TEST = 0x3
798 HDIO_SET_UNMASKINTR = 0x322 798 F_TLOCK = 0x2
799 HDIO_SET_WCACHE = 0x32b 799 F_ULOCK = 0x0
800 HDIO_SET_XFER = 0x306 800 F_UNLCK = 0x2
801 HDIO_TRISTATE_HWIF = 0x31b 801 F_WRLCK = 0x1
802 HDIO_UNREGISTER_HWIF = 0x32a 802 GENL_ADMIN_PERM = 0x1
803 HOSTFS_SUPER_MAGIC = 0xc0ffee 803 GENL_CMD_CAP_DO = 0x2
804 HPFS_SUPER_MAGIC = 0xf995e849 804 GENL_CMD_CAP_DUMP = 0x4
805 HUGETLBFS_MAGIC = 0x958458f6 805 GENL_CMD_CAP_HASPOL = 0x8
806 HUPCL = 0x400 806 GENL_HDRLEN = 0x4
807 IBSHIFT = 0x10 807 GENL_ID_CTRL = 0x10
808 ICANON = 0x2 808 GENL_ID_PMCRAID = 0x12
809 ICMPV6_FILTER = 0x1 809 GENL_ID_VFS_DQUOT = 0x11
810 ICRNL = 0x100 810 GENL_MAX_ID = 0x3ff
811 IEXTEN = 0x8000 811 GENL_MIN_ID = 0x10
812 IFA_F_DADFAILED = 0x8 812 GENL_NAMSIZ = 0x10
813 IFA_F_DEPRECATED = 0x20 813 GENL_START_ALLOC = 0x13
814 IFA_F_HOMEADDRESS = 0x10 814 GENL_UNS_ADMIN_PERM = 0x10
815 IFA_F_MANAGETEMPADDR = 0x100 815 GRND_NONBLOCK = 0x1
816 IFA_F_MCAUTOJOIN = 0x400 816 GRND_RANDOM = 0x2
817 IFA_F_NODAD = 0x2 817 HDIO_DRIVE_CMD = 0x31f
818 IFA_F_NOPREFIXROUTE = 0x200 818 HDIO_DRIVE_CMD_AEB = 0x31e
819 IFA_F_OPTIMISTIC = 0x4 819 HDIO_DRIVE_CMD_HDR_SIZE = 0x4
820 IFA_F_PERMANENT = 0x80 820 HDIO_DRIVE_HOB_HDR_SIZE = 0x8
821 IFA_F_SECONDARY = 0x1 821 HDIO_DRIVE_RESET = 0x31c
822 IFA_F_STABLE_PRIVACY = 0x800 822 HDIO_DRIVE_TASK = 0x31e
823 IFA_F_TEMPORARY = 0x1 823 HDIO_DRIVE_TASKFILE = 0x31d
824 IFA_F_TENTATIVE = 0x40 824 HDIO_DRIVE_TASK_HDR_SIZE = 0x8
825 IFA_MAX = 0xa 825 HDIO_GETGEO = 0x301
826 IFF_ALLMULTI = 0x200 826 HDIO_GET_32BIT = 0x309
827 IFF_ATTACH_QUEUE = 0x200 827 HDIO_GET_ACOUSTIC = 0x30f
828 IFF_AUTOMEDIA = 0x4000 828 HDIO_GET_ADDRESS = 0x310
829 IFF_BROADCAST = 0x2 829 HDIO_GET_BUSSTATE = 0x31a
830 IFF_DEBUG = 0x4 830 HDIO_GET_DMA = 0x30b
831 IFF_DETACH_QUEUE = 0x400 831 HDIO_GET_IDENTITY = 0x30d
832 IFF_DORMANT = 0x20000 832 HDIO_GET_KEEPSETTINGS = 0x308
833 IFF_DYNAMIC = 0x8000 833 HDIO_GET_MULTCOUNT = 0x304
834 IFF_ECHO = 0x40000 834 HDIO_GET_NICE = 0x30c
835 IFF_LOOPBACK = 0x8 835 HDIO_GET_NOWERR = 0x30a
836 IFF_LOWER_UP = 0x10000 836 HDIO_GET_QDMA = 0x305
837 IFF_MASTER = 0x400 837 HDIO_GET_UNMASKINTR = 0x302
838 IFF_MULTICAST = 0x1000 838 HDIO_GET_WCACHE = 0x30e
839 IFF_MULTI_QUEUE = 0x100 839 HDIO_OBSOLETE_IDENTITY = 0x307
840 IFF_NAPI = 0x10 840 HDIO_SCAN_HWIF = 0x328
841 IFF_NAPI_FRAGS = 0x20 841 HDIO_SET_32BIT = 0x324
842 IFF_NOARP = 0x80 842 HDIO_SET_ACOUSTIC = 0x32c
843 IFF_NOFILTER = 0x1000 843 HDIO_SET_ADDRESS = 0x32f
844 IFF_NOTRAILERS = 0x20 844 HDIO_SET_BUSSTATE = 0x32d
845 IFF_NO_PI = 0x1000 845 HDIO_SET_DMA = 0x326
846 IFF_ONE_QUEUE = 0x2000 846 HDIO_SET_KEEPSETTINGS = 0x323
847 IFF_PERSIST = 0x800 847 HDIO_SET_MULTCOUNT = 0x321
848 IFF_POINTOPOINT = 0x10 848 HDIO_SET_NICE = 0x329
849 IFF_PORTSEL = 0x2000 849 HDIO_SET_NOWERR = 0x325
850 IFF_PROMISC = 0x100 850 HDIO_SET_PIO_MODE = 0x327
851 IFF_RUNNING = 0x40 851 HDIO_SET_QDMA = 0x32e
852 IFF_SLAVE = 0x800 852 HDIO_SET_UNMASKINTR = 0x322
853 IFF_TAP = 0x2 853 HDIO_SET_WCACHE = 0x32b
854 IFF_TUN = 0x1 854 HDIO_SET_XFER = 0x306
855 IFF_TUN_EXCL = 0x8000 855 HDIO_TRISTATE_HWIF = 0x31b
856 IFF_UP = 0x1 856 HDIO_UNREGISTER_HWIF = 0x32a
857 IFF_VNET_HDR = 0x4000 857 HOSTFS_SUPER_MAGIC = 0xc0ffee
858 IFF_VOLATILE = 0x70c5a 858 HPFS_SUPER_MAGIC = 0xf995e849
859 IFNAMSIZ = 0x10 859 HUGETLBFS_MAGIC = 0x958458f6
860 IGNBRK = 0x1 860 HUPCL = 0x400
861 IGNCR = 0x80 861 IBSHIFT = 0x10
862 IGNPAR = 0x4 862 ICANON = 0x2
863 IMAXBEL = 0x2000 863 ICMPV6_FILTER = 0x1
864 INLCR = 0x40 864 ICRNL = 0x100
865 INPCK = 0x10 865 IEXTEN = 0x8000
866 IN_ACCESS = 0x1 866 IFA_F_DADFAILED = 0x8
867 IN_ALL_EVENTS = 0xfff 867 IFA_F_DEPRECATED = 0x20
868 IN_ATTRIB = 0x4 868 IFA_F_HOMEADDRESS = 0x10
869 IN_CLASSA_HOST = 0xffffff 869 IFA_F_MANAGETEMPADDR = 0x100
870 IN_CLASSA_MAX = 0x80 870 IFA_F_MCAUTOJOIN = 0x400
871 IN_CLASSA_NET = 0xff000000 871 IFA_F_NODAD = 0x2
872 IN_CLASSA_NSHIFT = 0x18 872 IFA_F_NOPREFIXROUTE = 0x200
873 IN_CLASSB_HOST = 0xffff 873 IFA_F_OPTIMISTIC = 0x4
874 IN_CLASSB_MAX = 0x10000 874 IFA_F_PERMANENT = 0x80
875 IN_CLASSB_NET = 0xffff0000 875 IFA_F_SECONDARY = 0x1
876 IN_CLASSB_NSHIFT = 0x10 876 IFA_F_STABLE_PRIVACY = 0x800
877 IN_CLASSC_HOST = 0xff 877 IFA_F_TEMPORARY = 0x1
878 IN_CLASSC_NET = 0xffffff00 878 IFA_F_TENTATIVE = 0x40
879 IN_CLASSC_NSHIFT = 0x8 879 IFA_MAX = 0xa
880 IN_CLOEXEC = 0x80000 880 IFF_ALLMULTI = 0x200
881 IN_CLOSE = 0x18 881 IFF_ATTACH_QUEUE = 0x200
882 IN_CLOSE_NOWRITE = 0x10 882 IFF_AUTOMEDIA = 0x4000
883 IN_CLOSE_WRITE = 0x8 883 IFF_BROADCAST = 0x2
884 IN_CREATE = 0x100 884 IFF_DEBUG = 0x4
885 IN_DELETE = 0x200 885 IFF_DETACH_QUEUE = 0x400
886 IN_DELETE_SELF = 0x400 886 IFF_DORMANT = 0x20000
887 IN_DONT_FOLLOW = 0x2000000 887 IFF_DYNAMIC = 0x8000
888 IN_EXCL_UNLINK = 0x4000000 888 IFF_ECHO = 0x40000
889 IN_IGNORED = 0x8000 889 IFF_LOOPBACK = 0x8
890 IN_ISDIR = 0x40000000 890 IFF_LOWER_UP = 0x10000
891 IN_LOOPBACKNET = 0x7f 891 IFF_MASTER = 0x400
892 IN_MASK_ADD = 0x20000000 892 IFF_MULTICAST = 0x1000
893 IN_MASK_CREATE = 0x10000000 893 IFF_MULTI_QUEUE = 0x100
894 IN_MODIFY = 0x2 894 IFF_NAPI = 0x10
895 IN_MOVE = 0xc0 895 IFF_NAPI_FRAGS = 0x20
896 IN_MOVED_FROM = 0x40 896 IFF_NOARP = 0x80
897 IN_MOVED_TO = 0x80 897 IFF_NOFILTER = 0x1000
898 IN_MOVE_SELF = 0x800 898 IFF_NOTRAILERS = 0x20
899 IN_NONBLOCK = 0x800 899 IFF_NO_PI = 0x1000
900 IN_ONESHOT = 0x80000000 900 IFF_ONE_QUEUE = 0x2000
901 IN_ONLYDIR = 0x1000000 901 IFF_PERSIST = 0x800
902 IN_OPEN = 0x20 902 IFF_POINTOPOINT = 0x10
903 IN_Q_OVERFLOW = 0x4000 903 IFF_PORTSEL = 0x2000
904 IN_UNMOUNT = 0x2000 904 IFF_PROMISC = 0x100
905 IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x7b9 905 IFF_RUNNING = 0x40
906 IPPROTO_AH = 0x33 906 IFF_SLAVE = 0x800
907 IPPROTO_BEETPH = 0x5e 907 IFF_TAP = 0x2
908 IPPROTO_COMP = 0x6c 908 IFF_TUN = 0x1
909 IPPROTO_DCCP = 0x21 909 IFF_TUN_EXCL = 0x8000
910 IPPROTO_DSTOPTS = 0x3c 910 IFF_UP = 0x1
911 IPPROTO_EGP = 0x8 911 IFF_VNET_HDR = 0x4000
912 IPPROTO_ENCAP = 0x62 912 IFF_VOLATILE = 0x70c5a
913 IPPROTO_ESP = 0x32 913 IFNAMSIZ = 0x10
914 IPPROTO_FRAGMENT = 0x2c 914 IGNBRK = 0x1
915 IPPROTO_GRE = 0x2f 915 IGNCR = 0x80
916 IPPROTO_HOPOPTS = 0x0 916 IGNPAR = 0x4
917 IPPROTO_ICMP = 0x1 917 IMAXBEL = 0x2000
918 IPPROTO_ICMPV6 = 0x3a 918 INLCR = 0x40
919 IPPROTO_IDP = 0x16 919 INPCK = 0x10
920 IPPROTO_IGMP = 0x2 920 IN_ACCESS = 0x1
921 IPPROTO_IP = 0x0 921 IN_ALL_EVENTS = 0xfff
922 IPPROTO_IPIP = 0x4 922 IN_ATTRIB = 0x4
923 IPPROTO_IPV6 = 0x29 923 IN_CLASSA_HOST = 0xffffff
924 IPPROTO_MH = 0x87 924 IN_CLASSA_MAX = 0x80
925 IPPROTO_MPLS = 0x89 925 IN_CLASSA_NET = 0xff000000
926 IPPROTO_MTP = 0x5c 926 IN_CLASSA_NSHIFT = 0x18
927 IPPROTO_NONE = 0x3b 927 IN_CLASSB_HOST = 0xffff
928 IPPROTO_PIM = 0x67 928 IN_CLASSB_MAX = 0x10000
929 IPPROTO_PUP = 0xc 929 IN_CLASSB_NET = 0xffff0000
930 IPPROTO_RAW = 0xff 930 IN_CLASSB_NSHIFT = 0x10
931 IPPROTO_ROUTING = 0x2b 931 IN_CLASSC_HOST = 0xff
932 IPPROTO_RSVP = 0x2e 932 IN_CLASSC_NET = 0xffffff00
933 IPPROTO_SCTP = 0x84 933 IN_CLASSC_NSHIFT = 0x8
934 IPPROTO_TCP = 0x6 934 IN_CLOEXEC = 0x80000
935 IPPROTO_TP = 0x1d 935 IN_CLOSE = 0x18
936 IPPROTO_UDP = 0x11 936 IN_CLOSE_NOWRITE = 0x10
937 IPPROTO_UDPLITE = 0x88 937 IN_CLOSE_WRITE = 0x8
938 IPV6_2292DSTOPTS = 0x4 938 IN_CREATE = 0x100
939 IPV6_2292HOPLIMIT = 0x8 939 IN_DELETE = 0x200
940 IPV6_2292HOPOPTS = 0x3 940 IN_DELETE_SELF = 0x400
941 IPV6_2292PKTINFO = 0x2 941 IN_DONT_FOLLOW = 0x2000000
942 IPV6_2292PKTOPTIONS = 0x6 942 IN_EXCL_UNLINK = 0x4000000
943 IPV6_2292RTHDR = 0x5 943 IN_IGNORED = 0x8000
944 IPV6_ADDRFORM = 0x1 944 IN_ISDIR = 0x40000000
945 IPV6_ADDR_PREFERENCES = 0x48 945 IN_LOOPBACKNET = 0x7f
946 IPV6_ADD_MEMBERSHIP = 0x14 946 IN_MASK_ADD = 0x20000000
947 IPV6_AUTHHDR = 0xa 947 IN_MASK_CREATE = 0x10000000
948 IPV6_AUTOFLOWLABEL = 0x46 948 IN_MODIFY = 0x2
949 IPV6_CHECKSUM = 0x7 949 IN_MOVE = 0xc0
950 IPV6_DONTFRAG = 0x3e 950 IN_MOVED_FROM = 0x40
951 IPV6_DROP_MEMBERSHIP = 0x15 951 IN_MOVED_TO = 0x80
952 IPV6_DSTOPTS = 0x3b 952 IN_MOVE_SELF = 0x800
953 IPV6_FREEBIND = 0x4e 953 IN_NONBLOCK = 0x800
954 IPV6_HDRINCL = 0x24 954 IN_ONESHOT = 0x80000000
955 IPV6_HOPLIMIT = 0x34 955 IN_ONLYDIR = 0x1000000
956 IPV6_HOPOPTS = 0x36 956 IN_OPEN = 0x20
957 IPV6_IPSEC_POLICY = 0x22 957 IN_Q_OVERFLOW = 0x4000
958 IPV6_JOIN_ANYCAST = 0x1b 958 IN_UNMOUNT = 0x2000
959 IPV6_JOIN_GROUP = 0x14 959 IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x7b9
960 IPV6_LEAVE_ANYCAST = 0x1c 960 IPPROTO_AH = 0x33
961 IPV6_LEAVE_GROUP = 0x15 961 IPPROTO_BEETPH = 0x5e
962 IPV6_MINHOPCOUNT = 0x49 962 IPPROTO_COMP = 0x6c
963 IPV6_MTU = 0x18 963 IPPROTO_DCCP = 0x21
964 IPV6_MTU_DISCOVER = 0x17 964 IPPROTO_DSTOPTS = 0x3c
965 IPV6_MULTICAST_ALL = 0x1d 965 IPPROTO_EGP = 0x8
966 IPV6_MULTICAST_HOPS = 0x12 966 IPPROTO_ENCAP = 0x62
967 IPV6_MULTICAST_IF = 0x11 967 IPPROTO_ESP = 0x32
968 IPV6_MULTICAST_LOOP = 0x13 968 IPPROTO_FRAGMENT = 0x2c
969 IPV6_NEXTHOP = 0x9 969 IPPROTO_GRE = 0x2f
970 IPV6_ORIGDSTADDR = 0x4a 970 IPPROTO_HOPOPTS = 0x0
971 IPV6_PATHMTU = 0x3d 971 IPPROTO_ICMP = 0x1
972 IPV6_PKTINFO = 0x32 972 IPPROTO_ICMPV6 = 0x3a
973 IPV6_PMTUDISC_DO = 0x2 973 IPPROTO_IDP = 0x16
974 IPV6_PMTUDISC_DONT = 0x0 974 IPPROTO_IGMP = 0x2
975 IPV6_PMTUDISC_INTERFACE = 0x4 975 IPPROTO_IP = 0x0
976 IPV6_PMTUDISC_OMIT = 0x5 976 IPPROTO_IPIP = 0x4
977 IPV6_PMTUDISC_PROBE = 0x3 977 IPPROTO_IPV6 = 0x29
978 IPV6_PMTUDISC_WANT = 0x1 978 IPPROTO_MH = 0x87
979 IPV6_RECVDSTOPTS = 0x3a 979 IPPROTO_MPLS = 0x89
980 IPV6_RECVERR = 0x19 980 IPPROTO_MTP = 0x5c
981 IPV6_RECVFRAGSIZE = 0x4d 981 IPPROTO_NONE = 0x3b
982 IPV6_RECVHOPLIMIT = 0x33 982 IPPROTO_PIM = 0x67
983 IPV6_RECVHOPOPTS = 0x35 983 IPPROTO_PUP = 0xc
984 IPV6_RECVORIGDSTADDR = 0x4a 984 IPPROTO_RAW = 0xff
985 IPV6_RECVPATHMTU = 0x3c 985 IPPROTO_ROUTING = 0x2b
986 IPV6_RECVPKTINFO = 0x31 986 IPPROTO_RSVP = 0x2e
987 IPV6_RECVRTHDR = 0x38 987 IPPROTO_SCTP = 0x84
988 IPV6_RECVTCLASS = 0x42 988 IPPROTO_TCP = 0x6
989 IPV6_ROUTER_ALERT = 0x16 989 IPPROTO_TP = 0x1d
990 IPV6_ROUTER_ALERT_ISOLATE = 0x1e 990 IPPROTO_UDP = 0x11
991 IPV6_RTHDR = 0x39 991 IPPROTO_UDPLITE = 0x88
992 IPV6_RTHDRDSTOPTS = 0x37 992 IPV6_2292DSTOPTS = 0x4
993 IPV6_RTHDR_LOOSE = 0x0 993 IPV6_2292HOPLIMIT = 0x8
994 IPV6_RTHDR_STRICT = 0x1 994 IPV6_2292HOPOPTS = 0x3
995 IPV6_RTHDR_TYPE_0 = 0x0 995 IPV6_2292PKTINFO = 0x2
996 IPV6_RXDSTOPTS = 0x3b 996 IPV6_2292PKTOPTIONS = 0x6
997 IPV6_RXHOPOPTS = 0x36 997 IPV6_2292RTHDR = 0x5
998 IPV6_TCLASS = 0x43 998 IPV6_ADDRFORM = 0x1
999 IPV6_TRANSPARENT = 0x4b 999 IPV6_ADDR_PREFERENCES = 0x48
1000 IPV6_UNICAST_HOPS = 0x10 1000 IPV6_ADD_MEMBERSHIP = 0x14
1001 IPV6_UNICAST_IF = 0x4c 1001 IPV6_AUTHHDR = 0xa
1002 IPV6_V6ONLY = 0x1a 1002 IPV6_AUTOFLOWLABEL = 0x46
1003 IPV6_XFRM_POLICY = 0x23 1003 IPV6_CHECKSUM = 0x7
1004 IP_ADD_MEMBERSHIP = 0x23 1004 IPV6_DONTFRAG = 0x3e
1005 IP_ADD_SOURCE_MEMBERSHIP = 0x27 1005 IPV6_DROP_MEMBERSHIP = 0x15
1006 IP_BIND_ADDRESS_NO_PORT = 0x18 1006 IPV6_DSTOPTS = 0x3b
1007 IP_BLOCK_SOURCE = 0x26 1007 IPV6_FREEBIND = 0x4e
1008 IP_CHECKSUM = 0x17 1008 IPV6_HDRINCL = 0x24
1009 IP_DEFAULT_MULTICAST_LOOP = 0x1 1009 IPV6_HOPLIMIT = 0x34
1010 IP_DEFAULT_MULTICAST_TTL = 0x1 1010 IPV6_HOPOPTS = 0x36
1011 IP_DF = 0x4000 1011 IPV6_IPSEC_POLICY = 0x22
1012 IP_DROP_MEMBERSHIP = 0x24 1012 IPV6_JOIN_ANYCAST = 0x1b
1013 IP_DROP_SOURCE_MEMBERSHIP = 0x28 1013 IPV6_JOIN_GROUP = 0x14
1014 IP_FREEBIND = 0xf 1014 IPV6_LEAVE_ANYCAST = 0x1c
1015 IP_HDRINCL = 0x3 1015 IPV6_LEAVE_GROUP = 0x15
1016 IP_IPSEC_POLICY = 0x10 1016 IPV6_MINHOPCOUNT = 0x49
1017 IP_MAXPACKET = 0xffff 1017 IPV6_MTU = 0x18
1018 IP_MAX_MEMBERSHIPS = 0x14 1018 IPV6_MTU_DISCOVER = 0x17
1019 IP_MF = 0x2000 1019 IPV6_MULTICAST_ALL = 0x1d
1020 IP_MINTTL = 0x15 1020 IPV6_MULTICAST_HOPS = 0x12
1021 IP_MSFILTER = 0x29 1021 IPV6_MULTICAST_IF = 0x11
1022 IP_MSS = 0x240 1022 IPV6_MULTICAST_LOOP = 0x13
1023 IP_MTU = 0xe 1023 IPV6_NEXTHOP = 0x9
1024 IP_MTU_DISCOVER = 0xa 1024 IPV6_ORIGDSTADDR = 0x4a
1025 IP_MULTICAST_ALL = 0x31 1025 IPV6_PATHMTU = 0x3d
1026 IP_MULTICAST_IF = 0x20 1026 IPV6_PKTINFO = 0x32
1027 IP_MULTICAST_LOOP = 0x22 1027 IPV6_PMTUDISC_DO = 0x2
1028 IP_MULTICAST_TTL = 0x21 1028 IPV6_PMTUDISC_DONT = 0x0
1029 IP_NODEFRAG = 0x16 1029 IPV6_PMTUDISC_INTERFACE = 0x4
1030 IP_OFFMASK = 0x1fff 1030 IPV6_PMTUDISC_OMIT = 0x5
1031 IP_OPTIONS = 0x4 1031 IPV6_PMTUDISC_PROBE = 0x3
1032 IP_ORIGDSTADDR = 0x14 1032 IPV6_PMTUDISC_WANT = 0x1
1033 IP_PASSSEC = 0x12 1033 IPV6_RECVDSTOPTS = 0x3a
1034 IP_PKTINFO = 0x8 1034 IPV6_RECVERR = 0x19
1035 IP_PKTOPTIONS = 0x9 1035 IPV6_RECVFRAGSIZE = 0x4d
1036 IP_PMTUDISC = 0xa 1036 IPV6_RECVHOPLIMIT = 0x33
1037 IP_PMTUDISC_DO = 0x2 1037 IPV6_RECVHOPOPTS = 0x35
1038 IP_PMTUDISC_DONT = 0x0 1038 IPV6_RECVORIGDSTADDR = 0x4a
1039 IP_PMTUDISC_INTERFACE = 0x4 1039 IPV6_RECVPATHMTU = 0x3c
1040 IP_PMTUDISC_OMIT = 0x5 1040 IPV6_RECVPKTINFO = 0x31
1041 IP_PMTUDISC_PROBE = 0x3 1041 IPV6_RECVRTHDR = 0x38
1042 IP_PMTUDISC_WANT = 0x1 1042 IPV6_RECVTCLASS = 0x42
1043 IP_RECVERR = 0xb 1043 IPV6_ROUTER_ALERT = 0x16
1044 IP_RECVFRAGSIZE = 0x19 1044 IPV6_ROUTER_ALERT_ISOLATE = 0x1e
1045 IP_RECVOPTS = 0x6 1045 IPV6_RTHDR = 0x39
1046 IP_RECVORIGDSTADDR = 0x14 1046 IPV6_RTHDRDSTOPTS = 0x37
1047 IP_RECVRETOPTS = 0x7 1047 IPV6_RTHDR_LOOSE = 0x0
1048 IP_RECVTOS = 0xd 1048 IPV6_RTHDR_STRICT = 0x1
1049 IP_RECVTTL = 0xc 1049 IPV6_RTHDR_TYPE_0 = 0x0
1050 IP_RETOPTS = 0x7 1050 IPV6_RXDSTOPTS = 0x3b
1051 IP_RF = 0x8000 1051 IPV6_RXHOPOPTS = 0x36
1052 IP_ROUTER_ALERT = 0x5 1052 IPV6_TCLASS = 0x43
1053 IP_TOS = 0x1 1053 IPV6_TRANSPARENT = 0x4b
1054 IP_TRANSPARENT = 0x13 1054 IPV6_UNICAST_HOPS = 0x10
1055 IP_TTL = 0x2 1055 IPV6_UNICAST_IF = 0x4c
1056 IP_UNBLOCK_SOURCE = 0x25 1056 IPV6_V6ONLY = 0x1a
1057 IP_UNICAST_IF = 0x32 1057 IPV6_XFRM_POLICY = 0x23
1058 IP_XFRM_POLICY = 0x11 1058 IP_ADD_MEMBERSHIP = 0x23
1059 ISIG = 0x1 1059 IP_ADD_SOURCE_MEMBERSHIP = 0x27
1060 ISOFS_SUPER_MAGIC = 0x9660 1060 IP_BIND_ADDRESS_NO_PORT = 0x18
1061 ISTRIP = 0x20 1061 IP_BLOCK_SOURCE = 0x26
1062 IUCLC = 0x200 1062 IP_CHECKSUM = 0x17
1063 IUTF8 = 0x4000 1063 IP_DEFAULT_MULTICAST_LOOP = 0x1
1064 IXANY = 0x800 1064 IP_DEFAULT_MULTICAST_TTL = 0x1
1065 IXOFF = 0x1000 1065 IP_DF = 0x4000
1066 IXON = 0x400 1066 IP_DROP_MEMBERSHIP = 0x24
1067 JFFS2_SUPER_MAGIC = 0x72b6 1067 IP_DROP_SOURCE_MEMBERSHIP = 0x28
1068 KEXEC_ARCH_386 = 0x30000 1068 IP_FREEBIND = 0xf
1069 KEXEC_ARCH_68K = 0x40000 1069 IP_HDRINCL = 0x3
1070 KEXEC_ARCH_AARCH64 = 0xb70000 1070 IP_IPSEC_POLICY = 0x10
1071 KEXEC_ARCH_ARM = 0x280000 1071 IP_MAXPACKET = 0xffff
1072 KEXEC_ARCH_DEFAULT = 0x0 1072 IP_MAX_MEMBERSHIPS = 0x14
1073 KEXEC_ARCH_IA_64 = 0x320000 1073 IP_MF = 0x2000
1074 KEXEC_ARCH_MASK = 0xffff0000 1074 IP_MINTTL = 0x15
1075 KEXEC_ARCH_MIPS = 0x80000 1075 IP_MSFILTER = 0x29
1076 KEXEC_ARCH_MIPS_LE = 0xa0000 1076 IP_MSS = 0x240
1077 KEXEC_ARCH_PPC = 0x140000 1077 IP_MTU = 0xe
1078 KEXEC_ARCH_PPC64 = 0x150000 1078 IP_MTU_DISCOVER = 0xa
1079 KEXEC_ARCH_S390 = 0x160000 1079 IP_MULTICAST_ALL = 0x31
1080 KEXEC_ARCH_SH = 0x2a0000 1080 IP_MULTICAST_IF = 0x20
1081 KEXEC_ARCH_X86_64 = 0x3e0000 1081 IP_MULTICAST_LOOP = 0x22
1082 KEXEC_FILE_NO_INITRAMFS = 0x4 1082 IP_MULTICAST_TTL = 0x21
1083 KEXEC_FILE_ON_CRASH = 0x2 1083 IP_NODEFRAG = 0x16
1084 KEXEC_FILE_UNLOAD = 0x1 1084 IP_OFFMASK = 0x1fff
1085 KEXEC_ON_CRASH = 0x1 1085 IP_OPTIONS = 0x4
1086 KEXEC_PRESERVE_CONTEXT = 0x2 1086 IP_ORIGDSTADDR = 0x14
1087 KEXEC_SEGMENT_MAX = 0x10 1087 IP_PASSSEC = 0x12
1088 KEYCTL_ASSUME_AUTHORITY = 0x10 1088 IP_PKTINFO = 0x8
1089 KEYCTL_CHOWN = 0x4 1089 IP_PKTOPTIONS = 0x9
1090 KEYCTL_CLEAR = 0x7 1090 IP_PMTUDISC = 0xa
1091 KEYCTL_DESCRIBE = 0x6 1091 IP_PMTUDISC_DO = 0x2
1092 KEYCTL_DH_COMPUTE = 0x17 1092 IP_PMTUDISC_DONT = 0x0
1093 KEYCTL_GET_KEYRING_ID = 0x0 1093 IP_PMTUDISC_INTERFACE = 0x4
1094 KEYCTL_GET_PERSISTENT = 0x16 1094 IP_PMTUDISC_OMIT = 0x5
1095 KEYCTL_GET_SECURITY = 0x11 1095 IP_PMTUDISC_PROBE = 0x3
1096 KEYCTL_INSTANTIATE = 0xc 1096 IP_PMTUDISC_WANT = 0x1
1097 KEYCTL_INSTANTIATE_IOV = 0x14 1097 IP_RECVERR = 0xb
1098 KEYCTL_INVALIDATE = 0x15 1098 IP_RECVFRAGSIZE = 0x19
1099 KEYCTL_JOIN_SESSION_KEYRING = 0x1 1099 IP_RECVOPTS = 0x6
1100 KEYCTL_LINK = 0x8 1100 IP_RECVORIGDSTADDR = 0x14
1101 KEYCTL_NEGATE = 0xd 1101 IP_RECVRETOPTS = 0x7
1102 KEYCTL_PKEY_DECRYPT = 0x1a 1102 IP_RECVTOS = 0xd
1103 KEYCTL_PKEY_ENCRYPT = 0x19 1103 IP_RECVTTL = 0xc
1104 KEYCTL_PKEY_QUERY = 0x18 1104 IP_RETOPTS = 0x7
1105 KEYCTL_PKEY_SIGN = 0x1b 1105 IP_RF = 0x8000
1106 KEYCTL_PKEY_VERIFY = 0x1c 1106 IP_ROUTER_ALERT = 0x5
1107 KEYCTL_READ = 0xb 1107 IP_TOS = 0x1
1108 KEYCTL_REJECT = 0x13 1108 IP_TRANSPARENT = 0x13
1109 KEYCTL_RESTRICT_KEYRING = 0x1d 1109 IP_TTL = 0x2
1110 KEYCTL_REVOKE = 0x3 1110 IP_UNBLOCK_SOURCE = 0x25
1111 KEYCTL_SEARCH = 0xa 1111 IP_UNICAST_IF = 0x32
1112 KEYCTL_SESSION_TO_PARENT = 0x12 1112 IP_XFRM_POLICY = 0x11
1113 KEYCTL_SETPERM = 0x5 1113 ISIG = 0x1
1114 KEYCTL_SET_REQKEY_KEYRING = 0xe 1114 ISOFS_SUPER_MAGIC = 0x9660
1115 KEYCTL_SET_TIMEOUT = 0xf 1115 ISTRIP = 0x20
1116 KEYCTL_SUPPORTS_DECRYPT = 0x2 1116 IUCLC = 0x200
1117 KEYCTL_SUPPORTS_ENCRYPT = 0x1 1117 IUTF8 = 0x4000
1118 KEYCTL_SUPPORTS_SIGN = 0x4 1118 IXANY = 0x800
1119 KEYCTL_SUPPORTS_VERIFY = 0x8 1119 IXOFF = 0x1000
1120 KEYCTL_UNLINK = 0x9 1120 IXON = 0x400
1121 KEYCTL_UPDATE = 0x2 1121 JFFS2_SUPER_MAGIC = 0x72b6
1122 KEY_REQKEY_DEFL_DEFAULT = 0x0 1122 KEXEC_ARCH_386 = 0x30000
1123 KEY_REQKEY_DEFL_GROUP_KEYRING = 0x6 1123 KEXEC_ARCH_68K = 0x40000
1124 KEY_REQKEY_DEFL_NO_CHANGE = -0x1 1124 KEXEC_ARCH_AARCH64 = 0xb70000
1125 KEY_REQKEY_DEFL_PROCESS_KEYRING = 0x2 1125 KEXEC_ARCH_ARM = 0x280000
1126 KEY_REQKEY_DEFL_REQUESTOR_KEYRING = 0x7 1126 KEXEC_ARCH_DEFAULT = 0x0
1127 KEY_REQKEY_DEFL_SESSION_KEYRING = 0x3 1127 KEXEC_ARCH_IA_64 = 0x320000
1128 KEY_REQKEY_DEFL_THREAD_KEYRING = 0x1 1128 KEXEC_ARCH_MASK = 0xffff0000
1129 KEY_REQKEY_DEFL_USER_KEYRING = 0x4 1129 KEXEC_ARCH_MIPS = 0x80000
1130 KEY_REQKEY_DEFL_USER_SESSION_KEYRING = 0x5 1130 KEXEC_ARCH_MIPS_LE = 0xa0000
1131 KEY_SPEC_GROUP_KEYRING = -0x6 1131 KEXEC_ARCH_PARISC = 0xf0000
1132 KEY_SPEC_PROCESS_KEYRING = -0x2 1132 KEXEC_ARCH_PPC = 0x140000
1133 KEY_SPEC_REQKEY_AUTH_KEY = -0x7 1133 KEXEC_ARCH_PPC64 = 0x150000
1134 KEY_SPEC_REQUESTOR_KEYRING = -0x8 1134 KEXEC_ARCH_S390 = 0x160000
1135 KEY_SPEC_SESSION_KEYRING = -0x3 1135 KEXEC_ARCH_SH = 0x2a0000
1136 KEY_SPEC_THREAD_KEYRING = -0x1 1136 KEXEC_ARCH_X86_64 = 0x3e0000
1137 KEY_SPEC_USER_KEYRING = -0x4 1137 KEXEC_FILE_NO_INITRAMFS = 0x4
1138 KEY_SPEC_USER_SESSION_KEYRING = -0x5 1138 KEXEC_FILE_ON_CRASH = 0x2
1139 LINUX_REBOOT_CMD_CAD_OFF = 0x0 1139 KEXEC_FILE_UNLOAD = 0x1
1140 LINUX_REBOOT_CMD_CAD_ON = 0x89abcdef 1140 KEXEC_ON_CRASH = 0x1
1141 LINUX_REBOOT_CMD_HALT = 0xcdef0123 1141 KEXEC_PRESERVE_CONTEXT = 0x2
1142 LINUX_REBOOT_CMD_KEXEC = 0x45584543 1142 KEXEC_SEGMENT_MAX = 0x10
1143 LINUX_REBOOT_CMD_POWER_OFF = 0x4321fedc 1143 KEYCTL_ASSUME_AUTHORITY = 0x10
1144 LINUX_REBOOT_CMD_RESTART = 0x1234567 1144 KEYCTL_CAPABILITIES = 0x1f
1145 LINUX_REBOOT_CMD_RESTART2 = 0xa1b2c3d4 1145 KEYCTL_CAPS0_BIG_KEY = 0x10
1146 LINUX_REBOOT_CMD_SW_SUSPEND = 0xd000fce2 1146 KEYCTL_CAPS0_CAPABILITIES = 0x1
1147 LINUX_REBOOT_MAGIC1 = 0xfee1dead 1147 KEYCTL_CAPS0_DIFFIE_HELLMAN = 0x4
1148 LINUX_REBOOT_MAGIC2 = 0x28121969 1148 KEYCTL_CAPS0_INVALIDATE = 0x20
1149 LOCK_EX = 0x2 1149 KEYCTL_CAPS0_MOVE = 0x80
1150 LOCK_NB = 0x4 1150 KEYCTL_CAPS0_PERSISTENT_KEYRINGS = 0x2
1151 LOCK_SH = 0x1 1151 KEYCTL_CAPS0_PUBLIC_KEY = 0x8
1152 LOCK_UN = 0x8 1152 KEYCTL_CAPS0_RESTRICT_KEYRING = 0x40
1153 LOOP_CLR_FD = 0x4c01 1153 KEYCTL_CAPS1_NS_KEYRING_NAME = 0x1
1154 LOOP_CTL_ADD = 0x4c80 1154 KEYCTL_CAPS1_NS_KEY_TAG = 0x2
1155 LOOP_CTL_GET_FREE = 0x4c82 1155 KEYCTL_CHOWN = 0x4
1156 LOOP_CTL_REMOVE = 0x4c81 1156 KEYCTL_CLEAR = 0x7
1157 LOOP_GET_STATUS = 0x4c03 1157 KEYCTL_DESCRIBE = 0x6
1158 LOOP_GET_STATUS64 = 0x4c05 1158 KEYCTL_DH_COMPUTE = 0x17
1159 LOOP_SET_BLOCK_SIZE = 0x4c09 1159 KEYCTL_GET_KEYRING_ID = 0x0
1160 LOOP_SET_CAPACITY = 0x4c07 1160 KEYCTL_GET_PERSISTENT = 0x16
1161 LOOP_SET_DIRECT_IO = 0x4c08 1161 KEYCTL_GET_SECURITY = 0x11
1162 LOOP_SET_FD = 0x4c00 1162 KEYCTL_INSTANTIATE = 0xc
1163 LOOP_SET_STATUS = 0x4c02 1163 KEYCTL_INSTANTIATE_IOV = 0x14
1164 LOOP_SET_STATUS64 = 0x4c04 1164 KEYCTL_INVALIDATE = 0x15
1165 LO_KEY_SIZE = 0x20 1165 KEYCTL_JOIN_SESSION_KEYRING = 0x1
1166 LO_NAME_SIZE = 0x40 1166 KEYCTL_LINK = 0x8
1167 MADV_DODUMP = 0x11 1167 KEYCTL_MOVE = 0x1e
1168 MADV_DOFORK = 0xb 1168 KEYCTL_MOVE_EXCL = 0x1
1169 MADV_DONTDUMP = 0x10 1169 KEYCTL_NEGATE = 0xd
1170 MADV_DONTFORK = 0xa 1170 KEYCTL_PKEY_DECRYPT = 0x1a
1171 MADV_DONTNEED = 0x4 1171 KEYCTL_PKEY_ENCRYPT = 0x19
1172 MADV_FREE = 0x8 1172 KEYCTL_PKEY_QUERY = 0x18
1173 MADV_HUGEPAGE = 0xe 1173 KEYCTL_PKEY_SIGN = 0x1b
1174 MADV_HWPOISON = 0x64 1174 KEYCTL_PKEY_VERIFY = 0x1c
1175 MADV_KEEPONFORK = 0x13 1175 KEYCTL_READ = 0xb
1176 MADV_MERGEABLE = 0xc 1176 KEYCTL_REJECT = 0x13
1177 MADV_NOHUGEPAGE = 0xf 1177 KEYCTL_RESTRICT_KEYRING = 0x1d
1178 MADV_NORMAL = 0x0 1178 KEYCTL_REVOKE = 0x3
1179 MADV_RANDOM = 0x1 1179 KEYCTL_SEARCH = 0xa
1180 MADV_REMOVE = 0x9 1180 KEYCTL_SESSION_TO_PARENT = 0x12
1181 MADV_SEQUENTIAL = 0x2 1181 KEYCTL_SETPERM = 0x5
1182 MADV_UNMERGEABLE = 0xd 1182 KEYCTL_SET_REQKEY_KEYRING = 0xe
1183 MADV_WILLNEED = 0x3 1183 KEYCTL_SET_TIMEOUT = 0xf
1184 MADV_WIPEONFORK = 0x12 1184 KEYCTL_SUPPORTS_DECRYPT = 0x2
1185 MAP_ANON = 0x20 1185 KEYCTL_SUPPORTS_ENCRYPT = 0x1
1186 MAP_ANONYMOUS = 0x20 1186 KEYCTL_SUPPORTS_SIGN = 0x4
1187 MAP_DENYWRITE = 0x800 1187 KEYCTL_SUPPORTS_VERIFY = 0x8
1188 MAP_EXECUTABLE = 0x1000 1188 KEYCTL_UNLINK = 0x9
1189 MAP_FILE = 0x0 1189 KEYCTL_UPDATE = 0x2
1190 MAP_FIXED = 0x10 1190 KEY_REQKEY_DEFL_DEFAULT = 0x0
1191 MAP_FIXED_NOREPLACE = 0x100000 1191 KEY_REQKEY_DEFL_GROUP_KEYRING = 0x6
1192 MAP_GROWSDOWN = 0x100 1192 KEY_REQKEY_DEFL_NO_CHANGE = -0x1
1193 MAP_HUGETLB = 0x40000 1193 KEY_REQKEY_DEFL_PROCESS_KEYRING = 0x2
1194 MAP_HUGE_MASK = 0x3f 1194 KEY_REQKEY_DEFL_REQUESTOR_KEYRING = 0x7
1195 MAP_HUGE_SHIFT = 0x1a 1195 KEY_REQKEY_DEFL_SESSION_KEYRING = 0x3
1196 MAP_LOCKED = 0x2000 1196 KEY_REQKEY_DEFL_THREAD_KEYRING = 0x1
1197 MAP_NONBLOCK = 0x10000 1197 KEY_REQKEY_DEFL_USER_KEYRING = 0x4
1198 MAP_NORESERVE = 0x4000 1198 KEY_REQKEY_DEFL_USER_SESSION_KEYRING = 0x5
1199 MAP_POPULATE = 0x8000 1199 KEY_SPEC_GROUP_KEYRING = -0x6
1200 MAP_PRIVATE = 0x2 1200 KEY_SPEC_PROCESS_KEYRING = -0x2
1201 MAP_SHARED = 0x1 1201 KEY_SPEC_REQKEY_AUTH_KEY = -0x7
1202 MAP_SHARED_VALIDATE = 0x3 1202 KEY_SPEC_REQUESTOR_KEYRING = -0x8
1203 MAP_STACK = 0x20000 1203 KEY_SPEC_SESSION_KEYRING = -0x3
1204 MAP_SYNC = 0x80000 1204 KEY_SPEC_THREAD_KEYRING = -0x1
1205 MAP_TYPE = 0xf 1205 KEY_SPEC_USER_KEYRING = -0x4
1206 MCAST_BLOCK_SOURCE = 0x2b 1206 KEY_SPEC_USER_SESSION_KEYRING = -0x5
1207 MCAST_EXCLUDE = 0x0 1207 LINUX_REBOOT_CMD_CAD_OFF = 0x0
1208 MCAST_INCLUDE = 0x1 1208 LINUX_REBOOT_CMD_CAD_ON = 0x89abcdef
1209 MCAST_JOIN_GROUP = 0x2a 1209 LINUX_REBOOT_CMD_HALT = 0xcdef0123
1210 MCAST_JOIN_SOURCE_GROUP = 0x2e 1210 LINUX_REBOOT_CMD_KEXEC = 0x45584543
1211 MCAST_LEAVE_GROUP = 0x2d 1211 LINUX_REBOOT_CMD_POWER_OFF = 0x4321fedc
1212 MCAST_LEAVE_SOURCE_GROUP = 0x2f 1212 LINUX_REBOOT_CMD_RESTART = 0x1234567
1213 MCAST_MSFILTER = 0x30 1213 LINUX_REBOOT_CMD_RESTART2 = 0xa1b2c3d4
1214 MCAST_UNBLOCK_SOURCE = 0x2c 1214 LINUX_REBOOT_CMD_SW_SUSPEND = 0xd000fce2
1215 MCL_CURRENT = 0x1 1215 LINUX_REBOOT_MAGIC1 = 0xfee1dead
1216 MCL_FUTURE = 0x2 1216 LINUX_REBOOT_MAGIC2 = 0x28121969
1217 MCL_ONFAULT = 0x4 1217 LOCK_EX = 0x2
1218 MFD_ALLOW_SEALING = 0x2 1218 LOCK_NB = 0x4
1219 MFD_CLOEXEC = 0x1 1219 LOCK_SH = 0x1
1220 MFD_HUGETLB = 0x4 1220 LOCK_UN = 0x8
1221 MFD_HUGE_16GB = -0x78000000 1221 LOOP_CLR_FD = 0x4c01
1222 MFD_HUGE_16MB = 0x60000000 1222 LOOP_CTL_ADD = 0x4c80
1223 MFD_HUGE_1GB = 0x78000000 1223 LOOP_CTL_GET_FREE = 0x4c82
1224 MFD_HUGE_1MB = 0x50000000 1224 LOOP_CTL_REMOVE = 0x4c81
1225 MFD_HUGE_256MB = 0x70000000 1225 LOOP_GET_STATUS = 0x4c03
1226 MFD_HUGE_2GB = 0x7c000000 1226 LOOP_GET_STATUS64 = 0x4c05
1227 MFD_HUGE_2MB = 0x54000000 1227 LOOP_SET_BLOCK_SIZE = 0x4c09
1228 MFD_HUGE_32MB = 0x64000000 1228 LOOP_SET_CAPACITY = 0x4c07
1229 MFD_HUGE_512KB = 0x4c000000 1229 LOOP_SET_DIRECT_IO = 0x4c08
1230 MFD_HUGE_512MB = 0x74000000 1230 LOOP_SET_FD = 0x4c00
1231 MFD_HUGE_64KB = 0x40000000 1231 LOOP_SET_STATUS = 0x4c02
1232 MFD_HUGE_8MB = 0x5c000000 1232 LOOP_SET_STATUS64 = 0x4c04
1233 MFD_HUGE_MASK = 0x3f 1233 LO_KEY_SIZE = 0x20
1234 MFD_HUGE_SHIFT = 0x1a 1234 LO_NAME_SIZE = 0x40
1235 MINIX2_SUPER_MAGIC = 0x2468 1235 MADV_COLD = 0x14
1236 MINIX2_SUPER_MAGIC2 = 0x2478 1236 MADV_DODUMP = 0x11
1237 MINIX3_SUPER_MAGIC = 0x4d5a 1237 MADV_DOFORK = 0xb
1238 MINIX_SUPER_MAGIC = 0x137f 1238 MADV_DONTDUMP = 0x10
1239 MINIX_SUPER_MAGIC2 = 0x138f 1239 MADV_DONTFORK = 0xa
1240 MNT_DETACH = 0x2 1240 MADV_DONTNEED = 0x4
1241 MNT_EXPIRE = 0x4 1241 MADV_FREE = 0x8
1242 MNT_FORCE = 0x1 1242 MADV_HUGEPAGE = 0xe
1243 MODULE_INIT_IGNORE_MODVERSIONS = 0x1 1243 MADV_HWPOISON = 0x64
1244 MODULE_INIT_IGNORE_VERMAGIC = 0x2 1244 MADV_KEEPONFORK = 0x13
1245 MSDOS_SUPER_MAGIC = 0x4d44 1245 MADV_MERGEABLE = 0xc
1246 MSG_BATCH = 0x40000 1246 MADV_NOHUGEPAGE = 0xf
1247 MSG_CMSG_CLOEXEC = 0x40000000 1247 MADV_NORMAL = 0x0
1248 MSG_CONFIRM = 0x800 1248 MADV_PAGEOUT = 0x15
1249 MSG_CTRUNC = 0x8 1249 MADV_RANDOM = 0x1
1250 MSG_DONTROUTE = 0x4 1250 MADV_REMOVE = 0x9
1251 MSG_DONTWAIT = 0x40 1251 MADV_SEQUENTIAL = 0x2
1252 MSG_EOR = 0x80 1252 MADV_UNMERGEABLE = 0xd
1253 MSG_ERRQUEUE = 0x2000 1253 MADV_WILLNEED = 0x3
1254 MSG_FASTOPEN = 0x20000000 1254 MADV_WIPEONFORK = 0x12
1255 MSG_FIN = 0x200 1255 MAP_ANON = 0x20
1256 MSG_MORE = 0x8000 1256 MAP_ANONYMOUS = 0x20
1257 MSG_NOSIGNAL = 0x4000 1257 MAP_DENYWRITE = 0x800
1258 MSG_OOB = 0x1 1258 MAP_EXECUTABLE = 0x1000
1259 MSG_PEEK = 0x2 1259 MAP_FILE = 0x0
1260 MSG_PROXY = 0x10 1260 MAP_FIXED = 0x10
1261 MSG_RST = 0x1000 1261 MAP_FIXED_NOREPLACE = 0x100000
1262 MSG_SYN = 0x400 1262 MAP_GROWSDOWN = 0x100
1263 MSG_TRUNC = 0x20 1263 MAP_HUGETLB = 0x40000
1264 MSG_TRYHARD = 0x4 1264 MAP_HUGE_MASK = 0x3f
1265 MSG_WAITALL = 0x100 1265 MAP_HUGE_SHIFT = 0x1a
1266 MSG_WAITFORONE = 0x10000 1266 MAP_LOCKED = 0x2000
1267 MSG_ZEROCOPY = 0x4000000 1267 MAP_NONBLOCK = 0x10000
1268 MS_ACTIVE = 0x40000000 1268 MAP_NORESERVE = 0x4000
1269 MS_ASYNC = 0x1 1269 MAP_POPULATE = 0x8000
1270 MS_BIND = 0x1000 1270 MAP_PRIVATE = 0x2
1271 MS_BORN = 0x20000000 1271 MAP_SHARED = 0x1
1272 MS_DIRSYNC = 0x80 1272 MAP_SHARED_VALIDATE = 0x3
1273 MS_INVALIDATE = 0x2 1273 MAP_STACK = 0x20000
1274 MS_I_VERSION = 0x800000 1274 MAP_SYNC = 0x80000
1275 MS_KERNMOUNT = 0x400000 1275 MAP_TYPE = 0xf
1276 MS_LAZYTIME = 0x2000000 1276 MCAST_BLOCK_SOURCE = 0x2b
1277 MS_MANDLOCK = 0x40 1277 MCAST_EXCLUDE = 0x0
1278 MS_MGC_MSK = 0xffff0000 1278 MCAST_INCLUDE = 0x1
1279 MS_MGC_VAL = 0xc0ed0000 1279 MCAST_JOIN_GROUP = 0x2a
1280 MS_MOVE = 0x2000 1280 MCAST_JOIN_SOURCE_GROUP = 0x2e
1281 MS_NOATIME = 0x400 1281 MCAST_LEAVE_GROUP = 0x2d
1282 MS_NODEV = 0x4 1282 MCAST_LEAVE_SOURCE_GROUP = 0x2f
1283 MS_NODIRATIME = 0x800 1283 MCAST_MSFILTER = 0x30
1284 MS_NOEXEC = 0x8 1284 MCAST_UNBLOCK_SOURCE = 0x2c
1285 MS_NOREMOTELOCK = 0x8000000 1285 MCL_CURRENT = 0x1
1286 MS_NOSEC = 0x10000000 1286 MCL_FUTURE = 0x2
1287 MS_NOSUID = 0x2 1287 MCL_ONFAULT = 0x4
1288 MS_NOUSER = -0x80000000 1288 MFD_ALLOW_SEALING = 0x2
1289 MS_POSIXACL = 0x10000 1289 MFD_CLOEXEC = 0x1
1290 MS_PRIVATE = 0x40000 1290 MFD_HUGETLB = 0x4
1291 MS_RDONLY = 0x1 1291 MFD_HUGE_16GB = -0x78000000
1292 MS_REC = 0x4000 1292 MFD_HUGE_16MB = 0x60000000
1293 MS_RELATIME = 0x200000 1293 MFD_HUGE_1GB = 0x78000000
1294 MS_REMOUNT = 0x20 1294 MFD_HUGE_1MB = 0x50000000
1295 MS_RMT_MASK = 0x2800051 1295 MFD_HUGE_256MB = 0x70000000
1296 MS_SHARED = 0x100000 1296 MFD_HUGE_2GB = 0x7c000000
1297 MS_SILENT = 0x8000 1297 MFD_HUGE_2MB = 0x54000000
1298 MS_SLAVE = 0x80000 1298 MFD_HUGE_32MB = 0x64000000
1299 MS_STRICTATIME = 0x1000000 1299 MFD_HUGE_512KB = 0x4c000000
1300 MS_SUBMOUNT = 0x4000000 1300 MFD_HUGE_512MB = 0x74000000
1301 MS_SYNC = 0x4 1301 MFD_HUGE_64KB = 0x40000000
1302 MS_SYNCHRONOUS = 0x10 1302 MFD_HUGE_8MB = 0x5c000000
1303 MS_UNBINDABLE = 0x20000 1303 MFD_HUGE_MASK = 0x3f
1304 MS_VERBOSE = 0x8000 1304 MFD_HUGE_SHIFT = 0x1a
1305 MTD_INODE_FS_MAGIC = 0x11307854 1305 MINIX2_SUPER_MAGIC = 0x2468
1306 NAME_MAX = 0xff 1306 MINIX2_SUPER_MAGIC2 = 0x2478
1307 NCP_SUPER_MAGIC = 0x564c 1307 MINIX3_SUPER_MAGIC = 0x4d5a
1308 NETLINK_ADD_MEMBERSHIP = 0x1 1308 MINIX_SUPER_MAGIC = 0x137f
1309 NETLINK_AUDIT = 0x9 1309 MINIX_SUPER_MAGIC2 = 0x138f
1310 NETLINK_BROADCAST_ERROR = 0x4 1310 MNT_DETACH = 0x2
1311 NETLINK_CAP_ACK = 0xa 1311 MNT_EXPIRE = 0x4
1312 NETLINK_CONNECTOR = 0xb 1312 MNT_FORCE = 0x1
1313 NETLINK_CRYPTO = 0x15 1313 MODULE_INIT_IGNORE_MODVERSIONS = 0x1
1314 NETLINK_DNRTMSG = 0xe 1314 MODULE_INIT_IGNORE_VERMAGIC = 0x2
1315 NETLINK_DROP_MEMBERSHIP = 0x2 1315 MSDOS_SUPER_MAGIC = 0x4d44
1316 NETLINK_ECRYPTFS = 0x13 1316 MSG_BATCH = 0x40000
1317 NETLINK_EXT_ACK = 0xb 1317 MSG_CMSG_CLOEXEC = 0x40000000
1318 NETLINK_FIB_LOOKUP = 0xa 1318 MSG_CONFIRM = 0x800
1319 NETLINK_FIREWALL = 0x3 1319 MSG_CTRUNC = 0x8
1320 NETLINK_GENERIC = 0x10 1320 MSG_DONTROUTE = 0x4
1321 NETLINK_GET_STRICT_CHK = 0xc 1321 MSG_DONTWAIT = 0x40
1322 NETLINK_INET_DIAG = 0x4 1322 MSG_EOR = 0x80
1323 NETLINK_IP6_FW = 0xd 1323 MSG_ERRQUEUE = 0x2000
1324 NETLINK_ISCSI = 0x8 1324 MSG_FASTOPEN = 0x20000000
1325 NETLINK_KOBJECT_UEVENT = 0xf 1325 MSG_FIN = 0x200
1326 NETLINK_LISTEN_ALL_NSID = 0x8 1326 MSG_MORE = 0x8000
1327 NETLINK_LIST_MEMBERSHIPS = 0x9 1327 MSG_NOSIGNAL = 0x4000
1328 NETLINK_NETFILTER = 0xc 1328 MSG_OOB = 0x1
1329 NETLINK_NFLOG = 0x5 1329 MSG_PEEK = 0x2
1330 NETLINK_NO_ENOBUFS = 0x5 1330 MSG_PROXY = 0x10
1331 NETLINK_PKTINFO = 0x3 1331 MSG_RST = 0x1000
1332 NETLINK_RDMA = 0x14 1332 MSG_SYN = 0x400
1333 NETLINK_ROUTE = 0x0 1333 MSG_TRUNC = 0x20
1334 NETLINK_RX_RING = 0x6 1334 MSG_TRYHARD = 0x4
1335 NETLINK_SCSITRANSPORT = 0x12 1335 MSG_WAITALL = 0x100
1336 NETLINK_SELINUX = 0x7 1336 MSG_WAITFORONE = 0x10000
1337 NETLINK_SMC = 0x16 1337 MSG_ZEROCOPY = 0x4000000
1338 NETLINK_SOCK_DIAG = 0x4 1338 MS_ACTIVE = 0x40000000
1339 NETLINK_TX_RING = 0x7 1339 MS_ASYNC = 0x1
1340 NETLINK_UNUSED = 0x1 1340 MS_BIND = 0x1000
1341 NETLINK_USERSOCK = 0x2 1341 MS_BORN = 0x20000000
1342 NETLINK_XFRM = 0x6 1342 MS_DIRSYNC = 0x80
1343 NETNSA_MAX = 0x5 1343 MS_INVALIDATE = 0x2
1344 NETNSA_NSID_NOT_ASSIGNED = -0x1 1344 MS_I_VERSION = 0x800000
1345 NFNETLINK_V0 = 0x0 1345 MS_KERNMOUNT = 0x400000
1346 NFNLGRP_ACCT_QUOTA = 0x8 1346 MS_LAZYTIME = 0x2000000
1347 NFNLGRP_CONNTRACK_DESTROY = 0x3 1347 MS_MANDLOCK = 0x40
1348 NFNLGRP_CONNTRACK_EXP_DESTROY = 0x6 1348 MS_MGC_MSK = 0xffff0000
1349 NFNLGRP_CONNTRACK_EXP_NEW = 0x4 1349 MS_MGC_VAL = 0xc0ed0000
1350 NFNLGRP_CONNTRACK_EXP_UPDATE = 0x5 1350 MS_MOVE = 0x2000
1351 NFNLGRP_CONNTRACK_NEW = 0x1 1351 MS_NOATIME = 0x400
1352 NFNLGRP_CONNTRACK_UPDATE = 0x2 1352 MS_NODEV = 0x4
1353 NFNLGRP_MAX = 0x9 1353 MS_NODIRATIME = 0x800
1354 NFNLGRP_NFTABLES = 0x7 1354 MS_NOEXEC = 0x8
1355 NFNLGRP_NFTRACE = 0x9 1355 MS_NOREMOTELOCK = 0x8000000
1356 NFNLGRP_NONE = 0x0 1356 MS_NOSEC = 0x10000000
1357 NFNL_BATCH_MAX = 0x1 1357 MS_NOSUID = 0x2
1358 NFNL_MSG_BATCH_BEGIN = 0x10 1358 MS_NOUSER = -0x80000000
1359 NFNL_MSG_BATCH_END = 0x11 1359 MS_POSIXACL = 0x10000
1360 NFNL_NFA_NEST = 0x8000 1360 MS_PRIVATE = 0x40000
1361 NFNL_SUBSYS_ACCT = 0x7 1361 MS_RDONLY = 0x1
1362 NFNL_SUBSYS_COUNT = 0xc 1362 MS_REC = 0x4000
1363 NFNL_SUBSYS_CTHELPER = 0x9 1363 MS_RELATIME = 0x200000
1364 NFNL_SUBSYS_CTNETLINK = 0x1 1364 MS_REMOUNT = 0x20
1365 NFNL_SUBSYS_CTNETLINK_EXP = 0x2 1365 MS_RMT_MASK = 0x2800051
1366 NFNL_SUBSYS_CTNETLINK_TIMEOUT = 0x8 1366 MS_SHARED = 0x100000
1367 NFNL_SUBSYS_IPSET = 0x6 1367 MS_SILENT = 0x8000
1368 NFNL_SUBSYS_NFTABLES = 0xa 1368 MS_SLAVE = 0x80000
1369 NFNL_SUBSYS_NFT_COMPAT = 0xb 1369 MS_STRICTATIME = 0x1000000
1370 NFNL_SUBSYS_NONE = 0x0 1370 MS_SUBMOUNT = 0x4000000
1371 NFNL_SUBSYS_OSF = 0x5 1371 MS_SYNC = 0x4
1372 NFNL_SUBSYS_QUEUE = 0x3 1372 MS_SYNCHRONOUS = 0x10
1373 NFNL_SUBSYS_ULOG = 0x4 1373 MS_UNBINDABLE = 0x20000
1374 NFS_SUPER_MAGIC = 0x6969 1374 MS_VERBOSE = 0x8000
1375 NILFS_SUPER_MAGIC = 0x3434 1375 MTD_INODE_FS_MAGIC = 0x11307854
1376 NL0 = 0x0 1376 NAME_MAX = 0xff
1377 NL1 = 0x100 1377 NCP_SUPER_MAGIC = 0x564c
1378 NLA_ALIGNTO = 0x4 1378 NETLINK_ADD_MEMBERSHIP = 0x1
1379 NLA_F_NESTED = 0x8000 1379 NETLINK_AUDIT = 0x9
1380 NLA_F_NET_BYTEORDER = 0x4000 1380 NETLINK_BROADCAST_ERROR = 0x4
1381 NLA_HDRLEN = 0x4 1381 NETLINK_CAP_ACK = 0xa
1382 NLDLY = 0x100 1382 NETLINK_CONNECTOR = 0xb
1383 NLMSG_ALIGNTO = 0x4 1383 NETLINK_CRYPTO = 0x15
1384 NLMSG_DONE = 0x3 1384 NETLINK_DNRTMSG = 0xe
1385 NLMSG_ERROR = 0x2 1385 NETLINK_DROP_MEMBERSHIP = 0x2
1386 NLMSG_HDRLEN = 0x10 1386 NETLINK_ECRYPTFS = 0x13
1387 NLMSG_MIN_TYPE = 0x10 1387 NETLINK_EXT_ACK = 0xb
1388 NLMSG_NOOP = 0x1 1388 NETLINK_FIB_LOOKUP = 0xa
1389 NLMSG_OVERRUN = 0x4 1389 NETLINK_FIREWALL = 0x3
1390 NLM_F_ACK = 0x4 1390 NETLINK_GENERIC = 0x10
1391 NLM_F_ACK_TLVS = 0x200 1391 NETLINK_GET_STRICT_CHK = 0xc
1392 NLM_F_APPEND = 0x800 1392 NETLINK_INET_DIAG = 0x4
1393 NLM_F_ATOMIC = 0x400 1393 NETLINK_IP6_FW = 0xd
1394 NLM_F_CAPPED = 0x100 1394 NETLINK_ISCSI = 0x8
1395 NLM_F_CREATE = 0x400 1395 NETLINK_KOBJECT_UEVENT = 0xf
1396 NLM_F_DUMP = 0x300 1396 NETLINK_LISTEN_ALL_NSID = 0x8
1397 NLM_F_DUMP_FILTERED = 0x20 1397 NETLINK_LIST_MEMBERSHIPS = 0x9
1398 NLM_F_DUMP_INTR = 0x10 1398 NETLINK_NETFILTER = 0xc
1399 NLM_F_ECHO = 0x8 1399 NETLINK_NFLOG = 0x5
1400 NLM_F_EXCL = 0x200 1400 NETLINK_NO_ENOBUFS = 0x5
1401 NLM_F_MATCH = 0x200 1401 NETLINK_PKTINFO = 0x3
1402 NLM_F_MULTI = 0x2 1402 NETLINK_RDMA = 0x14
1403 NLM_F_NONREC = 0x100 1403 NETLINK_ROUTE = 0x0
1404 NLM_F_REPLACE = 0x100 1404 NETLINK_RX_RING = 0x6
1405 NLM_F_REQUEST = 0x1 1405 NETLINK_SCSITRANSPORT = 0x12
1406 NLM_F_ROOT = 0x100 1406 NETLINK_SELINUX = 0x7
1407 NOFLSH = 0x80 1407 NETLINK_SMC = 0x16
1408 NSFS_MAGIC = 0x6e736673 1408 NETLINK_SOCK_DIAG = 0x4
1409 NS_GET_NSTYPE = 0xb703 1409 NETLINK_TX_RING = 0x7
1410 NS_GET_OWNER_UID = 0xb704 1410 NETLINK_UNUSED = 0x1
1411 NS_GET_PARENT = 0xb702 1411 NETLINK_USERSOCK = 0x2
1412 NS_GET_USERNS = 0xb701 1412 NETLINK_XFRM = 0x6
1413 OCFS2_SUPER_MAGIC = 0x7461636f 1413 NETNSA_MAX = 0x5
1414 OCRNL = 0x8 1414 NETNSA_NSID_NOT_ASSIGNED = -0x1
1415 OFDEL = 0x80 1415 NFDBITS = 0x20
1416 OFILL = 0x40 1416 NFNETLINK_V0 = 0x0
1417 OLCUC = 0x2 1417 NFNLGRP_ACCT_QUOTA = 0x8
1418 ONLCR = 0x4 1418 NFNLGRP_CONNTRACK_DESTROY = 0x3
1419 ONLRET = 0x20 1419 NFNLGRP_CONNTRACK_EXP_DESTROY = 0x6
1420 ONOCR = 0x10 1420 NFNLGRP_CONNTRACK_EXP_NEW = 0x4
1421 OPENPROM_SUPER_MAGIC = 0x9fa1 1421 NFNLGRP_CONNTRACK_EXP_UPDATE = 0x5
1422 OPOST = 0x1 1422 NFNLGRP_CONNTRACK_NEW = 0x1
1423 OVERLAYFS_SUPER_MAGIC = 0x794c7630 1423 NFNLGRP_CONNTRACK_UPDATE = 0x2
1424 O_ACCMODE = 0x3 1424 NFNLGRP_MAX = 0x9
1425 O_APPEND = 0x400 1425 NFNLGRP_NFTABLES = 0x7
1426 O_ASYNC = 0x2000 1426 NFNLGRP_NFTRACE = 0x9
1427 O_CLOEXEC = 0x80000 1427 NFNLGRP_NONE = 0x0
1428 O_CREAT = 0x40 1428 NFNL_BATCH_MAX = 0x1
1429 O_DIRECT = 0x10000 1429 NFNL_MSG_BATCH_BEGIN = 0x10
1430 O_DIRECTORY = 0x4000 1430 NFNL_MSG_BATCH_END = 0x11
1431 O_DSYNC = 0x1000 1431 NFNL_NFA_NEST = 0x8000
1432 O_EXCL = 0x80 1432 NFNL_SUBSYS_ACCT = 0x7
1433 O_FSYNC = 0x101000 1433 NFNL_SUBSYS_COUNT = 0xc
1434 O_LARGEFILE = 0x20000 1434 NFNL_SUBSYS_CTHELPER = 0x9
1435 O_NDELAY = 0x800 1435 NFNL_SUBSYS_CTNETLINK = 0x1
1436 O_NOATIME = 0x40000 1436 NFNL_SUBSYS_CTNETLINK_EXP = 0x2
1437 O_NOCTTY = 0x100 1437 NFNL_SUBSYS_CTNETLINK_TIMEOUT = 0x8
1438 O_NOFOLLOW = 0x8000 1438 NFNL_SUBSYS_IPSET = 0x6
1439 O_NONBLOCK = 0x800 1439 NFNL_SUBSYS_NFTABLES = 0xa
1440 O_PATH = 0x200000 1440 NFNL_SUBSYS_NFT_COMPAT = 0xb
1441 O_RDONLY = 0x0 1441 NFNL_SUBSYS_NONE = 0x0
1442 O_RDWR = 0x2 1442 NFNL_SUBSYS_OSF = 0x5
1443 O_RSYNC = 0x101000 1443 NFNL_SUBSYS_QUEUE = 0x3
1444 O_SYNC = 0x101000 1444 NFNL_SUBSYS_ULOG = 0x4
1445 O_TMPFILE = 0x404000 1445 NFS_SUPER_MAGIC = 0x6969
1446 O_TRUNC = 0x200 1446 NILFS_SUPER_MAGIC = 0x3434
1447 O_WRONLY = 0x1 1447 NL0 = 0x0
1448 PACKET_ADD_MEMBERSHIP = 0x1 1448 NL1 = 0x100
1449 PACKET_AUXDATA = 0x8 1449 NLA_ALIGNTO = 0x4
1450 PACKET_BROADCAST = 0x1 1450 NLA_F_NESTED = 0x8000
1451 PACKET_COPY_THRESH = 0x7 1451 NLA_F_NET_BYTEORDER = 0x4000
1452 PACKET_DROP_MEMBERSHIP = 0x2 1452 NLA_HDRLEN = 0x4
1453 PACKET_FANOUT = 0x12 1453 NLDLY = 0x100
1454 PACKET_FANOUT_CBPF = 0x6 1454 NLMSG_ALIGNTO = 0x4
1455 PACKET_FANOUT_CPU = 0x2 1455 NLMSG_DONE = 0x3
1456 PACKET_FANOUT_DATA = 0x16 1456 NLMSG_ERROR = 0x2
1457 PACKET_FANOUT_EBPF = 0x7 1457 NLMSG_HDRLEN = 0x10
1458 PACKET_FANOUT_FLAG_DEFRAG = 0x8000 1458 NLMSG_MIN_TYPE = 0x10
1459 PACKET_FANOUT_FLAG_ROLLOVER = 0x1000 1459 NLMSG_NOOP = 0x1
1460 PACKET_FANOUT_FLAG_UNIQUEID = 0x2000 1460 NLMSG_OVERRUN = 0x4
1461 PACKET_FANOUT_HASH = 0x0 1461 NLM_F_ACK = 0x4
1462 PACKET_FANOUT_LB = 0x1 1462 NLM_F_ACK_TLVS = 0x200
1463 PACKET_FANOUT_QM = 0x5 1463 NLM_F_APPEND = 0x800
1464 PACKET_FANOUT_RND = 0x4 1464 NLM_F_ATOMIC = 0x400
1465 PACKET_FANOUT_ROLLOVER = 0x3 1465 NLM_F_CAPPED = 0x100
1466 PACKET_FASTROUTE = 0x6 1466 NLM_F_CREATE = 0x400
1467 PACKET_HDRLEN = 0xb 1467 NLM_F_DUMP = 0x300
1468 PACKET_HOST = 0x0 1468 NLM_F_DUMP_FILTERED = 0x20
1469 PACKET_IGNORE_OUTGOING = 0x17 1469 NLM_F_DUMP_INTR = 0x10
1470 PACKET_KERNEL = 0x7 1470 NLM_F_ECHO = 0x8
1471 PACKET_LOOPBACK = 0x5 1471 NLM_F_EXCL = 0x200
1472 PACKET_LOSS = 0xe 1472 NLM_F_MATCH = 0x200
1473 PACKET_MR_ALLMULTI = 0x2 1473 NLM_F_MULTI = 0x2
1474 PACKET_MR_MULTICAST = 0x0 1474 NLM_F_NONREC = 0x100
1475 PACKET_MR_PROMISC = 0x1 1475 NLM_F_REPLACE = 0x100
1476 PACKET_MR_UNICAST = 0x3 1476 NLM_F_REQUEST = 0x1
1477 PACKET_MULTICAST = 0x2 1477 NLM_F_ROOT = 0x100
1478 PACKET_ORIGDEV = 0x9 1478 NOFLSH = 0x80
1479 PACKET_OTHERHOST = 0x3 1479 NSFS_MAGIC = 0x6e736673
1480 PACKET_OUTGOING = 0x4 1480 NS_GET_NSTYPE = 0xb703
1481 PACKET_QDISC_BYPASS = 0x14 1481 NS_GET_OWNER_UID = 0xb704
1482 PACKET_RECV_OUTPUT = 0x3 1482 NS_GET_PARENT = 0xb702
1483 PACKET_RESERVE = 0xc 1483 NS_GET_USERNS = 0xb701
1484 PACKET_ROLLOVER_STATS = 0x15 1484 OCFS2_SUPER_MAGIC = 0x7461636f
1485 PACKET_RX_RING = 0x5 1485 OCRNL = 0x8
1486 PACKET_STATISTICS = 0x6 1486 OFDEL = 0x80
1487 PACKET_TIMESTAMP = 0x11 1487 OFILL = 0x40
1488 PACKET_TX_HAS_OFF = 0x13 1488 OLCUC = 0x2
1489 PACKET_TX_RING = 0xd 1489 ONLCR = 0x4
1490 PACKET_TX_TIMESTAMP = 0x10 1490 ONLRET = 0x20
1491 PACKET_USER = 0x6 1491 ONOCR = 0x10
1492 PACKET_VERSION = 0xa 1492 OPENPROM_SUPER_MAGIC = 0x9fa1
1493 PACKET_VNET_HDR = 0xf 1493 OPOST = 0x1
1494 PARENB = 0x100 1494 OVERLAYFS_SUPER_MAGIC = 0x794c7630
1495 PARITY_CRC16_PR0 = 0x2 1495 O_ACCMODE = 0x3
1496 PARITY_CRC16_PR0_CCITT = 0x4 1496 O_APPEND = 0x400
1497 PARITY_CRC16_PR1 = 0x3 1497 O_ASYNC = 0x2000
1498 PARITY_CRC16_PR1_CCITT = 0x5 1498 O_CLOEXEC = 0x80000
1499 PARITY_CRC32_PR0_CCITT = 0x6 1499 O_CREAT = 0x40
1500 PARITY_CRC32_PR1_CCITT = 0x7 1500 O_DIRECT = 0x10000
1501 PARITY_DEFAULT = 0x0 1501 O_DIRECTORY = 0x4000
1502 PARITY_NONE = 0x1 1502 O_DSYNC = 0x1000
1503 PARMRK = 0x8 1503 O_EXCL = 0x80
1504 PARODD = 0x200 1504 O_FSYNC = 0x101000
1505 PENDIN = 0x4000 1505 O_LARGEFILE = 0x20000
1506 PERF_EVENT_IOC_DISABLE = 0x2401 1506 O_NDELAY = 0x800
1507 PERF_EVENT_IOC_ENABLE = 0x2400 1507 O_NOATIME = 0x40000
1508 PERF_EVENT_IOC_ID = 0x80042407 1508 O_NOCTTY = 0x100
1509 PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x4004240b 1509 O_NOFOLLOW = 0x8000
1510 PERF_EVENT_IOC_PAUSE_OUTPUT = 0x40042409 1510 O_NONBLOCK = 0x800
1511 PERF_EVENT_IOC_PERIOD = 0x40082404 1511 O_PATH = 0x200000
1512 PERF_EVENT_IOC_QUERY_BPF = 0xc004240a 1512 O_RDONLY = 0x0
1513 PERF_EVENT_IOC_REFRESH = 0x2402 1513 O_RDWR = 0x2
1514 PERF_EVENT_IOC_RESET = 0x2403 1514 O_RSYNC = 0x101000
1515 PERF_EVENT_IOC_SET_BPF = 0x40042408 1515 O_SYNC = 0x101000
1516 PERF_EVENT_IOC_SET_FILTER = 0x40042406 1516 O_TMPFILE = 0x404000
1517 PERF_EVENT_IOC_SET_OUTPUT = 0x2405 1517 O_TRUNC = 0x200
1518 PIPEFS_MAGIC = 0x50495045 1518 O_WRONLY = 0x1
1519 PPPIOCATTACH = 0x4004743d 1519 PACKET_ADD_MEMBERSHIP = 0x1
1520 PPPIOCATTCHAN = 0x40047438 1520 PACKET_AUXDATA = 0x8
1521 PPPIOCCONNECT = 0x4004743a 1521 PACKET_BROADCAST = 0x1
1522 PPPIOCDETACH = 0x4004743c 1522 PACKET_COPY_THRESH = 0x7
1523 PPPIOCDISCONN = 0x7439 1523 PACKET_DROP_MEMBERSHIP = 0x2
1524 PPPIOCGASYNCMAP = 0x80047458 1524 PACKET_FANOUT = 0x12
1525 PPPIOCGCHAN = 0x80047437 1525 PACKET_FANOUT_CBPF = 0x6
1526 PPPIOCGDEBUG = 0x80047441 1526 PACKET_FANOUT_CPU = 0x2
1527 PPPIOCGFLAGS = 0x8004745a 1527 PACKET_FANOUT_DATA = 0x16
1528 PPPIOCGIDLE = 0x8008743f 1528 PACKET_FANOUT_EBPF = 0x7
1529 PPPIOCGL2TPSTATS = 0x80487436 1529 PACKET_FANOUT_FLAG_DEFRAG = 0x8000
1530 PPPIOCGMRU = 0x80047453 1530 PACKET_FANOUT_FLAG_ROLLOVER = 0x1000
1531 PPPIOCGNPMODE = 0xc008744c 1531 PACKET_FANOUT_FLAG_UNIQUEID = 0x2000
1532 PPPIOCGRASYNCMAP = 0x80047455 1532 PACKET_FANOUT_HASH = 0x0
1533 PPPIOCGUNIT = 0x80047456 1533 PACKET_FANOUT_LB = 0x1
1534 PPPIOCGXASYNCMAP = 0x80207450 1534 PACKET_FANOUT_QM = 0x5
1535 PPPIOCNEWUNIT = 0xc004743e 1535 PACKET_FANOUT_RND = 0x4
1536 PPPIOCSACTIVE = 0x40087446 1536 PACKET_FANOUT_ROLLOVER = 0x3
1537 PPPIOCSASYNCMAP = 0x40047457 1537 PACKET_FASTROUTE = 0x6
1538 PPPIOCSCOMPRESS = 0x400c744d 1538 PACKET_HDRLEN = 0xb
1539 PPPIOCSDEBUG = 0x40047440 1539 PACKET_HOST = 0x0
1540 PPPIOCSFLAGS = 0x40047459 1540 PACKET_IGNORE_OUTGOING = 0x17
1541 PPPIOCSMAXCID = 0x40047451 1541 PACKET_KERNEL = 0x7
1542 PPPIOCSMRRU = 0x4004743b 1542 PACKET_LOOPBACK = 0x5
1543 PPPIOCSMRU = 0x40047452 1543 PACKET_LOSS = 0xe
1544 PPPIOCSNPMODE = 0x4008744b 1544 PACKET_MR_ALLMULTI = 0x2
1545 PPPIOCSPASS = 0x40087447 1545 PACKET_MR_MULTICAST = 0x0
1546 PPPIOCSRASYNCMAP = 0x40047454 1546 PACKET_MR_PROMISC = 0x1
1547 PPPIOCSXASYNCMAP = 0x4020744f 1547 PACKET_MR_UNICAST = 0x3
1548 PPPIOCXFERUNIT = 0x744e 1548 PACKET_MULTICAST = 0x2
1549 PRIO_PGRP = 0x1 1549 PACKET_ORIGDEV = 0x9
1550 PRIO_PROCESS = 0x0 1550 PACKET_OTHERHOST = 0x3
1551 PRIO_USER = 0x2 1551 PACKET_OUTGOING = 0x4
1552 PROC_SUPER_MAGIC = 0x9fa0 1552 PACKET_QDISC_BYPASS = 0x14
1553 PROT_EXEC = 0x4 1553 PACKET_RECV_OUTPUT = 0x3
1554 PROT_GROWSDOWN = 0x1000000 1554 PACKET_RESERVE = 0xc
1555 PROT_GROWSUP = 0x2000000 1555 PACKET_ROLLOVER_STATS = 0x15
1556 PROT_NONE = 0x0 1556 PACKET_RX_RING = 0x5
1557 PROT_READ = 0x1 1557 PACKET_STATISTICS = 0x6
1558 PROT_WRITE = 0x2 1558 PACKET_TIMESTAMP = 0x11
1559 PR_CAPBSET_DROP = 0x18 1559 PACKET_TX_HAS_OFF = 0x13
1560 PR_CAPBSET_READ = 0x17 1560 PACKET_TX_RING = 0xd
1561 PR_CAP_AMBIENT = 0x2f 1561 PACKET_TX_TIMESTAMP = 0x10
1562 PR_CAP_AMBIENT_CLEAR_ALL = 0x4 1562 PACKET_USER = 0x6
1563 PR_CAP_AMBIENT_IS_SET = 0x1 1563 PACKET_VERSION = 0xa
1564 PR_CAP_AMBIENT_LOWER = 0x3 1564 PACKET_VNET_HDR = 0xf
1565 PR_CAP_AMBIENT_RAISE = 0x2 1565 PARENB = 0x100
1566 PR_ENDIAN_BIG = 0x0 1566 PARITY_CRC16_PR0 = 0x2
1567 PR_ENDIAN_LITTLE = 0x1 1567 PARITY_CRC16_PR0_CCITT = 0x4
1568 PR_ENDIAN_PPC_LITTLE = 0x2 1568 PARITY_CRC16_PR1 = 0x3
1569 PR_FPEMU_NOPRINT = 0x1 1569 PARITY_CRC16_PR1_CCITT = 0x5
1570 PR_FPEMU_SIGFPE = 0x2 1570 PARITY_CRC32_PR0_CCITT = 0x6
1571 PR_FP_EXC_ASYNC = 0x2 1571 PARITY_CRC32_PR1_CCITT = 0x7
1572 PR_FP_EXC_DISABLED = 0x0 1572 PARITY_DEFAULT = 0x0
1573 PR_FP_EXC_DIV = 0x10000 1573 PARITY_NONE = 0x1
1574 PR_FP_EXC_INV = 0x100000 1574 PARMRK = 0x8
1575 PR_FP_EXC_NONRECOV = 0x1 1575 PARODD = 0x200
1576 PR_FP_EXC_OVF = 0x20000 1576 PENDIN = 0x4000
1577 PR_FP_EXC_PRECISE = 0x3 1577 PERF_EVENT_IOC_DISABLE = 0x2401
1578 PR_FP_EXC_RES = 0x80000 1578 PERF_EVENT_IOC_ENABLE = 0x2400
1579 PR_FP_EXC_SW_ENABLE = 0x80 1579 PERF_EVENT_IOC_ID = 0x80042407
1580 PR_FP_EXC_UND = 0x40000 1580 PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x4004240b
1581 PR_FP_MODE_FR = 0x1 1581 PERF_EVENT_IOC_PAUSE_OUTPUT = 0x40042409
1582 PR_FP_MODE_FRE = 0x2 1582 PERF_EVENT_IOC_PERIOD = 0x40082404
1583 PR_GET_CHILD_SUBREAPER = 0x25 1583 PERF_EVENT_IOC_QUERY_BPF = 0xc004240a
1584 PR_GET_DUMPABLE = 0x3 1584 PERF_EVENT_IOC_REFRESH = 0x2402
1585 PR_GET_ENDIAN = 0x13 1585 PERF_EVENT_IOC_RESET = 0x2403
1586 PR_GET_FPEMU = 0x9 1586 PERF_EVENT_IOC_SET_BPF = 0x40042408
1587 PR_GET_FPEXC = 0xb 1587 PERF_EVENT_IOC_SET_FILTER = 0x40042406
1588 PR_GET_FP_MODE = 0x2e 1588 PERF_EVENT_IOC_SET_OUTPUT = 0x2405
1589 PR_GET_KEEPCAPS = 0x7 1589 PIPEFS_MAGIC = 0x50495045
1590 PR_GET_NAME = 0x10 1590 PPC_CMM_MAGIC = 0xc7571590
1591 PR_GET_NO_NEW_PRIVS = 0x27 1591 PPPIOCATTACH = 0x4004743d
1592 PR_GET_PDEATHSIG = 0x2 1592 PPPIOCATTCHAN = 0x40047438
1593 PR_GET_SECCOMP = 0x15 1593 PPPIOCCONNECT = 0x4004743a
1594 PR_GET_SECUREBITS = 0x1b 1594 PPPIOCDETACH = 0x4004743c
1595 PR_GET_SPECULATION_CTRL = 0x34 1595 PPPIOCDISCONN = 0x7439
1596 PR_GET_THP_DISABLE = 0x2a 1596 PPPIOCGASYNCMAP = 0x80047458
1597 PR_GET_TID_ADDRESS = 0x28 1597 PPPIOCGCHAN = 0x80047437
1598 PR_GET_TIMERSLACK = 0x1e 1598 PPPIOCGDEBUG = 0x80047441
1599 PR_GET_TIMING = 0xd 1599 PPPIOCGFLAGS = 0x8004745a
1600 PR_GET_TSC = 0x19 1600 PPPIOCGIDLE = 0x8008743f
1601 PR_GET_UNALIGN = 0x5 1601 PPPIOCGIDLE32 = 0x8008743f
1602 PR_MCE_KILL = 0x21 1602 PPPIOCGIDLE64 = 0x8010743f
1603 PR_MCE_KILL_CLEAR = 0x0 1603 PPPIOCGL2TPSTATS = 0x80487436
1604 PR_MCE_KILL_DEFAULT = 0x2 1604 PPPIOCGMRU = 0x80047453
1605 PR_MCE_KILL_EARLY = 0x1 1605 PPPIOCGNPMODE = 0xc008744c
1606 PR_MCE_KILL_GET = 0x22 1606 PPPIOCGRASYNCMAP = 0x80047455
1607 PR_MCE_KILL_LATE = 0x0 1607 PPPIOCGUNIT = 0x80047456
1608 PR_MCE_KILL_SET = 0x1 1608 PPPIOCGXASYNCMAP = 0x80207450
1609 PR_MPX_DISABLE_MANAGEMENT = 0x2c 1609 PPPIOCNEWUNIT = 0xc004743e
1610 PR_MPX_ENABLE_MANAGEMENT = 0x2b 1610 PPPIOCSACTIVE = 0x40087446
1611 PR_PAC_APDAKEY = 0x4 1611 PPPIOCSASYNCMAP = 0x40047457
1612 PR_PAC_APDBKEY = 0x8 1612 PPPIOCSCOMPRESS = 0x400c744d
1613 PR_PAC_APGAKEY = 0x10 1613 PPPIOCSDEBUG = 0x40047440
1614 PR_PAC_APIAKEY = 0x1 1614 PPPIOCSFLAGS = 0x40047459
1615 PR_PAC_APIBKEY = 0x2 1615 PPPIOCSMAXCID = 0x40047451
1616 PR_PAC_RESET_KEYS = 0x36 1616 PPPIOCSMRRU = 0x4004743b
1617 PR_SET_CHILD_SUBREAPER = 0x24 1617 PPPIOCSMRU = 0x40047452
1618 PR_SET_DUMPABLE = 0x4 1618 PPPIOCSNPMODE = 0x4008744b
1619 PR_SET_ENDIAN = 0x14 1619 PPPIOCSPASS = 0x40087447
1620 PR_SET_FPEMU = 0xa 1620 PPPIOCSRASYNCMAP = 0x40047454
1621 PR_SET_FPEXC = 0xc 1621 PPPIOCSXASYNCMAP = 0x4020744f
1622 PR_SET_FP_MODE = 0x2d 1622 PPPIOCXFERUNIT = 0x744e
1623 PR_SET_KEEPCAPS = 0x8 1623 PRIO_PGRP = 0x1
1624 PR_SET_MM = 0x23 1624 PRIO_PROCESS = 0x0
1625 PR_SET_MM_ARG_END = 0x9 1625 PRIO_USER = 0x2
1626 PR_SET_MM_ARG_START = 0x8 1626 PROC_SUPER_MAGIC = 0x9fa0
1627 PR_SET_MM_AUXV = 0xc 1627 PROT_EXEC = 0x4
1628 PR_SET_MM_BRK = 0x7 1628 PROT_GROWSDOWN = 0x1000000
1629 PR_SET_MM_END_CODE = 0x2 1629 PROT_GROWSUP = 0x2000000
1630 PR_SET_MM_END_DATA = 0x4 1630 PROT_NONE = 0x0
1631 PR_SET_MM_ENV_END = 0xb 1631 PROT_READ = 0x1
1632 PR_SET_MM_ENV_START = 0xa 1632 PROT_WRITE = 0x2
1633 PR_SET_MM_EXE_FILE = 0xd 1633 PR_CAPBSET_DROP = 0x18
1634 PR_SET_MM_MAP = 0xe 1634 PR_CAPBSET_READ = 0x17
1635 PR_SET_MM_MAP_SIZE = 0xf 1635 PR_CAP_AMBIENT = 0x2f
1636 PR_SET_MM_START_BRK = 0x6 1636 PR_CAP_AMBIENT_CLEAR_ALL = 0x4
1637 PR_SET_MM_START_CODE = 0x1 1637 PR_CAP_AMBIENT_IS_SET = 0x1
1638 PR_SET_MM_START_DATA = 0x3 1638 PR_CAP_AMBIENT_LOWER = 0x3
1639 PR_SET_MM_START_STACK = 0x5 1639 PR_CAP_AMBIENT_RAISE = 0x2
1640 PR_SET_NAME = 0xf 1640 PR_ENDIAN_BIG = 0x0
1641 PR_SET_NO_NEW_PRIVS = 0x26 1641 PR_ENDIAN_LITTLE = 0x1
1642 PR_SET_PDEATHSIG = 0x1 1642 PR_ENDIAN_PPC_LITTLE = 0x2
1643 PR_SET_PTRACER = 0x59616d61 1643 PR_FPEMU_NOPRINT = 0x1
1644 PR_SET_PTRACER_ANY = 0xffffffff 1644 PR_FPEMU_SIGFPE = 0x2
1645 PR_SET_SECCOMP = 0x16 1645 PR_FP_EXC_ASYNC = 0x2
1646 PR_SET_SECUREBITS = 0x1c 1646 PR_FP_EXC_DISABLED = 0x0
1647 PR_SET_SPECULATION_CTRL = 0x35 1647 PR_FP_EXC_DIV = 0x10000
1648 PR_SET_THP_DISABLE = 0x29 1648 PR_FP_EXC_INV = 0x100000
1649 PR_SET_TIMERSLACK = 0x1d 1649 PR_FP_EXC_NONRECOV = 0x1
1650 PR_SET_TIMING = 0xe 1650 PR_FP_EXC_OVF = 0x20000
1651 PR_SET_TSC = 0x1a 1651 PR_FP_EXC_PRECISE = 0x3
1652 PR_SET_UNALIGN = 0x6 1652 PR_FP_EXC_RES = 0x80000
1653 PR_SPEC_DISABLE = 0x4 1653 PR_FP_EXC_SW_ENABLE = 0x80
1654 PR_SPEC_DISABLE_NOEXEC = 0x10 1654 PR_FP_EXC_UND = 0x40000
1655 PR_SPEC_ENABLE = 0x2 1655 PR_FP_MODE_FR = 0x1
1656 PR_SPEC_FORCE_DISABLE = 0x8 1656 PR_FP_MODE_FRE = 0x2
1657 PR_SPEC_INDIRECT_BRANCH = 0x1 1657 PR_GET_CHILD_SUBREAPER = 0x25
1658 PR_SPEC_NOT_AFFECTED = 0x0 1658 PR_GET_DUMPABLE = 0x3
1659 PR_SPEC_PRCTL = 0x1 1659 PR_GET_ENDIAN = 0x13
1660 PR_SPEC_STORE_BYPASS = 0x0 1660 PR_GET_FPEMU = 0x9
1661 PR_SVE_GET_VL = 0x33 1661 PR_GET_FPEXC = 0xb
1662 PR_SVE_SET_VL = 0x32 1662 PR_GET_FP_MODE = 0x2e
1663 PR_SVE_SET_VL_ONEXEC = 0x40000 1663 PR_GET_KEEPCAPS = 0x7
1664 PR_SVE_VL_INHERIT = 0x20000 1664 PR_GET_NAME = 0x10
1665 PR_SVE_VL_LEN_MASK = 0xffff 1665 PR_GET_NO_NEW_PRIVS = 0x27
1666 PR_TASK_PERF_EVENTS_DISABLE = 0x1f 1666 PR_GET_PDEATHSIG = 0x2
1667 PR_TASK_PERF_EVENTS_ENABLE = 0x20 1667 PR_GET_SECCOMP = 0x15
1668 PR_TIMING_STATISTICAL = 0x0 1668 PR_GET_SECUREBITS = 0x1b
1669 PR_TIMING_TIMESTAMP = 0x1 1669 PR_GET_SPECULATION_CTRL = 0x34
1670 PR_TSC_ENABLE = 0x1 1670 PR_GET_TAGGED_ADDR_CTRL = 0x38
1671 PR_TSC_SIGSEGV = 0x2 1671 PR_GET_THP_DISABLE = 0x2a
1672 PR_UNALIGN_NOPRINT = 0x1 1672 PR_GET_TID_ADDRESS = 0x28
1673 PR_UNALIGN_SIGBUS = 0x2 1673 PR_GET_TIMERSLACK = 0x1e
1674 PSTOREFS_MAGIC = 0x6165676c 1674 PR_GET_TIMING = 0xd
1675 PTRACE_ATTACH = 0x10 1675 PR_GET_TSC = 0x19
1676 PTRACE_CONT = 0x7 1676 PR_GET_UNALIGN = 0x5
1677 PTRACE_DETACH = 0x11 1677 PR_MCE_KILL = 0x21
1678 PTRACE_EVENT_CLONE = 0x3 1678 PR_MCE_KILL_CLEAR = 0x0
1679 PTRACE_EVENT_EXEC = 0x4 1679 PR_MCE_KILL_DEFAULT = 0x2
1680 PTRACE_EVENT_EXIT = 0x6 1680 PR_MCE_KILL_EARLY = 0x1
1681 PTRACE_EVENT_FORK = 0x1 1681 PR_MCE_KILL_GET = 0x22
1682 PTRACE_EVENT_SECCOMP = 0x7 1682 PR_MCE_KILL_LATE = 0x0
1683 PTRACE_EVENT_STOP = 0x80 1683 PR_MCE_KILL_SET = 0x1
1684 PTRACE_EVENT_VFORK = 0x2 1684 PR_MPX_DISABLE_MANAGEMENT = 0x2c
1685 PTRACE_EVENT_VFORK_DONE = 0x5 1685 PR_MPX_ENABLE_MANAGEMENT = 0x2b
1686 PTRACE_GETCRUNCHREGS = 0x19 1686 PR_PAC_APDAKEY = 0x4
1687 PTRACE_GETEVENTMSG = 0x4201 1687 PR_PAC_APDBKEY = 0x8
1688 PTRACE_GETFDPIC = 0x1f 1688 PR_PAC_APGAKEY = 0x10
1689 PTRACE_GETFDPIC_EXEC = 0x0 1689 PR_PAC_APIAKEY = 0x1
1690 PTRACE_GETFDPIC_INTERP = 0x1 1690 PR_PAC_APIBKEY = 0x2
1691 PTRACE_GETFPREGS = 0xe 1691 PR_PAC_RESET_KEYS = 0x36
1692 PTRACE_GETHBPREGS = 0x1d 1692 PR_SET_CHILD_SUBREAPER = 0x24
1693 PTRACE_GETREGS = 0xc 1693 PR_SET_DUMPABLE = 0x4
1694 PTRACE_GETREGSET = 0x4204 1694 PR_SET_ENDIAN = 0x14
1695 PTRACE_GETSIGINFO = 0x4202 1695 PR_SET_FPEMU = 0xa
1696 PTRACE_GETSIGMASK = 0x420a 1696 PR_SET_FPEXC = 0xc
1697 PTRACE_GETVFPREGS = 0x1b 1697 PR_SET_FP_MODE = 0x2d
1698 PTRACE_GETWMMXREGS = 0x12 1698 PR_SET_KEEPCAPS = 0x8
1699 PTRACE_GET_THREAD_AREA = 0x16 1699 PR_SET_MM = 0x23
1700 PTRACE_INTERRUPT = 0x4207 1700 PR_SET_MM_ARG_END = 0x9
1701 PTRACE_KILL = 0x8 1701 PR_SET_MM_ARG_START = 0x8
1702 PTRACE_LISTEN = 0x4208 1702 PR_SET_MM_AUXV = 0xc
1703 PTRACE_OLDSETOPTIONS = 0x15 1703 PR_SET_MM_BRK = 0x7
1704 PTRACE_O_EXITKILL = 0x100000 1704 PR_SET_MM_END_CODE = 0x2
1705 PTRACE_O_MASK = 0x3000ff 1705 PR_SET_MM_END_DATA = 0x4
1706 PTRACE_O_SUSPEND_SECCOMP = 0x200000 1706 PR_SET_MM_ENV_END = 0xb
1707 PTRACE_O_TRACECLONE = 0x8 1707 PR_SET_MM_ENV_START = 0xa
1708 PTRACE_O_TRACEEXEC = 0x10 1708 PR_SET_MM_EXE_FILE = 0xd
1709 PTRACE_O_TRACEEXIT = 0x40 1709 PR_SET_MM_MAP = 0xe
1710 PTRACE_O_TRACEFORK = 0x2 1710 PR_SET_MM_MAP_SIZE = 0xf
1711 PTRACE_O_TRACESECCOMP = 0x80 1711 PR_SET_MM_START_BRK = 0x6
1712 PTRACE_O_TRACESYSGOOD = 0x1 1712 PR_SET_MM_START_CODE = 0x1
1713 PTRACE_O_TRACEVFORK = 0x4 1713 PR_SET_MM_START_DATA = 0x3
1714 PTRACE_O_TRACEVFORKDONE = 0x20 1714 PR_SET_MM_START_STACK = 0x5
1715 PTRACE_PEEKDATA = 0x2 1715 PR_SET_NAME = 0xf
1716 PTRACE_PEEKSIGINFO = 0x4209 1716 PR_SET_NO_NEW_PRIVS = 0x26
1717 PTRACE_PEEKSIGINFO_SHARED = 0x1 1717 PR_SET_PDEATHSIG = 0x1
1718 PTRACE_PEEKTEXT = 0x1 1718 PR_SET_PTRACER = 0x59616d61
1719 PTRACE_PEEKUSR = 0x3 1719 PR_SET_PTRACER_ANY = 0xffffffff
1720 PTRACE_POKEDATA = 0x5 1720 PR_SET_SECCOMP = 0x16
1721 PTRACE_POKETEXT = 0x4 1721 PR_SET_SECUREBITS = 0x1c
1722 PTRACE_POKEUSR = 0x6 1722 PR_SET_SPECULATION_CTRL = 0x35
1723 PTRACE_SECCOMP_GET_FILTER = 0x420c 1723 PR_SET_TAGGED_ADDR_CTRL = 0x37
1724 PTRACE_SECCOMP_GET_METADATA = 0x420d 1724 PR_SET_THP_DISABLE = 0x29
1725 PTRACE_SEIZE = 0x4206 1725 PR_SET_TIMERSLACK = 0x1d
1726 PTRACE_SETCRUNCHREGS = 0x1a 1726 PR_SET_TIMING = 0xe
1727 PTRACE_SETFPREGS = 0xf 1727 PR_SET_TSC = 0x1a
1728 PTRACE_SETHBPREGS = 0x1e 1728 PR_SET_UNALIGN = 0x6
1729 PTRACE_SETOPTIONS = 0x4200 1729 PR_SPEC_DISABLE = 0x4
1730 PTRACE_SETREGS = 0xd 1730 PR_SPEC_DISABLE_NOEXEC = 0x10
1731 PTRACE_SETREGSET = 0x4205 1731 PR_SPEC_ENABLE = 0x2
1732 PTRACE_SETSIGINFO = 0x4203 1732 PR_SPEC_FORCE_DISABLE = 0x8
1733 PTRACE_SETSIGMASK = 0x420b 1733 PR_SPEC_INDIRECT_BRANCH = 0x1
1734 PTRACE_SETVFPREGS = 0x1c 1734 PR_SPEC_NOT_AFFECTED = 0x0
1735 PTRACE_SETWMMXREGS = 0x13 1735 PR_SPEC_PRCTL = 0x1
1736 PTRACE_SET_SYSCALL = 0x17 1736 PR_SPEC_STORE_BYPASS = 0x0
1737 PTRACE_SINGLESTEP = 0x9 1737 PR_SVE_GET_VL = 0x33
1738 PTRACE_SYSCALL = 0x18 1738 PR_SVE_SET_VL = 0x32
1739 PTRACE_TRACEME = 0x0 1739 PR_SVE_SET_VL_ONEXEC = 0x40000
1740 PT_DATA_ADDR = 0x10004 1740 PR_SVE_VL_INHERIT = 0x20000
1741 PT_TEXT_ADDR = 0x10000 1741 PR_SVE_VL_LEN_MASK = 0xffff
1742 PT_TEXT_END_ADDR = 0x10008 1742 PR_TAGGED_ADDR_ENABLE = 0x1
1743 QNX4_SUPER_MAGIC = 0x2f 1743 PR_TASK_PERF_EVENTS_DISABLE = 0x1f
1744 QNX6_SUPER_MAGIC = 0x68191122 1744 PR_TASK_PERF_EVENTS_ENABLE = 0x20
1745 RAMFS_MAGIC = 0x858458f6 1745 PR_TIMING_STATISTICAL = 0x0
1746 RDTGROUP_SUPER_MAGIC = 0x7655821 1746 PR_TIMING_TIMESTAMP = 0x1
1747 REISERFS_SUPER_MAGIC = 0x52654973 1747 PR_TSC_ENABLE = 0x1
1748 RENAME_EXCHANGE = 0x2 1748 PR_TSC_SIGSEGV = 0x2
1749 RENAME_NOREPLACE = 0x1 1749 PR_UNALIGN_NOPRINT = 0x1
1750 RENAME_WHITEOUT = 0x4 1750 PR_UNALIGN_SIGBUS = 0x2
1751 RLIMIT_AS = 0x9 1751 PSTOREFS_MAGIC = 0x6165676c
1752 RLIMIT_CORE = 0x4 1752 PTRACE_ATTACH = 0x10
1753 RLIMIT_CPU = 0x0 1753 PTRACE_CONT = 0x7
1754 RLIMIT_DATA = 0x2 1754 PTRACE_DETACH = 0x11
1755 RLIMIT_FSIZE = 0x1 1755 PTRACE_EVENTMSG_SYSCALL_ENTRY = 0x1
1756 RLIMIT_LOCKS = 0xa 1756 PTRACE_EVENTMSG_SYSCALL_EXIT = 0x2
1757 RLIMIT_MEMLOCK = 0x8 1757 PTRACE_EVENT_CLONE = 0x3
1758 RLIMIT_MSGQUEUE = 0xc 1758 PTRACE_EVENT_EXEC = 0x4
1759 RLIMIT_NICE = 0xd 1759 PTRACE_EVENT_EXIT = 0x6
1760 RLIMIT_NOFILE = 0x7 1760 PTRACE_EVENT_FORK = 0x1
1761 RLIMIT_NPROC = 0x6 1761 PTRACE_EVENT_SECCOMP = 0x7
1762 RLIMIT_RSS = 0x5 1762 PTRACE_EVENT_STOP = 0x80
1763 RLIMIT_RTPRIO = 0xe 1763 PTRACE_EVENT_VFORK = 0x2
1764 RLIMIT_RTTIME = 0xf 1764 PTRACE_EVENT_VFORK_DONE = 0x5
1765 RLIMIT_SIGPENDING = 0xb 1765 PTRACE_GETCRUNCHREGS = 0x19
1766 RLIMIT_STACK = 0x3 1766 PTRACE_GETEVENTMSG = 0x4201
1767 RLIM_INFINITY = 0xffffffffffffffff 1767 PTRACE_GETFDPIC = 0x1f
1768 RNDADDENTROPY = 0x40085203 1768 PTRACE_GETFDPIC_EXEC = 0x0
1769 RNDADDTOENTCNT = 0x40045201 1769 PTRACE_GETFDPIC_INTERP = 0x1
1770 RNDCLEARPOOL = 0x5206 1770 PTRACE_GETFPREGS = 0xe
1771 RNDGETENTCNT = 0x80045200 1771 PTRACE_GETHBPREGS = 0x1d
1772 RNDGETPOOL = 0x80085202 1772 PTRACE_GETREGS = 0xc
1773 RNDRESEEDCRNG = 0x5207 1773 PTRACE_GETREGSET = 0x4204
1774 RNDZAPENTCNT = 0x5204 1774 PTRACE_GETSIGINFO = 0x4202
1775 RTAX_ADVMSS = 0x8 1775 PTRACE_GETSIGMASK = 0x420a
1776 RTAX_CC_ALGO = 0x10 1776 PTRACE_GETVFPREGS = 0x1b
1777 RTAX_CWND = 0x7 1777 PTRACE_GETWMMXREGS = 0x12
1778 RTAX_FASTOPEN_NO_COOKIE = 0x11 1778 PTRACE_GET_SYSCALL_INFO = 0x420e
1779 RTAX_FEATURES = 0xc 1779 PTRACE_GET_THREAD_AREA = 0x16
1780 RTAX_FEATURE_ALLFRAG = 0x8 1780 PTRACE_INTERRUPT = 0x4207
1781 RTAX_FEATURE_ECN = 0x1 1781 PTRACE_KILL = 0x8
1782 RTAX_FEATURE_MASK = 0xf 1782 PTRACE_LISTEN = 0x4208
1783 RTAX_FEATURE_SACK = 0x2 1783 PTRACE_OLDSETOPTIONS = 0x15
1784 RTAX_FEATURE_TIMESTAMP = 0x4 1784 PTRACE_O_EXITKILL = 0x100000
1785 RTAX_HOPLIMIT = 0xa 1785 PTRACE_O_MASK = 0x3000ff
1786 RTAX_INITCWND = 0xb 1786 PTRACE_O_SUSPEND_SECCOMP = 0x200000
1787 RTAX_INITRWND = 0xe 1787 PTRACE_O_TRACECLONE = 0x8
1788 RTAX_LOCK = 0x1 1788 PTRACE_O_TRACEEXEC = 0x10
1789 RTAX_MAX = 0x11 1789 PTRACE_O_TRACEEXIT = 0x40
1790 RTAX_MTU = 0x2 1790 PTRACE_O_TRACEFORK = 0x2
1791 RTAX_QUICKACK = 0xf 1791 PTRACE_O_TRACESECCOMP = 0x80
1792 RTAX_REORDERING = 0x9 1792 PTRACE_O_TRACESYSGOOD = 0x1
1793 RTAX_RTO_MIN = 0xd 1793 PTRACE_O_TRACEVFORK = 0x4
1794 RTAX_RTT = 0x4 1794 PTRACE_O_TRACEVFORKDONE = 0x20
1795 RTAX_RTTVAR = 0x5 1795 PTRACE_PEEKDATA = 0x2
1796 RTAX_SSTHRESH = 0x6 1796 PTRACE_PEEKSIGINFO = 0x4209
1797 RTAX_UNSPEC = 0x0 1797 PTRACE_PEEKSIGINFO_SHARED = 0x1
1798 RTAX_WINDOW = 0x3 1798 PTRACE_PEEKTEXT = 0x1
1799 RTA_ALIGNTO = 0x4 1799 PTRACE_PEEKUSR = 0x3
1800 RTA_MAX = 0x1d 1800 PTRACE_POKEDATA = 0x5
1801 RTCF_DIRECTSRC = 0x4000000 1801 PTRACE_POKETEXT = 0x4
1802 RTCF_DOREDIRECT = 0x1000000 1802 PTRACE_POKEUSR = 0x6
1803 RTCF_LOG = 0x2000000 1803 PTRACE_SECCOMP_GET_FILTER = 0x420c
1804 RTCF_MASQ = 0x400000 1804 PTRACE_SECCOMP_GET_METADATA = 0x420d
1805 RTCF_NAT = 0x800000 1805 PTRACE_SEIZE = 0x4206
1806 RTCF_VALVE = 0x200000 1806 PTRACE_SETCRUNCHREGS = 0x1a
1807 RTC_AF = 0x20 1807 PTRACE_SETFPREGS = 0xf
1808 RTC_AIE_OFF = 0x7002 1808 PTRACE_SETHBPREGS = 0x1e
1809 RTC_AIE_ON = 0x7001 1809 PTRACE_SETOPTIONS = 0x4200
1810 RTC_ALM_READ = 0x80247008 1810 PTRACE_SETREGS = 0xd
1811 RTC_ALM_SET = 0x40247007 1811 PTRACE_SETREGSET = 0x4205
1812 RTC_EPOCH_READ = 0x8004700d 1812 PTRACE_SETSIGINFO = 0x4203
1813 RTC_EPOCH_SET = 0x4004700e 1813 PTRACE_SETSIGMASK = 0x420b
1814 RTC_IRQF = 0x80 1814 PTRACE_SETVFPREGS = 0x1c
1815 RTC_IRQP_READ = 0x8004700b 1815 PTRACE_SETWMMXREGS = 0x13
1816 RTC_IRQP_SET = 0x4004700c 1816 PTRACE_SET_SYSCALL = 0x17
1817 RTC_MAX_FREQ = 0x2000 1817 PTRACE_SINGLESTEP = 0x9
1818 RTC_PF = 0x40 1818 PTRACE_SYSCALL = 0x18
1819 RTC_PIE_OFF = 0x7006 1819 PTRACE_SYSCALL_INFO_ENTRY = 0x1
1820 RTC_PIE_ON = 0x7005 1820 PTRACE_SYSCALL_INFO_EXIT = 0x2
1821 RTC_PLL_GET = 0x801c7011 1821 PTRACE_SYSCALL_INFO_NONE = 0x0
1822 RTC_PLL_SET = 0x401c7012 1822 PTRACE_SYSCALL_INFO_SECCOMP = 0x3
1823 RTC_RD_TIME = 0x80247009 1823 PTRACE_TRACEME = 0x0
1824 RTC_SET_TIME = 0x4024700a 1824 PT_DATA_ADDR = 0x10004
1825 RTC_UF = 0x10 1825 PT_TEXT_ADDR = 0x10000
1826 RTC_UIE_OFF = 0x7004 1826 PT_TEXT_END_ADDR = 0x10008
1827 RTC_UIE_ON = 0x7003 1827 QNX4_SUPER_MAGIC = 0x2f
1828 RTC_VL_CLR = 0x7014 1828 QNX6_SUPER_MAGIC = 0x68191122
1829 RTC_VL_READ = 0x80047013 1829 RAMFS_MAGIC = 0x858458f6
1830 RTC_WIE_OFF = 0x7010 1830 RDTGROUP_SUPER_MAGIC = 0x7655821
1831 RTC_WIE_ON = 0x700f 1831 REISERFS_SUPER_MAGIC = 0x52654973
1832 RTC_WKALM_RD = 0x80287010 1832 RENAME_EXCHANGE = 0x2
1833 RTC_WKALM_SET = 0x4028700f 1833 RENAME_NOREPLACE = 0x1
1834 RTF_ADDRCLASSMASK = 0xf8000000 1834 RENAME_WHITEOUT = 0x4
1835 RTF_ADDRCONF = 0x40000 1835 RLIMIT_AS = 0x9
1836 RTF_ALLONLINK = 0x20000 1836 RLIMIT_CORE = 0x4
1837 RTF_BROADCAST = 0x10000000 1837 RLIMIT_CPU = 0x0
1838 RTF_CACHE = 0x1000000 1838 RLIMIT_DATA = 0x2
1839 RTF_DEFAULT = 0x10000 1839 RLIMIT_FSIZE = 0x1
1840 RTF_DYNAMIC = 0x10 1840 RLIMIT_LOCKS = 0xa
1841 RTF_FLOW = 0x2000000 1841 RLIMIT_MEMLOCK = 0x8
1842 RTF_GATEWAY = 0x2 1842 RLIMIT_MSGQUEUE = 0xc
1843 RTF_HOST = 0x4 1843 RLIMIT_NICE = 0xd
1844 RTF_INTERFACE = 0x40000000 1844 RLIMIT_NOFILE = 0x7
1845 RTF_IRTT = 0x100 1845 RLIMIT_NPROC = 0x6
1846 RTF_LINKRT = 0x100000 1846 RLIMIT_RSS = 0x5
1847 RTF_LOCAL = 0x80000000 1847 RLIMIT_RTPRIO = 0xe
1848 RTF_MODIFIED = 0x20 1848 RLIMIT_RTTIME = 0xf
1849 RTF_MSS = 0x40 1849 RLIMIT_SIGPENDING = 0xb
1850 RTF_MTU = 0x40 1850 RLIMIT_STACK = 0x3
1851 RTF_MULTICAST = 0x20000000 1851 RLIM_INFINITY = 0xffffffffffffffff
1852 RTF_NAT = 0x8000000 1852 RNDADDENTROPY = 0x40085203
1853 RTF_NOFORWARD = 0x1000 1853 RNDADDTOENTCNT = 0x40045201
1854 RTF_NONEXTHOP = 0x200000 1854 RNDCLEARPOOL = 0x5206
1855 RTF_NOPMTUDISC = 0x4000 1855 RNDGETENTCNT = 0x80045200
1856 RTF_POLICY = 0x4000000 1856 RNDGETPOOL = 0x80085202
1857 RTF_REINSTATE = 0x8 1857 RNDRESEEDCRNG = 0x5207
1858 RTF_REJECT = 0x200 1858 RNDZAPENTCNT = 0x5204
1859 RTF_STATIC = 0x400 1859 RTAX_ADVMSS = 0x8
1860 RTF_THROW = 0x2000 1860 RTAX_CC_ALGO = 0x10
1861 RTF_UP = 0x1 1861 RTAX_CWND = 0x7
1862 RTF_WINDOW = 0x80 1862 RTAX_FASTOPEN_NO_COOKIE = 0x11
1863 RTF_XRESOLVE = 0x800 1863 RTAX_FEATURES = 0xc
1864 RTM_BASE = 0x10 1864 RTAX_FEATURE_ALLFRAG = 0x8
1865 RTM_DELACTION = 0x31 1865 RTAX_FEATURE_ECN = 0x1
1866 RTM_DELADDR = 0x15 1866 RTAX_FEATURE_MASK = 0xf
1867 RTM_DELADDRLABEL = 0x49 1867 RTAX_FEATURE_SACK = 0x2
1868 RTM_DELCHAIN = 0x65 1868 RTAX_FEATURE_TIMESTAMP = 0x4
1869 RTM_DELLINK = 0x11 1869 RTAX_HOPLIMIT = 0xa
1870 RTM_DELMDB = 0x55 1870 RTAX_INITCWND = 0xb
1871 RTM_DELNEIGH = 0x1d 1871 RTAX_INITRWND = 0xe
1872 RTM_DELNETCONF = 0x51 1872 RTAX_LOCK = 0x1
1873 RTM_DELNSID = 0x59 1873 RTAX_MAX = 0x11
1874 RTM_DELQDISC = 0x25 1874 RTAX_MTU = 0x2
1875 RTM_DELROUTE = 0x19 1875 RTAX_QUICKACK = 0xf
1876 RTM_DELRULE = 0x21 1876 RTAX_REORDERING = 0x9
1877 RTM_DELTCLASS = 0x29 1877 RTAX_RTO_MIN = 0xd
1878 RTM_DELTFILTER = 0x2d 1878 RTAX_RTT = 0x4
1879 RTM_F_CLONED = 0x200 1879 RTAX_RTTVAR = 0x5
1880 RTM_F_EQUALIZE = 0x400 1880 RTAX_SSTHRESH = 0x6
1881 RTM_F_FIB_MATCH = 0x2000 1881 RTAX_UNSPEC = 0x0
1882 RTM_F_LOOKUP_TABLE = 0x1000 1882 RTAX_WINDOW = 0x3
1883 RTM_F_NOTIFY = 0x100 1883 RTA_ALIGNTO = 0x4
1884 RTM_F_PREFIX = 0x800 1884 RTA_MAX = 0x1e
1885 RTM_GETACTION = 0x32 1885 RTCF_DIRECTSRC = 0x4000000
1886 RTM_GETADDR = 0x16 1886 RTCF_DOREDIRECT = 0x1000000
1887 RTM_GETADDRLABEL = 0x4a 1887 RTCF_LOG = 0x2000000
1888 RTM_GETANYCAST = 0x3e 1888 RTCF_MASQ = 0x400000
1889 RTM_GETCHAIN = 0x66 1889 RTCF_NAT = 0x800000
1890 RTM_GETDCB = 0x4e 1890 RTCF_VALVE = 0x200000
1891 RTM_GETLINK = 0x12 1891 RTC_AF = 0x20
1892 RTM_GETMDB = 0x56 1892 RTC_AIE_OFF = 0x7002
1893 RTM_GETMULTICAST = 0x3a 1893 RTC_AIE_ON = 0x7001
1894 RTM_GETNEIGH = 0x1e 1894 RTC_ALM_READ = 0x80247008
1895 RTM_GETNEIGHTBL = 0x42 1895 RTC_ALM_SET = 0x40247007
1896 RTM_GETNETCONF = 0x52 1896 RTC_EPOCH_READ = 0x8004700d
1897 RTM_GETNSID = 0x5a 1897 RTC_EPOCH_SET = 0x4004700e
1898 RTM_GETQDISC = 0x26 1898 RTC_IRQF = 0x80
1899 RTM_GETROUTE = 0x1a 1899 RTC_IRQP_READ = 0x8004700b
1900 RTM_GETRULE = 0x22 1900 RTC_IRQP_SET = 0x4004700c
1901 RTM_GETSTATS = 0x5e 1901 RTC_MAX_FREQ = 0x2000
1902 RTM_GETTCLASS = 0x2a 1902 RTC_PF = 0x40
1903 RTM_GETTFILTER = 0x2e 1903 RTC_PIE_OFF = 0x7006
1904 RTM_MAX = 0x67 1904 RTC_PIE_ON = 0x7005
1905 RTM_NEWACTION = 0x30 1905 RTC_PLL_GET = 0x801c7011
1906 RTM_NEWADDR = 0x14 1906 RTC_PLL_SET = 0x401c7012
1907 RTM_NEWADDRLABEL = 0x48 1907 RTC_RD_TIME = 0x80247009
1908 RTM_NEWCACHEREPORT = 0x60 1908 RTC_SET_TIME = 0x4024700a
1909 RTM_NEWCHAIN = 0x64 1909 RTC_UF = 0x10
1910 RTM_NEWLINK = 0x10 1910 RTC_UIE_OFF = 0x7004
1911 RTM_NEWMDB = 0x54 1911 RTC_UIE_ON = 0x7003
1912 RTM_NEWNDUSEROPT = 0x44 1912 RTC_VL_CLR = 0x7014
1913 RTM_NEWNEIGH = 0x1c 1913 RTC_VL_READ = 0x80047013
1914 RTM_NEWNEIGHTBL = 0x40 1914 RTC_WIE_OFF = 0x7010
1915 RTM_NEWNETCONF = 0x50 1915 RTC_WIE_ON = 0x700f
1916 RTM_NEWNSID = 0x58 1916 RTC_WKALM_RD = 0x80287010
1917 RTM_NEWPREFIX = 0x34 1917 RTC_WKALM_SET = 0x4028700f
1918 RTM_NEWQDISC = 0x24 1918 RTF_ADDRCLASSMASK = 0xf8000000
1919 RTM_NEWROUTE = 0x18 1919 RTF_ADDRCONF = 0x40000
1920 RTM_NEWRULE = 0x20 1920 RTF_ALLONLINK = 0x20000
1921 RTM_NEWSTATS = 0x5c 1921 RTF_BROADCAST = 0x10000000
1922 RTM_NEWTCLASS = 0x28 1922 RTF_CACHE = 0x1000000
1923 RTM_NEWTFILTER = 0x2c 1923 RTF_DEFAULT = 0x10000
1924 RTM_NR_FAMILIES = 0x16 1924 RTF_DYNAMIC = 0x10
1925 RTM_NR_MSGTYPES = 0x58 1925 RTF_FLOW = 0x2000000
1926 RTM_SETDCB = 0x4f 1926 RTF_GATEWAY = 0x2
1927 RTM_SETLINK = 0x13 1927 RTF_HOST = 0x4
1928 RTM_SETNEIGHTBL = 0x43 1928 RTF_INTERFACE = 0x40000000
1929 RTNH_ALIGNTO = 0x4 1929 RTF_IRTT = 0x100
1930 RTNH_COMPARE_MASK = 0x19 1930 RTF_LINKRT = 0x100000
1931 RTNH_F_DEAD = 0x1 1931 RTF_LOCAL = 0x80000000
1932 RTNH_F_LINKDOWN = 0x10 1932 RTF_MODIFIED = 0x20
1933 RTNH_F_OFFLOAD = 0x8 1933 RTF_MSS = 0x40
1934 RTNH_F_ONLINK = 0x4 1934 RTF_MTU = 0x40
1935 RTNH_F_PERVASIVE = 0x2 1935 RTF_MULTICAST = 0x20000000
1936 RTNH_F_UNRESOLVED = 0x20 1936 RTF_NAT = 0x8000000
1937 RTN_MAX = 0xb 1937 RTF_NOFORWARD = 0x1000
1938 RTPROT_BABEL = 0x2a 1938 RTF_NONEXTHOP = 0x200000
1939 RTPROT_BGP = 0xba 1939 RTF_NOPMTUDISC = 0x4000
1940 RTPROT_BIRD = 0xc 1940 RTF_POLICY = 0x4000000
1941 RTPROT_BOOT = 0x3 1941 RTF_REINSTATE = 0x8
1942 RTPROT_DHCP = 0x10 1942 RTF_REJECT = 0x200
1943 RTPROT_DNROUTED = 0xd 1943 RTF_STATIC = 0x400
1944 RTPROT_EIGRP = 0xc0 1944 RTF_THROW = 0x2000
1945 RTPROT_GATED = 0x8 1945 RTF_UP = 0x1
1946 RTPROT_ISIS = 0xbb 1946 RTF_WINDOW = 0x80
1947 RTPROT_KERNEL = 0x2 1947 RTF_XRESOLVE = 0x800
1948 RTPROT_MROUTED = 0x11 1948 RTMGRP_DECnet_IFADDR = 0x1000
1949 RTPROT_MRT = 0xa 1949 RTMGRP_DECnet_ROUTE = 0x4000
1950 RTPROT_NTK = 0xf 1950 RTMGRP_IPV4_IFADDR = 0x10
1951 RTPROT_OSPF = 0xbc 1951 RTMGRP_IPV4_MROUTE = 0x20
1952 RTPROT_RA = 0x9 1952 RTMGRP_IPV4_ROUTE = 0x40
1953 RTPROT_REDIRECT = 0x1 1953 RTMGRP_IPV4_RULE = 0x80
1954 RTPROT_RIP = 0xbd 1954 RTMGRP_IPV6_IFADDR = 0x100
1955 RTPROT_STATIC = 0x4 1955 RTMGRP_IPV6_IFINFO = 0x800
1956 RTPROT_UNSPEC = 0x0 1956 RTMGRP_IPV6_MROUTE = 0x200
1957 RTPROT_XORP = 0xe 1957 RTMGRP_IPV6_PREFIX = 0x20000
1958 RTPROT_ZEBRA = 0xb 1958 RTMGRP_IPV6_ROUTE = 0x400
1959 RT_CLASS_DEFAULT = 0xfd 1959 RTMGRP_LINK = 0x1
1960 RT_CLASS_LOCAL = 0xff 1960 RTMGRP_NEIGH = 0x4
1961 RT_CLASS_MAIN = 0xfe 1961 RTMGRP_NOTIFY = 0x2
1962 RT_CLASS_MAX = 0xff 1962 RTMGRP_TC = 0x8
1963 RT_CLASS_UNSPEC = 0x0 1963 RTM_BASE = 0x10
1964 RUSAGE_CHILDREN = -0x1 1964 RTM_DELACTION = 0x31
1965 RUSAGE_SELF = 0x0 1965 RTM_DELADDR = 0x15
1966 RUSAGE_THREAD = 0x1 1966 RTM_DELADDRLABEL = 0x49
1967 SCM_CREDENTIALS = 0x2 1967 RTM_DELCHAIN = 0x65
1968 SCM_RIGHTS = 0x1 1968 RTM_DELLINK = 0x11
1969 SCM_TIMESTAMP = 0x1d 1969 RTM_DELLINKPROP = 0x6d
1970 SCM_TIMESTAMPING = 0x25 1970 RTM_DELMDB = 0x55
1971 SCM_TIMESTAMPING_OPT_STATS = 0x36 1971 RTM_DELNEIGH = 0x1d
1972 SCM_TIMESTAMPING_PKTINFO = 0x3a 1972 RTM_DELNETCONF = 0x51
1973 SCM_TIMESTAMPNS = 0x23 1973 RTM_DELNEXTHOP = 0x69
1974 SCM_TXTIME = 0x3d 1974 RTM_DELNSID = 0x59
1975 SCM_WIFI_STATUS = 0x29 1975 RTM_DELQDISC = 0x25
1976 SC_LOG_FLUSH = 0x100000 1976 RTM_DELROUTE = 0x19
1977 SECCOMP_MODE_DISABLED = 0x0 1977 RTM_DELRULE = 0x21
1978 SECCOMP_MODE_FILTER = 0x2 1978 RTM_DELTCLASS = 0x29
1979 SECCOMP_MODE_STRICT = 0x1 1979 RTM_DELTFILTER = 0x2d
1980 SECURITYFS_MAGIC = 0x73636673 1980 RTM_F_CLONED = 0x200
1981 SELINUX_MAGIC = 0xf97cff8c 1981 RTM_F_EQUALIZE = 0x400
1982 SFD_CLOEXEC = 0x80000 1982 RTM_F_FIB_MATCH = 0x2000
1983 SFD_NONBLOCK = 0x800 1983 RTM_F_LOOKUP_TABLE = 0x1000
1984 SHUT_RD = 0x0 1984 RTM_F_NOTIFY = 0x100
1985 SHUT_RDWR = 0x2 1985 RTM_F_PREFIX = 0x800
1986 SHUT_WR = 0x1 1986 RTM_GETACTION = 0x32
1987 SIOCADDDLCI = 0x8980 1987 RTM_GETADDR = 0x16
1988 SIOCADDMULTI = 0x8931 1988 RTM_GETADDRLABEL = 0x4a
1989 SIOCADDRT = 0x890b 1989 RTM_GETANYCAST = 0x3e
1990 SIOCATMARK = 0x8905 1990 RTM_GETCHAIN = 0x66
1991 SIOCBONDCHANGEACTIVE = 0x8995 1991 RTM_GETDCB = 0x4e
1992 SIOCBONDENSLAVE = 0x8990 1992 RTM_GETLINK = 0x12
1993 SIOCBONDINFOQUERY = 0x8994 1993 RTM_GETLINKPROP = 0x6e
1994 SIOCBONDRELEASE = 0x8991 1994 RTM_GETMDB = 0x56
1995 SIOCBONDSETHWADDR = 0x8992 1995 RTM_GETMULTICAST = 0x3a
1996 SIOCBONDSLAVEINFOQUERY = 0x8993 1996 RTM_GETNEIGH = 0x1e
1997 SIOCBRADDBR = 0x89a0 1997 RTM_GETNEIGHTBL = 0x42
1998 SIOCBRADDIF = 0x89a2 1998 RTM_GETNETCONF = 0x52
1999 SIOCBRDELBR = 0x89a1 1999 RTM_GETNEXTHOP = 0x6a
2000 SIOCBRDELIF = 0x89a3 2000 RTM_GETNSID = 0x5a
2001 SIOCDARP = 0x8953 2001 RTM_GETQDISC = 0x26
2002 SIOCDELDLCI = 0x8981 2002 RTM_GETROUTE = 0x1a
2003 SIOCDELMULTI = 0x8932 2003 RTM_GETRULE = 0x22
2004 SIOCDELRT = 0x890c 2004 RTM_GETSTATS = 0x5e
2005 SIOCDEVPRIVATE = 0x89f0 2005 RTM_GETTCLASS = 0x2a
2006 SIOCDIFADDR = 0x8936 2006 RTM_GETTFILTER = 0x2e
2007 SIOCDRARP = 0x8960 2007 RTM_MAX = 0x6f
2008 SIOCETHTOOL = 0x8946 2008 RTM_NEWACTION = 0x30
2009 SIOCGARP = 0x8954 2009 RTM_NEWADDR = 0x14
2010 SIOCGHWTSTAMP = 0x89b1 2010 RTM_NEWADDRLABEL = 0x48
2011 SIOCGIFADDR = 0x8915 2011 RTM_NEWCACHEREPORT = 0x60
2012 SIOCGIFBR = 0x8940 2012 RTM_NEWCHAIN = 0x64
2013 SIOCGIFBRDADDR = 0x8919 2013 RTM_NEWLINK = 0x10
2014 SIOCGIFCONF = 0x8912 2014 RTM_NEWLINKPROP = 0x6c
2015 SIOCGIFCOUNT = 0x8938 2015 RTM_NEWMDB = 0x54
2016 SIOCGIFDSTADDR = 0x8917 2016 RTM_NEWNDUSEROPT = 0x44
2017 SIOCGIFENCAP = 0x8925 2017 RTM_NEWNEIGH = 0x1c
2018 SIOCGIFFLAGS = 0x8913 2018 RTM_NEWNEIGHTBL = 0x40
2019 SIOCGIFHWADDR = 0x8927 2019 RTM_NEWNETCONF = 0x50
2020 SIOCGIFINDEX = 0x8933 2020 RTM_NEWNEXTHOP = 0x68
2021 SIOCGIFMAP = 0x8970 2021 RTM_NEWNSID = 0x58
2022 SIOCGIFMEM = 0x891f 2022 RTM_NEWPREFIX = 0x34
2023 SIOCGIFMETRIC = 0x891d 2023 RTM_NEWQDISC = 0x24
2024 SIOCGIFMTU = 0x8921 2024 RTM_NEWROUTE = 0x18
2025 SIOCGIFNAME = 0x8910 2025 RTM_NEWRULE = 0x20
2026 SIOCGIFNETMASK = 0x891b 2026 RTM_NEWSTATS = 0x5c
2027 SIOCGIFPFLAGS = 0x8935 2027 RTM_NEWTCLASS = 0x28
2028 SIOCGIFSLAVE = 0x8929 2028 RTM_NEWTFILTER = 0x2c
2029 SIOCGIFTXQLEN = 0x8942 2029 RTM_NR_FAMILIES = 0x18
2030 SIOCGIFVLAN = 0x8982 2030 RTM_NR_MSGTYPES = 0x60
2031 SIOCGMIIPHY = 0x8947 2031 RTM_SETDCB = 0x4f
2032 SIOCGMIIREG = 0x8948 2032 RTM_SETLINK = 0x13
2033 SIOCGPGRP = 0x8904 2033 RTM_SETNEIGHTBL = 0x43
2034 SIOCGPPPCSTATS = 0x89f2 2034 RTNH_ALIGNTO = 0x4
2035 SIOCGPPPSTATS = 0x89f0 2035 RTNH_COMPARE_MASK = 0x19
2036 SIOCGPPPVER = 0x89f1 2036 RTNH_F_DEAD = 0x1
2037 SIOCGRARP = 0x8961 2037 RTNH_F_LINKDOWN = 0x10
2038 SIOCGSKNS = 0x894c 2038 RTNH_F_OFFLOAD = 0x8
2039 SIOCGSTAMP = 0x8906 2039 RTNH_F_ONLINK = 0x4
2040 SIOCGSTAMPNS = 0x8907 2040 RTNH_F_PERVASIVE = 0x2
2041 SIOCGSTAMPNS_NEW = 0x80108907 2041 RTNH_F_UNRESOLVED = 0x20
2042 SIOCGSTAMPNS_OLD = 0x8907 2042 RTN_MAX = 0xb
2043 SIOCGSTAMP_NEW = 0x80108906 2043 RTPROT_BABEL = 0x2a
2044 SIOCGSTAMP_OLD = 0x8906 2044 RTPROT_BGP = 0xba
2045 SIOCINQ = 0x541b 2045 RTPROT_BIRD = 0xc
2046 SIOCOUTQ = 0x5411 2046 RTPROT_BOOT = 0x3
2047 SIOCOUTQNSD = 0x894b 2047 RTPROT_DHCP = 0x10
2048 SIOCPROTOPRIVATE = 0x89e0 2048 RTPROT_DNROUTED = 0xd
2049 SIOCRTMSG = 0x890d 2049 RTPROT_EIGRP = 0xc0
2050 SIOCSARP = 0x8955 2050 RTPROT_GATED = 0x8
2051 SIOCSHWTSTAMP = 0x89b0 2051 RTPROT_ISIS = 0xbb
2052 SIOCSIFADDR = 0x8916 2052 RTPROT_KERNEL = 0x2
2053 SIOCSIFBR = 0x8941 2053 RTPROT_MROUTED = 0x11
2054 SIOCSIFBRDADDR = 0x891a 2054 RTPROT_MRT = 0xa
2055 SIOCSIFDSTADDR = 0x8918 2055 RTPROT_NTK = 0xf
2056 SIOCSIFENCAP = 0x8926 2056 RTPROT_OSPF = 0xbc
2057 SIOCSIFFLAGS = 0x8914 2057 RTPROT_RA = 0x9
2058 SIOCSIFHWADDR = 0x8924 2058 RTPROT_REDIRECT = 0x1
2059 SIOCSIFHWBROADCAST = 0x8937 2059 RTPROT_RIP = 0xbd
2060 SIOCSIFLINK = 0x8911 2060 RTPROT_STATIC = 0x4
2061 SIOCSIFMAP = 0x8971 2061 RTPROT_UNSPEC = 0x0
2062 SIOCSIFMEM = 0x8920 2062 RTPROT_XORP = 0xe
2063 SIOCSIFMETRIC = 0x891e 2063 RTPROT_ZEBRA = 0xb
2064 SIOCSIFMTU = 0x8922 2064 RT_CLASS_DEFAULT = 0xfd
2065 SIOCSIFNAME = 0x8923 2065 RT_CLASS_LOCAL = 0xff
2066 SIOCSIFNETMASK = 0x891c 2066 RT_CLASS_MAIN = 0xfe
2067 SIOCSIFPFLAGS = 0x8934 2067 RT_CLASS_MAX = 0xff
2068 SIOCSIFSLAVE = 0x8930 2068 RT_CLASS_UNSPEC = 0x0
2069 SIOCSIFTXQLEN = 0x8943 2069 RUSAGE_CHILDREN = -0x1
2070 SIOCSIFVLAN = 0x8983 2070 RUSAGE_SELF = 0x0
2071 SIOCSMIIREG = 0x8949 2071 RUSAGE_THREAD = 0x1
2072 SIOCSPGRP = 0x8902 2072 RWF_APPEND = 0x10
2073 SIOCSRARP = 0x8962 2073 RWF_DSYNC = 0x2
2074 SIOCWANDEV = 0x894a 2074 RWF_HIPRI = 0x1
2075 SMACK_MAGIC = 0x43415d53 2075 RWF_NOWAIT = 0x8
2076 SMART_AUTOSAVE = 0xd2 2076 RWF_SUPPORTED = 0x1f
2077 SMART_AUTO_OFFLINE = 0xdb 2077 RWF_SYNC = 0x4
2078 SMART_DISABLE = 0xd9 2078 RWF_WRITE_LIFE_NOT_SET = 0x0
2079 SMART_ENABLE = 0xd8 2079 SCM_CREDENTIALS = 0x2
2080 SMART_HCYL_PASS = 0xc2 2080 SCM_RIGHTS = 0x1
2081 SMART_IMMEDIATE_OFFLINE = 0xd4 2081 SCM_TIMESTAMP = 0x1d
2082 SMART_LCYL_PASS = 0x4f 2082 SCM_TIMESTAMPING = 0x25
2083 SMART_READ_LOG_SECTOR = 0xd5 2083 SCM_TIMESTAMPING_OPT_STATS = 0x36
2084 SMART_READ_THRESHOLDS = 0xd1 2084 SCM_TIMESTAMPING_PKTINFO = 0x3a
2085 SMART_READ_VALUES = 0xd0 2085 SCM_TIMESTAMPNS = 0x23
2086 SMART_SAVE = 0xd3 2086 SCM_TXTIME = 0x3d
2087 SMART_STATUS = 0xda 2087 SCM_WIFI_STATUS = 0x29
2088 SMART_WRITE_LOG_SECTOR = 0xd6 2088 SC_LOG_FLUSH = 0x100000
2089 SMART_WRITE_THRESHOLDS = 0xd7 2089 SECCOMP_MODE_DISABLED = 0x0
2090 SMB_SUPER_MAGIC = 0x517b 2090 SECCOMP_MODE_FILTER = 0x2
2091 SOCKFS_MAGIC = 0x534f434b 2091 SECCOMP_MODE_STRICT = 0x1
2092 SOCK_CLOEXEC = 0x80000 2092 SECURITYFS_MAGIC = 0x73636673
2093 SOCK_DCCP = 0x6 2093 SELINUX_MAGIC = 0xf97cff8c
2094 SOCK_DGRAM = 0x2 2094 SFD_CLOEXEC = 0x80000
2095 SOCK_IOC_TYPE = 0x89 2095 SFD_NONBLOCK = 0x800
2096 SOCK_NONBLOCK = 0x800 2096 SHUT_RD = 0x0
2097 SOCK_PACKET = 0xa 2097 SHUT_RDWR = 0x2
2098 SOCK_RAW = 0x3 2098 SHUT_WR = 0x1
2099 SOCK_RDM = 0x4 2099 SIOCADDDLCI = 0x8980
2100 SOCK_SEQPACKET = 0x5 2100 SIOCADDMULTI = 0x8931
2101 SOCK_STREAM = 0x1 2101 SIOCADDRT = 0x890b
2102 SOL_AAL = 0x109 2102 SIOCATMARK = 0x8905
2103 SOL_ALG = 0x117 2103 SIOCBONDCHANGEACTIVE = 0x8995
2104 SOL_ATM = 0x108 2104 SIOCBONDENSLAVE = 0x8990
2105 SOL_CAIF = 0x116 2105 SIOCBONDINFOQUERY = 0x8994
2106 SOL_CAN_BASE = 0x64 2106 SIOCBONDRELEASE = 0x8991
2107 SOL_DCCP = 0x10d 2107 SIOCBONDSETHWADDR = 0x8992
2108 SOL_DECNET = 0x105 2108 SIOCBONDSLAVEINFOQUERY = 0x8993
2109 SOL_ICMPV6 = 0x3a 2109 SIOCBRADDBR = 0x89a0
2110 SOL_IP = 0x0 2110 SIOCBRADDIF = 0x89a2
2111 SOL_IPV6 = 0x29 2111 SIOCBRDELBR = 0x89a1
2112 SOL_IRDA = 0x10a 2112 SIOCBRDELIF = 0x89a3
2113 SOL_IUCV = 0x115 2113 SIOCDARP = 0x8953
2114 SOL_KCM = 0x119 2114 SIOCDELDLCI = 0x8981
2115 SOL_LLC = 0x10c 2115 SIOCDELMULTI = 0x8932
2116 SOL_NETBEUI = 0x10b 2116 SIOCDELRT = 0x890c
2117 SOL_NETLINK = 0x10e 2117 SIOCDEVPRIVATE = 0x89f0
2118 SOL_NFC = 0x118 2118 SIOCDIFADDR = 0x8936
2119 SOL_PACKET = 0x107 2119 SIOCDRARP = 0x8960
2120 SOL_PNPIPE = 0x113 2120 SIOCETHTOOL = 0x8946
2121 SOL_PPPOL2TP = 0x111 2121 SIOCGARP = 0x8954
2122 SOL_RAW = 0xff 2122 SIOCGETLINKNAME = 0x89e0
2123 SOL_RDS = 0x114 2123 SIOCGETNODEID = 0x89e1
2124 SOL_RXRPC = 0x110 2124 SIOCGHWTSTAMP = 0x89b1
2125 SOL_SOCKET = 0x1 2125 SIOCGIFADDR = 0x8915
2126 SOL_TCP = 0x6 2126 SIOCGIFBR = 0x8940
2127 SOL_TIPC = 0x10f 2127 SIOCGIFBRDADDR = 0x8919
2128 SOL_TLS = 0x11a 2128 SIOCGIFCONF = 0x8912
2129 SOL_X25 = 0x106 2129 SIOCGIFCOUNT = 0x8938
2130 SOL_XDP = 0x11b 2130 SIOCGIFDSTADDR = 0x8917
2131 SOMAXCONN = 0x80 2131 SIOCGIFENCAP = 0x8925
2132 SO_ACCEPTCONN = 0x1e 2132 SIOCGIFFLAGS = 0x8913
2133 SO_ATTACH_BPF = 0x32 2133 SIOCGIFHWADDR = 0x8927
2134 SO_ATTACH_FILTER = 0x1a 2134 SIOCGIFINDEX = 0x8933
2135 SO_ATTACH_REUSEPORT_CBPF = 0x33 2135 SIOCGIFMAP = 0x8970
2136 SO_ATTACH_REUSEPORT_EBPF = 0x34 2136 SIOCGIFMEM = 0x891f
2137 SO_BINDTODEVICE = 0x19 2137 SIOCGIFMETRIC = 0x891d
2138 SO_BINDTOIFINDEX = 0x3e 2138 SIOCGIFMTU = 0x8921
2139 SO_BPF_EXTENSIONS = 0x30 2139 SIOCGIFNAME = 0x8910
2140 SO_BROADCAST = 0x6 2140 SIOCGIFNETMASK = 0x891b
2141 SO_BSDCOMPAT = 0xe 2141 SIOCGIFPFLAGS = 0x8935
2142 SO_BUSY_POLL = 0x2e 2142 SIOCGIFSLAVE = 0x8929
2143 SO_CNX_ADVICE = 0x35 2143 SIOCGIFTXQLEN = 0x8942
2144 SO_COOKIE = 0x39 2144 SIOCGIFVLAN = 0x8982
2145 SO_DEBUG = 0x1 2145 SIOCGMIIPHY = 0x8947
2146 SO_DETACH_BPF = 0x1b 2146 SIOCGMIIREG = 0x8948
2147 SO_DETACH_FILTER = 0x1b 2147 SIOCGPGRP = 0x8904
2148 SO_DOMAIN = 0x27 2148 SIOCGPPPCSTATS = 0x89f2
2149 SO_DONTROUTE = 0x5 2149 SIOCGPPPSTATS = 0x89f0
2150 SO_EE_CODE_TXTIME_INVALID_PARAM = 0x1 2150 SIOCGPPPVER = 0x89f1
2151 SO_EE_CODE_TXTIME_MISSED = 0x2 2151 SIOCGRARP = 0x8961
2152 SO_EE_CODE_ZEROCOPY_COPIED = 0x1 2152 SIOCGSKNS = 0x894c
2153 SO_EE_ORIGIN_ICMP = 0x2 2153 SIOCGSTAMP = 0x8906
2154 SO_EE_ORIGIN_ICMP6 = 0x3 2154 SIOCGSTAMPNS = 0x8907
2155 SO_EE_ORIGIN_LOCAL = 0x1 2155 SIOCGSTAMPNS_NEW = 0x80108907
2156 SO_EE_ORIGIN_NONE = 0x0 2156 SIOCGSTAMPNS_OLD = 0x8907
2157 SO_EE_ORIGIN_TIMESTAMPING = 0x4 2157 SIOCGSTAMP_NEW = 0x80108906
2158 SO_EE_ORIGIN_TXSTATUS = 0x4 2158 SIOCGSTAMP_OLD = 0x8906
2159 SO_EE_ORIGIN_TXTIME = 0x6 2159 SIOCINQ = 0x541b
2160 SO_EE_ORIGIN_ZEROCOPY = 0x5 2160 SIOCOUTQ = 0x5411
2161 SO_ERROR = 0x4 2161 SIOCOUTQNSD = 0x894b
2162 SO_GET_FILTER = 0x1a 2162 SIOCPROTOPRIVATE = 0x89e0
2163 SO_INCOMING_CPU = 0x31 2163 SIOCRTMSG = 0x890d
2164 SO_INCOMING_NAPI_ID = 0x38 2164 SIOCSARP = 0x8955
2165 SO_KEEPALIVE = 0x9 2165 SIOCSHWTSTAMP = 0x89b0
2166 SO_LINGER = 0xd 2166 SIOCSIFADDR = 0x8916
2167 SO_LOCK_FILTER = 0x2c 2167 SIOCSIFBR = 0x8941
2168 SO_MARK = 0x24 2168 SIOCSIFBRDADDR = 0x891a
2169 SO_MAX_PACING_RATE = 0x2f 2169 SIOCSIFDSTADDR = 0x8918
2170 SO_MEMINFO = 0x37 2170 SIOCSIFENCAP = 0x8926
2171 SO_NOFCS = 0x2b 2171 SIOCSIFFLAGS = 0x8914
2172 SO_NO_CHECK = 0xb 2172 SIOCSIFHWADDR = 0x8924
2173 SO_OOBINLINE = 0xa 2173 SIOCSIFHWBROADCAST = 0x8937
2174 SO_PASSCRED = 0x10 2174 SIOCSIFLINK = 0x8911
2175 SO_PASSSEC = 0x22 2175 SIOCSIFMAP = 0x8971
2176 SO_PEEK_OFF = 0x2a 2176 SIOCSIFMEM = 0x8920
2177 SO_PEERCRED = 0x11 2177 SIOCSIFMETRIC = 0x891e
2178 SO_PEERGROUPS = 0x3b 2178 SIOCSIFMTU = 0x8922
2179 SO_PEERNAME = 0x1c 2179 SIOCSIFNAME = 0x8923
2180 SO_PEERSEC = 0x1f 2180 SIOCSIFNETMASK = 0x891c
2181 SO_PRIORITY = 0xc 2181 SIOCSIFPFLAGS = 0x8934
2182 SO_PROTOCOL = 0x26 2182 SIOCSIFSLAVE = 0x8930
2183 SO_RCVBUF = 0x8 2183 SIOCSIFTXQLEN = 0x8943
2184 SO_RCVBUFFORCE = 0x21 2184 SIOCSIFVLAN = 0x8983
2185 SO_RCVLOWAT = 0x12 2185 SIOCSMIIREG = 0x8949
2186 SO_RCVTIMEO = 0x14 2186 SIOCSPGRP = 0x8902
2187 SO_RCVTIMEO_NEW = 0x42 2187 SIOCSRARP = 0x8962
2188 SO_RCVTIMEO_OLD = 0x14 2188 SIOCWANDEV = 0x894a
2189 SO_REUSEADDR = 0x2 2189 SMACK_MAGIC = 0x43415d53
2190 SO_REUSEPORT = 0xf 2190 SMART_AUTOSAVE = 0xd2
2191 SO_RXQ_OVFL = 0x28 2191 SMART_AUTO_OFFLINE = 0xdb
2192 SO_SECURITY_AUTHENTICATION = 0x16 2192 SMART_DISABLE = 0xd9
2193 SO_SECURITY_ENCRYPTION_NETWORK = 0x18 2193 SMART_ENABLE = 0xd8
2194 SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17 2194 SMART_HCYL_PASS = 0xc2
2195 SO_SELECT_ERR_QUEUE = 0x2d 2195 SMART_IMMEDIATE_OFFLINE = 0xd4
2196 SO_SNDBUF = 0x7 2196 SMART_LCYL_PASS = 0x4f
2197 SO_SNDBUFFORCE = 0x20 2197 SMART_READ_LOG_SECTOR = 0xd5
2198 SO_SNDLOWAT = 0x13 2198 SMART_READ_THRESHOLDS = 0xd1
2199 SO_SNDTIMEO = 0x15 2199 SMART_READ_VALUES = 0xd0
2200 SO_SNDTIMEO_NEW = 0x43 2200 SMART_SAVE = 0xd3
2201 SO_SNDTIMEO_OLD = 0x15 2201 SMART_STATUS = 0xda
2202 SO_TIMESTAMP = 0x1d 2202 SMART_WRITE_LOG_SECTOR = 0xd6
2203 SO_TIMESTAMPING = 0x25 2203 SMART_WRITE_THRESHOLDS = 0xd7
2204 SO_TIMESTAMPING_NEW = 0x41 2204 SMB_SUPER_MAGIC = 0x517b
2205 SO_TIMESTAMPING_OLD = 0x25 2205 SOCKFS_MAGIC = 0x534f434b
2206 SO_TIMESTAMPNS = 0x23 2206 SOCK_CLOEXEC = 0x80000
2207 SO_TIMESTAMPNS_NEW = 0x40 2207 SOCK_DCCP = 0x6
2208 SO_TIMESTAMPNS_OLD = 0x23 2208 SOCK_DGRAM = 0x2
2209 SO_TIMESTAMP_NEW = 0x3f 2209 SOCK_IOC_TYPE = 0x89
2210 SO_TIMESTAMP_OLD = 0x1d 2210 SOCK_NONBLOCK = 0x800
2211 SO_TXTIME = 0x3d 2211 SOCK_PACKET = 0xa
2212 SO_TYPE = 0x3 2212 SOCK_RAW = 0x3
2213 SO_VM_SOCKETS_BUFFER_MAX_SIZE = 0x2 2213 SOCK_RDM = 0x4
2214 SO_VM_SOCKETS_BUFFER_MIN_SIZE = 0x1 2214 SOCK_SEQPACKET = 0x5
2215 SO_VM_SOCKETS_BUFFER_SIZE = 0x0 2215 SOCK_STREAM = 0x1
2216 SO_VM_SOCKETS_CONNECT_TIMEOUT = 0x6 2216 SOL_AAL = 0x109
2217 SO_VM_SOCKETS_NONBLOCK_TXRX = 0x7 2217 SOL_ALG = 0x117
2218 SO_VM_SOCKETS_PEER_HOST_VM_ID = 0x3 2218 SOL_ATM = 0x108
2219 SO_VM_SOCKETS_TRUSTED = 0x5 2219 SOL_CAIF = 0x116
2220 SO_WIFI_STATUS = 0x29 2220 SOL_CAN_BASE = 0x64
2221 SO_ZEROCOPY = 0x3c 2221 SOL_DCCP = 0x10d
2222 SPLICE_F_GIFT = 0x8 2222 SOL_DECNET = 0x105
2223 SPLICE_F_MORE = 0x4 2223 SOL_ICMPV6 = 0x3a
2224 SPLICE_F_MOVE = 0x1 2224 SOL_IP = 0x0
2225 SPLICE_F_NONBLOCK = 0x2 2225 SOL_IPV6 = 0x29
2226 SQUASHFS_MAGIC = 0x73717368 2226 SOL_IRDA = 0x10a
2227 STACK_END_MAGIC = 0x57ac6e9d 2227 SOL_IUCV = 0x115
2228 STATX_ALL = 0xfff 2228 SOL_KCM = 0x119
2229 STATX_ATIME = 0x20 2229 SOL_LLC = 0x10c
2230 STATX_ATTR_APPEND = 0x20 2230 SOL_NETBEUI = 0x10b
2231 STATX_ATTR_AUTOMOUNT = 0x1000 2231 SOL_NETLINK = 0x10e
2232 STATX_ATTR_COMPRESSED = 0x4 2232 SOL_NFC = 0x118
2233 STATX_ATTR_ENCRYPTED = 0x800 2233 SOL_PACKET = 0x107
2234 STATX_ATTR_IMMUTABLE = 0x10 2234 SOL_PNPIPE = 0x113
2235 STATX_ATTR_NODUMP = 0x40 2235 SOL_PPPOL2TP = 0x111
2236 STATX_BASIC_STATS = 0x7ff 2236 SOL_RAW = 0xff
2237 STATX_BLOCKS = 0x400 2237 SOL_RDS = 0x114
2238 STATX_BTIME = 0x800 2238 SOL_RXRPC = 0x110
2239 STATX_CTIME = 0x80 2239 SOL_SOCKET = 0x1
2240 STATX_GID = 0x10 2240 SOL_TCP = 0x6
2241 STATX_INO = 0x100 2241 SOL_TIPC = 0x10f
2242 STATX_MODE = 0x2 2242 SOL_TLS = 0x11a
2243 STATX_MTIME = 0x40 2243 SOL_X25 = 0x106
2244 STATX_NLINK = 0x4 2244 SOL_XDP = 0x11b
2245 STATX_SIZE = 0x200 2245 SOMAXCONN = 0x1000
2246 STATX_TYPE = 0x1 2246 SO_ACCEPTCONN = 0x1e
2247 STATX_UID = 0x8 2247 SO_ATTACH_BPF = 0x32
2248 STATX__RESERVED = 0x80000000 2248 SO_ATTACH_FILTER = 0x1a
2249 SYNC_FILE_RANGE_WAIT_AFTER = 0x4 2249 SO_ATTACH_REUSEPORT_CBPF = 0x33
2250 SYNC_FILE_RANGE_WAIT_BEFORE = 0x1 2250 SO_ATTACH_REUSEPORT_EBPF = 0x34
2251 SYNC_FILE_RANGE_WRITE = 0x2 2251 SO_BINDTODEVICE = 0x19
2252 SYNC_FILE_RANGE_WRITE_AND_WAIT = 0x7 2252 SO_BINDTOIFINDEX = 0x3e
2253 SYSFS_MAGIC = 0x62656572 2253 SO_BPF_EXTENSIONS = 0x30
2254 S_BLKSIZE = 0x200 2254 SO_BROADCAST = 0x6
2255 S_IEXEC = 0x40 2255 SO_BSDCOMPAT = 0xe
2256 S_IFBLK = 0x6000 2256 SO_BUSY_POLL = 0x2e
2257 S_IFCHR = 0x2000 2257 SO_CNX_ADVICE = 0x35
2258 S_IFDIR = 0x4000 2258 SO_COOKIE = 0x39
2259 S_IFIFO = 0x1000 2259 SO_DEBUG = 0x1
2260 S_IFLNK = 0xa000 2260 SO_DETACH_BPF = 0x1b
2261 S_IFMT = 0xf000 2261 SO_DETACH_FILTER = 0x1b
2262 S_IFREG = 0x8000 2262 SO_DETACH_REUSEPORT_BPF = 0x44
2263 S_IFSOCK = 0xc000 2263 SO_DOMAIN = 0x27
2264 S_IREAD = 0x100 2264 SO_DONTROUTE = 0x5
2265 S_IRGRP = 0x20 2265 SO_EE_CODE_TXTIME_INVALID_PARAM = 0x1
2266 S_IROTH = 0x4 2266 SO_EE_CODE_TXTIME_MISSED = 0x2
2267 S_IRUSR = 0x100 2267 SO_EE_CODE_ZEROCOPY_COPIED = 0x1
2268 S_IRWXG = 0x38 2268 SO_EE_ORIGIN_ICMP = 0x2
2269 S_IRWXO = 0x7 2269 SO_EE_ORIGIN_ICMP6 = 0x3
2270 S_IRWXU = 0x1c0 2270 SO_EE_ORIGIN_LOCAL = 0x1
2271 S_ISGID = 0x400 2271 SO_EE_ORIGIN_NONE = 0x0
2272 S_ISUID = 0x800 2272 SO_EE_ORIGIN_TIMESTAMPING = 0x4
2273 S_ISVTX = 0x200 2273 SO_EE_ORIGIN_TXSTATUS = 0x4
2274 S_IWGRP = 0x10 2274 SO_EE_ORIGIN_TXTIME = 0x6
2275 S_IWOTH = 0x2 2275 SO_EE_ORIGIN_ZEROCOPY = 0x5
2276 S_IWRITE = 0x80 2276 SO_ERROR = 0x4
2277 S_IWUSR = 0x80 2277 SO_GET_FILTER = 0x1a
2278 S_IXGRP = 0x8 2278 SO_INCOMING_CPU = 0x31
2279 S_IXOTH = 0x1 2279 SO_INCOMING_NAPI_ID = 0x38
2280 S_IXUSR = 0x40 2280 SO_KEEPALIVE = 0x9
2281 TAB0 = 0x0 2281 SO_LINGER = 0xd
2282 TAB1 = 0x800 2282 SO_LOCK_FILTER = 0x2c
2283 TAB2 = 0x1000 2283 SO_MARK = 0x24
2284 TAB3 = 0x1800 2284 SO_MAX_PACING_RATE = 0x2f
2285 TABDLY = 0x1800 2285 SO_MEMINFO = 0x37
2286 TASKSTATS_CMD_ATTR_MAX = 0x4 2286 SO_NOFCS = 0x2b
2287 TASKSTATS_CMD_MAX = 0x2 2287 SO_NO_CHECK = 0xb
2288 TASKSTATS_GENL_NAME = "TASKSTATS" 2288 SO_OOBINLINE = 0xa
2289 TASKSTATS_GENL_VERSION = 0x1 2289 SO_PASSCRED = 0x10
2290 TASKSTATS_TYPE_MAX = 0x6 2290 SO_PASSSEC = 0x22
2291 TASKSTATS_VERSION = 0x9 2291 SO_PEEK_OFF = 0x2a
2292 TCFLSH = 0x540b 2292 SO_PEERCRED = 0x11
2293 TCGETA = 0x5405 2293 SO_PEERGROUPS = 0x3b
2294 TCGETS = 0x5401 2294 SO_PEERNAME = 0x1c
2295 TCGETS2 = 0x802c542a 2295 SO_PEERSEC = 0x1f
2296 TCGETX = 0x5432 2296 SO_PRIORITY = 0xc
2297 TCIFLUSH = 0x0 2297 SO_PROTOCOL = 0x26
2298 TCIOFF = 0x2 2298 SO_RCVBUF = 0x8
2299 TCIOFLUSH = 0x2 2299 SO_RCVBUFFORCE = 0x21
2300 TCION = 0x3 2300 SO_RCVLOWAT = 0x12
2301 TCOFLUSH = 0x1 2301 SO_RCVTIMEO = 0x14
2302 TCOOFF = 0x0 2302 SO_RCVTIMEO_NEW = 0x42
2303 TCOON = 0x1 2303 SO_RCVTIMEO_OLD = 0x14
2304 TCP_BPF_IW = 0x3e9 2304 SO_REUSEADDR = 0x2
2305 TCP_BPF_SNDCWND_CLAMP = 0x3ea 2305 SO_REUSEPORT = 0xf
2306 TCP_CC_INFO = 0x1a 2306 SO_RXQ_OVFL = 0x28
2307 TCP_CM_INQ = 0x24 2307 SO_SECURITY_AUTHENTICATION = 0x16
2308 TCP_CONGESTION = 0xd 2308 SO_SECURITY_ENCRYPTION_NETWORK = 0x18
2309 TCP_COOKIE_IN_ALWAYS = 0x1 2309 SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17
2310 TCP_COOKIE_MAX = 0x10 2310 SO_SELECT_ERR_QUEUE = 0x2d
2311 TCP_COOKIE_MIN = 0x8 2311 SO_SNDBUF = 0x7
2312 TCP_COOKIE_OUT_NEVER = 0x2 2312 SO_SNDBUFFORCE = 0x20
2313 TCP_COOKIE_PAIR_SIZE = 0x20 2313 SO_SNDLOWAT = 0x13
2314 TCP_COOKIE_TRANSACTIONS = 0xf 2314 SO_SNDTIMEO = 0x15
2315 TCP_CORK = 0x3 2315 SO_SNDTIMEO_NEW = 0x43
2316 TCP_DEFER_ACCEPT = 0x9 2316 SO_SNDTIMEO_OLD = 0x15
2317 TCP_FASTOPEN = 0x17 2317 SO_TIMESTAMP = 0x1d
2318 TCP_FASTOPEN_CONNECT = 0x1e 2318 SO_TIMESTAMPING = 0x25
2319 TCP_FASTOPEN_KEY = 0x21 2319 SO_TIMESTAMPING_NEW = 0x41
2320 TCP_FASTOPEN_NO_COOKIE = 0x22 2320 SO_TIMESTAMPING_OLD = 0x25
2321 TCP_INFO = 0xb 2321 SO_TIMESTAMPNS = 0x23
2322 TCP_INQ = 0x24 2322 SO_TIMESTAMPNS_NEW = 0x40
2323 TCP_KEEPCNT = 0x6 2323 SO_TIMESTAMPNS_OLD = 0x23
2324 TCP_KEEPIDLE = 0x4 2324 SO_TIMESTAMP_NEW = 0x3f
2325 TCP_KEEPINTVL = 0x5 2325 SO_TIMESTAMP_OLD = 0x1d
2326 TCP_LINGER2 = 0x8 2326 SO_TXTIME = 0x3d
2327 TCP_MAXSEG = 0x2 2327 SO_TYPE = 0x3
2328 TCP_MAXWIN = 0xffff 2328 SO_VM_SOCKETS_BUFFER_MAX_SIZE = 0x2
2329 TCP_MAX_WINSHIFT = 0xe 2329 SO_VM_SOCKETS_BUFFER_MIN_SIZE = 0x1
2330 TCP_MD5SIG = 0xe 2330 SO_VM_SOCKETS_BUFFER_SIZE = 0x0
2331 TCP_MD5SIG_EXT = 0x20 2331 SO_VM_SOCKETS_CONNECT_TIMEOUT = 0x6
2332 TCP_MD5SIG_FLAG_PREFIX = 0x1 2332 SO_VM_SOCKETS_NONBLOCK_TXRX = 0x7
2333 TCP_MD5SIG_MAXKEYLEN = 0x50 2333 SO_VM_SOCKETS_PEER_HOST_VM_ID = 0x3
2334 TCP_MSS = 0x200 2334 SO_VM_SOCKETS_TRUSTED = 0x5
2335 TCP_MSS_DEFAULT = 0x218 2335 SO_WIFI_STATUS = 0x29
2336 TCP_MSS_DESIRED = 0x4c4 2336 SO_ZEROCOPY = 0x3c
2337 TCP_NODELAY = 0x1 2337 SPLICE_F_GIFT = 0x8
2338 TCP_NOTSENT_LOWAT = 0x19 2338 SPLICE_F_MORE = 0x4
2339 TCP_QUEUE_SEQ = 0x15 2339 SPLICE_F_MOVE = 0x1
2340 TCP_QUICKACK = 0xc 2340 SPLICE_F_NONBLOCK = 0x2
2341 TCP_REPAIR = 0x13 2341 SQUASHFS_MAGIC = 0x73717368
2342 TCP_REPAIR_OFF = 0x0 2342 STACK_END_MAGIC = 0x57ac6e9d
2343 TCP_REPAIR_OFF_NO_WP = -0x1 2343 STATX_ALL = 0xfff
2344 TCP_REPAIR_ON = 0x1 2344 STATX_ATIME = 0x20
2345 TCP_REPAIR_OPTIONS = 0x16 2345 STATX_ATTR_APPEND = 0x20
2346 TCP_REPAIR_QUEUE = 0x14 2346 STATX_ATTR_AUTOMOUNT = 0x1000
2347 TCP_REPAIR_WINDOW = 0x1d 2347 STATX_ATTR_COMPRESSED = 0x4
2348 TCP_SAVED_SYN = 0x1c 2348 STATX_ATTR_ENCRYPTED = 0x800
2349 TCP_SAVE_SYN = 0x1b 2349 STATX_ATTR_IMMUTABLE = 0x10
2350 TCP_SYNCNT = 0x7 2350 STATX_ATTR_NODUMP = 0x40
2351 TCP_S_DATA_IN = 0x4 2351 STATX_ATTR_VERITY = 0x100000
2352 TCP_S_DATA_OUT = 0x8 2352 STATX_BASIC_STATS = 0x7ff
2353 TCP_THIN_DUPACK = 0x11 2353 STATX_BLOCKS = 0x400
2354 TCP_THIN_LINEAR_TIMEOUTS = 0x10 2354 STATX_BTIME = 0x800
2355 TCP_TIMESTAMP = 0x18 2355 STATX_CTIME = 0x80
2356 TCP_ULP = 0x1f 2356 STATX_GID = 0x10
2357 TCP_USER_TIMEOUT = 0x12 2357 STATX_INO = 0x100
2358 TCP_WINDOW_CLAMP = 0xa 2358 STATX_MODE = 0x2
2359 TCP_ZEROCOPY_RECEIVE = 0x23 2359 STATX_MTIME = 0x40
2360 TCSAFLUSH = 0x2 2360 STATX_NLINK = 0x4
2361 TCSBRK = 0x5409 2361 STATX_SIZE = 0x200
2362 TCSBRKP = 0x5425 2362 STATX_TYPE = 0x1
2363 TCSETA = 0x5406 2363 STATX_UID = 0x8
2364 TCSETAF = 0x5408 2364 STATX__RESERVED = 0x80000000
2365 TCSETAW = 0x5407 2365 SYNC_FILE_RANGE_WAIT_AFTER = 0x4
2366 TCSETS = 0x5402 2366 SYNC_FILE_RANGE_WAIT_BEFORE = 0x1
2367 TCSETS2 = 0x402c542b 2367 SYNC_FILE_RANGE_WRITE = 0x2
2368 TCSETSF = 0x5404 2368 SYNC_FILE_RANGE_WRITE_AND_WAIT = 0x7
2369 TCSETSF2 = 0x402c542d 2369 SYSFS_MAGIC = 0x62656572
2370 TCSETSW = 0x5403 2370 S_BLKSIZE = 0x200
2371 TCSETSW2 = 0x402c542c 2371 S_IEXEC = 0x40
2372 TCSETX = 0x5433 2372 S_IFBLK = 0x6000
2373 TCSETXF = 0x5434 2373 S_IFCHR = 0x2000
2374 TCSETXW = 0x5435 2374 S_IFDIR = 0x4000
2375 TCXONC = 0x540a 2375 S_IFIFO = 0x1000
2376 TIMER_ABSTIME = 0x1 2376 S_IFLNK = 0xa000
2377 TIOCCBRK = 0x5428 2377 S_IFMT = 0xf000
2378 TIOCCONS = 0x541d 2378 S_IFREG = 0x8000
2379 TIOCEXCL = 0x540c 2379 S_IFSOCK = 0xc000
2380 TIOCGDEV = 0x80045432 2380 S_IREAD = 0x100
2381 TIOCGETD = 0x5424 2381 S_IRGRP = 0x20
2382 TIOCGEXCL = 0x80045440 2382 S_IROTH = 0x4
2383 TIOCGICOUNT = 0x545d 2383 S_IRUSR = 0x100
2384 TIOCGISO7816 = 0x80285442 2384 S_IRWXG = 0x38
2385 TIOCGLCKTRMIOS = 0x5456 2385 S_IRWXO = 0x7
2386 TIOCGPGRP = 0x540f 2386 S_IRWXU = 0x1c0
2387 TIOCGPKT = 0x80045438 2387 S_ISGID = 0x400
2388 TIOCGPTLCK = 0x80045439 2388 S_ISUID = 0x800
2389 TIOCGPTN = 0x80045430 2389 S_ISVTX = 0x200
2390 TIOCGPTPEER = 0x5441 2390 S_IWGRP = 0x10
2391 TIOCGRS485 = 0x542e 2391 S_IWOTH = 0x2
2392 TIOCGSERIAL = 0x541e 2392 S_IWRITE = 0x80
2393 TIOCGSID = 0x5429 2393 S_IWUSR = 0x80
2394 TIOCGSOFTCAR = 0x5419 2394 S_IXGRP = 0x8
2395 TIOCGWINSZ = 0x5413 2395 S_IXOTH = 0x1
2396 TIOCINQ = 0x541b 2396 S_IXUSR = 0x40
2397 TIOCLINUX = 0x541c 2397 TAB0 = 0x0
2398 TIOCMBIC = 0x5417 2398 TAB1 = 0x800
2399 TIOCMBIS = 0x5416 2399 TAB2 = 0x1000
2400 TIOCMGET = 0x5415 2400 TAB3 = 0x1800
2401 TIOCMIWAIT = 0x545c 2401 TABDLY = 0x1800
2402 TIOCMSET = 0x5418 2402 TASKSTATS_CMD_ATTR_MAX = 0x4
2403 TIOCM_CAR = 0x40 2403 TASKSTATS_CMD_MAX = 0x2
2404 TIOCM_CD = 0x40 2404 TASKSTATS_GENL_NAME = "TASKSTATS"
2405 TIOCM_CTS = 0x20 2405 TASKSTATS_GENL_VERSION = 0x1
2406 TIOCM_DSR = 0x100 2406 TASKSTATS_TYPE_MAX = 0x6
2407 TIOCM_DTR = 0x2 2407 TASKSTATS_VERSION = 0x9
2408 TIOCM_LE = 0x1 2408 TCFLSH = 0x540b
2409 TIOCM_RI = 0x80 2409 TCGETA = 0x5405
2410 TIOCM_RNG = 0x80 2410 TCGETS = 0x5401
2411 TIOCM_RTS = 0x4 2411 TCGETS2 = 0x802c542a
2412 TIOCM_SR = 0x10 2412 TCGETX = 0x5432
2413 TIOCM_ST = 0x8 2413 TCIFLUSH = 0x0
2414 TIOCNOTTY = 0x5422 2414 TCIOFF = 0x2
2415 TIOCNXCL = 0x540d 2415 TCIOFLUSH = 0x2
2416 TIOCOUTQ = 0x5411 2416 TCION = 0x3
2417 TIOCPKT = 0x5420 2417 TCOFLUSH = 0x1
2418 TIOCPKT_DATA = 0x0 2418 TCOOFF = 0x0
2419 TIOCPKT_DOSTOP = 0x20 2419 TCOON = 0x1
2420 TIOCPKT_FLUSHREAD = 0x1 2420 TCP_BPF_IW = 0x3e9
2421 TIOCPKT_FLUSHWRITE = 0x2 2421 TCP_BPF_SNDCWND_CLAMP = 0x3ea
2422 TIOCPKT_IOCTL = 0x40 2422 TCP_CC_INFO = 0x1a
2423 TIOCPKT_NOSTOP = 0x10 2423 TCP_CM_INQ = 0x24
2424 TIOCPKT_START = 0x8 2424 TCP_CONGESTION = 0xd
2425 TIOCPKT_STOP = 0x4 2425 TCP_COOKIE_IN_ALWAYS = 0x1
2426 TIOCSBRK = 0x5427 2426 TCP_COOKIE_MAX = 0x10
2427 TIOCSCTTY = 0x540e 2427 TCP_COOKIE_MIN = 0x8
2428 TIOCSERCONFIG = 0x5453 2428 TCP_COOKIE_OUT_NEVER = 0x2
2429 TIOCSERGETLSR = 0x5459 2429 TCP_COOKIE_PAIR_SIZE = 0x20
2430 TIOCSERGETMULTI = 0x545a 2430 TCP_COOKIE_TRANSACTIONS = 0xf
2431 TIOCSERGSTRUCT = 0x5458 2431 TCP_CORK = 0x3
2432 TIOCSERGWILD = 0x5454 2432 TCP_DEFER_ACCEPT = 0x9
2433 TIOCSERSETMULTI = 0x545b 2433 TCP_FASTOPEN = 0x17
2434 TIOCSERSWILD = 0x5455 2434 TCP_FASTOPEN_CONNECT = 0x1e
2435 TIOCSER_TEMT = 0x1 2435 TCP_FASTOPEN_KEY = 0x21
2436 TIOCSETD = 0x5423 2436 TCP_FASTOPEN_NO_COOKIE = 0x22
2437 TIOCSIG = 0x40045436 2437 TCP_INFO = 0xb
2438 TIOCSISO7816 = 0xc0285443 2438 TCP_INQ = 0x24
2439 TIOCSLCKTRMIOS = 0x5457 2439 TCP_KEEPCNT = 0x6
2440 TIOCSPGRP = 0x5410 2440 TCP_KEEPIDLE = 0x4
2441 TIOCSPTLCK = 0x40045431 2441 TCP_KEEPINTVL = 0x5
2442 TIOCSRS485 = 0x542f 2442 TCP_LINGER2 = 0x8
2443 TIOCSSERIAL = 0x541f 2443 TCP_MAXSEG = 0x2
2444 TIOCSSOFTCAR = 0x541a 2444 TCP_MAXWIN = 0xffff
2445 TIOCSTI = 0x5412 2445 TCP_MAX_WINSHIFT = 0xe
2446 TIOCSWINSZ = 0x5414 2446 TCP_MD5SIG = 0xe
2447 TIOCVHANGUP = 0x5437 2447 TCP_MD5SIG_EXT = 0x20
2448 TMPFS_MAGIC = 0x1021994 2448 TCP_MD5SIG_FLAG_PREFIX = 0x1
2449 TOSTOP = 0x100 2449 TCP_MD5SIG_MAXKEYLEN = 0x50
2450 TPACKET_ALIGNMENT = 0x10 2450 TCP_MSS = 0x200
2451 TPACKET_HDRLEN = 0x34 2451 TCP_MSS_DEFAULT = 0x218
2452 TP_STATUS_AVAILABLE = 0x0 2452 TCP_MSS_DESIRED = 0x4c4
2453 TP_STATUS_BLK_TMO = 0x20 2453 TCP_NODELAY = 0x1
2454 TP_STATUS_COPY = 0x2 2454 TCP_NOTSENT_LOWAT = 0x19
2455 TP_STATUS_CSUMNOTREADY = 0x8 2455 TCP_QUEUE_SEQ = 0x15
2456 TP_STATUS_CSUM_VALID = 0x80 2456 TCP_QUICKACK = 0xc
2457 TP_STATUS_KERNEL = 0x0 2457 TCP_REPAIR = 0x13
2458 TP_STATUS_LOSING = 0x4 2458 TCP_REPAIR_OFF = 0x0
2459 TP_STATUS_SENDING = 0x2 2459 TCP_REPAIR_OFF_NO_WP = -0x1
2460 TP_STATUS_SEND_REQUEST = 0x1 2460 TCP_REPAIR_ON = 0x1
2461 TP_STATUS_TS_RAW_HARDWARE = -0x80000000 2461 TCP_REPAIR_OPTIONS = 0x16
2462 TP_STATUS_TS_SOFTWARE = 0x20000000 2462 TCP_REPAIR_QUEUE = 0x14
2463 TP_STATUS_TS_SYS_HARDWARE = 0x40000000 2463 TCP_REPAIR_WINDOW = 0x1d
2464 TP_STATUS_USER = 0x1 2464 TCP_SAVED_SYN = 0x1c
2465 TP_STATUS_VLAN_TPID_VALID = 0x40 2465 TCP_SAVE_SYN = 0x1b
2466 TP_STATUS_VLAN_VALID = 0x10 2466 TCP_SYNCNT = 0x7
2467 TP_STATUS_WRONG_FORMAT = 0x4 2467 TCP_S_DATA_IN = 0x4
2468 TRACEFS_MAGIC = 0x74726163 2468 TCP_S_DATA_OUT = 0x8
2469 TS_COMM_LEN = 0x20 2469 TCP_THIN_DUPACK = 0x11
2470 TUNATTACHFILTER = 0x400854d5 2470 TCP_THIN_LINEAR_TIMEOUTS = 0x10
2471 TUNDETACHFILTER = 0x400854d6 2471 TCP_TIMESTAMP = 0x18
2472 TUNGETDEVNETNS = 0x54e3 2472 TCP_TX_DELAY = 0x25
2473 TUNGETFEATURES = 0x800454cf 2473 TCP_ULP = 0x1f
2474 TUNGETFILTER = 0x800854db 2474 TCP_USER_TIMEOUT = 0x12
2475 TUNGETIFF = 0x800454d2 2475 TCP_WINDOW_CLAMP = 0xa
2476 TUNGETSNDBUF = 0x800454d3 2476 TCP_ZEROCOPY_RECEIVE = 0x23
2477 TUNGETVNETBE = 0x800454df 2477 TCSAFLUSH = 0x2
2478 TUNGETVNETHDRSZ = 0x800454d7 2478 TCSBRK = 0x5409
2479 TUNGETVNETLE = 0x800454dd 2479 TCSBRKP = 0x5425
2480 TUNSETCARRIER = 0x400454e2 2480 TCSETA = 0x5406
2481 TUNSETDEBUG = 0x400454c9 2481 TCSETAF = 0x5408
2482 TUNSETFILTEREBPF = 0x800454e1 2482 TCSETAW = 0x5407
2483 TUNSETGROUP = 0x400454ce 2483 TCSETS = 0x5402
2484 TUNSETIFF = 0x400454ca 2484 TCSETS2 = 0x402c542b
2485 TUNSETIFINDEX = 0x400454da 2485 TCSETSF = 0x5404
2486 TUNSETLINK = 0x400454cd 2486 TCSETSF2 = 0x402c542d
2487 TUNSETNOCSUM = 0x400454c8 2487 TCSETSW = 0x5403
2488 TUNSETOFFLOAD = 0x400454d0 2488 TCSETSW2 = 0x402c542c
2489 TUNSETOWNER = 0x400454cc 2489 TCSETX = 0x5433
2490 TUNSETPERSIST = 0x400454cb 2490 TCSETXF = 0x5434
2491 TUNSETQUEUE = 0x400454d9 2491 TCSETXW = 0x5435
2492 TUNSETSNDBUF = 0x400454d4 2492 TCXONC = 0x540a
2493 TUNSETSTEERINGEBPF = 0x800454e0 2493 TIMER_ABSTIME = 0x1
2494 TUNSETTXFILTER = 0x400454d1 2494 TIOCCBRK = 0x5428
2495 TUNSETVNETBE = 0x400454de 2495 TIOCCONS = 0x541d
2496 TUNSETVNETHDRSZ = 0x400454d8 2496 TIOCEXCL = 0x540c
2497 TUNSETVNETLE = 0x400454dc 2497 TIOCGDEV = 0x80045432
2498 UBI_IOCATT = 0x40186f40 2498 TIOCGETD = 0x5424
2499 UBI_IOCDET = 0x40046f41 2499 TIOCGEXCL = 0x80045440
2500 UBI_IOCEBCH = 0x40044f02 2500 TIOCGICOUNT = 0x545d
2501 UBI_IOCEBER = 0x40044f01 2501 TIOCGISO7816 = 0x80285442
2502 UBI_IOCEBISMAP = 0x80044f05 2502 TIOCGLCKTRMIOS = 0x5456
2503 UBI_IOCEBMAP = 0x40084f03 2503 TIOCGPGRP = 0x540f
2504 UBI_IOCEBUNMAP = 0x40044f04 2504 TIOCGPKT = 0x80045438
2505 UBI_IOCMKVOL = 0x40986f00 2505 TIOCGPTLCK = 0x80045439
2506 UBI_IOCRMVOL = 0x40046f01 2506 TIOCGPTN = 0x80045430
2507 UBI_IOCRNVOL = 0x51106f03 2507 TIOCGPTPEER = 0x5441
2508 UBI_IOCRPEB = 0x40046f04 2508 TIOCGRS485 = 0x542e
2509 UBI_IOCRSVOL = 0x400c6f02 2509 TIOCGSERIAL = 0x541e
2510 UBI_IOCSETVOLPROP = 0x40104f06 2510 TIOCGSID = 0x5429
2511 UBI_IOCSPEB = 0x40046f05 2511 TIOCGSOFTCAR = 0x5419
2512 UBI_IOCVOLCRBLK = 0x40804f07 2512 TIOCGWINSZ = 0x5413
2513 UBI_IOCVOLRMBLK = 0x4f08 2513 TIOCINQ = 0x541b
2514 UBI_IOCVOLUP = 0x40084f00 2514 TIOCLINUX = 0x541c
2515 UDF_SUPER_MAGIC = 0x15013346 2515 TIOCMBIC = 0x5417
2516 UMOUNT_NOFOLLOW = 0x8 2516 TIOCMBIS = 0x5416
2517 USBDEVICE_SUPER_MAGIC = 0x9fa2 2517 TIOCMGET = 0x5415
2518 UTIME_NOW = 0x3fffffff 2518 TIOCMIWAIT = 0x545c
2519 UTIME_OMIT = 0x3ffffffe 2519 TIOCMSET = 0x5418
2520 V9FS_MAGIC = 0x1021997 2520 TIOCM_CAR = 0x40
2521 VDISCARD = 0xd 2521 TIOCM_CD = 0x40
2522 VEOF = 0x4 2522 TIOCM_CTS = 0x20
2523 VEOL = 0xb 2523 TIOCM_DSR = 0x100
2524 VEOL2 = 0x10 2524 TIOCM_DTR = 0x2
2525 VERASE = 0x2 2525 TIOCM_LE = 0x1
2526 VINTR = 0x0 2526 TIOCM_RI = 0x80
2527 VKILL = 0x3 2527 TIOCM_RNG = 0x80
2528 VLNEXT = 0xf 2528 TIOCM_RTS = 0x4
2529 VMADDR_CID_ANY = 0xffffffff 2529 TIOCM_SR = 0x10
2530 VMADDR_CID_HOST = 0x2 2530 TIOCM_ST = 0x8
2531 VMADDR_CID_HYPERVISOR = 0x0 2531 TIOCNOTTY = 0x5422
2532 VMADDR_CID_RESERVED = 0x1 2532 TIOCNXCL = 0x540d
2533 VMADDR_PORT_ANY = 0xffffffff 2533 TIOCOUTQ = 0x5411
2534 VMIN = 0x6 2534 TIOCPKT = 0x5420
2535 VM_SOCKETS_INVALID_VERSION = 0xffffffff 2535 TIOCPKT_DATA = 0x0
2536 VQUIT = 0x1 2536 TIOCPKT_DOSTOP = 0x20
2537 VREPRINT = 0xc 2537 TIOCPKT_FLUSHREAD = 0x1
2538 VSTART = 0x8 2538 TIOCPKT_FLUSHWRITE = 0x2
2539 VSTOP = 0x9 2539 TIOCPKT_IOCTL = 0x40
2540 VSUSP = 0xa 2540 TIOCPKT_NOSTOP = 0x10
2541 VSWTC = 0x7 2541 TIOCPKT_START = 0x8
2542 VT0 = 0x0 2542 TIOCPKT_STOP = 0x4
2543 VT1 = 0x4000 2543 TIOCSBRK = 0x5427
2544 VTDLY = 0x4000 2544 TIOCSCTTY = 0x540e
2545 VTIME = 0x5 2545 TIOCSERCONFIG = 0x5453
2546 VWERASE = 0xe 2546 TIOCSERGETLSR = 0x5459
2547 WALL = 0x40000000 2547 TIOCSERGETMULTI = 0x545a
2548 WCLONE = 0x80000000 2548 TIOCSERGSTRUCT = 0x5458
2549 WCONTINUED = 0x8 2549 TIOCSERGWILD = 0x5454
2550 WDIOC_GETBOOTSTATUS = 0x80045702 2550 TIOCSERSETMULTI = 0x545b
2551 WDIOC_GETPRETIMEOUT = 0x80045709 2551 TIOCSERSWILD = 0x5455
2552 WDIOC_GETSTATUS = 0x80045701 2552 TIOCSER_TEMT = 0x1
2553 WDIOC_GETSUPPORT = 0x80285700 2553 TIOCSETD = 0x5423
2554 WDIOC_GETTEMP = 0x80045703 2554 TIOCSIG = 0x40045436
2555 WDIOC_GETTIMELEFT = 0x8004570a 2555 TIOCSISO7816 = 0xc0285443
2556 WDIOC_GETTIMEOUT = 0x80045707 2556 TIOCSLCKTRMIOS = 0x5457
2557 WDIOC_KEEPALIVE = 0x80045705 2557 TIOCSPGRP = 0x5410
2558 WDIOC_SETOPTIONS = 0x80045704 2558 TIOCSPTLCK = 0x40045431
2559 WDIOC_SETPRETIMEOUT = 0xc0045708 2559 TIOCSRS485 = 0x542f
2560 WDIOC_SETTIMEOUT = 0xc0045706 2560 TIOCSSERIAL = 0x541f
2561 WEXITED = 0x4 2561 TIOCSSOFTCAR = 0x541a
2562 WIN_ACKMEDIACHANGE = 0xdb 2562 TIOCSTI = 0x5412
2563 WIN_CHECKPOWERMODE1 = 0xe5 2563 TIOCSWINSZ = 0x5414
2564 WIN_CHECKPOWERMODE2 = 0x98 2564 TIOCVHANGUP = 0x5437
2565 WIN_DEVICE_RESET = 0x8 2565 TIPC_ADDR_ID = 0x3
2566 WIN_DIAGNOSE = 0x90 2566 TIPC_ADDR_MCAST = 0x1
2567 WIN_DOORLOCK = 0xde 2567 TIPC_ADDR_NAME = 0x2
2568 WIN_DOORUNLOCK = 0xdf 2568 TIPC_ADDR_NAMESEQ = 0x1
2569 WIN_DOWNLOAD_MICROCODE = 0x92 2569 TIPC_AEAD_ALG_NAME = 0x20
2570 WIN_FLUSH_CACHE = 0xe7 2570 TIPC_AEAD_KEYLEN_MAX = 0x24
2571 WIN_FLUSH_CACHE_EXT = 0xea 2571 TIPC_AEAD_KEYLEN_MIN = 0x14
2572 WIN_FORMAT = 0x50 2572 TIPC_AEAD_KEY_SIZE_MAX = 0x48
2573 WIN_GETMEDIASTATUS = 0xda 2573 TIPC_CFG_SRV = 0x0
2574 WIN_IDENTIFY = 0xec 2574 TIPC_CLUSTER_BITS = 0xc
2575 WIN_IDENTIFY_DMA = 0xee 2575 TIPC_CLUSTER_MASK = 0xfff000
2576 WIN_IDLEIMMEDIATE = 0xe1 2576 TIPC_CLUSTER_OFFSET = 0xc
2577 WIN_INIT = 0x60 2577 TIPC_CLUSTER_SIZE = 0xfff
2578 WIN_MEDIAEJECT = 0xed 2578 TIPC_CONN_SHUTDOWN = 0x5
2579 WIN_MULTREAD = 0xc4 2579 TIPC_CONN_TIMEOUT = 0x82
2580 WIN_MULTREAD_EXT = 0x29 2580 TIPC_CRITICAL_IMPORTANCE = 0x3
2581 WIN_MULTWRITE = 0xc5 2581 TIPC_DESTNAME = 0x3
2582 WIN_MULTWRITE_EXT = 0x39 2582 TIPC_DEST_DROPPABLE = 0x81
2583 WIN_NOP = 0x0 2583 TIPC_ERRINFO = 0x1
2584 WIN_PACKETCMD = 0xa0 2584 TIPC_ERR_NO_NAME = 0x1
2585 WIN_PIDENTIFY = 0xa1 2585 TIPC_ERR_NO_NODE = 0x3
2586 WIN_POSTBOOT = 0xdc 2586 TIPC_ERR_NO_PORT = 0x2
2587 WIN_PREBOOT = 0xdd 2587 TIPC_ERR_OVERLOAD = 0x4
2588 WIN_QUEUED_SERVICE = 0xa2 2588 TIPC_GROUP_JOIN = 0x87
2589 WIN_READ = 0x20 2589 TIPC_GROUP_LEAVE = 0x88
2590 WIN_READDMA = 0xc8 2590 TIPC_GROUP_LOOPBACK = 0x1
2591 WIN_READDMA_EXT = 0x25 2591 TIPC_GROUP_MEMBER_EVTS = 0x2
2592 WIN_READDMA_ONCE = 0xc9 2592 TIPC_HIGH_IMPORTANCE = 0x2
2593 WIN_READDMA_QUEUED = 0xc7 2593 TIPC_IMPORTANCE = 0x7f
2594 WIN_READDMA_QUEUED_EXT = 0x26 2594 TIPC_LINK_STATE = 0x2
2595 WIN_READ_BUFFER = 0xe4 2595 TIPC_LOW_IMPORTANCE = 0x0
2596 WIN_READ_EXT = 0x24 2596 TIPC_MAX_BEARER_NAME = 0x20
2597 WIN_READ_LONG = 0x22 2597 TIPC_MAX_IF_NAME = 0x10
2598 WIN_READ_LONG_ONCE = 0x23 2598 TIPC_MAX_LINK_NAME = 0x44
2599 WIN_READ_NATIVE_MAX = 0xf8 2599 TIPC_MAX_MEDIA_NAME = 0x10
2600 WIN_READ_NATIVE_MAX_EXT = 0x27 2600 TIPC_MAX_USER_MSG_SIZE = 0x101d0
2601 WIN_READ_ONCE = 0x21 2601 TIPC_MCAST_BROADCAST = 0x85
2602 WIN_RECAL = 0x10 2602 TIPC_MCAST_REPLICAST = 0x86
2603 WIN_RESTORE = 0x10 2603 TIPC_MEDIUM_IMPORTANCE = 0x1
2604 WIN_SECURITY_DISABLE = 0xf6 2604 TIPC_NODEID_LEN = 0x10
2605 WIN_SECURITY_ERASE_PREPARE = 0xf3 2605 TIPC_NODELAY = 0x8a
2606 WIN_SECURITY_ERASE_UNIT = 0xf4 2606 TIPC_NODE_BITS = 0xc
2607 WIN_SECURITY_FREEZE_LOCK = 0xf5 2607 TIPC_NODE_MASK = 0xfff
2608 WIN_SECURITY_SET_PASS = 0xf1 2608 TIPC_NODE_OFFSET = 0x0
2609 WIN_SECURITY_UNLOCK = 0xf2 2609 TIPC_NODE_RECVQ_DEPTH = 0x83
2610 WIN_SEEK = 0x70 2610 TIPC_NODE_SIZE = 0xfff
2611 WIN_SETFEATURES = 0xef 2611 TIPC_NODE_STATE = 0x0
2612 WIN_SETIDLE1 = 0xe3 2612 TIPC_OK = 0x0
2613 WIN_SETIDLE2 = 0x97 2613 TIPC_PUBLISHED = 0x1
2614 WIN_SETMULT = 0xc6 2614 TIPC_RESERVED_TYPES = 0x40
2615 WIN_SET_MAX = 0xf9 2615 TIPC_RETDATA = 0x2
2616 WIN_SET_MAX_EXT = 0x37 2616 TIPC_SERVICE_ADDR = 0x2
2617 WIN_SLEEPNOW1 = 0xe6 2617 TIPC_SERVICE_RANGE = 0x1
2618 WIN_SLEEPNOW2 = 0x99 2618 TIPC_SOCKET_ADDR = 0x3
2619 WIN_SMART = 0xb0 2619 TIPC_SOCK_RECVQ_DEPTH = 0x84
2620 WIN_SPECIFY = 0x91 2620 TIPC_SOCK_RECVQ_USED = 0x89
2621 WIN_SRST = 0x8 2621 TIPC_SRC_DROPPABLE = 0x80
2622 WIN_STANDBY = 0xe2 2622 TIPC_SUBSCR_TIMEOUT = 0x3
2623 WIN_STANDBY2 = 0x96 2623 TIPC_SUB_CANCEL = 0x4
2624 WIN_STANDBYNOW1 = 0xe0 2624 TIPC_SUB_PORTS = 0x1
2625 WIN_STANDBYNOW2 = 0x94 2625 TIPC_SUB_SERVICE = 0x2
2626 WIN_VERIFY = 0x40 2626 TIPC_TOP_SRV = 0x1
2627 WIN_VERIFY_EXT = 0x42 2627 TIPC_WAIT_FOREVER = 0xffffffff
2628 WIN_VERIFY_ONCE = 0x41 2628 TIPC_WITHDRAWN = 0x2
2629 WIN_WRITE = 0x30 2629 TIPC_ZONE_BITS = 0x8
2630 WIN_WRITEDMA = 0xca 2630 TIPC_ZONE_CLUSTER_MASK = 0xfffff000
2631 WIN_WRITEDMA_EXT = 0x35 2631 TIPC_ZONE_MASK = 0xff000000
2632 WIN_WRITEDMA_ONCE = 0xcb 2632 TIPC_ZONE_OFFSET = 0x18
2633 WIN_WRITEDMA_QUEUED = 0xcc 2633 TIPC_ZONE_SCOPE = 0x1
2634 WIN_WRITEDMA_QUEUED_EXT = 0x36 2634 TIPC_ZONE_SIZE = 0xff
2635 WIN_WRITE_BUFFER = 0xe8 2635 TMPFS_MAGIC = 0x1021994
2636 WIN_WRITE_EXT = 0x34 2636 TOSTOP = 0x100
2637 WIN_WRITE_LONG = 0x32 2637 TPACKET_ALIGNMENT = 0x10
2638 WIN_WRITE_LONG_ONCE = 0x33 2638 TPACKET_HDRLEN = 0x34
2639 WIN_WRITE_ONCE = 0x31 2639 TP_STATUS_AVAILABLE = 0x0
2640 WIN_WRITE_SAME = 0xe9 2640 TP_STATUS_BLK_TMO = 0x20
2641 WIN_WRITE_VERIFY = 0x3c 2641 TP_STATUS_COPY = 0x2
2642 WNOHANG = 0x1 2642 TP_STATUS_CSUMNOTREADY = 0x8
2643 WNOTHREAD = 0x20000000 2643 TP_STATUS_CSUM_VALID = 0x80
2644 WNOWAIT = 0x1000000 2644 TP_STATUS_KERNEL = 0x0
2645 WORDSIZE = 0x20 2645 TP_STATUS_LOSING = 0x4
2646 WSTOPPED = 0x2 2646 TP_STATUS_SENDING = 0x2
2647 WUNTRACED = 0x2 2647 TP_STATUS_SEND_REQUEST = 0x1
2648 XATTR_CREATE = 0x1 2648 TP_STATUS_TS_RAW_HARDWARE = 0x80000000
2649 XATTR_REPLACE = 0x2 2649 TP_STATUS_TS_SOFTWARE = 0x20000000
2650 XCASE = 0x4 2650 TP_STATUS_TS_SYS_HARDWARE = 0x40000000
2651 XDP_COPY = 0x2 2651 TP_STATUS_USER = 0x1
2652 XDP_FLAGS_DRV_MODE = 0x4 2652 TP_STATUS_VLAN_TPID_VALID = 0x40
2653 XDP_FLAGS_HW_MODE = 0x8 2653 TP_STATUS_VLAN_VALID = 0x10
2654 XDP_FLAGS_MASK = 0xf 2654 TP_STATUS_WRONG_FORMAT = 0x4
2655 XDP_FLAGS_MODES = 0xe 2655 TRACEFS_MAGIC = 0x74726163
2656 XDP_FLAGS_SKB_MODE = 0x2 2656 TS_COMM_LEN = 0x20
2657 XDP_FLAGS_UPDATE_IF_NOEXIST = 0x1 2657 TUNATTACHFILTER = 0x400854d5
2658 XDP_MMAP_OFFSETS = 0x1 2658 TUNDETACHFILTER = 0x400854d6
2659 XDP_PACKET_HEADROOM = 0x100 2659 TUNGETDEVNETNS = 0x54e3
2660 XDP_PGOFF_RX_RING = 0x0 2660 TUNGETFEATURES = 0x800454cf
2661 XDP_PGOFF_TX_RING = 0x80000000 2661 TUNGETFILTER = 0x800854db
2662 XDP_RX_RING = 0x2 2662 TUNGETIFF = 0x800454d2
2663 XDP_SHARED_UMEM = 0x1 2663 TUNGETSNDBUF = 0x800454d3
2664 XDP_STATISTICS = 0x7 2664 TUNGETVNETBE = 0x800454df
2665 XDP_TX_RING = 0x3 2665 TUNGETVNETHDRSZ = 0x800454d7
2666 XDP_UMEM_COMPLETION_RING = 0x6 2666 TUNGETVNETLE = 0x800454dd
2667 XDP_UMEM_FILL_RING = 0x5 2667 TUNSETCARRIER = 0x400454e2
2668 XDP_UMEM_PGOFF_COMPLETION_RING = 0x180000000 2668 TUNSETDEBUG = 0x400454c9
2669 XDP_UMEM_PGOFF_FILL_RING = 0x100000000 2669 TUNSETFILTEREBPF = 0x800454e1
2670 XDP_UMEM_REG = 0x4 2670 TUNSETGROUP = 0x400454ce
2671 XDP_ZEROCOPY = 0x4 2671 TUNSETIFF = 0x400454ca
2672 XENFS_SUPER_MAGIC = 0xabba1974 2672 TUNSETIFINDEX = 0x400454da
2673 XFS_SUPER_MAGIC = 0x58465342 2673 TUNSETLINK = 0x400454cd
2674 XTABS = 0x1800 2674 TUNSETNOCSUM = 0x400454c8
2675 ZSMALLOC_MAGIC = 0x58295829 2675 TUNSETOFFLOAD = 0x400454d0
2676 TUNSETOWNER = 0x400454cc
2677 TUNSETPERSIST = 0x400454cb
2678 TUNSETQUEUE = 0x400454d9
2679 TUNSETSNDBUF = 0x400454d4
2680 TUNSETSTEERINGEBPF = 0x800454e0
2681 TUNSETTXFILTER = 0x400454d1
2682 TUNSETVNETBE = 0x400454de
2683 TUNSETVNETHDRSZ = 0x400454d8
2684 TUNSETVNETLE = 0x400454dc
2685 UBI_IOCATT = 0x40186f40
2686 UBI_IOCDET = 0x40046f41
2687 UBI_IOCEBCH = 0x40044f02
2688 UBI_IOCEBER = 0x40044f01
2689 UBI_IOCEBISMAP = 0x80044f05
2690 UBI_IOCEBMAP = 0x40084f03
2691 UBI_IOCEBUNMAP = 0x40044f04
2692 UBI_IOCMKVOL = 0x40986f00
2693 UBI_IOCRMVOL = 0x40046f01
2694 UBI_IOCRNVOL = 0x51106f03
2695 UBI_IOCRPEB = 0x40046f04
2696 UBI_IOCRSVOL = 0x400c6f02
2697 UBI_IOCSETVOLPROP = 0x40104f06
2698 UBI_IOCSPEB = 0x40046f05
2699 UBI_IOCVOLCRBLK = 0x40804f07
2700 UBI_IOCVOLRMBLK = 0x4f08
2701 UBI_IOCVOLUP = 0x40084f00
2702 UDF_SUPER_MAGIC = 0x15013346
2703 UMOUNT_NOFOLLOW = 0x8
2704 USBDEVICE_SUPER_MAGIC = 0x9fa2
2705 UTIME_NOW = 0x3fffffff
2706 UTIME_OMIT = 0x3ffffffe
2707 V9FS_MAGIC = 0x1021997
2708 VDISCARD = 0xd
2709 VEOF = 0x4
2710 VEOL = 0xb
2711 VEOL2 = 0x10
2712 VERASE = 0x2
2713 VINTR = 0x0
2714 VKILL = 0x3
2715 VLNEXT = 0xf
2716 VMADDR_CID_ANY = 0xffffffff
2717 VMADDR_CID_HOST = 0x2
2718 VMADDR_CID_HYPERVISOR = 0x0
2719 VMADDR_CID_RESERVED = 0x1
2720 VMADDR_PORT_ANY = 0xffffffff
2721 VMIN = 0x6
2722 VM_SOCKETS_INVALID_VERSION = 0xffffffff
2723 VQUIT = 0x1
2724 VREPRINT = 0xc
2725 VSTART = 0x8
2726 VSTOP = 0x9
2727 VSUSP = 0xa
2728 VSWTC = 0x7
2729 VT0 = 0x0
2730 VT1 = 0x4000
2731 VTDLY = 0x4000
2732 VTIME = 0x5
2733 VWERASE = 0xe
2734 WALL = 0x40000000
2735 WCLONE = 0x80000000
2736 WCONTINUED = 0x8
2737 WDIOC_GETBOOTSTATUS = 0x80045702
2738 WDIOC_GETPRETIMEOUT = 0x80045709
2739 WDIOC_GETSTATUS = 0x80045701
2740 WDIOC_GETSUPPORT = 0x80285700
2741 WDIOC_GETTEMP = 0x80045703
2742 WDIOC_GETTIMELEFT = 0x8004570a
2743 WDIOC_GETTIMEOUT = 0x80045707
2744 WDIOC_KEEPALIVE = 0x80045705
2745 WDIOC_SETOPTIONS = 0x80045704
2746 WDIOC_SETPRETIMEOUT = 0xc0045708
2747 WDIOC_SETTIMEOUT = 0xc0045706
2748 WEXITED = 0x4
2749 WIN_ACKMEDIACHANGE = 0xdb
2750 WIN_CHECKPOWERMODE1 = 0xe5
2751 WIN_CHECKPOWERMODE2 = 0x98
2752 WIN_DEVICE_RESET = 0x8
2753 WIN_DIAGNOSE = 0x90
2754 WIN_DOORLOCK = 0xde
2755 WIN_DOORUNLOCK = 0xdf
2756 WIN_DOWNLOAD_MICROCODE = 0x92
2757 WIN_FLUSH_CACHE = 0xe7
2758 WIN_FLUSH_CACHE_EXT = 0xea
2759 WIN_FORMAT = 0x50
2760 WIN_GETMEDIASTATUS = 0xda
2761 WIN_IDENTIFY = 0xec
2762 WIN_IDENTIFY_DMA = 0xee
2763 WIN_IDLEIMMEDIATE = 0xe1
2764 WIN_INIT = 0x60
2765 WIN_MEDIAEJECT = 0xed
2766 WIN_MULTREAD = 0xc4
2767 WIN_MULTREAD_EXT = 0x29
2768 WIN_MULTWRITE = 0xc5
2769 WIN_MULTWRITE_EXT = 0x39
2770 WIN_NOP = 0x0
2771 WIN_PACKETCMD = 0xa0
2772 WIN_PIDENTIFY = 0xa1
2773 WIN_POSTBOOT = 0xdc
2774 WIN_PREBOOT = 0xdd
2775 WIN_QUEUED_SERVICE = 0xa2
2776 WIN_READ = 0x20
2777 WIN_READDMA = 0xc8
2778 WIN_READDMA_EXT = 0x25
2779 WIN_READDMA_ONCE = 0xc9
2780 WIN_READDMA_QUEUED = 0xc7
2781 WIN_READDMA_QUEUED_EXT = 0x26
2782 WIN_READ_BUFFER = 0xe4
2783 WIN_READ_EXT = 0x24
2784 WIN_READ_LONG = 0x22
2785 WIN_READ_LONG_ONCE = 0x23
2786 WIN_READ_NATIVE_MAX = 0xf8
2787 WIN_READ_NATIVE_MAX_EXT = 0x27
2788 WIN_READ_ONCE = 0x21
2789 WIN_RECAL = 0x10
2790 WIN_RESTORE = 0x10
2791 WIN_SECURITY_DISABLE = 0xf6
2792 WIN_SECURITY_ERASE_PREPARE = 0xf3
2793 WIN_SECURITY_ERASE_UNIT = 0xf4
2794 WIN_SECURITY_FREEZE_LOCK = 0xf5
2795 WIN_SECURITY_SET_PASS = 0xf1
2796 WIN_SECURITY_UNLOCK = 0xf2
2797 WIN_SEEK = 0x70
2798 WIN_SETFEATURES = 0xef
2799 WIN_SETIDLE1 = 0xe3
2800 WIN_SETIDLE2 = 0x97
2801 WIN_SETMULT = 0xc6
2802 WIN_SET_MAX = 0xf9
2803 WIN_SET_MAX_EXT = 0x37
2804 WIN_SLEEPNOW1 = 0xe6
2805 WIN_SLEEPNOW2 = 0x99
2806 WIN_SMART = 0xb0
2807 WIN_SPECIFY = 0x91
2808 WIN_SRST = 0x8
2809 WIN_STANDBY = 0xe2
2810 WIN_STANDBY2 = 0x96
2811 WIN_STANDBYNOW1 = 0xe0
2812 WIN_STANDBYNOW2 = 0x94
2813 WIN_VERIFY = 0x40
2814 WIN_VERIFY_EXT = 0x42
2815 WIN_VERIFY_ONCE = 0x41
2816 WIN_WRITE = 0x30
2817 WIN_WRITEDMA = 0xca
2818 WIN_WRITEDMA_EXT = 0x35
2819 WIN_WRITEDMA_ONCE = 0xcb
2820 WIN_WRITEDMA_QUEUED = 0xcc
2821 WIN_WRITEDMA_QUEUED_EXT = 0x36
2822 WIN_WRITE_BUFFER = 0xe8
2823 WIN_WRITE_EXT = 0x34
2824 WIN_WRITE_LONG = 0x32
2825 WIN_WRITE_LONG_ONCE = 0x33
2826 WIN_WRITE_ONCE = 0x31
2827 WIN_WRITE_SAME = 0xe9
2828 WIN_WRITE_VERIFY = 0x3c
2829 WNOHANG = 0x1
2830 WNOTHREAD = 0x20000000
2831 WNOWAIT = 0x1000000
2832 WORDSIZE = 0x20
2833 WSTOPPED = 0x2
2834 WUNTRACED = 0x2
2835 XATTR_CREATE = 0x1
2836 XATTR_REPLACE = 0x2
2837 XCASE = 0x4
2838 XDP_COPY = 0x2
2839 XDP_FLAGS_DRV_MODE = 0x4
2840 XDP_FLAGS_HW_MODE = 0x8
2841 XDP_FLAGS_MASK = 0xf
2842 XDP_FLAGS_MODES = 0xe
2843 XDP_FLAGS_SKB_MODE = 0x2
2844 XDP_FLAGS_UPDATE_IF_NOEXIST = 0x1
2845 XDP_MMAP_OFFSETS = 0x1
2846 XDP_OPTIONS = 0x8
2847 XDP_OPTIONS_ZEROCOPY = 0x1
2848 XDP_PACKET_HEADROOM = 0x100
2849 XDP_PGOFF_RX_RING = 0x0
2850 XDP_PGOFF_TX_RING = 0x80000000
2851 XDP_RING_NEED_WAKEUP = 0x1
2852 XDP_RX_RING = 0x2
2853 XDP_SHARED_UMEM = 0x1
2854 XDP_STATISTICS = 0x7
2855 XDP_TX_RING = 0x3
2856 XDP_UMEM_COMPLETION_RING = 0x6
2857 XDP_UMEM_FILL_RING = 0x5
2858 XDP_UMEM_PGOFF_COMPLETION_RING = 0x180000000
2859 XDP_UMEM_PGOFF_FILL_RING = 0x100000000
2860 XDP_UMEM_REG = 0x4
2861 XDP_UMEM_UNALIGNED_CHUNK_FLAG = 0x1
2862 XDP_USE_NEED_WAKEUP = 0x8
2863 XDP_ZEROCOPY = 0x4
2864 XENFS_SUPER_MAGIC = 0xabba1974
2865 XFS_SUPER_MAGIC = 0x58465342
2866 XTABS = 0x1800
2867 Z3FOLD_MAGIC = 0x33
2868 ZSMALLOC_MAGIC = 0x58295829
2676) 2869)
2677 2870
2678// Errors 2871// Errors
diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go
index 64573bd..1405ea5 100644
--- a/vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go
+++ b/vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go
@@ -11,2653 +11,2848 @@ package unix
11import "syscall" 11import "syscall"
12 12
13const ( 13const (
14 AAFS_MAGIC = 0x5a3c69f0 14 AAFS_MAGIC = 0x5a3c69f0
15 ADFS_SUPER_MAGIC = 0xadf5 15 ADFS_SUPER_MAGIC = 0xadf5
16 AFFS_SUPER_MAGIC = 0xadff 16 AFFS_SUPER_MAGIC = 0xadff
17 AFS_FS_MAGIC = 0x6b414653 17 AFS_FS_MAGIC = 0x6b414653
18 AFS_SUPER_MAGIC = 0x5346414f 18 AFS_SUPER_MAGIC = 0x5346414f
19 AF_ALG = 0x26 19 AF_ALG = 0x26
20 AF_APPLETALK = 0x5 20 AF_APPLETALK = 0x5
21 AF_ASH = 0x12 21 AF_ASH = 0x12
22 AF_ATMPVC = 0x8 22 AF_ATMPVC = 0x8
23 AF_ATMSVC = 0x14 23 AF_ATMSVC = 0x14
24 AF_AX25 = 0x3 24 AF_AX25 = 0x3
25 AF_BLUETOOTH = 0x1f 25 AF_BLUETOOTH = 0x1f
26 AF_BRIDGE = 0x7 26 AF_BRIDGE = 0x7
27 AF_CAIF = 0x25 27 AF_CAIF = 0x25
28 AF_CAN = 0x1d 28 AF_CAN = 0x1d
29 AF_DECnet = 0xc 29 AF_DECnet = 0xc
30 AF_ECONET = 0x13 30 AF_ECONET = 0x13
31 AF_FILE = 0x1 31 AF_FILE = 0x1
32 AF_IB = 0x1b 32 AF_IB = 0x1b
33 AF_IEEE802154 = 0x24 33 AF_IEEE802154 = 0x24
34 AF_INET = 0x2 34 AF_INET = 0x2
35 AF_INET6 = 0xa 35 AF_INET6 = 0xa
36 AF_IPX = 0x4 36 AF_IPX = 0x4
37 AF_IRDA = 0x17 37 AF_IRDA = 0x17
38 AF_ISDN = 0x22 38 AF_ISDN = 0x22
39 AF_IUCV = 0x20 39 AF_IUCV = 0x20
40 AF_KCM = 0x29 40 AF_KCM = 0x29
41 AF_KEY = 0xf 41 AF_KEY = 0xf
42 AF_LLC = 0x1a 42 AF_LLC = 0x1a
43 AF_LOCAL = 0x1 43 AF_LOCAL = 0x1
44 AF_MAX = 0x2d 44 AF_MAX = 0x2d
45 AF_MPLS = 0x1c 45 AF_MPLS = 0x1c
46 AF_NETBEUI = 0xd 46 AF_NETBEUI = 0xd
47 AF_NETLINK = 0x10 47 AF_NETLINK = 0x10
48 AF_NETROM = 0x6 48 AF_NETROM = 0x6
49 AF_NFC = 0x27 49 AF_NFC = 0x27
50 AF_PACKET = 0x11 50 AF_PACKET = 0x11
51 AF_PHONET = 0x23 51 AF_PHONET = 0x23
52 AF_PPPOX = 0x18 52 AF_PPPOX = 0x18
53 AF_QIPCRTR = 0x2a 53 AF_QIPCRTR = 0x2a
54 AF_RDS = 0x15 54 AF_RDS = 0x15
55 AF_ROSE = 0xb 55 AF_ROSE = 0xb
56 AF_ROUTE = 0x10 56 AF_ROUTE = 0x10
57 AF_RXRPC = 0x21 57 AF_RXRPC = 0x21
58 AF_SECURITY = 0xe 58 AF_SECURITY = 0xe
59 AF_SMC = 0x2b 59 AF_SMC = 0x2b
60 AF_SNA = 0x16 60 AF_SNA = 0x16
61 AF_TIPC = 0x1e 61 AF_TIPC = 0x1e
62 AF_UNIX = 0x1 62 AF_UNIX = 0x1
63 AF_UNSPEC = 0x0 63 AF_UNSPEC = 0x0
64 AF_VSOCK = 0x28 64 AF_VSOCK = 0x28
65 AF_WANPIPE = 0x19 65 AF_WANPIPE = 0x19
66 AF_X25 = 0x9 66 AF_X25 = 0x9
67 AF_XDP = 0x2c 67 AF_XDP = 0x2c
68 ALG_OP_DECRYPT = 0x0 68 ALG_OP_DECRYPT = 0x0
69 ALG_OP_ENCRYPT = 0x1 69 ALG_OP_ENCRYPT = 0x1
70 ALG_SET_AEAD_ASSOCLEN = 0x4 70 ALG_SET_AEAD_ASSOCLEN = 0x4
71 ALG_SET_AEAD_AUTHSIZE = 0x5 71 ALG_SET_AEAD_AUTHSIZE = 0x5
72 ALG_SET_IV = 0x2 72 ALG_SET_IV = 0x2
73 ALG_SET_KEY = 0x1 73 ALG_SET_KEY = 0x1
74 ALG_SET_OP = 0x3 74 ALG_SET_OP = 0x3
75 ANON_INODE_FS_MAGIC = 0x9041934 75 ANON_INODE_FS_MAGIC = 0x9041934
76 ARPHRD_6LOWPAN = 0x339 76 ARPHRD_6LOWPAN = 0x339
77 ARPHRD_ADAPT = 0x108 77 ARPHRD_ADAPT = 0x108
78 ARPHRD_APPLETLK = 0x8 78 ARPHRD_APPLETLK = 0x8
79 ARPHRD_ARCNET = 0x7 79 ARPHRD_ARCNET = 0x7
80 ARPHRD_ASH = 0x30d 80 ARPHRD_ASH = 0x30d
81 ARPHRD_ATM = 0x13 81 ARPHRD_ATM = 0x13
82 ARPHRD_AX25 = 0x3 82 ARPHRD_AX25 = 0x3
83 ARPHRD_BIF = 0x307 83 ARPHRD_BIF = 0x307
84 ARPHRD_CAIF = 0x336 84 ARPHRD_CAIF = 0x336
85 ARPHRD_CAN = 0x118 85 ARPHRD_CAN = 0x118
86 ARPHRD_CHAOS = 0x5 86 ARPHRD_CHAOS = 0x5
87 ARPHRD_CISCO = 0x201 87 ARPHRD_CISCO = 0x201
88 ARPHRD_CSLIP = 0x101 88 ARPHRD_CSLIP = 0x101
89 ARPHRD_CSLIP6 = 0x103 89 ARPHRD_CSLIP6 = 0x103
90 ARPHRD_DDCMP = 0x205 90 ARPHRD_DDCMP = 0x205
91 ARPHRD_DLCI = 0xf 91 ARPHRD_DLCI = 0xf
92 ARPHRD_ECONET = 0x30e 92 ARPHRD_ECONET = 0x30e
93 ARPHRD_EETHER = 0x2 93 ARPHRD_EETHER = 0x2
94 ARPHRD_ETHER = 0x1 94 ARPHRD_ETHER = 0x1
95 ARPHRD_EUI64 = 0x1b 95 ARPHRD_EUI64 = 0x1b
96 ARPHRD_FCAL = 0x311 96 ARPHRD_FCAL = 0x311
97 ARPHRD_FCFABRIC = 0x313 97 ARPHRD_FCFABRIC = 0x313
98 ARPHRD_FCPL = 0x312 98 ARPHRD_FCPL = 0x312
99 ARPHRD_FCPP = 0x310 99 ARPHRD_FCPP = 0x310
100 ARPHRD_FDDI = 0x306 100 ARPHRD_FDDI = 0x306
101 ARPHRD_FRAD = 0x302 101 ARPHRD_FRAD = 0x302
102 ARPHRD_HDLC = 0x201 102 ARPHRD_HDLC = 0x201
103 ARPHRD_HIPPI = 0x30c 103 ARPHRD_HIPPI = 0x30c
104 ARPHRD_HWX25 = 0x110 104 ARPHRD_HWX25 = 0x110
105 ARPHRD_IEEE1394 = 0x18 105 ARPHRD_IEEE1394 = 0x18
106 ARPHRD_IEEE802 = 0x6 106 ARPHRD_IEEE802 = 0x6
107 ARPHRD_IEEE80211 = 0x321 107 ARPHRD_IEEE80211 = 0x321
108 ARPHRD_IEEE80211_PRISM = 0x322 108 ARPHRD_IEEE80211_PRISM = 0x322
109 ARPHRD_IEEE80211_RADIOTAP = 0x323 109 ARPHRD_IEEE80211_RADIOTAP = 0x323
110 ARPHRD_IEEE802154 = 0x324 110 ARPHRD_IEEE802154 = 0x324
111 ARPHRD_IEEE802154_MONITOR = 0x325 111 ARPHRD_IEEE802154_MONITOR = 0x325
112 ARPHRD_IEEE802_TR = 0x320 112 ARPHRD_IEEE802_TR = 0x320
113 ARPHRD_INFINIBAND = 0x20 113 ARPHRD_INFINIBAND = 0x20
114 ARPHRD_IP6GRE = 0x337 114 ARPHRD_IP6GRE = 0x337
115 ARPHRD_IPDDP = 0x309 115 ARPHRD_IPDDP = 0x309
116 ARPHRD_IPGRE = 0x30a 116 ARPHRD_IPGRE = 0x30a
117 ARPHRD_IRDA = 0x30f 117 ARPHRD_IRDA = 0x30f
118 ARPHRD_LAPB = 0x204 118 ARPHRD_LAPB = 0x204
119 ARPHRD_LOCALTLK = 0x305 119 ARPHRD_LOCALTLK = 0x305
120 ARPHRD_LOOPBACK = 0x304 120 ARPHRD_LOOPBACK = 0x304
121 ARPHRD_METRICOM = 0x17 121 ARPHRD_METRICOM = 0x17
122 ARPHRD_NETLINK = 0x338 122 ARPHRD_NETLINK = 0x338
123 ARPHRD_NETROM = 0x0 123 ARPHRD_NETROM = 0x0
124 ARPHRD_NONE = 0xfffe 124 ARPHRD_NONE = 0xfffe
125 ARPHRD_PHONET = 0x334 125 ARPHRD_PHONET = 0x334
126 ARPHRD_PHONET_PIPE = 0x335 126 ARPHRD_PHONET_PIPE = 0x335
127 ARPHRD_PIMREG = 0x30b 127 ARPHRD_PIMREG = 0x30b
128 ARPHRD_PPP = 0x200 128 ARPHRD_PPP = 0x200
129 ARPHRD_PRONET = 0x4 129 ARPHRD_PRONET = 0x4
130 ARPHRD_RAWHDLC = 0x206 130 ARPHRD_RAWHDLC = 0x206
131 ARPHRD_RAWIP = 0x207 131 ARPHRD_RAWIP = 0x207
132 ARPHRD_ROSE = 0x10e 132 ARPHRD_ROSE = 0x10e
133 ARPHRD_RSRVD = 0x104 133 ARPHRD_RSRVD = 0x104
134 ARPHRD_SIT = 0x308 134 ARPHRD_SIT = 0x308
135 ARPHRD_SKIP = 0x303 135 ARPHRD_SKIP = 0x303
136 ARPHRD_SLIP = 0x100 136 ARPHRD_SLIP = 0x100
137 ARPHRD_SLIP6 = 0x102 137 ARPHRD_SLIP6 = 0x102
138 ARPHRD_TUNNEL = 0x300 138 ARPHRD_TUNNEL = 0x300
139 ARPHRD_TUNNEL6 = 0x301 139 ARPHRD_TUNNEL6 = 0x301
140 ARPHRD_VOID = 0xffff 140 ARPHRD_VOID = 0xffff
141 ARPHRD_VSOCKMON = 0x33a 141 ARPHRD_VSOCKMON = 0x33a
142 ARPHRD_X25 = 0x10f 142 ARPHRD_X25 = 0x10f
143 AUTOFS_SUPER_MAGIC = 0x187 143 AUTOFS_SUPER_MAGIC = 0x187
144 B0 = 0x0 144 B0 = 0x0
145 B1000000 = 0x1008 145 B1000000 = 0x1008
146 B110 = 0x3 146 B110 = 0x3
147 B115200 = 0x1002 147 B115200 = 0x1002
148 B1152000 = 0x1009 148 B1152000 = 0x1009
149 B1200 = 0x9 149 B1200 = 0x9
150 B134 = 0x4 150 B134 = 0x4
151 B150 = 0x5 151 B150 = 0x5
152 B1500000 = 0x100a 152 B1500000 = 0x100a
153 B1800 = 0xa 153 B1800 = 0xa
154 B19200 = 0xe 154 B19200 = 0xe
155 B200 = 0x6 155 B200 = 0x6
156 B2000000 = 0x100b 156 B2000000 = 0x100b
157 B230400 = 0x1003 157 B230400 = 0x1003
158 B2400 = 0xb 158 B2400 = 0xb
159 B2500000 = 0x100c 159 B2500000 = 0x100c
160 B300 = 0x7 160 B300 = 0x7
161 B3000000 = 0x100d 161 B3000000 = 0x100d
162 B3500000 = 0x100e 162 B3500000 = 0x100e
163 B38400 = 0xf 163 B38400 = 0xf
164 B4000000 = 0x100f 164 B4000000 = 0x100f
165 B460800 = 0x1004 165 B460800 = 0x1004
166 B4800 = 0xc 166 B4800 = 0xc
167 B50 = 0x1 167 B50 = 0x1
168 B500000 = 0x1005 168 B500000 = 0x1005
169 B57600 = 0x1001 169 B57600 = 0x1001
170 B576000 = 0x1006 170 B576000 = 0x1006
171 B600 = 0x8 171 B600 = 0x8
172 B75 = 0x2 172 B75 = 0x2
173 B921600 = 0x1007 173 B921600 = 0x1007
174 B9600 = 0xd 174 B9600 = 0xd
175 BALLOON_KVM_MAGIC = 0x13661366 175 BALLOON_KVM_MAGIC = 0x13661366
176 BDEVFS_MAGIC = 0x62646576 176 BDEVFS_MAGIC = 0x62646576
177 BINDERFS_SUPER_MAGIC = 0x6c6f6f70 177 BINDERFS_SUPER_MAGIC = 0x6c6f6f70
178 BINFMTFS_MAGIC = 0x42494e4d 178 BINFMTFS_MAGIC = 0x42494e4d
179 BLKBSZGET = 0x80081270 179 BLKBSZGET = 0x80081270
180 BLKBSZSET = 0x40081271 180 BLKBSZSET = 0x40081271
181 BLKFLSBUF = 0x1261 181 BLKFLSBUF = 0x1261
182 BLKFRAGET = 0x1265 182 BLKFRAGET = 0x1265
183 BLKFRASET = 0x1264 183 BLKFRASET = 0x1264
184 BLKGETSIZE = 0x1260 184 BLKGETSIZE = 0x1260
185 BLKGETSIZE64 = 0x80081272 185 BLKGETSIZE64 = 0x80081272
186 BLKPBSZGET = 0x127b 186 BLKPBSZGET = 0x127b
187 BLKRAGET = 0x1263 187 BLKRAGET = 0x1263
188 BLKRASET = 0x1262 188 BLKRASET = 0x1262
189 BLKROGET = 0x125e 189 BLKROGET = 0x125e
190 BLKROSET = 0x125d 190 BLKROSET = 0x125d
191 BLKRRPART = 0x125f 191 BLKRRPART = 0x125f
192 BLKSECTGET = 0x1267 192 BLKSECTGET = 0x1267
193 BLKSECTSET = 0x1266 193 BLKSECTSET = 0x1266
194 BLKSSZGET = 0x1268 194 BLKSSZGET = 0x1268
195 BOTHER = 0x1000 195 BOTHER = 0x1000
196 BPF_A = 0x10 196 BPF_A = 0x10
197 BPF_ABS = 0x20 197 BPF_ABS = 0x20
198 BPF_ADD = 0x0 198 BPF_ADD = 0x0
199 BPF_ADJ_ROOM_ENCAP_L2_MASK = 0xff 199 BPF_ADJ_ROOM_ENCAP_L2_MASK = 0xff
200 BPF_ADJ_ROOM_ENCAP_L2_SHIFT = 0x38 200 BPF_ADJ_ROOM_ENCAP_L2_SHIFT = 0x38
201 BPF_ALU = 0x4 201 BPF_ALU = 0x4
202 BPF_ALU64 = 0x7 202 BPF_ALU64 = 0x7
203 BPF_AND = 0x50 203 BPF_AND = 0x50
204 BPF_ANY = 0x0 204 BPF_ANY = 0x0
205 BPF_ARSH = 0xc0 205 BPF_ARSH = 0xc0
206 BPF_B = 0x10 206 BPF_B = 0x10
207 BPF_BUILD_ID_SIZE = 0x14 207 BPF_BUILD_ID_SIZE = 0x14
208 BPF_CALL = 0x80 208 BPF_CALL = 0x80
209 BPF_DEVCG_ACC_MKNOD = 0x1 209 BPF_DEVCG_ACC_MKNOD = 0x1
210 BPF_DEVCG_ACC_READ = 0x2 210 BPF_DEVCG_ACC_READ = 0x2
211 BPF_DEVCG_ACC_WRITE = 0x4 211 BPF_DEVCG_ACC_WRITE = 0x4
212 BPF_DEVCG_DEV_BLOCK = 0x1 212 BPF_DEVCG_DEV_BLOCK = 0x1
213 BPF_DEVCG_DEV_CHAR = 0x2 213 BPF_DEVCG_DEV_CHAR = 0x2
214 BPF_DIV = 0x30 214 BPF_DIV = 0x30
215 BPF_DW = 0x18 215 BPF_DW = 0x18
216 BPF_END = 0xd0 216 BPF_END = 0xd0
217 BPF_EXIST = 0x2 217 BPF_EXIST = 0x2
218 BPF_EXIT = 0x90 218 BPF_EXIT = 0x90
219 BPF_FROM_BE = 0x8 219 BPF_FLOW_DISSECTOR_F_PARSE_1ST_FRAG = 0x1
220 BPF_FROM_LE = 0x0 220 BPF_FLOW_DISSECTOR_F_STOP_AT_ENCAP = 0x4
221 BPF_FS_MAGIC = 0xcafe4a11 221 BPF_FLOW_DISSECTOR_F_STOP_AT_FLOW_LABEL = 0x2
222 BPF_F_ADJ_ROOM_ENCAP_L3_IPV4 = 0x2 222 BPF_FROM_BE = 0x8
223 BPF_F_ADJ_ROOM_ENCAP_L3_IPV6 = 0x4 223 BPF_FROM_LE = 0x0
224 BPF_F_ADJ_ROOM_ENCAP_L4_GRE = 0x8 224 BPF_FS_MAGIC = 0xcafe4a11
225 BPF_F_ADJ_ROOM_ENCAP_L4_UDP = 0x10 225 BPF_F_ADJ_ROOM_ENCAP_L3_IPV4 = 0x2
226 BPF_F_ADJ_ROOM_FIXED_GSO = 0x1 226 BPF_F_ADJ_ROOM_ENCAP_L3_IPV6 = 0x4
227 BPF_F_ALLOW_MULTI = 0x2 227 BPF_F_ADJ_ROOM_ENCAP_L4_GRE = 0x8
228 BPF_F_ALLOW_OVERRIDE = 0x1 228 BPF_F_ADJ_ROOM_ENCAP_L4_UDP = 0x10
229 BPF_F_ANY_ALIGNMENT = 0x2 229 BPF_F_ADJ_ROOM_FIXED_GSO = 0x1
230 BPF_F_CTXLEN_MASK = 0xfffff00000000 230 BPF_F_ALLOW_MULTI = 0x2
231 BPF_F_CURRENT_CPU = 0xffffffff 231 BPF_F_ALLOW_OVERRIDE = 0x1
232 BPF_F_CURRENT_NETNS = -0x1 232 BPF_F_ANY_ALIGNMENT = 0x2
233 BPF_F_DONT_FRAGMENT = 0x4 233 BPF_F_CLONE = 0x200
234 BPF_F_FAST_STACK_CMP = 0x200 234 BPF_F_CTXLEN_MASK = 0xfffff00000000
235 BPF_F_HDR_FIELD_MASK = 0xf 235 BPF_F_CURRENT_CPU = 0xffffffff
236 BPF_F_INDEX_MASK = 0xffffffff 236 BPF_F_CURRENT_NETNS = -0x1
237 BPF_F_INGRESS = 0x1 237 BPF_F_DONT_FRAGMENT = 0x4
238 BPF_F_INVALIDATE_HASH = 0x2 238 BPF_F_FAST_STACK_CMP = 0x200
239 BPF_F_LOCK = 0x4 239 BPF_F_HDR_FIELD_MASK = 0xf
240 BPF_F_MARK_ENFORCE = 0x40 240 BPF_F_INDEX_MASK = 0xffffffff
241 BPF_F_MARK_MANGLED_0 = 0x20 241 BPF_F_INGRESS = 0x1
242 BPF_F_NO_COMMON_LRU = 0x2 242 BPF_F_INVALIDATE_HASH = 0x2
243 BPF_F_NO_PREALLOC = 0x1 243 BPF_F_LOCK = 0x4
244 BPF_F_NUMA_NODE = 0x4 244 BPF_F_MARK_ENFORCE = 0x40
245 BPF_F_PSEUDO_HDR = 0x10 245 BPF_F_MARK_MANGLED_0 = 0x20
246 BPF_F_QUERY_EFFECTIVE = 0x1 246 BPF_F_MMAPABLE = 0x400
247 BPF_F_RDONLY = 0x8 247 BPF_F_NO_COMMON_LRU = 0x2
248 BPF_F_RDONLY_PROG = 0x80 248 BPF_F_NO_PREALLOC = 0x1
249 BPF_F_RECOMPUTE_CSUM = 0x1 249 BPF_F_NUMA_NODE = 0x4
250 BPF_F_REUSE_STACKID = 0x400 250 BPF_F_PSEUDO_HDR = 0x10
251 BPF_F_SEQ_NUMBER = 0x8 251 BPF_F_QUERY_EFFECTIVE = 0x1
252 BPF_F_SKIP_FIELD_MASK = 0xff 252 BPF_F_RDONLY = 0x8
253 BPF_F_STACK_BUILD_ID = 0x20 253 BPF_F_RDONLY_PROG = 0x80
254 BPF_F_STRICT_ALIGNMENT = 0x1 254 BPF_F_RECOMPUTE_CSUM = 0x1
255 BPF_F_SYSCTL_BASE_NAME = 0x1 255 BPF_F_REUSE_STACKID = 0x400
256 BPF_F_TUNINFO_IPV6 = 0x1 256 BPF_F_SEQ_NUMBER = 0x8
257 BPF_F_USER_BUILD_ID = 0x800 257 BPF_F_SKIP_FIELD_MASK = 0xff
258 BPF_F_USER_STACK = 0x100 258 BPF_F_STACK_BUILD_ID = 0x20
259 BPF_F_WRONLY = 0x10 259 BPF_F_STRICT_ALIGNMENT = 0x1
260 BPF_F_WRONLY_PROG = 0x100 260 BPF_F_SYSCTL_BASE_NAME = 0x1
261 BPF_F_ZERO_CSUM_TX = 0x2 261 BPF_F_TEST_RND_HI32 = 0x4
262 BPF_F_ZERO_SEED = 0x40 262 BPF_F_TEST_STATE_FREQ = 0x8
263 BPF_H = 0x8 263 BPF_F_TUNINFO_IPV6 = 0x1
264 BPF_IMM = 0x0 264 BPF_F_USER_BUILD_ID = 0x800
265 BPF_IND = 0x40 265 BPF_F_USER_STACK = 0x100
266 BPF_JA = 0x0 266 BPF_F_WRONLY = 0x10
267 BPF_JEQ = 0x10 267 BPF_F_WRONLY_PROG = 0x100
268 BPF_JGE = 0x30 268 BPF_F_ZERO_CSUM_TX = 0x2
269 BPF_JGT = 0x20 269 BPF_F_ZERO_SEED = 0x40
270 BPF_JLE = 0xb0 270 BPF_H = 0x8
271 BPF_JLT = 0xa0 271 BPF_IMM = 0x0
272 BPF_JMP = 0x5 272 BPF_IND = 0x40
273 BPF_JMP32 = 0x6 273 BPF_JA = 0x0
274 BPF_JNE = 0x50 274 BPF_JEQ = 0x10
275 BPF_JSET = 0x40 275 BPF_JGE = 0x30
276 BPF_JSGE = 0x70 276 BPF_JGT = 0x20
277 BPF_JSGT = 0x60 277 BPF_JLE = 0xb0
278 BPF_JSLE = 0xd0 278 BPF_JLT = 0xa0
279 BPF_JSLT = 0xc0 279 BPF_JMP = 0x5
280 BPF_K = 0x0 280 BPF_JMP32 = 0x6
281 BPF_LD = 0x0 281 BPF_JNE = 0x50
282 BPF_LDX = 0x1 282 BPF_JSET = 0x40
283 BPF_LEN = 0x80 283 BPF_JSGE = 0x70
284 BPF_LL_OFF = -0x200000 284 BPF_JSGT = 0x60
285 BPF_LSH = 0x60 285 BPF_JSLE = 0xd0
286 BPF_MAJOR_VERSION = 0x1 286 BPF_JSLT = 0xc0
287 BPF_MAXINSNS = 0x1000 287 BPF_K = 0x0
288 BPF_MEM = 0x60 288 BPF_LD = 0x0
289 BPF_MEMWORDS = 0x10 289 BPF_LDX = 0x1
290 BPF_MINOR_VERSION = 0x1 290 BPF_LEN = 0x80
291 BPF_MISC = 0x7 291 BPF_LL_OFF = -0x200000
292 BPF_MOD = 0x90 292 BPF_LSH = 0x60
293 BPF_MOV = 0xb0 293 BPF_MAJOR_VERSION = 0x1
294 BPF_MSH = 0xa0 294 BPF_MAXINSNS = 0x1000
295 BPF_MUL = 0x20 295 BPF_MEM = 0x60
296 BPF_NEG = 0x80 296 BPF_MEMWORDS = 0x10
297 BPF_NET_OFF = -0x100000 297 BPF_MINOR_VERSION = 0x1
298 BPF_NOEXIST = 0x1 298 BPF_MISC = 0x7
299 BPF_OBJ_NAME_LEN = 0x10 299 BPF_MOD = 0x90
300 BPF_OR = 0x40 300 BPF_MOV = 0xb0
301 BPF_PSEUDO_CALL = 0x1 301 BPF_MSH = 0xa0
302 BPF_PSEUDO_MAP_FD = 0x1 302 BPF_MUL = 0x20
303 BPF_PSEUDO_MAP_VALUE = 0x2 303 BPF_NEG = 0x80
304 BPF_RET = 0x6 304 BPF_NET_OFF = -0x100000
305 BPF_RSH = 0x70 305 BPF_NOEXIST = 0x1
306 BPF_SK_STORAGE_GET_F_CREATE = 0x1 306 BPF_OBJ_NAME_LEN = 0x10
307 BPF_SOCK_OPS_ALL_CB_FLAGS = 0x7 307 BPF_OR = 0x40
308 BPF_SOCK_OPS_RETRANS_CB_FLAG = 0x2 308 BPF_PSEUDO_CALL = 0x1
309 BPF_SOCK_OPS_RTO_CB_FLAG = 0x1 309 BPF_PSEUDO_MAP_FD = 0x1
310 BPF_SOCK_OPS_STATE_CB_FLAG = 0x4 310 BPF_PSEUDO_MAP_VALUE = 0x2
311 BPF_ST = 0x2 311 BPF_RET = 0x6
312 BPF_STX = 0x3 312 BPF_RSH = 0x70
313 BPF_SUB = 0x10 313 BPF_SK_STORAGE_GET_F_CREATE = 0x1
314 BPF_TAG_SIZE = 0x8 314 BPF_SOCK_OPS_ALL_CB_FLAGS = 0xf
315 BPF_TAX = 0x0 315 BPF_SOCK_OPS_RETRANS_CB_FLAG = 0x2
316 BPF_TO_BE = 0x8 316 BPF_SOCK_OPS_RTO_CB_FLAG = 0x1
317 BPF_TO_LE = 0x0 317 BPF_SOCK_OPS_RTT_CB_FLAG = 0x8
318 BPF_TXA = 0x80 318 BPF_SOCK_OPS_STATE_CB_FLAG = 0x4
319 BPF_W = 0x0 319 BPF_ST = 0x2
320 BPF_X = 0x8 320 BPF_STX = 0x3
321 BPF_XADD = 0xc0 321 BPF_SUB = 0x10
322 BPF_XOR = 0xa0 322 BPF_TAG_SIZE = 0x8
323 BRKINT = 0x2 323 BPF_TAX = 0x0
324 BS0 = 0x0 324 BPF_TO_BE = 0x8
325 BS1 = 0x2000 325 BPF_TO_LE = 0x0
326 BSDLY = 0x2000 326 BPF_TXA = 0x80
327 BTRFS_SUPER_MAGIC = 0x9123683e 327 BPF_W = 0x0
328 BTRFS_TEST_MAGIC = 0x73727279 328 BPF_X = 0x8
329 CAN_BCM = 0x2 329 BPF_XADD = 0xc0
330 CAN_EFF_FLAG = 0x80000000 330 BPF_XOR = 0xa0
331 CAN_EFF_ID_BITS = 0x1d 331 BRKINT = 0x2
332 CAN_EFF_MASK = 0x1fffffff 332 BS0 = 0x0
333 CAN_ERR_FLAG = 0x20000000 333 BS1 = 0x2000
334 CAN_ERR_MASK = 0x1fffffff 334 BSDLY = 0x2000
335 CAN_INV_FILTER = 0x20000000 335 BTRFS_SUPER_MAGIC = 0x9123683e
336 CAN_ISOTP = 0x6 336 BTRFS_TEST_MAGIC = 0x73727279
337 CAN_MAX_DLC = 0x8 337 CAN_BCM = 0x2
338 CAN_MAX_DLEN = 0x8 338 CAN_EFF_FLAG = 0x80000000
339 CAN_MCNET = 0x5 339 CAN_EFF_ID_BITS = 0x1d
340 CAN_MTU = 0x10 340 CAN_EFF_MASK = 0x1fffffff
341 CAN_NPROTO = 0x7 341 CAN_ERR_FLAG = 0x20000000
342 CAN_RAW = 0x1 342 CAN_ERR_MASK = 0x1fffffff
343 CAN_RAW_FILTER_MAX = 0x200 343 CAN_INV_FILTER = 0x20000000
344 CAN_RTR_FLAG = 0x40000000 344 CAN_ISOTP = 0x6
345 CAN_SFF_ID_BITS = 0xb 345 CAN_J1939 = 0x7
346 CAN_SFF_MASK = 0x7ff 346 CAN_MAX_DLC = 0x8
347 CAN_TP16 = 0x3 347 CAN_MAX_DLEN = 0x8
348 CAN_TP20 = 0x4 348 CAN_MCNET = 0x5
349 CAP_AUDIT_CONTROL = 0x1e 349 CAN_MTU = 0x10
350 CAP_AUDIT_READ = 0x25 350 CAN_NPROTO = 0x8
351 CAP_AUDIT_WRITE = 0x1d 351 CAN_RAW = 0x1
352 CAP_BLOCK_SUSPEND = 0x24 352 CAN_RAW_FILTER_MAX = 0x200
353 CAP_CHOWN = 0x0 353 CAN_RTR_FLAG = 0x40000000
354 CAP_DAC_OVERRIDE = 0x1 354 CAN_SFF_ID_BITS = 0xb
355 CAP_DAC_READ_SEARCH = 0x2 355 CAN_SFF_MASK = 0x7ff
356 CAP_FOWNER = 0x3 356 CAN_TP16 = 0x3
357 CAP_FSETID = 0x4 357 CAN_TP20 = 0x4
358 CAP_IPC_LOCK = 0xe 358 CAP_AUDIT_CONTROL = 0x1e
359 CAP_IPC_OWNER = 0xf 359 CAP_AUDIT_READ = 0x25
360 CAP_KILL = 0x5 360 CAP_AUDIT_WRITE = 0x1d
361 CAP_LAST_CAP = 0x25 361 CAP_BLOCK_SUSPEND = 0x24
362 CAP_LEASE = 0x1c 362 CAP_CHOWN = 0x0
363 CAP_LINUX_IMMUTABLE = 0x9 363 CAP_DAC_OVERRIDE = 0x1
364 CAP_MAC_ADMIN = 0x21 364 CAP_DAC_READ_SEARCH = 0x2
365 CAP_MAC_OVERRIDE = 0x20 365 CAP_FOWNER = 0x3
366 CAP_MKNOD = 0x1b 366 CAP_FSETID = 0x4
367 CAP_NET_ADMIN = 0xc 367 CAP_IPC_LOCK = 0xe
368 CAP_NET_BIND_SERVICE = 0xa 368 CAP_IPC_OWNER = 0xf
369 CAP_NET_BROADCAST = 0xb 369 CAP_KILL = 0x5
370 CAP_NET_RAW = 0xd 370 CAP_LAST_CAP = 0x25
371 CAP_SETFCAP = 0x1f 371 CAP_LEASE = 0x1c
372 CAP_SETGID = 0x6 372 CAP_LINUX_IMMUTABLE = 0x9
373 CAP_SETPCAP = 0x8 373 CAP_MAC_ADMIN = 0x21
374 CAP_SETUID = 0x7 374 CAP_MAC_OVERRIDE = 0x20
375 CAP_SYSLOG = 0x22 375 CAP_MKNOD = 0x1b
376 CAP_SYS_ADMIN = 0x15 376 CAP_NET_ADMIN = 0xc
377 CAP_SYS_BOOT = 0x16 377 CAP_NET_BIND_SERVICE = 0xa
378 CAP_SYS_CHROOT = 0x12 378 CAP_NET_BROADCAST = 0xb
379 CAP_SYS_MODULE = 0x10 379 CAP_NET_RAW = 0xd
380 CAP_SYS_NICE = 0x17 380 CAP_SETFCAP = 0x1f
381 CAP_SYS_PACCT = 0x14 381 CAP_SETGID = 0x6
382 CAP_SYS_PTRACE = 0x13 382 CAP_SETPCAP = 0x8
383 CAP_SYS_RAWIO = 0x11 383 CAP_SETUID = 0x7
384 CAP_SYS_RESOURCE = 0x18 384 CAP_SYSLOG = 0x22
385 CAP_SYS_TIME = 0x19 385 CAP_SYS_ADMIN = 0x15
386 CAP_SYS_TTY_CONFIG = 0x1a 386 CAP_SYS_BOOT = 0x16
387 CAP_WAKE_ALARM = 0x23 387 CAP_SYS_CHROOT = 0x12
388 CBAUD = 0x100f 388 CAP_SYS_MODULE = 0x10
389 CBAUDEX = 0x1000 389 CAP_SYS_NICE = 0x17
390 CFLUSH = 0xf 390 CAP_SYS_PACCT = 0x14
391 CGROUP2_SUPER_MAGIC = 0x63677270 391 CAP_SYS_PTRACE = 0x13
392 CGROUP_SUPER_MAGIC = 0x27e0eb 392 CAP_SYS_RAWIO = 0x11
393 CIBAUD = 0x100f0000 393 CAP_SYS_RESOURCE = 0x18
394 CLOCAL = 0x800 394 CAP_SYS_TIME = 0x19
395 CLOCK_BOOTTIME = 0x7 395 CAP_SYS_TTY_CONFIG = 0x1a
396 CLOCK_BOOTTIME_ALARM = 0x9 396 CAP_WAKE_ALARM = 0x23
397 CLOCK_DEFAULT = 0x0 397 CBAUD = 0x100f
398 CLOCK_EXT = 0x1 398 CBAUDEX = 0x1000
399 CLOCK_INT = 0x2 399 CFLUSH = 0xf
400 CLOCK_MONOTONIC = 0x1 400 CGROUP2_SUPER_MAGIC = 0x63677270
401 CLOCK_MONOTONIC_COARSE = 0x6 401 CGROUP_SUPER_MAGIC = 0x27e0eb
402 CLOCK_MONOTONIC_RAW = 0x4 402 CIBAUD = 0x100f0000
403 CLOCK_PROCESS_CPUTIME_ID = 0x2 403 CLOCAL = 0x800
404 CLOCK_REALTIME = 0x0 404 CLOCK_BOOTTIME = 0x7
405 CLOCK_REALTIME_ALARM = 0x8 405 CLOCK_BOOTTIME_ALARM = 0x9
406 CLOCK_REALTIME_COARSE = 0x5 406 CLOCK_DEFAULT = 0x0
407 CLOCK_TAI = 0xb 407 CLOCK_EXT = 0x1
408 CLOCK_THREAD_CPUTIME_ID = 0x3 408 CLOCK_INT = 0x2
409 CLOCK_TXFROMRX = 0x4 409 CLOCK_MONOTONIC = 0x1
410 CLOCK_TXINT = 0x3 410 CLOCK_MONOTONIC_COARSE = 0x6
411 CLONE_CHILD_CLEARTID = 0x200000 411 CLOCK_MONOTONIC_RAW = 0x4
412 CLONE_CHILD_SETTID = 0x1000000 412 CLOCK_PROCESS_CPUTIME_ID = 0x2
413 CLONE_DETACHED = 0x400000 413 CLOCK_REALTIME = 0x0
414 CLONE_FILES = 0x400 414 CLOCK_REALTIME_ALARM = 0x8
415 CLONE_FS = 0x200 415 CLOCK_REALTIME_COARSE = 0x5
416 CLONE_IO = 0x80000000 416 CLOCK_TAI = 0xb
417 CLONE_NEWCGROUP = 0x2000000 417 CLOCK_THREAD_CPUTIME_ID = 0x3
418 CLONE_NEWIPC = 0x8000000 418 CLOCK_TXFROMRX = 0x4
419 CLONE_NEWNET = 0x40000000 419 CLOCK_TXINT = 0x3
420 CLONE_NEWNS = 0x20000 420 CLONE_ARGS_SIZE_VER0 = 0x40
421 CLONE_NEWPID = 0x20000000 421 CLONE_ARGS_SIZE_VER1 = 0x50
422 CLONE_NEWUSER = 0x10000000 422 CLONE_CHILD_CLEARTID = 0x200000
423 CLONE_NEWUTS = 0x4000000 423 CLONE_CHILD_SETTID = 0x1000000
424 CLONE_PARENT = 0x8000 424 CLONE_CLEAR_SIGHAND = 0x100000000
425 CLONE_PARENT_SETTID = 0x100000 425 CLONE_DETACHED = 0x400000
426 CLONE_PIDFD = 0x1000 426 CLONE_FILES = 0x400
427 CLONE_PTRACE = 0x2000 427 CLONE_FS = 0x200
428 CLONE_SETTLS = 0x80000 428 CLONE_IO = 0x80000000
429 CLONE_SIGHAND = 0x800 429 CLONE_NEWCGROUP = 0x2000000
430 CLONE_SYSVSEM = 0x40000 430 CLONE_NEWIPC = 0x8000000
431 CLONE_THREAD = 0x10000 431 CLONE_NEWNET = 0x40000000
432 CLONE_UNTRACED = 0x800000 432 CLONE_NEWNS = 0x20000
433 CLONE_VFORK = 0x4000 433 CLONE_NEWPID = 0x20000000
434 CLONE_VM = 0x100 434 CLONE_NEWUSER = 0x10000000
435 CMSPAR = 0x40000000 435 CLONE_NEWUTS = 0x4000000
436 CODA_SUPER_MAGIC = 0x73757245 436 CLONE_PARENT = 0x8000
437 CR0 = 0x0 437 CLONE_PARENT_SETTID = 0x100000
438 CR1 = 0x200 438 CLONE_PIDFD = 0x1000
439 CR2 = 0x400 439 CLONE_PTRACE = 0x2000
440 CR3 = 0x600 440 CLONE_SETTLS = 0x80000
441 CRAMFS_MAGIC = 0x28cd3d45 441 CLONE_SIGHAND = 0x800
442 CRDLY = 0x600 442 CLONE_SYSVSEM = 0x40000
443 CREAD = 0x80 443 CLONE_THREAD = 0x10000
444 CRTSCTS = 0x80000000 444 CLONE_UNTRACED = 0x800000
445 CRYPTO_MAX_NAME = 0x40 445 CLONE_VFORK = 0x4000
446 CRYPTO_MSG_MAX = 0x15 446 CLONE_VM = 0x100
447 CRYPTO_NR_MSGTYPES = 0x6 447 CMSPAR = 0x40000000
448 CRYPTO_REPORT_MAXSIZE = 0x160 448 CODA_SUPER_MAGIC = 0x73757245
449 CS5 = 0x0 449 CR0 = 0x0
450 CS6 = 0x10 450 CR1 = 0x200
451 CS7 = 0x20 451 CR2 = 0x400
452 CS8 = 0x30 452 CR3 = 0x600
453 CSIGNAL = 0xff 453 CRAMFS_MAGIC = 0x28cd3d45
454 CSIZE = 0x30 454 CRDLY = 0x600
455 CSTART = 0x11 455 CREAD = 0x80
456 CSTATUS = 0x0 456 CRTSCTS = 0x80000000
457 CSTOP = 0x13 457 CRYPTO_MAX_NAME = 0x40
458 CSTOPB = 0x40 458 CRYPTO_MSG_MAX = 0x15
459 CSUSP = 0x1a 459 CRYPTO_NR_MSGTYPES = 0x6
460 DAXFS_MAGIC = 0x64646178 460 CRYPTO_REPORT_MAXSIZE = 0x160
461 DEBUGFS_MAGIC = 0x64626720 461 CS5 = 0x0
462 DEVPTS_SUPER_MAGIC = 0x1cd1 462 CS6 = 0x10
463 DT_BLK = 0x6 463 CS7 = 0x20
464 DT_CHR = 0x2 464 CS8 = 0x30
465 DT_DIR = 0x4 465 CSIGNAL = 0xff
466 DT_FIFO = 0x1 466 CSIZE = 0x30
467 DT_LNK = 0xa 467 CSTART = 0x11
468 DT_REG = 0x8 468 CSTATUS = 0x0
469 DT_SOCK = 0xc 469 CSTOP = 0x13
470 DT_UNKNOWN = 0x0 470 CSTOPB = 0x40
471 DT_WHT = 0xe 471 CSUSP = 0x1a
472 ECHO = 0x8 472 DAXFS_MAGIC = 0x64646178
473 ECHOCTL = 0x200 473 DEBUGFS_MAGIC = 0x64626720
474 ECHOE = 0x10 474 DEVLINK_CMD_ESWITCH_MODE_GET = 0x1d
475 ECHOK = 0x20 475 DEVLINK_CMD_ESWITCH_MODE_SET = 0x1e
476 ECHOKE = 0x800 476 DEVLINK_GENL_MCGRP_CONFIG_NAME = "config"
477 ECHONL = 0x40 477 DEVLINK_GENL_NAME = "devlink"
478 ECHOPRT = 0x400 478 DEVLINK_GENL_VERSION = 0x1
479 ECRYPTFS_SUPER_MAGIC = 0xf15f 479 DEVLINK_SB_THRESHOLD_TO_ALPHA_MAX = 0x14
480 EFD_CLOEXEC = 0x80000 480 DEVPTS_SUPER_MAGIC = 0x1cd1
481 EFD_NONBLOCK = 0x800 481 DMA_BUF_MAGIC = 0x444d4142
482 EFD_SEMAPHORE = 0x1 482 DT_BLK = 0x6
483 EFIVARFS_MAGIC = 0xde5e81e4 483 DT_CHR = 0x2
484 EFS_SUPER_MAGIC = 0x414a53 484 DT_DIR = 0x4
485 ENCODING_DEFAULT = 0x0 485 DT_FIFO = 0x1
486 ENCODING_FM_MARK = 0x3 486 DT_LNK = 0xa
487 ENCODING_FM_SPACE = 0x4 487 DT_REG = 0x8
488 ENCODING_MANCHESTER = 0x5 488 DT_SOCK = 0xc
489 ENCODING_NRZ = 0x1 489 DT_UNKNOWN = 0x0
490 ENCODING_NRZI = 0x2 490 DT_WHT = 0xe
491 EPOLLERR = 0x8 491 ECHO = 0x8
492 EPOLLET = 0x80000000 492 ECHOCTL = 0x200
493 EPOLLEXCLUSIVE = 0x10000000 493 ECHOE = 0x10
494 EPOLLHUP = 0x10 494 ECHOK = 0x20
495 EPOLLIN = 0x1 495 ECHOKE = 0x800
496 EPOLLMSG = 0x400 496 ECHONL = 0x40
497 EPOLLONESHOT = 0x40000000 497 ECHOPRT = 0x400
498 EPOLLOUT = 0x4 498 ECRYPTFS_SUPER_MAGIC = 0xf15f
499 EPOLLPRI = 0x2 499 EFD_CLOEXEC = 0x80000
500 EPOLLRDBAND = 0x80 500 EFD_NONBLOCK = 0x800
501 EPOLLRDHUP = 0x2000 501 EFD_SEMAPHORE = 0x1
502 EPOLLRDNORM = 0x40 502 EFIVARFS_MAGIC = 0xde5e81e4
503 EPOLLWAKEUP = 0x20000000 503 EFS_SUPER_MAGIC = 0x414a53
504 EPOLLWRBAND = 0x200 504 ENCODING_DEFAULT = 0x0
505 EPOLLWRNORM = 0x100 505 ENCODING_FM_MARK = 0x3
506 EPOLL_CLOEXEC = 0x80000 506 ENCODING_FM_SPACE = 0x4
507 EPOLL_CTL_ADD = 0x1 507 ENCODING_MANCHESTER = 0x5
508 EPOLL_CTL_DEL = 0x2 508 ENCODING_NRZ = 0x1
509 EPOLL_CTL_MOD = 0x3 509 ENCODING_NRZI = 0x2
510 ESR_MAGIC = 0x45535201 510 EPOLLERR = 0x8
511 ETH_P_1588 = 0x88f7 511 EPOLLET = 0x80000000
512 ETH_P_8021AD = 0x88a8 512 EPOLLEXCLUSIVE = 0x10000000
513 ETH_P_8021AH = 0x88e7 513 EPOLLHUP = 0x10
514 ETH_P_8021Q = 0x8100 514 EPOLLIN = 0x1
515 ETH_P_80221 = 0x8917 515 EPOLLMSG = 0x400
516 ETH_P_802_2 = 0x4 516 EPOLLONESHOT = 0x40000000
517 ETH_P_802_3 = 0x1 517 EPOLLOUT = 0x4
518 ETH_P_802_3_MIN = 0x600 518 EPOLLPRI = 0x2
519 ETH_P_802_EX1 = 0x88b5 519 EPOLLRDBAND = 0x80
520 ETH_P_AARP = 0x80f3 520 EPOLLRDHUP = 0x2000
521 ETH_P_AF_IUCV = 0xfbfb 521 EPOLLRDNORM = 0x40
522 ETH_P_ALL = 0x3 522 EPOLLWAKEUP = 0x20000000
523 ETH_P_AOE = 0x88a2 523 EPOLLWRBAND = 0x200
524 ETH_P_ARCNET = 0x1a 524 EPOLLWRNORM = 0x100
525 ETH_P_ARP = 0x806 525 EPOLL_CLOEXEC = 0x80000
526 ETH_P_ATALK = 0x809b 526 EPOLL_CTL_ADD = 0x1
527 ETH_P_ATMFATE = 0x8884 527 EPOLL_CTL_DEL = 0x2
528 ETH_P_ATMMPOA = 0x884c 528 EPOLL_CTL_MOD = 0x3
529 ETH_P_AX25 = 0x2 529 EROFS_SUPER_MAGIC_V1 = 0xe0f5e1e2
530 ETH_P_BATMAN = 0x4305 530 ESR_MAGIC = 0x45535201
531 ETH_P_BPQ = 0x8ff 531 ETH_P_1588 = 0x88f7
532 ETH_P_CAIF = 0xf7 532 ETH_P_8021AD = 0x88a8
533 ETH_P_CAN = 0xc 533 ETH_P_8021AH = 0x88e7
534 ETH_P_CANFD = 0xd 534 ETH_P_8021Q = 0x8100
535 ETH_P_CONTROL = 0x16 535 ETH_P_80221 = 0x8917
536 ETH_P_CUST = 0x6006 536 ETH_P_802_2 = 0x4
537 ETH_P_DDCMP = 0x6 537 ETH_P_802_3 = 0x1
538 ETH_P_DEC = 0x6000 538 ETH_P_802_3_MIN = 0x600
539 ETH_P_DIAG = 0x6005 539 ETH_P_802_EX1 = 0x88b5
540 ETH_P_DNA_DL = 0x6001 540 ETH_P_AARP = 0x80f3
541 ETH_P_DNA_RC = 0x6002 541 ETH_P_AF_IUCV = 0xfbfb
542 ETH_P_DNA_RT = 0x6003 542 ETH_P_ALL = 0x3
543 ETH_P_DSA = 0x1b 543 ETH_P_AOE = 0x88a2
544 ETH_P_DSA_8021Q = 0xdadb 544 ETH_P_ARCNET = 0x1a
545 ETH_P_ECONET = 0x18 545 ETH_P_ARP = 0x806
546 ETH_P_EDSA = 0xdada 546 ETH_P_ATALK = 0x809b
547 ETH_P_ERSPAN = 0x88be 547 ETH_P_ATMFATE = 0x8884
548 ETH_P_ERSPAN2 = 0x22eb 548 ETH_P_ATMMPOA = 0x884c
549 ETH_P_FCOE = 0x8906 549 ETH_P_AX25 = 0x2
550 ETH_P_FIP = 0x8914 550 ETH_P_BATMAN = 0x4305
551 ETH_P_HDLC = 0x19 551 ETH_P_BPQ = 0x8ff
552 ETH_P_HSR = 0x892f 552 ETH_P_CAIF = 0xf7
553 ETH_P_IBOE = 0x8915 553 ETH_P_CAN = 0xc
554 ETH_P_IEEE802154 = 0xf6 554 ETH_P_CANFD = 0xd
555 ETH_P_IEEEPUP = 0xa00 555 ETH_P_CONTROL = 0x16
556 ETH_P_IEEEPUPAT = 0xa01 556 ETH_P_CUST = 0x6006
557 ETH_P_IFE = 0xed3e 557 ETH_P_DDCMP = 0x6
558 ETH_P_IP = 0x800 558 ETH_P_DEC = 0x6000
559 ETH_P_IPV6 = 0x86dd 559 ETH_P_DIAG = 0x6005
560 ETH_P_IPX = 0x8137 560 ETH_P_DNA_DL = 0x6001
561 ETH_P_IRDA = 0x17 561 ETH_P_DNA_RC = 0x6002
562 ETH_P_LAT = 0x6004 562 ETH_P_DNA_RT = 0x6003
563 ETH_P_LINK_CTL = 0x886c 563 ETH_P_DSA = 0x1b
564 ETH_P_LOCALTALK = 0x9 564 ETH_P_DSA_8021Q = 0xdadb
565 ETH_P_LOOP = 0x60 565 ETH_P_ECONET = 0x18
566 ETH_P_LOOPBACK = 0x9000 566 ETH_P_EDSA = 0xdada
567 ETH_P_MACSEC = 0x88e5 567 ETH_P_ERSPAN = 0x88be
568 ETH_P_MAP = 0xf9 568 ETH_P_ERSPAN2 = 0x22eb
569 ETH_P_MOBITEX = 0x15 569 ETH_P_FCOE = 0x8906
570 ETH_P_MPLS_MC = 0x8848 570 ETH_P_FIP = 0x8914
571 ETH_P_MPLS_UC = 0x8847 571 ETH_P_HDLC = 0x19
572 ETH_P_MVRP = 0x88f5 572 ETH_P_HSR = 0x892f
573 ETH_P_NCSI = 0x88f8 573 ETH_P_IBOE = 0x8915
574 ETH_P_NSH = 0x894f 574 ETH_P_IEEE802154 = 0xf6
575 ETH_P_PAE = 0x888e 575 ETH_P_IEEEPUP = 0xa00
576 ETH_P_PAUSE = 0x8808 576 ETH_P_IEEEPUPAT = 0xa01
577 ETH_P_PHONET = 0xf5 577 ETH_P_IFE = 0xed3e
578 ETH_P_PPPTALK = 0x10 578 ETH_P_IP = 0x800
579 ETH_P_PPP_DISC = 0x8863 579 ETH_P_IPV6 = 0x86dd
580 ETH_P_PPP_MP = 0x8 580 ETH_P_IPX = 0x8137
581 ETH_P_PPP_SES = 0x8864 581 ETH_P_IRDA = 0x17
582 ETH_P_PREAUTH = 0x88c7 582 ETH_P_LAT = 0x6004
583 ETH_P_PRP = 0x88fb 583 ETH_P_LINK_CTL = 0x886c
584 ETH_P_PUP = 0x200 584 ETH_P_LLDP = 0x88cc
585 ETH_P_PUPAT = 0x201 585 ETH_P_LOCALTALK = 0x9
586 ETH_P_QINQ1 = 0x9100 586 ETH_P_LOOP = 0x60
587 ETH_P_QINQ2 = 0x9200 587 ETH_P_LOOPBACK = 0x9000
588 ETH_P_QINQ3 = 0x9300 588 ETH_P_MACSEC = 0x88e5
589 ETH_P_RARP = 0x8035 589 ETH_P_MAP = 0xf9
590 ETH_P_SCA = 0x6007 590 ETH_P_MOBITEX = 0x15
591 ETH_P_SLOW = 0x8809 591 ETH_P_MPLS_MC = 0x8848
592 ETH_P_SNAP = 0x5 592 ETH_P_MPLS_UC = 0x8847
593 ETH_P_TDLS = 0x890d 593 ETH_P_MVRP = 0x88f5
594 ETH_P_TEB = 0x6558 594 ETH_P_NCSI = 0x88f8
595 ETH_P_TIPC = 0x88ca 595 ETH_P_NSH = 0x894f
596 ETH_P_TRAILER = 0x1c 596 ETH_P_PAE = 0x888e
597 ETH_P_TR_802_2 = 0x11 597 ETH_P_PAUSE = 0x8808
598 ETH_P_TSN = 0x22f0 598 ETH_P_PHONET = 0xf5
599 ETH_P_WAN_PPP = 0x7 599 ETH_P_PPPTALK = 0x10
600 ETH_P_WCCP = 0x883e 600 ETH_P_PPP_DISC = 0x8863
601 ETH_P_X25 = 0x805 601 ETH_P_PPP_MP = 0x8
602 ETH_P_XDSA = 0xf8 602 ETH_P_PPP_SES = 0x8864
603 EXABYTE_ENABLE_NEST = 0xf0 603 ETH_P_PREAUTH = 0x88c7
604 EXT2_SUPER_MAGIC = 0xef53 604 ETH_P_PRP = 0x88fb
605 EXT3_SUPER_MAGIC = 0xef53 605 ETH_P_PUP = 0x200
606 EXT4_SUPER_MAGIC = 0xef53 606 ETH_P_PUPAT = 0x201
607 EXTA = 0xe 607 ETH_P_QINQ1 = 0x9100
608 EXTB = 0xf 608 ETH_P_QINQ2 = 0x9200
609 EXTPROC = 0x10000 609 ETH_P_QINQ3 = 0x9300
610 EXTRA_MAGIC = 0x45585401 610 ETH_P_RARP = 0x8035
611 F2FS_SUPER_MAGIC = 0xf2f52010 611 ETH_P_SCA = 0x6007
612 FALLOC_FL_COLLAPSE_RANGE = 0x8 612 ETH_P_SLOW = 0x8809
613 FALLOC_FL_INSERT_RANGE = 0x20 613 ETH_P_SNAP = 0x5
614 FALLOC_FL_KEEP_SIZE = 0x1 614 ETH_P_TDLS = 0x890d
615 FALLOC_FL_NO_HIDE_STALE = 0x4 615 ETH_P_TEB = 0x6558
616 FALLOC_FL_PUNCH_HOLE = 0x2 616 ETH_P_TIPC = 0x88ca
617 FALLOC_FL_UNSHARE_RANGE = 0x40 617 ETH_P_TRAILER = 0x1c
618 FALLOC_FL_ZERO_RANGE = 0x10 618 ETH_P_TR_802_2 = 0x11
619 FANOTIFY_METADATA_VERSION = 0x3 619 ETH_P_TSN = 0x22f0
620 FAN_ACCESS = 0x1 620 ETH_P_WAN_PPP = 0x7
621 FAN_ACCESS_PERM = 0x20000 621 ETH_P_WCCP = 0x883e
622 FAN_ALLOW = 0x1 622 ETH_P_X25 = 0x805
623 FAN_ALL_CLASS_BITS = 0xc 623 ETH_P_XDSA = 0xf8
624 FAN_ALL_EVENTS = 0x3b 624 EXABYTE_ENABLE_NEST = 0xf0
625 FAN_ALL_INIT_FLAGS = 0x3f 625 EXT2_SUPER_MAGIC = 0xef53
626 FAN_ALL_MARK_FLAGS = 0xff 626 EXT3_SUPER_MAGIC = 0xef53
627 FAN_ALL_OUTGOING_EVENTS = 0x3403b 627 EXT4_SUPER_MAGIC = 0xef53
628 FAN_ALL_PERM_EVENTS = 0x30000 628 EXTA = 0xe
629 FAN_ATTRIB = 0x4 629 EXTB = 0xf
630 FAN_AUDIT = 0x10 630 EXTPROC = 0x10000
631 FAN_CLASS_CONTENT = 0x4 631 EXTRA_MAGIC = 0x45585401
632 FAN_CLASS_NOTIF = 0x0 632 F2FS_SUPER_MAGIC = 0xf2f52010
633 FAN_CLASS_PRE_CONTENT = 0x8 633 FALLOC_FL_COLLAPSE_RANGE = 0x8
634 FAN_CLOEXEC = 0x1 634 FALLOC_FL_INSERT_RANGE = 0x20
635 FAN_CLOSE = 0x18 635 FALLOC_FL_KEEP_SIZE = 0x1
636 FAN_CLOSE_NOWRITE = 0x10 636 FALLOC_FL_NO_HIDE_STALE = 0x4
637 FAN_CLOSE_WRITE = 0x8 637 FALLOC_FL_PUNCH_HOLE = 0x2
638 FAN_CREATE = 0x100 638 FALLOC_FL_UNSHARE_RANGE = 0x40
639 FAN_DELETE = 0x200 639 FALLOC_FL_ZERO_RANGE = 0x10
640 FAN_DELETE_SELF = 0x400 640 FANOTIFY_METADATA_VERSION = 0x3
641 FAN_DENY = 0x2 641 FAN_ACCESS = 0x1
642 FAN_ENABLE_AUDIT = 0x40 642 FAN_ACCESS_PERM = 0x20000
643 FAN_EVENT_INFO_TYPE_FID = 0x1 643 FAN_ALLOW = 0x1
644 FAN_EVENT_METADATA_LEN = 0x18 644 FAN_ALL_CLASS_BITS = 0xc
645 FAN_EVENT_ON_CHILD = 0x8000000 645 FAN_ALL_EVENTS = 0x3b
646 FAN_MARK_ADD = 0x1 646 FAN_ALL_INIT_FLAGS = 0x3f
647 FAN_MARK_DONT_FOLLOW = 0x4 647 FAN_ALL_MARK_FLAGS = 0xff
648 FAN_MARK_FILESYSTEM = 0x100 648 FAN_ALL_OUTGOING_EVENTS = 0x3403b
649 FAN_MARK_FLUSH = 0x80 649 FAN_ALL_PERM_EVENTS = 0x30000
650 FAN_MARK_IGNORED_MASK = 0x20 650 FAN_ATTRIB = 0x4
651 FAN_MARK_IGNORED_SURV_MODIFY = 0x40 651 FAN_AUDIT = 0x10
652 FAN_MARK_INODE = 0x0 652 FAN_CLASS_CONTENT = 0x4
653 FAN_MARK_MOUNT = 0x10 653 FAN_CLASS_NOTIF = 0x0
654 FAN_MARK_ONLYDIR = 0x8 654 FAN_CLASS_PRE_CONTENT = 0x8
655 FAN_MARK_REMOVE = 0x2 655 FAN_CLOEXEC = 0x1
656 FAN_MODIFY = 0x2 656 FAN_CLOSE = 0x18
657 FAN_MOVE = 0xc0 657 FAN_CLOSE_NOWRITE = 0x10
658 FAN_MOVED_FROM = 0x40 658 FAN_CLOSE_WRITE = 0x8
659 FAN_MOVED_TO = 0x80 659 FAN_CREATE = 0x100
660 FAN_MOVE_SELF = 0x800 660 FAN_DELETE = 0x200
661 FAN_NOFD = -0x1 661 FAN_DELETE_SELF = 0x400
662 FAN_NONBLOCK = 0x2 662 FAN_DENY = 0x2
663 FAN_ONDIR = 0x40000000 663 FAN_ENABLE_AUDIT = 0x40
664 FAN_OPEN = 0x20 664 FAN_EVENT_INFO_TYPE_FID = 0x1
665 FAN_OPEN_EXEC = 0x1000 665 FAN_EVENT_METADATA_LEN = 0x18
666 FAN_OPEN_EXEC_PERM = 0x40000 666 FAN_EVENT_ON_CHILD = 0x8000000
667 FAN_OPEN_PERM = 0x10000 667 FAN_MARK_ADD = 0x1
668 FAN_Q_OVERFLOW = 0x4000 668 FAN_MARK_DONT_FOLLOW = 0x4
669 FAN_REPORT_FID = 0x200 669 FAN_MARK_FILESYSTEM = 0x100
670 FAN_REPORT_TID = 0x100 670 FAN_MARK_FLUSH = 0x80
671 FAN_UNLIMITED_MARKS = 0x20 671 FAN_MARK_IGNORED_MASK = 0x20
672 FAN_UNLIMITED_QUEUE = 0x10 672 FAN_MARK_IGNORED_SURV_MODIFY = 0x40
673 FD_CLOEXEC = 0x1 673 FAN_MARK_INODE = 0x0
674 FD_SETSIZE = 0x400 674 FAN_MARK_MOUNT = 0x10
675 FF0 = 0x0 675 FAN_MARK_ONLYDIR = 0x8
676 FF1 = 0x8000 676 FAN_MARK_REMOVE = 0x2
677 FFDLY = 0x8000 677 FAN_MODIFY = 0x2
678 FLUSHO = 0x1000 678 FAN_MOVE = 0xc0
679 FPSIMD_MAGIC = 0x46508001 679 FAN_MOVED_FROM = 0x40
680 FS_ENCRYPTION_MODE_ADIANTUM = 0x9 680 FAN_MOVED_TO = 0x80
681 FS_ENCRYPTION_MODE_AES_128_CBC = 0x5 681 FAN_MOVE_SELF = 0x800
682 FS_ENCRYPTION_MODE_AES_128_CTS = 0x6 682 FAN_NOFD = -0x1
683 FS_ENCRYPTION_MODE_AES_256_CBC = 0x3 683 FAN_NONBLOCK = 0x2
684 FS_ENCRYPTION_MODE_AES_256_CTS = 0x4 684 FAN_ONDIR = 0x40000000
685 FS_ENCRYPTION_MODE_AES_256_GCM = 0x2 685 FAN_OPEN = 0x20
686 FS_ENCRYPTION_MODE_AES_256_XTS = 0x1 686 FAN_OPEN_EXEC = 0x1000
687 FS_ENCRYPTION_MODE_INVALID = 0x0 687 FAN_OPEN_EXEC_PERM = 0x40000
688 FS_ENCRYPTION_MODE_SPECK128_256_CTS = 0x8 688 FAN_OPEN_PERM = 0x10000
689 FS_ENCRYPTION_MODE_SPECK128_256_XTS = 0x7 689 FAN_Q_OVERFLOW = 0x4000
690 FS_IOC_GET_ENCRYPTION_POLICY = 0x400c6615 690 FAN_REPORT_FID = 0x200
691 FS_IOC_GET_ENCRYPTION_PWSALT = 0x40106614 691 FAN_REPORT_TID = 0x100
692 FS_IOC_SET_ENCRYPTION_POLICY = 0x800c6613 692 FAN_UNLIMITED_MARKS = 0x20
693 FS_KEY_DESCRIPTOR_SIZE = 0x8 693 FAN_UNLIMITED_QUEUE = 0x10
694 FS_KEY_DESC_PREFIX = "fscrypt:" 694 FD_CLOEXEC = 0x1
695 FS_KEY_DESC_PREFIX_SIZE = 0x8 695 FD_SETSIZE = 0x400
696 FS_MAX_KEY_SIZE = 0x40 696 FF0 = 0x0
697 FS_POLICY_FLAGS_PAD_16 = 0x2 697 FF1 = 0x8000
698 FS_POLICY_FLAGS_PAD_32 = 0x3 698 FFDLY = 0x8000
699 FS_POLICY_FLAGS_PAD_4 = 0x0 699 FLUSHO = 0x1000
700 FS_POLICY_FLAGS_PAD_8 = 0x1 700 FPSIMD_MAGIC = 0x46508001
701 FS_POLICY_FLAGS_PAD_MASK = 0x3 701 FSCRYPT_KEY_DESCRIPTOR_SIZE = 0x8
702 FS_POLICY_FLAGS_VALID = 0x7 702 FSCRYPT_KEY_DESC_PREFIX = "fscrypt:"
703 FUTEXFS_SUPER_MAGIC = 0xbad1dea 703 FSCRYPT_KEY_DESC_PREFIX_SIZE = 0x8
704 F_ADD_SEALS = 0x409 704 FSCRYPT_KEY_IDENTIFIER_SIZE = 0x10
705 F_DUPFD = 0x0 705 FSCRYPT_KEY_REMOVAL_STATUS_FLAG_FILES_BUSY = 0x1
706 F_DUPFD_CLOEXEC = 0x406 706 FSCRYPT_KEY_REMOVAL_STATUS_FLAG_OTHER_USERS = 0x2
707 F_EXLCK = 0x4 707 FSCRYPT_KEY_SPEC_TYPE_DESCRIPTOR = 0x1
708 F_GETFD = 0x1 708 FSCRYPT_KEY_SPEC_TYPE_IDENTIFIER = 0x2
709 F_GETFL = 0x3 709 FSCRYPT_KEY_STATUS_ABSENT = 0x1
710 F_GETLEASE = 0x401 710 FSCRYPT_KEY_STATUS_FLAG_ADDED_BY_SELF = 0x1
711 F_GETLK = 0x5 711 FSCRYPT_KEY_STATUS_INCOMPLETELY_REMOVED = 0x3
712 F_GETLK64 = 0x5 712 FSCRYPT_KEY_STATUS_PRESENT = 0x2
713 F_GETOWN = 0x9 713 FSCRYPT_MAX_KEY_SIZE = 0x40
714 F_GETOWN_EX = 0x10 714 FSCRYPT_MODE_ADIANTUM = 0x9
715 F_GETPIPE_SZ = 0x408 715 FSCRYPT_MODE_AES_128_CBC = 0x5
716 F_GETSIG = 0xb 716 FSCRYPT_MODE_AES_128_CTS = 0x6
717 F_GET_FILE_RW_HINT = 0x40d 717 FSCRYPT_MODE_AES_256_CTS = 0x4
718 F_GET_RW_HINT = 0x40b 718 FSCRYPT_MODE_AES_256_XTS = 0x1
719 F_GET_SEALS = 0x40a 719 FSCRYPT_POLICY_FLAGS_PAD_16 = 0x2
720 F_LOCK = 0x1 720 FSCRYPT_POLICY_FLAGS_PAD_32 = 0x3
721 F_NOTIFY = 0x402 721 FSCRYPT_POLICY_FLAGS_PAD_4 = 0x0
722 F_OFD_GETLK = 0x24 722 FSCRYPT_POLICY_FLAGS_PAD_8 = 0x1
723 F_OFD_SETLK = 0x25 723 FSCRYPT_POLICY_FLAGS_PAD_MASK = 0x3
724 F_OFD_SETLKW = 0x26 724 FSCRYPT_POLICY_FLAGS_VALID = 0xf
725 F_OK = 0x0 725 FSCRYPT_POLICY_FLAG_DIRECT_KEY = 0x4
726 F_RDLCK = 0x0 726 FSCRYPT_POLICY_FLAG_IV_INO_LBLK_64 = 0x8
727 F_SEAL_FUTURE_WRITE = 0x10 727 FSCRYPT_POLICY_V1 = 0x0
728 F_SEAL_GROW = 0x4 728 FSCRYPT_POLICY_V2 = 0x2
729 F_SEAL_SEAL = 0x1 729 FS_ENCRYPTION_MODE_ADIANTUM = 0x9
730 F_SEAL_SHRINK = 0x2 730 FS_ENCRYPTION_MODE_AES_128_CBC = 0x5
731 F_SEAL_WRITE = 0x8 731 FS_ENCRYPTION_MODE_AES_128_CTS = 0x6
732 F_SETFD = 0x2 732 FS_ENCRYPTION_MODE_AES_256_CBC = 0x3
733 F_SETFL = 0x4 733 FS_ENCRYPTION_MODE_AES_256_CTS = 0x4
734 F_SETLEASE = 0x400 734 FS_ENCRYPTION_MODE_AES_256_GCM = 0x2
735 F_SETLK = 0x6 735 FS_ENCRYPTION_MODE_AES_256_XTS = 0x1
736 F_SETLK64 = 0x6 736 FS_ENCRYPTION_MODE_INVALID = 0x0
737 F_SETLKW = 0x7 737 FS_ENCRYPTION_MODE_SPECK128_256_CTS = 0x8
738 F_SETLKW64 = 0x7 738 FS_ENCRYPTION_MODE_SPECK128_256_XTS = 0x7
739 F_SETOWN = 0x8 739 FS_IOC_ADD_ENCRYPTION_KEY = 0xc0506617
740 F_SETOWN_EX = 0xf 740 FS_IOC_GET_ENCRYPTION_KEY_STATUS = 0xc080661a
741 F_SETPIPE_SZ = 0x407 741 FS_IOC_GET_ENCRYPTION_POLICY = 0x400c6615
742 F_SETSIG = 0xa 742 FS_IOC_GET_ENCRYPTION_POLICY_EX = 0xc0096616
743 F_SET_FILE_RW_HINT = 0x40e 743 FS_IOC_GET_ENCRYPTION_PWSALT = 0x40106614
744 F_SET_RW_HINT = 0x40c 744 FS_IOC_REMOVE_ENCRYPTION_KEY = 0xc0406618
745 F_SHLCK = 0x8 745 FS_IOC_REMOVE_ENCRYPTION_KEY_ALL_USERS = 0xc0406619
746 F_TEST = 0x3 746 FS_IOC_SET_ENCRYPTION_POLICY = 0x800c6613
747 F_TLOCK = 0x2 747 FS_KEY_DESCRIPTOR_SIZE = 0x8
748 F_ULOCK = 0x0 748 FS_KEY_DESC_PREFIX = "fscrypt:"
749 F_UNLCK = 0x2 749 FS_KEY_DESC_PREFIX_SIZE = 0x8
750 F_WRLCK = 0x1 750 FS_MAX_KEY_SIZE = 0x40
751 GENL_ADMIN_PERM = 0x1 751 FS_POLICY_FLAGS_PAD_16 = 0x2
752 GENL_CMD_CAP_DO = 0x2 752 FS_POLICY_FLAGS_PAD_32 = 0x3
753 GENL_CMD_CAP_DUMP = 0x4 753 FS_POLICY_FLAGS_PAD_4 = 0x0
754 GENL_CMD_CAP_HASPOL = 0x8 754 FS_POLICY_FLAGS_PAD_8 = 0x1
755 GENL_HDRLEN = 0x4 755 FS_POLICY_FLAGS_PAD_MASK = 0x3
756 GENL_ID_CTRL = 0x10 756 FS_POLICY_FLAGS_VALID = 0xf
757 GENL_ID_PMCRAID = 0x12 757 FUTEXFS_SUPER_MAGIC = 0xbad1dea
758 GENL_ID_VFS_DQUOT = 0x11 758 F_ADD_SEALS = 0x409
759 GENL_MAX_ID = 0x3ff 759 F_DUPFD = 0x0
760 GENL_MIN_ID = 0x10 760 F_DUPFD_CLOEXEC = 0x406
761 GENL_NAMSIZ = 0x10 761 F_EXLCK = 0x4
762 GENL_START_ALLOC = 0x13 762 F_GETFD = 0x1
763 GENL_UNS_ADMIN_PERM = 0x10 763 F_GETFL = 0x3
764 GRND_NONBLOCK = 0x1 764 F_GETLEASE = 0x401
765 GRND_RANDOM = 0x2 765 F_GETLK = 0x5
766 HDIO_DRIVE_CMD = 0x31f 766 F_GETLK64 = 0x5
767 HDIO_DRIVE_CMD_AEB = 0x31e 767 F_GETOWN = 0x9
768 HDIO_DRIVE_CMD_HDR_SIZE = 0x4 768 F_GETOWN_EX = 0x10
769 HDIO_DRIVE_HOB_HDR_SIZE = 0x8 769 F_GETPIPE_SZ = 0x408
770 HDIO_DRIVE_RESET = 0x31c 770 F_GETSIG = 0xb
771 HDIO_DRIVE_TASK = 0x31e 771 F_GET_FILE_RW_HINT = 0x40d
772 HDIO_DRIVE_TASKFILE = 0x31d 772 F_GET_RW_HINT = 0x40b
773 HDIO_DRIVE_TASK_HDR_SIZE = 0x8 773 F_GET_SEALS = 0x40a
774 HDIO_GETGEO = 0x301 774 F_LOCK = 0x1
775 HDIO_GET_32BIT = 0x309 775 F_NOTIFY = 0x402
776 HDIO_GET_ACOUSTIC = 0x30f 776 F_OFD_GETLK = 0x24
777 HDIO_GET_ADDRESS = 0x310 777 F_OFD_SETLK = 0x25
778 HDIO_GET_BUSSTATE = 0x31a 778 F_OFD_SETLKW = 0x26
779 HDIO_GET_DMA = 0x30b 779 F_OK = 0x0
780 HDIO_GET_IDENTITY = 0x30d 780 F_RDLCK = 0x0
781 HDIO_GET_KEEPSETTINGS = 0x308 781 F_SEAL_FUTURE_WRITE = 0x10
782 HDIO_GET_MULTCOUNT = 0x304 782 F_SEAL_GROW = 0x4
783 HDIO_GET_NICE = 0x30c 783 F_SEAL_SEAL = 0x1
784 HDIO_GET_NOWERR = 0x30a 784 F_SEAL_SHRINK = 0x2
785 HDIO_GET_QDMA = 0x305 785 F_SEAL_WRITE = 0x8
786 HDIO_GET_UNMASKINTR = 0x302 786 F_SETFD = 0x2
787 HDIO_GET_WCACHE = 0x30e 787 F_SETFL = 0x4
788 HDIO_OBSOLETE_IDENTITY = 0x307 788 F_SETLEASE = 0x400
789 HDIO_SCAN_HWIF = 0x328 789 F_SETLK = 0x6
790 HDIO_SET_32BIT = 0x324 790 F_SETLK64 = 0x6
791 HDIO_SET_ACOUSTIC = 0x32c 791 F_SETLKW = 0x7
792 HDIO_SET_ADDRESS = 0x32f 792 F_SETLKW64 = 0x7
793 HDIO_SET_BUSSTATE = 0x32d 793 F_SETOWN = 0x8
794 HDIO_SET_DMA = 0x326 794 F_SETOWN_EX = 0xf
795 HDIO_SET_KEEPSETTINGS = 0x323 795 F_SETPIPE_SZ = 0x407
796 HDIO_SET_MULTCOUNT = 0x321 796 F_SETSIG = 0xa
797 HDIO_SET_NICE = 0x329 797 F_SET_FILE_RW_HINT = 0x40e
798 HDIO_SET_NOWERR = 0x325 798 F_SET_RW_HINT = 0x40c
799 HDIO_SET_PIO_MODE = 0x327 799 F_SHLCK = 0x8
800 HDIO_SET_QDMA = 0x32e 800 F_TEST = 0x3
801 HDIO_SET_UNMASKINTR = 0x322 801 F_TLOCK = 0x2
802 HDIO_SET_WCACHE = 0x32b 802 F_ULOCK = 0x0
803 HDIO_SET_XFER = 0x306 803 F_UNLCK = 0x2
804 HDIO_TRISTATE_HWIF = 0x31b 804 F_WRLCK = 0x1
805 HDIO_UNREGISTER_HWIF = 0x32a 805 GENL_ADMIN_PERM = 0x1
806 HOSTFS_SUPER_MAGIC = 0xc0ffee 806 GENL_CMD_CAP_DO = 0x2
807 HPFS_SUPER_MAGIC = 0xf995e849 807 GENL_CMD_CAP_DUMP = 0x4
808 HUGETLBFS_MAGIC = 0x958458f6 808 GENL_CMD_CAP_HASPOL = 0x8
809 HUPCL = 0x400 809 GENL_HDRLEN = 0x4
810 IBSHIFT = 0x10 810 GENL_ID_CTRL = 0x10
811 ICANON = 0x2 811 GENL_ID_PMCRAID = 0x12
812 ICMPV6_FILTER = 0x1 812 GENL_ID_VFS_DQUOT = 0x11
813 ICRNL = 0x100 813 GENL_MAX_ID = 0x3ff
814 IEXTEN = 0x8000 814 GENL_MIN_ID = 0x10
815 IFA_F_DADFAILED = 0x8 815 GENL_NAMSIZ = 0x10
816 IFA_F_DEPRECATED = 0x20 816 GENL_START_ALLOC = 0x13
817 IFA_F_HOMEADDRESS = 0x10 817 GENL_UNS_ADMIN_PERM = 0x10
818 IFA_F_MANAGETEMPADDR = 0x100 818 GRND_NONBLOCK = 0x1
819 IFA_F_MCAUTOJOIN = 0x400 819 GRND_RANDOM = 0x2
820 IFA_F_NODAD = 0x2 820 HDIO_DRIVE_CMD = 0x31f
821 IFA_F_NOPREFIXROUTE = 0x200 821 HDIO_DRIVE_CMD_AEB = 0x31e
822 IFA_F_OPTIMISTIC = 0x4 822 HDIO_DRIVE_CMD_HDR_SIZE = 0x4
823 IFA_F_PERMANENT = 0x80 823 HDIO_DRIVE_HOB_HDR_SIZE = 0x8
824 IFA_F_SECONDARY = 0x1 824 HDIO_DRIVE_RESET = 0x31c
825 IFA_F_STABLE_PRIVACY = 0x800 825 HDIO_DRIVE_TASK = 0x31e
826 IFA_F_TEMPORARY = 0x1 826 HDIO_DRIVE_TASKFILE = 0x31d
827 IFA_F_TENTATIVE = 0x40 827 HDIO_DRIVE_TASK_HDR_SIZE = 0x8
828 IFA_MAX = 0xa 828 HDIO_GETGEO = 0x301
829 IFF_ALLMULTI = 0x200 829 HDIO_GET_32BIT = 0x309
830 IFF_ATTACH_QUEUE = 0x200 830 HDIO_GET_ACOUSTIC = 0x30f
831 IFF_AUTOMEDIA = 0x4000 831 HDIO_GET_ADDRESS = 0x310
832 IFF_BROADCAST = 0x2 832 HDIO_GET_BUSSTATE = 0x31a
833 IFF_DEBUG = 0x4 833 HDIO_GET_DMA = 0x30b
834 IFF_DETACH_QUEUE = 0x400 834 HDIO_GET_IDENTITY = 0x30d
835 IFF_DORMANT = 0x20000 835 HDIO_GET_KEEPSETTINGS = 0x308
836 IFF_DYNAMIC = 0x8000 836 HDIO_GET_MULTCOUNT = 0x304
837 IFF_ECHO = 0x40000 837 HDIO_GET_NICE = 0x30c
838 IFF_LOOPBACK = 0x8 838 HDIO_GET_NOWERR = 0x30a
839 IFF_LOWER_UP = 0x10000 839 HDIO_GET_QDMA = 0x305
840 IFF_MASTER = 0x400 840 HDIO_GET_UNMASKINTR = 0x302
841 IFF_MULTICAST = 0x1000 841 HDIO_GET_WCACHE = 0x30e
842 IFF_MULTI_QUEUE = 0x100 842 HDIO_OBSOLETE_IDENTITY = 0x307
843 IFF_NAPI = 0x10 843 HDIO_SCAN_HWIF = 0x328
844 IFF_NAPI_FRAGS = 0x20 844 HDIO_SET_32BIT = 0x324
845 IFF_NOARP = 0x80 845 HDIO_SET_ACOUSTIC = 0x32c
846 IFF_NOFILTER = 0x1000 846 HDIO_SET_ADDRESS = 0x32f
847 IFF_NOTRAILERS = 0x20 847 HDIO_SET_BUSSTATE = 0x32d
848 IFF_NO_PI = 0x1000 848 HDIO_SET_DMA = 0x326
849 IFF_ONE_QUEUE = 0x2000 849 HDIO_SET_KEEPSETTINGS = 0x323
850 IFF_PERSIST = 0x800 850 HDIO_SET_MULTCOUNT = 0x321
851 IFF_POINTOPOINT = 0x10 851 HDIO_SET_NICE = 0x329
852 IFF_PORTSEL = 0x2000 852 HDIO_SET_NOWERR = 0x325
853 IFF_PROMISC = 0x100 853 HDIO_SET_PIO_MODE = 0x327
854 IFF_RUNNING = 0x40 854 HDIO_SET_QDMA = 0x32e
855 IFF_SLAVE = 0x800 855 HDIO_SET_UNMASKINTR = 0x322
856 IFF_TAP = 0x2 856 HDIO_SET_WCACHE = 0x32b
857 IFF_TUN = 0x1 857 HDIO_SET_XFER = 0x306
858 IFF_TUN_EXCL = 0x8000 858 HDIO_TRISTATE_HWIF = 0x31b
859 IFF_UP = 0x1 859 HDIO_UNREGISTER_HWIF = 0x32a
860 IFF_VNET_HDR = 0x4000 860 HOSTFS_SUPER_MAGIC = 0xc0ffee
861 IFF_VOLATILE = 0x70c5a 861 HPFS_SUPER_MAGIC = 0xf995e849
862 IFNAMSIZ = 0x10 862 HUGETLBFS_MAGIC = 0x958458f6
863 IGNBRK = 0x1 863 HUPCL = 0x400
864 IGNCR = 0x80 864 IBSHIFT = 0x10
865 IGNPAR = 0x4 865 ICANON = 0x2
866 IMAXBEL = 0x2000 866 ICMPV6_FILTER = 0x1
867 INLCR = 0x40 867 ICRNL = 0x100
868 INPCK = 0x10 868 IEXTEN = 0x8000
869 IN_ACCESS = 0x1 869 IFA_F_DADFAILED = 0x8
870 IN_ALL_EVENTS = 0xfff 870 IFA_F_DEPRECATED = 0x20
871 IN_ATTRIB = 0x4 871 IFA_F_HOMEADDRESS = 0x10
872 IN_CLASSA_HOST = 0xffffff 872 IFA_F_MANAGETEMPADDR = 0x100
873 IN_CLASSA_MAX = 0x80 873 IFA_F_MCAUTOJOIN = 0x400
874 IN_CLASSA_NET = 0xff000000 874 IFA_F_NODAD = 0x2
875 IN_CLASSA_NSHIFT = 0x18 875 IFA_F_NOPREFIXROUTE = 0x200
876 IN_CLASSB_HOST = 0xffff 876 IFA_F_OPTIMISTIC = 0x4
877 IN_CLASSB_MAX = 0x10000 877 IFA_F_PERMANENT = 0x80
878 IN_CLASSB_NET = 0xffff0000 878 IFA_F_SECONDARY = 0x1
879 IN_CLASSB_NSHIFT = 0x10 879 IFA_F_STABLE_PRIVACY = 0x800
880 IN_CLASSC_HOST = 0xff 880 IFA_F_TEMPORARY = 0x1
881 IN_CLASSC_NET = 0xffffff00 881 IFA_F_TENTATIVE = 0x40
882 IN_CLASSC_NSHIFT = 0x8 882 IFA_MAX = 0xa
883 IN_CLOEXEC = 0x80000 883 IFF_ALLMULTI = 0x200
884 IN_CLOSE = 0x18 884 IFF_ATTACH_QUEUE = 0x200
885 IN_CLOSE_NOWRITE = 0x10 885 IFF_AUTOMEDIA = 0x4000
886 IN_CLOSE_WRITE = 0x8 886 IFF_BROADCAST = 0x2
887 IN_CREATE = 0x100 887 IFF_DEBUG = 0x4
888 IN_DELETE = 0x200 888 IFF_DETACH_QUEUE = 0x400
889 IN_DELETE_SELF = 0x400 889 IFF_DORMANT = 0x20000
890 IN_DONT_FOLLOW = 0x2000000 890 IFF_DYNAMIC = 0x8000
891 IN_EXCL_UNLINK = 0x4000000 891 IFF_ECHO = 0x40000
892 IN_IGNORED = 0x8000 892 IFF_LOOPBACK = 0x8
893 IN_ISDIR = 0x40000000 893 IFF_LOWER_UP = 0x10000
894 IN_LOOPBACKNET = 0x7f 894 IFF_MASTER = 0x400
895 IN_MASK_ADD = 0x20000000 895 IFF_MULTICAST = 0x1000
896 IN_MASK_CREATE = 0x10000000 896 IFF_MULTI_QUEUE = 0x100
897 IN_MODIFY = 0x2 897 IFF_NAPI = 0x10
898 IN_MOVE = 0xc0 898 IFF_NAPI_FRAGS = 0x20
899 IN_MOVED_FROM = 0x40 899 IFF_NOARP = 0x80
900 IN_MOVED_TO = 0x80 900 IFF_NOFILTER = 0x1000
901 IN_MOVE_SELF = 0x800 901 IFF_NOTRAILERS = 0x20
902 IN_NONBLOCK = 0x800 902 IFF_NO_PI = 0x1000
903 IN_ONESHOT = 0x80000000 903 IFF_ONE_QUEUE = 0x2000
904 IN_ONLYDIR = 0x1000000 904 IFF_PERSIST = 0x800
905 IN_OPEN = 0x20 905 IFF_POINTOPOINT = 0x10
906 IN_Q_OVERFLOW = 0x4000 906 IFF_PORTSEL = 0x2000
907 IN_UNMOUNT = 0x2000 907 IFF_PROMISC = 0x100
908 IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x7b9 908 IFF_RUNNING = 0x40
909 IPPROTO_AH = 0x33 909 IFF_SLAVE = 0x800
910 IPPROTO_BEETPH = 0x5e 910 IFF_TAP = 0x2
911 IPPROTO_COMP = 0x6c 911 IFF_TUN = 0x1
912 IPPROTO_DCCP = 0x21 912 IFF_TUN_EXCL = 0x8000
913 IPPROTO_DSTOPTS = 0x3c 913 IFF_UP = 0x1
914 IPPROTO_EGP = 0x8 914 IFF_VNET_HDR = 0x4000
915 IPPROTO_ENCAP = 0x62 915 IFF_VOLATILE = 0x70c5a
916 IPPROTO_ESP = 0x32 916 IFNAMSIZ = 0x10
917 IPPROTO_FRAGMENT = 0x2c 917 IGNBRK = 0x1
918 IPPROTO_GRE = 0x2f 918 IGNCR = 0x80
919 IPPROTO_HOPOPTS = 0x0 919 IGNPAR = 0x4
920 IPPROTO_ICMP = 0x1 920 IMAXBEL = 0x2000
921 IPPROTO_ICMPV6 = 0x3a 921 INLCR = 0x40
922 IPPROTO_IDP = 0x16 922 INPCK = 0x10
923 IPPROTO_IGMP = 0x2 923 IN_ACCESS = 0x1
924 IPPROTO_IP = 0x0 924 IN_ALL_EVENTS = 0xfff
925 IPPROTO_IPIP = 0x4 925 IN_ATTRIB = 0x4
926 IPPROTO_IPV6 = 0x29 926 IN_CLASSA_HOST = 0xffffff
927 IPPROTO_MH = 0x87 927 IN_CLASSA_MAX = 0x80
928 IPPROTO_MPLS = 0x89 928 IN_CLASSA_NET = 0xff000000
929 IPPROTO_MTP = 0x5c 929 IN_CLASSA_NSHIFT = 0x18
930 IPPROTO_NONE = 0x3b 930 IN_CLASSB_HOST = 0xffff
931 IPPROTO_PIM = 0x67 931 IN_CLASSB_MAX = 0x10000
932 IPPROTO_PUP = 0xc 932 IN_CLASSB_NET = 0xffff0000
933 IPPROTO_RAW = 0xff 933 IN_CLASSB_NSHIFT = 0x10
934 IPPROTO_ROUTING = 0x2b 934 IN_CLASSC_HOST = 0xff
935 IPPROTO_RSVP = 0x2e 935 IN_CLASSC_NET = 0xffffff00
936 IPPROTO_SCTP = 0x84 936 IN_CLASSC_NSHIFT = 0x8
937 IPPROTO_TCP = 0x6 937 IN_CLOEXEC = 0x80000
938 IPPROTO_TP = 0x1d 938 IN_CLOSE = 0x18
939 IPPROTO_UDP = 0x11 939 IN_CLOSE_NOWRITE = 0x10
940 IPPROTO_UDPLITE = 0x88 940 IN_CLOSE_WRITE = 0x8
941 IPV6_2292DSTOPTS = 0x4 941 IN_CREATE = 0x100
942 IPV6_2292HOPLIMIT = 0x8 942 IN_DELETE = 0x200
943 IPV6_2292HOPOPTS = 0x3 943 IN_DELETE_SELF = 0x400
944 IPV6_2292PKTINFO = 0x2 944 IN_DONT_FOLLOW = 0x2000000
945 IPV6_2292PKTOPTIONS = 0x6 945 IN_EXCL_UNLINK = 0x4000000
946 IPV6_2292RTHDR = 0x5 946 IN_IGNORED = 0x8000
947 IPV6_ADDRFORM = 0x1 947 IN_ISDIR = 0x40000000
948 IPV6_ADDR_PREFERENCES = 0x48 948 IN_LOOPBACKNET = 0x7f
949 IPV6_ADD_MEMBERSHIP = 0x14 949 IN_MASK_ADD = 0x20000000
950 IPV6_AUTHHDR = 0xa 950 IN_MASK_CREATE = 0x10000000
951 IPV6_AUTOFLOWLABEL = 0x46 951 IN_MODIFY = 0x2
952 IPV6_CHECKSUM = 0x7 952 IN_MOVE = 0xc0
953 IPV6_DONTFRAG = 0x3e 953 IN_MOVED_FROM = 0x40
954 IPV6_DROP_MEMBERSHIP = 0x15 954 IN_MOVED_TO = 0x80
955 IPV6_DSTOPTS = 0x3b 955 IN_MOVE_SELF = 0x800
956 IPV6_FREEBIND = 0x4e 956 IN_NONBLOCK = 0x800
957 IPV6_HDRINCL = 0x24 957 IN_ONESHOT = 0x80000000
958 IPV6_HOPLIMIT = 0x34 958 IN_ONLYDIR = 0x1000000
959 IPV6_HOPOPTS = 0x36 959 IN_OPEN = 0x20
960 IPV6_IPSEC_POLICY = 0x22 960 IN_Q_OVERFLOW = 0x4000
961 IPV6_JOIN_ANYCAST = 0x1b 961 IN_UNMOUNT = 0x2000
962 IPV6_JOIN_GROUP = 0x14 962 IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x7b9
963 IPV6_LEAVE_ANYCAST = 0x1c 963 IPPROTO_AH = 0x33
964 IPV6_LEAVE_GROUP = 0x15 964 IPPROTO_BEETPH = 0x5e
965 IPV6_MINHOPCOUNT = 0x49 965 IPPROTO_COMP = 0x6c
966 IPV6_MTU = 0x18 966 IPPROTO_DCCP = 0x21
967 IPV6_MTU_DISCOVER = 0x17 967 IPPROTO_DSTOPTS = 0x3c
968 IPV6_MULTICAST_ALL = 0x1d 968 IPPROTO_EGP = 0x8
969 IPV6_MULTICAST_HOPS = 0x12 969 IPPROTO_ENCAP = 0x62
970 IPV6_MULTICAST_IF = 0x11 970 IPPROTO_ESP = 0x32
971 IPV6_MULTICAST_LOOP = 0x13 971 IPPROTO_FRAGMENT = 0x2c
972 IPV6_NEXTHOP = 0x9 972 IPPROTO_GRE = 0x2f
973 IPV6_ORIGDSTADDR = 0x4a 973 IPPROTO_HOPOPTS = 0x0
974 IPV6_PATHMTU = 0x3d 974 IPPROTO_ICMP = 0x1
975 IPV6_PKTINFO = 0x32 975 IPPROTO_ICMPV6 = 0x3a
976 IPV6_PMTUDISC_DO = 0x2 976 IPPROTO_IDP = 0x16
977 IPV6_PMTUDISC_DONT = 0x0 977 IPPROTO_IGMP = 0x2
978 IPV6_PMTUDISC_INTERFACE = 0x4 978 IPPROTO_IP = 0x0
979 IPV6_PMTUDISC_OMIT = 0x5 979 IPPROTO_IPIP = 0x4
980 IPV6_PMTUDISC_PROBE = 0x3 980 IPPROTO_IPV6 = 0x29
981 IPV6_PMTUDISC_WANT = 0x1 981 IPPROTO_MH = 0x87
982 IPV6_RECVDSTOPTS = 0x3a 982 IPPROTO_MPLS = 0x89
983 IPV6_RECVERR = 0x19 983 IPPROTO_MTP = 0x5c
984 IPV6_RECVFRAGSIZE = 0x4d 984 IPPROTO_NONE = 0x3b
985 IPV6_RECVHOPLIMIT = 0x33 985 IPPROTO_PIM = 0x67
986 IPV6_RECVHOPOPTS = 0x35 986 IPPROTO_PUP = 0xc
987 IPV6_RECVORIGDSTADDR = 0x4a 987 IPPROTO_RAW = 0xff
988 IPV6_RECVPATHMTU = 0x3c 988 IPPROTO_ROUTING = 0x2b
989 IPV6_RECVPKTINFO = 0x31 989 IPPROTO_RSVP = 0x2e
990 IPV6_RECVRTHDR = 0x38 990 IPPROTO_SCTP = 0x84
991 IPV6_RECVTCLASS = 0x42 991 IPPROTO_TCP = 0x6
992 IPV6_ROUTER_ALERT = 0x16 992 IPPROTO_TP = 0x1d
993 IPV6_ROUTER_ALERT_ISOLATE = 0x1e 993 IPPROTO_UDP = 0x11
994 IPV6_RTHDR = 0x39 994 IPPROTO_UDPLITE = 0x88
995 IPV6_RTHDRDSTOPTS = 0x37 995 IPV6_2292DSTOPTS = 0x4
996 IPV6_RTHDR_LOOSE = 0x0 996 IPV6_2292HOPLIMIT = 0x8
997 IPV6_RTHDR_STRICT = 0x1 997 IPV6_2292HOPOPTS = 0x3
998 IPV6_RTHDR_TYPE_0 = 0x0 998 IPV6_2292PKTINFO = 0x2
999 IPV6_RXDSTOPTS = 0x3b 999 IPV6_2292PKTOPTIONS = 0x6
1000 IPV6_RXHOPOPTS = 0x36 1000 IPV6_2292RTHDR = 0x5
1001 IPV6_TCLASS = 0x43 1001 IPV6_ADDRFORM = 0x1
1002 IPV6_TRANSPARENT = 0x4b 1002 IPV6_ADDR_PREFERENCES = 0x48
1003 IPV6_UNICAST_HOPS = 0x10 1003 IPV6_ADD_MEMBERSHIP = 0x14
1004 IPV6_UNICAST_IF = 0x4c 1004 IPV6_AUTHHDR = 0xa
1005 IPV6_V6ONLY = 0x1a 1005 IPV6_AUTOFLOWLABEL = 0x46
1006 IPV6_XFRM_POLICY = 0x23 1006 IPV6_CHECKSUM = 0x7
1007 IP_ADD_MEMBERSHIP = 0x23 1007 IPV6_DONTFRAG = 0x3e
1008 IP_ADD_SOURCE_MEMBERSHIP = 0x27 1008 IPV6_DROP_MEMBERSHIP = 0x15
1009 IP_BIND_ADDRESS_NO_PORT = 0x18 1009 IPV6_DSTOPTS = 0x3b
1010 IP_BLOCK_SOURCE = 0x26 1010 IPV6_FREEBIND = 0x4e
1011 IP_CHECKSUM = 0x17 1011 IPV6_HDRINCL = 0x24
1012 IP_DEFAULT_MULTICAST_LOOP = 0x1 1012 IPV6_HOPLIMIT = 0x34
1013 IP_DEFAULT_MULTICAST_TTL = 0x1 1013 IPV6_HOPOPTS = 0x36
1014 IP_DF = 0x4000 1014 IPV6_IPSEC_POLICY = 0x22
1015 IP_DROP_MEMBERSHIP = 0x24 1015 IPV6_JOIN_ANYCAST = 0x1b
1016 IP_DROP_SOURCE_MEMBERSHIP = 0x28 1016 IPV6_JOIN_GROUP = 0x14
1017 IP_FREEBIND = 0xf 1017 IPV6_LEAVE_ANYCAST = 0x1c
1018 IP_HDRINCL = 0x3 1018 IPV6_LEAVE_GROUP = 0x15
1019 IP_IPSEC_POLICY = 0x10 1019 IPV6_MINHOPCOUNT = 0x49
1020 IP_MAXPACKET = 0xffff 1020 IPV6_MTU = 0x18
1021 IP_MAX_MEMBERSHIPS = 0x14 1021 IPV6_MTU_DISCOVER = 0x17
1022 IP_MF = 0x2000 1022 IPV6_MULTICAST_ALL = 0x1d
1023 IP_MINTTL = 0x15 1023 IPV6_MULTICAST_HOPS = 0x12
1024 IP_MSFILTER = 0x29 1024 IPV6_MULTICAST_IF = 0x11
1025 IP_MSS = 0x240 1025 IPV6_MULTICAST_LOOP = 0x13
1026 IP_MTU = 0xe 1026 IPV6_NEXTHOP = 0x9
1027 IP_MTU_DISCOVER = 0xa 1027 IPV6_ORIGDSTADDR = 0x4a
1028 IP_MULTICAST_ALL = 0x31 1028 IPV6_PATHMTU = 0x3d
1029 IP_MULTICAST_IF = 0x20 1029 IPV6_PKTINFO = 0x32
1030 IP_MULTICAST_LOOP = 0x22 1030 IPV6_PMTUDISC_DO = 0x2
1031 IP_MULTICAST_TTL = 0x21 1031 IPV6_PMTUDISC_DONT = 0x0
1032 IP_NODEFRAG = 0x16 1032 IPV6_PMTUDISC_INTERFACE = 0x4
1033 IP_OFFMASK = 0x1fff 1033 IPV6_PMTUDISC_OMIT = 0x5
1034 IP_OPTIONS = 0x4 1034 IPV6_PMTUDISC_PROBE = 0x3
1035 IP_ORIGDSTADDR = 0x14 1035 IPV6_PMTUDISC_WANT = 0x1
1036 IP_PASSSEC = 0x12 1036 IPV6_RECVDSTOPTS = 0x3a
1037 IP_PKTINFO = 0x8 1037 IPV6_RECVERR = 0x19
1038 IP_PKTOPTIONS = 0x9 1038 IPV6_RECVFRAGSIZE = 0x4d
1039 IP_PMTUDISC = 0xa 1039 IPV6_RECVHOPLIMIT = 0x33
1040 IP_PMTUDISC_DO = 0x2 1040 IPV6_RECVHOPOPTS = 0x35
1041 IP_PMTUDISC_DONT = 0x0 1041 IPV6_RECVORIGDSTADDR = 0x4a
1042 IP_PMTUDISC_INTERFACE = 0x4 1042 IPV6_RECVPATHMTU = 0x3c
1043 IP_PMTUDISC_OMIT = 0x5 1043 IPV6_RECVPKTINFO = 0x31
1044 IP_PMTUDISC_PROBE = 0x3 1044 IPV6_RECVRTHDR = 0x38
1045 IP_PMTUDISC_WANT = 0x1 1045 IPV6_RECVTCLASS = 0x42
1046 IP_RECVERR = 0xb 1046 IPV6_ROUTER_ALERT = 0x16
1047 IP_RECVFRAGSIZE = 0x19 1047 IPV6_ROUTER_ALERT_ISOLATE = 0x1e
1048 IP_RECVOPTS = 0x6 1048 IPV6_RTHDR = 0x39
1049 IP_RECVORIGDSTADDR = 0x14 1049 IPV6_RTHDRDSTOPTS = 0x37
1050 IP_RECVRETOPTS = 0x7 1050 IPV6_RTHDR_LOOSE = 0x0
1051 IP_RECVTOS = 0xd 1051 IPV6_RTHDR_STRICT = 0x1
1052 IP_RECVTTL = 0xc 1052 IPV6_RTHDR_TYPE_0 = 0x0
1053 IP_RETOPTS = 0x7 1053 IPV6_RXDSTOPTS = 0x3b
1054 IP_RF = 0x8000 1054 IPV6_RXHOPOPTS = 0x36
1055 IP_ROUTER_ALERT = 0x5 1055 IPV6_TCLASS = 0x43
1056 IP_TOS = 0x1 1056 IPV6_TRANSPARENT = 0x4b
1057 IP_TRANSPARENT = 0x13 1057 IPV6_UNICAST_HOPS = 0x10
1058 IP_TTL = 0x2 1058 IPV6_UNICAST_IF = 0x4c
1059 IP_UNBLOCK_SOURCE = 0x25 1059 IPV6_V6ONLY = 0x1a
1060 IP_UNICAST_IF = 0x32 1060 IPV6_XFRM_POLICY = 0x23
1061 IP_XFRM_POLICY = 0x11 1061 IP_ADD_MEMBERSHIP = 0x23
1062 ISIG = 0x1 1062 IP_ADD_SOURCE_MEMBERSHIP = 0x27
1063 ISOFS_SUPER_MAGIC = 0x9660 1063 IP_BIND_ADDRESS_NO_PORT = 0x18
1064 ISTRIP = 0x20 1064 IP_BLOCK_SOURCE = 0x26
1065 IUCLC = 0x200 1065 IP_CHECKSUM = 0x17
1066 IUTF8 = 0x4000 1066 IP_DEFAULT_MULTICAST_LOOP = 0x1
1067 IXANY = 0x800 1067 IP_DEFAULT_MULTICAST_TTL = 0x1
1068 IXOFF = 0x1000 1068 IP_DF = 0x4000
1069 IXON = 0x400 1069 IP_DROP_MEMBERSHIP = 0x24
1070 JFFS2_SUPER_MAGIC = 0x72b6 1070 IP_DROP_SOURCE_MEMBERSHIP = 0x28
1071 KEXEC_ARCH_386 = 0x30000 1071 IP_FREEBIND = 0xf
1072 KEXEC_ARCH_68K = 0x40000 1072 IP_HDRINCL = 0x3
1073 KEXEC_ARCH_AARCH64 = 0xb70000 1073 IP_IPSEC_POLICY = 0x10
1074 KEXEC_ARCH_ARM = 0x280000 1074 IP_MAXPACKET = 0xffff
1075 KEXEC_ARCH_DEFAULT = 0x0 1075 IP_MAX_MEMBERSHIPS = 0x14
1076 KEXEC_ARCH_IA_64 = 0x320000 1076 IP_MF = 0x2000
1077 KEXEC_ARCH_MASK = 0xffff0000 1077 IP_MINTTL = 0x15
1078 KEXEC_ARCH_MIPS = 0x80000 1078 IP_MSFILTER = 0x29
1079 KEXEC_ARCH_MIPS_LE = 0xa0000 1079 IP_MSS = 0x240
1080 KEXEC_ARCH_PPC = 0x140000 1080 IP_MTU = 0xe
1081 KEXEC_ARCH_PPC64 = 0x150000 1081 IP_MTU_DISCOVER = 0xa
1082 KEXEC_ARCH_S390 = 0x160000 1082 IP_MULTICAST_ALL = 0x31
1083 KEXEC_ARCH_SH = 0x2a0000 1083 IP_MULTICAST_IF = 0x20
1084 KEXEC_ARCH_X86_64 = 0x3e0000 1084 IP_MULTICAST_LOOP = 0x22
1085 KEXEC_FILE_NO_INITRAMFS = 0x4 1085 IP_MULTICAST_TTL = 0x21
1086 KEXEC_FILE_ON_CRASH = 0x2 1086 IP_NODEFRAG = 0x16
1087 KEXEC_FILE_UNLOAD = 0x1 1087 IP_OFFMASK = 0x1fff
1088 KEXEC_ON_CRASH = 0x1 1088 IP_OPTIONS = 0x4
1089 KEXEC_PRESERVE_CONTEXT = 0x2 1089 IP_ORIGDSTADDR = 0x14
1090 KEXEC_SEGMENT_MAX = 0x10 1090 IP_PASSSEC = 0x12
1091 KEYCTL_ASSUME_AUTHORITY = 0x10 1091 IP_PKTINFO = 0x8
1092 KEYCTL_CHOWN = 0x4 1092 IP_PKTOPTIONS = 0x9
1093 KEYCTL_CLEAR = 0x7 1093 IP_PMTUDISC = 0xa
1094 KEYCTL_DESCRIBE = 0x6 1094 IP_PMTUDISC_DO = 0x2
1095 KEYCTL_DH_COMPUTE = 0x17 1095 IP_PMTUDISC_DONT = 0x0
1096 KEYCTL_GET_KEYRING_ID = 0x0 1096 IP_PMTUDISC_INTERFACE = 0x4
1097 KEYCTL_GET_PERSISTENT = 0x16 1097 IP_PMTUDISC_OMIT = 0x5
1098 KEYCTL_GET_SECURITY = 0x11 1098 IP_PMTUDISC_PROBE = 0x3
1099 KEYCTL_INSTANTIATE = 0xc 1099 IP_PMTUDISC_WANT = 0x1
1100 KEYCTL_INSTANTIATE_IOV = 0x14 1100 IP_RECVERR = 0xb
1101 KEYCTL_INVALIDATE = 0x15 1101 IP_RECVFRAGSIZE = 0x19
1102 KEYCTL_JOIN_SESSION_KEYRING = 0x1 1102 IP_RECVOPTS = 0x6
1103 KEYCTL_LINK = 0x8 1103 IP_RECVORIGDSTADDR = 0x14
1104 KEYCTL_NEGATE = 0xd 1104 IP_RECVRETOPTS = 0x7
1105 KEYCTL_PKEY_DECRYPT = 0x1a 1105 IP_RECVTOS = 0xd
1106 KEYCTL_PKEY_ENCRYPT = 0x19 1106 IP_RECVTTL = 0xc
1107 KEYCTL_PKEY_QUERY = 0x18 1107 IP_RETOPTS = 0x7
1108 KEYCTL_PKEY_SIGN = 0x1b 1108 IP_RF = 0x8000
1109 KEYCTL_PKEY_VERIFY = 0x1c 1109 IP_ROUTER_ALERT = 0x5
1110 KEYCTL_READ = 0xb 1110 IP_TOS = 0x1
1111 KEYCTL_REJECT = 0x13 1111 IP_TRANSPARENT = 0x13
1112 KEYCTL_RESTRICT_KEYRING = 0x1d 1112 IP_TTL = 0x2
1113 KEYCTL_REVOKE = 0x3 1113 IP_UNBLOCK_SOURCE = 0x25
1114 KEYCTL_SEARCH = 0xa 1114 IP_UNICAST_IF = 0x32
1115 KEYCTL_SESSION_TO_PARENT = 0x12 1115 IP_XFRM_POLICY = 0x11
1116 KEYCTL_SETPERM = 0x5 1116 ISIG = 0x1
1117 KEYCTL_SET_REQKEY_KEYRING = 0xe 1117 ISOFS_SUPER_MAGIC = 0x9660
1118 KEYCTL_SET_TIMEOUT = 0xf 1118 ISTRIP = 0x20
1119 KEYCTL_SUPPORTS_DECRYPT = 0x2 1119 IUCLC = 0x200
1120 KEYCTL_SUPPORTS_ENCRYPT = 0x1 1120 IUTF8 = 0x4000
1121 KEYCTL_SUPPORTS_SIGN = 0x4 1121 IXANY = 0x800
1122 KEYCTL_SUPPORTS_VERIFY = 0x8 1122 IXOFF = 0x1000
1123 KEYCTL_UNLINK = 0x9 1123 IXON = 0x400
1124 KEYCTL_UPDATE = 0x2 1124 JFFS2_SUPER_MAGIC = 0x72b6
1125 KEY_REQKEY_DEFL_DEFAULT = 0x0 1125 KEXEC_ARCH_386 = 0x30000
1126 KEY_REQKEY_DEFL_GROUP_KEYRING = 0x6 1126 KEXEC_ARCH_68K = 0x40000
1127 KEY_REQKEY_DEFL_NO_CHANGE = -0x1 1127 KEXEC_ARCH_AARCH64 = 0xb70000
1128 KEY_REQKEY_DEFL_PROCESS_KEYRING = 0x2 1128 KEXEC_ARCH_ARM = 0x280000
1129 KEY_REQKEY_DEFL_REQUESTOR_KEYRING = 0x7 1129 KEXEC_ARCH_DEFAULT = 0x0
1130 KEY_REQKEY_DEFL_SESSION_KEYRING = 0x3 1130 KEXEC_ARCH_IA_64 = 0x320000
1131 KEY_REQKEY_DEFL_THREAD_KEYRING = 0x1 1131 KEXEC_ARCH_MASK = 0xffff0000
1132 KEY_REQKEY_DEFL_USER_KEYRING = 0x4 1132 KEXEC_ARCH_MIPS = 0x80000
1133 KEY_REQKEY_DEFL_USER_SESSION_KEYRING = 0x5 1133 KEXEC_ARCH_MIPS_LE = 0xa0000
1134 KEY_SPEC_GROUP_KEYRING = -0x6 1134 KEXEC_ARCH_PARISC = 0xf0000
1135 KEY_SPEC_PROCESS_KEYRING = -0x2 1135 KEXEC_ARCH_PPC = 0x140000
1136 KEY_SPEC_REQKEY_AUTH_KEY = -0x7 1136 KEXEC_ARCH_PPC64 = 0x150000
1137 KEY_SPEC_REQUESTOR_KEYRING = -0x8 1137 KEXEC_ARCH_S390 = 0x160000
1138 KEY_SPEC_SESSION_KEYRING = -0x3 1138 KEXEC_ARCH_SH = 0x2a0000
1139 KEY_SPEC_THREAD_KEYRING = -0x1 1139 KEXEC_ARCH_X86_64 = 0x3e0000
1140 KEY_SPEC_USER_KEYRING = -0x4 1140 KEXEC_FILE_NO_INITRAMFS = 0x4
1141 KEY_SPEC_USER_SESSION_KEYRING = -0x5 1141 KEXEC_FILE_ON_CRASH = 0x2
1142 LINUX_REBOOT_CMD_CAD_OFF = 0x0 1142 KEXEC_FILE_UNLOAD = 0x1
1143 LINUX_REBOOT_CMD_CAD_ON = 0x89abcdef 1143 KEXEC_ON_CRASH = 0x1
1144 LINUX_REBOOT_CMD_HALT = 0xcdef0123 1144 KEXEC_PRESERVE_CONTEXT = 0x2
1145 LINUX_REBOOT_CMD_KEXEC = 0x45584543 1145 KEXEC_SEGMENT_MAX = 0x10
1146 LINUX_REBOOT_CMD_POWER_OFF = 0x4321fedc 1146 KEYCTL_ASSUME_AUTHORITY = 0x10
1147 LINUX_REBOOT_CMD_RESTART = 0x1234567 1147 KEYCTL_CAPABILITIES = 0x1f
1148 LINUX_REBOOT_CMD_RESTART2 = 0xa1b2c3d4 1148 KEYCTL_CAPS0_BIG_KEY = 0x10
1149 LINUX_REBOOT_CMD_SW_SUSPEND = 0xd000fce2 1149 KEYCTL_CAPS0_CAPABILITIES = 0x1
1150 LINUX_REBOOT_MAGIC1 = 0xfee1dead 1150 KEYCTL_CAPS0_DIFFIE_HELLMAN = 0x4
1151 LINUX_REBOOT_MAGIC2 = 0x28121969 1151 KEYCTL_CAPS0_INVALIDATE = 0x20
1152 LOCK_EX = 0x2 1152 KEYCTL_CAPS0_MOVE = 0x80
1153 LOCK_NB = 0x4 1153 KEYCTL_CAPS0_PERSISTENT_KEYRINGS = 0x2
1154 LOCK_SH = 0x1 1154 KEYCTL_CAPS0_PUBLIC_KEY = 0x8
1155 LOCK_UN = 0x8 1155 KEYCTL_CAPS0_RESTRICT_KEYRING = 0x40
1156 LOOP_CLR_FD = 0x4c01 1156 KEYCTL_CAPS1_NS_KEYRING_NAME = 0x1
1157 LOOP_CTL_ADD = 0x4c80 1157 KEYCTL_CAPS1_NS_KEY_TAG = 0x2
1158 LOOP_CTL_GET_FREE = 0x4c82 1158 KEYCTL_CHOWN = 0x4
1159 LOOP_CTL_REMOVE = 0x4c81 1159 KEYCTL_CLEAR = 0x7
1160 LOOP_GET_STATUS = 0x4c03 1160 KEYCTL_DESCRIBE = 0x6
1161 LOOP_GET_STATUS64 = 0x4c05 1161 KEYCTL_DH_COMPUTE = 0x17
1162 LOOP_SET_BLOCK_SIZE = 0x4c09 1162 KEYCTL_GET_KEYRING_ID = 0x0
1163 LOOP_SET_CAPACITY = 0x4c07 1163 KEYCTL_GET_PERSISTENT = 0x16
1164 LOOP_SET_DIRECT_IO = 0x4c08 1164 KEYCTL_GET_SECURITY = 0x11
1165 LOOP_SET_FD = 0x4c00 1165 KEYCTL_INSTANTIATE = 0xc
1166 LOOP_SET_STATUS = 0x4c02 1166 KEYCTL_INSTANTIATE_IOV = 0x14
1167 LOOP_SET_STATUS64 = 0x4c04 1167 KEYCTL_INVALIDATE = 0x15
1168 LO_KEY_SIZE = 0x20 1168 KEYCTL_JOIN_SESSION_KEYRING = 0x1
1169 LO_NAME_SIZE = 0x40 1169 KEYCTL_LINK = 0x8
1170 MADV_DODUMP = 0x11 1170 KEYCTL_MOVE = 0x1e
1171 MADV_DOFORK = 0xb 1171 KEYCTL_MOVE_EXCL = 0x1
1172 MADV_DONTDUMP = 0x10 1172 KEYCTL_NEGATE = 0xd
1173 MADV_DONTFORK = 0xa 1173 KEYCTL_PKEY_DECRYPT = 0x1a
1174 MADV_DONTNEED = 0x4 1174 KEYCTL_PKEY_ENCRYPT = 0x19
1175 MADV_FREE = 0x8 1175 KEYCTL_PKEY_QUERY = 0x18
1176 MADV_HUGEPAGE = 0xe 1176 KEYCTL_PKEY_SIGN = 0x1b
1177 MADV_HWPOISON = 0x64 1177 KEYCTL_PKEY_VERIFY = 0x1c
1178 MADV_KEEPONFORK = 0x13 1178 KEYCTL_READ = 0xb
1179 MADV_MERGEABLE = 0xc 1179 KEYCTL_REJECT = 0x13
1180 MADV_NOHUGEPAGE = 0xf 1180 KEYCTL_RESTRICT_KEYRING = 0x1d
1181 MADV_NORMAL = 0x0 1181 KEYCTL_REVOKE = 0x3
1182 MADV_RANDOM = 0x1 1182 KEYCTL_SEARCH = 0xa
1183 MADV_REMOVE = 0x9 1183 KEYCTL_SESSION_TO_PARENT = 0x12
1184 MADV_SEQUENTIAL = 0x2 1184 KEYCTL_SETPERM = 0x5
1185 MADV_UNMERGEABLE = 0xd 1185 KEYCTL_SET_REQKEY_KEYRING = 0xe
1186 MADV_WILLNEED = 0x3 1186 KEYCTL_SET_TIMEOUT = 0xf
1187 MADV_WIPEONFORK = 0x12 1187 KEYCTL_SUPPORTS_DECRYPT = 0x2
1188 MAP_ANON = 0x20 1188 KEYCTL_SUPPORTS_ENCRYPT = 0x1
1189 MAP_ANONYMOUS = 0x20 1189 KEYCTL_SUPPORTS_SIGN = 0x4
1190 MAP_DENYWRITE = 0x800 1190 KEYCTL_SUPPORTS_VERIFY = 0x8
1191 MAP_EXECUTABLE = 0x1000 1191 KEYCTL_UNLINK = 0x9
1192 MAP_FILE = 0x0 1192 KEYCTL_UPDATE = 0x2
1193 MAP_FIXED = 0x10 1193 KEY_REQKEY_DEFL_DEFAULT = 0x0
1194 MAP_FIXED_NOREPLACE = 0x100000 1194 KEY_REQKEY_DEFL_GROUP_KEYRING = 0x6
1195 MAP_GROWSDOWN = 0x100 1195 KEY_REQKEY_DEFL_NO_CHANGE = -0x1
1196 MAP_HUGETLB = 0x40000 1196 KEY_REQKEY_DEFL_PROCESS_KEYRING = 0x2
1197 MAP_HUGE_MASK = 0x3f 1197 KEY_REQKEY_DEFL_REQUESTOR_KEYRING = 0x7
1198 MAP_HUGE_SHIFT = 0x1a 1198 KEY_REQKEY_DEFL_SESSION_KEYRING = 0x3
1199 MAP_LOCKED = 0x2000 1199 KEY_REQKEY_DEFL_THREAD_KEYRING = 0x1
1200 MAP_NONBLOCK = 0x10000 1200 KEY_REQKEY_DEFL_USER_KEYRING = 0x4
1201 MAP_NORESERVE = 0x4000 1201 KEY_REQKEY_DEFL_USER_SESSION_KEYRING = 0x5
1202 MAP_POPULATE = 0x8000 1202 KEY_SPEC_GROUP_KEYRING = -0x6
1203 MAP_PRIVATE = 0x2 1203 KEY_SPEC_PROCESS_KEYRING = -0x2
1204 MAP_SHARED = 0x1 1204 KEY_SPEC_REQKEY_AUTH_KEY = -0x7
1205 MAP_SHARED_VALIDATE = 0x3 1205 KEY_SPEC_REQUESTOR_KEYRING = -0x8
1206 MAP_STACK = 0x20000 1206 KEY_SPEC_SESSION_KEYRING = -0x3
1207 MAP_SYNC = 0x80000 1207 KEY_SPEC_THREAD_KEYRING = -0x1
1208 MAP_TYPE = 0xf 1208 KEY_SPEC_USER_KEYRING = -0x4
1209 MCAST_BLOCK_SOURCE = 0x2b 1209 KEY_SPEC_USER_SESSION_KEYRING = -0x5
1210 MCAST_EXCLUDE = 0x0 1210 LINUX_REBOOT_CMD_CAD_OFF = 0x0
1211 MCAST_INCLUDE = 0x1 1211 LINUX_REBOOT_CMD_CAD_ON = 0x89abcdef
1212 MCAST_JOIN_GROUP = 0x2a 1212 LINUX_REBOOT_CMD_HALT = 0xcdef0123
1213 MCAST_JOIN_SOURCE_GROUP = 0x2e 1213 LINUX_REBOOT_CMD_KEXEC = 0x45584543
1214 MCAST_LEAVE_GROUP = 0x2d 1214 LINUX_REBOOT_CMD_POWER_OFF = 0x4321fedc
1215 MCAST_LEAVE_SOURCE_GROUP = 0x2f 1215 LINUX_REBOOT_CMD_RESTART = 0x1234567
1216 MCAST_MSFILTER = 0x30 1216 LINUX_REBOOT_CMD_RESTART2 = 0xa1b2c3d4
1217 MCAST_UNBLOCK_SOURCE = 0x2c 1217 LINUX_REBOOT_CMD_SW_SUSPEND = 0xd000fce2
1218 MCL_CURRENT = 0x1 1218 LINUX_REBOOT_MAGIC1 = 0xfee1dead
1219 MCL_FUTURE = 0x2 1219 LINUX_REBOOT_MAGIC2 = 0x28121969
1220 MCL_ONFAULT = 0x4 1220 LOCK_EX = 0x2
1221 MFD_ALLOW_SEALING = 0x2 1221 LOCK_NB = 0x4
1222 MFD_CLOEXEC = 0x1 1222 LOCK_SH = 0x1
1223 MFD_HUGETLB = 0x4 1223 LOCK_UN = 0x8
1224 MFD_HUGE_16GB = -0x78000000 1224 LOOP_CLR_FD = 0x4c01
1225 MFD_HUGE_16MB = 0x60000000 1225 LOOP_CTL_ADD = 0x4c80
1226 MFD_HUGE_1GB = 0x78000000 1226 LOOP_CTL_GET_FREE = 0x4c82
1227 MFD_HUGE_1MB = 0x50000000 1227 LOOP_CTL_REMOVE = 0x4c81
1228 MFD_HUGE_256MB = 0x70000000 1228 LOOP_GET_STATUS = 0x4c03
1229 MFD_HUGE_2GB = 0x7c000000 1229 LOOP_GET_STATUS64 = 0x4c05
1230 MFD_HUGE_2MB = 0x54000000 1230 LOOP_SET_BLOCK_SIZE = 0x4c09
1231 MFD_HUGE_32MB = 0x64000000 1231 LOOP_SET_CAPACITY = 0x4c07
1232 MFD_HUGE_512KB = 0x4c000000 1232 LOOP_SET_DIRECT_IO = 0x4c08
1233 MFD_HUGE_512MB = 0x74000000 1233 LOOP_SET_FD = 0x4c00
1234 MFD_HUGE_64KB = 0x40000000 1234 LOOP_SET_STATUS = 0x4c02
1235 MFD_HUGE_8MB = 0x5c000000 1235 LOOP_SET_STATUS64 = 0x4c04
1236 MFD_HUGE_MASK = 0x3f 1236 LO_KEY_SIZE = 0x20
1237 MFD_HUGE_SHIFT = 0x1a 1237 LO_NAME_SIZE = 0x40
1238 MINIX2_SUPER_MAGIC = 0x2468 1238 MADV_COLD = 0x14
1239 MINIX2_SUPER_MAGIC2 = 0x2478 1239 MADV_DODUMP = 0x11
1240 MINIX3_SUPER_MAGIC = 0x4d5a 1240 MADV_DOFORK = 0xb
1241 MINIX_SUPER_MAGIC = 0x137f 1241 MADV_DONTDUMP = 0x10
1242 MINIX_SUPER_MAGIC2 = 0x138f 1242 MADV_DONTFORK = 0xa
1243 MNT_DETACH = 0x2 1243 MADV_DONTNEED = 0x4
1244 MNT_EXPIRE = 0x4 1244 MADV_FREE = 0x8
1245 MNT_FORCE = 0x1 1245 MADV_HUGEPAGE = 0xe
1246 MODULE_INIT_IGNORE_MODVERSIONS = 0x1 1246 MADV_HWPOISON = 0x64
1247 MODULE_INIT_IGNORE_VERMAGIC = 0x2 1247 MADV_KEEPONFORK = 0x13
1248 MSDOS_SUPER_MAGIC = 0x4d44 1248 MADV_MERGEABLE = 0xc
1249 MSG_BATCH = 0x40000 1249 MADV_NOHUGEPAGE = 0xf
1250 MSG_CMSG_CLOEXEC = 0x40000000 1250 MADV_NORMAL = 0x0
1251 MSG_CONFIRM = 0x800 1251 MADV_PAGEOUT = 0x15
1252 MSG_CTRUNC = 0x8 1252 MADV_RANDOM = 0x1
1253 MSG_DONTROUTE = 0x4 1253 MADV_REMOVE = 0x9
1254 MSG_DONTWAIT = 0x40 1254 MADV_SEQUENTIAL = 0x2
1255 MSG_EOR = 0x80 1255 MADV_UNMERGEABLE = 0xd
1256 MSG_ERRQUEUE = 0x2000 1256 MADV_WILLNEED = 0x3
1257 MSG_FASTOPEN = 0x20000000 1257 MADV_WIPEONFORK = 0x12
1258 MSG_FIN = 0x200 1258 MAP_ANON = 0x20
1259 MSG_MORE = 0x8000 1259 MAP_ANONYMOUS = 0x20
1260 MSG_NOSIGNAL = 0x4000 1260 MAP_DENYWRITE = 0x800
1261 MSG_OOB = 0x1 1261 MAP_EXECUTABLE = 0x1000
1262 MSG_PEEK = 0x2 1262 MAP_FILE = 0x0
1263 MSG_PROXY = 0x10 1263 MAP_FIXED = 0x10
1264 MSG_RST = 0x1000 1264 MAP_FIXED_NOREPLACE = 0x100000
1265 MSG_SYN = 0x400 1265 MAP_GROWSDOWN = 0x100
1266 MSG_TRUNC = 0x20 1266 MAP_HUGETLB = 0x40000
1267 MSG_TRYHARD = 0x4 1267 MAP_HUGE_MASK = 0x3f
1268 MSG_WAITALL = 0x100 1268 MAP_HUGE_SHIFT = 0x1a
1269 MSG_WAITFORONE = 0x10000 1269 MAP_LOCKED = 0x2000
1270 MSG_ZEROCOPY = 0x4000000 1270 MAP_NONBLOCK = 0x10000
1271 MS_ACTIVE = 0x40000000 1271 MAP_NORESERVE = 0x4000
1272 MS_ASYNC = 0x1 1272 MAP_POPULATE = 0x8000
1273 MS_BIND = 0x1000 1273 MAP_PRIVATE = 0x2
1274 MS_BORN = 0x20000000 1274 MAP_SHARED = 0x1
1275 MS_DIRSYNC = 0x80 1275 MAP_SHARED_VALIDATE = 0x3
1276 MS_INVALIDATE = 0x2 1276 MAP_STACK = 0x20000
1277 MS_I_VERSION = 0x800000 1277 MAP_SYNC = 0x80000
1278 MS_KERNMOUNT = 0x400000 1278 MAP_TYPE = 0xf
1279 MS_LAZYTIME = 0x2000000 1279 MCAST_BLOCK_SOURCE = 0x2b
1280 MS_MANDLOCK = 0x40 1280 MCAST_EXCLUDE = 0x0
1281 MS_MGC_MSK = 0xffff0000 1281 MCAST_INCLUDE = 0x1
1282 MS_MGC_VAL = 0xc0ed0000 1282 MCAST_JOIN_GROUP = 0x2a
1283 MS_MOVE = 0x2000 1283 MCAST_JOIN_SOURCE_GROUP = 0x2e
1284 MS_NOATIME = 0x400 1284 MCAST_LEAVE_GROUP = 0x2d
1285 MS_NODEV = 0x4 1285 MCAST_LEAVE_SOURCE_GROUP = 0x2f
1286 MS_NODIRATIME = 0x800 1286 MCAST_MSFILTER = 0x30
1287 MS_NOEXEC = 0x8 1287 MCAST_UNBLOCK_SOURCE = 0x2c
1288 MS_NOREMOTELOCK = 0x8000000 1288 MCL_CURRENT = 0x1
1289 MS_NOSEC = 0x10000000 1289 MCL_FUTURE = 0x2
1290 MS_NOSUID = 0x2 1290 MCL_ONFAULT = 0x4
1291 MS_NOUSER = -0x80000000 1291 MFD_ALLOW_SEALING = 0x2
1292 MS_POSIXACL = 0x10000 1292 MFD_CLOEXEC = 0x1
1293 MS_PRIVATE = 0x40000 1293 MFD_HUGETLB = 0x4
1294 MS_RDONLY = 0x1 1294 MFD_HUGE_16GB = -0x78000000
1295 MS_REC = 0x4000 1295 MFD_HUGE_16MB = 0x60000000
1296 MS_RELATIME = 0x200000 1296 MFD_HUGE_1GB = 0x78000000
1297 MS_REMOUNT = 0x20 1297 MFD_HUGE_1MB = 0x50000000
1298 MS_RMT_MASK = 0x2800051 1298 MFD_HUGE_256MB = 0x70000000
1299 MS_SHARED = 0x100000 1299 MFD_HUGE_2GB = 0x7c000000
1300 MS_SILENT = 0x8000 1300 MFD_HUGE_2MB = 0x54000000
1301 MS_SLAVE = 0x80000 1301 MFD_HUGE_32MB = 0x64000000
1302 MS_STRICTATIME = 0x1000000 1302 MFD_HUGE_512KB = 0x4c000000
1303 MS_SUBMOUNT = 0x4000000 1303 MFD_HUGE_512MB = 0x74000000
1304 MS_SYNC = 0x4 1304 MFD_HUGE_64KB = 0x40000000
1305 MS_SYNCHRONOUS = 0x10 1305 MFD_HUGE_8MB = 0x5c000000
1306 MS_UNBINDABLE = 0x20000 1306 MFD_HUGE_MASK = 0x3f
1307 MS_VERBOSE = 0x8000 1307 MFD_HUGE_SHIFT = 0x1a
1308 MTD_INODE_FS_MAGIC = 0x11307854 1308 MINIX2_SUPER_MAGIC = 0x2468
1309 NAME_MAX = 0xff 1309 MINIX2_SUPER_MAGIC2 = 0x2478
1310 NCP_SUPER_MAGIC = 0x564c 1310 MINIX3_SUPER_MAGIC = 0x4d5a
1311 NETLINK_ADD_MEMBERSHIP = 0x1 1311 MINIX_SUPER_MAGIC = 0x137f
1312 NETLINK_AUDIT = 0x9 1312 MINIX_SUPER_MAGIC2 = 0x138f
1313 NETLINK_BROADCAST_ERROR = 0x4 1313 MNT_DETACH = 0x2
1314 NETLINK_CAP_ACK = 0xa 1314 MNT_EXPIRE = 0x4
1315 NETLINK_CONNECTOR = 0xb 1315 MNT_FORCE = 0x1
1316 NETLINK_CRYPTO = 0x15 1316 MODULE_INIT_IGNORE_MODVERSIONS = 0x1
1317 NETLINK_DNRTMSG = 0xe 1317 MODULE_INIT_IGNORE_VERMAGIC = 0x2
1318 NETLINK_DROP_MEMBERSHIP = 0x2 1318 MSDOS_SUPER_MAGIC = 0x4d44
1319 NETLINK_ECRYPTFS = 0x13 1319 MSG_BATCH = 0x40000
1320 NETLINK_EXT_ACK = 0xb 1320 MSG_CMSG_CLOEXEC = 0x40000000
1321 NETLINK_FIB_LOOKUP = 0xa 1321 MSG_CONFIRM = 0x800
1322 NETLINK_FIREWALL = 0x3 1322 MSG_CTRUNC = 0x8
1323 NETLINK_GENERIC = 0x10 1323 MSG_DONTROUTE = 0x4
1324 NETLINK_GET_STRICT_CHK = 0xc 1324 MSG_DONTWAIT = 0x40
1325 NETLINK_INET_DIAG = 0x4 1325 MSG_EOR = 0x80
1326 NETLINK_IP6_FW = 0xd 1326 MSG_ERRQUEUE = 0x2000
1327 NETLINK_ISCSI = 0x8 1327 MSG_FASTOPEN = 0x20000000
1328 NETLINK_KOBJECT_UEVENT = 0xf 1328 MSG_FIN = 0x200
1329 NETLINK_LISTEN_ALL_NSID = 0x8 1329 MSG_MORE = 0x8000
1330 NETLINK_LIST_MEMBERSHIPS = 0x9 1330 MSG_NOSIGNAL = 0x4000
1331 NETLINK_NETFILTER = 0xc 1331 MSG_OOB = 0x1
1332 NETLINK_NFLOG = 0x5 1332 MSG_PEEK = 0x2
1333 NETLINK_NO_ENOBUFS = 0x5 1333 MSG_PROXY = 0x10
1334 NETLINK_PKTINFO = 0x3 1334 MSG_RST = 0x1000
1335 NETLINK_RDMA = 0x14 1335 MSG_SYN = 0x400
1336 NETLINK_ROUTE = 0x0 1336 MSG_TRUNC = 0x20
1337 NETLINK_RX_RING = 0x6 1337 MSG_TRYHARD = 0x4
1338 NETLINK_SCSITRANSPORT = 0x12 1338 MSG_WAITALL = 0x100
1339 NETLINK_SELINUX = 0x7 1339 MSG_WAITFORONE = 0x10000
1340 NETLINK_SMC = 0x16 1340 MSG_ZEROCOPY = 0x4000000
1341 NETLINK_SOCK_DIAG = 0x4 1341 MS_ACTIVE = 0x40000000
1342 NETLINK_TX_RING = 0x7 1342 MS_ASYNC = 0x1
1343 NETLINK_UNUSED = 0x1 1343 MS_BIND = 0x1000
1344 NETLINK_USERSOCK = 0x2 1344 MS_BORN = 0x20000000
1345 NETLINK_XFRM = 0x6 1345 MS_DIRSYNC = 0x80
1346 NETNSA_MAX = 0x5 1346 MS_INVALIDATE = 0x2
1347 NETNSA_NSID_NOT_ASSIGNED = -0x1 1347 MS_I_VERSION = 0x800000
1348 NFNETLINK_V0 = 0x0 1348 MS_KERNMOUNT = 0x400000
1349 NFNLGRP_ACCT_QUOTA = 0x8 1349 MS_LAZYTIME = 0x2000000
1350 NFNLGRP_CONNTRACK_DESTROY = 0x3 1350 MS_MANDLOCK = 0x40
1351 NFNLGRP_CONNTRACK_EXP_DESTROY = 0x6 1351 MS_MGC_MSK = 0xffff0000
1352 NFNLGRP_CONNTRACK_EXP_NEW = 0x4 1352 MS_MGC_VAL = 0xc0ed0000
1353 NFNLGRP_CONNTRACK_EXP_UPDATE = 0x5 1353 MS_MOVE = 0x2000
1354 NFNLGRP_CONNTRACK_NEW = 0x1 1354 MS_NOATIME = 0x400
1355 NFNLGRP_CONNTRACK_UPDATE = 0x2 1355 MS_NODEV = 0x4
1356 NFNLGRP_MAX = 0x9 1356 MS_NODIRATIME = 0x800
1357 NFNLGRP_NFTABLES = 0x7 1357 MS_NOEXEC = 0x8
1358 NFNLGRP_NFTRACE = 0x9 1358 MS_NOREMOTELOCK = 0x8000000
1359 NFNLGRP_NONE = 0x0 1359 MS_NOSEC = 0x10000000
1360 NFNL_BATCH_MAX = 0x1 1360 MS_NOSUID = 0x2
1361 NFNL_MSG_BATCH_BEGIN = 0x10 1361 MS_NOUSER = -0x80000000
1362 NFNL_MSG_BATCH_END = 0x11 1362 MS_POSIXACL = 0x10000
1363 NFNL_NFA_NEST = 0x8000 1363 MS_PRIVATE = 0x40000
1364 NFNL_SUBSYS_ACCT = 0x7 1364 MS_RDONLY = 0x1
1365 NFNL_SUBSYS_COUNT = 0xc 1365 MS_REC = 0x4000
1366 NFNL_SUBSYS_CTHELPER = 0x9 1366 MS_RELATIME = 0x200000
1367 NFNL_SUBSYS_CTNETLINK = 0x1 1367 MS_REMOUNT = 0x20
1368 NFNL_SUBSYS_CTNETLINK_EXP = 0x2 1368 MS_RMT_MASK = 0x2800051
1369 NFNL_SUBSYS_CTNETLINK_TIMEOUT = 0x8 1369 MS_SHARED = 0x100000
1370 NFNL_SUBSYS_IPSET = 0x6 1370 MS_SILENT = 0x8000
1371 NFNL_SUBSYS_NFTABLES = 0xa 1371 MS_SLAVE = 0x80000
1372 NFNL_SUBSYS_NFT_COMPAT = 0xb 1372 MS_STRICTATIME = 0x1000000
1373 NFNL_SUBSYS_NONE = 0x0 1373 MS_SUBMOUNT = 0x4000000
1374 NFNL_SUBSYS_OSF = 0x5 1374 MS_SYNC = 0x4
1375 NFNL_SUBSYS_QUEUE = 0x3 1375 MS_SYNCHRONOUS = 0x10
1376 NFNL_SUBSYS_ULOG = 0x4 1376 MS_UNBINDABLE = 0x20000
1377 NFS_SUPER_MAGIC = 0x6969 1377 MS_VERBOSE = 0x8000
1378 NILFS_SUPER_MAGIC = 0x3434 1378 MTD_INODE_FS_MAGIC = 0x11307854
1379 NL0 = 0x0 1379 NAME_MAX = 0xff
1380 NL1 = 0x100 1380 NCP_SUPER_MAGIC = 0x564c
1381 NLA_ALIGNTO = 0x4 1381 NETLINK_ADD_MEMBERSHIP = 0x1
1382 NLA_F_NESTED = 0x8000 1382 NETLINK_AUDIT = 0x9
1383 NLA_F_NET_BYTEORDER = 0x4000 1383 NETLINK_BROADCAST_ERROR = 0x4
1384 NLA_HDRLEN = 0x4 1384 NETLINK_CAP_ACK = 0xa
1385 NLDLY = 0x100 1385 NETLINK_CONNECTOR = 0xb
1386 NLMSG_ALIGNTO = 0x4 1386 NETLINK_CRYPTO = 0x15
1387 NLMSG_DONE = 0x3 1387 NETLINK_DNRTMSG = 0xe
1388 NLMSG_ERROR = 0x2 1388 NETLINK_DROP_MEMBERSHIP = 0x2
1389 NLMSG_HDRLEN = 0x10 1389 NETLINK_ECRYPTFS = 0x13
1390 NLMSG_MIN_TYPE = 0x10 1390 NETLINK_EXT_ACK = 0xb
1391 NLMSG_NOOP = 0x1 1391 NETLINK_FIB_LOOKUP = 0xa
1392 NLMSG_OVERRUN = 0x4 1392 NETLINK_FIREWALL = 0x3
1393 NLM_F_ACK = 0x4 1393 NETLINK_GENERIC = 0x10
1394 NLM_F_ACK_TLVS = 0x200 1394 NETLINK_GET_STRICT_CHK = 0xc
1395 NLM_F_APPEND = 0x800 1395 NETLINK_INET_DIAG = 0x4
1396 NLM_F_ATOMIC = 0x400 1396 NETLINK_IP6_FW = 0xd
1397 NLM_F_CAPPED = 0x100 1397 NETLINK_ISCSI = 0x8
1398 NLM_F_CREATE = 0x400 1398 NETLINK_KOBJECT_UEVENT = 0xf
1399 NLM_F_DUMP = 0x300 1399 NETLINK_LISTEN_ALL_NSID = 0x8
1400 NLM_F_DUMP_FILTERED = 0x20 1400 NETLINK_LIST_MEMBERSHIPS = 0x9
1401 NLM_F_DUMP_INTR = 0x10 1401 NETLINK_NETFILTER = 0xc
1402 NLM_F_ECHO = 0x8 1402 NETLINK_NFLOG = 0x5
1403 NLM_F_EXCL = 0x200 1403 NETLINK_NO_ENOBUFS = 0x5
1404 NLM_F_MATCH = 0x200 1404 NETLINK_PKTINFO = 0x3
1405 NLM_F_MULTI = 0x2 1405 NETLINK_RDMA = 0x14
1406 NLM_F_NONREC = 0x100 1406 NETLINK_ROUTE = 0x0
1407 NLM_F_REPLACE = 0x100 1407 NETLINK_RX_RING = 0x6
1408 NLM_F_REQUEST = 0x1 1408 NETLINK_SCSITRANSPORT = 0x12
1409 NLM_F_ROOT = 0x100 1409 NETLINK_SELINUX = 0x7
1410 NOFLSH = 0x80 1410 NETLINK_SMC = 0x16
1411 NSFS_MAGIC = 0x6e736673 1411 NETLINK_SOCK_DIAG = 0x4
1412 NS_GET_NSTYPE = 0xb703 1412 NETLINK_TX_RING = 0x7
1413 NS_GET_OWNER_UID = 0xb704 1413 NETLINK_UNUSED = 0x1
1414 NS_GET_PARENT = 0xb702 1414 NETLINK_USERSOCK = 0x2
1415 NS_GET_USERNS = 0xb701 1415 NETLINK_XFRM = 0x6
1416 OCFS2_SUPER_MAGIC = 0x7461636f 1416 NETNSA_MAX = 0x5
1417 OCRNL = 0x8 1417 NETNSA_NSID_NOT_ASSIGNED = -0x1
1418 OFDEL = 0x80 1418 NFDBITS = 0x40
1419 OFILL = 0x40 1419 NFNETLINK_V0 = 0x0
1420 OLCUC = 0x2 1420 NFNLGRP_ACCT_QUOTA = 0x8
1421 ONLCR = 0x4 1421 NFNLGRP_CONNTRACK_DESTROY = 0x3
1422 ONLRET = 0x20 1422 NFNLGRP_CONNTRACK_EXP_DESTROY = 0x6
1423 ONOCR = 0x10 1423 NFNLGRP_CONNTRACK_EXP_NEW = 0x4
1424 OPENPROM_SUPER_MAGIC = 0x9fa1 1424 NFNLGRP_CONNTRACK_EXP_UPDATE = 0x5
1425 OPOST = 0x1 1425 NFNLGRP_CONNTRACK_NEW = 0x1
1426 OVERLAYFS_SUPER_MAGIC = 0x794c7630 1426 NFNLGRP_CONNTRACK_UPDATE = 0x2
1427 O_ACCMODE = 0x3 1427 NFNLGRP_MAX = 0x9
1428 O_APPEND = 0x400 1428 NFNLGRP_NFTABLES = 0x7
1429 O_ASYNC = 0x2000 1429 NFNLGRP_NFTRACE = 0x9
1430 O_CLOEXEC = 0x80000 1430 NFNLGRP_NONE = 0x0
1431 O_CREAT = 0x40 1431 NFNL_BATCH_MAX = 0x1
1432 O_DIRECT = 0x10000 1432 NFNL_MSG_BATCH_BEGIN = 0x10
1433 O_DIRECTORY = 0x4000 1433 NFNL_MSG_BATCH_END = 0x11
1434 O_DSYNC = 0x1000 1434 NFNL_NFA_NEST = 0x8000
1435 O_EXCL = 0x80 1435 NFNL_SUBSYS_ACCT = 0x7
1436 O_FSYNC = 0x101000 1436 NFNL_SUBSYS_COUNT = 0xc
1437 O_LARGEFILE = 0x0 1437 NFNL_SUBSYS_CTHELPER = 0x9
1438 O_NDELAY = 0x800 1438 NFNL_SUBSYS_CTNETLINK = 0x1
1439 O_NOATIME = 0x40000 1439 NFNL_SUBSYS_CTNETLINK_EXP = 0x2
1440 O_NOCTTY = 0x100 1440 NFNL_SUBSYS_CTNETLINK_TIMEOUT = 0x8
1441 O_NOFOLLOW = 0x8000 1441 NFNL_SUBSYS_IPSET = 0x6
1442 O_NONBLOCK = 0x800 1442 NFNL_SUBSYS_NFTABLES = 0xa
1443 O_PATH = 0x200000 1443 NFNL_SUBSYS_NFT_COMPAT = 0xb
1444 O_RDONLY = 0x0 1444 NFNL_SUBSYS_NONE = 0x0
1445 O_RDWR = 0x2 1445 NFNL_SUBSYS_OSF = 0x5
1446 O_RSYNC = 0x101000 1446 NFNL_SUBSYS_QUEUE = 0x3
1447 O_SYNC = 0x101000 1447 NFNL_SUBSYS_ULOG = 0x4
1448 O_TMPFILE = 0x404000 1448 NFS_SUPER_MAGIC = 0x6969
1449 O_TRUNC = 0x200 1449 NILFS_SUPER_MAGIC = 0x3434
1450 O_WRONLY = 0x1 1450 NL0 = 0x0
1451 PACKET_ADD_MEMBERSHIP = 0x1 1451 NL1 = 0x100
1452 PACKET_AUXDATA = 0x8 1452 NLA_ALIGNTO = 0x4
1453 PACKET_BROADCAST = 0x1 1453 NLA_F_NESTED = 0x8000
1454 PACKET_COPY_THRESH = 0x7 1454 NLA_F_NET_BYTEORDER = 0x4000
1455 PACKET_DROP_MEMBERSHIP = 0x2 1455 NLA_HDRLEN = 0x4
1456 PACKET_FANOUT = 0x12 1456 NLDLY = 0x100
1457 PACKET_FANOUT_CBPF = 0x6 1457 NLMSG_ALIGNTO = 0x4
1458 PACKET_FANOUT_CPU = 0x2 1458 NLMSG_DONE = 0x3
1459 PACKET_FANOUT_DATA = 0x16 1459 NLMSG_ERROR = 0x2
1460 PACKET_FANOUT_EBPF = 0x7 1460 NLMSG_HDRLEN = 0x10
1461 PACKET_FANOUT_FLAG_DEFRAG = 0x8000 1461 NLMSG_MIN_TYPE = 0x10
1462 PACKET_FANOUT_FLAG_ROLLOVER = 0x1000 1462 NLMSG_NOOP = 0x1
1463 PACKET_FANOUT_FLAG_UNIQUEID = 0x2000 1463 NLMSG_OVERRUN = 0x4
1464 PACKET_FANOUT_HASH = 0x0 1464 NLM_F_ACK = 0x4
1465 PACKET_FANOUT_LB = 0x1 1465 NLM_F_ACK_TLVS = 0x200
1466 PACKET_FANOUT_QM = 0x5 1466 NLM_F_APPEND = 0x800
1467 PACKET_FANOUT_RND = 0x4 1467 NLM_F_ATOMIC = 0x400
1468 PACKET_FANOUT_ROLLOVER = 0x3 1468 NLM_F_CAPPED = 0x100
1469 PACKET_FASTROUTE = 0x6 1469 NLM_F_CREATE = 0x400
1470 PACKET_HDRLEN = 0xb 1470 NLM_F_DUMP = 0x300
1471 PACKET_HOST = 0x0 1471 NLM_F_DUMP_FILTERED = 0x20
1472 PACKET_IGNORE_OUTGOING = 0x17 1472 NLM_F_DUMP_INTR = 0x10
1473 PACKET_KERNEL = 0x7 1473 NLM_F_ECHO = 0x8
1474 PACKET_LOOPBACK = 0x5 1474 NLM_F_EXCL = 0x200
1475 PACKET_LOSS = 0xe 1475 NLM_F_MATCH = 0x200
1476 PACKET_MR_ALLMULTI = 0x2 1476 NLM_F_MULTI = 0x2
1477 PACKET_MR_MULTICAST = 0x0 1477 NLM_F_NONREC = 0x100
1478 PACKET_MR_PROMISC = 0x1 1478 NLM_F_REPLACE = 0x100
1479 PACKET_MR_UNICAST = 0x3 1479 NLM_F_REQUEST = 0x1
1480 PACKET_MULTICAST = 0x2 1480 NLM_F_ROOT = 0x100
1481 PACKET_ORIGDEV = 0x9 1481 NOFLSH = 0x80
1482 PACKET_OTHERHOST = 0x3 1482 NSFS_MAGIC = 0x6e736673
1483 PACKET_OUTGOING = 0x4 1483 NS_GET_NSTYPE = 0xb703
1484 PACKET_QDISC_BYPASS = 0x14 1484 NS_GET_OWNER_UID = 0xb704
1485 PACKET_RECV_OUTPUT = 0x3 1485 NS_GET_PARENT = 0xb702
1486 PACKET_RESERVE = 0xc 1486 NS_GET_USERNS = 0xb701
1487 PACKET_ROLLOVER_STATS = 0x15 1487 OCFS2_SUPER_MAGIC = 0x7461636f
1488 PACKET_RX_RING = 0x5 1488 OCRNL = 0x8
1489 PACKET_STATISTICS = 0x6 1489 OFDEL = 0x80
1490 PACKET_TIMESTAMP = 0x11 1490 OFILL = 0x40
1491 PACKET_TX_HAS_OFF = 0x13 1491 OLCUC = 0x2
1492 PACKET_TX_RING = 0xd 1492 ONLCR = 0x4
1493 PACKET_TX_TIMESTAMP = 0x10 1493 ONLRET = 0x20
1494 PACKET_USER = 0x6 1494 ONOCR = 0x10
1495 PACKET_VERSION = 0xa 1495 OPENPROM_SUPER_MAGIC = 0x9fa1
1496 PACKET_VNET_HDR = 0xf 1496 OPOST = 0x1
1497 PARENB = 0x100 1497 OVERLAYFS_SUPER_MAGIC = 0x794c7630
1498 PARITY_CRC16_PR0 = 0x2 1498 O_ACCMODE = 0x3
1499 PARITY_CRC16_PR0_CCITT = 0x4 1499 O_APPEND = 0x400
1500 PARITY_CRC16_PR1 = 0x3 1500 O_ASYNC = 0x2000
1501 PARITY_CRC16_PR1_CCITT = 0x5 1501 O_CLOEXEC = 0x80000
1502 PARITY_CRC32_PR0_CCITT = 0x6 1502 O_CREAT = 0x40
1503 PARITY_CRC32_PR1_CCITT = 0x7 1503 O_DIRECT = 0x10000
1504 PARITY_DEFAULT = 0x0 1504 O_DIRECTORY = 0x4000
1505 PARITY_NONE = 0x1 1505 O_DSYNC = 0x1000
1506 PARMRK = 0x8 1506 O_EXCL = 0x80
1507 PARODD = 0x200 1507 O_FSYNC = 0x101000
1508 PENDIN = 0x4000 1508 O_LARGEFILE = 0x0
1509 PERF_EVENT_IOC_DISABLE = 0x2401 1509 O_NDELAY = 0x800
1510 PERF_EVENT_IOC_ENABLE = 0x2400 1510 O_NOATIME = 0x40000
1511 PERF_EVENT_IOC_ID = 0x80082407 1511 O_NOCTTY = 0x100
1512 PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x4008240b 1512 O_NOFOLLOW = 0x8000
1513 PERF_EVENT_IOC_PAUSE_OUTPUT = 0x40042409 1513 O_NONBLOCK = 0x800
1514 PERF_EVENT_IOC_PERIOD = 0x40082404 1514 O_PATH = 0x200000
1515 PERF_EVENT_IOC_QUERY_BPF = 0xc008240a 1515 O_RDONLY = 0x0
1516 PERF_EVENT_IOC_REFRESH = 0x2402 1516 O_RDWR = 0x2
1517 PERF_EVENT_IOC_RESET = 0x2403 1517 O_RSYNC = 0x101000
1518 PERF_EVENT_IOC_SET_BPF = 0x40042408 1518 O_SYNC = 0x101000
1519 PERF_EVENT_IOC_SET_FILTER = 0x40082406 1519 O_TMPFILE = 0x404000
1520 PERF_EVENT_IOC_SET_OUTPUT = 0x2405 1520 O_TRUNC = 0x200
1521 PIPEFS_MAGIC = 0x50495045 1521 O_WRONLY = 0x1
1522 PPPIOCATTACH = 0x4004743d 1522 PACKET_ADD_MEMBERSHIP = 0x1
1523 PPPIOCATTCHAN = 0x40047438 1523 PACKET_AUXDATA = 0x8
1524 PPPIOCCONNECT = 0x4004743a 1524 PACKET_BROADCAST = 0x1
1525 PPPIOCDETACH = 0x4004743c 1525 PACKET_COPY_THRESH = 0x7
1526 PPPIOCDISCONN = 0x7439 1526 PACKET_DROP_MEMBERSHIP = 0x2
1527 PPPIOCGASYNCMAP = 0x80047458 1527 PACKET_FANOUT = 0x12
1528 PPPIOCGCHAN = 0x80047437 1528 PACKET_FANOUT_CBPF = 0x6
1529 PPPIOCGDEBUG = 0x80047441 1529 PACKET_FANOUT_CPU = 0x2
1530 PPPIOCGFLAGS = 0x8004745a 1530 PACKET_FANOUT_DATA = 0x16
1531 PPPIOCGIDLE = 0x8010743f 1531 PACKET_FANOUT_EBPF = 0x7
1532 PPPIOCGL2TPSTATS = 0x80487436 1532 PACKET_FANOUT_FLAG_DEFRAG = 0x8000
1533 PPPIOCGMRU = 0x80047453 1533 PACKET_FANOUT_FLAG_ROLLOVER = 0x1000
1534 PPPIOCGNPMODE = 0xc008744c 1534 PACKET_FANOUT_FLAG_UNIQUEID = 0x2000
1535 PPPIOCGRASYNCMAP = 0x80047455 1535 PACKET_FANOUT_HASH = 0x0
1536 PPPIOCGUNIT = 0x80047456 1536 PACKET_FANOUT_LB = 0x1
1537 PPPIOCGXASYNCMAP = 0x80207450 1537 PACKET_FANOUT_QM = 0x5
1538 PPPIOCNEWUNIT = 0xc004743e 1538 PACKET_FANOUT_RND = 0x4
1539 PPPIOCSACTIVE = 0x40107446 1539 PACKET_FANOUT_ROLLOVER = 0x3
1540 PPPIOCSASYNCMAP = 0x40047457 1540 PACKET_FASTROUTE = 0x6
1541 PPPIOCSCOMPRESS = 0x4010744d 1541 PACKET_HDRLEN = 0xb
1542 PPPIOCSDEBUG = 0x40047440 1542 PACKET_HOST = 0x0
1543 PPPIOCSFLAGS = 0x40047459 1543 PACKET_IGNORE_OUTGOING = 0x17
1544 PPPIOCSMAXCID = 0x40047451 1544 PACKET_KERNEL = 0x7
1545 PPPIOCSMRRU = 0x4004743b 1545 PACKET_LOOPBACK = 0x5
1546 PPPIOCSMRU = 0x40047452 1546 PACKET_LOSS = 0xe
1547 PPPIOCSNPMODE = 0x4008744b 1547 PACKET_MR_ALLMULTI = 0x2
1548 PPPIOCSPASS = 0x40107447 1548 PACKET_MR_MULTICAST = 0x0
1549 PPPIOCSRASYNCMAP = 0x40047454 1549 PACKET_MR_PROMISC = 0x1
1550 PPPIOCSXASYNCMAP = 0x4020744f 1550 PACKET_MR_UNICAST = 0x3
1551 PPPIOCXFERUNIT = 0x744e 1551 PACKET_MULTICAST = 0x2
1552 PRIO_PGRP = 0x1 1552 PACKET_ORIGDEV = 0x9
1553 PRIO_PROCESS = 0x0 1553 PACKET_OTHERHOST = 0x3
1554 PRIO_USER = 0x2 1554 PACKET_OUTGOING = 0x4
1555 PROC_SUPER_MAGIC = 0x9fa0 1555 PACKET_QDISC_BYPASS = 0x14
1556 PROT_EXEC = 0x4 1556 PACKET_RECV_OUTPUT = 0x3
1557 PROT_GROWSDOWN = 0x1000000 1557 PACKET_RESERVE = 0xc
1558 PROT_GROWSUP = 0x2000000 1558 PACKET_ROLLOVER_STATS = 0x15
1559 PROT_NONE = 0x0 1559 PACKET_RX_RING = 0x5
1560 PROT_READ = 0x1 1560 PACKET_STATISTICS = 0x6
1561 PROT_WRITE = 0x2 1561 PACKET_TIMESTAMP = 0x11
1562 PR_CAPBSET_DROP = 0x18 1562 PACKET_TX_HAS_OFF = 0x13
1563 PR_CAPBSET_READ = 0x17 1563 PACKET_TX_RING = 0xd
1564 PR_CAP_AMBIENT = 0x2f 1564 PACKET_TX_TIMESTAMP = 0x10
1565 PR_CAP_AMBIENT_CLEAR_ALL = 0x4 1565 PACKET_USER = 0x6
1566 PR_CAP_AMBIENT_IS_SET = 0x1 1566 PACKET_VERSION = 0xa
1567 PR_CAP_AMBIENT_LOWER = 0x3 1567 PACKET_VNET_HDR = 0xf
1568 PR_CAP_AMBIENT_RAISE = 0x2 1568 PARENB = 0x100
1569 PR_ENDIAN_BIG = 0x0 1569 PARITY_CRC16_PR0 = 0x2
1570 PR_ENDIAN_LITTLE = 0x1 1570 PARITY_CRC16_PR0_CCITT = 0x4
1571 PR_ENDIAN_PPC_LITTLE = 0x2 1571 PARITY_CRC16_PR1 = 0x3
1572 PR_FPEMU_NOPRINT = 0x1 1572 PARITY_CRC16_PR1_CCITT = 0x5
1573 PR_FPEMU_SIGFPE = 0x2 1573 PARITY_CRC32_PR0_CCITT = 0x6
1574 PR_FP_EXC_ASYNC = 0x2 1574 PARITY_CRC32_PR1_CCITT = 0x7
1575 PR_FP_EXC_DISABLED = 0x0 1575 PARITY_DEFAULT = 0x0
1576 PR_FP_EXC_DIV = 0x10000 1576 PARITY_NONE = 0x1
1577 PR_FP_EXC_INV = 0x100000 1577 PARMRK = 0x8
1578 PR_FP_EXC_NONRECOV = 0x1 1578 PARODD = 0x200
1579 PR_FP_EXC_OVF = 0x20000 1579 PENDIN = 0x4000
1580 PR_FP_EXC_PRECISE = 0x3 1580 PERF_EVENT_IOC_DISABLE = 0x2401
1581 PR_FP_EXC_RES = 0x80000 1581 PERF_EVENT_IOC_ENABLE = 0x2400
1582 PR_FP_EXC_SW_ENABLE = 0x80 1582 PERF_EVENT_IOC_ID = 0x80082407
1583 PR_FP_EXC_UND = 0x40000 1583 PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x4008240b
1584 PR_FP_MODE_FR = 0x1 1584 PERF_EVENT_IOC_PAUSE_OUTPUT = 0x40042409
1585 PR_FP_MODE_FRE = 0x2 1585 PERF_EVENT_IOC_PERIOD = 0x40082404
1586 PR_GET_CHILD_SUBREAPER = 0x25 1586 PERF_EVENT_IOC_QUERY_BPF = 0xc008240a
1587 PR_GET_DUMPABLE = 0x3 1587 PERF_EVENT_IOC_REFRESH = 0x2402
1588 PR_GET_ENDIAN = 0x13 1588 PERF_EVENT_IOC_RESET = 0x2403
1589 PR_GET_FPEMU = 0x9 1589 PERF_EVENT_IOC_SET_BPF = 0x40042408
1590 PR_GET_FPEXC = 0xb 1590 PERF_EVENT_IOC_SET_FILTER = 0x40082406
1591 PR_GET_FP_MODE = 0x2e 1591 PERF_EVENT_IOC_SET_OUTPUT = 0x2405
1592 PR_GET_KEEPCAPS = 0x7 1592 PIPEFS_MAGIC = 0x50495045
1593 PR_GET_NAME = 0x10 1593 PPC_CMM_MAGIC = 0xc7571590
1594 PR_GET_NO_NEW_PRIVS = 0x27 1594 PPPIOCATTACH = 0x4004743d
1595 PR_GET_PDEATHSIG = 0x2 1595 PPPIOCATTCHAN = 0x40047438
1596 PR_GET_SECCOMP = 0x15 1596 PPPIOCCONNECT = 0x4004743a
1597 PR_GET_SECUREBITS = 0x1b 1597 PPPIOCDETACH = 0x4004743c
1598 PR_GET_SPECULATION_CTRL = 0x34 1598 PPPIOCDISCONN = 0x7439
1599 PR_GET_THP_DISABLE = 0x2a 1599 PPPIOCGASYNCMAP = 0x80047458
1600 PR_GET_TID_ADDRESS = 0x28 1600 PPPIOCGCHAN = 0x80047437
1601 PR_GET_TIMERSLACK = 0x1e 1601 PPPIOCGDEBUG = 0x80047441
1602 PR_GET_TIMING = 0xd 1602 PPPIOCGFLAGS = 0x8004745a
1603 PR_GET_TSC = 0x19 1603 PPPIOCGIDLE = 0x8010743f
1604 PR_GET_UNALIGN = 0x5 1604 PPPIOCGIDLE32 = 0x8008743f
1605 PR_MCE_KILL = 0x21 1605 PPPIOCGIDLE64 = 0x8010743f
1606 PR_MCE_KILL_CLEAR = 0x0 1606 PPPIOCGL2TPSTATS = 0x80487436
1607 PR_MCE_KILL_DEFAULT = 0x2 1607 PPPIOCGMRU = 0x80047453
1608 PR_MCE_KILL_EARLY = 0x1 1608 PPPIOCGNPMODE = 0xc008744c
1609 PR_MCE_KILL_GET = 0x22 1609 PPPIOCGRASYNCMAP = 0x80047455
1610 PR_MCE_KILL_LATE = 0x0 1610 PPPIOCGUNIT = 0x80047456
1611 PR_MCE_KILL_SET = 0x1 1611 PPPIOCGXASYNCMAP = 0x80207450
1612 PR_MPX_DISABLE_MANAGEMENT = 0x2c 1612 PPPIOCNEWUNIT = 0xc004743e
1613 PR_MPX_ENABLE_MANAGEMENT = 0x2b 1613 PPPIOCSACTIVE = 0x40107446
1614 PR_PAC_APDAKEY = 0x4 1614 PPPIOCSASYNCMAP = 0x40047457
1615 PR_PAC_APDBKEY = 0x8 1615 PPPIOCSCOMPRESS = 0x4010744d
1616 PR_PAC_APGAKEY = 0x10 1616 PPPIOCSDEBUG = 0x40047440
1617 PR_PAC_APIAKEY = 0x1 1617 PPPIOCSFLAGS = 0x40047459
1618 PR_PAC_APIBKEY = 0x2 1618 PPPIOCSMAXCID = 0x40047451
1619 PR_PAC_RESET_KEYS = 0x36 1619 PPPIOCSMRRU = 0x4004743b
1620 PR_SET_CHILD_SUBREAPER = 0x24 1620 PPPIOCSMRU = 0x40047452
1621 PR_SET_DUMPABLE = 0x4 1621 PPPIOCSNPMODE = 0x4008744b
1622 PR_SET_ENDIAN = 0x14 1622 PPPIOCSPASS = 0x40107447
1623 PR_SET_FPEMU = 0xa 1623 PPPIOCSRASYNCMAP = 0x40047454
1624 PR_SET_FPEXC = 0xc 1624 PPPIOCSXASYNCMAP = 0x4020744f
1625 PR_SET_FP_MODE = 0x2d 1625 PPPIOCXFERUNIT = 0x744e
1626 PR_SET_KEEPCAPS = 0x8 1626 PRIO_PGRP = 0x1
1627 PR_SET_MM = 0x23 1627 PRIO_PROCESS = 0x0
1628 PR_SET_MM_ARG_END = 0x9 1628 PRIO_USER = 0x2
1629 PR_SET_MM_ARG_START = 0x8 1629 PROC_SUPER_MAGIC = 0x9fa0
1630 PR_SET_MM_AUXV = 0xc 1630 PROT_EXEC = 0x4
1631 PR_SET_MM_BRK = 0x7 1631 PROT_GROWSDOWN = 0x1000000
1632 PR_SET_MM_END_CODE = 0x2 1632 PROT_GROWSUP = 0x2000000
1633 PR_SET_MM_END_DATA = 0x4 1633 PROT_NONE = 0x0
1634 PR_SET_MM_ENV_END = 0xb 1634 PROT_READ = 0x1
1635 PR_SET_MM_ENV_START = 0xa 1635 PROT_WRITE = 0x2
1636 PR_SET_MM_EXE_FILE = 0xd 1636 PR_CAPBSET_DROP = 0x18
1637 PR_SET_MM_MAP = 0xe 1637 PR_CAPBSET_READ = 0x17
1638 PR_SET_MM_MAP_SIZE = 0xf 1638 PR_CAP_AMBIENT = 0x2f
1639 PR_SET_MM_START_BRK = 0x6 1639 PR_CAP_AMBIENT_CLEAR_ALL = 0x4
1640 PR_SET_MM_START_CODE = 0x1 1640 PR_CAP_AMBIENT_IS_SET = 0x1
1641 PR_SET_MM_START_DATA = 0x3 1641 PR_CAP_AMBIENT_LOWER = 0x3
1642 PR_SET_MM_START_STACK = 0x5 1642 PR_CAP_AMBIENT_RAISE = 0x2
1643 PR_SET_NAME = 0xf 1643 PR_ENDIAN_BIG = 0x0
1644 PR_SET_NO_NEW_PRIVS = 0x26 1644 PR_ENDIAN_LITTLE = 0x1
1645 PR_SET_PDEATHSIG = 0x1 1645 PR_ENDIAN_PPC_LITTLE = 0x2
1646 PR_SET_PTRACER = 0x59616d61 1646 PR_FPEMU_NOPRINT = 0x1
1647 PR_SET_PTRACER_ANY = 0xffffffffffffffff 1647 PR_FPEMU_SIGFPE = 0x2
1648 PR_SET_SECCOMP = 0x16 1648 PR_FP_EXC_ASYNC = 0x2
1649 PR_SET_SECUREBITS = 0x1c 1649 PR_FP_EXC_DISABLED = 0x0
1650 PR_SET_SPECULATION_CTRL = 0x35 1650 PR_FP_EXC_DIV = 0x10000
1651 PR_SET_THP_DISABLE = 0x29 1651 PR_FP_EXC_INV = 0x100000
1652 PR_SET_TIMERSLACK = 0x1d 1652 PR_FP_EXC_NONRECOV = 0x1
1653 PR_SET_TIMING = 0xe 1653 PR_FP_EXC_OVF = 0x20000
1654 PR_SET_TSC = 0x1a 1654 PR_FP_EXC_PRECISE = 0x3
1655 PR_SET_UNALIGN = 0x6 1655 PR_FP_EXC_RES = 0x80000
1656 PR_SPEC_DISABLE = 0x4 1656 PR_FP_EXC_SW_ENABLE = 0x80
1657 PR_SPEC_DISABLE_NOEXEC = 0x10 1657 PR_FP_EXC_UND = 0x40000
1658 PR_SPEC_ENABLE = 0x2 1658 PR_FP_MODE_FR = 0x1
1659 PR_SPEC_FORCE_DISABLE = 0x8 1659 PR_FP_MODE_FRE = 0x2
1660 PR_SPEC_INDIRECT_BRANCH = 0x1 1660 PR_GET_CHILD_SUBREAPER = 0x25
1661 PR_SPEC_NOT_AFFECTED = 0x0 1661 PR_GET_DUMPABLE = 0x3
1662 PR_SPEC_PRCTL = 0x1 1662 PR_GET_ENDIAN = 0x13
1663 PR_SPEC_STORE_BYPASS = 0x0 1663 PR_GET_FPEMU = 0x9
1664 PR_SVE_GET_VL = 0x33 1664 PR_GET_FPEXC = 0xb
1665 PR_SVE_SET_VL = 0x32 1665 PR_GET_FP_MODE = 0x2e
1666 PR_SVE_SET_VL_ONEXEC = 0x40000 1666 PR_GET_KEEPCAPS = 0x7
1667 PR_SVE_VL_INHERIT = 0x20000 1667 PR_GET_NAME = 0x10
1668 PR_SVE_VL_LEN_MASK = 0xffff 1668 PR_GET_NO_NEW_PRIVS = 0x27
1669 PR_TASK_PERF_EVENTS_DISABLE = 0x1f 1669 PR_GET_PDEATHSIG = 0x2
1670 PR_TASK_PERF_EVENTS_ENABLE = 0x20 1670 PR_GET_SECCOMP = 0x15
1671 PR_TIMING_STATISTICAL = 0x0 1671 PR_GET_SECUREBITS = 0x1b
1672 PR_TIMING_TIMESTAMP = 0x1 1672 PR_GET_SPECULATION_CTRL = 0x34
1673 PR_TSC_ENABLE = 0x1 1673 PR_GET_TAGGED_ADDR_CTRL = 0x38
1674 PR_TSC_SIGSEGV = 0x2 1674 PR_GET_THP_DISABLE = 0x2a
1675 PR_UNALIGN_NOPRINT = 0x1 1675 PR_GET_TID_ADDRESS = 0x28
1676 PR_UNALIGN_SIGBUS = 0x2 1676 PR_GET_TIMERSLACK = 0x1e
1677 PSTOREFS_MAGIC = 0x6165676c 1677 PR_GET_TIMING = 0xd
1678 PTRACE_ATTACH = 0x10 1678 PR_GET_TSC = 0x19
1679 PTRACE_CONT = 0x7 1679 PR_GET_UNALIGN = 0x5
1680 PTRACE_DETACH = 0x11 1680 PR_MCE_KILL = 0x21
1681 PTRACE_EVENT_CLONE = 0x3 1681 PR_MCE_KILL_CLEAR = 0x0
1682 PTRACE_EVENT_EXEC = 0x4 1682 PR_MCE_KILL_DEFAULT = 0x2
1683 PTRACE_EVENT_EXIT = 0x6 1683 PR_MCE_KILL_EARLY = 0x1
1684 PTRACE_EVENT_FORK = 0x1 1684 PR_MCE_KILL_GET = 0x22
1685 PTRACE_EVENT_SECCOMP = 0x7 1685 PR_MCE_KILL_LATE = 0x0
1686 PTRACE_EVENT_STOP = 0x80 1686 PR_MCE_KILL_SET = 0x1
1687 PTRACE_EVENT_VFORK = 0x2 1687 PR_MPX_DISABLE_MANAGEMENT = 0x2c
1688 PTRACE_EVENT_VFORK_DONE = 0x5 1688 PR_MPX_ENABLE_MANAGEMENT = 0x2b
1689 PTRACE_GETEVENTMSG = 0x4201 1689 PR_PAC_APDAKEY = 0x4
1690 PTRACE_GETREGS = 0xc 1690 PR_PAC_APDBKEY = 0x8
1691 PTRACE_GETREGSET = 0x4204 1691 PR_PAC_APGAKEY = 0x10
1692 PTRACE_GETSIGINFO = 0x4202 1692 PR_PAC_APIAKEY = 0x1
1693 PTRACE_GETSIGMASK = 0x420a 1693 PR_PAC_APIBKEY = 0x2
1694 PTRACE_INTERRUPT = 0x4207 1694 PR_PAC_RESET_KEYS = 0x36
1695 PTRACE_KILL = 0x8 1695 PR_SET_CHILD_SUBREAPER = 0x24
1696 PTRACE_LISTEN = 0x4208 1696 PR_SET_DUMPABLE = 0x4
1697 PTRACE_O_EXITKILL = 0x100000 1697 PR_SET_ENDIAN = 0x14
1698 PTRACE_O_MASK = 0x3000ff 1698 PR_SET_FPEMU = 0xa
1699 PTRACE_O_SUSPEND_SECCOMP = 0x200000 1699 PR_SET_FPEXC = 0xc
1700 PTRACE_O_TRACECLONE = 0x8 1700 PR_SET_FP_MODE = 0x2d
1701 PTRACE_O_TRACEEXEC = 0x10 1701 PR_SET_KEEPCAPS = 0x8
1702 PTRACE_O_TRACEEXIT = 0x40 1702 PR_SET_MM = 0x23
1703 PTRACE_O_TRACEFORK = 0x2 1703 PR_SET_MM_ARG_END = 0x9
1704 PTRACE_O_TRACESECCOMP = 0x80 1704 PR_SET_MM_ARG_START = 0x8
1705 PTRACE_O_TRACESYSGOOD = 0x1 1705 PR_SET_MM_AUXV = 0xc
1706 PTRACE_O_TRACEVFORK = 0x4 1706 PR_SET_MM_BRK = 0x7
1707 PTRACE_O_TRACEVFORKDONE = 0x20 1707 PR_SET_MM_END_CODE = 0x2
1708 PTRACE_PEEKDATA = 0x2 1708 PR_SET_MM_END_DATA = 0x4
1709 PTRACE_PEEKSIGINFO = 0x4209 1709 PR_SET_MM_ENV_END = 0xb
1710 PTRACE_PEEKSIGINFO_SHARED = 0x1 1710 PR_SET_MM_ENV_START = 0xa
1711 PTRACE_PEEKTEXT = 0x1 1711 PR_SET_MM_EXE_FILE = 0xd
1712 PTRACE_PEEKUSR = 0x3 1712 PR_SET_MM_MAP = 0xe
1713 PTRACE_POKEDATA = 0x5 1713 PR_SET_MM_MAP_SIZE = 0xf
1714 PTRACE_POKETEXT = 0x4 1714 PR_SET_MM_START_BRK = 0x6
1715 PTRACE_POKEUSR = 0x6 1715 PR_SET_MM_START_CODE = 0x1
1716 PTRACE_SECCOMP_GET_FILTER = 0x420c 1716 PR_SET_MM_START_DATA = 0x3
1717 PTRACE_SECCOMP_GET_METADATA = 0x420d 1717 PR_SET_MM_START_STACK = 0x5
1718 PTRACE_SEIZE = 0x4206 1718 PR_SET_NAME = 0xf
1719 PTRACE_SETOPTIONS = 0x4200 1719 PR_SET_NO_NEW_PRIVS = 0x26
1720 PTRACE_SETREGS = 0xd 1720 PR_SET_PDEATHSIG = 0x1
1721 PTRACE_SETREGSET = 0x4205 1721 PR_SET_PTRACER = 0x59616d61
1722 PTRACE_SETSIGINFO = 0x4203 1722 PR_SET_PTRACER_ANY = 0xffffffffffffffff
1723 PTRACE_SETSIGMASK = 0x420b 1723 PR_SET_SECCOMP = 0x16
1724 PTRACE_SINGLESTEP = 0x9 1724 PR_SET_SECUREBITS = 0x1c
1725 PTRACE_SYSCALL = 0x18 1725 PR_SET_SPECULATION_CTRL = 0x35
1726 PTRACE_TRACEME = 0x0 1726 PR_SET_TAGGED_ADDR_CTRL = 0x37
1727 QNX4_SUPER_MAGIC = 0x2f 1727 PR_SET_THP_DISABLE = 0x29
1728 QNX6_SUPER_MAGIC = 0x68191122 1728 PR_SET_TIMERSLACK = 0x1d
1729 RAMFS_MAGIC = 0x858458f6 1729 PR_SET_TIMING = 0xe
1730 RDTGROUP_SUPER_MAGIC = 0x7655821 1730 PR_SET_TSC = 0x1a
1731 REISERFS_SUPER_MAGIC = 0x52654973 1731 PR_SET_UNALIGN = 0x6
1732 RENAME_EXCHANGE = 0x2 1732 PR_SPEC_DISABLE = 0x4
1733 RENAME_NOREPLACE = 0x1 1733 PR_SPEC_DISABLE_NOEXEC = 0x10
1734 RENAME_WHITEOUT = 0x4 1734 PR_SPEC_ENABLE = 0x2
1735 RLIMIT_AS = 0x9 1735 PR_SPEC_FORCE_DISABLE = 0x8
1736 RLIMIT_CORE = 0x4 1736 PR_SPEC_INDIRECT_BRANCH = 0x1
1737 RLIMIT_CPU = 0x0 1737 PR_SPEC_NOT_AFFECTED = 0x0
1738 RLIMIT_DATA = 0x2 1738 PR_SPEC_PRCTL = 0x1
1739 RLIMIT_FSIZE = 0x1 1739 PR_SPEC_STORE_BYPASS = 0x0
1740 RLIMIT_LOCKS = 0xa 1740 PR_SVE_GET_VL = 0x33
1741 RLIMIT_MEMLOCK = 0x8 1741 PR_SVE_SET_VL = 0x32
1742 RLIMIT_MSGQUEUE = 0xc 1742 PR_SVE_SET_VL_ONEXEC = 0x40000
1743 RLIMIT_NICE = 0xd 1743 PR_SVE_VL_INHERIT = 0x20000
1744 RLIMIT_NOFILE = 0x7 1744 PR_SVE_VL_LEN_MASK = 0xffff
1745 RLIMIT_NPROC = 0x6 1745 PR_TAGGED_ADDR_ENABLE = 0x1
1746 RLIMIT_RSS = 0x5 1746 PR_TASK_PERF_EVENTS_DISABLE = 0x1f
1747 RLIMIT_RTPRIO = 0xe 1747 PR_TASK_PERF_EVENTS_ENABLE = 0x20
1748 RLIMIT_RTTIME = 0xf 1748 PR_TIMING_STATISTICAL = 0x0
1749 RLIMIT_SIGPENDING = 0xb 1749 PR_TIMING_TIMESTAMP = 0x1
1750 RLIMIT_STACK = 0x3 1750 PR_TSC_ENABLE = 0x1
1751 RLIM_INFINITY = 0xffffffffffffffff 1751 PR_TSC_SIGSEGV = 0x2
1752 RNDADDENTROPY = 0x40085203 1752 PR_UNALIGN_NOPRINT = 0x1
1753 RNDADDTOENTCNT = 0x40045201 1753 PR_UNALIGN_SIGBUS = 0x2
1754 RNDCLEARPOOL = 0x5206 1754 PSTOREFS_MAGIC = 0x6165676c
1755 RNDGETENTCNT = 0x80045200 1755 PTRACE_ATTACH = 0x10
1756 RNDGETPOOL = 0x80085202 1756 PTRACE_CONT = 0x7
1757 RNDRESEEDCRNG = 0x5207 1757 PTRACE_DETACH = 0x11
1758 RNDZAPENTCNT = 0x5204 1758 PTRACE_EVENTMSG_SYSCALL_ENTRY = 0x1
1759 RTAX_ADVMSS = 0x8 1759 PTRACE_EVENTMSG_SYSCALL_EXIT = 0x2
1760 RTAX_CC_ALGO = 0x10 1760 PTRACE_EVENT_CLONE = 0x3
1761 RTAX_CWND = 0x7 1761 PTRACE_EVENT_EXEC = 0x4
1762 RTAX_FASTOPEN_NO_COOKIE = 0x11 1762 PTRACE_EVENT_EXIT = 0x6
1763 RTAX_FEATURES = 0xc 1763 PTRACE_EVENT_FORK = 0x1
1764 RTAX_FEATURE_ALLFRAG = 0x8 1764 PTRACE_EVENT_SECCOMP = 0x7
1765 RTAX_FEATURE_ECN = 0x1 1765 PTRACE_EVENT_STOP = 0x80
1766 RTAX_FEATURE_MASK = 0xf 1766 PTRACE_EVENT_VFORK = 0x2
1767 RTAX_FEATURE_SACK = 0x2 1767 PTRACE_EVENT_VFORK_DONE = 0x5
1768 RTAX_FEATURE_TIMESTAMP = 0x4 1768 PTRACE_GETEVENTMSG = 0x4201
1769 RTAX_HOPLIMIT = 0xa 1769 PTRACE_GETREGS = 0xc
1770 RTAX_INITCWND = 0xb 1770 PTRACE_GETREGSET = 0x4204
1771 RTAX_INITRWND = 0xe 1771 PTRACE_GETSIGINFO = 0x4202
1772 RTAX_LOCK = 0x1 1772 PTRACE_GETSIGMASK = 0x420a
1773 RTAX_MAX = 0x11 1773 PTRACE_GET_SYSCALL_INFO = 0x420e
1774 RTAX_MTU = 0x2 1774 PTRACE_INTERRUPT = 0x4207
1775 RTAX_QUICKACK = 0xf 1775 PTRACE_KILL = 0x8
1776 RTAX_REORDERING = 0x9 1776 PTRACE_LISTEN = 0x4208
1777 RTAX_RTO_MIN = 0xd 1777 PTRACE_O_EXITKILL = 0x100000
1778 RTAX_RTT = 0x4 1778 PTRACE_O_MASK = 0x3000ff
1779 RTAX_RTTVAR = 0x5 1779 PTRACE_O_SUSPEND_SECCOMP = 0x200000
1780 RTAX_SSTHRESH = 0x6 1780 PTRACE_O_TRACECLONE = 0x8
1781 RTAX_UNSPEC = 0x0 1781 PTRACE_O_TRACEEXEC = 0x10
1782 RTAX_WINDOW = 0x3 1782 PTRACE_O_TRACEEXIT = 0x40
1783 RTA_ALIGNTO = 0x4 1783 PTRACE_O_TRACEFORK = 0x2
1784 RTA_MAX = 0x1d 1784 PTRACE_O_TRACESECCOMP = 0x80
1785 RTCF_DIRECTSRC = 0x4000000 1785 PTRACE_O_TRACESYSGOOD = 0x1
1786 RTCF_DOREDIRECT = 0x1000000 1786 PTRACE_O_TRACEVFORK = 0x4
1787 RTCF_LOG = 0x2000000 1787 PTRACE_O_TRACEVFORKDONE = 0x20
1788 RTCF_MASQ = 0x400000 1788 PTRACE_PEEKDATA = 0x2
1789 RTCF_NAT = 0x800000 1789 PTRACE_PEEKSIGINFO = 0x4209
1790 RTCF_VALVE = 0x200000 1790 PTRACE_PEEKSIGINFO_SHARED = 0x1
1791 RTC_AF = 0x20 1791 PTRACE_PEEKTEXT = 0x1
1792 RTC_AIE_OFF = 0x7002 1792 PTRACE_PEEKUSR = 0x3
1793 RTC_AIE_ON = 0x7001 1793 PTRACE_POKEDATA = 0x5
1794 RTC_ALM_READ = 0x80247008 1794 PTRACE_POKETEXT = 0x4
1795 RTC_ALM_SET = 0x40247007 1795 PTRACE_POKEUSR = 0x6
1796 RTC_EPOCH_READ = 0x8008700d 1796 PTRACE_SECCOMP_GET_FILTER = 0x420c
1797 RTC_EPOCH_SET = 0x4008700e 1797 PTRACE_SECCOMP_GET_METADATA = 0x420d
1798 RTC_IRQF = 0x80 1798 PTRACE_SEIZE = 0x4206
1799 RTC_IRQP_READ = 0x8008700b 1799 PTRACE_SETOPTIONS = 0x4200
1800 RTC_IRQP_SET = 0x4008700c 1800 PTRACE_SETREGS = 0xd
1801 RTC_MAX_FREQ = 0x2000 1801 PTRACE_SETREGSET = 0x4205
1802 RTC_PF = 0x40 1802 PTRACE_SETSIGINFO = 0x4203
1803 RTC_PIE_OFF = 0x7006 1803 PTRACE_SETSIGMASK = 0x420b
1804 RTC_PIE_ON = 0x7005 1804 PTRACE_SINGLESTEP = 0x9
1805 RTC_PLL_GET = 0x80207011 1805 PTRACE_SYSCALL = 0x18
1806 RTC_PLL_SET = 0x40207012 1806 PTRACE_SYSCALL_INFO_ENTRY = 0x1
1807 RTC_RD_TIME = 0x80247009 1807 PTRACE_SYSCALL_INFO_EXIT = 0x2
1808 RTC_SET_TIME = 0x4024700a 1808 PTRACE_SYSCALL_INFO_NONE = 0x0
1809 RTC_UF = 0x10 1809 PTRACE_SYSCALL_INFO_SECCOMP = 0x3
1810 RTC_UIE_OFF = 0x7004 1810 PTRACE_SYSEMU = 0x1f
1811 RTC_UIE_ON = 0x7003 1811 PTRACE_SYSEMU_SINGLESTEP = 0x20
1812 RTC_VL_CLR = 0x7014 1812 PTRACE_TRACEME = 0x0
1813 RTC_VL_READ = 0x80047013 1813 QNX4_SUPER_MAGIC = 0x2f
1814 RTC_WIE_OFF = 0x7010 1814 QNX6_SUPER_MAGIC = 0x68191122
1815 RTC_WIE_ON = 0x700f 1815 RAMFS_MAGIC = 0x858458f6
1816 RTC_WKALM_RD = 0x80287010 1816 RDTGROUP_SUPER_MAGIC = 0x7655821
1817 RTC_WKALM_SET = 0x4028700f 1817 REISERFS_SUPER_MAGIC = 0x52654973
1818 RTF_ADDRCLASSMASK = 0xf8000000 1818 RENAME_EXCHANGE = 0x2
1819 RTF_ADDRCONF = 0x40000 1819 RENAME_NOREPLACE = 0x1
1820 RTF_ALLONLINK = 0x20000 1820 RENAME_WHITEOUT = 0x4
1821 RTF_BROADCAST = 0x10000000 1821 RLIMIT_AS = 0x9
1822 RTF_CACHE = 0x1000000 1822 RLIMIT_CORE = 0x4
1823 RTF_DEFAULT = 0x10000 1823 RLIMIT_CPU = 0x0
1824 RTF_DYNAMIC = 0x10 1824 RLIMIT_DATA = 0x2
1825 RTF_FLOW = 0x2000000 1825 RLIMIT_FSIZE = 0x1
1826 RTF_GATEWAY = 0x2 1826 RLIMIT_LOCKS = 0xa
1827 RTF_HOST = 0x4 1827 RLIMIT_MEMLOCK = 0x8
1828 RTF_INTERFACE = 0x40000000 1828 RLIMIT_MSGQUEUE = 0xc
1829 RTF_IRTT = 0x100 1829 RLIMIT_NICE = 0xd
1830 RTF_LINKRT = 0x100000 1830 RLIMIT_NOFILE = 0x7
1831 RTF_LOCAL = 0x80000000 1831 RLIMIT_NPROC = 0x6
1832 RTF_MODIFIED = 0x20 1832 RLIMIT_RSS = 0x5
1833 RTF_MSS = 0x40 1833 RLIMIT_RTPRIO = 0xe
1834 RTF_MTU = 0x40 1834 RLIMIT_RTTIME = 0xf
1835 RTF_MULTICAST = 0x20000000 1835 RLIMIT_SIGPENDING = 0xb
1836 RTF_NAT = 0x8000000 1836 RLIMIT_STACK = 0x3
1837 RTF_NOFORWARD = 0x1000 1837 RLIM_INFINITY = 0xffffffffffffffff
1838 RTF_NONEXTHOP = 0x200000 1838 RNDADDENTROPY = 0x40085203
1839 RTF_NOPMTUDISC = 0x4000 1839 RNDADDTOENTCNT = 0x40045201
1840 RTF_POLICY = 0x4000000 1840 RNDCLEARPOOL = 0x5206
1841 RTF_REINSTATE = 0x8 1841 RNDGETENTCNT = 0x80045200
1842 RTF_REJECT = 0x200 1842 RNDGETPOOL = 0x80085202
1843 RTF_STATIC = 0x400 1843 RNDRESEEDCRNG = 0x5207
1844 RTF_THROW = 0x2000 1844 RNDZAPENTCNT = 0x5204
1845 RTF_UP = 0x1 1845 RTAX_ADVMSS = 0x8
1846 RTF_WINDOW = 0x80 1846 RTAX_CC_ALGO = 0x10
1847 RTF_XRESOLVE = 0x800 1847 RTAX_CWND = 0x7
1848 RTM_BASE = 0x10 1848 RTAX_FASTOPEN_NO_COOKIE = 0x11
1849 RTM_DELACTION = 0x31 1849 RTAX_FEATURES = 0xc
1850 RTM_DELADDR = 0x15 1850 RTAX_FEATURE_ALLFRAG = 0x8
1851 RTM_DELADDRLABEL = 0x49 1851 RTAX_FEATURE_ECN = 0x1
1852 RTM_DELCHAIN = 0x65 1852 RTAX_FEATURE_MASK = 0xf
1853 RTM_DELLINK = 0x11 1853 RTAX_FEATURE_SACK = 0x2
1854 RTM_DELMDB = 0x55 1854 RTAX_FEATURE_TIMESTAMP = 0x4
1855 RTM_DELNEIGH = 0x1d 1855 RTAX_HOPLIMIT = 0xa
1856 RTM_DELNETCONF = 0x51 1856 RTAX_INITCWND = 0xb
1857 RTM_DELNSID = 0x59 1857 RTAX_INITRWND = 0xe
1858 RTM_DELQDISC = 0x25 1858 RTAX_LOCK = 0x1
1859 RTM_DELROUTE = 0x19 1859 RTAX_MAX = 0x11
1860 RTM_DELRULE = 0x21 1860 RTAX_MTU = 0x2
1861 RTM_DELTCLASS = 0x29 1861 RTAX_QUICKACK = 0xf
1862 RTM_DELTFILTER = 0x2d 1862 RTAX_REORDERING = 0x9
1863 RTM_F_CLONED = 0x200 1863 RTAX_RTO_MIN = 0xd
1864 RTM_F_EQUALIZE = 0x400 1864 RTAX_RTT = 0x4
1865 RTM_F_FIB_MATCH = 0x2000 1865 RTAX_RTTVAR = 0x5
1866 RTM_F_LOOKUP_TABLE = 0x1000 1866 RTAX_SSTHRESH = 0x6
1867 RTM_F_NOTIFY = 0x100 1867 RTAX_UNSPEC = 0x0
1868 RTM_F_PREFIX = 0x800 1868 RTAX_WINDOW = 0x3
1869 RTM_GETACTION = 0x32 1869 RTA_ALIGNTO = 0x4
1870 RTM_GETADDR = 0x16 1870 RTA_MAX = 0x1e
1871 RTM_GETADDRLABEL = 0x4a 1871 RTCF_DIRECTSRC = 0x4000000
1872 RTM_GETANYCAST = 0x3e 1872 RTCF_DOREDIRECT = 0x1000000
1873 RTM_GETCHAIN = 0x66 1873 RTCF_LOG = 0x2000000
1874 RTM_GETDCB = 0x4e 1874 RTCF_MASQ = 0x400000
1875 RTM_GETLINK = 0x12 1875 RTCF_NAT = 0x800000
1876 RTM_GETMDB = 0x56 1876 RTCF_VALVE = 0x200000
1877 RTM_GETMULTICAST = 0x3a 1877 RTC_AF = 0x20
1878 RTM_GETNEIGH = 0x1e 1878 RTC_AIE_OFF = 0x7002
1879 RTM_GETNEIGHTBL = 0x42 1879 RTC_AIE_ON = 0x7001
1880 RTM_GETNETCONF = 0x52 1880 RTC_ALM_READ = 0x80247008
1881 RTM_GETNSID = 0x5a 1881 RTC_ALM_SET = 0x40247007
1882 RTM_GETQDISC = 0x26 1882 RTC_EPOCH_READ = 0x8008700d
1883 RTM_GETROUTE = 0x1a 1883 RTC_EPOCH_SET = 0x4008700e
1884 RTM_GETRULE = 0x22 1884 RTC_IRQF = 0x80
1885 RTM_GETSTATS = 0x5e 1885 RTC_IRQP_READ = 0x8008700b
1886 RTM_GETTCLASS = 0x2a 1886 RTC_IRQP_SET = 0x4008700c
1887 RTM_GETTFILTER = 0x2e 1887 RTC_MAX_FREQ = 0x2000
1888 RTM_MAX = 0x67 1888 RTC_PF = 0x40
1889 RTM_NEWACTION = 0x30 1889 RTC_PIE_OFF = 0x7006
1890 RTM_NEWADDR = 0x14 1890 RTC_PIE_ON = 0x7005
1891 RTM_NEWADDRLABEL = 0x48 1891 RTC_PLL_GET = 0x80207011
1892 RTM_NEWCACHEREPORT = 0x60 1892 RTC_PLL_SET = 0x40207012
1893 RTM_NEWCHAIN = 0x64 1893 RTC_RD_TIME = 0x80247009
1894 RTM_NEWLINK = 0x10 1894 RTC_SET_TIME = 0x4024700a
1895 RTM_NEWMDB = 0x54 1895 RTC_UF = 0x10
1896 RTM_NEWNDUSEROPT = 0x44 1896 RTC_UIE_OFF = 0x7004
1897 RTM_NEWNEIGH = 0x1c 1897 RTC_UIE_ON = 0x7003
1898 RTM_NEWNEIGHTBL = 0x40 1898 RTC_VL_CLR = 0x7014
1899 RTM_NEWNETCONF = 0x50 1899 RTC_VL_READ = 0x80047013
1900 RTM_NEWNSID = 0x58 1900 RTC_WIE_OFF = 0x7010
1901 RTM_NEWPREFIX = 0x34 1901 RTC_WIE_ON = 0x700f
1902 RTM_NEWQDISC = 0x24 1902 RTC_WKALM_RD = 0x80287010
1903 RTM_NEWROUTE = 0x18 1903 RTC_WKALM_SET = 0x4028700f
1904 RTM_NEWRULE = 0x20 1904 RTF_ADDRCLASSMASK = 0xf8000000
1905 RTM_NEWSTATS = 0x5c 1905 RTF_ADDRCONF = 0x40000
1906 RTM_NEWTCLASS = 0x28 1906 RTF_ALLONLINK = 0x20000
1907 RTM_NEWTFILTER = 0x2c 1907 RTF_BROADCAST = 0x10000000
1908 RTM_NR_FAMILIES = 0x16 1908 RTF_CACHE = 0x1000000
1909 RTM_NR_MSGTYPES = 0x58 1909 RTF_DEFAULT = 0x10000
1910 RTM_SETDCB = 0x4f 1910 RTF_DYNAMIC = 0x10
1911 RTM_SETLINK = 0x13 1911 RTF_FLOW = 0x2000000
1912 RTM_SETNEIGHTBL = 0x43 1912 RTF_GATEWAY = 0x2
1913 RTNH_ALIGNTO = 0x4 1913 RTF_HOST = 0x4
1914 RTNH_COMPARE_MASK = 0x19 1914 RTF_INTERFACE = 0x40000000
1915 RTNH_F_DEAD = 0x1 1915 RTF_IRTT = 0x100
1916 RTNH_F_LINKDOWN = 0x10 1916 RTF_LINKRT = 0x100000
1917 RTNH_F_OFFLOAD = 0x8 1917 RTF_LOCAL = 0x80000000
1918 RTNH_F_ONLINK = 0x4 1918 RTF_MODIFIED = 0x20
1919 RTNH_F_PERVASIVE = 0x2 1919 RTF_MSS = 0x40
1920 RTNH_F_UNRESOLVED = 0x20 1920 RTF_MTU = 0x40
1921 RTN_MAX = 0xb 1921 RTF_MULTICAST = 0x20000000
1922 RTPROT_BABEL = 0x2a 1922 RTF_NAT = 0x8000000
1923 RTPROT_BGP = 0xba 1923 RTF_NOFORWARD = 0x1000
1924 RTPROT_BIRD = 0xc 1924 RTF_NONEXTHOP = 0x200000
1925 RTPROT_BOOT = 0x3 1925 RTF_NOPMTUDISC = 0x4000
1926 RTPROT_DHCP = 0x10 1926 RTF_POLICY = 0x4000000
1927 RTPROT_DNROUTED = 0xd 1927 RTF_REINSTATE = 0x8
1928 RTPROT_EIGRP = 0xc0 1928 RTF_REJECT = 0x200
1929 RTPROT_GATED = 0x8 1929 RTF_STATIC = 0x400
1930 RTPROT_ISIS = 0xbb 1930 RTF_THROW = 0x2000
1931 RTPROT_KERNEL = 0x2 1931 RTF_UP = 0x1
1932 RTPROT_MROUTED = 0x11 1932 RTF_WINDOW = 0x80
1933 RTPROT_MRT = 0xa 1933 RTF_XRESOLVE = 0x800
1934 RTPROT_NTK = 0xf 1934 RTMGRP_DECnet_IFADDR = 0x1000
1935 RTPROT_OSPF = 0xbc 1935 RTMGRP_DECnet_ROUTE = 0x4000
1936 RTPROT_RA = 0x9 1936 RTMGRP_IPV4_IFADDR = 0x10
1937 RTPROT_REDIRECT = 0x1 1937 RTMGRP_IPV4_MROUTE = 0x20
1938 RTPROT_RIP = 0xbd 1938 RTMGRP_IPV4_ROUTE = 0x40
1939 RTPROT_STATIC = 0x4 1939 RTMGRP_IPV4_RULE = 0x80
1940 RTPROT_UNSPEC = 0x0 1940 RTMGRP_IPV6_IFADDR = 0x100
1941 RTPROT_XORP = 0xe 1941 RTMGRP_IPV6_IFINFO = 0x800
1942 RTPROT_ZEBRA = 0xb 1942 RTMGRP_IPV6_MROUTE = 0x200
1943 RT_CLASS_DEFAULT = 0xfd 1943 RTMGRP_IPV6_PREFIX = 0x20000
1944 RT_CLASS_LOCAL = 0xff 1944 RTMGRP_IPV6_ROUTE = 0x400
1945 RT_CLASS_MAIN = 0xfe 1945 RTMGRP_LINK = 0x1
1946 RT_CLASS_MAX = 0xff 1946 RTMGRP_NEIGH = 0x4
1947 RT_CLASS_UNSPEC = 0x0 1947 RTMGRP_NOTIFY = 0x2
1948 RUSAGE_CHILDREN = -0x1 1948 RTMGRP_TC = 0x8
1949 RUSAGE_SELF = 0x0 1949 RTM_BASE = 0x10
1950 RUSAGE_THREAD = 0x1 1950 RTM_DELACTION = 0x31
1951 SCM_CREDENTIALS = 0x2 1951 RTM_DELADDR = 0x15
1952 SCM_RIGHTS = 0x1 1952 RTM_DELADDRLABEL = 0x49
1953 SCM_TIMESTAMP = 0x1d 1953 RTM_DELCHAIN = 0x65
1954 SCM_TIMESTAMPING = 0x25 1954 RTM_DELLINK = 0x11
1955 SCM_TIMESTAMPING_OPT_STATS = 0x36 1955 RTM_DELLINKPROP = 0x6d
1956 SCM_TIMESTAMPING_PKTINFO = 0x3a 1956 RTM_DELMDB = 0x55
1957 SCM_TIMESTAMPNS = 0x23 1957 RTM_DELNEIGH = 0x1d
1958 SCM_TXTIME = 0x3d 1958 RTM_DELNETCONF = 0x51
1959 SCM_WIFI_STATUS = 0x29 1959 RTM_DELNEXTHOP = 0x69
1960 SC_LOG_FLUSH = 0x100000 1960 RTM_DELNSID = 0x59
1961 SECCOMP_MODE_DISABLED = 0x0 1961 RTM_DELQDISC = 0x25
1962 SECCOMP_MODE_FILTER = 0x2 1962 RTM_DELROUTE = 0x19
1963 SECCOMP_MODE_STRICT = 0x1 1963 RTM_DELRULE = 0x21
1964 SECURITYFS_MAGIC = 0x73636673 1964 RTM_DELTCLASS = 0x29
1965 SELINUX_MAGIC = 0xf97cff8c 1965 RTM_DELTFILTER = 0x2d
1966 SFD_CLOEXEC = 0x80000 1966 RTM_F_CLONED = 0x200
1967 SFD_NONBLOCK = 0x800 1967 RTM_F_EQUALIZE = 0x400
1968 SHUT_RD = 0x0 1968 RTM_F_FIB_MATCH = 0x2000
1969 SHUT_RDWR = 0x2 1969 RTM_F_LOOKUP_TABLE = 0x1000
1970 SHUT_WR = 0x1 1970 RTM_F_NOTIFY = 0x100
1971 SIOCADDDLCI = 0x8980 1971 RTM_F_PREFIX = 0x800
1972 SIOCADDMULTI = 0x8931 1972 RTM_GETACTION = 0x32
1973 SIOCADDRT = 0x890b 1973 RTM_GETADDR = 0x16
1974 SIOCATMARK = 0x8905 1974 RTM_GETADDRLABEL = 0x4a
1975 SIOCBONDCHANGEACTIVE = 0x8995 1975 RTM_GETANYCAST = 0x3e
1976 SIOCBONDENSLAVE = 0x8990 1976 RTM_GETCHAIN = 0x66
1977 SIOCBONDINFOQUERY = 0x8994 1977 RTM_GETDCB = 0x4e
1978 SIOCBONDRELEASE = 0x8991 1978 RTM_GETLINK = 0x12
1979 SIOCBONDSETHWADDR = 0x8992 1979 RTM_GETLINKPROP = 0x6e
1980 SIOCBONDSLAVEINFOQUERY = 0x8993 1980 RTM_GETMDB = 0x56
1981 SIOCBRADDBR = 0x89a0 1981 RTM_GETMULTICAST = 0x3a
1982 SIOCBRADDIF = 0x89a2 1982 RTM_GETNEIGH = 0x1e
1983 SIOCBRDELBR = 0x89a1 1983 RTM_GETNEIGHTBL = 0x42
1984 SIOCBRDELIF = 0x89a3 1984 RTM_GETNETCONF = 0x52
1985 SIOCDARP = 0x8953 1985 RTM_GETNEXTHOP = 0x6a
1986 SIOCDELDLCI = 0x8981 1986 RTM_GETNSID = 0x5a
1987 SIOCDELMULTI = 0x8932 1987 RTM_GETQDISC = 0x26
1988 SIOCDELRT = 0x890c 1988 RTM_GETROUTE = 0x1a
1989 SIOCDEVPRIVATE = 0x89f0 1989 RTM_GETRULE = 0x22
1990 SIOCDIFADDR = 0x8936 1990 RTM_GETSTATS = 0x5e
1991 SIOCDRARP = 0x8960 1991 RTM_GETTCLASS = 0x2a
1992 SIOCETHTOOL = 0x8946 1992 RTM_GETTFILTER = 0x2e
1993 SIOCGARP = 0x8954 1993 RTM_MAX = 0x6f
1994 SIOCGHWTSTAMP = 0x89b1 1994 RTM_NEWACTION = 0x30
1995 SIOCGIFADDR = 0x8915 1995 RTM_NEWADDR = 0x14
1996 SIOCGIFBR = 0x8940 1996 RTM_NEWADDRLABEL = 0x48
1997 SIOCGIFBRDADDR = 0x8919 1997 RTM_NEWCACHEREPORT = 0x60
1998 SIOCGIFCONF = 0x8912 1998 RTM_NEWCHAIN = 0x64
1999 SIOCGIFCOUNT = 0x8938 1999 RTM_NEWLINK = 0x10
2000 SIOCGIFDSTADDR = 0x8917 2000 RTM_NEWLINKPROP = 0x6c
2001 SIOCGIFENCAP = 0x8925 2001 RTM_NEWMDB = 0x54
2002 SIOCGIFFLAGS = 0x8913 2002 RTM_NEWNDUSEROPT = 0x44
2003 SIOCGIFHWADDR = 0x8927 2003 RTM_NEWNEIGH = 0x1c
2004 SIOCGIFINDEX = 0x8933 2004 RTM_NEWNEIGHTBL = 0x40
2005 SIOCGIFMAP = 0x8970 2005 RTM_NEWNETCONF = 0x50
2006 SIOCGIFMEM = 0x891f 2006 RTM_NEWNEXTHOP = 0x68
2007 SIOCGIFMETRIC = 0x891d 2007 RTM_NEWNSID = 0x58
2008 SIOCGIFMTU = 0x8921 2008 RTM_NEWPREFIX = 0x34
2009 SIOCGIFNAME = 0x8910 2009 RTM_NEWQDISC = 0x24
2010 SIOCGIFNETMASK = 0x891b 2010 RTM_NEWROUTE = 0x18
2011 SIOCGIFPFLAGS = 0x8935 2011 RTM_NEWRULE = 0x20
2012 SIOCGIFSLAVE = 0x8929 2012 RTM_NEWSTATS = 0x5c
2013 SIOCGIFTXQLEN = 0x8942 2013 RTM_NEWTCLASS = 0x28
2014 SIOCGIFVLAN = 0x8982 2014 RTM_NEWTFILTER = 0x2c
2015 SIOCGMIIPHY = 0x8947 2015 RTM_NR_FAMILIES = 0x18
2016 SIOCGMIIREG = 0x8948 2016 RTM_NR_MSGTYPES = 0x60
2017 SIOCGPGRP = 0x8904 2017 RTM_SETDCB = 0x4f
2018 SIOCGPPPCSTATS = 0x89f2 2018 RTM_SETLINK = 0x13
2019 SIOCGPPPSTATS = 0x89f0 2019 RTM_SETNEIGHTBL = 0x43
2020 SIOCGPPPVER = 0x89f1 2020 RTNH_ALIGNTO = 0x4
2021 SIOCGRARP = 0x8961 2021 RTNH_COMPARE_MASK = 0x19
2022 SIOCGSKNS = 0x894c 2022 RTNH_F_DEAD = 0x1
2023 SIOCGSTAMP = 0x8906 2023 RTNH_F_LINKDOWN = 0x10
2024 SIOCGSTAMPNS = 0x8907 2024 RTNH_F_OFFLOAD = 0x8
2025 SIOCGSTAMPNS_NEW = 0x80108907 2025 RTNH_F_ONLINK = 0x4
2026 SIOCGSTAMPNS_OLD = 0x8907 2026 RTNH_F_PERVASIVE = 0x2
2027 SIOCGSTAMP_NEW = 0x80108906 2027 RTNH_F_UNRESOLVED = 0x20
2028 SIOCGSTAMP_OLD = 0x8906 2028 RTN_MAX = 0xb
2029 SIOCINQ = 0x541b 2029 RTPROT_BABEL = 0x2a
2030 SIOCOUTQ = 0x5411 2030 RTPROT_BGP = 0xba
2031 SIOCOUTQNSD = 0x894b 2031 RTPROT_BIRD = 0xc
2032 SIOCPROTOPRIVATE = 0x89e0 2032 RTPROT_BOOT = 0x3
2033 SIOCRTMSG = 0x890d 2033 RTPROT_DHCP = 0x10
2034 SIOCSARP = 0x8955 2034 RTPROT_DNROUTED = 0xd
2035 SIOCSHWTSTAMP = 0x89b0 2035 RTPROT_EIGRP = 0xc0
2036 SIOCSIFADDR = 0x8916 2036 RTPROT_GATED = 0x8
2037 SIOCSIFBR = 0x8941 2037 RTPROT_ISIS = 0xbb
2038 SIOCSIFBRDADDR = 0x891a 2038 RTPROT_KERNEL = 0x2
2039 SIOCSIFDSTADDR = 0x8918 2039 RTPROT_MROUTED = 0x11
2040 SIOCSIFENCAP = 0x8926 2040 RTPROT_MRT = 0xa
2041 SIOCSIFFLAGS = 0x8914 2041 RTPROT_NTK = 0xf
2042 SIOCSIFHWADDR = 0x8924 2042 RTPROT_OSPF = 0xbc
2043 SIOCSIFHWBROADCAST = 0x8937 2043 RTPROT_RA = 0x9
2044 SIOCSIFLINK = 0x8911 2044 RTPROT_REDIRECT = 0x1
2045 SIOCSIFMAP = 0x8971 2045 RTPROT_RIP = 0xbd
2046 SIOCSIFMEM = 0x8920 2046 RTPROT_STATIC = 0x4
2047 SIOCSIFMETRIC = 0x891e 2047 RTPROT_UNSPEC = 0x0
2048 SIOCSIFMTU = 0x8922 2048 RTPROT_XORP = 0xe
2049 SIOCSIFNAME = 0x8923 2049 RTPROT_ZEBRA = 0xb
2050 SIOCSIFNETMASK = 0x891c 2050 RT_CLASS_DEFAULT = 0xfd
2051 SIOCSIFPFLAGS = 0x8934 2051 RT_CLASS_LOCAL = 0xff
2052 SIOCSIFSLAVE = 0x8930 2052 RT_CLASS_MAIN = 0xfe
2053 SIOCSIFTXQLEN = 0x8943 2053 RT_CLASS_MAX = 0xff
2054 SIOCSIFVLAN = 0x8983 2054 RT_CLASS_UNSPEC = 0x0
2055 SIOCSMIIREG = 0x8949 2055 RUSAGE_CHILDREN = -0x1
2056 SIOCSPGRP = 0x8902 2056 RUSAGE_SELF = 0x0
2057 SIOCSRARP = 0x8962 2057 RUSAGE_THREAD = 0x1
2058 SIOCWANDEV = 0x894a 2058 RWF_APPEND = 0x10
2059 SMACK_MAGIC = 0x43415d53 2059 RWF_DSYNC = 0x2
2060 SMART_AUTOSAVE = 0xd2 2060 RWF_HIPRI = 0x1
2061 SMART_AUTO_OFFLINE = 0xdb 2061 RWF_NOWAIT = 0x8
2062 SMART_DISABLE = 0xd9 2062 RWF_SUPPORTED = 0x1f
2063 SMART_ENABLE = 0xd8 2063 RWF_SYNC = 0x4
2064 SMART_HCYL_PASS = 0xc2 2064 RWF_WRITE_LIFE_NOT_SET = 0x0
2065 SMART_IMMEDIATE_OFFLINE = 0xd4 2065 SCM_CREDENTIALS = 0x2
2066 SMART_LCYL_PASS = 0x4f 2066 SCM_RIGHTS = 0x1
2067 SMART_READ_LOG_SECTOR = 0xd5 2067 SCM_TIMESTAMP = 0x1d
2068 SMART_READ_THRESHOLDS = 0xd1 2068 SCM_TIMESTAMPING = 0x25
2069 SMART_READ_VALUES = 0xd0 2069 SCM_TIMESTAMPING_OPT_STATS = 0x36
2070 SMART_SAVE = 0xd3 2070 SCM_TIMESTAMPING_PKTINFO = 0x3a
2071 SMART_STATUS = 0xda 2071 SCM_TIMESTAMPNS = 0x23
2072 SMART_WRITE_LOG_SECTOR = 0xd6 2072 SCM_TXTIME = 0x3d
2073 SMART_WRITE_THRESHOLDS = 0xd7 2073 SCM_WIFI_STATUS = 0x29
2074 SMB_SUPER_MAGIC = 0x517b 2074 SC_LOG_FLUSH = 0x100000
2075 SOCKFS_MAGIC = 0x534f434b 2075 SECCOMP_MODE_DISABLED = 0x0
2076 SOCK_CLOEXEC = 0x80000 2076 SECCOMP_MODE_FILTER = 0x2
2077 SOCK_DCCP = 0x6 2077 SECCOMP_MODE_STRICT = 0x1
2078 SOCK_DGRAM = 0x2 2078 SECURITYFS_MAGIC = 0x73636673
2079 SOCK_IOC_TYPE = 0x89 2079 SELINUX_MAGIC = 0xf97cff8c
2080 SOCK_NONBLOCK = 0x800 2080 SFD_CLOEXEC = 0x80000
2081 SOCK_PACKET = 0xa 2081 SFD_NONBLOCK = 0x800
2082 SOCK_RAW = 0x3 2082 SHUT_RD = 0x0
2083 SOCK_RDM = 0x4 2083 SHUT_RDWR = 0x2
2084 SOCK_SEQPACKET = 0x5 2084 SHUT_WR = 0x1
2085 SOCK_STREAM = 0x1 2085 SIOCADDDLCI = 0x8980
2086 SOL_AAL = 0x109 2086 SIOCADDMULTI = 0x8931
2087 SOL_ALG = 0x117 2087 SIOCADDRT = 0x890b
2088 SOL_ATM = 0x108 2088 SIOCATMARK = 0x8905
2089 SOL_CAIF = 0x116 2089 SIOCBONDCHANGEACTIVE = 0x8995
2090 SOL_CAN_BASE = 0x64 2090 SIOCBONDENSLAVE = 0x8990
2091 SOL_DCCP = 0x10d 2091 SIOCBONDINFOQUERY = 0x8994
2092 SOL_DECNET = 0x105 2092 SIOCBONDRELEASE = 0x8991
2093 SOL_ICMPV6 = 0x3a 2093 SIOCBONDSETHWADDR = 0x8992
2094 SOL_IP = 0x0 2094 SIOCBONDSLAVEINFOQUERY = 0x8993
2095 SOL_IPV6 = 0x29 2095 SIOCBRADDBR = 0x89a0
2096 SOL_IRDA = 0x10a 2096 SIOCBRADDIF = 0x89a2
2097 SOL_IUCV = 0x115 2097 SIOCBRDELBR = 0x89a1
2098 SOL_KCM = 0x119 2098 SIOCBRDELIF = 0x89a3
2099 SOL_LLC = 0x10c 2099 SIOCDARP = 0x8953
2100 SOL_NETBEUI = 0x10b 2100 SIOCDELDLCI = 0x8981
2101 SOL_NETLINK = 0x10e 2101 SIOCDELMULTI = 0x8932
2102 SOL_NFC = 0x118 2102 SIOCDELRT = 0x890c
2103 SOL_PACKET = 0x107 2103 SIOCDEVPRIVATE = 0x89f0
2104 SOL_PNPIPE = 0x113 2104 SIOCDIFADDR = 0x8936
2105 SOL_PPPOL2TP = 0x111 2105 SIOCDRARP = 0x8960
2106 SOL_RAW = 0xff 2106 SIOCETHTOOL = 0x8946
2107 SOL_RDS = 0x114 2107 SIOCGARP = 0x8954
2108 SOL_RXRPC = 0x110 2108 SIOCGETLINKNAME = 0x89e0
2109 SOL_SOCKET = 0x1 2109 SIOCGETNODEID = 0x89e1
2110 SOL_TCP = 0x6 2110 SIOCGHWTSTAMP = 0x89b1
2111 SOL_TIPC = 0x10f 2111 SIOCGIFADDR = 0x8915
2112 SOL_TLS = 0x11a 2112 SIOCGIFBR = 0x8940
2113 SOL_X25 = 0x106 2113 SIOCGIFBRDADDR = 0x8919
2114 SOL_XDP = 0x11b 2114 SIOCGIFCONF = 0x8912
2115 SOMAXCONN = 0x80 2115 SIOCGIFCOUNT = 0x8938
2116 SO_ACCEPTCONN = 0x1e 2116 SIOCGIFDSTADDR = 0x8917
2117 SO_ATTACH_BPF = 0x32 2117 SIOCGIFENCAP = 0x8925
2118 SO_ATTACH_FILTER = 0x1a 2118 SIOCGIFFLAGS = 0x8913
2119 SO_ATTACH_REUSEPORT_CBPF = 0x33 2119 SIOCGIFHWADDR = 0x8927
2120 SO_ATTACH_REUSEPORT_EBPF = 0x34 2120 SIOCGIFINDEX = 0x8933
2121 SO_BINDTODEVICE = 0x19 2121 SIOCGIFMAP = 0x8970
2122 SO_BINDTOIFINDEX = 0x3e 2122 SIOCGIFMEM = 0x891f
2123 SO_BPF_EXTENSIONS = 0x30 2123 SIOCGIFMETRIC = 0x891d
2124 SO_BROADCAST = 0x6 2124 SIOCGIFMTU = 0x8921
2125 SO_BSDCOMPAT = 0xe 2125 SIOCGIFNAME = 0x8910
2126 SO_BUSY_POLL = 0x2e 2126 SIOCGIFNETMASK = 0x891b
2127 SO_CNX_ADVICE = 0x35 2127 SIOCGIFPFLAGS = 0x8935
2128 SO_COOKIE = 0x39 2128 SIOCGIFSLAVE = 0x8929
2129 SO_DEBUG = 0x1 2129 SIOCGIFTXQLEN = 0x8942
2130 SO_DETACH_BPF = 0x1b 2130 SIOCGIFVLAN = 0x8982
2131 SO_DETACH_FILTER = 0x1b 2131 SIOCGMIIPHY = 0x8947
2132 SO_DOMAIN = 0x27 2132 SIOCGMIIREG = 0x8948
2133 SO_DONTROUTE = 0x5 2133 SIOCGPGRP = 0x8904
2134 SO_EE_CODE_TXTIME_INVALID_PARAM = 0x1 2134 SIOCGPPPCSTATS = 0x89f2
2135 SO_EE_CODE_TXTIME_MISSED = 0x2 2135 SIOCGPPPSTATS = 0x89f0
2136 SO_EE_CODE_ZEROCOPY_COPIED = 0x1 2136 SIOCGPPPVER = 0x89f1
2137 SO_EE_ORIGIN_ICMP = 0x2 2137 SIOCGRARP = 0x8961
2138 SO_EE_ORIGIN_ICMP6 = 0x3 2138 SIOCGSKNS = 0x894c
2139 SO_EE_ORIGIN_LOCAL = 0x1 2139 SIOCGSTAMP = 0x8906
2140 SO_EE_ORIGIN_NONE = 0x0 2140 SIOCGSTAMPNS = 0x8907
2141 SO_EE_ORIGIN_TIMESTAMPING = 0x4 2141 SIOCGSTAMPNS_NEW = 0x80108907
2142 SO_EE_ORIGIN_TXSTATUS = 0x4 2142 SIOCGSTAMPNS_OLD = 0x8907
2143 SO_EE_ORIGIN_TXTIME = 0x6 2143 SIOCGSTAMP_NEW = 0x80108906
2144 SO_EE_ORIGIN_ZEROCOPY = 0x5 2144 SIOCGSTAMP_OLD = 0x8906
2145 SO_ERROR = 0x4 2145 SIOCINQ = 0x541b
2146 SO_GET_FILTER = 0x1a 2146 SIOCOUTQ = 0x5411
2147 SO_INCOMING_CPU = 0x31 2147 SIOCOUTQNSD = 0x894b
2148 SO_INCOMING_NAPI_ID = 0x38 2148 SIOCPROTOPRIVATE = 0x89e0
2149 SO_KEEPALIVE = 0x9 2149 SIOCRTMSG = 0x890d
2150 SO_LINGER = 0xd 2150 SIOCSARP = 0x8955
2151 SO_LOCK_FILTER = 0x2c 2151 SIOCSHWTSTAMP = 0x89b0
2152 SO_MARK = 0x24 2152 SIOCSIFADDR = 0x8916
2153 SO_MAX_PACING_RATE = 0x2f 2153 SIOCSIFBR = 0x8941
2154 SO_MEMINFO = 0x37 2154 SIOCSIFBRDADDR = 0x891a
2155 SO_NOFCS = 0x2b 2155 SIOCSIFDSTADDR = 0x8918
2156 SO_NO_CHECK = 0xb 2156 SIOCSIFENCAP = 0x8926
2157 SO_OOBINLINE = 0xa 2157 SIOCSIFFLAGS = 0x8914
2158 SO_PASSCRED = 0x10 2158 SIOCSIFHWADDR = 0x8924
2159 SO_PASSSEC = 0x22 2159 SIOCSIFHWBROADCAST = 0x8937
2160 SO_PEEK_OFF = 0x2a 2160 SIOCSIFLINK = 0x8911
2161 SO_PEERCRED = 0x11 2161 SIOCSIFMAP = 0x8971
2162 SO_PEERGROUPS = 0x3b 2162 SIOCSIFMEM = 0x8920
2163 SO_PEERNAME = 0x1c 2163 SIOCSIFMETRIC = 0x891e
2164 SO_PEERSEC = 0x1f 2164 SIOCSIFMTU = 0x8922
2165 SO_PRIORITY = 0xc 2165 SIOCSIFNAME = 0x8923
2166 SO_PROTOCOL = 0x26 2166 SIOCSIFNETMASK = 0x891c
2167 SO_RCVBUF = 0x8 2167 SIOCSIFPFLAGS = 0x8934
2168 SO_RCVBUFFORCE = 0x21 2168 SIOCSIFSLAVE = 0x8930
2169 SO_RCVLOWAT = 0x12 2169 SIOCSIFTXQLEN = 0x8943
2170 SO_RCVTIMEO = 0x14 2170 SIOCSIFVLAN = 0x8983
2171 SO_RCVTIMEO_NEW = 0x42 2171 SIOCSMIIREG = 0x8949
2172 SO_RCVTIMEO_OLD = 0x14 2172 SIOCSPGRP = 0x8902
2173 SO_REUSEADDR = 0x2 2173 SIOCSRARP = 0x8962
2174 SO_REUSEPORT = 0xf 2174 SIOCWANDEV = 0x894a
2175 SO_RXQ_OVFL = 0x28 2175 SMACK_MAGIC = 0x43415d53
2176 SO_SECURITY_AUTHENTICATION = 0x16 2176 SMART_AUTOSAVE = 0xd2
2177 SO_SECURITY_ENCRYPTION_NETWORK = 0x18 2177 SMART_AUTO_OFFLINE = 0xdb
2178 SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17 2178 SMART_DISABLE = 0xd9
2179 SO_SELECT_ERR_QUEUE = 0x2d 2179 SMART_ENABLE = 0xd8
2180 SO_SNDBUF = 0x7 2180 SMART_HCYL_PASS = 0xc2
2181 SO_SNDBUFFORCE = 0x20 2181 SMART_IMMEDIATE_OFFLINE = 0xd4
2182 SO_SNDLOWAT = 0x13 2182 SMART_LCYL_PASS = 0x4f
2183 SO_SNDTIMEO = 0x15 2183 SMART_READ_LOG_SECTOR = 0xd5
2184 SO_SNDTIMEO_NEW = 0x43 2184 SMART_READ_THRESHOLDS = 0xd1
2185 SO_SNDTIMEO_OLD = 0x15 2185 SMART_READ_VALUES = 0xd0
2186 SO_TIMESTAMP = 0x1d 2186 SMART_SAVE = 0xd3
2187 SO_TIMESTAMPING = 0x25 2187 SMART_STATUS = 0xda
2188 SO_TIMESTAMPING_NEW = 0x41 2188 SMART_WRITE_LOG_SECTOR = 0xd6
2189 SO_TIMESTAMPING_OLD = 0x25 2189 SMART_WRITE_THRESHOLDS = 0xd7
2190 SO_TIMESTAMPNS = 0x23 2190 SMB_SUPER_MAGIC = 0x517b
2191 SO_TIMESTAMPNS_NEW = 0x40 2191 SOCKFS_MAGIC = 0x534f434b
2192 SO_TIMESTAMPNS_OLD = 0x23 2192 SOCK_CLOEXEC = 0x80000
2193 SO_TIMESTAMP_NEW = 0x3f 2193 SOCK_DCCP = 0x6
2194 SO_TIMESTAMP_OLD = 0x1d 2194 SOCK_DGRAM = 0x2
2195 SO_TXTIME = 0x3d 2195 SOCK_IOC_TYPE = 0x89
2196 SO_TYPE = 0x3 2196 SOCK_NONBLOCK = 0x800
2197 SO_VM_SOCKETS_BUFFER_MAX_SIZE = 0x2 2197 SOCK_PACKET = 0xa
2198 SO_VM_SOCKETS_BUFFER_MIN_SIZE = 0x1 2198 SOCK_RAW = 0x3
2199 SO_VM_SOCKETS_BUFFER_SIZE = 0x0 2199 SOCK_RDM = 0x4
2200 SO_VM_SOCKETS_CONNECT_TIMEOUT = 0x6 2200 SOCK_SEQPACKET = 0x5
2201 SO_VM_SOCKETS_NONBLOCK_TXRX = 0x7 2201 SOCK_STREAM = 0x1
2202 SO_VM_SOCKETS_PEER_HOST_VM_ID = 0x3 2202 SOL_AAL = 0x109
2203 SO_VM_SOCKETS_TRUSTED = 0x5 2203 SOL_ALG = 0x117
2204 SO_WIFI_STATUS = 0x29 2204 SOL_ATM = 0x108
2205 SO_ZEROCOPY = 0x3c 2205 SOL_CAIF = 0x116
2206 SPLICE_F_GIFT = 0x8 2206 SOL_CAN_BASE = 0x64
2207 SPLICE_F_MORE = 0x4 2207 SOL_DCCP = 0x10d
2208 SPLICE_F_MOVE = 0x1 2208 SOL_DECNET = 0x105
2209 SPLICE_F_NONBLOCK = 0x2 2209 SOL_ICMPV6 = 0x3a
2210 SQUASHFS_MAGIC = 0x73717368 2210 SOL_IP = 0x0
2211 STACK_END_MAGIC = 0x57ac6e9d 2211 SOL_IPV6 = 0x29
2212 STATX_ALL = 0xfff 2212 SOL_IRDA = 0x10a
2213 STATX_ATIME = 0x20 2213 SOL_IUCV = 0x115
2214 STATX_ATTR_APPEND = 0x20 2214 SOL_KCM = 0x119
2215 STATX_ATTR_AUTOMOUNT = 0x1000 2215 SOL_LLC = 0x10c
2216 STATX_ATTR_COMPRESSED = 0x4 2216 SOL_NETBEUI = 0x10b
2217 STATX_ATTR_ENCRYPTED = 0x800 2217 SOL_NETLINK = 0x10e
2218 STATX_ATTR_IMMUTABLE = 0x10 2218 SOL_NFC = 0x118
2219 STATX_ATTR_NODUMP = 0x40 2219 SOL_PACKET = 0x107
2220 STATX_BASIC_STATS = 0x7ff 2220 SOL_PNPIPE = 0x113
2221 STATX_BLOCKS = 0x400 2221 SOL_PPPOL2TP = 0x111
2222 STATX_BTIME = 0x800 2222 SOL_RAW = 0xff
2223 STATX_CTIME = 0x80 2223 SOL_RDS = 0x114
2224 STATX_GID = 0x10 2224 SOL_RXRPC = 0x110
2225 STATX_INO = 0x100 2225 SOL_SOCKET = 0x1
2226 STATX_MODE = 0x2 2226 SOL_TCP = 0x6
2227 STATX_MTIME = 0x40 2227 SOL_TIPC = 0x10f
2228 STATX_NLINK = 0x4 2228 SOL_TLS = 0x11a
2229 STATX_SIZE = 0x200 2229 SOL_X25 = 0x106
2230 STATX_TYPE = 0x1 2230 SOL_XDP = 0x11b
2231 STATX_UID = 0x8 2231 SOMAXCONN = 0x1000
2232 STATX__RESERVED = 0x80000000 2232 SO_ACCEPTCONN = 0x1e
2233 SVE_MAGIC = 0x53564501 2233 SO_ATTACH_BPF = 0x32
2234 SYNC_FILE_RANGE_WAIT_AFTER = 0x4 2234 SO_ATTACH_FILTER = 0x1a
2235 SYNC_FILE_RANGE_WAIT_BEFORE = 0x1 2235 SO_ATTACH_REUSEPORT_CBPF = 0x33
2236 SYNC_FILE_RANGE_WRITE = 0x2 2236 SO_ATTACH_REUSEPORT_EBPF = 0x34
2237 SYNC_FILE_RANGE_WRITE_AND_WAIT = 0x7 2237 SO_BINDTODEVICE = 0x19
2238 SYSFS_MAGIC = 0x62656572 2238 SO_BINDTOIFINDEX = 0x3e
2239 S_BLKSIZE = 0x200 2239 SO_BPF_EXTENSIONS = 0x30
2240 S_IEXEC = 0x40 2240 SO_BROADCAST = 0x6
2241 S_IFBLK = 0x6000 2241 SO_BSDCOMPAT = 0xe
2242 S_IFCHR = 0x2000 2242 SO_BUSY_POLL = 0x2e
2243 S_IFDIR = 0x4000 2243 SO_CNX_ADVICE = 0x35
2244 S_IFIFO = 0x1000 2244 SO_COOKIE = 0x39
2245 S_IFLNK = 0xa000 2245 SO_DEBUG = 0x1
2246 S_IFMT = 0xf000 2246 SO_DETACH_BPF = 0x1b
2247 S_IFREG = 0x8000 2247 SO_DETACH_FILTER = 0x1b
2248 S_IFSOCK = 0xc000 2248 SO_DETACH_REUSEPORT_BPF = 0x44
2249 S_IREAD = 0x100 2249 SO_DOMAIN = 0x27
2250 S_IRGRP = 0x20 2250 SO_DONTROUTE = 0x5
2251 S_IROTH = 0x4 2251 SO_EE_CODE_TXTIME_INVALID_PARAM = 0x1
2252 S_IRUSR = 0x100 2252 SO_EE_CODE_TXTIME_MISSED = 0x2
2253 S_IRWXG = 0x38 2253 SO_EE_CODE_ZEROCOPY_COPIED = 0x1
2254 S_IRWXO = 0x7 2254 SO_EE_ORIGIN_ICMP = 0x2
2255 S_IRWXU = 0x1c0 2255 SO_EE_ORIGIN_ICMP6 = 0x3
2256 S_ISGID = 0x400 2256 SO_EE_ORIGIN_LOCAL = 0x1
2257 S_ISUID = 0x800 2257 SO_EE_ORIGIN_NONE = 0x0
2258 S_ISVTX = 0x200 2258 SO_EE_ORIGIN_TIMESTAMPING = 0x4
2259 S_IWGRP = 0x10 2259 SO_EE_ORIGIN_TXSTATUS = 0x4
2260 S_IWOTH = 0x2 2260 SO_EE_ORIGIN_TXTIME = 0x6
2261 S_IWRITE = 0x80 2261 SO_EE_ORIGIN_ZEROCOPY = 0x5
2262 S_IWUSR = 0x80 2262 SO_ERROR = 0x4
2263 S_IXGRP = 0x8 2263 SO_GET_FILTER = 0x1a
2264 S_IXOTH = 0x1 2264 SO_INCOMING_CPU = 0x31
2265 S_IXUSR = 0x40 2265 SO_INCOMING_NAPI_ID = 0x38
2266 TAB0 = 0x0 2266 SO_KEEPALIVE = 0x9
2267 TAB1 = 0x800 2267 SO_LINGER = 0xd
2268 TAB2 = 0x1000 2268 SO_LOCK_FILTER = 0x2c
2269 TAB3 = 0x1800 2269 SO_MARK = 0x24
2270 TABDLY = 0x1800 2270 SO_MAX_PACING_RATE = 0x2f
2271 TASKSTATS_CMD_ATTR_MAX = 0x4 2271 SO_MEMINFO = 0x37
2272 TASKSTATS_CMD_MAX = 0x2 2272 SO_NOFCS = 0x2b
2273 TASKSTATS_GENL_NAME = "TASKSTATS" 2273 SO_NO_CHECK = 0xb
2274 TASKSTATS_GENL_VERSION = 0x1 2274 SO_OOBINLINE = 0xa
2275 TASKSTATS_TYPE_MAX = 0x6 2275 SO_PASSCRED = 0x10
2276 TASKSTATS_VERSION = 0x9 2276 SO_PASSSEC = 0x22
2277 TCFLSH = 0x540b 2277 SO_PEEK_OFF = 0x2a
2278 TCGETA = 0x5405 2278 SO_PEERCRED = 0x11
2279 TCGETS = 0x5401 2279 SO_PEERGROUPS = 0x3b
2280 TCGETS2 = 0x802c542a 2280 SO_PEERNAME = 0x1c
2281 TCGETX = 0x5432 2281 SO_PEERSEC = 0x1f
2282 TCIFLUSH = 0x0 2282 SO_PRIORITY = 0xc
2283 TCIOFF = 0x2 2283 SO_PROTOCOL = 0x26
2284 TCIOFLUSH = 0x2 2284 SO_RCVBUF = 0x8
2285 TCION = 0x3 2285 SO_RCVBUFFORCE = 0x21
2286 TCOFLUSH = 0x1 2286 SO_RCVLOWAT = 0x12
2287 TCOOFF = 0x0 2287 SO_RCVTIMEO = 0x14
2288 TCOON = 0x1 2288 SO_RCVTIMEO_NEW = 0x42
2289 TCP_BPF_IW = 0x3e9 2289 SO_RCVTIMEO_OLD = 0x14
2290 TCP_BPF_SNDCWND_CLAMP = 0x3ea 2290 SO_REUSEADDR = 0x2
2291 TCP_CC_INFO = 0x1a 2291 SO_REUSEPORT = 0xf
2292 TCP_CM_INQ = 0x24 2292 SO_RXQ_OVFL = 0x28
2293 TCP_CONGESTION = 0xd 2293 SO_SECURITY_AUTHENTICATION = 0x16
2294 TCP_COOKIE_IN_ALWAYS = 0x1 2294 SO_SECURITY_ENCRYPTION_NETWORK = 0x18
2295 TCP_COOKIE_MAX = 0x10 2295 SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17
2296 TCP_COOKIE_MIN = 0x8 2296 SO_SELECT_ERR_QUEUE = 0x2d
2297 TCP_COOKIE_OUT_NEVER = 0x2 2297 SO_SNDBUF = 0x7
2298 TCP_COOKIE_PAIR_SIZE = 0x20 2298 SO_SNDBUFFORCE = 0x20
2299 TCP_COOKIE_TRANSACTIONS = 0xf 2299 SO_SNDLOWAT = 0x13
2300 TCP_CORK = 0x3 2300 SO_SNDTIMEO = 0x15
2301 TCP_DEFER_ACCEPT = 0x9 2301 SO_SNDTIMEO_NEW = 0x43
2302 TCP_FASTOPEN = 0x17 2302 SO_SNDTIMEO_OLD = 0x15
2303 TCP_FASTOPEN_CONNECT = 0x1e 2303 SO_TIMESTAMP = 0x1d
2304 TCP_FASTOPEN_KEY = 0x21 2304 SO_TIMESTAMPING = 0x25
2305 TCP_FASTOPEN_NO_COOKIE = 0x22 2305 SO_TIMESTAMPING_NEW = 0x41
2306 TCP_INFO = 0xb 2306 SO_TIMESTAMPING_OLD = 0x25
2307 TCP_INQ = 0x24 2307 SO_TIMESTAMPNS = 0x23
2308 TCP_KEEPCNT = 0x6 2308 SO_TIMESTAMPNS_NEW = 0x40
2309 TCP_KEEPIDLE = 0x4 2309 SO_TIMESTAMPNS_OLD = 0x23
2310 TCP_KEEPINTVL = 0x5 2310 SO_TIMESTAMP_NEW = 0x3f
2311 TCP_LINGER2 = 0x8 2311 SO_TIMESTAMP_OLD = 0x1d
2312 TCP_MAXSEG = 0x2 2312 SO_TXTIME = 0x3d
2313 TCP_MAXWIN = 0xffff 2313 SO_TYPE = 0x3
2314 TCP_MAX_WINSHIFT = 0xe 2314 SO_VM_SOCKETS_BUFFER_MAX_SIZE = 0x2
2315 TCP_MD5SIG = 0xe 2315 SO_VM_SOCKETS_BUFFER_MIN_SIZE = 0x1
2316 TCP_MD5SIG_EXT = 0x20 2316 SO_VM_SOCKETS_BUFFER_SIZE = 0x0
2317 TCP_MD5SIG_FLAG_PREFIX = 0x1 2317 SO_VM_SOCKETS_CONNECT_TIMEOUT = 0x6
2318 TCP_MD5SIG_MAXKEYLEN = 0x50 2318 SO_VM_SOCKETS_NONBLOCK_TXRX = 0x7
2319 TCP_MSS = 0x200 2319 SO_VM_SOCKETS_PEER_HOST_VM_ID = 0x3
2320 TCP_MSS_DEFAULT = 0x218 2320 SO_VM_SOCKETS_TRUSTED = 0x5
2321 TCP_MSS_DESIRED = 0x4c4 2321 SO_WIFI_STATUS = 0x29
2322 TCP_NODELAY = 0x1 2322 SO_ZEROCOPY = 0x3c
2323 TCP_NOTSENT_LOWAT = 0x19 2323 SPLICE_F_GIFT = 0x8
2324 TCP_QUEUE_SEQ = 0x15 2324 SPLICE_F_MORE = 0x4
2325 TCP_QUICKACK = 0xc 2325 SPLICE_F_MOVE = 0x1
2326 TCP_REPAIR = 0x13 2326 SPLICE_F_NONBLOCK = 0x2
2327 TCP_REPAIR_OFF = 0x0 2327 SQUASHFS_MAGIC = 0x73717368
2328 TCP_REPAIR_OFF_NO_WP = -0x1 2328 STACK_END_MAGIC = 0x57ac6e9d
2329 TCP_REPAIR_ON = 0x1 2329 STATX_ALL = 0xfff
2330 TCP_REPAIR_OPTIONS = 0x16 2330 STATX_ATIME = 0x20
2331 TCP_REPAIR_QUEUE = 0x14 2331 STATX_ATTR_APPEND = 0x20
2332 TCP_REPAIR_WINDOW = 0x1d 2332 STATX_ATTR_AUTOMOUNT = 0x1000
2333 TCP_SAVED_SYN = 0x1c 2333 STATX_ATTR_COMPRESSED = 0x4
2334 TCP_SAVE_SYN = 0x1b 2334 STATX_ATTR_ENCRYPTED = 0x800
2335 TCP_SYNCNT = 0x7 2335 STATX_ATTR_IMMUTABLE = 0x10
2336 TCP_S_DATA_IN = 0x4 2336 STATX_ATTR_NODUMP = 0x40
2337 TCP_S_DATA_OUT = 0x8 2337 STATX_ATTR_VERITY = 0x100000
2338 TCP_THIN_DUPACK = 0x11 2338 STATX_BASIC_STATS = 0x7ff
2339 TCP_THIN_LINEAR_TIMEOUTS = 0x10 2339 STATX_BLOCKS = 0x400
2340 TCP_TIMESTAMP = 0x18 2340 STATX_BTIME = 0x800
2341 TCP_ULP = 0x1f 2341 STATX_CTIME = 0x80
2342 TCP_USER_TIMEOUT = 0x12 2342 STATX_GID = 0x10
2343 TCP_WINDOW_CLAMP = 0xa 2343 STATX_INO = 0x100
2344 TCP_ZEROCOPY_RECEIVE = 0x23 2344 STATX_MODE = 0x2
2345 TCSAFLUSH = 0x2 2345 STATX_MTIME = 0x40
2346 TCSBRK = 0x5409 2346 STATX_NLINK = 0x4
2347 TCSBRKP = 0x5425 2347 STATX_SIZE = 0x200
2348 TCSETA = 0x5406 2348 STATX_TYPE = 0x1
2349 TCSETAF = 0x5408 2349 STATX_UID = 0x8
2350 TCSETAW = 0x5407 2350 STATX__RESERVED = 0x80000000
2351 TCSETS = 0x5402 2351 SVE_MAGIC = 0x53564501
2352 TCSETS2 = 0x402c542b 2352 SYNC_FILE_RANGE_WAIT_AFTER = 0x4
2353 TCSETSF = 0x5404 2353 SYNC_FILE_RANGE_WAIT_BEFORE = 0x1
2354 TCSETSF2 = 0x402c542d 2354 SYNC_FILE_RANGE_WRITE = 0x2
2355 TCSETSW = 0x5403 2355 SYNC_FILE_RANGE_WRITE_AND_WAIT = 0x7
2356 TCSETSW2 = 0x402c542c 2356 SYSFS_MAGIC = 0x62656572
2357 TCSETX = 0x5433 2357 S_BLKSIZE = 0x200
2358 TCSETXF = 0x5434 2358 S_IEXEC = 0x40
2359 TCSETXW = 0x5435 2359 S_IFBLK = 0x6000
2360 TCXONC = 0x540a 2360 S_IFCHR = 0x2000
2361 TIMER_ABSTIME = 0x1 2361 S_IFDIR = 0x4000
2362 TIOCCBRK = 0x5428 2362 S_IFIFO = 0x1000
2363 TIOCCONS = 0x541d 2363 S_IFLNK = 0xa000
2364 TIOCEXCL = 0x540c 2364 S_IFMT = 0xf000
2365 TIOCGDEV = 0x80045432 2365 S_IFREG = 0x8000
2366 TIOCGETD = 0x5424 2366 S_IFSOCK = 0xc000
2367 TIOCGEXCL = 0x80045440 2367 S_IREAD = 0x100
2368 TIOCGICOUNT = 0x545d 2368 S_IRGRP = 0x20
2369 TIOCGISO7816 = 0x80285442 2369 S_IROTH = 0x4
2370 TIOCGLCKTRMIOS = 0x5456 2370 S_IRUSR = 0x100
2371 TIOCGPGRP = 0x540f 2371 S_IRWXG = 0x38
2372 TIOCGPKT = 0x80045438 2372 S_IRWXO = 0x7
2373 TIOCGPTLCK = 0x80045439 2373 S_IRWXU = 0x1c0
2374 TIOCGPTN = 0x80045430 2374 S_ISGID = 0x400
2375 TIOCGPTPEER = 0x5441 2375 S_ISUID = 0x800
2376 TIOCGRS485 = 0x542e 2376 S_ISVTX = 0x200
2377 TIOCGSERIAL = 0x541e 2377 S_IWGRP = 0x10
2378 TIOCGSID = 0x5429 2378 S_IWOTH = 0x2
2379 TIOCGSOFTCAR = 0x5419 2379 S_IWRITE = 0x80
2380 TIOCGWINSZ = 0x5413 2380 S_IWUSR = 0x80
2381 TIOCINQ = 0x541b 2381 S_IXGRP = 0x8
2382 TIOCLINUX = 0x541c 2382 S_IXOTH = 0x1
2383 TIOCMBIC = 0x5417 2383 S_IXUSR = 0x40
2384 TIOCMBIS = 0x5416 2384 TAB0 = 0x0
2385 TIOCMGET = 0x5415 2385 TAB1 = 0x800
2386 TIOCMIWAIT = 0x545c 2386 TAB2 = 0x1000
2387 TIOCMSET = 0x5418 2387 TAB3 = 0x1800
2388 TIOCM_CAR = 0x40 2388 TABDLY = 0x1800
2389 TIOCM_CD = 0x40 2389 TASKSTATS_CMD_ATTR_MAX = 0x4
2390 TIOCM_CTS = 0x20 2390 TASKSTATS_CMD_MAX = 0x2
2391 TIOCM_DSR = 0x100 2391 TASKSTATS_GENL_NAME = "TASKSTATS"
2392 TIOCM_DTR = 0x2 2392 TASKSTATS_GENL_VERSION = 0x1
2393 TIOCM_LE = 0x1 2393 TASKSTATS_TYPE_MAX = 0x6
2394 TIOCM_RI = 0x80 2394 TASKSTATS_VERSION = 0x9
2395 TIOCM_RNG = 0x80 2395 TCFLSH = 0x540b
2396 TIOCM_RTS = 0x4 2396 TCGETA = 0x5405
2397 TIOCM_SR = 0x10 2397 TCGETS = 0x5401
2398 TIOCM_ST = 0x8 2398 TCGETS2 = 0x802c542a
2399 TIOCNOTTY = 0x5422 2399 TCGETX = 0x5432
2400 TIOCNXCL = 0x540d 2400 TCIFLUSH = 0x0
2401 TIOCOUTQ = 0x5411 2401 TCIOFF = 0x2
2402 TIOCPKT = 0x5420 2402 TCIOFLUSH = 0x2
2403 TIOCPKT_DATA = 0x0 2403 TCION = 0x3
2404 TIOCPKT_DOSTOP = 0x20 2404 TCOFLUSH = 0x1
2405 TIOCPKT_FLUSHREAD = 0x1 2405 TCOOFF = 0x0
2406 TIOCPKT_FLUSHWRITE = 0x2 2406 TCOON = 0x1
2407 TIOCPKT_IOCTL = 0x40 2407 TCP_BPF_IW = 0x3e9
2408 TIOCPKT_NOSTOP = 0x10 2408 TCP_BPF_SNDCWND_CLAMP = 0x3ea
2409 TIOCPKT_START = 0x8 2409 TCP_CC_INFO = 0x1a
2410 TIOCPKT_STOP = 0x4 2410 TCP_CM_INQ = 0x24
2411 TIOCSBRK = 0x5427 2411 TCP_CONGESTION = 0xd
2412 TIOCSCTTY = 0x540e 2412 TCP_COOKIE_IN_ALWAYS = 0x1
2413 TIOCSERCONFIG = 0x5453 2413 TCP_COOKIE_MAX = 0x10
2414 TIOCSERGETLSR = 0x5459 2414 TCP_COOKIE_MIN = 0x8
2415 TIOCSERGETMULTI = 0x545a 2415 TCP_COOKIE_OUT_NEVER = 0x2
2416 TIOCSERGSTRUCT = 0x5458 2416 TCP_COOKIE_PAIR_SIZE = 0x20
2417 TIOCSERGWILD = 0x5454 2417 TCP_COOKIE_TRANSACTIONS = 0xf
2418 TIOCSERSETMULTI = 0x545b 2418 TCP_CORK = 0x3
2419 TIOCSERSWILD = 0x5455 2419 TCP_DEFER_ACCEPT = 0x9
2420 TIOCSER_TEMT = 0x1 2420 TCP_FASTOPEN = 0x17
2421 TIOCSETD = 0x5423 2421 TCP_FASTOPEN_CONNECT = 0x1e
2422 TIOCSIG = 0x40045436 2422 TCP_FASTOPEN_KEY = 0x21
2423 TIOCSISO7816 = 0xc0285443 2423 TCP_FASTOPEN_NO_COOKIE = 0x22
2424 TIOCSLCKTRMIOS = 0x5457 2424 TCP_INFO = 0xb
2425 TIOCSPGRP = 0x5410 2425 TCP_INQ = 0x24
2426 TIOCSPTLCK = 0x40045431 2426 TCP_KEEPCNT = 0x6
2427 TIOCSRS485 = 0x542f 2427 TCP_KEEPIDLE = 0x4
2428 TIOCSSERIAL = 0x541f 2428 TCP_KEEPINTVL = 0x5
2429 TIOCSSOFTCAR = 0x541a 2429 TCP_LINGER2 = 0x8
2430 TIOCSTI = 0x5412 2430 TCP_MAXSEG = 0x2
2431 TIOCSWINSZ = 0x5414 2431 TCP_MAXWIN = 0xffff
2432 TIOCVHANGUP = 0x5437 2432 TCP_MAX_WINSHIFT = 0xe
2433 TMPFS_MAGIC = 0x1021994 2433 TCP_MD5SIG = 0xe
2434 TOSTOP = 0x100 2434 TCP_MD5SIG_EXT = 0x20
2435 TPACKET_ALIGNMENT = 0x10 2435 TCP_MD5SIG_FLAG_PREFIX = 0x1
2436 TPACKET_HDRLEN = 0x34 2436 TCP_MD5SIG_MAXKEYLEN = 0x50
2437 TP_STATUS_AVAILABLE = 0x0 2437 TCP_MSS = 0x200
2438 TP_STATUS_BLK_TMO = 0x20 2438 TCP_MSS_DEFAULT = 0x218
2439 TP_STATUS_COPY = 0x2 2439 TCP_MSS_DESIRED = 0x4c4
2440 TP_STATUS_CSUMNOTREADY = 0x8 2440 TCP_NODELAY = 0x1
2441 TP_STATUS_CSUM_VALID = 0x80 2441 TCP_NOTSENT_LOWAT = 0x19
2442 TP_STATUS_KERNEL = 0x0 2442 TCP_QUEUE_SEQ = 0x15
2443 TP_STATUS_LOSING = 0x4 2443 TCP_QUICKACK = 0xc
2444 TP_STATUS_SENDING = 0x2 2444 TCP_REPAIR = 0x13
2445 TP_STATUS_SEND_REQUEST = 0x1 2445 TCP_REPAIR_OFF = 0x0
2446 TP_STATUS_TS_RAW_HARDWARE = -0x80000000 2446 TCP_REPAIR_OFF_NO_WP = -0x1
2447 TP_STATUS_TS_SOFTWARE = 0x20000000 2447 TCP_REPAIR_ON = 0x1
2448 TP_STATUS_TS_SYS_HARDWARE = 0x40000000 2448 TCP_REPAIR_OPTIONS = 0x16
2449 TP_STATUS_USER = 0x1 2449 TCP_REPAIR_QUEUE = 0x14
2450 TP_STATUS_VLAN_TPID_VALID = 0x40 2450 TCP_REPAIR_WINDOW = 0x1d
2451 TP_STATUS_VLAN_VALID = 0x10 2451 TCP_SAVED_SYN = 0x1c
2452 TP_STATUS_WRONG_FORMAT = 0x4 2452 TCP_SAVE_SYN = 0x1b
2453 TRACEFS_MAGIC = 0x74726163 2453 TCP_SYNCNT = 0x7
2454 TS_COMM_LEN = 0x20 2454 TCP_S_DATA_IN = 0x4
2455 TUNATTACHFILTER = 0x401054d5 2455 TCP_S_DATA_OUT = 0x8
2456 TUNDETACHFILTER = 0x401054d6 2456 TCP_THIN_DUPACK = 0x11
2457 TUNGETDEVNETNS = 0x54e3 2457 TCP_THIN_LINEAR_TIMEOUTS = 0x10
2458 TUNGETFEATURES = 0x800454cf 2458 TCP_TIMESTAMP = 0x18
2459 TUNGETFILTER = 0x801054db 2459 TCP_TX_DELAY = 0x25
2460 TUNGETIFF = 0x800454d2 2460 TCP_ULP = 0x1f
2461 TUNGETSNDBUF = 0x800454d3 2461 TCP_USER_TIMEOUT = 0x12
2462 TUNGETVNETBE = 0x800454df 2462 TCP_WINDOW_CLAMP = 0xa
2463 TUNGETVNETHDRSZ = 0x800454d7 2463 TCP_ZEROCOPY_RECEIVE = 0x23
2464 TUNGETVNETLE = 0x800454dd 2464 TCSAFLUSH = 0x2
2465 TUNSETCARRIER = 0x400454e2 2465 TCSBRK = 0x5409
2466 TUNSETDEBUG = 0x400454c9 2466 TCSBRKP = 0x5425
2467 TUNSETFILTEREBPF = 0x800454e1 2467 TCSETA = 0x5406
2468 TUNSETGROUP = 0x400454ce 2468 TCSETAF = 0x5408
2469 TUNSETIFF = 0x400454ca 2469 TCSETAW = 0x5407
2470 TUNSETIFINDEX = 0x400454da 2470 TCSETS = 0x5402
2471 TUNSETLINK = 0x400454cd 2471 TCSETS2 = 0x402c542b
2472 TUNSETNOCSUM = 0x400454c8 2472 TCSETSF = 0x5404
2473 TUNSETOFFLOAD = 0x400454d0 2473 TCSETSF2 = 0x402c542d
2474 TUNSETOWNER = 0x400454cc 2474 TCSETSW = 0x5403
2475 TUNSETPERSIST = 0x400454cb 2475 TCSETSW2 = 0x402c542c
2476 TUNSETQUEUE = 0x400454d9 2476 TCSETX = 0x5433
2477 TUNSETSNDBUF = 0x400454d4 2477 TCSETXF = 0x5434
2478 TUNSETSTEERINGEBPF = 0x800454e0 2478 TCSETXW = 0x5435
2479 TUNSETTXFILTER = 0x400454d1 2479 TCXONC = 0x540a
2480 TUNSETVNETBE = 0x400454de 2480 TIMER_ABSTIME = 0x1
2481 TUNSETVNETHDRSZ = 0x400454d8 2481 TIOCCBRK = 0x5428
2482 TUNSETVNETLE = 0x400454dc 2482 TIOCCONS = 0x541d
2483 UBI_IOCATT = 0x40186f40 2483 TIOCEXCL = 0x540c
2484 UBI_IOCDET = 0x40046f41 2484 TIOCGDEV = 0x80045432
2485 UBI_IOCEBCH = 0x40044f02 2485 TIOCGETD = 0x5424
2486 UBI_IOCEBER = 0x40044f01 2486 TIOCGEXCL = 0x80045440
2487 UBI_IOCEBISMAP = 0x80044f05 2487 TIOCGICOUNT = 0x545d
2488 UBI_IOCEBMAP = 0x40084f03 2488 TIOCGISO7816 = 0x80285442
2489 UBI_IOCEBUNMAP = 0x40044f04 2489 TIOCGLCKTRMIOS = 0x5456
2490 UBI_IOCMKVOL = 0x40986f00 2490 TIOCGPGRP = 0x540f
2491 UBI_IOCRMVOL = 0x40046f01 2491 TIOCGPKT = 0x80045438
2492 UBI_IOCRNVOL = 0x51106f03 2492 TIOCGPTLCK = 0x80045439
2493 UBI_IOCRPEB = 0x40046f04 2493 TIOCGPTN = 0x80045430
2494 UBI_IOCRSVOL = 0x400c6f02 2494 TIOCGPTPEER = 0x5441
2495 UBI_IOCSETVOLPROP = 0x40104f06 2495 TIOCGRS485 = 0x542e
2496 UBI_IOCSPEB = 0x40046f05 2496 TIOCGSERIAL = 0x541e
2497 UBI_IOCVOLCRBLK = 0x40804f07 2497 TIOCGSID = 0x5429
2498 UBI_IOCVOLRMBLK = 0x4f08 2498 TIOCGSOFTCAR = 0x5419
2499 UBI_IOCVOLUP = 0x40084f00 2499 TIOCGWINSZ = 0x5413
2500 UDF_SUPER_MAGIC = 0x15013346 2500 TIOCINQ = 0x541b
2501 UMOUNT_NOFOLLOW = 0x8 2501 TIOCLINUX = 0x541c
2502 USBDEVICE_SUPER_MAGIC = 0x9fa2 2502 TIOCMBIC = 0x5417
2503 UTIME_NOW = 0x3fffffff 2503 TIOCMBIS = 0x5416
2504 UTIME_OMIT = 0x3ffffffe 2504 TIOCMGET = 0x5415
2505 V9FS_MAGIC = 0x1021997 2505 TIOCMIWAIT = 0x545c
2506 VDISCARD = 0xd 2506 TIOCMSET = 0x5418
2507 VEOF = 0x4 2507 TIOCM_CAR = 0x40
2508 VEOL = 0xb 2508 TIOCM_CD = 0x40
2509 VEOL2 = 0x10 2509 TIOCM_CTS = 0x20
2510 VERASE = 0x2 2510 TIOCM_DSR = 0x100
2511 VINTR = 0x0 2511 TIOCM_DTR = 0x2
2512 VKILL = 0x3 2512 TIOCM_LE = 0x1
2513 VLNEXT = 0xf 2513 TIOCM_RI = 0x80
2514 VMADDR_CID_ANY = 0xffffffff 2514 TIOCM_RNG = 0x80
2515 VMADDR_CID_HOST = 0x2 2515 TIOCM_RTS = 0x4
2516 VMADDR_CID_HYPERVISOR = 0x0 2516 TIOCM_SR = 0x10
2517 VMADDR_CID_RESERVED = 0x1 2517 TIOCM_ST = 0x8
2518 VMADDR_PORT_ANY = 0xffffffff 2518 TIOCNOTTY = 0x5422
2519 VMIN = 0x6 2519 TIOCNXCL = 0x540d
2520 VM_SOCKETS_INVALID_VERSION = 0xffffffff 2520 TIOCOUTQ = 0x5411
2521 VQUIT = 0x1 2521 TIOCPKT = 0x5420
2522 VREPRINT = 0xc 2522 TIOCPKT_DATA = 0x0
2523 VSTART = 0x8 2523 TIOCPKT_DOSTOP = 0x20
2524 VSTOP = 0x9 2524 TIOCPKT_FLUSHREAD = 0x1
2525 VSUSP = 0xa 2525 TIOCPKT_FLUSHWRITE = 0x2
2526 VSWTC = 0x7 2526 TIOCPKT_IOCTL = 0x40
2527 VT0 = 0x0 2527 TIOCPKT_NOSTOP = 0x10
2528 VT1 = 0x4000 2528 TIOCPKT_START = 0x8
2529 VTDLY = 0x4000 2529 TIOCPKT_STOP = 0x4
2530 VTIME = 0x5 2530 TIOCSBRK = 0x5427
2531 VWERASE = 0xe 2531 TIOCSCTTY = 0x540e
2532 WALL = 0x40000000 2532 TIOCSERCONFIG = 0x5453
2533 WCLONE = 0x80000000 2533 TIOCSERGETLSR = 0x5459
2534 WCONTINUED = 0x8 2534 TIOCSERGETMULTI = 0x545a
2535 WDIOC_GETBOOTSTATUS = 0x80045702 2535 TIOCSERGSTRUCT = 0x5458
2536 WDIOC_GETPRETIMEOUT = 0x80045709 2536 TIOCSERGWILD = 0x5454
2537 WDIOC_GETSTATUS = 0x80045701 2537 TIOCSERSETMULTI = 0x545b
2538 WDIOC_GETSUPPORT = 0x80285700 2538 TIOCSERSWILD = 0x5455
2539 WDIOC_GETTEMP = 0x80045703 2539 TIOCSER_TEMT = 0x1
2540 WDIOC_GETTIMELEFT = 0x8004570a 2540 TIOCSETD = 0x5423
2541 WDIOC_GETTIMEOUT = 0x80045707 2541 TIOCSIG = 0x40045436
2542 WDIOC_KEEPALIVE = 0x80045705 2542 TIOCSISO7816 = 0xc0285443
2543 WDIOC_SETOPTIONS = 0x80045704 2543 TIOCSLCKTRMIOS = 0x5457
2544 WDIOC_SETPRETIMEOUT = 0xc0045708 2544 TIOCSPGRP = 0x5410
2545 WDIOC_SETTIMEOUT = 0xc0045706 2545 TIOCSPTLCK = 0x40045431
2546 WEXITED = 0x4 2546 TIOCSRS485 = 0x542f
2547 WIN_ACKMEDIACHANGE = 0xdb 2547 TIOCSSERIAL = 0x541f
2548 WIN_CHECKPOWERMODE1 = 0xe5 2548 TIOCSSOFTCAR = 0x541a
2549 WIN_CHECKPOWERMODE2 = 0x98 2549 TIOCSTI = 0x5412
2550 WIN_DEVICE_RESET = 0x8 2550 TIOCSWINSZ = 0x5414
2551 WIN_DIAGNOSE = 0x90 2551 TIOCVHANGUP = 0x5437
2552 WIN_DOORLOCK = 0xde 2552 TIPC_ADDR_ID = 0x3
2553 WIN_DOORUNLOCK = 0xdf 2553 TIPC_ADDR_MCAST = 0x1
2554 WIN_DOWNLOAD_MICROCODE = 0x92 2554 TIPC_ADDR_NAME = 0x2
2555 WIN_FLUSH_CACHE = 0xe7 2555 TIPC_ADDR_NAMESEQ = 0x1
2556 WIN_FLUSH_CACHE_EXT = 0xea 2556 TIPC_AEAD_ALG_NAME = 0x20
2557 WIN_FORMAT = 0x50 2557 TIPC_AEAD_KEYLEN_MAX = 0x24
2558 WIN_GETMEDIASTATUS = 0xda 2558 TIPC_AEAD_KEYLEN_MIN = 0x14
2559 WIN_IDENTIFY = 0xec 2559 TIPC_AEAD_KEY_SIZE_MAX = 0x48
2560 WIN_IDENTIFY_DMA = 0xee 2560 TIPC_CFG_SRV = 0x0
2561 WIN_IDLEIMMEDIATE = 0xe1 2561 TIPC_CLUSTER_BITS = 0xc
2562 WIN_INIT = 0x60 2562 TIPC_CLUSTER_MASK = 0xfff000
2563 WIN_MEDIAEJECT = 0xed 2563 TIPC_CLUSTER_OFFSET = 0xc
2564 WIN_MULTREAD = 0xc4 2564 TIPC_CLUSTER_SIZE = 0xfff
2565 WIN_MULTREAD_EXT = 0x29 2565 TIPC_CONN_SHUTDOWN = 0x5
2566 WIN_MULTWRITE = 0xc5 2566 TIPC_CONN_TIMEOUT = 0x82
2567 WIN_MULTWRITE_EXT = 0x39 2567 TIPC_CRITICAL_IMPORTANCE = 0x3
2568 WIN_NOP = 0x0 2568 TIPC_DESTNAME = 0x3
2569 WIN_PACKETCMD = 0xa0 2569 TIPC_DEST_DROPPABLE = 0x81
2570 WIN_PIDENTIFY = 0xa1 2570 TIPC_ERRINFO = 0x1
2571 WIN_POSTBOOT = 0xdc 2571 TIPC_ERR_NO_NAME = 0x1
2572 WIN_PREBOOT = 0xdd 2572 TIPC_ERR_NO_NODE = 0x3
2573 WIN_QUEUED_SERVICE = 0xa2 2573 TIPC_ERR_NO_PORT = 0x2
2574 WIN_READ = 0x20 2574 TIPC_ERR_OVERLOAD = 0x4
2575 WIN_READDMA = 0xc8 2575 TIPC_GROUP_JOIN = 0x87
2576 WIN_READDMA_EXT = 0x25 2576 TIPC_GROUP_LEAVE = 0x88
2577 WIN_READDMA_ONCE = 0xc9 2577 TIPC_GROUP_LOOPBACK = 0x1
2578 WIN_READDMA_QUEUED = 0xc7 2578 TIPC_GROUP_MEMBER_EVTS = 0x2
2579 WIN_READDMA_QUEUED_EXT = 0x26 2579 TIPC_HIGH_IMPORTANCE = 0x2
2580 WIN_READ_BUFFER = 0xe4 2580 TIPC_IMPORTANCE = 0x7f
2581 WIN_READ_EXT = 0x24 2581 TIPC_LINK_STATE = 0x2
2582 WIN_READ_LONG = 0x22 2582 TIPC_LOW_IMPORTANCE = 0x0
2583 WIN_READ_LONG_ONCE = 0x23 2583 TIPC_MAX_BEARER_NAME = 0x20
2584 WIN_READ_NATIVE_MAX = 0xf8 2584 TIPC_MAX_IF_NAME = 0x10
2585 WIN_READ_NATIVE_MAX_EXT = 0x27 2585 TIPC_MAX_LINK_NAME = 0x44
2586 WIN_READ_ONCE = 0x21 2586 TIPC_MAX_MEDIA_NAME = 0x10
2587 WIN_RECAL = 0x10 2587 TIPC_MAX_USER_MSG_SIZE = 0x101d0
2588 WIN_RESTORE = 0x10 2588 TIPC_MCAST_BROADCAST = 0x85
2589 WIN_SECURITY_DISABLE = 0xf6 2589 TIPC_MCAST_REPLICAST = 0x86
2590 WIN_SECURITY_ERASE_PREPARE = 0xf3 2590 TIPC_MEDIUM_IMPORTANCE = 0x1
2591 WIN_SECURITY_ERASE_UNIT = 0xf4 2591 TIPC_NODEID_LEN = 0x10
2592 WIN_SECURITY_FREEZE_LOCK = 0xf5 2592 TIPC_NODELAY = 0x8a
2593 WIN_SECURITY_SET_PASS = 0xf1 2593 TIPC_NODE_BITS = 0xc
2594 WIN_SECURITY_UNLOCK = 0xf2 2594 TIPC_NODE_MASK = 0xfff
2595 WIN_SEEK = 0x70 2595 TIPC_NODE_OFFSET = 0x0
2596 WIN_SETFEATURES = 0xef 2596 TIPC_NODE_RECVQ_DEPTH = 0x83
2597 WIN_SETIDLE1 = 0xe3 2597 TIPC_NODE_SIZE = 0xfff
2598 WIN_SETIDLE2 = 0x97 2598 TIPC_NODE_STATE = 0x0
2599 WIN_SETMULT = 0xc6 2599 TIPC_OK = 0x0
2600 WIN_SET_MAX = 0xf9 2600 TIPC_PUBLISHED = 0x1
2601 WIN_SET_MAX_EXT = 0x37 2601 TIPC_RESERVED_TYPES = 0x40
2602 WIN_SLEEPNOW1 = 0xe6 2602 TIPC_RETDATA = 0x2
2603 WIN_SLEEPNOW2 = 0x99 2603 TIPC_SERVICE_ADDR = 0x2
2604 WIN_SMART = 0xb0 2604 TIPC_SERVICE_RANGE = 0x1
2605 WIN_SPECIFY = 0x91 2605 TIPC_SOCKET_ADDR = 0x3
2606 WIN_SRST = 0x8 2606 TIPC_SOCK_RECVQ_DEPTH = 0x84
2607 WIN_STANDBY = 0xe2 2607 TIPC_SOCK_RECVQ_USED = 0x89
2608 WIN_STANDBY2 = 0x96 2608 TIPC_SRC_DROPPABLE = 0x80
2609 WIN_STANDBYNOW1 = 0xe0 2609 TIPC_SUBSCR_TIMEOUT = 0x3
2610 WIN_STANDBYNOW2 = 0x94 2610 TIPC_SUB_CANCEL = 0x4
2611 WIN_VERIFY = 0x40 2611 TIPC_SUB_PORTS = 0x1
2612 WIN_VERIFY_EXT = 0x42 2612 TIPC_SUB_SERVICE = 0x2
2613 WIN_VERIFY_ONCE = 0x41 2613 TIPC_TOP_SRV = 0x1
2614 WIN_WRITE = 0x30 2614 TIPC_WAIT_FOREVER = 0xffffffff
2615 WIN_WRITEDMA = 0xca 2615 TIPC_WITHDRAWN = 0x2
2616 WIN_WRITEDMA_EXT = 0x35 2616 TIPC_ZONE_BITS = 0x8
2617 WIN_WRITEDMA_ONCE = 0xcb 2617 TIPC_ZONE_CLUSTER_MASK = 0xfffff000
2618 WIN_WRITEDMA_QUEUED = 0xcc 2618 TIPC_ZONE_MASK = 0xff000000
2619 WIN_WRITEDMA_QUEUED_EXT = 0x36 2619 TIPC_ZONE_OFFSET = 0x18
2620 WIN_WRITE_BUFFER = 0xe8 2620 TIPC_ZONE_SCOPE = 0x1
2621 WIN_WRITE_EXT = 0x34 2621 TIPC_ZONE_SIZE = 0xff
2622 WIN_WRITE_LONG = 0x32 2622 TMPFS_MAGIC = 0x1021994
2623 WIN_WRITE_LONG_ONCE = 0x33 2623 TOSTOP = 0x100
2624 WIN_WRITE_ONCE = 0x31 2624 TPACKET_ALIGNMENT = 0x10
2625 WIN_WRITE_SAME = 0xe9 2625 TPACKET_HDRLEN = 0x34
2626 WIN_WRITE_VERIFY = 0x3c 2626 TP_STATUS_AVAILABLE = 0x0
2627 WNOHANG = 0x1 2627 TP_STATUS_BLK_TMO = 0x20
2628 WNOTHREAD = 0x20000000 2628 TP_STATUS_COPY = 0x2
2629 WNOWAIT = 0x1000000 2629 TP_STATUS_CSUMNOTREADY = 0x8
2630 WORDSIZE = 0x40 2630 TP_STATUS_CSUM_VALID = 0x80
2631 WSTOPPED = 0x2 2631 TP_STATUS_KERNEL = 0x0
2632 WUNTRACED = 0x2 2632 TP_STATUS_LOSING = 0x4
2633 XATTR_CREATE = 0x1 2633 TP_STATUS_SENDING = 0x2
2634 XATTR_REPLACE = 0x2 2634 TP_STATUS_SEND_REQUEST = 0x1
2635 XCASE = 0x4 2635 TP_STATUS_TS_RAW_HARDWARE = 0x80000000
2636 XDP_COPY = 0x2 2636 TP_STATUS_TS_SOFTWARE = 0x20000000
2637 XDP_FLAGS_DRV_MODE = 0x4 2637 TP_STATUS_TS_SYS_HARDWARE = 0x40000000
2638 XDP_FLAGS_HW_MODE = 0x8 2638 TP_STATUS_USER = 0x1
2639 XDP_FLAGS_MASK = 0xf 2639 TP_STATUS_VLAN_TPID_VALID = 0x40
2640 XDP_FLAGS_MODES = 0xe 2640 TP_STATUS_VLAN_VALID = 0x10
2641 XDP_FLAGS_SKB_MODE = 0x2 2641 TP_STATUS_WRONG_FORMAT = 0x4
2642 XDP_FLAGS_UPDATE_IF_NOEXIST = 0x1 2642 TRACEFS_MAGIC = 0x74726163
2643 XDP_MMAP_OFFSETS = 0x1 2643 TS_COMM_LEN = 0x20
2644 XDP_PACKET_HEADROOM = 0x100 2644 TUNATTACHFILTER = 0x401054d5
2645 XDP_PGOFF_RX_RING = 0x0 2645 TUNDETACHFILTER = 0x401054d6
2646 XDP_PGOFF_TX_RING = 0x80000000 2646 TUNGETDEVNETNS = 0x54e3
2647 XDP_RX_RING = 0x2 2647 TUNGETFEATURES = 0x800454cf
2648 XDP_SHARED_UMEM = 0x1 2648 TUNGETFILTER = 0x801054db
2649 XDP_STATISTICS = 0x7 2649 TUNGETIFF = 0x800454d2
2650 XDP_TX_RING = 0x3 2650 TUNGETSNDBUF = 0x800454d3
2651 XDP_UMEM_COMPLETION_RING = 0x6 2651 TUNGETVNETBE = 0x800454df
2652 XDP_UMEM_FILL_RING = 0x5 2652 TUNGETVNETHDRSZ = 0x800454d7
2653 XDP_UMEM_PGOFF_COMPLETION_RING = 0x180000000 2653 TUNGETVNETLE = 0x800454dd
2654 XDP_UMEM_PGOFF_FILL_RING = 0x100000000 2654 TUNSETCARRIER = 0x400454e2
2655 XDP_UMEM_REG = 0x4 2655 TUNSETDEBUG = 0x400454c9
2656 XDP_ZEROCOPY = 0x4 2656 TUNSETFILTEREBPF = 0x800454e1
2657 XENFS_SUPER_MAGIC = 0xabba1974 2657 TUNSETGROUP = 0x400454ce
2658 XFS_SUPER_MAGIC = 0x58465342 2658 TUNSETIFF = 0x400454ca
2659 XTABS = 0x1800 2659 TUNSETIFINDEX = 0x400454da
2660 ZSMALLOC_MAGIC = 0x58295829 2660 TUNSETLINK = 0x400454cd
2661 TUNSETNOCSUM = 0x400454c8
2662 TUNSETOFFLOAD = 0x400454d0
2663 TUNSETOWNER = 0x400454cc
2664 TUNSETPERSIST = 0x400454cb
2665 TUNSETQUEUE = 0x400454d9
2666 TUNSETSNDBUF = 0x400454d4
2667 TUNSETSTEERINGEBPF = 0x800454e0
2668 TUNSETTXFILTER = 0x400454d1
2669 TUNSETVNETBE = 0x400454de
2670 TUNSETVNETHDRSZ = 0x400454d8
2671 TUNSETVNETLE = 0x400454dc
2672 UBI_IOCATT = 0x40186f40
2673 UBI_IOCDET = 0x40046f41
2674 UBI_IOCEBCH = 0x40044f02
2675 UBI_IOCEBER = 0x40044f01
2676 UBI_IOCEBISMAP = 0x80044f05
2677 UBI_IOCEBMAP = 0x40084f03
2678 UBI_IOCEBUNMAP = 0x40044f04
2679 UBI_IOCMKVOL = 0x40986f00
2680 UBI_IOCRMVOL = 0x40046f01
2681 UBI_IOCRNVOL = 0x51106f03
2682 UBI_IOCRPEB = 0x40046f04
2683 UBI_IOCRSVOL = 0x400c6f02
2684 UBI_IOCSETVOLPROP = 0x40104f06
2685 UBI_IOCSPEB = 0x40046f05
2686 UBI_IOCVOLCRBLK = 0x40804f07
2687 UBI_IOCVOLRMBLK = 0x4f08
2688 UBI_IOCVOLUP = 0x40084f00
2689 UDF_SUPER_MAGIC = 0x15013346
2690 UMOUNT_NOFOLLOW = 0x8
2691 USBDEVICE_SUPER_MAGIC = 0x9fa2
2692 UTIME_NOW = 0x3fffffff
2693 UTIME_OMIT = 0x3ffffffe
2694 V9FS_MAGIC = 0x1021997
2695 VDISCARD = 0xd
2696 VEOF = 0x4
2697 VEOL = 0xb
2698 VEOL2 = 0x10
2699 VERASE = 0x2
2700 VINTR = 0x0
2701 VKILL = 0x3
2702 VLNEXT = 0xf
2703 VMADDR_CID_ANY = 0xffffffff
2704 VMADDR_CID_HOST = 0x2
2705 VMADDR_CID_HYPERVISOR = 0x0
2706 VMADDR_CID_RESERVED = 0x1
2707 VMADDR_PORT_ANY = 0xffffffff
2708 VMIN = 0x6
2709 VM_SOCKETS_INVALID_VERSION = 0xffffffff
2710 VQUIT = 0x1
2711 VREPRINT = 0xc
2712 VSTART = 0x8
2713 VSTOP = 0x9
2714 VSUSP = 0xa
2715 VSWTC = 0x7
2716 VT0 = 0x0
2717 VT1 = 0x4000
2718 VTDLY = 0x4000
2719 VTIME = 0x5
2720 VWERASE = 0xe
2721 WALL = 0x40000000
2722 WCLONE = 0x80000000
2723 WCONTINUED = 0x8
2724 WDIOC_GETBOOTSTATUS = 0x80045702
2725 WDIOC_GETPRETIMEOUT = 0x80045709
2726 WDIOC_GETSTATUS = 0x80045701
2727 WDIOC_GETSUPPORT = 0x80285700
2728 WDIOC_GETTEMP = 0x80045703
2729 WDIOC_GETTIMELEFT = 0x8004570a
2730 WDIOC_GETTIMEOUT = 0x80045707
2731 WDIOC_KEEPALIVE = 0x80045705
2732 WDIOC_SETOPTIONS = 0x80045704
2733 WDIOC_SETPRETIMEOUT = 0xc0045708
2734 WDIOC_SETTIMEOUT = 0xc0045706
2735 WEXITED = 0x4
2736 WIN_ACKMEDIACHANGE = 0xdb
2737 WIN_CHECKPOWERMODE1 = 0xe5
2738 WIN_CHECKPOWERMODE2 = 0x98
2739 WIN_DEVICE_RESET = 0x8
2740 WIN_DIAGNOSE = 0x90
2741 WIN_DOORLOCK = 0xde
2742 WIN_DOORUNLOCK = 0xdf
2743 WIN_DOWNLOAD_MICROCODE = 0x92
2744 WIN_FLUSH_CACHE = 0xe7
2745 WIN_FLUSH_CACHE_EXT = 0xea
2746 WIN_FORMAT = 0x50
2747 WIN_GETMEDIASTATUS = 0xda
2748 WIN_IDENTIFY = 0xec
2749 WIN_IDENTIFY_DMA = 0xee
2750 WIN_IDLEIMMEDIATE = 0xe1
2751 WIN_INIT = 0x60
2752 WIN_MEDIAEJECT = 0xed
2753 WIN_MULTREAD = 0xc4
2754 WIN_MULTREAD_EXT = 0x29
2755 WIN_MULTWRITE = 0xc5
2756 WIN_MULTWRITE_EXT = 0x39
2757 WIN_NOP = 0x0
2758 WIN_PACKETCMD = 0xa0
2759 WIN_PIDENTIFY = 0xa1
2760 WIN_POSTBOOT = 0xdc
2761 WIN_PREBOOT = 0xdd
2762 WIN_QUEUED_SERVICE = 0xa2
2763 WIN_READ = 0x20
2764 WIN_READDMA = 0xc8
2765 WIN_READDMA_EXT = 0x25
2766 WIN_READDMA_ONCE = 0xc9
2767 WIN_READDMA_QUEUED = 0xc7
2768 WIN_READDMA_QUEUED_EXT = 0x26
2769 WIN_READ_BUFFER = 0xe4
2770 WIN_READ_EXT = 0x24
2771 WIN_READ_LONG = 0x22
2772 WIN_READ_LONG_ONCE = 0x23
2773 WIN_READ_NATIVE_MAX = 0xf8
2774 WIN_READ_NATIVE_MAX_EXT = 0x27
2775 WIN_READ_ONCE = 0x21
2776 WIN_RECAL = 0x10
2777 WIN_RESTORE = 0x10
2778 WIN_SECURITY_DISABLE = 0xf6
2779 WIN_SECURITY_ERASE_PREPARE = 0xf3
2780 WIN_SECURITY_ERASE_UNIT = 0xf4
2781 WIN_SECURITY_FREEZE_LOCK = 0xf5
2782 WIN_SECURITY_SET_PASS = 0xf1
2783 WIN_SECURITY_UNLOCK = 0xf2
2784 WIN_SEEK = 0x70
2785 WIN_SETFEATURES = 0xef
2786 WIN_SETIDLE1 = 0xe3
2787 WIN_SETIDLE2 = 0x97
2788 WIN_SETMULT = 0xc6
2789 WIN_SET_MAX = 0xf9
2790 WIN_SET_MAX_EXT = 0x37
2791 WIN_SLEEPNOW1 = 0xe6
2792 WIN_SLEEPNOW2 = 0x99
2793 WIN_SMART = 0xb0
2794 WIN_SPECIFY = 0x91
2795 WIN_SRST = 0x8
2796 WIN_STANDBY = 0xe2
2797 WIN_STANDBY2 = 0x96
2798 WIN_STANDBYNOW1 = 0xe0
2799 WIN_STANDBYNOW2 = 0x94
2800 WIN_VERIFY = 0x40
2801 WIN_VERIFY_EXT = 0x42
2802 WIN_VERIFY_ONCE = 0x41
2803 WIN_WRITE = 0x30
2804 WIN_WRITEDMA = 0xca
2805 WIN_WRITEDMA_EXT = 0x35
2806 WIN_WRITEDMA_ONCE = 0xcb
2807 WIN_WRITEDMA_QUEUED = 0xcc
2808 WIN_WRITEDMA_QUEUED_EXT = 0x36
2809 WIN_WRITE_BUFFER = 0xe8
2810 WIN_WRITE_EXT = 0x34
2811 WIN_WRITE_LONG = 0x32
2812 WIN_WRITE_LONG_ONCE = 0x33
2813 WIN_WRITE_ONCE = 0x31
2814 WIN_WRITE_SAME = 0xe9
2815 WIN_WRITE_VERIFY = 0x3c
2816 WNOHANG = 0x1
2817 WNOTHREAD = 0x20000000
2818 WNOWAIT = 0x1000000
2819 WORDSIZE = 0x40
2820 WSTOPPED = 0x2
2821 WUNTRACED = 0x2
2822 XATTR_CREATE = 0x1
2823 XATTR_REPLACE = 0x2
2824 XCASE = 0x4
2825 XDP_COPY = 0x2
2826 XDP_FLAGS_DRV_MODE = 0x4
2827 XDP_FLAGS_HW_MODE = 0x8
2828 XDP_FLAGS_MASK = 0xf
2829 XDP_FLAGS_MODES = 0xe
2830 XDP_FLAGS_SKB_MODE = 0x2
2831 XDP_FLAGS_UPDATE_IF_NOEXIST = 0x1
2832 XDP_MMAP_OFFSETS = 0x1
2833 XDP_OPTIONS = 0x8
2834 XDP_OPTIONS_ZEROCOPY = 0x1
2835 XDP_PACKET_HEADROOM = 0x100
2836 XDP_PGOFF_RX_RING = 0x0
2837 XDP_PGOFF_TX_RING = 0x80000000
2838 XDP_RING_NEED_WAKEUP = 0x1
2839 XDP_RX_RING = 0x2
2840 XDP_SHARED_UMEM = 0x1
2841 XDP_STATISTICS = 0x7
2842 XDP_TX_RING = 0x3
2843 XDP_UMEM_COMPLETION_RING = 0x6
2844 XDP_UMEM_FILL_RING = 0x5
2845 XDP_UMEM_PGOFF_COMPLETION_RING = 0x180000000
2846 XDP_UMEM_PGOFF_FILL_RING = 0x100000000
2847 XDP_UMEM_REG = 0x4
2848 XDP_UMEM_UNALIGNED_CHUNK_FLAG = 0x1
2849 XDP_USE_NEED_WAKEUP = 0x8
2850 XDP_ZEROCOPY = 0x4
2851 XENFS_SUPER_MAGIC = 0xabba1974
2852 XFS_SUPER_MAGIC = 0x58465342
2853 XTABS = 0x1800
2854 Z3FOLD_MAGIC = 0x33
2855 ZSMALLOC_MAGIC = 0x58295829
2661) 2856)
2662 2857
2663// Errors 2858// Errors
diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_mips.go b/vendor/golang.org/x/sys/unix/zerrors_linux_mips.go
index 3e948be..a6cd090 100644
--- a/vendor/golang.org/x/sys/unix/zerrors_linux_mips.go
+++ b/vendor/golang.org/x/sys/unix/zerrors_linux_mips.go
@@ -11,2664 +11,2857 @@ package unix
11import "syscall" 11import "syscall"
12 12
13const ( 13const (
14 AAFS_MAGIC = 0x5a3c69f0 14 AAFS_MAGIC = 0x5a3c69f0
15 ADFS_SUPER_MAGIC = 0xadf5 15 ADFS_SUPER_MAGIC = 0xadf5
16 AFFS_SUPER_MAGIC = 0xadff 16 AFFS_SUPER_MAGIC = 0xadff
17 AFS_FS_MAGIC = 0x6b414653 17 AFS_FS_MAGIC = 0x6b414653
18 AFS_SUPER_MAGIC = 0x5346414f 18 AFS_SUPER_MAGIC = 0x5346414f
19 AF_ALG = 0x26 19 AF_ALG = 0x26
20 AF_APPLETALK = 0x5 20 AF_APPLETALK = 0x5
21 AF_ASH = 0x12 21 AF_ASH = 0x12
22 AF_ATMPVC = 0x8 22 AF_ATMPVC = 0x8
23 AF_ATMSVC = 0x14 23 AF_ATMSVC = 0x14
24 AF_AX25 = 0x3 24 AF_AX25 = 0x3
25 AF_BLUETOOTH = 0x1f 25 AF_BLUETOOTH = 0x1f
26 AF_BRIDGE = 0x7 26 AF_BRIDGE = 0x7
27 AF_CAIF = 0x25 27 AF_CAIF = 0x25
28 AF_CAN = 0x1d 28 AF_CAN = 0x1d
29 AF_DECnet = 0xc 29 AF_DECnet = 0xc
30 AF_ECONET = 0x13 30 AF_ECONET = 0x13
31 AF_FILE = 0x1 31 AF_FILE = 0x1
32 AF_IB = 0x1b 32 AF_IB = 0x1b
33 AF_IEEE802154 = 0x24 33 AF_IEEE802154 = 0x24
34 AF_INET = 0x2 34 AF_INET = 0x2
35 AF_INET6 = 0xa 35 AF_INET6 = 0xa
36 AF_IPX = 0x4 36 AF_IPX = 0x4
37 AF_IRDA = 0x17 37 AF_IRDA = 0x17
38 AF_ISDN = 0x22 38 AF_ISDN = 0x22
39 AF_IUCV = 0x20 39 AF_IUCV = 0x20
40 AF_KCM = 0x29 40 AF_KCM = 0x29
41 AF_KEY = 0xf 41 AF_KEY = 0xf
42 AF_LLC = 0x1a 42 AF_LLC = 0x1a
43 AF_LOCAL = 0x1 43 AF_LOCAL = 0x1
44 AF_MAX = 0x2d 44 AF_MAX = 0x2d
45 AF_MPLS = 0x1c 45 AF_MPLS = 0x1c
46 AF_NETBEUI = 0xd 46 AF_NETBEUI = 0xd
47 AF_NETLINK = 0x10 47 AF_NETLINK = 0x10
48 AF_NETROM = 0x6 48 AF_NETROM = 0x6
49 AF_NFC = 0x27 49 AF_NFC = 0x27
50 AF_PACKET = 0x11 50 AF_PACKET = 0x11
51 AF_PHONET = 0x23 51 AF_PHONET = 0x23
52 AF_PPPOX = 0x18 52 AF_PPPOX = 0x18
53 AF_QIPCRTR = 0x2a 53 AF_QIPCRTR = 0x2a
54 AF_RDS = 0x15 54 AF_RDS = 0x15
55 AF_ROSE = 0xb 55 AF_ROSE = 0xb
56 AF_ROUTE = 0x10 56 AF_ROUTE = 0x10
57 AF_RXRPC = 0x21 57 AF_RXRPC = 0x21
58 AF_SECURITY = 0xe 58 AF_SECURITY = 0xe
59 AF_SMC = 0x2b 59 AF_SMC = 0x2b
60 AF_SNA = 0x16 60 AF_SNA = 0x16
61 AF_TIPC = 0x1e 61 AF_TIPC = 0x1e
62 AF_UNIX = 0x1 62 AF_UNIX = 0x1
63 AF_UNSPEC = 0x0 63 AF_UNSPEC = 0x0
64 AF_VSOCK = 0x28 64 AF_VSOCK = 0x28
65 AF_WANPIPE = 0x19 65 AF_WANPIPE = 0x19
66 AF_X25 = 0x9 66 AF_X25 = 0x9
67 AF_XDP = 0x2c 67 AF_XDP = 0x2c
68 ALG_OP_DECRYPT = 0x0 68 ALG_OP_DECRYPT = 0x0
69 ALG_OP_ENCRYPT = 0x1 69 ALG_OP_ENCRYPT = 0x1
70 ALG_SET_AEAD_ASSOCLEN = 0x4 70 ALG_SET_AEAD_ASSOCLEN = 0x4
71 ALG_SET_AEAD_AUTHSIZE = 0x5 71 ALG_SET_AEAD_AUTHSIZE = 0x5
72 ALG_SET_IV = 0x2 72 ALG_SET_IV = 0x2
73 ALG_SET_KEY = 0x1 73 ALG_SET_KEY = 0x1
74 ALG_SET_OP = 0x3 74 ALG_SET_OP = 0x3
75 ANON_INODE_FS_MAGIC = 0x9041934 75 ANON_INODE_FS_MAGIC = 0x9041934
76 ARPHRD_6LOWPAN = 0x339 76 ARPHRD_6LOWPAN = 0x339
77 ARPHRD_ADAPT = 0x108 77 ARPHRD_ADAPT = 0x108
78 ARPHRD_APPLETLK = 0x8 78 ARPHRD_APPLETLK = 0x8
79 ARPHRD_ARCNET = 0x7 79 ARPHRD_ARCNET = 0x7
80 ARPHRD_ASH = 0x30d 80 ARPHRD_ASH = 0x30d
81 ARPHRD_ATM = 0x13 81 ARPHRD_ATM = 0x13
82 ARPHRD_AX25 = 0x3 82 ARPHRD_AX25 = 0x3
83 ARPHRD_BIF = 0x307 83 ARPHRD_BIF = 0x307
84 ARPHRD_CAIF = 0x336 84 ARPHRD_CAIF = 0x336
85 ARPHRD_CAN = 0x118 85 ARPHRD_CAN = 0x118
86 ARPHRD_CHAOS = 0x5 86 ARPHRD_CHAOS = 0x5
87 ARPHRD_CISCO = 0x201 87 ARPHRD_CISCO = 0x201
88 ARPHRD_CSLIP = 0x101 88 ARPHRD_CSLIP = 0x101
89 ARPHRD_CSLIP6 = 0x103 89 ARPHRD_CSLIP6 = 0x103
90 ARPHRD_DDCMP = 0x205 90 ARPHRD_DDCMP = 0x205
91 ARPHRD_DLCI = 0xf 91 ARPHRD_DLCI = 0xf
92 ARPHRD_ECONET = 0x30e 92 ARPHRD_ECONET = 0x30e
93 ARPHRD_EETHER = 0x2 93 ARPHRD_EETHER = 0x2
94 ARPHRD_ETHER = 0x1 94 ARPHRD_ETHER = 0x1
95 ARPHRD_EUI64 = 0x1b 95 ARPHRD_EUI64 = 0x1b
96 ARPHRD_FCAL = 0x311 96 ARPHRD_FCAL = 0x311
97 ARPHRD_FCFABRIC = 0x313 97 ARPHRD_FCFABRIC = 0x313
98 ARPHRD_FCPL = 0x312 98 ARPHRD_FCPL = 0x312
99 ARPHRD_FCPP = 0x310 99 ARPHRD_FCPP = 0x310
100 ARPHRD_FDDI = 0x306 100 ARPHRD_FDDI = 0x306
101 ARPHRD_FRAD = 0x302 101 ARPHRD_FRAD = 0x302
102 ARPHRD_HDLC = 0x201 102 ARPHRD_HDLC = 0x201
103 ARPHRD_HIPPI = 0x30c 103 ARPHRD_HIPPI = 0x30c
104 ARPHRD_HWX25 = 0x110 104 ARPHRD_HWX25 = 0x110
105 ARPHRD_IEEE1394 = 0x18 105 ARPHRD_IEEE1394 = 0x18
106 ARPHRD_IEEE802 = 0x6 106 ARPHRD_IEEE802 = 0x6
107 ARPHRD_IEEE80211 = 0x321 107 ARPHRD_IEEE80211 = 0x321
108 ARPHRD_IEEE80211_PRISM = 0x322 108 ARPHRD_IEEE80211_PRISM = 0x322
109 ARPHRD_IEEE80211_RADIOTAP = 0x323 109 ARPHRD_IEEE80211_RADIOTAP = 0x323
110 ARPHRD_IEEE802154 = 0x324 110 ARPHRD_IEEE802154 = 0x324
111 ARPHRD_IEEE802154_MONITOR = 0x325 111 ARPHRD_IEEE802154_MONITOR = 0x325
112 ARPHRD_IEEE802_TR = 0x320 112 ARPHRD_IEEE802_TR = 0x320
113 ARPHRD_INFINIBAND = 0x20 113 ARPHRD_INFINIBAND = 0x20
114 ARPHRD_IP6GRE = 0x337 114 ARPHRD_IP6GRE = 0x337
115 ARPHRD_IPDDP = 0x309 115 ARPHRD_IPDDP = 0x309
116 ARPHRD_IPGRE = 0x30a 116 ARPHRD_IPGRE = 0x30a
117 ARPHRD_IRDA = 0x30f 117 ARPHRD_IRDA = 0x30f
118 ARPHRD_LAPB = 0x204 118 ARPHRD_LAPB = 0x204
119 ARPHRD_LOCALTLK = 0x305 119 ARPHRD_LOCALTLK = 0x305
120 ARPHRD_LOOPBACK = 0x304 120 ARPHRD_LOOPBACK = 0x304
121 ARPHRD_METRICOM = 0x17 121 ARPHRD_METRICOM = 0x17
122 ARPHRD_NETLINK = 0x338 122 ARPHRD_NETLINK = 0x338
123 ARPHRD_NETROM = 0x0 123 ARPHRD_NETROM = 0x0
124 ARPHRD_NONE = 0xfffe 124 ARPHRD_NONE = 0xfffe
125 ARPHRD_PHONET = 0x334 125 ARPHRD_PHONET = 0x334
126 ARPHRD_PHONET_PIPE = 0x335 126 ARPHRD_PHONET_PIPE = 0x335
127 ARPHRD_PIMREG = 0x30b 127 ARPHRD_PIMREG = 0x30b
128 ARPHRD_PPP = 0x200 128 ARPHRD_PPP = 0x200
129 ARPHRD_PRONET = 0x4 129 ARPHRD_PRONET = 0x4
130 ARPHRD_RAWHDLC = 0x206 130 ARPHRD_RAWHDLC = 0x206
131 ARPHRD_RAWIP = 0x207 131 ARPHRD_RAWIP = 0x207
132 ARPHRD_ROSE = 0x10e 132 ARPHRD_ROSE = 0x10e
133 ARPHRD_RSRVD = 0x104 133 ARPHRD_RSRVD = 0x104
134 ARPHRD_SIT = 0x308 134 ARPHRD_SIT = 0x308
135 ARPHRD_SKIP = 0x303 135 ARPHRD_SKIP = 0x303
136 ARPHRD_SLIP = 0x100 136 ARPHRD_SLIP = 0x100
137 ARPHRD_SLIP6 = 0x102 137 ARPHRD_SLIP6 = 0x102
138 ARPHRD_TUNNEL = 0x300 138 ARPHRD_TUNNEL = 0x300
139 ARPHRD_TUNNEL6 = 0x301 139 ARPHRD_TUNNEL6 = 0x301
140 ARPHRD_VOID = 0xffff 140 ARPHRD_VOID = 0xffff
141 ARPHRD_VSOCKMON = 0x33a 141 ARPHRD_VSOCKMON = 0x33a
142 ARPHRD_X25 = 0x10f 142 ARPHRD_X25 = 0x10f
143 AUTOFS_SUPER_MAGIC = 0x187 143 AUTOFS_SUPER_MAGIC = 0x187
144 B0 = 0x0 144 B0 = 0x0
145 B1000000 = 0x1008 145 B1000000 = 0x1008
146 B110 = 0x3 146 B110 = 0x3
147 B115200 = 0x1002 147 B115200 = 0x1002
148 B1152000 = 0x1009 148 B1152000 = 0x1009
149 B1200 = 0x9 149 B1200 = 0x9
150 B134 = 0x4 150 B134 = 0x4
151 B150 = 0x5 151 B150 = 0x5
152 B1500000 = 0x100a 152 B1500000 = 0x100a
153 B1800 = 0xa 153 B1800 = 0xa
154 B19200 = 0xe 154 B19200 = 0xe
155 B200 = 0x6 155 B200 = 0x6
156 B2000000 = 0x100b 156 B2000000 = 0x100b
157 B230400 = 0x1003 157 B230400 = 0x1003
158 B2400 = 0xb 158 B2400 = 0xb
159 B2500000 = 0x100c 159 B2500000 = 0x100c
160 B300 = 0x7 160 B300 = 0x7
161 B3000000 = 0x100d 161 B3000000 = 0x100d
162 B3500000 = 0x100e 162 B3500000 = 0x100e
163 B38400 = 0xf 163 B38400 = 0xf
164 B4000000 = 0x100f 164 B4000000 = 0x100f
165 B460800 = 0x1004 165 B460800 = 0x1004
166 B4800 = 0xc 166 B4800 = 0xc
167 B50 = 0x1 167 B50 = 0x1
168 B500000 = 0x1005 168 B500000 = 0x1005
169 B57600 = 0x1001 169 B57600 = 0x1001
170 B576000 = 0x1006 170 B576000 = 0x1006
171 B600 = 0x8 171 B600 = 0x8
172 B75 = 0x2 172 B75 = 0x2
173 B921600 = 0x1007 173 B921600 = 0x1007
174 B9600 = 0xd 174 B9600 = 0xd
175 BALLOON_KVM_MAGIC = 0x13661366 175 BALLOON_KVM_MAGIC = 0x13661366
176 BDEVFS_MAGIC = 0x62646576 176 BDEVFS_MAGIC = 0x62646576
177 BINDERFS_SUPER_MAGIC = 0x6c6f6f70 177 BINDERFS_SUPER_MAGIC = 0x6c6f6f70
178 BINFMTFS_MAGIC = 0x42494e4d 178 BINFMTFS_MAGIC = 0x42494e4d
179 BLKBSZGET = 0x40041270 179 BLKBSZGET = 0x40041270
180 BLKBSZSET = 0x80041271 180 BLKBSZSET = 0x80041271
181 BLKFLSBUF = 0x20001261 181 BLKFLSBUF = 0x20001261
182 BLKFRAGET = 0x20001265 182 BLKFRAGET = 0x20001265
183 BLKFRASET = 0x20001264 183 BLKFRASET = 0x20001264
184 BLKGETSIZE = 0x20001260 184 BLKGETSIZE = 0x20001260
185 BLKGETSIZE64 = 0x40041272 185 BLKGETSIZE64 = 0x40041272
186 BLKPBSZGET = 0x2000127b 186 BLKPBSZGET = 0x2000127b
187 BLKRAGET = 0x20001263 187 BLKRAGET = 0x20001263
188 BLKRASET = 0x20001262 188 BLKRASET = 0x20001262
189 BLKROGET = 0x2000125e 189 BLKROGET = 0x2000125e
190 BLKROSET = 0x2000125d 190 BLKROSET = 0x2000125d
191 BLKRRPART = 0x2000125f 191 BLKRRPART = 0x2000125f
192 BLKSECTGET = 0x20001267 192 BLKSECTGET = 0x20001267
193 BLKSECTSET = 0x20001266 193 BLKSECTSET = 0x20001266
194 BLKSSZGET = 0x20001268 194 BLKSSZGET = 0x20001268
195 BOTHER = 0x1000 195 BOTHER = 0x1000
196 BPF_A = 0x10 196 BPF_A = 0x10
197 BPF_ABS = 0x20 197 BPF_ABS = 0x20
198 BPF_ADD = 0x0 198 BPF_ADD = 0x0
199 BPF_ADJ_ROOM_ENCAP_L2_MASK = 0xff 199 BPF_ADJ_ROOM_ENCAP_L2_MASK = 0xff
200 BPF_ADJ_ROOM_ENCAP_L2_SHIFT = 0x38 200 BPF_ADJ_ROOM_ENCAP_L2_SHIFT = 0x38
201 BPF_ALU = 0x4 201 BPF_ALU = 0x4
202 BPF_ALU64 = 0x7 202 BPF_ALU64 = 0x7
203 BPF_AND = 0x50 203 BPF_AND = 0x50
204 BPF_ANY = 0x0 204 BPF_ANY = 0x0
205 BPF_ARSH = 0xc0 205 BPF_ARSH = 0xc0
206 BPF_B = 0x10 206 BPF_B = 0x10
207 BPF_BUILD_ID_SIZE = 0x14 207 BPF_BUILD_ID_SIZE = 0x14
208 BPF_CALL = 0x80 208 BPF_CALL = 0x80
209 BPF_DEVCG_ACC_MKNOD = 0x1 209 BPF_DEVCG_ACC_MKNOD = 0x1
210 BPF_DEVCG_ACC_READ = 0x2 210 BPF_DEVCG_ACC_READ = 0x2
211 BPF_DEVCG_ACC_WRITE = 0x4 211 BPF_DEVCG_ACC_WRITE = 0x4
212 BPF_DEVCG_DEV_BLOCK = 0x1 212 BPF_DEVCG_DEV_BLOCK = 0x1
213 BPF_DEVCG_DEV_CHAR = 0x2 213 BPF_DEVCG_DEV_CHAR = 0x2
214 BPF_DIV = 0x30 214 BPF_DIV = 0x30
215 BPF_DW = 0x18 215 BPF_DW = 0x18
216 BPF_END = 0xd0 216 BPF_END = 0xd0
217 BPF_EXIST = 0x2 217 BPF_EXIST = 0x2
218 BPF_EXIT = 0x90 218 BPF_EXIT = 0x90
219 BPF_FROM_BE = 0x8 219 BPF_FLOW_DISSECTOR_F_PARSE_1ST_FRAG = 0x1
220 BPF_FROM_LE = 0x0 220 BPF_FLOW_DISSECTOR_F_STOP_AT_ENCAP = 0x4
221 BPF_FS_MAGIC = 0xcafe4a11 221 BPF_FLOW_DISSECTOR_F_STOP_AT_FLOW_LABEL = 0x2
222 BPF_F_ADJ_ROOM_ENCAP_L3_IPV4 = 0x2 222 BPF_FROM_BE = 0x8
223 BPF_F_ADJ_ROOM_ENCAP_L3_IPV6 = 0x4 223 BPF_FROM_LE = 0x0
224 BPF_F_ADJ_ROOM_ENCAP_L4_GRE = 0x8 224 BPF_FS_MAGIC = 0xcafe4a11
225 BPF_F_ADJ_ROOM_ENCAP_L4_UDP = 0x10 225 BPF_F_ADJ_ROOM_ENCAP_L3_IPV4 = 0x2
226 BPF_F_ADJ_ROOM_FIXED_GSO = 0x1 226 BPF_F_ADJ_ROOM_ENCAP_L3_IPV6 = 0x4
227 BPF_F_ALLOW_MULTI = 0x2 227 BPF_F_ADJ_ROOM_ENCAP_L4_GRE = 0x8
228 BPF_F_ALLOW_OVERRIDE = 0x1 228 BPF_F_ADJ_ROOM_ENCAP_L4_UDP = 0x10
229 BPF_F_ANY_ALIGNMENT = 0x2 229 BPF_F_ADJ_ROOM_FIXED_GSO = 0x1
230 BPF_F_CTXLEN_MASK = 0xfffff00000000 230 BPF_F_ALLOW_MULTI = 0x2
231 BPF_F_CURRENT_CPU = 0xffffffff 231 BPF_F_ALLOW_OVERRIDE = 0x1
232 BPF_F_CURRENT_NETNS = -0x1 232 BPF_F_ANY_ALIGNMENT = 0x2
233 BPF_F_DONT_FRAGMENT = 0x4 233 BPF_F_CLONE = 0x200
234 BPF_F_FAST_STACK_CMP = 0x200 234 BPF_F_CTXLEN_MASK = 0xfffff00000000
235 BPF_F_HDR_FIELD_MASK = 0xf 235 BPF_F_CURRENT_CPU = 0xffffffff
236 BPF_F_INDEX_MASK = 0xffffffff 236 BPF_F_CURRENT_NETNS = -0x1
237 BPF_F_INGRESS = 0x1 237 BPF_F_DONT_FRAGMENT = 0x4
238 BPF_F_INVALIDATE_HASH = 0x2 238 BPF_F_FAST_STACK_CMP = 0x200
239 BPF_F_LOCK = 0x4 239 BPF_F_HDR_FIELD_MASK = 0xf
240 BPF_F_MARK_ENFORCE = 0x40 240 BPF_F_INDEX_MASK = 0xffffffff
241 BPF_F_MARK_MANGLED_0 = 0x20 241 BPF_F_INGRESS = 0x1
242 BPF_F_NO_COMMON_LRU = 0x2 242 BPF_F_INVALIDATE_HASH = 0x2
243 BPF_F_NO_PREALLOC = 0x1 243 BPF_F_LOCK = 0x4
244 BPF_F_NUMA_NODE = 0x4 244 BPF_F_MARK_ENFORCE = 0x40
245 BPF_F_PSEUDO_HDR = 0x10 245 BPF_F_MARK_MANGLED_0 = 0x20
246 BPF_F_QUERY_EFFECTIVE = 0x1 246 BPF_F_MMAPABLE = 0x400
247 BPF_F_RDONLY = 0x8 247 BPF_F_NO_COMMON_LRU = 0x2
248 BPF_F_RDONLY_PROG = 0x80 248 BPF_F_NO_PREALLOC = 0x1
249 BPF_F_RECOMPUTE_CSUM = 0x1 249 BPF_F_NUMA_NODE = 0x4
250 BPF_F_REUSE_STACKID = 0x400 250 BPF_F_PSEUDO_HDR = 0x10
251 BPF_F_SEQ_NUMBER = 0x8 251 BPF_F_QUERY_EFFECTIVE = 0x1
252 BPF_F_SKIP_FIELD_MASK = 0xff 252 BPF_F_RDONLY = 0x8
253 BPF_F_STACK_BUILD_ID = 0x20 253 BPF_F_RDONLY_PROG = 0x80
254 BPF_F_STRICT_ALIGNMENT = 0x1 254 BPF_F_RECOMPUTE_CSUM = 0x1
255 BPF_F_SYSCTL_BASE_NAME = 0x1 255 BPF_F_REUSE_STACKID = 0x400
256 BPF_F_TUNINFO_IPV6 = 0x1 256 BPF_F_SEQ_NUMBER = 0x8
257 BPF_F_USER_BUILD_ID = 0x800 257 BPF_F_SKIP_FIELD_MASK = 0xff
258 BPF_F_USER_STACK = 0x100 258 BPF_F_STACK_BUILD_ID = 0x20
259 BPF_F_WRONLY = 0x10 259 BPF_F_STRICT_ALIGNMENT = 0x1
260 BPF_F_WRONLY_PROG = 0x100 260 BPF_F_SYSCTL_BASE_NAME = 0x1
261 BPF_F_ZERO_CSUM_TX = 0x2 261 BPF_F_TEST_RND_HI32 = 0x4
262 BPF_F_ZERO_SEED = 0x40 262 BPF_F_TEST_STATE_FREQ = 0x8
263 BPF_H = 0x8 263 BPF_F_TUNINFO_IPV6 = 0x1
264 BPF_IMM = 0x0 264 BPF_F_USER_BUILD_ID = 0x800
265 BPF_IND = 0x40 265 BPF_F_USER_STACK = 0x100
266 BPF_JA = 0x0 266 BPF_F_WRONLY = 0x10
267 BPF_JEQ = 0x10 267 BPF_F_WRONLY_PROG = 0x100
268 BPF_JGE = 0x30 268 BPF_F_ZERO_CSUM_TX = 0x2
269 BPF_JGT = 0x20 269 BPF_F_ZERO_SEED = 0x40
270 BPF_JLE = 0xb0 270 BPF_H = 0x8
271 BPF_JLT = 0xa0 271 BPF_IMM = 0x0
272 BPF_JMP = 0x5 272 BPF_IND = 0x40
273 BPF_JMP32 = 0x6 273 BPF_JA = 0x0
274 BPF_JNE = 0x50 274 BPF_JEQ = 0x10
275 BPF_JSET = 0x40 275 BPF_JGE = 0x30
276 BPF_JSGE = 0x70 276 BPF_JGT = 0x20
277 BPF_JSGT = 0x60 277 BPF_JLE = 0xb0
278 BPF_JSLE = 0xd0 278 BPF_JLT = 0xa0
279 BPF_JSLT = 0xc0 279 BPF_JMP = 0x5
280 BPF_K = 0x0 280 BPF_JMP32 = 0x6
281 BPF_LD = 0x0 281 BPF_JNE = 0x50
282 BPF_LDX = 0x1 282 BPF_JSET = 0x40
283 BPF_LEN = 0x80 283 BPF_JSGE = 0x70
284 BPF_LL_OFF = -0x200000 284 BPF_JSGT = 0x60
285 BPF_LSH = 0x60 285 BPF_JSLE = 0xd0
286 BPF_MAJOR_VERSION = 0x1 286 BPF_JSLT = 0xc0
287 BPF_MAXINSNS = 0x1000 287 BPF_K = 0x0
288 BPF_MEM = 0x60 288 BPF_LD = 0x0
289 BPF_MEMWORDS = 0x10 289 BPF_LDX = 0x1
290 BPF_MINOR_VERSION = 0x1 290 BPF_LEN = 0x80
291 BPF_MISC = 0x7 291 BPF_LL_OFF = -0x200000
292 BPF_MOD = 0x90 292 BPF_LSH = 0x60
293 BPF_MOV = 0xb0 293 BPF_MAJOR_VERSION = 0x1
294 BPF_MSH = 0xa0 294 BPF_MAXINSNS = 0x1000
295 BPF_MUL = 0x20 295 BPF_MEM = 0x60
296 BPF_NEG = 0x80 296 BPF_MEMWORDS = 0x10
297 BPF_NET_OFF = -0x100000 297 BPF_MINOR_VERSION = 0x1
298 BPF_NOEXIST = 0x1 298 BPF_MISC = 0x7
299 BPF_OBJ_NAME_LEN = 0x10 299 BPF_MOD = 0x90
300 BPF_OR = 0x40 300 BPF_MOV = 0xb0
301 BPF_PSEUDO_CALL = 0x1 301 BPF_MSH = 0xa0
302 BPF_PSEUDO_MAP_FD = 0x1 302 BPF_MUL = 0x20
303 BPF_PSEUDO_MAP_VALUE = 0x2 303 BPF_NEG = 0x80
304 BPF_RET = 0x6 304 BPF_NET_OFF = -0x100000
305 BPF_RSH = 0x70 305 BPF_NOEXIST = 0x1
306 BPF_SK_STORAGE_GET_F_CREATE = 0x1 306 BPF_OBJ_NAME_LEN = 0x10
307 BPF_SOCK_OPS_ALL_CB_FLAGS = 0x7 307 BPF_OR = 0x40
308 BPF_SOCK_OPS_RETRANS_CB_FLAG = 0x2 308 BPF_PSEUDO_CALL = 0x1
309 BPF_SOCK_OPS_RTO_CB_FLAG = 0x1 309 BPF_PSEUDO_MAP_FD = 0x1
310 BPF_SOCK_OPS_STATE_CB_FLAG = 0x4 310 BPF_PSEUDO_MAP_VALUE = 0x2
311 BPF_ST = 0x2 311 BPF_RET = 0x6
312 BPF_STX = 0x3 312 BPF_RSH = 0x70
313 BPF_SUB = 0x10 313 BPF_SK_STORAGE_GET_F_CREATE = 0x1
314 BPF_TAG_SIZE = 0x8 314 BPF_SOCK_OPS_ALL_CB_FLAGS = 0xf
315 BPF_TAX = 0x0 315 BPF_SOCK_OPS_RETRANS_CB_FLAG = 0x2
316 BPF_TO_BE = 0x8 316 BPF_SOCK_OPS_RTO_CB_FLAG = 0x1
317 BPF_TO_LE = 0x0 317 BPF_SOCK_OPS_RTT_CB_FLAG = 0x8
318 BPF_TXA = 0x80 318 BPF_SOCK_OPS_STATE_CB_FLAG = 0x4
319 BPF_W = 0x0 319 BPF_ST = 0x2
320 BPF_X = 0x8 320 BPF_STX = 0x3
321 BPF_XADD = 0xc0 321 BPF_SUB = 0x10
322 BPF_XOR = 0xa0 322 BPF_TAG_SIZE = 0x8
323 BRKINT = 0x2 323 BPF_TAX = 0x0
324 BS0 = 0x0 324 BPF_TO_BE = 0x8
325 BS1 = 0x2000 325 BPF_TO_LE = 0x0
326 BSDLY = 0x2000 326 BPF_TXA = 0x80
327 BTRFS_SUPER_MAGIC = 0x9123683e 327 BPF_W = 0x0
328 BTRFS_TEST_MAGIC = 0x73727279 328 BPF_X = 0x8
329 CAN_BCM = 0x2 329 BPF_XADD = 0xc0
330 CAN_EFF_FLAG = 0x80000000 330 BPF_XOR = 0xa0
331 CAN_EFF_ID_BITS = 0x1d 331 BRKINT = 0x2
332 CAN_EFF_MASK = 0x1fffffff 332 BS0 = 0x0
333 CAN_ERR_FLAG = 0x20000000 333 BS1 = 0x2000
334 CAN_ERR_MASK = 0x1fffffff 334 BSDLY = 0x2000
335 CAN_INV_FILTER = 0x20000000 335 BTRFS_SUPER_MAGIC = 0x9123683e
336 CAN_ISOTP = 0x6 336 BTRFS_TEST_MAGIC = 0x73727279
337 CAN_MAX_DLC = 0x8 337 CAN_BCM = 0x2
338 CAN_MAX_DLEN = 0x8 338 CAN_EFF_FLAG = 0x80000000
339 CAN_MCNET = 0x5 339 CAN_EFF_ID_BITS = 0x1d
340 CAN_MTU = 0x10 340 CAN_EFF_MASK = 0x1fffffff
341 CAN_NPROTO = 0x7 341 CAN_ERR_FLAG = 0x20000000
342 CAN_RAW = 0x1 342 CAN_ERR_MASK = 0x1fffffff
343 CAN_RAW_FILTER_MAX = 0x200 343 CAN_INV_FILTER = 0x20000000
344 CAN_RTR_FLAG = 0x40000000 344 CAN_ISOTP = 0x6
345 CAN_SFF_ID_BITS = 0xb 345 CAN_J1939 = 0x7
346 CAN_SFF_MASK = 0x7ff 346 CAN_MAX_DLC = 0x8
347 CAN_TP16 = 0x3 347 CAN_MAX_DLEN = 0x8
348 CAN_TP20 = 0x4 348 CAN_MCNET = 0x5
349 CAP_AUDIT_CONTROL = 0x1e 349 CAN_MTU = 0x10
350 CAP_AUDIT_READ = 0x25 350 CAN_NPROTO = 0x8
351 CAP_AUDIT_WRITE = 0x1d 351 CAN_RAW = 0x1
352 CAP_BLOCK_SUSPEND = 0x24 352 CAN_RAW_FILTER_MAX = 0x200
353 CAP_CHOWN = 0x0 353 CAN_RTR_FLAG = 0x40000000
354 CAP_DAC_OVERRIDE = 0x1 354 CAN_SFF_ID_BITS = 0xb
355 CAP_DAC_READ_SEARCH = 0x2 355 CAN_SFF_MASK = 0x7ff
356 CAP_FOWNER = 0x3 356 CAN_TP16 = 0x3
357 CAP_FSETID = 0x4 357 CAN_TP20 = 0x4
358 CAP_IPC_LOCK = 0xe 358 CAP_AUDIT_CONTROL = 0x1e
359 CAP_IPC_OWNER = 0xf 359 CAP_AUDIT_READ = 0x25
360 CAP_KILL = 0x5 360 CAP_AUDIT_WRITE = 0x1d
361 CAP_LAST_CAP = 0x25 361 CAP_BLOCK_SUSPEND = 0x24
362 CAP_LEASE = 0x1c 362 CAP_CHOWN = 0x0
363 CAP_LINUX_IMMUTABLE = 0x9 363 CAP_DAC_OVERRIDE = 0x1
364 CAP_MAC_ADMIN = 0x21 364 CAP_DAC_READ_SEARCH = 0x2
365 CAP_MAC_OVERRIDE = 0x20 365 CAP_FOWNER = 0x3
366 CAP_MKNOD = 0x1b 366 CAP_FSETID = 0x4
367 CAP_NET_ADMIN = 0xc 367 CAP_IPC_LOCK = 0xe
368 CAP_NET_BIND_SERVICE = 0xa 368 CAP_IPC_OWNER = 0xf
369 CAP_NET_BROADCAST = 0xb 369 CAP_KILL = 0x5
370 CAP_NET_RAW = 0xd 370 CAP_LAST_CAP = 0x25
371 CAP_SETFCAP = 0x1f 371 CAP_LEASE = 0x1c
372 CAP_SETGID = 0x6 372 CAP_LINUX_IMMUTABLE = 0x9
373 CAP_SETPCAP = 0x8 373 CAP_MAC_ADMIN = 0x21
374 CAP_SETUID = 0x7 374 CAP_MAC_OVERRIDE = 0x20
375 CAP_SYSLOG = 0x22 375 CAP_MKNOD = 0x1b
376 CAP_SYS_ADMIN = 0x15 376 CAP_NET_ADMIN = 0xc
377 CAP_SYS_BOOT = 0x16 377 CAP_NET_BIND_SERVICE = 0xa
378 CAP_SYS_CHROOT = 0x12 378 CAP_NET_BROADCAST = 0xb
379 CAP_SYS_MODULE = 0x10 379 CAP_NET_RAW = 0xd
380 CAP_SYS_NICE = 0x17 380 CAP_SETFCAP = 0x1f
381 CAP_SYS_PACCT = 0x14 381 CAP_SETGID = 0x6
382 CAP_SYS_PTRACE = 0x13 382 CAP_SETPCAP = 0x8
383 CAP_SYS_RAWIO = 0x11 383 CAP_SETUID = 0x7
384 CAP_SYS_RESOURCE = 0x18 384 CAP_SYSLOG = 0x22
385 CAP_SYS_TIME = 0x19 385 CAP_SYS_ADMIN = 0x15
386 CAP_SYS_TTY_CONFIG = 0x1a 386 CAP_SYS_BOOT = 0x16
387 CAP_WAKE_ALARM = 0x23 387 CAP_SYS_CHROOT = 0x12
388 CBAUD = 0x100f 388 CAP_SYS_MODULE = 0x10
389 CBAUDEX = 0x1000 389 CAP_SYS_NICE = 0x17
390 CFLUSH = 0xf 390 CAP_SYS_PACCT = 0x14
391 CGROUP2_SUPER_MAGIC = 0x63677270 391 CAP_SYS_PTRACE = 0x13
392 CGROUP_SUPER_MAGIC = 0x27e0eb 392 CAP_SYS_RAWIO = 0x11
393 CIBAUD = 0x100f0000 393 CAP_SYS_RESOURCE = 0x18
394 CLOCAL = 0x800 394 CAP_SYS_TIME = 0x19
395 CLOCK_BOOTTIME = 0x7 395 CAP_SYS_TTY_CONFIG = 0x1a
396 CLOCK_BOOTTIME_ALARM = 0x9 396 CAP_WAKE_ALARM = 0x23
397 CLOCK_DEFAULT = 0x0 397 CBAUD = 0x100f
398 CLOCK_EXT = 0x1 398 CBAUDEX = 0x1000
399 CLOCK_INT = 0x2 399 CFLUSH = 0xf
400 CLOCK_MONOTONIC = 0x1 400 CGROUP2_SUPER_MAGIC = 0x63677270
401 CLOCK_MONOTONIC_COARSE = 0x6 401 CGROUP_SUPER_MAGIC = 0x27e0eb
402 CLOCK_MONOTONIC_RAW = 0x4 402 CIBAUD = 0x100f0000
403 CLOCK_PROCESS_CPUTIME_ID = 0x2 403 CLOCAL = 0x800
404 CLOCK_REALTIME = 0x0 404 CLOCK_BOOTTIME = 0x7
405 CLOCK_REALTIME_ALARM = 0x8 405 CLOCK_BOOTTIME_ALARM = 0x9
406 CLOCK_REALTIME_COARSE = 0x5 406 CLOCK_DEFAULT = 0x0
407 CLOCK_TAI = 0xb 407 CLOCK_EXT = 0x1
408 CLOCK_THREAD_CPUTIME_ID = 0x3 408 CLOCK_INT = 0x2
409 CLOCK_TXFROMRX = 0x4 409 CLOCK_MONOTONIC = 0x1
410 CLOCK_TXINT = 0x3 410 CLOCK_MONOTONIC_COARSE = 0x6
411 CLONE_CHILD_CLEARTID = 0x200000 411 CLOCK_MONOTONIC_RAW = 0x4
412 CLONE_CHILD_SETTID = 0x1000000 412 CLOCK_PROCESS_CPUTIME_ID = 0x2
413 CLONE_DETACHED = 0x400000 413 CLOCK_REALTIME = 0x0
414 CLONE_FILES = 0x400 414 CLOCK_REALTIME_ALARM = 0x8
415 CLONE_FS = 0x200 415 CLOCK_REALTIME_COARSE = 0x5
416 CLONE_IO = 0x80000000 416 CLOCK_TAI = 0xb
417 CLONE_NEWCGROUP = 0x2000000 417 CLOCK_THREAD_CPUTIME_ID = 0x3
418 CLONE_NEWIPC = 0x8000000 418 CLOCK_TXFROMRX = 0x4
419 CLONE_NEWNET = 0x40000000 419 CLOCK_TXINT = 0x3
420 CLONE_NEWNS = 0x20000 420 CLONE_ARGS_SIZE_VER0 = 0x40
421 CLONE_NEWPID = 0x20000000 421 CLONE_ARGS_SIZE_VER1 = 0x50
422 CLONE_NEWUSER = 0x10000000 422 CLONE_CHILD_CLEARTID = 0x200000
423 CLONE_NEWUTS = 0x4000000 423 CLONE_CHILD_SETTID = 0x1000000
424 CLONE_PARENT = 0x8000 424 CLONE_CLEAR_SIGHAND = 0x100000000
425 CLONE_PARENT_SETTID = 0x100000 425 CLONE_DETACHED = 0x400000
426 CLONE_PIDFD = 0x1000 426 CLONE_FILES = 0x400
427 CLONE_PTRACE = 0x2000 427 CLONE_FS = 0x200
428 CLONE_SETTLS = 0x80000 428 CLONE_IO = 0x80000000
429 CLONE_SIGHAND = 0x800 429 CLONE_NEWCGROUP = 0x2000000
430 CLONE_SYSVSEM = 0x40000 430 CLONE_NEWIPC = 0x8000000
431 CLONE_THREAD = 0x10000 431 CLONE_NEWNET = 0x40000000
432 CLONE_UNTRACED = 0x800000 432 CLONE_NEWNS = 0x20000
433 CLONE_VFORK = 0x4000 433 CLONE_NEWPID = 0x20000000
434 CLONE_VM = 0x100 434 CLONE_NEWUSER = 0x10000000
435 CMSPAR = 0x40000000 435 CLONE_NEWUTS = 0x4000000
436 CODA_SUPER_MAGIC = 0x73757245 436 CLONE_PARENT = 0x8000
437 CR0 = 0x0 437 CLONE_PARENT_SETTID = 0x100000
438 CR1 = 0x200 438 CLONE_PIDFD = 0x1000
439 CR2 = 0x400 439 CLONE_PTRACE = 0x2000
440 CR3 = 0x600 440 CLONE_SETTLS = 0x80000
441 CRAMFS_MAGIC = 0x28cd3d45 441 CLONE_SIGHAND = 0x800
442 CRDLY = 0x600 442 CLONE_SYSVSEM = 0x40000
443 CREAD = 0x80 443 CLONE_THREAD = 0x10000
444 CRTSCTS = 0x80000000 444 CLONE_UNTRACED = 0x800000
445 CRYPTO_MAX_NAME = 0x40 445 CLONE_VFORK = 0x4000
446 CRYPTO_MSG_MAX = 0x15 446 CLONE_VM = 0x100
447 CRYPTO_NR_MSGTYPES = 0x6 447 CMSPAR = 0x40000000
448 CRYPTO_REPORT_MAXSIZE = 0x160 448 CODA_SUPER_MAGIC = 0x73757245
449 CS5 = 0x0 449 CR0 = 0x0
450 CS6 = 0x10 450 CR1 = 0x200
451 CS7 = 0x20 451 CR2 = 0x400
452 CS8 = 0x30 452 CR3 = 0x600
453 CSIGNAL = 0xff 453 CRAMFS_MAGIC = 0x28cd3d45
454 CSIZE = 0x30 454 CRDLY = 0x600
455 CSTART = 0x11 455 CREAD = 0x80
456 CSTATUS = 0x0 456 CRTSCTS = 0x80000000
457 CSTOP = 0x13 457 CRYPTO_MAX_NAME = 0x40
458 CSTOPB = 0x40 458 CRYPTO_MSG_MAX = 0x15
459 CSUSP = 0x1a 459 CRYPTO_NR_MSGTYPES = 0x6
460 DAXFS_MAGIC = 0x64646178 460 CRYPTO_REPORT_MAXSIZE = 0x160
461 DEBUGFS_MAGIC = 0x64626720 461 CS5 = 0x0
462 DEVPTS_SUPER_MAGIC = 0x1cd1 462 CS6 = 0x10
463 DT_BLK = 0x6 463 CS7 = 0x20
464 DT_CHR = 0x2 464 CS8 = 0x30
465 DT_DIR = 0x4 465 CSIGNAL = 0xff
466 DT_FIFO = 0x1 466 CSIZE = 0x30
467 DT_LNK = 0xa 467 CSTART = 0x11
468 DT_REG = 0x8 468 CSTATUS = 0x0
469 DT_SOCK = 0xc 469 CSTOP = 0x13
470 DT_UNKNOWN = 0x0 470 CSTOPB = 0x40
471 DT_WHT = 0xe 471 CSUSP = 0x1a
472 ECHO = 0x8 472 DAXFS_MAGIC = 0x64646178
473 ECHOCTL = 0x200 473 DEBUGFS_MAGIC = 0x64626720
474 ECHOE = 0x10 474 DEVLINK_CMD_ESWITCH_MODE_GET = 0x1d
475 ECHOK = 0x20 475 DEVLINK_CMD_ESWITCH_MODE_SET = 0x1e
476 ECHOKE = 0x800 476 DEVLINK_GENL_MCGRP_CONFIG_NAME = "config"
477 ECHONL = 0x40 477 DEVLINK_GENL_NAME = "devlink"
478 ECHOPRT = 0x400 478 DEVLINK_GENL_VERSION = 0x1
479 ECRYPTFS_SUPER_MAGIC = 0xf15f 479 DEVLINK_SB_THRESHOLD_TO_ALPHA_MAX = 0x14
480 EFD_CLOEXEC = 0x80000 480 DEVPTS_SUPER_MAGIC = 0x1cd1
481 EFD_NONBLOCK = 0x80 481 DMA_BUF_MAGIC = 0x444d4142
482 EFD_SEMAPHORE = 0x1 482 DT_BLK = 0x6
483 EFIVARFS_MAGIC = 0xde5e81e4 483 DT_CHR = 0x2
484 EFS_SUPER_MAGIC = 0x414a53 484 DT_DIR = 0x4
485 ENCODING_DEFAULT = 0x0 485 DT_FIFO = 0x1
486 ENCODING_FM_MARK = 0x3 486 DT_LNK = 0xa
487 ENCODING_FM_SPACE = 0x4 487 DT_REG = 0x8
488 ENCODING_MANCHESTER = 0x5 488 DT_SOCK = 0xc
489 ENCODING_NRZ = 0x1 489 DT_UNKNOWN = 0x0
490 ENCODING_NRZI = 0x2 490 DT_WHT = 0xe
491 EPOLLERR = 0x8 491 ECHO = 0x8
492 EPOLLET = 0x80000000 492 ECHOCTL = 0x200
493 EPOLLEXCLUSIVE = 0x10000000 493 ECHOE = 0x10
494 EPOLLHUP = 0x10 494 ECHOK = 0x20
495 EPOLLIN = 0x1 495 ECHOKE = 0x800
496 EPOLLMSG = 0x400 496 ECHONL = 0x40
497 EPOLLONESHOT = 0x40000000 497 ECHOPRT = 0x400
498 EPOLLOUT = 0x4 498 ECRYPTFS_SUPER_MAGIC = 0xf15f
499 EPOLLPRI = 0x2 499 EFD_CLOEXEC = 0x80000
500 EPOLLRDBAND = 0x80 500 EFD_NONBLOCK = 0x80
501 EPOLLRDHUP = 0x2000 501 EFD_SEMAPHORE = 0x1
502 EPOLLRDNORM = 0x40 502 EFIVARFS_MAGIC = 0xde5e81e4
503 EPOLLWAKEUP = 0x20000000 503 EFS_SUPER_MAGIC = 0x414a53
504 EPOLLWRBAND = 0x200 504 ENCODING_DEFAULT = 0x0
505 EPOLLWRNORM = 0x100 505 ENCODING_FM_MARK = 0x3
506 EPOLL_CLOEXEC = 0x80000 506 ENCODING_FM_SPACE = 0x4
507 EPOLL_CTL_ADD = 0x1 507 ENCODING_MANCHESTER = 0x5
508 EPOLL_CTL_DEL = 0x2 508 ENCODING_NRZ = 0x1
509 EPOLL_CTL_MOD = 0x3 509 ENCODING_NRZI = 0x2
510 ETH_P_1588 = 0x88f7 510 EPOLLERR = 0x8
511 ETH_P_8021AD = 0x88a8 511 EPOLLET = 0x80000000
512 ETH_P_8021AH = 0x88e7 512 EPOLLEXCLUSIVE = 0x10000000
513 ETH_P_8021Q = 0x8100 513 EPOLLHUP = 0x10
514 ETH_P_80221 = 0x8917 514 EPOLLIN = 0x1
515 ETH_P_802_2 = 0x4 515 EPOLLMSG = 0x400
516 ETH_P_802_3 = 0x1 516 EPOLLONESHOT = 0x40000000
517 ETH_P_802_3_MIN = 0x600 517 EPOLLOUT = 0x4
518 ETH_P_802_EX1 = 0x88b5 518 EPOLLPRI = 0x2
519 ETH_P_AARP = 0x80f3 519 EPOLLRDBAND = 0x80
520 ETH_P_AF_IUCV = 0xfbfb 520 EPOLLRDHUP = 0x2000
521 ETH_P_ALL = 0x3 521 EPOLLRDNORM = 0x40
522 ETH_P_AOE = 0x88a2 522 EPOLLWAKEUP = 0x20000000
523 ETH_P_ARCNET = 0x1a 523 EPOLLWRBAND = 0x200
524 ETH_P_ARP = 0x806 524 EPOLLWRNORM = 0x100
525 ETH_P_ATALK = 0x809b 525 EPOLL_CLOEXEC = 0x80000
526 ETH_P_ATMFATE = 0x8884 526 EPOLL_CTL_ADD = 0x1
527 ETH_P_ATMMPOA = 0x884c 527 EPOLL_CTL_DEL = 0x2
528 ETH_P_AX25 = 0x2 528 EPOLL_CTL_MOD = 0x3
529 ETH_P_BATMAN = 0x4305 529 EROFS_SUPER_MAGIC_V1 = 0xe0f5e1e2
530 ETH_P_BPQ = 0x8ff 530 ETH_P_1588 = 0x88f7
531 ETH_P_CAIF = 0xf7 531 ETH_P_8021AD = 0x88a8
532 ETH_P_CAN = 0xc 532 ETH_P_8021AH = 0x88e7
533 ETH_P_CANFD = 0xd 533 ETH_P_8021Q = 0x8100
534 ETH_P_CONTROL = 0x16 534 ETH_P_80221 = 0x8917
535 ETH_P_CUST = 0x6006 535 ETH_P_802_2 = 0x4
536 ETH_P_DDCMP = 0x6 536 ETH_P_802_3 = 0x1
537 ETH_P_DEC = 0x6000 537 ETH_P_802_3_MIN = 0x600
538 ETH_P_DIAG = 0x6005 538 ETH_P_802_EX1 = 0x88b5
539 ETH_P_DNA_DL = 0x6001 539 ETH_P_AARP = 0x80f3
540 ETH_P_DNA_RC = 0x6002 540 ETH_P_AF_IUCV = 0xfbfb
541 ETH_P_DNA_RT = 0x6003 541 ETH_P_ALL = 0x3
542 ETH_P_DSA = 0x1b 542 ETH_P_AOE = 0x88a2
543 ETH_P_DSA_8021Q = 0xdadb 543 ETH_P_ARCNET = 0x1a
544 ETH_P_ECONET = 0x18 544 ETH_P_ARP = 0x806
545 ETH_P_EDSA = 0xdada 545 ETH_P_ATALK = 0x809b
546 ETH_P_ERSPAN = 0x88be 546 ETH_P_ATMFATE = 0x8884
547 ETH_P_ERSPAN2 = 0x22eb 547 ETH_P_ATMMPOA = 0x884c
548 ETH_P_FCOE = 0x8906 548 ETH_P_AX25 = 0x2
549 ETH_P_FIP = 0x8914 549 ETH_P_BATMAN = 0x4305
550 ETH_P_HDLC = 0x19 550 ETH_P_BPQ = 0x8ff
551 ETH_P_HSR = 0x892f 551 ETH_P_CAIF = 0xf7
552 ETH_P_IBOE = 0x8915 552 ETH_P_CAN = 0xc
553 ETH_P_IEEE802154 = 0xf6 553 ETH_P_CANFD = 0xd
554 ETH_P_IEEEPUP = 0xa00 554 ETH_P_CONTROL = 0x16
555 ETH_P_IEEEPUPAT = 0xa01 555 ETH_P_CUST = 0x6006
556 ETH_P_IFE = 0xed3e 556 ETH_P_DDCMP = 0x6
557 ETH_P_IP = 0x800 557 ETH_P_DEC = 0x6000
558 ETH_P_IPV6 = 0x86dd 558 ETH_P_DIAG = 0x6005
559 ETH_P_IPX = 0x8137 559 ETH_P_DNA_DL = 0x6001
560 ETH_P_IRDA = 0x17 560 ETH_P_DNA_RC = 0x6002
561 ETH_P_LAT = 0x6004 561 ETH_P_DNA_RT = 0x6003
562 ETH_P_LINK_CTL = 0x886c 562 ETH_P_DSA = 0x1b
563 ETH_P_LOCALTALK = 0x9 563 ETH_P_DSA_8021Q = 0xdadb
564 ETH_P_LOOP = 0x60 564 ETH_P_ECONET = 0x18
565 ETH_P_LOOPBACK = 0x9000 565 ETH_P_EDSA = 0xdada
566 ETH_P_MACSEC = 0x88e5 566 ETH_P_ERSPAN = 0x88be
567 ETH_P_MAP = 0xf9 567 ETH_P_ERSPAN2 = 0x22eb
568 ETH_P_MOBITEX = 0x15 568 ETH_P_FCOE = 0x8906
569 ETH_P_MPLS_MC = 0x8848 569 ETH_P_FIP = 0x8914
570 ETH_P_MPLS_UC = 0x8847 570 ETH_P_HDLC = 0x19
571 ETH_P_MVRP = 0x88f5 571 ETH_P_HSR = 0x892f
572 ETH_P_NCSI = 0x88f8 572 ETH_P_IBOE = 0x8915
573 ETH_P_NSH = 0x894f 573 ETH_P_IEEE802154 = 0xf6
574 ETH_P_PAE = 0x888e 574 ETH_P_IEEEPUP = 0xa00
575 ETH_P_PAUSE = 0x8808 575 ETH_P_IEEEPUPAT = 0xa01
576 ETH_P_PHONET = 0xf5 576 ETH_P_IFE = 0xed3e
577 ETH_P_PPPTALK = 0x10 577 ETH_P_IP = 0x800
578 ETH_P_PPP_DISC = 0x8863 578 ETH_P_IPV6 = 0x86dd
579 ETH_P_PPP_MP = 0x8 579 ETH_P_IPX = 0x8137
580 ETH_P_PPP_SES = 0x8864 580 ETH_P_IRDA = 0x17
581 ETH_P_PREAUTH = 0x88c7 581 ETH_P_LAT = 0x6004
582 ETH_P_PRP = 0x88fb 582 ETH_P_LINK_CTL = 0x886c
583 ETH_P_PUP = 0x200 583 ETH_P_LLDP = 0x88cc
584 ETH_P_PUPAT = 0x201 584 ETH_P_LOCALTALK = 0x9
585 ETH_P_QINQ1 = 0x9100 585 ETH_P_LOOP = 0x60
586 ETH_P_QINQ2 = 0x9200 586 ETH_P_LOOPBACK = 0x9000
587 ETH_P_QINQ3 = 0x9300 587 ETH_P_MACSEC = 0x88e5
588 ETH_P_RARP = 0x8035 588 ETH_P_MAP = 0xf9
589 ETH_P_SCA = 0x6007 589 ETH_P_MOBITEX = 0x15
590 ETH_P_SLOW = 0x8809 590 ETH_P_MPLS_MC = 0x8848
591 ETH_P_SNAP = 0x5 591 ETH_P_MPLS_UC = 0x8847
592 ETH_P_TDLS = 0x890d 592 ETH_P_MVRP = 0x88f5
593 ETH_P_TEB = 0x6558 593 ETH_P_NCSI = 0x88f8
594 ETH_P_TIPC = 0x88ca 594 ETH_P_NSH = 0x894f
595 ETH_P_TRAILER = 0x1c 595 ETH_P_PAE = 0x888e
596 ETH_P_TR_802_2 = 0x11 596 ETH_P_PAUSE = 0x8808
597 ETH_P_TSN = 0x22f0 597 ETH_P_PHONET = 0xf5
598 ETH_P_WAN_PPP = 0x7 598 ETH_P_PPPTALK = 0x10
599 ETH_P_WCCP = 0x883e 599 ETH_P_PPP_DISC = 0x8863
600 ETH_P_X25 = 0x805 600 ETH_P_PPP_MP = 0x8
601 ETH_P_XDSA = 0xf8 601 ETH_P_PPP_SES = 0x8864
602 EXABYTE_ENABLE_NEST = 0xf0 602 ETH_P_PREAUTH = 0x88c7
603 EXT2_SUPER_MAGIC = 0xef53 603 ETH_P_PRP = 0x88fb
604 EXT3_SUPER_MAGIC = 0xef53 604 ETH_P_PUP = 0x200
605 EXT4_SUPER_MAGIC = 0xef53 605 ETH_P_PUPAT = 0x201
606 EXTA = 0xe 606 ETH_P_QINQ1 = 0x9100
607 EXTB = 0xf 607 ETH_P_QINQ2 = 0x9200
608 EXTPROC = 0x10000 608 ETH_P_QINQ3 = 0x9300
609 F2FS_SUPER_MAGIC = 0xf2f52010 609 ETH_P_RARP = 0x8035
610 FALLOC_FL_COLLAPSE_RANGE = 0x8 610 ETH_P_SCA = 0x6007
611 FALLOC_FL_INSERT_RANGE = 0x20 611 ETH_P_SLOW = 0x8809
612 FALLOC_FL_KEEP_SIZE = 0x1 612 ETH_P_SNAP = 0x5
613 FALLOC_FL_NO_HIDE_STALE = 0x4 613 ETH_P_TDLS = 0x890d
614 FALLOC_FL_PUNCH_HOLE = 0x2 614 ETH_P_TEB = 0x6558
615 FALLOC_FL_UNSHARE_RANGE = 0x40 615 ETH_P_TIPC = 0x88ca
616 FALLOC_FL_ZERO_RANGE = 0x10 616 ETH_P_TRAILER = 0x1c
617 FANOTIFY_METADATA_VERSION = 0x3 617 ETH_P_TR_802_2 = 0x11
618 FAN_ACCESS = 0x1 618 ETH_P_TSN = 0x22f0
619 FAN_ACCESS_PERM = 0x20000 619 ETH_P_WAN_PPP = 0x7
620 FAN_ALLOW = 0x1 620 ETH_P_WCCP = 0x883e
621 FAN_ALL_CLASS_BITS = 0xc 621 ETH_P_X25 = 0x805
622 FAN_ALL_EVENTS = 0x3b 622 ETH_P_XDSA = 0xf8
623 FAN_ALL_INIT_FLAGS = 0x3f 623 EXABYTE_ENABLE_NEST = 0xf0
624 FAN_ALL_MARK_FLAGS = 0xff 624 EXT2_SUPER_MAGIC = 0xef53
625 FAN_ALL_OUTGOING_EVENTS = 0x3403b 625 EXT3_SUPER_MAGIC = 0xef53
626 FAN_ALL_PERM_EVENTS = 0x30000 626 EXT4_SUPER_MAGIC = 0xef53
627 FAN_ATTRIB = 0x4 627 EXTA = 0xe
628 FAN_AUDIT = 0x10 628 EXTB = 0xf
629 FAN_CLASS_CONTENT = 0x4 629 EXTPROC = 0x10000
630 FAN_CLASS_NOTIF = 0x0 630 F2FS_SUPER_MAGIC = 0xf2f52010
631 FAN_CLASS_PRE_CONTENT = 0x8 631 FALLOC_FL_COLLAPSE_RANGE = 0x8
632 FAN_CLOEXEC = 0x1 632 FALLOC_FL_INSERT_RANGE = 0x20
633 FAN_CLOSE = 0x18 633 FALLOC_FL_KEEP_SIZE = 0x1
634 FAN_CLOSE_NOWRITE = 0x10 634 FALLOC_FL_NO_HIDE_STALE = 0x4
635 FAN_CLOSE_WRITE = 0x8 635 FALLOC_FL_PUNCH_HOLE = 0x2
636 FAN_CREATE = 0x100 636 FALLOC_FL_UNSHARE_RANGE = 0x40
637 FAN_DELETE = 0x200 637 FALLOC_FL_ZERO_RANGE = 0x10
638 FAN_DELETE_SELF = 0x400 638 FANOTIFY_METADATA_VERSION = 0x3
639 FAN_DENY = 0x2 639 FAN_ACCESS = 0x1
640 FAN_ENABLE_AUDIT = 0x40 640 FAN_ACCESS_PERM = 0x20000
641 FAN_EVENT_INFO_TYPE_FID = 0x1 641 FAN_ALLOW = 0x1
642 FAN_EVENT_METADATA_LEN = 0x18 642 FAN_ALL_CLASS_BITS = 0xc
643 FAN_EVENT_ON_CHILD = 0x8000000 643 FAN_ALL_EVENTS = 0x3b
644 FAN_MARK_ADD = 0x1 644 FAN_ALL_INIT_FLAGS = 0x3f
645 FAN_MARK_DONT_FOLLOW = 0x4 645 FAN_ALL_MARK_FLAGS = 0xff
646 FAN_MARK_FILESYSTEM = 0x100 646 FAN_ALL_OUTGOING_EVENTS = 0x3403b
647 FAN_MARK_FLUSH = 0x80 647 FAN_ALL_PERM_EVENTS = 0x30000
648 FAN_MARK_IGNORED_MASK = 0x20 648 FAN_ATTRIB = 0x4
649 FAN_MARK_IGNORED_SURV_MODIFY = 0x40 649 FAN_AUDIT = 0x10
650 FAN_MARK_INODE = 0x0 650 FAN_CLASS_CONTENT = 0x4
651 FAN_MARK_MOUNT = 0x10 651 FAN_CLASS_NOTIF = 0x0
652 FAN_MARK_ONLYDIR = 0x8 652 FAN_CLASS_PRE_CONTENT = 0x8
653 FAN_MARK_REMOVE = 0x2 653 FAN_CLOEXEC = 0x1
654 FAN_MODIFY = 0x2 654 FAN_CLOSE = 0x18
655 FAN_MOVE = 0xc0 655 FAN_CLOSE_NOWRITE = 0x10
656 FAN_MOVED_FROM = 0x40 656 FAN_CLOSE_WRITE = 0x8
657 FAN_MOVED_TO = 0x80 657 FAN_CREATE = 0x100
658 FAN_MOVE_SELF = 0x800 658 FAN_DELETE = 0x200
659 FAN_NOFD = -0x1 659 FAN_DELETE_SELF = 0x400
660 FAN_NONBLOCK = 0x2 660 FAN_DENY = 0x2
661 FAN_ONDIR = 0x40000000 661 FAN_ENABLE_AUDIT = 0x40
662 FAN_OPEN = 0x20 662 FAN_EVENT_INFO_TYPE_FID = 0x1
663 FAN_OPEN_EXEC = 0x1000 663 FAN_EVENT_METADATA_LEN = 0x18
664 FAN_OPEN_EXEC_PERM = 0x40000 664 FAN_EVENT_ON_CHILD = 0x8000000
665 FAN_OPEN_PERM = 0x10000 665 FAN_MARK_ADD = 0x1
666 FAN_Q_OVERFLOW = 0x4000 666 FAN_MARK_DONT_FOLLOW = 0x4
667 FAN_REPORT_FID = 0x200 667 FAN_MARK_FILESYSTEM = 0x100
668 FAN_REPORT_TID = 0x100 668 FAN_MARK_FLUSH = 0x80
669 FAN_UNLIMITED_MARKS = 0x20 669 FAN_MARK_IGNORED_MASK = 0x20
670 FAN_UNLIMITED_QUEUE = 0x10 670 FAN_MARK_IGNORED_SURV_MODIFY = 0x40
671 FD_CLOEXEC = 0x1 671 FAN_MARK_INODE = 0x0
672 FD_SETSIZE = 0x400 672 FAN_MARK_MOUNT = 0x10
673 FF0 = 0x0 673 FAN_MARK_ONLYDIR = 0x8
674 FF1 = 0x8000 674 FAN_MARK_REMOVE = 0x2
675 FFDLY = 0x8000 675 FAN_MODIFY = 0x2
676 FLUSHO = 0x2000 676 FAN_MOVE = 0xc0
677 FS_ENCRYPTION_MODE_ADIANTUM = 0x9 677 FAN_MOVED_FROM = 0x40
678 FS_ENCRYPTION_MODE_AES_128_CBC = 0x5 678 FAN_MOVED_TO = 0x80
679 FS_ENCRYPTION_MODE_AES_128_CTS = 0x6 679 FAN_MOVE_SELF = 0x800
680 FS_ENCRYPTION_MODE_AES_256_CBC = 0x3 680 FAN_NOFD = -0x1
681 FS_ENCRYPTION_MODE_AES_256_CTS = 0x4 681 FAN_NONBLOCK = 0x2
682 FS_ENCRYPTION_MODE_AES_256_GCM = 0x2 682 FAN_ONDIR = 0x40000000
683 FS_ENCRYPTION_MODE_AES_256_XTS = 0x1 683 FAN_OPEN = 0x20
684 FS_ENCRYPTION_MODE_INVALID = 0x0 684 FAN_OPEN_EXEC = 0x1000
685 FS_ENCRYPTION_MODE_SPECK128_256_CTS = 0x8 685 FAN_OPEN_EXEC_PERM = 0x40000
686 FS_ENCRYPTION_MODE_SPECK128_256_XTS = 0x7 686 FAN_OPEN_PERM = 0x10000
687 FS_IOC_GET_ENCRYPTION_POLICY = 0x800c6615 687 FAN_Q_OVERFLOW = 0x4000
688 FS_IOC_GET_ENCRYPTION_PWSALT = 0x80106614 688 FAN_REPORT_FID = 0x200
689 FS_IOC_SET_ENCRYPTION_POLICY = 0x400c6613 689 FAN_REPORT_TID = 0x100
690 FS_KEY_DESCRIPTOR_SIZE = 0x8 690 FAN_UNLIMITED_MARKS = 0x20
691 FS_KEY_DESC_PREFIX = "fscrypt:" 691 FAN_UNLIMITED_QUEUE = 0x10
692 FS_KEY_DESC_PREFIX_SIZE = 0x8 692 FD_CLOEXEC = 0x1
693 FS_MAX_KEY_SIZE = 0x40 693 FD_SETSIZE = 0x400
694 FS_POLICY_FLAGS_PAD_16 = 0x2 694 FF0 = 0x0
695 FS_POLICY_FLAGS_PAD_32 = 0x3 695 FF1 = 0x8000
696 FS_POLICY_FLAGS_PAD_4 = 0x0 696 FFDLY = 0x8000
697 FS_POLICY_FLAGS_PAD_8 = 0x1 697 FLUSHO = 0x2000
698 FS_POLICY_FLAGS_PAD_MASK = 0x3 698 FSCRYPT_KEY_DESCRIPTOR_SIZE = 0x8
699 FS_POLICY_FLAGS_VALID = 0x7 699 FSCRYPT_KEY_DESC_PREFIX = "fscrypt:"
700 FUTEXFS_SUPER_MAGIC = 0xbad1dea 700 FSCRYPT_KEY_DESC_PREFIX_SIZE = 0x8
701 F_ADD_SEALS = 0x409 701 FSCRYPT_KEY_IDENTIFIER_SIZE = 0x10
702 F_DUPFD = 0x0 702 FSCRYPT_KEY_REMOVAL_STATUS_FLAG_FILES_BUSY = 0x1
703 F_DUPFD_CLOEXEC = 0x406 703 FSCRYPT_KEY_REMOVAL_STATUS_FLAG_OTHER_USERS = 0x2
704 F_EXLCK = 0x4 704 FSCRYPT_KEY_SPEC_TYPE_DESCRIPTOR = 0x1
705 F_GETFD = 0x1 705 FSCRYPT_KEY_SPEC_TYPE_IDENTIFIER = 0x2
706 F_GETFL = 0x3 706 FSCRYPT_KEY_STATUS_ABSENT = 0x1
707 F_GETLEASE = 0x401 707 FSCRYPT_KEY_STATUS_FLAG_ADDED_BY_SELF = 0x1
708 F_GETLK = 0x21 708 FSCRYPT_KEY_STATUS_INCOMPLETELY_REMOVED = 0x3
709 F_GETLK64 = 0x21 709 FSCRYPT_KEY_STATUS_PRESENT = 0x2
710 F_GETOWN = 0x17 710 FSCRYPT_MAX_KEY_SIZE = 0x40
711 F_GETOWN_EX = 0x10 711 FSCRYPT_MODE_ADIANTUM = 0x9
712 F_GETPIPE_SZ = 0x408 712 FSCRYPT_MODE_AES_128_CBC = 0x5
713 F_GETSIG = 0xb 713 FSCRYPT_MODE_AES_128_CTS = 0x6
714 F_GET_FILE_RW_HINT = 0x40d 714 FSCRYPT_MODE_AES_256_CTS = 0x4
715 F_GET_RW_HINT = 0x40b 715 FSCRYPT_MODE_AES_256_XTS = 0x1
716 F_GET_SEALS = 0x40a 716 FSCRYPT_POLICY_FLAGS_PAD_16 = 0x2
717 F_LOCK = 0x1 717 FSCRYPT_POLICY_FLAGS_PAD_32 = 0x3
718 F_NOTIFY = 0x402 718 FSCRYPT_POLICY_FLAGS_PAD_4 = 0x0
719 F_OFD_GETLK = 0x24 719 FSCRYPT_POLICY_FLAGS_PAD_8 = 0x1
720 F_OFD_SETLK = 0x25 720 FSCRYPT_POLICY_FLAGS_PAD_MASK = 0x3
721 F_OFD_SETLKW = 0x26 721 FSCRYPT_POLICY_FLAGS_VALID = 0xf
722 F_OK = 0x0 722 FSCRYPT_POLICY_FLAG_DIRECT_KEY = 0x4
723 F_RDLCK = 0x0 723 FSCRYPT_POLICY_FLAG_IV_INO_LBLK_64 = 0x8
724 F_SEAL_FUTURE_WRITE = 0x10 724 FSCRYPT_POLICY_V1 = 0x0
725 F_SEAL_GROW = 0x4 725 FSCRYPT_POLICY_V2 = 0x2
726 F_SEAL_SEAL = 0x1 726 FS_ENCRYPTION_MODE_ADIANTUM = 0x9
727 F_SEAL_SHRINK = 0x2 727 FS_ENCRYPTION_MODE_AES_128_CBC = 0x5
728 F_SEAL_WRITE = 0x8 728 FS_ENCRYPTION_MODE_AES_128_CTS = 0x6
729 F_SETFD = 0x2 729 FS_ENCRYPTION_MODE_AES_256_CBC = 0x3
730 F_SETFL = 0x4 730 FS_ENCRYPTION_MODE_AES_256_CTS = 0x4
731 F_SETLEASE = 0x400 731 FS_ENCRYPTION_MODE_AES_256_GCM = 0x2
732 F_SETLK = 0x22 732 FS_ENCRYPTION_MODE_AES_256_XTS = 0x1
733 F_SETLK64 = 0x22 733 FS_ENCRYPTION_MODE_INVALID = 0x0
734 F_SETLKW = 0x23 734 FS_ENCRYPTION_MODE_SPECK128_256_CTS = 0x8
735 F_SETLKW64 = 0x23 735 FS_ENCRYPTION_MODE_SPECK128_256_XTS = 0x7
736 F_SETOWN = 0x18 736 FS_IOC_ADD_ENCRYPTION_KEY = 0xc0506617
737 F_SETOWN_EX = 0xf 737 FS_IOC_GET_ENCRYPTION_KEY_STATUS = 0xc080661a
738 F_SETPIPE_SZ = 0x407 738 FS_IOC_GET_ENCRYPTION_POLICY = 0x800c6615
739 F_SETSIG = 0xa 739 FS_IOC_GET_ENCRYPTION_POLICY_EX = 0xc0096616
740 F_SET_FILE_RW_HINT = 0x40e 740 FS_IOC_GET_ENCRYPTION_PWSALT = 0x80106614
741 F_SET_RW_HINT = 0x40c 741 FS_IOC_REMOVE_ENCRYPTION_KEY = 0xc0406618
742 F_SHLCK = 0x8 742 FS_IOC_REMOVE_ENCRYPTION_KEY_ALL_USERS = 0xc0406619
743 F_TEST = 0x3 743 FS_IOC_SET_ENCRYPTION_POLICY = 0x400c6613
744 F_TLOCK = 0x2 744 FS_KEY_DESCRIPTOR_SIZE = 0x8
745 F_ULOCK = 0x0 745 FS_KEY_DESC_PREFIX = "fscrypt:"
746 F_UNLCK = 0x2 746 FS_KEY_DESC_PREFIX_SIZE = 0x8
747 F_WRLCK = 0x1 747 FS_MAX_KEY_SIZE = 0x40
748 GENL_ADMIN_PERM = 0x1 748 FS_POLICY_FLAGS_PAD_16 = 0x2
749 GENL_CMD_CAP_DO = 0x2 749 FS_POLICY_FLAGS_PAD_32 = 0x3
750 GENL_CMD_CAP_DUMP = 0x4 750 FS_POLICY_FLAGS_PAD_4 = 0x0
751 GENL_CMD_CAP_HASPOL = 0x8 751 FS_POLICY_FLAGS_PAD_8 = 0x1
752 GENL_HDRLEN = 0x4 752 FS_POLICY_FLAGS_PAD_MASK = 0x3
753 GENL_ID_CTRL = 0x10 753 FS_POLICY_FLAGS_VALID = 0xf
754 GENL_ID_PMCRAID = 0x12 754 FUTEXFS_SUPER_MAGIC = 0xbad1dea
755 GENL_ID_VFS_DQUOT = 0x11 755 F_ADD_SEALS = 0x409
756 GENL_MAX_ID = 0x3ff 756 F_DUPFD = 0x0
757 GENL_MIN_ID = 0x10 757 F_DUPFD_CLOEXEC = 0x406
758 GENL_NAMSIZ = 0x10 758 F_EXLCK = 0x4
759 GENL_START_ALLOC = 0x13 759 F_GETFD = 0x1
760 GENL_UNS_ADMIN_PERM = 0x10 760 F_GETFL = 0x3
761 GRND_NONBLOCK = 0x1 761 F_GETLEASE = 0x401
762 GRND_RANDOM = 0x2 762 F_GETLK = 0x21
763 HDIO_DRIVE_CMD = 0x31f 763 F_GETLK64 = 0x21
764 HDIO_DRIVE_CMD_AEB = 0x31e 764 F_GETOWN = 0x17
765 HDIO_DRIVE_CMD_HDR_SIZE = 0x4 765 F_GETOWN_EX = 0x10
766 HDIO_DRIVE_HOB_HDR_SIZE = 0x8 766 F_GETPIPE_SZ = 0x408
767 HDIO_DRIVE_RESET = 0x31c 767 F_GETSIG = 0xb
768 HDIO_DRIVE_TASK = 0x31e 768 F_GET_FILE_RW_HINT = 0x40d
769 HDIO_DRIVE_TASKFILE = 0x31d 769 F_GET_RW_HINT = 0x40b
770 HDIO_DRIVE_TASK_HDR_SIZE = 0x8 770 F_GET_SEALS = 0x40a
771 HDIO_GETGEO = 0x301 771 F_LOCK = 0x1
772 HDIO_GET_32BIT = 0x309 772 F_NOTIFY = 0x402
773 HDIO_GET_ACOUSTIC = 0x30f 773 F_OFD_GETLK = 0x24
774 HDIO_GET_ADDRESS = 0x310 774 F_OFD_SETLK = 0x25
775 HDIO_GET_BUSSTATE = 0x31a 775 F_OFD_SETLKW = 0x26
776 HDIO_GET_DMA = 0x30b 776 F_OK = 0x0
777 HDIO_GET_IDENTITY = 0x30d 777 F_RDLCK = 0x0
778 HDIO_GET_KEEPSETTINGS = 0x308 778 F_SEAL_FUTURE_WRITE = 0x10
779 HDIO_GET_MULTCOUNT = 0x304 779 F_SEAL_GROW = 0x4
780 HDIO_GET_NICE = 0x30c 780 F_SEAL_SEAL = 0x1
781 HDIO_GET_NOWERR = 0x30a 781 F_SEAL_SHRINK = 0x2
782 HDIO_GET_QDMA = 0x305 782 F_SEAL_WRITE = 0x8
783 HDIO_GET_UNMASKINTR = 0x302 783 F_SETFD = 0x2
784 HDIO_GET_WCACHE = 0x30e 784 F_SETFL = 0x4
785 HDIO_OBSOLETE_IDENTITY = 0x307 785 F_SETLEASE = 0x400
786 HDIO_SCAN_HWIF = 0x328 786 F_SETLK = 0x22
787 HDIO_SET_32BIT = 0x324 787 F_SETLK64 = 0x22
788 HDIO_SET_ACOUSTIC = 0x32c 788 F_SETLKW = 0x23
789 HDIO_SET_ADDRESS = 0x32f 789 F_SETLKW64 = 0x23
790 HDIO_SET_BUSSTATE = 0x32d 790 F_SETOWN = 0x18
791 HDIO_SET_DMA = 0x326 791 F_SETOWN_EX = 0xf
792 HDIO_SET_KEEPSETTINGS = 0x323 792 F_SETPIPE_SZ = 0x407
793 HDIO_SET_MULTCOUNT = 0x321 793 F_SETSIG = 0xa
794 HDIO_SET_NICE = 0x329 794 F_SET_FILE_RW_HINT = 0x40e
795 HDIO_SET_NOWERR = 0x325 795 F_SET_RW_HINT = 0x40c
796 HDIO_SET_PIO_MODE = 0x327 796 F_SHLCK = 0x8
797 HDIO_SET_QDMA = 0x32e 797 F_TEST = 0x3
798 HDIO_SET_UNMASKINTR = 0x322 798 F_TLOCK = 0x2
799 HDIO_SET_WCACHE = 0x32b 799 F_ULOCK = 0x0
800 HDIO_SET_XFER = 0x306 800 F_UNLCK = 0x2
801 HDIO_TRISTATE_HWIF = 0x31b 801 F_WRLCK = 0x1
802 HDIO_UNREGISTER_HWIF = 0x32a 802 GENL_ADMIN_PERM = 0x1
803 HOSTFS_SUPER_MAGIC = 0xc0ffee 803 GENL_CMD_CAP_DO = 0x2
804 HPFS_SUPER_MAGIC = 0xf995e849 804 GENL_CMD_CAP_DUMP = 0x4
805 HUGETLBFS_MAGIC = 0x958458f6 805 GENL_CMD_CAP_HASPOL = 0x8
806 HUPCL = 0x400 806 GENL_HDRLEN = 0x4
807 IBSHIFT = 0x10 807 GENL_ID_CTRL = 0x10
808 ICANON = 0x2 808 GENL_ID_PMCRAID = 0x12
809 ICMPV6_FILTER = 0x1 809 GENL_ID_VFS_DQUOT = 0x11
810 ICRNL = 0x100 810 GENL_MAX_ID = 0x3ff
811 IEXTEN = 0x100 811 GENL_MIN_ID = 0x10
812 IFA_F_DADFAILED = 0x8 812 GENL_NAMSIZ = 0x10
813 IFA_F_DEPRECATED = 0x20 813 GENL_START_ALLOC = 0x13
814 IFA_F_HOMEADDRESS = 0x10 814 GENL_UNS_ADMIN_PERM = 0x10
815 IFA_F_MANAGETEMPADDR = 0x100 815 GRND_NONBLOCK = 0x1
816 IFA_F_MCAUTOJOIN = 0x400 816 GRND_RANDOM = 0x2
817 IFA_F_NODAD = 0x2 817 HDIO_DRIVE_CMD = 0x31f
818 IFA_F_NOPREFIXROUTE = 0x200 818 HDIO_DRIVE_CMD_AEB = 0x31e
819 IFA_F_OPTIMISTIC = 0x4 819 HDIO_DRIVE_CMD_HDR_SIZE = 0x4
820 IFA_F_PERMANENT = 0x80 820 HDIO_DRIVE_HOB_HDR_SIZE = 0x8
821 IFA_F_SECONDARY = 0x1 821 HDIO_DRIVE_RESET = 0x31c
822 IFA_F_STABLE_PRIVACY = 0x800 822 HDIO_DRIVE_TASK = 0x31e
823 IFA_F_TEMPORARY = 0x1 823 HDIO_DRIVE_TASKFILE = 0x31d
824 IFA_F_TENTATIVE = 0x40 824 HDIO_DRIVE_TASK_HDR_SIZE = 0x8
825 IFA_MAX = 0xa 825 HDIO_GETGEO = 0x301
826 IFF_ALLMULTI = 0x200 826 HDIO_GET_32BIT = 0x309
827 IFF_ATTACH_QUEUE = 0x200 827 HDIO_GET_ACOUSTIC = 0x30f
828 IFF_AUTOMEDIA = 0x4000 828 HDIO_GET_ADDRESS = 0x310
829 IFF_BROADCAST = 0x2 829 HDIO_GET_BUSSTATE = 0x31a
830 IFF_DEBUG = 0x4 830 HDIO_GET_DMA = 0x30b
831 IFF_DETACH_QUEUE = 0x400 831 HDIO_GET_IDENTITY = 0x30d
832 IFF_DORMANT = 0x20000 832 HDIO_GET_KEEPSETTINGS = 0x308
833 IFF_DYNAMIC = 0x8000 833 HDIO_GET_MULTCOUNT = 0x304
834 IFF_ECHO = 0x40000 834 HDIO_GET_NICE = 0x30c
835 IFF_LOOPBACK = 0x8 835 HDIO_GET_NOWERR = 0x30a
836 IFF_LOWER_UP = 0x10000 836 HDIO_GET_QDMA = 0x305
837 IFF_MASTER = 0x400 837 HDIO_GET_UNMASKINTR = 0x302
838 IFF_MULTICAST = 0x1000 838 HDIO_GET_WCACHE = 0x30e
839 IFF_MULTI_QUEUE = 0x100 839 HDIO_OBSOLETE_IDENTITY = 0x307
840 IFF_NAPI = 0x10 840 HDIO_SCAN_HWIF = 0x328
841 IFF_NAPI_FRAGS = 0x20 841 HDIO_SET_32BIT = 0x324
842 IFF_NOARP = 0x80 842 HDIO_SET_ACOUSTIC = 0x32c
843 IFF_NOFILTER = 0x1000 843 HDIO_SET_ADDRESS = 0x32f
844 IFF_NOTRAILERS = 0x20 844 HDIO_SET_BUSSTATE = 0x32d
845 IFF_NO_PI = 0x1000 845 HDIO_SET_DMA = 0x326
846 IFF_ONE_QUEUE = 0x2000 846 HDIO_SET_KEEPSETTINGS = 0x323
847 IFF_PERSIST = 0x800 847 HDIO_SET_MULTCOUNT = 0x321
848 IFF_POINTOPOINT = 0x10 848 HDIO_SET_NICE = 0x329
849 IFF_PORTSEL = 0x2000 849 HDIO_SET_NOWERR = 0x325
850 IFF_PROMISC = 0x100 850 HDIO_SET_PIO_MODE = 0x327
851 IFF_RUNNING = 0x40 851 HDIO_SET_QDMA = 0x32e
852 IFF_SLAVE = 0x800 852 HDIO_SET_UNMASKINTR = 0x322
853 IFF_TAP = 0x2 853 HDIO_SET_WCACHE = 0x32b
854 IFF_TUN = 0x1 854 HDIO_SET_XFER = 0x306
855 IFF_TUN_EXCL = 0x8000 855 HDIO_TRISTATE_HWIF = 0x31b
856 IFF_UP = 0x1 856 HDIO_UNREGISTER_HWIF = 0x32a
857 IFF_VNET_HDR = 0x4000 857 HOSTFS_SUPER_MAGIC = 0xc0ffee
858 IFF_VOLATILE = 0x70c5a 858 HPFS_SUPER_MAGIC = 0xf995e849
859 IFNAMSIZ = 0x10 859 HUGETLBFS_MAGIC = 0x958458f6
860 IGNBRK = 0x1 860 HUPCL = 0x400
861 IGNCR = 0x80 861 IBSHIFT = 0x10
862 IGNPAR = 0x4 862 ICANON = 0x2
863 IMAXBEL = 0x2000 863 ICMPV6_FILTER = 0x1
864 INLCR = 0x40 864 ICRNL = 0x100
865 INPCK = 0x10 865 IEXTEN = 0x100
866 IN_ACCESS = 0x1 866 IFA_F_DADFAILED = 0x8
867 IN_ALL_EVENTS = 0xfff 867 IFA_F_DEPRECATED = 0x20
868 IN_ATTRIB = 0x4 868 IFA_F_HOMEADDRESS = 0x10
869 IN_CLASSA_HOST = 0xffffff 869 IFA_F_MANAGETEMPADDR = 0x100
870 IN_CLASSA_MAX = 0x80 870 IFA_F_MCAUTOJOIN = 0x400
871 IN_CLASSA_NET = 0xff000000 871 IFA_F_NODAD = 0x2
872 IN_CLASSA_NSHIFT = 0x18 872 IFA_F_NOPREFIXROUTE = 0x200
873 IN_CLASSB_HOST = 0xffff 873 IFA_F_OPTIMISTIC = 0x4
874 IN_CLASSB_MAX = 0x10000 874 IFA_F_PERMANENT = 0x80
875 IN_CLASSB_NET = 0xffff0000 875 IFA_F_SECONDARY = 0x1
876 IN_CLASSB_NSHIFT = 0x10 876 IFA_F_STABLE_PRIVACY = 0x800
877 IN_CLASSC_HOST = 0xff 877 IFA_F_TEMPORARY = 0x1
878 IN_CLASSC_NET = 0xffffff00 878 IFA_F_TENTATIVE = 0x40
879 IN_CLASSC_NSHIFT = 0x8 879 IFA_MAX = 0xa
880 IN_CLOEXEC = 0x80000 880 IFF_ALLMULTI = 0x200
881 IN_CLOSE = 0x18 881 IFF_ATTACH_QUEUE = 0x200
882 IN_CLOSE_NOWRITE = 0x10 882 IFF_AUTOMEDIA = 0x4000
883 IN_CLOSE_WRITE = 0x8 883 IFF_BROADCAST = 0x2
884 IN_CREATE = 0x100 884 IFF_DEBUG = 0x4
885 IN_DELETE = 0x200 885 IFF_DETACH_QUEUE = 0x400
886 IN_DELETE_SELF = 0x400 886 IFF_DORMANT = 0x20000
887 IN_DONT_FOLLOW = 0x2000000 887 IFF_DYNAMIC = 0x8000
888 IN_EXCL_UNLINK = 0x4000000 888 IFF_ECHO = 0x40000
889 IN_IGNORED = 0x8000 889 IFF_LOOPBACK = 0x8
890 IN_ISDIR = 0x40000000 890 IFF_LOWER_UP = 0x10000
891 IN_LOOPBACKNET = 0x7f 891 IFF_MASTER = 0x400
892 IN_MASK_ADD = 0x20000000 892 IFF_MULTICAST = 0x1000
893 IN_MASK_CREATE = 0x10000000 893 IFF_MULTI_QUEUE = 0x100
894 IN_MODIFY = 0x2 894 IFF_NAPI = 0x10
895 IN_MOVE = 0xc0 895 IFF_NAPI_FRAGS = 0x20
896 IN_MOVED_FROM = 0x40 896 IFF_NOARP = 0x80
897 IN_MOVED_TO = 0x80 897 IFF_NOFILTER = 0x1000
898 IN_MOVE_SELF = 0x800 898 IFF_NOTRAILERS = 0x20
899 IN_NONBLOCK = 0x80 899 IFF_NO_PI = 0x1000
900 IN_ONESHOT = 0x80000000 900 IFF_ONE_QUEUE = 0x2000
901 IN_ONLYDIR = 0x1000000 901 IFF_PERSIST = 0x800
902 IN_OPEN = 0x20 902 IFF_POINTOPOINT = 0x10
903 IN_Q_OVERFLOW = 0x4000 903 IFF_PORTSEL = 0x2000
904 IN_UNMOUNT = 0x2000 904 IFF_PROMISC = 0x100
905 IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x200007b9 905 IFF_RUNNING = 0x40
906 IPPROTO_AH = 0x33 906 IFF_SLAVE = 0x800
907 IPPROTO_BEETPH = 0x5e 907 IFF_TAP = 0x2
908 IPPROTO_COMP = 0x6c 908 IFF_TUN = 0x1
909 IPPROTO_DCCP = 0x21 909 IFF_TUN_EXCL = 0x8000
910 IPPROTO_DSTOPTS = 0x3c 910 IFF_UP = 0x1
911 IPPROTO_EGP = 0x8 911 IFF_VNET_HDR = 0x4000
912 IPPROTO_ENCAP = 0x62 912 IFF_VOLATILE = 0x70c5a
913 IPPROTO_ESP = 0x32 913 IFNAMSIZ = 0x10
914 IPPROTO_FRAGMENT = 0x2c 914 IGNBRK = 0x1
915 IPPROTO_GRE = 0x2f 915 IGNCR = 0x80
916 IPPROTO_HOPOPTS = 0x0 916 IGNPAR = 0x4
917 IPPROTO_ICMP = 0x1 917 IMAXBEL = 0x2000
918 IPPROTO_ICMPV6 = 0x3a 918 INLCR = 0x40
919 IPPROTO_IDP = 0x16 919 INPCK = 0x10
920 IPPROTO_IGMP = 0x2 920 IN_ACCESS = 0x1
921 IPPROTO_IP = 0x0 921 IN_ALL_EVENTS = 0xfff
922 IPPROTO_IPIP = 0x4 922 IN_ATTRIB = 0x4
923 IPPROTO_IPV6 = 0x29 923 IN_CLASSA_HOST = 0xffffff
924 IPPROTO_MH = 0x87 924 IN_CLASSA_MAX = 0x80
925 IPPROTO_MPLS = 0x89 925 IN_CLASSA_NET = 0xff000000
926 IPPROTO_MTP = 0x5c 926 IN_CLASSA_NSHIFT = 0x18
927 IPPROTO_NONE = 0x3b 927 IN_CLASSB_HOST = 0xffff
928 IPPROTO_PIM = 0x67 928 IN_CLASSB_MAX = 0x10000
929 IPPROTO_PUP = 0xc 929 IN_CLASSB_NET = 0xffff0000
930 IPPROTO_RAW = 0xff 930 IN_CLASSB_NSHIFT = 0x10
931 IPPROTO_ROUTING = 0x2b 931 IN_CLASSC_HOST = 0xff
932 IPPROTO_RSVP = 0x2e 932 IN_CLASSC_NET = 0xffffff00
933 IPPROTO_SCTP = 0x84 933 IN_CLASSC_NSHIFT = 0x8
934 IPPROTO_TCP = 0x6 934 IN_CLOEXEC = 0x80000
935 IPPROTO_TP = 0x1d 935 IN_CLOSE = 0x18
936 IPPROTO_UDP = 0x11 936 IN_CLOSE_NOWRITE = 0x10
937 IPPROTO_UDPLITE = 0x88 937 IN_CLOSE_WRITE = 0x8
938 IPV6_2292DSTOPTS = 0x4 938 IN_CREATE = 0x100
939 IPV6_2292HOPLIMIT = 0x8 939 IN_DELETE = 0x200
940 IPV6_2292HOPOPTS = 0x3 940 IN_DELETE_SELF = 0x400
941 IPV6_2292PKTINFO = 0x2 941 IN_DONT_FOLLOW = 0x2000000
942 IPV6_2292PKTOPTIONS = 0x6 942 IN_EXCL_UNLINK = 0x4000000
943 IPV6_2292RTHDR = 0x5 943 IN_IGNORED = 0x8000
944 IPV6_ADDRFORM = 0x1 944 IN_ISDIR = 0x40000000
945 IPV6_ADDR_PREFERENCES = 0x48 945 IN_LOOPBACKNET = 0x7f
946 IPV6_ADD_MEMBERSHIP = 0x14 946 IN_MASK_ADD = 0x20000000
947 IPV6_AUTHHDR = 0xa 947 IN_MASK_CREATE = 0x10000000
948 IPV6_AUTOFLOWLABEL = 0x46 948 IN_MODIFY = 0x2
949 IPV6_CHECKSUM = 0x7 949 IN_MOVE = 0xc0
950 IPV6_DONTFRAG = 0x3e 950 IN_MOVED_FROM = 0x40
951 IPV6_DROP_MEMBERSHIP = 0x15 951 IN_MOVED_TO = 0x80
952 IPV6_DSTOPTS = 0x3b 952 IN_MOVE_SELF = 0x800
953 IPV6_FREEBIND = 0x4e 953 IN_NONBLOCK = 0x80
954 IPV6_HDRINCL = 0x24 954 IN_ONESHOT = 0x80000000
955 IPV6_HOPLIMIT = 0x34 955 IN_ONLYDIR = 0x1000000
956 IPV6_HOPOPTS = 0x36 956 IN_OPEN = 0x20
957 IPV6_IPSEC_POLICY = 0x22 957 IN_Q_OVERFLOW = 0x4000
958 IPV6_JOIN_ANYCAST = 0x1b 958 IN_UNMOUNT = 0x2000
959 IPV6_JOIN_GROUP = 0x14 959 IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x200007b9
960 IPV6_LEAVE_ANYCAST = 0x1c 960 IPPROTO_AH = 0x33
961 IPV6_LEAVE_GROUP = 0x15 961 IPPROTO_BEETPH = 0x5e
962 IPV6_MINHOPCOUNT = 0x49 962 IPPROTO_COMP = 0x6c
963 IPV6_MTU = 0x18 963 IPPROTO_DCCP = 0x21
964 IPV6_MTU_DISCOVER = 0x17 964 IPPROTO_DSTOPTS = 0x3c
965 IPV6_MULTICAST_ALL = 0x1d 965 IPPROTO_EGP = 0x8
966 IPV6_MULTICAST_HOPS = 0x12 966 IPPROTO_ENCAP = 0x62
967 IPV6_MULTICAST_IF = 0x11 967 IPPROTO_ESP = 0x32
968 IPV6_MULTICAST_LOOP = 0x13 968 IPPROTO_FRAGMENT = 0x2c
969 IPV6_NEXTHOP = 0x9 969 IPPROTO_GRE = 0x2f
970 IPV6_ORIGDSTADDR = 0x4a 970 IPPROTO_HOPOPTS = 0x0
971 IPV6_PATHMTU = 0x3d 971 IPPROTO_ICMP = 0x1
972 IPV6_PKTINFO = 0x32 972 IPPROTO_ICMPV6 = 0x3a
973 IPV6_PMTUDISC_DO = 0x2 973 IPPROTO_IDP = 0x16
974 IPV6_PMTUDISC_DONT = 0x0 974 IPPROTO_IGMP = 0x2
975 IPV6_PMTUDISC_INTERFACE = 0x4 975 IPPROTO_IP = 0x0
976 IPV6_PMTUDISC_OMIT = 0x5 976 IPPROTO_IPIP = 0x4
977 IPV6_PMTUDISC_PROBE = 0x3 977 IPPROTO_IPV6 = 0x29
978 IPV6_PMTUDISC_WANT = 0x1 978 IPPROTO_MH = 0x87
979 IPV6_RECVDSTOPTS = 0x3a 979 IPPROTO_MPLS = 0x89
980 IPV6_RECVERR = 0x19 980 IPPROTO_MTP = 0x5c
981 IPV6_RECVFRAGSIZE = 0x4d 981 IPPROTO_NONE = 0x3b
982 IPV6_RECVHOPLIMIT = 0x33 982 IPPROTO_PIM = 0x67
983 IPV6_RECVHOPOPTS = 0x35 983 IPPROTO_PUP = 0xc
984 IPV6_RECVORIGDSTADDR = 0x4a 984 IPPROTO_RAW = 0xff
985 IPV6_RECVPATHMTU = 0x3c 985 IPPROTO_ROUTING = 0x2b
986 IPV6_RECVPKTINFO = 0x31 986 IPPROTO_RSVP = 0x2e
987 IPV6_RECVRTHDR = 0x38 987 IPPROTO_SCTP = 0x84
988 IPV6_RECVTCLASS = 0x42 988 IPPROTO_TCP = 0x6
989 IPV6_ROUTER_ALERT = 0x16 989 IPPROTO_TP = 0x1d
990 IPV6_ROUTER_ALERT_ISOLATE = 0x1e 990 IPPROTO_UDP = 0x11
991 IPV6_RTHDR = 0x39 991 IPPROTO_UDPLITE = 0x88
992 IPV6_RTHDRDSTOPTS = 0x37 992 IPV6_2292DSTOPTS = 0x4
993 IPV6_RTHDR_LOOSE = 0x0 993 IPV6_2292HOPLIMIT = 0x8
994 IPV6_RTHDR_STRICT = 0x1 994 IPV6_2292HOPOPTS = 0x3
995 IPV6_RTHDR_TYPE_0 = 0x0 995 IPV6_2292PKTINFO = 0x2
996 IPV6_RXDSTOPTS = 0x3b 996 IPV6_2292PKTOPTIONS = 0x6
997 IPV6_RXHOPOPTS = 0x36 997 IPV6_2292RTHDR = 0x5
998 IPV6_TCLASS = 0x43 998 IPV6_ADDRFORM = 0x1
999 IPV6_TRANSPARENT = 0x4b 999 IPV6_ADDR_PREFERENCES = 0x48
1000 IPV6_UNICAST_HOPS = 0x10 1000 IPV6_ADD_MEMBERSHIP = 0x14
1001 IPV6_UNICAST_IF = 0x4c 1001 IPV6_AUTHHDR = 0xa
1002 IPV6_V6ONLY = 0x1a 1002 IPV6_AUTOFLOWLABEL = 0x46
1003 IPV6_XFRM_POLICY = 0x23 1003 IPV6_CHECKSUM = 0x7
1004 IP_ADD_MEMBERSHIP = 0x23 1004 IPV6_DONTFRAG = 0x3e
1005 IP_ADD_SOURCE_MEMBERSHIP = 0x27 1005 IPV6_DROP_MEMBERSHIP = 0x15
1006 IP_BIND_ADDRESS_NO_PORT = 0x18 1006 IPV6_DSTOPTS = 0x3b
1007 IP_BLOCK_SOURCE = 0x26 1007 IPV6_FREEBIND = 0x4e
1008 IP_CHECKSUM = 0x17 1008 IPV6_HDRINCL = 0x24
1009 IP_DEFAULT_MULTICAST_LOOP = 0x1 1009 IPV6_HOPLIMIT = 0x34
1010 IP_DEFAULT_MULTICAST_TTL = 0x1 1010 IPV6_HOPOPTS = 0x36
1011 IP_DF = 0x4000 1011 IPV6_IPSEC_POLICY = 0x22
1012 IP_DROP_MEMBERSHIP = 0x24 1012 IPV6_JOIN_ANYCAST = 0x1b
1013 IP_DROP_SOURCE_MEMBERSHIP = 0x28 1013 IPV6_JOIN_GROUP = 0x14
1014 IP_FREEBIND = 0xf 1014 IPV6_LEAVE_ANYCAST = 0x1c
1015 IP_HDRINCL = 0x3 1015 IPV6_LEAVE_GROUP = 0x15
1016 IP_IPSEC_POLICY = 0x10 1016 IPV6_MINHOPCOUNT = 0x49
1017 IP_MAXPACKET = 0xffff 1017 IPV6_MTU = 0x18
1018 IP_MAX_MEMBERSHIPS = 0x14 1018 IPV6_MTU_DISCOVER = 0x17
1019 IP_MF = 0x2000 1019 IPV6_MULTICAST_ALL = 0x1d
1020 IP_MINTTL = 0x15 1020 IPV6_MULTICAST_HOPS = 0x12
1021 IP_MSFILTER = 0x29 1021 IPV6_MULTICAST_IF = 0x11
1022 IP_MSS = 0x240 1022 IPV6_MULTICAST_LOOP = 0x13
1023 IP_MTU = 0xe 1023 IPV6_NEXTHOP = 0x9
1024 IP_MTU_DISCOVER = 0xa 1024 IPV6_ORIGDSTADDR = 0x4a
1025 IP_MULTICAST_ALL = 0x31 1025 IPV6_PATHMTU = 0x3d
1026 IP_MULTICAST_IF = 0x20 1026 IPV6_PKTINFO = 0x32
1027 IP_MULTICAST_LOOP = 0x22 1027 IPV6_PMTUDISC_DO = 0x2
1028 IP_MULTICAST_TTL = 0x21 1028 IPV6_PMTUDISC_DONT = 0x0
1029 IP_NODEFRAG = 0x16 1029 IPV6_PMTUDISC_INTERFACE = 0x4
1030 IP_OFFMASK = 0x1fff 1030 IPV6_PMTUDISC_OMIT = 0x5
1031 IP_OPTIONS = 0x4 1031 IPV6_PMTUDISC_PROBE = 0x3
1032 IP_ORIGDSTADDR = 0x14 1032 IPV6_PMTUDISC_WANT = 0x1
1033 IP_PASSSEC = 0x12 1033 IPV6_RECVDSTOPTS = 0x3a
1034 IP_PKTINFO = 0x8 1034 IPV6_RECVERR = 0x19
1035 IP_PKTOPTIONS = 0x9 1035 IPV6_RECVFRAGSIZE = 0x4d
1036 IP_PMTUDISC = 0xa 1036 IPV6_RECVHOPLIMIT = 0x33
1037 IP_PMTUDISC_DO = 0x2 1037 IPV6_RECVHOPOPTS = 0x35
1038 IP_PMTUDISC_DONT = 0x0 1038 IPV6_RECVORIGDSTADDR = 0x4a
1039 IP_PMTUDISC_INTERFACE = 0x4 1039 IPV6_RECVPATHMTU = 0x3c
1040 IP_PMTUDISC_OMIT = 0x5 1040 IPV6_RECVPKTINFO = 0x31
1041 IP_PMTUDISC_PROBE = 0x3 1041 IPV6_RECVRTHDR = 0x38
1042 IP_PMTUDISC_WANT = 0x1 1042 IPV6_RECVTCLASS = 0x42
1043 IP_RECVERR = 0xb 1043 IPV6_ROUTER_ALERT = 0x16
1044 IP_RECVFRAGSIZE = 0x19 1044 IPV6_ROUTER_ALERT_ISOLATE = 0x1e
1045 IP_RECVOPTS = 0x6 1045 IPV6_RTHDR = 0x39
1046 IP_RECVORIGDSTADDR = 0x14 1046 IPV6_RTHDRDSTOPTS = 0x37
1047 IP_RECVRETOPTS = 0x7 1047 IPV6_RTHDR_LOOSE = 0x0
1048 IP_RECVTOS = 0xd 1048 IPV6_RTHDR_STRICT = 0x1
1049 IP_RECVTTL = 0xc 1049 IPV6_RTHDR_TYPE_0 = 0x0
1050 IP_RETOPTS = 0x7 1050 IPV6_RXDSTOPTS = 0x3b
1051 IP_RF = 0x8000 1051 IPV6_RXHOPOPTS = 0x36
1052 IP_ROUTER_ALERT = 0x5 1052 IPV6_TCLASS = 0x43
1053 IP_TOS = 0x1 1053 IPV6_TRANSPARENT = 0x4b
1054 IP_TRANSPARENT = 0x13 1054 IPV6_UNICAST_HOPS = 0x10
1055 IP_TTL = 0x2 1055 IPV6_UNICAST_IF = 0x4c
1056 IP_UNBLOCK_SOURCE = 0x25 1056 IPV6_V6ONLY = 0x1a
1057 IP_UNICAST_IF = 0x32 1057 IPV6_XFRM_POLICY = 0x23
1058 IP_XFRM_POLICY = 0x11 1058 IP_ADD_MEMBERSHIP = 0x23
1059 ISIG = 0x1 1059 IP_ADD_SOURCE_MEMBERSHIP = 0x27
1060 ISOFS_SUPER_MAGIC = 0x9660 1060 IP_BIND_ADDRESS_NO_PORT = 0x18
1061 ISTRIP = 0x20 1061 IP_BLOCK_SOURCE = 0x26
1062 IUCLC = 0x200 1062 IP_CHECKSUM = 0x17
1063 IUTF8 = 0x4000 1063 IP_DEFAULT_MULTICAST_LOOP = 0x1
1064 IXANY = 0x800 1064 IP_DEFAULT_MULTICAST_TTL = 0x1
1065 IXOFF = 0x1000 1065 IP_DF = 0x4000
1066 IXON = 0x400 1066 IP_DROP_MEMBERSHIP = 0x24
1067 JFFS2_SUPER_MAGIC = 0x72b6 1067 IP_DROP_SOURCE_MEMBERSHIP = 0x28
1068 KEXEC_ARCH_386 = 0x30000 1068 IP_FREEBIND = 0xf
1069 KEXEC_ARCH_68K = 0x40000 1069 IP_HDRINCL = 0x3
1070 KEXEC_ARCH_AARCH64 = 0xb70000 1070 IP_IPSEC_POLICY = 0x10
1071 KEXEC_ARCH_ARM = 0x280000 1071 IP_MAXPACKET = 0xffff
1072 KEXEC_ARCH_DEFAULT = 0x0 1072 IP_MAX_MEMBERSHIPS = 0x14
1073 KEXEC_ARCH_IA_64 = 0x320000 1073 IP_MF = 0x2000
1074 KEXEC_ARCH_MASK = 0xffff0000 1074 IP_MINTTL = 0x15
1075 KEXEC_ARCH_MIPS = 0x80000 1075 IP_MSFILTER = 0x29
1076 KEXEC_ARCH_MIPS_LE = 0xa0000 1076 IP_MSS = 0x240
1077 KEXEC_ARCH_PPC = 0x140000 1077 IP_MTU = 0xe
1078 KEXEC_ARCH_PPC64 = 0x150000 1078 IP_MTU_DISCOVER = 0xa
1079 KEXEC_ARCH_S390 = 0x160000 1079 IP_MULTICAST_ALL = 0x31
1080 KEXEC_ARCH_SH = 0x2a0000 1080 IP_MULTICAST_IF = 0x20
1081 KEXEC_ARCH_X86_64 = 0x3e0000 1081 IP_MULTICAST_LOOP = 0x22
1082 KEXEC_FILE_NO_INITRAMFS = 0x4 1082 IP_MULTICAST_TTL = 0x21
1083 KEXEC_FILE_ON_CRASH = 0x2 1083 IP_NODEFRAG = 0x16
1084 KEXEC_FILE_UNLOAD = 0x1 1084 IP_OFFMASK = 0x1fff
1085 KEXEC_ON_CRASH = 0x1 1085 IP_OPTIONS = 0x4
1086 KEXEC_PRESERVE_CONTEXT = 0x2 1086 IP_ORIGDSTADDR = 0x14
1087 KEXEC_SEGMENT_MAX = 0x10 1087 IP_PASSSEC = 0x12
1088 KEYCTL_ASSUME_AUTHORITY = 0x10 1088 IP_PKTINFO = 0x8
1089 KEYCTL_CHOWN = 0x4 1089 IP_PKTOPTIONS = 0x9
1090 KEYCTL_CLEAR = 0x7 1090 IP_PMTUDISC = 0xa
1091 KEYCTL_DESCRIBE = 0x6 1091 IP_PMTUDISC_DO = 0x2
1092 KEYCTL_DH_COMPUTE = 0x17 1092 IP_PMTUDISC_DONT = 0x0
1093 KEYCTL_GET_KEYRING_ID = 0x0 1093 IP_PMTUDISC_INTERFACE = 0x4
1094 KEYCTL_GET_PERSISTENT = 0x16 1094 IP_PMTUDISC_OMIT = 0x5
1095 KEYCTL_GET_SECURITY = 0x11 1095 IP_PMTUDISC_PROBE = 0x3
1096 KEYCTL_INSTANTIATE = 0xc 1096 IP_PMTUDISC_WANT = 0x1
1097 KEYCTL_INSTANTIATE_IOV = 0x14 1097 IP_RECVERR = 0xb
1098 KEYCTL_INVALIDATE = 0x15 1098 IP_RECVFRAGSIZE = 0x19
1099 KEYCTL_JOIN_SESSION_KEYRING = 0x1 1099 IP_RECVOPTS = 0x6
1100 KEYCTL_LINK = 0x8 1100 IP_RECVORIGDSTADDR = 0x14
1101 KEYCTL_NEGATE = 0xd 1101 IP_RECVRETOPTS = 0x7
1102 KEYCTL_PKEY_DECRYPT = 0x1a 1102 IP_RECVTOS = 0xd
1103 KEYCTL_PKEY_ENCRYPT = 0x19 1103 IP_RECVTTL = 0xc
1104 KEYCTL_PKEY_QUERY = 0x18 1104 IP_RETOPTS = 0x7
1105 KEYCTL_PKEY_SIGN = 0x1b 1105 IP_RF = 0x8000
1106 KEYCTL_PKEY_VERIFY = 0x1c 1106 IP_ROUTER_ALERT = 0x5
1107 KEYCTL_READ = 0xb 1107 IP_TOS = 0x1
1108 KEYCTL_REJECT = 0x13 1108 IP_TRANSPARENT = 0x13
1109 KEYCTL_RESTRICT_KEYRING = 0x1d 1109 IP_TTL = 0x2
1110 KEYCTL_REVOKE = 0x3 1110 IP_UNBLOCK_SOURCE = 0x25
1111 KEYCTL_SEARCH = 0xa 1111 IP_UNICAST_IF = 0x32
1112 KEYCTL_SESSION_TO_PARENT = 0x12 1112 IP_XFRM_POLICY = 0x11
1113 KEYCTL_SETPERM = 0x5 1113 ISIG = 0x1
1114 KEYCTL_SET_REQKEY_KEYRING = 0xe 1114 ISOFS_SUPER_MAGIC = 0x9660
1115 KEYCTL_SET_TIMEOUT = 0xf 1115 ISTRIP = 0x20
1116 KEYCTL_SUPPORTS_DECRYPT = 0x2 1116 IUCLC = 0x200
1117 KEYCTL_SUPPORTS_ENCRYPT = 0x1 1117 IUTF8 = 0x4000
1118 KEYCTL_SUPPORTS_SIGN = 0x4 1118 IXANY = 0x800
1119 KEYCTL_SUPPORTS_VERIFY = 0x8 1119 IXOFF = 0x1000
1120 KEYCTL_UNLINK = 0x9 1120 IXON = 0x400
1121 KEYCTL_UPDATE = 0x2 1121 JFFS2_SUPER_MAGIC = 0x72b6
1122 KEY_REQKEY_DEFL_DEFAULT = 0x0 1122 KEXEC_ARCH_386 = 0x30000
1123 KEY_REQKEY_DEFL_GROUP_KEYRING = 0x6 1123 KEXEC_ARCH_68K = 0x40000
1124 KEY_REQKEY_DEFL_NO_CHANGE = -0x1 1124 KEXEC_ARCH_AARCH64 = 0xb70000
1125 KEY_REQKEY_DEFL_PROCESS_KEYRING = 0x2 1125 KEXEC_ARCH_ARM = 0x280000
1126 KEY_REQKEY_DEFL_REQUESTOR_KEYRING = 0x7 1126 KEXEC_ARCH_DEFAULT = 0x0
1127 KEY_REQKEY_DEFL_SESSION_KEYRING = 0x3 1127 KEXEC_ARCH_IA_64 = 0x320000
1128 KEY_REQKEY_DEFL_THREAD_KEYRING = 0x1 1128 KEXEC_ARCH_MASK = 0xffff0000
1129 KEY_REQKEY_DEFL_USER_KEYRING = 0x4 1129 KEXEC_ARCH_MIPS = 0x80000
1130 KEY_REQKEY_DEFL_USER_SESSION_KEYRING = 0x5 1130 KEXEC_ARCH_MIPS_LE = 0xa0000
1131 KEY_SPEC_GROUP_KEYRING = -0x6 1131 KEXEC_ARCH_PARISC = 0xf0000
1132 KEY_SPEC_PROCESS_KEYRING = -0x2 1132 KEXEC_ARCH_PPC = 0x140000
1133 KEY_SPEC_REQKEY_AUTH_KEY = -0x7 1133 KEXEC_ARCH_PPC64 = 0x150000
1134 KEY_SPEC_REQUESTOR_KEYRING = -0x8 1134 KEXEC_ARCH_S390 = 0x160000
1135 KEY_SPEC_SESSION_KEYRING = -0x3 1135 KEXEC_ARCH_SH = 0x2a0000
1136 KEY_SPEC_THREAD_KEYRING = -0x1 1136 KEXEC_ARCH_X86_64 = 0x3e0000
1137 KEY_SPEC_USER_KEYRING = -0x4 1137 KEXEC_FILE_NO_INITRAMFS = 0x4
1138 KEY_SPEC_USER_SESSION_KEYRING = -0x5 1138 KEXEC_FILE_ON_CRASH = 0x2
1139 LINUX_REBOOT_CMD_CAD_OFF = 0x0 1139 KEXEC_FILE_UNLOAD = 0x1
1140 LINUX_REBOOT_CMD_CAD_ON = 0x89abcdef 1140 KEXEC_ON_CRASH = 0x1
1141 LINUX_REBOOT_CMD_HALT = 0xcdef0123 1141 KEXEC_PRESERVE_CONTEXT = 0x2
1142 LINUX_REBOOT_CMD_KEXEC = 0x45584543 1142 KEXEC_SEGMENT_MAX = 0x10
1143 LINUX_REBOOT_CMD_POWER_OFF = 0x4321fedc 1143 KEYCTL_ASSUME_AUTHORITY = 0x10
1144 LINUX_REBOOT_CMD_RESTART = 0x1234567 1144 KEYCTL_CAPABILITIES = 0x1f
1145 LINUX_REBOOT_CMD_RESTART2 = 0xa1b2c3d4 1145 KEYCTL_CAPS0_BIG_KEY = 0x10
1146 LINUX_REBOOT_CMD_SW_SUSPEND = 0xd000fce2 1146 KEYCTL_CAPS0_CAPABILITIES = 0x1
1147 LINUX_REBOOT_MAGIC1 = 0xfee1dead 1147 KEYCTL_CAPS0_DIFFIE_HELLMAN = 0x4
1148 LINUX_REBOOT_MAGIC2 = 0x28121969 1148 KEYCTL_CAPS0_INVALIDATE = 0x20
1149 LOCK_EX = 0x2 1149 KEYCTL_CAPS0_MOVE = 0x80
1150 LOCK_NB = 0x4 1150 KEYCTL_CAPS0_PERSISTENT_KEYRINGS = 0x2
1151 LOCK_SH = 0x1 1151 KEYCTL_CAPS0_PUBLIC_KEY = 0x8
1152 LOCK_UN = 0x8 1152 KEYCTL_CAPS0_RESTRICT_KEYRING = 0x40
1153 LOOP_CLR_FD = 0x4c01 1153 KEYCTL_CAPS1_NS_KEYRING_NAME = 0x1
1154 LOOP_CTL_ADD = 0x4c80 1154 KEYCTL_CAPS1_NS_KEY_TAG = 0x2
1155 LOOP_CTL_GET_FREE = 0x4c82 1155 KEYCTL_CHOWN = 0x4
1156 LOOP_CTL_REMOVE = 0x4c81 1156 KEYCTL_CLEAR = 0x7
1157 LOOP_GET_STATUS = 0x4c03 1157 KEYCTL_DESCRIBE = 0x6
1158 LOOP_GET_STATUS64 = 0x4c05 1158 KEYCTL_DH_COMPUTE = 0x17
1159 LOOP_SET_BLOCK_SIZE = 0x4c09 1159 KEYCTL_GET_KEYRING_ID = 0x0
1160 LOOP_SET_CAPACITY = 0x4c07 1160 KEYCTL_GET_PERSISTENT = 0x16
1161 LOOP_SET_DIRECT_IO = 0x4c08 1161 KEYCTL_GET_SECURITY = 0x11
1162 LOOP_SET_FD = 0x4c00 1162 KEYCTL_INSTANTIATE = 0xc
1163 LOOP_SET_STATUS = 0x4c02 1163 KEYCTL_INSTANTIATE_IOV = 0x14
1164 LOOP_SET_STATUS64 = 0x4c04 1164 KEYCTL_INVALIDATE = 0x15
1165 LO_KEY_SIZE = 0x20 1165 KEYCTL_JOIN_SESSION_KEYRING = 0x1
1166 LO_NAME_SIZE = 0x40 1166 KEYCTL_LINK = 0x8
1167 MADV_DODUMP = 0x11 1167 KEYCTL_MOVE = 0x1e
1168 MADV_DOFORK = 0xb 1168 KEYCTL_MOVE_EXCL = 0x1
1169 MADV_DONTDUMP = 0x10 1169 KEYCTL_NEGATE = 0xd
1170 MADV_DONTFORK = 0xa 1170 KEYCTL_PKEY_DECRYPT = 0x1a
1171 MADV_DONTNEED = 0x4 1171 KEYCTL_PKEY_ENCRYPT = 0x19
1172 MADV_FREE = 0x8 1172 KEYCTL_PKEY_QUERY = 0x18
1173 MADV_HUGEPAGE = 0xe 1173 KEYCTL_PKEY_SIGN = 0x1b
1174 MADV_HWPOISON = 0x64 1174 KEYCTL_PKEY_VERIFY = 0x1c
1175 MADV_KEEPONFORK = 0x13 1175 KEYCTL_READ = 0xb
1176 MADV_MERGEABLE = 0xc 1176 KEYCTL_REJECT = 0x13
1177 MADV_NOHUGEPAGE = 0xf 1177 KEYCTL_RESTRICT_KEYRING = 0x1d
1178 MADV_NORMAL = 0x0 1178 KEYCTL_REVOKE = 0x3
1179 MADV_RANDOM = 0x1 1179 KEYCTL_SEARCH = 0xa
1180 MADV_REMOVE = 0x9 1180 KEYCTL_SESSION_TO_PARENT = 0x12
1181 MADV_SEQUENTIAL = 0x2 1181 KEYCTL_SETPERM = 0x5
1182 MADV_UNMERGEABLE = 0xd 1182 KEYCTL_SET_REQKEY_KEYRING = 0xe
1183 MADV_WILLNEED = 0x3 1183 KEYCTL_SET_TIMEOUT = 0xf
1184 MADV_WIPEONFORK = 0x12 1184 KEYCTL_SUPPORTS_DECRYPT = 0x2
1185 MAP_ANON = 0x800 1185 KEYCTL_SUPPORTS_ENCRYPT = 0x1
1186 MAP_ANONYMOUS = 0x800 1186 KEYCTL_SUPPORTS_SIGN = 0x4
1187 MAP_DENYWRITE = 0x2000 1187 KEYCTL_SUPPORTS_VERIFY = 0x8
1188 MAP_EXECUTABLE = 0x4000 1188 KEYCTL_UNLINK = 0x9
1189 MAP_FILE = 0x0 1189 KEYCTL_UPDATE = 0x2
1190 MAP_FIXED = 0x10 1190 KEY_REQKEY_DEFL_DEFAULT = 0x0
1191 MAP_FIXED_NOREPLACE = 0x100000 1191 KEY_REQKEY_DEFL_GROUP_KEYRING = 0x6
1192 MAP_GROWSDOWN = 0x1000 1192 KEY_REQKEY_DEFL_NO_CHANGE = -0x1
1193 MAP_HUGETLB = 0x80000 1193 KEY_REQKEY_DEFL_PROCESS_KEYRING = 0x2
1194 MAP_HUGE_MASK = 0x3f 1194 KEY_REQKEY_DEFL_REQUESTOR_KEYRING = 0x7
1195 MAP_HUGE_SHIFT = 0x1a 1195 KEY_REQKEY_DEFL_SESSION_KEYRING = 0x3
1196 MAP_LOCKED = 0x8000 1196 KEY_REQKEY_DEFL_THREAD_KEYRING = 0x1
1197 MAP_NONBLOCK = 0x20000 1197 KEY_REQKEY_DEFL_USER_KEYRING = 0x4
1198 MAP_NORESERVE = 0x400 1198 KEY_REQKEY_DEFL_USER_SESSION_KEYRING = 0x5
1199 MAP_POPULATE = 0x10000 1199 KEY_SPEC_GROUP_KEYRING = -0x6
1200 MAP_PRIVATE = 0x2 1200 KEY_SPEC_PROCESS_KEYRING = -0x2
1201 MAP_RENAME = 0x800 1201 KEY_SPEC_REQKEY_AUTH_KEY = -0x7
1202 MAP_SHARED = 0x1 1202 KEY_SPEC_REQUESTOR_KEYRING = -0x8
1203 MAP_SHARED_VALIDATE = 0x3 1203 KEY_SPEC_SESSION_KEYRING = -0x3
1204 MAP_STACK = 0x40000 1204 KEY_SPEC_THREAD_KEYRING = -0x1
1205 MAP_TYPE = 0xf 1205 KEY_SPEC_USER_KEYRING = -0x4
1206 MCAST_BLOCK_SOURCE = 0x2b 1206 KEY_SPEC_USER_SESSION_KEYRING = -0x5
1207 MCAST_EXCLUDE = 0x0 1207 LINUX_REBOOT_CMD_CAD_OFF = 0x0
1208 MCAST_INCLUDE = 0x1 1208 LINUX_REBOOT_CMD_CAD_ON = 0x89abcdef
1209 MCAST_JOIN_GROUP = 0x2a 1209 LINUX_REBOOT_CMD_HALT = 0xcdef0123
1210 MCAST_JOIN_SOURCE_GROUP = 0x2e 1210 LINUX_REBOOT_CMD_KEXEC = 0x45584543
1211 MCAST_LEAVE_GROUP = 0x2d 1211 LINUX_REBOOT_CMD_POWER_OFF = 0x4321fedc
1212 MCAST_LEAVE_SOURCE_GROUP = 0x2f 1212 LINUX_REBOOT_CMD_RESTART = 0x1234567
1213 MCAST_MSFILTER = 0x30 1213 LINUX_REBOOT_CMD_RESTART2 = 0xa1b2c3d4
1214 MCAST_UNBLOCK_SOURCE = 0x2c 1214 LINUX_REBOOT_CMD_SW_SUSPEND = 0xd000fce2
1215 MCL_CURRENT = 0x1 1215 LINUX_REBOOT_MAGIC1 = 0xfee1dead
1216 MCL_FUTURE = 0x2 1216 LINUX_REBOOT_MAGIC2 = 0x28121969
1217 MCL_ONFAULT = 0x4 1217 LOCK_EX = 0x2
1218 MFD_ALLOW_SEALING = 0x2 1218 LOCK_NB = 0x4
1219 MFD_CLOEXEC = 0x1 1219 LOCK_SH = 0x1
1220 MFD_HUGETLB = 0x4 1220 LOCK_UN = 0x8
1221 MFD_HUGE_16GB = -0x78000000 1221 LOOP_CLR_FD = 0x4c01
1222 MFD_HUGE_16MB = 0x60000000 1222 LOOP_CTL_ADD = 0x4c80
1223 MFD_HUGE_1GB = 0x78000000 1223 LOOP_CTL_GET_FREE = 0x4c82
1224 MFD_HUGE_1MB = 0x50000000 1224 LOOP_CTL_REMOVE = 0x4c81
1225 MFD_HUGE_256MB = 0x70000000 1225 LOOP_GET_STATUS = 0x4c03
1226 MFD_HUGE_2GB = 0x7c000000 1226 LOOP_GET_STATUS64 = 0x4c05
1227 MFD_HUGE_2MB = 0x54000000 1227 LOOP_SET_BLOCK_SIZE = 0x4c09
1228 MFD_HUGE_32MB = 0x64000000 1228 LOOP_SET_CAPACITY = 0x4c07
1229 MFD_HUGE_512KB = 0x4c000000 1229 LOOP_SET_DIRECT_IO = 0x4c08
1230 MFD_HUGE_512MB = 0x74000000 1230 LOOP_SET_FD = 0x4c00
1231 MFD_HUGE_64KB = 0x40000000 1231 LOOP_SET_STATUS = 0x4c02
1232 MFD_HUGE_8MB = 0x5c000000 1232 LOOP_SET_STATUS64 = 0x4c04
1233 MFD_HUGE_MASK = 0x3f 1233 LO_KEY_SIZE = 0x20
1234 MFD_HUGE_SHIFT = 0x1a 1234 LO_NAME_SIZE = 0x40
1235 MINIX2_SUPER_MAGIC = 0x2468 1235 MADV_COLD = 0x14
1236 MINIX2_SUPER_MAGIC2 = 0x2478 1236 MADV_DODUMP = 0x11
1237 MINIX3_SUPER_MAGIC = 0x4d5a 1237 MADV_DOFORK = 0xb
1238 MINIX_SUPER_MAGIC = 0x137f 1238 MADV_DONTDUMP = 0x10
1239 MINIX_SUPER_MAGIC2 = 0x138f 1239 MADV_DONTFORK = 0xa
1240 MNT_DETACH = 0x2 1240 MADV_DONTNEED = 0x4
1241 MNT_EXPIRE = 0x4 1241 MADV_FREE = 0x8
1242 MNT_FORCE = 0x1 1242 MADV_HUGEPAGE = 0xe
1243 MODULE_INIT_IGNORE_MODVERSIONS = 0x1 1243 MADV_HWPOISON = 0x64
1244 MODULE_INIT_IGNORE_VERMAGIC = 0x2 1244 MADV_KEEPONFORK = 0x13
1245 MSDOS_SUPER_MAGIC = 0x4d44 1245 MADV_MERGEABLE = 0xc
1246 MSG_BATCH = 0x40000 1246 MADV_NOHUGEPAGE = 0xf
1247 MSG_CMSG_CLOEXEC = 0x40000000 1247 MADV_NORMAL = 0x0
1248 MSG_CONFIRM = 0x800 1248 MADV_PAGEOUT = 0x15
1249 MSG_CTRUNC = 0x8 1249 MADV_RANDOM = 0x1
1250 MSG_DONTROUTE = 0x4 1250 MADV_REMOVE = 0x9
1251 MSG_DONTWAIT = 0x40 1251 MADV_SEQUENTIAL = 0x2
1252 MSG_EOR = 0x80 1252 MADV_UNMERGEABLE = 0xd
1253 MSG_ERRQUEUE = 0x2000 1253 MADV_WILLNEED = 0x3
1254 MSG_FASTOPEN = 0x20000000 1254 MADV_WIPEONFORK = 0x12
1255 MSG_FIN = 0x200 1255 MAP_ANON = 0x800
1256 MSG_MORE = 0x8000 1256 MAP_ANONYMOUS = 0x800
1257 MSG_NOSIGNAL = 0x4000 1257 MAP_DENYWRITE = 0x2000
1258 MSG_OOB = 0x1 1258 MAP_EXECUTABLE = 0x4000
1259 MSG_PEEK = 0x2 1259 MAP_FILE = 0x0
1260 MSG_PROXY = 0x10 1260 MAP_FIXED = 0x10
1261 MSG_RST = 0x1000 1261 MAP_FIXED_NOREPLACE = 0x100000
1262 MSG_SYN = 0x400 1262 MAP_GROWSDOWN = 0x1000
1263 MSG_TRUNC = 0x20 1263 MAP_HUGETLB = 0x80000
1264 MSG_TRYHARD = 0x4 1264 MAP_HUGE_MASK = 0x3f
1265 MSG_WAITALL = 0x100 1265 MAP_HUGE_SHIFT = 0x1a
1266 MSG_WAITFORONE = 0x10000 1266 MAP_LOCKED = 0x8000
1267 MSG_ZEROCOPY = 0x4000000 1267 MAP_NONBLOCK = 0x20000
1268 MS_ACTIVE = 0x40000000 1268 MAP_NORESERVE = 0x400
1269 MS_ASYNC = 0x1 1269 MAP_POPULATE = 0x10000
1270 MS_BIND = 0x1000 1270 MAP_PRIVATE = 0x2
1271 MS_BORN = 0x20000000 1271 MAP_RENAME = 0x800
1272 MS_DIRSYNC = 0x80 1272 MAP_SHARED = 0x1
1273 MS_INVALIDATE = 0x2 1273 MAP_SHARED_VALIDATE = 0x3
1274 MS_I_VERSION = 0x800000 1274 MAP_STACK = 0x40000
1275 MS_KERNMOUNT = 0x400000 1275 MAP_TYPE = 0xf
1276 MS_LAZYTIME = 0x2000000 1276 MCAST_BLOCK_SOURCE = 0x2b
1277 MS_MANDLOCK = 0x40 1277 MCAST_EXCLUDE = 0x0
1278 MS_MGC_MSK = 0xffff0000 1278 MCAST_INCLUDE = 0x1
1279 MS_MGC_VAL = 0xc0ed0000 1279 MCAST_JOIN_GROUP = 0x2a
1280 MS_MOVE = 0x2000 1280 MCAST_JOIN_SOURCE_GROUP = 0x2e
1281 MS_NOATIME = 0x400 1281 MCAST_LEAVE_GROUP = 0x2d
1282 MS_NODEV = 0x4 1282 MCAST_LEAVE_SOURCE_GROUP = 0x2f
1283 MS_NODIRATIME = 0x800 1283 MCAST_MSFILTER = 0x30
1284 MS_NOEXEC = 0x8 1284 MCAST_UNBLOCK_SOURCE = 0x2c
1285 MS_NOREMOTELOCK = 0x8000000 1285 MCL_CURRENT = 0x1
1286 MS_NOSEC = 0x10000000 1286 MCL_FUTURE = 0x2
1287 MS_NOSUID = 0x2 1287 MCL_ONFAULT = 0x4
1288 MS_NOUSER = -0x80000000 1288 MFD_ALLOW_SEALING = 0x2
1289 MS_POSIXACL = 0x10000 1289 MFD_CLOEXEC = 0x1
1290 MS_PRIVATE = 0x40000 1290 MFD_HUGETLB = 0x4
1291 MS_RDONLY = 0x1 1291 MFD_HUGE_16GB = -0x78000000
1292 MS_REC = 0x4000 1292 MFD_HUGE_16MB = 0x60000000
1293 MS_RELATIME = 0x200000 1293 MFD_HUGE_1GB = 0x78000000
1294 MS_REMOUNT = 0x20 1294 MFD_HUGE_1MB = 0x50000000
1295 MS_RMT_MASK = 0x2800051 1295 MFD_HUGE_256MB = 0x70000000
1296 MS_SHARED = 0x100000 1296 MFD_HUGE_2GB = 0x7c000000
1297 MS_SILENT = 0x8000 1297 MFD_HUGE_2MB = 0x54000000
1298 MS_SLAVE = 0x80000 1298 MFD_HUGE_32MB = 0x64000000
1299 MS_STRICTATIME = 0x1000000 1299 MFD_HUGE_512KB = 0x4c000000
1300 MS_SUBMOUNT = 0x4000000 1300 MFD_HUGE_512MB = 0x74000000
1301 MS_SYNC = 0x4 1301 MFD_HUGE_64KB = 0x40000000
1302 MS_SYNCHRONOUS = 0x10 1302 MFD_HUGE_8MB = 0x5c000000
1303 MS_UNBINDABLE = 0x20000 1303 MFD_HUGE_MASK = 0x3f
1304 MS_VERBOSE = 0x8000 1304 MFD_HUGE_SHIFT = 0x1a
1305 MTD_INODE_FS_MAGIC = 0x11307854 1305 MINIX2_SUPER_MAGIC = 0x2468
1306 NAME_MAX = 0xff 1306 MINIX2_SUPER_MAGIC2 = 0x2478
1307 NCP_SUPER_MAGIC = 0x564c 1307 MINIX3_SUPER_MAGIC = 0x4d5a
1308 NETLINK_ADD_MEMBERSHIP = 0x1 1308 MINIX_SUPER_MAGIC = 0x137f
1309 NETLINK_AUDIT = 0x9 1309 MINIX_SUPER_MAGIC2 = 0x138f
1310 NETLINK_BROADCAST_ERROR = 0x4 1310 MNT_DETACH = 0x2
1311 NETLINK_CAP_ACK = 0xa 1311 MNT_EXPIRE = 0x4
1312 NETLINK_CONNECTOR = 0xb 1312 MNT_FORCE = 0x1
1313 NETLINK_CRYPTO = 0x15 1313 MODULE_INIT_IGNORE_MODVERSIONS = 0x1
1314 NETLINK_DNRTMSG = 0xe 1314 MODULE_INIT_IGNORE_VERMAGIC = 0x2
1315 NETLINK_DROP_MEMBERSHIP = 0x2 1315 MSDOS_SUPER_MAGIC = 0x4d44
1316 NETLINK_ECRYPTFS = 0x13 1316 MSG_BATCH = 0x40000
1317 NETLINK_EXT_ACK = 0xb 1317 MSG_CMSG_CLOEXEC = 0x40000000
1318 NETLINK_FIB_LOOKUP = 0xa 1318 MSG_CONFIRM = 0x800
1319 NETLINK_FIREWALL = 0x3 1319 MSG_CTRUNC = 0x8
1320 NETLINK_GENERIC = 0x10 1320 MSG_DONTROUTE = 0x4
1321 NETLINK_GET_STRICT_CHK = 0xc 1321 MSG_DONTWAIT = 0x40
1322 NETLINK_INET_DIAG = 0x4 1322 MSG_EOR = 0x80
1323 NETLINK_IP6_FW = 0xd 1323 MSG_ERRQUEUE = 0x2000
1324 NETLINK_ISCSI = 0x8 1324 MSG_FASTOPEN = 0x20000000
1325 NETLINK_KOBJECT_UEVENT = 0xf 1325 MSG_FIN = 0x200
1326 NETLINK_LISTEN_ALL_NSID = 0x8 1326 MSG_MORE = 0x8000
1327 NETLINK_LIST_MEMBERSHIPS = 0x9 1327 MSG_NOSIGNAL = 0x4000
1328 NETLINK_NETFILTER = 0xc 1328 MSG_OOB = 0x1
1329 NETLINK_NFLOG = 0x5 1329 MSG_PEEK = 0x2
1330 NETLINK_NO_ENOBUFS = 0x5 1330 MSG_PROXY = 0x10
1331 NETLINK_PKTINFO = 0x3 1331 MSG_RST = 0x1000
1332 NETLINK_RDMA = 0x14 1332 MSG_SYN = 0x400
1333 NETLINK_ROUTE = 0x0 1333 MSG_TRUNC = 0x20
1334 NETLINK_RX_RING = 0x6 1334 MSG_TRYHARD = 0x4
1335 NETLINK_SCSITRANSPORT = 0x12 1335 MSG_WAITALL = 0x100
1336 NETLINK_SELINUX = 0x7 1336 MSG_WAITFORONE = 0x10000
1337 NETLINK_SMC = 0x16 1337 MSG_ZEROCOPY = 0x4000000
1338 NETLINK_SOCK_DIAG = 0x4 1338 MS_ACTIVE = 0x40000000
1339 NETLINK_TX_RING = 0x7 1339 MS_ASYNC = 0x1
1340 NETLINK_UNUSED = 0x1 1340 MS_BIND = 0x1000
1341 NETLINK_USERSOCK = 0x2 1341 MS_BORN = 0x20000000
1342 NETLINK_XFRM = 0x6 1342 MS_DIRSYNC = 0x80
1343 NETNSA_MAX = 0x5 1343 MS_INVALIDATE = 0x2
1344 NETNSA_NSID_NOT_ASSIGNED = -0x1 1344 MS_I_VERSION = 0x800000
1345 NFNETLINK_V0 = 0x0 1345 MS_KERNMOUNT = 0x400000
1346 NFNLGRP_ACCT_QUOTA = 0x8 1346 MS_LAZYTIME = 0x2000000
1347 NFNLGRP_CONNTRACK_DESTROY = 0x3 1347 MS_MANDLOCK = 0x40
1348 NFNLGRP_CONNTRACK_EXP_DESTROY = 0x6 1348 MS_MGC_MSK = 0xffff0000
1349 NFNLGRP_CONNTRACK_EXP_NEW = 0x4 1349 MS_MGC_VAL = 0xc0ed0000
1350 NFNLGRP_CONNTRACK_EXP_UPDATE = 0x5 1350 MS_MOVE = 0x2000
1351 NFNLGRP_CONNTRACK_NEW = 0x1 1351 MS_NOATIME = 0x400
1352 NFNLGRP_CONNTRACK_UPDATE = 0x2 1352 MS_NODEV = 0x4
1353 NFNLGRP_MAX = 0x9 1353 MS_NODIRATIME = 0x800
1354 NFNLGRP_NFTABLES = 0x7 1354 MS_NOEXEC = 0x8
1355 NFNLGRP_NFTRACE = 0x9 1355 MS_NOREMOTELOCK = 0x8000000
1356 NFNLGRP_NONE = 0x0 1356 MS_NOSEC = 0x10000000
1357 NFNL_BATCH_MAX = 0x1 1357 MS_NOSUID = 0x2
1358 NFNL_MSG_BATCH_BEGIN = 0x10 1358 MS_NOUSER = -0x80000000
1359 NFNL_MSG_BATCH_END = 0x11 1359 MS_POSIXACL = 0x10000
1360 NFNL_NFA_NEST = 0x8000 1360 MS_PRIVATE = 0x40000
1361 NFNL_SUBSYS_ACCT = 0x7 1361 MS_RDONLY = 0x1
1362 NFNL_SUBSYS_COUNT = 0xc 1362 MS_REC = 0x4000
1363 NFNL_SUBSYS_CTHELPER = 0x9 1363 MS_RELATIME = 0x200000
1364 NFNL_SUBSYS_CTNETLINK = 0x1 1364 MS_REMOUNT = 0x20
1365 NFNL_SUBSYS_CTNETLINK_EXP = 0x2 1365 MS_RMT_MASK = 0x2800051
1366 NFNL_SUBSYS_CTNETLINK_TIMEOUT = 0x8 1366 MS_SHARED = 0x100000
1367 NFNL_SUBSYS_IPSET = 0x6 1367 MS_SILENT = 0x8000
1368 NFNL_SUBSYS_NFTABLES = 0xa 1368 MS_SLAVE = 0x80000
1369 NFNL_SUBSYS_NFT_COMPAT = 0xb 1369 MS_STRICTATIME = 0x1000000
1370 NFNL_SUBSYS_NONE = 0x0 1370 MS_SUBMOUNT = 0x4000000
1371 NFNL_SUBSYS_OSF = 0x5 1371 MS_SYNC = 0x4
1372 NFNL_SUBSYS_QUEUE = 0x3 1372 MS_SYNCHRONOUS = 0x10
1373 NFNL_SUBSYS_ULOG = 0x4 1373 MS_UNBINDABLE = 0x20000
1374 NFS_SUPER_MAGIC = 0x6969 1374 MS_VERBOSE = 0x8000
1375 NILFS_SUPER_MAGIC = 0x3434 1375 MTD_INODE_FS_MAGIC = 0x11307854
1376 NL0 = 0x0 1376 NAME_MAX = 0xff
1377 NL1 = 0x100 1377 NCP_SUPER_MAGIC = 0x564c
1378 NLA_ALIGNTO = 0x4 1378 NETLINK_ADD_MEMBERSHIP = 0x1
1379 NLA_F_NESTED = 0x8000 1379 NETLINK_AUDIT = 0x9
1380 NLA_F_NET_BYTEORDER = 0x4000 1380 NETLINK_BROADCAST_ERROR = 0x4
1381 NLA_HDRLEN = 0x4 1381 NETLINK_CAP_ACK = 0xa
1382 NLDLY = 0x100 1382 NETLINK_CONNECTOR = 0xb
1383 NLMSG_ALIGNTO = 0x4 1383 NETLINK_CRYPTO = 0x15
1384 NLMSG_DONE = 0x3 1384 NETLINK_DNRTMSG = 0xe
1385 NLMSG_ERROR = 0x2 1385 NETLINK_DROP_MEMBERSHIP = 0x2
1386 NLMSG_HDRLEN = 0x10 1386 NETLINK_ECRYPTFS = 0x13
1387 NLMSG_MIN_TYPE = 0x10 1387 NETLINK_EXT_ACK = 0xb
1388 NLMSG_NOOP = 0x1 1388 NETLINK_FIB_LOOKUP = 0xa
1389 NLMSG_OVERRUN = 0x4 1389 NETLINK_FIREWALL = 0x3
1390 NLM_F_ACK = 0x4 1390 NETLINK_GENERIC = 0x10
1391 NLM_F_ACK_TLVS = 0x200 1391 NETLINK_GET_STRICT_CHK = 0xc
1392 NLM_F_APPEND = 0x800 1392 NETLINK_INET_DIAG = 0x4
1393 NLM_F_ATOMIC = 0x400 1393 NETLINK_IP6_FW = 0xd
1394 NLM_F_CAPPED = 0x100 1394 NETLINK_ISCSI = 0x8
1395 NLM_F_CREATE = 0x400 1395 NETLINK_KOBJECT_UEVENT = 0xf
1396 NLM_F_DUMP = 0x300 1396 NETLINK_LISTEN_ALL_NSID = 0x8
1397 NLM_F_DUMP_FILTERED = 0x20 1397 NETLINK_LIST_MEMBERSHIPS = 0x9
1398 NLM_F_DUMP_INTR = 0x10 1398 NETLINK_NETFILTER = 0xc
1399 NLM_F_ECHO = 0x8 1399 NETLINK_NFLOG = 0x5
1400 NLM_F_EXCL = 0x200 1400 NETLINK_NO_ENOBUFS = 0x5
1401 NLM_F_MATCH = 0x200 1401 NETLINK_PKTINFO = 0x3
1402 NLM_F_MULTI = 0x2 1402 NETLINK_RDMA = 0x14
1403 NLM_F_NONREC = 0x100 1403 NETLINK_ROUTE = 0x0
1404 NLM_F_REPLACE = 0x100 1404 NETLINK_RX_RING = 0x6
1405 NLM_F_REQUEST = 0x1 1405 NETLINK_SCSITRANSPORT = 0x12
1406 NLM_F_ROOT = 0x100 1406 NETLINK_SELINUX = 0x7
1407 NOFLSH = 0x80 1407 NETLINK_SMC = 0x16
1408 NSFS_MAGIC = 0x6e736673 1408 NETLINK_SOCK_DIAG = 0x4
1409 NS_GET_NSTYPE = 0x2000b703 1409 NETLINK_TX_RING = 0x7
1410 NS_GET_OWNER_UID = 0x2000b704 1410 NETLINK_UNUSED = 0x1
1411 NS_GET_PARENT = 0x2000b702 1411 NETLINK_USERSOCK = 0x2
1412 NS_GET_USERNS = 0x2000b701 1412 NETLINK_XFRM = 0x6
1413 OCFS2_SUPER_MAGIC = 0x7461636f 1413 NETNSA_MAX = 0x5
1414 OCRNL = 0x8 1414 NETNSA_NSID_NOT_ASSIGNED = -0x1
1415 OFDEL = 0x80 1415 NFDBITS = 0x20
1416 OFILL = 0x40 1416 NFNETLINK_V0 = 0x0
1417 OLCUC = 0x2 1417 NFNLGRP_ACCT_QUOTA = 0x8
1418 ONLCR = 0x4 1418 NFNLGRP_CONNTRACK_DESTROY = 0x3
1419 ONLRET = 0x20 1419 NFNLGRP_CONNTRACK_EXP_DESTROY = 0x6
1420 ONOCR = 0x10 1420 NFNLGRP_CONNTRACK_EXP_NEW = 0x4
1421 OPENPROM_SUPER_MAGIC = 0x9fa1 1421 NFNLGRP_CONNTRACK_EXP_UPDATE = 0x5
1422 OPOST = 0x1 1422 NFNLGRP_CONNTRACK_NEW = 0x1
1423 OVERLAYFS_SUPER_MAGIC = 0x794c7630 1423 NFNLGRP_CONNTRACK_UPDATE = 0x2
1424 O_ACCMODE = 0x3 1424 NFNLGRP_MAX = 0x9
1425 O_APPEND = 0x8 1425 NFNLGRP_NFTABLES = 0x7
1426 O_ASYNC = 0x1000 1426 NFNLGRP_NFTRACE = 0x9
1427 O_CLOEXEC = 0x80000 1427 NFNLGRP_NONE = 0x0
1428 O_CREAT = 0x100 1428 NFNL_BATCH_MAX = 0x1
1429 O_DIRECT = 0x8000 1429 NFNL_MSG_BATCH_BEGIN = 0x10
1430 O_DIRECTORY = 0x10000 1430 NFNL_MSG_BATCH_END = 0x11
1431 O_DSYNC = 0x10 1431 NFNL_NFA_NEST = 0x8000
1432 O_EXCL = 0x400 1432 NFNL_SUBSYS_ACCT = 0x7
1433 O_FSYNC = 0x4010 1433 NFNL_SUBSYS_COUNT = 0xc
1434 O_LARGEFILE = 0x2000 1434 NFNL_SUBSYS_CTHELPER = 0x9
1435 O_NDELAY = 0x80 1435 NFNL_SUBSYS_CTNETLINK = 0x1
1436 O_NOATIME = 0x40000 1436 NFNL_SUBSYS_CTNETLINK_EXP = 0x2
1437 O_NOCTTY = 0x800 1437 NFNL_SUBSYS_CTNETLINK_TIMEOUT = 0x8
1438 O_NOFOLLOW = 0x20000 1438 NFNL_SUBSYS_IPSET = 0x6
1439 O_NONBLOCK = 0x80 1439 NFNL_SUBSYS_NFTABLES = 0xa
1440 O_PATH = 0x200000 1440 NFNL_SUBSYS_NFT_COMPAT = 0xb
1441 O_RDONLY = 0x0 1441 NFNL_SUBSYS_NONE = 0x0
1442 O_RDWR = 0x2 1442 NFNL_SUBSYS_OSF = 0x5
1443 O_RSYNC = 0x4010 1443 NFNL_SUBSYS_QUEUE = 0x3
1444 O_SYNC = 0x4010 1444 NFNL_SUBSYS_ULOG = 0x4
1445 O_TMPFILE = 0x410000 1445 NFS_SUPER_MAGIC = 0x6969
1446 O_TRUNC = 0x200 1446 NILFS_SUPER_MAGIC = 0x3434
1447 O_WRONLY = 0x1 1447 NL0 = 0x0
1448 PACKET_ADD_MEMBERSHIP = 0x1 1448 NL1 = 0x100
1449 PACKET_AUXDATA = 0x8 1449 NLA_ALIGNTO = 0x4
1450 PACKET_BROADCAST = 0x1 1450 NLA_F_NESTED = 0x8000
1451 PACKET_COPY_THRESH = 0x7 1451 NLA_F_NET_BYTEORDER = 0x4000
1452 PACKET_DROP_MEMBERSHIP = 0x2 1452 NLA_HDRLEN = 0x4
1453 PACKET_FANOUT = 0x12 1453 NLDLY = 0x100
1454 PACKET_FANOUT_CBPF = 0x6 1454 NLMSG_ALIGNTO = 0x4
1455 PACKET_FANOUT_CPU = 0x2 1455 NLMSG_DONE = 0x3
1456 PACKET_FANOUT_DATA = 0x16 1456 NLMSG_ERROR = 0x2
1457 PACKET_FANOUT_EBPF = 0x7 1457 NLMSG_HDRLEN = 0x10
1458 PACKET_FANOUT_FLAG_DEFRAG = 0x8000 1458 NLMSG_MIN_TYPE = 0x10
1459 PACKET_FANOUT_FLAG_ROLLOVER = 0x1000 1459 NLMSG_NOOP = 0x1
1460 PACKET_FANOUT_FLAG_UNIQUEID = 0x2000 1460 NLMSG_OVERRUN = 0x4
1461 PACKET_FANOUT_HASH = 0x0 1461 NLM_F_ACK = 0x4
1462 PACKET_FANOUT_LB = 0x1 1462 NLM_F_ACK_TLVS = 0x200
1463 PACKET_FANOUT_QM = 0x5 1463 NLM_F_APPEND = 0x800
1464 PACKET_FANOUT_RND = 0x4 1464 NLM_F_ATOMIC = 0x400
1465 PACKET_FANOUT_ROLLOVER = 0x3 1465 NLM_F_CAPPED = 0x100
1466 PACKET_FASTROUTE = 0x6 1466 NLM_F_CREATE = 0x400
1467 PACKET_HDRLEN = 0xb 1467 NLM_F_DUMP = 0x300
1468 PACKET_HOST = 0x0 1468 NLM_F_DUMP_FILTERED = 0x20
1469 PACKET_IGNORE_OUTGOING = 0x17 1469 NLM_F_DUMP_INTR = 0x10
1470 PACKET_KERNEL = 0x7 1470 NLM_F_ECHO = 0x8
1471 PACKET_LOOPBACK = 0x5 1471 NLM_F_EXCL = 0x200
1472 PACKET_LOSS = 0xe 1472 NLM_F_MATCH = 0x200
1473 PACKET_MR_ALLMULTI = 0x2 1473 NLM_F_MULTI = 0x2
1474 PACKET_MR_MULTICAST = 0x0 1474 NLM_F_NONREC = 0x100
1475 PACKET_MR_PROMISC = 0x1 1475 NLM_F_REPLACE = 0x100
1476 PACKET_MR_UNICAST = 0x3 1476 NLM_F_REQUEST = 0x1
1477 PACKET_MULTICAST = 0x2 1477 NLM_F_ROOT = 0x100
1478 PACKET_ORIGDEV = 0x9 1478 NOFLSH = 0x80
1479 PACKET_OTHERHOST = 0x3 1479 NSFS_MAGIC = 0x6e736673
1480 PACKET_OUTGOING = 0x4 1480 NS_GET_NSTYPE = 0x2000b703
1481 PACKET_QDISC_BYPASS = 0x14 1481 NS_GET_OWNER_UID = 0x2000b704
1482 PACKET_RECV_OUTPUT = 0x3 1482 NS_GET_PARENT = 0x2000b702
1483 PACKET_RESERVE = 0xc 1483 NS_GET_USERNS = 0x2000b701
1484 PACKET_ROLLOVER_STATS = 0x15 1484 OCFS2_SUPER_MAGIC = 0x7461636f
1485 PACKET_RX_RING = 0x5 1485 OCRNL = 0x8
1486 PACKET_STATISTICS = 0x6 1486 OFDEL = 0x80
1487 PACKET_TIMESTAMP = 0x11 1487 OFILL = 0x40
1488 PACKET_TX_HAS_OFF = 0x13 1488 OLCUC = 0x2
1489 PACKET_TX_RING = 0xd 1489 ONLCR = 0x4
1490 PACKET_TX_TIMESTAMP = 0x10 1490 ONLRET = 0x20
1491 PACKET_USER = 0x6 1491 ONOCR = 0x10
1492 PACKET_VERSION = 0xa 1492 OPENPROM_SUPER_MAGIC = 0x9fa1
1493 PACKET_VNET_HDR = 0xf 1493 OPOST = 0x1
1494 PARENB = 0x100 1494 OVERLAYFS_SUPER_MAGIC = 0x794c7630
1495 PARITY_CRC16_PR0 = 0x2 1495 O_ACCMODE = 0x3
1496 PARITY_CRC16_PR0_CCITT = 0x4 1496 O_APPEND = 0x8
1497 PARITY_CRC16_PR1 = 0x3 1497 O_ASYNC = 0x1000
1498 PARITY_CRC16_PR1_CCITT = 0x5 1498 O_CLOEXEC = 0x80000
1499 PARITY_CRC32_PR0_CCITT = 0x6 1499 O_CREAT = 0x100
1500 PARITY_CRC32_PR1_CCITT = 0x7 1500 O_DIRECT = 0x8000
1501 PARITY_DEFAULT = 0x0 1501 O_DIRECTORY = 0x10000
1502 PARITY_NONE = 0x1 1502 O_DSYNC = 0x10
1503 PARMRK = 0x8 1503 O_EXCL = 0x400
1504 PARODD = 0x200 1504 O_FSYNC = 0x4010
1505 PENDIN = 0x4000 1505 O_LARGEFILE = 0x2000
1506 PERF_EVENT_IOC_DISABLE = 0x20002401 1506 O_NDELAY = 0x80
1507 PERF_EVENT_IOC_ENABLE = 0x20002400 1507 O_NOATIME = 0x40000
1508 PERF_EVENT_IOC_ID = 0x40042407 1508 O_NOCTTY = 0x800
1509 PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x8004240b 1509 O_NOFOLLOW = 0x20000
1510 PERF_EVENT_IOC_PAUSE_OUTPUT = 0x80042409 1510 O_NONBLOCK = 0x80
1511 PERF_EVENT_IOC_PERIOD = 0x80082404 1511 O_PATH = 0x200000
1512 PERF_EVENT_IOC_QUERY_BPF = 0xc004240a 1512 O_RDONLY = 0x0
1513 PERF_EVENT_IOC_REFRESH = 0x20002402 1513 O_RDWR = 0x2
1514 PERF_EVENT_IOC_RESET = 0x20002403 1514 O_RSYNC = 0x4010
1515 PERF_EVENT_IOC_SET_BPF = 0x80042408 1515 O_SYNC = 0x4010
1516 PERF_EVENT_IOC_SET_FILTER = 0x80042406 1516 O_TMPFILE = 0x410000
1517 PERF_EVENT_IOC_SET_OUTPUT = 0x20002405 1517 O_TRUNC = 0x200
1518 PIPEFS_MAGIC = 0x50495045 1518 O_WRONLY = 0x1
1519 PPPIOCATTACH = 0x8004743d 1519 PACKET_ADD_MEMBERSHIP = 0x1
1520 PPPIOCATTCHAN = 0x80047438 1520 PACKET_AUXDATA = 0x8
1521 PPPIOCCONNECT = 0x8004743a 1521 PACKET_BROADCAST = 0x1
1522 PPPIOCDETACH = 0x8004743c 1522 PACKET_COPY_THRESH = 0x7
1523 PPPIOCDISCONN = 0x20007439 1523 PACKET_DROP_MEMBERSHIP = 0x2
1524 PPPIOCGASYNCMAP = 0x40047458 1524 PACKET_FANOUT = 0x12
1525 PPPIOCGCHAN = 0x40047437 1525 PACKET_FANOUT_CBPF = 0x6
1526 PPPIOCGDEBUG = 0x40047441 1526 PACKET_FANOUT_CPU = 0x2
1527 PPPIOCGFLAGS = 0x4004745a 1527 PACKET_FANOUT_DATA = 0x16
1528 PPPIOCGIDLE = 0x4008743f 1528 PACKET_FANOUT_EBPF = 0x7
1529 PPPIOCGL2TPSTATS = 0x40487436 1529 PACKET_FANOUT_FLAG_DEFRAG = 0x8000
1530 PPPIOCGMRU = 0x40047453 1530 PACKET_FANOUT_FLAG_ROLLOVER = 0x1000
1531 PPPIOCGNPMODE = 0xc008744c 1531 PACKET_FANOUT_FLAG_UNIQUEID = 0x2000
1532 PPPIOCGRASYNCMAP = 0x40047455 1532 PACKET_FANOUT_HASH = 0x0
1533 PPPIOCGUNIT = 0x40047456 1533 PACKET_FANOUT_LB = 0x1
1534 PPPIOCGXASYNCMAP = 0x40207450 1534 PACKET_FANOUT_QM = 0x5
1535 PPPIOCNEWUNIT = 0xc004743e 1535 PACKET_FANOUT_RND = 0x4
1536 PPPIOCSACTIVE = 0x80087446 1536 PACKET_FANOUT_ROLLOVER = 0x3
1537 PPPIOCSASYNCMAP = 0x80047457 1537 PACKET_FASTROUTE = 0x6
1538 PPPIOCSCOMPRESS = 0x800c744d 1538 PACKET_HDRLEN = 0xb
1539 PPPIOCSDEBUG = 0x80047440 1539 PACKET_HOST = 0x0
1540 PPPIOCSFLAGS = 0x80047459 1540 PACKET_IGNORE_OUTGOING = 0x17
1541 PPPIOCSMAXCID = 0x80047451 1541 PACKET_KERNEL = 0x7
1542 PPPIOCSMRRU = 0x8004743b 1542 PACKET_LOOPBACK = 0x5
1543 PPPIOCSMRU = 0x80047452 1543 PACKET_LOSS = 0xe
1544 PPPIOCSNPMODE = 0x8008744b 1544 PACKET_MR_ALLMULTI = 0x2
1545 PPPIOCSPASS = 0x80087447 1545 PACKET_MR_MULTICAST = 0x0
1546 PPPIOCSRASYNCMAP = 0x80047454 1546 PACKET_MR_PROMISC = 0x1
1547 PPPIOCSXASYNCMAP = 0x8020744f 1547 PACKET_MR_UNICAST = 0x3
1548 PPPIOCXFERUNIT = 0x2000744e 1548 PACKET_MULTICAST = 0x2
1549 PRIO_PGRP = 0x1 1549 PACKET_ORIGDEV = 0x9
1550 PRIO_PROCESS = 0x0 1550 PACKET_OTHERHOST = 0x3
1551 PRIO_USER = 0x2 1551 PACKET_OUTGOING = 0x4
1552 PROC_SUPER_MAGIC = 0x9fa0 1552 PACKET_QDISC_BYPASS = 0x14
1553 PROT_EXEC = 0x4 1553 PACKET_RECV_OUTPUT = 0x3
1554 PROT_GROWSDOWN = 0x1000000 1554 PACKET_RESERVE = 0xc
1555 PROT_GROWSUP = 0x2000000 1555 PACKET_ROLLOVER_STATS = 0x15
1556 PROT_NONE = 0x0 1556 PACKET_RX_RING = 0x5
1557 PROT_READ = 0x1 1557 PACKET_STATISTICS = 0x6
1558 PROT_WRITE = 0x2 1558 PACKET_TIMESTAMP = 0x11
1559 PR_CAPBSET_DROP = 0x18 1559 PACKET_TX_HAS_OFF = 0x13
1560 PR_CAPBSET_READ = 0x17 1560 PACKET_TX_RING = 0xd
1561 PR_CAP_AMBIENT = 0x2f 1561 PACKET_TX_TIMESTAMP = 0x10
1562 PR_CAP_AMBIENT_CLEAR_ALL = 0x4 1562 PACKET_USER = 0x6
1563 PR_CAP_AMBIENT_IS_SET = 0x1 1563 PACKET_VERSION = 0xa
1564 PR_CAP_AMBIENT_LOWER = 0x3 1564 PACKET_VNET_HDR = 0xf
1565 PR_CAP_AMBIENT_RAISE = 0x2 1565 PARENB = 0x100
1566 PR_ENDIAN_BIG = 0x0 1566 PARITY_CRC16_PR0 = 0x2
1567 PR_ENDIAN_LITTLE = 0x1 1567 PARITY_CRC16_PR0_CCITT = 0x4
1568 PR_ENDIAN_PPC_LITTLE = 0x2 1568 PARITY_CRC16_PR1 = 0x3
1569 PR_FPEMU_NOPRINT = 0x1 1569 PARITY_CRC16_PR1_CCITT = 0x5
1570 PR_FPEMU_SIGFPE = 0x2 1570 PARITY_CRC32_PR0_CCITT = 0x6
1571 PR_FP_EXC_ASYNC = 0x2 1571 PARITY_CRC32_PR1_CCITT = 0x7
1572 PR_FP_EXC_DISABLED = 0x0 1572 PARITY_DEFAULT = 0x0
1573 PR_FP_EXC_DIV = 0x10000 1573 PARITY_NONE = 0x1
1574 PR_FP_EXC_INV = 0x100000 1574 PARMRK = 0x8
1575 PR_FP_EXC_NONRECOV = 0x1 1575 PARODD = 0x200
1576 PR_FP_EXC_OVF = 0x20000 1576 PENDIN = 0x4000
1577 PR_FP_EXC_PRECISE = 0x3 1577 PERF_EVENT_IOC_DISABLE = 0x20002401
1578 PR_FP_EXC_RES = 0x80000 1578 PERF_EVENT_IOC_ENABLE = 0x20002400
1579 PR_FP_EXC_SW_ENABLE = 0x80 1579 PERF_EVENT_IOC_ID = 0x40042407
1580 PR_FP_EXC_UND = 0x40000 1580 PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x8004240b
1581 PR_FP_MODE_FR = 0x1 1581 PERF_EVENT_IOC_PAUSE_OUTPUT = 0x80042409
1582 PR_FP_MODE_FRE = 0x2 1582 PERF_EVENT_IOC_PERIOD = 0x80082404
1583 PR_GET_CHILD_SUBREAPER = 0x25 1583 PERF_EVENT_IOC_QUERY_BPF = 0xc004240a
1584 PR_GET_DUMPABLE = 0x3 1584 PERF_EVENT_IOC_REFRESH = 0x20002402
1585 PR_GET_ENDIAN = 0x13 1585 PERF_EVENT_IOC_RESET = 0x20002403
1586 PR_GET_FPEMU = 0x9 1586 PERF_EVENT_IOC_SET_BPF = 0x80042408
1587 PR_GET_FPEXC = 0xb 1587 PERF_EVENT_IOC_SET_FILTER = 0x80042406
1588 PR_GET_FP_MODE = 0x2e 1588 PERF_EVENT_IOC_SET_OUTPUT = 0x20002405
1589 PR_GET_KEEPCAPS = 0x7 1589 PIPEFS_MAGIC = 0x50495045
1590 PR_GET_NAME = 0x10 1590 PPC_CMM_MAGIC = 0xc7571590
1591 PR_GET_NO_NEW_PRIVS = 0x27 1591 PPPIOCATTACH = 0x8004743d
1592 PR_GET_PDEATHSIG = 0x2 1592 PPPIOCATTCHAN = 0x80047438
1593 PR_GET_SECCOMP = 0x15 1593 PPPIOCCONNECT = 0x8004743a
1594 PR_GET_SECUREBITS = 0x1b 1594 PPPIOCDETACH = 0x8004743c
1595 PR_GET_SPECULATION_CTRL = 0x34 1595 PPPIOCDISCONN = 0x20007439
1596 PR_GET_THP_DISABLE = 0x2a 1596 PPPIOCGASYNCMAP = 0x40047458
1597 PR_GET_TID_ADDRESS = 0x28 1597 PPPIOCGCHAN = 0x40047437
1598 PR_GET_TIMERSLACK = 0x1e 1598 PPPIOCGDEBUG = 0x40047441
1599 PR_GET_TIMING = 0xd 1599 PPPIOCGFLAGS = 0x4004745a
1600 PR_GET_TSC = 0x19 1600 PPPIOCGIDLE = 0x4008743f
1601 PR_GET_UNALIGN = 0x5 1601 PPPIOCGIDLE32 = 0x4008743f
1602 PR_MCE_KILL = 0x21 1602 PPPIOCGIDLE64 = 0x4010743f
1603 PR_MCE_KILL_CLEAR = 0x0 1603 PPPIOCGL2TPSTATS = 0x40487436
1604 PR_MCE_KILL_DEFAULT = 0x2 1604 PPPIOCGMRU = 0x40047453
1605 PR_MCE_KILL_EARLY = 0x1 1605 PPPIOCGNPMODE = 0xc008744c
1606 PR_MCE_KILL_GET = 0x22 1606 PPPIOCGRASYNCMAP = 0x40047455
1607 PR_MCE_KILL_LATE = 0x0 1607 PPPIOCGUNIT = 0x40047456
1608 PR_MCE_KILL_SET = 0x1 1608 PPPIOCGXASYNCMAP = 0x40207450
1609 PR_MPX_DISABLE_MANAGEMENT = 0x2c 1609 PPPIOCNEWUNIT = 0xc004743e
1610 PR_MPX_ENABLE_MANAGEMENT = 0x2b 1610 PPPIOCSACTIVE = 0x80087446
1611 PR_PAC_APDAKEY = 0x4 1611 PPPIOCSASYNCMAP = 0x80047457
1612 PR_PAC_APDBKEY = 0x8 1612 PPPIOCSCOMPRESS = 0x800c744d
1613 PR_PAC_APGAKEY = 0x10 1613 PPPIOCSDEBUG = 0x80047440
1614 PR_PAC_APIAKEY = 0x1 1614 PPPIOCSFLAGS = 0x80047459
1615 PR_PAC_APIBKEY = 0x2 1615 PPPIOCSMAXCID = 0x80047451
1616 PR_PAC_RESET_KEYS = 0x36 1616 PPPIOCSMRRU = 0x8004743b
1617 PR_SET_CHILD_SUBREAPER = 0x24 1617 PPPIOCSMRU = 0x80047452
1618 PR_SET_DUMPABLE = 0x4 1618 PPPIOCSNPMODE = 0x8008744b
1619 PR_SET_ENDIAN = 0x14 1619 PPPIOCSPASS = 0x80087447
1620 PR_SET_FPEMU = 0xa 1620 PPPIOCSRASYNCMAP = 0x80047454
1621 PR_SET_FPEXC = 0xc 1621 PPPIOCSXASYNCMAP = 0x8020744f
1622 PR_SET_FP_MODE = 0x2d 1622 PPPIOCXFERUNIT = 0x2000744e
1623 PR_SET_KEEPCAPS = 0x8 1623 PRIO_PGRP = 0x1
1624 PR_SET_MM = 0x23 1624 PRIO_PROCESS = 0x0
1625 PR_SET_MM_ARG_END = 0x9 1625 PRIO_USER = 0x2
1626 PR_SET_MM_ARG_START = 0x8 1626 PROC_SUPER_MAGIC = 0x9fa0
1627 PR_SET_MM_AUXV = 0xc 1627 PROT_EXEC = 0x4
1628 PR_SET_MM_BRK = 0x7 1628 PROT_GROWSDOWN = 0x1000000
1629 PR_SET_MM_END_CODE = 0x2 1629 PROT_GROWSUP = 0x2000000
1630 PR_SET_MM_END_DATA = 0x4 1630 PROT_NONE = 0x0
1631 PR_SET_MM_ENV_END = 0xb 1631 PROT_READ = 0x1
1632 PR_SET_MM_ENV_START = 0xa 1632 PROT_WRITE = 0x2
1633 PR_SET_MM_EXE_FILE = 0xd 1633 PR_CAPBSET_DROP = 0x18
1634 PR_SET_MM_MAP = 0xe 1634 PR_CAPBSET_READ = 0x17
1635 PR_SET_MM_MAP_SIZE = 0xf 1635 PR_CAP_AMBIENT = 0x2f
1636 PR_SET_MM_START_BRK = 0x6 1636 PR_CAP_AMBIENT_CLEAR_ALL = 0x4
1637 PR_SET_MM_START_CODE = 0x1 1637 PR_CAP_AMBIENT_IS_SET = 0x1
1638 PR_SET_MM_START_DATA = 0x3 1638 PR_CAP_AMBIENT_LOWER = 0x3
1639 PR_SET_MM_START_STACK = 0x5 1639 PR_CAP_AMBIENT_RAISE = 0x2
1640 PR_SET_NAME = 0xf 1640 PR_ENDIAN_BIG = 0x0
1641 PR_SET_NO_NEW_PRIVS = 0x26 1641 PR_ENDIAN_LITTLE = 0x1
1642 PR_SET_PDEATHSIG = 0x1 1642 PR_ENDIAN_PPC_LITTLE = 0x2
1643 PR_SET_PTRACER = 0x59616d61 1643 PR_FPEMU_NOPRINT = 0x1
1644 PR_SET_PTRACER_ANY = 0xffffffff 1644 PR_FPEMU_SIGFPE = 0x2
1645 PR_SET_SECCOMP = 0x16 1645 PR_FP_EXC_ASYNC = 0x2
1646 PR_SET_SECUREBITS = 0x1c 1646 PR_FP_EXC_DISABLED = 0x0
1647 PR_SET_SPECULATION_CTRL = 0x35 1647 PR_FP_EXC_DIV = 0x10000
1648 PR_SET_THP_DISABLE = 0x29 1648 PR_FP_EXC_INV = 0x100000
1649 PR_SET_TIMERSLACK = 0x1d 1649 PR_FP_EXC_NONRECOV = 0x1
1650 PR_SET_TIMING = 0xe 1650 PR_FP_EXC_OVF = 0x20000
1651 PR_SET_TSC = 0x1a 1651 PR_FP_EXC_PRECISE = 0x3
1652 PR_SET_UNALIGN = 0x6 1652 PR_FP_EXC_RES = 0x80000
1653 PR_SPEC_DISABLE = 0x4 1653 PR_FP_EXC_SW_ENABLE = 0x80
1654 PR_SPEC_DISABLE_NOEXEC = 0x10 1654 PR_FP_EXC_UND = 0x40000
1655 PR_SPEC_ENABLE = 0x2 1655 PR_FP_MODE_FR = 0x1
1656 PR_SPEC_FORCE_DISABLE = 0x8 1656 PR_FP_MODE_FRE = 0x2
1657 PR_SPEC_INDIRECT_BRANCH = 0x1 1657 PR_GET_CHILD_SUBREAPER = 0x25
1658 PR_SPEC_NOT_AFFECTED = 0x0 1658 PR_GET_DUMPABLE = 0x3
1659 PR_SPEC_PRCTL = 0x1 1659 PR_GET_ENDIAN = 0x13
1660 PR_SPEC_STORE_BYPASS = 0x0 1660 PR_GET_FPEMU = 0x9
1661 PR_SVE_GET_VL = 0x33 1661 PR_GET_FPEXC = 0xb
1662 PR_SVE_SET_VL = 0x32 1662 PR_GET_FP_MODE = 0x2e
1663 PR_SVE_SET_VL_ONEXEC = 0x40000 1663 PR_GET_KEEPCAPS = 0x7
1664 PR_SVE_VL_INHERIT = 0x20000 1664 PR_GET_NAME = 0x10
1665 PR_SVE_VL_LEN_MASK = 0xffff 1665 PR_GET_NO_NEW_PRIVS = 0x27
1666 PR_TASK_PERF_EVENTS_DISABLE = 0x1f 1666 PR_GET_PDEATHSIG = 0x2
1667 PR_TASK_PERF_EVENTS_ENABLE = 0x20 1667 PR_GET_SECCOMP = 0x15
1668 PR_TIMING_STATISTICAL = 0x0 1668 PR_GET_SECUREBITS = 0x1b
1669 PR_TIMING_TIMESTAMP = 0x1 1669 PR_GET_SPECULATION_CTRL = 0x34
1670 PR_TSC_ENABLE = 0x1 1670 PR_GET_TAGGED_ADDR_CTRL = 0x38
1671 PR_TSC_SIGSEGV = 0x2 1671 PR_GET_THP_DISABLE = 0x2a
1672 PR_UNALIGN_NOPRINT = 0x1 1672 PR_GET_TID_ADDRESS = 0x28
1673 PR_UNALIGN_SIGBUS = 0x2 1673 PR_GET_TIMERSLACK = 0x1e
1674 PSTOREFS_MAGIC = 0x6165676c 1674 PR_GET_TIMING = 0xd
1675 PTRACE_ATTACH = 0x10 1675 PR_GET_TSC = 0x19
1676 PTRACE_CONT = 0x7 1676 PR_GET_UNALIGN = 0x5
1677 PTRACE_DETACH = 0x11 1677 PR_MCE_KILL = 0x21
1678 PTRACE_EVENT_CLONE = 0x3 1678 PR_MCE_KILL_CLEAR = 0x0
1679 PTRACE_EVENT_EXEC = 0x4 1679 PR_MCE_KILL_DEFAULT = 0x2
1680 PTRACE_EVENT_EXIT = 0x6 1680 PR_MCE_KILL_EARLY = 0x1
1681 PTRACE_EVENT_FORK = 0x1 1681 PR_MCE_KILL_GET = 0x22
1682 PTRACE_EVENT_SECCOMP = 0x7 1682 PR_MCE_KILL_LATE = 0x0
1683 PTRACE_EVENT_STOP = 0x80 1683 PR_MCE_KILL_SET = 0x1
1684 PTRACE_EVENT_VFORK = 0x2 1684 PR_MPX_DISABLE_MANAGEMENT = 0x2c
1685 PTRACE_EVENT_VFORK_DONE = 0x5 1685 PR_MPX_ENABLE_MANAGEMENT = 0x2b
1686 PTRACE_GETEVENTMSG = 0x4201 1686 PR_PAC_APDAKEY = 0x4
1687 PTRACE_GETFPREGS = 0xe 1687 PR_PAC_APDBKEY = 0x8
1688 PTRACE_GETREGS = 0xc 1688 PR_PAC_APGAKEY = 0x10
1689 PTRACE_GETREGSET = 0x4204 1689 PR_PAC_APIAKEY = 0x1
1690 PTRACE_GETSIGINFO = 0x4202 1690 PR_PAC_APIBKEY = 0x2
1691 PTRACE_GETSIGMASK = 0x420a 1691 PR_PAC_RESET_KEYS = 0x36
1692 PTRACE_GET_THREAD_AREA = 0x19 1692 PR_SET_CHILD_SUBREAPER = 0x24
1693 PTRACE_GET_THREAD_AREA_3264 = 0xc4 1693 PR_SET_DUMPABLE = 0x4
1694 PTRACE_GET_WATCH_REGS = 0xd0 1694 PR_SET_ENDIAN = 0x14
1695 PTRACE_INTERRUPT = 0x4207 1695 PR_SET_FPEMU = 0xa
1696 PTRACE_KILL = 0x8 1696 PR_SET_FPEXC = 0xc
1697 PTRACE_LISTEN = 0x4208 1697 PR_SET_FP_MODE = 0x2d
1698 PTRACE_OLDSETOPTIONS = 0x15 1698 PR_SET_KEEPCAPS = 0x8
1699 PTRACE_O_EXITKILL = 0x100000 1699 PR_SET_MM = 0x23
1700 PTRACE_O_MASK = 0x3000ff 1700 PR_SET_MM_ARG_END = 0x9
1701 PTRACE_O_SUSPEND_SECCOMP = 0x200000 1701 PR_SET_MM_ARG_START = 0x8
1702 PTRACE_O_TRACECLONE = 0x8 1702 PR_SET_MM_AUXV = 0xc
1703 PTRACE_O_TRACEEXEC = 0x10 1703 PR_SET_MM_BRK = 0x7
1704 PTRACE_O_TRACEEXIT = 0x40 1704 PR_SET_MM_END_CODE = 0x2
1705 PTRACE_O_TRACEFORK = 0x2 1705 PR_SET_MM_END_DATA = 0x4
1706 PTRACE_O_TRACESECCOMP = 0x80 1706 PR_SET_MM_ENV_END = 0xb
1707 PTRACE_O_TRACESYSGOOD = 0x1 1707 PR_SET_MM_ENV_START = 0xa
1708 PTRACE_O_TRACEVFORK = 0x4 1708 PR_SET_MM_EXE_FILE = 0xd
1709 PTRACE_O_TRACEVFORKDONE = 0x20 1709 PR_SET_MM_MAP = 0xe
1710 PTRACE_PEEKDATA = 0x2 1710 PR_SET_MM_MAP_SIZE = 0xf
1711 PTRACE_PEEKDATA_3264 = 0xc1 1711 PR_SET_MM_START_BRK = 0x6
1712 PTRACE_PEEKSIGINFO = 0x4209 1712 PR_SET_MM_START_CODE = 0x1
1713 PTRACE_PEEKSIGINFO_SHARED = 0x1 1713 PR_SET_MM_START_DATA = 0x3
1714 PTRACE_PEEKTEXT = 0x1 1714 PR_SET_MM_START_STACK = 0x5
1715 PTRACE_PEEKTEXT_3264 = 0xc0 1715 PR_SET_NAME = 0xf
1716 PTRACE_PEEKUSR = 0x3 1716 PR_SET_NO_NEW_PRIVS = 0x26
1717 PTRACE_POKEDATA = 0x5 1717 PR_SET_PDEATHSIG = 0x1
1718 PTRACE_POKEDATA_3264 = 0xc3 1718 PR_SET_PTRACER = 0x59616d61
1719 PTRACE_POKETEXT = 0x4 1719 PR_SET_PTRACER_ANY = 0xffffffff
1720 PTRACE_POKETEXT_3264 = 0xc2 1720 PR_SET_SECCOMP = 0x16
1721 PTRACE_POKEUSR = 0x6 1721 PR_SET_SECUREBITS = 0x1c
1722 PTRACE_SECCOMP_GET_FILTER = 0x420c 1722 PR_SET_SPECULATION_CTRL = 0x35
1723 PTRACE_SECCOMP_GET_METADATA = 0x420d 1723 PR_SET_TAGGED_ADDR_CTRL = 0x37
1724 PTRACE_SEIZE = 0x4206 1724 PR_SET_THP_DISABLE = 0x29
1725 PTRACE_SETFPREGS = 0xf 1725 PR_SET_TIMERSLACK = 0x1d
1726 PTRACE_SETOPTIONS = 0x4200 1726 PR_SET_TIMING = 0xe
1727 PTRACE_SETREGS = 0xd 1727 PR_SET_TSC = 0x1a
1728 PTRACE_SETREGSET = 0x4205 1728 PR_SET_UNALIGN = 0x6
1729 PTRACE_SETSIGINFO = 0x4203 1729 PR_SPEC_DISABLE = 0x4
1730 PTRACE_SETSIGMASK = 0x420b 1730 PR_SPEC_DISABLE_NOEXEC = 0x10
1731 PTRACE_SET_THREAD_AREA = 0x1a 1731 PR_SPEC_ENABLE = 0x2
1732 PTRACE_SET_WATCH_REGS = 0xd1 1732 PR_SPEC_FORCE_DISABLE = 0x8
1733 PTRACE_SINGLESTEP = 0x9 1733 PR_SPEC_INDIRECT_BRANCH = 0x1
1734 PTRACE_SYSCALL = 0x18 1734 PR_SPEC_NOT_AFFECTED = 0x0
1735 PTRACE_TRACEME = 0x0 1735 PR_SPEC_PRCTL = 0x1
1736 QNX4_SUPER_MAGIC = 0x2f 1736 PR_SPEC_STORE_BYPASS = 0x0
1737 QNX6_SUPER_MAGIC = 0x68191122 1737 PR_SVE_GET_VL = 0x33
1738 RAMFS_MAGIC = 0x858458f6 1738 PR_SVE_SET_VL = 0x32
1739 RDTGROUP_SUPER_MAGIC = 0x7655821 1739 PR_SVE_SET_VL_ONEXEC = 0x40000
1740 REISERFS_SUPER_MAGIC = 0x52654973 1740 PR_SVE_VL_INHERIT = 0x20000
1741 RENAME_EXCHANGE = 0x2 1741 PR_SVE_VL_LEN_MASK = 0xffff
1742 RENAME_NOREPLACE = 0x1 1742 PR_TAGGED_ADDR_ENABLE = 0x1
1743 RENAME_WHITEOUT = 0x4 1743 PR_TASK_PERF_EVENTS_DISABLE = 0x1f
1744 RLIMIT_AS = 0x6 1744 PR_TASK_PERF_EVENTS_ENABLE = 0x20
1745 RLIMIT_CORE = 0x4 1745 PR_TIMING_STATISTICAL = 0x0
1746 RLIMIT_CPU = 0x0 1746 PR_TIMING_TIMESTAMP = 0x1
1747 RLIMIT_DATA = 0x2 1747 PR_TSC_ENABLE = 0x1
1748 RLIMIT_FSIZE = 0x1 1748 PR_TSC_SIGSEGV = 0x2
1749 RLIMIT_LOCKS = 0xa 1749 PR_UNALIGN_NOPRINT = 0x1
1750 RLIMIT_MEMLOCK = 0x9 1750 PR_UNALIGN_SIGBUS = 0x2
1751 RLIMIT_MSGQUEUE = 0xc 1751 PSTOREFS_MAGIC = 0x6165676c
1752 RLIMIT_NICE = 0xd 1752 PTRACE_ATTACH = 0x10
1753 RLIMIT_NOFILE = 0x5 1753 PTRACE_CONT = 0x7
1754 RLIMIT_NPROC = 0x8 1754 PTRACE_DETACH = 0x11
1755 RLIMIT_RSS = 0x7 1755 PTRACE_EVENTMSG_SYSCALL_ENTRY = 0x1
1756 RLIMIT_RTPRIO = 0xe 1756 PTRACE_EVENTMSG_SYSCALL_EXIT = 0x2
1757 RLIMIT_RTTIME = 0xf 1757 PTRACE_EVENT_CLONE = 0x3
1758 RLIMIT_SIGPENDING = 0xb 1758 PTRACE_EVENT_EXEC = 0x4
1759 RLIMIT_STACK = 0x3 1759 PTRACE_EVENT_EXIT = 0x6
1760 RLIM_INFINITY = 0xffffffffffffffff 1760 PTRACE_EVENT_FORK = 0x1
1761 RNDADDENTROPY = 0x80085203 1761 PTRACE_EVENT_SECCOMP = 0x7
1762 RNDADDTOENTCNT = 0x80045201 1762 PTRACE_EVENT_STOP = 0x80
1763 RNDCLEARPOOL = 0x20005206 1763 PTRACE_EVENT_VFORK = 0x2
1764 RNDGETENTCNT = 0x40045200 1764 PTRACE_EVENT_VFORK_DONE = 0x5
1765 RNDGETPOOL = 0x40085202 1765 PTRACE_GETEVENTMSG = 0x4201
1766 RNDRESEEDCRNG = 0x20005207 1766 PTRACE_GETFPREGS = 0xe
1767 RNDZAPENTCNT = 0x20005204 1767 PTRACE_GETREGS = 0xc
1768 RTAX_ADVMSS = 0x8 1768 PTRACE_GETREGSET = 0x4204
1769 RTAX_CC_ALGO = 0x10 1769 PTRACE_GETSIGINFO = 0x4202
1770 RTAX_CWND = 0x7 1770 PTRACE_GETSIGMASK = 0x420a
1771 RTAX_FASTOPEN_NO_COOKIE = 0x11 1771 PTRACE_GET_SYSCALL_INFO = 0x420e
1772 RTAX_FEATURES = 0xc 1772 PTRACE_GET_THREAD_AREA = 0x19
1773 RTAX_FEATURE_ALLFRAG = 0x8 1773 PTRACE_GET_THREAD_AREA_3264 = 0xc4
1774 RTAX_FEATURE_ECN = 0x1 1774 PTRACE_GET_WATCH_REGS = 0xd0
1775 RTAX_FEATURE_MASK = 0xf 1775 PTRACE_INTERRUPT = 0x4207
1776 RTAX_FEATURE_SACK = 0x2 1776 PTRACE_KILL = 0x8
1777 RTAX_FEATURE_TIMESTAMP = 0x4 1777 PTRACE_LISTEN = 0x4208
1778 RTAX_HOPLIMIT = 0xa 1778 PTRACE_OLDSETOPTIONS = 0x15
1779 RTAX_INITCWND = 0xb 1779 PTRACE_O_EXITKILL = 0x100000
1780 RTAX_INITRWND = 0xe 1780 PTRACE_O_MASK = 0x3000ff
1781 RTAX_LOCK = 0x1 1781 PTRACE_O_SUSPEND_SECCOMP = 0x200000
1782 RTAX_MAX = 0x11 1782 PTRACE_O_TRACECLONE = 0x8
1783 RTAX_MTU = 0x2 1783 PTRACE_O_TRACEEXEC = 0x10
1784 RTAX_QUICKACK = 0xf 1784 PTRACE_O_TRACEEXIT = 0x40
1785 RTAX_REORDERING = 0x9 1785 PTRACE_O_TRACEFORK = 0x2
1786 RTAX_RTO_MIN = 0xd 1786 PTRACE_O_TRACESECCOMP = 0x80
1787 RTAX_RTT = 0x4 1787 PTRACE_O_TRACESYSGOOD = 0x1
1788 RTAX_RTTVAR = 0x5 1788 PTRACE_O_TRACEVFORK = 0x4
1789 RTAX_SSTHRESH = 0x6 1789 PTRACE_O_TRACEVFORKDONE = 0x20
1790 RTAX_UNSPEC = 0x0 1790 PTRACE_PEEKDATA = 0x2
1791 RTAX_WINDOW = 0x3 1791 PTRACE_PEEKDATA_3264 = 0xc1
1792 RTA_ALIGNTO = 0x4 1792 PTRACE_PEEKSIGINFO = 0x4209
1793 RTA_MAX = 0x1d 1793 PTRACE_PEEKSIGINFO_SHARED = 0x1
1794 RTCF_DIRECTSRC = 0x4000000 1794 PTRACE_PEEKTEXT = 0x1
1795 RTCF_DOREDIRECT = 0x1000000 1795 PTRACE_PEEKTEXT_3264 = 0xc0
1796 RTCF_LOG = 0x2000000 1796 PTRACE_PEEKUSR = 0x3
1797 RTCF_MASQ = 0x400000 1797 PTRACE_POKEDATA = 0x5
1798 RTCF_NAT = 0x800000 1798 PTRACE_POKEDATA_3264 = 0xc3
1799 RTCF_VALVE = 0x200000 1799 PTRACE_POKETEXT = 0x4
1800 RTC_AF = 0x20 1800 PTRACE_POKETEXT_3264 = 0xc2
1801 RTC_AIE_OFF = 0x20007002 1801 PTRACE_POKEUSR = 0x6
1802 RTC_AIE_ON = 0x20007001 1802 PTRACE_SECCOMP_GET_FILTER = 0x420c
1803 RTC_ALM_READ = 0x40247008 1803 PTRACE_SECCOMP_GET_METADATA = 0x420d
1804 RTC_ALM_SET = 0x80247007 1804 PTRACE_SEIZE = 0x4206
1805 RTC_EPOCH_READ = 0x4004700d 1805 PTRACE_SETFPREGS = 0xf
1806 RTC_EPOCH_SET = 0x8004700e 1806 PTRACE_SETOPTIONS = 0x4200
1807 RTC_IRQF = 0x80 1807 PTRACE_SETREGS = 0xd
1808 RTC_IRQP_READ = 0x4004700b 1808 PTRACE_SETREGSET = 0x4205
1809 RTC_IRQP_SET = 0x8004700c 1809 PTRACE_SETSIGINFO = 0x4203
1810 RTC_MAX_FREQ = 0x2000 1810 PTRACE_SETSIGMASK = 0x420b
1811 RTC_PF = 0x40 1811 PTRACE_SET_THREAD_AREA = 0x1a
1812 RTC_PIE_OFF = 0x20007006 1812 PTRACE_SET_WATCH_REGS = 0xd1
1813 RTC_PIE_ON = 0x20007005 1813 PTRACE_SINGLESTEP = 0x9
1814 RTC_PLL_GET = 0x401c7011 1814 PTRACE_SYSCALL = 0x18
1815 RTC_PLL_SET = 0x801c7012 1815 PTRACE_SYSCALL_INFO_ENTRY = 0x1
1816 RTC_RD_TIME = 0x40247009 1816 PTRACE_SYSCALL_INFO_EXIT = 0x2
1817 RTC_SET_TIME = 0x8024700a 1817 PTRACE_SYSCALL_INFO_NONE = 0x0
1818 RTC_UF = 0x10 1818 PTRACE_SYSCALL_INFO_SECCOMP = 0x3
1819 RTC_UIE_OFF = 0x20007004 1819 PTRACE_TRACEME = 0x0
1820 RTC_UIE_ON = 0x20007003 1820 QNX4_SUPER_MAGIC = 0x2f
1821 RTC_VL_CLR = 0x20007014 1821 QNX6_SUPER_MAGIC = 0x68191122
1822 RTC_VL_READ = 0x40047013 1822 RAMFS_MAGIC = 0x858458f6
1823 RTC_WIE_OFF = 0x20007010 1823 RDTGROUP_SUPER_MAGIC = 0x7655821
1824 RTC_WIE_ON = 0x2000700f 1824 REISERFS_SUPER_MAGIC = 0x52654973
1825 RTC_WKALM_RD = 0x40287010 1825 RENAME_EXCHANGE = 0x2
1826 RTC_WKALM_SET = 0x8028700f 1826 RENAME_NOREPLACE = 0x1
1827 RTF_ADDRCLASSMASK = 0xf8000000 1827 RENAME_WHITEOUT = 0x4
1828 RTF_ADDRCONF = 0x40000 1828 RLIMIT_AS = 0x6
1829 RTF_ALLONLINK = 0x20000 1829 RLIMIT_CORE = 0x4
1830 RTF_BROADCAST = 0x10000000 1830 RLIMIT_CPU = 0x0
1831 RTF_CACHE = 0x1000000 1831 RLIMIT_DATA = 0x2
1832 RTF_DEFAULT = 0x10000 1832 RLIMIT_FSIZE = 0x1
1833 RTF_DYNAMIC = 0x10 1833 RLIMIT_LOCKS = 0xa
1834 RTF_FLOW = 0x2000000 1834 RLIMIT_MEMLOCK = 0x9
1835 RTF_GATEWAY = 0x2 1835 RLIMIT_MSGQUEUE = 0xc
1836 RTF_HOST = 0x4 1836 RLIMIT_NICE = 0xd
1837 RTF_INTERFACE = 0x40000000 1837 RLIMIT_NOFILE = 0x5
1838 RTF_IRTT = 0x100 1838 RLIMIT_NPROC = 0x8
1839 RTF_LINKRT = 0x100000 1839 RLIMIT_RSS = 0x7
1840 RTF_LOCAL = 0x80000000 1840 RLIMIT_RTPRIO = 0xe
1841 RTF_MODIFIED = 0x20 1841 RLIMIT_RTTIME = 0xf
1842 RTF_MSS = 0x40 1842 RLIMIT_SIGPENDING = 0xb
1843 RTF_MTU = 0x40 1843 RLIMIT_STACK = 0x3
1844 RTF_MULTICAST = 0x20000000 1844 RLIM_INFINITY = 0xffffffffffffffff
1845 RTF_NAT = 0x8000000 1845 RNDADDENTROPY = 0x80085203
1846 RTF_NOFORWARD = 0x1000 1846 RNDADDTOENTCNT = 0x80045201
1847 RTF_NONEXTHOP = 0x200000 1847 RNDCLEARPOOL = 0x20005206
1848 RTF_NOPMTUDISC = 0x4000 1848 RNDGETENTCNT = 0x40045200
1849 RTF_POLICY = 0x4000000 1849 RNDGETPOOL = 0x40085202
1850 RTF_REINSTATE = 0x8 1850 RNDRESEEDCRNG = 0x20005207
1851 RTF_REJECT = 0x200 1851 RNDZAPENTCNT = 0x20005204
1852 RTF_STATIC = 0x400 1852 RTAX_ADVMSS = 0x8
1853 RTF_THROW = 0x2000 1853 RTAX_CC_ALGO = 0x10
1854 RTF_UP = 0x1 1854 RTAX_CWND = 0x7
1855 RTF_WINDOW = 0x80 1855 RTAX_FASTOPEN_NO_COOKIE = 0x11
1856 RTF_XRESOLVE = 0x800 1856 RTAX_FEATURES = 0xc
1857 RTM_BASE = 0x10 1857 RTAX_FEATURE_ALLFRAG = 0x8
1858 RTM_DELACTION = 0x31 1858 RTAX_FEATURE_ECN = 0x1
1859 RTM_DELADDR = 0x15 1859 RTAX_FEATURE_MASK = 0xf
1860 RTM_DELADDRLABEL = 0x49 1860 RTAX_FEATURE_SACK = 0x2
1861 RTM_DELCHAIN = 0x65 1861 RTAX_FEATURE_TIMESTAMP = 0x4
1862 RTM_DELLINK = 0x11 1862 RTAX_HOPLIMIT = 0xa
1863 RTM_DELMDB = 0x55 1863 RTAX_INITCWND = 0xb
1864 RTM_DELNEIGH = 0x1d 1864 RTAX_INITRWND = 0xe
1865 RTM_DELNETCONF = 0x51 1865 RTAX_LOCK = 0x1
1866 RTM_DELNSID = 0x59 1866 RTAX_MAX = 0x11
1867 RTM_DELQDISC = 0x25 1867 RTAX_MTU = 0x2
1868 RTM_DELROUTE = 0x19 1868 RTAX_QUICKACK = 0xf
1869 RTM_DELRULE = 0x21 1869 RTAX_REORDERING = 0x9
1870 RTM_DELTCLASS = 0x29 1870 RTAX_RTO_MIN = 0xd
1871 RTM_DELTFILTER = 0x2d 1871 RTAX_RTT = 0x4
1872 RTM_F_CLONED = 0x200 1872 RTAX_RTTVAR = 0x5
1873 RTM_F_EQUALIZE = 0x400 1873 RTAX_SSTHRESH = 0x6
1874 RTM_F_FIB_MATCH = 0x2000 1874 RTAX_UNSPEC = 0x0
1875 RTM_F_LOOKUP_TABLE = 0x1000 1875 RTAX_WINDOW = 0x3
1876 RTM_F_NOTIFY = 0x100 1876 RTA_ALIGNTO = 0x4
1877 RTM_F_PREFIX = 0x800 1877 RTA_MAX = 0x1e
1878 RTM_GETACTION = 0x32 1878 RTCF_DIRECTSRC = 0x4000000
1879 RTM_GETADDR = 0x16 1879 RTCF_DOREDIRECT = 0x1000000
1880 RTM_GETADDRLABEL = 0x4a 1880 RTCF_LOG = 0x2000000
1881 RTM_GETANYCAST = 0x3e 1881 RTCF_MASQ = 0x400000
1882 RTM_GETCHAIN = 0x66 1882 RTCF_NAT = 0x800000
1883 RTM_GETDCB = 0x4e 1883 RTCF_VALVE = 0x200000
1884 RTM_GETLINK = 0x12 1884 RTC_AF = 0x20
1885 RTM_GETMDB = 0x56 1885 RTC_AIE_OFF = 0x20007002
1886 RTM_GETMULTICAST = 0x3a 1886 RTC_AIE_ON = 0x20007001
1887 RTM_GETNEIGH = 0x1e 1887 RTC_ALM_READ = 0x40247008
1888 RTM_GETNEIGHTBL = 0x42 1888 RTC_ALM_SET = 0x80247007
1889 RTM_GETNETCONF = 0x52 1889 RTC_EPOCH_READ = 0x4004700d
1890 RTM_GETNSID = 0x5a 1890 RTC_EPOCH_SET = 0x8004700e
1891 RTM_GETQDISC = 0x26 1891 RTC_IRQF = 0x80
1892 RTM_GETROUTE = 0x1a 1892 RTC_IRQP_READ = 0x4004700b
1893 RTM_GETRULE = 0x22 1893 RTC_IRQP_SET = 0x8004700c
1894 RTM_GETSTATS = 0x5e 1894 RTC_MAX_FREQ = 0x2000
1895 RTM_GETTCLASS = 0x2a 1895 RTC_PF = 0x40
1896 RTM_GETTFILTER = 0x2e 1896 RTC_PIE_OFF = 0x20007006
1897 RTM_MAX = 0x67 1897 RTC_PIE_ON = 0x20007005
1898 RTM_NEWACTION = 0x30 1898 RTC_PLL_GET = 0x401c7011
1899 RTM_NEWADDR = 0x14 1899 RTC_PLL_SET = 0x801c7012
1900 RTM_NEWADDRLABEL = 0x48 1900 RTC_RD_TIME = 0x40247009
1901 RTM_NEWCACHEREPORT = 0x60 1901 RTC_SET_TIME = 0x8024700a
1902 RTM_NEWCHAIN = 0x64 1902 RTC_UF = 0x10
1903 RTM_NEWLINK = 0x10 1903 RTC_UIE_OFF = 0x20007004
1904 RTM_NEWMDB = 0x54 1904 RTC_UIE_ON = 0x20007003
1905 RTM_NEWNDUSEROPT = 0x44 1905 RTC_VL_CLR = 0x20007014
1906 RTM_NEWNEIGH = 0x1c 1906 RTC_VL_READ = 0x40047013
1907 RTM_NEWNEIGHTBL = 0x40 1907 RTC_WIE_OFF = 0x20007010
1908 RTM_NEWNETCONF = 0x50 1908 RTC_WIE_ON = 0x2000700f
1909 RTM_NEWNSID = 0x58 1909 RTC_WKALM_RD = 0x40287010
1910 RTM_NEWPREFIX = 0x34 1910 RTC_WKALM_SET = 0x8028700f
1911 RTM_NEWQDISC = 0x24 1911 RTF_ADDRCLASSMASK = 0xf8000000
1912 RTM_NEWROUTE = 0x18 1912 RTF_ADDRCONF = 0x40000
1913 RTM_NEWRULE = 0x20 1913 RTF_ALLONLINK = 0x20000
1914 RTM_NEWSTATS = 0x5c 1914 RTF_BROADCAST = 0x10000000
1915 RTM_NEWTCLASS = 0x28 1915 RTF_CACHE = 0x1000000
1916 RTM_NEWTFILTER = 0x2c 1916 RTF_DEFAULT = 0x10000
1917 RTM_NR_FAMILIES = 0x16 1917 RTF_DYNAMIC = 0x10
1918 RTM_NR_MSGTYPES = 0x58 1918 RTF_FLOW = 0x2000000
1919 RTM_SETDCB = 0x4f 1919 RTF_GATEWAY = 0x2
1920 RTM_SETLINK = 0x13 1920 RTF_HOST = 0x4
1921 RTM_SETNEIGHTBL = 0x43 1921 RTF_INTERFACE = 0x40000000
1922 RTNH_ALIGNTO = 0x4 1922 RTF_IRTT = 0x100
1923 RTNH_COMPARE_MASK = 0x19 1923 RTF_LINKRT = 0x100000
1924 RTNH_F_DEAD = 0x1 1924 RTF_LOCAL = 0x80000000
1925 RTNH_F_LINKDOWN = 0x10 1925 RTF_MODIFIED = 0x20
1926 RTNH_F_OFFLOAD = 0x8 1926 RTF_MSS = 0x40
1927 RTNH_F_ONLINK = 0x4 1927 RTF_MTU = 0x40
1928 RTNH_F_PERVASIVE = 0x2 1928 RTF_MULTICAST = 0x20000000
1929 RTNH_F_UNRESOLVED = 0x20 1929 RTF_NAT = 0x8000000
1930 RTN_MAX = 0xb 1930 RTF_NOFORWARD = 0x1000
1931 RTPROT_BABEL = 0x2a 1931 RTF_NONEXTHOP = 0x200000
1932 RTPROT_BGP = 0xba 1932 RTF_NOPMTUDISC = 0x4000
1933 RTPROT_BIRD = 0xc 1933 RTF_POLICY = 0x4000000
1934 RTPROT_BOOT = 0x3 1934 RTF_REINSTATE = 0x8
1935 RTPROT_DHCP = 0x10 1935 RTF_REJECT = 0x200
1936 RTPROT_DNROUTED = 0xd 1936 RTF_STATIC = 0x400
1937 RTPROT_EIGRP = 0xc0 1937 RTF_THROW = 0x2000
1938 RTPROT_GATED = 0x8 1938 RTF_UP = 0x1
1939 RTPROT_ISIS = 0xbb 1939 RTF_WINDOW = 0x80
1940 RTPROT_KERNEL = 0x2 1940 RTF_XRESOLVE = 0x800
1941 RTPROT_MROUTED = 0x11 1941 RTMGRP_DECnet_IFADDR = 0x1000
1942 RTPROT_MRT = 0xa 1942 RTMGRP_DECnet_ROUTE = 0x4000
1943 RTPROT_NTK = 0xf 1943 RTMGRP_IPV4_IFADDR = 0x10
1944 RTPROT_OSPF = 0xbc 1944 RTMGRP_IPV4_MROUTE = 0x20
1945 RTPROT_RA = 0x9 1945 RTMGRP_IPV4_ROUTE = 0x40
1946 RTPROT_REDIRECT = 0x1 1946 RTMGRP_IPV4_RULE = 0x80
1947 RTPROT_RIP = 0xbd 1947 RTMGRP_IPV6_IFADDR = 0x100
1948 RTPROT_STATIC = 0x4 1948 RTMGRP_IPV6_IFINFO = 0x800
1949 RTPROT_UNSPEC = 0x0 1949 RTMGRP_IPV6_MROUTE = 0x200
1950 RTPROT_XORP = 0xe 1950 RTMGRP_IPV6_PREFIX = 0x20000
1951 RTPROT_ZEBRA = 0xb 1951 RTMGRP_IPV6_ROUTE = 0x400
1952 RT_CLASS_DEFAULT = 0xfd 1952 RTMGRP_LINK = 0x1
1953 RT_CLASS_LOCAL = 0xff 1953 RTMGRP_NEIGH = 0x4
1954 RT_CLASS_MAIN = 0xfe 1954 RTMGRP_NOTIFY = 0x2
1955 RT_CLASS_MAX = 0xff 1955 RTMGRP_TC = 0x8
1956 RT_CLASS_UNSPEC = 0x0 1956 RTM_BASE = 0x10
1957 RUSAGE_CHILDREN = -0x1 1957 RTM_DELACTION = 0x31
1958 RUSAGE_SELF = 0x0 1958 RTM_DELADDR = 0x15
1959 RUSAGE_THREAD = 0x1 1959 RTM_DELADDRLABEL = 0x49
1960 SCM_CREDENTIALS = 0x2 1960 RTM_DELCHAIN = 0x65
1961 SCM_RIGHTS = 0x1 1961 RTM_DELLINK = 0x11
1962 SCM_TIMESTAMP = 0x1d 1962 RTM_DELLINKPROP = 0x6d
1963 SCM_TIMESTAMPING = 0x25 1963 RTM_DELMDB = 0x55
1964 SCM_TIMESTAMPING_OPT_STATS = 0x36 1964 RTM_DELNEIGH = 0x1d
1965 SCM_TIMESTAMPING_PKTINFO = 0x3a 1965 RTM_DELNETCONF = 0x51
1966 SCM_TIMESTAMPNS = 0x23 1966 RTM_DELNEXTHOP = 0x69
1967 SCM_TXTIME = 0x3d 1967 RTM_DELNSID = 0x59
1968 SCM_WIFI_STATUS = 0x29 1968 RTM_DELQDISC = 0x25
1969 SC_LOG_FLUSH = 0x100000 1969 RTM_DELROUTE = 0x19
1970 SECCOMP_MODE_DISABLED = 0x0 1970 RTM_DELRULE = 0x21
1971 SECCOMP_MODE_FILTER = 0x2 1971 RTM_DELTCLASS = 0x29
1972 SECCOMP_MODE_STRICT = 0x1 1972 RTM_DELTFILTER = 0x2d
1973 SECURITYFS_MAGIC = 0x73636673 1973 RTM_F_CLONED = 0x200
1974 SELINUX_MAGIC = 0xf97cff8c 1974 RTM_F_EQUALIZE = 0x400
1975 SFD_CLOEXEC = 0x80000 1975 RTM_F_FIB_MATCH = 0x2000
1976 SFD_NONBLOCK = 0x80 1976 RTM_F_LOOKUP_TABLE = 0x1000
1977 SHUT_RD = 0x0 1977 RTM_F_NOTIFY = 0x100
1978 SHUT_RDWR = 0x2 1978 RTM_F_PREFIX = 0x800
1979 SHUT_WR = 0x1 1979 RTM_GETACTION = 0x32
1980 SIOCADDDLCI = 0x8980 1980 RTM_GETADDR = 0x16
1981 SIOCADDMULTI = 0x8931 1981 RTM_GETADDRLABEL = 0x4a
1982 SIOCADDRT = 0x890b 1982 RTM_GETANYCAST = 0x3e
1983 SIOCATMARK = 0x40047307 1983 RTM_GETCHAIN = 0x66
1984 SIOCBONDCHANGEACTIVE = 0x8995 1984 RTM_GETDCB = 0x4e
1985 SIOCBONDENSLAVE = 0x8990 1985 RTM_GETLINK = 0x12
1986 SIOCBONDINFOQUERY = 0x8994 1986 RTM_GETLINKPROP = 0x6e
1987 SIOCBONDRELEASE = 0x8991 1987 RTM_GETMDB = 0x56
1988 SIOCBONDSETHWADDR = 0x8992 1988 RTM_GETMULTICAST = 0x3a
1989 SIOCBONDSLAVEINFOQUERY = 0x8993 1989 RTM_GETNEIGH = 0x1e
1990 SIOCBRADDBR = 0x89a0 1990 RTM_GETNEIGHTBL = 0x42
1991 SIOCBRADDIF = 0x89a2 1991 RTM_GETNETCONF = 0x52
1992 SIOCBRDELBR = 0x89a1 1992 RTM_GETNEXTHOP = 0x6a
1993 SIOCBRDELIF = 0x89a3 1993 RTM_GETNSID = 0x5a
1994 SIOCDARP = 0x8953 1994 RTM_GETQDISC = 0x26
1995 SIOCDELDLCI = 0x8981 1995 RTM_GETROUTE = 0x1a
1996 SIOCDELMULTI = 0x8932 1996 RTM_GETRULE = 0x22
1997 SIOCDELRT = 0x890c 1997 RTM_GETSTATS = 0x5e
1998 SIOCDEVPRIVATE = 0x89f0 1998 RTM_GETTCLASS = 0x2a
1999 SIOCDIFADDR = 0x8936 1999 RTM_GETTFILTER = 0x2e
2000 SIOCDRARP = 0x8960 2000 RTM_MAX = 0x6f
2001 SIOCETHTOOL = 0x8946 2001 RTM_NEWACTION = 0x30
2002 SIOCGARP = 0x8954 2002 RTM_NEWADDR = 0x14
2003 SIOCGHWTSTAMP = 0x89b1 2003 RTM_NEWADDRLABEL = 0x48
2004 SIOCGIFADDR = 0x8915 2004 RTM_NEWCACHEREPORT = 0x60
2005 SIOCGIFBR = 0x8940 2005 RTM_NEWCHAIN = 0x64
2006 SIOCGIFBRDADDR = 0x8919 2006 RTM_NEWLINK = 0x10
2007 SIOCGIFCONF = 0x8912 2007 RTM_NEWLINKPROP = 0x6c
2008 SIOCGIFCOUNT = 0x8938 2008 RTM_NEWMDB = 0x54
2009 SIOCGIFDSTADDR = 0x8917 2009 RTM_NEWNDUSEROPT = 0x44
2010 SIOCGIFENCAP = 0x8925 2010 RTM_NEWNEIGH = 0x1c
2011 SIOCGIFFLAGS = 0x8913 2011 RTM_NEWNEIGHTBL = 0x40
2012 SIOCGIFHWADDR = 0x8927 2012 RTM_NEWNETCONF = 0x50
2013 SIOCGIFINDEX = 0x8933 2013 RTM_NEWNEXTHOP = 0x68
2014 SIOCGIFMAP = 0x8970 2014 RTM_NEWNSID = 0x58
2015 SIOCGIFMEM = 0x891f 2015 RTM_NEWPREFIX = 0x34
2016 SIOCGIFMETRIC = 0x891d 2016 RTM_NEWQDISC = 0x24
2017 SIOCGIFMTU = 0x8921 2017 RTM_NEWROUTE = 0x18
2018 SIOCGIFNAME = 0x8910 2018 RTM_NEWRULE = 0x20
2019 SIOCGIFNETMASK = 0x891b 2019 RTM_NEWSTATS = 0x5c
2020 SIOCGIFPFLAGS = 0x8935 2020 RTM_NEWTCLASS = 0x28
2021 SIOCGIFSLAVE = 0x8929 2021 RTM_NEWTFILTER = 0x2c
2022 SIOCGIFTXQLEN = 0x8942 2022 RTM_NR_FAMILIES = 0x18
2023 SIOCGIFVLAN = 0x8982 2023 RTM_NR_MSGTYPES = 0x60
2024 SIOCGMIIPHY = 0x8947 2024 RTM_SETDCB = 0x4f
2025 SIOCGMIIREG = 0x8948 2025 RTM_SETLINK = 0x13
2026 SIOCGPGRP = 0x40047309 2026 RTM_SETNEIGHTBL = 0x43
2027 SIOCGPPPCSTATS = 0x89f2 2027 RTNH_ALIGNTO = 0x4
2028 SIOCGPPPSTATS = 0x89f0 2028 RTNH_COMPARE_MASK = 0x19
2029 SIOCGPPPVER = 0x89f1 2029 RTNH_F_DEAD = 0x1
2030 SIOCGRARP = 0x8961 2030 RTNH_F_LINKDOWN = 0x10
2031 SIOCGSKNS = 0x894c 2031 RTNH_F_OFFLOAD = 0x8
2032 SIOCGSTAMP = 0x8906 2032 RTNH_F_ONLINK = 0x4
2033 SIOCGSTAMPNS = 0x8907 2033 RTNH_F_PERVASIVE = 0x2
2034 SIOCGSTAMPNS_NEW = 0x40108907 2034 RTNH_F_UNRESOLVED = 0x20
2035 SIOCGSTAMPNS_OLD = 0x8907 2035 RTN_MAX = 0xb
2036 SIOCGSTAMP_NEW = 0x40108906 2036 RTPROT_BABEL = 0x2a
2037 SIOCGSTAMP_OLD = 0x8906 2037 RTPROT_BGP = 0xba
2038 SIOCINQ = 0x467f 2038 RTPROT_BIRD = 0xc
2039 SIOCOUTQ = 0x7472 2039 RTPROT_BOOT = 0x3
2040 SIOCOUTQNSD = 0x894b 2040 RTPROT_DHCP = 0x10
2041 SIOCPROTOPRIVATE = 0x89e0 2041 RTPROT_DNROUTED = 0xd
2042 SIOCRTMSG = 0x890d 2042 RTPROT_EIGRP = 0xc0
2043 SIOCSARP = 0x8955 2043 RTPROT_GATED = 0x8
2044 SIOCSHWTSTAMP = 0x89b0 2044 RTPROT_ISIS = 0xbb
2045 SIOCSIFADDR = 0x8916 2045 RTPROT_KERNEL = 0x2
2046 SIOCSIFBR = 0x8941 2046 RTPROT_MROUTED = 0x11
2047 SIOCSIFBRDADDR = 0x891a 2047 RTPROT_MRT = 0xa
2048 SIOCSIFDSTADDR = 0x8918 2048 RTPROT_NTK = 0xf
2049 SIOCSIFENCAP = 0x8926 2049 RTPROT_OSPF = 0xbc
2050 SIOCSIFFLAGS = 0x8914 2050 RTPROT_RA = 0x9
2051 SIOCSIFHWADDR = 0x8924 2051 RTPROT_REDIRECT = 0x1
2052 SIOCSIFHWBROADCAST = 0x8937 2052 RTPROT_RIP = 0xbd
2053 SIOCSIFLINK = 0x8911 2053 RTPROT_STATIC = 0x4
2054 SIOCSIFMAP = 0x8971 2054 RTPROT_UNSPEC = 0x0
2055 SIOCSIFMEM = 0x8920 2055 RTPROT_XORP = 0xe
2056 SIOCSIFMETRIC = 0x891e 2056 RTPROT_ZEBRA = 0xb
2057 SIOCSIFMTU = 0x8922 2057 RT_CLASS_DEFAULT = 0xfd
2058 SIOCSIFNAME = 0x8923 2058 RT_CLASS_LOCAL = 0xff
2059 SIOCSIFNETMASK = 0x891c 2059 RT_CLASS_MAIN = 0xfe
2060 SIOCSIFPFLAGS = 0x8934 2060 RT_CLASS_MAX = 0xff
2061 SIOCSIFSLAVE = 0x8930 2061 RT_CLASS_UNSPEC = 0x0
2062 SIOCSIFTXQLEN = 0x8943 2062 RUSAGE_CHILDREN = -0x1
2063 SIOCSIFVLAN = 0x8983 2063 RUSAGE_SELF = 0x0
2064 SIOCSMIIREG = 0x8949 2064 RUSAGE_THREAD = 0x1
2065 SIOCSPGRP = 0x80047308 2065 RWF_APPEND = 0x10
2066 SIOCSRARP = 0x8962 2066 RWF_DSYNC = 0x2
2067 SIOCWANDEV = 0x894a 2067 RWF_HIPRI = 0x1
2068 SMACK_MAGIC = 0x43415d53 2068 RWF_NOWAIT = 0x8
2069 SMART_AUTOSAVE = 0xd2 2069 RWF_SUPPORTED = 0x1f
2070 SMART_AUTO_OFFLINE = 0xdb 2070 RWF_SYNC = 0x4
2071 SMART_DISABLE = 0xd9 2071 RWF_WRITE_LIFE_NOT_SET = 0x0
2072 SMART_ENABLE = 0xd8 2072 SCM_CREDENTIALS = 0x2
2073 SMART_HCYL_PASS = 0xc2 2073 SCM_RIGHTS = 0x1
2074 SMART_IMMEDIATE_OFFLINE = 0xd4 2074 SCM_TIMESTAMP = 0x1d
2075 SMART_LCYL_PASS = 0x4f 2075 SCM_TIMESTAMPING = 0x25
2076 SMART_READ_LOG_SECTOR = 0xd5 2076 SCM_TIMESTAMPING_OPT_STATS = 0x36
2077 SMART_READ_THRESHOLDS = 0xd1 2077 SCM_TIMESTAMPING_PKTINFO = 0x3a
2078 SMART_READ_VALUES = 0xd0 2078 SCM_TIMESTAMPNS = 0x23
2079 SMART_SAVE = 0xd3 2079 SCM_TXTIME = 0x3d
2080 SMART_STATUS = 0xda 2080 SCM_WIFI_STATUS = 0x29
2081 SMART_WRITE_LOG_SECTOR = 0xd6 2081 SC_LOG_FLUSH = 0x100000
2082 SMART_WRITE_THRESHOLDS = 0xd7 2082 SECCOMP_MODE_DISABLED = 0x0
2083 SMB_SUPER_MAGIC = 0x517b 2083 SECCOMP_MODE_FILTER = 0x2
2084 SOCKFS_MAGIC = 0x534f434b 2084 SECCOMP_MODE_STRICT = 0x1
2085 SOCK_CLOEXEC = 0x80000 2085 SECURITYFS_MAGIC = 0x73636673
2086 SOCK_DCCP = 0x6 2086 SELINUX_MAGIC = 0xf97cff8c
2087 SOCK_DGRAM = 0x1 2087 SFD_CLOEXEC = 0x80000
2088 SOCK_IOC_TYPE = 0x89 2088 SFD_NONBLOCK = 0x80
2089 SOCK_NONBLOCK = 0x80 2089 SHUT_RD = 0x0
2090 SOCK_PACKET = 0xa 2090 SHUT_RDWR = 0x2
2091 SOCK_RAW = 0x3 2091 SHUT_WR = 0x1
2092 SOCK_RDM = 0x4 2092 SIOCADDDLCI = 0x8980
2093 SOCK_SEQPACKET = 0x5 2093 SIOCADDMULTI = 0x8931
2094 SOCK_STREAM = 0x2 2094 SIOCADDRT = 0x890b
2095 SOL_AAL = 0x109 2095 SIOCATMARK = 0x40047307
2096 SOL_ALG = 0x117 2096 SIOCBONDCHANGEACTIVE = 0x8995
2097 SOL_ATM = 0x108 2097 SIOCBONDENSLAVE = 0x8990
2098 SOL_CAIF = 0x116 2098 SIOCBONDINFOQUERY = 0x8994
2099 SOL_CAN_BASE = 0x64 2099 SIOCBONDRELEASE = 0x8991
2100 SOL_DCCP = 0x10d 2100 SIOCBONDSETHWADDR = 0x8992
2101 SOL_DECNET = 0x105 2101 SIOCBONDSLAVEINFOQUERY = 0x8993
2102 SOL_ICMPV6 = 0x3a 2102 SIOCBRADDBR = 0x89a0
2103 SOL_IP = 0x0 2103 SIOCBRADDIF = 0x89a2
2104 SOL_IPV6 = 0x29 2104 SIOCBRDELBR = 0x89a1
2105 SOL_IRDA = 0x10a 2105 SIOCBRDELIF = 0x89a3
2106 SOL_IUCV = 0x115 2106 SIOCDARP = 0x8953
2107 SOL_KCM = 0x119 2107 SIOCDELDLCI = 0x8981
2108 SOL_LLC = 0x10c 2108 SIOCDELMULTI = 0x8932
2109 SOL_NETBEUI = 0x10b 2109 SIOCDELRT = 0x890c
2110 SOL_NETLINK = 0x10e 2110 SIOCDEVPRIVATE = 0x89f0
2111 SOL_NFC = 0x118 2111 SIOCDIFADDR = 0x8936
2112 SOL_PACKET = 0x107 2112 SIOCDRARP = 0x8960
2113 SOL_PNPIPE = 0x113 2113 SIOCETHTOOL = 0x8946
2114 SOL_PPPOL2TP = 0x111 2114 SIOCGARP = 0x8954
2115 SOL_RAW = 0xff 2115 SIOCGETLINKNAME = 0x89e0
2116 SOL_RDS = 0x114 2116 SIOCGETNODEID = 0x89e1
2117 SOL_RXRPC = 0x110 2117 SIOCGHWTSTAMP = 0x89b1
2118 SOL_SOCKET = 0xffff 2118 SIOCGIFADDR = 0x8915
2119 SOL_TCP = 0x6 2119 SIOCGIFBR = 0x8940
2120 SOL_TIPC = 0x10f 2120 SIOCGIFBRDADDR = 0x8919
2121 SOL_TLS = 0x11a 2121 SIOCGIFCONF = 0x8912
2122 SOL_X25 = 0x106 2122 SIOCGIFCOUNT = 0x8938
2123 SOL_XDP = 0x11b 2123 SIOCGIFDSTADDR = 0x8917
2124 SOMAXCONN = 0x80 2124 SIOCGIFENCAP = 0x8925
2125 SO_ACCEPTCONN = 0x1009 2125 SIOCGIFFLAGS = 0x8913
2126 SO_ATTACH_BPF = 0x32 2126 SIOCGIFHWADDR = 0x8927
2127 SO_ATTACH_FILTER = 0x1a 2127 SIOCGIFINDEX = 0x8933
2128 SO_ATTACH_REUSEPORT_CBPF = 0x33 2128 SIOCGIFMAP = 0x8970
2129 SO_ATTACH_REUSEPORT_EBPF = 0x34 2129 SIOCGIFMEM = 0x891f
2130 SO_BINDTODEVICE = 0x19 2130 SIOCGIFMETRIC = 0x891d
2131 SO_BINDTOIFINDEX = 0x3e 2131 SIOCGIFMTU = 0x8921
2132 SO_BPF_EXTENSIONS = 0x30 2132 SIOCGIFNAME = 0x8910
2133 SO_BROADCAST = 0x20 2133 SIOCGIFNETMASK = 0x891b
2134 SO_BSDCOMPAT = 0xe 2134 SIOCGIFPFLAGS = 0x8935
2135 SO_BUSY_POLL = 0x2e 2135 SIOCGIFSLAVE = 0x8929
2136 SO_CNX_ADVICE = 0x35 2136 SIOCGIFTXQLEN = 0x8942
2137 SO_COOKIE = 0x39 2137 SIOCGIFVLAN = 0x8982
2138 SO_DEBUG = 0x1 2138 SIOCGMIIPHY = 0x8947
2139 SO_DETACH_BPF = 0x1b 2139 SIOCGMIIREG = 0x8948
2140 SO_DETACH_FILTER = 0x1b 2140 SIOCGPGRP = 0x40047309
2141 SO_DOMAIN = 0x1029 2141 SIOCGPPPCSTATS = 0x89f2
2142 SO_DONTROUTE = 0x10 2142 SIOCGPPPSTATS = 0x89f0
2143 SO_EE_CODE_TXTIME_INVALID_PARAM = 0x1 2143 SIOCGPPPVER = 0x89f1
2144 SO_EE_CODE_TXTIME_MISSED = 0x2 2144 SIOCGRARP = 0x8961
2145 SO_EE_CODE_ZEROCOPY_COPIED = 0x1 2145 SIOCGSKNS = 0x894c
2146 SO_EE_ORIGIN_ICMP = 0x2 2146 SIOCGSTAMP = 0x8906
2147 SO_EE_ORIGIN_ICMP6 = 0x3 2147 SIOCGSTAMPNS = 0x8907
2148 SO_EE_ORIGIN_LOCAL = 0x1 2148 SIOCGSTAMPNS_NEW = 0x40108907
2149 SO_EE_ORIGIN_NONE = 0x0 2149 SIOCGSTAMPNS_OLD = 0x8907
2150 SO_EE_ORIGIN_TIMESTAMPING = 0x4 2150 SIOCGSTAMP_NEW = 0x40108906
2151 SO_EE_ORIGIN_TXSTATUS = 0x4 2151 SIOCGSTAMP_OLD = 0x8906
2152 SO_EE_ORIGIN_TXTIME = 0x6 2152 SIOCINQ = 0x467f
2153 SO_EE_ORIGIN_ZEROCOPY = 0x5 2153 SIOCOUTQ = 0x7472
2154 SO_ERROR = 0x1007 2154 SIOCOUTQNSD = 0x894b
2155 SO_GET_FILTER = 0x1a 2155 SIOCPROTOPRIVATE = 0x89e0
2156 SO_INCOMING_CPU = 0x31 2156 SIOCRTMSG = 0x890d
2157 SO_INCOMING_NAPI_ID = 0x38 2157 SIOCSARP = 0x8955
2158 SO_KEEPALIVE = 0x8 2158 SIOCSHWTSTAMP = 0x89b0
2159 SO_LINGER = 0x80 2159 SIOCSIFADDR = 0x8916
2160 SO_LOCK_FILTER = 0x2c 2160 SIOCSIFBR = 0x8941
2161 SO_MARK = 0x24 2161 SIOCSIFBRDADDR = 0x891a
2162 SO_MAX_PACING_RATE = 0x2f 2162 SIOCSIFDSTADDR = 0x8918
2163 SO_MEMINFO = 0x37 2163 SIOCSIFENCAP = 0x8926
2164 SO_NOFCS = 0x2b 2164 SIOCSIFFLAGS = 0x8914
2165 SO_NO_CHECK = 0xb 2165 SIOCSIFHWADDR = 0x8924
2166 SO_OOBINLINE = 0x100 2166 SIOCSIFHWBROADCAST = 0x8937
2167 SO_PASSCRED = 0x11 2167 SIOCSIFLINK = 0x8911
2168 SO_PASSSEC = 0x22 2168 SIOCSIFMAP = 0x8971
2169 SO_PEEK_OFF = 0x2a 2169 SIOCSIFMEM = 0x8920
2170 SO_PEERCRED = 0x12 2170 SIOCSIFMETRIC = 0x891e
2171 SO_PEERGROUPS = 0x3b 2171 SIOCSIFMTU = 0x8922
2172 SO_PEERNAME = 0x1c 2172 SIOCSIFNAME = 0x8923
2173 SO_PEERSEC = 0x1e 2173 SIOCSIFNETMASK = 0x891c
2174 SO_PRIORITY = 0xc 2174 SIOCSIFPFLAGS = 0x8934
2175 SO_PROTOCOL = 0x1028 2175 SIOCSIFSLAVE = 0x8930
2176 SO_RCVBUF = 0x1002 2176 SIOCSIFTXQLEN = 0x8943
2177 SO_RCVBUFFORCE = 0x21 2177 SIOCSIFVLAN = 0x8983
2178 SO_RCVLOWAT = 0x1004 2178 SIOCSMIIREG = 0x8949
2179 SO_RCVTIMEO = 0x1006 2179 SIOCSPGRP = 0x80047308
2180 SO_RCVTIMEO_NEW = 0x42 2180 SIOCSRARP = 0x8962
2181 SO_RCVTIMEO_OLD = 0x1006 2181 SIOCWANDEV = 0x894a
2182 SO_REUSEADDR = 0x4 2182 SMACK_MAGIC = 0x43415d53
2183 SO_REUSEPORT = 0x200 2183 SMART_AUTOSAVE = 0xd2
2184 SO_RXQ_OVFL = 0x28 2184 SMART_AUTO_OFFLINE = 0xdb
2185 SO_SECURITY_AUTHENTICATION = 0x16 2185 SMART_DISABLE = 0xd9
2186 SO_SECURITY_ENCRYPTION_NETWORK = 0x18 2186 SMART_ENABLE = 0xd8
2187 SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17 2187 SMART_HCYL_PASS = 0xc2
2188 SO_SELECT_ERR_QUEUE = 0x2d 2188 SMART_IMMEDIATE_OFFLINE = 0xd4
2189 SO_SNDBUF = 0x1001 2189 SMART_LCYL_PASS = 0x4f
2190 SO_SNDBUFFORCE = 0x1f 2190 SMART_READ_LOG_SECTOR = 0xd5
2191 SO_SNDLOWAT = 0x1003 2191 SMART_READ_THRESHOLDS = 0xd1
2192 SO_SNDTIMEO = 0x1005 2192 SMART_READ_VALUES = 0xd0
2193 SO_SNDTIMEO_NEW = 0x43 2193 SMART_SAVE = 0xd3
2194 SO_SNDTIMEO_OLD = 0x1005 2194 SMART_STATUS = 0xda
2195 SO_STYLE = 0x1008 2195 SMART_WRITE_LOG_SECTOR = 0xd6
2196 SO_TIMESTAMP = 0x1d 2196 SMART_WRITE_THRESHOLDS = 0xd7
2197 SO_TIMESTAMPING = 0x25 2197 SMB_SUPER_MAGIC = 0x517b
2198 SO_TIMESTAMPING_NEW = 0x41 2198 SOCKFS_MAGIC = 0x534f434b
2199 SO_TIMESTAMPING_OLD = 0x25 2199 SOCK_CLOEXEC = 0x80000
2200 SO_TIMESTAMPNS = 0x23 2200 SOCK_DCCP = 0x6
2201 SO_TIMESTAMPNS_NEW = 0x40 2201 SOCK_DGRAM = 0x1
2202 SO_TIMESTAMPNS_OLD = 0x23 2202 SOCK_IOC_TYPE = 0x89
2203 SO_TIMESTAMP_NEW = 0x3f 2203 SOCK_NONBLOCK = 0x80
2204 SO_TIMESTAMP_OLD = 0x1d 2204 SOCK_PACKET = 0xa
2205 SO_TXTIME = 0x3d 2205 SOCK_RAW = 0x3
2206 SO_TYPE = 0x1008 2206 SOCK_RDM = 0x4
2207 SO_VM_SOCKETS_BUFFER_MAX_SIZE = 0x2 2207 SOCK_SEQPACKET = 0x5
2208 SO_VM_SOCKETS_BUFFER_MIN_SIZE = 0x1 2208 SOCK_STREAM = 0x2
2209 SO_VM_SOCKETS_BUFFER_SIZE = 0x0 2209 SOL_AAL = 0x109
2210 SO_VM_SOCKETS_CONNECT_TIMEOUT = 0x6 2210 SOL_ALG = 0x117
2211 SO_VM_SOCKETS_NONBLOCK_TXRX = 0x7 2211 SOL_ATM = 0x108
2212 SO_VM_SOCKETS_PEER_HOST_VM_ID = 0x3 2212 SOL_CAIF = 0x116
2213 SO_VM_SOCKETS_TRUSTED = 0x5 2213 SOL_CAN_BASE = 0x64
2214 SO_WIFI_STATUS = 0x29 2214 SOL_DCCP = 0x10d
2215 SO_ZEROCOPY = 0x3c 2215 SOL_DECNET = 0x105
2216 SPLICE_F_GIFT = 0x8 2216 SOL_ICMPV6 = 0x3a
2217 SPLICE_F_MORE = 0x4 2217 SOL_IP = 0x0
2218 SPLICE_F_MOVE = 0x1 2218 SOL_IPV6 = 0x29
2219 SPLICE_F_NONBLOCK = 0x2 2219 SOL_IRDA = 0x10a
2220 SQUASHFS_MAGIC = 0x73717368 2220 SOL_IUCV = 0x115
2221 STACK_END_MAGIC = 0x57ac6e9d 2221 SOL_KCM = 0x119
2222 STATX_ALL = 0xfff 2222 SOL_LLC = 0x10c
2223 STATX_ATIME = 0x20 2223 SOL_NETBEUI = 0x10b
2224 STATX_ATTR_APPEND = 0x20 2224 SOL_NETLINK = 0x10e
2225 STATX_ATTR_AUTOMOUNT = 0x1000 2225 SOL_NFC = 0x118
2226 STATX_ATTR_COMPRESSED = 0x4 2226 SOL_PACKET = 0x107
2227 STATX_ATTR_ENCRYPTED = 0x800 2227 SOL_PNPIPE = 0x113
2228 STATX_ATTR_IMMUTABLE = 0x10 2228 SOL_PPPOL2TP = 0x111
2229 STATX_ATTR_NODUMP = 0x40 2229 SOL_RAW = 0xff
2230 STATX_BASIC_STATS = 0x7ff 2230 SOL_RDS = 0x114
2231 STATX_BLOCKS = 0x400 2231 SOL_RXRPC = 0x110
2232 STATX_BTIME = 0x800 2232 SOL_SOCKET = 0xffff
2233 STATX_CTIME = 0x80 2233 SOL_TCP = 0x6
2234 STATX_GID = 0x10 2234 SOL_TIPC = 0x10f
2235 STATX_INO = 0x100 2235 SOL_TLS = 0x11a
2236 STATX_MODE = 0x2 2236 SOL_X25 = 0x106
2237 STATX_MTIME = 0x40 2237 SOL_XDP = 0x11b
2238 STATX_NLINK = 0x4 2238 SOMAXCONN = 0x1000
2239 STATX_SIZE = 0x200 2239 SO_ACCEPTCONN = 0x1009
2240 STATX_TYPE = 0x1 2240 SO_ATTACH_BPF = 0x32
2241 STATX_UID = 0x8 2241 SO_ATTACH_FILTER = 0x1a
2242 STATX__RESERVED = 0x80000000 2242 SO_ATTACH_REUSEPORT_CBPF = 0x33
2243 SYNC_FILE_RANGE_WAIT_AFTER = 0x4 2243 SO_ATTACH_REUSEPORT_EBPF = 0x34
2244 SYNC_FILE_RANGE_WAIT_BEFORE = 0x1 2244 SO_BINDTODEVICE = 0x19
2245 SYNC_FILE_RANGE_WRITE = 0x2 2245 SO_BINDTOIFINDEX = 0x3e
2246 SYNC_FILE_RANGE_WRITE_AND_WAIT = 0x7 2246 SO_BPF_EXTENSIONS = 0x30
2247 SYSFS_MAGIC = 0x62656572 2247 SO_BROADCAST = 0x20
2248 S_BLKSIZE = 0x200 2248 SO_BSDCOMPAT = 0xe
2249 S_IEXEC = 0x40 2249 SO_BUSY_POLL = 0x2e
2250 S_IFBLK = 0x6000 2250 SO_CNX_ADVICE = 0x35
2251 S_IFCHR = 0x2000 2251 SO_COOKIE = 0x39
2252 S_IFDIR = 0x4000 2252 SO_DEBUG = 0x1
2253 S_IFIFO = 0x1000 2253 SO_DETACH_BPF = 0x1b
2254 S_IFLNK = 0xa000 2254 SO_DETACH_FILTER = 0x1b
2255 S_IFMT = 0xf000 2255 SO_DETACH_REUSEPORT_BPF = 0x44
2256 S_IFREG = 0x8000 2256 SO_DOMAIN = 0x1029
2257 S_IFSOCK = 0xc000 2257 SO_DONTROUTE = 0x10
2258 S_IREAD = 0x100 2258 SO_EE_CODE_TXTIME_INVALID_PARAM = 0x1
2259 S_IRGRP = 0x20 2259 SO_EE_CODE_TXTIME_MISSED = 0x2
2260 S_IROTH = 0x4 2260 SO_EE_CODE_ZEROCOPY_COPIED = 0x1
2261 S_IRUSR = 0x100 2261 SO_EE_ORIGIN_ICMP = 0x2
2262 S_IRWXG = 0x38 2262 SO_EE_ORIGIN_ICMP6 = 0x3
2263 S_IRWXO = 0x7 2263 SO_EE_ORIGIN_LOCAL = 0x1
2264 S_IRWXU = 0x1c0 2264 SO_EE_ORIGIN_NONE = 0x0
2265 S_ISGID = 0x400 2265 SO_EE_ORIGIN_TIMESTAMPING = 0x4
2266 S_ISUID = 0x800 2266 SO_EE_ORIGIN_TXSTATUS = 0x4
2267 S_ISVTX = 0x200 2267 SO_EE_ORIGIN_TXTIME = 0x6
2268 S_IWGRP = 0x10 2268 SO_EE_ORIGIN_ZEROCOPY = 0x5
2269 S_IWOTH = 0x2 2269 SO_ERROR = 0x1007
2270 S_IWRITE = 0x80 2270 SO_GET_FILTER = 0x1a
2271 S_IWUSR = 0x80 2271 SO_INCOMING_CPU = 0x31
2272 S_IXGRP = 0x8 2272 SO_INCOMING_NAPI_ID = 0x38
2273 S_IXOTH = 0x1 2273 SO_KEEPALIVE = 0x8
2274 S_IXUSR = 0x40 2274 SO_LINGER = 0x80
2275 TAB0 = 0x0 2275 SO_LOCK_FILTER = 0x2c
2276 TAB1 = 0x800 2276 SO_MARK = 0x24
2277 TAB2 = 0x1000 2277 SO_MAX_PACING_RATE = 0x2f
2278 TAB3 = 0x1800 2278 SO_MEMINFO = 0x37
2279 TABDLY = 0x1800 2279 SO_NOFCS = 0x2b
2280 TASKSTATS_CMD_ATTR_MAX = 0x4 2280 SO_NO_CHECK = 0xb
2281 TASKSTATS_CMD_MAX = 0x2 2281 SO_OOBINLINE = 0x100
2282 TASKSTATS_GENL_NAME = "TASKSTATS" 2282 SO_PASSCRED = 0x11
2283 TASKSTATS_GENL_VERSION = 0x1 2283 SO_PASSSEC = 0x22
2284 TASKSTATS_TYPE_MAX = 0x6 2284 SO_PEEK_OFF = 0x2a
2285 TASKSTATS_VERSION = 0x9 2285 SO_PEERCRED = 0x12
2286 TCFLSH = 0x5407 2286 SO_PEERGROUPS = 0x3b
2287 TCGETA = 0x5401 2287 SO_PEERNAME = 0x1c
2288 TCGETS = 0x540d 2288 SO_PEERSEC = 0x1e
2289 TCGETS2 = 0x4030542a 2289 SO_PRIORITY = 0xc
2290 TCIFLUSH = 0x0 2290 SO_PROTOCOL = 0x1028
2291 TCIOFF = 0x2 2291 SO_RCVBUF = 0x1002
2292 TCIOFLUSH = 0x2 2292 SO_RCVBUFFORCE = 0x21
2293 TCION = 0x3 2293 SO_RCVLOWAT = 0x1004
2294 TCOFLUSH = 0x1 2294 SO_RCVTIMEO = 0x1006
2295 TCOOFF = 0x0 2295 SO_RCVTIMEO_NEW = 0x42
2296 TCOON = 0x1 2296 SO_RCVTIMEO_OLD = 0x1006
2297 TCP_BPF_IW = 0x3e9 2297 SO_REUSEADDR = 0x4
2298 TCP_BPF_SNDCWND_CLAMP = 0x3ea 2298 SO_REUSEPORT = 0x200
2299 TCP_CC_INFO = 0x1a 2299 SO_RXQ_OVFL = 0x28
2300 TCP_CM_INQ = 0x24 2300 SO_SECURITY_AUTHENTICATION = 0x16
2301 TCP_CONGESTION = 0xd 2301 SO_SECURITY_ENCRYPTION_NETWORK = 0x18
2302 TCP_COOKIE_IN_ALWAYS = 0x1 2302 SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17
2303 TCP_COOKIE_MAX = 0x10 2303 SO_SELECT_ERR_QUEUE = 0x2d
2304 TCP_COOKIE_MIN = 0x8 2304 SO_SNDBUF = 0x1001
2305 TCP_COOKIE_OUT_NEVER = 0x2 2305 SO_SNDBUFFORCE = 0x1f
2306 TCP_COOKIE_PAIR_SIZE = 0x20 2306 SO_SNDLOWAT = 0x1003
2307 TCP_COOKIE_TRANSACTIONS = 0xf 2307 SO_SNDTIMEO = 0x1005
2308 TCP_CORK = 0x3 2308 SO_SNDTIMEO_NEW = 0x43
2309 TCP_DEFER_ACCEPT = 0x9 2309 SO_SNDTIMEO_OLD = 0x1005
2310 TCP_FASTOPEN = 0x17 2310 SO_STYLE = 0x1008
2311 TCP_FASTOPEN_CONNECT = 0x1e 2311 SO_TIMESTAMP = 0x1d
2312 TCP_FASTOPEN_KEY = 0x21 2312 SO_TIMESTAMPING = 0x25
2313 TCP_FASTOPEN_NO_COOKIE = 0x22 2313 SO_TIMESTAMPING_NEW = 0x41
2314 TCP_INFO = 0xb 2314 SO_TIMESTAMPING_OLD = 0x25
2315 TCP_INQ = 0x24 2315 SO_TIMESTAMPNS = 0x23
2316 TCP_KEEPCNT = 0x6 2316 SO_TIMESTAMPNS_NEW = 0x40
2317 TCP_KEEPIDLE = 0x4 2317 SO_TIMESTAMPNS_OLD = 0x23
2318 TCP_KEEPINTVL = 0x5 2318 SO_TIMESTAMP_NEW = 0x3f
2319 TCP_LINGER2 = 0x8 2319 SO_TIMESTAMP_OLD = 0x1d
2320 TCP_MAXSEG = 0x2 2320 SO_TXTIME = 0x3d
2321 TCP_MAXWIN = 0xffff 2321 SO_TYPE = 0x1008
2322 TCP_MAX_WINSHIFT = 0xe 2322 SO_VM_SOCKETS_BUFFER_MAX_SIZE = 0x2
2323 TCP_MD5SIG = 0xe 2323 SO_VM_SOCKETS_BUFFER_MIN_SIZE = 0x1
2324 TCP_MD5SIG_EXT = 0x20 2324 SO_VM_SOCKETS_BUFFER_SIZE = 0x0
2325 TCP_MD5SIG_FLAG_PREFIX = 0x1 2325 SO_VM_SOCKETS_CONNECT_TIMEOUT = 0x6
2326 TCP_MD5SIG_MAXKEYLEN = 0x50 2326 SO_VM_SOCKETS_NONBLOCK_TXRX = 0x7
2327 TCP_MSS = 0x200 2327 SO_VM_SOCKETS_PEER_HOST_VM_ID = 0x3
2328 TCP_MSS_DEFAULT = 0x218 2328 SO_VM_SOCKETS_TRUSTED = 0x5
2329 TCP_MSS_DESIRED = 0x4c4 2329 SO_WIFI_STATUS = 0x29
2330 TCP_NODELAY = 0x1 2330 SO_ZEROCOPY = 0x3c
2331 TCP_NOTSENT_LOWAT = 0x19 2331 SPLICE_F_GIFT = 0x8
2332 TCP_QUEUE_SEQ = 0x15 2332 SPLICE_F_MORE = 0x4
2333 TCP_QUICKACK = 0xc 2333 SPLICE_F_MOVE = 0x1
2334 TCP_REPAIR = 0x13 2334 SPLICE_F_NONBLOCK = 0x2
2335 TCP_REPAIR_OFF = 0x0 2335 SQUASHFS_MAGIC = 0x73717368
2336 TCP_REPAIR_OFF_NO_WP = -0x1 2336 STACK_END_MAGIC = 0x57ac6e9d
2337 TCP_REPAIR_ON = 0x1 2337 STATX_ALL = 0xfff
2338 TCP_REPAIR_OPTIONS = 0x16 2338 STATX_ATIME = 0x20
2339 TCP_REPAIR_QUEUE = 0x14 2339 STATX_ATTR_APPEND = 0x20
2340 TCP_REPAIR_WINDOW = 0x1d 2340 STATX_ATTR_AUTOMOUNT = 0x1000
2341 TCP_SAVED_SYN = 0x1c 2341 STATX_ATTR_COMPRESSED = 0x4
2342 TCP_SAVE_SYN = 0x1b 2342 STATX_ATTR_ENCRYPTED = 0x800
2343 TCP_SYNCNT = 0x7 2343 STATX_ATTR_IMMUTABLE = 0x10
2344 TCP_S_DATA_IN = 0x4 2344 STATX_ATTR_NODUMP = 0x40
2345 TCP_S_DATA_OUT = 0x8 2345 STATX_ATTR_VERITY = 0x100000
2346 TCP_THIN_DUPACK = 0x11 2346 STATX_BASIC_STATS = 0x7ff
2347 TCP_THIN_LINEAR_TIMEOUTS = 0x10 2347 STATX_BLOCKS = 0x400
2348 TCP_TIMESTAMP = 0x18 2348 STATX_BTIME = 0x800
2349 TCP_ULP = 0x1f 2349 STATX_CTIME = 0x80
2350 TCP_USER_TIMEOUT = 0x12 2350 STATX_GID = 0x10
2351 TCP_WINDOW_CLAMP = 0xa 2351 STATX_INO = 0x100
2352 TCP_ZEROCOPY_RECEIVE = 0x23 2352 STATX_MODE = 0x2
2353 TCSAFLUSH = 0x5410 2353 STATX_MTIME = 0x40
2354 TCSBRK = 0x5405 2354 STATX_NLINK = 0x4
2355 TCSBRKP = 0x5486 2355 STATX_SIZE = 0x200
2356 TCSETA = 0x5402 2356 STATX_TYPE = 0x1
2357 TCSETAF = 0x5404 2357 STATX_UID = 0x8
2358 TCSETAW = 0x5403 2358 STATX__RESERVED = 0x80000000
2359 TCSETS = 0x540e 2359 SYNC_FILE_RANGE_WAIT_AFTER = 0x4
2360 TCSETS2 = 0x8030542b 2360 SYNC_FILE_RANGE_WAIT_BEFORE = 0x1
2361 TCSETSF = 0x5410 2361 SYNC_FILE_RANGE_WRITE = 0x2
2362 TCSETSF2 = 0x8030542d 2362 SYNC_FILE_RANGE_WRITE_AND_WAIT = 0x7
2363 TCSETSW = 0x540f 2363 SYSFS_MAGIC = 0x62656572
2364 TCSETSW2 = 0x8030542c 2364 S_BLKSIZE = 0x200
2365 TCXONC = 0x5406 2365 S_IEXEC = 0x40
2366 TIMER_ABSTIME = 0x1 2366 S_IFBLK = 0x6000
2367 TIOCCBRK = 0x5428 2367 S_IFCHR = 0x2000
2368 TIOCCONS = 0x80047478 2368 S_IFDIR = 0x4000
2369 TIOCEXCL = 0x740d 2369 S_IFIFO = 0x1000
2370 TIOCGDEV = 0x40045432 2370 S_IFLNK = 0xa000
2371 TIOCGETD = 0x7400 2371 S_IFMT = 0xf000
2372 TIOCGETP = 0x7408 2372 S_IFREG = 0x8000
2373 TIOCGEXCL = 0x40045440 2373 S_IFSOCK = 0xc000
2374 TIOCGICOUNT = 0x5492 2374 S_IREAD = 0x100
2375 TIOCGISO7816 = 0x40285442 2375 S_IRGRP = 0x20
2376 TIOCGLCKTRMIOS = 0x548b 2376 S_IROTH = 0x4
2377 TIOCGLTC = 0x7474 2377 S_IRUSR = 0x100
2378 TIOCGPGRP = 0x40047477 2378 S_IRWXG = 0x38
2379 TIOCGPKT = 0x40045438 2379 S_IRWXO = 0x7
2380 TIOCGPTLCK = 0x40045439 2380 S_IRWXU = 0x1c0
2381 TIOCGPTN = 0x40045430 2381 S_ISGID = 0x400
2382 TIOCGPTPEER = 0x20005441 2382 S_ISUID = 0x800
2383 TIOCGRS485 = 0x4020542e 2383 S_ISVTX = 0x200
2384 TIOCGSERIAL = 0x5484 2384 S_IWGRP = 0x10
2385 TIOCGSID = 0x7416 2385 S_IWOTH = 0x2
2386 TIOCGSOFTCAR = 0x5481 2386 S_IWRITE = 0x80
2387 TIOCGWINSZ = 0x40087468 2387 S_IWUSR = 0x80
2388 TIOCINQ = 0x467f 2388 S_IXGRP = 0x8
2389 TIOCLINUX = 0x5483 2389 S_IXOTH = 0x1
2390 TIOCMBIC = 0x741c 2390 S_IXUSR = 0x40
2391 TIOCMBIS = 0x741b 2391 TAB0 = 0x0
2392 TIOCMGET = 0x741d 2392 TAB1 = 0x800
2393 TIOCMIWAIT = 0x5491 2393 TAB2 = 0x1000
2394 TIOCMSET = 0x741a 2394 TAB3 = 0x1800
2395 TIOCM_CAR = 0x100 2395 TABDLY = 0x1800
2396 TIOCM_CD = 0x100 2396 TASKSTATS_CMD_ATTR_MAX = 0x4
2397 TIOCM_CTS = 0x40 2397 TASKSTATS_CMD_MAX = 0x2
2398 TIOCM_DSR = 0x400 2398 TASKSTATS_GENL_NAME = "TASKSTATS"
2399 TIOCM_DTR = 0x2 2399 TASKSTATS_GENL_VERSION = 0x1
2400 TIOCM_LE = 0x1 2400 TASKSTATS_TYPE_MAX = 0x6
2401 TIOCM_RI = 0x200 2401 TASKSTATS_VERSION = 0x9
2402 TIOCM_RNG = 0x200 2402 TCFLSH = 0x5407
2403 TIOCM_RTS = 0x4 2403 TCGETA = 0x5401
2404 TIOCM_SR = 0x20 2404 TCGETS = 0x540d
2405 TIOCM_ST = 0x10 2405 TCGETS2 = 0x4030542a
2406 TIOCNOTTY = 0x5471 2406 TCIFLUSH = 0x0
2407 TIOCNXCL = 0x740e 2407 TCIOFF = 0x2
2408 TIOCOUTQ = 0x7472 2408 TCIOFLUSH = 0x2
2409 TIOCPKT = 0x5470 2409 TCION = 0x3
2410 TIOCPKT_DATA = 0x0 2410 TCOFLUSH = 0x1
2411 TIOCPKT_DOSTOP = 0x20 2411 TCOOFF = 0x0
2412 TIOCPKT_FLUSHREAD = 0x1 2412 TCOON = 0x1
2413 TIOCPKT_FLUSHWRITE = 0x2 2413 TCP_BPF_IW = 0x3e9
2414 TIOCPKT_IOCTL = 0x40 2414 TCP_BPF_SNDCWND_CLAMP = 0x3ea
2415 TIOCPKT_NOSTOP = 0x10 2415 TCP_CC_INFO = 0x1a
2416 TIOCPKT_START = 0x8 2416 TCP_CM_INQ = 0x24
2417 TIOCPKT_STOP = 0x4 2417 TCP_CONGESTION = 0xd
2418 TIOCSBRK = 0x5427 2418 TCP_COOKIE_IN_ALWAYS = 0x1
2419 TIOCSCTTY = 0x5480 2419 TCP_COOKIE_MAX = 0x10
2420 TIOCSERCONFIG = 0x5488 2420 TCP_COOKIE_MIN = 0x8
2421 TIOCSERGETLSR = 0x548e 2421 TCP_COOKIE_OUT_NEVER = 0x2
2422 TIOCSERGETMULTI = 0x548f 2422 TCP_COOKIE_PAIR_SIZE = 0x20
2423 TIOCSERGSTRUCT = 0x548d 2423 TCP_COOKIE_TRANSACTIONS = 0xf
2424 TIOCSERGWILD = 0x5489 2424 TCP_CORK = 0x3
2425 TIOCSERSETMULTI = 0x5490 2425 TCP_DEFER_ACCEPT = 0x9
2426 TIOCSERSWILD = 0x548a 2426 TCP_FASTOPEN = 0x17
2427 TIOCSER_TEMT = 0x1 2427 TCP_FASTOPEN_CONNECT = 0x1e
2428 TIOCSETD = 0x7401 2428 TCP_FASTOPEN_KEY = 0x21
2429 TIOCSETN = 0x740a 2429 TCP_FASTOPEN_NO_COOKIE = 0x22
2430 TIOCSETP = 0x7409 2430 TCP_INFO = 0xb
2431 TIOCSIG = 0x80045436 2431 TCP_INQ = 0x24
2432 TIOCSISO7816 = 0xc0285443 2432 TCP_KEEPCNT = 0x6
2433 TIOCSLCKTRMIOS = 0x548c 2433 TCP_KEEPIDLE = 0x4
2434 TIOCSLTC = 0x7475 2434 TCP_KEEPINTVL = 0x5
2435 TIOCSPGRP = 0x80047476 2435 TCP_LINGER2 = 0x8
2436 TIOCSPTLCK = 0x80045431 2436 TCP_MAXSEG = 0x2
2437 TIOCSRS485 = 0xc020542f 2437 TCP_MAXWIN = 0xffff
2438 TIOCSSERIAL = 0x5485 2438 TCP_MAX_WINSHIFT = 0xe
2439 TIOCSSOFTCAR = 0x5482 2439 TCP_MD5SIG = 0xe
2440 TIOCSTI = 0x5472 2440 TCP_MD5SIG_EXT = 0x20
2441 TIOCSWINSZ = 0x80087467 2441 TCP_MD5SIG_FLAG_PREFIX = 0x1
2442 TIOCVHANGUP = 0x5437 2442 TCP_MD5SIG_MAXKEYLEN = 0x50
2443 TMPFS_MAGIC = 0x1021994 2443 TCP_MSS = 0x200
2444 TOSTOP = 0x8000 2444 TCP_MSS_DEFAULT = 0x218
2445 TPACKET_ALIGNMENT = 0x10 2445 TCP_MSS_DESIRED = 0x4c4
2446 TPACKET_HDRLEN = 0x34 2446 TCP_NODELAY = 0x1
2447 TP_STATUS_AVAILABLE = 0x0 2447 TCP_NOTSENT_LOWAT = 0x19
2448 TP_STATUS_BLK_TMO = 0x20 2448 TCP_QUEUE_SEQ = 0x15
2449 TP_STATUS_COPY = 0x2 2449 TCP_QUICKACK = 0xc
2450 TP_STATUS_CSUMNOTREADY = 0x8 2450 TCP_REPAIR = 0x13
2451 TP_STATUS_CSUM_VALID = 0x80 2451 TCP_REPAIR_OFF = 0x0
2452 TP_STATUS_KERNEL = 0x0 2452 TCP_REPAIR_OFF_NO_WP = -0x1
2453 TP_STATUS_LOSING = 0x4 2453 TCP_REPAIR_ON = 0x1
2454 TP_STATUS_SENDING = 0x2 2454 TCP_REPAIR_OPTIONS = 0x16
2455 TP_STATUS_SEND_REQUEST = 0x1 2455 TCP_REPAIR_QUEUE = 0x14
2456 TP_STATUS_TS_RAW_HARDWARE = -0x80000000 2456 TCP_REPAIR_WINDOW = 0x1d
2457 TP_STATUS_TS_SOFTWARE = 0x20000000 2457 TCP_SAVED_SYN = 0x1c
2458 TP_STATUS_TS_SYS_HARDWARE = 0x40000000 2458 TCP_SAVE_SYN = 0x1b
2459 TP_STATUS_USER = 0x1 2459 TCP_SYNCNT = 0x7
2460 TP_STATUS_VLAN_TPID_VALID = 0x40 2460 TCP_S_DATA_IN = 0x4
2461 TP_STATUS_VLAN_VALID = 0x10 2461 TCP_S_DATA_OUT = 0x8
2462 TP_STATUS_WRONG_FORMAT = 0x4 2462 TCP_THIN_DUPACK = 0x11
2463 TRACEFS_MAGIC = 0x74726163 2463 TCP_THIN_LINEAR_TIMEOUTS = 0x10
2464 TS_COMM_LEN = 0x20 2464 TCP_TIMESTAMP = 0x18
2465 TUNATTACHFILTER = 0x800854d5 2465 TCP_TX_DELAY = 0x25
2466 TUNDETACHFILTER = 0x800854d6 2466 TCP_ULP = 0x1f
2467 TUNGETDEVNETNS = 0x200054e3 2467 TCP_USER_TIMEOUT = 0x12
2468 TUNGETFEATURES = 0x400454cf 2468 TCP_WINDOW_CLAMP = 0xa
2469 TUNGETFILTER = 0x400854db 2469 TCP_ZEROCOPY_RECEIVE = 0x23
2470 TUNGETIFF = 0x400454d2 2470 TCSAFLUSH = 0x5410
2471 TUNGETSNDBUF = 0x400454d3 2471 TCSBRK = 0x5405
2472 TUNGETVNETBE = 0x400454df 2472 TCSBRKP = 0x5486
2473 TUNGETVNETHDRSZ = 0x400454d7 2473 TCSETA = 0x5402
2474 TUNGETVNETLE = 0x400454dd 2474 TCSETAF = 0x5404
2475 TUNSETCARRIER = 0x800454e2 2475 TCSETAW = 0x5403
2476 TUNSETDEBUG = 0x800454c9 2476 TCSETS = 0x540e
2477 TUNSETFILTEREBPF = 0x400454e1 2477 TCSETS2 = 0x8030542b
2478 TUNSETGROUP = 0x800454ce 2478 TCSETSF = 0x5410
2479 TUNSETIFF = 0x800454ca 2479 TCSETSF2 = 0x8030542d
2480 TUNSETIFINDEX = 0x800454da 2480 TCSETSW = 0x540f
2481 TUNSETLINK = 0x800454cd 2481 TCSETSW2 = 0x8030542c
2482 TUNSETNOCSUM = 0x800454c8 2482 TCXONC = 0x5406
2483 TUNSETOFFLOAD = 0x800454d0 2483 TIMER_ABSTIME = 0x1
2484 TUNSETOWNER = 0x800454cc 2484 TIOCCBRK = 0x5428
2485 TUNSETPERSIST = 0x800454cb 2485 TIOCCONS = 0x80047478
2486 TUNSETQUEUE = 0x800454d9 2486 TIOCEXCL = 0x740d
2487 TUNSETSNDBUF = 0x800454d4 2487 TIOCGDEV = 0x40045432
2488 TUNSETSTEERINGEBPF = 0x400454e0 2488 TIOCGETD = 0x7400
2489 TUNSETTXFILTER = 0x800454d1 2489 TIOCGETP = 0x7408
2490 TUNSETVNETBE = 0x800454de 2490 TIOCGEXCL = 0x40045440
2491 TUNSETVNETHDRSZ = 0x800454d8 2491 TIOCGICOUNT = 0x5492
2492 TUNSETVNETLE = 0x800454dc 2492 TIOCGISO7816 = 0x40285442
2493 UBI_IOCATT = 0x80186f40 2493 TIOCGLCKTRMIOS = 0x548b
2494 UBI_IOCDET = 0x80046f41 2494 TIOCGLTC = 0x7474
2495 UBI_IOCEBCH = 0x80044f02 2495 TIOCGPGRP = 0x40047477
2496 UBI_IOCEBER = 0x80044f01 2496 TIOCGPKT = 0x40045438
2497 UBI_IOCEBISMAP = 0x40044f05 2497 TIOCGPTLCK = 0x40045439
2498 UBI_IOCEBMAP = 0x80084f03 2498 TIOCGPTN = 0x40045430
2499 UBI_IOCEBUNMAP = 0x80044f04 2499 TIOCGPTPEER = 0x20005441
2500 UBI_IOCMKVOL = 0x80986f00 2500 TIOCGRS485 = 0x4020542e
2501 UBI_IOCRMVOL = 0x80046f01 2501 TIOCGSERIAL = 0x5484
2502 UBI_IOCRNVOL = 0x91106f03 2502 TIOCGSID = 0x7416
2503 UBI_IOCRPEB = 0x80046f04 2503 TIOCGSOFTCAR = 0x5481
2504 UBI_IOCRSVOL = 0x800c6f02 2504 TIOCGWINSZ = 0x40087468
2505 UBI_IOCSETVOLPROP = 0x80104f06 2505 TIOCINQ = 0x467f
2506 UBI_IOCSPEB = 0x80046f05 2506 TIOCLINUX = 0x5483
2507 UBI_IOCVOLCRBLK = 0x80804f07 2507 TIOCMBIC = 0x741c
2508 UBI_IOCVOLRMBLK = 0x20004f08 2508 TIOCMBIS = 0x741b
2509 UBI_IOCVOLUP = 0x80084f00 2509 TIOCMGET = 0x741d
2510 UDF_SUPER_MAGIC = 0x15013346 2510 TIOCMIWAIT = 0x5491
2511 UMOUNT_NOFOLLOW = 0x8 2511 TIOCMSET = 0x741a
2512 USBDEVICE_SUPER_MAGIC = 0x9fa2 2512 TIOCM_CAR = 0x100
2513 UTIME_NOW = 0x3fffffff 2513 TIOCM_CD = 0x100
2514 UTIME_OMIT = 0x3ffffffe 2514 TIOCM_CTS = 0x40
2515 V9FS_MAGIC = 0x1021997 2515 TIOCM_DSR = 0x400
2516 VDISCARD = 0xd 2516 TIOCM_DTR = 0x2
2517 VEOF = 0x10 2517 TIOCM_LE = 0x1
2518 VEOL = 0x11 2518 TIOCM_RI = 0x200
2519 VEOL2 = 0x6 2519 TIOCM_RNG = 0x200
2520 VERASE = 0x2 2520 TIOCM_RTS = 0x4
2521 VINTR = 0x0 2521 TIOCM_SR = 0x20
2522 VKILL = 0x3 2522 TIOCM_ST = 0x10
2523 VLNEXT = 0xf 2523 TIOCNOTTY = 0x5471
2524 VMADDR_CID_ANY = 0xffffffff 2524 TIOCNXCL = 0x740e
2525 VMADDR_CID_HOST = 0x2 2525 TIOCOUTQ = 0x7472
2526 VMADDR_CID_HYPERVISOR = 0x0 2526 TIOCPKT = 0x5470
2527 VMADDR_CID_RESERVED = 0x1 2527 TIOCPKT_DATA = 0x0
2528 VMADDR_PORT_ANY = 0xffffffff 2528 TIOCPKT_DOSTOP = 0x20
2529 VMIN = 0x4 2529 TIOCPKT_FLUSHREAD = 0x1
2530 VM_SOCKETS_INVALID_VERSION = 0xffffffff 2530 TIOCPKT_FLUSHWRITE = 0x2
2531 VQUIT = 0x1 2531 TIOCPKT_IOCTL = 0x40
2532 VREPRINT = 0xc 2532 TIOCPKT_NOSTOP = 0x10
2533 VSTART = 0x8 2533 TIOCPKT_START = 0x8
2534 VSTOP = 0x9 2534 TIOCPKT_STOP = 0x4
2535 VSUSP = 0xa 2535 TIOCSBRK = 0x5427
2536 VSWTC = 0x7 2536 TIOCSCTTY = 0x5480
2537 VSWTCH = 0x7 2537 TIOCSERCONFIG = 0x5488
2538 VT0 = 0x0 2538 TIOCSERGETLSR = 0x548e
2539 VT1 = 0x4000 2539 TIOCSERGETMULTI = 0x548f
2540 VTDLY = 0x4000 2540 TIOCSERGSTRUCT = 0x548d
2541 VTIME = 0x5 2541 TIOCSERGWILD = 0x5489
2542 VWERASE = 0xe 2542 TIOCSERSETMULTI = 0x5490
2543 WALL = 0x40000000 2543 TIOCSERSWILD = 0x548a
2544 WCLONE = 0x80000000 2544 TIOCSER_TEMT = 0x1
2545 WCONTINUED = 0x8 2545 TIOCSETD = 0x7401
2546 WDIOC_GETBOOTSTATUS = 0x40045702 2546 TIOCSETN = 0x740a
2547 WDIOC_GETPRETIMEOUT = 0x40045709 2547 TIOCSETP = 0x7409
2548 WDIOC_GETSTATUS = 0x40045701 2548 TIOCSIG = 0x80045436
2549 WDIOC_GETSUPPORT = 0x40285700 2549 TIOCSISO7816 = 0xc0285443
2550 WDIOC_GETTEMP = 0x40045703 2550 TIOCSLCKTRMIOS = 0x548c
2551 WDIOC_GETTIMELEFT = 0x4004570a 2551 TIOCSLTC = 0x7475
2552 WDIOC_GETTIMEOUT = 0x40045707 2552 TIOCSPGRP = 0x80047476
2553 WDIOC_KEEPALIVE = 0x40045705 2553 TIOCSPTLCK = 0x80045431
2554 WDIOC_SETOPTIONS = 0x40045704 2554 TIOCSRS485 = 0xc020542f
2555 WDIOC_SETPRETIMEOUT = 0xc0045708 2555 TIOCSSERIAL = 0x5485
2556 WDIOC_SETTIMEOUT = 0xc0045706 2556 TIOCSSOFTCAR = 0x5482
2557 WEXITED = 0x4 2557 TIOCSTI = 0x5472
2558 WIN_ACKMEDIACHANGE = 0xdb 2558 TIOCSWINSZ = 0x80087467
2559 WIN_CHECKPOWERMODE1 = 0xe5 2559 TIOCVHANGUP = 0x5437
2560 WIN_CHECKPOWERMODE2 = 0x98 2560 TIPC_ADDR_ID = 0x3
2561 WIN_DEVICE_RESET = 0x8 2561 TIPC_ADDR_MCAST = 0x1
2562 WIN_DIAGNOSE = 0x90 2562 TIPC_ADDR_NAME = 0x2
2563 WIN_DOORLOCK = 0xde 2563 TIPC_ADDR_NAMESEQ = 0x1
2564 WIN_DOORUNLOCK = 0xdf 2564 TIPC_AEAD_ALG_NAME = 0x20
2565 WIN_DOWNLOAD_MICROCODE = 0x92 2565 TIPC_AEAD_KEYLEN_MAX = 0x24
2566 WIN_FLUSH_CACHE = 0xe7 2566 TIPC_AEAD_KEYLEN_MIN = 0x14
2567 WIN_FLUSH_CACHE_EXT = 0xea 2567 TIPC_AEAD_KEY_SIZE_MAX = 0x48
2568 WIN_FORMAT = 0x50 2568 TIPC_CFG_SRV = 0x0
2569 WIN_GETMEDIASTATUS = 0xda 2569 TIPC_CLUSTER_BITS = 0xc
2570 WIN_IDENTIFY = 0xec 2570 TIPC_CLUSTER_MASK = 0xfff000
2571 WIN_IDENTIFY_DMA = 0xee 2571 TIPC_CLUSTER_OFFSET = 0xc
2572 WIN_IDLEIMMEDIATE = 0xe1 2572 TIPC_CLUSTER_SIZE = 0xfff
2573 WIN_INIT = 0x60 2573 TIPC_CONN_SHUTDOWN = 0x5
2574 WIN_MEDIAEJECT = 0xed 2574 TIPC_CONN_TIMEOUT = 0x82
2575 WIN_MULTREAD = 0xc4 2575 TIPC_CRITICAL_IMPORTANCE = 0x3
2576 WIN_MULTREAD_EXT = 0x29 2576 TIPC_DESTNAME = 0x3
2577 WIN_MULTWRITE = 0xc5 2577 TIPC_DEST_DROPPABLE = 0x81
2578 WIN_MULTWRITE_EXT = 0x39 2578 TIPC_ERRINFO = 0x1
2579 WIN_NOP = 0x0 2579 TIPC_ERR_NO_NAME = 0x1
2580 WIN_PACKETCMD = 0xa0 2580 TIPC_ERR_NO_NODE = 0x3
2581 WIN_PIDENTIFY = 0xa1 2581 TIPC_ERR_NO_PORT = 0x2
2582 WIN_POSTBOOT = 0xdc 2582 TIPC_ERR_OVERLOAD = 0x4
2583 WIN_PREBOOT = 0xdd 2583 TIPC_GROUP_JOIN = 0x87
2584 WIN_QUEUED_SERVICE = 0xa2 2584 TIPC_GROUP_LEAVE = 0x88
2585 WIN_READ = 0x20 2585 TIPC_GROUP_LOOPBACK = 0x1
2586 WIN_READDMA = 0xc8 2586 TIPC_GROUP_MEMBER_EVTS = 0x2
2587 WIN_READDMA_EXT = 0x25 2587 TIPC_HIGH_IMPORTANCE = 0x2
2588 WIN_READDMA_ONCE = 0xc9 2588 TIPC_IMPORTANCE = 0x7f
2589 WIN_READDMA_QUEUED = 0xc7 2589 TIPC_LINK_STATE = 0x2
2590 WIN_READDMA_QUEUED_EXT = 0x26 2590 TIPC_LOW_IMPORTANCE = 0x0
2591 WIN_READ_BUFFER = 0xe4 2591 TIPC_MAX_BEARER_NAME = 0x20
2592 WIN_READ_EXT = 0x24 2592 TIPC_MAX_IF_NAME = 0x10
2593 WIN_READ_LONG = 0x22 2593 TIPC_MAX_LINK_NAME = 0x44
2594 WIN_READ_LONG_ONCE = 0x23 2594 TIPC_MAX_MEDIA_NAME = 0x10
2595 WIN_READ_NATIVE_MAX = 0xf8 2595 TIPC_MAX_USER_MSG_SIZE = 0x101d0
2596 WIN_READ_NATIVE_MAX_EXT = 0x27 2596 TIPC_MCAST_BROADCAST = 0x85
2597 WIN_READ_ONCE = 0x21 2597 TIPC_MCAST_REPLICAST = 0x86
2598 WIN_RECAL = 0x10 2598 TIPC_MEDIUM_IMPORTANCE = 0x1
2599 WIN_RESTORE = 0x10 2599 TIPC_NODEID_LEN = 0x10
2600 WIN_SECURITY_DISABLE = 0xf6 2600 TIPC_NODELAY = 0x8a
2601 WIN_SECURITY_ERASE_PREPARE = 0xf3 2601 TIPC_NODE_BITS = 0xc
2602 WIN_SECURITY_ERASE_UNIT = 0xf4 2602 TIPC_NODE_MASK = 0xfff
2603 WIN_SECURITY_FREEZE_LOCK = 0xf5 2603 TIPC_NODE_OFFSET = 0x0
2604 WIN_SECURITY_SET_PASS = 0xf1 2604 TIPC_NODE_RECVQ_DEPTH = 0x83
2605 WIN_SECURITY_UNLOCK = 0xf2 2605 TIPC_NODE_SIZE = 0xfff
2606 WIN_SEEK = 0x70 2606 TIPC_NODE_STATE = 0x0
2607 WIN_SETFEATURES = 0xef 2607 TIPC_OK = 0x0
2608 WIN_SETIDLE1 = 0xe3 2608 TIPC_PUBLISHED = 0x1
2609 WIN_SETIDLE2 = 0x97 2609 TIPC_RESERVED_TYPES = 0x40
2610 WIN_SETMULT = 0xc6 2610 TIPC_RETDATA = 0x2
2611 WIN_SET_MAX = 0xf9 2611 TIPC_SERVICE_ADDR = 0x2
2612 WIN_SET_MAX_EXT = 0x37 2612 TIPC_SERVICE_RANGE = 0x1
2613 WIN_SLEEPNOW1 = 0xe6 2613 TIPC_SOCKET_ADDR = 0x3
2614 WIN_SLEEPNOW2 = 0x99 2614 TIPC_SOCK_RECVQ_DEPTH = 0x84
2615 WIN_SMART = 0xb0 2615 TIPC_SOCK_RECVQ_USED = 0x89
2616 WIN_SPECIFY = 0x91 2616 TIPC_SRC_DROPPABLE = 0x80
2617 WIN_SRST = 0x8 2617 TIPC_SUBSCR_TIMEOUT = 0x3
2618 WIN_STANDBY = 0xe2 2618 TIPC_SUB_CANCEL = 0x4
2619 WIN_STANDBY2 = 0x96 2619 TIPC_SUB_PORTS = 0x1
2620 WIN_STANDBYNOW1 = 0xe0 2620 TIPC_SUB_SERVICE = 0x2
2621 WIN_STANDBYNOW2 = 0x94 2621 TIPC_TOP_SRV = 0x1
2622 WIN_VERIFY = 0x40 2622 TIPC_WAIT_FOREVER = 0xffffffff
2623 WIN_VERIFY_EXT = 0x42 2623 TIPC_WITHDRAWN = 0x2
2624 WIN_VERIFY_ONCE = 0x41 2624 TIPC_ZONE_BITS = 0x8
2625 WIN_WRITE = 0x30 2625 TIPC_ZONE_CLUSTER_MASK = 0xfffff000
2626 WIN_WRITEDMA = 0xca 2626 TIPC_ZONE_MASK = 0xff000000
2627 WIN_WRITEDMA_EXT = 0x35 2627 TIPC_ZONE_OFFSET = 0x18
2628 WIN_WRITEDMA_ONCE = 0xcb 2628 TIPC_ZONE_SCOPE = 0x1
2629 WIN_WRITEDMA_QUEUED = 0xcc 2629 TIPC_ZONE_SIZE = 0xff
2630 WIN_WRITEDMA_QUEUED_EXT = 0x36 2630 TMPFS_MAGIC = 0x1021994
2631 WIN_WRITE_BUFFER = 0xe8 2631 TOSTOP = 0x8000
2632 WIN_WRITE_EXT = 0x34 2632 TPACKET_ALIGNMENT = 0x10
2633 WIN_WRITE_LONG = 0x32 2633 TPACKET_HDRLEN = 0x34
2634 WIN_WRITE_LONG_ONCE = 0x33 2634 TP_STATUS_AVAILABLE = 0x0
2635 WIN_WRITE_ONCE = 0x31 2635 TP_STATUS_BLK_TMO = 0x20
2636 WIN_WRITE_SAME = 0xe9 2636 TP_STATUS_COPY = 0x2
2637 WIN_WRITE_VERIFY = 0x3c 2637 TP_STATUS_CSUMNOTREADY = 0x8
2638 WNOHANG = 0x1 2638 TP_STATUS_CSUM_VALID = 0x80
2639 WNOTHREAD = 0x20000000 2639 TP_STATUS_KERNEL = 0x0
2640 WNOWAIT = 0x1000000 2640 TP_STATUS_LOSING = 0x4
2641 WORDSIZE = 0x20 2641 TP_STATUS_SENDING = 0x2
2642 WSTOPPED = 0x2 2642 TP_STATUS_SEND_REQUEST = 0x1
2643 WUNTRACED = 0x2 2643 TP_STATUS_TS_RAW_HARDWARE = 0x80000000
2644 XATTR_CREATE = 0x1 2644 TP_STATUS_TS_SOFTWARE = 0x20000000
2645 XATTR_REPLACE = 0x2 2645 TP_STATUS_TS_SYS_HARDWARE = 0x40000000
2646 XCASE = 0x4 2646 TP_STATUS_USER = 0x1
2647 XDP_COPY = 0x2 2647 TP_STATUS_VLAN_TPID_VALID = 0x40
2648 XDP_FLAGS_DRV_MODE = 0x4 2648 TP_STATUS_VLAN_VALID = 0x10
2649 XDP_FLAGS_HW_MODE = 0x8 2649 TP_STATUS_WRONG_FORMAT = 0x4
2650 XDP_FLAGS_MASK = 0xf 2650 TRACEFS_MAGIC = 0x74726163
2651 XDP_FLAGS_MODES = 0xe 2651 TS_COMM_LEN = 0x20
2652 XDP_FLAGS_SKB_MODE = 0x2 2652 TUNATTACHFILTER = 0x800854d5
2653 XDP_FLAGS_UPDATE_IF_NOEXIST = 0x1 2653 TUNDETACHFILTER = 0x800854d6
2654 XDP_MMAP_OFFSETS = 0x1 2654 TUNGETDEVNETNS = 0x200054e3
2655 XDP_PACKET_HEADROOM = 0x100 2655 TUNGETFEATURES = 0x400454cf
2656 XDP_PGOFF_RX_RING = 0x0 2656 TUNGETFILTER = 0x400854db
2657 XDP_PGOFF_TX_RING = 0x80000000 2657 TUNGETIFF = 0x400454d2
2658 XDP_RX_RING = 0x2 2658 TUNGETSNDBUF = 0x400454d3
2659 XDP_SHARED_UMEM = 0x1 2659 TUNGETVNETBE = 0x400454df
2660 XDP_STATISTICS = 0x7 2660 TUNGETVNETHDRSZ = 0x400454d7
2661 XDP_TX_RING = 0x3 2661 TUNGETVNETLE = 0x400454dd
2662 XDP_UMEM_COMPLETION_RING = 0x6 2662 TUNSETCARRIER = 0x800454e2
2663 XDP_UMEM_FILL_RING = 0x5 2663 TUNSETDEBUG = 0x800454c9
2664 XDP_UMEM_PGOFF_COMPLETION_RING = 0x180000000 2664 TUNSETFILTEREBPF = 0x400454e1
2665 XDP_UMEM_PGOFF_FILL_RING = 0x100000000 2665 TUNSETGROUP = 0x800454ce
2666 XDP_UMEM_REG = 0x4 2666 TUNSETIFF = 0x800454ca
2667 XDP_ZEROCOPY = 0x4 2667 TUNSETIFINDEX = 0x800454da
2668 XENFS_SUPER_MAGIC = 0xabba1974 2668 TUNSETLINK = 0x800454cd
2669 XFS_SUPER_MAGIC = 0x58465342 2669 TUNSETNOCSUM = 0x800454c8
2670 XTABS = 0x1800 2670 TUNSETOFFLOAD = 0x800454d0
2671 ZSMALLOC_MAGIC = 0x58295829 2671 TUNSETOWNER = 0x800454cc
2672 TUNSETPERSIST = 0x800454cb
2673 TUNSETQUEUE = 0x800454d9
2674 TUNSETSNDBUF = 0x800454d4
2675 TUNSETSTEERINGEBPF = 0x400454e0
2676 TUNSETTXFILTER = 0x800454d1
2677 TUNSETVNETBE = 0x800454de
2678 TUNSETVNETHDRSZ = 0x800454d8
2679 TUNSETVNETLE = 0x800454dc
2680 UBI_IOCATT = 0x80186f40
2681 UBI_IOCDET = 0x80046f41
2682 UBI_IOCEBCH = 0x80044f02
2683 UBI_IOCEBER = 0x80044f01
2684 UBI_IOCEBISMAP = 0x40044f05
2685 UBI_IOCEBMAP = 0x80084f03
2686 UBI_IOCEBUNMAP = 0x80044f04
2687 UBI_IOCMKVOL = 0x80986f00
2688 UBI_IOCRMVOL = 0x80046f01
2689 UBI_IOCRNVOL = 0x91106f03
2690 UBI_IOCRPEB = 0x80046f04
2691 UBI_IOCRSVOL = 0x800c6f02
2692 UBI_IOCSETVOLPROP = 0x80104f06
2693 UBI_IOCSPEB = 0x80046f05
2694 UBI_IOCVOLCRBLK = 0x80804f07
2695 UBI_IOCVOLRMBLK = 0x20004f08
2696 UBI_IOCVOLUP = 0x80084f00
2697 UDF_SUPER_MAGIC = 0x15013346
2698 UMOUNT_NOFOLLOW = 0x8
2699 USBDEVICE_SUPER_MAGIC = 0x9fa2
2700 UTIME_NOW = 0x3fffffff
2701 UTIME_OMIT = 0x3ffffffe
2702 V9FS_MAGIC = 0x1021997
2703 VDISCARD = 0xd
2704 VEOF = 0x10
2705 VEOL = 0x11
2706 VEOL2 = 0x6
2707 VERASE = 0x2
2708 VINTR = 0x0
2709 VKILL = 0x3
2710 VLNEXT = 0xf
2711 VMADDR_CID_ANY = 0xffffffff
2712 VMADDR_CID_HOST = 0x2
2713 VMADDR_CID_HYPERVISOR = 0x0
2714 VMADDR_CID_RESERVED = 0x1
2715 VMADDR_PORT_ANY = 0xffffffff
2716 VMIN = 0x4
2717 VM_SOCKETS_INVALID_VERSION = 0xffffffff
2718 VQUIT = 0x1
2719 VREPRINT = 0xc
2720 VSTART = 0x8
2721 VSTOP = 0x9
2722 VSUSP = 0xa
2723 VSWTC = 0x7
2724 VSWTCH = 0x7
2725 VT0 = 0x0
2726 VT1 = 0x4000
2727 VTDLY = 0x4000
2728 VTIME = 0x5
2729 VWERASE = 0xe
2730 WALL = 0x40000000
2731 WCLONE = 0x80000000
2732 WCONTINUED = 0x8
2733 WDIOC_GETBOOTSTATUS = 0x40045702
2734 WDIOC_GETPRETIMEOUT = 0x40045709
2735 WDIOC_GETSTATUS = 0x40045701
2736 WDIOC_GETSUPPORT = 0x40285700
2737 WDIOC_GETTEMP = 0x40045703
2738 WDIOC_GETTIMELEFT = 0x4004570a
2739 WDIOC_GETTIMEOUT = 0x40045707
2740 WDIOC_KEEPALIVE = 0x40045705
2741 WDIOC_SETOPTIONS = 0x40045704
2742 WDIOC_SETPRETIMEOUT = 0xc0045708
2743 WDIOC_SETTIMEOUT = 0xc0045706
2744 WEXITED = 0x4
2745 WIN_ACKMEDIACHANGE = 0xdb
2746 WIN_CHECKPOWERMODE1 = 0xe5
2747 WIN_CHECKPOWERMODE2 = 0x98
2748 WIN_DEVICE_RESET = 0x8
2749 WIN_DIAGNOSE = 0x90
2750 WIN_DOORLOCK = 0xde
2751 WIN_DOORUNLOCK = 0xdf
2752 WIN_DOWNLOAD_MICROCODE = 0x92
2753 WIN_FLUSH_CACHE = 0xe7
2754 WIN_FLUSH_CACHE_EXT = 0xea
2755 WIN_FORMAT = 0x50
2756 WIN_GETMEDIASTATUS = 0xda
2757 WIN_IDENTIFY = 0xec
2758 WIN_IDENTIFY_DMA = 0xee
2759 WIN_IDLEIMMEDIATE = 0xe1
2760 WIN_INIT = 0x60
2761 WIN_MEDIAEJECT = 0xed
2762 WIN_MULTREAD = 0xc4
2763 WIN_MULTREAD_EXT = 0x29
2764 WIN_MULTWRITE = 0xc5
2765 WIN_MULTWRITE_EXT = 0x39
2766 WIN_NOP = 0x0
2767 WIN_PACKETCMD = 0xa0
2768 WIN_PIDENTIFY = 0xa1
2769 WIN_POSTBOOT = 0xdc
2770 WIN_PREBOOT = 0xdd
2771 WIN_QUEUED_SERVICE = 0xa2
2772 WIN_READ = 0x20
2773 WIN_READDMA = 0xc8
2774 WIN_READDMA_EXT = 0x25
2775 WIN_READDMA_ONCE = 0xc9
2776 WIN_READDMA_QUEUED = 0xc7
2777 WIN_READDMA_QUEUED_EXT = 0x26
2778 WIN_READ_BUFFER = 0xe4
2779 WIN_READ_EXT = 0x24
2780 WIN_READ_LONG = 0x22
2781 WIN_READ_LONG_ONCE = 0x23
2782 WIN_READ_NATIVE_MAX = 0xf8
2783 WIN_READ_NATIVE_MAX_EXT = 0x27
2784 WIN_READ_ONCE = 0x21
2785 WIN_RECAL = 0x10
2786 WIN_RESTORE = 0x10
2787 WIN_SECURITY_DISABLE = 0xf6
2788 WIN_SECURITY_ERASE_PREPARE = 0xf3
2789 WIN_SECURITY_ERASE_UNIT = 0xf4
2790 WIN_SECURITY_FREEZE_LOCK = 0xf5
2791 WIN_SECURITY_SET_PASS = 0xf1
2792 WIN_SECURITY_UNLOCK = 0xf2
2793 WIN_SEEK = 0x70
2794 WIN_SETFEATURES = 0xef
2795 WIN_SETIDLE1 = 0xe3
2796 WIN_SETIDLE2 = 0x97
2797 WIN_SETMULT = 0xc6
2798 WIN_SET_MAX = 0xf9
2799 WIN_SET_MAX_EXT = 0x37
2800 WIN_SLEEPNOW1 = 0xe6
2801 WIN_SLEEPNOW2 = 0x99
2802 WIN_SMART = 0xb0
2803 WIN_SPECIFY = 0x91
2804 WIN_SRST = 0x8
2805 WIN_STANDBY = 0xe2
2806 WIN_STANDBY2 = 0x96
2807 WIN_STANDBYNOW1 = 0xe0
2808 WIN_STANDBYNOW2 = 0x94
2809 WIN_VERIFY = 0x40
2810 WIN_VERIFY_EXT = 0x42
2811 WIN_VERIFY_ONCE = 0x41
2812 WIN_WRITE = 0x30
2813 WIN_WRITEDMA = 0xca
2814 WIN_WRITEDMA_EXT = 0x35
2815 WIN_WRITEDMA_ONCE = 0xcb
2816 WIN_WRITEDMA_QUEUED = 0xcc
2817 WIN_WRITEDMA_QUEUED_EXT = 0x36
2818 WIN_WRITE_BUFFER = 0xe8
2819 WIN_WRITE_EXT = 0x34
2820 WIN_WRITE_LONG = 0x32
2821 WIN_WRITE_LONG_ONCE = 0x33
2822 WIN_WRITE_ONCE = 0x31
2823 WIN_WRITE_SAME = 0xe9
2824 WIN_WRITE_VERIFY = 0x3c
2825 WNOHANG = 0x1
2826 WNOTHREAD = 0x20000000
2827 WNOWAIT = 0x1000000
2828 WORDSIZE = 0x20
2829 WSTOPPED = 0x2
2830 WUNTRACED = 0x2
2831 XATTR_CREATE = 0x1
2832 XATTR_REPLACE = 0x2
2833 XCASE = 0x4
2834 XDP_COPY = 0x2
2835 XDP_FLAGS_DRV_MODE = 0x4
2836 XDP_FLAGS_HW_MODE = 0x8
2837 XDP_FLAGS_MASK = 0xf
2838 XDP_FLAGS_MODES = 0xe
2839 XDP_FLAGS_SKB_MODE = 0x2
2840 XDP_FLAGS_UPDATE_IF_NOEXIST = 0x1
2841 XDP_MMAP_OFFSETS = 0x1
2842 XDP_OPTIONS = 0x8
2843 XDP_OPTIONS_ZEROCOPY = 0x1
2844 XDP_PACKET_HEADROOM = 0x100
2845 XDP_PGOFF_RX_RING = 0x0
2846 XDP_PGOFF_TX_RING = 0x80000000
2847 XDP_RING_NEED_WAKEUP = 0x1
2848 XDP_RX_RING = 0x2
2849 XDP_SHARED_UMEM = 0x1
2850 XDP_STATISTICS = 0x7
2851 XDP_TX_RING = 0x3
2852 XDP_UMEM_COMPLETION_RING = 0x6
2853 XDP_UMEM_FILL_RING = 0x5
2854 XDP_UMEM_PGOFF_COMPLETION_RING = 0x180000000
2855 XDP_UMEM_PGOFF_FILL_RING = 0x100000000
2856 XDP_UMEM_REG = 0x4
2857 XDP_UMEM_UNALIGNED_CHUNK_FLAG = 0x1
2858 XDP_USE_NEED_WAKEUP = 0x8
2859 XDP_ZEROCOPY = 0x4
2860 XENFS_SUPER_MAGIC = 0xabba1974
2861 XFS_SUPER_MAGIC = 0x58465342
2862 XTABS = 0x1800
2863 Z3FOLD_MAGIC = 0x33
2864 ZSMALLOC_MAGIC = 0x58295829
2672) 2865)
2673 2866
2674// Errors 2867// Errors
diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go
index 8ac128b..9152b5f 100644
--- a/vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go
+++ b/vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go
@@ -11,2664 +11,2857 @@ package unix
11import "syscall" 11import "syscall"
12 12
13const ( 13const (
14 AAFS_MAGIC = 0x5a3c69f0 14 AAFS_MAGIC = 0x5a3c69f0
15 ADFS_SUPER_MAGIC = 0xadf5 15 ADFS_SUPER_MAGIC = 0xadf5
16 AFFS_SUPER_MAGIC = 0xadff 16 AFFS_SUPER_MAGIC = 0xadff
17 AFS_FS_MAGIC = 0x6b414653 17 AFS_FS_MAGIC = 0x6b414653
18 AFS_SUPER_MAGIC = 0x5346414f 18 AFS_SUPER_MAGIC = 0x5346414f
19 AF_ALG = 0x26 19 AF_ALG = 0x26
20 AF_APPLETALK = 0x5 20 AF_APPLETALK = 0x5
21 AF_ASH = 0x12 21 AF_ASH = 0x12
22 AF_ATMPVC = 0x8 22 AF_ATMPVC = 0x8
23 AF_ATMSVC = 0x14 23 AF_ATMSVC = 0x14
24 AF_AX25 = 0x3 24 AF_AX25 = 0x3
25 AF_BLUETOOTH = 0x1f 25 AF_BLUETOOTH = 0x1f
26 AF_BRIDGE = 0x7 26 AF_BRIDGE = 0x7
27 AF_CAIF = 0x25 27 AF_CAIF = 0x25
28 AF_CAN = 0x1d 28 AF_CAN = 0x1d
29 AF_DECnet = 0xc 29 AF_DECnet = 0xc
30 AF_ECONET = 0x13 30 AF_ECONET = 0x13
31 AF_FILE = 0x1 31 AF_FILE = 0x1
32 AF_IB = 0x1b 32 AF_IB = 0x1b
33 AF_IEEE802154 = 0x24 33 AF_IEEE802154 = 0x24
34 AF_INET = 0x2 34 AF_INET = 0x2
35 AF_INET6 = 0xa 35 AF_INET6 = 0xa
36 AF_IPX = 0x4 36 AF_IPX = 0x4
37 AF_IRDA = 0x17 37 AF_IRDA = 0x17
38 AF_ISDN = 0x22 38 AF_ISDN = 0x22
39 AF_IUCV = 0x20 39 AF_IUCV = 0x20
40 AF_KCM = 0x29 40 AF_KCM = 0x29
41 AF_KEY = 0xf 41 AF_KEY = 0xf
42 AF_LLC = 0x1a 42 AF_LLC = 0x1a
43 AF_LOCAL = 0x1 43 AF_LOCAL = 0x1
44 AF_MAX = 0x2d 44 AF_MAX = 0x2d
45 AF_MPLS = 0x1c 45 AF_MPLS = 0x1c
46 AF_NETBEUI = 0xd 46 AF_NETBEUI = 0xd
47 AF_NETLINK = 0x10 47 AF_NETLINK = 0x10
48 AF_NETROM = 0x6 48 AF_NETROM = 0x6
49 AF_NFC = 0x27 49 AF_NFC = 0x27
50 AF_PACKET = 0x11 50 AF_PACKET = 0x11
51 AF_PHONET = 0x23 51 AF_PHONET = 0x23
52 AF_PPPOX = 0x18 52 AF_PPPOX = 0x18
53 AF_QIPCRTR = 0x2a 53 AF_QIPCRTR = 0x2a
54 AF_RDS = 0x15 54 AF_RDS = 0x15
55 AF_ROSE = 0xb 55 AF_ROSE = 0xb
56 AF_ROUTE = 0x10 56 AF_ROUTE = 0x10
57 AF_RXRPC = 0x21 57 AF_RXRPC = 0x21
58 AF_SECURITY = 0xe 58 AF_SECURITY = 0xe
59 AF_SMC = 0x2b 59 AF_SMC = 0x2b
60 AF_SNA = 0x16 60 AF_SNA = 0x16
61 AF_TIPC = 0x1e 61 AF_TIPC = 0x1e
62 AF_UNIX = 0x1 62 AF_UNIX = 0x1
63 AF_UNSPEC = 0x0 63 AF_UNSPEC = 0x0
64 AF_VSOCK = 0x28 64 AF_VSOCK = 0x28
65 AF_WANPIPE = 0x19 65 AF_WANPIPE = 0x19
66 AF_X25 = 0x9 66 AF_X25 = 0x9
67 AF_XDP = 0x2c 67 AF_XDP = 0x2c
68 ALG_OP_DECRYPT = 0x0 68 ALG_OP_DECRYPT = 0x0
69 ALG_OP_ENCRYPT = 0x1 69 ALG_OP_ENCRYPT = 0x1
70 ALG_SET_AEAD_ASSOCLEN = 0x4 70 ALG_SET_AEAD_ASSOCLEN = 0x4
71 ALG_SET_AEAD_AUTHSIZE = 0x5 71 ALG_SET_AEAD_AUTHSIZE = 0x5
72 ALG_SET_IV = 0x2 72 ALG_SET_IV = 0x2
73 ALG_SET_KEY = 0x1 73 ALG_SET_KEY = 0x1
74 ALG_SET_OP = 0x3 74 ALG_SET_OP = 0x3
75 ANON_INODE_FS_MAGIC = 0x9041934 75 ANON_INODE_FS_MAGIC = 0x9041934
76 ARPHRD_6LOWPAN = 0x339 76 ARPHRD_6LOWPAN = 0x339
77 ARPHRD_ADAPT = 0x108 77 ARPHRD_ADAPT = 0x108
78 ARPHRD_APPLETLK = 0x8 78 ARPHRD_APPLETLK = 0x8
79 ARPHRD_ARCNET = 0x7 79 ARPHRD_ARCNET = 0x7
80 ARPHRD_ASH = 0x30d 80 ARPHRD_ASH = 0x30d
81 ARPHRD_ATM = 0x13 81 ARPHRD_ATM = 0x13
82 ARPHRD_AX25 = 0x3 82 ARPHRD_AX25 = 0x3
83 ARPHRD_BIF = 0x307 83 ARPHRD_BIF = 0x307
84 ARPHRD_CAIF = 0x336 84 ARPHRD_CAIF = 0x336
85 ARPHRD_CAN = 0x118 85 ARPHRD_CAN = 0x118
86 ARPHRD_CHAOS = 0x5 86 ARPHRD_CHAOS = 0x5
87 ARPHRD_CISCO = 0x201 87 ARPHRD_CISCO = 0x201
88 ARPHRD_CSLIP = 0x101 88 ARPHRD_CSLIP = 0x101
89 ARPHRD_CSLIP6 = 0x103 89 ARPHRD_CSLIP6 = 0x103
90 ARPHRD_DDCMP = 0x205 90 ARPHRD_DDCMP = 0x205
91 ARPHRD_DLCI = 0xf 91 ARPHRD_DLCI = 0xf
92 ARPHRD_ECONET = 0x30e 92 ARPHRD_ECONET = 0x30e
93 ARPHRD_EETHER = 0x2 93 ARPHRD_EETHER = 0x2
94 ARPHRD_ETHER = 0x1 94 ARPHRD_ETHER = 0x1
95 ARPHRD_EUI64 = 0x1b 95 ARPHRD_EUI64 = 0x1b
96 ARPHRD_FCAL = 0x311 96 ARPHRD_FCAL = 0x311
97 ARPHRD_FCFABRIC = 0x313 97 ARPHRD_FCFABRIC = 0x313
98 ARPHRD_FCPL = 0x312 98 ARPHRD_FCPL = 0x312
99 ARPHRD_FCPP = 0x310 99 ARPHRD_FCPP = 0x310
100 ARPHRD_FDDI = 0x306 100 ARPHRD_FDDI = 0x306
101 ARPHRD_FRAD = 0x302 101 ARPHRD_FRAD = 0x302
102 ARPHRD_HDLC = 0x201 102 ARPHRD_HDLC = 0x201
103 ARPHRD_HIPPI = 0x30c 103 ARPHRD_HIPPI = 0x30c
104 ARPHRD_HWX25 = 0x110 104 ARPHRD_HWX25 = 0x110
105 ARPHRD_IEEE1394 = 0x18 105 ARPHRD_IEEE1394 = 0x18
106 ARPHRD_IEEE802 = 0x6 106 ARPHRD_IEEE802 = 0x6
107 ARPHRD_IEEE80211 = 0x321 107 ARPHRD_IEEE80211 = 0x321
108 ARPHRD_IEEE80211_PRISM = 0x322 108 ARPHRD_IEEE80211_PRISM = 0x322
109 ARPHRD_IEEE80211_RADIOTAP = 0x323 109 ARPHRD_IEEE80211_RADIOTAP = 0x323
110 ARPHRD_IEEE802154 = 0x324 110 ARPHRD_IEEE802154 = 0x324
111 ARPHRD_IEEE802154_MONITOR = 0x325 111 ARPHRD_IEEE802154_MONITOR = 0x325
112 ARPHRD_IEEE802_TR = 0x320 112 ARPHRD_IEEE802_TR = 0x320
113 ARPHRD_INFINIBAND = 0x20 113 ARPHRD_INFINIBAND = 0x20
114 ARPHRD_IP6GRE = 0x337 114 ARPHRD_IP6GRE = 0x337
115 ARPHRD_IPDDP = 0x309 115 ARPHRD_IPDDP = 0x309
116 ARPHRD_IPGRE = 0x30a 116 ARPHRD_IPGRE = 0x30a
117 ARPHRD_IRDA = 0x30f 117 ARPHRD_IRDA = 0x30f
118 ARPHRD_LAPB = 0x204 118 ARPHRD_LAPB = 0x204
119 ARPHRD_LOCALTLK = 0x305 119 ARPHRD_LOCALTLK = 0x305
120 ARPHRD_LOOPBACK = 0x304 120 ARPHRD_LOOPBACK = 0x304
121 ARPHRD_METRICOM = 0x17 121 ARPHRD_METRICOM = 0x17
122 ARPHRD_NETLINK = 0x338 122 ARPHRD_NETLINK = 0x338
123 ARPHRD_NETROM = 0x0 123 ARPHRD_NETROM = 0x0
124 ARPHRD_NONE = 0xfffe 124 ARPHRD_NONE = 0xfffe
125 ARPHRD_PHONET = 0x334 125 ARPHRD_PHONET = 0x334
126 ARPHRD_PHONET_PIPE = 0x335 126 ARPHRD_PHONET_PIPE = 0x335
127 ARPHRD_PIMREG = 0x30b 127 ARPHRD_PIMREG = 0x30b
128 ARPHRD_PPP = 0x200 128 ARPHRD_PPP = 0x200
129 ARPHRD_PRONET = 0x4 129 ARPHRD_PRONET = 0x4
130 ARPHRD_RAWHDLC = 0x206 130 ARPHRD_RAWHDLC = 0x206
131 ARPHRD_RAWIP = 0x207 131 ARPHRD_RAWIP = 0x207
132 ARPHRD_ROSE = 0x10e 132 ARPHRD_ROSE = 0x10e
133 ARPHRD_RSRVD = 0x104 133 ARPHRD_RSRVD = 0x104
134 ARPHRD_SIT = 0x308 134 ARPHRD_SIT = 0x308
135 ARPHRD_SKIP = 0x303 135 ARPHRD_SKIP = 0x303
136 ARPHRD_SLIP = 0x100 136 ARPHRD_SLIP = 0x100
137 ARPHRD_SLIP6 = 0x102 137 ARPHRD_SLIP6 = 0x102
138 ARPHRD_TUNNEL = 0x300 138 ARPHRD_TUNNEL = 0x300
139 ARPHRD_TUNNEL6 = 0x301 139 ARPHRD_TUNNEL6 = 0x301
140 ARPHRD_VOID = 0xffff 140 ARPHRD_VOID = 0xffff
141 ARPHRD_VSOCKMON = 0x33a 141 ARPHRD_VSOCKMON = 0x33a
142 ARPHRD_X25 = 0x10f 142 ARPHRD_X25 = 0x10f
143 AUTOFS_SUPER_MAGIC = 0x187 143 AUTOFS_SUPER_MAGIC = 0x187
144 B0 = 0x0 144 B0 = 0x0
145 B1000000 = 0x1008 145 B1000000 = 0x1008
146 B110 = 0x3 146 B110 = 0x3
147 B115200 = 0x1002 147 B115200 = 0x1002
148 B1152000 = 0x1009 148 B1152000 = 0x1009
149 B1200 = 0x9 149 B1200 = 0x9
150 B134 = 0x4 150 B134 = 0x4
151 B150 = 0x5 151 B150 = 0x5
152 B1500000 = 0x100a 152 B1500000 = 0x100a
153 B1800 = 0xa 153 B1800 = 0xa
154 B19200 = 0xe 154 B19200 = 0xe
155 B200 = 0x6 155 B200 = 0x6
156 B2000000 = 0x100b 156 B2000000 = 0x100b
157 B230400 = 0x1003 157 B230400 = 0x1003
158 B2400 = 0xb 158 B2400 = 0xb
159 B2500000 = 0x100c 159 B2500000 = 0x100c
160 B300 = 0x7 160 B300 = 0x7
161 B3000000 = 0x100d 161 B3000000 = 0x100d
162 B3500000 = 0x100e 162 B3500000 = 0x100e
163 B38400 = 0xf 163 B38400 = 0xf
164 B4000000 = 0x100f 164 B4000000 = 0x100f
165 B460800 = 0x1004 165 B460800 = 0x1004
166 B4800 = 0xc 166 B4800 = 0xc
167 B50 = 0x1 167 B50 = 0x1
168 B500000 = 0x1005 168 B500000 = 0x1005
169 B57600 = 0x1001 169 B57600 = 0x1001
170 B576000 = 0x1006 170 B576000 = 0x1006
171 B600 = 0x8 171 B600 = 0x8
172 B75 = 0x2 172 B75 = 0x2
173 B921600 = 0x1007 173 B921600 = 0x1007
174 B9600 = 0xd 174 B9600 = 0xd
175 BALLOON_KVM_MAGIC = 0x13661366 175 BALLOON_KVM_MAGIC = 0x13661366
176 BDEVFS_MAGIC = 0x62646576 176 BDEVFS_MAGIC = 0x62646576
177 BINDERFS_SUPER_MAGIC = 0x6c6f6f70 177 BINDERFS_SUPER_MAGIC = 0x6c6f6f70
178 BINFMTFS_MAGIC = 0x42494e4d 178 BINFMTFS_MAGIC = 0x42494e4d
179 BLKBSZGET = 0x40081270 179 BLKBSZGET = 0x40081270
180 BLKBSZSET = 0x80081271 180 BLKBSZSET = 0x80081271
181 BLKFLSBUF = 0x20001261 181 BLKFLSBUF = 0x20001261
182 BLKFRAGET = 0x20001265 182 BLKFRAGET = 0x20001265
183 BLKFRASET = 0x20001264 183 BLKFRASET = 0x20001264
184 BLKGETSIZE = 0x20001260 184 BLKGETSIZE = 0x20001260
185 BLKGETSIZE64 = 0x40081272 185 BLKGETSIZE64 = 0x40081272
186 BLKPBSZGET = 0x2000127b 186 BLKPBSZGET = 0x2000127b
187 BLKRAGET = 0x20001263 187 BLKRAGET = 0x20001263
188 BLKRASET = 0x20001262 188 BLKRASET = 0x20001262
189 BLKROGET = 0x2000125e 189 BLKROGET = 0x2000125e
190 BLKROSET = 0x2000125d 190 BLKROSET = 0x2000125d
191 BLKRRPART = 0x2000125f 191 BLKRRPART = 0x2000125f
192 BLKSECTGET = 0x20001267 192 BLKSECTGET = 0x20001267
193 BLKSECTSET = 0x20001266 193 BLKSECTSET = 0x20001266
194 BLKSSZGET = 0x20001268 194 BLKSSZGET = 0x20001268
195 BOTHER = 0x1000 195 BOTHER = 0x1000
196 BPF_A = 0x10 196 BPF_A = 0x10
197 BPF_ABS = 0x20 197 BPF_ABS = 0x20
198 BPF_ADD = 0x0 198 BPF_ADD = 0x0
199 BPF_ADJ_ROOM_ENCAP_L2_MASK = 0xff 199 BPF_ADJ_ROOM_ENCAP_L2_MASK = 0xff
200 BPF_ADJ_ROOM_ENCAP_L2_SHIFT = 0x38 200 BPF_ADJ_ROOM_ENCAP_L2_SHIFT = 0x38
201 BPF_ALU = 0x4 201 BPF_ALU = 0x4
202 BPF_ALU64 = 0x7 202 BPF_ALU64 = 0x7
203 BPF_AND = 0x50 203 BPF_AND = 0x50
204 BPF_ANY = 0x0 204 BPF_ANY = 0x0
205 BPF_ARSH = 0xc0 205 BPF_ARSH = 0xc0
206 BPF_B = 0x10 206 BPF_B = 0x10
207 BPF_BUILD_ID_SIZE = 0x14 207 BPF_BUILD_ID_SIZE = 0x14
208 BPF_CALL = 0x80 208 BPF_CALL = 0x80
209 BPF_DEVCG_ACC_MKNOD = 0x1 209 BPF_DEVCG_ACC_MKNOD = 0x1
210 BPF_DEVCG_ACC_READ = 0x2 210 BPF_DEVCG_ACC_READ = 0x2
211 BPF_DEVCG_ACC_WRITE = 0x4 211 BPF_DEVCG_ACC_WRITE = 0x4
212 BPF_DEVCG_DEV_BLOCK = 0x1 212 BPF_DEVCG_DEV_BLOCK = 0x1
213 BPF_DEVCG_DEV_CHAR = 0x2 213 BPF_DEVCG_DEV_CHAR = 0x2
214 BPF_DIV = 0x30 214 BPF_DIV = 0x30
215 BPF_DW = 0x18 215 BPF_DW = 0x18
216 BPF_END = 0xd0 216 BPF_END = 0xd0
217 BPF_EXIST = 0x2 217 BPF_EXIST = 0x2
218 BPF_EXIT = 0x90 218 BPF_EXIT = 0x90
219 BPF_FROM_BE = 0x8 219 BPF_FLOW_DISSECTOR_F_PARSE_1ST_FRAG = 0x1
220 BPF_FROM_LE = 0x0 220 BPF_FLOW_DISSECTOR_F_STOP_AT_ENCAP = 0x4
221 BPF_FS_MAGIC = 0xcafe4a11 221 BPF_FLOW_DISSECTOR_F_STOP_AT_FLOW_LABEL = 0x2
222 BPF_F_ADJ_ROOM_ENCAP_L3_IPV4 = 0x2 222 BPF_FROM_BE = 0x8
223 BPF_F_ADJ_ROOM_ENCAP_L3_IPV6 = 0x4 223 BPF_FROM_LE = 0x0
224 BPF_F_ADJ_ROOM_ENCAP_L4_GRE = 0x8 224 BPF_FS_MAGIC = 0xcafe4a11
225 BPF_F_ADJ_ROOM_ENCAP_L4_UDP = 0x10 225 BPF_F_ADJ_ROOM_ENCAP_L3_IPV4 = 0x2
226 BPF_F_ADJ_ROOM_FIXED_GSO = 0x1 226 BPF_F_ADJ_ROOM_ENCAP_L3_IPV6 = 0x4
227 BPF_F_ALLOW_MULTI = 0x2 227 BPF_F_ADJ_ROOM_ENCAP_L4_GRE = 0x8
228 BPF_F_ALLOW_OVERRIDE = 0x1 228 BPF_F_ADJ_ROOM_ENCAP_L4_UDP = 0x10
229 BPF_F_ANY_ALIGNMENT = 0x2 229 BPF_F_ADJ_ROOM_FIXED_GSO = 0x1
230 BPF_F_CTXLEN_MASK = 0xfffff00000000 230 BPF_F_ALLOW_MULTI = 0x2
231 BPF_F_CURRENT_CPU = 0xffffffff 231 BPF_F_ALLOW_OVERRIDE = 0x1
232 BPF_F_CURRENT_NETNS = -0x1 232 BPF_F_ANY_ALIGNMENT = 0x2
233 BPF_F_DONT_FRAGMENT = 0x4 233 BPF_F_CLONE = 0x200
234 BPF_F_FAST_STACK_CMP = 0x200 234 BPF_F_CTXLEN_MASK = 0xfffff00000000
235 BPF_F_HDR_FIELD_MASK = 0xf 235 BPF_F_CURRENT_CPU = 0xffffffff
236 BPF_F_INDEX_MASK = 0xffffffff 236 BPF_F_CURRENT_NETNS = -0x1
237 BPF_F_INGRESS = 0x1 237 BPF_F_DONT_FRAGMENT = 0x4
238 BPF_F_INVALIDATE_HASH = 0x2 238 BPF_F_FAST_STACK_CMP = 0x200
239 BPF_F_LOCK = 0x4 239 BPF_F_HDR_FIELD_MASK = 0xf
240 BPF_F_MARK_ENFORCE = 0x40 240 BPF_F_INDEX_MASK = 0xffffffff
241 BPF_F_MARK_MANGLED_0 = 0x20 241 BPF_F_INGRESS = 0x1
242 BPF_F_NO_COMMON_LRU = 0x2 242 BPF_F_INVALIDATE_HASH = 0x2
243 BPF_F_NO_PREALLOC = 0x1 243 BPF_F_LOCK = 0x4
244 BPF_F_NUMA_NODE = 0x4 244 BPF_F_MARK_ENFORCE = 0x40
245 BPF_F_PSEUDO_HDR = 0x10 245 BPF_F_MARK_MANGLED_0 = 0x20
246 BPF_F_QUERY_EFFECTIVE = 0x1 246 BPF_F_MMAPABLE = 0x400
247 BPF_F_RDONLY = 0x8 247 BPF_F_NO_COMMON_LRU = 0x2
248 BPF_F_RDONLY_PROG = 0x80 248 BPF_F_NO_PREALLOC = 0x1
249 BPF_F_RECOMPUTE_CSUM = 0x1 249 BPF_F_NUMA_NODE = 0x4
250 BPF_F_REUSE_STACKID = 0x400 250 BPF_F_PSEUDO_HDR = 0x10
251 BPF_F_SEQ_NUMBER = 0x8 251 BPF_F_QUERY_EFFECTIVE = 0x1
252 BPF_F_SKIP_FIELD_MASK = 0xff 252 BPF_F_RDONLY = 0x8
253 BPF_F_STACK_BUILD_ID = 0x20 253 BPF_F_RDONLY_PROG = 0x80
254 BPF_F_STRICT_ALIGNMENT = 0x1 254 BPF_F_RECOMPUTE_CSUM = 0x1
255 BPF_F_SYSCTL_BASE_NAME = 0x1 255 BPF_F_REUSE_STACKID = 0x400
256 BPF_F_TUNINFO_IPV6 = 0x1 256 BPF_F_SEQ_NUMBER = 0x8
257 BPF_F_USER_BUILD_ID = 0x800 257 BPF_F_SKIP_FIELD_MASK = 0xff
258 BPF_F_USER_STACK = 0x100 258 BPF_F_STACK_BUILD_ID = 0x20
259 BPF_F_WRONLY = 0x10 259 BPF_F_STRICT_ALIGNMENT = 0x1
260 BPF_F_WRONLY_PROG = 0x100 260 BPF_F_SYSCTL_BASE_NAME = 0x1
261 BPF_F_ZERO_CSUM_TX = 0x2 261 BPF_F_TEST_RND_HI32 = 0x4
262 BPF_F_ZERO_SEED = 0x40 262 BPF_F_TEST_STATE_FREQ = 0x8
263 BPF_H = 0x8 263 BPF_F_TUNINFO_IPV6 = 0x1
264 BPF_IMM = 0x0 264 BPF_F_USER_BUILD_ID = 0x800
265 BPF_IND = 0x40 265 BPF_F_USER_STACK = 0x100
266 BPF_JA = 0x0 266 BPF_F_WRONLY = 0x10
267 BPF_JEQ = 0x10 267 BPF_F_WRONLY_PROG = 0x100
268 BPF_JGE = 0x30 268 BPF_F_ZERO_CSUM_TX = 0x2
269 BPF_JGT = 0x20 269 BPF_F_ZERO_SEED = 0x40
270 BPF_JLE = 0xb0 270 BPF_H = 0x8
271 BPF_JLT = 0xa0 271 BPF_IMM = 0x0
272 BPF_JMP = 0x5 272 BPF_IND = 0x40
273 BPF_JMP32 = 0x6 273 BPF_JA = 0x0
274 BPF_JNE = 0x50 274 BPF_JEQ = 0x10
275 BPF_JSET = 0x40 275 BPF_JGE = 0x30
276 BPF_JSGE = 0x70 276 BPF_JGT = 0x20
277 BPF_JSGT = 0x60 277 BPF_JLE = 0xb0
278 BPF_JSLE = 0xd0 278 BPF_JLT = 0xa0
279 BPF_JSLT = 0xc0 279 BPF_JMP = 0x5
280 BPF_K = 0x0 280 BPF_JMP32 = 0x6
281 BPF_LD = 0x0 281 BPF_JNE = 0x50
282 BPF_LDX = 0x1 282 BPF_JSET = 0x40
283 BPF_LEN = 0x80 283 BPF_JSGE = 0x70
284 BPF_LL_OFF = -0x200000 284 BPF_JSGT = 0x60
285 BPF_LSH = 0x60 285 BPF_JSLE = 0xd0
286 BPF_MAJOR_VERSION = 0x1 286 BPF_JSLT = 0xc0
287 BPF_MAXINSNS = 0x1000 287 BPF_K = 0x0
288 BPF_MEM = 0x60 288 BPF_LD = 0x0
289 BPF_MEMWORDS = 0x10 289 BPF_LDX = 0x1
290 BPF_MINOR_VERSION = 0x1 290 BPF_LEN = 0x80
291 BPF_MISC = 0x7 291 BPF_LL_OFF = -0x200000
292 BPF_MOD = 0x90 292 BPF_LSH = 0x60
293 BPF_MOV = 0xb0 293 BPF_MAJOR_VERSION = 0x1
294 BPF_MSH = 0xa0 294 BPF_MAXINSNS = 0x1000
295 BPF_MUL = 0x20 295 BPF_MEM = 0x60
296 BPF_NEG = 0x80 296 BPF_MEMWORDS = 0x10
297 BPF_NET_OFF = -0x100000 297 BPF_MINOR_VERSION = 0x1
298 BPF_NOEXIST = 0x1 298 BPF_MISC = 0x7
299 BPF_OBJ_NAME_LEN = 0x10 299 BPF_MOD = 0x90
300 BPF_OR = 0x40 300 BPF_MOV = 0xb0
301 BPF_PSEUDO_CALL = 0x1 301 BPF_MSH = 0xa0
302 BPF_PSEUDO_MAP_FD = 0x1 302 BPF_MUL = 0x20
303 BPF_PSEUDO_MAP_VALUE = 0x2 303 BPF_NEG = 0x80
304 BPF_RET = 0x6 304 BPF_NET_OFF = -0x100000
305 BPF_RSH = 0x70 305 BPF_NOEXIST = 0x1
306 BPF_SK_STORAGE_GET_F_CREATE = 0x1 306 BPF_OBJ_NAME_LEN = 0x10
307 BPF_SOCK_OPS_ALL_CB_FLAGS = 0x7 307 BPF_OR = 0x40
308 BPF_SOCK_OPS_RETRANS_CB_FLAG = 0x2 308 BPF_PSEUDO_CALL = 0x1
309 BPF_SOCK_OPS_RTO_CB_FLAG = 0x1 309 BPF_PSEUDO_MAP_FD = 0x1
310 BPF_SOCK_OPS_STATE_CB_FLAG = 0x4 310 BPF_PSEUDO_MAP_VALUE = 0x2
311 BPF_ST = 0x2 311 BPF_RET = 0x6
312 BPF_STX = 0x3 312 BPF_RSH = 0x70
313 BPF_SUB = 0x10 313 BPF_SK_STORAGE_GET_F_CREATE = 0x1
314 BPF_TAG_SIZE = 0x8 314 BPF_SOCK_OPS_ALL_CB_FLAGS = 0xf
315 BPF_TAX = 0x0 315 BPF_SOCK_OPS_RETRANS_CB_FLAG = 0x2
316 BPF_TO_BE = 0x8 316 BPF_SOCK_OPS_RTO_CB_FLAG = 0x1
317 BPF_TO_LE = 0x0 317 BPF_SOCK_OPS_RTT_CB_FLAG = 0x8
318 BPF_TXA = 0x80 318 BPF_SOCK_OPS_STATE_CB_FLAG = 0x4
319 BPF_W = 0x0 319 BPF_ST = 0x2
320 BPF_X = 0x8 320 BPF_STX = 0x3
321 BPF_XADD = 0xc0 321 BPF_SUB = 0x10
322 BPF_XOR = 0xa0 322 BPF_TAG_SIZE = 0x8
323 BRKINT = 0x2 323 BPF_TAX = 0x0
324 BS0 = 0x0 324 BPF_TO_BE = 0x8
325 BS1 = 0x2000 325 BPF_TO_LE = 0x0
326 BSDLY = 0x2000 326 BPF_TXA = 0x80
327 BTRFS_SUPER_MAGIC = 0x9123683e 327 BPF_W = 0x0
328 BTRFS_TEST_MAGIC = 0x73727279 328 BPF_X = 0x8
329 CAN_BCM = 0x2 329 BPF_XADD = 0xc0
330 CAN_EFF_FLAG = 0x80000000 330 BPF_XOR = 0xa0
331 CAN_EFF_ID_BITS = 0x1d 331 BRKINT = 0x2
332 CAN_EFF_MASK = 0x1fffffff 332 BS0 = 0x0
333 CAN_ERR_FLAG = 0x20000000 333 BS1 = 0x2000
334 CAN_ERR_MASK = 0x1fffffff 334 BSDLY = 0x2000
335 CAN_INV_FILTER = 0x20000000 335 BTRFS_SUPER_MAGIC = 0x9123683e
336 CAN_ISOTP = 0x6 336 BTRFS_TEST_MAGIC = 0x73727279
337 CAN_MAX_DLC = 0x8 337 CAN_BCM = 0x2
338 CAN_MAX_DLEN = 0x8 338 CAN_EFF_FLAG = 0x80000000
339 CAN_MCNET = 0x5 339 CAN_EFF_ID_BITS = 0x1d
340 CAN_MTU = 0x10 340 CAN_EFF_MASK = 0x1fffffff
341 CAN_NPROTO = 0x7 341 CAN_ERR_FLAG = 0x20000000
342 CAN_RAW = 0x1 342 CAN_ERR_MASK = 0x1fffffff
343 CAN_RAW_FILTER_MAX = 0x200 343 CAN_INV_FILTER = 0x20000000
344 CAN_RTR_FLAG = 0x40000000 344 CAN_ISOTP = 0x6
345 CAN_SFF_ID_BITS = 0xb 345 CAN_J1939 = 0x7
346 CAN_SFF_MASK = 0x7ff 346 CAN_MAX_DLC = 0x8
347 CAN_TP16 = 0x3 347 CAN_MAX_DLEN = 0x8
348 CAN_TP20 = 0x4 348 CAN_MCNET = 0x5
349 CAP_AUDIT_CONTROL = 0x1e 349 CAN_MTU = 0x10
350 CAP_AUDIT_READ = 0x25 350 CAN_NPROTO = 0x8
351 CAP_AUDIT_WRITE = 0x1d 351 CAN_RAW = 0x1
352 CAP_BLOCK_SUSPEND = 0x24 352 CAN_RAW_FILTER_MAX = 0x200
353 CAP_CHOWN = 0x0 353 CAN_RTR_FLAG = 0x40000000
354 CAP_DAC_OVERRIDE = 0x1 354 CAN_SFF_ID_BITS = 0xb
355 CAP_DAC_READ_SEARCH = 0x2 355 CAN_SFF_MASK = 0x7ff
356 CAP_FOWNER = 0x3 356 CAN_TP16 = 0x3
357 CAP_FSETID = 0x4 357 CAN_TP20 = 0x4
358 CAP_IPC_LOCK = 0xe 358 CAP_AUDIT_CONTROL = 0x1e
359 CAP_IPC_OWNER = 0xf 359 CAP_AUDIT_READ = 0x25
360 CAP_KILL = 0x5 360 CAP_AUDIT_WRITE = 0x1d
361 CAP_LAST_CAP = 0x25 361 CAP_BLOCK_SUSPEND = 0x24
362 CAP_LEASE = 0x1c 362 CAP_CHOWN = 0x0
363 CAP_LINUX_IMMUTABLE = 0x9 363 CAP_DAC_OVERRIDE = 0x1
364 CAP_MAC_ADMIN = 0x21 364 CAP_DAC_READ_SEARCH = 0x2
365 CAP_MAC_OVERRIDE = 0x20 365 CAP_FOWNER = 0x3
366 CAP_MKNOD = 0x1b 366 CAP_FSETID = 0x4
367 CAP_NET_ADMIN = 0xc 367 CAP_IPC_LOCK = 0xe
368 CAP_NET_BIND_SERVICE = 0xa 368 CAP_IPC_OWNER = 0xf
369 CAP_NET_BROADCAST = 0xb 369 CAP_KILL = 0x5
370 CAP_NET_RAW = 0xd 370 CAP_LAST_CAP = 0x25
371 CAP_SETFCAP = 0x1f 371 CAP_LEASE = 0x1c
372 CAP_SETGID = 0x6 372 CAP_LINUX_IMMUTABLE = 0x9
373 CAP_SETPCAP = 0x8 373 CAP_MAC_ADMIN = 0x21
374 CAP_SETUID = 0x7 374 CAP_MAC_OVERRIDE = 0x20
375 CAP_SYSLOG = 0x22 375 CAP_MKNOD = 0x1b
376 CAP_SYS_ADMIN = 0x15 376 CAP_NET_ADMIN = 0xc
377 CAP_SYS_BOOT = 0x16 377 CAP_NET_BIND_SERVICE = 0xa
378 CAP_SYS_CHROOT = 0x12 378 CAP_NET_BROADCAST = 0xb
379 CAP_SYS_MODULE = 0x10 379 CAP_NET_RAW = 0xd
380 CAP_SYS_NICE = 0x17 380 CAP_SETFCAP = 0x1f
381 CAP_SYS_PACCT = 0x14 381 CAP_SETGID = 0x6
382 CAP_SYS_PTRACE = 0x13 382 CAP_SETPCAP = 0x8
383 CAP_SYS_RAWIO = 0x11 383 CAP_SETUID = 0x7
384 CAP_SYS_RESOURCE = 0x18 384 CAP_SYSLOG = 0x22
385 CAP_SYS_TIME = 0x19 385 CAP_SYS_ADMIN = 0x15
386 CAP_SYS_TTY_CONFIG = 0x1a 386 CAP_SYS_BOOT = 0x16
387 CAP_WAKE_ALARM = 0x23 387 CAP_SYS_CHROOT = 0x12
388 CBAUD = 0x100f 388 CAP_SYS_MODULE = 0x10
389 CBAUDEX = 0x1000 389 CAP_SYS_NICE = 0x17
390 CFLUSH = 0xf 390 CAP_SYS_PACCT = 0x14
391 CGROUP2_SUPER_MAGIC = 0x63677270 391 CAP_SYS_PTRACE = 0x13
392 CGROUP_SUPER_MAGIC = 0x27e0eb 392 CAP_SYS_RAWIO = 0x11
393 CIBAUD = 0x100f0000 393 CAP_SYS_RESOURCE = 0x18
394 CLOCAL = 0x800 394 CAP_SYS_TIME = 0x19
395 CLOCK_BOOTTIME = 0x7 395 CAP_SYS_TTY_CONFIG = 0x1a
396 CLOCK_BOOTTIME_ALARM = 0x9 396 CAP_WAKE_ALARM = 0x23
397 CLOCK_DEFAULT = 0x0 397 CBAUD = 0x100f
398 CLOCK_EXT = 0x1 398 CBAUDEX = 0x1000
399 CLOCK_INT = 0x2 399 CFLUSH = 0xf
400 CLOCK_MONOTONIC = 0x1 400 CGROUP2_SUPER_MAGIC = 0x63677270
401 CLOCK_MONOTONIC_COARSE = 0x6 401 CGROUP_SUPER_MAGIC = 0x27e0eb
402 CLOCK_MONOTONIC_RAW = 0x4 402 CIBAUD = 0x100f0000
403 CLOCK_PROCESS_CPUTIME_ID = 0x2 403 CLOCAL = 0x800
404 CLOCK_REALTIME = 0x0 404 CLOCK_BOOTTIME = 0x7
405 CLOCK_REALTIME_ALARM = 0x8 405 CLOCK_BOOTTIME_ALARM = 0x9
406 CLOCK_REALTIME_COARSE = 0x5 406 CLOCK_DEFAULT = 0x0
407 CLOCK_TAI = 0xb 407 CLOCK_EXT = 0x1
408 CLOCK_THREAD_CPUTIME_ID = 0x3 408 CLOCK_INT = 0x2
409 CLOCK_TXFROMRX = 0x4 409 CLOCK_MONOTONIC = 0x1
410 CLOCK_TXINT = 0x3 410 CLOCK_MONOTONIC_COARSE = 0x6
411 CLONE_CHILD_CLEARTID = 0x200000 411 CLOCK_MONOTONIC_RAW = 0x4
412 CLONE_CHILD_SETTID = 0x1000000 412 CLOCK_PROCESS_CPUTIME_ID = 0x2
413 CLONE_DETACHED = 0x400000 413 CLOCK_REALTIME = 0x0
414 CLONE_FILES = 0x400 414 CLOCK_REALTIME_ALARM = 0x8
415 CLONE_FS = 0x200 415 CLOCK_REALTIME_COARSE = 0x5
416 CLONE_IO = 0x80000000 416 CLOCK_TAI = 0xb
417 CLONE_NEWCGROUP = 0x2000000 417 CLOCK_THREAD_CPUTIME_ID = 0x3
418 CLONE_NEWIPC = 0x8000000 418 CLOCK_TXFROMRX = 0x4
419 CLONE_NEWNET = 0x40000000 419 CLOCK_TXINT = 0x3
420 CLONE_NEWNS = 0x20000 420 CLONE_ARGS_SIZE_VER0 = 0x40
421 CLONE_NEWPID = 0x20000000 421 CLONE_ARGS_SIZE_VER1 = 0x50
422 CLONE_NEWUSER = 0x10000000 422 CLONE_CHILD_CLEARTID = 0x200000
423 CLONE_NEWUTS = 0x4000000 423 CLONE_CHILD_SETTID = 0x1000000
424 CLONE_PARENT = 0x8000 424 CLONE_CLEAR_SIGHAND = 0x100000000
425 CLONE_PARENT_SETTID = 0x100000 425 CLONE_DETACHED = 0x400000
426 CLONE_PIDFD = 0x1000 426 CLONE_FILES = 0x400
427 CLONE_PTRACE = 0x2000 427 CLONE_FS = 0x200
428 CLONE_SETTLS = 0x80000 428 CLONE_IO = 0x80000000
429 CLONE_SIGHAND = 0x800 429 CLONE_NEWCGROUP = 0x2000000
430 CLONE_SYSVSEM = 0x40000 430 CLONE_NEWIPC = 0x8000000
431 CLONE_THREAD = 0x10000 431 CLONE_NEWNET = 0x40000000
432 CLONE_UNTRACED = 0x800000 432 CLONE_NEWNS = 0x20000
433 CLONE_VFORK = 0x4000 433 CLONE_NEWPID = 0x20000000
434 CLONE_VM = 0x100 434 CLONE_NEWUSER = 0x10000000
435 CMSPAR = 0x40000000 435 CLONE_NEWUTS = 0x4000000
436 CODA_SUPER_MAGIC = 0x73757245 436 CLONE_PARENT = 0x8000
437 CR0 = 0x0 437 CLONE_PARENT_SETTID = 0x100000
438 CR1 = 0x200 438 CLONE_PIDFD = 0x1000
439 CR2 = 0x400 439 CLONE_PTRACE = 0x2000
440 CR3 = 0x600 440 CLONE_SETTLS = 0x80000
441 CRAMFS_MAGIC = 0x28cd3d45 441 CLONE_SIGHAND = 0x800
442 CRDLY = 0x600 442 CLONE_SYSVSEM = 0x40000
443 CREAD = 0x80 443 CLONE_THREAD = 0x10000
444 CRTSCTS = 0x80000000 444 CLONE_UNTRACED = 0x800000
445 CRYPTO_MAX_NAME = 0x40 445 CLONE_VFORK = 0x4000
446 CRYPTO_MSG_MAX = 0x15 446 CLONE_VM = 0x100
447 CRYPTO_NR_MSGTYPES = 0x6 447 CMSPAR = 0x40000000
448 CRYPTO_REPORT_MAXSIZE = 0x160 448 CODA_SUPER_MAGIC = 0x73757245
449 CS5 = 0x0 449 CR0 = 0x0
450 CS6 = 0x10 450 CR1 = 0x200
451 CS7 = 0x20 451 CR2 = 0x400
452 CS8 = 0x30 452 CR3 = 0x600
453 CSIGNAL = 0xff 453 CRAMFS_MAGIC = 0x28cd3d45
454 CSIZE = 0x30 454 CRDLY = 0x600
455 CSTART = 0x11 455 CREAD = 0x80
456 CSTATUS = 0x0 456 CRTSCTS = 0x80000000
457 CSTOP = 0x13 457 CRYPTO_MAX_NAME = 0x40
458 CSTOPB = 0x40 458 CRYPTO_MSG_MAX = 0x15
459 CSUSP = 0x1a 459 CRYPTO_NR_MSGTYPES = 0x6
460 DAXFS_MAGIC = 0x64646178 460 CRYPTO_REPORT_MAXSIZE = 0x160
461 DEBUGFS_MAGIC = 0x64626720 461 CS5 = 0x0
462 DEVPTS_SUPER_MAGIC = 0x1cd1 462 CS6 = 0x10
463 DT_BLK = 0x6 463 CS7 = 0x20
464 DT_CHR = 0x2 464 CS8 = 0x30
465 DT_DIR = 0x4 465 CSIGNAL = 0xff
466 DT_FIFO = 0x1 466 CSIZE = 0x30
467 DT_LNK = 0xa 467 CSTART = 0x11
468 DT_REG = 0x8 468 CSTATUS = 0x0
469 DT_SOCK = 0xc 469 CSTOP = 0x13
470 DT_UNKNOWN = 0x0 470 CSTOPB = 0x40
471 DT_WHT = 0xe 471 CSUSP = 0x1a
472 ECHO = 0x8 472 DAXFS_MAGIC = 0x64646178
473 ECHOCTL = 0x200 473 DEBUGFS_MAGIC = 0x64626720
474 ECHOE = 0x10 474 DEVLINK_CMD_ESWITCH_MODE_GET = 0x1d
475 ECHOK = 0x20 475 DEVLINK_CMD_ESWITCH_MODE_SET = 0x1e
476 ECHOKE = 0x800 476 DEVLINK_GENL_MCGRP_CONFIG_NAME = "config"
477 ECHONL = 0x40 477 DEVLINK_GENL_NAME = "devlink"
478 ECHOPRT = 0x400 478 DEVLINK_GENL_VERSION = 0x1
479 ECRYPTFS_SUPER_MAGIC = 0xf15f 479 DEVLINK_SB_THRESHOLD_TO_ALPHA_MAX = 0x14
480 EFD_CLOEXEC = 0x80000 480 DEVPTS_SUPER_MAGIC = 0x1cd1
481 EFD_NONBLOCK = 0x80 481 DMA_BUF_MAGIC = 0x444d4142
482 EFD_SEMAPHORE = 0x1 482 DT_BLK = 0x6
483 EFIVARFS_MAGIC = 0xde5e81e4 483 DT_CHR = 0x2
484 EFS_SUPER_MAGIC = 0x414a53 484 DT_DIR = 0x4
485 ENCODING_DEFAULT = 0x0 485 DT_FIFO = 0x1
486 ENCODING_FM_MARK = 0x3 486 DT_LNK = 0xa
487 ENCODING_FM_SPACE = 0x4 487 DT_REG = 0x8
488 ENCODING_MANCHESTER = 0x5 488 DT_SOCK = 0xc
489 ENCODING_NRZ = 0x1 489 DT_UNKNOWN = 0x0
490 ENCODING_NRZI = 0x2 490 DT_WHT = 0xe
491 EPOLLERR = 0x8 491 ECHO = 0x8
492 EPOLLET = 0x80000000 492 ECHOCTL = 0x200
493 EPOLLEXCLUSIVE = 0x10000000 493 ECHOE = 0x10
494 EPOLLHUP = 0x10 494 ECHOK = 0x20
495 EPOLLIN = 0x1 495 ECHOKE = 0x800
496 EPOLLMSG = 0x400 496 ECHONL = 0x40
497 EPOLLONESHOT = 0x40000000 497 ECHOPRT = 0x400
498 EPOLLOUT = 0x4 498 ECRYPTFS_SUPER_MAGIC = 0xf15f
499 EPOLLPRI = 0x2 499 EFD_CLOEXEC = 0x80000
500 EPOLLRDBAND = 0x80 500 EFD_NONBLOCK = 0x80
501 EPOLLRDHUP = 0x2000 501 EFD_SEMAPHORE = 0x1
502 EPOLLRDNORM = 0x40 502 EFIVARFS_MAGIC = 0xde5e81e4
503 EPOLLWAKEUP = 0x20000000 503 EFS_SUPER_MAGIC = 0x414a53
504 EPOLLWRBAND = 0x200 504 ENCODING_DEFAULT = 0x0
505 EPOLLWRNORM = 0x100 505 ENCODING_FM_MARK = 0x3
506 EPOLL_CLOEXEC = 0x80000 506 ENCODING_FM_SPACE = 0x4
507 EPOLL_CTL_ADD = 0x1 507 ENCODING_MANCHESTER = 0x5
508 EPOLL_CTL_DEL = 0x2 508 ENCODING_NRZ = 0x1
509 EPOLL_CTL_MOD = 0x3 509 ENCODING_NRZI = 0x2
510 ETH_P_1588 = 0x88f7 510 EPOLLERR = 0x8
511 ETH_P_8021AD = 0x88a8 511 EPOLLET = 0x80000000
512 ETH_P_8021AH = 0x88e7 512 EPOLLEXCLUSIVE = 0x10000000
513 ETH_P_8021Q = 0x8100 513 EPOLLHUP = 0x10
514 ETH_P_80221 = 0x8917 514 EPOLLIN = 0x1
515 ETH_P_802_2 = 0x4 515 EPOLLMSG = 0x400
516 ETH_P_802_3 = 0x1 516 EPOLLONESHOT = 0x40000000
517 ETH_P_802_3_MIN = 0x600 517 EPOLLOUT = 0x4
518 ETH_P_802_EX1 = 0x88b5 518 EPOLLPRI = 0x2
519 ETH_P_AARP = 0x80f3 519 EPOLLRDBAND = 0x80
520 ETH_P_AF_IUCV = 0xfbfb 520 EPOLLRDHUP = 0x2000
521 ETH_P_ALL = 0x3 521 EPOLLRDNORM = 0x40
522 ETH_P_AOE = 0x88a2 522 EPOLLWAKEUP = 0x20000000
523 ETH_P_ARCNET = 0x1a 523 EPOLLWRBAND = 0x200
524 ETH_P_ARP = 0x806 524 EPOLLWRNORM = 0x100
525 ETH_P_ATALK = 0x809b 525 EPOLL_CLOEXEC = 0x80000
526 ETH_P_ATMFATE = 0x8884 526 EPOLL_CTL_ADD = 0x1
527 ETH_P_ATMMPOA = 0x884c 527 EPOLL_CTL_DEL = 0x2
528 ETH_P_AX25 = 0x2 528 EPOLL_CTL_MOD = 0x3
529 ETH_P_BATMAN = 0x4305 529 EROFS_SUPER_MAGIC_V1 = 0xe0f5e1e2
530 ETH_P_BPQ = 0x8ff 530 ETH_P_1588 = 0x88f7
531 ETH_P_CAIF = 0xf7 531 ETH_P_8021AD = 0x88a8
532 ETH_P_CAN = 0xc 532 ETH_P_8021AH = 0x88e7
533 ETH_P_CANFD = 0xd 533 ETH_P_8021Q = 0x8100
534 ETH_P_CONTROL = 0x16 534 ETH_P_80221 = 0x8917
535 ETH_P_CUST = 0x6006 535 ETH_P_802_2 = 0x4
536 ETH_P_DDCMP = 0x6 536 ETH_P_802_3 = 0x1
537 ETH_P_DEC = 0x6000 537 ETH_P_802_3_MIN = 0x600
538 ETH_P_DIAG = 0x6005 538 ETH_P_802_EX1 = 0x88b5
539 ETH_P_DNA_DL = 0x6001 539 ETH_P_AARP = 0x80f3
540 ETH_P_DNA_RC = 0x6002 540 ETH_P_AF_IUCV = 0xfbfb
541 ETH_P_DNA_RT = 0x6003 541 ETH_P_ALL = 0x3
542 ETH_P_DSA = 0x1b 542 ETH_P_AOE = 0x88a2
543 ETH_P_DSA_8021Q = 0xdadb 543 ETH_P_ARCNET = 0x1a
544 ETH_P_ECONET = 0x18 544 ETH_P_ARP = 0x806
545 ETH_P_EDSA = 0xdada 545 ETH_P_ATALK = 0x809b
546 ETH_P_ERSPAN = 0x88be 546 ETH_P_ATMFATE = 0x8884
547 ETH_P_ERSPAN2 = 0x22eb 547 ETH_P_ATMMPOA = 0x884c
548 ETH_P_FCOE = 0x8906 548 ETH_P_AX25 = 0x2
549 ETH_P_FIP = 0x8914 549 ETH_P_BATMAN = 0x4305
550 ETH_P_HDLC = 0x19 550 ETH_P_BPQ = 0x8ff
551 ETH_P_HSR = 0x892f 551 ETH_P_CAIF = 0xf7
552 ETH_P_IBOE = 0x8915 552 ETH_P_CAN = 0xc
553 ETH_P_IEEE802154 = 0xf6 553 ETH_P_CANFD = 0xd
554 ETH_P_IEEEPUP = 0xa00 554 ETH_P_CONTROL = 0x16
555 ETH_P_IEEEPUPAT = 0xa01 555 ETH_P_CUST = 0x6006
556 ETH_P_IFE = 0xed3e 556 ETH_P_DDCMP = 0x6
557 ETH_P_IP = 0x800 557 ETH_P_DEC = 0x6000
558 ETH_P_IPV6 = 0x86dd 558 ETH_P_DIAG = 0x6005
559 ETH_P_IPX = 0x8137 559 ETH_P_DNA_DL = 0x6001
560 ETH_P_IRDA = 0x17 560 ETH_P_DNA_RC = 0x6002
561 ETH_P_LAT = 0x6004 561 ETH_P_DNA_RT = 0x6003
562 ETH_P_LINK_CTL = 0x886c 562 ETH_P_DSA = 0x1b
563 ETH_P_LOCALTALK = 0x9 563 ETH_P_DSA_8021Q = 0xdadb
564 ETH_P_LOOP = 0x60 564 ETH_P_ECONET = 0x18
565 ETH_P_LOOPBACK = 0x9000 565 ETH_P_EDSA = 0xdada
566 ETH_P_MACSEC = 0x88e5 566 ETH_P_ERSPAN = 0x88be
567 ETH_P_MAP = 0xf9 567 ETH_P_ERSPAN2 = 0x22eb
568 ETH_P_MOBITEX = 0x15 568 ETH_P_FCOE = 0x8906
569 ETH_P_MPLS_MC = 0x8848 569 ETH_P_FIP = 0x8914
570 ETH_P_MPLS_UC = 0x8847 570 ETH_P_HDLC = 0x19
571 ETH_P_MVRP = 0x88f5 571 ETH_P_HSR = 0x892f
572 ETH_P_NCSI = 0x88f8 572 ETH_P_IBOE = 0x8915
573 ETH_P_NSH = 0x894f 573 ETH_P_IEEE802154 = 0xf6
574 ETH_P_PAE = 0x888e 574 ETH_P_IEEEPUP = 0xa00
575 ETH_P_PAUSE = 0x8808 575 ETH_P_IEEEPUPAT = 0xa01
576 ETH_P_PHONET = 0xf5 576 ETH_P_IFE = 0xed3e
577 ETH_P_PPPTALK = 0x10 577 ETH_P_IP = 0x800
578 ETH_P_PPP_DISC = 0x8863 578 ETH_P_IPV6 = 0x86dd
579 ETH_P_PPP_MP = 0x8 579 ETH_P_IPX = 0x8137
580 ETH_P_PPP_SES = 0x8864 580 ETH_P_IRDA = 0x17
581 ETH_P_PREAUTH = 0x88c7 581 ETH_P_LAT = 0x6004
582 ETH_P_PRP = 0x88fb 582 ETH_P_LINK_CTL = 0x886c
583 ETH_P_PUP = 0x200 583 ETH_P_LLDP = 0x88cc
584 ETH_P_PUPAT = 0x201 584 ETH_P_LOCALTALK = 0x9
585 ETH_P_QINQ1 = 0x9100 585 ETH_P_LOOP = 0x60
586 ETH_P_QINQ2 = 0x9200 586 ETH_P_LOOPBACK = 0x9000
587 ETH_P_QINQ3 = 0x9300 587 ETH_P_MACSEC = 0x88e5
588 ETH_P_RARP = 0x8035 588 ETH_P_MAP = 0xf9
589 ETH_P_SCA = 0x6007 589 ETH_P_MOBITEX = 0x15
590 ETH_P_SLOW = 0x8809 590 ETH_P_MPLS_MC = 0x8848
591 ETH_P_SNAP = 0x5 591 ETH_P_MPLS_UC = 0x8847
592 ETH_P_TDLS = 0x890d 592 ETH_P_MVRP = 0x88f5
593 ETH_P_TEB = 0x6558 593 ETH_P_NCSI = 0x88f8
594 ETH_P_TIPC = 0x88ca 594 ETH_P_NSH = 0x894f
595 ETH_P_TRAILER = 0x1c 595 ETH_P_PAE = 0x888e
596 ETH_P_TR_802_2 = 0x11 596 ETH_P_PAUSE = 0x8808
597 ETH_P_TSN = 0x22f0 597 ETH_P_PHONET = 0xf5
598 ETH_P_WAN_PPP = 0x7 598 ETH_P_PPPTALK = 0x10
599 ETH_P_WCCP = 0x883e 599 ETH_P_PPP_DISC = 0x8863
600 ETH_P_X25 = 0x805 600 ETH_P_PPP_MP = 0x8
601 ETH_P_XDSA = 0xf8 601 ETH_P_PPP_SES = 0x8864
602 EXABYTE_ENABLE_NEST = 0xf0 602 ETH_P_PREAUTH = 0x88c7
603 EXT2_SUPER_MAGIC = 0xef53 603 ETH_P_PRP = 0x88fb
604 EXT3_SUPER_MAGIC = 0xef53 604 ETH_P_PUP = 0x200
605 EXT4_SUPER_MAGIC = 0xef53 605 ETH_P_PUPAT = 0x201
606 EXTA = 0xe 606 ETH_P_QINQ1 = 0x9100
607 EXTB = 0xf 607 ETH_P_QINQ2 = 0x9200
608 EXTPROC = 0x10000 608 ETH_P_QINQ3 = 0x9300
609 F2FS_SUPER_MAGIC = 0xf2f52010 609 ETH_P_RARP = 0x8035
610 FALLOC_FL_COLLAPSE_RANGE = 0x8 610 ETH_P_SCA = 0x6007
611 FALLOC_FL_INSERT_RANGE = 0x20 611 ETH_P_SLOW = 0x8809
612 FALLOC_FL_KEEP_SIZE = 0x1 612 ETH_P_SNAP = 0x5
613 FALLOC_FL_NO_HIDE_STALE = 0x4 613 ETH_P_TDLS = 0x890d
614 FALLOC_FL_PUNCH_HOLE = 0x2 614 ETH_P_TEB = 0x6558
615 FALLOC_FL_UNSHARE_RANGE = 0x40 615 ETH_P_TIPC = 0x88ca
616 FALLOC_FL_ZERO_RANGE = 0x10 616 ETH_P_TRAILER = 0x1c
617 FANOTIFY_METADATA_VERSION = 0x3 617 ETH_P_TR_802_2 = 0x11
618 FAN_ACCESS = 0x1 618 ETH_P_TSN = 0x22f0
619 FAN_ACCESS_PERM = 0x20000 619 ETH_P_WAN_PPP = 0x7
620 FAN_ALLOW = 0x1 620 ETH_P_WCCP = 0x883e
621 FAN_ALL_CLASS_BITS = 0xc 621 ETH_P_X25 = 0x805
622 FAN_ALL_EVENTS = 0x3b 622 ETH_P_XDSA = 0xf8
623 FAN_ALL_INIT_FLAGS = 0x3f 623 EXABYTE_ENABLE_NEST = 0xf0
624 FAN_ALL_MARK_FLAGS = 0xff 624 EXT2_SUPER_MAGIC = 0xef53
625 FAN_ALL_OUTGOING_EVENTS = 0x3403b 625 EXT3_SUPER_MAGIC = 0xef53
626 FAN_ALL_PERM_EVENTS = 0x30000 626 EXT4_SUPER_MAGIC = 0xef53
627 FAN_ATTRIB = 0x4 627 EXTA = 0xe
628 FAN_AUDIT = 0x10 628 EXTB = 0xf
629 FAN_CLASS_CONTENT = 0x4 629 EXTPROC = 0x10000
630 FAN_CLASS_NOTIF = 0x0 630 F2FS_SUPER_MAGIC = 0xf2f52010
631 FAN_CLASS_PRE_CONTENT = 0x8 631 FALLOC_FL_COLLAPSE_RANGE = 0x8
632 FAN_CLOEXEC = 0x1 632 FALLOC_FL_INSERT_RANGE = 0x20
633 FAN_CLOSE = 0x18 633 FALLOC_FL_KEEP_SIZE = 0x1
634 FAN_CLOSE_NOWRITE = 0x10 634 FALLOC_FL_NO_HIDE_STALE = 0x4
635 FAN_CLOSE_WRITE = 0x8 635 FALLOC_FL_PUNCH_HOLE = 0x2
636 FAN_CREATE = 0x100 636 FALLOC_FL_UNSHARE_RANGE = 0x40
637 FAN_DELETE = 0x200 637 FALLOC_FL_ZERO_RANGE = 0x10
638 FAN_DELETE_SELF = 0x400 638 FANOTIFY_METADATA_VERSION = 0x3
639 FAN_DENY = 0x2 639 FAN_ACCESS = 0x1
640 FAN_ENABLE_AUDIT = 0x40 640 FAN_ACCESS_PERM = 0x20000
641 FAN_EVENT_INFO_TYPE_FID = 0x1 641 FAN_ALLOW = 0x1
642 FAN_EVENT_METADATA_LEN = 0x18 642 FAN_ALL_CLASS_BITS = 0xc
643 FAN_EVENT_ON_CHILD = 0x8000000 643 FAN_ALL_EVENTS = 0x3b
644 FAN_MARK_ADD = 0x1 644 FAN_ALL_INIT_FLAGS = 0x3f
645 FAN_MARK_DONT_FOLLOW = 0x4 645 FAN_ALL_MARK_FLAGS = 0xff
646 FAN_MARK_FILESYSTEM = 0x100 646 FAN_ALL_OUTGOING_EVENTS = 0x3403b
647 FAN_MARK_FLUSH = 0x80 647 FAN_ALL_PERM_EVENTS = 0x30000
648 FAN_MARK_IGNORED_MASK = 0x20 648 FAN_ATTRIB = 0x4
649 FAN_MARK_IGNORED_SURV_MODIFY = 0x40 649 FAN_AUDIT = 0x10
650 FAN_MARK_INODE = 0x0 650 FAN_CLASS_CONTENT = 0x4
651 FAN_MARK_MOUNT = 0x10 651 FAN_CLASS_NOTIF = 0x0
652 FAN_MARK_ONLYDIR = 0x8 652 FAN_CLASS_PRE_CONTENT = 0x8
653 FAN_MARK_REMOVE = 0x2 653 FAN_CLOEXEC = 0x1
654 FAN_MODIFY = 0x2 654 FAN_CLOSE = 0x18
655 FAN_MOVE = 0xc0 655 FAN_CLOSE_NOWRITE = 0x10
656 FAN_MOVED_FROM = 0x40 656 FAN_CLOSE_WRITE = 0x8
657 FAN_MOVED_TO = 0x80 657 FAN_CREATE = 0x100
658 FAN_MOVE_SELF = 0x800 658 FAN_DELETE = 0x200
659 FAN_NOFD = -0x1 659 FAN_DELETE_SELF = 0x400
660 FAN_NONBLOCK = 0x2 660 FAN_DENY = 0x2
661 FAN_ONDIR = 0x40000000 661 FAN_ENABLE_AUDIT = 0x40
662 FAN_OPEN = 0x20 662 FAN_EVENT_INFO_TYPE_FID = 0x1
663 FAN_OPEN_EXEC = 0x1000 663 FAN_EVENT_METADATA_LEN = 0x18
664 FAN_OPEN_EXEC_PERM = 0x40000 664 FAN_EVENT_ON_CHILD = 0x8000000
665 FAN_OPEN_PERM = 0x10000 665 FAN_MARK_ADD = 0x1
666 FAN_Q_OVERFLOW = 0x4000 666 FAN_MARK_DONT_FOLLOW = 0x4
667 FAN_REPORT_FID = 0x200 667 FAN_MARK_FILESYSTEM = 0x100
668 FAN_REPORT_TID = 0x100 668 FAN_MARK_FLUSH = 0x80
669 FAN_UNLIMITED_MARKS = 0x20 669 FAN_MARK_IGNORED_MASK = 0x20
670 FAN_UNLIMITED_QUEUE = 0x10 670 FAN_MARK_IGNORED_SURV_MODIFY = 0x40
671 FD_CLOEXEC = 0x1 671 FAN_MARK_INODE = 0x0
672 FD_SETSIZE = 0x400 672 FAN_MARK_MOUNT = 0x10
673 FF0 = 0x0 673 FAN_MARK_ONLYDIR = 0x8
674 FF1 = 0x8000 674 FAN_MARK_REMOVE = 0x2
675 FFDLY = 0x8000 675 FAN_MODIFY = 0x2
676 FLUSHO = 0x2000 676 FAN_MOVE = 0xc0
677 FS_ENCRYPTION_MODE_ADIANTUM = 0x9 677 FAN_MOVED_FROM = 0x40
678 FS_ENCRYPTION_MODE_AES_128_CBC = 0x5 678 FAN_MOVED_TO = 0x80
679 FS_ENCRYPTION_MODE_AES_128_CTS = 0x6 679 FAN_MOVE_SELF = 0x800
680 FS_ENCRYPTION_MODE_AES_256_CBC = 0x3 680 FAN_NOFD = -0x1
681 FS_ENCRYPTION_MODE_AES_256_CTS = 0x4 681 FAN_NONBLOCK = 0x2
682 FS_ENCRYPTION_MODE_AES_256_GCM = 0x2 682 FAN_ONDIR = 0x40000000
683 FS_ENCRYPTION_MODE_AES_256_XTS = 0x1 683 FAN_OPEN = 0x20
684 FS_ENCRYPTION_MODE_INVALID = 0x0 684 FAN_OPEN_EXEC = 0x1000
685 FS_ENCRYPTION_MODE_SPECK128_256_CTS = 0x8 685 FAN_OPEN_EXEC_PERM = 0x40000
686 FS_ENCRYPTION_MODE_SPECK128_256_XTS = 0x7 686 FAN_OPEN_PERM = 0x10000
687 FS_IOC_GET_ENCRYPTION_POLICY = 0x800c6615 687 FAN_Q_OVERFLOW = 0x4000
688 FS_IOC_GET_ENCRYPTION_PWSALT = 0x80106614 688 FAN_REPORT_FID = 0x200
689 FS_IOC_SET_ENCRYPTION_POLICY = 0x400c6613 689 FAN_REPORT_TID = 0x100
690 FS_KEY_DESCRIPTOR_SIZE = 0x8 690 FAN_UNLIMITED_MARKS = 0x20
691 FS_KEY_DESC_PREFIX = "fscrypt:" 691 FAN_UNLIMITED_QUEUE = 0x10
692 FS_KEY_DESC_PREFIX_SIZE = 0x8 692 FD_CLOEXEC = 0x1
693 FS_MAX_KEY_SIZE = 0x40 693 FD_SETSIZE = 0x400
694 FS_POLICY_FLAGS_PAD_16 = 0x2 694 FF0 = 0x0
695 FS_POLICY_FLAGS_PAD_32 = 0x3 695 FF1 = 0x8000
696 FS_POLICY_FLAGS_PAD_4 = 0x0 696 FFDLY = 0x8000
697 FS_POLICY_FLAGS_PAD_8 = 0x1 697 FLUSHO = 0x2000
698 FS_POLICY_FLAGS_PAD_MASK = 0x3 698 FSCRYPT_KEY_DESCRIPTOR_SIZE = 0x8
699 FS_POLICY_FLAGS_VALID = 0x7 699 FSCRYPT_KEY_DESC_PREFIX = "fscrypt:"
700 FUTEXFS_SUPER_MAGIC = 0xbad1dea 700 FSCRYPT_KEY_DESC_PREFIX_SIZE = 0x8
701 F_ADD_SEALS = 0x409 701 FSCRYPT_KEY_IDENTIFIER_SIZE = 0x10
702 F_DUPFD = 0x0 702 FSCRYPT_KEY_REMOVAL_STATUS_FLAG_FILES_BUSY = 0x1
703 F_DUPFD_CLOEXEC = 0x406 703 FSCRYPT_KEY_REMOVAL_STATUS_FLAG_OTHER_USERS = 0x2
704 F_EXLCK = 0x4 704 FSCRYPT_KEY_SPEC_TYPE_DESCRIPTOR = 0x1
705 F_GETFD = 0x1 705 FSCRYPT_KEY_SPEC_TYPE_IDENTIFIER = 0x2
706 F_GETFL = 0x3 706 FSCRYPT_KEY_STATUS_ABSENT = 0x1
707 F_GETLEASE = 0x401 707 FSCRYPT_KEY_STATUS_FLAG_ADDED_BY_SELF = 0x1
708 F_GETLK = 0xe 708 FSCRYPT_KEY_STATUS_INCOMPLETELY_REMOVED = 0x3
709 F_GETLK64 = 0xe 709 FSCRYPT_KEY_STATUS_PRESENT = 0x2
710 F_GETOWN = 0x17 710 FSCRYPT_MAX_KEY_SIZE = 0x40
711 F_GETOWN_EX = 0x10 711 FSCRYPT_MODE_ADIANTUM = 0x9
712 F_GETPIPE_SZ = 0x408 712 FSCRYPT_MODE_AES_128_CBC = 0x5
713 F_GETSIG = 0xb 713 FSCRYPT_MODE_AES_128_CTS = 0x6
714 F_GET_FILE_RW_HINT = 0x40d 714 FSCRYPT_MODE_AES_256_CTS = 0x4
715 F_GET_RW_HINT = 0x40b 715 FSCRYPT_MODE_AES_256_XTS = 0x1
716 F_GET_SEALS = 0x40a 716 FSCRYPT_POLICY_FLAGS_PAD_16 = 0x2
717 F_LOCK = 0x1 717 FSCRYPT_POLICY_FLAGS_PAD_32 = 0x3
718 F_NOTIFY = 0x402 718 FSCRYPT_POLICY_FLAGS_PAD_4 = 0x0
719 F_OFD_GETLK = 0x24 719 FSCRYPT_POLICY_FLAGS_PAD_8 = 0x1
720 F_OFD_SETLK = 0x25 720 FSCRYPT_POLICY_FLAGS_PAD_MASK = 0x3
721 F_OFD_SETLKW = 0x26 721 FSCRYPT_POLICY_FLAGS_VALID = 0xf
722 F_OK = 0x0 722 FSCRYPT_POLICY_FLAG_DIRECT_KEY = 0x4
723 F_RDLCK = 0x0 723 FSCRYPT_POLICY_FLAG_IV_INO_LBLK_64 = 0x8
724 F_SEAL_FUTURE_WRITE = 0x10 724 FSCRYPT_POLICY_V1 = 0x0
725 F_SEAL_GROW = 0x4 725 FSCRYPT_POLICY_V2 = 0x2
726 F_SEAL_SEAL = 0x1 726 FS_ENCRYPTION_MODE_ADIANTUM = 0x9
727 F_SEAL_SHRINK = 0x2 727 FS_ENCRYPTION_MODE_AES_128_CBC = 0x5
728 F_SEAL_WRITE = 0x8 728 FS_ENCRYPTION_MODE_AES_128_CTS = 0x6
729 F_SETFD = 0x2 729 FS_ENCRYPTION_MODE_AES_256_CBC = 0x3
730 F_SETFL = 0x4 730 FS_ENCRYPTION_MODE_AES_256_CTS = 0x4
731 F_SETLEASE = 0x400 731 FS_ENCRYPTION_MODE_AES_256_GCM = 0x2
732 F_SETLK = 0x6 732 FS_ENCRYPTION_MODE_AES_256_XTS = 0x1
733 F_SETLK64 = 0x6 733 FS_ENCRYPTION_MODE_INVALID = 0x0
734 F_SETLKW = 0x7 734 FS_ENCRYPTION_MODE_SPECK128_256_CTS = 0x8
735 F_SETLKW64 = 0x7 735 FS_ENCRYPTION_MODE_SPECK128_256_XTS = 0x7
736 F_SETOWN = 0x18 736 FS_IOC_ADD_ENCRYPTION_KEY = 0xc0506617
737 F_SETOWN_EX = 0xf 737 FS_IOC_GET_ENCRYPTION_KEY_STATUS = 0xc080661a
738 F_SETPIPE_SZ = 0x407 738 FS_IOC_GET_ENCRYPTION_POLICY = 0x800c6615
739 F_SETSIG = 0xa 739 FS_IOC_GET_ENCRYPTION_POLICY_EX = 0xc0096616
740 F_SET_FILE_RW_HINT = 0x40e 740 FS_IOC_GET_ENCRYPTION_PWSALT = 0x80106614
741 F_SET_RW_HINT = 0x40c 741 FS_IOC_REMOVE_ENCRYPTION_KEY = 0xc0406618
742 F_SHLCK = 0x8 742 FS_IOC_REMOVE_ENCRYPTION_KEY_ALL_USERS = 0xc0406619
743 F_TEST = 0x3 743 FS_IOC_SET_ENCRYPTION_POLICY = 0x400c6613
744 F_TLOCK = 0x2 744 FS_KEY_DESCRIPTOR_SIZE = 0x8
745 F_ULOCK = 0x0 745 FS_KEY_DESC_PREFIX = "fscrypt:"
746 F_UNLCK = 0x2 746 FS_KEY_DESC_PREFIX_SIZE = 0x8
747 F_WRLCK = 0x1 747 FS_MAX_KEY_SIZE = 0x40
748 GENL_ADMIN_PERM = 0x1 748 FS_POLICY_FLAGS_PAD_16 = 0x2
749 GENL_CMD_CAP_DO = 0x2 749 FS_POLICY_FLAGS_PAD_32 = 0x3
750 GENL_CMD_CAP_DUMP = 0x4 750 FS_POLICY_FLAGS_PAD_4 = 0x0
751 GENL_CMD_CAP_HASPOL = 0x8 751 FS_POLICY_FLAGS_PAD_8 = 0x1
752 GENL_HDRLEN = 0x4 752 FS_POLICY_FLAGS_PAD_MASK = 0x3
753 GENL_ID_CTRL = 0x10 753 FS_POLICY_FLAGS_VALID = 0xf
754 GENL_ID_PMCRAID = 0x12 754 FUTEXFS_SUPER_MAGIC = 0xbad1dea
755 GENL_ID_VFS_DQUOT = 0x11 755 F_ADD_SEALS = 0x409
756 GENL_MAX_ID = 0x3ff 756 F_DUPFD = 0x0
757 GENL_MIN_ID = 0x10 757 F_DUPFD_CLOEXEC = 0x406
758 GENL_NAMSIZ = 0x10 758 F_EXLCK = 0x4
759 GENL_START_ALLOC = 0x13 759 F_GETFD = 0x1
760 GENL_UNS_ADMIN_PERM = 0x10 760 F_GETFL = 0x3
761 GRND_NONBLOCK = 0x1 761 F_GETLEASE = 0x401
762 GRND_RANDOM = 0x2 762 F_GETLK = 0xe
763 HDIO_DRIVE_CMD = 0x31f 763 F_GETLK64 = 0xe
764 HDIO_DRIVE_CMD_AEB = 0x31e 764 F_GETOWN = 0x17
765 HDIO_DRIVE_CMD_HDR_SIZE = 0x4 765 F_GETOWN_EX = 0x10
766 HDIO_DRIVE_HOB_HDR_SIZE = 0x8 766 F_GETPIPE_SZ = 0x408
767 HDIO_DRIVE_RESET = 0x31c 767 F_GETSIG = 0xb
768 HDIO_DRIVE_TASK = 0x31e 768 F_GET_FILE_RW_HINT = 0x40d
769 HDIO_DRIVE_TASKFILE = 0x31d 769 F_GET_RW_HINT = 0x40b
770 HDIO_DRIVE_TASK_HDR_SIZE = 0x8 770 F_GET_SEALS = 0x40a
771 HDIO_GETGEO = 0x301 771 F_LOCK = 0x1
772 HDIO_GET_32BIT = 0x309 772 F_NOTIFY = 0x402
773 HDIO_GET_ACOUSTIC = 0x30f 773 F_OFD_GETLK = 0x24
774 HDIO_GET_ADDRESS = 0x310 774 F_OFD_SETLK = 0x25
775 HDIO_GET_BUSSTATE = 0x31a 775 F_OFD_SETLKW = 0x26
776 HDIO_GET_DMA = 0x30b 776 F_OK = 0x0
777 HDIO_GET_IDENTITY = 0x30d 777 F_RDLCK = 0x0
778 HDIO_GET_KEEPSETTINGS = 0x308 778 F_SEAL_FUTURE_WRITE = 0x10
779 HDIO_GET_MULTCOUNT = 0x304 779 F_SEAL_GROW = 0x4
780 HDIO_GET_NICE = 0x30c 780 F_SEAL_SEAL = 0x1
781 HDIO_GET_NOWERR = 0x30a 781 F_SEAL_SHRINK = 0x2
782 HDIO_GET_QDMA = 0x305 782 F_SEAL_WRITE = 0x8
783 HDIO_GET_UNMASKINTR = 0x302 783 F_SETFD = 0x2
784 HDIO_GET_WCACHE = 0x30e 784 F_SETFL = 0x4
785 HDIO_OBSOLETE_IDENTITY = 0x307 785 F_SETLEASE = 0x400
786 HDIO_SCAN_HWIF = 0x328 786 F_SETLK = 0x6
787 HDIO_SET_32BIT = 0x324 787 F_SETLK64 = 0x6
788 HDIO_SET_ACOUSTIC = 0x32c 788 F_SETLKW = 0x7
789 HDIO_SET_ADDRESS = 0x32f 789 F_SETLKW64 = 0x7
790 HDIO_SET_BUSSTATE = 0x32d 790 F_SETOWN = 0x18
791 HDIO_SET_DMA = 0x326 791 F_SETOWN_EX = 0xf
792 HDIO_SET_KEEPSETTINGS = 0x323 792 F_SETPIPE_SZ = 0x407
793 HDIO_SET_MULTCOUNT = 0x321 793 F_SETSIG = 0xa
794 HDIO_SET_NICE = 0x329 794 F_SET_FILE_RW_HINT = 0x40e
795 HDIO_SET_NOWERR = 0x325 795 F_SET_RW_HINT = 0x40c
796 HDIO_SET_PIO_MODE = 0x327 796 F_SHLCK = 0x8
797 HDIO_SET_QDMA = 0x32e 797 F_TEST = 0x3
798 HDIO_SET_UNMASKINTR = 0x322 798 F_TLOCK = 0x2
799 HDIO_SET_WCACHE = 0x32b 799 F_ULOCK = 0x0
800 HDIO_SET_XFER = 0x306 800 F_UNLCK = 0x2
801 HDIO_TRISTATE_HWIF = 0x31b 801 F_WRLCK = 0x1
802 HDIO_UNREGISTER_HWIF = 0x32a 802 GENL_ADMIN_PERM = 0x1
803 HOSTFS_SUPER_MAGIC = 0xc0ffee 803 GENL_CMD_CAP_DO = 0x2
804 HPFS_SUPER_MAGIC = 0xf995e849 804 GENL_CMD_CAP_DUMP = 0x4
805 HUGETLBFS_MAGIC = 0x958458f6 805 GENL_CMD_CAP_HASPOL = 0x8
806 HUPCL = 0x400 806 GENL_HDRLEN = 0x4
807 IBSHIFT = 0x10 807 GENL_ID_CTRL = 0x10
808 ICANON = 0x2 808 GENL_ID_PMCRAID = 0x12
809 ICMPV6_FILTER = 0x1 809 GENL_ID_VFS_DQUOT = 0x11
810 ICRNL = 0x100 810 GENL_MAX_ID = 0x3ff
811 IEXTEN = 0x100 811 GENL_MIN_ID = 0x10
812 IFA_F_DADFAILED = 0x8 812 GENL_NAMSIZ = 0x10
813 IFA_F_DEPRECATED = 0x20 813 GENL_START_ALLOC = 0x13
814 IFA_F_HOMEADDRESS = 0x10 814 GENL_UNS_ADMIN_PERM = 0x10
815 IFA_F_MANAGETEMPADDR = 0x100 815 GRND_NONBLOCK = 0x1
816 IFA_F_MCAUTOJOIN = 0x400 816 GRND_RANDOM = 0x2
817 IFA_F_NODAD = 0x2 817 HDIO_DRIVE_CMD = 0x31f
818 IFA_F_NOPREFIXROUTE = 0x200 818 HDIO_DRIVE_CMD_AEB = 0x31e
819 IFA_F_OPTIMISTIC = 0x4 819 HDIO_DRIVE_CMD_HDR_SIZE = 0x4
820 IFA_F_PERMANENT = 0x80 820 HDIO_DRIVE_HOB_HDR_SIZE = 0x8
821 IFA_F_SECONDARY = 0x1 821 HDIO_DRIVE_RESET = 0x31c
822 IFA_F_STABLE_PRIVACY = 0x800 822 HDIO_DRIVE_TASK = 0x31e
823 IFA_F_TEMPORARY = 0x1 823 HDIO_DRIVE_TASKFILE = 0x31d
824 IFA_F_TENTATIVE = 0x40 824 HDIO_DRIVE_TASK_HDR_SIZE = 0x8
825 IFA_MAX = 0xa 825 HDIO_GETGEO = 0x301
826 IFF_ALLMULTI = 0x200 826 HDIO_GET_32BIT = 0x309
827 IFF_ATTACH_QUEUE = 0x200 827 HDIO_GET_ACOUSTIC = 0x30f
828 IFF_AUTOMEDIA = 0x4000 828 HDIO_GET_ADDRESS = 0x310
829 IFF_BROADCAST = 0x2 829 HDIO_GET_BUSSTATE = 0x31a
830 IFF_DEBUG = 0x4 830 HDIO_GET_DMA = 0x30b
831 IFF_DETACH_QUEUE = 0x400 831 HDIO_GET_IDENTITY = 0x30d
832 IFF_DORMANT = 0x20000 832 HDIO_GET_KEEPSETTINGS = 0x308
833 IFF_DYNAMIC = 0x8000 833 HDIO_GET_MULTCOUNT = 0x304
834 IFF_ECHO = 0x40000 834 HDIO_GET_NICE = 0x30c
835 IFF_LOOPBACK = 0x8 835 HDIO_GET_NOWERR = 0x30a
836 IFF_LOWER_UP = 0x10000 836 HDIO_GET_QDMA = 0x305
837 IFF_MASTER = 0x400 837 HDIO_GET_UNMASKINTR = 0x302
838 IFF_MULTICAST = 0x1000 838 HDIO_GET_WCACHE = 0x30e
839 IFF_MULTI_QUEUE = 0x100 839 HDIO_OBSOLETE_IDENTITY = 0x307
840 IFF_NAPI = 0x10 840 HDIO_SCAN_HWIF = 0x328
841 IFF_NAPI_FRAGS = 0x20 841 HDIO_SET_32BIT = 0x324
842 IFF_NOARP = 0x80 842 HDIO_SET_ACOUSTIC = 0x32c
843 IFF_NOFILTER = 0x1000 843 HDIO_SET_ADDRESS = 0x32f
844 IFF_NOTRAILERS = 0x20 844 HDIO_SET_BUSSTATE = 0x32d
845 IFF_NO_PI = 0x1000 845 HDIO_SET_DMA = 0x326
846 IFF_ONE_QUEUE = 0x2000 846 HDIO_SET_KEEPSETTINGS = 0x323
847 IFF_PERSIST = 0x800 847 HDIO_SET_MULTCOUNT = 0x321
848 IFF_POINTOPOINT = 0x10 848 HDIO_SET_NICE = 0x329
849 IFF_PORTSEL = 0x2000 849 HDIO_SET_NOWERR = 0x325
850 IFF_PROMISC = 0x100 850 HDIO_SET_PIO_MODE = 0x327
851 IFF_RUNNING = 0x40 851 HDIO_SET_QDMA = 0x32e
852 IFF_SLAVE = 0x800 852 HDIO_SET_UNMASKINTR = 0x322
853 IFF_TAP = 0x2 853 HDIO_SET_WCACHE = 0x32b
854 IFF_TUN = 0x1 854 HDIO_SET_XFER = 0x306
855 IFF_TUN_EXCL = 0x8000 855 HDIO_TRISTATE_HWIF = 0x31b
856 IFF_UP = 0x1 856 HDIO_UNREGISTER_HWIF = 0x32a
857 IFF_VNET_HDR = 0x4000 857 HOSTFS_SUPER_MAGIC = 0xc0ffee
858 IFF_VOLATILE = 0x70c5a 858 HPFS_SUPER_MAGIC = 0xf995e849
859 IFNAMSIZ = 0x10 859 HUGETLBFS_MAGIC = 0x958458f6
860 IGNBRK = 0x1 860 HUPCL = 0x400
861 IGNCR = 0x80 861 IBSHIFT = 0x10
862 IGNPAR = 0x4 862 ICANON = 0x2
863 IMAXBEL = 0x2000 863 ICMPV6_FILTER = 0x1
864 INLCR = 0x40 864 ICRNL = 0x100
865 INPCK = 0x10 865 IEXTEN = 0x100
866 IN_ACCESS = 0x1 866 IFA_F_DADFAILED = 0x8
867 IN_ALL_EVENTS = 0xfff 867 IFA_F_DEPRECATED = 0x20
868 IN_ATTRIB = 0x4 868 IFA_F_HOMEADDRESS = 0x10
869 IN_CLASSA_HOST = 0xffffff 869 IFA_F_MANAGETEMPADDR = 0x100
870 IN_CLASSA_MAX = 0x80 870 IFA_F_MCAUTOJOIN = 0x400
871 IN_CLASSA_NET = 0xff000000 871 IFA_F_NODAD = 0x2
872 IN_CLASSA_NSHIFT = 0x18 872 IFA_F_NOPREFIXROUTE = 0x200
873 IN_CLASSB_HOST = 0xffff 873 IFA_F_OPTIMISTIC = 0x4
874 IN_CLASSB_MAX = 0x10000 874 IFA_F_PERMANENT = 0x80
875 IN_CLASSB_NET = 0xffff0000 875 IFA_F_SECONDARY = 0x1
876 IN_CLASSB_NSHIFT = 0x10 876 IFA_F_STABLE_PRIVACY = 0x800
877 IN_CLASSC_HOST = 0xff 877 IFA_F_TEMPORARY = 0x1
878 IN_CLASSC_NET = 0xffffff00 878 IFA_F_TENTATIVE = 0x40
879 IN_CLASSC_NSHIFT = 0x8 879 IFA_MAX = 0xa
880 IN_CLOEXEC = 0x80000 880 IFF_ALLMULTI = 0x200
881 IN_CLOSE = 0x18 881 IFF_ATTACH_QUEUE = 0x200
882 IN_CLOSE_NOWRITE = 0x10 882 IFF_AUTOMEDIA = 0x4000
883 IN_CLOSE_WRITE = 0x8 883 IFF_BROADCAST = 0x2
884 IN_CREATE = 0x100 884 IFF_DEBUG = 0x4
885 IN_DELETE = 0x200 885 IFF_DETACH_QUEUE = 0x400
886 IN_DELETE_SELF = 0x400 886 IFF_DORMANT = 0x20000
887 IN_DONT_FOLLOW = 0x2000000 887 IFF_DYNAMIC = 0x8000
888 IN_EXCL_UNLINK = 0x4000000 888 IFF_ECHO = 0x40000
889 IN_IGNORED = 0x8000 889 IFF_LOOPBACK = 0x8
890 IN_ISDIR = 0x40000000 890 IFF_LOWER_UP = 0x10000
891 IN_LOOPBACKNET = 0x7f 891 IFF_MASTER = 0x400
892 IN_MASK_ADD = 0x20000000 892 IFF_MULTICAST = 0x1000
893 IN_MASK_CREATE = 0x10000000 893 IFF_MULTI_QUEUE = 0x100
894 IN_MODIFY = 0x2 894 IFF_NAPI = 0x10
895 IN_MOVE = 0xc0 895 IFF_NAPI_FRAGS = 0x20
896 IN_MOVED_FROM = 0x40 896 IFF_NOARP = 0x80
897 IN_MOVED_TO = 0x80 897 IFF_NOFILTER = 0x1000
898 IN_MOVE_SELF = 0x800 898 IFF_NOTRAILERS = 0x20
899 IN_NONBLOCK = 0x80 899 IFF_NO_PI = 0x1000
900 IN_ONESHOT = 0x80000000 900 IFF_ONE_QUEUE = 0x2000
901 IN_ONLYDIR = 0x1000000 901 IFF_PERSIST = 0x800
902 IN_OPEN = 0x20 902 IFF_POINTOPOINT = 0x10
903 IN_Q_OVERFLOW = 0x4000 903 IFF_PORTSEL = 0x2000
904 IN_UNMOUNT = 0x2000 904 IFF_PROMISC = 0x100
905 IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x200007b9 905 IFF_RUNNING = 0x40
906 IPPROTO_AH = 0x33 906 IFF_SLAVE = 0x800
907 IPPROTO_BEETPH = 0x5e 907 IFF_TAP = 0x2
908 IPPROTO_COMP = 0x6c 908 IFF_TUN = 0x1
909 IPPROTO_DCCP = 0x21 909 IFF_TUN_EXCL = 0x8000
910 IPPROTO_DSTOPTS = 0x3c 910 IFF_UP = 0x1
911 IPPROTO_EGP = 0x8 911 IFF_VNET_HDR = 0x4000
912 IPPROTO_ENCAP = 0x62 912 IFF_VOLATILE = 0x70c5a
913 IPPROTO_ESP = 0x32 913 IFNAMSIZ = 0x10
914 IPPROTO_FRAGMENT = 0x2c 914 IGNBRK = 0x1
915 IPPROTO_GRE = 0x2f 915 IGNCR = 0x80
916 IPPROTO_HOPOPTS = 0x0 916 IGNPAR = 0x4
917 IPPROTO_ICMP = 0x1 917 IMAXBEL = 0x2000
918 IPPROTO_ICMPV6 = 0x3a 918 INLCR = 0x40
919 IPPROTO_IDP = 0x16 919 INPCK = 0x10
920 IPPROTO_IGMP = 0x2 920 IN_ACCESS = 0x1
921 IPPROTO_IP = 0x0 921 IN_ALL_EVENTS = 0xfff
922 IPPROTO_IPIP = 0x4 922 IN_ATTRIB = 0x4
923 IPPROTO_IPV6 = 0x29 923 IN_CLASSA_HOST = 0xffffff
924 IPPROTO_MH = 0x87 924 IN_CLASSA_MAX = 0x80
925 IPPROTO_MPLS = 0x89 925 IN_CLASSA_NET = 0xff000000
926 IPPROTO_MTP = 0x5c 926 IN_CLASSA_NSHIFT = 0x18
927 IPPROTO_NONE = 0x3b 927 IN_CLASSB_HOST = 0xffff
928 IPPROTO_PIM = 0x67 928 IN_CLASSB_MAX = 0x10000
929 IPPROTO_PUP = 0xc 929 IN_CLASSB_NET = 0xffff0000
930 IPPROTO_RAW = 0xff 930 IN_CLASSB_NSHIFT = 0x10
931 IPPROTO_ROUTING = 0x2b 931 IN_CLASSC_HOST = 0xff
932 IPPROTO_RSVP = 0x2e 932 IN_CLASSC_NET = 0xffffff00
933 IPPROTO_SCTP = 0x84 933 IN_CLASSC_NSHIFT = 0x8
934 IPPROTO_TCP = 0x6 934 IN_CLOEXEC = 0x80000
935 IPPROTO_TP = 0x1d 935 IN_CLOSE = 0x18
936 IPPROTO_UDP = 0x11 936 IN_CLOSE_NOWRITE = 0x10
937 IPPROTO_UDPLITE = 0x88 937 IN_CLOSE_WRITE = 0x8
938 IPV6_2292DSTOPTS = 0x4 938 IN_CREATE = 0x100
939 IPV6_2292HOPLIMIT = 0x8 939 IN_DELETE = 0x200
940 IPV6_2292HOPOPTS = 0x3 940 IN_DELETE_SELF = 0x400
941 IPV6_2292PKTINFO = 0x2 941 IN_DONT_FOLLOW = 0x2000000
942 IPV6_2292PKTOPTIONS = 0x6 942 IN_EXCL_UNLINK = 0x4000000
943 IPV6_2292RTHDR = 0x5 943 IN_IGNORED = 0x8000
944 IPV6_ADDRFORM = 0x1 944 IN_ISDIR = 0x40000000
945 IPV6_ADDR_PREFERENCES = 0x48 945 IN_LOOPBACKNET = 0x7f
946 IPV6_ADD_MEMBERSHIP = 0x14 946 IN_MASK_ADD = 0x20000000
947 IPV6_AUTHHDR = 0xa 947 IN_MASK_CREATE = 0x10000000
948 IPV6_AUTOFLOWLABEL = 0x46 948 IN_MODIFY = 0x2
949 IPV6_CHECKSUM = 0x7 949 IN_MOVE = 0xc0
950 IPV6_DONTFRAG = 0x3e 950 IN_MOVED_FROM = 0x40
951 IPV6_DROP_MEMBERSHIP = 0x15 951 IN_MOVED_TO = 0x80
952 IPV6_DSTOPTS = 0x3b 952 IN_MOVE_SELF = 0x800
953 IPV6_FREEBIND = 0x4e 953 IN_NONBLOCK = 0x80
954 IPV6_HDRINCL = 0x24 954 IN_ONESHOT = 0x80000000
955 IPV6_HOPLIMIT = 0x34 955 IN_ONLYDIR = 0x1000000
956 IPV6_HOPOPTS = 0x36 956 IN_OPEN = 0x20
957 IPV6_IPSEC_POLICY = 0x22 957 IN_Q_OVERFLOW = 0x4000
958 IPV6_JOIN_ANYCAST = 0x1b 958 IN_UNMOUNT = 0x2000
959 IPV6_JOIN_GROUP = 0x14 959 IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x200007b9
960 IPV6_LEAVE_ANYCAST = 0x1c 960 IPPROTO_AH = 0x33
961 IPV6_LEAVE_GROUP = 0x15 961 IPPROTO_BEETPH = 0x5e
962 IPV6_MINHOPCOUNT = 0x49 962 IPPROTO_COMP = 0x6c
963 IPV6_MTU = 0x18 963 IPPROTO_DCCP = 0x21
964 IPV6_MTU_DISCOVER = 0x17 964 IPPROTO_DSTOPTS = 0x3c
965 IPV6_MULTICAST_ALL = 0x1d 965 IPPROTO_EGP = 0x8
966 IPV6_MULTICAST_HOPS = 0x12 966 IPPROTO_ENCAP = 0x62
967 IPV6_MULTICAST_IF = 0x11 967 IPPROTO_ESP = 0x32
968 IPV6_MULTICAST_LOOP = 0x13 968 IPPROTO_FRAGMENT = 0x2c
969 IPV6_NEXTHOP = 0x9 969 IPPROTO_GRE = 0x2f
970 IPV6_ORIGDSTADDR = 0x4a 970 IPPROTO_HOPOPTS = 0x0
971 IPV6_PATHMTU = 0x3d 971 IPPROTO_ICMP = 0x1
972 IPV6_PKTINFO = 0x32 972 IPPROTO_ICMPV6 = 0x3a
973 IPV6_PMTUDISC_DO = 0x2 973 IPPROTO_IDP = 0x16
974 IPV6_PMTUDISC_DONT = 0x0 974 IPPROTO_IGMP = 0x2
975 IPV6_PMTUDISC_INTERFACE = 0x4 975 IPPROTO_IP = 0x0
976 IPV6_PMTUDISC_OMIT = 0x5 976 IPPROTO_IPIP = 0x4
977 IPV6_PMTUDISC_PROBE = 0x3 977 IPPROTO_IPV6 = 0x29
978 IPV6_PMTUDISC_WANT = 0x1 978 IPPROTO_MH = 0x87
979 IPV6_RECVDSTOPTS = 0x3a 979 IPPROTO_MPLS = 0x89
980 IPV6_RECVERR = 0x19 980 IPPROTO_MTP = 0x5c
981 IPV6_RECVFRAGSIZE = 0x4d 981 IPPROTO_NONE = 0x3b
982 IPV6_RECVHOPLIMIT = 0x33 982 IPPROTO_PIM = 0x67
983 IPV6_RECVHOPOPTS = 0x35 983 IPPROTO_PUP = 0xc
984 IPV6_RECVORIGDSTADDR = 0x4a 984 IPPROTO_RAW = 0xff
985 IPV6_RECVPATHMTU = 0x3c 985 IPPROTO_ROUTING = 0x2b
986 IPV6_RECVPKTINFO = 0x31 986 IPPROTO_RSVP = 0x2e
987 IPV6_RECVRTHDR = 0x38 987 IPPROTO_SCTP = 0x84
988 IPV6_RECVTCLASS = 0x42 988 IPPROTO_TCP = 0x6
989 IPV6_ROUTER_ALERT = 0x16 989 IPPROTO_TP = 0x1d
990 IPV6_ROUTER_ALERT_ISOLATE = 0x1e 990 IPPROTO_UDP = 0x11
991 IPV6_RTHDR = 0x39 991 IPPROTO_UDPLITE = 0x88
992 IPV6_RTHDRDSTOPTS = 0x37 992 IPV6_2292DSTOPTS = 0x4
993 IPV6_RTHDR_LOOSE = 0x0 993 IPV6_2292HOPLIMIT = 0x8
994 IPV6_RTHDR_STRICT = 0x1 994 IPV6_2292HOPOPTS = 0x3
995 IPV6_RTHDR_TYPE_0 = 0x0 995 IPV6_2292PKTINFO = 0x2
996 IPV6_RXDSTOPTS = 0x3b 996 IPV6_2292PKTOPTIONS = 0x6
997 IPV6_RXHOPOPTS = 0x36 997 IPV6_2292RTHDR = 0x5
998 IPV6_TCLASS = 0x43 998 IPV6_ADDRFORM = 0x1
999 IPV6_TRANSPARENT = 0x4b 999 IPV6_ADDR_PREFERENCES = 0x48
1000 IPV6_UNICAST_HOPS = 0x10 1000 IPV6_ADD_MEMBERSHIP = 0x14
1001 IPV6_UNICAST_IF = 0x4c 1001 IPV6_AUTHHDR = 0xa
1002 IPV6_V6ONLY = 0x1a 1002 IPV6_AUTOFLOWLABEL = 0x46
1003 IPV6_XFRM_POLICY = 0x23 1003 IPV6_CHECKSUM = 0x7
1004 IP_ADD_MEMBERSHIP = 0x23 1004 IPV6_DONTFRAG = 0x3e
1005 IP_ADD_SOURCE_MEMBERSHIP = 0x27 1005 IPV6_DROP_MEMBERSHIP = 0x15
1006 IP_BIND_ADDRESS_NO_PORT = 0x18 1006 IPV6_DSTOPTS = 0x3b
1007 IP_BLOCK_SOURCE = 0x26 1007 IPV6_FREEBIND = 0x4e
1008 IP_CHECKSUM = 0x17 1008 IPV6_HDRINCL = 0x24
1009 IP_DEFAULT_MULTICAST_LOOP = 0x1 1009 IPV6_HOPLIMIT = 0x34
1010 IP_DEFAULT_MULTICAST_TTL = 0x1 1010 IPV6_HOPOPTS = 0x36
1011 IP_DF = 0x4000 1011 IPV6_IPSEC_POLICY = 0x22
1012 IP_DROP_MEMBERSHIP = 0x24 1012 IPV6_JOIN_ANYCAST = 0x1b
1013 IP_DROP_SOURCE_MEMBERSHIP = 0x28 1013 IPV6_JOIN_GROUP = 0x14
1014 IP_FREEBIND = 0xf 1014 IPV6_LEAVE_ANYCAST = 0x1c
1015 IP_HDRINCL = 0x3 1015 IPV6_LEAVE_GROUP = 0x15
1016 IP_IPSEC_POLICY = 0x10 1016 IPV6_MINHOPCOUNT = 0x49
1017 IP_MAXPACKET = 0xffff 1017 IPV6_MTU = 0x18
1018 IP_MAX_MEMBERSHIPS = 0x14 1018 IPV6_MTU_DISCOVER = 0x17
1019 IP_MF = 0x2000 1019 IPV6_MULTICAST_ALL = 0x1d
1020 IP_MINTTL = 0x15 1020 IPV6_MULTICAST_HOPS = 0x12
1021 IP_MSFILTER = 0x29 1021 IPV6_MULTICAST_IF = 0x11
1022 IP_MSS = 0x240 1022 IPV6_MULTICAST_LOOP = 0x13
1023 IP_MTU = 0xe 1023 IPV6_NEXTHOP = 0x9
1024 IP_MTU_DISCOVER = 0xa 1024 IPV6_ORIGDSTADDR = 0x4a
1025 IP_MULTICAST_ALL = 0x31 1025 IPV6_PATHMTU = 0x3d
1026 IP_MULTICAST_IF = 0x20 1026 IPV6_PKTINFO = 0x32
1027 IP_MULTICAST_LOOP = 0x22 1027 IPV6_PMTUDISC_DO = 0x2
1028 IP_MULTICAST_TTL = 0x21 1028 IPV6_PMTUDISC_DONT = 0x0
1029 IP_NODEFRAG = 0x16 1029 IPV6_PMTUDISC_INTERFACE = 0x4
1030 IP_OFFMASK = 0x1fff 1030 IPV6_PMTUDISC_OMIT = 0x5
1031 IP_OPTIONS = 0x4 1031 IPV6_PMTUDISC_PROBE = 0x3
1032 IP_ORIGDSTADDR = 0x14 1032 IPV6_PMTUDISC_WANT = 0x1
1033 IP_PASSSEC = 0x12 1033 IPV6_RECVDSTOPTS = 0x3a
1034 IP_PKTINFO = 0x8 1034 IPV6_RECVERR = 0x19
1035 IP_PKTOPTIONS = 0x9 1035 IPV6_RECVFRAGSIZE = 0x4d
1036 IP_PMTUDISC = 0xa 1036 IPV6_RECVHOPLIMIT = 0x33
1037 IP_PMTUDISC_DO = 0x2 1037 IPV6_RECVHOPOPTS = 0x35
1038 IP_PMTUDISC_DONT = 0x0 1038 IPV6_RECVORIGDSTADDR = 0x4a
1039 IP_PMTUDISC_INTERFACE = 0x4 1039 IPV6_RECVPATHMTU = 0x3c
1040 IP_PMTUDISC_OMIT = 0x5 1040 IPV6_RECVPKTINFO = 0x31
1041 IP_PMTUDISC_PROBE = 0x3 1041 IPV6_RECVRTHDR = 0x38
1042 IP_PMTUDISC_WANT = 0x1 1042 IPV6_RECVTCLASS = 0x42
1043 IP_RECVERR = 0xb 1043 IPV6_ROUTER_ALERT = 0x16
1044 IP_RECVFRAGSIZE = 0x19 1044 IPV6_ROUTER_ALERT_ISOLATE = 0x1e
1045 IP_RECVOPTS = 0x6 1045 IPV6_RTHDR = 0x39
1046 IP_RECVORIGDSTADDR = 0x14 1046 IPV6_RTHDRDSTOPTS = 0x37
1047 IP_RECVRETOPTS = 0x7 1047 IPV6_RTHDR_LOOSE = 0x0
1048 IP_RECVTOS = 0xd 1048 IPV6_RTHDR_STRICT = 0x1
1049 IP_RECVTTL = 0xc 1049 IPV6_RTHDR_TYPE_0 = 0x0
1050 IP_RETOPTS = 0x7 1050 IPV6_RXDSTOPTS = 0x3b
1051 IP_RF = 0x8000 1051 IPV6_RXHOPOPTS = 0x36
1052 IP_ROUTER_ALERT = 0x5 1052 IPV6_TCLASS = 0x43
1053 IP_TOS = 0x1 1053 IPV6_TRANSPARENT = 0x4b
1054 IP_TRANSPARENT = 0x13 1054 IPV6_UNICAST_HOPS = 0x10
1055 IP_TTL = 0x2 1055 IPV6_UNICAST_IF = 0x4c
1056 IP_UNBLOCK_SOURCE = 0x25 1056 IPV6_V6ONLY = 0x1a
1057 IP_UNICAST_IF = 0x32 1057 IPV6_XFRM_POLICY = 0x23
1058 IP_XFRM_POLICY = 0x11 1058 IP_ADD_MEMBERSHIP = 0x23
1059 ISIG = 0x1 1059 IP_ADD_SOURCE_MEMBERSHIP = 0x27
1060 ISOFS_SUPER_MAGIC = 0x9660 1060 IP_BIND_ADDRESS_NO_PORT = 0x18
1061 ISTRIP = 0x20 1061 IP_BLOCK_SOURCE = 0x26
1062 IUCLC = 0x200 1062 IP_CHECKSUM = 0x17
1063 IUTF8 = 0x4000 1063 IP_DEFAULT_MULTICAST_LOOP = 0x1
1064 IXANY = 0x800 1064 IP_DEFAULT_MULTICAST_TTL = 0x1
1065 IXOFF = 0x1000 1065 IP_DF = 0x4000
1066 IXON = 0x400 1066 IP_DROP_MEMBERSHIP = 0x24
1067 JFFS2_SUPER_MAGIC = 0x72b6 1067 IP_DROP_SOURCE_MEMBERSHIP = 0x28
1068 KEXEC_ARCH_386 = 0x30000 1068 IP_FREEBIND = 0xf
1069 KEXEC_ARCH_68K = 0x40000 1069 IP_HDRINCL = 0x3
1070 KEXEC_ARCH_AARCH64 = 0xb70000 1070 IP_IPSEC_POLICY = 0x10
1071 KEXEC_ARCH_ARM = 0x280000 1071 IP_MAXPACKET = 0xffff
1072 KEXEC_ARCH_DEFAULT = 0x0 1072 IP_MAX_MEMBERSHIPS = 0x14
1073 KEXEC_ARCH_IA_64 = 0x320000 1073 IP_MF = 0x2000
1074 KEXEC_ARCH_MASK = 0xffff0000 1074 IP_MINTTL = 0x15
1075 KEXEC_ARCH_MIPS = 0x80000 1075 IP_MSFILTER = 0x29
1076 KEXEC_ARCH_MIPS_LE = 0xa0000 1076 IP_MSS = 0x240
1077 KEXEC_ARCH_PPC = 0x140000 1077 IP_MTU = 0xe
1078 KEXEC_ARCH_PPC64 = 0x150000 1078 IP_MTU_DISCOVER = 0xa
1079 KEXEC_ARCH_S390 = 0x160000 1079 IP_MULTICAST_ALL = 0x31
1080 KEXEC_ARCH_SH = 0x2a0000 1080 IP_MULTICAST_IF = 0x20
1081 KEXEC_ARCH_X86_64 = 0x3e0000 1081 IP_MULTICAST_LOOP = 0x22
1082 KEXEC_FILE_NO_INITRAMFS = 0x4 1082 IP_MULTICAST_TTL = 0x21
1083 KEXEC_FILE_ON_CRASH = 0x2 1083 IP_NODEFRAG = 0x16
1084 KEXEC_FILE_UNLOAD = 0x1 1084 IP_OFFMASK = 0x1fff
1085 KEXEC_ON_CRASH = 0x1 1085 IP_OPTIONS = 0x4
1086 KEXEC_PRESERVE_CONTEXT = 0x2 1086 IP_ORIGDSTADDR = 0x14
1087 KEXEC_SEGMENT_MAX = 0x10 1087 IP_PASSSEC = 0x12
1088 KEYCTL_ASSUME_AUTHORITY = 0x10 1088 IP_PKTINFO = 0x8
1089 KEYCTL_CHOWN = 0x4 1089 IP_PKTOPTIONS = 0x9
1090 KEYCTL_CLEAR = 0x7 1090 IP_PMTUDISC = 0xa
1091 KEYCTL_DESCRIBE = 0x6 1091 IP_PMTUDISC_DO = 0x2
1092 KEYCTL_DH_COMPUTE = 0x17 1092 IP_PMTUDISC_DONT = 0x0
1093 KEYCTL_GET_KEYRING_ID = 0x0 1093 IP_PMTUDISC_INTERFACE = 0x4
1094 KEYCTL_GET_PERSISTENT = 0x16 1094 IP_PMTUDISC_OMIT = 0x5
1095 KEYCTL_GET_SECURITY = 0x11 1095 IP_PMTUDISC_PROBE = 0x3
1096 KEYCTL_INSTANTIATE = 0xc 1096 IP_PMTUDISC_WANT = 0x1
1097 KEYCTL_INSTANTIATE_IOV = 0x14 1097 IP_RECVERR = 0xb
1098 KEYCTL_INVALIDATE = 0x15 1098 IP_RECVFRAGSIZE = 0x19
1099 KEYCTL_JOIN_SESSION_KEYRING = 0x1 1099 IP_RECVOPTS = 0x6
1100 KEYCTL_LINK = 0x8 1100 IP_RECVORIGDSTADDR = 0x14
1101 KEYCTL_NEGATE = 0xd 1101 IP_RECVRETOPTS = 0x7
1102 KEYCTL_PKEY_DECRYPT = 0x1a 1102 IP_RECVTOS = 0xd
1103 KEYCTL_PKEY_ENCRYPT = 0x19 1103 IP_RECVTTL = 0xc
1104 KEYCTL_PKEY_QUERY = 0x18 1104 IP_RETOPTS = 0x7
1105 KEYCTL_PKEY_SIGN = 0x1b 1105 IP_RF = 0x8000
1106 KEYCTL_PKEY_VERIFY = 0x1c 1106 IP_ROUTER_ALERT = 0x5
1107 KEYCTL_READ = 0xb 1107 IP_TOS = 0x1
1108 KEYCTL_REJECT = 0x13 1108 IP_TRANSPARENT = 0x13
1109 KEYCTL_RESTRICT_KEYRING = 0x1d 1109 IP_TTL = 0x2
1110 KEYCTL_REVOKE = 0x3 1110 IP_UNBLOCK_SOURCE = 0x25
1111 KEYCTL_SEARCH = 0xa 1111 IP_UNICAST_IF = 0x32
1112 KEYCTL_SESSION_TO_PARENT = 0x12 1112 IP_XFRM_POLICY = 0x11
1113 KEYCTL_SETPERM = 0x5 1113 ISIG = 0x1
1114 KEYCTL_SET_REQKEY_KEYRING = 0xe 1114 ISOFS_SUPER_MAGIC = 0x9660
1115 KEYCTL_SET_TIMEOUT = 0xf 1115 ISTRIP = 0x20
1116 KEYCTL_SUPPORTS_DECRYPT = 0x2 1116 IUCLC = 0x200
1117 KEYCTL_SUPPORTS_ENCRYPT = 0x1 1117 IUTF8 = 0x4000
1118 KEYCTL_SUPPORTS_SIGN = 0x4 1118 IXANY = 0x800
1119 KEYCTL_SUPPORTS_VERIFY = 0x8 1119 IXOFF = 0x1000
1120 KEYCTL_UNLINK = 0x9 1120 IXON = 0x400
1121 KEYCTL_UPDATE = 0x2 1121 JFFS2_SUPER_MAGIC = 0x72b6
1122 KEY_REQKEY_DEFL_DEFAULT = 0x0 1122 KEXEC_ARCH_386 = 0x30000
1123 KEY_REQKEY_DEFL_GROUP_KEYRING = 0x6 1123 KEXEC_ARCH_68K = 0x40000
1124 KEY_REQKEY_DEFL_NO_CHANGE = -0x1 1124 KEXEC_ARCH_AARCH64 = 0xb70000
1125 KEY_REQKEY_DEFL_PROCESS_KEYRING = 0x2 1125 KEXEC_ARCH_ARM = 0x280000
1126 KEY_REQKEY_DEFL_REQUESTOR_KEYRING = 0x7 1126 KEXEC_ARCH_DEFAULT = 0x0
1127 KEY_REQKEY_DEFL_SESSION_KEYRING = 0x3 1127 KEXEC_ARCH_IA_64 = 0x320000
1128 KEY_REQKEY_DEFL_THREAD_KEYRING = 0x1 1128 KEXEC_ARCH_MASK = 0xffff0000
1129 KEY_REQKEY_DEFL_USER_KEYRING = 0x4 1129 KEXEC_ARCH_MIPS = 0x80000
1130 KEY_REQKEY_DEFL_USER_SESSION_KEYRING = 0x5 1130 KEXEC_ARCH_MIPS_LE = 0xa0000
1131 KEY_SPEC_GROUP_KEYRING = -0x6 1131 KEXEC_ARCH_PARISC = 0xf0000
1132 KEY_SPEC_PROCESS_KEYRING = -0x2 1132 KEXEC_ARCH_PPC = 0x140000
1133 KEY_SPEC_REQKEY_AUTH_KEY = -0x7 1133 KEXEC_ARCH_PPC64 = 0x150000
1134 KEY_SPEC_REQUESTOR_KEYRING = -0x8 1134 KEXEC_ARCH_S390 = 0x160000
1135 KEY_SPEC_SESSION_KEYRING = -0x3 1135 KEXEC_ARCH_SH = 0x2a0000
1136 KEY_SPEC_THREAD_KEYRING = -0x1 1136 KEXEC_ARCH_X86_64 = 0x3e0000
1137 KEY_SPEC_USER_KEYRING = -0x4 1137 KEXEC_FILE_NO_INITRAMFS = 0x4
1138 KEY_SPEC_USER_SESSION_KEYRING = -0x5 1138 KEXEC_FILE_ON_CRASH = 0x2
1139 LINUX_REBOOT_CMD_CAD_OFF = 0x0 1139 KEXEC_FILE_UNLOAD = 0x1
1140 LINUX_REBOOT_CMD_CAD_ON = 0x89abcdef 1140 KEXEC_ON_CRASH = 0x1
1141 LINUX_REBOOT_CMD_HALT = 0xcdef0123 1141 KEXEC_PRESERVE_CONTEXT = 0x2
1142 LINUX_REBOOT_CMD_KEXEC = 0x45584543 1142 KEXEC_SEGMENT_MAX = 0x10
1143 LINUX_REBOOT_CMD_POWER_OFF = 0x4321fedc 1143 KEYCTL_ASSUME_AUTHORITY = 0x10
1144 LINUX_REBOOT_CMD_RESTART = 0x1234567 1144 KEYCTL_CAPABILITIES = 0x1f
1145 LINUX_REBOOT_CMD_RESTART2 = 0xa1b2c3d4 1145 KEYCTL_CAPS0_BIG_KEY = 0x10
1146 LINUX_REBOOT_CMD_SW_SUSPEND = 0xd000fce2 1146 KEYCTL_CAPS0_CAPABILITIES = 0x1
1147 LINUX_REBOOT_MAGIC1 = 0xfee1dead 1147 KEYCTL_CAPS0_DIFFIE_HELLMAN = 0x4
1148 LINUX_REBOOT_MAGIC2 = 0x28121969 1148 KEYCTL_CAPS0_INVALIDATE = 0x20
1149 LOCK_EX = 0x2 1149 KEYCTL_CAPS0_MOVE = 0x80
1150 LOCK_NB = 0x4 1150 KEYCTL_CAPS0_PERSISTENT_KEYRINGS = 0x2
1151 LOCK_SH = 0x1 1151 KEYCTL_CAPS0_PUBLIC_KEY = 0x8
1152 LOCK_UN = 0x8 1152 KEYCTL_CAPS0_RESTRICT_KEYRING = 0x40
1153 LOOP_CLR_FD = 0x4c01 1153 KEYCTL_CAPS1_NS_KEYRING_NAME = 0x1
1154 LOOP_CTL_ADD = 0x4c80 1154 KEYCTL_CAPS1_NS_KEY_TAG = 0x2
1155 LOOP_CTL_GET_FREE = 0x4c82 1155 KEYCTL_CHOWN = 0x4
1156 LOOP_CTL_REMOVE = 0x4c81 1156 KEYCTL_CLEAR = 0x7
1157 LOOP_GET_STATUS = 0x4c03 1157 KEYCTL_DESCRIBE = 0x6
1158 LOOP_GET_STATUS64 = 0x4c05 1158 KEYCTL_DH_COMPUTE = 0x17
1159 LOOP_SET_BLOCK_SIZE = 0x4c09 1159 KEYCTL_GET_KEYRING_ID = 0x0
1160 LOOP_SET_CAPACITY = 0x4c07 1160 KEYCTL_GET_PERSISTENT = 0x16
1161 LOOP_SET_DIRECT_IO = 0x4c08 1161 KEYCTL_GET_SECURITY = 0x11
1162 LOOP_SET_FD = 0x4c00 1162 KEYCTL_INSTANTIATE = 0xc
1163 LOOP_SET_STATUS = 0x4c02 1163 KEYCTL_INSTANTIATE_IOV = 0x14
1164 LOOP_SET_STATUS64 = 0x4c04 1164 KEYCTL_INVALIDATE = 0x15
1165 LO_KEY_SIZE = 0x20 1165 KEYCTL_JOIN_SESSION_KEYRING = 0x1
1166 LO_NAME_SIZE = 0x40 1166 KEYCTL_LINK = 0x8
1167 MADV_DODUMP = 0x11 1167 KEYCTL_MOVE = 0x1e
1168 MADV_DOFORK = 0xb 1168 KEYCTL_MOVE_EXCL = 0x1
1169 MADV_DONTDUMP = 0x10 1169 KEYCTL_NEGATE = 0xd
1170 MADV_DONTFORK = 0xa 1170 KEYCTL_PKEY_DECRYPT = 0x1a
1171 MADV_DONTNEED = 0x4 1171 KEYCTL_PKEY_ENCRYPT = 0x19
1172 MADV_FREE = 0x8 1172 KEYCTL_PKEY_QUERY = 0x18
1173 MADV_HUGEPAGE = 0xe 1173 KEYCTL_PKEY_SIGN = 0x1b
1174 MADV_HWPOISON = 0x64 1174 KEYCTL_PKEY_VERIFY = 0x1c
1175 MADV_KEEPONFORK = 0x13 1175 KEYCTL_READ = 0xb
1176 MADV_MERGEABLE = 0xc 1176 KEYCTL_REJECT = 0x13
1177 MADV_NOHUGEPAGE = 0xf 1177 KEYCTL_RESTRICT_KEYRING = 0x1d
1178 MADV_NORMAL = 0x0 1178 KEYCTL_REVOKE = 0x3
1179 MADV_RANDOM = 0x1 1179 KEYCTL_SEARCH = 0xa
1180 MADV_REMOVE = 0x9 1180 KEYCTL_SESSION_TO_PARENT = 0x12
1181 MADV_SEQUENTIAL = 0x2 1181 KEYCTL_SETPERM = 0x5
1182 MADV_UNMERGEABLE = 0xd 1182 KEYCTL_SET_REQKEY_KEYRING = 0xe
1183 MADV_WILLNEED = 0x3 1183 KEYCTL_SET_TIMEOUT = 0xf
1184 MADV_WIPEONFORK = 0x12 1184 KEYCTL_SUPPORTS_DECRYPT = 0x2
1185 MAP_ANON = 0x800 1185 KEYCTL_SUPPORTS_ENCRYPT = 0x1
1186 MAP_ANONYMOUS = 0x800 1186 KEYCTL_SUPPORTS_SIGN = 0x4
1187 MAP_DENYWRITE = 0x2000 1187 KEYCTL_SUPPORTS_VERIFY = 0x8
1188 MAP_EXECUTABLE = 0x4000 1188 KEYCTL_UNLINK = 0x9
1189 MAP_FILE = 0x0 1189 KEYCTL_UPDATE = 0x2
1190 MAP_FIXED = 0x10 1190 KEY_REQKEY_DEFL_DEFAULT = 0x0
1191 MAP_FIXED_NOREPLACE = 0x100000 1191 KEY_REQKEY_DEFL_GROUP_KEYRING = 0x6
1192 MAP_GROWSDOWN = 0x1000 1192 KEY_REQKEY_DEFL_NO_CHANGE = -0x1
1193 MAP_HUGETLB = 0x80000 1193 KEY_REQKEY_DEFL_PROCESS_KEYRING = 0x2
1194 MAP_HUGE_MASK = 0x3f 1194 KEY_REQKEY_DEFL_REQUESTOR_KEYRING = 0x7
1195 MAP_HUGE_SHIFT = 0x1a 1195 KEY_REQKEY_DEFL_SESSION_KEYRING = 0x3
1196 MAP_LOCKED = 0x8000 1196 KEY_REQKEY_DEFL_THREAD_KEYRING = 0x1
1197 MAP_NONBLOCK = 0x20000 1197 KEY_REQKEY_DEFL_USER_KEYRING = 0x4
1198 MAP_NORESERVE = 0x400 1198 KEY_REQKEY_DEFL_USER_SESSION_KEYRING = 0x5
1199 MAP_POPULATE = 0x10000 1199 KEY_SPEC_GROUP_KEYRING = -0x6
1200 MAP_PRIVATE = 0x2 1200 KEY_SPEC_PROCESS_KEYRING = -0x2
1201 MAP_RENAME = 0x800 1201 KEY_SPEC_REQKEY_AUTH_KEY = -0x7
1202 MAP_SHARED = 0x1 1202 KEY_SPEC_REQUESTOR_KEYRING = -0x8
1203 MAP_SHARED_VALIDATE = 0x3 1203 KEY_SPEC_SESSION_KEYRING = -0x3
1204 MAP_STACK = 0x40000 1204 KEY_SPEC_THREAD_KEYRING = -0x1
1205 MAP_TYPE = 0xf 1205 KEY_SPEC_USER_KEYRING = -0x4
1206 MCAST_BLOCK_SOURCE = 0x2b 1206 KEY_SPEC_USER_SESSION_KEYRING = -0x5
1207 MCAST_EXCLUDE = 0x0 1207 LINUX_REBOOT_CMD_CAD_OFF = 0x0
1208 MCAST_INCLUDE = 0x1 1208 LINUX_REBOOT_CMD_CAD_ON = 0x89abcdef
1209 MCAST_JOIN_GROUP = 0x2a 1209 LINUX_REBOOT_CMD_HALT = 0xcdef0123
1210 MCAST_JOIN_SOURCE_GROUP = 0x2e 1210 LINUX_REBOOT_CMD_KEXEC = 0x45584543
1211 MCAST_LEAVE_GROUP = 0x2d 1211 LINUX_REBOOT_CMD_POWER_OFF = 0x4321fedc
1212 MCAST_LEAVE_SOURCE_GROUP = 0x2f 1212 LINUX_REBOOT_CMD_RESTART = 0x1234567
1213 MCAST_MSFILTER = 0x30 1213 LINUX_REBOOT_CMD_RESTART2 = 0xa1b2c3d4
1214 MCAST_UNBLOCK_SOURCE = 0x2c 1214 LINUX_REBOOT_CMD_SW_SUSPEND = 0xd000fce2
1215 MCL_CURRENT = 0x1 1215 LINUX_REBOOT_MAGIC1 = 0xfee1dead
1216 MCL_FUTURE = 0x2 1216 LINUX_REBOOT_MAGIC2 = 0x28121969
1217 MCL_ONFAULT = 0x4 1217 LOCK_EX = 0x2
1218 MFD_ALLOW_SEALING = 0x2 1218 LOCK_NB = 0x4
1219 MFD_CLOEXEC = 0x1 1219 LOCK_SH = 0x1
1220 MFD_HUGETLB = 0x4 1220 LOCK_UN = 0x8
1221 MFD_HUGE_16GB = -0x78000000 1221 LOOP_CLR_FD = 0x4c01
1222 MFD_HUGE_16MB = 0x60000000 1222 LOOP_CTL_ADD = 0x4c80
1223 MFD_HUGE_1GB = 0x78000000 1223 LOOP_CTL_GET_FREE = 0x4c82
1224 MFD_HUGE_1MB = 0x50000000 1224 LOOP_CTL_REMOVE = 0x4c81
1225 MFD_HUGE_256MB = 0x70000000 1225 LOOP_GET_STATUS = 0x4c03
1226 MFD_HUGE_2GB = 0x7c000000 1226 LOOP_GET_STATUS64 = 0x4c05
1227 MFD_HUGE_2MB = 0x54000000 1227 LOOP_SET_BLOCK_SIZE = 0x4c09
1228 MFD_HUGE_32MB = 0x64000000 1228 LOOP_SET_CAPACITY = 0x4c07
1229 MFD_HUGE_512KB = 0x4c000000 1229 LOOP_SET_DIRECT_IO = 0x4c08
1230 MFD_HUGE_512MB = 0x74000000 1230 LOOP_SET_FD = 0x4c00
1231 MFD_HUGE_64KB = 0x40000000 1231 LOOP_SET_STATUS = 0x4c02
1232 MFD_HUGE_8MB = 0x5c000000 1232 LOOP_SET_STATUS64 = 0x4c04
1233 MFD_HUGE_MASK = 0x3f 1233 LO_KEY_SIZE = 0x20
1234 MFD_HUGE_SHIFT = 0x1a 1234 LO_NAME_SIZE = 0x40
1235 MINIX2_SUPER_MAGIC = 0x2468 1235 MADV_COLD = 0x14
1236 MINIX2_SUPER_MAGIC2 = 0x2478 1236 MADV_DODUMP = 0x11
1237 MINIX3_SUPER_MAGIC = 0x4d5a 1237 MADV_DOFORK = 0xb
1238 MINIX_SUPER_MAGIC = 0x137f 1238 MADV_DONTDUMP = 0x10
1239 MINIX_SUPER_MAGIC2 = 0x138f 1239 MADV_DONTFORK = 0xa
1240 MNT_DETACH = 0x2 1240 MADV_DONTNEED = 0x4
1241 MNT_EXPIRE = 0x4 1241 MADV_FREE = 0x8
1242 MNT_FORCE = 0x1 1242 MADV_HUGEPAGE = 0xe
1243 MODULE_INIT_IGNORE_MODVERSIONS = 0x1 1243 MADV_HWPOISON = 0x64
1244 MODULE_INIT_IGNORE_VERMAGIC = 0x2 1244 MADV_KEEPONFORK = 0x13
1245 MSDOS_SUPER_MAGIC = 0x4d44 1245 MADV_MERGEABLE = 0xc
1246 MSG_BATCH = 0x40000 1246 MADV_NOHUGEPAGE = 0xf
1247 MSG_CMSG_CLOEXEC = 0x40000000 1247 MADV_NORMAL = 0x0
1248 MSG_CONFIRM = 0x800 1248 MADV_PAGEOUT = 0x15
1249 MSG_CTRUNC = 0x8 1249 MADV_RANDOM = 0x1
1250 MSG_DONTROUTE = 0x4 1250 MADV_REMOVE = 0x9
1251 MSG_DONTWAIT = 0x40 1251 MADV_SEQUENTIAL = 0x2
1252 MSG_EOR = 0x80 1252 MADV_UNMERGEABLE = 0xd
1253 MSG_ERRQUEUE = 0x2000 1253 MADV_WILLNEED = 0x3
1254 MSG_FASTOPEN = 0x20000000 1254 MADV_WIPEONFORK = 0x12
1255 MSG_FIN = 0x200 1255 MAP_ANON = 0x800
1256 MSG_MORE = 0x8000 1256 MAP_ANONYMOUS = 0x800
1257 MSG_NOSIGNAL = 0x4000 1257 MAP_DENYWRITE = 0x2000
1258 MSG_OOB = 0x1 1258 MAP_EXECUTABLE = 0x4000
1259 MSG_PEEK = 0x2 1259 MAP_FILE = 0x0
1260 MSG_PROXY = 0x10 1260 MAP_FIXED = 0x10
1261 MSG_RST = 0x1000 1261 MAP_FIXED_NOREPLACE = 0x100000
1262 MSG_SYN = 0x400 1262 MAP_GROWSDOWN = 0x1000
1263 MSG_TRUNC = 0x20 1263 MAP_HUGETLB = 0x80000
1264 MSG_TRYHARD = 0x4 1264 MAP_HUGE_MASK = 0x3f
1265 MSG_WAITALL = 0x100 1265 MAP_HUGE_SHIFT = 0x1a
1266 MSG_WAITFORONE = 0x10000 1266 MAP_LOCKED = 0x8000
1267 MSG_ZEROCOPY = 0x4000000 1267 MAP_NONBLOCK = 0x20000
1268 MS_ACTIVE = 0x40000000 1268 MAP_NORESERVE = 0x400
1269 MS_ASYNC = 0x1 1269 MAP_POPULATE = 0x10000
1270 MS_BIND = 0x1000 1270 MAP_PRIVATE = 0x2
1271 MS_BORN = 0x20000000 1271 MAP_RENAME = 0x800
1272 MS_DIRSYNC = 0x80 1272 MAP_SHARED = 0x1
1273 MS_INVALIDATE = 0x2 1273 MAP_SHARED_VALIDATE = 0x3
1274 MS_I_VERSION = 0x800000 1274 MAP_STACK = 0x40000
1275 MS_KERNMOUNT = 0x400000 1275 MAP_TYPE = 0xf
1276 MS_LAZYTIME = 0x2000000 1276 MCAST_BLOCK_SOURCE = 0x2b
1277 MS_MANDLOCK = 0x40 1277 MCAST_EXCLUDE = 0x0
1278 MS_MGC_MSK = 0xffff0000 1278 MCAST_INCLUDE = 0x1
1279 MS_MGC_VAL = 0xc0ed0000 1279 MCAST_JOIN_GROUP = 0x2a
1280 MS_MOVE = 0x2000 1280 MCAST_JOIN_SOURCE_GROUP = 0x2e
1281 MS_NOATIME = 0x400 1281 MCAST_LEAVE_GROUP = 0x2d
1282 MS_NODEV = 0x4 1282 MCAST_LEAVE_SOURCE_GROUP = 0x2f
1283 MS_NODIRATIME = 0x800 1283 MCAST_MSFILTER = 0x30
1284 MS_NOEXEC = 0x8 1284 MCAST_UNBLOCK_SOURCE = 0x2c
1285 MS_NOREMOTELOCK = 0x8000000 1285 MCL_CURRENT = 0x1
1286 MS_NOSEC = 0x10000000 1286 MCL_FUTURE = 0x2
1287 MS_NOSUID = 0x2 1287 MCL_ONFAULT = 0x4
1288 MS_NOUSER = -0x80000000 1288 MFD_ALLOW_SEALING = 0x2
1289 MS_POSIXACL = 0x10000 1289 MFD_CLOEXEC = 0x1
1290 MS_PRIVATE = 0x40000 1290 MFD_HUGETLB = 0x4
1291 MS_RDONLY = 0x1 1291 MFD_HUGE_16GB = -0x78000000
1292 MS_REC = 0x4000 1292 MFD_HUGE_16MB = 0x60000000
1293 MS_RELATIME = 0x200000 1293 MFD_HUGE_1GB = 0x78000000
1294 MS_REMOUNT = 0x20 1294 MFD_HUGE_1MB = 0x50000000
1295 MS_RMT_MASK = 0x2800051 1295 MFD_HUGE_256MB = 0x70000000
1296 MS_SHARED = 0x100000 1296 MFD_HUGE_2GB = 0x7c000000
1297 MS_SILENT = 0x8000 1297 MFD_HUGE_2MB = 0x54000000
1298 MS_SLAVE = 0x80000 1298 MFD_HUGE_32MB = 0x64000000
1299 MS_STRICTATIME = 0x1000000 1299 MFD_HUGE_512KB = 0x4c000000
1300 MS_SUBMOUNT = 0x4000000 1300 MFD_HUGE_512MB = 0x74000000
1301 MS_SYNC = 0x4 1301 MFD_HUGE_64KB = 0x40000000
1302 MS_SYNCHRONOUS = 0x10 1302 MFD_HUGE_8MB = 0x5c000000
1303 MS_UNBINDABLE = 0x20000 1303 MFD_HUGE_MASK = 0x3f
1304 MS_VERBOSE = 0x8000 1304 MFD_HUGE_SHIFT = 0x1a
1305 MTD_INODE_FS_MAGIC = 0x11307854 1305 MINIX2_SUPER_MAGIC = 0x2468
1306 NAME_MAX = 0xff 1306 MINIX2_SUPER_MAGIC2 = 0x2478
1307 NCP_SUPER_MAGIC = 0x564c 1307 MINIX3_SUPER_MAGIC = 0x4d5a
1308 NETLINK_ADD_MEMBERSHIP = 0x1 1308 MINIX_SUPER_MAGIC = 0x137f
1309 NETLINK_AUDIT = 0x9 1309 MINIX_SUPER_MAGIC2 = 0x138f
1310 NETLINK_BROADCAST_ERROR = 0x4 1310 MNT_DETACH = 0x2
1311 NETLINK_CAP_ACK = 0xa 1311 MNT_EXPIRE = 0x4
1312 NETLINK_CONNECTOR = 0xb 1312 MNT_FORCE = 0x1
1313 NETLINK_CRYPTO = 0x15 1313 MODULE_INIT_IGNORE_MODVERSIONS = 0x1
1314 NETLINK_DNRTMSG = 0xe 1314 MODULE_INIT_IGNORE_VERMAGIC = 0x2
1315 NETLINK_DROP_MEMBERSHIP = 0x2 1315 MSDOS_SUPER_MAGIC = 0x4d44
1316 NETLINK_ECRYPTFS = 0x13 1316 MSG_BATCH = 0x40000
1317 NETLINK_EXT_ACK = 0xb 1317 MSG_CMSG_CLOEXEC = 0x40000000
1318 NETLINK_FIB_LOOKUP = 0xa 1318 MSG_CONFIRM = 0x800
1319 NETLINK_FIREWALL = 0x3 1319 MSG_CTRUNC = 0x8
1320 NETLINK_GENERIC = 0x10 1320 MSG_DONTROUTE = 0x4
1321 NETLINK_GET_STRICT_CHK = 0xc 1321 MSG_DONTWAIT = 0x40
1322 NETLINK_INET_DIAG = 0x4 1322 MSG_EOR = 0x80
1323 NETLINK_IP6_FW = 0xd 1323 MSG_ERRQUEUE = 0x2000
1324 NETLINK_ISCSI = 0x8 1324 MSG_FASTOPEN = 0x20000000
1325 NETLINK_KOBJECT_UEVENT = 0xf 1325 MSG_FIN = 0x200
1326 NETLINK_LISTEN_ALL_NSID = 0x8 1326 MSG_MORE = 0x8000
1327 NETLINK_LIST_MEMBERSHIPS = 0x9 1327 MSG_NOSIGNAL = 0x4000
1328 NETLINK_NETFILTER = 0xc 1328 MSG_OOB = 0x1
1329 NETLINK_NFLOG = 0x5 1329 MSG_PEEK = 0x2
1330 NETLINK_NO_ENOBUFS = 0x5 1330 MSG_PROXY = 0x10
1331 NETLINK_PKTINFO = 0x3 1331 MSG_RST = 0x1000
1332 NETLINK_RDMA = 0x14 1332 MSG_SYN = 0x400
1333 NETLINK_ROUTE = 0x0 1333 MSG_TRUNC = 0x20
1334 NETLINK_RX_RING = 0x6 1334 MSG_TRYHARD = 0x4
1335 NETLINK_SCSITRANSPORT = 0x12 1335 MSG_WAITALL = 0x100
1336 NETLINK_SELINUX = 0x7 1336 MSG_WAITFORONE = 0x10000
1337 NETLINK_SMC = 0x16 1337 MSG_ZEROCOPY = 0x4000000
1338 NETLINK_SOCK_DIAG = 0x4 1338 MS_ACTIVE = 0x40000000
1339 NETLINK_TX_RING = 0x7 1339 MS_ASYNC = 0x1
1340 NETLINK_UNUSED = 0x1 1340 MS_BIND = 0x1000
1341 NETLINK_USERSOCK = 0x2 1341 MS_BORN = 0x20000000
1342 NETLINK_XFRM = 0x6 1342 MS_DIRSYNC = 0x80
1343 NETNSA_MAX = 0x5 1343 MS_INVALIDATE = 0x2
1344 NETNSA_NSID_NOT_ASSIGNED = -0x1 1344 MS_I_VERSION = 0x800000
1345 NFNETLINK_V0 = 0x0 1345 MS_KERNMOUNT = 0x400000
1346 NFNLGRP_ACCT_QUOTA = 0x8 1346 MS_LAZYTIME = 0x2000000
1347 NFNLGRP_CONNTRACK_DESTROY = 0x3 1347 MS_MANDLOCK = 0x40
1348 NFNLGRP_CONNTRACK_EXP_DESTROY = 0x6 1348 MS_MGC_MSK = 0xffff0000
1349 NFNLGRP_CONNTRACK_EXP_NEW = 0x4 1349 MS_MGC_VAL = 0xc0ed0000
1350 NFNLGRP_CONNTRACK_EXP_UPDATE = 0x5 1350 MS_MOVE = 0x2000
1351 NFNLGRP_CONNTRACK_NEW = 0x1 1351 MS_NOATIME = 0x400
1352 NFNLGRP_CONNTRACK_UPDATE = 0x2 1352 MS_NODEV = 0x4
1353 NFNLGRP_MAX = 0x9 1353 MS_NODIRATIME = 0x800
1354 NFNLGRP_NFTABLES = 0x7 1354 MS_NOEXEC = 0x8
1355 NFNLGRP_NFTRACE = 0x9 1355 MS_NOREMOTELOCK = 0x8000000
1356 NFNLGRP_NONE = 0x0 1356 MS_NOSEC = 0x10000000
1357 NFNL_BATCH_MAX = 0x1 1357 MS_NOSUID = 0x2
1358 NFNL_MSG_BATCH_BEGIN = 0x10 1358 MS_NOUSER = -0x80000000
1359 NFNL_MSG_BATCH_END = 0x11 1359 MS_POSIXACL = 0x10000
1360 NFNL_NFA_NEST = 0x8000 1360 MS_PRIVATE = 0x40000
1361 NFNL_SUBSYS_ACCT = 0x7 1361 MS_RDONLY = 0x1
1362 NFNL_SUBSYS_COUNT = 0xc 1362 MS_REC = 0x4000
1363 NFNL_SUBSYS_CTHELPER = 0x9 1363 MS_RELATIME = 0x200000
1364 NFNL_SUBSYS_CTNETLINK = 0x1 1364 MS_REMOUNT = 0x20
1365 NFNL_SUBSYS_CTNETLINK_EXP = 0x2 1365 MS_RMT_MASK = 0x2800051
1366 NFNL_SUBSYS_CTNETLINK_TIMEOUT = 0x8 1366 MS_SHARED = 0x100000
1367 NFNL_SUBSYS_IPSET = 0x6 1367 MS_SILENT = 0x8000
1368 NFNL_SUBSYS_NFTABLES = 0xa 1368 MS_SLAVE = 0x80000
1369 NFNL_SUBSYS_NFT_COMPAT = 0xb 1369 MS_STRICTATIME = 0x1000000
1370 NFNL_SUBSYS_NONE = 0x0 1370 MS_SUBMOUNT = 0x4000000
1371 NFNL_SUBSYS_OSF = 0x5 1371 MS_SYNC = 0x4
1372 NFNL_SUBSYS_QUEUE = 0x3 1372 MS_SYNCHRONOUS = 0x10
1373 NFNL_SUBSYS_ULOG = 0x4 1373 MS_UNBINDABLE = 0x20000
1374 NFS_SUPER_MAGIC = 0x6969 1374 MS_VERBOSE = 0x8000
1375 NILFS_SUPER_MAGIC = 0x3434 1375 MTD_INODE_FS_MAGIC = 0x11307854
1376 NL0 = 0x0 1376 NAME_MAX = 0xff
1377 NL1 = 0x100 1377 NCP_SUPER_MAGIC = 0x564c
1378 NLA_ALIGNTO = 0x4 1378 NETLINK_ADD_MEMBERSHIP = 0x1
1379 NLA_F_NESTED = 0x8000 1379 NETLINK_AUDIT = 0x9
1380 NLA_F_NET_BYTEORDER = 0x4000 1380 NETLINK_BROADCAST_ERROR = 0x4
1381 NLA_HDRLEN = 0x4 1381 NETLINK_CAP_ACK = 0xa
1382 NLDLY = 0x100 1382 NETLINK_CONNECTOR = 0xb
1383 NLMSG_ALIGNTO = 0x4 1383 NETLINK_CRYPTO = 0x15
1384 NLMSG_DONE = 0x3 1384 NETLINK_DNRTMSG = 0xe
1385 NLMSG_ERROR = 0x2 1385 NETLINK_DROP_MEMBERSHIP = 0x2
1386 NLMSG_HDRLEN = 0x10 1386 NETLINK_ECRYPTFS = 0x13
1387 NLMSG_MIN_TYPE = 0x10 1387 NETLINK_EXT_ACK = 0xb
1388 NLMSG_NOOP = 0x1 1388 NETLINK_FIB_LOOKUP = 0xa
1389 NLMSG_OVERRUN = 0x4 1389 NETLINK_FIREWALL = 0x3
1390 NLM_F_ACK = 0x4 1390 NETLINK_GENERIC = 0x10
1391 NLM_F_ACK_TLVS = 0x200 1391 NETLINK_GET_STRICT_CHK = 0xc
1392 NLM_F_APPEND = 0x800 1392 NETLINK_INET_DIAG = 0x4
1393 NLM_F_ATOMIC = 0x400 1393 NETLINK_IP6_FW = 0xd
1394 NLM_F_CAPPED = 0x100 1394 NETLINK_ISCSI = 0x8
1395 NLM_F_CREATE = 0x400 1395 NETLINK_KOBJECT_UEVENT = 0xf
1396 NLM_F_DUMP = 0x300 1396 NETLINK_LISTEN_ALL_NSID = 0x8
1397 NLM_F_DUMP_FILTERED = 0x20 1397 NETLINK_LIST_MEMBERSHIPS = 0x9
1398 NLM_F_DUMP_INTR = 0x10 1398 NETLINK_NETFILTER = 0xc
1399 NLM_F_ECHO = 0x8 1399 NETLINK_NFLOG = 0x5
1400 NLM_F_EXCL = 0x200 1400 NETLINK_NO_ENOBUFS = 0x5
1401 NLM_F_MATCH = 0x200 1401 NETLINK_PKTINFO = 0x3
1402 NLM_F_MULTI = 0x2 1402 NETLINK_RDMA = 0x14
1403 NLM_F_NONREC = 0x100 1403 NETLINK_ROUTE = 0x0
1404 NLM_F_REPLACE = 0x100 1404 NETLINK_RX_RING = 0x6
1405 NLM_F_REQUEST = 0x1 1405 NETLINK_SCSITRANSPORT = 0x12
1406 NLM_F_ROOT = 0x100 1406 NETLINK_SELINUX = 0x7
1407 NOFLSH = 0x80 1407 NETLINK_SMC = 0x16
1408 NSFS_MAGIC = 0x6e736673 1408 NETLINK_SOCK_DIAG = 0x4
1409 NS_GET_NSTYPE = 0x2000b703 1409 NETLINK_TX_RING = 0x7
1410 NS_GET_OWNER_UID = 0x2000b704 1410 NETLINK_UNUSED = 0x1
1411 NS_GET_PARENT = 0x2000b702 1411 NETLINK_USERSOCK = 0x2
1412 NS_GET_USERNS = 0x2000b701 1412 NETLINK_XFRM = 0x6
1413 OCFS2_SUPER_MAGIC = 0x7461636f 1413 NETNSA_MAX = 0x5
1414 OCRNL = 0x8 1414 NETNSA_NSID_NOT_ASSIGNED = -0x1
1415 OFDEL = 0x80 1415 NFDBITS = 0x40
1416 OFILL = 0x40 1416 NFNETLINK_V0 = 0x0
1417 OLCUC = 0x2 1417 NFNLGRP_ACCT_QUOTA = 0x8
1418 ONLCR = 0x4 1418 NFNLGRP_CONNTRACK_DESTROY = 0x3
1419 ONLRET = 0x20 1419 NFNLGRP_CONNTRACK_EXP_DESTROY = 0x6
1420 ONOCR = 0x10 1420 NFNLGRP_CONNTRACK_EXP_NEW = 0x4
1421 OPENPROM_SUPER_MAGIC = 0x9fa1 1421 NFNLGRP_CONNTRACK_EXP_UPDATE = 0x5
1422 OPOST = 0x1 1422 NFNLGRP_CONNTRACK_NEW = 0x1
1423 OVERLAYFS_SUPER_MAGIC = 0x794c7630 1423 NFNLGRP_CONNTRACK_UPDATE = 0x2
1424 O_ACCMODE = 0x3 1424 NFNLGRP_MAX = 0x9
1425 O_APPEND = 0x8 1425 NFNLGRP_NFTABLES = 0x7
1426 O_ASYNC = 0x1000 1426 NFNLGRP_NFTRACE = 0x9
1427 O_CLOEXEC = 0x80000 1427 NFNLGRP_NONE = 0x0
1428 O_CREAT = 0x100 1428 NFNL_BATCH_MAX = 0x1
1429 O_DIRECT = 0x8000 1429 NFNL_MSG_BATCH_BEGIN = 0x10
1430 O_DIRECTORY = 0x10000 1430 NFNL_MSG_BATCH_END = 0x11
1431 O_DSYNC = 0x10 1431 NFNL_NFA_NEST = 0x8000
1432 O_EXCL = 0x400 1432 NFNL_SUBSYS_ACCT = 0x7
1433 O_FSYNC = 0x4010 1433 NFNL_SUBSYS_COUNT = 0xc
1434 O_LARGEFILE = 0x0 1434 NFNL_SUBSYS_CTHELPER = 0x9
1435 O_NDELAY = 0x80 1435 NFNL_SUBSYS_CTNETLINK = 0x1
1436 O_NOATIME = 0x40000 1436 NFNL_SUBSYS_CTNETLINK_EXP = 0x2
1437 O_NOCTTY = 0x800 1437 NFNL_SUBSYS_CTNETLINK_TIMEOUT = 0x8
1438 O_NOFOLLOW = 0x20000 1438 NFNL_SUBSYS_IPSET = 0x6
1439 O_NONBLOCK = 0x80 1439 NFNL_SUBSYS_NFTABLES = 0xa
1440 O_PATH = 0x200000 1440 NFNL_SUBSYS_NFT_COMPAT = 0xb
1441 O_RDONLY = 0x0 1441 NFNL_SUBSYS_NONE = 0x0
1442 O_RDWR = 0x2 1442 NFNL_SUBSYS_OSF = 0x5
1443 O_RSYNC = 0x4010 1443 NFNL_SUBSYS_QUEUE = 0x3
1444 O_SYNC = 0x4010 1444 NFNL_SUBSYS_ULOG = 0x4
1445 O_TMPFILE = 0x410000 1445 NFS_SUPER_MAGIC = 0x6969
1446 O_TRUNC = 0x200 1446 NILFS_SUPER_MAGIC = 0x3434
1447 O_WRONLY = 0x1 1447 NL0 = 0x0
1448 PACKET_ADD_MEMBERSHIP = 0x1 1448 NL1 = 0x100
1449 PACKET_AUXDATA = 0x8 1449 NLA_ALIGNTO = 0x4
1450 PACKET_BROADCAST = 0x1 1450 NLA_F_NESTED = 0x8000
1451 PACKET_COPY_THRESH = 0x7 1451 NLA_F_NET_BYTEORDER = 0x4000
1452 PACKET_DROP_MEMBERSHIP = 0x2 1452 NLA_HDRLEN = 0x4
1453 PACKET_FANOUT = 0x12 1453 NLDLY = 0x100
1454 PACKET_FANOUT_CBPF = 0x6 1454 NLMSG_ALIGNTO = 0x4
1455 PACKET_FANOUT_CPU = 0x2 1455 NLMSG_DONE = 0x3
1456 PACKET_FANOUT_DATA = 0x16 1456 NLMSG_ERROR = 0x2
1457 PACKET_FANOUT_EBPF = 0x7 1457 NLMSG_HDRLEN = 0x10
1458 PACKET_FANOUT_FLAG_DEFRAG = 0x8000 1458 NLMSG_MIN_TYPE = 0x10
1459 PACKET_FANOUT_FLAG_ROLLOVER = 0x1000 1459 NLMSG_NOOP = 0x1
1460 PACKET_FANOUT_FLAG_UNIQUEID = 0x2000 1460 NLMSG_OVERRUN = 0x4
1461 PACKET_FANOUT_HASH = 0x0 1461 NLM_F_ACK = 0x4
1462 PACKET_FANOUT_LB = 0x1 1462 NLM_F_ACK_TLVS = 0x200
1463 PACKET_FANOUT_QM = 0x5 1463 NLM_F_APPEND = 0x800
1464 PACKET_FANOUT_RND = 0x4 1464 NLM_F_ATOMIC = 0x400
1465 PACKET_FANOUT_ROLLOVER = 0x3 1465 NLM_F_CAPPED = 0x100
1466 PACKET_FASTROUTE = 0x6 1466 NLM_F_CREATE = 0x400
1467 PACKET_HDRLEN = 0xb 1467 NLM_F_DUMP = 0x300
1468 PACKET_HOST = 0x0 1468 NLM_F_DUMP_FILTERED = 0x20
1469 PACKET_IGNORE_OUTGOING = 0x17 1469 NLM_F_DUMP_INTR = 0x10
1470 PACKET_KERNEL = 0x7 1470 NLM_F_ECHO = 0x8
1471 PACKET_LOOPBACK = 0x5 1471 NLM_F_EXCL = 0x200
1472 PACKET_LOSS = 0xe 1472 NLM_F_MATCH = 0x200
1473 PACKET_MR_ALLMULTI = 0x2 1473 NLM_F_MULTI = 0x2
1474 PACKET_MR_MULTICAST = 0x0 1474 NLM_F_NONREC = 0x100
1475 PACKET_MR_PROMISC = 0x1 1475 NLM_F_REPLACE = 0x100
1476 PACKET_MR_UNICAST = 0x3 1476 NLM_F_REQUEST = 0x1
1477 PACKET_MULTICAST = 0x2 1477 NLM_F_ROOT = 0x100
1478 PACKET_ORIGDEV = 0x9 1478 NOFLSH = 0x80
1479 PACKET_OTHERHOST = 0x3 1479 NSFS_MAGIC = 0x6e736673
1480 PACKET_OUTGOING = 0x4 1480 NS_GET_NSTYPE = 0x2000b703
1481 PACKET_QDISC_BYPASS = 0x14 1481 NS_GET_OWNER_UID = 0x2000b704
1482 PACKET_RECV_OUTPUT = 0x3 1482 NS_GET_PARENT = 0x2000b702
1483 PACKET_RESERVE = 0xc 1483 NS_GET_USERNS = 0x2000b701
1484 PACKET_ROLLOVER_STATS = 0x15 1484 OCFS2_SUPER_MAGIC = 0x7461636f
1485 PACKET_RX_RING = 0x5 1485 OCRNL = 0x8
1486 PACKET_STATISTICS = 0x6 1486 OFDEL = 0x80
1487 PACKET_TIMESTAMP = 0x11 1487 OFILL = 0x40
1488 PACKET_TX_HAS_OFF = 0x13 1488 OLCUC = 0x2
1489 PACKET_TX_RING = 0xd 1489 ONLCR = 0x4
1490 PACKET_TX_TIMESTAMP = 0x10 1490 ONLRET = 0x20
1491 PACKET_USER = 0x6 1491 ONOCR = 0x10
1492 PACKET_VERSION = 0xa 1492 OPENPROM_SUPER_MAGIC = 0x9fa1
1493 PACKET_VNET_HDR = 0xf 1493 OPOST = 0x1
1494 PARENB = 0x100 1494 OVERLAYFS_SUPER_MAGIC = 0x794c7630
1495 PARITY_CRC16_PR0 = 0x2 1495 O_ACCMODE = 0x3
1496 PARITY_CRC16_PR0_CCITT = 0x4 1496 O_APPEND = 0x8
1497 PARITY_CRC16_PR1 = 0x3 1497 O_ASYNC = 0x1000
1498 PARITY_CRC16_PR1_CCITT = 0x5 1498 O_CLOEXEC = 0x80000
1499 PARITY_CRC32_PR0_CCITT = 0x6 1499 O_CREAT = 0x100
1500 PARITY_CRC32_PR1_CCITT = 0x7 1500 O_DIRECT = 0x8000
1501 PARITY_DEFAULT = 0x0 1501 O_DIRECTORY = 0x10000
1502 PARITY_NONE = 0x1 1502 O_DSYNC = 0x10
1503 PARMRK = 0x8 1503 O_EXCL = 0x400
1504 PARODD = 0x200 1504 O_FSYNC = 0x4010
1505 PENDIN = 0x4000 1505 O_LARGEFILE = 0x0
1506 PERF_EVENT_IOC_DISABLE = 0x20002401 1506 O_NDELAY = 0x80
1507 PERF_EVENT_IOC_ENABLE = 0x20002400 1507 O_NOATIME = 0x40000
1508 PERF_EVENT_IOC_ID = 0x40082407 1508 O_NOCTTY = 0x800
1509 PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x8008240b 1509 O_NOFOLLOW = 0x20000
1510 PERF_EVENT_IOC_PAUSE_OUTPUT = 0x80042409 1510 O_NONBLOCK = 0x80
1511 PERF_EVENT_IOC_PERIOD = 0x80082404 1511 O_PATH = 0x200000
1512 PERF_EVENT_IOC_QUERY_BPF = 0xc008240a 1512 O_RDONLY = 0x0
1513 PERF_EVENT_IOC_REFRESH = 0x20002402 1513 O_RDWR = 0x2
1514 PERF_EVENT_IOC_RESET = 0x20002403 1514 O_RSYNC = 0x4010
1515 PERF_EVENT_IOC_SET_BPF = 0x80042408 1515 O_SYNC = 0x4010
1516 PERF_EVENT_IOC_SET_FILTER = 0x80082406 1516 O_TMPFILE = 0x410000
1517 PERF_EVENT_IOC_SET_OUTPUT = 0x20002405 1517 O_TRUNC = 0x200
1518 PIPEFS_MAGIC = 0x50495045 1518 O_WRONLY = 0x1
1519 PPPIOCATTACH = 0x8004743d 1519 PACKET_ADD_MEMBERSHIP = 0x1
1520 PPPIOCATTCHAN = 0x80047438 1520 PACKET_AUXDATA = 0x8
1521 PPPIOCCONNECT = 0x8004743a 1521 PACKET_BROADCAST = 0x1
1522 PPPIOCDETACH = 0x8004743c 1522 PACKET_COPY_THRESH = 0x7
1523 PPPIOCDISCONN = 0x20007439 1523 PACKET_DROP_MEMBERSHIP = 0x2
1524 PPPIOCGASYNCMAP = 0x40047458 1524 PACKET_FANOUT = 0x12
1525 PPPIOCGCHAN = 0x40047437 1525 PACKET_FANOUT_CBPF = 0x6
1526 PPPIOCGDEBUG = 0x40047441 1526 PACKET_FANOUT_CPU = 0x2
1527 PPPIOCGFLAGS = 0x4004745a 1527 PACKET_FANOUT_DATA = 0x16
1528 PPPIOCGIDLE = 0x4010743f 1528 PACKET_FANOUT_EBPF = 0x7
1529 PPPIOCGL2TPSTATS = 0x40487436 1529 PACKET_FANOUT_FLAG_DEFRAG = 0x8000
1530 PPPIOCGMRU = 0x40047453 1530 PACKET_FANOUT_FLAG_ROLLOVER = 0x1000
1531 PPPIOCGNPMODE = 0xc008744c 1531 PACKET_FANOUT_FLAG_UNIQUEID = 0x2000
1532 PPPIOCGRASYNCMAP = 0x40047455 1532 PACKET_FANOUT_HASH = 0x0
1533 PPPIOCGUNIT = 0x40047456 1533 PACKET_FANOUT_LB = 0x1
1534 PPPIOCGXASYNCMAP = 0x40207450 1534 PACKET_FANOUT_QM = 0x5
1535 PPPIOCNEWUNIT = 0xc004743e 1535 PACKET_FANOUT_RND = 0x4
1536 PPPIOCSACTIVE = 0x80107446 1536 PACKET_FANOUT_ROLLOVER = 0x3
1537 PPPIOCSASYNCMAP = 0x80047457 1537 PACKET_FASTROUTE = 0x6
1538 PPPIOCSCOMPRESS = 0x8010744d 1538 PACKET_HDRLEN = 0xb
1539 PPPIOCSDEBUG = 0x80047440 1539 PACKET_HOST = 0x0
1540 PPPIOCSFLAGS = 0x80047459 1540 PACKET_IGNORE_OUTGOING = 0x17
1541 PPPIOCSMAXCID = 0x80047451 1541 PACKET_KERNEL = 0x7
1542 PPPIOCSMRRU = 0x8004743b 1542 PACKET_LOOPBACK = 0x5
1543 PPPIOCSMRU = 0x80047452 1543 PACKET_LOSS = 0xe
1544 PPPIOCSNPMODE = 0x8008744b 1544 PACKET_MR_ALLMULTI = 0x2
1545 PPPIOCSPASS = 0x80107447 1545 PACKET_MR_MULTICAST = 0x0
1546 PPPIOCSRASYNCMAP = 0x80047454 1546 PACKET_MR_PROMISC = 0x1
1547 PPPIOCSXASYNCMAP = 0x8020744f 1547 PACKET_MR_UNICAST = 0x3
1548 PPPIOCXFERUNIT = 0x2000744e 1548 PACKET_MULTICAST = 0x2
1549 PRIO_PGRP = 0x1 1549 PACKET_ORIGDEV = 0x9
1550 PRIO_PROCESS = 0x0 1550 PACKET_OTHERHOST = 0x3
1551 PRIO_USER = 0x2 1551 PACKET_OUTGOING = 0x4
1552 PROC_SUPER_MAGIC = 0x9fa0 1552 PACKET_QDISC_BYPASS = 0x14
1553 PROT_EXEC = 0x4 1553 PACKET_RECV_OUTPUT = 0x3
1554 PROT_GROWSDOWN = 0x1000000 1554 PACKET_RESERVE = 0xc
1555 PROT_GROWSUP = 0x2000000 1555 PACKET_ROLLOVER_STATS = 0x15
1556 PROT_NONE = 0x0 1556 PACKET_RX_RING = 0x5
1557 PROT_READ = 0x1 1557 PACKET_STATISTICS = 0x6
1558 PROT_WRITE = 0x2 1558 PACKET_TIMESTAMP = 0x11
1559 PR_CAPBSET_DROP = 0x18 1559 PACKET_TX_HAS_OFF = 0x13
1560 PR_CAPBSET_READ = 0x17 1560 PACKET_TX_RING = 0xd
1561 PR_CAP_AMBIENT = 0x2f 1561 PACKET_TX_TIMESTAMP = 0x10
1562 PR_CAP_AMBIENT_CLEAR_ALL = 0x4 1562 PACKET_USER = 0x6
1563 PR_CAP_AMBIENT_IS_SET = 0x1 1563 PACKET_VERSION = 0xa
1564 PR_CAP_AMBIENT_LOWER = 0x3 1564 PACKET_VNET_HDR = 0xf
1565 PR_CAP_AMBIENT_RAISE = 0x2 1565 PARENB = 0x100
1566 PR_ENDIAN_BIG = 0x0 1566 PARITY_CRC16_PR0 = 0x2
1567 PR_ENDIAN_LITTLE = 0x1 1567 PARITY_CRC16_PR0_CCITT = 0x4
1568 PR_ENDIAN_PPC_LITTLE = 0x2 1568 PARITY_CRC16_PR1 = 0x3
1569 PR_FPEMU_NOPRINT = 0x1 1569 PARITY_CRC16_PR1_CCITT = 0x5
1570 PR_FPEMU_SIGFPE = 0x2 1570 PARITY_CRC32_PR0_CCITT = 0x6
1571 PR_FP_EXC_ASYNC = 0x2 1571 PARITY_CRC32_PR1_CCITT = 0x7
1572 PR_FP_EXC_DISABLED = 0x0 1572 PARITY_DEFAULT = 0x0
1573 PR_FP_EXC_DIV = 0x10000 1573 PARITY_NONE = 0x1
1574 PR_FP_EXC_INV = 0x100000 1574 PARMRK = 0x8
1575 PR_FP_EXC_NONRECOV = 0x1 1575 PARODD = 0x200
1576 PR_FP_EXC_OVF = 0x20000 1576 PENDIN = 0x4000
1577 PR_FP_EXC_PRECISE = 0x3 1577 PERF_EVENT_IOC_DISABLE = 0x20002401
1578 PR_FP_EXC_RES = 0x80000 1578 PERF_EVENT_IOC_ENABLE = 0x20002400
1579 PR_FP_EXC_SW_ENABLE = 0x80 1579 PERF_EVENT_IOC_ID = 0x40082407
1580 PR_FP_EXC_UND = 0x40000 1580 PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x8008240b
1581 PR_FP_MODE_FR = 0x1 1581 PERF_EVENT_IOC_PAUSE_OUTPUT = 0x80042409
1582 PR_FP_MODE_FRE = 0x2 1582 PERF_EVENT_IOC_PERIOD = 0x80082404
1583 PR_GET_CHILD_SUBREAPER = 0x25 1583 PERF_EVENT_IOC_QUERY_BPF = 0xc008240a
1584 PR_GET_DUMPABLE = 0x3 1584 PERF_EVENT_IOC_REFRESH = 0x20002402
1585 PR_GET_ENDIAN = 0x13 1585 PERF_EVENT_IOC_RESET = 0x20002403
1586 PR_GET_FPEMU = 0x9 1586 PERF_EVENT_IOC_SET_BPF = 0x80042408
1587 PR_GET_FPEXC = 0xb 1587 PERF_EVENT_IOC_SET_FILTER = 0x80082406
1588 PR_GET_FP_MODE = 0x2e 1588 PERF_EVENT_IOC_SET_OUTPUT = 0x20002405
1589 PR_GET_KEEPCAPS = 0x7 1589 PIPEFS_MAGIC = 0x50495045
1590 PR_GET_NAME = 0x10 1590 PPC_CMM_MAGIC = 0xc7571590
1591 PR_GET_NO_NEW_PRIVS = 0x27 1591 PPPIOCATTACH = 0x8004743d
1592 PR_GET_PDEATHSIG = 0x2 1592 PPPIOCATTCHAN = 0x80047438
1593 PR_GET_SECCOMP = 0x15 1593 PPPIOCCONNECT = 0x8004743a
1594 PR_GET_SECUREBITS = 0x1b 1594 PPPIOCDETACH = 0x8004743c
1595 PR_GET_SPECULATION_CTRL = 0x34 1595 PPPIOCDISCONN = 0x20007439
1596 PR_GET_THP_DISABLE = 0x2a 1596 PPPIOCGASYNCMAP = 0x40047458
1597 PR_GET_TID_ADDRESS = 0x28 1597 PPPIOCGCHAN = 0x40047437
1598 PR_GET_TIMERSLACK = 0x1e 1598 PPPIOCGDEBUG = 0x40047441
1599 PR_GET_TIMING = 0xd 1599 PPPIOCGFLAGS = 0x4004745a
1600 PR_GET_TSC = 0x19 1600 PPPIOCGIDLE = 0x4010743f
1601 PR_GET_UNALIGN = 0x5 1601 PPPIOCGIDLE32 = 0x4008743f
1602 PR_MCE_KILL = 0x21 1602 PPPIOCGIDLE64 = 0x4010743f
1603 PR_MCE_KILL_CLEAR = 0x0 1603 PPPIOCGL2TPSTATS = 0x40487436
1604 PR_MCE_KILL_DEFAULT = 0x2 1604 PPPIOCGMRU = 0x40047453
1605 PR_MCE_KILL_EARLY = 0x1 1605 PPPIOCGNPMODE = 0xc008744c
1606 PR_MCE_KILL_GET = 0x22 1606 PPPIOCGRASYNCMAP = 0x40047455
1607 PR_MCE_KILL_LATE = 0x0 1607 PPPIOCGUNIT = 0x40047456
1608 PR_MCE_KILL_SET = 0x1 1608 PPPIOCGXASYNCMAP = 0x40207450
1609 PR_MPX_DISABLE_MANAGEMENT = 0x2c 1609 PPPIOCNEWUNIT = 0xc004743e
1610 PR_MPX_ENABLE_MANAGEMENT = 0x2b 1610 PPPIOCSACTIVE = 0x80107446
1611 PR_PAC_APDAKEY = 0x4 1611 PPPIOCSASYNCMAP = 0x80047457
1612 PR_PAC_APDBKEY = 0x8 1612 PPPIOCSCOMPRESS = 0x8010744d
1613 PR_PAC_APGAKEY = 0x10 1613 PPPIOCSDEBUG = 0x80047440
1614 PR_PAC_APIAKEY = 0x1 1614 PPPIOCSFLAGS = 0x80047459
1615 PR_PAC_APIBKEY = 0x2 1615 PPPIOCSMAXCID = 0x80047451
1616 PR_PAC_RESET_KEYS = 0x36 1616 PPPIOCSMRRU = 0x8004743b
1617 PR_SET_CHILD_SUBREAPER = 0x24 1617 PPPIOCSMRU = 0x80047452
1618 PR_SET_DUMPABLE = 0x4 1618 PPPIOCSNPMODE = 0x8008744b
1619 PR_SET_ENDIAN = 0x14 1619 PPPIOCSPASS = 0x80107447
1620 PR_SET_FPEMU = 0xa 1620 PPPIOCSRASYNCMAP = 0x80047454
1621 PR_SET_FPEXC = 0xc 1621 PPPIOCSXASYNCMAP = 0x8020744f
1622 PR_SET_FP_MODE = 0x2d 1622 PPPIOCXFERUNIT = 0x2000744e
1623 PR_SET_KEEPCAPS = 0x8 1623 PRIO_PGRP = 0x1
1624 PR_SET_MM = 0x23 1624 PRIO_PROCESS = 0x0
1625 PR_SET_MM_ARG_END = 0x9 1625 PRIO_USER = 0x2
1626 PR_SET_MM_ARG_START = 0x8 1626 PROC_SUPER_MAGIC = 0x9fa0
1627 PR_SET_MM_AUXV = 0xc 1627 PROT_EXEC = 0x4
1628 PR_SET_MM_BRK = 0x7 1628 PROT_GROWSDOWN = 0x1000000
1629 PR_SET_MM_END_CODE = 0x2 1629 PROT_GROWSUP = 0x2000000
1630 PR_SET_MM_END_DATA = 0x4 1630 PROT_NONE = 0x0
1631 PR_SET_MM_ENV_END = 0xb 1631 PROT_READ = 0x1
1632 PR_SET_MM_ENV_START = 0xa 1632 PROT_WRITE = 0x2
1633 PR_SET_MM_EXE_FILE = 0xd 1633 PR_CAPBSET_DROP = 0x18
1634 PR_SET_MM_MAP = 0xe 1634 PR_CAPBSET_READ = 0x17
1635 PR_SET_MM_MAP_SIZE = 0xf 1635 PR_CAP_AMBIENT = 0x2f
1636 PR_SET_MM_START_BRK = 0x6 1636 PR_CAP_AMBIENT_CLEAR_ALL = 0x4
1637 PR_SET_MM_START_CODE = 0x1 1637 PR_CAP_AMBIENT_IS_SET = 0x1
1638 PR_SET_MM_START_DATA = 0x3 1638 PR_CAP_AMBIENT_LOWER = 0x3
1639 PR_SET_MM_START_STACK = 0x5 1639 PR_CAP_AMBIENT_RAISE = 0x2
1640 PR_SET_NAME = 0xf 1640 PR_ENDIAN_BIG = 0x0
1641 PR_SET_NO_NEW_PRIVS = 0x26 1641 PR_ENDIAN_LITTLE = 0x1
1642 PR_SET_PDEATHSIG = 0x1 1642 PR_ENDIAN_PPC_LITTLE = 0x2
1643 PR_SET_PTRACER = 0x59616d61 1643 PR_FPEMU_NOPRINT = 0x1
1644 PR_SET_PTRACER_ANY = 0xffffffffffffffff 1644 PR_FPEMU_SIGFPE = 0x2
1645 PR_SET_SECCOMP = 0x16 1645 PR_FP_EXC_ASYNC = 0x2
1646 PR_SET_SECUREBITS = 0x1c 1646 PR_FP_EXC_DISABLED = 0x0
1647 PR_SET_SPECULATION_CTRL = 0x35 1647 PR_FP_EXC_DIV = 0x10000
1648 PR_SET_THP_DISABLE = 0x29 1648 PR_FP_EXC_INV = 0x100000
1649 PR_SET_TIMERSLACK = 0x1d 1649 PR_FP_EXC_NONRECOV = 0x1
1650 PR_SET_TIMING = 0xe 1650 PR_FP_EXC_OVF = 0x20000
1651 PR_SET_TSC = 0x1a 1651 PR_FP_EXC_PRECISE = 0x3
1652 PR_SET_UNALIGN = 0x6 1652 PR_FP_EXC_RES = 0x80000
1653 PR_SPEC_DISABLE = 0x4 1653 PR_FP_EXC_SW_ENABLE = 0x80
1654 PR_SPEC_DISABLE_NOEXEC = 0x10 1654 PR_FP_EXC_UND = 0x40000
1655 PR_SPEC_ENABLE = 0x2 1655 PR_FP_MODE_FR = 0x1
1656 PR_SPEC_FORCE_DISABLE = 0x8 1656 PR_FP_MODE_FRE = 0x2
1657 PR_SPEC_INDIRECT_BRANCH = 0x1 1657 PR_GET_CHILD_SUBREAPER = 0x25
1658 PR_SPEC_NOT_AFFECTED = 0x0 1658 PR_GET_DUMPABLE = 0x3
1659 PR_SPEC_PRCTL = 0x1 1659 PR_GET_ENDIAN = 0x13
1660 PR_SPEC_STORE_BYPASS = 0x0 1660 PR_GET_FPEMU = 0x9
1661 PR_SVE_GET_VL = 0x33 1661 PR_GET_FPEXC = 0xb
1662 PR_SVE_SET_VL = 0x32 1662 PR_GET_FP_MODE = 0x2e
1663 PR_SVE_SET_VL_ONEXEC = 0x40000 1663 PR_GET_KEEPCAPS = 0x7
1664 PR_SVE_VL_INHERIT = 0x20000 1664 PR_GET_NAME = 0x10
1665 PR_SVE_VL_LEN_MASK = 0xffff 1665 PR_GET_NO_NEW_PRIVS = 0x27
1666 PR_TASK_PERF_EVENTS_DISABLE = 0x1f 1666 PR_GET_PDEATHSIG = 0x2
1667 PR_TASK_PERF_EVENTS_ENABLE = 0x20 1667 PR_GET_SECCOMP = 0x15
1668 PR_TIMING_STATISTICAL = 0x0 1668 PR_GET_SECUREBITS = 0x1b
1669 PR_TIMING_TIMESTAMP = 0x1 1669 PR_GET_SPECULATION_CTRL = 0x34
1670 PR_TSC_ENABLE = 0x1 1670 PR_GET_TAGGED_ADDR_CTRL = 0x38
1671 PR_TSC_SIGSEGV = 0x2 1671 PR_GET_THP_DISABLE = 0x2a
1672 PR_UNALIGN_NOPRINT = 0x1 1672 PR_GET_TID_ADDRESS = 0x28
1673 PR_UNALIGN_SIGBUS = 0x2 1673 PR_GET_TIMERSLACK = 0x1e
1674 PSTOREFS_MAGIC = 0x6165676c 1674 PR_GET_TIMING = 0xd
1675 PTRACE_ATTACH = 0x10 1675 PR_GET_TSC = 0x19
1676 PTRACE_CONT = 0x7 1676 PR_GET_UNALIGN = 0x5
1677 PTRACE_DETACH = 0x11 1677 PR_MCE_KILL = 0x21
1678 PTRACE_EVENT_CLONE = 0x3 1678 PR_MCE_KILL_CLEAR = 0x0
1679 PTRACE_EVENT_EXEC = 0x4 1679 PR_MCE_KILL_DEFAULT = 0x2
1680 PTRACE_EVENT_EXIT = 0x6 1680 PR_MCE_KILL_EARLY = 0x1
1681 PTRACE_EVENT_FORK = 0x1 1681 PR_MCE_KILL_GET = 0x22
1682 PTRACE_EVENT_SECCOMP = 0x7 1682 PR_MCE_KILL_LATE = 0x0
1683 PTRACE_EVENT_STOP = 0x80 1683 PR_MCE_KILL_SET = 0x1
1684 PTRACE_EVENT_VFORK = 0x2 1684 PR_MPX_DISABLE_MANAGEMENT = 0x2c
1685 PTRACE_EVENT_VFORK_DONE = 0x5 1685 PR_MPX_ENABLE_MANAGEMENT = 0x2b
1686 PTRACE_GETEVENTMSG = 0x4201 1686 PR_PAC_APDAKEY = 0x4
1687 PTRACE_GETFPREGS = 0xe 1687 PR_PAC_APDBKEY = 0x8
1688 PTRACE_GETREGS = 0xc 1688 PR_PAC_APGAKEY = 0x10
1689 PTRACE_GETREGSET = 0x4204 1689 PR_PAC_APIAKEY = 0x1
1690 PTRACE_GETSIGINFO = 0x4202 1690 PR_PAC_APIBKEY = 0x2
1691 PTRACE_GETSIGMASK = 0x420a 1691 PR_PAC_RESET_KEYS = 0x36
1692 PTRACE_GET_THREAD_AREA = 0x19 1692 PR_SET_CHILD_SUBREAPER = 0x24
1693 PTRACE_GET_THREAD_AREA_3264 = 0xc4 1693 PR_SET_DUMPABLE = 0x4
1694 PTRACE_GET_WATCH_REGS = 0xd0 1694 PR_SET_ENDIAN = 0x14
1695 PTRACE_INTERRUPT = 0x4207 1695 PR_SET_FPEMU = 0xa
1696 PTRACE_KILL = 0x8 1696 PR_SET_FPEXC = 0xc
1697 PTRACE_LISTEN = 0x4208 1697 PR_SET_FP_MODE = 0x2d
1698 PTRACE_OLDSETOPTIONS = 0x15 1698 PR_SET_KEEPCAPS = 0x8
1699 PTRACE_O_EXITKILL = 0x100000 1699 PR_SET_MM = 0x23
1700 PTRACE_O_MASK = 0x3000ff 1700 PR_SET_MM_ARG_END = 0x9
1701 PTRACE_O_SUSPEND_SECCOMP = 0x200000 1701 PR_SET_MM_ARG_START = 0x8
1702 PTRACE_O_TRACECLONE = 0x8 1702 PR_SET_MM_AUXV = 0xc
1703 PTRACE_O_TRACEEXEC = 0x10 1703 PR_SET_MM_BRK = 0x7
1704 PTRACE_O_TRACEEXIT = 0x40 1704 PR_SET_MM_END_CODE = 0x2
1705 PTRACE_O_TRACEFORK = 0x2 1705 PR_SET_MM_END_DATA = 0x4
1706 PTRACE_O_TRACESECCOMP = 0x80 1706 PR_SET_MM_ENV_END = 0xb
1707 PTRACE_O_TRACESYSGOOD = 0x1 1707 PR_SET_MM_ENV_START = 0xa
1708 PTRACE_O_TRACEVFORK = 0x4 1708 PR_SET_MM_EXE_FILE = 0xd
1709 PTRACE_O_TRACEVFORKDONE = 0x20 1709 PR_SET_MM_MAP = 0xe
1710 PTRACE_PEEKDATA = 0x2 1710 PR_SET_MM_MAP_SIZE = 0xf
1711 PTRACE_PEEKDATA_3264 = 0xc1 1711 PR_SET_MM_START_BRK = 0x6
1712 PTRACE_PEEKSIGINFO = 0x4209 1712 PR_SET_MM_START_CODE = 0x1
1713 PTRACE_PEEKSIGINFO_SHARED = 0x1 1713 PR_SET_MM_START_DATA = 0x3
1714 PTRACE_PEEKTEXT = 0x1 1714 PR_SET_MM_START_STACK = 0x5
1715 PTRACE_PEEKTEXT_3264 = 0xc0 1715 PR_SET_NAME = 0xf
1716 PTRACE_PEEKUSR = 0x3 1716 PR_SET_NO_NEW_PRIVS = 0x26
1717 PTRACE_POKEDATA = 0x5 1717 PR_SET_PDEATHSIG = 0x1
1718 PTRACE_POKEDATA_3264 = 0xc3 1718 PR_SET_PTRACER = 0x59616d61
1719 PTRACE_POKETEXT = 0x4 1719 PR_SET_PTRACER_ANY = 0xffffffffffffffff
1720 PTRACE_POKETEXT_3264 = 0xc2 1720 PR_SET_SECCOMP = 0x16
1721 PTRACE_POKEUSR = 0x6 1721 PR_SET_SECUREBITS = 0x1c
1722 PTRACE_SECCOMP_GET_FILTER = 0x420c 1722 PR_SET_SPECULATION_CTRL = 0x35
1723 PTRACE_SECCOMP_GET_METADATA = 0x420d 1723 PR_SET_TAGGED_ADDR_CTRL = 0x37
1724 PTRACE_SEIZE = 0x4206 1724 PR_SET_THP_DISABLE = 0x29
1725 PTRACE_SETFPREGS = 0xf 1725 PR_SET_TIMERSLACK = 0x1d
1726 PTRACE_SETOPTIONS = 0x4200 1726 PR_SET_TIMING = 0xe
1727 PTRACE_SETREGS = 0xd 1727 PR_SET_TSC = 0x1a
1728 PTRACE_SETREGSET = 0x4205 1728 PR_SET_UNALIGN = 0x6
1729 PTRACE_SETSIGINFO = 0x4203 1729 PR_SPEC_DISABLE = 0x4
1730 PTRACE_SETSIGMASK = 0x420b 1730 PR_SPEC_DISABLE_NOEXEC = 0x10
1731 PTRACE_SET_THREAD_AREA = 0x1a 1731 PR_SPEC_ENABLE = 0x2
1732 PTRACE_SET_WATCH_REGS = 0xd1 1732 PR_SPEC_FORCE_DISABLE = 0x8
1733 PTRACE_SINGLESTEP = 0x9 1733 PR_SPEC_INDIRECT_BRANCH = 0x1
1734 PTRACE_SYSCALL = 0x18 1734 PR_SPEC_NOT_AFFECTED = 0x0
1735 PTRACE_TRACEME = 0x0 1735 PR_SPEC_PRCTL = 0x1
1736 QNX4_SUPER_MAGIC = 0x2f 1736 PR_SPEC_STORE_BYPASS = 0x0
1737 QNX6_SUPER_MAGIC = 0x68191122 1737 PR_SVE_GET_VL = 0x33
1738 RAMFS_MAGIC = 0x858458f6 1738 PR_SVE_SET_VL = 0x32
1739 RDTGROUP_SUPER_MAGIC = 0x7655821 1739 PR_SVE_SET_VL_ONEXEC = 0x40000
1740 REISERFS_SUPER_MAGIC = 0x52654973 1740 PR_SVE_VL_INHERIT = 0x20000
1741 RENAME_EXCHANGE = 0x2 1741 PR_SVE_VL_LEN_MASK = 0xffff
1742 RENAME_NOREPLACE = 0x1 1742 PR_TAGGED_ADDR_ENABLE = 0x1
1743 RENAME_WHITEOUT = 0x4 1743 PR_TASK_PERF_EVENTS_DISABLE = 0x1f
1744 RLIMIT_AS = 0x6 1744 PR_TASK_PERF_EVENTS_ENABLE = 0x20
1745 RLIMIT_CORE = 0x4 1745 PR_TIMING_STATISTICAL = 0x0
1746 RLIMIT_CPU = 0x0 1746 PR_TIMING_TIMESTAMP = 0x1
1747 RLIMIT_DATA = 0x2 1747 PR_TSC_ENABLE = 0x1
1748 RLIMIT_FSIZE = 0x1 1748 PR_TSC_SIGSEGV = 0x2
1749 RLIMIT_LOCKS = 0xa 1749 PR_UNALIGN_NOPRINT = 0x1
1750 RLIMIT_MEMLOCK = 0x9 1750 PR_UNALIGN_SIGBUS = 0x2
1751 RLIMIT_MSGQUEUE = 0xc 1751 PSTOREFS_MAGIC = 0x6165676c
1752 RLIMIT_NICE = 0xd 1752 PTRACE_ATTACH = 0x10
1753 RLIMIT_NOFILE = 0x5 1753 PTRACE_CONT = 0x7
1754 RLIMIT_NPROC = 0x8 1754 PTRACE_DETACH = 0x11
1755 RLIMIT_RSS = 0x7 1755 PTRACE_EVENTMSG_SYSCALL_ENTRY = 0x1
1756 RLIMIT_RTPRIO = 0xe 1756 PTRACE_EVENTMSG_SYSCALL_EXIT = 0x2
1757 RLIMIT_RTTIME = 0xf 1757 PTRACE_EVENT_CLONE = 0x3
1758 RLIMIT_SIGPENDING = 0xb 1758 PTRACE_EVENT_EXEC = 0x4
1759 RLIMIT_STACK = 0x3 1759 PTRACE_EVENT_EXIT = 0x6
1760 RLIM_INFINITY = 0xffffffffffffffff 1760 PTRACE_EVENT_FORK = 0x1
1761 RNDADDENTROPY = 0x80085203 1761 PTRACE_EVENT_SECCOMP = 0x7
1762 RNDADDTOENTCNT = 0x80045201 1762 PTRACE_EVENT_STOP = 0x80
1763 RNDCLEARPOOL = 0x20005206 1763 PTRACE_EVENT_VFORK = 0x2
1764 RNDGETENTCNT = 0x40045200 1764 PTRACE_EVENT_VFORK_DONE = 0x5
1765 RNDGETPOOL = 0x40085202 1765 PTRACE_GETEVENTMSG = 0x4201
1766 RNDRESEEDCRNG = 0x20005207 1766 PTRACE_GETFPREGS = 0xe
1767 RNDZAPENTCNT = 0x20005204 1767 PTRACE_GETREGS = 0xc
1768 RTAX_ADVMSS = 0x8 1768 PTRACE_GETREGSET = 0x4204
1769 RTAX_CC_ALGO = 0x10 1769 PTRACE_GETSIGINFO = 0x4202
1770 RTAX_CWND = 0x7 1770 PTRACE_GETSIGMASK = 0x420a
1771 RTAX_FASTOPEN_NO_COOKIE = 0x11 1771 PTRACE_GET_SYSCALL_INFO = 0x420e
1772 RTAX_FEATURES = 0xc 1772 PTRACE_GET_THREAD_AREA = 0x19
1773 RTAX_FEATURE_ALLFRAG = 0x8 1773 PTRACE_GET_THREAD_AREA_3264 = 0xc4
1774 RTAX_FEATURE_ECN = 0x1 1774 PTRACE_GET_WATCH_REGS = 0xd0
1775 RTAX_FEATURE_MASK = 0xf 1775 PTRACE_INTERRUPT = 0x4207
1776 RTAX_FEATURE_SACK = 0x2 1776 PTRACE_KILL = 0x8
1777 RTAX_FEATURE_TIMESTAMP = 0x4 1777 PTRACE_LISTEN = 0x4208
1778 RTAX_HOPLIMIT = 0xa 1778 PTRACE_OLDSETOPTIONS = 0x15
1779 RTAX_INITCWND = 0xb 1779 PTRACE_O_EXITKILL = 0x100000
1780 RTAX_INITRWND = 0xe 1780 PTRACE_O_MASK = 0x3000ff
1781 RTAX_LOCK = 0x1 1781 PTRACE_O_SUSPEND_SECCOMP = 0x200000
1782 RTAX_MAX = 0x11 1782 PTRACE_O_TRACECLONE = 0x8
1783 RTAX_MTU = 0x2 1783 PTRACE_O_TRACEEXEC = 0x10
1784 RTAX_QUICKACK = 0xf 1784 PTRACE_O_TRACEEXIT = 0x40
1785 RTAX_REORDERING = 0x9 1785 PTRACE_O_TRACEFORK = 0x2
1786 RTAX_RTO_MIN = 0xd 1786 PTRACE_O_TRACESECCOMP = 0x80
1787 RTAX_RTT = 0x4 1787 PTRACE_O_TRACESYSGOOD = 0x1
1788 RTAX_RTTVAR = 0x5 1788 PTRACE_O_TRACEVFORK = 0x4
1789 RTAX_SSTHRESH = 0x6 1789 PTRACE_O_TRACEVFORKDONE = 0x20
1790 RTAX_UNSPEC = 0x0 1790 PTRACE_PEEKDATA = 0x2
1791 RTAX_WINDOW = 0x3 1791 PTRACE_PEEKDATA_3264 = 0xc1
1792 RTA_ALIGNTO = 0x4 1792 PTRACE_PEEKSIGINFO = 0x4209
1793 RTA_MAX = 0x1d 1793 PTRACE_PEEKSIGINFO_SHARED = 0x1
1794 RTCF_DIRECTSRC = 0x4000000 1794 PTRACE_PEEKTEXT = 0x1
1795 RTCF_DOREDIRECT = 0x1000000 1795 PTRACE_PEEKTEXT_3264 = 0xc0
1796 RTCF_LOG = 0x2000000 1796 PTRACE_PEEKUSR = 0x3
1797 RTCF_MASQ = 0x400000 1797 PTRACE_POKEDATA = 0x5
1798 RTCF_NAT = 0x800000 1798 PTRACE_POKEDATA_3264 = 0xc3
1799 RTCF_VALVE = 0x200000 1799 PTRACE_POKETEXT = 0x4
1800 RTC_AF = 0x20 1800 PTRACE_POKETEXT_3264 = 0xc2
1801 RTC_AIE_OFF = 0x20007002 1801 PTRACE_POKEUSR = 0x6
1802 RTC_AIE_ON = 0x20007001 1802 PTRACE_SECCOMP_GET_FILTER = 0x420c
1803 RTC_ALM_READ = 0x40247008 1803 PTRACE_SECCOMP_GET_METADATA = 0x420d
1804 RTC_ALM_SET = 0x80247007 1804 PTRACE_SEIZE = 0x4206
1805 RTC_EPOCH_READ = 0x4008700d 1805 PTRACE_SETFPREGS = 0xf
1806 RTC_EPOCH_SET = 0x8008700e 1806 PTRACE_SETOPTIONS = 0x4200
1807 RTC_IRQF = 0x80 1807 PTRACE_SETREGS = 0xd
1808 RTC_IRQP_READ = 0x4008700b 1808 PTRACE_SETREGSET = 0x4205
1809 RTC_IRQP_SET = 0x8008700c 1809 PTRACE_SETSIGINFO = 0x4203
1810 RTC_MAX_FREQ = 0x2000 1810 PTRACE_SETSIGMASK = 0x420b
1811 RTC_PF = 0x40 1811 PTRACE_SET_THREAD_AREA = 0x1a
1812 RTC_PIE_OFF = 0x20007006 1812 PTRACE_SET_WATCH_REGS = 0xd1
1813 RTC_PIE_ON = 0x20007005 1813 PTRACE_SINGLESTEP = 0x9
1814 RTC_PLL_GET = 0x40207011 1814 PTRACE_SYSCALL = 0x18
1815 RTC_PLL_SET = 0x80207012 1815 PTRACE_SYSCALL_INFO_ENTRY = 0x1
1816 RTC_RD_TIME = 0x40247009 1816 PTRACE_SYSCALL_INFO_EXIT = 0x2
1817 RTC_SET_TIME = 0x8024700a 1817 PTRACE_SYSCALL_INFO_NONE = 0x0
1818 RTC_UF = 0x10 1818 PTRACE_SYSCALL_INFO_SECCOMP = 0x3
1819 RTC_UIE_OFF = 0x20007004 1819 PTRACE_TRACEME = 0x0
1820 RTC_UIE_ON = 0x20007003 1820 QNX4_SUPER_MAGIC = 0x2f
1821 RTC_VL_CLR = 0x20007014 1821 QNX6_SUPER_MAGIC = 0x68191122
1822 RTC_VL_READ = 0x40047013 1822 RAMFS_MAGIC = 0x858458f6
1823 RTC_WIE_OFF = 0x20007010 1823 RDTGROUP_SUPER_MAGIC = 0x7655821
1824 RTC_WIE_ON = 0x2000700f 1824 REISERFS_SUPER_MAGIC = 0x52654973
1825 RTC_WKALM_RD = 0x40287010 1825 RENAME_EXCHANGE = 0x2
1826 RTC_WKALM_SET = 0x8028700f 1826 RENAME_NOREPLACE = 0x1
1827 RTF_ADDRCLASSMASK = 0xf8000000 1827 RENAME_WHITEOUT = 0x4
1828 RTF_ADDRCONF = 0x40000 1828 RLIMIT_AS = 0x6
1829 RTF_ALLONLINK = 0x20000 1829 RLIMIT_CORE = 0x4
1830 RTF_BROADCAST = 0x10000000 1830 RLIMIT_CPU = 0x0
1831 RTF_CACHE = 0x1000000 1831 RLIMIT_DATA = 0x2
1832 RTF_DEFAULT = 0x10000 1832 RLIMIT_FSIZE = 0x1
1833 RTF_DYNAMIC = 0x10 1833 RLIMIT_LOCKS = 0xa
1834 RTF_FLOW = 0x2000000 1834 RLIMIT_MEMLOCK = 0x9
1835 RTF_GATEWAY = 0x2 1835 RLIMIT_MSGQUEUE = 0xc
1836 RTF_HOST = 0x4 1836 RLIMIT_NICE = 0xd
1837 RTF_INTERFACE = 0x40000000 1837 RLIMIT_NOFILE = 0x5
1838 RTF_IRTT = 0x100 1838 RLIMIT_NPROC = 0x8
1839 RTF_LINKRT = 0x100000 1839 RLIMIT_RSS = 0x7
1840 RTF_LOCAL = 0x80000000 1840 RLIMIT_RTPRIO = 0xe
1841 RTF_MODIFIED = 0x20 1841 RLIMIT_RTTIME = 0xf
1842 RTF_MSS = 0x40 1842 RLIMIT_SIGPENDING = 0xb
1843 RTF_MTU = 0x40 1843 RLIMIT_STACK = 0x3
1844 RTF_MULTICAST = 0x20000000 1844 RLIM_INFINITY = 0xffffffffffffffff
1845 RTF_NAT = 0x8000000 1845 RNDADDENTROPY = 0x80085203
1846 RTF_NOFORWARD = 0x1000 1846 RNDADDTOENTCNT = 0x80045201
1847 RTF_NONEXTHOP = 0x200000 1847 RNDCLEARPOOL = 0x20005206
1848 RTF_NOPMTUDISC = 0x4000 1848 RNDGETENTCNT = 0x40045200
1849 RTF_POLICY = 0x4000000 1849 RNDGETPOOL = 0x40085202
1850 RTF_REINSTATE = 0x8 1850 RNDRESEEDCRNG = 0x20005207
1851 RTF_REJECT = 0x200 1851 RNDZAPENTCNT = 0x20005204
1852 RTF_STATIC = 0x400 1852 RTAX_ADVMSS = 0x8
1853 RTF_THROW = 0x2000 1853 RTAX_CC_ALGO = 0x10
1854 RTF_UP = 0x1 1854 RTAX_CWND = 0x7
1855 RTF_WINDOW = 0x80 1855 RTAX_FASTOPEN_NO_COOKIE = 0x11
1856 RTF_XRESOLVE = 0x800 1856 RTAX_FEATURES = 0xc
1857 RTM_BASE = 0x10 1857 RTAX_FEATURE_ALLFRAG = 0x8
1858 RTM_DELACTION = 0x31 1858 RTAX_FEATURE_ECN = 0x1
1859 RTM_DELADDR = 0x15 1859 RTAX_FEATURE_MASK = 0xf
1860 RTM_DELADDRLABEL = 0x49 1860 RTAX_FEATURE_SACK = 0x2
1861 RTM_DELCHAIN = 0x65 1861 RTAX_FEATURE_TIMESTAMP = 0x4
1862 RTM_DELLINK = 0x11 1862 RTAX_HOPLIMIT = 0xa
1863 RTM_DELMDB = 0x55 1863 RTAX_INITCWND = 0xb
1864 RTM_DELNEIGH = 0x1d 1864 RTAX_INITRWND = 0xe
1865 RTM_DELNETCONF = 0x51 1865 RTAX_LOCK = 0x1
1866 RTM_DELNSID = 0x59 1866 RTAX_MAX = 0x11
1867 RTM_DELQDISC = 0x25 1867 RTAX_MTU = 0x2
1868 RTM_DELROUTE = 0x19 1868 RTAX_QUICKACK = 0xf
1869 RTM_DELRULE = 0x21 1869 RTAX_REORDERING = 0x9
1870 RTM_DELTCLASS = 0x29 1870 RTAX_RTO_MIN = 0xd
1871 RTM_DELTFILTER = 0x2d 1871 RTAX_RTT = 0x4
1872 RTM_F_CLONED = 0x200 1872 RTAX_RTTVAR = 0x5
1873 RTM_F_EQUALIZE = 0x400 1873 RTAX_SSTHRESH = 0x6
1874 RTM_F_FIB_MATCH = 0x2000 1874 RTAX_UNSPEC = 0x0
1875 RTM_F_LOOKUP_TABLE = 0x1000 1875 RTAX_WINDOW = 0x3
1876 RTM_F_NOTIFY = 0x100 1876 RTA_ALIGNTO = 0x4
1877 RTM_F_PREFIX = 0x800 1877 RTA_MAX = 0x1e
1878 RTM_GETACTION = 0x32 1878 RTCF_DIRECTSRC = 0x4000000
1879 RTM_GETADDR = 0x16 1879 RTCF_DOREDIRECT = 0x1000000
1880 RTM_GETADDRLABEL = 0x4a 1880 RTCF_LOG = 0x2000000
1881 RTM_GETANYCAST = 0x3e 1881 RTCF_MASQ = 0x400000
1882 RTM_GETCHAIN = 0x66 1882 RTCF_NAT = 0x800000
1883 RTM_GETDCB = 0x4e 1883 RTCF_VALVE = 0x200000
1884 RTM_GETLINK = 0x12 1884 RTC_AF = 0x20
1885 RTM_GETMDB = 0x56 1885 RTC_AIE_OFF = 0x20007002
1886 RTM_GETMULTICAST = 0x3a 1886 RTC_AIE_ON = 0x20007001
1887 RTM_GETNEIGH = 0x1e 1887 RTC_ALM_READ = 0x40247008
1888 RTM_GETNEIGHTBL = 0x42 1888 RTC_ALM_SET = 0x80247007
1889 RTM_GETNETCONF = 0x52 1889 RTC_EPOCH_READ = 0x4008700d
1890 RTM_GETNSID = 0x5a 1890 RTC_EPOCH_SET = 0x8008700e
1891 RTM_GETQDISC = 0x26 1891 RTC_IRQF = 0x80
1892 RTM_GETROUTE = 0x1a 1892 RTC_IRQP_READ = 0x4008700b
1893 RTM_GETRULE = 0x22 1893 RTC_IRQP_SET = 0x8008700c
1894 RTM_GETSTATS = 0x5e 1894 RTC_MAX_FREQ = 0x2000
1895 RTM_GETTCLASS = 0x2a 1895 RTC_PF = 0x40
1896 RTM_GETTFILTER = 0x2e 1896 RTC_PIE_OFF = 0x20007006
1897 RTM_MAX = 0x67 1897 RTC_PIE_ON = 0x20007005
1898 RTM_NEWACTION = 0x30 1898 RTC_PLL_GET = 0x40207011
1899 RTM_NEWADDR = 0x14 1899 RTC_PLL_SET = 0x80207012
1900 RTM_NEWADDRLABEL = 0x48 1900 RTC_RD_TIME = 0x40247009
1901 RTM_NEWCACHEREPORT = 0x60 1901 RTC_SET_TIME = 0x8024700a
1902 RTM_NEWCHAIN = 0x64 1902 RTC_UF = 0x10
1903 RTM_NEWLINK = 0x10 1903 RTC_UIE_OFF = 0x20007004
1904 RTM_NEWMDB = 0x54 1904 RTC_UIE_ON = 0x20007003
1905 RTM_NEWNDUSEROPT = 0x44 1905 RTC_VL_CLR = 0x20007014
1906 RTM_NEWNEIGH = 0x1c 1906 RTC_VL_READ = 0x40047013
1907 RTM_NEWNEIGHTBL = 0x40 1907 RTC_WIE_OFF = 0x20007010
1908 RTM_NEWNETCONF = 0x50 1908 RTC_WIE_ON = 0x2000700f
1909 RTM_NEWNSID = 0x58 1909 RTC_WKALM_RD = 0x40287010
1910 RTM_NEWPREFIX = 0x34 1910 RTC_WKALM_SET = 0x8028700f
1911 RTM_NEWQDISC = 0x24 1911 RTF_ADDRCLASSMASK = 0xf8000000
1912 RTM_NEWROUTE = 0x18 1912 RTF_ADDRCONF = 0x40000
1913 RTM_NEWRULE = 0x20 1913 RTF_ALLONLINK = 0x20000
1914 RTM_NEWSTATS = 0x5c 1914 RTF_BROADCAST = 0x10000000
1915 RTM_NEWTCLASS = 0x28 1915 RTF_CACHE = 0x1000000
1916 RTM_NEWTFILTER = 0x2c 1916 RTF_DEFAULT = 0x10000
1917 RTM_NR_FAMILIES = 0x16 1917 RTF_DYNAMIC = 0x10
1918 RTM_NR_MSGTYPES = 0x58 1918 RTF_FLOW = 0x2000000
1919 RTM_SETDCB = 0x4f 1919 RTF_GATEWAY = 0x2
1920 RTM_SETLINK = 0x13 1920 RTF_HOST = 0x4
1921 RTM_SETNEIGHTBL = 0x43 1921 RTF_INTERFACE = 0x40000000
1922 RTNH_ALIGNTO = 0x4 1922 RTF_IRTT = 0x100
1923 RTNH_COMPARE_MASK = 0x19 1923 RTF_LINKRT = 0x100000
1924 RTNH_F_DEAD = 0x1 1924 RTF_LOCAL = 0x80000000
1925 RTNH_F_LINKDOWN = 0x10 1925 RTF_MODIFIED = 0x20
1926 RTNH_F_OFFLOAD = 0x8 1926 RTF_MSS = 0x40
1927 RTNH_F_ONLINK = 0x4 1927 RTF_MTU = 0x40
1928 RTNH_F_PERVASIVE = 0x2 1928 RTF_MULTICAST = 0x20000000
1929 RTNH_F_UNRESOLVED = 0x20 1929 RTF_NAT = 0x8000000
1930 RTN_MAX = 0xb 1930 RTF_NOFORWARD = 0x1000
1931 RTPROT_BABEL = 0x2a 1931 RTF_NONEXTHOP = 0x200000
1932 RTPROT_BGP = 0xba 1932 RTF_NOPMTUDISC = 0x4000
1933 RTPROT_BIRD = 0xc 1933 RTF_POLICY = 0x4000000
1934 RTPROT_BOOT = 0x3 1934 RTF_REINSTATE = 0x8
1935 RTPROT_DHCP = 0x10 1935 RTF_REJECT = 0x200
1936 RTPROT_DNROUTED = 0xd 1936 RTF_STATIC = 0x400
1937 RTPROT_EIGRP = 0xc0 1937 RTF_THROW = 0x2000
1938 RTPROT_GATED = 0x8 1938 RTF_UP = 0x1
1939 RTPROT_ISIS = 0xbb 1939 RTF_WINDOW = 0x80
1940 RTPROT_KERNEL = 0x2 1940 RTF_XRESOLVE = 0x800
1941 RTPROT_MROUTED = 0x11 1941 RTMGRP_DECnet_IFADDR = 0x1000
1942 RTPROT_MRT = 0xa 1942 RTMGRP_DECnet_ROUTE = 0x4000
1943 RTPROT_NTK = 0xf 1943 RTMGRP_IPV4_IFADDR = 0x10
1944 RTPROT_OSPF = 0xbc 1944 RTMGRP_IPV4_MROUTE = 0x20
1945 RTPROT_RA = 0x9 1945 RTMGRP_IPV4_ROUTE = 0x40
1946 RTPROT_REDIRECT = 0x1 1946 RTMGRP_IPV4_RULE = 0x80
1947 RTPROT_RIP = 0xbd 1947 RTMGRP_IPV6_IFADDR = 0x100
1948 RTPROT_STATIC = 0x4 1948 RTMGRP_IPV6_IFINFO = 0x800
1949 RTPROT_UNSPEC = 0x0 1949 RTMGRP_IPV6_MROUTE = 0x200
1950 RTPROT_XORP = 0xe 1950 RTMGRP_IPV6_PREFIX = 0x20000
1951 RTPROT_ZEBRA = 0xb 1951 RTMGRP_IPV6_ROUTE = 0x400
1952 RT_CLASS_DEFAULT = 0xfd 1952 RTMGRP_LINK = 0x1
1953 RT_CLASS_LOCAL = 0xff 1953 RTMGRP_NEIGH = 0x4
1954 RT_CLASS_MAIN = 0xfe 1954 RTMGRP_NOTIFY = 0x2
1955 RT_CLASS_MAX = 0xff 1955 RTMGRP_TC = 0x8
1956 RT_CLASS_UNSPEC = 0x0 1956 RTM_BASE = 0x10
1957 RUSAGE_CHILDREN = -0x1 1957 RTM_DELACTION = 0x31
1958 RUSAGE_SELF = 0x0 1958 RTM_DELADDR = 0x15
1959 RUSAGE_THREAD = 0x1 1959 RTM_DELADDRLABEL = 0x49
1960 SCM_CREDENTIALS = 0x2 1960 RTM_DELCHAIN = 0x65
1961 SCM_RIGHTS = 0x1 1961 RTM_DELLINK = 0x11
1962 SCM_TIMESTAMP = 0x1d 1962 RTM_DELLINKPROP = 0x6d
1963 SCM_TIMESTAMPING = 0x25 1963 RTM_DELMDB = 0x55
1964 SCM_TIMESTAMPING_OPT_STATS = 0x36 1964 RTM_DELNEIGH = 0x1d
1965 SCM_TIMESTAMPING_PKTINFO = 0x3a 1965 RTM_DELNETCONF = 0x51
1966 SCM_TIMESTAMPNS = 0x23 1966 RTM_DELNEXTHOP = 0x69
1967 SCM_TXTIME = 0x3d 1967 RTM_DELNSID = 0x59
1968 SCM_WIFI_STATUS = 0x29 1968 RTM_DELQDISC = 0x25
1969 SC_LOG_FLUSH = 0x100000 1969 RTM_DELROUTE = 0x19
1970 SECCOMP_MODE_DISABLED = 0x0 1970 RTM_DELRULE = 0x21
1971 SECCOMP_MODE_FILTER = 0x2 1971 RTM_DELTCLASS = 0x29
1972 SECCOMP_MODE_STRICT = 0x1 1972 RTM_DELTFILTER = 0x2d
1973 SECURITYFS_MAGIC = 0x73636673 1973 RTM_F_CLONED = 0x200
1974 SELINUX_MAGIC = 0xf97cff8c 1974 RTM_F_EQUALIZE = 0x400
1975 SFD_CLOEXEC = 0x80000 1975 RTM_F_FIB_MATCH = 0x2000
1976 SFD_NONBLOCK = 0x80 1976 RTM_F_LOOKUP_TABLE = 0x1000
1977 SHUT_RD = 0x0 1977 RTM_F_NOTIFY = 0x100
1978 SHUT_RDWR = 0x2 1978 RTM_F_PREFIX = 0x800
1979 SHUT_WR = 0x1 1979 RTM_GETACTION = 0x32
1980 SIOCADDDLCI = 0x8980 1980 RTM_GETADDR = 0x16
1981 SIOCADDMULTI = 0x8931 1981 RTM_GETADDRLABEL = 0x4a
1982 SIOCADDRT = 0x890b 1982 RTM_GETANYCAST = 0x3e
1983 SIOCATMARK = 0x40047307 1983 RTM_GETCHAIN = 0x66
1984 SIOCBONDCHANGEACTIVE = 0x8995 1984 RTM_GETDCB = 0x4e
1985 SIOCBONDENSLAVE = 0x8990 1985 RTM_GETLINK = 0x12
1986 SIOCBONDINFOQUERY = 0x8994 1986 RTM_GETLINKPROP = 0x6e
1987 SIOCBONDRELEASE = 0x8991 1987 RTM_GETMDB = 0x56
1988 SIOCBONDSETHWADDR = 0x8992 1988 RTM_GETMULTICAST = 0x3a
1989 SIOCBONDSLAVEINFOQUERY = 0x8993 1989 RTM_GETNEIGH = 0x1e
1990 SIOCBRADDBR = 0x89a0 1990 RTM_GETNEIGHTBL = 0x42
1991 SIOCBRADDIF = 0x89a2 1991 RTM_GETNETCONF = 0x52
1992 SIOCBRDELBR = 0x89a1 1992 RTM_GETNEXTHOP = 0x6a
1993 SIOCBRDELIF = 0x89a3 1993 RTM_GETNSID = 0x5a
1994 SIOCDARP = 0x8953 1994 RTM_GETQDISC = 0x26
1995 SIOCDELDLCI = 0x8981 1995 RTM_GETROUTE = 0x1a
1996 SIOCDELMULTI = 0x8932 1996 RTM_GETRULE = 0x22
1997 SIOCDELRT = 0x890c 1997 RTM_GETSTATS = 0x5e
1998 SIOCDEVPRIVATE = 0x89f0 1998 RTM_GETTCLASS = 0x2a
1999 SIOCDIFADDR = 0x8936 1999 RTM_GETTFILTER = 0x2e
2000 SIOCDRARP = 0x8960 2000 RTM_MAX = 0x6f
2001 SIOCETHTOOL = 0x8946 2001 RTM_NEWACTION = 0x30
2002 SIOCGARP = 0x8954 2002 RTM_NEWADDR = 0x14
2003 SIOCGHWTSTAMP = 0x89b1 2003 RTM_NEWADDRLABEL = 0x48
2004 SIOCGIFADDR = 0x8915 2004 RTM_NEWCACHEREPORT = 0x60
2005 SIOCGIFBR = 0x8940 2005 RTM_NEWCHAIN = 0x64
2006 SIOCGIFBRDADDR = 0x8919 2006 RTM_NEWLINK = 0x10
2007 SIOCGIFCONF = 0x8912 2007 RTM_NEWLINKPROP = 0x6c
2008 SIOCGIFCOUNT = 0x8938 2008 RTM_NEWMDB = 0x54
2009 SIOCGIFDSTADDR = 0x8917 2009 RTM_NEWNDUSEROPT = 0x44
2010 SIOCGIFENCAP = 0x8925 2010 RTM_NEWNEIGH = 0x1c
2011 SIOCGIFFLAGS = 0x8913 2011 RTM_NEWNEIGHTBL = 0x40
2012 SIOCGIFHWADDR = 0x8927 2012 RTM_NEWNETCONF = 0x50
2013 SIOCGIFINDEX = 0x8933 2013 RTM_NEWNEXTHOP = 0x68
2014 SIOCGIFMAP = 0x8970 2014 RTM_NEWNSID = 0x58
2015 SIOCGIFMEM = 0x891f 2015 RTM_NEWPREFIX = 0x34
2016 SIOCGIFMETRIC = 0x891d 2016 RTM_NEWQDISC = 0x24
2017 SIOCGIFMTU = 0x8921 2017 RTM_NEWROUTE = 0x18
2018 SIOCGIFNAME = 0x8910 2018 RTM_NEWRULE = 0x20
2019 SIOCGIFNETMASK = 0x891b 2019 RTM_NEWSTATS = 0x5c
2020 SIOCGIFPFLAGS = 0x8935 2020 RTM_NEWTCLASS = 0x28
2021 SIOCGIFSLAVE = 0x8929 2021 RTM_NEWTFILTER = 0x2c
2022 SIOCGIFTXQLEN = 0x8942 2022 RTM_NR_FAMILIES = 0x18
2023 SIOCGIFVLAN = 0x8982 2023 RTM_NR_MSGTYPES = 0x60
2024 SIOCGMIIPHY = 0x8947 2024 RTM_SETDCB = 0x4f
2025 SIOCGMIIREG = 0x8948 2025 RTM_SETLINK = 0x13
2026 SIOCGPGRP = 0x40047309 2026 RTM_SETNEIGHTBL = 0x43
2027 SIOCGPPPCSTATS = 0x89f2 2027 RTNH_ALIGNTO = 0x4
2028 SIOCGPPPSTATS = 0x89f0 2028 RTNH_COMPARE_MASK = 0x19
2029 SIOCGPPPVER = 0x89f1 2029 RTNH_F_DEAD = 0x1
2030 SIOCGRARP = 0x8961 2030 RTNH_F_LINKDOWN = 0x10
2031 SIOCGSKNS = 0x894c 2031 RTNH_F_OFFLOAD = 0x8
2032 SIOCGSTAMP = 0x8906 2032 RTNH_F_ONLINK = 0x4
2033 SIOCGSTAMPNS = 0x8907 2033 RTNH_F_PERVASIVE = 0x2
2034 SIOCGSTAMPNS_NEW = 0x40108907 2034 RTNH_F_UNRESOLVED = 0x20
2035 SIOCGSTAMPNS_OLD = 0x8907 2035 RTN_MAX = 0xb
2036 SIOCGSTAMP_NEW = 0x40108906 2036 RTPROT_BABEL = 0x2a
2037 SIOCGSTAMP_OLD = 0x8906 2037 RTPROT_BGP = 0xba
2038 SIOCINQ = 0x467f 2038 RTPROT_BIRD = 0xc
2039 SIOCOUTQ = 0x7472 2039 RTPROT_BOOT = 0x3
2040 SIOCOUTQNSD = 0x894b 2040 RTPROT_DHCP = 0x10
2041 SIOCPROTOPRIVATE = 0x89e0 2041 RTPROT_DNROUTED = 0xd
2042 SIOCRTMSG = 0x890d 2042 RTPROT_EIGRP = 0xc0
2043 SIOCSARP = 0x8955 2043 RTPROT_GATED = 0x8
2044 SIOCSHWTSTAMP = 0x89b0 2044 RTPROT_ISIS = 0xbb
2045 SIOCSIFADDR = 0x8916 2045 RTPROT_KERNEL = 0x2
2046 SIOCSIFBR = 0x8941 2046 RTPROT_MROUTED = 0x11
2047 SIOCSIFBRDADDR = 0x891a 2047 RTPROT_MRT = 0xa
2048 SIOCSIFDSTADDR = 0x8918 2048 RTPROT_NTK = 0xf
2049 SIOCSIFENCAP = 0x8926 2049 RTPROT_OSPF = 0xbc
2050 SIOCSIFFLAGS = 0x8914 2050 RTPROT_RA = 0x9
2051 SIOCSIFHWADDR = 0x8924 2051 RTPROT_REDIRECT = 0x1
2052 SIOCSIFHWBROADCAST = 0x8937 2052 RTPROT_RIP = 0xbd
2053 SIOCSIFLINK = 0x8911 2053 RTPROT_STATIC = 0x4
2054 SIOCSIFMAP = 0x8971 2054 RTPROT_UNSPEC = 0x0
2055 SIOCSIFMEM = 0x8920 2055 RTPROT_XORP = 0xe
2056 SIOCSIFMETRIC = 0x891e 2056 RTPROT_ZEBRA = 0xb
2057 SIOCSIFMTU = 0x8922 2057 RT_CLASS_DEFAULT = 0xfd
2058 SIOCSIFNAME = 0x8923 2058 RT_CLASS_LOCAL = 0xff
2059 SIOCSIFNETMASK = 0x891c 2059 RT_CLASS_MAIN = 0xfe
2060 SIOCSIFPFLAGS = 0x8934 2060 RT_CLASS_MAX = 0xff
2061 SIOCSIFSLAVE = 0x8930 2061 RT_CLASS_UNSPEC = 0x0
2062 SIOCSIFTXQLEN = 0x8943 2062 RUSAGE_CHILDREN = -0x1
2063 SIOCSIFVLAN = 0x8983 2063 RUSAGE_SELF = 0x0
2064 SIOCSMIIREG = 0x8949 2064 RUSAGE_THREAD = 0x1
2065 SIOCSPGRP = 0x80047308 2065 RWF_APPEND = 0x10
2066 SIOCSRARP = 0x8962 2066 RWF_DSYNC = 0x2
2067 SIOCWANDEV = 0x894a 2067 RWF_HIPRI = 0x1
2068 SMACK_MAGIC = 0x43415d53 2068 RWF_NOWAIT = 0x8
2069 SMART_AUTOSAVE = 0xd2 2069 RWF_SUPPORTED = 0x1f
2070 SMART_AUTO_OFFLINE = 0xdb 2070 RWF_SYNC = 0x4
2071 SMART_DISABLE = 0xd9 2071 RWF_WRITE_LIFE_NOT_SET = 0x0
2072 SMART_ENABLE = 0xd8 2072 SCM_CREDENTIALS = 0x2
2073 SMART_HCYL_PASS = 0xc2 2073 SCM_RIGHTS = 0x1
2074 SMART_IMMEDIATE_OFFLINE = 0xd4 2074 SCM_TIMESTAMP = 0x1d
2075 SMART_LCYL_PASS = 0x4f 2075 SCM_TIMESTAMPING = 0x25
2076 SMART_READ_LOG_SECTOR = 0xd5 2076 SCM_TIMESTAMPING_OPT_STATS = 0x36
2077 SMART_READ_THRESHOLDS = 0xd1 2077 SCM_TIMESTAMPING_PKTINFO = 0x3a
2078 SMART_READ_VALUES = 0xd0 2078 SCM_TIMESTAMPNS = 0x23
2079 SMART_SAVE = 0xd3 2079 SCM_TXTIME = 0x3d
2080 SMART_STATUS = 0xda 2080 SCM_WIFI_STATUS = 0x29
2081 SMART_WRITE_LOG_SECTOR = 0xd6 2081 SC_LOG_FLUSH = 0x100000
2082 SMART_WRITE_THRESHOLDS = 0xd7 2082 SECCOMP_MODE_DISABLED = 0x0
2083 SMB_SUPER_MAGIC = 0x517b 2083 SECCOMP_MODE_FILTER = 0x2
2084 SOCKFS_MAGIC = 0x534f434b 2084 SECCOMP_MODE_STRICT = 0x1
2085 SOCK_CLOEXEC = 0x80000 2085 SECURITYFS_MAGIC = 0x73636673
2086 SOCK_DCCP = 0x6 2086 SELINUX_MAGIC = 0xf97cff8c
2087 SOCK_DGRAM = 0x1 2087 SFD_CLOEXEC = 0x80000
2088 SOCK_IOC_TYPE = 0x89 2088 SFD_NONBLOCK = 0x80
2089 SOCK_NONBLOCK = 0x80 2089 SHUT_RD = 0x0
2090 SOCK_PACKET = 0xa 2090 SHUT_RDWR = 0x2
2091 SOCK_RAW = 0x3 2091 SHUT_WR = 0x1
2092 SOCK_RDM = 0x4 2092 SIOCADDDLCI = 0x8980
2093 SOCK_SEQPACKET = 0x5 2093 SIOCADDMULTI = 0x8931
2094 SOCK_STREAM = 0x2 2094 SIOCADDRT = 0x890b
2095 SOL_AAL = 0x109 2095 SIOCATMARK = 0x40047307
2096 SOL_ALG = 0x117 2096 SIOCBONDCHANGEACTIVE = 0x8995
2097 SOL_ATM = 0x108 2097 SIOCBONDENSLAVE = 0x8990
2098 SOL_CAIF = 0x116 2098 SIOCBONDINFOQUERY = 0x8994
2099 SOL_CAN_BASE = 0x64 2099 SIOCBONDRELEASE = 0x8991
2100 SOL_DCCP = 0x10d 2100 SIOCBONDSETHWADDR = 0x8992
2101 SOL_DECNET = 0x105 2101 SIOCBONDSLAVEINFOQUERY = 0x8993
2102 SOL_ICMPV6 = 0x3a 2102 SIOCBRADDBR = 0x89a0
2103 SOL_IP = 0x0 2103 SIOCBRADDIF = 0x89a2
2104 SOL_IPV6 = 0x29 2104 SIOCBRDELBR = 0x89a1
2105 SOL_IRDA = 0x10a 2105 SIOCBRDELIF = 0x89a3
2106 SOL_IUCV = 0x115 2106 SIOCDARP = 0x8953
2107 SOL_KCM = 0x119 2107 SIOCDELDLCI = 0x8981
2108 SOL_LLC = 0x10c 2108 SIOCDELMULTI = 0x8932
2109 SOL_NETBEUI = 0x10b 2109 SIOCDELRT = 0x890c
2110 SOL_NETLINK = 0x10e 2110 SIOCDEVPRIVATE = 0x89f0
2111 SOL_NFC = 0x118 2111 SIOCDIFADDR = 0x8936
2112 SOL_PACKET = 0x107 2112 SIOCDRARP = 0x8960
2113 SOL_PNPIPE = 0x113 2113 SIOCETHTOOL = 0x8946
2114 SOL_PPPOL2TP = 0x111 2114 SIOCGARP = 0x8954
2115 SOL_RAW = 0xff 2115 SIOCGETLINKNAME = 0x89e0
2116 SOL_RDS = 0x114 2116 SIOCGETNODEID = 0x89e1
2117 SOL_RXRPC = 0x110 2117 SIOCGHWTSTAMP = 0x89b1
2118 SOL_SOCKET = 0xffff 2118 SIOCGIFADDR = 0x8915
2119 SOL_TCP = 0x6 2119 SIOCGIFBR = 0x8940
2120 SOL_TIPC = 0x10f 2120 SIOCGIFBRDADDR = 0x8919
2121 SOL_TLS = 0x11a 2121 SIOCGIFCONF = 0x8912
2122 SOL_X25 = 0x106 2122 SIOCGIFCOUNT = 0x8938
2123 SOL_XDP = 0x11b 2123 SIOCGIFDSTADDR = 0x8917
2124 SOMAXCONN = 0x80 2124 SIOCGIFENCAP = 0x8925
2125 SO_ACCEPTCONN = 0x1009 2125 SIOCGIFFLAGS = 0x8913
2126 SO_ATTACH_BPF = 0x32 2126 SIOCGIFHWADDR = 0x8927
2127 SO_ATTACH_FILTER = 0x1a 2127 SIOCGIFINDEX = 0x8933
2128 SO_ATTACH_REUSEPORT_CBPF = 0x33 2128 SIOCGIFMAP = 0x8970
2129 SO_ATTACH_REUSEPORT_EBPF = 0x34 2129 SIOCGIFMEM = 0x891f
2130 SO_BINDTODEVICE = 0x19 2130 SIOCGIFMETRIC = 0x891d
2131 SO_BINDTOIFINDEX = 0x3e 2131 SIOCGIFMTU = 0x8921
2132 SO_BPF_EXTENSIONS = 0x30 2132 SIOCGIFNAME = 0x8910
2133 SO_BROADCAST = 0x20 2133 SIOCGIFNETMASK = 0x891b
2134 SO_BSDCOMPAT = 0xe 2134 SIOCGIFPFLAGS = 0x8935
2135 SO_BUSY_POLL = 0x2e 2135 SIOCGIFSLAVE = 0x8929
2136 SO_CNX_ADVICE = 0x35 2136 SIOCGIFTXQLEN = 0x8942
2137 SO_COOKIE = 0x39 2137 SIOCGIFVLAN = 0x8982
2138 SO_DEBUG = 0x1 2138 SIOCGMIIPHY = 0x8947
2139 SO_DETACH_BPF = 0x1b 2139 SIOCGMIIREG = 0x8948
2140 SO_DETACH_FILTER = 0x1b 2140 SIOCGPGRP = 0x40047309
2141 SO_DOMAIN = 0x1029 2141 SIOCGPPPCSTATS = 0x89f2
2142 SO_DONTROUTE = 0x10 2142 SIOCGPPPSTATS = 0x89f0
2143 SO_EE_CODE_TXTIME_INVALID_PARAM = 0x1 2143 SIOCGPPPVER = 0x89f1
2144 SO_EE_CODE_TXTIME_MISSED = 0x2 2144 SIOCGRARP = 0x8961
2145 SO_EE_CODE_ZEROCOPY_COPIED = 0x1 2145 SIOCGSKNS = 0x894c
2146 SO_EE_ORIGIN_ICMP = 0x2 2146 SIOCGSTAMP = 0x8906
2147 SO_EE_ORIGIN_ICMP6 = 0x3 2147 SIOCGSTAMPNS = 0x8907
2148 SO_EE_ORIGIN_LOCAL = 0x1 2148 SIOCGSTAMPNS_NEW = 0x40108907
2149 SO_EE_ORIGIN_NONE = 0x0 2149 SIOCGSTAMPNS_OLD = 0x8907
2150 SO_EE_ORIGIN_TIMESTAMPING = 0x4 2150 SIOCGSTAMP_NEW = 0x40108906
2151 SO_EE_ORIGIN_TXSTATUS = 0x4 2151 SIOCGSTAMP_OLD = 0x8906
2152 SO_EE_ORIGIN_TXTIME = 0x6 2152 SIOCINQ = 0x467f
2153 SO_EE_ORIGIN_ZEROCOPY = 0x5 2153 SIOCOUTQ = 0x7472
2154 SO_ERROR = 0x1007 2154 SIOCOUTQNSD = 0x894b
2155 SO_GET_FILTER = 0x1a 2155 SIOCPROTOPRIVATE = 0x89e0
2156 SO_INCOMING_CPU = 0x31 2156 SIOCRTMSG = 0x890d
2157 SO_INCOMING_NAPI_ID = 0x38 2157 SIOCSARP = 0x8955
2158 SO_KEEPALIVE = 0x8 2158 SIOCSHWTSTAMP = 0x89b0
2159 SO_LINGER = 0x80 2159 SIOCSIFADDR = 0x8916
2160 SO_LOCK_FILTER = 0x2c 2160 SIOCSIFBR = 0x8941
2161 SO_MARK = 0x24 2161 SIOCSIFBRDADDR = 0x891a
2162 SO_MAX_PACING_RATE = 0x2f 2162 SIOCSIFDSTADDR = 0x8918
2163 SO_MEMINFO = 0x37 2163 SIOCSIFENCAP = 0x8926
2164 SO_NOFCS = 0x2b 2164 SIOCSIFFLAGS = 0x8914
2165 SO_NO_CHECK = 0xb 2165 SIOCSIFHWADDR = 0x8924
2166 SO_OOBINLINE = 0x100 2166 SIOCSIFHWBROADCAST = 0x8937
2167 SO_PASSCRED = 0x11 2167 SIOCSIFLINK = 0x8911
2168 SO_PASSSEC = 0x22 2168 SIOCSIFMAP = 0x8971
2169 SO_PEEK_OFF = 0x2a 2169 SIOCSIFMEM = 0x8920
2170 SO_PEERCRED = 0x12 2170 SIOCSIFMETRIC = 0x891e
2171 SO_PEERGROUPS = 0x3b 2171 SIOCSIFMTU = 0x8922
2172 SO_PEERNAME = 0x1c 2172 SIOCSIFNAME = 0x8923
2173 SO_PEERSEC = 0x1e 2173 SIOCSIFNETMASK = 0x891c
2174 SO_PRIORITY = 0xc 2174 SIOCSIFPFLAGS = 0x8934
2175 SO_PROTOCOL = 0x1028 2175 SIOCSIFSLAVE = 0x8930
2176 SO_RCVBUF = 0x1002 2176 SIOCSIFTXQLEN = 0x8943
2177 SO_RCVBUFFORCE = 0x21 2177 SIOCSIFVLAN = 0x8983
2178 SO_RCVLOWAT = 0x1004 2178 SIOCSMIIREG = 0x8949
2179 SO_RCVTIMEO = 0x1006 2179 SIOCSPGRP = 0x80047308
2180 SO_RCVTIMEO_NEW = 0x42 2180 SIOCSRARP = 0x8962
2181 SO_RCVTIMEO_OLD = 0x1006 2181 SIOCWANDEV = 0x894a
2182 SO_REUSEADDR = 0x4 2182 SMACK_MAGIC = 0x43415d53
2183 SO_REUSEPORT = 0x200 2183 SMART_AUTOSAVE = 0xd2
2184 SO_RXQ_OVFL = 0x28 2184 SMART_AUTO_OFFLINE = 0xdb
2185 SO_SECURITY_AUTHENTICATION = 0x16 2185 SMART_DISABLE = 0xd9
2186 SO_SECURITY_ENCRYPTION_NETWORK = 0x18 2186 SMART_ENABLE = 0xd8
2187 SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17 2187 SMART_HCYL_PASS = 0xc2
2188 SO_SELECT_ERR_QUEUE = 0x2d 2188 SMART_IMMEDIATE_OFFLINE = 0xd4
2189 SO_SNDBUF = 0x1001 2189 SMART_LCYL_PASS = 0x4f
2190 SO_SNDBUFFORCE = 0x1f 2190 SMART_READ_LOG_SECTOR = 0xd5
2191 SO_SNDLOWAT = 0x1003 2191 SMART_READ_THRESHOLDS = 0xd1
2192 SO_SNDTIMEO = 0x1005 2192 SMART_READ_VALUES = 0xd0
2193 SO_SNDTIMEO_NEW = 0x43 2193 SMART_SAVE = 0xd3
2194 SO_SNDTIMEO_OLD = 0x1005 2194 SMART_STATUS = 0xda
2195 SO_STYLE = 0x1008 2195 SMART_WRITE_LOG_SECTOR = 0xd6
2196 SO_TIMESTAMP = 0x1d 2196 SMART_WRITE_THRESHOLDS = 0xd7
2197 SO_TIMESTAMPING = 0x25 2197 SMB_SUPER_MAGIC = 0x517b
2198 SO_TIMESTAMPING_NEW = 0x41 2198 SOCKFS_MAGIC = 0x534f434b
2199 SO_TIMESTAMPING_OLD = 0x25 2199 SOCK_CLOEXEC = 0x80000
2200 SO_TIMESTAMPNS = 0x23 2200 SOCK_DCCP = 0x6
2201 SO_TIMESTAMPNS_NEW = 0x40 2201 SOCK_DGRAM = 0x1
2202 SO_TIMESTAMPNS_OLD = 0x23 2202 SOCK_IOC_TYPE = 0x89
2203 SO_TIMESTAMP_NEW = 0x3f 2203 SOCK_NONBLOCK = 0x80
2204 SO_TIMESTAMP_OLD = 0x1d 2204 SOCK_PACKET = 0xa
2205 SO_TXTIME = 0x3d 2205 SOCK_RAW = 0x3
2206 SO_TYPE = 0x1008 2206 SOCK_RDM = 0x4
2207 SO_VM_SOCKETS_BUFFER_MAX_SIZE = 0x2 2207 SOCK_SEQPACKET = 0x5
2208 SO_VM_SOCKETS_BUFFER_MIN_SIZE = 0x1 2208 SOCK_STREAM = 0x2
2209 SO_VM_SOCKETS_BUFFER_SIZE = 0x0 2209 SOL_AAL = 0x109
2210 SO_VM_SOCKETS_CONNECT_TIMEOUT = 0x6 2210 SOL_ALG = 0x117
2211 SO_VM_SOCKETS_NONBLOCK_TXRX = 0x7 2211 SOL_ATM = 0x108
2212 SO_VM_SOCKETS_PEER_HOST_VM_ID = 0x3 2212 SOL_CAIF = 0x116
2213 SO_VM_SOCKETS_TRUSTED = 0x5 2213 SOL_CAN_BASE = 0x64
2214 SO_WIFI_STATUS = 0x29 2214 SOL_DCCP = 0x10d
2215 SO_ZEROCOPY = 0x3c 2215 SOL_DECNET = 0x105
2216 SPLICE_F_GIFT = 0x8 2216 SOL_ICMPV6 = 0x3a
2217 SPLICE_F_MORE = 0x4 2217 SOL_IP = 0x0
2218 SPLICE_F_MOVE = 0x1 2218 SOL_IPV6 = 0x29
2219 SPLICE_F_NONBLOCK = 0x2 2219 SOL_IRDA = 0x10a
2220 SQUASHFS_MAGIC = 0x73717368 2220 SOL_IUCV = 0x115
2221 STACK_END_MAGIC = 0x57ac6e9d 2221 SOL_KCM = 0x119
2222 STATX_ALL = 0xfff 2222 SOL_LLC = 0x10c
2223 STATX_ATIME = 0x20 2223 SOL_NETBEUI = 0x10b
2224 STATX_ATTR_APPEND = 0x20 2224 SOL_NETLINK = 0x10e
2225 STATX_ATTR_AUTOMOUNT = 0x1000 2225 SOL_NFC = 0x118
2226 STATX_ATTR_COMPRESSED = 0x4 2226 SOL_PACKET = 0x107
2227 STATX_ATTR_ENCRYPTED = 0x800 2227 SOL_PNPIPE = 0x113
2228 STATX_ATTR_IMMUTABLE = 0x10 2228 SOL_PPPOL2TP = 0x111
2229 STATX_ATTR_NODUMP = 0x40 2229 SOL_RAW = 0xff
2230 STATX_BASIC_STATS = 0x7ff 2230 SOL_RDS = 0x114
2231 STATX_BLOCKS = 0x400 2231 SOL_RXRPC = 0x110
2232 STATX_BTIME = 0x800 2232 SOL_SOCKET = 0xffff
2233 STATX_CTIME = 0x80 2233 SOL_TCP = 0x6
2234 STATX_GID = 0x10 2234 SOL_TIPC = 0x10f
2235 STATX_INO = 0x100 2235 SOL_TLS = 0x11a
2236 STATX_MODE = 0x2 2236 SOL_X25 = 0x106
2237 STATX_MTIME = 0x40 2237 SOL_XDP = 0x11b
2238 STATX_NLINK = 0x4 2238 SOMAXCONN = 0x1000
2239 STATX_SIZE = 0x200 2239 SO_ACCEPTCONN = 0x1009
2240 STATX_TYPE = 0x1 2240 SO_ATTACH_BPF = 0x32
2241 STATX_UID = 0x8 2241 SO_ATTACH_FILTER = 0x1a
2242 STATX__RESERVED = 0x80000000 2242 SO_ATTACH_REUSEPORT_CBPF = 0x33
2243 SYNC_FILE_RANGE_WAIT_AFTER = 0x4 2243 SO_ATTACH_REUSEPORT_EBPF = 0x34
2244 SYNC_FILE_RANGE_WAIT_BEFORE = 0x1 2244 SO_BINDTODEVICE = 0x19
2245 SYNC_FILE_RANGE_WRITE = 0x2 2245 SO_BINDTOIFINDEX = 0x3e
2246 SYNC_FILE_RANGE_WRITE_AND_WAIT = 0x7 2246 SO_BPF_EXTENSIONS = 0x30
2247 SYSFS_MAGIC = 0x62656572 2247 SO_BROADCAST = 0x20
2248 S_BLKSIZE = 0x200 2248 SO_BSDCOMPAT = 0xe
2249 S_IEXEC = 0x40 2249 SO_BUSY_POLL = 0x2e
2250 S_IFBLK = 0x6000 2250 SO_CNX_ADVICE = 0x35
2251 S_IFCHR = 0x2000 2251 SO_COOKIE = 0x39
2252 S_IFDIR = 0x4000 2252 SO_DEBUG = 0x1
2253 S_IFIFO = 0x1000 2253 SO_DETACH_BPF = 0x1b
2254 S_IFLNK = 0xa000 2254 SO_DETACH_FILTER = 0x1b
2255 S_IFMT = 0xf000 2255 SO_DETACH_REUSEPORT_BPF = 0x44
2256 S_IFREG = 0x8000 2256 SO_DOMAIN = 0x1029
2257 S_IFSOCK = 0xc000 2257 SO_DONTROUTE = 0x10
2258 S_IREAD = 0x100 2258 SO_EE_CODE_TXTIME_INVALID_PARAM = 0x1
2259 S_IRGRP = 0x20 2259 SO_EE_CODE_TXTIME_MISSED = 0x2
2260 S_IROTH = 0x4 2260 SO_EE_CODE_ZEROCOPY_COPIED = 0x1
2261 S_IRUSR = 0x100 2261 SO_EE_ORIGIN_ICMP = 0x2
2262 S_IRWXG = 0x38 2262 SO_EE_ORIGIN_ICMP6 = 0x3
2263 S_IRWXO = 0x7 2263 SO_EE_ORIGIN_LOCAL = 0x1
2264 S_IRWXU = 0x1c0 2264 SO_EE_ORIGIN_NONE = 0x0
2265 S_ISGID = 0x400 2265 SO_EE_ORIGIN_TIMESTAMPING = 0x4
2266 S_ISUID = 0x800 2266 SO_EE_ORIGIN_TXSTATUS = 0x4
2267 S_ISVTX = 0x200 2267 SO_EE_ORIGIN_TXTIME = 0x6
2268 S_IWGRP = 0x10 2268 SO_EE_ORIGIN_ZEROCOPY = 0x5
2269 S_IWOTH = 0x2 2269 SO_ERROR = 0x1007
2270 S_IWRITE = 0x80 2270 SO_GET_FILTER = 0x1a
2271 S_IWUSR = 0x80 2271 SO_INCOMING_CPU = 0x31
2272 S_IXGRP = 0x8 2272 SO_INCOMING_NAPI_ID = 0x38
2273 S_IXOTH = 0x1 2273 SO_KEEPALIVE = 0x8
2274 S_IXUSR = 0x40 2274 SO_LINGER = 0x80
2275 TAB0 = 0x0 2275 SO_LOCK_FILTER = 0x2c
2276 TAB1 = 0x800 2276 SO_MARK = 0x24
2277 TAB2 = 0x1000 2277 SO_MAX_PACING_RATE = 0x2f
2278 TAB3 = 0x1800 2278 SO_MEMINFO = 0x37
2279 TABDLY = 0x1800 2279 SO_NOFCS = 0x2b
2280 TASKSTATS_CMD_ATTR_MAX = 0x4 2280 SO_NO_CHECK = 0xb
2281 TASKSTATS_CMD_MAX = 0x2 2281 SO_OOBINLINE = 0x100
2282 TASKSTATS_GENL_NAME = "TASKSTATS" 2282 SO_PASSCRED = 0x11
2283 TASKSTATS_GENL_VERSION = 0x1 2283 SO_PASSSEC = 0x22
2284 TASKSTATS_TYPE_MAX = 0x6 2284 SO_PEEK_OFF = 0x2a
2285 TASKSTATS_VERSION = 0x9 2285 SO_PEERCRED = 0x12
2286 TCFLSH = 0x5407 2286 SO_PEERGROUPS = 0x3b
2287 TCGETA = 0x5401 2287 SO_PEERNAME = 0x1c
2288 TCGETS = 0x540d 2288 SO_PEERSEC = 0x1e
2289 TCGETS2 = 0x4030542a 2289 SO_PRIORITY = 0xc
2290 TCIFLUSH = 0x0 2290 SO_PROTOCOL = 0x1028
2291 TCIOFF = 0x2 2291 SO_RCVBUF = 0x1002
2292 TCIOFLUSH = 0x2 2292 SO_RCVBUFFORCE = 0x21
2293 TCION = 0x3 2293 SO_RCVLOWAT = 0x1004
2294 TCOFLUSH = 0x1 2294 SO_RCVTIMEO = 0x1006
2295 TCOOFF = 0x0 2295 SO_RCVTIMEO_NEW = 0x42
2296 TCOON = 0x1 2296 SO_RCVTIMEO_OLD = 0x1006
2297 TCP_BPF_IW = 0x3e9 2297 SO_REUSEADDR = 0x4
2298 TCP_BPF_SNDCWND_CLAMP = 0x3ea 2298 SO_REUSEPORT = 0x200
2299 TCP_CC_INFO = 0x1a 2299 SO_RXQ_OVFL = 0x28
2300 TCP_CM_INQ = 0x24 2300 SO_SECURITY_AUTHENTICATION = 0x16
2301 TCP_CONGESTION = 0xd 2301 SO_SECURITY_ENCRYPTION_NETWORK = 0x18
2302 TCP_COOKIE_IN_ALWAYS = 0x1 2302 SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17
2303 TCP_COOKIE_MAX = 0x10 2303 SO_SELECT_ERR_QUEUE = 0x2d
2304 TCP_COOKIE_MIN = 0x8 2304 SO_SNDBUF = 0x1001
2305 TCP_COOKIE_OUT_NEVER = 0x2 2305 SO_SNDBUFFORCE = 0x1f
2306 TCP_COOKIE_PAIR_SIZE = 0x20 2306 SO_SNDLOWAT = 0x1003
2307 TCP_COOKIE_TRANSACTIONS = 0xf 2307 SO_SNDTIMEO = 0x1005
2308 TCP_CORK = 0x3 2308 SO_SNDTIMEO_NEW = 0x43
2309 TCP_DEFER_ACCEPT = 0x9 2309 SO_SNDTIMEO_OLD = 0x1005
2310 TCP_FASTOPEN = 0x17 2310 SO_STYLE = 0x1008
2311 TCP_FASTOPEN_CONNECT = 0x1e 2311 SO_TIMESTAMP = 0x1d
2312 TCP_FASTOPEN_KEY = 0x21 2312 SO_TIMESTAMPING = 0x25
2313 TCP_FASTOPEN_NO_COOKIE = 0x22 2313 SO_TIMESTAMPING_NEW = 0x41
2314 TCP_INFO = 0xb 2314 SO_TIMESTAMPING_OLD = 0x25
2315 TCP_INQ = 0x24 2315 SO_TIMESTAMPNS = 0x23
2316 TCP_KEEPCNT = 0x6 2316 SO_TIMESTAMPNS_NEW = 0x40
2317 TCP_KEEPIDLE = 0x4 2317 SO_TIMESTAMPNS_OLD = 0x23
2318 TCP_KEEPINTVL = 0x5 2318 SO_TIMESTAMP_NEW = 0x3f
2319 TCP_LINGER2 = 0x8 2319 SO_TIMESTAMP_OLD = 0x1d
2320 TCP_MAXSEG = 0x2 2320 SO_TXTIME = 0x3d
2321 TCP_MAXWIN = 0xffff 2321 SO_TYPE = 0x1008
2322 TCP_MAX_WINSHIFT = 0xe 2322 SO_VM_SOCKETS_BUFFER_MAX_SIZE = 0x2
2323 TCP_MD5SIG = 0xe 2323 SO_VM_SOCKETS_BUFFER_MIN_SIZE = 0x1
2324 TCP_MD5SIG_EXT = 0x20 2324 SO_VM_SOCKETS_BUFFER_SIZE = 0x0
2325 TCP_MD5SIG_FLAG_PREFIX = 0x1 2325 SO_VM_SOCKETS_CONNECT_TIMEOUT = 0x6
2326 TCP_MD5SIG_MAXKEYLEN = 0x50 2326 SO_VM_SOCKETS_NONBLOCK_TXRX = 0x7
2327 TCP_MSS = 0x200 2327 SO_VM_SOCKETS_PEER_HOST_VM_ID = 0x3
2328 TCP_MSS_DEFAULT = 0x218 2328 SO_VM_SOCKETS_TRUSTED = 0x5
2329 TCP_MSS_DESIRED = 0x4c4 2329 SO_WIFI_STATUS = 0x29
2330 TCP_NODELAY = 0x1 2330 SO_ZEROCOPY = 0x3c
2331 TCP_NOTSENT_LOWAT = 0x19 2331 SPLICE_F_GIFT = 0x8
2332 TCP_QUEUE_SEQ = 0x15 2332 SPLICE_F_MORE = 0x4
2333 TCP_QUICKACK = 0xc 2333 SPLICE_F_MOVE = 0x1
2334 TCP_REPAIR = 0x13 2334 SPLICE_F_NONBLOCK = 0x2
2335 TCP_REPAIR_OFF = 0x0 2335 SQUASHFS_MAGIC = 0x73717368
2336 TCP_REPAIR_OFF_NO_WP = -0x1 2336 STACK_END_MAGIC = 0x57ac6e9d
2337 TCP_REPAIR_ON = 0x1 2337 STATX_ALL = 0xfff
2338 TCP_REPAIR_OPTIONS = 0x16 2338 STATX_ATIME = 0x20
2339 TCP_REPAIR_QUEUE = 0x14 2339 STATX_ATTR_APPEND = 0x20
2340 TCP_REPAIR_WINDOW = 0x1d 2340 STATX_ATTR_AUTOMOUNT = 0x1000
2341 TCP_SAVED_SYN = 0x1c 2341 STATX_ATTR_COMPRESSED = 0x4
2342 TCP_SAVE_SYN = 0x1b 2342 STATX_ATTR_ENCRYPTED = 0x800
2343 TCP_SYNCNT = 0x7 2343 STATX_ATTR_IMMUTABLE = 0x10
2344 TCP_S_DATA_IN = 0x4 2344 STATX_ATTR_NODUMP = 0x40
2345 TCP_S_DATA_OUT = 0x8 2345 STATX_ATTR_VERITY = 0x100000
2346 TCP_THIN_DUPACK = 0x11 2346 STATX_BASIC_STATS = 0x7ff
2347 TCP_THIN_LINEAR_TIMEOUTS = 0x10 2347 STATX_BLOCKS = 0x400
2348 TCP_TIMESTAMP = 0x18 2348 STATX_BTIME = 0x800
2349 TCP_ULP = 0x1f 2349 STATX_CTIME = 0x80
2350 TCP_USER_TIMEOUT = 0x12 2350 STATX_GID = 0x10
2351 TCP_WINDOW_CLAMP = 0xa 2351 STATX_INO = 0x100
2352 TCP_ZEROCOPY_RECEIVE = 0x23 2352 STATX_MODE = 0x2
2353 TCSAFLUSH = 0x5410 2353 STATX_MTIME = 0x40
2354 TCSBRK = 0x5405 2354 STATX_NLINK = 0x4
2355 TCSBRKP = 0x5486 2355 STATX_SIZE = 0x200
2356 TCSETA = 0x5402 2356 STATX_TYPE = 0x1
2357 TCSETAF = 0x5404 2357 STATX_UID = 0x8
2358 TCSETAW = 0x5403 2358 STATX__RESERVED = 0x80000000
2359 TCSETS = 0x540e 2359 SYNC_FILE_RANGE_WAIT_AFTER = 0x4
2360 TCSETS2 = 0x8030542b 2360 SYNC_FILE_RANGE_WAIT_BEFORE = 0x1
2361 TCSETSF = 0x5410 2361 SYNC_FILE_RANGE_WRITE = 0x2
2362 TCSETSF2 = 0x8030542d 2362 SYNC_FILE_RANGE_WRITE_AND_WAIT = 0x7
2363 TCSETSW = 0x540f 2363 SYSFS_MAGIC = 0x62656572
2364 TCSETSW2 = 0x8030542c 2364 S_BLKSIZE = 0x200
2365 TCXONC = 0x5406 2365 S_IEXEC = 0x40
2366 TIMER_ABSTIME = 0x1 2366 S_IFBLK = 0x6000
2367 TIOCCBRK = 0x5428 2367 S_IFCHR = 0x2000
2368 TIOCCONS = 0x80047478 2368 S_IFDIR = 0x4000
2369 TIOCEXCL = 0x740d 2369 S_IFIFO = 0x1000
2370 TIOCGDEV = 0x40045432 2370 S_IFLNK = 0xa000
2371 TIOCGETD = 0x7400 2371 S_IFMT = 0xf000
2372 TIOCGETP = 0x7408 2372 S_IFREG = 0x8000
2373 TIOCGEXCL = 0x40045440 2373 S_IFSOCK = 0xc000
2374 TIOCGICOUNT = 0x5492 2374 S_IREAD = 0x100
2375 TIOCGISO7816 = 0x40285442 2375 S_IRGRP = 0x20
2376 TIOCGLCKTRMIOS = 0x548b 2376 S_IROTH = 0x4
2377 TIOCGLTC = 0x7474 2377 S_IRUSR = 0x100
2378 TIOCGPGRP = 0x40047477 2378 S_IRWXG = 0x38
2379 TIOCGPKT = 0x40045438 2379 S_IRWXO = 0x7
2380 TIOCGPTLCK = 0x40045439 2380 S_IRWXU = 0x1c0
2381 TIOCGPTN = 0x40045430 2381 S_ISGID = 0x400
2382 TIOCGPTPEER = 0x20005441 2382 S_ISUID = 0x800
2383 TIOCGRS485 = 0x4020542e 2383 S_ISVTX = 0x200
2384 TIOCGSERIAL = 0x5484 2384 S_IWGRP = 0x10
2385 TIOCGSID = 0x7416 2385 S_IWOTH = 0x2
2386 TIOCGSOFTCAR = 0x5481 2386 S_IWRITE = 0x80
2387 TIOCGWINSZ = 0x40087468 2387 S_IWUSR = 0x80
2388 TIOCINQ = 0x467f 2388 S_IXGRP = 0x8
2389 TIOCLINUX = 0x5483 2389 S_IXOTH = 0x1
2390 TIOCMBIC = 0x741c 2390 S_IXUSR = 0x40
2391 TIOCMBIS = 0x741b 2391 TAB0 = 0x0
2392 TIOCMGET = 0x741d 2392 TAB1 = 0x800
2393 TIOCMIWAIT = 0x5491 2393 TAB2 = 0x1000
2394 TIOCMSET = 0x741a 2394 TAB3 = 0x1800
2395 TIOCM_CAR = 0x100 2395 TABDLY = 0x1800
2396 TIOCM_CD = 0x100 2396 TASKSTATS_CMD_ATTR_MAX = 0x4
2397 TIOCM_CTS = 0x40 2397 TASKSTATS_CMD_MAX = 0x2
2398 TIOCM_DSR = 0x400 2398 TASKSTATS_GENL_NAME = "TASKSTATS"
2399 TIOCM_DTR = 0x2 2399 TASKSTATS_GENL_VERSION = 0x1
2400 TIOCM_LE = 0x1 2400 TASKSTATS_TYPE_MAX = 0x6
2401 TIOCM_RI = 0x200 2401 TASKSTATS_VERSION = 0x9
2402 TIOCM_RNG = 0x200 2402 TCFLSH = 0x5407
2403 TIOCM_RTS = 0x4 2403 TCGETA = 0x5401
2404 TIOCM_SR = 0x20 2404 TCGETS = 0x540d
2405 TIOCM_ST = 0x10 2405 TCGETS2 = 0x4030542a
2406 TIOCNOTTY = 0x5471 2406 TCIFLUSH = 0x0
2407 TIOCNXCL = 0x740e 2407 TCIOFF = 0x2
2408 TIOCOUTQ = 0x7472 2408 TCIOFLUSH = 0x2
2409 TIOCPKT = 0x5470 2409 TCION = 0x3
2410 TIOCPKT_DATA = 0x0 2410 TCOFLUSH = 0x1
2411 TIOCPKT_DOSTOP = 0x20 2411 TCOOFF = 0x0
2412 TIOCPKT_FLUSHREAD = 0x1 2412 TCOON = 0x1
2413 TIOCPKT_FLUSHWRITE = 0x2 2413 TCP_BPF_IW = 0x3e9
2414 TIOCPKT_IOCTL = 0x40 2414 TCP_BPF_SNDCWND_CLAMP = 0x3ea
2415 TIOCPKT_NOSTOP = 0x10 2415 TCP_CC_INFO = 0x1a
2416 TIOCPKT_START = 0x8 2416 TCP_CM_INQ = 0x24
2417 TIOCPKT_STOP = 0x4 2417 TCP_CONGESTION = 0xd
2418 TIOCSBRK = 0x5427 2418 TCP_COOKIE_IN_ALWAYS = 0x1
2419 TIOCSCTTY = 0x5480 2419 TCP_COOKIE_MAX = 0x10
2420 TIOCSERCONFIG = 0x5488 2420 TCP_COOKIE_MIN = 0x8
2421 TIOCSERGETLSR = 0x548e 2421 TCP_COOKIE_OUT_NEVER = 0x2
2422 TIOCSERGETMULTI = 0x548f 2422 TCP_COOKIE_PAIR_SIZE = 0x20
2423 TIOCSERGSTRUCT = 0x548d 2423 TCP_COOKIE_TRANSACTIONS = 0xf
2424 TIOCSERGWILD = 0x5489 2424 TCP_CORK = 0x3
2425 TIOCSERSETMULTI = 0x5490 2425 TCP_DEFER_ACCEPT = 0x9
2426 TIOCSERSWILD = 0x548a 2426 TCP_FASTOPEN = 0x17
2427 TIOCSER_TEMT = 0x1 2427 TCP_FASTOPEN_CONNECT = 0x1e
2428 TIOCSETD = 0x7401 2428 TCP_FASTOPEN_KEY = 0x21
2429 TIOCSETN = 0x740a 2429 TCP_FASTOPEN_NO_COOKIE = 0x22
2430 TIOCSETP = 0x7409 2430 TCP_INFO = 0xb
2431 TIOCSIG = 0x80045436 2431 TCP_INQ = 0x24
2432 TIOCSISO7816 = 0xc0285443 2432 TCP_KEEPCNT = 0x6
2433 TIOCSLCKTRMIOS = 0x548c 2433 TCP_KEEPIDLE = 0x4
2434 TIOCSLTC = 0x7475 2434 TCP_KEEPINTVL = 0x5
2435 TIOCSPGRP = 0x80047476 2435 TCP_LINGER2 = 0x8
2436 TIOCSPTLCK = 0x80045431 2436 TCP_MAXSEG = 0x2
2437 TIOCSRS485 = 0xc020542f 2437 TCP_MAXWIN = 0xffff
2438 TIOCSSERIAL = 0x5485 2438 TCP_MAX_WINSHIFT = 0xe
2439 TIOCSSOFTCAR = 0x5482 2439 TCP_MD5SIG = 0xe
2440 TIOCSTI = 0x5472 2440 TCP_MD5SIG_EXT = 0x20
2441 TIOCSWINSZ = 0x80087467 2441 TCP_MD5SIG_FLAG_PREFIX = 0x1
2442 TIOCVHANGUP = 0x5437 2442 TCP_MD5SIG_MAXKEYLEN = 0x50
2443 TMPFS_MAGIC = 0x1021994 2443 TCP_MSS = 0x200
2444 TOSTOP = 0x8000 2444 TCP_MSS_DEFAULT = 0x218
2445 TPACKET_ALIGNMENT = 0x10 2445 TCP_MSS_DESIRED = 0x4c4
2446 TPACKET_HDRLEN = 0x34 2446 TCP_NODELAY = 0x1
2447 TP_STATUS_AVAILABLE = 0x0 2447 TCP_NOTSENT_LOWAT = 0x19
2448 TP_STATUS_BLK_TMO = 0x20 2448 TCP_QUEUE_SEQ = 0x15
2449 TP_STATUS_COPY = 0x2 2449 TCP_QUICKACK = 0xc
2450 TP_STATUS_CSUMNOTREADY = 0x8 2450 TCP_REPAIR = 0x13
2451 TP_STATUS_CSUM_VALID = 0x80 2451 TCP_REPAIR_OFF = 0x0
2452 TP_STATUS_KERNEL = 0x0 2452 TCP_REPAIR_OFF_NO_WP = -0x1
2453 TP_STATUS_LOSING = 0x4 2453 TCP_REPAIR_ON = 0x1
2454 TP_STATUS_SENDING = 0x2 2454 TCP_REPAIR_OPTIONS = 0x16
2455 TP_STATUS_SEND_REQUEST = 0x1 2455 TCP_REPAIR_QUEUE = 0x14
2456 TP_STATUS_TS_RAW_HARDWARE = -0x80000000 2456 TCP_REPAIR_WINDOW = 0x1d
2457 TP_STATUS_TS_SOFTWARE = 0x20000000 2457 TCP_SAVED_SYN = 0x1c
2458 TP_STATUS_TS_SYS_HARDWARE = 0x40000000 2458 TCP_SAVE_SYN = 0x1b
2459 TP_STATUS_USER = 0x1 2459 TCP_SYNCNT = 0x7
2460 TP_STATUS_VLAN_TPID_VALID = 0x40 2460 TCP_S_DATA_IN = 0x4
2461 TP_STATUS_VLAN_VALID = 0x10 2461 TCP_S_DATA_OUT = 0x8
2462 TP_STATUS_WRONG_FORMAT = 0x4 2462 TCP_THIN_DUPACK = 0x11
2463 TRACEFS_MAGIC = 0x74726163 2463 TCP_THIN_LINEAR_TIMEOUTS = 0x10
2464 TS_COMM_LEN = 0x20 2464 TCP_TIMESTAMP = 0x18
2465 TUNATTACHFILTER = 0x801054d5 2465 TCP_TX_DELAY = 0x25
2466 TUNDETACHFILTER = 0x801054d6 2466 TCP_ULP = 0x1f
2467 TUNGETDEVNETNS = 0x200054e3 2467 TCP_USER_TIMEOUT = 0x12
2468 TUNGETFEATURES = 0x400454cf 2468 TCP_WINDOW_CLAMP = 0xa
2469 TUNGETFILTER = 0x401054db 2469 TCP_ZEROCOPY_RECEIVE = 0x23
2470 TUNGETIFF = 0x400454d2 2470 TCSAFLUSH = 0x5410
2471 TUNGETSNDBUF = 0x400454d3 2471 TCSBRK = 0x5405
2472 TUNGETVNETBE = 0x400454df 2472 TCSBRKP = 0x5486
2473 TUNGETVNETHDRSZ = 0x400454d7 2473 TCSETA = 0x5402
2474 TUNGETVNETLE = 0x400454dd 2474 TCSETAF = 0x5404
2475 TUNSETCARRIER = 0x800454e2 2475 TCSETAW = 0x5403
2476 TUNSETDEBUG = 0x800454c9 2476 TCSETS = 0x540e
2477 TUNSETFILTEREBPF = 0x400454e1 2477 TCSETS2 = 0x8030542b
2478 TUNSETGROUP = 0x800454ce 2478 TCSETSF = 0x5410
2479 TUNSETIFF = 0x800454ca 2479 TCSETSF2 = 0x8030542d
2480 TUNSETIFINDEX = 0x800454da 2480 TCSETSW = 0x540f
2481 TUNSETLINK = 0x800454cd 2481 TCSETSW2 = 0x8030542c
2482 TUNSETNOCSUM = 0x800454c8 2482 TCXONC = 0x5406
2483 TUNSETOFFLOAD = 0x800454d0 2483 TIMER_ABSTIME = 0x1
2484 TUNSETOWNER = 0x800454cc 2484 TIOCCBRK = 0x5428
2485 TUNSETPERSIST = 0x800454cb 2485 TIOCCONS = 0x80047478
2486 TUNSETQUEUE = 0x800454d9 2486 TIOCEXCL = 0x740d
2487 TUNSETSNDBUF = 0x800454d4 2487 TIOCGDEV = 0x40045432
2488 TUNSETSTEERINGEBPF = 0x400454e0 2488 TIOCGETD = 0x7400
2489 TUNSETTXFILTER = 0x800454d1 2489 TIOCGETP = 0x7408
2490 TUNSETVNETBE = 0x800454de 2490 TIOCGEXCL = 0x40045440
2491 TUNSETVNETHDRSZ = 0x800454d8 2491 TIOCGICOUNT = 0x5492
2492 TUNSETVNETLE = 0x800454dc 2492 TIOCGISO7816 = 0x40285442
2493 UBI_IOCATT = 0x80186f40 2493 TIOCGLCKTRMIOS = 0x548b
2494 UBI_IOCDET = 0x80046f41 2494 TIOCGLTC = 0x7474
2495 UBI_IOCEBCH = 0x80044f02 2495 TIOCGPGRP = 0x40047477
2496 UBI_IOCEBER = 0x80044f01 2496 TIOCGPKT = 0x40045438
2497 UBI_IOCEBISMAP = 0x40044f05 2497 TIOCGPTLCK = 0x40045439
2498 UBI_IOCEBMAP = 0x80084f03 2498 TIOCGPTN = 0x40045430
2499 UBI_IOCEBUNMAP = 0x80044f04 2499 TIOCGPTPEER = 0x20005441
2500 UBI_IOCMKVOL = 0x80986f00 2500 TIOCGRS485 = 0x4020542e
2501 UBI_IOCRMVOL = 0x80046f01 2501 TIOCGSERIAL = 0x5484
2502 UBI_IOCRNVOL = 0x91106f03 2502 TIOCGSID = 0x7416
2503 UBI_IOCRPEB = 0x80046f04 2503 TIOCGSOFTCAR = 0x5481
2504 UBI_IOCRSVOL = 0x800c6f02 2504 TIOCGWINSZ = 0x40087468
2505 UBI_IOCSETVOLPROP = 0x80104f06 2505 TIOCINQ = 0x467f
2506 UBI_IOCSPEB = 0x80046f05 2506 TIOCLINUX = 0x5483
2507 UBI_IOCVOLCRBLK = 0x80804f07 2507 TIOCMBIC = 0x741c
2508 UBI_IOCVOLRMBLK = 0x20004f08 2508 TIOCMBIS = 0x741b
2509 UBI_IOCVOLUP = 0x80084f00 2509 TIOCMGET = 0x741d
2510 UDF_SUPER_MAGIC = 0x15013346 2510 TIOCMIWAIT = 0x5491
2511 UMOUNT_NOFOLLOW = 0x8 2511 TIOCMSET = 0x741a
2512 USBDEVICE_SUPER_MAGIC = 0x9fa2 2512 TIOCM_CAR = 0x100
2513 UTIME_NOW = 0x3fffffff 2513 TIOCM_CD = 0x100
2514 UTIME_OMIT = 0x3ffffffe 2514 TIOCM_CTS = 0x40
2515 V9FS_MAGIC = 0x1021997 2515 TIOCM_DSR = 0x400
2516 VDISCARD = 0xd 2516 TIOCM_DTR = 0x2
2517 VEOF = 0x10 2517 TIOCM_LE = 0x1
2518 VEOL = 0x11 2518 TIOCM_RI = 0x200
2519 VEOL2 = 0x6 2519 TIOCM_RNG = 0x200
2520 VERASE = 0x2 2520 TIOCM_RTS = 0x4
2521 VINTR = 0x0 2521 TIOCM_SR = 0x20
2522 VKILL = 0x3 2522 TIOCM_ST = 0x10
2523 VLNEXT = 0xf 2523 TIOCNOTTY = 0x5471
2524 VMADDR_CID_ANY = 0xffffffff 2524 TIOCNXCL = 0x740e
2525 VMADDR_CID_HOST = 0x2 2525 TIOCOUTQ = 0x7472
2526 VMADDR_CID_HYPERVISOR = 0x0 2526 TIOCPKT = 0x5470
2527 VMADDR_CID_RESERVED = 0x1 2527 TIOCPKT_DATA = 0x0
2528 VMADDR_PORT_ANY = 0xffffffff 2528 TIOCPKT_DOSTOP = 0x20
2529 VMIN = 0x4 2529 TIOCPKT_FLUSHREAD = 0x1
2530 VM_SOCKETS_INVALID_VERSION = 0xffffffff 2530 TIOCPKT_FLUSHWRITE = 0x2
2531 VQUIT = 0x1 2531 TIOCPKT_IOCTL = 0x40
2532 VREPRINT = 0xc 2532 TIOCPKT_NOSTOP = 0x10
2533 VSTART = 0x8 2533 TIOCPKT_START = 0x8
2534 VSTOP = 0x9 2534 TIOCPKT_STOP = 0x4
2535 VSUSP = 0xa 2535 TIOCSBRK = 0x5427
2536 VSWTC = 0x7 2536 TIOCSCTTY = 0x5480
2537 VSWTCH = 0x7 2537 TIOCSERCONFIG = 0x5488
2538 VT0 = 0x0 2538 TIOCSERGETLSR = 0x548e
2539 VT1 = 0x4000 2539 TIOCSERGETMULTI = 0x548f
2540 VTDLY = 0x4000 2540 TIOCSERGSTRUCT = 0x548d
2541 VTIME = 0x5 2541 TIOCSERGWILD = 0x5489
2542 VWERASE = 0xe 2542 TIOCSERSETMULTI = 0x5490
2543 WALL = 0x40000000 2543 TIOCSERSWILD = 0x548a
2544 WCLONE = 0x80000000 2544 TIOCSER_TEMT = 0x1
2545 WCONTINUED = 0x8 2545 TIOCSETD = 0x7401
2546 WDIOC_GETBOOTSTATUS = 0x40045702 2546 TIOCSETN = 0x740a
2547 WDIOC_GETPRETIMEOUT = 0x40045709 2547 TIOCSETP = 0x7409
2548 WDIOC_GETSTATUS = 0x40045701 2548 TIOCSIG = 0x80045436
2549 WDIOC_GETSUPPORT = 0x40285700 2549 TIOCSISO7816 = 0xc0285443
2550 WDIOC_GETTEMP = 0x40045703 2550 TIOCSLCKTRMIOS = 0x548c
2551 WDIOC_GETTIMELEFT = 0x4004570a 2551 TIOCSLTC = 0x7475
2552 WDIOC_GETTIMEOUT = 0x40045707 2552 TIOCSPGRP = 0x80047476
2553 WDIOC_KEEPALIVE = 0x40045705 2553 TIOCSPTLCK = 0x80045431
2554 WDIOC_SETOPTIONS = 0x40045704 2554 TIOCSRS485 = 0xc020542f
2555 WDIOC_SETPRETIMEOUT = 0xc0045708 2555 TIOCSSERIAL = 0x5485
2556 WDIOC_SETTIMEOUT = 0xc0045706 2556 TIOCSSOFTCAR = 0x5482
2557 WEXITED = 0x4 2557 TIOCSTI = 0x5472
2558 WIN_ACKMEDIACHANGE = 0xdb 2558 TIOCSWINSZ = 0x80087467
2559 WIN_CHECKPOWERMODE1 = 0xe5 2559 TIOCVHANGUP = 0x5437
2560 WIN_CHECKPOWERMODE2 = 0x98 2560 TIPC_ADDR_ID = 0x3
2561 WIN_DEVICE_RESET = 0x8 2561 TIPC_ADDR_MCAST = 0x1
2562 WIN_DIAGNOSE = 0x90 2562 TIPC_ADDR_NAME = 0x2
2563 WIN_DOORLOCK = 0xde 2563 TIPC_ADDR_NAMESEQ = 0x1
2564 WIN_DOORUNLOCK = 0xdf 2564 TIPC_AEAD_ALG_NAME = 0x20
2565 WIN_DOWNLOAD_MICROCODE = 0x92 2565 TIPC_AEAD_KEYLEN_MAX = 0x24
2566 WIN_FLUSH_CACHE = 0xe7 2566 TIPC_AEAD_KEYLEN_MIN = 0x14
2567 WIN_FLUSH_CACHE_EXT = 0xea 2567 TIPC_AEAD_KEY_SIZE_MAX = 0x48
2568 WIN_FORMAT = 0x50 2568 TIPC_CFG_SRV = 0x0
2569 WIN_GETMEDIASTATUS = 0xda 2569 TIPC_CLUSTER_BITS = 0xc
2570 WIN_IDENTIFY = 0xec 2570 TIPC_CLUSTER_MASK = 0xfff000
2571 WIN_IDENTIFY_DMA = 0xee 2571 TIPC_CLUSTER_OFFSET = 0xc
2572 WIN_IDLEIMMEDIATE = 0xe1 2572 TIPC_CLUSTER_SIZE = 0xfff
2573 WIN_INIT = 0x60 2573 TIPC_CONN_SHUTDOWN = 0x5
2574 WIN_MEDIAEJECT = 0xed 2574 TIPC_CONN_TIMEOUT = 0x82
2575 WIN_MULTREAD = 0xc4 2575 TIPC_CRITICAL_IMPORTANCE = 0x3
2576 WIN_MULTREAD_EXT = 0x29 2576 TIPC_DESTNAME = 0x3
2577 WIN_MULTWRITE = 0xc5 2577 TIPC_DEST_DROPPABLE = 0x81
2578 WIN_MULTWRITE_EXT = 0x39 2578 TIPC_ERRINFO = 0x1
2579 WIN_NOP = 0x0 2579 TIPC_ERR_NO_NAME = 0x1
2580 WIN_PACKETCMD = 0xa0 2580 TIPC_ERR_NO_NODE = 0x3
2581 WIN_PIDENTIFY = 0xa1 2581 TIPC_ERR_NO_PORT = 0x2
2582 WIN_POSTBOOT = 0xdc 2582 TIPC_ERR_OVERLOAD = 0x4
2583 WIN_PREBOOT = 0xdd 2583 TIPC_GROUP_JOIN = 0x87
2584 WIN_QUEUED_SERVICE = 0xa2 2584 TIPC_GROUP_LEAVE = 0x88
2585 WIN_READ = 0x20 2585 TIPC_GROUP_LOOPBACK = 0x1
2586 WIN_READDMA = 0xc8 2586 TIPC_GROUP_MEMBER_EVTS = 0x2
2587 WIN_READDMA_EXT = 0x25 2587 TIPC_HIGH_IMPORTANCE = 0x2
2588 WIN_READDMA_ONCE = 0xc9 2588 TIPC_IMPORTANCE = 0x7f
2589 WIN_READDMA_QUEUED = 0xc7 2589 TIPC_LINK_STATE = 0x2
2590 WIN_READDMA_QUEUED_EXT = 0x26 2590 TIPC_LOW_IMPORTANCE = 0x0
2591 WIN_READ_BUFFER = 0xe4 2591 TIPC_MAX_BEARER_NAME = 0x20
2592 WIN_READ_EXT = 0x24 2592 TIPC_MAX_IF_NAME = 0x10
2593 WIN_READ_LONG = 0x22 2593 TIPC_MAX_LINK_NAME = 0x44
2594 WIN_READ_LONG_ONCE = 0x23 2594 TIPC_MAX_MEDIA_NAME = 0x10
2595 WIN_READ_NATIVE_MAX = 0xf8 2595 TIPC_MAX_USER_MSG_SIZE = 0x101d0
2596 WIN_READ_NATIVE_MAX_EXT = 0x27 2596 TIPC_MCAST_BROADCAST = 0x85
2597 WIN_READ_ONCE = 0x21 2597 TIPC_MCAST_REPLICAST = 0x86
2598 WIN_RECAL = 0x10 2598 TIPC_MEDIUM_IMPORTANCE = 0x1
2599 WIN_RESTORE = 0x10 2599 TIPC_NODEID_LEN = 0x10
2600 WIN_SECURITY_DISABLE = 0xf6 2600 TIPC_NODELAY = 0x8a
2601 WIN_SECURITY_ERASE_PREPARE = 0xf3 2601 TIPC_NODE_BITS = 0xc
2602 WIN_SECURITY_ERASE_UNIT = 0xf4 2602 TIPC_NODE_MASK = 0xfff
2603 WIN_SECURITY_FREEZE_LOCK = 0xf5 2603 TIPC_NODE_OFFSET = 0x0
2604 WIN_SECURITY_SET_PASS = 0xf1 2604 TIPC_NODE_RECVQ_DEPTH = 0x83
2605 WIN_SECURITY_UNLOCK = 0xf2 2605 TIPC_NODE_SIZE = 0xfff
2606 WIN_SEEK = 0x70 2606 TIPC_NODE_STATE = 0x0
2607 WIN_SETFEATURES = 0xef 2607 TIPC_OK = 0x0
2608 WIN_SETIDLE1 = 0xe3 2608 TIPC_PUBLISHED = 0x1
2609 WIN_SETIDLE2 = 0x97 2609 TIPC_RESERVED_TYPES = 0x40
2610 WIN_SETMULT = 0xc6 2610 TIPC_RETDATA = 0x2
2611 WIN_SET_MAX = 0xf9 2611 TIPC_SERVICE_ADDR = 0x2
2612 WIN_SET_MAX_EXT = 0x37 2612 TIPC_SERVICE_RANGE = 0x1
2613 WIN_SLEEPNOW1 = 0xe6 2613 TIPC_SOCKET_ADDR = 0x3
2614 WIN_SLEEPNOW2 = 0x99 2614 TIPC_SOCK_RECVQ_DEPTH = 0x84
2615 WIN_SMART = 0xb0 2615 TIPC_SOCK_RECVQ_USED = 0x89
2616 WIN_SPECIFY = 0x91 2616 TIPC_SRC_DROPPABLE = 0x80
2617 WIN_SRST = 0x8 2617 TIPC_SUBSCR_TIMEOUT = 0x3
2618 WIN_STANDBY = 0xe2 2618 TIPC_SUB_CANCEL = 0x4
2619 WIN_STANDBY2 = 0x96 2619 TIPC_SUB_PORTS = 0x1
2620 WIN_STANDBYNOW1 = 0xe0 2620 TIPC_SUB_SERVICE = 0x2
2621 WIN_STANDBYNOW2 = 0x94 2621 TIPC_TOP_SRV = 0x1
2622 WIN_VERIFY = 0x40 2622 TIPC_WAIT_FOREVER = 0xffffffff
2623 WIN_VERIFY_EXT = 0x42 2623 TIPC_WITHDRAWN = 0x2
2624 WIN_VERIFY_ONCE = 0x41 2624 TIPC_ZONE_BITS = 0x8
2625 WIN_WRITE = 0x30 2625 TIPC_ZONE_CLUSTER_MASK = 0xfffff000
2626 WIN_WRITEDMA = 0xca 2626 TIPC_ZONE_MASK = 0xff000000
2627 WIN_WRITEDMA_EXT = 0x35 2627 TIPC_ZONE_OFFSET = 0x18
2628 WIN_WRITEDMA_ONCE = 0xcb 2628 TIPC_ZONE_SCOPE = 0x1
2629 WIN_WRITEDMA_QUEUED = 0xcc 2629 TIPC_ZONE_SIZE = 0xff
2630 WIN_WRITEDMA_QUEUED_EXT = 0x36 2630 TMPFS_MAGIC = 0x1021994
2631 WIN_WRITE_BUFFER = 0xe8 2631 TOSTOP = 0x8000
2632 WIN_WRITE_EXT = 0x34 2632 TPACKET_ALIGNMENT = 0x10
2633 WIN_WRITE_LONG = 0x32 2633 TPACKET_HDRLEN = 0x34
2634 WIN_WRITE_LONG_ONCE = 0x33 2634 TP_STATUS_AVAILABLE = 0x0
2635 WIN_WRITE_ONCE = 0x31 2635 TP_STATUS_BLK_TMO = 0x20
2636 WIN_WRITE_SAME = 0xe9 2636 TP_STATUS_COPY = 0x2
2637 WIN_WRITE_VERIFY = 0x3c 2637 TP_STATUS_CSUMNOTREADY = 0x8
2638 WNOHANG = 0x1 2638 TP_STATUS_CSUM_VALID = 0x80
2639 WNOTHREAD = 0x20000000 2639 TP_STATUS_KERNEL = 0x0
2640 WNOWAIT = 0x1000000 2640 TP_STATUS_LOSING = 0x4
2641 WORDSIZE = 0x40 2641 TP_STATUS_SENDING = 0x2
2642 WSTOPPED = 0x2 2642 TP_STATUS_SEND_REQUEST = 0x1
2643 WUNTRACED = 0x2 2643 TP_STATUS_TS_RAW_HARDWARE = 0x80000000
2644 XATTR_CREATE = 0x1 2644 TP_STATUS_TS_SOFTWARE = 0x20000000
2645 XATTR_REPLACE = 0x2 2645 TP_STATUS_TS_SYS_HARDWARE = 0x40000000
2646 XCASE = 0x4 2646 TP_STATUS_USER = 0x1
2647 XDP_COPY = 0x2 2647 TP_STATUS_VLAN_TPID_VALID = 0x40
2648 XDP_FLAGS_DRV_MODE = 0x4 2648 TP_STATUS_VLAN_VALID = 0x10
2649 XDP_FLAGS_HW_MODE = 0x8 2649 TP_STATUS_WRONG_FORMAT = 0x4
2650 XDP_FLAGS_MASK = 0xf 2650 TRACEFS_MAGIC = 0x74726163
2651 XDP_FLAGS_MODES = 0xe 2651 TS_COMM_LEN = 0x20
2652 XDP_FLAGS_SKB_MODE = 0x2 2652 TUNATTACHFILTER = 0x801054d5
2653 XDP_FLAGS_UPDATE_IF_NOEXIST = 0x1 2653 TUNDETACHFILTER = 0x801054d6
2654 XDP_MMAP_OFFSETS = 0x1 2654 TUNGETDEVNETNS = 0x200054e3
2655 XDP_PACKET_HEADROOM = 0x100 2655 TUNGETFEATURES = 0x400454cf
2656 XDP_PGOFF_RX_RING = 0x0 2656 TUNGETFILTER = 0x401054db
2657 XDP_PGOFF_TX_RING = 0x80000000 2657 TUNGETIFF = 0x400454d2
2658 XDP_RX_RING = 0x2 2658 TUNGETSNDBUF = 0x400454d3
2659 XDP_SHARED_UMEM = 0x1 2659 TUNGETVNETBE = 0x400454df
2660 XDP_STATISTICS = 0x7 2660 TUNGETVNETHDRSZ = 0x400454d7
2661 XDP_TX_RING = 0x3 2661 TUNGETVNETLE = 0x400454dd
2662 XDP_UMEM_COMPLETION_RING = 0x6 2662 TUNSETCARRIER = 0x800454e2
2663 XDP_UMEM_FILL_RING = 0x5 2663 TUNSETDEBUG = 0x800454c9
2664 XDP_UMEM_PGOFF_COMPLETION_RING = 0x180000000 2664 TUNSETFILTEREBPF = 0x400454e1
2665 XDP_UMEM_PGOFF_FILL_RING = 0x100000000 2665 TUNSETGROUP = 0x800454ce
2666 XDP_UMEM_REG = 0x4 2666 TUNSETIFF = 0x800454ca
2667 XDP_ZEROCOPY = 0x4 2667 TUNSETIFINDEX = 0x800454da
2668 XENFS_SUPER_MAGIC = 0xabba1974 2668 TUNSETLINK = 0x800454cd
2669 XFS_SUPER_MAGIC = 0x58465342 2669 TUNSETNOCSUM = 0x800454c8
2670 XTABS = 0x1800 2670 TUNSETOFFLOAD = 0x800454d0
2671 ZSMALLOC_MAGIC = 0x58295829 2671 TUNSETOWNER = 0x800454cc
2672 TUNSETPERSIST = 0x800454cb
2673 TUNSETQUEUE = 0x800454d9
2674 TUNSETSNDBUF = 0x800454d4
2675 TUNSETSTEERINGEBPF = 0x400454e0
2676 TUNSETTXFILTER = 0x800454d1
2677 TUNSETVNETBE = 0x800454de
2678 TUNSETVNETHDRSZ = 0x800454d8
2679 TUNSETVNETLE = 0x800454dc
2680 UBI_IOCATT = 0x80186f40
2681 UBI_IOCDET = 0x80046f41
2682 UBI_IOCEBCH = 0x80044f02
2683 UBI_IOCEBER = 0x80044f01
2684 UBI_IOCEBISMAP = 0x40044f05
2685 UBI_IOCEBMAP = 0x80084f03
2686 UBI_IOCEBUNMAP = 0x80044f04
2687 UBI_IOCMKVOL = 0x80986f00
2688 UBI_IOCRMVOL = 0x80046f01
2689 UBI_IOCRNVOL = 0x91106f03
2690 UBI_IOCRPEB = 0x80046f04
2691 UBI_IOCRSVOL = 0x800c6f02
2692 UBI_IOCSETVOLPROP = 0x80104f06
2693 UBI_IOCSPEB = 0x80046f05
2694 UBI_IOCVOLCRBLK = 0x80804f07
2695 UBI_IOCVOLRMBLK = 0x20004f08
2696 UBI_IOCVOLUP = 0x80084f00
2697 UDF_SUPER_MAGIC = 0x15013346
2698 UMOUNT_NOFOLLOW = 0x8
2699 USBDEVICE_SUPER_MAGIC = 0x9fa2
2700 UTIME_NOW = 0x3fffffff
2701 UTIME_OMIT = 0x3ffffffe
2702 V9FS_MAGIC = 0x1021997
2703 VDISCARD = 0xd
2704 VEOF = 0x10
2705 VEOL = 0x11
2706 VEOL2 = 0x6
2707 VERASE = 0x2
2708 VINTR = 0x0
2709 VKILL = 0x3
2710 VLNEXT = 0xf
2711 VMADDR_CID_ANY = 0xffffffff
2712 VMADDR_CID_HOST = 0x2
2713 VMADDR_CID_HYPERVISOR = 0x0
2714 VMADDR_CID_RESERVED = 0x1
2715 VMADDR_PORT_ANY = 0xffffffff
2716 VMIN = 0x4
2717 VM_SOCKETS_INVALID_VERSION = 0xffffffff
2718 VQUIT = 0x1
2719 VREPRINT = 0xc
2720 VSTART = 0x8
2721 VSTOP = 0x9
2722 VSUSP = 0xa
2723 VSWTC = 0x7
2724 VSWTCH = 0x7
2725 VT0 = 0x0
2726 VT1 = 0x4000
2727 VTDLY = 0x4000
2728 VTIME = 0x5
2729 VWERASE = 0xe
2730 WALL = 0x40000000
2731 WCLONE = 0x80000000
2732 WCONTINUED = 0x8
2733 WDIOC_GETBOOTSTATUS = 0x40045702
2734 WDIOC_GETPRETIMEOUT = 0x40045709
2735 WDIOC_GETSTATUS = 0x40045701
2736 WDIOC_GETSUPPORT = 0x40285700
2737 WDIOC_GETTEMP = 0x40045703
2738 WDIOC_GETTIMELEFT = 0x4004570a
2739 WDIOC_GETTIMEOUT = 0x40045707
2740 WDIOC_KEEPALIVE = 0x40045705
2741 WDIOC_SETOPTIONS = 0x40045704
2742 WDIOC_SETPRETIMEOUT = 0xc0045708
2743 WDIOC_SETTIMEOUT = 0xc0045706
2744 WEXITED = 0x4
2745 WIN_ACKMEDIACHANGE = 0xdb
2746 WIN_CHECKPOWERMODE1 = 0xe5
2747 WIN_CHECKPOWERMODE2 = 0x98
2748 WIN_DEVICE_RESET = 0x8
2749 WIN_DIAGNOSE = 0x90
2750 WIN_DOORLOCK = 0xde
2751 WIN_DOORUNLOCK = 0xdf
2752 WIN_DOWNLOAD_MICROCODE = 0x92
2753 WIN_FLUSH_CACHE = 0xe7
2754 WIN_FLUSH_CACHE_EXT = 0xea
2755 WIN_FORMAT = 0x50
2756 WIN_GETMEDIASTATUS = 0xda
2757 WIN_IDENTIFY = 0xec
2758 WIN_IDENTIFY_DMA = 0xee
2759 WIN_IDLEIMMEDIATE = 0xe1
2760 WIN_INIT = 0x60
2761 WIN_MEDIAEJECT = 0xed
2762 WIN_MULTREAD = 0xc4
2763 WIN_MULTREAD_EXT = 0x29
2764 WIN_MULTWRITE = 0xc5
2765 WIN_MULTWRITE_EXT = 0x39
2766 WIN_NOP = 0x0
2767 WIN_PACKETCMD = 0xa0
2768 WIN_PIDENTIFY = 0xa1
2769 WIN_POSTBOOT = 0xdc
2770 WIN_PREBOOT = 0xdd
2771 WIN_QUEUED_SERVICE = 0xa2
2772 WIN_READ = 0x20
2773 WIN_READDMA = 0xc8
2774 WIN_READDMA_EXT = 0x25
2775 WIN_READDMA_ONCE = 0xc9
2776 WIN_READDMA_QUEUED = 0xc7
2777 WIN_READDMA_QUEUED_EXT = 0x26
2778 WIN_READ_BUFFER = 0xe4
2779 WIN_READ_EXT = 0x24
2780 WIN_READ_LONG = 0x22
2781 WIN_READ_LONG_ONCE = 0x23
2782 WIN_READ_NATIVE_MAX = 0xf8
2783 WIN_READ_NATIVE_MAX_EXT = 0x27
2784 WIN_READ_ONCE = 0x21
2785 WIN_RECAL = 0x10
2786 WIN_RESTORE = 0x10
2787 WIN_SECURITY_DISABLE = 0xf6
2788 WIN_SECURITY_ERASE_PREPARE = 0xf3
2789 WIN_SECURITY_ERASE_UNIT = 0xf4
2790 WIN_SECURITY_FREEZE_LOCK = 0xf5
2791 WIN_SECURITY_SET_PASS = 0xf1
2792 WIN_SECURITY_UNLOCK = 0xf2
2793 WIN_SEEK = 0x70
2794 WIN_SETFEATURES = 0xef
2795 WIN_SETIDLE1 = 0xe3
2796 WIN_SETIDLE2 = 0x97
2797 WIN_SETMULT = 0xc6
2798 WIN_SET_MAX = 0xf9
2799 WIN_SET_MAX_EXT = 0x37
2800 WIN_SLEEPNOW1 = 0xe6
2801 WIN_SLEEPNOW2 = 0x99
2802 WIN_SMART = 0xb0
2803 WIN_SPECIFY = 0x91
2804 WIN_SRST = 0x8
2805 WIN_STANDBY = 0xe2
2806 WIN_STANDBY2 = 0x96
2807 WIN_STANDBYNOW1 = 0xe0
2808 WIN_STANDBYNOW2 = 0x94
2809 WIN_VERIFY = 0x40
2810 WIN_VERIFY_EXT = 0x42
2811 WIN_VERIFY_ONCE = 0x41
2812 WIN_WRITE = 0x30
2813 WIN_WRITEDMA = 0xca
2814 WIN_WRITEDMA_EXT = 0x35
2815 WIN_WRITEDMA_ONCE = 0xcb
2816 WIN_WRITEDMA_QUEUED = 0xcc
2817 WIN_WRITEDMA_QUEUED_EXT = 0x36
2818 WIN_WRITE_BUFFER = 0xe8
2819 WIN_WRITE_EXT = 0x34
2820 WIN_WRITE_LONG = 0x32
2821 WIN_WRITE_LONG_ONCE = 0x33
2822 WIN_WRITE_ONCE = 0x31
2823 WIN_WRITE_SAME = 0xe9
2824 WIN_WRITE_VERIFY = 0x3c
2825 WNOHANG = 0x1
2826 WNOTHREAD = 0x20000000
2827 WNOWAIT = 0x1000000
2828 WORDSIZE = 0x40
2829 WSTOPPED = 0x2
2830 WUNTRACED = 0x2
2831 XATTR_CREATE = 0x1
2832 XATTR_REPLACE = 0x2
2833 XCASE = 0x4
2834 XDP_COPY = 0x2
2835 XDP_FLAGS_DRV_MODE = 0x4
2836 XDP_FLAGS_HW_MODE = 0x8
2837 XDP_FLAGS_MASK = 0xf
2838 XDP_FLAGS_MODES = 0xe
2839 XDP_FLAGS_SKB_MODE = 0x2
2840 XDP_FLAGS_UPDATE_IF_NOEXIST = 0x1
2841 XDP_MMAP_OFFSETS = 0x1
2842 XDP_OPTIONS = 0x8
2843 XDP_OPTIONS_ZEROCOPY = 0x1
2844 XDP_PACKET_HEADROOM = 0x100
2845 XDP_PGOFF_RX_RING = 0x0
2846 XDP_PGOFF_TX_RING = 0x80000000
2847 XDP_RING_NEED_WAKEUP = 0x1
2848 XDP_RX_RING = 0x2
2849 XDP_SHARED_UMEM = 0x1
2850 XDP_STATISTICS = 0x7
2851 XDP_TX_RING = 0x3
2852 XDP_UMEM_COMPLETION_RING = 0x6
2853 XDP_UMEM_FILL_RING = 0x5
2854 XDP_UMEM_PGOFF_COMPLETION_RING = 0x180000000
2855 XDP_UMEM_PGOFF_FILL_RING = 0x100000000
2856 XDP_UMEM_REG = 0x4
2857 XDP_UMEM_UNALIGNED_CHUNK_FLAG = 0x1
2858 XDP_USE_NEED_WAKEUP = 0x8
2859 XDP_ZEROCOPY = 0x4
2860 XENFS_SUPER_MAGIC = 0xabba1974
2861 XFS_SUPER_MAGIC = 0x58465342
2862 XTABS = 0x1800
2863 Z3FOLD_MAGIC = 0x33
2864 ZSMALLOC_MAGIC = 0x58295829
2672) 2865)
2673 2866
2674// Errors 2867// Errors
diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go b/vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go
index e8845a7..e1aa146 100644
--- a/vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go
+++ b/vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go
@@ -11,2664 +11,2857 @@ package unix
11import "syscall" 11import "syscall"
12 12
13const ( 13const (
14 AAFS_MAGIC = 0x5a3c69f0 14 AAFS_MAGIC = 0x5a3c69f0
15 ADFS_SUPER_MAGIC = 0xadf5 15 ADFS_SUPER_MAGIC = 0xadf5
16 AFFS_SUPER_MAGIC = 0xadff 16 AFFS_SUPER_MAGIC = 0xadff
17 AFS_FS_MAGIC = 0x6b414653 17 AFS_FS_MAGIC = 0x6b414653
18 AFS_SUPER_MAGIC = 0x5346414f 18 AFS_SUPER_MAGIC = 0x5346414f
19 AF_ALG = 0x26 19 AF_ALG = 0x26
20 AF_APPLETALK = 0x5 20 AF_APPLETALK = 0x5
21 AF_ASH = 0x12 21 AF_ASH = 0x12
22 AF_ATMPVC = 0x8 22 AF_ATMPVC = 0x8
23 AF_ATMSVC = 0x14 23 AF_ATMSVC = 0x14
24 AF_AX25 = 0x3 24 AF_AX25 = 0x3
25 AF_BLUETOOTH = 0x1f 25 AF_BLUETOOTH = 0x1f
26 AF_BRIDGE = 0x7 26 AF_BRIDGE = 0x7
27 AF_CAIF = 0x25 27 AF_CAIF = 0x25
28 AF_CAN = 0x1d 28 AF_CAN = 0x1d
29 AF_DECnet = 0xc 29 AF_DECnet = 0xc
30 AF_ECONET = 0x13 30 AF_ECONET = 0x13
31 AF_FILE = 0x1 31 AF_FILE = 0x1
32 AF_IB = 0x1b 32 AF_IB = 0x1b
33 AF_IEEE802154 = 0x24 33 AF_IEEE802154 = 0x24
34 AF_INET = 0x2 34 AF_INET = 0x2
35 AF_INET6 = 0xa 35 AF_INET6 = 0xa
36 AF_IPX = 0x4 36 AF_IPX = 0x4
37 AF_IRDA = 0x17 37 AF_IRDA = 0x17
38 AF_ISDN = 0x22 38 AF_ISDN = 0x22
39 AF_IUCV = 0x20 39 AF_IUCV = 0x20
40 AF_KCM = 0x29 40 AF_KCM = 0x29
41 AF_KEY = 0xf 41 AF_KEY = 0xf
42 AF_LLC = 0x1a 42 AF_LLC = 0x1a
43 AF_LOCAL = 0x1 43 AF_LOCAL = 0x1
44 AF_MAX = 0x2d 44 AF_MAX = 0x2d
45 AF_MPLS = 0x1c 45 AF_MPLS = 0x1c
46 AF_NETBEUI = 0xd 46 AF_NETBEUI = 0xd
47 AF_NETLINK = 0x10 47 AF_NETLINK = 0x10
48 AF_NETROM = 0x6 48 AF_NETROM = 0x6
49 AF_NFC = 0x27 49 AF_NFC = 0x27
50 AF_PACKET = 0x11 50 AF_PACKET = 0x11
51 AF_PHONET = 0x23 51 AF_PHONET = 0x23
52 AF_PPPOX = 0x18 52 AF_PPPOX = 0x18
53 AF_QIPCRTR = 0x2a 53 AF_QIPCRTR = 0x2a
54 AF_RDS = 0x15 54 AF_RDS = 0x15
55 AF_ROSE = 0xb 55 AF_ROSE = 0xb
56 AF_ROUTE = 0x10 56 AF_ROUTE = 0x10
57 AF_RXRPC = 0x21 57 AF_RXRPC = 0x21
58 AF_SECURITY = 0xe 58 AF_SECURITY = 0xe
59 AF_SMC = 0x2b 59 AF_SMC = 0x2b
60 AF_SNA = 0x16 60 AF_SNA = 0x16
61 AF_TIPC = 0x1e 61 AF_TIPC = 0x1e
62 AF_UNIX = 0x1 62 AF_UNIX = 0x1
63 AF_UNSPEC = 0x0 63 AF_UNSPEC = 0x0
64 AF_VSOCK = 0x28 64 AF_VSOCK = 0x28
65 AF_WANPIPE = 0x19 65 AF_WANPIPE = 0x19
66 AF_X25 = 0x9 66 AF_X25 = 0x9
67 AF_XDP = 0x2c 67 AF_XDP = 0x2c
68 ALG_OP_DECRYPT = 0x0 68 ALG_OP_DECRYPT = 0x0
69 ALG_OP_ENCRYPT = 0x1 69 ALG_OP_ENCRYPT = 0x1
70 ALG_SET_AEAD_ASSOCLEN = 0x4 70 ALG_SET_AEAD_ASSOCLEN = 0x4
71 ALG_SET_AEAD_AUTHSIZE = 0x5 71 ALG_SET_AEAD_AUTHSIZE = 0x5
72 ALG_SET_IV = 0x2 72 ALG_SET_IV = 0x2
73 ALG_SET_KEY = 0x1 73 ALG_SET_KEY = 0x1
74 ALG_SET_OP = 0x3 74 ALG_SET_OP = 0x3
75 ANON_INODE_FS_MAGIC = 0x9041934 75 ANON_INODE_FS_MAGIC = 0x9041934
76 ARPHRD_6LOWPAN = 0x339 76 ARPHRD_6LOWPAN = 0x339
77 ARPHRD_ADAPT = 0x108 77 ARPHRD_ADAPT = 0x108
78 ARPHRD_APPLETLK = 0x8 78 ARPHRD_APPLETLK = 0x8
79 ARPHRD_ARCNET = 0x7 79 ARPHRD_ARCNET = 0x7
80 ARPHRD_ASH = 0x30d 80 ARPHRD_ASH = 0x30d
81 ARPHRD_ATM = 0x13 81 ARPHRD_ATM = 0x13
82 ARPHRD_AX25 = 0x3 82 ARPHRD_AX25 = 0x3
83 ARPHRD_BIF = 0x307 83 ARPHRD_BIF = 0x307
84 ARPHRD_CAIF = 0x336 84 ARPHRD_CAIF = 0x336
85 ARPHRD_CAN = 0x118 85 ARPHRD_CAN = 0x118
86 ARPHRD_CHAOS = 0x5 86 ARPHRD_CHAOS = 0x5
87 ARPHRD_CISCO = 0x201 87 ARPHRD_CISCO = 0x201
88 ARPHRD_CSLIP = 0x101 88 ARPHRD_CSLIP = 0x101
89 ARPHRD_CSLIP6 = 0x103 89 ARPHRD_CSLIP6 = 0x103
90 ARPHRD_DDCMP = 0x205 90 ARPHRD_DDCMP = 0x205
91 ARPHRD_DLCI = 0xf 91 ARPHRD_DLCI = 0xf
92 ARPHRD_ECONET = 0x30e 92 ARPHRD_ECONET = 0x30e
93 ARPHRD_EETHER = 0x2 93 ARPHRD_EETHER = 0x2
94 ARPHRD_ETHER = 0x1 94 ARPHRD_ETHER = 0x1
95 ARPHRD_EUI64 = 0x1b 95 ARPHRD_EUI64 = 0x1b
96 ARPHRD_FCAL = 0x311 96 ARPHRD_FCAL = 0x311
97 ARPHRD_FCFABRIC = 0x313 97 ARPHRD_FCFABRIC = 0x313
98 ARPHRD_FCPL = 0x312 98 ARPHRD_FCPL = 0x312
99 ARPHRD_FCPP = 0x310 99 ARPHRD_FCPP = 0x310
100 ARPHRD_FDDI = 0x306 100 ARPHRD_FDDI = 0x306
101 ARPHRD_FRAD = 0x302 101 ARPHRD_FRAD = 0x302
102 ARPHRD_HDLC = 0x201 102 ARPHRD_HDLC = 0x201
103 ARPHRD_HIPPI = 0x30c 103 ARPHRD_HIPPI = 0x30c
104 ARPHRD_HWX25 = 0x110 104 ARPHRD_HWX25 = 0x110
105 ARPHRD_IEEE1394 = 0x18 105 ARPHRD_IEEE1394 = 0x18
106 ARPHRD_IEEE802 = 0x6 106 ARPHRD_IEEE802 = 0x6
107 ARPHRD_IEEE80211 = 0x321 107 ARPHRD_IEEE80211 = 0x321
108 ARPHRD_IEEE80211_PRISM = 0x322 108 ARPHRD_IEEE80211_PRISM = 0x322
109 ARPHRD_IEEE80211_RADIOTAP = 0x323 109 ARPHRD_IEEE80211_RADIOTAP = 0x323
110 ARPHRD_IEEE802154 = 0x324 110 ARPHRD_IEEE802154 = 0x324
111 ARPHRD_IEEE802154_MONITOR = 0x325 111 ARPHRD_IEEE802154_MONITOR = 0x325
112 ARPHRD_IEEE802_TR = 0x320 112 ARPHRD_IEEE802_TR = 0x320
113 ARPHRD_INFINIBAND = 0x20 113 ARPHRD_INFINIBAND = 0x20
114 ARPHRD_IP6GRE = 0x337 114 ARPHRD_IP6GRE = 0x337
115 ARPHRD_IPDDP = 0x309 115 ARPHRD_IPDDP = 0x309
116 ARPHRD_IPGRE = 0x30a 116 ARPHRD_IPGRE = 0x30a
117 ARPHRD_IRDA = 0x30f 117 ARPHRD_IRDA = 0x30f
118 ARPHRD_LAPB = 0x204 118 ARPHRD_LAPB = 0x204
119 ARPHRD_LOCALTLK = 0x305 119 ARPHRD_LOCALTLK = 0x305
120 ARPHRD_LOOPBACK = 0x304 120 ARPHRD_LOOPBACK = 0x304
121 ARPHRD_METRICOM = 0x17 121 ARPHRD_METRICOM = 0x17
122 ARPHRD_NETLINK = 0x338 122 ARPHRD_NETLINK = 0x338
123 ARPHRD_NETROM = 0x0 123 ARPHRD_NETROM = 0x0
124 ARPHRD_NONE = 0xfffe 124 ARPHRD_NONE = 0xfffe
125 ARPHRD_PHONET = 0x334 125 ARPHRD_PHONET = 0x334
126 ARPHRD_PHONET_PIPE = 0x335 126 ARPHRD_PHONET_PIPE = 0x335
127 ARPHRD_PIMREG = 0x30b 127 ARPHRD_PIMREG = 0x30b
128 ARPHRD_PPP = 0x200 128 ARPHRD_PPP = 0x200
129 ARPHRD_PRONET = 0x4 129 ARPHRD_PRONET = 0x4
130 ARPHRD_RAWHDLC = 0x206 130 ARPHRD_RAWHDLC = 0x206
131 ARPHRD_RAWIP = 0x207 131 ARPHRD_RAWIP = 0x207
132 ARPHRD_ROSE = 0x10e 132 ARPHRD_ROSE = 0x10e
133 ARPHRD_RSRVD = 0x104 133 ARPHRD_RSRVD = 0x104
134 ARPHRD_SIT = 0x308 134 ARPHRD_SIT = 0x308
135 ARPHRD_SKIP = 0x303 135 ARPHRD_SKIP = 0x303
136 ARPHRD_SLIP = 0x100 136 ARPHRD_SLIP = 0x100
137 ARPHRD_SLIP6 = 0x102 137 ARPHRD_SLIP6 = 0x102
138 ARPHRD_TUNNEL = 0x300 138 ARPHRD_TUNNEL = 0x300
139 ARPHRD_TUNNEL6 = 0x301 139 ARPHRD_TUNNEL6 = 0x301
140 ARPHRD_VOID = 0xffff 140 ARPHRD_VOID = 0xffff
141 ARPHRD_VSOCKMON = 0x33a 141 ARPHRD_VSOCKMON = 0x33a
142 ARPHRD_X25 = 0x10f 142 ARPHRD_X25 = 0x10f
143 AUTOFS_SUPER_MAGIC = 0x187 143 AUTOFS_SUPER_MAGIC = 0x187
144 B0 = 0x0 144 B0 = 0x0
145 B1000000 = 0x1008 145 B1000000 = 0x1008
146 B110 = 0x3 146 B110 = 0x3
147 B115200 = 0x1002 147 B115200 = 0x1002
148 B1152000 = 0x1009 148 B1152000 = 0x1009
149 B1200 = 0x9 149 B1200 = 0x9
150 B134 = 0x4 150 B134 = 0x4
151 B150 = 0x5 151 B150 = 0x5
152 B1500000 = 0x100a 152 B1500000 = 0x100a
153 B1800 = 0xa 153 B1800 = 0xa
154 B19200 = 0xe 154 B19200 = 0xe
155 B200 = 0x6 155 B200 = 0x6
156 B2000000 = 0x100b 156 B2000000 = 0x100b
157 B230400 = 0x1003 157 B230400 = 0x1003
158 B2400 = 0xb 158 B2400 = 0xb
159 B2500000 = 0x100c 159 B2500000 = 0x100c
160 B300 = 0x7 160 B300 = 0x7
161 B3000000 = 0x100d 161 B3000000 = 0x100d
162 B3500000 = 0x100e 162 B3500000 = 0x100e
163 B38400 = 0xf 163 B38400 = 0xf
164 B4000000 = 0x100f 164 B4000000 = 0x100f
165 B460800 = 0x1004 165 B460800 = 0x1004
166 B4800 = 0xc 166 B4800 = 0xc
167 B50 = 0x1 167 B50 = 0x1
168 B500000 = 0x1005 168 B500000 = 0x1005
169 B57600 = 0x1001 169 B57600 = 0x1001
170 B576000 = 0x1006 170 B576000 = 0x1006
171 B600 = 0x8 171 B600 = 0x8
172 B75 = 0x2 172 B75 = 0x2
173 B921600 = 0x1007 173 B921600 = 0x1007
174 B9600 = 0xd 174 B9600 = 0xd
175 BALLOON_KVM_MAGIC = 0x13661366 175 BALLOON_KVM_MAGIC = 0x13661366
176 BDEVFS_MAGIC = 0x62646576 176 BDEVFS_MAGIC = 0x62646576
177 BINDERFS_SUPER_MAGIC = 0x6c6f6f70 177 BINDERFS_SUPER_MAGIC = 0x6c6f6f70
178 BINFMTFS_MAGIC = 0x42494e4d 178 BINFMTFS_MAGIC = 0x42494e4d
179 BLKBSZGET = 0x40081270 179 BLKBSZGET = 0x40081270
180 BLKBSZSET = 0x80081271 180 BLKBSZSET = 0x80081271
181 BLKFLSBUF = 0x20001261 181 BLKFLSBUF = 0x20001261
182 BLKFRAGET = 0x20001265 182 BLKFRAGET = 0x20001265
183 BLKFRASET = 0x20001264 183 BLKFRASET = 0x20001264
184 BLKGETSIZE = 0x20001260 184 BLKGETSIZE = 0x20001260
185 BLKGETSIZE64 = 0x40081272 185 BLKGETSIZE64 = 0x40081272
186 BLKPBSZGET = 0x2000127b 186 BLKPBSZGET = 0x2000127b
187 BLKRAGET = 0x20001263 187 BLKRAGET = 0x20001263
188 BLKRASET = 0x20001262 188 BLKRASET = 0x20001262
189 BLKROGET = 0x2000125e 189 BLKROGET = 0x2000125e
190 BLKROSET = 0x2000125d 190 BLKROSET = 0x2000125d
191 BLKRRPART = 0x2000125f 191 BLKRRPART = 0x2000125f
192 BLKSECTGET = 0x20001267 192 BLKSECTGET = 0x20001267
193 BLKSECTSET = 0x20001266 193 BLKSECTSET = 0x20001266
194 BLKSSZGET = 0x20001268 194 BLKSSZGET = 0x20001268
195 BOTHER = 0x1000 195 BOTHER = 0x1000
196 BPF_A = 0x10 196 BPF_A = 0x10
197 BPF_ABS = 0x20 197 BPF_ABS = 0x20
198 BPF_ADD = 0x0 198 BPF_ADD = 0x0
199 BPF_ADJ_ROOM_ENCAP_L2_MASK = 0xff 199 BPF_ADJ_ROOM_ENCAP_L2_MASK = 0xff
200 BPF_ADJ_ROOM_ENCAP_L2_SHIFT = 0x38 200 BPF_ADJ_ROOM_ENCAP_L2_SHIFT = 0x38
201 BPF_ALU = 0x4 201 BPF_ALU = 0x4
202 BPF_ALU64 = 0x7 202 BPF_ALU64 = 0x7
203 BPF_AND = 0x50 203 BPF_AND = 0x50
204 BPF_ANY = 0x0 204 BPF_ANY = 0x0
205 BPF_ARSH = 0xc0 205 BPF_ARSH = 0xc0
206 BPF_B = 0x10 206 BPF_B = 0x10
207 BPF_BUILD_ID_SIZE = 0x14 207 BPF_BUILD_ID_SIZE = 0x14
208 BPF_CALL = 0x80 208 BPF_CALL = 0x80
209 BPF_DEVCG_ACC_MKNOD = 0x1 209 BPF_DEVCG_ACC_MKNOD = 0x1
210 BPF_DEVCG_ACC_READ = 0x2 210 BPF_DEVCG_ACC_READ = 0x2
211 BPF_DEVCG_ACC_WRITE = 0x4 211 BPF_DEVCG_ACC_WRITE = 0x4
212 BPF_DEVCG_DEV_BLOCK = 0x1 212 BPF_DEVCG_DEV_BLOCK = 0x1
213 BPF_DEVCG_DEV_CHAR = 0x2 213 BPF_DEVCG_DEV_CHAR = 0x2
214 BPF_DIV = 0x30 214 BPF_DIV = 0x30
215 BPF_DW = 0x18 215 BPF_DW = 0x18
216 BPF_END = 0xd0 216 BPF_END = 0xd0
217 BPF_EXIST = 0x2 217 BPF_EXIST = 0x2
218 BPF_EXIT = 0x90 218 BPF_EXIT = 0x90
219 BPF_FROM_BE = 0x8 219 BPF_FLOW_DISSECTOR_F_PARSE_1ST_FRAG = 0x1
220 BPF_FROM_LE = 0x0 220 BPF_FLOW_DISSECTOR_F_STOP_AT_ENCAP = 0x4
221 BPF_FS_MAGIC = 0xcafe4a11 221 BPF_FLOW_DISSECTOR_F_STOP_AT_FLOW_LABEL = 0x2
222 BPF_F_ADJ_ROOM_ENCAP_L3_IPV4 = 0x2 222 BPF_FROM_BE = 0x8
223 BPF_F_ADJ_ROOM_ENCAP_L3_IPV6 = 0x4 223 BPF_FROM_LE = 0x0
224 BPF_F_ADJ_ROOM_ENCAP_L4_GRE = 0x8 224 BPF_FS_MAGIC = 0xcafe4a11
225 BPF_F_ADJ_ROOM_ENCAP_L4_UDP = 0x10 225 BPF_F_ADJ_ROOM_ENCAP_L3_IPV4 = 0x2
226 BPF_F_ADJ_ROOM_FIXED_GSO = 0x1 226 BPF_F_ADJ_ROOM_ENCAP_L3_IPV6 = 0x4
227 BPF_F_ALLOW_MULTI = 0x2 227 BPF_F_ADJ_ROOM_ENCAP_L4_GRE = 0x8
228 BPF_F_ALLOW_OVERRIDE = 0x1 228 BPF_F_ADJ_ROOM_ENCAP_L4_UDP = 0x10
229 BPF_F_ANY_ALIGNMENT = 0x2 229 BPF_F_ADJ_ROOM_FIXED_GSO = 0x1
230 BPF_F_CTXLEN_MASK = 0xfffff00000000 230 BPF_F_ALLOW_MULTI = 0x2
231 BPF_F_CURRENT_CPU = 0xffffffff 231 BPF_F_ALLOW_OVERRIDE = 0x1
232 BPF_F_CURRENT_NETNS = -0x1 232 BPF_F_ANY_ALIGNMENT = 0x2
233 BPF_F_DONT_FRAGMENT = 0x4 233 BPF_F_CLONE = 0x200
234 BPF_F_FAST_STACK_CMP = 0x200 234 BPF_F_CTXLEN_MASK = 0xfffff00000000
235 BPF_F_HDR_FIELD_MASK = 0xf 235 BPF_F_CURRENT_CPU = 0xffffffff
236 BPF_F_INDEX_MASK = 0xffffffff 236 BPF_F_CURRENT_NETNS = -0x1
237 BPF_F_INGRESS = 0x1 237 BPF_F_DONT_FRAGMENT = 0x4
238 BPF_F_INVALIDATE_HASH = 0x2 238 BPF_F_FAST_STACK_CMP = 0x200
239 BPF_F_LOCK = 0x4 239 BPF_F_HDR_FIELD_MASK = 0xf
240 BPF_F_MARK_ENFORCE = 0x40 240 BPF_F_INDEX_MASK = 0xffffffff
241 BPF_F_MARK_MANGLED_0 = 0x20 241 BPF_F_INGRESS = 0x1
242 BPF_F_NO_COMMON_LRU = 0x2 242 BPF_F_INVALIDATE_HASH = 0x2
243 BPF_F_NO_PREALLOC = 0x1 243 BPF_F_LOCK = 0x4
244 BPF_F_NUMA_NODE = 0x4 244 BPF_F_MARK_ENFORCE = 0x40
245 BPF_F_PSEUDO_HDR = 0x10 245 BPF_F_MARK_MANGLED_0 = 0x20
246 BPF_F_QUERY_EFFECTIVE = 0x1 246 BPF_F_MMAPABLE = 0x400
247 BPF_F_RDONLY = 0x8 247 BPF_F_NO_COMMON_LRU = 0x2
248 BPF_F_RDONLY_PROG = 0x80 248 BPF_F_NO_PREALLOC = 0x1
249 BPF_F_RECOMPUTE_CSUM = 0x1 249 BPF_F_NUMA_NODE = 0x4
250 BPF_F_REUSE_STACKID = 0x400 250 BPF_F_PSEUDO_HDR = 0x10
251 BPF_F_SEQ_NUMBER = 0x8 251 BPF_F_QUERY_EFFECTIVE = 0x1
252 BPF_F_SKIP_FIELD_MASK = 0xff 252 BPF_F_RDONLY = 0x8
253 BPF_F_STACK_BUILD_ID = 0x20 253 BPF_F_RDONLY_PROG = 0x80
254 BPF_F_STRICT_ALIGNMENT = 0x1 254 BPF_F_RECOMPUTE_CSUM = 0x1
255 BPF_F_SYSCTL_BASE_NAME = 0x1 255 BPF_F_REUSE_STACKID = 0x400
256 BPF_F_TUNINFO_IPV6 = 0x1 256 BPF_F_SEQ_NUMBER = 0x8
257 BPF_F_USER_BUILD_ID = 0x800 257 BPF_F_SKIP_FIELD_MASK = 0xff
258 BPF_F_USER_STACK = 0x100 258 BPF_F_STACK_BUILD_ID = 0x20
259 BPF_F_WRONLY = 0x10 259 BPF_F_STRICT_ALIGNMENT = 0x1
260 BPF_F_WRONLY_PROG = 0x100 260 BPF_F_SYSCTL_BASE_NAME = 0x1
261 BPF_F_ZERO_CSUM_TX = 0x2 261 BPF_F_TEST_RND_HI32 = 0x4
262 BPF_F_ZERO_SEED = 0x40 262 BPF_F_TEST_STATE_FREQ = 0x8
263 BPF_H = 0x8 263 BPF_F_TUNINFO_IPV6 = 0x1
264 BPF_IMM = 0x0 264 BPF_F_USER_BUILD_ID = 0x800
265 BPF_IND = 0x40 265 BPF_F_USER_STACK = 0x100
266 BPF_JA = 0x0 266 BPF_F_WRONLY = 0x10
267 BPF_JEQ = 0x10 267 BPF_F_WRONLY_PROG = 0x100
268 BPF_JGE = 0x30 268 BPF_F_ZERO_CSUM_TX = 0x2
269 BPF_JGT = 0x20 269 BPF_F_ZERO_SEED = 0x40
270 BPF_JLE = 0xb0 270 BPF_H = 0x8
271 BPF_JLT = 0xa0 271 BPF_IMM = 0x0
272 BPF_JMP = 0x5 272 BPF_IND = 0x40
273 BPF_JMP32 = 0x6 273 BPF_JA = 0x0
274 BPF_JNE = 0x50 274 BPF_JEQ = 0x10
275 BPF_JSET = 0x40 275 BPF_JGE = 0x30
276 BPF_JSGE = 0x70 276 BPF_JGT = 0x20
277 BPF_JSGT = 0x60 277 BPF_JLE = 0xb0
278 BPF_JSLE = 0xd0 278 BPF_JLT = 0xa0
279 BPF_JSLT = 0xc0 279 BPF_JMP = 0x5
280 BPF_K = 0x0 280 BPF_JMP32 = 0x6
281 BPF_LD = 0x0 281 BPF_JNE = 0x50
282 BPF_LDX = 0x1 282 BPF_JSET = 0x40
283 BPF_LEN = 0x80 283 BPF_JSGE = 0x70
284 BPF_LL_OFF = -0x200000 284 BPF_JSGT = 0x60
285 BPF_LSH = 0x60 285 BPF_JSLE = 0xd0
286 BPF_MAJOR_VERSION = 0x1 286 BPF_JSLT = 0xc0
287 BPF_MAXINSNS = 0x1000 287 BPF_K = 0x0
288 BPF_MEM = 0x60 288 BPF_LD = 0x0
289 BPF_MEMWORDS = 0x10 289 BPF_LDX = 0x1
290 BPF_MINOR_VERSION = 0x1 290 BPF_LEN = 0x80
291 BPF_MISC = 0x7 291 BPF_LL_OFF = -0x200000
292 BPF_MOD = 0x90 292 BPF_LSH = 0x60
293 BPF_MOV = 0xb0 293 BPF_MAJOR_VERSION = 0x1
294 BPF_MSH = 0xa0 294 BPF_MAXINSNS = 0x1000
295 BPF_MUL = 0x20 295 BPF_MEM = 0x60
296 BPF_NEG = 0x80 296 BPF_MEMWORDS = 0x10
297 BPF_NET_OFF = -0x100000 297 BPF_MINOR_VERSION = 0x1
298 BPF_NOEXIST = 0x1 298 BPF_MISC = 0x7
299 BPF_OBJ_NAME_LEN = 0x10 299 BPF_MOD = 0x90
300 BPF_OR = 0x40 300 BPF_MOV = 0xb0
301 BPF_PSEUDO_CALL = 0x1 301 BPF_MSH = 0xa0
302 BPF_PSEUDO_MAP_FD = 0x1 302 BPF_MUL = 0x20
303 BPF_PSEUDO_MAP_VALUE = 0x2 303 BPF_NEG = 0x80
304 BPF_RET = 0x6 304 BPF_NET_OFF = -0x100000
305 BPF_RSH = 0x70 305 BPF_NOEXIST = 0x1
306 BPF_SK_STORAGE_GET_F_CREATE = 0x1 306 BPF_OBJ_NAME_LEN = 0x10
307 BPF_SOCK_OPS_ALL_CB_FLAGS = 0x7 307 BPF_OR = 0x40
308 BPF_SOCK_OPS_RETRANS_CB_FLAG = 0x2 308 BPF_PSEUDO_CALL = 0x1
309 BPF_SOCK_OPS_RTO_CB_FLAG = 0x1 309 BPF_PSEUDO_MAP_FD = 0x1
310 BPF_SOCK_OPS_STATE_CB_FLAG = 0x4 310 BPF_PSEUDO_MAP_VALUE = 0x2
311 BPF_ST = 0x2 311 BPF_RET = 0x6
312 BPF_STX = 0x3 312 BPF_RSH = 0x70
313 BPF_SUB = 0x10 313 BPF_SK_STORAGE_GET_F_CREATE = 0x1
314 BPF_TAG_SIZE = 0x8 314 BPF_SOCK_OPS_ALL_CB_FLAGS = 0xf
315 BPF_TAX = 0x0 315 BPF_SOCK_OPS_RETRANS_CB_FLAG = 0x2
316 BPF_TO_BE = 0x8 316 BPF_SOCK_OPS_RTO_CB_FLAG = 0x1
317 BPF_TO_LE = 0x0 317 BPF_SOCK_OPS_RTT_CB_FLAG = 0x8
318 BPF_TXA = 0x80 318 BPF_SOCK_OPS_STATE_CB_FLAG = 0x4
319 BPF_W = 0x0 319 BPF_ST = 0x2
320 BPF_X = 0x8 320 BPF_STX = 0x3
321 BPF_XADD = 0xc0 321 BPF_SUB = 0x10
322 BPF_XOR = 0xa0 322 BPF_TAG_SIZE = 0x8
323 BRKINT = 0x2 323 BPF_TAX = 0x0
324 BS0 = 0x0 324 BPF_TO_BE = 0x8
325 BS1 = 0x2000 325 BPF_TO_LE = 0x0
326 BSDLY = 0x2000 326 BPF_TXA = 0x80
327 BTRFS_SUPER_MAGIC = 0x9123683e 327 BPF_W = 0x0
328 BTRFS_TEST_MAGIC = 0x73727279 328 BPF_X = 0x8
329 CAN_BCM = 0x2 329 BPF_XADD = 0xc0
330 CAN_EFF_FLAG = 0x80000000 330 BPF_XOR = 0xa0
331 CAN_EFF_ID_BITS = 0x1d 331 BRKINT = 0x2
332 CAN_EFF_MASK = 0x1fffffff 332 BS0 = 0x0
333 CAN_ERR_FLAG = 0x20000000 333 BS1 = 0x2000
334 CAN_ERR_MASK = 0x1fffffff 334 BSDLY = 0x2000
335 CAN_INV_FILTER = 0x20000000 335 BTRFS_SUPER_MAGIC = 0x9123683e
336 CAN_ISOTP = 0x6 336 BTRFS_TEST_MAGIC = 0x73727279
337 CAN_MAX_DLC = 0x8 337 CAN_BCM = 0x2
338 CAN_MAX_DLEN = 0x8 338 CAN_EFF_FLAG = 0x80000000
339 CAN_MCNET = 0x5 339 CAN_EFF_ID_BITS = 0x1d
340 CAN_MTU = 0x10 340 CAN_EFF_MASK = 0x1fffffff
341 CAN_NPROTO = 0x7 341 CAN_ERR_FLAG = 0x20000000
342 CAN_RAW = 0x1 342 CAN_ERR_MASK = 0x1fffffff
343 CAN_RAW_FILTER_MAX = 0x200 343 CAN_INV_FILTER = 0x20000000
344 CAN_RTR_FLAG = 0x40000000 344 CAN_ISOTP = 0x6
345 CAN_SFF_ID_BITS = 0xb 345 CAN_J1939 = 0x7
346 CAN_SFF_MASK = 0x7ff 346 CAN_MAX_DLC = 0x8
347 CAN_TP16 = 0x3 347 CAN_MAX_DLEN = 0x8
348 CAN_TP20 = 0x4 348 CAN_MCNET = 0x5
349 CAP_AUDIT_CONTROL = 0x1e 349 CAN_MTU = 0x10
350 CAP_AUDIT_READ = 0x25 350 CAN_NPROTO = 0x8
351 CAP_AUDIT_WRITE = 0x1d 351 CAN_RAW = 0x1
352 CAP_BLOCK_SUSPEND = 0x24 352 CAN_RAW_FILTER_MAX = 0x200
353 CAP_CHOWN = 0x0 353 CAN_RTR_FLAG = 0x40000000
354 CAP_DAC_OVERRIDE = 0x1 354 CAN_SFF_ID_BITS = 0xb
355 CAP_DAC_READ_SEARCH = 0x2 355 CAN_SFF_MASK = 0x7ff
356 CAP_FOWNER = 0x3 356 CAN_TP16 = 0x3
357 CAP_FSETID = 0x4 357 CAN_TP20 = 0x4
358 CAP_IPC_LOCK = 0xe 358 CAP_AUDIT_CONTROL = 0x1e
359 CAP_IPC_OWNER = 0xf 359 CAP_AUDIT_READ = 0x25
360 CAP_KILL = 0x5 360 CAP_AUDIT_WRITE = 0x1d
361 CAP_LAST_CAP = 0x25 361 CAP_BLOCK_SUSPEND = 0x24
362 CAP_LEASE = 0x1c 362 CAP_CHOWN = 0x0
363 CAP_LINUX_IMMUTABLE = 0x9 363 CAP_DAC_OVERRIDE = 0x1
364 CAP_MAC_ADMIN = 0x21 364 CAP_DAC_READ_SEARCH = 0x2
365 CAP_MAC_OVERRIDE = 0x20 365 CAP_FOWNER = 0x3
366 CAP_MKNOD = 0x1b 366 CAP_FSETID = 0x4
367 CAP_NET_ADMIN = 0xc 367 CAP_IPC_LOCK = 0xe
368 CAP_NET_BIND_SERVICE = 0xa 368 CAP_IPC_OWNER = 0xf
369 CAP_NET_BROADCAST = 0xb 369 CAP_KILL = 0x5
370 CAP_NET_RAW = 0xd 370 CAP_LAST_CAP = 0x25
371 CAP_SETFCAP = 0x1f 371 CAP_LEASE = 0x1c
372 CAP_SETGID = 0x6 372 CAP_LINUX_IMMUTABLE = 0x9
373 CAP_SETPCAP = 0x8 373 CAP_MAC_ADMIN = 0x21
374 CAP_SETUID = 0x7 374 CAP_MAC_OVERRIDE = 0x20
375 CAP_SYSLOG = 0x22 375 CAP_MKNOD = 0x1b
376 CAP_SYS_ADMIN = 0x15 376 CAP_NET_ADMIN = 0xc
377 CAP_SYS_BOOT = 0x16 377 CAP_NET_BIND_SERVICE = 0xa
378 CAP_SYS_CHROOT = 0x12 378 CAP_NET_BROADCAST = 0xb
379 CAP_SYS_MODULE = 0x10 379 CAP_NET_RAW = 0xd
380 CAP_SYS_NICE = 0x17 380 CAP_SETFCAP = 0x1f
381 CAP_SYS_PACCT = 0x14 381 CAP_SETGID = 0x6
382 CAP_SYS_PTRACE = 0x13 382 CAP_SETPCAP = 0x8
383 CAP_SYS_RAWIO = 0x11 383 CAP_SETUID = 0x7
384 CAP_SYS_RESOURCE = 0x18 384 CAP_SYSLOG = 0x22
385 CAP_SYS_TIME = 0x19 385 CAP_SYS_ADMIN = 0x15
386 CAP_SYS_TTY_CONFIG = 0x1a 386 CAP_SYS_BOOT = 0x16
387 CAP_WAKE_ALARM = 0x23 387 CAP_SYS_CHROOT = 0x12
388 CBAUD = 0x100f 388 CAP_SYS_MODULE = 0x10
389 CBAUDEX = 0x1000 389 CAP_SYS_NICE = 0x17
390 CFLUSH = 0xf 390 CAP_SYS_PACCT = 0x14
391 CGROUP2_SUPER_MAGIC = 0x63677270 391 CAP_SYS_PTRACE = 0x13
392 CGROUP_SUPER_MAGIC = 0x27e0eb 392 CAP_SYS_RAWIO = 0x11
393 CIBAUD = 0x100f0000 393 CAP_SYS_RESOURCE = 0x18
394 CLOCAL = 0x800 394 CAP_SYS_TIME = 0x19
395 CLOCK_BOOTTIME = 0x7 395 CAP_SYS_TTY_CONFIG = 0x1a
396 CLOCK_BOOTTIME_ALARM = 0x9 396 CAP_WAKE_ALARM = 0x23
397 CLOCK_DEFAULT = 0x0 397 CBAUD = 0x100f
398 CLOCK_EXT = 0x1 398 CBAUDEX = 0x1000
399 CLOCK_INT = 0x2 399 CFLUSH = 0xf
400 CLOCK_MONOTONIC = 0x1 400 CGROUP2_SUPER_MAGIC = 0x63677270
401 CLOCK_MONOTONIC_COARSE = 0x6 401 CGROUP_SUPER_MAGIC = 0x27e0eb
402 CLOCK_MONOTONIC_RAW = 0x4 402 CIBAUD = 0x100f0000
403 CLOCK_PROCESS_CPUTIME_ID = 0x2 403 CLOCAL = 0x800
404 CLOCK_REALTIME = 0x0 404 CLOCK_BOOTTIME = 0x7
405 CLOCK_REALTIME_ALARM = 0x8 405 CLOCK_BOOTTIME_ALARM = 0x9
406 CLOCK_REALTIME_COARSE = 0x5 406 CLOCK_DEFAULT = 0x0
407 CLOCK_TAI = 0xb 407 CLOCK_EXT = 0x1
408 CLOCK_THREAD_CPUTIME_ID = 0x3 408 CLOCK_INT = 0x2
409 CLOCK_TXFROMRX = 0x4 409 CLOCK_MONOTONIC = 0x1
410 CLOCK_TXINT = 0x3 410 CLOCK_MONOTONIC_COARSE = 0x6
411 CLONE_CHILD_CLEARTID = 0x200000 411 CLOCK_MONOTONIC_RAW = 0x4
412 CLONE_CHILD_SETTID = 0x1000000 412 CLOCK_PROCESS_CPUTIME_ID = 0x2
413 CLONE_DETACHED = 0x400000 413 CLOCK_REALTIME = 0x0
414 CLONE_FILES = 0x400 414 CLOCK_REALTIME_ALARM = 0x8
415 CLONE_FS = 0x200 415 CLOCK_REALTIME_COARSE = 0x5
416 CLONE_IO = 0x80000000 416 CLOCK_TAI = 0xb
417 CLONE_NEWCGROUP = 0x2000000 417 CLOCK_THREAD_CPUTIME_ID = 0x3
418 CLONE_NEWIPC = 0x8000000 418 CLOCK_TXFROMRX = 0x4
419 CLONE_NEWNET = 0x40000000 419 CLOCK_TXINT = 0x3
420 CLONE_NEWNS = 0x20000 420 CLONE_ARGS_SIZE_VER0 = 0x40
421 CLONE_NEWPID = 0x20000000 421 CLONE_ARGS_SIZE_VER1 = 0x50
422 CLONE_NEWUSER = 0x10000000 422 CLONE_CHILD_CLEARTID = 0x200000
423 CLONE_NEWUTS = 0x4000000 423 CLONE_CHILD_SETTID = 0x1000000
424 CLONE_PARENT = 0x8000 424 CLONE_CLEAR_SIGHAND = 0x100000000
425 CLONE_PARENT_SETTID = 0x100000 425 CLONE_DETACHED = 0x400000
426 CLONE_PIDFD = 0x1000 426 CLONE_FILES = 0x400
427 CLONE_PTRACE = 0x2000 427 CLONE_FS = 0x200
428 CLONE_SETTLS = 0x80000 428 CLONE_IO = 0x80000000
429 CLONE_SIGHAND = 0x800 429 CLONE_NEWCGROUP = 0x2000000
430 CLONE_SYSVSEM = 0x40000 430 CLONE_NEWIPC = 0x8000000
431 CLONE_THREAD = 0x10000 431 CLONE_NEWNET = 0x40000000
432 CLONE_UNTRACED = 0x800000 432 CLONE_NEWNS = 0x20000
433 CLONE_VFORK = 0x4000 433 CLONE_NEWPID = 0x20000000
434 CLONE_VM = 0x100 434 CLONE_NEWUSER = 0x10000000
435 CMSPAR = 0x40000000 435 CLONE_NEWUTS = 0x4000000
436 CODA_SUPER_MAGIC = 0x73757245 436 CLONE_PARENT = 0x8000
437 CR0 = 0x0 437 CLONE_PARENT_SETTID = 0x100000
438 CR1 = 0x200 438 CLONE_PIDFD = 0x1000
439 CR2 = 0x400 439 CLONE_PTRACE = 0x2000
440 CR3 = 0x600 440 CLONE_SETTLS = 0x80000
441 CRAMFS_MAGIC = 0x28cd3d45 441 CLONE_SIGHAND = 0x800
442 CRDLY = 0x600 442 CLONE_SYSVSEM = 0x40000
443 CREAD = 0x80 443 CLONE_THREAD = 0x10000
444 CRTSCTS = 0x80000000 444 CLONE_UNTRACED = 0x800000
445 CRYPTO_MAX_NAME = 0x40 445 CLONE_VFORK = 0x4000
446 CRYPTO_MSG_MAX = 0x15 446 CLONE_VM = 0x100
447 CRYPTO_NR_MSGTYPES = 0x6 447 CMSPAR = 0x40000000
448 CRYPTO_REPORT_MAXSIZE = 0x160 448 CODA_SUPER_MAGIC = 0x73757245
449 CS5 = 0x0 449 CR0 = 0x0
450 CS6 = 0x10 450 CR1 = 0x200
451 CS7 = 0x20 451 CR2 = 0x400
452 CS8 = 0x30 452 CR3 = 0x600
453 CSIGNAL = 0xff 453 CRAMFS_MAGIC = 0x28cd3d45
454 CSIZE = 0x30 454 CRDLY = 0x600
455 CSTART = 0x11 455 CREAD = 0x80
456 CSTATUS = 0x0 456 CRTSCTS = 0x80000000
457 CSTOP = 0x13 457 CRYPTO_MAX_NAME = 0x40
458 CSTOPB = 0x40 458 CRYPTO_MSG_MAX = 0x15
459 CSUSP = 0x1a 459 CRYPTO_NR_MSGTYPES = 0x6
460 DAXFS_MAGIC = 0x64646178 460 CRYPTO_REPORT_MAXSIZE = 0x160
461 DEBUGFS_MAGIC = 0x64626720 461 CS5 = 0x0
462 DEVPTS_SUPER_MAGIC = 0x1cd1 462 CS6 = 0x10
463 DT_BLK = 0x6 463 CS7 = 0x20
464 DT_CHR = 0x2 464 CS8 = 0x30
465 DT_DIR = 0x4 465 CSIGNAL = 0xff
466 DT_FIFO = 0x1 466 CSIZE = 0x30
467 DT_LNK = 0xa 467 CSTART = 0x11
468 DT_REG = 0x8 468 CSTATUS = 0x0
469 DT_SOCK = 0xc 469 CSTOP = 0x13
470 DT_UNKNOWN = 0x0 470 CSTOPB = 0x40
471 DT_WHT = 0xe 471 CSUSP = 0x1a
472 ECHO = 0x8 472 DAXFS_MAGIC = 0x64646178
473 ECHOCTL = 0x200 473 DEBUGFS_MAGIC = 0x64626720
474 ECHOE = 0x10 474 DEVLINK_CMD_ESWITCH_MODE_GET = 0x1d
475 ECHOK = 0x20 475 DEVLINK_CMD_ESWITCH_MODE_SET = 0x1e
476 ECHOKE = 0x800 476 DEVLINK_GENL_MCGRP_CONFIG_NAME = "config"
477 ECHONL = 0x40 477 DEVLINK_GENL_NAME = "devlink"
478 ECHOPRT = 0x400 478 DEVLINK_GENL_VERSION = 0x1
479 ECRYPTFS_SUPER_MAGIC = 0xf15f 479 DEVLINK_SB_THRESHOLD_TO_ALPHA_MAX = 0x14
480 EFD_CLOEXEC = 0x80000 480 DEVPTS_SUPER_MAGIC = 0x1cd1
481 EFD_NONBLOCK = 0x80 481 DMA_BUF_MAGIC = 0x444d4142
482 EFD_SEMAPHORE = 0x1 482 DT_BLK = 0x6
483 EFIVARFS_MAGIC = 0xde5e81e4 483 DT_CHR = 0x2
484 EFS_SUPER_MAGIC = 0x414a53 484 DT_DIR = 0x4
485 ENCODING_DEFAULT = 0x0 485 DT_FIFO = 0x1
486 ENCODING_FM_MARK = 0x3 486 DT_LNK = 0xa
487 ENCODING_FM_SPACE = 0x4 487 DT_REG = 0x8
488 ENCODING_MANCHESTER = 0x5 488 DT_SOCK = 0xc
489 ENCODING_NRZ = 0x1 489 DT_UNKNOWN = 0x0
490 ENCODING_NRZI = 0x2 490 DT_WHT = 0xe
491 EPOLLERR = 0x8 491 ECHO = 0x8
492 EPOLLET = 0x80000000 492 ECHOCTL = 0x200
493 EPOLLEXCLUSIVE = 0x10000000 493 ECHOE = 0x10
494 EPOLLHUP = 0x10 494 ECHOK = 0x20
495 EPOLLIN = 0x1 495 ECHOKE = 0x800
496 EPOLLMSG = 0x400 496 ECHONL = 0x40
497 EPOLLONESHOT = 0x40000000 497 ECHOPRT = 0x400
498 EPOLLOUT = 0x4 498 ECRYPTFS_SUPER_MAGIC = 0xf15f
499 EPOLLPRI = 0x2 499 EFD_CLOEXEC = 0x80000
500 EPOLLRDBAND = 0x80 500 EFD_NONBLOCK = 0x80
501 EPOLLRDHUP = 0x2000 501 EFD_SEMAPHORE = 0x1
502 EPOLLRDNORM = 0x40 502 EFIVARFS_MAGIC = 0xde5e81e4
503 EPOLLWAKEUP = 0x20000000 503 EFS_SUPER_MAGIC = 0x414a53
504 EPOLLWRBAND = 0x200 504 ENCODING_DEFAULT = 0x0
505 EPOLLWRNORM = 0x100 505 ENCODING_FM_MARK = 0x3
506 EPOLL_CLOEXEC = 0x80000 506 ENCODING_FM_SPACE = 0x4
507 EPOLL_CTL_ADD = 0x1 507 ENCODING_MANCHESTER = 0x5
508 EPOLL_CTL_DEL = 0x2 508 ENCODING_NRZ = 0x1
509 EPOLL_CTL_MOD = 0x3 509 ENCODING_NRZI = 0x2
510 ETH_P_1588 = 0x88f7 510 EPOLLERR = 0x8
511 ETH_P_8021AD = 0x88a8 511 EPOLLET = 0x80000000
512 ETH_P_8021AH = 0x88e7 512 EPOLLEXCLUSIVE = 0x10000000
513 ETH_P_8021Q = 0x8100 513 EPOLLHUP = 0x10
514 ETH_P_80221 = 0x8917 514 EPOLLIN = 0x1
515 ETH_P_802_2 = 0x4 515 EPOLLMSG = 0x400
516 ETH_P_802_3 = 0x1 516 EPOLLONESHOT = 0x40000000
517 ETH_P_802_3_MIN = 0x600 517 EPOLLOUT = 0x4
518 ETH_P_802_EX1 = 0x88b5 518 EPOLLPRI = 0x2
519 ETH_P_AARP = 0x80f3 519 EPOLLRDBAND = 0x80
520 ETH_P_AF_IUCV = 0xfbfb 520 EPOLLRDHUP = 0x2000
521 ETH_P_ALL = 0x3 521 EPOLLRDNORM = 0x40
522 ETH_P_AOE = 0x88a2 522 EPOLLWAKEUP = 0x20000000
523 ETH_P_ARCNET = 0x1a 523 EPOLLWRBAND = 0x200
524 ETH_P_ARP = 0x806 524 EPOLLWRNORM = 0x100
525 ETH_P_ATALK = 0x809b 525 EPOLL_CLOEXEC = 0x80000
526 ETH_P_ATMFATE = 0x8884 526 EPOLL_CTL_ADD = 0x1
527 ETH_P_ATMMPOA = 0x884c 527 EPOLL_CTL_DEL = 0x2
528 ETH_P_AX25 = 0x2 528 EPOLL_CTL_MOD = 0x3
529 ETH_P_BATMAN = 0x4305 529 EROFS_SUPER_MAGIC_V1 = 0xe0f5e1e2
530 ETH_P_BPQ = 0x8ff 530 ETH_P_1588 = 0x88f7
531 ETH_P_CAIF = 0xf7 531 ETH_P_8021AD = 0x88a8
532 ETH_P_CAN = 0xc 532 ETH_P_8021AH = 0x88e7
533 ETH_P_CANFD = 0xd 533 ETH_P_8021Q = 0x8100
534 ETH_P_CONTROL = 0x16 534 ETH_P_80221 = 0x8917
535 ETH_P_CUST = 0x6006 535 ETH_P_802_2 = 0x4
536 ETH_P_DDCMP = 0x6 536 ETH_P_802_3 = 0x1
537 ETH_P_DEC = 0x6000 537 ETH_P_802_3_MIN = 0x600
538 ETH_P_DIAG = 0x6005 538 ETH_P_802_EX1 = 0x88b5
539 ETH_P_DNA_DL = 0x6001 539 ETH_P_AARP = 0x80f3
540 ETH_P_DNA_RC = 0x6002 540 ETH_P_AF_IUCV = 0xfbfb
541 ETH_P_DNA_RT = 0x6003 541 ETH_P_ALL = 0x3
542 ETH_P_DSA = 0x1b 542 ETH_P_AOE = 0x88a2
543 ETH_P_DSA_8021Q = 0xdadb 543 ETH_P_ARCNET = 0x1a
544 ETH_P_ECONET = 0x18 544 ETH_P_ARP = 0x806
545 ETH_P_EDSA = 0xdada 545 ETH_P_ATALK = 0x809b
546 ETH_P_ERSPAN = 0x88be 546 ETH_P_ATMFATE = 0x8884
547 ETH_P_ERSPAN2 = 0x22eb 547 ETH_P_ATMMPOA = 0x884c
548 ETH_P_FCOE = 0x8906 548 ETH_P_AX25 = 0x2
549 ETH_P_FIP = 0x8914 549 ETH_P_BATMAN = 0x4305
550 ETH_P_HDLC = 0x19 550 ETH_P_BPQ = 0x8ff
551 ETH_P_HSR = 0x892f 551 ETH_P_CAIF = 0xf7
552 ETH_P_IBOE = 0x8915 552 ETH_P_CAN = 0xc
553 ETH_P_IEEE802154 = 0xf6 553 ETH_P_CANFD = 0xd
554 ETH_P_IEEEPUP = 0xa00 554 ETH_P_CONTROL = 0x16
555 ETH_P_IEEEPUPAT = 0xa01 555 ETH_P_CUST = 0x6006
556 ETH_P_IFE = 0xed3e 556 ETH_P_DDCMP = 0x6
557 ETH_P_IP = 0x800 557 ETH_P_DEC = 0x6000
558 ETH_P_IPV6 = 0x86dd 558 ETH_P_DIAG = 0x6005
559 ETH_P_IPX = 0x8137 559 ETH_P_DNA_DL = 0x6001
560 ETH_P_IRDA = 0x17 560 ETH_P_DNA_RC = 0x6002
561 ETH_P_LAT = 0x6004 561 ETH_P_DNA_RT = 0x6003
562 ETH_P_LINK_CTL = 0x886c 562 ETH_P_DSA = 0x1b
563 ETH_P_LOCALTALK = 0x9 563 ETH_P_DSA_8021Q = 0xdadb
564 ETH_P_LOOP = 0x60 564 ETH_P_ECONET = 0x18
565 ETH_P_LOOPBACK = 0x9000 565 ETH_P_EDSA = 0xdada
566 ETH_P_MACSEC = 0x88e5 566 ETH_P_ERSPAN = 0x88be
567 ETH_P_MAP = 0xf9 567 ETH_P_ERSPAN2 = 0x22eb
568 ETH_P_MOBITEX = 0x15 568 ETH_P_FCOE = 0x8906
569 ETH_P_MPLS_MC = 0x8848 569 ETH_P_FIP = 0x8914
570 ETH_P_MPLS_UC = 0x8847 570 ETH_P_HDLC = 0x19
571 ETH_P_MVRP = 0x88f5 571 ETH_P_HSR = 0x892f
572 ETH_P_NCSI = 0x88f8 572 ETH_P_IBOE = 0x8915
573 ETH_P_NSH = 0x894f 573 ETH_P_IEEE802154 = 0xf6
574 ETH_P_PAE = 0x888e 574 ETH_P_IEEEPUP = 0xa00
575 ETH_P_PAUSE = 0x8808 575 ETH_P_IEEEPUPAT = 0xa01
576 ETH_P_PHONET = 0xf5 576 ETH_P_IFE = 0xed3e
577 ETH_P_PPPTALK = 0x10 577 ETH_P_IP = 0x800
578 ETH_P_PPP_DISC = 0x8863 578 ETH_P_IPV6 = 0x86dd
579 ETH_P_PPP_MP = 0x8 579 ETH_P_IPX = 0x8137
580 ETH_P_PPP_SES = 0x8864 580 ETH_P_IRDA = 0x17
581 ETH_P_PREAUTH = 0x88c7 581 ETH_P_LAT = 0x6004
582 ETH_P_PRP = 0x88fb 582 ETH_P_LINK_CTL = 0x886c
583 ETH_P_PUP = 0x200 583 ETH_P_LLDP = 0x88cc
584 ETH_P_PUPAT = 0x201 584 ETH_P_LOCALTALK = 0x9
585 ETH_P_QINQ1 = 0x9100 585 ETH_P_LOOP = 0x60
586 ETH_P_QINQ2 = 0x9200 586 ETH_P_LOOPBACK = 0x9000
587 ETH_P_QINQ3 = 0x9300 587 ETH_P_MACSEC = 0x88e5
588 ETH_P_RARP = 0x8035 588 ETH_P_MAP = 0xf9
589 ETH_P_SCA = 0x6007 589 ETH_P_MOBITEX = 0x15
590 ETH_P_SLOW = 0x8809 590 ETH_P_MPLS_MC = 0x8848
591 ETH_P_SNAP = 0x5 591 ETH_P_MPLS_UC = 0x8847
592 ETH_P_TDLS = 0x890d 592 ETH_P_MVRP = 0x88f5
593 ETH_P_TEB = 0x6558 593 ETH_P_NCSI = 0x88f8
594 ETH_P_TIPC = 0x88ca 594 ETH_P_NSH = 0x894f
595 ETH_P_TRAILER = 0x1c 595 ETH_P_PAE = 0x888e
596 ETH_P_TR_802_2 = 0x11 596 ETH_P_PAUSE = 0x8808
597 ETH_P_TSN = 0x22f0 597 ETH_P_PHONET = 0xf5
598 ETH_P_WAN_PPP = 0x7 598 ETH_P_PPPTALK = 0x10
599 ETH_P_WCCP = 0x883e 599 ETH_P_PPP_DISC = 0x8863
600 ETH_P_X25 = 0x805 600 ETH_P_PPP_MP = 0x8
601 ETH_P_XDSA = 0xf8 601 ETH_P_PPP_SES = 0x8864
602 EXABYTE_ENABLE_NEST = 0xf0 602 ETH_P_PREAUTH = 0x88c7
603 EXT2_SUPER_MAGIC = 0xef53 603 ETH_P_PRP = 0x88fb
604 EXT3_SUPER_MAGIC = 0xef53 604 ETH_P_PUP = 0x200
605 EXT4_SUPER_MAGIC = 0xef53 605 ETH_P_PUPAT = 0x201
606 EXTA = 0xe 606 ETH_P_QINQ1 = 0x9100
607 EXTB = 0xf 607 ETH_P_QINQ2 = 0x9200
608 EXTPROC = 0x10000 608 ETH_P_QINQ3 = 0x9300
609 F2FS_SUPER_MAGIC = 0xf2f52010 609 ETH_P_RARP = 0x8035
610 FALLOC_FL_COLLAPSE_RANGE = 0x8 610 ETH_P_SCA = 0x6007
611 FALLOC_FL_INSERT_RANGE = 0x20 611 ETH_P_SLOW = 0x8809
612 FALLOC_FL_KEEP_SIZE = 0x1 612 ETH_P_SNAP = 0x5
613 FALLOC_FL_NO_HIDE_STALE = 0x4 613 ETH_P_TDLS = 0x890d
614 FALLOC_FL_PUNCH_HOLE = 0x2 614 ETH_P_TEB = 0x6558
615 FALLOC_FL_UNSHARE_RANGE = 0x40 615 ETH_P_TIPC = 0x88ca
616 FALLOC_FL_ZERO_RANGE = 0x10 616 ETH_P_TRAILER = 0x1c
617 FANOTIFY_METADATA_VERSION = 0x3 617 ETH_P_TR_802_2 = 0x11
618 FAN_ACCESS = 0x1 618 ETH_P_TSN = 0x22f0
619 FAN_ACCESS_PERM = 0x20000 619 ETH_P_WAN_PPP = 0x7
620 FAN_ALLOW = 0x1 620 ETH_P_WCCP = 0x883e
621 FAN_ALL_CLASS_BITS = 0xc 621 ETH_P_X25 = 0x805
622 FAN_ALL_EVENTS = 0x3b 622 ETH_P_XDSA = 0xf8
623 FAN_ALL_INIT_FLAGS = 0x3f 623 EXABYTE_ENABLE_NEST = 0xf0
624 FAN_ALL_MARK_FLAGS = 0xff 624 EXT2_SUPER_MAGIC = 0xef53
625 FAN_ALL_OUTGOING_EVENTS = 0x3403b 625 EXT3_SUPER_MAGIC = 0xef53
626 FAN_ALL_PERM_EVENTS = 0x30000 626 EXT4_SUPER_MAGIC = 0xef53
627 FAN_ATTRIB = 0x4 627 EXTA = 0xe
628 FAN_AUDIT = 0x10 628 EXTB = 0xf
629 FAN_CLASS_CONTENT = 0x4 629 EXTPROC = 0x10000
630 FAN_CLASS_NOTIF = 0x0 630 F2FS_SUPER_MAGIC = 0xf2f52010
631 FAN_CLASS_PRE_CONTENT = 0x8 631 FALLOC_FL_COLLAPSE_RANGE = 0x8
632 FAN_CLOEXEC = 0x1 632 FALLOC_FL_INSERT_RANGE = 0x20
633 FAN_CLOSE = 0x18 633 FALLOC_FL_KEEP_SIZE = 0x1
634 FAN_CLOSE_NOWRITE = 0x10 634 FALLOC_FL_NO_HIDE_STALE = 0x4
635 FAN_CLOSE_WRITE = 0x8 635 FALLOC_FL_PUNCH_HOLE = 0x2
636 FAN_CREATE = 0x100 636 FALLOC_FL_UNSHARE_RANGE = 0x40
637 FAN_DELETE = 0x200 637 FALLOC_FL_ZERO_RANGE = 0x10
638 FAN_DELETE_SELF = 0x400 638 FANOTIFY_METADATA_VERSION = 0x3
639 FAN_DENY = 0x2 639 FAN_ACCESS = 0x1
640 FAN_ENABLE_AUDIT = 0x40 640 FAN_ACCESS_PERM = 0x20000
641 FAN_EVENT_INFO_TYPE_FID = 0x1 641 FAN_ALLOW = 0x1
642 FAN_EVENT_METADATA_LEN = 0x18 642 FAN_ALL_CLASS_BITS = 0xc
643 FAN_EVENT_ON_CHILD = 0x8000000 643 FAN_ALL_EVENTS = 0x3b
644 FAN_MARK_ADD = 0x1 644 FAN_ALL_INIT_FLAGS = 0x3f
645 FAN_MARK_DONT_FOLLOW = 0x4 645 FAN_ALL_MARK_FLAGS = 0xff
646 FAN_MARK_FILESYSTEM = 0x100 646 FAN_ALL_OUTGOING_EVENTS = 0x3403b
647 FAN_MARK_FLUSH = 0x80 647 FAN_ALL_PERM_EVENTS = 0x30000
648 FAN_MARK_IGNORED_MASK = 0x20 648 FAN_ATTRIB = 0x4
649 FAN_MARK_IGNORED_SURV_MODIFY = 0x40 649 FAN_AUDIT = 0x10
650 FAN_MARK_INODE = 0x0 650 FAN_CLASS_CONTENT = 0x4
651 FAN_MARK_MOUNT = 0x10 651 FAN_CLASS_NOTIF = 0x0
652 FAN_MARK_ONLYDIR = 0x8 652 FAN_CLASS_PRE_CONTENT = 0x8
653 FAN_MARK_REMOVE = 0x2 653 FAN_CLOEXEC = 0x1
654 FAN_MODIFY = 0x2 654 FAN_CLOSE = 0x18
655 FAN_MOVE = 0xc0 655 FAN_CLOSE_NOWRITE = 0x10
656 FAN_MOVED_FROM = 0x40 656 FAN_CLOSE_WRITE = 0x8
657 FAN_MOVED_TO = 0x80 657 FAN_CREATE = 0x100
658 FAN_MOVE_SELF = 0x800 658 FAN_DELETE = 0x200
659 FAN_NOFD = -0x1 659 FAN_DELETE_SELF = 0x400
660 FAN_NONBLOCK = 0x2 660 FAN_DENY = 0x2
661 FAN_ONDIR = 0x40000000 661 FAN_ENABLE_AUDIT = 0x40
662 FAN_OPEN = 0x20 662 FAN_EVENT_INFO_TYPE_FID = 0x1
663 FAN_OPEN_EXEC = 0x1000 663 FAN_EVENT_METADATA_LEN = 0x18
664 FAN_OPEN_EXEC_PERM = 0x40000 664 FAN_EVENT_ON_CHILD = 0x8000000
665 FAN_OPEN_PERM = 0x10000 665 FAN_MARK_ADD = 0x1
666 FAN_Q_OVERFLOW = 0x4000 666 FAN_MARK_DONT_FOLLOW = 0x4
667 FAN_REPORT_FID = 0x200 667 FAN_MARK_FILESYSTEM = 0x100
668 FAN_REPORT_TID = 0x100 668 FAN_MARK_FLUSH = 0x80
669 FAN_UNLIMITED_MARKS = 0x20 669 FAN_MARK_IGNORED_MASK = 0x20
670 FAN_UNLIMITED_QUEUE = 0x10 670 FAN_MARK_IGNORED_SURV_MODIFY = 0x40
671 FD_CLOEXEC = 0x1 671 FAN_MARK_INODE = 0x0
672 FD_SETSIZE = 0x400 672 FAN_MARK_MOUNT = 0x10
673 FF0 = 0x0 673 FAN_MARK_ONLYDIR = 0x8
674 FF1 = 0x8000 674 FAN_MARK_REMOVE = 0x2
675 FFDLY = 0x8000 675 FAN_MODIFY = 0x2
676 FLUSHO = 0x2000 676 FAN_MOVE = 0xc0
677 FS_ENCRYPTION_MODE_ADIANTUM = 0x9 677 FAN_MOVED_FROM = 0x40
678 FS_ENCRYPTION_MODE_AES_128_CBC = 0x5 678 FAN_MOVED_TO = 0x80
679 FS_ENCRYPTION_MODE_AES_128_CTS = 0x6 679 FAN_MOVE_SELF = 0x800
680 FS_ENCRYPTION_MODE_AES_256_CBC = 0x3 680 FAN_NOFD = -0x1
681 FS_ENCRYPTION_MODE_AES_256_CTS = 0x4 681 FAN_NONBLOCK = 0x2
682 FS_ENCRYPTION_MODE_AES_256_GCM = 0x2 682 FAN_ONDIR = 0x40000000
683 FS_ENCRYPTION_MODE_AES_256_XTS = 0x1 683 FAN_OPEN = 0x20
684 FS_ENCRYPTION_MODE_INVALID = 0x0 684 FAN_OPEN_EXEC = 0x1000
685 FS_ENCRYPTION_MODE_SPECK128_256_CTS = 0x8 685 FAN_OPEN_EXEC_PERM = 0x40000
686 FS_ENCRYPTION_MODE_SPECK128_256_XTS = 0x7 686 FAN_OPEN_PERM = 0x10000
687 FS_IOC_GET_ENCRYPTION_POLICY = 0x800c6615 687 FAN_Q_OVERFLOW = 0x4000
688 FS_IOC_GET_ENCRYPTION_PWSALT = 0x80106614 688 FAN_REPORT_FID = 0x200
689 FS_IOC_SET_ENCRYPTION_POLICY = 0x400c6613 689 FAN_REPORT_TID = 0x100
690 FS_KEY_DESCRIPTOR_SIZE = 0x8 690 FAN_UNLIMITED_MARKS = 0x20
691 FS_KEY_DESC_PREFIX = "fscrypt:" 691 FAN_UNLIMITED_QUEUE = 0x10
692 FS_KEY_DESC_PREFIX_SIZE = 0x8 692 FD_CLOEXEC = 0x1
693 FS_MAX_KEY_SIZE = 0x40 693 FD_SETSIZE = 0x400
694 FS_POLICY_FLAGS_PAD_16 = 0x2 694 FF0 = 0x0
695 FS_POLICY_FLAGS_PAD_32 = 0x3 695 FF1 = 0x8000
696 FS_POLICY_FLAGS_PAD_4 = 0x0 696 FFDLY = 0x8000
697 FS_POLICY_FLAGS_PAD_8 = 0x1 697 FLUSHO = 0x2000
698 FS_POLICY_FLAGS_PAD_MASK = 0x3 698 FSCRYPT_KEY_DESCRIPTOR_SIZE = 0x8
699 FS_POLICY_FLAGS_VALID = 0x7 699 FSCRYPT_KEY_DESC_PREFIX = "fscrypt:"
700 FUTEXFS_SUPER_MAGIC = 0xbad1dea 700 FSCRYPT_KEY_DESC_PREFIX_SIZE = 0x8
701 F_ADD_SEALS = 0x409 701 FSCRYPT_KEY_IDENTIFIER_SIZE = 0x10
702 F_DUPFD = 0x0 702 FSCRYPT_KEY_REMOVAL_STATUS_FLAG_FILES_BUSY = 0x1
703 F_DUPFD_CLOEXEC = 0x406 703 FSCRYPT_KEY_REMOVAL_STATUS_FLAG_OTHER_USERS = 0x2
704 F_EXLCK = 0x4 704 FSCRYPT_KEY_SPEC_TYPE_DESCRIPTOR = 0x1
705 F_GETFD = 0x1 705 FSCRYPT_KEY_SPEC_TYPE_IDENTIFIER = 0x2
706 F_GETFL = 0x3 706 FSCRYPT_KEY_STATUS_ABSENT = 0x1
707 F_GETLEASE = 0x401 707 FSCRYPT_KEY_STATUS_FLAG_ADDED_BY_SELF = 0x1
708 F_GETLK = 0xe 708 FSCRYPT_KEY_STATUS_INCOMPLETELY_REMOVED = 0x3
709 F_GETLK64 = 0xe 709 FSCRYPT_KEY_STATUS_PRESENT = 0x2
710 F_GETOWN = 0x17 710 FSCRYPT_MAX_KEY_SIZE = 0x40
711 F_GETOWN_EX = 0x10 711 FSCRYPT_MODE_ADIANTUM = 0x9
712 F_GETPIPE_SZ = 0x408 712 FSCRYPT_MODE_AES_128_CBC = 0x5
713 F_GETSIG = 0xb 713 FSCRYPT_MODE_AES_128_CTS = 0x6
714 F_GET_FILE_RW_HINT = 0x40d 714 FSCRYPT_MODE_AES_256_CTS = 0x4
715 F_GET_RW_HINT = 0x40b 715 FSCRYPT_MODE_AES_256_XTS = 0x1
716 F_GET_SEALS = 0x40a 716 FSCRYPT_POLICY_FLAGS_PAD_16 = 0x2
717 F_LOCK = 0x1 717 FSCRYPT_POLICY_FLAGS_PAD_32 = 0x3
718 F_NOTIFY = 0x402 718 FSCRYPT_POLICY_FLAGS_PAD_4 = 0x0
719 F_OFD_GETLK = 0x24 719 FSCRYPT_POLICY_FLAGS_PAD_8 = 0x1
720 F_OFD_SETLK = 0x25 720 FSCRYPT_POLICY_FLAGS_PAD_MASK = 0x3
721 F_OFD_SETLKW = 0x26 721 FSCRYPT_POLICY_FLAGS_VALID = 0xf
722 F_OK = 0x0 722 FSCRYPT_POLICY_FLAG_DIRECT_KEY = 0x4
723 F_RDLCK = 0x0 723 FSCRYPT_POLICY_FLAG_IV_INO_LBLK_64 = 0x8
724 F_SEAL_FUTURE_WRITE = 0x10 724 FSCRYPT_POLICY_V1 = 0x0
725 F_SEAL_GROW = 0x4 725 FSCRYPT_POLICY_V2 = 0x2
726 F_SEAL_SEAL = 0x1 726 FS_ENCRYPTION_MODE_ADIANTUM = 0x9
727 F_SEAL_SHRINK = 0x2 727 FS_ENCRYPTION_MODE_AES_128_CBC = 0x5
728 F_SEAL_WRITE = 0x8 728 FS_ENCRYPTION_MODE_AES_128_CTS = 0x6
729 F_SETFD = 0x2 729 FS_ENCRYPTION_MODE_AES_256_CBC = 0x3
730 F_SETFL = 0x4 730 FS_ENCRYPTION_MODE_AES_256_CTS = 0x4
731 F_SETLEASE = 0x400 731 FS_ENCRYPTION_MODE_AES_256_GCM = 0x2
732 F_SETLK = 0x6 732 FS_ENCRYPTION_MODE_AES_256_XTS = 0x1
733 F_SETLK64 = 0x6 733 FS_ENCRYPTION_MODE_INVALID = 0x0
734 F_SETLKW = 0x7 734 FS_ENCRYPTION_MODE_SPECK128_256_CTS = 0x8
735 F_SETLKW64 = 0x7 735 FS_ENCRYPTION_MODE_SPECK128_256_XTS = 0x7
736 F_SETOWN = 0x18 736 FS_IOC_ADD_ENCRYPTION_KEY = 0xc0506617
737 F_SETOWN_EX = 0xf 737 FS_IOC_GET_ENCRYPTION_KEY_STATUS = 0xc080661a
738 F_SETPIPE_SZ = 0x407 738 FS_IOC_GET_ENCRYPTION_POLICY = 0x800c6615
739 F_SETSIG = 0xa 739 FS_IOC_GET_ENCRYPTION_POLICY_EX = 0xc0096616
740 F_SET_FILE_RW_HINT = 0x40e 740 FS_IOC_GET_ENCRYPTION_PWSALT = 0x80106614
741 F_SET_RW_HINT = 0x40c 741 FS_IOC_REMOVE_ENCRYPTION_KEY = 0xc0406618
742 F_SHLCK = 0x8 742 FS_IOC_REMOVE_ENCRYPTION_KEY_ALL_USERS = 0xc0406619
743 F_TEST = 0x3 743 FS_IOC_SET_ENCRYPTION_POLICY = 0x400c6613
744 F_TLOCK = 0x2 744 FS_KEY_DESCRIPTOR_SIZE = 0x8
745 F_ULOCK = 0x0 745 FS_KEY_DESC_PREFIX = "fscrypt:"
746 F_UNLCK = 0x2 746 FS_KEY_DESC_PREFIX_SIZE = 0x8
747 F_WRLCK = 0x1 747 FS_MAX_KEY_SIZE = 0x40
748 GENL_ADMIN_PERM = 0x1 748 FS_POLICY_FLAGS_PAD_16 = 0x2
749 GENL_CMD_CAP_DO = 0x2 749 FS_POLICY_FLAGS_PAD_32 = 0x3
750 GENL_CMD_CAP_DUMP = 0x4 750 FS_POLICY_FLAGS_PAD_4 = 0x0
751 GENL_CMD_CAP_HASPOL = 0x8 751 FS_POLICY_FLAGS_PAD_8 = 0x1
752 GENL_HDRLEN = 0x4 752 FS_POLICY_FLAGS_PAD_MASK = 0x3
753 GENL_ID_CTRL = 0x10 753 FS_POLICY_FLAGS_VALID = 0xf
754 GENL_ID_PMCRAID = 0x12 754 FUTEXFS_SUPER_MAGIC = 0xbad1dea
755 GENL_ID_VFS_DQUOT = 0x11 755 F_ADD_SEALS = 0x409
756 GENL_MAX_ID = 0x3ff 756 F_DUPFD = 0x0
757 GENL_MIN_ID = 0x10 757 F_DUPFD_CLOEXEC = 0x406
758 GENL_NAMSIZ = 0x10 758 F_EXLCK = 0x4
759 GENL_START_ALLOC = 0x13 759 F_GETFD = 0x1
760 GENL_UNS_ADMIN_PERM = 0x10 760 F_GETFL = 0x3
761 GRND_NONBLOCK = 0x1 761 F_GETLEASE = 0x401
762 GRND_RANDOM = 0x2 762 F_GETLK = 0xe
763 HDIO_DRIVE_CMD = 0x31f 763 F_GETLK64 = 0xe
764 HDIO_DRIVE_CMD_AEB = 0x31e 764 F_GETOWN = 0x17
765 HDIO_DRIVE_CMD_HDR_SIZE = 0x4 765 F_GETOWN_EX = 0x10
766 HDIO_DRIVE_HOB_HDR_SIZE = 0x8 766 F_GETPIPE_SZ = 0x408
767 HDIO_DRIVE_RESET = 0x31c 767 F_GETSIG = 0xb
768 HDIO_DRIVE_TASK = 0x31e 768 F_GET_FILE_RW_HINT = 0x40d
769 HDIO_DRIVE_TASKFILE = 0x31d 769 F_GET_RW_HINT = 0x40b
770 HDIO_DRIVE_TASK_HDR_SIZE = 0x8 770 F_GET_SEALS = 0x40a
771 HDIO_GETGEO = 0x301 771 F_LOCK = 0x1
772 HDIO_GET_32BIT = 0x309 772 F_NOTIFY = 0x402
773 HDIO_GET_ACOUSTIC = 0x30f 773 F_OFD_GETLK = 0x24
774 HDIO_GET_ADDRESS = 0x310 774 F_OFD_SETLK = 0x25
775 HDIO_GET_BUSSTATE = 0x31a 775 F_OFD_SETLKW = 0x26
776 HDIO_GET_DMA = 0x30b 776 F_OK = 0x0
777 HDIO_GET_IDENTITY = 0x30d 777 F_RDLCK = 0x0
778 HDIO_GET_KEEPSETTINGS = 0x308 778 F_SEAL_FUTURE_WRITE = 0x10
779 HDIO_GET_MULTCOUNT = 0x304 779 F_SEAL_GROW = 0x4
780 HDIO_GET_NICE = 0x30c 780 F_SEAL_SEAL = 0x1
781 HDIO_GET_NOWERR = 0x30a 781 F_SEAL_SHRINK = 0x2
782 HDIO_GET_QDMA = 0x305 782 F_SEAL_WRITE = 0x8
783 HDIO_GET_UNMASKINTR = 0x302 783 F_SETFD = 0x2
784 HDIO_GET_WCACHE = 0x30e 784 F_SETFL = 0x4
785 HDIO_OBSOLETE_IDENTITY = 0x307 785 F_SETLEASE = 0x400
786 HDIO_SCAN_HWIF = 0x328 786 F_SETLK = 0x6
787 HDIO_SET_32BIT = 0x324 787 F_SETLK64 = 0x6
788 HDIO_SET_ACOUSTIC = 0x32c 788 F_SETLKW = 0x7
789 HDIO_SET_ADDRESS = 0x32f 789 F_SETLKW64 = 0x7
790 HDIO_SET_BUSSTATE = 0x32d 790 F_SETOWN = 0x18
791 HDIO_SET_DMA = 0x326 791 F_SETOWN_EX = 0xf
792 HDIO_SET_KEEPSETTINGS = 0x323 792 F_SETPIPE_SZ = 0x407
793 HDIO_SET_MULTCOUNT = 0x321 793 F_SETSIG = 0xa
794 HDIO_SET_NICE = 0x329 794 F_SET_FILE_RW_HINT = 0x40e
795 HDIO_SET_NOWERR = 0x325 795 F_SET_RW_HINT = 0x40c
796 HDIO_SET_PIO_MODE = 0x327 796 F_SHLCK = 0x8
797 HDIO_SET_QDMA = 0x32e 797 F_TEST = 0x3
798 HDIO_SET_UNMASKINTR = 0x322 798 F_TLOCK = 0x2
799 HDIO_SET_WCACHE = 0x32b 799 F_ULOCK = 0x0
800 HDIO_SET_XFER = 0x306 800 F_UNLCK = 0x2
801 HDIO_TRISTATE_HWIF = 0x31b 801 F_WRLCK = 0x1
802 HDIO_UNREGISTER_HWIF = 0x32a 802 GENL_ADMIN_PERM = 0x1
803 HOSTFS_SUPER_MAGIC = 0xc0ffee 803 GENL_CMD_CAP_DO = 0x2
804 HPFS_SUPER_MAGIC = 0xf995e849 804 GENL_CMD_CAP_DUMP = 0x4
805 HUGETLBFS_MAGIC = 0x958458f6 805 GENL_CMD_CAP_HASPOL = 0x8
806 HUPCL = 0x400 806 GENL_HDRLEN = 0x4
807 IBSHIFT = 0x10 807 GENL_ID_CTRL = 0x10
808 ICANON = 0x2 808 GENL_ID_PMCRAID = 0x12
809 ICMPV6_FILTER = 0x1 809 GENL_ID_VFS_DQUOT = 0x11
810 ICRNL = 0x100 810 GENL_MAX_ID = 0x3ff
811 IEXTEN = 0x100 811 GENL_MIN_ID = 0x10
812 IFA_F_DADFAILED = 0x8 812 GENL_NAMSIZ = 0x10
813 IFA_F_DEPRECATED = 0x20 813 GENL_START_ALLOC = 0x13
814 IFA_F_HOMEADDRESS = 0x10 814 GENL_UNS_ADMIN_PERM = 0x10
815 IFA_F_MANAGETEMPADDR = 0x100 815 GRND_NONBLOCK = 0x1
816 IFA_F_MCAUTOJOIN = 0x400 816 GRND_RANDOM = 0x2
817 IFA_F_NODAD = 0x2 817 HDIO_DRIVE_CMD = 0x31f
818 IFA_F_NOPREFIXROUTE = 0x200 818 HDIO_DRIVE_CMD_AEB = 0x31e
819 IFA_F_OPTIMISTIC = 0x4 819 HDIO_DRIVE_CMD_HDR_SIZE = 0x4
820 IFA_F_PERMANENT = 0x80 820 HDIO_DRIVE_HOB_HDR_SIZE = 0x8
821 IFA_F_SECONDARY = 0x1 821 HDIO_DRIVE_RESET = 0x31c
822 IFA_F_STABLE_PRIVACY = 0x800 822 HDIO_DRIVE_TASK = 0x31e
823 IFA_F_TEMPORARY = 0x1 823 HDIO_DRIVE_TASKFILE = 0x31d
824 IFA_F_TENTATIVE = 0x40 824 HDIO_DRIVE_TASK_HDR_SIZE = 0x8
825 IFA_MAX = 0xa 825 HDIO_GETGEO = 0x301
826 IFF_ALLMULTI = 0x200 826 HDIO_GET_32BIT = 0x309
827 IFF_ATTACH_QUEUE = 0x200 827 HDIO_GET_ACOUSTIC = 0x30f
828 IFF_AUTOMEDIA = 0x4000 828 HDIO_GET_ADDRESS = 0x310
829 IFF_BROADCAST = 0x2 829 HDIO_GET_BUSSTATE = 0x31a
830 IFF_DEBUG = 0x4 830 HDIO_GET_DMA = 0x30b
831 IFF_DETACH_QUEUE = 0x400 831 HDIO_GET_IDENTITY = 0x30d
832 IFF_DORMANT = 0x20000 832 HDIO_GET_KEEPSETTINGS = 0x308
833 IFF_DYNAMIC = 0x8000 833 HDIO_GET_MULTCOUNT = 0x304
834 IFF_ECHO = 0x40000 834 HDIO_GET_NICE = 0x30c
835 IFF_LOOPBACK = 0x8 835 HDIO_GET_NOWERR = 0x30a
836 IFF_LOWER_UP = 0x10000 836 HDIO_GET_QDMA = 0x305
837 IFF_MASTER = 0x400 837 HDIO_GET_UNMASKINTR = 0x302
838 IFF_MULTICAST = 0x1000 838 HDIO_GET_WCACHE = 0x30e
839 IFF_MULTI_QUEUE = 0x100 839 HDIO_OBSOLETE_IDENTITY = 0x307
840 IFF_NAPI = 0x10 840 HDIO_SCAN_HWIF = 0x328
841 IFF_NAPI_FRAGS = 0x20 841 HDIO_SET_32BIT = 0x324
842 IFF_NOARP = 0x80 842 HDIO_SET_ACOUSTIC = 0x32c
843 IFF_NOFILTER = 0x1000 843 HDIO_SET_ADDRESS = 0x32f
844 IFF_NOTRAILERS = 0x20 844 HDIO_SET_BUSSTATE = 0x32d
845 IFF_NO_PI = 0x1000 845 HDIO_SET_DMA = 0x326
846 IFF_ONE_QUEUE = 0x2000 846 HDIO_SET_KEEPSETTINGS = 0x323
847 IFF_PERSIST = 0x800 847 HDIO_SET_MULTCOUNT = 0x321
848 IFF_POINTOPOINT = 0x10 848 HDIO_SET_NICE = 0x329
849 IFF_PORTSEL = 0x2000 849 HDIO_SET_NOWERR = 0x325
850 IFF_PROMISC = 0x100 850 HDIO_SET_PIO_MODE = 0x327
851 IFF_RUNNING = 0x40 851 HDIO_SET_QDMA = 0x32e
852 IFF_SLAVE = 0x800 852 HDIO_SET_UNMASKINTR = 0x322
853 IFF_TAP = 0x2 853 HDIO_SET_WCACHE = 0x32b
854 IFF_TUN = 0x1 854 HDIO_SET_XFER = 0x306
855 IFF_TUN_EXCL = 0x8000 855 HDIO_TRISTATE_HWIF = 0x31b
856 IFF_UP = 0x1 856 HDIO_UNREGISTER_HWIF = 0x32a
857 IFF_VNET_HDR = 0x4000 857 HOSTFS_SUPER_MAGIC = 0xc0ffee
858 IFF_VOLATILE = 0x70c5a 858 HPFS_SUPER_MAGIC = 0xf995e849
859 IFNAMSIZ = 0x10 859 HUGETLBFS_MAGIC = 0x958458f6
860 IGNBRK = 0x1 860 HUPCL = 0x400
861 IGNCR = 0x80 861 IBSHIFT = 0x10
862 IGNPAR = 0x4 862 ICANON = 0x2
863 IMAXBEL = 0x2000 863 ICMPV6_FILTER = 0x1
864 INLCR = 0x40 864 ICRNL = 0x100
865 INPCK = 0x10 865 IEXTEN = 0x100
866 IN_ACCESS = 0x1 866 IFA_F_DADFAILED = 0x8
867 IN_ALL_EVENTS = 0xfff 867 IFA_F_DEPRECATED = 0x20
868 IN_ATTRIB = 0x4 868 IFA_F_HOMEADDRESS = 0x10
869 IN_CLASSA_HOST = 0xffffff 869 IFA_F_MANAGETEMPADDR = 0x100
870 IN_CLASSA_MAX = 0x80 870 IFA_F_MCAUTOJOIN = 0x400
871 IN_CLASSA_NET = 0xff000000 871 IFA_F_NODAD = 0x2
872 IN_CLASSA_NSHIFT = 0x18 872 IFA_F_NOPREFIXROUTE = 0x200
873 IN_CLASSB_HOST = 0xffff 873 IFA_F_OPTIMISTIC = 0x4
874 IN_CLASSB_MAX = 0x10000 874 IFA_F_PERMANENT = 0x80
875 IN_CLASSB_NET = 0xffff0000 875 IFA_F_SECONDARY = 0x1
876 IN_CLASSB_NSHIFT = 0x10 876 IFA_F_STABLE_PRIVACY = 0x800
877 IN_CLASSC_HOST = 0xff 877 IFA_F_TEMPORARY = 0x1
878 IN_CLASSC_NET = 0xffffff00 878 IFA_F_TENTATIVE = 0x40
879 IN_CLASSC_NSHIFT = 0x8 879 IFA_MAX = 0xa
880 IN_CLOEXEC = 0x80000 880 IFF_ALLMULTI = 0x200
881 IN_CLOSE = 0x18 881 IFF_ATTACH_QUEUE = 0x200
882 IN_CLOSE_NOWRITE = 0x10 882 IFF_AUTOMEDIA = 0x4000
883 IN_CLOSE_WRITE = 0x8 883 IFF_BROADCAST = 0x2
884 IN_CREATE = 0x100 884 IFF_DEBUG = 0x4
885 IN_DELETE = 0x200 885 IFF_DETACH_QUEUE = 0x400
886 IN_DELETE_SELF = 0x400 886 IFF_DORMANT = 0x20000
887 IN_DONT_FOLLOW = 0x2000000 887 IFF_DYNAMIC = 0x8000
888 IN_EXCL_UNLINK = 0x4000000 888 IFF_ECHO = 0x40000
889 IN_IGNORED = 0x8000 889 IFF_LOOPBACK = 0x8
890 IN_ISDIR = 0x40000000 890 IFF_LOWER_UP = 0x10000
891 IN_LOOPBACKNET = 0x7f 891 IFF_MASTER = 0x400
892 IN_MASK_ADD = 0x20000000 892 IFF_MULTICAST = 0x1000
893 IN_MASK_CREATE = 0x10000000 893 IFF_MULTI_QUEUE = 0x100
894 IN_MODIFY = 0x2 894 IFF_NAPI = 0x10
895 IN_MOVE = 0xc0 895 IFF_NAPI_FRAGS = 0x20
896 IN_MOVED_FROM = 0x40 896 IFF_NOARP = 0x80
897 IN_MOVED_TO = 0x80 897 IFF_NOFILTER = 0x1000
898 IN_MOVE_SELF = 0x800 898 IFF_NOTRAILERS = 0x20
899 IN_NONBLOCK = 0x80 899 IFF_NO_PI = 0x1000
900 IN_ONESHOT = 0x80000000 900 IFF_ONE_QUEUE = 0x2000
901 IN_ONLYDIR = 0x1000000 901 IFF_PERSIST = 0x800
902 IN_OPEN = 0x20 902 IFF_POINTOPOINT = 0x10
903 IN_Q_OVERFLOW = 0x4000 903 IFF_PORTSEL = 0x2000
904 IN_UNMOUNT = 0x2000 904 IFF_PROMISC = 0x100
905 IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x200007b9 905 IFF_RUNNING = 0x40
906 IPPROTO_AH = 0x33 906 IFF_SLAVE = 0x800
907 IPPROTO_BEETPH = 0x5e 907 IFF_TAP = 0x2
908 IPPROTO_COMP = 0x6c 908 IFF_TUN = 0x1
909 IPPROTO_DCCP = 0x21 909 IFF_TUN_EXCL = 0x8000
910 IPPROTO_DSTOPTS = 0x3c 910 IFF_UP = 0x1
911 IPPROTO_EGP = 0x8 911 IFF_VNET_HDR = 0x4000
912 IPPROTO_ENCAP = 0x62 912 IFF_VOLATILE = 0x70c5a
913 IPPROTO_ESP = 0x32 913 IFNAMSIZ = 0x10
914 IPPROTO_FRAGMENT = 0x2c 914 IGNBRK = 0x1
915 IPPROTO_GRE = 0x2f 915 IGNCR = 0x80
916 IPPROTO_HOPOPTS = 0x0 916 IGNPAR = 0x4
917 IPPROTO_ICMP = 0x1 917 IMAXBEL = 0x2000
918 IPPROTO_ICMPV6 = 0x3a 918 INLCR = 0x40
919 IPPROTO_IDP = 0x16 919 INPCK = 0x10
920 IPPROTO_IGMP = 0x2 920 IN_ACCESS = 0x1
921 IPPROTO_IP = 0x0 921 IN_ALL_EVENTS = 0xfff
922 IPPROTO_IPIP = 0x4 922 IN_ATTRIB = 0x4
923 IPPROTO_IPV6 = 0x29 923 IN_CLASSA_HOST = 0xffffff
924 IPPROTO_MH = 0x87 924 IN_CLASSA_MAX = 0x80
925 IPPROTO_MPLS = 0x89 925 IN_CLASSA_NET = 0xff000000
926 IPPROTO_MTP = 0x5c 926 IN_CLASSA_NSHIFT = 0x18
927 IPPROTO_NONE = 0x3b 927 IN_CLASSB_HOST = 0xffff
928 IPPROTO_PIM = 0x67 928 IN_CLASSB_MAX = 0x10000
929 IPPROTO_PUP = 0xc 929 IN_CLASSB_NET = 0xffff0000
930 IPPROTO_RAW = 0xff 930 IN_CLASSB_NSHIFT = 0x10
931 IPPROTO_ROUTING = 0x2b 931 IN_CLASSC_HOST = 0xff
932 IPPROTO_RSVP = 0x2e 932 IN_CLASSC_NET = 0xffffff00
933 IPPROTO_SCTP = 0x84 933 IN_CLASSC_NSHIFT = 0x8
934 IPPROTO_TCP = 0x6 934 IN_CLOEXEC = 0x80000
935 IPPROTO_TP = 0x1d 935 IN_CLOSE = 0x18
936 IPPROTO_UDP = 0x11 936 IN_CLOSE_NOWRITE = 0x10
937 IPPROTO_UDPLITE = 0x88 937 IN_CLOSE_WRITE = 0x8
938 IPV6_2292DSTOPTS = 0x4 938 IN_CREATE = 0x100
939 IPV6_2292HOPLIMIT = 0x8 939 IN_DELETE = 0x200
940 IPV6_2292HOPOPTS = 0x3 940 IN_DELETE_SELF = 0x400
941 IPV6_2292PKTINFO = 0x2 941 IN_DONT_FOLLOW = 0x2000000
942 IPV6_2292PKTOPTIONS = 0x6 942 IN_EXCL_UNLINK = 0x4000000
943 IPV6_2292RTHDR = 0x5 943 IN_IGNORED = 0x8000
944 IPV6_ADDRFORM = 0x1 944 IN_ISDIR = 0x40000000
945 IPV6_ADDR_PREFERENCES = 0x48 945 IN_LOOPBACKNET = 0x7f
946 IPV6_ADD_MEMBERSHIP = 0x14 946 IN_MASK_ADD = 0x20000000
947 IPV6_AUTHHDR = 0xa 947 IN_MASK_CREATE = 0x10000000
948 IPV6_AUTOFLOWLABEL = 0x46 948 IN_MODIFY = 0x2
949 IPV6_CHECKSUM = 0x7 949 IN_MOVE = 0xc0
950 IPV6_DONTFRAG = 0x3e 950 IN_MOVED_FROM = 0x40
951 IPV6_DROP_MEMBERSHIP = 0x15 951 IN_MOVED_TO = 0x80
952 IPV6_DSTOPTS = 0x3b 952 IN_MOVE_SELF = 0x800
953 IPV6_FREEBIND = 0x4e 953 IN_NONBLOCK = 0x80
954 IPV6_HDRINCL = 0x24 954 IN_ONESHOT = 0x80000000
955 IPV6_HOPLIMIT = 0x34 955 IN_ONLYDIR = 0x1000000
956 IPV6_HOPOPTS = 0x36 956 IN_OPEN = 0x20
957 IPV6_IPSEC_POLICY = 0x22 957 IN_Q_OVERFLOW = 0x4000
958 IPV6_JOIN_ANYCAST = 0x1b 958 IN_UNMOUNT = 0x2000
959 IPV6_JOIN_GROUP = 0x14 959 IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x200007b9
960 IPV6_LEAVE_ANYCAST = 0x1c 960 IPPROTO_AH = 0x33
961 IPV6_LEAVE_GROUP = 0x15 961 IPPROTO_BEETPH = 0x5e
962 IPV6_MINHOPCOUNT = 0x49 962 IPPROTO_COMP = 0x6c
963 IPV6_MTU = 0x18 963 IPPROTO_DCCP = 0x21
964 IPV6_MTU_DISCOVER = 0x17 964 IPPROTO_DSTOPTS = 0x3c
965 IPV6_MULTICAST_ALL = 0x1d 965 IPPROTO_EGP = 0x8
966 IPV6_MULTICAST_HOPS = 0x12 966 IPPROTO_ENCAP = 0x62
967 IPV6_MULTICAST_IF = 0x11 967 IPPROTO_ESP = 0x32
968 IPV6_MULTICAST_LOOP = 0x13 968 IPPROTO_FRAGMENT = 0x2c
969 IPV6_NEXTHOP = 0x9 969 IPPROTO_GRE = 0x2f
970 IPV6_ORIGDSTADDR = 0x4a 970 IPPROTO_HOPOPTS = 0x0
971 IPV6_PATHMTU = 0x3d 971 IPPROTO_ICMP = 0x1
972 IPV6_PKTINFO = 0x32 972 IPPROTO_ICMPV6 = 0x3a
973 IPV6_PMTUDISC_DO = 0x2 973 IPPROTO_IDP = 0x16
974 IPV6_PMTUDISC_DONT = 0x0 974 IPPROTO_IGMP = 0x2
975 IPV6_PMTUDISC_INTERFACE = 0x4 975 IPPROTO_IP = 0x0
976 IPV6_PMTUDISC_OMIT = 0x5 976 IPPROTO_IPIP = 0x4
977 IPV6_PMTUDISC_PROBE = 0x3 977 IPPROTO_IPV6 = 0x29
978 IPV6_PMTUDISC_WANT = 0x1 978 IPPROTO_MH = 0x87
979 IPV6_RECVDSTOPTS = 0x3a 979 IPPROTO_MPLS = 0x89
980 IPV6_RECVERR = 0x19 980 IPPROTO_MTP = 0x5c
981 IPV6_RECVFRAGSIZE = 0x4d 981 IPPROTO_NONE = 0x3b
982 IPV6_RECVHOPLIMIT = 0x33 982 IPPROTO_PIM = 0x67
983 IPV6_RECVHOPOPTS = 0x35 983 IPPROTO_PUP = 0xc
984 IPV6_RECVORIGDSTADDR = 0x4a 984 IPPROTO_RAW = 0xff
985 IPV6_RECVPATHMTU = 0x3c 985 IPPROTO_ROUTING = 0x2b
986 IPV6_RECVPKTINFO = 0x31 986 IPPROTO_RSVP = 0x2e
987 IPV6_RECVRTHDR = 0x38 987 IPPROTO_SCTP = 0x84
988 IPV6_RECVTCLASS = 0x42 988 IPPROTO_TCP = 0x6
989 IPV6_ROUTER_ALERT = 0x16 989 IPPROTO_TP = 0x1d
990 IPV6_ROUTER_ALERT_ISOLATE = 0x1e 990 IPPROTO_UDP = 0x11
991 IPV6_RTHDR = 0x39 991 IPPROTO_UDPLITE = 0x88
992 IPV6_RTHDRDSTOPTS = 0x37 992 IPV6_2292DSTOPTS = 0x4
993 IPV6_RTHDR_LOOSE = 0x0 993 IPV6_2292HOPLIMIT = 0x8
994 IPV6_RTHDR_STRICT = 0x1 994 IPV6_2292HOPOPTS = 0x3
995 IPV6_RTHDR_TYPE_0 = 0x0 995 IPV6_2292PKTINFO = 0x2
996 IPV6_RXDSTOPTS = 0x3b 996 IPV6_2292PKTOPTIONS = 0x6
997 IPV6_RXHOPOPTS = 0x36 997 IPV6_2292RTHDR = 0x5
998 IPV6_TCLASS = 0x43 998 IPV6_ADDRFORM = 0x1
999 IPV6_TRANSPARENT = 0x4b 999 IPV6_ADDR_PREFERENCES = 0x48
1000 IPV6_UNICAST_HOPS = 0x10 1000 IPV6_ADD_MEMBERSHIP = 0x14
1001 IPV6_UNICAST_IF = 0x4c 1001 IPV6_AUTHHDR = 0xa
1002 IPV6_V6ONLY = 0x1a 1002 IPV6_AUTOFLOWLABEL = 0x46
1003 IPV6_XFRM_POLICY = 0x23 1003 IPV6_CHECKSUM = 0x7
1004 IP_ADD_MEMBERSHIP = 0x23 1004 IPV6_DONTFRAG = 0x3e
1005 IP_ADD_SOURCE_MEMBERSHIP = 0x27 1005 IPV6_DROP_MEMBERSHIP = 0x15
1006 IP_BIND_ADDRESS_NO_PORT = 0x18 1006 IPV6_DSTOPTS = 0x3b
1007 IP_BLOCK_SOURCE = 0x26 1007 IPV6_FREEBIND = 0x4e
1008 IP_CHECKSUM = 0x17 1008 IPV6_HDRINCL = 0x24
1009 IP_DEFAULT_MULTICAST_LOOP = 0x1 1009 IPV6_HOPLIMIT = 0x34
1010 IP_DEFAULT_MULTICAST_TTL = 0x1 1010 IPV6_HOPOPTS = 0x36
1011 IP_DF = 0x4000 1011 IPV6_IPSEC_POLICY = 0x22
1012 IP_DROP_MEMBERSHIP = 0x24 1012 IPV6_JOIN_ANYCAST = 0x1b
1013 IP_DROP_SOURCE_MEMBERSHIP = 0x28 1013 IPV6_JOIN_GROUP = 0x14
1014 IP_FREEBIND = 0xf 1014 IPV6_LEAVE_ANYCAST = 0x1c
1015 IP_HDRINCL = 0x3 1015 IPV6_LEAVE_GROUP = 0x15
1016 IP_IPSEC_POLICY = 0x10 1016 IPV6_MINHOPCOUNT = 0x49
1017 IP_MAXPACKET = 0xffff 1017 IPV6_MTU = 0x18
1018 IP_MAX_MEMBERSHIPS = 0x14 1018 IPV6_MTU_DISCOVER = 0x17
1019 IP_MF = 0x2000 1019 IPV6_MULTICAST_ALL = 0x1d
1020 IP_MINTTL = 0x15 1020 IPV6_MULTICAST_HOPS = 0x12
1021 IP_MSFILTER = 0x29 1021 IPV6_MULTICAST_IF = 0x11
1022 IP_MSS = 0x240 1022 IPV6_MULTICAST_LOOP = 0x13
1023 IP_MTU = 0xe 1023 IPV6_NEXTHOP = 0x9
1024 IP_MTU_DISCOVER = 0xa 1024 IPV6_ORIGDSTADDR = 0x4a
1025 IP_MULTICAST_ALL = 0x31 1025 IPV6_PATHMTU = 0x3d
1026 IP_MULTICAST_IF = 0x20 1026 IPV6_PKTINFO = 0x32
1027 IP_MULTICAST_LOOP = 0x22 1027 IPV6_PMTUDISC_DO = 0x2
1028 IP_MULTICAST_TTL = 0x21 1028 IPV6_PMTUDISC_DONT = 0x0
1029 IP_NODEFRAG = 0x16 1029 IPV6_PMTUDISC_INTERFACE = 0x4
1030 IP_OFFMASK = 0x1fff 1030 IPV6_PMTUDISC_OMIT = 0x5
1031 IP_OPTIONS = 0x4 1031 IPV6_PMTUDISC_PROBE = 0x3
1032 IP_ORIGDSTADDR = 0x14 1032 IPV6_PMTUDISC_WANT = 0x1
1033 IP_PASSSEC = 0x12 1033 IPV6_RECVDSTOPTS = 0x3a
1034 IP_PKTINFO = 0x8 1034 IPV6_RECVERR = 0x19
1035 IP_PKTOPTIONS = 0x9 1035 IPV6_RECVFRAGSIZE = 0x4d
1036 IP_PMTUDISC = 0xa 1036 IPV6_RECVHOPLIMIT = 0x33
1037 IP_PMTUDISC_DO = 0x2 1037 IPV6_RECVHOPOPTS = 0x35
1038 IP_PMTUDISC_DONT = 0x0 1038 IPV6_RECVORIGDSTADDR = 0x4a
1039 IP_PMTUDISC_INTERFACE = 0x4 1039 IPV6_RECVPATHMTU = 0x3c
1040 IP_PMTUDISC_OMIT = 0x5 1040 IPV6_RECVPKTINFO = 0x31
1041 IP_PMTUDISC_PROBE = 0x3 1041 IPV6_RECVRTHDR = 0x38
1042 IP_PMTUDISC_WANT = 0x1 1042 IPV6_RECVTCLASS = 0x42
1043 IP_RECVERR = 0xb 1043 IPV6_ROUTER_ALERT = 0x16
1044 IP_RECVFRAGSIZE = 0x19 1044 IPV6_ROUTER_ALERT_ISOLATE = 0x1e
1045 IP_RECVOPTS = 0x6 1045 IPV6_RTHDR = 0x39
1046 IP_RECVORIGDSTADDR = 0x14 1046 IPV6_RTHDRDSTOPTS = 0x37
1047 IP_RECVRETOPTS = 0x7 1047 IPV6_RTHDR_LOOSE = 0x0
1048 IP_RECVTOS = 0xd 1048 IPV6_RTHDR_STRICT = 0x1
1049 IP_RECVTTL = 0xc 1049 IPV6_RTHDR_TYPE_0 = 0x0
1050 IP_RETOPTS = 0x7 1050 IPV6_RXDSTOPTS = 0x3b
1051 IP_RF = 0x8000 1051 IPV6_RXHOPOPTS = 0x36
1052 IP_ROUTER_ALERT = 0x5 1052 IPV6_TCLASS = 0x43
1053 IP_TOS = 0x1 1053 IPV6_TRANSPARENT = 0x4b
1054 IP_TRANSPARENT = 0x13 1054 IPV6_UNICAST_HOPS = 0x10
1055 IP_TTL = 0x2 1055 IPV6_UNICAST_IF = 0x4c
1056 IP_UNBLOCK_SOURCE = 0x25 1056 IPV6_V6ONLY = 0x1a
1057 IP_UNICAST_IF = 0x32 1057 IPV6_XFRM_POLICY = 0x23
1058 IP_XFRM_POLICY = 0x11 1058 IP_ADD_MEMBERSHIP = 0x23
1059 ISIG = 0x1 1059 IP_ADD_SOURCE_MEMBERSHIP = 0x27
1060 ISOFS_SUPER_MAGIC = 0x9660 1060 IP_BIND_ADDRESS_NO_PORT = 0x18
1061 ISTRIP = 0x20 1061 IP_BLOCK_SOURCE = 0x26
1062 IUCLC = 0x200 1062 IP_CHECKSUM = 0x17
1063 IUTF8 = 0x4000 1063 IP_DEFAULT_MULTICAST_LOOP = 0x1
1064 IXANY = 0x800 1064 IP_DEFAULT_MULTICAST_TTL = 0x1
1065 IXOFF = 0x1000 1065 IP_DF = 0x4000
1066 IXON = 0x400 1066 IP_DROP_MEMBERSHIP = 0x24
1067 JFFS2_SUPER_MAGIC = 0x72b6 1067 IP_DROP_SOURCE_MEMBERSHIP = 0x28
1068 KEXEC_ARCH_386 = 0x30000 1068 IP_FREEBIND = 0xf
1069 KEXEC_ARCH_68K = 0x40000 1069 IP_HDRINCL = 0x3
1070 KEXEC_ARCH_AARCH64 = 0xb70000 1070 IP_IPSEC_POLICY = 0x10
1071 KEXEC_ARCH_ARM = 0x280000 1071 IP_MAXPACKET = 0xffff
1072 KEXEC_ARCH_DEFAULT = 0x0 1072 IP_MAX_MEMBERSHIPS = 0x14
1073 KEXEC_ARCH_IA_64 = 0x320000 1073 IP_MF = 0x2000
1074 KEXEC_ARCH_MASK = 0xffff0000 1074 IP_MINTTL = 0x15
1075 KEXEC_ARCH_MIPS = 0x80000 1075 IP_MSFILTER = 0x29
1076 KEXEC_ARCH_MIPS_LE = 0xa0000 1076 IP_MSS = 0x240
1077 KEXEC_ARCH_PPC = 0x140000 1077 IP_MTU = 0xe
1078 KEXEC_ARCH_PPC64 = 0x150000 1078 IP_MTU_DISCOVER = 0xa
1079 KEXEC_ARCH_S390 = 0x160000 1079 IP_MULTICAST_ALL = 0x31
1080 KEXEC_ARCH_SH = 0x2a0000 1080 IP_MULTICAST_IF = 0x20
1081 KEXEC_ARCH_X86_64 = 0x3e0000 1081 IP_MULTICAST_LOOP = 0x22
1082 KEXEC_FILE_NO_INITRAMFS = 0x4 1082 IP_MULTICAST_TTL = 0x21
1083 KEXEC_FILE_ON_CRASH = 0x2 1083 IP_NODEFRAG = 0x16
1084 KEXEC_FILE_UNLOAD = 0x1 1084 IP_OFFMASK = 0x1fff
1085 KEXEC_ON_CRASH = 0x1 1085 IP_OPTIONS = 0x4
1086 KEXEC_PRESERVE_CONTEXT = 0x2 1086 IP_ORIGDSTADDR = 0x14
1087 KEXEC_SEGMENT_MAX = 0x10 1087 IP_PASSSEC = 0x12
1088 KEYCTL_ASSUME_AUTHORITY = 0x10 1088 IP_PKTINFO = 0x8
1089 KEYCTL_CHOWN = 0x4 1089 IP_PKTOPTIONS = 0x9
1090 KEYCTL_CLEAR = 0x7 1090 IP_PMTUDISC = 0xa
1091 KEYCTL_DESCRIBE = 0x6 1091 IP_PMTUDISC_DO = 0x2
1092 KEYCTL_DH_COMPUTE = 0x17 1092 IP_PMTUDISC_DONT = 0x0
1093 KEYCTL_GET_KEYRING_ID = 0x0 1093 IP_PMTUDISC_INTERFACE = 0x4
1094 KEYCTL_GET_PERSISTENT = 0x16 1094 IP_PMTUDISC_OMIT = 0x5
1095 KEYCTL_GET_SECURITY = 0x11 1095 IP_PMTUDISC_PROBE = 0x3
1096 KEYCTL_INSTANTIATE = 0xc 1096 IP_PMTUDISC_WANT = 0x1
1097 KEYCTL_INSTANTIATE_IOV = 0x14 1097 IP_RECVERR = 0xb
1098 KEYCTL_INVALIDATE = 0x15 1098 IP_RECVFRAGSIZE = 0x19
1099 KEYCTL_JOIN_SESSION_KEYRING = 0x1 1099 IP_RECVOPTS = 0x6
1100 KEYCTL_LINK = 0x8 1100 IP_RECVORIGDSTADDR = 0x14
1101 KEYCTL_NEGATE = 0xd 1101 IP_RECVRETOPTS = 0x7
1102 KEYCTL_PKEY_DECRYPT = 0x1a 1102 IP_RECVTOS = 0xd
1103 KEYCTL_PKEY_ENCRYPT = 0x19 1103 IP_RECVTTL = 0xc
1104 KEYCTL_PKEY_QUERY = 0x18 1104 IP_RETOPTS = 0x7
1105 KEYCTL_PKEY_SIGN = 0x1b 1105 IP_RF = 0x8000
1106 KEYCTL_PKEY_VERIFY = 0x1c 1106 IP_ROUTER_ALERT = 0x5
1107 KEYCTL_READ = 0xb 1107 IP_TOS = 0x1
1108 KEYCTL_REJECT = 0x13 1108 IP_TRANSPARENT = 0x13
1109 KEYCTL_RESTRICT_KEYRING = 0x1d 1109 IP_TTL = 0x2
1110 KEYCTL_REVOKE = 0x3 1110 IP_UNBLOCK_SOURCE = 0x25
1111 KEYCTL_SEARCH = 0xa 1111 IP_UNICAST_IF = 0x32
1112 KEYCTL_SESSION_TO_PARENT = 0x12 1112 IP_XFRM_POLICY = 0x11
1113 KEYCTL_SETPERM = 0x5 1113 ISIG = 0x1
1114 KEYCTL_SET_REQKEY_KEYRING = 0xe 1114 ISOFS_SUPER_MAGIC = 0x9660
1115 KEYCTL_SET_TIMEOUT = 0xf 1115 ISTRIP = 0x20
1116 KEYCTL_SUPPORTS_DECRYPT = 0x2 1116 IUCLC = 0x200
1117 KEYCTL_SUPPORTS_ENCRYPT = 0x1 1117 IUTF8 = 0x4000
1118 KEYCTL_SUPPORTS_SIGN = 0x4 1118 IXANY = 0x800
1119 KEYCTL_SUPPORTS_VERIFY = 0x8 1119 IXOFF = 0x1000
1120 KEYCTL_UNLINK = 0x9 1120 IXON = 0x400
1121 KEYCTL_UPDATE = 0x2 1121 JFFS2_SUPER_MAGIC = 0x72b6
1122 KEY_REQKEY_DEFL_DEFAULT = 0x0 1122 KEXEC_ARCH_386 = 0x30000
1123 KEY_REQKEY_DEFL_GROUP_KEYRING = 0x6 1123 KEXEC_ARCH_68K = 0x40000
1124 KEY_REQKEY_DEFL_NO_CHANGE = -0x1 1124 KEXEC_ARCH_AARCH64 = 0xb70000
1125 KEY_REQKEY_DEFL_PROCESS_KEYRING = 0x2 1125 KEXEC_ARCH_ARM = 0x280000
1126 KEY_REQKEY_DEFL_REQUESTOR_KEYRING = 0x7 1126 KEXEC_ARCH_DEFAULT = 0x0
1127 KEY_REQKEY_DEFL_SESSION_KEYRING = 0x3 1127 KEXEC_ARCH_IA_64 = 0x320000
1128 KEY_REQKEY_DEFL_THREAD_KEYRING = 0x1 1128 KEXEC_ARCH_MASK = 0xffff0000
1129 KEY_REQKEY_DEFL_USER_KEYRING = 0x4 1129 KEXEC_ARCH_MIPS = 0x80000
1130 KEY_REQKEY_DEFL_USER_SESSION_KEYRING = 0x5 1130 KEXEC_ARCH_MIPS_LE = 0xa0000
1131 KEY_SPEC_GROUP_KEYRING = -0x6 1131 KEXEC_ARCH_PARISC = 0xf0000
1132 KEY_SPEC_PROCESS_KEYRING = -0x2 1132 KEXEC_ARCH_PPC = 0x140000
1133 KEY_SPEC_REQKEY_AUTH_KEY = -0x7 1133 KEXEC_ARCH_PPC64 = 0x150000
1134 KEY_SPEC_REQUESTOR_KEYRING = -0x8 1134 KEXEC_ARCH_S390 = 0x160000
1135 KEY_SPEC_SESSION_KEYRING = -0x3 1135 KEXEC_ARCH_SH = 0x2a0000
1136 KEY_SPEC_THREAD_KEYRING = -0x1 1136 KEXEC_ARCH_X86_64 = 0x3e0000
1137 KEY_SPEC_USER_KEYRING = -0x4 1137 KEXEC_FILE_NO_INITRAMFS = 0x4
1138 KEY_SPEC_USER_SESSION_KEYRING = -0x5 1138 KEXEC_FILE_ON_CRASH = 0x2
1139 LINUX_REBOOT_CMD_CAD_OFF = 0x0 1139 KEXEC_FILE_UNLOAD = 0x1
1140 LINUX_REBOOT_CMD_CAD_ON = 0x89abcdef 1140 KEXEC_ON_CRASH = 0x1
1141 LINUX_REBOOT_CMD_HALT = 0xcdef0123 1141 KEXEC_PRESERVE_CONTEXT = 0x2
1142 LINUX_REBOOT_CMD_KEXEC = 0x45584543 1142 KEXEC_SEGMENT_MAX = 0x10
1143 LINUX_REBOOT_CMD_POWER_OFF = 0x4321fedc 1143 KEYCTL_ASSUME_AUTHORITY = 0x10
1144 LINUX_REBOOT_CMD_RESTART = 0x1234567 1144 KEYCTL_CAPABILITIES = 0x1f
1145 LINUX_REBOOT_CMD_RESTART2 = 0xa1b2c3d4 1145 KEYCTL_CAPS0_BIG_KEY = 0x10
1146 LINUX_REBOOT_CMD_SW_SUSPEND = 0xd000fce2 1146 KEYCTL_CAPS0_CAPABILITIES = 0x1
1147 LINUX_REBOOT_MAGIC1 = 0xfee1dead 1147 KEYCTL_CAPS0_DIFFIE_HELLMAN = 0x4
1148 LINUX_REBOOT_MAGIC2 = 0x28121969 1148 KEYCTL_CAPS0_INVALIDATE = 0x20
1149 LOCK_EX = 0x2 1149 KEYCTL_CAPS0_MOVE = 0x80
1150 LOCK_NB = 0x4 1150 KEYCTL_CAPS0_PERSISTENT_KEYRINGS = 0x2
1151 LOCK_SH = 0x1 1151 KEYCTL_CAPS0_PUBLIC_KEY = 0x8
1152 LOCK_UN = 0x8 1152 KEYCTL_CAPS0_RESTRICT_KEYRING = 0x40
1153 LOOP_CLR_FD = 0x4c01 1153 KEYCTL_CAPS1_NS_KEYRING_NAME = 0x1
1154 LOOP_CTL_ADD = 0x4c80 1154 KEYCTL_CAPS1_NS_KEY_TAG = 0x2
1155 LOOP_CTL_GET_FREE = 0x4c82 1155 KEYCTL_CHOWN = 0x4
1156 LOOP_CTL_REMOVE = 0x4c81 1156 KEYCTL_CLEAR = 0x7
1157 LOOP_GET_STATUS = 0x4c03 1157 KEYCTL_DESCRIBE = 0x6
1158 LOOP_GET_STATUS64 = 0x4c05 1158 KEYCTL_DH_COMPUTE = 0x17
1159 LOOP_SET_BLOCK_SIZE = 0x4c09 1159 KEYCTL_GET_KEYRING_ID = 0x0
1160 LOOP_SET_CAPACITY = 0x4c07 1160 KEYCTL_GET_PERSISTENT = 0x16
1161 LOOP_SET_DIRECT_IO = 0x4c08 1161 KEYCTL_GET_SECURITY = 0x11
1162 LOOP_SET_FD = 0x4c00 1162 KEYCTL_INSTANTIATE = 0xc
1163 LOOP_SET_STATUS = 0x4c02 1163 KEYCTL_INSTANTIATE_IOV = 0x14
1164 LOOP_SET_STATUS64 = 0x4c04 1164 KEYCTL_INVALIDATE = 0x15
1165 LO_KEY_SIZE = 0x20 1165 KEYCTL_JOIN_SESSION_KEYRING = 0x1
1166 LO_NAME_SIZE = 0x40 1166 KEYCTL_LINK = 0x8
1167 MADV_DODUMP = 0x11 1167 KEYCTL_MOVE = 0x1e
1168 MADV_DOFORK = 0xb 1168 KEYCTL_MOVE_EXCL = 0x1
1169 MADV_DONTDUMP = 0x10 1169 KEYCTL_NEGATE = 0xd
1170 MADV_DONTFORK = 0xa 1170 KEYCTL_PKEY_DECRYPT = 0x1a
1171 MADV_DONTNEED = 0x4 1171 KEYCTL_PKEY_ENCRYPT = 0x19
1172 MADV_FREE = 0x8 1172 KEYCTL_PKEY_QUERY = 0x18
1173 MADV_HUGEPAGE = 0xe 1173 KEYCTL_PKEY_SIGN = 0x1b
1174 MADV_HWPOISON = 0x64 1174 KEYCTL_PKEY_VERIFY = 0x1c
1175 MADV_KEEPONFORK = 0x13 1175 KEYCTL_READ = 0xb
1176 MADV_MERGEABLE = 0xc 1176 KEYCTL_REJECT = 0x13
1177 MADV_NOHUGEPAGE = 0xf 1177 KEYCTL_RESTRICT_KEYRING = 0x1d
1178 MADV_NORMAL = 0x0 1178 KEYCTL_REVOKE = 0x3
1179 MADV_RANDOM = 0x1 1179 KEYCTL_SEARCH = 0xa
1180 MADV_REMOVE = 0x9 1180 KEYCTL_SESSION_TO_PARENT = 0x12
1181 MADV_SEQUENTIAL = 0x2 1181 KEYCTL_SETPERM = 0x5
1182 MADV_UNMERGEABLE = 0xd 1182 KEYCTL_SET_REQKEY_KEYRING = 0xe
1183 MADV_WILLNEED = 0x3 1183 KEYCTL_SET_TIMEOUT = 0xf
1184 MADV_WIPEONFORK = 0x12 1184 KEYCTL_SUPPORTS_DECRYPT = 0x2
1185 MAP_ANON = 0x800 1185 KEYCTL_SUPPORTS_ENCRYPT = 0x1
1186 MAP_ANONYMOUS = 0x800 1186 KEYCTL_SUPPORTS_SIGN = 0x4
1187 MAP_DENYWRITE = 0x2000 1187 KEYCTL_SUPPORTS_VERIFY = 0x8
1188 MAP_EXECUTABLE = 0x4000 1188 KEYCTL_UNLINK = 0x9
1189 MAP_FILE = 0x0 1189 KEYCTL_UPDATE = 0x2
1190 MAP_FIXED = 0x10 1190 KEY_REQKEY_DEFL_DEFAULT = 0x0
1191 MAP_FIXED_NOREPLACE = 0x100000 1191 KEY_REQKEY_DEFL_GROUP_KEYRING = 0x6
1192 MAP_GROWSDOWN = 0x1000 1192 KEY_REQKEY_DEFL_NO_CHANGE = -0x1
1193 MAP_HUGETLB = 0x80000 1193 KEY_REQKEY_DEFL_PROCESS_KEYRING = 0x2
1194 MAP_HUGE_MASK = 0x3f 1194 KEY_REQKEY_DEFL_REQUESTOR_KEYRING = 0x7
1195 MAP_HUGE_SHIFT = 0x1a 1195 KEY_REQKEY_DEFL_SESSION_KEYRING = 0x3
1196 MAP_LOCKED = 0x8000 1196 KEY_REQKEY_DEFL_THREAD_KEYRING = 0x1
1197 MAP_NONBLOCK = 0x20000 1197 KEY_REQKEY_DEFL_USER_KEYRING = 0x4
1198 MAP_NORESERVE = 0x400 1198 KEY_REQKEY_DEFL_USER_SESSION_KEYRING = 0x5
1199 MAP_POPULATE = 0x10000 1199 KEY_SPEC_GROUP_KEYRING = -0x6
1200 MAP_PRIVATE = 0x2 1200 KEY_SPEC_PROCESS_KEYRING = -0x2
1201 MAP_RENAME = 0x800 1201 KEY_SPEC_REQKEY_AUTH_KEY = -0x7
1202 MAP_SHARED = 0x1 1202 KEY_SPEC_REQUESTOR_KEYRING = -0x8
1203 MAP_SHARED_VALIDATE = 0x3 1203 KEY_SPEC_SESSION_KEYRING = -0x3
1204 MAP_STACK = 0x40000 1204 KEY_SPEC_THREAD_KEYRING = -0x1
1205 MAP_TYPE = 0xf 1205 KEY_SPEC_USER_KEYRING = -0x4
1206 MCAST_BLOCK_SOURCE = 0x2b 1206 KEY_SPEC_USER_SESSION_KEYRING = -0x5
1207 MCAST_EXCLUDE = 0x0 1207 LINUX_REBOOT_CMD_CAD_OFF = 0x0
1208 MCAST_INCLUDE = 0x1 1208 LINUX_REBOOT_CMD_CAD_ON = 0x89abcdef
1209 MCAST_JOIN_GROUP = 0x2a 1209 LINUX_REBOOT_CMD_HALT = 0xcdef0123
1210 MCAST_JOIN_SOURCE_GROUP = 0x2e 1210 LINUX_REBOOT_CMD_KEXEC = 0x45584543
1211 MCAST_LEAVE_GROUP = 0x2d 1211 LINUX_REBOOT_CMD_POWER_OFF = 0x4321fedc
1212 MCAST_LEAVE_SOURCE_GROUP = 0x2f 1212 LINUX_REBOOT_CMD_RESTART = 0x1234567
1213 MCAST_MSFILTER = 0x30 1213 LINUX_REBOOT_CMD_RESTART2 = 0xa1b2c3d4
1214 MCAST_UNBLOCK_SOURCE = 0x2c 1214 LINUX_REBOOT_CMD_SW_SUSPEND = 0xd000fce2
1215 MCL_CURRENT = 0x1 1215 LINUX_REBOOT_MAGIC1 = 0xfee1dead
1216 MCL_FUTURE = 0x2 1216 LINUX_REBOOT_MAGIC2 = 0x28121969
1217 MCL_ONFAULT = 0x4 1217 LOCK_EX = 0x2
1218 MFD_ALLOW_SEALING = 0x2 1218 LOCK_NB = 0x4
1219 MFD_CLOEXEC = 0x1 1219 LOCK_SH = 0x1
1220 MFD_HUGETLB = 0x4 1220 LOCK_UN = 0x8
1221 MFD_HUGE_16GB = -0x78000000 1221 LOOP_CLR_FD = 0x4c01
1222 MFD_HUGE_16MB = 0x60000000 1222 LOOP_CTL_ADD = 0x4c80
1223 MFD_HUGE_1GB = 0x78000000 1223 LOOP_CTL_GET_FREE = 0x4c82
1224 MFD_HUGE_1MB = 0x50000000 1224 LOOP_CTL_REMOVE = 0x4c81
1225 MFD_HUGE_256MB = 0x70000000 1225 LOOP_GET_STATUS = 0x4c03
1226 MFD_HUGE_2GB = 0x7c000000 1226 LOOP_GET_STATUS64 = 0x4c05
1227 MFD_HUGE_2MB = 0x54000000 1227 LOOP_SET_BLOCK_SIZE = 0x4c09
1228 MFD_HUGE_32MB = 0x64000000 1228 LOOP_SET_CAPACITY = 0x4c07
1229 MFD_HUGE_512KB = 0x4c000000 1229 LOOP_SET_DIRECT_IO = 0x4c08
1230 MFD_HUGE_512MB = 0x74000000 1230 LOOP_SET_FD = 0x4c00
1231 MFD_HUGE_64KB = 0x40000000 1231 LOOP_SET_STATUS = 0x4c02
1232 MFD_HUGE_8MB = 0x5c000000 1232 LOOP_SET_STATUS64 = 0x4c04
1233 MFD_HUGE_MASK = 0x3f 1233 LO_KEY_SIZE = 0x20
1234 MFD_HUGE_SHIFT = 0x1a 1234 LO_NAME_SIZE = 0x40
1235 MINIX2_SUPER_MAGIC = 0x2468 1235 MADV_COLD = 0x14
1236 MINIX2_SUPER_MAGIC2 = 0x2478 1236 MADV_DODUMP = 0x11
1237 MINIX3_SUPER_MAGIC = 0x4d5a 1237 MADV_DOFORK = 0xb
1238 MINIX_SUPER_MAGIC = 0x137f 1238 MADV_DONTDUMP = 0x10
1239 MINIX_SUPER_MAGIC2 = 0x138f 1239 MADV_DONTFORK = 0xa
1240 MNT_DETACH = 0x2 1240 MADV_DONTNEED = 0x4
1241 MNT_EXPIRE = 0x4 1241 MADV_FREE = 0x8
1242 MNT_FORCE = 0x1 1242 MADV_HUGEPAGE = 0xe
1243 MODULE_INIT_IGNORE_MODVERSIONS = 0x1 1243 MADV_HWPOISON = 0x64
1244 MODULE_INIT_IGNORE_VERMAGIC = 0x2 1244 MADV_KEEPONFORK = 0x13
1245 MSDOS_SUPER_MAGIC = 0x4d44 1245 MADV_MERGEABLE = 0xc
1246 MSG_BATCH = 0x40000 1246 MADV_NOHUGEPAGE = 0xf
1247 MSG_CMSG_CLOEXEC = 0x40000000 1247 MADV_NORMAL = 0x0
1248 MSG_CONFIRM = 0x800 1248 MADV_PAGEOUT = 0x15
1249 MSG_CTRUNC = 0x8 1249 MADV_RANDOM = 0x1
1250 MSG_DONTROUTE = 0x4 1250 MADV_REMOVE = 0x9
1251 MSG_DONTWAIT = 0x40 1251 MADV_SEQUENTIAL = 0x2
1252 MSG_EOR = 0x80 1252 MADV_UNMERGEABLE = 0xd
1253 MSG_ERRQUEUE = 0x2000 1253 MADV_WILLNEED = 0x3
1254 MSG_FASTOPEN = 0x20000000 1254 MADV_WIPEONFORK = 0x12
1255 MSG_FIN = 0x200 1255 MAP_ANON = 0x800
1256 MSG_MORE = 0x8000 1256 MAP_ANONYMOUS = 0x800
1257 MSG_NOSIGNAL = 0x4000 1257 MAP_DENYWRITE = 0x2000
1258 MSG_OOB = 0x1 1258 MAP_EXECUTABLE = 0x4000
1259 MSG_PEEK = 0x2 1259 MAP_FILE = 0x0
1260 MSG_PROXY = 0x10 1260 MAP_FIXED = 0x10
1261 MSG_RST = 0x1000 1261 MAP_FIXED_NOREPLACE = 0x100000
1262 MSG_SYN = 0x400 1262 MAP_GROWSDOWN = 0x1000
1263 MSG_TRUNC = 0x20 1263 MAP_HUGETLB = 0x80000
1264 MSG_TRYHARD = 0x4 1264 MAP_HUGE_MASK = 0x3f
1265 MSG_WAITALL = 0x100 1265 MAP_HUGE_SHIFT = 0x1a
1266 MSG_WAITFORONE = 0x10000 1266 MAP_LOCKED = 0x8000
1267 MSG_ZEROCOPY = 0x4000000 1267 MAP_NONBLOCK = 0x20000
1268 MS_ACTIVE = 0x40000000 1268 MAP_NORESERVE = 0x400
1269 MS_ASYNC = 0x1 1269 MAP_POPULATE = 0x10000
1270 MS_BIND = 0x1000 1270 MAP_PRIVATE = 0x2
1271 MS_BORN = 0x20000000 1271 MAP_RENAME = 0x800
1272 MS_DIRSYNC = 0x80 1272 MAP_SHARED = 0x1
1273 MS_INVALIDATE = 0x2 1273 MAP_SHARED_VALIDATE = 0x3
1274 MS_I_VERSION = 0x800000 1274 MAP_STACK = 0x40000
1275 MS_KERNMOUNT = 0x400000 1275 MAP_TYPE = 0xf
1276 MS_LAZYTIME = 0x2000000 1276 MCAST_BLOCK_SOURCE = 0x2b
1277 MS_MANDLOCK = 0x40 1277 MCAST_EXCLUDE = 0x0
1278 MS_MGC_MSK = 0xffff0000 1278 MCAST_INCLUDE = 0x1
1279 MS_MGC_VAL = 0xc0ed0000 1279 MCAST_JOIN_GROUP = 0x2a
1280 MS_MOVE = 0x2000 1280 MCAST_JOIN_SOURCE_GROUP = 0x2e
1281 MS_NOATIME = 0x400 1281 MCAST_LEAVE_GROUP = 0x2d
1282 MS_NODEV = 0x4 1282 MCAST_LEAVE_SOURCE_GROUP = 0x2f
1283 MS_NODIRATIME = 0x800 1283 MCAST_MSFILTER = 0x30
1284 MS_NOEXEC = 0x8 1284 MCAST_UNBLOCK_SOURCE = 0x2c
1285 MS_NOREMOTELOCK = 0x8000000 1285 MCL_CURRENT = 0x1
1286 MS_NOSEC = 0x10000000 1286 MCL_FUTURE = 0x2
1287 MS_NOSUID = 0x2 1287 MCL_ONFAULT = 0x4
1288 MS_NOUSER = -0x80000000 1288 MFD_ALLOW_SEALING = 0x2
1289 MS_POSIXACL = 0x10000 1289 MFD_CLOEXEC = 0x1
1290 MS_PRIVATE = 0x40000 1290 MFD_HUGETLB = 0x4
1291 MS_RDONLY = 0x1 1291 MFD_HUGE_16GB = -0x78000000
1292 MS_REC = 0x4000 1292 MFD_HUGE_16MB = 0x60000000
1293 MS_RELATIME = 0x200000 1293 MFD_HUGE_1GB = 0x78000000
1294 MS_REMOUNT = 0x20 1294 MFD_HUGE_1MB = 0x50000000
1295 MS_RMT_MASK = 0x2800051 1295 MFD_HUGE_256MB = 0x70000000
1296 MS_SHARED = 0x100000 1296 MFD_HUGE_2GB = 0x7c000000
1297 MS_SILENT = 0x8000 1297 MFD_HUGE_2MB = 0x54000000
1298 MS_SLAVE = 0x80000 1298 MFD_HUGE_32MB = 0x64000000
1299 MS_STRICTATIME = 0x1000000 1299 MFD_HUGE_512KB = 0x4c000000
1300 MS_SUBMOUNT = 0x4000000 1300 MFD_HUGE_512MB = 0x74000000
1301 MS_SYNC = 0x4 1301 MFD_HUGE_64KB = 0x40000000
1302 MS_SYNCHRONOUS = 0x10 1302 MFD_HUGE_8MB = 0x5c000000
1303 MS_UNBINDABLE = 0x20000 1303 MFD_HUGE_MASK = 0x3f
1304 MS_VERBOSE = 0x8000 1304 MFD_HUGE_SHIFT = 0x1a
1305 MTD_INODE_FS_MAGIC = 0x11307854 1305 MINIX2_SUPER_MAGIC = 0x2468
1306 NAME_MAX = 0xff 1306 MINIX2_SUPER_MAGIC2 = 0x2478
1307 NCP_SUPER_MAGIC = 0x564c 1307 MINIX3_SUPER_MAGIC = 0x4d5a
1308 NETLINK_ADD_MEMBERSHIP = 0x1 1308 MINIX_SUPER_MAGIC = 0x137f
1309 NETLINK_AUDIT = 0x9 1309 MINIX_SUPER_MAGIC2 = 0x138f
1310 NETLINK_BROADCAST_ERROR = 0x4 1310 MNT_DETACH = 0x2
1311 NETLINK_CAP_ACK = 0xa 1311 MNT_EXPIRE = 0x4
1312 NETLINK_CONNECTOR = 0xb 1312 MNT_FORCE = 0x1
1313 NETLINK_CRYPTO = 0x15 1313 MODULE_INIT_IGNORE_MODVERSIONS = 0x1
1314 NETLINK_DNRTMSG = 0xe 1314 MODULE_INIT_IGNORE_VERMAGIC = 0x2
1315 NETLINK_DROP_MEMBERSHIP = 0x2 1315 MSDOS_SUPER_MAGIC = 0x4d44
1316 NETLINK_ECRYPTFS = 0x13 1316 MSG_BATCH = 0x40000
1317 NETLINK_EXT_ACK = 0xb 1317 MSG_CMSG_CLOEXEC = 0x40000000
1318 NETLINK_FIB_LOOKUP = 0xa 1318 MSG_CONFIRM = 0x800
1319 NETLINK_FIREWALL = 0x3 1319 MSG_CTRUNC = 0x8
1320 NETLINK_GENERIC = 0x10 1320 MSG_DONTROUTE = 0x4
1321 NETLINK_GET_STRICT_CHK = 0xc 1321 MSG_DONTWAIT = 0x40
1322 NETLINK_INET_DIAG = 0x4 1322 MSG_EOR = 0x80
1323 NETLINK_IP6_FW = 0xd 1323 MSG_ERRQUEUE = 0x2000
1324 NETLINK_ISCSI = 0x8 1324 MSG_FASTOPEN = 0x20000000
1325 NETLINK_KOBJECT_UEVENT = 0xf 1325 MSG_FIN = 0x200
1326 NETLINK_LISTEN_ALL_NSID = 0x8 1326 MSG_MORE = 0x8000
1327 NETLINK_LIST_MEMBERSHIPS = 0x9 1327 MSG_NOSIGNAL = 0x4000
1328 NETLINK_NETFILTER = 0xc 1328 MSG_OOB = 0x1
1329 NETLINK_NFLOG = 0x5 1329 MSG_PEEK = 0x2
1330 NETLINK_NO_ENOBUFS = 0x5 1330 MSG_PROXY = 0x10
1331 NETLINK_PKTINFO = 0x3 1331 MSG_RST = 0x1000
1332 NETLINK_RDMA = 0x14 1332 MSG_SYN = 0x400
1333 NETLINK_ROUTE = 0x0 1333 MSG_TRUNC = 0x20
1334 NETLINK_RX_RING = 0x6 1334 MSG_TRYHARD = 0x4
1335 NETLINK_SCSITRANSPORT = 0x12 1335 MSG_WAITALL = 0x100
1336 NETLINK_SELINUX = 0x7 1336 MSG_WAITFORONE = 0x10000
1337 NETLINK_SMC = 0x16 1337 MSG_ZEROCOPY = 0x4000000
1338 NETLINK_SOCK_DIAG = 0x4 1338 MS_ACTIVE = 0x40000000
1339 NETLINK_TX_RING = 0x7 1339 MS_ASYNC = 0x1
1340 NETLINK_UNUSED = 0x1 1340 MS_BIND = 0x1000
1341 NETLINK_USERSOCK = 0x2 1341 MS_BORN = 0x20000000
1342 NETLINK_XFRM = 0x6 1342 MS_DIRSYNC = 0x80
1343 NETNSA_MAX = 0x5 1343 MS_INVALIDATE = 0x2
1344 NETNSA_NSID_NOT_ASSIGNED = -0x1 1344 MS_I_VERSION = 0x800000
1345 NFNETLINK_V0 = 0x0 1345 MS_KERNMOUNT = 0x400000
1346 NFNLGRP_ACCT_QUOTA = 0x8 1346 MS_LAZYTIME = 0x2000000
1347 NFNLGRP_CONNTRACK_DESTROY = 0x3 1347 MS_MANDLOCK = 0x40
1348 NFNLGRP_CONNTRACK_EXP_DESTROY = 0x6 1348 MS_MGC_MSK = 0xffff0000
1349 NFNLGRP_CONNTRACK_EXP_NEW = 0x4 1349 MS_MGC_VAL = 0xc0ed0000
1350 NFNLGRP_CONNTRACK_EXP_UPDATE = 0x5 1350 MS_MOVE = 0x2000
1351 NFNLGRP_CONNTRACK_NEW = 0x1 1351 MS_NOATIME = 0x400
1352 NFNLGRP_CONNTRACK_UPDATE = 0x2 1352 MS_NODEV = 0x4
1353 NFNLGRP_MAX = 0x9 1353 MS_NODIRATIME = 0x800
1354 NFNLGRP_NFTABLES = 0x7 1354 MS_NOEXEC = 0x8
1355 NFNLGRP_NFTRACE = 0x9 1355 MS_NOREMOTELOCK = 0x8000000
1356 NFNLGRP_NONE = 0x0 1356 MS_NOSEC = 0x10000000
1357 NFNL_BATCH_MAX = 0x1 1357 MS_NOSUID = 0x2
1358 NFNL_MSG_BATCH_BEGIN = 0x10 1358 MS_NOUSER = -0x80000000
1359 NFNL_MSG_BATCH_END = 0x11 1359 MS_POSIXACL = 0x10000
1360 NFNL_NFA_NEST = 0x8000 1360 MS_PRIVATE = 0x40000
1361 NFNL_SUBSYS_ACCT = 0x7 1361 MS_RDONLY = 0x1
1362 NFNL_SUBSYS_COUNT = 0xc 1362 MS_REC = 0x4000
1363 NFNL_SUBSYS_CTHELPER = 0x9 1363 MS_RELATIME = 0x200000
1364 NFNL_SUBSYS_CTNETLINK = 0x1 1364 MS_REMOUNT = 0x20
1365 NFNL_SUBSYS_CTNETLINK_EXP = 0x2 1365 MS_RMT_MASK = 0x2800051
1366 NFNL_SUBSYS_CTNETLINK_TIMEOUT = 0x8 1366 MS_SHARED = 0x100000
1367 NFNL_SUBSYS_IPSET = 0x6 1367 MS_SILENT = 0x8000
1368 NFNL_SUBSYS_NFTABLES = 0xa 1368 MS_SLAVE = 0x80000
1369 NFNL_SUBSYS_NFT_COMPAT = 0xb 1369 MS_STRICTATIME = 0x1000000
1370 NFNL_SUBSYS_NONE = 0x0 1370 MS_SUBMOUNT = 0x4000000
1371 NFNL_SUBSYS_OSF = 0x5 1371 MS_SYNC = 0x4
1372 NFNL_SUBSYS_QUEUE = 0x3 1372 MS_SYNCHRONOUS = 0x10
1373 NFNL_SUBSYS_ULOG = 0x4 1373 MS_UNBINDABLE = 0x20000
1374 NFS_SUPER_MAGIC = 0x6969 1374 MS_VERBOSE = 0x8000
1375 NILFS_SUPER_MAGIC = 0x3434 1375 MTD_INODE_FS_MAGIC = 0x11307854
1376 NL0 = 0x0 1376 NAME_MAX = 0xff
1377 NL1 = 0x100 1377 NCP_SUPER_MAGIC = 0x564c
1378 NLA_ALIGNTO = 0x4 1378 NETLINK_ADD_MEMBERSHIP = 0x1
1379 NLA_F_NESTED = 0x8000 1379 NETLINK_AUDIT = 0x9
1380 NLA_F_NET_BYTEORDER = 0x4000 1380 NETLINK_BROADCAST_ERROR = 0x4
1381 NLA_HDRLEN = 0x4 1381 NETLINK_CAP_ACK = 0xa
1382 NLDLY = 0x100 1382 NETLINK_CONNECTOR = 0xb
1383 NLMSG_ALIGNTO = 0x4 1383 NETLINK_CRYPTO = 0x15
1384 NLMSG_DONE = 0x3 1384 NETLINK_DNRTMSG = 0xe
1385 NLMSG_ERROR = 0x2 1385 NETLINK_DROP_MEMBERSHIP = 0x2
1386 NLMSG_HDRLEN = 0x10 1386 NETLINK_ECRYPTFS = 0x13
1387 NLMSG_MIN_TYPE = 0x10 1387 NETLINK_EXT_ACK = 0xb
1388 NLMSG_NOOP = 0x1 1388 NETLINK_FIB_LOOKUP = 0xa
1389 NLMSG_OVERRUN = 0x4 1389 NETLINK_FIREWALL = 0x3
1390 NLM_F_ACK = 0x4 1390 NETLINK_GENERIC = 0x10
1391 NLM_F_ACK_TLVS = 0x200 1391 NETLINK_GET_STRICT_CHK = 0xc
1392 NLM_F_APPEND = 0x800 1392 NETLINK_INET_DIAG = 0x4
1393 NLM_F_ATOMIC = 0x400 1393 NETLINK_IP6_FW = 0xd
1394 NLM_F_CAPPED = 0x100 1394 NETLINK_ISCSI = 0x8
1395 NLM_F_CREATE = 0x400 1395 NETLINK_KOBJECT_UEVENT = 0xf
1396 NLM_F_DUMP = 0x300 1396 NETLINK_LISTEN_ALL_NSID = 0x8
1397 NLM_F_DUMP_FILTERED = 0x20 1397 NETLINK_LIST_MEMBERSHIPS = 0x9
1398 NLM_F_DUMP_INTR = 0x10 1398 NETLINK_NETFILTER = 0xc
1399 NLM_F_ECHO = 0x8 1399 NETLINK_NFLOG = 0x5
1400 NLM_F_EXCL = 0x200 1400 NETLINK_NO_ENOBUFS = 0x5
1401 NLM_F_MATCH = 0x200 1401 NETLINK_PKTINFO = 0x3
1402 NLM_F_MULTI = 0x2 1402 NETLINK_RDMA = 0x14
1403 NLM_F_NONREC = 0x100 1403 NETLINK_ROUTE = 0x0
1404 NLM_F_REPLACE = 0x100 1404 NETLINK_RX_RING = 0x6
1405 NLM_F_REQUEST = 0x1 1405 NETLINK_SCSITRANSPORT = 0x12
1406 NLM_F_ROOT = 0x100 1406 NETLINK_SELINUX = 0x7
1407 NOFLSH = 0x80 1407 NETLINK_SMC = 0x16
1408 NSFS_MAGIC = 0x6e736673 1408 NETLINK_SOCK_DIAG = 0x4
1409 NS_GET_NSTYPE = 0x2000b703 1409 NETLINK_TX_RING = 0x7
1410 NS_GET_OWNER_UID = 0x2000b704 1410 NETLINK_UNUSED = 0x1
1411 NS_GET_PARENT = 0x2000b702 1411 NETLINK_USERSOCK = 0x2
1412 NS_GET_USERNS = 0x2000b701 1412 NETLINK_XFRM = 0x6
1413 OCFS2_SUPER_MAGIC = 0x7461636f 1413 NETNSA_MAX = 0x5
1414 OCRNL = 0x8 1414 NETNSA_NSID_NOT_ASSIGNED = -0x1
1415 OFDEL = 0x80 1415 NFDBITS = 0x40
1416 OFILL = 0x40 1416 NFNETLINK_V0 = 0x0
1417 OLCUC = 0x2 1417 NFNLGRP_ACCT_QUOTA = 0x8
1418 ONLCR = 0x4 1418 NFNLGRP_CONNTRACK_DESTROY = 0x3
1419 ONLRET = 0x20 1419 NFNLGRP_CONNTRACK_EXP_DESTROY = 0x6
1420 ONOCR = 0x10 1420 NFNLGRP_CONNTRACK_EXP_NEW = 0x4
1421 OPENPROM_SUPER_MAGIC = 0x9fa1 1421 NFNLGRP_CONNTRACK_EXP_UPDATE = 0x5
1422 OPOST = 0x1 1422 NFNLGRP_CONNTRACK_NEW = 0x1
1423 OVERLAYFS_SUPER_MAGIC = 0x794c7630 1423 NFNLGRP_CONNTRACK_UPDATE = 0x2
1424 O_ACCMODE = 0x3 1424 NFNLGRP_MAX = 0x9
1425 O_APPEND = 0x8 1425 NFNLGRP_NFTABLES = 0x7
1426 O_ASYNC = 0x1000 1426 NFNLGRP_NFTRACE = 0x9
1427 O_CLOEXEC = 0x80000 1427 NFNLGRP_NONE = 0x0
1428 O_CREAT = 0x100 1428 NFNL_BATCH_MAX = 0x1
1429 O_DIRECT = 0x8000 1429 NFNL_MSG_BATCH_BEGIN = 0x10
1430 O_DIRECTORY = 0x10000 1430 NFNL_MSG_BATCH_END = 0x11
1431 O_DSYNC = 0x10 1431 NFNL_NFA_NEST = 0x8000
1432 O_EXCL = 0x400 1432 NFNL_SUBSYS_ACCT = 0x7
1433 O_FSYNC = 0x4010 1433 NFNL_SUBSYS_COUNT = 0xc
1434 O_LARGEFILE = 0x0 1434 NFNL_SUBSYS_CTHELPER = 0x9
1435 O_NDELAY = 0x80 1435 NFNL_SUBSYS_CTNETLINK = 0x1
1436 O_NOATIME = 0x40000 1436 NFNL_SUBSYS_CTNETLINK_EXP = 0x2
1437 O_NOCTTY = 0x800 1437 NFNL_SUBSYS_CTNETLINK_TIMEOUT = 0x8
1438 O_NOFOLLOW = 0x20000 1438 NFNL_SUBSYS_IPSET = 0x6
1439 O_NONBLOCK = 0x80 1439 NFNL_SUBSYS_NFTABLES = 0xa
1440 O_PATH = 0x200000 1440 NFNL_SUBSYS_NFT_COMPAT = 0xb
1441 O_RDONLY = 0x0 1441 NFNL_SUBSYS_NONE = 0x0
1442 O_RDWR = 0x2 1442 NFNL_SUBSYS_OSF = 0x5
1443 O_RSYNC = 0x4010 1443 NFNL_SUBSYS_QUEUE = 0x3
1444 O_SYNC = 0x4010 1444 NFNL_SUBSYS_ULOG = 0x4
1445 O_TMPFILE = 0x410000 1445 NFS_SUPER_MAGIC = 0x6969
1446 O_TRUNC = 0x200 1446 NILFS_SUPER_MAGIC = 0x3434
1447 O_WRONLY = 0x1 1447 NL0 = 0x0
1448 PACKET_ADD_MEMBERSHIP = 0x1 1448 NL1 = 0x100
1449 PACKET_AUXDATA = 0x8 1449 NLA_ALIGNTO = 0x4
1450 PACKET_BROADCAST = 0x1 1450 NLA_F_NESTED = 0x8000
1451 PACKET_COPY_THRESH = 0x7 1451 NLA_F_NET_BYTEORDER = 0x4000
1452 PACKET_DROP_MEMBERSHIP = 0x2 1452 NLA_HDRLEN = 0x4
1453 PACKET_FANOUT = 0x12 1453 NLDLY = 0x100
1454 PACKET_FANOUT_CBPF = 0x6 1454 NLMSG_ALIGNTO = 0x4
1455 PACKET_FANOUT_CPU = 0x2 1455 NLMSG_DONE = 0x3
1456 PACKET_FANOUT_DATA = 0x16 1456 NLMSG_ERROR = 0x2
1457 PACKET_FANOUT_EBPF = 0x7 1457 NLMSG_HDRLEN = 0x10
1458 PACKET_FANOUT_FLAG_DEFRAG = 0x8000 1458 NLMSG_MIN_TYPE = 0x10
1459 PACKET_FANOUT_FLAG_ROLLOVER = 0x1000 1459 NLMSG_NOOP = 0x1
1460 PACKET_FANOUT_FLAG_UNIQUEID = 0x2000 1460 NLMSG_OVERRUN = 0x4
1461 PACKET_FANOUT_HASH = 0x0 1461 NLM_F_ACK = 0x4
1462 PACKET_FANOUT_LB = 0x1 1462 NLM_F_ACK_TLVS = 0x200
1463 PACKET_FANOUT_QM = 0x5 1463 NLM_F_APPEND = 0x800
1464 PACKET_FANOUT_RND = 0x4 1464 NLM_F_ATOMIC = 0x400
1465 PACKET_FANOUT_ROLLOVER = 0x3 1465 NLM_F_CAPPED = 0x100
1466 PACKET_FASTROUTE = 0x6 1466 NLM_F_CREATE = 0x400
1467 PACKET_HDRLEN = 0xb 1467 NLM_F_DUMP = 0x300
1468 PACKET_HOST = 0x0 1468 NLM_F_DUMP_FILTERED = 0x20
1469 PACKET_IGNORE_OUTGOING = 0x17 1469 NLM_F_DUMP_INTR = 0x10
1470 PACKET_KERNEL = 0x7 1470 NLM_F_ECHO = 0x8
1471 PACKET_LOOPBACK = 0x5 1471 NLM_F_EXCL = 0x200
1472 PACKET_LOSS = 0xe 1472 NLM_F_MATCH = 0x200
1473 PACKET_MR_ALLMULTI = 0x2 1473 NLM_F_MULTI = 0x2
1474 PACKET_MR_MULTICAST = 0x0 1474 NLM_F_NONREC = 0x100
1475 PACKET_MR_PROMISC = 0x1 1475 NLM_F_REPLACE = 0x100
1476 PACKET_MR_UNICAST = 0x3 1476 NLM_F_REQUEST = 0x1
1477 PACKET_MULTICAST = 0x2 1477 NLM_F_ROOT = 0x100
1478 PACKET_ORIGDEV = 0x9 1478 NOFLSH = 0x80
1479 PACKET_OTHERHOST = 0x3 1479 NSFS_MAGIC = 0x6e736673
1480 PACKET_OUTGOING = 0x4 1480 NS_GET_NSTYPE = 0x2000b703
1481 PACKET_QDISC_BYPASS = 0x14 1481 NS_GET_OWNER_UID = 0x2000b704
1482 PACKET_RECV_OUTPUT = 0x3 1482 NS_GET_PARENT = 0x2000b702
1483 PACKET_RESERVE = 0xc 1483 NS_GET_USERNS = 0x2000b701
1484 PACKET_ROLLOVER_STATS = 0x15 1484 OCFS2_SUPER_MAGIC = 0x7461636f
1485 PACKET_RX_RING = 0x5 1485 OCRNL = 0x8
1486 PACKET_STATISTICS = 0x6 1486 OFDEL = 0x80
1487 PACKET_TIMESTAMP = 0x11 1487 OFILL = 0x40
1488 PACKET_TX_HAS_OFF = 0x13 1488 OLCUC = 0x2
1489 PACKET_TX_RING = 0xd 1489 ONLCR = 0x4
1490 PACKET_TX_TIMESTAMP = 0x10 1490 ONLRET = 0x20
1491 PACKET_USER = 0x6 1491 ONOCR = 0x10
1492 PACKET_VERSION = 0xa 1492 OPENPROM_SUPER_MAGIC = 0x9fa1
1493 PACKET_VNET_HDR = 0xf 1493 OPOST = 0x1
1494 PARENB = 0x100 1494 OVERLAYFS_SUPER_MAGIC = 0x794c7630
1495 PARITY_CRC16_PR0 = 0x2 1495 O_ACCMODE = 0x3
1496 PARITY_CRC16_PR0_CCITT = 0x4 1496 O_APPEND = 0x8
1497 PARITY_CRC16_PR1 = 0x3 1497 O_ASYNC = 0x1000
1498 PARITY_CRC16_PR1_CCITT = 0x5 1498 O_CLOEXEC = 0x80000
1499 PARITY_CRC32_PR0_CCITT = 0x6 1499 O_CREAT = 0x100
1500 PARITY_CRC32_PR1_CCITT = 0x7 1500 O_DIRECT = 0x8000
1501 PARITY_DEFAULT = 0x0 1501 O_DIRECTORY = 0x10000
1502 PARITY_NONE = 0x1 1502 O_DSYNC = 0x10
1503 PARMRK = 0x8 1503 O_EXCL = 0x400
1504 PARODD = 0x200 1504 O_FSYNC = 0x4010
1505 PENDIN = 0x4000 1505 O_LARGEFILE = 0x0
1506 PERF_EVENT_IOC_DISABLE = 0x20002401 1506 O_NDELAY = 0x80
1507 PERF_EVENT_IOC_ENABLE = 0x20002400 1507 O_NOATIME = 0x40000
1508 PERF_EVENT_IOC_ID = 0x40082407 1508 O_NOCTTY = 0x800
1509 PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x8008240b 1509 O_NOFOLLOW = 0x20000
1510 PERF_EVENT_IOC_PAUSE_OUTPUT = 0x80042409 1510 O_NONBLOCK = 0x80
1511 PERF_EVENT_IOC_PERIOD = 0x80082404 1511 O_PATH = 0x200000
1512 PERF_EVENT_IOC_QUERY_BPF = 0xc008240a 1512 O_RDONLY = 0x0
1513 PERF_EVENT_IOC_REFRESH = 0x20002402 1513 O_RDWR = 0x2
1514 PERF_EVENT_IOC_RESET = 0x20002403 1514 O_RSYNC = 0x4010
1515 PERF_EVENT_IOC_SET_BPF = 0x80042408 1515 O_SYNC = 0x4010
1516 PERF_EVENT_IOC_SET_FILTER = 0x80082406 1516 O_TMPFILE = 0x410000
1517 PERF_EVENT_IOC_SET_OUTPUT = 0x20002405 1517 O_TRUNC = 0x200
1518 PIPEFS_MAGIC = 0x50495045 1518 O_WRONLY = 0x1
1519 PPPIOCATTACH = 0x8004743d 1519 PACKET_ADD_MEMBERSHIP = 0x1
1520 PPPIOCATTCHAN = 0x80047438 1520 PACKET_AUXDATA = 0x8
1521 PPPIOCCONNECT = 0x8004743a 1521 PACKET_BROADCAST = 0x1
1522 PPPIOCDETACH = 0x8004743c 1522 PACKET_COPY_THRESH = 0x7
1523 PPPIOCDISCONN = 0x20007439 1523 PACKET_DROP_MEMBERSHIP = 0x2
1524 PPPIOCGASYNCMAP = 0x40047458 1524 PACKET_FANOUT = 0x12
1525 PPPIOCGCHAN = 0x40047437 1525 PACKET_FANOUT_CBPF = 0x6
1526 PPPIOCGDEBUG = 0x40047441 1526 PACKET_FANOUT_CPU = 0x2
1527 PPPIOCGFLAGS = 0x4004745a 1527 PACKET_FANOUT_DATA = 0x16
1528 PPPIOCGIDLE = 0x4010743f 1528 PACKET_FANOUT_EBPF = 0x7
1529 PPPIOCGL2TPSTATS = 0x40487436 1529 PACKET_FANOUT_FLAG_DEFRAG = 0x8000
1530 PPPIOCGMRU = 0x40047453 1530 PACKET_FANOUT_FLAG_ROLLOVER = 0x1000
1531 PPPIOCGNPMODE = 0xc008744c 1531 PACKET_FANOUT_FLAG_UNIQUEID = 0x2000
1532 PPPIOCGRASYNCMAP = 0x40047455 1532 PACKET_FANOUT_HASH = 0x0
1533 PPPIOCGUNIT = 0x40047456 1533 PACKET_FANOUT_LB = 0x1
1534 PPPIOCGXASYNCMAP = 0x40207450 1534 PACKET_FANOUT_QM = 0x5
1535 PPPIOCNEWUNIT = 0xc004743e 1535 PACKET_FANOUT_RND = 0x4
1536 PPPIOCSACTIVE = 0x80107446 1536 PACKET_FANOUT_ROLLOVER = 0x3
1537 PPPIOCSASYNCMAP = 0x80047457 1537 PACKET_FASTROUTE = 0x6
1538 PPPIOCSCOMPRESS = 0x8010744d 1538 PACKET_HDRLEN = 0xb
1539 PPPIOCSDEBUG = 0x80047440 1539 PACKET_HOST = 0x0
1540 PPPIOCSFLAGS = 0x80047459 1540 PACKET_IGNORE_OUTGOING = 0x17
1541 PPPIOCSMAXCID = 0x80047451 1541 PACKET_KERNEL = 0x7
1542 PPPIOCSMRRU = 0x8004743b 1542 PACKET_LOOPBACK = 0x5
1543 PPPIOCSMRU = 0x80047452 1543 PACKET_LOSS = 0xe
1544 PPPIOCSNPMODE = 0x8008744b 1544 PACKET_MR_ALLMULTI = 0x2
1545 PPPIOCSPASS = 0x80107447 1545 PACKET_MR_MULTICAST = 0x0
1546 PPPIOCSRASYNCMAP = 0x80047454 1546 PACKET_MR_PROMISC = 0x1
1547 PPPIOCSXASYNCMAP = 0x8020744f 1547 PACKET_MR_UNICAST = 0x3
1548 PPPIOCXFERUNIT = 0x2000744e 1548 PACKET_MULTICAST = 0x2
1549 PRIO_PGRP = 0x1 1549 PACKET_ORIGDEV = 0x9
1550 PRIO_PROCESS = 0x0 1550 PACKET_OTHERHOST = 0x3
1551 PRIO_USER = 0x2 1551 PACKET_OUTGOING = 0x4
1552 PROC_SUPER_MAGIC = 0x9fa0 1552 PACKET_QDISC_BYPASS = 0x14
1553 PROT_EXEC = 0x4 1553 PACKET_RECV_OUTPUT = 0x3
1554 PROT_GROWSDOWN = 0x1000000 1554 PACKET_RESERVE = 0xc
1555 PROT_GROWSUP = 0x2000000 1555 PACKET_ROLLOVER_STATS = 0x15
1556 PROT_NONE = 0x0 1556 PACKET_RX_RING = 0x5
1557 PROT_READ = 0x1 1557 PACKET_STATISTICS = 0x6
1558 PROT_WRITE = 0x2 1558 PACKET_TIMESTAMP = 0x11
1559 PR_CAPBSET_DROP = 0x18 1559 PACKET_TX_HAS_OFF = 0x13
1560 PR_CAPBSET_READ = 0x17 1560 PACKET_TX_RING = 0xd
1561 PR_CAP_AMBIENT = 0x2f 1561 PACKET_TX_TIMESTAMP = 0x10
1562 PR_CAP_AMBIENT_CLEAR_ALL = 0x4 1562 PACKET_USER = 0x6
1563 PR_CAP_AMBIENT_IS_SET = 0x1 1563 PACKET_VERSION = 0xa
1564 PR_CAP_AMBIENT_LOWER = 0x3 1564 PACKET_VNET_HDR = 0xf
1565 PR_CAP_AMBIENT_RAISE = 0x2 1565 PARENB = 0x100
1566 PR_ENDIAN_BIG = 0x0 1566 PARITY_CRC16_PR0 = 0x2
1567 PR_ENDIAN_LITTLE = 0x1 1567 PARITY_CRC16_PR0_CCITT = 0x4
1568 PR_ENDIAN_PPC_LITTLE = 0x2 1568 PARITY_CRC16_PR1 = 0x3
1569 PR_FPEMU_NOPRINT = 0x1 1569 PARITY_CRC16_PR1_CCITT = 0x5
1570 PR_FPEMU_SIGFPE = 0x2 1570 PARITY_CRC32_PR0_CCITT = 0x6
1571 PR_FP_EXC_ASYNC = 0x2 1571 PARITY_CRC32_PR1_CCITT = 0x7
1572 PR_FP_EXC_DISABLED = 0x0 1572 PARITY_DEFAULT = 0x0
1573 PR_FP_EXC_DIV = 0x10000 1573 PARITY_NONE = 0x1
1574 PR_FP_EXC_INV = 0x100000 1574 PARMRK = 0x8
1575 PR_FP_EXC_NONRECOV = 0x1 1575 PARODD = 0x200
1576 PR_FP_EXC_OVF = 0x20000 1576 PENDIN = 0x4000
1577 PR_FP_EXC_PRECISE = 0x3 1577 PERF_EVENT_IOC_DISABLE = 0x20002401
1578 PR_FP_EXC_RES = 0x80000 1578 PERF_EVENT_IOC_ENABLE = 0x20002400
1579 PR_FP_EXC_SW_ENABLE = 0x80 1579 PERF_EVENT_IOC_ID = 0x40082407
1580 PR_FP_EXC_UND = 0x40000 1580 PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x8008240b
1581 PR_FP_MODE_FR = 0x1 1581 PERF_EVENT_IOC_PAUSE_OUTPUT = 0x80042409
1582 PR_FP_MODE_FRE = 0x2 1582 PERF_EVENT_IOC_PERIOD = 0x80082404
1583 PR_GET_CHILD_SUBREAPER = 0x25 1583 PERF_EVENT_IOC_QUERY_BPF = 0xc008240a
1584 PR_GET_DUMPABLE = 0x3 1584 PERF_EVENT_IOC_REFRESH = 0x20002402
1585 PR_GET_ENDIAN = 0x13 1585 PERF_EVENT_IOC_RESET = 0x20002403
1586 PR_GET_FPEMU = 0x9 1586 PERF_EVENT_IOC_SET_BPF = 0x80042408
1587 PR_GET_FPEXC = 0xb 1587 PERF_EVENT_IOC_SET_FILTER = 0x80082406
1588 PR_GET_FP_MODE = 0x2e 1588 PERF_EVENT_IOC_SET_OUTPUT = 0x20002405
1589 PR_GET_KEEPCAPS = 0x7 1589 PIPEFS_MAGIC = 0x50495045
1590 PR_GET_NAME = 0x10 1590 PPC_CMM_MAGIC = 0xc7571590
1591 PR_GET_NO_NEW_PRIVS = 0x27 1591 PPPIOCATTACH = 0x8004743d
1592 PR_GET_PDEATHSIG = 0x2 1592 PPPIOCATTCHAN = 0x80047438
1593 PR_GET_SECCOMP = 0x15 1593 PPPIOCCONNECT = 0x8004743a
1594 PR_GET_SECUREBITS = 0x1b 1594 PPPIOCDETACH = 0x8004743c
1595 PR_GET_SPECULATION_CTRL = 0x34 1595 PPPIOCDISCONN = 0x20007439
1596 PR_GET_THP_DISABLE = 0x2a 1596 PPPIOCGASYNCMAP = 0x40047458
1597 PR_GET_TID_ADDRESS = 0x28 1597 PPPIOCGCHAN = 0x40047437
1598 PR_GET_TIMERSLACK = 0x1e 1598 PPPIOCGDEBUG = 0x40047441
1599 PR_GET_TIMING = 0xd 1599 PPPIOCGFLAGS = 0x4004745a
1600 PR_GET_TSC = 0x19 1600 PPPIOCGIDLE = 0x4010743f
1601 PR_GET_UNALIGN = 0x5 1601 PPPIOCGIDLE32 = 0x4008743f
1602 PR_MCE_KILL = 0x21 1602 PPPIOCGIDLE64 = 0x4010743f
1603 PR_MCE_KILL_CLEAR = 0x0 1603 PPPIOCGL2TPSTATS = 0x40487436
1604 PR_MCE_KILL_DEFAULT = 0x2 1604 PPPIOCGMRU = 0x40047453
1605 PR_MCE_KILL_EARLY = 0x1 1605 PPPIOCGNPMODE = 0xc008744c
1606 PR_MCE_KILL_GET = 0x22 1606 PPPIOCGRASYNCMAP = 0x40047455
1607 PR_MCE_KILL_LATE = 0x0 1607 PPPIOCGUNIT = 0x40047456
1608 PR_MCE_KILL_SET = 0x1 1608 PPPIOCGXASYNCMAP = 0x40207450
1609 PR_MPX_DISABLE_MANAGEMENT = 0x2c 1609 PPPIOCNEWUNIT = 0xc004743e
1610 PR_MPX_ENABLE_MANAGEMENT = 0x2b 1610 PPPIOCSACTIVE = 0x80107446
1611 PR_PAC_APDAKEY = 0x4 1611 PPPIOCSASYNCMAP = 0x80047457
1612 PR_PAC_APDBKEY = 0x8 1612 PPPIOCSCOMPRESS = 0x8010744d
1613 PR_PAC_APGAKEY = 0x10 1613 PPPIOCSDEBUG = 0x80047440
1614 PR_PAC_APIAKEY = 0x1 1614 PPPIOCSFLAGS = 0x80047459
1615 PR_PAC_APIBKEY = 0x2 1615 PPPIOCSMAXCID = 0x80047451
1616 PR_PAC_RESET_KEYS = 0x36 1616 PPPIOCSMRRU = 0x8004743b
1617 PR_SET_CHILD_SUBREAPER = 0x24 1617 PPPIOCSMRU = 0x80047452
1618 PR_SET_DUMPABLE = 0x4 1618 PPPIOCSNPMODE = 0x8008744b
1619 PR_SET_ENDIAN = 0x14 1619 PPPIOCSPASS = 0x80107447
1620 PR_SET_FPEMU = 0xa 1620 PPPIOCSRASYNCMAP = 0x80047454
1621 PR_SET_FPEXC = 0xc 1621 PPPIOCSXASYNCMAP = 0x8020744f
1622 PR_SET_FP_MODE = 0x2d 1622 PPPIOCXFERUNIT = 0x2000744e
1623 PR_SET_KEEPCAPS = 0x8 1623 PRIO_PGRP = 0x1
1624 PR_SET_MM = 0x23 1624 PRIO_PROCESS = 0x0
1625 PR_SET_MM_ARG_END = 0x9 1625 PRIO_USER = 0x2
1626 PR_SET_MM_ARG_START = 0x8 1626 PROC_SUPER_MAGIC = 0x9fa0
1627 PR_SET_MM_AUXV = 0xc 1627 PROT_EXEC = 0x4
1628 PR_SET_MM_BRK = 0x7 1628 PROT_GROWSDOWN = 0x1000000
1629 PR_SET_MM_END_CODE = 0x2 1629 PROT_GROWSUP = 0x2000000
1630 PR_SET_MM_END_DATA = 0x4 1630 PROT_NONE = 0x0
1631 PR_SET_MM_ENV_END = 0xb 1631 PROT_READ = 0x1
1632 PR_SET_MM_ENV_START = 0xa 1632 PROT_WRITE = 0x2
1633 PR_SET_MM_EXE_FILE = 0xd 1633 PR_CAPBSET_DROP = 0x18
1634 PR_SET_MM_MAP = 0xe 1634 PR_CAPBSET_READ = 0x17
1635 PR_SET_MM_MAP_SIZE = 0xf 1635 PR_CAP_AMBIENT = 0x2f
1636 PR_SET_MM_START_BRK = 0x6 1636 PR_CAP_AMBIENT_CLEAR_ALL = 0x4
1637 PR_SET_MM_START_CODE = 0x1 1637 PR_CAP_AMBIENT_IS_SET = 0x1
1638 PR_SET_MM_START_DATA = 0x3 1638 PR_CAP_AMBIENT_LOWER = 0x3
1639 PR_SET_MM_START_STACK = 0x5 1639 PR_CAP_AMBIENT_RAISE = 0x2
1640 PR_SET_NAME = 0xf 1640 PR_ENDIAN_BIG = 0x0
1641 PR_SET_NO_NEW_PRIVS = 0x26 1641 PR_ENDIAN_LITTLE = 0x1
1642 PR_SET_PDEATHSIG = 0x1 1642 PR_ENDIAN_PPC_LITTLE = 0x2
1643 PR_SET_PTRACER = 0x59616d61 1643 PR_FPEMU_NOPRINT = 0x1
1644 PR_SET_PTRACER_ANY = 0xffffffffffffffff 1644 PR_FPEMU_SIGFPE = 0x2
1645 PR_SET_SECCOMP = 0x16 1645 PR_FP_EXC_ASYNC = 0x2
1646 PR_SET_SECUREBITS = 0x1c 1646 PR_FP_EXC_DISABLED = 0x0
1647 PR_SET_SPECULATION_CTRL = 0x35 1647 PR_FP_EXC_DIV = 0x10000
1648 PR_SET_THP_DISABLE = 0x29 1648 PR_FP_EXC_INV = 0x100000
1649 PR_SET_TIMERSLACK = 0x1d 1649 PR_FP_EXC_NONRECOV = 0x1
1650 PR_SET_TIMING = 0xe 1650 PR_FP_EXC_OVF = 0x20000
1651 PR_SET_TSC = 0x1a 1651 PR_FP_EXC_PRECISE = 0x3
1652 PR_SET_UNALIGN = 0x6 1652 PR_FP_EXC_RES = 0x80000
1653 PR_SPEC_DISABLE = 0x4 1653 PR_FP_EXC_SW_ENABLE = 0x80
1654 PR_SPEC_DISABLE_NOEXEC = 0x10 1654 PR_FP_EXC_UND = 0x40000
1655 PR_SPEC_ENABLE = 0x2 1655 PR_FP_MODE_FR = 0x1
1656 PR_SPEC_FORCE_DISABLE = 0x8 1656 PR_FP_MODE_FRE = 0x2
1657 PR_SPEC_INDIRECT_BRANCH = 0x1 1657 PR_GET_CHILD_SUBREAPER = 0x25
1658 PR_SPEC_NOT_AFFECTED = 0x0 1658 PR_GET_DUMPABLE = 0x3
1659 PR_SPEC_PRCTL = 0x1 1659 PR_GET_ENDIAN = 0x13
1660 PR_SPEC_STORE_BYPASS = 0x0 1660 PR_GET_FPEMU = 0x9
1661 PR_SVE_GET_VL = 0x33 1661 PR_GET_FPEXC = 0xb
1662 PR_SVE_SET_VL = 0x32 1662 PR_GET_FP_MODE = 0x2e
1663 PR_SVE_SET_VL_ONEXEC = 0x40000 1663 PR_GET_KEEPCAPS = 0x7
1664 PR_SVE_VL_INHERIT = 0x20000 1664 PR_GET_NAME = 0x10
1665 PR_SVE_VL_LEN_MASK = 0xffff 1665 PR_GET_NO_NEW_PRIVS = 0x27
1666 PR_TASK_PERF_EVENTS_DISABLE = 0x1f 1666 PR_GET_PDEATHSIG = 0x2
1667 PR_TASK_PERF_EVENTS_ENABLE = 0x20 1667 PR_GET_SECCOMP = 0x15
1668 PR_TIMING_STATISTICAL = 0x0 1668 PR_GET_SECUREBITS = 0x1b
1669 PR_TIMING_TIMESTAMP = 0x1 1669 PR_GET_SPECULATION_CTRL = 0x34
1670 PR_TSC_ENABLE = 0x1 1670 PR_GET_TAGGED_ADDR_CTRL = 0x38
1671 PR_TSC_SIGSEGV = 0x2 1671 PR_GET_THP_DISABLE = 0x2a
1672 PR_UNALIGN_NOPRINT = 0x1 1672 PR_GET_TID_ADDRESS = 0x28
1673 PR_UNALIGN_SIGBUS = 0x2 1673 PR_GET_TIMERSLACK = 0x1e
1674 PSTOREFS_MAGIC = 0x6165676c 1674 PR_GET_TIMING = 0xd
1675 PTRACE_ATTACH = 0x10 1675 PR_GET_TSC = 0x19
1676 PTRACE_CONT = 0x7 1676 PR_GET_UNALIGN = 0x5
1677 PTRACE_DETACH = 0x11 1677 PR_MCE_KILL = 0x21
1678 PTRACE_EVENT_CLONE = 0x3 1678 PR_MCE_KILL_CLEAR = 0x0
1679 PTRACE_EVENT_EXEC = 0x4 1679 PR_MCE_KILL_DEFAULT = 0x2
1680 PTRACE_EVENT_EXIT = 0x6 1680 PR_MCE_KILL_EARLY = 0x1
1681 PTRACE_EVENT_FORK = 0x1 1681 PR_MCE_KILL_GET = 0x22
1682 PTRACE_EVENT_SECCOMP = 0x7 1682 PR_MCE_KILL_LATE = 0x0
1683 PTRACE_EVENT_STOP = 0x80 1683 PR_MCE_KILL_SET = 0x1
1684 PTRACE_EVENT_VFORK = 0x2 1684 PR_MPX_DISABLE_MANAGEMENT = 0x2c
1685 PTRACE_EVENT_VFORK_DONE = 0x5 1685 PR_MPX_ENABLE_MANAGEMENT = 0x2b
1686 PTRACE_GETEVENTMSG = 0x4201 1686 PR_PAC_APDAKEY = 0x4
1687 PTRACE_GETFPREGS = 0xe 1687 PR_PAC_APDBKEY = 0x8
1688 PTRACE_GETREGS = 0xc 1688 PR_PAC_APGAKEY = 0x10
1689 PTRACE_GETREGSET = 0x4204 1689 PR_PAC_APIAKEY = 0x1
1690 PTRACE_GETSIGINFO = 0x4202 1690 PR_PAC_APIBKEY = 0x2
1691 PTRACE_GETSIGMASK = 0x420a 1691 PR_PAC_RESET_KEYS = 0x36
1692 PTRACE_GET_THREAD_AREA = 0x19 1692 PR_SET_CHILD_SUBREAPER = 0x24
1693 PTRACE_GET_THREAD_AREA_3264 = 0xc4 1693 PR_SET_DUMPABLE = 0x4
1694 PTRACE_GET_WATCH_REGS = 0xd0 1694 PR_SET_ENDIAN = 0x14
1695 PTRACE_INTERRUPT = 0x4207 1695 PR_SET_FPEMU = 0xa
1696 PTRACE_KILL = 0x8 1696 PR_SET_FPEXC = 0xc
1697 PTRACE_LISTEN = 0x4208 1697 PR_SET_FP_MODE = 0x2d
1698 PTRACE_OLDSETOPTIONS = 0x15 1698 PR_SET_KEEPCAPS = 0x8
1699 PTRACE_O_EXITKILL = 0x100000 1699 PR_SET_MM = 0x23
1700 PTRACE_O_MASK = 0x3000ff 1700 PR_SET_MM_ARG_END = 0x9
1701 PTRACE_O_SUSPEND_SECCOMP = 0x200000 1701 PR_SET_MM_ARG_START = 0x8
1702 PTRACE_O_TRACECLONE = 0x8 1702 PR_SET_MM_AUXV = 0xc
1703 PTRACE_O_TRACEEXEC = 0x10 1703 PR_SET_MM_BRK = 0x7
1704 PTRACE_O_TRACEEXIT = 0x40 1704 PR_SET_MM_END_CODE = 0x2
1705 PTRACE_O_TRACEFORK = 0x2 1705 PR_SET_MM_END_DATA = 0x4
1706 PTRACE_O_TRACESECCOMP = 0x80 1706 PR_SET_MM_ENV_END = 0xb
1707 PTRACE_O_TRACESYSGOOD = 0x1 1707 PR_SET_MM_ENV_START = 0xa
1708 PTRACE_O_TRACEVFORK = 0x4 1708 PR_SET_MM_EXE_FILE = 0xd
1709 PTRACE_O_TRACEVFORKDONE = 0x20 1709 PR_SET_MM_MAP = 0xe
1710 PTRACE_PEEKDATA = 0x2 1710 PR_SET_MM_MAP_SIZE = 0xf
1711 PTRACE_PEEKDATA_3264 = 0xc1 1711 PR_SET_MM_START_BRK = 0x6
1712 PTRACE_PEEKSIGINFO = 0x4209 1712 PR_SET_MM_START_CODE = 0x1
1713 PTRACE_PEEKSIGINFO_SHARED = 0x1 1713 PR_SET_MM_START_DATA = 0x3
1714 PTRACE_PEEKTEXT = 0x1 1714 PR_SET_MM_START_STACK = 0x5
1715 PTRACE_PEEKTEXT_3264 = 0xc0 1715 PR_SET_NAME = 0xf
1716 PTRACE_PEEKUSR = 0x3 1716 PR_SET_NO_NEW_PRIVS = 0x26
1717 PTRACE_POKEDATA = 0x5 1717 PR_SET_PDEATHSIG = 0x1
1718 PTRACE_POKEDATA_3264 = 0xc3 1718 PR_SET_PTRACER = 0x59616d61
1719 PTRACE_POKETEXT = 0x4 1719 PR_SET_PTRACER_ANY = 0xffffffffffffffff
1720 PTRACE_POKETEXT_3264 = 0xc2 1720 PR_SET_SECCOMP = 0x16
1721 PTRACE_POKEUSR = 0x6 1721 PR_SET_SECUREBITS = 0x1c
1722 PTRACE_SECCOMP_GET_FILTER = 0x420c 1722 PR_SET_SPECULATION_CTRL = 0x35
1723 PTRACE_SECCOMP_GET_METADATA = 0x420d 1723 PR_SET_TAGGED_ADDR_CTRL = 0x37
1724 PTRACE_SEIZE = 0x4206 1724 PR_SET_THP_DISABLE = 0x29
1725 PTRACE_SETFPREGS = 0xf 1725 PR_SET_TIMERSLACK = 0x1d
1726 PTRACE_SETOPTIONS = 0x4200 1726 PR_SET_TIMING = 0xe
1727 PTRACE_SETREGS = 0xd 1727 PR_SET_TSC = 0x1a
1728 PTRACE_SETREGSET = 0x4205 1728 PR_SET_UNALIGN = 0x6
1729 PTRACE_SETSIGINFO = 0x4203 1729 PR_SPEC_DISABLE = 0x4
1730 PTRACE_SETSIGMASK = 0x420b 1730 PR_SPEC_DISABLE_NOEXEC = 0x10
1731 PTRACE_SET_THREAD_AREA = 0x1a 1731 PR_SPEC_ENABLE = 0x2
1732 PTRACE_SET_WATCH_REGS = 0xd1 1732 PR_SPEC_FORCE_DISABLE = 0x8
1733 PTRACE_SINGLESTEP = 0x9 1733 PR_SPEC_INDIRECT_BRANCH = 0x1
1734 PTRACE_SYSCALL = 0x18 1734 PR_SPEC_NOT_AFFECTED = 0x0
1735 PTRACE_TRACEME = 0x0 1735 PR_SPEC_PRCTL = 0x1
1736 QNX4_SUPER_MAGIC = 0x2f 1736 PR_SPEC_STORE_BYPASS = 0x0
1737 QNX6_SUPER_MAGIC = 0x68191122 1737 PR_SVE_GET_VL = 0x33
1738 RAMFS_MAGIC = 0x858458f6 1738 PR_SVE_SET_VL = 0x32
1739 RDTGROUP_SUPER_MAGIC = 0x7655821 1739 PR_SVE_SET_VL_ONEXEC = 0x40000
1740 REISERFS_SUPER_MAGIC = 0x52654973 1740 PR_SVE_VL_INHERIT = 0x20000
1741 RENAME_EXCHANGE = 0x2 1741 PR_SVE_VL_LEN_MASK = 0xffff
1742 RENAME_NOREPLACE = 0x1 1742 PR_TAGGED_ADDR_ENABLE = 0x1
1743 RENAME_WHITEOUT = 0x4 1743 PR_TASK_PERF_EVENTS_DISABLE = 0x1f
1744 RLIMIT_AS = 0x6 1744 PR_TASK_PERF_EVENTS_ENABLE = 0x20
1745 RLIMIT_CORE = 0x4 1745 PR_TIMING_STATISTICAL = 0x0
1746 RLIMIT_CPU = 0x0 1746 PR_TIMING_TIMESTAMP = 0x1
1747 RLIMIT_DATA = 0x2 1747 PR_TSC_ENABLE = 0x1
1748 RLIMIT_FSIZE = 0x1 1748 PR_TSC_SIGSEGV = 0x2
1749 RLIMIT_LOCKS = 0xa 1749 PR_UNALIGN_NOPRINT = 0x1
1750 RLIMIT_MEMLOCK = 0x9 1750 PR_UNALIGN_SIGBUS = 0x2
1751 RLIMIT_MSGQUEUE = 0xc 1751 PSTOREFS_MAGIC = 0x6165676c
1752 RLIMIT_NICE = 0xd 1752 PTRACE_ATTACH = 0x10
1753 RLIMIT_NOFILE = 0x5 1753 PTRACE_CONT = 0x7
1754 RLIMIT_NPROC = 0x8 1754 PTRACE_DETACH = 0x11
1755 RLIMIT_RSS = 0x7 1755 PTRACE_EVENTMSG_SYSCALL_ENTRY = 0x1
1756 RLIMIT_RTPRIO = 0xe 1756 PTRACE_EVENTMSG_SYSCALL_EXIT = 0x2
1757 RLIMIT_RTTIME = 0xf 1757 PTRACE_EVENT_CLONE = 0x3
1758 RLIMIT_SIGPENDING = 0xb 1758 PTRACE_EVENT_EXEC = 0x4
1759 RLIMIT_STACK = 0x3 1759 PTRACE_EVENT_EXIT = 0x6
1760 RLIM_INFINITY = 0xffffffffffffffff 1760 PTRACE_EVENT_FORK = 0x1
1761 RNDADDENTROPY = 0x80085203 1761 PTRACE_EVENT_SECCOMP = 0x7
1762 RNDADDTOENTCNT = 0x80045201 1762 PTRACE_EVENT_STOP = 0x80
1763 RNDCLEARPOOL = 0x20005206 1763 PTRACE_EVENT_VFORK = 0x2
1764 RNDGETENTCNT = 0x40045200 1764 PTRACE_EVENT_VFORK_DONE = 0x5
1765 RNDGETPOOL = 0x40085202 1765 PTRACE_GETEVENTMSG = 0x4201
1766 RNDRESEEDCRNG = 0x20005207 1766 PTRACE_GETFPREGS = 0xe
1767 RNDZAPENTCNT = 0x20005204 1767 PTRACE_GETREGS = 0xc
1768 RTAX_ADVMSS = 0x8 1768 PTRACE_GETREGSET = 0x4204
1769 RTAX_CC_ALGO = 0x10 1769 PTRACE_GETSIGINFO = 0x4202
1770 RTAX_CWND = 0x7 1770 PTRACE_GETSIGMASK = 0x420a
1771 RTAX_FASTOPEN_NO_COOKIE = 0x11 1771 PTRACE_GET_SYSCALL_INFO = 0x420e
1772 RTAX_FEATURES = 0xc 1772 PTRACE_GET_THREAD_AREA = 0x19
1773 RTAX_FEATURE_ALLFRAG = 0x8 1773 PTRACE_GET_THREAD_AREA_3264 = 0xc4
1774 RTAX_FEATURE_ECN = 0x1 1774 PTRACE_GET_WATCH_REGS = 0xd0
1775 RTAX_FEATURE_MASK = 0xf 1775 PTRACE_INTERRUPT = 0x4207
1776 RTAX_FEATURE_SACK = 0x2 1776 PTRACE_KILL = 0x8
1777 RTAX_FEATURE_TIMESTAMP = 0x4 1777 PTRACE_LISTEN = 0x4208
1778 RTAX_HOPLIMIT = 0xa 1778 PTRACE_OLDSETOPTIONS = 0x15
1779 RTAX_INITCWND = 0xb 1779 PTRACE_O_EXITKILL = 0x100000
1780 RTAX_INITRWND = 0xe 1780 PTRACE_O_MASK = 0x3000ff
1781 RTAX_LOCK = 0x1 1781 PTRACE_O_SUSPEND_SECCOMP = 0x200000
1782 RTAX_MAX = 0x11 1782 PTRACE_O_TRACECLONE = 0x8
1783 RTAX_MTU = 0x2 1783 PTRACE_O_TRACEEXEC = 0x10
1784 RTAX_QUICKACK = 0xf 1784 PTRACE_O_TRACEEXIT = 0x40
1785 RTAX_REORDERING = 0x9 1785 PTRACE_O_TRACEFORK = 0x2
1786 RTAX_RTO_MIN = 0xd 1786 PTRACE_O_TRACESECCOMP = 0x80
1787 RTAX_RTT = 0x4 1787 PTRACE_O_TRACESYSGOOD = 0x1
1788 RTAX_RTTVAR = 0x5 1788 PTRACE_O_TRACEVFORK = 0x4
1789 RTAX_SSTHRESH = 0x6 1789 PTRACE_O_TRACEVFORKDONE = 0x20
1790 RTAX_UNSPEC = 0x0 1790 PTRACE_PEEKDATA = 0x2
1791 RTAX_WINDOW = 0x3 1791 PTRACE_PEEKDATA_3264 = 0xc1
1792 RTA_ALIGNTO = 0x4 1792 PTRACE_PEEKSIGINFO = 0x4209
1793 RTA_MAX = 0x1d 1793 PTRACE_PEEKSIGINFO_SHARED = 0x1
1794 RTCF_DIRECTSRC = 0x4000000 1794 PTRACE_PEEKTEXT = 0x1
1795 RTCF_DOREDIRECT = 0x1000000 1795 PTRACE_PEEKTEXT_3264 = 0xc0
1796 RTCF_LOG = 0x2000000 1796 PTRACE_PEEKUSR = 0x3
1797 RTCF_MASQ = 0x400000 1797 PTRACE_POKEDATA = 0x5
1798 RTCF_NAT = 0x800000 1798 PTRACE_POKEDATA_3264 = 0xc3
1799 RTCF_VALVE = 0x200000 1799 PTRACE_POKETEXT = 0x4
1800 RTC_AF = 0x20 1800 PTRACE_POKETEXT_3264 = 0xc2
1801 RTC_AIE_OFF = 0x20007002 1801 PTRACE_POKEUSR = 0x6
1802 RTC_AIE_ON = 0x20007001 1802 PTRACE_SECCOMP_GET_FILTER = 0x420c
1803 RTC_ALM_READ = 0x40247008 1803 PTRACE_SECCOMP_GET_METADATA = 0x420d
1804 RTC_ALM_SET = 0x80247007 1804 PTRACE_SEIZE = 0x4206
1805 RTC_EPOCH_READ = 0x4008700d 1805 PTRACE_SETFPREGS = 0xf
1806 RTC_EPOCH_SET = 0x8008700e 1806 PTRACE_SETOPTIONS = 0x4200
1807 RTC_IRQF = 0x80 1807 PTRACE_SETREGS = 0xd
1808 RTC_IRQP_READ = 0x4008700b 1808 PTRACE_SETREGSET = 0x4205
1809 RTC_IRQP_SET = 0x8008700c 1809 PTRACE_SETSIGINFO = 0x4203
1810 RTC_MAX_FREQ = 0x2000 1810 PTRACE_SETSIGMASK = 0x420b
1811 RTC_PF = 0x40 1811 PTRACE_SET_THREAD_AREA = 0x1a
1812 RTC_PIE_OFF = 0x20007006 1812 PTRACE_SET_WATCH_REGS = 0xd1
1813 RTC_PIE_ON = 0x20007005 1813 PTRACE_SINGLESTEP = 0x9
1814 RTC_PLL_GET = 0x40207011 1814 PTRACE_SYSCALL = 0x18
1815 RTC_PLL_SET = 0x80207012 1815 PTRACE_SYSCALL_INFO_ENTRY = 0x1
1816 RTC_RD_TIME = 0x40247009 1816 PTRACE_SYSCALL_INFO_EXIT = 0x2
1817 RTC_SET_TIME = 0x8024700a 1817 PTRACE_SYSCALL_INFO_NONE = 0x0
1818 RTC_UF = 0x10 1818 PTRACE_SYSCALL_INFO_SECCOMP = 0x3
1819 RTC_UIE_OFF = 0x20007004 1819 PTRACE_TRACEME = 0x0
1820 RTC_UIE_ON = 0x20007003 1820 QNX4_SUPER_MAGIC = 0x2f
1821 RTC_VL_CLR = 0x20007014 1821 QNX6_SUPER_MAGIC = 0x68191122
1822 RTC_VL_READ = 0x40047013 1822 RAMFS_MAGIC = 0x858458f6
1823 RTC_WIE_OFF = 0x20007010 1823 RDTGROUP_SUPER_MAGIC = 0x7655821
1824 RTC_WIE_ON = 0x2000700f 1824 REISERFS_SUPER_MAGIC = 0x52654973
1825 RTC_WKALM_RD = 0x40287010 1825 RENAME_EXCHANGE = 0x2
1826 RTC_WKALM_SET = 0x8028700f 1826 RENAME_NOREPLACE = 0x1
1827 RTF_ADDRCLASSMASK = 0xf8000000 1827 RENAME_WHITEOUT = 0x4
1828 RTF_ADDRCONF = 0x40000 1828 RLIMIT_AS = 0x6
1829 RTF_ALLONLINK = 0x20000 1829 RLIMIT_CORE = 0x4
1830 RTF_BROADCAST = 0x10000000 1830 RLIMIT_CPU = 0x0
1831 RTF_CACHE = 0x1000000 1831 RLIMIT_DATA = 0x2
1832 RTF_DEFAULT = 0x10000 1832 RLIMIT_FSIZE = 0x1
1833 RTF_DYNAMIC = 0x10 1833 RLIMIT_LOCKS = 0xa
1834 RTF_FLOW = 0x2000000 1834 RLIMIT_MEMLOCK = 0x9
1835 RTF_GATEWAY = 0x2 1835 RLIMIT_MSGQUEUE = 0xc
1836 RTF_HOST = 0x4 1836 RLIMIT_NICE = 0xd
1837 RTF_INTERFACE = 0x40000000 1837 RLIMIT_NOFILE = 0x5
1838 RTF_IRTT = 0x100 1838 RLIMIT_NPROC = 0x8
1839 RTF_LINKRT = 0x100000 1839 RLIMIT_RSS = 0x7
1840 RTF_LOCAL = 0x80000000 1840 RLIMIT_RTPRIO = 0xe
1841 RTF_MODIFIED = 0x20 1841 RLIMIT_RTTIME = 0xf
1842 RTF_MSS = 0x40 1842 RLIMIT_SIGPENDING = 0xb
1843 RTF_MTU = 0x40 1843 RLIMIT_STACK = 0x3
1844 RTF_MULTICAST = 0x20000000 1844 RLIM_INFINITY = 0xffffffffffffffff
1845 RTF_NAT = 0x8000000 1845 RNDADDENTROPY = 0x80085203
1846 RTF_NOFORWARD = 0x1000 1846 RNDADDTOENTCNT = 0x80045201
1847 RTF_NONEXTHOP = 0x200000 1847 RNDCLEARPOOL = 0x20005206
1848 RTF_NOPMTUDISC = 0x4000 1848 RNDGETENTCNT = 0x40045200
1849 RTF_POLICY = 0x4000000 1849 RNDGETPOOL = 0x40085202
1850 RTF_REINSTATE = 0x8 1850 RNDRESEEDCRNG = 0x20005207
1851 RTF_REJECT = 0x200 1851 RNDZAPENTCNT = 0x20005204
1852 RTF_STATIC = 0x400 1852 RTAX_ADVMSS = 0x8
1853 RTF_THROW = 0x2000 1853 RTAX_CC_ALGO = 0x10
1854 RTF_UP = 0x1 1854 RTAX_CWND = 0x7
1855 RTF_WINDOW = 0x80 1855 RTAX_FASTOPEN_NO_COOKIE = 0x11
1856 RTF_XRESOLVE = 0x800 1856 RTAX_FEATURES = 0xc
1857 RTM_BASE = 0x10 1857 RTAX_FEATURE_ALLFRAG = 0x8
1858 RTM_DELACTION = 0x31 1858 RTAX_FEATURE_ECN = 0x1
1859 RTM_DELADDR = 0x15 1859 RTAX_FEATURE_MASK = 0xf
1860 RTM_DELADDRLABEL = 0x49 1860 RTAX_FEATURE_SACK = 0x2
1861 RTM_DELCHAIN = 0x65 1861 RTAX_FEATURE_TIMESTAMP = 0x4
1862 RTM_DELLINK = 0x11 1862 RTAX_HOPLIMIT = 0xa
1863 RTM_DELMDB = 0x55 1863 RTAX_INITCWND = 0xb
1864 RTM_DELNEIGH = 0x1d 1864 RTAX_INITRWND = 0xe
1865 RTM_DELNETCONF = 0x51 1865 RTAX_LOCK = 0x1
1866 RTM_DELNSID = 0x59 1866 RTAX_MAX = 0x11
1867 RTM_DELQDISC = 0x25 1867 RTAX_MTU = 0x2
1868 RTM_DELROUTE = 0x19 1868 RTAX_QUICKACK = 0xf
1869 RTM_DELRULE = 0x21 1869 RTAX_REORDERING = 0x9
1870 RTM_DELTCLASS = 0x29 1870 RTAX_RTO_MIN = 0xd
1871 RTM_DELTFILTER = 0x2d 1871 RTAX_RTT = 0x4
1872 RTM_F_CLONED = 0x200 1872 RTAX_RTTVAR = 0x5
1873 RTM_F_EQUALIZE = 0x400 1873 RTAX_SSTHRESH = 0x6
1874 RTM_F_FIB_MATCH = 0x2000 1874 RTAX_UNSPEC = 0x0
1875 RTM_F_LOOKUP_TABLE = 0x1000 1875 RTAX_WINDOW = 0x3
1876 RTM_F_NOTIFY = 0x100 1876 RTA_ALIGNTO = 0x4
1877 RTM_F_PREFIX = 0x800 1877 RTA_MAX = 0x1e
1878 RTM_GETACTION = 0x32 1878 RTCF_DIRECTSRC = 0x4000000
1879 RTM_GETADDR = 0x16 1879 RTCF_DOREDIRECT = 0x1000000
1880 RTM_GETADDRLABEL = 0x4a 1880 RTCF_LOG = 0x2000000
1881 RTM_GETANYCAST = 0x3e 1881 RTCF_MASQ = 0x400000
1882 RTM_GETCHAIN = 0x66 1882 RTCF_NAT = 0x800000
1883 RTM_GETDCB = 0x4e 1883 RTCF_VALVE = 0x200000
1884 RTM_GETLINK = 0x12 1884 RTC_AF = 0x20
1885 RTM_GETMDB = 0x56 1885 RTC_AIE_OFF = 0x20007002
1886 RTM_GETMULTICAST = 0x3a 1886 RTC_AIE_ON = 0x20007001
1887 RTM_GETNEIGH = 0x1e 1887 RTC_ALM_READ = 0x40247008
1888 RTM_GETNEIGHTBL = 0x42 1888 RTC_ALM_SET = 0x80247007
1889 RTM_GETNETCONF = 0x52 1889 RTC_EPOCH_READ = 0x4008700d
1890 RTM_GETNSID = 0x5a 1890 RTC_EPOCH_SET = 0x8008700e
1891 RTM_GETQDISC = 0x26 1891 RTC_IRQF = 0x80
1892 RTM_GETROUTE = 0x1a 1892 RTC_IRQP_READ = 0x4008700b
1893 RTM_GETRULE = 0x22 1893 RTC_IRQP_SET = 0x8008700c
1894 RTM_GETSTATS = 0x5e 1894 RTC_MAX_FREQ = 0x2000
1895 RTM_GETTCLASS = 0x2a 1895 RTC_PF = 0x40
1896 RTM_GETTFILTER = 0x2e 1896 RTC_PIE_OFF = 0x20007006
1897 RTM_MAX = 0x67 1897 RTC_PIE_ON = 0x20007005
1898 RTM_NEWACTION = 0x30 1898 RTC_PLL_GET = 0x40207011
1899 RTM_NEWADDR = 0x14 1899 RTC_PLL_SET = 0x80207012
1900 RTM_NEWADDRLABEL = 0x48 1900 RTC_RD_TIME = 0x40247009
1901 RTM_NEWCACHEREPORT = 0x60 1901 RTC_SET_TIME = 0x8024700a
1902 RTM_NEWCHAIN = 0x64 1902 RTC_UF = 0x10
1903 RTM_NEWLINK = 0x10 1903 RTC_UIE_OFF = 0x20007004
1904 RTM_NEWMDB = 0x54 1904 RTC_UIE_ON = 0x20007003
1905 RTM_NEWNDUSEROPT = 0x44 1905 RTC_VL_CLR = 0x20007014
1906 RTM_NEWNEIGH = 0x1c 1906 RTC_VL_READ = 0x40047013
1907 RTM_NEWNEIGHTBL = 0x40 1907 RTC_WIE_OFF = 0x20007010
1908 RTM_NEWNETCONF = 0x50 1908 RTC_WIE_ON = 0x2000700f
1909 RTM_NEWNSID = 0x58 1909 RTC_WKALM_RD = 0x40287010
1910 RTM_NEWPREFIX = 0x34 1910 RTC_WKALM_SET = 0x8028700f
1911 RTM_NEWQDISC = 0x24 1911 RTF_ADDRCLASSMASK = 0xf8000000
1912 RTM_NEWROUTE = 0x18 1912 RTF_ADDRCONF = 0x40000
1913 RTM_NEWRULE = 0x20 1913 RTF_ALLONLINK = 0x20000
1914 RTM_NEWSTATS = 0x5c 1914 RTF_BROADCAST = 0x10000000
1915 RTM_NEWTCLASS = 0x28 1915 RTF_CACHE = 0x1000000
1916 RTM_NEWTFILTER = 0x2c 1916 RTF_DEFAULT = 0x10000
1917 RTM_NR_FAMILIES = 0x16 1917 RTF_DYNAMIC = 0x10
1918 RTM_NR_MSGTYPES = 0x58 1918 RTF_FLOW = 0x2000000
1919 RTM_SETDCB = 0x4f 1919 RTF_GATEWAY = 0x2
1920 RTM_SETLINK = 0x13 1920 RTF_HOST = 0x4
1921 RTM_SETNEIGHTBL = 0x43 1921 RTF_INTERFACE = 0x40000000
1922 RTNH_ALIGNTO = 0x4 1922 RTF_IRTT = 0x100
1923 RTNH_COMPARE_MASK = 0x19 1923 RTF_LINKRT = 0x100000
1924 RTNH_F_DEAD = 0x1 1924 RTF_LOCAL = 0x80000000
1925 RTNH_F_LINKDOWN = 0x10 1925 RTF_MODIFIED = 0x20
1926 RTNH_F_OFFLOAD = 0x8 1926 RTF_MSS = 0x40
1927 RTNH_F_ONLINK = 0x4 1927 RTF_MTU = 0x40
1928 RTNH_F_PERVASIVE = 0x2 1928 RTF_MULTICAST = 0x20000000
1929 RTNH_F_UNRESOLVED = 0x20 1929 RTF_NAT = 0x8000000
1930 RTN_MAX = 0xb 1930 RTF_NOFORWARD = 0x1000
1931 RTPROT_BABEL = 0x2a 1931 RTF_NONEXTHOP = 0x200000
1932 RTPROT_BGP = 0xba 1932 RTF_NOPMTUDISC = 0x4000
1933 RTPROT_BIRD = 0xc 1933 RTF_POLICY = 0x4000000
1934 RTPROT_BOOT = 0x3 1934 RTF_REINSTATE = 0x8
1935 RTPROT_DHCP = 0x10 1935 RTF_REJECT = 0x200
1936 RTPROT_DNROUTED = 0xd 1936 RTF_STATIC = 0x400
1937 RTPROT_EIGRP = 0xc0 1937 RTF_THROW = 0x2000
1938 RTPROT_GATED = 0x8 1938 RTF_UP = 0x1
1939 RTPROT_ISIS = 0xbb 1939 RTF_WINDOW = 0x80
1940 RTPROT_KERNEL = 0x2 1940 RTF_XRESOLVE = 0x800
1941 RTPROT_MROUTED = 0x11 1941 RTMGRP_DECnet_IFADDR = 0x1000
1942 RTPROT_MRT = 0xa 1942 RTMGRP_DECnet_ROUTE = 0x4000
1943 RTPROT_NTK = 0xf 1943 RTMGRP_IPV4_IFADDR = 0x10
1944 RTPROT_OSPF = 0xbc 1944 RTMGRP_IPV4_MROUTE = 0x20
1945 RTPROT_RA = 0x9 1945 RTMGRP_IPV4_ROUTE = 0x40
1946 RTPROT_REDIRECT = 0x1 1946 RTMGRP_IPV4_RULE = 0x80
1947 RTPROT_RIP = 0xbd 1947 RTMGRP_IPV6_IFADDR = 0x100
1948 RTPROT_STATIC = 0x4 1948 RTMGRP_IPV6_IFINFO = 0x800
1949 RTPROT_UNSPEC = 0x0 1949 RTMGRP_IPV6_MROUTE = 0x200
1950 RTPROT_XORP = 0xe 1950 RTMGRP_IPV6_PREFIX = 0x20000
1951 RTPROT_ZEBRA = 0xb 1951 RTMGRP_IPV6_ROUTE = 0x400
1952 RT_CLASS_DEFAULT = 0xfd 1952 RTMGRP_LINK = 0x1
1953 RT_CLASS_LOCAL = 0xff 1953 RTMGRP_NEIGH = 0x4
1954 RT_CLASS_MAIN = 0xfe 1954 RTMGRP_NOTIFY = 0x2
1955 RT_CLASS_MAX = 0xff 1955 RTMGRP_TC = 0x8
1956 RT_CLASS_UNSPEC = 0x0 1956 RTM_BASE = 0x10
1957 RUSAGE_CHILDREN = -0x1 1957 RTM_DELACTION = 0x31
1958 RUSAGE_SELF = 0x0 1958 RTM_DELADDR = 0x15
1959 RUSAGE_THREAD = 0x1 1959 RTM_DELADDRLABEL = 0x49
1960 SCM_CREDENTIALS = 0x2 1960 RTM_DELCHAIN = 0x65
1961 SCM_RIGHTS = 0x1 1961 RTM_DELLINK = 0x11
1962 SCM_TIMESTAMP = 0x1d 1962 RTM_DELLINKPROP = 0x6d
1963 SCM_TIMESTAMPING = 0x25 1963 RTM_DELMDB = 0x55
1964 SCM_TIMESTAMPING_OPT_STATS = 0x36 1964 RTM_DELNEIGH = 0x1d
1965 SCM_TIMESTAMPING_PKTINFO = 0x3a 1965 RTM_DELNETCONF = 0x51
1966 SCM_TIMESTAMPNS = 0x23 1966 RTM_DELNEXTHOP = 0x69
1967 SCM_TXTIME = 0x3d 1967 RTM_DELNSID = 0x59
1968 SCM_WIFI_STATUS = 0x29 1968 RTM_DELQDISC = 0x25
1969 SC_LOG_FLUSH = 0x100000 1969 RTM_DELROUTE = 0x19
1970 SECCOMP_MODE_DISABLED = 0x0 1970 RTM_DELRULE = 0x21
1971 SECCOMP_MODE_FILTER = 0x2 1971 RTM_DELTCLASS = 0x29
1972 SECCOMP_MODE_STRICT = 0x1 1972 RTM_DELTFILTER = 0x2d
1973 SECURITYFS_MAGIC = 0x73636673 1973 RTM_F_CLONED = 0x200
1974 SELINUX_MAGIC = 0xf97cff8c 1974 RTM_F_EQUALIZE = 0x400
1975 SFD_CLOEXEC = 0x80000 1975 RTM_F_FIB_MATCH = 0x2000
1976 SFD_NONBLOCK = 0x80 1976 RTM_F_LOOKUP_TABLE = 0x1000
1977 SHUT_RD = 0x0 1977 RTM_F_NOTIFY = 0x100
1978 SHUT_RDWR = 0x2 1978 RTM_F_PREFIX = 0x800
1979 SHUT_WR = 0x1 1979 RTM_GETACTION = 0x32
1980 SIOCADDDLCI = 0x8980 1980 RTM_GETADDR = 0x16
1981 SIOCADDMULTI = 0x8931 1981 RTM_GETADDRLABEL = 0x4a
1982 SIOCADDRT = 0x890b 1982 RTM_GETANYCAST = 0x3e
1983 SIOCATMARK = 0x40047307 1983 RTM_GETCHAIN = 0x66
1984 SIOCBONDCHANGEACTIVE = 0x8995 1984 RTM_GETDCB = 0x4e
1985 SIOCBONDENSLAVE = 0x8990 1985 RTM_GETLINK = 0x12
1986 SIOCBONDINFOQUERY = 0x8994 1986 RTM_GETLINKPROP = 0x6e
1987 SIOCBONDRELEASE = 0x8991 1987 RTM_GETMDB = 0x56
1988 SIOCBONDSETHWADDR = 0x8992 1988 RTM_GETMULTICAST = 0x3a
1989 SIOCBONDSLAVEINFOQUERY = 0x8993 1989 RTM_GETNEIGH = 0x1e
1990 SIOCBRADDBR = 0x89a0 1990 RTM_GETNEIGHTBL = 0x42
1991 SIOCBRADDIF = 0x89a2 1991 RTM_GETNETCONF = 0x52
1992 SIOCBRDELBR = 0x89a1 1992 RTM_GETNEXTHOP = 0x6a
1993 SIOCBRDELIF = 0x89a3 1993 RTM_GETNSID = 0x5a
1994 SIOCDARP = 0x8953 1994 RTM_GETQDISC = 0x26
1995 SIOCDELDLCI = 0x8981 1995 RTM_GETROUTE = 0x1a
1996 SIOCDELMULTI = 0x8932 1996 RTM_GETRULE = 0x22
1997 SIOCDELRT = 0x890c 1997 RTM_GETSTATS = 0x5e
1998 SIOCDEVPRIVATE = 0x89f0 1998 RTM_GETTCLASS = 0x2a
1999 SIOCDIFADDR = 0x8936 1999 RTM_GETTFILTER = 0x2e
2000 SIOCDRARP = 0x8960 2000 RTM_MAX = 0x6f
2001 SIOCETHTOOL = 0x8946 2001 RTM_NEWACTION = 0x30
2002 SIOCGARP = 0x8954 2002 RTM_NEWADDR = 0x14
2003 SIOCGHWTSTAMP = 0x89b1 2003 RTM_NEWADDRLABEL = 0x48
2004 SIOCGIFADDR = 0x8915 2004 RTM_NEWCACHEREPORT = 0x60
2005 SIOCGIFBR = 0x8940 2005 RTM_NEWCHAIN = 0x64
2006 SIOCGIFBRDADDR = 0x8919 2006 RTM_NEWLINK = 0x10
2007 SIOCGIFCONF = 0x8912 2007 RTM_NEWLINKPROP = 0x6c
2008 SIOCGIFCOUNT = 0x8938 2008 RTM_NEWMDB = 0x54
2009 SIOCGIFDSTADDR = 0x8917 2009 RTM_NEWNDUSEROPT = 0x44
2010 SIOCGIFENCAP = 0x8925 2010 RTM_NEWNEIGH = 0x1c
2011 SIOCGIFFLAGS = 0x8913 2011 RTM_NEWNEIGHTBL = 0x40
2012 SIOCGIFHWADDR = 0x8927 2012 RTM_NEWNETCONF = 0x50
2013 SIOCGIFINDEX = 0x8933 2013 RTM_NEWNEXTHOP = 0x68
2014 SIOCGIFMAP = 0x8970 2014 RTM_NEWNSID = 0x58
2015 SIOCGIFMEM = 0x891f 2015 RTM_NEWPREFIX = 0x34
2016 SIOCGIFMETRIC = 0x891d 2016 RTM_NEWQDISC = 0x24
2017 SIOCGIFMTU = 0x8921 2017 RTM_NEWROUTE = 0x18
2018 SIOCGIFNAME = 0x8910 2018 RTM_NEWRULE = 0x20
2019 SIOCGIFNETMASK = 0x891b 2019 RTM_NEWSTATS = 0x5c
2020 SIOCGIFPFLAGS = 0x8935 2020 RTM_NEWTCLASS = 0x28
2021 SIOCGIFSLAVE = 0x8929 2021 RTM_NEWTFILTER = 0x2c
2022 SIOCGIFTXQLEN = 0x8942 2022 RTM_NR_FAMILIES = 0x18
2023 SIOCGIFVLAN = 0x8982 2023 RTM_NR_MSGTYPES = 0x60
2024 SIOCGMIIPHY = 0x8947 2024 RTM_SETDCB = 0x4f
2025 SIOCGMIIREG = 0x8948 2025 RTM_SETLINK = 0x13
2026 SIOCGPGRP = 0x40047309 2026 RTM_SETNEIGHTBL = 0x43
2027 SIOCGPPPCSTATS = 0x89f2 2027 RTNH_ALIGNTO = 0x4
2028 SIOCGPPPSTATS = 0x89f0 2028 RTNH_COMPARE_MASK = 0x19
2029 SIOCGPPPVER = 0x89f1 2029 RTNH_F_DEAD = 0x1
2030 SIOCGRARP = 0x8961 2030 RTNH_F_LINKDOWN = 0x10
2031 SIOCGSKNS = 0x894c 2031 RTNH_F_OFFLOAD = 0x8
2032 SIOCGSTAMP = 0x8906 2032 RTNH_F_ONLINK = 0x4
2033 SIOCGSTAMPNS = 0x8907 2033 RTNH_F_PERVASIVE = 0x2
2034 SIOCGSTAMPNS_NEW = 0x40108907 2034 RTNH_F_UNRESOLVED = 0x20
2035 SIOCGSTAMPNS_OLD = 0x8907 2035 RTN_MAX = 0xb
2036 SIOCGSTAMP_NEW = 0x40108906 2036 RTPROT_BABEL = 0x2a
2037 SIOCGSTAMP_OLD = 0x8906 2037 RTPROT_BGP = 0xba
2038 SIOCINQ = 0x467f 2038 RTPROT_BIRD = 0xc
2039 SIOCOUTQ = 0x7472 2039 RTPROT_BOOT = 0x3
2040 SIOCOUTQNSD = 0x894b 2040 RTPROT_DHCP = 0x10
2041 SIOCPROTOPRIVATE = 0x89e0 2041 RTPROT_DNROUTED = 0xd
2042 SIOCRTMSG = 0x890d 2042 RTPROT_EIGRP = 0xc0
2043 SIOCSARP = 0x8955 2043 RTPROT_GATED = 0x8
2044 SIOCSHWTSTAMP = 0x89b0 2044 RTPROT_ISIS = 0xbb
2045 SIOCSIFADDR = 0x8916 2045 RTPROT_KERNEL = 0x2
2046 SIOCSIFBR = 0x8941 2046 RTPROT_MROUTED = 0x11
2047 SIOCSIFBRDADDR = 0x891a 2047 RTPROT_MRT = 0xa
2048 SIOCSIFDSTADDR = 0x8918 2048 RTPROT_NTK = 0xf
2049 SIOCSIFENCAP = 0x8926 2049 RTPROT_OSPF = 0xbc
2050 SIOCSIFFLAGS = 0x8914 2050 RTPROT_RA = 0x9
2051 SIOCSIFHWADDR = 0x8924 2051 RTPROT_REDIRECT = 0x1
2052 SIOCSIFHWBROADCAST = 0x8937 2052 RTPROT_RIP = 0xbd
2053 SIOCSIFLINK = 0x8911 2053 RTPROT_STATIC = 0x4
2054 SIOCSIFMAP = 0x8971 2054 RTPROT_UNSPEC = 0x0
2055 SIOCSIFMEM = 0x8920 2055 RTPROT_XORP = 0xe
2056 SIOCSIFMETRIC = 0x891e 2056 RTPROT_ZEBRA = 0xb
2057 SIOCSIFMTU = 0x8922 2057 RT_CLASS_DEFAULT = 0xfd
2058 SIOCSIFNAME = 0x8923 2058 RT_CLASS_LOCAL = 0xff
2059 SIOCSIFNETMASK = 0x891c 2059 RT_CLASS_MAIN = 0xfe
2060 SIOCSIFPFLAGS = 0x8934 2060 RT_CLASS_MAX = 0xff
2061 SIOCSIFSLAVE = 0x8930 2061 RT_CLASS_UNSPEC = 0x0
2062 SIOCSIFTXQLEN = 0x8943 2062 RUSAGE_CHILDREN = -0x1
2063 SIOCSIFVLAN = 0x8983 2063 RUSAGE_SELF = 0x0
2064 SIOCSMIIREG = 0x8949 2064 RUSAGE_THREAD = 0x1
2065 SIOCSPGRP = 0x80047308 2065 RWF_APPEND = 0x10
2066 SIOCSRARP = 0x8962 2066 RWF_DSYNC = 0x2
2067 SIOCWANDEV = 0x894a 2067 RWF_HIPRI = 0x1
2068 SMACK_MAGIC = 0x43415d53 2068 RWF_NOWAIT = 0x8
2069 SMART_AUTOSAVE = 0xd2 2069 RWF_SUPPORTED = 0x1f
2070 SMART_AUTO_OFFLINE = 0xdb 2070 RWF_SYNC = 0x4
2071 SMART_DISABLE = 0xd9 2071 RWF_WRITE_LIFE_NOT_SET = 0x0
2072 SMART_ENABLE = 0xd8 2072 SCM_CREDENTIALS = 0x2
2073 SMART_HCYL_PASS = 0xc2 2073 SCM_RIGHTS = 0x1
2074 SMART_IMMEDIATE_OFFLINE = 0xd4 2074 SCM_TIMESTAMP = 0x1d
2075 SMART_LCYL_PASS = 0x4f 2075 SCM_TIMESTAMPING = 0x25
2076 SMART_READ_LOG_SECTOR = 0xd5 2076 SCM_TIMESTAMPING_OPT_STATS = 0x36
2077 SMART_READ_THRESHOLDS = 0xd1 2077 SCM_TIMESTAMPING_PKTINFO = 0x3a
2078 SMART_READ_VALUES = 0xd0 2078 SCM_TIMESTAMPNS = 0x23
2079 SMART_SAVE = 0xd3 2079 SCM_TXTIME = 0x3d
2080 SMART_STATUS = 0xda 2080 SCM_WIFI_STATUS = 0x29
2081 SMART_WRITE_LOG_SECTOR = 0xd6 2081 SC_LOG_FLUSH = 0x100000
2082 SMART_WRITE_THRESHOLDS = 0xd7 2082 SECCOMP_MODE_DISABLED = 0x0
2083 SMB_SUPER_MAGIC = 0x517b 2083 SECCOMP_MODE_FILTER = 0x2
2084 SOCKFS_MAGIC = 0x534f434b 2084 SECCOMP_MODE_STRICT = 0x1
2085 SOCK_CLOEXEC = 0x80000 2085 SECURITYFS_MAGIC = 0x73636673
2086 SOCK_DCCP = 0x6 2086 SELINUX_MAGIC = 0xf97cff8c
2087 SOCK_DGRAM = 0x1 2087 SFD_CLOEXEC = 0x80000
2088 SOCK_IOC_TYPE = 0x89 2088 SFD_NONBLOCK = 0x80
2089 SOCK_NONBLOCK = 0x80 2089 SHUT_RD = 0x0
2090 SOCK_PACKET = 0xa 2090 SHUT_RDWR = 0x2
2091 SOCK_RAW = 0x3 2091 SHUT_WR = 0x1
2092 SOCK_RDM = 0x4 2092 SIOCADDDLCI = 0x8980
2093 SOCK_SEQPACKET = 0x5 2093 SIOCADDMULTI = 0x8931
2094 SOCK_STREAM = 0x2 2094 SIOCADDRT = 0x890b
2095 SOL_AAL = 0x109 2095 SIOCATMARK = 0x40047307
2096 SOL_ALG = 0x117 2096 SIOCBONDCHANGEACTIVE = 0x8995
2097 SOL_ATM = 0x108 2097 SIOCBONDENSLAVE = 0x8990
2098 SOL_CAIF = 0x116 2098 SIOCBONDINFOQUERY = 0x8994
2099 SOL_CAN_BASE = 0x64 2099 SIOCBONDRELEASE = 0x8991
2100 SOL_DCCP = 0x10d 2100 SIOCBONDSETHWADDR = 0x8992
2101 SOL_DECNET = 0x105 2101 SIOCBONDSLAVEINFOQUERY = 0x8993
2102 SOL_ICMPV6 = 0x3a 2102 SIOCBRADDBR = 0x89a0
2103 SOL_IP = 0x0 2103 SIOCBRADDIF = 0x89a2
2104 SOL_IPV6 = 0x29 2104 SIOCBRDELBR = 0x89a1
2105 SOL_IRDA = 0x10a 2105 SIOCBRDELIF = 0x89a3
2106 SOL_IUCV = 0x115 2106 SIOCDARP = 0x8953
2107 SOL_KCM = 0x119 2107 SIOCDELDLCI = 0x8981
2108 SOL_LLC = 0x10c 2108 SIOCDELMULTI = 0x8932
2109 SOL_NETBEUI = 0x10b 2109 SIOCDELRT = 0x890c
2110 SOL_NETLINK = 0x10e 2110 SIOCDEVPRIVATE = 0x89f0
2111 SOL_NFC = 0x118 2111 SIOCDIFADDR = 0x8936
2112 SOL_PACKET = 0x107 2112 SIOCDRARP = 0x8960
2113 SOL_PNPIPE = 0x113 2113 SIOCETHTOOL = 0x8946
2114 SOL_PPPOL2TP = 0x111 2114 SIOCGARP = 0x8954
2115 SOL_RAW = 0xff 2115 SIOCGETLINKNAME = 0x89e0
2116 SOL_RDS = 0x114 2116 SIOCGETNODEID = 0x89e1
2117 SOL_RXRPC = 0x110 2117 SIOCGHWTSTAMP = 0x89b1
2118 SOL_SOCKET = 0xffff 2118 SIOCGIFADDR = 0x8915
2119 SOL_TCP = 0x6 2119 SIOCGIFBR = 0x8940
2120 SOL_TIPC = 0x10f 2120 SIOCGIFBRDADDR = 0x8919
2121 SOL_TLS = 0x11a 2121 SIOCGIFCONF = 0x8912
2122 SOL_X25 = 0x106 2122 SIOCGIFCOUNT = 0x8938
2123 SOL_XDP = 0x11b 2123 SIOCGIFDSTADDR = 0x8917
2124 SOMAXCONN = 0x80 2124 SIOCGIFENCAP = 0x8925
2125 SO_ACCEPTCONN = 0x1009 2125 SIOCGIFFLAGS = 0x8913
2126 SO_ATTACH_BPF = 0x32 2126 SIOCGIFHWADDR = 0x8927
2127 SO_ATTACH_FILTER = 0x1a 2127 SIOCGIFINDEX = 0x8933
2128 SO_ATTACH_REUSEPORT_CBPF = 0x33 2128 SIOCGIFMAP = 0x8970
2129 SO_ATTACH_REUSEPORT_EBPF = 0x34 2129 SIOCGIFMEM = 0x891f
2130 SO_BINDTODEVICE = 0x19 2130 SIOCGIFMETRIC = 0x891d
2131 SO_BINDTOIFINDEX = 0x3e 2131 SIOCGIFMTU = 0x8921
2132 SO_BPF_EXTENSIONS = 0x30 2132 SIOCGIFNAME = 0x8910
2133 SO_BROADCAST = 0x20 2133 SIOCGIFNETMASK = 0x891b
2134 SO_BSDCOMPAT = 0xe 2134 SIOCGIFPFLAGS = 0x8935
2135 SO_BUSY_POLL = 0x2e 2135 SIOCGIFSLAVE = 0x8929
2136 SO_CNX_ADVICE = 0x35 2136 SIOCGIFTXQLEN = 0x8942
2137 SO_COOKIE = 0x39 2137 SIOCGIFVLAN = 0x8982
2138 SO_DEBUG = 0x1 2138 SIOCGMIIPHY = 0x8947
2139 SO_DETACH_BPF = 0x1b 2139 SIOCGMIIREG = 0x8948
2140 SO_DETACH_FILTER = 0x1b 2140 SIOCGPGRP = 0x40047309
2141 SO_DOMAIN = 0x1029 2141 SIOCGPPPCSTATS = 0x89f2
2142 SO_DONTROUTE = 0x10 2142 SIOCGPPPSTATS = 0x89f0
2143 SO_EE_CODE_TXTIME_INVALID_PARAM = 0x1 2143 SIOCGPPPVER = 0x89f1
2144 SO_EE_CODE_TXTIME_MISSED = 0x2 2144 SIOCGRARP = 0x8961
2145 SO_EE_CODE_ZEROCOPY_COPIED = 0x1 2145 SIOCGSKNS = 0x894c
2146 SO_EE_ORIGIN_ICMP = 0x2 2146 SIOCGSTAMP = 0x8906
2147 SO_EE_ORIGIN_ICMP6 = 0x3 2147 SIOCGSTAMPNS = 0x8907
2148 SO_EE_ORIGIN_LOCAL = 0x1 2148 SIOCGSTAMPNS_NEW = 0x40108907
2149 SO_EE_ORIGIN_NONE = 0x0 2149 SIOCGSTAMPNS_OLD = 0x8907
2150 SO_EE_ORIGIN_TIMESTAMPING = 0x4 2150 SIOCGSTAMP_NEW = 0x40108906
2151 SO_EE_ORIGIN_TXSTATUS = 0x4 2151 SIOCGSTAMP_OLD = 0x8906
2152 SO_EE_ORIGIN_TXTIME = 0x6 2152 SIOCINQ = 0x467f
2153 SO_EE_ORIGIN_ZEROCOPY = 0x5 2153 SIOCOUTQ = 0x7472
2154 SO_ERROR = 0x1007 2154 SIOCOUTQNSD = 0x894b
2155 SO_GET_FILTER = 0x1a 2155 SIOCPROTOPRIVATE = 0x89e0
2156 SO_INCOMING_CPU = 0x31 2156 SIOCRTMSG = 0x890d
2157 SO_INCOMING_NAPI_ID = 0x38 2157 SIOCSARP = 0x8955
2158 SO_KEEPALIVE = 0x8 2158 SIOCSHWTSTAMP = 0x89b0
2159 SO_LINGER = 0x80 2159 SIOCSIFADDR = 0x8916
2160 SO_LOCK_FILTER = 0x2c 2160 SIOCSIFBR = 0x8941
2161 SO_MARK = 0x24 2161 SIOCSIFBRDADDR = 0x891a
2162 SO_MAX_PACING_RATE = 0x2f 2162 SIOCSIFDSTADDR = 0x8918
2163 SO_MEMINFO = 0x37 2163 SIOCSIFENCAP = 0x8926
2164 SO_NOFCS = 0x2b 2164 SIOCSIFFLAGS = 0x8914
2165 SO_NO_CHECK = 0xb 2165 SIOCSIFHWADDR = 0x8924
2166 SO_OOBINLINE = 0x100 2166 SIOCSIFHWBROADCAST = 0x8937
2167 SO_PASSCRED = 0x11 2167 SIOCSIFLINK = 0x8911
2168 SO_PASSSEC = 0x22 2168 SIOCSIFMAP = 0x8971
2169 SO_PEEK_OFF = 0x2a 2169 SIOCSIFMEM = 0x8920
2170 SO_PEERCRED = 0x12 2170 SIOCSIFMETRIC = 0x891e
2171 SO_PEERGROUPS = 0x3b 2171 SIOCSIFMTU = 0x8922
2172 SO_PEERNAME = 0x1c 2172 SIOCSIFNAME = 0x8923
2173 SO_PEERSEC = 0x1e 2173 SIOCSIFNETMASK = 0x891c
2174 SO_PRIORITY = 0xc 2174 SIOCSIFPFLAGS = 0x8934
2175 SO_PROTOCOL = 0x1028 2175 SIOCSIFSLAVE = 0x8930
2176 SO_RCVBUF = 0x1002 2176 SIOCSIFTXQLEN = 0x8943
2177 SO_RCVBUFFORCE = 0x21 2177 SIOCSIFVLAN = 0x8983
2178 SO_RCVLOWAT = 0x1004 2178 SIOCSMIIREG = 0x8949
2179 SO_RCVTIMEO = 0x1006 2179 SIOCSPGRP = 0x80047308
2180 SO_RCVTIMEO_NEW = 0x42 2180 SIOCSRARP = 0x8962
2181 SO_RCVTIMEO_OLD = 0x1006 2181 SIOCWANDEV = 0x894a
2182 SO_REUSEADDR = 0x4 2182 SMACK_MAGIC = 0x43415d53
2183 SO_REUSEPORT = 0x200 2183 SMART_AUTOSAVE = 0xd2
2184 SO_RXQ_OVFL = 0x28 2184 SMART_AUTO_OFFLINE = 0xdb
2185 SO_SECURITY_AUTHENTICATION = 0x16 2185 SMART_DISABLE = 0xd9
2186 SO_SECURITY_ENCRYPTION_NETWORK = 0x18 2186 SMART_ENABLE = 0xd8
2187 SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17 2187 SMART_HCYL_PASS = 0xc2
2188 SO_SELECT_ERR_QUEUE = 0x2d 2188 SMART_IMMEDIATE_OFFLINE = 0xd4
2189 SO_SNDBUF = 0x1001 2189 SMART_LCYL_PASS = 0x4f
2190 SO_SNDBUFFORCE = 0x1f 2190 SMART_READ_LOG_SECTOR = 0xd5
2191 SO_SNDLOWAT = 0x1003 2191 SMART_READ_THRESHOLDS = 0xd1
2192 SO_SNDTIMEO = 0x1005 2192 SMART_READ_VALUES = 0xd0
2193 SO_SNDTIMEO_NEW = 0x43 2193 SMART_SAVE = 0xd3
2194 SO_SNDTIMEO_OLD = 0x1005 2194 SMART_STATUS = 0xda
2195 SO_STYLE = 0x1008 2195 SMART_WRITE_LOG_SECTOR = 0xd6
2196 SO_TIMESTAMP = 0x1d 2196 SMART_WRITE_THRESHOLDS = 0xd7
2197 SO_TIMESTAMPING = 0x25 2197 SMB_SUPER_MAGIC = 0x517b
2198 SO_TIMESTAMPING_NEW = 0x41 2198 SOCKFS_MAGIC = 0x534f434b
2199 SO_TIMESTAMPING_OLD = 0x25 2199 SOCK_CLOEXEC = 0x80000
2200 SO_TIMESTAMPNS = 0x23 2200 SOCK_DCCP = 0x6
2201 SO_TIMESTAMPNS_NEW = 0x40 2201 SOCK_DGRAM = 0x1
2202 SO_TIMESTAMPNS_OLD = 0x23 2202 SOCK_IOC_TYPE = 0x89
2203 SO_TIMESTAMP_NEW = 0x3f 2203 SOCK_NONBLOCK = 0x80
2204 SO_TIMESTAMP_OLD = 0x1d 2204 SOCK_PACKET = 0xa
2205 SO_TXTIME = 0x3d 2205 SOCK_RAW = 0x3
2206 SO_TYPE = 0x1008 2206 SOCK_RDM = 0x4
2207 SO_VM_SOCKETS_BUFFER_MAX_SIZE = 0x2 2207 SOCK_SEQPACKET = 0x5
2208 SO_VM_SOCKETS_BUFFER_MIN_SIZE = 0x1 2208 SOCK_STREAM = 0x2
2209 SO_VM_SOCKETS_BUFFER_SIZE = 0x0 2209 SOL_AAL = 0x109
2210 SO_VM_SOCKETS_CONNECT_TIMEOUT = 0x6 2210 SOL_ALG = 0x117
2211 SO_VM_SOCKETS_NONBLOCK_TXRX = 0x7 2211 SOL_ATM = 0x108
2212 SO_VM_SOCKETS_PEER_HOST_VM_ID = 0x3 2212 SOL_CAIF = 0x116
2213 SO_VM_SOCKETS_TRUSTED = 0x5 2213 SOL_CAN_BASE = 0x64
2214 SO_WIFI_STATUS = 0x29 2214 SOL_DCCP = 0x10d
2215 SO_ZEROCOPY = 0x3c 2215 SOL_DECNET = 0x105
2216 SPLICE_F_GIFT = 0x8 2216 SOL_ICMPV6 = 0x3a
2217 SPLICE_F_MORE = 0x4 2217 SOL_IP = 0x0
2218 SPLICE_F_MOVE = 0x1 2218 SOL_IPV6 = 0x29
2219 SPLICE_F_NONBLOCK = 0x2 2219 SOL_IRDA = 0x10a
2220 SQUASHFS_MAGIC = 0x73717368 2220 SOL_IUCV = 0x115
2221 STACK_END_MAGIC = 0x57ac6e9d 2221 SOL_KCM = 0x119
2222 STATX_ALL = 0xfff 2222 SOL_LLC = 0x10c
2223 STATX_ATIME = 0x20 2223 SOL_NETBEUI = 0x10b
2224 STATX_ATTR_APPEND = 0x20 2224 SOL_NETLINK = 0x10e
2225 STATX_ATTR_AUTOMOUNT = 0x1000 2225 SOL_NFC = 0x118
2226 STATX_ATTR_COMPRESSED = 0x4 2226 SOL_PACKET = 0x107
2227 STATX_ATTR_ENCRYPTED = 0x800 2227 SOL_PNPIPE = 0x113
2228 STATX_ATTR_IMMUTABLE = 0x10 2228 SOL_PPPOL2TP = 0x111
2229 STATX_ATTR_NODUMP = 0x40 2229 SOL_RAW = 0xff
2230 STATX_BASIC_STATS = 0x7ff 2230 SOL_RDS = 0x114
2231 STATX_BLOCKS = 0x400 2231 SOL_RXRPC = 0x110
2232 STATX_BTIME = 0x800 2232 SOL_SOCKET = 0xffff
2233 STATX_CTIME = 0x80 2233 SOL_TCP = 0x6
2234 STATX_GID = 0x10 2234 SOL_TIPC = 0x10f
2235 STATX_INO = 0x100 2235 SOL_TLS = 0x11a
2236 STATX_MODE = 0x2 2236 SOL_X25 = 0x106
2237 STATX_MTIME = 0x40 2237 SOL_XDP = 0x11b
2238 STATX_NLINK = 0x4 2238 SOMAXCONN = 0x1000
2239 STATX_SIZE = 0x200 2239 SO_ACCEPTCONN = 0x1009
2240 STATX_TYPE = 0x1 2240 SO_ATTACH_BPF = 0x32
2241 STATX_UID = 0x8 2241 SO_ATTACH_FILTER = 0x1a
2242 STATX__RESERVED = 0x80000000 2242 SO_ATTACH_REUSEPORT_CBPF = 0x33
2243 SYNC_FILE_RANGE_WAIT_AFTER = 0x4 2243 SO_ATTACH_REUSEPORT_EBPF = 0x34
2244 SYNC_FILE_RANGE_WAIT_BEFORE = 0x1 2244 SO_BINDTODEVICE = 0x19
2245 SYNC_FILE_RANGE_WRITE = 0x2 2245 SO_BINDTOIFINDEX = 0x3e
2246 SYNC_FILE_RANGE_WRITE_AND_WAIT = 0x7 2246 SO_BPF_EXTENSIONS = 0x30
2247 SYSFS_MAGIC = 0x62656572 2247 SO_BROADCAST = 0x20
2248 S_BLKSIZE = 0x200 2248 SO_BSDCOMPAT = 0xe
2249 S_IEXEC = 0x40 2249 SO_BUSY_POLL = 0x2e
2250 S_IFBLK = 0x6000 2250 SO_CNX_ADVICE = 0x35
2251 S_IFCHR = 0x2000 2251 SO_COOKIE = 0x39
2252 S_IFDIR = 0x4000 2252 SO_DEBUG = 0x1
2253 S_IFIFO = 0x1000 2253 SO_DETACH_BPF = 0x1b
2254 S_IFLNK = 0xa000 2254 SO_DETACH_FILTER = 0x1b
2255 S_IFMT = 0xf000 2255 SO_DETACH_REUSEPORT_BPF = 0x44
2256 S_IFREG = 0x8000 2256 SO_DOMAIN = 0x1029
2257 S_IFSOCK = 0xc000 2257 SO_DONTROUTE = 0x10
2258 S_IREAD = 0x100 2258 SO_EE_CODE_TXTIME_INVALID_PARAM = 0x1
2259 S_IRGRP = 0x20 2259 SO_EE_CODE_TXTIME_MISSED = 0x2
2260 S_IROTH = 0x4 2260 SO_EE_CODE_ZEROCOPY_COPIED = 0x1
2261 S_IRUSR = 0x100 2261 SO_EE_ORIGIN_ICMP = 0x2
2262 S_IRWXG = 0x38 2262 SO_EE_ORIGIN_ICMP6 = 0x3
2263 S_IRWXO = 0x7 2263 SO_EE_ORIGIN_LOCAL = 0x1
2264 S_IRWXU = 0x1c0 2264 SO_EE_ORIGIN_NONE = 0x0
2265 S_ISGID = 0x400 2265 SO_EE_ORIGIN_TIMESTAMPING = 0x4
2266 S_ISUID = 0x800 2266 SO_EE_ORIGIN_TXSTATUS = 0x4
2267 S_ISVTX = 0x200 2267 SO_EE_ORIGIN_TXTIME = 0x6
2268 S_IWGRP = 0x10 2268 SO_EE_ORIGIN_ZEROCOPY = 0x5
2269 S_IWOTH = 0x2 2269 SO_ERROR = 0x1007
2270 S_IWRITE = 0x80 2270 SO_GET_FILTER = 0x1a
2271 S_IWUSR = 0x80 2271 SO_INCOMING_CPU = 0x31
2272 S_IXGRP = 0x8 2272 SO_INCOMING_NAPI_ID = 0x38
2273 S_IXOTH = 0x1 2273 SO_KEEPALIVE = 0x8
2274 S_IXUSR = 0x40 2274 SO_LINGER = 0x80
2275 TAB0 = 0x0 2275 SO_LOCK_FILTER = 0x2c
2276 TAB1 = 0x800 2276 SO_MARK = 0x24
2277 TAB2 = 0x1000 2277 SO_MAX_PACING_RATE = 0x2f
2278 TAB3 = 0x1800 2278 SO_MEMINFO = 0x37
2279 TABDLY = 0x1800 2279 SO_NOFCS = 0x2b
2280 TASKSTATS_CMD_ATTR_MAX = 0x4 2280 SO_NO_CHECK = 0xb
2281 TASKSTATS_CMD_MAX = 0x2 2281 SO_OOBINLINE = 0x100
2282 TASKSTATS_GENL_NAME = "TASKSTATS" 2282 SO_PASSCRED = 0x11
2283 TASKSTATS_GENL_VERSION = 0x1 2283 SO_PASSSEC = 0x22
2284 TASKSTATS_TYPE_MAX = 0x6 2284 SO_PEEK_OFF = 0x2a
2285 TASKSTATS_VERSION = 0x9 2285 SO_PEERCRED = 0x12
2286 TCFLSH = 0x5407 2286 SO_PEERGROUPS = 0x3b
2287 TCGETA = 0x5401 2287 SO_PEERNAME = 0x1c
2288 TCGETS = 0x540d 2288 SO_PEERSEC = 0x1e
2289 TCGETS2 = 0x4030542a 2289 SO_PRIORITY = 0xc
2290 TCIFLUSH = 0x0 2290 SO_PROTOCOL = 0x1028
2291 TCIOFF = 0x2 2291 SO_RCVBUF = 0x1002
2292 TCIOFLUSH = 0x2 2292 SO_RCVBUFFORCE = 0x21
2293 TCION = 0x3 2293 SO_RCVLOWAT = 0x1004
2294 TCOFLUSH = 0x1 2294 SO_RCVTIMEO = 0x1006
2295 TCOOFF = 0x0 2295 SO_RCVTIMEO_NEW = 0x42
2296 TCOON = 0x1 2296 SO_RCVTIMEO_OLD = 0x1006
2297 TCP_BPF_IW = 0x3e9 2297 SO_REUSEADDR = 0x4
2298 TCP_BPF_SNDCWND_CLAMP = 0x3ea 2298 SO_REUSEPORT = 0x200
2299 TCP_CC_INFO = 0x1a 2299 SO_RXQ_OVFL = 0x28
2300 TCP_CM_INQ = 0x24 2300 SO_SECURITY_AUTHENTICATION = 0x16
2301 TCP_CONGESTION = 0xd 2301 SO_SECURITY_ENCRYPTION_NETWORK = 0x18
2302 TCP_COOKIE_IN_ALWAYS = 0x1 2302 SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17
2303 TCP_COOKIE_MAX = 0x10 2303 SO_SELECT_ERR_QUEUE = 0x2d
2304 TCP_COOKIE_MIN = 0x8 2304 SO_SNDBUF = 0x1001
2305 TCP_COOKIE_OUT_NEVER = 0x2 2305 SO_SNDBUFFORCE = 0x1f
2306 TCP_COOKIE_PAIR_SIZE = 0x20 2306 SO_SNDLOWAT = 0x1003
2307 TCP_COOKIE_TRANSACTIONS = 0xf 2307 SO_SNDTIMEO = 0x1005
2308 TCP_CORK = 0x3 2308 SO_SNDTIMEO_NEW = 0x43
2309 TCP_DEFER_ACCEPT = 0x9 2309 SO_SNDTIMEO_OLD = 0x1005
2310 TCP_FASTOPEN = 0x17 2310 SO_STYLE = 0x1008
2311 TCP_FASTOPEN_CONNECT = 0x1e 2311 SO_TIMESTAMP = 0x1d
2312 TCP_FASTOPEN_KEY = 0x21 2312 SO_TIMESTAMPING = 0x25
2313 TCP_FASTOPEN_NO_COOKIE = 0x22 2313 SO_TIMESTAMPING_NEW = 0x41
2314 TCP_INFO = 0xb 2314 SO_TIMESTAMPING_OLD = 0x25
2315 TCP_INQ = 0x24 2315 SO_TIMESTAMPNS = 0x23
2316 TCP_KEEPCNT = 0x6 2316 SO_TIMESTAMPNS_NEW = 0x40
2317 TCP_KEEPIDLE = 0x4 2317 SO_TIMESTAMPNS_OLD = 0x23
2318 TCP_KEEPINTVL = 0x5 2318 SO_TIMESTAMP_NEW = 0x3f
2319 TCP_LINGER2 = 0x8 2319 SO_TIMESTAMP_OLD = 0x1d
2320 TCP_MAXSEG = 0x2 2320 SO_TXTIME = 0x3d
2321 TCP_MAXWIN = 0xffff 2321 SO_TYPE = 0x1008
2322 TCP_MAX_WINSHIFT = 0xe 2322 SO_VM_SOCKETS_BUFFER_MAX_SIZE = 0x2
2323 TCP_MD5SIG = 0xe 2323 SO_VM_SOCKETS_BUFFER_MIN_SIZE = 0x1
2324 TCP_MD5SIG_EXT = 0x20 2324 SO_VM_SOCKETS_BUFFER_SIZE = 0x0
2325 TCP_MD5SIG_FLAG_PREFIX = 0x1 2325 SO_VM_SOCKETS_CONNECT_TIMEOUT = 0x6
2326 TCP_MD5SIG_MAXKEYLEN = 0x50 2326 SO_VM_SOCKETS_NONBLOCK_TXRX = 0x7
2327 TCP_MSS = 0x200 2327 SO_VM_SOCKETS_PEER_HOST_VM_ID = 0x3
2328 TCP_MSS_DEFAULT = 0x218 2328 SO_VM_SOCKETS_TRUSTED = 0x5
2329 TCP_MSS_DESIRED = 0x4c4 2329 SO_WIFI_STATUS = 0x29
2330 TCP_NODELAY = 0x1 2330 SO_ZEROCOPY = 0x3c
2331 TCP_NOTSENT_LOWAT = 0x19 2331 SPLICE_F_GIFT = 0x8
2332 TCP_QUEUE_SEQ = 0x15 2332 SPLICE_F_MORE = 0x4
2333 TCP_QUICKACK = 0xc 2333 SPLICE_F_MOVE = 0x1
2334 TCP_REPAIR = 0x13 2334 SPLICE_F_NONBLOCK = 0x2
2335 TCP_REPAIR_OFF = 0x0 2335 SQUASHFS_MAGIC = 0x73717368
2336 TCP_REPAIR_OFF_NO_WP = -0x1 2336 STACK_END_MAGIC = 0x57ac6e9d
2337 TCP_REPAIR_ON = 0x1 2337 STATX_ALL = 0xfff
2338 TCP_REPAIR_OPTIONS = 0x16 2338 STATX_ATIME = 0x20
2339 TCP_REPAIR_QUEUE = 0x14 2339 STATX_ATTR_APPEND = 0x20
2340 TCP_REPAIR_WINDOW = 0x1d 2340 STATX_ATTR_AUTOMOUNT = 0x1000
2341 TCP_SAVED_SYN = 0x1c 2341 STATX_ATTR_COMPRESSED = 0x4
2342 TCP_SAVE_SYN = 0x1b 2342 STATX_ATTR_ENCRYPTED = 0x800
2343 TCP_SYNCNT = 0x7 2343 STATX_ATTR_IMMUTABLE = 0x10
2344 TCP_S_DATA_IN = 0x4 2344 STATX_ATTR_NODUMP = 0x40
2345 TCP_S_DATA_OUT = 0x8 2345 STATX_ATTR_VERITY = 0x100000
2346 TCP_THIN_DUPACK = 0x11 2346 STATX_BASIC_STATS = 0x7ff
2347 TCP_THIN_LINEAR_TIMEOUTS = 0x10 2347 STATX_BLOCKS = 0x400
2348 TCP_TIMESTAMP = 0x18 2348 STATX_BTIME = 0x800
2349 TCP_ULP = 0x1f 2349 STATX_CTIME = 0x80
2350 TCP_USER_TIMEOUT = 0x12 2350 STATX_GID = 0x10
2351 TCP_WINDOW_CLAMP = 0xa 2351 STATX_INO = 0x100
2352 TCP_ZEROCOPY_RECEIVE = 0x23 2352 STATX_MODE = 0x2
2353 TCSAFLUSH = 0x5410 2353 STATX_MTIME = 0x40
2354 TCSBRK = 0x5405 2354 STATX_NLINK = 0x4
2355 TCSBRKP = 0x5486 2355 STATX_SIZE = 0x200
2356 TCSETA = 0x5402 2356 STATX_TYPE = 0x1
2357 TCSETAF = 0x5404 2357 STATX_UID = 0x8
2358 TCSETAW = 0x5403 2358 STATX__RESERVED = 0x80000000
2359 TCSETS = 0x540e 2359 SYNC_FILE_RANGE_WAIT_AFTER = 0x4
2360 TCSETS2 = 0x8030542b 2360 SYNC_FILE_RANGE_WAIT_BEFORE = 0x1
2361 TCSETSF = 0x5410 2361 SYNC_FILE_RANGE_WRITE = 0x2
2362 TCSETSF2 = 0x8030542d 2362 SYNC_FILE_RANGE_WRITE_AND_WAIT = 0x7
2363 TCSETSW = 0x540f 2363 SYSFS_MAGIC = 0x62656572
2364 TCSETSW2 = 0x8030542c 2364 S_BLKSIZE = 0x200
2365 TCXONC = 0x5406 2365 S_IEXEC = 0x40
2366 TIMER_ABSTIME = 0x1 2366 S_IFBLK = 0x6000
2367 TIOCCBRK = 0x5428 2367 S_IFCHR = 0x2000
2368 TIOCCONS = 0x80047478 2368 S_IFDIR = 0x4000
2369 TIOCEXCL = 0x740d 2369 S_IFIFO = 0x1000
2370 TIOCGDEV = 0x40045432 2370 S_IFLNK = 0xa000
2371 TIOCGETD = 0x7400 2371 S_IFMT = 0xf000
2372 TIOCGETP = 0x7408 2372 S_IFREG = 0x8000
2373 TIOCGEXCL = 0x40045440 2373 S_IFSOCK = 0xc000
2374 TIOCGICOUNT = 0x5492 2374 S_IREAD = 0x100
2375 TIOCGISO7816 = 0x40285442 2375 S_IRGRP = 0x20
2376 TIOCGLCKTRMIOS = 0x548b 2376 S_IROTH = 0x4
2377 TIOCGLTC = 0x7474 2377 S_IRUSR = 0x100
2378 TIOCGPGRP = 0x40047477 2378 S_IRWXG = 0x38
2379 TIOCGPKT = 0x40045438 2379 S_IRWXO = 0x7
2380 TIOCGPTLCK = 0x40045439 2380 S_IRWXU = 0x1c0
2381 TIOCGPTN = 0x40045430 2381 S_ISGID = 0x400
2382 TIOCGPTPEER = 0x20005441 2382 S_ISUID = 0x800
2383 TIOCGRS485 = 0x4020542e 2383 S_ISVTX = 0x200
2384 TIOCGSERIAL = 0x5484 2384 S_IWGRP = 0x10
2385 TIOCGSID = 0x7416 2385 S_IWOTH = 0x2
2386 TIOCGSOFTCAR = 0x5481 2386 S_IWRITE = 0x80
2387 TIOCGWINSZ = 0x40087468 2387 S_IWUSR = 0x80
2388 TIOCINQ = 0x467f 2388 S_IXGRP = 0x8
2389 TIOCLINUX = 0x5483 2389 S_IXOTH = 0x1
2390 TIOCMBIC = 0x741c 2390 S_IXUSR = 0x40
2391 TIOCMBIS = 0x741b 2391 TAB0 = 0x0
2392 TIOCMGET = 0x741d 2392 TAB1 = 0x800
2393 TIOCMIWAIT = 0x5491 2393 TAB2 = 0x1000
2394 TIOCMSET = 0x741a 2394 TAB3 = 0x1800
2395 TIOCM_CAR = 0x100 2395 TABDLY = 0x1800
2396 TIOCM_CD = 0x100 2396 TASKSTATS_CMD_ATTR_MAX = 0x4
2397 TIOCM_CTS = 0x40 2397 TASKSTATS_CMD_MAX = 0x2
2398 TIOCM_DSR = 0x400 2398 TASKSTATS_GENL_NAME = "TASKSTATS"
2399 TIOCM_DTR = 0x2 2399 TASKSTATS_GENL_VERSION = 0x1
2400 TIOCM_LE = 0x1 2400 TASKSTATS_TYPE_MAX = 0x6
2401 TIOCM_RI = 0x200 2401 TASKSTATS_VERSION = 0x9
2402 TIOCM_RNG = 0x200 2402 TCFLSH = 0x5407
2403 TIOCM_RTS = 0x4 2403 TCGETA = 0x5401
2404 TIOCM_SR = 0x20 2404 TCGETS = 0x540d
2405 TIOCM_ST = 0x10 2405 TCGETS2 = 0x4030542a
2406 TIOCNOTTY = 0x5471 2406 TCIFLUSH = 0x0
2407 TIOCNXCL = 0x740e 2407 TCIOFF = 0x2
2408 TIOCOUTQ = 0x7472 2408 TCIOFLUSH = 0x2
2409 TIOCPKT = 0x5470 2409 TCION = 0x3
2410 TIOCPKT_DATA = 0x0 2410 TCOFLUSH = 0x1
2411 TIOCPKT_DOSTOP = 0x20 2411 TCOOFF = 0x0
2412 TIOCPKT_FLUSHREAD = 0x1 2412 TCOON = 0x1
2413 TIOCPKT_FLUSHWRITE = 0x2 2413 TCP_BPF_IW = 0x3e9
2414 TIOCPKT_IOCTL = 0x40 2414 TCP_BPF_SNDCWND_CLAMP = 0x3ea
2415 TIOCPKT_NOSTOP = 0x10 2415 TCP_CC_INFO = 0x1a
2416 TIOCPKT_START = 0x8 2416 TCP_CM_INQ = 0x24
2417 TIOCPKT_STOP = 0x4 2417 TCP_CONGESTION = 0xd
2418 TIOCSBRK = 0x5427 2418 TCP_COOKIE_IN_ALWAYS = 0x1
2419 TIOCSCTTY = 0x5480 2419 TCP_COOKIE_MAX = 0x10
2420 TIOCSERCONFIG = 0x5488 2420 TCP_COOKIE_MIN = 0x8
2421 TIOCSERGETLSR = 0x548e 2421 TCP_COOKIE_OUT_NEVER = 0x2
2422 TIOCSERGETMULTI = 0x548f 2422 TCP_COOKIE_PAIR_SIZE = 0x20
2423 TIOCSERGSTRUCT = 0x548d 2423 TCP_COOKIE_TRANSACTIONS = 0xf
2424 TIOCSERGWILD = 0x5489 2424 TCP_CORK = 0x3
2425 TIOCSERSETMULTI = 0x5490 2425 TCP_DEFER_ACCEPT = 0x9
2426 TIOCSERSWILD = 0x548a 2426 TCP_FASTOPEN = 0x17
2427 TIOCSER_TEMT = 0x1 2427 TCP_FASTOPEN_CONNECT = 0x1e
2428 TIOCSETD = 0x7401 2428 TCP_FASTOPEN_KEY = 0x21
2429 TIOCSETN = 0x740a 2429 TCP_FASTOPEN_NO_COOKIE = 0x22
2430 TIOCSETP = 0x7409 2430 TCP_INFO = 0xb
2431 TIOCSIG = 0x80045436 2431 TCP_INQ = 0x24
2432 TIOCSISO7816 = 0xc0285443 2432 TCP_KEEPCNT = 0x6
2433 TIOCSLCKTRMIOS = 0x548c 2433 TCP_KEEPIDLE = 0x4
2434 TIOCSLTC = 0x7475 2434 TCP_KEEPINTVL = 0x5
2435 TIOCSPGRP = 0x80047476 2435 TCP_LINGER2 = 0x8
2436 TIOCSPTLCK = 0x80045431 2436 TCP_MAXSEG = 0x2
2437 TIOCSRS485 = 0xc020542f 2437 TCP_MAXWIN = 0xffff
2438 TIOCSSERIAL = 0x5485 2438 TCP_MAX_WINSHIFT = 0xe
2439 TIOCSSOFTCAR = 0x5482 2439 TCP_MD5SIG = 0xe
2440 TIOCSTI = 0x5472 2440 TCP_MD5SIG_EXT = 0x20
2441 TIOCSWINSZ = 0x80087467 2441 TCP_MD5SIG_FLAG_PREFIX = 0x1
2442 TIOCVHANGUP = 0x5437 2442 TCP_MD5SIG_MAXKEYLEN = 0x50
2443 TMPFS_MAGIC = 0x1021994 2443 TCP_MSS = 0x200
2444 TOSTOP = 0x8000 2444 TCP_MSS_DEFAULT = 0x218
2445 TPACKET_ALIGNMENT = 0x10 2445 TCP_MSS_DESIRED = 0x4c4
2446 TPACKET_HDRLEN = 0x34 2446 TCP_NODELAY = 0x1
2447 TP_STATUS_AVAILABLE = 0x0 2447 TCP_NOTSENT_LOWAT = 0x19
2448 TP_STATUS_BLK_TMO = 0x20 2448 TCP_QUEUE_SEQ = 0x15
2449 TP_STATUS_COPY = 0x2 2449 TCP_QUICKACK = 0xc
2450 TP_STATUS_CSUMNOTREADY = 0x8 2450 TCP_REPAIR = 0x13
2451 TP_STATUS_CSUM_VALID = 0x80 2451 TCP_REPAIR_OFF = 0x0
2452 TP_STATUS_KERNEL = 0x0 2452 TCP_REPAIR_OFF_NO_WP = -0x1
2453 TP_STATUS_LOSING = 0x4 2453 TCP_REPAIR_ON = 0x1
2454 TP_STATUS_SENDING = 0x2 2454 TCP_REPAIR_OPTIONS = 0x16
2455 TP_STATUS_SEND_REQUEST = 0x1 2455 TCP_REPAIR_QUEUE = 0x14
2456 TP_STATUS_TS_RAW_HARDWARE = -0x80000000 2456 TCP_REPAIR_WINDOW = 0x1d
2457 TP_STATUS_TS_SOFTWARE = 0x20000000 2457 TCP_SAVED_SYN = 0x1c
2458 TP_STATUS_TS_SYS_HARDWARE = 0x40000000 2458 TCP_SAVE_SYN = 0x1b
2459 TP_STATUS_USER = 0x1 2459 TCP_SYNCNT = 0x7
2460 TP_STATUS_VLAN_TPID_VALID = 0x40 2460 TCP_S_DATA_IN = 0x4
2461 TP_STATUS_VLAN_VALID = 0x10 2461 TCP_S_DATA_OUT = 0x8
2462 TP_STATUS_WRONG_FORMAT = 0x4 2462 TCP_THIN_DUPACK = 0x11
2463 TRACEFS_MAGIC = 0x74726163 2463 TCP_THIN_LINEAR_TIMEOUTS = 0x10
2464 TS_COMM_LEN = 0x20 2464 TCP_TIMESTAMP = 0x18
2465 TUNATTACHFILTER = 0x801054d5 2465 TCP_TX_DELAY = 0x25
2466 TUNDETACHFILTER = 0x801054d6 2466 TCP_ULP = 0x1f
2467 TUNGETDEVNETNS = 0x200054e3 2467 TCP_USER_TIMEOUT = 0x12
2468 TUNGETFEATURES = 0x400454cf 2468 TCP_WINDOW_CLAMP = 0xa
2469 TUNGETFILTER = 0x401054db 2469 TCP_ZEROCOPY_RECEIVE = 0x23
2470 TUNGETIFF = 0x400454d2 2470 TCSAFLUSH = 0x5410
2471 TUNGETSNDBUF = 0x400454d3 2471 TCSBRK = 0x5405
2472 TUNGETVNETBE = 0x400454df 2472 TCSBRKP = 0x5486
2473 TUNGETVNETHDRSZ = 0x400454d7 2473 TCSETA = 0x5402
2474 TUNGETVNETLE = 0x400454dd 2474 TCSETAF = 0x5404
2475 TUNSETCARRIER = 0x800454e2 2475 TCSETAW = 0x5403
2476 TUNSETDEBUG = 0x800454c9 2476 TCSETS = 0x540e
2477 TUNSETFILTEREBPF = 0x400454e1 2477 TCSETS2 = 0x8030542b
2478 TUNSETGROUP = 0x800454ce 2478 TCSETSF = 0x5410
2479 TUNSETIFF = 0x800454ca 2479 TCSETSF2 = 0x8030542d
2480 TUNSETIFINDEX = 0x800454da 2480 TCSETSW = 0x540f
2481 TUNSETLINK = 0x800454cd 2481 TCSETSW2 = 0x8030542c
2482 TUNSETNOCSUM = 0x800454c8 2482 TCXONC = 0x5406
2483 TUNSETOFFLOAD = 0x800454d0 2483 TIMER_ABSTIME = 0x1
2484 TUNSETOWNER = 0x800454cc 2484 TIOCCBRK = 0x5428
2485 TUNSETPERSIST = 0x800454cb 2485 TIOCCONS = 0x80047478
2486 TUNSETQUEUE = 0x800454d9 2486 TIOCEXCL = 0x740d
2487 TUNSETSNDBUF = 0x800454d4 2487 TIOCGDEV = 0x40045432
2488 TUNSETSTEERINGEBPF = 0x400454e0 2488 TIOCGETD = 0x7400
2489 TUNSETTXFILTER = 0x800454d1 2489 TIOCGETP = 0x7408
2490 TUNSETVNETBE = 0x800454de 2490 TIOCGEXCL = 0x40045440
2491 TUNSETVNETHDRSZ = 0x800454d8 2491 TIOCGICOUNT = 0x5492
2492 TUNSETVNETLE = 0x800454dc 2492 TIOCGISO7816 = 0x40285442
2493 UBI_IOCATT = 0x80186f40 2493 TIOCGLCKTRMIOS = 0x548b
2494 UBI_IOCDET = 0x80046f41 2494 TIOCGLTC = 0x7474
2495 UBI_IOCEBCH = 0x80044f02 2495 TIOCGPGRP = 0x40047477
2496 UBI_IOCEBER = 0x80044f01 2496 TIOCGPKT = 0x40045438
2497 UBI_IOCEBISMAP = 0x40044f05 2497 TIOCGPTLCK = 0x40045439
2498 UBI_IOCEBMAP = 0x80084f03 2498 TIOCGPTN = 0x40045430
2499 UBI_IOCEBUNMAP = 0x80044f04 2499 TIOCGPTPEER = 0x20005441
2500 UBI_IOCMKVOL = 0x80986f00 2500 TIOCGRS485 = 0x4020542e
2501 UBI_IOCRMVOL = 0x80046f01 2501 TIOCGSERIAL = 0x5484
2502 UBI_IOCRNVOL = 0x91106f03 2502 TIOCGSID = 0x7416
2503 UBI_IOCRPEB = 0x80046f04 2503 TIOCGSOFTCAR = 0x5481
2504 UBI_IOCRSVOL = 0x800c6f02 2504 TIOCGWINSZ = 0x40087468
2505 UBI_IOCSETVOLPROP = 0x80104f06 2505 TIOCINQ = 0x467f
2506 UBI_IOCSPEB = 0x80046f05 2506 TIOCLINUX = 0x5483
2507 UBI_IOCVOLCRBLK = 0x80804f07 2507 TIOCMBIC = 0x741c
2508 UBI_IOCVOLRMBLK = 0x20004f08 2508 TIOCMBIS = 0x741b
2509 UBI_IOCVOLUP = 0x80084f00 2509 TIOCMGET = 0x741d
2510 UDF_SUPER_MAGIC = 0x15013346 2510 TIOCMIWAIT = 0x5491
2511 UMOUNT_NOFOLLOW = 0x8 2511 TIOCMSET = 0x741a
2512 USBDEVICE_SUPER_MAGIC = 0x9fa2 2512 TIOCM_CAR = 0x100
2513 UTIME_NOW = 0x3fffffff 2513 TIOCM_CD = 0x100
2514 UTIME_OMIT = 0x3ffffffe 2514 TIOCM_CTS = 0x40
2515 V9FS_MAGIC = 0x1021997 2515 TIOCM_DSR = 0x400
2516 VDISCARD = 0xd 2516 TIOCM_DTR = 0x2
2517 VEOF = 0x10 2517 TIOCM_LE = 0x1
2518 VEOL = 0x11 2518 TIOCM_RI = 0x200
2519 VEOL2 = 0x6 2519 TIOCM_RNG = 0x200
2520 VERASE = 0x2 2520 TIOCM_RTS = 0x4
2521 VINTR = 0x0 2521 TIOCM_SR = 0x20
2522 VKILL = 0x3 2522 TIOCM_ST = 0x10
2523 VLNEXT = 0xf 2523 TIOCNOTTY = 0x5471
2524 VMADDR_CID_ANY = 0xffffffff 2524 TIOCNXCL = 0x740e
2525 VMADDR_CID_HOST = 0x2 2525 TIOCOUTQ = 0x7472
2526 VMADDR_CID_HYPERVISOR = 0x0 2526 TIOCPKT = 0x5470
2527 VMADDR_CID_RESERVED = 0x1 2527 TIOCPKT_DATA = 0x0
2528 VMADDR_PORT_ANY = 0xffffffff 2528 TIOCPKT_DOSTOP = 0x20
2529 VMIN = 0x4 2529 TIOCPKT_FLUSHREAD = 0x1
2530 VM_SOCKETS_INVALID_VERSION = 0xffffffff 2530 TIOCPKT_FLUSHWRITE = 0x2
2531 VQUIT = 0x1 2531 TIOCPKT_IOCTL = 0x40
2532 VREPRINT = 0xc 2532 TIOCPKT_NOSTOP = 0x10
2533 VSTART = 0x8 2533 TIOCPKT_START = 0x8
2534 VSTOP = 0x9 2534 TIOCPKT_STOP = 0x4
2535 VSUSP = 0xa 2535 TIOCSBRK = 0x5427
2536 VSWTC = 0x7 2536 TIOCSCTTY = 0x5480
2537 VSWTCH = 0x7 2537 TIOCSERCONFIG = 0x5488
2538 VT0 = 0x0 2538 TIOCSERGETLSR = 0x548e
2539 VT1 = 0x4000 2539 TIOCSERGETMULTI = 0x548f
2540 VTDLY = 0x4000 2540 TIOCSERGSTRUCT = 0x548d
2541 VTIME = 0x5 2541 TIOCSERGWILD = 0x5489
2542 VWERASE = 0xe 2542 TIOCSERSETMULTI = 0x5490
2543 WALL = 0x40000000 2543 TIOCSERSWILD = 0x548a
2544 WCLONE = 0x80000000 2544 TIOCSER_TEMT = 0x1
2545 WCONTINUED = 0x8 2545 TIOCSETD = 0x7401
2546 WDIOC_GETBOOTSTATUS = 0x40045702 2546 TIOCSETN = 0x740a
2547 WDIOC_GETPRETIMEOUT = 0x40045709 2547 TIOCSETP = 0x7409
2548 WDIOC_GETSTATUS = 0x40045701 2548 TIOCSIG = 0x80045436
2549 WDIOC_GETSUPPORT = 0x40285700 2549 TIOCSISO7816 = 0xc0285443
2550 WDIOC_GETTEMP = 0x40045703 2550 TIOCSLCKTRMIOS = 0x548c
2551 WDIOC_GETTIMELEFT = 0x4004570a 2551 TIOCSLTC = 0x7475
2552 WDIOC_GETTIMEOUT = 0x40045707 2552 TIOCSPGRP = 0x80047476
2553 WDIOC_KEEPALIVE = 0x40045705 2553 TIOCSPTLCK = 0x80045431
2554 WDIOC_SETOPTIONS = 0x40045704 2554 TIOCSRS485 = 0xc020542f
2555 WDIOC_SETPRETIMEOUT = 0xc0045708 2555 TIOCSSERIAL = 0x5485
2556 WDIOC_SETTIMEOUT = 0xc0045706 2556 TIOCSSOFTCAR = 0x5482
2557 WEXITED = 0x4 2557 TIOCSTI = 0x5472
2558 WIN_ACKMEDIACHANGE = 0xdb 2558 TIOCSWINSZ = 0x80087467
2559 WIN_CHECKPOWERMODE1 = 0xe5 2559 TIOCVHANGUP = 0x5437
2560 WIN_CHECKPOWERMODE2 = 0x98 2560 TIPC_ADDR_ID = 0x3
2561 WIN_DEVICE_RESET = 0x8 2561 TIPC_ADDR_MCAST = 0x1
2562 WIN_DIAGNOSE = 0x90 2562 TIPC_ADDR_NAME = 0x2
2563 WIN_DOORLOCK = 0xde 2563 TIPC_ADDR_NAMESEQ = 0x1
2564 WIN_DOORUNLOCK = 0xdf 2564 TIPC_AEAD_ALG_NAME = 0x20
2565 WIN_DOWNLOAD_MICROCODE = 0x92 2565 TIPC_AEAD_KEYLEN_MAX = 0x24
2566 WIN_FLUSH_CACHE = 0xe7 2566 TIPC_AEAD_KEYLEN_MIN = 0x14
2567 WIN_FLUSH_CACHE_EXT = 0xea 2567 TIPC_AEAD_KEY_SIZE_MAX = 0x48
2568 WIN_FORMAT = 0x50 2568 TIPC_CFG_SRV = 0x0
2569 WIN_GETMEDIASTATUS = 0xda 2569 TIPC_CLUSTER_BITS = 0xc
2570 WIN_IDENTIFY = 0xec 2570 TIPC_CLUSTER_MASK = 0xfff000
2571 WIN_IDENTIFY_DMA = 0xee 2571 TIPC_CLUSTER_OFFSET = 0xc
2572 WIN_IDLEIMMEDIATE = 0xe1 2572 TIPC_CLUSTER_SIZE = 0xfff
2573 WIN_INIT = 0x60 2573 TIPC_CONN_SHUTDOWN = 0x5
2574 WIN_MEDIAEJECT = 0xed 2574 TIPC_CONN_TIMEOUT = 0x82
2575 WIN_MULTREAD = 0xc4 2575 TIPC_CRITICAL_IMPORTANCE = 0x3
2576 WIN_MULTREAD_EXT = 0x29 2576 TIPC_DESTNAME = 0x3
2577 WIN_MULTWRITE = 0xc5 2577 TIPC_DEST_DROPPABLE = 0x81
2578 WIN_MULTWRITE_EXT = 0x39 2578 TIPC_ERRINFO = 0x1
2579 WIN_NOP = 0x0 2579 TIPC_ERR_NO_NAME = 0x1
2580 WIN_PACKETCMD = 0xa0 2580 TIPC_ERR_NO_NODE = 0x3
2581 WIN_PIDENTIFY = 0xa1 2581 TIPC_ERR_NO_PORT = 0x2
2582 WIN_POSTBOOT = 0xdc 2582 TIPC_ERR_OVERLOAD = 0x4
2583 WIN_PREBOOT = 0xdd 2583 TIPC_GROUP_JOIN = 0x87
2584 WIN_QUEUED_SERVICE = 0xa2 2584 TIPC_GROUP_LEAVE = 0x88
2585 WIN_READ = 0x20 2585 TIPC_GROUP_LOOPBACK = 0x1
2586 WIN_READDMA = 0xc8 2586 TIPC_GROUP_MEMBER_EVTS = 0x2
2587 WIN_READDMA_EXT = 0x25 2587 TIPC_HIGH_IMPORTANCE = 0x2
2588 WIN_READDMA_ONCE = 0xc9 2588 TIPC_IMPORTANCE = 0x7f
2589 WIN_READDMA_QUEUED = 0xc7 2589 TIPC_LINK_STATE = 0x2
2590 WIN_READDMA_QUEUED_EXT = 0x26 2590 TIPC_LOW_IMPORTANCE = 0x0
2591 WIN_READ_BUFFER = 0xe4 2591 TIPC_MAX_BEARER_NAME = 0x20
2592 WIN_READ_EXT = 0x24 2592 TIPC_MAX_IF_NAME = 0x10
2593 WIN_READ_LONG = 0x22 2593 TIPC_MAX_LINK_NAME = 0x44
2594 WIN_READ_LONG_ONCE = 0x23 2594 TIPC_MAX_MEDIA_NAME = 0x10
2595 WIN_READ_NATIVE_MAX = 0xf8 2595 TIPC_MAX_USER_MSG_SIZE = 0x101d0
2596 WIN_READ_NATIVE_MAX_EXT = 0x27 2596 TIPC_MCAST_BROADCAST = 0x85
2597 WIN_READ_ONCE = 0x21 2597 TIPC_MCAST_REPLICAST = 0x86
2598 WIN_RECAL = 0x10 2598 TIPC_MEDIUM_IMPORTANCE = 0x1
2599 WIN_RESTORE = 0x10 2599 TIPC_NODEID_LEN = 0x10
2600 WIN_SECURITY_DISABLE = 0xf6 2600 TIPC_NODELAY = 0x8a
2601 WIN_SECURITY_ERASE_PREPARE = 0xf3 2601 TIPC_NODE_BITS = 0xc
2602 WIN_SECURITY_ERASE_UNIT = 0xf4 2602 TIPC_NODE_MASK = 0xfff
2603 WIN_SECURITY_FREEZE_LOCK = 0xf5 2603 TIPC_NODE_OFFSET = 0x0
2604 WIN_SECURITY_SET_PASS = 0xf1 2604 TIPC_NODE_RECVQ_DEPTH = 0x83
2605 WIN_SECURITY_UNLOCK = 0xf2 2605 TIPC_NODE_SIZE = 0xfff
2606 WIN_SEEK = 0x70 2606 TIPC_NODE_STATE = 0x0
2607 WIN_SETFEATURES = 0xef 2607 TIPC_OK = 0x0
2608 WIN_SETIDLE1 = 0xe3 2608 TIPC_PUBLISHED = 0x1
2609 WIN_SETIDLE2 = 0x97 2609 TIPC_RESERVED_TYPES = 0x40
2610 WIN_SETMULT = 0xc6 2610 TIPC_RETDATA = 0x2
2611 WIN_SET_MAX = 0xf9 2611 TIPC_SERVICE_ADDR = 0x2
2612 WIN_SET_MAX_EXT = 0x37 2612 TIPC_SERVICE_RANGE = 0x1
2613 WIN_SLEEPNOW1 = 0xe6 2613 TIPC_SOCKET_ADDR = 0x3
2614 WIN_SLEEPNOW2 = 0x99 2614 TIPC_SOCK_RECVQ_DEPTH = 0x84
2615 WIN_SMART = 0xb0 2615 TIPC_SOCK_RECVQ_USED = 0x89
2616 WIN_SPECIFY = 0x91 2616 TIPC_SRC_DROPPABLE = 0x80
2617 WIN_SRST = 0x8 2617 TIPC_SUBSCR_TIMEOUT = 0x3
2618 WIN_STANDBY = 0xe2 2618 TIPC_SUB_CANCEL = 0x4
2619 WIN_STANDBY2 = 0x96 2619 TIPC_SUB_PORTS = 0x1
2620 WIN_STANDBYNOW1 = 0xe0 2620 TIPC_SUB_SERVICE = 0x2
2621 WIN_STANDBYNOW2 = 0x94 2621 TIPC_TOP_SRV = 0x1
2622 WIN_VERIFY = 0x40 2622 TIPC_WAIT_FOREVER = 0xffffffff
2623 WIN_VERIFY_EXT = 0x42 2623 TIPC_WITHDRAWN = 0x2
2624 WIN_VERIFY_ONCE = 0x41 2624 TIPC_ZONE_BITS = 0x8
2625 WIN_WRITE = 0x30 2625 TIPC_ZONE_CLUSTER_MASK = 0xfffff000
2626 WIN_WRITEDMA = 0xca 2626 TIPC_ZONE_MASK = 0xff000000
2627 WIN_WRITEDMA_EXT = 0x35 2627 TIPC_ZONE_OFFSET = 0x18
2628 WIN_WRITEDMA_ONCE = 0xcb 2628 TIPC_ZONE_SCOPE = 0x1
2629 WIN_WRITEDMA_QUEUED = 0xcc 2629 TIPC_ZONE_SIZE = 0xff
2630 WIN_WRITEDMA_QUEUED_EXT = 0x36 2630 TMPFS_MAGIC = 0x1021994
2631 WIN_WRITE_BUFFER = 0xe8 2631 TOSTOP = 0x8000
2632 WIN_WRITE_EXT = 0x34 2632 TPACKET_ALIGNMENT = 0x10
2633 WIN_WRITE_LONG = 0x32 2633 TPACKET_HDRLEN = 0x34
2634 WIN_WRITE_LONG_ONCE = 0x33 2634 TP_STATUS_AVAILABLE = 0x0
2635 WIN_WRITE_ONCE = 0x31 2635 TP_STATUS_BLK_TMO = 0x20
2636 WIN_WRITE_SAME = 0xe9 2636 TP_STATUS_COPY = 0x2
2637 WIN_WRITE_VERIFY = 0x3c 2637 TP_STATUS_CSUMNOTREADY = 0x8
2638 WNOHANG = 0x1 2638 TP_STATUS_CSUM_VALID = 0x80
2639 WNOTHREAD = 0x20000000 2639 TP_STATUS_KERNEL = 0x0
2640 WNOWAIT = 0x1000000 2640 TP_STATUS_LOSING = 0x4
2641 WORDSIZE = 0x40 2641 TP_STATUS_SENDING = 0x2
2642 WSTOPPED = 0x2 2642 TP_STATUS_SEND_REQUEST = 0x1
2643 WUNTRACED = 0x2 2643 TP_STATUS_TS_RAW_HARDWARE = 0x80000000
2644 XATTR_CREATE = 0x1 2644 TP_STATUS_TS_SOFTWARE = 0x20000000
2645 XATTR_REPLACE = 0x2 2645 TP_STATUS_TS_SYS_HARDWARE = 0x40000000
2646 XCASE = 0x4 2646 TP_STATUS_USER = 0x1
2647 XDP_COPY = 0x2 2647 TP_STATUS_VLAN_TPID_VALID = 0x40
2648 XDP_FLAGS_DRV_MODE = 0x4 2648 TP_STATUS_VLAN_VALID = 0x10
2649 XDP_FLAGS_HW_MODE = 0x8 2649 TP_STATUS_WRONG_FORMAT = 0x4
2650 XDP_FLAGS_MASK = 0xf 2650 TRACEFS_MAGIC = 0x74726163
2651 XDP_FLAGS_MODES = 0xe 2651 TS_COMM_LEN = 0x20
2652 XDP_FLAGS_SKB_MODE = 0x2 2652 TUNATTACHFILTER = 0x801054d5
2653 XDP_FLAGS_UPDATE_IF_NOEXIST = 0x1 2653 TUNDETACHFILTER = 0x801054d6
2654 XDP_MMAP_OFFSETS = 0x1 2654 TUNGETDEVNETNS = 0x200054e3
2655 XDP_PACKET_HEADROOM = 0x100 2655 TUNGETFEATURES = 0x400454cf
2656 XDP_PGOFF_RX_RING = 0x0 2656 TUNGETFILTER = 0x401054db
2657 XDP_PGOFF_TX_RING = 0x80000000 2657 TUNGETIFF = 0x400454d2
2658 XDP_RX_RING = 0x2 2658 TUNGETSNDBUF = 0x400454d3
2659 XDP_SHARED_UMEM = 0x1 2659 TUNGETVNETBE = 0x400454df
2660 XDP_STATISTICS = 0x7 2660 TUNGETVNETHDRSZ = 0x400454d7
2661 XDP_TX_RING = 0x3 2661 TUNGETVNETLE = 0x400454dd
2662 XDP_UMEM_COMPLETION_RING = 0x6 2662 TUNSETCARRIER = 0x800454e2
2663 XDP_UMEM_FILL_RING = 0x5 2663 TUNSETDEBUG = 0x800454c9
2664 XDP_UMEM_PGOFF_COMPLETION_RING = 0x180000000 2664 TUNSETFILTEREBPF = 0x400454e1
2665 XDP_UMEM_PGOFF_FILL_RING = 0x100000000 2665 TUNSETGROUP = 0x800454ce
2666 XDP_UMEM_REG = 0x4 2666 TUNSETIFF = 0x800454ca
2667 XDP_ZEROCOPY = 0x4 2667 TUNSETIFINDEX = 0x800454da
2668 XENFS_SUPER_MAGIC = 0xabba1974 2668 TUNSETLINK = 0x800454cd
2669 XFS_SUPER_MAGIC = 0x58465342 2669 TUNSETNOCSUM = 0x800454c8
2670 XTABS = 0x1800 2670 TUNSETOFFLOAD = 0x800454d0
2671 ZSMALLOC_MAGIC = 0x58295829 2671 TUNSETOWNER = 0x800454cc
2672 TUNSETPERSIST = 0x800454cb
2673 TUNSETQUEUE = 0x800454d9
2674 TUNSETSNDBUF = 0x800454d4
2675 TUNSETSTEERINGEBPF = 0x400454e0
2676 TUNSETTXFILTER = 0x800454d1
2677 TUNSETVNETBE = 0x800454de
2678 TUNSETVNETHDRSZ = 0x800454d8
2679 TUNSETVNETLE = 0x800454dc
2680 UBI_IOCATT = 0x80186f40
2681 UBI_IOCDET = 0x80046f41
2682 UBI_IOCEBCH = 0x80044f02
2683 UBI_IOCEBER = 0x80044f01
2684 UBI_IOCEBISMAP = 0x40044f05
2685 UBI_IOCEBMAP = 0x80084f03
2686 UBI_IOCEBUNMAP = 0x80044f04
2687 UBI_IOCMKVOL = 0x80986f00
2688 UBI_IOCRMVOL = 0x80046f01
2689 UBI_IOCRNVOL = 0x91106f03
2690 UBI_IOCRPEB = 0x80046f04
2691 UBI_IOCRSVOL = 0x800c6f02
2692 UBI_IOCSETVOLPROP = 0x80104f06
2693 UBI_IOCSPEB = 0x80046f05
2694 UBI_IOCVOLCRBLK = 0x80804f07
2695 UBI_IOCVOLRMBLK = 0x20004f08
2696 UBI_IOCVOLUP = 0x80084f00
2697 UDF_SUPER_MAGIC = 0x15013346
2698 UMOUNT_NOFOLLOW = 0x8
2699 USBDEVICE_SUPER_MAGIC = 0x9fa2
2700 UTIME_NOW = 0x3fffffff
2701 UTIME_OMIT = 0x3ffffffe
2702 V9FS_MAGIC = 0x1021997
2703 VDISCARD = 0xd
2704 VEOF = 0x10
2705 VEOL = 0x11
2706 VEOL2 = 0x6
2707 VERASE = 0x2
2708 VINTR = 0x0
2709 VKILL = 0x3
2710 VLNEXT = 0xf
2711 VMADDR_CID_ANY = 0xffffffff
2712 VMADDR_CID_HOST = 0x2
2713 VMADDR_CID_HYPERVISOR = 0x0
2714 VMADDR_CID_RESERVED = 0x1
2715 VMADDR_PORT_ANY = 0xffffffff
2716 VMIN = 0x4
2717 VM_SOCKETS_INVALID_VERSION = 0xffffffff
2718 VQUIT = 0x1
2719 VREPRINT = 0xc
2720 VSTART = 0x8
2721 VSTOP = 0x9
2722 VSUSP = 0xa
2723 VSWTC = 0x7
2724 VSWTCH = 0x7
2725 VT0 = 0x0
2726 VT1 = 0x4000
2727 VTDLY = 0x4000
2728 VTIME = 0x5
2729 VWERASE = 0xe
2730 WALL = 0x40000000
2731 WCLONE = 0x80000000
2732 WCONTINUED = 0x8
2733 WDIOC_GETBOOTSTATUS = 0x40045702
2734 WDIOC_GETPRETIMEOUT = 0x40045709
2735 WDIOC_GETSTATUS = 0x40045701
2736 WDIOC_GETSUPPORT = 0x40285700
2737 WDIOC_GETTEMP = 0x40045703
2738 WDIOC_GETTIMELEFT = 0x4004570a
2739 WDIOC_GETTIMEOUT = 0x40045707
2740 WDIOC_KEEPALIVE = 0x40045705
2741 WDIOC_SETOPTIONS = 0x40045704
2742 WDIOC_SETPRETIMEOUT = 0xc0045708
2743 WDIOC_SETTIMEOUT = 0xc0045706
2744 WEXITED = 0x4
2745 WIN_ACKMEDIACHANGE = 0xdb
2746 WIN_CHECKPOWERMODE1 = 0xe5
2747 WIN_CHECKPOWERMODE2 = 0x98
2748 WIN_DEVICE_RESET = 0x8
2749 WIN_DIAGNOSE = 0x90
2750 WIN_DOORLOCK = 0xde
2751 WIN_DOORUNLOCK = 0xdf
2752 WIN_DOWNLOAD_MICROCODE = 0x92
2753 WIN_FLUSH_CACHE = 0xe7
2754 WIN_FLUSH_CACHE_EXT = 0xea
2755 WIN_FORMAT = 0x50
2756 WIN_GETMEDIASTATUS = 0xda
2757 WIN_IDENTIFY = 0xec
2758 WIN_IDENTIFY_DMA = 0xee
2759 WIN_IDLEIMMEDIATE = 0xe1
2760 WIN_INIT = 0x60
2761 WIN_MEDIAEJECT = 0xed
2762 WIN_MULTREAD = 0xc4
2763 WIN_MULTREAD_EXT = 0x29
2764 WIN_MULTWRITE = 0xc5
2765 WIN_MULTWRITE_EXT = 0x39
2766 WIN_NOP = 0x0
2767 WIN_PACKETCMD = 0xa0
2768 WIN_PIDENTIFY = 0xa1
2769 WIN_POSTBOOT = 0xdc
2770 WIN_PREBOOT = 0xdd
2771 WIN_QUEUED_SERVICE = 0xa2
2772 WIN_READ = 0x20
2773 WIN_READDMA = 0xc8
2774 WIN_READDMA_EXT = 0x25
2775 WIN_READDMA_ONCE = 0xc9
2776 WIN_READDMA_QUEUED = 0xc7
2777 WIN_READDMA_QUEUED_EXT = 0x26
2778 WIN_READ_BUFFER = 0xe4
2779 WIN_READ_EXT = 0x24
2780 WIN_READ_LONG = 0x22
2781 WIN_READ_LONG_ONCE = 0x23
2782 WIN_READ_NATIVE_MAX = 0xf8
2783 WIN_READ_NATIVE_MAX_EXT = 0x27
2784 WIN_READ_ONCE = 0x21
2785 WIN_RECAL = 0x10
2786 WIN_RESTORE = 0x10
2787 WIN_SECURITY_DISABLE = 0xf6
2788 WIN_SECURITY_ERASE_PREPARE = 0xf3
2789 WIN_SECURITY_ERASE_UNIT = 0xf4
2790 WIN_SECURITY_FREEZE_LOCK = 0xf5
2791 WIN_SECURITY_SET_PASS = 0xf1
2792 WIN_SECURITY_UNLOCK = 0xf2
2793 WIN_SEEK = 0x70
2794 WIN_SETFEATURES = 0xef
2795 WIN_SETIDLE1 = 0xe3
2796 WIN_SETIDLE2 = 0x97
2797 WIN_SETMULT = 0xc6
2798 WIN_SET_MAX = 0xf9
2799 WIN_SET_MAX_EXT = 0x37
2800 WIN_SLEEPNOW1 = 0xe6
2801 WIN_SLEEPNOW2 = 0x99
2802 WIN_SMART = 0xb0
2803 WIN_SPECIFY = 0x91
2804 WIN_SRST = 0x8
2805 WIN_STANDBY = 0xe2
2806 WIN_STANDBY2 = 0x96
2807 WIN_STANDBYNOW1 = 0xe0
2808 WIN_STANDBYNOW2 = 0x94
2809 WIN_VERIFY = 0x40
2810 WIN_VERIFY_EXT = 0x42
2811 WIN_VERIFY_ONCE = 0x41
2812 WIN_WRITE = 0x30
2813 WIN_WRITEDMA = 0xca
2814 WIN_WRITEDMA_EXT = 0x35
2815 WIN_WRITEDMA_ONCE = 0xcb
2816 WIN_WRITEDMA_QUEUED = 0xcc
2817 WIN_WRITEDMA_QUEUED_EXT = 0x36
2818 WIN_WRITE_BUFFER = 0xe8
2819 WIN_WRITE_EXT = 0x34
2820 WIN_WRITE_LONG = 0x32
2821 WIN_WRITE_LONG_ONCE = 0x33
2822 WIN_WRITE_ONCE = 0x31
2823 WIN_WRITE_SAME = 0xe9
2824 WIN_WRITE_VERIFY = 0x3c
2825 WNOHANG = 0x1
2826 WNOTHREAD = 0x20000000
2827 WNOWAIT = 0x1000000
2828 WORDSIZE = 0x40
2829 WSTOPPED = 0x2
2830 WUNTRACED = 0x2
2831 XATTR_CREATE = 0x1
2832 XATTR_REPLACE = 0x2
2833 XCASE = 0x4
2834 XDP_COPY = 0x2
2835 XDP_FLAGS_DRV_MODE = 0x4
2836 XDP_FLAGS_HW_MODE = 0x8
2837 XDP_FLAGS_MASK = 0xf
2838 XDP_FLAGS_MODES = 0xe
2839 XDP_FLAGS_SKB_MODE = 0x2
2840 XDP_FLAGS_UPDATE_IF_NOEXIST = 0x1
2841 XDP_MMAP_OFFSETS = 0x1
2842 XDP_OPTIONS = 0x8
2843 XDP_OPTIONS_ZEROCOPY = 0x1
2844 XDP_PACKET_HEADROOM = 0x100
2845 XDP_PGOFF_RX_RING = 0x0
2846 XDP_PGOFF_TX_RING = 0x80000000
2847 XDP_RING_NEED_WAKEUP = 0x1
2848 XDP_RX_RING = 0x2
2849 XDP_SHARED_UMEM = 0x1
2850 XDP_STATISTICS = 0x7
2851 XDP_TX_RING = 0x3
2852 XDP_UMEM_COMPLETION_RING = 0x6
2853 XDP_UMEM_FILL_RING = 0x5
2854 XDP_UMEM_PGOFF_COMPLETION_RING = 0x180000000
2855 XDP_UMEM_PGOFF_FILL_RING = 0x100000000
2856 XDP_UMEM_REG = 0x4
2857 XDP_UMEM_UNALIGNED_CHUNK_FLAG = 0x1
2858 XDP_USE_NEED_WAKEUP = 0x8
2859 XDP_ZEROCOPY = 0x4
2860 XENFS_SUPER_MAGIC = 0xabba1974
2861 XFS_SUPER_MAGIC = 0x58465342
2862 XTABS = 0x1800
2863 Z3FOLD_MAGIC = 0x33
2864 ZSMALLOC_MAGIC = 0x58295829
2672) 2865)
2673 2866
2674// Errors 2867// Errors
diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go b/vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go
index 338c044..d23b3a9 100644
--- a/vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go
+++ b/vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go
@@ -11,2664 +11,2857 @@ package unix
11import "syscall" 11import "syscall"
12 12
13const ( 13const (
14 AAFS_MAGIC = 0x5a3c69f0 14 AAFS_MAGIC = 0x5a3c69f0
15 ADFS_SUPER_MAGIC = 0xadf5 15 ADFS_SUPER_MAGIC = 0xadf5
16 AFFS_SUPER_MAGIC = 0xadff 16 AFFS_SUPER_MAGIC = 0xadff
17 AFS_FS_MAGIC = 0x6b414653 17 AFS_FS_MAGIC = 0x6b414653
18 AFS_SUPER_MAGIC = 0x5346414f 18 AFS_SUPER_MAGIC = 0x5346414f
19 AF_ALG = 0x26 19 AF_ALG = 0x26
20 AF_APPLETALK = 0x5 20 AF_APPLETALK = 0x5
21 AF_ASH = 0x12 21 AF_ASH = 0x12
22 AF_ATMPVC = 0x8 22 AF_ATMPVC = 0x8
23 AF_ATMSVC = 0x14 23 AF_ATMSVC = 0x14
24 AF_AX25 = 0x3 24 AF_AX25 = 0x3
25 AF_BLUETOOTH = 0x1f 25 AF_BLUETOOTH = 0x1f
26 AF_BRIDGE = 0x7 26 AF_BRIDGE = 0x7
27 AF_CAIF = 0x25 27 AF_CAIF = 0x25
28 AF_CAN = 0x1d 28 AF_CAN = 0x1d
29 AF_DECnet = 0xc 29 AF_DECnet = 0xc
30 AF_ECONET = 0x13 30 AF_ECONET = 0x13
31 AF_FILE = 0x1 31 AF_FILE = 0x1
32 AF_IB = 0x1b 32 AF_IB = 0x1b
33 AF_IEEE802154 = 0x24 33 AF_IEEE802154 = 0x24
34 AF_INET = 0x2 34 AF_INET = 0x2
35 AF_INET6 = 0xa 35 AF_INET6 = 0xa
36 AF_IPX = 0x4 36 AF_IPX = 0x4
37 AF_IRDA = 0x17 37 AF_IRDA = 0x17
38 AF_ISDN = 0x22 38 AF_ISDN = 0x22
39 AF_IUCV = 0x20 39 AF_IUCV = 0x20
40 AF_KCM = 0x29 40 AF_KCM = 0x29
41 AF_KEY = 0xf 41 AF_KEY = 0xf
42 AF_LLC = 0x1a 42 AF_LLC = 0x1a
43 AF_LOCAL = 0x1 43 AF_LOCAL = 0x1
44 AF_MAX = 0x2d 44 AF_MAX = 0x2d
45 AF_MPLS = 0x1c 45 AF_MPLS = 0x1c
46 AF_NETBEUI = 0xd 46 AF_NETBEUI = 0xd
47 AF_NETLINK = 0x10 47 AF_NETLINK = 0x10
48 AF_NETROM = 0x6 48 AF_NETROM = 0x6
49 AF_NFC = 0x27 49 AF_NFC = 0x27
50 AF_PACKET = 0x11 50 AF_PACKET = 0x11
51 AF_PHONET = 0x23 51 AF_PHONET = 0x23
52 AF_PPPOX = 0x18 52 AF_PPPOX = 0x18
53 AF_QIPCRTR = 0x2a 53 AF_QIPCRTR = 0x2a
54 AF_RDS = 0x15 54 AF_RDS = 0x15
55 AF_ROSE = 0xb 55 AF_ROSE = 0xb
56 AF_ROUTE = 0x10 56 AF_ROUTE = 0x10
57 AF_RXRPC = 0x21 57 AF_RXRPC = 0x21
58 AF_SECURITY = 0xe 58 AF_SECURITY = 0xe
59 AF_SMC = 0x2b 59 AF_SMC = 0x2b
60 AF_SNA = 0x16 60 AF_SNA = 0x16
61 AF_TIPC = 0x1e 61 AF_TIPC = 0x1e
62 AF_UNIX = 0x1 62 AF_UNIX = 0x1
63 AF_UNSPEC = 0x0 63 AF_UNSPEC = 0x0
64 AF_VSOCK = 0x28 64 AF_VSOCK = 0x28
65 AF_WANPIPE = 0x19 65 AF_WANPIPE = 0x19
66 AF_X25 = 0x9 66 AF_X25 = 0x9
67 AF_XDP = 0x2c 67 AF_XDP = 0x2c
68 ALG_OP_DECRYPT = 0x0 68 ALG_OP_DECRYPT = 0x0
69 ALG_OP_ENCRYPT = 0x1 69 ALG_OP_ENCRYPT = 0x1
70 ALG_SET_AEAD_ASSOCLEN = 0x4 70 ALG_SET_AEAD_ASSOCLEN = 0x4
71 ALG_SET_AEAD_AUTHSIZE = 0x5 71 ALG_SET_AEAD_AUTHSIZE = 0x5
72 ALG_SET_IV = 0x2 72 ALG_SET_IV = 0x2
73 ALG_SET_KEY = 0x1 73 ALG_SET_KEY = 0x1
74 ALG_SET_OP = 0x3 74 ALG_SET_OP = 0x3
75 ANON_INODE_FS_MAGIC = 0x9041934 75 ANON_INODE_FS_MAGIC = 0x9041934
76 ARPHRD_6LOWPAN = 0x339 76 ARPHRD_6LOWPAN = 0x339
77 ARPHRD_ADAPT = 0x108 77 ARPHRD_ADAPT = 0x108
78 ARPHRD_APPLETLK = 0x8 78 ARPHRD_APPLETLK = 0x8
79 ARPHRD_ARCNET = 0x7 79 ARPHRD_ARCNET = 0x7
80 ARPHRD_ASH = 0x30d 80 ARPHRD_ASH = 0x30d
81 ARPHRD_ATM = 0x13 81 ARPHRD_ATM = 0x13
82 ARPHRD_AX25 = 0x3 82 ARPHRD_AX25 = 0x3
83 ARPHRD_BIF = 0x307 83 ARPHRD_BIF = 0x307
84 ARPHRD_CAIF = 0x336 84 ARPHRD_CAIF = 0x336
85 ARPHRD_CAN = 0x118 85 ARPHRD_CAN = 0x118
86 ARPHRD_CHAOS = 0x5 86 ARPHRD_CHAOS = 0x5
87 ARPHRD_CISCO = 0x201 87 ARPHRD_CISCO = 0x201
88 ARPHRD_CSLIP = 0x101 88 ARPHRD_CSLIP = 0x101
89 ARPHRD_CSLIP6 = 0x103 89 ARPHRD_CSLIP6 = 0x103
90 ARPHRD_DDCMP = 0x205 90 ARPHRD_DDCMP = 0x205
91 ARPHRD_DLCI = 0xf 91 ARPHRD_DLCI = 0xf
92 ARPHRD_ECONET = 0x30e 92 ARPHRD_ECONET = 0x30e
93 ARPHRD_EETHER = 0x2 93 ARPHRD_EETHER = 0x2
94 ARPHRD_ETHER = 0x1 94 ARPHRD_ETHER = 0x1
95 ARPHRD_EUI64 = 0x1b 95 ARPHRD_EUI64 = 0x1b
96 ARPHRD_FCAL = 0x311 96 ARPHRD_FCAL = 0x311
97 ARPHRD_FCFABRIC = 0x313 97 ARPHRD_FCFABRIC = 0x313
98 ARPHRD_FCPL = 0x312 98 ARPHRD_FCPL = 0x312
99 ARPHRD_FCPP = 0x310 99 ARPHRD_FCPP = 0x310
100 ARPHRD_FDDI = 0x306 100 ARPHRD_FDDI = 0x306
101 ARPHRD_FRAD = 0x302 101 ARPHRD_FRAD = 0x302
102 ARPHRD_HDLC = 0x201 102 ARPHRD_HDLC = 0x201
103 ARPHRD_HIPPI = 0x30c 103 ARPHRD_HIPPI = 0x30c
104 ARPHRD_HWX25 = 0x110 104 ARPHRD_HWX25 = 0x110
105 ARPHRD_IEEE1394 = 0x18 105 ARPHRD_IEEE1394 = 0x18
106 ARPHRD_IEEE802 = 0x6 106 ARPHRD_IEEE802 = 0x6
107 ARPHRD_IEEE80211 = 0x321 107 ARPHRD_IEEE80211 = 0x321
108 ARPHRD_IEEE80211_PRISM = 0x322 108 ARPHRD_IEEE80211_PRISM = 0x322
109 ARPHRD_IEEE80211_RADIOTAP = 0x323 109 ARPHRD_IEEE80211_RADIOTAP = 0x323
110 ARPHRD_IEEE802154 = 0x324 110 ARPHRD_IEEE802154 = 0x324
111 ARPHRD_IEEE802154_MONITOR = 0x325 111 ARPHRD_IEEE802154_MONITOR = 0x325
112 ARPHRD_IEEE802_TR = 0x320 112 ARPHRD_IEEE802_TR = 0x320
113 ARPHRD_INFINIBAND = 0x20 113 ARPHRD_INFINIBAND = 0x20
114 ARPHRD_IP6GRE = 0x337 114 ARPHRD_IP6GRE = 0x337
115 ARPHRD_IPDDP = 0x309 115 ARPHRD_IPDDP = 0x309
116 ARPHRD_IPGRE = 0x30a 116 ARPHRD_IPGRE = 0x30a
117 ARPHRD_IRDA = 0x30f 117 ARPHRD_IRDA = 0x30f
118 ARPHRD_LAPB = 0x204 118 ARPHRD_LAPB = 0x204
119 ARPHRD_LOCALTLK = 0x305 119 ARPHRD_LOCALTLK = 0x305
120 ARPHRD_LOOPBACK = 0x304 120 ARPHRD_LOOPBACK = 0x304
121 ARPHRD_METRICOM = 0x17 121 ARPHRD_METRICOM = 0x17
122 ARPHRD_NETLINK = 0x338 122 ARPHRD_NETLINK = 0x338
123 ARPHRD_NETROM = 0x0 123 ARPHRD_NETROM = 0x0
124 ARPHRD_NONE = 0xfffe 124 ARPHRD_NONE = 0xfffe
125 ARPHRD_PHONET = 0x334 125 ARPHRD_PHONET = 0x334
126 ARPHRD_PHONET_PIPE = 0x335 126 ARPHRD_PHONET_PIPE = 0x335
127 ARPHRD_PIMREG = 0x30b 127 ARPHRD_PIMREG = 0x30b
128 ARPHRD_PPP = 0x200 128 ARPHRD_PPP = 0x200
129 ARPHRD_PRONET = 0x4 129 ARPHRD_PRONET = 0x4
130 ARPHRD_RAWHDLC = 0x206 130 ARPHRD_RAWHDLC = 0x206
131 ARPHRD_RAWIP = 0x207 131 ARPHRD_RAWIP = 0x207
132 ARPHRD_ROSE = 0x10e 132 ARPHRD_ROSE = 0x10e
133 ARPHRD_RSRVD = 0x104 133 ARPHRD_RSRVD = 0x104
134 ARPHRD_SIT = 0x308 134 ARPHRD_SIT = 0x308
135 ARPHRD_SKIP = 0x303 135 ARPHRD_SKIP = 0x303
136 ARPHRD_SLIP = 0x100 136 ARPHRD_SLIP = 0x100
137 ARPHRD_SLIP6 = 0x102 137 ARPHRD_SLIP6 = 0x102
138 ARPHRD_TUNNEL = 0x300 138 ARPHRD_TUNNEL = 0x300
139 ARPHRD_TUNNEL6 = 0x301 139 ARPHRD_TUNNEL6 = 0x301
140 ARPHRD_VOID = 0xffff 140 ARPHRD_VOID = 0xffff
141 ARPHRD_VSOCKMON = 0x33a 141 ARPHRD_VSOCKMON = 0x33a
142 ARPHRD_X25 = 0x10f 142 ARPHRD_X25 = 0x10f
143 AUTOFS_SUPER_MAGIC = 0x187 143 AUTOFS_SUPER_MAGIC = 0x187
144 B0 = 0x0 144 B0 = 0x0
145 B1000000 = 0x1008 145 B1000000 = 0x1008
146 B110 = 0x3 146 B110 = 0x3
147 B115200 = 0x1002 147 B115200 = 0x1002
148 B1152000 = 0x1009 148 B1152000 = 0x1009
149 B1200 = 0x9 149 B1200 = 0x9
150 B134 = 0x4 150 B134 = 0x4
151 B150 = 0x5 151 B150 = 0x5
152 B1500000 = 0x100a 152 B1500000 = 0x100a
153 B1800 = 0xa 153 B1800 = 0xa
154 B19200 = 0xe 154 B19200 = 0xe
155 B200 = 0x6 155 B200 = 0x6
156 B2000000 = 0x100b 156 B2000000 = 0x100b
157 B230400 = 0x1003 157 B230400 = 0x1003
158 B2400 = 0xb 158 B2400 = 0xb
159 B2500000 = 0x100c 159 B2500000 = 0x100c
160 B300 = 0x7 160 B300 = 0x7
161 B3000000 = 0x100d 161 B3000000 = 0x100d
162 B3500000 = 0x100e 162 B3500000 = 0x100e
163 B38400 = 0xf 163 B38400 = 0xf
164 B4000000 = 0x100f 164 B4000000 = 0x100f
165 B460800 = 0x1004 165 B460800 = 0x1004
166 B4800 = 0xc 166 B4800 = 0xc
167 B50 = 0x1 167 B50 = 0x1
168 B500000 = 0x1005 168 B500000 = 0x1005
169 B57600 = 0x1001 169 B57600 = 0x1001
170 B576000 = 0x1006 170 B576000 = 0x1006
171 B600 = 0x8 171 B600 = 0x8
172 B75 = 0x2 172 B75 = 0x2
173 B921600 = 0x1007 173 B921600 = 0x1007
174 B9600 = 0xd 174 B9600 = 0xd
175 BALLOON_KVM_MAGIC = 0x13661366 175 BALLOON_KVM_MAGIC = 0x13661366
176 BDEVFS_MAGIC = 0x62646576 176 BDEVFS_MAGIC = 0x62646576
177 BINDERFS_SUPER_MAGIC = 0x6c6f6f70 177 BINDERFS_SUPER_MAGIC = 0x6c6f6f70
178 BINFMTFS_MAGIC = 0x42494e4d 178 BINFMTFS_MAGIC = 0x42494e4d
179 BLKBSZGET = 0x40041270 179 BLKBSZGET = 0x40041270
180 BLKBSZSET = 0x80041271 180 BLKBSZSET = 0x80041271
181 BLKFLSBUF = 0x20001261 181 BLKFLSBUF = 0x20001261
182 BLKFRAGET = 0x20001265 182 BLKFRAGET = 0x20001265
183 BLKFRASET = 0x20001264 183 BLKFRASET = 0x20001264
184 BLKGETSIZE = 0x20001260 184 BLKGETSIZE = 0x20001260
185 BLKGETSIZE64 = 0x40041272 185 BLKGETSIZE64 = 0x40041272
186 BLKPBSZGET = 0x2000127b 186 BLKPBSZGET = 0x2000127b
187 BLKRAGET = 0x20001263 187 BLKRAGET = 0x20001263
188 BLKRASET = 0x20001262 188 BLKRASET = 0x20001262
189 BLKROGET = 0x2000125e 189 BLKROGET = 0x2000125e
190 BLKROSET = 0x2000125d 190 BLKROSET = 0x2000125d
191 BLKRRPART = 0x2000125f 191 BLKRRPART = 0x2000125f
192 BLKSECTGET = 0x20001267 192 BLKSECTGET = 0x20001267
193 BLKSECTSET = 0x20001266 193 BLKSECTSET = 0x20001266
194 BLKSSZGET = 0x20001268 194 BLKSSZGET = 0x20001268
195 BOTHER = 0x1000 195 BOTHER = 0x1000
196 BPF_A = 0x10 196 BPF_A = 0x10
197 BPF_ABS = 0x20 197 BPF_ABS = 0x20
198 BPF_ADD = 0x0 198 BPF_ADD = 0x0
199 BPF_ADJ_ROOM_ENCAP_L2_MASK = 0xff 199 BPF_ADJ_ROOM_ENCAP_L2_MASK = 0xff
200 BPF_ADJ_ROOM_ENCAP_L2_SHIFT = 0x38 200 BPF_ADJ_ROOM_ENCAP_L2_SHIFT = 0x38
201 BPF_ALU = 0x4 201 BPF_ALU = 0x4
202 BPF_ALU64 = 0x7 202 BPF_ALU64 = 0x7
203 BPF_AND = 0x50 203 BPF_AND = 0x50
204 BPF_ANY = 0x0 204 BPF_ANY = 0x0
205 BPF_ARSH = 0xc0 205 BPF_ARSH = 0xc0
206 BPF_B = 0x10 206 BPF_B = 0x10
207 BPF_BUILD_ID_SIZE = 0x14 207 BPF_BUILD_ID_SIZE = 0x14
208 BPF_CALL = 0x80 208 BPF_CALL = 0x80
209 BPF_DEVCG_ACC_MKNOD = 0x1 209 BPF_DEVCG_ACC_MKNOD = 0x1
210 BPF_DEVCG_ACC_READ = 0x2 210 BPF_DEVCG_ACC_READ = 0x2
211 BPF_DEVCG_ACC_WRITE = 0x4 211 BPF_DEVCG_ACC_WRITE = 0x4
212 BPF_DEVCG_DEV_BLOCK = 0x1 212 BPF_DEVCG_DEV_BLOCK = 0x1
213 BPF_DEVCG_DEV_CHAR = 0x2 213 BPF_DEVCG_DEV_CHAR = 0x2
214 BPF_DIV = 0x30 214 BPF_DIV = 0x30
215 BPF_DW = 0x18 215 BPF_DW = 0x18
216 BPF_END = 0xd0 216 BPF_END = 0xd0
217 BPF_EXIST = 0x2 217 BPF_EXIST = 0x2
218 BPF_EXIT = 0x90 218 BPF_EXIT = 0x90
219 BPF_FROM_BE = 0x8 219 BPF_FLOW_DISSECTOR_F_PARSE_1ST_FRAG = 0x1
220 BPF_FROM_LE = 0x0 220 BPF_FLOW_DISSECTOR_F_STOP_AT_ENCAP = 0x4
221 BPF_FS_MAGIC = 0xcafe4a11 221 BPF_FLOW_DISSECTOR_F_STOP_AT_FLOW_LABEL = 0x2
222 BPF_F_ADJ_ROOM_ENCAP_L3_IPV4 = 0x2 222 BPF_FROM_BE = 0x8
223 BPF_F_ADJ_ROOM_ENCAP_L3_IPV6 = 0x4 223 BPF_FROM_LE = 0x0
224 BPF_F_ADJ_ROOM_ENCAP_L4_GRE = 0x8 224 BPF_FS_MAGIC = 0xcafe4a11
225 BPF_F_ADJ_ROOM_ENCAP_L4_UDP = 0x10 225 BPF_F_ADJ_ROOM_ENCAP_L3_IPV4 = 0x2
226 BPF_F_ADJ_ROOM_FIXED_GSO = 0x1 226 BPF_F_ADJ_ROOM_ENCAP_L3_IPV6 = 0x4
227 BPF_F_ALLOW_MULTI = 0x2 227 BPF_F_ADJ_ROOM_ENCAP_L4_GRE = 0x8
228 BPF_F_ALLOW_OVERRIDE = 0x1 228 BPF_F_ADJ_ROOM_ENCAP_L4_UDP = 0x10
229 BPF_F_ANY_ALIGNMENT = 0x2 229 BPF_F_ADJ_ROOM_FIXED_GSO = 0x1
230 BPF_F_CTXLEN_MASK = 0xfffff00000000 230 BPF_F_ALLOW_MULTI = 0x2
231 BPF_F_CURRENT_CPU = 0xffffffff 231 BPF_F_ALLOW_OVERRIDE = 0x1
232 BPF_F_CURRENT_NETNS = -0x1 232 BPF_F_ANY_ALIGNMENT = 0x2
233 BPF_F_DONT_FRAGMENT = 0x4 233 BPF_F_CLONE = 0x200
234 BPF_F_FAST_STACK_CMP = 0x200 234 BPF_F_CTXLEN_MASK = 0xfffff00000000
235 BPF_F_HDR_FIELD_MASK = 0xf 235 BPF_F_CURRENT_CPU = 0xffffffff
236 BPF_F_INDEX_MASK = 0xffffffff 236 BPF_F_CURRENT_NETNS = -0x1
237 BPF_F_INGRESS = 0x1 237 BPF_F_DONT_FRAGMENT = 0x4
238 BPF_F_INVALIDATE_HASH = 0x2 238 BPF_F_FAST_STACK_CMP = 0x200
239 BPF_F_LOCK = 0x4 239 BPF_F_HDR_FIELD_MASK = 0xf
240 BPF_F_MARK_ENFORCE = 0x40 240 BPF_F_INDEX_MASK = 0xffffffff
241 BPF_F_MARK_MANGLED_0 = 0x20 241 BPF_F_INGRESS = 0x1
242 BPF_F_NO_COMMON_LRU = 0x2 242 BPF_F_INVALIDATE_HASH = 0x2
243 BPF_F_NO_PREALLOC = 0x1 243 BPF_F_LOCK = 0x4
244 BPF_F_NUMA_NODE = 0x4 244 BPF_F_MARK_ENFORCE = 0x40
245 BPF_F_PSEUDO_HDR = 0x10 245 BPF_F_MARK_MANGLED_0 = 0x20
246 BPF_F_QUERY_EFFECTIVE = 0x1 246 BPF_F_MMAPABLE = 0x400
247 BPF_F_RDONLY = 0x8 247 BPF_F_NO_COMMON_LRU = 0x2
248 BPF_F_RDONLY_PROG = 0x80 248 BPF_F_NO_PREALLOC = 0x1
249 BPF_F_RECOMPUTE_CSUM = 0x1 249 BPF_F_NUMA_NODE = 0x4
250 BPF_F_REUSE_STACKID = 0x400 250 BPF_F_PSEUDO_HDR = 0x10
251 BPF_F_SEQ_NUMBER = 0x8 251 BPF_F_QUERY_EFFECTIVE = 0x1
252 BPF_F_SKIP_FIELD_MASK = 0xff 252 BPF_F_RDONLY = 0x8
253 BPF_F_STACK_BUILD_ID = 0x20 253 BPF_F_RDONLY_PROG = 0x80
254 BPF_F_STRICT_ALIGNMENT = 0x1 254 BPF_F_RECOMPUTE_CSUM = 0x1
255 BPF_F_SYSCTL_BASE_NAME = 0x1 255 BPF_F_REUSE_STACKID = 0x400
256 BPF_F_TUNINFO_IPV6 = 0x1 256 BPF_F_SEQ_NUMBER = 0x8
257 BPF_F_USER_BUILD_ID = 0x800 257 BPF_F_SKIP_FIELD_MASK = 0xff
258 BPF_F_USER_STACK = 0x100 258 BPF_F_STACK_BUILD_ID = 0x20
259 BPF_F_WRONLY = 0x10 259 BPF_F_STRICT_ALIGNMENT = 0x1
260 BPF_F_WRONLY_PROG = 0x100 260 BPF_F_SYSCTL_BASE_NAME = 0x1
261 BPF_F_ZERO_CSUM_TX = 0x2 261 BPF_F_TEST_RND_HI32 = 0x4
262 BPF_F_ZERO_SEED = 0x40 262 BPF_F_TEST_STATE_FREQ = 0x8
263 BPF_H = 0x8 263 BPF_F_TUNINFO_IPV6 = 0x1
264 BPF_IMM = 0x0 264 BPF_F_USER_BUILD_ID = 0x800
265 BPF_IND = 0x40 265 BPF_F_USER_STACK = 0x100
266 BPF_JA = 0x0 266 BPF_F_WRONLY = 0x10
267 BPF_JEQ = 0x10 267 BPF_F_WRONLY_PROG = 0x100
268 BPF_JGE = 0x30 268 BPF_F_ZERO_CSUM_TX = 0x2
269 BPF_JGT = 0x20 269 BPF_F_ZERO_SEED = 0x40
270 BPF_JLE = 0xb0 270 BPF_H = 0x8
271 BPF_JLT = 0xa0 271 BPF_IMM = 0x0
272 BPF_JMP = 0x5 272 BPF_IND = 0x40
273 BPF_JMP32 = 0x6 273 BPF_JA = 0x0
274 BPF_JNE = 0x50 274 BPF_JEQ = 0x10
275 BPF_JSET = 0x40 275 BPF_JGE = 0x30
276 BPF_JSGE = 0x70 276 BPF_JGT = 0x20
277 BPF_JSGT = 0x60 277 BPF_JLE = 0xb0
278 BPF_JSLE = 0xd0 278 BPF_JLT = 0xa0
279 BPF_JSLT = 0xc0 279 BPF_JMP = 0x5
280 BPF_K = 0x0 280 BPF_JMP32 = 0x6
281 BPF_LD = 0x0 281 BPF_JNE = 0x50
282 BPF_LDX = 0x1 282 BPF_JSET = 0x40
283 BPF_LEN = 0x80 283 BPF_JSGE = 0x70
284 BPF_LL_OFF = -0x200000 284 BPF_JSGT = 0x60
285 BPF_LSH = 0x60 285 BPF_JSLE = 0xd0
286 BPF_MAJOR_VERSION = 0x1 286 BPF_JSLT = 0xc0
287 BPF_MAXINSNS = 0x1000 287 BPF_K = 0x0
288 BPF_MEM = 0x60 288 BPF_LD = 0x0
289 BPF_MEMWORDS = 0x10 289 BPF_LDX = 0x1
290 BPF_MINOR_VERSION = 0x1 290 BPF_LEN = 0x80
291 BPF_MISC = 0x7 291 BPF_LL_OFF = -0x200000
292 BPF_MOD = 0x90 292 BPF_LSH = 0x60
293 BPF_MOV = 0xb0 293 BPF_MAJOR_VERSION = 0x1
294 BPF_MSH = 0xa0 294 BPF_MAXINSNS = 0x1000
295 BPF_MUL = 0x20 295 BPF_MEM = 0x60
296 BPF_NEG = 0x80 296 BPF_MEMWORDS = 0x10
297 BPF_NET_OFF = -0x100000 297 BPF_MINOR_VERSION = 0x1
298 BPF_NOEXIST = 0x1 298 BPF_MISC = 0x7
299 BPF_OBJ_NAME_LEN = 0x10 299 BPF_MOD = 0x90
300 BPF_OR = 0x40 300 BPF_MOV = 0xb0
301 BPF_PSEUDO_CALL = 0x1 301 BPF_MSH = 0xa0
302 BPF_PSEUDO_MAP_FD = 0x1 302 BPF_MUL = 0x20
303 BPF_PSEUDO_MAP_VALUE = 0x2 303 BPF_NEG = 0x80
304 BPF_RET = 0x6 304 BPF_NET_OFF = -0x100000
305 BPF_RSH = 0x70 305 BPF_NOEXIST = 0x1
306 BPF_SK_STORAGE_GET_F_CREATE = 0x1 306 BPF_OBJ_NAME_LEN = 0x10
307 BPF_SOCK_OPS_ALL_CB_FLAGS = 0x7 307 BPF_OR = 0x40
308 BPF_SOCK_OPS_RETRANS_CB_FLAG = 0x2 308 BPF_PSEUDO_CALL = 0x1
309 BPF_SOCK_OPS_RTO_CB_FLAG = 0x1 309 BPF_PSEUDO_MAP_FD = 0x1
310 BPF_SOCK_OPS_STATE_CB_FLAG = 0x4 310 BPF_PSEUDO_MAP_VALUE = 0x2
311 BPF_ST = 0x2 311 BPF_RET = 0x6
312 BPF_STX = 0x3 312 BPF_RSH = 0x70
313 BPF_SUB = 0x10 313 BPF_SK_STORAGE_GET_F_CREATE = 0x1
314 BPF_TAG_SIZE = 0x8 314 BPF_SOCK_OPS_ALL_CB_FLAGS = 0xf
315 BPF_TAX = 0x0 315 BPF_SOCK_OPS_RETRANS_CB_FLAG = 0x2
316 BPF_TO_BE = 0x8 316 BPF_SOCK_OPS_RTO_CB_FLAG = 0x1
317 BPF_TO_LE = 0x0 317 BPF_SOCK_OPS_RTT_CB_FLAG = 0x8
318 BPF_TXA = 0x80 318 BPF_SOCK_OPS_STATE_CB_FLAG = 0x4
319 BPF_W = 0x0 319 BPF_ST = 0x2
320 BPF_X = 0x8 320 BPF_STX = 0x3
321 BPF_XADD = 0xc0 321 BPF_SUB = 0x10
322 BPF_XOR = 0xa0 322 BPF_TAG_SIZE = 0x8
323 BRKINT = 0x2 323 BPF_TAX = 0x0
324 BS0 = 0x0 324 BPF_TO_BE = 0x8
325 BS1 = 0x2000 325 BPF_TO_LE = 0x0
326 BSDLY = 0x2000 326 BPF_TXA = 0x80
327 BTRFS_SUPER_MAGIC = 0x9123683e 327 BPF_W = 0x0
328 BTRFS_TEST_MAGIC = 0x73727279 328 BPF_X = 0x8
329 CAN_BCM = 0x2 329 BPF_XADD = 0xc0
330 CAN_EFF_FLAG = 0x80000000 330 BPF_XOR = 0xa0
331 CAN_EFF_ID_BITS = 0x1d 331 BRKINT = 0x2
332 CAN_EFF_MASK = 0x1fffffff 332 BS0 = 0x0
333 CAN_ERR_FLAG = 0x20000000 333 BS1 = 0x2000
334 CAN_ERR_MASK = 0x1fffffff 334 BSDLY = 0x2000
335 CAN_INV_FILTER = 0x20000000 335 BTRFS_SUPER_MAGIC = 0x9123683e
336 CAN_ISOTP = 0x6 336 BTRFS_TEST_MAGIC = 0x73727279
337 CAN_MAX_DLC = 0x8 337 CAN_BCM = 0x2
338 CAN_MAX_DLEN = 0x8 338 CAN_EFF_FLAG = 0x80000000
339 CAN_MCNET = 0x5 339 CAN_EFF_ID_BITS = 0x1d
340 CAN_MTU = 0x10 340 CAN_EFF_MASK = 0x1fffffff
341 CAN_NPROTO = 0x7 341 CAN_ERR_FLAG = 0x20000000
342 CAN_RAW = 0x1 342 CAN_ERR_MASK = 0x1fffffff
343 CAN_RAW_FILTER_MAX = 0x200 343 CAN_INV_FILTER = 0x20000000
344 CAN_RTR_FLAG = 0x40000000 344 CAN_ISOTP = 0x6
345 CAN_SFF_ID_BITS = 0xb 345 CAN_J1939 = 0x7
346 CAN_SFF_MASK = 0x7ff 346 CAN_MAX_DLC = 0x8
347 CAN_TP16 = 0x3 347 CAN_MAX_DLEN = 0x8
348 CAN_TP20 = 0x4 348 CAN_MCNET = 0x5
349 CAP_AUDIT_CONTROL = 0x1e 349 CAN_MTU = 0x10
350 CAP_AUDIT_READ = 0x25 350 CAN_NPROTO = 0x8
351 CAP_AUDIT_WRITE = 0x1d 351 CAN_RAW = 0x1
352 CAP_BLOCK_SUSPEND = 0x24 352 CAN_RAW_FILTER_MAX = 0x200
353 CAP_CHOWN = 0x0 353 CAN_RTR_FLAG = 0x40000000
354 CAP_DAC_OVERRIDE = 0x1 354 CAN_SFF_ID_BITS = 0xb
355 CAP_DAC_READ_SEARCH = 0x2 355 CAN_SFF_MASK = 0x7ff
356 CAP_FOWNER = 0x3 356 CAN_TP16 = 0x3
357 CAP_FSETID = 0x4 357 CAN_TP20 = 0x4
358 CAP_IPC_LOCK = 0xe 358 CAP_AUDIT_CONTROL = 0x1e
359 CAP_IPC_OWNER = 0xf 359 CAP_AUDIT_READ = 0x25
360 CAP_KILL = 0x5 360 CAP_AUDIT_WRITE = 0x1d
361 CAP_LAST_CAP = 0x25 361 CAP_BLOCK_SUSPEND = 0x24
362 CAP_LEASE = 0x1c 362 CAP_CHOWN = 0x0
363 CAP_LINUX_IMMUTABLE = 0x9 363 CAP_DAC_OVERRIDE = 0x1
364 CAP_MAC_ADMIN = 0x21 364 CAP_DAC_READ_SEARCH = 0x2
365 CAP_MAC_OVERRIDE = 0x20 365 CAP_FOWNER = 0x3
366 CAP_MKNOD = 0x1b 366 CAP_FSETID = 0x4
367 CAP_NET_ADMIN = 0xc 367 CAP_IPC_LOCK = 0xe
368 CAP_NET_BIND_SERVICE = 0xa 368 CAP_IPC_OWNER = 0xf
369 CAP_NET_BROADCAST = 0xb 369 CAP_KILL = 0x5
370 CAP_NET_RAW = 0xd 370 CAP_LAST_CAP = 0x25
371 CAP_SETFCAP = 0x1f 371 CAP_LEASE = 0x1c
372 CAP_SETGID = 0x6 372 CAP_LINUX_IMMUTABLE = 0x9
373 CAP_SETPCAP = 0x8 373 CAP_MAC_ADMIN = 0x21
374 CAP_SETUID = 0x7 374 CAP_MAC_OVERRIDE = 0x20
375 CAP_SYSLOG = 0x22 375 CAP_MKNOD = 0x1b
376 CAP_SYS_ADMIN = 0x15 376 CAP_NET_ADMIN = 0xc
377 CAP_SYS_BOOT = 0x16 377 CAP_NET_BIND_SERVICE = 0xa
378 CAP_SYS_CHROOT = 0x12 378 CAP_NET_BROADCAST = 0xb
379 CAP_SYS_MODULE = 0x10 379 CAP_NET_RAW = 0xd
380 CAP_SYS_NICE = 0x17 380 CAP_SETFCAP = 0x1f
381 CAP_SYS_PACCT = 0x14 381 CAP_SETGID = 0x6
382 CAP_SYS_PTRACE = 0x13 382 CAP_SETPCAP = 0x8
383 CAP_SYS_RAWIO = 0x11 383 CAP_SETUID = 0x7
384 CAP_SYS_RESOURCE = 0x18 384 CAP_SYSLOG = 0x22
385 CAP_SYS_TIME = 0x19 385 CAP_SYS_ADMIN = 0x15
386 CAP_SYS_TTY_CONFIG = 0x1a 386 CAP_SYS_BOOT = 0x16
387 CAP_WAKE_ALARM = 0x23 387 CAP_SYS_CHROOT = 0x12
388 CBAUD = 0x100f 388 CAP_SYS_MODULE = 0x10
389 CBAUDEX = 0x1000 389 CAP_SYS_NICE = 0x17
390 CFLUSH = 0xf 390 CAP_SYS_PACCT = 0x14
391 CGROUP2_SUPER_MAGIC = 0x63677270 391 CAP_SYS_PTRACE = 0x13
392 CGROUP_SUPER_MAGIC = 0x27e0eb 392 CAP_SYS_RAWIO = 0x11
393 CIBAUD = 0x100f0000 393 CAP_SYS_RESOURCE = 0x18
394 CLOCAL = 0x800 394 CAP_SYS_TIME = 0x19
395 CLOCK_BOOTTIME = 0x7 395 CAP_SYS_TTY_CONFIG = 0x1a
396 CLOCK_BOOTTIME_ALARM = 0x9 396 CAP_WAKE_ALARM = 0x23
397 CLOCK_DEFAULT = 0x0 397 CBAUD = 0x100f
398 CLOCK_EXT = 0x1 398 CBAUDEX = 0x1000
399 CLOCK_INT = 0x2 399 CFLUSH = 0xf
400 CLOCK_MONOTONIC = 0x1 400 CGROUP2_SUPER_MAGIC = 0x63677270
401 CLOCK_MONOTONIC_COARSE = 0x6 401 CGROUP_SUPER_MAGIC = 0x27e0eb
402 CLOCK_MONOTONIC_RAW = 0x4 402 CIBAUD = 0x100f0000
403 CLOCK_PROCESS_CPUTIME_ID = 0x2 403 CLOCAL = 0x800
404 CLOCK_REALTIME = 0x0 404 CLOCK_BOOTTIME = 0x7
405 CLOCK_REALTIME_ALARM = 0x8 405 CLOCK_BOOTTIME_ALARM = 0x9
406 CLOCK_REALTIME_COARSE = 0x5 406 CLOCK_DEFAULT = 0x0
407 CLOCK_TAI = 0xb 407 CLOCK_EXT = 0x1
408 CLOCK_THREAD_CPUTIME_ID = 0x3 408 CLOCK_INT = 0x2
409 CLOCK_TXFROMRX = 0x4 409 CLOCK_MONOTONIC = 0x1
410 CLOCK_TXINT = 0x3 410 CLOCK_MONOTONIC_COARSE = 0x6
411 CLONE_CHILD_CLEARTID = 0x200000 411 CLOCK_MONOTONIC_RAW = 0x4
412 CLONE_CHILD_SETTID = 0x1000000 412 CLOCK_PROCESS_CPUTIME_ID = 0x2
413 CLONE_DETACHED = 0x400000 413 CLOCK_REALTIME = 0x0
414 CLONE_FILES = 0x400 414 CLOCK_REALTIME_ALARM = 0x8
415 CLONE_FS = 0x200 415 CLOCK_REALTIME_COARSE = 0x5
416 CLONE_IO = 0x80000000 416 CLOCK_TAI = 0xb
417 CLONE_NEWCGROUP = 0x2000000 417 CLOCK_THREAD_CPUTIME_ID = 0x3
418 CLONE_NEWIPC = 0x8000000 418 CLOCK_TXFROMRX = 0x4
419 CLONE_NEWNET = 0x40000000 419 CLOCK_TXINT = 0x3
420 CLONE_NEWNS = 0x20000 420 CLONE_ARGS_SIZE_VER0 = 0x40
421 CLONE_NEWPID = 0x20000000 421 CLONE_ARGS_SIZE_VER1 = 0x50
422 CLONE_NEWUSER = 0x10000000 422 CLONE_CHILD_CLEARTID = 0x200000
423 CLONE_NEWUTS = 0x4000000 423 CLONE_CHILD_SETTID = 0x1000000
424 CLONE_PARENT = 0x8000 424 CLONE_CLEAR_SIGHAND = 0x100000000
425 CLONE_PARENT_SETTID = 0x100000 425 CLONE_DETACHED = 0x400000
426 CLONE_PIDFD = 0x1000 426 CLONE_FILES = 0x400
427 CLONE_PTRACE = 0x2000 427 CLONE_FS = 0x200
428 CLONE_SETTLS = 0x80000 428 CLONE_IO = 0x80000000
429 CLONE_SIGHAND = 0x800 429 CLONE_NEWCGROUP = 0x2000000
430 CLONE_SYSVSEM = 0x40000 430 CLONE_NEWIPC = 0x8000000
431 CLONE_THREAD = 0x10000 431 CLONE_NEWNET = 0x40000000
432 CLONE_UNTRACED = 0x800000 432 CLONE_NEWNS = 0x20000
433 CLONE_VFORK = 0x4000 433 CLONE_NEWPID = 0x20000000
434 CLONE_VM = 0x100 434 CLONE_NEWUSER = 0x10000000
435 CMSPAR = 0x40000000 435 CLONE_NEWUTS = 0x4000000
436 CODA_SUPER_MAGIC = 0x73757245 436 CLONE_PARENT = 0x8000
437 CR0 = 0x0 437 CLONE_PARENT_SETTID = 0x100000
438 CR1 = 0x200 438 CLONE_PIDFD = 0x1000
439 CR2 = 0x400 439 CLONE_PTRACE = 0x2000
440 CR3 = 0x600 440 CLONE_SETTLS = 0x80000
441 CRAMFS_MAGIC = 0x28cd3d45 441 CLONE_SIGHAND = 0x800
442 CRDLY = 0x600 442 CLONE_SYSVSEM = 0x40000
443 CREAD = 0x80 443 CLONE_THREAD = 0x10000
444 CRTSCTS = 0x80000000 444 CLONE_UNTRACED = 0x800000
445 CRYPTO_MAX_NAME = 0x40 445 CLONE_VFORK = 0x4000
446 CRYPTO_MSG_MAX = 0x15 446 CLONE_VM = 0x100
447 CRYPTO_NR_MSGTYPES = 0x6 447 CMSPAR = 0x40000000
448 CRYPTO_REPORT_MAXSIZE = 0x160 448 CODA_SUPER_MAGIC = 0x73757245
449 CS5 = 0x0 449 CR0 = 0x0
450 CS6 = 0x10 450 CR1 = 0x200
451 CS7 = 0x20 451 CR2 = 0x400
452 CS8 = 0x30 452 CR3 = 0x600
453 CSIGNAL = 0xff 453 CRAMFS_MAGIC = 0x28cd3d45
454 CSIZE = 0x30 454 CRDLY = 0x600
455 CSTART = 0x11 455 CREAD = 0x80
456 CSTATUS = 0x0 456 CRTSCTS = 0x80000000
457 CSTOP = 0x13 457 CRYPTO_MAX_NAME = 0x40
458 CSTOPB = 0x40 458 CRYPTO_MSG_MAX = 0x15
459 CSUSP = 0x1a 459 CRYPTO_NR_MSGTYPES = 0x6
460 DAXFS_MAGIC = 0x64646178 460 CRYPTO_REPORT_MAXSIZE = 0x160
461 DEBUGFS_MAGIC = 0x64626720 461 CS5 = 0x0
462 DEVPTS_SUPER_MAGIC = 0x1cd1 462 CS6 = 0x10
463 DT_BLK = 0x6 463 CS7 = 0x20
464 DT_CHR = 0x2 464 CS8 = 0x30
465 DT_DIR = 0x4 465 CSIGNAL = 0xff
466 DT_FIFO = 0x1 466 CSIZE = 0x30
467 DT_LNK = 0xa 467 CSTART = 0x11
468 DT_REG = 0x8 468 CSTATUS = 0x0
469 DT_SOCK = 0xc 469 CSTOP = 0x13
470 DT_UNKNOWN = 0x0 470 CSTOPB = 0x40
471 DT_WHT = 0xe 471 CSUSP = 0x1a
472 ECHO = 0x8 472 DAXFS_MAGIC = 0x64646178
473 ECHOCTL = 0x200 473 DEBUGFS_MAGIC = 0x64626720
474 ECHOE = 0x10 474 DEVLINK_CMD_ESWITCH_MODE_GET = 0x1d
475 ECHOK = 0x20 475 DEVLINK_CMD_ESWITCH_MODE_SET = 0x1e
476 ECHOKE = 0x800 476 DEVLINK_GENL_MCGRP_CONFIG_NAME = "config"
477 ECHONL = 0x40 477 DEVLINK_GENL_NAME = "devlink"
478 ECHOPRT = 0x400 478 DEVLINK_GENL_VERSION = 0x1
479 ECRYPTFS_SUPER_MAGIC = 0xf15f 479 DEVLINK_SB_THRESHOLD_TO_ALPHA_MAX = 0x14
480 EFD_CLOEXEC = 0x80000 480 DEVPTS_SUPER_MAGIC = 0x1cd1
481 EFD_NONBLOCK = 0x80 481 DMA_BUF_MAGIC = 0x444d4142
482 EFD_SEMAPHORE = 0x1 482 DT_BLK = 0x6
483 EFIVARFS_MAGIC = 0xde5e81e4 483 DT_CHR = 0x2
484 EFS_SUPER_MAGIC = 0x414a53 484 DT_DIR = 0x4
485 ENCODING_DEFAULT = 0x0 485 DT_FIFO = 0x1
486 ENCODING_FM_MARK = 0x3 486 DT_LNK = 0xa
487 ENCODING_FM_SPACE = 0x4 487 DT_REG = 0x8
488 ENCODING_MANCHESTER = 0x5 488 DT_SOCK = 0xc
489 ENCODING_NRZ = 0x1 489 DT_UNKNOWN = 0x0
490 ENCODING_NRZI = 0x2 490 DT_WHT = 0xe
491 EPOLLERR = 0x8 491 ECHO = 0x8
492 EPOLLET = 0x80000000 492 ECHOCTL = 0x200
493 EPOLLEXCLUSIVE = 0x10000000 493 ECHOE = 0x10
494 EPOLLHUP = 0x10 494 ECHOK = 0x20
495 EPOLLIN = 0x1 495 ECHOKE = 0x800
496 EPOLLMSG = 0x400 496 ECHONL = 0x40
497 EPOLLONESHOT = 0x40000000 497 ECHOPRT = 0x400
498 EPOLLOUT = 0x4 498 ECRYPTFS_SUPER_MAGIC = 0xf15f
499 EPOLLPRI = 0x2 499 EFD_CLOEXEC = 0x80000
500 EPOLLRDBAND = 0x80 500 EFD_NONBLOCK = 0x80
501 EPOLLRDHUP = 0x2000 501 EFD_SEMAPHORE = 0x1
502 EPOLLRDNORM = 0x40 502 EFIVARFS_MAGIC = 0xde5e81e4
503 EPOLLWAKEUP = 0x20000000 503 EFS_SUPER_MAGIC = 0x414a53
504 EPOLLWRBAND = 0x200 504 ENCODING_DEFAULT = 0x0
505 EPOLLWRNORM = 0x100 505 ENCODING_FM_MARK = 0x3
506 EPOLL_CLOEXEC = 0x80000 506 ENCODING_FM_SPACE = 0x4
507 EPOLL_CTL_ADD = 0x1 507 ENCODING_MANCHESTER = 0x5
508 EPOLL_CTL_DEL = 0x2 508 ENCODING_NRZ = 0x1
509 EPOLL_CTL_MOD = 0x3 509 ENCODING_NRZI = 0x2
510 ETH_P_1588 = 0x88f7 510 EPOLLERR = 0x8
511 ETH_P_8021AD = 0x88a8 511 EPOLLET = 0x80000000
512 ETH_P_8021AH = 0x88e7 512 EPOLLEXCLUSIVE = 0x10000000
513 ETH_P_8021Q = 0x8100 513 EPOLLHUP = 0x10
514 ETH_P_80221 = 0x8917 514 EPOLLIN = 0x1
515 ETH_P_802_2 = 0x4 515 EPOLLMSG = 0x400
516 ETH_P_802_3 = 0x1 516 EPOLLONESHOT = 0x40000000
517 ETH_P_802_3_MIN = 0x600 517 EPOLLOUT = 0x4
518 ETH_P_802_EX1 = 0x88b5 518 EPOLLPRI = 0x2
519 ETH_P_AARP = 0x80f3 519 EPOLLRDBAND = 0x80
520 ETH_P_AF_IUCV = 0xfbfb 520 EPOLLRDHUP = 0x2000
521 ETH_P_ALL = 0x3 521 EPOLLRDNORM = 0x40
522 ETH_P_AOE = 0x88a2 522 EPOLLWAKEUP = 0x20000000
523 ETH_P_ARCNET = 0x1a 523 EPOLLWRBAND = 0x200
524 ETH_P_ARP = 0x806 524 EPOLLWRNORM = 0x100
525 ETH_P_ATALK = 0x809b 525 EPOLL_CLOEXEC = 0x80000
526 ETH_P_ATMFATE = 0x8884 526 EPOLL_CTL_ADD = 0x1
527 ETH_P_ATMMPOA = 0x884c 527 EPOLL_CTL_DEL = 0x2
528 ETH_P_AX25 = 0x2 528 EPOLL_CTL_MOD = 0x3
529 ETH_P_BATMAN = 0x4305 529 EROFS_SUPER_MAGIC_V1 = 0xe0f5e1e2
530 ETH_P_BPQ = 0x8ff 530 ETH_P_1588 = 0x88f7
531 ETH_P_CAIF = 0xf7 531 ETH_P_8021AD = 0x88a8
532 ETH_P_CAN = 0xc 532 ETH_P_8021AH = 0x88e7
533 ETH_P_CANFD = 0xd 533 ETH_P_8021Q = 0x8100
534 ETH_P_CONTROL = 0x16 534 ETH_P_80221 = 0x8917
535 ETH_P_CUST = 0x6006 535 ETH_P_802_2 = 0x4
536 ETH_P_DDCMP = 0x6 536 ETH_P_802_3 = 0x1
537 ETH_P_DEC = 0x6000 537 ETH_P_802_3_MIN = 0x600
538 ETH_P_DIAG = 0x6005 538 ETH_P_802_EX1 = 0x88b5
539 ETH_P_DNA_DL = 0x6001 539 ETH_P_AARP = 0x80f3
540 ETH_P_DNA_RC = 0x6002 540 ETH_P_AF_IUCV = 0xfbfb
541 ETH_P_DNA_RT = 0x6003 541 ETH_P_ALL = 0x3
542 ETH_P_DSA = 0x1b 542 ETH_P_AOE = 0x88a2
543 ETH_P_DSA_8021Q = 0xdadb 543 ETH_P_ARCNET = 0x1a
544 ETH_P_ECONET = 0x18 544 ETH_P_ARP = 0x806
545 ETH_P_EDSA = 0xdada 545 ETH_P_ATALK = 0x809b
546 ETH_P_ERSPAN = 0x88be 546 ETH_P_ATMFATE = 0x8884
547 ETH_P_ERSPAN2 = 0x22eb 547 ETH_P_ATMMPOA = 0x884c
548 ETH_P_FCOE = 0x8906 548 ETH_P_AX25 = 0x2
549 ETH_P_FIP = 0x8914 549 ETH_P_BATMAN = 0x4305
550 ETH_P_HDLC = 0x19 550 ETH_P_BPQ = 0x8ff
551 ETH_P_HSR = 0x892f 551 ETH_P_CAIF = 0xf7
552 ETH_P_IBOE = 0x8915 552 ETH_P_CAN = 0xc
553 ETH_P_IEEE802154 = 0xf6 553 ETH_P_CANFD = 0xd
554 ETH_P_IEEEPUP = 0xa00 554 ETH_P_CONTROL = 0x16
555 ETH_P_IEEEPUPAT = 0xa01 555 ETH_P_CUST = 0x6006
556 ETH_P_IFE = 0xed3e 556 ETH_P_DDCMP = 0x6
557 ETH_P_IP = 0x800 557 ETH_P_DEC = 0x6000
558 ETH_P_IPV6 = 0x86dd 558 ETH_P_DIAG = 0x6005
559 ETH_P_IPX = 0x8137 559 ETH_P_DNA_DL = 0x6001
560 ETH_P_IRDA = 0x17 560 ETH_P_DNA_RC = 0x6002
561 ETH_P_LAT = 0x6004 561 ETH_P_DNA_RT = 0x6003
562 ETH_P_LINK_CTL = 0x886c 562 ETH_P_DSA = 0x1b
563 ETH_P_LOCALTALK = 0x9 563 ETH_P_DSA_8021Q = 0xdadb
564 ETH_P_LOOP = 0x60 564 ETH_P_ECONET = 0x18
565 ETH_P_LOOPBACK = 0x9000 565 ETH_P_EDSA = 0xdada
566 ETH_P_MACSEC = 0x88e5 566 ETH_P_ERSPAN = 0x88be
567 ETH_P_MAP = 0xf9 567 ETH_P_ERSPAN2 = 0x22eb
568 ETH_P_MOBITEX = 0x15 568 ETH_P_FCOE = 0x8906
569 ETH_P_MPLS_MC = 0x8848 569 ETH_P_FIP = 0x8914
570 ETH_P_MPLS_UC = 0x8847 570 ETH_P_HDLC = 0x19
571 ETH_P_MVRP = 0x88f5 571 ETH_P_HSR = 0x892f
572 ETH_P_NCSI = 0x88f8 572 ETH_P_IBOE = 0x8915
573 ETH_P_NSH = 0x894f 573 ETH_P_IEEE802154 = 0xf6
574 ETH_P_PAE = 0x888e 574 ETH_P_IEEEPUP = 0xa00
575 ETH_P_PAUSE = 0x8808 575 ETH_P_IEEEPUPAT = 0xa01
576 ETH_P_PHONET = 0xf5 576 ETH_P_IFE = 0xed3e
577 ETH_P_PPPTALK = 0x10 577 ETH_P_IP = 0x800
578 ETH_P_PPP_DISC = 0x8863 578 ETH_P_IPV6 = 0x86dd
579 ETH_P_PPP_MP = 0x8 579 ETH_P_IPX = 0x8137
580 ETH_P_PPP_SES = 0x8864 580 ETH_P_IRDA = 0x17
581 ETH_P_PREAUTH = 0x88c7 581 ETH_P_LAT = 0x6004
582 ETH_P_PRP = 0x88fb 582 ETH_P_LINK_CTL = 0x886c
583 ETH_P_PUP = 0x200 583 ETH_P_LLDP = 0x88cc
584 ETH_P_PUPAT = 0x201 584 ETH_P_LOCALTALK = 0x9
585 ETH_P_QINQ1 = 0x9100 585 ETH_P_LOOP = 0x60
586 ETH_P_QINQ2 = 0x9200 586 ETH_P_LOOPBACK = 0x9000
587 ETH_P_QINQ3 = 0x9300 587 ETH_P_MACSEC = 0x88e5
588 ETH_P_RARP = 0x8035 588 ETH_P_MAP = 0xf9
589 ETH_P_SCA = 0x6007 589 ETH_P_MOBITEX = 0x15
590 ETH_P_SLOW = 0x8809 590 ETH_P_MPLS_MC = 0x8848
591 ETH_P_SNAP = 0x5 591 ETH_P_MPLS_UC = 0x8847
592 ETH_P_TDLS = 0x890d 592 ETH_P_MVRP = 0x88f5
593 ETH_P_TEB = 0x6558 593 ETH_P_NCSI = 0x88f8
594 ETH_P_TIPC = 0x88ca 594 ETH_P_NSH = 0x894f
595 ETH_P_TRAILER = 0x1c 595 ETH_P_PAE = 0x888e
596 ETH_P_TR_802_2 = 0x11 596 ETH_P_PAUSE = 0x8808
597 ETH_P_TSN = 0x22f0 597 ETH_P_PHONET = 0xf5
598 ETH_P_WAN_PPP = 0x7 598 ETH_P_PPPTALK = 0x10
599 ETH_P_WCCP = 0x883e 599 ETH_P_PPP_DISC = 0x8863
600 ETH_P_X25 = 0x805 600 ETH_P_PPP_MP = 0x8
601 ETH_P_XDSA = 0xf8 601 ETH_P_PPP_SES = 0x8864
602 EXABYTE_ENABLE_NEST = 0xf0 602 ETH_P_PREAUTH = 0x88c7
603 EXT2_SUPER_MAGIC = 0xef53 603 ETH_P_PRP = 0x88fb
604 EXT3_SUPER_MAGIC = 0xef53 604 ETH_P_PUP = 0x200
605 EXT4_SUPER_MAGIC = 0xef53 605 ETH_P_PUPAT = 0x201
606 EXTA = 0xe 606 ETH_P_QINQ1 = 0x9100
607 EXTB = 0xf 607 ETH_P_QINQ2 = 0x9200
608 EXTPROC = 0x10000 608 ETH_P_QINQ3 = 0x9300
609 F2FS_SUPER_MAGIC = 0xf2f52010 609 ETH_P_RARP = 0x8035
610 FALLOC_FL_COLLAPSE_RANGE = 0x8 610 ETH_P_SCA = 0x6007
611 FALLOC_FL_INSERT_RANGE = 0x20 611 ETH_P_SLOW = 0x8809
612 FALLOC_FL_KEEP_SIZE = 0x1 612 ETH_P_SNAP = 0x5
613 FALLOC_FL_NO_HIDE_STALE = 0x4 613 ETH_P_TDLS = 0x890d
614 FALLOC_FL_PUNCH_HOLE = 0x2 614 ETH_P_TEB = 0x6558
615 FALLOC_FL_UNSHARE_RANGE = 0x40 615 ETH_P_TIPC = 0x88ca
616 FALLOC_FL_ZERO_RANGE = 0x10 616 ETH_P_TRAILER = 0x1c
617 FANOTIFY_METADATA_VERSION = 0x3 617 ETH_P_TR_802_2 = 0x11
618 FAN_ACCESS = 0x1 618 ETH_P_TSN = 0x22f0
619 FAN_ACCESS_PERM = 0x20000 619 ETH_P_WAN_PPP = 0x7
620 FAN_ALLOW = 0x1 620 ETH_P_WCCP = 0x883e
621 FAN_ALL_CLASS_BITS = 0xc 621 ETH_P_X25 = 0x805
622 FAN_ALL_EVENTS = 0x3b 622 ETH_P_XDSA = 0xf8
623 FAN_ALL_INIT_FLAGS = 0x3f 623 EXABYTE_ENABLE_NEST = 0xf0
624 FAN_ALL_MARK_FLAGS = 0xff 624 EXT2_SUPER_MAGIC = 0xef53
625 FAN_ALL_OUTGOING_EVENTS = 0x3403b 625 EXT3_SUPER_MAGIC = 0xef53
626 FAN_ALL_PERM_EVENTS = 0x30000 626 EXT4_SUPER_MAGIC = 0xef53
627 FAN_ATTRIB = 0x4 627 EXTA = 0xe
628 FAN_AUDIT = 0x10 628 EXTB = 0xf
629 FAN_CLASS_CONTENT = 0x4 629 EXTPROC = 0x10000
630 FAN_CLASS_NOTIF = 0x0 630 F2FS_SUPER_MAGIC = 0xf2f52010
631 FAN_CLASS_PRE_CONTENT = 0x8 631 FALLOC_FL_COLLAPSE_RANGE = 0x8
632 FAN_CLOEXEC = 0x1 632 FALLOC_FL_INSERT_RANGE = 0x20
633 FAN_CLOSE = 0x18 633 FALLOC_FL_KEEP_SIZE = 0x1
634 FAN_CLOSE_NOWRITE = 0x10 634 FALLOC_FL_NO_HIDE_STALE = 0x4
635 FAN_CLOSE_WRITE = 0x8 635 FALLOC_FL_PUNCH_HOLE = 0x2
636 FAN_CREATE = 0x100 636 FALLOC_FL_UNSHARE_RANGE = 0x40
637 FAN_DELETE = 0x200 637 FALLOC_FL_ZERO_RANGE = 0x10
638 FAN_DELETE_SELF = 0x400 638 FANOTIFY_METADATA_VERSION = 0x3
639 FAN_DENY = 0x2 639 FAN_ACCESS = 0x1
640 FAN_ENABLE_AUDIT = 0x40 640 FAN_ACCESS_PERM = 0x20000
641 FAN_EVENT_INFO_TYPE_FID = 0x1 641 FAN_ALLOW = 0x1
642 FAN_EVENT_METADATA_LEN = 0x18 642 FAN_ALL_CLASS_BITS = 0xc
643 FAN_EVENT_ON_CHILD = 0x8000000 643 FAN_ALL_EVENTS = 0x3b
644 FAN_MARK_ADD = 0x1 644 FAN_ALL_INIT_FLAGS = 0x3f
645 FAN_MARK_DONT_FOLLOW = 0x4 645 FAN_ALL_MARK_FLAGS = 0xff
646 FAN_MARK_FILESYSTEM = 0x100 646 FAN_ALL_OUTGOING_EVENTS = 0x3403b
647 FAN_MARK_FLUSH = 0x80 647 FAN_ALL_PERM_EVENTS = 0x30000
648 FAN_MARK_IGNORED_MASK = 0x20 648 FAN_ATTRIB = 0x4
649 FAN_MARK_IGNORED_SURV_MODIFY = 0x40 649 FAN_AUDIT = 0x10
650 FAN_MARK_INODE = 0x0 650 FAN_CLASS_CONTENT = 0x4
651 FAN_MARK_MOUNT = 0x10 651 FAN_CLASS_NOTIF = 0x0
652 FAN_MARK_ONLYDIR = 0x8 652 FAN_CLASS_PRE_CONTENT = 0x8
653 FAN_MARK_REMOVE = 0x2 653 FAN_CLOEXEC = 0x1
654 FAN_MODIFY = 0x2 654 FAN_CLOSE = 0x18
655 FAN_MOVE = 0xc0 655 FAN_CLOSE_NOWRITE = 0x10
656 FAN_MOVED_FROM = 0x40 656 FAN_CLOSE_WRITE = 0x8
657 FAN_MOVED_TO = 0x80 657 FAN_CREATE = 0x100
658 FAN_MOVE_SELF = 0x800 658 FAN_DELETE = 0x200
659 FAN_NOFD = -0x1 659 FAN_DELETE_SELF = 0x400
660 FAN_NONBLOCK = 0x2 660 FAN_DENY = 0x2
661 FAN_ONDIR = 0x40000000 661 FAN_ENABLE_AUDIT = 0x40
662 FAN_OPEN = 0x20 662 FAN_EVENT_INFO_TYPE_FID = 0x1
663 FAN_OPEN_EXEC = 0x1000 663 FAN_EVENT_METADATA_LEN = 0x18
664 FAN_OPEN_EXEC_PERM = 0x40000 664 FAN_EVENT_ON_CHILD = 0x8000000
665 FAN_OPEN_PERM = 0x10000 665 FAN_MARK_ADD = 0x1
666 FAN_Q_OVERFLOW = 0x4000 666 FAN_MARK_DONT_FOLLOW = 0x4
667 FAN_REPORT_FID = 0x200 667 FAN_MARK_FILESYSTEM = 0x100
668 FAN_REPORT_TID = 0x100 668 FAN_MARK_FLUSH = 0x80
669 FAN_UNLIMITED_MARKS = 0x20 669 FAN_MARK_IGNORED_MASK = 0x20
670 FAN_UNLIMITED_QUEUE = 0x10 670 FAN_MARK_IGNORED_SURV_MODIFY = 0x40
671 FD_CLOEXEC = 0x1 671 FAN_MARK_INODE = 0x0
672 FD_SETSIZE = 0x400 672 FAN_MARK_MOUNT = 0x10
673 FF0 = 0x0 673 FAN_MARK_ONLYDIR = 0x8
674 FF1 = 0x8000 674 FAN_MARK_REMOVE = 0x2
675 FFDLY = 0x8000 675 FAN_MODIFY = 0x2
676 FLUSHO = 0x2000 676 FAN_MOVE = 0xc0
677 FS_ENCRYPTION_MODE_ADIANTUM = 0x9 677 FAN_MOVED_FROM = 0x40
678 FS_ENCRYPTION_MODE_AES_128_CBC = 0x5 678 FAN_MOVED_TO = 0x80
679 FS_ENCRYPTION_MODE_AES_128_CTS = 0x6 679 FAN_MOVE_SELF = 0x800
680 FS_ENCRYPTION_MODE_AES_256_CBC = 0x3 680 FAN_NOFD = -0x1
681 FS_ENCRYPTION_MODE_AES_256_CTS = 0x4 681 FAN_NONBLOCK = 0x2
682 FS_ENCRYPTION_MODE_AES_256_GCM = 0x2 682 FAN_ONDIR = 0x40000000
683 FS_ENCRYPTION_MODE_AES_256_XTS = 0x1 683 FAN_OPEN = 0x20
684 FS_ENCRYPTION_MODE_INVALID = 0x0 684 FAN_OPEN_EXEC = 0x1000
685 FS_ENCRYPTION_MODE_SPECK128_256_CTS = 0x8 685 FAN_OPEN_EXEC_PERM = 0x40000
686 FS_ENCRYPTION_MODE_SPECK128_256_XTS = 0x7 686 FAN_OPEN_PERM = 0x10000
687 FS_IOC_GET_ENCRYPTION_POLICY = 0x800c6615 687 FAN_Q_OVERFLOW = 0x4000
688 FS_IOC_GET_ENCRYPTION_PWSALT = 0x80106614 688 FAN_REPORT_FID = 0x200
689 FS_IOC_SET_ENCRYPTION_POLICY = 0x400c6613 689 FAN_REPORT_TID = 0x100
690 FS_KEY_DESCRIPTOR_SIZE = 0x8 690 FAN_UNLIMITED_MARKS = 0x20
691 FS_KEY_DESC_PREFIX = "fscrypt:" 691 FAN_UNLIMITED_QUEUE = 0x10
692 FS_KEY_DESC_PREFIX_SIZE = 0x8 692 FD_CLOEXEC = 0x1
693 FS_MAX_KEY_SIZE = 0x40 693 FD_SETSIZE = 0x400
694 FS_POLICY_FLAGS_PAD_16 = 0x2 694 FF0 = 0x0
695 FS_POLICY_FLAGS_PAD_32 = 0x3 695 FF1 = 0x8000
696 FS_POLICY_FLAGS_PAD_4 = 0x0 696 FFDLY = 0x8000
697 FS_POLICY_FLAGS_PAD_8 = 0x1 697 FLUSHO = 0x2000
698 FS_POLICY_FLAGS_PAD_MASK = 0x3 698 FSCRYPT_KEY_DESCRIPTOR_SIZE = 0x8
699 FS_POLICY_FLAGS_VALID = 0x7 699 FSCRYPT_KEY_DESC_PREFIX = "fscrypt:"
700 FUTEXFS_SUPER_MAGIC = 0xbad1dea 700 FSCRYPT_KEY_DESC_PREFIX_SIZE = 0x8
701 F_ADD_SEALS = 0x409 701 FSCRYPT_KEY_IDENTIFIER_SIZE = 0x10
702 F_DUPFD = 0x0 702 FSCRYPT_KEY_REMOVAL_STATUS_FLAG_FILES_BUSY = 0x1
703 F_DUPFD_CLOEXEC = 0x406 703 FSCRYPT_KEY_REMOVAL_STATUS_FLAG_OTHER_USERS = 0x2
704 F_EXLCK = 0x4 704 FSCRYPT_KEY_SPEC_TYPE_DESCRIPTOR = 0x1
705 F_GETFD = 0x1 705 FSCRYPT_KEY_SPEC_TYPE_IDENTIFIER = 0x2
706 F_GETFL = 0x3 706 FSCRYPT_KEY_STATUS_ABSENT = 0x1
707 F_GETLEASE = 0x401 707 FSCRYPT_KEY_STATUS_FLAG_ADDED_BY_SELF = 0x1
708 F_GETLK = 0x21 708 FSCRYPT_KEY_STATUS_INCOMPLETELY_REMOVED = 0x3
709 F_GETLK64 = 0x21 709 FSCRYPT_KEY_STATUS_PRESENT = 0x2
710 F_GETOWN = 0x17 710 FSCRYPT_MAX_KEY_SIZE = 0x40
711 F_GETOWN_EX = 0x10 711 FSCRYPT_MODE_ADIANTUM = 0x9
712 F_GETPIPE_SZ = 0x408 712 FSCRYPT_MODE_AES_128_CBC = 0x5
713 F_GETSIG = 0xb 713 FSCRYPT_MODE_AES_128_CTS = 0x6
714 F_GET_FILE_RW_HINT = 0x40d 714 FSCRYPT_MODE_AES_256_CTS = 0x4
715 F_GET_RW_HINT = 0x40b 715 FSCRYPT_MODE_AES_256_XTS = 0x1
716 F_GET_SEALS = 0x40a 716 FSCRYPT_POLICY_FLAGS_PAD_16 = 0x2
717 F_LOCK = 0x1 717 FSCRYPT_POLICY_FLAGS_PAD_32 = 0x3
718 F_NOTIFY = 0x402 718 FSCRYPT_POLICY_FLAGS_PAD_4 = 0x0
719 F_OFD_GETLK = 0x24 719 FSCRYPT_POLICY_FLAGS_PAD_8 = 0x1
720 F_OFD_SETLK = 0x25 720 FSCRYPT_POLICY_FLAGS_PAD_MASK = 0x3
721 F_OFD_SETLKW = 0x26 721 FSCRYPT_POLICY_FLAGS_VALID = 0xf
722 F_OK = 0x0 722 FSCRYPT_POLICY_FLAG_DIRECT_KEY = 0x4
723 F_RDLCK = 0x0 723 FSCRYPT_POLICY_FLAG_IV_INO_LBLK_64 = 0x8
724 F_SEAL_FUTURE_WRITE = 0x10 724 FSCRYPT_POLICY_V1 = 0x0
725 F_SEAL_GROW = 0x4 725 FSCRYPT_POLICY_V2 = 0x2
726 F_SEAL_SEAL = 0x1 726 FS_ENCRYPTION_MODE_ADIANTUM = 0x9
727 F_SEAL_SHRINK = 0x2 727 FS_ENCRYPTION_MODE_AES_128_CBC = 0x5
728 F_SEAL_WRITE = 0x8 728 FS_ENCRYPTION_MODE_AES_128_CTS = 0x6
729 F_SETFD = 0x2 729 FS_ENCRYPTION_MODE_AES_256_CBC = 0x3
730 F_SETFL = 0x4 730 FS_ENCRYPTION_MODE_AES_256_CTS = 0x4
731 F_SETLEASE = 0x400 731 FS_ENCRYPTION_MODE_AES_256_GCM = 0x2
732 F_SETLK = 0x22 732 FS_ENCRYPTION_MODE_AES_256_XTS = 0x1
733 F_SETLK64 = 0x22 733 FS_ENCRYPTION_MODE_INVALID = 0x0
734 F_SETLKW = 0x23 734 FS_ENCRYPTION_MODE_SPECK128_256_CTS = 0x8
735 F_SETLKW64 = 0x23 735 FS_ENCRYPTION_MODE_SPECK128_256_XTS = 0x7
736 F_SETOWN = 0x18 736 FS_IOC_ADD_ENCRYPTION_KEY = 0xc0506617
737 F_SETOWN_EX = 0xf 737 FS_IOC_GET_ENCRYPTION_KEY_STATUS = 0xc080661a
738 F_SETPIPE_SZ = 0x407 738 FS_IOC_GET_ENCRYPTION_POLICY = 0x800c6615
739 F_SETSIG = 0xa 739 FS_IOC_GET_ENCRYPTION_POLICY_EX = 0xc0096616
740 F_SET_FILE_RW_HINT = 0x40e 740 FS_IOC_GET_ENCRYPTION_PWSALT = 0x80106614
741 F_SET_RW_HINT = 0x40c 741 FS_IOC_REMOVE_ENCRYPTION_KEY = 0xc0406618
742 F_SHLCK = 0x8 742 FS_IOC_REMOVE_ENCRYPTION_KEY_ALL_USERS = 0xc0406619
743 F_TEST = 0x3 743 FS_IOC_SET_ENCRYPTION_POLICY = 0x400c6613
744 F_TLOCK = 0x2 744 FS_KEY_DESCRIPTOR_SIZE = 0x8
745 F_ULOCK = 0x0 745 FS_KEY_DESC_PREFIX = "fscrypt:"
746 F_UNLCK = 0x2 746 FS_KEY_DESC_PREFIX_SIZE = 0x8
747 F_WRLCK = 0x1 747 FS_MAX_KEY_SIZE = 0x40
748 GENL_ADMIN_PERM = 0x1 748 FS_POLICY_FLAGS_PAD_16 = 0x2
749 GENL_CMD_CAP_DO = 0x2 749 FS_POLICY_FLAGS_PAD_32 = 0x3
750 GENL_CMD_CAP_DUMP = 0x4 750 FS_POLICY_FLAGS_PAD_4 = 0x0
751 GENL_CMD_CAP_HASPOL = 0x8 751 FS_POLICY_FLAGS_PAD_8 = 0x1
752 GENL_HDRLEN = 0x4 752 FS_POLICY_FLAGS_PAD_MASK = 0x3
753 GENL_ID_CTRL = 0x10 753 FS_POLICY_FLAGS_VALID = 0xf
754 GENL_ID_PMCRAID = 0x12 754 FUTEXFS_SUPER_MAGIC = 0xbad1dea
755 GENL_ID_VFS_DQUOT = 0x11 755 F_ADD_SEALS = 0x409
756 GENL_MAX_ID = 0x3ff 756 F_DUPFD = 0x0
757 GENL_MIN_ID = 0x10 757 F_DUPFD_CLOEXEC = 0x406
758 GENL_NAMSIZ = 0x10 758 F_EXLCK = 0x4
759 GENL_START_ALLOC = 0x13 759 F_GETFD = 0x1
760 GENL_UNS_ADMIN_PERM = 0x10 760 F_GETFL = 0x3
761 GRND_NONBLOCK = 0x1 761 F_GETLEASE = 0x401
762 GRND_RANDOM = 0x2 762 F_GETLK = 0x21
763 HDIO_DRIVE_CMD = 0x31f 763 F_GETLK64 = 0x21
764 HDIO_DRIVE_CMD_AEB = 0x31e 764 F_GETOWN = 0x17
765 HDIO_DRIVE_CMD_HDR_SIZE = 0x4 765 F_GETOWN_EX = 0x10
766 HDIO_DRIVE_HOB_HDR_SIZE = 0x8 766 F_GETPIPE_SZ = 0x408
767 HDIO_DRIVE_RESET = 0x31c 767 F_GETSIG = 0xb
768 HDIO_DRIVE_TASK = 0x31e 768 F_GET_FILE_RW_HINT = 0x40d
769 HDIO_DRIVE_TASKFILE = 0x31d 769 F_GET_RW_HINT = 0x40b
770 HDIO_DRIVE_TASK_HDR_SIZE = 0x8 770 F_GET_SEALS = 0x40a
771 HDIO_GETGEO = 0x301 771 F_LOCK = 0x1
772 HDIO_GET_32BIT = 0x309 772 F_NOTIFY = 0x402
773 HDIO_GET_ACOUSTIC = 0x30f 773 F_OFD_GETLK = 0x24
774 HDIO_GET_ADDRESS = 0x310 774 F_OFD_SETLK = 0x25
775 HDIO_GET_BUSSTATE = 0x31a 775 F_OFD_SETLKW = 0x26
776 HDIO_GET_DMA = 0x30b 776 F_OK = 0x0
777 HDIO_GET_IDENTITY = 0x30d 777 F_RDLCK = 0x0
778 HDIO_GET_KEEPSETTINGS = 0x308 778 F_SEAL_FUTURE_WRITE = 0x10
779 HDIO_GET_MULTCOUNT = 0x304 779 F_SEAL_GROW = 0x4
780 HDIO_GET_NICE = 0x30c 780 F_SEAL_SEAL = 0x1
781 HDIO_GET_NOWERR = 0x30a 781 F_SEAL_SHRINK = 0x2
782 HDIO_GET_QDMA = 0x305 782 F_SEAL_WRITE = 0x8
783 HDIO_GET_UNMASKINTR = 0x302 783 F_SETFD = 0x2
784 HDIO_GET_WCACHE = 0x30e 784 F_SETFL = 0x4
785 HDIO_OBSOLETE_IDENTITY = 0x307 785 F_SETLEASE = 0x400
786 HDIO_SCAN_HWIF = 0x328 786 F_SETLK = 0x22
787 HDIO_SET_32BIT = 0x324 787 F_SETLK64 = 0x22
788 HDIO_SET_ACOUSTIC = 0x32c 788 F_SETLKW = 0x23
789 HDIO_SET_ADDRESS = 0x32f 789 F_SETLKW64 = 0x23
790 HDIO_SET_BUSSTATE = 0x32d 790 F_SETOWN = 0x18
791 HDIO_SET_DMA = 0x326 791 F_SETOWN_EX = 0xf
792 HDIO_SET_KEEPSETTINGS = 0x323 792 F_SETPIPE_SZ = 0x407
793 HDIO_SET_MULTCOUNT = 0x321 793 F_SETSIG = 0xa
794 HDIO_SET_NICE = 0x329 794 F_SET_FILE_RW_HINT = 0x40e
795 HDIO_SET_NOWERR = 0x325 795 F_SET_RW_HINT = 0x40c
796 HDIO_SET_PIO_MODE = 0x327 796 F_SHLCK = 0x8
797 HDIO_SET_QDMA = 0x32e 797 F_TEST = 0x3
798 HDIO_SET_UNMASKINTR = 0x322 798 F_TLOCK = 0x2
799 HDIO_SET_WCACHE = 0x32b 799 F_ULOCK = 0x0
800 HDIO_SET_XFER = 0x306 800 F_UNLCK = 0x2
801 HDIO_TRISTATE_HWIF = 0x31b 801 F_WRLCK = 0x1
802 HDIO_UNREGISTER_HWIF = 0x32a 802 GENL_ADMIN_PERM = 0x1
803 HOSTFS_SUPER_MAGIC = 0xc0ffee 803 GENL_CMD_CAP_DO = 0x2
804 HPFS_SUPER_MAGIC = 0xf995e849 804 GENL_CMD_CAP_DUMP = 0x4
805 HUGETLBFS_MAGIC = 0x958458f6 805 GENL_CMD_CAP_HASPOL = 0x8
806 HUPCL = 0x400 806 GENL_HDRLEN = 0x4
807 IBSHIFT = 0x10 807 GENL_ID_CTRL = 0x10
808 ICANON = 0x2 808 GENL_ID_PMCRAID = 0x12
809 ICMPV6_FILTER = 0x1 809 GENL_ID_VFS_DQUOT = 0x11
810 ICRNL = 0x100 810 GENL_MAX_ID = 0x3ff
811 IEXTEN = 0x100 811 GENL_MIN_ID = 0x10
812 IFA_F_DADFAILED = 0x8 812 GENL_NAMSIZ = 0x10
813 IFA_F_DEPRECATED = 0x20 813 GENL_START_ALLOC = 0x13
814 IFA_F_HOMEADDRESS = 0x10 814 GENL_UNS_ADMIN_PERM = 0x10
815 IFA_F_MANAGETEMPADDR = 0x100 815 GRND_NONBLOCK = 0x1
816 IFA_F_MCAUTOJOIN = 0x400 816 GRND_RANDOM = 0x2
817 IFA_F_NODAD = 0x2 817 HDIO_DRIVE_CMD = 0x31f
818 IFA_F_NOPREFIXROUTE = 0x200 818 HDIO_DRIVE_CMD_AEB = 0x31e
819 IFA_F_OPTIMISTIC = 0x4 819 HDIO_DRIVE_CMD_HDR_SIZE = 0x4
820 IFA_F_PERMANENT = 0x80 820 HDIO_DRIVE_HOB_HDR_SIZE = 0x8
821 IFA_F_SECONDARY = 0x1 821 HDIO_DRIVE_RESET = 0x31c
822 IFA_F_STABLE_PRIVACY = 0x800 822 HDIO_DRIVE_TASK = 0x31e
823 IFA_F_TEMPORARY = 0x1 823 HDIO_DRIVE_TASKFILE = 0x31d
824 IFA_F_TENTATIVE = 0x40 824 HDIO_DRIVE_TASK_HDR_SIZE = 0x8
825 IFA_MAX = 0xa 825 HDIO_GETGEO = 0x301
826 IFF_ALLMULTI = 0x200 826 HDIO_GET_32BIT = 0x309
827 IFF_ATTACH_QUEUE = 0x200 827 HDIO_GET_ACOUSTIC = 0x30f
828 IFF_AUTOMEDIA = 0x4000 828 HDIO_GET_ADDRESS = 0x310
829 IFF_BROADCAST = 0x2 829 HDIO_GET_BUSSTATE = 0x31a
830 IFF_DEBUG = 0x4 830 HDIO_GET_DMA = 0x30b
831 IFF_DETACH_QUEUE = 0x400 831 HDIO_GET_IDENTITY = 0x30d
832 IFF_DORMANT = 0x20000 832 HDIO_GET_KEEPSETTINGS = 0x308
833 IFF_DYNAMIC = 0x8000 833 HDIO_GET_MULTCOUNT = 0x304
834 IFF_ECHO = 0x40000 834 HDIO_GET_NICE = 0x30c
835 IFF_LOOPBACK = 0x8 835 HDIO_GET_NOWERR = 0x30a
836 IFF_LOWER_UP = 0x10000 836 HDIO_GET_QDMA = 0x305
837 IFF_MASTER = 0x400 837 HDIO_GET_UNMASKINTR = 0x302
838 IFF_MULTICAST = 0x1000 838 HDIO_GET_WCACHE = 0x30e
839 IFF_MULTI_QUEUE = 0x100 839 HDIO_OBSOLETE_IDENTITY = 0x307
840 IFF_NAPI = 0x10 840 HDIO_SCAN_HWIF = 0x328
841 IFF_NAPI_FRAGS = 0x20 841 HDIO_SET_32BIT = 0x324
842 IFF_NOARP = 0x80 842 HDIO_SET_ACOUSTIC = 0x32c
843 IFF_NOFILTER = 0x1000 843 HDIO_SET_ADDRESS = 0x32f
844 IFF_NOTRAILERS = 0x20 844 HDIO_SET_BUSSTATE = 0x32d
845 IFF_NO_PI = 0x1000 845 HDIO_SET_DMA = 0x326
846 IFF_ONE_QUEUE = 0x2000 846 HDIO_SET_KEEPSETTINGS = 0x323
847 IFF_PERSIST = 0x800 847 HDIO_SET_MULTCOUNT = 0x321
848 IFF_POINTOPOINT = 0x10 848 HDIO_SET_NICE = 0x329
849 IFF_PORTSEL = 0x2000 849 HDIO_SET_NOWERR = 0x325
850 IFF_PROMISC = 0x100 850 HDIO_SET_PIO_MODE = 0x327
851 IFF_RUNNING = 0x40 851 HDIO_SET_QDMA = 0x32e
852 IFF_SLAVE = 0x800 852 HDIO_SET_UNMASKINTR = 0x322
853 IFF_TAP = 0x2 853 HDIO_SET_WCACHE = 0x32b
854 IFF_TUN = 0x1 854 HDIO_SET_XFER = 0x306
855 IFF_TUN_EXCL = 0x8000 855 HDIO_TRISTATE_HWIF = 0x31b
856 IFF_UP = 0x1 856 HDIO_UNREGISTER_HWIF = 0x32a
857 IFF_VNET_HDR = 0x4000 857 HOSTFS_SUPER_MAGIC = 0xc0ffee
858 IFF_VOLATILE = 0x70c5a 858 HPFS_SUPER_MAGIC = 0xf995e849
859 IFNAMSIZ = 0x10 859 HUGETLBFS_MAGIC = 0x958458f6
860 IGNBRK = 0x1 860 HUPCL = 0x400
861 IGNCR = 0x80 861 IBSHIFT = 0x10
862 IGNPAR = 0x4 862 ICANON = 0x2
863 IMAXBEL = 0x2000 863 ICMPV6_FILTER = 0x1
864 INLCR = 0x40 864 ICRNL = 0x100
865 INPCK = 0x10 865 IEXTEN = 0x100
866 IN_ACCESS = 0x1 866 IFA_F_DADFAILED = 0x8
867 IN_ALL_EVENTS = 0xfff 867 IFA_F_DEPRECATED = 0x20
868 IN_ATTRIB = 0x4 868 IFA_F_HOMEADDRESS = 0x10
869 IN_CLASSA_HOST = 0xffffff 869 IFA_F_MANAGETEMPADDR = 0x100
870 IN_CLASSA_MAX = 0x80 870 IFA_F_MCAUTOJOIN = 0x400
871 IN_CLASSA_NET = 0xff000000 871 IFA_F_NODAD = 0x2
872 IN_CLASSA_NSHIFT = 0x18 872 IFA_F_NOPREFIXROUTE = 0x200
873 IN_CLASSB_HOST = 0xffff 873 IFA_F_OPTIMISTIC = 0x4
874 IN_CLASSB_MAX = 0x10000 874 IFA_F_PERMANENT = 0x80
875 IN_CLASSB_NET = 0xffff0000 875 IFA_F_SECONDARY = 0x1
876 IN_CLASSB_NSHIFT = 0x10 876 IFA_F_STABLE_PRIVACY = 0x800
877 IN_CLASSC_HOST = 0xff 877 IFA_F_TEMPORARY = 0x1
878 IN_CLASSC_NET = 0xffffff00 878 IFA_F_TENTATIVE = 0x40
879 IN_CLASSC_NSHIFT = 0x8 879 IFA_MAX = 0xa
880 IN_CLOEXEC = 0x80000 880 IFF_ALLMULTI = 0x200
881 IN_CLOSE = 0x18 881 IFF_ATTACH_QUEUE = 0x200
882 IN_CLOSE_NOWRITE = 0x10 882 IFF_AUTOMEDIA = 0x4000
883 IN_CLOSE_WRITE = 0x8 883 IFF_BROADCAST = 0x2
884 IN_CREATE = 0x100 884 IFF_DEBUG = 0x4
885 IN_DELETE = 0x200 885 IFF_DETACH_QUEUE = 0x400
886 IN_DELETE_SELF = 0x400 886 IFF_DORMANT = 0x20000
887 IN_DONT_FOLLOW = 0x2000000 887 IFF_DYNAMIC = 0x8000
888 IN_EXCL_UNLINK = 0x4000000 888 IFF_ECHO = 0x40000
889 IN_IGNORED = 0x8000 889 IFF_LOOPBACK = 0x8
890 IN_ISDIR = 0x40000000 890 IFF_LOWER_UP = 0x10000
891 IN_LOOPBACKNET = 0x7f 891 IFF_MASTER = 0x400
892 IN_MASK_ADD = 0x20000000 892 IFF_MULTICAST = 0x1000
893 IN_MASK_CREATE = 0x10000000 893 IFF_MULTI_QUEUE = 0x100
894 IN_MODIFY = 0x2 894 IFF_NAPI = 0x10
895 IN_MOVE = 0xc0 895 IFF_NAPI_FRAGS = 0x20
896 IN_MOVED_FROM = 0x40 896 IFF_NOARP = 0x80
897 IN_MOVED_TO = 0x80 897 IFF_NOFILTER = 0x1000
898 IN_MOVE_SELF = 0x800 898 IFF_NOTRAILERS = 0x20
899 IN_NONBLOCK = 0x80 899 IFF_NO_PI = 0x1000
900 IN_ONESHOT = 0x80000000 900 IFF_ONE_QUEUE = 0x2000
901 IN_ONLYDIR = 0x1000000 901 IFF_PERSIST = 0x800
902 IN_OPEN = 0x20 902 IFF_POINTOPOINT = 0x10
903 IN_Q_OVERFLOW = 0x4000 903 IFF_PORTSEL = 0x2000
904 IN_UNMOUNT = 0x2000 904 IFF_PROMISC = 0x100
905 IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x200007b9 905 IFF_RUNNING = 0x40
906 IPPROTO_AH = 0x33 906 IFF_SLAVE = 0x800
907 IPPROTO_BEETPH = 0x5e 907 IFF_TAP = 0x2
908 IPPROTO_COMP = 0x6c 908 IFF_TUN = 0x1
909 IPPROTO_DCCP = 0x21 909 IFF_TUN_EXCL = 0x8000
910 IPPROTO_DSTOPTS = 0x3c 910 IFF_UP = 0x1
911 IPPROTO_EGP = 0x8 911 IFF_VNET_HDR = 0x4000
912 IPPROTO_ENCAP = 0x62 912 IFF_VOLATILE = 0x70c5a
913 IPPROTO_ESP = 0x32 913 IFNAMSIZ = 0x10
914 IPPROTO_FRAGMENT = 0x2c 914 IGNBRK = 0x1
915 IPPROTO_GRE = 0x2f 915 IGNCR = 0x80
916 IPPROTO_HOPOPTS = 0x0 916 IGNPAR = 0x4
917 IPPROTO_ICMP = 0x1 917 IMAXBEL = 0x2000
918 IPPROTO_ICMPV6 = 0x3a 918 INLCR = 0x40
919 IPPROTO_IDP = 0x16 919 INPCK = 0x10
920 IPPROTO_IGMP = 0x2 920 IN_ACCESS = 0x1
921 IPPROTO_IP = 0x0 921 IN_ALL_EVENTS = 0xfff
922 IPPROTO_IPIP = 0x4 922 IN_ATTRIB = 0x4
923 IPPROTO_IPV6 = 0x29 923 IN_CLASSA_HOST = 0xffffff
924 IPPROTO_MH = 0x87 924 IN_CLASSA_MAX = 0x80
925 IPPROTO_MPLS = 0x89 925 IN_CLASSA_NET = 0xff000000
926 IPPROTO_MTP = 0x5c 926 IN_CLASSA_NSHIFT = 0x18
927 IPPROTO_NONE = 0x3b 927 IN_CLASSB_HOST = 0xffff
928 IPPROTO_PIM = 0x67 928 IN_CLASSB_MAX = 0x10000
929 IPPROTO_PUP = 0xc 929 IN_CLASSB_NET = 0xffff0000
930 IPPROTO_RAW = 0xff 930 IN_CLASSB_NSHIFT = 0x10
931 IPPROTO_ROUTING = 0x2b 931 IN_CLASSC_HOST = 0xff
932 IPPROTO_RSVP = 0x2e 932 IN_CLASSC_NET = 0xffffff00
933 IPPROTO_SCTP = 0x84 933 IN_CLASSC_NSHIFT = 0x8
934 IPPROTO_TCP = 0x6 934 IN_CLOEXEC = 0x80000
935 IPPROTO_TP = 0x1d 935 IN_CLOSE = 0x18
936 IPPROTO_UDP = 0x11 936 IN_CLOSE_NOWRITE = 0x10
937 IPPROTO_UDPLITE = 0x88 937 IN_CLOSE_WRITE = 0x8
938 IPV6_2292DSTOPTS = 0x4 938 IN_CREATE = 0x100
939 IPV6_2292HOPLIMIT = 0x8 939 IN_DELETE = 0x200
940 IPV6_2292HOPOPTS = 0x3 940 IN_DELETE_SELF = 0x400
941 IPV6_2292PKTINFO = 0x2 941 IN_DONT_FOLLOW = 0x2000000
942 IPV6_2292PKTOPTIONS = 0x6 942 IN_EXCL_UNLINK = 0x4000000
943 IPV6_2292RTHDR = 0x5 943 IN_IGNORED = 0x8000
944 IPV6_ADDRFORM = 0x1 944 IN_ISDIR = 0x40000000
945 IPV6_ADDR_PREFERENCES = 0x48 945 IN_LOOPBACKNET = 0x7f
946 IPV6_ADD_MEMBERSHIP = 0x14 946 IN_MASK_ADD = 0x20000000
947 IPV6_AUTHHDR = 0xa 947 IN_MASK_CREATE = 0x10000000
948 IPV6_AUTOFLOWLABEL = 0x46 948 IN_MODIFY = 0x2
949 IPV6_CHECKSUM = 0x7 949 IN_MOVE = 0xc0
950 IPV6_DONTFRAG = 0x3e 950 IN_MOVED_FROM = 0x40
951 IPV6_DROP_MEMBERSHIP = 0x15 951 IN_MOVED_TO = 0x80
952 IPV6_DSTOPTS = 0x3b 952 IN_MOVE_SELF = 0x800
953 IPV6_FREEBIND = 0x4e 953 IN_NONBLOCK = 0x80
954 IPV6_HDRINCL = 0x24 954 IN_ONESHOT = 0x80000000
955 IPV6_HOPLIMIT = 0x34 955 IN_ONLYDIR = 0x1000000
956 IPV6_HOPOPTS = 0x36 956 IN_OPEN = 0x20
957 IPV6_IPSEC_POLICY = 0x22 957 IN_Q_OVERFLOW = 0x4000
958 IPV6_JOIN_ANYCAST = 0x1b 958 IN_UNMOUNT = 0x2000
959 IPV6_JOIN_GROUP = 0x14 959 IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x200007b9
960 IPV6_LEAVE_ANYCAST = 0x1c 960 IPPROTO_AH = 0x33
961 IPV6_LEAVE_GROUP = 0x15 961 IPPROTO_BEETPH = 0x5e
962 IPV6_MINHOPCOUNT = 0x49 962 IPPROTO_COMP = 0x6c
963 IPV6_MTU = 0x18 963 IPPROTO_DCCP = 0x21
964 IPV6_MTU_DISCOVER = 0x17 964 IPPROTO_DSTOPTS = 0x3c
965 IPV6_MULTICAST_ALL = 0x1d 965 IPPROTO_EGP = 0x8
966 IPV6_MULTICAST_HOPS = 0x12 966 IPPROTO_ENCAP = 0x62
967 IPV6_MULTICAST_IF = 0x11 967 IPPROTO_ESP = 0x32
968 IPV6_MULTICAST_LOOP = 0x13 968 IPPROTO_FRAGMENT = 0x2c
969 IPV6_NEXTHOP = 0x9 969 IPPROTO_GRE = 0x2f
970 IPV6_ORIGDSTADDR = 0x4a 970 IPPROTO_HOPOPTS = 0x0
971 IPV6_PATHMTU = 0x3d 971 IPPROTO_ICMP = 0x1
972 IPV6_PKTINFO = 0x32 972 IPPROTO_ICMPV6 = 0x3a
973 IPV6_PMTUDISC_DO = 0x2 973 IPPROTO_IDP = 0x16
974 IPV6_PMTUDISC_DONT = 0x0 974 IPPROTO_IGMP = 0x2
975 IPV6_PMTUDISC_INTERFACE = 0x4 975 IPPROTO_IP = 0x0
976 IPV6_PMTUDISC_OMIT = 0x5 976 IPPROTO_IPIP = 0x4
977 IPV6_PMTUDISC_PROBE = 0x3 977 IPPROTO_IPV6 = 0x29
978 IPV6_PMTUDISC_WANT = 0x1 978 IPPROTO_MH = 0x87
979 IPV6_RECVDSTOPTS = 0x3a 979 IPPROTO_MPLS = 0x89
980 IPV6_RECVERR = 0x19 980 IPPROTO_MTP = 0x5c
981 IPV6_RECVFRAGSIZE = 0x4d 981 IPPROTO_NONE = 0x3b
982 IPV6_RECVHOPLIMIT = 0x33 982 IPPROTO_PIM = 0x67
983 IPV6_RECVHOPOPTS = 0x35 983 IPPROTO_PUP = 0xc
984 IPV6_RECVORIGDSTADDR = 0x4a 984 IPPROTO_RAW = 0xff
985 IPV6_RECVPATHMTU = 0x3c 985 IPPROTO_ROUTING = 0x2b
986 IPV6_RECVPKTINFO = 0x31 986 IPPROTO_RSVP = 0x2e
987 IPV6_RECVRTHDR = 0x38 987 IPPROTO_SCTP = 0x84
988 IPV6_RECVTCLASS = 0x42 988 IPPROTO_TCP = 0x6
989 IPV6_ROUTER_ALERT = 0x16 989 IPPROTO_TP = 0x1d
990 IPV6_ROUTER_ALERT_ISOLATE = 0x1e 990 IPPROTO_UDP = 0x11
991 IPV6_RTHDR = 0x39 991 IPPROTO_UDPLITE = 0x88
992 IPV6_RTHDRDSTOPTS = 0x37 992 IPV6_2292DSTOPTS = 0x4
993 IPV6_RTHDR_LOOSE = 0x0 993 IPV6_2292HOPLIMIT = 0x8
994 IPV6_RTHDR_STRICT = 0x1 994 IPV6_2292HOPOPTS = 0x3
995 IPV6_RTHDR_TYPE_0 = 0x0 995 IPV6_2292PKTINFO = 0x2
996 IPV6_RXDSTOPTS = 0x3b 996 IPV6_2292PKTOPTIONS = 0x6
997 IPV6_RXHOPOPTS = 0x36 997 IPV6_2292RTHDR = 0x5
998 IPV6_TCLASS = 0x43 998 IPV6_ADDRFORM = 0x1
999 IPV6_TRANSPARENT = 0x4b 999 IPV6_ADDR_PREFERENCES = 0x48
1000 IPV6_UNICAST_HOPS = 0x10 1000 IPV6_ADD_MEMBERSHIP = 0x14
1001 IPV6_UNICAST_IF = 0x4c 1001 IPV6_AUTHHDR = 0xa
1002 IPV6_V6ONLY = 0x1a 1002 IPV6_AUTOFLOWLABEL = 0x46
1003 IPV6_XFRM_POLICY = 0x23 1003 IPV6_CHECKSUM = 0x7
1004 IP_ADD_MEMBERSHIP = 0x23 1004 IPV6_DONTFRAG = 0x3e
1005 IP_ADD_SOURCE_MEMBERSHIP = 0x27 1005 IPV6_DROP_MEMBERSHIP = 0x15
1006 IP_BIND_ADDRESS_NO_PORT = 0x18 1006 IPV6_DSTOPTS = 0x3b
1007 IP_BLOCK_SOURCE = 0x26 1007 IPV6_FREEBIND = 0x4e
1008 IP_CHECKSUM = 0x17 1008 IPV6_HDRINCL = 0x24
1009 IP_DEFAULT_MULTICAST_LOOP = 0x1 1009 IPV6_HOPLIMIT = 0x34
1010 IP_DEFAULT_MULTICAST_TTL = 0x1 1010 IPV6_HOPOPTS = 0x36
1011 IP_DF = 0x4000 1011 IPV6_IPSEC_POLICY = 0x22
1012 IP_DROP_MEMBERSHIP = 0x24 1012 IPV6_JOIN_ANYCAST = 0x1b
1013 IP_DROP_SOURCE_MEMBERSHIP = 0x28 1013 IPV6_JOIN_GROUP = 0x14
1014 IP_FREEBIND = 0xf 1014 IPV6_LEAVE_ANYCAST = 0x1c
1015 IP_HDRINCL = 0x3 1015 IPV6_LEAVE_GROUP = 0x15
1016 IP_IPSEC_POLICY = 0x10 1016 IPV6_MINHOPCOUNT = 0x49
1017 IP_MAXPACKET = 0xffff 1017 IPV6_MTU = 0x18
1018 IP_MAX_MEMBERSHIPS = 0x14 1018 IPV6_MTU_DISCOVER = 0x17
1019 IP_MF = 0x2000 1019 IPV6_MULTICAST_ALL = 0x1d
1020 IP_MINTTL = 0x15 1020 IPV6_MULTICAST_HOPS = 0x12
1021 IP_MSFILTER = 0x29 1021 IPV6_MULTICAST_IF = 0x11
1022 IP_MSS = 0x240 1022 IPV6_MULTICAST_LOOP = 0x13
1023 IP_MTU = 0xe 1023 IPV6_NEXTHOP = 0x9
1024 IP_MTU_DISCOVER = 0xa 1024 IPV6_ORIGDSTADDR = 0x4a
1025 IP_MULTICAST_ALL = 0x31 1025 IPV6_PATHMTU = 0x3d
1026 IP_MULTICAST_IF = 0x20 1026 IPV6_PKTINFO = 0x32
1027 IP_MULTICAST_LOOP = 0x22 1027 IPV6_PMTUDISC_DO = 0x2
1028 IP_MULTICAST_TTL = 0x21 1028 IPV6_PMTUDISC_DONT = 0x0
1029 IP_NODEFRAG = 0x16 1029 IPV6_PMTUDISC_INTERFACE = 0x4
1030 IP_OFFMASK = 0x1fff 1030 IPV6_PMTUDISC_OMIT = 0x5
1031 IP_OPTIONS = 0x4 1031 IPV6_PMTUDISC_PROBE = 0x3
1032 IP_ORIGDSTADDR = 0x14 1032 IPV6_PMTUDISC_WANT = 0x1
1033 IP_PASSSEC = 0x12 1033 IPV6_RECVDSTOPTS = 0x3a
1034 IP_PKTINFO = 0x8 1034 IPV6_RECVERR = 0x19
1035 IP_PKTOPTIONS = 0x9 1035 IPV6_RECVFRAGSIZE = 0x4d
1036 IP_PMTUDISC = 0xa 1036 IPV6_RECVHOPLIMIT = 0x33
1037 IP_PMTUDISC_DO = 0x2 1037 IPV6_RECVHOPOPTS = 0x35
1038 IP_PMTUDISC_DONT = 0x0 1038 IPV6_RECVORIGDSTADDR = 0x4a
1039 IP_PMTUDISC_INTERFACE = 0x4 1039 IPV6_RECVPATHMTU = 0x3c
1040 IP_PMTUDISC_OMIT = 0x5 1040 IPV6_RECVPKTINFO = 0x31
1041 IP_PMTUDISC_PROBE = 0x3 1041 IPV6_RECVRTHDR = 0x38
1042 IP_PMTUDISC_WANT = 0x1 1042 IPV6_RECVTCLASS = 0x42
1043 IP_RECVERR = 0xb 1043 IPV6_ROUTER_ALERT = 0x16
1044 IP_RECVFRAGSIZE = 0x19 1044 IPV6_ROUTER_ALERT_ISOLATE = 0x1e
1045 IP_RECVOPTS = 0x6 1045 IPV6_RTHDR = 0x39
1046 IP_RECVORIGDSTADDR = 0x14 1046 IPV6_RTHDRDSTOPTS = 0x37
1047 IP_RECVRETOPTS = 0x7 1047 IPV6_RTHDR_LOOSE = 0x0
1048 IP_RECVTOS = 0xd 1048 IPV6_RTHDR_STRICT = 0x1
1049 IP_RECVTTL = 0xc 1049 IPV6_RTHDR_TYPE_0 = 0x0
1050 IP_RETOPTS = 0x7 1050 IPV6_RXDSTOPTS = 0x3b
1051 IP_RF = 0x8000 1051 IPV6_RXHOPOPTS = 0x36
1052 IP_ROUTER_ALERT = 0x5 1052 IPV6_TCLASS = 0x43
1053 IP_TOS = 0x1 1053 IPV6_TRANSPARENT = 0x4b
1054 IP_TRANSPARENT = 0x13 1054 IPV6_UNICAST_HOPS = 0x10
1055 IP_TTL = 0x2 1055 IPV6_UNICAST_IF = 0x4c
1056 IP_UNBLOCK_SOURCE = 0x25 1056 IPV6_V6ONLY = 0x1a
1057 IP_UNICAST_IF = 0x32 1057 IPV6_XFRM_POLICY = 0x23
1058 IP_XFRM_POLICY = 0x11 1058 IP_ADD_MEMBERSHIP = 0x23
1059 ISIG = 0x1 1059 IP_ADD_SOURCE_MEMBERSHIP = 0x27
1060 ISOFS_SUPER_MAGIC = 0x9660 1060 IP_BIND_ADDRESS_NO_PORT = 0x18
1061 ISTRIP = 0x20 1061 IP_BLOCK_SOURCE = 0x26
1062 IUCLC = 0x200 1062 IP_CHECKSUM = 0x17
1063 IUTF8 = 0x4000 1063 IP_DEFAULT_MULTICAST_LOOP = 0x1
1064 IXANY = 0x800 1064 IP_DEFAULT_MULTICAST_TTL = 0x1
1065 IXOFF = 0x1000 1065 IP_DF = 0x4000
1066 IXON = 0x400 1066 IP_DROP_MEMBERSHIP = 0x24
1067 JFFS2_SUPER_MAGIC = 0x72b6 1067 IP_DROP_SOURCE_MEMBERSHIP = 0x28
1068 KEXEC_ARCH_386 = 0x30000 1068 IP_FREEBIND = 0xf
1069 KEXEC_ARCH_68K = 0x40000 1069 IP_HDRINCL = 0x3
1070 KEXEC_ARCH_AARCH64 = 0xb70000 1070 IP_IPSEC_POLICY = 0x10
1071 KEXEC_ARCH_ARM = 0x280000 1071 IP_MAXPACKET = 0xffff
1072 KEXEC_ARCH_DEFAULT = 0x0 1072 IP_MAX_MEMBERSHIPS = 0x14
1073 KEXEC_ARCH_IA_64 = 0x320000 1073 IP_MF = 0x2000
1074 KEXEC_ARCH_MASK = 0xffff0000 1074 IP_MINTTL = 0x15
1075 KEXEC_ARCH_MIPS = 0x80000 1075 IP_MSFILTER = 0x29
1076 KEXEC_ARCH_MIPS_LE = 0xa0000 1076 IP_MSS = 0x240
1077 KEXEC_ARCH_PPC = 0x140000 1077 IP_MTU = 0xe
1078 KEXEC_ARCH_PPC64 = 0x150000 1078 IP_MTU_DISCOVER = 0xa
1079 KEXEC_ARCH_S390 = 0x160000 1079 IP_MULTICAST_ALL = 0x31
1080 KEXEC_ARCH_SH = 0x2a0000 1080 IP_MULTICAST_IF = 0x20
1081 KEXEC_ARCH_X86_64 = 0x3e0000 1081 IP_MULTICAST_LOOP = 0x22
1082 KEXEC_FILE_NO_INITRAMFS = 0x4 1082 IP_MULTICAST_TTL = 0x21
1083 KEXEC_FILE_ON_CRASH = 0x2 1083 IP_NODEFRAG = 0x16
1084 KEXEC_FILE_UNLOAD = 0x1 1084 IP_OFFMASK = 0x1fff
1085 KEXEC_ON_CRASH = 0x1 1085 IP_OPTIONS = 0x4
1086 KEXEC_PRESERVE_CONTEXT = 0x2 1086 IP_ORIGDSTADDR = 0x14
1087 KEXEC_SEGMENT_MAX = 0x10 1087 IP_PASSSEC = 0x12
1088 KEYCTL_ASSUME_AUTHORITY = 0x10 1088 IP_PKTINFO = 0x8
1089 KEYCTL_CHOWN = 0x4 1089 IP_PKTOPTIONS = 0x9
1090 KEYCTL_CLEAR = 0x7 1090 IP_PMTUDISC = 0xa
1091 KEYCTL_DESCRIBE = 0x6 1091 IP_PMTUDISC_DO = 0x2
1092 KEYCTL_DH_COMPUTE = 0x17 1092 IP_PMTUDISC_DONT = 0x0
1093 KEYCTL_GET_KEYRING_ID = 0x0 1093 IP_PMTUDISC_INTERFACE = 0x4
1094 KEYCTL_GET_PERSISTENT = 0x16 1094 IP_PMTUDISC_OMIT = 0x5
1095 KEYCTL_GET_SECURITY = 0x11 1095 IP_PMTUDISC_PROBE = 0x3
1096 KEYCTL_INSTANTIATE = 0xc 1096 IP_PMTUDISC_WANT = 0x1
1097 KEYCTL_INSTANTIATE_IOV = 0x14 1097 IP_RECVERR = 0xb
1098 KEYCTL_INVALIDATE = 0x15 1098 IP_RECVFRAGSIZE = 0x19
1099 KEYCTL_JOIN_SESSION_KEYRING = 0x1 1099 IP_RECVOPTS = 0x6
1100 KEYCTL_LINK = 0x8 1100 IP_RECVORIGDSTADDR = 0x14
1101 KEYCTL_NEGATE = 0xd 1101 IP_RECVRETOPTS = 0x7
1102 KEYCTL_PKEY_DECRYPT = 0x1a 1102 IP_RECVTOS = 0xd
1103 KEYCTL_PKEY_ENCRYPT = 0x19 1103 IP_RECVTTL = 0xc
1104 KEYCTL_PKEY_QUERY = 0x18 1104 IP_RETOPTS = 0x7
1105 KEYCTL_PKEY_SIGN = 0x1b 1105 IP_RF = 0x8000
1106 KEYCTL_PKEY_VERIFY = 0x1c 1106 IP_ROUTER_ALERT = 0x5
1107 KEYCTL_READ = 0xb 1107 IP_TOS = 0x1
1108 KEYCTL_REJECT = 0x13 1108 IP_TRANSPARENT = 0x13
1109 KEYCTL_RESTRICT_KEYRING = 0x1d 1109 IP_TTL = 0x2
1110 KEYCTL_REVOKE = 0x3 1110 IP_UNBLOCK_SOURCE = 0x25
1111 KEYCTL_SEARCH = 0xa 1111 IP_UNICAST_IF = 0x32
1112 KEYCTL_SESSION_TO_PARENT = 0x12 1112 IP_XFRM_POLICY = 0x11
1113 KEYCTL_SETPERM = 0x5 1113 ISIG = 0x1
1114 KEYCTL_SET_REQKEY_KEYRING = 0xe 1114 ISOFS_SUPER_MAGIC = 0x9660
1115 KEYCTL_SET_TIMEOUT = 0xf 1115 ISTRIP = 0x20
1116 KEYCTL_SUPPORTS_DECRYPT = 0x2 1116 IUCLC = 0x200
1117 KEYCTL_SUPPORTS_ENCRYPT = 0x1 1117 IUTF8 = 0x4000
1118 KEYCTL_SUPPORTS_SIGN = 0x4 1118 IXANY = 0x800
1119 KEYCTL_SUPPORTS_VERIFY = 0x8 1119 IXOFF = 0x1000
1120 KEYCTL_UNLINK = 0x9 1120 IXON = 0x400
1121 KEYCTL_UPDATE = 0x2 1121 JFFS2_SUPER_MAGIC = 0x72b6
1122 KEY_REQKEY_DEFL_DEFAULT = 0x0 1122 KEXEC_ARCH_386 = 0x30000
1123 KEY_REQKEY_DEFL_GROUP_KEYRING = 0x6 1123 KEXEC_ARCH_68K = 0x40000
1124 KEY_REQKEY_DEFL_NO_CHANGE = -0x1 1124 KEXEC_ARCH_AARCH64 = 0xb70000
1125 KEY_REQKEY_DEFL_PROCESS_KEYRING = 0x2 1125 KEXEC_ARCH_ARM = 0x280000
1126 KEY_REQKEY_DEFL_REQUESTOR_KEYRING = 0x7 1126 KEXEC_ARCH_DEFAULT = 0x0
1127 KEY_REQKEY_DEFL_SESSION_KEYRING = 0x3 1127 KEXEC_ARCH_IA_64 = 0x320000
1128 KEY_REQKEY_DEFL_THREAD_KEYRING = 0x1 1128 KEXEC_ARCH_MASK = 0xffff0000
1129 KEY_REQKEY_DEFL_USER_KEYRING = 0x4 1129 KEXEC_ARCH_MIPS = 0x80000
1130 KEY_REQKEY_DEFL_USER_SESSION_KEYRING = 0x5 1130 KEXEC_ARCH_MIPS_LE = 0xa0000
1131 KEY_SPEC_GROUP_KEYRING = -0x6 1131 KEXEC_ARCH_PARISC = 0xf0000
1132 KEY_SPEC_PROCESS_KEYRING = -0x2 1132 KEXEC_ARCH_PPC = 0x140000
1133 KEY_SPEC_REQKEY_AUTH_KEY = -0x7 1133 KEXEC_ARCH_PPC64 = 0x150000
1134 KEY_SPEC_REQUESTOR_KEYRING = -0x8 1134 KEXEC_ARCH_S390 = 0x160000
1135 KEY_SPEC_SESSION_KEYRING = -0x3 1135 KEXEC_ARCH_SH = 0x2a0000
1136 KEY_SPEC_THREAD_KEYRING = -0x1 1136 KEXEC_ARCH_X86_64 = 0x3e0000
1137 KEY_SPEC_USER_KEYRING = -0x4 1137 KEXEC_FILE_NO_INITRAMFS = 0x4
1138 KEY_SPEC_USER_SESSION_KEYRING = -0x5 1138 KEXEC_FILE_ON_CRASH = 0x2
1139 LINUX_REBOOT_CMD_CAD_OFF = 0x0 1139 KEXEC_FILE_UNLOAD = 0x1
1140 LINUX_REBOOT_CMD_CAD_ON = 0x89abcdef 1140 KEXEC_ON_CRASH = 0x1
1141 LINUX_REBOOT_CMD_HALT = 0xcdef0123 1141 KEXEC_PRESERVE_CONTEXT = 0x2
1142 LINUX_REBOOT_CMD_KEXEC = 0x45584543 1142 KEXEC_SEGMENT_MAX = 0x10
1143 LINUX_REBOOT_CMD_POWER_OFF = 0x4321fedc 1143 KEYCTL_ASSUME_AUTHORITY = 0x10
1144 LINUX_REBOOT_CMD_RESTART = 0x1234567 1144 KEYCTL_CAPABILITIES = 0x1f
1145 LINUX_REBOOT_CMD_RESTART2 = 0xa1b2c3d4 1145 KEYCTL_CAPS0_BIG_KEY = 0x10
1146 LINUX_REBOOT_CMD_SW_SUSPEND = 0xd000fce2 1146 KEYCTL_CAPS0_CAPABILITIES = 0x1
1147 LINUX_REBOOT_MAGIC1 = 0xfee1dead 1147 KEYCTL_CAPS0_DIFFIE_HELLMAN = 0x4
1148 LINUX_REBOOT_MAGIC2 = 0x28121969 1148 KEYCTL_CAPS0_INVALIDATE = 0x20
1149 LOCK_EX = 0x2 1149 KEYCTL_CAPS0_MOVE = 0x80
1150 LOCK_NB = 0x4 1150 KEYCTL_CAPS0_PERSISTENT_KEYRINGS = 0x2
1151 LOCK_SH = 0x1 1151 KEYCTL_CAPS0_PUBLIC_KEY = 0x8
1152 LOCK_UN = 0x8 1152 KEYCTL_CAPS0_RESTRICT_KEYRING = 0x40
1153 LOOP_CLR_FD = 0x4c01 1153 KEYCTL_CAPS1_NS_KEYRING_NAME = 0x1
1154 LOOP_CTL_ADD = 0x4c80 1154 KEYCTL_CAPS1_NS_KEY_TAG = 0x2
1155 LOOP_CTL_GET_FREE = 0x4c82 1155 KEYCTL_CHOWN = 0x4
1156 LOOP_CTL_REMOVE = 0x4c81 1156 KEYCTL_CLEAR = 0x7
1157 LOOP_GET_STATUS = 0x4c03 1157 KEYCTL_DESCRIBE = 0x6
1158 LOOP_GET_STATUS64 = 0x4c05 1158 KEYCTL_DH_COMPUTE = 0x17
1159 LOOP_SET_BLOCK_SIZE = 0x4c09 1159 KEYCTL_GET_KEYRING_ID = 0x0
1160 LOOP_SET_CAPACITY = 0x4c07 1160 KEYCTL_GET_PERSISTENT = 0x16
1161 LOOP_SET_DIRECT_IO = 0x4c08 1161 KEYCTL_GET_SECURITY = 0x11
1162 LOOP_SET_FD = 0x4c00 1162 KEYCTL_INSTANTIATE = 0xc
1163 LOOP_SET_STATUS = 0x4c02 1163 KEYCTL_INSTANTIATE_IOV = 0x14
1164 LOOP_SET_STATUS64 = 0x4c04 1164 KEYCTL_INVALIDATE = 0x15
1165 LO_KEY_SIZE = 0x20 1165 KEYCTL_JOIN_SESSION_KEYRING = 0x1
1166 LO_NAME_SIZE = 0x40 1166 KEYCTL_LINK = 0x8
1167 MADV_DODUMP = 0x11 1167 KEYCTL_MOVE = 0x1e
1168 MADV_DOFORK = 0xb 1168 KEYCTL_MOVE_EXCL = 0x1
1169 MADV_DONTDUMP = 0x10 1169 KEYCTL_NEGATE = 0xd
1170 MADV_DONTFORK = 0xa 1170 KEYCTL_PKEY_DECRYPT = 0x1a
1171 MADV_DONTNEED = 0x4 1171 KEYCTL_PKEY_ENCRYPT = 0x19
1172 MADV_FREE = 0x8 1172 KEYCTL_PKEY_QUERY = 0x18
1173 MADV_HUGEPAGE = 0xe 1173 KEYCTL_PKEY_SIGN = 0x1b
1174 MADV_HWPOISON = 0x64 1174 KEYCTL_PKEY_VERIFY = 0x1c
1175 MADV_KEEPONFORK = 0x13 1175 KEYCTL_READ = 0xb
1176 MADV_MERGEABLE = 0xc 1176 KEYCTL_REJECT = 0x13
1177 MADV_NOHUGEPAGE = 0xf 1177 KEYCTL_RESTRICT_KEYRING = 0x1d
1178 MADV_NORMAL = 0x0 1178 KEYCTL_REVOKE = 0x3
1179 MADV_RANDOM = 0x1 1179 KEYCTL_SEARCH = 0xa
1180 MADV_REMOVE = 0x9 1180 KEYCTL_SESSION_TO_PARENT = 0x12
1181 MADV_SEQUENTIAL = 0x2 1181 KEYCTL_SETPERM = 0x5
1182 MADV_UNMERGEABLE = 0xd 1182 KEYCTL_SET_REQKEY_KEYRING = 0xe
1183 MADV_WILLNEED = 0x3 1183 KEYCTL_SET_TIMEOUT = 0xf
1184 MADV_WIPEONFORK = 0x12 1184 KEYCTL_SUPPORTS_DECRYPT = 0x2
1185 MAP_ANON = 0x800 1185 KEYCTL_SUPPORTS_ENCRYPT = 0x1
1186 MAP_ANONYMOUS = 0x800 1186 KEYCTL_SUPPORTS_SIGN = 0x4
1187 MAP_DENYWRITE = 0x2000 1187 KEYCTL_SUPPORTS_VERIFY = 0x8
1188 MAP_EXECUTABLE = 0x4000 1188 KEYCTL_UNLINK = 0x9
1189 MAP_FILE = 0x0 1189 KEYCTL_UPDATE = 0x2
1190 MAP_FIXED = 0x10 1190 KEY_REQKEY_DEFL_DEFAULT = 0x0
1191 MAP_FIXED_NOREPLACE = 0x100000 1191 KEY_REQKEY_DEFL_GROUP_KEYRING = 0x6
1192 MAP_GROWSDOWN = 0x1000 1192 KEY_REQKEY_DEFL_NO_CHANGE = -0x1
1193 MAP_HUGETLB = 0x80000 1193 KEY_REQKEY_DEFL_PROCESS_KEYRING = 0x2
1194 MAP_HUGE_MASK = 0x3f 1194 KEY_REQKEY_DEFL_REQUESTOR_KEYRING = 0x7
1195 MAP_HUGE_SHIFT = 0x1a 1195 KEY_REQKEY_DEFL_SESSION_KEYRING = 0x3
1196 MAP_LOCKED = 0x8000 1196 KEY_REQKEY_DEFL_THREAD_KEYRING = 0x1
1197 MAP_NONBLOCK = 0x20000 1197 KEY_REQKEY_DEFL_USER_KEYRING = 0x4
1198 MAP_NORESERVE = 0x400 1198 KEY_REQKEY_DEFL_USER_SESSION_KEYRING = 0x5
1199 MAP_POPULATE = 0x10000 1199 KEY_SPEC_GROUP_KEYRING = -0x6
1200 MAP_PRIVATE = 0x2 1200 KEY_SPEC_PROCESS_KEYRING = -0x2
1201 MAP_RENAME = 0x800 1201 KEY_SPEC_REQKEY_AUTH_KEY = -0x7
1202 MAP_SHARED = 0x1 1202 KEY_SPEC_REQUESTOR_KEYRING = -0x8
1203 MAP_SHARED_VALIDATE = 0x3 1203 KEY_SPEC_SESSION_KEYRING = -0x3
1204 MAP_STACK = 0x40000 1204 KEY_SPEC_THREAD_KEYRING = -0x1
1205 MAP_TYPE = 0xf 1205 KEY_SPEC_USER_KEYRING = -0x4
1206 MCAST_BLOCK_SOURCE = 0x2b 1206 KEY_SPEC_USER_SESSION_KEYRING = -0x5
1207 MCAST_EXCLUDE = 0x0 1207 LINUX_REBOOT_CMD_CAD_OFF = 0x0
1208 MCAST_INCLUDE = 0x1 1208 LINUX_REBOOT_CMD_CAD_ON = 0x89abcdef
1209 MCAST_JOIN_GROUP = 0x2a 1209 LINUX_REBOOT_CMD_HALT = 0xcdef0123
1210 MCAST_JOIN_SOURCE_GROUP = 0x2e 1210 LINUX_REBOOT_CMD_KEXEC = 0x45584543
1211 MCAST_LEAVE_GROUP = 0x2d 1211 LINUX_REBOOT_CMD_POWER_OFF = 0x4321fedc
1212 MCAST_LEAVE_SOURCE_GROUP = 0x2f 1212 LINUX_REBOOT_CMD_RESTART = 0x1234567
1213 MCAST_MSFILTER = 0x30 1213 LINUX_REBOOT_CMD_RESTART2 = 0xa1b2c3d4
1214 MCAST_UNBLOCK_SOURCE = 0x2c 1214 LINUX_REBOOT_CMD_SW_SUSPEND = 0xd000fce2
1215 MCL_CURRENT = 0x1 1215 LINUX_REBOOT_MAGIC1 = 0xfee1dead
1216 MCL_FUTURE = 0x2 1216 LINUX_REBOOT_MAGIC2 = 0x28121969
1217 MCL_ONFAULT = 0x4 1217 LOCK_EX = 0x2
1218 MFD_ALLOW_SEALING = 0x2 1218 LOCK_NB = 0x4
1219 MFD_CLOEXEC = 0x1 1219 LOCK_SH = 0x1
1220 MFD_HUGETLB = 0x4 1220 LOCK_UN = 0x8
1221 MFD_HUGE_16GB = -0x78000000 1221 LOOP_CLR_FD = 0x4c01
1222 MFD_HUGE_16MB = 0x60000000 1222 LOOP_CTL_ADD = 0x4c80
1223 MFD_HUGE_1GB = 0x78000000 1223 LOOP_CTL_GET_FREE = 0x4c82
1224 MFD_HUGE_1MB = 0x50000000 1224 LOOP_CTL_REMOVE = 0x4c81
1225 MFD_HUGE_256MB = 0x70000000 1225 LOOP_GET_STATUS = 0x4c03
1226 MFD_HUGE_2GB = 0x7c000000 1226 LOOP_GET_STATUS64 = 0x4c05
1227 MFD_HUGE_2MB = 0x54000000 1227 LOOP_SET_BLOCK_SIZE = 0x4c09
1228 MFD_HUGE_32MB = 0x64000000 1228 LOOP_SET_CAPACITY = 0x4c07
1229 MFD_HUGE_512KB = 0x4c000000 1229 LOOP_SET_DIRECT_IO = 0x4c08
1230 MFD_HUGE_512MB = 0x74000000 1230 LOOP_SET_FD = 0x4c00
1231 MFD_HUGE_64KB = 0x40000000 1231 LOOP_SET_STATUS = 0x4c02
1232 MFD_HUGE_8MB = 0x5c000000 1232 LOOP_SET_STATUS64 = 0x4c04
1233 MFD_HUGE_MASK = 0x3f 1233 LO_KEY_SIZE = 0x20
1234 MFD_HUGE_SHIFT = 0x1a 1234 LO_NAME_SIZE = 0x40
1235 MINIX2_SUPER_MAGIC = 0x2468 1235 MADV_COLD = 0x14
1236 MINIX2_SUPER_MAGIC2 = 0x2478 1236 MADV_DODUMP = 0x11
1237 MINIX3_SUPER_MAGIC = 0x4d5a 1237 MADV_DOFORK = 0xb
1238 MINIX_SUPER_MAGIC = 0x137f 1238 MADV_DONTDUMP = 0x10
1239 MINIX_SUPER_MAGIC2 = 0x138f 1239 MADV_DONTFORK = 0xa
1240 MNT_DETACH = 0x2 1240 MADV_DONTNEED = 0x4
1241 MNT_EXPIRE = 0x4 1241 MADV_FREE = 0x8
1242 MNT_FORCE = 0x1 1242 MADV_HUGEPAGE = 0xe
1243 MODULE_INIT_IGNORE_MODVERSIONS = 0x1 1243 MADV_HWPOISON = 0x64
1244 MODULE_INIT_IGNORE_VERMAGIC = 0x2 1244 MADV_KEEPONFORK = 0x13
1245 MSDOS_SUPER_MAGIC = 0x4d44 1245 MADV_MERGEABLE = 0xc
1246 MSG_BATCH = 0x40000 1246 MADV_NOHUGEPAGE = 0xf
1247 MSG_CMSG_CLOEXEC = 0x40000000 1247 MADV_NORMAL = 0x0
1248 MSG_CONFIRM = 0x800 1248 MADV_PAGEOUT = 0x15
1249 MSG_CTRUNC = 0x8 1249 MADV_RANDOM = 0x1
1250 MSG_DONTROUTE = 0x4 1250 MADV_REMOVE = 0x9
1251 MSG_DONTWAIT = 0x40 1251 MADV_SEQUENTIAL = 0x2
1252 MSG_EOR = 0x80 1252 MADV_UNMERGEABLE = 0xd
1253 MSG_ERRQUEUE = 0x2000 1253 MADV_WILLNEED = 0x3
1254 MSG_FASTOPEN = 0x20000000 1254 MADV_WIPEONFORK = 0x12
1255 MSG_FIN = 0x200 1255 MAP_ANON = 0x800
1256 MSG_MORE = 0x8000 1256 MAP_ANONYMOUS = 0x800
1257 MSG_NOSIGNAL = 0x4000 1257 MAP_DENYWRITE = 0x2000
1258 MSG_OOB = 0x1 1258 MAP_EXECUTABLE = 0x4000
1259 MSG_PEEK = 0x2 1259 MAP_FILE = 0x0
1260 MSG_PROXY = 0x10 1260 MAP_FIXED = 0x10
1261 MSG_RST = 0x1000 1261 MAP_FIXED_NOREPLACE = 0x100000
1262 MSG_SYN = 0x400 1262 MAP_GROWSDOWN = 0x1000
1263 MSG_TRUNC = 0x20 1263 MAP_HUGETLB = 0x80000
1264 MSG_TRYHARD = 0x4 1264 MAP_HUGE_MASK = 0x3f
1265 MSG_WAITALL = 0x100 1265 MAP_HUGE_SHIFT = 0x1a
1266 MSG_WAITFORONE = 0x10000 1266 MAP_LOCKED = 0x8000
1267 MSG_ZEROCOPY = 0x4000000 1267 MAP_NONBLOCK = 0x20000
1268 MS_ACTIVE = 0x40000000 1268 MAP_NORESERVE = 0x400
1269 MS_ASYNC = 0x1 1269 MAP_POPULATE = 0x10000
1270 MS_BIND = 0x1000 1270 MAP_PRIVATE = 0x2
1271 MS_BORN = 0x20000000 1271 MAP_RENAME = 0x800
1272 MS_DIRSYNC = 0x80 1272 MAP_SHARED = 0x1
1273 MS_INVALIDATE = 0x2 1273 MAP_SHARED_VALIDATE = 0x3
1274 MS_I_VERSION = 0x800000 1274 MAP_STACK = 0x40000
1275 MS_KERNMOUNT = 0x400000 1275 MAP_TYPE = 0xf
1276 MS_LAZYTIME = 0x2000000 1276 MCAST_BLOCK_SOURCE = 0x2b
1277 MS_MANDLOCK = 0x40 1277 MCAST_EXCLUDE = 0x0
1278 MS_MGC_MSK = 0xffff0000 1278 MCAST_INCLUDE = 0x1
1279 MS_MGC_VAL = 0xc0ed0000 1279 MCAST_JOIN_GROUP = 0x2a
1280 MS_MOVE = 0x2000 1280 MCAST_JOIN_SOURCE_GROUP = 0x2e
1281 MS_NOATIME = 0x400 1281 MCAST_LEAVE_GROUP = 0x2d
1282 MS_NODEV = 0x4 1282 MCAST_LEAVE_SOURCE_GROUP = 0x2f
1283 MS_NODIRATIME = 0x800 1283 MCAST_MSFILTER = 0x30
1284 MS_NOEXEC = 0x8 1284 MCAST_UNBLOCK_SOURCE = 0x2c
1285 MS_NOREMOTELOCK = 0x8000000 1285 MCL_CURRENT = 0x1
1286 MS_NOSEC = 0x10000000 1286 MCL_FUTURE = 0x2
1287 MS_NOSUID = 0x2 1287 MCL_ONFAULT = 0x4
1288 MS_NOUSER = -0x80000000 1288 MFD_ALLOW_SEALING = 0x2
1289 MS_POSIXACL = 0x10000 1289 MFD_CLOEXEC = 0x1
1290 MS_PRIVATE = 0x40000 1290 MFD_HUGETLB = 0x4
1291 MS_RDONLY = 0x1 1291 MFD_HUGE_16GB = -0x78000000
1292 MS_REC = 0x4000 1292 MFD_HUGE_16MB = 0x60000000
1293 MS_RELATIME = 0x200000 1293 MFD_HUGE_1GB = 0x78000000
1294 MS_REMOUNT = 0x20 1294 MFD_HUGE_1MB = 0x50000000
1295 MS_RMT_MASK = 0x2800051 1295 MFD_HUGE_256MB = 0x70000000
1296 MS_SHARED = 0x100000 1296 MFD_HUGE_2GB = 0x7c000000
1297 MS_SILENT = 0x8000 1297 MFD_HUGE_2MB = 0x54000000
1298 MS_SLAVE = 0x80000 1298 MFD_HUGE_32MB = 0x64000000
1299 MS_STRICTATIME = 0x1000000 1299 MFD_HUGE_512KB = 0x4c000000
1300 MS_SUBMOUNT = 0x4000000 1300 MFD_HUGE_512MB = 0x74000000
1301 MS_SYNC = 0x4 1301 MFD_HUGE_64KB = 0x40000000
1302 MS_SYNCHRONOUS = 0x10 1302 MFD_HUGE_8MB = 0x5c000000
1303 MS_UNBINDABLE = 0x20000 1303 MFD_HUGE_MASK = 0x3f
1304 MS_VERBOSE = 0x8000 1304 MFD_HUGE_SHIFT = 0x1a
1305 MTD_INODE_FS_MAGIC = 0x11307854 1305 MINIX2_SUPER_MAGIC = 0x2468
1306 NAME_MAX = 0xff 1306 MINIX2_SUPER_MAGIC2 = 0x2478
1307 NCP_SUPER_MAGIC = 0x564c 1307 MINIX3_SUPER_MAGIC = 0x4d5a
1308 NETLINK_ADD_MEMBERSHIP = 0x1 1308 MINIX_SUPER_MAGIC = 0x137f
1309 NETLINK_AUDIT = 0x9 1309 MINIX_SUPER_MAGIC2 = 0x138f
1310 NETLINK_BROADCAST_ERROR = 0x4 1310 MNT_DETACH = 0x2
1311 NETLINK_CAP_ACK = 0xa 1311 MNT_EXPIRE = 0x4
1312 NETLINK_CONNECTOR = 0xb 1312 MNT_FORCE = 0x1
1313 NETLINK_CRYPTO = 0x15 1313 MODULE_INIT_IGNORE_MODVERSIONS = 0x1
1314 NETLINK_DNRTMSG = 0xe 1314 MODULE_INIT_IGNORE_VERMAGIC = 0x2
1315 NETLINK_DROP_MEMBERSHIP = 0x2 1315 MSDOS_SUPER_MAGIC = 0x4d44
1316 NETLINK_ECRYPTFS = 0x13 1316 MSG_BATCH = 0x40000
1317 NETLINK_EXT_ACK = 0xb 1317 MSG_CMSG_CLOEXEC = 0x40000000
1318 NETLINK_FIB_LOOKUP = 0xa 1318 MSG_CONFIRM = 0x800
1319 NETLINK_FIREWALL = 0x3 1319 MSG_CTRUNC = 0x8
1320 NETLINK_GENERIC = 0x10 1320 MSG_DONTROUTE = 0x4
1321 NETLINK_GET_STRICT_CHK = 0xc 1321 MSG_DONTWAIT = 0x40
1322 NETLINK_INET_DIAG = 0x4 1322 MSG_EOR = 0x80
1323 NETLINK_IP6_FW = 0xd 1323 MSG_ERRQUEUE = 0x2000
1324 NETLINK_ISCSI = 0x8 1324 MSG_FASTOPEN = 0x20000000
1325 NETLINK_KOBJECT_UEVENT = 0xf 1325 MSG_FIN = 0x200
1326 NETLINK_LISTEN_ALL_NSID = 0x8 1326 MSG_MORE = 0x8000
1327 NETLINK_LIST_MEMBERSHIPS = 0x9 1327 MSG_NOSIGNAL = 0x4000
1328 NETLINK_NETFILTER = 0xc 1328 MSG_OOB = 0x1
1329 NETLINK_NFLOG = 0x5 1329 MSG_PEEK = 0x2
1330 NETLINK_NO_ENOBUFS = 0x5 1330 MSG_PROXY = 0x10
1331 NETLINK_PKTINFO = 0x3 1331 MSG_RST = 0x1000
1332 NETLINK_RDMA = 0x14 1332 MSG_SYN = 0x400
1333 NETLINK_ROUTE = 0x0 1333 MSG_TRUNC = 0x20
1334 NETLINK_RX_RING = 0x6 1334 MSG_TRYHARD = 0x4
1335 NETLINK_SCSITRANSPORT = 0x12 1335 MSG_WAITALL = 0x100
1336 NETLINK_SELINUX = 0x7 1336 MSG_WAITFORONE = 0x10000
1337 NETLINK_SMC = 0x16 1337 MSG_ZEROCOPY = 0x4000000
1338 NETLINK_SOCK_DIAG = 0x4 1338 MS_ACTIVE = 0x40000000
1339 NETLINK_TX_RING = 0x7 1339 MS_ASYNC = 0x1
1340 NETLINK_UNUSED = 0x1 1340 MS_BIND = 0x1000
1341 NETLINK_USERSOCK = 0x2 1341 MS_BORN = 0x20000000
1342 NETLINK_XFRM = 0x6 1342 MS_DIRSYNC = 0x80
1343 NETNSA_MAX = 0x5 1343 MS_INVALIDATE = 0x2
1344 NETNSA_NSID_NOT_ASSIGNED = -0x1 1344 MS_I_VERSION = 0x800000
1345 NFNETLINK_V0 = 0x0 1345 MS_KERNMOUNT = 0x400000
1346 NFNLGRP_ACCT_QUOTA = 0x8 1346 MS_LAZYTIME = 0x2000000
1347 NFNLGRP_CONNTRACK_DESTROY = 0x3 1347 MS_MANDLOCK = 0x40
1348 NFNLGRP_CONNTRACK_EXP_DESTROY = 0x6 1348 MS_MGC_MSK = 0xffff0000
1349 NFNLGRP_CONNTRACK_EXP_NEW = 0x4 1349 MS_MGC_VAL = 0xc0ed0000
1350 NFNLGRP_CONNTRACK_EXP_UPDATE = 0x5 1350 MS_MOVE = 0x2000
1351 NFNLGRP_CONNTRACK_NEW = 0x1 1351 MS_NOATIME = 0x400
1352 NFNLGRP_CONNTRACK_UPDATE = 0x2 1352 MS_NODEV = 0x4
1353 NFNLGRP_MAX = 0x9 1353 MS_NODIRATIME = 0x800
1354 NFNLGRP_NFTABLES = 0x7 1354 MS_NOEXEC = 0x8
1355 NFNLGRP_NFTRACE = 0x9 1355 MS_NOREMOTELOCK = 0x8000000
1356 NFNLGRP_NONE = 0x0 1356 MS_NOSEC = 0x10000000
1357 NFNL_BATCH_MAX = 0x1 1357 MS_NOSUID = 0x2
1358 NFNL_MSG_BATCH_BEGIN = 0x10 1358 MS_NOUSER = -0x80000000
1359 NFNL_MSG_BATCH_END = 0x11 1359 MS_POSIXACL = 0x10000
1360 NFNL_NFA_NEST = 0x8000 1360 MS_PRIVATE = 0x40000
1361 NFNL_SUBSYS_ACCT = 0x7 1361 MS_RDONLY = 0x1
1362 NFNL_SUBSYS_COUNT = 0xc 1362 MS_REC = 0x4000
1363 NFNL_SUBSYS_CTHELPER = 0x9 1363 MS_RELATIME = 0x200000
1364 NFNL_SUBSYS_CTNETLINK = 0x1 1364 MS_REMOUNT = 0x20
1365 NFNL_SUBSYS_CTNETLINK_EXP = 0x2 1365 MS_RMT_MASK = 0x2800051
1366 NFNL_SUBSYS_CTNETLINK_TIMEOUT = 0x8 1366 MS_SHARED = 0x100000
1367 NFNL_SUBSYS_IPSET = 0x6 1367 MS_SILENT = 0x8000
1368 NFNL_SUBSYS_NFTABLES = 0xa 1368 MS_SLAVE = 0x80000
1369 NFNL_SUBSYS_NFT_COMPAT = 0xb 1369 MS_STRICTATIME = 0x1000000
1370 NFNL_SUBSYS_NONE = 0x0 1370 MS_SUBMOUNT = 0x4000000
1371 NFNL_SUBSYS_OSF = 0x5 1371 MS_SYNC = 0x4
1372 NFNL_SUBSYS_QUEUE = 0x3 1372 MS_SYNCHRONOUS = 0x10
1373 NFNL_SUBSYS_ULOG = 0x4 1373 MS_UNBINDABLE = 0x20000
1374 NFS_SUPER_MAGIC = 0x6969 1374 MS_VERBOSE = 0x8000
1375 NILFS_SUPER_MAGIC = 0x3434 1375 MTD_INODE_FS_MAGIC = 0x11307854
1376 NL0 = 0x0 1376 NAME_MAX = 0xff
1377 NL1 = 0x100 1377 NCP_SUPER_MAGIC = 0x564c
1378 NLA_ALIGNTO = 0x4 1378 NETLINK_ADD_MEMBERSHIP = 0x1
1379 NLA_F_NESTED = 0x8000 1379 NETLINK_AUDIT = 0x9
1380 NLA_F_NET_BYTEORDER = 0x4000 1380 NETLINK_BROADCAST_ERROR = 0x4
1381 NLA_HDRLEN = 0x4 1381 NETLINK_CAP_ACK = 0xa
1382 NLDLY = 0x100 1382 NETLINK_CONNECTOR = 0xb
1383 NLMSG_ALIGNTO = 0x4 1383 NETLINK_CRYPTO = 0x15
1384 NLMSG_DONE = 0x3 1384 NETLINK_DNRTMSG = 0xe
1385 NLMSG_ERROR = 0x2 1385 NETLINK_DROP_MEMBERSHIP = 0x2
1386 NLMSG_HDRLEN = 0x10 1386 NETLINK_ECRYPTFS = 0x13
1387 NLMSG_MIN_TYPE = 0x10 1387 NETLINK_EXT_ACK = 0xb
1388 NLMSG_NOOP = 0x1 1388 NETLINK_FIB_LOOKUP = 0xa
1389 NLMSG_OVERRUN = 0x4 1389 NETLINK_FIREWALL = 0x3
1390 NLM_F_ACK = 0x4 1390 NETLINK_GENERIC = 0x10
1391 NLM_F_ACK_TLVS = 0x200 1391 NETLINK_GET_STRICT_CHK = 0xc
1392 NLM_F_APPEND = 0x800 1392 NETLINK_INET_DIAG = 0x4
1393 NLM_F_ATOMIC = 0x400 1393 NETLINK_IP6_FW = 0xd
1394 NLM_F_CAPPED = 0x100 1394 NETLINK_ISCSI = 0x8
1395 NLM_F_CREATE = 0x400 1395 NETLINK_KOBJECT_UEVENT = 0xf
1396 NLM_F_DUMP = 0x300 1396 NETLINK_LISTEN_ALL_NSID = 0x8
1397 NLM_F_DUMP_FILTERED = 0x20 1397 NETLINK_LIST_MEMBERSHIPS = 0x9
1398 NLM_F_DUMP_INTR = 0x10 1398 NETLINK_NETFILTER = 0xc
1399 NLM_F_ECHO = 0x8 1399 NETLINK_NFLOG = 0x5
1400 NLM_F_EXCL = 0x200 1400 NETLINK_NO_ENOBUFS = 0x5
1401 NLM_F_MATCH = 0x200 1401 NETLINK_PKTINFO = 0x3
1402 NLM_F_MULTI = 0x2 1402 NETLINK_RDMA = 0x14
1403 NLM_F_NONREC = 0x100 1403 NETLINK_ROUTE = 0x0
1404 NLM_F_REPLACE = 0x100 1404 NETLINK_RX_RING = 0x6
1405 NLM_F_REQUEST = 0x1 1405 NETLINK_SCSITRANSPORT = 0x12
1406 NLM_F_ROOT = 0x100 1406 NETLINK_SELINUX = 0x7
1407 NOFLSH = 0x80 1407 NETLINK_SMC = 0x16
1408 NSFS_MAGIC = 0x6e736673 1408 NETLINK_SOCK_DIAG = 0x4
1409 NS_GET_NSTYPE = 0x2000b703 1409 NETLINK_TX_RING = 0x7
1410 NS_GET_OWNER_UID = 0x2000b704 1410 NETLINK_UNUSED = 0x1
1411 NS_GET_PARENT = 0x2000b702 1411 NETLINK_USERSOCK = 0x2
1412 NS_GET_USERNS = 0x2000b701 1412 NETLINK_XFRM = 0x6
1413 OCFS2_SUPER_MAGIC = 0x7461636f 1413 NETNSA_MAX = 0x5
1414 OCRNL = 0x8 1414 NETNSA_NSID_NOT_ASSIGNED = -0x1
1415 OFDEL = 0x80 1415 NFDBITS = 0x20
1416 OFILL = 0x40 1416 NFNETLINK_V0 = 0x0
1417 OLCUC = 0x2 1417 NFNLGRP_ACCT_QUOTA = 0x8
1418 ONLCR = 0x4 1418 NFNLGRP_CONNTRACK_DESTROY = 0x3
1419 ONLRET = 0x20 1419 NFNLGRP_CONNTRACK_EXP_DESTROY = 0x6
1420 ONOCR = 0x10 1420 NFNLGRP_CONNTRACK_EXP_NEW = 0x4
1421 OPENPROM_SUPER_MAGIC = 0x9fa1 1421 NFNLGRP_CONNTRACK_EXP_UPDATE = 0x5
1422 OPOST = 0x1 1422 NFNLGRP_CONNTRACK_NEW = 0x1
1423 OVERLAYFS_SUPER_MAGIC = 0x794c7630 1423 NFNLGRP_CONNTRACK_UPDATE = 0x2
1424 O_ACCMODE = 0x3 1424 NFNLGRP_MAX = 0x9
1425 O_APPEND = 0x8 1425 NFNLGRP_NFTABLES = 0x7
1426 O_ASYNC = 0x1000 1426 NFNLGRP_NFTRACE = 0x9
1427 O_CLOEXEC = 0x80000 1427 NFNLGRP_NONE = 0x0
1428 O_CREAT = 0x100 1428 NFNL_BATCH_MAX = 0x1
1429 O_DIRECT = 0x8000 1429 NFNL_MSG_BATCH_BEGIN = 0x10
1430 O_DIRECTORY = 0x10000 1430 NFNL_MSG_BATCH_END = 0x11
1431 O_DSYNC = 0x10 1431 NFNL_NFA_NEST = 0x8000
1432 O_EXCL = 0x400 1432 NFNL_SUBSYS_ACCT = 0x7
1433 O_FSYNC = 0x4010 1433 NFNL_SUBSYS_COUNT = 0xc
1434 O_LARGEFILE = 0x2000 1434 NFNL_SUBSYS_CTHELPER = 0x9
1435 O_NDELAY = 0x80 1435 NFNL_SUBSYS_CTNETLINK = 0x1
1436 O_NOATIME = 0x40000 1436 NFNL_SUBSYS_CTNETLINK_EXP = 0x2
1437 O_NOCTTY = 0x800 1437 NFNL_SUBSYS_CTNETLINK_TIMEOUT = 0x8
1438 O_NOFOLLOW = 0x20000 1438 NFNL_SUBSYS_IPSET = 0x6
1439 O_NONBLOCK = 0x80 1439 NFNL_SUBSYS_NFTABLES = 0xa
1440 O_PATH = 0x200000 1440 NFNL_SUBSYS_NFT_COMPAT = 0xb
1441 O_RDONLY = 0x0 1441 NFNL_SUBSYS_NONE = 0x0
1442 O_RDWR = 0x2 1442 NFNL_SUBSYS_OSF = 0x5
1443 O_RSYNC = 0x4010 1443 NFNL_SUBSYS_QUEUE = 0x3
1444 O_SYNC = 0x4010 1444 NFNL_SUBSYS_ULOG = 0x4
1445 O_TMPFILE = 0x410000 1445 NFS_SUPER_MAGIC = 0x6969
1446 O_TRUNC = 0x200 1446 NILFS_SUPER_MAGIC = 0x3434
1447 O_WRONLY = 0x1 1447 NL0 = 0x0
1448 PACKET_ADD_MEMBERSHIP = 0x1 1448 NL1 = 0x100
1449 PACKET_AUXDATA = 0x8 1449 NLA_ALIGNTO = 0x4
1450 PACKET_BROADCAST = 0x1 1450 NLA_F_NESTED = 0x8000
1451 PACKET_COPY_THRESH = 0x7 1451 NLA_F_NET_BYTEORDER = 0x4000
1452 PACKET_DROP_MEMBERSHIP = 0x2 1452 NLA_HDRLEN = 0x4
1453 PACKET_FANOUT = 0x12 1453 NLDLY = 0x100
1454 PACKET_FANOUT_CBPF = 0x6 1454 NLMSG_ALIGNTO = 0x4
1455 PACKET_FANOUT_CPU = 0x2 1455 NLMSG_DONE = 0x3
1456 PACKET_FANOUT_DATA = 0x16 1456 NLMSG_ERROR = 0x2
1457 PACKET_FANOUT_EBPF = 0x7 1457 NLMSG_HDRLEN = 0x10
1458 PACKET_FANOUT_FLAG_DEFRAG = 0x8000 1458 NLMSG_MIN_TYPE = 0x10
1459 PACKET_FANOUT_FLAG_ROLLOVER = 0x1000 1459 NLMSG_NOOP = 0x1
1460 PACKET_FANOUT_FLAG_UNIQUEID = 0x2000 1460 NLMSG_OVERRUN = 0x4
1461 PACKET_FANOUT_HASH = 0x0 1461 NLM_F_ACK = 0x4
1462 PACKET_FANOUT_LB = 0x1 1462 NLM_F_ACK_TLVS = 0x200
1463 PACKET_FANOUT_QM = 0x5 1463 NLM_F_APPEND = 0x800
1464 PACKET_FANOUT_RND = 0x4 1464 NLM_F_ATOMIC = 0x400
1465 PACKET_FANOUT_ROLLOVER = 0x3 1465 NLM_F_CAPPED = 0x100
1466 PACKET_FASTROUTE = 0x6 1466 NLM_F_CREATE = 0x400
1467 PACKET_HDRLEN = 0xb 1467 NLM_F_DUMP = 0x300
1468 PACKET_HOST = 0x0 1468 NLM_F_DUMP_FILTERED = 0x20
1469 PACKET_IGNORE_OUTGOING = 0x17 1469 NLM_F_DUMP_INTR = 0x10
1470 PACKET_KERNEL = 0x7 1470 NLM_F_ECHO = 0x8
1471 PACKET_LOOPBACK = 0x5 1471 NLM_F_EXCL = 0x200
1472 PACKET_LOSS = 0xe 1472 NLM_F_MATCH = 0x200
1473 PACKET_MR_ALLMULTI = 0x2 1473 NLM_F_MULTI = 0x2
1474 PACKET_MR_MULTICAST = 0x0 1474 NLM_F_NONREC = 0x100
1475 PACKET_MR_PROMISC = 0x1 1475 NLM_F_REPLACE = 0x100
1476 PACKET_MR_UNICAST = 0x3 1476 NLM_F_REQUEST = 0x1
1477 PACKET_MULTICAST = 0x2 1477 NLM_F_ROOT = 0x100
1478 PACKET_ORIGDEV = 0x9 1478 NOFLSH = 0x80
1479 PACKET_OTHERHOST = 0x3 1479 NSFS_MAGIC = 0x6e736673
1480 PACKET_OUTGOING = 0x4 1480 NS_GET_NSTYPE = 0x2000b703
1481 PACKET_QDISC_BYPASS = 0x14 1481 NS_GET_OWNER_UID = 0x2000b704
1482 PACKET_RECV_OUTPUT = 0x3 1482 NS_GET_PARENT = 0x2000b702
1483 PACKET_RESERVE = 0xc 1483 NS_GET_USERNS = 0x2000b701
1484 PACKET_ROLLOVER_STATS = 0x15 1484 OCFS2_SUPER_MAGIC = 0x7461636f
1485 PACKET_RX_RING = 0x5 1485 OCRNL = 0x8
1486 PACKET_STATISTICS = 0x6 1486 OFDEL = 0x80
1487 PACKET_TIMESTAMP = 0x11 1487 OFILL = 0x40
1488 PACKET_TX_HAS_OFF = 0x13 1488 OLCUC = 0x2
1489 PACKET_TX_RING = 0xd 1489 ONLCR = 0x4
1490 PACKET_TX_TIMESTAMP = 0x10 1490 ONLRET = 0x20
1491 PACKET_USER = 0x6 1491 ONOCR = 0x10
1492 PACKET_VERSION = 0xa 1492 OPENPROM_SUPER_MAGIC = 0x9fa1
1493 PACKET_VNET_HDR = 0xf 1493 OPOST = 0x1
1494 PARENB = 0x100 1494 OVERLAYFS_SUPER_MAGIC = 0x794c7630
1495 PARITY_CRC16_PR0 = 0x2 1495 O_ACCMODE = 0x3
1496 PARITY_CRC16_PR0_CCITT = 0x4 1496 O_APPEND = 0x8
1497 PARITY_CRC16_PR1 = 0x3 1497 O_ASYNC = 0x1000
1498 PARITY_CRC16_PR1_CCITT = 0x5 1498 O_CLOEXEC = 0x80000
1499 PARITY_CRC32_PR0_CCITT = 0x6 1499 O_CREAT = 0x100
1500 PARITY_CRC32_PR1_CCITT = 0x7 1500 O_DIRECT = 0x8000
1501 PARITY_DEFAULT = 0x0 1501 O_DIRECTORY = 0x10000
1502 PARITY_NONE = 0x1 1502 O_DSYNC = 0x10
1503 PARMRK = 0x8 1503 O_EXCL = 0x400
1504 PARODD = 0x200 1504 O_FSYNC = 0x4010
1505 PENDIN = 0x4000 1505 O_LARGEFILE = 0x2000
1506 PERF_EVENT_IOC_DISABLE = 0x20002401 1506 O_NDELAY = 0x80
1507 PERF_EVENT_IOC_ENABLE = 0x20002400 1507 O_NOATIME = 0x40000
1508 PERF_EVENT_IOC_ID = 0x40042407 1508 O_NOCTTY = 0x800
1509 PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x8004240b 1509 O_NOFOLLOW = 0x20000
1510 PERF_EVENT_IOC_PAUSE_OUTPUT = 0x80042409 1510 O_NONBLOCK = 0x80
1511 PERF_EVENT_IOC_PERIOD = 0x80082404 1511 O_PATH = 0x200000
1512 PERF_EVENT_IOC_QUERY_BPF = 0xc004240a 1512 O_RDONLY = 0x0
1513 PERF_EVENT_IOC_REFRESH = 0x20002402 1513 O_RDWR = 0x2
1514 PERF_EVENT_IOC_RESET = 0x20002403 1514 O_RSYNC = 0x4010
1515 PERF_EVENT_IOC_SET_BPF = 0x80042408 1515 O_SYNC = 0x4010
1516 PERF_EVENT_IOC_SET_FILTER = 0x80042406 1516 O_TMPFILE = 0x410000
1517 PERF_EVENT_IOC_SET_OUTPUT = 0x20002405 1517 O_TRUNC = 0x200
1518 PIPEFS_MAGIC = 0x50495045 1518 O_WRONLY = 0x1
1519 PPPIOCATTACH = 0x8004743d 1519 PACKET_ADD_MEMBERSHIP = 0x1
1520 PPPIOCATTCHAN = 0x80047438 1520 PACKET_AUXDATA = 0x8
1521 PPPIOCCONNECT = 0x8004743a 1521 PACKET_BROADCAST = 0x1
1522 PPPIOCDETACH = 0x8004743c 1522 PACKET_COPY_THRESH = 0x7
1523 PPPIOCDISCONN = 0x20007439 1523 PACKET_DROP_MEMBERSHIP = 0x2
1524 PPPIOCGASYNCMAP = 0x40047458 1524 PACKET_FANOUT = 0x12
1525 PPPIOCGCHAN = 0x40047437 1525 PACKET_FANOUT_CBPF = 0x6
1526 PPPIOCGDEBUG = 0x40047441 1526 PACKET_FANOUT_CPU = 0x2
1527 PPPIOCGFLAGS = 0x4004745a 1527 PACKET_FANOUT_DATA = 0x16
1528 PPPIOCGIDLE = 0x4008743f 1528 PACKET_FANOUT_EBPF = 0x7
1529 PPPIOCGL2TPSTATS = 0x40487436 1529 PACKET_FANOUT_FLAG_DEFRAG = 0x8000
1530 PPPIOCGMRU = 0x40047453 1530 PACKET_FANOUT_FLAG_ROLLOVER = 0x1000
1531 PPPIOCGNPMODE = 0xc008744c 1531 PACKET_FANOUT_FLAG_UNIQUEID = 0x2000
1532 PPPIOCGRASYNCMAP = 0x40047455 1532 PACKET_FANOUT_HASH = 0x0
1533 PPPIOCGUNIT = 0x40047456 1533 PACKET_FANOUT_LB = 0x1
1534 PPPIOCGXASYNCMAP = 0x40207450 1534 PACKET_FANOUT_QM = 0x5
1535 PPPIOCNEWUNIT = 0xc004743e 1535 PACKET_FANOUT_RND = 0x4
1536 PPPIOCSACTIVE = 0x80087446 1536 PACKET_FANOUT_ROLLOVER = 0x3
1537 PPPIOCSASYNCMAP = 0x80047457 1537 PACKET_FASTROUTE = 0x6
1538 PPPIOCSCOMPRESS = 0x800c744d 1538 PACKET_HDRLEN = 0xb
1539 PPPIOCSDEBUG = 0x80047440 1539 PACKET_HOST = 0x0
1540 PPPIOCSFLAGS = 0x80047459 1540 PACKET_IGNORE_OUTGOING = 0x17
1541 PPPIOCSMAXCID = 0x80047451 1541 PACKET_KERNEL = 0x7
1542 PPPIOCSMRRU = 0x8004743b 1542 PACKET_LOOPBACK = 0x5
1543 PPPIOCSMRU = 0x80047452 1543 PACKET_LOSS = 0xe
1544 PPPIOCSNPMODE = 0x8008744b 1544 PACKET_MR_ALLMULTI = 0x2
1545 PPPIOCSPASS = 0x80087447 1545 PACKET_MR_MULTICAST = 0x0
1546 PPPIOCSRASYNCMAP = 0x80047454 1546 PACKET_MR_PROMISC = 0x1
1547 PPPIOCSXASYNCMAP = 0x8020744f 1547 PACKET_MR_UNICAST = 0x3
1548 PPPIOCXFERUNIT = 0x2000744e 1548 PACKET_MULTICAST = 0x2
1549 PRIO_PGRP = 0x1 1549 PACKET_ORIGDEV = 0x9
1550 PRIO_PROCESS = 0x0 1550 PACKET_OTHERHOST = 0x3
1551 PRIO_USER = 0x2 1551 PACKET_OUTGOING = 0x4
1552 PROC_SUPER_MAGIC = 0x9fa0 1552 PACKET_QDISC_BYPASS = 0x14
1553 PROT_EXEC = 0x4 1553 PACKET_RECV_OUTPUT = 0x3
1554 PROT_GROWSDOWN = 0x1000000 1554 PACKET_RESERVE = 0xc
1555 PROT_GROWSUP = 0x2000000 1555 PACKET_ROLLOVER_STATS = 0x15
1556 PROT_NONE = 0x0 1556 PACKET_RX_RING = 0x5
1557 PROT_READ = 0x1 1557 PACKET_STATISTICS = 0x6
1558 PROT_WRITE = 0x2 1558 PACKET_TIMESTAMP = 0x11
1559 PR_CAPBSET_DROP = 0x18 1559 PACKET_TX_HAS_OFF = 0x13
1560 PR_CAPBSET_READ = 0x17 1560 PACKET_TX_RING = 0xd
1561 PR_CAP_AMBIENT = 0x2f 1561 PACKET_TX_TIMESTAMP = 0x10
1562 PR_CAP_AMBIENT_CLEAR_ALL = 0x4 1562 PACKET_USER = 0x6
1563 PR_CAP_AMBIENT_IS_SET = 0x1 1563 PACKET_VERSION = 0xa
1564 PR_CAP_AMBIENT_LOWER = 0x3 1564 PACKET_VNET_HDR = 0xf
1565 PR_CAP_AMBIENT_RAISE = 0x2 1565 PARENB = 0x100
1566 PR_ENDIAN_BIG = 0x0 1566 PARITY_CRC16_PR0 = 0x2
1567 PR_ENDIAN_LITTLE = 0x1 1567 PARITY_CRC16_PR0_CCITT = 0x4
1568 PR_ENDIAN_PPC_LITTLE = 0x2 1568 PARITY_CRC16_PR1 = 0x3
1569 PR_FPEMU_NOPRINT = 0x1 1569 PARITY_CRC16_PR1_CCITT = 0x5
1570 PR_FPEMU_SIGFPE = 0x2 1570 PARITY_CRC32_PR0_CCITT = 0x6
1571 PR_FP_EXC_ASYNC = 0x2 1571 PARITY_CRC32_PR1_CCITT = 0x7
1572 PR_FP_EXC_DISABLED = 0x0 1572 PARITY_DEFAULT = 0x0
1573 PR_FP_EXC_DIV = 0x10000 1573 PARITY_NONE = 0x1
1574 PR_FP_EXC_INV = 0x100000 1574 PARMRK = 0x8
1575 PR_FP_EXC_NONRECOV = 0x1 1575 PARODD = 0x200
1576 PR_FP_EXC_OVF = 0x20000 1576 PENDIN = 0x4000
1577 PR_FP_EXC_PRECISE = 0x3 1577 PERF_EVENT_IOC_DISABLE = 0x20002401
1578 PR_FP_EXC_RES = 0x80000 1578 PERF_EVENT_IOC_ENABLE = 0x20002400
1579 PR_FP_EXC_SW_ENABLE = 0x80 1579 PERF_EVENT_IOC_ID = 0x40042407
1580 PR_FP_EXC_UND = 0x40000 1580 PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x8004240b
1581 PR_FP_MODE_FR = 0x1 1581 PERF_EVENT_IOC_PAUSE_OUTPUT = 0x80042409
1582 PR_FP_MODE_FRE = 0x2 1582 PERF_EVENT_IOC_PERIOD = 0x80082404
1583 PR_GET_CHILD_SUBREAPER = 0x25 1583 PERF_EVENT_IOC_QUERY_BPF = 0xc004240a
1584 PR_GET_DUMPABLE = 0x3 1584 PERF_EVENT_IOC_REFRESH = 0x20002402
1585 PR_GET_ENDIAN = 0x13 1585 PERF_EVENT_IOC_RESET = 0x20002403
1586 PR_GET_FPEMU = 0x9 1586 PERF_EVENT_IOC_SET_BPF = 0x80042408
1587 PR_GET_FPEXC = 0xb 1587 PERF_EVENT_IOC_SET_FILTER = 0x80042406
1588 PR_GET_FP_MODE = 0x2e 1588 PERF_EVENT_IOC_SET_OUTPUT = 0x20002405
1589 PR_GET_KEEPCAPS = 0x7 1589 PIPEFS_MAGIC = 0x50495045
1590 PR_GET_NAME = 0x10 1590 PPC_CMM_MAGIC = 0xc7571590
1591 PR_GET_NO_NEW_PRIVS = 0x27 1591 PPPIOCATTACH = 0x8004743d
1592 PR_GET_PDEATHSIG = 0x2 1592 PPPIOCATTCHAN = 0x80047438
1593 PR_GET_SECCOMP = 0x15 1593 PPPIOCCONNECT = 0x8004743a
1594 PR_GET_SECUREBITS = 0x1b 1594 PPPIOCDETACH = 0x8004743c
1595 PR_GET_SPECULATION_CTRL = 0x34 1595 PPPIOCDISCONN = 0x20007439
1596 PR_GET_THP_DISABLE = 0x2a 1596 PPPIOCGASYNCMAP = 0x40047458
1597 PR_GET_TID_ADDRESS = 0x28 1597 PPPIOCGCHAN = 0x40047437
1598 PR_GET_TIMERSLACK = 0x1e 1598 PPPIOCGDEBUG = 0x40047441
1599 PR_GET_TIMING = 0xd 1599 PPPIOCGFLAGS = 0x4004745a
1600 PR_GET_TSC = 0x19 1600 PPPIOCGIDLE = 0x4008743f
1601 PR_GET_UNALIGN = 0x5 1601 PPPIOCGIDLE32 = 0x4008743f
1602 PR_MCE_KILL = 0x21 1602 PPPIOCGIDLE64 = 0x4010743f
1603 PR_MCE_KILL_CLEAR = 0x0 1603 PPPIOCGL2TPSTATS = 0x40487436
1604 PR_MCE_KILL_DEFAULT = 0x2 1604 PPPIOCGMRU = 0x40047453
1605 PR_MCE_KILL_EARLY = 0x1 1605 PPPIOCGNPMODE = 0xc008744c
1606 PR_MCE_KILL_GET = 0x22 1606 PPPIOCGRASYNCMAP = 0x40047455
1607 PR_MCE_KILL_LATE = 0x0 1607 PPPIOCGUNIT = 0x40047456
1608 PR_MCE_KILL_SET = 0x1 1608 PPPIOCGXASYNCMAP = 0x40207450
1609 PR_MPX_DISABLE_MANAGEMENT = 0x2c 1609 PPPIOCNEWUNIT = 0xc004743e
1610 PR_MPX_ENABLE_MANAGEMENT = 0x2b 1610 PPPIOCSACTIVE = 0x80087446
1611 PR_PAC_APDAKEY = 0x4 1611 PPPIOCSASYNCMAP = 0x80047457
1612 PR_PAC_APDBKEY = 0x8 1612 PPPIOCSCOMPRESS = 0x800c744d
1613 PR_PAC_APGAKEY = 0x10 1613 PPPIOCSDEBUG = 0x80047440
1614 PR_PAC_APIAKEY = 0x1 1614 PPPIOCSFLAGS = 0x80047459
1615 PR_PAC_APIBKEY = 0x2 1615 PPPIOCSMAXCID = 0x80047451
1616 PR_PAC_RESET_KEYS = 0x36 1616 PPPIOCSMRRU = 0x8004743b
1617 PR_SET_CHILD_SUBREAPER = 0x24 1617 PPPIOCSMRU = 0x80047452
1618 PR_SET_DUMPABLE = 0x4 1618 PPPIOCSNPMODE = 0x8008744b
1619 PR_SET_ENDIAN = 0x14 1619 PPPIOCSPASS = 0x80087447
1620 PR_SET_FPEMU = 0xa 1620 PPPIOCSRASYNCMAP = 0x80047454
1621 PR_SET_FPEXC = 0xc 1621 PPPIOCSXASYNCMAP = 0x8020744f
1622 PR_SET_FP_MODE = 0x2d 1622 PPPIOCXFERUNIT = 0x2000744e
1623 PR_SET_KEEPCAPS = 0x8 1623 PRIO_PGRP = 0x1
1624 PR_SET_MM = 0x23 1624 PRIO_PROCESS = 0x0
1625 PR_SET_MM_ARG_END = 0x9 1625 PRIO_USER = 0x2
1626 PR_SET_MM_ARG_START = 0x8 1626 PROC_SUPER_MAGIC = 0x9fa0
1627 PR_SET_MM_AUXV = 0xc 1627 PROT_EXEC = 0x4
1628 PR_SET_MM_BRK = 0x7 1628 PROT_GROWSDOWN = 0x1000000
1629 PR_SET_MM_END_CODE = 0x2 1629 PROT_GROWSUP = 0x2000000
1630 PR_SET_MM_END_DATA = 0x4 1630 PROT_NONE = 0x0
1631 PR_SET_MM_ENV_END = 0xb 1631 PROT_READ = 0x1
1632 PR_SET_MM_ENV_START = 0xa 1632 PROT_WRITE = 0x2
1633 PR_SET_MM_EXE_FILE = 0xd 1633 PR_CAPBSET_DROP = 0x18
1634 PR_SET_MM_MAP = 0xe 1634 PR_CAPBSET_READ = 0x17
1635 PR_SET_MM_MAP_SIZE = 0xf 1635 PR_CAP_AMBIENT = 0x2f
1636 PR_SET_MM_START_BRK = 0x6 1636 PR_CAP_AMBIENT_CLEAR_ALL = 0x4
1637 PR_SET_MM_START_CODE = 0x1 1637 PR_CAP_AMBIENT_IS_SET = 0x1
1638 PR_SET_MM_START_DATA = 0x3 1638 PR_CAP_AMBIENT_LOWER = 0x3
1639 PR_SET_MM_START_STACK = 0x5 1639 PR_CAP_AMBIENT_RAISE = 0x2
1640 PR_SET_NAME = 0xf 1640 PR_ENDIAN_BIG = 0x0
1641 PR_SET_NO_NEW_PRIVS = 0x26 1641 PR_ENDIAN_LITTLE = 0x1
1642 PR_SET_PDEATHSIG = 0x1 1642 PR_ENDIAN_PPC_LITTLE = 0x2
1643 PR_SET_PTRACER = 0x59616d61 1643 PR_FPEMU_NOPRINT = 0x1
1644 PR_SET_PTRACER_ANY = 0xffffffff 1644 PR_FPEMU_SIGFPE = 0x2
1645 PR_SET_SECCOMP = 0x16 1645 PR_FP_EXC_ASYNC = 0x2
1646 PR_SET_SECUREBITS = 0x1c 1646 PR_FP_EXC_DISABLED = 0x0
1647 PR_SET_SPECULATION_CTRL = 0x35 1647 PR_FP_EXC_DIV = 0x10000
1648 PR_SET_THP_DISABLE = 0x29 1648 PR_FP_EXC_INV = 0x100000
1649 PR_SET_TIMERSLACK = 0x1d 1649 PR_FP_EXC_NONRECOV = 0x1
1650 PR_SET_TIMING = 0xe 1650 PR_FP_EXC_OVF = 0x20000
1651 PR_SET_TSC = 0x1a 1651 PR_FP_EXC_PRECISE = 0x3
1652 PR_SET_UNALIGN = 0x6 1652 PR_FP_EXC_RES = 0x80000
1653 PR_SPEC_DISABLE = 0x4 1653 PR_FP_EXC_SW_ENABLE = 0x80
1654 PR_SPEC_DISABLE_NOEXEC = 0x10 1654 PR_FP_EXC_UND = 0x40000
1655 PR_SPEC_ENABLE = 0x2 1655 PR_FP_MODE_FR = 0x1
1656 PR_SPEC_FORCE_DISABLE = 0x8 1656 PR_FP_MODE_FRE = 0x2
1657 PR_SPEC_INDIRECT_BRANCH = 0x1 1657 PR_GET_CHILD_SUBREAPER = 0x25
1658 PR_SPEC_NOT_AFFECTED = 0x0 1658 PR_GET_DUMPABLE = 0x3
1659 PR_SPEC_PRCTL = 0x1 1659 PR_GET_ENDIAN = 0x13
1660 PR_SPEC_STORE_BYPASS = 0x0 1660 PR_GET_FPEMU = 0x9
1661 PR_SVE_GET_VL = 0x33 1661 PR_GET_FPEXC = 0xb
1662 PR_SVE_SET_VL = 0x32 1662 PR_GET_FP_MODE = 0x2e
1663 PR_SVE_SET_VL_ONEXEC = 0x40000 1663 PR_GET_KEEPCAPS = 0x7
1664 PR_SVE_VL_INHERIT = 0x20000 1664 PR_GET_NAME = 0x10
1665 PR_SVE_VL_LEN_MASK = 0xffff 1665 PR_GET_NO_NEW_PRIVS = 0x27
1666 PR_TASK_PERF_EVENTS_DISABLE = 0x1f 1666 PR_GET_PDEATHSIG = 0x2
1667 PR_TASK_PERF_EVENTS_ENABLE = 0x20 1667 PR_GET_SECCOMP = 0x15
1668 PR_TIMING_STATISTICAL = 0x0 1668 PR_GET_SECUREBITS = 0x1b
1669 PR_TIMING_TIMESTAMP = 0x1 1669 PR_GET_SPECULATION_CTRL = 0x34
1670 PR_TSC_ENABLE = 0x1 1670 PR_GET_TAGGED_ADDR_CTRL = 0x38
1671 PR_TSC_SIGSEGV = 0x2 1671 PR_GET_THP_DISABLE = 0x2a
1672 PR_UNALIGN_NOPRINT = 0x1 1672 PR_GET_TID_ADDRESS = 0x28
1673 PR_UNALIGN_SIGBUS = 0x2 1673 PR_GET_TIMERSLACK = 0x1e
1674 PSTOREFS_MAGIC = 0x6165676c 1674 PR_GET_TIMING = 0xd
1675 PTRACE_ATTACH = 0x10 1675 PR_GET_TSC = 0x19
1676 PTRACE_CONT = 0x7 1676 PR_GET_UNALIGN = 0x5
1677 PTRACE_DETACH = 0x11 1677 PR_MCE_KILL = 0x21
1678 PTRACE_EVENT_CLONE = 0x3 1678 PR_MCE_KILL_CLEAR = 0x0
1679 PTRACE_EVENT_EXEC = 0x4 1679 PR_MCE_KILL_DEFAULT = 0x2
1680 PTRACE_EVENT_EXIT = 0x6 1680 PR_MCE_KILL_EARLY = 0x1
1681 PTRACE_EVENT_FORK = 0x1 1681 PR_MCE_KILL_GET = 0x22
1682 PTRACE_EVENT_SECCOMP = 0x7 1682 PR_MCE_KILL_LATE = 0x0
1683 PTRACE_EVENT_STOP = 0x80 1683 PR_MCE_KILL_SET = 0x1
1684 PTRACE_EVENT_VFORK = 0x2 1684 PR_MPX_DISABLE_MANAGEMENT = 0x2c
1685 PTRACE_EVENT_VFORK_DONE = 0x5 1685 PR_MPX_ENABLE_MANAGEMENT = 0x2b
1686 PTRACE_GETEVENTMSG = 0x4201 1686 PR_PAC_APDAKEY = 0x4
1687 PTRACE_GETFPREGS = 0xe 1687 PR_PAC_APDBKEY = 0x8
1688 PTRACE_GETREGS = 0xc 1688 PR_PAC_APGAKEY = 0x10
1689 PTRACE_GETREGSET = 0x4204 1689 PR_PAC_APIAKEY = 0x1
1690 PTRACE_GETSIGINFO = 0x4202 1690 PR_PAC_APIBKEY = 0x2
1691 PTRACE_GETSIGMASK = 0x420a 1691 PR_PAC_RESET_KEYS = 0x36
1692 PTRACE_GET_THREAD_AREA = 0x19 1692 PR_SET_CHILD_SUBREAPER = 0x24
1693 PTRACE_GET_THREAD_AREA_3264 = 0xc4 1693 PR_SET_DUMPABLE = 0x4
1694 PTRACE_GET_WATCH_REGS = 0xd0 1694 PR_SET_ENDIAN = 0x14
1695 PTRACE_INTERRUPT = 0x4207 1695 PR_SET_FPEMU = 0xa
1696 PTRACE_KILL = 0x8 1696 PR_SET_FPEXC = 0xc
1697 PTRACE_LISTEN = 0x4208 1697 PR_SET_FP_MODE = 0x2d
1698 PTRACE_OLDSETOPTIONS = 0x15 1698 PR_SET_KEEPCAPS = 0x8
1699 PTRACE_O_EXITKILL = 0x100000 1699 PR_SET_MM = 0x23
1700 PTRACE_O_MASK = 0x3000ff 1700 PR_SET_MM_ARG_END = 0x9
1701 PTRACE_O_SUSPEND_SECCOMP = 0x200000 1701 PR_SET_MM_ARG_START = 0x8
1702 PTRACE_O_TRACECLONE = 0x8 1702 PR_SET_MM_AUXV = 0xc
1703 PTRACE_O_TRACEEXEC = 0x10 1703 PR_SET_MM_BRK = 0x7
1704 PTRACE_O_TRACEEXIT = 0x40 1704 PR_SET_MM_END_CODE = 0x2
1705 PTRACE_O_TRACEFORK = 0x2 1705 PR_SET_MM_END_DATA = 0x4
1706 PTRACE_O_TRACESECCOMP = 0x80 1706 PR_SET_MM_ENV_END = 0xb
1707 PTRACE_O_TRACESYSGOOD = 0x1 1707 PR_SET_MM_ENV_START = 0xa
1708 PTRACE_O_TRACEVFORK = 0x4 1708 PR_SET_MM_EXE_FILE = 0xd
1709 PTRACE_O_TRACEVFORKDONE = 0x20 1709 PR_SET_MM_MAP = 0xe
1710 PTRACE_PEEKDATA = 0x2 1710 PR_SET_MM_MAP_SIZE = 0xf
1711 PTRACE_PEEKDATA_3264 = 0xc1 1711 PR_SET_MM_START_BRK = 0x6
1712 PTRACE_PEEKSIGINFO = 0x4209 1712 PR_SET_MM_START_CODE = 0x1
1713 PTRACE_PEEKSIGINFO_SHARED = 0x1 1713 PR_SET_MM_START_DATA = 0x3
1714 PTRACE_PEEKTEXT = 0x1 1714 PR_SET_MM_START_STACK = 0x5
1715 PTRACE_PEEKTEXT_3264 = 0xc0 1715 PR_SET_NAME = 0xf
1716 PTRACE_PEEKUSR = 0x3 1716 PR_SET_NO_NEW_PRIVS = 0x26
1717 PTRACE_POKEDATA = 0x5 1717 PR_SET_PDEATHSIG = 0x1
1718 PTRACE_POKEDATA_3264 = 0xc3 1718 PR_SET_PTRACER = 0x59616d61
1719 PTRACE_POKETEXT = 0x4 1719 PR_SET_PTRACER_ANY = 0xffffffff
1720 PTRACE_POKETEXT_3264 = 0xc2 1720 PR_SET_SECCOMP = 0x16
1721 PTRACE_POKEUSR = 0x6 1721 PR_SET_SECUREBITS = 0x1c
1722 PTRACE_SECCOMP_GET_FILTER = 0x420c 1722 PR_SET_SPECULATION_CTRL = 0x35
1723 PTRACE_SECCOMP_GET_METADATA = 0x420d 1723 PR_SET_TAGGED_ADDR_CTRL = 0x37
1724 PTRACE_SEIZE = 0x4206 1724 PR_SET_THP_DISABLE = 0x29
1725 PTRACE_SETFPREGS = 0xf 1725 PR_SET_TIMERSLACK = 0x1d
1726 PTRACE_SETOPTIONS = 0x4200 1726 PR_SET_TIMING = 0xe
1727 PTRACE_SETREGS = 0xd 1727 PR_SET_TSC = 0x1a
1728 PTRACE_SETREGSET = 0x4205 1728 PR_SET_UNALIGN = 0x6
1729 PTRACE_SETSIGINFO = 0x4203 1729 PR_SPEC_DISABLE = 0x4
1730 PTRACE_SETSIGMASK = 0x420b 1730 PR_SPEC_DISABLE_NOEXEC = 0x10
1731 PTRACE_SET_THREAD_AREA = 0x1a 1731 PR_SPEC_ENABLE = 0x2
1732 PTRACE_SET_WATCH_REGS = 0xd1 1732 PR_SPEC_FORCE_DISABLE = 0x8
1733 PTRACE_SINGLESTEP = 0x9 1733 PR_SPEC_INDIRECT_BRANCH = 0x1
1734 PTRACE_SYSCALL = 0x18 1734 PR_SPEC_NOT_AFFECTED = 0x0
1735 PTRACE_TRACEME = 0x0 1735 PR_SPEC_PRCTL = 0x1
1736 QNX4_SUPER_MAGIC = 0x2f 1736 PR_SPEC_STORE_BYPASS = 0x0
1737 QNX6_SUPER_MAGIC = 0x68191122 1737 PR_SVE_GET_VL = 0x33
1738 RAMFS_MAGIC = 0x858458f6 1738 PR_SVE_SET_VL = 0x32
1739 RDTGROUP_SUPER_MAGIC = 0x7655821 1739 PR_SVE_SET_VL_ONEXEC = 0x40000
1740 REISERFS_SUPER_MAGIC = 0x52654973 1740 PR_SVE_VL_INHERIT = 0x20000
1741 RENAME_EXCHANGE = 0x2 1741 PR_SVE_VL_LEN_MASK = 0xffff
1742 RENAME_NOREPLACE = 0x1 1742 PR_TAGGED_ADDR_ENABLE = 0x1
1743 RENAME_WHITEOUT = 0x4 1743 PR_TASK_PERF_EVENTS_DISABLE = 0x1f
1744 RLIMIT_AS = 0x6 1744 PR_TASK_PERF_EVENTS_ENABLE = 0x20
1745 RLIMIT_CORE = 0x4 1745 PR_TIMING_STATISTICAL = 0x0
1746 RLIMIT_CPU = 0x0 1746 PR_TIMING_TIMESTAMP = 0x1
1747 RLIMIT_DATA = 0x2 1747 PR_TSC_ENABLE = 0x1
1748 RLIMIT_FSIZE = 0x1 1748 PR_TSC_SIGSEGV = 0x2
1749 RLIMIT_LOCKS = 0xa 1749 PR_UNALIGN_NOPRINT = 0x1
1750 RLIMIT_MEMLOCK = 0x9 1750 PR_UNALIGN_SIGBUS = 0x2
1751 RLIMIT_MSGQUEUE = 0xc 1751 PSTOREFS_MAGIC = 0x6165676c
1752 RLIMIT_NICE = 0xd 1752 PTRACE_ATTACH = 0x10
1753 RLIMIT_NOFILE = 0x5 1753 PTRACE_CONT = 0x7
1754 RLIMIT_NPROC = 0x8 1754 PTRACE_DETACH = 0x11
1755 RLIMIT_RSS = 0x7 1755 PTRACE_EVENTMSG_SYSCALL_ENTRY = 0x1
1756 RLIMIT_RTPRIO = 0xe 1756 PTRACE_EVENTMSG_SYSCALL_EXIT = 0x2
1757 RLIMIT_RTTIME = 0xf 1757 PTRACE_EVENT_CLONE = 0x3
1758 RLIMIT_SIGPENDING = 0xb 1758 PTRACE_EVENT_EXEC = 0x4
1759 RLIMIT_STACK = 0x3 1759 PTRACE_EVENT_EXIT = 0x6
1760 RLIM_INFINITY = 0xffffffffffffffff 1760 PTRACE_EVENT_FORK = 0x1
1761 RNDADDENTROPY = 0x80085203 1761 PTRACE_EVENT_SECCOMP = 0x7
1762 RNDADDTOENTCNT = 0x80045201 1762 PTRACE_EVENT_STOP = 0x80
1763 RNDCLEARPOOL = 0x20005206 1763 PTRACE_EVENT_VFORK = 0x2
1764 RNDGETENTCNT = 0x40045200 1764 PTRACE_EVENT_VFORK_DONE = 0x5
1765 RNDGETPOOL = 0x40085202 1765 PTRACE_GETEVENTMSG = 0x4201
1766 RNDRESEEDCRNG = 0x20005207 1766 PTRACE_GETFPREGS = 0xe
1767 RNDZAPENTCNT = 0x20005204 1767 PTRACE_GETREGS = 0xc
1768 RTAX_ADVMSS = 0x8 1768 PTRACE_GETREGSET = 0x4204
1769 RTAX_CC_ALGO = 0x10 1769 PTRACE_GETSIGINFO = 0x4202
1770 RTAX_CWND = 0x7 1770 PTRACE_GETSIGMASK = 0x420a
1771 RTAX_FASTOPEN_NO_COOKIE = 0x11 1771 PTRACE_GET_SYSCALL_INFO = 0x420e
1772 RTAX_FEATURES = 0xc 1772 PTRACE_GET_THREAD_AREA = 0x19
1773 RTAX_FEATURE_ALLFRAG = 0x8 1773 PTRACE_GET_THREAD_AREA_3264 = 0xc4
1774 RTAX_FEATURE_ECN = 0x1 1774 PTRACE_GET_WATCH_REGS = 0xd0
1775 RTAX_FEATURE_MASK = 0xf 1775 PTRACE_INTERRUPT = 0x4207
1776 RTAX_FEATURE_SACK = 0x2 1776 PTRACE_KILL = 0x8
1777 RTAX_FEATURE_TIMESTAMP = 0x4 1777 PTRACE_LISTEN = 0x4208
1778 RTAX_HOPLIMIT = 0xa 1778 PTRACE_OLDSETOPTIONS = 0x15
1779 RTAX_INITCWND = 0xb 1779 PTRACE_O_EXITKILL = 0x100000
1780 RTAX_INITRWND = 0xe 1780 PTRACE_O_MASK = 0x3000ff
1781 RTAX_LOCK = 0x1 1781 PTRACE_O_SUSPEND_SECCOMP = 0x200000
1782 RTAX_MAX = 0x11 1782 PTRACE_O_TRACECLONE = 0x8
1783 RTAX_MTU = 0x2 1783 PTRACE_O_TRACEEXEC = 0x10
1784 RTAX_QUICKACK = 0xf 1784 PTRACE_O_TRACEEXIT = 0x40
1785 RTAX_REORDERING = 0x9 1785 PTRACE_O_TRACEFORK = 0x2
1786 RTAX_RTO_MIN = 0xd 1786 PTRACE_O_TRACESECCOMP = 0x80
1787 RTAX_RTT = 0x4 1787 PTRACE_O_TRACESYSGOOD = 0x1
1788 RTAX_RTTVAR = 0x5 1788 PTRACE_O_TRACEVFORK = 0x4
1789 RTAX_SSTHRESH = 0x6 1789 PTRACE_O_TRACEVFORKDONE = 0x20
1790 RTAX_UNSPEC = 0x0 1790 PTRACE_PEEKDATA = 0x2
1791 RTAX_WINDOW = 0x3 1791 PTRACE_PEEKDATA_3264 = 0xc1
1792 RTA_ALIGNTO = 0x4 1792 PTRACE_PEEKSIGINFO = 0x4209
1793 RTA_MAX = 0x1d 1793 PTRACE_PEEKSIGINFO_SHARED = 0x1
1794 RTCF_DIRECTSRC = 0x4000000 1794 PTRACE_PEEKTEXT = 0x1
1795 RTCF_DOREDIRECT = 0x1000000 1795 PTRACE_PEEKTEXT_3264 = 0xc0
1796 RTCF_LOG = 0x2000000 1796 PTRACE_PEEKUSR = 0x3
1797 RTCF_MASQ = 0x400000 1797 PTRACE_POKEDATA = 0x5
1798 RTCF_NAT = 0x800000 1798 PTRACE_POKEDATA_3264 = 0xc3
1799 RTCF_VALVE = 0x200000 1799 PTRACE_POKETEXT = 0x4
1800 RTC_AF = 0x20 1800 PTRACE_POKETEXT_3264 = 0xc2
1801 RTC_AIE_OFF = 0x20007002 1801 PTRACE_POKEUSR = 0x6
1802 RTC_AIE_ON = 0x20007001 1802 PTRACE_SECCOMP_GET_FILTER = 0x420c
1803 RTC_ALM_READ = 0x40247008 1803 PTRACE_SECCOMP_GET_METADATA = 0x420d
1804 RTC_ALM_SET = 0x80247007 1804 PTRACE_SEIZE = 0x4206
1805 RTC_EPOCH_READ = 0x4004700d 1805 PTRACE_SETFPREGS = 0xf
1806 RTC_EPOCH_SET = 0x8004700e 1806 PTRACE_SETOPTIONS = 0x4200
1807 RTC_IRQF = 0x80 1807 PTRACE_SETREGS = 0xd
1808 RTC_IRQP_READ = 0x4004700b 1808 PTRACE_SETREGSET = 0x4205
1809 RTC_IRQP_SET = 0x8004700c 1809 PTRACE_SETSIGINFO = 0x4203
1810 RTC_MAX_FREQ = 0x2000 1810 PTRACE_SETSIGMASK = 0x420b
1811 RTC_PF = 0x40 1811 PTRACE_SET_THREAD_AREA = 0x1a
1812 RTC_PIE_OFF = 0x20007006 1812 PTRACE_SET_WATCH_REGS = 0xd1
1813 RTC_PIE_ON = 0x20007005 1813 PTRACE_SINGLESTEP = 0x9
1814 RTC_PLL_GET = 0x401c7011 1814 PTRACE_SYSCALL = 0x18
1815 RTC_PLL_SET = 0x801c7012 1815 PTRACE_SYSCALL_INFO_ENTRY = 0x1
1816 RTC_RD_TIME = 0x40247009 1816 PTRACE_SYSCALL_INFO_EXIT = 0x2
1817 RTC_SET_TIME = 0x8024700a 1817 PTRACE_SYSCALL_INFO_NONE = 0x0
1818 RTC_UF = 0x10 1818 PTRACE_SYSCALL_INFO_SECCOMP = 0x3
1819 RTC_UIE_OFF = 0x20007004 1819 PTRACE_TRACEME = 0x0
1820 RTC_UIE_ON = 0x20007003 1820 QNX4_SUPER_MAGIC = 0x2f
1821 RTC_VL_CLR = 0x20007014 1821 QNX6_SUPER_MAGIC = 0x68191122
1822 RTC_VL_READ = 0x40047013 1822 RAMFS_MAGIC = 0x858458f6
1823 RTC_WIE_OFF = 0x20007010 1823 RDTGROUP_SUPER_MAGIC = 0x7655821
1824 RTC_WIE_ON = 0x2000700f 1824 REISERFS_SUPER_MAGIC = 0x52654973
1825 RTC_WKALM_RD = 0x40287010 1825 RENAME_EXCHANGE = 0x2
1826 RTC_WKALM_SET = 0x8028700f 1826 RENAME_NOREPLACE = 0x1
1827 RTF_ADDRCLASSMASK = 0xf8000000 1827 RENAME_WHITEOUT = 0x4
1828 RTF_ADDRCONF = 0x40000 1828 RLIMIT_AS = 0x6
1829 RTF_ALLONLINK = 0x20000 1829 RLIMIT_CORE = 0x4
1830 RTF_BROADCAST = 0x10000000 1830 RLIMIT_CPU = 0x0
1831 RTF_CACHE = 0x1000000 1831 RLIMIT_DATA = 0x2
1832 RTF_DEFAULT = 0x10000 1832 RLIMIT_FSIZE = 0x1
1833 RTF_DYNAMIC = 0x10 1833 RLIMIT_LOCKS = 0xa
1834 RTF_FLOW = 0x2000000 1834 RLIMIT_MEMLOCK = 0x9
1835 RTF_GATEWAY = 0x2 1835 RLIMIT_MSGQUEUE = 0xc
1836 RTF_HOST = 0x4 1836 RLIMIT_NICE = 0xd
1837 RTF_INTERFACE = 0x40000000 1837 RLIMIT_NOFILE = 0x5
1838 RTF_IRTT = 0x100 1838 RLIMIT_NPROC = 0x8
1839 RTF_LINKRT = 0x100000 1839 RLIMIT_RSS = 0x7
1840 RTF_LOCAL = 0x80000000 1840 RLIMIT_RTPRIO = 0xe
1841 RTF_MODIFIED = 0x20 1841 RLIMIT_RTTIME = 0xf
1842 RTF_MSS = 0x40 1842 RLIMIT_SIGPENDING = 0xb
1843 RTF_MTU = 0x40 1843 RLIMIT_STACK = 0x3
1844 RTF_MULTICAST = 0x20000000 1844 RLIM_INFINITY = 0xffffffffffffffff
1845 RTF_NAT = 0x8000000 1845 RNDADDENTROPY = 0x80085203
1846 RTF_NOFORWARD = 0x1000 1846 RNDADDTOENTCNT = 0x80045201
1847 RTF_NONEXTHOP = 0x200000 1847 RNDCLEARPOOL = 0x20005206
1848 RTF_NOPMTUDISC = 0x4000 1848 RNDGETENTCNT = 0x40045200
1849 RTF_POLICY = 0x4000000 1849 RNDGETPOOL = 0x40085202
1850 RTF_REINSTATE = 0x8 1850 RNDRESEEDCRNG = 0x20005207
1851 RTF_REJECT = 0x200 1851 RNDZAPENTCNT = 0x20005204
1852 RTF_STATIC = 0x400 1852 RTAX_ADVMSS = 0x8
1853 RTF_THROW = 0x2000 1853 RTAX_CC_ALGO = 0x10
1854 RTF_UP = 0x1 1854 RTAX_CWND = 0x7
1855 RTF_WINDOW = 0x80 1855 RTAX_FASTOPEN_NO_COOKIE = 0x11
1856 RTF_XRESOLVE = 0x800 1856 RTAX_FEATURES = 0xc
1857 RTM_BASE = 0x10 1857 RTAX_FEATURE_ALLFRAG = 0x8
1858 RTM_DELACTION = 0x31 1858 RTAX_FEATURE_ECN = 0x1
1859 RTM_DELADDR = 0x15 1859 RTAX_FEATURE_MASK = 0xf
1860 RTM_DELADDRLABEL = 0x49 1860 RTAX_FEATURE_SACK = 0x2
1861 RTM_DELCHAIN = 0x65 1861 RTAX_FEATURE_TIMESTAMP = 0x4
1862 RTM_DELLINK = 0x11 1862 RTAX_HOPLIMIT = 0xa
1863 RTM_DELMDB = 0x55 1863 RTAX_INITCWND = 0xb
1864 RTM_DELNEIGH = 0x1d 1864 RTAX_INITRWND = 0xe
1865 RTM_DELNETCONF = 0x51 1865 RTAX_LOCK = 0x1
1866 RTM_DELNSID = 0x59 1866 RTAX_MAX = 0x11
1867 RTM_DELQDISC = 0x25 1867 RTAX_MTU = 0x2
1868 RTM_DELROUTE = 0x19 1868 RTAX_QUICKACK = 0xf
1869 RTM_DELRULE = 0x21 1869 RTAX_REORDERING = 0x9
1870 RTM_DELTCLASS = 0x29 1870 RTAX_RTO_MIN = 0xd
1871 RTM_DELTFILTER = 0x2d 1871 RTAX_RTT = 0x4
1872 RTM_F_CLONED = 0x200 1872 RTAX_RTTVAR = 0x5
1873 RTM_F_EQUALIZE = 0x400 1873 RTAX_SSTHRESH = 0x6
1874 RTM_F_FIB_MATCH = 0x2000 1874 RTAX_UNSPEC = 0x0
1875 RTM_F_LOOKUP_TABLE = 0x1000 1875 RTAX_WINDOW = 0x3
1876 RTM_F_NOTIFY = 0x100 1876 RTA_ALIGNTO = 0x4
1877 RTM_F_PREFIX = 0x800 1877 RTA_MAX = 0x1e
1878 RTM_GETACTION = 0x32 1878 RTCF_DIRECTSRC = 0x4000000
1879 RTM_GETADDR = 0x16 1879 RTCF_DOREDIRECT = 0x1000000
1880 RTM_GETADDRLABEL = 0x4a 1880 RTCF_LOG = 0x2000000
1881 RTM_GETANYCAST = 0x3e 1881 RTCF_MASQ = 0x400000
1882 RTM_GETCHAIN = 0x66 1882 RTCF_NAT = 0x800000
1883 RTM_GETDCB = 0x4e 1883 RTCF_VALVE = 0x200000
1884 RTM_GETLINK = 0x12 1884 RTC_AF = 0x20
1885 RTM_GETMDB = 0x56 1885 RTC_AIE_OFF = 0x20007002
1886 RTM_GETMULTICAST = 0x3a 1886 RTC_AIE_ON = 0x20007001
1887 RTM_GETNEIGH = 0x1e 1887 RTC_ALM_READ = 0x40247008
1888 RTM_GETNEIGHTBL = 0x42 1888 RTC_ALM_SET = 0x80247007
1889 RTM_GETNETCONF = 0x52 1889 RTC_EPOCH_READ = 0x4004700d
1890 RTM_GETNSID = 0x5a 1890 RTC_EPOCH_SET = 0x8004700e
1891 RTM_GETQDISC = 0x26 1891 RTC_IRQF = 0x80
1892 RTM_GETROUTE = 0x1a 1892 RTC_IRQP_READ = 0x4004700b
1893 RTM_GETRULE = 0x22 1893 RTC_IRQP_SET = 0x8004700c
1894 RTM_GETSTATS = 0x5e 1894 RTC_MAX_FREQ = 0x2000
1895 RTM_GETTCLASS = 0x2a 1895 RTC_PF = 0x40
1896 RTM_GETTFILTER = 0x2e 1896 RTC_PIE_OFF = 0x20007006
1897 RTM_MAX = 0x67 1897 RTC_PIE_ON = 0x20007005
1898 RTM_NEWACTION = 0x30 1898 RTC_PLL_GET = 0x401c7011
1899 RTM_NEWADDR = 0x14 1899 RTC_PLL_SET = 0x801c7012
1900 RTM_NEWADDRLABEL = 0x48 1900 RTC_RD_TIME = 0x40247009
1901 RTM_NEWCACHEREPORT = 0x60 1901 RTC_SET_TIME = 0x8024700a
1902 RTM_NEWCHAIN = 0x64 1902 RTC_UF = 0x10
1903 RTM_NEWLINK = 0x10 1903 RTC_UIE_OFF = 0x20007004
1904 RTM_NEWMDB = 0x54 1904 RTC_UIE_ON = 0x20007003
1905 RTM_NEWNDUSEROPT = 0x44 1905 RTC_VL_CLR = 0x20007014
1906 RTM_NEWNEIGH = 0x1c 1906 RTC_VL_READ = 0x40047013
1907 RTM_NEWNEIGHTBL = 0x40 1907 RTC_WIE_OFF = 0x20007010
1908 RTM_NEWNETCONF = 0x50 1908 RTC_WIE_ON = 0x2000700f
1909 RTM_NEWNSID = 0x58 1909 RTC_WKALM_RD = 0x40287010
1910 RTM_NEWPREFIX = 0x34 1910 RTC_WKALM_SET = 0x8028700f
1911 RTM_NEWQDISC = 0x24 1911 RTF_ADDRCLASSMASK = 0xf8000000
1912 RTM_NEWROUTE = 0x18 1912 RTF_ADDRCONF = 0x40000
1913 RTM_NEWRULE = 0x20 1913 RTF_ALLONLINK = 0x20000
1914 RTM_NEWSTATS = 0x5c 1914 RTF_BROADCAST = 0x10000000
1915 RTM_NEWTCLASS = 0x28 1915 RTF_CACHE = 0x1000000
1916 RTM_NEWTFILTER = 0x2c 1916 RTF_DEFAULT = 0x10000
1917 RTM_NR_FAMILIES = 0x16 1917 RTF_DYNAMIC = 0x10
1918 RTM_NR_MSGTYPES = 0x58 1918 RTF_FLOW = 0x2000000
1919 RTM_SETDCB = 0x4f 1919 RTF_GATEWAY = 0x2
1920 RTM_SETLINK = 0x13 1920 RTF_HOST = 0x4
1921 RTM_SETNEIGHTBL = 0x43 1921 RTF_INTERFACE = 0x40000000
1922 RTNH_ALIGNTO = 0x4 1922 RTF_IRTT = 0x100
1923 RTNH_COMPARE_MASK = 0x19 1923 RTF_LINKRT = 0x100000
1924 RTNH_F_DEAD = 0x1 1924 RTF_LOCAL = 0x80000000
1925 RTNH_F_LINKDOWN = 0x10 1925 RTF_MODIFIED = 0x20
1926 RTNH_F_OFFLOAD = 0x8 1926 RTF_MSS = 0x40
1927 RTNH_F_ONLINK = 0x4 1927 RTF_MTU = 0x40
1928 RTNH_F_PERVASIVE = 0x2 1928 RTF_MULTICAST = 0x20000000
1929 RTNH_F_UNRESOLVED = 0x20 1929 RTF_NAT = 0x8000000
1930 RTN_MAX = 0xb 1930 RTF_NOFORWARD = 0x1000
1931 RTPROT_BABEL = 0x2a 1931 RTF_NONEXTHOP = 0x200000
1932 RTPROT_BGP = 0xba 1932 RTF_NOPMTUDISC = 0x4000
1933 RTPROT_BIRD = 0xc 1933 RTF_POLICY = 0x4000000
1934 RTPROT_BOOT = 0x3 1934 RTF_REINSTATE = 0x8
1935 RTPROT_DHCP = 0x10 1935 RTF_REJECT = 0x200
1936 RTPROT_DNROUTED = 0xd 1936 RTF_STATIC = 0x400
1937 RTPROT_EIGRP = 0xc0 1937 RTF_THROW = 0x2000
1938 RTPROT_GATED = 0x8 1938 RTF_UP = 0x1
1939 RTPROT_ISIS = 0xbb 1939 RTF_WINDOW = 0x80
1940 RTPROT_KERNEL = 0x2 1940 RTF_XRESOLVE = 0x800
1941 RTPROT_MROUTED = 0x11 1941 RTMGRP_DECnet_IFADDR = 0x1000
1942 RTPROT_MRT = 0xa 1942 RTMGRP_DECnet_ROUTE = 0x4000
1943 RTPROT_NTK = 0xf 1943 RTMGRP_IPV4_IFADDR = 0x10
1944 RTPROT_OSPF = 0xbc 1944 RTMGRP_IPV4_MROUTE = 0x20
1945 RTPROT_RA = 0x9 1945 RTMGRP_IPV4_ROUTE = 0x40
1946 RTPROT_REDIRECT = 0x1 1946 RTMGRP_IPV4_RULE = 0x80
1947 RTPROT_RIP = 0xbd 1947 RTMGRP_IPV6_IFADDR = 0x100
1948 RTPROT_STATIC = 0x4 1948 RTMGRP_IPV6_IFINFO = 0x800
1949 RTPROT_UNSPEC = 0x0 1949 RTMGRP_IPV6_MROUTE = 0x200
1950 RTPROT_XORP = 0xe 1950 RTMGRP_IPV6_PREFIX = 0x20000
1951 RTPROT_ZEBRA = 0xb 1951 RTMGRP_IPV6_ROUTE = 0x400
1952 RT_CLASS_DEFAULT = 0xfd 1952 RTMGRP_LINK = 0x1
1953 RT_CLASS_LOCAL = 0xff 1953 RTMGRP_NEIGH = 0x4
1954 RT_CLASS_MAIN = 0xfe 1954 RTMGRP_NOTIFY = 0x2
1955 RT_CLASS_MAX = 0xff 1955 RTMGRP_TC = 0x8
1956 RT_CLASS_UNSPEC = 0x0 1956 RTM_BASE = 0x10
1957 RUSAGE_CHILDREN = -0x1 1957 RTM_DELACTION = 0x31
1958 RUSAGE_SELF = 0x0 1958 RTM_DELADDR = 0x15
1959 RUSAGE_THREAD = 0x1 1959 RTM_DELADDRLABEL = 0x49
1960 SCM_CREDENTIALS = 0x2 1960 RTM_DELCHAIN = 0x65
1961 SCM_RIGHTS = 0x1 1961 RTM_DELLINK = 0x11
1962 SCM_TIMESTAMP = 0x1d 1962 RTM_DELLINKPROP = 0x6d
1963 SCM_TIMESTAMPING = 0x25 1963 RTM_DELMDB = 0x55
1964 SCM_TIMESTAMPING_OPT_STATS = 0x36 1964 RTM_DELNEIGH = 0x1d
1965 SCM_TIMESTAMPING_PKTINFO = 0x3a 1965 RTM_DELNETCONF = 0x51
1966 SCM_TIMESTAMPNS = 0x23 1966 RTM_DELNEXTHOP = 0x69
1967 SCM_TXTIME = 0x3d 1967 RTM_DELNSID = 0x59
1968 SCM_WIFI_STATUS = 0x29 1968 RTM_DELQDISC = 0x25
1969 SC_LOG_FLUSH = 0x100000 1969 RTM_DELROUTE = 0x19
1970 SECCOMP_MODE_DISABLED = 0x0 1970 RTM_DELRULE = 0x21
1971 SECCOMP_MODE_FILTER = 0x2 1971 RTM_DELTCLASS = 0x29
1972 SECCOMP_MODE_STRICT = 0x1 1972 RTM_DELTFILTER = 0x2d
1973 SECURITYFS_MAGIC = 0x73636673 1973 RTM_F_CLONED = 0x200
1974 SELINUX_MAGIC = 0xf97cff8c 1974 RTM_F_EQUALIZE = 0x400
1975 SFD_CLOEXEC = 0x80000 1975 RTM_F_FIB_MATCH = 0x2000
1976 SFD_NONBLOCK = 0x80 1976 RTM_F_LOOKUP_TABLE = 0x1000
1977 SHUT_RD = 0x0 1977 RTM_F_NOTIFY = 0x100
1978 SHUT_RDWR = 0x2 1978 RTM_F_PREFIX = 0x800
1979 SHUT_WR = 0x1 1979 RTM_GETACTION = 0x32
1980 SIOCADDDLCI = 0x8980 1980 RTM_GETADDR = 0x16
1981 SIOCADDMULTI = 0x8931 1981 RTM_GETADDRLABEL = 0x4a
1982 SIOCADDRT = 0x890b 1982 RTM_GETANYCAST = 0x3e
1983 SIOCATMARK = 0x40047307 1983 RTM_GETCHAIN = 0x66
1984 SIOCBONDCHANGEACTIVE = 0x8995 1984 RTM_GETDCB = 0x4e
1985 SIOCBONDENSLAVE = 0x8990 1985 RTM_GETLINK = 0x12
1986 SIOCBONDINFOQUERY = 0x8994 1986 RTM_GETLINKPROP = 0x6e
1987 SIOCBONDRELEASE = 0x8991 1987 RTM_GETMDB = 0x56
1988 SIOCBONDSETHWADDR = 0x8992 1988 RTM_GETMULTICAST = 0x3a
1989 SIOCBONDSLAVEINFOQUERY = 0x8993 1989 RTM_GETNEIGH = 0x1e
1990 SIOCBRADDBR = 0x89a0 1990 RTM_GETNEIGHTBL = 0x42
1991 SIOCBRADDIF = 0x89a2 1991 RTM_GETNETCONF = 0x52
1992 SIOCBRDELBR = 0x89a1 1992 RTM_GETNEXTHOP = 0x6a
1993 SIOCBRDELIF = 0x89a3 1993 RTM_GETNSID = 0x5a
1994 SIOCDARP = 0x8953 1994 RTM_GETQDISC = 0x26
1995 SIOCDELDLCI = 0x8981 1995 RTM_GETROUTE = 0x1a
1996 SIOCDELMULTI = 0x8932 1996 RTM_GETRULE = 0x22
1997 SIOCDELRT = 0x890c 1997 RTM_GETSTATS = 0x5e
1998 SIOCDEVPRIVATE = 0x89f0 1998 RTM_GETTCLASS = 0x2a
1999 SIOCDIFADDR = 0x8936 1999 RTM_GETTFILTER = 0x2e
2000 SIOCDRARP = 0x8960 2000 RTM_MAX = 0x6f
2001 SIOCETHTOOL = 0x8946 2001 RTM_NEWACTION = 0x30
2002 SIOCGARP = 0x8954 2002 RTM_NEWADDR = 0x14
2003 SIOCGHWTSTAMP = 0x89b1 2003 RTM_NEWADDRLABEL = 0x48
2004 SIOCGIFADDR = 0x8915 2004 RTM_NEWCACHEREPORT = 0x60
2005 SIOCGIFBR = 0x8940 2005 RTM_NEWCHAIN = 0x64
2006 SIOCGIFBRDADDR = 0x8919 2006 RTM_NEWLINK = 0x10
2007 SIOCGIFCONF = 0x8912 2007 RTM_NEWLINKPROP = 0x6c
2008 SIOCGIFCOUNT = 0x8938 2008 RTM_NEWMDB = 0x54
2009 SIOCGIFDSTADDR = 0x8917 2009 RTM_NEWNDUSEROPT = 0x44
2010 SIOCGIFENCAP = 0x8925 2010 RTM_NEWNEIGH = 0x1c
2011 SIOCGIFFLAGS = 0x8913 2011 RTM_NEWNEIGHTBL = 0x40
2012 SIOCGIFHWADDR = 0x8927 2012 RTM_NEWNETCONF = 0x50
2013 SIOCGIFINDEX = 0x8933 2013 RTM_NEWNEXTHOP = 0x68
2014 SIOCGIFMAP = 0x8970 2014 RTM_NEWNSID = 0x58
2015 SIOCGIFMEM = 0x891f 2015 RTM_NEWPREFIX = 0x34
2016 SIOCGIFMETRIC = 0x891d 2016 RTM_NEWQDISC = 0x24
2017 SIOCGIFMTU = 0x8921 2017 RTM_NEWROUTE = 0x18
2018 SIOCGIFNAME = 0x8910 2018 RTM_NEWRULE = 0x20
2019 SIOCGIFNETMASK = 0x891b 2019 RTM_NEWSTATS = 0x5c
2020 SIOCGIFPFLAGS = 0x8935 2020 RTM_NEWTCLASS = 0x28
2021 SIOCGIFSLAVE = 0x8929 2021 RTM_NEWTFILTER = 0x2c
2022 SIOCGIFTXQLEN = 0x8942 2022 RTM_NR_FAMILIES = 0x18
2023 SIOCGIFVLAN = 0x8982 2023 RTM_NR_MSGTYPES = 0x60
2024 SIOCGMIIPHY = 0x8947 2024 RTM_SETDCB = 0x4f
2025 SIOCGMIIREG = 0x8948 2025 RTM_SETLINK = 0x13
2026 SIOCGPGRP = 0x40047309 2026 RTM_SETNEIGHTBL = 0x43
2027 SIOCGPPPCSTATS = 0x89f2 2027 RTNH_ALIGNTO = 0x4
2028 SIOCGPPPSTATS = 0x89f0 2028 RTNH_COMPARE_MASK = 0x19
2029 SIOCGPPPVER = 0x89f1 2029 RTNH_F_DEAD = 0x1
2030 SIOCGRARP = 0x8961 2030 RTNH_F_LINKDOWN = 0x10
2031 SIOCGSKNS = 0x894c 2031 RTNH_F_OFFLOAD = 0x8
2032 SIOCGSTAMP = 0x8906 2032 RTNH_F_ONLINK = 0x4
2033 SIOCGSTAMPNS = 0x8907 2033 RTNH_F_PERVASIVE = 0x2
2034 SIOCGSTAMPNS_NEW = 0x40108907 2034 RTNH_F_UNRESOLVED = 0x20
2035 SIOCGSTAMPNS_OLD = 0x8907 2035 RTN_MAX = 0xb
2036 SIOCGSTAMP_NEW = 0x40108906 2036 RTPROT_BABEL = 0x2a
2037 SIOCGSTAMP_OLD = 0x8906 2037 RTPROT_BGP = 0xba
2038 SIOCINQ = 0x467f 2038 RTPROT_BIRD = 0xc
2039 SIOCOUTQ = 0x7472 2039 RTPROT_BOOT = 0x3
2040 SIOCOUTQNSD = 0x894b 2040 RTPROT_DHCP = 0x10
2041 SIOCPROTOPRIVATE = 0x89e0 2041 RTPROT_DNROUTED = 0xd
2042 SIOCRTMSG = 0x890d 2042 RTPROT_EIGRP = 0xc0
2043 SIOCSARP = 0x8955 2043 RTPROT_GATED = 0x8
2044 SIOCSHWTSTAMP = 0x89b0 2044 RTPROT_ISIS = 0xbb
2045 SIOCSIFADDR = 0x8916 2045 RTPROT_KERNEL = 0x2
2046 SIOCSIFBR = 0x8941 2046 RTPROT_MROUTED = 0x11
2047 SIOCSIFBRDADDR = 0x891a 2047 RTPROT_MRT = 0xa
2048 SIOCSIFDSTADDR = 0x8918 2048 RTPROT_NTK = 0xf
2049 SIOCSIFENCAP = 0x8926 2049 RTPROT_OSPF = 0xbc
2050 SIOCSIFFLAGS = 0x8914 2050 RTPROT_RA = 0x9
2051 SIOCSIFHWADDR = 0x8924 2051 RTPROT_REDIRECT = 0x1
2052 SIOCSIFHWBROADCAST = 0x8937 2052 RTPROT_RIP = 0xbd
2053 SIOCSIFLINK = 0x8911 2053 RTPROT_STATIC = 0x4
2054 SIOCSIFMAP = 0x8971 2054 RTPROT_UNSPEC = 0x0
2055 SIOCSIFMEM = 0x8920 2055 RTPROT_XORP = 0xe
2056 SIOCSIFMETRIC = 0x891e 2056 RTPROT_ZEBRA = 0xb
2057 SIOCSIFMTU = 0x8922 2057 RT_CLASS_DEFAULT = 0xfd
2058 SIOCSIFNAME = 0x8923 2058 RT_CLASS_LOCAL = 0xff
2059 SIOCSIFNETMASK = 0x891c 2059 RT_CLASS_MAIN = 0xfe
2060 SIOCSIFPFLAGS = 0x8934 2060 RT_CLASS_MAX = 0xff
2061 SIOCSIFSLAVE = 0x8930 2061 RT_CLASS_UNSPEC = 0x0
2062 SIOCSIFTXQLEN = 0x8943 2062 RUSAGE_CHILDREN = -0x1
2063 SIOCSIFVLAN = 0x8983 2063 RUSAGE_SELF = 0x0
2064 SIOCSMIIREG = 0x8949 2064 RUSAGE_THREAD = 0x1
2065 SIOCSPGRP = 0x80047308 2065 RWF_APPEND = 0x10
2066 SIOCSRARP = 0x8962 2066 RWF_DSYNC = 0x2
2067 SIOCWANDEV = 0x894a 2067 RWF_HIPRI = 0x1
2068 SMACK_MAGIC = 0x43415d53 2068 RWF_NOWAIT = 0x8
2069 SMART_AUTOSAVE = 0xd2 2069 RWF_SUPPORTED = 0x1f
2070 SMART_AUTO_OFFLINE = 0xdb 2070 RWF_SYNC = 0x4
2071 SMART_DISABLE = 0xd9 2071 RWF_WRITE_LIFE_NOT_SET = 0x0
2072 SMART_ENABLE = 0xd8 2072 SCM_CREDENTIALS = 0x2
2073 SMART_HCYL_PASS = 0xc2 2073 SCM_RIGHTS = 0x1
2074 SMART_IMMEDIATE_OFFLINE = 0xd4 2074 SCM_TIMESTAMP = 0x1d
2075 SMART_LCYL_PASS = 0x4f 2075 SCM_TIMESTAMPING = 0x25
2076 SMART_READ_LOG_SECTOR = 0xd5 2076 SCM_TIMESTAMPING_OPT_STATS = 0x36
2077 SMART_READ_THRESHOLDS = 0xd1 2077 SCM_TIMESTAMPING_PKTINFO = 0x3a
2078 SMART_READ_VALUES = 0xd0 2078 SCM_TIMESTAMPNS = 0x23
2079 SMART_SAVE = 0xd3 2079 SCM_TXTIME = 0x3d
2080 SMART_STATUS = 0xda 2080 SCM_WIFI_STATUS = 0x29
2081 SMART_WRITE_LOG_SECTOR = 0xd6 2081 SC_LOG_FLUSH = 0x100000
2082 SMART_WRITE_THRESHOLDS = 0xd7 2082 SECCOMP_MODE_DISABLED = 0x0
2083 SMB_SUPER_MAGIC = 0x517b 2083 SECCOMP_MODE_FILTER = 0x2
2084 SOCKFS_MAGIC = 0x534f434b 2084 SECCOMP_MODE_STRICT = 0x1
2085 SOCK_CLOEXEC = 0x80000 2085 SECURITYFS_MAGIC = 0x73636673
2086 SOCK_DCCP = 0x6 2086 SELINUX_MAGIC = 0xf97cff8c
2087 SOCK_DGRAM = 0x1 2087 SFD_CLOEXEC = 0x80000
2088 SOCK_IOC_TYPE = 0x89 2088 SFD_NONBLOCK = 0x80
2089 SOCK_NONBLOCK = 0x80 2089 SHUT_RD = 0x0
2090 SOCK_PACKET = 0xa 2090 SHUT_RDWR = 0x2
2091 SOCK_RAW = 0x3 2091 SHUT_WR = 0x1
2092 SOCK_RDM = 0x4 2092 SIOCADDDLCI = 0x8980
2093 SOCK_SEQPACKET = 0x5 2093 SIOCADDMULTI = 0x8931
2094 SOCK_STREAM = 0x2 2094 SIOCADDRT = 0x890b
2095 SOL_AAL = 0x109 2095 SIOCATMARK = 0x40047307
2096 SOL_ALG = 0x117 2096 SIOCBONDCHANGEACTIVE = 0x8995
2097 SOL_ATM = 0x108 2097 SIOCBONDENSLAVE = 0x8990
2098 SOL_CAIF = 0x116 2098 SIOCBONDINFOQUERY = 0x8994
2099 SOL_CAN_BASE = 0x64 2099 SIOCBONDRELEASE = 0x8991
2100 SOL_DCCP = 0x10d 2100 SIOCBONDSETHWADDR = 0x8992
2101 SOL_DECNET = 0x105 2101 SIOCBONDSLAVEINFOQUERY = 0x8993
2102 SOL_ICMPV6 = 0x3a 2102 SIOCBRADDBR = 0x89a0
2103 SOL_IP = 0x0 2103 SIOCBRADDIF = 0x89a2
2104 SOL_IPV6 = 0x29 2104 SIOCBRDELBR = 0x89a1
2105 SOL_IRDA = 0x10a 2105 SIOCBRDELIF = 0x89a3
2106 SOL_IUCV = 0x115 2106 SIOCDARP = 0x8953
2107 SOL_KCM = 0x119 2107 SIOCDELDLCI = 0x8981
2108 SOL_LLC = 0x10c 2108 SIOCDELMULTI = 0x8932
2109 SOL_NETBEUI = 0x10b 2109 SIOCDELRT = 0x890c
2110 SOL_NETLINK = 0x10e 2110 SIOCDEVPRIVATE = 0x89f0
2111 SOL_NFC = 0x118 2111 SIOCDIFADDR = 0x8936
2112 SOL_PACKET = 0x107 2112 SIOCDRARP = 0x8960
2113 SOL_PNPIPE = 0x113 2113 SIOCETHTOOL = 0x8946
2114 SOL_PPPOL2TP = 0x111 2114 SIOCGARP = 0x8954
2115 SOL_RAW = 0xff 2115 SIOCGETLINKNAME = 0x89e0
2116 SOL_RDS = 0x114 2116 SIOCGETNODEID = 0x89e1
2117 SOL_RXRPC = 0x110 2117 SIOCGHWTSTAMP = 0x89b1
2118 SOL_SOCKET = 0xffff 2118 SIOCGIFADDR = 0x8915
2119 SOL_TCP = 0x6 2119 SIOCGIFBR = 0x8940
2120 SOL_TIPC = 0x10f 2120 SIOCGIFBRDADDR = 0x8919
2121 SOL_TLS = 0x11a 2121 SIOCGIFCONF = 0x8912
2122 SOL_X25 = 0x106 2122 SIOCGIFCOUNT = 0x8938
2123 SOL_XDP = 0x11b 2123 SIOCGIFDSTADDR = 0x8917
2124 SOMAXCONN = 0x80 2124 SIOCGIFENCAP = 0x8925
2125 SO_ACCEPTCONN = 0x1009 2125 SIOCGIFFLAGS = 0x8913
2126 SO_ATTACH_BPF = 0x32 2126 SIOCGIFHWADDR = 0x8927
2127 SO_ATTACH_FILTER = 0x1a 2127 SIOCGIFINDEX = 0x8933
2128 SO_ATTACH_REUSEPORT_CBPF = 0x33 2128 SIOCGIFMAP = 0x8970
2129 SO_ATTACH_REUSEPORT_EBPF = 0x34 2129 SIOCGIFMEM = 0x891f
2130 SO_BINDTODEVICE = 0x19 2130 SIOCGIFMETRIC = 0x891d
2131 SO_BINDTOIFINDEX = 0x3e 2131 SIOCGIFMTU = 0x8921
2132 SO_BPF_EXTENSIONS = 0x30 2132 SIOCGIFNAME = 0x8910
2133 SO_BROADCAST = 0x20 2133 SIOCGIFNETMASK = 0x891b
2134 SO_BSDCOMPAT = 0xe 2134 SIOCGIFPFLAGS = 0x8935
2135 SO_BUSY_POLL = 0x2e 2135 SIOCGIFSLAVE = 0x8929
2136 SO_CNX_ADVICE = 0x35 2136 SIOCGIFTXQLEN = 0x8942
2137 SO_COOKIE = 0x39 2137 SIOCGIFVLAN = 0x8982
2138 SO_DEBUG = 0x1 2138 SIOCGMIIPHY = 0x8947
2139 SO_DETACH_BPF = 0x1b 2139 SIOCGMIIREG = 0x8948
2140 SO_DETACH_FILTER = 0x1b 2140 SIOCGPGRP = 0x40047309
2141 SO_DOMAIN = 0x1029 2141 SIOCGPPPCSTATS = 0x89f2
2142 SO_DONTROUTE = 0x10 2142 SIOCGPPPSTATS = 0x89f0
2143 SO_EE_CODE_TXTIME_INVALID_PARAM = 0x1 2143 SIOCGPPPVER = 0x89f1
2144 SO_EE_CODE_TXTIME_MISSED = 0x2 2144 SIOCGRARP = 0x8961
2145 SO_EE_CODE_ZEROCOPY_COPIED = 0x1 2145 SIOCGSKNS = 0x894c
2146 SO_EE_ORIGIN_ICMP = 0x2 2146 SIOCGSTAMP = 0x8906
2147 SO_EE_ORIGIN_ICMP6 = 0x3 2147 SIOCGSTAMPNS = 0x8907
2148 SO_EE_ORIGIN_LOCAL = 0x1 2148 SIOCGSTAMPNS_NEW = 0x40108907
2149 SO_EE_ORIGIN_NONE = 0x0 2149 SIOCGSTAMPNS_OLD = 0x8907
2150 SO_EE_ORIGIN_TIMESTAMPING = 0x4 2150 SIOCGSTAMP_NEW = 0x40108906
2151 SO_EE_ORIGIN_TXSTATUS = 0x4 2151 SIOCGSTAMP_OLD = 0x8906
2152 SO_EE_ORIGIN_TXTIME = 0x6 2152 SIOCINQ = 0x467f
2153 SO_EE_ORIGIN_ZEROCOPY = 0x5 2153 SIOCOUTQ = 0x7472
2154 SO_ERROR = 0x1007 2154 SIOCOUTQNSD = 0x894b
2155 SO_GET_FILTER = 0x1a 2155 SIOCPROTOPRIVATE = 0x89e0
2156 SO_INCOMING_CPU = 0x31 2156 SIOCRTMSG = 0x890d
2157 SO_INCOMING_NAPI_ID = 0x38 2157 SIOCSARP = 0x8955
2158 SO_KEEPALIVE = 0x8 2158 SIOCSHWTSTAMP = 0x89b0
2159 SO_LINGER = 0x80 2159 SIOCSIFADDR = 0x8916
2160 SO_LOCK_FILTER = 0x2c 2160 SIOCSIFBR = 0x8941
2161 SO_MARK = 0x24 2161 SIOCSIFBRDADDR = 0x891a
2162 SO_MAX_PACING_RATE = 0x2f 2162 SIOCSIFDSTADDR = 0x8918
2163 SO_MEMINFO = 0x37 2163 SIOCSIFENCAP = 0x8926
2164 SO_NOFCS = 0x2b 2164 SIOCSIFFLAGS = 0x8914
2165 SO_NO_CHECK = 0xb 2165 SIOCSIFHWADDR = 0x8924
2166 SO_OOBINLINE = 0x100 2166 SIOCSIFHWBROADCAST = 0x8937
2167 SO_PASSCRED = 0x11 2167 SIOCSIFLINK = 0x8911
2168 SO_PASSSEC = 0x22 2168 SIOCSIFMAP = 0x8971
2169 SO_PEEK_OFF = 0x2a 2169 SIOCSIFMEM = 0x8920
2170 SO_PEERCRED = 0x12 2170 SIOCSIFMETRIC = 0x891e
2171 SO_PEERGROUPS = 0x3b 2171 SIOCSIFMTU = 0x8922
2172 SO_PEERNAME = 0x1c 2172 SIOCSIFNAME = 0x8923
2173 SO_PEERSEC = 0x1e 2173 SIOCSIFNETMASK = 0x891c
2174 SO_PRIORITY = 0xc 2174 SIOCSIFPFLAGS = 0x8934
2175 SO_PROTOCOL = 0x1028 2175 SIOCSIFSLAVE = 0x8930
2176 SO_RCVBUF = 0x1002 2176 SIOCSIFTXQLEN = 0x8943
2177 SO_RCVBUFFORCE = 0x21 2177 SIOCSIFVLAN = 0x8983
2178 SO_RCVLOWAT = 0x1004 2178 SIOCSMIIREG = 0x8949
2179 SO_RCVTIMEO = 0x1006 2179 SIOCSPGRP = 0x80047308
2180 SO_RCVTIMEO_NEW = 0x42 2180 SIOCSRARP = 0x8962
2181 SO_RCVTIMEO_OLD = 0x1006 2181 SIOCWANDEV = 0x894a
2182 SO_REUSEADDR = 0x4 2182 SMACK_MAGIC = 0x43415d53
2183 SO_REUSEPORT = 0x200 2183 SMART_AUTOSAVE = 0xd2
2184 SO_RXQ_OVFL = 0x28 2184 SMART_AUTO_OFFLINE = 0xdb
2185 SO_SECURITY_AUTHENTICATION = 0x16 2185 SMART_DISABLE = 0xd9
2186 SO_SECURITY_ENCRYPTION_NETWORK = 0x18 2186 SMART_ENABLE = 0xd8
2187 SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17 2187 SMART_HCYL_PASS = 0xc2
2188 SO_SELECT_ERR_QUEUE = 0x2d 2188 SMART_IMMEDIATE_OFFLINE = 0xd4
2189 SO_SNDBUF = 0x1001 2189 SMART_LCYL_PASS = 0x4f
2190 SO_SNDBUFFORCE = 0x1f 2190 SMART_READ_LOG_SECTOR = 0xd5
2191 SO_SNDLOWAT = 0x1003 2191 SMART_READ_THRESHOLDS = 0xd1
2192 SO_SNDTIMEO = 0x1005 2192 SMART_READ_VALUES = 0xd0
2193 SO_SNDTIMEO_NEW = 0x43 2193 SMART_SAVE = 0xd3
2194 SO_SNDTIMEO_OLD = 0x1005 2194 SMART_STATUS = 0xda
2195 SO_STYLE = 0x1008 2195 SMART_WRITE_LOG_SECTOR = 0xd6
2196 SO_TIMESTAMP = 0x1d 2196 SMART_WRITE_THRESHOLDS = 0xd7
2197 SO_TIMESTAMPING = 0x25 2197 SMB_SUPER_MAGIC = 0x517b
2198 SO_TIMESTAMPING_NEW = 0x41 2198 SOCKFS_MAGIC = 0x534f434b
2199 SO_TIMESTAMPING_OLD = 0x25 2199 SOCK_CLOEXEC = 0x80000
2200 SO_TIMESTAMPNS = 0x23 2200 SOCK_DCCP = 0x6
2201 SO_TIMESTAMPNS_NEW = 0x40 2201 SOCK_DGRAM = 0x1
2202 SO_TIMESTAMPNS_OLD = 0x23 2202 SOCK_IOC_TYPE = 0x89
2203 SO_TIMESTAMP_NEW = 0x3f 2203 SOCK_NONBLOCK = 0x80
2204 SO_TIMESTAMP_OLD = 0x1d 2204 SOCK_PACKET = 0xa
2205 SO_TXTIME = 0x3d 2205 SOCK_RAW = 0x3
2206 SO_TYPE = 0x1008 2206 SOCK_RDM = 0x4
2207 SO_VM_SOCKETS_BUFFER_MAX_SIZE = 0x2 2207 SOCK_SEQPACKET = 0x5
2208 SO_VM_SOCKETS_BUFFER_MIN_SIZE = 0x1 2208 SOCK_STREAM = 0x2
2209 SO_VM_SOCKETS_BUFFER_SIZE = 0x0 2209 SOL_AAL = 0x109
2210 SO_VM_SOCKETS_CONNECT_TIMEOUT = 0x6 2210 SOL_ALG = 0x117
2211 SO_VM_SOCKETS_NONBLOCK_TXRX = 0x7 2211 SOL_ATM = 0x108
2212 SO_VM_SOCKETS_PEER_HOST_VM_ID = 0x3 2212 SOL_CAIF = 0x116
2213 SO_VM_SOCKETS_TRUSTED = 0x5 2213 SOL_CAN_BASE = 0x64
2214 SO_WIFI_STATUS = 0x29 2214 SOL_DCCP = 0x10d
2215 SO_ZEROCOPY = 0x3c 2215 SOL_DECNET = 0x105
2216 SPLICE_F_GIFT = 0x8 2216 SOL_ICMPV6 = 0x3a
2217 SPLICE_F_MORE = 0x4 2217 SOL_IP = 0x0
2218 SPLICE_F_MOVE = 0x1 2218 SOL_IPV6 = 0x29
2219 SPLICE_F_NONBLOCK = 0x2 2219 SOL_IRDA = 0x10a
2220 SQUASHFS_MAGIC = 0x73717368 2220 SOL_IUCV = 0x115
2221 STACK_END_MAGIC = 0x57ac6e9d 2221 SOL_KCM = 0x119
2222 STATX_ALL = 0xfff 2222 SOL_LLC = 0x10c
2223 STATX_ATIME = 0x20 2223 SOL_NETBEUI = 0x10b
2224 STATX_ATTR_APPEND = 0x20 2224 SOL_NETLINK = 0x10e
2225 STATX_ATTR_AUTOMOUNT = 0x1000 2225 SOL_NFC = 0x118
2226 STATX_ATTR_COMPRESSED = 0x4 2226 SOL_PACKET = 0x107
2227 STATX_ATTR_ENCRYPTED = 0x800 2227 SOL_PNPIPE = 0x113
2228 STATX_ATTR_IMMUTABLE = 0x10 2228 SOL_PPPOL2TP = 0x111
2229 STATX_ATTR_NODUMP = 0x40 2229 SOL_RAW = 0xff
2230 STATX_BASIC_STATS = 0x7ff 2230 SOL_RDS = 0x114
2231 STATX_BLOCKS = 0x400 2231 SOL_RXRPC = 0x110
2232 STATX_BTIME = 0x800 2232 SOL_SOCKET = 0xffff
2233 STATX_CTIME = 0x80 2233 SOL_TCP = 0x6
2234 STATX_GID = 0x10 2234 SOL_TIPC = 0x10f
2235 STATX_INO = 0x100 2235 SOL_TLS = 0x11a
2236 STATX_MODE = 0x2 2236 SOL_X25 = 0x106
2237 STATX_MTIME = 0x40 2237 SOL_XDP = 0x11b
2238 STATX_NLINK = 0x4 2238 SOMAXCONN = 0x1000
2239 STATX_SIZE = 0x200 2239 SO_ACCEPTCONN = 0x1009
2240 STATX_TYPE = 0x1 2240 SO_ATTACH_BPF = 0x32
2241 STATX_UID = 0x8 2241 SO_ATTACH_FILTER = 0x1a
2242 STATX__RESERVED = 0x80000000 2242 SO_ATTACH_REUSEPORT_CBPF = 0x33
2243 SYNC_FILE_RANGE_WAIT_AFTER = 0x4 2243 SO_ATTACH_REUSEPORT_EBPF = 0x34
2244 SYNC_FILE_RANGE_WAIT_BEFORE = 0x1 2244 SO_BINDTODEVICE = 0x19
2245 SYNC_FILE_RANGE_WRITE = 0x2 2245 SO_BINDTOIFINDEX = 0x3e
2246 SYNC_FILE_RANGE_WRITE_AND_WAIT = 0x7 2246 SO_BPF_EXTENSIONS = 0x30
2247 SYSFS_MAGIC = 0x62656572 2247 SO_BROADCAST = 0x20
2248 S_BLKSIZE = 0x200 2248 SO_BSDCOMPAT = 0xe
2249 S_IEXEC = 0x40 2249 SO_BUSY_POLL = 0x2e
2250 S_IFBLK = 0x6000 2250 SO_CNX_ADVICE = 0x35
2251 S_IFCHR = 0x2000 2251 SO_COOKIE = 0x39
2252 S_IFDIR = 0x4000 2252 SO_DEBUG = 0x1
2253 S_IFIFO = 0x1000 2253 SO_DETACH_BPF = 0x1b
2254 S_IFLNK = 0xa000 2254 SO_DETACH_FILTER = 0x1b
2255 S_IFMT = 0xf000 2255 SO_DETACH_REUSEPORT_BPF = 0x44
2256 S_IFREG = 0x8000 2256 SO_DOMAIN = 0x1029
2257 S_IFSOCK = 0xc000 2257 SO_DONTROUTE = 0x10
2258 S_IREAD = 0x100 2258 SO_EE_CODE_TXTIME_INVALID_PARAM = 0x1
2259 S_IRGRP = 0x20 2259 SO_EE_CODE_TXTIME_MISSED = 0x2
2260 S_IROTH = 0x4 2260 SO_EE_CODE_ZEROCOPY_COPIED = 0x1
2261 S_IRUSR = 0x100 2261 SO_EE_ORIGIN_ICMP = 0x2
2262 S_IRWXG = 0x38 2262 SO_EE_ORIGIN_ICMP6 = 0x3
2263 S_IRWXO = 0x7 2263 SO_EE_ORIGIN_LOCAL = 0x1
2264 S_IRWXU = 0x1c0 2264 SO_EE_ORIGIN_NONE = 0x0
2265 S_ISGID = 0x400 2265 SO_EE_ORIGIN_TIMESTAMPING = 0x4
2266 S_ISUID = 0x800 2266 SO_EE_ORIGIN_TXSTATUS = 0x4
2267 S_ISVTX = 0x200 2267 SO_EE_ORIGIN_TXTIME = 0x6
2268 S_IWGRP = 0x10 2268 SO_EE_ORIGIN_ZEROCOPY = 0x5
2269 S_IWOTH = 0x2 2269 SO_ERROR = 0x1007
2270 S_IWRITE = 0x80 2270 SO_GET_FILTER = 0x1a
2271 S_IWUSR = 0x80 2271 SO_INCOMING_CPU = 0x31
2272 S_IXGRP = 0x8 2272 SO_INCOMING_NAPI_ID = 0x38
2273 S_IXOTH = 0x1 2273 SO_KEEPALIVE = 0x8
2274 S_IXUSR = 0x40 2274 SO_LINGER = 0x80
2275 TAB0 = 0x0 2275 SO_LOCK_FILTER = 0x2c
2276 TAB1 = 0x800 2276 SO_MARK = 0x24
2277 TAB2 = 0x1000 2277 SO_MAX_PACING_RATE = 0x2f
2278 TAB3 = 0x1800 2278 SO_MEMINFO = 0x37
2279 TABDLY = 0x1800 2279 SO_NOFCS = 0x2b
2280 TASKSTATS_CMD_ATTR_MAX = 0x4 2280 SO_NO_CHECK = 0xb
2281 TASKSTATS_CMD_MAX = 0x2 2281 SO_OOBINLINE = 0x100
2282 TASKSTATS_GENL_NAME = "TASKSTATS" 2282 SO_PASSCRED = 0x11
2283 TASKSTATS_GENL_VERSION = 0x1 2283 SO_PASSSEC = 0x22
2284 TASKSTATS_TYPE_MAX = 0x6 2284 SO_PEEK_OFF = 0x2a
2285 TASKSTATS_VERSION = 0x9 2285 SO_PEERCRED = 0x12
2286 TCFLSH = 0x5407 2286 SO_PEERGROUPS = 0x3b
2287 TCGETA = 0x5401 2287 SO_PEERNAME = 0x1c
2288 TCGETS = 0x540d 2288 SO_PEERSEC = 0x1e
2289 TCGETS2 = 0x4030542a 2289 SO_PRIORITY = 0xc
2290 TCIFLUSH = 0x0 2290 SO_PROTOCOL = 0x1028
2291 TCIOFF = 0x2 2291 SO_RCVBUF = 0x1002
2292 TCIOFLUSH = 0x2 2292 SO_RCVBUFFORCE = 0x21
2293 TCION = 0x3 2293 SO_RCVLOWAT = 0x1004
2294 TCOFLUSH = 0x1 2294 SO_RCVTIMEO = 0x1006
2295 TCOOFF = 0x0 2295 SO_RCVTIMEO_NEW = 0x42
2296 TCOON = 0x1 2296 SO_RCVTIMEO_OLD = 0x1006
2297 TCP_BPF_IW = 0x3e9 2297 SO_REUSEADDR = 0x4
2298 TCP_BPF_SNDCWND_CLAMP = 0x3ea 2298 SO_REUSEPORT = 0x200
2299 TCP_CC_INFO = 0x1a 2299 SO_RXQ_OVFL = 0x28
2300 TCP_CM_INQ = 0x24 2300 SO_SECURITY_AUTHENTICATION = 0x16
2301 TCP_CONGESTION = 0xd 2301 SO_SECURITY_ENCRYPTION_NETWORK = 0x18
2302 TCP_COOKIE_IN_ALWAYS = 0x1 2302 SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17
2303 TCP_COOKIE_MAX = 0x10 2303 SO_SELECT_ERR_QUEUE = 0x2d
2304 TCP_COOKIE_MIN = 0x8 2304 SO_SNDBUF = 0x1001
2305 TCP_COOKIE_OUT_NEVER = 0x2 2305 SO_SNDBUFFORCE = 0x1f
2306 TCP_COOKIE_PAIR_SIZE = 0x20 2306 SO_SNDLOWAT = 0x1003
2307 TCP_COOKIE_TRANSACTIONS = 0xf 2307 SO_SNDTIMEO = 0x1005
2308 TCP_CORK = 0x3 2308 SO_SNDTIMEO_NEW = 0x43
2309 TCP_DEFER_ACCEPT = 0x9 2309 SO_SNDTIMEO_OLD = 0x1005
2310 TCP_FASTOPEN = 0x17 2310 SO_STYLE = 0x1008
2311 TCP_FASTOPEN_CONNECT = 0x1e 2311 SO_TIMESTAMP = 0x1d
2312 TCP_FASTOPEN_KEY = 0x21 2312 SO_TIMESTAMPING = 0x25
2313 TCP_FASTOPEN_NO_COOKIE = 0x22 2313 SO_TIMESTAMPING_NEW = 0x41
2314 TCP_INFO = 0xb 2314 SO_TIMESTAMPING_OLD = 0x25
2315 TCP_INQ = 0x24 2315 SO_TIMESTAMPNS = 0x23
2316 TCP_KEEPCNT = 0x6 2316 SO_TIMESTAMPNS_NEW = 0x40
2317 TCP_KEEPIDLE = 0x4 2317 SO_TIMESTAMPNS_OLD = 0x23
2318 TCP_KEEPINTVL = 0x5 2318 SO_TIMESTAMP_NEW = 0x3f
2319 TCP_LINGER2 = 0x8 2319 SO_TIMESTAMP_OLD = 0x1d
2320 TCP_MAXSEG = 0x2 2320 SO_TXTIME = 0x3d
2321 TCP_MAXWIN = 0xffff 2321 SO_TYPE = 0x1008
2322 TCP_MAX_WINSHIFT = 0xe 2322 SO_VM_SOCKETS_BUFFER_MAX_SIZE = 0x2
2323 TCP_MD5SIG = 0xe 2323 SO_VM_SOCKETS_BUFFER_MIN_SIZE = 0x1
2324 TCP_MD5SIG_EXT = 0x20 2324 SO_VM_SOCKETS_BUFFER_SIZE = 0x0
2325 TCP_MD5SIG_FLAG_PREFIX = 0x1 2325 SO_VM_SOCKETS_CONNECT_TIMEOUT = 0x6
2326 TCP_MD5SIG_MAXKEYLEN = 0x50 2326 SO_VM_SOCKETS_NONBLOCK_TXRX = 0x7
2327 TCP_MSS = 0x200 2327 SO_VM_SOCKETS_PEER_HOST_VM_ID = 0x3
2328 TCP_MSS_DEFAULT = 0x218 2328 SO_VM_SOCKETS_TRUSTED = 0x5
2329 TCP_MSS_DESIRED = 0x4c4 2329 SO_WIFI_STATUS = 0x29
2330 TCP_NODELAY = 0x1 2330 SO_ZEROCOPY = 0x3c
2331 TCP_NOTSENT_LOWAT = 0x19 2331 SPLICE_F_GIFT = 0x8
2332 TCP_QUEUE_SEQ = 0x15 2332 SPLICE_F_MORE = 0x4
2333 TCP_QUICKACK = 0xc 2333 SPLICE_F_MOVE = 0x1
2334 TCP_REPAIR = 0x13 2334 SPLICE_F_NONBLOCK = 0x2
2335 TCP_REPAIR_OFF = 0x0 2335 SQUASHFS_MAGIC = 0x73717368
2336 TCP_REPAIR_OFF_NO_WP = -0x1 2336 STACK_END_MAGIC = 0x57ac6e9d
2337 TCP_REPAIR_ON = 0x1 2337 STATX_ALL = 0xfff
2338 TCP_REPAIR_OPTIONS = 0x16 2338 STATX_ATIME = 0x20
2339 TCP_REPAIR_QUEUE = 0x14 2339 STATX_ATTR_APPEND = 0x20
2340 TCP_REPAIR_WINDOW = 0x1d 2340 STATX_ATTR_AUTOMOUNT = 0x1000
2341 TCP_SAVED_SYN = 0x1c 2341 STATX_ATTR_COMPRESSED = 0x4
2342 TCP_SAVE_SYN = 0x1b 2342 STATX_ATTR_ENCRYPTED = 0x800
2343 TCP_SYNCNT = 0x7 2343 STATX_ATTR_IMMUTABLE = 0x10
2344 TCP_S_DATA_IN = 0x4 2344 STATX_ATTR_NODUMP = 0x40
2345 TCP_S_DATA_OUT = 0x8 2345 STATX_ATTR_VERITY = 0x100000
2346 TCP_THIN_DUPACK = 0x11 2346 STATX_BASIC_STATS = 0x7ff
2347 TCP_THIN_LINEAR_TIMEOUTS = 0x10 2347 STATX_BLOCKS = 0x400
2348 TCP_TIMESTAMP = 0x18 2348 STATX_BTIME = 0x800
2349 TCP_ULP = 0x1f 2349 STATX_CTIME = 0x80
2350 TCP_USER_TIMEOUT = 0x12 2350 STATX_GID = 0x10
2351 TCP_WINDOW_CLAMP = 0xa 2351 STATX_INO = 0x100
2352 TCP_ZEROCOPY_RECEIVE = 0x23 2352 STATX_MODE = 0x2
2353 TCSAFLUSH = 0x5410 2353 STATX_MTIME = 0x40
2354 TCSBRK = 0x5405 2354 STATX_NLINK = 0x4
2355 TCSBRKP = 0x5486 2355 STATX_SIZE = 0x200
2356 TCSETA = 0x5402 2356 STATX_TYPE = 0x1
2357 TCSETAF = 0x5404 2357 STATX_UID = 0x8
2358 TCSETAW = 0x5403 2358 STATX__RESERVED = 0x80000000
2359 TCSETS = 0x540e 2359 SYNC_FILE_RANGE_WAIT_AFTER = 0x4
2360 TCSETS2 = 0x8030542b 2360 SYNC_FILE_RANGE_WAIT_BEFORE = 0x1
2361 TCSETSF = 0x5410 2361 SYNC_FILE_RANGE_WRITE = 0x2
2362 TCSETSF2 = 0x8030542d 2362 SYNC_FILE_RANGE_WRITE_AND_WAIT = 0x7
2363 TCSETSW = 0x540f 2363 SYSFS_MAGIC = 0x62656572
2364 TCSETSW2 = 0x8030542c 2364 S_BLKSIZE = 0x200
2365 TCXONC = 0x5406 2365 S_IEXEC = 0x40
2366 TIMER_ABSTIME = 0x1 2366 S_IFBLK = 0x6000
2367 TIOCCBRK = 0x5428 2367 S_IFCHR = 0x2000
2368 TIOCCONS = 0x80047478 2368 S_IFDIR = 0x4000
2369 TIOCEXCL = 0x740d 2369 S_IFIFO = 0x1000
2370 TIOCGDEV = 0x40045432 2370 S_IFLNK = 0xa000
2371 TIOCGETD = 0x7400 2371 S_IFMT = 0xf000
2372 TIOCGETP = 0x7408 2372 S_IFREG = 0x8000
2373 TIOCGEXCL = 0x40045440 2373 S_IFSOCK = 0xc000
2374 TIOCGICOUNT = 0x5492 2374 S_IREAD = 0x100
2375 TIOCGISO7816 = 0x40285442 2375 S_IRGRP = 0x20
2376 TIOCGLCKTRMIOS = 0x548b 2376 S_IROTH = 0x4
2377 TIOCGLTC = 0x7474 2377 S_IRUSR = 0x100
2378 TIOCGPGRP = 0x40047477 2378 S_IRWXG = 0x38
2379 TIOCGPKT = 0x40045438 2379 S_IRWXO = 0x7
2380 TIOCGPTLCK = 0x40045439 2380 S_IRWXU = 0x1c0
2381 TIOCGPTN = 0x40045430 2381 S_ISGID = 0x400
2382 TIOCGPTPEER = 0x20005441 2382 S_ISUID = 0x800
2383 TIOCGRS485 = 0x4020542e 2383 S_ISVTX = 0x200
2384 TIOCGSERIAL = 0x5484 2384 S_IWGRP = 0x10
2385 TIOCGSID = 0x7416 2385 S_IWOTH = 0x2
2386 TIOCGSOFTCAR = 0x5481 2386 S_IWRITE = 0x80
2387 TIOCGWINSZ = 0x40087468 2387 S_IWUSR = 0x80
2388 TIOCINQ = 0x467f 2388 S_IXGRP = 0x8
2389 TIOCLINUX = 0x5483 2389 S_IXOTH = 0x1
2390 TIOCMBIC = 0x741c 2390 S_IXUSR = 0x40
2391 TIOCMBIS = 0x741b 2391 TAB0 = 0x0
2392 TIOCMGET = 0x741d 2392 TAB1 = 0x800
2393 TIOCMIWAIT = 0x5491 2393 TAB2 = 0x1000
2394 TIOCMSET = 0x741a 2394 TAB3 = 0x1800
2395 TIOCM_CAR = 0x100 2395 TABDLY = 0x1800
2396 TIOCM_CD = 0x100 2396 TASKSTATS_CMD_ATTR_MAX = 0x4
2397 TIOCM_CTS = 0x40 2397 TASKSTATS_CMD_MAX = 0x2
2398 TIOCM_DSR = 0x400 2398 TASKSTATS_GENL_NAME = "TASKSTATS"
2399 TIOCM_DTR = 0x2 2399 TASKSTATS_GENL_VERSION = 0x1
2400 TIOCM_LE = 0x1 2400 TASKSTATS_TYPE_MAX = 0x6
2401 TIOCM_RI = 0x200 2401 TASKSTATS_VERSION = 0x9
2402 TIOCM_RNG = 0x200 2402 TCFLSH = 0x5407
2403 TIOCM_RTS = 0x4 2403 TCGETA = 0x5401
2404 TIOCM_SR = 0x20 2404 TCGETS = 0x540d
2405 TIOCM_ST = 0x10 2405 TCGETS2 = 0x4030542a
2406 TIOCNOTTY = 0x5471 2406 TCIFLUSH = 0x0
2407 TIOCNXCL = 0x740e 2407 TCIOFF = 0x2
2408 TIOCOUTQ = 0x7472 2408 TCIOFLUSH = 0x2
2409 TIOCPKT = 0x5470 2409 TCION = 0x3
2410 TIOCPKT_DATA = 0x0 2410 TCOFLUSH = 0x1
2411 TIOCPKT_DOSTOP = 0x20 2411 TCOOFF = 0x0
2412 TIOCPKT_FLUSHREAD = 0x1 2412 TCOON = 0x1
2413 TIOCPKT_FLUSHWRITE = 0x2 2413 TCP_BPF_IW = 0x3e9
2414 TIOCPKT_IOCTL = 0x40 2414 TCP_BPF_SNDCWND_CLAMP = 0x3ea
2415 TIOCPKT_NOSTOP = 0x10 2415 TCP_CC_INFO = 0x1a
2416 TIOCPKT_START = 0x8 2416 TCP_CM_INQ = 0x24
2417 TIOCPKT_STOP = 0x4 2417 TCP_CONGESTION = 0xd
2418 TIOCSBRK = 0x5427 2418 TCP_COOKIE_IN_ALWAYS = 0x1
2419 TIOCSCTTY = 0x5480 2419 TCP_COOKIE_MAX = 0x10
2420 TIOCSERCONFIG = 0x5488 2420 TCP_COOKIE_MIN = 0x8
2421 TIOCSERGETLSR = 0x548e 2421 TCP_COOKIE_OUT_NEVER = 0x2
2422 TIOCSERGETMULTI = 0x548f 2422 TCP_COOKIE_PAIR_SIZE = 0x20
2423 TIOCSERGSTRUCT = 0x548d 2423 TCP_COOKIE_TRANSACTIONS = 0xf
2424 TIOCSERGWILD = 0x5489 2424 TCP_CORK = 0x3
2425 TIOCSERSETMULTI = 0x5490 2425 TCP_DEFER_ACCEPT = 0x9
2426 TIOCSERSWILD = 0x548a 2426 TCP_FASTOPEN = 0x17
2427 TIOCSER_TEMT = 0x1 2427 TCP_FASTOPEN_CONNECT = 0x1e
2428 TIOCSETD = 0x7401 2428 TCP_FASTOPEN_KEY = 0x21
2429 TIOCSETN = 0x740a 2429 TCP_FASTOPEN_NO_COOKIE = 0x22
2430 TIOCSETP = 0x7409 2430 TCP_INFO = 0xb
2431 TIOCSIG = 0x80045436 2431 TCP_INQ = 0x24
2432 TIOCSISO7816 = 0xc0285443 2432 TCP_KEEPCNT = 0x6
2433 TIOCSLCKTRMIOS = 0x548c 2433 TCP_KEEPIDLE = 0x4
2434 TIOCSLTC = 0x7475 2434 TCP_KEEPINTVL = 0x5
2435 TIOCSPGRP = 0x80047476 2435 TCP_LINGER2 = 0x8
2436 TIOCSPTLCK = 0x80045431 2436 TCP_MAXSEG = 0x2
2437 TIOCSRS485 = 0xc020542f 2437 TCP_MAXWIN = 0xffff
2438 TIOCSSERIAL = 0x5485 2438 TCP_MAX_WINSHIFT = 0xe
2439 TIOCSSOFTCAR = 0x5482 2439 TCP_MD5SIG = 0xe
2440 TIOCSTI = 0x5472 2440 TCP_MD5SIG_EXT = 0x20
2441 TIOCSWINSZ = 0x80087467 2441 TCP_MD5SIG_FLAG_PREFIX = 0x1
2442 TIOCVHANGUP = 0x5437 2442 TCP_MD5SIG_MAXKEYLEN = 0x50
2443 TMPFS_MAGIC = 0x1021994 2443 TCP_MSS = 0x200
2444 TOSTOP = 0x8000 2444 TCP_MSS_DEFAULT = 0x218
2445 TPACKET_ALIGNMENT = 0x10 2445 TCP_MSS_DESIRED = 0x4c4
2446 TPACKET_HDRLEN = 0x34 2446 TCP_NODELAY = 0x1
2447 TP_STATUS_AVAILABLE = 0x0 2447 TCP_NOTSENT_LOWAT = 0x19
2448 TP_STATUS_BLK_TMO = 0x20 2448 TCP_QUEUE_SEQ = 0x15
2449 TP_STATUS_COPY = 0x2 2449 TCP_QUICKACK = 0xc
2450 TP_STATUS_CSUMNOTREADY = 0x8 2450 TCP_REPAIR = 0x13
2451 TP_STATUS_CSUM_VALID = 0x80 2451 TCP_REPAIR_OFF = 0x0
2452 TP_STATUS_KERNEL = 0x0 2452 TCP_REPAIR_OFF_NO_WP = -0x1
2453 TP_STATUS_LOSING = 0x4 2453 TCP_REPAIR_ON = 0x1
2454 TP_STATUS_SENDING = 0x2 2454 TCP_REPAIR_OPTIONS = 0x16
2455 TP_STATUS_SEND_REQUEST = 0x1 2455 TCP_REPAIR_QUEUE = 0x14
2456 TP_STATUS_TS_RAW_HARDWARE = -0x80000000 2456 TCP_REPAIR_WINDOW = 0x1d
2457 TP_STATUS_TS_SOFTWARE = 0x20000000 2457 TCP_SAVED_SYN = 0x1c
2458 TP_STATUS_TS_SYS_HARDWARE = 0x40000000 2458 TCP_SAVE_SYN = 0x1b
2459 TP_STATUS_USER = 0x1 2459 TCP_SYNCNT = 0x7
2460 TP_STATUS_VLAN_TPID_VALID = 0x40 2460 TCP_S_DATA_IN = 0x4
2461 TP_STATUS_VLAN_VALID = 0x10 2461 TCP_S_DATA_OUT = 0x8
2462 TP_STATUS_WRONG_FORMAT = 0x4 2462 TCP_THIN_DUPACK = 0x11
2463 TRACEFS_MAGIC = 0x74726163 2463 TCP_THIN_LINEAR_TIMEOUTS = 0x10
2464 TS_COMM_LEN = 0x20 2464 TCP_TIMESTAMP = 0x18
2465 TUNATTACHFILTER = 0x800854d5 2465 TCP_TX_DELAY = 0x25
2466 TUNDETACHFILTER = 0x800854d6 2466 TCP_ULP = 0x1f
2467 TUNGETDEVNETNS = 0x200054e3 2467 TCP_USER_TIMEOUT = 0x12
2468 TUNGETFEATURES = 0x400454cf 2468 TCP_WINDOW_CLAMP = 0xa
2469 TUNGETFILTER = 0x400854db 2469 TCP_ZEROCOPY_RECEIVE = 0x23
2470 TUNGETIFF = 0x400454d2 2470 TCSAFLUSH = 0x5410
2471 TUNGETSNDBUF = 0x400454d3 2471 TCSBRK = 0x5405
2472 TUNGETVNETBE = 0x400454df 2472 TCSBRKP = 0x5486
2473 TUNGETVNETHDRSZ = 0x400454d7 2473 TCSETA = 0x5402
2474 TUNGETVNETLE = 0x400454dd 2474 TCSETAF = 0x5404
2475 TUNSETCARRIER = 0x800454e2 2475 TCSETAW = 0x5403
2476 TUNSETDEBUG = 0x800454c9 2476 TCSETS = 0x540e
2477 TUNSETFILTEREBPF = 0x400454e1 2477 TCSETS2 = 0x8030542b
2478 TUNSETGROUP = 0x800454ce 2478 TCSETSF = 0x5410
2479 TUNSETIFF = 0x800454ca 2479 TCSETSF2 = 0x8030542d
2480 TUNSETIFINDEX = 0x800454da 2480 TCSETSW = 0x540f
2481 TUNSETLINK = 0x800454cd 2481 TCSETSW2 = 0x8030542c
2482 TUNSETNOCSUM = 0x800454c8 2482 TCXONC = 0x5406
2483 TUNSETOFFLOAD = 0x800454d0 2483 TIMER_ABSTIME = 0x1
2484 TUNSETOWNER = 0x800454cc 2484 TIOCCBRK = 0x5428
2485 TUNSETPERSIST = 0x800454cb 2485 TIOCCONS = 0x80047478
2486 TUNSETQUEUE = 0x800454d9 2486 TIOCEXCL = 0x740d
2487 TUNSETSNDBUF = 0x800454d4 2487 TIOCGDEV = 0x40045432
2488 TUNSETSTEERINGEBPF = 0x400454e0 2488 TIOCGETD = 0x7400
2489 TUNSETTXFILTER = 0x800454d1 2489 TIOCGETP = 0x7408
2490 TUNSETVNETBE = 0x800454de 2490 TIOCGEXCL = 0x40045440
2491 TUNSETVNETHDRSZ = 0x800454d8 2491 TIOCGICOUNT = 0x5492
2492 TUNSETVNETLE = 0x800454dc 2492 TIOCGISO7816 = 0x40285442
2493 UBI_IOCATT = 0x80186f40 2493 TIOCGLCKTRMIOS = 0x548b
2494 UBI_IOCDET = 0x80046f41 2494 TIOCGLTC = 0x7474
2495 UBI_IOCEBCH = 0x80044f02 2495 TIOCGPGRP = 0x40047477
2496 UBI_IOCEBER = 0x80044f01 2496 TIOCGPKT = 0x40045438
2497 UBI_IOCEBISMAP = 0x40044f05 2497 TIOCGPTLCK = 0x40045439
2498 UBI_IOCEBMAP = 0x80084f03 2498 TIOCGPTN = 0x40045430
2499 UBI_IOCEBUNMAP = 0x80044f04 2499 TIOCGPTPEER = 0x20005441
2500 UBI_IOCMKVOL = 0x80986f00 2500 TIOCGRS485 = 0x4020542e
2501 UBI_IOCRMVOL = 0x80046f01 2501 TIOCGSERIAL = 0x5484
2502 UBI_IOCRNVOL = 0x91106f03 2502 TIOCGSID = 0x7416
2503 UBI_IOCRPEB = 0x80046f04 2503 TIOCGSOFTCAR = 0x5481
2504 UBI_IOCRSVOL = 0x800c6f02 2504 TIOCGWINSZ = 0x40087468
2505 UBI_IOCSETVOLPROP = 0x80104f06 2505 TIOCINQ = 0x467f
2506 UBI_IOCSPEB = 0x80046f05 2506 TIOCLINUX = 0x5483
2507 UBI_IOCVOLCRBLK = 0x80804f07 2507 TIOCMBIC = 0x741c
2508 UBI_IOCVOLRMBLK = 0x20004f08 2508 TIOCMBIS = 0x741b
2509 UBI_IOCVOLUP = 0x80084f00 2509 TIOCMGET = 0x741d
2510 UDF_SUPER_MAGIC = 0x15013346 2510 TIOCMIWAIT = 0x5491
2511 UMOUNT_NOFOLLOW = 0x8 2511 TIOCMSET = 0x741a
2512 USBDEVICE_SUPER_MAGIC = 0x9fa2 2512 TIOCM_CAR = 0x100
2513 UTIME_NOW = 0x3fffffff 2513 TIOCM_CD = 0x100
2514 UTIME_OMIT = 0x3ffffffe 2514 TIOCM_CTS = 0x40
2515 V9FS_MAGIC = 0x1021997 2515 TIOCM_DSR = 0x400
2516 VDISCARD = 0xd 2516 TIOCM_DTR = 0x2
2517 VEOF = 0x10 2517 TIOCM_LE = 0x1
2518 VEOL = 0x11 2518 TIOCM_RI = 0x200
2519 VEOL2 = 0x6 2519 TIOCM_RNG = 0x200
2520 VERASE = 0x2 2520 TIOCM_RTS = 0x4
2521 VINTR = 0x0 2521 TIOCM_SR = 0x20
2522 VKILL = 0x3 2522 TIOCM_ST = 0x10
2523 VLNEXT = 0xf 2523 TIOCNOTTY = 0x5471
2524 VMADDR_CID_ANY = 0xffffffff 2524 TIOCNXCL = 0x740e
2525 VMADDR_CID_HOST = 0x2 2525 TIOCOUTQ = 0x7472
2526 VMADDR_CID_HYPERVISOR = 0x0 2526 TIOCPKT = 0x5470
2527 VMADDR_CID_RESERVED = 0x1 2527 TIOCPKT_DATA = 0x0
2528 VMADDR_PORT_ANY = 0xffffffff 2528 TIOCPKT_DOSTOP = 0x20
2529 VMIN = 0x4 2529 TIOCPKT_FLUSHREAD = 0x1
2530 VM_SOCKETS_INVALID_VERSION = 0xffffffff 2530 TIOCPKT_FLUSHWRITE = 0x2
2531 VQUIT = 0x1 2531 TIOCPKT_IOCTL = 0x40
2532 VREPRINT = 0xc 2532 TIOCPKT_NOSTOP = 0x10
2533 VSTART = 0x8 2533 TIOCPKT_START = 0x8
2534 VSTOP = 0x9 2534 TIOCPKT_STOP = 0x4
2535 VSUSP = 0xa 2535 TIOCSBRK = 0x5427
2536 VSWTC = 0x7 2536 TIOCSCTTY = 0x5480
2537 VSWTCH = 0x7 2537 TIOCSERCONFIG = 0x5488
2538 VT0 = 0x0 2538 TIOCSERGETLSR = 0x548e
2539 VT1 = 0x4000 2539 TIOCSERGETMULTI = 0x548f
2540 VTDLY = 0x4000 2540 TIOCSERGSTRUCT = 0x548d
2541 VTIME = 0x5 2541 TIOCSERGWILD = 0x5489
2542 VWERASE = 0xe 2542 TIOCSERSETMULTI = 0x5490
2543 WALL = 0x40000000 2543 TIOCSERSWILD = 0x548a
2544 WCLONE = 0x80000000 2544 TIOCSER_TEMT = 0x1
2545 WCONTINUED = 0x8 2545 TIOCSETD = 0x7401
2546 WDIOC_GETBOOTSTATUS = 0x40045702 2546 TIOCSETN = 0x740a
2547 WDIOC_GETPRETIMEOUT = 0x40045709 2547 TIOCSETP = 0x7409
2548 WDIOC_GETSTATUS = 0x40045701 2548 TIOCSIG = 0x80045436
2549 WDIOC_GETSUPPORT = 0x40285700 2549 TIOCSISO7816 = 0xc0285443
2550 WDIOC_GETTEMP = 0x40045703 2550 TIOCSLCKTRMIOS = 0x548c
2551 WDIOC_GETTIMELEFT = 0x4004570a 2551 TIOCSLTC = 0x7475
2552 WDIOC_GETTIMEOUT = 0x40045707 2552 TIOCSPGRP = 0x80047476
2553 WDIOC_KEEPALIVE = 0x40045705 2553 TIOCSPTLCK = 0x80045431
2554 WDIOC_SETOPTIONS = 0x40045704 2554 TIOCSRS485 = 0xc020542f
2555 WDIOC_SETPRETIMEOUT = 0xc0045708 2555 TIOCSSERIAL = 0x5485
2556 WDIOC_SETTIMEOUT = 0xc0045706 2556 TIOCSSOFTCAR = 0x5482
2557 WEXITED = 0x4 2557 TIOCSTI = 0x5472
2558 WIN_ACKMEDIACHANGE = 0xdb 2558 TIOCSWINSZ = 0x80087467
2559 WIN_CHECKPOWERMODE1 = 0xe5 2559 TIOCVHANGUP = 0x5437
2560 WIN_CHECKPOWERMODE2 = 0x98 2560 TIPC_ADDR_ID = 0x3
2561 WIN_DEVICE_RESET = 0x8 2561 TIPC_ADDR_MCAST = 0x1
2562 WIN_DIAGNOSE = 0x90 2562 TIPC_ADDR_NAME = 0x2
2563 WIN_DOORLOCK = 0xde 2563 TIPC_ADDR_NAMESEQ = 0x1
2564 WIN_DOORUNLOCK = 0xdf 2564 TIPC_AEAD_ALG_NAME = 0x20
2565 WIN_DOWNLOAD_MICROCODE = 0x92 2565 TIPC_AEAD_KEYLEN_MAX = 0x24
2566 WIN_FLUSH_CACHE = 0xe7 2566 TIPC_AEAD_KEYLEN_MIN = 0x14
2567 WIN_FLUSH_CACHE_EXT = 0xea 2567 TIPC_AEAD_KEY_SIZE_MAX = 0x48
2568 WIN_FORMAT = 0x50 2568 TIPC_CFG_SRV = 0x0
2569 WIN_GETMEDIASTATUS = 0xda 2569 TIPC_CLUSTER_BITS = 0xc
2570 WIN_IDENTIFY = 0xec 2570 TIPC_CLUSTER_MASK = 0xfff000
2571 WIN_IDENTIFY_DMA = 0xee 2571 TIPC_CLUSTER_OFFSET = 0xc
2572 WIN_IDLEIMMEDIATE = 0xe1 2572 TIPC_CLUSTER_SIZE = 0xfff
2573 WIN_INIT = 0x60 2573 TIPC_CONN_SHUTDOWN = 0x5
2574 WIN_MEDIAEJECT = 0xed 2574 TIPC_CONN_TIMEOUT = 0x82
2575 WIN_MULTREAD = 0xc4 2575 TIPC_CRITICAL_IMPORTANCE = 0x3
2576 WIN_MULTREAD_EXT = 0x29 2576 TIPC_DESTNAME = 0x3
2577 WIN_MULTWRITE = 0xc5 2577 TIPC_DEST_DROPPABLE = 0x81
2578 WIN_MULTWRITE_EXT = 0x39 2578 TIPC_ERRINFO = 0x1
2579 WIN_NOP = 0x0 2579 TIPC_ERR_NO_NAME = 0x1
2580 WIN_PACKETCMD = 0xa0 2580 TIPC_ERR_NO_NODE = 0x3
2581 WIN_PIDENTIFY = 0xa1 2581 TIPC_ERR_NO_PORT = 0x2
2582 WIN_POSTBOOT = 0xdc 2582 TIPC_ERR_OVERLOAD = 0x4
2583 WIN_PREBOOT = 0xdd 2583 TIPC_GROUP_JOIN = 0x87
2584 WIN_QUEUED_SERVICE = 0xa2 2584 TIPC_GROUP_LEAVE = 0x88
2585 WIN_READ = 0x20 2585 TIPC_GROUP_LOOPBACK = 0x1
2586 WIN_READDMA = 0xc8 2586 TIPC_GROUP_MEMBER_EVTS = 0x2
2587 WIN_READDMA_EXT = 0x25 2587 TIPC_HIGH_IMPORTANCE = 0x2
2588 WIN_READDMA_ONCE = 0xc9 2588 TIPC_IMPORTANCE = 0x7f
2589 WIN_READDMA_QUEUED = 0xc7 2589 TIPC_LINK_STATE = 0x2
2590 WIN_READDMA_QUEUED_EXT = 0x26 2590 TIPC_LOW_IMPORTANCE = 0x0
2591 WIN_READ_BUFFER = 0xe4 2591 TIPC_MAX_BEARER_NAME = 0x20
2592 WIN_READ_EXT = 0x24 2592 TIPC_MAX_IF_NAME = 0x10
2593 WIN_READ_LONG = 0x22 2593 TIPC_MAX_LINK_NAME = 0x44
2594 WIN_READ_LONG_ONCE = 0x23 2594 TIPC_MAX_MEDIA_NAME = 0x10
2595 WIN_READ_NATIVE_MAX = 0xf8 2595 TIPC_MAX_USER_MSG_SIZE = 0x101d0
2596 WIN_READ_NATIVE_MAX_EXT = 0x27 2596 TIPC_MCAST_BROADCAST = 0x85
2597 WIN_READ_ONCE = 0x21 2597 TIPC_MCAST_REPLICAST = 0x86
2598 WIN_RECAL = 0x10 2598 TIPC_MEDIUM_IMPORTANCE = 0x1
2599 WIN_RESTORE = 0x10 2599 TIPC_NODEID_LEN = 0x10
2600 WIN_SECURITY_DISABLE = 0xf6 2600 TIPC_NODELAY = 0x8a
2601 WIN_SECURITY_ERASE_PREPARE = 0xf3 2601 TIPC_NODE_BITS = 0xc
2602 WIN_SECURITY_ERASE_UNIT = 0xf4 2602 TIPC_NODE_MASK = 0xfff
2603 WIN_SECURITY_FREEZE_LOCK = 0xf5 2603 TIPC_NODE_OFFSET = 0x0
2604 WIN_SECURITY_SET_PASS = 0xf1 2604 TIPC_NODE_RECVQ_DEPTH = 0x83
2605 WIN_SECURITY_UNLOCK = 0xf2 2605 TIPC_NODE_SIZE = 0xfff
2606 WIN_SEEK = 0x70 2606 TIPC_NODE_STATE = 0x0
2607 WIN_SETFEATURES = 0xef 2607 TIPC_OK = 0x0
2608 WIN_SETIDLE1 = 0xe3 2608 TIPC_PUBLISHED = 0x1
2609 WIN_SETIDLE2 = 0x97 2609 TIPC_RESERVED_TYPES = 0x40
2610 WIN_SETMULT = 0xc6 2610 TIPC_RETDATA = 0x2
2611 WIN_SET_MAX = 0xf9 2611 TIPC_SERVICE_ADDR = 0x2
2612 WIN_SET_MAX_EXT = 0x37 2612 TIPC_SERVICE_RANGE = 0x1
2613 WIN_SLEEPNOW1 = 0xe6 2613 TIPC_SOCKET_ADDR = 0x3
2614 WIN_SLEEPNOW2 = 0x99 2614 TIPC_SOCK_RECVQ_DEPTH = 0x84
2615 WIN_SMART = 0xb0 2615 TIPC_SOCK_RECVQ_USED = 0x89
2616 WIN_SPECIFY = 0x91 2616 TIPC_SRC_DROPPABLE = 0x80
2617 WIN_SRST = 0x8 2617 TIPC_SUBSCR_TIMEOUT = 0x3
2618 WIN_STANDBY = 0xe2 2618 TIPC_SUB_CANCEL = 0x4
2619 WIN_STANDBY2 = 0x96 2619 TIPC_SUB_PORTS = 0x1
2620 WIN_STANDBYNOW1 = 0xe0 2620 TIPC_SUB_SERVICE = 0x2
2621 WIN_STANDBYNOW2 = 0x94 2621 TIPC_TOP_SRV = 0x1
2622 WIN_VERIFY = 0x40 2622 TIPC_WAIT_FOREVER = 0xffffffff
2623 WIN_VERIFY_EXT = 0x42 2623 TIPC_WITHDRAWN = 0x2
2624 WIN_VERIFY_ONCE = 0x41 2624 TIPC_ZONE_BITS = 0x8
2625 WIN_WRITE = 0x30 2625 TIPC_ZONE_CLUSTER_MASK = 0xfffff000
2626 WIN_WRITEDMA = 0xca 2626 TIPC_ZONE_MASK = 0xff000000
2627 WIN_WRITEDMA_EXT = 0x35 2627 TIPC_ZONE_OFFSET = 0x18
2628 WIN_WRITEDMA_ONCE = 0xcb 2628 TIPC_ZONE_SCOPE = 0x1
2629 WIN_WRITEDMA_QUEUED = 0xcc 2629 TIPC_ZONE_SIZE = 0xff
2630 WIN_WRITEDMA_QUEUED_EXT = 0x36 2630 TMPFS_MAGIC = 0x1021994
2631 WIN_WRITE_BUFFER = 0xe8 2631 TOSTOP = 0x8000
2632 WIN_WRITE_EXT = 0x34 2632 TPACKET_ALIGNMENT = 0x10
2633 WIN_WRITE_LONG = 0x32 2633 TPACKET_HDRLEN = 0x34
2634 WIN_WRITE_LONG_ONCE = 0x33 2634 TP_STATUS_AVAILABLE = 0x0
2635 WIN_WRITE_ONCE = 0x31 2635 TP_STATUS_BLK_TMO = 0x20
2636 WIN_WRITE_SAME = 0xe9 2636 TP_STATUS_COPY = 0x2
2637 WIN_WRITE_VERIFY = 0x3c 2637 TP_STATUS_CSUMNOTREADY = 0x8
2638 WNOHANG = 0x1 2638 TP_STATUS_CSUM_VALID = 0x80
2639 WNOTHREAD = 0x20000000 2639 TP_STATUS_KERNEL = 0x0
2640 WNOWAIT = 0x1000000 2640 TP_STATUS_LOSING = 0x4
2641 WORDSIZE = 0x20 2641 TP_STATUS_SENDING = 0x2
2642 WSTOPPED = 0x2 2642 TP_STATUS_SEND_REQUEST = 0x1
2643 WUNTRACED = 0x2 2643 TP_STATUS_TS_RAW_HARDWARE = 0x80000000
2644 XATTR_CREATE = 0x1 2644 TP_STATUS_TS_SOFTWARE = 0x20000000
2645 XATTR_REPLACE = 0x2 2645 TP_STATUS_TS_SYS_HARDWARE = 0x40000000
2646 XCASE = 0x4 2646 TP_STATUS_USER = 0x1
2647 XDP_COPY = 0x2 2647 TP_STATUS_VLAN_TPID_VALID = 0x40
2648 XDP_FLAGS_DRV_MODE = 0x4 2648 TP_STATUS_VLAN_VALID = 0x10
2649 XDP_FLAGS_HW_MODE = 0x8 2649 TP_STATUS_WRONG_FORMAT = 0x4
2650 XDP_FLAGS_MASK = 0xf 2650 TRACEFS_MAGIC = 0x74726163
2651 XDP_FLAGS_MODES = 0xe 2651 TS_COMM_LEN = 0x20
2652 XDP_FLAGS_SKB_MODE = 0x2 2652 TUNATTACHFILTER = 0x800854d5
2653 XDP_FLAGS_UPDATE_IF_NOEXIST = 0x1 2653 TUNDETACHFILTER = 0x800854d6
2654 XDP_MMAP_OFFSETS = 0x1 2654 TUNGETDEVNETNS = 0x200054e3
2655 XDP_PACKET_HEADROOM = 0x100 2655 TUNGETFEATURES = 0x400454cf
2656 XDP_PGOFF_RX_RING = 0x0 2656 TUNGETFILTER = 0x400854db
2657 XDP_PGOFF_TX_RING = 0x80000000 2657 TUNGETIFF = 0x400454d2
2658 XDP_RX_RING = 0x2 2658 TUNGETSNDBUF = 0x400454d3
2659 XDP_SHARED_UMEM = 0x1 2659 TUNGETVNETBE = 0x400454df
2660 XDP_STATISTICS = 0x7 2660 TUNGETVNETHDRSZ = 0x400454d7
2661 XDP_TX_RING = 0x3 2661 TUNGETVNETLE = 0x400454dd
2662 XDP_UMEM_COMPLETION_RING = 0x6 2662 TUNSETCARRIER = 0x800454e2
2663 XDP_UMEM_FILL_RING = 0x5 2663 TUNSETDEBUG = 0x800454c9
2664 XDP_UMEM_PGOFF_COMPLETION_RING = 0x180000000 2664 TUNSETFILTEREBPF = 0x400454e1
2665 XDP_UMEM_PGOFF_FILL_RING = 0x100000000 2665 TUNSETGROUP = 0x800454ce
2666 XDP_UMEM_REG = 0x4 2666 TUNSETIFF = 0x800454ca
2667 XDP_ZEROCOPY = 0x4 2667 TUNSETIFINDEX = 0x800454da
2668 XENFS_SUPER_MAGIC = 0xabba1974 2668 TUNSETLINK = 0x800454cd
2669 XFS_SUPER_MAGIC = 0x58465342 2669 TUNSETNOCSUM = 0x800454c8
2670 XTABS = 0x1800 2670 TUNSETOFFLOAD = 0x800454d0
2671 ZSMALLOC_MAGIC = 0x58295829 2671 TUNSETOWNER = 0x800454cc
2672 TUNSETPERSIST = 0x800454cb
2673 TUNSETQUEUE = 0x800454d9
2674 TUNSETSNDBUF = 0x800454d4
2675 TUNSETSTEERINGEBPF = 0x400454e0
2676 TUNSETTXFILTER = 0x800454d1
2677 TUNSETVNETBE = 0x800454de
2678 TUNSETVNETHDRSZ = 0x800454d8
2679 TUNSETVNETLE = 0x800454dc
2680 UBI_IOCATT = 0x80186f40
2681 UBI_IOCDET = 0x80046f41
2682 UBI_IOCEBCH = 0x80044f02
2683 UBI_IOCEBER = 0x80044f01
2684 UBI_IOCEBISMAP = 0x40044f05
2685 UBI_IOCEBMAP = 0x80084f03
2686 UBI_IOCEBUNMAP = 0x80044f04
2687 UBI_IOCMKVOL = 0x80986f00
2688 UBI_IOCRMVOL = 0x80046f01
2689 UBI_IOCRNVOL = 0x91106f03
2690 UBI_IOCRPEB = 0x80046f04
2691 UBI_IOCRSVOL = 0x800c6f02
2692 UBI_IOCSETVOLPROP = 0x80104f06
2693 UBI_IOCSPEB = 0x80046f05
2694 UBI_IOCVOLCRBLK = 0x80804f07
2695 UBI_IOCVOLRMBLK = 0x20004f08
2696 UBI_IOCVOLUP = 0x80084f00
2697 UDF_SUPER_MAGIC = 0x15013346
2698 UMOUNT_NOFOLLOW = 0x8
2699 USBDEVICE_SUPER_MAGIC = 0x9fa2
2700 UTIME_NOW = 0x3fffffff
2701 UTIME_OMIT = 0x3ffffffe
2702 V9FS_MAGIC = 0x1021997
2703 VDISCARD = 0xd
2704 VEOF = 0x10
2705 VEOL = 0x11
2706 VEOL2 = 0x6
2707 VERASE = 0x2
2708 VINTR = 0x0
2709 VKILL = 0x3
2710 VLNEXT = 0xf
2711 VMADDR_CID_ANY = 0xffffffff
2712 VMADDR_CID_HOST = 0x2
2713 VMADDR_CID_HYPERVISOR = 0x0
2714 VMADDR_CID_RESERVED = 0x1
2715 VMADDR_PORT_ANY = 0xffffffff
2716 VMIN = 0x4
2717 VM_SOCKETS_INVALID_VERSION = 0xffffffff
2718 VQUIT = 0x1
2719 VREPRINT = 0xc
2720 VSTART = 0x8
2721 VSTOP = 0x9
2722 VSUSP = 0xa
2723 VSWTC = 0x7
2724 VSWTCH = 0x7
2725 VT0 = 0x0
2726 VT1 = 0x4000
2727 VTDLY = 0x4000
2728 VTIME = 0x5
2729 VWERASE = 0xe
2730 WALL = 0x40000000
2731 WCLONE = 0x80000000
2732 WCONTINUED = 0x8
2733 WDIOC_GETBOOTSTATUS = 0x40045702
2734 WDIOC_GETPRETIMEOUT = 0x40045709
2735 WDIOC_GETSTATUS = 0x40045701
2736 WDIOC_GETSUPPORT = 0x40285700
2737 WDIOC_GETTEMP = 0x40045703
2738 WDIOC_GETTIMELEFT = 0x4004570a
2739 WDIOC_GETTIMEOUT = 0x40045707
2740 WDIOC_KEEPALIVE = 0x40045705
2741 WDIOC_SETOPTIONS = 0x40045704
2742 WDIOC_SETPRETIMEOUT = 0xc0045708
2743 WDIOC_SETTIMEOUT = 0xc0045706
2744 WEXITED = 0x4
2745 WIN_ACKMEDIACHANGE = 0xdb
2746 WIN_CHECKPOWERMODE1 = 0xe5
2747 WIN_CHECKPOWERMODE2 = 0x98
2748 WIN_DEVICE_RESET = 0x8
2749 WIN_DIAGNOSE = 0x90
2750 WIN_DOORLOCK = 0xde
2751 WIN_DOORUNLOCK = 0xdf
2752 WIN_DOWNLOAD_MICROCODE = 0x92
2753 WIN_FLUSH_CACHE = 0xe7
2754 WIN_FLUSH_CACHE_EXT = 0xea
2755 WIN_FORMAT = 0x50
2756 WIN_GETMEDIASTATUS = 0xda
2757 WIN_IDENTIFY = 0xec
2758 WIN_IDENTIFY_DMA = 0xee
2759 WIN_IDLEIMMEDIATE = 0xe1
2760 WIN_INIT = 0x60
2761 WIN_MEDIAEJECT = 0xed
2762 WIN_MULTREAD = 0xc4
2763 WIN_MULTREAD_EXT = 0x29
2764 WIN_MULTWRITE = 0xc5
2765 WIN_MULTWRITE_EXT = 0x39
2766 WIN_NOP = 0x0
2767 WIN_PACKETCMD = 0xa0
2768 WIN_PIDENTIFY = 0xa1
2769 WIN_POSTBOOT = 0xdc
2770 WIN_PREBOOT = 0xdd
2771 WIN_QUEUED_SERVICE = 0xa2
2772 WIN_READ = 0x20
2773 WIN_READDMA = 0xc8
2774 WIN_READDMA_EXT = 0x25
2775 WIN_READDMA_ONCE = 0xc9
2776 WIN_READDMA_QUEUED = 0xc7
2777 WIN_READDMA_QUEUED_EXT = 0x26
2778 WIN_READ_BUFFER = 0xe4
2779 WIN_READ_EXT = 0x24
2780 WIN_READ_LONG = 0x22
2781 WIN_READ_LONG_ONCE = 0x23
2782 WIN_READ_NATIVE_MAX = 0xf8
2783 WIN_READ_NATIVE_MAX_EXT = 0x27
2784 WIN_READ_ONCE = 0x21
2785 WIN_RECAL = 0x10
2786 WIN_RESTORE = 0x10
2787 WIN_SECURITY_DISABLE = 0xf6
2788 WIN_SECURITY_ERASE_PREPARE = 0xf3
2789 WIN_SECURITY_ERASE_UNIT = 0xf4
2790 WIN_SECURITY_FREEZE_LOCK = 0xf5
2791 WIN_SECURITY_SET_PASS = 0xf1
2792 WIN_SECURITY_UNLOCK = 0xf2
2793 WIN_SEEK = 0x70
2794 WIN_SETFEATURES = 0xef
2795 WIN_SETIDLE1 = 0xe3
2796 WIN_SETIDLE2 = 0x97
2797 WIN_SETMULT = 0xc6
2798 WIN_SET_MAX = 0xf9
2799 WIN_SET_MAX_EXT = 0x37
2800 WIN_SLEEPNOW1 = 0xe6
2801 WIN_SLEEPNOW2 = 0x99
2802 WIN_SMART = 0xb0
2803 WIN_SPECIFY = 0x91
2804 WIN_SRST = 0x8
2805 WIN_STANDBY = 0xe2
2806 WIN_STANDBY2 = 0x96
2807 WIN_STANDBYNOW1 = 0xe0
2808 WIN_STANDBYNOW2 = 0x94
2809 WIN_VERIFY = 0x40
2810 WIN_VERIFY_EXT = 0x42
2811 WIN_VERIFY_ONCE = 0x41
2812 WIN_WRITE = 0x30
2813 WIN_WRITEDMA = 0xca
2814 WIN_WRITEDMA_EXT = 0x35
2815 WIN_WRITEDMA_ONCE = 0xcb
2816 WIN_WRITEDMA_QUEUED = 0xcc
2817 WIN_WRITEDMA_QUEUED_EXT = 0x36
2818 WIN_WRITE_BUFFER = 0xe8
2819 WIN_WRITE_EXT = 0x34
2820 WIN_WRITE_LONG = 0x32
2821 WIN_WRITE_LONG_ONCE = 0x33
2822 WIN_WRITE_ONCE = 0x31
2823 WIN_WRITE_SAME = 0xe9
2824 WIN_WRITE_VERIFY = 0x3c
2825 WNOHANG = 0x1
2826 WNOTHREAD = 0x20000000
2827 WNOWAIT = 0x1000000
2828 WORDSIZE = 0x20
2829 WSTOPPED = 0x2
2830 WUNTRACED = 0x2
2831 XATTR_CREATE = 0x1
2832 XATTR_REPLACE = 0x2
2833 XCASE = 0x4
2834 XDP_COPY = 0x2
2835 XDP_FLAGS_DRV_MODE = 0x4
2836 XDP_FLAGS_HW_MODE = 0x8
2837 XDP_FLAGS_MASK = 0xf
2838 XDP_FLAGS_MODES = 0xe
2839 XDP_FLAGS_SKB_MODE = 0x2
2840 XDP_FLAGS_UPDATE_IF_NOEXIST = 0x1
2841 XDP_MMAP_OFFSETS = 0x1
2842 XDP_OPTIONS = 0x8
2843 XDP_OPTIONS_ZEROCOPY = 0x1
2844 XDP_PACKET_HEADROOM = 0x100
2845 XDP_PGOFF_RX_RING = 0x0
2846 XDP_PGOFF_TX_RING = 0x80000000
2847 XDP_RING_NEED_WAKEUP = 0x1
2848 XDP_RX_RING = 0x2
2849 XDP_SHARED_UMEM = 0x1
2850 XDP_STATISTICS = 0x7
2851 XDP_TX_RING = 0x3
2852 XDP_UMEM_COMPLETION_RING = 0x6
2853 XDP_UMEM_FILL_RING = 0x5
2854 XDP_UMEM_PGOFF_COMPLETION_RING = 0x180000000
2855 XDP_UMEM_PGOFF_FILL_RING = 0x100000000
2856 XDP_UMEM_REG = 0x4
2857 XDP_UMEM_UNALIGNED_CHUNK_FLAG = 0x1
2858 XDP_USE_NEED_WAKEUP = 0x8
2859 XDP_ZEROCOPY = 0x4
2860 XENFS_SUPER_MAGIC = 0xabba1974
2861 XFS_SUPER_MAGIC = 0x58465342
2862 XTABS = 0x1800
2863 Z3FOLD_MAGIC = 0x33
2864 ZSMALLOC_MAGIC = 0x58295829
2672) 2865)
2673 2866
2674// Errors 2867// Errors
diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go
index a696532..ab6134e 100644
--- a/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go
+++ b/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go
@@ -11,2723 +11,2917 @@ package unix
11import "syscall" 11import "syscall"
12 12
13const ( 13const (
14 AAFS_MAGIC = 0x5a3c69f0 14 AAFS_MAGIC = 0x5a3c69f0
15 ADFS_SUPER_MAGIC = 0xadf5 15 ADFS_SUPER_MAGIC = 0xadf5
16 AFFS_SUPER_MAGIC = 0xadff 16 AFFS_SUPER_MAGIC = 0xadff
17 AFS_FS_MAGIC = 0x6b414653 17 AFS_FS_MAGIC = 0x6b414653
18 AFS_SUPER_MAGIC = 0x5346414f 18 AFS_SUPER_MAGIC = 0x5346414f
19 AF_ALG = 0x26 19 AF_ALG = 0x26
20 AF_APPLETALK = 0x5 20 AF_APPLETALK = 0x5
21 AF_ASH = 0x12 21 AF_ASH = 0x12
22 AF_ATMPVC = 0x8 22 AF_ATMPVC = 0x8
23 AF_ATMSVC = 0x14 23 AF_ATMSVC = 0x14
24 AF_AX25 = 0x3 24 AF_AX25 = 0x3
25 AF_BLUETOOTH = 0x1f 25 AF_BLUETOOTH = 0x1f
26 AF_BRIDGE = 0x7 26 AF_BRIDGE = 0x7
27 AF_CAIF = 0x25 27 AF_CAIF = 0x25
28 AF_CAN = 0x1d 28 AF_CAN = 0x1d
29 AF_DECnet = 0xc 29 AF_DECnet = 0xc
30 AF_ECONET = 0x13 30 AF_ECONET = 0x13
31 AF_FILE = 0x1 31 AF_FILE = 0x1
32 AF_IB = 0x1b 32 AF_IB = 0x1b
33 AF_IEEE802154 = 0x24 33 AF_IEEE802154 = 0x24
34 AF_INET = 0x2 34 AF_INET = 0x2
35 AF_INET6 = 0xa 35 AF_INET6 = 0xa
36 AF_IPX = 0x4 36 AF_IPX = 0x4
37 AF_IRDA = 0x17 37 AF_IRDA = 0x17
38 AF_ISDN = 0x22 38 AF_ISDN = 0x22
39 AF_IUCV = 0x20 39 AF_IUCV = 0x20
40 AF_KCM = 0x29 40 AF_KCM = 0x29
41 AF_KEY = 0xf 41 AF_KEY = 0xf
42 AF_LLC = 0x1a 42 AF_LLC = 0x1a
43 AF_LOCAL = 0x1 43 AF_LOCAL = 0x1
44 AF_MAX = 0x2d 44 AF_MAX = 0x2d
45 AF_MPLS = 0x1c 45 AF_MPLS = 0x1c
46 AF_NETBEUI = 0xd 46 AF_NETBEUI = 0xd
47 AF_NETLINK = 0x10 47 AF_NETLINK = 0x10
48 AF_NETROM = 0x6 48 AF_NETROM = 0x6
49 AF_NFC = 0x27 49 AF_NFC = 0x27
50 AF_PACKET = 0x11 50 AF_PACKET = 0x11
51 AF_PHONET = 0x23 51 AF_PHONET = 0x23
52 AF_PPPOX = 0x18 52 AF_PPPOX = 0x18
53 AF_QIPCRTR = 0x2a 53 AF_QIPCRTR = 0x2a
54 AF_RDS = 0x15 54 AF_RDS = 0x15
55 AF_ROSE = 0xb 55 AF_ROSE = 0xb
56 AF_ROUTE = 0x10 56 AF_ROUTE = 0x10
57 AF_RXRPC = 0x21 57 AF_RXRPC = 0x21
58 AF_SECURITY = 0xe 58 AF_SECURITY = 0xe
59 AF_SMC = 0x2b 59 AF_SMC = 0x2b
60 AF_SNA = 0x16 60 AF_SNA = 0x16
61 AF_TIPC = 0x1e 61 AF_TIPC = 0x1e
62 AF_UNIX = 0x1 62 AF_UNIX = 0x1
63 AF_UNSPEC = 0x0 63 AF_UNSPEC = 0x0
64 AF_VSOCK = 0x28 64 AF_VSOCK = 0x28
65 AF_WANPIPE = 0x19 65 AF_WANPIPE = 0x19
66 AF_X25 = 0x9 66 AF_X25 = 0x9
67 AF_XDP = 0x2c 67 AF_XDP = 0x2c
68 ALG_OP_DECRYPT = 0x0 68 ALG_OP_DECRYPT = 0x0
69 ALG_OP_ENCRYPT = 0x1 69 ALG_OP_ENCRYPT = 0x1
70 ALG_SET_AEAD_ASSOCLEN = 0x4 70 ALG_SET_AEAD_ASSOCLEN = 0x4
71 ALG_SET_AEAD_AUTHSIZE = 0x5 71 ALG_SET_AEAD_AUTHSIZE = 0x5
72 ALG_SET_IV = 0x2 72 ALG_SET_IV = 0x2
73 ALG_SET_KEY = 0x1 73 ALG_SET_KEY = 0x1
74 ALG_SET_OP = 0x3 74 ALG_SET_OP = 0x3
75 ANON_INODE_FS_MAGIC = 0x9041934 75 ANON_INODE_FS_MAGIC = 0x9041934
76 ARPHRD_6LOWPAN = 0x339 76 ARPHRD_6LOWPAN = 0x339
77 ARPHRD_ADAPT = 0x108 77 ARPHRD_ADAPT = 0x108
78 ARPHRD_APPLETLK = 0x8 78 ARPHRD_APPLETLK = 0x8
79 ARPHRD_ARCNET = 0x7 79 ARPHRD_ARCNET = 0x7
80 ARPHRD_ASH = 0x30d 80 ARPHRD_ASH = 0x30d
81 ARPHRD_ATM = 0x13 81 ARPHRD_ATM = 0x13
82 ARPHRD_AX25 = 0x3 82 ARPHRD_AX25 = 0x3
83 ARPHRD_BIF = 0x307 83 ARPHRD_BIF = 0x307
84 ARPHRD_CAIF = 0x336 84 ARPHRD_CAIF = 0x336
85 ARPHRD_CAN = 0x118 85 ARPHRD_CAN = 0x118
86 ARPHRD_CHAOS = 0x5 86 ARPHRD_CHAOS = 0x5
87 ARPHRD_CISCO = 0x201 87 ARPHRD_CISCO = 0x201
88 ARPHRD_CSLIP = 0x101 88 ARPHRD_CSLIP = 0x101
89 ARPHRD_CSLIP6 = 0x103 89 ARPHRD_CSLIP6 = 0x103
90 ARPHRD_DDCMP = 0x205 90 ARPHRD_DDCMP = 0x205
91 ARPHRD_DLCI = 0xf 91 ARPHRD_DLCI = 0xf
92 ARPHRD_ECONET = 0x30e 92 ARPHRD_ECONET = 0x30e
93 ARPHRD_EETHER = 0x2 93 ARPHRD_EETHER = 0x2
94 ARPHRD_ETHER = 0x1 94 ARPHRD_ETHER = 0x1
95 ARPHRD_EUI64 = 0x1b 95 ARPHRD_EUI64 = 0x1b
96 ARPHRD_FCAL = 0x311 96 ARPHRD_FCAL = 0x311
97 ARPHRD_FCFABRIC = 0x313 97 ARPHRD_FCFABRIC = 0x313
98 ARPHRD_FCPL = 0x312 98 ARPHRD_FCPL = 0x312
99 ARPHRD_FCPP = 0x310 99 ARPHRD_FCPP = 0x310
100 ARPHRD_FDDI = 0x306 100 ARPHRD_FDDI = 0x306
101 ARPHRD_FRAD = 0x302 101 ARPHRD_FRAD = 0x302
102 ARPHRD_HDLC = 0x201 102 ARPHRD_HDLC = 0x201
103 ARPHRD_HIPPI = 0x30c 103 ARPHRD_HIPPI = 0x30c
104 ARPHRD_HWX25 = 0x110 104 ARPHRD_HWX25 = 0x110
105 ARPHRD_IEEE1394 = 0x18 105 ARPHRD_IEEE1394 = 0x18
106 ARPHRD_IEEE802 = 0x6 106 ARPHRD_IEEE802 = 0x6
107 ARPHRD_IEEE80211 = 0x321 107 ARPHRD_IEEE80211 = 0x321
108 ARPHRD_IEEE80211_PRISM = 0x322 108 ARPHRD_IEEE80211_PRISM = 0x322
109 ARPHRD_IEEE80211_RADIOTAP = 0x323 109 ARPHRD_IEEE80211_RADIOTAP = 0x323
110 ARPHRD_IEEE802154 = 0x324 110 ARPHRD_IEEE802154 = 0x324
111 ARPHRD_IEEE802154_MONITOR = 0x325 111 ARPHRD_IEEE802154_MONITOR = 0x325
112 ARPHRD_IEEE802_TR = 0x320 112 ARPHRD_IEEE802_TR = 0x320
113 ARPHRD_INFINIBAND = 0x20 113 ARPHRD_INFINIBAND = 0x20
114 ARPHRD_IP6GRE = 0x337 114 ARPHRD_IP6GRE = 0x337
115 ARPHRD_IPDDP = 0x309 115 ARPHRD_IPDDP = 0x309
116 ARPHRD_IPGRE = 0x30a 116 ARPHRD_IPGRE = 0x30a
117 ARPHRD_IRDA = 0x30f 117 ARPHRD_IRDA = 0x30f
118 ARPHRD_LAPB = 0x204 118 ARPHRD_LAPB = 0x204
119 ARPHRD_LOCALTLK = 0x305 119 ARPHRD_LOCALTLK = 0x305
120 ARPHRD_LOOPBACK = 0x304 120 ARPHRD_LOOPBACK = 0x304
121 ARPHRD_METRICOM = 0x17 121 ARPHRD_METRICOM = 0x17
122 ARPHRD_NETLINK = 0x338 122 ARPHRD_NETLINK = 0x338
123 ARPHRD_NETROM = 0x0 123 ARPHRD_NETROM = 0x0
124 ARPHRD_NONE = 0xfffe 124 ARPHRD_NONE = 0xfffe
125 ARPHRD_PHONET = 0x334 125 ARPHRD_PHONET = 0x334
126 ARPHRD_PHONET_PIPE = 0x335 126 ARPHRD_PHONET_PIPE = 0x335
127 ARPHRD_PIMREG = 0x30b 127 ARPHRD_PIMREG = 0x30b
128 ARPHRD_PPP = 0x200 128 ARPHRD_PPP = 0x200
129 ARPHRD_PRONET = 0x4 129 ARPHRD_PRONET = 0x4
130 ARPHRD_RAWHDLC = 0x206 130 ARPHRD_RAWHDLC = 0x206
131 ARPHRD_RAWIP = 0x207 131 ARPHRD_RAWIP = 0x207
132 ARPHRD_ROSE = 0x10e 132 ARPHRD_ROSE = 0x10e
133 ARPHRD_RSRVD = 0x104 133 ARPHRD_RSRVD = 0x104
134 ARPHRD_SIT = 0x308 134 ARPHRD_SIT = 0x308
135 ARPHRD_SKIP = 0x303 135 ARPHRD_SKIP = 0x303
136 ARPHRD_SLIP = 0x100 136 ARPHRD_SLIP = 0x100
137 ARPHRD_SLIP6 = 0x102 137 ARPHRD_SLIP6 = 0x102
138 ARPHRD_TUNNEL = 0x300 138 ARPHRD_TUNNEL = 0x300
139 ARPHRD_TUNNEL6 = 0x301 139 ARPHRD_TUNNEL6 = 0x301
140 ARPHRD_VOID = 0xffff 140 ARPHRD_VOID = 0xffff
141 ARPHRD_VSOCKMON = 0x33a 141 ARPHRD_VSOCKMON = 0x33a
142 ARPHRD_X25 = 0x10f 142 ARPHRD_X25 = 0x10f
143 AUTOFS_SUPER_MAGIC = 0x187 143 AUTOFS_SUPER_MAGIC = 0x187
144 B0 = 0x0 144 B0 = 0x0
145 B1000000 = 0x17 145 B1000000 = 0x17
146 B110 = 0x3 146 B110 = 0x3
147 B115200 = 0x11 147 B115200 = 0x11
148 B1152000 = 0x18 148 B1152000 = 0x18
149 B1200 = 0x9 149 B1200 = 0x9
150 B134 = 0x4 150 B134 = 0x4
151 B150 = 0x5 151 B150 = 0x5
152 B1500000 = 0x19 152 B1500000 = 0x19
153 B1800 = 0xa 153 B1800 = 0xa
154 B19200 = 0xe 154 B19200 = 0xe
155 B200 = 0x6 155 B200 = 0x6
156 B2000000 = 0x1a 156 B2000000 = 0x1a
157 B230400 = 0x12 157 B230400 = 0x12
158 B2400 = 0xb 158 B2400 = 0xb
159 B2500000 = 0x1b 159 B2500000 = 0x1b
160 B300 = 0x7 160 B300 = 0x7
161 B3000000 = 0x1c 161 B3000000 = 0x1c
162 B3500000 = 0x1d 162 B3500000 = 0x1d
163 B38400 = 0xf 163 B38400 = 0xf
164 B4000000 = 0x1e 164 B4000000 = 0x1e
165 B460800 = 0x13 165 B460800 = 0x13
166 B4800 = 0xc 166 B4800 = 0xc
167 B50 = 0x1 167 B50 = 0x1
168 B500000 = 0x14 168 B500000 = 0x14
169 B57600 = 0x10 169 B57600 = 0x10
170 B576000 = 0x15 170 B576000 = 0x15
171 B600 = 0x8 171 B600 = 0x8
172 B75 = 0x2 172 B75 = 0x2
173 B921600 = 0x16 173 B921600 = 0x16
174 B9600 = 0xd 174 B9600 = 0xd
175 BALLOON_KVM_MAGIC = 0x13661366 175 BALLOON_KVM_MAGIC = 0x13661366
176 BDEVFS_MAGIC = 0x62646576 176 BDEVFS_MAGIC = 0x62646576
177 BINDERFS_SUPER_MAGIC = 0x6c6f6f70 177 BINDERFS_SUPER_MAGIC = 0x6c6f6f70
178 BINFMTFS_MAGIC = 0x42494e4d 178 BINFMTFS_MAGIC = 0x42494e4d
179 BLKBSZGET = 0x40081270 179 BLKBSZGET = 0x40081270
180 BLKBSZSET = 0x80081271 180 BLKBSZSET = 0x80081271
181 BLKFLSBUF = 0x20001261 181 BLKFLSBUF = 0x20001261
182 BLKFRAGET = 0x20001265 182 BLKFRAGET = 0x20001265
183 BLKFRASET = 0x20001264 183 BLKFRASET = 0x20001264
184 BLKGETSIZE = 0x20001260 184 BLKGETSIZE = 0x20001260
185 BLKGETSIZE64 = 0x40081272 185 BLKGETSIZE64 = 0x40081272
186 BLKPBSZGET = 0x2000127b 186 BLKPBSZGET = 0x2000127b
187 BLKRAGET = 0x20001263 187 BLKRAGET = 0x20001263
188 BLKRASET = 0x20001262 188 BLKRASET = 0x20001262
189 BLKROGET = 0x2000125e 189 BLKROGET = 0x2000125e
190 BLKROSET = 0x2000125d 190 BLKROSET = 0x2000125d
191 BLKRRPART = 0x2000125f 191 BLKRRPART = 0x2000125f
192 BLKSECTGET = 0x20001267 192 BLKSECTGET = 0x20001267
193 BLKSECTSET = 0x20001266 193 BLKSECTSET = 0x20001266
194 BLKSSZGET = 0x20001268 194 BLKSSZGET = 0x20001268
195 BOTHER = 0x1f 195 BOTHER = 0x1f
196 BPF_A = 0x10 196 BPF_A = 0x10
197 BPF_ABS = 0x20 197 BPF_ABS = 0x20
198 BPF_ADD = 0x0 198 BPF_ADD = 0x0
199 BPF_ADJ_ROOM_ENCAP_L2_MASK = 0xff 199 BPF_ADJ_ROOM_ENCAP_L2_MASK = 0xff
200 BPF_ADJ_ROOM_ENCAP_L2_SHIFT = 0x38 200 BPF_ADJ_ROOM_ENCAP_L2_SHIFT = 0x38
201 BPF_ALU = 0x4 201 BPF_ALU = 0x4
202 BPF_ALU64 = 0x7 202 BPF_ALU64 = 0x7
203 BPF_AND = 0x50 203 BPF_AND = 0x50
204 BPF_ANY = 0x0 204 BPF_ANY = 0x0
205 BPF_ARSH = 0xc0 205 BPF_ARSH = 0xc0
206 BPF_B = 0x10 206 BPF_B = 0x10
207 BPF_BUILD_ID_SIZE = 0x14 207 BPF_BUILD_ID_SIZE = 0x14
208 BPF_CALL = 0x80 208 BPF_CALL = 0x80
209 BPF_DEVCG_ACC_MKNOD = 0x1 209 BPF_DEVCG_ACC_MKNOD = 0x1
210 BPF_DEVCG_ACC_READ = 0x2 210 BPF_DEVCG_ACC_READ = 0x2
211 BPF_DEVCG_ACC_WRITE = 0x4 211 BPF_DEVCG_ACC_WRITE = 0x4
212 BPF_DEVCG_DEV_BLOCK = 0x1 212 BPF_DEVCG_DEV_BLOCK = 0x1
213 BPF_DEVCG_DEV_CHAR = 0x2 213 BPF_DEVCG_DEV_CHAR = 0x2
214 BPF_DIV = 0x30 214 BPF_DIV = 0x30
215 BPF_DW = 0x18 215 BPF_DW = 0x18
216 BPF_END = 0xd0 216 BPF_END = 0xd0
217 BPF_EXIST = 0x2 217 BPF_EXIST = 0x2
218 BPF_EXIT = 0x90 218 BPF_EXIT = 0x90
219 BPF_FROM_BE = 0x8 219 BPF_FLOW_DISSECTOR_F_PARSE_1ST_FRAG = 0x1
220 BPF_FROM_LE = 0x0 220 BPF_FLOW_DISSECTOR_F_STOP_AT_ENCAP = 0x4
221 BPF_FS_MAGIC = 0xcafe4a11 221 BPF_FLOW_DISSECTOR_F_STOP_AT_FLOW_LABEL = 0x2
222 BPF_F_ADJ_ROOM_ENCAP_L3_IPV4 = 0x2 222 BPF_FROM_BE = 0x8
223 BPF_F_ADJ_ROOM_ENCAP_L3_IPV6 = 0x4 223 BPF_FROM_LE = 0x0
224 BPF_F_ADJ_ROOM_ENCAP_L4_GRE = 0x8 224 BPF_FS_MAGIC = 0xcafe4a11
225 BPF_F_ADJ_ROOM_ENCAP_L4_UDP = 0x10 225 BPF_F_ADJ_ROOM_ENCAP_L3_IPV4 = 0x2
226 BPF_F_ADJ_ROOM_FIXED_GSO = 0x1 226 BPF_F_ADJ_ROOM_ENCAP_L3_IPV6 = 0x4
227 BPF_F_ALLOW_MULTI = 0x2 227 BPF_F_ADJ_ROOM_ENCAP_L4_GRE = 0x8
228 BPF_F_ALLOW_OVERRIDE = 0x1 228 BPF_F_ADJ_ROOM_ENCAP_L4_UDP = 0x10
229 BPF_F_ANY_ALIGNMENT = 0x2 229 BPF_F_ADJ_ROOM_FIXED_GSO = 0x1
230 BPF_F_CTXLEN_MASK = 0xfffff00000000 230 BPF_F_ALLOW_MULTI = 0x2
231 BPF_F_CURRENT_CPU = 0xffffffff 231 BPF_F_ALLOW_OVERRIDE = 0x1
232 BPF_F_CURRENT_NETNS = -0x1 232 BPF_F_ANY_ALIGNMENT = 0x2
233 BPF_F_DONT_FRAGMENT = 0x4 233 BPF_F_CLONE = 0x200
234 BPF_F_FAST_STACK_CMP = 0x200 234 BPF_F_CTXLEN_MASK = 0xfffff00000000
235 BPF_F_HDR_FIELD_MASK = 0xf 235 BPF_F_CURRENT_CPU = 0xffffffff
236 BPF_F_INDEX_MASK = 0xffffffff 236 BPF_F_CURRENT_NETNS = -0x1
237 BPF_F_INGRESS = 0x1 237 BPF_F_DONT_FRAGMENT = 0x4
238 BPF_F_INVALIDATE_HASH = 0x2 238 BPF_F_FAST_STACK_CMP = 0x200
239 BPF_F_LOCK = 0x4 239 BPF_F_HDR_FIELD_MASK = 0xf
240 BPF_F_MARK_ENFORCE = 0x40 240 BPF_F_INDEX_MASK = 0xffffffff
241 BPF_F_MARK_MANGLED_0 = 0x20 241 BPF_F_INGRESS = 0x1
242 BPF_F_NO_COMMON_LRU = 0x2 242 BPF_F_INVALIDATE_HASH = 0x2
243 BPF_F_NO_PREALLOC = 0x1 243 BPF_F_LOCK = 0x4
244 BPF_F_NUMA_NODE = 0x4 244 BPF_F_MARK_ENFORCE = 0x40
245 BPF_F_PSEUDO_HDR = 0x10 245 BPF_F_MARK_MANGLED_0 = 0x20
246 BPF_F_QUERY_EFFECTIVE = 0x1 246 BPF_F_MMAPABLE = 0x400
247 BPF_F_RDONLY = 0x8 247 BPF_F_NO_COMMON_LRU = 0x2
248 BPF_F_RDONLY_PROG = 0x80 248 BPF_F_NO_PREALLOC = 0x1
249 BPF_F_RECOMPUTE_CSUM = 0x1 249 BPF_F_NUMA_NODE = 0x4
250 BPF_F_REUSE_STACKID = 0x400 250 BPF_F_PSEUDO_HDR = 0x10
251 BPF_F_SEQ_NUMBER = 0x8 251 BPF_F_QUERY_EFFECTIVE = 0x1
252 BPF_F_SKIP_FIELD_MASK = 0xff 252 BPF_F_RDONLY = 0x8
253 BPF_F_STACK_BUILD_ID = 0x20 253 BPF_F_RDONLY_PROG = 0x80
254 BPF_F_STRICT_ALIGNMENT = 0x1 254 BPF_F_RECOMPUTE_CSUM = 0x1
255 BPF_F_SYSCTL_BASE_NAME = 0x1 255 BPF_F_REUSE_STACKID = 0x400
256 BPF_F_TUNINFO_IPV6 = 0x1 256 BPF_F_SEQ_NUMBER = 0x8
257 BPF_F_USER_BUILD_ID = 0x800 257 BPF_F_SKIP_FIELD_MASK = 0xff
258 BPF_F_USER_STACK = 0x100 258 BPF_F_STACK_BUILD_ID = 0x20
259 BPF_F_WRONLY = 0x10 259 BPF_F_STRICT_ALIGNMENT = 0x1
260 BPF_F_WRONLY_PROG = 0x100 260 BPF_F_SYSCTL_BASE_NAME = 0x1
261 BPF_F_ZERO_CSUM_TX = 0x2 261 BPF_F_TEST_RND_HI32 = 0x4
262 BPF_F_ZERO_SEED = 0x40 262 BPF_F_TEST_STATE_FREQ = 0x8
263 BPF_H = 0x8 263 BPF_F_TUNINFO_IPV6 = 0x1
264 BPF_IMM = 0x0 264 BPF_F_USER_BUILD_ID = 0x800
265 BPF_IND = 0x40 265 BPF_F_USER_STACK = 0x100
266 BPF_JA = 0x0 266 BPF_F_WRONLY = 0x10
267 BPF_JEQ = 0x10 267 BPF_F_WRONLY_PROG = 0x100
268 BPF_JGE = 0x30 268 BPF_F_ZERO_CSUM_TX = 0x2
269 BPF_JGT = 0x20 269 BPF_F_ZERO_SEED = 0x40
270 BPF_JLE = 0xb0 270 BPF_H = 0x8
271 BPF_JLT = 0xa0 271 BPF_IMM = 0x0
272 BPF_JMP = 0x5 272 BPF_IND = 0x40
273 BPF_JMP32 = 0x6 273 BPF_JA = 0x0
274 BPF_JNE = 0x50 274 BPF_JEQ = 0x10
275 BPF_JSET = 0x40 275 BPF_JGE = 0x30
276 BPF_JSGE = 0x70 276 BPF_JGT = 0x20
277 BPF_JSGT = 0x60 277 BPF_JLE = 0xb0
278 BPF_JSLE = 0xd0 278 BPF_JLT = 0xa0
279 BPF_JSLT = 0xc0 279 BPF_JMP = 0x5
280 BPF_K = 0x0 280 BPF_JMP32 = 0x6
281 BPF_LD = 0x0 281 BPF_JNE = 0x50
282 BPF_LDX = 0x1 282 BPF_JSET = 0x40
283 BPF_LEN = 0x80 283 BPF_JSGE = 0x70
284 BPF_LL_OFF = -0x200000 284 BPF_JSGT = 0x60
285 BPF_LSH = 0x60 285 BPF_JSLE = 0xd0
286 BPF_MAJOR_VERSION = 0x1 286 BPF_JSLT = 0xc0
287 BPF_MAXINSNS = 0x1000 287 BPF_K = 0x0
288 BPF_MEM = 0x60 288 BPF_LD = 0x0
289 BPF_MEMWORDS = 0x10 289 BPF_LDX = 0x1
290 BPF_MINOR_VERSION = 0x1 290 BPF_LEN = 0x80
291 BPF_MISC = 0x7 291 BPF_LL_OFF = -0x200000
292 BPF_MOD = 0x90 292 BPF_LSH = 0x60
293 BPF_MOV = 0xb0 293 BPF_MAJOR_VERSION = 0x1
294 BPF_MSH = 0xa0 294 BPF_MAXINSNS = 0x1000
295 BPF_MUL = 0x20 295 BPF_MEM = 0x60
296 BPF_NEG = 0x80 296 BPF_MEMWORDS = 0x10
297 BPF_NET_OFF = -0x100000 297 BPF_MINOR_VERSION = 0x1
298 BPF_NOEXIST = 0x1 298 BPF_MISC = 0x7
299 BPF_OBJ_NAME_LEN = 0x10 299 BPF_MOD = 0x90
300 BPF_OR = 0x40 300 BPF_MOV = 0xb0
301 BPF_PSEUDO_CALL = 0x1 301 BPF_MSH = 0xa0
302 BPF_PSEUDO_MAP_FD = 0x1 302 BPF_MUL = 0x20
303 BPF_PSEUDO_MAP_VALUE = 0x2 303 BPF_NEG = 0x80
304 BPF_RET = 0x6 304 BPF_NET_OFF = -0x100000
305 BPF_RSH = 0x70 305 BPF_NOEXIST = 0x1
306 BPF_SK_STORAGE_GET_F_CREATE = 0x1 306 BPF_OBJ_NAME_LEN = 0x10
307 BPF_SOCK_OPS_ALL_CB_FLAGS = 0x7 307 BPF_OR = 0x40
308 BPF_SOCK_OPS_RETRANS_CB_FLAG = 0x2 308 BPF_PSEUDO_CALL = 0x1
309 BPF_SOCK_OPS_RTO_CB_FLAG = 0x1 309 BPF_PSEUDO_MAP_FD = 0x1
310 BPF_SOCK_OPS_STATE_CB_FLAG = 0x4 310 BPF_PSEUDO_MAP_VALUE = 0x2
311 BPF_ST = 0x2 311 BPF_RET = 0x6
312 BPF_STX = 0x3 312 BPF_RSH = 0x70
313 BPF_SUB = 0x10 313 BPF_SK_STORAGE_GET_F_CREATE = 0x1
314 BPF_TAG_SIZE = 0x8 314 BPF_SOCK_OPS_ALL_CB_FLAGS = 0xf
315 BPF_TAX = 0x0 315 BPF_SOCK_OPS_RETRANS_CB_FLAG = 0x2
316 BPF_TO_BE = 0x8 316 BPF_SOCK_OPS_RTO_CB_FLAG = 0x1
317 BPF_TO_LE = 0x0 317 BPF_SOCK_OPS_RTT_CB_FLAG = 0x8
318 BPF_TXA = 0x80 318 BPF_SOCK_OPS_STATE_CB_FLAG = 0x4
319 BPF_W = 0x0 319 BPF_ST = 0x2
320 BPF_X = 0x8 320 BPF_STX = 0x3
321 BPF_XADD = 0xc0 321 BPF_SUB = 0x10
322 BPF_XOR = 0xa0 322 BPF_TAG_SIZE = 0x8
323 BRKINT = 0x2 323 BPF_TAX = 0x0
324 BS0 = 0x0 324 BPF_TO_BE = 0x8
325 BS1 = 0x8000 325 BPF_TO_LE = 0x0
326 BSDLY = 0x8000 326 BPF_TXA = 0x80
327 BTRFS_SUPER_MAGIC = 0x9123683e 327 BPF_W = 0x0
328 BTRFS_TEST_MAGIC = 0x73727279 328 BPF_X = 0x8
329 CAN_BCM = 0x2 329 BPF_XADD = 0xc0
330 CAN_EFF_FLAG = 0x80000000 330 BPF_XOR = 0xa0
331 CAN_EFF_ID_BITS = 0x1d 331 BRKINT = 0x2
332 CAN_EFF_MASK = 0x1fffffff 332 BS0 = 0x0
333 CAN_ERR_FLAG = 0x20000000 333 BS1 = 0x8000
334 CAN_ERR_MASK = 0x1fffffff 334 BSDLY = 0x8000
335 CAN_INV_FILTER = 0x20000000 335 BTRFS_SUPER_MAGIC = 0x9123683e
336 CAN_ISOTP = 0x6 336 BTRFS_TEST_MAGIC = 0x73727279
337 CAN_MAX_DLC = 0x8 337 CAN_BCM = 0x2
338 CAN_MAX_DLEN = 0x8 338 CAN_EFF_FLAG = 0x80000000
339 CAN_MCNET = 0x5 339 CAN_EFF_ID_BITS = 0x1d
340 CAN_MTU = 0x10 340 CAN_EFF_MASK = 0x1fffffff
341 CAN_NPROTO = 0x7 341 CAN_ERR_FLAG = 0x20000000
342 CAN_RAW = 0x1 342 CAN_ERR_MASK = 0x1fffffff
343 CAN_RAW_FILTER_MAX = 0x200 343 CAN_INV_FILTER = 0x20000000
344 CAN_RTR_FLAG = 0x40000000 344 CAN_ISOTP = 0x6
345 CAN_SFF_ID_BITS = 0xb 345 CAN_J1939 = 0x7
346 CAN_SFF_MASK = 0x7ff 346 CAN_MAX_DLC = 0x8
347 CAN_TP16 = 0x3 347 CAN_MAX_DLEN = 0x8
348 CAN_TP20 = 0x4 348 CAN_MCNET = 0x5
349 CAP_AUDIT_CONTROL = 0x1e 349 CAN_MTU = 0x10
350 CAP_AUDIT_READ = 0x25 350 CAN_NPROTO = 0x8
351 CAP_AUDIT_WRITE = 0x1d 351 CAN_RAW = 0x1
352 CAP_BLOCK_SUSPEND = 0x24 352 CAN_RAW_FILTER_MAX = 0x200
353 CAP_CHOWN = 0x0 353 CAN_RTR_FLAG = 0x40000000
354 CAP_DAC_OVERRIDE = 0x1 354 CAN_SFF_ID_BITS = 0xb
355 CAP_DAC_READ_SEARCH = 0x2 355 CAN_SFF_MASK = 0x7ff
356 CAP_FOWNER = 0x3 356 CAN_TP16 = 0x3
357 CAP_FSETID = 0x4 357 CAN_TP20 = 0x4
358 CAP_IPC_LOCK = 0xe 358 CAP_AUDIT_CONTROL = 0x1e
359 CAP_IPC_OWNER = 0xf 359 CAP_AUDIT_READ = 0x25
360 CAP_KILL = 0x5 360 CAP_AUDIT_WRITE = 0x1d
361 CAP_LAST_CAP = 0x25 361 CAP_BLOCK_SUSPEND = 0x24
362 CAP_LEASE = 0x1c 362 CAP_CHOWN = 0x0
363 CAP_LINUX_IMMUTABLE = 0x9 363 CAP_DAC_OVERRIDE = 0x1
364 CAP_MAC_ADMIN = 0x21 364 CAP_DAC_READ_SEARCH = 0x2
365 CAP_MAC_OVERRIDE = 0x20 365 CAP_FOWNER = 0x3
366 CAP_MKNOD = 0x1b 366 CAP_FSETID = 0x4
367 CAP_NET_ADMIN = 0xc 367 CAP_IPC_LOCK = 0xe
368 CAP_NET_BIND_SERVICE = 0xa 368 CAP_IPC_OWNER = 0xf
369 CAP_NET_BROADCAST = 0xb 369 CAP_KILL = 0x5
370 CAP_NET_RAW = 0xd 370 CAP_LAST_CAP = 0x25
371 CAP_SETFCAP = 0x1f 371 CAP_LEASE = 0x1c
372 CAP_SETGID = 0x6 372 CAP_LINUX_IMMUTABLE = 0x9
373 CAP_SETPCAP = 0x8 373 CAP_MAC_ADMIN = 0x21
374 CAP_SETUID = 0x7 374 CAP_MAC_OVERRIDE = 0x20
375 CAP_SYSLOG = 0x22 375 CAP_MKNOD = 0x1b
376 CAP_SYS_ADMIN = 0x15 376 CAP_NET_ADMIN = 0xc
377 CAP_SYS_BOOT = 0x16 377 CAP_NET_BIND_SERVICE = 0xa
378 CAP_SYS_CHROOT = 0x12 378 CAP_NET_BROADCAST = 0xb
379 CAP_SYS_MODULE = 0x10 379 CAP_NET_RAW = 0xd
380 CAP_SYS_NICE = 0x17 380 CAP_SETFCAP = 0x1f
381 CAP_SYS_PACCT = 0x14 381 CAP_SETGID = 0x6
382 CAP_SYS_PTRACE = 0x13 382 CAP_SETPCAP = 0x8
383 CAP_SYS_RAWIO = 0x11 383 CAP_SETUID = 0x7
384 CAP_SYS_RESOURCE = 0x18 384 CAP_SYSLOG = 0x22
385 CAP_SYS_TIME = 0x19 385 CAP_SYS_ADMIN = 0x15
386 CAP_SYS_TTY_CONFIG = 0x1a 386 CAP_SYS_BOOT = 0x16
387 CAP_WAKE_ALARM = 0x23 387 CAP_SYS_CHROOT = 0x12
388 CBAUD = 0xff 388 CAP_SYS_MODULE = 0x10
389 CBAUDEX = 0x0 389 CAP_SYS_NICE = 0x17
390 CFLUSH = 0xf 390 CAP_SYS_PACCT = 0x14
391 CGROUP2_SUPER_MAGIC = 0x63677270 391 CAP_SYS_PTRACE = 0x13
392 CGROUP_SUPER_MAGIC = 0x27e0eb 392 CAP_SYS_RAWIO = 0x11
393 CIBAUD = 0xff0000 393 CAP_SYS_RESOURCE = 0x18
394 CLOCAL = 0x8000 394 CAP_SYS_TIME = 0x19
395 CLOCK_BOOTTIME = 0x7 395 CAP_SYS_TTY_CONFIG = 0x1a
396 CLOCK_BOOTTIME_ALARM = 0x9 396 CAP_WAKE_ALARM = 0x23
397 CLOCK_DEFAULT = 0x0 397 CBAUD = 0xff
398 CLOCK_EXT = 0x1 398 CBAUDEX = 0x0
399 CLOCK_INT = 0x2 399 CFLUSH = 0xf
400 CLOCK_MONOTONIC = 0x1 400 CGROUP2_SUPER_MAGIC = 0x63677270
401 CLOCK_MONOTONIC_COARSE = 0x6 401 CGROUP_SUPER_MAGIC = 0x27e0eb
402 CLOCK_MONOTONIC_RAW = 0x4 402 CIBAUD = 0xff0000
403 CLOCK_PROCESS_CPUTIME_ID = 0x2 403 CLOCAL = 0x8000
404 CLOCK_REALTIME = 0x0 404 CLOCK_BOOTTIME = 0x7
405 CLOCK_REALTIME_ALARM = 0x8 405 CLOCK_BOOTTIME_ALARM = 0x9
406 CLOCK_REALTIME_COARSE = 0x5 406 CLOCK_DEFAULT = 0x0
407 CLOCK_TAI = 0xb 407 CLOCK_EXT = 0x1
408 CLOCK_THREAD_CPUTIME_ID = 0x3 408 CLOCK_INT = 0x2
409 CLOCK_TXFROMRX = 0x4 409 CLOCK_MONOTONIC = 0x1
410 CLOCK_TXINT = 0x3 410 CLOCK_MONOTONIC_COARSE = 0x6
411 CLONE_CHILD_CLEARTID = 0x200000 411 CLOCK_MONOTONIC_RAW = 0x4
412 CLONE_CHILD_SETTID = 0x1000000 412 CLOCK_PROCESS_CPUTIME_ID = 0x2
413 CLONE_DETACHED = 0x400000 413 CLOCK_REALTIME = 0x0
414 CLONE_FILES = 0x400 414 CLOCK_REALTIME_ALARM = 0x8
415 CLONE_FS = 0x200 415 CLOCK_REALTIME_COARSE = 0x5
416 CLONE_IO = 0x80000000 416 CLOCK_TAI = 0xb
417 CLONE_NEWCGROUP = 0x2000000 417 CLOCK_THREAD_CPUTIME_ID = 0x3
418 CLONE_NEWIPC = 0x8000000 418 CLOCK_TXFROMRX = 0x4
419 CLONE_NEWNET = 0x40000000 419 CLOCK_TXINT = 0x3
420 CLONE_NEWNS = 0x20000 420 CLONE_ARGS_SIZE_VER0 = 0x40
421 CLONE_NEWPID = 0x20000000 421 CLONE_ARGS_SIZE_VER1 = 0x50
422 CLONE_NEWUSER = 0x10000000 422 CLONE_CHILD_CLEARTID = 0x200000
423 CLONE_NEWUTS = 0x4000000 423 CLONE_CHILD_SETTID = 0x1000000
424 CLONE_PARENT = 0x8000 424 CLONE_CLEAR_SIGHAND = 0x100000000
425 CLONE_PARENT_SETTID = 0x100000 425 CLONE_DETACHED = 0x400000
426 CLONE_PIDFD = 0x1000 426 CLONE_FILES = 0x400
427 CLONE_PTRACE = 0x2000 427 CLONE_FS = 0x200
428 CLONE_SETTLS = 0x80000 428 CLONE_IO = 0x80000000
429 CLONE_SIGHAND = 0x800 429 CLONE_NEWCGROUP = 0x2000000
430 CLONE_SYSVSEM = 0x40000 430 CLONE_NEWIPC = 0x8000000
431 CLONE_THREAD = 0x10000 431 CLONE_NEWNET = 0x40000000
432 CLONE_UNTRACED = 0x800000 432 CLONE_NEWNS = 0x20000
433 CLONE_VFORK = 0x4000 433 CLONE_NEWPID = 0x20000000
434 CLONE_VM = 0x100 434 CLONE_NEWUSER = 0x10000000
435 CMSPAR = 0x40000000 435 CLONE_NEWUTS = 0x4000000
436 CODA_SUPER_MAGIC = 0x73757245 436 CLONE_PARENT = 0x8000
437 CR0 = 0x0 437 CLONE_PARENT_SETTID = 0x100000
438 CR1 = 0x1000 438 CLONE_PIDFD = 0x1000
439 CR2 = 0x2000 439 CLONE_PTRACE = 0x2000
440 CR3 = 0x3000 440 CLONE_SETTLS = 0x80000
441 CRAMFS_MAGIC = 0x28cd3d45 441 CLONE_SIGHAND = 0x800
442 CRDLY = 0x3000 442 CLONE_SYSVSEM = 0x40000
443 CREAD = 0x800 443 CLONE_THREAD = 0x10000
444 CRTSCTS = 0x80000000 444 CLONE_UNTRACED = 0x800000
445 CRYPTO_MAX_NAME = 0x40 445 CLONE_VFORK = 0x4000
446 CRYPTO_MSG_MAX = 0x15 446 CLONE_VM = 0x100
447 CRYPTO_NR_MSGTYPES = 0x6 447 CMSPAR = 0x40000000
448 CRYPTO_REPORT_MAXSIZE = 0x160 448 CODA_SUPER_MAGIC = 0x73757245
449 CS5 = 0x0 449 CR0 = 0x0
450 CS6 = 0x100 450 CR1 = 0x1000
451 CS7 = 0x200 451 CR2 = 0x2000
452 CS8 = 0x300 452 CR3 = 0x3000
453 CSIGNAL = 0xff 453 CRAMFS_MAGIC = 0x28cd3d45
454 CSIZE = 0x300 454 CRDLY = 0x3000
455 CSTART = 0x11 455 CREAD = 0x800
456 CSTATUS = 0x0 456 CRTSCTS = 0x80000000
457 CSTOP = 0x13 457 CRYPTO_MAX_NAME = 0x40
458 CSTOPB = 0x400 458 CRYPTO_MSG_MAX = 0x15
459 CSUSP = 0x1a 459 CRYPTO_NR_MSGTYPES = 0x6
460 DAXFS_MAGIC = 0x64646178 460 CRYPTO_REPORT_MAXSIZE = 0x160
461 DEBUGFS_MAGIC = 0x64626720 461 CS5 = 0x0
462 DEVPTS_SUPER_MAGIC = 0x1cd1 462 CS6 = 0x100
463 DT_BLK = 0x6 463 CS7 = 0x200
464 DT_CHR = 0x2 464 CS8 = 0x300
465 DT_DIR = 0x4 465 CSIGNAL = 0xff
466 DT_FIFO = 0x1 466 CSIZE = 0x300
467 DT_LNK = 0xa 467 CSTART = 0x11
468 DT_REG = 0x8 468 CSTATUS = 0x0
469 DT_SOCK = 0xc 469 CSTOP = 0x13
470 DT_UNKNOWN = 0x0 470 CSTOPB = 0x400
471 DT_WHT = 0xe 471 CSUSP = 0x1a
472 ECHO = 0x8 472 DAXFS_MAGIC = 0x64646178
473 ECHOCTL = 0x40 473 DEBUGFS_MAGIC = 0x64626720
474 ECHOE = 0x2 474 DEVLINK_CMD_ESWITCH_MODE_GET = 0x1d
475 ECHOK = 0x4 475 DEVLINK_CMD_ESWITCH_MODE_SET = 0x1e
476 ECHOKE = 0x1 476 DEVLINK_GENL_MCGRP_CONFIG_NAME = "config"
477 ECHONL = 0x10 477 DEVLINK_GENL_NAME = "devlink"
478 ECHOPRT = 0x20 478 DEVLINK_GENL_VERSION = 0x1
479 ECRYPTFS_SUPER_MAGIC = 0xf15f 479 DEVLINK_SB_THRESHOLD_TO_ALPHA_MAX = 0x14
480 EFD_CLOEXEC = 0x80000 480 DEVPTS_SUPER_MAGIC = 0x1cd1
481 EFD_NONBLOCK = 0x800 481 DMA_BUF_MAGIC = 0x444d4142
482 EFD_SEMAPHORE = 0x1 482 DT_BLK = 0x6
483 EFIVARFS_MAGIC = 0xde5e81e4 483 DT_CHR = 0x2
484 EFS_SUPER_MAGIC = 0x414a53 484 DT_DIR = 0x4
485 ENCODING_DEFAULT = 0x0 485 DT_FIFO = 0x1
486 ENCODING_FM_MARK = 0x3 486 DT_LNK = 0xa
487 ENCODING_FM_SPACE = 0x4 487 DT_REG = 0x8
488 ENCODING_MANCHESTER = 0x5 488 DT_SOCK = 0xc
489 ENCODING_NRZ = 0x1 489 DT_UNKNOWN = 0x0
490 ENCODING_NRZI = 0x2 490 DT_WHT = 0xe
491 EPOLLERR = 0x8 491 ECHO = 0x8
492 EPOLLET = 0x80000000 492 ECHOCTL = 0x40
493 EPOLLEXCLUSIVE = 0x10000000 493 ECHOE = 0x2
494 EPOLLHUP = 0x10 494 ECHOK = 0x4
495 EPOLLIN = 0x1 495 ECHOKE = 0x1
496 EPOLLMSG = 0x400 496 ECHONL = 0x10
497 EPOLLONESHOT = 0x40000000 497 ECHOPRT = 0x20
498 EPOLLOUT = 0x4 498 ECRYPTFS_SUPER_MAGIC = 0xf15f
499 EPOLLPRI = 0x2 499 EFD_CLOEXEC = 0x80000
500 EPOLLRDBAND = 0x80 500 EFD_NONBLOCK = 0x800
501 EPOLLRDHUP = 0x2000 501 EFD_SEMAPHORE = 0x1
502 EPOLLRDNORM = 0x40 502 EFIVARFS_MAGIC = 0xde5e81e4
503 EPOLLWAKEUP = 0x20000000 503 EFS_SUPER_MAGIC = 0x414a53
504 EPOLLWRBAND = 0x200 504 ENCODING_DEFAULT = 0x0
505 EPOLLWRNORM = 0x100 505 ENCODING_FM_MARK = 0x3
506 EPOLL_CLOEXEC = 0x80000 506 ENCODING_FM_SPACE = 0x4
507 EPOLL_CTL_ADD = 0x1 507 ENCODING_MANCHESTER = 0x5
508 EPOLL_CTL_DEL = 0x2 508 ENCODING_NRZ = 0x1
509 EPOLL_CTL_MOD = 0x3 509 ENCODING_NRZI = 0x2
510 ETH_P_1588 = 0x88f7 510 EPOLLERR = 0x8
511 ETH_P_8021AD = 0x88a8 511 EPOLLET = 0x80000000
512 ETH_P_8021AH = 0x88e7 512 EPOLLEXCLUSIVE = 0x10000000
513 ETH_P_8021Q = 0x8100 513 EPOLLHUP = 0x10
514 ETH_P_80221 = 0x8917 514 EPOLLIN = 0x1
515 ETH_P_802_2 = 0x4 515 EPOLLMSG = 0x400
516 ETH_P_802_3 = 0x1 516 EPOLLONESHOT = 0x40000000
517 ETH_P_802_3_MIN = 0x600 517 EPOLLOUT = 0x4
518 ETH_P_802_EX1 = 0x88b5 518 EPOLLPRI = 0x2
519 ETH_P_AARP = 0x80f3 519 EPOLLRDBAND = 0x80
520 ETH_P_AF_IUCV = 0xfbfb 520 EPOLLRDHUP = 0x2000
521 ETH_P_ALL = 0x3 521 EPOLLRDNORM = 0x40
522 ETH_P_AOE = 0x88a2 522 EPOLLWAKEUP = 0x20000000
523 ETH_P_ARCNET = 0x1a 523 EPOLLWRBAND = 0x200
524 ETH_P_ARP = 0x806 524 EPOLLWRNORM = 0x100
525 ETH_P_ATALK = 0x809b 525 EPOLL_CLOEXEC = 0x80000
526 ETH_P_ATMFATE = 0x8884 526 EPOLL_CTL_ADD = 0x1
527 ETH_P_ATMMPOA = 0x884c 527 EPOLL_CTL_DEL = 0x2
528 ETH_P_AX25 = 0x2 528 EPOLL_CTL_MOD = 0x3
529 ETH_P_BATMAN = 0x4305 529 EROFS_SUPER_MAGIC_V1 = 0xe0f5e1e2
530 ETH_P_BPQ = 0x8ff 530 ETH_P_1588 = 0x88f7
531 ETH_P_CAIF = 0xf7 531 ETH_P_8021AD = 0x88a8
532 ETH_P_CAN = 0xc 532 ETH_P_8021AH = 0x88e7
533 ETH_P_CANFD = 0xd 533 ETH_P_8021Q = 0x8100
534 ETH_P_CONTROL = 0x16 534 ETH_P_80221 = 0x8917
535 ETH_P_CUST = 0x6006 535 ETH_P_802_2 = 0x4
536 ETH_P_DDCMP = 0x6 536 ETH_P_802_3 = 0x1
537 ETH_P_DEC = 0x6000 537 ETH_P_802_3_MIN = 0x600
538 ETH_P_DIAG = 0x6005 538 ETH_P_802_EX1 = 0x88b5
539 ETH_P_DNA_DL = 0x6001 539 ETH_P_AARP = 0x80f3
540 ETH_P_DNA_RC = 0x6002 540 ETH_P_AF_IUCV = 0xfbfb
541 ETH_P_DNA_RT = 0x6003 541 ETH_P_ALL = 0x3
542 ETH_P_DSA = 0x1b 542 ETH_P_AOE = 0x88a2
543 ETH_P_DSA_8021Q = 0xdadb 543 ETH_P_ARCNET = 0x1a
544 ETH_P_ECONET = 0x18 544 ETH_P_ARP = 0x806
545 ETH_P_EDSA = 0xdada 545 ETH_P_ATALK = 0x809b
546 ETH_P_ERSPAN = 0x88be 546 ETH_P_ATMFATE = 0x8884
547 ETH_P_ERSPAN2 = 0x22eb 547 ETH_P_ATMMPOA = 0x884c
548 ETH_P_FCOE = 0x8906 548 ETH_P_AX25 = 0x2
549 ETH_P_FIP = 0x8914 549 ETH_P_BATMAN = 0x4305
550 ETH_P_HDLC = 0x19 550 ETH_P_BPQ = 0x8ff
551 ETH_P_HSR = 0x892f 551 ETH_P_CAIF = 0xf7
552 ETH_P_IBOE = 0x8915 552 ETH_P_CAN = 0xc
553 ETH_P_IEEE802154 = 0xf6 553 ETH_P_CANFD = 0xd
554 ETH_P_IEEEPUP = 0xa00 554 ETH_P_CONTROL = 0x16
555 ETH_P_IEEEPUPAT = 0xa01 555 ETH_P_CUST = 0x6006
556 ETH_P_IFE = 0xed3e 556 ETH_P_DDCMP = 0x6
557 ETH_P_IP = 0x800 557 ETH_P_DEC = 0x6000
558 ETH_P_IPV6 = 0x86dd 558 ETH_P_DIAG = 0x6005
559 ETH_P_IPX = 0x8137 559 ETH_P_DNA_DL = 0x6001
560 ETH_P_IRDA = 0x17 560 ETH_P_DNA_RC = 0x6002
561 ETH_P_LAT = 0x6004 561 ETH_P_DNA_RT = 0x6003
562 ETH_P_LINK_CTL = 0x886c 562 ETH_P_DSA = 0x1b
563 ETH_P_LOCALTALK = 0x9 563 ETH_P_DSA_8021Q = 0xdadb
564 ETH_P_LOOP = 0x60 564 ETH_P_ECONET = 0x18
565 ETH_P_LOOPBACK = 0x9000 565 ETH_P_EDSA = 0xdada
566 ETH_P_MACSEC = 0x88e5 566 ETH_P_ERSPAN = 0x88be
567 ETH_P_MAP = 0xf9 567 ETH_P_ERSPAN2 = 0x22eb
568 ETH_P_MOBITEX = 0x15 568 ETH_P_FCOE = 0x8906
569 ETH_P_MPLS_MC = 0x8848 569 ETH_P_FIP = 0x8914
570 ETH_P_MPLS_UC = 0x8847 570 ETH_P_HDLC = 0x19
571 ETH_P_MVRP = 0x88f5 571 ETH_P_HSR = 0x892f
572 ETH_P_NCSI = 0x88f8 572 ETH_P_IBOE = 0x8915
573 ETH_P_NSH = 0x894f 573 ETH_P_IEEE802154 = 0xf6
574 ETH_P_PAE = 0x888e 574 ETH_P_IEEEPUP = 0xa00
575 ETH_P_PAUSE = 0x8808 575 ETH_P_IEEEPUPAT = 0xa01
576 ETH_P_PHONET = 0xf5 576 ETH_P_IFE = 0xed3e
577 ETH_P_PPPTALK = 0x10 577 ETH_P_IP = 0x800
578 ETH_P_PPP_DISC = 0x8863 578 ETH_P_IPV6 = 0x86dd
579 ETH_P_PPP_MP = 0x8 579 ETH_P_IPX = 0x8137
580 ETH_P_PPP_SES = 0x8864 580 ETH_P_IRDA = 0x17
581 ETH_P_PREAUTH = 0x88c7 581 ETH_P_LAT = 0x6004
582 ETH_P_PRP = 0x88fb 582 ETH_P_LINK_CTL = 0x886c
583 ETH_P_PUP = 0x200 583 ETH_P_LLDP = 0x88cc
584 ETH_P_PUPAT = 0x201 584 ETH_P_LOCALTALK = 0x9
585 ETH_P_QINQ1 = 0x9100 585 ETH_P_LOOP = 0x60
586 ETH_P_QINQ2 = 0x9200 586 ETH_P_LOOPBACK = 0x9000
587 ETH_P_QINQ3 = 0x9300 587 ETH_P_MACSEC = 0x88e5
588 ETH_P_RARP = 0x8035 588 ETH_P_MAP = 0xf9
589 ETH_P_SCA = 0x6007 589 ETH_P_MOBITEX = 0x15
590 ETH_P_SLOW = 0x8809 590 ETH_P_MPLS_MC = 0x8848
591 ETH_P_SNAP = 0x5 591 ETH_P_MPLS_UC = 0x8847
592 ETH_P_TDLS = 0x890d 592 ETH_P_MVRP = 0x88f5
593 ETH_P_TEB = 0x6558 593 ETH_P_NCSI = 0x88f8
594 ETH_P_TIPC = 0x88ca 594 ETH_P_NSH = 0x894f
595 ETH_P_TRAILER = 0x1c 595 ETH_P_PAE = 0x888e
596 ETH_P_TR_802_2 = 0x11 596 ETH_P_PAUSE = 0x8808
597 ETH_P_TSN = 0x22f0 597 ETH_P_PHONET = 0xf5
598 ETH_P_WAN_PPP = 0x7 598 ETH_P_PPPTALK = 0x10
599 ETH_P_WCCP = 0x883e 599 ETH_P_PPP_DISC = 0x8863
600 ETH_P_X25 = 0x805 600 ETH_P_PPP_MP = 0x8
601 ETH_P_XDSA = 0xf8 601 ETH_P_PPP_SES = 0x8864
602 EXABYTE_ENABLE_NEST = 0xf0 602 ETH_P_PREAUTH = 0x88c7
603 EXT2_SUPER_MAGIC = 0xef53 603 ETH_P_PRP = 0x88fb
604 EXT3_SUPER_MAGIC = 0xef53 604 ETH_P_PUP = 0x200
605 EXT4_SUPER_MAGIC = 0xef53 605 ETH_P_PUPAT = 0x201
606 EXTA = 0xe 606 ETH_P_QINQ1 = 0x9100
607 EXTB = 0xf 607 ETH_P_QINQ2 = 0x9200
608 EXTPROC = 0x10000000 608 ETH_P_QINQ3 = 0x9300
609 F2FS_SUPER_MAGIC = 0xf2f52010 609 ETH_P_RARP = 0x8035
610 FALLOC_FL_COLLAPSE_RANGE = 0x8 610 ETH_P_SCA = 0x6007
611 FALLOC_FL_INSERT_RANGE = 0x20 611 ETH_P_SLOW = 0x8809
612 FALLOC_FL_KEEP_SIZE = 0x1 612 ETH_P_SNAP = 0x5
613 FALLOC_FL_NO_HIDE_STALE = 0x4 613 ETH_P_TDLS = 0x890d
614 FALLOC_FL_PUNCH_HOLE = 0x2 614 ETH_P_TEB = 0x6558
615 FALLOC_FL_UNSHARE_RANGE = 0x40 615 ETH_P_TIPC = 0x88ca
616 FALLOC_FL_ZERO_RANGE = 0x10 616 ETH_P_TRAILER = 0x1c
617 FANOTIFY_METADATA_VERSION = 0x3 617 ETH_P_TR_802_2 = 0x11
618 FAN_ACCESS = 0x1 618 ETH_P_TSN = 0x22f0
619 FAN_ACCESS_PERM = 0x20000 619 ETH_P_WAN_PPP = 0x7
620 FAN_ALLOW = 0x1 620 ETH_P_WCCP = 0x883e
621 FAN_ALL_CLASS_BITS = 0xc 621 ETH_P_X25 = 0x805
622 FAN_ALL_EVENTS = 0x3b 622 ETH_P_XDSA = 0xf8
623 FAN_ALL_INIT_FLAGS = 0x3f 623 EXABYTE_ENABLE_NEST = 0xf0
624 FAN_ALL_MARK_FLAGS = 0xff 624 EXT2_SUPER_MAGIC = 0xef53
625 FAN_ALL_OUTGOING_EVENTS = 0x3403b 625 EXT3_SUPER_MAGIC = 0xef53
626 FAN_ALL_PERM_EVENTS = 0x30000 626 EXT4_SUPER_MAGIC = 0xef53
627 FAN_ATTRIB = 0x4 627 EXTA = 0xe
628 FAN_AUDIT = 0x10 628 EXTB = 0xf
629 FAN_CLASS_CONTENT = 0x4 629 EXTPROC = 0x10000000
630 FAN_CLASS_NOTIF = 0x0 630 F2FS_SUPER_MAGIC = 0xf2f52010
631 FAN_CLASS_PRE_CONTENT = 0x8 631 FALLOC_FL_COLLAPSE_RANGE = 0x8
632 FAN_CLOEXEC = 0x1 632 FALLOC_FL_INSERT_RANGE = 0x20
633 FAN_CLOSE = 0x18 633 FALLOC_FL_KEEP_SIZE = 0x1
634 FAN_CLOSE_NOWRITE = 0x10 634 FALLOC_FL_NO_HIDE_STALE = 0x4
635 FAN_CLOSE_WRITE = 0x8 635 FALLOC_FL_PUNCH_HOLE = 0x2
636 FAN_CREATE = 0x100 636 FALLOC_FL_UNSHARE_RANGE = 0x40
637 FAN_DELETE = 0x200 637 FALLOC_FL_ZERO_RANGE = 0x10
638 FAN_DELETE_SELF = 0x400 638 FANOTIFY_METADATA_VERSION = 0x3
639 FAN_DENY = 0x2 639 FAN_ACCESS = 0x1
640 FAN_ENABLE_AUDIT = 0x40 640 FAN_ACCESS_PERM = 0x20000
641 FAN_EVENT_INFO_TYPE_FID = 0x1 641 FAN_ALLOW = 0x1
642 FAN_EVENT_METADATA_LEN = 0x18 642 FAN_ALL_CLASS_BITS = 0xc
643 FAN_EVENT_ON_CHILD = 0x8000000 643 FAN_ALL_EVENTS = 0x3b
644 FAN_MARK_ADD = 0x1 644 FAN_ALL_INIT_FLAGS = 0x3f
645 FAN_MARK_DONT_FOLLOW = 0x4 645 FAN_ALL_MARK_FLAGS = 0xff
646 FAN_MARK_FILESYSTEM = 0x100 646 FAN_ALL_OUTGOING_EVENTS = 0x3403b
647 FAN_MARK_FLUSH = 0x80 647 FAN_ALL_PERM_EVENTS = 0x30000
648 FAN_MARK_IGNORED_MASK = 0x20 648 FAN_ATTRIB = 0x4
649 FAN_MARK_IGNORED_SURV_MODIFY = 0x40 649 FAN_AUDIT = 0x10
650 FAN_MARK_INODE = 0x0 650 FAN_CLASS_CONTENT = 0x4
651 FAN_MARK_MOUNT = 0x10 651 FAN_CLASS_NOTIF = 0x0
652 FAN_MARK_ONLYDIR = 0x8 652 FAN_CLASS_PRE_CONTENT = 0x8
653 FAN_MARK_REMOVE = 0x2 653 FAN_CLOEXEC = 0x1
654 FAN_MODIFY = 0x2 654 FAN_CLOSE = 0x18
655 FAN_MOVE = 0xc0 655 FAN_CLOSE_NOWRITE = 0x10
656 FAN_MOVED_FROM = 0x40 656 FAN_CLOSE_WRITE = 0x8
657 FAN_MOVED_TO = 0x80 657 FAN_CREATE = 0x100
658 FAN_MOVE_SELF = 0x800 658 FAN_DELETE = 0x200
659 FAN_NOFD = -0x1 659 FAN_DELETE_SELF = 0x400
660 FAN_NONBLOCK = 0x2 660 FAN_DENY = 0x2
661 FAN_ONDIR = 0x40000000 661 FAN_ENABLE_AUDIT = 0x40
662 FAN_OPEN = 0x20 662 FAN_EVENT_INFO_TYPE_FID = 0x1
663 FAN_OPEN_EXEC = 0x1000 663 FAN_EVENT_METADATA_LEN = 0x18
664 FAN_OPEN_EXEC_PERM = 0x40000 664 FAN_EVENT_ON_CHILD = 0x8000000
665 FAN_OPEN_PERM = 0x10000 665 FAN_MARK_ADD = 0x1
666 FAN_Q_OVERFLOW = 0x4000 666 FAN_MARK_DONT_FOLLOW = 0x4
667 FAN_REPORT_FID = 0x200 667 FAN_MARK_FILESYSTEM = 0x100
668 FAN_REPORT_TID = 0x100 668 FAN_MARK_FLUSH = 0x80
669 FAN_UNLIMITED_MARKS = 0x20 669 FAN_MARK_IGNORED_MASK = 0x20
670 FAN_UNLIMITED_QUEUE = 0x10 670 FAN_MARK_IGNORED_SURV_MODIFY = 0x40
671 FD_CLOEXEC = 0x1 671 FAN_MARK_INODE = 0x0
672 FD_SETSIZE = 0x400 672 FAN_MARK_MOUNT = 0x10
673 FF0 = 0x0 673 FAN_MARK_ONLYDIR = 0x8
674 FF1 = 0x4000 674 FAN_MARK_REMOVE = 0x2
675 FFDLY = 0x4000 675 FAN_MODIFY = 0x2
676 FLUSHO = 0x800000 676 FAN_MOVE = 0xc0
677 FS_ENCRYPTION_MODE_ADIANTUM = 0x9 677 FAN_MOVED_FROM = 0x40
678 FS_ENCRYPTION_MODE_AES_128_CBC = 0x5 678 FAN_MOVED_TO = 0x80
679 FS_ENCRYPTION_MODE_AES_128_CTS = 0x6 679 FAN_MOVE_SELF = 0x800
680 FS_ENCRYPTION_MODE_AES_256_CBC = 0x3 680 FAN_NOFD = -0x1
681 FS_ENCRYPTION_MODE_AES_256_CTS = 0x4 681 FAN_NONBLOCK = 0x2
682 FS_ENCRYPTION_MODE_AES_256_GCM = 0x2 682 FAN_ONDIR = 0x40000000
683 FS_ENCRYPTION_MODE_AES_256_XTS = 0x1 683 FAN_OPEN = 0x20
684 FS_ENCRYPTION_MODE_INVALID = 0x0 684 FAN_OPEN_EXEC = 0x1000
685 FS_ENCRYPTION_MODE_SPECK128_256_CTS = 0x8 685 FAN_OPEN_EXEC_PERM = 0x40000
686 FS_ENCRYPTION_MODE_SPECK128_256_XTS = 0x7 686 FAN_OPEN_PERM = 0x10000
687 FS_IOC_GET_ENCRYPTION_POLICY = 0x800c6615 687 FAN_Q_OVERFLOW = 0x4000
688 FS_IOC_GET_ENCRYPTION_PWSALT = 0x80106614 688 FAN_REPORT_FID = 0x200
689 FS_IOC_SET_ENCRYPTION_POLICY = 0x400c6613 689 FAN_REPORT_TID = 0x100
690 FS_KEY_DESCRIPTOR_SIZE = 0x8 690 FAN_UNLIMITED_MARKS = 0x20
691 FS_KEY_DESC_PREFIX = "fscrypt:" 691 FAN_UNLIMITED_QUEUE = 0x10
692 FS_KEY_DESC_PREFIX_SIZE = 0x8 692 FD_CLOEXEC = 0x1
693 FS_MAX_KEY_SIZE = 0x40 693 FD_SETSIZE = 0x400
694 FS_POLICY_FLAGS_PAD_16 = 0x2 694 FF0 = 0x0
695 FS_POLICY_FLAGS_PAD_32 = 0x3 695 FF1 = 0x4000
696 FS_POLICY_FLAGS_PAD_4 = 0x0 696 FFDLY = 0x4000
697 FS_POLICY_FLAGS_PAD_8 = 0x1 697 FLUSHO = 0x800000
698 FS_POLICY_FLAGS_PAD_MASK = 0x3 698 FSCRYPT_KEY_DESCRIPTOR_SIZE = 0x8
699 FS_POLICY_FLAGS_VALID = 0x7 699 FSCRYPT_KEY_DESC_PREFIX = "fscrypt:"
700 FUTEXFS_SUPER_MAGIC = 0xbad1dea 700 FSCRYPT_KEY_DESC_PREFIX_SIZE = 0x8
701 F_ADD_SEALS = 0x409 701 FSCRYPT_KEY_IDENTIFIER_SIZE = 0x10
702 F_DUPFD = 0x0 702 FSCRYPT_KEY_REMOVAL_STATUS_FLAG_FILES_BUSY = 0x1
703 F_DUPFD_CLOEXEC = 0x406 703 FSCRYPT_KEY_REMOVAL_STATUS_FLAG_OTHER_USERS = 0x2
704 F_EXLCK = 0x4 704 FSCRYPT_KEY_SPEC_TYPE_DESCRIPTOR = 0x1
705 F_GETFD = 0x1 705 FSCRYPT_KEY_SPEC_TYPE_IDENTIFIER = 0x2
706 F_GETFL = 0x3 706 FSCRYPT_KEY_STATUS_ABSENT = 0x1
707 F_GETLEASE = 0x401 707 FSCRYPT_KEY_STATUS_FLAG_ADDED_BY_SELF = 0x1
708 F_GETLK = 0x5 708 FSCRYPT_KEY_STATUS_INCOMPLETELY_REMOVED = 0x3
709 F_GETLK64 = 0xc 709 FSCRYPT_KEY_STATUS_PRESENT = 0x2
710 F_GETOWN = 0x9 710 FSCRYPT_MAX_KEY_SIZE = 0x40
711 F_GETOWN_EX = 0x10 711 FSCRYPT_MODE_ADIANTUM = 0x9
712 F_GETPIPE_SZ = 0x408 712 FSCRYPT_MODE_AES_128_CBC = 0x5
713 F_GETSIG = 0xb 713 FSCRYPT_MODE_AES_128_CTS = 0x6
714 F_GET_FILE_RW_HINT = 0x40d 714 FSCRYPT_MODE_AES_256_CTS = 0x4
715 F_GET_RW_HINT = 0x40b 715 FSCRYPT_MODE_AES_256_XTS = 0x1
716 F_GET_SEALS = 0x40a 716 FSCRYPT_POLICY_FLAGS_PAD_16 = 0x2
717 F_LOCK = 0x1 717 FSCRYPT_POLICY_FLAGS_PAD_32 = 0x3
718 F_NOTIFY = 0x402 718 FSCRYPT_POLICY_FLAGS_PAD_4 = 0x0
719 F_OFD_GETLK = 0x24 719 FSCRYPT_POLICY_FLAGS_PAD_8 = 0x1
720 F_OFD_SETLK = 0x25 720 FSCRYPT_POLICY_FLAGS_PAD_MASK = 0x3
721 F_OFD_SETLKW = 0x26 721 FSCRYPT_POLICY_FLAGS_VALID = 0xf
722 F_OK = 0x0 722 FSCRYPT_POLICY_FLAG_DIRECT_KEY = 0x4
723 F_RDLCK = 0x0 723 FSCRYPT_POLICY_FLAG_IV_INO_LBLK_64 = 0x8
724 F_SEAL_FUTURE_WRITE = 0x10 724 FSCRYPT_POLICY_V1 = 0x0
725 F_SEAL_GROW = 0x4 725 FSCRYPT_POLICY_V2 = 0x2
726 F_SEAL_SEAL = 0x1 726 FS_ENCRYPTION_MODE_ADIANTUM = 0x9
727 F_SEAL_SHRINK = 0x2 727 FS_ENCRYPTION_MODE_AES_128_CBC = 0x5
728 F_SEAL_WRITE = 0x8 728 FS_ENCRYPTION_MODE_AES_128_CTS = 0x6
729 F_SETFD = 0x2 729 FS_ENCRYPTION_MODE_AES_256_CBC = 0x3
730 F_SETFL = 0x4 730 FS_ENCRYPTION_MODE_AES_256_CTS = 0x4
731 F_SETLEASE = 0x400 731 FS_ENCRYPTION_MODE_AES_256_GCM = 0x2
732 F_SETLK = 0x6 732 FS_ENCRYPTION_MODE_AES_256_XTS = 0x1
733 F_SETLK64 = 0xd 733 FS_ENCRYPTION_MODE_INVALID = 0x0
734 F_SETLKW = 0x7 734 FS_ENCRYPTION_MODE_SPECK128_256_CTS = 0x8
735 F_SETLKW64 = 0xe 735 FS_ENCRYPTION_MODE_SPECK128_256_XTS = 0x7
736 F_SETOWN = 0x8 736 FS_IOC_ADD_ENCRYPTION_KEY = 0xc0506617
737 F_SETOWN_EX = 0xf 737 FS_IOC_GET_ENCRYPTION_KEY_STATUS = 0xc080661a
738 F_SETPIPE_SZ = 0x407 738 FS_IOC_GET_ENCRYPTION_POLICY = 0x800c6615
739 F_SETSIG = 0xa 739 FS_IOC_GET_ENCRYPTION_POLICY_EX = 0xc0096616
740 F_SET_FILE_RW_HINT = 0x40e 740 FS_IOC_GET_ENCRYPTION_PWSALT = 0x80106614
741 F_SET_RW_HINT = 0x40c 741 FS_IOC_REMOVE_ENCRYPTION_KEY = 0xc0406618
742 F_SHLCK = 0x8 742 FS_IOC_REMOVE_ENCRYPTION_KEY_ALL_USERS = 0xc0406619
743 F_TEST = 0x3 743 FS_IOC_SET_ENCRYPTION_POLICY = 0x400c6613
744 F_TLOCK = 0x2 744 FS_KEY_DESCRIPTOR_SIZE = 0x8
745 F_ULOCK = 0x0 745 FS_KEY_DESC_PREFIX = "fscrypt:"
746 F_UNLCK = 0x2 746 FS_KEY_DESC_PREFIX_SIZE = 0x8
747 F_WRLCK = 0x1 747 FS_MAX_KEY_SIZE = 0x40
748 GENL_ADMIN_PERM = 0x1 748 FS_POLICY_FLAGS_PAD_16 = 0x2
749 GENL_CMD_CAP_DO = 0x2 749 FS_POLICY_FLAGS_PAD_32 = 0x3
750 GENL_CMD_CAP_DUMP = 0x4 750 FS_POLICY_FLAGS_PAD_4 = 0x0
751 GENL_CMD_CAP_HASPOL = 0x8 751 FS_POLICY_FLAGS_PAD_8 = 0x1
752 GENL_HDRLEN = 0x4 752 FS_POLICY_FLAGS_PAD_MASK = 0x3
753 GENL_ID_CTRL = 0x10 753 FS_POLICY_FLAGS_VALID = 0xf
754 GENL_ID_PMCRAID = 0x12 754 FUTEXFS_SUPER_MAGIC = 0xbad1dea
755 GENL_ID_VFS_DQUOT = 0x11 755 F_ADD_SEALS = 0x409
756 GENL_MAX_ID = 0x3ff 756 F_DUPFD = 0x0
757 GENL_MIN_ID = 0x10 757 F_DUPFD_CLOEXEC = 0x406
758 GENL_NAMSIZ = 0x10 758 F_EXLCK = 0x4
759 GENL_START_ALLOC = 0x13 759 F_GETFD = 0x1
760 GENL_UNS_ADMIN_PERM = 0x10 760 F_GETFL = 0x3
761 GRND_NONBLOCK = 0x1 761 F_GETLEASE = 0x401
762 GRND_RANDOM = 0x2 762 F_GETLK = 0x5
763 HDIO_DRIVE_CMD = 0x31f 763 F_GETLK64 = 0xc
764 HDIO_DRIVE_CMD_AEB = 0x31e 764 F_GETOWN = 0x9
765 HDIO_DRIVE_CMD_HDR_SIZE = 0x4 765 F_GETOWN_EX = 0x10
766 HDIO_DRIVE_HOB_HDR_SIZE = 0x8 766 F_GETPIPE_SZ = 0x408
767 HDIO_DRIVE_RESET = 0x31c 767 F_GETSIG = 0xb
768 HDIO_DRIVE_TASK = 0x31e 768 F_GET_FILE_RW_HINT = 0x40d
769 HDIO_DRIVE_TASKFILE = 0x31d 769 F_GET_RW_HINT = 0x40b
770 HDIO_DRIVE_TASK_HDR_SIZE = 0x8 770 F_GET_SEALS = 0x40a
771 HDIO_GETGEO = 0x301 771 F_LOCK = 0x1
772 HDIO_GET_32BIT = 0x309 772 F_NOTIFY = 0x402
773 HDIO_GET_ACOUSTIC = 0x30f 773 F_OFD_GETLK = 0x24
774 HDIO_GET_ADDRESS = 0x310 774 F_OFD_SETLK = 0x25
775 HDIO_GET_BUSSTATE = 0x31a 775 F_OFD_SETLKW = 0x26
776 HDIO_GET_DMA = 0x30b 776 F_OK = 0x0
777 HDIO_GET_IDENTITY = 0x30d 777 F_RDLCK = 0x0
778 HDIO_GET_KEEPSETTINGS = 0x308 778 F_SEAL_FUTURE_WRITE = 0x10
779 HDIO_GET_MULTCOUNT = 0x304 779 F_SEAL_GROW = 0x4
780 HDIO_GET_NICE = 0x30c 780 F_SEAL_SEAL = 0x1
781 HDIO_GET_NOWERR = 0x30a 781 F_SEAL_SHRINK = 0x2
782 HDIO_GET_QDMA = 0x305 782 F_SEAL_WRITE = 0x8
783 HDIO_GET_UNMASKINTR = 0x302 783 F_SETFD = 0x2
784 HDIO_GET_WCACHE = 0x30e 784 F_SETFL = 0x4
785 HDIO_OBSOLETE_IDENTITY = 0x307 785 F_SETLEASE = 0x400
786 HDIO_SCAN_HWIF = 0x328 786 F_SETLK = 0x6
787 HDIO_SET_32BIT = 0x324 787 F_SETLK64 = 0xd
788 HDIO_SET_ACOUSTIC = 0x32c 788 F_SETLKW = 0x7
789 HDIO_SET_ADDRESS = 0x32f 789 F_SETLKW64 = 0xe
790 HDIO_SET_BUSSTATE = 0x32d 790 F_SETOWN = 0x8
791 HDIO_SET_DMA = 0x326 791 F_SETOWN_EX = 0xf
792 HDIO_SET_KEEPSETTINGS = 0x323 792 F_SETPIPE_SZ = 0x407
793 HDIO_SET_MULTCOUNT = 0x321 793 F_SETSIG = 0xa
794 HDIO_SET_NICE = 0x329 794 F_SET_FILE_RW_HINT = 0x40e
795 HDIO_SET_NOWERR = 0x325 795 F_SET_RW_HINT = 0x40c
796 HDIO_SET_PIO_MODE = 0x327 796 F_SHLCK = 0x8
797 HDIO_SET_QDMA = 0x32e 797 F_TEST = 0x3
798 HDIO_SET_UNMASKINTR = 0x322 798 F_TLOCK = 0x2
799 HDIO_SET_WCACHE = 0x32b 799 F_ULOCK = 0x0
800 HDIO_SET_XFER = 0x306 800 F_UNLCK = 0x2
801 HDIO_TRISTATE_HWIF = 0x31b 801 F_WRLCK = 0x1
802 HDIO_UNREGISTER_HWIF = 0x32a 802 GENL_ADMIN_PERM = 0x1
803 HOSTFS_SUPER_MAGIC = 0xc0ffee 803 GENL_CMD_CAP_DO = 0x2
804 HPFS_SUPER_MAGIC = 0xf995e849 804 GENL_CMD_CAP_DUMP = 0x4
805 HUGETLBFS_MAGIC = 0x958458f6 805 GENL_CMD_CAP_HASPOL = 0x8
806 HUPCL = 0x4000 806 GENL_HDRLEN = 0x4
807 IBSHIFT = 0x10 807 GENL_ID_CTRL = 0x10
808 ICANON = 0x100 808 GENL_ID_PMCRAID = 0x12
809 ICMPV6_FILTER = 0x1 809 GENL_ID_VFS_DQUOT = 0x11
810 ICRNL = 0x100 810 GENL_MAX_ID = 0x3ff
811 IEXTEN = 0x400 811 GENL_MIN_ID = 0x10
812 IFA_F_DADFAILED = 0x8 812 GENL_NAMSIZ = 0x10
813 IFA_F_DEPRECATED = 0x20 813 GENL_START_ALLOC = 0x13
814 IFA_F_HOMEADDRESS = 0x10 814 GENL_UNS_ADMIN_PERM = 0x10
815 IFA_F_MANAGETEMPADDR = 0x100 815 GRND_NONBLOCK = 0x1
816 IFA_F_MCAUTOJOIN = 0x400 816 GRND_RANDOM = 0x2
817 IFA_F_NODAD = 0x2 817 HDIO_DRIVE_CMD = 0x31f
818 IFA_F_NOPREFIXROUTE = 0x200 818 HDIO_DRIVE_CMD_AEB = 0x31e
819 IFA_F_OPTIMISTIC = 0x4 819 HDIO_DRIVE_CMD_HDR_SIZE = 0x4
820 IFA_F_PERMANENT = 0x80 820 HDIO_DRIVE_HOB_HDR_SIZE = 0x8
821 IFA_F_SECONDARY = 0x1 821 HDIO_DRIVE_RESET = 0x31c
822 IFA_F_STABLE_PRIVACY = 0x800 822 HDIO_DRIVE_TASK = 0x31e
823 IFA_F_TEMPORARY = 0x1 823 HDIO_DRIVE_TASKFILE = 0x31d
824 IFA_F_TENTATIVE = 0x40 824 HDIO_DRIVE_TASK_HDR_SIZE = 0x8
825 IFA_MAX = 0xa 825 HDIO_GETGEO = 0x301
826 IFF_ALLMULTI = 0x200 826 HDIO_GET_32BIT = 0x309
827 IFF_ATTACH_QUEUE = 0x200 827 HDIO_GET_ACOUSTIC = 0x30f
828 IFF_AUTOMEDIA = 0x4000 828 HDIO_GET_ADDRESS = 0x310
829 IFF_BROADCAST = 0x2 829 HDIO_GET_BUSSTATE = 0x31a
830 IFF_DEBUG = 0x4 830 HDIO_GET_DMA = 0x30b
831 IFF_DETACH_QUEUE = 0x400 831 HDIO_GET_IDENTITY = 0x30d
832 IFF_DORMANT = 0x20000 832 HDIO_GET_KEEPSETTINGS = 0x308
833 IFF_DYNAMIC = 0x8000 833 HDIO_GET_MULTCOUNT = 0x304
834 IFF_ECHO = 0x40000 834 HDIO_GET_NICE = 0x30c
835 IFF_LOOPBACK = 0x8 835 HDIO_GET_NOWERR = 0x30a
836 IFF_LOWER_UP = 0x10000 836 HDIO_GET_QDMA = 0x305
837 IFF_MASTER = 0x400 837 HDIO_GET_UNMASKINTR = 0x302
838 IFF_MULTICAST = 0x1000 838 HDIO_GET_WCACHE = 0x30e
839 IFF_MULTI_QUEUE = 0x100 839 HDIO_OBSOLETE_IDENTITY = 0x307
840 IFF_NAPI = 0x10 840 HDIO_SCAN_HWIF = 0x328
841 IFF_NAPI_FRAGS = 0x20 841 HDIO_SET_32BIT = 0x324
842 IFF_NOARP = 0x80 842 HDIO_SET_ACOUSTIC = 0x32c
843 IFF_NOFILTER = 0x1000 843 HDIO_SET_ADDRESS = 0x32f
844 IFF_NOTRAILERS = 0x20 844 HDIO_SET_BUSSTATE = 0x32d
845 IFF_NO_PI = 0x1000 845 HDIO_SET_DMA = 0x326
846 IFF_ONE_QUEUE = 0x2000 846 HDIO_SET_KEEPSETTINGS = 0x323
847 IFF_PERSIST = 0x800 847 HDIO_SET_MULTCOUNT = 0x321
848 IFF_POINTOPOINT = 0x10 848 HDIO_SET_NICE = 0x329
849 IFF_PORTSEL = 0x2000 849 HDIO_SET_NOWERR = 0x325
850 IFF_PROMISC = 0x100 850 HDIO_SET_PIO_MODE = 0x327
851 IFF_RUNNING = 0x40 851 HDIO_SET_QDMA = 0x32e
852 IFF_SLAVE = 0x800 852 HDIO_SET_UNMASKINTR = 0x322
853 IFF_TAP = 0x2 853 HDIO_SET_WCACHE = 0x32b
854 IFF_TUN = 0x1 854 HDIO_SET_XFER = 0x306
855 IFF_TUN_EXCL = 0x8000 855 HDIO_TRISTATE_HWIF = 0x31b
856 IFF_UP = 0x1 856 HDIO_UNREGISTER_HWIF = 0x32a
857 IFF_VNET_HDR = 0x4000 857 HOSTFS_SUPER_MAGIC = 0xc0ffee
858 IFF_VOLATILE = 0x70c5a 858 HPFS_SUPER_MAGIC = 0xf995e849
859 IFNAMSIZ = 0x10 859 HUGETLBFS_MAGIC = 0x958458f6
860 IGNBRK = 0x1 860 HUPCL = 0x4000
861 IGNCR = 0x80 861 IBSHIFT = 0x10
862 IGNPAR = 0x4 862 ICANON = 0x100
863 IMAXBEL = 0x2000 863 ICMPV6_FILTER = 0x1
864 INLCR = 0x40 864 ICRNL = 0x100
865 INPCK = 0x10 865 IEXTEN = 0x400
866 IN_ACCESS = 0x1 866 IFA_F_DADFAILED = 0x8
867 IN_ALL_EVENTS = 0xfff 867 IFA_F_DEPRECATED = 0x20
868 IN_ATTRIB = 0x4 868 IFA_F_HOMEADDRESS = 0x10
869 IN_CLASSA_HOST = 0xffffff 869 IFA_F_MANAGETEMPADDR = 0x100
870 IN_CLASSA_MAX = 0x80 870 IFA_F_MCAUTOJOIN = 0x400
871 IN_CLASSA_NET = 0xff000000 871 IFA_F_NODAD = 0x2
872 IN_CLASSA_NSHIFT = 0x18 872 IFA_F_NOPREFIXROUTE = 0x200
873 IN_CLASSB_HOST = 0xffff 873 IFA_F_OPTIMISTIC = 0x4
874 IN_CLASSB_MAX = 0x10000 874 IFA_F_PERMANENT = 0x80
875 IN_CLASSB_NET = 0xffff0000 875 IFA_F_SECONDARY = 0x1
876 IN_CLASSB_NSHIFT = 0x10 876 IFA_F_STABLE_PRIVACY = 0x800
877 IN_CLASSC_HOST = 0xff 877 IFA_F_TEMPORARY = 0x1
878 IN_CLASSC_NET = 0xffffff00 878 IFA_F_TENTATIVE = 0x40
879 IN_CLASSC_NSHIFT = 0x8 879 IFA_MAX = 0xa
880 IN_CLOEXEC = 0x80000 880 IFF_ALLMULTI = 0x200
881 IN_CLOSE = 0x18 881 IFF_ATTACH_QUEUE = 0x200
882 IN_CLOSE_NOWRITE = 0x10 882 IFF_AUTOMEDIA = 0x4000
883 IN_CLOSE_WRITE = 0x8 883 IFF_BROADCAST = 0x2
884 IN_CREATE = 0x100 884 IFF_DEBUG = 0x4
885 IN_DELETE = 0x200 885 IFF_DETACH_QUEUE = 0x400
886 IN_DELETE_SELF = 0x400 886 IFF_DORMANT = 0x20000
887 IN_DONT_FOLLOW = 0x2000000 887 IFF_DYNAMIC = 0x8000
888 IN_EXCL_UNLINK = 0x4000000 888 IFF_ECHO = 0x40000
889 IN_IGNORED = 0x8000 889 IFF_LOOPBACK = 0x8
890 IN_ISDIR = 0x40000000 890 IFF_LOWER_UP = 0x10000
891 IN_LOOPBACKNET = 0x7f 891 IFF_MASTER = 0x400
892 IN_MASK_ADD = 0x20000000 892 IFF_MULTICAST = 0x1000
893 IN_MASK_CREATE = 0x10000000 893 IFF_MULTI_QUEUE = 0x100
894 IN_MODIFY = 0x2 894 IFF_NAPI = 0x10
895 IN_MOVE = 0xc0 895 IFF_NAPI_FRAGS = 0x20
896 IN_MOVED_FROM = 0x40 896 IFF_NOARP = 0x80
897 IN_MOVED_TO = 0x80 897 IFF_NOFILTER = 0x1000
898 IN_MOVE_SELF = 0x800 898 IFF_NOTRAILERS = 0x20
899 IN_NONBLOCK = 0x800 899 IFF_NO_PI = 0x1000
900 IN_ONESHOT = 0x80000000 900 IFF_ONE_QUEUE = 0x2000
901 IN_ONLYDIR = 0x1000000 901 IFF_PERSIST = 0x800
902 IN_OPEN = 0x20 902 IFF_POINTOPOINT = 0x10
903 IN_Q_OVERFLOW = 0x4000 903 IFF_PORTSEL = 0x2000
904 IN_UNMOUNT = 0x2000 904 IFF_PROMISC = 0x100
905 IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x200007b9 905 IFF_RUNNING = 0x40
906 IPPROTO_AH = 0x33 906 IFF_SLAVE = 0x800
907 IPPROTO_BEETPH = 0x5e 907 IFF_TAP = 0x2
908 IPPROTO_COMP = 0x6c 908 IFF_TUN = 0x1
909 IPPROTO_DCCP = 0x21 909 IFF_TUN_EXCL = 0x8000
910 IPPROTO_DSTOPTS = 0x3c 910 IFF_UP = 0x1
911 IPPROTO_EGP = 0x8 911 IFF_VNET_HDR = 0x4000
912 IPPROTO_ENCAP = 0x62 912 IFF_VOLATILE = 0x70c5a
913 IPPROTO_ESP = 0x32 913 IFNAMSIZ = 0x10
914 IPPROTO_FRAGMENT = 0x2c 914 IGNBRK = 0x1
915 IPPROTO_GRE = 0x2f 915 IGNCR = 0x80
916 IPPROTO_HOPOPTS = 0x0 916 IGNPAR = 0x4
917 IPPROTO_ICMP = 0x1 917 IMAXBEL = 0x2000
918 IPPROTO_ICMPV6 = 0x3a 918 INLCR = 0x40
919 IPPROTO_IDP = 0x16 919 INPCK = 0x10
920 IPPROTO_IGMP = 0x2 920 IN_ACCESS = 0x1
921 IPPROTO_IP = 0x0 921 IN_ALL_EVENTS = 0xfff
922 IPPROTO_IPIP = 0x4 922 IN_ATTRIB = 0x4
923 IPPROTO_IPV6 = 0x29 923 IN_CLASSA_HOST = 0xffffff
924 IPPROTO_MH = 0x87 924 IN_CLASSA_MAX = 0x80
925 IPPROTO_MPLS = 0x89 925 IN_CLASSA_NET = 0xff000000
926 IPPROTO_MTP = 0x5c 926 IN_CLASSA_NSHIFT = 0x18
927 IPPROTO_NONE = 0x3b 927 IN_CLASSB_HOST = 0xffff
928 IPPROTO_PIM = 0x67 928 IN_CLASSB_MAX = 0x10000
929 IPPROTO_PUP = 0xc 929 IN_CLASSB_NET = 0xffff0000
930 IPPROTO_RAW = 0xff 930 IN_CLASSB_NSHIFT = 0x10
931 IPPROTO_ROUTING = 0x2b 931 IN_CLASSC_HOST = 0xff
932 IPPROTO_RSVP = 0x2e 932 IN_CLASSC_NET = 0xffffff00
933 IPPROTO_SCTP = 0x84 933 IN_CLASSC_NSHIFT = 0x8
934 IPPROTO_TCP = 0x6 934 IN_CLOEXEC = 0x80000
935 IPPROTO_TP = 0x1d 935 IN_CLOSE = 0x18
936 IPPROTO_UDP = 0x11 936 IN_CLOSE_NOWRITE = 0x10
937 IPPROTO_UDPLITE = 0x88 937 IN_CLOSE_WRITE = 0x8
938 IPV6_2292DSTOPTS = 0x4 938 IN_CREATE = 0x100
939 IPV6_2292HOPLIMIT = 0x8 939 IN_DELETE = 0x200
940 IPV6_2292HOPOPTS = 0x3 940 IN_DELETE_SELF = 0x400
941 IPV6_2292PKTINFO = 0x2 941 IN_DONT_FOLLOW = 0x2000000
942 IPV6_2292PKTOPTIONS = 0x6 942 IN_EXCL_UNLINK = 0x4000000
943 IPV6_2292RTHDR = 0x5 943 IN_IGNORED = 0x8000
944 IPV6_ADDRFORM = 0x1 944 IN_ISDIR = 0x40000000
945 IPV6_ADDR_PREFERENCES = 0x48 945 IN_LOOPBACKNET = 0x7f
946 IPV6_ADD_MEMBERSHIP = 0x14 946 IN_MASK_ADD = 0x20000000
947 IPV6_AUTHHDR = 0xa 947 IN_MASK_CREATE = 0x10000000
948 IPV6_AUTOFLOWLABEL = 0x46 948 IN_MODIFY = 0x2
949 IPV6_CHECKSUM = 0x7 949 IN_MOVE = 0xc0
950 IPV6_DONTFRAG = 0x3e 950 IN_MOVED_FROM = 0x40
951 IPV6_DROP_MEMBERSHIP = 0x15 951 IN_MOVED_TO = 0x80
952 IPV6_DSTOPTS = 0x3b 952 IN_MOVE_SELF = 0x800
953 IPV6_FREEBIND = 0x4e 953 IN_NONBLOCK = 0x800
954 IPV6_HDRINCL = 0x24 954 IN_ONESHOT = 0x80000000
955 IPV6_HOPLIMIT = 0x34 955 IN_ONLYDIR = 0x1000000
956 IPV6_HOPOPTS = 0x36 956 IN_OPEN = 0x20
957 IPV6_IPSEC_POLICY = 0x22 957 IN_Q_OVERFLOW = 0x4000
958 IPV6_JOIN_ANYCAST = 0x1b 958 IN_UNMOUNT = 0x2000
959 IPV6_JOIN_GROUP = 0x14 959 IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x200007b9
960 IPV6_LEAVE_ANYCAST = 0x1c 960 IPPROTO_AH = 0x33
961 IPV6_LEAVE_GROUP = 0x15 961 IPPROTO_BEETPH = 0x5e
962 IPV6_MINHOPCOUNT = 0x49 962 IPPROTO_COMP = 0x6c
963 IPV6_MTU = 0x18 963 IPPROTO_DCCP = 0x21
964 IPV6_MTU_DISCOVER = 0x17 964 IPPROTO_DSTOPTS = 0x3c
965 IPV6_MULTICAST_ALL = 0x1d 965 IPPROTO_EGP = 0x8
966 IPV6_MULTICAST_HOPS = 0x12 966 IPPROTO_ENCAP = 0x62
967 IPV6_MULTICAST_IF = 0x11 967 IPPROTO_ESP = 0x32
968 IPV6_MULTICAST_LOOP = 0x13 968 IPPROTO_FRAGMENT = 0x2c
969 IPV6_NEXTHOP = 0x9 969 IPPROTO_GRE = 0x2f
970 IPV6_ORIGDSTADDR = 0x4a 970 IPPROTO_HOPOPTS = 0x0
971 IPV6_PATHMTU = 0x3d 971 IPPROTO_ICMP = 0x1
972 IPV6_PKTINFO = 0x32 972 IPPROTO_ICMPV6 = 0x3a
973 IPV6_PMTUDISC_DO = 0x2 973 IPPROTO_IDP = 0x16
974 IPV6_PMTUDISC_DONT = 0x0 974 IPPROTO_IGMP = 0x2
975 IPV6_PMTUDISC_INTERFACE = 0x4 975 IPPROTO_IP = 0x0
976 IPV6_PMTUDISC_OMIT = 0x5 976 IPPROTO_IPIP = 0x4
977 IPV6_PMTUDISC_PROBE = 0x3 977 IPPROTO_IPV6 = 0x29
978 IPV6_PMTUDISC_WANT = 0x1 978 IPPROTO_MH = 0x87
979 IPV6_RECVDSTOPTS = 0x3a 979 IPPROTO_MPLS = 0x89
980 IPV6_RECVERR = 0x19 980 IPPROTO_MTP = 0x5c
981 IPV6_RECVFRAGSIZE = 0x4d 981 IPPROTO_NONE = 0x3b
982 IPV6_RECVHOPLIMIT = 0x33 982 IPPROTO_PIM = 0x67
983 IPV6_RECVHOPOPTS = 0x35 983 IPPROTO_PUP = 0xc
984 IPV6_RECVORIGDSTADDR = 0x4a 984 IPPROTO_RAW = 0xff
985 IPV6_RECVPATHMTU = 0x3c 985 IPPROTO_ROUTING = 0x2b
986 IPV6_RECVPKTINFO = 0x31 986 IPPROTO_RSVP = 0x2e
987 IPV6_RECVRTHDR = 0x38 987 IPPROTO_SCTP = 0x84
988 IPV6_RECVTCLASS = 0x42 988 IPPROTO_TCP = 0x6
989 IPV6_ROUTER_ALERT = 0x16 989 IPPROTO_TP = 0x1d
990 IPV6_ROUTER_ALERT_ISOLATE = 0x1e 990 IPPROTO_UDP = 0x11
991 IPV6_RTHDR = 0x39 991 IPPROTO_UDPLITE = 0x88
992 IPV6_RTHDRDSTOPTS = 0x37 992 IPV6_2292DSTOPTS = 0x4
993 IPV6_RTHDR_LOOSE = 0x0 993 IPV6_2292HOPLIMIT = 0x8
994 IPV6_RTHDR_STRICT = 0x1 994 IPV6_2292HOPOPTS = 0x3
995 IPV6_RTHDR_TYPE_0 = 0x0 995 IPV6_2292PKTINFO = 0x2
996 IPV6_RXDSTOPTS = 0x3b 996 IPV6_2292PKTOPTIONS = 0x6
997 IPV6_RXHOPOPTS = 0x36 997 IPV6_2292RTHDR = 0x5
998 IPV6_TCLASS = 0x43 998 IPV6_ADDRFORM = 0x1
999 IPV6_TRANSPARENT = 0x4b 999 IPV6_ADDR_PREFERENCES = 0x48
1000 IPV6_UNICAST_HOPS = 0x10 1000 IPV6_ADD_MEMBERSHIP = 0x14
1001 IPV6_UNICAST_IF = 0x4c 1001 IPV6_AUTHHDR = 0xa
1002 IPV6_V6ONLY = 0x1a 1002 IPV6_AUTOFLOWLABEL = 0x46
1003 IPV6_XFRM_POLICY = 0x23 1003 IPV6_CHECKSUM = 0x7
1004 IP_ADD_MEMBERSHIP = 0x23 1004 IPV6_DONTFRAG = 0x3e
1005 IP_ADD_SOURCE_MEMBERSHIP = 0x27 1005 IPV6_DROP_MEMBERSHIP = 0x15
1006 IP_BIND_ADDRESS_NO_PORT = 0x18 1006 IPV6_DSTOPTS = 0x3b
1007 IP_BLOCK_SOURCE = 0x26 1007 IPV6_FREEBIND = 0x4e
1008 IP_CHECKSUM = 0x17 1008 IPV6_HDRINCL = 0x24
1009 IP_DEFAULT_MULTICAST_LOOP = 0x1 1009 IPV6_HOPLIMIT = 0x34
1010 IP_DEFAULT_MULTICAST_TTL = 0x1 1010 IPV6_HOPOPTS = 0x36
1011 IP_DF = 0x4000 1011 IPV6_IPSEC_POLICY = 0x22
1012 IP_DROP_MEMBERSHIP = 0x24 1012 IPV6_JOIN_ANYCAST = 0x1b
1013 IP_DROP_SOURCE_MEMBERSHIP = 0x28 1013 IPV6_JOIN_GROUP = 0x14
1014 IP_FREEBIND = 0xf 1014 IPV6_LEAVE_ANYCAST = 0x1c
1015 IP_HDRINCL = 0x3 1015 IPV6_LEAVE_GROUP = 0x15
1016 IP_IPSEC_POLICY = 0x10 1016 IPV6_MINHOPCOUNT = 0x49
1017 IP_MAXPACKET = 0xffff 1017 IPV6_MTU = 0x18
1018 IP_MAX_MEMBERSHIPS = 0x14 1018 IPV6_MTU_DISCOVER = 0x17
1019 IP_MF = 0x2000 1019 IPV6_MULTICAST_ALL = 0x1d
1020 IP_MINTTL = 0x15 1020 IPV6_MULTICAST_HOPS = 0x12
1021 IP_MSFILTER = 0x29 1021 IPV6_MULTICAST_IF = 0x11
1022 IP_MSS = 0x240 1022 IPV6_MULTICAST_LOOP = 0x13
1023 IP_MTU = 0xe 1023 IPV6_NEXTHOP = 0x9
1024 IP_MTU_DISCOVER = 0xa 1024 IPV6_ORIGDSTADDR = 0x4a
1025 IP_MULTICAST_ALL = 0x31 1025 IPV6_PATHMTU = 0x3d
1026 IP_MULTICAST_IF = 0x20 1026 IPV6_PKTINFO = 0x32
1027 IP_MULTICAST_LOOP = 0x22 1027 IPV6_PMTUDISC_DO = 0x2
1028 IP_MULTICAST_TTL = 0x21 1028 IPV6_PMTUDISC_DONT = 0x0
1029 IP_NODEFRAG = 0x16 1029 IPV6_PMTUDISC_INTERFACE = 0x4
1030 IP_OFFMASK = 0x1fff 1030 IPV6_PMTUDISC_OMIT = 0x5
1031 IP_OPTIONS = 0x4 1031 IPV6_PMTUDISC_PROBE = 0x3
1032 IP_ORIGDSTADDR = 0x14 1032 IPV6_PMTUDISC_WANT = 0x1
1033 IP_PASSSEC = 0x12 1033 IPV6_RECVDSTOPTS = 0x3a
1034 IP_PKTINFO = 0x8 1034 IPV6_RECVERR = 0x19
1035 IP_PKTOPTIONS = 0x9 1035 IPV6_RECVFRAGSIZE = 0x4d
1036 IP_PMTUDISC = 0xa 1036 IPV6_RECVHOPLIMIT = 0x33
1037 IP_PMTUDISC_DO = 0x2 1037 IPV6_RECVHOPOPTS = 0x35
1038 IP_PMTUDISC_DONT = 0x0 1038 IPV6_RECVORIGDSTADDR = 0x4a
1039 IP_PMTUDISC_INTERFACE = 0x4 1039 IPV6_RECVPATHMTU = 0x3c
1040 IP_PMTUDISC_OMIT = 0x5 1040 IPV6_RECVPKTINFO = 0x31
1041 IP_PMTUDISC_PROBE = 0x3 1041 IPV6_RECVRTHDR = 0x38
1042 IP_PMTUDISC_WANT = 0x1 1042 IPV6_RECVTCLASS = 0x42
1043 IP_RECVERR = 0xb 1043 IPV6_ROUTER_ALERT = 0x16
1044 IP_RECVFRAGSIZE = 0x19 1044 IPV6_ROUTER_ALERT_ISOLATE = 0x1e
1045 IP_RECVOPTS = 0x6 1045 IPV6_RTHDR = 0x39
1046 IP_RECVORIGDSTADDR = 0x14 1046 IPV6_RTHDRDSTOPTS = 0x37
1047 IP_RECVRETOPTS = 0x7 1047 IPV6_RTHDR_LOOSE = 0x0
1048 IP_RECVTOS = 0xd 1048 IPV6_RTHDR_STRICT = 0x1
1049 IP_RECVTTL = 0xc 1049 IPV6_RTHDR_TYPE_0 = 0x0
1050 IP_RETOPTS = 0x7 1050 IPV6_RXDSTOPTS = 0x3b
1051 IP_RF = 0x8000 1051 IPV6_RXHOPOPTS = 0x36
1052 IP_ROUTER_ALERT = 0x5 1052 IPV6_TCLASS = 0x43
1053 IP_TOS = 0x1 1053 IPV6_TRANSPARENT = 0x4b
1054 IP_TRANSPARENT = 0x13 1054 IPV6_UNICAST_HOPS = 0x10
1055 IP_TTL = 0x2 1055 IPV6_UNICAST_IF = 0x4c
1056 IP_UNBLOCK_SOURCE = 0x25 1056 IPV6_V6ONLY = 0x1a
1057 IP_UNICAST_IF = 0x32 1057 IPV6_XFRM_POLICY = 0x23
1058 IP_XFRM_POLICY = 0x11 1058 IP_ADD_MEMBERSHIP = 0x23
1059 ISIG = 0x80 1059 IP_ADD_SOURCE_MEMBERSHIP = 0x27
1060 ISOFS_SUPER_MAGIC = 0x9660 1060 IP_BIND_ADDRESS_NO_PORT = 0x18
1061 ISTRIP = 0x20 1061 IP_BLOCK_SOURCE = 0x26
1062 IUCLC = 0x1000 1062 IP_CHECKSUM = 0x17
1063 IUTF8 = 0x4000 1063 IP_DEFAULT_MULTICAST_LOOP = 0x1
1064 IXANY = 0x800 1064 IP_DEFAULT_MULTICAST_TTL = 0x1
1065 IXOFF = 0x400 1065 IP_DF = 0x4000
1066 IXON = 0x200 1066 IP_DROP_MEMBERSHIP = 0x24
1067 JFFS2_SUPER_MAGIC = 0x72b6 1067 IP_DROP_SOURCE_MEMBERSHIP = 0x28
1068 KEXEC_ARCH_386 = 0x30000 1068 IP_FREEBIND = 0xf
1069 KEXEC_ARCH_68K = 0x40000 1069 IP_HDRINCL = 0x3
1070 KEXEC_ARCH_AARCH64 = 0xb70000 1070 IP_IPSEC_POLICY = 0x10
1071 KEXEC_ARCH_ARM = 0x280000 1071 IP_MAXPACKET = 0xffff
1072 KEXEC_ARCH_DEFAULT = 0x0 1072 IP_MAX_MEMBERSHIPS = 0x14
1073 KEXEC_ARCH_IA_64 = 0x320000 1073 IP_MF = 0x2000
1074 KEXEC_ARCH_MASK = 0xffff0000 1074 IP_MINTTL = 0x15
1075 KEXEC_ARCH_MIPS = 0x80000 1075 IP_MSFILTER = 0x29
1076 KEXEC_ARCH_MIPS_LE = 0xa0000 1076 IP_MSS = 0x240
1077 KEXEC_ARCH_PPC = 0x140000 1077 IP_MTU = 0xe
1078 KEXEC_ARCH_PPC64 = 0x150000 1078 IP_MTU_DISCOVER = 0xa
1079 KEXEC_ARCH_S390 = 0x160000 1079 IP_MULTICAST_ALL = 0x31
1080 KEXEC_ARCH_SH = 0x2a0000 1080 IP_MULTICAST_IF = 0x20
1081 KEXEC_ARCH_X86_64 = 0x3e0000 1081 IP_MULTICAST_LOOP = 0x22
1082 KEXEC_FILE_NO_INITRAMFS = 0x4 1082 IP_MULTICAST_TTL = 0x21
1083 KEXEC_FILE_ON_CRASH = 0x2 1083 IP_NODEFRAG = 0x16
1084 KEXEC_FILE_UNLOAD = 0x1 1084 IP_OFFMASK = 0x1fff
1085 KEXEC_ON_CRASH = 0x1 1085 IP_OPTIONS = 0x4
1086 KEXEC_PRESERVE_CONTEXT = 0x2 1086 IP_ORIGDSTADDR = 0x14
1087 KEXEC_SEGMENT_MAX = 0x10 1087 IP_PASSSEC = 0x12
1088 KEYCTL_ASSUME_AUTHORITY = 0x10 1088 IP_PKTINFO = 0x8
1089 KEYCTL_CHOWN = 0x4 1089 IP_PKTOPTIONS = 0x9
1090 KEYCTL_CLEAR = 0x7 1090 IP_PMTUDISC = 0xa
1091 KEYCTL_DESCRIBE = 0x6 1091 IP_PMTUDISC_DO = 0x2
1092 KEYCTL_DH_COMPUTE = 0x17 1092 IP_PMTUDISC_DONT = 0x0
1093 KEYCTL_GET_KEYRING_ID = 0x0 1093 IP_PMTUDISC_INTERFACE = 0x4
1094 KEYCTL_GET_PERSISTENT = 0x16 1094 IP_PMTUDISC_OMIT = 0x5
1095 KEYCTL_GET_SECURITY = 0x11 1095 IP_PMTUDISC_PROBE = 0x3
1096 KEYCTL_INSTANTIATE = 0xc 1096 IP_PMTUDISC_WANT = 0x1
1097 KEYCTL_INSTANTIATE_IOV = 0x14 1097 IP_RECVERR = 0xb
1098 KEYCTL_INVALIDATE = 0x15 1098 IP_RECVFRAGSIZE = 0x19
1099 KEYCTL_JOIN_SESSION_KEYRING = 0x1 1099 IP_RECVOPTS = 0x6
1100 KEYCTL_LINK = 0x8 1100 IP_RECVORIGDSTADDR = 0x14
1101 KEYCTL_NEGATE = 0xd 1101 IP_RECVRETOPTS = 0x7
1102 KEYCTL_PKEY_DECRYPT = 0x1a 1102 IP_RECVTOS = 0xd
1103 KEYCTL_PKEY_ENCRYPT = 0x19 1103 IP_RECVTTL = 0xc
1104 KEYCTL_PKEY_QUERY = 0x18 1104 IP_RETOPTS = 0x7
1105 KEYCTL_PKEY_SIGN = 0x1b 1105 IP_RF = 0x8000
1106 KEYCTL_PKEY_VERIFY = 0x1c 1106 IP_ROUTER_ALERT = 0x5
1107 KEYCTL_READ = 0xb 1107 IP_TOS = 0x1
1108 KEYCTL_REJECT = 0x13 1108 IP_TRANSPARENT = 0x13
1109 KEYCTL_RESTRICT_KEYRING = 0x1d 1109 IP_TTL = 0x2
1110 KEYCTL_REVOKE = 0x3 1110 IP_UNBLOCK_SOURCE = 0x25
1111 KEYCTL_SEARCH = 0xa 1111 IP_UNICAST_IF = 0x32
1112 KEYCTL_SESSION_TO_PARENT = 0x12 1112 IP_XFRM_POLICY = 0x11
1113 KEYCTL_SETPERM = 0x5 1113 ISIG = 0x80
1114 KEYCTL_SET_REQKEY_KEYRING = 0xe 1114 ISOFS_SUPER_MAGIC = 0x9660
1115 KEYCTL_SET_TIMEOUT = 0xf 1115 ISTRIP = 0x20
1116 KEYCTL_SUPPORTS_DECRYPT = 0x2 1116 IUCLC = 0x1000
1117 KEYCTL_SUPPORTS_ENCRYPT = 0x1 1117 IUTF8 = 0x4000
1118 KEYCTL_SUPPORTS_SIGN = 0x4 1118 IXANY = 0x800
1119 KEYCTL_SUPPORTS_VERIFY = 0x8 1119 IXOFF = 0x400
1120 KEYCTL_UNLINK = 0x9 1120 IXON = 0x200
1121 KEYCTL_UPDATE = 0x2 1121 JFFS2_SUPER_MAGIC = 0x72b6
1122 KEY_REQKEY_DEFL_DEFAULT = 0x0 1122 KEXEC_ARCH_386 = 0x30000
1123 KEY_REQKEY_DEFL_GROUP_KEYRING = 0x6 1123 KEXEC_ARCH_68K = 0x40000
1124 KEY_REQKEY_DEFL_NO_CHANGE = -0x1 1124 KEXEC_ARCH_AARCH64 = 0xb70000
1125 KEY_REQKEY_DEFL_PROCESS_KEYRING = 0x2 1125 KEXEC_ARCH_ARM = 0x280000
1126 KEY_REQKEY_DEFL_REQUESTOR_KEYRING = 0x7 1126 KEXEC_ARCH_DEFAULT = 0x0
1127 KEY_REQKEY_DEFL_SESSION_KEYRING = 0x3 1127 KEXEC_ARCH_IA_64 = 0x320000
1128 KEY_REQKEY_DEFL_THREAD_KEYRING = 0x1 1128 KEXEC_ARCH_MASK = 0xffff0000
1129 KEY_REQKEY_DEFL_USER_KEYRING = 0x4 1129 KEXEC_ARCH_MIPS = 0x80000
1130 KEY_REQKEY_DEFL_USER_SESSION_KEYRING = 0x5 1130 KEXEC_ARCH_MIPS_LE = 0xa0000
1131 KEY_SPEC_GROUP_KEYRING = -0x6 1131 KEXEC_ARCH_PARISC = 0xf0000
1132 KEY_SPEC_PROCESS_KEYRING = -0x2 1132 KEXEC_ARCH_PPC = 0x140000
1133 KEY_SPEC_REQKEY_AUTH_KEY = -0x7 1133 KEXEC_ARCH_PPC64 = 0x150000
1134 KEY_SPEC_REQUESTOR_KEYRING = -0x8 1134 KEXEC_ARCH_S390 = 0x160000
1135 KEY_SPEC_SESSION_KEYRING = -0x3 1135 KEXEC_ARCH_SH = 0x2a0000
1136 KEY_SPEC_THREAD_KEYRING = -0x1 1136 KEXEC_ARCH_X86_64 = 0x3e0000
1137 KEY_SPEC_USER_KEYRING = -0x4 1137 KEXEC_FILE_NO_INITRAMFS = 0x4
1138 KEY_SPEC_USER_SESSION_KEYRING = -0x5 1138 KEXEC_FILE_ON_CRASH = 0x2
1139 LINUX_REBOOT_CMD_CAD_OFF = 0x0 1139 KEXEC_FILE_UNLOAD = 0x1
1140 LINUX_REBOOT_CMD_CAD_ON = 0x89abcdef 1140 KEXEC_ON_CRASH = 0x1
1141 LINUX_REBOOT_CMD_HALT = 0xcdef0123 1141 KEXEC_PRESERVE_CONTEXT = 0x2
1142 LINUX_REBOOT_CMD_KEXEC = 0x45584543 1142 KEXEC_SEGMENT_MAX = 0x10
1143 LINUX_REBOOT_CMD_POWER_OFF = 0x4321fedc 1143 KEYCTL_ASSUME_AUTHORITY = 0x10
1144 LINUX_REBOOT_CMD_RESTART = 0x1234567 1144 KEYCTL_CAPABILITIES = 0x1f
1145 LINUX_REBOOT_CMD_RESTART2 = 0xa1b2c3d4 1145 KEYCTL_CAPS0_BIG_KEY = 0x10
1146 LINUX_REBOOT_CMD_SW_SUSPEND = 0xd000fce2 1146 KEYCTL_CAPS0_CAPABILITIES = 0x1
1147 LINUX_REBOOT_MAGIC1 = 0xfee1dead 1147 KEYCTL_CAPS0_DIFFIE_HELLMAN = 0x4
1148 LINUX_REBOOT_MAGIC2 = 0x28121969 1148 KEYCTL_CAPS0_INVALIDATE = 0x20
1149 LOCK_EX = 0x2 1149 KEYCTL_CAPS0_MOVE = 0x80
1150 LOCK_NB = 0x4 1150 KEYCTL_CAPS0_PERSISTENT_KEYRINGS = 0x2
1151 LOCK_SH = 0x1 1151 KEYCTL_CAPS0_PUBLIC_KEY = 0x8
1152 LOCK_UN = 0x8 1152 KEYCTL_CAPS0_RESTRICT_KEYRING = 0x40
1153 LOOP_CLR_FD = 0x4c01 1153 KEYCTL_CAPS1_NS_KEYRING_NAME = 0x1
1154 LOOP_CTL_ADD = 0x4c80 1154 KEYCTL_CAPS1_NS_KEY_TAG = 0x2
1155 LOOP_CTL_GET_FREE = 0x4c82 1155 KEYCTL_CHOWN = 0x4
1156 LOOP_CTL_REMOVE = 0x4c81 1156 KEYCTL_CLEAR = 0x7
1157 LOOP_GET_STATUS = 0x4c03 1157 KEYCTL_DESCRIBE = 0x6
1158 LOOP_GET_STATUS64 = 0x4c05 1158 KEYCTL_DH_COMPUTE = 0x17
1159 LOOP_SET_BLOCK_SIZE = 0x4c09 1159 KEYCTL_GET_KEYRING_ID = 0x0
1160 LOOP_SET_CAPACITY = 0x4c07 1160 KEYCTL_GET_PERSISTENT = 0x16
1161 LOOP_SET_DIRECT_IO = 0x4c08 1161 KEYCTL_GET_SECURITY = 0x11
1162 LOOP_SET_FD = 0x4c00 1162 KEYCTL_INSTANTIATE = 0xc
1163 LOOP_SET_STATUS = 0x4c02 1163 KEYCTL_INSTANTIATE_IOV = 0x14
1164 LOOP_SET_STATUS64 = 0x4c04 1164 KEYCTL_INVALIDATE = 0x15
1165 LO_KEY_SIZE = 0x20 1165 KEYCTL_JOIN_SESSION_KEYRING = 0x1
1166 LO_NAME_SIZE = 0x40 1166 KEYCTL_LINK = 0x8
1167 MADV_DODUMP = 0x11 1167 KEYCTL_MOVE = 0x1e
1168 MADV_DOFORK = 0xb 1168 KEYCTL_MOVE_EXCL = 0x1
1169 MADV_DONTDUMP = 0x10 1169 KEYCTL_NEGATE = 0xd
1170 MADV_DONTFORK = 0xa 1170 KEYCTL_PKEY_DECRYPT = 0x1a
1171 MADV_DONTNEED = 0x4 1171 KEYCTL_PKEY_ENCRYPT = 0x19
1172 MADV_FREE = 0x8 1172 KEYCTL_PKEY_QUERY = 0x18
1173 MADV_HUGEPAGE = 0xe 1173 KEYCTL_PKEY_SIGN = 0x1b
1174 MADV_HWPOISON = 0x64 1174 KEYCTL_PKEY_VERIFY = 0x1c
1175 MADV_KEEPONFORK = 0x13 1175 KEYCTL_READ = 0xb
1176 MADV_MERGEABLE = 0xc 1176 KEYCTL_REJECT = 0x13
1177 MADV_NOHUGEPAGE = 0xf 1177 KEYCTL_RESTRICT_KEYRING = 0x1d
1178 MADV_NORMAL = 0x0 1178 KEYCTL_REVOKE = 0x3
1179 MADV_RANDOM = 0x1 1179 KEYCTL_SEARCH = 0xa
1180 MADV_REMOVE = 0x9 1180 KEYCTL_SESSION_TO_PARENT = 0x12
1181 MADV_SEQUENTIAL = 0x2 1181 KEYCTL_SETPERM = 0x5
1182 MADV_UNMERGEABLE = 0xd 1182 KEYCTL_SET_REQKEY_KEYRING = 0xe
1183 MADV_WILLNEED = 0x3 1183 KEYCTL_SET_TIMEOUT = 0xf
1184 MADV_WIPEONFORK = 0x12 1184 KEYCTL_SUPPORTS_DECRYPT = 0x2
1185 MAP_ANON = 0x20 1185 KEYCTL_SUPPORTS_ENCRYPT = 0x1
1186 MAP_ANONYMOUS = 0x20 1186 KEYCTL_SUPPORTS_SIGN = 0x4
1187 MAP_DENYWRITE = 0x800 1187 KEYCTL_SUPPORTS_VERIFY = 0x8
1188 MAP_EXECUTABLE = 0x1000 1188 KEYCTL_UNLINK = 0x9
1189 MAP_FILE = 0x0 1189 KEYCTL_UPDATE = 0x2
1190 MAP_FIXED = 0x10 1190 KEY_REQKEY_DEFL_DEFAULT = 0x0
1191 MAP_FIXED_NOREPLACE = 0x100000 1191 KEY_REQKEY_DEFL_GROUP_KEYRING = 0x6
1192 MAP_GROWSDOWN = 0x100 1192 KEY_REQKEY_DEFL_NO_CHANGE = -0x1
1193 MAP_HUGETLB = 0x40000 1193 KEY_REQKEY_DEFL_PROCESS_KEYRING = 0x2
1194 MAP_HUGE_MASK = 0x3f 1194 KEY_REQKEY_DEFL_REQUESTOR_KEYRING = 0x7
1195 MAP_HUGE_SHIFT = 0x1a 1195 KEY_REQKEY_DEFL_SESSION_KEYRING = 0x3
1196 MAP_LOCKED = 0x80 1196 KEY_REQKEY_DEFL_THREAD_KEYRING = 0x1
1197 MAP_NONBLOCK = 0x10000 1197 KEY_REQKEY_DEFL_USER_KEYRING = 0x4
1198 MAP_NORESERVE = 0x40 1198 KEY_REQKEY_DEFL_USER_SESSION_KEYRING = 0x5
1199 MAP_POPULATE = 0x8000 1199 KEY_SPEC_GROUP_KEYRING = -0x6
1200 MAP_PRIVATE = 0x2 1200 KEY_SPEC_PROCESS_KEYRING = -0x2
1201 MAP_SHARED = 0x1 1201 KEY_SPEC_REQKEY_AUTH_KEY = -0x7
1202 MAP_SHARED_VALIDATE = 0x3 1202 KEY_SPEC_REQUESTOR_KEYRING = -0x8
1203 MAP_STACK = 0x20000 1203 KEY_SPEC_SESSION_KEYRING = -0x3
1204 MAP_TYPE = 0xf 1204 KEY_SPEC_THREAD_KEYRING = -0x1
1205 MCAST_BLOCK_SOURCE = 0x2b 1205 KEY_SPEC_USER_KEYRING = -0x4
1206 MCAST_EXCLUDE = 0x0 1206 KEY_SPEC_USER_SESSION_KEYRING = -0x5
1207 MCAST_INCLUDE = 0x1 1207 LINUX_REBOOT_CMD_CAD_OFF = 0x0
1208 MCAST_JOIN_GROUP = 0x2a 1208 LINUX_REBOOT_CMD_CAD_ON = 0x89abcdef
1209 MCAST_JOIN_SOURCE_GROUP = 0x2e 1209 LINUX_REBOOT_CMD_HALT = 0xcdef0123
1210 MCAST_LEAVE_GROUP = 0x2d 1210 LINUX_REBOOT_CMD_KEXEC = 0x45584543
1211 MCAST_LEAVE_SOURCE_GROUP = 0x2f 1211 LINUX_REBOOT_CMD_POWER_OFF = 0x4321fedc
1212 MCAST_MSFILTER = 0x30 1212 LINUX_REBOOT_CMD_RESTART = 0x1234567
1213 MCAST_UNBLOCK_SOURCE = 0x2c 1213 LINUX_REBOOT_CMD_RESTART2 = 0xa1b2c3d4
1214 MCL_CURRENT = 0x2000 1214 LINUX_REBOOT_CMD_SW_SUSPEND = 0xd000fce2
1215 MCL_FUTURE = 0x4000 1215 LINUX_REBOOT_MAGIC1 = 0xfee1dead
1216 MCL_ONFAULT = 0x8000 1216 LINUX_REBOOT_MAGIC2 = 0x28121969
1217 MFD_ALLOW_SEALING = 0x2 1217 LOCK_EX = 0x2
1218 MFD_CLOEXEC = 0x1 1218 LOCK_NB = 0x4
1219 MFD_HUGETLB = 0x4 1219 LOCK_SH = 0x1
1220 MFD_HUGE_16GB = -0x78000000 1220 LOCK_UN = 0x8
1221 MFD_HUGE_16MB = 0x60000000 1221 LOOP_CLR_FD = 0x4c01
1222 MFD_HUGE_1GB = 0x78000000 1222 LOOP_CTL_ADD = 0x4c80
1223 MFD_HUGE_1MB = 0x50000000 1223 LOOP_CTL_GET_FREE = 0x4c82
1224 MFD_HUGE_256MB = 0x70000000 1224 LOOP_CTL_REMOVE = 0x4c81
1225 MFD_HUGE_2GB = 0x7c000000 1225 LOOP_GET_STATUS = 0x4c03
1226 MFD_HUGE_2MB = 0x54000000 1226 LOOP_GET_STATUS64 = 0x4c05
1227 MFD_HUGE_32MB = 0x64000000 1227 LOOP_SET_BLOCK_SIZE = 0x4c09
1228 MFD_HUGE_512KB = 0x4c000000 1228 LOOP_SET_CAPACITY = 0x4c07
1229 MFD_HUGE_512MB = 0x74000000 1229 LOOP_SET_DIRECT_IO = 0x4c08
1230 MFD_HUGE_64KB = 0x40000000 1230 LOOP_SET_FD = 0x4c00
1231 MFD_HUGE_8MB = 0x5c000000 1231 LOOP_SET_STATUS = 0x4c02
1232 MFD_HUGE_MASK = 0x3f 1232 LOOP_SET_STATUS64 = 0x4c04
1233 MFD_HUGE_SHIFT = 0x1a 1233 LO_KEY_SIZE = 0x20
1234 MINIX2_SUPER_MAGIC = 0x2468 1234 LO_NAME_SIZE = 0x40
1235 MINIX2_SUPER_MAGIC2 = 0x2478 1235 MADV_COLD = 0x14
1236 MINIX3_SUPER_MAGIC = 0x4d5a 1236 MADV_DODUMP = 0x11
1237 MINIX_SUPER_MAGIC = 0x137f 1237 MADV_DOFORK = 0xb
1238 MINIX_SUPER_MAGIC2 = 0x138f 1238 MADV_DONTDUMP = 0x10
1239 MNT_DETACH = 0x2 1239 MADV_DONTFORK = 0xa
1240 MNT_EXPIRE = 0x4 1240 MADV_DONTNEED = 0x4
1241 MNT_FORCE = 0x1 1241 MADV_FREE = 0x8
1242 MODULE_INIT_IGNORE_MODVERSIONS = 0x1 1242 MADV_HUGEPAGE = 0xe
1243 MODULE_INIT_IGNORE_VERMAGIC = 0x2 1243 MADV_HWPOISON = 0x64
1244 MSDOS_SUPER_MAGIC = 0x4d44 1244 MADV_KEEPONFORK = 0x13
1245 MSG_BATCH = 0x40000 1245 MADV_MERGEABLE = 0xc
1246 MSG_CMSG_CLOEXEC = 0x40000000 1246 MADV_NOHUGEPAGE = 0xf
1247 MSG_CONFIRM = 0x800 1247 MADV_NORMAL = 0x0
1248 MSG_CTRUNC = 0x8 1248 MADV_PAGEOUT = 0x15
1249 MSG_DONTROUTE = 0x4 1249 MADV_RANDOM = 0x1
1250 MSG_DONTWAIT = 0x40 1250 MADV_REMOVE = 0x9
1251 MSG_EOR = 0x80 1251 MADV_SEQUENTIAL = 0x2
1252 MSG_ERRQUEUE = 0x2000 1252 MADV_UNMERGEABLE = 0xd
1253 MSG_FASTOPEN = 0x20000000 1253 MADV_WILLNEED = 0x3
1254 MSG_FIN = 0x200 1254 MADV_WIPEONFORK = 0x12
1255 MSG_MORE = 0x8000 1255 MAP_ANON = 0x20
1256 MSG_NOSIGNAL = 0x4000 1256 MAP_ANONYMOUS = 0x20
1257 MSG_OOB = 0x1 1257 MAP_DENYWRITE = 0x800
1258 MSG_PEEK = 0x2 1258 MAP_EXECUTABLE = 0x1000
1259 MSG_PROXY = 0x10 1259 MAP_FILE = 0x0
1260 MSG_RST = 0x1000 1260 MAP_FIXED = 0x10
1261 MSG_SYN = 0x400 1261 MAP_FIXED_NOREPLACE = 0x100000
1262 MSG_TRUNC = 0x20 1262 MAP_GROWSDOWN = 0x100
1263 MSG_TRYHARD = 0x4 1263 MAP_HUGETLB = 0x40000
1264 MSG_WAITALL = 0x100 1264 MAP_HUGE_MASK = 0x3f
1265 MSG_WAITFORONE = 0x10000 1265 MAP_HUGE_SHIFT = 0x1a
1266 MSG_ZEROCOPY = 0x4000000 1266 MAP_LOCKED = 0x80
1267 MS_ACTIVE = 0x40000000 1267 MAP_NONBLOCK = 0x10000
1268 MS_ASYNC = 0x1 1268 MAP_NORESERVE = 0x40
1269 MS_BIND = 0x1000 1269 MAP_POPULATE = 0x8000
1270 MS_BORN = 0x20000000 1270 MAP_PRIVATE = 0x2
1271 MS_DIRSYNC = 0x80 1271 MAP_SHARED = 0x1
1272 MS_INVALIDATE = 0x2 1272 MAP_SHARED_VALIDATE = 0x3
1273 MS_I_VERSION = 0x800000 1273 MAP_STACK = 0x20000
1274 MS_KERNMOUNT = 0x400000 1274 MAP_SYNC = 0x80000
1275 MS_LAZYTIME = 0x2000000 1275 MAP_TYPE = 0xf
1276 MS_MANDLOCK = 0x40 1276 MCAST_BLOCK_SOURCE = 0x2b
1277 MS_MGC_MSK = 0xffff0000 1277 MCAST_EXCLUDE = 0x0
1278 MS_MGC_VAL = 0xc0ed0000 1278 MCAST_INCLUDE = 0x1
1279 MS_MOVE = 0x2000 1279 MCAST_JOIN_GROUP = 0x2a
1280 MS_NOATIME = 0x400 1280 MCAST_JOIN_SOURCE_GROUP = 0x2e
1281 MS_NODEV = 0x4 1281 MCAST_LEAVE_GROUP = 0x2d
1282 MS_NODIRATIME = 0x800 1282 MCAST_LEAVE_SOURCE_GROUP = 0x2f
1283 MS_NOEXEC = 0x8 1283 MCAST_MSFILTER = 0x30
1284 MS_NOREMOTELOCK = 0x8000000 1284 MCAST_UNBLOCK_SOURCE = 0x2c
1285 MS_NOSEC = 0x10000000 1285 MCL_CURRENT = 0x2000
1286 MS_NOSUID = 0x2 1286 MCL_FUTURE = 0x4000
1287 MS_NOUSER = -0x80000000 1287 MCL_ONFAULT = 0x8000
1288 MS_POSIXACL = 0x10000 1288 MFD_ALLOW_SEALING = 0x2
1289 MS_PRIVATE = 0x40000 1289 MFD_CLOEXEC = 0x1
1290 MS_RDONLY = 0x1 1290 MFD_HUGETLB = 0x4
1291 MS_REC = 0x4000 1291 MFD_HUGE_16GB = -0x78000000
1292 MS_RELATIME = 0x200000 1292 MFD_HUGE_16MB = 0x60000000
1293 MS_REMOUNT = 0x20 1293 MFD_HUGE_1GB = 0x78000000
1294 MS_RMT_MASK = 0x2800051 1294 MFD_HUGE_1MB = 0x50000000
1295 MS_SHARED = 0x100000 1295 MFD_HUGE_256MB = 0x70000000
1296 MS_SILENT = 0x8000 1296 MFD_HUGE_2GB = 0x7c000000
1297 MS_SLAVE = 0x80000 1297 MFD_HUGE_2MB = 0x54000000
1298 MS_STRICTATIME = 0x1000000 1298 MFD_HUGE_32MB = 0x64000000
1299 MS_SUBMOUNT = 0x4000000 1299 MFD_HUGE_512KB = 0x4c000000
1300 MS_SYNC = 0x4 1300 MFD_HUGE_512MB = 0x74000000
1301 MS_SYNCHRONOUS = 0x10 1301 MFD_HUGE_64KB = 0x40000000
1302 MS_UNBINDABLE = 0x20000 1302 MFD_HUGE_8MB = 0x5c000000
1303 MS_VERBOSE = 0x8000 1303 MFD_HUGE_MASK = 0x3f
1304 MTD_INODE_FS_MAGIC = 0x11307854 1304 MFD_HUGE_SHIFT = 0x1a
1305 NAME_MAX = 0xff 1305 MINIX2_SUPER_MAGIC = 0x2468
1306 NCP_SUPER_MAGIC = 0x564c 1306 MINIX2_SUPER_MAGIC2 = 0x2478
1307 NETLINK_ADD_MEMBERSHIP = 0x1 1307 MINIX3_SUPER_MAGIC = 0x4d5a
1308 NETLINK_AUDIT = 0x9 1308 MINIX_SUPER_MAGIC = 0x137f
1309 NETLINK_BROADCAST_ERROR = 0x4 1309 MINIX_SUPER_MAGIC2 = 0x138f
1310 NETLINK_CAP_ACK = 0xa 1310 MNT_DETACH = 0x2
1311 NETLINK_CONNECTOR = 0xb 1311 MNT_EXPIRE = 0x4
1312 NETLINK_CRYPTO = 0x15 1312 MNT_FORCE = 0x1
1313 NETLINK_DNRTMSG = 0xe 1313 MODULE_INIT_IGNORE_MODVERSIONS = 0x1
1314 NETLINK_DROP_MEMBERSHIP = 0x2 1314 MODULE_INIT_IGNORE_VERMAGIC = 0x2
1315 NETLINK_ECRYPTFS = 0x13 1315 MSDOS_SUPER_MAGIC = 0x4d44
1316 NETLINK_EXT_ACK = 0xb 1316 MSG_BATCH = 0x40000
1317 NETLINK_FIB_LOOKUP = 0xa 1317 MSG_CMSG_CLOEXEC = 0x40000000
1318 NETLINK_FIREWALL = 0x3 1318 MSG_CONFIRM = 0x800
1319 NETLINK_GENERIC = 0x10 1319 MSG_CTRUNC = 0x8
1320 NETLINK_GET_STRICT_CHK = 0xc 1320 MSG_DONTROUTE = 0x4
1321 NETLINK_INET_DIAG = 0x4 1321 MSG_DONTWAIT = 0x40
1322 NETLINK_IP6_FW = 0xd 1322 MSG_EOR = 0x80
1323 NETLINK_ISCSI = 0x8 1323 MSG_ERRQUEUE = 0x2000
1324 NETLINK_KOBJECT_UEVENT = 0xf 1324 MSG_FASTOPEN = 0x20000000
1325 NETLINK_LISTEN_ALL_NSID = 0x8 1325 MSG_FIN = 0x200
1326 NETLINK_LIST_MEMBERSHIPS = 0x9 1326 MSG_MORE = 0x8000
1327 NETLINK_NETFILTER = 0xc 1327 MSG_NOSIGNAL = 0x4000
1328 NETLINK_NFLOG = 0x5 1328 MSG_OOB = 0x1
1329 NETLINK_NO_ENOBUFS = 0x5 1329 MSG_PEEK = 0x2
1330 NETLINK_PKTINFO = 0x3 1330 MSG_PROXY = 0x10
1331 NETLINK_RDMA = 0x14 1331 MSG_RST = 0x1000
1332 NETLINK_ROUTE = 0x0 1332 MSG_SYN = 0x400
1333 NETLINK_RX_RING = 0x6 1333 MSG_TRUNC = 0x20
1334 NETLINK_SCSITRANSPORT = 0x12 1334 MSG_TRYHARD = 0x4
1335 NETLINK_SELINUX = 0x7 1335 MSG_WAITALL = 0x100
1336 NETLINK_SMC = 0x16 1336 MSG_WAITFORONE = 0x10000
1337 NETLINK_SOCK_DIAG = 0x4 1337 MSG_ZEROCOPY = 0x4000000
1338 NETLINK_TX_RING = 0x7 1338 MS_ACTIVE = 0x40000000
1339 NETLINK_UNUSED = 0x1 1339 MS_ASYNC = 0x1
1340 NETLINK_USERSOCK = 0x2 1340 MS_BIND = 0x1000
1341 NETLINK_XFRM = 0x6 1341 MS_BORN = 0x20000000
1342 NETNSA_MAX = 0x5 1342 MS_DIRSYNC = 0x80
1343 NETNSA_NSID_NOT_ASSIGNED = -0x1 1343 MS_INVALIDATE = 0x2
1344 NFNETLINK_V0 = 0x0 1344 MS_I_VERSION = 0x800000
1345 NFNLGRP_ACCT_QUOTA = 0x8 1345 MS_KERNMOUNT = 0x400000
1346 NFNLGRP_CONNTRACK_DESTROY = 0x3 1346 MS_LAZYTIME = 0x2000000
1347 NFNLGRP_CONNTRACK_EXP_DESTROY = 0x6 1347 MS_MANDLOCK = 0x40
1348 NFNLGRP_CONNTRACK_EXP_NEW = 0x4 1348 MS_MGC_MSK = 0xffff0000
1349 NFNLGRP_CONNTRACK_EXP_UPDATE = 0x5 1349 MS_MGC_VAL = 0xc0ed0000
1350 NFNLGRP_CONNTRACK_NEW = 0x1 1350 MS_MOVE = 0x2000
1351 NFNLGRP_CONNTRACK_UPDATE = 0x2 1351 MS_NOATIME = 0x400
1352 NFNLGRP_MAX = 0x9 1352 MS_NODEV = 0x4
1353 NFNLGRP_NFTABLES = 0x7 1353 MS_NODIRATIME = 0x800
1354 NFNLGRP_NFTRACE = 0x9 1354 MS_NOEXEC = 0x8
1355 NFNLGRP_NONE = 0x0 1355 MS_NOREMOTELOCK = 0x8000000
1356 NFNL_BATCH_MAX = 0x1 1356 MS_NOSEC = 0x10000000
1357 NFNL_MSG_BATCH_BEGIN = 0x10 1357 MS_NOSUID = 0x2
1358 NFNL_MSG_BATCH_END = 0x11 1358 MS_NOUSER = -0x80000000
1359 NFNL_NFA_NEST = 0x8000 1359 MS_POSIXACL = 0x10000
1360 NFNL_SUBSYS_ACCT = 0x7 1360 MS_PRIVATE = 0x40000
1361 NFNL_SUBSYS_COUNT = 0xc 1361 MS_RDONLY = 0x1
1362 NFNL_SUBSYS_CTHELPER = 0x9 1362 MS_REC = 0x4000
1363 NFNL_SUBSYS_CTNETLINK = 0x1 1363 MS_RELATIME = 0x200000
1364 NFNL_SUBSYS_CTNETLINK_EXP = 0x2 1364 MS_REMOUNT = 0x20
1365 NFNL_SUBSYS_CTNETLINK_TIMEOUT = 0x8 1365 MS_RMT_MASK = 0x2800051
1366 NFNL_SUBSYS_IPSET = 0x6 1366 MS_SHARED = 0x100000
1367 NFNL_SUBSYS_NFTABLES = 0xa 1367 MS_SILENT = 0x8000
1368 NFNL_SUBSYS_NFT_COMPAT = 0xb 1368 MS_SLAVE = 0x80000
1369 NFNL_SUBSYS_NONE = 0x0 1369 MS_STRICTATIME = 0x1000000
1370 NFNL_SUBSYS_OSF = 0x5 1370 MS_SUBMOUNT = 0x4000000
1371 NFNL_SUBSYS_QUEUE = 0x3 1371 MS_SYNC = 0x4
1372 NFNL_SUBSYS_ULOG = 0x4 1372 MS_SYNCHRONOUS = 0x10
1373 NFS_SUPER_MAGIC = 0x6969 1373 MS_UNBINDABLE = 0x20000
1374 NILFS_SUPER_MAGIC = 0x3434 1374 MS_VERBOSE = 0x8000
1375 NL0 = 0x0 1375 MTD_INODE_FS_MAGIC = 0x11307854
1376 NL1 = 0x100 1376 NAME_MAX = 0xff
1377 NL2 = 0x200 1377 NCP_SUPER_MAGIC = 0x564c
1378 NL3 = 0x300 1378 NETLINK_ADD_MEMBERSHIP = 0x1
1379 NLA_ALIGNTO = 0x4 1379 NETLINK_AUDIT = 0x9
1380 NLA_F_NESTED = 0x8000 1380 NETLINK_BROADCAST_ERROR = 0x4
1381 NLA_F_NET_BYTEORDER = 0x4000 1381 NETLINK_CAP_ACK = 0xa
1382 NLA_HDRLEN = 0x4 1382 NETLINK_CONNECTOR = 0xb
1383 NLDLY = 0x300 1383 NETLINK_CRYPTO = 0x15
1384 NLMSG_ALIGNTO = 0x4 1384 NETLINK_DNRTMSG = 0xe
1385 NLMSG_DONE = 0x3 1385 NETLINK_DROP_MEMBERSHIP = 0x2
1386 NLMSG_ERROR = 0x2 1386 NETLINK_ECRYPTFS = 0x13
1387 NLMSG_HDRLEN = 0x10 1387 NETLINK_EXT_ACK = 0xb
1388 NLMSG_MIN_TYPE = 0x10 1388 NETLINK_FIB_LOOKUP = 0xa
1389 NLMSG_NOOP = 0x1 1389 NETLINK_FIREWALL = 0x3
1390 NLMSG_OVERRUN = 0x4 1390 NETLINK_GENERIC = 0x10
1391 NLM_F_ACK = 0x4 1391 NETLINK_GET_STRICT_CHK = 0xc
1392 NLM_F_ACK_TLVS = 0x200 1392 NETLINK_INET_DIAG = 0x4
1393 NLM_F_APPEND = 0x800 1393 NETLINK_IP6_FW = 0xd
1394 NLM_F_ATOMIC = 0x400 1394 NETLINK_ISCSI = 0x8
1395 NLM_F_CAPPED = 0x100 1395 NETLINK_KOBJECT_UEVENT = 0xf
1396 NLM_F_CREATE = 0x400 1396 NETLINK_LISTEN_ALL_NSID = 0x8
1397 NLM_F_DUMP = 0x300 1397 NETLINK_LIST_MEMBERSHIPS = 0x9
1398 NLM_F_DUMP_FILTERED = 0x20 1398 NETLINK_NETFILTER = 0xc
1399 NLM_F_DUMP_INTR = 0x10 1399 NETLINK_NFLOG = 0x5
1400 NLM_F_ECHO = 0x8 1400 NETLINK_NO_ENOBUFS = 0x5
1401 NLM_F_EXCL = 0x200 1401 NETLINK_PKTINFO = 0x3
1402 NLM_F_MATCH = 0x200 1402 NETLINK_RDMA = 0x14
1403 NLM_F_MULTI = 0x2 1403 NETLINK_ROUTE = 0x0
1404 NLM_F_NONREC = 0x100 1404 NETLINK_RX_RING = 0x6
1405 NLM_F_REPLACE = 0x100 1405 NETLINK_SCSITRANSPORT = 0x12
1406 NLM_F_REQUEST = 0x1 1406 NETLINK_SELINUX = 0x7
1407 NLM_F_ROOT = 0x100 1407 NETLINK_SMC = 0x16
1408 NOFLSH = 0x80000000 1408 NETLINK_SOCK_DIAG = 0x4
1409 NSFS_MAGIC = 0x6e736673 1409 NETLINK_TX_RING = 0x7
1410 NS_GET_NSTYPE = 0x2000b703 1410 NETLINK_UNUSED = 0x1
1411 NS_GET_OWNER_UID = 0x2000b704 1411 NETLINK_USERSOCK = 0x2
1412 NS_GET_PARENT = 0x2000b702 1412 NETLINK_XFRM = 0x6
1413 NS_GET_USERNS = 0x2000b701 1413 NETNSA_MAX = 0x5
1414 OCFS2_SUPER_MAGIC = 0x7461636f 1414 NETNSA_NSID_NOT_ASSIGNED = -0x1
1415 OCRNL = 0x8 1415 NFDBITS = 0x40
1416 OFDEL = 0x80 1416 NFNETLINK_V0 = 0x0
1417 OFILL = 0x40 1417 NFNLGRP_ACCT_QUOTA = 0x8
1418 OLCUC = 0x4 1418 NFNLGRP_CONNTRACK_DESTROY = 0x3
1419 ONLCR = 0x2 1419 NFNLGRP_CONNTRACK_EXP_DESTROY = 0x6
1420 ONLRET = 0x20 1420 NFNLGRP_CONNTRACK_EXP_NEW = 0x4
1421 ONOCR = 0x10 1421 NFNLGRP_CONNTRACK_EXP_UPDATE = 0x5
1422 OPENPROM_SUPER_MAGIC = 0x9fa1 1422 NFNLGRP_CONNTRACK_NEW = 0x1
1423 OPOST = 0x1 1423 NFNLGRP_CONNTRACK_UPDATE = 0x2
1424 OVERLAYFS_SUPER_MAGIC = 0x794c7630 1424 NFNLGRP_MAX = 0x9
1425 O_ACCMODE = 0x3 1425 NFNLGRP_NFTABLES = 0x7
1426 O_APPEND = 0x400 1426 NFNLGRP_NFTRACE = 0x9
1427 O_ASYNC = 0x2000 1427 NFNLGRP_NONE = 0x0
1428 O_CLOEXEC = 0x80000 1428 NFNL_BATCH_MAX = 0x1
1429 O_CREAT = 0x40 1429 NFNL_MSG_BATCH_BEGIN = 0x10
1430 O_DIRECT = 0x20000 1430 NFNL_MSG_BATCH_END = 0x11
1431 O_DIRECTORY = 0x4000 1431 NFNL_NFA_NEST = 0x8000
1432 O_DSYNC = 0x1000 1432 NFNL_SUBSYS_ACCT = 0x7
1433 O_EXCL = 0x80 1433 NFNL_SUBSYS_COUNT = 0xc
1434 O_FSYNC = 0x101000 1434 NFNL_SUBSYS_CTHELPER = 0x9
1435 O_LARGEFILE = 0x0 1435 NFNL_SUBSYS_CTNETLINK = 0x1
1436 O_NDELAY = 0x800 1436 NFNL_SUBSYS_CTNETLINK_EXP = 0x2
1437 O_NOATIME = 0x40000 1437 NFNL_SUBSYS_CTNETLINK_TIMEOUT = 0x8
1438 O_NOCTTY = 0x100 1438 NFNL_SUBSYS_IPSET = 0x6
1439 O_NOFOLLOW = 0x8000 1439 NFNL_SUBSYS_NFTABLES = 0xa
1440 O_NONBLOCK = 0x800 1440 NFNL_SUBSYS_NFT_COMPAT = 0xb
1441 O_PATH = 0x200000 1441 NFNL_SUBSYS_NONE = 0x0
1442 O_RDONLY = 0x0 1442 NFNL_SUBSYS_OSF = 0x5
1443 O_RDWR = 0x2 1443 NFNL_SUBSYS_QUEUE = 0x3
1444 O_RSYNC = 0x101000 1444 NFNL_SUBSYS_ULOG = 0x4
1445 O_SYNC = 0x101000 1445 NFS_SUPER_MAGIC = 0x6969
1446 O_TMPFILE = 0x404000 1446 NILFS_SUPER_MAGIC = 0x3434
1447 O_TRUNC = 0x200 1447 NL0 = 0x0
1448 O_WRONLY = 0x1 1448 NL1 = 0x100
1449 PACKET_ADD_MEMBERSHIP = 0x1 1449 NL2 = 0x200
1450 PACKET_AUXDATA = 0x8 1450 NL3 = 0x300
1451 PACKET_BROADCAST = 0x1 1451 NLA_ALIGNTO = 0x4
1452 PACKET_COPY_THRESH = 0x7 1452 NLA_F_NESTED = 0x8000
1453 PACKET_DROP_MEMBERSHIP = 0x2 1453 NLA_F_NET_BYTEORDER = 0x4000
1454 PACKET_FANOUT = 0x12 1454 NLA_HDRLEN = 0x4
1455 PACKET_FANOUT_CBPF = 0x6 1455 NLDLY = 0x300
1456 PACKET_FANOUT_CPU = 0x2 1456 NLMSG_ALIGNTO = 0x4
1457 PACKET_FANOUT_DATA = 0x16 1457 NLMSG_DONE = 0x3
1458 PACKET_FANOUT_EBPF = 0x7 1458 NLMSG_ERROR = 0x2
1459 PACKET_FANOUT_FLAG_DEFRAG = 0x8000 1459 NLMSG_HDRLEN = 0x10
1460 PACKET_FANOUT_FLAG_ROLLOVER = 0x1000 1460 NLMSG_MIN_TYPE = 0x10
1461 PACKET_FANOUT_FLAG_UNIQUEID = 0x2000 1461 NLMSG_NOOP = 0x1
1462 PACKET_FANOUT_HASH = 0x0 1462 NLMSG_OVERRUN = 0x4
1463 PACKET_FANOUT_LB = 0x1 1463 NLM_F_ACK = 0x4
1464 PACKET_FANOUT_QM = 0x5 1464 NLM_F_ACK_TLVS = 0x200
1465 PACKET_FANOUT_RND = 0x4 1465 NLM_F_APPEND = 0x800
1466 PACKET_FANOUT_ROLLOVER = 0x3 1466 NLM_F_ATOMIC = 0x400
1467 PACKET_FASTROUTE = 0x6 1467 NLM_F_CAPPED = 0x100
1468 PACKET_HDRLEN = 0xb 1468 NLM_F_CREATE = 0x400
1469 PACKET_HOST = 0x0 1469 NLM_F_DUMP = 0x300
1470 PACKET_IGNORE_OUTGOING = 0x17 1470 NLM_F_DUMP_FILTERED = 0x20
1471 PACKET_KERNEL = 0x7 1471 NLM_F_DUMP_INTR = 0x10
1472 PACKET_LOOPBACK = 0x5 1472 NLM_F_ECHO = 0x8
1473 PACKET_LOSS = 0xe 1473 NLM_F_EXCL = 0x200
1474 PACKET_MR_ALLMULTI = 0x2 1474 NLM_F_MATCH = 0x200
1475 PACKET_MR_MULTICAST = 0x0 1475 NLM_F_MULTI = 0x2
1476 PACKET_MR_PROMISC = 0x1 1476 NLM_F_NONREC = 0x100
1477 PACKET_MR_UNICAST = 0x3 1477 NLM_F_REPLACE = 0x100
1478 PACKET_MULTICAST = 0x2 1478 NLM_F_REQUEST = 0x1
1479 PACKET_ORIGDEV = 0x9 1479 NLM_F_ROOT = 0x100
1480 PACKET_OTHERHOST = 0x3 1480 NOFLSH = 0x80000000
1481 PACKET_OUTGOING = 0x4 1481 NSFS_MAGIC = 0x6e736673
1482 PACKET_QDISC_BYPASS = 0x14 1482 NS_GET_NSTYPE = 0x2000b703
1483 PACKET_RECV_OUTPUT = 0x3 1483 NS_GET_OWNER_UID = 0x2000b704
1484 PACKET_RESERVE = 0xc 1484 NS_GET_PARENT = 0x2000b702
1485 PACKET_ROLLOVER_STATS = 0x15 1485 NS_GET_USERNS = 0x2000b701
1486 PACKET_RX_RING = 0x5 1486 OCFS2_SUPER_MAGIC = 0x7461636f
1487 PACKET_STATISTICS = 0x6 1487 OCRNL = 0x8
1488 PACKET_TIMESTAMP = 0x11 1488 OFDEL = 0x80
1489 PACKET_TX_HAS_OFF = 0x13 1489 OFILL = 0x40
1490 PACKET_TX_RING = 0xd 1490 OLCUC = 0x4
1491 PACKET_TX_TIMESTAMP = 0x10 1491 ONLCR = 0x2
1492 PACKET_USER = 0x6 1492 ONLRET = 0x20
1493 PACKET_VERSION = 0xa 1493 ONOCR = 0x10
1494 PACKET_VNET_HDR = 0xf 1494 OPENPROM_SUPER_MAGIC = 0x9fa1
1495 PARENB = 0x1000 1495 OPOST = 0x1
1496 PARITY_CRC16_PR0 = 0x2 1496 OVERLAYFS_SUPER_MAGIC = 0x794c7630
1497 PARITY_CRC16_PR0_CCITT = 0x4 1497 O_ACCMODE = 0x3
1498 PARITY_CRC16_PR1 = 0x3 1498 O_APPEND = 0x400
1499 PARITY_CRC16_PR1_CCITT = 0x5 1499 O_ASYNC = 0x2000
1500 PARITY_CRC32_PR0_CCITT = 0x6 1500 O_CLOEXEC = 0x80000
1501 PARITY_CRC32_PR1_CCITT = 0x7 1501 O_CREAT = 0x40
1502 PARITY_DEFAULT = 0x0 1502 O_DIRECT = 0x20000
1503 PARITY_NONE = 0x1 1503 O_DIRECTORY = 0x4000
1504 PARMRK = 0x8 1504 O_DSYNC = 0x1000
1505 PARODD = 0x2000 1505 O_EXCL = 0x80
1506 PENDIN = 0x20000000 1506 O_FSYNC = 0x101000
1507 PERF_EVENT_IOC_DISABLE = 0x20002401 1507 O_LARGEFILE = 0x0
1508 PERF_EVENT_IOC_ENABLE = 0x20002400 1508 O_NDELAY = 0x800
1509 PERF_EVENT_IOC_ID = 0x40082407 1509 O_NOATIME = 0x40000
1510 PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x8008240b 1510 O_NOCTTY = 0x100
1511 PERF_EVENT_IOC_PAUSE_OUTPUT = 0x80042409 1511 O_NOFOLLOW = 0x8000
1512 PERF_EVENT_IOC_PERIOD = 0x80082404 1512 O_NONBLOCK = 0x800
1513 PERF_EVENT_IOC_QUERY_BPF = 0xc008240a 1513 O_PATH = 0x200000
1514 PERF_EVENT_IOC_REFRESH = 0x20002402 1514 O_RDONLY = 0x0
1515 PERF_EVENT_IOC_RESET = 0x20002403 1515 O_RDWR = 0x2
1516 PERF_EVENT_IOC_SET_BPF = 0x80042408 1516 O_RSYNC = 0x101000
1517 PERF_EVENT_IOC_SET_FILTER = 0x80082406 1517 O_SYNC = 0x101000
1518 PERF_EVENT_IOC_SET_OUTPUT = 0x20002405 1518 O_TMPFILE = 0x404000
1519 PIPEFS_MAGIC = 0x50495045 1519 O_TRUNC = 0x200
1520 PPPIOCATTACH = 0x8004743d 1520 O_WRONLY = 0x1
1521 PPPIOCATTCHAN = 0x80047438 1521 PACKET_ADD_MEMBERSHIP = 0x1
1522 PPPIOCCONNECT = 0x8004743a 1522 PACKET_AUXDATA = 0x8
1523 PPPIOCDETACH = 0x8004743c 1523 PACKET_BROADCAST = 0x1
1524 PPPIOCDISCONN = 0x20007439 1524 PACKET_COPY_THRESH = 0x7
1525 PPPIOCGASYNCMAP = 0x40047458 1525 PACKET_DROP_MEMBERSHIP = 0x2
1526 PPPIOCGCHAN = 0x40047437 1526 PACKET_FANOUT = 0x12
1527 PPPIOCGDEBUG = 0x40047441 1527 PACKET_FANOUT_CBPF = 0x6
1528 PPPIOCGFLAGS = 0x4004745a 1528 PACKET_FANOUT_CPU = 0x2
1529 PPPIOCGIDLE = 0x4010743f 1529 PACKET_FANOUT_DATA = 0x16
1530 PPPIOCGL2TPSTATS = 0x40487436 1530 PACKET_FANOUT_EBPF = 0x7
1531 PPPIOCGMRU = 0x40047453 1531 PACKET_FANOUT_FLAG_DEFRAG = 0x8000
1532 PPPIOCGNPMODE = 0xc008744c 1532 PACKET_FANOUT_FLAG_ROLLOVER = 0x1000
1533 PPPIOCGRASYNCMAP = 0x40047455 1533 PACKET_FANOUT_FLAG_UNIQUEID = 0x2000
1534 PPPIOCGUNIT = 0x40047456 1534 PACKET_FANOUT_HASH = 0x0
1535 PPPIOCGXASYNCMAP = 0x40207450 1535 PACKET_FANOUT_LB = 0x1
1536 PPPIOCNEWUNIT = 0xc004743e 1536 PACKET_FANOUT_QM = 0x5
1537 PPPIOCSACTIVE = 0x80107446 1537 PACKET_FANOUT_RND = 0x4
1538 PPPIOCSASYNCMAP = 0x80047457 1538 PACKET_FANOUT_ROLLOVER = 0x3
1539 PPPIOCSCOMPRESS = 0x8010744d 1539 PACKET_FASTROUTE = 0x6
1540 PPPIOCSDEBUG = 0x80047440 1540 PACKET_HDRLEN = 0xb
1541 PPPIOCSFLAGS = 0x80047459 1541 PACKET_HOST = 0x0
1542 PPPIOCSMAXCID = 0x80047451 1542 PACKET_IGNORE_OUTGOING = 0x17
1543 PPPIOCSMRRU = 0x8004743b 1543 PACKET_KERNEL = 0x7
1544 PPPIOCSMRU = 0x80047452 1544 PACKET_LOOPBACK = 0x5
1545 PPPIOCSNPMODE = 0x8008744b 1545 PACKET_LOSS = 0xe
1546 PPPIOCSPASS = 0x80107447 1546 PACKET_MR_ALLMULTI = 0x2
1547 PPPIOCSRASYNCMAP = 0x80047454 1547 PACKET_MR_MULTICAST = 0x0
1548 PPPIOCSXASYNCMAP = 0x8020744f 1548 PACKET_MR_PROMISC = 0x1
1549 PPPIOCXFERUNIT = 0x2000744e 1549 PACKET_MR_UNICAST = 0x3
1550 PRIO_PGRP = 0x1 1550 PACKET_MULTICAST = 0x2
1551 PRIO_PROCESS = 0x0 1551 PACKET_ORIGDEV = 0x9
1552 PRIO_USER = 0x2 1552 PACKET_OTHERHOST = 0x3
1553 PROC_SUPER_MAGIC = 0x9fa0 1553 PACKET_OUTGOING = 0x4
1554 PROT_EXEC = 0x4 1554 PACKET_QDISC_BYPASS = 0x14
1555 PROT_GROWSDOWN = 0x1000000 1555 PACKET_RECV_OUTPUT = 0x3
1556 PROT_GROWSUP = 0x2000000 1556 PACKET_RESERVE = 0xc
1557 PROT_NONE = 0x0 1557 PACKET_ROLLOVER_STATS = 0x15
1558 PROT_READ = 0x1 1558 PACKET_RX_RING = 0x5
1559 PROT_SAO = 0x10 1559 PACKET_STATISTICS = 0x6
1560 PROT_WRITE = 0x2 1560 PACKET_TIMESTAMP = 0x11
1561 PR_CAPBSET_DROP = 0x18 1561 PACKET_TX_HAS_OFF = 0x13
1562 PR_CAPBSET_READ = 0x17 1562 PACKET_TX_RING = 0xd
1563 PR_CAP_AMBIENT = 0x2f 1563 PACKET_TX_TIMESTAMP = 0x10
1564 PR_CAP_AMBIENT_CLEAR_ALL = 0x4 1564 PACKET_USER = 0x6
1565 PR_CAP_AMBIENT_IS_SET = 0x1 1565 PACKET_VERSION = 0xa
1566 PR_CAP_AMBIENT_LOWER = 0x3 1566 PACKET_VNET_HDR = 0xf
1567 PR_CAP_AMBIENT_RAISE = 0x2 1567 PARENB = 0x1000
1568 PR_ENDIAN_BIG = 0x0 1568 PARITY_CRC16_PR0 = 0x2
1569 PR_ENDIAN_LITTLE = 0x1 1569 PARITY_CRC16_PR0_CCITT = 0x4
1570 PR_ENDIAN_PPC_LITTLE = 0x2 1570 PARITY_CRC16_PR1 = 0x3
1571 PR_FPEMU_NOPRINT = 0x1 1571 PARITY_CRC16_PR1_CCITT = 0x5
1572 PR_FPEMU_SIGFPE = 0x2 1572 PARITY_CRC32_PR0_CCITT = 0x6
1573 PR_FP_EXC_ASYNC = 0x2 1573 PARITY_CRC32_PR1_CCITT = 0x7
1574 PR_FP_EXC_DISABLED = 0x0 1574 PARITY_DEFAULT = 0x0
1575 PR_FP_EXC_DIV = 0x10000 1575 PARITY_NONE = 0x1
1576 PR_FP_EXC_INV = 0x100000 1576 PARMRK = 0x8
1577 PR_FP_EXC_NONRECOV = 0x1 1577 PARODD = 0x2000
1578 PR_FP_EXC_OVF = 0x20000 1578 PENDIN = 0x20000000
1579 PR_FP_EXC_PRECISE = 0x3 1579 PERF_EVENT_IOC_DISABLE = 0x20002401
1580 PR_FP_EXC_RES = 0x80000 1580 PERF_EVENT_IOC_ENABLE = 0x20002400
1581 PR_FP_EXC_SW_ENABLE = 0x80 1581 PERF_EVENT_IOC_ID = 0x40082407
1582 PR_FP_EXC_UND = 0x40000 1582 PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x8008240b
1583 PR_FP_MODE_FR = 0x1 1583 PERF_EVENT_IOC_PAUSE_OUTPUT = 0x80042409
1584 PR_FP_MODE_FRE = 0x2 1584 PERF_EVENT_IOC_PERIOD = 0x80082404
1585 PR_GET_CHILD_SUBREAPER = 0x25 1585 PERF_EVENT_IOC_QUERY_BPF = 0xc008240a
1586 PR_GET_DUMPABLE = 0x3 1586 PERF_EVENT_IOC_REFRESH = 0x20002402
1587 PR_GET_ENDIAN = 0x13 1587 PERF_EVENT_IOC_RESET = 0x20002403
1588 PR_GET_FPEMU = 0x9 1588 PERF_EVENT_IOC_SET_BPF = 0x80042408
1589 PR_GET_FPEXC = 0xb 1589 PERF_EVENT_IOC_SET_FILTER = 0x80082406
1590 PR_GET_FP_MODE = 0x2e 1590 PERF_EVENT_IOC_SET_OUTPUT = 0x20002405
1591 PR_GET_KEEPCAPS = 0x7 1591 PIPEFS_MAGIC = 0x50495045
1592 PR_GET_NAME = 0x10 1592 PPC_CMM_MAGIC = 0xc7571590
1593 PR_GET_NO_NEW_PRIVS = 0x27 1593 PPPIOCATTACH = 0x8004743d
1594 PR_GET_PDEATHSIG = 0x2 1594 PPPIOCATTCHAN = 0x80047438
1595 PR_GET_SECCOMP = 0x15 1595 PPPIOCCONNECT = 0x8004743a
1596 PR_GET_SECUREBITS = 0x1b 1596 PPPIOCDETACH = 0x8004743c
1597 PR_GET_SPECULATION_CTRL = 0x34 1597 PPPIOCDISCONN = 0x20007439
1598 PR_GET_THP_DISABLE = 0x2a 1598 PPPIOCGASYNCMAP = 0x40047458
1599 PR_GET_TID_ADDRESS = 0x28 1599 PPPIOCGCHAN = 0x40047437
1600 PR_GET_TIMERSLACK = 0x1e 1600 PPPIOCGDEBUG = 0x40047441
1601 PR_GET_TIMING = 0xd 1601 PPPIOCGFLAGS = 0x4004745a
1602 PR_GET_TSC = 0x19 1602 PPPIOCGIDLE = 0x4010743f
1603 PR_GET_UNALIGN = 0x5 1603 PPPIOCGIDLE32 = 0x4008743f
1604 PR_MCE_KILL = 0x21 1604 PPPIOCGIDLE64 = 0x4010743f
1605 PR_MCE_KILL_CLEAR = 0x0 1605 PPPIOCGL2TPSTATS = 0x40487436
1606 PR_MCE_KILL_DEFAULT = 0x2 1606 PPPIOCGMRU = 0x40047453
1607 PR_MCE_KILL_EARLY = 0x1 1607 PPPIOCGNPMODE = 0xc008744c
1608 PR_MCE_KILL_GET = 0x22 1608 PPPIOCGRASYNCMAP = 0x40047455
1609 PR_MCE_KILL_LATE = 0x0 1609 PPPIOCGUNIT = 0x40047456
1610 PR_MCE_KILL_SET = 0x1 1610 PPPIOCGXASYNCMAP = 0x40207450
1611 PR_MPX_DISABLE_MANAGEMENT = 0x2c 1611 PPPIOCNEWUNIT = 0xc004743e
1612 PR_MPX_ENABLE_MANAGEMENT = 0x2b 1612 PPPIOCSACTIVE = 0x80107446
1613 PR_PAC_APDAKEY = 0x4 1613 PPPIOCSASYNCMAP = 0x80047457
1614 PR_PAC_APDBKEY = 0x8 1614 PPPIOCSCOMPRESS = 0x8010744d
1615 PR_PAC_APGAKEY = 0x10 1615 PPPIOCSDEBUG = 0x80047440
1616 PR_PAC_APIAKEY = 0x1 1616 PPPIOCSFLAGS = 0x80047459
1617 PR_PAC_APIBKEY = 0x2 1617 PPPIOCSMAXCID = 0x80047451
1618 PR_PAC_RESET_KEYS = 0x36 1618 PPPIOCSMRRU = 0x8004743b
1619 PR_SET_CHILD_SUBREAPER = 0x24 1619 PPPIOCSMRU = 0x80047452
1620 PR_SET_DUMPABLE = 0x4 1620 PPPIOCSNPMODE = 0x8008744b
1621 PR_SET_ENDIAN = 0x14 1621 PPPIOCSPASS = 0x80107447
1622 PR_SET_FPEMU = 0xa 1622 PPPIOCSRASYNCMAP = 0x80047454
1623 PR_SET_FPEXC = 0xc 1623 PPPIOCSXASYNCMAP = 0x8020744f
1624 PR_SET_FP_MODE = 0x2d 1624 PPPIOCXFERUNIT = 0x2000744e
1625 PR_SET_KEEPCAPS = 0x8 1625 PRIO_PGRP = 0x1
1626 PR_SET_MM = 0x23 1626 PRIO_PROCESS = 0x0
1627 PR_SET_MM_ARG_END = 0x9 1627 PRIO_USER = 0x2
1628 PR_SET_MM_ARG_START = 0x8 1628 PROC_SUPER_MAGIC = 0x9fa0
1629 PR_SET_MM_AUXV = 0xc 1629 PROT_EXEC = 0x4
1630 PR_SET_MM_BRK = 0x7 1630 PROT_GROWSDOWN = 0x1000000
1631 PR_SET_MM_END_CODE = 0x2 1631 PROT_GROWSUP = 0x2000000
1632 PR_SET_MM_END_DATA = 0x4 1632 PROT_NONE = 0x0
1633 PR_SET_MM_ENV_END = 0xb 1633 PROT_READ = 0x1
1634 PR_SET_MM_ENV_START = 0xa 1634 PROT_SAO = 0x10
1635 PR_SET_MM_EXE_FILE = 0xd 1635 PROT_WRITE = 0x2
1636 PR_SET_MM_MAP = 0xe 1636 PR_CAPBSET_DROP = 0x18
1637 PR_SET_MM_MAP_SIZE = 0xf 1637 PR_CAPBSET_READ = 0x17
1638 PR_SET_MM_START_BRK = 0x6 1638 PR_CAP_AMBIENT = 0x2f
1639 PR_SET_MM_START_CODE = 0x1 1639 PR_CAP_AMBIENT_CLEAR_ALL = 0x4
1640 PR_SET_MM_START_DATA = 0x3 1640 PR_CAP_AMBIENT_IS_SET = 0x1
1641 PR_SET_MM_START_STACK = 0x5 1641 PR_CAP_AMBIENT_LOWER = 0x3
1642 PR_SET_NAME = 0xf 1642 PR_CAP_AMBIENT_RAISE = 0x2
1643 PR_SET_NO_NEW_PRIVS = 0x26 1643 PR_ENDIAN_BIG = 0x0
1644 PR_SET_PDEATHSIG = 0x1 1644 PR_ENDIAN_LITTLE = 0x1
1645 PR_SET_PTRACER = 0x59616d61 1645 PR_ENDIAN_PPC_LITTLE = 0x2
1646 PR_SET_PTRACER_ANY = 0xffffffffffffffff 1646 PR_FPEMU_NOPRINT = 0x1
1647 PR_SET_SECCOMP = 0x16 1647 PR_FPEMU_SIGFPE = 0x2
1648 PR_SET_SECUREBITS = 0x1c 1648 PR_FP_EXC_ASYNC = 0x2
1649 PR_SET_SPECULATION_CTRL = 0x35 1649 PR_FP_EXC_DISABLED = 0x0
1650 PR_SET_THP_DISABLE = 0x29 1650 PR_FP_EXC_DIV = 0x10000
1651 PR_SET_TIMERSLACK = 0x1d 1651 PR_FP_EXC_INV = 0x100000
1652 PR_SET_TIMING = 0xe 1652 PR_FP_EXC_NONRECOV = 0x1
1653 PR_SET_TSC = 0x1a 1653 PR_FP_EXC_OVF = 0x20000
1654 PR_SET_UNALIGN = 0x6 1654 PR_FP_EXC_PRECISE = 0x3
1655 PR_SPEC_DISABLE = 0x4 1655 PR_FP_EXC_RES = 0x80000
1656 PR_SPEC_DISABLE_NOEXEC = 0x10 1656 PR_FP_EXC_SW_ENABLE = 0x80
1657 PR_SPEC_ENABLE = 0x2 1657 PR_FP_EXC_UND = 0x40000
1658 PR_SPEC_FORCE_DISABLE = 0x8 1658 PR_FP_MODE_FR = 0x1
1659 PR_SPEC_INDIRECT_BRANCH = 0x1 1659 PR_FP_MODE_FRE = 0x2
1660 PR_SPEC_NOT_AFFECTED = 0x0 1660 PR_GET_CHILD_SUBREAPER = 0x25
1661 PR_SPEC_PRCTL = 0x1 1661 PR_GET_DUMPABLE = 0x3
1662 PR_SPEC_STORE_BYPASS = 0x0 1662 PR_GET_ENDIAN = 0x13
1663 PR_SVE_GET_VL = 0x33 1663 PR_GET_FPEMU = 0x9
1664 PR_SVE_SET_VL = 0x32 1664 PR_GET_FPEXC = 0xb
1665 PR_SVE_SET_VL_ONEXEC = 0x40000 1665 PR_GET_FP_MODE = 0x2e
1666 PR_SVE_VL_INHERIT = 0x20000 1666 PR_GET_KEEPCAPS = 0x7
1667 PR_SVE_VL_LEN_MASK = 0xffff 1667 PR_GET_NAME = 0x10
1668 PR_TASK_PERF_EVENTS_DISABLE = 0x1f 1668 PR_GET_NO_NEW_PRIVS = 0x27
1669 PR_TASK_PERF_EVENTS_ENABLE = 0x20 1669 PR_GET_PDEATHSIG = 0x2
1670 PR_TIMING_STATISTICAL = 0x0 1670 PR_GET_SECCOMP = 0x15
1671 PR_TIMING_TIMESTAMP = 0x1 1671 PR_GET_SECUREBITS = 0x1b
1672 PR_TSC_ENABLE = 0x1 1672 PR_GET_SPECULATION_CTRL = 0x34
1673 PR_TSC_SIGSEGV = 0x2 1673 PR_GET_TAGGED_ADDR_CTRL = 0x38
1674 PR_UNALIGN_NOPRINT = 0x1 1674 PR_GET_THP_DISABLE = 0x2a
1675 PR_UNALIGN_SIGBUS = 0x2 1675 PR_GET_TID_ADDRESS = 0x28
1676 PSTOREFS_MAGIC = 0x6165676c 1676 PR_GET_TIMERSLACK = 0x1e
1677 PTRACE_ATTACH = 0x10 1677 PR_GET_TIMING = 0xd
1678 PTRACE_CONT = 0x7 1678 PR_GET_TSC = 0x19
1679 PTRACE_DETACH = 0x11 1679 PR_GET_UNALIGN = 0x5
1680 PTRACE_EVENT_CLONE = 0x3 1680 PR_MCE_KILL = 0x21
1681 PTRACE_EVENT_EXEC = 0x4 1681 PR_MCE_KILL_CLEAR = 0x0
1682 PTRACE_EVENT_EXIT = 0x6 1682 PR_MCE_KILL_DEFAULT = 0x2
1683 PTRACE_EVENT_FORK = 0x1 1683 PR_MCE_KILL_EARLY = 0x1
1684 PTRACE_EVENT_SECCOMP = 0x7 1684 PR_MCE_KILL_GET = 0x22
1685 PTRACE_EVENT_STOP = 0x80 1685 PR_MCE_KILL_LATE = 0x0
1686 PTRACE_EVENT_VFORK = 0x2 1686 PR_MCE_KILL_SET = 0x1
1687 PTRACE_EVENT_VFORK_DONE = 0x5 1687 PR_MPX_DISABLE_MANAGEMENT = 0x2c
1688 PTRACE_GETEVENTMSG = 0x4201 1688 PR_MPX_ENABLE_MANAGEMENT = 0x2b
1689 PTRACE_GETEVRREGS = 0x14 1689 PR_PAC_APDAKEY = 0x4
1690 PTRACE_GETFPREGS = 0xe 1690 PR_PAC_APDBKEY = 0x8
1691 PTRACE_GETREGS = 0xc 1691 PR_PAC_APGAKEY = 0x10
1692 PTRACE_GETREGS64 = 0x16 1692 PR_PAC_APIAKEY = 0x1
1693 PTRACE_GETREGSET = 0x4204 1693 PR_PAC_APIBKEY = 0x2
1694 PTRACE_GETSIGINFO = 0x4202 1694 PR_PAC_RESET_KEYS = 0x36
1695 PTRACE_GETSIGMASK = 0x420a 1695 PR_SET_CHILD_SUBREAPER = 0x24
1696 PTRACE_GETVRREGS = 0x12 1696 PR_SET_DUMPABLE = 0x4
1697 PTRACE_GETVSRREGS = 0x1b 1697 PR_SET_ENDIAN = 0x14
1698 PTRACE_GET_DEBUGREG = 0x19 1698 PR_SET_FPEMU = 0xa
1699 PTRACE_INTERRUPT = 0x4207 1699 PR_SET_FPEXC = 0xc
1700 PTRACE_KILL = 0x8 1700 PR_SET_FP_MODE = 0x2d
1701 PTRACE_LISTEN = 0x4208 1701 PR_SET_KEEPCAPS = 0x8
1702 PTRACE_O_EXITKILL = 0x100000 1702 PR_SET_MM = 0x23
1703 PTRACE_O_MASK = 0x3000ff 1703 PR_SET_MM_ARG_END = 0x9
1704 PTRACE_O_SUSPEND_SECCOMP = 0x200000 1704 PR_SET_MM_ARG_START = 0x8
1705 PTRACE_O_TRACECLONE = 0x8 1705 PR_SET_MM_AUXV = 0xc
1706 PTRACE_O_TRACEEXEC = 0x10 1706 PR_SET_MM_BRK = 0x7
1707 PTRACE_O_TRACEEXIT = 0x40 1707 PR_SET_MM_END_CODE = 0x2
1708 PTRACE_O_TRACEFORK = 0x2 1708 PR_SET_MM_END_DATA = 0x4
1709 PTRACE_O_TRACESECCOMP = 0x80 1709 PR_SET_MM_ENV_END = 0xb
1710 PTRACE_O_TRACESYSGOOD = 0x1 1710 PR_SET_MM_ENV_START = 0xa
1711 PTRACE_O_TRACEVFORK = 0x4 1711 PR_SET_MM_EXE_FILE = 0xd
1712 PTRACE_O_TRACEVFORKDONE = 0x20 1712 PR_SET_MM_MAP = 0xe
1713 PTRACE_PEEKDATA = 0x2 1713 PR_SET_MM_MAP_SIZE = 0xf
1714 PTRACE_PEEKSIGINFO = 0x4209 1714 PR_SET_MM_START_BRK = 0x6
1715 PTRACE_PEEKSIGINFO_SHARED = 0x1 1715 PR_SET_MM_START_CODE = 0x1
1716 PTRACE_PEEKTEXT = 0x1 1716 PR_SET_MM_START_DATA = 0x3
1717 PTRACE_PEEKUSR = 0x3 1717 PR_SET_MM_START_STACK = 0x5
1718 PTRACE_POKEDATA = 0x5 1718 PR_SET_NAME = 0xf
1719 PTRACE_POKETEXT = 0x4 1719 PR_SET_NO_NEW_PRIVS = 0x26
1720 PTRACE_POKEUSR = 0x6 1720 PR_SET_PDEATHSIG = 0x1
1721 PTRACE_SECCOMP_GET_FILTER = 0x420c 1721 PR_SET_PTRACER = 0x59616d61
1722 PTRACE_SECCOMP_GET_METADATA = 0x420d 1722 PR_SET_PTRACER_ANY = 0xffffffffffffffff
1723 PTRACE_SEIZE = 0x4206 1723 PR_SET_SECCOMP = 0x16
1724 PTRACE_SETEVRREGS = 0x15 1724 PR_SET_SECUREBITS = 0x1c
1725 PTRACE_SETFPREGS = 0xf 1725 PR_SET_SPECULATION_CTRL = 0x35
1726 PTRACE_SETOPTIONS = 0x4200 1726 PR_SET_TAGGED_ADDR_CTRL = 0x37
1727 PTRACE_SETREGS = 0xd 1727 PR_SET_THP_DISABLE = 0x29
1728 PTRACE_SETREGS64 = 0x17 1728 PR_SET_TIMERSLACK = 0x1d
1729 PTRACE_SETREGSET = 0x4205 1729 PR_SET_TIMING = 0xe
1730 PTRACE_SETSIGINFO = 0x4203 1730 PR_SET_TSC = 0x1a
1731 PTRACE_SETSIGMASK = 0x420b 1731 PR_SET_UNALIGN = 0x6
1732 PTRACE_SETVRREGS = 0x13 1732 PR_SPEC_DISABLE = 0x4
1733 PTRACE_SETVSRREGS = 0x1c 1733 PR_SPEC_DISABLE_NOEXEC = 0x10
1734 PTRACE_SET_DEBUGREG = 0x1a 1734 PR_SPEC_ENABLE = 0x2
1735 PTRACE_SINGLEBLOCK = 0x100 1735 PR_SPEC_FORCE_DISABLE = 0x8
1736 PTRACE_SINGLESTEP = 0x9 1736 PR_SPEC_INDIRECT_BRANCH = 0x1
1737 PTRACE_SYSCALL = 0x18 1737 PR_SPEC_NOT_AFFECTED = 0x0
1738 PTRACE_SYSEMU = 0x1d 1738 PR_SPEC_PRCTL = 0x1
1739 PTRACE_SYSEMU_SINGLESTEP = 0x1e 1739 PR_SPEC_STORE_BYPASS = 0x0
1740 PTRACE_TRACEME = 0x0 1740 PR_SVE_GET_VL = 0x33
1741 PT_CCR = 0x26 1741 PR_SVE_SET_VL = 0x32
1742 PT_CTR = 0x23 1742 PR_SVE_SET_VL_ONEXEC = 0x40000
1743 PT_DAR = 0x29 1743 PR_SVE_VL_INHERIT = 0x20000
1744 PT_DSCR = 0x2c 1744 PR_SVE_VL_LEN_MASK = 0xffff
1745 PT_DSISR = 0x2a 1745 PR_TAGGED_ADDR_ENABLE = 0x1
1746 PT_FPR0 = 0x30 1746 PR_TASK_PERF_EVENTS_DISABLE = 0x1f
1747 PT_FPSCR = 0x50 1747 PR_TASK_PERF_EVENTS_ENABLE = 0x20
1748 PT_LNK = 0x24 1748 PR_TIMING_STATISTICAL = 0x0
1749 PT_MSR = 0x21 1749 PR_TIMING_TIMESTAMP = 0x1
1750 PT_NIP = 0x20 1750 PR_TSC_ENABLE = 0x1
1751 PT_ORIG_R3 = 0x22 1751 PR_TSC_SIGSEGV = 0x2
1752 PT_R0 = 0x0 1752 PR_UNALIGN_NOPRINT = 0x1
1753 PT_R1 = 0x1 1753 PR_UNALIGN_SIGBUS = 0x2
1754 PT_R10 = 0xa 1754 PSTOREFS_MAGIC = 0x6165676c
1755 PT_R11 = 0xb 1755 PTRACE_ATTACH = 0x10
1756 PT_R12 = 0xc 1756 PTRACE_CONT = 0x7
1757 PT_R13 = 0xd 1757 PTRACE_DETACH = 0x11
1758 PT_R14 = 0xe 1758 PTRACE_EVENTMSG_SYSCALL_ENTRY = 0x1
1759 PT_R15 = 0xf 1759 PTRACE_EVENTMSG_SYSCALL_EXIT = 0x2
1760 PT_R16 = 0x10 1760 PTRACE_EVENT_CLONE = 0x3
1761 PT_R17 = 0x11 1761 PTRACE_EVENT_EXEC = 0x4
1762 PT_R18 = 0x12 1762 PTRACE_EVENT_EXIT = 0x6
1763 PT_R19 = 0x13 1763 PTRACE_EVENT_FORK = 0x1
1764 PT_R2 = 0x2 1764 PTRACE_EVENT_SECCOMP = 0x7
1765 PT_R20 = 0x14 1765 PTRACE_EVENT_STOP = 0x80
1766 PT_R21 = 0x15 1766 PTRACE_EVENT_VFORK = 0x2
1767 PT_R22 = 0x16 1767 PTRACE_EVENT_VFORK_DONE = 0x5
1768 PT_R23 = 0x17 1768 PTRACE_GETEVENTMSG = 0x4201
1769 PT_R24 = 0x18 1769 PTRACE_GETEVRREGS = 0x14
1770 PT_R25 = 0x19 1770 PTRACE_GETFPREGS = 0xe
1771 PT_R26 = 0x1a 1771 PTRACE_GETREGS = 0xc
1772 PT_R27 = 0x1b 1772 PTRACE_GETREGS64 = 0x16
1773 PT_R28 = 0x1c 1773 PTRACE_GETREGSET = 0x4204
1774 PT_R29 = 0x1d 1774 PTRACE_GETSIGINFO = 0x4202
1775 PT_R3 = 0x3 1775 PTRACE_GETSIGMASK = 0x420a
1776 PT_R30 = 0x1e 1776 PTRACE_GETVRREGS = 0x12
1777 PT_R31 = 0x1f 1777 PTRACE_GETVSRREGS = 0x1b
1778 PT_R4 = 0x4 1778 PTRACE_GET_DEBUGREG = 0x19
1779 PT_R5 = 0x5 1779 PTRACE_GET_SYSCALL_INFO = 0x420e
1780 PT_R6 = 0x6 1780 PTRACE_INTERRUPT = 0x4207
1781 PT_R7 = 0x7 1781 PTRACE_KILL = 0x8
1782 PT_R8 = 0x8 1782 PTRACE_LISTEN = 0x4208
1783 PT_R9 = 0x9 1783 PTRACE_O_EXITKILL = 0x100000
1784 PT_REGS_COUNT = 0x2c 1784 PTRACE_O_MASK = 0x3000ff
1785 PT_RESULT = 0x2b 1785 PTRACE_O_SUSPEND_SECCOMP = 0x200000
1786 PT_SOFTE = 0x27 1786 PTRACE_O_TRACECLONE = 0x8
1787 PT_TRAP = 0x28 1787 PTRACE_O_TRACEEXEC = 0x10
1788 PT_VR0 = 0x52 1788 PTRACE_O_TRACEEXIT = 0x40
1789 PT_VRSAVE = 0x94 1789 PTRACE_O_TRACEFORK = 0x2
1790 PT_VSCR = 0x93 1790 PTRACE_O_TRACESECCOMP = 0x80
1791 PT_VSR0 = 0x96 1791 PTRACE_O_TRACESYSGOOD = 0x1
1792 PT_VSR31 = 0xd4 1792 PTRACE_O_TRACEVFORK = 0x4
1793 PT_XER = 0x25 1793 PTRACE_O_TRACEVFORKDONE = 0x20
1794 QNX4_SUPER_MAGIC = 0x2f 1794 PTRACE_PEEKDATA = 0x2
1795 QNX6_SUPER_MAGIC = 0x68191122 1795 PTRACE_PEEKSIGINFO = 0x4209
1796 RAMFS_MAGIC = 0x858458f6 1796 PTRACE_PEEKSIGINFO_SHARED = 0x1
1797 RDTGROUP_SUPER_MAGIC = 0x7655821 1797 PTRACE_PEEKTEXT = 0x1
1798 REISERFS_SUPER_MAGIC = 0x52654973 1798 PTRACE_PEEKUSR = 0x3
1799 RENAME_EXCHANGE = 0x2 1799 PTRACE_POKEDATA = 0x5
1800 RENAME_NOREPLACE = 0x1 1800 PTRACE_POKETEXT = 0x4
1801 RENAME_WHITEOUT = 0x4 1801 PTRACE_POKEUSR = 0x6
1802 RLIMIT_AS = 0x9 1802 PTRACE_SECCOMP_GET_FILTER = 0x420c
1803 RLIMIT_CORE = 0x4 1803 PTRACE_SECCOMP_GET_METADATA = 0x420d
1804 RLIMIT_CPU = 0x0 1804 PTRACE_SEIZE = 0x4206
1805 RLIMIT_DATA = 0x2 1805 PTRACE_SETEVRREGS = 0x15
1806 RLIMIT_FSIZE = 0x1 1806 PTRACE_SETFPREGS = 0xf
1807 RLIMIT_LOCKS = 0xa 1807 PTRACE_SETOPTIONS = 0x4200
1808 RLIMIT_MEMLOCK = 0x8 1808 PTRACE_SETREGS = 0xd
1809 RLIMIT_MSGQUEUE = 0xc 1809 PTRACE_SETREGS64 = 0x17
1810 RLIMIT_NICE = 0xd 1810 PTRACE_SETREGSET = 0x4205
1811 RLIMIT_NOFILE = 0x7 1811 PTRACE_SETSIGINFO = 0x4203
1812 RLIMIT_NPROC = 0x6 1812 PTRACE_SETSIGMASK = 0x420b
1813 RLIMIT_RSS = 0x5 1813 PTRACE_SETVRREGS = 0x13
1814 RLIMIT_RTPRIO = 0xe 1814 PTRACE_SETVSRREGS = 0x1c
1815 RLIMIT_RTTIME = 0xf 1815 PTRACE_SET_DEBUGREG = 0x1a
1816 RLIMIT_SIGPENDING = 0xb 1816 PTRACE_SINGLEBLOCK = 0x100
1817 RLIMIT_STACK = 0x3 1817 PTRACE_SINGLESTEP = 0x9
1818 RLIM_INFINITY = 0xffffffffffffffff 1818 PTRACE_SYSCALL = 0x18
1819 RNDADDENTROPY = 0x80085203 1819 PTRACE_SYSCALL_INFO_ENTRY = 0x1
1820 RNDADDTOENTCNT = 0x80045201 1820 PTRACE_SYSCALL_INFO_EXIT = 0x2
1821 RNDCLEARPOOL = 0x20005206 1821 PTRACE_SYSCALL_INFO_NONE = 0x0
1822 RNDGETENTCNT = 0x40045200 1822 PTRACE_SYSCALL_INFO_SECCOMP = 0x3
1823 RNDGETPOOL = 0x40085202 1823 PTRACE_SYSEMU = 0x1d
1824 RNDRESEEDCRNG = 0x20005207 1824 PTRACE_SYSEMU_SINGLESTEP = 0x1e
1825 RNDZAPENTCNT = 0x20005204 1825 PTRACE_TRACEME = 0x0
1826 RTAX_ADVMSS = 0x8 1826 PT_CCR = 0x26
1827 RTAX_CC_ALGO = 0x10 1827 PT_CTR = 0x23
1828 RTAX_CWND = 0x7 1828 PT_DAR = 0x29
1829 RTAX_FASTOPEN_NO_COOKIE = 0x11 1829 PT_DSCR = 0x2c
1830 RTAX_FEATURES = 0xc 1830 PT_DSISR = 0x2a
1831 RTAX_FEATURE_ALLFRAG = 0x8 1831 PT_FPR0 = 0x30
1832 RTAX_FEATURE_ECN = 0x1 1832 PT_FPSCR = 0x50
1833 RTAX_FEATURE_MASK = 0xf 1833 PT_LNK = 0x24
1834 RTAX_FEATURE_SACK = 0x2 1834 PT_MSR = 0x21
1835 RTAX_FEATURE_TIMESTAMP = 0x4 1835 PT_NIP = 0x20
1836 RTAX_HOPLIMIT = 0xa 1836 PT_ORIG_R3 = 0x22
1837 RTAX_INITCWND = 0xb 1837 PT_R0 = 0x0
1838 RTAX_INITRWND = 0xe 1838 PT_R1 = 0x1
1839 RTAX_LOCK = 0x1 1839 PT_R10 = 0xa
1840 RTAX_MAX = 0x11 1840 PT_R11 = 0xb
1841 RTAX_MTU = 0x2 1841 PT_R12 = 0xc
1842 RTAX_QUICKACK = 0xf 1842 PT_R13 = 0xd
1843 RTAX_REORDERING = 0x9 1843 PT_R14 = 0xe
1844 RTAX_RTO_MIN = 0xd 1844 PT_R15 = 0xf
1845 RTAX_RTT = 0x4 1845 PT_R16 = 0x10
1846 RTAX_RTTVAR = 0x5 1846 PT_R17 = 0x11
1847 RTAX_SSTHRESH = 0x6 1847 PT_R18 = 0x12
1848 RTAX_UNSPEC = 0x0 1848 PT_R19 = 0x13
1849 RTAX_WINDOW = 0x3 1849 PT_R2 = 0x2
1850 RTA_ALIGNTO = 0x4 1850 PT_R20 = 0x14
1851 RTA_MAX = 0x1d 1851 PT_R21 = 0x15
1852 RTCF_DIRECTSRC = 0x4000000 1852 PT_R22 = 0x16
1853 RTCF_DOREDIRECT = 0x1000000 1853 PT_R23 = 0x17
1854 RTCF_LOG = 0x2000000 1854 PT_R24 = 0x18
1855 RTCF_MASQ = 0x400000 1855 PT_R25 = 0x19
1856 RTCF_NAT = 0x800000 1856 PT_R26 = 0x1a
1857 RTCF_VALVE = 0x200000 1857 PT_R27 = 0x1b
1858 RTC_AF = 0x20 1858 PT_R28 = 0x1c
1859 RTC_AIE_OFF = 0x20007002 1859 PT_R29 = 0x1d
1860 RTC_AIE_ON = 0x20007001 1860 PT_R3 = 0x3
1861 RTC_ALM_READ = 0x40247008 1861 PT_R30 = 0x1e
1862 RTC_ALM_SET = 0x80247007 1862 PT_R31 = 0x1f
1863 RTC_EPOCH_READ = 0x4008700d 1863 PT_R4 = 0x4
1864 RTC_EPOCH_SET = 0x8008700e 1864 PT_R5 = 0x5
1865 RTC_IRQF = 0x80 1865 PT_R6 = 0x6
1866 RTC_IRQP_READ = 0x4008700b 1866 PT_R7 = 0x7
1867 RTC_IRQP_SET = 0x8008700c 1867 PT_R8 = 0x8
1868 RTC_MAX_FREQ = 0x2000 1868 PT_R9 = 0x9
1869 RTC_PF = 0x40 1869 PT_REGS_COUNT = 0x2c
1870 RTC_PIE_OFF = 0x20007006 1870 PT_RESULT = 0x2b
1871 RTC_PIE_ON = 0x20007005 1871 PT_SOFTE = 0x27
1872 RTC_PLL_GET = 0x40207011 1872 PT_TRAP = 0x28
1873 RTC_PLL_SET = 0x80207012 1873 PT_VR0 = 0x52
1874 RTC_RD_TIME = 0x40247009 1874 PT_VRSAVE = 0x94
1875 RTC_SET_TIME = 0x8024700a 1875 PT_VSCR = 0x93
1876 RTC_UF = 0x10 1876 PT_VSR0 = 0x96
1877 RTC_UIE_OFF = 0x20007004 1877 PT_VSR31 = 0xd4
1878 RTC_UIE_ON = 0x20007003 1878 PT_XER = 0x25
1879 RTC_VL_CLR = 0x20007014 1879 QNX4_SUPER_MAGIC = 0x2f
1880 RTC_VL_READ = 0x40047013 1880 QNX6_SUPER_MAGIC = 0x68191122
1881 RTC_WIE_OFF = 0x20007010 1881 RAMFS_MAGIC = 0x858458f6
1882 RTC_WIE_ON = 0x2000700f 1882 RDTGROUP_SUPER_MAGIC = 0x7655821
1883 RTC_WKALM_RD = 0x40287010 1883 REISERFS_SUPER_MAGIC = 0x52654973
1884 RTC_WKALM_SET = 0x8028700f 1884 RENAME_EXCHANGE = 0x2
1885 RTF_ADDRCLASSMASK = 0xf8000000 1885 RENAME_NOREPLACE = 0x1
1886 RTF_ADDRCONF = 0x40000 1886 RENAME_WHITEOUT = 0x4
1887 RTF_ALLONLINK = 0x20000 1887 RLIMIT_AS = 0x9
1888 RTF_BROADCAST = 0x10000000 1888 RLIMIT_CORE = 0x4
1889 RTF_CACHE = 0x1000000 1889 RLIMIT_CPU = 0x0
1890 RTF_DEFAULT = 0x10000 1890 RLIMIT_DATA = 0x2
1891 RTF_DYNAMIC = 0x10 1891 RLIMIT_FSIZE = 0x1
1892 RTF_FLOW = 0x2000000 1892 RLIMIT_LOCKS = 0xa
1893 RTF_GATEWAY = 0x2 1893 RLIMIT_MEMLOCK = 0x8
1894 RTF_HOST = 0x4 1894 RLIMIT_MSGQUEUE = 0xc
1895 RTF_INTERFACE = 0x40000000 1895 RLIMIT_NICE = 0xd
1896 RTF_IRTT = 0x100 1896 RLIMIT_NOFILE = 0x7
1897 RTF_LINKRT = 0x100000 1897 RLIMIT_NPROC = 0x6
1898 RTF_LOCAL = 0x80000000 1898 RLIMIT_RSS = 0x5
1899 RTF_MODIFIED = 0x20 1899 RLIMIT_RTPRIO = 0xe
1900 RTF_MSS = 0x40 1900 RLIMIT_RTTIME = 0xf
1901 RTF_MTU = 0x40 1901 RLIMIT_SIGPENDING = 0xb
1902 RTF_MULTICAST = 0x20000000 1902 RLIMIT_STACK = 0x3
1903 RTF_NAT = 0x8000000 1903 RLIM_INFINITY = 0xffffffffffffffff
1904 RTF_NOFORWARD = 0x1000 1904 RNDADDENTROPY = 0x80085203
1905 RTF_NONEXTHOP = 0x200000 1905 RNDADDTOENTCNT = 0x80045201
1906 RTF_NOPMTUDISC = 0x4000 1906 RNDCLEARPOOL = 0x20005206
1907 RTF_POLICY = 0x4000000 1907 RNDGETENTCNT = 0x40045200
1908 RTF_REINSTATE = 0x8 1908 RNDGETPOOL = 0x40085202
1909 RTF_REJECT = 0x200 1909 RNDRESEEDCRNG = 0x20005207
1910 RTF_STATIC = 0x400 1910 RNDZAPENTCNT = 0x20005204
1911 RTF_THROW = 0x2000 1911 RTAX_ADVMSS = 0x8
1912 RTF_UP = 0x1 1912 RTAX_CC_ALGO = 0x10
1913 RTF_WINDOW = 0x80 1913 RTAX_CWND = 0x7
1914 RTF_XRESOLVE = 0x800 1914 RTAX_FASTOPEN_NO_COOKIE = 0x11
1915 RTM_BASE = 0x10 1915 RTAX_FEATURES = 0xc
1916 RTM_DELACTION = 0x31 1916 RTAX_FEATURE_ALLFRAG = 0x8
1917 RTM_DELADDR = 0x15 1917 RTAX_FEATURE_ECN = 0x1
1918 RTM_DELADDRLABEL = 0x49 1918 RTAX_FEATURE_MASK = 0xf
1919 RTM_DELCHAIN = 0x65 1919 RTAX_FEATURE_SACK = 0x2
1920 RTM_DELLINK = 0x11 1920 RTAX_FEATURE_TIMESTAMP = 0x4
1921 RTM_DELMDB = 0x55 1921 RTAX_HOPLIMIT = 0xa
1922 RTM_DELNEIGH = 0x1d 1922 RTAX_INITCWND = 0xb
1923 RTM_DELNETCONF = 0x51 1923 RTAX_INITRWND = 0xe
1924 RTM_DELNSID = 0x59 1924 RTAX_LOCK = 0x1
1925 RTM_DELQDISC = 0x25 1925 RTAX_MAX = 0x11
1926 RTM_DELROUTE = 0x19 1926 RTAX_MTU = 0x2
1927 RTM_DELRULE = 0x21 1927 RTAX_QUICKACK = 0xf
1928 RTM_DELTCLASS = 0x29 1928 RTAX_REORDERING = 0x9
1929 RTM_DELTFILTER = 0x2d 1929 RTAX_RTO_MIN = 0xd
1930 RTM_F_CLONED = 0x200 1930 RTAX_RTT = 0x4
1931 RTM_F_EQUALIZE = 0x400 1931 RTAX_RTTVAR = 0x5
1932 RTM_F_FIB_MATCH = 0x2000 1932 RTAX_SSTHRESH = 0x6
1933 RTM_F_LOOKUP_TABLE = 0x1000 1933 RTAX_UNSPEC = 0x0
1934 RTM_F_NOTIFY = 0x100 1934 RTAX_WINDOW = 0x3
1935 RTM_F_PREFIX = 0x800 1935 RTA_ALIGNTO = 0x4
1936 RTM_GETACTION = 0x32 1936 RTA_MAX = 0x1e
1937 RTM_GETADDR = 0x16 1937 RTCF_DIRECTSRC = 0x4000000
1938 RTM_GETADDRLABEL = 0x4a 1938 RTCF_DOREDIRECT = 0x1000000
1939 RTM_GETANYCAST = 0x3e 1939 RTCF_LOG = 0x2000000
1940 RTM_GETCHAIN = 0x66 1940 RTCF_MASQ = 0x400000
1941 RTM_GETDCB = 0x4e 1941 RTCF_NAT = 0x800000
1942 RTM_GETLINK = 0x12 1942 RTCF_VALVE = 0x200000
1943 RTM_GETMDB = 0x56 1943 RTC_AF = 0x20
1944 RTM_GETMULTICAST = 0x3a 1944 RTC_AIE_OFF = 0x20007002
1945 RTM_GETNEIGH = 0x1e 1945 RTC_AIE_ON = 0x20007001
1946 RTM_GETNEIGHTBL = 0x42 1946 RTC_ALM_READ = 0x40247008
1947 RTM_GETNETCONF = 0x52 1947 RTC_ALM_SET = 0x80247007
1948 RTM_GETNSID = 0x5a 1948 RTC_EPOCH_READ = 0x4008700d
1949 RTM_GETQDISC = 0x26 1949 RTC_EPOCH_SET = 0x8008700e
1950 RTM_GETROUTE = 0x1a 1950 RTC_IRQF = 0x80
1951 RTM_GETRULE = 0x22 1951 RTC_IRQP_READ = 0x4008700b
1952 RTM_GETSTATS = 0x5e 1952 RTC_IRQP_SET = 0x8008700c
1953 RTM_GETTCLASS = 0x2a 1953 RTC_MAX_FREQ = 0x2000
1954 RTM_GETTFILTER = 0x2e 1954 RTC_PF = 0x40
1955 RTM_MAX = 0x67 1955 RTC_PIE_OFF = 0x20007006
1956 RTM_NEWACTION = 0x30 1956 RTC_PIE_ON = 0x20007005
1957 RTM_NEWADDR = 0x14 1957 RTC_PLL_GET = 0x40207011
1958 RTM_NEWADDRLABEL = 0x48 1958 RTC_PLL_SET = 0x80207012
1959 RTM_NEWCACHEREPORT = 0x60 1959 RTC_RD_TIME = 0x40247009
1960 RTM_NEWCHAIN = 0x64 1960 RTC_SET_TIME = 0x8024700a
1961 RTM_NEWLINK = 0x10 1961 RTC_UF = 0x10
1962 RTM_NEWMDB = 0x54 1962 RTC_UIE_OFF = 0x20007004
1963 RTM_NEWNDUSEROPT = 0x44 1963 RTC_UIE_ON = 0x20007003
1964 RTM_NEWNEIGH = 0x1c 1964 RTC_VL_CLR = 0x20007014
1965 RTM_NEWNEIGHTBL = 0x40 1965 RTC_VL_READ = 0x40047013
1966 RTM_NEWNETCONF = 0x50 1966 RTC_WIE_OFF = 0x20007010
1967 RTM_NEWNSID = 0x58 1967 RTC_WIE_ON = 0x2000700f
1968 RTM_NEWPREFIX = 0x34 1968 RTC_WKALM_RD = 0x40287010
1969 RTM_NEWQDISC = 0x24 1969 RTC_WKALM_SET = 0x8028700f
1970 RTM_NEWROUTE = 0x18 1970 RTF_ADDRCLASSMASK = 0xf8000000
1971 RTM_NEWRULE = 0x20 1971 RTF_ADDRCONF = 0x40000
1972 RTM_NEWSTATS = 0x5c 1972 RTF_ALLONLINK = 0x20000
1973 RTM_NEWTCLASS = 0x28 1973 RTF_BROADCAST = 0x10000000
1974 RTM_NEWTFILTER = 0x2c 1974 RTF_CACHE = 0x1000000
1975 RTM_NR_FAMILIES = 0x16 1975 RTF_DEFAULT = 0x10000
1976 RTM_NR_MSGTYPES = 0x58 1976 RTF_DYNAMIC = 0x10
1977 RTM_SETDCB = 0x4f 1977 RTF_FLOW = 0x2000000
1978 RTM_SETLINK = 0x13 1978 RTF_GATEWAY = 0x2
1979 RTM_SETNEIGHTBL = 0x43 1979 RTF_HOST = 0x4
1980 RTNH_ALIGNTO = 0x4 1980 RTF_INTERFACE = 0x40000000
1981 RTNH_COMPARE_MASK = 0x19 1981 RTF_IRTT = 0x100
1982 RTNH_F_DEAD = 0x1 1982 RTF_LINKRT = 0x100000
1983 RTNH_F_LINKDOWN = 0x10 1983 RTF_LOCAL = 0x80000000
1984 RTNH_F_OFFLOAD = 0x8 1984 RTF_MODIFIED = 0x20
1985 RTNH_F_ONLINK = 0x4 1985 RTF_MSS = 0x40
1986 RTNH_F_PERVASIVE = 0x2 1986 RTF_MTU = 0x40
1987 RTNH_F_UNRESOLVED = 0x20 1987 RTF_MULTICAST = 0x20000000
1988 RTN_MAX = 0xb 1988 RTF_NAT = 0x8000000
1989 RTPROT_BABEL = 0x2a 1989 RTF_NOFORWARD = 0x1000
1990 RTPROT_BGP = 0xba 1990 RTF_NONEXTHOP = 0x200000
1991 RTPROT_BIRD = 0xc 1991 RTF_NOPMTUDISC = 0x4000
1992 RTPROT_BOOT = 0x3 1992 RTF_POLICY = 0x4000000
1993 RTPROT_DHCP = 0x10 1993 RTF_REINSTATE = 0x8
1994 RTPROT_DNROUTED = 0xd 1994 RTF_REJECT = 0x200
1995 RTPROT_EIGRP = 0xc0 1995 RTF_STATIC = 0x400
1996 RTPROT_GATED = 0x8 1996 RTF_THROW = 0x2000
1997 RTPROT_ISIS = 0xbb 1997 RTF_UP = 0x1
1998 RTPROT_KERNEL = 0x2 1998 RTF_WINDOW = 0x80
1999 RTPROT_MROUTED = 0x11 1999 RTF_XRESOLVE = 0x800
2000 RTPROT_MRT = 0xa 2000 RTMGRP_DECnet_IFADDR = 0x1000
2001 RTPROT_NTK = 0xf 2001 RTMGRP_DECnet_ROUTE = 0x4000
2002 RTPROT_OSPF = 0xbc 2002 RTMGRP_IPV4_IFADDR = 0x10
2003 RTPROT_RA = 0x9 2003 RTMGRP_IPV4_MROUTE = 0x20
2004 RTPROT_REDIRECT = 0x1 2004 RTMGRP_IPV4_ROUTE = 0x40
2005 RTPROT_RIP = 0xbd 2005 RTMGRP_IPV4_RULE = 0x80
2006 RTPROT_STATIC = 0x4 2006 RTMGRP_IPV6_IFADDR = 0x100
2007 RTPROT_UNSPEC = 0x0 2007 RTMGRP_IPV6_IFINFO = 0x800
2008 RTPROT_XORP = 0xe 2008 RTMGRP_IPV6_MROUTE = 0x200
2009 RTPROT_ZEBRA = 0xb 2009 RTMGRP_IPV6_PREFIX = 0x20000
2010 RT_CLASS_DEFAULT = 0xfd 2010 RTMGRP_IPV6_ROUTE = 0x400
2011 RT_CLASS_LOCAL = 0xff 2011 RTMGRP_LINK = 0x1
2012 RT_CLASS_MAIN = 0xfe 2012 RTMGRP_NEIGH = 0x4
2013 RT_CLASS_MAX = 0xff 2013 RTMGRP_NOTIFY = 0x2
2014 RT_CLASS_UNSPEC = 0x0 2014 RTMGRP_TC = 0x8
2015 RUSAGE_CHILDREN = -0x1 2015 RTM_BASE = 0x10
2016 RUSAGE_SELF = 0x0 2016 RTM_DELACTION = 0x31
2017 RUSAGE_THREAD = 0x1 2017 RTM_DELADDR = 0x15
2018 SCM_CREDENTIALS = 0x2 2018 RTM_DELADDRLABEL = 0x49
2019 SCM_RIGHTS = 0x1 2019 RTM_DELCHAIN = 0x65
2020 SCM_TIMESTAMP = 0x1d 2020 RTM_DELLINK = 0x11
2021 SCM_TIMESTAMPING = 0x25 2021 RTM_DELLINKPROP = 0x6d
2022 SCM_TIMESTAMPING_OPT_STATS = 0x36 2022 RTM_DELMDB = 0x55
2023 SCM_TIMESTAMPING_PKTINFO = 0x3a 2023 RTM_DELNEIGH = 0x1d
2024 SCM_TIMESTAMPNS = 0x23 2024 RTM_DELNETCONF = 0x51
2025 SCM_TXTIME = 0x3d 2025 RTM_DELNEXTHOP = 0x69
2026 SCM_WIFI_STATUS = 0x29 2026 RTM_DELNSID = 0x59
2027 SC_LOG_FLUSH = 0x100000 2027 RTM_DELQDISC = 0x25
2028 SECCOMP_MODE_DISABLED = 0x0 2028 RTM_DELROUTE = 0x19
2029 SECCOMP_MODE_FILTER = 0x2 2029 RTM_DELRULE = 0x21
2030 SECCOMP_MODE_STRICT = 0x1 2030 RTM_DELTCLASS = 0x29
2031 SECURITYFS_MAGIC = 0x73636673 2031 RTM_DELTFILTER = 0x2d
2032 SELINUX_MAGIC = 0xf97cff8c 2032 RTM_F_CLONED = 0x200
2033 SFD_CLOEXEC = 0x80000 2033 RTM_F_EQUALIZE = 0x400
2034 SFD_NONBLOCK = 0x800 2034 RTM_F_FIB_MATCH = 0x2000
2035 SHUT_RD = 0x0 2035 RTM_F_LOOKUP_TABLE = 0x1000
2036 SHUT_RDWR = 0x2 2036 RTM_F_NOTIFY = 0x100
2037 SHUT_WR = 0x1 2037 RTM_F_PREFIX = 0x800
2038 SIOCADDDLCI = 0x8980 2038 RTM_GETACTION = 0x32
2039 SIOCADDMULTI = 0x8931 2039 RTM_GETADDR = 0x16
2040 SIOCADDRT = 0x890b 2040 RTM_GETADDRLABEL = 0x4a
2041 SIOCATMARK = 0x8905 2041 RTM_GETANYCAST = 0x3e
2042 SIOCBONDCHANGEACTIVE = 0x8995 2042 RTM_GETCHAIN = 0x66
2043 SIOCBONDENSLAVE = 0x8990 2043 RTM_GETDCB = 0x4e
2044 SIOCBONDINFOQUERY = 0x8994 2044 RTM_GETLINK = 0x12
2045 SIOCBONDRELEASE = 0x8991 2045 RTM_GETLINKPROP = 0x6e
2046 SIOCBONDSETHWADDR = 0x8992 2046 RTM_GETMDB = 0x56
2047 SIOCBONDSLAVEINFOQUERY = 0x8993 2047 RTM_GETMULTICAST = 0x3a
2048 SIOCBRADDBR = 0x89a0 2048 RTM_GETNEIGH = 0x1e
2049 SIOCBRADDIF = 0x89a2 2049 RTM_GETNEIGHTBL = 0x42
2050 SIOCBRDELBR = 0x89a1 2050 RTM_GETNETCONF = 0x52
2051 SIOCBRDELIF = 0x89a3 2051 RTM_GETNEXTHOP = 0x6a
2052 SIOCDARP = 0x8953 2052 RTM_GETNSID = 0x5a
2053 SIOCDELDLCI = 0x8981 2053 RTM_GETQDISC = 0x26
2054 SIOCDELMULTI = 0x8932 2054 RTM_GETROUTE = 0x1a
2055 SIOCDELRT = 0x890c 2055 RTM_GETRULE = 0x22
2056 SIOCDEVPRIVATE = 0x89f0 2056 RTM_GETSTATS = 0x5e
2057 SIOCDIFADDR = 0x8936 2057 RTM_GETTCLASS = 0x2a
2058 SIOCDRARP = 0x8960 2058 RTM_GETTFILTER = 0x2e
2059 SIOCETHTOOL = 0x8946 2059 RTM_MAX = 0x6f
2060 SIOCGARP = 0x8954 2060 RTM_NEWACTION = 0x30
2061 SIOCGHWTSTAMP = 0x89b1 2061 RTM_NEWADDR = 0x14
2062 SIOCGIFADDR = 0x8915 2062 RTM_NEWADDRLABEL = 0x48
2063 SIOCGIFBR = 0x8940 2063 RTM_NEWCACHEREPORT = 0x60
2064 SIOCGIFBRDADDR = 0x8919 2064 RTM_NEWCHAIN = 0x64
2065 SIOCGIFCONF = 0x8912 2065 RTM_NEWLINK = 0x10
2066 SIOCGIFCOUNT = 0x8938 2066 RTM_NEWLINKPROP = 0x6c
2067 SIOCGIFDSTADDR = 0x8917 2067 RTM_NEWMDB = 0x54
2068 SIOCGIFENCAP = 0x8925 2068 RTM_NEWNDUSEROPT = 0x44
2069 SIOCGIFFLAGS = 0x8913 2069 RTM_NEWNEIGH = 0x1c
2070 SIOCGIFHWADDR = 0x8927 2070 RTM_NEWNEIGHTBL = 0x40
2071 SIOCGIFINDEX = 0x8933 2071 RTM_NEWNETCONF = 0x50
2072 SIOCGIFMAP = 0x8970 2072 RTM_NEWNEXTHOP = 0x68
2073 SIOCGIFMEM = 0x891f 2073 RTM_NEWNSID = 0x58
2074 SIOCGIFMETRIC = 0x891d 2074 RTM_NEWPREFIX = 0x34
2075 SIOCGIFMTU = 0x8921 2075 RTM_NEWQDISC = 0x24
2076 SIOCGIFNAME = 0x8910 2076 RTM_NEWROUTE = 0x18
2077 SIOCGIFNETMASK = 0x891b 2077 RTM_NEWRULE = 0x20
2078 SIOCGIFPFLAGS = 0x8935 2078 RTM_NEWSTATS = 0x5c
2079 SIOCGIFSLAVE = 0x8929 2079 RTM_NEWTCLASS = 0x28
2080 SIOCGIFTXQLEN = 0x8942 2080 RTM_NEWTFILTER = 0x2c
2081 SIOCGIFVLAN = 0x8982 2081 RTM_NR_FAMILIES = 0x18
2082 SIOCGMIIPHY = 0x8947 2082 RTM_NR_MSGTYPES = 0x60
2083 SIOCGMIIREG = 0x8948 2083 RTM_SETDCB = 0x4f
2084 SIOCGPGRP = 0x8904 2084 RTM_SETLINK = 0x13
2085 SIOCGPPPCSTATS = 0x89f2 2085 RTM_SETNEIGHTBL = 0x43
2086 SIOCGPPPSTATS = 0x89f0 2086 RTNH_ALIGNTO = 0x4
2087 SIOCGPPPVER = 0x89f1 2087 RTNH_COMPARE_MASK = 0x19
2088 SIOCGRARP = 0x8961 2088 RTNH_F_DEAD = 0x1
2089 SIOCGSKNS = 0x894c 2089 RTNH_F_LINKDOWN = 0x10
2090 SIOCGSTAMP = 0x8906 2090 RTNH_F_OFFLOAD = 0x8
2091 SIOCGSTAMPNS = 0x8907 2091 RTNH_F_ONLINK = 0x4
2092 SIOCGSTAMPNS_NEW = 0x40108907 2092 RTNH_F_PERVASIVE = 0x2
2093 SIOCGSTAMPNS_OLD = 0x8907 2093 RTNH_F_UNRESOLVED = 0x20
2094 SIOCGSTAMP_NEW = 0x40108906 2094 RTN_MAX = 0xb
2095 SIOCGSTAMP_OLD = 0x8906 2095 RTPROT_BABEL = 0x2a
2096 SIOCINQ = 0x4004667f 2096 RTPROT_BGP = 0xba
2097 SIOCOUTQ = 0x40047473 2097 RTPROT_BIRD = 0xc
2098 SIOCOUTQNSD = 0x894b 2098 RTPROT_BOOT = 0x3
2099 SIOCPROTOPRIVATE = 0x89e0 2099 RTPROT_DHCP = 0x10
2100 SIOCRTMSG = 0x890d 2100 RTPROT_DNROUTED = 0xd
2101 SIOCSARP = 0x8955 2101 RTPROT_EIGRP = 0xc0
2102 SIOCSHWTSTAMP = 0x89b0 2102 RTPROT_GATED = 0x8
2103 SIOCSIFADDR = 0x8916 2103 RTPROT_ISIS = 0xbb
2104 SIOCSIFBR = 0x8941 2104 RTPROT_KERNEL = 0x2
2105 SIOCSIFBRDADDR = 0x891a 2105 RTPROT_MROUTED = 0x11
2106 SIOCSIFDSTADDR = 0x8918 2106 RTPROT_MRT = 0xa
2107 SIOCSIFENCAP = 0x8926 2107 RTPROT_NTK = 0xf
2108 SIOCSIFFLAGS = 0x8914 2108 RTPROT_OSPF = 0xbc
2109 SIOCSIFHWADDR = 0x8924 2109 RTPROT_RA = 0x9
2110 SIOCSIFHWBROADCAST = 0x8937 2110 RTPROT_REDIRECT = 0x1
2111 SIOCSIFLINK = 0x8911 2111 RTPROT_RIP = 0xbd
2112 SIOCSIFMAP = 0x8971 2112 RTPROT_STATIC = 0x4
2113 SIOCSIFMEM = 0x8920 2113 RTPROT_UNSPEC = 0x0
2114 SIOCSIFMETRIC = 0x891e 2114 RTPROT_XORP = 0xe
2115 SIOCSIFMTU = 0x8922 2115 RTPROT_ZEBRA = 0xb
2116 SIOCSIFNAME = 0x8923 2116 RT_CLASS_DEFAULT = 0xfd
2117 SIOCSIFNETMASK = 0x891c 2117 RT_CLASS_LOCAL = 0xff
2118 SIOCSIFPFLAGS = 0x8934 2118 RT_CLASS_MAIN = 0xfe
2119 SIOCSIFSLAVE = 0x8930 2119 RT_CLASS_MAX = 0xff
2120 SIOCSIFTXQLEN = 0x8943 2120 RT_CLASS_UNSPEC = 0x0
2121 SIOCSIFVLAN = 0x8983 2121 RUSAGE_CHILDREN = -0x1
2122 SIOCSMIIREG = 0x8949 2122 RUSAGE_SELF = 0x0
2123 SIOCSPGRP = 0x8902 2123 RUSAGE_THREAD = 0x1
2124 SIOCSRARP = 0x8962 2124 RWF_APPEND = 0x10
2125 SIOCWANDEV = 0x894a 2125 RWF_DSYNC = 0x2
2126 SMACK_MAGIC = 0x43415d53 2126 RWF_HIPRI = 0x1
2127 SMART_AUTOSAVE = 0xd2 2127 RWF_NOWAIT = 0x8
2128 SMART_AUTO_OFFLINE = 0xdb 2128 RWF_SUPPORTED = 0x1f
2129 SMART_DISABLE = 0xd9 2129 RWF_SYNC = 0x4
2130 SMART_ENABLE = 0xd8 2130 RWF_WRITE_LIFE_NOT_SET = 0x0
2131 SMART_HCYL_PASS = 0xc2 2131 SCM_CREDENTIALS = 0x2
2132 SMART_IMMEDIATE_OFFLINE = 0xd4 2132 SCM_RIGHTS = 0x1
2133 SMART_LCYL_PASS = 0x4f 2133 SCM_TIMESTAMP = 0x1d
2134 SMART_READ_LOG_SECTOR = 0xd5 2134 SCM_TIMESTAMPING = 0x25
2135 SMART_READ_THRESHOLDS = 0xd1 2135 SCM_TIMESTAMPING_OPT_STATS = 0x36
2136 SMART_READ_VALUES = 0xd0 2136 SCM_TIMESTAMPING_PKTINFO = 0x3a
2137 SMART_SAVE = 0xd3 2137 SCM_TIMESTAMPNS = 0x23
2138 SMART_STATUS = 0xda 2138 SCM_TXTIME = 0x3d
2139 SMART_WRITE_LOG_SECTOR = 0xd6 2139 SCM_WIFI_STATUS = 0x29
2140 SMART_WRITE_THRESHOLDS = 0xd7 2140 SC_LOG_FLUSH = 0x100000
2141 SMB_SUPER_MAGIC = 0x517b 2141 SECCOMP_MODE_DISABLED = 0x0
2142 SOCKFS_MAGIC = 0x534f434b 2142 SECCOMP_MODE_FILTER = 0x2
2143 SOCK_CLOEXEC = 0x80000 2143 SECCOMP_MODE_STRICT = 0x1
2144 SOCK_DCCP = 0x6 2144 SECURITYFS_MAGIC = 0x73636673
2145 SOCK_DGRAM = 0x2 2145 SELINUX_MAGIC = 0xf97cff8c
2146 SOCK_IOC_TYPE = 0x89 2146 SFD_CLOEXEC = 0x80000
2147 SOCK_NONBLOCK = 0x800 2147 SFD_NONBLOCK = 0x800
2148 SOCK_PACKET = 0xa 2148 SHUT_RD = 0x0
2149 SOCK_RAW = 0x3 2149 SHUT_RDWR = 0x2
2150 SOCK_RDM = 0x4 2150 SHUT_WR = 0x1
2151 SOCK_SEQPACKET = 0x5 2151 SIOCADDDLCI = 0x8980
2152 SOCK_STREAM = 0x1 2152 SIOCADDMULTI = 0x8931
2153 SOL_AAL = 0x109 2153 SIOCADDRT = 0x890b
2154 SOL_ALG = 0x117 2154 SIOCATMARK = 0x8905
2155 SOL_ATM = 0x108 2155 SIOCBONDCHANGEACTIVE = 0x8995
2156 SOL_CAIF = 0x116 2156 SIOCBONDENSLAVE = 0x8990
2157 SOL_CAN_BASE = 0x64 2157 SIOCBONDINFOQUERY = 0x8994
2158 SOL_DCCP = 0x10d 2158 SIOCBONDRELEASE = 0x8991
2159 SOL_DECNET = 0x105 2159 SIOCBONDSETHWADDR = 0x8992
2160 SOL_ICMPV6 = 0x3a 2160 SIOCBONDSLAVEINFOQUERY = 0x8993
2161 SOL_IP = 0x0 2161 SIOCBRADDBR = 0x89a0
2162 SOL_IPV6 = 0x29 2162 SIOCBRADDIF = 0x89a2
2163 SOL_IRDA = 0x10a 2163 SIOCBRDELBR = 0x89a1
2164 SOL_IUCV = 0x115 2164 SIOCBRDELIF = 0x89a3
2165 SOL_KCM = 0x119 2165 SIOCDARP = 0x8953
2166 SOL_LLC = 0x10c 2166 SIOCDELDLCI = 0x8981
2167 SOL_NETBEUI = 0x10b 2167 SIOCDELMULTI = 0x8932
2168 SOL_NETLINK = 0x10e 2168 SIOCDELRT = 0x890c
2169 SOL_NFC = 0x118 2169 SIOCDEVPRIVATE = 0x89f0
2170 SOL_PACKET = 0x107 2170 SIOCDIFADDR = 0x8936
2171 SOL_PNPIPE = 0x113 2171 SIOCDRARP = 0x8960
2172 SOL_PPPOL2TP = 0x111 2172 SIOCETHTOOL = 0x8946
2173 SOL_RAW = 0xff 2173 SIOCGARP = 0x8954
2174 SOL_RDS = 0x114 2174 SIOCGETLINKNAME = 0x89e0
2175 SOL_RXRPC = 0x110 2175 SIOCGETNODEID = 0x89e1
2176 SOL_SOCKET = 0x1 2176 SIOCGHWTSTAMP = 0x89b1
2177 SOL_TCP = 0x6 2177 SIOCGIFADDR = 0x8915
2178 SOL_TIPC = 0x10f 2178 SIOCGIFBR = 0x8940
2179 SOL_TLS = 0x11a 2179 SIOCGIFBRDADDR = 0x8919
2180 SOL_X25 = 0x106 2180 SIOCGIFCONF = 0x8912
2181 SOL_XDP = 0x11b 2181 SIOCGIFCOUNT = 0x8938
2182 SOMAXCONN = 0x80 2182 SIOCGIFDSTADDR = 0x8917
2183 SO_ACCEPTCONN = 0x1e 2183 SIOCGIFENCAP = 0x8925
2184 SO_ATTACH_BPF = 0x32 2184 SIOCGIFFLAGS = 0x8913
2185 SO_ATTACH_FILTER = 0x1a 2185 SIOCGIFHWADDR = 0x8927
2186 SO_ATTACH_REUSEPORT_CBPF = 0x33 2186 SIOCGIFINDEX = 0x8933
2187 SO_ATTACH_REUSEPORT_EBPF = 0x34 2187 SIOCGIFMAP = 0x8970
2188 SO_BINDTODEVICE = 0x19 2188 SIOCGIFMEM = 0x891f
2189 SO_BINDTOIFINDEX = 0x3e 2189 SIOCGIFMETRIC = 0x891d
2190 SO_BPF_EXTENSIONS = 0x30 2190 SIOCGIFMTU = 0x8921
2191 SO_BROADCAST = 0x6 2191 SIOCGIFNAME = 0x8910
2192 SO_BSDCOMPAT = 0xe 2192 SIOCGIFNETMASK = 0x891b
2193 SO_BUSY_POLL = 0x2e 2193 SIOCGIFPFLAGS = 0x8935
2194 SO_CNX_ADVICE = 0x35 2194 SIOCGIFSLAVE = 0x8929
2195 SO_COOKIE = 0x39 2195 SIOCGIFTXQLEN = 0x8942
2196 SO_DEBUG = 0x1 2196 SIOCGIFVLAN = 0x8982
2197 SO_DETACH_BPF = 0x1b 2197 SIOCGMIIPHY = 0x8947
2198 SO_DETACH_FILTER = 0x1b 2198 SIOCGMIIREG = 0x8948
2199 SO_DOMAIN = 0x27 2199 SIOCGPGRP = 0x8904
2200 SO_DONTROUTE = 0x5 2200 SIOCGPPPCSTATS = 0x89f2
2201 SO_EE_CODE_TXTIME_INVALID_PARAM = 0x1 2201 SIOCGPPPSTATS = 0x89f0
2202 SO_EE_CODE_TXTIME_MISSED = 0x2 2202 SIOCGPPPVER = 0x89f1
2203 SO_EE_CODE_ZEROCOPY_COPIED = 0x1 2203 SIOCGRARP = 0x8961
2204 SO_EE_ORIGIN_ICMP = 0x2 2204 SIOCGSKNS = 0x894c
2205 SO_EE_ORIGIN_ICMP6 = 0x3 2205 SIOCGSTAMP = 0x8906
2206 SO_EE_ORIGIN_LOCAL = 0x1 2206 SIOCGSTAMPNS = 0x8907
2207 SO_EE_ORIGIN_NONE = 0x0 2207 SIOCGSTAMPNS_NEW = 0x40108907
2208 SO_EE_ORIGIN_TIMESTAMPING = 0x4 2208 SIOCGSTAMPNS_OLD = 0x8907
2209 SO_EE_ORIGIN_TXSTATUS = 0x4 2209 SIOCGSTAMP_NEW = 0x40108906
2210 SO_EE_ORIGIN_TXTIME = 0x6 2210 SIOCGSTAMP_OLD = 0x8906
2211 SO_EE_ORIGIN_ZEROCOPY = 0x5 2211 SIOCINQ = 0x4004667f
2212 SO_ERROR = 0x4 2212 SIOCOUTQ = 0x40047473
2213 SO_GET_FILTER = 0x1a 2213 SIOCOUTQNSD = 0x894b
2214 SO_INCOMING_CPU = 0x31 2214 SIOCPROTOPRIVATE = 0x89e0
2215 SO_INCOMING_NAPI_ID = 0x38 2215 SIOCRTMSG = 0x890d
2216 SO_KEEPALIVE = 0x9 2216 SIOCSARP = 0x8955
2217 SO_LINGER = 0xd 2217 SIOCSHWTSTAMP = 0x89b0
2218 SO_LOCK_FILTER = 0x2c 2218 SIOCSIFADDR = 0x8916
2219 SO_MARK = 0x24 2219 SIOCSIFBR = 0x8941
2220 SO_MAX_PACING_RATE = 0x2f 2220 SIOCSIFBRDADDR = 0x891a
2221 SO_MEMINFO = 0x37 2221 SIOCSIFDSTADDR = 0x8918
2222 SO_NOFCS = 0x2b 2222 SIOCSIFENCAP = 0x8926
2223 SO_NO_CHECK = 0xb 2223 SIOCSIFFLAGS = 0x8914
2224 SO_OOBINLINE = 0xa 2224 SIOCSIFHWADDR = 0x8924
2225 SO_PASSCRED = 0x14 2225 SIOCSIFHWBROADCAST = 0x8937
2226 SO_PASSSEC = 0x22 2226 SIOCSIFLINK = 0x8911
2227 SO_PEEK_OFF = 0x2a 2227 SIOCSIFMAP = 0x8971
2228 SO_PEERCRED = 0x15 2228 SIOCSIFMEM = 0x8920
2229 SO_PEERGROUPS = 0x3b 2229 SIOCSIFMETRIC = 0x891e
2230 SO_PEERNAME = 0x1c 2230 SIOCSIFMTU = 0x8922
2231 SO_PEERSEC = 0x1f 2231 SIOCSIFNAME = 0x8923
2232 SO_PRIORITY = 0xc 2232 SIOCSIFNETMASK = 0x891c
2233 SO_PROTOCOL = 0x26 2233 SIOCSIFPFLAGS = 0x8934
2234 SO_RCVBUF = 0x8 2234 SIOCSIFSLAVE = 0x8930
2235 SO_RCVBUFFORCE = 0x21 2235 SIOCSIFTXQLEN = 0x8943
2236 SO_RCVLOWAT = 0x10 2236 SIOCSIFVLAN = 0x8983
2237 SO_RCVTIMEO = 0x12 2237 SIOCSMIIREG = 0x8949
2238 SO_RCVTIMEO_NEW = 0x42 2238 SIOCSPGRP = 0x8902
2239 SO_RCVTIMEO_OLD = 0x12 2239 SIOCSRARP = 0x8962
2240 SO_REUSEADDR = 0x2 2240 SIOCWANDEV = 0x894a
2241 SO_REUSEPORT = 0xf 2241 SMACK_MAGIC = 0x43415d53
2242 SO_RXQ_OVFL = 0x28 2242 SMART_AUTOSAVE = 0xd2
2243 SO_SECURITY_AUTHENTICATION = 0x16 2243 SMART_AUTO_OFFLINE = 0xdb
2244 SO_SECURITY_ENCRYPTION_NETWORK = 0x18 2244 SMART_DISABLE = 0xd9
2245 SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17 2245 SMART_ENABLE = 0xd8
2246 SO_SELECT_ERR_QUEUE = 0x2d 2246 SMART_HCYL_PASS = 0xc2
2247 SO_SNDBUF = 0x7 2247 SMART_IMMEDIATE_OFFLINE = 0xd4
2248 SO_SNDBUFFORCE = 0x20 2248 SMART_LCYL_PASS = 0x4f
2249 SO_SNDLOWAT = 0x11 2249 SMART_READ_LOG_SECTOR = 0xd5
2250 SO_SNDTIMEO = 0x13 2250 SMART_READ_THRESHOLDS = 0xd1
2251 SO_SNDTIMEO_NEW = 0x43 2251 SMART_READ_VALUES = 0xd0
2252 SO_SNDTIMEO_OLD = 0x13 2252 SMART_SAVE = 0xd3
2253 SO_TIMESTAMP = 0x1d 2253 SMART_STATUS = 0xda
2254 SO_TIMESTAMPING = 0x25 2254 SMART_WRITE_LOG_SECTOR = 0xd6
2255 SO_TIMESTAMPING_NEW = 0x41 2255 SMART_WRITE_THRESHOLDS = 0xd7
2256 SO_TIMESTAMPING_OLD = 0x25 2256 SMB_SUPER_MAGIC = 0x517b
2257 SO_TIMESTAMPNS = 0x23 2257 SOCKFS_MAGIC = 0x534f434b
2258 SO_TIMESTAMPNS_NEW = 0x40 2258 SOCK_CLOEXEC = 0x80000
2259 SO_TIMESTAMPNS_OLD = 0x23 2259 SOCK_DCCP = 0x6
2260 SO_TIMESTAMP_NEW = 0x3f 2260 SOCK_DGRAM = 0x2
2261 SO_TIMESTAMP_OLD = 0x1d 2261 SOCK_IOC_TYPE = 0x89
2262 SO_TXTIME = 0x3d 2262 SOCK_NONBLOCK = 0x800
2263 SO_TYPE = 0x3 2263 SOCK_PACKET = 0xa
2264 SO_VM_SOCKETS_BUFFER_MAX_SIZE = 0x2 2264 SOCK_RAW = 0x3
2265 SO_VM_SOCKETS_BUFFER_MIN_SIZE = 0x1 2265 SOCK_RDM = 0x4
2266 SO_VM_SOCKETS_BUFFER_SIZE = 0x0 2266 SOCK_SEQPACKET = 0x5
2267 SO_VM_SOCKETS_CONNECT_TIMEOUT = 0x6 2267 SOCK_STREAM = 0x1
2268 SO_VM_SOCKETS_NONBLOCK_TXRX = 0x7 2268 SOL_AAL = 0x109
2269 SO_VM_SOCKETS_PEER_HOST_VM_ID = 0x3 2269 SOL_ALG = 0x117
2270 SO_VM_SOCKETS_TRUSTED = 0x5 2270 SOL_ATM = 0x108
2271 SO_WIFI_STATUS = 0x29 2271 SOL_CAIF = 0x116
2272 SO_ZEROCOPY = 0x3c 2272 SOL_CAN_BASE = 0x64
2273 SPLICE_F_GIFT = 0x8 2273 SOL_DCCP = 0x10d
2274 SPLICE_F_MORE = 0x4 2274 SOL_DECNET = 0x105
2275 SPLICE_F_MOVE = 0x1 2275 SOL_ICMPV6 = 0x3a
2276 SPLICE_F_NONBLOCK = 0x2 2276 SOL_IP = 0x0
2277 SQUASHFS_MAGIC = 0x73717368 2277 SOL_IPV6 = 0x29
2278 STACK_END_MAGIC = 0x57ac6e9d 2278 SOL_IRDA = 0x10a
2279 STATX_ALL = 0xfff 2279 SOL_IUCV = 0x115
2280 STATX_ATIME = 0x20 2280 SOL_KCM = 0x119
2281 STATX_ATTR_APPEND = 0x20 2281 SOL_LLC = 0x10c
2282 STATX_ATTR_AUTOMOUNT = 0x1000 2282 SOL_NETBEUI = 0x10b
2283 STATX_ATTR_COMPRESSED = 0x4 2283 SOL_NETLINK = 0x10e
2284 STATX_ATTR_ENCRYPTED = 0x800 2284 SOL_NFC = 0x118
2285 STATX_ATTR_IMMUTABLE = 0x10 2285 SOL_PACKET = 0x107
2286 STATX_ATTR_NODUMP = 0x40 2286 SOL_PNPIPE = 0x113
2287 STATX_BASIC_STATS = 0x7ff 2287 SOL_PPPOL2TP = 0x111
2288 STATX_BLOCKS = 0x400 2288 SOL_RAW = 0xff
2289 STATX_BTIME = 0x800 2289 SOL_RDS = 0x114
2290 STATX_CTIME = 0x80 2290 SOL_RXRPC = 0x110
2291 STATX_GID = 0x10 2291 SOL_SOCKET = 0x1
2292 STATX_INO = 0x100 2292 SOL_TCP = 0x6
2293 STATX_MODE = 0x2 2293 SOL_TIPC = 0x10f
2294 STATX_MTIME = 0x40 2294 SOL_TLS = 0x11a
2295 STATX_NLINK = 0x4 2295 SOL_X25 = 0x106
2296 STATX_SIZE = 0x200 2296 SOL_XDP = 0x11b
2297 STATX_TYPE = 0x1 2297 SOMAXCONN = 0x1000
2298 STATX_UID = 0x8 2298 SO_ACCEPTCONN = 0x1e
2299 STATX__RESERVED = 0x80000000 2299 SO_ATTACH_BPF = 0x32
2300 SYNC_FILE_RANGE_WAIT_AFTER = 0x4 2300 SO_ATTACH_FILTER = 0x1a
2301 SYNC_FILE_RANGE_WAIT_BEFORE = 0x1 2301 SO_ATTACH_REUSEPORT_CBPF = 0x33
2302 SYNC_FILE_RANGE_WRITE = 0x2 2302 SO_ATTACH_REUSEPORT_EBPF = 0x34
2303 SYNC_FILE_RANGE_WRITE_AND_WAIT = 0x7 2303 SO_BINDTODEVICE = 0x19
2304 SYSFS_MAGIC = 0x62656572 2304 SO_BINDTOIFINDEX = 0x3e
2305 S_BLKSIZE = 0x200 2305 SO_BPF_EXTENSIONS = 0x30
2306 S_IEXEC = 0x40 2306 SO_BROADCAST = 0x6
2307 S_IFBLK = 0x6000 2307 SO_BSDCOMPAT = 0xe
2308 S_IFCHR = 0x2000 2308 SO_BUSY_POLL = 0x2e
2309 S_IFDIR = 0x4000 2309 SO_CNX_ADVICE = 0x35
2310 S_IFIFO = 0x1000 2310 SO_COOKIE = 0x39
2311 S_IFLNK = 0xa000 2311 SO_DEBUG = 0x1
2312 S_IFMT = 0xf000 2312 SO_DETACH_BPF = 0x1b
2313 S_IFREG = 0x8000 2313 SO_DETACH_FILTER = 0x1b
2314 S_IFSOCK = 0xc000 2314 SO_DETACH_REUSEPORT_BPF = 0x44
2315 S_IREAD = 0x100 2315 SO_DOMAIN = 0x27
2316 S_IRGRP = 0x20 2316 SO_DONTROUTE = 0x5
2317 S_IROTH = 0x4 2317 SO_EE_CODE_TXTIME_INVALID_PARAM = 0x1
2318 S_IRUSR = 0x100 2318 SO_EE_CODE_TXTIME_MISSED = 0x2
2319 S_IRWXG = 0x38 2319 SO_EE_CODE_ZEROCOPY_COPIED = 0x1
2320 S_IRWXO = 0x7 2320 SO_EE_ORIGIN_ICMP = 0x2
2321 S_IRWXU = 0x1c0 2321 SO_EE_ORIGIN_ICMP6 = 0x3
2322 S_ISGID = 0x400 2322 SO_EE_ORIGIN_LOCAL = 0x1
2323 S_ISUID = 0x800 2323 SO_EE_ORIGIN_NONE = 0x0
2324 S_ISVTX = 0x200 2324 SO_EE_ORIGIN_TIMESTAMPING = 0x4
2325 S_IWGRP = 0x10 2325 SO_EE_ORIGIN_TXSTATUS = 0x4
2326 S_IWOTH = 0x2 2326 SO_EE_ORIGIN_TXTIME = 0x6
2327 S_IWRITE = 0x80 2327 SO_EE_ORIGIN_ZEROCOPY = 0x5
2328 S_IWUSR = 0x80 2328 SO_ERROR = 0x4
2329 S_IXGRP = 0x8 2329 SO_GET_FILTER = 0x1a
2330 S_IXOTH = 0x1 2330 SO_INCOMING_CPU = 0x31
2331 S_IXUSR = 0x40 2331 SO_INCOMING_NAPI_ID = 0x38
2332 TAB0 = 0x0 2332 SO_KEEPALIVE = 0x9
2333 TAB1 = 0x400 2333 SO_LINGER = 0xd
2334 TAB2 = 0x800 2334 SO_LOCK_FILTER = 0x2c
2335 TAB3 = 0xc00 2335 SO_MARK = 0x24
2336 TABDLY = 0xc00 2336 SO_MAX_PACING_RATE = 0x2f
2337 TASKSTATS_CMD_ATTR_MAX = 0x4 2337 SO_MEMINFO = 0x37
2338 TASKSTATS_CMD_MAX = 0x2 2338 SO_NOFCS = 0x2b
2339 TASKSTATS_GENL_NAME = "TASKSTATS" 2339 SO_NO_CHECK = 0xb
2340 TASKSTATS_GENL_VERSION = 0x1 2340 SO_OOBINLINE = 0xa
2341 TASKSTATS_TYPE_MAX = 0x6 2341 SO_PASSCRED = 0x14
2342 TASKSTATS_VERSION = 0x9 2342 SO_PASSSEC = 0x22
2343 TCFLSH = 0x2000741f 2343 SO_PEEK_OFF = 0x2a
2344 TCGETA = 0x40147417 2344 SO_PEERCRED = 0x15
2345 TCGETS = 0x402c7413 2345 SO_PEERGROUPS = 0x3b
2346 TCIFLUSH = 0x0 2346 SO_PEERNAME = 0x1c
2347 TCIOFF = 0x2 2347 SO_PEERSEC = 0x1f
2348 TCIOFLUSH = 0x2 2348 SO_PRIORITY = 0xc
2349 TCION = 0x3 2349 SO_PROTOCOL = 0x26
2350 TCOFLUSH = 0x1 2350 SO_RCVBUF = 0x8
2351 TCOOFF = 0x0 2351 SO_RCVBUFFORCE = 0x21
2352 TCOON = 0x1 2352 SO_RCVLOWAT = 0x10
2353 TCP_BPF_IW = 0x3e9 2353 SO_RCVTIMEO = 0x12
2354 TCP_BPF_SNDCWND_CLAMP = 0x3ea 2354 SO_RCVTIMEO_NEW = 0x42
2355 TCP_CC_INFO = 0x1a 2355 SO_RCVTIMEO_OLD = 0x12
2356 TCP_CM_INQ = 0x24 2356 SO_REUSEADDR = 0x2
2357 TCP_CONGESTION = 0xd 2357 SO_REUSEPORT = 0xf
2358 TCP_COOKIE_IN_ALWAYS = 0x1 2358 SO_RXQ_OVFL = 0x28
2359 TCP_COOKIE_MAX = 0x10 2359 SO_SECURITY_AUTHENTICATION = 0x16
2360 TCP_COOKIE_MIN = 0x8 2360 SO_SECURITY_ENCRYPTION_NETWORK = 0x18
2361 TCP_COOKIE_OUT_NEVER = 0x2 2361 SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17
2362 TCP_COOKIE_PAIR_SIZE = 0x20 2362 SO_SELECT_ERR_QUEUE = 0x2d
2363 TCP_COOKIE_TRANSACTIONS = 0xf 2363 SO_SNDBUF = 0x7
2364 TCP_CORK = 0x3 2364 SO_SNDBUFFORCE = 0x20
2365 TCP_DEFER_ACCEPT = 0x9 2365 SO_SNDLOWAT = 0x11
2366 TCP_FASTOPEN = 0x17 2366 SO_SNDTIMEO = 0x13
2367 TCP_FASTOPEN_CONNECT = 0x1e 2367 SO_SNDTIMEO_NEW = 0x43
2368 TCP_FASTOPEN_KEY = 0x21 2368 SO_SNDTIMEO_OLD = 0x13
2369 TCP_FASTOPEN_NO_COOKIE = 0x22 2369 SO_TIMESTAMP = 0x1d
2370 TCP_INFO = 0xb 2370 SO_TIMESTAMPING = 0x25
2371 TCP_INQ = 0x24 2371 SO_TIMESTAMPING_NEW = 0x41
2372 TCP_KEEPCNT = 0x6 2372 SO_TIMESTAMPING_OLD = 0x25
2373 TCP_KEEPIDLE = 0x4 2373 SO_TIMESTAMPNS = 0x23
2374 TCP_KEEPINTVL = 0x5 2374 SO_TIMESTAMPNS_NEW = 0x40
2375 TCP_LINGER2 = 0x8 2375 SO_TIMESTAMPNS_OLD = 0x23
2376 TCP_MAXSEG = 0x2 2376 SO_TIMESTAMP_NEW = 0x3f
2377 TCP_MAXWIN = 0xffff 2377 SO_TIMESTAMP_OLD = 0x1d
2378 TCP_MAX_WINSHIFT = 0xe 2378 SO_TXTIME = 0x3d
2379 TCP_MD5SIG = 0xe 2379 SO_TYPE = 0x3
2380 TCP_MD5SIG_EXT = 0x20 2380 SO_VM_SOCKETS_BUFFER_MAX_SIZE = 0x2
2381 TCP_MD5SIG_FLAG_PREFIX = 0x1 2381 SO_VM_SOCKETS_BUFFER_MIN_SIZE = 0x1
2382 TCP_MD5SIG_MAXKEYLEN = 0x50 2382 SO_VM_SOCKETS_BUFFER_SIZE = 0x0
2383 TCP_MSS = 0x200 2383 SO_VM_SOCKETS_CONNECT_TIMEOUT = 0x6
2384 TCP_MSS_DEFAULT = 0x218 2384 SO_VM_SOCKETS_NONBLOCK_TXRX = 0x7
2385 TCP_MSS_DESIRED = 0x4c4 2385 SO_VM_SOCKETS_PEER_HOST_VM_ID = 0x3
2386 TCP_NODELAY = 0x1 2386 SO_VM_SOCKETS_TRUSTED = 0x5
2387 TCP_NOTSENT_LOWAT = 0x19 2387 SO_WIFI_STATUS = 0x29
2388 TCP_QUEUE_SEQ = 0x15 2388 SO_ZEROCOPY = 0x3c
2389 TCP_QUICKACK = 0xc 2389 SPLICE_F_GIFT = 0x8
2390 TCP_REPAIR = 0x13 2390 SPLICE_F_MORE = 0x4
2391 TCP_REPAIR_OFF = 0x0 2391 SPLICE_F_MOVE = 0x1
2392 TCP_REPAIR_OFF_NO_WP = -0x1 2392 SPLICE_F_NONBLOCK = 0x2
2393 TCP_REPAIR_ON = 0x1 2393 SQUASHFS_MAGIC = 0x73717368
2394 TCP_REPAIR_OPTIONS = 0x16 2394 STACK_END_MAGIC = 0x57ac6e9d
2395 TCP_REPAIR_QUEUE = 0x14 2395 STATX_ALL = 0xfff
2396 TCP_REPAIR_WINDOW = 0x1d 2396 STATX_ATIME = 0x20
2397 TCP_SAVED_SYN = 0x1c 2397 STATX_ATTR_APPEND = 0x20
2398 TCP_SAVE_SYN = 0x1b 2398 STATX_ATTR_AUTOMOUNT = 0x1000
2399 TCP_SYNCNT = 0x7 2399 STATX_ATTR_COMPRESSED = 0x4
2400 TCP_S_DATA_IN = 0x4 2400 STATX_ATTR_ENCRYPTED = 0x800
2401 TCP_S_DATA_OUT = 0x8 2401 STATX_ATTR_IMMUTABLE = 0x10
2402 TCP_THIN_DUPACK = 0x11 2402 STATX_ATTR_NODUMP = 0x40
2403 TCP_THIN_LINEAR_TIMEOUTS = 0x10 2403 STATX_ATTR_VERITY = 0x100000
2404 TCP_TIMESTAMP = 0x18 2404 STATX_BASIC_STATS = 0x7ff
2405 TCP_ULP = 0x1f 2405 STATX_BLOCKS = 0x400
2406 TCP_USER_TIMEOUT = 0x12 2406 STATX_BTIME = 0x800
2407 TCP_WINDOW_CLAMP = 0xa 2407 STATX_CTIME = 0x80
2408 TCP_ZEROCOPY_RECEIVE = 0x23 2408 STATX_GID = 0x10
2409 TCSAFLUSH = 0x2 2409 STATX_INO = 0x100
2410 TCSBRK = 0x2000741d 2410 STATX_MODE = 0x2
2411 TCSBRKP = 0x5425 2411 STATX_MTIME = 0x40
2412 TCSETA = 0x80147418 2412 STATX_NLINK = 0x4
2413 TCSETAF = 0x8014741c 2413 STATX_SIZE = 0x200
2414 TCSETAW = 0x80147419 2414 STATX_TYPE = 0x1
2415 TCSETS = 0x802c7414 2415 STATX_UID = 0x8
2416 TCSETSF = 0x802c7416 2416 STATX__RESERVED = 0x80000000
2417 TCSETSW = 0x802c7415 2417 SYNC_FILE_RANGE_WAIT_AFTER = 0x4
2418 TCXONC = 0x2000741e 2418 SYNC_FILE_RANGE_WAIT_BEFORE = 0x1
2419 TIMER_ABSTIME = 0x1 2419 SYNC_FILE_RANGE_WRITE = 0x2
2420 TIOCCBRK = 0x5428 2420 SYNC_FILE_RANGE_WRITE_AND_WAIT = 0x7
2421 TIOCCONS = 0x541d 2421 SYSFS_MAGIC = 0x62656572
2422 TIOCEXCL = 0x540c 2422 S_BLKSIZE = 0x200
2423 TIOCGDEV = 0x40045432 2423 S_IEXEC = 0x40
2424 TIOCGETC = 0x40067412 2424 S_IFBLK = 0x6000
2425 TIOCGETD = 0x5424 2425 S_IFCHR = 0x2000
2426 TIOCGETP = 0x40067408 2426 S_IFDIR = 0x4000
2427 TIOCGEXCL = 0x40045440 2427 S_IFIFO = 0x1000
2428 TIOCGICOUNT = 0x545d 2428 S_IFLNK = 0xa000
2429 TIOCGISO7816 = 0x40285442 2429 S_IFMT = 0xf000
2430 TIOCGLCKTRMIOS = 0x5456 2430 S_IFREG = 0x8000
2431 TIOCGLTC = 0x40067474 2431 S_IFSOCK = 0xc000
2432 TIOCGPGRP = 0x40047477 2432 S_IREAD = 0x100
2433 TIOCGPKT = 0x40045438 2433 S_IRGRP = 0x20
2434 TIOCGPTLCK = 0x40045439 2434 S_IROTH = 0x4
2435 TIOCGPTN = 0x40045430 2435 S_IRUSR = 0x100
2436 TIOCGPTPEER = 0x20005441 2436 S_IRWXG = 0x38
2437 TIOCGRS485 = 0x542e 2437 S_IRWXO = 0x7
2438 TIOCGSERIAL = 0x541e 2438 S_IRWXU = 0x1c0
2439 TIOCGSID = 0x5429 2439 S_ISGID = 0x400
2440 TIOCGSOFTCAR = 0x5419 2440 S_ISUID = 0x800
2441 TIOCGWINSZ = 0x40087468 2441 S_ISVTX = 0x200
2442 TIOCINQ = 0x4004667f 2442 S_IWGRP = 0x10
2443 TIOCLINUX = 0x541c 2443 S_IWOTH = 0x2
2444 TIOCMBIC = 0x5417 2444 S_IWRITE = 0x80
2445 TIOCMBIS = 0x5416 2445 S_IWUSR = 0x80
2446 TIOCMGET = 0x5415 2446 S_IXGRP = 0x8
2447 TIOCMIWAIT = 0x545c 2447 S_IXOTH = 0x1
2448 TIOCMSET = 0x5418 2448 S_IXUSR = 0x40
2449 TIOCM_CAR = 0x40 2449 TAB0 = 0x0
2450 TIOCM_CD = 0x40 2450 TAB1 = 0x400
2451 TIOCM_CTS = 0x20 2451 TAB2 = 0x800
2452 TIOCM_DSR = 0x100 2452 TAB3 = 0xc00
2453 TIOCM_DTR = 0x2 2453 TABDLY = 0xc00
2454 TIOCM_LE = 0x1 2454 TASKSTATS_CMD_ATTR_MAX = 0x4
2455 TIOCM_LOOP = 0x8000 2455 TASKSTATS_CMD_MAX = 0x2
2456 TIOCM_OUT1 = 0x2000 2456 TASKSTATS_GENL_NAME = "TASKSTATS"
2457 TIOCM_OUT2 = 0x4000 2457 TASKSTATS_GENL_VERSION = 0x1
2458 TIOCM_RI = 0x80 2458 TASKSTATS_TYPE_MAX = 0x6
2459 TIOCM_RNG = 0x80 2459 TASKSTATS_VERSION = 0x9
2460 TIOCM_RTS = 0x4 2460 TCFLSH = 0x2000741f
2461 TIOCM_SR = 0x10 2461 TCGETA = 0x40147417
2462 TIOCM_ST = 0x8 2462 TCGETS = 0x402c7413
2463 TIOCNOTTY = 0x5422 2463 TCIFLUSH = 0x0
2464 TIOCNXCL = 0x540d 2464 TCIOFF = 0x2
2465 TIOCOUTQ = 0x40047473 2465 TCIOFLUSH = 0x2
2466 TIOCPKT = 0x5420 2466 TCION = 0x3
2467 TIOCPKT_DATA = 0x0 2467 TCOFLUSH = 0x1
2468 TIOCPKT_DOSTOP = 0x20 2468 TCOOFF = 0x0
2469 TIOCPKT_FLUSHREAD = 0x1 2469 TCOON = 0x1
2470 TIOCPKT_FLUSHWRITE = 0x2 2470 TCP_BPF_IW = 0x3e9
2471 TIOCPKT_IOCTL = 0x40 2471 TCP_BPF_SNDCWND_CLAMP = 0x3ea
2472 TIOCPKT_NOSTOP = 0x10 2472 TCP_CC_INFO = 0x1a
2473 TIOCPKT_START = 0x8 2473 TCP_CM_INQ = 0x24
2474 TIOCPKT_STOP = 0x4 2474 TCP_CONGESTION = 0xd
2475 TIOCSBRK = 0x5427 2475 TCP_COOKIE_IN_ALWAYS = 0x1
2476 TIOCSCTTY = 0x540e 2476 TCP_COOKIE_MAX = 0x10
2477 TIOCSERCONFIG = 0x5453 2477 TCP_COOKIE_MIN = 0x8
2478 TIOCSERGETLSR = 0x5459 2478 TCP_COOKIE_OUT_NEVER = 0x2
2479 TIOCSERGETMULTI = 0x545a 2479 TCP_COOKIE_PAIR_SIZE = 0x20
2480 TIOCSERGSTRUCT = 0x5458 2480 TCP_COOKIE_TRANSACTIONS = 0xf
2481 TIOCSERGWILD = 0x5454 2481 TCP_CORK = 0x3
2482 TIOCSERSETMULTI = 0x545b 2482 TCP_DEFER_ACCEPT = 0x9
2483 TIOCSERSWILD = 0x5455 2483 TCP_FASTOPEN = 0x17
2484 TIOCSER_TEMT = 0x1 2484 TCP_FASTOPEN_CONNECT = 0x1e
2485 TIOCSETC = 0x80067411 2485 TCP_FASTOPEN_KEY = 0x21
2486 TIOCSETD = 0x5423 2486 TCP_FASTOPEN_NO_COOKIE = 0x22
2487 TIOCSETN = 0x8006740a 2487 TCP_INFO = 0xb
2488 TIOCSETP = 0x80067409 2488 TCP_INQ = 0x24
2489 TIOCSIG = 0x80045436 2489 TCP_KEEPCNT = 0x6
2490 TIOCSISO7816 = 0xc0285443 2490 TCP_KEEPIDLE = 0x4
2491 TIOCSLCKTRMIOS = 0x5457 2491 TCP_KEEPINTVL = 0x5
2492 TIOCSLTC = 0x80067475 2492 TCP_LINGER2 = 0x8
2493 TIOCSPGRP = 0x80047476 2493 TCP_MAXSEG = 0x2
2494 TIOCSPTLCK = 0x80045431 2494 TCP_MAXWIN = 0xffff
2495 TIOCSRS485 = 0x542f 2495 TCP_MAX_WINSHIFT = 0xe
2496 TIOCSSERIAL = 0x541f 2496 TCP_MD5SIG = 0xe
2497 TIOCSSOFTCAR = 0x541a 2497 TCP_MD5SIG_EXT = 0x20
2498 TIOCSTART = 0x2000746e 2498 TCP_MD5SIG_FLAG_PREFIX = 0x1
2499 TIOCSTI = 0x5412 2499 TCP_MD5SIG_MAXKEYLEN = 0x50
2500 TIOCSTOP = 0x2000746f 2500 TCP_MSS = 0x200
2501 TIOCSWINSZ = 0x80087467 2501 TCP_MSS_DEFAULT = 0x218
2502 TIOCVHANGUP = 0x5437 2502 TCP_MSS_DESIRED = 0x4c4
2503 TMPFS_MAGIC = 0x1021994 2503 TCP_NODELAY = 0x1
2504 TOSTOP = 0x400000 2504 TCP_NOTSENT_LOWAT = 0x19
2505 TPACKET_ALIGNMENT = 0x10 2505 TCP_QUEUE_SEQ = 0x15
2506 TPACKET_HDRLEN = 0x34 2506 TCP_QUICKACK = 0xc
2507 TP_STATUS_AVAILABLE = 0x0 2507 TCP_REPAIR = 0x13
2508 TP_STATUS_BLK_TMO = 0x20 2508 TCP_REPAIR_OFF = 0x0
2509 TP_STATUS_COPY = 0x2 2509 TCP_REPAIR_OFF_NO_WP = -0x1
2510 TP_STATUS_CSUMNOTREADY = 0x8 2510 TCP_REPAIR_ON = 0x1
2511 TP_STATUS_CSUM_VALID = 0x80 2511 TCP_REPAIR_OPTIONS = 0x16
2512 TP_STATUS_KERNEL = 0x0 2512 TCP_REPAIR_QUEUE = 0x14
2513 TP_STATUS_LOSING = 0x4 2513 TCP_REPAIR_WINDOW = 0x1d
2514 TP_STATUS_SENDING = 0x2 2514 TCP_SAVED_SYN = 0x1c
2515 TP_STATUS_SEND_REQUEST = 0x1 2515 TCP_SAVE_SYN = 0x1b
2516 TP_STATUS_TS_RAW_HARDWARE = -0x80000000 2516 TCP_SYNCNT = 0x7
2517 TP_STATUS_TS_SOFTWARE = 0x20000000 2517 TCP_S_DATA_IN = 0x4
2518 TP_STATUS_TS_SYS_HARDWARE = 0x40000000 2518 TCP_S_DATA_OUT = 0x8
2519 TP_STATUS_USER = 0x1 2519 TCP_THIN_DUPACK = 0x11
2520 TP_STATUS_VLAN_TPID_VALID = 0x40 2520 TCP_THIN_LINEAR_TIMEOUTS = 0x10
2521 TP_STATUS_VLAN_VALID = 0x10 2521 TCP_TIMESTAMP = 0x18
2522 TP_STATUS_WRONG_FORMAT = 0x4 2522 TCP_TX_DELAY = 0x25
2523 TRACEFS_MAGIC = 0x74726163 2523 TCP_ULP = 0x1f
2524 TS_COMM_LEN = 0x20 2524 TCP_USER_TIMEOUT = 0x12
2525 TUNATTACHFILTER = 0x801054d5 2525 TCP_WINDOW_CLAMP = 0xa
2526 TUNDETACHFILTER = 0x801054d6 2526 TCP_ZEROCOPY_RECEIVE = 0x23
2527 TUNGETDEVNETNS = 0x200054e3 2527 TCSAFLUSH = 0x2
2528 TUNGETFEATURES = 0x400454cf 2528 TCSBRK = 0x2000741d
2529 TUNGETFILTER = 0x401054db 2529 TCSBRKP = 0x5425
2530 TUNGETIFF = 0x400454d2 2530 TCSETA = 0x80147418
2531 TUNGETSNDBUF = 0x400454d3 2531 TCSETAF = 0x8014741c
2532 TUNGETVNETBE = 0x400454df 2532 TCSETAW = 0x80147419
2533 TUNGETVNETHDRSZ = 0x400454d7 2533 TCSETS = 0x802c7414
2534 TUNGETVNETLE = 0x400454dd 2534 TCSETSF = 0x802c7416
2535 TUNSETCARRIER = 0x800454e2 2535 TCSETSW = 0x802c7415
2536 TUNSETDEBUG = 0x800454c9 2536 TCXONC = 0x2000741e
2537 TUNSETFILTEREBPF = 0x400454e1 2537 TIMER_ABSTIME = 0x1
2538 TUNSETGROUP = 0x800454ce 2538 TIOCCBRK = 0x5428
2539 TUNSETIFF = 0x800454ca 2539 TIOCCONS = 0x541d
2540 TUNSETIFINDEX = 0x800454da 2540 TIOCEXCL = 0x540c
2541 TUNSETLINK = 0x800454cd 2541 TIOCGDEV = 0x40045432
2542 TUNSETNOCSUM = 0x800454c8 2542 TIOCGETC = 0x40067412
2543 TUNSETOFFLOAD = 0x800454d0 2543 TIOCGETD = 0x5424
2544 TUNSETOWNER = 0x800454cc 2544 TIOCGETP = 0x40067408
2545 TUNSETPERSIST = 0x800454cb 2545 TIOCGEXCL = 0x40045440
2546 TUNSETQUEUE = 0x800454d9 2546 TIOCGICOUNT = 0x545d
2547 TUNSETSNDBUF = 0x800454d4 2547 TIOCGISO7816 = 0x40285442
2548 TUNSETSTEERINGEBPF = 0x400454e0 2548 TIOCGLCKTRMIOS = 0x5456
2549 TUNSETTXFILTER = 0x800454d1 2549 TIOCGLTC = 0x40067474
2550 TUNSETVNETBE = 0x800454de 2550 TIOCGPGRP = 0x40047477
2551 TUNSETVNETHDRSZ = 0x800454d8 2551 TIOCGPKT = 0x40045438
2552 TUNSETVNETLE = 0x800454dc 2552 TIOCGPTLCK = 0x40045439
2553 UBI_IOCATT = 0x80186f40 2553 TIOCGPTN = 0x40045430
2554 UBI_IOCDET = 0x80046f41 2554 TIOCGPTPEER = 0x20005441
2555 UBI_IOCEBCH = 0x80044f02 2555 TIOCGRS485 = 0x542e
2556 UBI_IOCEBER = 0x80044f01 2556 TIOCGSERIAL = 0x541e
2557 UBI_IOCEBISMAP = 0x40044f05 2557 TIOCGSID = 0x5429
2558 UBI_IOCEBMAP = 0x80084f03 2558 TIOCGSOFTCAR = 0x5419
2559 UBI_IOCEBUNMAP = 0x80044f04 2559 TIOCGWINSZ = 0x40087468
2560 UBI_IOCMKVOL = 0x80986f00 2560 TIOCINQ = 0x4004667f
2561 UBI_IOCRMVOL = 0x80046f01 2561 TIOCLINUX = 0x541c
2562 UBI_IOCRNVOL = 0x91106f03 2562 TIOCMBIC = 0x5417
2563 UBI_IOCRPEB = 0x80046f04 2563 TIOCMBIS = 0x5416
2564 UBI_IOCRSVOL = 0x800c6f02 2564 TIOCMGET = 0x5415
2565 UBI_IOCSETVOLPROP = 0x80104f06 2565 TIOCMIWAIT = 0x545c
2566 UBI_IOCSPEB = 0x80046f05 2566 TIOCMSET = 0x5418
2567 UBI_IOCVOLCRBLK = 0x80804f07 2567 TIOCM_CAR = 0x40
2568 UBI_IOCVOLRMBLK = 0x20004f08 2568 TIOCM_CD = 0x40
2569 UBI_IOCVOLUP = 0x80084f00 2569 TIOCM_CTS = 0x20
2570 UDF_SUPER_MAGIC = 0x15013346 2570 TIOCM_DSR = 0x100
2571 UMOUNT_NOFOLLOW = 0x8 2571 TIOCM_DTR = 0x2
2572 USBDEVICE_SUPER_MAGIC = 0x9fa2 2572 TIOCM_LE = 0x1
2573 UTIME_NOW = 0x3fffffff 2573 TIOCM_LOOP = 0x8000
2574 UTIME_OMIT = 0x3ffffffe 2574 TIOCM_OUT1 = 0x2000
2575 V9FS_MAGIC = 0x1021997 2575 TIOCM_OUT2 = 0x4000
2576 VDISCARD = 0x10 2576 TIOCM_RI = 0x80
2577 VEOF = 0x4 2577 TIOCM_RNG = 0x80
2578 VEOL = 0x6 2578 TIOCM_RTS = 0x4
2579 VEOL2 = 0x8 2579 TIOCM_SR = 0x10
2580 VERASE = 0x2 2580 TIOCM_ST = 0x8
2581 VINTR = 0x0 2581 TIOCNOTTY = 0x5422
2582 VKILL = 0x3 2582 TIOCNXCL = 0x540d
2583 VLNEXT = 0xf 2583 TIOCOUTQ = 0x40047473
2584 VMADDR_CID_ANY = 0xffffffff 2584 TIOCPKT = 0x5420
2585 VMADDR_CID_HOST = 0x2 2585 TIOCPKT_DATA = 0x0
2586 VMADDR_CID_HYPERVISOR = 0x0 2586 TIOCPKT_DOSTOP = 0x20
2587 VMADDR_CID_RESERVED = 0x1 2587 TIOCPKT_FLUSHREAD = 0x1
2588 VMADDR_PORT_ANY = 0xffffffff 2588 TIOCPKT_FLUSHWRITE = 0x2
2589 VMIN = 0x5 2589 TIOCPKT_IOCTL = 0x40
2590 VM_SOCKETS_INVALID_VERSION = 0xffffffff 2590 TIOCPKT_NOSTOP = 0x10
2591 VQUIT = 0x1 2591 TIOCPKT_START = 0x8
2592 VREPRINT = 0xb 2592 TIOCPKT_STOP = 0x4
2593 VSTART = 0xd 2593 TIOCSBRK = 0x5427
2594 VSTOP = 0xe 2594 TIOCSCTTY = 0x540e
2595 VSUSP = 0xc 2595 TIOCSERCONFIG = 0x5453
2596 VSWTC = 0x9 2596 TIOCSERGETLSR = 0x5459
2597 VT0 = 0x0 2597 TIOCSERGETMULTI = 0x545a
2598 VT1 = 0x10000 2598 TIOCSERGSTRUCT = 0x5458
2599 VTDLY = 0x10000 2599 TIOCSERGWILD = 0x5454
2600 VTIME = 0x7 2600 TIOCSERSETMULTI = 0x545b
2601 VWERASE = 0xa 2601 TIOCSERSWILD = 0x5455
2602 WALL = 0x40000000 2602 TIOCSER_TEMT = 0x1
2603 WCLONE = 0x80000000 2603 TIOCSETC = 0x80067411
2604 WCONTINUED = 0x8 2604 TIOCSETD = 0x5423
2605 WDIOC_GETBOOTSTATUS = 0x40045702 2605 TIOCSETN = 0x8006740a
2606 WDIOC_GETPRETIMEOUT = 0x40045709 2606 TIOCSETP = 0x80067409
2607 WDIOC_GETSTATUS = 0x40045701 2607 TIOCSIG = 0x80045436
2608 WDIOC_GETSUPPORT = 0x40285700 2608 TIOCSISO7816 = 0xc0285443
2609 WDIOC_GETTEMP = 0x40045703 2609 TIOCSLCKTRMIOS = 0x5457
2610 WDIOC_GETTIMELEFT = 0x4004570a 2610 TIOCSLTC = 0x80067475
2611 WDIOC_GETTIMEOUT = 0x40045707 2611 TIOCSPGRP = 0x80047476
2612 WDIOC_KEEPALIVE = 0x40045705 2612 TIOCSPTLCK = 0x80045431
2613 WDIOC_SETOPTIONS = 0x40045704 2613 TIOCSRS485 = 0x542f
2614 WDIOC_SETPRETIMEOUT = 0xc0045708 2614 TIOCSSERIAL = 0x541f
2615 WDIOC_SETTIMEOUT = 0xc0045706 2615 TIOCSSOFTCAR = 0x541a
2616 WEXITED = 0x4 2616 TIOCSTART = 0x2000746e
2617 WIN_ACKMEDIACHANGE = 0xdb 2617 TIOCSTI = 0x5412
2618 WIN_CHECKPOWERMODE1 = 0xe5 2618 TIOCSTOP = 0x2000746f
2619 WIN_CHECKPOWERMODE2 = 0x98 2619 TIOCSWINSZ = 0x80087467
2620 WIN_DEVICE_RESET = 0x8 2620 TIOCVHANGUP = 0x5437
2621 WIN_DIAGNOSE = 0x90 2621 TIPC_ADDR_ID = 0x3
2622 WIN_DOORLOCK = 0xde 2622 TIPC_ADDR_MCAST = 0x1
2623 WIN_DOORUNLOCK = 0xdf 2623 TIPC_ADDR_NAME = 0x2
2624 WIN_DOWNLOAD_MICROCODE = 0x92 2624 TIPC_ADDR_NAMESEQ = 0x1
2625 WIN_FLUSH_CACHE = 0xe7 2625 TIPC_AEAD_ALG_NAME = 0x20
2626 WIN_FLUSH_CACHE_EXT = 0xea 2626 TIPC_AEAD_KEYLEN_MAX = 0x24
2627 WIN_FORMAT = 0x50 2627 TIPC_AEAD_KEYLEN_MIN = 0x14
2628 WIN_GETMEDIASTATUS = 0xda 2628 TIPC_AEAD_KEY_SIZE_MAX = 0x48
2629 WIN_IDENTIFY = 0xec 2629 TIPC_CFG_SRV = 0x0
2630 WIN_IDENTIFY_DMA = 0xee 2630 TIPC_CLUSTER_BITS = 0xc
2631 WIN_IDLEIMMEDIATE = 0xe1 2631 TIPC_CLUSTER_MASK = 0xfff000
2632 WIN_INIT = 0x60 2632 TIPC_CLUSTER_OFFSET = 0xc
2633 WIN_MEDIAEJECT = 0xed 2633 TIPC_CLUSTER_SIZE = 0xfff
2634 WIN_MULTREAD = 0xc4 2634 TIPC_CONN_SHUTDOWN = 0x5
2635 WIN_MULTREAD_EXT = 0x29 2635 TIPC_CONN_TIMEOUT = 0x82
2636 WIN_MULTWRITE = 0xc5 2636 TIPC_CRITICAL_IMPORTANCE = 0x3
2637 WIN_MULTWRITE_EXT = 0x39 2637 TIPC_DESTNAME = 0x3
2638 WIN_NOP = 0x0 2638 TIPC_DEST_DROPPABLE = 0x81
2639 WIN_PACKETCMD = 0xa0 2639 TIPC_ERRINFO = 0x1
2640 WIN_PIDENTIFY = 0xa1 2640 TIPC_ERR_NO_NAME = 0x1
2641 WIN_POSTBOOT = 0xdc 2641 TIPC_ERR_NO_NODE = 0x3
2642 WIN_PREBOOT = 0xdd 2642 TIPC_ERR_NO_PORT = 0x2
2643 WIN_QUEUED_SERVICE = 0xa2 2643 TIPC_ERR_OVERLOAD = 0x4
2644 WIN_READ = 0x20 2644 TIPC_GROUP_JOIN = 0x87
2645 WIN_READDMA = 0xc8 2645 TIPC_GROUP_LEAVE = 0x88
2646 WIN_READDMA_EXT = 0x25 2646 TIPC_GROUP_LOOPBACK = 0x1
2647 WIN_READDMA_ONCE = 0xc9 2647 TIPC_GROUP_MEMBER_EVTS = 0x2
2648 WIN_READDMA_QUEUED = 0xc7 2648 TIPC_HIGH_IMPORTANCE = 0x2
2649 WIN_READDMA_QUEUED_EXT = 0x26 2649 TIPC_IMPORTANCE = 0x7f
2650 WIN_READ_BUFFER = 0xe4 2650 TIPC_LINK_STATE = 0x2
2651 WIN_READ_EXT = 0x24 2651 TIPC_LOW_IMPORTANCE = 0x0
2652 WIN_READ_LONG = 0x22 2652 TIPC_MAX_BEARER_NAME = 0x20
2653 WIN_READ_LONG_ONCE = 0x23 2653 TIPC_MAX_IF_NAME = 0x10
2654 WIN_READ_NATIVE_MAX = 0xf8 2654 TIPC_MAX_LINK_NAME = 0x44
2655 WIN_READ_NATIVE_MAX_EXT = 0x27 2655 TIPC_MAX_MEDIA_NAME = 0x10
2656 WIN_READ_ONCE = 0x21 2656 TIPC_MAX_USER_MSG_SIZE = 0x101d0
2657 WIN_RECAL = 0x10 2657 TIPC_MCAST_BROADCAST = 0x85
2658 WIN_RESTORE = 0x10 2658 TIPC_MCAST_REPLICAST = 0x86
2659 WIN_SECURITY_DISABLE = 0xf6 2659 TIPC_MEDIUM_IMPORTANCE = 0x1
2660 WIN_SECURITY_ERASE_PREPARE = 0xf3 2660 TIPC_NODEID_LEN = 0x10
2661 WIN_SECURITY_ERASE_UNIT = 0xf4 2661 TIPC_NODELAY = 0x8a
2662 WIN_SECURITY_FREEZE_LOCK = 0xf5 2662 TIPC_NODE_BITS = 0xc
2663 WIN_SECURITY_SET_PASS = 0xf1 2663 TIPC_NODE_MASK = 0xfff
2664 WIN_SECURITY_UNLOCK = 0xf2 2664 TIPC_NODE_OFFSET = 0x0
2665 WIN_SEEK = 0x70 2665 TIPC_NODE_RECVQ_DEPTH = 0x83
2666 WIN_SETFEATURES = 0xef 2666 TIPC_NODE_SIZE = 0xfff
2667 WIN_SETIDLE1 = 0xe3 2667 TIPC_NODE_STATE = 0x0
2668 WIN_SETIDLE2 = 0x97 2668 TIPC_OK = 0x0
2669 WIN_SETMULT = 0xc6 2669 TIPC_PUBLISHED = 0x1
2670 WIN_SET_MAX = 0xf9 2670 TIPC_RESERVED_TYPES = 0x40
2671 WIN_SET_MAX_EXT = 0x37 2671 TIPC_RETDATA = 0x2
2672 WIN_SLEEPNOW1 = 0xe6 2672 TIPC_SERVICE_ADDR = 0x2
2673 WIN_SLEEPNOW2 = 0x99 2673 TIPC_SERVICE_RANGE = 0x1
2674 WIN_SMART = 0xb0 2674 TIPC_SOCKET_ADDR = 0x3
2675 WIN_SPECIFY = 0x91 2675 TIPC_SOCK_RECVQ_DEPTH = 0x84
2676 WIN_SRST = 0x8 2676 TIPC_SOCK_RECVQ_USED = 0x89
2677 WIN_STANDBY = 0xe2 2677 TIPC_SRC_DROPPABLE = 0x80
2678 WIN_STANDBY2 = 0x96 2678 TIPC_SUBSCR_TIMEOUT = 0x3
2679 WIN_STANDBYNOW1 = 0xe0 2679 TIPC_SUB_CANCEL = 0x4
2680 WIN_STANDBYNOW2 = 0x94 2680 TIPC_SUB_PORTS = 0x1
2681 WIN_VERIFY = 0x40 2681 TIPC_SUB_SERVICE = 0x2
2682 WIN_VERIFY_EXT = 0x42 2682 TIPC_TOP_SRV = 0x1
2683 WIN_VERIFY_ONCE = 0x41 2683 TIPC_WAIT_FOREVER = 0xffffffff
2684 WIN_WRITE = 0x30 2684 TIPC_WITHDRAWN = 0x2
2685 WIN_WRITEDMA = 0xca 2685 TIPC_ZONE_BITS = 0x8
2686 WIN_WRITEDMA_EXT = 0x35 2686 TIPC_ZONE_CLUSTER_MASK = 0xfffff000
2687 WIN_WRITEDMA_ONCE = 0xcb 2687 TIPC_ZONE_MASK = 0xff000000
2688 WIN_WRITEDMA_QUEUED = 0xcc 2688 TIPC_ZONE_OFFSET = 0x18
2689 WIN_WRITEDMA_QUEUED_EXT = 0x36 2689 TIPC_ZONE_SCOPE = 0x1
2690 WIN_WRITE_BUFFER = 0xe8 2690 TIPC_ZONE_SIZE = 0xff
2691 WIN_WRITE_EXT = 0x34 2691 TMPFS_MAGIC = 0x1021994
2692 WIN_WRITE_LONG = 0x32 2692 TOSTOP = 0x400000
2693 WIN_WRITE_LONG_ONCE = 0x33 2693 TPACKET_ALIGNMENT = 0x10
2694 WIN_WRITE_ONCE = 0x31 2694 TPACKET_HDRLEN = 0x34
2695 WIN_WRITE_SAME = 0xe9 2695 TP_STATUS_AVAILABLE = 0x0
2696 WIN_WRITE_VERIFY = 0x3c 2696 TP_STATUS_BLK_TMO = 0x20
2697 WNOHANG = 0x1 2697 TP_STATUS_COPY = 0x2
2698 WNOTHREAD = 0x20000000 2698 TP_STATUS_CSUMNOTREADY = 0x8
2699 WNOWAIT = 0x1000000 2699 TP_STATUS_CSUM_VALID = 0x80
2700 WORDSIZE = 0x40 2700 TP_STATUS_KERNEL = 0x0
2701 WSTOPPED = 0x2 2701 TP_STATUS_LOSING = 0x4
2702 WUNTRACED = 0x2 2702 TP_STATUS_SENDING = 0x2
2703 XATTR_CREATE = 0x1 2703 TP_STATUS_SEND_REQUEST = 0x1
2704 XATTR_REPLACE = 0x2 2704 TP_STATUS_TS_RAW_HARDWARE = 0x80000000
2705 XCASE = 0x4000 2705 TP_STATUS_TS_SOFTWARE = 0x20000000
2706 XDP_COPY = 0x2 2706 TP_STATUS_TS_SYS_HARDWARE = 0x40000000
2707 XDP_FLAGS_DRV_MODE = 0x4 2707 TP_STATUS_USER = 0x1
2708 XDP_FLAGS_HW_MODE = 0x8 2708 TP_STATUS_VLAN_TPID_VALID = 0x40
2709 XDP_FLAGS_MASK = 0xf 2709 TP_STATUS_VLAN_VALID = 0x10
2710 XDP_FLAGS_MODES = 0xe 2710 TP_STATUS_WRONG_FORMAT = 0x4
2711 XDP_FLAGS_SKB_MODE = 0x2 2711 TRACEFS_MAGIC = 0x74726163
2712 XDP_FLAGS_UPDATE_IF_NOEXIST = 0x1 2712 TS_COMM_LEN = 0x20
2713 XDP_MMAP_OFFSETS = 0x1 2713 TUNATTACHFILTER = 0x801054d5
2714 XDP_PACKET_HEADROOM = 0x100 2714 TUNDETACHFILTER = 0x801054d6
2715 XDP_PGOFF_RX_RING = 0x0 2715 TUNGETDEVNETNS = 0x200054e3
2716 XDP_PGOFF_TX_RING = 0x80000000 2716 TUNGETFEATURES = 0x400454cf
2717 XDP_RX_RING = 0x2 2717 TUNGETFILTER = 0x401054db
2718 XDP_SHARED_UMEM = 0x1 2718 TUNGETIFF = 0x400454d2
2719 XDP_STATISTICS = 0x7 2719 TUNGETSNDBUF = 0x400454d3
2720 XDP_TX_RING = 0x3 2720 TUNGETVNETBE = 0x400454df
2721 XDP_UMEM_COMPLETION_RING = 0x6 2721 TUNGETVNETHDRSZ = 0x400454d7
2722 XDP_UMEM_FILL_RING = 0x5 2722 TUNGETVNETLE = 0x400454dd
2723 XDP_UMEM_PGOFF_COMPLETION_RING = 0x180000000 2723 TUNSETCARRIER = 0x800454e2
2724 XDP_UMEM_PGOFF_FILL_RING = 0x100000000 2724 TUNSETDEBUG = 0x800454c9
2725 XDP_UMEM_REG = 0x4 2725 TUNSETFILTEREBPF = 0x400454e1
2726 XDP_ZEROCOPY = 0x4 2726 TUNSETGROUP = 0x800454ce
2727 XENFS_SUPER_MAGIC = 0xabba1974 2727 TUNSETIFF = 0x800454ca
2728 XFS_SUPER_MAGIC = 0x58465342 2728 TUNSETIFINDEX = 0x800454da
2729 XTABS = 0xc00 2729 TUNSETLINK = 0x800454cd
2730 ZSMALLOC_MAGIC = 0x58295829 2730 TUNSETNOCSUM = 0x800454c8
2731 TUNSETOFFLOAD = 0x800454d0
2732 TUNSETOWNER = 0x800454cc
2733 TUNSETPERSIST = 0x800454cb
2734 TUNSETQUEUE = 0x800454d9
2735 TUNSETSNDBUF = 0x800454d4
2736 TUNSETSTEERINGEBPF = 0x400454e0
2737 TUNSETTXFILTER = 0x800454d1
2738 TUNSETVNETBE = 0x800454de
2739 TUNSETVNETHDRSZ = 0x800454d8
2740 TUNSETVNETLE = 0x800454dc
2741 UBI_IOCATT = 0x80186f40
2742 UBI_IOCDET = 0x80046f41
2743 UBI_IOCEBCH = 0x80044f02
2744 UBI_IOCEBER = 0x80044f01
2745 UBI_IOCEBISMAP = 0x40044f05
2746 UBI_IOCEBMAP = 0x80084f03
2747 UBI_IOCEBUNMAP = 0x80044f04
2748 UBI_IOCMKVOL = 0x80986f00
2749 UBI_IOCRMVOL = 0x80046f01
2750 UBI_IOCRNVOL = 0x91106f03
2751 UBI_IOCRPEB = 0x80046f04
2752 UBI_IOCRSVOL = 0x800c6f02
2753 UBI_IOCSETVOLPROP = 0x80104f06
2754 UBI_IOCSPEB = 0x80046f05
2755 UBI_IOCVOLCRBLK = 0x80804f07
2756 UBI_IOCVOLRMBLK = 0x20004f08
2757 UBI_IOCVOLUP = 0x80084f00
2758 UDF_SUPER_MAGIC = 0x15013346
2759 UMOUNT_NOFOLLOW = 0x8
2760 USBDEVICE_SUPER_MAGIC = 0x9fa2
2761 UTIME_NOW = 0x3fffffff
2762 UTIME_OMIT = 0x3ffffffe
2763 V9FS_MAGIC = 0x1021997
2764 VDISCARD = 0x10
2765 VEOF = 0x4
2766 VEOL = 0x6
2767 VEOL2 = 0x8
2768 VERASE = 0x2
2769 VINTR = 0x0
2770 VKILL = 0x3
2771 VLNEXT = 0xf
2772 VMADDR_CID_ANY = 0xffffffff
2773 VMADDR_CID_HOST = 0x2
2774 VMADDR_CID_HYPERVISOR = 0x0
2775 VMADDR_CID_RESERVED = 0x1
2776 VMADDR_PORT_ANY = 0xffffffff
2777 VMIN = 0x5
2778 VM_SOCKETS_INVALID_VERSION = 0xffffffff
2779 VQUIT = 0x1
2780 VREPRINT = 0xb
2781 VSTART = 0xd
2782 VSTOP = 0xe
2783 VSUSP = 0xc
2784 VSWTC = 0x9
2785 VT0 = 0x0
2786 VT1 = 0x10000
2787 VTDLY = 0x10000
2788 VTIME = 0x7
2789 VWERASE = 0xa
2790 WALL = 0x40000000
2791 WCLONE = 0x80000000
2792 WCONTINUED = 0x8
2793 WDIOC_GETBOOTSTATUS = 0x40045702
2794 WDIOC_GETPRETIMEOUT = 0x40045709
2795 WDIOC_GETSTATUS = 0x40045701
2796 WDIOC_GETSUPPORT = 0x40285700
2797 WDIOC_GETTEMP = 0x40045703
2798 WDIOC_GETTIMELEFT = 0x4004570a
2799 WDIOC_GETTIMEOUT = 0x40045707
2800 WDIOC_KEEPALIVE = 0x40045705
2801 WDIOC_SETOPTIONS = 0x40045704
2802 WDIOC_SETPRETIMEOUT = 0xc0045708
2803 WDIOC_SETTIMEOUT = 0xc0045706
2804 WEXITED = 0x4
2805 WIN_ACKMEDIACHANGE = 0xdb
2806 WIN_CHECKPOWERMODE1 = 0xe5
2807 WIN_CHECKPOWERMODE2 = 0x98
2808 WIN_DEVICE_RESET = 0x8
2809 WIN_DIAGNOSE = 0x90
2810 WIN_DOORLOCK = 0xde
2811 WIN_DOORUNLOCK = 0xdf
2812 WIN_DOWNLOAD_MICROCODE = 0x92
2813 WIN_FLUSH_CACHE = 0xe7
2814 WIN_FLUSH_CACHE_EXT = 0xea
2815 WIN_FORMAT = 0x50
2816 WIN_GETMEDIASTATUS = 0xda
2817 WIN_IDENTIFY = 0xec
2818 WIN_IDENTIFY_DMA = 0xee
2819 WIN_IDLEIMMEDIATE = 0xe1
2820 WIN_INIT = 0x60
2821 WIN_MEDIAEJECT = 0xed
2822 WIN_MULTREAD = 0xc4
2823 WIN_MULTREAD_EXT = 0x29
2824 WIN_MULTWRITE = 0xc5
2825 WIN_MULTWRITE_EXT = 0x39
2826 WIN_NOP = 0x0
2827 WIN_PACKETCMD = 0xa0
2828 WIN_PIDENTIFY = 0xa1
2829 WIN_POSTBOOT = 0xdc
2830 WIN_PREBOOT = 0xdd
2831 WIN_QUEUED_SERVICE = 0xa2
2832 WIN_READ = 0x20
2833 WIN_READDMA = 0xc8
2834 WIN_READDMA_EXT = 0x25
2835 WIN_READDMA_ONCE = 0xc9
2836 WIN_READDMA_QUEUED = 0xc7
2837 WIN_READDMA_QUEUED_EXT = 0x26
2838 WIN_READ_BUFFER = 0xe4
2839 WIN_READ_EXT = 0x24
2840 WIN_READ_LONG = 0x22
2841 WIN_READ_LONG_ONCE = 0x23
2842 WIN_READ_NATIVE_MAX = 0xf8
2843 WIN_READ_NATIVE_MAX_EXT = 0x27
2844 WIN_READ_ONCE = 0x21
2845 WIN_RECAL = 0x10
2846 WIN_RESTORE = 0x10
2847 WIN_SECURITY_DISABLE = 0xf6
2848 WIN_SECURITY_ERASE_PREPARE = 0xf3
2849 WIN_SECURITY_ERASE_UNIT = 0xf4
2850 WIN_SECURITY_FREEZE_LOCK = 0xf5
2851 WIN_SECURITY_SET_PASS = 0xf1
2852 WIN_SECURITY_UNLOCK = 0xf2
2853 WIN_SEEK = 0x70
2854 WIN_SETFEATURES = 0xef
2855 WIN_SETIDLE1 = 0xe3
2856 WIN_SETIDLE2 = 0x97
2857 WIN_SETMULT = 0xc6
2858 WIN_SET_MAX = 0xf9
2859 WIN_SET_MAX_EXT = 0x37
2860 WIN_SLEEPNOW1 = 0xe6
2861 WIN_SLEEPNOW2 = 0x99
2862 WIN_SMART = 0xb0
2863 WIN_SPECIFY = 0x91
2864 WIN_SRST = 0x8
2865 WIN_STANDBY = 0xe2
2866 WIN_STANDBY2 = 0x96
2867 WIN_STANDBYNOW1 = 0xe0
2868 WIN_STANDBYNOW2 = 0x94
2869 WIN_VERIFY = 0x40
2870 WIN_VERIFY_EXT = 0x42
2871 WIN_VERIFY_ONCE = 0x41
2872 WIN_WRITE = 0x30
2873 WIN_WRITEDMA = 0xca
2874 WIN_WRITEDMA_EXT = 0x35
2875 WIN_WRITEDMA_ONCE = 0xcb
2876 WIN_WRITEDMA_QUEUED = 0xcc
2877 WIN_WRITEDMA_QUEUED_EXT = 0x36
2878 WIN_WRITE_BUFFER = 0xe8
2879 WIN_WRITE_EXT = 0x34
2880 WIN_WRITE_LONG = 0x32
2881 WIN_WRITE_LONG_ONCE = 0x33
2882 WIN_WRITE_ONCE = 0x31
2883 WIN_WRITE_SAME = 0xe9
2884 WIN_WRITE_VERIFY = 0x3c
2885 WNOHANG = 0x1
2886 WNOTHREAD = 0x20000000
2887 WNOWAIT = 0x1000000
2888 WORDSIZE = 0x40
2889 WSTOPPED = 0x2
2890 WUNTRACED = 0x2
2891 XATTR_CREATE = 0x1
2892 XATTR_REPLACE = 0x2
2893 XCASE = 0x4000
2894 XDP_COPY = 0x2
2895 XDP_FLAGS_DRV_MODE = 0x4
2896 XDP_FLAGS_HW_MODE = 0x8
2897 XDP_FLAGS_MASK = 0xf
2898 XDP_FLAGS_MODES = 0xe
2899 XDP_FLAGS_SKB_MODE = 0x2
2900 XDP_FLAGS_UPDATE_IF_NOEXIST = 0x1
2901 XDP_MMAP_OFFSETS = 0x1
2902 XDP_OPTIONS = 0x8
2903 XDP_OPTIONS_ZEROCOPY = 0x1
2904 XDP_PACKET_HEADROOM = 0x100
2905 XDP_PGOFF_RX_RING = 0x0
2906 XDP_PGOFF_TX_RING = 0x80000000
2907 XDP_RING_NEED_WAKEUP = 0x1
2908 XDP_RX_RING = 0x2
2909 XDP_SHARED_UMEM = 0x1
2910 XDP_STATISTICS = 0x7
2911 XDP_TX_RING = 0x3
2912 XDP_UMEM_COMPLETION_RING = 0x6
2913 XDP_UMEM_FILL_RING = 0x5
2914 XDP_UMEM_PGOFF_COMPLETION_RING = 0x180000000
2915 XDP_UMEM_PGOFF_FILL_RING = 0x100000000
2916 XDP_UMEM_REG = 0x4
2917 XDP_UMEM_UNALIGNED_CHUNK_FLAG = 0x1
2918 XDP_USE_NEED_WAKEUP = 0x8
2919 XDP_ZEROCOPY = 0x4
2920 XENFS_SUPER_MAGIC = 0xabba1974
2921 XFS_SUPER_MAGIC = 0x58465342
2922 XTABS = 0xc00
2923 Z3FOLD_MAGIC = 0x33
2924 ZSMALLOC_MAGIC = 0x58295829
2731) 2925)
2732 2926
2733// Errors 2927// Errors
diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go b/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go
index 9197b33..dc8caff 100644
--- a/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go
+++ b/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go
@@ -11,2723 +11,2917 @@ package unix
11import "syscall" 11import "syscall"
12 12
13const ( 13const (
14 AAFS_MAGIC = 0x5a3c69f0 14 AAFS_MAGIC = 0x5a3c69f0
15 ADFS_SUPER_MAGIC = 0xadf5 15 ADFS_SUPER_MAGIC = 0xadf5
16 AFFS_SUPER_MAGIC = 0xadff 16 AFFS_SUPER_MAGIC = 0xadff
17 AFS_FS_MAGIC = 0x6b414653 17 AFS_FS_MAGIC = 0x6b414653
18 AFS_SUPER_MAGIC = 0x5346414f 18 AFS_SUPER_MAGIC = 0x5346414f
19 AF_ALG = 0x26 19 AF_ALG = 0x26
20 AF_APPLETALK = 0x5 20 AF_APPLETALK = 0x5
21 AF_ASH = 0x12 21 AF_ASH = 0x12
22 AF_ATMPVC = 0x8 22 AF_ATMPVC = 0x8
23 AF_ATMSVC = 0x14 23 AF_ATMSVC = 0x14
24 AF_AX25 = 0x3 24 AF_AX25 = 0x3
25 AF_BLUETOOTH = 0x1f 25 AF_BLUETOOTH = 0x1f
26 AF_BRIDGE = 0x7 26 AF_BRIDGE = 0x7
27 AF_CAIF = 0x25 27 AF_CAIF = 0x25
28 AF_CAN = 0x1d 28 AF_CAN = 0x1d
29 AF_DECnet = 0xc 29 AF_DECnet = 0xc
30 AF_ECONET = 0x13 30 AF_ECONET = 0x13
31 AF_FILE = 0x1 31 AF_FILE = 0x1
32 AF_IB = 0x1b 32 AF_IB = 0x1b
33 AF_IEEE802154 = 0x24 33 AF_IEEE802154 = 0x24
34 AF_INET = 0x2 34 AF_INET = 0x2
35 AF_INET6 = 0xa 35 AF_INET6 = 0xa
36 AF_IPX = 0x4 36 AF_IPX = 0x4
37 AF_IRDA = 0x17 37 AF_IRDA = 0x17
38 AF_ISDN = 0x22 38 AF_ISDN = 0x22
39 AF_IUCV = 0x20 39 AF_IUCV = 0x20
40 AF_KCM = 0x29 40 AF_KCM = 0x29
41 AF_KEY = 0xf 41 AF_KEY = 0xf
42 AF_LLC = 0x1a 42 AF_LLC = 0x1a
43 AF_LOCAL = 0x1 43 AF_LOCAL = 0x1
44 AF_MAX = 0x2d 44 AF_MAX = 0x2d
45 AF_MPLS = 0x1c 45 AF_MPLS = 0x1c
46 AF_NETBEUI = 0xd 46 AF_NETBEUI = 0xd
47 AF_NETLINK = 0x10 47 AF_NETLINK = 0x10
48 AF_NETROM = 0x6 48 AF_NETROM = 0x6
49 AF_NFC = 0x27 49 AF_NFC = 0x27
50 AF_PACKET = 0x11 50 AF_PACKET = 0x11
51 AF_PHONET = 0x23 51 AF_PHONET = 0x23
52 AF_PPPOX = 0x18 52 AF_PPPOX = 0x18
53 AF_QIPCRTR = 0x2a 53 AF_QIPCRTR = 0x2a
54 AF_RDS = 0x15 54 AF_RDS = 0x15
55 AF_ROSE = 0xb 55 AF_ROSE = 0xb
56 AF_ROUTE = 0x10 56 AF_ROUTE = 0x10
57 AF_RXRPC = 0x21 57 AF_RXRPC = 0x21
58 AF_SECURITY = 0xe 58 AF_SECURITY = 0xe
59 AF_SMC = 0x2b 59 AF_SMC = 0x2b
60 AF_SNA = 0x16 60 AF_SNA = 0x16
61 AF_TIPC = 0x1e 61 AF_TIPC = 0x1e
62 AF_UNIX = 0x1 62 AF_UNIX = 0x1
63 AF_UNSPEC = 0x0 63 AF_UNSPEC = 0x0
64 AF_VSOCK = 0x28 64 AF_VSOCK = 0x28
65 AF_WANPIPE = 0x19 65 AF_WANPIPE = 0x19
66 AF_X25 = 0x9 66 AF_X25 = 0x9
67 AF_XDP = 0x2c 67 AF_XDP = 0x2c
68 ALG_OP_DECRYPT = 0x0 68 ALG_OP_DECRYPT = 0x0
69 ALG_OP_ENCRYPT = 0x1 69 ALG_OP_ENCRYPT = 0x1
70 ALG_SET_AEAD_ASSOCLEN = 0x4 70 ALG_SET_AEAD_ASSOCLEN = 0x4
71 ALG_SET_AEAD_AUTHSIZE = 0x5 71 ALG_SET_AEAD_AUTHSIZE = 0x5
72 ALG_SET_IV = 0x2 72 ALG_SET_IV = 0x2
73 ALG_SET_KEY = 0x1 73 ALG_SET_KEY = 0x1
74 ALG_SET_OP = 0x3 74 ALG_SET_OP = 0x3
75 ANON_INODE_FS_MAGIC = 0x9041934 75 ANON_INODE_FS_MAGIC = 0x9041934
76 ARPHRD_6LOWPAN = 0x339 76 ARPHRD_6LOWPAN = 0x339
77 ARPHRD_ADAPT = 0x108 77 ARPHRD_ADAPT = 0x108
78 ARPHRD_APPLETLK = 0x8 78 ARPHRD_APPLETLK = 0x8
79 ARPHRD_ARCNET = 0x7 79 ARPHRD_ARCNET = 0x7
80 ARPHRD_ASH = 0x30d 80 ARPHRD_ASH = 0x30d
81 ARPHRD_ATM = 0x13 81 ARPHRD_ATM = 0x13
82 ARPHRD_AX25 = 0x3 82 ARPHRD_AX25 = 0x3
83 ARPHRD_BIF = 0x307 83 ARPHRD_BIF = 0x307
84 ARPHRD_CAIF = 0x336 84 ARPHRD_CAIF = 0x336
85 ARPHRD_CAN = 0x118 85 ARPHRD_CAN = 0x118
86 ARPHRD_CHAOS = 0x5 86 ARPHRD_CHAOS = 0x5
87 ARPHRD_CISCO = 0x201 87 ARPHRD_CISCO = 0x201
88 ARPHRD_CSLIP = 0x101 88 ARPHRD_CSLIP = 0x101
89 ARPHRD_CSLIP6 = 0x103 89 ARPHRD_CSLIP6 = 0x103
90 ARPHRD_DDCMP = 0x205 90 ARPHRD_DDCMP = 0x205
91 ARPHRD_DLCI = 0xf 91 ARPHRD_DLCI = 0xf
92 ARPHRD_ECONET = 0x30e 92 ARPHRD_ECONET = 0x30e
93 ARPHRD_EETHER = 0x2 93 ARPHRD_EETHER = 0x2
94 ARPHRD_ETHER = 0x1 94 ARPHRD_ETHER = 0x1
95 ARPHRD_EUI64 = 0x1b 95 ARPHRD_EUI64 = 0x1b
96 ARPHRD_FCAL = 0x311 96 ARPHRD_FCAL = 0x311
97 ARPHRD_FCFABRIC = 0x313 97 ARPHRD_FCFABRIC = 0x313
98 ARPHRD_FCPL = 0x312 98 ARPHRD_FCPL = 0x312
99 ARPHRD_FCPP = 0x310 99 ARPHRD_FCPP = 0x310
100 ARPHRD_FDDI = 0x306 100 ARPHRD_FDDI = 0x306
101 ARPHRD_FRAD = 0x302 101 ARPHRD_FRAD = 0x302
102 ARPHRD_HDLC = 0x201 102 ARPHRD_HDLC = 0x201
103 ARPHRD_HIPPI = 0x30c 103 ARPHRD_HIPPI = 0x30c
104 ARPHRD_HWX25 = 0x110 104 ARPHRD_HWX25 = 0x110
105 ARPHRD_IEEE1394 = 0x18 105 ARPHRD_IEEE1394 = 0x18
106 ARPHRD_IEEE802 = 0x6 106 ARPHRD_IEEE802 = 0x6
107 ARPHRD_IEEE80211 = 0x321 107 ARPHRD_IEEE80211 = 0x321
108 ARPHRD_IEEE80211_PRISM = 0x322 108 ARPHRD_IEEE80211_PRISM = 0x322
109 ARPHRD_IEEE80211_RADIOTAP = 0x323 109 ARPHRD_IEEE80211_RADIOTAP = 0x323
110 ARPHRD_IEEE802154 = 0x324 110 ARPHRD_IEEE802154 = 0x324
111 ARPHRD_IEEE802154_MONITOR = 0x325 111 ARPHRD_IEEE802154_MONITOR = 0x325
112 ARPHRD_IEEE802_TR = 0x320 112 ARPHRD_IEEE802_TR = 0x320
113 ARPHRD_INFINIBAND = 0x20 113 ARPHRD_INFINIBAND = 0x20
114 ARPHRD_IP6GRE = 0x337 114 ARPHRD_IP6GRE = 0x337
115 ARPHRD_IPDDP = 0x309 115 ARPHRD_IPDDP = 0x309
116 ARPHRD_IPGRE = 0x30a 116 ARPHRD_IPGRE = 0x30a
117 ARPHRD_IRDA = 0x30f 117 ARPHRD_IRDA = 0x30f
118 ARPHRD_LAPB = 0x204 118 ARPHRD_LAPB = 0x204
119 ARPHRD_LOCALTLK = 0x305 119 ARPHRD_LOCALTLK = 0x305
120 ARPHRD_LOOPBACK = 0x304 120 ARPHRD_LOOPBACK = 0x304
121 ARPHRD_METRICOM = 0x17 121 ARPHRD_METRICOM = 0x17
122 ARPHRD_NETLINK = 0x338 122 ARPHRD_NETLINK = 0x338
123 ARPHRD_NETROM = 0x0 123 ARPHRD_NETROM = 0x0
124 ARPHRD_NONE = 0xfffe 124 ARPHRD_NONE = 0xfffe
125 ARPHRD_PHONET = 0x334 125 ARPHRD_PHONET = 0x334
126 ARPHRD_PHONET_PIPE = 0x335 126 ARPHRD_PHONET_PIPE = 0x335
127 ARPHRD_PIMREG = 0x30b 127 ARPHRD_PIMREG = 0x30b
128 ARPHRD_PPP = 0x200 128 ARPHRD_PPP = 0x200
129 ARPHRD_PRONET = 0x4 129 ARPHRD_PRONET = 0x4
130 ARPHRD_RAWHDLC = 0x206 130 ARPHRD_RAWHDLC = 0x206
131 ARPHRD_RAWIP = 0x207 131 ARPHRD_RAWIP = 0x207
132 ARPHRD_ROSE = 0x10e 132 ARPHRD_ROSE = 0x10e
133 ARPHRD_RSRVD = 0x104 133 ARPHRD_RSRVD = 0x104
134 ARPHRD_SIT = 0x308 134 ARPHRD_SIT = 0x308
135 ARPHRD_SKIP = 0x303 135 ARPHRD_SKIP = 0x303
136 ARPHRD_SLIP = 0x100 136 ARPHRD_SLIP = 0x100
137 ARPHRD_SLIP6 = 0x102 137 ARPHRD_SLIP6 = 0x102
138 ARPHRD_TUNNEL = 0x300 138 ARPHRD_TUNNEL = 0x300
139 ARPHRD_TUNNEL6 = 0x301 139 ARPHRD_TUNNEL6 = 0x301
140 ARPHRD_VOID = 0xffff 140 ARPHRD_VOID = 0xffff
141 ARPHRD_VSOCKMON = 0x33a 141 ARPHRD_VSOCKMON = 0x33a
142 ARPHRD_X25 = 0x10f 142 ARPHRD_X25 = 0x10f
143 AUTOFS_SUPER_MAGIC = 0x187 143 AUTOFS_SUPER_MAGIC = 0x187
144 B0 = 0x0 144 B0 = 0x0
145 B1000000 = 0x17 145 B1000000 = 0x17
146 B110 = 0x3 146 B110 = 0x3
147 B115200 = 0x11 147 B115200 = 0x11
148 B1152000 = 0x18 148 B1152000 = 0x18
149 B1200 = 0x9 149 B1200 = 0x9
150 B134 = 0x4 150 B134 = 0x4
151 B150 = 0x5 151 B150 = 0x5
152 B1500000 = 0x19 152 B1500000 = 0x19
153 B1800 = 0xa 153 B1800 = 0xa
154 B19200 = 0xe 154 B19200 = 0xe
155 B200 = 0x6 155 B200 = 0x6
156 B2000000 = 0x1a 156 B2000000 = 0x1a
157 B230400 = 0x12 157 B230400 = 0x12
158 B2400 = 0xb 158 B2400 = 0xb
159 B2500000 = 0x1b 159 B2500000 = 0x1b
160 B300 = 0x7 160 B300 = 0x7
161 B3000000 = 0x1c 161 B3000000 = 0x1c
162 B3500000 = 0x1d 162 B3500000 = 0x1d
163 B38400 = 0xf 163 B38400 = 0xf
164 B4000000 = 0x1e 164 B4000000 = 0x1e
165 B460800 = 0x13 165 B460800 = 0x13
166 B4800 = 0xc 166 B4800 = 0xc
167 B50 = 0x1 167 B50 = 0x1
168 B500000 = 0x14 168 B500000 = 0x14
169 B57600 = 0x10 169 B57600 = 0x10
170 B576000 = 0x15 170 B576000 = 0x15
171 B600 = 0x8 171 B600 = 0x8
172 B75 = 0x2 172 B75 = 0x2
173 B921600 = 0x16 173 B921600 = 0x16
174 B9600 = 0xd 174 B9600 = 0xd
175 BALLOON_KVM_MAGIC = 0x13661366 175 BALLOON_KVM_MAGIC = 0x13661366
176 BDEVFS_MAGIC = 0x62646576 176 BDEVFS_MAGIC = 0x62646576
177 BINDERFS_SUPER_MAGIC = 0x6c6f6f70 177 BINDERFS_SUPER_MAGIC = 0x6c6f6f70
178 BINFMTFS_MAGIC = 0x42494e4d 178 BINFMTFS_MAGIC = 0x42494e4d
179 BLKBSZGET = 0x40081270 179 BLKBSZGET = 0x40081270
180 BLKBSZSET = 0x80081271 180 BLKBSZSET = 0x80081271
181 BLKFLSBUF = 0x20001261 181 BLKFLSBUF = 0x20001261
182 BLKFRAGET = 0x20001265 182 BLKFRAGET = 0x20001265
183 BLKFRASET = 0x20001264 183 BLKFRASET = 0x20001264
184 BLKGETSIZE = 0x20001260 184 BLKGETSIZE = 0x20001260
185 BLKGETSIZE64 = 0x40081272 185 BLKGETSIZE64 = 0x40081272
186 BLKPBSZGET = 0x2000127b 186 BLKPBSZGET = 0x2000127b
187 BLKRAGET = 0x20001263 187 BLKRAGET = 0x20001263
188 BLKRASET = 0x20001262 188 BLKRASET = 0x20001262
189 BLKROGET = 0x2000125e 189 BLKROGET = 0x2000125e
190 BLKROSET = 0x2000125d 190 BLKROSET = 0x2000125d
191 BLKRRPART = 0x2000125f 191 BLKRRPART = 0x2000125f
192 BLKSECTGET = 0x20001267 192 BLKSECTGET = 0x20001267
193 BLKSECTSET = 0x20001266 193 BLKSECTSET = 0x20001266
194 BLKSSZGET = 0x20001268 194 BLKSSZGET = 0x20001268
195 BOTHER = 0x1f 195 BOTHER = 0x1f
196 BPF_A = 0x10 196 BPF_A = 0x10
197 BPF_ABS = 0x20 197 BPF_ABS = 0x20
198 BPF_ADD = 0x0 198 BPF_ADD = 0x0
199 BPF_ADJ_ROOM_ENCAP_L2_MASK = 0xff 199 BPF_ADJ_ROOM_ENCAP_L2_MASK = 0xff
200 BPF_ADJ_ROOM_ENCAP_L2_SHIFT = 0x38 200 BPF_ADJ_ROOM_ENCAP_L2_SHIFT = 0x38
201 BPF_ALU = 0x4 201 BPF_ALU = 0x4
202 BPF_ALU64 = 0x7 202 BPF_ALU64 = 0x7
203 BPF_AND = 0x50 203 BPF_AND = 0x50
204 BPF_ANY = 0x0 204 BPF_ANY = 0x0
205 BPF_ARSH = 0xc0 205 BPF_ARSH = 0xc0
206 BPF_B = 0x10 206 BPF_B = 0x10
207 BPF_BUILD_ID_SIZE = 0x14 207 BPF_BUILD_ID_SIZE = 0x14
208 BPF_CALL = 0x80 208 BPF_CALL = 0x80
209 BPF_DEVCG_ACC_MKNOD = 0x1 209 BPF_DEVCG_ACC_MKNOD = 0x1
210 BPF_DEVCG_ACC_READ = 0x2 210 BPF_DEVCG_ACC_READ = 0x2
211 BPF_DEVCG_ACC_WRITE = 0x4 211 BPF_DEVCG_ACC_WRITE = 0x4
212 BPF_DEVCG_DEV_BLOCK = 0x1 212 BPF_DEVCG_DEV_BLOCK = 0x1
213 BPF_DEVCG_DEV_CHAR = 0x2 213 BPF_DEVCG_DEV_CHAR = 0x2
214 BPF_DIV = 0x30 214 BPF_DIV = 0x30
215 BPF_DW = 0x18 215 BPF_DW = 0x18
216 BPF_END = 0xd0 216 BPF_END = 0xd0
217 BPF_EXIST = 0x2 217 BPF_EXIST = 0x2
218 BPF_EXIT = 0x90 218 BPF_EXIT = 0x90
219 BPF_FROM_BE = 0x8 219 BPF_FLOW_DISSECTOR_F_PARSE_1ST_FRAG = 0x1
220 BPF_FROM_LE = 0x0 220 BPF_FLOW_DISSECTOR_F_STOP_AT_ENCAP = 0x4
221 BPF_FS_MAGIC = 0xcafe4a11 221 BPF_FLOW_DISSECTOR_F_STOP_AT_FLOW_LABEL = 0x2
222 BPF_F_ADJ_ROOM_ENCAP_L3_IPV4 = 0x2 222 BPF_FROM_BE = 0x8
223 BPF_F_ADJ_ROOM_ENCAP_L3_IPV6 = 0x4 223 BPF_FROM_LE = 0x0
224 BPF_F_ADJ_ROOM_ENCAP_L4_GRE = 0x8 224 BPF_FS_MAGIC = 0xcafe4a11
225 BPF_F_ADJ_ROOM_ENCAP_L4_UDP = 0x10 225 BPF_F_ADJ_ROOM_ENCAP_L3_IPV4 = 0x2
226 BPF_F_ADJ_ROOM_FIXED_GSO = 0x1 226 BPF_F_ADJ_ROOM_ENCAP_L3_IPV6 = 0x4
227 BPF_F_ALLOW_MULTI = 0x2 227 BPF_F_ADJ_ROOM_ENCAP_L4_GRE = 0x8
228 BPF_F_ALLOW_OVERRIDE = 0x1 228 BPF_F_ADJ_ROOM_ENCAP_L4_UDP = 0x10
229 BPF_F_ANY_ALIGNMENT = 0x2 229 BPF_F_ADJ_ROOM_FIXED_GSO = 0x1
230 BPF_F_CTXLEN_MASK = 0xfffff00000000 230 BPF_F_ALLOW_MULTI = 0x2
231 BPF_F_CURRENT_CPU = 0xffffffff 231 BPF_F_ALLOW_OVERRIDE = 0x1
232 BPF_F_CURRENT_NETNS = -0x1 232 BPF_F_ANY_ALIGNMENT = 0x2
233 BPF_F_DONT_FRAGMENT = 0x4 233 BPF_F_CLONE = 0x200
234 BPF_F_FAST_STACK_CMP = 0x200 234 BPF_F_CTXLEN_MASK = 0xfffff00000000
235 BPF_F_HDR_FIELD_MASK = 0xf 235 BPF_F_CURRENT_CPU = 0xffffffff
236 BPF_F_INDEX_MASK = 0xffffffff 236 BPF_F_CURRENT_NETNS = -0x1
237 BPF_F_INGRESS = 0x1 237 BPF_F_DONT_FRAGMENT = 0x4
238 BPF_F_INVALIDATE_HASH = 0x2 238 BPF_F_FAST_STACK_CMP = 0x200
239 BPF_F_LOCK = 0x4 239 BPF_F_HDR_FIELD_MASK = 0xf
240 BPF_F_MARK_ENFORCE = 0x40 240 BPF_F_INDEX_MASK = 0xffffffff
241 BPF_F_MARK_MANGLED_0 = 0x20 241 BPF_F_INGRESS = 0x1
242 BPF_F_NO_COMMON_LRU = 0x2 242 BPF_F_INVALIDATE_HASH = 0x2
243 BPF_F_NO_PREALLOC = 0x1 243 BPF_F_LOCK = 0x4
244 BPF_F_NUMA_NODE = 0x4 244 BPF_F_MARK_ENFORCE = 0x40
245 BPF_F_PSEUDO_HDR = 0x10 245 BPF_F_MARK_MANGLED_0 = 0x20
246 BPF_F_QUERY_EFFECTIVE = 0x1 246 BPF_F_MMAPABLE = 0x400
247 BPF_F_RDONLY = 0x8 247 BPF_F_NO_COMMON_LRU = 0x2
248 BPF_F_RDONLY_PROG = 0x80 248 BPF_F_NO_PREALLOC = 0x1
249 BPF_F_RECOMPUTE_CSUM = 0x1 249 BPF_F_NUMA_NODE = 0x4
250 BPF_F_REUSE_STACKID = 0x400 250 BPF_F_PSEUDO_HDR = 0x10
251 BPF_F_SEQ_NUMBER = 0x8 251 BPF_F_QUERY_EFFECTIVE = 0x1
252 BPF_F_SKIP_FIELD_MASK = 0xff 252 BPF_F_RDONLY = 0x8
253 BPF_F_STACK_BUILD_ID = 0x20 253 BPF_F_RDONLY_PROG = 0x80
254 BPF_F_STRICT_ALIGNMENT = 0x1 254 BPF_F_RECOMPUTE_CSUM = 0x1
255 BPF_F_SYSCTL_BASE_NAME = 0x1 255 BPF_F_REUSE_STACKID = 0x400
256 BPF_F_TUNINFO_IPV6 = 0x1 256 BPF_F_SEQ_NUMBER = 0x8
257 BPF_F_USER_BUILD_ID = 0x800 257 BPF_F_SKIP_FIELD_MASK = 0xff
258 BPF_F_USER_STACK = 0x100 258 BPF_F_STACK_BUILD_ID = 0x20
259 BPF_F_WRONLY = 0x10 259 BPF_F_STRICT_ALIGNMENT = 0x1
260 BPF_F_WRONLY_PROG = 0x100 260 BPF_F_SYSCTL_BASE_NAME = 0x1
261 BPF_F_ZERO_CSUM_TX = 0x2 261 BPF_F_TEST_RND_HI32 = 0x4
262 BPF_F_ZERO_SEED = 0x40 262 BPF_F_TEST_STATE_FREQ = 0x8
263 BPF_H = 0x8 263 BPF_F_TUNINFO_IPV6 = 0x1
264 BPF_IMM = 0x0 264 BPF_F_USER_BUILD_ID = 0x800
265 BPF_IND = 0x40 265 BPF_F_USER_STACK = 0x100
266 BPF_JA = 0x0 266 BPF_F_WRONLY = 0x10
267 BPF_JEQ = 0x10 267 BPF_F_WRONLY_PROG = 0x100
268 BPF_JGE = 0x30 268 BPF_F_ZERO_CSUM_TX = 0x2
269 BPF_JGT = 0x20 269 BPF_F_ZERO_SEED = 0x40
270 BPF_JLE = 0xb0 270 BPF_H = 0x8
271 BPF_JLT = 0xa0 271 BPF_IMM = 0x0
272 BPF_JMP = 0x5 272 BPF_IND = 0x40
273 BPF_JMP32 = 0x6 273 BPF_JA = 0x0
274 BPF_JNE = 0x50 274 BPF_JEQ = 0x10
275 BPF_JSET = 0x40 275 BPF_JGE = 0x30
276 BPF_JSGE = 0x70 276 BPF_JGT = 0x20
277 BPF_JSGT = 0x60 277 BPF_JLE = 0xb0
278 BPF_JSLE = 0xd0 278 BPF_JLT = 0xa0
279 BPF_JSLT = 0xc0 279 BPF_JMP = 0x5
280 BPF_K = 0x0 280 BPF_JMP32 = 0x6
281 BPF_LD = 0x0 281 BPF_JNE = 0x50
282 BPF_LDX = 0x1 282 BPF_JSET = 0x40
283 BPF_LEN = 0x80 283 BPF_JSGE = 0x70
284 BPF_LL_OFF = -0x200000 284 BPF_JSGT = 0x60
285 BPF_LSH = 0x60 285 BPF_JSLE = 0xd0
286 BPF_MAJOR_VERSION = 0x1 286 BPF_JSLT = 0xc0
287 BPF_MAXINSNS = 0x1000 287 BPF_K = 0x0
288 BPF_MEM = 0x60 288 BPF_LD = 0x0
289 BPF_MEMWORDS = 0x10 289 BPF_LDX = 0x1
290 BPF_MINOR_VERSION = 0x1 290 BPF_LEN = 0x80
291 BPF_MISC = 0x7 291 BPF_LL_OFF = -0x200000
292 BPF_MOD = 0x90 292 BPF_LSH = 0x60
293 BPF_MOV = 0xb0 293 BPF_MAJOR_VERSION = 0x1
294 BPF_MSH = 0xa0 294 BPF_MAXINSNS = 0x1000
295 BPF_MUL = 0x20 295 BPF_MEM = 0x60
296 BPF_NEG = 0x80 296 BPF_MEMWORDS = 0x10
297 BPF_NET_OFF = -0x100000 297 BPF_MINOR_VERSION = 0x1
298 BPF_NOEXIST = 0x1 298 BPF_MISC = 0x7
299 BPF_OBJ_NAME_LEN = 0x10 299 BPF_MOD = 0x90
300 BPF_OR = 0x40 300 BPF_MOV = 0xb0
301 BPF_PSEUDO_CALL = 0x1 301 BPF_MSH = 0xa0
302 BPF_PSEUDO_MAP_FD = 0x1 302 BPF_MUL = 0x20
303 BPF_PSEUDO_MAP_VALUE = 0x2 303 BPF_NEG = 0x80
304 BPF_RET = 0x6 304 BPF_NET_OFF = -0x100000
305 BPF_RSH = 0x70 305 BPF_NOEXIST = 0x1
306 BPF_SK_STORAGE_GET_F_CREATE = 0x1 306 BPF_OBJ_NAME_LEN = 0x10
307 BPF_SOCK_OPS_ALL_CB_FLAGS = 0x7 307 BPF_OR = 0x40
308 BPF_SOCK_OPS_RETRANS_CB_FLAG = 0x2 308 BPF_PSEUDO_CALL = 0x1
309 BPF_SOCK_OPS_RTO_CB_FLAG = 0x1 309 BPF_PSEUDO_MAP_FD = 0x1
310 BPF_SOCK_OPS_STATE_CB_FLAG = 0x4 310 BPF_PSEUDO_MAP_VALUE = 0x2
311 BPF_ST = 0x2 311 BPF_RET = 0x6
312 BPF_STX = 0x3 312 BPF_RSH = 0x70
313 BPF_SUB = 0x10 313 BPF_SK_STORAGE_GET_F_CREATE = 0x1
314 BPF_TAG_SIZE = 0x8 314 BPF_SOCK_OPS_ALL_CB_FLAGS = 0xf
315 BPF_TAX = 0x0 315 BPF_SOCK_OPS_RETRANS_CB_FLAG = 0x2
316 BPF_TO_BE = 0x8 316 BPF_SOCK_OPS_RTO_CB_FLAG = 0x1
317 BPF_TO_LE = 0x0 317 BPF_SOCK_OPS_RTT_CB_FLAG = 0x8
318 BPF_TXA = 0x80 318 BPF_SOCK_OPS_STATE_CB_FLAG = 0x4
319 BPF_W = 0x0 319 BPF_ST = 0x2
320 BPF_X = 0x8 320 BPF_STX = 0x3
321 BPF_XADD = 0xc0 321 BPF_SUB = 0x10
322 BPF_XOR = 0xa0 322 BPF_TAG_SIZE = 0x8
323 BRKINT = 0x2 323 BPF_TAX = 0x0
324 BS0 = 0x0 324 BPF_TO_BE = 0x8
325 BS1 = 0x8000 325 BPF_TO_LE = 0x0
326 BSDLY = 0x8000 326 BPF_TXA = 0x80
327 BTRFS_SUPER_MAGIC = 0x9123683e 327 BPF_W = 0x0
328 BTRFS_TEST_MAGIC = 0x73727279 328 BPF_X = 0x8
329 CAN_BCM = 0x2 329 BPF_XADD = 0xc0
330 CAN_EFF_FLAG = 0x80000000 330 BPF_XOR = 0xa0
331 CAN_EFF_ID_BITS = 0x1d 331 BRKINT = 0x2
332 CAN_EFF_MASK = 0x1fffffff 332 BS0 = 0x0
333 CAN_ERR_FLAG = 0x20000000 333 BS1 = 0x8000
334 CAN_ERR_MASK = 0x1fffffff 334 BSDLY = 0x8000
335 CAN_INV_FILTER = 0x20000000 335 BTRFS_SUPER_MAGIC = 0x9123683e
336 CAN_ISOTP = 0x6 336 BTRFS_TEST_MAGIC = 0x73727279
337 CAN_MAX_DLC = 0x8 337 CAN_BCM = 0x2
338 CAN_MAX_DLEN = 0x8 338 CAN_EFF_FLAG = 0x80000000
339 CAN_MCNET = 0x5 339 CAN_EFF_ID_BITS = 0x1d
340 CAN_MTU = 0x10 340 CAN_EFF_MASK = 0x1fffffff
341 CAN_NPROTO = 0x7 341 CAN_ERR_FLAG = 0x20000000
342 CAN_RAW = 0x1 342 CAN_ERR_MASK = 0x1fffffff
343 CAN_RAW_FILTER_MAX = 0x200 343 CAN_INV_FILTER = 0x20000000
344 CAN_RTR_FLAG = 0x40000000 344 CAN_ISOTP = 0x6
345 CAN_SFF_ID_BITS = 0xb 345 CAN_J1939 = 0x7
346 CAN_SFF_MASK = 0x7ff 346 CAN_MAX_DLC = 0x8
347 CAN_TP16 = 0x3 347 CAN_MAX_DLEN = 0x8
348 CAN_TP20 = 0x4 348 CAN_MCNET = 0x5
349 CAP_AUDIT_CONTROL = 0x1e 349 CAN_MTU = 0x10
350 CAP_AUDIT_READ = 0x25 350 CAN_NPROTO = 0x8
351 CAP_AUDIT_WRITE = 0x1d 351 CAN_RAW = 0x1
352 CAP_BLOCK_SUSPEND = 0x24 352 CAN_RAW_FILTER_MAX = 0x200
353 CAP_CHOWN = 0x0 353 CAN_RTR_FLAG = 0x40000000
354 CAP_DAC_OVERRIDE = 0x1 354 CAN_SFF_ID_BITS = 0xb
355 CAP_DAC_READ_SEARCH = 0x2 355 CAN_SFF_MASK = 0x7ff
356 CAP_FOWNER = 0x3 356 CAN_TP16 = 0x3
357 CAP_FSETID = 0x4 357 CAN_TP20 = 0x4
358 CAP_IPC_LOCK = 0xe 358 CAP_AUDIT_CONTROL = 0x1e
359 CAP_IPC_OWNER = 0xf 359 CAP_AUDIT_READ = 0x25
360 CAP_KILL = 0x5 360 CAP_AUDIT_WRITE = 0x1d
361 CAP_LAST_CAP = 0x25 361 CAP_BLOCK_SUSPEND = 0x24
362 CAP_LEASE = 0x1c 362 CAP_CHOWN = 0x0
363 CAP_LINUX_IMMUTABLE = 0x9 363 CAP_DAC_OVERRIDE = 0x1
364 CAP_MAC_ADMIN = 0x21 364 CAP_DAC_READ_SEARCH = 0x2
365 CAP_MAC_OVERRIDE = 0x20 365 CAP_FOWNER = 0x3
366 CAP_MKNOD = 0x1b 366 CAP_FSETID = 0x4
367 CAP_NET_ADMIN = 0xc 367 CAP_IPC_LOCK = 0xe
368 CAP_NET_BIND_SERVICE = 0xa 368 CAP_IPC_OWNER = 0xf
369 CAP_NET_BROADCAST = 0xb 369 CAP_KILL = 0x5
370 CAP_NET_RAW = 0xd 370 CAP_LAST_CAP = 0x25
371 CAP_SETFCAP = 0x1f 371 CAP_LEASE = 0x1c
372 CAP_SETGID = 0x6 372 CAP_LINUX_IMMUTABLE = 0x9
373 CAP_SETPCAP = 0x8 373 CAP_MAC_ADMIN = 0x21
374 CAP_SETUID = 0x7 374 CAP_MAC_OVERRIDE = 0x20
375 CAP_SYSLOG = 0x22 375 CAP_MKNOD = 0x1b
376 CAP_SYS_ADMIN = 0x15 376 CAP_NET_ADMIN = 0xc
377 CAP_SYS_BOOT = 0x16 377 CAP_NET_BIND_SERVICE = 0xa
378 CAP_SYS_CHROOT = 0x12 378 CAP_NET_BROADCAST = 0xb
379 CAP_SYS_MODULE = 0x10 379 CAP_NET_RAW = 0xd
380 CAP_SYS_NICE = 0x17 380 CAP_SETFCAP = 0x1f
381 CAP_SYS_PACCT = 0x14 381 CAP_SETGID = 0x6
382 CAP_SYS_PTRACE = 0x13 382 CAP_SETPCAP = 0x8
383 CAP_SYS_RAWIO = 0x11 383 CAP_SETUID = 0x7
384 CAP_SYS_RESOURCE = 0x18 384 CAP_SYSLOG = 0x22
385 CAP_SYS_TIME = 0x19 385 CAP_SYS_ADMIN = 0x15
386 CAP_SYS_TTY_CONFIG = 0x1a 386 CAP_SYS_BOOT = 0x16
387 CAP_WAKE_ALARM = 0x23 387 CAP_SYS_CHROOT = 0x12
388 CBAUD = 0xff 388 CAP_SYS_MODULE = 0x10
389 CBAUDEX = 0x0 389 CAP_SYS_NICE = 0x17
390 CFLUSH = 0xf 390 CAP_SYS_PACCT = 0x14
391 CGROUP2_SUPER_MAGIC = 0x63677270 391 CAP_SYS_PTRACE = 0x13
392 CGROUP_SUPER_MAGIC = 0x27e0eb 392 CAP_SYS_RAWIO = 0x11
393 CIBAUD = 0xff0000 393 CAP_SYS_RESOURCE = 0x18
394 CLOCAL = 0x8000 394 CAP_SYS_TIME = 0x19
395 CLOCK_BOOTTIME = 0x7 395 CAP_SYS_TTY_CONFIG = 0x1a
396 CLOCK_BOOTTIME_ALARM = 0x9 396 CAP_WAKE_ALARM = 0x23
397 CLOCK_DEFAULT = 0x0 397 CBAUD = 0xff
398 CLOCK_EXT = 0x1 398 CBAUDEX = 0x0
399 CLOCK_INT = 0x2 399 CFLUSH = 0xf
400 CLOCK_MONOTONIC = 0x1 400 CGROUP2_SUPER_MAGIC = 0x63677270
401 CLOCK_MONOTONIC_COARSE = 0x6 401 CGROUP_SUPER_MAGIC = 0x27e0eb
402 CLOCK_MONOTONIC_RAW = 0x4 402 CIBAUD = 0xff0000
403 CLOCK_PROCESS_CPUTIME_ID = 0x2 403 CLOCAL = 0x8000
404 CLOCK_REALTIME = 0x0 404 CLOCK_BOOTTIME = 0x7
405 CLOCK_REALTIME_ALARM = 0x8 405 CLOCK_BOOTTIME_ALARM = 0x9
406 CLOCK_REALTIME_COARSE = 0x5 406 CLOCK_DEFAULT = 0x0
407 CLOCK_TAI = 0xb 407 CLOCK_EXT = 0x1
408 CLOCK_THREAD_CPUTIME_ID = 0x3 408 CLOCK_INT = 0x2
409 CLOCK_TXFROMRX = 0x4 409 CLOCK_MONOTONIC = 0x1
410 CLOCK_TXINT = 0x3 410 CLOCK_MONOTONIC_COARSE = 0x6
411 CLONE_CHILD_CLEARTID = 0x200000 411 CLOCK_MONOTONIC_RAW = 0x4
412 CLONE_CHILD_SETTID = 0x1000000 412 CLOCK_PROCESS_CPUTIME_ID = 0x2
413 CLONE_DETACHED = 0x400000 413 CLOCK_REALTIME = 0x0
414 CLONE_FILES = 0x400 414 CLOCK_REALTIME_ALARM = 0x8
415 CLONE_FS = 0x200 415 CLOCK_REALTIME_COARSE = 0x5
416 CLONE_IO = 0x80000000 416 CLOCK_TAI = 0xb
417 CLONE_NEWCGROUP = 0x2000000 417 CLOCK_THREAD_CPUTIME_ID = 0x3
418 CLONE_NEWIPC = 0x8000000 418 CLOCK_TXFROMRX = 0x4
419 CLONE_NEWNET = 0x40000000 419 CLOCK_TXINT = 0x3
420 CLONE_NEWNS = 0x20000 420 CLONE_ARGS_SIZE_VER0 = 0x40
421 CLONE_NEWPID = 0x20000000 421 CLONE_ARGS_SIZE_VER1 = 0x50
422 CLONE_NEWUSER = 0x10000000 422 CLONE_CHILD_CLEARTID = 0x200000
423 CLONE_NEWUTS = 0x4000000 423 CLONE_CHILD_SETTID = 0x1000000
424 CLONE_PARENT = 0x8000 424 CLONE_CLEAR_SIGHAND = 0x100000000
425 CLONE_PARENT_SETTID = 0x100000 425 CLONE_DETACHED = 0x400000
426 CLONE_PIDFD = 0x1000 426 CLONE_FILES = 0x400
427 CLONE_PTRACE = 0x2000 427 CLONE_FS = 0x200
428 CLONE_SETTLS = 0x80000 428 CLONE_IO = 0x80000000
429 CLONE_SIGHAND = 0x800 429 CLONE_NEWCGROUP = 0x2000000
430 CLONE_SYSVSEM = 0x40000 430 CLONE_NEWIPC = 0x8000000
431 CLONE_THREAD = 0x10000 431 CLONE_NEWNET = 0x40000000
432 CLONE_UNTRACED = 0x800000 432 CLONE_NEWNS = 0x20000
433 CLONE_VFORK = 0x4000 433 CLONE_NEWPID = 0x20000000
434 CLONE_VM = 0x100 434 CLONE_NEWUSER = 0x10000000
435 CMSPAR = 0x40000000 435 CLONE_NEWUTS = 0x4000000
436 CODA_SUPER_MAGIC = 0x73757245 436 CLONE_PARENT = 0x8000
437 CR0 = 0x0 437 CLONE_PARENT_SETTID = 0x100000
438 CR1 = 0x1000 438 CLONE_PIDFD = 0x1000
439 CR2 = 0x2000 439 CLONE_PTRACE = 0x2000
440 CR3 = 0x3000 440 CLONE_SETTLS = 0x80000
441 CRAMFS_MAGIC = 0x28cd3d45 441 CLONE_SIGHAND = 0x800
442 CRDLY = 0x3000 442 CLONE_SYSVSEM = 0x40000
443 CREAD = 0x800 443 CLONE_THREAD = 0x10000
444 CRTSCTS = 0x80000000 444 CLONE_UNTRACED = 0x800000
445 CRYPTO_MAX_NAME = 0x40 445 CLONE_VFORK = 0x4000
446 CRYPTO_MSG_MAX = 0x15 446 CLONE_VM = 0x100
447 CRYPTO_NR_MSGTYPES = 0x6 447 CMSPAR = 0x40000000
448 CRYPTO_REPORT_MAXSIZE = 0x160 448 CODA_SUPER_MAGIC = 0x73757245
449 CS5 = 0x0 449 CR0 = 0x0
450 CS6 = 0x100 450 CR1 = 0x1000
451 CS7 = 0x200 451 CR2 = 0x2000
452 CS8 = 0x300 452 CR3 = 0x3000
453 CSIGNAL = 0xff 453 CRAMFS_MAGIC = 0x28cd3d45
454 CSIZE = 0x300 454 CRDLY = 0x3000
455 CSTART = 0x11 455 CREAD = 0x800
456 CSTATUS = 0x0 456 CRTSCTS = 0x80000000
457 CSTOP = 0x13 457 CRYPTO_MAX_NAME = 0x40
458 CSTOPB = 0x400 458 CRYPTO_MSG_MAX = 0x15
459 CSUSP = 0x1a 459 CRYPTO_NR_MSGTYPES = 0x6
460 DAXFS_MAGIC = 0x64646178 460 CRYPTO_REPORT_MAXSIZE = 0x160
461 DEBUGFS_MAGIC = 0x64626720 461 CS5 = 0x0
462 DEVPTS_SUPER_MAGIC = 0x1cd1 462 CS6 = 0x100
463 DT_BLK = 0x6 463 CS7 = 0x200
464 DT_CHR = 0x2 464 CS8 = 0x300
465 DT_DIR = 0x4 465 CSIGNAL = 0xff
466 DT_FIFO = 0x1 466 CSIZE = 0x300
467 DT_LNK = 0xa 467 CSTART = 0x11
468 DT_REG = 0x8 468 CSTATUS = 0x0
469 DT_SOCK = 0xc 469 CSTOP = 0x13
470 DT_UNKNOWN = 0x0 470 CSTOPB = 0x400
471 DT_WHT = 0xe 471 CSUSP = 0x1a
472 ECHO = 0x8 472 DAXFS_MAGIC = 0x64646178
473 ECHOCTL = 0x40 473 DEBUGFS_MAGIC = 0x64626720
474 ECHOE = 0x2 474 DEVLINK_CMD_ESWITCH_MODE_GET = 0x1d
475 ECHOK = 0x4 475 DEVLINK_CMD_ESWITCH_MODE_SET = 0x1e
476 ECHOKE = 0x1 476 DEVLINK_GENL_MCGRP_CONFIG_NAME = "config"
477 ECHONL = 0x10 477 DEVLINK_GENL_NAME = "devlink"
478 ECHOPRT = 0x20 478 DEVLINK_GENL_VERSION = 0x1
479 ECRYPTFS_SUPER_MAGIC = 0xf15f 479 DEVLINK_SB_THRESHOLD_TO_ALPHA_MAX = 0x14
480 EFD_CLOEXEC = 0x80000 480 DEVPTS_SUPER_MAGIC = 0x1cd1
481 EFD_NONBLOCK = 0x800 481 DMA_BUF_MAGIC = 0x444d4142
482 EFD_SEMAPHORE = 0x1 482 DT_BLK = 0x6
483 EFIVARFS_MAGIC = 0xde5e81e4 483 DT_CHR = 0x2
484 EFS_SUPER_MAGIC = 0x414a53 484 DT_DIR = 0x4
485 ENCODING_DEFAULT = 0x0 485 DT_FIFO = 0x1
486 ENCODING_FM_MARK = 0x3 486 DT_LNK = 0xa
487 ENCODING_FM_SPACE = 0x4 487 DT_REG = 0x8
488 ENCODING_MANCHESTER = 0x5 488 DT_SOCK = 0xc
489 ENCODING_NRZ = 0x1 489 DT_UNKNOWN = 0x0
490 ENCODING_NRZI = 0x2 490 DT_WHT = 0xe
491 EPOLLERR = 0x8 491 ECHO = 0x8
492 EPOLLET = 0x80000000 492 ECHOCTL = 0x40
493 EPOLLEXCLUSIVE = 0x10000000 493 ECHOE = 0x2
494 EPOLLHUP = 0x10 494 ECHOK = 0x4
495 EPOLLIN = 0x1 495 ECHOKE = 0x1
496 EPOLLMSG = 0x400 496 ECHONL = 0x10
497 EPOLLONESHOT = 0x40000000 497 ECHOPRT = 0x20
498 EPOLLOUT = 0x4 498 ECRYPTFS_SUPER_MAGIC = 0xf15f
499 EPOLLPRI = 0x2 499 EFD_CLOEXEC = 0x80000
500 EPOLLRDBAND = 0x80 500 EFD_NONBLOCK = 0x800
501 EPOLLRDHUP = 0x2000 501 EFD_SEMAPHORE = 0x1
502 EPOLLRDNORM = 0x40 502 EFIVARFS_MAGIC = 0xde5e81e4
503 EPOLLWAKEUP = 0x20000000 503 EFS_SUPER_MAGIC = 0x414a53
504 EPOLLWRBAND = 0x200 504 ENCODING_DEFAULT = 0x0
505 EPOLLWRNORM = 0x100 505 ENCODING_FM_MARK = 0x3
506 EPOLL_CLOEXEC = 0x80000 506 ENCODING_FM_SPACE = 0x4
507 EPOLL_CTL_ADD = 0x1 507 ENCODING_MANCHESTER = 0x5
508 EPOLL_CTL_DEL = 0x2 508 ENCODING_NRZ = 0x1
509 EPOLL_CTL_MOD = 0x3 509 ENCODING_NRZI = 0x2
510 ETH_P_1588 = 0x88f7 510 EPOLLERR = 0x8
511 ETH_P_8021AD = 0x88a8 511 EPOLLET = 0x80000000
512 ETH_P_8021AH = 0x88e7 512 EPOLLEXCLUSIVE = 0x10000000
513 ETH_P_8021Q = 0x8100 513 EPOLLHUP = 0x10
514 ETH_P_80221 = 0x8917 514 EPOLLIN = 0x1
515 ETH_P_802_2 = 0x4 515 EPOLLMSG = 0x400
516 ETH_P_802_3 = 0x1 516 EPOLLONESHOT = 0x40000000
517 ETH_P_802_3_MIN = 0x600 517 EPOLLOUT = 0x4
518 ETH_P_802_EX1 = 0x88b5 518 EPOLLPRI = 0x2
519 ETH_P_AARP = 0x80f3 519 EPOLLRDBAND = 0x80
520 ETH_P_AF_IUCV = 0xfbfb 520 EPOLLRDHUP = 0x2000
521 ETH_P_ALL = 0x3 521 EPOLLRDNORM = 0x40
522 ETH_P_AOE = 0x88a2 522 EPOLLWAKEUP = 0x20000000
523 ETH_P_ARCNET = 0x1a 523 EPOLLWRBAND = 0x200
524 ETH_P_ARP = 0x806 524 EPOLLWRNORM = 0x100
525 ETH_P_ATALK = 0x809b 525 EPOLL_CLOEXEC = 0x80000
526 ETH_P_ATMFATE = 0x8884 526 EPOLL_CTL_ADD = 0x1
527 ETH_P_ATMMPOA = 0x884c 527 EPOLL_CTL_DEL = 0x2
528 ETH_P_AX25 = 0x2 528 EPOLL_CTL_MOD = 0x3
529 ETH_P_BATMAN = 0x4305 529 EROFS_SUPER_MAGIC_V1 = 0xe0f5e1e2
530 ETH_P_BPQ = 0x8ff 530 ETH_P_1588 = 0x88f7
531 ETH_P_CAIF = 0xf7 531 ETH_P_8021AD = 0x88a8
532 ETH_P_CAN = 0xc 532 ETH_P_8021AH = 0x88e7
533 ETH_P_CANFD = 0xd 533 ETH_P_8021Q = 0x8100
534 ETH_P_CONTROL = 0x16 534 ETH_P_80221 = 0x8917
535 ETH_P_CUST = 0x6006 535 ETH_P_802_2 = 0x4
536 ETH_P_DDCMP = 0x6 536 ETH_P_802_3 = 0x1
537 ETH_P_DEC = 0x6000 537 ETH_P_802_3_MIN = 0x600
538 ETH_P_DIAG = 0x6005 538 ETH_P_802_EX1 = 0x88b5
539 ETH_P_DNA_DL = 0x6001 539 ETH_P_AARP = 0x80f3
540 ETH_P_DNA_RC = 0x6002 540 ETH_P_AF_IUCV = 0xfbfb
541 ETH_P_DNA_RT = 0x6003 541 ETH_P_ALL = 0x3
542 ETH_P_DSA = 0x1b 542 ETH_P_AOE = 0x88a2
543 ETH_P_DSA_8021Q = 0xdadb 543 ETH_P_ARCNET = 0x1a
544 ETH_P_ECONET = 0x18 544 ETH_P_ARP = 0x806
545 ETH_P_EDSA = 0xdada 545 ETH_P_ATALK = 0x809b
546 ETH_P_ERSPAN = 0x88be 546 ETH_P_ATMFATE = 0x8884
547 ETH_P_ERSPAN2 = 0x22eb 547 ETH_P_ATMMPOA = 0x884c
548 ETH_P_FCOE = 0x8906 548 ETH_P_AX25 = 0x2
549 ETH_P_FIP = 0x8914 549 ETH_P_BATMAN = 0x4305
550 ETH_P_HDLC = 0x19 550 ETH_P_BPQ = 0x8ff
551 ETH_P_HSR = 0x892f 551 ETH_P_CAIF = 0xf7
552 ETH_P_IBOE = 0x8915 552 ETH_P_CAN = 0xc
553 ETH_P_IEEE802154 = 0xf6 553 ETH_P_CANFD = 0xd
554 ETH_P_IEEEPUP = 0xa00 554 ETH_P_CONTROL = 0x16
555 ETH_P_IEEEPUPAT = 0xa01 555 ETH_P_CUST = 0x6006
556 ETH_P_IFE = 0xed3e 556 ETH_P_DDCMP = 0x6
557 ETH_P_IP = 0x800 557 ETH_P_DEC = 0x6000
558 ETH_P_IPV6 = 0x86dd 558 ETH_P_DIAG = 0x6005
559 ETH_P_IPX = 0x8137 559 ETH_P_DNA_DL = 0x6001
560 ETH_P_IRDA = 0x17 560 ETH_P_DNA_RC = 0x6002
561 ETH_P_LAT = 0x6004 561 ETH_P_DNA_RT = 0x6003
562 ETH_P_LINK_CTL = 0x886c 562 ETH_P_DSA = 0x1b
563 ETH_P_LOCALTALK = 0x9 563 ETH_P_DSA_8021Q = 0xdadb
564 ETH_P_LOOP = 0x60 564 ETH_P_ECONET = 0x18
565 ETH_P_LOOPBACK = 0x9000 565 ETH_P_EDSA = 0xdada
566 ETH_P_MACSEC = 0x88e5 566 ETH_P_ERSPAN = 0x88be
567 ETH_P_MAP = 0xf9 567 ETH_P_ERSPAN2 = 0x22eb
568 ETH_P_MOBITEX = 0x15 568 ETH_P_FCOE = 0x8906
569 ETH_P_MPLS_MC = 0x8848 569 ETH_P_FIP = 0x8914
570 ETH_P_MPLS_UC = 0x8847 570 ETH_P_HDLC = 0x19
571 ETH_P_MVRP = 0x88f5 571 ETH_P_HSR = 0x892f
572 ETH_P_NCSI = 0x88f8 572 ETH_P_IBOE = 0x8915
573 ETH_P_NSH = 0x894f 573 ETH_P_IEEE802154 = 0xf6
574 ETH_P_PAE = 0x888e 574 ETH_P_IEEEPUP = 0xa00
575 ETH_P_PAUSE = 0x8808 575 ETH_P_IEEEPUPAT = 0xa01
576 ETH_P_PHONET = 0xf5 576 ETH_P_IFE = 0xed3e
577 ETH_P_PPPTALK = 0x10 577 ETH_P_IP = 0x800
578 ETH_P_PPP_DISC = 0x8863 578 ETH_P_IPV6 = 0x86dd
579 ETH_P_PPP_MP = 0x8 579 ETH_P_IPX = 0x8137
580 ETH_P_PPP_SES = 0x8864 580 ETH_P_IRDA = 0x17
581 ETH_P_PREAUTH = 0x88c7 581 ETH_P_LAT = 0x6004
582 ETH_P_PRP = 0x88fb 582 ETH_P_LINK_CTL = 0x886c
583 ETH_P_PUP = 0x200 583 ETH_P_LLDP = 0x88cc
584 ETH_P_PUPAT = 0x201 584 ETH_P_LOCALTALK = 0x9
585 ETH_P_QINQ1 = 0x9100 585 ETH_P_LOOP = 0x60
586 ETH_P_QINQ2 = 0x9200 586 ETH_P_LOOPBACK = 0x9000
587 ETH_P_QINQ3 = 0x9300 587 ETH_P_MACSEC = 0x88e5
588 ETH_P_RARP = 0x8035 588 ETH_P_MAP = 0xf9
589 ETH_P_SCA = 0x6007 589 ETH_P_MOBITEX = 0x15
590 ETH_P_SLOW = 0x8809 590 ETH_P_MPLS_MC = 0x8848
591 ETH_P_SNAP = 0x5 591 ETH_P_MPLS_UC = 0x8847
592 ETH_P_TDLS = 0x890d 592 ETH_P_MVRP = 0x88f5
593 ETH_P_TEB = 0x6558 593 ETH_P_NCSI = 0x88f8
594 ETH_P_TIPC = 0x88ca 594 ETH_P_NSH = 0x894f
595 ETH_P_TRAILER = 0x1c 595 ETH_P_PAE = 0x888e
596 ETH_P_TR_802_2 = 0x11 596 ETH_P_PAUSE = 0x8808
597 ETH_P_TSN = 0x22f0 597 ETH_P_PHONET = 0xf5
598 ETH_P_WAN_PPP = 0x7 598 ETH_P_PPPTALK = 0x10
599 ETH_P_WCCP = 0x883e 599 ETH_P_PPP_DISC = 0x8863
600 ETH_P_X25 = 0x805 600 ETH_P_PPP_MP = 0x8
601 ETH_P_XDSA = 0xf8 601 ETH_P_PPP_SES = 0x8864
602 EXABYTE_ENABLE_NEST = 0xf0 602 ETH_P_PREAUTH = 0x88c7
603 EXT2_SUPER_MAGIC = 0xef53 603 ETH_P_PRP = 0x88fb
604 EXT3_SUPER_MAGIC = 0xef53 604 ETH_P_PUP = 0x200
605 EXT4_SUPER_MAGIC = 0xef53 605 ETH_P_PUPAT = 0x201
606 EXTA = 0xe 606 ETH_P_QINQ1 = 0x9100
607 EXTB = 0xf 607 ETH_P_QINQ2 = 0x9200
608 EXTPROC = 0x10000000 608 ETH_P_QINQ3 = 0x9300
609 F2FS_SUPER_MAGIC = 0xf2f52010 609 ETH_P_RARP = 0x8035
610 FALLOC_FL_COLLAPSE_RANGE = 0x8 610 ETH_P_SCA = 0x6007
611 FALLOC_FL_INSERT_RANGE = 0x20 611 ETH_P_SLOW = 0x8809
612 FALLOC_FL_KEEP_SIZE = 0x1 612 ETH_P_SNAP = 0x5
613 FALLOC_FL_NO_HIDE_STALE = 0x4 613 ETH_P_TDLS = 0x890d
614 FALLOC_FL_PUNCH_HOLE = 0x2 614 ETH_P_TEB = 0x6558
615 FALLOC_FL_UNSHARE_RANGE = 0x40 615 ETH_P_TIPC = 0x88ca
616 FALLOC_FL_ZERO_RANGE = 0x10 616 ETH_P_TRAILER = 0x1c
617 FANOTIFY_METADATA_VERSION = 0x3 617 ETH_P_TR_802_2 = 0x11
618 FAN_ACCESS = 0x1 618 ETH_P_TSN = 0x22f0
619 FAN_ACCESS_PERM = 0x20000 619 ETH_P_WAN_PPP = 0x7
620 FAN_ALLOW = 0x1 620 ETH_P_WCCP = 0x883e
621 FAN_ALL_CLASS_BITS = 0xc 621 ETH_P_X25 = 0x805
622 FAN_ALL_EVENTS = 0x3b 622 ETH_P_XDSA = 0xf8
623 FAN_ALL_INIT_FLAGS = 0x3f 623 EXABYTE_ENABLE_NEST = 0xf0
624 FAN_ALL_MARK_FLAGS = 0xff 624 EXT2_SUPER_MAGIC = 0xef53
625 FAN_ALL_OUTGOING_EVENTS = 0x3403b 625 EXT3_SUPER_MAGIC = 0xef53
626 FAN_ALL_PERM_EVENTS = 0x30000 626 EXT4_SUPER_MAGIC = 0xef53
627 FAN_ATTRIB = 0x4 627 EXTA = 0xe
628 FAN_AUDIT = 0x10 628 EXTB = 0xf
629 FAN_CLASS_CONTENT = 0x4 629 EXTPROC = 0x10000000
630 FAN_CLASS_NOTIF = 0x0 630 F2FS_SUPER_MAGIC = 0xf2f52010
631 FAN_CLASS_PRE_CONTENT = 0x8 631 FALLOC_FL_COLLAPSE_RANGE = 0x8
632 FAN_CLOEXEC = 0x1 632 FALLOC_FL_INSERT_RANGE = 0x20
633 FAN_CLOSE = 0x18 633 FALLOC_FL_KEEP_SIZE = 0x1
634 FAN_CLOSE_NOWRITE = 0x10 634 FALLOC_FL_NO_HIDE_STALE = 0x4
635 FAN_CLOSE_WRITE = 0x8 635 FALLOC_FL_PUNCH_HOLE = 0x2
636 FAN_CREATE = 0x100 636 FALLOC_FL_UNSHARE_RANGE = 0x40
637 FAN_DELETE = 0x200 637 FALLOC_FL_ZERO_RANGE = 0x10
638 FAN_DELETE_SELF = 0x400 638 FANOTIFY_METADATA_VERSION = 0x3
639 FAN_DENY = 0x2 639 FAN_ACCESS = 0x1
640 FAN_ENABLE_AUDIT = 0x40 640 FAN_ACCESS_PERM = 0x20000
641 FAN_EVENT_INFO_TYPE_FID = 0x1 641 FAN_ALLOW = 0x1
642 FAN_EVENT_METADATA_LEN = 0x18 642 FAN_ALL_CLASS_BITS = 0xc
643 FAN_EVENT_ON_CHILD = 0x8000000 643 FAN_ALL_EVENTS = 0x3b
644 FAN_MARK_ADD = 0x1 644 FAN_ALL_INIT_FLAGS = 0x3f
645 FAN_MARK_DONT_FOLLOW = 0x4 645 FAN_ALL_MARK_FLAGS = 0xff
646 FAN_MARK_FILESYSTEM = 0x100 646 FAN_ALL_OUTGOING_EVENTS = 0x3403b
647 FAN_MARK_FLUSH = 0x80 647 FAN_ALL_PERM_EVENTS = 0x30000
648 FAN_MARK_IGNORED_MASK = 0x20 648 FAN_ATTRIB = 0x4
649 FAN_MARK_IGNORED_SURV_MODIFY = 0x40 649 FAN_AUDIT = 0x10
650 FAN_MARK_INODE = 0x0 650 FAN_CLASS_CONTENT = 0x4
651 FAN_MARK_MOUNT = 0x10 651 FAN_CLASS_NOTIF = 0x0
652 FAN_MARK_ONLYDIR = 0x8 652 FAN_CLASS_PRE_CONTENT = 0x8
653 FAN_MARK_REMOVE = 0x2 653 FAN_CLOEXEC = 0x1
654 FAN_MODIFY = 0x2 654 FAN_CLOSE = 0x18
655 FAN_MOVE = 0xc0 655 FAN_CLOSE_NOWRITE = 0x10
656 FAN_MOVED_FROM = 0x40 656 FAN_CLOSE_WRITE = 0x8
657 FAN_MOVED_TO = 0x80 657 FAN_CREATE = 0x100
658 FAN_MOVE_SELF = 0x800 658 FAN_DELETE = 0x200
659 FAN_NOFD = -0x1 659 FAN_DELETE_SELF = 0x400
660 FAN_NONBLOCK = 0x2 660 FAN_DENY = 0x2
661 FAN_ONDIR = 0x40000000 661 FAN_ENABLE_AUDIT = 0x40
662 FAN_OPEN = 0x20 662 FAN_EVENT_INFO_TYPE_FID = 0x1
663 FAN_OPEN_EXEC = 0x1000 663 FAN_EVENT_METADATA_LEN = 0x18
664 FAN_OPEN_EXEC_PERM = 0x40000 664 FAN_EVENT_ON_CHILD = 0x8000000
665 FAN_OPEN_PERM = 0x10000 665 FAN_MARK_ADD = 0x1
666 FAN_Q_OVERFLOW = 0x4000 666 FAN_MARK_DONT_FOLLOW = 0x4
667 FAN_REPORT_FID = 0x200 667 FAN_MARK_FILESYSTEM = 0x100
668 FAN_REPORT_TID = 0x100 668 FAN_MARK_FLUSH = 0x80
669 FAN_UNLIMITED_MARKS = 0x20 669 FAN_MARK_IGNORED_MASK = 0x20
670 FAN_UNLIMITED_QUEUE = 0x10 670 FAN_MARK_IGNORED_SURV_MODIFY = 0x40
671 FD_CLOEXEC = 0x1 671 FAN_MARK_INODE = 0x0
672 FD_SETSIZE = 0x400 672 FAN_MARK_MOUNT = 0x10
673 FF0 = 0x0 673 FAN_MARK_ONLYDIR = 0x8
674 FF1 = 0x4000 674 FAN_MARK_REMOVE = 0x2
675 FFDLY = 0x4000 675 FAN_MODIFY = 0x2
676 FLUSHO = 0x800000 676 FAN_MOVE = 0xc0
677 FS_ENCRYPTION_MODE_ADIANTUM = 0x9 677 FAN_MOVED_FROM = 0x40
678 FS_ENCRYPTION_MODE_AES_128_CBC = 0x5 678 FAN_MOVED_TO = 0x80
679 FS_ENCRYPTION_MODE_AES_128_CTS = 0x6 679 FAN_MOVE_SELF = 0x800
680 FS_ENCRYPTION_MODE_AES_256_CBC = 0x3 680 FAN_NOFD = -0x1
681 FS_ENCRYPTION_MODE_AES_256_CTS = 0x4 681 FAN_NONBLOCK = 0x2
682 FS_ENCRYPTION_MODE_AES_256_GCM = 0x2 682 FAN_ONDIR = 0x40000000
683 FS_ENCRYPTION_MODE_AES_256_XTS = 0x1 683 FAN_OPEN = 0x20
684 FS_ENCRYPTION_MODE_INVALID = 0x0 684 FAN_OPEN_EXEC = 0x1000
685 FS_ENCRYPTION_MODE_SPECK128_256_CTS = 0x8 685 FAN_OPEN_EXEC_PERM = 0x40000
686 FS_ENCRYPTION_MODE_SPECK128_256_XTS = 0x7 686 FAN_OPEN_PERM = 0x10000
687 FS_IOC_GET_ENCRYPTION_POLICY = 0x800c6615 687 FAN_Q_OVERFLOW = 0x4000
688 FS_IOC_GET_ENCRYPTION_PWSALT = 0x80106614 688 FAN_REPORT_FID = 0x200
689 FS_IOC_SET_ENCRYPTION_POLICY = 0x400c6613 689 FAN_REPORT_TID = 0x100
690 FS_KEY_DESCRIPTOR_SIZE = 0x8 690 FAN_UNLIMITED_MARKS = 0x20
691 FS_KEY_DESC_PREFIX = "fscrypt:" 691 FAN_UNLIMITED_QUEUE = 0x10
692 FS_KEY_DESC_PREFIX_SIZE = 0x8 692 FD_CLOEXEC = 0x1
693 FS_MAX_KEY_SIZE = 0x40 693 FD_SETSIZE = 0x400
694 FS_POLICY_FLAGS_PAD_16 = 0x2 694 FF0 = 0x0
695 FS_POLICY_FLAGS_PAD_32 = 0x3 695 FF1 = 0x4000
696 FS_POLICY_FLAGS_PAD_4 = 0x0 696 FFDLY = 0x4000
697 FS_POLICY_FLAGS_PAD_8 = 0x1 697 FLUSHO = 0x800000
698 FS_POLICY_FLAGS_PAD_MASK = 0x3 698 FSCRYPT_KEY_DESCRIPTOR_SIZE = 0x8
699 FS_POLICY_FLAGS_VALID = 0x7 699 FSCRYPT_KEY_DESC_PREFIX = "fscrypt:"
700 FUTEXFS_SUPER_MAGIC = 0xbad1dea 700 FSCRYPT_KEY_DESC_PREFIX_SIZE = 0x8
701 F_ADD_SEALS = 0x409 701 FSCRYPT_KEY_IDENTIFIER_SIZE = 0x10
702 F_DUPFD = 0x0 702 FSCRYPT_KEY_REMOVAL_STATUS_FLAG_FILES_BUSY = 0x1
703 F_DUPFD_CLOEXEC = 0x406 703 FSCRYPT_KEY_REMOVAL_STATUS_FLAG_OTHER_USERS = 0x2
704 F_EXLCK = 0x4 704 FSCRYPT_KEY_SPEC_TYPE_DESCRIPTOR = 0x1
705 F_GETFD = 0x1 705 FSCRYPT_KEY_SPEC_TYPE_IDENTIFIER = 0x2
706 F_GETFL = 0x3 706 FSCRYPT_KEY_STATUS_ABSENT = 0x1
707 F_GETLEASE = 0x401 707 FSCRYPT_KEY_STATUS_FLAG_ADDED_BY_SELF = 0x1
708 F_GETLK = 0x5 708 FSCRYPT_KEY_STATUS_INCOMPLETELY_REMOVED = 0x3
709 F_GETLK64 = 0xc 709 FSCRYPT_KEY_STATUS_PRESENT = 0x2
710 F_GETOWN = 0x9 710 FSCRYPT_MAX_KEY_SIZE = 0x40
711 F_GETOWN_EX = 0x10 711 FSCRYPT_MODE_ADIANTUM = 0x9
712 F_GETPIPE_SZ = 0x408 712 FSCRYPT_MODE_AES_128_CBC = 0x5
713 F_GETSIG = 0xb 713 FSCRYPT_MODE_AES_128_CTS = 0x6
714 F_GET_FILE_RW_HINT = 0x40d 714 FSCRYPT_MODE_AES_256_CTS = 0x4
715 F_GET_RW_HINT = 0x40b 715 FSCRYPT_MODE_AES_256_XTS = 0x1
716 F_GET_SEALS = 0x40a 716 FSCRYPT_POLICY_FLAGS_PAD_16 = 0x2
717 F_LOCK = 0x1 717 FSCRYPT_POLICY_FLAGS_PAD_32 = 0x3
718 F_NOTIFY = 0x402 718 FSCRYPT_POLICY_FLAGS_PAD_4 = 0x0
719 F_OFD_GETLK = 0x24 719 FSCRYPT_POLICY_FLAGS_PAD_8 = 0x1
720 F_OFD_SETLK = 0x25 720 FSCRYPT_POLICY_FLAGS_PAD_MASK = 0x3
721 F_OFD_SETLKW = 0x26 721 FSCRYPT_POLICY_FLAGS_VALID = 0xf
722 F_OK = 0x0 722 FSCRYPT_POLICY_FLAG_DIRECT_KEY = 0x4
723 F_RDLCK = 0x0 723 FSCRYPT_POLICY_FLAG_IV_INO_LBLK_64 = 0x8
724 F_SEAL_FUTURE_WRITE = 0x10 724 FSCRYPT_POLICY_V1 = 0x0
725 F_SEAL_GROW = 0x4 725 FSCRYPT_POLICY_V2 = 0x2
726 F_SEAL_SEAL = 0x1 726 FS_ENCRYPTION_MODE_ADIANTUM = 0x9
727 F_SEAL_SHRINK = 0x2 727 FS_ENCRYPTION_MODE_AES_128_CBC = 0x5
728 F_SEAL_WRITE = 0x8 728 FS_ENCRYPTION_MODE_AES_128_CTS = 0x6
729 F_SETFD = 0x2 729 FS_ENCRYPTION_MODE_AES_256_CBC = 0x3
730 F_SETFL = 0x4 730 FS_ENCRYPTION_MODE_AES_256_CTS = 0x4
731 F_SETLEASE = 0x400 731 FS_ENCRYPTION_MODE_AES_256_GCM = 0x2
732 F_SETLK = 0x6 732 FS_ENCRYPTION_MODE_AES_256_XTS = 0x1
733 F_SETLK64 = 0xd 733 FS_ENCRYPTION_MODE_INVALID = 0x0
734 F_SETLKW = 0x7 734 FS_ENCRYPTION_MODE_SPECK128_256_CTS = 0x8
735 F_SETLKW64 = 0xe 735 FS_ENCRYPTION_MODE_SPECK128_256_XTS = 0x7
736 F_SETOWN = 0x8 736 FS_IOC_ADD_ENCRYPTION_KEY = 0xc0506617
737 F_SETOWN_EX = 0xf 737 FS_IOC_GET_ENCRYPTION_KEY_STATUS = 0xc080661a
738 F_SETPIPE_SZ = 0x407 738 FS_IOC_GET_ENCRYPTION_POLICY = 0x800c6615
739 F_SETSIG = 0xa 739 FS_IOC_GET_ENCRYPTION_POLICY_EX = 0xc0096616
740 F_SET_FILE_RW_HINT = 0x40e 740 FS_IOC_GET_ENCRYPTION_PWSALT = 0x80106614
741 F_SET_RW_HINT = 0x40c 741 FS_IOC_REMOVE_ENCRYPTION_KEY = 0xc0406618
742 F_SHLCK = 0x8 742 FS_IOC_REMOVE_ENCRYPTION_KEY_ALL_USERS = 0xc0406619
743 F_TEST = 0x3 743 FS_IOC_SET_ENCRYPTION_POLICY = 0x400c6613
744 F_TLOCK = 0x2 744 FS_KEY_DESCRIPTOR_SIZE = 0x8
745 F_ULOCK = 0x0 745 FS_KEY_DESC_PREFIX = "fscrypt:"
746 F_UNLCK = 0x2 746 FS_KEY_DESC_PREFIX_SIZE = 0x8
747 F_WRLCK = 0x1 747 FS_MAX_KEY_SIZE = 0x40
748 GENL_ADMIN_PERM = 0x1 748 FS_POLICY_FLAGS_PAD_16 = 0x2
749 GENL_CMD_CAP_DO = 0x2 749 FS_POLICY_FLAGS_PAD_32 = 0x3
750 GENL_CMD_CAP_DUMP = 0x4 750 FS_POLICY_FLAGS_PAD_4 = 0x0
751 GENL_CMD_CAP_HASPOL = 0x8 751 FS_POLICY_FLAGS_PAD_8 = 0x1
752 GENL_HDRLEN = 0x4 752 FS_POLICY_FLAGS_PAD_MASK = 0x3
753 GENL_ID_CTRL = 0x10 753 FS_POLICY_FLAGS_VALID = 0xf
754 GENL_ID_PMCRAID = 0x12 754 FUTEXFS_SUPER_MAGIC = 0xbad1dea
755 GENL_ID_VFS_DQUOT = 0x11 755 F_ADD_SEALS = 0x409
756 GENL_MAX_ID = 0x3ff 756 F_DUPFD = 0x0
757 GENL_MIN_ID = 0x10 757 F_DUPFD_CLOEXEC = 0x406
758 GENL_NAMSIZ = 0x10 758 F_EXLCK = 0x4
759 GENL_START_ALLOC = 0x13 759 F_GETFD = 0x1
760 GENL_UNS_ADMIN_PERM = 0x10 760 F_GETFL = 0x3
761 GRND_NONBLOCK = 0x1 761 F_GETLEASE = 0x401
762 GRND_RANDOM = 0x2 762 F_GETLK = 0x5
763 HDIO_DRIVE_CMD = 0x31f 763 F_GETLK64 = 0xc
764 HDIO_DRIVE_CMD_AEB = 0x31e 764 F_GETOWN = 0x9
765 HDIO_DRIVE_CMD_HDR_SIZE = 0x4 765 F_GETOWN_EX = 0x10
766 HDIO_DRIVE_HOB_HDR_SIZE = 0x8 766 F_GETPIPE_SZ = 0x408
767 HDIO_DRIVE_RESET = 0x31c 767 F_GETSIG = 0xb
768 HDIO_DRIVE_TASK = 0x31e 768 F_GET_FILE_RW_HINT = 0x40d
769 HDIO_DRIVE_TASKFILE = 0x31d 769 F_GET_RW_HINT = 0x40b
770 HDIO_DRIVE_TASK_HDR_SIZE = 0x8 770 F_GET_SEALS = 0x40a
771 HDIO_GETGEO = 0x301 771 F_LOCK = 0x1
772 HDIO_GET_32BIT = 0x309 772 F_NOTIFY = 0x402
773 HDIO_GET_ACOUSTIC = 0x30f 773 F_OFD_GETLK = 0x24
774 HDIO_GET_ADDRESS = 0x310 774 F_OFD_SETLK = 0x25
775 HDIO_GET_BUSSTATE = 0x31a 775 F_OFD_SETLKW = 0x26
776 HDIO_GET_DMA = 0x30b 776 F_OK = 0x0
777 HDIO_GET_IDENTITY = 0x30d 777 F_RDLCK = 0x0
778 HDIO_GET_KEEPSETTINGS = 0x308 778 F_SEAL_FUTURE_WRITE = 0x10
779 HDIO_GET_MULTCOUNT = 0x304 779 F_SEAL_GROW = 0x4
780 HDIO_GET_NICE = 0x30c 780 F_SEAL_SEAL = 0x1
781 HDIO_GET_NOWERR = 0x30a 781 F_SEAL_SHRINK = 0x2
782 HDIO_GET_QDMA = 0x305 782 F_SEAL_WRITE = 0x8
783 HDIO_GET_UNMASKINTR = 0x302 783 F_SETFD = 0x2
784 HDIO_GET_WCACHE = 0x30e 784 F_SETFL = 0x4
785 HDIO_OBSOLETE_IDENTITY = 0x307 785 F_SETLEASE = 0x400
786 HDIO_SCAN_HWIF = 0x328 786 F_SETLK = 0x6
787 HDIO_SET_32BIT = 0x324 787 F_SETLK64 = 0xd
788 HDIO_SET_ACOUSTIC = 0x32c 788 F_SETLKW = 0x7
789 HDIO_SET_ADDRESS = 0x32f 789 F_SETLKW64 = 0xe
790 HDIO_SET_BUSSTATE = 0x32d 790 F_SETOWN = 0x8
791 HDIO_SET_DMA = 0x326 791 F_SETOWN_EX = 0xf
792 HDIO_SET_KEEPSETTINGS = 0x323 792 F_SETPIPE_SZ = 0x407
793 HDIO_SET_MULTCOUNT = 0x321 793 F_SETSIG = 0xa
794 HDIO_SET_NICE = 0x329 794 F_SET_FILE_RW_HINT = 0x40e
795 HDIO_SET_NOWERR = 0x325 795 F_SET_RW_HINT = 0x40c
796 HDIO_SET_PIO_MODE = 0x327 796 F_SHLCK = 0x8
797 HDIO_SET_QDMA = 0x32e 797 F_TEST = 0x3
798 HDIO_SET_UNMASKINTR = 0x322 798 F_TLOCK = 0x2
799 HDIO_SET_WCACHE = 0x32b 799 F_ULOCK = 0x0
800 HDIO_SET_XFER = 0x306 800 F_UNLCK = 0x2
801 HDIO_TRISTATE_HWIF = 0x31b 801 F_WRLCK = 0x1
802 HDIO_UNREGISTER_HWIF = 0x32a 802 GENL_ADMIN_PERM = 0x1
803 HOSTFS_SUPER_MAGIC = 0xc0ffee 803 GENL_CMD_CAP_DO = 0x2
804 HPFS_SUPER_MAGIC = 0xf995e849 804 GENL_CMD_CAP_DUMP = 0x4
805 HUGETLBFS_MAGIC = 0x958458f6 805 GENL_CMD_CAP_HASPOL = 0x8
806 HUPCL = 0x4000 806 GENL_HDRLEN = 0x4
807 IBSHIFT = 0x10 807 GENL_ID_CTRL = 0x10
808 ICANON = 0x100 808 GENL_ID_PMCRAID = 0x12
809 ICMPV6_FILTER = 0x1 809 GENL_ID_VFS_DQUOT = 0x11
810 ICRNL = 0x100 810 GENL_MAX_ID = 0x3ff
811 IEXTEN = 0x400 811 GENL_MIN_ID = 0x10
812 IFA_F_DADFAILED = 0x8 812 GENL_NAMSIZ = 0x10
813 IFA_F_DEPRECATED = 0x20 813 GENL_START_ALLOC = 0x13
814 IFA_F_HOMEADDRESS = 0x10 814 GENL_UNS_ADMIN_PERM = 0x10
815 IFA_F_MANAGETEMPADDR = 0x100 815 GRND_NONBLOCK = 0x1
816 IFA_F_MCAUTOJOIN = 0x400 816 GRND_RANDOM = 0x2
817 IFA_F_NODAD = 0x2 817 HDIO_DRIVE_CMD = 0x31f
818 IFA_F_NOPREFIXROUTE = 0x200 818 HDIO_DRIVE_CMD_AEB = 0x31e
819 IFA_F_OPTIMISTIC = 0x4 819 HDIO_DRIVE_CMD_HDR_SIZE = 0x4
820 IFA_F_PERMANENT = 0x80 820 HDIO_DRIVE_HOB_HDR_SIZE = 0x8
821 IFA_F_SECONDARY = 0x1 821 HDIO_DRIVE_RESET = 0x31c
822 IFA_F_STABLE_PRIVACY = 0x800 822 HDIO_DRIVE_TASK = 0x31e
823 IFA_F_TEMPORARY = 0x1 823 HDIO_DRIVE_TASKFILE = 0x31d
824 IFA_F_TENTATIVE = 0x40 824 HDIO_DRIVE_TASK_HDR_SIZE = 0x8
825 IFA_MAX = 0xa 825 HDIO_GETGEO = 0x301
826 IFF_ALLMULTI = 0x200 826 HDIO_GET_32BIT = 0x309
827 IFF_ATTACH_QUEUE = 0x200 827 HDIO_GET_ACOUSTIC = 0x30f
828 IFF_AUTOMEDIA = 0x4000 828 HDIO_GET_ADDRESS = 0x310
829 IFF_BROADCAST = 0x2 829 HDIO_GET_BUSSTATE = 0x31a
830 IFF_DEBUG = 0x4 830 HDIO_GET_DMA = 0x30b
831 IFF_DETACH_QUEUE = 0x400 831 HDIO_GET_IDENTITY = 0x30d
832 IFF_DORMANT = 0x20000 832 HDIO_GET_KEEPSETTINGS = 0x308
833 IFF_DYNAMIC = 0x8000 833 HDIO_GET_MULTCOUNT = 0x304
834 IFF_ECHO = 0x40000 834 HDIO_GET_NICE = 0x30c
835 IFF_LOOPBACK = 0x8 835 HDIO_GET_NOWERR = 0x30a
836 IFF_LOWER_UP = 0x10000 836 HDIO_GET_QDMA = 0x305
837 IFF_MASTER = 0x400 837 HDIO_GET_UNMASKINTR = 0x302
838 IFF_MULTICAST = 0x1000 838 HDIO_GET_WCACHE = 0x30e
839 IFF_MULTI_QUEUE = 0x100 839 HDIO_OBSOLETE_IDENTITY = 0x307
840 IFF_NAPI = 0x10 840 HDIO_SCAN_HWIF = 0x328
841 IFF_NAPI_FRAGS = 0x20 841 HDIO_SET_32BIT = 0x324
842 IFF_NOARP = 0x80 842 HDIO_SET_ACOUSTIC = 0x32c
843 IFF_NOFILTER = 0x1000 843 HDIO_SET_ADDRESS = 0x32f
844 IFF_NOTRAILERS = 0x20 844 HDIO_SET_BUSSTATE = 0x32d
845 IFF_NO_PI = 0x1000 845 HDIO_SET_DMA = 0x326
846 IFF_ONE_QUEUE = 0x2000 846 HDIO_SET_KEEPSETTINGS = 0x323
847 IFF_PERSIST = 0x800 847 HDIO_SET_MULTCOUNT = 0x321
848 IFF_POINTOPOINT = 0x10 848 HDIO_SET_NICE = 0x329
849 IFF_PORTSEL = 0x2000 849 HDIO_SET_NOWERR = 0x325
850 IFF_PROMISC = 0x100 850 HDIO_SET_PIO_MODE = 0x327
851 IFF_RUNNING = 0x40 851 HDIO_SET_QDMA = 0x32e
852 IFF_SLAVE = 0x800 852 HDIO_SET_UNMASKINTR = 0x322
853 IFF_TAP = 0x2 853 HDIO_SET_WCACHE = 0x32b
854 IFF_TUN = 0x1 854 HDIO_SET_XFER = 0x306
855 IFF_TUN_EXCL = 0x8000 855 HDIO_TRISTATE_HWIF = 0x31b
856 IFF_UP = 0x1 856 HDIO_UNREGISTER_HWIF = 0x32a
857 IFF_VNET_HDR = 0x4000 857 HOSTFS_SUPER_MAGIC = 0xc0ffee
858 IFF_VOLATILE = 0x70c5a 858 HPFS_SUPER_MAGIC = 0xf995e849
859 IFNAMSIZ = 0x10 859 HUGETLBFS_MAGIC = 0x958458f6
860 IGNBRK = 0x1 860 HUPCL = 0x4000
861 IGNCR = 0x80 861 IBSHIFT = 0x10
862 IGNPAR = 0x4 862 ICANON = 0x100
863 IMAXBEL = 0x2000 863 ICMPV6_FILTER = 0x1
864 INLCR = 0x40 864 ICRNL = 0x100
865 INPCK = 0x10 865 IEXTEN = 0x400
866 IN_ACCESS = 0x1 866 IFA_F_DADFAILED = 0x8
867 IN_ALL_EVENTS = 0xfff 867 IFA_F_DEPRECATED = 0x20
868 IN_ATTRIB = 0x4 868 IFA_F_HOMEADDRESS = 0x10
869 IN_CLASSA_HOST = 0xffffff 869 IFA_F_MANAGETEMPADDR = 0x100
870 IN_CLASSA_MAX = 0x80 870 IFA_F_MCAUTOJOIN = 0x400
871 IN_CLASSA_NET = 0xff000000 871 IFA_F_NODAD = 0x2
872 IN_CLASSA_NSHIFT = 0x18 872 IFA_F_NOPREFIXROUTE = 0x200
873 IN_CLASSB_HOST = 0xffff 873 IFA_F_OPTIMISTIC = 0x4
874 IN_CLASSB_MAX = 0x10000 874 IFA_F_PERMANENT = 0x80
875 IN_CLASSB_NET = 0xffff0000 875 IFA_F_SECONDARY = 0x1
876 IN_CLASSB_NSHIFT = 0x10 876 IFA_F_STABLE_PRIVACY = 0x800
877 IN_CLASSC_HOST = 0xff 877 IFA_F_TEMPORARY = 0x1
878 IN_CLASSC_NET = 0xffffff00 878 IFA_F_TENTATIVE = 0x40
879 IN_CLASSC_NSHIFT = 0x8 879 IFA_MAX = 0xa
880 IN_CLOEXEC = 0x80000 880 IFF_ALLMULTI = 0x200
881 IN_CLOSE = 0x18 881 IFF_ATTACH_QUEUE = 0x200
882 IN_CLOSE_NOWRITE = 0x10 882 IFF_AUTOMEDIA = 0x4000
883 IN_CLOSE_WRITE = 0x8 883 IFF_BROADCAST = 0x2
884 IN_CREATE = 0x100 884 IFF_DEBUG = 0x4
885 IN_DELETE = 0x200 885 IFF_DETACH_QUEUE = 0x400
886 IN_DELETE_SELF = 0x400 886 IFF_DORMANT = 0x20000
887 IN_DONT_FOLLOW = 0x2000000 887 IFF_DYNAMIC = 0x8000
888 IN_EXCL_UNLINK = 0x4000000 888 IFF_ECHO = 0x40000
889 IN_IGNORED = 0x8000 889 IFF_LOOPBACK = 0x8
890 IN_ISDIR = 0x40000000 890 IFF_LOWER_UP = 0x10000
891 IN_LOOPBACKNET = 0x7f 891 IFF_MASTER = 0x400
892 IN_MASK_ADD = 0x20000000 892 IFF_MULTICAST = 0x1000
893 IN_MASK_CREATE = 0x10000000 893 IFF_MULTI_QUEUE = 0x100
894 IN_MODIFY = 0x2 894 IFF_NAPI = 0x10
895 IN_MOVE = 0xc0 895 IFF_NAPI_FRAGS = 0x20
896 IN_MOVED_FROM = 0x40 896 IFF_NOARP = 0x80
897 IN_MOVED_TO = 0x80 897 IFF_NOFILTER = 0x1000
898 IN_MOVE_SELF = 0x800 898 IFF_NOTRAILERS = 0x20
899 IN_NONBLOCK = 0x800 899 IFF_NO_PI = 0x1000
900 IN_ONESHOT = 0x80000000 900 IFF_ONE_QUEUE = 0x2000
901 IN_ONLYDIR = 0x1000000 901 IFF_PERSIST = 0x800
902 IN_OPEN = 0x20 902 IFF_POINTOPOINT = 0x10
903 IN_Q_OVERFLOW = 0x4000 903 IFF_PORTSEL = 0x2000
904 IN_UNMOUNT = 0x2000 904 IFF_PROMISC = 0x100
905 IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x200007b9 905 IFF_RUNNING = 0x40
906 IPPROTO_AH = 0x33 906 IFF_SLAVE = 0x800
907 IPPROTO_BEETPH = 0x5e 907 IFF_TAP = 0x2
908 IPPROTO_COMP = 0x6c 908 IFF_TUN = 0x1
909 IPPROTO_DCCP = 0x21 909 IFF_TUN_EXCL = 0x8000
910 IPPROTO_DSTOPTS = 0x3c 910 IFF_UP = 0x1
911 IPPROTO_EGP = 0x8 911 IFF_VNET_HDR = 0x4000
912 IPPROTO_ENCAP = 0x62 912 IFF_VOLATILE = 0x70c5a
913 IPPROTO_ESP = 0x32 913 IFNAMSIZ = 0x10
914 IPPROTO_FRAGMENT = 0x2c 914 IGNBRK = 0x1
915 IPPROTO_GRE = 0x2f 915 IGNCR = 0x80
916 IPPROTO_HOPOPTS = 0x0 916 IGNPAR = 0x4
917 IPPROTO_ICMP = 0x1 917 IMAXBEL = 0x2000
918 IPPROTO_ICMPV6 = 0x3a 918 INLCR = 0x40
919 IPPROTO_IDP = 0x16 919 INPCK = 0x10
920 IPPROTO_IGMP = 0x2 920 IN_ACCESS = 0x1
921 IPPROTO_IP = 0x0 921 IN_ALL_EVENTS = 0xfff
922 IPPROTO_IPIP = 0x4 922 IN_ATTRIB = 0x4
923 IPPROTO_IPV6 = 0x29 923 IN_CLASSA_HOST = 0xffffff
924 IPPROTO_MH = 0x87 924 IN_CLASSA_MAX = 0x80
925 IPPROTO_MPLS = 0x89 925 IN_CLASSA_NET = 0xff000000
926 IPPROTO_MTP = 0x5c 926 IN_CLASSA_NSHIFT = 0x18
927 IPPROTO_NONE = 0x3b 927 IN_CLASSB_HOST = 0xffff
928 IPPROTO_PIM = 0x67 928 IN_CLASSB_MAX = 0x10000
929 IPPROTO_PUP = 0xc 929 IN_CLASSB_NET = 0xffff0000
930 IPPROTO_RAW = 0xff 930 IN_CLASSB_NSHIFT = 0x10
931 IPPROTO_ROUTING = 0x2b 931 IN_CLASSC_HOST = 0xff
932 IPPROTO_RSVP = 0x2e 932 IN_CLASSC_NET = 0xffffff00
933 IPPROTO_SCTP = 0x84 933 IN_CLASSC_NSHIFT = 0x8
934 IPPROTO_TCP = 0x6 934 IN_CLOEXEC = 0x80000
935 IPPROTO_TP = 0x1d 935 IN_CLOSE = 0x18
936 IPPROTO_UDP = 0x11 936 IN_CLOSE_NOWRITE = 0x10
937 IPPROTO_UDPLITE = 0x88 937 IN_CLOSE_WRITE = 0x8
938 IPV6_2292DSTOPTS = 0x4 938 IN_CREATE = 0x100
939 IPV6_2292HOPLIMIT = 0x8 939 IN_DELETE = 0x200
940 IPV6_2292HOPOPTS = 0x3 940 IN_DELETE_SELF = 0x400
941 IPV6_2292PKTINFO = 0x2 941 IN_DONT_FOLLOW = 0x2000000
942 IPV6_2292PKTOPTIONS = 0x6 942 IN_EXCL_UNLINK = 0x4000000
943 IPV6_2292RTHDR = 0x5 943 IN_IGNORED = 0x8000
944 IPV6_ADDRFORM = 0x1 944 IN_ISDIR = 0x40000000
945 IPV6_ADDR_PREFERENCES = 0x48 945 IN_LOOPBACKNET = 0x7f
946 IPV6_ADD_MEMBERSHIP = 0x14 946 IN_MASK_ADD = 0x20000000
947 IPV6_AUTHHDR = 0xa 947 IN_MASK_CREATE = 0x10000000
948 IPV6_AUTOFLOWLABEL = 0x46 948 IN_MODIFY = 0x2
949 IPV6_CHECKSUM = 0x7 949 IN_MOVE = 0xc0
950 IPV6_DONTFRAG = 0x3e 950 IN_MOVED_FROM = 0x40
951 IPV6_DROP_MEMBERSHIP = 0x15 951 IN_MOVED_TO = 0x80
952 IPV6_DSTOPTS = 0x3b 952 IN_MOVE_SELF = 0x800
953 IPV6_FREEBIND = 0x4e 953 IN_NONBLOCK = 0x800
954 IPV6_HDRINCL = 0x24 954 IN_ONESHOT = 0x80000000
955 IPV6_HOPLIMIT = 0x34 955 IN_ONLYDIR = 0x1000000
956 IPV6_HOPOPTS = 0x36 956 IN_OPEN = 0x20
957 IPV6_IPSEC_POLICY = 0x22 957 IN_Q_OVERFLOW = 0x4000
958 IPV6_JOIN_ANYCAST = 0x1b 958 IN_UNMOUNT = 0x2000
959 IPV6_JOIN_GROUP = 0x14 959 IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x200007b9
960 IPV6_LEAVE_ANYCAST = 0x1c 960 IPPROTO_AH = 0x33
961 IPV6_LEAVE_GROUP = 0x15 961 IPPROTO_BEETPH = 0x5e
962 IPV6_MINHOPCOUNT = 0x49 962 IPPROTO_COMP = 0x6c
963 IPV6_MTU = 0x18 963 IPPROTO_DCCP = 0x21
964 IPV6_MTU_DISCOVER = 0x17 964 IPPROTO_DSTOPTS = 0x3c
965 IPV6_MULTICAST_ALL = 0x1d 965 IPPROTO_EGP = 0x8
966 IPV6_MULTICAST_HOPS = 0x12 966 IPPROTO_ENCAP = 0x62
967 IPV6_MULTICAST_IF = 0x11 967 IPPROTO_ESP = 0x32
968 IPV6_MULTICAST_LOOP = 0x13 968 IPPROTO_FRAGMENT = 0x2c
969 IPV6_NEXTHOP = 0x9 969 IPPROTO_GRE = 0x2f
970 IPV6_ORIGDSTADDR = 0x4a 970 IPPROTO_HOPOPTS = 0x0
971 IPV6_PATHMTU = 0x3d 971 IPPROTO_ICMP = 0x1
972 IPV6_PKTINFO = 0x32 972 IPPROTO_ICMPV6 = 0x3a
973 IPV6_PMTUDISC_DO = 0x2 973 IPPROTO_IDP = 0x16
974 IPV6_PMTUDISC_DONT = 0x0 974 IPPROTO_IGMP = 0x2
975 IPV6_PMTUDISC_INTERFACE = 0x4 975 IPPROTO_IP = 0x0
976 IPV6_PMTUDISC_OMIT = 0x5 976 IPPROTO_IPIP = 0x4
977 IPV6_PMTUDISC_PROBE = 0x3 977 IPPROTO_IPV6 = 0x29
978 IPV6_PMTUDISC_WANT = 0x1 978 IPPROTO_MH = 0x87
979 IPV6_RECVDSTOPTS = 0x3a 979 IPPROTO_MPLS = 0x89
980 IPV6_RECVERR = 0x19 980 IPPROTO_MTP = 0x5c
981 IPV6_RECVFRAGSIZE = 0x4d 981 IPPROTO_NONE = 0x3b
982 IPV6_RECVHOPLIMIT = 0x33 982 IPPROTO_PIM = 0x67
983 IPV6_RECVHOPOPTS = 0x35 983 IPPROTO_PUP = 0xc
984 IPV6_RECVORIGDSTADDR = 0x4a 984 IPPROTO_RAW = 0xff
985 IPV6_RECVPATHMTU = 0x3c 985 IPPROTO_ROUTING = 0x2b
986 IPV6_RECVPKTINFO = 0x31 986 IPPROTO_RSVP = 0x2e
987 IPV6_RECVRTHDR = 0x38 987 IPPROTO_SCTP = 0x84
988 IPV6_RECVTCLASS = 0x42 988 IPPROTO_TCP = 0x6
989 IPV6_ROUTER_ALERT = 0x16 989 IPPROTO_TP = 0x1d
990 IPV6_ROUTER_ALERT_ISOLATE = 0x1e 990 IPPROTO_UDP = 0x11
991 IPV6_RTHDR = 0x39 991 IPPROTO_UDPLITE = 0x88
992 IPV6_RTHDRDSTOPTS = 0x37 992 IPV6_2292DSTOPTS = 0x4
993 IPV6_RTHDR_LOOSE = 0x0 993 IPV6_2292HOPLIMIT = 0x8
994 IPV6_RTHDR_STRICT = 0x1 994 IPV6_2292HOPOPTS = 0x3
995 IPV6_RTHDR_TYPE_0 = 0x0 995 IPV6_2292PKTINFO = 0x2
996 IPV6_RXDSTOPTS = 0x3b 996 IPV6_2292PKTOPTIONS = 0x6
997 IPV6_RXHOPOPTS = 0x36 997 IPV6_2292RTHDR = 0x5
998 IPV6_TCLASS = 0x43 998 IPV6_ADDRFORM = 0x1
999 IPV6_TRANSPARENT = 0x4b 999 IPV6_ADDR_PREFERENCES = 0x48
1000 IPV6_UNICAST_HOPS = 0x10 1000 IPV6_ADD_MEMBERSHIP = 0x14
1001 IPV6_UNICAST_IF = 0x4c 1001 IPV6_AUTHHDR = 0xa
1002 IPV6_V6ONLY = 0x1a 1002 IPV6_AUTOFLOWLABEL = 0x46
1003 IPV6_XFRM_POLICY = 0x23 1003 IPV6_CHECKSUM = 0x7
1004 IP_ADD_MEMBERSHIP = 0x23 1004 IPV6_DONTFRAG = 0x3e
1005 IP_ADD_SOURCE_MEMBERSHIP = 0x27 1005 IPV6_DROP_MEMBERSHIP = 0x15
1006 IP_BIND_ADDRESS_NO_PORT = 0x18 1006 IPV6_DSTOPTS = 0x3b
1007 IP_BLOCK_SOURCE = 0x26 1007 IPV6_FREEBIND = 0x4e
1008 IP_CHECKSUM = 0x17 1008 IPV6_HDRINCL = 0x24
1009 IP_DEFAULT_MULTICAST_LOOP = 0x1 1009 IPV6_HOPLIMIT = 0x34
1010 IP_DEFAULT_MULTICAST_TTL = 0x1 1010 IPV6_HOPOPTS = 0x36
1011 IP_DF = 0x4000 1011 IPV6_IPSEC_POLICY = 0x22
1012 IP_DROP_MEMBERSHIP = 0x24 1012 IPV6_JOIN_ANYCAST = 0x1b
1013 IP_DROP_SOURCE_MEMBERSHIP = 0x28 1013 IPV6_JOIN_GROUP = 0x14
1014 IP_FREEBIND = 0xf 1014 IPV6_LEAVE_ANYCAST = 0x1c
1015 IP_HDRINCL = 0x3 1015 IPV6_LEAVE_GROUP = 0x15
1016 IP_IPSEC_POLICY = 0x10 1016 IPV6_MINHOPCOUNT = 0x49
1017 IP_MAXPACKET = 0xffff 1017 IPV6_MTU = 0x18
1018 IP_MAX_MEMBERSHIPS = 0x14 1018 IPV6_MTU_DISCOVER = 0x17
1019 IP_MF = 0x2000 1019 IPV6_MULTICAST_ALL = 0x1d
1020 IP_MINTTL = 0x15 1020 IPV6_MULTICAST_HOPS = 0x12
1021 IP_MSFILTER = 0x29 1021 IPV6_MULTICAST_IF = 0x11
1022 IP_MSS = 0x240 1022 IPV6_MULTICAST_LOOP = 0x13
1023 IP_MTU = 0xe 1023 IPV6_NEXTHOP = 0x9
1024 IP_MTU_DISCOVER = 0xa 1024 IPV6_ORIGDSTADDR = 0x4a
1025 IP_MULTICAST_ALL = 0x31 1025 IPV6_PATHMTU = 0x3d
1026 IP_MULTICAST_IF = 0x20 1026 IPV6_PKTINFO = 0x32
1027 IP_MULTICAST_LOOP = 0x22 1027 IPV6_PMTUDISC_DO = 0x2
1028 IP_MULTICAST_TTL = 0x21 1028 IPV6_PMTUDISC_DONT = 0x0
1029 IP_NODEFRAG = 0x16 1029 IPV6_PMTUDISC_INTERFACE = 0x4
1030 IP_OFFMASK = 0x1fff 1030 IPV6_PMTUDISC_OMIT = 0x5
1031 IP_OPTIONS = 0x4 1031 IPV6_PMTUDISC_PROBE = 0x3
1032 IP_ORIGDSTADDR = 0x14 1032 IPV6_PMTUDISC_WANT = 0x1
1033 IP_PASSSEC = 0x12 1033 IPV6_RECVDSTOPTS = 0x3a
1034 IP_PKTINFO = 0x8 1034 IPV6_RECVERR = 0x19
1035 IP_PKTOPTIONS = 0x9 1035 IPV6_RECVFRAGSIZE = 0x4d
1036 IP_PMTUDISC = 0xa 1036 IPV6_RECVHOPLIMIT = 0x33
1037 IP_PMTUDISC_DO = 0x2 1037 IPV6_RECVHOPOPTS = 0x35
1038 IP_PMTUDISC_DONT = 0x0 1038 IPV6_RECVORIGDSTADDR = 0x4a
1039 IP_PMTUDISC_INTERFACE = 0x4 1039 IPV6_RECVPATHMTU = 0x3c
1040 IP_PMTUDISC_OMIT = 0x5 1040 IPV6_RECVPKTINFO = 0x31
1041 IP_PMTUDISC_PROBE = 0x3 1041 IPV6_RECVRTHDR = 0x38
1042 IP_PMTUDISC_WANT = 0x1 1042 IPV6_RECVTCLASS = 0x42
1043 IP_RECVERR = 0xb 1043 IPV6_ROUTER_ALERT = 0x16
1044 IP_RECVFRAGSIZE = 0x19 1044 IPV6_ROUTER_ALERT_ISOLATE = 0x1e
1045 IP_RECVOPTS = 0x6 1045 IPV6_RTHDR = 0x39
1046 IP_RECVORIGDSTADDR = 0x14 1046 IPV6_RTHDRDSTOPTS = 0x37
1047 IP_RECVRETOPTS = 0x7 1047 IPV6_RTHDR_LOOSE = 0x0
1048 IP_RECVTOS = 0xd 1048 IPV6_RTHDR_STRICT = 0x1
1049 IP_RECVTTL = 0xc 1049 IPV6_RTHDR_TYPE_0 = 0x0
1050 IP_RETOPTS = 0x7 1050 IPV6_RXDSTOPTS = 0x3b
1051 IP_RF = 0x8000 1051 IPV6_RXHOPOPTS = 0x36
1052 IP_ROUTER_ALERT = 0x5 1052 IPV6_TCLASS = 0x43
1053 IP_TOS = 0x1 1053 IPV6_TRANSPARENT = 0x4b
1054 IP_TRANSPARENT = 0x13 1054 IPV6_UNICAST_HOPS = 0x10
1055 IP_TTL = 0x2 1055 IPV6_UNICAST_IF = 0x4c
1056 IP_UNBLOCK_SOURCE = 0x25 1056 IPV6_V6ONLY = 0x1a
1057 IP_UNICAST_IF = 0x32 1057 IPV6_XFRM_POLICY = 0x23
1058 IP_XFRM_POLICY = 0x11 1058 IP_ADD_MEMBERSHIP = 0x23
1059 ISIG = 0x80 1059 IP_ADD_SOURCE_MEMBERSHIP = 0x27
1060 ISOFS_SUPER_MAGIC = 0x9660 1060 IP_BIND_ADDRESS_NO_PORT = 0x18
1061 ISTRIP = 0x20 1061 IP_BLOCK_SOURCE = 0x26
1062 IUCLC = 0x1000 1062 IP_CHECKSUM = 0x17
1063 IUTF8 = 0x4000 1063 IP_DEFAULT_MULTICAST_LOOP = 0x1
1064 IXANY = 0x800 1064 IP_DEFAULT_MULTICAST_TTL = 0x1
1065 IXOFF = 0x400 1065 IP_DF = 0x4000
1066 IXON = 0x200 1066 IP_DROP_MEMBERSHIP = 0x24
1067 JFFS2_SUPER_MAGIC = 0x72b6 1067 IP_DROP_SOURCE_MEMBERSHIP = 0x28
1068 KEXEC_ARCH_386 = 0x30000 1068 IP_FREEBIND = 0xf
1069 KEXEC_ARCH_68K = 0x40000 1069 IP_HDRINCL = 0x3
1070 KEXEC_ARCH_AARCH64 = 0xb70000 1070 IP_IPSEC_POLICY = 0x10
1071 KEXEC_ARCH_ARM = 0x280000 1071 IP_MAXPACKET = 0xffff
1072 KEXEC_ARCH_DEFAULT = 0x0 1072 IP_MAX_MEMBERSHIPS = 0x14
1073 KEXEC_ARCH_IA_64 = 0x320000 1073 IP_MF = 0x2000
1074 KEXEC_ARCH_MASK = 0xffff0000 1074 IP_MINTTL = 0x15
1075 KEXEC_ARCH_MIPS = 0x80000 1075 IP_MSFILTER = 0x29
1076 KEXEC_ARCH_MIPS_LE = 0xa0000 1076 IP_MSS = 0x240
1077 KEXEC_ARCH_PPC = 0x140000 1077 IP_MTU = 0xe
1078 KEXEC_ARCH_PPC64 = 0x150000 1078 IP_MTU_DISCOVER = 0xa
1079 KEXEC_ARCH_S390 = 0x160000 1079 IP_MULTICAST_ALL = 0x31
1080 KEXEC_ARCH_SH = 0x2a0000 1080 IP_MULTICAST_IF = 0x20
1081 KEXEC_ARCH_X86_64 = 0x3e0000 1081 IP_MULTICAST_LOOP = 0x22
1082 KEXEC_FILE_NO_INITRAMFS = 0x4 1082 IP_MULTICAST_TTL = 0x21
1083 KEXEC_FILE_ON_CRASH = 0x2 1083 IP_NODEFRAG = 0x16
1084 KEXEC_FILE_UNLOAD = 0x1 1084 IP_OFFMASK = 0x1fff
1085 KEXEC_ON_CRASH = 0x1 1085 IP_OPTIONS = 0x4
1086 KEXEC_PRESERVE_CONTEXT = 0x2 1086 IP_ORIGDSTADDR = 0x14
1087 KEXEC_SEGMENT_MAX = 0x10 1087 IP_PASSSEC = 0x12
1088 KEYCTL_ASSUME_AUTHORITY = 0x10 1088 IP_PKTINFO = 0x8
1089 KEYCTL_CHOWN = 0x4 1089 IP_PKTOPTIONS = 0x9
1090 KEYCTL_CLEAR = 0x7 1090 IP_PMTUDISC = 0xa
1091 KEYCTL_DESCRIBE = 0x6 1091 IP_PMTUDISC_DO = 0x2
1092 KEYCTL_DH_COMPUTE = 0x17 1092 IP_PMTUDISC_DONT = 0x0
1093 KEYCTL_GET_KEYRING_ID = 0x0 1093 IP_PMTUDISC_INTERFACE = 0x4
1094 KEYCTL_GET_PERSISTENT = 0x16 1094 IP_PMTUDISC_OMIT = 0x5
1095 KEYCTL_GET_SECURITY = 0x11 1095 IP_PMTUDISC_PROBE = 0x3
1096 KEYCTL_INSTANTIATE = 0xc 1096 IP_PMTUDISC_WANT = 0x1
1097 KEYCTL_INSTANTIATE_IOV = 0x14 1097 IP_RECVERR = 0xb
1098 KEYCTL_INVALIDATE = 0x15 1098 IP_RECVFRAGSIZE = 0x19
1099 KEYCTL_JOIN_SESSION_KEYRING = 0x1 1099 IP_RECVOPTS = 0x6
1100 KEYCTL_LINK = 0x8 1100 IP_RECVORIGDSTADDR = 0x14
1101 KEYCTL_NEGATE = 0xd 1101 IP_RECVRETOPTS = 0x7
1102 KEYCTL_PKEY_DECRYPT = 0x1a 1102 IP_RECVTOS = 0xd
1103 KEYCTL_PKEY_ENCRYPT = 0x19 1103 IP_RECVTTL = 0xc
1104 KEYCTL_PKEY_QUERY = 0x18 1104 IP_RETOPTS = 0x7
1105 KEYCTL_PKEY_SIGN = 0x1b 1105 IP_RF = 0x8000
1106 KEYCTL_PKEY_VERIFY = 0x1c 1106 IP_ROUTER_ALERT = 0x5
1107 KEYCTL_READ = 0xb 1107 IP_TOS = 0x1
1108 KEYCTL_REJECT = 0x13 1108 IP_TRANSPARENT = 0x13
1109 KEYCTL_RESTRICT_KEYRING = 0x1d 1109 IP_TTL = 0x2
1110 KEYCTL_REVOKE = 0x3 1110 IP_UNBLOCK_SOURCE = 0x25
1111 KEYCTL_SEARCH = 0xa 1111 IP_UNICAST_IF = 0x32
1112 KEYCTL_SESSION_TO_PARENT = 0x12 1112 IP_XFRM_POLICY = 0x11
1113 KEYCTL_SETPERM = 0x5 1113 ISIG = 0x80
1114 KEYCTL_SET_REQKEY_KEYRING = 0xe 1114 ISOFS_SUPER_MAGIC = 0x9660
1115 KEYCTL_SET_TIMEOUT = 0xf 1115 ISTRIP = 0x20
1116 KEYCTL_SUPPORTS_DECRYPT = 0x2 1116 IUCLC = 0x1000
1117 KEYCTL_SUPPORTS_ENCRYPT = 0x1 1117 IUTF8 = 0x4000
1118 KEYCTL_SUPPORTS_SIGN = 0x4 1118 IXANY = 0x800
1119 KEYCTL_SUPPORTS_VERIFY = 0x8 1119 IXOFF = 0x400
1120 KEYCTL_UNLINK = 0x9 1120 IXON = 0x200
1121 KEYCTL_UPDATE = 0x2 1121 JFFS2_SUPER_MAGIC = 0x72b6
1122 KEY_REQKEY_DEFL_DEFAULT = 0x0 1122 KEXEC_ARCH_386 = 0x30000
1123 KEY_REQKEY_DEFL_GROUP_KEYRING = 0x6 1123 KEXEC_ARCH_68K = 0x40000
1124 KEY_REQKEY_DEFL_NO_CHANGE = -0x1 1124 KEXEC_ARCH_AARCH64 = 0xb70000
1125 KEY_REQKEY_DEFL_PROCESS_KEYRING = 0x2 1125 KEXEC_ARCH_ARM = 0x280000
1126 KEY_REQKEY_DEFL_REQUESTOR_KEYRING = 0x7 1126 KEXEC_ARCH_DEFAULT = 0x0
1127 KEY_REQKEY_DEFL_SESSION_KEYRING = 0x3 1127 KEXEC_ARCH_IA_64 = 0x320000
1128 KEY_REQKEY_DEFL_THREAD_KEYRING = 0x1 1128 KEXEC_ARCH_MASK = 0xffff0000
1129 KEY_REQKEY_DEFL_USER_KEYRING = 0x4 1129 KEXEC_ARCH_MIPS = 0x80000
1130 KEY_REQKEY_DEFL_USER_SESSION_KEYRING = 0x5 1130 KEXEC_ARCH_MIPS_LE = 0xa0000
1131 KEY_SPEC_GROUP_KEYRING = -0x6 1131 KEXEC_ARCH_PARISC = 0xf0000
1132 KEY_SPEC_PROCESS_KEYRING = -0x2 1132 KEXEC_ARCH_PPC = 0x140000
1133 KEY_SPEC_REQKEY_AUTH_KEY = -0x7 1133 KEXEC_ARCH_PPC64 = 0x150000
1134 KEY_SPEC_REQUESTOR_KEYRING = -0x8 1134 KEXEC_ARCH_S390 = 0x160000
1135 KEY_SPEC_SESSION_KEYRING = -0x3 1135 KEXEC_ARCH_SH = 0x2a0000
1136 KEY_SPEC_THREAD_KEYRING = -0x1 1136 KEXEC_ARCH_X86_64 = 0x3e0000
1137 KEY_SPEC_USER_KEYRING = -0x4 1137 KEXEC_FILE_NO_INITRAMFS = 0x4
1138 KEY_SPEC_USER_SESSION_KEYRING = -0x5 1138 KEXEC_FILE_ON_CRASH = 0x2
1139 LINUX_REBOOT_CMD_CAD_OFF = 0x0 1139 KEXEC_FILE_UNLOAD = 0x1
1140 LINUX_REBOOT_CMD_CAD_ON = 0x89abcdef 1140 KEXEC_ON_CRASH = 0x1
1141 LINUX_REBOOT_CMD_HALT = 0xcdef0123 1141 KEXEC_PRESERVE_CONTEXT = 0x2
1142 LINUX_REBOOT_CMD_KEXEC = 0x45584543 1142 KEXEC_SEGMENT_MAX = 0x10
1143 LINUX_REBOOT_CMD_POWER_OFF = 0x4321fedc 1143 KEYCTL_ASSUME_AUTHORITY = 0x10
1144 LINUX_REBOOT_CMD_RESTART = 0x1234567 1144 KEYCTL_CAPABILITIES = 0x1f
1145 LINUX_REBOOT_CMD_RESTART2 = 0xa1b2c3d4 1145 KEYCTL_CAPS0_BIG_KEY = 0x10
1146 LINUX_REBOOT_CMD_SW_SUSPEND = 0xd000fce2 1146 KEYCTL_CAPS0_CAPABILITIES = 0x1
1147 LINUX_REBOOT_MAGIC1 = 0xfee1dead 1147 KEYCTL_CAPS0_DIFFIE_HELLMAN = 0x4
1148 LINUX_REBOOT_MAGIC2 = 0x28121969 1148 KEYCTL_CAPS0_INVALIDATE = 0x20
1149 LOCK_EX = 0x2 1149 KEYCTL_CAPS0_MOVE = 0x80
1150 LOCK_NB = 0x4 1150 KEYCTL_CAPS0_PERSISTENT_KEYRINGS = 0x2
1151 LOCK_SH = 0x1 1151 KEYCTL_CAPS0_PUBLIC_KEY = 0x8
1152 LOCK_UN = 0x8 1152 KEYCTL_CAPS0_RESTRICT_KEYRING = 0x40
1153 LOOP_CLR_FD = 0x4c01 1153 KEYCTL_CAPS1_NS_KEYRING_NAME = 0x1
1154 LOOP_CTL_ADD = 0x4c80 1154 KEYCTL_CAPS1_NS_KEY_TAG = 0x2
1155 LOOP_CTL_GET_FREE = 0x4c82 1155 KEYCTL_CHOWN = 0x4
1156 LOOP_CTL_REMOVE = 0x4c81 1156 KEYCTL_CLEAR = 0x7
1157 LOOP_GET_STATUS = 0x4c03 1157 KEYCTL_DESCRIBE = 0x6
1158 LOOP_GET_STATUS64 = 0x4c05 1158 KEYCTL_DH_COMPUTE = 0x17
1159 LOOP_SET_BLOCK_SIZE = 0x4c09 1159 KEYCTL_GET_KEYRING_ID = 0x0
1160 LOOP_SET_CAPACITY = 0x4c07 1160 KEYCTL_GET_PERSISTENT = 0x16
1161 LOOP_SET_DIRECT_IO = 0x4c08 1161 KEYCTL_GET_SECURITY = 0x11
1162 LOOP_SET_FD = 0x4c00 1162 KEYCTL_INSTANTIATE = 0xc
1163 LOOP_SET_STATUS = 0x4c02 1163 KEYCTL_INSTANTIATE_IOV = 0x14
1164 LOOP_SET_STATUS64 = 0x4c04 1164 KEYCTL_INVALIDATE = 0x15
1165 LO_KEY_SIZE = 0x20 1165 KEYCTL_JOIN_SESSION_KEYRING = 0x1
1166 LO_NAME_SIZE = 0x40 1166 KEYCTL_LINK = 0x8
1167 MADV_DODUMP = 0x11 1167 KEYCTL_MOVE = 0x1e
1168 MADV_DOFORK = 0xb 1168 KEYCTL_MOVE_EXCL = 0x1
1169 MADV_DONTDUMP = 0x10 1169 KEYCTL_NEGATE = 0xd
1170 MADV_DONTFORK = 0xa 1170 KEYCTL_PKEY_DECRYPT = 0x1a
1171 MADV_DONTNEED = 0x4 1171 KEYCTL_PKEY_ENCRYPT = 0x19
1172 MADV_FREE = 0x8 1172 KEYCTL_PKEY_QUERY = 0x18
1173 MADV_HUGEPAGE = 0xe 1173 KEYCTL_PKEY_SIGN = 0x1b
1174 MADV_HWPOISON = 0x64 1174 KEYCTL_PKEY_VERIFY = 0x1c
1175 MADV_KEEPONFORK = 0x13 1175 KEYCTL_READ = 0xb
1176 MADV_MERGEABLE = 0xc 1176 KEYCTL_REJECT = 0x13
1177 MADV_NOHUGEPAGE = 0xf 1177 KEYCTL_RESTRICT_KEYRING = 0x1d
1178 MADV_NORMAL = 0x0 1178 KEYCTL_REVOKE = 0x3
1179 MADV_RANDOM = 0x1 1179 KEYCTL_SEARCH = 0xa
1180 MADV_REMOVE = 0x9 1180 KEYCTL_SESSION_TO_PARENT = 0x12
1181 MADV_SEQUENTIAL = 0x2 1181 KEYCTL_SETPERM = 0x5
1182 MADV_UNMERGEABLE = 0xd 1182 KEYCTL_SET_REQKEY_KEYRING = 0xe
1183 MADV_WILLNEED = 0x3 1183 KEYCTL_SET_TIMEOUT = 0xf
1184 MADV_WIPEONFORK = 0x12 1184 KEYCTL_SUPPORTS_DECRYPT = 0x2
1185 MAP_ANON = 0x20 1185 KEYCTL_SUPPORTS_ENCRYPT = 0x1
1186 MAP_ANONYMOUS = 0x20 1186 KEYCTL_SUPPORTS_SIGN = 0x4
1187 MAP_DENYWRITE = 0x800 1187 KEYCTL_SUPPORTS_VERIFY = 0x8
1188 MAP_EXECUTABLE = 0x1000 1188 KEYCTL_UNLINK = 0x9
1189 MAP_FILE = 0x0 1189 KEYCTL_UPDATE = 0x2
1190 MAP_FIXED = 0x10 1190 KEY_REQKEY_DEFL_DEFAULT = 0x0
1191 MAP_FIXED_NOREPLACE = 0x100000 1191 KEY_REQKEY_DEFL_GROUP_KEYRING = 0x6
1192 MAP_GROWSDOWN = 0x100 1192 KEY_REQKEY_DEFL_NO_CHANGE = -0x1
1193 MAP_HUGETLB = 0x40000 1193 KEY_REQKEY_DEFL_PROCESS_KEYRING = 0x2
1194 MAP_HUGE_MASK = 0x3f 1194 KEY_REQKEY_DEFL_REQUESTOR_KEYRING = 0x7
1195 MAP_HUGE_SHIFT = 0x1a 1195 KEY_REQKEY_DEFL_SESSION_KEYRING = 0x3
1196 MAP_LOCKED = 0x80 1196 KEY_REQKEY_DEFL_THREAD_KEYRING = 0x1
1197 MAP_NONBLOCK = 0x10000 1197 KEY_REQKEY_DEFL_USER_KEYRING = 0x4
1198 MAP_NORESERVE = 0x40 1198 KEY_REQKEY_DEFL_USER_SESSION_KEYRING = 0x5
1199 MAP_POPULATE = 0x8000 1199 KEY_SPEC_GROUP_KEYRING = -0x6
1200 MAP_PRIVATE = 0x2 1200 KEY_SPEC_PROCESS_KEYRING = -0x2
1201 MAP_SHARED = 0x1 1201 KEY_SPEC_REQKEY_AUTH_KEY = -0x7
1202 MAP_SHARED_VALIDATE = 0x3 1202 KEY_SPEC_REQUESTOR_KEYRING = -0x8
1203 MAP_STACK = 0x20000 1203 KEY_SPEC_SESSION_KEYRING = -0x3
1204 MAP_TYPE = 0xf 1204 KEY_SPEC_THREAD_KEYRING = -0x1
1205 MCAST_BLOCK_SOURCE = 0x2b 1205 KEY_SPEC_USER_KEYRING = -0x4
1206 MCAST_EXCLUDE = 0x0 1206 KEY_SPEC_USER_SESSION_KEYRING = -0x5
1207 MCAST_INCLUDE = 0x1 1207 LINUX_REBOOT_CMD_CAD_OFF = 0x0
1208 MCAST_JOIN_GROUP = 0x2a 1208 LINUX_REBOOT_CMD_CAD_ON = 0x89abcdef
1209 MCAST_JOIN_SOURCE_GROUP = 0x2e 1209 LINUX_REBOOT_CMD_HALT = 0xcdef0123
1210 MCAST_LEAVE_GROUP = 0x2d 1210 LINUX_REBOOT_CMD_KEXEC = 0x45584543
1211 MCAST_LEAVE_SOURCE_GROUP = 0x2f 1211 LINUX_REBOOT_CMD_POWER_OFF = 0x4321fedc
1212 MCAST_MSFILTER = 0x30 1212 LINUX_REBOOT_CMD_RESTART = 0x1234567
1213 MCAST_UNBLOCK_SOURCE = 0x2c 1213 LINUX_REBOOT_CMD_RESTART2 = 0xa1b2c3d4
1214 MCL_CURRENT = 0x2000 1214 LINUX_REBOOT_CMD_SW_SUSPEND = 0xd000fce2
1215 MCL_FUTURE = 0x4000 1215 LINUX_REBOOT_MAGIC1 = 0xfee1dead
1216 MCL_ONFAULT = 0x8000 1216 LINUX_REBOOT_MAGIC2 = 0x28121969
1217 MFD_ALLOW_SEALING = 0x2 1217 LOCK_EX = 0x2
1218 MFD_CLOEXEC = 0x1 1218 LOCK_NB = 0x4
1219 MFD_HUGETLB = 0x4 1219 LOCK_SH = 0x1
1220 MFD_HUGE_16GB = -0x78000000 1220 LOCK_UN = 0x8
1221 MFD_HUGE_16MB = 0x60000000 1221 LOOP_CLR_FD = 0x4c01
1222 MFD_HUGE_1GB = 0x78000000 1222 LOOP_CTL_ADD = 0x4c80
1223 MFD_HUGE_1MB = 0x50000000 1223 LOOP_CTL_GET_FREE = 0x4c82
1224 MFD_HUGE_256MB = 0x70000000 1224 LOOP_CTL_REMOVE = 0x4c81
1225 MFD_HUGE_2GB = 0x7c000000 1225 LOOP_GET_STATUS = 0x4c03
1226 MFD_HUGE_2MB = 0x54000000 1226 LOOP_GET_STATUS64 = 0x4c05
1227 MFD_HUGE_32MB = 0x64000000 1227 LOOP_SET_BLOCK_SIZE = 0x4c09
1228 MFD_HUGE_512KB = 0x4c000000 1228 LOOP_SET_CAPACITY = 0x4c07
1229 MFD_HUGE_512MB = 0x74000000 1229 LOOP_SET_DIRECT_IO = 0x4c08
1230 MFD_HUGE_64KB = 0x40000000 1230 LOOP_SET_FD = 0x4c00
1231 MFD_HUGE_8MB = 0x5c000000 1231 LOOP_SET_STATUS = 0x4c02
1232 MFD_HUGE_MASK = 0x3f 1232 LOOP_SET_STATUS64 = 0x4c04
1233 MFD_HUGE_SHIFT = 0x1a 1233 LO_KEY_SIZE = 0x20
1234 MINIX2_SUPER_MAGIC = 0x2468 1234 LO_NAME_SIZE = 0x40
1235 MINIX2_SUPER_MAGIC2 = 0x2478 1235 MADV_COLD = 0x14
1236 MINIX3_SUPER_MAGIC = 0x4d5a 1236 MADV_DODUMP = 0x11
1237 MINIX_SUPER_MAGIC = 0x137f 1237 MADV_DOFORK = 0xb
1238 MINIX_SUPER_MAGIC2 = 0x138f 1238 MADV_DONTDUMP = 0x10
1239 MNT_DETACH = 0x2 1239 MADV_DONTFORK = 0xa
1240 MNT_EXPIRE = 0x4 1240 MADV_DONTNEED = 0x4
1241 MNT_FORCE = 0x1 1241 MADV_FREE = 0x8
1242 MODULE_INIT_IGNORE_MODVERSIONS = 0x1 1242 MADV_HUGEPAGE = 0xe
1243 MODULE_INIT_IGNORE_VERMAGIC = 0x2 1243 MADV_HWPOISON = 0x64
1244 MSDOS_SUPER_MAGIC = 0x4d44 1244 MADV_KEEPONFORK = 0x13
1245 MSG_BATCH = 0x40000 1245 MADV_MERGEABLE = 0xc
1246 MSG_CMSG_CLOEXEC = 0x40000000 1246 MADV_NOHUGEPAGE = 0xf
1247 MSG_CONFIRM = 0x800 1247 MADV_NORMAL = 0x0
1248 MSG_CTRUNC = 0x8 1248 MADV_PAGEOUT = 0x15
1249 MSG_DONTROUTE = 0x4 1249 MADV_RANDOM = 0x1
1250 MSG_DONTWAIT = 0x40 1250 MADV_REMOVE = 0x9
1251 MSG_EOR = 0x80 1251 MADV_SEQUENTIAL = 0x2
1252 MSG_ERRQUEUE = 0x2000 1252 MADV_UNMERGEABLE = 0xd
1253 MSG_FASTOPEN = 0x20000000 1253 MADV_WILLNEED = 0x3
1254 MSG_FIN = 0x200 1254 MADV_WIPEONFORK = 0x12
1255 MSG_MORE = 0x8000 1255 MAP_ANON = 0x20
1256 MSG_NOSIGNAL = 0x4000 1256 MAP_ANONYMOUS = 0x20
1257 MSG_OOB = 0x1 1257 MAP_DENYWRITE = 0x800
1258 MSG_PEEK = 0x2 1258 MAP_EXECUTABLE = 0x1000
1259 MSG_PROXY = 0x10 1259 MAP_FILE = 0x0
1260 MSG_RST = 0x1000 1260 MAP_FIXED = 0x10
1261 MSG_SYN = 0x400 1261 MAP_FIXED_NOREPLACE = 0x100000
1262 MSG_TRUNC = 0x20 1262 MAP_GROWSDOWN = 0x100
1263 MSG_TRYHARD = 0x4 1263 MAP_HUGETLB = 0x40000
1264 MSG_WAITALL = 0x100 1264 MAP_HUGE_MASK = 0x3f
1265 MSG_WAITFORONE = 0x10000 1265 MAP_HUGE_SHIFT = 0x1a
1266 MSG_ZEROCOPY = 0x4000000 1266 MAP_LOCKED = 0x80
1267 MS_ACTIVE = 0x40000000 1267 MAP_NONBLOCK = 0x10000
1268 MS_ASYNC = 0x1 1268 MAP_NORESERVE = 0x40
1269 MS_BIND = 0x1000 1269 MAP_POPULATE = 0x8000
1270 MS_BORN = 0x20000000 1270 MAP_PRIVATE = 0x2
1271 MS_DIRSYNC = 0x80 1271 MAP_SHARED = 0x1
1272 MS_INVALIDATE = 0x2 1272 MAP_SHARED_VALIDATE = 0x3
1273 MS_I_VERSION = 0x800000 1273 MAP_STACK = 0x20000
1274 MS_KERNMOUNT = 0x400000 1274 MAP_SYNC = 0x80000
1275 MS_LAZYTIME = 0x2000000 1275 MAP_TYPE = 0xf
1276 MS_MANDLOCK = 0x40 1276 MCAST_BLOCK_SOURCE = 0x2b
1277 MS_MGC_MSK = 0xffff0000 1277 MCAST_EXCLUDE = 0x0
1278 MS_MGC_VAL = 0xc0ed0000 1278 MCAST_INCLUDE = 0x1
1279 MS_MOVE = 0x2000 1279 MCAST_JOIN_GROUP = 0x2a
1280 MS_NOATIME = 0x400 1280 MCAST_JOIN_SOURCE_GROUP = 0x2e
1281 MS_NODEV = 0x4 1281 MCAST_LEAVE_GROUP = 0x2d
1282 MS_NODIRATIME = 0x800 1282 MCAST_LEAVE_SOURCE_GROUP = 0x2f
1283 MS_NOEXEC = 0x8 1283 MCAST_MSFILTER = 0x30
1284 MS_NOREMOTELOCK = 0x8000000 1284 MCAST_UNBLOCK_SOURCE = 0x2c
1285 MS_NOSEC = 0x10000000 1285 MCL_CURRENT = 0x2000
1286 MS_NOSUID = 0x2 1286 MCL_FUTURE = 0x4000
1287 MS_NOUSER = -0x80000000 1287 MCL_ONFAULT = 0x8000
1288 MS_POSIXACL = 0x10000 1288 MFD_ALLOW_SEALING = 0x2
1289 MS_PRIVATE = 0x40000 1289 MFD_CLOEXEC = 0x1
1290 MS_RDONLY = 0x1 1290 MFD_HUGETLB = 0x4
1291 MS_REC = 0x4000 1291 MFD_HUGE_16GB = -0x78000000
1292 MS_RELATIME = 0x200000 1292 MFD_HUGE_16MB = 0x60000000
1293 MS_REMOUNT = 0x20 1293 MFD_HUGE_1GB = 0x78000000
1294 MS_RMT_MASK = 0x2800051 1294 MFD_HUGE_1MB = 0x50000000
1295 MS_SHARED = 0x100000 1295 MFD_HUGE_256MB = 0x70000000
1296 MS_SILENT = 0x8000 1296 MFD_HUGE_2GB = 0x7c000000
1297 MS_SLAVE = 0x80000 1297 MFD_HUGE_2MB = 0x54000000
1298 MS_STRICTATIME = 0x1000000 1298 MFD_HUGE_32MB = 0x64000000
1299 MS_SUBMOUNT = 0x4000000 1299 MFD_HUGE_512KB = 0x4c000000
1300 MS_SYNC = 0x4 1300 MFD_HUGE_512MB = 0x74000000
1301 MS_SYNCHRONOUS = 0x10 1301 MFD_HUGE_64KB = 0x40000000
1302 MS_UNBINDABLE = 0x20000 1302 MFD_HUGE_8MB = 0x5c000000
1303 MS_VERBOSE = 0x8000 1303 MFD_HUGE_MASK = 0x3f
1304 MTD_INODE_FS_MAGIC = 0x11307854 1304 MFD_HUGE_SHIFT = 0x1a
1305 NAME_MAX = 0xff 1305 MINIX2_SUPER_MAGIC = 0x2468
1306 NCP_SUPER_MAGIC = 0x564c 1306 MINIX2_SUPER_MAGIC2 = 0x2478
1307 NETLINK_ADD_MEMBERSHIP = 0x1 1307 MINIX3_SUPER_MAGIC = 0x4d5a
1308 NETLINK_AUDIT = 0x9 1308 MINIX_SUPER_MAGIC = 0x137f
1309 NETLINK_BROADCAST_ERROR = 0x4 1309 MINIX_SUPER_MAGIC2 = 0x138f
1310 NETLINK_CAP_ACK = 0xa 1310 MNT_DETACH = 0x2
1311 NETLINK_CONNECTOR = 0xb 1311 MNT_EXPIRE = 0x4
1312 NETLINK_CRYPTO = 0x15 1312 MNT_FORCE = 0x1
1313 NETLINK_DNRTMSG = 0xe 1313 MODULE_INIT_IGNORE_MODVERSIONS = 0x1
1314 NETLINK_DROP_MEMBERSHIP = 0x2 1314 MODULE_INIT_IGNORE_VERMAGIC = 0x2
1315 NETLINK_ECRYPTFS = 0x13 1315 MSDOS_SUPER_MAGIC = 0x4d44
1316 NETLINK_EXT_ACK = 0xb 1316 MSG_BATCH = 0x40000
1317 NETLINK_FIB_LOOKUP = 0xa 1317 MSG_CMSG_CLOEXEC = 0x40000000
1318 NETLINK_FIREWALL = 0x3 1318 MSG_CONFIRM = 0x800
1319 NETLINK_GENERIC = 0x10 1319 MSG_CTRUNC = 0x8
1320 NETLINK_GET_STRICT_CHK = 0xc 1320 MSG_DONTROUTE = 0x4
1321 NETLINK_INET_DIAG = 0x4 1321 MSG_DONTWAIT = 0x40
1322 NETLINK_IP6_FW = 0xd 1322 MSG_EOR = 0x80
1323 NETLINK_ISCSI = 0x8 1323 MSG_ERRQUEUE = 0x2000
1324 NETLINK_KOBJECT_UEVENT = 0xf 1324 MSG_FASTOPEN = 0x20000000
1325 NETLINK_LISTEN_ALL_NSID = 0x8 1325 MSG_FIN = 0x200
1326 NETLINK_LIST_MEMBERSHIPS = 0x9 1326 MSG_MORE = 0x8000
1327 NETLINK_NETFILTER = 0xc 1327 MSG_NOSIGNAL = 0x4000
1328 NETLINK_NFLOG = 0x5 1328 MSG_OOB = 0x1
1329 NETLINK_NO_ENOBUFS = 0x5 1329 MSG_PEEK = 0x2
1330 NETLINK_PKTINFO = 0x3 1330 MSG_PROXY = 0x10
1331 NETLINK_RDMA = 0x14 1331 MSG_RST = 0x1000
1332 NETLINK_ROUTE = 0x0 1332 MSG_SYN = 0x400
1333 NETLINK_RX_RING = 0x6 1333 MSG_TRUNC = 0x20
1334 NETLINK_SCSITRANSPORT = 0x12 1334 MSG_TRYHARD = 0x4
1335 NETLINK_SELINUX = 0x7 1335 MSG_WAITALL = 0x100
1336 NETLINK_SMC = 0x16 1336 MSG_WAITFORONE = 0x10000
1337 NETLINK_SOCK_DIAG = 0x4 1337 MSG_ZEROCOPY = 0x4000000
1338 NETLINK_TX_RING = 0x7 1338 MS_ACTIVE = 0x40000000
1339 NETLINK_UNUSED = 0x1 1339 MS_ASYNC = 0x1
1340 NETLINK_USERSOCK = 0x2 1340 MS_BIND = 0x1000
1341 NETLINK_XFRM = 0x6 1341 MS_BORN = 0x20000000
1342 NETNSA_MAX = 0x5 1342 MS_DIRSYNC = 0x80
1343 NETNSA_NSID_NOT_ASSIGNED = -0x1 1343 MS_INVALIDATE = 0x2
1344 NFNETLINK_V0 = 0x0 1344 MS_I_VERSION = 0x800000
1345 NFNLGRP_ACCT_QUOTA = 0x8 1345 MS_KERNMOUNT = 0x400000
1346 NFNLGRP_CONNTRACK_DESTROY = 0x3 1346 MS_LAZYTIME = 0x2000000
1347 NFNLGRP_CONNTRACK_EXP_DESTROY = 0x6 1347 MS_MANDLOCK = 0x40
1348 NFNLGRP_CONNTRACK_EXP_NEW = 0x4 1348 MS_MGC_MSK = 0xffff0000
1349 NFNLGRP_CONNTRACK_EXP_UPDATE = 0x5 1349 MS_MGC_VAL = 0xc0ed0000
1350 NFNLGRP_CONNTRACK_NEW = 0x1 1350 MS_MOVE = 0x2000
1351 NFNLGRP_CONNTRACK_UPDATE = 0x2 1351 MS_NOATIME = 0x400
1352 NFNLGRP_MAX = 0x9 1352 MS_NODEV = 0x4
1353 NFNLGRP_NFTABLES = 0x7 1353 MS_NODIRATIME = 0x800
1354 NFNLGRP_NFTRACE = 0x9 1354 MS_NOEXEC = 0x8
1355 NFNLGRP_NONE = 0x0 1355 MS_NOREMOTELOCK = 0x8000000
1356 NFNL_BATCH_MAX = 0x1 1356 MS_NOSEC = 0x10000000
1357 NFNL_MSG_BATCH_BEGIN = 0x10 1357 MS_NOSUID = 0x2
1358 NFNL_MSG_BATCH_END = 0x11 1358 MS_NOUSER = -0x80000000
1359 NFNL_NFA_NEST = 0x8000 1359 MS_POSIXACL = 0x10000
1360 NFNL_SUBSYS_ACCT = 0x7 1360 MS_PRIVATE = 0x40000
1361 NFNL_SUBSYS_COUNT = 0xc 1361 MS_RDONLY = 0x1
1362 NFNL_SUBSYS_CTHELPER = 0x9 1362 MS_REC = 0x4000
1363 NFNL_SUBSYS_CTNETLINK = 0x1 1363 MS_RELATIME = 0x200000
1364 NFNL_SUBSYS_CTNETLINK_EXP = 0x2 1364 MS_REMOUNT = 0x20
1365 NFNL_SUBSYS_CTNETLINK_TIMEOUT = 0x8 1365 MS_RMT_MASK = 0x2800051
1366 NFNL_SUBSYS_IPSET = 0x6 1366 MS_SHARED = 0x100000
1367 NFNL_SUBSYS_NFTABLES = 0xa 1367 MS_SILENT = 0x8000
1368 NFNL_SUBSYS_NFT_COMPAT = 0xb 1368 MS_SLAVE = 0x80000
1369 NFNL_SUBSYS_NONE = 0x0 1369 MS_STRICTATIME = 0x1000000
1370 NFNL_SUBSYS_OSF = 0x5 1370 MS_SUBMOUNT = 0x4000000
1371 NFNL_SUBSYS_QUEUE = 0x3 1371 MS_SYNC = 0x4
1372 NFNL_SUBSYS_ULOG = 0x4 1372 MS_SYNCHRONOUS = 0x10
1373 NFS_SUPER_MAGIC = 0x6969 1373 MS_UNBINDABLE = 0x20000
1374 NILFS_SUPER_MAGIC = 0x3434 1374 MS_VERBOSE = 0x8000
1375 NL0 = 0x0 1375 MTD_INODE_FS_MAGIC = 0x11307854
1376 NL1 = 0x100 1376 NAME_MAX = 0xff
1377 NL2 = 0x200 1377 NCP_SUPER_MAGIC = 0x564c
1378 NL3 = 0x300 1378 NETLINK_ADD_MEMBERSHIP = 0x1
1379 NLA_ALIGNTO = 0x4 1379 NETLINK_AUDIT = 0x9
1380 NLA_F_NESTED = 0x8000 1380 NETLINK_BROADCAST_ERROR = 0x4
1381 NLA_F_NET_BYTEORDER = 0x4000 1381 NETLINK_CAP_ACK = 0xa
1382 NLA_HDRLEN = 0x4 1382 NETLINK_CONNECTOR = 0xb
1383 NLDLY = 0x300 1383 NETLINK_CRYPTO = 0x15
1384 NLMSG_ALIGNTO = 0x4 1384 NETLINK_DNRTMSG = 0xe
1385 NLMSG_DONE = 0x3 1385 NETLINK_DROP_MEMBERSHIP = 0x2
1386 NLMSG_ERROR = 0x2 1386 NETLINK_ECRYPTFS = 0x13
1387 NLMSG_HDRLEN = 0x10 1387 NETLINK_EXT_ACK = 0xb
1388 NLMSG_MIN_TYPE = 0x10 1388 NETLINK_FIB_LOOKUP = 0xa
1389 NLMSG_NOOP = 0x1 1389 NETLINK_FIREWALL = 0x3
1390 NLMSG_OVERRUN = 0x4 1390 NETLINK_GENERIC = 0x10
1391 NLM_F_ACK = 0x4 1391 NETLINK_GET_STRICT_CHK = 0xc
1392 NLM_F_ACK_TLVS = 0x200 1392 NETLINK_INET_DIAG = 0x4
1393 NLM_F_APPEND = 0x800 1393 NETLINK_IP6_FW = 0xd
1394 NLM_F_ATOMIC = 0x400 1394 NETLINK_ISCSI = 0x8
1395 NLM_F_CAPPED = 0x100 1395 NETLINK_KOBJECT_UEVENT = 0xf
1396 NLM_F_CREATE = 0x400 1396 NETLINK_LISTEN_ALL_NSID = 0x8
1397 NLM_F_DUMP = 0x300 1397 NETLINK_LIST_MEMBERSHIPS = 0x9
1398 NLM_F_DUMP_FILTERED = 0x20 1398 NETLINK_NETFILTER = 0xc
1399 NLM_F_DUMP_INTR = 0x10 1399 NETLINK_NFLOG = 0x5
1400 NLM_F_ECHO = 0x8 1400 NETLINK_NO_ENOBUFS = 0x5
1401 NLM_F_EXCL = 0x200 1401 NETLINK_PKTINFO = 0x3
1402 NLM_F_MATCH = 0x200 1402 NETLINK_RDMA = 0x14
1403 NLM_F_MULTI = 0x2 1403 NETLINK_ROUTE = 0x0
1404 NLM_F_NONREC = 0x100 1404 NETLINK_RX_RING = 0x6
1405 NLM_F_REPLACE = 0x100 1405 NETLINK_SCSITRANSPORT = 0x12
1406 NLM_F_REQUEST = 0x1 1406 NETLINK_SELINUX = 0x7
1407 NLM_F_ROOT = 0x100 1407 NETLINK_SMC = 0x16
1408 NOFLSH = 0x80000000 1408 NETLINK_SOCK_DIAG = 0x4
1409 NSFS_MAGIC = 0x6e736673 1409 NETLINK_TX_RING = 0x7
1410 NS_GET_NSTYPE = 0x2000b703 1410 NETLINK_UNUSED = 0x1
1411 NS_GET_OWNER_UID = 0x2000b704 1411 NETLINK_USERSOCK = 0x2
1412 NS_GET_PARENT = 0x2000b702 1412 NETLINK_XFRM = 0x6
1413 NS_GET_USERNS = 0x2000b701 1413 NETNSA_MAX = 0x5
1414 OCFS2_SUPER_MAGIC = 0x7461636f 1414 NETNSA_NSID_NOT_ASSIGNED = -0x1
1415 OCRNL = 0x8 1415 NFDBITS = 0x40
1416 OFDEL = 0x80 1416 NFNETLINK_V0 = 0x0
1417 OFILL = 0x40 1417 NFNLGRP_ACCT_QUOTA = 0x8
1418 OLCUC = 0x4 1418 NFNLGRP_CONNTRACK_DESTROY = 0x3
1419 ONLCR = 0x2 1419 NFNLGRP_CONNTRACK_EXP_DESTROY = 0x6
1420 ONLRET = 0x20 1420 NFNLGRP_CONNTRACK_EXP_NEW = 0x4
1421 ONOCR = 0x10 1421 NFNLGRP_CONNTRACK_EXP_UPDATE = 0x5
1422 OPENPROM_SUPER_MAGIC = 0x9fa1 1422 NFNLGRP_CONNTRACK_NEW = 0x1
1423 OPOST = 0x1 1423 NFNLGRP_CONNTRACK_UPDATE = 0x2
1424 OVERLAYFS_SUPER_MAGIC = 0x794c7630 1424 NFNLGRP_MAX = 0x9
1425 O_ACCMODE = 0x3 1425 NFNLGRP_NFTABLES = 0x7
1426 O_APPEND = 0x400 1426 NFNLGRP_NFTRACE = 0x9
1427 O_ASYNC = 0x2000 1427 NFNLGRP_NONE = 0x0
1428 O_CLOEXEC = 0x80000 1428 NFNL_BATCH_MAX = 0x1
1429 O_CREAT = 0x40 1429 NFNL_MSG_BATCH_BEGIN = 0x10
1430 O_DIRECT = 0x20000 1430 NFNL_MSG_BATCH_END = 0x11
1431 O_DIRECTORY = 0x4000 1431 NFNL_NFA_NEST = 0x8000
1432 O_DSYNC = 0x1000 1432 NFNL_SUBSYS_ACCT = 0x7
1433 O_EXCL = 0x80 1433 NFNL_SUBSYS_COUNT = 0xc
1434 O_FSYNC = 0x101000 1434 NFNL_SUBSYS_CTHELPER = 0x9
1435 O_LARGEFILE = 0x0 1435 NFNL_SUBSYS_CTNETLINK = 0x1
1436 O_NDELAY = 0x800 1436 NFNL_SUBSYS_CTNETLINK_EXP = 0x2
1437 O_NOATIME = 0x40000 1437 NFNL_SUBSYS_CTNETLINK_TIMEOUT = 0x8
1438 O_NOCTTY = 0x100 1438 NFNL_SUBSYS_IPSET = 0x6
1439 O_NOFOLLOW = 0x8000 1439 NFNL_SUBSYS_NFTABLES = 0xa
1440 O_NONBLOCK = 0x800 1440 NFNL_SUBSYS_NFT_COMPAT = 0xb
1441 O_PATH = 0x200000 1441 NFNL_SUBSYS_NONE = 0x0
1442 O_RDONLY = 0x0 1442 NFNL_SUBSYS_OSF = 0x5
1443 O_RDWR = 0x2 1443 NFNL_SUBSYS_QUEUE = 0x3
1444 O_RSYNC = 0x101000 1444 NFNL_SUBSYS_ULOG = 0x4
1445 O_SYNC = 0x101000 1445 NFS_SUPER_MAGIC = 0x6969
1446 O_TMPFILE = 0x404000 1446 NILFS_SUPER_MAGIC = 0x3434
1447 O_TRUNC = 0x200 1447 NL0 = 0x0
1448 O_WRONLY = 0x1 1448 NL1 = 0x100
1449 PACKET_ADD_MEMBERSHIP = 0x1 1449 NL2 = 0x200
1450 PACKET_AUXDATA = 0x8 1450 NL3 = 0x300
1451 PACKET_BROADCAST = 0x1 1451 NLA_ALIGNTO = 0x4
1452 PACKET_COPY_THRESH = 0x7 1452 NLA_F_NESTED = 0x8000
1453 PACKET_DROP_MEMBERSHIP = 0x2 1453 NLA_F_NET_BYTEORDER = 0x4000
1454 PACKET_FANOUT = 0x12 1454 NLA_HDRLEN = 0x4
1455 PACKET_FANOUT_CBPF = 0x6 1455 NLDLY = 0x300
1456 PACKET_FANOUT_CPU = 0x2 1456 NLMSG_ALIGNTO = 0x4
1457 PACKET_FANOUT_DATA = 0x16 1457 NLMSG_DONE = 0x3
1458 PACKET_FANOUT_EBPF = 0x7 1458 NLMSG_ERROR = 0x2
1459 PACKET_FANOUT_FLAG_DEFRAG = 0x8000 1459 NLMSG_HDRLEN = 0x10
1460 PACKET_FANOUT_FLAG_ROLLOVER = 0x1000 1460 NLMSG_MIN_TYPE = 0x10
1461 PACKET_FANOUT_FLAG_UNIQUEID = 0x2000 1461 NLMSG_NOOP = 0x1
1462 PACKET_FANOUT_HASH = 0x0 1462 NLMSG_OVERRUN = 0x4
1463 PACKET_FANOUT_LB = 0x1 1463 NLM_F_ACK = 0x4
1464 PACKET_FANOUT_QM = 0x5 1464 NLM_F_ACK_TLVS = 0x200
1465 PACKET_FANOUT_RND = 0x4 1465 NLM_F_APPEND = 0x800
1466 PACKET_FANOUT_ROLLOVER = 0x3 1466 NLM_F_ATOMIC = 0x400
1467 PACKET_FASTROUTE = 0x6 1467 NLM_F_CAPPED = 0x100
1468 PACKET_HDRLEN = 0xb 1468 NLM_F_CREATE = 0x400
1469 PACKET_HOST = 0x0 1469 NLM_F_DUMP = 0x300
1470 PACKET_IGNORE_OUTGOING = 0x17 1470 NLM_F_DUMP_FILTERED = 0x20
1471 PACKET_KERNEL = 0x7 1471 NLM_F_DUMP_INTR = 0x10
1472 PACKET_LOOPBACK = 0x5 1472 NLM_F_ECHO = 0x8
1473 PACKET_LOSS = 0xe 1473 NLM_F_EXCL = 0x200
1474 PACKET_MR_ALLMULTI = 0x2 1474 NLM_F_MATCH = 0x200
1475 PACKET_MR_MULTICAST = 0x0 1475 NLM_F_MULTI = 0x2
1476 PACKET_MR_PROMISC = 0x1 1476 NLM_F_NONREC = 0x100
1477 PACKET_MR_UNICAST = 0x3 1477 NLM_F_REPLACE = 0x100
1478 PACKET_MULTICAST = 0x2 1478 NLM_F_REQUEST = 0x1
1479 PACKET_ORIGDEV = 0x9 1479 NLM_F_ROOT = 0x100
1480 PACKET_OTHERHOST = 0x3 1480 NOFLSH = 0x80000000
1481 PACKET_OUTGOING = 0x4 1481 NSFS_MAGIC = 0x6e736673
1482 PACKET_QDISC_BYPASS = 0x14 1482 NS_GET_NSTYPE = 0x2000b703
1483 PACKET_RECV_OUTPUT = 0x3 1483 NS_GET_OWNER_UID = 0x2000b704
1484 PACKET_RESERVE = 0xc 1484 NS_GET_PARENT = 0x2000b702
1485 PACKET_ROLLOVER_STATS = 0x15 1485 NS_GET_USERNS = 0x2000b701
1486 PACKET_RX_RING = 0x5 1486 OCFS2_SUPER_MAGIC = 0x7461636f
1487 PACKET_STATISTICS = 0x6 1487 OCRNL = 0x8
1488 PACKET_TIMESTAMP = 0x11 1488 OFDEL = 0x80
1489 PACKET_TX_HAS_OFF = 0x13 1489 OFILL = 0x40
1490 PACKET_TX_RING = 0xd 1490 OLCUC = 0x4
1491 PACKET_TX_TIMESTAMP = 0x10 1491 ONLCR = 0x2
1492 PACKET_USER = 0x6 1492 ONLRET = 0x20
1493 PACKET_VERSION = 0xa 1493 ONOCR = 0x10
1494 PACKET_VNET_HDR = 0xf 1494 OPENPROM_SUPER_MAGIC = 0x9fa1
1495 PARENB = 0x1000 1495 OPOST = 0x1
1496 PARITY_CRC16_PR0 = 0x2 1496 OVERLAYFS_SUPER_MAGIC = 0x794c7630
1497 PARITY_CRC16_PR0_CCITT = 0x4 1497 O_ACCMODE = 0x3
1498 PARITY_CRC16_PR1 = 0x3 1498 O_APPEND = 0x400
1499 PARITY_CRC16_PR1_CCITT = 0x5 1499 O_ASYNC = 0x2000
1500 PARITY_CRC32_PR0_CCITT = 0x6 1500 O_CLOEXEC = 0x80000
1501 PARITY_CRC32_PR1_CCITT = 0x7 1501 O_CREAT = 0x40
1502 PARITY_DEFAULT = 0x0 1502 O_DIRECT = 0x20000
1503 PARITY_NONE = 0x1 1503 O_DIRECTORY = 0x4000
1504 PARMRK = 0x8 1504 O_DSYNC = 0x1000
1505 PARODD = 0x2000 1505 O_EXCL = 0x80
1506 PENDIN = 0x20000000 1506 O_FSYNC = 0x101000
1507 PERF_EVENT_IOC_DISABLE = 0x20002401 1507 O_LARGEFILE = 0x0
1508 PERF_EVENT_IOC_ENABLE = 0x20002400 1508 O_NDELAY = 0x800
1509 PERF_EVENT_IOC_ID = 0x40082407 1509 O_NOATIME = 0x40000
1510 PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x8008240b 1510 O_NOCTTY = 0x100
1511 PERF_EVENT_IOC_PAUSE_OUTPUT = 0x80042409 1511 O_NOFOLLOW = 0x8000
1512 PERF_EVENT_IOC_PERIOD = 0x80082404 1512 O_NONBLOCK = 0x800
1513 PERF_EVENT_IOC_QUERY_BPF = 0xc008240a 1513 O_PATH = 0x200000
1514 PERF_EVENT_IOC_REFRESH = 0x20002402 1514 O_RDONLY = 0x0
1515 PERF_EVENT_IOC_RESET = 0x20002403 1515 O_RDWR = 0x2
1516 PERF_EVENT_IOC_SET_BPF = 0x80042408 1516 O_RSYNC = 0x101000
1517 PERF_EVENT_IOC_SET_FILTER = 0x80082406 1517 O_SYNC = 0x101000
1518 PERF_EVENT_IOC_SET_OUTPUT = 0x20002405 1518 O_TMPFILE = 0x404000
1519 PIPEFS_MAGIC = 0x50495045 1519 O_TRUNC = 0x200
1520 PPPIOCATTACH = 0x8004743d 1520 O_WRONLY = 0x1
1521 PPPIOCATTCHAN = 0x80047438 1521 PACKET_ADD_MEMBERSHIP = 0x1
1522 PPPIOCCONNECT = 0x8004743a 1522 PACKET_AUXDATA = 0x8
1523 PPPIOCDETACH = 0x8004743c 1523 PACKET_BROADCAST = 0x1
1524 PPPIOCDISCONN = 0x20007439 1524 PACKET_COPY_THRESH = 0x7
1525 PPPIOCGASYNCMAP = 0x40047458 1525 PACKET_DROP_MEMBERSHIP = 0x2
1526 PPPIOCGCHAN = 0x40047437 1526 PACKET_FANOUT = 0x12
1527 PPPIOCGDEBUG = 0x40047441 1527 PACKET_FANOUT_CBPF = 0x6
1528 PPPIOCGFLAGS = 0x4004745a 1528 PACKET_FANOUT_CPU = 0x2
1529 PPPIOCGIDLE = 0x4010743f 1529 PACKET_FANOUT_DATA = 0x16
1530 PPPIOCGL2TPSTATS = 0x40487436 1530 PACKET_FANOUT_EBPF = 0x7
1531 PPPIOCGMRU = 0x40047453 1531 PACKET_FANOUT_FLAG_DEFRAG = 0x8000
1532 PPPIOCGNPMODE = 0xc008744c 1532 PACKET_FANOUT_FLAG_ROLLOVER = 0x1000
1533 PPPIOCGRASYNCMAP = 0x40047455 1533 PACKET_FANOUT_FLAG_UNIQUEID = 0x2000
1534 PPPIOCGUNIT = 0x40047456 1534 PACKET_FANOUT_HASH = 0x0
1535 PPPIOCGXASYNCMAP = 0x40207450 1535 PACKET_FANOUT_LB = 0x1
1536 PPPIOCNEWUNIT = 0xc004743e 1536 PACKET_FANOUT_QM = 0x5
1537 PPPIOCSACTIVE = 0x80107446 1537 PACKET_FANOUT_RND = 0x4
1538 PPPIOCSASYNCMAP = 0x80047457 1538 PACKET_FANOUT_ROLLOVER = 0x3
1539 PPPIOCSCOMPRESS = 0x8010744d 1539 PACKET_FASTROUTE = 0x6
1540 PPPIOCSDEBUG = 0x80047440 1540 PACKET_HDRLEN = 0xb
1541 PPPIOCSFLAGS = 0x80047459 1541 PACKET_HOST = 0x0
1542 PPPIOCSMAXCID = 0x80047451 1542 PACKET_IGNORE_OUTGOING = 0x17
1543 PPPIOCSMRRU = 0x8004743b 1543 PACKET_KERNEL = 0x7
1544 PPPIOCSMRU = 0x80047452 1544 PACKET_LOOPBACK = 0x5
1545 PPPIOCSNPMODE = 0x8008744b 1545 PACKET_LOSS = 0xe
1546 PPPIOCSPASS = 0x80107447 1546 PACKET_MR_ALLMULTI = 0x2
1547 PPPIOCSRASYNCMAP = 0x80047454 1547 PACKET_MR_MULTICAST = 0x0
1548 PPPIOCSXASYNCMAP = 0x8020744f 1548 PACKET_MR_PROMISC = 0x1
1549 PPPIOCXFERUNIT = 0x2000744e 1549 PACKET_MR_UNICAST = 0x3
1550 PRIO_PGRP = 0x1 1550 PACKET_MULTICAST = 0x2
1551 PRIO_PROCESS = 0x0 1551 PACKET_ORIGDEV = 0x9
1552 PRIO_USER = 0x2 1552 PACKET_OTHERHOST = 0x3
1553 PROC_SUPER_MAGIC = 0x9fa0 1553 PACKET_OUTGOING = 0x4
1554 PROT_EXEC = 0x4 1554 PACKET_QDISC_BYPASS = 0x14
1555 PROT_GROWSDOWN = 0x1000000 1555 PACKET_RECV_OUTPUT = 0x3
1556 PROT_GROWSUP = 0x2000000 1556 PACKET_RESERVE = 0xc
1557 PROT_NONE = 0x0 1557 PACKET_ROLLOVER_STATS = 0x15
1558 PROT_READ = 0x1 1558 PACKET_RX_RING = 0x5
1559 PROT_SAO = 0x10 1559 PACKET_STATISTICS = 0x6
1560 PROT_WRITE = 0x2 1560 PACKET_TIMESTAMP = 0x11
1561 PR_CAPBSET_DROP = 0x18 1561 PACKET_TX_HAS_OFF = 0x13
1562 PR_CAPBSET_READ = 0x17 1562 PACKET_TX_RING = 0xd
1563 PR_CAP_AMBIENT = 0x2f 1563 PACKET_TX_TIMESTAMP = 0x10
1564 PR_CAP_AMBIENT_CLEAR_ALL = 0x4 1564 PACKET_USER = 0x6
1565 PR_CAP_AMBIENT_IS_SET = 0x1 1565 PACKET_VERSION = 0xa
1566 PR_CAP_AMBIENT_LOWER = 0x3 1566 PACKET_VNET_HDR = 0xf
1567 PR_CAP_AMBIENT_RAISE = 0x2 1567 PARENB = 0x1000
1568 PR_ENDIAN_BIG = 0x0 1568 PARITY_CRC16_PR0 = 0x2
1569 PR_ENDIAN_LITTLE = 0x1 1569 PARITY_CRC16_PR0_CCITT = 0x4
1570 PR_ENDIAN_PPC_LITTLE = 0x2 1570 PARITY_CRC16_PR1 = 0x3
1571 PR_FPEMU_NOPRINT = 0x1 1571 PARITY_CRC16_PR1_CCITT = 0x5
1572 PR_FPEMU_SIGFPE = 0x2 1572 PARITY_CRC32_PR0_CCITT = 0x6
1573 PR_FP_EXC_ASYNC = 0x2 1573 PARITY_CRC32_PR1_CCITT = 0x7
1574 PR_FP_EXC_DISABLED = 0x0 1574 PARITY_DEFAULT = 0x0
1575 PR_FP_EXC_DIV = 0x10000 1575 PARITY_NONE = 0x1
1576 PR_FP_EXC_INV = 0x100000 1576 PARMRK = 0x8
1577 PR_FP_EXC_NONRECOV = 0x1 1577 PARODD = 0x2000
1578 PR_FP_EXC_OVF = 0x20000 1578 PENDIN = 0x20000000
1579 PR_FP_EXC_PRECISE = 0x3 1579 PERF_EVENT_IOC_DISABLE = 0x20002401
1580 PR_FP_EXC_RES = 0x80000 1580 PERF_EVENT_IOC_ENABLE = 0x20002400
1581 PR_FP_EXC_SW_ENABLE = 0x80 1581 PERF_EVENT_IOC_ID = 0x40082407
1582 PR_FP_EXC_UND = 0x40000 1582 PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x8008240b
1583 PR_FP_MODE_FR = 0x1 1583 PERF_EVENT_IOC_PAUSE_OUTPUT = 0x80042409
1584 PR_FP_MODE_FRE = 0x2 1584 PERF_EVENT_IOC_PERIOD = 0x80082404
1585 PR_GET_CHILD_SUBREAPER = 0x25 1585 PERF_EVENT_IOC_QUERY_BPF = 0xc008240a
1586 PR_GET_DUMPABLE = 0x3 1586 PERF_EVENT_IOC_REFRESH = 0x20002402
1587 PR_GET_ENDIAN = 0x13 1587 PERF_EVENT_IOC_RESET = 0x20002403
1588 PR_GET_FPEMU = 0x9 1588 PERF_EVENT_IOC_SET_BPF = 0x80042408
1589 PR_GET_FPEXC = 0xb 1589 PERF_EVENT_IOC_SET_FILTER = 0x80082406
1590 PR_GET_FP_MODE = 0x2e 1590 PERF_EVENT_IOC_SET_OUTPUT = 0x20002405
1591 PR_GET_KEEPCAPS = 0x7 1591 PIPEFS_MAGIC = 0x50495045
1592 PR_GET_NAME = 0x10 1592 PPC_CMM_MAGIC = 0xc7571590
1593 PR_GET_NO_NEW_PRIVS = 0x27 1593 PPPIOCATTACH = 0x8004743d
1594 PR_GET_PDEATHSIG = 0x2 1594 PPPIOCATTCHAN = 0x80047438
1595 PR_GET_SECCOMP = 0x15 1595 PPPIOCCONNECT = 0x8004743a
1596 PR_GET_SECUREBITS = 0x1b 1596 PPPIOCDETACH = 0x8004743c
1597 PR_GET_SPECULATION_CTRL = 0x34 1597 PPPIOCDISCONN = 0x20007439
1598 PR_GET_THP_DISABLE = 0x2a 1598 PPPIOCGASYNCMAP = 0x40047458
1599 PR_GET_TID_ADDRESS = 0x28 1599 PPPIOCGCHAN = 0x40047437
1600 PR_GET_TIMERSLACK = 0x1e 1600 PPPIOCGDEBUG = 0x40047441
1601 PR_GET_TIMING = 0xd 1601 PPPIOCGFLAGS = 0x4004745a
1602 PR_GET_TSC = 0x19 1602 PPPIOCGIDLE = 0x4010743f
1603 PR_GET_UNALIGN = 0x5 1603 PPPIOCGIDLE32 = 0x4008743f
1604 PR_MCE_KILL = 0x21 1604 PPPIOCGIDLE64 = 0x4010743f
1605 PR_MCE_KILL_CLEAR = 0x0 1605 PPPIOCGL2TPSTATS = 0x40487436
1606 PR_MCE_KILL_DEFAULT = 0x2 1606 PPPIOCGMRU = 0x40047453
1607 PR_MCE_KILL_EARLY = 0x1 1607 PPPIOCGNPMODE = 0xc008744c
1608 PR_MCE_KILL_GET = 0x22 1608 PPPIOCGRASYNCMAP = 0x40047455
1609 PR_MCE_KILL_LATE = 0x0 1609 PPPIOCGUNIT = 0x40047456
1610 PR_MCE_KILL_SET = 0x1 1610 PPPIOCGXASYNCMAP = 0x40207450
1611 PR_MPX_DISABLE_MANAGEMENT = 0x2c 1611 PPPIOCNEWUNIT = 0xc004743e
1612 PR_MPX_ENABLE_MANAGEMENT = 0x2b 1612 PPPIOCSACTIVE = 0x80107446
1613 PR_PAC_APDAKEY = 0x4 1613 PPPIOCSASYNCMAP = 0x80047457
1614 PR_PAC_APDBKEY = 0x8 1614 PPPIOCSCOMPRESS = 0x8010744d
1615 PR_PAC_APGAKEY = 0x10 1615 PPPIOCSDEBUG = 0x80047440
1616 PR_PAC_APIAKEY = 0x1 1616 PPPIOCSFLAGS = 0x80047459
1617 PR_PAC_APIBKEY = 0x2 1617 PPPIOCSMAXCID = 0x80047451
1618 PR_PAC_RESET_KEYS = 0x36 1618 PPPIOCSMRRU = 0x8004743b
1619 PR_SET_CHILD_SUBREAPER = 0x24 1619 PPPIOCSMRU = 0x80047452
1620 PR_SET_DUMPABLE = 0x4 1620 PPPIOCSNPMODE = 0x8008744b
1621 PR_SET_ENDIAN = 0x14 1621 PPPIOCSPASS = 0x80107447
1622 PR_SET_FPEMU = 0xa 1622 PPPIOCSRASYNCMAP = 0x80047454
1623 PR_SET_FPEXC = 0xc 1623 PPPIOCSXASYNCMAP = 0x8020744f
1624 PR_SET_FP_MODE = 0x2d 1624 PPPIOCXFERUNIT = 0x2000744e
1625 PR_SET_KEEPCAPS = 0x8 1625 PRIO_PGRP = 0x1
1626 PR_SET_MM = 0x23 1626 PRIO_PROCESS = 0x0
1627 PR_SET_MM_ARG_END = 0x9 1627 PRIO_USER = 0x2
1628 PR_SET_MM_ARG_START = 0x8 1628 PROC_SUPER_MAGIC = 0x9fa0
1629 PR_SET_MM_AUXV = 0xc 1629 PROT_EXEC = 0x4
1630 PR_SET_MM_BRK = 0x7 1630 PROT_GROWSDOWN = 0x1000000
1631 PR_SET_MM_END_CODE = 0x2 1631 PROT_GROWSUP = 0x2000000
1632 PR_SET_MM_END_DATA = 0x4 1632 PROT_NONE = 0x0
1633 PR_SET_MM_ENV_END = 0xb 1633 PROT_READ = 0x1
1634 PR_SET_MM_ENV_START = 0xa 1634 PROT_SAO = 0x10
1635 PR_SET_MM_EXE_FILE = 0xd 1635 PROT_WRITE = 0x2
1636 PR_SET_MM_MAP = 0xe 1636 PR_CAPBSET_DROP = 0x18
1637 PR_SET_MM_MAP_SIZE = 0xf 1637 PR_CAPBSET_READ = 0x17
1638 PR_SET_MM_START_BRK = 0x6 1638 PR_CAP_AMBIENT = 0x2f
1639 PR_SET_MM_START_CODE = 0x1 1639 PR_CAP_AMBIENT_CLEAR_ALL = 0x4
1640 PR_SET_MM_START_DATA = 0x3 1640 PR_CAP_AMBIENT_IS_SET = 0x1
1641 PR_SET_MM_START_STACK = 0x5 1641 PR_CAP_AMBIENT_LOWER = 0x3
1642 PR_SET_NAME = 0xf 1642 PR_CAP_AMBIENT_RAISE = 0x2
1643 PR_SET_NO_NEW_PRIVS = 0x26 1643 PR_ENDIAN_BIG = 0x0
1644 PR_SET_PDEATHSIG = 0x1 1644 PR_ENDIAN_LITTLE = 0x1
1645 PR_SET_PTRACER = 0x59616d61 1645 PR_ENDIAN_PPC_LITTLE = 0x2
1646 PR_SET_PTRACER_ANY = 0xffffffffffffffff 1646 PR_FPEMU_NOPRINT = 0x1
1647 PR_SET_SECCOMP = 0x16 1647 PR_FPEMU_SIGFPE = 0x2
1648 PR_SET_SECUREBITS = 0x1c 1648 PR_FP_EXC_ASYNC = 0x2
1649 PR_SET_SPECULATION_CTRL = 0x35 1649 PR_FP_EXC_DISABLED = 0x0
1650 PR_SET_THP_DISABLE = 0x29 1650 PR_FP_EXC_DIV = 0x10000
1651 PR_SET_TIMERSLACK = 0x1d 1651 PR_FP_EXC_INV = 0x100000
1652 PR_SET_TIMING = 0xe 1652 PR_FP_EXC_NONRECOV = 0x1
1653 PR_SET_TSC = 0x1a 1653 PR_FP_EXC_OVF = 0x20000
1654 PR_SET_UNALIGN = 0x6 1654 PR_FP_EXC_PRECISE = 0x3
1655 PR_SPEC_DISABLE = 0x4 1655 PR_FP_EXC_RES = 0x80000
1656 PR_SPEC_DISABLE_NOEXEC = 0x10 1656 PR_FP_EXC_SW_ENABLE = 0x80
1657 PR_SPEC_ENABLE = 0x2 1657 PR_FP_EXC_UND = 0x40000
1658 PR_SPEC_FORCE_DISABLE = 0x8 1658 PR_FP_MODE_FR = 0x1
1659 PR_SPEC_INDIRECT_BRANCH = 0x1 1659 PR_FP_MODE_FRE = 0x2
1660 PR_SPEC_NOT_AFFECTED = 0x0 1660 PR_GET_CHILD_SUBREAPER = 0x25
1661 PR_SPEC_PRCTL = 0x1 1661 PR_GET_DUMPABLE = 0x3
1662 PR_SPEC_STORE_BYPASS = 0x0 1662 PR_GET_ENDIAN = 0x13
1663 PR_SVE_GET_VL = 0x33 1663 PR_GET_FPEMU = 0x9
1664 PR_SVE_SET_VL = 0x32 1664 PR_GET_FPEXC = 0xb
1665 PR_SVE_SET_VL_ONEXEC = 0x40000 1665 PR_GET_FP_MODE = 0x2e
1666 PR_SVE_VL_INHERIT = 0x20000 1666 PR_GET_KEEPCAPS = 0x7
1667 PR_SVE_VL_LEN_MASK = 0xffff 1667 PR_GET_NAME = 0x10
1668 PR_TASK_PERF_EVENTS_DISABLE = 0x1f 1668 PR_GET_NO_NEW_PRIVS = 0x27
1669 PR_TASK_PERF_EVENTS_ENABLE = 0x20 1669 PR_GET_PDEATHSIG = 0x2
1670 PR_TIMING_STATISTICAL = 0x0 1670 PR_GET_SECCOMP = 0x15
1671 PR_TIMING_TIMESTAMP = 0x1 1671 PR_GET_SECUREBITS = 0x1b
1672 PR_TSC_ENABLE = 0x1 1672 PR_GET_SPECULATION_CTRL = 0x34
1673 PR_TSC_SIGSEGV = 0x2 1673 PR_GET_TAGGED_ADDR_CTRL = 0x38
1674 PR_UNALIGN_NOPRINT = 0x1 1674 PR_GET_THP_DISABLE = 0x2a
1675 PR_UNALIGN_SIGBUS = 0x2 1675 PR_GET_TID_ADDRESS = 0x28
1676 PSTOREFS_MAGIC = 0x6165676c 1676 PR_GET_TIMERSLACK = 0x1e
1677 PTRACE_ATTACH = 0x10 1677 PR_GET_TIMING = 0xd
1678 PTRACE_CONT = 0x7 1678 PR_GET_TSC = 0x19
1679 PTRACE_DETACH = 0x11 1679 PR_GET_UNALIGN = 0x5
1680 PTRACE_EVENT_CLONE = 0x3 1680 PR_MCE_KILL = 0x21
1681 PTRACE_EVENT_EXEC = 0x4 1681 PR_MCE_KILL_CLEAR = 0x0
1682 PTRACE_EVENT_EXIT = 0x6 1682 PR_MCE_KILL_DEFAULT = 0x2
1683 PTRACE_EVENT_FORK = 0x1 1683 PR_MCE_KILL_EARLY = 0x1
1684 PTRACE_EVENT_SECCOMP = 0x7 1684 PR_MCE_KILL_GET = 0x22
1685 PTRACE_EVENT_STOP = 0x80 1685 PR_MCE_KILL_LATE = 0x0
1686 PTRACE_EVENT_VFORK = 0x2 1686 PR_MCE_KILL_SET = 0x1
1687 PTRACE_EVENT_VFORK_DONE = 0x5 1687 PR_MPX_DISABLE_MANAGEMENT = 0x2c
1688 PTRACE_GETEVENTMSG = 0x4201 1688 PR_MPX_ENABLE_MANAGEMENT = 0x2b
1689 PTRACE_GETEVRREGS = 0x14 1689 PR_PAC_APDAKEY = 0x4
1690 PTRACE_GETFPREGS = 0xe 1690 PR_PAC_APDBKEY = 0x8
1691 PTRACE_GETREGS = 0xc 1691 PR_PAC_APGAKEY = 0x10
1692 PTRACE_GETREGS64 = 0x16 1692 PR_PAC_APIAKEY = 0x1
1693 PTRACE_GETREGSET = 0x4204 1693 PR_PAC_APIBKEY = 0x2
1694 PTRACE_GETSIGINFO = 0x4202 1694 PR_PAC_RESET_KEYS = 0x36
1695 PTRACE_GETSIGMASK = 0x420a 1695 PR_SET_CHILD_SUBREAPER = 0x24
1696 PTRACE_GETVRREGS = 0x12 1696 PR_SET_DUMPABLE = 0x4
1697 PTRACE_GETVSRREGS = 0x1b 1697 PR_SET_ENDIAN = 0x14
1698 PTRACE_GET_DEBUGREG = 0x19 1698 PR_SET_FPEMU = 0xa
1699 PTRACE_INTERRUPT = 0x4207 1699 PR_SET_FPEXC = 0xc
1700 PTRACE_KILL = 0x8 1700 PR_SET_FP_MODE = 0x2d
1701 PTRACE_LISTEN = 0x4208 1701 PR_SET_KEEPCAPS = 0x8
1702 PTRACE_O_EXITKILL = 0x100000 1702 PR_SET_MM = 0x23
1703 PTRACE_O_MASK = 0x3000ff 1703 PR_SET_MM_ARG_END = 0x9
1704 PTRACE_O_SUSPEND_SECCOMP = 0x200000 1704 PR_SET_MM_ARG_START = 0x8
1705 PTRACE_O_TRACECLONE = 0x8 1705 PR_SET_MM_AUXV = 0xc
1706 PTRACE_O_TRACEEXEC = 0x10 1706 PR_SET_MM_BRK = 0x7
1707 PTRACE_O_TRACEEXIT = 0x40 1707 PR_SET_MM_END_CODE = 0x2
1708 PTRACE_O_TRACEFORK = 0x2 1708 PR_SET_MM_END_DATA = 0x4
1709 PTRACE_O_TRACESECCOMP = 0x80 1709 PR_SET_MM_ENV_END = 0xb
1710 PTRACE_O_TRACESYSGOOD = 0x1 1710 PR_SET_MM_ENV_START = 0xa
1711 PTRACE_O_TRACEVFORK = 0x4 1711 PR_SET_MM_EXE_FILE = 0xd
1712 PTRACE_O_TRACEVFORKDONE = 0x20 1712 PR_SET_MM_MAP = 0xe
1713 PTRACE_PEEKDATA = 0x2 1713 PR_SET_MM_MAP_SIZE = 0xf
1714 PTRACE_PEEKSIGINFO = 0x4209 1714 PR_SET_MM_START_BRK = 0x6
1715 PTRACE_PEEKSIGINFO_SHARED = 0x1 1715 PR_SET_MM_START_CODE = 0x1
1716 PTRACE_PEEKTEXT = 0x1 1716 PR_SET_MM_START_DATA = 0x3
1717 PTRACE_PEEKUSR = 0x3 1717 PR_SET_MM_START_STACK = 0x5
1718 PTRACE_POKEDATA = 0x5 1718 PR_SET_NAME = 0xf
1719 PTRACE_POKETEXT = 0x4 1719 PR_SET_NO_NEW_PRIVS = 0x26
1720 PTRACE_POKEUSR = 0x6 1720 PR_SET_PDEATHSIG = 0x1
1721 PTRACE_SECCOMP_GET_FILTER = 0x420c 1721 PR_SET_PTRACER = 0x59616d61
1722 PTRACE_SECCOMP_GET_METADATA = 0x420d 1722 PR_SET_PTRACER_ANY = 0xffffffffffffffff
1723 PTRACE_SEIZE = 0x4206 1723 PR_SET_SECCOMP = 0x16
1724 PTRACE_SETEVRREGS = 0x15 1724 PR_SET_SECUREBITS = 0x1c
1725 PTRACE_SETFPREGS = 0xf 1725 PR_SET_SPECULATION_CTRL = 0x35
1726 PTRACE_SETOPTIONS = 0x4200 1726 PR_SET_TAGGED_ADDR_CTRL = 0x37
1727 PTRACE_SETREGS = 0xd 1727 PR_SET_THP_DISABLE = 0x29
1728 PTRACE_SETREGS64 = 0x17 1728 PR_SET_TIMERSLACK = 0x1d
1729 PTRACE_SETREGSET = 0x4205 1729 PR_SET_TIMING = 0xe
1730 PTRACE_SETSIGINFO = 0x4203 1730 PR_SET_TSC = 0x1a
1731 PTRACE_SETSIGMASK = 0x420b 1731 PR_SET_UNALIGN = 0x6
1732 PTRACE_SETVRREGS = 0x13 1732 PR_SPEC_DISABLE = 0x4
1733 PTRACE_SETVSRREGS = 0x1c 1733 PR_SPEC_DISABLE_NOEXEC = 0x10
1734 PTRACE_SET_DEBUGREG = 0x1a 1734 PR_SPEC_ENABLE = 0x2
1735 PTRACE_SINGLEBLOCK = 0x100 1735 PR_SPEC_FORCE_DISABLE = 0x8
1736 PTRACE_SINGLESTEP = 0x9 1736 PR_SPEC_INDIRECT_BRANCH = 0x1
1737 PTRACE_SYSCALL = 0x18 1737 PR_SPEC_NOT_AFFECTED = 0x0
1738 PTRACE_SYSEMU = 0x1d 1738 PR_SPEC_PRCTL = 0x1
1739 PTRACE_SYSEMU_SINGLESTEP = 0x1e 1739 PR_SPEC_STORE_BYPASS = 0x0
1740 PTRACE_TRACEME = 0x0 1740 PR_SVE_GET_VL = 0x33
1741 PT_CCR = 0x26 1741 PR_SVE_SET_VL = 0x32
1742 PT_CTR = 0x23 1742 PR_SVE_SET_VL_ONEXEC = 0x40000
1743 PT_DAR = 0x29 1743 PR_SVE_VL_INHERIT = 0x20000
1744 PT_DSCR = 0x2c 1744 PR_SVE_VL_LEN_MASK = 0xffff
1745 PT_DSISR = 0x2a 1745 PR_TAGGED_ADDR_ENABLE = 0x1
1746 PT_FPR0 = 0x30 1746 PR_TASK_PERF_EVENTS_DISABLE = 0x1f
1747 PT_FPSCR = 0x50 1747 PR_TASK_PERF_EVENTS_ENABLE = 0x20
1748 PT_LNK = 0x24 1748 PR_TIMING_STATISTICAL = 0x0
1749 PT_MSR = 0x21 1749 PR_TIMING_TIMESTAMP = 0x1
1750 PT_NIP = 0x20 1750 PR_TSC_ENABLE = 0x1
1751 PT_ORIG_R3 = 0x22 1751 PR_TSC_SIGSEGV = 0x2
1752 PT_R0 = 0x0 1752 PR_UNALIGN_NOPRINT = 0x1
1753 PT_R1 = 0x1 1753 PR_UNALIGN_SIGBUS = 0x2
1754 PT_R10 = 0xa 1754 PSTOREFS_MAGIC = 0x6165676c
1755 PT_R11 = 0xb 1755 PTRACE_ATTACH = 0x10
1756 PT_R12 = 0xc 1756 PTRACE_CONT = 0x7
1757 PT_R13 = 0xd 1757 PTRACE_DETACH = 0x11
1758 PT_R14 = 0xe 1758 PTRACE_EVENTMSG_SYSCALL_ENTRY = 0x1
1759 PT_R15 = 0xf 1759 PTRACE_EVENTMSG_SYSCALL_EXIT = 0x2
1760 PT_R16 = 0x10 1760 PTRACE_EVENT_CLONE = 0x3
1761 PT_R17 = 0x11 1761 PTRACE_EVENT_EXEC = 0x4
1762 PT_R18 = 0x12 1762 PTRACE_EVENT_EXIT = 0x6
1763 PT_R19 = 0x13 1763 PTRACE_EVENT_FORK = 0x1
1764 PT_R2 = 0x2 1764 PTRACE_EVENT_SECCOMP = 0x7
1765 PT_R20 = 0x14 1765 PTRACE_EVENT_STOP = 0x80
1766 PT_R21 = 0x15 1766 PTRACE_EVENT_VFORK = 0x2
1767 PT_R22 = 0x16 1767 PTRACE_EVENT_VFORK_DONE = 0x5
1768 PT_R23 = 0x17 1768 PTRACE_GETEVENTMSG = 0x4201
1769 PT_R24 = 0x18 1769 PTRACE_GETEVRREGS = 0x14
1770 PT_R25 = 0x19 1770 PTRACE_GETFPREGS = 0xe
1771 PT_R26 = 0x1a 1771 PTRACE_GETREGS = 0xc
1772 PT_R27 = 0x1b 1772 PTRACE_GETREGS64 = 0x16
1773 PT_R28 = 0x1c 1773 PTRACE_GETREGSET = 0x4204
1774 PT_R29 = 0x1d 1774 PTRACE_GETSIGINFO = 0x4202
1775 PT_R3 = 0x3 1775 PTRACE_GETSIGMASK = 0x420a
1776 PT_R30 = 0x1e 1776 PTRACE_GETVRREGS = 0x12
1777 PT_R31 = 0x1f 1777 PTRACE_GETVSRREGS = 0x1b
1778 PT_R4 = 0x4 1778 PTRACE_GET_DEBUGREG = 0x19
1779 PT_R5 = 0x5 1779 PTRACE_GET_SYSCALL_INFO = 0x420e
1780 PT_R6 = 0x6 1780 PTRACE_INTERRUPT = 0x4207
1781 PT_R7 = 0x7 1781 PTRACE_KILL = 0x8
1782 PT_R8 = 0x8 1782 PTRACE_LISTEN = 0x4208
1783 PT_R9 = 0x9 1783 PTRACE_O_EXITKILL = 0x100000
1784 PT_REGS_COUNT = 0x2c 1784 PTRACE_O_MASK = 0x3000ff
1785 PT_RESULT = 0x2b 1785 PTRACE_O_SUSPEND_SECCOMP = 0x200000
1786 PT_SOFTE = 0x27 1786 PTRACE_O_TRACECLONE = 0x8
1787 PT_TRAP = 0x28 1787 PTRACE_O_TRACEEXEC = 0x10
1788 PT_VR0 = 0x52 1788 PTRACE_O_TRACEEXIT = 0x40
1789 PT_VRSAVE = 0x94 1789 PTRACE_O_TRACEFORK = 0x2
1790 PT_VSCR = 0x93 1790 PTRACE_O_TRACESECCOMP = 0x80
1791 PT_VSR0 = 0x96 1791 PTRACE_O_TRACESYSGOOD = 0x1
1792 PT_VSR31 = 0xd4 1792 PTRACE_O_TRACEVFORK = 0x4
1793 PT_XER = 0x25 1793 PTRACE_O_TRACEVFORKDONE = 0x20
1794 QNX4_SUPER_MAGIC = 0x2f 1794 PTRACE_PEEKDATA = 0x2
1795 QNX6_SUPER_MAGIC = 0x68191122 1795 PTRACE_PEEKSIGINFO = 0x4209
1796 RAMFS_MAGIC = 0x858458f6 1796 PTRACE_PEEKSIGINFO_SHARED = 0x1
1797 RDTGROUP_SUPER_MAGIC = 0x7655821 1797 PTRACE_PEEKTEXT = 0x1
1798 REISERFS_SUPER_MAGIC = 0x52654973 1798 PTRACE_PEEKUSR = 0x3
1799 RENAME_EXCHANGE = 0x2 1799 PTRACE_POKEDATA = 0x5
1800 RENAME_NOREPLACE = 0x1 1800 PTRACE_POKETEXT = 0x4
1801 RENAME_WHITEOUT = 0x4 1801 PTRACE_POKEUSR = 0x6
1802 RLIMIT_AS = 0x9 1802 PTRACE_SECCOMP_GET_FILTER = 0x420c
1803 RLIMIT_CORE = 0x4 1803 PTRACE_SECCOMP_GET_METADATA = 0x420d
1804 RLIMIT_CPU = 0x0 1804 PTRACE_SEIZE = 0x4206
1805 RLIMIT_DATA = 0x2 1805 PTRACE_SETEVRREGS = 0x15
1806 RLIMIT_FSIZE = 0x1 1806 PTRACE_SETFPREGS = 0xf
1807 RLIMIT_LOCKS = 0xa 1807 PTRACE_SETOPTIONS = 0x4200
1808 RLIMIT_MEMLOCK = 0x8 1808 PTRACE_SETREGS = 0xd
1809 RLIMIT_MSGQUEUE = 0xc 1809 PTRACE_SETREGS64 = 0x17
1810 RLIMIT_NICE = 0xd 1810 PTRACE_SETREGSET = 0x4205
1811 RLIMIT_NOFILE = 0x7 1811 PTRACE_SETSIGINFO = 0x4203
1812 RLIMIT_NPROC = 0x6 1812 PTRACE_SETSIGMASK = 0x420b
1813 RLIMIT_RSS = 0x5 1813 PTRACE_SETVRREGS = 0x13
1814 RLIMIT_RTPRIO = 0xe 1814 PTRACE_SETVSRREGS = 0x1c
1815 RLIMIT_RTTIME = 0xf 1815 PTRACE_SET_DEBUGREG = 0x1a
1816 RLIMIT_SIGPENDING = 0xb 1816 PTRACE_SINGLEBLOCK = 0x100
1817 RLIMIT_STACK = 0x3 1817 PTRACE_SINGLESTEP = 0x9
1818 RLIM_INFINITY = 0xffffffffffffffff 1818 PTRACE_SYSCALL = 0x18
1819 RNDADDENTROPY = 0x80085203 1819 PTRACE_SYSCALL_INFO_ENTRY = 0x1
1820 RNDADDTOENTCNT = 0x80045201 1820 PTRACE_SYSCALL_INFO_EXIT = 0x2
1821 RNDCLEARPOOL = 0x20005206 1821 PTRACE_SYSCALL_INFO_NONE = 0x0
1822 RNDGETENTCNT = 0x40045200 1822 PTRACE_SYSCALL_INFO_SECCOMP = 0x3
1823 RNDGETPOOL = 0x40085202 1823 PTRACE_SYSEMU = 0x1d
1824 RNDRESEEDCRNG = 0x20005207 1824 PTRACE_SYSEMU_SINGLESTEP = 0x1e
1825 RNDZAPENTCNT = 0x20005204 1825 PTRACE_TRACEME = 0x0
1826 RTAX_ADVMSS = 0x8 1826 PT_CCR = 0x26
1827 RTAX_CC_ALGO = 0x10 1827 PT_CTR = 0x23
1828 RTAX_CWND = 0x7 1828 PT_DAR = 0x29
1829 RTAX_FASTOPEN_NO_COOKIE = 0x11 1829 PT_DSCR = 0x2c
1830 RTAX_FEATURES = 0xc 1830 PT_DSISR = 0x2a
1831 RTAX_FEATURE_ALLFRAG = 0x8 1831 PT_FPR0 = 0x30
1832 RTAX_FEATURE_ECN = 0x1 1832 PT_FPSCR = 0x50
1833 RTAX_FEATURE_MASK = 0xf 1833 PT_LNK = 0x24
1834 RTAX_FEATURE_SACK = 0x2 1834 PT_MSR = 0x21
1835 RTAX_FEATURE_TIMESTAMP = 0x4 1835 PT_NIP = 0x20
1836 RTAX_HOPLIMIT = 0xa 1836 PT_ORIG_R3 = 0x22
1837 RTAX_INITCWND = 0xb 1837 PT_R0 = 0x0
1838 RTAX_INITRWND = 0xe 1838 PT_R1 = 0x1
1839 RTAX_LOCK = 0x1 1839 PT_R10 = 0xa
1840 RTAX_MAX = 0x11 1840 PT_R11 = 0xb
1841 RTAX_MTU = 0x2 1841 PT_R12 = 0xc
1842 RTAX_QUICKACK = 0xf 1842 PT_R13 = 0xd
1843 RTAX_REORDERING = 0x9 1843 PT_R14 = 0xe
1844 RTAX_RTO_MIN = 0xd 1844 PT_R15 = 0xf
1845 RTAX_RTT = 0x4 1845 PT_R16 = 0x10
1846 RTAX_RTTVAR = 0x5 1846 PT_R17 = 0x11
1847 RTAX_SSTHRESH = 0x6 1847 PT_R18 = 0x12
1848 RTAX_UNSPEC = 0x0 1848 PT_R19 = 0x13
1849 RTAX_WINDOW = 0x3 1849 PT_R2 = 0x2
1850 RTA_ALIGNTO = 0x4 1850 PT_R20 = 0x14
1851 RTA_MAX = 0x1d 1851 PT_R21 = 0x15
1852 RTCF_DIRECTSRC = 0x4000000 1852 PT_R22 = 0x16
1853 RTCF_DOREDIRECT = 0x1000000 1853 PT_R23 = 0x17
1854 RTCF_LOG = 0x2000000 1854 PT_R24 = 0x18
1855 RTCF_MASQ = 0x400000 1855 PT_R25 = 0x19
1856 RTCF_NAT = 0x800000 1856 PT_R26 = 0x1a
1857 RTCF_VALVE = 0x200000 1857 PT_R27 = 0x1b
1858 RTC_AF = 0x20 1858 PT_R28 = 0x1c
1859 RTC_AIE_OFF = 0x20007002 1859 PT_R29 = 0x1d
1860 RTC_AIE_ON = 0x20007001 1860 PT_R3 = 0x3
1861 RTC_ALM_READ = 0x40247008 1861 PT_R30 = 0x1e
1862 RTC_ALM_SET = 0x80247007 1862 PT_R31 = 0x1f
1863 RTC_EPOCH_READ = 0x4008700d 1863 PT_R4 = 0x4
1864 RTC_EPOCH_SET = 0x8008700e 1864 PT_R5 = 0x5
1865 RTC_IRQF = 0x80 1865 PT_R6 = 0x6
1866 RTC_IRQP_READ = 0x4008700b 1866 PT_R7 = 0x7
1867 RTC_IRQP_SET = 0x8008700c 1867 PT_R8 = 0x8
1868 RTC_MAX_FREQ = 0x2000 1868 PT_R9 = 0x9
1869 RTC_PF = 0x40 1869 PT_REGS_COUNT = 0x2c
1870 RTC_PIE_OFF = 0x20007006 1870 PT_RESULT = 0x2b
1871 RTC_PIE_ON = 0x20007005 1871 PT_SOFTE = 0x27
1872 RTC_PLL_GET = 0x40207011 1872 PT_TRAP = 0x28
1873 RTC_PLL_SET = 0x80207012 1873 PT_VR0 = 0x52
1874 RTC_RD_TIME = 0x40247009 1874 PT_VRSAVE = 0x94
1875 RTC_SET_TIME = 0x8024700a 1875 PT_VSCR = 0x93
1876 RTC_UF = 0x10 1876 PT_VSR0 = 0x96
1877 RTC_UIE_OFF = 0x20007004 1877 PT_VSR31 = 0xd4
1878 RTC_UIE_ON = 0x20007003 1878 PT_XER = 0x25
1879 RTC_VL_CLR = 0x20007014 1879 QNX4_SUPER_MAGIC = 0x2f
1880 RTC_VL_READ = 0x40047013 1880 QNX6_SUPER_MAGIC = 0x68191122
1881 RTC_WIE_OFF = 0x20007010 1881 RAMFS_MAGIC = 0x858458f6
1882 RTC_WIE_ON = 0x2000700f 1882 RDTGROUP_SUPER_MAGIC = 0x7655821
1883 RTC_WKALM_RD = 0x40287010 1883 REISERFS_SUPER_MAGIC = 0x52654973
1884 RTC_WKALM_SET = 0x8028700f 1884 RENAME_EXCHANGE = 0x2
1885 RTF_ADDRCLASSMASK = 0xf8000000 1885 RENAME_NOREPLACE = 0x1
1886 RTF_ADDRCONF = 0x40000 1886 RENAME_WHITEOUT = 0x4
1887 RTF_ALLONLINK = 0x20000 1887 RLIMIT_AS = 0x9
1888 RTF_BROADCAST = 0x10000000 1888 RLIMIT_CORE = 0x4
1889 RTF_CACHE = 0x1000000 1889 RLIMIT_CPU = 0x0
1890 RTF_DEFAULT = 0x10000 1890 RLIMIT_DATA = 0x2
1891 RTF_DYNAMIC = 0x10 1891 RLIMIT_FSIZE = 0x1
1892 RTF_FLOW = 0x2000000 1892 RLIMIT_LOCKS = 0xa
1893 RTF_GATEWAY = 0x2 1893 RLIMIT_MEMLOCK = 0x8
1894 RTF_HOST = 0x4 1894 RLIMIT_MSGQUEUE = 0xc
1895 RTF_INTERFACE = 0x40000000 1895 RLIMIT_NICE = 0xd
1896 RTF_IRTT = 0x100 1896 RLIMIT_NOFILE = 0x7
1897 RTF_LINKRT = 0x100000 1897 RLIMIT_NPROC = 0x6
1898 RTF_LOCAL = 0x80000000 1898 RLIMIT_RSS = 0x5
1899 RTF_MODIFIED = 0x20 1899 RLIMIT_RTPRIO = 0xe
1900 RTF_MSS = 0x40 1900 RLIMIT_RTTIME = 0xf
1901 RTF_MTU = 0x40 1901 RLIMIT_SIGPENDING = 0xb
1902 RTF_MULTICAST = 0x20000000 1902 RLIMIT_STACK = 0x3
1903 RTF_NAT = 0x8000000 1903 RLIM_INFINITY = 0xffffffffffffffff
1904 RTF_NOFORWARD = 0x1000 1904 RNDADDENTROPY = 0x80085203
1905 RTF_NONEXTHOP = 0x200000 1905 RNDADDTOENTCNT = 0x80045201
1906 RTF_NOPMTUDISC = 0x4000 1906 RNDCLEARPOOL = 0x20005206
1907 RTF_POLICY = 0x4000000 1907 RNDGETENTCNT = 0x40045200
1908 RTF_REINSTATE = 0x8 1908 RNDGETPOOL = 0x40085202
1909 RTF_REJECT = 0x200 1909 RNDRESEEDCRNG = 0x20005207
1910 RTF_STATIC = 0x400 1910 RNDZAPENTCNT = 0x20005204
1911 RTF_THROW = 0x2000 1911 RTAX_ADVMSS = 0x8
1912 RTF_UP = 0x1 1912 RTAX_CC_ALGO = 0x10
1913 RTF_WINDOW = 0x80 1913 RTAX_CWND = 0x7
1914 RTF_XRESOLVE = 0x800 1914 RTAX_FASTOPEN_NO_COOKIE = 0x11
1915 RTM_BASE = 0x10 1915 RTAX_FEATURES = 0xc
1916 RTM_DELACTION = 0x31 1916 RTAX_FEATURE_ALLFRAG = 0x8
1917 RTM_DELADDR = 0x15 1917 RTAX_FEATURE_ECN = 0x1
1918 RTM_DELADDRLABEL = 0x49 1918 RTAX_FEATURE_MASK = 0xf
1919 RTM_DELCHAIN = 0x65 1919 RTAX_FEATURE_SACK = 0x2
1920 RTM_DELLINK = 0x11 1920 RTAX_FEATURE_TIMESTAMP = 0x4
1921 RTM_DELMDB = 0x55 1921 RTAX_HOPLIMIT = 0xa
1922 RTM_DELNEIGH = 0x1d 1922 RTAX_INITCWND = 0xb
1923 RTM_DELNETCONF = 0x51 1923 RTAX_INITRWND = 0xe
1924 RTM_DELNSID = 0x59 1924 RTAX_LOCK = 0x1
1925 RTM_DELQDISC = 0x25 1925 RTAX_MAX = 0x11
1926 RTM_DELROUTE = 0x19 1926 RTAX_MTU = 0x2
1927 RTM_DELRULE = 0x21 1927 RTAX_QUICKACK = 0xf
1928 RTM_DELTCLASS = 0x29 1928 RTAX_REORDERING = 0x9
1929 RTM_DELTFILTER = 0x2d 1929 RTAX_RTO_MIN = 0xd
1930 RTM_F_CLONED = 0x200 1930 RTAX_RTT = 0x4
1931 RTM_F_EQUALIZE = 0x400 1931 RTAX_RTTVAR = 0x5
1932 RTM_F_FIB_MATCH = 0x2000 1932 RTAX_SSTHRESH = 0x6
1933 RTM_F_LOOKUP_TABLE = 0x1000 1933 RTAX_UNSPEC = 0x0
1934 RTM_F_NOTIFY = 0x100 1934 RTAX_WINDOW = 0x3
1935 RTM_F_PREFIX = 0x800 1935 RTA_ALIGNTO = 0x4
1936 RTM_GETACTION = 0x32 1936 RTA_MAX = 0x1e
1937 RTM_GETADDR = 0x16 1937 RTCF_DIRECTSRC = 0x4000000
1938 RTM_GETADDRLABEL = 0x4a 1938 RTCF_DOREDIRECT = 0x1000000
1939 RTM_GETANYCAST = 0x3e 1939 RTCF_LOG = 0x2000000
1940 RTM_GETCHAIN = 0x66 1940 RTCF_MASQ = 0x400000
1941 RTM_GETDCB = 0x4e 1941 RTCF_NAT = 0x800000
1942 RTM_GETLINK = 0x12 1942 RTCF_VALVE = 0x200000
1943 RTM_GETMDB = 0x56 1943 RTC_AF = 0x20
1944 RTM_GETMULTICAST = 0x3a 1944 RTC_AIE_OFF = 0x20007002
1945 RTM_GETNEIGH = 0x1e 1945 RTC_AIE_ON = 0x20007001
1946 RTM_GETNEIGHTBL = 0x42 1946 RTC_ALM_READ = 0x40247008
1947 RTM_GETNETCONF = 0x52 1947 RTC_ALM_SET = 0x80247007
1948 RTM_GETNSID = 0x5a 1948 RTC_EPOCH_READ = 0x4008700d
1949 RTM_GETQDISC = 0x26 1949 RTC_EPOCH_SET = 0x8008700e
1950 RTM_GETROUTE = 0x1a 1950 RTC_IRQF = 0x80
1951 RTM_GETRULE = 0x22 1951 RTC_IRQP_READ = 0x4008700b
1952 RTM_GETSTATS = 0x5e 1952 RTC_IRQP_SET = 0x8008700c
1953 RTM_GETTCLASS = 0x2a 1953 RTC_MAX_FREQ = 0x2000
1954 RTM_GETTFILTER = 0x2e 1954 RTC_PF = 0x40
1955 RTM_MAX = 0x67 1955 RTC_PIE_OFF = 0x20007006
1956 RTM_NEWACTION = 0x30 1956 RTC_PIE_ON = 0x20007005
1957 RTM_NEWADDR = 0x14 1957 RTC_PLL_GET = 0x40207011
1958 RTM_NEWADDRLABEL = 0x48 1958 RTC_PLL_SET = 0x80207012
1959 RTM_NEWCACHEREPORT = 0x60 1959 RTC_RD_TIME = 0x40247009
1960 RTM_NEWCHAIN = 0x64 1960 RTC_SET_TIME = 0x8024700a
1961 RTM_NEWLINK = 0x10 1961 RTC_UF = 0x10
1962 RTM_NEWMDB = 0x54 1962 RTC_UIE_OFF = 0x20007004
1963 RTM_NEWNDUSEROPT = 0x44 1963 RTC_UIE_ON = 0x20007003
1964 RTM_NEWNEIGH = 0x1c 1964 RTC_VL_CLR = 0x20007014
1965 RTM_NEWNEIGHTBL = 0x40 1965 RTC_VL_READ = 0x40047013
1966 RTM_NEWNETCONF = 0x50 1966 RTC_WIE_OFF = 0x20007010
1967 RTM_NEWNSID = 0x58 1967 RTC_WIE_ON = 0x2000700f
1968 RTM_NEWPREFIX = 0x34 1968 RTC_WKALM_RD = 0x40287010
1969 RTM_NEWQDISC = 0x24 1969 RTC_WKALM_SET = 0x8028700f
1970 RTM_NEWROUTE = 0x18 1970 RTF_ADDRCLASSMASK = 0xf8000000
1971 RTM_NEWRULE = 0x20 1971 RTF_ADDRCONF = 0x40000
1972 RTM_NEWSTATS = 0x5c 1972 RTF_ALLONLINK = 0x20000
1973 RTM_NEWTCLASS = 0x28 1973 RTF_BROADCAST = 0x10000000
1974 RTM_NEWTFILTER = 0x2c 1974 RTF_CACHE = 0x1000000
1975 RTM_NR_FAMILIES = 0x16 1975 RTF_DEFAULT = 0x10000
1976 RTM_NR_MSGTYPES = 0x58 1976 RTF_DYNAMIC = 0x10
1977 RTM_SETDCB = 0x4f 1977 RTF_FLOW = 0x2000000
1978 RTM_SETLINK = 0x13 1978 RTF_GATEWAY = 0x2
1979 RTM_SETNEIGHTBL = 0x43 1979 RTF_HOST = 0x4
1980 RTNH_ALIGNTO = 0x4 1980 RTF_INTERFACE = 0x40000000
1981 RTNH_COMPARE_MASK = 0x19 1981 RTF_IRTT = 0x100
1982 RTNH_F_DEAD = 0x1 1982 RTF_LINKRT = 0x100000
1983 RTNH_F_LINKDOWN = 0x10 1983 RTF_LOCAL = 0x80000000
1984 RTNH_F_OFFLOAD = 0x8 1984 RTF_MODIFIED = 0x20
1985 RTNH_F_ONLINK = 0x4 1985 RTF_MSS = 0x40
1986 RTNH_F_PERVASIVE = 0x2 1986 RTF_MTU = 0x40
1987 RTNH_F_UNRESOLVED = 0x20 1987 RTF_MULTICAST = 0x20000000
1988 RTN_MAX = 0xb 1988 RTF_NAT = 0x8000000
1989 RTPROT_BABEL = 0x2a 1989 RTF_NOFORWARD = 0x1000
1990 RTPROT_BGP = 0xba 1990 RTF_NONEXTHOP = 0x200000
1991 RTPROT_BIRD = 0xc 1991 RTF_NOPMTUDISC = 0x4000
1992 RTPROT_BOOT = 0x3 1992 RTF_POLICY = 0x4000000
1993 RTPROT_DHCP = 0x10 1993 RTF_REINSTATE = 0x8
1994 RTPROT_DNROUTED = 0xd 1994 RTF_REJECT = 0x200
1995 RTPROT_EIGRP = 0xc0 1995 RTF_STATIC = 0x400
1996 RTPROT_GATED = 0x8 1996 RTF_THROW = 0x2000
1997 RTPROT_ISIS = 0xbb 1997 RTF_UP = 0x1
1998 RTPROT_KERNEL = 0x2 1998 RTF_WINDOW = 0x80
1999 RTPROT_MROUTED = 0x11 1999 RTF_XRESOLVE = 0x800
2000 RTPROT_MRT = 0xa 2000 RTMGRP_DECnet_IFADDR = 0x1000
2001 RTPROT_NTK = 0xf 2001 RTMGRP_DECnet_ROUTE = 0x4000
2002 RTPROT_OSPF = 0xbc 2002 RTMGRP_IPV4_IFADDR = 0x10
2003 RTPROT_RA = 0x9 2003 RTMGRP_IPV4_MROUTE = 0x20
2004 RTPROT_REDIRECT = 0x1 2004 RTMGRP_IPV4_ROUTE = 0x40
2005 RTPROT_RIP = 0xbd 2005 RTMGRP_IPV4_RULE = 0x80
2006 RTPROT_STATIC = 0x4 2006 RTMGRP_IPV6_IFADDR = 0x100
2007 RTPROT_UNSPEC = 0x0 2007 RTMGRP_IPV6_IFINFO = 0x800
2008 RTPROT_XORP = 0xe 2008 RTMGRP_IPV6_MROUTE = 0x200
2009 RTPROT_ZEBRA = 0xb 2009 RTMGRP_IPV6_PREFIX = 0x20000
2010 RT_CLASS_DEFAULT = 0xfd 2010 RTMGRP_IPV6_ROUTE = 0x400
2011 RT_CLASS_LOCAL = 0xff 2011 RTMGRP_LINK = 0x1
2012 RT_CLASS_MAIN = 0xfe 2012 RTMGRP_NEIGH = 0x4
2013 RT_CLASS_MAX = 0xff 2013 RTMGRP_NOTIFY = 0x2
2014 RT_CLASS_UNSPEC = 0x0 2014 RTMGRP_TC = 0x8
2015 RUSAGE_CHILDREN = -0x1 2015 RTM_BASE = 0x10
2016 RUSAGE_SELF = 0x0 2016 RTM_DELACTION = 0x31
2017 RUSAGE_THREAD = 0x1 2017 RTM_DELADDR = 0x15
2018 SCM_CREDENTIALS = 0x2 2018 RTM_DELADDRLABEL = 0x49
2019 SCM_RIGHTS = 0x1 2019 RTM_DELCHAIN = 0x65
2020 SCM_TIMESTAMP = 0x1d 2020 RTM_DELLINK = 0x11
2021 SCM_TIMESTAMPING = 0x25 2021 RTM_DELLINKPROP = 0x6d
2022 SCM_TIMESTAMPING_OPT_STATS = 0x36 2022 RTM_DELMDB = 0x55
2023 SCM_TIMESTAMPING_PKTINFO = 0x3a 2023 RTM_DELNEIGH = 0x1d
2024 SCM_TIMESTAMPNS = 0x23 2024 RTM_DELNETCONF = 0x51
2025 SCM_TXTIME = 0x3d 2025 RTM_DELNEXTHOP = 0x69
2026 SCM_WIFI_STATUS = 0x29 2026 RTM_DELNSID = 0x59
2027 SC_LOG_FLUSH = 0x100000 2027 RTM_DELQDISC = 0x25
2028 SECCOMP_MODE_DISABLED = 0x0 2028 RTM_DELROUTE = 0x19
2029 SECCOMP_MODE_FILTER = 0x2 2029 RTM_DELRULE = 0x21
2030 SECCOMP_MODE_STRICT = 0x1 2030 RTM_DELTCLASS = 0x29
2031 SECURITYFS_MAGIC = 0x73636673 2031 RTM_DELTFILTER = 0x2d
2032 SELINUX_MAGIC = 0xf97cff8c 2032 RTM_F_CLONED = 0x200
2033 SFD_CLOEXEC = 0x80000 2033 RTM_F_EQUALIZE = 0x400
2034 SFD_NONBLOCK = 0x800 2034 RTM_F_FIB_MATCH = 0x2000
2035 SHUT_RD = 0x0 2035 RTM_F_LOOKUP_TABLE = 0x1000
2036 SHUT_RDWR = 0x2 2036 RTM_F_NOTIFY = 0x100
2037 SHUT_WR = 0x1 2037 RTM_F_PREFIX = 0x800
2038 SIOCADDDLCI = 0x8980 2038 RTM_GETACTION = 0x32
2039 SIOCADDMULTI = 0x8931 2039 RTM_GETADDR = 0x16
2040 SIOCADDRT = 0x890b 2040 RTM_GETADDRLABEL = 0x4a
2041 SIOCATMARK = 0x8905 2041 RTM_GETANYCAST = 0x3e
2042 SIOCBONDCHANGEACTIVE = 0x8995 2042 RTM_GETCHAIN = 0x66
2043 SIOCBONDENSLAVE = 0x8990 2043 RTM_GETDCB = 0x4e
2044 SIOCBONDINFOQUERY = 0x8994 2044 RTM_GETLINK = 0x12
2045 SIOCBONDRELEASE = 0x8991 2045 RTM_GETLINKPROP = 0x6e
2046 SIOCBONDSETHWADDR = 0x8992 2046 RTM_GETMDB = 0x56
2047 SIOCBONDSLAVEINFOQUERY = 0x8993 2047 RTM_GETMULTICAST = 0x3a
2048 SIOCBRADDBR = 0x89a0 2048 RTM_GETNEIGH = 0x1e
2049 SIOCBRADDIF = 0x89a2 2049 RTM_GETNEIGHTBL = 0x42
2050 SIOCBRDELBR = 0x89a1 2050 RTM_GETNETCONF = 0x52
2051 SIOCBRDELIF = 0x89a3 2051 RTM_GETNEXTHOP = 0x6a
2052 SIOCDARP = 0x8953 2052 RTM_GETNSID = 0x5a
2053 SIOCDELDLCI = 0x8981 2053 RTM_GETQDISC = 0x26
2054 SIOCDELMULTI = 0x8932 2054 RTM_GETROUTE = 0x1a
2055 SIOCDELRT = 0x890c 2055 RTM_GETRULE = 0x22
2056 SIOCDEVPRIVATE = 0x89f0 2056 RTM_GETSTATS = 0x5e
2057 SIOCDIFADDR = 0x8936 2057 RTM_GETTCLASS = 0x2a
2058 SIOCDRARP = 0x8960 2058 RTM_GETTFILTER = 0x2e
2059 SIOCETHTOOL = 0x8946 2059 RTM_MAX = 0x6f
2060 SIOCGARP = 0x8954 2060 RTM_NEWACTION = 0x30
2061 SIOCGHWTSTAMP = 0x89b1 2061 RTM_NEWADDR = 0x14
2062 SIOCGIFADDR = 0x8915 2062 RTM_NEWADDRLABEL = 0x48
2063 SIOCGIFBR = 0x8940 2063 RTM_NEWCACHEREPORT = 0x60
2064 SIOCGIFBRDADDR = 0x8919 2064 RTM_NEWCHAIN = 0x64
2065 SIOCGIFCONF = 0x8912 2065 RTM_NEWLINK = 0x10
2066 SIOCGIFCOUNT = 0x8938 2066 RTM_NEWLINKPROP = 0x6c
2067 SIOCGIFDSTADDR = 0x8917 2067 RTM_NEWMDB = 0x54
2068 SIOCGIFENCAP = 0x8925 2068 RTM_NEWNDUSEROPT = 0x44
2069 SIOCGIFFLAGS = 0x8913 2069 RTM_NEWNEIGH = 0x1c
2070 SIOCGIFHWADDR = 0x8927 2070 RTM_NEWNEIGHTBL = 0x40
2071 SIOCGIFINDEX = 0x8933 2071 RTM_NEWNETCONF = 0x50
2072 SIOCGIFMAP = 0x8970 2072 RTM_NEWNEXTHOP = 0x68
2073 SIOCGIFMEM = 0x891f 2073 RTM_NEWNSID = 0x58
2074 SIOCGIFMETRIC = 0x891d 2074 RTM_NEWPREFIX = 0x34
2075 SIOCGIFMTU = 0x8921 2075 RTM_NEWQDISC = 0x24
2076 SIOCGIFNAME = 0x8910 2076 RTM_NEWROUTE = 0x18
2077 SIOCGIFNETMASK = 0x891b 2077 RTM_NEWRULE = 0x20
2078 SIOCGIFPFLAGS = 0x8935 2078 RTM_NEWSTATS = 0x5c
2079 SIOCGIFSLAVE = 0x8929 2079 RTM_NEWTCLASS = 0x28
2080 SIOCGIFTXQLEN = 0x8942 2080 RTM_NEWTFILTER = 0x2c
2081 SIOCGIFVLAN = 0x8982 2081 RTM_NR_FAMILIES = 0x18
2082 SIOCGMIIPHY = 0x8947 2082 RTM_NR_MSGTYPES = 0x60
2083 SIOCGMIIREG = 0x8948 2083 RTM_SETDCB = 0x4f
2084 SIOCGPGRP = 0x8904 2084 RTM_SETLINK = 0x13
2085 SIOCGPPPCSTATS = 0x89f2 2085 RTM_SETNEIGHTBL = 0x43
2086 SIOCGPPPSTATS = 0x89f0 2086 RTNH_ALIGNTO = 0x4
2087 SIOCGPPPVER = 0x89f1 2087 RTNH_COMPARE_MASK = 0x19
2088 SIOCGRARP = 0x8961 2088 RTNH_F_DEAD = 0x1
2089 SIOCGSKNS = 0x894c 2089 RTNH_F_LINKDOWN = 0x10
2090 SIOCGSTAMP = 0x8906 2090 RTNH_F_OFFLOAD = 0x8
2091 SIOCGSTAMPNS = 0x8907 2091 RTNH_F_ONLINK = 0x4
2092 SIOCGSTAMPNS_NEW = 0x40108907 2092 RTNH_F_PERVASIVE = 0x2
2093 SIOCGSTAMPNS_OLD = 0x8907 2093 RTNH_F_UNRESOLVED = 0x20
2094 SIOCGSTAMP_NEW = 0x40108906 2094 RTN_MAX = 0xb
2095 SIOCGSTAMP_OLD = 0x8906 2095 RTPROT_BABEL = 0x2a
2096 SIOCINQ = 0x4004667f 2096 RTPROT_BGP = 0xba
2097 SIOCOUTQ = 0x40047473 2097 RTPROT_BIRD = 0xc
2098 SIOCOUTQNSD = 0x894b 2098 RTPROT_BOOT = 0x3
2099 SIOCPROTOPRIVATE = 0x89e0 2099 RTPROT_DHCP = 0x10
2100 SIOCRTMSG = 0x890d 2100 RTPROT_DNROUTED = 0xd
2101 SIOCSARP = 0x8955 2101 RTPROT_EIGRP = 0xc0
2102 SIOCSHWTSTAMP = 0x89b0 2102 RTPROT_GATED = 0x8
2103 SIOCSIFADDR = 0x8916 2103 RTPROT_ISIS = 0xbb
2104 SIOCSIFBR = 0x8941 2104 RTPROT_KERNEL = 0x2
2105 SIOCSIFBRDADDR = 0x891a 2105 RTPROT_MROUTED = 0x11
2106 SIOCSIFDSTADDR = 0x8918 2106 RTPROT_MRT = 0xa
2107 SIOCSIFENCAP = 0x8926 2107 RTPROT_NTK = 0xf
2108 SIOCSIFFLAGS = 0x8914 2108 RTPROT_OSPF = 0xbc
2109 SIOCSIFHWADDR = 0x8924 2109 RTPROT_RA = 0x9
2110 SIOCSIFHWBROADCAST = 0x8937 2110 RTPROT_REDIRECT = 0x1
2111 SIOCSIFLINK = 0x8911 2111 RTPROT_RIP = 0xbd
2112 SIOCSIFMAP = 0x8971 2112 RTPROT_STATIC = 0x4
2113 SIOCSIFMEM = 0x8920 2113 RTPROT_UNSPEC = 0x0
2114 SIOCSIFMETRIC = 0x891e 2114 RTPROT_XORP = 0xe
2115 SIOCSIFMTU = 0x8922 2115 RTPROT_ZEBRA = 0xb
2116 SIOCSIFNAME = 0x8923 2116 RT_CLASS_DEFAULT = 0xfd
2117 SIOCSIFNETMASK = 0x891c 2117 RT_CLASS_LOCAL = 0xff
2118 SIOCSIFPFLAGS = 0x8934 2118 RT_CLASS_MAIN = 0xfe
2119 SIOCSIFSLAVE = 0x8930 2119 RT_CLASS_MAX = 0xff
2120 SIOCSIFTXQLEN = 0x8943 2120 RT_CLASS_UNSPEC = 0x0
2121 SIOCSIFVLAN = 0x8983 2121 RUSAGE_CHILDREN = -0x1
2122 SIOCSMIIREG = 0x8949 2122 RUSAGE_SELF = 0x0
2123 SIOCSPGRP = 0x8902 2123 RUSAGE_THREAD = 0x1
2124 SIOCSRARP = 0x8962 2124 RWF_APPEND = 0x10
2125 SIOCWANDEV = 0x894a 2125 RWF_DSYNC = 0x2
2126 SMACK_MAGIC = 0x43415d53 2126 RWF_HIPRI = 0x1
2127 SMART_AUTOSAVE = 0xd2 2127 RWF_NOWAIT = 0x8
2128 SMART_AUTO_OFFLINE = 0xdb 2128 RWF_SUPPORTED = 0x1f
2129 SMART_DISABLE = 0xd9 2129 RWF_SYNC = 0x4
2130 SMART_ENABLE = 0xd8 2130 RWF_WRITE_LIFE_NOT_SET = 0x0
2131 SMART_HCYL_PASS = 0xc2 2131 SCM_CREDENTIALS = 0x2
2132 SMART_IMMEDIATE_OFFLINE = 0xd4 2132 SCM_RIGHTS = 0x1
2133 SMART_LCYL_PASS = 0x4f 2133 SCM_TIMESTAMP = 0x1d
2134 SMART_READ_LOG_SECTOR = 0xd5 2134 SCM_TIMESTAMPING = 0x25
2135 SMART_READ_THRESHOLDS = 0xd1 2135 SCM_TIMESTAMPING_OPT_STATS = 0x36
2136 SMART_READ_VALUES = 0xd0 2136 SCM_TIMESTAMPING_PKTINFO = 0x3a
2137 SMART_SAVE = 0xd3 2137 SCM_TIMESTAMPNS = 0x23
2138 SMART_STATUS = 0xda 2138 SCM_TXTIME = 0x3d
2139 SMART_WRITE_LOG_SECTOR = 0xd6 2139 SCM_WIFI_STATUS = 0x29
2140 SMART_WRITE_THRESHOLDS = 0xd7 2140 SC_LOG_FLUSH = 0x100000
2141 SMB_SUPER_MAGIC = 0x517b 2141 SECCOMP_MODE_DISABLED = 0x0
2142 SOCKFS_MAGIC = 0x534f434b 2142 SECCOMP_MODE_FILTER = 0x2
2143 SOCK_CLOEXEC = 0x80000 2143 SECCOMP_MODE_STRICT = 0x1
2144 SOCK_DCCP = 0x6 2144 SECURITYFS_MAGIC = 0x73636673
2145 SOCK_DGRAM = 0x2 2145 SELINUX_MAGIC = 0xf97cff8c
2146 SOCK_IOC_TYPE = 0x89 2146 SFD_CLOEXEC = 0x80000
2147 SOCK_NONBLOCK = 0x800 2147 SFD_NONBLOCK = 0x800
2148 SOCK_PACKET = 0xa 2148 SHUT_RD = 0x0
2149 SOCK_RAW = 0x3 2149 SHUT_RDWR = 0x2
2150 SOCK_RDM = 0x4 2150 SHUT_WR = 0x1
2151 SOCK_SEQPACKET = 0x5 2151 SIOCADDDLCI = 0x8980
2152 SOCK_STREAM = 0x1 2152 SIOCADDMULTI = 0x8931
2153 SOL_AAL = 0x109 2153 SIOCADDRT = 0x890b
2154 SOL_ALG = 0x117 2154 SIOCATMARK = 0x8905
2155 SOL_ATM = 0x108 2155 SIOCBONDCHANGEACTIVE = 0x8995
2156 SOL_CAIF = 0x116 2156 SIOCBONDENSLAVE = 0x8990
2157 SOL_CAN_BASE = 0x64 2157 SIOCBONDINFOQUERY = 0x8994
2158 SOL_DCCP = 0x10d 2158 SIOCBONDRELEASE = 0x8991
2159 SOL_DECNET = 0x105 2159 SIOCBONDSETHWADDR = 0x8992
2160 SOL_ICMPV6 = 0x3a 2160 SIOCBONDSLAVEINFOQUERY = 0x8993
2161 SOL_IP = 0x0 2161 SIOCBRADDBR = 0x89a0
2162 SOL_IPV6 = 0x29 2162 SIOCBRADDIF = 0x89a2
2163 SOL_IRDA = 0x10a 2163 SIOCBRDELBR = 0x89a1
2164 SOL_IUCV = 0x115 2164 SIOCBRDELIF = 0x89a3
2165 SOL_KCM = 0x119 2165 SIOCDARP = 0x8953
2166 SOL_LLC = 0x10c 2166 SIOCDELDLCI = 0x8981
2167 SOL_NETBEUI = 0x10b 2167 SIOCDELMULTI = 0x8932
2168 SOL_NETLINK = 0x10e 2168 SIOCDELRT = 0x890c
2169 SOL_NFC = 0x118 2169 SIOCDEVPRIVATE = 0x89f0
2170 SOL_PACKET = 0x107 2170 SIOCDIFADDR = 0x8936
2171 SOL_PNPIPE = 0x113 2171 SIOCDRARP = 0x8960
2172 SOL_PPPOL2TP = 0x111 2172 SIOCETHTOOL = 0x8946
2173 SOL_RAW = 0xff 2173 SIOCGARP = 0x8954
2174 SOL_RDS = 0x114 2174 SIOCGETLINKNAME = 0x89e0
2175 SOL_RXRPC = 0x110 2175 SIOCGETNODEID = 0x89e1
2176 SOL_SOCKET = 0x1 2176 SIOCGHWTSTAMP = 0x89b1
2177 SOL_TCP = 0x6 2177 SIOCGIFADDR = 0x8915
2178 SOL_TIPC = 0x10f 2178 SIOCGIFBR = 0x8940
2179 SOL_TLS = 0x11a 2179 SIOCGIFBRDADDR = 0x8919
2180 SOL_X25 = 0x106 2180 SIOCGIFCONF = 0x8912
2181 SOL_XDP = 0x11b 2181 SIOCGIFCOUNT = 0x8938
2182 SOMAXCONN = 0x80 2182 SIOCGIFDSTADDR = 0x8917
2183 SO_ACCEPTCONN = 0x1e 2183 SIOCGIFENCAP = 0x8925
2184 SO_ATTACH_BPF = 0x32 2184 SIOCGIFFLAGS = 0x8913
2185 SO_ATTACH_FILTER = 0x1a 2185 SIOCGIFHWADDR = 0x8927
2186 SO_ATTACH_REUSEPORT_CBPF = 0x33 2186 SIOCGIFINDEX = 0x8933
2187 SO_ATTACH_REUSEPORT_EBPF = 0x34 2187 SIOCGIFMAP = 0x8970
2188 SO_BINDTODEVICE = 0x19 2188 SIOCGIFMEM = 0x891f
2189 SO_BINDTOIFINDEX = 0x3e 2189 SIOCGIFMETRIC = 0x891d
2190 SO_BPF_EXTENSIONS = 0x30 2190 SIOCGIFMTU = 0x8921
2191 SO_BROADCAST = 0x6 2191 SIOCGIFNAME = 0x8910
2192 SO_BSDCOMPAT = 0xe 2192 SIOCGIFNETMASK = 0x891b
2193 SO_BUSY_POLL = 0x2e 2193 SIOCGIFPFLAGS = 0x8935
2194 SO_CNX_ADVICE = 0x35 2194 SIOCGIFSLAVE = 0x8929
2195 SO_COOKIE = 0x39 2195 SIOCGIFTXQLEN = 0x8942
2196 SO_DEBUG = 0x1 2196 SIOCGIFVLAN = 0x8982
2197 SO_DETACH_BPF = 0x1b 2197 SIOCGMIIPHY = 0x8947
2198 SO_DETACH_FILTER = 0x1b 2198 SIOCGMIIREG = 0x8948
2199 SO_DOMAIN = 0x27 2199 SIOCGPGRP = 0x8904
2200 SO_DONTROUTE = 0x5 2200 SIOCGPPPCSTATS = 0x89f2
2201 SO_EE_CODE_TXTIME_INVALID_PARAM = 0x1 2201 SIOCGPPPSTATS = 0x89f0
2202 SO_EE_CODE_TXTIME_MISSED = 0x2 2202 SIOCGPPPVER = 0x89f1
2203 SO_EE_CODE_ZEROCOPY_COPIED = 0x1 2203 SIOCGRARP = 0x8961
2204 SO_EE_ORIGIN_ICMP = 0x2 2204 SIOCGSKNS = 0x894c
2205 SO_EE_ORIGIN_ICMP6 = 0x3 2205 SIOCGSTAMP = 0x8906
2206 SO_EE_ORIGIN_LOCAL = 0x1 2206 SIOCGSTAMPNS = 0x8907
2207 SO_EE_ORIGIN_NONE = 0x0 2207 SIOCGSTAMPNS_NEW = 0x40108907
2208 SO_EE_ORIGIN_TIMESTAMPING = 0x4 2208 SIOCGSTAMPNS_OLD = 0x8907
2209 SO_EE_ORIGIN_TXSTATUS = 0x4 2209 SIOCGSTAMP_NEW = 0x40108906
2210 SO_EE_ORIGIN_TXTIME = 0x6 2210 SIOCGSTAMP_OLD = 0x8906
2211 SO_EE_ORIGIN_ZEROCOPY = 0x5 2211 SIOCINQ = 0x4004667f
2212 SO_ERROR = 0x4 2212 SIOCOUTQ = 0x40047473
2213 SO_GET_FILTER = 0x1a 2213 SIOCOUTQNSD = 0x894b
2214 SO_INCOMING_CPU = 0x31 2214 SIOCPROTOPRIVATE = 0x89e0
2215 SO_INCOMING_NAPI_ID = 0x38 2215 SIOCRTMSG = 0x890d
2216 SO_KEEPALIVE = 0x9 2216 SIOCSARP = 0x8955
2217 SO_LINGER = 0xd 2217 SIOCSHWTSTAMP = 0x89b0
2218 SO_LOCK_FILTER = 0x2c 2218 SIOCSIFADDR = 0x8916
2219 SO_MARK = 0x24 2219 SIOCSIFBR = 0x8941
2220 SO_MAX_PACING_RATE = 0x2f 2220 SIOCSIFBRDADDR = 0x891a
2221 SO_MEMINFO = 0x37 2221 SIOCSIFDSTADDR = 0x8918
2222 SO_NOFCS = 0x2b 2222 SIOCSIFENCAP = 0x8926
2223 SO_NO_CHECK = 0xb 2223 SIOCSIFFLAGS = 0x8914
2224 SO_OOBINLINE = 0xa 2224 SIOCSIFHWADDR = 0x8924
2225 SO_PASSCRED = 0x14 2225 SIOCSIFHWBROADCAST = 0x8937
2226 SO_PASSSEC = 0x22 2226 SIOCSIFLINK = 0x8911
2227 SO_PEEK_OFF = 0x2a 2227 SIOCSIFMAP = 0x8971
2228 SO_PEERCRED = 0x15 2228 SIOCSIFMEM = 0x8920
2229 SO_PEERGROUPS = 0x3b 2229 SIOCSIFMETRIC = 0x891e
2230 SO_PEERNAME = 0x1c 2230 SIOCSIFMTU = 0x8922
2231 SO_PEERSEC = 0x1f 2231 SIOCSIFNAME = 0x8923
2232 SO_PRIORITY = 0xc 2232 SIOCSIFNETMASK = 0x891c
2233 SO_PROTOCOL = 0x26 2233 SIOCSIFPFLAGS = 0x8934
2234 SO_RCVBUF = 0x8 2234 SIOCSIFSLAVE = 0x8930
2235 SO_RCVBUFFORCE = 0x21 2235 SIOCSIFTXQLEN = 0x8943
2236 SO_RCVLOWAT = 0x10 2236 SIOCSIFVLAN = 0x8983
2237 SO_RCVTIMEO = 0x12 2237 SIOCSMIIREG = 0x8949
2238 SO_RCVTIMEO_NEW = 0x42 2238 SIOCSPGRP = 0x8902
2239 SO_RCVTIMEO_OLD = 0x12 2239 SIOCSRARP = 0x8962
2240 SO_REUSEADDR = 0x2 2240 SIOCWANDEV = 0x894a
2241 SO_REUSEPORT = 0xf 2241 SMACK_MAGIC = 0x43415d53
2242 SO_RXQ_OVFL = 0x28 2242 SMART_AUTOSAVE = 0xd2
2243 SO_SECURITY_AUTHENTICATION = 0x16 2243 SMART_AUTO_OFFLINE = 0xdb
2244 SO_SECURITY_ENCRYPTION_NETWORK = 0x18 2244 SMART_DISABLE = 0xd9
2245 SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17 2245 SMART_ENABLE = 0xd8
2246 SO_SELECT_ERR_QUEUE = 0x2d 2246 SMART_HCYL_PASS = 0xc2
2247 SO_SNDBUF = 0x7 2247 SMART_IMMEDIATE_OFFLINE = 0xd4
2248 SO_SNDBUFFORCE = 0x20 2248 SMART_LCYL_PASS = 0x4f
2249 SO_SNDLOWAT = 0x11 2249 SMART_READ_LOG_SECTOR = 0xd5
2250 SO_SNDTIMEO = 0x13 2250 SMART_READ_THRESHOLDS = 0xd1
2251 SO_SNDTIMEO_NEW = 0x43 2251 SMART_READ_VALUES = 0xd0
2252 SO_SNDTIMEO_OLD = 0x13 2252 SMART_SAVE = 0xd3
2253 SO_TIMESTAMP = 0x1d 2253 SMART_STATUS = 0xda
2254 SO_TIMESTAMPING = 0x25 2254 SMART_WRITE_LOG_SECTOR = 0xd6
2255 SO_TIMESTAMPING_NEW = 0x41 2255 SMART_WRITE_THRESHOLDS = 0xd7
2256 SO_TIMESTAMPING_OLD = 0x25 2256 SMB_SUPER_MAGIC = 0x517b
2257 SO_TIMESTAMPNS = 0x23 2257 SOCKFS_MAGIC = 0x534f434b
2258 SO_TIMESTAMPNS_NEW = 0x40 2258 SOCK_CLOEXEC = 0x80000
2259 SO_TIMESTAMPNS_OLD = 0x23 2259 SOCK_DCCP = 0x6
2260 SO_TIMESTAMP_NEW = 0x3f 2260 SOCK_DGRAM = 0x2
2261 SO_TIMESTAMP_OLD = 0x1d 2261 SOCK_IOC_TYPE = 0x89
2262 SO_TXTIME = 0x3d 2262 SOCK_NONBLOCK = 0x800
2263 SO_TYPE = 0x3 2263 SOCK_PACKET = 0xa
2264 SO_VM_SOCKETS_BUFFER_MAX_SIZE = 0x2 2264 SOCK_RAW = 0x3
2265 SO_VM_SOCKETS_BUFFER_MIN_SIZE = 0x1 2265 SOCK_RDM = 0x4
2266 SO_VM_SOCKETS_BUFFER_SIZE = 0x0 2266 SOCK_SEQPACKET = 0x5
2267 SO_VM_SOCKETS_CONNECT_TIMEOUT = 0x6 2267 SOCK_STREAM = 0x1
2268 SO_VM_SOCKETS_NONBLOCK_TXRX = 0x7 2268 SOL_AAL = 0x109
2269 SO_VM_SOCKETS_PEER_HOST_VM_ID = 0x3 2269 SOL_ALG = 0x117
2270 SO_VM_SOCKETS_TRUSTED = 0x5 2270 SOL_ATM = 0x108
2271 SO_WIFI_STATUS = 0x29 2271 SOL_CAIF = 0x116
2272 SO_ZEROCOPY = 0x3c 2272 SOL_CAN_BASE = 0x64
2273 SPLICE_F_GIFT = 0x8 2273 SOL_DCCP = 0x10d
2274 SPLICE_F_MORE = 0x4 2274 SOL_DECNET = 0x105
2275 SPLICE_F_MOVE = 0x1 2275 SOL_ICMPV6 = 0x3a
2276 SPLICE_F_NONBLOCK = 0x2 2276 SOL_IP = 0x0
2277 SQUASHFS_MAGIC = 0x73717368 2277 SOL_IPV6 = 0x29
2278 STACK_END_MAGIC = 0x57ac6e9d 2278 SOL_IRDA = 0x10a
2279 STATX_ALL = 0xfff 2279 SOL_IUCV = 0x115
2280 STATX_ATIME = 0x20 2280 SOL_KCM = 0x119
2281 STATX_ATTR_APPEND = 0x20 2281 SOL_LLC = 0x10c
2282 STATX_ATTR_AUTOMOUNT = 0x1000 2282 SOL_NETBEUI = 0x10b
2283 STATX_ATTR_COMPRESSED = 0x4 2283 SOL_NETLINK = 0x10e
2284 STATX_ATTR_ENCRYPTED = 0x800 2284 SOL_NFC = 0x118
2285 STATX_ATTR_IMMUTABLE = 0x10 2285 SOL_PACKET = 0x107
2286 STATX_ATTR_NODUMP = 0x40 2286 SOL_PNPIPE = 0x113
2287 STATX_BASIC_STATS = 0x7ff 2287 SOL_PPPOL2TP = 0x111
2288 STATX_BLOCKS = 0x400 2288 SOL_RAW = 0xff
2289 STATX_BTIME = 0x800 2289 SOL_RDS = 0x114
2290 STATX_CTIME = 0x80 2290 SOL_RXRPC = 0x110
2291 STATX_GID = 0x10 2291 SOL_SOCKET = 0x1
2292 STATX_INO = 0x100 2292 SOL_TCP = 0x6
2293 STATX_MODE = 0x2 2293 SOL_TIPC = 0x10f
2294 STATX_MTIME = 0x40 2294 SOL_TLS = 0x11a
2295 STATX_NLINK = 0x4 2295 SOL_X25 = 0x106
2296 STATX_SIZE = 0x200 2296 SOL_XDP = 0x11b
2297 STATX_TYPE = 0x1 2297 SOMAXCONN = 0x1000
2298 STATX_UID = 0x8 2298 SO_ACCEPTCONN = 0x1e
2299 STATX__RESERVED = 0x80000000 2299 SO_ATTACH_BPF = 0x32
2300 SYNC_FILE_RANGE_WAIT_AFTER = 0x4 2300 SO_ATTACH_FILTER = 0x1a
2301 SYNC_FILE_RANGE_WAIT_BEFORE = 0x1 2301 SO_ATTACH_REUSEPORT_CBPF = 0x33
2302 SYNC_FILE_RANGE_WRITE = 0x2 2302 SO_ATTACH_REUSEPORT_EBPF = 0x34
2303 SYNC_FILE_RANGE_WRITE_AND_WAIT = 0x7 2303 SO_BINDTODEVICE = 0x19
2304 SYSFS_MAGIC = 0x62656572 2304 SO_BINDTOIFINDEX = 0x3e
2305 S_BLKSIZE = 0x200 2305 SO_BPF_EXTENSIONS = 0x30
2306 S_IEXEC = 0x40 2306 SO_BROADCAST = 0x6
2307 S_IFBLK = 0x6000 2307 SO_BSDCOMPAT = 0xe
2308 S_IFCHR = 0x2000 2308 SO_BUSY_POLL = 0x2e
2309 S_IFDIR = 0x4000 2309 SO_CNX_ADVICE = 0x35
2310 S_IFIFO = 0x1000 2310 SO_COOKIE = 0x39
2311 S_IFLNK = 0xa000 2311 SO_DEBUG = 0x1
2312 S_IFMT = 0xf000 2312 SO_DETACH_BPF = 0x1b
2313 S_IFREG = 0x8000 2313 SO_DETACH_FILTER = 0x1b
2314 S_IFSOCK = 0xc000 2314 SO_DETACH_REUSEPORT_BPF = 0x44
2315 S_IREAD = 0x100 2315 SO_DOMAIN = 0x27
2316 S_IRGRP = 0x20 2316 SO_DONTROUTE = 0x5
2317 S_IROTH = 0x4 2317 SO_EE_CODE_TXTIME_INVALID_PARAM = 0x1
2318 S_IRUSR = 0x100 2318 SO_EE_CODE_TXTIME_MISSED = 0x2
2319 S_IRWXG = 0x38 2319 SO_EE_CODE_ZEROCOPY_COPIED = 0x1
2320 S_IRWXO = 0x7 2320 SO_EE_ORIGIN_ICMP = 0x2
2321 S_IRWXU = 0x1c0 2321 SO_EE_ORIGIN_ICMP6 = 0x3
2322 S_ISGID = 0x400 2322 SO_EE_ORIGIN_LOCAL = 0x1
2323 S_ISUID = 0x800 2323 SO_EE_ORIGIN_NONE = 0x0
2324 S_ISVTX = 0x200 2324 SO_EE_ORIGIN_TIMESTAMPING = 0x4
2325 S_IWGRP = 0x10 2325 SO_EE_ORIGIN_TXSTATUS = 0x4
2326 S_IWOTH = 0x2 2326 SO_EE_ORIGIN_TXTIME = 0x6
2327 S_IWRITE = 0x80 2327 SO_EE_ORIGIN_ZEROCOPY = 0x5
2328 S_IWUSR = 0x80 2328 SO_ERROR = 0x4
2329 S_IXGRP = 0x8 2329 SO_GET_FILTER = 0x1a
2330 S_IXOTH = 0x1 2330 SO_INCOMING_CPU = 0x31
2331 S_IXUSR = 0x40 2331 SO_INCOMING_NAPI_ID = 0x38
2332 TAB0 = 0x0 2332 SO_KEEPALIVE = 0x9
2333 TAB1 = 0x400 2333 SO_LINGER = 0xd
2334 TAB2 = 0x800 2334 SO_LOCK_FILTER = 0x2c
2335 TAB3 = 0xc00 2335 SO_MARK = 0x24
2336 TABDLY = 0xc00 2336 SO_MAX_PACING_RATE = 0x2f
2337 TASKSTATS_CMD_ATTR_MAX = 0x4 2337 SO_MEMINFO = 0x37
2338 TASKSTATS_CMD_MAX = 0x2 2338 SO_NOFCS = 0x2b
2339 TASKSTATS_GENL_NAME = "TASKSTATS" 2339 SO_NO_CHECK = 0xb
2340 TASKSTATS_GENL_VERSION = 0x1 2340 SO_OOBINLINE = 0xa
2341 TASKSTATS_TYPE_MAX = 0x6 2341 SO_PASSCRED = 0x14
2342 TASKSTATS_VERSION = 0x9 2342 SO_PASSSEC = 0x22
2343 TCFLSH = 0x2000741f 2343 SO_PEEK_OFF = 0x2a
2344 TCGETA = 0x40147417 2344 SO_PEERCRED = 0x15
2345 TCGETS = 0x402c7413 2345 SO_PEERGROUPS = 0x3b
2346 TCIFLUSH = 0x0 2346 SO_PEERNAME = 0x1c
2347 TCIOFF = 0x2 2347 SO_PEERSEC = 0x1f
2348 TCIOFLUSH = 0x2 2348 SO_PRIORITY = 0xc
2349 TCION = 0x3 2349 SO_PROTOCOL = 0x26
2350 TCOFLUSH = 0x1 2350 SO_RCVBUF = 0x8
2351 TCOOFF = 0x0 2351 SO_RCVBUFFORCE = 0x21
2352 TCOON = 0x1 2352 SO_RCVLOWAT = 0x10
2353 TCP_BPF_IW = 0x3e9 2353 SO_RCVTIMEO = 0x12
2354 TCP_BPF_SNDCWND_CLAMP = 0x3ea 2354 SO_RCVTIMEO_NEW = 0x42
2355 TCP_CC_INFO = 0x1a 2355 SO_RCVTIMEO_OLD = 0x12
2356 TCP_CM_INQ = 0x24 2356 SO_REUSEADDR = 0x2
2357 TCP_CONGESTION = 0xd 2357 SO_REUSEPORT = 0xf
2358 TCP_COOKIE_IN_ALWAYS = 0x1 2358 SO_RXQ_OVFL = 0x28
2359 TCP_COOKIE_MAX = 0x10 2359 SO_SECURITY_AUTHENTICATION = 0x16
2360 TCP_COOKIE_MIN = 0x8 2360 SO_SECURITY_ENCRYPTION_NETWORK = 0x18
2361 TCP_COOKIE_OUT_NEVER = 0x2 2361 SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17
2362 TCP_COOKIE_PAIR_SIZE = 0x20 2362 SO_SELECT_ERR_QUEUE = 0x2d
2363 TCP_COOKIE_TRANSACTIONS = 0xf 2363 SO_SNDBUF = 0x7
2364 TCP_CORK = 0x3 2364 SO_SNDBUFFORCE = 0x20
2365 TCP_DEFER_ACCEPT = 0x9 2365 SO_SNDLOWAT = 0x11
2366 TCP_FASTOPEN = 0x17 2366 SO_SNDTIMEO = 0x13
2367 TCP_FASTOPEN_CONNECT = 0x1e 2367 SO_SNDTIMEO_NEW = 0x43
2368 TCP_FASTOPEN_KEY = 0x21 2368 SO_SNDTIMEO_OLD = 0x13
2369 TCP_FASTOPEN_NO_COOKIE = 0x22 2369 SO_TIMESTAMP = 0x1d
2370 TCP_INFO = 0xb 2370 SO_TIMESTAMPING = 0x25
2371 TCP_INQ = 0x24 2371 SO_TIMESTAMPING_NEW = 0x41
2372 TCP_KEEPCNT = 0x6 2372 SO_TIMESTAMPING_OLD = 0x25
2373 TCP_KEEPIDLE = 0x4 2373 SO_TIMESTAMPNS = 0x23
2374 TCP_KEEPINTVL = 0x5 2374 SO_TIMESTAMPNS_NEW = 0x40
2375 TCP_LINGER2 = 0x8 2375 SO_TIMESTAMPNS_OLD = 0x23
2376 TCP_MAXSEG = 0x2 2376 SO_TIMESTAMP_NEW = 0x3f
2377 TCP_MAXWIN = 0xffff 2377 SO_TIMESTAMP_OLD = 0x1d
2378 TCP_MAX_WINSHIFT = 0xe 2378 SO_TXTIME = 0x3d
2379 TCP_MD5SIG = 0xe 2379 SO_TYPE = 0x3
2380 TCP_MD5SIG_EXT = 0x20 2380 SO_VM_SOCKETS_BUFFER_MAX_SIZE = 0x2
2381 TCP_MD5SIG_FLAG_PREFIX = 0x1 2381 SO_VM_SOCKETS_BUFFER_MIN_SIZE = 0x1
2382 TCP_MD5SIG_MAXKEYLEN = 0x50 2382 SO_VM_SOCKETS_BUFFER_SIZE = 0x0
2383 TCP_MSS = 0x200 2383 SO_VM_SOCKETS_CONNECT_TIMEOUT = 0x6
2384 TCP_MSS_DEFAULT = 0x218 2384 SO_VM_SOCKETS_NONBLOCK_TXRX = 0x7
2385 TCP_MSS_DESIRED = 0x4c4 2385 SO_VM_SOCKETS_PEER_HOST_VM_ID = 0x3
2386 TCP_NODELAY = 0x1 2386 SO_VM_SOCKETS_TRUSTED = 0x5
2387 TCP_NOTSENT_LOWAT = 0x19 2387 SO_WIFI_STATUS = 0x29
2388 TCP_QUEUE_SEQ = 0x15 2388 SO_ZEROCOPY = 0x3c
2389 TCP_QUICKACK = 0xc 2389 SPLICE_F_GIFT = 0x8
2390 TCP_REPAIR = 0x13 2390 SPLICE_F_MORE = 0x4
2391 TCP_REPAIR_OFF = 0x0 2391 SPLICE_F_MOVE = 0x1
2392 TCP_REPAIR_OFF_NO_WP = -0x1 2392 SPLICE_F_NONBLOCK = 0x2
2393 TCP_REPAIR_ON = 0x1 2393 SQUASHFS_MAGIC = 0x73717368
2394 TCP_REPAIR_OPTIONS = 0x16 2394 STACK_END_MAGIC = 0x57ac6e9d
2395 TCP_REPAIR_QUEUE = 0x14 2395 STATX_ALL = 0xfff
2396 TCP_REPAIR_WINDOW = 0x1d 2396 STATX_ATIME = 0x20
2397 TCP_SAVED_SYN = 0x1c 2397 STATX_ATTR_APPEND = 0x20
2398 TCP_SAVE_SYN = 0x1b 2398 STATX_ATTR_AUTOMOUNT = 0x1000
2399 TCP_SYNCNT = 0x7 2399 STATX_ATTR_COMPRESSED = 0x4
2400 TCP_S_DATA_IN = 0x4 2400 STATX_ATTR_ENCRYPTED = 0x800
2401 TCP_S_DATA_OUT = 0x8 2401 STATX_ATTR_IMMUTABLE = 0x10
2402 TCP_THIN_DUPACK = 0x11 2402 STATX_ATTR_NODUMP = 0x40
2403 TCP_THIN_LINEAR_TIMEOUTS = 0x10 2403 STATX_ATTR_VERITY = 0x100000
2404 TCP_TIMESTAMP = 0x18 2404 STATX_BASIC_STATS = 0x7ff
2405 TCP_ULP = 0x1f 2405 STATX_BLOCKS = 0x400
2406 TCP_USER_TIMEOUT = 0x12 2406 STATX_BTIME = 0x800
2407 TCP_WINDOW_CLAMP = 0xa 2407 STATX_CTIME = 0x80
2408 TCP_ZEROCOPY_RECEIVE = 0x23 2408 STATX_GID = 0x10
2409 TCSAFLUSH = 0x2 2409 STATX_INO = 0x100
2410 TCSBRK = 0x2000741d 2410 STATX_MODE = 0x2
2411 TCSBRKP = 0x5425 2411 STATX_MTIME = 0x40
2412 TCSETA = 0x80147418 2412 STATX_NLINK = 0x4
2413 TCSETAF = 0x8014741c 2413 STATX_SIZE = 0x200
2414 TCSETAW = 0x80147419 2414 STATX_TYPE = 0x1
2415 TCSETS = 0x802c7414 2415 STATX_UID = 0x8
2416 TCSETSF = 0x802c7416 2416 STATX__RESERVED = 0x80000000
2417 TCSETSW = 0x802c7415 2417 SYNC_FILE_RANGE_WAIT_AFTER = 0x4
2418 TCXONC = 0x2000741e 2418 SYNC_FILE_RANGE_WAIT_BEFORE = 0x1
2419 TIMER_ABSTIME = 0x1 2419 SYNC_FILE_RANGE_WRITE = 0x2
2420 TIOCCBRK = 0x5428 2420 SYNC_FILE_RANGE_WRITE_AND_WAIT = 0x7
2421 TIOCCONS = 0x541d 2421 SYSFS_MAGIC = 0x62656572
2422 TIOCEXCL = 0x540c 2422 S_BLKSIZE = 0x200
2423 TIOCGDEV = 0x40045432 2423 S_IEXEC = 0x40
2424 TIOCGETC = 0x40067412 2424 S_IFBLK = 0x6000
2425 TIOCGETD = 0x5424 2425 S_IFCHR = 0x2000
2426 TIOCGETP = 0x40067408 2426 S_IFDIR = 0x4000
2427 TIOCGEXCL = 0x40045440 2427 S_IFIFO = 0x1000
2428 TIOCGICOUNT = 0x545d 2428 S_IFLNK = 0xa000
2429 TIOCGISO7816 = 0x40285442 2429 S_IFMT = 0xf000
2430 TIOCGLCKTRMIOS = 0x5456 2430 S_IFREG = 0x8000
2431 TIOCGLTC = 0x40067474 2431 S_IFSOCK = 0xc000
2432 TIOCGPGRP = 0x40047477 2432 S_IREAD = 0x100
2433 TIOCGPKT = 0x40045438 2433 S_IRGRP = 0x20
2434 TIOCGPTLCK = 0x40045439 2434 S_IROTH = 0x4
2435 TIOCGPTN = 0x40045430 2435 S_IRUSR = 0x100
2436 TIOCGPTPEER = 0x20005441 2436 S_IRWXG = 0x38
2437 TIOCGRS485 = 0x542e 2437 S_IRWXO = 0x7
2438 TIOCGSERIAL = 0x541e 2438 S_IRWXU = 0x1c0
2439 TIOCGSID = 0x5429 2439 S_ISGID = 0x400
2440 TIOCGSOFTCAR = 0x5419 2440 S_ISUID = 0x800
2441 TIOCGWINSZ = 0x40087468 2441 S_ISVTX = 0x200
2442 TIOCINQ = 0x4004667f 2442 S_IWGRP = 0x10
2443 TIOCLINUX = 0x541c 2443 S_IWOTH = 0x2
2444 TIOCMBIC = 0x5417 2444 S_IWRITE = 0x80
2445 TIOCMBIS = 0x5416 2445 S_IWUSR = 0x80
2446 TIOCMGET = 0x5415 2446 S_IXGRP = 0x8
2447 TIOCMIWAIT = 0x545c 2447 S_IXOTH = 0x1
2448 TIOCMSET = 0x5418 2448 S_IXUSR = 0x40
2449 TIOCM_CAR = 0x40 2449 TAB0 = 0x0
2450 TIOCM_CD = 0x40 2450 TAB1 = 0x400
2451 TIOCM_CTS = 0x20 2451 TAB2 = 0x800
2452 TIOCM_DSR = 0x100 2452 TAB3 = 0xc00
2453 TIOCM_DTR = 0x2 2453 TABDLY = 0xc00
2454 TIOCM_LE = 0x1 2454 TASKSTATS_CMD_ATTR_MAX = 0x4
2455 TIOCM_LOOP = 0x8000 2455 TASKSTATS_CMD_MAX = 0x2
2456 TIOCM_OUT1 = 0x2000 2456 TASKSTATS_GENL_NAME = "TASKSTATS"
2457 TIOCM_OUT2 = 0x4000 2457 TASKSTATS_GENL_VERSION = 0x1
2458 TIOCM_RI = 0x80 2458 TASKSTATS_TYPE_MAX = 0x6
2459 TIOCM_RNG = 0x80 2459 TASKSTATS_VERSION = 0x9
2460 TIOCM_RTS = 0x4 2460 TCFLSH = 0x2000741f
2461 TIOCM_SR = 0x10 2461 TCGETA = 0x40147417
2462 TIOCM_ST = 0x8 2462 TCGETS = 0x402c7413
2463 TIOCNOTTY = 0x5422 2463 TCIFLUSH = 0x0
2464 TIOCNXCL = 0x540d 2464 TCIOFF = 0x2
2465 TIOCOUTQ = 0x40047473 2465 TCIOFLUSH = 0x2
2466 TIOCPKT = 0x5420 2466 TCION = 0x3
2467 TIOCPKT_DATA = 0x0 2467 TCOFLUSH = 0x1
2468 TIOCPKT_DOSTOP = 0x20 2468 TCOOFF = 0x0
2469 TIOCPKT_FLUSHREAD = 0x1 2469 TCOON = 0x1
2470 TIOCPKT_FLUSHWRITE = 0x2 2470 TCP_BPF_IW = 0x3e9
2471 TIOCPKT_IOCTL = 0x40 2471 TCP_BPF_SNDCWND_CLAMP = 0x3ea
2472 TIOCPKT_NOSTOP = 0x10 2472 TCP_CC_INFO = 0x1a
2473 TIOCPKT_START = 0x8 2473 TCP_CM_INQ = 0x24
2474 TIOCPKT_STOP = 0x4 2474 TCP_CONGESTION = 0xd
2475 TIOCSBRK = 0x5427 2475 TCP_COOKIE_IN_ALWAYS = 0x1
2476 TIOCSCTTY = 0x540e 2476 TCP_COOKIE_MAX = 0x10
2477 TIOCSERCONFIG = 0x5453 2477 TCP_COOKIE_MIN = 0x8
2478 TIOCSERGETLSR = 0x5459 2478 TCP_COOKIE_OUT_NEVER = 0x2
2479 TIOCSERGETMULTI = 0x545a 2479 TCP_COOKIE_PAIR_SIZE = 0x20
2480 TIOCSERGSTRUCT = 0x5458 2480 TCP_COOKIE_TRANSACTIONS = 0xf
2481 TIOCSERGWILD = 0x5454 2481 TCP_CORK = 0x3
2482 TIOCSERSETMULTI = 0x545b 2482 TCP_DEFER_ACCEPT = 0x9
2483 TIOCSERSWILD = 0x5455 2483 TCP_FASTOPEN = 0x17
2484 TIOCSER_TEMT = 0x1 2484 TCP_FASTOPEN_CONNECT = 0x1e
2485 TIOCSETC = 0x80067411 2485 TCP_FASTOPEN_KEY = 0x21
2486 TIOCSETD = 0x5423 2486 TCP_FASTOPEN_NO_COOKIE = 0x22
2487 TIOCSETN = 0x8006740a 2487 TCP_INFO = 0xb
2488 TIOCSETP = 0x80067409 2488 TCP_INQ = 0x24
2489 TIOCSIG = 0x80045436 2489 TCP_KEEPCNT = 0x6
2490 TIOCSISO7816 = 0xc0285443 2490 TCP_KEEPIDLE = 0x4
2491 TIOCSLCKTRMIOS = 0x5457 2491 TCP_KEEPINTVL = 0x5
2492 TIOCSLTC = 0x80067475 2492 TCP_LINGER2 = 0x8
2493 TIOCSPGRP = 0x80047476 2493 TCP_MAXSEG = 0x2
2494 TIOCSPTLCK = 0x80045431 2494 TCP_MAXWIN = 0xffff
2495 TIOCSRS485 = 0x542f 2495 TCP_MAX_WINSHIFT = 0xe
2496 TIOCSSERIAL = 0x541f 2496 TCP_MD5SIG = 0xe
2497 TIOCSSOFTCAR = 0x541a 2497 TCP_MD5SIG_EXT = 0x20
2498 TIOCSTART = 0x2000746e 2498 TCP_MD5SIG_FLAG_PREFIX = 0x1
2499 TIOCSTI = 0x5412 2499 TCP_MD5SIG_MAXKEYLEN = 0x50
2500 TIOCSTOP = 0x2000746f 2500 TCP_MSS = 0x200
2501 TIOCSWINSZ = 0x80087467 2501 TCP_MSS_DEFAULT = 0x218
2502 TIOCVHANGUP = 0x5437 2502 TCP_MSS_DESIRED = 0x4c4
2503 TMPFS_MAGIC = 0x1021994 2503 TCP_NODELAY = 0x1
2504 TOSTOP = 0x400000 2504 TCP_NOTSENT_LOWAT = 0x19
2505 TPACKET_ALIGNMENT = 0x10 2505 TCP_QUEUE_SEQ = 0x15
2506 TPACKET_HDRLEN = 0x34 2506 TCP_QUICKACK = 0xc
2507 TP_STATUS_AVAILABLE = 0x0 2507 TCP_REPAIR = 0x13
2508 TP_STATUS_BLK_TMO = 0x20 2508 TCP_REPAIR_OFF = 0x0
2509 TP_STATUS_COPY = 0x2 2509 TCP_REPAIR_OFF_NO_WP = -0x1
2510 TP_STATUS_CSUMNOTREADY = 0x8 2510 TCP_REPAIR_ON = 0x1
2511 TP_STATUS_CSUM_VALID = 0x80 2511 TCP_REPAIR_OPTIONS = 0x16
2512 TP_STATUS_KERNEL = 0x0 2512 TCP_REPAIR_QUEUE = 0x14
2513 TP_STATUS_LOSING = 0x4 2513 TCP_REPAIR_WINDOW = 0x1d
2514 TP_STATUS_SENDING = 0x2 2514 TCP_SAVED_SYN = 0x1c
2515 TP_STATUS_SEND_REQUEST = 0x1 2515 TCP_SAVE_SYN = 0x1b
2516 TP_STATUS_TS_RAW_HARDWARE = -0x80000000 2516 TCP_SYNCNT = 0x7
2517 TP_STATUS_TS_SOFTWARE = 0x20000000 2517 TCP_S_DATA_IN = 0x4
2518 TP_STATUS_TS_SYS_HARDWARE = 0x40000000 2518 TCP_S_DATA_OUT = 0x8
2519 TP_STATUS_USER = 0x1 2519 TCP_THIN_DUPACK = 0x11
2520 TP_STATUS_VLAN_TPID_VALID = 0x40 2520 TCP_THIN_LINEAR_TIMEOUTS = 0x10
2521 TP_STATUS_VLAN_VALID = 0x10 2521 TCP_TIMESTAMP = 0x18
2522 TP_STATUS_WRONG_FORMAT = 0x4 2522 TCP_TX_DELAY = 0x25
2523 TRACEFS_MAGIC = 0x74726163 2523 TCP_ULP = 0x1f
2524 TS_COMM_LEN = 0x20 2524 TCP_USER_TIMEOUT = 0x12
2525 TUNATTACHFILTER = 0x801054d5 2525 TCP_WINDOW_CLAMP = 0xa
2526 TUNDETACHFILTER = 0x801054d6 2526 TCP_ZEROCOPY_RECEIVE = 0x23
2527 TUNGETDEVNETNS = 0x200054e3 2527 TCSAFLUSH = 0x2
2528 TUNGETFEATURES = 0x400454cf 2528 TCSBRK = 0x2000741d
2529 TUNGETFILTER = 0x401054db 2529 TCSBRKP = 0x5425
2530 TUNGETIFF = 0x400454d2 2530 TCSETA = 0x80147418
2531 TUNGETSNDBUF = 0x400454d3 2531 TCSETAF = 0x8014741c
2532 TUNGETVNETBE = 0x400454df 2532 TCSETAW = 0x80147419
2533 TUNGETVNETHDRSZ = 0x400454d7 2533 TCSETS = 0x802c7414
2534 TUNGETVNETLE = 0x400454dd 2534 TCSETSF = 0x802c7416
2535 TUNSETCARRIER = 0x800454e2 2535 TCSETSW = 0x802c7415
2536 TUNSETDEBUG = 0x800454c9 2536 TCXONC = 0x2000741e
2537 TUNSETFILTEREBPF = 0x400454e1 2537 TIMER_ABSTIME = 0x1
2538 TUNSETGROUP = 0x800454ce 2538 TIOCCBRK = 0x5428
2539 TUNSETIFF = 0x800454ca 2539 TIOCCONS = 0x541d
2540 TUNSETIFINDEX = 0x800454da 2540 TIOCEXCL = 0x540c
2541 TUNSETLINK = 0x800454cd 2541 TIOCGDEV = 0x40045432
2542 TUNSETNOCSUM = 0x800454c8 2542 TIOCGETC = 0x40067412
2543 TUNSETOFFLOAD = 0x800454d0 2543 TIOCGETD = 0x5424
2544 TUNSETOWNER = 0x800454cc 2544 TIOCGETP = 0x40067408
2545 TUNSETPERSIST = 0x800454cb 2545 TIOCGEXCL = 0x40045440
2546 TUNSETQUEUE = 0x800454d9 2546 TIOCGICOUNT = 0x545d
2547 TUNSETSNDBUF = 0x800454d4 2547 TIOCGISO7816 = 0x40285442
2548 TUNSETSTEERINGEBPF = 0x400454e0 2548 TIOCGLCKTRMIOS = 0x5456
2549 TUNSETTXFILTER = 0x800454d1 2549 TIOCGLTC = 0x40067474
2550 TUNSETVNETBE = 0x800454de 2550 TIOCGPGRP = 0x40047477
2551 TUNSETVNETHDRSZ = 0x800454d8 2551 TIOCGPKT = 0x40045438
2552 TUNSETVNETLE = 0x800454dc 2552 TIOCGPTLCK = 0x40045439
2553 UBI_IOCATT = 0x80186f40 2553 TIOCGPTN = 0x40045430
2554 UBI_IOCDET = 0x80046f41 2554 TIOCGPTPEER = 0x20005441
2555 UBI_IOCEBCH = 0x80044f02 2555 TIOCGRS485 = 0x542e
2556 UBI_IOCEBER = 0x80044f01 2556 TIOCGSERIAL = 0x541e
2557 UBI_IOCEBISMAP = 0x40044f05 2557 TIOCGSID = 0x5429
2558 UBI_IOCEBMAP = 0x80084f03 2558 TIOCGSOFTCAR = 0x5419
2559 UBI_IOCEBUNMAP = 0x80044f04 2559 TIOCGWINSZ = 0x40087468
2560 UBI_IOCMKVOL = 0x80986f00 2560 TIOCINQ = 0x4004667f
2561 UBI_IOCRMVOL = 0x80046f01 2561 TIOCLINUX = 0x541c
2562 UBI_IOCRNVOL = 0x91106f03 2562 TIOCMBIC = 0x5417
2563 UBI_IOCRPEB = 0x80046f04 2563 TIOCMBIS = 0x5416
2564 UBI_IOCRSVOL = 0x800c6f02 2564 TIOCMGET = 0x5415
2565 UBI_IOCSETVOLPROP = 0x80104f06 2565 TIOCMIWAIT = 0x545c
2566 UBI_IOCSPEB = 0x80046f05 2566 TIOCMSET = 0x5418
2567 UBI_IOCVOLCRBLK = 0x80804f07 2567 TIOCM_CAR = 0x40
2568 UBI_IOCVOLRMBLK = 0x20004f08 2568 TIOCM_CD = 0x40
2569 UBI_IOCVOLUP = 0x80084f00 2569 TIOCM_CTS = 0x20
2570 UDF_SUPER_MAGIC = 0x15013346 2570 TIOCM_DSR = 0x100
2571 UMOUNT_NOFOLLOW = 0x8 2571 TIOCM_DTR = 0x2
2572 USBDEVICE_SUPER_MAGIC = 0x9fa2 2572 TIOCM_LE = 0x1
2573 UTIME_NOW = 0x3fffffff 2573 TIOCM_LOOP = 0x8000
2574 UTIME_OMIT = 0x3ffffffe 2574 TIOCM_OUT1 = 0x2000
2575 V9FS_MAGIC = 0x1021997 2575 TIOCM_OUT2 = 0x4000
2576 VDISCARD = 0x10 2576 TIOCM_RI = 0x80
2577 VEOF = 0x4 2577 TIOCM_RNG = 0x80
2578 VEOL = 0x6 2578 TIOCM_RTS = 0x4
2579 VEOL2 = 0x8 2579 TIOCM_SR = 0x10
2580 VERASE = 0x2 2580 TIOCM_ST = 0x8
2581 VINTR = 0x0 2581 TIOCNOTTY = 0x5422
2582 VKILL = 0x3 2582 TIOCNXCL = 0x540d
2583 VLNEXT = 0xf 2583 TIOCOUTQ = 0x40047473
2584 VMADDR_CID_ANY = 0xffffffff 2584 TIOCPKT = 0x5420
2585 VMADDR_CID_HOST = 0x2 2585 TIOCPKT_DATA = 0x0
2586 VMADDR_CID_HYPERVISOR = 0x0 2586 TIOCPKT_DOSTOP = 0x20
2587 VMADDR_CID_RESERVED = 0x1 2587 TIOCPKT_FLUSHREAD = 0x1
2588 VMADDR_PORT_ANY = 0xffffffff 2588 TIOCPKT_FLUSHWRITE = 0x2
2589 VMIN = 0x5 2589 TIOCPKT_IOCTL = 0x40
2590 VM_SOCKETS_INVALID_VERSION = 0xffffffff 2590 TIOCPKT_NOSTOP = 0x10
2591 VQUIT = 0x1 2591 TIOCPKT_START = 0x8
2592 VREPRINT = 0xb 2592 TIOCPKT_STOP = 0x4
2593 VSTART = 0xd 2593 TIOCSBRK = 0x5427
2594 VSTOP = 0xe 2594 TIOCSCTTY = 0x540e
2595 VSUSP = 0xc 2595 TIOCSERCONFIG = 0x5453
2596 VSWTC = 0x9 2596 TIOCSERGETLSR = 0x5459
2597 VT0 = 0x0 2597 TIOCSERGETMULTI = 0x545a
2598 VT1 = 0x10000 2598 TIOCSERGSTRUCT = 0x5458
2599 VTDLY = 0x10000 2599 TIOCSERGWILD = 0x5454
2600 VTIME = 0x7 2600 TIOCSERSETMULTI = 0x545b
2601 VWERASE = 0xa 2601 TIOCSERSWILD = 0x5455
2602 WALL = 0x40000000 2602 TIOCSER_TEMT = 0x1
2603 WCLONE = 0x80000000 2603 TIOCSETC = 0x80067411
2604 WCONTINUED = 0x8 2604 TIOCSETD = 0x5423
2605 WDIOC_GETBOOTSTATUS = 0x40045702 2605 TIOCSETN = 0x8006740a
2606 WDIOC_GETPRETIMEOUT = 0x40045709 2606 TIOCSETP = 0x80067409
2607 WDIOC_GETSTATUS = 0x40045701 2607 TIOCSIG = 0x80045436
2608 WDIOC_GETSUPPORT = 0x40285700 2608 TIOCSISO7816 = 0xc0285443
2609 WDIOC_GETTEMP = 0x40045703 2609 TIOCSLCKTRMIOS = 0x5457
2610 WDIOC_GETTIMELEFT = 0x4004570a 2610 TIOCSLTC = 0x80067475
2611 WDIOC_GETTIMEOUT = 0x40045707 2611 TIOCSPGRP = 0x80047476
2612 WDIOC_KEEPALIVE = 0x40045705 2612 TIOCSPTLCK = 0x80045431
2613 WDIOC_SETOPTIONS = 0x40045704 2613 TIOCSRS485 = 0x542f
2614 WDIOC_SETPRETIMEOUT = 0xc0045708 2614 TIOCSSERIAL = 0x541f
2615 WDIOC_SETTIMEOUT = 0xc0045706 2615 TIOCSSOFTCAR = 0x541a
2616 WEXITED = 0x4 2616 TIOCSTART = 0x2000746e
2617 WIN_ACKMEDIACHANGE = 0xdb 2617 TIOCSTI = 0x5412
2618 WIN_CHECKPOWERMODE1 = 0xe5 2618 TIOCSTOP = 0x2000746f
2619 WIN_CHECKPOWERMODE2 = 0x98 2619 TIOCSWINSZ = 0x80087467
2620 WIN_DEVICE_RESET = 0x8 2620 TIOCVHANGUP = 0x5437
2621 WIN_DIAGNOSE = 0x90 2621 TIPC_ADDR_ID = 0x3
2622 WIN_DOORLOCK = 0xde 2622 TIPC_ADDR_MCAST = 0x1
2623 WIN_DOORUNLOCK = 0xdf 2623 TIPC_ADDR_NAME = 0x2
2624 WIN_DOWNLOAD_MICROCODE = 0x92 2624 TIPC_ADDR_NAMESEQ = 0x1
2625 WIN_FLUSH_CACHE = 0xe7 2625 TIPC_AEAD_ALG_NAME = 0x20
2626 WIN_FLUSH_CACHE_EXT = 0xea 2626 TIPC_AEAD_KEYLEN_MAX = 0x24
2627 WIN_FORMAT = 0x50 2627 TIPC_AEAD_KEYLEN_MIN = 0x14
2628 WIN_GETMEDIASTATUS = 0xda 2628 TIPC_AEAD_KEY_SIZE_MAX = 0x48
2629 WIN_IDENTIFY = 0xec 2629 TIPC_CFG_SRV = 0x0
2630 WIN_IDENTIFY_DMA = 0xee 2630 TIPC_CLUSTER_BITS = 0xc
2631 WIN_IDLEIMMEDIATE = 0xe1 2631 TIPC_CLUSTER_MASK = 0xfff000
2632 WIN_INIT = 0x60 2632 TIPC_CLUSTER_OFFSET = 0xc
2633 WIN_MEDIAEJECT = 0xed 2633 TIPC_CLUSTER_SIZE = 0xfff
2634 WIN_MULTREAD = 0xc4 2634 TIPC_CONN_SHUTDOWN = 0x5
2635 WIN_MULTREAD_EXT = 0x29 2635 TIPC_CONN_TIMEOUT = 0x82
2636 WIN_MULTWRITE = 0xc5 2636 TIPC_CRITICAL_IMPORTANCE = 0x3
2637 WIN_MULTWRITE_EXT = 0x39 2637 TIPC_DESTNAME = 0x3
2638 WIN_NOP = 0x0 2638 TIPC_DEST_DROPPABLE = 0x81
2639 WIN_PACKETCMD = 0xa0 2639 TIPC_ERRINFO = 0x1
2640 WIN_PIDENTIFY = 0xa1 2640 TIPC_ERR_NO_NAME = 0x1
2641 WIN_POSTBOOT = 0xdc 2641 TIPC_ERR_NO_NODE = 0x3
2642 WIN_PREBOOT = 0xdd 2642 TIPC_ERR_NO_PORT = 0x2
2643 WIN_QUEUED_SERVICE = 0xa2 2643 TIPC_ERR_OVERLOAD = 0x4
2644 WIN_READ = 0x20 2644 TIPC_GROUP_JOIN = 0x87
2645 WIN_READDMA = 0xc8 2645 TIPC_GROUP_LEAVE = 0x88
2646 WIN_READDMA_EXT = 0x25 2646 TIPC_GROUP_LOOPBACK = 0x1
2647 WIN_READDMA_ONCE = 0xc9 2647 TIPC_GROUP_MEMBER_EVTS = 0x2
2648 WIN_READDMA_QUEUED = 0xc7 2648 TIPC_HIGH_IMPORTANCE = 0x2
2649 WIN_READDMA_QUEUED_EXT = 0x26 2649 TIPC_IMPORTANCE = 0x7f
2650 WIN_READ_BUFFER = 0xe4 2650 TIPC_LINK_STATE = 0x2
2651 WIN_READ_EXT = 0x24 2651 TIPC_LOW_IMPORTANCE = 0x0
2652 WIN_READ_LONG = 0x22 2652 TIPC_MAX_BEARER_NAME = 0x20
2653 WIN_READ_LONG_ONCE = 0x23 2653 TIPC_MAX_IF_NAME = 0x10
2654 WIN_READ_NATIVE_MAX = 0xf8 2654 TIPC_MAX_LINK_NAME = 0x44
2655 WIN_READ_NATIVE_MAX_EXT = 0x27 2655 TIPC_MAX_MEDIA_NAME = 0x10
2656 WIN_READ_ONCE = 0x21 2656 TIPC_MAX_USER_MSG_SIZE = 0x101d0
2657 WIN_RECAL = 0x10 2657 TIPC_MCAST_BROADCAST = 0x85
2658 WIN_RESTORE = 0x10 2658 TIPC_MCAST_REPLICAST = 0x86
2659 WIN_SECURITY_DISABLE = 0xf6 2659 TIPC_MEDIUM_IMPORTANCE = 0x1
2660 WIN_SECURITY_ERASE_PREPARE = 0xf3 2660 TIPC_NODEID_LEN = 0x10
2661 WIN_SECURITY_ERASE_UNIT = 0xf4 2661 TIPC_NODELAY = 0x8a
2662 WIN_SECURITY_FREEZE_LOCK = 0xf5 2662 TIPC_NODE_BITS = 0xc
2663 WIN_SECURITY_SET_PASS = 0xf1 2663 TIPC_NODE_MASK = 0xfff
2664 WIN_SECURITY_UNLOCK = 0xf2 2664 TIPC_NODE_OFFSET = 0x0
2665 WIN_SEEK = 0x70 2665 TIPC_NODE_RECVQ_DEPTH = 0x83
2666 WIN_SETFEATURES = 0xef 2666 TIPC_NODE_SIZE = 0xfff
2667 WIN_SETIDLE1 = 0xe3 2667 TIPC_NODE_STATE = 0x0
2668 WIN_SETIDLE2 = 0x97 2668 TIPC_OK = 0x0
2669 WIN_SETMULT = 0xc6 2669 TIPC_PUBLISHED = 0x1
2670 WIN_SET_MAX = 0xf9 2670 TIPC_RESERVED_TYPES = 0x40
2671 WIN_SET_MAX_EXT = 0x37 2671 TIPC_RETDATA = 0x2
2672 WIN_SLEEPNOW1 = 0xe6 2672 TIPC_SERVICE_ADDR = 0x2
2673 WIN_SLEEPNOW2 = 0x99 2673 TIPC_SERVICE_RANGE = 0x1
2674 WIN_SMART = 0xb0 2674 TIPC_SOCKET_ADDR = 0x3
2675 WIN_SPECIFY = 0x91 2675 TIPC_SOCK_RECVQ_DEPTH = 0x84
2676 WIN_SRST = 0x8 2676 TIPC_SOCK_RECVQ_USED = 0x89
2677 WIN_STANDBY = 0xe2 2677 TIPC_SRC_DROPPABLE = 0x80
2678 WIN_STANDBY2 = 0x96 2678 TIPC_SUBSCR_TIMEOUT = 0x3
2679 WIN_STANDBYNOW1 = 0xe0 2679 TIPC_SUB_CANCEL = 0x4
2680 WIN_STANDBYNOW2 = 0x94 2680 TIPC_SUB_PORTS = 0x1
2681 WIN_VERIFY = 0x40 2681 TIPC_SUB_SERVICE = 0x2
2682 WIN_VERIFY_EXT = 0x42 2682 TIPC_TOP_SRV = 0x1
2683 WIN_VERIFY_ONCE = 0x41 2683 TIPC_WAIT_FOREVER = 0xffffffff
2684 WIN_WRITE = 0x30 2684 TIPC_WITHDRAWN = 0x2
2685 WIN_WRITEDMA = 0xca 2685 TIPC_ZONE_BITS = 0x8
2686 WIN_WRITEDMA_EXT = 0x35 2686 TIPC_ZONE_CLUSTER_MASK = 0xfffff000
2687 WIN_WRITEDMA_ONCE = 0xcb 2687 TIPC_ZONE_MASK = 0xff000000
2688 WIN_WRITEDMA_QUEUED = 0xcc 2688 TIPC_ZONE_OFFSET = 0x18
2689 WIN_WRITEDMA_QUEUED_EXT = 0x36 2689 TIPC_ZONE_SCOPE = 0x1
2690 WIN_WRITE_BUFFER = 0xe8 2690 TIPC_ZONE_SIZE = 0xff
2691 WIN_WRITE_EXT = 0x34 2691 TMPFS_MAGIC = 0x1021994
2692 WIN_WRITE_LONG = 0x32 2692 TOSTOP = 0x400000
2693 WIN_WRITE_LONG_ONCE = 0x33 2693 TPACKET_ALIGNMENT = 0x10
2694 WIN_WRITE_ONCE = 0x31 2694 TPACKET_HDRLEN = 0x34
2695 WIN_WRITE_SAME = 0xe9 2695 TP_STATUS_AVAILABLE = 0x0
2696 WIN_WRITE_VERIFY = 0x3c 2696 TP_STATUS_BLK_TMO = 0x20
2697 WNOHANG = 0x1 2697 TP_STATUS_COPY = 0x2
2698 WNOTHREAD = 0x20000000 2698 TP_STATUS_CSUMNOTREADY = 0x8
2699 WNOWAIT = 0x1000000 2699 TP_STATUS_CSUM_VALID = 0x80
2700 WORDSIZE = 0x40 2700 TP_STATUS_KERNEL = 0x0
2701 WSTOPPED = 0x2 2701 TP_STATUS_LOSING = 0x4
2702 WUNTRACED = 0x2 2702 TP_STATUS_SENDING = 0x2
2703 XATTR_CREATE = 0x1 2703 TP_STATUS_SEND_REQUEST = 0x1
2704 XATTR_REPLACE = 0x2 2704 TP_STATUS_TS_RAW_HARDWARE = 0x80000000
2705 XCASE = 0x4000 2705 TP_STATUS_TS_SOFTWARE = 0x20000000
2706 XDP_COPY = 0x2 2706 TP_STATUS_TS_SYS_HARDWARE = 0x40000000
2707 XDP_FLAGS_DRV_MODE = 0x4 2707 TP_STATUS_USER = 0x1
2708 XDP_FLAGS_HW_MODE = 0x8 2708 TP_STATUS_VLAN_TPID_VALID = 0x40
2709 XDP_FLAGS_MASK = 0xf 2709 TP_STATUS_VLAN_VALID = 0x10
2710 XDP_FLAGS_MODES = 0xe 2710 TP_STATUS_WRONG_FORMAT = 0x4
2711 XDP_FLAGS_SKB_MODE = 0x2 2711 TRACEFS_MAGIC = 0x74726163
2712 XDP_FLAGS_UPDATE_IF_NOEXIST = 0x1 2712 TS_COMM_LEN = 0x20
2713 XDP_MMAP_OFFSETS = 0x1 2713 TUNATTACHFILTER = 0x801054d5
2714 XDP_PACKET_HEADROOM = 0x100 2714 TUNDETACHFILTER = 0x801054d6
2715 XDP_PGOFF_RX_RING = 0x0 2715 TUNGETDEVNETNS = 0x200054e3
2716 XDP_PGOFF_TX_RING = 0x80000000 2716 TUNGETFEATURES = 0x400454cf
2717 XDP_RX_RING = 0x2 2717 TUNGETFILTER = 0x401054db
2718 XDP_SHARED_UMEM = 0x1 2718 TUNGETIFF = 0x400454d2
2719 XDP_STATISTICS = 0x7 2719 TUNGETSNDBUF = 0x400454d3
2720 XDP_TX_RING = 0x3 2720 TUNGETVNETBE = 0x400454df
2721 XDP_UMEM_COMPLETION_RING = 0x6 2721 TUNGETVNETHDRSZ = 0x400454d7
2722 XDP_UMEM_FILL_RING = 0x5 2722 TUNGETVNETLE = 0x400454dd
2723 XDP_UMEM_PGOFF_COMPLETION_RING = 0x180000000 2723 TUNSETCARRIER = 0x800454e2
2724 XDP_UMEM_PGOFF_FILL_RING = 0x100000000 2724 TUNSETDEBUG = 0x800454c9
2725 XDP_UMEM_REG = 0x4 2725 TUNSETFILTEREBPF = 0x400454e1
2726 XDP_ZEROCOPY = 0x4 2726 TUNSETGROUP = 0x800454ce
2727 XENFS_SUPER_MAGIC = 0xabba1974 2727 TUNSETIFF = 0x800454ca
2728 XFS_SUPER_MAGIC = 0x58465342 2728 TUNSETIFINDEX = 0x800454da
2729 XTABS = 0xc00 2729 TUNSETLINK = 0x800454cd
2730 ZSMALLOC_MAGIC = 0x58295829 2730 TUNSETNOCSUM = 0x800454c8
2731 TUNSETOFFLOAD = 0x800454d0
2732 TUNSETOWNER = 0x800454cc
2733 TUNSETPERSIST = 0x800454cb
2734 TUNSETQUEUE = 0x800454d9
2735 TUNSETSNDBUF = 0x800454d4
2736 TUNSETSTEERINGEBPF = 0x400454e0
2737 TUNSETTXFILTER = 0x800454d1
2738 TUNSETVNETBE = 0x800454de
2739 TUNSETVNETHDRSZ = 0x800454d8
2740 TUNSETVNETLE = 0x800454dc
2741 UBI_IOCATT = 0x80186f40
2742 UBI_IOCDET = 0x80046f41
2743 UBI_IOCEBCH = 0x80044f02
2744 UBI_IOCEBER = 0x80044f01
2745 UBI_IOCEBISMAP = 0x40044f05
2746 UBI_IOCEBMAP = 0x80084f03
2747 UBI_IOCEBUNMAP = 0x80044f04
2748 UBI_IOCMKVOL = 0x80986f00
2749 UBI_IOCRMVOL = 0x80046f01
2750 UBI_IOCRNVOL = 0x91106f03
2751 UBI_IOCRPEB = 0x80046f04
2752 UBI_IOCRSVOL = 0x800c6f02
2753 UBI_IOCSETVOLPROP = 0x80104f06
2754 UBI_IOCSPEB = 0x80046f05
2755 UBI_IOCVOLCRBLK = 0x80804f07
2756 UBI_IOCVOLRMBLK = 0x20004f08
2757 UBI_IOCVOLUP = 0x80084f00
2758 UDF_SUPER_MAGIC = 0x15013346
2759 UMOUNT_NOFOLLOW = 0x8
2760 USBDEVICE_SUPER_MAGIC = 0x9fa2
2761 UTIME_NOW = 0x3fffffff
2762 UTIME_OMIT = 0x3ffffffe
2763 V9FS_MAGIC = 0x1021997
2764 VDISCARD = 0x10
2765 VEOF = 0x4
2766 VEOL = 0x6
2767 VEOL2 = 0x8
2768 VERASE = 0x2
2769 VINTR = 0x0
2770 VKILL = 0x3
2771 VLNEXT = 0xf
2772 VMADDR_CID_ANY = 0xffffffff
2773 VMADDR_CID_HOST = 0x2
2774 VMADDR_CID_HYPERVISOR = 0x0
2775 VMADDR_CID_RESERVED = 0x1
2776 VMADDR_PORT_ANY = 0xffffffff
2777 VMIN = 0x5
2778 VM_SOCKETS_INVALID_VERSION = 0xffffffff
2779 VQUIT = 0x1
2780 VREPRINT = 0xb
2781 VSTART = 0xd
2782 VSTOP = 0xe
2783 VSUSP = 0xc
2784 VSWTC = 0x9
2785 VT0 = 0x0
2786 VT1 = 0x10000
2787 VTDLY = 0x10000
2788 VTIME = 0x7
2789 VWERASE = 0xa
2790 WALL = 0x40000000
2791 WCLONE = 0x80000000
2792 WCONTINUED = 0x8
2793 WDIOC_GETBOOTSTATUS = 0x40045702
2794 WDIOC_GETPRETIMEOUT = 0x40045709
2795 WDIOC_GETSTATUS = 0x40045701
2796 WDIOC_GETSUPPORT = 0x40285700
2797 WDIOC_GETTEMP = 0x40045703
2798 WDIOC_GETTIMELEFT = 0x4004570a
2799 WDIOC_GETTIMEOUT = 0x40045707
2800 WDIOC_KEEPALIVE = 0x40045705
2801 WDIOC_SETOPTIONS = 0x40045704
2802 WDIOC_SETPRETIMEOUT = 0xc0045708
2803 WDIOC_SETTIMEOUT = 0xc0045706
2804 WEXITED = 0x4
2805 WIN_ACKMEDIACHANGE = 0xdb
2806 WIN_CHECKPOWERMODE1 = 0xe5
2807 WIN_CHECKPOWERMODE2 = 0x98
2808 WIN_DEVICE_RESET = 0x8
2809 WIN_DIAGNOSE = 0x90
2810 WIN_DOORLOCK = 0xde
2811 WIN_DOORUNLOCK = 0xdf
2812 WIN_DOWNLOAD_MICROCODE = 0x92
2813 WIN_FLUSH_CACHE = 0xe7
2814 WIN_FLUSH_CACHE_EXT = 0xea
2815 WIN_FORMAT = 0x50
2816 WIN_GETMEDIASTATUS = 0xda
2817 WIN_IDENTIFY = 0xec
2818 WIN_IDENTIFY_DMA = 0xee
2819 WIN_IDLEIMMEDIATE = 0xe1
2820 WIN_INIT = 0x60
2821 WIN_MEDIAEJECT = 0xed
2822 WIN_MULTREAD = 0xc4
2823 WIN_MULTREAD_EXT = 0x29
2824 WIN_MULTWRITE = 0xc5
2825 WIN_MULTWRITE_EXT = 0x39
2826 WIN_NOP = 0x0
2827 WIN_PACKETCMD = 0xa0
2828 WIN_PIDENTIFY = 0xa1
2829 WIN_POSTBOOT = 0xdc
2830 WIN_PREBOOT = 0xdd
2831 WIN_QUEUED_SERVICE = 0xa2
2832 WIN_READ = 0x20
2833 WIN_READDMA = 0xc8
2834 WIN_READDMA_EXT = 0x25
2835 WIN_READDMA_ONCE = 0xc9
2836 WIN_READDMA_QUEUED = 0xc7
2837 WIN_READDMA_QUEUED_EXT = 0x26
2838 WIN_READ_BUFFER = 0xe4
2839 WIN_READ_EXT = 0x24
2840 WIN_READ_LONG = 0x22
2841 WIN_READ_LONG_ONCE = 0x23
2842 WIN_READ_NATIVE_MAX = 0xf8
2843 WIN_READ_NATIVE_MAX_EXT = 0x27
2844 WIN_READ_ONCE = 0x21
2845 WIN_RECAL = 0x10
2846 WIN_RESTORE = 0x10
2847 WIN_SECURITY_DISABLE = 0xf6
2848 WIN_SECURITY_ERASE_PREPARE = 0xf3
2849 WIN_SECURITY_ERASE_UNIT = 0xf4
2850 WIN_SECURITY_FREEZE_LOCK = 0xf5
2851 WIN_SECURITY_SET_PASS = 0xf1
2852 WIN_SECURITY_UNLOCK = 0xf2
2853 WIN_SEEK = 0x70
2854 WIN_SETFEATURES = 0xef
2855 WIN_SETIDLE1 = 0xe3
2856 WIN_SETIDLE2 = 0x97
2857 WIN_SETMULT = 0xc6
2858 WIN_SET_MAX = 0xf9
2859 WIN_SET_MAX_EXT = 0x37
2860 WIN_SLEEPNOW1 = 0xe6
2861 WIN_SLEEPNOW2 = 0x99
2862 WIN_SMART = 0xb0
2863 WIN_SPECIFY = 0x91
2864 WIN_SRST = 0x8
2865 WIN_STANDBY = 0xe2
2866 WIN_STANDBY2 = 0x96
2867 WIN_STANDBYNOW1 = 0xe0
2868 WIN_STANDBYNOW2 = 0x94
2869 WIN_VERIFY = 0x40
2870 WIN_VERIFY_EXT = 0x42
2871 WIN_VERIFY_ONCE = 0x41
2872 WIN_WRITE = 0x30
2873 WIN_WRITEDMA = 0xca
2874 WIN_WRITEDMA_EXT = 0x35
2875 WIN_WRITEDMA_ONCE = 0xcb
2876 WIN_WRITEDMA_QUEUED = 0xcc
2877 WIN_WRITEDMA_QUEUED_EXT = 0x36
2878 WIN_WRITE_BUFFER = 0xe8
2879 WIN_WRITE_EXT = 0x34
2880 WIN_WRITE_LONG = 0x32
2881 WIN_WRITE_LONG_ONCE = 0x33
2882 WIN_WRITE_ONCE = 0x31
2883 WIN_WRITE_SAME = 0xe9
2884 WIN_WRITE_VERIFY = 0x3c
2885 WNOHANG = 0x1
2886 WNOTHREAD = 0x20000000
2887 WNOWAIT = 0x1000000
2888 WORDSIZE = 0x40
2889 WSTOPPED = 0x2
2890 WUNTRACED = 0x2
2891 XATTR_CREATE = 0x1
2892 XATTR_REPLACE = 0x2
2893 XCASE = 0x4000
2894 XDP_COPY = 0x2
2895 XDP_FLAGS_DRV_MODE = 0x4
2896 XDP_FLAGS_HW_MODE = 0x8
2897 XDP_FLAGS_MASK = 0xf
2898 XDP_FLAGS_MODES = 0xe
2899 XDP_FLAGS_SKB_MODE = 0x2
2900 XDP_FLAGS_UPDATE_IF_NOEXIST = 0x1
2901 XDP_MMAP_OFFSETS = 0x1
2902 XDP_OPTIONS = 0x8
2903 XDP_OPTIONS_ZEROCOPY = 0x1
2904 XDP_PACKET_HEADROOM = 0x100
2905 XDP_PGOFF_RX_RING = 0x0
2906 XDP_PGOFF_TX_RING = 0x80000000
2907 XDP_RING_NEED_WAKEUP = 0x1
2908 XDP_RX_RING = 0x2
2909 XDP_SHARED_UMEM = 0x1
2910 XDP_STATISTICS = 0x7
2911 XDP_TX_RING = 0x3
2912 XDP_UMEM_COMPLETION_RING = 0x6
2913 XDP_UMEM_FILL_RING = 0x5
2914 XDP_UMEM_PGOFF_COMPLETION_RING = 0x180000000
2915 XDP_UMEM_PGOFF_FILL_RING = 0x100000000
2916 XDP_UMEM_REG = 0x4
2917 XDP_UMEM_UNALIGNED_CHUNK_FLAG = 0x1
2918 XDP_USE_NEED_WAKEUP = 0x8
2919 XDP_ZEROCOPY = 0x4
2920 XENFS_SUPER_MAGIC = 0xabba1974
2921 XFS_SUPER_MAGIC = 0x58465342
2922 XTABS = 0xc00
2923 Z3FOLD_MAGIC = 0x33
2924 ZSMALLOC_MAGIC = 0x58295829
2731) 2925)
2732 2926
2733// Errors 2927// Errors
diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go
index d1e023e..5d96444 100644
--- a/vendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go
+++ b/vendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go
@@ -11,2649 +11,2842 @@ package unix
11import "syscall" 11import "syscall"
12 12
13const ( 13const (
14 AAFS_MAGIC = 0x5a3c69f0 14 AAFS_MAGIC = 0x5a3c69f0
15 ADFS_SUPER_MAGIC = 0xadf5 15 ADFS_SUPER_MAGIC = 0xadf5
16 AFFS_SUPER_MAGIC = 0xadff 16 AFFS_SUPER_MAGIC = 0xadff
17 AFS_FS_MAGIC = 0x6b414653 17 AFS_FS_MAGIC = 0x6b414653
18 AFS_SUPER_MAGIC = 0x5346414f 18 AFS_SUPER_MAGIC = 0x5346414f
19 AF_ALG = 0x26 19 AF_ALG = 0x26
20 AF_APPLETALK = 0x5 20 AF_APPLETALK = 0x5
21 AF_ASH = 0x12 21 AF_ASH = 0x12
22 AF_ATMPVC = 0x8 22 AF_ATMPVC = 0x8
23 AF_ATMSVC = 0x14 23 AF_ATMSVC = 0x14
24 AF_AX25 = 0x3 24 AF_AX25 = 0x3
25 AF_BLUETOOTH = 0x1f 25 AF_BLUETOOTH = 0x1f
26 AF_BRIDGE = 0x7 26 AF_BRIDGE = 0x7
27 AF_CAIF = 0x25 27 AF_CAIF = 0x25
28 AF_CAN = 0x1d 28 AF_CAN = 0x1d
29 AF_DECnet = 0xc 29 AF_DECnet = 0xc
30 AF_ECONET = 0x13 30 AF_ECONET = 0x13
31 AF_FILE = 0x1 31 AF_FILE = 0x1
32 AF_IB = 0x1b 32 AF_IB = 0x1b
33 AF_IEEE802154 = 0x24 33 AF_IEEE802154 = 0x24
34 AF_INET = 0x2 34 AF_INET = 0x2
35 AF_INET6 = 0xa 35 AF_INET6 = 0xa
36 AF_IPX = 0x4 36 AF_IPX = 0x4
37 AF_IRDA = 0x17 37 AF_IRDA = 0x17
38 AF_ISDN = 0x22 38 AF_ISDN = 0x22
39 AF_IUCV = 0x20 39 AF_IUCV = 0x20
40 AF_KCM = 0x29 40 AF_KCM = 0x29
41 AF_KEY = 0xf 41 AF_KEY = 0xf
42 AF_LLC = 0x1a 42 AF_LLC = 0x1a
43 AF_LOCAL = 0x1 43 AF_LOCAL = 0x1
44 AF_MAX = 0x2d 44 AF_MAX = 0x2d
45 AF_MPLS = 0x1c 45 AF_MPLS = 0x1c
46 AF_NETBEUI = 0xd 46 AF_NETBEUI = 0xd
47 AF_NETLINK = 0x10 47 AF_NETLINK = 0x10
48 AF_NETROM = 0x6 48 AF_NETROM = 0x6
49 AF_NFC = 0x27 49 AF_NFC = 0x27
50 AF_PACKET = 0x11 50 AF_PACKET = 0x11
51 AF_PHONET = 0x23 51 AF_PHONET = 0x23
52 AF_PPPOX = 0x18 52 AF_PPPOX = 0x18
53 AF_QIPCRTR = 0x2a 53 AF_QIPCRTR = 0x2a
54 AF_RDS = 0x15 54 AF_RDS = 0x15
55 AF_ROSE = 0xb 55 AF_ROSE = 0xb
56 AF_ROUTE = 0x10 56 AF_ROUTE = 0x10
57 AF_RXRPC = 0x21 57 AF_RXRPC = 0x21
58 AF_SECURITY = 0xe 58 AF_SECURITY = 0xe
59 AF_SMC = 0x2b 59 AF_SMC = 0x2b
60 AF_SNA = 0x16 60 AF_SNA = 0x16
61 AF_TIPC = 0x1e 61 AF_TIPC = 0x1e
62 AF_UNIX = 0x1 62 AF_UNIX = 0x1
63 AF_UNSPEC = 0x0 63 AF_UNSPEC = 0x0
64 AF_VSOCK = 0x28 64 AF_VSOCK = 0x28
65 AF_WANPIPE = 0x19 65 AF_WANPIPE = 0x19
66 AF_X25 = 0x9 66 AF_X25 = 0x9
67 AF_XDP = 0x2c 67 AF_XDP = 0x2c
68 ALG_OP_DECRYPT = 0x0 68 ALG_OP_DECRYPT = 0x0
69 ALG_OP_ENCRYPT = 0x1 69 ALG_OP_ENCRYPT = 0x1
70 ALG_SET_AEAD_ASSOCLEN = 0x4 70 ALG_SET_AEAD_ASSOCLEN = 0x4
71 ALG_SET_AEAD_AUTHSIZE = 0x5 71 ALG_SET_AEAD_AUTHSIZE = 0x5
72 ALG_SET_IV = 0x2 72 ALG_SET_IV = 0x2
73 ALG_SET_KEY = 0x1 73 ALG_SET_KEY = 0x1
74 ALG_SET_OP = 0x3 74 ALG_SET_OP = 0x3
75 ANON_INODE_FS_MAGIC = 0x9041934 75 ANON_INODE_FS_MAGIC = 0x9041934
76 ARPHRD_6LOWPAN = 0x339 76 ARPHRD_6LOWPAN = 0x339
77 ARPHRD_ADAPT = 0x108 77 ARPHRD_ADAPT = 0x108
78 ARPHRD_APPLETLK = 0x8 78 ARPHRD_APPLETLK = 0x8
79 ARPHRD_ARCNET = 0x7 79 ARPHRD_ARCNET = 0x7
80 ARPHRD_ASH = 0x30d 80 ARPHRD_ASH = 0x30d
81 ARPHRD_ATM = 0x13 81 ARPHRD_ATM = 0x13
82 ARPHRD_AX25 = 0x3 82 ARPHRD_AX25 = 0x3
83 ARPHRD_BIF = 0x307 83 ARPHRD_BIF = 0x307
84 ARPHRD_CAIF = 0x336 84 ARPHRD_CAIF = 0x336
85 ARPHRD_CAN = 0x118 85 ARPHRD_CAN = 0x118
86 ARPHRD_CHAOS = 0x5 86 ARPHRD_CHAOS = 0x5
87 ARPHRD_CISCO = 0x201 87 ARPHRD_CISCO = 0x201
88 ARPHRD_CSLIP = 0x101 88 ARPHRD_CSLIP = 0x101
89 ARPHRD_CSLIP6 = 0x103 89 ARPHRD_CSLIP6 = 0x103
90 ARPHRD_DDCMP = 0x205 90 ARPHRD_DDCMP = 0x205
91 ARPHRD_DLCI = 0xf 91 ARPHRD_DLCI = 0xf
92 ARPHRD_ECONET = 0x30e 92 ARPHRD_ECONET = 0x30e
93 ARPHRD_EETHER = 0x2 93 ARPHRD_EETHER = 0x2
94 ARPHRD_ETHER = 0x1 94 ARPHRD_ETHER = 0x1
95 ARPHRD_EUI64 = 0x1b 95 ARPHRD_EUI64 = 0x1b
96 ARPHRD_FCAL = 0x311 96 ARPHRD_FCAL = 0x311
97 ARPHRD_FCFABRIC = 0x313 97 ARPHRD_FCFABRIC = 0x313
98 ARPHRD_FCPL = 0x312 98 ARPHRD_FCPL = 0x312
99 ARPHRD_FCPP = 0x310 99 ARPHRD_FCPP = 0x310
100 ARPHRD_FDDI = 0x306 100 ARPHRD_FDDI = 0x306
101 ARPHRD_FRAD = 0x302 101 ARPHRD_FRAD = 0x302
102 ARPHRD_HDLC = 0x201 102 ARPHRD_HDLC = 0x201
103 ARPHRD_HIPPI = 0x30c 103 ARPHRD_HIPPI = 0x30c
104 ARPHRD_HWX25 = 0x110 104 ARPHRD_HWX25 = 0x110
105 ARPHRD_IEEE1394 = 0x18 105 ARPHRD_IEEE1394 = 0x18
106 ARPHRD_IEEE802 = 0x6 106 ARPHRD_IEEE802 = 0x6
107 ARPHRD_IEEE80211 = 0x321 107 ARPHRD_IEEE80211 = 0x321
108 ARPHRD_IEEE80211_PRISM = 0x322 108 ARPHRD_IEEE80211_PRISM = 0x322
109 ARPHRD_IEEE80211_RADIOTAP = 0x323 109 ARPHRD_IEEE80211_RADIOTAP = 0x323
110 ARPHRD_IEEE802154 = 0x324 110 ARPHRD_IEEE802154 = 0x324
111 ARPHRD_IEEE802154_MONITOR = 0x325 111 ARPHRD_IEEE802154_MONITOR = 0x325
112 ARPHRD_IEEE802_TR = 0x320 112 ARPHRD_IEEE802_TR = 0x320
113 ARPHRD_INFINIBAND = 0x20 113 ARPHRD_INFINIBAND = 0x20
114 ARPHRD_IP6GRE = 0x337 114 ARPHRD_IP6GRE = 0x337
115 ARPHRD_IPDDP = 0x309 115 ARPHRD_IPDDP = 0x309
116 ARPHRD_IPGRE = 0x30a 116 ARPHRD_IPGRE = 0x30a
117 ARPHRD_IRDA = 0x30f 117 ARPHRD_IRDA = 0x30f
118 ARPHRD_LAPB = 0x204 118 ARPHRD_LAPB = 0x204
119 ARPHRD_LOCALTLK = 0x305 119 ARPHRD_LOCALTLK = 0x305
120 ARPHRD_LOOPBACK = 0x304 120 ARPHRD_LOOPBACK = 0x304
121 ARPHRD_METRICOM = 0x17 121 ARPHRD_METRICOM = 0x17
122 ARPHRD_NETLINK = 0x338 122 ARPHRD_NETLINK = 0x338
123 ARPHRD_NETROM = 0x0 123 ARPHRD_NETROM = 0x0
124 ARPHRD_NONE = 0xfffe 124 ARPHRD_NONE = 0xfffe
125 ARPHRD_PHONET = 0x334 125 ARPHRD_PHONET = 0x334
126 ARPHRD_PHONET_PIPE = 0x335 126 ARPHRD_PHONET_PIPE = 0x335
127 ARPHRD_PIMREG = 0x30b 127 ARPHRD_PIMREG = 0x30b
128 ARPHRD_PPP = 0x200 128 ARPHRD_PPP = 0x200
129 ARPHRD_PRONET = 0x4 129 ARPHRD_PRONET = 0x4
130 ARPHRD_RAWHDLC = 0x206 130 ARPHRD_RAWHDLC = 0x206
131 ARPHRD_RAWIP = 0x207 131 ARPHRD_RAWIP = 0x207
132 ARPHRD_ROSE = 0x10e 132 ARPHRD_ROSE = 0x10e
133 ARPHRD_RSRVD = 0x104 133 ARPHRD_RSRVD = 0x104
134 ARPHRD_SIT = 0x308 134 ARPHRD_SIT = 0x308
135 ARPHRD_SKIP = 0x303 135 ARPHRD_SKIP = 0x303
136 ARPHRD_SLIP = 0x100 136 ARPHRD_SLIP = 0x100
137 ARPHRD_SLIP6 = 0x102 137 ARPHRD_SLIP6 = 0x102
138 ARPHRD_TUNNEL = 0x300 138 ARPHRD_TUNNEL = 0x300
139 ARPHRD_TUNNEL6 = 0x301 139 ARPHRD_TUNNEL6 = 0x301
140 ARPHRD_VOID = 0xffff 140 ARPHRD_VOID = 0xffff
141 ARPHRD_VSOCKMON = 0x33a 141 ARPHRD_VSOCKMON = 0x33a
142 ARPHRD_X25 = 0x10f 142 ARPHRD_X25 = 0x10f
143 AUTOFS_SUPER_MAGIC = 0x187 143 AUTOFS_SUPER_MAGIC = 0x187
144 B0 = 0x0 144 B0 = 0x0
145 B1000000 = 0x1008 145 B1000000 = 0x1008
146 B110 = 0x3 146 B110 = 0x3
147 B115200 = 0x1002 147 B115200 = 0x1002
148 B1152000 = 0x1009 148 B1152000 = 0x1009
149 B1200 = 0x9 149 B1200 = 0x9
150 B134 = 0x4 150 B134 = 0x4
151 B150 = 0x5 151 B150 = 0x5
152 B1500000 = 0x100a 152 B1500000 = 0x100a
153 B1800 = 0xa 153 B1800 = 0xa
154 B19200 = 0xe 154 B19200 = 0xe
155 B200 = 0x6 155 B200 = 0x6
156 B2000000 = 0x100b 156 B2000000 = 0x100b
157 B230400 = 0x1003 157 B230400 = 0x1003
158 B2400 = 0xb 158 B2400 = 0xb
159 B2500000 = 0x100c 159 B2500000 = 0x100c
160 B300 = 0x7 160 B300 = 0x7
161 B3000000 = 0x100d 161 B3000000 = 0x100d
162 B3500000 = 0x100e 162 B3500000 = 0x100e
163 B38400 = 0xf 163 B38400 = 0xf
164 B4000000 = 0x100f 164 B4000000 = 0x100f
165 B460800 = 0x1004 165 B460800 = 0x1004
166 B4800 = 0xc 166 B4800 = 0xc
167 B50 = 0x1 167 B50 = 0x1
168 B500000 = 0x1005 168 B500000 = 0x1005
169 B57600 = 0x1001 169 B57600 = 0x1001
170 B576000 = 0x1006 170 B576000 = 0x1006
171 B600 = 0x8 171 B600 = 0x8
172 B75 = 0x2 172 B75 = 0x2
173 B921600 = 0x1007 173 B921600 = 0x1007
174 B9600 = 0xd 174 B9600 = 0xd
175 BALLOON_KVM_MAGIC = 0x13661366 175 BALLOON_KVM_MAGIC = 0x13661366
176 BDEVFS_MAGIC = 0x62646576 176 BDEVFS_MAGIC = 0x62646576
177 BINDERFS_SUPER_MAGIC = 0x6c6f6f70 177 BINDERFS_SUPER_MAGIC = 0x6c6f6f70
178 BINFMTFS_MAGIC = 0x42494e4d 178 BINFMTFS_MAGIC = 0x42494e4d
179 BLKBSZGET = 0x80081270 179 BLKBSZGET = 0x80081270
180 BLKBSZSET = 0x40081271 180 BLKBSZSET = 0x40081271
181 BLKFLSBUF = 0x1261 181 BLKFLSBUF = 0x1261
182 BLKFRAGET = 0x1265 182 BLKFRAGET = 0x1265
183 BLKFRASET = 0x1264 183 BLKFRASET = 0x1264
184 BLKGETSIZE = 0x1260 184 BLKGETSIZE = 0x1260
185 BLKGETSIZE64 = 0x80081272 185 BLKGETSIZE64 = 0x80081272
186 BLKPBSZGET = 0x127b 186 BLKPBSZGET = 0x127b
187 BLKRAGET = 0x1263 187 BLKRAGET = 0x1263
188 BLKRASET = 0x1262 188 BLKRASET = 0x1262
189 BLKROGET = 0x125e 189 BLKROGET = 0x125e
190 BLKROSET = 0x125d 190 BLKROSET = 0x125d
191 BLKRRPART = 0x125f 191 BLKRRPART = 0x125f
192 BLKSECTGET = 0x1267 192 BLKSECTGET = 0x1267
193 BLKSECTSET = 0x1266 193 BLKSECTSET = 0x1266
194 BLKSSZGET = 0x1268 194 BLKSSZGET = 0x1268
195 BOTHER = 0x1000 195 BOTHER = 0x1000
196 BPF_A = 0x10 196 BPF_A = 0x10
197 BPF_ABS = 0x20 197 BPF_ABS = 0x20
198 BPF_ADD = 0x0 198 BPF_ADD = 0x0
199 BPF_ADJ_ROOM_ENCAP_L2_MASK = 0xff 199 BPF_ADJ_ROOM_ENCAP_L2_MASK = 0xff
200 BPF_ADJ_ROOM_ENCAP_L2_SHIFT = 0x38 200 BPF_ADJ_ROOM_ENCAP_L2_SHIFT = 0x38
201 BPF_ALU = 0x4 201 BPF_ALU = 0x4
202 BPF_ALU64 = 0x7 202 BPF_ALU64 = 0x7
203 BPF_AND = 0x50 203 BPF_AND = 0x50
204 BPF_ANY = 0x0 204 BPF_ANY = 0x0
205 BPF_ARSH = 0xc0 205 BPF_ARSH = 0xc0
206 BPF_B = 0x10 206 BPF_B = 0x10
207 BPF_BUILD_ID_SIZE = 0x14 207 BPF_BUILD_ID_SIZE = 0x14
208 BPF_CALL = 0x80 208 BPF_CALL = 0x80
209 BPF_DEVCG_ACC_MKNOD = 0x1 209 BPF_DEVCG_ACC_MKNOD = 0x1
210 BPF_DEVCG_ACC_READ = 0x2 210 BPF_DEVCG_ACC_READ = 0x2
211 BPF_DEVCG_ACC_WRITE = 0x4 211 BPF_DEVCG_ACC_WRITE = 0x4
212 BPF_DEVCG_DEV_BLOCK = 0x1 212 BPF_DEVCG_DEV_BLOCK = 0x1
213 BPF_DEVCG_DEV_CHAR = 0x2 213 BPF_DEVCG_DEV_CHAR = 0x2
214 BPF_DIV = 0x30 214 BPF_DIV = 0x30
215 BPF_DW = 0x18 215 BPF_DW = 0x18
216 BPF_END = 0xd0 216 BPF_END = 0xd0
217 BPF_EXIST = 0x2 217 BPF_EXIST = 0x2
218 BPF_EXIT = 0x90 218 BPF_EXIT = 0x90
219 BPF_FROM_BE = 0x8 219 BPF_FLOW_DISSECTOR_F_PARSE_1ST_FRAG = 0x1
220 BPF_FROM_LE = 0x0 220 BPF_FLOW_DISSECTOR_F_STOP_AT_ENCAP = 0x4
221 BPF_FS_MAGIC = 0xcafe4a11 221 BPF_FLOW_DISSECTOR_F_STOP_AT_FLOW_LABEL = 0x2
222 BPF_F_ADJ_ROOM_ENCAP_L3_IPV4 = 0x2 222 BPF_FROM_BE = 0x8
223 BPF_F_ADJ_ROOM_ENCAP_L3_IPV6 = 0x4 223 BPF_FROM_LE = 0x0
224 BPF_F_ADJ_ROOM_ENCAP_L4_GRE = 0x8 224 BPF_FS_MAGIC = 0xcafe4a11
225 BPF_F_ADJ_ROOM_ENCAP_L4_UDP = 0x10 225 BPF_F_ADJ_ROOM_ENCAP_L3_IPV4 = 0x2
226 BPF_F_ADJ_ROOM_FIXED_GSO = 0x1 226 BPF_F_ADJ_ROOM_ENCAP_L3_IPV6 = 0x4
227 BPF_F_ALLOW_MULTI = 0x2 227 BPF_F_ADJ_ROOM_ENCAP_L4_GRE = 0x8
228 BPF_F_ALLOW_OVERRIDE = 0x1 228 BPF_F_ADJ_ROOM_ENCAP_L4_UDP = 0x10
229 BPF_F_ANY_ALIGNMENT = 0x2 229 BPF_F_ADJ_ROOM_FIXED_GSO = 0x1
230 BPF_F_CTXLEN_MASK = 0xfffff00000000 230 BPF_F_ALLOW_MULTI = 0x2
231 BPF_F_CURRENT_CPU = 0xffffffff 231 BPF_F_ALLOW_OVERRIDE = 0x1
232 BPF_F_CURRENT_NETNS = -0x1 232 BPF_F_ANY_ALIGNMENT = 0x2
233 BPF_F_DONT_FRAGMENT = 0x4 233 BPF_F_CLONE = 0x200
234 BPF_F_FAST_STACK_CMP = 0x200 234 BPF_F_CTXLEN_MASK = 0xfffff00000000
235 BPF_F_HDR_FIELD_MASK = 0xf 235 BPF_F_CURRENT_CPU = 0xffffffff
236 BPF_F_INDEX_MASK = 0xffffffff 236 BPF_F_CURRENT_NETNS = -0x1
237 BPF_F_INGRESS = 0x1 237 BPF_F_DONT_FRAGMENT = 0x4
238 BPF_F_INVALIDATE_HASH = 0x2 238 BPF_F_FAST_STACK_CMP = 0x200
239 BPF_F_LOCK = 0x4 239 BPF_F_HDR_FIELD_MASK = 0xf
240 BPF_F_MARK_ENFORCE = 0x40 240 BPF_F_INDEX_MASK = 0xffffffff
241 BPF_F_MARK_MANGLED_0 = 0x20 241 BPF_F_INGRESS = 0x1
242 BPF_F_NO_COMMON_LRU = 0x2 242 BPF_F_INVALIDATE_HASH = 0x2
243 BPF_F_NO_PREALLOC = 0x1 243 BPF_F_LOCK = 0x4
244 BPF_F_NUMA_NODE = 0x4 244 BPF_F_MARK_ENFORCE = 0x40
245 BPF_F_PSEUDO_HDR = 0x10 245 BPF_F_MARK_MANGLED_0 = 0x20
246 BPF_F_QUERY_EFFECTIVE = 0x1 246 BPF_F_MMAPABLE = 0x400
247 BPF_F_RDONLY = 0x8 247 BPF_F_NO_COMMON_LRU = 0x2
248 BPF_F_RDONLY_PROG = 0x80 248 BPF_F_NO_PREALLOC = 0x1
249 BPF_F_RECOMPUTE_CSUM = 0x1 249 BPF_F_NUMA_NODE = 0x4
250 BPF_F_REUSE_STACKID = 0x400 250 BPF_F_PSEUDO_HDR = 0x10
251 BPF_F_SEQ_NUMBER = 0x8 251 BPF_F_QUERY_EFFECTIVE = 0x1
252 BPF_F_SKIP_FIELD_MASK = 0xff 252 BPF_F_RDONLY = 0x8
253 BPF_F_STACK_BUILD_ID = 0x20 253 BPF_F_RDONLY_PROG = 0x80
254 BPF_F_STRICT_ALIGNMENT = 0x1 254 BPF_F_RECOMPUTE_CSUM = 0x1
255 BPF_F_SYSCTL_BASE_NAME = 0x1 255 BPF_F_REUSE_STACKID = 0x400
256 BPF_F_TUNINFO_IPV6 = 0x1 256 BPF_F_SEQ_NUMBER = 0x8
257 BPF_F_USER_BUILD_ID = 0x800 257 BPF_F_SKIP_FIELD_MASK = 0xff
258 BPF_F_USER_STACK = 0x100 258 BPF_F_STACK_BUILD_ID = 0x20
259 BPF_F_WRONLY = 0x10 259 BPF_F_STRICT_ALIGNMENT = 0x1
260 BPF_F_WRONLY_PROG = 0x100 260 BPF_F_SYSCTL_BASE_NAME = 0x1
261 BPF_F_ZERO_CSUM_TX = 0x2 261 BPF_F_TEST_RND_HI32 = 0x4
262 BPF_F_ZERO_SEED = 0x40 262 BPF_F_TEST_STATE_FREQ = 0x8
263 BPF_H = 0x8 263 BPF_F_TUNINFO_IPV6 = 0x1
264 BPF_IMM = 0x0 264 BPF_F_USER_BUILD_ID = 0x800
265 BPF_IND = 0x40 265 BPF_F_USER_STACK = 0x100
266 BPF_JA = 0x0 266 BPF_F_WRONLY = 0x10
267 BPF_JEQ = 0x10 267 BPF_F_WRONLY_PROG = 0x100
268 BPF_JGE = 0x30 268 BPF_F_ZERO_CSUM_TX = 0x2
269 BPF_JGT = 0x20 269 BPF_F_ZERO_SEED = 0x40
270 BPF_JLE = 0xb0 270 BPF_H = 0x8
271 BPF_JLT = 0xa0 271 BPF_IMM = 0x0
272 BPF_JMP = 0x5 272 BPF_IND = 0x40
273 BPF_JMP32 = 0x6 273 BPF_JA = 0x0
274 BPF_JNE = 0x50 274 BPF_JEQ = 0x10
275 BPF_JSET = 0x40 275 BPF_JGE = 0x30
276 BPF_JSGE = 0x70 276 BPF_JGT = 0x20
277 BPF_JSGT = 0x60 277 BPF_JLE = 0xb0
278 BPF_JSLE = 0xd0 278 BPF_JLT = 0xa0
279 BPF_JSLT = 0xc0 279 BPF_JMP = 0x5
280 BPF_K = 0x0 280 BPF_JMP32 = 0x6
281 BPF_LD = 0x0 281 BPF_JNE = 0x50
282 BPF_LDX = 0x1 282 BPF_JSET = 0x40
283 BPF_LEN = 0x80 283 BPF_JSGE = 0x70
284 BPF_LL_OFF = -0x200000 284 BPF_JSGT = 0x60
285 BPF_LSH = 0x60 285 BPF_JSLE = 0xd0
286 BPF_MAJOR_VERSION = 0x1 286 BPF_JSLT = 0xc0
287 BPF_MAXINSNS = 0x1000 287 BPF_K = 0x0
288 BPF_MEM = 0x60 288 BPF_LD = 0x0
289 BPF_MEMWORDS = 0x10 289 BPF_LDX = 0x1
290 BPF_MINOR_VERSION = 0x1 290 BPF_LEN = 0x80
291 BPF_MISC = 0x7 291 BPF_LL_OFF = -0x200000
292 BPF_MOD = 0x90 292 BPF_LSH = 0x60
293 BPF_MOV = 0xb0 293 BPF_MAJOR_VERSION = 0x1
294 BPF_MSH = 0xa0 294 BPF_MAXINSNS = 0x1000
295 BPF_MUL = 0x20 295 BPF_MEM = 0x60
296 BPF_NEG = 0x80 296 BPF_MEMWORDS = 0x10
297 BPF_NET_OFF = -0x100000 297 BPF_MINOR_VERSION = 0x1
298 BPF_NOEXIST = 0x1 298 BPF_MISC = 0x7
299 BPF_OBJ_NAME_LEN = 0x10 299 BPF_MOD = 0x90
300 BPF_OR = 0x40 300 BPF_MOV = 0xb0
301 BPF_PSEUDO_CALL = 0x1 301 BPF_MSH = 0xa0
302 BPF_PSEUDO_MAP_FD = 0x1 302 BPF_MUL = 0x20
303 BPF_PSEUDO_MAP_VALUE = 0x2 303 BPF_NEG = 0x80
304 BPF_RET = 0x6 304 BPF_NET_OFF = -0x100000
305 BPF_RSH = 0x70 305 BPF_NOEXIST = 0x1
306 BPF_SK_STORAGE_GET_F_CREATE = 0x1 306 BPF_OBJ_NAME_LEN = 0x10
307 BPF_SOCK_OPS_ALL_CB_FLAGS = 0x7 307 BPF_OR = 0x40
308 BPF_SOCK_OPS_RETRANS_CB_FLAG = 0x2 308 BPF_PSEUDO_CALL = 0x1
309 BPF_SOCK_OPS_RTO_CB_FLAG = 0x1 309 BPF_PSEUDO_MAP_FD = 0x1
310 BPF_SOCK_OPS_STATE_CB_FLAG = 0x4 310 BPF_PSEUDO_MAP_VALUE = 0x2
311 BPF_ST = 0x2 311 BPF_RET = 0x6
312 BPF_STX = 0x3 312 BPF_RSH = 0x70
313 BPF_SUB = 0x10 313 BPF_SK_STORAGE_GET_F_CREATE = 0x1
314 BPF_TAG_SIZE = 0x8 314 BPF_SOCK_OPS_ALL_CB_FLAGS = 0xf
315 BPF_TAX = 0x0 315 BPF_SOCK_OPS_RETRANS_CB_FLAG = 0x2
316 BPF_TO_BE = 0x8 316 BPF_SOCK_OPS_RTO_CB_FLAG = 0x1
317 BPF_TO_LE = 0x0 317 BPF_SOCK_OPS_RTT_CB_FLAG = 0x8
318 BPF_TXA = 0x80 318 BPF_SOCK_OPS_STATE_CB_FLAG = 0x4
319 BPF_W = 0x0 319 BPF_ST = 0x2
320 BPF_X = 0x8 320 BPF_STX = 0x3
321 BPF_XADD = 0xc0 321 BPF_SUB = 0x10
322 BPF_XOR = 0xa0 322 BPF_TAG_SIZE = 0x8
323 BRKINT = 0x2 323 BPF_TAX = 0x0
324 BS0 = 0x0 324 BPF_TO_BE = 0x8
325 BS1 = 0x2000 325 BPF_TO_LE = 0x0
326 BSDLY = 0x2000 326 BPF_TXA = 0x80
327 BTRFS_SUPER_MAGIC = 0x9123683e 327 BPF_W = 0x0
328 BTRFS_TEST_MAGIC = 0x73727279 328 BPF_X = 0x8
329 CAN_BCM = 0x2 329 BPF_XADD = 0xc0
330 CAN_EFF_FLAG = 0x80000000 330 BPF_XOR = 0xa0
331 CAN_EFF_ID_BITS = 0x1d 331 BRKINT = 0x2
332 CAN_EFF_MASK = 0x1fffffff 332 BS0 = 0x0
333 CAN_ERR_FLAG = 0x20000000 333 BS1 = 0x2000
334 CAN_ERR_MASK = 0x1fffffff 334 BSDLY = 0x2000
335 CAN_INV_FILTER = 0x20000000 335 BTRFS_SUPER_MAGIC = 0x9123683e
336 CAN_ISOTP = 0x6 336 BTRFS_TEST_MAGIC = 0x73727279
337 CAN_MAX_DLC = 0x8 337 CAN_BCM = 0x2
338 CAN_MAX_DLEN = 0x8 338 CAN_EFF_FLAG = 0x80000000
339 CAN_MCNET = 0x5 339 CAN_EFF_ID_BITS = 0x1d
340 CAN_MTU = 0x10 340 CAN_EFF_MASK = 0x1fffffff
341 CAN_NPROTO = 0x7 341 CAN_ERR_FLAG = 0x20000000
342 CAN_RAW = 0x1 342 CAN_ERR_MASK = 0x1fffffff
343 CAN_RAW_FILTER_MAX = 0x200 343 CAN_INV_FILTER = 0x20000000
344 CAN_RTR_FLAG = 0x40000000 344 CAN_ISOTP = 0x6
345 CAN_SFF_ID_BITS = 0xb 345 CAN_J1939 = 0x7
346 CAN_SFF_MASK = 0x7ff 346 CAN_MAX_DLC = 0x8
347 CAN_TP16 = 0x3 347 CAN_MAX_DLEN = 0x8
348 CAN_TP20 = 0x4 348 CAN_MCNET = 0x5
349 CAP_AUDIT_CONTROL = 0x1e 349 CAN_MTU = 0x10
350 CAP_AUDIT_READ = 0x25 350 CAN_NPROTO = 0x8
351 CAP_AUDIT_WRITE = 0x1d 351 CAN_RAW = 0x1
352 CAP_BLOCK_SUSPEND = 0x24 352 CAN_RAW_FILTER_MAX = 0x200
353 CAP_CHOWN = 0x0 353 CAN_RTR_FLAG = 0x40000000
354 CAP_DAC_OVERRIDE = 0x1 354 CAN_SFF_ID_BITS = 0xb
355 CAP_DAC_READ_SEARCH = 0x2 355 CAN_SFF_MASK = 0x7ff
356 CAP_FOWNER = 0x3 356 CAN_TP16 = 0x3
357 CAP_FSETID = 0x4 357 CAN_TP20 = 0x4
358 CAP_IPC_LOCK = 0xe 358 CAP_AUDIT_CONTROL = 0x1e
359 CAP_IPC_OWNER = 0xf 359 CAP_AUDIT_READ = 0x25
360 CAP_KILL = 0x5 360 CAP_AUDIT_WRITE = 0x1d
361 CAP_LAST_CAP = 0x25 361 CAP_BLOCK_SUSPEND = 0x24
362 CAP_LEASE = 0x1c 362 CAP_CHOWN = 0x0
363 CAP_LINUX_IMMUTABLE = 0x9 363 CAP_DAC_OVERRIDE = 0x1
364 CAP_MAC_ADMIN = 0x21 364 CAP_DAC_READ_SEARCH = 0x2
365 CAP_MAC_OVERRIDE = 0x20 365 CAP_FOWNER = 0x3
366 CAP_MKNOD = 0x1b 366 CAP_FSETID = 0x4
367 CAP_NET_ADMIN = 0xc 367 CAP_IPC_LOCK = 0xe
368 CAP_NET_BIND_SERVICE = 0xa 368 CAP_IPC_OWNER = 0xf
369 CAP_NET_BROADCAST = 0xb 369 CAP_KILL = 0x5
370 CAP_NET_RAW = 0xd 370 CAP_LAST_CAP = 0x25
371 CAP_SETFCAP = 0x1f 371 CAP_LEASE = 0x1c
372 CAP_SETGID = 0x6 372 CAP_LINUX_IMMUTABLE = 0x9
373 CAP_SETPCAP = 0x8 373 CAP_MAC_ADMIN = 0x21
374 CAP_SETUID = 0x7 374 CAP_MAC_OVERRIDE = 0x20
375 CAP_SYSLOG = 0x22 375 CAP_MKNOD = 0x1b
376 CAP_SYS_ADMIN = 0x15 376 CAP_NET_ADMIN = 0xc
377 CAP_SYS_BOOT = 0x16 377 CAP_NET_BIND_SERVICE = 0xa
378 CAP_SYS_CHROOT = 0x12 378 CAP_NET_BROADCAST = 0xb
379 CAP_SYS_MODULE = 0x10 379 CAP_NET_RAW = 0xd
380 CAP_SYS_NICE = 0x17 380 CAP_SETFCAP = 0x1f
381 CAP_SYS_PACCT = 0x14 381 CAP_SETGID = 0x6
382 CAP_SYS_PTRACE = 0x13 382 CAP_SETPCAP = 0x8
383 CAP_SYS_RAWIO = 0x11 383 CAP_SETUID = 0x7
384 CAP_SYS_RESOURCE = 0x18 384 CAP_SYSLOG = 0x22
385 CAP_SYS_TIME = 0x19 385 CAP_SYS_ADMIN = 0x15
386 CAP_SYS_TTY_CONFIG = 0x1a 386 CAP_SYS_BOOT = 0x16
387 CAP_WAKE_ALARM = 0x23 387 CAP_SYS_CHROOT = 0x12
388 CBAUD = 0x100f 388 CAP_SYS_MODULE = 0x10
389 CBAUDEX = 0x1000 389 CAP_SYS_NICE = 0x17
390 CFLUSH = 0xf 390 CAP_SYS_PACCT = 0x14
391 CGROUP2_SUPER_MAGIC = 0x63677270 391 CAP_SYS_PTRACE = 0x13
392 CGROUP_SUPER_MAGIC = 0x27e0eb 392 CAP_SYS_RAWIO = 0x11
393 CIBAUD = 0x100f0000 393 CAP_SYS_RESOURCE = 0x18
394 CLOCAL = 0x800 394 CAP_SYS_TIME = 0x19
395 CLOCK_BOOTTIME = 0x7 395 CAP_SYS_TTY_CONFIG = 0x1a
396 CLOCK_BOOTTIME_ALARM = 0x9 396 CAP_WAKE_ALARM = 0x23
397 CLOCK_DEFAULT = 0x0 397 CBAUD = 0x100f
398 CLOCK_EXT = 0x1 398 CBAUDEX = 0x1000
399 CLOCK_INT = 0x2 399 CFLUSH = 0xf
400 CLOCK_MONOTONIC = 0x1 400 CGROUP2_SUPER_MAGIC = 0x63677270
401 CLOCK_MONOTONIC_COARSE = 0x6 401 CGROUP_SUPER_MAGIC = 0x27e0eb
402 CLOCK_MONOTONIC_RAW = 0x4 402 CIBAUD = 0x100f0000
403 CLOCK_PROCESS_CPUTIME_ID = 0x2 403 CLOCAL = 0x800
404 CLOCK_REALTIME = 0x0 404 CLOCK_BOOTTIME = 0x7
405 CLOCK_REALTIME_ALARM = 0x8 405 CLOCK_BOOTTIME_ALARM = 0x9
406 CLOCK_REALTIME_COARSE = 0x5 406 CLOCK_DEFAULT = 0x0
407 CLOCK_TAI = 0xb 407 CLOCK_EXT = 0x1
408 CLOCK_THREAD_CPUTIME_ID = 0x3 408 CLOCK_INT = 0x2
409 CLOCK_TXFROMRX = 0x4 409 CLOCK_MONOTONIC = 0x1
410 CLOCK_TXINT = 0x3 410 CLOCK_MONOTONIC_COARSE = 0x6
411 CLONE_CHILD_CLEARTID = 0x200000 411 CLOCK_MONOTONIC_RAW = 0x4
412 CLONE_CHILD_SETTID = 0x1000000 412 CLOCK_PROCESS_CPUTIME_ID = 0x2
413 CLONE_DETACHED = 0x400000 413 CLOCK_REALTIME = 0x0
414 CLONE_FILES = 0x400 414 CLOCK_REALTIME_ALARM = 0x8
415 CLONE_FS = 0x200 415 CLOCK_REALTIME_COARSE = 0x5
416 CLONE_IO = 0x80000000 416 CLOCK_TAI = 0xb
417 CLONE_NEWCGROUP = 0x2000000 417 CLOCK_THREAD_CPUTIME_ID = 0x3
418 CLONE_NEWIPC = 0x8000000 418 CLOCK_TXFROMRX = 0x4
419 CLONE_NEWNET = 0x40000000 419 CLOCK_TXINT = 0x3
420 CLONE_NEWNS = 0x20000 420 CLONE_ARGS_SIZE_VER0 = 0x40
421 CLONE_NEWPID = 0x20000000 421 CLONE_ARGS_SIZE_VER1 = 0x50
422 CLONE_NEWUSER = 0x10000000 422 CLONE_CHILD_CLEARTID = 0x200000
423 CLONE_NEWUTS = 0x4000000 423 CLONE_CHILD_SETTID = 0x1000000
424 CLONE_PARENT = 0x8000 424 CLONE_CLEAR_SIGHAND = 0x100000000
425 CLONE_PARENT_SETTID = 0x100000 425 CLONE_DETACHED = 0x400000
426 CLONE_PIDFD = 0x1000 426 CLONE_FILES = 0x400
427 CLONE_PTRACE = 0x2000 427 CLONE_FS = 0x200
428 CLONE_SETTLS = 0x80000 428 CLONE_IO = 0x80000000
429 CLONE_SIGHAND = 0x800 429 CLONE_NEWCGROUP = 0x2000000
430 CLONE_SYSVSEM = 0x40000 430 CLONE_NEWIPC = 0x8000000
431 CLONE_THREAD = 0x10000 431 CLONE_NEWNET = 0x40000000
432 CLONE_UNTRACED = 0x800000 432 CLONE_NEWNS = 0x20000
433 CLONE_VFORK = 0x4000 433 CLONE_NEWPID = 0x20000000
434 CLONE_VM = 0x100 434 CLONE_NEWUSER = 0x10000000
435 CMSPAR = 0x40000000 435 CLONE_NEWUTS = 0x4000000
436 CODA_SUPER_MAGIC = 0x73757245 436 CLONE_PARENT = 0x8000
437 CR0 = 0x0 437 CLONE_PARENT_SETTID = 0x100000
438 CR1 = 0x200 438 CLONE_PIDFD = 0x1000
439 CR2 = 0x400 439 CLONE_PTRACE = 0x2000
440 CR3 = 0x600 440 CLONE_SETTLS = 0x80000
441 CRAMFS_MAGIC = 0x28cd3d45 441 CLONE_SIGHAND = 0x800
442 CRDLY = 0x600 442 CLONE_SYSVSEM = 0x40000
443 CREAD = 0x80 443 CLONE_THREAD = 0x10000
444 CRTSCTS = 0x80000000 444 CLONE_UNTRACED = 0x800000
445 CRYPTO_MAX_NAME = 0x40 445 CLONE_VFORK = 0x4000
446 CRYPTO_MSG_MAX = 0x15 446 CLONE_VM = 0x100
447 CRYPTO_NR_MSGTYPES = 0x6 447 CMSPAR = 0x40000000
448 CRYPTO_REPORT_MAXSIZE = 0x160 448 CODA_SUPER_MAGIC = 0x73757245
449 CS5 = 0x0 449 CR0 = 0x0
450 CS6 = 0x10 450 CR1 = 0x200
451 CS7 = 0x20 451 CR2 = 0x400
452 CS8 = 0x30 452 CR3 = 0x600
453 CSIGNAL = 0xff 453 CRAMFS_MAGIC = 0x28cd3d45
454 CSIZE = 0x30 454 CRDLY = 0x600
455 CSTART = 0x11 455 CREAD = 0x80
456 CSTATUS = 0x0 456 CRTSCTS = 0x80000000
457 CSTOP = 0x13 457 CRYPTO_MAX_NAME = 0x40
458 CSTOPB = 0x40 458 CRYPTO_MSG_MAX = 0x15
459 CSUSP = 0x1a 459 CRYPTO_NR_MSGTYPES = 0x6
460 DAXFS_MAGIC = 0x64646178 460 CRYPTO_REPORT_MAXSIZE = 0x160
461 DEBUGFS_MAGIC = 0x64626720 461 CS5 = 0x0
462 DEVPTS_SUPER_MAGIC = 0x1cd1 462 CS6 = 0x10
463 DT_BLK = 0x6 463 CS7 = 0x20
464 DT_CHR = 0x2 464 CS8 = 0x30
465 DT_DIR = 0x4 465 CSIGNAL = 0xff
466 DT_FIFO = 0x1 466 CSIZE = 0x30
467 DT_LNK = 0xa 467 CSTART = 0x11
468 DT_REG = 0x8 468 CSTATUS = 0x0
469 DT_SOCK = 0xc 469 CSTOP = 0x13
470 DT_UNKNOWN = 0x0 470 CSTOPB = 0x40
471 DT_WHT = 0xe 471 CSUSP = 0x1a
472 ECHO = 0x8 472 DAXFS_MAGIC = 0x64646178
473 ECHOCTL = 0x200 473 DEBUGFS_MAGIC = 0x64626720
474 ECHOE = 0x10 474 DEVLINK_CMD_ESWITCH_MODE_GET = 0x1d
475 ECHOK = 0x20 475 DEVLINK_CMD_ESWITCH_MODE_SET = 0x1e
476 ECHOKE = 0x800 476 DEVLINK_GENL_MCGRP_CONFIG_NAME = "config"
477 ECHONL = 0x40 477 DEVLINK_GENL_NAME = "devlink"
478 ECHOPRT = 0x400 478 DEVLINK_GENL_VERSION = 0x1
479 ECRYPTFS_SUPER_MAGIC = 0xf15f 479 DEVLINK_SB_THRESHOLD_TO_ALPHA_MAX = 0x14
480 EFD_CLOEXEC = 0x80000 480 DEVPTS_SUPER_MAGIC = 0x1cd1
481 EFD_NONBLOCK = 0x800 481 DMA_BUF_MAGIC = 0x444d4142
482 EFD_SEMAPHORE = 0x1 482 DT_BLK = 0x6
483 EFIVARFS_MAGIC = 0xde5e81e4 483 DT_CHR = 0x2
484 EFS_SUPER_MAGIC = 0x414a53 484 DT_DIR = 0x4
485 ENCODING_DEFAULT = 0x0 485 DT_FIFO = 0x1
486 ENCODING_FM_MARK = 0x3 486 DT_LNK = 0xa
487 ENCODING_FM_SPACE = 0x4 487 DT_REG = 0x8
488 ENCODING_MANCHESTER = 0x5 488 DT_SOCK = 0xc
489 ENCODING_NRZ = 0x1 489 DT_UNKNOWN = 0x0
490 ENCODING_NRZI = 0x2 490 DT_WHT = 0xe
491 EPOLLERR = 0x8 491 ECHO = 0x8
492 EPOLLET = 0x80000000 492 ECHOCTL = 0x200
493 EPOLLEXCLUSIVE = 0x10000000 493 ECHOE = 0x10
494 EPOLLHUP = 0x10 494 ECHOK = 0x20
495 EPOLLIN = 0x1 495 ECHOKE = 0x800
496 EPOLLMSG = 0x400 496 ECHONL = 0x40
497 EPOLLONESHOT = 0x40000000 497 ECHOPRT = 0x400
498 EPOLLOUT = 0x4 498 ECRYPTFS_SUPER_MAGIC = 0xf15f
499 EPOLLPRI = 0x2 499 EFD_CLOEXEC = 0x80000
500 EPOLLRDBAND = 0x80 500 EFD_NONBLOCK = 0x800
501 EPOLLRDHUP = 0x2000 501 EFD_SEMAPHORE = 0x1
502 EPOLLRDNORM = 0x40 502 EFIVARFS_MAGIC = 0xde5e81e4
503 EPOLLWAKEUP = 0x20000000 503 EFS_SUPER_MAGIC = 0x414a53
504 EPOLLWRBAND = 0x200 504 ENCODING_DEFAULT = 0x0
505 EPOLLWRNORM = 0x100 505 ENCODING_FM_MARK = 0x3
506 EPOLL_CLOEXEC = 0x80000 506 ENCODING_FM_SPACE = 0x4
507 EPOLL_CTL_ADD = 0x1 507 ENCODING_MANCHESTER = 0x5
508 EPOLL_CTL_DEL = 0x2 508 ENCODING_NRZ = 0x1
509 EPOLL_CTL_MOD = 0x3 509 ENCODING_NRZI = 0x2
510 ETH_P_1588 = 0x88f7 510 EPOLLERR = 0x8
511 ETH_P_8021AD = 0x88a8 511 EPOLLET = 0x80000000
512 ETH_P_8021AH = 0x88e7 512 EPOLLEXCLUSIVE = 0x10000000
513 ETH_P_8021Q = 0x8100 513 EPOLLHUP = 0x10
514 ETH_P_80221 = 0x8917 514 EPOLLIN = 0x1
515 ETH_P_802_2 = 0x4 515 EPOLLMSG = 0x400
516 ETH_P_802_3 = 0x1 516 EPOLLONESHOT = 0x40000000
517 ETH_P_802_3_MIN = 0x600 517 EPOLLOUT = 0x4
518 ETH_P_802_EX1 = 0x88b5 518 EPOLLPRI = 0x2
519 ETH_P_AARP = 0x80f3 519 EPOLLRDBAND = 0x80
520 ETH_P_AF_IUCV = 0xfbfb 520 EPOLLRDHUP = 0x2000
521 ETH_P_ALL = 0x3 521 EPOLLRDNORM = 0x40
522 ETH_P_AOE = 0x88a2 522 EPOLLWAKEUP = 0x20000000
523 ETH_P_ARCNET = 0x1a 523 EPOLLWRBAND = 0x200
524 ETH_P_ARP = 0x806 524 EPOLLWRNORM = 0x100
525 ETH_P_ATALK = 0x809b 525 EPOLL_CLOEXEC = 0x80000
526 ETH_P_ATMFATE = 0x8884 526 EPOLL_CTL_ADD = 0x1
527 ETH_P_ATMMPOA = 0x884c 527 EPOLL_CTL_DEL = 0x2
528 ETH_P_AX25 = 0x2 528 EPOLL_CTL_MOD = 0x3
529 ETH_P_BATMAN = 0x4305 529 EROFS_SUPER_MAGIC_V1 = 0xe0f5e1e2
530 ETH_P_BPQ = 0x8ff 530 ETH_P_1588 = 0x88f7
531 ETH_P_CAIF = 0xf7 531 ETH_P_8021AD = 0x88a8
532 ETH_P_CAN = 0xc 532 ETH_P_8021AH = 0x88e7
533 ETH_P_CANFD = 0xd 533 ETH_P_8021Q = 0x8100
534 ETH_P_CONTROL = 0x16 534 ETH_P_80221 = 0x8917
535 ETH_P_CUST = 0x6006 535 ETH_P_802_2 = 0x4
536 ETH_P_DDCMP = 0x6 536 ETH_P_802_3 = 0x1
537 ETH_P_DEC = 0x6000 537 ETH_P_802_3_MIN = 0x600
538 ETH_P_DIAG = 0x6005 538 ETH_P_802_EX1 = 0x88b5
539 ETH_P_DNA_DL = 0x6001 539 ETH_P_AARP = 0x80f3
540 ETH_P_DNA_RC = 0x6002 540 ETH_P_AF_IUCV = 0xfbfb
541 ETH_P_DNA_RT = 0x6003 541 ETH_P_ALL = 0x3
542 ETH_P_DSA = 0x1b 542 ETH_P_AOE = 0x88a2
543 ETH_P_DSA_8021Q = 0xdadb 543 ETH_P_ARCNET = 0x1a
544 ETH_P_ECONET = 0x18 544 ETH_P_ARP = 0x806
545 ETH_P_EDSA = 0xdada 545 ETH_P_ATALK = 0x809b
546 ETH_P_ERSPAN = 0x88be 546 ETH_P_ATMFATE = 0x8884
547 ETH_P_ERSPAN2 = 0x22eb 547 ETH_P_ATMMPOA = 0x884c
548 ETH_P_FCOE = 0x8906 548 ETH_P_AX25 = 0x2
549 ETH_P_FIP = 0x8914 549 ETH_P_BATMAN = 0x4305
550 ETH_P_HDLC = 0x19 550 ETH_P_BPQ = 0x8ff
551 ETH_P_HSR = 0x892f 551 ETH_P_CAIF = 0xf7
552 ETH_P_IBOE = 0x8915 552 ETH_P_CAN = 0xc
553 ETH_P_IEEE802154 = 0xf6 553 ETH_P_CANFD = 0xd
554 ETH_P_IEEEPUP = 0xa00 554 ETH_P_CONTROL = 0x16
555 ETH_P_IEEEPUPAT = 0xa01 555 ETH_P_CUST = 0x6006
556 ETH_P_IFE = 0xed3e 556 ETH_P_DDCMP = 0x6
557 ETH_P_IP = 0x800 557 ETH_P_DEC = 0x6000
558 ETH_P_IPV6 = 0x86dd 558 ETH_P_DIAG = 0x6005
559 ETH_P_IPX = 0x8137 559 ETH_P_DNA_DL = 0x6001
560 ETH_P_IRDA = 0x17 560 ETH_P_DNA_RC = 0x6002
561 ETH_P_LAT = 0x6004 561 ETH_P_DNA_RT = 0x6003
562 ETH_P_LINK_CTL = 0x886c 562 ETH_P_DSA = 0x1b
563 ETH_P_LOCALTALK = 0x9 563 ETH_P_DSA_8021Q = 0xdadb
564 ETH_P_LOOP = 0x60 564 ETH_P_ECONET = 0x18
565 ETH_P_LOOPBACK = 0x9000 565 ETH_P_EDSA = 0xdada
566 ETH_P_MACSEC = 0x88e5 566 ETH_P_ERSPAN = 0x88be
567 ETH_P_MAP = 0xf9 567 ETH_P_ERSPAN2 = 0x22eb
568 ETH_P_MOBITEX = 0x15 568 ETH_P_FCOE = 0x8906
569 ETH_P_MPLS_MC = 0x8848 569 ETH_P_FIP = 0x8914
570 ETH_P_MPLS_UC = 0x8847 570 ETH_P_HDLC = 0x19
571 ETH_P_MVRP = 0x88f5 571 ETH_P_HSR = 0x892f
572 ETH_P_NCSI = 0x88f8 572 ETH_P_IBOE = 0x8915
573 ETH_P_NSH = 0x894f 573 ETH_P_IEEE802154 = 0xf6
574 ETH_P_PAE = 0x888e 574 ETH_P_IEEEPUP = 0xa00
575 ETH_P_PAUSE = 0x8808 575 ETH_P_IEEEPUPAT = 0xa01
576 ETH_P_PHONET = 0xf5 576 ETH_P_IFE = 0xed3e
577 ETH_P_PPPTALK = 0x10 577 ETH_P_IP = 0x800
578 ETH_P_PPP_DISC = 0x8863 578 ETH_P_IPV6 = 0x86dd
579 ETH_P_PPP_MP = 0x8 579 ETH_P_IPX = 0x8137
580 ETH_P_PPP_SES = 0x8864 580 ETH_P_IRDA = 0x17
581 ETH_P_PREAUTH = 0x88c7 581 ETH_P_LAT = 0x6004
582 ETH_P_PRP = 0x88fb 582 ETH_P_LINK_CTL = 0x886c
583 ETH_P_PUP = 0x200 583 ETH_P_LLDP = 0x88cc
584 ETH_P_PUPAT = 0x201 584 ETH_P_LOCALTALK = 0x9
585 ETH_P_QINQ1 = 0x9100 585 ETH_P_LOOP = 0x60
586 ETH_P_QINQ2 = 0x9200 586 ETH_P_LOOPBACK = 0x9000
587 ETH_P_QINQ3 = 0x9300 587 ETH_P_MACSEC = 0x88e5
588 ETH_P_RARP = 0x8035 588 ETH_P_MAP = 0xf9
589 ETH_P_SCA = 0x6007 589 ETH_P_MOBITEX = 0x15
590 ETH_P_SLOW = 0x8809 590 ETH_P_MPLS_MC = 0x8848
591 ETH_P_SNAP = 0x5 591 ETH_P_MPLS_UC = 0x8847
592 ETH_P_TDLS = 0x890d 592 ETH_P_MVRP = 0x88f5
593 ETH_P_TEB = 0x6558 593 ETH_P_NCSI = 0x88f8
594 ETH_P_TIPC = 0x88ca 594 ETH_P_NSH = 0x894f
595 ETH_P_TRAILER = 0x1c 595 ETH_P_PAE = 0x888e
596 ETH_P_TR_802_2 = 0x11 596 ETH_P_PAUSE = 0x8808
597 ETH_P_TSN = 0x22f0 597 ETH_P_PHONET = 0xf5
598 ETH_P_WAN_PPP = 0x7 598 ETH_P_PPPTALK = 0x10
599 ETH_P_WCCP = 0x883e 599 ETH_P_PPP_DISC = 0x8863
600 ETH_P_X25 = 0x805 600 ETH_P_PPP_MP = 0x8
601 ETH_P_XDSA = 0xf8 601 ETH_P_PPP_SES = 0x8864
602 EXABYTE_ENABLE_NEST = 0xf0 602 ETH_P_PREAUTH = 0x88c7
603 EXT2_SUPER_MAGIC = 0xef53 603 ETH_P_PRP = 0x88fb
604 EXT3_SUPER_MAGIC = 0xef53 604 ETH_P_PUP = 0x200
605 EXT4_SUPER_MAGIC = 0xef53 605 ETH_P_PUPAT = 0x201
606 EXTA = 0xe 606 ETH_P_QINQ1 = 0x9100
607 EXTB = 0xf 607 ETH_P_QINQ2 = 0x9200
608 EXTPROC = 0x10000 608 ETH_P_QINQ3 = 0x9300
609 F2FS_SUPER_MAGIC = 0xf2f52010 609 ETH_P_RARP = 0x8035
610 FALLOC_FL_COLLAPSE_RANGE = 0x8 610 ETH_P_SCA = 0x6007
611 FALLOC_FL_INSERT_RANGE = 0x20 611 ETH_P_SLOW = 0x8809
612 FALLOC_FL_KEEP_SIZE = 0x1 612 ETH_P_SNAP = 0x5
613 FALLOC_FL_NO_HIDE_STALE = 0x4 613 ETH_P_TDLS = 0x890d
614 FALLOC_FL_PUNCH_HOLE = 0x2 614 ETH_P_TEB = 0x6558
615 FALLOC_FL_UNSHARE_RANGE = 0x40 615 ETH_P_TIPC = 0x88ca
616 FALLOC_FL_ZERO_RANGE = 0x10 616 ETH_P_TRAILER = 0x1c
617 FANOTIFY_METADATA_VERSION = 0x3 617 ETH_P_TR_802_2 = 0x11
618 FAN_ACCESS = 0x1 618 ETH_P_TSN = 0x22f0
619 FAN_ACCESS_PERM = 0x20000 619 ETH_P_WAN_PPP = 0x7
620 FAN_ALLOW = 0x1 620 ETH_P_WCCP = 0x883e
621 FAN_ALL_CLASS_BITS = 0xc 621 ETH_P_X25 = 0x805
622 FAN_ALL_EVENTS = 0x3b 622 ETH_P_XDSA = 0xf8
623 FAN_ALL_INIT_FLAGS = 0x3f 623 EXABYTE_ENABLE_NEST = 0xf0
624 FAN_ALL_MARK_FLAGS = 0xff 624 EXT2_SUPER_MAGIC = 0xef53
625 FAN_ALL_OUTGOING_EVENTS = 0x3403b 625 EXT3_SUPER_MAGIC = 0xef53
626 FAN_ALL_PERM_EVENTS = 0x30000 626 EXT4_SUPER_MAGIC = 0xef53
627 FAN_ATTRIB = 0x4 627 EXTA = 0xe
628 FAN_AUDIT = 0x10 628 EXTB = 0xf
629 FAN_CLASS_CONTENT = 0x4 629 EXTPROC = 0x10000
630 FAN_CLASS_NOTIF = 0x0 630 F2FS_SUPER_MAGIC = 0xf2f52010
631 FAN_CLASS_PRE_CONTENT = 0x8 631 FALLOC_FL_COLLAPSE_RANGE = 0x8
632 FAN_CLOEXEC = 0x1 632 FALLOC_FL_INSERT_RANGE = 0x20
633 FAN_CLOSE = 0x18 633 FALLOC_FL_KEEP_SIZE = 0x1
634 FAN_CLOSE_NOWRITE = 0x10 634 FALLOC_FL_NO_HIDE_STALE = 0x4
635 FAN_CLOSE_WRITE = 0x8 635 FALLOC_FL_PUNCH_HOLE = 0x2
636 FAN_CREATE = 0x100 636 FALLOC_FL_UNSHARE_RANGE = 0x40
637 FAN_DELETE = 0x200 637 FALLOC_FL_ZERO_RANGE = 0x10
638 FAN_DELETE_SELF = 0x400 638 FANOTIFY_METADATA_VERSION = 0x3
639 FAN_DENY = 0x2 639 FAN_ACCESS = 0x1
640 FAN_ENABLE_AUDIT = 0x40 640 FAN_ACCESS_PERM = 0x20000
641 FAN_EVENT_INFO_TYPE_FID = 0x1 641 FAN_ALLOW = 0x1
642 FAN_EVENT_METADATA_LEN = 0x18 642 FAN_ALL_CLASS_BITS = 0xc
643 FAN_EVENT_ON_CHILD = 0x8000000 643 FAN_ALL_EVENTS = 0x3b
644 FAN_MARK_ADD = 0x1 644 FAN_ALL_INIT_FLAGS = 0x3f
645 FAN_MARK_DONT_FOLLOW = 0x4 645 FAN_ALL_MARK_FLAGS = 0xff
646 FAN_MARK_FILESYSTEM = 0x100 646 FAN_ALL_OUTGOING_EVENTS = 0x3403b
647 FAN_MARK_FLUSH = 0x80 647 FAN_ALL_PERM_EVENTS = 0x30000
648 FAN_MARK_IGNORED_MASK = 0x20 648 FAN_ATTRIB = 0x4
649 FAN_MARK_IGNORED_SURV_MODIFY = 0x40 649 FAN_AUDIT = 0x10
650 FAN_MARK_INODE = 0x0 650 FAN_CLASS_CONTENT = 0x4
651 FAN_MARK_MOUNT = 0x10 651 FAN_CLASS_NOTIF = 0x0
652 FAN_MARK_ONLYDIR = 0x8 652 FAN_CLASS_PRE_CONTENT = 0x8
653 FAN_MARK_REMOVE = 0x2 653 FAN_CLOEXEC = 0x1
654 FAN_MODIFY = 0x2 654 FAN_CLOSE = 0x18
655 FAN_MOVE = 0xc0 655 FAN_CLOSE_NOWRITE = 0x10
656 FAN_MOVED_FROM = 0x40 656 FAN_CLOSE_WRITE = 0x8
657 FAN_MOVED_TO = 0x80 657 FAN_CREATE = 0x100
658 FAN_MOVE_SELF = 0x800 658 FAN_DELETE = 0x200
659 FAN_NOFD = -0x1 659 FAN_DELETE_SELF = 0x400
660 FAN_NONBLOCK = 0x2 660 FAN_DENY = 0x2
661 FAN_ONDIR = 0x40000000 661 FAN_ENABLE_AUDIT = 0x40
662 FAN_OPEN = 0x20 662 FAN_EVENT_INFO_TYPE_FID = 0x1
663 FAN_OPEN_EXEC = 0x1000 663 FAN_EVENT_METADATA_LEN = 0x18
664 FAN_OPEN_EXEC_PERM = 0x40000 664 FAN_EVENT_ON_CHILD = 0x8000000
665 FAN_OPEN_PERM = 0x10000 665 FAN_MARK_ADD = 0x1
666 FAN_Q_OVERFLOW = 0x4000 666 FAN_MARK_DONT_FOLLOW = 0x4
667 FAN_REPORT_FID = 0x200 667 FAN_MARK_FILESYSTEM = 0x100
668 FAN_REPORT_TID = 0x100 668 FAN_MARK_FLUSH = 0x80
669 FAN_UNLIMITED_MARKS = 0x20 669 FAN_MARK_IGNORED_MASK = 0x20
670 FAN_UNLIMITED_QUEUE = 0x10 670 FAN_MARK_IGNORED_SURV_MODIFY = 0x40
671 FD_CLOEXEC = 0x1 671 FAN_MARK_INODE = 0x0
672 FD_SETSIZE = 0x400 672 FAN_MARK_MOUNT = 0x10
673 FF0 = 0x0 673 FAN_MARK_ONLYDIR = 0x8
674 FF1 = 0x8000 674 FAN_MARK_REMOVE = 0x2
675 FFDLY = 0x8000 675 FAN_MODIFY = 0x2
676 FLUSHO = 0x1000 676 FAN_MOVE = 0xc0
677 FS_ENCRYPTION_MODE_ADIANTUM = 0x9 677 FAN_MOVED_FROM = 0x40
678 FS_ENCRYPTION_MODE_AES_128_CBC = 0x5 678 FAN_MOVED_TO = 0x80
679 FS_ENCRYPTION_MODE_AES_128_CTS = 0x6 679 FAN_MOVE_SELF = 0x800
680 FS_ENCRYPTION_MODE_AES_256_CBC = 0x3 680 FAN_NOFD = -0x1
681 FS_ENCRYPTION_MODE_AES_256_CTS = 0x4 681 FAN_NONBLOCK = 0x2
682 FS_ENCRYPTION_MODE_AES_256_GCM = 0x2 682 FAN_ONDIR = 0x40000000
683 FS_ENCRYPTION_MODE_AES_256_XTS = 0x1 683 FAN_OPEN = 0x20
684 FS_ENCRYPTION_MODE_INVALID = 0x0 684 FAN_OPEN_EXEC = 0x1000
685 FS_ENCRYPTION_MODE_SPECK128_256_CTS = 0x8 685 FAN_OPEN_EXEC_PERM = 0x40000
686 FS_ENCRYPTION_MODE_SPECK128_256_XTS = 0x7 686 FAN_OPEN_PERM = 0x10000
687 FS_IOC_GET_ENCRYPTION_POLICY = 0x400c6615 687 FAN_Q_OVERFLOW = 0x4000
688 FS_IOC_GET_ENCRYPTION_PWSALT = 0x40106614 688 FAN_REPORT_FID = 0x200
689 FS_IOC_SET_ENCRYPTION_POLICY = 0x800c6613 689 FAN_REPORT_TID = 0x100
690 FS_KEY_DESCRIPTOR_SIZE = 0x8 690 FAN_UNLIMITED_MARKS = 0x20
691 FS_KEY_DESC_PREFIX = "fscrypt:" 691 FAN_UNLIMITED_QUEUE = 0x10
692 FS_KEY_DESC_PREFIX_SIZE = 0x8 692 FD_CLOEXEC = 0x1
693 FS_MAX_KEY_SIZE = 0x40 693 FD_SETSIZE = 0x400
694 FS_POLICY_FLAGS_PAD_16 = 0x2 694 FF0 = 0x0
695 FS_POLICY_FLAGS_PAD_32 = 0x3 695 FF1 = 0x8000
696 FS_POLICY_FLAGS_PAD_4 = 0x0 696 FFDLY = 0x8000
697 FS_POLICY_FLAGS_PAD_8 = 0x1 697 FLUSHO = 0x1000
698 FS_POLICY_FLAGS_PAD_MASK = 0x3 698 FSCRYPT_KEY_DESCRIPTOR_SIZE = 0x8
699 FS_POLICY_FLAGS_VALID = 0x7 699 FSCRYPT_KEY_DESC_PREFIX = "fscrypt:"
700 FUTEXFS_SUPER_MAGIC = 0xbad1dea 700 FSCRYPT_KEY_DESC_PREFIX_SIZE = 0x8
701 F_ADD_SEALS = 0x409 701 FSCRYPT_KEY_IDENTIFIER_SIZE = 0x10
702 F_DUPFD = 0x0 702 FSCRYPT_KEY_REMOVAL_STATUS_FLAG_FILES_BUSY = 0x1
703 F_DUPFD_CLOEXEC = 0x406 703 FSCRYPT_KEY_REMOVAL_STATUS_FLAG_OTHER_USERS = 0x2
704 F_EXLCK = 0x4 704 FSCRYPT_KEY_SPEC_TYPE_DESCRIPTOR = 0x1
705 F_GETFD = 0x1 705 FSCRYPT_KEY_SPEC_TYPE_IDENTIFIER = 0x2
706 F_GETFL = 0x3 706 FSCRYPT_KEY_STATUS_ABSENT = 0x1
707 F_GETLEASE = 0x401 707 FSCRYPT_KEY_STATUS_FLAG_ADDED_BY_SELF = 0x1
708 F_GETLK = 0x5 708 FSCRYPT_KEY_STATUS_INCOMPLETELY_REMOVED = 0x3
709 F_GETLK64 = 0x5 709 FSCRYPT_KEY_STATUS_PRESENT = 0x2
710 F_GETOWN = 0x9 710 FSCRYPT_MAX_KEY_SIZE = 0x40
711 F_GETOWN_EX = 0x10 711 FSCRYPT_MODE_ADIANTUM = 0x9
712 F_GETPIPE_SZ = 0x408 712 FSCRYPT_MODE_AES_128_CBC = 0x5
713 F_GETSIG = 0xb 713 FSCRYPT_MODE_AES_128_CTS = 0x6
714 F_GET_FILE_RW_HINT = 0x40d 714 FSCRYPT_MODE_AES_256_CTS = 0x4
715 F_GET_RW_HINT = 0x40b 715 FSCRYPT_MODE_AES_256_XTS = 0x1
716 F_GET_SEALS = 0x40a 716 FSCRYPT_POLICY_FLAGS_PAD_16 = 0x2
717 F_LOCK = 0x1 717 FSCRYPT_POLICY_FLAGS_PAD_32 = 0x3
718 F_NOTIFY = 0x402 718 FSCRYPT_POLICY_FLAGS_PAD_4 = 0x0
719 F_OFD_GETLK = 0x24 719 FSCRYPT_POLICY_FLAGS_PAD_8 = 0x1
720 F_OFD_SETLK = 0x25 720 FSCRYPT_POLICY_FLAGS_PAD_MASK = 0x3
721 F_OFD_SETLKW = 0x26 721 FSCRYPT_POLICY_FLAGS_VALID = 0xf
722 F_OK = 0x0 722 FSCRYPT_POLICY_FLAG_DIRECT_KEY = 0x4
723 F_RDLCK = 0x0 723 FSCRYPT_POLICY_FLAG_IV_INO_LBLK_64 = 0x8
724 F_SEAL_FUTURE_WRITE = 0x10 724 FSCRYPT_POLICY_V1 = 0x0
725 F_SEAL_GROW = 0x4 725 FSCRYPT_POLICY_V2 = 0x2
726 F_SEAL_SEAL = 0x1 726 FS_ENCRYPTION_MODE_ADIANTUM = 0x9
727 F_SEAL_SHRINK = 0x2 727 FS_ENCRYPTION_MODE_AES_128_CBC = 0x5
728 F_SEAL_WRITE = 0x8 728 FS_ENCRYPTION_MODE_AES_128_CTS = 0x6
729 F_SETFD = 0x2 729 FS_ENCRYPTION_MODE_AES_256_CBC = 0x3
730 F_SETFL = 0x4 730 FS_ENCRYPTION_MODE_AES_256_CTS = 0x4
731 F_SETLEASE = 0x400 731 FS_ENCRYPTION_MODE_AES_256_GCM = 0x2
732 F_SETLK = 0x6 732 FS_ENCRYPTION_MODE_AES_256_XTS = 0x1
733 F_SETLK64 = 0x6 733 FS_ENCRYPTION_MODE_INVALID = 0x0
734 F_SETLKW = 0x7 734 FS_ENCRYPTION_MODE_SPECK128_256_CTS = 0x8
735 F_SETLKW64 = 0x7 735 FS_ENCRYPTION_MODE_SPECK128_256_XTS = 0x7
736 F_SETOWN = 0x8 736 FS_IOC_ADD_ENCRYPTION_KEY = 0xc0506617
737 F_SETOWN_EX = 0xf 737 FS_IOC_GET_ENCRYPTION_KEY_STATUS = 0xc080661a
738 F_SETPIPE_SZ = 0x407 738 FS_IOC_GET_ENCRYPTION_POLICY = 0x400c6615
739 F_SETSIG = 0xa 739 FS_IOC_GET_ENCRYPTION_POLICY_EX = 0xc0096616
740 F_SET_FILE_RW_HINT = 0x40e 740 FS_IOC_GET_ENCRYPTION_PWSALT = 0x40106614
741 F_SET_RW_HINT = 0x40c 741 FS_IOC_REMOVE_ENCRYPTION_KEY = 0xc0406618
742 F_SHLCK = 0x8 742 FS_IOC_REMOVE_ENCRYPTION_KEY_ALL_USERS = 0xc0406619
743 F_TEST = 0x3 743 FS_IOC_SET_ENCRYPTION_POLICY = 0x800c6613
744 F_TLOCK = 0x2 744 FS_KEY_DESCRIPTOR_SIZE = 0x8
745 F_ULOCK = 0x0 745 FS_KEY_DESC_PREFIX = "fscrypt:"
746 F_UNLCK = 0x2 746 FS_KEY_DESC_PREFIX_SIZE = 0x8
747 F_WRLCK = 0x1 747 FS_MAX_KEY_SIZE = 0x40
748 GENL_ADMIN_PERM = 0x1 748 FS_POLICY_FLAGS_PAD_16 = 0x2
749 GENL_CMD_CAP_DO = 0x2 749 FS_POLICY_FLAGS_PAD_32 = 0x3
750 GENL_CMD_CAP_DUMP = 0x4 750 FS_POLICY_FLAGS_PAD_4 = 0x0
751 GENL_CMD_CAP_HASPOL = 0x8 751 FS_POLICY_FLAGS_PAD_8 = 0x1
752 GENL_HDRLEN = 0x4 752 FS_POLICY_FLAGS_PAD_MASK = 0x3
753 GENL_ID_CTRL = 0x10 753 FS_POLICY_FLAGS_VALID = 0xf
754 GENL_ID_PMCRAID = 0x12 754 FUTEXFS_SUPER_MAGIC = 0xbad1dea
755 GENL_ID_VFS_DQUOT = 0x11 755 F_ADD_SEALS = 0x409
756 GENL_MAX_ID = 0x3ff 756 F_DUPFD = 0x0
757 GENL_MIN_ID = 0x10 757 F_DUPFD_CLOEXEC = 0x406
758 GENL_NAMSIZ = 0x10 758 F_EXLCK = 0x4
759 GENL_START_ALLOC = 0x13 759 F_GETFD = 0x1
760 GENL_UNS_ADMIN_PERM = 0x10 760 F_GETFL = 0x3
761 GRND_NONBLOCK = 0x1 761 F_GETLEASE = 0x401
762 GRND_RANDOM = 0x2 762 F_GETLK = 0x5
763 HDIO_DRIVE_CMD = 0x31f 763 F_GETLK64 = 0x5
764 HDIO_DRIVE_CMD_AEB = 0x31e 764 F_GETOWN = 0x9
765 HDIO_DRIVE_CMD_HDR_SIZE = 0x4 765 F_GETOWN_EX = 0x10
766 HDIO_DRIVE_HOB_HDR_SIZE = 0x8 766 F_GETPIPE_SZ = 0x408
767 HDIO_DRIVE_RESET = 0x31c 767 F_GETSIG = 0xb
768 HDIO_DRIVE_TASK = 0x31e 768 F_GET_FILE_RW_HINT = 0x40d
769 HDIO_DRIVE_TASKFILE = 0x31d 769 F_GET_RW_HINT = 0x40b
770 HDIO_DRIVE_TASK_HDR_SIZE = 0x8 770 F_GET_SEALS = 0x40a
771 HDIO_GETGEO = 0x301 771 F_LOCK = 0x1
772 HDIO_GET_32BIT = 0x309 772 F_NOTIFY = 0x402
773 HDIO_GET_ACOUSTIC = 0x30f 773 F_OFD_GETLK = 0x24
774 HDIO_GET_ADDRESS = 0x310 774 F_OFD_SETLK = 0x25
775 HDIO_GET_BUSSTATE = 0x31a 775 F_OFD_SETLKW = 0x26
776 HDIO_GET_DMA = 0x30b 776 F_OK = 0x0
777 HDIO_GET_IDENTITY = 0x30d 777 F_RDLCK = 0x0
778 HDIO_GET_KEEPSETTINGS = 0x308 778 F_SEAL_FUTURE_WRITE = 0x10
779 HDIO_GET_MULTCOUNT = 0x304 779 F_SEAL_GROW = 0x4
780 HDIO_GET_NICE = 0x30c 780 F_SEAL_SEAL = 0x1
781 HDIO_GET_NOWERR = 0x30a 781 F_SEAL_SHRINK = 0x2
782 HDIO_GET_QDMA = 0x305 782 F_SEAL_WRITE = 0x8
783 HDIO_GET_UNMASKINTR = 0x302 783 F_SETFD = 0x2
784 HDIO_GET_WCACHE = 0x30e 784 F_SETFL = 0x4
785 HDIO_OBSOLETE_IDENTITY = 0x307 785 F_SETLEASE = 0x400
786 HDIO_SCAN_HWIF = 0x328 786 F_SETLK = 0x6
787 HDIO_SET_32BIT = 0x324 787 F_SETLK64 = 0x6
788 HDIO_SET_ACOUSTIC = 0x32c 788 F_SETLKW = 0x7
789 HDIO_SET_ADDRESS = 0x32f 789 F_SETLKW64 = 0x7
790 HDIO_SET_BUSSTATE = 0x32d 790 F_SETOWN = 0x8
791 HDIO_SET_DMA = 0x326 791 F_SETOWN_EX = 0xf
792 HDIO_SET_KEEPSETTINGS = 0x323 792 F_SETPIPE_SZ = 0x407
793 HDIO_SET_MULTCOUNT = 0x321 793 F_SETSIG = 0xa
794 HDIO_SET_NICE = 0x329 794 F_SET_FILE_RW_HINT = 0x40e
795 HDIO_SET_NOWERR = 0x325 795 F_SET_RW_HINT = 0x40c
796 HDIO_SET_PIO_MODE = 0x327 796 F_SHLCK = 0x8
797 HDIO_SET_QDMA = 0x32e 797 F_TEST = 0x3
798 HDIO_SET_UNMASKINTR = 0x322 798 F_TLOCK = 0x2
799 HDIO_SET_WCACHE = 0x32b 799 F_ULOCK = 0x0
800 HDIO_SET_XFER = 0x306 800 F_UNLCK = 0x2
801 HDIO_TRISTATE_HWIF = 0x31b 801 F_WRLCK = 0x1
802 HDIO_UNREGISTER_HWIF = 0x32a 802 GENL_ADMIN_PERM = 0x1
803 HOSTFS_SUPER_MAGIC = 0xc0ffee 803 GENL_CMD_CAP_DO = 0x2
804 HPFS_SUPER_MAGIC = 0xf995e849 804 GENL_CMD_CAP_DUMP = 0x4
805 HUGETLBFS_MAGIC = 0x958458f6 805 GENL_CMD_CAP_HASPOL = 0x8
806 HUPCL = 0x400 806 GENL_HDRLEN = 0x4
807 IBSHIFT = 0x10 807 GENL_ID_CTRL = 0x10
808 ICANON = 0x2 808 GENL_ID_PMCRAID = 0x12
809 ICMPV6_FILTER = 0x1 809 GENL_ID_VFS_DQUOT = 0x11
810 ICRNL = 0x100 810 GENL_MAX_ID = 0x3ff
811 IEXTEN = 0x8000 811 GENL_MIN_ID = 0x10
812 IFA_F_DADFAILED = 0x8 812 GENL_NAMSIZ = 0x10
813 IFA_F_DEPRECATED = 0x20 813 GENL_START_ALLOC = 0x13
814 IFA_F_HOMEADDRESS = 0x10 814 GENL_UNS_ADMIN_PERM = 0x10
815 IFA_F_MANAGETEMPADDR = 0x100 815 GRND_NONBLOCK = 0x1
816 IFA_F_MCAUTOJOIN = 0x400 816 GRND_RANDOM = 0x2
817 IFA_F_NODAD = 0x2 817 HDIO_DRIVE_CMD = 0x31f
818 IFA_F_NOPREFIXROUTE = 0x200 818 HDIO_DRIVE_CMD_AEB = 0x31e
819 IFA_F_OPTIMISTIC = 0x4 819 HDIO_DRIVE_CMD_HDR_SIZE = 0x4
820 IFA_F_PERMANENT = 0x80 820 HDIO_DRIVE_HOB_HDR_SIZE = 0x8
821 IFA_F_SECONDARY = 0x1 821 HDIO_DRIVE_RESET = 0x31c
822 IFA_F_STABLE_PRIVACY = 0x800 822 HDIO_DRIVE_TASK = 0x31e
823 IFA_F_TEMPORARY = 0x1 823 HDIO_DRIVE_TASKFILE = 0x31d
824 IFA_F_TENTATIVE = 0x40 824 HDIO_DRIVE_TASK_HDR_SIZE = 0x8
825 IFA_MAX = 0xa 825 HDIO_GETGEO = 0x301
826 IFF_ALLMULTI = 0x200 826 HDIO_GET_32BIT = 0x309
827 IFF_ATTACH_QUEUE = 0x200 827 HDIO_GET_ACOUSTIC = 0x30f
828 IFF_AUTOMEDIA = 0x4000 828 HDIO_GET_ADDRESS = 0x310
829 IFF_BROADCAST = 0x2 829 HDIO_GET_BUSSTATE = 0x31a
830 IFF_DEBUG = 0x4 830 HDIO_GET_DMA = 0x30b
831 IFF_DETACH_QUEUE = 0x400 831 HDIO_GET_IDENTITY = 0x30d
832 IFF_DORMANT = 0x20000 832 HDIO_GET_KEEPSETTINGS = 0x308
833 IFF_DYNAMIC = 0x8000 833 HDIO_GET_MULTCOUNT = 0x304
834 IFF_ECHO = 0x40000 834 HDIO_GET_NICE = 0x30c
835 IFF_LOOPBACK = 0x8 835 HDIO_GET_NOWERR = 0x30a
836 IFF_LOWER_UP = 0x10000 836 HDIO_GET_QDMA = 0x305
837 IFF_MASTER = 0x400 837 HDIO_GET_UNMASKINTR = 0x302
838 IFF_MULTICAST = 0x1000 838 HDIO_GET_WCACHE = 0x30e
839 IFF_MULTI_QUEUE = 0x100 839 HDIO_OBSOLETE_IDENTITY = 0x307
840 IFF_NAPI = 0x10 840 HDIO_SCAN_HWIF = 0x328
841 IFF_NAPI_FRAGS = 0x20 841 HDIO_SET_32BIT = 0x324
842 IFF_NOARP = 0x80 842 HDIO_SET_ACOUSTIC = 0x32c
843 IFF_NOFILTER = 0x1000 843 HDIO_SET_ADDRESS = 0x32f
844 IFF_NOTRAILERS = 0x20 844 HDIO_SET_BUSSTATE = 0x32d
845 IFF_NO_PI = 0x1000 845 HDIO_SET_DMA = 0x326
846 IFF_ONE_QUEUE = 0x2000 846 HDIO_SET_KEEPSETTINGS = 0x323
847 IFF_PERSIST = 0x800 847 HDIO_SET_MULTCOUNT = 0x321
848 IFF_POINTOPOINT = 0x10 848 HDIO_SET_NICE = 0x329
849 IFF_PORTSEL = 0x2000 849 HDIO_SET_NOWERR = 0x325
850 IFF_PROMISC = 0x100 850 HDIO_SET_PIO_MODE = 0x327
851 IFF_RUNNING = 0x40 851 HDIO_SET_QDMA = 0x32e
852 IFF_SLAVE = 0x800 852 HDIO_SET_UNMASKINTR = 0x322
853 IFF_TAP = 0x2 853 HDIO_SET_WCACHE = 0x32b
854 IFF_TUN = 0x1 854 HDIO_SET_XFER = 0x306
855 IFF_TUN_EXCL = 0x8000 855 HDIO_TRISTATE_HWIF = 0x31b
856 IFF_UP = 0x1 856 HDIO_UNREGISTER_HWIF = 0x32a
857 IFF_VNET_HDR = 0x4000 857 HOSTFS_SUPER_MAGIC = 0xc0ffee
858 IFF_VOLATILE = 0x70c5a 858 HPFS_SUPER_MAGIC = 0xf995e849
859 IFNAMSIZ = 0x10 859 HUGETLBFS_MAGIC = 0x958458f6
860 IGNBRK = 0x1 860 HUPCL = 0x400
861 IGNCR = 0x80 861 IBSHIFT = 0x10
862 IGNPAR = 0x4 862 ICANON = 0x2
863 IMAXBEL = 0x2000 863 ICMPV6_FILTER = 0x1
864 INLCR = 0x40 864 ICRNL = 0x100
865 INPCK = 0x10 865 IEXTEN = 0x8000
866 IN_ACCESS = 0x1 866 IFA_F_DADFAILED = 0x8
867 IN_ALL_EVENTS = 0xfff 867 IFA_F_DEPRECATED = 0x20
868 IN_ATTRIB = 0x4 868 IFA_F_HOMEADDRESS = 0x10
869 IN_CLASSA_HOST = 0xffffff 869 IFA_F_MANAGETEMPADDR = 0x100
870 IN_CLASSA_MAX = 0x80 870 IFA_F_MCAUTOJOIN = 0x400
871 IN_CLASSA_NET = 0xff000000 871 IFA_F_NODAD = 0x2
872 IN_CLASSA_NSHIFT = 0x18 872 IFA_F_NOPREFIXROUTE = 0x200
873 IN_CLASSB_HOST = 0xffff 873 IFA_F_OPTIMISTIC = 0x4
874 IN_CLASSB_MAX = 0x10000 874 IFA_F_PERMANENT = 0x80
875 IN_CLASSB_NET = 0xffff0000 875 IFA_F_SECONDARY = 0x1
876 IN_CLASSB_NSHIFT = 0x10 876 IFA_F_STABLE_PRIVACY = 0x800
877 IN_CLASSC_HOST = 0xff 877 IFA_F_TEMPORARY = 0x1
878 IN_CLASSC_NET = 0xffffff00 878 IFA_F_TENTATIVE = 0x40
879 IN_CLASSC_NSHIFT = 0x8 879 IFA_MAX = 0xa
880 IN_CLOEXEC = 0x80000 880 IFF_ALLMULTI = 0x200
881 IN_CLOSE = 0x18 881 IFF_ATTACH_QUEUE = 0x200
882 IN_CLOSE_NOWRITE = 0x10 882 IFF_AUTOMEDIA = 0x4000
883 IN_CLOSE_WRITE = 0x8 883 IFF_BROADCAST = 0x2
884 IN_CREATE = 0x100 884 IFF_DEBUG = 0x4
885 IN_DELETE = 0x200 885 IFF_DETACH_QUEUE = 0x400
886 IN_DELETE_SELF = 0x400 886 IFF_DORMANT = 0x20000
887 IN_DONT_FOLLOW = 0x2000000 887 IFF_DYNAMIC = 0x8000
888 IN_EXCL_UNLINK = 0x4000000 888 IFF_ECHO = 0x40000
889 IN_IGNORED = 0x8000 889 IFF_LOOPBACK = 0x8
890 IN_ISDIR = 0x40000000 890 IFF_LOWER_UP = 0x10000
891 IN_LOOPBACKNET = 0x7f 891 IFF_MASTER = 0x400
892 IN_MASK_ADD = 0x20000000 892 IFF_MULTICAST = 0x1000
893 IN_MASK_CREATE = 0x10000000 893 IFF_MULTI_QUEUE = 0x100
894 IN_MODIFY = 0x2 894 IFF_NAPI = 0x10
895 IN_MOVE = 0xc0 895 IFF_NAPI_FRAGS = 0x20
896 IN_MOVED_FROM = 0x40 896 IFF_NOARP = 0x80
897 IN_MOVED_TO = 0x80 897 IFF_NOFILTER = 0x1000
898 IN_MOVE_SELF = 0x800 898 IFF_NOTRAILERS = 0x20
899 IN_NONBLOCK = 0x800 899 IFF_NO_PI = 0x1000
900 IN_ONESHOT = 0x80000000 900 IFF_ONE_QUEUE = 0x2000
901 IN_ONLYDIR = 0x1000000 901 IFF_PERSIST = 0x800
902 IN_OPEN = 0x20 902 IFF_POINTOPOINT = 0x10
903 IN_Q_OVERFLOW = 0x4000 903 IFF_PORTSEL = 0x2000
904 IN_UNMOUNT = 0x2000 904 IFF_PROMISC = 0x100
905 IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x7b9 905 IFF_RUNNING = 0x40
906 IPPROTO_AH = 0x33 906 IFF_SLAVE = 0x800
907 IPPROTO_BEETPH = 0x5e 907 IFF_TAP = 0x2
908 IPPROTO_COMP = 0x6c 908 IFF_TUN = 0x1
909 IPPROTO_DCCP = 0x21 909 IFF_TUN_EXCL = 0x8000
910 IPPROTO_DSTOPTS = 0x3c 910 IFF_UP = 0x1
911 IPPROTO_EGP = 0x8 911 IFF_VNET_HDR = 0x4000
912 IPPROTO_ENCAP = 0x62 912 IFF_VOLATILE = 0x70c5a
913 IPPROTO_ESP = 0x32 913 IFNAMSIZ = 0x10
914 IPPROTO_FRAGMENT = 0x2c 914 IGNBRK = 0x1
915 IPPROTO_GRE = 0x2f 915 IGNCR = 0x80
916 IPPROTO_HOPOPTS = 0x0 916 IGNPAR = 0x4
917 IPPROTO_ICMP = 0x1 917 IMAXBEL = 0x2000
918 IPPROTO_ICMPV6 = 0x3a 918 INLCR = 0x40
919 IPPROTO_IDP = 0x16 919 INPCK = 0x10
920 IPPROTO_IGMP = 0x2 920 IN_ACCESS = 0x1
921 IPPROTO_IP = 0x0 921 IN_ALL_EVENTS = 0xfff
922 IPPROTO_IPIP = 0x4 922 IN_ATTRIB = 0x4
923 IPPROTO_IPV6 = 0x29 923 IN_CLASSA_HOST = 0xffffff
924 IPPROTO_MH = 0x87 924 IN_CLASSA_MAX = 0x80
925 IPPROTO_MPLS = 0x89 925 IN_CLASSA_NET = 0xff000000
926 IPPROTO_MTP = 0x5c 926 IN_CLASSA_NSHIFT = 0x18
927 IPPROTO_NONE = 0x3b 927 IN_CLASSB_HOST = 0xffff
928 IPPROTO_PIM = 0x67 928 IN_CLASSB_MAX = 0x10000
929 IPPROTO_PUP = 0xc 929 IN_CLASSB_NET = 0xffff0000
930 IPPROTO_RAW = 0xff 930 IN_CLASSB_NSHIFT = 0x10
931 IPPROTO_ROUTING = 0x2b 931 IN_CLASSC_HOST = 0xff
932 IPPROTO_RSVP = 0x2e 932 IN_CLASSC_NET = 0xffffff00
933 IPPROTO_SCTP = 0x84 933 IN_CLASSC_NSHIFT = 0x8
934 IPPROTO_TCP = 0x6 934 IN_CLOEXEC = 0x80000
935 IPPROTO_TP = 0x1d 935 IN_CLOSE = 0x18
936 IPPROTO_UDP = 0x11 936 IN_CLOSE_NOWRITE = 0x10
937 IPPROTO_UDPLITE = 0x88 937 IN_CLOSE_WRITE = 0x8
938 IPV6_2292DSTOPTS = 0x4 938 IN_CREATE = 0x100
939 IPV6_2292HOPLIMIT = 0x8 939 IN_DELETE = 0x200
940 IPV6_2292HOPOPTS = 0x3 940 IN_DELETE_SELF = 0x400
941 IPV6_2292PKTINFO = 0x2 941 IN_DONT_FOLLOW = 0x2000000
942 IPV6_2292PKTOPTIONS = 0x6 942 IN_EXCL_UNLINK = 0x4000000
943 IPV6_2292RTHDR = 0x5 943 IN_IGNORED = 0x8000
944 IPV6_ADDRFORM = 0x1 944 IN_ISDIR = 0x40000000
945 IPV6_ADDR_PREFERENCES = 0x48 945 IN_LOOPBACKNET = 0x7f
946 IPV6_ADD_MEMBERSHIP = 0x14 946 IN_MASK_ADD = 0x20000000
947 IPV6_AUTHHDR = 0xa 947 IN_MASK_CREATE = 0x10000000
948 IPV6_AUTOFLOWLABEL = 0x46 948 IN_MODIFY = 0x2
949 IPV6_CHECKSUM = 0x7 949 IN_MOVE = 0xc0
950 IPV6_DONTFRAG = 0x3e 950 IN_MOVED_FROM = 0x40
951 IPV6_DROP_MEMBERSHIP = 0x15 951 IN_MOVED_TO = 0x80
952 IPV6_DSTOPTS = 0x3b 952 IN_MOVE_SELF = 0x800
953 IPV6_FREEBIND = 0x4e 953 IN_NONBLOCK = 0x800
954 IPV6_HDRINCL = 0x24 954 IN_ONESHOT = 0x80000000
955 IPV6_HOPLIMIT = 0x34 955 IN_ONLYDIR = 0x1000000
956 IPV6_HOPOPTS = 0x36 956 IN_OPEN = 0x20
957 IPV6_IPSEC_POLICY = 0x22 957 IN_Q_OVERFLOW = 0x4000
958 IPV6_JOIN_ANYCAST = 0x1b 958 IN_UNMOUNT = 0x2000
959 IPV6_JOIN_GROUP = 0x14 959 IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x7b9
960 IPV6_LEAVE_ANYCAST = 0x1c 960 IPPROTO_AH = 0x33
961 IPV6_LEAVE_GROUP = 0x15 961 IPPROTO_BEETPH = 0x5e
962 IPV6_MINHOPCOUNT = 0x49 962 IPPROTO_COMP = 0x6c
963 IPV6_MTU = 0x18 963 IPPROTO_DCCP = 0x21
964 IPV6_MTU_DISCOVER = 0x17 964 IPPROTO_DSTOPTS = 0x3c
965 IPV6_MULTICAST_ALL = 0x1d 965 IPPROTO_EGP = 0x8
966 IPV6_MULTICAST_HOPS = 0x12 966 IPPROTO_ENCAP = 0x62
967 IPV6_MULTICAST_IF = 0x11 967 IPPROTO_ESP = 0x32
968 IPV6_MULTICAST_LOOP = 0x13 968 IPPROTO_FRAGMENT = 0x2c
969 IPV6_NEXTHOP = 0x9 969 IPPROTO_GRE = 0x2f
970 IPV6_ORIGDSTADDR = 0x4a 970 IPPROTO_HOPOPTS = 0x0
971 IPV6_PATHMTU = 0x3d 971 IPPROTO_ICMP = 0x1
972 IPV6_PKTINFO = 0x32 972 IPPROTO_ICMPV6 = 0x3a
973 IPV6_PMTUDISC_DO = 0x2 973 IPPROTO_IDP = 0x16
974 IPV6_PMTUDISC_DONT = 0x0 974 IPPROTO_IGMP = 0x2
975 IPV6_PMTUDISC_INTERFACE = 0x4 975 IPPROTO_IP = 0x0
976 IPV6_PMTUDISC_OMIT = 0x5 976 IPPROTO_IPIP = 0x4
977 IPV6_PMTUDISC_PROBE = 0x3 977 IPPROTO_IPV6 = 0x29
978 IPV6_PMTUDISC_WANT = 0x1 978 IPPROTO_MH = 0x87
979 IPV6_RECVDSTOPTS = 0x3a 979 IPPROTO_MPLS = 0x89
980 IPV6_RECVERR = 0x19 980 IPPROTO_MTP = 0x5c
981 IPV6_RECVFRAGSIZE = 0x4d 981 IPPROTO_NONE = 0x3b
982 IPV6_RECVHOPLIMIT = 0x33 982 IPPROTO_PIM = 0x67
983 IPV6_RECVHOPOPTS = 0x35 983 IPPROTO_PUP = 0xc
984 IPV6_RECVORIGDSTADDR = 0x4a 984 IPPROTO_RAW = 0xff
985 IPV6_RECVPATHMTU = 0x3c 985 IPPROTO_ROUTING = 0x2b
986 IPV6_RECVPKTINFO = 0x31 986 IPPROTO_RSVP = 0x2e
987 IPV6_RECVRTHDR = 0x38 987 IPPROTO_SCTP = 0x84
988 IPV6_RECVTCLASS = 0x42 988 IPPROTO_TCP = 0x6
989 IPV6_ROUTER_ALERT = 0x16 989 IPPROTO_TP = 0x1d
990 IPV6_ROUTER_ALERT_ISOLATE = 0x1e 990 IPPROTO_UDP = 0x11
991 IPV6_RTHDR = 0x39 991 IPPROTO_UDPLITE = 0x88
992 IPV6_RTHDRDSTOPTS = 0x37 992 IPV6_2292DSTOPTS = 0x4
993 IPV6_RTHDR_LOOSE = 0x0 993 IPV6_2292HOPLIMIT = 0x8
994 IPV6_RTHDR_STRICT = 0x1 994 IPV6_2292HOPOPTS = 0x3
995 IPV6_RTHDR_TYPE_0 = 0x0 995 IPV6_2292PKTINFO = 0x2
996 IPV6_RXDSTOPTS = 0x3b 996 IPV6_2292PKTOPTIONS = 0x6
997 IPV6_RXHOPOPTS = 0x36 997 IPV6_2292RTHDR = 0x5
998 IPV6_TCLASS = 0x43 998 IPV6_ADDRFORM = 0x1
999 IPV6_TRANSPARENT = 0x4b 999 IPV6_ADDR_PREFERENCES = 0x48
1000 IPV6_UNICAST_HOPS = 0x10 1000 IPV6_ADD_MEMBERSHIP = 0x14
1001 IPV6_UNICAST_IF = 0x4c 1001 IPV6_AUTHHDR = 0xa
1002 IPV6_V6ONLY = 0x1a 1002 IPV6_AUTOFLOWLABEL = 0x46
1003 IPV6_XFRM_POLICY = 0x23 1003 IPV6_CHECKSUM = 0x7
1004 IP_ADD_MEMBERSHIP = 0x23 1004 IPV6_DONTFRAG = 0x3e
1005 IP_ADD_SOURCE_MEMBERSHIP = 0x27 1005 IPV6_DROP_MEMBERSHIP = 0x15
1006 IP_BIND_ADDRESS_NO_PORT = 0x18 1006 IPV6_DSTOPTS = 0x3b
1007 IP_BLOCK_SOURCE = 0x26 1007 IPV6_FREEBIND = 0x4e
1008 IP_CHECKSUM = 0x17 1008 IPV6_HDRINCL = 0x24
1009 IP_DEFAULT_MULTICAST_LOOP = 0x1 1009 IPV6_HOPLIMIT = 0x34
1010 IP_DEFAULT_MULTICAST_TTL = 0x1 1010 IPV6_HOPOPTS = 0x36
1011 IP_DF = 0x4000 1011 IPV6_IPSEC_POLICY = 0x22
1012 IP_DROP_MEMBERSHIP = 0x24 1012 IPV6_JOIN_ANYCAST = 0x1b
1013 IP_DROP_SOURCE_MEMBERSHIP = 0x28 1013 IPV6_JOIN_GROUP = 0x14
1014 IP_FREEBIND = 0xf 1014 IPV6_LEAVE_ANYCAST = 0x1c
1015 IP_HDRINCL = 0x3 1015 IPV6_LEAVE_GROUP = 0x15
1016 IP_IPSEC_POLICY = 0x10 1016 IPV6_MINHOPCOUNT = 0x49
1017 IP_MAXPACKET = 0xffff 1017 IPV6_MTU = 0x18
1018 IP_MAX_MEMBERSHIPS = 0x14 1018 IPV6_MTU_DISCOVER = 0x17
1019 IP_MF = 0x2000 1019 IPV6_MULTICAST_ALL = 0x1d
1020 IP_MINTTL = 0x15 1020 IPV6_MULTICAST_HOPS = 0x12
1021 IP_MSFILTER = 0x29 1021 IPV6_MULTICAST_IF = 0x11
1022 IP_MSS = 0x240 1022 IPV6_MULTICAST_LOOP = 0x13
1023 IP_MTU = 0xe 1023 IPV6_NEXTHOP = 0x9
1024 IP_MTU_DISCOVER = 0xa 1024 IPV6_ORIGDSTADDR = 0x4a
1025 IP_MULTICAST_ALL = 0x31 1025 IPV6_PATHMTU = 0x3d
1026 IP_MULTICAST_IF = 0x20 1026 IPV6_PKTINFO = 0x32
1027 IP_MULTICAST_LOOP = 0x22 1027 IPV6_PMTUDISC_DO = 0x2
1028 IP_MULTICAST_TTL = 0x21 1028 IPV6_PMTUDISC_DONT = 0x0
1029 IP_NODEFRAG = 0x16 1029 IPV6_PMTUDISC_INTERFACE = 0x4
1030 IP_OFFMASK = 0x1fff 1030 IPV6_PMTUDISC_OMIT = 0x5
1031 IP_OPTIONS = 0x4 1031 IPV6_PMTUDISC_PROBE = 0x3
1032 IP_ORIGDSTADDR = 0x14 1032 IPV6_PMTUDISC_WANT = 0x1
1033 IP_PASSSEC = 0x12 1033 IPV6_RECVDSTOPTS = 0x3a
1034 IP_PKTINFO = 0x8 1034 IPV6_RECVERR = 0x19
1035 IP_PKTOPTIONS = 0x9 1035 IPV6_RECVFRAGSIZE = 0x4d
1036 IP_PMTUDISC = 0xa 1036 IPV6_RECVHOPLIMIT = 0x33
1037 IP_PMTUDISC_DO = 0x2 1037 IPV6_RECVHOPOPTS = 0x35
1038 IP_PMTUDISC_DONT = 0x0 1038 IPV6_RECVORIGDSTADDR = 0x4a
1039 IP_PMTUDISC_INTERFACE = 0x4 1039 IPV6_RECVPATHMTU = 0x3c
1040 IP_PMTUDISC_OMIT = 0x5 1040 IPV6_RECVPKTINFO = 0x31
1041 IP_PMTUDISC_PROBE = 0x3 1041 IPV6_RECVRTHDR = 0x38
1042 IP_PMTUDISC_WANT = 0x1 1042 IPV6_RECVTCLASS = 0x42
1043 IP_RECVERR = 0xb 1043 IPV6_ROUTER_ALERT = 0x16
1044 IP_RECVFRAGSIZE = 0x19 1044 IPV6_ROUTER_ALERT_ISOLATE = 0x1e
1045 IP_RECVOPTS = 0x6 1045 IPV6_RTHDR = 0x39
1046 IP_RECVORIGDSTADDR = 0x14 1046 IPV6_RTHDRDSTOPTS = 0x37
1047 IP_RECVRETOPTS = 0x7 1047 IPV6_RTHDR_LOOSE = 0x0
1048 IP_RECVTOS = 0xd 1048 IPV6_RTHDR_STRICT = 0x1
1049 IP_RECVTTL = 0xc 1049 IPV6_RTHDR_TYPE_0 = 0x0
1050 IP_RETOPTS = 0x7 1050 IPV6_RXDSTOPTS = 0x3b
1051 IP_RF = 0x8000 1051 IPV6_RXHOPOPTS = 0x36
1052 IP_ROUTER_ALERT = 0x5 1052 IPV6_TCLASS = 0x43
1053 IP_TOS = 0x1 1053 IPV6_TRANSPARENT = 0x4b
1054 IP_TRANSPARENT = 0x13 1054 IPV6_UNICAST_HOPS = 0x10
1055 IP_TTL = 0x2 1055 IPV6_UNICAST_IF = 0x4c
1056 IP_UNBLOCK_SOURCE = 0x25 1056 IPV6_V6ONLY = 0x1a
1057 IP_UNICAST_IF = 0x32 1057 IPV6_XFRM_POLICY = 0x23
1058 IP_XFRM_POLICY = 0x11 1058 IP_ADD_MEMBERSHIP = 0x23
1059 ISIG = 0x1 1059 IP_ADD_SOURCE_MEMBERSHIP = 0x27
1060 ISOFS_SUPER_MAGIC = 0x9660 1060 IP_BIND_ADDRESS_NO_PORT = 0x18
1061 ISTRIP = 0x20 1061 IP_BLOCK_SOURCE = 0x26
1062 IUCLC = 0x200 1062 IP_CHECKSUM = 0x17
1063 IUTF8 = 0x4000 1063 IP_DEFAULT_MULTICAST_LOOP = 0x1
1064 IXANY = 0x800 1064 IP_DEFAULT_MULTICAST_TTL = 0x1
1065 IXOFF = 0x1000 1065 IP_DF = 0x4000
1066 IXON = 0x400 1066 IP_DROP_MEMBERSHIP = 0x24
1067 JFFS2_SUPER_MAGIC = 0x72b6 1067 IP_DROP_SOURCE_MEMBERSHIP = 0x28
1068 KEXEC_ARCH_386 = 0x30000 1068 IP_FREEBIND = 0xf
1069 KEXEC_ARCH_68K = 0x40000 1069 IP_HDRINCL = 0x3
1070 KEXEC_ARCH_AARCH64 = 0xb70000 1070 IP_IPSEC_POLICY = 0x10
1071 KEXEC_ARCH_ARM = 0x280000 1071 IP_MAXPACKET = 0xffff
1072 KEXEC_ARCH_DEFAULT = 0x0 1072 IP_MAX_MEMBERSHIPS = 0x14
1073 KEXEC_ARCH_IA_64 = 0x320000 1073 IP_MF = 0x2000
1074 KEXEC_ARCH_MASK = 0xffff0000 1074 IP_MINTTL = 0x15
1075 KEXEC_ARCH_MIPS = 0x80000 1075 IP_MSFILTER = 0x29
1076 KEXEC_ARCH_MIPS_LE = 0xa0000 1076 IP_MSS = 0x240
1077 KEXEC_ARCH_PPC = 0x140000 1077 IP_MTU = 0xe
1078 KEXEC_ARCH_PPC64 = 0x150000 1078 IP_MTU_DISCOVER = 0xa
1079 KEXEC_ARCH_S390 = 0x160000 1079 IP_MULTICAST_ALL = 0x31
1080 KEXEC_ARCH_SH = 0x2a0000 1080 IP_MULTICAST_IF = 0x20
1081 KEXEC_ARCH_X86_64 = 0x3e0000 1081 IP_MULTICAST_LOOP = 0x22
1082 KEXEC_FILE_NO_INITRAMFS = 0x4 1082 IP_MULTICAST_TTL = 0x21
1083 KEXEC_FILE_ON_CRASH = 0x2 1083 IP_NODEFRAG = 0x16
1084 KEXEC_FILE_UNLOAD = 0x1 1084 IP_OFFMASK = 0x1fff
1085 KEXEC_ON_CRASH = 0x1 1085 IP_OPTIONS = 0x4
1086 KEXEC_PRESERVE_CONTEXT = 0x2 1086 IP_ORIGDSTADDR = 0x14
1087 KEXEC_SEGMENT_MAX = 0x10 1087 IP_PASSSEC = 0x12
1088 KEYCTL_ASSUME_AUTHORITY = 0x10 1088 IP_PKTINFO = 0x8
1089 KEYCTL_CHOWN = 0x4 1089 IP_PKTOPTIONS = 0x9
1090 KEYCTL_CLEAR = 0x7 1090 IP_PMTUDISC = 0xa
1091 KEYCTL_DESCRIBE = 0x6 1091 IP_PMTUDISC_DO = 0x2
1092 KEYCTL_DH_COMPUTE = 0x17 1092 IP_PMTUDISC_DONT = 0x0
1093 KEYCTL_GET_KEYRING_ID = 0x0 1093 IP_PMTUDISC_INTERFACE = 0x4
1094 KEYCTL_GET_PERSISTENT = 0x16 1094 IP_PMTUDISC_OMIT = 0x5
1095 KEYCTL_GET_SECURITY = 0x11 1095 IP_PMTUDISC_PROBE = 0x3
1096 KEYCTL_INSTANTIATE = 0xc 1096 IP_PMTUDISC_WANT = 0x1
1097 KEYCTL_INSTANTIATE_IOV = 0x14 1097 IP_RECVERR = 0xb
1098 KEYCTL_INVALIDATE = 0x15 1098 IP_RECVFRAGSIZE = 0x19
1099 KEYCTL_JOIN_SESSION_KEYRING = 0x1 1099 IP_RECVOPTS = 0x6
1100 KEYCTL_LINK = 0x8 1100 IP_RECVORIGDSTADDR = 0x14
1101 KEYCTL_NEGATE = 0xd 1101 IP_RECVRETOPTS = 0x7
1102 KEYCTL_PKEY_DECRYPT = 0x1a 1102 IP_RECVTOS = 0xd
1103 KEYCTL_PKEY_ENCRYPT = 0x19 1103 IP_RECVTTL = 0xc
1104 KEYCTL_PKEY_QUERY = 0x18 1104 IP_RETOPTS = 0x7
1105 KEYCTL_PKEY_SIGN = 0x1b 1105 IP_RF = 0x8000
1106 KEYCTL_PKEY_VERIFY = 0x1c 1106 IP_ROUTER_ALERT = 0x5
1107 KEYCTL_READ = 0xb 1107 IP_TOS = 0x1
1108 KEYCTL_REJECT = 0x13 1108 IP_TRANSPARENT = 0x13
1109 KEYCTL_RESTRICT_KEYRING = 0x1d 1109 IP_TTL = 0x2
1110 KEYCTL_REVOKE = 0x3 1110 IP_UNBLOCK_SOURCE = 0x25
1111 KEYCTL_SEARCH = 0xa 1111 IP_UNICAST_IF = 0x32
1112 KEYCTL_SESSION_TO_PARENT = 0x12 1112 IP_XFRM_POLICY = 0x11
1113 KEYCTL_SETPERM = 0x5 1113 ISIG = 0x1
1114 KEYCTL_SET_REQKEY_KEYRING = 0xe 1114 ISOFS_SUPER_MAGIC = 0x9660
1115 KEYCTL_SET_TIMEOUT = 0xf 1115 ISTRIP = 0x20
1116 KEYCTL_SUPPORTS_DECRYPT = 0x2 1116 IUCLC = 0x200
1117 KEYCTL_SUPPORTS_ENCRYPT = 0x1 1117 IUTF8 = 0x4000
1118 KEYCTL_SUPPORTS_SIGN = 0x4 1118 IXANY = 0x800
1119 KEYCTL_SUPPORTS_VERIFY = 0x8 1119 IXOFF = 0x1000
1120 KEYCTL_UNLINK = 0x9 1120 IXON = 0x400
1121 KEYCTL_UPDATE = 0x2 1121 JFFS2_SUPER_MAGIC = 0x72b6
1122 KEY_REQKEY_DEFL_DEFAULT = 0x0 1122 KEXEC_ARCH_386 = 0x30000
1123 KEY_REQKEY_DEFL_GROUP_KEYRING = 0x6 1123 KEXEC_ARCH_68K = 0x40000
1124 KEY_REQKEY_DEFL_NO_CHANGE = -0x1 1124 KEXEC_ARCH_AARCH64 = 0xb70000
1125 KEY_REQKEY_DEFL_PROCESS_KEYRING = 0x2 1125 KEXEC_ARCH_ARM = 0x280000
1126 KEY_REQKEY_DEFL_REQUESTOR_KEYRING = 0x7 1126 KEXEC_ARCH_DEFAULT = 0x0
1127 KEY_REQKEY_DEFL_SESSION_KEYRING = 0x3 1127 KEXEC_ARCH_IA_64 = 0x320000
1128 KEY_REQKEY_DEFL_THREAD_KEYRING = 0x1 1128 KEXEC_ARCH_MASK = 0xffff0000
1129 KEY_REQKEY_DEFL_USER_KEYRING = 0x4 1129 KEXEC_ARCH_MIPS = 0x80000
1130 KEY_REQKEY_DEFL_USER_SESSION_KEYRING = 0x5 1130 KEXEC_ARCH_MIPS_LE = 0xa0000
1131 KEY_SPEC_GROUP_KEYRING = -0x6 1131 KEXEC_ARCH_PARISC = 0xf0000
1132 KEY_SPEC_PROCESS_KEYRING = -0x2 1132 KEXEC_ARCH_PPC = 0x140000
1133 KEY_SPEC_REQKEY_AUTH_KEY = -0x7 1133 KEXEC_ARCH_PPC64 = 0x150000
1134 KEY_SPEC_REQUESTOR_KEYRING = -0x8 1134 KEXEC_ARCH_S390 = 0x160000
1135 KEY_SPEC_SESSION_KEYRING = -0x3 1135 KEXEC_ARCH_SH = 0x2a0000
1136 KEY_SPEC_THREAD_KEYRING = -0x1 1136 KEXEC_ARCH_X86_64 = 0x3e0000
1137 KEY_SPEC_USER_KEYRING = -0x4 1137 KEXEC_FILE_NO_INITRAMFS = 0x4
1138 KEY_SPEC_USER_SESSION_KEYRING = -0x5 1138 KEXEC_FILE_ON_CRASH = 0x2
1139 LINUX_REBOOT_CMD_CAD_OFF = 0x0 1139 KEXEC_FILE_UNLOAD = 0x1
1140 LINUX_REBOOT_CMD_CAD_ON = 0x89abcdef 1140 KEXEC_ON_CRASH = 0x1
1141 LINUX_REBOOT_CMD_HALT = 0xcdef0123 1141 KEXEC_PRESERVE_CONTEXT = 0x2
1142 LINUX_REBOOT_CMD_KEXEC = 0x45584543 1142 KEXEC_SEGMENT_MAX = 0x10
1143 LINUX_REBOOT_CMD_POWER_OFF = 0x4321fedc 1143 KEYCTL_ASSUME_AUTHORITY = 0x10
1144 LINUX_REBOOT_CMD_RESTART = 0x1234567 1144 KEYCTL_CAPABILITIES = 0x1f
1145 LINUX_REBOOT_CMD_RESTART2 = 0xa1b2c3d4 1145 KEYCTL_CAPS0_BIG_KEY = 0x10
1146 LINUX_REBOOT_CMD_SW_SUSPEND = 0xd000fce2 1146 KEYCTL_CAPS0_CAPABILITIES = 0x1
1147 LINUX_REBOOT_MAGIC1 = 0xfee1dead 1147 KEYCTL_CAPS0_DIFFIE_HELLMAN = 0x4
1148 LINUX_REBOOT_MAGIC2 = 0x28121969 1148 KEYCTL_CAPS0_INVALIDATE = 0x20
1149 LOCK_EX = 0x2 1149 KEYCTL_CAPS0_MOVE = 0x80
1150 LOCK_NB = 0x4 1150 KEYCTL_CAPS0_PERSISTENT_KEYRINGS = 0x2
1151 LOCK_SH = 0x1 1151 KEYCTL_CAPS0_PUBLIC_KEY = 0x8
1152 LOCK_UN = 0x8 1152 KEYCTL_CAPS0_RESTRICT_KEYRING = 0x40
1153 LOOP_CLR_FD = 0x4c01 1153 KEYCTL_CAPS1_NS_KEYRING_NAME = 0x1
1154 LOOP_CTL_ADD = 0x4c80 1154 KEYCTL_CAPS1_NS_KEY_TAG = 0x2
1155 LOOP_CTL_GET_FREE = 0x4c82 1155 KEYCTL_CHOWN = 0x4
1156 LOOP_CTL_REMOVE = 0x4c81 1156 KEYCTL_CLEAR = 0x7
1157 LOOP_GET_STATUS = 0x4c03 1157 KEYCTL_DESCRIBE = 0x6
1158 LOOP_GET_STATUS64 = 0x4c05 1158 KEYCTL_DH_COMPUTE = 0x17
1159 LOOP_SET_BLOCK_SIZE = 0x4c09 1159 KEYCTL_GET_KEYRING_ID = 0x0
1160 LOOP_SET_CAPACITY = 0x4c07 1160 KEYCTL_GET_PERSISTENT = 0x16
1161 LOOP_SET_DIRECT_IO = 0x4c08 1161 KEYCTL_GET_SECURITY = 0x11
1162 LOOP_SET_FD = 0x4c00 1162 KEYCTL_INSTANTIATE = 0xc
1163 LOOP_SET_STATUS = 0x4c02 1163 KEYCTL_INSTANTIATE_IOV = 0x14
1164 LOOP_SET_STATUS64 = 0x4c04 1164 KEYCTL_INVALIDATE = 0x15
1165 LO_KEY_SIZE = 0x20 1165 KEYCTL_JOIN_SESSION_KEYRING = 0x1
1166 LO_NAME_SIZE = 0x40 1166 KEYCTL_LINK = 0x8
1167 MADV_DODUMP = 0x11 1167 KEYCTL_MOVE = 0x1e
1168 MADV_DOFORK = 0xb 1168 KEYCTL_MOVE_EXCL = 0x1
1169 MADV_DONTDUMP = 0x10 1169 KEYCTL_NEGATE = 0xd
1170 MADV_DONTFORK = 0xa 1170 KEYCTL_PKEY_DECRYPT = 0x1a
1171 MADV_DONTNEED = 0x4 1171 KEYCTL_PKEY_ENCRYPT = 0x19
1172 MADV_FREE = 0x8 1172 KEYCTL_PKEY_QUERY = 0x18
1173 MADV_HUGEPAGE = 0xe 1173 KEYCTL_PKEY_SIGN = 0x1b
1174 MADV_HWPOISON = 0x64 1174 KEYCTL_PKEY_VERIFY = 0x1c
1175 MADV_KEEPONFORK = 0x13 1175 KEYCTL_READ = 0xb
1176 MADV_MERGEABLE = 0xc 1176 KEYCTL_REJECT = 0x13
1177 MADV_NOHUGEPAGE = 0xf 1177 KEYCTL_RESTRICT_KEYRING = 0x1d
1178 MADV_NORMAL = 0x0 1178 KEYCTL_REVOKE = 0x3
1179 MADV_RANDOM = 0x1 1179 KEYCTL_SEARCH = 0xa
1180 MADV_REMOVE = 0x9 1180 KEYCTL_SESSION_TO_PARENT = 0x12
1181 MADV_SEQUENTIAL = 0x2 1181 KEYCTL_SETPERM = 0x5
1182 MADV_UNMERGEABLE = 0xd 1182 KEYCTL_SET_REQKEY_KEYRING = 0xe
1183 MADV_WILLNEED = 0x3 1183 KEYCTL_SET_TIMEOUT = 0xf
1184 MADV_WIPEONFORK = 0x12 1184 KEYCTL_SUPPORTS_DECRYPT = 0x2
1185 MAP_ANON = 0x20 1185 KEYCTL_SUPPORTS_ENCRYPT = 0x1
1186 MAP_ANONYMOUS = 0x20 1186 KEYCTL_SUPPORTS_SIGN = 0x4
1187 MAP_DENYWRITE = 0x800 1187 KEYCTL_SUPPORTS_VERIFY = 0x8
1188 MAP_EXECUTABLE = 0x1000 1188 KEYCTL_UNLINK = 0x9
1189 MAP_FILE = 0x0 1189 KEYCTL_UPDATE = 0x2
1190 MAP_FIXED = 0x10 1190 KEY_REQKEY_DEFL_DEFAULT = 0x0
1191 MAP_FIXED_NOREPLACE = 0x100000 1191 KEY_REQKEY_DEFL_GROUP_KEYRING = 0x6
1192 MAP_GROWSDOWN = 0x100 1192 KEY_REQKEY_DEFL_NO_CHANGE = -0x1
1193 MAP_HUGETLB = 0x40000 1193 KEY_REQKEY_DEFL_PROCESS_KEYRING = 0x2
1194 MAP_HUGE_MASK = 0x3f 1194 KEY_REQKEY_DEFL_REQUESTOR_KEYRING = 0x7
1195 MAP_HUGE_SHIFT = 0x1a 1195 KEY_REQKEY_DEFL_SESSION_KEYRING = 0x3
1196 MAP_LOCKED = 0x2000 1196 KEY_REQKEY_DEFL_THREAD_KEYRING = 0x1
1197 MAP_NONBLOCK = 0x10000 1197 KEY_REQKEY_DEFL_USER_KEYRING = 0x4
1198 MAP_NORESERVE = 0x4000 1198 KEY_REQKEY_DEFL_USER_SESSION_KEYRING = 0x5
1199 MAP_POPULATE = 0x8000 1199 KEY_SPEC_GROUP_KEYRING = -0x6
1200 MAP_PRIVATE = 0x2 1200 KEY_SPEC_PROCESS_KEYRING = -0x2
1201 MAP_SHARED = 0x1 1201 KEY_SPEC_REQKEY_AUTH_KEY = -0x7
1202 MAP_SHARED_VALIDATE = 0x3 1202 KEY_SPEC_REQUESTOR_KEYRING = -0x8
1203 MAP_STACK = 0x20000 1203 KEY_SPEC_SESSION_KEYRING = -0x3
1204 MAP_SYNC = 0x80000 1204 KEY_SPEC_THREAD_KEYRING = -0x1
1205 MAP_TYPE = 0xf 1205 KEY_SPEC_USER_KEYRING = -0x4
1206 MCAST_BLOCK_SOURCE = 0x2b 1206 KEY_SPEC_USER_SESSION_KEYRING = -0x5
1207 MCAST_EXCLUDE = 0x0 1207 LINUX_REBOOT_CMD_CAD_OFF = 0x0
1208 MCAST_INCLUDE = 0x1 1208 LINUX_REBOOT_CMD_CAD_ON = 0x89abcdef
1209 MCAST_JOIN_GROUP = 0x2a 1209 LINUX_REBOOT_CMD_HALT = 0xcdef0123
1210 MCAST_JOIN_SOURCE_GROUP = 0x2e 1210 LINUX_REBOOT_CMD_KEXEC = 0x45584543
1211 MCAST_LEAVE_GROUP = 0x2d 1211 LINUX_REBOOT_CMD_POWER_OFF = 0x4321fedc
1212 MCAST_LEAVE_SOURCE_GROUP = 0x2f 1212 LINUX_REBOOT_CMD_RESTART = 0x1234567
1213 MCAST_MSFILTER = 0x30 1213 LINUX_REBOOT_CMD_RESTART2 = 0xa1b2c3d4
1214 MCAST_UNBLOCK_SOURCE = 0x2c 1214 LINUX_REBOOT_CMD_SW_SUSPEND = 0xd000fce2
1215 MCL_CURRENT = 0x1 1215 LINUX_REBOOT_MAGIC1 = 0xfee1dead
1216 MCL_FUTURE = 0x2 1216 LINUX_REBOOT_MAGIC2 = 0x28121969
1217 MCL_ONFAULT = 0x4 1217 LOCK_EX = 0x2
1218 MFD_ALLOW_SEALING = 0x2 1218 LOCK_NB = 0x4
1219 MFD_CLOEXEC = 0x1 1219 LOCK_SH = 0x1
1220 MFD_HUGETLB = 0x4 1220 LOCK_UN = 0x8
1221 MFD_HUGE_16GB = -0x78000000 1221 LOOP_CLR_FD = 0x4c01
1222 MFD_HUGE_16MB = 0x60000000 1222 LOOP_CTL_ADD = 0x4c80
1223 MFD_HUGE_1GB = 0x78000000 1223 LOOP_CTL_GET_FREE = 0x4c82
1224 MFD_HUGE_1MB = 0x50000000 1224 LOOP_CTL_REMOVE = 0x4c81
1225 MFD_HUGE_256MB = 0x70000000 1225 LOOP_GET_STATUS = 0x4c03
1226 MFD_HUGE_2GB = 0x7c000000 1226 LOOP_GET_STATUS64 = 0x4c05
1227 MFD_HUGE_2MB = 0x54000000 1227 LOOP_SET_BLOCK_SIZE = 0x4c09
1228 MFD_HUGE_32MB = 0x64000000 1228 LOOP_SET_CAPACITY = 0x4c07
1229 MFD_HUGE_512KB = 0x4c000000 1229 LOOP_SET_DIRECT_IO = 0x4c08
1230 MFD_HUGE_512MB = 0x74000000 1230 LOOP_SET_FD = 0x4c00
1231 MFD_HUGE_64KB = 0x40000000 1231 LOOP_SET_STATUS = 0x4c02
1232 MFD_HUGE_8MB = 0x5c000000 1232 LOOP_SET_STATUS64 = 0x4c04
1233 MFD_HUGE_MASK = 0x3f 1233 LO_KEY_SIZE = 0x20
1234 MFD_HUGE_SHIFT = 0x1a 1234 LO_NAME_SIZE = 0x40
1235 MINIX2_SUPER_MAGIC = 0x2468 1235 MADV_COLD = 0x14
1236 MINIX2_SUPER_MAGIC2 = 0x2478 1236 MADV_DODUMP = 0x11
1237 MINIX3_SUPER_MAGIC = 0x4d5a 1237 MADV_DOFORK = 0xb
1238 MINIX_SUPER_MAGIC = 0x137f 1238 MADV_DONTDUMP = 0x10
1239 MINIX_SUPER_MAGIC2 = 0x138f 1239 MADV_DONTFORK = 0xa
1240 MNT_DETACH = 0x2 1240 MADV_DONTNEED = 0x4
1241 MNT_EXPIRE = 0x4 1241 MADV_FREE = 0x8
1242 MNT_FORCE = 0x1 1242 MADV_HUGEPAGE = 0xe
1243 MODULE_INIT_IGNORE_MODVERSIONS = 0x1 1243 MADV_HWPOISON = 0x64
1244 MODULE_INIT_IGNORE_VERMAGIC = 0x2 1244 MADV_KEEPONFORK = 0x13
1245 MSDOS_SUPER_MAGIC = 0x4d44 1245 MADV_MERGEABLE = 0xc
1246 MSG_BATCH = 0x40000 1246 MADV_NOHUGEPAGE = 0xf
1247 MSG_CMSG_CLOEXEC = 0x40000000 1247 MADV_NORMAL = 0x0
1248 MSG_CONFIRM = 0x800 1248 MADV_PAGEOUT = 0x15
1249 MSG_CTRUNC = 0x8 1249 MADV_RANDOM = 0x1
1250 MSG_DONTROUTE = 0x4 1250 MADV_REMOVE = 0x9
1251 MSG_DONTWAIT = 0x40 1251 MADV_SEQUENTIAL = 0x2
1252 MSG_EOR = 0x80 1252 MADV_UNMERGEABLE = 0xd
1253 MSG_ERRQUEUE = 0x2000 1253 MADV_WILLNEED = 0x3
1254 MSG_FASTOPEN = 0x20000000 1254 MADV_WIPEONFORK = 0x12
1255 MSG_FIN = 0x200 1255 MAP_ANON = 0x20
1256 MSG_MORE = 0x8000 1256 MAP_ANONYMOUS = 0x20
1257 MSG_NOSIGNAL = 0x4000 1257 MAP_DENYWRITE = 0x800
1258 MSG_OOB = 0x1 1258 MAP_EXECUTABLE = 0x1000
1259 MSG_PEEK = 0x2 1259 MAP_FILE = 0x0
1260 MSG_PROXY = 0x10 1260 MAP_FIXED = 0x10
1261 MSG_RST = 0x1000 1261 MAP_FIXED_NOREPLACE = 0x100000
1262 MSG_SYN = 0x400 1262 MAP_GROWSDOWN = 0x100
1263 MSG_TRUNC = 0x20 1263 MAP_HUGETLB = 0x40000
1264 MSG_TRYHARD = 0x4 1264 MAP_HUGE_MASK = 0x3f
1265 MSG_WAITALL = 0x100 1265 MAP_HUGE_SHIFT = 0x1a
1266 MSG_WAITFORONE = 0x10000 1266 MAP_LOCKED = 0x2000
1267 MSG_ZEROCOPY = 0x4000000 1267 MAP_NONBLOCK = 0x10000
1268 MS_ACTIVE = 0x40000000 1268 MAP_NORESERVE = 0x4000
1269 MS_ASYNC = 0x1 1269 MAP_POPULATE = 0x8000
1270 MS_BIND = 0x1000 1270 MAP_PRIVATE = 0x2
1271 MS_BORN = 0x20000000 1271 MAP_SHARED = 0x1
1272 MS_DIRSYNC = 0x80 1272 MAP_SHARED_VALIDATE = 0x3
1273 MS_INVALIDATE = 0x2 1273 MAP_STACK = 0x20000
1274 MS_I_VERSION = 0x800000 1274 MAP_SYNC = 0x80000
1275 MS_KERNMOUNT = 0x400000 1275 MAP_TYPE = 0xf
1276 MS_LAZYTIME = 0x2000000 1276 MCAST_BLOCK_SOURCE = 0x2b
1277 MS_MANDLOCK = 0x40 1277 MCAST_EXCLUDE = 0x0
1278 MS_MGC_MSK = 0xffff0000 1278 MCAST_INCLUDE = 0x1
1279 MS_MGC_VAL = 0xc0ed0000 1279 MCAST_JOIN_GROUP = 0x2a
1280 MS_MOVE = 0x2000 1280 MCAST_JOIN_SOURCE_GROUP = 0x2e
1281 MS_NOATIME = 0x400 1281 MCAST_LEAVE_GROUP = 0x2d
1282 MS_NODEV = 0x4 1282 MCAST_LEAVE_SOURCE_GROUP = 0x2f
1283 MS_NODIRATIME = 0x800 1283 MCAST_MSFILTER = 0x30
1284 MS_NOEXEC = 0x8 1284 MCAST_UNBLOCK_SOURCE = 0x2c
1285 MS_NOREMOTELOCK = 0x8000000 1285 MCL_CURRENT = 0x1
1286 MS_NOSEC = 0x10000000 1286 MCL_FUTURE = 0x2
1287 MS_NOSUID = 0x2 1287 MCL_ONFAULT = 0x4
1288 MS_NOUSER = -0x80000000 1288 MFD_ALLOW_SEALING = 0x2
1289 MS_POSIXACL = 0x10000 1289 MFD_CLOEXEC = 0x1
1290 MS_PRIVATE = 0x40000 1290 MFD_HUGETLB = 0x4
1291 MS_RDONLY = 0x1 1291 MFD_HUGE_16GB = -0x78000000
1292 MS_REC = 0x4000 1292 MFD_HUGE_16MB = 0x60000000
1293 MS_RELATIME = 0x200000 1293 MFD_HUGE_1GB = 0x78000000
1294 MS_REMOUNT = 0x20 1294 MFD_HUGE_1MB = 0x50000000
1295 MS_RMT_MASK = 0x2800051 1295 MFD_HUGE_256MB = 0x70000000
1296 MS_SHARED = 0x100000 1296 MFD_HUGE_2GB = 0x7c000000
1297 MS_SILENT = 0x8000 1297 MFD_HUGE_2MB = 0x54000000
1298 MS_SLAVE = 0x80000 1298 MFD_HUGE_32MB = 0x64000000
1299 MS_STRICTATIME = 0x1000000 1299 MFD_HUGE_512KB = 0x4c000000
1300 MS_SUBMOUNT = 0x4000000 1300 MFD_HUGE_512MB = 0x74000000
1301 MS_SYNC = 0x4 1301 MFD_HUGE_64KB = 0x40000000
1302 MS_SYNCHRONOUS = 0x10 1302 MFD_HUGE_8MB = 0x5c000000
1303 MS_UNBINDABLE = 0x20000 1303 MFD_HUGE_MASK = 0x3f
1304 MS_VERBOSE = 0x8000 1304 MFD_HUGE_SHIFT = 0x1a
1305 MTD_INODE_FS_MAGIC = 0x11307854 1305 MINIX2_SUPER_MAGIC = 0x2468
1306 NAME_MAX = 0xff 1306 MINIX2_SUPER_MAGIC2 = 0x2478
1307 NCP_SUPER_MAGIC = 0x564c 1307 MINIX3_SUPER_MAGIC = 0x4d5a
1308 NETLINK_ADD_MEMBERSHIP = 0x1 1308 MINIX_SUPER_MAGIC = 0x137f
1309 NETLINK_AUDIT = 0x9 1309 MINIX_SUPER_MAGIC2 = 0x138f
1310 NETLINK_BROADCAST_ERROR = 0x4 1310 MNT_DETACH = 0x2
1311 NETLINK_CAP_ACK = 0xa 1311 MNT_EXPIRE = 0x4
1312 NETLINK_CONNECTOR = 0xb 1312 MNT_FORCE = 0x1
1313 NETLINK_CRYPTO = 0x15 1313 MODULE_INIT_IGNORE_MODVERSIONS = 0x1
1314 NETLINK_DNRTMSG = 0xe 1314 MODULE_INIT_IGNORE_VERMAGIC = 0x2
1315 NETLINK_DROP_MEMBERSHIP = 0x2 1315 MSDOS_SUPER_MAGIC = 0x4d44
1316 NETLINK_ECRYPTFS = 0x13 1316 MSG_BATCH = 0x40000
1317 NETLINK_EXT_ACK = 0xb 1317 MSG_CMSG_CLOEXEC = 0x40000000
1318 NETLINK_FIB_LOOKUP = 0xa 1318 MSG_CONFIRM = 0x800
1319 NETLINK_FIREWALL = 0x3 1319 MSG_CTRUNC = 0x8
1320 NETLINK_GENERIC = 0x10 1320 MSG_DONTROUTE = 0x4
1321 NETLINK_GET_STRICT_CHK = 0xc 1321 MSG_DONTWAIT = 0x40
1322 NETLINK_INET_DIAG = 0x4 1322 MSG_EOR = 0x80
1323 NETLINK_IP6_FW = 0xd 1323 MSG_ERRQUEUE = 0x2000
1324 NETLINK_ISCSI = 0x8 1324 MSG_FASTOPEN = 0x20000000
1325 NETLINK_KOBJECT_UEVENT = 0xf 1325 MSG_FIN = 0x200
1326 NETLINK_LISTEN_ALL_NSID = 0x8 1326 MSG_MORE = 0x8000
1327 NETLINK_LIST_MEMBERSHIPS = 0x9 1327 MSG_NOSIGNAL = 0x4000
1328 NETLINK_NETFILTER = 0xc 1328 MSG_OOB = 0x1
1329 NETLINK_NFLOG = 0x5 1329 MSG_PEEK = 0x2
1330 NETLINK_NO_ENOBUFS = 0x5 1330 MSG_PROXY = 0x10
1331 NETLINK_PKTINFO = 0x3 1331 MSG_RST = 0x1000
1332 NETLINK_RDMA = 0x14 1332 MSG_SYN = 0x400
1333 NETLINK_ROUTE = 0x0 1333 MSG_TRUNC = 0x20
1334 NETLINK_RX_RING = 0x6 1334 MSG_TRYHARD = 0x4
1335 NETLINK_SCSITRANSPORT = 0x12 1335 MSG_WAITALL = 0x100
1336 NETLINK_SELINUX = 0x7 1336 MSG_WAITFORONE = 0x10000
1337 NETLINK_SMC = 0x16 1337 MSG_ZEROCOPY = 0x4000000
1338 NETLINK_SOCK_DIAG = 0x4 1338 MS_ACTIVE = 0x40000000
1339 NETLINK_TX_RING = 0x7 1339 MS_ASYNC = 0x1
1340 NETLINK_UNUSED = 0x1 1340 MS_BIND = 0x1000
1341 NETLINK_USERSOCK = 0x2 1341 MS_BORN = 0x20000000
1342 NETLINK_XFRM = 0x6 1342 MS_DIRSYNC = 0x80
1343 NETNSA_MAX = 0x5 1343 MS_INVALIDATE = 0x2
1344 NETNSA_NSID_NOT_ASSIGNED = -0x1 1344 MS_I_VERSION = 0x800000
1345 NFNETLINK_V0 = 0x0 1345 MS_KERNMOUNT = 0x400000
1346 NFNLGRP_ACCT_QUOTA = 0x8 1346 MS_LAZYTIME = 0x2000000
1347 NFNLGRP_CONNTRACK_DESTROY = 0x3 1347 MS_MANDLOCK = 0x40
1348 NFNLGRP_CONNTRACK_EXP_DESTROY = 0x6 1348 MS_MGC_MSK = 0xffff0000
1349 NFNLGRP_CONNTRACK_EXP_NEW = 0x4 1349 MS_MGC_VAL = 0xc0ed0000
1350 NFNLGRP_CONNTRACK_EXP_UPDATE = 0x5 1350 MS_MOVE = 0x2000
1351 NFNLGRP_CONNTRACK_NEW = 0x1 1351 MS_NOATIME = 0x400
1352 NFNLGRP_CONNTRACK_UPDATE = 0x2 1352 MS_NODEV = 0x4
1353 NFNLGRP_MAX = 0x9 1353 MS_NODIRATIME = 0x800
1354 NFNLGRP_NFTABLES = 0x7 1354 MS_NOEXEC = 0x8
1355 NFNLGRP_NFTRACE = 0x9 1355 MS_NOREMOTELOCK = 0x8000000
1356 NFNLGRP_NONE = 0x0 1356 MS_NOSEC = 0x10000000
1357 NFNL_BATCH_MAX = 0x1 1357 MS_NOSUID = 0x2
1358 NFNL_MSG_BATCH_BEGIN = 0x10 1358 MS_NOUSER = -0x80000000
1359 NFNL_MSG_BATCH_END = 0x11 1359 MS_POSIXACL = 0x10000
1360 NFNL_NFA_NEST = 0x8000 1360 MS_PRIVATE = 0x40000
1361 NFNL_SUBSYS_ACCT = 0x7 1361 MS_RDONLY = 0x1
1362 NFNL_SUBSYS_COUNT = 0xc 1362 MS_REC = 0x4000
1363 NFNL_SUBSYS_CTHELPER = 0x9 1363 MS_RELATIME = 0x200000
1364 NFNL_SUBSYS_CTNETLINK = 0x1 1364 MS_REMOUNT = 0x20
1365 NFNL_SUBSYS_CTNETLINK_EXP = 0x2 1365 MS_RMT_MASK = 0x2800051
1366 NFNL_SUBSYS_CTNETLINK_TIMEOUT = 0x8 1366 MS_SHARED = 0x100000
1367 NFNL_SUBSYS_IPSET = 0x6 1367 MS_SILENT = 0x8000
1368 NFNL_SUBSYS_NFTABLES = 0xa 1368 MS_SLAVE = 0x80000
1369 NFNL_SUBSYS_NFT_COMPAT = 0xb 1369 MS_STRICTATIME = 0x1000000
1370 NFNL_SUBSYS_NONE = 0x0 1370 MS_SUBMOUNT = 0x4000000
1371 NFNL_SUBSYS_OSF = 0x5 1371 MS_SYNC = 0x4
1372 NFNL_SUBSYS_QUEUE = 0x3 1372 MS_SYNCHRONOUS = 0x10
1373 NFNL_SUBSYS_ULOG = 0x4 1373 MS_UNBINDABLE = 0x20000
1374 NFS_SUPER_MAGIC = 0x6969 1374 MS_VERBOSE = 0x8000
1375 NILFS_SUPER_MAGIC = 0x3434 1375 MTD_INODE_FS_MAGIC = 0x11307854
1376 NL0 = 0x0 1376 NAME_MAX = 0xff
1377 NL1 = 0x100 1377 NCP_SUPER_MAGIC = 0x564c
1378 NLA_ALIGNTO = 0x4 1378 NETLINK_ADD_MEMBERSHIP = 0x1
1379 NLA_F_NESTED = 0x8000 1379 NETLINK_AUDIT = 0x9
1380 NLA_F_NET_BYTEORDER = 0x4000 1380 NETLINK_BROADCAST_ERROR = 0x4
1381 NLA_HDRLEN = 0x4 1381 NETLINK_CAP_ACK = 0xa
1382 NLDLY = 0x100 1382 NETLINK_CONNECTOR = 0xb
1383 NLMSG_ALIGNTO = 0x4 1383 NETLINK_CRYPTO = 0x15
1384 NLMSG_DONE = 0x3 1384 NETLINK_DNRTMSG = 0xe
1385 NLMSG_ERROR = 0x2 1385 NETLINK_DROP_MEMBERSHIP = 0x2
1386 NLMSG_HDRLEN = 0x10 1386 NETLINK_ECRYPTFS = 0x13
1387 NLMSG_MIN_TYPE = 0x10 1387 NETLINK_EXT_ACK = 0xb
1388 NLMSG_NOOP = 0x1 1388 NETLINK_FIB_LOOKUP = 0xa
1389 NLMSG_OVERRUN = 0x4 1389 NETLINK_FIREWALL = 0x3
1390 NLM_F_ACK = 0x4 1390 NETLINK_GENERIC = 0x10
1391 NLM_F_ACK_TLVS = 0x200 1391 NETLINK_GET_STRICT_CHK = 0xc
1392 NLM_F_APPEND = 0x800 1392 NETLINK_INET_DIAG = 0x4
1393 NLM_F_ATOMIC = 0x400 1393 NETLINK_IP6_FW = 0xd
1394 NLM_F_CAPPED = 0x100 1394 NETLINK_ISCSI = 0x8
1395 NLM_F_CREATE = 0x400 1395 NETLINK_KOBJECT_UEVENT = 0xf
1396 NLM_F_DUMP = 0x300 1396 NETLINK_LISTEN_ALL_NSID = 0x8
1397 NLM_F_DUMP_FILTERED = 0x20 1397 NETLINK_LIST_MEMBERSHIPS = 0x9
1398 NLM_F_DUMP_INTR = 0x10 1398 NETLINK_NETFILTER = 0xc
1399 NLM_F_ECHO = 0x8 1399 NETLINK_NFLOG = 0x5
1400 NLM_F_EXCL = 0x200 1400 NETLINK_NO_ENOBUFS = 0x5
1401 NLM_F_MATCH = 0x200 1401 NETLINK_PKTINFO = 0x3
1402 NLM_F_MULTI = 0x2 1402 NETLINK_RDMA = 0x14
1403 NLM_F_NONREC = 0x100 1403 NETLINK_ROUTE = 0x0
1404 NLM_F_REPLACE = 0x100 1404 NETLINK_RX_RING = 0x6
1405 NLM_F_REQUEST = 0x1 1405 NETLINK_SCSITRANSPORT = 0x12
1406 NLM_F_ROOT = 0x100 1406 NETLINK_SELINUX = 0x7
1407 NOFLSH = 0x80 1407 NETLINK_SMC = 0x16
1408 NSFS_MAGIC = 0x6e736673 1408 NETLINK_SOCK_DIAG = 0x4
1409 NS_GET_NSTYPE = 0xb703 1409 NETLINK_TX_RING = 0x7
1410 NS_GET_OWNER_UID = 0xb704 1410 NETLINK_UNUSED = 0x1
1411 NS_GET_PARENT = 0xb702 1411 NETLINK_USERSOCK = 0x2
1412 NS_GET_USERNS = 0xb701 1412 NETLINK_XFRM = 0x6
1413 OCFS2_SUPER_MAGIC = 0x7461636f 1413 NETNSA_MAX = 0x5
1414 OCRNL = 0x8 1414 NETNSA_NSID_NOT_ASSIGNED = -0x1
1415 OFDEL = 0x80 1415 NFDBITS = 0x40
1416 OFILL = 0x40 1416 NFNETLINK_V0 = 0x0
1417 OLCUC = 0x2 1417 NFNLGRP_ACCT_QUOTA = 0x8
1418 ONLCR = 0x4 1418 NFNLGRP_CONNTRACK_DESTROY = 0x3
1419 ONLRET = 0x20 1419 NFNLGRP_CONNTRACK_EXP_DESTROY = 0x6
1420 ONOCR = 0x10 1420 NFNLGRP_CONNTRACK_EXP_NEW = 0x4
1421 OPENPROM_SUPER_MAGIC = 0x9fa1 1421 NFNLGRP_CONNTRACK_EXP_UPDATE = 0x5
1422 OPOST = 0x1 1422 NFNLGRP_CONNTRACK_NEW = 0x1
1423 OVERLAYFS_SUPER_MAGIC = 0x794c7630 1423 NFNLGRP_CONNTRACK_UPDATE = 0x2
1424 O_ACCMODE = 0x3 1424 NFNLGRP_MAX = 0x9
1425 O_APPEND = 0x400 1425 NFNLGRP_NFTABLES = 0x7
1426 O_ASYNC = 0x2000 1426 NFNLGRP_NFTRACE = 0x9
1427 O_CLOEXEC = 0x80000 1427 NFNLGRP_NONE = 0x0
1428 O_CREAT = 0x40 1428 NFNL_BATCH_MAX = 0x1
1429 O_DIRECT = 0x4000 1429 NFNL_MSG_BATCH_BEGIN = 0x10
1430 O_DIRECTORY = 0x10000 1430 NFNL_MSG_BATCH_END = 0x11
1431 O_DSYNC = 0x1000 1431 NFNL_NFA_NEST = 0x8000
1432 O_EXCL = 0x80 1432 NFNL_SUBSYS_ACCT = 0x7
1433 O_FSYNC = 0x101000 1433 NFNL_SUBSYS_COUNT = 0xc
1434 O_LARGEFILE = 0x0 1434 NFNL_SUBSYS_CTHELPER = 0x9
1435 O_NDELAY = 0x800 1435 NFNL_SUBSYS_CTNETLINK = 0x1
1436 O_NOATIME = 0x40000 1436 NFNL_SUBSYS_CTNETLINK_EXP = 0x2
1437 O_NOCTTY = 0x100 1437 NFNL_SUBSYS_CTNETLINK_TIMEOUT = 0x8
1438 O_NOFOLLOW = 0x20000 1438 NFNL_SUBSYS_IPSET = 0x6
1439 O_NONBLOCK = 0x800 1439 NFNL_SUBSYS_NFTABLES = 0xa
1440 O_PATH = 0x200000 1440 NFNL_SUBSYS_NFT_COMPAT = 0xb
1441 O_RDONLY = 0x0 1441 NFNL_SUBSYS_NONE = 0x0
1442 O_RDWR = 0x2 1442 NFNL_SUBSYS_OSF = 0x5
1443 O_RSYNC = 0x101000 1443 NFNL_SUBSYS_QUEUE = 0x3
1444 O_SYNC = 0x101000 1444 NFNL_SUBSYS_ULOG = 0x4
1445 O_TMPFILE = 0x410000 1445 NFS_SUPER_MAGIC = 0x6969
1446 O_TRUNC = 0x200 1446 NILFS_SUPER_MAGIC = 0x3434
1447 O_WRONLY = 0x1 1447 NL0 = 0x0
1448 PACKET_ADD_MEMBERSHIP = 0x1 1448 NL1 = 0x100
1449 PACKET_AUXDATA = 0x8 1449 NLA_ALIGNTO = 0x4
1450 PACKET_BROADCAST = 0x1 1450 NLA_F_NESTED = 0x8000
1451 PACKET_COPY_THRESH = 0x7 1451 NLA_F_NET_BYTEORDER = 0x4000
1452 PACKET_DROP_MEMBERSHIP = 0x2 1452 NLA_HDRLEN = 0x4
1453 PACKET_FANOUT = 0x12 1453 NLDLY = 0x100
1454 PACKET_FANOUT_CBPF = 0x6 1454 NLMSG_ALIGNTO = 0x4
1455 PACKET_FANOUT_CPU = 0x2 1455 NLMSG_DONE = 0x3
1456 PACKET_FANOUT_DATA = 0x16 1456 NLMSG_ERROR = 0x2
1457 PACKET_FANOUT_EBPF = 0x7 1457 NLMSG_HDRLEN = 0x10
1458 PACKET_FANOUT_FLAG_DEFRAG = 0x8000 1458 NLMSG_MIN_TYPE = 0x10
1459 PACKET_FANOUT_FLAG_ROLLOVER = 0x1000 1459 NLMSG_NOOP = 0x1
1460 PACKET_FANOUT_FLAG_UNIQUEID = 0x2000 1460 NLMSG_OVERRUN = 0x4
1461 PACKET_FANOUT_HASH = 0x0 1461 NLM_F_ACK = 0x4
1462 PACKET_FANOUT_LB = 0x1 1462 NLM_F_ACK_TLVS = 0x200
1463 PACKET_FANOUT_QM = 0x5 1463 NLM_F_APPEND = 0x800
1464 PACKET_FANOUT_RND = 0x4 1464 NLM_F_ATOMIC = 0x400
1465 PACKET_FANOUT_ROLLOVER = 0x3 1465 NLM_F_CAPPED = 0x100
1466 PACKET_FASTROUTE = 0x6 1466 NLM_F_CREATE = 0x400
1467 PACKET_HDRLEN = 0xb 1467 NLM_F_DUMP = 0x300
1468 PACKET_HOST = 0x0 1468 NLM_F_DUMP_FILTERED = 0x20
1469 PACKET_IGNORE_OUTGOING = 0x17 1469 NLM_F_DUMP_INTR = 0x10
1470 PACKET_KERNEL = 0x7 1470 NLM_F_ECHO = 0x8
1471 PACKET_LOOPBACK = 0x5 1471 NLM_F_EXCL = 0x200
1472 PACKET_LOSS = 0xe 1472 NLM_F_MATCH = 0x200
1473 PACKET_MR_ALLMULTI = 0x2 1473 NLM_F_MULTI = 0x2
1474 PACKET_MR_MULTICAST = 0x0 1474 NLM_F_NONREC = 0x100
1475 PACKET_MR_PROMISC = 0x1 1475 NLM_F_REPLACE = 0x100
1476 PACKET_MR_UNICAST = 0x3 1476 NLM_F_REQUEST = 0x1
1477 PACKET_MULTICAST = 0x2 1477 NLM_F_ROOT = 0x100
1478 PACKET_ORIGDEV = 0x9 1478 NOFLSH = 0x80
1479 PACKET_OTHERHOST = 0x3 1479 NSFS_MAGIC = 0x6e736673
1480 PACKET_OUTGOING = 0x4 1480 NS_GET_NSTYPE = 0xb703
1481 PACKET_QDISC_BYPASS = 0x14 1481 NS_GET_OWNER_UID = 0xb704
1482 PACKET_RECV_OUTPUT = 0x3 1482 NS_GET_PARENT = 0xb702
1483 PACKET_RESERVE = 0xc 1483 NS_GET_USERNS = 0xb701
1484 PACKET_ROLLOVER_STATS = 0x15 1484 OCFS2_SUPER_MAGIC = 0x7461636f
1485 PACKET_RX_RING = 0x5 1485 OCRNL = 0x8
1486 PACKET_STATISTICS = 0x6 1486 OFDEL = 0x80
1487 PACKET_TIMESTAMP = 0x11 1487 OFILL = 0x40
1488 PACKET_TX_HAS_OFF = 0x13 1488 OLCUC = 0x2
1489 PACKET_TX_RING = 0xd 1489 ONLCR = 0x4
1490 PACKET_TX_TIMESTAMP = 0x10 1490 ONLRET = 0x20
1491 PACKET_USER = 0x6 1491 ONOCR = 0x10
1492 PACKET_VERSION = 0xa 1492 OPENPROM_SUPER_MAGIC = 0x9fa1
1493 PACKET_VNET_HDR = 0xf 1493 OPOST = 0x1
1494 PARENB = 0x100 1494 OVERLAYFS_SUPER_MAGIC = 0x794c7630
1495 PARITY_CRC16_PR0 = 0x2 1495 O_ACCMODE = 0x3
1496 PARITY_CRC16_PR0_CCITT = 0x4 1496 O_APPEND = 0x400
1497 PARITY_CRC16_PR1 = 0x3 1497 O_ASYNC = 0x2000
1498 PARITY_CRC16_PR1_CCITT = 0x5 1498 O_CLOEXEC = 0x80000
1499 PARITY_CRC32_PR0_CCITT = 0x6 1499 O_CREAT = 0x40
1500 PARITY_CRC32_PR1_CCITT = 0x7 1500 O_DIRECT = 0x4000
1501 PARITY_DEFAULT = 0x0 1501 O_DIRECTORY = 0x10000
1502 PARITY_NONE = 0x1 1502 O_DSYNC = 0x1000
1503 PARMRK = 0x8 1503 O_EXCL = 0x80
1504 PARODD = 0x200 1504 O_FSYNC = 0x101000
1505 PENDIN = 0x4000 1505 O_LARGEFILE = 0x0
1506 PERF_EVENT_IOC_DISABLE = 0x2401 1506 O_NDELAY = 0x800
1507 PERF_EVENT_IOC_ENABLE = 0x2400 1507 O_NOATIME = 0x40000
1508 PERF_EVENT_IOC_ID = 0x80082407 1508 O_NOCTTY = 0x100
1509 PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x4008240b 1509 O_NOFOLLOW = 0x20000
1510 PERF_EVENT_IOC_PAUSE_OUTPUT = 0x40042409 1510 O_NONBLOCK = 0x800
1511 PERF_EVENT_IOC_PERIOD = 0x40082404 1511 O_PATH = 0x200000
1512 PERF_EVENT_IOC_QUERY_BPF = 0xc008240a 1512 O_RDONLY = 0x0
1513 PERF_EVENT_IOC_REFRESH = 0x2402 1513 O_RDWR = 0x2
1514 PERF_EVENT_IOC_RESET = 0x2403 1514 O_RSYNC = 0x101000
1515 PERF_EVENT_IOC_SET_BPF = 0x40042408 1515 O_SYNC = 0x101000
1516 PERF_EVENT_IOC_SET_FILTER = 0x40082406 1516 O_TMPFILE = 0x410000
1517 PERF_EVENT_IOC_SET_OUTPUT = 0x2405 1517 O_TRUNC = 0x200
1518 PIPEFS_MAGIC = 0x50495045 1518 O_WRONLY = 0x1
1519 PPPIOCATTACH = 0x4004743d 1519 PACKET_ADD_MEMBERSHIP = 0x1
1520 PPPIOCATTCHAN = 0x40047438 1520 PACKET_AUXDATA = 0x8
1521 PPPIOCCONNECT = 0x4004743a 1521 PACKET_BROADCAST = 0x1
1522 PPPIOCDETACH = 0x4004743c 1522 PACKET_COPY_THRESH = 0x7
1523 PPPIOCDISCONN = 0x7439 1523 PACKET_DROP_MEMBERSHIP = 0x2
1524 PPPIOCGASYNCMAP = 0x80047458 1524 PACKET_FANOUT = 0x12
1525 PPPIOCGCHAN = 0x80047437 1525 PACKET_FANOUT_CBPF = 0x6
1526 PPPIOCGDEBUG = 0x80047441 1526 PACKET_FANOUT_CPU = 0x2
1527 PPPIOCGFLAGS = 0x8004745a 1527 PACKET_FANOUT_DATA = 0x16
1528 PPPIOCGIDLE = 0x8010743f 1528 PACKET_FANOUT_EBPF = 0x7
1529 PPPIOCGL2TPSTATS = 0x80487436 1529 PACKET_FANOUT_FLAG_DEFRAG = 0x8000
1530 PPPIOCGMRU = 0x80047453 1530 PACKET_FANOUT_FLAG_ROLLOVER = 0x1000
1531 PPPIOCGNPMODE = 0xc008744c 1531 PACKET_FANOUT_FLAG_UNIQUEID = 0x2000
1532 PPPIOCGRASYNCMAP = 0x80047455 1532 PACKET_FANOUT_HASH = 0x0
1533 PPPIOCGUNIT = 0x80047456 1533 PACKET_FANOUT_LB = 0x1
1534 PPPIOCGXASYNCMAP = 0x80207450 1534 PACKET_FANOUT_QM = 0x5
1535 PPPIOCNEWUNIT = 0xc004743e 1535 PACKET_FANOUT_RND = 0x4
1536 PPPIOCSACTIVE = 0x40107446 1536 PACKET_FANOUT_ROLLOVER = 0x3
1537 PPPIOCSASYNCMAP = 0x40047457 1537 PACKET_FASTROUTE = 0x6
1538 PPPIOCSCOMPRESS = 0x4010744d 1538 PACKET_HDRLEN = 0xb
1539 PPPIOCSDEBUG = 0x40047440 1539 PACKET_HOST = 0x0
1540 PPPIOCSFLAGS = 0x40047459 1540 PACKET_IGNORE_OUTGOING = 0x17
1541 PPPIOCSMAXCID = 0x40047451 1541 PACKET_KERNEL = 0x7
1542 PPPIOCSMRRU = 0x4004743b 1542 PACKET_LOOPBACK = 0x5
1543 PPPIOCSMRU = 0x40047452 1543 PACKET_LOSS = 0xe
1544 PPPIOCSNPMODE = 0x4008744b 1544 PACKET_MR_ALLMULTI = 0x2
1545 PPPIOCSPASS = 0x40107447 1545 PACKET_MR_MULTICAST = 0x0
1546 PPPIOCSRASYNCMAP = 0x40047454 1546 PACKET_MR_PROMISC = 0x1
1547 PPPIOCSXASYNCMAP = 0x4020744f 1547 PACKET_MR_UNICAST = 0x3
1548 PPPIOCXFERUNIT = 0x744e 1548 PACKET_MULTICAST = 0x2
1549 PRIO_PGRP = 0x1 1549 PACKET_ORIGDEV = 0x9
1550 PRIO_PROCESS = 0x0 1550 PACKET_OTHERHOST = 0x3
1551 PRIO_USER = 0x2 1551 PACKET_OUTGOING = 0x4
1552 PROC_SUPER_MAGIC = 0x9fa0 1552 PACKET_QDISC_BYPASS = 0x14
1553 PROT_EXEC = 0x4 1553 PACKET_RECV_OUTPUT = 0x3
1554 PROT_GROWSDOWN = 0x1000000 1554 PACKET_RESERVE = 0xc
1555 PROT_GROWSUP = 0x2000000 1555 PACKET_ROLLOVER_STATS = 0x15
1556 PROT_NONE = 0x0 1556 PACKET_RX_RING = 0x5
1557 PROT_READ = 0x1 1557 PACKET_STATISTICS = 0x6
1558 PROT_WRITE = 0x2 1558 PACKET_TIMESTAMP = 0x11
1559 PR_CAPBSET_DROP = 0x18 1559 PACKET_TX_HAS_OFF = 0x13
1560 PR_CAPBSET_READ = 0x17 1560 PACKET_TX_RING = 0xd
1561 PR_CAP_AMBIENT = 0x2f 1561 PACKET_TX_TIMESTAMP = 0x10
1562 PR_CAP_AMBIENT_CLEAR_ALL = 0x4 1562 PACKET_USER = 0x6
1563 PR_CAP_AMBIENT_IS_SET = 0x1 1563 PACKET_VERSION = 0xa
1564 PR_CAP_AMBIENT_LOWER = 0x3 1564 PACKET_VNET_HDR = 0xf
1565 PR_CAP_AMBIENT_RAISE = 0x2 1565 PARENB = 0x100
1566 PR_ENDIAN_BIG = 0x0 1566 PARITY_CRC16_PR0 = 0x2
1567 PR_ENDIAN_LITTLE = 0x1 1567 PARITY_CRC16_PR0_CCITT = 0x4
1568 PR_ENDIAN_PPC_LITTLE = 0x2 1568 PARITY_CRC16_PR1 = 0x3
1569 PR_FPEMU_NOPRINT = 0x1 1569 PARITY_CRC16_PR1_CCITT = 0x5
1570 PR_FPEMU_SIGFPE = 0x2 1570 PARITY_CRC32_PR0_CCITT = 0x6
1571 PR_FP_EXC_ASYNC = 0x2 1571 PARITY_CRC32_PR1_CCITT = 0x7
1572 PR_FP_EXC_DISABLED = 0x0 1572 PARITY_DEFAULT = 0x0
1573 PR_FP_EXC_DIV = 0x10000 1573 PARITY_NONE = 0x1
1574 PR_FP_EXC_INV = 0x100000 1574 PARMRK = 0x8
1575 PR_FP_EXC_NONRECOV = 0x1 1575 PARODD = 0x200
1576 PR_FP_EXC_OVF = 0x20000 1576 PENDIN = 0x4000
1577 PR_FP_EXC_PRECISE = 0x3 1577 PERF_EVENT_IOC_DISABLE = 0x2401
1578 PR_FP_EXC_RES = 0x80000 1578 PERF_EVENT_IOC_ENABLE = 0x2400
1579 PR_FP_EXC_SW_ENABLE = 0x80 1579 PERF_EVENT_IOC_ID = 0x80082407
1580 PR_FP_EXC_UND = 0x40000 1580 PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x4008240b
1581 PR_FP_MODE_FR = 0x1 1581 PERF_EVENT_IOC_PAUSE_OUTPUT = 0x40042409
1582 PR_FP_MODE_FRE = 0x2 1582 PERF_EVENT_IOC_PERIOD = 0x40082404
1583 PR_GET_CHILD_SUBREAPER = 0x25 1583 PERF_EVENT_IOC_QUERY_BPF = 0xc008240a
1584 PR_GET_DUMPABLE = 0x3 1584 PERF_EVENT_IOC_REFRESH = 0x2402
1585 PR_GET_ENDIAN = 0x13 1585 PERF_EVENT_IOC_RESET = 0x2403
1586 PR_GET_FPEMU = 0x9 1586 PERF_EVENT_IOC_SET_BPF = 0x40042408
1587 PR_GET_FPEXC = 0xb 1587 PERF_EVENT_IOC_SET_FILTER = 0x40082406
1588 PR_GET_FP_MODE = 0x2e 1588 PERF_EVENT_IOC_SET_OUTPUT = 0x2405
1589 PR_GET_KEEPCAPS = 0x7 1589 PIPEFS_MAGIC = 0x50495045
1590 PR_GET_NAME = 0x10 1590 PPC_CMM_MAGIC = 0xc7571590
1591 PR_GET_NO_NEW_PRIVS = 0x27 1591 PPPIOCATTACH = 0x4004743d
1592 PR_GET_PDEATHSIG = 0x2 1592 PPPIOCATTCHAN = 0x40047438
1593 PR_GET_SECCOMP = 0x15 1593 PPPIOCCONNECT = 0x4004743a
1594 PR_GET_SECUREBITS = 0x1b 1594 PPPIOCDETACH = 0x4004743c
1595 PR_GET_SPECULATION_CTRL = 0x34 1595 PPPIOCDISCONN = 0x7439
1596 PR_GET_THP_DISABLE = 0x2a 1596 PPPIOCGASYNCMAP = 0x80047458
1597 PR_GET_TID_ADDRESS = 0x28 1597 PPPIOCGCHAN = 0x80047437
1598 PR_GET_TIMERSLACK = 0x1e 1598 PPPIOCGDEBUG = 0x80047441
1599 PR_GET_TIMING = 0xd 1599 PPPIOCGFLAGS = 0x8004745a
1600 PR_GET_TSC = 0x19 1600 PPPIOCGIDLE = 0x8010743f
1601 PR_GET_UNALIGN = 0x5 1601 PPPIOCGIDLE32 = 0x8008743f
1602 PR_MCE_KILL = 0x21 1602 PPPIOCGIDLE64 = 0x8010743f
1603 PR_MCE_KILL_CLEAR = 0x0 1603 PPPIOCGL2TPSTATS = 0x80487436
1604 PR_MCE_KILL_DEFAULT = 0x2 1604 PPPIOCGMRU = 0x80047453
1605 PR_MCE_KILL_EARLY = 0x1 1605 PPPIOCGNPMODE = 0xc008744c
1606 PR_MCE_KILL_GET = 0x22 1606 PPPIOCGRASYNCMAP = 0x80047455
1607 PR_MCE_KILL_LATE = 0x0 1607 PPPIOCGUNIT = 0x80047456
1608 PR_MCE_KILL_SET = 0x1 1608 PPPIOCGXASYNCMAP = 0x80207450
1609 PR_MPX_DISABLE_MANAGEMENT = 0x2c 1609 PPPIOCNEWUNIT = 0xc004743e
1610 PR_MPX_ENABLE_MANAGEMENT = 0x2b 1610 PPPIOCSACTIVE = 0x40107446
1611 PR_PAC_APDAKEY = 0x4 1611 PPPIOCSASYNCMAP = 0x40047457
1612 PR_PAC_APDBKEY = 0x8 1612 PPPIOCSCOMPRESS = 0x4010744d
1613 PR_PAC_APGAKEY = 0x10 1613 PPPIOCSDEBUG = 0x40047440
1614 PR_PAC_APIAKEY = 0x1 1614 PPPIOCSFLAGS = 0x40047459
1615 PR_PAC_APIBKEY = 0x2 1615 PPPIOCSMAXCID = 0x40047451
1616 PR_PAC_RESET_KEYS = 0x36 1616 PPPIOCSMRRU = 0x4004743b
1617 PR_SET_CHILD_SUBREAPER = 0x24 1617 PPPIOCSMRU = 0x40047452
1618 PR_SET_DUMPABLE = 0x4 1618 PPPIOCSNPMODE = 0x4008744b
1619 PR_SET_ENDIAN = 0x14 1619 PPPIOCSPASS = 0x40107447
1620 PR_SET_FPEMU = 0xa 1620 PPPIOCSRASYNCMAP = 0x40047454
1621 PR_SET_FPEXC = 0xc 1621 PPPIOCSXASYNCMAP = 0x4020744f
1622 PR_SET_FP_MODE = 0x2d 1622 PPPIOCXFERUNIT = 0x744e
1623 PR_SET_KEEPCAPS = 0x8 1623 PRIO_PGRP = 0x1
1624 PR_SET_MM = 0x23 1624 PRIO_PROCESS = 0x0
1625 PR_SET_MM_ARG_END = 0x9 1625 PRIO_USER = 0x2
1626 PR_SET_MM_ARG_START = 0x8 1626 PROC_SUPER_MAGIC = 0x9fa0
1627 PR_SET_MM_AUXV = 0xc 1627 PROT_EXEC = 0x4
1628 PR_SET_MM_BRK = 0x7 1628 PROT_GROWSDOWN = 0x1000000
1629 PR_SET_MM_END_CODE = 0x2 1629 PROT_GROWSUP = 0x2000000
1630 PR_SET_MM_END_DATA = 0x4 1630 PROT_NONE = 0x0
1631 PR_SET_MM_ENV_END = 0xb 1631 PROT_READ = 0x1
1632 PR_SET_MM_ENV_START = 0xa 1632 PROT_WRITE = 0x2
1633 PR_SET_MM_EXE_FILE = 0xd 1633 PR_CAPBSET_DROP = 0x18
1634 PR_SET_MM_MAP = 0xe 1634 PR_CAPBSET_READ = 0x17
1635 PR_SET_MM_MAP_SIZE = 0xf 1635 PR_CAP_AMBIENT = 0x2f
1636 PR_SET_MM_START_BRK = 0x6 1636 PR_CAP_AMBIENT_CLEAR_ALL = 0x4
1637 PR_SET_MM_START_CODE = 0x1 1637 PR_CAP_AMBIENT_IS_SET = 0x1
1638 PR_SET_MM_START_DATA = 0x3 1638 PR_CAP_AMBIENT_LOWER = 0x3
1639 PR_SET_MM_START_STACK = 0x5 1639 PR_CAP_AMBIENT_RAISE = 0x2
1640 PR_SET_NAME = 0xf 1640 PR_ENDIAN_BIG = 0x0
1641 PR_SET_NO_NEW_PRIVS = 0x26 1641 PR_ENDIAN_LITTLE = 0x1
1642 PR_SET_PDEATHSIG = 0x1 1642 PR_ENDIAN_PPC_LITTLE = 0x2
1643 PR_SET_PTRACER = 0x59616d61 1643 PR_FPEMU_NOPRINT = 0x1
1644 PR_SET_PTRACER_ANY = 0xffffffffffffffff 1644 PR_FPEMU_SIGFPE = 0x2
1645 PR_SET_SECCOMP = 0x16 1645 PR_FP_EXC_ASYNC = 0x2
1646 PR_SET_SECUREBITS = 0x1c 1646 PR_FP_EXC_DISABLED = 0x0
1647 PR_SET_SPECULATION_CTRL = 0x35 1647 PR_FP_EXC_DIV = 0x10000
1648 PR_SET_THP_DISABLE = 0x29 1648 PR_FP_EXC_INV = 0x100000
1649 PR_SET_TIMERSLACK = 0x1d 1649 PR_FP_EXC_NONRECOV = 0x1
1650 PR_SET_TIMING = 0xe 1650 PR_FP_EXC_OVF = 0x20000
1651 PR_SET_TSC = 0x1a 1651 PR_FP_EXC_PRECISE = 0x3
1652 PR_SET_UNALIGN = 0x6 1652 PR_FP_EXC_RES = 0x80000
1653 PR_SPEC_DISABLE = 0x4 1653 PR_FP_EXC_SW_ENABLE = 0x80
1654 PR_SPEC_DISABLE_NOEXEC = 0x10 1654 PR_FP_EXC_UND = 0x40000
1655 PR_SPEC_ENABLE = 0x2 1655 PR_FP_MODE_FR = 0x1
1656 PR_SPEC_FORCE_DISABLE = 0x8 1656 PR_FP_MODE_FRE = 0x2
1657 PR_SPEC_INDIRECT_BRANCH = 0x1 1657 PR_GET_CHILD_SUBREAPER = 0x25
1658 PR_SPEC_NOT_AFFECTED = 0x0 1658 PR_GET_DUMPABLE = 0x3
1659 PR_SPEC_PRCTL = 0x1 1659 PR_GET_ENDIAN = 0x13
1660 PR_SPEC_STORE_BYPASS = 0x0 1660 PR_GET_FPEMU = 0x9
1661 PR_SVE_GET_VL = 0x33 1661 PR_GET_FPEXC = 0xb
1662 PR_SVE_SET_VL = 0x32 1662 PR_GET_FP_MODE = 0x2e
1663 PR_SVE_SET_VL_ONEXEC = 0x40000 1663 PR_GET_KEEPCAPS = 0x7
1664 PR_SVE_VL_INHERIT = 0x20000 1664 PR_GET_NAME = 0x10
1665 PR_SVE_VL_LEN_MASK = 0xffff 1665 PR_GET_NO_NEW_PRIVS = 0x27
1666 PR_TASK_PERF_EVENTS_DISABLE = 0x1f 1666 PR_GET_PDEATHSIG = 0x2
1667 PR_TASK_PERF_EVENTS_ENABLE = 0x20 1667 PR_GET_SECCOMP = 0x15
1668 PR_TIMING_STATISTICAL = 0x0 1668 PR_GET_SECUREBITS = 0x1b
1669 PR_TIMING_TIMESTAMP = 0x1 1669 PR_GET_SPECULATION_CTRL = 0x34
1670 PR_TSC_ENABLE = 0x1 1670 PR_GET_TAGGED_ADDR_CTRL = 0x38
1671 PR_TSC_SIGSEGV = 0x2 1671 PR_GET_THP_DISABLE = 0x2a
1672 PR_UNALIGN_NOPRINT = 0x1 1672 PR_GET_TID_ADDRESS = 0x28
1673 PR_UNALIGN_SIGBUS = 0x2 1673 PR_GET_TIMERSLACK = 0x1e
1674 PSTOREFS_MAGIC = 0x6165676c 1674 PR_GET_TIMING = 0xd
1675 PTRACE_ATTACH = 0x10 1675 PR_GET_TSC = 0x19
1676 PTRACE_CONT = 0x7 1676 PR_GET_UNALIGN = 0x5
1677 PTRACE_DETACH = 0x11 1677 PR_MCE_KILL = 0x21
1678 PTRACE_EVENT_CLONE = 0x3 1678 PR_MCE_KILL_CLEAR = 0x0
1679 PTRACE_EVENT_EXEC = 0x4 1679 PR_MCE_KILL_DEFAULT = 0x2
1680 PTRACE_EVENT_EXIT = 0x6 1680 PR_MCE_KILL_EARLY = 0x1
1681 PTRACE_EVENT_FORK = 0x1 1681 PR_MCE_KILL_GET = 0x22
1682 PTRACE_EVENT_SECCOMP = 0x7 1682 PR_MCE_KILL_LATE = 0x0
1683 PTRACE_EVENT_STOP = 0x80 1683 PR_MCE_KILL_SET = 0x1
1684 PTRACE_EVENT_VFORK = 0x2 1684 PR_MPX_DISABLE_MANAGEMENT = 0x2c
1685 PTRACE_EVENT_VFORK_DONE = 0x5 1685 PR_MPX_ENABLE_MANAGEMENT = 0x2b
1686 PTRACE_GETEVENTMSG = 0x4201 1686 PR_PAC_APDAKEY = 0x4
1687 PTRACE_GETREGS = 0xc 1687 PR_PAC_APDBKEY = 0x8
1688 PTRACE_GETREGSET = 0x4204 1688 PR_PAC_APGAKEY = 0x10
1689 PTRACE_GETSIGINFO = 0x4202 1689 PR_PAC_APIAKEY = 0x1
1690 PTRACE_GETSIGMASK = 0x420a 1690 PR_PAC_APIBKEY = 0x2
1691 PTRACE_INTERRUPT = 0x4207 1691 PR_PAC_RESET_KEYS = 0x36
1692 PTRACE_KILL = 0x8 1692 PR_SET_CHILD_SUBREAPER = 0x24
1693 PTRACE_LISTEN = 0x4208 1693 PR_SET_DUMPABLE = 0x4
1694 PTRACE_O_EXITKILL = 0x100000 1694 PR_SET_ENDIAN = 0x14
1695 PTRACE_O_MASK = 0x3000ff 1695 PR_SET_FPEMU = 0xa
1696 PTRACE_O_SUSPEND_SECCOMP = 0x200000 1696 PR_SET_FPEXC = 0xc
1697 PTRACE_O_TRACECLONE = 0x8 1697 PR_SET_FP_MODE = 0x2d
1698 PTRACE_O_TRACEEXEC = 0x10 1698 PR_SET_KEEPCAPS = 0x8
1699 PTRACE_O_TRACEEXIT = 0x40 1699 PR_SET_MM = 0x23
1700 PTRACE_O_TRACEFORK = 0x2 1700 PR_SET_MM_ARG_END = 0x9
1701 PTRACE_O_TRACESECCOMP = 0x80 1701 PR_SET_MM_ARG_START = 0x8
1702 PTRACE_O_TRACESYSGOOD = 0x1 1702 PR_SET_MM_AUXV = 0xc
1703 PTRACE_O_TRACEVFORK = 0x4 1703 PR_SET_MM_BRK = 0x7
1704 PTRACE_O_TRACEVFORKDONE = 0x20 1704 PR_SET_MM_END_CODE = 0x2
1705 PTRACE_PEEKDATA = 0x2 1705 PR_SET_MM_END_DATA = 0x4
1706 PTRACE_PEEKSIGINFO = 0x4209 1706 PR_SET_MM_ENV_END = 0xb
1707 PTRACE_PEEKSIGINFO_SHARED = 0x1 1707 PR_SET_MM_ENV_START = 0xa
1708 PTRACE_PEEKTEXT = 0x1 1708 PR_SET_MM_EXE_FILE = 0xd
1709 PTRACE_PEEKUSR = 0x3 1709 PR_SET_MM_MAP = 0xe
1710 PTRACE_POKEDATA = 0x5 1710 PR_SET_MM_MAP_SIZE = 0xf
1711 PTRACE_POKETEXT = 0x4 1711 PR_SET_MM_START_BRK = 0x6
1712 PTRACE_POKEUSR = 0x6 1712 PR_SET_MM_START_CODE = 0x1
1713 PTRACE_SECCOMP_GET_FILTER = 0x420c 1713 PR_SET_MM_START_DATA = 0x3
1714 PTRACE_SECCOMP_GET_METADATA = 0x420d 1714 PR_SET_MM_START_STACK = 0x5
1715 PTRACE_SEIZE = 0x4206 1715 PR_SET_NAME = 0xf
1716 PTRACE_SETOPTIONS = 0x4200 1716 PR_SET_NO_NEW_PRIVS = 0x26
1717 PTRACE_SETREGS = 0xd 1717 PR_SET_PDEATHSIG = 0x1
1718 PTRACE_SETREGSET = 0x4205 1718 PR_SET_PTRACER = 0x59616d61
1719 PTRACE_SETSIGINFO = 0x4203 1719 PR_SET_PTRACER_ANY = 0xffffffffffffffff
1720 PTRACE_SETSIGMASK = 0x420b 1720 PR_SET_SECCOMP = 0x16
1721 PTRACE_SINGLESTEP = 0x9 1721 PR_SET_SECUREBITS = 0x1c
1722 PTRACE_SYSCALL = 0x18 1722 PR_SET_SPECULATION_CTRL = 0x35
1723 PTRACE_TRACEME = 0x0 1723 PR_SET_TAGGED_ADDR_CTRL = 0x37
1724 QNX4_SUPER_MAGIC = 0x2f 1724 PR_SET_THP_DISABLE = 0x29
1725 QNX6_SUPER_MAGIC = 0x68191122 1725 PR_SET_TIMERSLACK = 0x1d
1726 RAMFS_MAGIC = 0x858458f6 1726 PR_SET_TIMING = 0xe
1727 RDTGROUP_SUPER_MAGIC = 0x7655821 1727 PR_SET_TSC = 0x1a
1728 REISERFS_SUPER_MAGIC = 0x52654973 1728 PR_SET_UNALIGN = 0x6
1729 RENAME_EXCHANGE = 0x2 1729 PR_SPEC_DISABLE = 0x4
1730 RENAME_NOREPLACE = 0x1 1730 PR_SPEC_DISABLE_NOEXEC = 0x10
1731 RENAME_WHITEOUT = 0x4 1731 PR_SPEC_ENABLE = 0x2
1732 RLIMIT_AS = 0x9 1732 PR_SPEC_FORCE_DISABLE = 0x8
1733 RLIMIT_CORE = 0x4 1733 PR_SPEC_INDIRECT_BRANCH = 0x1
1734 RLIMIT_CPU = 0x0 1734 PR_SPEC_NOT_AFFECTED = 0x0
1735 RLIMIT_DATA = 0x2 1735 PR_SPEC_PRCTL = 0x1
1736 RLIMIT_FSIZE = 0x1 1736 PR_SPEC_STORE_BYPASS = 0x0
1737 RLIMIT_LOCKS = 0xa 1737 PR_SVE_GET_VL = 0x33
1738 RLIMIT_MEMLOCK = 0x8 1738 PR_SVE_SET_VL = 0x32
1739 RLIMIT_MSGQUEUE = 0xc 1739 PR_SVE_SET_VL_ONEXEC = 0x40000
1740 RLIMIT_NICE = 0xd 1740 PR_SVE_VL_INHERIT = 0x20000
1741 RLIMIT_NOFILE = 0x7 1741 PR_SVE_VL_LEN_MASK = 0xffff
1742 RLIMIT_NPROC = 0x6 1742 PR_TAGGED_ADDR_ENABLE = 0x1
1743 RLIMIT_RSS = 0x5 1743 PR_TASK_PERF_EVENTS_DISABLE = 0x1f
1744 RLIMIT_RTPRIO = 0xe 1744 PR_TASK_PERF_EVENTS_ENABLE = 0x20
1745 RLIMIT_RTTIME = 0xf 1745 PR_TIMING_STATISTICAL = 0x0
1746 RLIMIT_SIGPENDING = 0xb 1746 PR_TIMING_TIMESTAMP = 0x1
1747 RLIMIT_STACK = 0x3 1747 PR_TSC_ENABLE = 0x1
1748 RLIM_INFINITY = 0xffffffffffffffff 1748 PR_TSC_SIGSEGV = 0x2
1749 RNDADDENTROPY = 0x40085203 1749 PR_UNALIGN_NOPRINT = 0x1
1750 RNDADDTOENTCNT = 0x40045201 1750 PR_UNALIGN_SIGBUS = 0x2
1751 RNDCLEARPOOL = 0x5206 1751 PSTOREFS_MAGIC = 0x6165676c
1752 RNDGETENTCNT = 0x80045200 1752 PTRACE_ATTACH = 0x10
1753 RNDGETPOOL = 0x80085202 1753 PTRACE_CONT = 0x7
1754 RNDRESEEDCRNG = 0x5207 1754 PTRACE_DETACH = 0x11
1755 RNDZAPENTCNT = 0x5204 1755 PTRACE_EVENTMSG_SYSCALL_ENTRY = 0x1
1756 RTAX_ADVMSS = 0x8 1756 PTRACE_EVENTMSG_SYSCALL_EXIT = 0x2
1757 RTAX_CC_ALGO = 0x10 1757 PTRACE_EVENT_CLONE = 0x3
1758 RTAX_CWND = 0x7 1758 PTRACE_EVENT_EXEC = 0x4
1759 RTAX_FASTOPEN_NO_COOKIE = 0x11 1759 PTRACE_EVENT_EXIT = 0x6
1760 RTAX_FEATURES = 0xc 1760 PTRACE_EVENT_FORK = 0x1
1761 RTAX_FEATURE_ALLFRAG = 0x8 1761 PTRACE_EVENT_SECCOMP = 0x7
1762 RTAX_FEATURE_ECN = 0x1 1762 PTRACE_EVENT_STOP = 0x80
1763 RTAX_FEATURE_MASK = 0xf 1763 PTRACE_EVENT_VFORK = 0x2
1764 RTAX_FEATURE_SACK = 0x2 1764 PTRACE_EVENT_VFORK_DONE = 0x5
1765 RTAX_FEATURE_TIMESTAMP = 0x4 1765 PTRACE_GETEVENTMSG = 0x4201
1766 RTAX_HOPLIMIT = 0xa 1766 PTRACE_GETREGS = 0xc
1767 RTAX_INITCWND = 0xb 1767 PTRACE_GETREGSET = 0x4204
1768 RTAX_INITRWND = 0xe 1768 PTRACE_GETSIGINFO = 0x4202
1769 RTAX_LOCK = 0x1 1769 PTRACE_GETSIGMASK = 0x420a
1770 RTAX_MAX = 0x11 1770 PTRACE_GET_SYSCALL_INFO = 0x420e
1771 RTAX_MTU = 0x2 1771 PTRACE_INTERRUPT = 0x4207
1772 RTAX_QUICKACK = 0xf 1772 PTRACE_KILL = 0x8
1773 RTAX_REORDERING = 0x9 1773 PTRACE_LISTEN = 0x4208
1774 RTAX_RTO_MIN = 0xd 1774 PTRACE_O_EXITKILL = 0x100000
1775 RTAX_RTT = 0x4 1775 PTRACE_O_MASK = 0x3000ff
1776 RTAX_RTTVAR = 0x5 1776 PTRACE_O_SUSPEND_SECCOMP = 0x200000
1777 RTAX_SSTHRESH = 0x6 1777 PTRACE_O_TRACECLONE = 0x8
1778 RTAX_UNSPEC = 0x0 1778 PTRACE_O_TRACEEXEC = 0x10
1779 RTAX_WINDOW = 0x3 1779 PTRACE_O_TRACEEXIT = 0x40
1780 RTA_ALIGNTO = 0x4 1780 PTRACE_O_TRACEFORK = 0x2
1781 RTA_MAX = 0x1d 1781 PTRACE_O_TRACESECCOMP = 0x80
1782 RTCF_DIRECTSRC = 0x4000000 1782 PTRACE_O_TRACESYSGOOD = 0x1
1783 RTCF_DOREDIRECT = 0x1000000 1783 PTRACE_O_TRACEVFORK = 0x4
1784 RTCF_LOG = 0x2000000 1784 PTRACE_O_TRACEVFORKDONE = 0x20
1785 RTCF_MASQ = 0x400000 1785 PTRACE_PEEKDATA = 0x2
1786 RTCF_NAT = 0x800000 1786 PTRACE_PEEKSIGINFO = 0x4209
1787 RTCF_VALVE = 0x200000 1787 PTRACE_PEEKSIGINFO_SHARED = 0x1
1788 RTC_AF = 0x20 1788 PTRACE_PEEKTEXT = 0x1
1789 RTC_AIE_OFF = 0x7002 1789 PTRACE_PEEKUSR = 0x3
1790 RTC_AIE_ON = 0x7001 1790 PTRACE_POKEDATA = 0x5
1791 RTC_ALM_READ = 0x80247008 1791 PTRACE_POKETEXT = 0x4
1792 RTC_ALM_SET = 0x40247007 1792 PTRACE_POKEUSR = 0x6
1793 RTC_EPOCH_READ = 0x8008700d 1793 PTRACE_SECCOMP_GET_FILTER = 0x420c
1794 RTC_EPOCH_SET = 0x4008700e 1794 PTRACE_SECCOMP_GET_METADATA = 0x420d
1795 RTC_IRQF = 0x80 1795 PTRACE_SEIZE = 0x4206
1796 RTC_IRQP_READ = 0x8008700b 1796 PTRACE_SETOPTIONS = 0x4200
1797 RTC_IRQP_SET = 0x4008700c 1797 PTRACE_SETREGS = 0xd
1798 RTC_MAX_FREQ = 0x2000 1798 PTRACE_SETREGSET = 0x4205
1799 RTC_PF = 0x40 1799 PTRACE_SETSIGINFO = 0x4203
1800 RTC_PIE_OFF = 0x7006 1800 PTRACE_SETSIGMASK = 0x420b
1801 RTC_PIE_ON = 0x7005 1801 PTRACE_SINGLESTEP = 0x9
1802 RTC_PLL_GET = 0x80207011 1802 PTRACE_SYSCALL = 0x18
1803 RTC_PLL_SET = 0x40207012 1803 PTRACE_SYSCALL_INFO_ENTRY = 0x1
1804 RTC_RD_TIME = 0x80247009 1804 PTRACE_SYSCALL_INFO_EXIT = 0x2
1805 RTC_SET_TIME = 0x4024700a 1805 PTRACE_SYSCALL_INFO_NONE = 0x0
1806 RTC_UF = 0x10 1806 PTRACE_SYSCALL_INFO_SECCOMP = 0x3
1807 RTC_UIE_OFF = 0x7004 1807 PTRACE_TRACEME = 0x0
1808 RTC_UIE_ON = 0x7003 1808 QNX4_SUPER_MAGIC = 0x2f
1809 RTC_VL_CLR = 0x7014 1809 QNX6_SUPER_MAGIC = 0x68191122
1810 RTC_VL_READ = 0x80047013 1810 RAMFS_MAGIC = 0x858458f6
1811 RTC_WIE_OFF = 0x7010 1811 RDTGROUP_SUPER_MAGIC = 0x7655821
1812 RTC_WIE_ON = 0x700f 1812 REISERFS_SUPER_MAGIC = 0x52654973
1813 RTC_WKALM_RD = 0x80287010 1813 RENAME_EXCHANGE = 0x2
1814 RTC_WKALM_SET = 0x4028700f 1814 RENAME_NOREPLACE = 0x1
1815 RTF_ADDRCLASSMASK = 0xf8000000 1815 RENAME_WHITEOUT = 0x4
1816 RTF_ADDRCONF = 0x40000 1816 RLIMIT_AS = 0x9
1817 RTF_ALLONLINK = 0x20000 1817 RLIMIT_CORE = 0x4
1818 RTF_BROADCAST = 0x10000000 1818 RLIMIT_CPU = 0x0
1819 RTF_CACHE = 0x1000000 1819 RLIMIT_DATA = 0x2
1820 RTF_DEFAULT = 0x10000 1820 RLIMIT_FSIZE = 0x1
1821 RTF_DYNAMIC = 0x10 1821 RLIMIT_LOCKS = 0xa
1822 RTF_FLOW = 0x2000000 1822 RLIMIT_MEMLOCK = 0x8
1823 RTF_GATEWAY = 0x2 1823 RLIMIT_MSGQUEUE = 0xc
1824 RTF_HOST = 0x4 1824 RLIMIT_NICE = 0xd
1825 RTF_INTERFACE = 0x40000000 1825 RLIMIT_NOFILE = 0x7
1826 RTF_IRTT = 0x100 1826 RLIMIT_NPROC = 0x6
1827 RTF_LINKRT = 0x100000 1827 RLIMIT_RSS = 0x5
1828 RTF_LOCAL = 0x80000000 1828 RLIMIT_RTPRIO = 0xe
1829 RTF_MODIFIED = 0x20 1829 RLIMIT_RTTIME = 0xf
1830 RTF_MSS = 0x40 1830 RLIMIT_SIGPENDING = 0xb
1831 RTF_MTU = 0x40 1831 RLIMIT_STACK = 0x3
1832 RTF_MULTICAST = 0x20000000 1832 RLIM_INFINITY = 0xffffffffffffffff
1833 RTF_NAT = 0x8000000 1833 RNDADDENTROPY = 0x40085203
1834 RTF_NOFORWARD = 0x1000 1834 RNDADDTOENTCNT = 0x40045201
1835 RTF_NONEXTHOP = 0x200000 1835 RNDCLEARPOOL = 0x5206
1836 RTF_NOPMTUDISC = 0x4000 1836 RNDGETENTCNT = 0x80045200
1837 RTF_POLICY = 0x4000000 1837 RNDGETPOOL = 0x80085202
1838 RTF_REINSTATE = 0x8 1838 RNDRESEEDCRNG = 0x5207
1839 RTF_REJECT = 0x200 1839 RNDZAPENTCNT = 0x5204
1840 RTF_STATIC = 0x400 1840 RTAX_ADVMSS = 0x8
1841 RTF_THROW = 0x2000 1841 RTAX_CC_ALGO = 0x10
1842 RTF_UP = 0x1 1842 RTAX_CWND = 0x7
1843 RTF_WINDOW = 0x80 1843 RTAX_FASTOPEN_NO_COOKIE = 0x11
1844 RTF_XRESOLVE = 0x800 1844 RTAX_FEATURES = 0xc
1845 RTM_BASE = 0x10 1845 RTAX_FEATURE_ALLFRAG = 0x8
1846 RTM_DELACTION = 0x31 1846 RTAX_FEATURE_ECN = 0x1
1847 RTM_DELADDR = 0x15 1847 RTAX_FEATURE_MASK = 0xf
1848 RTM_DELADDRLABEL = 0x49 1848 RTAX_FEATURE_SACK = 0x2
1849 RTM_DELCHAIN = 0x65 1849 RTAX_FEATURE_TIMESTAMP = 0x4
1850 RTM_DELLINK = 0x11 1850 RTAX_HOPLIMIT = 0xa
1851 RTM_DELMDB = 0x55 1851 RTAX_INITCWND = 0xb
1852 RTM_DELNEIGH = 0x1d 1852 RTAX_INITRWND = 0xe
1853 RTM_DELNETCONF = 0x51 1853 RTAX_LOCK = 0x1
1854 RTM_DELNSID = 0x59 1854 RTAX_MAX = 0x11
1855 RTM_DELQDISC = 0x25 1855 RTAX_MTU = 0x2
1856 RTM_DELROUTE = 0x19 1856 RTAX_QUICKACK = 0xf
1857 RTM_DELRULE = 0x21 1857 RTAX_REORDERING = 0x9
1858 RTM_DELTCLASS = 0x29 1858 RTAX_RTO_MIN = 0xd
1859 RTM_DELTFILTER = 0x2d 1859 RTAX_RTT = 0x4
1860 RTM_F_CLONED = 0x200 1860 RTAX_RTTVAR = 0x5
1861 RTM_F_EQUALIZE = 0x400 1861 RTAX_SSTHRESH = 0x6
1862 RTM_F_FIB_MATCH = 0x2000 1862 RTAX_UNSPEC = 0x0
1863 RTM_F_LOOKUP_TABLE = 0x1000 1863 RTAX_WINDOW = 0x3
1864 RTM_F_NOTIFY = 0x100 1864 RTA_ALIGNTO = 0x4
1865 RTM_F_PREFIX = 0x800 1865 RTA_MAX = 0x1e
1866 RTM_GETACTION = 0x32 1866 RTCF_DIRECTSRC = 0x4000000
1867 RTM_GETADDR = 0x16 1867 RTCF_DOREDIRECT = 0x1000000
1868 RTM_GETADDRLABEL = 0x4a 1868 RTCF_LOG = 0x2000000
1869 RTM_GETANYCAST = 0x3e 1869 RTCF_MASQ = 0x400000
1870 RTM_GETCHAIN = 0x66 1870 RTCF_NAT = 0x800000
1871 RTM_GETDCB = 0x4e 1871 RTCF_VALVE = 0x200000
1872 RTM_GETLINK = 0x12 1872 RTC_AF = 0x20
1873 RTM_GETMDB = 0x56 1873 RTC_AIE_OFF = 0x7002
1874 RTM_GETMULTICAST = 0x3a 1874 RTC_AIE_ON = 0x7001
1875 RTM_GETNEIGH = 0x1e 1875 RTC_ALM_READ = 0x80247008
1876 RTM_GETNEIGHTBL = 0x42 1876 RTC_ALM_SET = 0x40247007
1877 RTM_GETNETCONF = 0x52 1877 RTC_EPOCH_READ = 0x8008700d
1878 RTM_GETNSID = 0x5a 1878 RTC_EPOCH_SET = 0x4008700e
1879 RTM_GETQDISC = 0x26 1879 RTC_IRQF = 0x80
1880 RTM_GETROUTE = 0x1a 1880 RTC_IRQP_READ = 0x8008700b
1881 RTM_GETRULE = 0x22 1881 RTC_IRQP_SET = 0x4008700c
1882 RTM_GETSTATS = 0x5e 1882 RTC_MAX_FREQ = 0x2000
1883 RTM_GETTCLASS = 0x2a 1883 RTC_PF = 0x40
1884 RTM_GETTFILTER = 0x2e 1884 RTC_PIE_OFF = 0x7006
1885 RTM_MAX = 0x67 1885 RTC_PIE_ON = 0x7005
1886 RTM_NEWACTION = 0x30 1886 RTC_PLL_GET = 0x80207011
1887 RTM_NEWADDR = 0x14 1887 RTC_PLL_SET = 0x40207012
1888 RTM_NEWADDRLABEL = 0x48 1888 RTC_RD_TIME = 0x80247009
1889 RTM_NEWCACHEREPORT = 0x60 1889 RTC_SET_TIME = 0x4024700a
1890 RTM_NEWCHAIN = 0x64 1890 RTC_UF = 0x10
1891 RTM_NEWLINK = 0x10 1891 RTC_UIE_OFF = 0x7004
1892 RTM_NEWMDB = 0x54 1892 RTC_UIE_ON = 0x7003
1893 RTM_NEWNDUSEROPT = 0x44 1893 RTC_VL_CLR = 0x7014
1894 RTM_NEWNEIGH = 0x1c 1894 RTC_VL_READ = 0x80047013
1895 RTM_NEWNEIGHTBL = 0x40 1895 RTC_WIE_OFF = 0x7010
1896 RTM_NEWNETCONF = 0x50 1896 RTC_WIE_ON = 0x700f
1897 RTM_NEWNSID = 0x58 1897 RTC_WKALM_RD = 0x80287010
1898 RTM_NEWPREFIX = 0x34 1898 RTC_WKALM_SET = 0x4028700f
1899 RTM_NEWQDISC = 0x24 1899 RTF_ADDRCLASSMASK = 0xf8000000
1900 RTM_NEWROUTE = 0x18 1900 RTF_ADDRCONF = 0x40000
1901 RTM_NEWRULE = 0x20 1901 RTF_ALLONLINK = 0x20000
1902 RTM_NEWSTATS = 0x5c 1902 RTF_BROADCAST = 0x10000000
1903 RTM_NEWTCLASS = 0x28 1903 RTF_CACHE = 0x1000000
1904 RTM_NEWTFILTER = 0x2c 1904 RTF_DEFAULT = 0x10000
1905 RTM_NR_FAMILIES = 0x16 1905 RTF_DYNAMIC = 0x10
1906 RTM_NR_MSGTYPES = 0x58 1906 RTF_FLOW = 0x2000000
1907 RTM_SETDCB = 0x4f 1907 RTF_GATEWAY = 0x2
1908 RTM_SETLINK = 0x13 1908 RTF_HOST = 0x4
1909 RTM_SETNEIGHTBL = 0x43 1909 RTF_INTERFACE = 0x40000000
1910 RTNH_ALIGNTO = 0x4 1910 RTF_IRTT = 0x100
1911 RTNH_COMPARE_MASK = 0x19 1911 RTF_LINKRT = 0x100000
1912 RTNH_F_DEAD = 0x1 1912 RTF_LOCAL = 0x80000000
1913 RTNH_F_LINKDOWN = 0x10 1913 RTF_MODIFIED = 0x20
1914 RTNH_F_OFFLOAD = 0x8 1914 RTF_MSS = 0x40
1915 RTNH_F_ONLINK = 0x4 1915 RTF_MTU = 0x40
1916 RTNH_F_PERVASIVE = 0x2 1916 RTF_MULTICAST = 0x20000000
1917 RTNH_F_UNRESOLVED = 0x20 1917 RTF_NAT = 0x8000000
1918 RTN_MAX = 0xb 1918 RTF_NOFORWARD = 0x1000
1919 RTPROT_BABEL = 0x2a 1919 RTF_NONEXTHOP = 0x200000
1920 RTPROT_BGP = 0xba 1920 RTF_NOPMTUDISC = 0x4000
1921 RTPROT_BIRD = 0xc 1921 RTF_POLICY = 0x4000000
1922 RTPROT_BOOT = 0x3 1922 RTF_REINSTATE = 0x8
1923 RTPROT_DHCP = 0x10 1923 RTF_REJECT = 0x200
1924 RTPROT_DNROUTED = 0xd 1924 RTF_STATIC = 0x400
1925 RTPROT_EIGRP = 0xc0 1925 RTF_THROW = 0x2000
1926 RTPROT_GATED = 0x8 1926 RTF_UP = 0x1
1927 RTPROT_ISIS = 0xbb 1927 RTF_WINDOW = 0x80
1928 RTPROT_KERNEL = 0x2 1928 RTF_XRESOLVE = 0x800
1929 RTPROT_MROUTED = 0x11 1929 RTMGRP_DECnet_IFADDR = 0x1000
1930 RTPROT_MRT = 0xa 1930 RTMGRP_DECnet_ROUTE = 0x4000
1931 RTPROT_NTK = 0xf 1931 RTMGRP_IPV4_IFADDR = 0x10
1932 RTPROT_OSPF = 0xbc 1932 RTMGRP_IPV4_MROUTE = 0x20
1933 RTPROT_RA = 0x9 1933 RTMGRP_IPV4_ROUTE = 0x40
1934 RTPROT_REDIRECT = 0x1 1934 RTMGRP_IPV4_RULE = 0x80
1935 RTPROT_RIP = 0xbd 1935 RTMGRP_IPV6_IFADDR = 0x100
1936 RTPROT_STATIC = 0x4 1936 RTMGRP_IPV6_IFINFO = 0x800
1937 RTPROT_UNSPEC = 0x0 1937 RTMGRP_IPV6_MROUTE = 0x200
1938 RTPROT_XORP = 0xe 1938 RTMGRP_IPV6_PREFIX = 0x20000
1939 RTPROT_ZEBRA = 0xb 1939 RTMGRP_IPV6_ROUTE = 0x400
1940 RT_CLASS_DEFAULT = 0xfd 1940 RTMGRP_LINK = 0x1
1941 RT_CLASS_LOCAL = 0xff 1941 RTMGRP_NEIGH = 0x4
1942 RT_CLASS_MAIN = 0xfe 1942 RTMGRP_NOTIFY = 0x2
1943 RT_CLASS_MAX = 0xff 1943 RTMGRP_TC = 0x8
1944 RT_CLASS_UNSPEC = 0x0 1944 RTM_BASE = 0x10
1945 RUSAGE_CHILDREN = -0x1 1945 RTM_DELACTION = 0x31
1946 RUSAGE_SELF = 0x0 1946 RTM_DELADDR = 0x15
1947 RUSAGE_THREAD = 0x1 1947 RTM_DELADDRLABEL = 0x49
1948 SCM_CREDENTIALS = 0x2 1948 RTM_DELCHAIN = 0x65
1949 SCM_RIGHTS = 0x1 1949 RTM_DELLINK = 0x11
1950 SCM_TIMESTAMP = 0x1d 1950 RTM_DELLINKPROP = 0x6d
1951 SCM_TIMESTAMPING = 0x25 1951 RTM_DELMDB = 0x55
1952 SCM_TIMESTAMPING_OPT_STATS = 0x36 1952 RTM_DELNEIGH = 0x1d
1953 SCM_TIMESTAMPING_PKTINFO = 0x3a 1953 RTM_DELNETCONF = 0x51
1954 SCM_TIMESTAMPNS = 0x23 1954 RTM_DELNEXTHOP = 0x69
1955 SCM_TXTIME = 0x3d 1955 RTM_DELNSID = 0x59
1956 SCM_WIFI_STATUS = 0x29 1956 RTM_DELQDISC = 0x25
1957 SC_LOG_FLUSH = 0x100000 1957 RTM_DELROUTE = 0x19
1958 SECCOMP_MODE_DISABLED = 0x0 1958 RTM_DELRULE = 0x21
1959 SECCOMP_MODE_FILTER = 0x2 1959 RTM_DELTCLASS = 0x29
1960 SECCOMP_MODE_STRICT = 0x1 1960 RTM_DELTFILTER = 0x2d
1961 SECURITYFS_MAGIC = 0x73636673 1961 RTM_F_CLONED = 0x200
1962 SELINUX_MAGIC = 0xf97cff8c 1962 RTM_F_EQUALIZE = 0x400
1963 SFD_CLOEXEC = 0x80000 1963 RTM_F_FIB_MATCH = 0x2000
1964 SFD_NONBLOCK = 0x800 1964 RTM_F_LOOKUP_TABLE = 0x1000
1965 SHUT_RD = 0x0 1965 RTM_F_NOTIFY = 0x100
1966 SHUT_RDWR = 0x2 1966 RTM_F_PREFIX = 0x800
1967 SHUT_WR = 0x1 1967 RTM_GETACTION = 0x32
1968 SIOCADDDLCI = 0x8980 1968 RTM_GETADDR = 0x16
1969 SIOCADDMULTI = 0x8931 1969 RTM_GETADDRLABEL = 0x4a
1970 SIOCADDRT = 0x890b 1970 RTM_GETANYCAST = 0x3e
1971 SIOCATMARK = 0x8905 1971 RTM_GETCHAIN = 0x66
1972 SIOCBONDCHANGEACTIVE = 0x8995 1972 RTM_GETDCB = 0x4e
1973 SIOCBONDENSLAVE = 0x8990 1973 RTM_GETLINK = 0x12
1974 SIOCBONDINFOQUERY = 0x8994 1974 RTM_GETLINKPROP = 0x6e
1975 SIOCBONDRELEASE = 0x8991 1975 RTM_GETMDB = 0x56
1976 SIOCBONDSETHWADDR = 0x8992 1976 RTM_GETMULTICAST = 0x3a
1977 SIOCBONDSLAVEINFOQUERY = 0x8993 1977 RTM_GETNEIGH = 0x1e
1978 SIOCBRADDBR = 0x89a0 1978 RTM_GETNEIGHTBL = 0x42
1979 SIOCBRADDIF = 0x89a2 1979 RTM_GETNETCONF = 0x52
1980 SIOCBRDELBR = 0x89a1 1980 RTM_GETNEXTHOP = 0x6a
1981 SIOCBRDELIF = 0x89a3 1981 RTM_GETNSID = 0x5a
1982 SIOCDARP = 0x8953 1982 RTM_GETQDISC = 0x26
1983 SIOCDELDLCI = 0x8981 1983 RTM_GETROUTE = 0x1a
1984 SIOCDELMULTI = 0x8932 1984 RTM_GETRULE = 0x22
1985 SIOCDELRT = 0x890c 1985 RTM_GETSTATS = 0x5e
1986 SIOCDEVPRIVATE = 0x89f0 1986 RTM_GETTCLASS = 0x2a
1987 SIOCDIFADDR = 0x8936 1987 RTM_GETTFILTER = 0x2e
1988 SIOCDRARP = 0x8960 1988 RTM_MAX = 0x6f
1989 SIOCETHTOOL = 0x8946 1989 RTM_NEWACTION = 0x30
1990 SIOCGARP = 0x8954 1990 RTM_NEWADDR = 0x14
1991 SIOCGHWTSTAMP = 0x89b1 1991 RTM_NEWADDRLABEL = 0x48
1992 SIOCGIFADDR = 0x8915 1992 RTM_NEWCACHEREPORT = 0x60
1993 SIOCGIFBR = 0x8940 1993 RTM_NEWCHAIN = 0x64
1994 SIOCGIFBRDADDR = 0x8919 1994 RTM_NEWLINK = 0x10
1995 SIOCGIFCONF = 0x8912 1995 RTM_NEWLINKPROP = 0x6c
1996 SIOCGIFCOUNT = 0x8938 1996 RTM_NEWMDB = 0x54
1997 SIOCGIFDSTADDR = 0x8917 1997 RTM_NEWNDUSEROPT = 0x44
1998 SIOCGIFENCAP = 0x8925 1998 RTM_NEWNEIGH = 0x1c
1999 SIOCGIFFLAGS = 0x8913 1999 RTM_NEWNEIGHTBL = 0x40
2000 SIOCGIFHWADDR = 0x8927 2000 RTM_NEWNETCONF = 0x50
2001 SIOCGIFINDEX = 0x8933 2001 RTM_NEWNEXTHOP = 0x68
2002 SIOCGIFMAP = 0x8970 2002 RTM_NEWNSID = 0x58
2003 SIOCGIFMEM = 0x891f 2003 RTM_NEWPREFIX = 0x34
2004 SIOCGIFMETRIC = 0x891d 2004 RTM_NEWQDISC = 0x24
2005 SIOCGIFMTU = 0x8921 2005 RTM_NEWROUTE = 0x18
2006 SIOCGIFNAME = 0x8910 2006 RTM_NEWRULE = 0x20
2007 SIOCGIFNETMASK = 0x891b 2007 RTM_NEWSTATS = 0x5c
2008 SIOCGIFPFLAGS = 0x8935 2008 RTM_NEWTCLASS = 0x28
2009 SIOCGIFSLAVE = 0x8929 2009 RTM_NEWTFILTER = 0x2c
2010 SIOCGIFTXQLEN = 0x8942 2010 RTM_NR_FAMILIES = 0x18
2011 SIOCGIFVLAN = 0x8982 2011 RTM_NR_MSGTYPES = 0x60
2012 SIOCGMIIPHY = 0x8947 2012 RTM_SETDCB = 0x4f
2013 SIOCGMIIREG = 0x8948 2013 RTM_SETLINK = 0x13
2014 SIOCGPGRP = 0x8904 2014 RTM_SETNEIGHTBL = 0x43
2015 SIOCGPPPCSTATS = 0x89f2 2015 RTNH_ALIGNTO = 0x4
2016 SIOCGPPPSTATS = 0x89f0 2016 RTNH_COMPARE_MASK = 0x19
2017 SIOCGPPPVER = 0x89f1 2017 RTNH_F_DEAD = 0x1
2018 SIOCGRARP = 0x8961 2018 RTNH_F_LINKDOWN = 0x10
2019 SIOCGSKNS = 0x894c 2019 RTNH_F_OFFLOAD = 0x8
2020 SIOCGSTAMP = 0x8906 2020 RTNH_F_ONLINK = 0x4
2021 SIOCGSTAMPNS = 0x8907 2021 RTNH_F_PERVASIVE = 0x2
2022 SIOCGSTAMPNS_NEW = 0x80108907 2022 RTNH_F_UNRESOLVED = 0x20
2023 SIOCGSTAMPNS_OLD = 0x8907 2023 RTN_MAX = 0xb
2024 SIOCGSTAMP_NEW = 0x80108906 2024 RTPROT_BABEL = 0x2a
2025 SIOCGSTAMP_OLD = 0x8906 2025 RTPROT_BGP = 0xba
2026 SIOCINQ = 0x541b 2026 RTPROT_BIRD = 0xc
2027 SIOCOUTQ = 0x5411 2027 RTPROT_BOOT = 0x3
2028 SIOCOUTQNSD = 0x894b 2028 RTPROT_DHCP = 0x10
2029 SIOCPROTOPRIVATE = 0x89e0 2029 RTPROT_DNROUTED = 0xd
2030 SIOCRTMSG = 0x890d 2030 RTPROT_EIGRP = 0xc0
2031 SIOCSARP = 0x8955 2031 RTPROT_GATED = 0x8
2032 SIOCSHWTSTAMP = 0x89b0 2032 RTPROT_ISIS = 0xbb
2033 SIOCSIFADDR = 0x8916 2033 RTPROT_KERNEL = 0x2
2034 SIOCSIFBR = 0x8941 2034 RTPROT_MROUTED = 0x11
2035 SIOCSIFBRDADDR = 0x891a 2035 RTPROT_MRT = 0xa
2036 SIOCSIFDSTADDR = 0x8918 2036 RTPROT_NTK = 0xf
2037 SIOCSIFENCAP = 0x8926 2037 RTPROT_OSPF = 0xbc
2038 SIOCSIFFLAGS = 0x8914 2038 RTPROT_RA = 0x9
2039 SIOCSIFHWADDR = 0x8924 2039 RTPROT_REDIRECT = 0x1
2040 SIOCSIFHWBROADCAST = 0x8937 2040 RTPROT_RIP = 0xbd
2041 SIOCSIFLINK = 0x8911 2041 RTPROT_STATIC = 0x4
2042 SIOCSIFMAP = 0x8971 2042 RTPROT_UNSPEC = 0x0
2043 SIOCSIFMEM = 0x8920 2043 RTPROT_XORP = 0xe
2044 SIOCSIFMETRIC = 0x891e 2044 RTPROT_ZEBRA = 0xb
2045 SIOCSIFMTU = 0x8922 2045 RT_CLASS_DEFAULT = 0xfd
2046 SIOCSIFNAME = 0x8923 2046 RT_CLASS_LOCAL = 0xff
2047 SIOCSIFNETMASK = 0x891c 2047 RT_CLASS_MAIN = 0xfe
2048 SIOCSIFPFLAGS = 0x8934 2048 RT_CLASS_MAX = 0xff
2049 SIOCSIFSLAVE = 0x8930 2049 RT_CLASS_UNSPEC = 0x0
2050 SIOCSIFTXQLEN = 0x8943 2050 RUSAGE_CHILDREN = -0x1
2051 SIOCSIFVLAN = 0x8983 2051 RUSAGE_SELF = 0x0
2052 SIOCSMIIREG = 0x8949 2052 RUSAGE_THREAD = 0x1
2053 SIOCSPGRP = 0x8902 2053 RWF_APPEND = 0x10
2054 SIOCSRARP = 0x8962 2054 RWF_DSYNC = 0x2
2055 SIOCWANDEV = 0x894a 2055 RWF_HIPRI = 0x1
2056 SMACK_MAGIC = 0x43415d53 2056 RWF_NOWAIT = 0x8
2057 SMART_AUTOSAVE = 0xd2 2057 RWF_SUPPORTED = 0x1f
2058 SMART_AUTO_OFFLINE = 0xdb 2058 RWF_SYNC = 0x4
2059 SMART_DISABLE = 0xd9 2059 RWF_WRITE_LIFE_NOT_SET = 0x0
2060 SMART_ENABLE = 0xd8 2060 SCM_CREDENTIALS = 0x2
2061 SMART_HCYL_PASS = 0xc2 2061 SCM_RIGHTS = 0x1
2062 SMART_IMMEDIATE_OFFLINE = 0xd4 2062 SCM_TIMESTAMP = 0x1d
2063 SMART_LCYL_PASS = 0x4f 2063 SCM_TIMESTAMPING = 0x25
2064 SMART_READ_LOG_SECTOR = 0xd5 2064 SCM_TIMESTAMPING_OPT_STATS = 0x36
2065 SMART_READ_THRESHOLDS = 0xd1 2065 SCM_TIMESTAMPING_PKTINFO = 0x3a
2066 SMART_READ_VALUES = 0xd0 2066 SCM_TIMESTAMPNS = 0x23
2067 SMART_SAVE = 0xd3 2067 SCM_TXTIME = 0x3d
2068 SMART_STATUS = 0xda 2068 SCM_WIFI_STATUS = 0x29
2069 SMART_WRITE_LOG_SECTOR = 0xd6 2069 SC_LOG_FLUSH = 0x100000
2070 SMART_WRITE_THRESHOLDS = 0xd7 2070 SECCOMP_MODE_DISABLED = 0x0
2071 SMB_SUPER_MAGIC = 0x517b 2071 SECCOMP_MODE_FILTER = 0x2
2072 SOCKFS_MAGIC = 0x534f434b 2072 SECCOMP_MODE_STRICT = 0x1
2073 SOCK_CLOEXEC = 0x80000 2073 SECURITYFS_MAGIC = 0x73636673
2074 SOCK_DCCP = 0x6 2074 SELINUX_MAGIC = 0xf97cff8c
2075 SOCK_DGRAM = 0x2 2075 SFD_CLOEXEC = 0x80000
2076 SOCK_IOC_TYPE = 0x89 2076 SFD_NONBLOCK = 0x800
2077 SOCK_NONBLOCK = 0x800 2077 SHUT_RD = 0x0
2078 SOCK_PACKET = 0xa 2078 SHUT_RDWR = 0x2
2079 SOCK_RAW = 0x3 2079 SHUT_WR = 0x1
2080 SOCK_RDM = 0x4 2080 SIOCADDDLCI = 0x8980
2081 SOCK_SEQPACKET = 0x5 2081 SIOCADDMULTI = 0x8931
2082 SOCK_STREAM = 0x1 2082 SIOCADDRT = 0x890b
2083 SOL_AAL = 0x109 2083 SIOCATMARK = 0x8905
2084 SOL_ALG = 0x117 2084 SIOCBONDCHANGEACTIVE = 0x8995
2085 SOL_ATM = 0x108 2085 SIOCBONDENSLAVE = 0x8990
2086 SOL_CAIF = 0x116 2086 SIOCBONDINFOQUERY = 0x8994
2087 SOL_CAN_BASE = 0x64 2087 SIOCBONDRELEASE = 0x8991
2088 SOL_DCCP = 0x10d 2088 SIOCBONDSETHWADDR = 0x8992
2089 SOL_DECNET = 0x105 2089 SIOCBONDSLAVEINFOQUERY = 0x8993
2090 SOL_ICMPV6 = 0x3a 2090 SIOCBRADDBR = 0x89a0
2091 SOL_IP = 0x0 2091 SIOCBRADDIF = 0x89a2
2092 SOL_IPV6 = 0x29 2092 SIOCBRDELBR = 0x89a1
2093 SOL_IRDA = 0x10a 2093 SIOCBRDELIF = 0x89a3
2094 SOL_IUCV = 0x115 2094 SIOCDARP = 0x8953
2095 SOL_KCM = 0x119 2095 SIOCDELDLCI = 0x8981
2096 SOL_LLC = 0x10c 2096 SIOCDELMULTI = 0x8932
2097 SOL_NETBEUI = 0x10b 2097 SIOCDELRT = 0x890c
2098 SOL_NETLINK = 0x10e 2098 SIOCDEVPRIVATE = 0x89f0
2099 SOL_NFC = 0x118 2099 SIOCDIFADDR = 0x8936
2100 SOL_PACKET = 0x107 2100 SIOCDRARP = 0x8960
2101 SOL_PNPIPE = 0x113 2101 SIOCETHTOOL = 0x8946
2102 SOL_PPPOL2TP = 0x111 2102 SIOCGARP = 0x8954
2103 SOL_RAW = 0xff 2103 SIOCGETLINKNAME = 0x89e0
2104 SOL_RDS = 0x114 2104 SIOCGETNODEID = 0x89e1
2105 SOL_RXRPC = 0x110 2105 SIOCGHWTSTAMP = 0x89b1
2106 SOL_SOCKET = 0x1 2106 SIOCGIFADDR = 0x8915
2107 SOL_TCP = 0x6 2107 SIOCGIFBR = 0x8940
2108 SOL_TIPC = 0x10f 2108 SIOCGIFBRDADDR = 0x8919
2109 SOL_TLS = 0x11a 2109 SIOCGIFCONF = 0x8912
2110 SOL_X25 = 0x106 2110 SIOCGIFCOUNT = 0x8938
2111 SOL_XDP = 0x11b 2111 SIOCGIFDSTADDR = 0x8917
2112 SOMAXCONN = 0x80 2112 SIOCGIFENCAP = 0x8925
2113 SO_ACCEPTCONN = 0x1e 2113 SIOCGIFFLAGS = 0x8913
2114 SO_ATTACH_BPF = 0x32 2114 SIOCGIFHWADDR = 0x8927
2115 SO_ATTACH_FILTER = 0x1a 2115 SIOCGIFINDEX = 0x8933
2116 SO_ATTACH_REUSEPORT_CBPF = 0x33 2116 SIOCGIFMAP = 0x8970
2117 SO_ATTACH_REUSEPORT_EBPF = 0x34 2117 SIOCGIFMEM = 0x891f
2118 SO_BINDTODEVICE = 0x19 2118 SIOCGIFMETRIC = 0x891d
2119 SO_BINDTOIFINDEX = 0x3e 2119 SIOCGIFMTU = 0x8921
2120 SO_BPF_EXTENSIONS = 0x30 2120 SIOCGIFNAME = 0x8910
2121 SO_BROADCAST = 0x6 2121 SIOCGIFNETMASK = 0x891b
2122 SO_BSDCOMPAT = 0xe 2122 SIOCGIFPFLAGS = 0x8935
2123 SO_BUSY_POLL = 0x2e 2123 SIOCGIFSLAVE = 0x8929
2124 SO_CNX_ADVICE = 0x35 2124 SIOCGIFTXQLEN = 0x8942
2125 SO_COOKIE = 0x39 2125 SIOCGIFVLAN = 0x8982
2126 SO_DEBUG = 0x1 2126 SIOCGMIIPHY = 0x8947
2127 SO_DETACH_BPF = 0x1b 2127 SIOCGMIIREG = 0x8948
2128 SO_DETACH_FILTER = 0x1b 2128 SIOCGPGRP = 0x8904
2129 SO_DOMAIN = 0x27 2129 SIOCGPPPCSTATS = 0x89f2
2130 SO_DONTROUTE = 0x5 2130 SIOCGPPPSTATS = 0x89f0
2131 SO_EE_CODE_TXTIME_INVALID_PARAM = 0x1 2131 SIOCGPPPVER = 0x89f1
2132 SO_EE_CODE_TXTIME_MISSED = 0x2 2132 SIOCGRARP = 0x8961
2133 SO_EE_CODE_ZEROCOPY_COPIED = 0x1 2133 SIOCGSKNS = 0x894c
2134 SO_EE_ORIGIN_ICMP = 0x2 2134 SIOCGSTAMP = 0x8906
2135 SO_EE_ORIGIN_ICMP6 = 0x3 2135 SIOCGSTAMPNS = 0x8907
2136 SO_EE_ORIGIN_LOCAL = 0x1 2136 SIOCGSTAMPNS_NEW = 0x80108907
2137 SO_EE_ORIGIN_NONE = 0x0 2137 SIOCGSTAMPNS_OLD = 0x8907
2138 SO_EE_ORIGIN_TIMESTAMPING = 0x4 2138 SIOCGSTAMP_NEW = 0x80108906
2139 SO_EE_ORIGIN_TXSTATUS = 0x4 2139 SIOCGSTAMP_OLD = 0x8906
2140 SO_EE_ORIGIN_TXTIME = 0x6 2140 SIOCINQ = 0x541b
2141 SO_EE_ORIGIN_ZEROCOPY = 0x5 2141 SIOCOUTQ = 0x5411
2142 SO_ERROR = 0x4 2142 SIOCOUTQNSD = 0x894b
2143 SO_GET_FILTER = 0x1a 2143 SIOCPROTOPRIVATE = 0x89e0
2144 SO_INCOMING_CPU = 0x31 2144 SIOCRTMSG = 0x890d
2145 SO_INCOMING_NAPI_ID = 0x38 2145 SIOCSARP = 0x8955
2146 SO_KEEPALIVE = 0x9 2146 SIOCSHWTSTAMP = 0x89b0
2147 SO_LINGER = 0xd 2147 SIOCSIFADDR = 0x8916
2148 SO_LOCK_FILTER = 0x2c 2148 SIOCSIFBR = 0x8941
2149 SO_MARK = 0x24 2149 SIOCSIFBRDADDR = 0x891a
2150 SO_MAX_PACING_RATE = 0x2f 2150 SIOCSIFDSTADDR = 0x8918
2151 SO_MEMINFO = 0x37 2151 SIOCSIFENCAP = 0x8926
2152 SO_NOFCS = 0x2b 2152 SIOCSIFFLAGS = 0x8914
2153 SO_NO_CHECK = 0xb 2153 SIOCSIFHWADDR = 0x8924
2154 SO_OOBINLINE = 0xa 2154 SIOCSIFHWBROADCAST = 0x8937
2155 SO_PASSCRED = 0x10 2155 SIOCSIFLINK = 0x8911
2156 SO_PASSSEC = 0x22 2156 SIOCSIFMAP = 0x8971
2157 SO_PEEK_OFF = 0x2a 2157 SIOCSIFMEM = 0x8920
2158 SO_PEERCRED = 0x11 2158 SIOCSIFMETRIC = 0x891e
2159 SO_PEERGROUPS = 0x3b 2159 SIOCSIFMTU = 0x8922
2160 SO_PEERNAME = 0x1c 2160 SIOCSIFNAME = 0x8923
2161 SO_PEERSEC = 0x1f 2161 SIOCSIFNETMASK = 0x891c
2162 SO_PRIORITY = 0xc 2162 SIOCSIFPFLAGS = 0x8934
2163 SO_PROTOCOL = 0x26 2163 SIOCSIFSLAVE = 0x8930
2164 SO_RCVBUF = 0x8 2164 SIOCSIFTXQLEN = 0x8943
2165 SO_RCVBUFFORCE = 0x21 2165 SIOCSIFVLAN = 0x8983
2166 SO_RCVLOWAT = 0x12 2166 SIOCSMIIREG = 0x8949
2167 SO_RCVTIMEO = 0x14 2167 SIOCSPGRP = 0x8902
2168 SO_RCVTIMEO_NEW = 0x42 2168 SIOCSRARP = 0x8962
2169 SO_RCVTIMEO_OLD = 0x14 2169 SIOCWANDEV = 0x894a
2170 SO_REUSEADDR = 0x2 2170 SMACK_MAGIC = 0x43415d53
2171 SO_REUSEPORT = 0xf 2171 SMART_AUTOSAVE = 0xd2
2172 SO_RXQ_OVFL = 0x28 2172 SMART_AUTO_OFFLINE = 0xdb
2173 SO_SECURITY_AUTHENTICATION = 0x16 2173 SMART_DISABLE = 0xd9
2174 SO_SECURITY_ENCRYPTION_NETWORK = 0x18 2174 SMART_ENABLE = 0xd8
2175 SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17 2175 SMART_HCYL_PASS = 0xc2
2176 SO_SELECT_ERR_QUEUE = 0x2d 2176 SMART_IMMEDIATE_OFFLINE = 0xd4
2177 SO_SNDBUF = 0x7 2177 SMART_LCYL_PASS = 0x4f
2178 SO_SNDBUFFORCE = 0x20 2178 SMART_READ_LOG_SECTOR = 0xd5
2179 SO_SNDLOWAT = 0x13 2179 SMART_READ_THRESHOLDS = 0xd1
2180 SO_SNDTIMEO = 0x15 2180 SMART_READ_VALUES = 0xd0
2181 SO_SNDTIMEO_NEW = 0x43 2181 SMART_SAVE = 0xd3
2182 SO_SNDTIMEO_OLD = 0x15 2182 SMART_STATUS = 0xda
2183 SO_TIMESTAMP = 0x1d 2183 SMART_WRITE_LOG_SECTOR = 0xd6
2184 SO_TIMESTAMPING = 0x25 2184 SMART_WRITE_THRESHOLDS = 0xd7
2185 SO_TIMESTAMPING_NEW = 0x41 2185 SMB_SUPER_MAGIC = 0x517b
2186 SO_TIMESTAMPING_OLD = 0x25 2186 SOCKFS_MAGIC = 0x534f434b
2187 SO_TIMESTAMPNS = 0x23 2187 SOCK_CLOEXEC = 0x80000
2188 SO_TIMESTAMPNS_NEW = 0x40 2188 SOCK_DCCP = 0x6
2189 SO_TIMESTAMPNS_OLD = 0x23 2189 SOCK_DGRAM = 0x2
2190 SO_TIMESTAMP_NEW = 0x3f 2190 SOCK_IOC_TYPE = 0x89
2191 SO_TIMESTAMP_OLD = 0x1d 2191 SOCK_NONBLOCK = 0x800
2192 SO_TXTIME = 0x3d 2192 SOCK_PACKET = 0xa
2193 SO_TYPE = 0x3 2193 SOCK_RAW = 0x3
2194 SO_VM_SOCKETS_BUFFER_MAX_SIZE = 0x2 2194 SOCK_RDM = 0x4
2195 SO_VM_SOCKETS_BUFFER_MIN_SIZE = 0x1 2195 SOCK_SEQPACKET = 0x5
2196 SO_VM_SOCKETS_BUFFER_SIZE = 0x0 2196 SOCK_STREAM = 0x1
2197 SO_VM_SOCKETS_CONNECT_TIMEOUT = 0x6 2197 SOL_AAL = 0x109
2198 SO_VM_SOCKETS_NONBLOCK_TXRX = 0x7 2198 SOL_ALG = 0x117
2199 SO_VM_SOCKETS_PEER_HOST_VM_ID = 0x3 2199 SOL_ATM = 0x108
2200 SO_VM_SOCKETS_TRUSTED = 0x5 2200 SOL_CAIF = 0x116
2201 SO_WIFI_STATUS = 0x29 2201 SOL_CAN_BASE = 0x64
2202 SO_ZEROCOPY = 0x3c 2202 SOL_DCCP = 0x10d
2203 SPLICE_F_GIFT = 0x8 2203 SOL_DECNET = 0x105
2204 SPLICE_F_MORE = 0x4 2204 SOL_ICMPV6 = 0x3a
2205 SPLICE_F_MOVE = 0x1 2205 SOL_IP = 0x0
2206 SPLICE_F_NONBLOCK = 0x2 2206 SOL_IPV6 = 0x29
2207 SQUASHFS_MAGIC = 0x73717368 2207 SOL_IRDA = 0x10a
2208 STACK_END_MAGIC = 0x57ac6e9d 2208 SOL_IUCV = 0x115
2209 STATX_ALL = 0xfff 2209 SOL_KCM = 0x119
2210 STATX_ATIME = 0x20 2210 SOL_LLC = 0x10c
2211 STATX_ATTR_APPEND = 0x20 2211 SOL_NETBEUI = 0x10b
2212 STATX_ATTR_AUTOMOUNT = 0x1000 2212 SOL_NETLINK = 0x10e
2213 STATX_ATTR_COMPRESSED = 0x4 2213 SOL_NFC = 0x118
2214 STATX_ATTR_ENCRYPTED = 0x800 2214 SOL_PACKET = 0x107
2215 STATX_ATTR_IMMUTABLE = 0x10 2215 SOL_PNPIPE = 0x113
2216 STATX_ATTR_NODUMP = 0x40 2216 SOL_PPPOL2TP = 0x111
2217 STATX_BASIC_STATS = 0x7ff 2217 SOL_RAW = 0xff
2218 STATX_BLOCKS = 0x400 2218 SOL_RDS = 0x114
2219 STATX_BTIME = 0x800 2219 SOL_RXRPC = 0x110
2220 STATX_CTIME = 0x80 2220 SOL_SOCKET = 0x1
2221 STATX_GID = 0x10 2221 SOL_TCP = 0x6
2222 STATX_INO = 0x100 2222 SOL_TIPC = 0x10f
2223 STATX_MODE = 0x2 2223 SOL_TLS = 0x11a
2224 STATX_MTIME = 0x40 2224 SOL_X25 = 0x106
2225 STATX_NLINK = 0x4 2225 SOL_XDP = 0x11b
2226 STATX_SIZE = 0x200 2226 SOMAXCONN = 0x1000
2227 STATX_TYPE = 0x1 2227 SO_ACCEPTCONN = 0x1e
2228 STATX_UID = 0x8 2228 SO_ATTACH_BPF = 0x32
2229 STATX__RESERVED = 0x80000000 2229 SO_ATTACH_FILTER = 0x1a
2230 SYNC_FILE_RANGE_WAIT_AFTER = 0x4 2230 SO_ATTACH_REUSEPORT_CBPF = 0x33
2231 SYNC_FILE_RANGE_WAIT_BEFORE = 0x1 2231 SO_ATTACH_REUSEPORT_EBPF = 0x34
2232 SYNC_FILE_RANGE_WRITE = 0x2 2232 SO_BINDTODEVICE = 0x19
2233 SYNC_FILE_RANGE_WRITE_AND_WAIT = 0x7 2233 SO_BINDTOIFINDEX = 0x3e
2234 SYSFS_MAGIC = 0x62656572 2234 SO_BPF_EXTENSIONS = 0x30
2235 S_BLKSIZE = 0x200 2235 SO_BROADCAST = 0x6
2236 S_IEXEC = 0x40 2236 SO_BSDCOMPAT = 0xe
2237 S_IFBLK = 0x6000 2237 SO_BUSY_POLL = 0x2e
2238 S_IFCHR = 0x2000 2238 SO_CNX_ADVICE = 0x35
2239 S_IFDIR = 0x4000 2239 SO_COOKIE = 0x39
2240 S_IFIFO = 0x1000 2240 SO_DEBUG = 0x1
2241 S_IFLNK = 0xa000 2241 SO_DETACH_BPF = 0x1b
2242 S_IFMT = 0xf000 2242 SO_DETACH_FILTER = 0x1b
2243 S_IFREG = 0x8000 2243 SO_DETACH_REUSEPORT_BPF = 0x44
2244 S_IFSOCK = 0xc000 2244 SO_DOMAIN = 0x27
2245 S_IREAD = 0x100 2245 SO_DONTROUTE = 0x5
2246 S_IRGRP = 0x20 2246 SO_EE_CODE_TXTIME_INVALID_PARAM = 0x1
2247 S_IROTH = 0x4 2247 SO_EE_CODE_TXTIME_MISSED = 0x2
2248 S_IRUSR = 0x100 2248 SO_EE_CODE_ZEROCOPY_COPIED = 0x1
2249 S_IRWXG = 0x38 2249 SO_EE_ORIGIN_ICMP = 0x2
2250 S_IRWXO = 0x7 2250 SO_EE_ORIGIN_ICMP6 = 0x3
2251 S_IRWXU = 0x1c0 2251 SO_EE_ORIGIN_LOCAL = 0x1
2252 S_ISGID = 0x400 2252 SO_EE_ORIGIN_NONE = 0x0
2253 S_ISUID = 0x800 2253 SO_EE_ORIGIN_TIMESTAMPING = 0x4
2254 S_ISVTX = 0x200 2254 SO_EE_ORIGIN_TXSTATUS = 0x4
2255 S_IWGRP = 0x10 2255 SO_EE_ORIGIN_TXTIME = 0x6
2256 S_IWOTH = 0x2 2256 SO_EE_ORIGIN_ZEROCOPY = 0x5
2257 S_IWRITE = 0x80 2257 SO_ERROR = 0x4
2258 S_IWUSR = 0x80 2258 SO_GET_FILTER = 0x1a
2259 S_IXGRP = 0x8 2259 SO_INCOMING_CPU = 0x31
2260 S_IXOTH = 0x1 2260 SO_INCOMING_NAPI_ID = 0x38
2261 S_IXUSR = 0x40 2261 SO_KEEPALIVE = 0x9
2262 TAB0 = 0x0 2262 SO_LINGER = 0xd
2263 TAB1 = 0x800 2263 SO_LOCK_FILTER = 0x2c
2264 TAB2 = 0x1000 2264 SO_MARK = 0x24
2265 TAB3 = 0x1800 2265 SO_MAX_PACING_RATE = 0x2f
2266 TABDLY = 0x1800 2266 SO_MEMINFO = 0x37
2267 TASKSTATS_CMD_ATTR_MAX = 0x4 2267 SO_NOFCS = 0x2b
2268 TASKSTATS_CMD_MAX = 0x2 2268 SO_NO_CHECK = 0xb
2269 TASKSTATS_GENL_NAME = "TASKSTATS" 2269 SO_OOBINLINE = 0xa
2270 TASKSTATS_GENL_VERSION = 0x1 2270 SO_PASSCRED = 0x10
2271 TASKSTATS_TYPE_MAX = 0x6 2271 SO_PASSSEC = 0x22
2272 TASKSTATS_VERSION = 0x9 2272 SO_PEEK_OFF = 0x2a
2273 TCFLSH = 0x540b 2273 SO_PEERCRED = 0x11
2274 TCGETA = 0x5405 2274 SO_PEERGROUPS = 0x3b
2275 TCGETS = 0x5401 2275 SO_PEERNAME = 0x1c
2276 TCGETS2 = 0x802c542a 2276 SO_PEERSEC = 0x1f
2277 TCGETX = 0x5432 2277 SO_PRIORITY = 0xc
2278 TCIFLUSH = 0x0 2278 SO_PROTOCOL = 0x26
2279 TCIOFF = 0x2 2279 SO_RCVBUF = 0x8
2280 TCIOFLUSH = 0x2 2280 SO_RCVBUFFORCE = 0x21
2281 TCION = 0x3 2281 SO_RCVLOWAT = 0x12
2282 TCOFLUSH = 0x1 2282 SO_RCVTIMEO = 0x14
2283 TCOOFF = 0x0 2283 SO_RCVTIMEO_NEW = 0x42
2284 TCOON = 0x1 2284 SO_RCVTIMEO_OLD = 0x14
2285 TCP_BPF_IW = 0x3e9 2285 SO_REUSEADDR = 0x2
2286 TCP_BPF_SNDCWND_CLAMP = 0x3ea 2286 SO_REUSEPORT = 0xf
2287 TCP_CC_INFO = 0x1a 2287 SO_RXQ_OVFL = 0x28
2288 TCP_CM_INQ = 0x24 2288 SO_SECURITY_AUTHENTICATION = 0x16
2289 TCP_CONGESTION = 0xd 2289 SO_SECURITY_ENCRYPTION_NETWORK = 0x18
2290 TCP_COOKIE_IN_ALWAYS = 0x1 2290 SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17
2291 TCP_COOKIE_MAX = 0x10 2291 SO_SELECT_ERR_QUEUE = 0x2d
2292 TCP_COOKIE_MIN = 0x8 2292 SO_SNDBUF = 0x7
2293 TCP_COOKIE_OUT_NEVER = 0x2 2293 SO_SNDBUFFORCE = 0x20
2294 TCP_COOKIE_PAIR_SIZE = 0x20 2294 SO_SNDLOWAT = 0x13
2295 TCP_COOKIE_TRANSACTIONS = 0xf 2295 SO_SNDTIMEO = 0x15
2296 TCP_CORK = 0x3 2296 SO_SNDTIMEO_NEW = 0x43
2297 TCP_DEFER_ACCEPT = 0x9 2297 SO_SNDTIMEO_OLD = 0x15
2298 TCP_FASTOPEN = 0x17 2298 SO_TIMESTAMP = 0x1d
2299 TCP_FASTOPEN_CONNECT = 0x1e 2299 SO_TIMESTAMPING = 0x25
2300 TCP_FASTOPEN_KEY = 0x21 2300 SO_TIMESTAMPING_NEW = 0x41
2301 TCP_FASTOPEN_NO_COOKIE = 0x22 2301 SO_TIMESTAMPING_OLD = 0x25
2302 TCP_INFO = 0xb 2302 SO_TIMESTAMPNS = 0x23
2303 TCP_INQ = 0x24 2303 SO_TIMESTAMPNS_NEW = 0x40
2304 TCP_KEEPCNT = 0x6 2304 SO_TIMESTAMPNS_OLD = 0x23
2305 TCP_KEEPIDLE = 0x4 2305 SO_TIMESTAMP_NEW = 0x3f
2306 TCP_KEEPINTVL = 0x5 2306 SO_TIMESTAMP_OLD = 0x1d
2307 TCP_LINGER2 = 0x8 2307 SO_TXTIME = 0x3d
2308 TCP_MAXSEG = 0x2 2308 SO_TYPE = 0x3
2309 TCP_MAXWIN = 0xffff 2309 SO_VM_SOCKETS_BUFFER_MAX_SIZE = 0x2
2310 TCP_MAX_WINSHIFT = 0xe 2310 SO_VM_SOCKETS_BUFFER_MIN_SIZE = 0x1
2311 TCP_MD5SIG = 0xe 2311 SO_VM_SOCKETS_BUFFER_SIZE = 0x0
2312 TCP_MD5SIG_EXT = 0x20 2312 SO_VM_SOCKETS_CONNECT_TIMEOUT = 0x6
2313 TCP_MD5SIG_FLAG_PREFIX = 0x1 2313 SO_VM_SOCKETS_NONBLOCK_TXRX = 0x7
2314 TCP_MD5SIG_MAXKEYLEN = 0x50 2314 SO_VM_SOCKETS_PEER_HOST_VM_ID = 0x3
2315 TCP_MSS = 0x200 2315 SO_VM_SOCKETS_TRUSTED = 0x5
2316 TCP_MSS_DEFAULT = 0x218 2316 SO_WIFI_STATUS = 0x29
2317 TCP_MSS_DESIRED = 0x4c4 2317 SO_ZEROCOPY = 0x3c
2318 TCP_NODELAY = 0x1 2318 SPLICE_F_GIFT = 0x8
2319 TCP_NOTSENT_LOWAT = 0x19 2319 SPLICE_F_MORE = 0x4
2320 TCP_QUEUE_SEQ = 0x15 2320 SPLICE_F_MOVE = 0x1
2321 TCP_QUICKACK = 0xc 2321 SPLICE_F_NONBLOCK = 0x2
2322 TCP_REPAIR = 0x13 2322 SQUASHFS_MAGIC = 0x73717368
2323 TCP_REPAIR_OFF = 0x0 2323 STACK_END_MAGIC = 0x57ac6e9d
2324 TCP_REPAIR_OFF_NO_WP = -0x1 2324 STATX_ALL = 0xfff
2325 TCP_REPAIR_ON = 0x1 2325 STATX_ATIME = 0x20
2326 TCP_REPAIR_OPTIONS = 0x16 2326 STATX_ATTR_APPEND = 0x20
2327 TCP_REPAIR_QUEUE = 0x14 2327 STATX_ATTR_AUTOMOUNT = 0x1000
2328 TCP_REPAIR_WINDOW = 0x1d 2328 STATX_ATTR_COMPRESSED = 0x4
2329 TCP_SAVED_SYN = 0x1c 2329 STATX_ATTR_ENCRYPTED = 0x800
2330 TCP_SAVE_SYN = 0x1b 2330 STATX_ATTR_IMMUTABLE = 0x10
2331 TCP_SYNCNT = 0x7 2331 STATX_ATTR_NODUMP = 0x40
2332 TCP_S_DATA_IN = 0x4 2332 STATX_ATTR_VERITY = 0x100000
2333 TCP_S_DATA_OUT = 0x8 2333 STATX_BASIC_STATS = 0x7ff
2334 TCP_THIN_DUPACK = 0x11 2334 STATX_BLOCKS = 0x400
2335 TCP_THIN_LINEAR_TIMEOUTS = 0x10 2335 STATX_BTIME = 0x800
2336 TCP_TIMESTAMP = 0x18 2336 STATX_CTIME = 0x80
2337 TCP_ULP = 0x1f 2337 STATX_GID = 0x10
2338 TCP_USER_TIMEOUT = 0x12 2338 STATX_INO = 0x100
2339 TCP_WINDOW_CLAMP = 0xa 2339 STATX_MODE = 0x2
2340 TCP_ZEROCOPY_RECEIVE = 0x23 2340 STATX_MTIME = 0x40
2341 TCSAFLUSH = 0x2 2341 STATX_NLINK = 0x4
2342 TCSBRK = 0x5409 2342 STATX_SIZE = 0x200
2343 TCSBRKP = 0x5425 2343 STATX_TYPE = 0x1
2344 TCSETA = 0x5406 2344 STATX_UID = 0x8
2345 TCSETAF = 0x5408 2345 STATX__RESERVED = 0x80000000
2346 TCSETAW = 0x5407 2346 SYNC_FILE_RANGE_WAIT_AFTER = 0x4
2347 TCSETS = 0x5402 2347 SYNC_FILE_RANGE_WAIT_BEFORE = 0x1
2348 TCSETS2 = 0x402c542b 2348 SYNC_FILE_RANGE_WRITE = 0x2
2349 TCSETSF = 0x5404 2349 SYNC_FILE_RANGE_WRITE_AND_WAIT = 0x7
2350 TCSETSF2 = 0x402c542d 2350 SYSFS_MAGIC = 0x62656572
2351 TCSETSW = 0x5403 2351 S_BLKSIZE = 0x200
2352 TCSETSW2 = 0x402c542c 2352 S_IEXEC = 0x40
2353 TCSETX = 0x5433 2353 S_IFBLK = 0x6000
2354 TCSETXF = 0x5434 2354 S_IFCHR = 0x2000
2355 TCSETXW = 0x5435 2355 S_IFDIR = 0x4000
2356 TCXONC = 0x540a 2356 S_IFIFO = 0x1000
2357 TIMER_ABSTIME = 0x1 2357 S_IFLNK = 0xa000
2358 TIOCCBRK = 0x5428 2358 S_IFMT = 0xf000
2359 TIOCCONS = 0x541d 2359 S_IFREG = 0x8000
2360 TIOCEXCL = 0x540c 2360 S_IFSOCK = 0xc000
2361 TIOCGDEV = 0x80045432 2361 S_IREAD = 0x100
2362 TIOCGETD = 0x5424 2362 S_IRGRP = 0x20
2363 TIOCGEXCL = 0x80045440 2363 S_IROTH = 0x4
2364 TIOCGICOUNT = 0x545d 2364 S_IRUSR = 0x100
2365 TIOCGISO7816 = 0x80285442 2365 S_IRWXG = 0x38
2366 TIOCGLCKTRMIOS = 0x5456 2366 S_IRWXO = 0x7
2367 TIOCGPGRP = 0x540f 2367 S_IRWXU = 0x1c0
2368 TIOCGPKT = 0x80045438 2368 S_ISGID = 0x400
2369 TIOCGPTLCK = 0x80045439 2369 S_ISUID = 0x800
2370 TIOCGPTN = 0x80045430 2370 S_ISVTX = 0x200
2371 TIOCGPTPEER = 0x5441 2371 S_IWGRP = 0x10
2372 TIOCGRS485 = 0x542e 2372 S_IWOTH = 0x2
2373 TIOCGSERIAL = 0x541e 2373 S_IWRITE = 0x80
2374 TIOCGSID = 0x5429 2374 S_IWUSR = 0x80
2375 TIOCGSOFTCAR = 0x5419 2375 S_IXGRP = 0x8
2376 TIOCGWINSZ = 0x5413 2376 S_IXOTH = 0x1
2377 TIOCINQ = 0x541b 2377 S_IXUSR = 0x40
2378 TIOCLINUX = 0x541c 2378 TAB0 = 0x0
2379 TIOCMBIC = 0x5417 2379 TAB1 = 0x800
2380 TIOCMBIS = 0x5416 2380 TAB2 = 0x1000
2381 TIOCMGET = 0x5415 2381 TAB3 = 0x1800
2382 TIOCMIWAIT = 0x545c 2382 TABDLY = 0x1800
2383 TIOCMSET = 0x5418 2383 TASKSTATS_CMD_ATTR_MAX = 0x4
2384 TIOCM_CAR = 0x40 2384 TASKSTATS_CMD_MAX = 0x2
2385 TIOCM_CD = 0x40 2385 TASKSTATS_GENL_NAME = "TASKSTATS"
2386 TIOCM_CTS = 0x20 2386 TASKSTATS_GENL_VERSION = 0x1
2387 TIOCM_DSR = 0x100 2387 TASKSTATS_TYPE_MAX = 0x6
2388 TIOCM_DTR = 0x2 2388 TASKSTATS_VERSION = 0x9
2389 TIOCM_LE = 0x1 2389 TCFLSH = 0x540b
2390 TIOCM_RI = 0x80 2390 TCGETA = 0x5405
2391 TIOCM_RNG = 0x80 2391 TCGETS = 0x5401
2392 TIOCM_RTS = 0x4 2392 TCGETS2 = 0x802c542a
2393 TIOCM_SR = 0x10 2393 TCGETX = 0x5432
2394 TIOCM_ST = 0x8 2394 TCIFLUSH = 0x0
2395 TIOCNOTTY = 0x5422 2395 TCIOFF = 0x2
2396 TIOCNXCL = 0x540d 2396 TCIOFLUSH = 0x2
2397 TIOCOUTQ = 0x5411 2397 TCION = 0x3
2398 TIOCPKT = 0x5420 2398 TCOFLUSH = 0x1
2399 TIOCPKT_DATA = 0x0 2399 TCOOFF = 0x0
2400 TIOCPKT_DOSTOP = 0x20 2400 TCOON = 0x1
2401 TIOCPKT_FLUSHREAD = 0x1 2401 TCP_BPF_IW = 0x3e9
2402 TIOCPKT_FLUSHWRITE = 0x2 2402 TCP_BPF_SNDCWND_CLAMP = 0x3ea
2403 TIOCPKT_IOCTL = 0x40 2403 TCP_CC_INFO = 0x1a
2404 TIOCPKT_NOSTOP = 0x10 2404 TCP_CM_INQ = 0x24
2405 TIOCPKT_START = 0x8 2405 TCP_CONGESTION = 0xd
2406 TIOCPKT_STOP = 0x4 2406 TCP_COOKIE_IN_ALWAYS = 0x1
2407 TIOCSBRK = 0x5427 2407 TCP_COOKIE_MAX = 0x10
2408 TIOCSCTTY = 0x540e 2408 TCP_COOKIE_MIN = 0x8
2409 TIOCSERCONFIG = 0x5453 2409 TCP_COOKIE_OUT_NEVER = 0x2
2410 TIOCSERGETLSR = 0x5459 2410 TCP_COOKIE_PAIR_SIZE = 0x20
2411 TIOCSERGETMULTI = 0x545a 2411 TCP_COOKIE_TRANSACTIONS = 0xf
2412 TIOCSERGSTRUCT = 0x5458 2412 TCP_CORK = 0x3
2413 TIOCSERGWILD = 0x5454 2413 TCP_DEFER_ACCEPT = 0x9
2414 TIOCSERSETMULTI = 0x545b 2414 TCP_FASTOPEN = 0x17
2415 TIOCSERSWILD = 0x5455 2415 TCP_FASTOPEN_CONNECT = 0x1e
2416 TIOCSER_TEMT = 0x1 2416 TCP_FASTOPEN_KEY = 0x21
2417 TIOCSETD = 0x5423 2417 TCP_FASTOPEN_NO_COOKIE = 0x22
2418 TIOCSIG = 0x40045436 2418 TCP_INFO = 0xb
2419 TIOCSISO7816 = 0xc0285443 2419 TCP_INQ = 0x24
2420 TIOCSLCKTRMIOS = 0x5457 2420 TCP_KEEPCNT = 0x6
2421 TIOCSPGRP = 0x5410 2421 TCP_KEEPIDLE = 0x4
2422 TIOCSPTLCK = 0x40045431 2422 TCP_KEEPINTVL = 0x5
2423 TIOCSRS485 = 0x542f 2423 TCP_LINGER2 = 0x8
2424 TIOCSSERIAL = 0x541f 2424 TCP_MAXSEG = 0x2
2425 TIOCSSOFTCAR = 0x541a 2425 TCP_MAXWIN = 0xffff
2426 TIOCSTI = 0x5412 2426 TCP_MAX_WINSHIFT = 0xe
2427 TIOCSWINSZ = 0x5414 2427 TCP_MD5SIG = 0xe
2428 TIOCVHANGUP = 0x5437 2428 TCP_MD5SIG_EXT = 0x20
2429 TMPFS_MAGIC = 0x1021994 2429 TCP_MD5SIG_FLAG_PREFIX = 0x1
2430 TOSTOP = 0x100 2430 TCP_MD5SIG_MAXKEYLEN = 0x50
2431 TPACKET_ALIGNMENT = 0x10 2431 TCP_MSS = 0x200
2432 TPACKET_HDRLEN = 0x34 2432 TCP_MSS_DEFAULT = 0x218
2433 TP_STATUS_AVAILABLE = 0x0 2433 TCP_MSS_DESIRED = 0x4c4
2434 TP_STATUS_BLK_TMO = 0x20 2434 TCP_NODELAY = 0x1
2435 TP_STATUS_COPY = 0x2 2435 TCP_NOTSENT_LOWAT = 0x19
2436 TP_STATUS_CSUMNOTREADY = 0x8 2436 TCP_QUEUE_SEQ = 0x15
2437 TP_STATUS_CSUM_VALID = 0x80 2437 TCP_QUICKACK = 0xc
2438 TP_STATUS_KERNEL = 0x0 2438 TCP_REPAIR = 0x13
2439 TP_STATUS_LOSING = 0x4 2439 TCP_REPAIR_OFF = 0x0
2440 TP_STATUS_SENDING = 0x2 2440 TCP_REPAIR_OFF_NO_WP = -0x1
2441 TP_STATUS_SEND_REQUEST = 0x1 2441 TCP_REPAIR_ON = 0x1
2442 TP_STATUS_TS_RAW_HARDWARE = -0x80000000 2442 TCP_REPAIR_OPTIONS = 0x16
2443 TP_STATUS_TS_SOFTWARE = 0x20000000 2443 TCP_REPAIR_QUEUE = 0x14
2444 TP_STATUS_TS_SYS_HARDWARE = 0x40000000 2444 TCP_REPAIR_WINDOW = 0x1d
2445 TP_STATUS_USER = 0x1 2445 TCP_SAVED_SYN = 0x1c
2446 TP_STATUS_VLAN_TPID_VALID = 0x40 2446 TCP_SAVE_SYN = 0x1b
2447 TP_STATUS_VLAN_VALID = 0x10 2447 TCP_SYNCNT = 0x7
2448 TP_STATUS_WRONG_FORMAT = 0x4 2448 TCP_S_DATA_IN = 0x4
2449 TRACEFS_MAGIC = 0x74726163 2449 TCP_S_DATA_OUT = 0x8
2450 TS_COMM_LEN = 0x20 2450 TCP_THIN_DUPACK = 0x11
2451 TUNATTACHFILTER = 0x401054d5 2451 TCP_THIN_LINEAR_TIMEOUTS = 0x10
2452 TUNDETACHFILTER = 0x401054d6 2452 TCP_TIMESTAMP = 0x18
2453 TUNGETDEVNETNS = 0x54e3 2453 TCP_TX_DELAY = 0x25
2454 TUNGETFEATURES = 0x800454cf 2454 TCP_ULP = 0x1f
2455 TUNGETFILTER = 0x801054db 2455 TCP_USER_TIMEOUT = 0x12
2456 TUNGETIFF = 0x800454d2 2456 TCP_WINDOW_CLAMP = 0xa
2457 TUNGETSNDBUF = 0x800454d3 2457 TCP_ZEROCOPY_RECEIVE = 0x23
2458 TUNGETVNETBE = 0x800454df 2458 TCSAFLUSH = 0x2
2459 TUNGETVNETHDRSZ = 0x800454d7 2459 TCSBRK = 0x5409
2460 TUNGETVNETLE = 0x800454dd 2460 TCSBRKP = 0x5425
2461 TUNSETCARRIER = 0x400454e2 2461 TCSETA = 0x5406
2462 TUNSETDEBUG = 0x400454c9 2462 TCSETAF = 0x5408
2463 TUNSETFILTEREBPF = 0x800454e1 2463 TCSETAW = 0x5407
2464 TUNSETGROUP = 0x400454ce 2464 TCSETS = 0x5402
2465 TUNSETIFF = 0x400454ca 2465 TCSETS2 = 0x402c542b
2466 TUNSETIFINDEX = 0x400454da 2466 TCSETSF = 0x5404
2467 TUNSETLINK = 0x400454cd 2467 TCSETSF2 = 0x402c542d
2468 TUNSETNOCSUM = 0x400454c8 2468 TCSETSW = 0x5403
2469 TUNSETOFFLOAD = 0x400454d0 2469 TCSETSW2 = 0x402c542c
2470 TUNSETOWNER = 0x400454cc 2470 TCSETX = 0x5433
2471 TUNSETPERSIST = 0x400454cb 2471 TCSETXF = 0x5434
2472 TUNSETQUEUE = 0x400454d9 2472 TCSETXW = 0x5435
2473 TUNSETSNDBUF = 0x400454d4 2473 TCXONC = 0x540a
2474 TUNSETSTEERINGEBPF = 0x800454e0 2474 TIMER_ABSTIME = 0x1
2475 TUNSETTXFILTER = 0x400454d1 2475 TIOCCBRK = 0x5428
2476 TUNSETVNETBE = 0x400454de 2476 TIOCCONS = 0x541d
2477 TUNSETVNETHDRSZ = 0x400454d8 2477 TIOCEXCL = 0x540c
2478 TUNSETVNETLE = 0x400454dc 2478 TIOCGDEV = 0x80045432
2479 UBI_IOCATT = 0x40186f40 2479 TIOCGETD = 0x5424
2480 UBI_IOCDET = 0x40046f41 2480 TIOCGEXCL = 0x80045440
2481 UBI_IOCEBCH = 0x40044f02 2481 TIOCGICOUNT = 0x545d
2482 UBI_IOCEBER = 0x40044f01 2482 TIOCGISO7816 = 0x80285442
2483 UBI_IOCEBISMAP = 0x80044f05 2483 TIOCGLCKTRMIOS = 0x5456
2484 UBI_IOCEBMAP = 0x40084f03 2484 TIOCGPGRP = 0x540f
2485 UBI_IOCEBUNMAP = 0x40044f04 2485 TIOCGPKT = 0x80045438
2486 UBI_IOCMKVOL = 0x40986f00 2486 TIOCGPTLCK = 0x80045439
2487 UBI_IOCRMVOL = 0x40046f01 2487 TIOCGPTN = 0x80045430
2488 UBI_IOCRNVOL = 0x51106f03 2488 TIOCGPTPEER = 0x5441
2489 UBI_IOCRPEB = 0x40046f04 2489 TIOCGRS485 = 0x542e
2490 UBI_IOCRSVOL = 0x400c6f02 2490 TIOCGSERIAL = 0x541e
2491 UBI_IOCSETVOLPROP = 0x40104f06 2491 TIOCGSID = 0x5429
2492 UBI_IOCSPEB = 0x40046f05 2492 TIOCGSOFTCAR = 0x5419
2493 UBI_IOCVOLCRBLK = 0x40804f07 2493 TIOCGWINSZ = 0x5413
2494 UBI_IOCVOLRMBLK = 0x4f08 2494 TIOCINQ = 0x541b
2495 UBI_IOCVOLUP = 0x40084f00 2495 TIOCLINUX = 0x541c
2496 UDF_SUPER_MAGIC = 0x15013346 2496 TIOCMBIC = 0x5417
2497 UMOUNT_NOFOLLOW = 0x8 2497 TIOCMBIS = 0x5416
2498 USBDEVICE_SUPER_MAGIC = 0x9fa2 2498 TIOCMGET = 0x5415
2499 UTIME_NOW = 0x3fffffff 2499 TIOCMIWAIT = 0x545c
2500 UTIME_OMIT = 0x3ffffffe 2500 TIOCMSET = 0x5418
2501 V9FS_MAGIC = 0x1021997 2501 TIOCM_CAR = 0x40
2502 VDISCARD = 0xd 2502 TIOCM_CD = 0x40
2503 VEOF = 0x4 2503 TIOCM_CTS = 0x20
2504 VEOL = 0xb 2504 TIOCM_DSR = 0x100
2505 VEOL2 = 0x10 2505 TIOCM_DTR = 0x2
2506 VERASE = 0x2 2506 TIOCM_LE = 0x1
2507 VINTR = 0x0 2507 TIOCM_RI = 0x80
2508 VKILL = 0x3 2508 TIOCM_RNG = 0x80
2509 VLNEXT = 0xf 2509 TIOCM_RTS = 0x4
2510 VMADDR_CID_ANY = 0xffffffff 2510 TIOCM_SR = 0x10
2511 VMADDR_CID_HOST = 0x2 2511 TIOCM_ST = 0x8
2512 VMADDR_CID_HYPERVISOR = 0x0 2512 TIOCNOTTY = 0x5422
2513 VMADDR_CID_RESERVED = 0x1 2513 TIOCNXCL = 0x540d
2514 VMADDR_PORT_ANY = 0xffffffff 2514 TIOCOUTQ = 0x5411
2515 VMIN = 0x6 2515 TIOCPKT = 0x5420
2516 VM_SOCKETS_INVALID_VERSION = 0xffffffff 2516 TIOCPKT_DATA = 0x0
2517 VQUIT = 0x1 2517 TIOCPKT_DOSTOP = 0x20
2518 VREPRINT = 0xc 2518 TIOCPKT_FLUSHREAD = 0x1
2519 VSTART = 0x8 2519 TIOCPKT_FLUSHWRITE = 0x2
2520 VSTOP = 0x9 2520 TIOCPKT_IOCTL = 0x40
2521 VSUSP = 0xa 2521 TIOCPKT_NOSTOP = 0x10
2522 VSWTC = 0x7 2522 TIOCPKT_START = 0x8
2523 VT0 = 0x0 2523 TIOCPKT_STOP = 0x4
2524 VT1 = 0x4000 2524 TIOCSBRK = 0x5427
2525 VTDLY = 0x4000 2525 TIOCSCTTY = 0x540e
2526 VTIME = 0x5 2526 TIOCSERCONFIG = 0x5453
2527 VWERASE = 0xe 2527 TIOCSERGETLSR = 0x5459
2528 WALL = 0x40000000 2528 TIOCSERGETMULTI = 0x545a
2529 WCLONE = 0x80000000 2529 TIOCSERGSTRUCT = 0x5458
2530 WCONTINUED = 0x8 2530 TIOCSERGWILD = 0x5454
2531 WDIOC_GETBOOTSTATUS = 0x80045702 2531 TIOCSERSETMULTI = 0x545b
2532 WDIOC_GETPRETIMEOUT = 0x80045709 2532 TIOCSERSWILD = 0x5455
2533 WDIOC_GETSTATUS = 0x80045701 2533 TIOCSER_TEMT = 0x1
2534 WDIOC_GETSUPPORT = 0x80285700 2534 TIOCSETD = 0x5423
2535 WDIOC_GETTEMP = 0x80045703 2535 TIOCSIG = 0x40045436
2536 WDIOC_GETTIMELEFT = 0x8004570a 2536 TIOCSISO7816 = 0xc0285443
2537 WDIOC_GETTIMEOUT = 0x80045707 2537 TIOCSLCKTRMIOS = 0x5457
2538 WDIOC_KEEPALIVE = 0x80045705 2538 TIOCSPGRP = 0x5410
2539 WDIOC_SETOPTIONS = 0x80045704 2539 TIOCSPTLCK = 0x40045431
2540 WDIOC_SETPRETIMEOUT = 0xc0045708 2540 TIOCSRS485 = 0x542f
2541 WDIOC_SETTIMEOUT = 0xc0045706 2541 TIOCSSERIAL = 0x541f
2542 WEXITED = 0x4 2542 TIOCSSOFTCAR = 0x541a
2543 WIN_ACKMEDIACHANGE = 0xdb 2543 TIOCSTI = 0x5412
2544 WIN_CHECKPOWERMODE1 = 0xe5 2544 TIOCSWINSZ = 0x5414
2545 WIN_CHECKPOWERMODE2 = 0x98 2545 TIOCVHANGUP = 0x5437
2546 WIN_DEVICE_RESET = 0x8 2546 TIPC_ADDR_ID = 0x3
2547 WIN_DIAGNOSE = 0x90 2547 TIPC_ADDR_MCAST = 0x1
2548 WIN_DOORLOCK = 0xde 2548 TIPC_ADDR_NAME = 0x2
2549 WIN_DOORUNLOCK = 0xdf 2549 TIPC_ADDR_NAMESEQ = 0x1
2550 WIN_DOWNLOAD_MICROCODE = 0x92 2550 TIPC_AEAD_ALG_NAME = 0x20
2551 WIN_FLUSH_CACHE = 0xe7 2551 TIPC_AEAD_KEYLEN_MAX = 0x24
2552 WIN_FLUSH_CACHE_EXT = 0xea 2552 TIPC_AEAD_KEYLEN_MIN = 0x14
2553 WIN_FORMAT = 0x50 2553 TIPC_AEAD_KEY_SIZE_MAX = 0x48
2554 WIN_GETMEDIASTATUS = 0xda 2554 TIPC_CFG_SRV = 0x0
2555 WIN_IDENTIFY = 0xec 2555 TIPC_CLUSTER_BITS = 0xc
2556 WIN_IDENTIFY_DMA = 0xee 2556 TIPC_CLUSTER_MASK = 0xfff000
2557 WIN_IDLEIMMEDIATE = 0xe1 2557 TIPC_CLUSTER_OFFSET = 0xc
2558 WIN_INIT = 0x60 2558 TIPC_CLUSTER_SIZE = 0xfff
2559 WIN_MEDIAEJECT = 0xed 2559 TIPC_CONN_SHUTDOWN = 0x5
2560 WIN_MULTREAD = 0xc4 2560 TIPC_CONN_TIMEOUT = 0x82
2561 WIN_MULTREAD_EXT = 0x29 2561 TIPC_CRITICAL_IMPORTANCE = 0x3
2562 WIN_MULTWRITE = 0xc5 2562 TIPC_DESTNAME = 0x3
2563 WIN_MULTWRITE_EXT = 0x39 2563 TIPC_DEST_DROPPABLE = 0x81
2564 WIN_NOP = 0x0 2564 TIPC_ERRINFO = 0x1
2565 WIN_PACKETCMD = 0xa0 2565 TIPC_ERR_NO_NAME = 0x1
2566 WIN_PIDENTIFY = 0xa1 2566 TIPC_ERR_NO_NODE = 0x3
2567 WIN_POSTBOOT = 0xdc 2567 TIPC_ERR_NO_PORT = 0x2
2568 WIN_PREBOOT = 0xdd 2568 TIPC_ERR_OVERLOAD = 0x4
2569 WIN_QUEUED_SERVICE = 0xa2 2569 TIPC_GROUP_JOIN = 0x87
2570 WIN_READ = 0x20 2570 TIPC_GROUP_LEAVE = 0x88
2571 WIN_READDMA = 0xc8 2571 TIPC_GROUP_LOOPBACK = 0x1
2572 WIN_READDMA_EXT = 0x25 2572 TIPC_GROUP_MEMBER_EVTS = 0x2
2573 WIN_READDMA_ONCE = 0xc9 2573 TIPC_HIGH_IMPORTANCE = 0x2
2574 WIN_READDMA_QUEUED = 0xc7 2574 TIPC_IMPORTANCE = 0x7f
2575 WIN_READDMA_QUEUED_EXT = 0x26 2575 TIPC_LINK_STATE = 0x2
2576 WIN_READ_BUFFER = 0xe4 2576 TIPC_LOW_IMPORTANCE = 0x0
2577 WIN_READ_EXT = 0x24 2577 TIPC_MAX_BEARER_NAME = 0x20
2578 WIN_READ_LONG = 0x22 2578 TIPC_MAX_IF_NAME = 0x10
2579 WIN_READ_LONG_ONCE = 0x23 2579 TIPC_MAX_LINK_NAME = 0x44
2580 WIN_READ_NATIVE_MAX = 0xf8 2580 TIPC_MAX_MEDIA_NAME = 0x10
2581 WIN_READ_NATIVE_MAX_EXT = 0x27 2581 TIPC_MAX_USER_MSG_SIZE = 0x101d0
2582 WIN_READ_ONCE = 0x21 2582 TIPC_MCAST_BROADCAST = 0x85
2583 WIN_RECAL = 0x10 2583 TIPC_MCAST_REPLICAST = 0x86
2584 WIN_RESTORE = 0x10 2584 TIPC_MEDIUM_IMPORTANCE = 0x1
2585 WIN_SECURITY_DISABLE = 0xf6 2585 TIPC_NODEID_LEN = 0x10
2586 WIN_SECURITY_ERASE_PREPARE = 0xf3 2586 TIPC_NODELAY = 0x8a
2587 WIN_SECURITY_ERASE_UNIT = 0xf4 2587 TIPC_NODE_BITS = 0xc
2588 WIN_SECURITY_FREEZE_LOCK = 0xf5 2588 TIPC_NODE_MASK = 0xfff
2589 WIN_SECURITY_SET_PASS = 0xf1 2589 TIPC_NODE_OFFSET = 0x0
2590 WIN_SECURITY_UNLOCK = 0xf2 2590 TIPC_NODE_RECVQ_DEPTH = 0x83
2591 WIN_SEEK = 0x70 2591 TIPC_NODE_SIZE = 0xfff
2592 WIN_SETFEATURES = 0xef 2592 TIPC_NODE_STATE = 0x0
2593 WIN_SETIDLE1 = 0xe3 2593 TIPC_OK = 0x0
2594 WIN_SETIDLE2 = 0x97 2594 TIPC_PUBLISHED = 0x1
2595 WIN_SETMULT = 0xc6 2595 TIPC_RESERVED_TYPES = 0x40
2596 WIN_SET_MAX = 0xf9 2596 TIPC_RETDATA = 0x2
2597 WIN_SET_MAX_EXT = 0x37 2597 TIPC_SERVICE_ADDR = 0x2
2598 WIN_SLEEPNOW1 = 0xe6 2598 TIPC_SERVICE_RANGE = 0x1
2599 WIN_SLEEPNOW2 = 0x99 2599 TIPC_SOCKET_ADDR = 0x3
2600 WIN_SMART = 0xb0 2600 TIPC_SOCK_RECVQ_DEPTH = 0x84
2601 WIN_SPECIFY = 0x91 2601 TIPC_SOCK_RECVQ_USED = 0x89
2602 WIN_SRST = 0x8 2602 TIPC_SRC_DROPPABLE = 0x80
2603 WIN_STANDBY = 0xe2 2603 TIPC_SUBSCR_TIMEOUT = 0x3
2604 WIN_STANDBY2 = 0x96 2604 TIPC_SUB_CANCEL = 0x4
2605 WIN_STANDBYNOW1 = 0xe0 2605 TIPC_SUB_PORTS = 0x1
2606 WIN_STANDBYNOW2 = 0x94 2606 TIPC_SUB_SERVICE = 0x2
2607 WIN_VERIFY = 0x40 2607 TIPC_TOP_SRV = 0x1
2608 WIN_VERIFY_EXT = 0x42 2608 TIPC_WAIT_FOREVER = 0xffffffff
2609 WIN_VERIFY_ONCE = 0x41 2609 TIPC_WITHDRAWN = 0x2
2610 WIN_WRITE = 0x30 2610 TIPC_ZONE_BITS = 0x8
2611 WIN_WRITEDMA = 0xca 2611 TIPC_ZONE_CLUSTER_MASK = 0xfffff000
2612 WIN_WRITEDMA_EXT = 0x35 2612 TIPC_ZONE_MASK = 0xff000000
2613 WIN_WRITEDMA_ONCE = 0xcb 2613 TIPC_ZONE_OFFSET = 0x18
2614 WIN_WRITEDMA_QUEUED = 0xcc 2614 TIPC_ZONE_SCOPE = 0x1
2615 WIN_WRITEDMA_QUEUED_EXT = 0x36 2615 TIPC_ZONE_SIZE = 0xff
2616 WIN_WRITE_BUFFER = 0xe8 2616 TMPFS_MAGIC = 0x1021994
2617 WIN_WRITE_EXT = 0x34 2617 TOSTOP = 0x100
2618 WIN_WRITE_LONG = 0x32 2618 TPACKET_ALIGNMENT = 0x10
2619 WIN_WRITE_LONG_ONCE = 0x33 2619 TPACKET_HDRLEN = 0x34
2620 WIN_WRITE_ONCE = 0x31 2620 TP_STATUS_AVAILABLE = 0x0
2621 WIN_WRITE_SAME = 0xe9 2621 TP_STATUS_BLK_TMO = 0x20
2622 WIN_WRITE_VERIFY = 0x3c 2622 TP_STATUS_COPY = 0x2
2623 WNOHANG = 0x1 2623 TP_STATUS_CSUMNOTREADY = 0x8
2624 WNOTHREAD = 0x20000000 2624 TP_STATUS_CSUM_VALID = 0x80
2625 WNOWAIT = 0x1000000 2625 TP_STATUS_KERNEL = 0x0
2626 WORDSIZE = 0x40 2626 TP_STATUS_LOSING = 0x4
2627 WSTOPPED = 0x2 2627 TP_STATUS_SENDING = 0x2
2628 WUNTRACED = 0x2 2628 TP_STATUS_SEND_REQUEST = 0x1
2629 XATTR_CREATE = 0x1 2629 TP_STATUS_TS_RAW_HARDWARE = 0x80000000
2630 XATTR_REPLACE = 0x2 2630 TP_STATUS_TS_SOFTWARE = 0x20000000
2631 XCASE = 0x4 2631 TP_STATUS_TS_SYS_HARDWARE = 0x40000000
2632 XDP_COPY = 0x2 2632 TP_STATUS_USER = 0x1
2633 XDP_FLAGS_DRV_MODE = 0x4 2633 TP_STATUS_VLAN_TPID_VALID = 0x40
2634 XDP_FLAGS_HW_MODE = 0x8 2634 TP_STATUS_VLAN_VALID = 0x10
2635 XDP_FLAGS_MASK = 0xf 2635 TP_STATUS_WRONG_FORMAT = 0x4
2636 XDP_FLAGS_MODES = 0xe 2636 TRACEFS_MAGIC = 0x74726163
2637 XDP_FLAGS_SKB_MODE = 0x2 2637 TS_COMM_LEN = 0x20
2638 XDP_FLAGS_UPDATE_IF_NOEXIST = 0x1 2638 TUNATTACHFILTER = 0x401054d5
2639 XDP_MMAP_OFFSETS = 0x1 2639 TUNDETACHFILTER = 0x401054d6
2640 XDP_PACKET_HEADROOM = 0x100 2640 TUNGETDEVNETNS = 0x54e3
2641 XDP_PGOFF_RX_RING = 0x0 2641 TUNGETFEATURES = 0x800454cf
2642 XDP_PGOFF_TX_RING = 0x80000000 2642 TUNGETFILTER = 0x801054db
2643 XDP_RX_RING = 0x2 2643 TUNGETIFF = 0x800454d2
2644 XDP_SHARED_UMEM = 0x1 2644 TUNGETSNDBUF = 0x800454d3
2645 XDP_STATISTICS = 0x7 2645 TUNGETVNETBE = 0x800454df
2646 XDP_TX_RING = 0x3 2646 TUNGETVNETHDRSZ = 0x800454d7
2647 XDP_UMEM_COMPLETION_RING = 0x6 2647 TUNGETVNETLE = 0x800454dd
2648 XDP_UMEM_FILL_RING = 0x5 2648 TUNSETCARRIER = 0x400454e2
2649 XDP_UMEM_PGOFF_COMPLETION_RING = 0x180000000 2649 TUNSETDEBUG = 0x400454c9
2650 XDP_UMEM_PGOFF_FILL_RING = 0x100000000 2650 TUNSETFILTEREBPF = 0x800454e1
2651 XDP_UMEM_REG = 0x4 2651 TUNSETGROUP = 0x400454ce
2652 XDP_ZEROCOPY = 0x4 2652 TUNSETIFF = 0x400454ca
2653 XENFS_SUPER_MAGIC = 0xabba1974 2653 TUNSETIFINDEX = 0x400454da
2654 XFS_SUPER_MAGIC = 0x58465342 2654 TUNSETLINK = 0x400454cd
2655 XTABS = 0x1800 2655 TUNSETNOCSUM = 0x400454c8
2656 ZSMALLOC_MAGIC = 0x58295829 2656 TUNSETOFFLOAD = 0x400454d0
2657 TUNSETOWNER = 0x400454cc
2658 TUNSETPERSIST = 0x400454cb
2659 TUNSETQUEUE = 0x400454d9
2660 TUNSETSNDBUF = 0x400454d4
2661 TUNSETSTEERINGEBPF = 0x800454e0
2662 TUNSETTXFILTER = 0x400454d1
2663 TUNSETVNETBE = 0x400454de
2664 TUNSETVNETHDRSZ = 0x400454d8
2665 TUNSETVNETLE = 0x400454dc
2666 UBI_IOCATT = 0x40186f40
2667 UBI_IOCDET = 0x40046f41
2668 UBI_IOCEBCH = 0x40044f02
2669 UBI_IOCEBER = 0x40044f01
2670 UBI_IOCEBISMAP = 0x80044f05
2671 UBI_IOCEBMAP = 0x40084f03
2672 UBI_IOCEBUNMAP = 0x40044f04
2673 UBI_IOCMKVOL = 0x40986f00
2674 UBI_IOCRMVOL = 0x40046f01
2675 UBI_IOCRNVOL = 0x51106f03
2676 UBI_IOCRPEB = 0x40046f04
2677 UBI_IOCRSVOL = 0x400c6f02
2678 UBI_IOCSETVOLPROP = 0x40104f06
2679 UBI_IOCSPEB = 0x40046f05
2680 UBI_IOCVOLCRBLK = 0x40804f07
2681 UBI_IOCVOLRMBLK = 0x4f08
2682 UBI_IOCVOLUP = 0x40084f00
2683 UDF_SUPER_MAGIC = 0x15013346
2684 UMOUNT_NOFOLLOW = 0x8
2685 USBDEVICE_SUPER_MAGIC = 0x9fa2
2686 UTIME_NOW = 0x3fffffff
2687 UTIME_OMIT = 0x3ffffffe
2688 V9FS_MAGIC = 0x1021997
2689 VDISCARD = 0xd
2690 VEOF = 0x4
2691 VEOL = 0xb
2692 VEOL2 = 0x10
2693 VERASE = 0x2
2694 VINTR = 0x0
2695 VKILL = 0x3
2696 VLNEXT = 0xf
2697 VMADDR_CID_ANY = 0xffffffff
2698 VMADDR_CID_HOST = 0x2
2699 VMADDR_CID_HYPERVISOR = 0x0
2700 VMADDR_CID_RESERVED = 0x1
2701 VMADDR_PORT_ANY = 0xffffffff
2702 VMIN = 0x6
2703 VM_SOCKETS_INVALID_VERSION = 0xffffffff
2704 VQUIT = 0x1
2705 VREPRINT = 0xc
2706 VSTART = 0x8
2707 VSTOP = 0x9
2708 VSUSP = 0xa
2709 VSWTC = 0x7
2710 VT0 = 0x0
2711 VT1 = 0x4000
2712 VTDLY = 0x4000
2713 VTIME = 0x5
2714 VWERASE = 0xe
2715 WALL = 0x40000000
2716 WCLONE = 0x80000000
2717 WCONTINUED = 0x8
2718 WDIOC_GETBOOTSTATUS = 0x80045702
2719 WDIOC_GETPRETIMEOUT = 0x80045709
2720 WDIOC_GETSTATUS = 0x80045701
2721 WDIOC_GETSUPPORT = 0x80285700
2722 WDIOC_GETTEMP = 0x80045703
2723 WDIOC_GETTIMELEFT = 0x8004570a
2724 WDIOC_GETTIMEOUT = 0x80045707
2725 WDIOC_KEEPALIVE = 0x80045705
2726 WDIOC_SETOPTIONS = 0x80045704
2727 WDIOC_SETPRETIMEOUT = 0xc0045708
2728 WDIOC_SETTIMEOUT = 0xc0045706
2729 WEXITED = 0x4
2730 WIN_ACKMEDIACHANGE = 0xdb
2731 WIN_CHECKPOWERMODE1 = 0xe5
2732 WIN_CHECKPOWERMODE2 = 0x98
2733 WIN_DEVICE_RESET = 0x8
2734 WIN_DIAGNOSE = 0x90
2735 WIN_DOORLOCK = 0xde
2736 WIN_DOORUNLOCK = 0xdf
2737 WIN_DOWNLOAD_MICROCODE = 0x92
2738 WIN_FLUSH_CACHE = 0xe7
2739 WIN_FLUSH_CACHE_EXT = 0xea
2740 WIN_FORMAT = 0x50
2741 WIN_GETMEDIASTATUS = 0xda
2742 WIN_IDENTIFY = 0xec
2743 WIN_IDENTIFY_DMA = 0xee
2744 WIN_IDLEIMMEDIATE = 0xe1
2745 WIN_INIT = 0x60
2746 WIN_MEDIAEJECT = 0xed
2747 WIN_MULTREAD = 0xc4
2748 WIN_MULTREAD_EXT = 0x29
2749 WIN_MULTWRITE = 0xc5
2750 WIN_MULTWRITE_EXT = 0x39
2751 WIN_NOP = 0x0
2752 WIN_PACKETCMD = 0xa0
2753 WIN_PIDENTIFY = 0xa1
2754 WIN_POSTBOOT = 0xdc
2755 WIN_PREBOOT = 0xdd
2756 WIN_QUEUED_SERVICE = 0xa2
2757 WIN_READ = 0x20
2758 WIN_READDMA = 0xc8
2759 WIN_READDMA_EXT = 0x25
2760 WIN_READDMA_ONCE = 0xc9
2761 WIN_READDMA_QUEUED = 0xc7
2762 WIN_READDMA_QUEUED_EXT = 0x26
2763 WIN_READ_BUFFER = 0xe4
2764 WIN_READ_EXT = 0x24
2765 WIN_READ_LONG = 0x22
2766 WIN_READ_LONG_ONCE = 0x23
2767 WIN_READ_NATIVE_MAX = 0xf8
2768 WIN_READ_NATIVE_MAX_EXT = 0x27
2769 WIN_READ_ONCE = 0x21
2770 WIN_RECAL = 0x10
2771 WIN_RESTORE = 0x10
2772 WIN_SECURITY_DISABLE = 0xf6
2773 WIN_SECURITY_ERASE_PREPARE = 0xf3
2774 WIN_SECURITY_ERASE_UNIT = 0xf4
2775 WIN_SECURITY_FREEZE_LOCK = 0xf5
2776 WIN_SECURITY_SET_PASS = 0xf1
2777 WIN_SECURITY_UNLOCK = 0xf2
2778 WIN_SEEK = 0x70
2779 WIN_SETFEATURES = 0xef
2780 WIN_SETIDLE1 = 0xe3
2781 WIN_SETIDLE2 = 0x97
2782 WIN_SETMULT = 0xc6
2783 WIN_SET_MAX = 0xf9
2784 WIN_SET_MAX_EXT = 0x37
2785 WIN_SLEEPNOW1 = 0xe6
2786 WIN_SLEEPNOW2 = 0x99
2787 WIN_SMART = 0xb0
2788 WIN_SPECIFY = 0x91
2789 WIN_SRST = 0x8
2790 WIN_STANDBY = 0xe2
2791 WIN_STANDBY2 = 0x96
2792 WIN_STANDBYNOW1 = 0xe0
2793 WIN_STANDBYNOW2 = 0x94
2794 WIN_VERIFY = 0x40
2795 WIN_VERIFY_EXT = 0x42
2796 WIN_VERIFY_ONCE = 0x41
2797 WIN_WRITE = 0x30
2798 WIN_WRITEDMA = 0xca
2799 WIN_WRITEDMA_EXT = 0x35
2800 WIN_WRITEDMA_ONCE = 0xcb
2801 WIN_WRITEDMA_QUEUED = 0xcc
2802 WIN_WRITEDMA_QUEUED_EXT = 0x36
2803 WIN_WRITE_BUFFER = 0xe8
2804 WIN_WRITE_EXT = 0x34
2805 WIN_WRITE_LONG = 0x32
2806 WIN_WRITE_LONG_ONCE = 0x33
2807 WIN_WRITE_ONCE = 0x31
2808 WIN_WRITE_SAME = 0xe9
2809 WIN_WRITE_VERIFY = 0x3c
2810 WNOHANG = 0x1
2811 WNOTHREAD = 0x20000000
2812 WNOWAIT = 0x1000000
2813 WORDSIZE = 0x40
2814 WSTOPPED = 0x2
2815 WUNTRACED = 0x2
2816 XATTR_CREATE = 0x1
2817 XATTR_REPLACE = 0x2
2818 XCASE = 0x4
2819 XDP_COPY = 0x2
2820 XDP_FLAGS_DRV_MODE = 0x4
2821 XDP_FLAGS_HW_MODE = 0x8
2822 XDP_FLAGS_MASK = 0xf
2823 XDP_FLAGS_MODES = 0xe
2824 XDP_FLAGS_SKB_MODE = 0x2
2825 XDP_FLAGS_UPDATE_IF_NOEXIST = 0x1
2826 XDP_MMAP_OFFSETS = 0x1
2827 XDP_OPTIONS = 0x8
2828 XDP_OPTIONS_ZEROCOPY = 0x1
2829 XDP_PACKET_HEADROOM = 0x100
2830 XDP_PGOFF_RX_RING = 0x0
2831 XDP_PGOFF_TX_RING = 0x80000000
2832 XDP_RING_NEED_WAKEUP = 0x1
2833 XDP_RX_RING = 0x2
2834 XDP_SHARED_UMEM = 0x1
2835 XDP_STATISTICS = 0x7
2836 XDP_TX_RING = 0x3
2837 XDP_UMEM_COMPLETION_RING = 0x6
2838 XDP_UMEM_FILL_RING = 0x5
2839 XDP_UMEM_PGOFF_COMPLETION_RING = 0x180000000
2840 XDP_UMEM_PGOFF_FILL_RING = 0x100000000
2841 XDP_UMEM_REG = 0x4
2842 XDP_UMEM_UNALIGNED_CHUNK_FLAG = 0x1
2843 XDP_USE_NEED_WAKEUP = 0x8
2844 XDP_ZEROCOPY = 0x4
2845 XENFS_SUPER_MAGIC = 0xabba1974
2846 XFS_SUPER_MAGIC = 0x58465342
2847 XTABS = 0x1800
2848 Z3FOLD_MAGIC = 0x33
2849 ZSMALLOC_MAGIC = 0x58295829
2657) 2850)
2658 2851
2659// Errors 2852// Errors
diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go b/vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go
index 1dfacf1..7d64d6e 100644
--- a/vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go
+++ b/vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go
@@ -11,2722 +11,2915 @@ package unix
11import "syscall" 11import "syscall"
12 12
13const ( 13const (
14 AAFS_MAGIC = 0x5a3c69f0 14 AAFS_MAGIC = 0x5a3c69f0
15 ADFS_SUPER_MAGIC = 0xadf5 15 ADFS_SUPER_MAGIC = 0xadf5
16 AFFS_SUPER_MAGIC = 0xadff 16 AFFS_SUPER_MAGIC = 0xadff
17 AFS_FS_MAGIC = 0x6b414653 17 AFS_FS_MAGIC = 0x6b414653
18 AFS_SUPER_MAGIC = 0x5346414f 18 AFS_SUPER_MAGIC = 0x5346414f
19 AF_ALG = 0x26 19 AF_ALG = 0x26
20 AF_APPLETALK = 0x5 20 AF_APPLETALK = 0x5
21 AF_ASH = 0x12 21 AF_ASH = 0x12
22 AF_ATMPVC = 0x8 22 AF_ATMPVC = 0x8
23 AF_ATMSVC = 0x14 23 AF_ATMSVC = 0x14
24 AF_AX25 = 0x3 24 AF_AX25 = 0x3
25 AF_BLUETOOTH = 0x1f 25 AF_BLUETOOTH = 0x1f
26 AF_BRIDGE = 0x7 26 AF_BRIDGE = 0x7
27 AF_CAIF = 0x25 27 AF_CAIF = 0x25
28 AF_CAN = 0x1d 28 AF_CAN = 0x1d
29 AF_DECnet = 0xc 29 AF_DECnet = 0xc
30 AF_ECONET = 0x13 30 AF_ECONET = 0x13
31 AF_FILE = 0x1 31 AF_FILE = 0x1
32 AF_IB = 0x1b 32 AF_IB = 0x1b
33 AF_IEEE802154 = 0x24 33 AF_IEEE802154 = 0x24
34 AF_INET = 0x2 34 AF_INET = 0x2
35 AF_INET6 = 0xa 35 AF_INET6 = 0xa
36 AF_IPX = 0x4 36 AF_IPX = 0x4
37 AF_IRDA = 0x17 37 AF_IRDA = 0x17
38 AF_ISDN = 0x22 38 AF_ISDN = 0x22
39 AF_IUCV = 0x20 39 AF_IUCV = 0x20
40 AF_KCM = 0x29 40 AF_KCM = 0x29
41 AF_KEY = 0xf 41 AF_KEY = 0xf
42 AF_LLC = 0x1a 42 AF_LLC = 0x1a
43 AF_LOCAL = 0x1 43 AF_LOCAL = 0x1
44 AF_MAX = 0x2d 44 AF_MAX = 0x2d
45 AF_MPLS = 0x1c 45 AF_MPLS = 0x1c
46 AF_NETBEUI = 0xd 46 AF_NETBEUI = 0xd
47 AF_NETLINK = 0x10 47 AF_NETLINK = 0x10
48 AF_NETROM = 0x6 48 AF_NETROM = 0x6
49 AF_NFC = 0x27 49 AF_NFC = 0x27
50 AF_PACKET = 0x11 50 AF_PACKET = 0x11
51 AF_PHONET = 0x23 51 AF_PHONET = 0x23
52 AF_PPPOX = 0x18 52 AF_PPPOX = 0x18
53 AF_QIPCRTR = 0x2a 53 AF_QIPCRTR = 0x2a
54 AF_RDS = 0x15 54 AF_RDS = 0x15
55 AF_ROSE = 0xb 55 AF_ROSE = 0xb
56 AF_ROUTE = 0x10 56 AF_ROUTE = 0x10
57 AF_RXRPC = 0x21 57 AF_RXRPC = 0x21
58 AF_SECURITY = 0xe 58 AF_SECURITY = 0xe
59 AF_SMC = 0x2b 59 AF_SMC = 0x2b
60 AF_SNA = 0x16 60 AF_SNA = 0x16
61 AF_TIPC = 0x1e 61 AF_TIPC = 0x1e
62 AF_UNIX = 0x1 62 AF_UNIX = 0x1
63 AF_UNSPEC = 0x0 63 AF_UNSPEC = 0x0
64 AF_VSOCK = 0x28 64 AF_VSOCK = 0x28
65 AF_WANPIPE = 0x19 65 AF_WANPIPE = 0x19
66 AF_X25 = 0x9 66 AF_X25 = 0x9
67 AF_XDP = 0x2c 67 AF_XDP = 0x2c
68 ALG_OP_DECRYPT = 0x0 68 ALG_OP_DECRYPT = 0x0
69 ALG_OP_ENCRYPT = 0x1 69 ALG_OP_ENCRYPT = 0x1
70 ALG_SET_AEAD_ASSOCLEN = 0x4 70 ALG_SET_AEAD_ASSOCLEN = 0x4
71 ALG_SET_AEAD_AUTHSIZE = 0x5 71 ALG_SET_AEAD_AUTHSIZE = 0x5
72 ALG_SET_IV = 0x2 72 ALG_SET_IV = 0x2
73 ALG_SET_KEY = 0x1 73 ALG_SET_KEY = 0x1
74 ALG_SET_OP = 0x3 74 ALG_SET_OP = 0x3
75 ANON_INODE_FS_MAGIC = 0x9041934 75 ANON_INODE_FS_MAGIC = 0x9041934
76 ARPHRD_6LOWPAN = 0x339 76 ARPHRD_6LOWPAN = 0x339
77 ARPHRD_ADAPT = 0x108 77 ARPHRD_ADAPT = 0x108
78 ARPHRD_APPLETLK = 0x8 78 ARPHRD_APPLETLK = 0x8
79 ARPHRD_ARCNET = 0x7 79 ARPHRD_ARCNET = 0x7
80 ARPHRD_ASH = 0x30d 80 ARPHRD_ASH = 0x30d
81 ARPHRD_ATM = 0x13 81 ARPHRD_ATM = 0x13
82 ARPHRD_AX25 = 0x3 82 ARPHRD_AX25 = 0x3
83 ARPHRD_BIF = 0x307 83 ARPHRD_BIF = 0x307
84 ARPHRD_CAIF = 0x336 84 ARPHRD_CAIF = 0x336
85 ARPHRD_CAN = 0x118 85 ARPHRD_CAN = 0x118
86 ARPHRD_CHAOS = 0x5 86 ARPHRD_CHAOS = 0x5
87 ARPHRD_CISCO = 0x201 87 ARPHRD_CISCO = 0x201
88 ARPHRD_CSLIP = 0x101 88 ARPHRD_CSLIP = 0x101
89 ARPHRD_CSLIP6 = 0x103 89 ARPHRD_CSLIP6 = 0x103
90 ARPHRD_DDCMP = 0x205 90 ARPHRD_DDCMP = 0x205
91 ARPHRD_DLCI = 0xf 91 ARPHRD_DLCI = 0xf
92 ARPHRD_ECONET = 0x30e 92 ARPHRD_ECONET = 0x30e
93 ARPHRD_EETHER = 0x2 93 ARPHRD_EETHER = 0x2
94 ARPHRD_ETHER = 0x1 94 ARPHRD_ETHER = 0x1
95 ARPHRD_EUI64 = 0x1b 95 ARPHRD_EUI64 = 0x1b
96 ARPHRD_FCAL = 0x311 96 ARPHRD_FCAL = 0x311
97 ARPHRD_FCFABRIC = 0x313 97 ARPHRD_FCFABRIC = 0x313
98 ARPHRD_FCPL = 0x312 98 ARPHRD_FCPL = 0x312
99 ARPHRD_FCPP = 0x310 99 ARPHRD_FCPP = 0x310
100 ARPHRD_FDDI = 0x306 100 ARPHRD_FDDI = 0x306
101 ARPHRD_FRAD = 0x302 101 ARPHRD_FRAD = 0x302
102 ARPHRD_HDLC = 0x201 102 ARPHRD_HDLC = 0x201
103 ARPHRD_HIPPI = 0x30c 103 ARPHRD_HIPPI = 0x30c
104 ARPHRD_HWX25 = 0x110 104 ARPHRD_HWX25 = 0x110
105 ARPHRD_IEEE1394 = 0x18 105 ARPHRD_IEEE1394 = 0x18
106 ARPHRD_IEEE802 = 0x6 106 ARPHRD_IEEE802 = 0x6
107 ARPHRD_IEEE80211 = 0x321 107 ARPHRD_IEEE80211 = 0x321
108 ARPHRD_IEEE80211_PRISM = 0x322 108 ARPHRD_IEEE80211_PRISM = 0x322
109 ARPHRD_IEEE80211_RADIOTAP = 0x323 109 ARPHRD_IEEE80211_RADIOTAP = 0x323
110 ARPHRD_IEEE802154 = 0x324 110 ARPHRD_IEEE802154 = 0x324
111 ARPHRD_IEEE802154_MONITOR = 0x325 111 ARPHRD_IEEE802154_MONITOR = 0x325
112 ARPHRD_IEEE802_TR = 0x320 112 ARPHRD_IEEE802_TR = 0x320
113 ARPHRD_INFINIBAND = 0x20 113 ARPHRD_INFINIBAND = 0x20
114 ARPHRD_IP6GRE = 0x337 114 ARPHRD_IP6GRE = 0x337
115 ARPHRD_IPDDP = 0x309 115 ARPHRD_IPDDP = 0x309
116 ARPHRD_IPGRE = 0x30a 116 ARPHRD_IPGRE = 0x30a
117 ARPHRD_IRDA = 0x30f 117 ARPHRD_IRDA = 0x30f
118 ARPHRD_LAPB = 0x204 118 ARPHRD_LAPB = 0x204
119 ARPHRD_LOCALTLK = 0x305 119 ARPHRD_LOCALTLK = 0x305
120 ARPHRD_LOOPBACK = 0x304 120 ARPHRD_LOOPBACK = 0x304
121 ARPHRD_METRICOM = 0x17 121 ARPHRD_METRICOM = 0x17
122 ARPHRD_NETLINK = 0x338 122 ARPHRD_NETLINK = 0x338
123 ARPHRD_NETROM = 0x0 123 ARPHRD_NETROM = 0x0
124 ARPHRD_NONE = 0xfffe 124 ARPHRD_NONE = 0xfffe
125 ARPHRD_PHONET = 0x334 125 ARPHRD_PHONET = 0x334
126 ARPHRD_PHONET_PIPE = 0x335 126 ARPHRD_PHONET_PIPE = 0x335
127 ARPHRD_PIMREG = 0x30b 127 ARPHRD_PIMREG = 0x30b
128 ARPHRD_PPP = 0x200 128 ARPHRD_PPP = 0x200
129 ARPHRD_PRONET = 0x4 129 ARPHRD_PRONET = 0x4
130 ARPHRD_RAWHDLC = 0x206 130 ARPHRD_RAWHDLC = 0x206
131 ARPHRD_RAWIP = 0x207 131 ARPHRD_RAWIP = 0x207
132 ARPHRD_ROSE = 0x10e 132 ARPHRD_ROSE = 0x10e
133 ARPHRD_RSRVD = 0x104 133 ARPHRD_RSRVD = 0x104
134 ARPHRD_SIT = 0x308 134 ARPHRD_SIT = 0x308
135 ARPHRD_SKIP = 0x303 135 ARPHRD_SKIP = 0x303
136 ARPHRD_SLIP = 0x100 136 ARPHRD_SLIP = 0x100
137 ARPHRD_SLIP6 = 0x102 137 ARPHRD_SLIP6 = 0x102
138 ARPHRD_TUNNEL = 0x300 138 ARPHRD_TUNNEL = 0x300
139 ARPHRD_TUNNEL6 = 0x301 139 ARPHRD_TUNNEL6 = 0x301
140 ARPHRD_VOID = 0xffff 140 ARPHRD_VOID = 0xffff
141 ARPHRD_VSOCKMON = 0x33a 141 ARPHRD_VSOCKMON = 0x33a
142 ARPHRD_X25 = 0x10f 142 ARPHRD_X25 = 0x10f
143 AUTOFS_SUPER_MAGIC = 0x187 143 AUTOFS_SUPER_MAGIC = 0x187
144 B0 = 0x0 144 B0 = 0x0
145 B1000000 = 0x1008 145 B1000000 = 0x1008
146 B110 = 0x3 146 B110 = 0x3
147 B115200 = 0x1002 147 B115200 = 0x1002
148 B1152000 = 0x1009 148 B1152000 = 0x1009
149 B1200 = 0x9 149 B1200 = 0x9
150 B134 = 0x4 150 B134 = 0x4
151 B150 = 0x5 151 B150 = 0x5
152 B1500000 = 0x100a 152 B1500000 = 0x100a
153 B1800 = 0xa 153 B1800 = 0xa
154 B19200 = 0xe 154 B19200 = 0xe
155 B200 = 0x6 155 B200 = 0x6
156 B2000000 = 0x100b 156 B2000000 = 0x100b
157 B230400 = 0x1003 157 B230400 = 0x1003
158 B2400 = 0xb 158 B2400 = 0xb
159 B2500000 = 0x100c 159 B2500000 = 0x100c
160 B300 = 0x7 160 B300 = 0x7
161 B3000000 = 0x100d 161 B3000000 = 0x100d
162 B3500000 = 0x100e 162 B3500000 = 0x100e
163 B38400 = 0xf 163 B38400 = 0xf
164 B4000000 = 0x100f 164 B4000000 = 0x100f
165 B460800 = 0x1004 165 B460800 = 0x1004
166 B4800 = 0xc 166 B4800 = 0xc
167 B50 = 0x1 167 B50 = 0x1
168 B500000 = 0x1005 168 B500000 = 0x1005
169 B57600 = 0x1001 169 B57600 = 0x1001
170 B576000 = 0x1006 170 B576000 = 0x1006
171 B600 = 0x8 171 B600 = 0x8
172 B75 = 0x2 172 B75 = 0x2
173 B921600 = 0x1007 173 B921600 = 0x1007
174 B9600 = 0xd 174 B9600 = 0xd
175 BALLOON_KVM_MAGIC = 0x13661366 175 BALLOON_KVM_MAGIC = 0x13661366
176 BDEVFS_MAGIC = 0x62646576 176 BDEVFS_MAGIC = 0x62646576
177 BINDERFS_SUPER_MAGIC = 0x6c6f6f70 177 BINDERFS_SUPER_MAGIC = 0x6c6f6f70
178 BINFMTFS_MAGIC = 0x42494e4d 178 BINFMTFS_MAGIC = 0x42494e4d
179 BLKBSZGET = 0x80081270 179 BLKBSZGET = 0x80081270
180 BLKBSZSET = 0x40081271 180 BLKBSZSET = 0x40081271
181 BLKFLSBUF = 0x1261 181 BLKFLSBUF = 0x1261
182 BLKFRAGET = 0x1265 182 BLKFRAGET = 0x1265
183 BLKFRASET = 0x1264 183 BLKFRASET = 0x1264
184 BLKGETSIZE = 0x1260 184 BLKGETSIZE = 0x1260
185 BLKGETSIZE64 = 0x80081272 185 BLKGETSIZE64 = 0x80081272
186 BLKPBSZGET = 0x127b 186 BLKPBSZGET = 0x127b
187 BLKRAGET = 0x1263 187 BLKRAGET = 0x1263
188 BLKRASET = 0x1262 188 BLKRASET = 0x1262
189 BLKROGET = 0x125e 189 BLKROGET = 0x125e
190 BLKROSET = 0x125d 190 BLKROSET = 0x125d
191 BLKRRPART = 0x125f 191 BLKRRPART = 0x125f
192 BLKSECTGET = 0x1267 192 BLKSECTGET = 0x1267
193 BLKSECTSET = 0x1266 193 BLKSECTSET = 0x1266
194 BLKSSZGET = 0x1268 194 BLKSSZGET = 0x1268
195 BOTHER = 0x1000 195 BOTHER = 0x1000
196 BPF_A = 0x10 196 BPF_A = 0x10
197 BPF_ABS = 0x20 197 BPF_ABS = 0x20
198 BPF_ADD = 0x0 198 BPF_ADD = 0x0
199 BPF_ADJ_ROOM_ENCAP_L2_MASK = 0xff 199 BPF_ADJ_ROOM_ENCAP_L2_MASK = 0xff
200 BPF_ADJ_ROOM_ENCAP_L2_SHIFT = 0x38 200 BPF_ADJ_ROOM_ENCAP_L2_SHIFT = 0x38
201 BPF_ALU = 0x4 201 BPF_ALU = 0x4
202 BPF_ALU64 = 0x7 202 BPF_ALU64 = 0x7
203 BPF_AND = 0x50 203 BPF_AND = 0x50
204 BPF_ANY = 0x0 204 BPF_ANY = 0x0
205 BPF_ARSH = 0xc0 205 BPF_ARSH = 0xc0
206 BPF_B = 0x10 206 BPF_B = 0x10
207 BPF_BUILD_ID_SIZE = 0x14 207 BPF_BUILD_ID_SIZE = 0x14
208 BPF_CALL = 0x80 208 BPF_CALL = 0x80
209 BPF_DEVCG_ACC_MKNOD = 0x1 209 BPF_DEVCG_ACC_MKNOD = 0x1
210 BPF_DEVCG_ACC_READ = 0x2 210 BPF_DEVCG_ACC_READ = 0x2
211 BPF_DEVCG_ACC_WRITE = 0x4 211 BPF_DEVCG_ACC_WRITE = 0x4
212 BPF_DEVCG_DEV_BLOCK = 0x1 212 BPF_DEVCG_DEV_BLOCK = 0x1
213 BPF_DEVCG_DEV_CHAR = 0x2 213 BPF_DEVCG_DEV_CHAR = 0x2
214 BPF_DIV = 0x30 214 BPF_DIV = 0x30
215 BPF_DW = 0x18 215 BPF_DW = 0x18
216 BPF_END = 0xd0 216 BPF_END = 0xd0
217 BPF_EXIST = 0x2 217 BPF_EXIST = 0x2
218 BPF_EXIT = 0x90 218 BPF_EXIT = 0x90
219 BPF_FROM_BE = 0x8 219 BPF_FLOW_DISSECTOR_F_PARSE_1ST_FRAG = 0x1
220 BPF_FROM_LE = 0x0 220 BPF_FLOW_DISSECTOR_F_STOP_AT_ENCAP = 0x4
221 BPF_FS_MAGIC = 0xcafe4a11 221 BPF_FLOW_DISSECTOR_F_STOP_AT_FLOW_LABEL = 0x2
222 BPF_F_ADJ_ROOM_ENCAP_L3_IPV4 = 0x2 222 BPF_FROM_BE = 0x8
223 BPF_F_ADJ_ROOM_ENCAP_L3_IPV6 = 0x4 223 BPF_FROM_LE = 0x0
224 BPF_F_ADJ_ROOM_ENCAP_L4_GRE = 0x8 224 BPF_FS_MAGIC = 0xcafe4a11
225 BPF_F_ADJ_ROOM_ENCAP_L4_UDP = 0x10 225 BPF_F_ADJ_ROOM_ENCAP_L3_IPV4 = 0x2
226 BPF_F_ADJ_ROOM_FIXED_GSO = 0x1 226 BPF_F_ADJ_ROOM_ENCAP_L3_IPV6 = 0x4
227 BPF_F_ALLOW_MULTI = 0x2 227 BPF_F_ADJ_ROOM_ENCAP_L4_GRE = 0x8
228 BPF_F_ALLOW_OVERRIDE = 0x1 228 BPF_F_ADJ_ROOM_ENCAP_L4_UDP = 0x10
229 BPF_F_ANY_ALIGNMENT = 0x2 229 BPF_F_ADJ_ROOM_FIXED_GSO = 0x1
230 BPF_F_CTXLEN_MASK = 0xfffff00000000 230 BPF_F_ALLOW_MULTI = 0x2
231 BPF_F_CURRENT_CPU = 0xffffffff 231 BPF_F_ALLOW_OVERRIDE = 0x1
232 BPF_F_CURRENT_NETNS = -0x1 232 BPF_F_ANY_ALIGNMENT = 0x2
233 BPF_F_DONT_FRAGMENT = 0x4 233 BPF_F_CLONE = 0x200
234 BPF_F_FAST_STACK_CMP = 0x200 234 BPF_F_CTXLEN_MASK = 0xfffff00000000
235 BPF_F_HDR_FIELD_MASK = 0xf 235 BPF_F_CURRENT_CPU = 0xffffffff
236 BPF_F_INDEX_MASK = 0xffffffff 236 BPF_F_CURRENT_NETNS = -0x1
237 BPF_F_INGRESS = 0x1 237 BPF_F_DONT_FRAGMENT = 0x4
238 BPF_F_INVALIDATE_HASH = 0x2 238 BPF_F_FAST_STACK_CMP = 0x200
239 BPF_F_LOCK = 0x4 239 BPF_F_HDR_FIELD_MASK = 0xf
240 BPF_F_MARK_ENFORCE = 0x40 240 BPF_F_INDEX_MASK = 0xffffffff
241 BPF_F_MARK_MANGLED_0 = 0x20 241 BPF_F_INGRESS = 0x1
242 BPF_F_NO_COMMON_LRU = 0x2 242 BPF_F_INVALIDATE_HASH = 0x2
243 BPF_F_NO_PREALLOC = 0x1 243 BPF_F_LOCK = 0x4
244 BPF_F_NUMA_NODE = 0x4 244 BPF_F_MARK_ENFORCE = 0x40
245 BPF_F_PSEUDO_HDR = 0x10 245 BPF_F_MARK_MANGLED_0 = 0x20
246 BPF_F_QUERY_EFFECTIVE = 0x1 246 BPF_F_MMAPABLE = 0x400
247 BPF_F_RDONLY = 0x8 247 BPF_F_NO_COMMON_LRU = 0x2
248 BPF_F_RDONLY_PROG = 0x80 248 BPF_F_NO_PREALLOC = 0x1
249 BPF_F_RECOMPUTE_CSUM = 0x1 249 BPF_F_NUMA_NODE = 0x4
250 BPF_F_REUSE_STACKID = 0x400 250 BPF_F_PSEUDO_HDR = 0x10
251 BPF_F_SEQ_NUMBER = 0x8 251 BPF_F_QUERY_EFFECTIVE = 0x1
252 BPF_F_SKIP_FIELD_MASK = 0xff 252 BPF_F_RDONLY = 0x8
253 BPF_F_STACK_BUILD_ID = 0x20 253 BPF_F_RDONLY_PROG = 0x80
254 BPF_F_STRICT_ALIGNMENT = 0x1 254 BPF_F_RECOMPUTE_CSUM = 0x1
255 BPF_F_SYSCTL_BASE_NAME = 0x1 255 BPF_F_REUSE_STACKID = 0x400
256 BPF_F_TUNINFO_IPV6 = 0x1 256 BPF_F_SEQ_NUMBER = 0x8
257 BPF_F_USER_BUILD_ID = 0x800 257 BPF_F_SKIP_FIELD_MASK = 0xff
258 BPF_F_USER_STACK = 0x100 258 BPF_F_STACK_BUILD_ID = 0x20
259 BPF_F_WRONLY = 0x10 259 BPF_F_STRICT_ALIGNMENT = 0x1
260 BPF_F_WRONLY_PROG = 0x100 260 BPF_F_SYSCTL_BASE_NAME = 0x1
261 BPF_F_ZERO_CSUM_TX = 0x2 261 BPF_F_TEST_RND_HI32 = 0x4
262 BPF_F_ZERO_SEED = 0x40 262 BPF_F_TEST_STATE_FREQ = 0x8
263 BPF_H = 0x8 263 BPF_F_TUNINFO_IPV6 = 0x1
264 BPF_IMM = 0x0 264 BPF_F_USER_BUILD_ID = 0x800
265 BPF_IND = 0x40 265 BPF_F_USER_STACK = 0x100
266 BPF_JA = 0x0 266 BPF_F_WRONLY = 0x10
267 BPF_JEQ = 0x10 267 BPF_F_WRONLY_PROG = 0x100
268 BPF_JGE = 0x30 268 BPF_F_ZERO_CSUM_TX = 0x2
269 BPF_JGT = 0x20 269 BPF_F_ZERO_SEED = 0x40
270 BPF_JLE = 0xb0 270 BPF_H = 0x8
271 BPF_JLT = 0xa0 271 BPF_IMM = 0x0
272 BPF_JMP = 0x5 272 BPF_IND = 0x40
273 BPF_JMP32 = 0x6 273 BPF_JA = 0x0
274 BPF_JNE = 0x50 274 BPF_JEQ = 0x10
275 BPF_JSET = 0x40 275 BPF_JGE = 0x30
276 BPF_JSGE = 0x70 276 BPF_JGT = 0x20
277 BPF_JSGT = 0x60 277 BPF_JLE = 0xb0
278 BPF_JSLE = 0xd0 278 BPF_JLT = 0xa0
279 BPF_JSLT = 0xc0 279 BPF_JMP = 0x5
280 BPF_K = 0x0 280 BPF_JMP32 = 0x6
281 BPF_LD = 0x0 281 BPF_JNE = 0x50
282 BPF_LDX = 0x1 282 BPF_JSET = 0x40
283 BPF_LEN = 0x80 283 BPF_JSGE = 0x70
284 BPF_LL_OFF = -0x200000 284 BPF_JSGT = 0x60
285 BPF_LSH = 0x60 285 BPF_JSLE = 0xd0
286 BPF_MAJOR_VERSION = 0x1 286 BPF_JSLT = 0xc0
287 BPF_MAXINSNS = 0x1000 287 BPF_K = 0x0
288 BPF_MEM = 0x60 288 BPF_LD = 0x0
289 BPF_MEMWORDS = 0x10 289 BPF_LDX = 0x1
290 BPF_MINOR_VERSION = 0x1 290 BPF_LEN = 0x80
291 BPF_MISC = 0x7 291 BPF_LL_OFF = -0x200000
292 BPF_MOD = 0x90 292 BPF_LSH = 0x60
293 BPF_MOV = 0xb0 293 BPF_MAJOR_VERSION = 0x1
294 BPF_MSH = 0xa0 294 BPF_MAXINSNS = 0x1000
295 BPF_MUL = 0x20 295 BPF_MEM = 0x60
296 BPF_NEG = 0x80 296 BPF_MEMWORDS = 0x10
297 BPF_NET_OFF = -0x100000 297 BPF_MINOR_VERSION = 0x1
298 BPF_NOEXIST = 0x1 298 BPF_MISC = 0x7
299 BPF_OBJ_NAME_LEN = 0x10 299 BPF_MOD = 0x90
300 BPF_OR = 0x40 300 BPF_MOV = 0xb0
301 BPF_PSEUDO_CALL = 0x1 301 BPF_MSH = 0xa0
302 BPF_PSEUDO_MAP_FD = 0x1 302 BPF_MUL = 0x20
303 BPF_PSEUDO_MAP_VALUE = 0x2 303 BPF_NEG = 0x80
304 BPF_RET = 0x6 304 BPF_NET_OFF = -0x100000
305 BPF_RSH = 0x70 305 BPF_NOEXIST = 0x1
306 BPF_SK_STORAGE_GET_F_CREATE = 0x1 306 BPF_OBJ_NAME_LEN = 0x10
307 BPF_SOCK_OPS_ALL_CB_FLAGS = 0x7 307 BPF_OR = 0x40
308 BPF_SOCK_OPS_RETRANS_CB_FLAG = 0x2 308 BPF_PSEUDO_CALL = 0x1
309 BPF_SOCK_OPS_RTO_CB_FLAG = 0x1 309 BPF_PSEUDO_MAP_FD = 0x1
310 BPF_SOCK_OPS_STATE_CB_FLAG = 0x4 310 BPF_PSEUDO_MAP_VALUE = 0x2
311 BPF_ST = 0x2 311 BPF_RET = 0x6
312 BPF_STX = 0x3 312 BPF_RSH = 0x70
313 BPF_SUB = 0x10 313 BPF_SK_STORAGE_GET_F_CREATE = 0x1
314 BPF_TAG_SIZE = 0x8 314 BPF_SOCK_OPS_ALL_CB_FLAGS = 0xf
315 BPF_TAX = 0x0 315 BPF_SOCK_OPS_RETRANS_CB_FLAG = 0x2
316 BPF_TO_BE = 0x8 316 BPF_SOCK_OPS_RTO_CB_FLAG = 0x1
317 BPF_TO_LE = 0x0 317 BPF_SOCK_OPS_RTT_CB_FLAG = 0x8
318 BPF_TXA = 0x80 318 BPF_SOCK_OPS_STATE_CB_FLAG = 0x4
319 BPF_W = 0x0 319 BPF_ST = 0x2
320 BPF_X = 0x8 320 BPF_STX = 0x3
321 BPF_XADD = 0xc0 321 BPF_SUB = 0x10
322 BPF_XOR = 0xa0 322 BPF_TAG_SIZE = 0x8
323 BRKINT = 0x2 323 BPF_TAX = 0x0
324 BS0 = 0x0 324 BPF_TO_BE = 0x8
325 BS1 = 0x2000 325 BPF_TO_LE = 0x0
326 BSDLY = 0x2000 326 BPF_TXA = 0x80
327 BTRFS_SUPER_MAGIC = 0x9123683e 327 BPF_W = 0x0
328 BTRFS_TEST_MAGIC = 0x73727279 328 BPF_X = 0x8
329 CAN_BCM = 0x2 329 BPF_XADD = 0xc0
330 CAN_EFF_FLAG = 0x80000000 330 BPF_XOR = 0xa0
331 CAN_EFF_ID_BITS = 0x1d 331 BRKINT = 0x2
332 CAN_EFF_MASK = 0x1fffffff 332 BS0 = 0x0
333 CAN_ERR_FLAG = 0x20000000 333 BS1 = 0x2000
334 CAN_ERR_MASK = 0x1fffffff 334 BSDLY = 0x2000
335 CAN_INV_FILTER = 0x20000000 335 BTRFS_SUPER_MAGIC = 0x9123683e
336 CAN_ISOTP = 0x6 336 BTRFS_TEST_MAGIC = 0x73727279
337 CAN_MAX_DLC = 0x8 337 CAN_BCM = 0x2
338 CAN_MAX_DLEN = 0x8 338 CAN_EFF_FLAG = 0x80000000
339 CAN_MCNET = 0x5 339 CAN_EFF_ID_BITS = 0x1d
340 CAN_MTU = 0x10 340 CAN_EFF_MASK = 0x1fffffff
341 CAN_NPROTO = 0x7 341 CAN_ERR_FLAG = 0x20000000
342 CAN_RAW = 0x1 342 CAN_ERR_MASK = 0x1fffffff
343 CAN_RAW_FILTER_MAX = 0x200 343 CAN_INV_FILTER = 0x20000000
344 CAN_RTR_FLAG = 0x40000000 344 CAN_ISOTP = 0x6
345 CAN_SFF_ID_BITS = 0xb 345 CAN_J1939 = 0x7
346 CAN_SFF_MASK = 0x7ff 346 CAN_MAX_DLC = 0x8
347 CAN_TP16 = 0x3 347 CAN_MAX_DLEN = 0x8
348 CAN_TP20 = 0x4 348 CAN_MCNET = 0x5
349 CAP_AUDIT_CONTROL = 0x1e 349 CAN_MTU = 0x10
350 CAP_AUDIT_READ = 0x25 350 CAN_NPROTO = 0x8
351 CAP_AUDIT_WRITE = 0x1d 351 CAN_RAW = 0x1
352 CAP_BLOCK_SUSPEND = 0x24 352 CAN_RAW_FILTER_MAX = 0x200
353 CAP_CHOWN = 0x0 353 CAN_RTR_FLAG = 0x40000000
354 CAP_DAC_OVERRIDE = 0x1 354 CAN_SFF_ID_BITS = 0xb
355 CAP_DAC_READ_SEARCH = 0x2 355 CAN_SFF_MASK = 0x7ff
356 CAP_FOWNER = 0x3 356 CAN_TP16 = 0x3
357 CAP_FSETID = 0x4 357 CAN_TP20 = 0x4
358 CAP_IPC_LOCK = 0xe 358 CAP_AUDIT_CONTROL = 0x1e
359 CAP_IPC_OWNER = 0xf 359 CAP_AUDIT_READ = 0x25
360 CAP_KILL = 0x5 360 CAP_AUDIT_WRITE = 0x1d
361 CAP_LAST_CAP = 0x25 361 CAP_BLOCK_SUSPEND = 0x24
362 CAP_LEASE = 0x1c 362 CAP_CHOWN = 0x0
363 CAP_LINUX_IMMUTABLE = 0x9 363 CAP_DAC_OVERRIDE = 0x1
364 CAP_MAC_ADMIN = 0x21 364 CAP_DAC_READ_SEARCH = 0x2
365 CAP_MAC_OVERRIDE = 0x20 365 CAP_FOWNER = 0x3
366 CAP_MKNOD = 0x1b 366 CAP_FSETID = 0x4
367 CAP_NET_ADMIN = 0xc 367 CAP_IPC_LOCK = 0xe
368 CAP_NET_BIND_SERVICE = 0xa 368 CAP_IPC_OWNER = 0xf
369 CAP_NET_BROADCAST = 0xb 369 CAP_KILL = 0x5
370 CAP_NET_RAW = 0xd 370 CAP_LAST_CAP = 0x25
371 CAP_SETFCAP = 0x1f 371 CAP_LEASE = 0x1c
372 CAP_SETGID = 0x6 372 CAP_LINUX_IMMUTABLE = 0x9
373 CAP_SETPCAP = 0x8 373 CAP_MAC_ADMIN = 0x21
374 CAP_SETUID = 0x7 374 CAP_MAC_OVERRIDE = 0x20
375 CAP_SYSLOG = 0x22 375 CAP_MKNOD = 0x1b
376 CAP_SYS_ADMIN = 0x15 376 CAP_NET_ADMIN = 0xc
377 CAP_SYS_BOOT = 0x16 377 CAP_NET_BIND_SERVICE = 0xa
378 CAP_SYS_CHROOT = 0x12 378 CAP_NET_BROADCAST = 0xb
379 CAP_SYS_MODULE = 0x10 379 CAP_NET_RAW = 0xd
380 CAP_SYS_NICE = 0x17 380 CAP_SETFCAP = 0x1f
381 CAP_SYS_PACCT = 0x14 381 CAP_SETGID = 0x6
382 CAP_SYS_PTRACE = 0x13 382 CAP_SETPCAP = 0x8
383 CAP_SYS_RAWIO = 0x11 383 CAP_SETUID = 0x7
384 CAP_SYS_RESOURCE = 0x18 384 CAP_SYSLOG = 0x22
385 CAP_SYS_TIME = 0x19 385 CAP_SYS_ADMIN = 0x15
386 CAP_SYS_TTY_CONFIG = 0x1a 386 CAP_SYS_BOOT = 0x16
387 CAP_WAKE_ALARM = 0x23 387 CAP_SYS_CHROOT = 0x12
388 CBAUD = 0x100f 388 CAP_SYS_MODULE = 0x10
389 CBAUDEX = 0x1000 389 CAP_SYS_NICE = 0x17
390 CFLUSH = 0xf 390 CAP_SYS_PACCT = 0x14
391 CGROUP2_SUPER_MAGIC = 0x63677270 391 CAP_SYS_PTRACE = 0x13
392 CGROUP_SUPER_MAGIC = 0x27e0eb 392 CAP_SYS_RAWIO = 0x11
393 CIBAUD = 0x100f0000 393 CAP_SYS_RESOURCE = 0x18
394 CLOCAL = 0x800 394 CAP_SYS_TIME = 0x19
395 CLOCK_BOOTTIME = 0x7 395 CAP_SYS_TTY_CONFIG = 0x1a
396 CLOCK_BOOTTIME_ALARM = 0x9 396 CAP_WAKE_ALARM = 0x23
397 CLOCK_DEFAULT = 0x0 397 CBAUD = 0x100f
398 CLOCK_EXT = 0x1 398 CBAUDEX = 0x1000
399 CLOCK_INT = 0x2 399 CFLUSH = 0xf
400 CLOCK_MONOTONIC = 0x1 400 CGROUP2_SUPER_MAGIC = 0x63677270
401 CLOCK_MONOTONIC_COARSE = 0x6 401 CGROUP_SUPER_MAGIC = 0x27e0eb
402 CLOCK_MONOTONIC_RAW = 0x4 402 CIBAUD = 0x100f0000
403 CLOCK_PROCESS_CPUTIME_ID = 0x2 403 CLOCAL = 0x800
404 CLOCK_REALTIME = 0x0 404 CLOCK_BOOTTIME = 0x7
405 CLOCK_REALTIME_ALARM = 0x8 405 CLOCK_BOOTTIME_ALARM = 0x9
406 CLOCK_REALTIME_COARSE = 0x5 406 CLOCK_DEFAULT = 0x0
407 CLOCK_TAI = 0xb 407 CLOCK_EXT = 0x1
408 CLOCK_THREAD_CPUTIME_ID = 0x3 408 CLOCK_INT = 0x2
409 CLOCK_TXFROMRX = 0x4 409 CLOCK_MONOTONIC = 0x1
410 CLOCK_TXINT = 0x3 410 CLOCK_MONOTONIC_COARSE = 0x6
411 CLONE_CHILD_CLEARTID = 0x200000 411 CLOCK_MONOTONIC_RAW = 0x4
412 CLONE_CHILD_SETTID = 0x1000000 412 CLOCK_PROCESS_CPUTIME_ID = 0x2
413 CLONE_DETACHED = 0x400000 413 CLOCK_REALTIME = 0x0
414 CLONE_FILES = 0x400 414 CLOCK_REALTIME_ALARM = 0x8
415 CLONE_FS = 0x200 415 CLOCK_REALTIME_COARSE = 0x5
416 CLONE_IO = 0x80000000 416 CLOCK_TAI = 0xb
417 CLONE_NEWCGROUP = 0x2000000 417 CLOCK_THREAD_CPUTIME_ID = 0x3
418 CLONE_NEWIPC = 0x8000000 418 CLOCK_TXFROMRX = 0x4
419 CLONE_NEWNET = 0x40000000 419 CLOCK_TXINT = 0x3
420 CLONE_NEWNS = 0x20000 420 CLONE_ARGS_SIZE_VER0 = 0x40
421 CLONE_NEWPID = 0x20000000 421 CLONE_ARGS_SIZE_VER1 = 0x50
422 CLONE_NEWUSER = 0x10000000 422 CLONE_CHILD_CLEARTID = 0x200000
423 CLONE_NEWUTS = 0x4000000 423 CLONE_CHILD_SETTID = 0x1000000
424 CLONE_PARENT = 0x8000 424 CLONE_CLEAR_SIGHAND = 0x100000000
425 CLONE_PARENT_SETTID = 0x100000 425 CLONE_DETACHED = 0x400000
426 CLONE_PIDFD = 0x1000 426 CLONE_FILES = 0x400
427 CLONE_PTRACE = 0x2000 427 CLONE_FS = 0x200
428 CLONE_SETTLS = 0x80000 428 CLONE_IO = 0x80000000
429 CLONE_SIGHAND = 0x800 429 CLONE_NEWCGROUP = 0x2000000
430 CLONE_SYSVSEM = 0x40000 430 CLONE_NEWIPC = 0x8000000
431 CLONE_THREAD = 0x10000 431 CLONE_NEWNET = 0x40000000
432 CLONE_UNTRACED = 0x800000 432 CLONE_NEWNS = 0x20000
433 CLONE_VFORK = 0x4000 433 CLONE_NEWPID = 0x20000000
434 CLONE_VM = 0x100 434 CLONE_NEWUSER = 0x10000000
435 CMSPAR = 0x40000000 435 CLONE_NEWUTS = 0x4000000
436 CODA_SUPER_MAGIC = 0x73757245 436 CLONE_PARENT = 0x8000
437 CR0 = 0x0 437 CLONE_PARENT_SETTID = 0x100000
438 CR1 = 0x200 438 CLONE_PIDFD = 0x1000
439 CR2 = 0x400 439 CLONE_PTRACE = 0x2000
440 CR3 = 0x600 440 CLONE_SETTLS = 0x80000
441 CRAMFS_MAGIC = 0x28cd3d45 441 CLONE_SIGHAND = 0x800
442 CRDLY = 0x600 442 CLONE_SYSVSEM = 0x40000
443 CREAD = 0x80 443 CLONE_THREAD = 0x10000
444 CRTSCTS = 0x80000000 444 CLONE_UNTRACED = 0x800000
445 CRYPTO_MAX_NAME = 0x40 445 CLONE_VFORK = 0x4000
446 CRYPTO_MSG_MAX = 0x15 446 CLONE_VM = 0x100
447 CRYPTO_NR_MSGTYPES = 0x6 447 CMSPAR = 0x40000000
448 CRYPTO_REPORT_MAXSIZE = 0x160 448 CODA_SUPER_MAGIC = 0x73757245
449 CS5 = 0x0 449 CR0 = 0x0
450 CS6 = 0x10 450 CR1 = 0x200
451 CS7 = 0x20 451 CR2 = 0x400
452 CS8 = 0x30 452 CR3 = 0x600
453 CSIGNAL = 0xff 453 CRAMFS_MAGIC = 0x28cd3d45
454 CSIZE = 0x30 454 CRDLY = 0x600
455 CSTART = 0x11 455 CREAD = 0x80
456 CSTATUS = 0x0 456 CRTSCTS = 0x80000000
457 CSTOP = 0x13 457 CRYPTO_MAX_NAME = 0x40
458 CSTOPB = 0x40 458 CRYPTO_MSG_MAX = 0x15
459 CSUSP = 0x1a 459 CRYPTO_NR_MSGTYPES = 0x6
460 DAXFS_MAGIC = 0x64646178 460 CRYPTO_REPORT_MAXSIZE = 0x160
461 DEBUGFS_MAGIC = 0x64626720 461 CS5 = 0x0
462 DEVPTS_SUPER_MAGIC = 0x1cd1 462 CS6 = 0x10
463 DT_BLK = 0x6 463 CS7 = 0x20
464 DT_CHR = 0x2 464 CS8 = 0x30
465 DT_DIR = 0x4 465 CSIGNAL = 0xff
466 DT_FIFO = 0x1 466 CSIZE = 0x30
467 DT_LNK = 0xa 467 CSTART = 0x11
468 DT_REG = 0x8 468 CSTATUS = 0x0
469 DT_SOCK = 0xc 469 CSTOP = 0x13
470 DT_UNKNOWN = 0x0 470 CSTOPB = 0x40
471 DT_WHT = 0xe 471 CSUSP = 0x1a
472 ECHO = 0x8 472 DAXFS_MAGIC = 0x64646178
473 ECHOCTL = 0x200 473 DEBUGFS_MAGIC = 0x64626720
474 ECHOE = 0x10 474 DEVLINK_CMD_ESWITCH_MODE_GET = 0x1d
475 ECHOK = 0x20 475 DEVLINK_CMD_ESWITCH_MODE_SET = 0x1e
476 ECHOKE = 0x800 476 DEVLINK_GENL_MCGRP_CONFIG_NAME = "config"
477 ECHONL = 0x40 477 DEVLINK_GENL_NAME = "devlink"
478 ECHOPRT = 0x400 478 DEVLINK_GENL_VERSION = 0x1
479 ECRYPTFS_SUPER_MAGIC = 0xf15f 479 DEVLINK_SB_THRESHOLD_TO_ALPHA_MAX = 0x14
480 EFD_CLOEXEC = 0x80000 480 DEVPTS_SUPER_MAGIC = 0x1cd1
481 EFD_NONBLOCK = 0x800 481 DMA_BUF_MAGIC = 0x444d4142
482 EFD_SEMAPHORE = 0x1 482 DT_BLK = 0x6
483 EFIVARFS_MAGIC = 0xde5e81e4 483 DT_CHR = 0x2
484 EFS_SUPER_MAGIC = 0x414a53 484 DT_DIR = 0x4
485 ENCODING_DEFAULT = 0x0 485 DT_FIFO = 0x1
486 ENCODING_FM_MARK = 0x3 486 DT_LNK = 0xa
487 ENCODING_FM_SPACE = 0x4 487 DT_REG = 0x8
488 ENCODING_MANCHESTER = 0x5 488 DT_SOCK = 0xc
489 ENCODING_NRZ = 0x1 489 DT_UNKNOWN = 0x0
490 ENCODING_NRZI = 0x2 490 DT_WHT = 0xe
491 EPOLLERR = 0x8 491 ECHO = 0x8
492 EPOLLET = 0x80000000 492 ECHOCTL = 0x200
493 EPOLLEXCLUSIVE = 0x10000000 493 ECHOE = 0x10
494 EPOLLHUP = 0x10 494 ECHOK = 0x20
495 EPOLLIN = 0x1 495 ECHOKE = 0x800
496 EPOLLMSG = 0x400 496 ECHONL = 0x40
497 EPOLLONESHOT = 0x40000000 497 ECHOPRT = 0x400
498 EPOLLOUT = 0x4 498 ECRYPTFS_SUPER_MAGIC = 0xf15f
499 EPOLLPRI = 0x2 499 EFD_CLOEXEC = 0x80000
500 EPOLLRDBAND = 0x80 500 EFD_NONBLOCK = 0x800
501 EPOLLRDHUP = 0x2000 501 EFD_SEMAPHORE = 0x1
502 EPOLLRDNORM = 0x40 502 EFIVARFS_MAGIC = 0xde5e81e4
503 EPOLLWAKEUP = 0x20000000 503 EFS_SUPER_MAGIC = 0x414a53
504 EPOLLWRBAND = 0x200 504 ENCODING_DEFAULT = 0x0
505 EPOLLWRNORM = 0x100 505 ENCODING_FM_MARK = 0x3
506 EPOLL_CLOEXEC = 0x80000 506 ENCODING_FM_SPACE = 0x4
507 EPOLL_CTL_ADD = 0x1 507 ENCODING_MANCHESTER = 0x5
508 EPOLL_CTL_DEL = 0x2 508 ENCODING_NRZ = 0x1
509 EPOLL_CTL_MOD = 0x3 509 ENCODING_NRZI = 0x2
510 ETH_P_1588 = 0x88f7 510 EPOLLERR = 0x8
511 ETH_P_8021AD = 0x88a8 511 EPOLLET = 0x80000000
512 ETH_P_8021AH = 0x88e7 512 EPOLLEXCLUSIVE = 0x10000000
513 ETH_P_8021Q = 0x8100 513 EPOLLHUP = 0x10
514 ETH_P_80221 = 0x8917 514 EPOLLIN = 0x1
515 ETH_P_802_2 = 0x4 515 EPOLLMSG = 0x400
516 ETH_P_802_3 = 0x1 516 EPOLLONESHOT = 0x40000000
517 ETH_P_802_3_MIN = 0x600 517 EPOLLOUT = 0x4
518 ETH_P_802_EX1 = 0x88b5 518 EPOLLPRI = 0x2
519 ETH_P_AARP = 0x80f3 519 EPOLLRDBAND = 0x80
520 ETH_P_AF_IUCV = 0xfbfb 520 EPOLLRDHUP = 0x2000
521 ETH_P_ALL = 0x3 521 EPOLLRDNORM = 0x40
522 ETH_P_AOE = 0x88a2 522 EPOLLWAKEUP = 0x20000000
523 ETH_P_ARCNET = 0x1a 523 EPOLLWRBAND = 0x200
524 ETH_P_ARP = 0x806 524 EPOLLWRNORM = 0x100
525 ETH_P_ATALK = 0x809b 525 EPOLL_CLOEXEC = 0x80000
526 ETH_P_ATMFATE = 0x8884 526 EPOLL_CTL_ADD = 0x1
527 ETH_P_ATMMPOA = 0x884c 527 EPOLL_CTL_DEL = 0x2
528 ETH_P_AX25 = 0x2 528 EPOLL_CTL_MOD = 0x3
529 ETH_P_BATMAN = 0x4305 529 EROFS_SUPER_MAGIC_V1 = 0xe0f5e1e2
530 ETH_P_BPQ = 0x8ff 530 ETH_P_1588 = 0x88f7
531 ETH_P_CAIF = 0xf7 531 ETH_P_8021AD = 0x88a8
532 ETH_P_CAN = 0xc 532 ETH_P_8021AH = 0x88e7
533 ETH_P_CANFD = 0xd 533 ETH_P_8021Q = 0x8100
534 ETH_P_CONTROL = 0x16 534 ETH_P_80221 = 0x8917
535 ETH_P_CUST = 0x6006 535 ETH_P_802_2 = 0x4
536 ETH_P_DDCMP = 0x6 536 ETH_P_802_3 = 0x1
537 ETH_P_DEC = 0x6000 537 ETH_P_802_3_MIN = 0x600
538 ETH_P_DIAG = 0x6005 538 ETH_P_802_EX1 = 0x88b5
539 ETH_P_DNA_DL = 0x6001 539 ETH_P_AARP = 0x80f3
540 ETH_P_DNA_RC = 0x6002 540 ETH_P_AF_IUCV = 0xfbfb
541 ETH_P_DNA_RT = 0x6003 541 ETH_P_ALL = 0x3
542 ETH_P_DSA = 0x1b 542 ETH_P_AOE = 0x88a2
543 ETH_P_DSA_8021Q = 0xdadb 543 ETH_P_ARCNET = 0x1a
544 ETH_P_ECONET = 0x18 544 ETH_P_ARP = 0x806
545 ETH_P_EDSA = 0xdada 545 ETH_P_ATALK = 0x809b
546 ETH_P_ERSPAN = 0x88be 546 ETH_P_ATMFATE = 0x8884
547 ETH_P_ERSPAN2 = 0x22eb 547 ETH_P_ATMMPOA = 0x884c
548 ETH_P_FCOE = 0x8906 548 ETH_P_AX25 = 0x2
549 ETH_P_FIP = 0x8914 549 ETH_P_BATMAN = 0x4305
550 ETH_P_HDLC = 0x19 550 ETH_P_BPQ = 0x8ff
551 ETH_P_HSR = 0x892f 551 ETH_P_CAIF = 0xf7
552 ETH_P_IBOE = 0x8915 552 ETH_P_CAN = 0xc
553 ETH_P_IEEE802154 = 0xf6 553 ETH_P_CANFD = 0xd
554 ETH_P_IEEEPUP = 0xa00 554 ETH_P_CONTROL = 0x16
555 ETH_P_IEEEPUPAT = 0xa01 555 ETH_P_CUST = 0x6006
556 ETH_P_IFE = 0xed3e 556 ETH_P_DDCMP = 0x6
557 ETH_P_IP = 0x800 557 ETH_P_DEC = 0x6000
558 ETH_P_IPV6 = 0x86dd 558 ETH_P_DIAG = 0x6005
559 ETH_P_IPX = 0x8137 559 ETH_P_DNA_DL = 0x6001
560 ETH_P_IRDA = 0x17 560 ETH_P_DNA_RC = 0x6002
561 ETH_P_LAT = 0x6004 561 ETH_P_DNA_RT = 0x6003
562 ETH_P_LINK_CTL = 0x886c 562 ETH_P_DSA = 0x1b
563 ETH_P_LOCALTALK = 0x9 563 ETH_P_DSA_8021Q = 0xdadb
564 ETH_P_LOOP = 0x60 564 ETH_P_ECONET = 0x18
565 ETH_P_LOOPBACK = 0x9000 565 ETH_P_EDSA = 0xdada
566 ETH_P_MACSEC = 0x88e5 566 ETH_P_ERSPAN = 0x88be
567 ETH_P_MAP = 0xf9 567 ETH_P_ERSPAN2 = 0x22eb
568 ETH_P_MOBITEX = 0x15 568 ETH_P_FCOE = 0x8906
569 ETH_P_MPLS_MC = 0x8848 569 ETH_P_FIP = 0x8914
570 ETH_P_MPLS_UC = 0x8847 570 ETH_P_HDLC = 0x19
571 ETH_P_MVRP = 0x88f5 571 ETH_P_HSR = 0x892f
572 ETH_P_NCSI = 0x88f8 572 ETH_P_IBOE = 0x8915
573 ETH_P_NSH = 0x894f 573 ETH_P_IEEE802154 = 0xf6
574 ETH_P_PAE = 0x888e 574 ETH_P_IEEEPUP = 0xa00
575 ETH_P_PAUSE = 0x8808 575 ETH_P_IEEEPUPAT = 0xa01
576 ETH_P_PHONET = 0xf5 576 ETH_P_IFE = 0xed3e
577 ETH_P_PPPTALK = 0x10 577 ETH_P_IP = 0x800
578 ETH_P_PPP_DISC = 0x8863 578 ETH_P_IPV6 = 0x86dd
579 ETH_P_PPP_MP = 0x8 579 ETH_P_IPX = 0x8137
580 ETH_P_PPP_SES = 0x8864 580 ETH_P_IRDA = 0x17
581 ETH_P_PREAUTH = 0x88c7 581 ETH_P_LAT = 0x6004
582 ETH_P_PRP = 0x88fb 582 ETH_P_LINK_CTL = 0x886c
583 ETH_P_PUP = 0x200 583 ETH_P_LLDP = 0x88cc
584 ETH_P_PUPAT = 0x201 584 ETH_P_LOCALTALK = 0x9
585 ETH_P_QINQ1 = 0x9100 585 ETH_P_LOOP = 0x60
586 ETH_P_QINQ2 = 0x9200 586 ETH_P_LOOPBACK = 0x9000
587 ETH_P_QINQ3 = 0x9300 587 ETH_P_MACSEC = 0x88e5
588 ETH_P_RARP = 0x8035 588 ETH_P_MAP = 0xf9
589 ETH_P_SCA = 0x6007 589 ETH_P_MOBITEX = 0x15
590 ETH_P_SLOW = 0x8809 590 ETH_P_MPLS_MC = 0x8848
591 ETH_P_SNAP = 0x5 591 ETH_P_MPLS_UC = 0x8847
592 ETH_P_TDLS = 0x890d 592 ETH_P_MVRP = 0x88f5
593 ETH_P_TEB = 0x6558 593 ETH_P_NCSI = 0x88f8
594 ETH_P_TIPC = 0x88ca 594 ETH_P_NSH = 0x894f
595 ETH_P_TRAILER = 0x1c 595 ETH_P_PAE = 0x888e
596 ETH_P_TR_802_2 = 0x11 596 ETH_P_PAUSE = 0x8808
597 ETH_P_TSN = 0x22f0 597 ETH_P_PHONET = 0xf5
598 ETH_P_WAN_PPP = 0x7 598 ETH_P_PPPTALK = 0x10
599 ETH_P_WCCP = 0x883e 599 ETH_P_PPP_DISC = 0x8863
600 ETH_P_X25 = 0x805 600 ETH_P_PPP_MP = 0x8
601 ETH_P_XDSA = 0xf8 601 ETH_P_PPP_SES = 0x8864
602 EXABYTE_ENABLE_NEST = 0xf0 602 ETH_P_PREAUTH = 0x88c7
603 EXT2_SUPER_MAGIC = 0xef53 603 ETH_P_PRP = 0x88fb
604 EXT3_SUPER_MAGIC = 0xef53 604 ETH_P_PUP = 0x200
605 EXT4_SUPER_MAGIC = 0xef53 605 ETH_P_PUPAT = 0x201
606 EXTA = 0xe 606 ETH_P_QINQ1 = 0x9100
607 EXTB = 0xf 607 ETH_P_QINQ2 = 0x9200
608 EXTPROC = 0x10000 608 ETH_P_QINQ3 = 0x9300
609 F2FS_SUPER_MAGIC = 0xf2f52010 609 ETH_P_RARP = 0x8035
610 FALLOC_FL_COLLAPSE_RANGE = 0x8 610 ETH_P_SCA = 0x6007
611 FALLOC_FL_INSERT_RANGE = 0x20 611 ETH_P_SLOW = 0x8809
612 FALLOC_FL_KEEP_SIZE = 0x1 612 ETH_P_SNAP = 0x5
613 FALLOC_FL_NO_HIDE_STALE = 0x4 613 ETH_P_TDLS = 0x890d
614 FALLOC_FL_PUNCH_HOLE = 0x2 614 ETH_P_TEB = 0x6558
615 FALLOC_FL_UNSHARE_RANGE = 0x40 615 ETH_P_TIPC = 0x88ca
616 FALLOC_FL_ZERO_RANGE = 0x10 616 ETH_P_TRAILER = 0x1c
617 FANOTIFY_METADATA_VERSION = 0x3 617 ETH_P_TR_802_2 = 0x11
618 FAN_ACCESS = 0x1 618 ETH_P_TSN = 0x22f0
619 FAN_ACCESS_PERM = 0x20000 619 ETH_P_WAN_PPP = 0x7
620 FAN_ALLOW = 0x1 620 ETH_P_WCCP = 0x883e
621 FAN_ALL_CLASS_BITS = 0xc 621 ETH_P_X25 = 0x805
622 FAN_ALL_EVENTS = 0x3b 622 ETH_P_XDSA = 0xf8
623 FAN_ALL_INIT_FLAGS = 0x3f 623 EXABYTE_ENABLE_NEST = 0xf0
624 FAN_ALL_MARK_FLAGS = 0xff 624 EXT2_SUPER_MAGIC = 0xef53
625 FAN_ALL_OUTGOING_EVENTS = 0x3403b 625 EXT3_SUPER_MAGIC = 0xef53
626 FAN_ALL_PERM_EVENTS = 0x30000 626 EXT4_SUPER_MAGIC = 0xef53
627 FAN_ATTRIB = 0x4 627 EXTA = 0xe
628 FAN_AUDIT = 0x10 628 EXTB = 0xf
629 FAN_CLASS_CONTENT = 0x4 629 EXTPROC = 0x10000
630 FAN_CLASS_NOTIF = 0x0 630 F2FS_SUPER_MAGIC = 0xf2f52010
631 FAN_CLASS_PRE_CONTENT = 0x8 631 FALLOC_FL_COLLAPSE_RANGE = 0x8
632 FAN_CLOEXEC = 0x1 632 FALLOC_FL_INSERT_RANGE = 0x20
633 FAN_CLOSE = 0x18 633 FALLOC_FL_KEEP_SIZE = 0x1
634 FAN_CLOSE_NOWRITE = 0x10 634 FALLOC_FL_NO_HIDE_STALE = 0x4
635 FAN_CLOSE_WRITE = 0x8 635 FALLOC_FL_PUNCH_HOLE = 0x2
636 FAN_CREATE = 0x100 636 FALLOC_FL_UNSHARE_RANGE = 0x40
637 FAN_DELETE = 0x200 637 FALLOC_FL_ZERO_RANGE = 0x10
638 FAN_DELETE_SELF = 0x400 638 FANOTIFY_METADATA_VERSION = 0x3
639 FAN_DENY = 0x2 639 FAN_ACCESS = 0x1
640 FAN_ENABLE_AUDIT = 0x40 640 FAN_ACCESS_PERM = 0x20000
641 FAN_EVENT_INFO_TYPE_FID = 0x1 641 FAN_ALLOW = 0x1
642 FAN_EVENT_METADATA_LEN = 0x18 642 FAN_ALL_CLASS_BITS = 0xc
643 FAN_EVENT_ON_CHILD = 0x8000000 643 FAN_ALL_EVENTS = 0x3b
644 FAN_MARK_ADD = 0x1 644 FAN_ALL_INIT_FLAGS = 0x3f
645 FAN_MARK_DONT_FOLLOW = 0x4 645 FAN_ALL_MARK_FLAGS = 0xff
646 FAN_MARK_FILESYSTEM = 0x100 646 FAN_ALL_OUTGOING_EVENTS = 0x3403b
647 FAN_MARK_FLUSH = 0x80 647 FAN_ALL_PERM_EVENTS = 0x30000
648 FAN_MARK_IGNORED_MASK = 0x20 648 FAN_ATTRIB = 0x4
649 FAN_MARK_IGNORED_SURV_MODIFY = 0x40 649 FAN_AUDIT = 0x10
650 FAN_MARK_INODE = 0x0 650 FAN_CLASS_CONTENT = 0x4
651 FAN_MARK_MOUNT = 0x10 651 FAN_CLASS_NOTIF = 0x0
652 FAN_MARK_ONLYDIR = 0x8 652 FAN_CLASS_PRE_CONTENT = 0x8
653 FAN_MARK_REMOVE = 0x2 653 FAN_CLOEXEC = 0x1
654 FAN_MODIFY = 0x2 654 FAN_CLOSE = 0x18
655 FAN_MOVE = 0xc0 655 FAN_CLOSE_NOWRITE = 0x10
656 FAN_MOVED_FROM = 0x40 656 FAN_CLOSE_WRITE = 0x8
657 FAN_MOVED_TO = 0x80 657 FAN_CREATE = 0x100
658 FAN_MOVE_SELF = 0x800 658 FAN_DELETE = 0x200
659 FAN_NOFD = -0x1 659 FAN_DELETE_SELF = 0x400
660 FAN_NONBLOCK = 0x2 660 FAN_DENY = 0x2
661 FAN_ONDIR = 0x40000000 661 FAN_ENABLE_AUDIT = 0x40
662 FAN_OPEN = 0x20 662 FAN_EVENT_INFO_TYPE_FID = 0x1
663 FAN_OPEN_EXEC = 0x1000 663 FAN_EVENT_METADATA_LEN = 0x18
664 FAN_OPEN_EXEC_PERM = 0x40000 664 FAN_EVENT_ON_CHILD = 0x8000000
665 FAN_OPEN_PERM = 0x10000 665 FAN_MARK_ADD = 0x1
666 FAN_Q_OVERFLOW = 0x4000 666 FAN_MARK_DONT_FOLLOW = 0x4
667 FAN_REPORT_FID = 0x200 667 FAN_MARK_FILESYSTEM = 0x100
668 FAN_REPORT_TID = 0x100 668 FAN_MARK_FLUSH = 0x80
669 FAN_UNLIMITED_MARKS = 0x20 669 FAN_MARK_IGNORED_MASK = 0x20
670 FAN_UNLIMITED_QUEUE = 0x10 670 FAN_MARK_IGNORED_SURV_MODIFY = 0x40
671 FD_CLOEXEC = 0x1 671 FAN_MARK_INODE = 0x0
672 FD_SETSIZE = 0x400 672 FAN_MARK_MOUNT = 0x10
673 FF0 = 0x0 673 FAN_MARK_ONLYDIR = 0x8
674 FF1 = 0x8000 674 FAN_MARK_REMOVE = 0x2
675 FFDLY = 0x8000 675 FAN_MODIFY = 0x2
676 FLUSHO = 0x1000 676 FAN_MOVE = 0xc0
677 FS_ENCRYPTION_MODE_ADIANTUM = 0x9 677 FAN_MOVED_FROM = 0x40
678 FS_ENCRYPTION_MODE_AES_128_CBC = 0x5 678 FAN_MOVED_TO = 0x80
679 FS_ENCRYPTION_MODE_AES_128_CTS = 0x6 679 FAN_MOVE_SELF = 0x800
680 FS_ENCRYPTION_MODE_AES_256_CBC = 0x3 680 FAN_NOFD = -0x1
681 FS_ENCRYPTION_MODE_AES_256_CTS = 0x4 681 FAN_NONBLOCK = 0x2
682 FS_ENCRYPTION_MODE_AES_256_GCM = 0x2 682 FAN_ONDIR = 0x40000000
683 FS_ENCRYPTION_MODE_AES_256_XTS = 0x1 683 FAN_OPEN = 0x20
684 FS_ENCRYPTION_MODE_INVALID = 0x0 684 FAN_OPEN_EXEC = 0x1000
685 FS_ENCRYPTION_MODE_SPECK128_256_CTS = 0x8 685 FAN_OPEN_EXEC_PERM = 0x40000
686 FS_ENCRYPTION_MODE_SPECK128_256_XTS = 0x7 686 FAN_OPEN_PERM = 0x10000
687 FS_IOC_GET_ENCRYPTION_POLICY = 0x400c6615 687 FAN_Q_OVERFLOW = 0x4000
688 FS_IOC_GET_ENCRYPTION_PWSALT = 0x40106614 688 FAN_REPORT_FID = 0x200
689 FS_IOC_SET_ENCRYPTION_POLICY = 0x800c6613 689 FAN_REPORT_TID = 0x100
690 FS_KEY_DESCRIPTOR_SIZE = 0x8 690 FAN_UNLIMITED_MARKS = 0x20
691 FS_KEY_DESC_PREFIX = "fscrypt:" 691 FAN_UNLIMITED_QUEUE = 0x10
692 FS_KEY_DESC_PREFIX_SIZE = 0x8 692 FD_CLOEXEC = 0x1
693 FS_MAX_KEY_SIZE = 0x40 693 FD_SETSIZE = 0x400
694 FS_POLICY_FLAGS_PAD_16 = 0x2 694 FF0 = 0x0
695 FS_POLICY_FLAGS_PAD_32 = 0x3 695 FF1 = 0x8000
696 FS_POLICY_FLAGS_PAD_4 = 0x0 696 FFDLY = 0x8000
697 FS_POLICY_FLAGS_PAD_8 = 0x1 697 FLUSHO = 0x1000
698 FS_POLICY_FLAGS_PAD_MASK = 0x3 698 FSCRYPT_KEY_DESCRIPTOR_SIZE = 0x8
699 FS_POLICY_FLAGS_VALID = 0x7 699 FSCRYPT_KEY_DESC_PREFIX = "fscrypt:"
700 FUTEXFS_SUPER_MAGIC = 0xbad1dea 700 FSCRYPT_KEY_DESC_PREFIX_SIZE = 0x8
701 F_ADD_SEALS = 0x409 701 FSCRYPT_KEY_IDENTIFIER_SIZE = 0x10
702 F_DUPFD = 0x0 702 FSCRYPT_KEY_REMOVAL_STATUS_FLAG_FILES_BUSY = 0x1
703 F_DUPFD_CLOEXEC = 0x406 703 FSCRYPT_KEY_REMOVAL_STATUS_FLAG_OTHER_USERS = 0x2
704 F_EXLCK = 0x4 704 FSCRYPT_KEY_SPEC_TYPE_DESCRIPTOR = 0x1
705 F_GETFD = 0x1 705 FSCRYPT_KEY_SPEC_TYPE_IDENTIFIER = 0x2
706 F_GETFL = 0x3 706 FSCRYPT_KEY_STATUS_ABSENT = 0x1
707 F_GETLEASE = 0x401 707 FSCRYPT_KEY_STATUS_FLAG_ADDED_BY_SELF = 0x1
708 F_GETLK = 0x5 708 FSCRYPT_KEY_STATUS_INCOMPLETELY_REMOVED = 0x3
709 F_GETLK64 = 0x5 709 FSCRYPT_KEY_STATUS_PRESENT = 0x2
710 F_GETOWN = 0x9 710 FSCRYPT_MAX_KEY_SIZE = 0x40
711 F_GETOWN_EX = 0x10 711 FSCRYPT_MODE_ADIANTUM = 0x9
712 F_GETPIPE_SZ = 0x408 712 FSCRYPT_MODE_AES_128_CBC = 0x5
713 F_GETSIG = 0xb 713 FSCRYPT_MODE_AES_128_CTS = 0x6
714 F_GET_FILE_RW_HINT = 0x40d 714 FSCRYPT_MODE_AES_256_CTS = 0x4
715 F_GET_RW_HINT = 0x40b 715 FSCRYPT_MODE_AES_256_XTS = 0x1
716 F_GET_SEALS = 0x40a 716 FSCRYPT_POLICY_FLAGS_PAD_16 = 0x2
717 F_LOCK = 0x1 717 FSCRYPT_POLICY_FLAGS_PAD_32 = 0x3
718 F_NOTIFY = 0x402 718 FSCRYPT_POLICY_FLAGS_PAD_4 = 0x0
719 F_OFD_GETLK = 0x24 719 FSCRYPT_POLICY_FLAGS_PAD_8 = 0x1
720 F_OFD_SETLK = 0x25 720 FSCRYPT_POLICY_FLAGS_PAD_MASK = 0x3
721 F_OFD_SETLKW = 0x26 721 FSCRYPT_POLICY_FLAGS_VALID = 0xf
722 F_OK = 0x0 722 FSCRYPT_POLICY_FLAG_DIRECT_KEY = 0x4
723 F_RDLCK = 0x0 723 FSCRYPT_POLICY_FLAG_IV_INO_LBLK_64 = 0x8
724 F_SEAL_FUTURE_WRITE = 0x10 724 FSCRYPT_POLICY_V1 = 0x0
725 F_SEAL_GROW = 0x4 725 FSCRYPT_POLICY_V2 = 0x2
726 F_SEAL_SEAL = 0x1 726 FS_ENCRYPTION_MODE_ADIANTUM = 0x9
727 F_SEAL_SHRINK = 0x2 727 FS_ENCRYPTION_MODE_AES_128_CBC = 0x5
728 F_SEAL_WRITE = 0x8 728 FS_ENCRYPTION_MODE_AES_128_CTS = 0x6
729 F_SETFD = 0x2 729 FS_ENCRYPTION_MODE_AES_256_CBC = 0x3
730 F_SETFL = 0x4 730 FS_ENCRYPTION_MODE_AES_256_CTS = 0x4
731 F_SETLEASE = 0x400 731 FS_ENCRYPTION_MODE_AES_256_GCM = 0x2
732 F_SETLK = 0x6 732 FS_ENCRYPTION_MODE_AES_256_XTS = 0x1
733 F_SETLK64 = 0x6 733 FS_ENCRYPTION_MODE_INVALID = 0x0
734 F_SETLKW = 0x7 734 FS_ENCRYPTION_MODE_SPECK128_256_CTS = 0x8
735 F_SETLKW64 = 0x7 735 FS_ENCRYPTION_MODE_SPECK128_256_XTS = 0x7
736 F_SETOWN = 0x8 736 FS_IOC_ADD_ENCRYPTION_KEY = 0xc0506617
737 F_SETOWN_EX = 0xf 737 FS_IOC_GET_ENCRYPTION_KEY_STATUS = 0xc080661a
738 F_SETPIPE_SZ = 0x407 738 FS_IOC_GET_ENCRYPTION_POLICY = 0x400c6615
739 F_SETSIG = 0xa 739 FS_IOC_GET_ENCRYPTION_POLICY_EX = 0xc0096616
740 F_SET_FILE_RW_HINT = 0x40e 740 FS_IOC_GET_ENCRYPTION_PWSALT = 0x40106614
741 F_SET_RW_HINT = 0x40c 741 FS_IOC_REMOVE_ENCRYPTION_KEY = 0xc0406618
742 F_SHLCK = 0x8 742 FS_IOC_REMOVE_ENCRYPTION_KEY_ALL_USERS = 0xc0406619
743 F_TEST = 0x3 743 FS_IOC_SET_ENCRYPTION_POLICY = 0x800c6613
744 F_TLOCK = 0x2 744 FS_KEY_DESCRIPTOR_SIZE = 0x8
745 F_ULOCK = 0x0 745 FS_KEY_DESC_PREFIX = "fscrypt:"
746 F_UNLCK = 0x2 746 FS_KEY_DESC_PREFIX_SIZE = 0x8
747 F_WRLCK = 0x1 747 FS_MAX_KEY_SIZE = 0x40
748 GENL_ADMIN_PERM = 0x1 748 FS_POLICY_FLAGS_PAD_16 = 0x2
749 GENL_CMD_CAP_DO = 0x2 749 FS_POLICY_FLAGS_PAD_32 = 0x3
750 GENL_CMD_CAP_DUMP = 0x4 750 FS_POLICY_FLAGS_PAD_4 = 0x0
751 GENL_CMD_CAP_HASPOL = 0x8 751 FS_POLICY_FLAGS_PAD_8 = 0x1
752 GENL_HDRLEN = 0x4 752 FS_POLICY_FLAGS_PAD_MASK = 0x3
753 GENL_ID_CTRL = 0x10 753 FS_POLICY_FLAGS_VALID = 0xf
754 GENL_ID_PMCRAID = 0x12 754 FUTEXFS_SUPER_MAGIC = 0xbad1dea
755 GENL_ID_VFS_DQUOT = 0x11 755 F_ADD_SEALS = 0x409
756 GENL_MAX_ID = 0x3ff 756 F_DUPFD = 0x0
757 GENL_MIN_ID = 0x10 757 F_DUPFD_CLOEXEC = 0x406
758 GENL_NAMSIZ = 0x10 758 F_EXLCK = 0x4
759 GENL_START_ALLOC = 0x13 759 F_GETFD = 0x1
760 GENL_UNS_ADMIN_PERM = 0x10 760 F_GETFL = 0x3
761 GRND_NONBLOCK = 0x1 761 F_GETLEASE = 0x401
762 GRND_RANDOM = 0x2 762 F_GETLK = 0x5
763 HDIO_DRIVE_CMD = 0x31f 763 F_GETLK64 = 0x5
764 HDIO_DRIVE_CMD_AEB = 0x31e 764 F_GETOWN = 0x9
765 HDIO_DRIVE_CMD_HDR_SIZE = 0x4 765 F_GETOWN_EX = 0x10
766 HDIO_DRIVE_HOB_HDR_SIZE = 0x8 766 F_GETPIPE_SZ = 0x408
767 HDIO_DRIVE_RESET = 0x31c 767 F_GETSIG = 0xb
768 HDIO_DRIVE_TASK = 0x31e 768 F_GET_FILE_RW_HINT = 0x40d
769 HDIO_DRIVE_TASKFILE = 0x31d 769 F_GET_RW_HINT = 0x40b
770 HDIO_DRIVE_TASK_HDR_SIZE = 0x8 770 F_GET_SEALS = 0x40a
771 HDIO_GETGEO = 0x301 771 F_LOCK = 0x1
772 HDIO_GET_32BIT = 0x309 772 F_NOTIFY = 0x402
773 HDIO_GET_ACOUSTIC = 0x30f 773 F_OFD_GETLK = 0x24
774 HDIO_GET_ADDRESS = 0x310 774 F_OFD_SETLK = 0x25
775 HDIO_GET_BUSSTATE = 0x31a 775 F_OFD_SETLKW = 0x26
776 HDIO_GET_DMA = 0x30b 776 F_OK = 0x0
777 HDIO_GET_IDENTITY = 0x30d 777 F_RDLCK = 0x0
778 HDIO_GET_KEEPSETTINGS = 0x308 778 F_SEAL_FUTURE_WRITE = 0x10
779 HDIO_GET_MULTCOUNT = 0x304 779 F_SEAL_GROW = 0x4
780 HDIO_GET_NICE = 0x30c 780 F_SEAL_SEAL = 0x1
781 HDIO_GET_NOWERR = 0x30a 781 F_SEAL_SHRINK = 0x2
782 HDIO_GET_QDMA = 0x305 782 F_SEAL_WRITE = 0x8
783 HDIO_GET_UNMASKINTR = 0x302 783 F_SETFD = 0x2
784 HDIO_GET_WCACHE = 0x30e 784 F_SETFL = 0x4
785 HDIO_OBSOLETE_IDENTITY = 0x307 785 F_SETLEASE = 0x400
786 HDIO_SCAN_HWIF = 0x328 786 F_SETLK = 0x6
787 HDIO_SET_32BIT = 0x324 787 F_SETLK64 = 0x6
788 HDIO_SET_ACOUSTIC = 0x32c 788 F_SETLKW = 0x7
789 HDIO_SET_ADDRESS = 0x32f 789 F_SETLKW64 = 0x7
790 HDIO_SET_BUSSTATE = 0x32d 790 F_SETOWN = 0x8
791 HDIO_SET_DMA = 0x326 791 F_SETOWN_EX = 0xf
792 HDIO_SET_KEEPSETTINGS = 0x323 792 F_SETPIPE_SZ = 0x407
793 HDIO_SET_MULTCOUNT = 0x321 793 F_SETSIG = 0xa
794 HDIO_SET_NICE = 0x329 794 F_SET_FILE_RW_HINT = 0x40e
795 HDIO_SET_NOWERR = 0x325 795 F_SET_RW_HINT = 0x40c
796 HDIO_SET_PIO_MODE = 0x327 796 F_SHLCK = 0x8
797 HDIO_SET_QDMA = 0x32e 797 F_TEST = 0x3
798 HDIO_SET_UNMASKINTR = 0x322 798 F_TLOCK = 0x2
799 HDIO_SET_WCACHE = 0x32b 799 F_ULOCK = 0x0
800 HDIO_SET_XFER = 0x306 800 F_UNLCK = 0x2
801 HDIO_TRISTATE_HWIF = 0x31b 801 F_WRLCK = 0x1
802 HDIO_UNREGISTER_HWIF = 0x32a 802 GENL_ADMIN_PERM = 0x1
803 HOSTFS_SUPER_MAGIC = 0xc0ffee 803 GENL_CMD_CAP_DO = 0x2
804 HPFS_SUPER_MAGIC = 0xf995e849 804 GENL_CMD_CAP_DUMP = 0x4
805 HUGETLBFS_MAGIC = 0x958458f6 805 GENL_CMD_CAP_HASPOL = 0x8
806 HUPCL = 0x400 806 GENL_HDRLEN = 0x4
807 IBSHIFT = 0x10 807 GENL_ID_CTRL = 0x10
808 ICANON = 0x2 808 GENL_ID_PMCRAID = 0x12
809 ICMPV6_FILTER = 0x1 809 GENL_ID_VFS_DQUOT = 0x11
810 ICRNL = 0x100 810 GENL_MAX_ID = 0x3ff
811 IEXTEN = 0x8000 811 GENL_MIN_ID = 0x10
812 IFA_F_DADFAILED = 0x8 812 GENL_NAMSIZ = 0x10
813 IFA_F_DEPRECATED = 0x20 813 GENL_START_ALLOC = 0x13
814 IFA_F_HOMEADDRESS = 0x10 814 GENL_UNS_ADMIN_PERM = 0x10
815 IFA_F_MANAGETEMPADDR = 0x100 815 GRND_NONBLOCK = 0x1
816 IFA_F_MCAUTOJOIN = 0x400 816 GRND_RANDOM = 0x2
817 IFA_F_NODAD = 0x2 817 HDIO_DRIVE_CMD = 0x31f
818 IFA_F_NOPREFIXROUTE = 0x200 818 HDIO_DRIVE_CMD_AEB = 0x31e
819 IFA_F_OPTIMISTIC = 0x4 819 HDIO_DRIVE_CMD_HDR_SIZE = 0x4
820 IFA_F_PERMANENT = 0x80 820 HDIO_DRIVE_HOB_HDR_SIZE = 0x8
821 IFA_F_SECONDARY = 0x1 821 HDIO_DRIVE_RESET = 0x31c
822 IFA_F_STABLE_PRIVACY = 0x800 822 HDIO_DRIVE_TASK = 0x31e
823 IFA_F_TEMPORARY = 0x1 823 HDIO_DRIVE_TASKFILE = 0x31d
824 IFA_F_TENTATIVE = 0x40 824 HDIO_DRIVE_TASK_HDR_SIZE = 0x8
825 IFA_MAX = 0xa 825 HDIO_GETGEO = 0x301
826 IFF_ALLMULTI = 0x200 826 HDIO_GET_32BIT = 0x309
827 IFF_ATTACH_QUEUE = 0x200 827 HDIO_GET_ACOUSTIC = 0x30f
828 IFF_AUTOMEDIA = 0x4000 828 HDIO_GET_ADDRESS = 0x310
829 IFF_BROADCAST = 0x2 829 HDIO_GET_BUSSTATE = 0x31a
830 IFF_DEBUG = 0x4 830 HDIO_GET_DMA = 0x30b
831 IFF_DETACH_QUEUE = 0x400 831 HDIO_GET_IDENTITY = 0x30d
832 IFF_DORMANT = 0x20000 832 HDIO_GET_KEEPSETTINGS = 0x308
833 IFF_DYNAMIC = 0x8000 833 HDIO_GET_MULTCOUNT = 0x304
834 IFF_ECHO = 0x40000 834 HDIO_GET_NICE = 0x30c
835 IFF_LOOPBACK = 0x8 835 HDIO_GET_NOWERR = 0x30a
836 IFF_LOWER_UP = 0x10000 836 HDIO_GET_QDMA = 0x305
837 IFF_MASTER = 0x400 837 HDIO_GET_UNMASKINTR = 0x302
838 IFF_MULTICAST = 0x1000 838 HDIO_GET_WCACHE = 0x30e
839 IFF_MULTI_QUEUE = 0x100 839 HDIO_OBSOLETE_IDENTITY = 0x307
840 IFF_NAPI = 0x10 840 HDIO_SCAN_HWIF = 0x328
841 IFF_NAPI_FRAGS = 0x20 841 HDIO_SET_32BIT = 0x324
842 IFF_NOARP = 0x80 842 HDIO_SET_ACOUSTIC = 0x32c
843 IFF_NOFILTER = 0x1000 843 HDIO_SET_ADDRESS = 0x32f
844 IFF_NOTRAILERS = 0x20 844 HDIO_SET_BUSSTATE = 0x32d
845 IFF_NO_PI = 0x1000 845 HDIO_SET_DMA = 0x326
846 IFF_ONE_QUEUE = 0x2000 846 HDIO_SET_KEEPSETTINGS = 0x323
847 IFF_PERSIST = 0x800 847 HDIO_SET_MULTCOUNT = 0x321
848 IFF_POINTOPOINT = 0x10 848 HDIO_SET_NICE = 0x329
849 IFF_PORTSEL = 0x2000 849 HDIO_SET_NOWERR = 0x325
850 IFF_PROMISC = 0x100 850 HDIO_SET_PIO_MODE = 0x327
851 IFF_RUNNING = 0x40 851 HDIO_SET_QDMA = 0x32e
852 IFF_SLAVE = 0x800 852 HDIO_SET_UNMASKINTR = 0x322
853 IFF_TAP = 0x2 853 HDIO_SET_WCACHE = 0x32b
854 IFF_TUN = 0x1 854 HDIO_SET_XFER = 0x306
855 IFF_TUN_EXCL = 0x8000 855 HDIO_TRISTATE_HWIF = 0x31b
856 IFF_UP = 0x1 856 HDIO_UNREGISTER_HWIF = 0x32a
857 IFF_VNET_HDR = 0x4000 857 HOSTFS_SUPER_MAGIC = 0xc0ffee
858 IFF_VOLATILE = 0x70c5a 858 HPFS_SUPER_MAGIC = 0xf995e849
859 IFNAMSIZ = 0x10 859 HUGETLBFS_MAGIC = 0x958458f6
860 IGNBRK = 0x1 860 HUPCL = 0x400
861 IGNCR = 0x80 861 IBSHIFT = 0x10
862 IGNPAR = 0x4 862 ICANON = 0x2
863 IMAXBEL = 0x2000 863 ICMPV6_FILTER = 0x1
864 INLCR = 0x40 864 ICRNL = 0x100
865 INPCK = 0x10 865 IEXTEN = 0x8000
866 IN_ACCESS = 0x1 866 IFA_F_DADFAILED = 0x8
867 IN_ALL_EVENTS = 0xfff 867 IFA_F_DEPRECATED = 0x20
868 IN_ATTRIB = 0x4 868 IFA_F_HOMEADDRESS = 0x10
869 IN_CLASSA_HOST = 0xffffff 869 IFA_F_MANAGETEMPADDR = 0x100
870 IN_CLASSA_MAX = 0x80 870 IFA_F_MCAUTOJOIN = 0x400
871 IN_CLASSA_NET = 0xff000000 871 IFA_F_NODAD = 0x2
872 IN_CLASSA_NSHIFT = 0x18 872 IFA_F_NOPREFIXROUTE = 0x200
873 IN_CLASSB_HOST = 0xffff 873 IFA_F_OPTIMISTIC = 0x4
874 IN_CLASSB_MAX = 0x10000 874 IFA_F_PERMANENT = 0x80
875 IN_CLASSB_NET = 0xffff0000 875 IFA_F_SECONDARY = 0x1
876 IN_CLASSB_NSHIFT = 0x10 876 IFA_F_STABLE_PRIVACY = 0x800
877 IN_CLASSC_HOST = 0xff 877 IFA_F_TEMPORARY = 0x1
878 IN_CLASSC_NET = 0xffffff00 878 IFA_F_TENTATIVE = 0x40
879 IN_CLASSC_NSHIFT = 0x8 879 IFA_MAX = 0xa
880 IN_CLOEXEC = 0x80000 880 IFF_ALLMULTI = 0x200
881 IN_CLOSE = 0x18 881 IFF_ATTACH_QUEUE = 0x200
882 IN_CLOSE_NOWRITE = 0x10 882 IFF_AUTOMEDIA = 0x4000
883 IN_CLOSE_WRITE = 0x8 883 IFF_BROADCAST = 0x2
884 IN_CREATE = 0x100 884 IFF_DEBUG = 0x4
885 IN_DELETE = 0x200 885 IFF_DETACH_QUEUE = 0x400
886 IN_DELETE_SELF = 0x400 886 IFF_DORMANT = 0x20000
887 IN_DONT_FOLLOW = 0x2000000 887 IFF_DYNAMIC = 0x8000
888 IN_EXCL_UNLINK = 0x4000000 888 IFF_ECHO = 0x40000
889 IN_IGNORED = 0x8000 889 IFF_LOOPBACK = 0x8
890 IN_ISDIR = 0x40000000 890 IFF_LOWER_UP = 0x10000
891 IN_LOOPBACKNET = 0x7f 891 IFF_MASTER = 0x400
892 IN_MASK_ADD = 0x20000000 892 IFF_MULTICAST = 0x1000
893 IN_MASK_CREATE = 0x10000000 893 IFF_MULTI_QUEUE = 0x100
894 IN_MODIFY = 0x2 894 IFF_NAPI = 0x10
895 IN_MOVE = 0xc0 895 IFF_NAPI_FRAGS = 0x20
896 IN_MOVED_FROM = 0x40 896 IFF_NOARP = 0x80
897 IN_MOVED_TO = 0x80 897 IFF_NOFILTER = 0x1000
898 IN_MOVE_SELF = 0x800 898 IFF_NOTRAILERS = 0x20
899 IN_NONBLOCK = 0x800 899 IFF_NO_PI = 0x1000
900 IN_ONESHOT = 0x80000000 900 IFF_ONE_QUEUE = 0x2000
901 IN_ONLYDIR = 0x1000000 901 IFF_PERSIST = 0x800
902 IN_OPEN = 0x20 902 IFF_POINTOPOINT = 0x10
903 IN_Q_OVERFLOW = 0x4000 903 IFF_PORTSEL = 0x2000
904 IN_UNMOUNT = 0x2000 904 IFF_PROMISC = 0x100
905 IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x7b9 905 IFF_RUNNING = 0x40
906 IPPROTO_AH = 0x33 906 IFF_SLAVE = 0x800
907 IPPROTO_BEETPH = 0x5e 907 IFF_TAP = 0x2
908 IPPROTO_COMP = 0x6c 908 IFF_TUN = 0x1
909 IPPROTO_DCCP = 0x21 909 IFF_TUN_EXCL = 0x8000
910 IPPROTO_DSTOPTS = 0x3c 910 IFF_UP = 0x1
911 IPPROTO_EGP = 0x8 911 IFF_VNET_HDR = 0x4000
912 IPPROTO_ENCAP = 0x62 912 IFF_VOLATILE = 0x70c5a
913 IPPROTO_ESP = 0x32 913 IFNAMSIZ = 0x10
914 IPPROTO_FRAGMENT = 0x2c 914 IGNBRK = 0x1
915 IPPROTO_GRE = 0x2f 915 IGNCR = 0x80
916 IPPROTO_HOPOPTS = 0x0 916 IGNPAR = 0x4
917 IPPROTO_ICMP = 0x1 917 IMAXBEL = 0x2000
918 IPPROTO_ICMPV6 = 0x3a 918 INLCR = 0x40
919 IPPROTO_IDP = 0x16 919 INPCK = 0x10
920 IPPROTO_IGMP = 0x2 920 IN_ACCESS = 0x1
921 IPPROTO_IP = 0x0 921 IN_ALL_EVENTS = 0xfff
922 IPPROTO_IPIP = 0x4 922 IN_ATTRIB = 0x4
923 IPPROTO_IPV6 = 0x29 923 IN_CLASSA_HOST = 0xffffff
924 IPPROTO_MH = 0x87 924 IN_CLASSA_MAX = 0x80
925 IPPROTO_MPLS = 0x89 925 IN_CLASSA_NET = 0xff000000
926 IPPROTO_MTP = 0x5c 926 IN_CLASSA_NSHIFT = 0x18
927 IPPROTO_NONE = 0x3b 927 IN_CLASSB_HOST = 0xffff
928 IPPROTO_PIM = 0x67 928 IN_CLASSB_MAX = 0x10000
929 IPPROTO_PUP = 0xc 929 IN_CLASSB_NET = 0xffff0000
930 IPPROTO_RAW = 0xff 930 IN_CLASSB_NSHIFT = 0x10
931 IPPROTO_ROUTING = 0x2b 931 IN_CLASSC_HOST = 0xff
932 IPPROTO_RSVP = 0x2e 932 IN_CLASSC_NET = 0xffffff00
933 IPPROTO_SCTP = 0x84 933 IN_CLASSC_NSHIFT = 0x8
934 IPPROTO_TCP = 0x6 934 IN_CLOEXEC = 0x80000
935 IPPROTO_TP = 0x1d 935 IN_CLOSE = 0x18
936 IPPROTO_UDP = 0x11 936 IN_CLOSE_NOWRITE = 0x10
937 IPPROTO_UDPLITE = 0x88 937 IN_CLOSE_WRITE = 0x8
938 IPV6_2292DSTOPTS = 0x4 938 IN_CREATE = 0x100
939 IPV6_2292HOPLIMIT = 0x8 939 IN_DELETE = 0x200
940 IPV6_2292HOPOPTS = 0x3 940 IN_DELETE_SELF = 0x400
941 IPV6_2292PKTINFO = 0x2 941 IN_DONT_FOLLOW = 0x2000000
942 IPV6_2292PKTOPTIONS = 0x6 942 IN_EXCL_UNLINK = 0x4000000
943 IPV6_2292RTHDR = 0x5 943 IN_IGNORED = 0x8000
944 IPV6_ADDRFORM = 0x1 944 IN_ISDIR = 0x40000000
945 IPV6_ADDR_PREFERENCES = 0x48 945 IN_LOOPBACKNET = 0x7f
946 IPV6_ADD_MEMBERSHIP = 0x14 946 IN_MASK_ADD = 0x20000000
947 IPV6_AUTHHDR = 0xa 947 IN_MASK_CREATE = 0x10000000
948 IPV6_AUTOFLOWLABEL = 0x46 948 IN_MODIFY = 0x2
949 IPV6_CHECKSUM = 0x7 949 IN_MOVE = 0xc0
950 IPV6_DONTFRAG = 0x3e 950 IN_MOVED_FROM = 0x40
951 IPV6_DROP_MEMBERSHIP = 0x15 951 IN_MOVED_TO = 0x80
952 IPV6_DSTOPTS = 0x3b 952 IN_MOVE_SELF = 0x800
953 IPV6_FREEBIND = 0x4e 953 IN_NONBLOCK = 0x800
954 IPV6_HDRINCL = 0x24 954 IN_ONESHOT = 0x80000000
955 IPV6_HOPLIMIT = 0x34 955 IN_ONLYDIR = 0x1000000
956 IPV6_HOPOPTS = 0x36 956 IN_OPEN = 0x20
957 IPV6_IPSEC_POLICY = 0x22 957 IN_Q_OVERFLOW = 0x4000
958 IPV6_JOIN_ANYCAST = 0x1b 958 IN_UNMOUNT = 0x2000
959 IPV6_JOIN_GROUP = 0x14 959 IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x7b9
960 IPV6_LEAVE_ANYCAST = 0x1c 960 IPPROTO_AH = 0x33
961 IPV6_LEAVE_GROUP = 0x15 961 IPPROTO_BEETPH = 0x5e
962 IPV6_MINHOPCOUNT = 0x49 962 IPPROTO_COMP = 0x6c
963 IPV6_MTU = 0x18 963 IPPROTO_DCCP = 0x21
964 IPV6_MTU_DISCOVER = 0x17 964 IPPROTO_DSTOPTS = 0x3c
965 IPV6_MULTICAST_ALL = 0x1d 965 IPPROTO_EGP = 0x8
966 IPV6_MULTICAST_HOPS = 0x12 966 IPPROTO_ENCAP = 0x62
967 IPV6_MULTICAST_IF = 0x11 967 IPPROTO_ESP = 0x32
968 IPV6_MULTICAST_LOOP = 0x13 968 IPPROTO_FRAGMENT = 0x2c
969 IPV6_NEXTHOP = 0x9 969 IPPROTO_GRE = 0x2f
970 IPV6_ORIGDSTADDR = 0x4a 970 IPPROTO_HOPOPTS = 0x0
971 IPV6_PATHMTU = 0x3d 971 IPPROTO_ICMP = 0x1
972 IPV6_PKTINFO = 0x32 972 IPPROTO_ICMPV6 = 0x3a
973 IPV6_PMTUDISC_DO = 0x2 973 IPPROTO_IDP = 0x16
974 IPV6_PMTUDISC_DONT = 0x0 974 IPPROTO_IGMP = 0x2
975 IPV6_PMTUDISC_INTERFACE = 0x4 975 IPPROTO_IP = 0x0
976 IPV6_PMTUDISC_OMIT = 0x5 976 IPPROTO_IPIP = 0x4
977 IPV6_PMTUDISC_PROBE = 0x3 977 IPPROTO_IPV6 = 0x29
978 IPV6_PMTUDISC_WANT = 0x1 978 IPPROTO_MH = 0x87
979 IPV6_RECVDSTOPTS = 0x3a 979 IPPROTO_MPLS = 0x89
980 IPV6_RECVERR = 0x19 980 IPPROTO_MTP = 0x5c
981 IPV6_RECVFRAGSIZE = 0x4d 981 IPPROTO_NONE = 0x3b
982 IPV6_RECVHOPLIMIT = 0x33 982 IPPROTO_PIM = 0x67
983 IPV6_RECVHOPOPTS = 0x35 983 IPPROTO_PUP = 0xc
984 IPV6_RECVORIGDSTADDR = 0x4a 984 IPPROTO_RAW = 0xff
985 IPV6_RECVPATHMTU = 0x3c 985 IPPROTO_ROUTING = 0x2b
986 IPV6_RECVPKTINFO = 0x31 986 IPPROTO_RSVP = 0x2e
987 IPV6_RECVRTHDR = 0x38 987 IPPROTO_SCTP = 0x84
988 IPV6_RECVTCLASS = 0x42 988 IPPROTO_TCP = 0x6
989 IPV6_ROUTER_ALERT = 0x16 989 IPPROTO_TP = 0x1d
990 IPV6_ROUTER_ALERT_ISOLATE = 0x1e 990 IPPROTO_UDP = 0x11
991 IPV6_RTHDR = 0x39 991 IPPROTO_UDPLITE = 0x88
992 IPV6_RTHDRDSTOPTS = 0x37 992 IPV6_2292DSTOPTS = 0x4
993 IPV6_RTHDR_LOOSE = 0x0 993 IPV6_2292HOPLIMIT = 0x8
994 IPV6_RTHDR_STRICT = 0x1 994 IPV6_2292HOPOPTS = 0x3
995 IPV6_RTHDR_TYPE_0 = 0x0 995 IPV6_2292PKTINFO = 0x2
996 IPV6_RXDSTOPTS = 0x3b 996 IPV6_2292PKTOPTIONS = 0x6
997 IPV6_RXHOPOPTS = 0x36 997 IPV6_2292RTHDR = 0x5
998 IPV6_TCLASS = 0x43 998 IPV6_ADDRFORM = 0x1
999 IPV6_TRANSPARENT = 0x4b 999 IPV6_ADDR_PREFERENCES = 0x48
1000 IPV6_UNICAST_HOPS = 0x10 1000 IPV6_ADD_MEMBERSHIP = 0x14
1001 IPV6_UNICAST_IF = 0x4c 1001 IPV6_AUTHHDR = 0xa
1002 IPV6_V6ONLY = 0x1a 1002 IPV6_AUTOFLOWLABEL = 0x46
1003 IPV6_XFRM_POLICY = 0x23 1003 IPV6_CHECKSUM = 0x7
1004 IP_ADD_MEMBERSHIP = 0x23 1004 IPV6_DONTFRAG = 0x3e
1005 IP_ADD_SOURCE_MEMBERSHIP = 0x27 1005 IPV6_DROP_MEMBERSHIP = 0x15
1006 IP_BIND_ADDRESS_NO_PORT = 0x18 1006 IPV6_DSTOPTS = 0x3b
1007 IP_BLOCK_SOURCE = 0x26 1007 IPV6_FREEBIND = 0x4e
1008 IP_CHECKSUM = 0x17 1008 IPV6_HDRINCL = 0x24
1009 IP_DEFAULT_MULTICAST_LOOP = 0x1 1009 IPV6_HOPLIMIT = 0x34
1010 IP_DEFAULT_MULTICAST_TTL = 0x1 1010 IPV6_HOPOPTS = 0x36
1011 IP_DF = 0x4000 1011 IPV6_IPSEC_POLICY = 0x22
1012 IP_DROP_MEMBERSHIP = 0x24 1012 IPV6_JOIN_ANYCAST = 0x1b
1013 IP_DROP_SOURCE_MEMBERSHIP = 0x28 1013 IPV6_JOIN_GROUP = 0x14
1014 IP_FREEBIND = 0xf 1014 IPV6_LEAVE_ANYCAST = 0x1c
1015 IP_HDRINCL = 0x3 1015 IPV6_LEAVE_GROUP = 0x15
1016 IP_IPSEC_POLICY = 0x10 1016 IPV6_MINHOPCOUNT = 0x49
1017 IP_MAXPACKET = 0xffff 1017 IPV6_MTU = 0x18
1018 IP_MAX_MEMBERSHIPS = 0x14 1018 IPV6_MTU_DISCOVER = 0x17
1019 IP_MF = 0x2000 1019 IPV6_MULTICAST_ALL = 0x1d
1020 IP_MINTTL = 0x15 1020 IPV6_MULTICAST_HOPS = 0x12
1021 IP_MSFILTER = 0x29 1021 IPV6_MULTICAST_IF = 0x11
1022 IP_MSS = 0x240 1022 IPV6_MULTICAST_LOOP = 0x13
1023 IP_MTU = 0xe 1023 IPV6_NEXTHOP = 0x9
1024 IP_MTU_DISCOVER = 0xa 1024 IPV6_ORIGDSTADDR = 0x4a
1025 IP_MULTICAST_ALL = 0x31 1025 IPV6_PATHMTU = 0x3d
1026 IP_MULTICAST_IF = 0x20 1026 IPV6_PKTINFO = 0x32
1027 IP_MULTICAST_LOOP = 0x22 1027 IPV6_PMTUDISC_DO = 0x2
1028 IP_MULTICAST_TTL = 0x21 1028 IPV6_PMTUDISC_DONT = 0x0
1029 IP_NODEFRAG = 0x16 1029 IPV6_PMTUDISC_INTERFACE = 0x4
1030 IP_OFFMASK = 0x1fff 1030 IPV6_PMTUDISC_OMIT = 0x5
1031 IP_OPTIONS = 0x4 1031 IPV6_PMTUDISC_PROBE = 0x3
1032 IP_ORIGDSTADDR = 0x14 1032 IPV6_PMTUDISC_WANT = 0x1
1033 IP_PASSSEC = 0x12 1033 IPV6_RECVDSTOPTS = 0x3a
1034 IP_PKTINFO = 0x8 1034 IPV6_RECVERR = 0x19
1035 IP_PKTOPTIONS = 0x9 1035 IPV6_RECVFRAGSIZE = 0x4d
1036 IP_PMTUDISC = 0xa 1036 IPV6_RECVHOPLIMIT = 0x33
1037 IP_PMTUDISC_DO = 0x2 1037 IPV6_RECVHOPOPTS = 0x35
1038 IP_PMTUDISC_DONT = 0x0 1038 IPV6_RECVORIGDSTADDR = 0x4a
1039 IP_PMTUDISC_INTERFACE = 0x4 1039 IPV6_RECVPATHMTU = 0x3c
1040 IP_PMTUDISC_OMIT = 0x5 1040 IPV6_RECVPKTINFO = 0x31
1041 IP_PMTUDISC_PROBE = 0x3 1041 IPV6_RECVRTHDR = 0x38
1042 IP_PMTUDISC_WANT = 0x1 1042 IPV6_RECVTCLASS = 0x42
1043 IP_RECVERR = 0xb 1043 IPV6_ROUTER_ALERT = 0x16
1044 IP_RECVFRAGSIZE = 0x19 1044 IPV6_ROUTER_ALERT_ISOLATE = 0x1e
1045 IP_RECVOPTS = 0x6 1045 IPV6_RTHDR = 0x39
1046 IP_RECVORIGDSTADDR = 0x14 1046 IPV6_RTHDRDSTOPTS = 0x37
1047 IP_RECVRETOPTS = 0x7 1047 IPV6_RTHDR_LOOSE = 0x0
1048 IP_RECVTOS = 0xd 1048 IPV6_RTHDR_STRICT = 0x1
1049 IP_RECVTTL = 0xc 1049 IPV6_RTHDR_TYPE_0 = 0x0
1050 IP_RETOPTS = 0x7 1050 IPV6_RXDSTOPTS = 0x3b
1051 IP_RF = 0x8000 1051 IPV6_RXHOPOPTS = 0x36
1052 IP_ROUTER_ALERT = 0x5 1052 IPV6_TCLASS = 0x43
1053 IP_TOS = 0x1 1053 IPV6_TRANSPARENT = 0x4b
1054 IP_TRANSPARENT = 0x13 1054 IPV6_UNICAST_HOPS = 0x10
1055 IP_TTL = 0x2 1055 IPV6_UNICAST_IF = 0x4c
1056 IP_UNBLOCK_SOURCE = 0x25 1056 IPV6_V6ONLY = 0x1a
1057 IP_UNICAST_IF = 0x32 1057 IPV6_XFRM_POLICY = 0x23
1058 IP_XFRM_POLICY = 0x11 1058 IP_ADD_MEMBERSHIP = 0x23
1059 ISIG = 0x1 1059 IP_ADD_SOURCE_MEMBERSHIP = 0x27
1060 ISOFS_SUPER_MAGIC = 0x9660 1060 IP_BIND_ADDRESS_NO_PORT = 0x18
1061 ISTRIP = 0x20 1061 IP_BLOCK_SOURCE = 0x26
1062 IUCLC = 0x200 1062 IP_CHECKSUM = 0x17
1063 IUTF8 = 0x4000 1063 IP_DEFAULT_MULTICAST_LOOP = 0x1
1064 IXANY = 0x800 1064 IP_DEFAULT_MULTICAST_TTL = 0x1
1065 IXOFF = 0x1000 1065 IP_DF = 0x4000
1066 IXON = 0x400 1066 IP_DROP_MEMBERSHIP = 0x24
1067 JFFS2_SUPER_MAGIC = 0x72b6 1067 IP_DROP_SOURCE_MEMBERSHIP = 0x28
1068 KEXEC_ARCH_386 = 0x30000 1068 IP_FREEBIND = 0xf
1069 KEXEC_ARCH_68K = 0x40000 1069 IP_HDRINCL = 0x3
1070 KEXEC_ARCH_AARCH64 = 0xb70000 1070 IP_IPSEC_POLICY = 0x10
1071 KEXEC_ARCH_ARM = 0x280000 1071 IP_MAXPACKET = 0xffff
1072 KEXEC_ARCH_DEFAULT = 0x0 1072 IP_MAX_MEMBERSHIPS = 0x14
1073 KEXEC_ARCH_IA_64 = 0x320000 1073 IP_MF = 0x2000
1074 KEXEC_ARCH_MASK = 0xffff0000 1074 IP_MINTTL = 0x15
1075 KEXEC_ARCH_MIPS = 0x80000 1075 IP_MSFILTER = 0x29
1076 KEXEC_ARCH_MIPS_LE = 0xa0000 1076 IP_MSS = 0x240
1077 KEXEC_ARCH_PPC = 0x140000 1077 IP_MTU = 0xe
1078 KEXEC_ARCH_PPC64 = 0x150000 1078 IP_MTU_DISCOVER = 0xa
1079 KEXEC_ARCH_S390 = 0x160000 1079 IP_MULTICAST_ALL = 0x31
1080 KEXEC_ARCH_SH = 0x2a0000 1080 IP_MULTICAST_IF = 0x20
1081 KEXEC_ARCH_X86_64 = 0x3e0000 1081 IP_MULTICAST_LOOP = 0x22
1082 KEXEC_FILE_NO_INITRAMFS = 0x4 1082 IP_MULTICAST_TTL = 0x21
1083 KEXEC_FILE_ON_CRASH = 0x2 1083 IP_NODEFRAG = 0x16
1084 KEXEC_FILE_UNLOAD = 0x1 1084 IP_OFFMASK = 0x1fff
1085 KEXEC_ON_CRASH = 0x1 1085 IP_OPTIONS = 0x4
1086 KEXEC_PRESERVE_CONTEXT = 0x2 1086 IP_ORIGDSTADDR = 0x14
1087 KEXEC_SEGMENT_MAX = 0x10 1087 IP_PASSSEC = 0x12
1088 KEYCTL_ASSUME_AUTHORITY = 0x10 1088 IP_PKTINFO = 0x8
1089 KEYCTL_CHOWN = 0x4 1089 IP_PKTOPTIONS = 0x9
1090 KEYCTL_CLEAR = 0x7 1090 IP_PMTUDISC = 0xa
1091 KEYCTL_DESCRIBE = 0x6 1091 IP_PMTUDISC_DO = 0x2
1092 KEYCTL_DH_COMPUTE = 0x17 1092 IP_PMTUDISC_DONT = 0x0
1093 KEYCTL_GET_KEYRING_ID = 0x0 1093 IP_PMTUDISC_INTERFACE = 0x4
1094 KEYCTL_GET_PERSISTENT = 0x16 1094 IP_PMTUDISC_OMIT = 0x5
1095 KEYCTL_GET_SECURITY = 0x11 1095 IP_PMTUDISC_PROBE = 0x3
1096 KEYCTL_INSTANTIATE = 0xc 1096 IP_PMTUDISC_WANT = 0x1
1097 KEYCTL_INSTANTIATE_IOV = 0x14 1097 IP_RECVERR = 0xb
1098 KEYCTL_INVALIDATE = 0x15 1098 IP_RECVFRAGSIZE = 0x19
1099 KEYCTL_JOIN_SESSION_KEYRING = 0x1 1099 IP_RECVOPTS = 0x6
1100 KEYCTL_LINK = 0x8 1100 IP_RECVORIGDSTADDR = 0x14
1101 KEYCTL_NEGATE = 0xd 1101 IP_RECVRETOPTS = 0x7
1102 KEYCTL_PKEY_DECRYPT = 0x1a 1102 IP_RECVTOS = 0xd
1103 KEYCTL_PKEY_ENCRYPT = 0x19 1103 IP_RECVTTL = 0xc
1104 KEYCTL_PKEY_QUERY = 0x18 1104 IP_RETOPTS = 0x7
1105 KEYCTL_PKEY_SIGN = 0x1b 1105 IP_RF = 0x8000
1106 KEYCTL_PKEY_VERIFY = 0x1c 1106 IP_ROUTER_ALERT = 0x5
1107 KEYCTL_READ = 0xb 1107 IP_TOS = 0x1
1108 KEYCTL_REJECT = 0x13 1108 IP_TRANSPARENT = 0x13
1109 KEYCTL_RESTRICT_KEYRING = 0x1d 1109 IP_TTL = 0x2
1110 KEYCTL_REVOKE = 0x3 1110 IP_UNBLOCK_SOURCE = 0x25
1111 KEYCTL_SEARCH = 0xa 1111 IP_UNICAST_IF = 0x32
1112 KEYCTL_SESSION_TO_PARENT = 0x12 1112 IP_XFRM_POLICY = 0x11
1113 KEYCTL_SETPERM = 0x5 1113 ISIG = 0x1
1114 KEYCTL_SET_REQKEY_KEYRING = 0xe 1114 ISOFS_SUPER_MAGIC = 0x9660
1115 KEYCTL_SET_TIMEOUT = 0xf 1115 ISTRIP = 0x20
1116 KEYCTL_SUPPORTS_DECRYPT = 0x2 1116 IUCLC = 0x200
1117 KEYCTL_SUPPORTS_ENCRYPT = 0x1 1117 IUTF8 = 0x4000
1118 KEYCTL_SUPPORTS_SIGN = 0x4 1118 IXANY = 0x800
1119 KEYCTL_SUPPORTS_VERIFY = 0x8 1119 IXOFF = 0x1000
1120 KEYCTL_UNLINK = 0x9 1120 IXON = 0x400
1121 KEYCTL_UPDATE = 0x2 1121 JFFS2_SUPER_MAGIC = 0x72b6
1122 KEY_REQKEY_DEFL_DEFAULT = 0x0 1122 KEXEC_ARCH_386 = 0x30000
1123 KEY_REQKEY_DEFL_GROUP_KEYRING = 0x6 1123 KEXEC_ARCH_68K = 0x40000
1124 KEY_REQKEY_DEFL_NO_CHANGE = -0x1 1124 KEXEC_ARCH_AARCH64 = 0xb70000
1125 KEY_REQKEY_DEFL_PROCESS_KEYRING = 0x2 1125 KEXEC_ARCH_ARM = 0x280000
1126 KEY_REQKEY_DEFL_REQUESTOR_KEYRING = 0x7 1126 KEXEC_ARCH_DEFAULT = 0x0
1127 KEY_REQKEY_DEFL_SESSION_KEYRING = 0x3 1127 KEXEC_ARCH_IA_64 = 0x320000
1128 KEY_REQKEY_DEFL_THREAD_KEYRING = 0x1 1128 KEXEC_ARCH_MASK = 0xffff0000
1129 KEY_REQKEY_DEFL_USER_KEYRING = 0x4 1129 KEXEC_ARCH_MIPS = 0x80000
1130 KEY_REQKEY_DEFL_USER_SESSION_KEYRING = 0x5 1130 KEXEC_ARCH_MIPS_LE = 0xa0000
1131 KEY_SPEC_GROUP_KEYRING = -0x6 1131 KEXEC_ARCH_PARISC = 0xf0000
1132 KEY_SPEC_PROCESS_KEYRING = -0x2 1132 KEXEC_ARCH_PPC = 0x140000
1133 KEY_SPEC_REQKEY_AUTH_KEY = -0x7 1133 KEXEC_ARCH_PPC64 = 0x150000
1134 KEY_SPEC_REQUESTOR_KEYRING = -0x8 1134 KEXEC_ARCH_S390 = 0x160000
1135 KEY_SPEC_SESSION_KEYRING = -0x3 1135 KEXEC_ARCH_SH = 0x2a0000
1136 KEY_SPEC_THREAD_KEYRING = -0x1 1136 KEXEC_ARCH_X86_64 = 0x3e0000
1137 KEY_SPEC_USER_KEYRING = -0x4 1137 KEXEC_FILE_NO_INITRAMFS = 0x4
1138 KEY_SPEC_USER_SESSION_KEYRING = -0x5 1138 KEXEC_FILE_ON_CRASH = 0x2
1139 LINUX_REBOOT_CMD_CAD_OFF = 0x0 1139 KEXEC_FILE_UNLOAD = 0x1
1140 LINUX_REBOOT_CMD_CAD_ON = 0x89abcdef 1140 KEXEC_ON_CRASH = 0x1
1141 LINUX_REBOOT_CMD_HALT = 0xcdef0123 1141 KEXEC_PRESERVE_CONTEXT = 0x2
1142 LINUX_REBOOT_CMD_KEXEC = 0x45584543 1142 KEXEC_SEGMENT_MAX = 0x10
1143 LINUX_REBOOT_CMD_POWER_OFF = 0x4321fedc 1143 KEYCTL_ASSUME_AUTHORITY = 0x10
1144 LINUX_REBOOT_CMD_RESTART = 0x1234567 1144 KEYCTL_CAPABILITIES = 0x1f
1145 LINUX_REBOOT_CMD_RESTART2 = 0xa1b2c3d4 1145 KEYCTL_CAPS0_BIG_KEY = 0x10
1146 LINUX_REBOOT_CMD_SW_SUSPEND = 0xd000fce2 1146 KEYCTL_CAPS0_CAPABILITIES = 0x1
1147 LINUX_REBOOT_MAGIC1 = 0xfee1dead 1147 KEYCTL_CAPS0_DIFFIE_HELLMAN = 0x4
1148 LINUX_REBOOT_MAGIC2 = 0x28121969 1148 KEYCTL_CAPS0_INVALIDATE = 0x20
1149 LOCK_EX = 0x2 1149 KEYCTL_CAPS0_MOVE = 0x80
1150 LOCK_NB = 0x4 1150 KEYCTL_CAPS0_PERSISTENT_KEYRINGS = 0x2
1151 LOCK_SH = 0x1 1151 KEYCTL_CAPS0_PUBLIC_KEY = 0x8
1152 LOCK_UN = 0x8 1152 KEYCTL_CAPS0_RESTRICT_KEYRING = 0x40
1153 LOOP_CLR_FD = 0x4c01 1153 KEYCTL_CAPS1_NS_KEYRING_NAME = 0x1
1154 LOOP_CTL_ADD = 0x4c80 1154 KEYCTL_CAPS1_NS_KEY_TAG = 0x2
1155 LOOP_CTL_GET_FREE = 0x4c82 1155 KEYCTL_CHOWN = 0x4
1156 LOOP_CTL_REMOVE = 0x4c81 1156 KEYCTL_CLEAR = 0x7
1157 LOOP_GET_STATUS = 0x4c03 1157 KEYCTL_DESCRIBE = 0x6
1158 LOOP_GET_STATUS64 = 0x4c05 1158 KEYCTL_DH_COMPUTE = 0x17
1159 LOOP_SET_BLOCK_SIZE = 0x4c09 1159 KEYCTL_GET_KEYRING_ID = 0x0
1160 LOOP_SET_CAPACITY = 0x4c07 1160 KEYCTL_GET_PERSISTENT = 0x16
1161 LOOP_SET_DIRECT_IO = 0x4c08 1161 KEYCTL_GET_SECURITY = 0x11
1162 LOOP_SET_FD = 0x4c00 1162 KEYCTL_INSTANTIATE = 0xc
1163 LOOP_SET_STATUS = 0x4c02 1163 KEYCTL_INSTANTIATE_IOV = 0x14
1164 LOOP_SET_STATUS64 = 0x4c04 1164 KEYCTL_INVALIDATE = 0x15
1165 LO_KEY_SIZE = 0x20 1165 KEYCTL_JOIN_SESSION_KEYRING = 0x1
1166 LO_NAME_SIZE = 0x40 1166 KEYCTL_LINK = 0x8
1167 MADV_DODUMP = 0x11 1167 KEYCTL_MOVE = 0x1e
1168 MADV_DOFORK = 0xb 1168 KEYCTL_MOVE_EXCL = 0x1
1169 MADV_DONTDUMP = 0x10 1169 KEYCTL_NEGATE = 0xd
1170 MADV_DONTFORK = 0xa 1170 KEYCTL_PKEY_DECRYPT = 0x1a
1171 MADV_DONTNEED = 0x4 1171 KEYCTL_PKEY_ENCRYPT = 0x19
1172 MADV_FREE = 0x8 1172 KEYCTL_PKEY_QUERY = 0x18
1173 MADV_HUGEPAGE = 0xe 1173 KEYCTL_PKEY_SIGN = 0x1b
1174 MADV_HWPOISON = 0x64 1174 KEYCTL_PKEY_VERIFY = 0x1c
1175 MADV_KEEPONFORK = 0x13 1175 KEYCTL_READ = 0xb
1176 MADV_MERGEABLE = 0xc 1176 KEYCTL_REJECT = 0x13
1177 MADV_NOHUGEPAGE = 0xf 1177 KEYCTL_RESTRICT_KEYRING = 0x1d
1178 MADV_NORMAL = 0x0 1178 KEYCTL_REVOKE = 0x3
1179 MADV_RANDOM = 0x1 1179 KEYCTL_SEARCH = 0xa
1180 MADV_REMOVE = 0x9 1180 KEYCTL_SESSION_TO_PARENT = 0x12
1181 MADV_SEQUENTIAL = 0x2 1181 KEYCTL_SETPERM = 0x5
1182 MADV_UNMERGEABLE = 0xd 1182 KEYCTL_SET_REQKEY_KEYRING = 0xe
1183 MADV_WILLNEED = 0x3 1183 KEYCTL_SET_TIMEOUT = 0xf
1184 MADV_WIPEONFORK = 0x12 1184 KEYCTL_SUPPORTS_DECRYPT = 0x2
1185 MAP_ANON = 0x20 1185 KEYCTL_SUPPORTS_ENCRYPT = 0x1
1186 MAP_ANONYMOUS = 0x20 1186 KEYCTL_SUPPORTS_SIGN = 0x4
1187 MAP_DENYWRITE = 0x800 1187 KEYCTL_SUPPORTS_VERIFY = 0x8
1188 MAP_EXECUTABLE = 0x1000 1188 KEYCTL_UNLINK = 0x9
1189 MAP_FILE = 0x0 1189 KEYCTL_UPDATE = 0x2
1190 MAP_FIXED = 0x10 1190 KEY_REQKEY_DEFL_DEFAULT = 0x0
1191 MAP_FIXED_NOREPLACE = 0x100000 1191 KEY_REQKEY_DEFL_GROUP_KEYRING = 0x6
1192 MAP_GROWSDOWN = 0x100 1192 KEY_REQKEY_DEFL_NO_CHANGE = -0x1
1193 MAP_HUGETLB = 0x40000 1193 KEY_REQKEY_DEFL_PROCESS_KEYRING = 0x2
1194 MAP_HUGE_MASK = 0x3f 1194 KEY_REQKEY_DEFL_REQUESTOR_KEYRING = 0x7
1195 MAP_HUGE_SHIFT = 0x1a 1195 KEY_REQKEY_DEFL_SESSION_KEYRING = 0x3
1196 MAP_LOCKED = 0x2000 1196 KEY_REQKEY_DEFL_THREAD_KEYRING = 0x1
1197 MAP_NONBLOCK = 0x10000 1197 KEY_REQKEY_DEFL_USER_KEYRING = 0x4
1198 MAP_NORESERVE = 0x4000 1198 KEY_REQKEY_DEFL_USER_SESSION_KEYRING = 0x5
1199 MAP_POPULATE = 0x8000 1199 KEY_SPEC_GROUP_KEYRING = -0x6
1200 MAP_PRIVATE = 0x2 1200 KEY_SPEC_PROCESS_KEYRING = -0x2
1201 MAP_SHARED = 0x1 1201 KEY_SPEC_REQKEY_AUTH_KEY = -0x7
1202 MAP_SHARED_VALIDATE = 0x3 1202 KEY_SPEC_REQUESTOR_KEYRING = -0x8
1203 MAP_STACK = 0x20000 1203 KEY_SPEC_SESSION_KEYRING = -0x3
1204 MAP_SYNC = 0x80000 1204 KEY_SPEC_THREAD_KEYRING = -0x1
1205 MAP_TYPE = 0xf 1205 KEY_SPEC_USER_KEYRING = -0x4
1206 MCAST_BLOCK_SOURCE = 0x2b 1206 KEY_SPEC_USER_SESSION_KEYRING = -0x5
1207 MCAST_EXCLUDE = 0x0 1207 LINUX_REBOOT_CMD_CAD_OFF = 0x0
1208 MCAST_INCLUDE = 0x1 1208 LINUX_REBOOT_CMD_CAD_ON = 0x89abcdef
1209 MCAST_JOIN_GROUP = 0x2a 1209 LINUX_REBOOT_CMD_HALT = 0xcdef0123
1210 MCAST_JOIN_SOURCE_GROUP = 0x2e 1210 LINUX_REBOOT_CMD_KEXEC = 0x45584543
1211 MCAST_LEAVE_GROUP = 0x2d 1211 LINUX_REBOOT_CMD_POWER_OFF = 0x4321fedc
1212 MCAST_LEAVE_SOURCE_GROUP = 0x2f 1212 LINUX_REBOOT_CMD_RESTART = 0x1234567
1213 MCAST_MSFILTER = 0x30 1213 LINUX_REBOOT_CMD_RESTART2 = 0xa1b2c3d4
1214 MCAST_UNBLOCK_SOURCE = 0x2c 1214 LINUX_REBOOT_CMD_SW_SUSPEND = 0xd000fce2
1215 MCL_CURRENT = 0x1 1215 LINUX_REBOOT_MAGIC1 = 0xfee1dead
1216 MCL_FUTURE = 0x2 1216 LINUX_REBOOT_MAGIC2 = 0x28121969
1217 MCL_ONFAULT = 0x4 1217 LOCK_EX = 0x2
1218 MFD_ALLOW_SEALING = 0x2 1218 LOCK_NB = 0x4
1219 MFD_CLOEXEC = 0x1 1219 LOCK_SH = 0x1
1220 MFD_HUGETLB = 0x4 1220 LOCK_UN = 0x8
1221 MFD_HUGE_16GB = -0x78000000 1221 LOOP_CLR_FD = 0x4c01
1222 MFD_HUGE_16MB = 0x60000000 1222 LOOP_CTL_ADD = 0x4c80
1223 MFD_HUGE_1GB = 0x78000000 1223 LOOP_CTL_GET_FREE = 0x4c82
1224 MFD_HUGE_1MB = 0x50000000 1224 LOOP_CTL_REMOVE = 0x4c81
1225 MFD_HUGE_256MB = 0x70000000 1225 LOOP_GET_STATUS = 0x4c03
1226 MFD_HUGE_2GB = 0x7c000000 1226 LOOP_GET_STATUS64 = 0x4c05
1227 MFD_HUGE_2MB = 0x54000000 1227 LOOP_SET_BLOCK_SIZE = 0x4c09
1228 MFD_HUGE_32MB = 0x64000000 1228 LOOP_SET_CAPACITY = 0x4c07
1229 MFD_HUGE_512KB = 0x4c000000 1229 LOOP_SET_DIRECT_IO = 0x4c08
1230 MFD_HUGE_512MB = 0x74000000 1230 LOOP_SET_FD = 0x4c00
1231 MFD_HUGE_64KB = 0x40000000 1231 LOOP_SET_STATUS = 0x4c02
1232 MFD_HUGE_8MB = 0x5c000000 1232 LOOP_SET_STATUS64 = 0x4c04
1233 MFD_HUGE_MASK = 0x3f 1233 LO_KEY_SIZE = 0x20
1234 MFD_HUGE_SHIFT = 0x1a 1234 LO_NAME_SIZE = 0x40
1235 MINIX2_SUPER_MAGIC = 0x2468 1235 MADV_COLD = 0x14
1236 MINIX2_SUPER_MAGIC2 = 0x2478 1236 MADV_DODUMP = 0x11
1237 MINIX3_SUPER_MAGIC = 0x4d5a 1237 MADV_DOFORK = 0xb
1238 MINIX_SUPER_MAGIC = 0x137f 1238 MADV_DONTDUMP = 0x10
1239 MINIX_SUPER_MAGIC2 = 0x138f 1239 MADV_DONTFORK = 0xa
1240 MNT_DETACH = 0x2 1240 MADV_DONTNEED = 0x4
1241 MNT_EXPIRE = 0x4 1241 MADV_FREE = 0x8
1242 MNT_FORCE = 0x1 1242 MADV_HUGEPAGE = 0xe
1243 MODULE_INIT_IGNORE_MODVERSIONS = 0x1 1243 MADV_HWPOISON = 0x64
1244 MODULE_INIT_IGNORE_VERMAGIC = 0x2 1244 MADV_KEEPONFORK = 0x13
1245 MSDOS_SUPER_MAGIC = 0x4d44 1245 MADV_MERGEABLE = 0xc
1246 MSG_BATCH = 0x40000 1246 MADV_NOHUGEPAGE = 0xf
1247 MSG_CMSG_CLOEXEC = 0x40000000 1247 MADV_NORMAL = 0x0
1248 MSG_CONFIRM = 0x800 1248 MADV_PAGEOUT = 0x15
1249 MSG_CTRUNC = 0x8 1249 MADV_RANDOM = 0x1
1250 MSG_DONTROUTE = 0x4 1250 MADV_REMOVE = 0x9
1251 MSG_DONTWAIT = 0x40 1251 MADV_SEQUENTIAL = 0x2
1252 MSG_EOR = 0x80 1252 MADV_UNMERGEABLE = 0xd
1253 MSG_ERRQUEUE = 0x2000 1253 MADV_WILLNEED = 0x3
1254 MSG_FASTOPEN = 0x20000000 1254 MADV_WIPEONFORK = 0x12
1255 MSG_FIN = 0x200 1255 MAP_ANON = 0x20
1256 MSG_MORE = 0x8000 1256 MAP_ANONYMOUS = 0x20
1257 MSG_NOSIGNAL = 0x4000 1257 MAP_DENYWRITE = 0x800
1258 MSG_OOB = 0x1 1258 MAP_EXECUTABLE = 0x1000
1259 MSG_PEEK = 0x2 1259 MAP_FILE = 0x0
1260 MSG_PROXY = 0x10 1260 MAP_FIXED = 0x10
1261 MSG_RST = 0x1000 1261 MAP_FIXED_NOREPLACE = 0x100000
1262 MSG_SYN = 0x400 1262 MAP_GROWSDOWN = 0x100
1263 MSG_TRUNC = 0x20 1263 MAP_HUGETLB = 0x40000
1264 MSG_TRYHARD = 0x4 1264 MAP_HUGE_MASK = 0x3f
1265 MSG_WAITALL = 0x100 1265 MAP_HUGE_SHIFT = 0x1a
1266 MSG_WAITFORONE = 0x10000 1266 MAP_LOCKED = 0x2000
1267 MSG_ZEROCOPY = 0x4000000 1267 MAP_NONBLOCK = 0x10000
1268 MS_ACTIVE = 0x40000000 1268 MAP_NORESERVE = 0x4000
1269 MS_ASYNC = 0x1 1269 MAP_POPULATE = 0x8000
1270 MS_BIND = 0x1000 1270 MAP_PRIVATE = 0x2
1271 MS_BORN = 0x20000000 1271 MAP_SHARED = 0x1
1272 MS_DIRSYNC = 0x80 1272 MAP_SHARED_VALIDATE = 0x3
1273 MS_INVALIDATE = 0x2 1273 MAP_STACK = 0x20000
1274 MS_I_VERSION = 0x800000 1274 MAP_SYNC = 0x80000
1275 MS_KERNMOUNT = 0x400000 1275 MAP_TYPE = 0xf
1276 MS_LAZYTIME = 0x2000000 1276 MCAST_BLOCK_SOURCE = 0x2b
1277 MS_MANDLOCK = 0x40 1277 MCAST_EXCLUDE = 0x0
1278 MS_MGC_MSK = 0xffff0000 1278 MCAST_INCLUDE = 0x1
1279 MS_MGC_VAL = 0xc0ed0000 1279 MCAST_JOIN_GROUP = 0x2a
1280 MS_MOVE = 0x2000 1280 MCAST_JOIN_SOURCE_GROUP = 0x2e
1281 MS_NOATIME = 0x400 1281 MCAST_LEAVE_GROUP = 0x2d
1282 MS_NODEV = 0x4 1282 MCAST_LEAVE_SOURCE_GROUP = 0x2f
1283 MS_NODIRATIME = 0x800 1283 MCAST_MSFILTER = 0x30
1284 MS_NOEXEC = 0x8 1284 MCAST_UNBLOCK_SOURCE = 0x2c
1285 MS_NOREMOTELOCK = 0x8000000 1285 MCL_CURRENT = 0x1
1286 MS_NOSEC = 0x10000000 1286 MCL_FUTURE = 0x2
1287 MS_NOSUID = 0x2 1287 MCL_ONFAULT = 0x4
1288 MS_NOUSER = -0x80000000 1288 MFD_ALLOW_SEALING = 0x2
1289 MS_POSIXACL = 0x10000 1289 MFD_CLOEXEC = 0x1
1290 MS_PRIVATE = 0x40000 1290 MFD_HUGETLB = 0x4
1291 MS_RDONLY = 0x1 1291 MFD_HUGE_16GB = -0x78000000
1292 MS_REC = 0x4000 1292 MFD_HUGE_16MB = 0x60000000
1293 MS_RELATIME = 0x200000 1293 MFD_HUGE_1GB = 0x78000000
1294 MS_REMOUNT = 0x20 1294 MFD_HUGE_1MB = 0x50000000
1295 MS_RMT_MASK = 0x2800051 1295 MFD_HUGE_256MB = 0x70000000
1296 MS_SHARED = 0x100000 1296 MFD_HUGE_2GB = 0x7c000000
1297 MS_SILENT = 0x8000 1297 MFD_HUGE_2MB = 0x54000000
1298 MS_SLAVE = 0x80000 1298 MFD_HUGE_32MB = 0x64000000
1299 MS_STRICTATIME = 0x1000000 1299 MFD_HUGE_512KB = 0x4c000000
1300 MS_SUBMOUNT = 0x4000000 1300 MFD_HUGE_512MB = 0x74000000
1301 MS_SYNC = 0x4 1301 MFD_HUGE_64KB = 0x40000000
1302 MS_SYNCHRONOUS = 0x10 1302 MFD_HUGE_8MB = 0x5c000000
1303 MS_UNBINDABLE = 0x20000 1303 MFD_HUGE_MASK = 0x3f
1304 MS_VERBOSE = 0x8000 1304 MFD_HUGE_SHIFT = 0x1a
1305 MTD_INODE_FS_MAGIC = 0x11307854 1305 MINIX2_SUPER_MAGIC = 0x2468
1306 NAME_MAX = 0xff 1306 MINIX2_SUPER_MAGIC2 = 0x2478
1307 NCP_SUPER_MAGIC = 0x564c 1307 MINIX3_SUPER_MAGIC = 0x4d5a
1308 NETLINK_ADD_MEMBERSHIP = 0x1 1308 MINIX_SUPER_MAGIC = 0x137f
1309 NETLINK_AUDIT = 0x9 1309 MINIX_SUPER_MAGIC2 = 0x138f
1310 NETLINK_BROADCAST_ERROR = 0x4 1310 MNT_DETACH = 0x2
1311 NETLINK_CAP_ACK = 0xa 1311 MNT_EXPIRE = 0x4
1312 NETLINK_CONNECTOR = 0xb 1312 MNT_FORCE = 0x1
1313 NETLINK_CRYPTO = 0x15 1313 MODULE_INIT_IGNORE_MODVERSIONS = 0x1
1314 NETLINK_DNRTMSG = 0xe 1314 MODULE_INIT_IGNORE_VERMAGIC = 0x2
1315 NETLINK_DROP_MEMBERSHIP = 0x2 1315 MSDOS_SUPER_MAGIC = 0x4d44
1316 NETLINK_ECRYPTFS = 0x13 1316 MSG_BATCH = 0x40000
1317 NETLINK_EXT_ACK = 0xb 1317 MSG_CMSG_CLOEXEC = 0x40000000
1318 NETLINK_FIB_LOOKUP = 0xa 1318 MSG_CONFIRM = 0x800
1319 NETLINK_FIREWALL = 0x3 1319 MSG_CTRUNC = 0x8
1320 NETLINK_GENERIC = 0x10 1320 MSG_DONTROUTE = 0x4
1321 NETLINK_GET_STRICT_CHK = 0xc 1321 MSG_DONTWAIT = 0x40
1322 NETLINK_INET_DIAG = 0x4 1322 MSG_EOR = 0x80
1323 NETLINK_IP6_FW = 0xd 1323 MSG_ERRQUEUE = 0x2000
1324 NETLINK_ISCSI = 0x8 1324 MSG_FASTOPEN = 0x20000000
1325 NETLINK_KOBJECT_UEVENT = 0xf 1325 MSG_FIN = 0x200
1326 NETLINK_LISTEN_ALL_NSID = 0x8 1326 MSG_MORE = 0x8000
1327 NETLINK_LIST_MEMBERSHIPS = 0x9 1327 MSG_NOSIGNAL = 0x4000
1328 NETLINK_NETFILTER = 0xc 1328 MSG_OOB = 0x1
1329 NETLINK_NFLOG = 0x5 1329 MSG_PEEK = 0x2
1330 NETLINK_NO_ENOBUFS = 0x5 1330 MSG_PROXY = 0x10
1331 NETLINK_PKTINFO = 0x3 1331 MSG_RST = 0x1000
1332 NETLINK_RDMA = 0x14 1332 MSG_SYN = 0x400
1333 NETLINK_ROUTE = 0x0 1333 MSG_TRUNC = 0x20
1334 NETLINK_RX_RING = 0x6 1334 MSG_TRYHARD = 0x4
1335 NETLINK_SCSITRANSPORT = 0x12 1335 MSG_WAITALL = 0x100
1336 NETLINK_SELINUX = 0x7 1336 MSG_WAITFORONE = 0x10000
1337 NETLINK_SMC = 0x16 1337 MSG_ZEROCOPY = 0x4000000
1338 NETLINK_SOCK_DIAG = 0x4 1338 MS_ACTIVE = 0x40000000
1339 NETLINK_TX_RING = 0x7 1339 MS_ASYNC = 0x1
1340 NETLINK_UNUSED = 0x1 1340 MS_BIND = 0x1000
1341 NETLINK_USERSOCK = 0x2 1341 MS_BORN = 0x20000000
1342 NETLINK_XFRM = 0x6 1342 MS_DIRSYNC = 0x80
1343 NETNSA_MAX = 0x5 1343 MS_INVALIDATE = 0x2
1344 NETNSA_NSID_NOT_ASSIGNED = -0x1 1344 MS_I_VERSION = 0x800000
1345 NFNETLINK_V0 = 0x0 1345 MS_KERNMOUNT = 0x400000
1346 NFNLGRP_ACCT_QUOTA = 0x8 1346 MS_LAZYTIME = 0x2000000
1347 NFNLGRP_CONNTRACK_DESTROY = 0x3 1347 MS_MANDLOCK = 0x40
1348 NFNLGRP_CONNTRACK_EXP_DESTROY = 0x6 1348 MS_MGC_MSK = 0xffff0000
1349 NFNLGRP_CONNTRACK_EXP_NEW = 0x4 1349 MS_MGC_VAL = 0xc0ed0000
1350 NFNLGRP_CONNTRACK_EXP_UPDATE = 0x5 1350 MS_MOVE = 0x2000
1351 NFNLGRP_CONNTRACK_NEW = 0x1 1351 MS_NOATIME = 0x400
1352 NFNLGRP_CONNTRACK_UPDATE = 0x2 1352 MS_NODEV = 0x4
1353 NFNLGRP_MAX = 0x9 1353 MS_NODIRATIME = 0x800
1354 NFNLGRP_NFTABLES = 0x7 1354 MS_NOEXEC = 0x8
1355 NFNLGRP_NFTRACE = 0x9 1355 MS_NOREMOTELOCK = 0x8000000
1356 NFNLGRP_NONE = 0x0 1356 MS_NOSEC = 0x10000000
1357 NFNL_BATCH_MAX = 0x1 1357 MS_NOSUID = 0x2
1358 NFNL_MSG_BATCH_BEGIN = 0x10 1358 MS_NOUSER = -0x80000000
1359 NFNL_MSG_BATCH_END = 0x11 1359 MS_POSIXACL = 0x10000
1360 NFNL_NFA_NEST = 0x8000 1360 MS_PRIVATE = 0x40000
1361 NFNL_SUBSYS_ACCT = 0x7 1361 MS_RDONLY = 0x1
1362 NFNL_SUBSYS_COUNT = 0xc 1362 MS_REC = 0x4000
1363 NFNL_SUBSYS_CTHELPER = 0x9 1363 MS_RELATIME = 0x200000
1364 NFNL_SUBSYS_CTNETLINK = 0x1 1364 MS_REMOUNT = 0x20
1365 NFNL_SUBSYS_CTNETLINK_EXP = 0x2 1365 MS_RMT_MASK = 0x2800051
1366 NFNL_SUBSYS_CTNETLINK_TIMEOUT = 0x8 1366 MS_SHARED = 0x100000
1367 NFNL_SUBSYS_IPSET = 0x6 1367 MS_SILENT = 0x8000
1368 NFNL_SUBSYS_NFTABLES = 0xa 1368 MS_SLAVE = 0x80000
1369 NFNL_SUBSYS_NFT_COMPAT = 0xb 1369 MS_STRICTATIME = 0x1000000
1370 NFNL_SUBSYS_NONE = 0x0 1370 MS_SUBMOUNT = 0x4000000
1371 NFNL_SUBSYS_OSF = 0x5 1371 MS_SYNC = 0x4
1372 NFNL_SUBSYS_QUEUE = 0x3 1372 MS_SYNCHRONOUS = 0x10
1373 NFNL_SUBSYS_ULOG = 0x4 1373 MS_UNBINDABLE = 0x20000
1374 NFS_SUPER_MAGIC = 0x6969 1374 MS_VERBOSE = 0x8000
1375 NILFS_SUPER_MAGIC = 0x3434 1375 MTD_INODE_FS_MAGIC = 0x11307854
1376 NL0 = 0x0 1376 NAME_MAX = 0xff
1377 NL1 = 0x100 1377 NCP_SUPER_MAGIC = 0x564c
1378 NLA_ALIGNTO = 0x4 1378 NETLINK_ADD_MEMBERSHIP = 0x1
1379 NLA_F_NESTED = 0x8000 1379 NETLINK_AUDIT = 0x9
1380 NLA_F_NET_BYTEORDER = 0x4000 1380 NETLINK_BROADCAST_ERROR = 0x4
1381 NLA_HDRLEN = 0x4 1381 NETLINK_CAP_ACK = 0xa
1382 NLDLY = 0x100 1382 NETLINK_CONNECTOR = 0xb
1383 NLMSG_ALIGNTO = 0x4 1383 NETLINK_CRYPTO = 0x15
1384 NLMSG_DONE = 0x3 1384 NETLINK_DNRTMSG = 0xe
1385 NLMSG_ERROR = 0x2 1385 NETLINK_DROP_MEMBERSHIP = 0x2
1386 NLMSG_HDRLEN = 0x10 1386 NETLINK_ECRYPTFS = 0x13
1387 NLMSG_MIN_TYPE = 0x10 1387 NETLINK_EXT_ACK = 0xb
1388 NLMSG_NOOP = 0x1 1388 NETLINK_FIB_LOOKUP = 0xa
1389 NLMSG_OVERRUN = 0x4 1389 NETLINK_FIREWALL = 0x3
1390 NLM_F_ACK = 0x4 1390 NETLINK_GENERIC = 0x10
1391 NLM_F_ACK_TLVS = 0x200 1391 NETLINK_GET_STRICT_CHK = 0xc
1392 NLM_F_APPEND = 0x800 1392 NETLINK_INET_DIAG = 0x4
1393 NLM_F_ATOMIC = 0x400 1393 NETLINK_IP6_FW = 0xd
1394 NLM_F_CAPPED = 0x100 1394 NETLINK_ISCSI = 0x8
1395 NLM_F_CREATE = 0x400 1395 NETLINK_KOBJECT_UEVENT = 0xf
1396 NLM_F_DUMP = 0x300 1396 NETLINK_LISTEN_ALL_NSID = 0x8
1397 NLM_F_DUMP_FILTERED = 0x20 1397 NETLINK_LIST_MEMBERSHIPS = 0x9
1398 NLM_F_DUMP_INTR = 0x10 1398 NETLINK_NETFILTER = 0xc
1399 NLM_F_ECHO = 0x8 1399 NETLINK_NFLOG = 0x5
1400 NLM_F_EXCL = 0x200 1400 NETLINK_NO_ENOBUFS = 0x5
1401 NLM_F_MATCH = 0x200 1401 NETLINK_PKTINFO = 0x3
1402 NLM_F_MULTI = 0x2 1402 NETLINK_RDMA = 0x14
1403 NLM_F_NONREC = 0x100 1403 NETLINK_ROUTE = 0x0
1404 NLM_F_REPLACE = 0x100 1404 NETLINK_RX_RING = 0x6
1405 NLM_F_REQUEST = 0x1 1405 NETLINK_SCSITRANSPORT = 0x12
1406 NLM_F_ROOT = 0x100 1406 NETLINK_SELINUX = 0x7
1407 NOFLSH = 0x80 1407 NETLINK_SMC = 0x16
1408 NSFS_MAGIC = 0x6e736673 1408 NETLINK_SOCK_DIAG = 0x4
1409 NS_GET_NSTYPE = 0xb703 1409 NETLINK_TX_RING = 0x7
1410 NS_GET_OWNER_UID = 0xb704 1410 NETLINK_UNUSED = 0x1
1411 NS_GET_PARENT = 0xb702 1411 NETLINK_USERSOCK = 0x2
1412 NS_GET_USERNS = 0xb701 1412 NETLINK_XFRM = 0x6
1413 OCFS2_SUPER_MAGIC = 0x7461636f 1413 NETNSA_MAX = 0x5
1414 OCRNL = 0x8 1414 NETNSA_NSID_NOT_ASSIGNED = -0x1
1415 OFDEL = 0x80 1415 NFDBITS = 0x40
1416 OFILL = 0x40 1416 NFNETLINK_V0 = 0x0
1417 OLCUC = 0x2 1417 NFNLGRP_ACCT_QUOTA = 0x8
1418 ONLCR = 0x4 1418 NFNLGRP_CONNTRACK_DESTROY = 0x3
1419 ONLRET = 0x20 1419 NFNLGRP_CONNTRACK_EXP_DESTROY = 0x6
1420 ONOCR = 0x10 1420 NFNLGRP_CONNTRACK_EXP_NEW = 0x4
1421 OPENPROM_SUPER_MAGIC = 0x9fa1 1421 NFNLGRP_CONNTRACK_EXP_UPDATE = 0x5
1422 OPOST = 0x1 1422 NFNLGRP_CONNTRACK_NEW = 0x1
1423 OVERLAYFS_SUPER_MAGIC = 0x794c7630 1423 NFNLGRP_CONNTRACK_UPDATE = 0x2
1424 O_ACCMODE = 0x3 1424 NFNLGRP_MAX = 0x9
1425 O_APPEND = 0x400 1425 NFNLGRP_NFTABLES = 0x7
1426 O_ASYNC = 0x2000 1426 NFNLGRP_NFTRACE = 0x9
1427 O_CLOEXEC = 0x80000 1427 NFNLGRP_NONE = 0x0
1428 O_CREAT = 0x40 1428 NFNL_BATCH_MAX = 0x1
1429 O_DIRECT = 0x4000 1429 NFNL_MSG_BATCH_BEGIN = 0x10
1430 O_DIRECTORY = 0x10000 1430 NFNL_MSG_BATCH_END = 0x11
1431 O_DSYNC = 0x1000 1431 NFNL_NFA_NEST = 0x8000
1432 O_EXCL = 0x80 1432 NFNL_SUBSYS_ACCT = 0x7
1433 O_FSYNC = 0x101000 1433 NFNL_SUBSYS_COUNT = 0xc
1434 O_LARGEFILE = 0x0 1434 NFNL_SUBSYS_CTHELPER = 0x9
1435 O_NDELAY = 0x800 1435 NFNL_SUBSYS_CTNETLINK = 0x1
1436 O_NOATIME = 0x40000 1436 NFNL_SUBSYS_CTNETLINK_EXP = 0x2
1437 O_NOCTTY = 0x100 1437 NFNL_SUBSYS_CTNETLINK_TIMEOUT = 0x8
1438 O_NOFOLLOW = 0x20000 1438 NFNL_SUBSYS_IPSET = 0x6
1439 O_NONBLOCK = 0x800 1439 NFNL_SUBSYS_NFTABLES = 0xa
1440 O_PATH = 0x200000 1440 NFNL_SUBSYS_NFT_COMPAT = 0xb
1441 O_RDONLY = 0x0 1441 NFNL_SUBSYS_NONE = 0x0
1442 O_RDWR = 0x2 1442 NFNL_SUBSYS_OSF = 0x5
1443 O_RSYNC = 0x101000 1443 NFNL_SUBSYS_QUEUE = 0x3
1444 O_SYNC = 0x101000 1444 NFNL_SUBSYS_ULOG = 0x4
1445 O_TMPFILE = 0x410000 1445 NFS_SUPER_MAGIC = 0x6969
1446 O_TRUNC = 0x200 1446 NILFS_SUPER_MAGIC = 0x3434
1447 O_WRONLY = 0x1 1447 NL0 = 0x0
1448 PACKET_ADD_MEMBERSHIP = 0x1 1448 NL1 = 0x100
1449 PACKET_AUXDATA = 0x8 1449 NLA_ALIGNTO = 0x4
1450 PACKET_BROADCAST = 0x1 1450 NLA_F_NESTED = 0x8000
1451 PACKET_COPY_THRESH = 0x7 1451 NLA_F_NET_BYTEORDER = 0x4000
1452 PACKET_DROP_MEMBERSHIP = 0x2 1452 NLA_HDRLEN = 0x4
1453 PACKET_FANOUT = 0x12 1453 NLDLY = 0x100
1454 PACKET_FANOUT_CBPF = 0x6 1454 NLMSG_ALIGNTO = 0x4
1455 PACKET_FANOUT_CPU = 0x2 1455 NLMSG_DONE = 0x3
1456 PACKET_FANOUT_DATA = 0x16 1456 NLMSG_ERROR = 0x2
1457 PACKET_FANOUT_EBPF = 0x7 1457 NLMSG_HDRLEN = 0x10
1458 PACKET_FANOUT_FLAG_DEFRAG = 0x8000 1458 NLMSG_MIN_TYPE = 0x10
1459 PACKET_FANOUT_FLAG_ROLLOVER = 0x1000 1459 NLMSG_NOOP = 0x1
1460 PACKET_FANOUT_FLAG_UNIQUEID = 0x2000 1460 NLMSG_OVERRUN = 0x4
1461 PACKET_FANOUT_HASH = 0x0 1461 NLM_F_ACK = 0x4
1462 PACKET_FANOUT_LB = 0x1 1462 NLM_F_ACK_TLVS = 0x200
1463 PACKET_FANOUT_QM = 0x5 1463 NLM_F_APPEND = 0x800
1464 PACKET_FANOUT_RND = 0x4 1464 NLM_F_ATOMIC = 0x400
1465 PACKET_FANOUT_ROLLOVER = 0x3 1465 NLM_F_CAPPED = 0x100
1466 PACKET_FASTROUTE = 0x6 1466 NLM_F_CREATE = 0x400
1467 PACKET_HDRLEN = 0xb 1467 NLM_F_DUMP = 0x300
1468 PACKET_HOST = 0x0 1468 NLM_F_DUMP_FILTERED = 0x20
1469 PACKET_IGNORE_OUTGOING = 0x17 1469 NLM_F_DUMP_INTR = 0x10
1470 PACKET_KERNEL = 0x7 1470 NLM_F_ECHO = 0x8
1471 PACKET_LOOPBACK = 0x5 1471 NLM_F_EXCL = 0x200
1472 PACKET_LOSS = 0xe 1472 NLM_F_MATCH = 0x200
1473 PACKET_MR_ALLMULTI = 0x2 1473 NLM_F_MULTI = 0x2
1474 PACKET_MR_MULTICAST = 0x0 1474 NLM_F_NONREC = 0x100
1475 PACKET_MR_PROMISC = 0x1 1475 NLM_F_REPLACE = 0x100
1476 PACKET_MR_UNICAST = 0x3 1476 NLM_F_REQUEST = 0x1
1477 PACKET_MULTICAST = 0x2 1477 NLM_F_ROOT = 0x100
1478 PACKET_ORIGDEV = 0x9 1478 NOFLSH = 0x80
1479 PACKET_OTHERHOST = 0x3 1479 NSFS_MAGIC = 0x6e736673
1480 PACKET_OUTGOING = 0x4 1480 NS_GET_NSTYPE = 0xb703
1481 PACKET_QDISC_BYPASS = 0x14 1481 NS_GET_OWNER_UID = 0xb704
1482 PACKET_RECV_OUTPUT = 0x3 1482 NS_GET_PARENT = 0xb702
1483 PACKET_RESERVE = 0xc 1483 NS_GET_USERNS = 0xb701
1484 PACKET_ROLLOVER_STATS = 0x15 1484 OCFS2_SUPER_MAGIC = 0x7461636f
1485 PACKET_RX_RING = 0x5 1485 OCRNL = 0x8
1486 PACKET_STATISTICS = 0x6 1486 OFDEL = 0x80
1487 PACKET_TIMESTAMP = 0x11 1487 OFILL = 0x40
1488 PACKET_TX_HAS_OFF = 0x13 1488 OLCUC = 0x2
1489 PACKET_TX_RING = 0xd 1489 ONLCR = 0x4
1490 PACKET_TX_TIMESTAMP = 0x10 1490 ONLRET = 0x20
1491 PACKET_USER = 0x6 1491 ONOCR = 0x10
1492 PACKET_VERSION = 0xa 1492 OPENPROM_SUPER_MAGIC = 0x9fa1
1493 PACKET_VNET_HDR = 0xf 1493 OPOST = 0x1
1494 PARENB = 0x100 1494 OVERLAYFS_SUPER_MAGIC = 0x794c7630
1495 PARITY_CRC16_PR0 = 0x2 1495 O_ACCMODE = 0x3
1496 PARITY_CRC16_PR0_CCITT = 0x4 1496 O_APPEND = 0x400
1497 PARITY_CRC16_PR1 = 0x3 1497 O_ASYNC = 0x2000
1498 PARITY_CRC16_PR1_CCITT = 0x5 1498 O_CLOEXEC = 0x80000
1499 PARITY_CRC32_PR0_CCITT = 0x6 1499 O_CREAT = 0x40
1500 PARITY_CRC32_PR1_CCITT = 0x7 1500 O_DIRECT = 0x4000
1501 PARITY_DEFAULT = 0x0 1501 O_DIRECTORY = 0x10000
1502 PARITY_NONE = 0x1 1502 O_DSYNC = 0x1000
1503 PARMRK = 0x8 1503 O_EXCL = 0x80
1504 PARODD = 0x200 1504 O_FSYNC = 0x101000
1505 PENDIN = 0x4000 1505 O_LARGEFILE = 0x0
1506 PERF_EVENT_IOC_DISABLE = 0x2401 1506 O_NDELAY = 0x800
1507 PERF_EVENT_IOC_ENABLE = 0x2400 1507 O_NOATIME = 0x40000
1508 PERF_EVENT_IOC_ID = 0x80082407 1508 O_NOCTTY = 0x100
1509 PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x4008240b 1509 O_NOFOLLOW = 0x20000
1510 PERF_EVENT_IOC_PAUSE_OUTPUT = 0x40042409 1510 O_NONBLOCK = 0x800
1511 PERF_EVENT_IOC_PERIOD = 0x40082404 1511 O_PATH = 0x200000
1512 PERF_EVENT_IOC_QUERY_BPF = 0xc008240a 1512 O_RDONLY = 0x0
1513 PERF_EVENT_IOC_REFRESH = 0x2402 1513 O_RDWR = 0x2
1514 PERF_EVENT_IOC_RESET = 0x2403 1514 O_RSYNC = 0x101000
1515 PERF_EVENT_IOC_SET_BPF = 0x40042408 1515 O_SYNC = 0x101000
1516 PERF_EVENT_IOC_SET_FILTER = 0x40082406 1516 O_TMPFILE = 0x410000
1517 PERF_EVENT_IOC_SET_OUTPUT = 0x2405 1517 O_TRUNC = 0x200
1518 PIPEFS_MAGIC = 0x50495045 1518 O_WRONLY = 0x1
1519 PPPIOCATTACH = 0x4004743d 1519 PACKET_ADD_MEMBERSHIP = 0x1
1520 PPPIOCATTCHAN = 0x40047438 1520 PACKET_AUXDATA = 0x8
1521 PPPIOCCONNECT = 0x4004743a 1521 PACKET_BROADCAST = 0x1
1522 PPPIOCDETACH = 0x4004743c 1522 PACKET_COPY_THRESH = 0x7
1523 PPPIOCDISCONN = 0x7439 1523 PACKET_DROP_MEMBERSHIP = 0x2
1524 PPPIOCGASYNCMAP = 0x80047458 1524 PACKET_FANOUT = 0x12
1525 PPPIOCGCHAN = 0x80047437 1525 PACKET_FANOUT_CBPF = 0x6
1526 PPPIOCGDEBUG = 0x80047441 1526 PACKET_FANOUT_CPU = 0x2
1527 PPPIOCGFLAGS = 0x8004745a 1527 PACKET_FANOUT_DATA = 0x16
1528 PPPIOCGIDLE = 0x8010743f 1528 PACKET_FANOUT_EBPF = 0x7
1529 PPPIOCGL2TPSTATS = 0x80487436 1529 PACKET_FANOUT_FLAG_DEFRAG = 0x8000
1530 PPPIOCGMRU = 0x80047453 1530 PACKET_FANOUT_FLAG_ROLLOVER = 0x1000
1531 PPPIOCGNPMODE = 0xc008744c 1531 PACKET_FANOUT_FLAG_UNIQUEID = 0x2000
1532 PPPIOCGRASYNCMAP = 0x80047455 1532 PACKET_FANOUT_HASH = 0x0
1533 PPPIOCGUNIT = 0x80047456 1533 PACKET_FANOUT_LB = 0x1
1534 PPPIOCGXASYNCMAP = 0x80207450 1534 PACKET_FANOUT_QM = 0x5
1535 PPPIOCNEWUNIT = 0xc004743e 1535 PACKET_FANOUT_RND = 0x4
1536 PPPIOCSACTIVE = 0x40107446 1536 PACKET_FANOUT_ROLLOVER = 0x3
1537 PPPIOCSASYNCMAP = 0x40047457 1537 PACKET_FASTROUTE = 0x6
1538 PPPIOCSCOMPRESS = 0x4010744d 1538 PACKET_HDRLEN = 0xb
1539 PPPIOCSDEBUG = 0x40047440 1539 PACKET_HOST = 0x0
1540 PPPIOCSFLAGS = 0x40047459 1540 PACKET_IGNORE_OUTGOING = 0x17
1541 PPPIOCSMAXCID = 0x40047451 1541 PACKET_KERNEL = 0x7
1542 PPPIOCSMRRU = 0x4004743b 1542 PACKET_LOOPBACK = 0x5
1543 PPPIOCSMRU = 0x40047452 1543 PACKET_LOSS = 0xe
1544 PPPIOCSNPMODE = 0x4008744b 1544 PACKET_MR_ALLMULTI = 0x2
1545 PPPIOCSPASS = 0x40107447 1545 PACKET_MR_MULTICAST = 0x0
1546 PPPIOCSRASYNCMAP = 0x40047454 1546 PACKET_MR_PROMISC = 0x1
1547 PPPIOCSXASYNCMAP = 0x4020744f 1547 PACKET_MR_UNICAST = 0x3
1548 PPPIOCXFERUNIT = 0x744e 1548 PACKET_MULTICAST = 0x2
1549 PRIO_PGRP = 0x1 1549 PACKET_ORIGDEV = 0x9
1550 PRIO_PROCESS = 0x0 1550 PACKET_OTHERHOST = 0x3
1551 PRIO_USER = 0x2 1551 PACKET_OUTGOING = 0x4
1552 PROC_SUPER_MAGIC = 0x9fa0 1552 PACKET_QDISC_BYPASS = 0x14
1553 PROT_EXEC = 0x4 1553 PACKET_RECV_OUTPUT = 0x3
1554 PROT_GROWSDOWN = 0x1000000 1554 PACKET_RESERVE = 0xc
1555 PROT_GROWSUP = 0x2000000 1555 PACKET_ROLLOVER_STATS = 0x15
1556 PROT_NONE = 0x0 1556 PACKET_RX_RING = 0x5
1557 PROT_READ = 0x1 1557 PACKET_STATISTICS = 0x6
1558 PROT_WRITE = 0x2 1558 PACKET_TIMESTAMP = 0x11
1559 PR_CAPBSET_DROP = 0x18 1559 PACKET_TX_HAS_OFF = 0x13
1560 PR_CAPBSET_READ = 0x17 1560 PACKET_TX_RING = 0xd
1561 PR_CAP_AMBIENT = 0x2f 1561 PACKET_TX_TIMESTAMP = 0x10
1562 PR_CAP_AMBIENT_CLEAR_ALL = 0x4 1562 PACKET_USER = 0x6
1563 PR_CAP_AMBIENT_IS_SET = 0x1 1563 PACKET_VERSION = 0xa
1564 PR_CAP_AMBIENT_LOWER = 0x3 1564 PACKET_VNET_HDR = 0xf
1565 PR_CAP_AMBIENT_RAISE = 0x2 1565 PARENB = 0x100
1566 PR_ENDIAN_BIG = 0x0 1566 PARITY_CRC16_PR0 = 0x2
1567 PR_ENDIAN_LITTLE = 0x1 1567 PARITY_CRC16_PR0_CCITT = 0x4
1568 PR_ENDIAN_PPC_LITTLE = 0x2 1568 PARITY_CRC16_PR1 = 0x3
1569 PR_FPEMU_NOPRINT = 0x1 1569 PARITY_CRC16_PR1_CCITT = 0x5
1570 PR_FPEMU_SIGFPE = 0x2 1570 PARITY_CRC32_PR0_CCITT = 0x6
1571 PR_FP_EXC_ASYNC = 0x2 1571 PARITY_CRC32_PR1_CCITT = 0x7
1572 PR_FP_EXC_DISABLED = 0x0 1572 PARITY_DEFAULT = 0x0
1573 PR_FP_EXC_DIV = 0x10000 1573 PARITY_NONE = 0x1
1574 PR_FP_EXC_INV = 0x100000 1574 PARMRK = 0x8
1575 PR_FP_EXC_NONRECOV = 0x1 1575 PARODD = 0x200
1576 PR_FP_EXC_OVF = 0x20000 1576 PENDIN = 0x4000
1577 PR_FP_EXC_PRECISE = 0x3 1577 PERF_EVENT_IOC_DISABLE = 0x2401
1578 PR_FP_EXC_RES = 0x80000 1578 PERF_EVENT_IOC_ENABLE = 0x2400
1579 PR_FP_EXC_SW_ENABLE = 0x80 1579 PERF_EVENT_IOC_ID = 0x80082407
1580 PR_FP_EXC_UND = 0x40000 1580 PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x4008240b
1581 PR_FP_MODE_FR = 0x1 1581 PERF_EVENT_IOC_PAUSE_OUTPUT = 0x40042409
1582 PR_FP_MODE_FRE = 0x2 1582 PERF_EVENT_IOC_PERIOD = 0x40082404
1583 PR_GET_CHILD_SUBREAPER = 0x25 1583 PERF_EVENT_IOC_QUERY_BPF = 0xc008240a
1584 PR_GET_DUMPABLE = 0x3 1584 PERF_EVENT_IOC_REFRESH = 0x2402
1585 PR_GET_ENDIAN = 0x13 1585 PERF_EVENT_IOC_RESET = 0x2403
1586 PR_GET_FPEMU = 0x9 1586 PERF_EVENT_IOC_SET_BPF = 0x40042408
1587 PR_GET_FPEXC = 0xb 1587 PERF_EVENT_IOC_SET_FILTER = 0x40082406
1588 PR_GET_FP_MODE = 0x2e 1588 PERF_EVENT_IOC_SET_OUTPUT = 0x2405
1589 PR_GET_KEEPCAPS = 0x7 1589 PIPEFS_MAGIC = 0x50495045
1590 PR_GET_NAME = 0x10 1590 PPC_CMM_MAGIC = 0xc7571590
1591 PR_GET_NO_NEW_PRIVS = 0x27 1591 PPPIOCATTACH = 0x4004743d
1592 PR_GET_PDEATHSIG = 0x2 1592 PPPIOCATTCHAN = 0x40047438
1593 PR_GET_SECCOMP = 0x15 1593 PPPIOCCONNECT = 0x4004743a
1594 PR_GET_SECUREBITS = 0x1b 1594 PPPIOCDETACH = 0x4004743c
1595 PR_GET_SPECULATION_CTRL = 0x34 1595 PPPIOCDISCONN = 0x7439
1596 PR_GET_THP_DISABLE = 0x2a 1596 PPPIOCGASYNCMAP = 0x80047458
1597 PR_GET_TID_ADDRESS = 0x28 1597 PPPIOCGCHAN = 0x80047437
1598 PR_GET_TIMERSLACK = 0x1e 1598 PPPIOCGDEBUG = 0x80047441
1599 PR_GET_TIMING = 0xd 1599 PPPIOCGFLAGS = 0x8004745a
1600 PR_GET_TSC = 0x19 1600 PPPIOCGIDLE = 0x8010743f
1601 PR_GET_UNALIGN = 0x5 1601 PPPIOCGIDLE32 = 0x8008743f
1602 PR_MCE_KILL = 0x21 1602 PPPIOCGIDLE64 = 0x8010743f
1603 PR_MCE_KILL_CLEAR = 0x0 1603 PPPIOCGL2TPSTATS = 0x80487436
1604 PR_MCE_KILL_DEFAULT = 0x2 1604 PPPIOCGMRU = 0x80047453
1605 PR_MCE_KILL_EARLY = 0x1 1605 PPPIOCGNPMODE = 0xc008744c
1606 PR_MCE_KILL_GET = 0x22 1606 PPPIOCGRASYNCMAP = 0x80047455
1607 PR_MCE_KILL_LATE = 0x0 1607 PPPIOCGUNIT = 0x80047456
1608 PR_MCE_KILL_SET = 0x1 1608 PPPIOCGXASYNCMAP = 0x80207450
1609 PR_MPX_DISABLE_MANAGEMENT = 0x2c 1609 PPPIOCNEWUNIT = 0xc004743e
1610 PR_MPX_ENABLE_MANAGEMENT = 0x2b 1610 PPPIOCSACTIVE = 0x40107446
1611 PR_PAC_APDAKEY = 0x4 1611 PPPIOCSASYNCMAP = 0x40047457
1612 PR_PAC_APDBKEY = 0x8 1612 PPPIOCSCOMPRESS = 0x4010744d
1613 PR_PAC_APGAKEY = 0x10 1613 PPPIOCSDEBUG = 0x40047440
1614 PR_PAC_APIAKEY = 0x1 1614 PPPIOCSFLAGS = 0x40047459
1615 PR_PAC_APIBKEY = 0x2 1615 PPPIOCSMAXCID = 0x40047451
1616 PR_PAC_RESET_KEYS = 0x36 1616 PPPIOCSMRRU = 0x4004743b
1617 PR_SET_CHILD_SUBREAPER = 0x24 1617 PPPIOCSMRU = 0x40047452
1618 PR_SET_DUMPABLE = 0x4 1618 PPPIOCSNPMODE = 0x4008744b
1619 PR_SET_ENDIAN = 0x14 1619 PPPIOCSPASS = 0x40107447
1620 PR_SET_FPEMU = 0xa 1620 PPPIOCSRASYNCMAP = 0x40047454
1621 PR_SET_FPEXC = 0xc 1621 PPPIOCSXASYNCMAP = 0x4020744f
1622 PR_SET_FP_MODE = 0x2d 1622 PPPIOCXFERUNIT = 0x744e
1623 PR_SET_KEEPCAPS = 0x8 1623 PRIO_PGRP = 0x1
1624 PR_SET_MM = 0x23 1624 PRIO_PROCESS = 0x0
1625 PR_SET_MM_ARG_END = 0x9 1625 PRIO_USER = 0x2
1626 PR_SET_MM_ARG_START = 0x8 1626 PROC_SUPER_MAGIC = 0x9fa0
1627 PR_SET_MM_AUXV = 0xc 1627 PROT_EXEC = 0x4
1628 PR_SET_MM_BRK = 0x7 1628 PROT_GROWSDOWN = 0x1000000
1629 PR_SET_MM_END_CODE = 0x2 1629 PROT_GROWSUP = 0x2000000
1630 PR_SET_MM_END_DATA = 0x4 1630 PROT_NONE = 0x0
1631 PR_SET_MM_ENV_END = 0xb 1631 PROT_READ = 0x1
1632 PR_SET_MM_ENV_START = 0xa 1632 PROT_WRITE = 0x2
1633 PR_SET_MM_EXE_FILE = 0xd 1633 PR_CAPBSET_DROP = 0x18
1634 PR_SET_MM_MAP = 0xe 1634 PR_CAPBSET_READ = 0x17
1635 PR_SET_MM_MAP_SIZE = 0xf 1635 PR_CAP_AMBIENT = 0x2f
1636 PR_SET_MM_START_BRK = 0x6 1636 PR_CAP_AMBIENT_CLEAR_ALL = 0x4
1637 PR_SET_MM_START_CODE = 0x1 1637 PR_CAP_AMBIENT_IS_SET = 0x1
1638 PR_SET_MM_START_DATA = 0x3 1638 PR_CAP_AMBIENT_LOWER = 0x3
1639 PR_SET_MM_START_STACK = 0x5 1639 PR_CAP_AMBIENT_RAISE = 0x2
1640 PR_SET_NAME = 0xf 1640 PR_ENDIAN_BIG = 0x0
1641 PR_SET_NO_NEW_PRIVS = 0x26 1641 PR_ENDIAN_LITTLE = 0x1
1642 PR_SET_PDEATHSIG = 0x1 1642 PR_ENDIAN_PPC_LITTLE = 0x2
1643 PR_SET_PTRACER = 0x59616d61 1643 PR_FPEMU_NOPRINT = 0x1
1644 PR_SET_PTRACER_ANY = 0xffffffffffffffff 1644 PR_FPEMU_SIGFPE = 0x2
1645 PR_SET_SECCOMP = 0x16 1645 PR_FP_EXC_ASYNC = 0x2
1646 PR_SET_SECUREBITS = 0x1c 1646 PR_FP_EXC_DISABLED = 0x0
1647 PR_SET_SPECULATION_CTRL = 0x35 1647 PR_FP_EXC_DIV = 0x10000
1648 PR_SET_THP_DISABLE = 0x29 1648 PR_FP_EXC_INV = 0x100000
1649 PR_SET_TIMERSLACK = 0x1d 1649 PR_FP_EXC_NONRECOV = 0x1
1650 PR_SET_TIMING = 0xe 1650 PR_FP_EXC_OVF = 0x20000
1651 PR_SET_TSC = 0x1a 1651 PR_FP_EXC_PRECISE = 0x3
1652 PR_SET_UNALIGN = 0x6 1652 PR_FP_EXC_RES = 0x80000
1653 PR_SPEC_DISABLE = 0x4 1653 PR_FP_EXC_SW_ENABLE = 0x80
1654 PR_SPEC_DISABLE_NOEXEC = 0x10 1654 PR_FP_EXC_UND = 0x40000
1655 PR_SPEC_ENABLE = 0x2 1655 PR_FP_MODE_FR = 0x1
1656 PR_SPEC_FORCE_DISABLE = 0x8 1656 PR_FP_MODE_FRE = 0x2
1657 PR_SPEC_INDIRECT_BRANCH = 0x1 1657 PR_GET_CHILD_SUBREAPER = 0x25
1658 PR_SPEC_NOT_AFFECTED = 0x0 1658 PR_GET_DUMPABLE = 0x3
1659 PR_SPEC_PRCTL = 0x1 1659 PR_GET_ENDIAN = 0x13
1660 PR_SPEC_STORE_BYPASS = 0x0 1660 PR_GET_FPEMU = 0x9
1661 PR_SVE_GET_VL = 0x33 1661 PR_GET_FPEXC = 0xb
1662 PR_SVE_SET_VL = 0x32 1662 PR_GET_FP_MODE = 0x2e
1663 PR_SVE_SET_VL_ONEXEC = 0x40000 1663 PR_GET_KEEPCAPS = 0x7
1664 PR_SVE_VL_INHERIT = 0x20000 1664 PR_GET_NAME = 0x10
1665 PR_SVE_VL_LEN_MASK = 0xffff 1665 PR_GET_NO_NEW_PRIVS = 0x27
1666 PR_TASK_PERF_EVENTS_DISABLE = 0x1f 1666 PR_GET_PDEATHSIG = 0x2
1667 PR_TASK_PERF_EVENTS_ENABLE = 0x20 1667 PR_GET_SECCOMP = 0x15
1668 PR_TIMING_STATISTICAL = 0x0 1668 PR_GET_SECUREBITS = 0x1b
1669 PR_TIMING_TIMESTAMP = 0x1 1669 PR_GET_SPECULATION_CTRL = 0x34
1670 PR_TSC_ENABLE = 0x1 1670 PR_GET_TAGGED_ADDR_CTRL = 0x38
1671 PR_TSC_SIGSEGV = 0x2 1671 PR_GET_THP_DISABLE = 0x2a
1672 PR_UNALIGN_NOPRINT = 0x1 1672 PR_GET_TID_ADDRESS = 0x28
1673 PR_UNALIGN_SIGBUS = 0x2 1673 PR_GET_TIMERSLACK = 0x1e
1674 PSTOREFS_MAGIC = 0x6165676c 1674 PR_GET_TIMING = 0xd
1675 PTRACE_ATTACH = 0x10 1675 PR_GET_TSC = 0x19
1676 PTRACE_CONT = 0x7 1676 PR_GET_UNALIGN = 0x5
1677 PTRACE_DETACH = 0x11 1677 PR_MCE_KILL = 0x21
1678 PTRACE_DISABLE_TE = 0x5010 1678 PR_MCE_KILL_CLEAR = 0x0
1679 PTRACE_ENABLE_TE = 0x5009 1679 PR_MCE_KILL_DEFAULT = 0x2
1680 PTRACE_EVENT_CLONE = 0x3 1680 PR_MCE_KILL_EARLY = 0x1
1681 PTRACE_EVENT_EXEC = 0x4 1681 PR_MCE_KILL_GET = 0x22
1682 PTRACE_EVENT_EXIT = 0x6 1682 PR_MCE_KILL_LATE = 0x0
1683 PTRACE_EVENT_FORK = 0x1 1683 PR_MCE_KILL_SET = 0x1
1684 PTRACE_EVENT_SECCOMP = 0x7 1684 PR_MPX_DISABLE_MANAGEMENT = 0x2c
1685 PTRACE_EVENT_STOP = 0x80 1685 PR_MPX_ENABLE_MANAGEMENT = 0x2b
1686 PTRACE_EVENT_VFORK = 0x2 1686 PR_PAC_APDAKEY = 0x4
1687 PTRACE_EVENT_VFORK_DONE = 0x5 1687 PR_PAC_APDBKEY = 0x8
1688 PTRACE_GETEVENTMSG = 0x4201 1688 PR_PAC_APGAKEY = 0x10
1689 PTRACE_GETREGS = 0xc 1689 PR_PAC_APIAKEY = 0x1
1690 PTRACE_GETREGSET = 0x4204 1690 PR_PAC_APIBKEY = 0x2
1691 PTRACE_GETSIGINFO = 0x4202 1691 PR_PAC_RESET_KEYS = 0x36
1692 PTRACE_GETSIGMASK = 0x420a 1692 PR_SET_CHILD_SUBREAPER = 0x24
1693 PTRACE_GET_LAST_BREAK = 0x5006 1693 PR_SET_DUMPABLE = 0x4
1694 PTRACE_INTERRUPT = 0x4207 1694 PR_SET_ENDIAN = 0x14
1695 PTRACE_KILL = 0x8 1695 PR_SET_FPEMU = 0xa
1696 PTRACE_LISTEN = 0x4208 1696 PR_SET_FPEXC = 0xc
1697 PTRACE_OLDSETOPTIONS = 0x15 1697 PR_SET_FP_MODE = 0x2d
1698 PTRACE_O_EXITKILL = 0x100000 1698 PR_SET_KEEPCAPS = 0x8
1699 PTRACE_O_MASK = 0x3000ff 1699 PR_SET_MM = 0x23
1700 PTRACE_O_SUSPEND_SECCOMP = 0x200000 1700 PR_SET_MM_ARG_END = 0x9
1701 PTRACE_O_TRACECLONE = 0x8 1701 PR_SET_MM_ARG_START = 0x8
1702 PTRACE_O_TRACEEXEC = 0x10 1702 PR_SET_MM_AUXV = 0xc
1703 PTRACE_O_TRACEEXIT = 0x40 1703 PR_SET_MM_BRK = 0x7
1704 PTRACE_O_TRACEFORK = 0x2 1704 PR_SET_MM_END_CODE = 0x2
1705 PTRACE_O_TRACESECCOMP = 0x80 1705 PR_SET_MM_END_DATA = 0x4
1706 PTRACE_O_TRACESYSGOOD = 0x1 1706 PR_SET_MM_ENV_END = 0xb
1707 PTRACE_O_TRACEVFORK = 0x4 1707 PR_SET_MM_ENV_START = 0xa
1708 PTRACE_O_TRACEVFORKDONE = 0x20 1708 PR_SET_MM_EXE_FILE = 0xd
1709 PTRACE_PEEKDATA = 0x2 1709 PR_SET_MM_MAP = 0xe
1710 PTRACE_PEEKDATA_AREA = 0x5003 1710 PR_SET_MM_MAP_SIZE = 0xf
1711 PTRACE_PEEKSIGINFO = 0x4209 1711 PR_SET_MM_START_BRK = 0x6
1712 PTRACE_PEEKSIGINFO_SHARED = 0x1 1712 PR_SET_MM_START_CODE = 0x1
1713 PTRACE_PEEKTEXT = 0x1 1713 PR_SET_MM_START_DATA = 0x3
1714 PTRACE_PEEKTEXT_AREA = 0x5002 1714 PR_SET_MM_START_STACK = 0x5
1715 PTRACE_PEEKUSR = 0x3 1715 PR_SET_NAME = 0xf
1716 PTRACE_PEEKUSR_AREA = 0x5000 1716 PR_SET_NO_NEW_PRIVS = 0x26
1717 PTRACE_PEEK_SYSTEM_CALL = 0x5007 1717 PR_SET_PDEATHSIG = 0x1
1718 PTRACE_POKEDATA = 0x5 1718 PR_SET_PTRACER = 0x59616d61
1719 PTRACE_POKEDATA_AREA = 0x5005 1719 PR_SET_PTRACER_ANY = 0xffffffffffffffff
1720 PTRACE_POKETEXT = 0x4 1720 PR_SET_SECCOMP = 0x16
1721 PTRACE_POKETEXT_AREA = 0x5004 1721 PR_SET_SECUREBITS = 0x1c
1722 PTRACE_POKEUSR = 0x6 1722 PR_SET_SPECULATION_CTRL = 0x35
1723 PTRACE_POKEUSR_AREA = 0x5001 1723 PR_SET_TAGGED_ADDR_CTRL = 0x37
1724 PTRACE_POKE_SYSTEM_CALL = 0x5008 1724 PR_SET_THP_DISABLE = 0x29
1725 PTRACE_PROT = 0x15 1725 PR_SET_TIMERSLACK = 0x1d
1726 PTRACE_SECCOMP_GET_FILTER = 0x420c 1726 PR_SET_TIMING = 0xe
1727 PTRACE_SECCOMP_GET_METADATA = 0x420d 1727 PR_SET_TSC = 0x1a
1728 PTRACE_SEIZE = 0x4206 1728 PR_SET_UNALIGN = 0x6
1729 PTRACE_SETOPTIONS = 0x4200 1729 PR_SPEC_DISABLE = 0x4
1730 PTRACE_SETREGS = 0xd 1730 PR_SPEC_DISABLE_NOEXEC = 0x10
1731 PTRACE_SETREGSET = 0x4205 1731 PR_SPEC_ENABLE = 0x2
1732 PTRACE_SETSIGINFO = 0x4203 1732 PR_SPEC_FORCE_DISABLE = 0x8
1733 PTRACE_SETSIGMASK = 0x420b 1733 PR_SPEC_INDIRECT_BRANCH = 0x1
1734 PTRACE_SINGLEBLOCK = 0xc 1734 PR_SPEC_NOT_AFFECTED = 0x0
1735 PTRACE_SINGLESTEP = 0x9 1735 PR_SPEC_PRCTL = 0x1
1736 PTRACE_SYSCALL = 0x18 1736 PR_SPEC_STORE_BYPASS = 0x0
1737 PTRACE_TE_ABORT_RAND = 0x5011 1737 PR_SVE_GET_VL = 0x33
1738 PTRACE_TRACEME = 0x0 1738 PR_SVE_SET_VL = 0x32
1739 PT_ACR0 = 0x90 1739 PR_SVE_SET_VL_ONEXEC = 0x40000
1740 PT_ACR1 = 0x94 1740 PR_SVE_VL_INHERIT = 0x20000
1741 PT_ACR10 = 0xb8 1741 PR_SVE_VL_LEN_MASK = 0xffff
1742 PT_ACR11 = 0xbc 1742 PR_TAGGED_ADDR_ENABLE = 0x1
1743 PT_ACR12 = 0xc0 1743 PR_TASK_PERF_EVENTS_DISABLE = 0x1f
1744 PT_ACR13 = 0xc4 1744 PR_TASK_PERF_EVENTS_ENABLE = 0x20
1745 PT_ACR14 = 0xc8 1745 PR_TIMING_STATISTICAL = 0x0
1746 PT_ACR15 = 0xcc 1746 PR_TIMING_TIMESTAMP = 0x1
1747 PT_ACR2 = 0x98 1747 PR_TSC_ENABLE = 0x1
1748 PT_ACR3 = 0x9c 1748 PR_TSC_SIGSEGV = 0x2
1749 PT_ACR4 = 0xa0 1749 PR_UNALIGN_NOPRINT = 0x1
1750 PT_ACR5 = 0xa4 1750 PR_UNALIGN_SIGBUS = 0x2
1751 PT_ACR6 = 0xa8 1751 PSTOREFS_MAGIC = 0x6165676c
1752 PT_ACR7 = 0xac 1752 PTRACE_ATTACH = 0x10
1753 PT_ACR8 = 0xb0 1753 PTRACE_CONT = 0x7
1754 PT_ACR9 = 0xb4 1754 PTRACE_DETACH = 0x11
1755 PT_CR_10 = 0x168 1755 PTRACE_DISABLE_TE = 0x5010
1756 PT_CR_11 = 0x170 1756 PTRACE_ENABLE_TE = 0x5009
1757 PT_CR_9 = 0x160 1757 PTRACE_EVENTMSG_SYSCALL_ENTRY = 0x1
1758 PT_ENDREGS = 0x1af 1758 PTRACE_EVENTMSG_SYSCALL_EXIT = 0x2
1759 PT_FPC = 0xd8 1759 PTRACE_EVENT_CLONE = 0x3
1760 PT_FPR0 = 0xe0 1760 PTRACE_EVENT_EXEC = 0x4
1761 PT_FPR1 = 0xe8 1761 PTRACE_EVENT_EXIT = 0x6
1762 PT_FPR10 = 0x130 1762 PTRACE_EVENT_FORK = 0x1
1763 PT_FPR11 = 0x138 1763 PTRACE_EVENT_SECCOMP = 0x7
1764 PT_FPR12 = 0x140 1764 PTRACE_EVENT_STOP = 0x80
1765 PT_FPR13 = 0x148 1765 PTRACE_EVENT_VFORK = 0x2
1766 PT_FPR14 = 0x150 1766 PTRACE_EVENT_VFORK_DONE = 0x5
1767 PT_FPR15 = 0x158 1767 PTRACE_GETEVENTMSG = 0x4201
1768 PT_FPR2 = 0xf0 1768 PTRACE_GETREGS = 0xc
1769 PT_FPR3 = 0xf8 1769 PTRACE_GETREGSET = 0x4204
1770 PT_FPR4 = 0x100 1770 PTRACE_GETSIGINFO = 0x4202
1771 PT_FPR5 = 0x108 1771 PTRACE_GETSIGMASK = 0x420a
1772 PT_FPR6 = 0x110 1772 PTRACE_GET_LAST_BREAK = 0x5006
1773 PT_FPR7 = 0x118 1773 PTRACE_GET_SYSCALL_INFO = 0x420e
1774 PT_FPR8 = 0x120 1774 PTRACE_INTERRUPT = 0x4207
1775 PT_FPR9 = 0x128 1775 PTRACE_KILL = 0x8
1776 PT_GPR0 = 0x10 1776 PTRACE_LISTEN = 0x4208
1777 PT_GPR1 = 0x18 1777 PTRACE_OLDSETOPTIONS = 0x15
1778 PT_GPR10 = 0x60 1778 PTRACE_O_EXITKILL = 0x100000
1779 PT_GPR11 = 0x68 1779 PTRACE_O_MASK = 0x3000ff
1780 PT_GPR12 = 0x70 1780 PTRACE_O_SUSPEND_SECCOMP = 0x200000
1781 PT_GPR13 = 0x78 1781 PTRACE_O_TRACECLONE = 0x8
1782 PT_GPR14 = 0x80 1782 PTRACE_O_TRACEEXEC = 0x10
1783 PT_GPR15 = 0x88 1783 PTRACE_O_TRACEEXIT = 0x40
1784 PT_GPR2 = 0x20 1784 PTRACE_O_TRACEFORK = 0x2
1785 PT_GPR3 = 0x28 1785 PTRACE_O_TRACESECCOMP = 0x80
1786 PT_GPR4 = 0x30 1786 PTRACE_O_TRACESYSGOOD = 0x1
1787 PT_GPR5 = 0x38 1787 PTRACE_O_TRACEVFORK = 0x4
1788 PT_GPR6 = 0x40 1788 PTRACE_O_TRACEVFORKDONE = 0x20
1789 PT_GPR7 = 0x48 1789 PTRACE_PEEKDATA = 0x2
1790 PT_GPR8 = 0x50 1790 PTRACE_PEEKDATA_AREA = 0x5003
1791 PT_GPR9 = 0x58 1791 PTRACE_PEEKSIGINFO = 0x4209
1792 PT_IEEE_IP = 0x1a8 1792 PTRACE_PEEKSIGINFO_SHARED = 0x1
1793 PT_LASTOFF = 0x1a8 1793 PTRACE_PEEKTEXT = 0x1
1794 PT_ORIGGPR2 = 0xd0 1794 PTRACE_PEEKTEXT_AREA = 0x5002
1795 PT_PSWADDR = 0x8 1795 PTRACE_PEEKUSR = 0x3
1796 PT_PSWMASK = 0x0 1796 PTRACE_PEEKUSR_AREA = 0x5000
1797 QNX4_SUPER_MAGIC = 0x2f 1797 PTRACE_PEEK_SYSTEM_CALL = 0x5007
1798 QNX6_SUPER_MAGIC = 0x68191122 1798 PTRACE_POKEDATA = 0x5
1799 RAMFS_MAGIC = 0x858458f6 1799 PTRACE_POKEDATA_AREA = 0x5005
1800 RDTGROUP_SUPER_MAGIC = 0x7655821 1800 PTRACE_POKETEXT = 0x4
1801 REISERFS_SUPER_MAGIC = 0x52654973 1801 PTRACE_POKETEXT_AREA = 0x5004
1802 RENAME_EXCHANGE = 0x2 1802 PTRACE_POKEUSR = 0x6
1803 RENAME_NOREPLACE = 0x1 1803 PTRACE_POKEUSR_AREA = 0x5001
1804 RENAME_WHITEOUT = 0x4 1804 PTRACE_POKE_SYSTEM_CALL = 0x5008
1805 RLIMIT_AS = 0x9 1805 PTRACE_PROT = 0x15
1806 RLIMIT_CORE = 0x4 1806 PTRACE_SECCOMP_GET_FILTER = 0x420c
1807 RLIMIT_CPU = 0x0 1807 PTRACE_SECCOMP_GET_METADATA = 0x420d
1808 RLIMIT_DATA = 0x2 1808 PTRACE_SEIZE = 0x4206
1809 RLIMIT_FSIZE = 0x1 1809 PTRACE_SETOPTIONS = 0x4200
1810 RLIMIT_LOCKS = 0xa 1810 PTRACE_SETREGS = 0xd
1811 RLIMIT_MEMLOCK = 0x8 1811 PTRACE_SETREGSET = 0x4205
1812 RLIMIT_MSGQUEUE = 0xc 1812 PTRACE_SETSIGINFO = 0x4203
1813 RLIMIT_NICE = 0xd 1813 PTRACE_SETSIGMASK = 0x420b
1814 RLIMIT_NOFILE = 0x7 1814 PTRACE_SINGLEBLOCK = 0xc
1815 RLIMIT_NPROC = 0x6 1815 PTRACE_SINGLESTEP = 0x9
1816 RLIMIT_RSS = 0x5 1816 PTRACE_SYSCALL = 0x18
1817 RLIMIT_RTPRIO = 0xe 1817 PTRACE_SYSCALL_INFO_ENTRY = 0x1
1818 RLIMIT_RTTIME = 0xf 1818 PTRACE_SYSCALL_INFO_EXIT = 0x2
1819 RLIMIT_SIGPENDING = 0xb 1819 PTRACE_SYSCALL_INFO_NONE = 0x0
1820 RLIMIT_STACK = 0x3 1820 PTRACE_SYSCALL_INFO_SECCOMP = 0x3
1821 RLIM_INFINITY = 0xffffffffffffffff 1821 PTRACE_TE_ABORT_RAND = 0x5011
1822 RNDADDENTROPY = 0x40085203 1822 PTRACE_TRACEME = 0x0
1823 RNDADDTOENTCNT = 0x40045201 1823 PT_ACR0 = 0x90
1824 RNDCLEARPOOL = 0x5206 1824 PT_ACR1 = 0x94
1825 RNDGETENTCNT = 0x80045200 1825 PT_ACR10 = 0xb8
1826 RNDGETPOOL = 0x80085202 1826 PT_ACR11 = 0xbc
1827 RNDRESEEDCRNG = 0x5207 1827 PT_ACR12 = 0xc0
1828 RNDZAPENTCNT = 0x5204 1828 PT_ACR13 = 0xc4
1829 RTAX_ADVMSS = 0x8 1829 PT_ACR14 = 0xc8
1830 RTAX_CC_ALGO = 0x10 1830 PT_ACR15 = 0xcc
1831 RTAX_CWND = 0x7 1831 PT_ACR2 = 0x98
1832 RTAX_FASTOPEN_NO_COOKIE = 0x11 1832 PT_ACR3 = 0x9c
1833 RTAX_FEATURES = 0xc 1833 PT_ACR4 = 0xa0
1834 RTAX_FEATURE_ALLFRAG = 0x8 1834 PT_ACR5 = 0xa4
1835 RTAX_FEATURE_ECN = 0x1 1835 PT_ACR6 = 0xa8
1836 RTAX_FEATURE_MASK = 0xf 1836 PT_ACR7 = 0xac
1837 RTAX_FEATURE_SACK = 0x2 1837 PT_ACR8 = 0xb0
1838 RTAX_FEATURE_TIMESTAMP = 0x4 1838 PT_ACR9 = 0xb4
1839 RTAX_HOPLIMIT = 0xa 1839 PT_CR_10 = 0x168
1840 RTAX_INITCWND = 0xb 1840 PT_CR_11 = 0x170
1841 RTAX_INITRWND = 0xe 1841 PT_CR_9 = 0x160
1842 RTAX_LOCK = 0x1 1842 PT_ENDREGS = 0x1af
1843 RTAX_MAX = 0x11 1843 PT_FPC = 0xd8
1844 RTAX_MTU = 0x2 1844 PT_FPR0 = 0xe0
1845 RTAX_QUICKACK = 0xf 1845 PT_FPR1 = 0xe8
1846 RTAX_REORDERING = 0x9 1846 PT_FPR10 = 0x130
1847 RTAX_RTO_MIN = 0xd 1847 PT_FPR11 = 0x138
1848 RTAX_RTT = 0x4 1848 PT_FPR12 = 0x140
1849 RTAX_RTTVAR = 0x5 1849 PT_FPR13 = 0x148
1850 RTAX_SSTHRESH = 0x6 1850 PT_FPR14 = 0x150
1851 RTAX_UNSPEC = 0x0 1851 PT_FPR15 = 0x158
1852 RTAX_WINDOW = 0x3 1852 PT_FPR2 = 0xf0
1853 RTA_ALIGNTO = 0x4 1853 PT_FPR3 = 0xf8
1854 RTA_MAX = 0x1d 1854 PT_FPR4 = 0x100
1855 RTCF_DIRECTSRC = 0x4000000 1855 PT_FPR5 = 0x108
1856 RTCF_DOREDIRECT = 0x1000000 1856 PT_FPR6 = 0x110
1857 RTCF_LOG = 0x2000000 1857 PT_FPR7 = 0x118
1858 RTCF_MASQ = 0x400000 1858 PT_FPR8 = 0x120
1859 RTCF_NAT = 0x800000 1859 PT_FPR9 = 0x128
1860 RTCF_VALVE = 0x200000 1860 PT_GPR0 = 0x10
1861 RTC_AF = 0x20 1861 PT_GPR1 = 0x18
1862 RTC_AIE_OFF = 0x7002 1862 PT_GPR10 = 0x60
1863 RTC_AIE_ON = 0x7001 1863 PT_GPR11 = 0x68
1864 RTC_ALM_READ = 0x80247008 1864 PT_GPR12 = 0x70
1865 RTC_ALM_SET = 0x40247007 1865 PT_GPR13 = 0x78
1866 RTC_EPOCH_READ = 0x8008700d 1866 PT_GPR14 = 0x80
1867 RTC_EPOCH_SET = 0x4008700e 1867 PT_GPR15 = 0x88
1868 RTC_IRQF = 0x80 1868 PT_GPR2 = 0x20
1869 RTC_IRQP_READ = 0x8008700b 1869 PT_GPR3 = 0x28
1870 RTC_IRQP_SET = 0x4008700c 1870 PT_GPR4 = 0x30
1871 RTC_MAX_FREQ = 0x2000 1871 PT_GPR5 = 0x38
1872 RTC_PF = 0x40 1872 PT_GPR6 = 0x40
1873 RTC_PIE_OFF = 0x7006 1873 PT_GPR7 = 0x48
1874 RTC_PIE_ON = 0x7005 1874 PT_GPR8 = 0x50
1875 RTC_PLL_GET = 0x80207011 1875 PT_GPR9 = 0x58
1876 RTC_PLL_SET = 0x40207012 1876 PT_IEEE_IP = 0x1a8
1877 RTC_RD_TIME = 0x80247009 1877 PT_LASTOFF = 0x1a8
1878 RTC_SET_TIME = 0x4024700a 1878 PT_ORIGGPR2 = 0xd0
1879 RTC_UF = 0x10 1879 PT_PSWADDR = 0x8
1880 RTC_UIE_OFF = 0x7004 1880 PT_PSWMASK = 0x0
1881 RTC_UIE_ON = 0x7003 1881 QNX4_SUPER_MAGIC = 0x2f
1882 RTC_VL_CLR = 0x7014 1882 QNX6_SUPER_MAGIC = 0x68191122
1883 RTC_VL_READ = 0x80047013 1883 RAMFS_MAGIC = 0x858458f6
1884 RTC_WIE_OFF = 0x7010 1884 RDTGROUP_SUPER_MAGIC = 0x7655821
1885 RTC_WIE_ON = 0x700f 1885 REISERFS_SUPER_MAGIC = 0x52654973
1886 RTC_WKALM_RD = 0x80287010 1886 RENAME_EXCHANGE = 0x2
1887 RTC_WKALM_SET = 0x4028700f 1887 RENAME_NOREPLACE = 0x1
1888 RTF_ADDRCLASSMASK = 0xf8000000 1888 RENAME_WHITEOUT = 0x4
1889 RTF_ADDRCONF = 0x40000 1889 RLIMIT_AS = 0x9
1890 RTF_ALLONLINK = 0x20000 1890 RLIMIT_CORE = 0x4
1891 RTF_BROADCAST = 0x10000000 1891 RLIMIT_CPU = 0x0
1892 RTF_CACHE = 0x1000000 1892 RLIMIT_DATA = 0x2
1893 RTF_DEFAULT = 0x10000 1893 RLIMIT_FSIZE = 0x1
1894 RTF_DYNAMIC = 0x10 1894 RLIMIT_LOCKS = 0xa
1895 RTF_FLOW = 0x2000000 1895 RLIMIT_MEMLOCK = 0x8
1896 RTF_GATEWAY = 0x2 1896 RLIMIT_MSGQUEUE = 0xc
1897 RTF_HOST = 0x4 1897 RLIMIT_NICE = 0xd
1898 RTF_INTERFACE = 0x40000000 1898 RLIMIT_NOFILE = 0x7
1899 RTF_IRTT = 0x100 1899 RLIMIT_NPROC = 0x6
1900 RTF_LINKRT = 0x100000 1900 RLIMIT_RSS = 0x5
1901 RTF_LOCAL = 0x80000000 1901 RLIMIT_RTPRIO = 0xe
1902 RTF_MODIFIED = 0x20 1902 RLIMIT_RTTIME = 0xf
1903 RTF_MSS = 0x40 1903 RLIMIT_SIGPENDING = 0xb
1904 RTF_MTU = 0x40 1904 RLIMIT_STACK = 0x3
1905 RTF_MULTICAST = 0x20000000 1905 RLIM_INFINITY = 0xffffffffffffffff
1906 RTF_NAT = 0x8000000 1906 RNDADDENTROPY = 0x40085203
1907 RTF_NOFORWARD = 0x1000 1907 RNDADDTOENTCNT = 0x40045201
1908 RTF_NONEXTHOP = 0x200000 1908 RNDCLEARPOOL = 0x5206
1909 RTF_NOPMTUDISC = 0x4000 1909 RNDGETENTCNT = 0x80045200
1910 RTF_POLICY = 0x4000000 1910 RNDGETPOOL = 0x80085202
1911 RTF_REINSTATE = 0x8 1911 RNDRESEEDCRNG = 0x5207
1912 RTF_REJECT = 0x200 1912 RNDZAPENTCNT = 0x5204
1913 RTF_STATIC = 0x400 1913 RTAX_ADVMSS = 0x8
1914 RTF_THROW = 0x2000 1914 RTAX_CC_ALGO = 0x10
1915 RTF_UP = 0x1 1915 RTAX_CWND = 0x7
1916 RTF_WINDOW = 0x80 1916 RTAX_FASTOPEN_NO_COOKIE = 0x11
1917 RTF_XRESOLVE = 0x800 1917 RTAX_FEATURES = 0xc
1918 RTM_BASE = 0x10 1918 RTAX_FEATURE_ALLFRAG = 0x8
1919 RTM_DELACTION = 0x31 1919 RTAX_FEATURE_ECN = 0x1
1920 RTM_DELADDR = 0x15 1920 RTAX_FEATURE_MASK = 0xf
1921 RTM_DELADDRLABEL = 0x49 1921 RTAX_FEATURE_SACK = 0x2
1922 RTM_DELCHAIN = 0x65 1922 RTAX_FEATURE_TIMESTAMP = 0x4
1923 RTM_DELLINK = 0x11 1923 RTAX_HOPLIMIT = 0xa
1924 RTM_DELMDB = 0x55 1924 RTAX_INITCWND = 0xb
1925 RTM_DELNEIGH = 0x1d 1925 RTAX_INITRWND = 0xe
1926 RTM_DELNETCONF = 0x51 1926 RTAX_LOCK = 0x1
1927 RTM_DELNSID = 0x59 1927 RTAX_MAX = 0x11
1928 RTM_DELQDISC = 0x25 1928 RTAX_MTU = 0x2
1929 RTM_DELROUTE = 0x19 1929 RTAX_QUICKACK = 0xf
1930 RTM_DELRULE = 0x21 1930 RTAX_REORDERING = 0x9
1931 RTM_DELTCLASS = 0x29 1931 RTAX_RTO_MIN = 0xd
1932 RTM_DELTFILTER = 0x2d 1932 RTAX_RTT = 0x4
1933 RTM_F_CLONED = 0x200 1933 RTAX_RTTVAR = 0x5
1934 RTM_F_EQUALIZE = 0x400 1934 RTAX_SSTHRESH = 0x6
1935 RTM_F_FIB_MATCH = 0x2000 1935 RTAX_UNSPEC = 0x0
1936 RTM_F_LOOKUP_TABLE = 0x1000 1936 RTAX_WINDOW = 0x3
1937 RTM_F_NOTIFY = 0x100 1937 RTA_ALIGNTO = 0x4
1938 RTM_F_PREFIX = 0x800 1938 RTA_MAX = 0x1e
1939 RTM_GETACTION = 0x32 1939 RTCF_DIRECTSRC = 0x4000000
1940 RTM_GETADDR = 0x16 1940 RTCF_DOREDIRECT = 0x1000000
1941 RTM_GETADDRLABEL = 0x4a 1941 RTCF_LOG = 0x2000000
1942 RTM_GETANYCAST = 0x3e 1942 RTCF_MASQ = 0x400000
1943 RTM_GETCHAIN = 0x66 1943 RTCF_NAT = 0x800000
1944 RTM_GETDCB = 0x4e 1944 RTCF_VALVE = 0x200000
1945 RTM_GETLINK = 0x12 1945 RTC_AF = 0x20
1946 RTM_GETMDB = 0x56 1946 RTC_AIE_OFF = 0x7002
1947 RTM_GETMULTICAST = 0x3a 1947 RTC_AIE_ON = 0x7001
1948 RTM_GETNEIGH = 0x1e 1948 RTC_ALM_READ = 0x80247008
1949 RTM_GETNEIGHTBL = 0x42 1949 RTC_ALM_SET = 0x40247007
1950 RTM_GETNETCONF = 0x52 1950 RTC_EPOCH_READ = 0x8008700d
1951 RTM_GETNSID = 0x5a 1951 RTC_EPOCH_SET = 0x4008700e
1952 RTM_GETQDISC = 0x26 1952 RTC_IRQF = 0x80
1953 RTM_GETROUTE = 0x1a 1953 RTC_IRQP_READ = 0x8008700b
1954 RTM_GETRULE = 0x22 1954 RTC_IRQP_SET = 0x4008700c
1955 RTM_GETSTATS = 0x5e 1955 RTC_MAX_FREQ = 0x2000
1956 RTM_GETTCLASS = 0x2a 1956 RTC_PF = 0x40
1957 RTM_GETTFILTER = 0x2e 1957 RTC_PIE_OFF = 0x7006
1958 RTM_MAX = 0x67 1958 RTC_PIE_ON = 0x7005
1959 RTM_NEWACTION = 0x30 1959 RTC_PLL_GET = 0x80207011
1960 RTM_NEWADDR = 0x14 1960 RTC_PLL_SET = 0x40207012
1961 RTM_NEWADDRLABEL = 0x48 1961 RTC_RD_TIME = 0x80247009
1962 RTM_NEWCACHEREPORT = 0x60 1962 RTC_SET_TIME = 0x4024700a
1963 RTM_NEWCHAIN = 0x64 1963 RTC_UF = 0x10
1964 RTM_NEWLINK = 0x10 1964 RTC_UIE_OFF = 0x7004
1965 RTM_NEWMDB = 0x54 1965 RTC_UIE_ON = 0x7003
1966 RTM_NEWNDUSEROPT = 0x44 1966 RTC_VL_CLR = 0x7014
1967 RTM_NEWNEIGH = 0x1c 1967 RTC_VL_READ = 0x80047013
1968 RTM_NEWNEIGHTBL = 0x40 1968 RTC_WIE_OFF = 0x7010
1969 RTM_NEWNETCONF = 0x50 1969 RTC_WIE_ON = 0x700f
1970 RTM_NEWNSID = 0x58 1970 RTC_WKALM_RD = 0x80287010
1971 RTM_NEWPREFIX = 0x34 1971 RTC_WKALM_SET = 0x4028700f
1972 RTM_NEWQDISC = 0x24 1972 RTF_ADDRCLASSMASK = 0xf8000000
1973 RTM_NEWROUTE = 0x18 1973 RTF_ADDRCONF = 0x40000
1974 RTM_NEWRULE = 0x20 1974 RTF_ALLONLINK = 0x20000
1975 RTM_NEWSTATS = 0x5c 1975 RTF_BROADCAST = 0x10000000
1976 RTM_NEWTCLASS = 0x28 1976 RTF_CACHE = 0x1000000
1977 RTM_NEWTFILTER = 0x2c 1977 RTF_DEFAULT = 0x10000
1978 RTM_NR_FAMILIES = 0x16 1978 RTF_DYNAMIC = 0x10
1979 RTM_NR_MSGTYPES = 0x58 1979 RTF_FLOW = 0x2000000
1980 RTM_SETDCB = 0x4f 1980 RTF_GATEWAY = 0x2
1981 RTM_SETLINK = 0x13 1981 RTF_HOST = 0x4
1982 RTM_SETNEIGHTBL = 0x43 1982 RTF_INTERFACE = 0x40000000
1983 RTNH_ALIGNTO = 0x4 1983 RTF_IRTT = 0x100
1984 RTNH_COMPARE_MASK = 0x19 1984 RTF_LINKRT = 0x100000
1985 RTNH_F_DEAD = 0x1 1985 RTF_LOCAL = 0x80000000
1986 RTNH_F_LINKDOWN = 0x10 1986 RTF_MODIFIED = 0x20
1987 RTNH_F_OFFLOAD = 0x8 1987 RTF_MSS = 0x40
1988 RTNH_F_ONLINK = 0x4 1988 RTF_MTU = 0x40
1989 RTNH_F_PERVASIVE = 0x2 1989 RTF_MULTICAST = 0x20000000
1990 RTNH_F_UNRESOLVED = 0x20 1990 RTF_NAT = 0x8000000
1991 RTN_MAX = 0xb 1991 RTF_NOFORWARD = 0x1000
1992 RTPROT_BABEL = 0x2a 1992 RTF_NONEXTHOP = 0x200000
1993 RTPROT_BGP = 0xba 1993 RTF_NOPMTUDISC = 0x4000
1994 RTPROT_BIRD = 0xc 1994 RTF_POLICY = 0x4000000
1995 RTPROT_BOOT = 0x3 1995 RTF_REINSTATE = 0x8
1996 RTPROT_DHCP = 0x10 1996 RTF_REJECT = 0x200
1997 RTPROT_DNROUTED = 0xd 1997 RTF_STATIC = 0x400
1998 RTPROT_EIGRP = 0xc0 1998 RTF_THROW = 0x2000
1999 RTPROT_GATED = 0x8 1999 RTF_UP = 0x1
2000 RTPROT_ISIS = 0xbb 2000 RTF_WINDOW = 0x80
2001 RTPROT_KERNEL = 0x2 2001 RTF_XRESOLVE = 0x800
2002 RTPROT_MROUTED = 0x11 2002 RTMGRP_DECnet_IFADDR = 0x1000
2003 RTPROT_MRT = 0xa 2003 RTMGRP_DECnet_ROUTE = 0x4000
2004 RTPROT_NTK = 0xf 2004 RTMGRP_IPV4_IFADDR = 0x10
2005 RTPROT_OSPF = 0xbc 2005 RTMGRP_IPV4_MROUTE = 0x20
2006 RTPROT_RA = 0x9 2006 RTMGRP_IPV4_ROUTE = 0x40
2007 RTPROT_REDIRECT = 0x1 2007 RTMGRP_IPV4_RULE = 0x80
2008 RTPROT_RIP = 0xbd 2008 RTMGRP_IPV6_IFADDR = 0x100
2009 RTPROT_STATIC = 0x4 2009 RTMGRP_IPV6_IFINFO = 0x800
2010 RTPROT_UNSPEC = 0x0 2010 RTMGRP_IPV6_MROUTE = 0x200
2011 RTPROT_XORP = 0xe 2011 RTMGRP_IPV6_PREFIX = 0x20000
2012 RTPROT_ZEBRA = 0xb 2012 RTMGRP_IPV6_ROUTE = 0x400
2013 RT_CLASS_DEFAULT = 0xfd 2013 RTMGRP_LINK = 0x1
2014 RT_CLASS_LOCAL = 0xff 2014 RTMGRP_NEIGH = 0x4
2015 RT_CLASS_MAIN = 0xfe 2015 RTMGRP_NOTIFY = 0x2
2016 RT_CLASS_MAX = 0xff 2016 RTMGRP_TC = 0x8
2017 RT_CLASS_UNSPEC = 0x0 2017 RTM_BASE = 0x10
2018 RUSAGE_CHILDREN = -0x1 2018 RTM_DELACTION = 0x31
2019 RUSAGE_SELF = 0x0 2019 RTM_DELADDR = 0x15
2020 RUSAGE_THREAD = 0x1 2020 RTM_DELADDRLABEL = 0x49
2021 SCM_CREDENTIALS = 0x2 2021 RTM_DELCHAIN = 0x65
2022 SCM_RIGHTS = 0x1 2022 RTM_DELLINK = 0x11
2023 SCM_TIMESTAMP = 0x1d 2023 RTM_DELLINKPROP = 0x6d
2024 SCM_TIMESTAMPING = 0x25 2024 RTM_DELMDB = 0x55
2025 SCM_TIMESTAMPING_OPT_STATS = 0x36 2025 RTM_DELNEIGH = 0x1d
2026 SCM_TIMESTAMPING_PKTINFO = 0x3a 2026 RTM_DELNETCONF = 0x51
2027 SCM_TIMESTAMPNS = 0x23 2027 RTM_DELNEXTHOP = 0x69
2028 SCM_TXTIME = 0x3d 2028 RTM_DELNSID = 0x59
2029 SCM_WIFI_STATUS = 0x29 2029 RTM_DELQDISC = 0x25
2030 SC_LOG_FLUSH = 0x100000 2030 RTM_DELROUTE = 0x19
2031 SECCOMP_MODE_DISABLED = 0x0 2031 RTM_DELRULE = 0x21
2032 SECCOMP_MODE_FILTER = 0x2 2032 RTM_DELTCLASS = 0x29
2033 SECCOMP_MODE_STRICT = 0x1 2033 RTM_DELTFILTER = 0x2d
2034 SECURITYFS_MAGIC = 0x73636673 2034 RTM_F_CLONED = 0x200
2035 SELINUX_MAGIC = 0xf97cff8c 2035 RTM_F_EQUALIZE = 0x400
2036 SFD_CLOEXEC = 0x80000 2036 RTM_F_FIB_MATCH = 0x2000
2037 SFD_NONBLOCK = 0x800 2037 RTM_F_LOOKUP_TABLE = 0x1000
2038 SHUT_RD = 0x0 2038 RTM_F_NOTIFY = 0x100
2039 SHUT_RDWR = 0x2 2039 RTM_F_PREFIX = 0x800
2040 SHUT_WR = 0x1 2040 RTM_GETACTION = 0x32
2041 SIOCADDDLCI = 0x8980 2041 RTM_GETADDR = 0x16
2042 SIOCADDMULTI = 0x8931 2042 RTM_GETADDRLABEL = 0x4a
2043 SIOCADDRT = 0x890b 2043 RTM_GETANYCAST = 0x3e
2044 SIOCATMARK = 0x8905 2044 RTM_GETCHAIN = 0x66
2045 SIOCBONDCHANGEACTIVE = 0x8995 2045 RTM_GETDCB = 0x4e
2046 SIOCBONDENSLAVE = 0x8990 2046 RTM_GETLINK = 0x12
2047 SIOCBONDINFOQUERY = 0x8994 2047 RTM_GETLINKPROP = 0x6e
2048 SIOCBONDRELEASE = 0x8991 2048 RTM_GETMDB = 0x56
2049 SIOCBONDSETHWADDR = 0x8992 2049 RTM_GETMULTICAST = 0x3a
2050 SIOCBONDSLAVEINFOQUERY = 0x8993 2050 RTM_GETNEIGH = 0x1e
2051 SIOCBRADDBR = 0x89a0 2051 RTM_GETNEIGHTBL = 0x42
2052 SIOCBRADDIF = 0x89a2 2052 RTM_GETNETCONF = 0x52
2053 SIOCBRDELBR = 0x89a1 2053 RTM_GETNEXTHOP = 0x6a
2054 SIOCBRDELIF = 0x89a3 2054 RTM_GETNSID = 0x5a
2055 SIOCDARP = 0x8953 2055 RTM_GETQDISC = 0x26
2056 SIOCDELDLCI = 0x8981 2056 RTM_GETROUTE = 0x1a
2057 SIOCDELMULTI = 0x8932 2057 RTM_GETRULE = 0x22
2058 SIOCDELRT = 0x890c 2058 RTM_GETSTATS = 0x5e
2059 SIOCDEVPRIVATE = 0x89f0 2059 RTM_GETTCLASS = 0x2a
2060 SIOCDIFADDR = 0x8936 2060 RTM_GETTFILTER = 0x2e
2061 SIOCDRARP = 0x8960 2061 RTM_MAX = 0x6f
2062 SIOCETHTOOL = 0x8946 2062 RTM_NEWACTION = 0x30
2063 SIOCGARP = 0x8954 2063 RTM_NEWADDR = 0x14
2064 SIOCGHWTSTAMP = 0x89b1 2064 RTM_NEWADDRLABEL = 0x48
2065 SIOCGIFADDR = 0x8915 2065 RTM_NEWCACHEREPORT = 0x60
2066 SIOCGIFBR = 0x8940 2066 RTM_NEWCHAIN = 0x64
2067 SIOCGIFBRDADDR = 0x8919 2067 RTM_NEWLINK = 0x10
2068 SIOCGIFCONF = 0x8912 2068 RTM_NEWLINKPROP = 0x6c
2069 SIOCGIFCOUNT = 0x8938 2069 RTM_NEWMDB = 0x54
2070 SIOCGIFDSTADDR = 0x8917 2070 RTM_NEWNDUSEROPT = 0x44
2071 SIOCGIFENCAP = 0x8925 2071 RTM_NEWNEIGH = 0x1c
2072 SIOCGIFFLAGS = 0x8913 2072 RTM_NEWNEIGHTBL = 0x40
2073 SIOCGIFHWADDR = 0x8927 2073 RTM_NEWNETCONF = 0x50
2074 SIOCGIFINDEX = 0x8933 2074 RTM_NEWNEXTHOP = 0x68
2075 SIOCGIFMAP = 0x8970 2075 RTM_NEWNSID = 0x58
2076 SIOCGIFMEM = 0x891f 2076 RTM_NEWPREFIX = 0x34
2077 SIOCGIFMETRIC = 0x891d 2077 RTM_NEWQDISC = 0x24
2078 SIOCGIFMTU = 0x8921 2078 RTM_NEWROUTE = 0x18
2079 SIOCGIFNAME = 0x8910 2079 RTM_NEWRULE = 0x20
2080 SIOCGIFNETMASK = 0x891b 2080 RTM_NEWSTATS = 0x5c
2081 SIOCGIFPFLAGS = 0x8935 2081 RTM_NEWTCLASS = 0x28
2082 SIOCGIFSLAVE = 0x8929 2082 RTM_NEWTFILTER = 0x2c
2083 SIOCGIFTXQLEN = 0x8942 2083 RTM_NR_FAMILIES = 0x18
2084 SIOCGIFVLAN = 0x8982 2084 RTM_NR_MSGTYPES = 0x60
2085 SIOCGMIIPHY = 0x8947 2085 RTM_SETDCB = 0x4f
2086 SIOCGMIIREG = 0x8948 2086 RTM_SETLINK = 0x13
2087 SIOCGPGRP = 0x8904 2087 RTM_SETNEIGHTBL = 0x43
2088 SIOCGPPPCSTATS = 0x89f2 2088 RTNH_ALIGNTO = 0x4
2089 SIOCGPPPSTATS = 0x89f0 2089 RTNH_COMPARE_MASK = 0x19
2090 SIOCGPPPVER = 0x89f1 2090 RTNH_F_DEAD = 0x1
2091 SIOCGRARP = 0x8961 2091 RTNH_F_LINKDOWN = 0x10
2092 SIOCGSKNS = 0x894c 2092 RTNH_F_OFFLOAD = 0x8
2093 SIOCGSTAMP = 0x8906 2093 RTNH_F_ONLINK = 0x4
2094 SIOCGSTAMPNS = 0x8907 2094 RTNH_F_PERVASIVE = 0x2
2095 SIOCGSTAMPNS_NEW = 0x80108907 2095 RTNH_F_UNRESOLVED = 0x20
2096 SIOCGSTAMPNS_OLD = 0x8907 2096 RTN_MAX = 0xb
2097 SIOCGSTAMP_NEW = 0x80108906 2097 RTPROT_BABEL = 0x2a
2098 SIOCGSTAMP_OLD = 0x8906 2098 RTPROT_BGP = 0xba
2099 SIOCINQ = 0x541b 2099 RTPROT_BIRD = 0xc
2100 SIOCOUTQ = 0x5411 2100 RTPROT_BOOT = 0x3
2101 SIOCOUTQNSD = 0x894b 2101 RTPROT_DHCP = 0x10
2102 SIOCPROTOPRIVATE = 0x89e0 2102 RTPROT_DNROUTED = 0xd
2103 SIOCRTMSG = 0x890d 2103 RTPROT_EIGRP = 0xc0
2104 SIOCSARP = 0x8955 2104 RTPROT_GATED = 0x8
2105 SIOCSHWTSTAMP = 0x89b0 2105 RTPROT_ISIS = 0xbb
2106 SIOCSIFADDR = 0x8916 2106 RTPROT_KERNEL = 0x2
2107 SIOCSIFBR = 0x8941 2107 RTPROT_MROUTED = 0x11
2108 SIOCSIFBRDADDR = 0x891a 2108 RTPROT_MRT = 0xa
2109 SIOCSIFDSTADDR = 0x8918 2109 RTPROT_NTK = 0xf
2110 SIOCSIFENCAP = 0x8926 2110 RTPROT_OSPF = 0xbc
2111 SIOCSIFFLAGS = 0x8914 2111 RTPROT_RA = 0x9
2112 SIOCSIFHWADDR = 0x8924 2112 RTPROT_REDIRECT = 0x1
2113 SIOCSIFHWBROADCAST = 0x8937 2113 RTPROT_RIP = 0xbd
2114 SIOCSIFLINK = 0x8911 2114 RTPROT_STATIC = 0x4
2115 SIOCSIFMAP = 0x8971 2115 RTPROT_UNSPEC = 0x0
2116 SIOCSIFMEM = 0x8920 2116 RTPROT_XORP = 0xe
2117 SIOCSIFMETRIC = 0x891e 2117 RTPROT_ZEBRA = 0xb
2118 SIOCSIFMTU = 0x8922 2118 RT_CLASS_DEFAULT = 0xfd
2119 SIOCSIFNAME = 0x8923 2119 RT_CLASS_LOCAL = 0xff
2120 SIOCSIFNETMASK = 0x891c 2120 RT_CLASS_MAIN = 0xfe
2121 SIOCSIFPFLAGS = 0x8934 2121 RT_CLASS_MAX = 0xff
2122 SIOCSIFSLAVE = 0x8930 2122 RT_CLASS_UNSPEC = 0x0
2123 SIOCSIFTXQLEN = 0x8943 2123 RUSAGE_CHILDREN = -0x1
2124 SIOCSIFVLAN = 0x8983 2124 RUSAGE_SELF = 0x0
2125 SIOCSMIIREG = 0x8949 2125 RUSAGE_THREAD = 0x1
2126 SIOCSPGRP = 0x8902 2126 RWF_APPEND = 0x10
2127 SIOCSRARP = 0x8962 2127 RWF_DSYNC = 0x2
2128 SIOCWANDEV = 0x894a 2128 RWF_HIPRI = 0x1
2129 SMACK_MAGIC = 0x43415d53 2129 RWF_NOWAIT = 0x8
2130 SMART_AUTOSAVE = 0xd2 2130 RWF_SUPPORTED = 0x1f
2131 SMART_AUTO_OFFLINE = 0xdb 2131 RWF_SYNC = 0x4
2132 SMART_DISABLE = 0xd9 2132 RWF_WRITE_LIFE_NOT_SET = 0x0
2133 SMART_ENABLE = 0xd8 2133 SCM_CREDENTIALS = 0x2
2134 SMART_HCYL_PASS = 0xc2 2134 SCM_RIGHTS = 0x1
2135 SMART_IMMEDIATE_OFFLINE = 0xd4 2135 SCM_TIMESTAMP = 0x1d
2136 SMART_LCYL_PASS = 0x4f 2136 SCM_TIMESTAMPING = 0x25
2137 SMART_READ_LOG_SECTOR = 0xd5 2137 SCM_TIMESTAMPING_OPT_STATS = 0x36
2138 SMART_READ_THRESHOLDS = 0xd1 2138 SCM_TIMESTAMPING_PKTINFO = 0x3a
2139 SMART_READ_VALUES = 0xd0 2139 SCM_TIMESTAMPNS = 0x23
2140 SMART_SAVE = 0xd3 2140 SCM_TXTIME = 0x3d
2141 SMART_STATUS = 0xda 2141 SCM_WIFI_STATUS = 0x29
2142 SMART_WRITE_LOG_SECTOR = 0xd6 2142 SC_LOG_FLUSH = 0x100000
2143 SMART_WRITE_THRESHOLDS = 0xd7 2143 SECCOMP_MODE_DISABLED = 0x0
2144 SMB_SUPER_MAGIC = 0x517b 2144 SECCOMP_MODE_FILTER = 0x2
2145 SOCKFS_MAGIC = 0x534f434b 2145 SECCOMP_MODE_STRICT = 0x1
2146 SOCK_CLOEXEC = 0x80000 2146 SECURITYFS_MAGIC = 0x73636673
2147 SOCK_DCCP = 0x6 2147 SELINUX_MAGIC = 0xf97cff8c
2148 SOCK_DGRAM = 0x2 2148 SFD_CLOEXEC = 0x80000
2149 SOCK_IOC_TYPE = 0x89 2149 SFD_NONBLOCK = 0x800
2150 SOCK_NONBLOCK = 0x800 2150 SHUT_RD = 0x0
2151 SOCK_PACKET = 0xa 2151 SHUT_RDWR = 0x2
2152 SOCK_RAW = 0x3 2152 SHUT_WR = 0x1
2153 SOCK_RDM = 0x4 2153 SIOCADDDLCI = 0x8980
2154 SOCK_SEQPACKET = 0x5 2154 SIOCADDMULTI = 0x8931
2155 SOCK_STREAM = 0x1 2155 SIOCADDRT = 0x890b
2156 SOL_AAL = 0x109 2156 SIOCATMARK = 0x8905
2157 SOL_ALG = 0x117 2157 SIOCBONDCHANGEACTIVE = 0x8995
2158 SOL_ATM = 0x108 2158 SIOCBONDENSLAVE = 0x8990
2159 SOL_CAIF = 0x116 2159 SIOCBONDINFOQUERY = 0x8994
2160 SOL_CAN_BASE = 0x64 2160 SIOCBONDRELEASE = 0x8991
2161 SOL_DCCP = 0x10d 2161 SIOCBONDSETHWADDR = 0x8992
2162 SOL_DECNET = 0x105 2162 SIOCBONDSLAVEINFOQUERY = 0x8993
2163 SOL_ICMPV6 = 0x3a 2163 SIOCBRADDBR = 0x89a0
2164 SOL_IP = 0x0 2164 SIOCBRADDIF = 0x89a2
2165 SOL_IPV6 = 0x29 2165 SIOCBRDELBR = 0x89a1
2166 SOL_IRDA = 0x10a 2166 SIOCBRDELIF = 0x89a3
2167 SOL_IUCV = 0x115 2167 SIOCDARP = 0x8953
2168 SOL_KCM = 0x119 2168 SIOCDELDLCI = 0x8981
2169 SOL_LLC = 0x10c 2169 SIOCDELMULTI = 0x8932
2170 SOL_NETBEUI = 0x10b 2170 SIOCDELRT = 0x890c
2171 SOL_NETLINK = 0x10e 2171 SIOCDEVPRIVATE = 0x89f0
2172 SOL_NFC = 0x118 2172 SIOCDIFADDR = 0x8936
2173 SOL_PACKET = 0x107 2173 SIOCDRARP = 0x8960
2174 SOL_PNPIPE = 0x113 2174 SIOCETHTOOL = 0x8946
2175 SOL_PPPOL2TP = 0x111 2175 SIOCGARP = 0x8954
2176 SOL_RAW = 0xff 2176 SIOCGETLINKNAME = 0x89e0
2177 SOL_RDS = 0x114 2177 SIOCGETNODEID = 0x89e1
2178 SOL_RXRPC = 0x110 2178 SIOCGHWTSTAMP = 0x89b1
2179 SOL_SOCKET = 0x1 2179 SIOCGIFADDR = 0x8915
2180 SOL_TCP = 0x6 2180 SIOCGIFBR = 0x8940
2181 SOL_TIPC = 0x10f 2181 SIOCGIFBRDADDR = 0x8919
2182 SOL_TLS = 0x11a 2182 SIOCGIFCONF = 0x8912
2183 SOL_X25 = 0x106 2183 SIOCGIFCOUNT = 0x8938
2184 SOL_XDP = 0x11b 2184 SIOCGIFDSTADDR = 0x8917
2185 SOMAXCONN = 0x80 2185 SIOCGIFENCAP = 0x8925
2186 SO_ACCEPTCONN = 0x1e 2186 SIOCGIFFLAGS = 0x8913
2187 SO_ATTACH_BPF = 0x32 2187 SIOCGIFHWADDR = 0x8927
2188 SO_ATTACH_FILTER = 0x1a 2188 SIOCGIFINDEX = 0x8933
2189 SO_ATTACH_REUSEPORT_CBPF = 0x33 2189 SIOCGIFMAP = 0x8970
2190 SO_ATTACH_REUSEPORT_EBPF = 0x34 2190 SIOCGIFMEM = 0x891f
2191 SO_BINDTODEVICE = 0x19 2191 SIOCGIFMETRIC = 0x891d
2192 SO_BINDTOIFINDEX = 0x3e 2192 SIOCGIFMTU = 0x8921
2193 SO_BPF_EXTENSIONS = 0x30 2193 SIOCGIFNAME = 0x8910
2194 SO_BROADCAST = 0x6 2194 SIOCGIFNETMASK = 0x891b
2195 SO_BSDCOMPAT = 0xe 2195 SIOCGIFPFLAGS = 0x8935
2196 SO_BUSY_POLL = 0x2e 2196 SIOCGIFSLAVE = 0x8929
2197 SO_CNX_ADVICE = 0x35 2197 SIOCGIFTXQLEN = 0x8942
2198 SO_COOKIE = 0x39 2198 SIOCGIFVLAN = 0x8982
2199 SO_DEBUG = 0x1 2199 SIOCGMIIPHY = 0x8947
2200 SO_DETACH_BPF = 0x1b 2200 SIOCGMIIREG = 0x8948
2201 SO_DETACH_FILTER = 0x1b 2201 SIOCGPGRP = 0x8904
2202 SO_DOMAIN = 0x27 2202 SIOCGPPPCSTATS = 0x89f2
2203 SO_DONTROUTE = 0x5 2203 SIOCGPPPSTATS = 0x89f0
2204 SO_EE_CODE_TXTIME_INVALID_PARAM = 0x1 2204 SIOCGPPPVER = 0x89f1
2205 SO_EE_CODE_TXTIME_MISSED = 0x2 2205 SIOCGRARP = 0x8961
2206 SO_EE_CODE_ZEROCOPY_COPIED = 0x1 2206 SIOCGSKNS = 0x894c
2207 SO_EE_ORIGIN_ICMP = 0x2 2207 SIOCGSTAMP = 0x8906
2208 SO_EE_ORIGIN_ICMP6 = 0x3 2208 SIOCGSTAMPNS = 0x8907
2209 SO_EE_ORIGIN_LOCAL = 0x1 2209 SIOCGSTAMPNS_NEW = 0x80108907
2210 SO_EE_ORIGIN_NONE = 0x0 2210 SIOCGSTAMPNS_OLD = 0x8907
2211 SO_EE_ORIGIN_TIMESTAMPING = 0x4 2211 SIOCGSTAMP_NEW = 0x80108906
2212 SO_EE_ORIGIN_TXSTATUS = 0x4 2212 SIOCGSTAMP_OLD = 0x8906
2213 SO_EE_ORIGIN_TXTIME = 0x6 2213 SIOCINQ = 0x541b
2214 SO_EE_ORIGIN_ZEROCOPY = 0x5 2214 SIOCOUTQ = 0x5411
2215 SO_ERROR = 0x4 2215 SIOCOUTQNSD = 0x894b
2216 SO_GET_FILTER = 0x1a 2216 SIOCPROTOPRIVATE = 0x89e0
2217 SO_INCOMING_CPU = 0x31 2217 SIOCRTMSG = 0x890d
2218 SO_INCOMING_NAPI_ID = 0x38 2218 SIOCSARP = 0x8955
2219 SO_KEEPALIVE = 0x9 2219 SIOCSHWTSTAMP = 0x89b0
2220 SO_LINGER = 0xd 2220 SIOCSIFADDR = 0x8916
2221 SO_LOCK_FILTER = 0x2c 2221 SIOCSIFBR = 0x8941
2222 SO_MARK = 0x24 2222 SIOCSIFBRDADDR = 0x891a
2223 SO_MAX_PACING_RATE = 0x2f 2223 SIOCSIFDSTADDR = 0x8918
2224 SO_MEMINFO = 0x37 2224 SIOCSIFENCAP = 0x8926
2225 SO_NOFCS = 0x2b 2225 SIOCSIFFLAGS = 0x8914
2226 SO_NO_CHECK = 0xb 2226 SIOCSIFHWADDR = 0x8924
2227 SO_OOBINLINE = 0xa 2227 SIOCSIFHWBROADCAST = 0x8937
2228 SO_PASSCRED = 0x10 2228 SIOCSIFLINK = 0x8911
2229 SO_PASSSEC = 0x22 2229 SIOCSIFMAP = 0x8971
2230 SO_PEEK_OFF = 0x2a 2230 SIOCSIFMEM = 0x8920
2231 SO_PEERCRED = 0x11 2231 SIOCSIFMETRIC = 0x891e
2232 SO_PEERGROUPS = 0x3b 2232 SIOCSIFMTU = 0x8922
2233 SO_PEERNAME = 0x1c 2233 SIOCSIFNAME = 0x8923
2234 SO_PEERSEC = 0x1f 2234 SIOCSIFNETMASK = 0x891c
2235 SO_PRIORITY = 0xc 2235 SIOCSIFPFLAGS = 0x8934
2236 SO_PROTOCOL = 0x26 2236 SIOCSIFSLAVE = 0x8930
2237 SO_RCVBUF = 0x8 2237 SIOCSIFTXQLEN = 0x8943
2238 SO_RCVBUFFORCE = 0x21 2238 SIOCSIFVLAN = 0x8983
2239 SO_RCVLOWAT = 0x12 2239 SIOCSMIIREG = 0x8949
2240 SO_RCVTIMEO = 0x14 2240 SIOCSPGRP = 0x8902
2241 SO_RCVTIMEO_NEW = 0x42 2241 SIOCSRARP = 0x8962
2242 SO_RCVTIMEO_OLD = 0x14 2242 SIOCWANDEV = 0x894a
2243 SO_REUSEADDR = 0x2 2243 SMACK_MAGIC = 0x43415d53
2244 SO_REUSEPORT = 0xf 2244 SMART_AUTOSAVE = 0xd2
2245 SO_RXQ_OVFL = 0x28 2245 SMART_AUTO_OFFLINE = 0xdb
2246 SO_SECURITY_AUTHENTICATION = 0x16 2246 SMART_DISABLE = 0xd9
2247 SO_SECURITY_ENCRYPTION_NETWORK = 0x18 2247 SMART_ENABLE = 0xd8
2248 SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17 2248 SMART_HCYL_PASS = 0xc2
2249 SO_SELECT_ERR_QUEUE = 0x2d 2249 SMART_IMMEDIATE_OFFLINE = 0xd4
2250 SO_SNDBUF = 0x7 2250 SMART_LCYL_PASS = 0x4f
2251 SO_SNDBUFFORCE = 0x20 2251 SMART_READ_LOG_SECTOR = 0xd5
2252 SO_SNDLOWAT = 0x13 2252 SMART_READ_THRESHOLDS = 0xd1
2253 SO_SNDTIMEO = 0x15 2253 SMART_READ_VALUES = 0xd0
2254 SO_SNDTIMEO_NEW = 0x43 2254 SMART_SAVE = 0xd3
2255 SO_SNDTIMEO_OLD = 0x15 2255 SMART_STATUS = 0xda
2256 SO_TIMESTAMP = 0x1d 2256 SMART_WRITE_LOG_SECTOR = 0xd6
2257 SO_TIMESTAMPING = 0x25 2257 SMART_WRITE_THRESHOLDS = 0xd7
2258 SO_TIMESTAMPING_NEW = 0x41 2258 SMB_SUPER_MAGIC = 0x517b
2259 SO_TIMESTAMPING_OLD = 0x25 2259 SOCKFS_MAGIC = 0x534f434b
2260 SO_TIMESTAMPNS = 0x23 2260 SOCK_CLOEXEC = 0x80000
2261 SO_TIMESTAMPNS_NEW = 0x40 2261 SOCK_DCCP = 0x6
2262 SO_TIMESTAMPNS_OLD = 0x23 2262 SOCK_DGRAM = 0x2
2263 SO_TIMESTAMP_NEW = 0x3f 2263 SOCK_IOC_TYPE = 0x89
2264 SO_TIMESTAMP_OLD = 0x1d 2264 SOCK_NONBLOCK = 0x800
2265 SO_TXTIME = 0x3d 2265 SOCK_PACKET = 0xa
2266 SO_TYPE = 0x3 2266 SOCK_RAW = 0x3
2267 SO_VM_SOCKETS_BUFFER_MAX_SIZE = 0x2 2267 SOCK_RDM = 0x4
2268 SO_VM_SOCKETS_BUFFER_MIN_SIZE = 0x1 2268 SOCK_SEQPACKET = 0x5
2269 SO_VM_SOCKETS_BUFFER_SIZE = 0x0 2269 SOCK_STREAM = 0x1
2270 SO_VM_SOCKETS_CONNECT_TIMEOUT = 0x6 2270 SOL_AAL = 0x109
2271 SO_VM_SOCKETS_NONBLOCK_TXRX = 0x7 2271 SOL_ALG = 0x117
2272 SO_VM_SOCKETS_PEER_HOST_VM_ID = 0x3 2272 SOL_ATM = 0x108
2273 SO_VM_SOCKETS_TRUSTED = 0x5 2273 SOL_CAIF = 0x116
2274 SO_WIFI_STATUS = 0x29 2274 SOL_CAN_BASE = 0x64
2275 SO_ZEROCOPY = 0x3c 2275 SOL_DCCP = 0x10d
2276 SPLICE_F_GIFT = 0x8 2276 SOL_DECNET = 0x105
2277 SPLICE_F_MORE = 0x4 2277 SOL_ICMPV6 = 0x3a
2278 SPLICE_F_MOVE = 0x1 2278 SOL_IP = 0x0
2279 SPLICE_F_NONBLOCK = 0x2 2279 SOL_IPV6 = 0x29
2280 SQUASHFS_MAGIC = 0x73717368 2280 SOL_IRDA = 0x10a
2281 STACK_END_MAGIC = 0x57ac6e9d 2281 SOL_IUCV = 0x115
2282 STATX_ALL = 0xfff 2282 SOL_KCM = 0x119
2283 STATX_ATIME = 0x20 2283 SOL_LLC = 0x10c
2284 STATX_ATTR_APPEND = 0x20 2284 SOL_NETBEUI = 0x10b
2285 STATX_ATTR_AUTOMOUNT = 0x1000 2285 SOL_NETLINK = 0x10e
2286 STATX_ATTR_COMPRESSED = 0x4 2286 SOL_NFC = 0x118
2287 STATX_ATTR_ENCRYPTED = 0x800 2287 SOL_PACKET = 0x107
2288 STATX_ATTR_IMMUTABLE = 0x10 2288 SOL_PNPIPE = 0x113
2289 STATX_ATTR_NODUMP = 0x40 2289 SOL_PPPOL2TP = 0x111
2290 STATX_BASIC_STATS = 0x7ff 2290 SOL_RAW = 0xff
2291 STATX_BLOCKS = 0x400 2291 SOL_RDS = 0x114
2292 STATX_BTIME = 0x800 2292 SOL_RXRPC = 0x110
2293 STATX_CTIME = 0x80 2293 SOL_SOCKET = 0x1
2294 STATX_GID = 0x10 2294 SOL_TCP = 0x6
2295 STATX_INO = 0x100 2295 SOL_TIPC = 0x10f
2296 STATX_MODE = 0x2 2296 SOL_TLS = 0x11a
2297 STATX_MTIME = 0x40 2297 SOL_X25 = 0x106
2298 STATX_NLINK = 0x4 2298 SOL_XDP = 0x11b
2299 STATX_SIZE = 0x200 2299 SOMAXCONN = 0x1000
2300 STATX_TYPE = 0x1 2300 SO_ACCEPTCONN = 0x1e
2301 STATX_UID = 0x8 2301 SO_ATTACH_BPF = 0x32
2302 STATX__RESERVED = 0x80000000 2302 SO_ATTACH_FILTER = 0x1a
2303 SYNC_FILE_RANGE_WAIT_AFTER = 0x4 2303 SO_ATTACH_REUSEPORT_CBPF = 0x33
2304 SYNC_FILE_RANGE_WAIT_BEFORE = 0x1 2304 SO_ATTACH_REUSEPORT_EBPF = 0x34
2305 SYNC_FILE_RANGE_WRITE = 0x2 2305 SO_BINDTODEVICE = 0x19
2306 SYNC_FILE_RANGE_WRITE_AND_WAIT = 0x7 2306 SO_BINDTOIFINDEX = 0x3e
2307 SYSFS_MAGIC = 0x62656572 2307 SO_BPF_EXTENSIONS = 0x30
2308 S_BLKSIZE = 0x200 2308 SO_BROADCAST = 0x6
2309 S_IEXEC = 0x40 2309 SO_BSDCOMPAT = 0xe
2310 S_IFBLK = 0x6000 2310 SO_BUSY_POLL = 0x2e
2311 S_IFCHR = 0x2000 2311 SO_CNX_ADVICE = 0x35
2312 S_IFDIR = 0x4000 2312 SO_COOKIE = 0x39
2313 S_IFIFO = 0x1000 2313 SO_DEBUG = 0x1
2314 S_IFLNK = 0xa000 2314 SO_DETACH_BPF = 0x1b
2315 S_IFMT = 0xf000 2315 SO_DETACH_FILTER = 0x1b
2316 S_IFREG = 0x8000 2316 SO_DETACH_REUSEPORT_BPF = 0x44
2317 S_IFSOCK = 0xc000 2317 SO_DOMAIN = 0x27
2318 S_IREAD = 0x100 2318 SO_DONTROUTE = 0x5
2319 S_IRGRP = 0x20 2319 SO_EE_CODE_TXTIME_INVALID_PARAM = 0x1
2320 S_IROTH = 0x4 2320 SO_EE_CODE_TXTIME_MISSED = 0x2
2321 S_IRUSR = 0x100 2321 SO_EE_CODE_ZEROCOPY_COPIED = 0x1
2322 S_IRWXG = 0x38 2322 SO_EE_ORIGIN_ICMP = 0x2
2323 S_IRWXO = 0x7 2323 SO_EE_ORIGIN_ICMP6 = 0x3
2324 S_IRWXU = 0x1c0 2324 SO_EE_ORIGIN_LOCAL = 0x1
2325 S_ISGID = 0x400 2325 SO_EE_ORIGIN_NONE = 0x0
2326 S_ISUID = 0x800 2326 SO_EE_ORIGIN_TIMESTAMPING = 0x4
2327 S_ISVTX = 0x200 2327 SO_EE_ORIGIN_TXSTATUS = 0x4
2328 S_IWGRP = 0x10 2328 SO_EE_ORIGIN_TXTIME = 0x6
2329 S_IWOTH = 0x2 2329 SO_EE_ORIGIN_ZEROCOPY = 0x5
2330 S_IWRITE = 0x80 2330 SO_ERROR = 0x4
2331 S_IWUSR = 0x80 2331 SO_GET_FILTER = 0x1a
2332 S_IXGRP = 0x8 2332 SO_INCOMING_CPU = 0x31
2333 S_IXOTH = 0x1 2333 SO_INCOMING_NAPI_ID = 0x38
2334 S_IXUSR = 0x40 2334 SO_KEEPALIVE = 0x9
2335 TAB0 = 0x0 2335 SO_LINGER = 0xd
2336 TAB1 = 0x800 2336 SO_LOCK_FILTER = 0x2c
2337 TAB2 = 0x1000 2337 SO_MARK = 0x24
2338 TAB3 = 0x1800 2338 SO_MAX_PACING_RATE = 0x2f
2339 TABDLY = 0x1800 2339 SO_MEMINFO = 0x37
2340 TASKSTATS_CMD_ATTR_MAX = 0x4 2340 SO_NOFCS = 0x2b
2341 TASKSTATS_CMD_MAX = 0x2 2341 SO_NO_CHECK = 0xb
2342 TASKSTATS_GENL_NAME = "TASKSTATS" 2342 SO_OOBINLINE = 0xa
2343 TASKSTATS_GENL_VERSION = 0x1 2343 SO_PASSCRED = 0x10
2344 TASKSTATS_TYPE_MAX = 0x6 2344 SO_PASSSEC = 0x22
2345 TASKSTATS_VERSION = 0x9 2345 SO_PEEK_OFF = 0x2a
2346 TCFLSH = 0x540b 2346 SO_PEERCRED = 0x11
2347 TCGETA = 0x5405 2347 SO_PEERGROUPS = 0x3b
2348 TCGETS = 0x5401 2348 SO_PEERNAME = 0x1c
2349 TCGETS2 = 0x802c542a 2349 SO_PEERSEC = 0x1f
2350 TCGETX = 0x5432 2350 SO_PRIORITY = 0xc
2351 TCIFLUSH = 0x0 2351 SO_PROTOCOL = 0x26
2352 TCIOFF = 0x2 2352 SO_RCVBUF = 0x8
2353 TCIOFLUSH = 0x2 2353 SO_RCVBUFFORCE = 0x21
2354 TCION = 0x3 2354 SO_RCVLOWAT = 0x12
2355 TCOFLUSH = 0x1 2355 SO_RCVTIMEO = 0x14
2356 TCOOFF = 0x0 2356 SO_RCVTIMEO_NEW = 0x42
2357 TCOON = 0x1 2357 SO_RCVTIMEO_OLD = 0x14
2358 TCP_BPF_IW = 0x3e9 2358 SO_REUSEADDR = 0x2
2359 TCP_BPF_SNDCWND_CLAMP = 0x3ea 2359 SO_REUSEPORT = 0xf
2360 TCP_CC_INFO = 0x1a 2360 SO_RXQ_OVFL = 0x28
2361 TCP_CM_INQ = 0x24 2361 SO_SECURITY_AUTHENTICATION = 0x16
2362 TCP_CONGESTION = 0xd 2362 SO_SECURITY_ENCRYPTION_NETWORK = 0x18
2363 TCP_COOKIE_IN_ALWAYS = 0x1 2363 SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17
2364 TCP_COOKIE_MAX = 0x10 2364 SO_SELECT_ERR_QUEUE = 0x2d
2365 TCP_COOKIE_MIN = 0x8 2365 SO_SNDBUF = 0x7
2366 TCP_COOKIE_OUT_NEVER = 0x2 2366 SO_SNDBUFFORCE = 0x20
2367 TCP_COOKIE_PAIR_SIZE = 0x20 2367 SO_SNDLOWAT = 0x13
2368 TCP_COOKIE_TRANSACTIONS = 0xf 2368 SO_SNDTIMEO = 0x15
2369 TCP_CORK = 0x3 2369 SO_SNDTIMEO_NEW = 0x43
2370 TCP_DEFER_ACCEPT = 0x9 2370 SO_SNDTIMEO_OLD = 0x15
2371 TCP_FASTOPEN = 0x17 2371 SO_TIMESTAMP = 0x1d
2372 TCP_FASTOPEN_CONNECT = 0x1e 2372 SO_TIMESTAMPING = 0x25
2373 TCP_FASTOPEN_KEY = 0x21 2373 SO_TIMESTAMPING_NEW = 0x41
2374 TCP_FASTOPEN_NO_COOKIE = 0x22 2374 SO_TIMESTAMPING_OLD = 0x25
2375 TCP_INFO = 0xb 2375 SO_TIMESTAMPNS = 0x23
2376 TCP_INQ = 0x24 2376 SO_TIMESTAMPNS_NEW = 0x40
2377 TCP_KEEPCNT = 0x6 2377 SO_TIMESTAMPNS_OLD = 0x23
2378 TCP_KEEPIDLE = 0x4 2378 SO_TIMESTAMP_NEW = 0x3f
2379 TCP_KEEPINTVL = 0x5 2379 SO_TIMESTAMP_OLD = 0x1d
2380 TCP_LINGER2 = 0x8 2380 SO_TXTIME = 0x3d
2381 TCP_MAXSEG = 0x2 2381 SO_TYPE = 0x3
2382 TCP_MAXWIN = 0xffff 2382 SO_VM_SOCKETS_BUFFER_MAX_SIZE = 0x2
2383 TCP_MAX_WINSHIFT = 0xe 2383 SO_VM_SOCKETS_BUFFER_MIN_SIZE = 0x1
2384 TCP_MD5SIG = 0xe 2384 SO_VM_SOCKETS_BUFFER_SIZE = 0x0
2385 TCP_MD5SIG_EXT = 0x20 2385 SO_VM_SOCKETS_CONNECT_TIMEOUT = 0x6
2386 TCP_MD5SIG_FLAG_PREFIX = 0x1 2386 SO_VM_SOCKETS_NONBLOCK_TXRX = 0x7
2387 TCP_MD5SIG_MAXKEYLEN = 0x50 2387 SO_VM_SOCKETS_PEER_HOST_VM_ID = 0x3
2388 TCP_MSS = 0x200 2388 SO_VM_SOCKETS_TRUSTED = 0x5
2389 TCP_MSS_DEFAULT = 0x218 2389 SO_WIFI_STATUS = 0x29
2390 TCP_MSS_DESIRED = 0x4c4 2390 SO_ZEROCOPY = 0x3c
2391 TCP_NODELAY = 0x1 2391 SPLICE_F_GIFT = 0x8
2392 TCP_NOTSENT_LOWAT = 0x19 2392 SPLICE_F_MORE = 0x4
2393 TCP_QUEUE_SEQ = 0x15 2393 SPLICE_F_MOVE = 0x1
2394 TCP_QUICKACK = 0xc 2394 SPLICE_F_NONBLOCK = 0x2
2395 TCP_REPAIR = 0x13 2395 SQUASHFS_MAGIC = 0x73717368
2396 TCP_REPAIR_OFF = 0x0 2396 STACK_END_MAGIC = 0x57ac6e9d
2397 TCP_REPAIR_OFF_NO_WP = -0x1 2397 STATX_ALL = 0xfff
2398 TCP_REPAIR_ON = 0x1 2398 STATX_ATIME = 0x20
2399 TCP_REPAIR_OPTIONS = 0x16 2399 STATX_ATTR_APPEND = 0x20
2400 TCP_REPAIR_QUEUE = 0x14 2400 STATX_ATTR_AUTOMOUNT = 0x1000
2401 TCP_REPAIR_WINDOW = 0x1d 2401 STATX_ATTR_COMPRESSED = 0x4
2402 TCP_SAVED_SYN = 0x1c 2402 STATX_ATTR_ENCRYPTED = 0x800
2403 TCP_SAVE_SYN = 0x1b 2403 STATX_ATTR_IMMUTABLE = 0x10
2404 TCP_SYNCNT = 0x7 2404 STATX_ATTR_NODUMP = 0x40
2405 TCP_S_DATA_IN = 0x4 2405 STATX_ATTR_VERITY = 0x100000
2406 TCP_S_DATA_OUT = 0x8 2406 STATX_BASIC_STATS = 0x7ff
2407 TCP_THIN_DUPACK = 0x11 2407 STATX_BLOCKS = 0x400
2408 TCP_THIN_LINEAR_TIMEOUTS = 0x10 2408 STATX_BTIME = 0x800
2409 TCP_TIMESTAMP = 0x18 2409 STATX_CTIME = 0x80
2410 TCP_ULP = 0x1f 2410 STATX_GID = 0x10
2411 TCP_USER_TIMEOUT = 0x12 2411 STATX_INO = 0x100
2412 TCP_WINDOW_CLAMP = 0xa 2412 STATX_MODE = 0x2
2413 TCP_ZEROCOPY_RECEIVE = 0x23 2413 STATX_MTIME = 0x40
2414 TCSAFLUSH = 0x2 2414 STATX_NLINK = 0x4
2415 TCSBRK = 0x5409 2415 STATX_SIZE = 0x200
2416 TCSBRKP = 0x5425 2416 STATX_TYPE = 0x1
2417 TCSETA = 0x5406 2417 STATX_UID = 0x8
2418 TCSETAF = 0x5408 2418 STATX__RESERVED = 0x80000000
2419 TCSETAW = 0x5407 2419 SYNC_FILE_RANGE_WAIT_AFTER = 0x4
2420 TCSETS = 0x5402 2420 SYNC_FILE_RANGE_WAIT_BEFORE = 0x1
2421 TCSETS2 = 0x402c542b 2421 SYNC_FILE_RANGE_WRITE = 0x2
2422 TCSETSF = 0x5404 2422 SYNC_FILE_RANGE_WRITE_AND_WAIT = 0x7
2423 TCSETSF2 = 0x402c542d 2423 SYSFS_MAGIC = 0x62656572
2424 TCSETSW = 0x5403 2424 S_BLKSIZE = 0x200
2425 TCSETSW2 = 0x402c542c 2425 S_IEXEC = 0x40
2426 TCSETX = 0x5433 2426 S_IFBLK = 0x6000
2427 TCSETXF = 0x5434 2427 S_IFCHR = 0x2000
2428 TCSETXW = 0x5435 2428 S_IFDIR = 0x4000
2429 TCXONC = 0x540a 2429 S_IFIFO = 0x1000
2430 TIMER_ABSTIME = 0x1 2430 S_IFLNK = 0xa000
2431 TIOCCBRK = 0x5428 2431 S_IFMT = 0xf000
2432 TIOCCONS = 0x541d 2432 S_IFREG = 0x8000
2433 TIOCEXCL = 0x540c 2433 S_IFSOCK = 0xc000
2434 TIOCGDEV = 0x80045432 2434 S_IREAD = 0x100
2435 TIOCGETD = 0x5424 2435 S_IRGRP = 0x20
2436 TIOCGEXCL = 0x80045440 2436 S_IROTH = 0x4
2437 TIOCGICOUNT = 0x545d 2437 S_IRUSR = 0x100
2438 TIOCGISO7816 = 0x80285442 2438 S_IRWXG = 0x38
2439 TIOCGLCKTRMIOS = 0x5456 2439 S_IRWXO = 0x7
2440 TIOCGPGRP = 0x540f 2440 S_IRWXU = 0x1c0
2441 TIOCGPKT = 0x80045438 2441 S_ISGID = 0x400
2442 TIOCGPTLCK = 0x80045439 2442 S_ISUID = 0x800
2443 TIOCGPTN = 0x80045430 2443 S_ISVTX = 0x200
2444 TIOCGPTPEER = 0x5441 2444 S_IWGRP = 0x10
2445 TIOCGRS485 = 0x542e 2445 S_IWOTH = 0x2
2446 TIOCGSERIAL = 0x541e 2446 S_IWRITE = 0x80
2447 TIOCGSID = 0x5429 2447 S_IWUSR = 0x80
2448 TIOCGSOFTCAR = 0x5419 2448 S_IXGRP = 0x8
2449 TIOCGWINSZ = 0x5413 2449 S_IXOTH = 0x1
2450 TIOCINQ = 0x541b 2450 S_IXUSR = 0x40
2451 TIOCLINUX = 0x541c 2451 TAB0 = 0x0
2452 TIOCMBIC = 0x5417 2452 TAB1 = 0x800
2453 TIOCMBIS = 0x5416 2453 TAB2 = 0x1000
2454 TIOCMGET = 0x5415 2454 TAB3 = 0x1800
2455 TIOCMIWAIT = 0x545c 2455 TABDLY = 0x1800
2456 TIOCMSET = 0x5418 2456 TASKSTATS_CMD_ATTR_MAX = 0x4
2457 TIOCM_CAR = 0x40 2457 TASKSTATS_CMD_MAX = 0x2
2458 TIOCM_CD = 0x40 2458 TASKSTATS_GENL_NAME = "TASKSTATS"
2459 TIOCM_CTS = 0x20 2459 TASKSTATS_GENL_VERSION = 0x1
2460 TIOCM_DSR = 0x100 2460 TASKSTATS_TYPE_MAX = 0x6
2461 TIOCM_DTR = 0x2 2461 TASKSTATS_VERSION = 0x9
2462 TIOCM_LE = 0x1 2462 TCFLSH = 0x540b
2463 TIOCM_RI = 0x80 2463 TCGETA = 0x5405
2464 TIOCM_RNG = 0x80 2464 TCGETS = 0x5401
2465 TIOCM_RTS = 0x4 2465 TCGETS2 = 0x802c542a
2466 TIOCM_SR = 0x10 2466 TCGETX = 0x5432
2467 TIOCM_ST = 0x8 2467 TCIFLUSH = 0x0
2468 TIOCNOTTY = 0x5422 2468 TCIOFF = 0x2
2469 TIOCNXCL = 0x540d 2469 TCIOFLUSH = 0x2
2470 TIOCOUTQ = 0x5411 2470 TCION = 0x3
2471 TIOCPKT = 0x5420 2471 TCOFLUSH = 0x1
2472 TIOCPKT_DATA = 0x0 2472 TCOOFF = 0x0
2473 TIOCPKT_DOSTOP = 0x20 2473 TCOON = 0x1
2474 TIOCPKT_FLUSHREAD = 0x1 2474 TCP_BPF_IW = 0x3e9
2475 TIOCPKT_FLUSHWRITE = 0x2 2475 TCP_BPF_SNDCWND_CLAMP = 0x3ea
2476 TIOCPKT_IOCTL = 0x40 2476 TCP_CC_INFO = 0x1a
2477 TIOCPKT_NOSTOP = 0x10 2477 TCP_CM_INQ = 0x24
2478 TIOCPKT_START = 0x8 2478 TCP_CONGESTION = 0xd
2479 TIOCPKT_STOP = 0x4 2479 TCP_COOKIE_IN_ALWAYS = 0x1
2480 TIOCSBRK = 0x5427 2480 TCP_COOKIE_MAX = 0x10
2481 TIOCSCTTY = 0x540e 2481 TCP_COOKIE_MIN = 0x8
2482 TIOCSERCONFIG = 0x5453 2482 TCP_COOKIE_OUT_NEVER = 0x2
2483 TIOCSERGETLSR = 0x5459 2483 TCP_COOKIE_PAIR_SIZE = 0x20
2484 TIOCSERGETMULTI = 0x545a 2484 TCP_COOKIE_TRANSACTIONS = 0xf
2485 TIOCSERGSTRUCT = 0x5458 2485 TCP_CORK = 0x3
2486 TIOCSERGWILD = 0x5454 2486 TCP_DEFER_ACCEPT = 0x9
2487 TIOCSERSETMULTI = 0x545b 2487 TCP_FASTOPEN = 0x17
2488 TIOCSERSWILD = 0x5455 2488 TCP_FASTOPEN_CONNECT = 0x1e
2489 TIOCSER_TEMT = 0x1 2489 TCP_FASTOPEN_KEY = 0x21
2490 TIOCSETD = 0x5423 2490 TCP_FASTOPEN_NO_COOKIE = 0x22
2491 TIOCSIG = 0x40045436 2491 TCP_INFO = 0xb
2492 TIOCSISO7816 = 0xc0285443 2492 TCP_INQ = 0x24
2493 TIOCSLCKTRMIOS = 0x5457 2493 TCP_KEEPCNT = 0x6
2494 TIOCSPGRP = 0x5410 2494 TCP_KEEPIDLE = 0x4
2495 TIOCSPTLCK = 0x40045431 2495 TCP_KEEPINTVL = 0x5
2496 TIOCSRS485 = 0x542f 2496 TCP_LINGER2 = 0x8
2497 TIOCSSERIAL = 0x541f 2497 TCP_MAXSEG = 0x2
2498 TIOCSSOFTCAR = 0x541a 2498 TCP_MAXWIN = 0xffff
2499 TIOCSTI = 0x5412 2499 TCP_MAX_WINSHIFT = 0xe
2500 TIOCSWINSZ = 0x5414 2500 TCP_MD5SIG = 0xe
2501 TIOCVHANGUP = 0x5437 2501 TCP_MD5SIG_EXT = 0x20
2502 TMPFS_MAGIC = 0x1021994 2502 TCP_MD5SIG_FLAG_PREFIX = 0x1
2503 TOSTOP = 0x100 2503 TCP_MD5SIG_MAXKEYLEN = 0x50
2504 TPACKET_ALIGNMENT = 0x10 2504 TCP_MSS = 0x200
2505 TPACKET_HDRLEN = 0x34 2505 TCP_MSS_DEFAULT = 0x218
2506 TP_STATUS_AVAILABLE = 0x0 2506 TCP_MSS_DESIRED = 0x4c4
2507 TP_STATUS_BLK_TMO = 0x20 2507 TCP_NODELAY = 0x1
2508 TP_STATUS_COPY = 0x2 2508 TCP_NOTSENT_LOWAT = 0x19
2509 TP_STATUS_CSUMNOTREADY = 0x8 2509 TCP_QUEUE_SEQ = 0x15
2510 TP_STATUS_CSUM_VALID = 0x80 2510 TCP_QUICKACK = 0xc
2511 TP_STATUS_KERNEL = 0x0 2511 TCP_REPAIR = 0x13
2512 TP_STATUS_LOSING = 0x4 2512 TCP_REPAIR_OFF = 0x0
2513 TP_STATUS_SENDING = 0x2 2513 TCP_REPAIR_OFF_NO_WP = -0x1
2514 TP_STATUS_SEND_REQUEST = 0x1 2514 TCP_REPAIR_ON = 0x1
2515 TP_STATUS_TS_RAW_HARDWARE = -0x80000000 2515 TCP_REPAIR_OPTIONS = 0x16
2516 TP_STATUS_TS_SOFTWARE = 0x20000000 2516 TCP_REPAIR_QUEUE = 0x14
2517 TP_STATUS_TS_SYS_HARDWARE = 0x40000000 2517 TCP_REPAIR_WINDOW = 0x1d
2518 TP_STATUS_USER = 0x1 2518 TCP_SAVED_SYN = 0x1c
2519 TP_STATUS_VLAN_TPID_VALID = 0x40 2519 TCP_SAVE_SYN = 0x1b
2520 TP_STATUS_VLAN_VALID = 0x10 2520 TCP_SYNCNT = 0x7
2521 TP_STATUS_WRONG_FORMAT = 0x4 2521 TCP_S_DATA_IN = 0x4
2522 TRACEFS_MAGIC = 0x74726163 2522 TCP_S_DATA_OUT = 0x8
2523 TS_COMM_LEN = 0x20 2523 TCP_THIN_DUPACK = 0x11
2524 TUNATTACHFILTER = 0x401054d5 2524 TCP_THIN_LINEAR_TIMEOUTS = 0x10
2525 TUNDETACHFILTER = 0x401054d6 2525 TCP_TIMESTAMP = 0x18
2526 TUNGETDEVNETNS = 0x54e3 2526 TCP_TX_DELAY = 0x25
2527 TUNGETFEATURES = 0x800454cf 2527 TCP_ULP = 0x1f
2528 TUNGETFILTER = 0x801054db 2528 TCP_USER_TIMEOUT = 0x12
2529 TUNGETIFF = 0x800454d2 2529 TCP_WINDOW_CLAMP = 0xa
2530 TUNGETSNDBUF = 0x800454d3 2530 TCP_ZEROCOPY_RECEIVE = 0x23
2531 TUNGETVNETBE = 0x800454df 2531 TCSAFLUSH = 0x2
2532 TUNGETVNETHDRSZ = 0x800454d7 2532 TCSBRK = 0x5409
2533 TUNGETVNETLE = 0x800454dd 2533 TCSBRKP = 0x5425
2534 TUNSETCARRIER = 0x400454e2 2534 TCSETA = 0x5406
2535 TUNSETDEBUG = 0x400454c9 2535 TCSETAF = 0x5408
2536 TUNSETFILTEREBPF = 0x800454e1 2536 TCSETAW = 0x5407
2537 TUNSETGROUP = 0x400454ce 2537 TCSETS = 0x5402
2538 TUNSETIFF = 0x400454ca 2538 TCSETS2 = 0x402c542b
2539 TUNSETIFINDEX = 0x400454da 2539 TCSETSF = 0x5404
2540 TUNSETLINK = 0x400454cd 2540 TCSETSF2 = 0x402c542d
2541 TUNSETNOCSUM = 0x400454c8 2541 TCSETSW = 0x5403
2542 TUNSETOFFLOAD = 0x400454d0 2542 TCSETSW2 = 0x402c542c
2543 TUNSETOWNER = 0x400454cc 2543 TCSETX = 0x5433
2544 TUNSETPERSIST = 0x400454cb 2544 TCSETXF = 0x5434
2545 TUNSETQUEUE = 0x400454d9 2545 TCSETXW = 0x5435
2546 TUNSETSNDBUF = 0x400454d4 2546 TCXONC = 0x540a
2547 TUNSETSTEERINGEBPF = 0x800454e0 2547 TIMER_ABSTIME = 0x1
2548 TUNSETTXFILTER = 0x400454d1 2548 TIOCCBRK = 0x5428
2549 TUNSETVNETBE = 0x400454de 2549 TIOCCONS = 0x541d
2550 TUNSETVNETHDRSZ = 0x400454d8 2550 TIOCEXCL = 0x540c
2551 TUNSETVNETLE = 0x400454dc 2551 TIOCGDEV = 0x80045432
2552 UBI_IOCATT = 0x40186f40 2552 TIOCGETD = 0x5424
2553 UBI_IOCDET = 0x40046f41 2553 TIOCGEXCL = 0x80045440
2554 UBI_IOCEBCH = 0x40044f02 2554 TIOCGICOUNT = 0x545d
2555 UBI_IOCEBER = 0x40044f01 2555 TIOCGISO7816 = 0x80285442
2556 UBI_IOCEBISMAP = 0x80044f05 2556 TIOCGLCKTRMIOS = 0x5456
2557 UBI_IOCEBMAP = 0x40084f03 2557 TIOCGPGRP = 0x540f
2558 UBI_IOCEBUNMAP = 0x40044f04 2558 TIOCGPKT = 0x80045438
2559 UBI_IOCMKVOL = 0x40986f00 2559 TIOCGPTLCK = 0x80045439
2560 UBI_IOCRMVOL = 0x40046f01 2560 TIOCGPTN = 0x80045430
2561 UBI_IOCRNVOL = 0x51106f03 2561 TIOCGPTPEER = 0x5441
2562 UBI_IOCRPEB = 0x40046f04 2562 TIOCGRS485 = 0x542e
2563 UBI_IOCRSVOL = 0x400c6f02 2563 TIOCGSERIAL = 0x541e
2564 UBI_IOCSETVOLPROP = 0x40104f06 2564 TIOCGSID = 0x5429
2565 UBI_IOCSPEB = 0x40046f05 2565 TIOCGSOFTCAR = 0x5419
2566 UBI_IOCVOLCRBLK = 0x40804f07 2566 TIOCGWINSZ = 0x5413
2567 UBI_IOCVOLRMBLK = 0x4f08 2567 TIOCINQ = 0x541b
2568 UBI_IOCVOLUP = 0x40084f00 2568 TIOCLINUX = 0x541c
2569 UDF_SUPER_MAGIC = 0x15013346 2569 TIOCMBIC = 0x5417
2570 UMOUNT_NOFOLLOW = 0x8 2570 TIOCMBIS = 0x5416
2571 USBDEVICE_SUPER_MAGIC = 0x9fa2 2571 TIOCMGET = 0x5415
2572 UTIME_NOW = 0x3fffffff 2572 TIOCMIWAIT = 0x545c
2573 UTIME_OMIT = 0x3ffffffe 2573 TIOCMSET = 0x5418
2574 V9FS_MAGIC = 0x1021997 2574 TIOCM_CAR = 0x40
2575 VDISCARD = 0xd 2575 TIOCM_CD = 0x40
2576 VEOF = 0x4 2576 TIOCM_CTS = 0x20
2577 VEOL = 0xb 2577 TIOCM_DSR = 0x100
2578 VEOL2 = 0x10 2578 TIOCM_DTR = 0x2
2579 VERASE = 0x2 2579 TIOCM_LE = 0x1
2580 VINTR = 0x0 2580 TIOCM_RI = 0x80
2581 VKILL = 0x3 2581 TIOCM_RNG = 0x80
2582 VLNEXT = 0xf 2582 TIOCM_RTS = 0x4
2583 VMADDR_CID_ANY = 0xffffffff 2583 TIOCM_SR = 0x10
2584 VMADDR_CID_HOST = 0x2 2584 TIOCM_ST = 0x8
2585 VMADDR_CID_HYPERVISOR = 0x0 2585 TIOCNOTTY = 0x5422
2586 VMADDR_CID_RESERVED = 0x1 2586 TIOCNXCL = 0x540d
2587 VMADDR_PORT_ANY = 0xffffffff 2587 TIOCOUTQ = 0x5411
2588 VMIN = 0x6 2588 TIOCPKT = 0x5420
2589 VM_SOCKETS_INVALID_VERSION = 0xffffffff 2589 TIOCPKT_DATA = 0x0
2590 VQUIT = 0x1 2590 TIOCPKT_DOSTOP = 0x20
2591 VREPRINT = 0xc 2591 TIOCPKT_FLUSHREAD = 0x1
2592 VSTART = 0x8 2592 TIOCPKT_FLUSHWRITE = 0x2
2593 VSTOP = 0x9 2593 TIOCPKT_IOCTL = 0x40
2594 VSUSP = 0xa 2594 TIOCPKT_NOSTOP = 0x10
2595 VSWTC = 0x7 2595 TIOCPKT_START = 0x8
2596 VT0 = 0x0 2596 TIOCPKT_STOP = 0x4
2597 VT1 = 0x4000 2597 TIOCSBRK = 0x5427
2598 VTDLY = 0x4000 2598 TIOCSCTTY = 0x540e
2599 VTIME = 0x5 2599 TIOCSERCONFIG = 0x5453
2600 VWERASE = 0xe 2600 TIOCSERGETLSR = 0x5459
2601 WALL = 0x40000000 2601 TIOCSERGETMULTI = 0x545a
2602 WCLONE = 0x80000000 2602 TIOCSERGSTRUCT = 0x5458
2603 WCONTINUED = 0x8 2603 TIOCSERGWILD = 0x5454
2604 WDIOC_GETBOOTSTATUS = 0x80045702 2604 TIOCSERSETMULTI = 0x545b
2605 WDIOC_GETPRETIMEOUT = 0x80045709 2605 TIOCSERSWILD = 0x5455
2606 WDIOC_GETSTATUS = 0x80045701 2606 TIOCSER_TEMT = 0x1
2607 WDIOC_GETSUPPORT = 0x80285700 2607 TIOCSETD = 0x5423
2608 WDIOC_GETTEMP = 0x80045703 2608 TIOCSIG = 0x40045436
2609 WDIOC_GETTIMELEFT = 0x8004570a 2609 TIOCSISO7816 = 0xc0285443
2610 WDIOC_GETTIMEOUT = 0x80045707 2610 TIOCSLCKTRMIOS = 0x5457
2611 WDIOC_KEEPALIVE = 0x80045705 2611 TIOCSPGRP = 0x5410
2612 WDIOC_SETOPTIONS = 0x80045704 2612 TIOCSPTLCK = 0x40045431
2613 WDIOC_SETPRETIMEOUT = 0xc0045708 2613 TIOCSRS485 = 0x542f
2614 WDIOC_SETTIMEOUT = 0xc0045706 2614 TIOCSSERIAL = 0x541f
2615 WEXITED = 0x4 2615 TIOCSSOFTCAR = 0x541a
2616 WIN_ACKMEDIACHANGE = 0xdb 2616 TIOCSTI = 0x5412
2617 WIN_CHECKPOWERMODE1 = 0xe5 2617 TIOCSWINSZ = 0x5414
2618 WIN_CHECKPOWERMODE2 = 0x98 2618 TIOCVHANGUP = 0x5437
2619 WIN_DEVICE_RESET = 0x8 2619 TIPC_ADDR_ID = 0x3
2620 WIN_DIAGNOSE = 0x90 2620 TIPC_ADDR_MCAST = 0x1
2621 WIN_DOORLOCK = 0xde 2621 TIPC_ADDR_NAME = 0x2
2622 WIN_DOORUNLOCK = 0xdf 2622 TIPC_ADDR_NAMESEQ = 0x1
2623 WIN_DOWNLOAD_MICROCODE = 0x92 2623 TIPC_AEAD_ALG_NAME = 0x20
2624 WIN_FLUSH_CACHE = 0xe7 2624 TIPC_AEAD_KEYLEN_MAX = 0x24
2625 WIN_FLUSH_CACHE_EXT = 0xea 2625 TIPC_AEAD_KEYLEN_MIN = 0x14
2626 WIN_FORMAT = 0x50 2626 TIPC_AEAD_KEY_SIZE_MAX = 0x48
2627 WIN_GETMEDIASTATUS = 0xda 2627 TIPC_CFG_SRV = 0x0
2628 WIN_IDENTIFY = 0xec 2628 TIPC_CLUSTER_BITS = 0xc
2629 WIN_IDENTIFY_DMA = 0xee 2629 TIPC_CLUSTER_MASK = 0xfff000
2630 WIN_IDLEIMMEDIATE = 0xe1 2630 TIPC_CLUSTER_OFFSET = 0xc
2631 WIN_INIT = 0x60 2631 TIPC_CLUSTER_SIZE = 0xfff
2632 WIN_MEDIAEJECT = 0xed 2632 TIPC_CONN_SHUTDOWN = 0x5
2633 WIN_MULTREAD = 0xc4 2633 TIPC_CONN_TIMEOUT = 0x82
2634 WIN_MULTREAD_EXT = 0x29 2634 TIPC_CRITICAL_IMPORTANCE = 0x3
2635 WIN_MULTWRITE = 0xc5 2635 TIPC_DESTNAME = 0x3
2636 WIN_MULTWRITE_EXT = 0x39 2636 TIPC_DEST_DROPPABLE = 0x81
2637 WIN_NOP = 0x0 2637 TIPC_ERRINFO = 0x1
2638 WIN_PACKETCMD = 0xa0 2638 TIPC_ERR_NO_NAME = 0x1
2639 WIN_PIDENTIFY = 0xa1 2639 TIPC_ERR_NO_NODE = 0x3
2640 WIN_POSTBOOT = 0xdc 2640 TIPC_ERR_NO_PORT = 0x2
2641 WIN_PREBOOT = 0xdd 2641 TIPC_ERR_OVERLOAD = 0x4
2642 WIN_QUEUED_SERVICE = 0xa2 2642 TIPC_GROUP_JOIN = 0x87
2643 WIN_READ = 0x20 2643 TIPC_GROUP_LEAVE = 0x88
2644 WIN_READDMA = 0xc8 2644 TIPC_GROUP_LOOPBACK = 0x1
2645 WIN_READDMA_EXT = 0x25 2645 TIPC_GROUP_MEMBER_EVTS = 0x2
2646 WIN_READDMA_ONCE = 0xc9 2646 TIPC_HIGH_IMPORTANCE = 0x2
2647 WIN_READDMA_QUEUED = 0xc7 2647 TIPC_IMPORTANCE = 0x7f
2648 WIN_READDMA_QUEUED_EXT = 0x26 2648 TIPC_LINK_STATE = 0x2
2649 WIN_READ_BUFFER = 0xe4 2649 TIPC_LOW_IMPORTANCE = 0x0
2650 WIN_READ_EXT = 0x24 2650 TIPC_MAX_BEARER_NAME = 0x20
2651 WIN_READ_LONG = 0x22 2651 TIPC_MAX_IF_NAME = 0x10
2652 WIN_READ_LONG_ONCE = 0x23 2652 TIPC_MAX_LINK_NAME = 0x44
2653 WIN_READ_NATIVE_MAX = 0xf8 2653 TIPC_MAX_MEDIA_NAME = 0x10
2654 WIN_READ_NATIVE_MAX_EXT = 0x27 2654 TIPC_MAX_USER_MSG_SIZE = 0x101d0
2655 WIN_READ_ONCE = 0x21 2655 TIPC_MCAST_BROADCAST = 0x85
2656 WIN_RECAL = 0x10 2656 TIPC_MCAST_REPLICAST = 0x86
2657 WIN_RESTORE = 0x10 2657 TIPC_MEDIUM_IMPORTANCE = 0x1
2658 WIN_SECURITY_DISABLE = 0xf6 2658 TIPC_NODEID_LEN = 0x10
2659 WIN_SECURITY_ERASE_PREPARE = 0xf3 2659 TIPC_NODELAY = 0x8a
2660 WIN_SECURITY_ERASE_UNIT = 0xf4 2660 TIPC_NODE_BITS = 0xc
2661 WIN_SECURITY_FREEZE_LOCK = 0xf5 2661 TIPC_NODE_MASK = 0xfff
2662 WIN_SECURITY_SET_PASS = 0xf1 2662 TIPC_NODE_OFFSET = 0x0
2663 WIN_SECURITY_UNLOCK = 0xf2 2663 TIPC_NODE_RECVQ_DEPTH = 0x83
2664 WIN_SEEK = 0x70 2664 TIPC_NODE_SIZE = 0xfff
2665 WIN_SETFEATURES = 0xef 2665 TIPC_NODE_STATE = 0x0
2666 WIN_SETIDLE1 = 0xe3 2666 TIPC_OK = 0x0
2667 WIN_SETIDLE2 = 0x97 2667 TIPC_PUBLISHED = 0x1
2668 WIN_SETMULT = 0xc6 2668 TIPC_RESERVED_TYPES = 0x40
2669 WIN_SET_MAX = 0xf9 2669 TIPC_RETDATA = 0x2
2670 WIN_SET_MAX_EXT = 0x37 2670 TIPC_SERVICE_ADDR = 0x2
2671 WIN_SLEEPNOW1 = 0xe6 2671 TIPC_SERVICE_RANGE = 0x1
2672 WIN_SLEEPNOW2 = 0x99 2672 TIPC_SOCKET_ADDR = 0x3
2673 WIN_SMART = 0xb0 2673 TIPC_SOCK_RECVQ_DEPTH = 0x84
2674 WIN_SPECIFY = 0x91 2674 TIPC_SOCK_RECVQ_USED = 0x89
2675 WIN_SRST = 0x8 2675 TIPC_SRC_DROPPABLE = 0x80
2676 WIN_STANDBY = 0xe2 2676 TIPC_SUBSCR_TIMEOUT = 0x3
2677 WIN_STANDBY2 = 0x96 2677 TIPC_SUB_CANCEL = 0x4
2678 WIN_STANDBYNOW1 = 0xe0 2678 TIPC_SUB_PORTS = 0x1
2679 WIN_STANDBYNOW2 = 0x94 2679 TIPC_SUB_SERVICE = 0x2
2680 WIN_VERIFY = 0x40 2680 TIPC_TOP_SRV = 0x1
2681 WIN_VERIFY_EXT = 0x42 2681 TIPC_WAIT_FOREVER = 0xffffffff
2682 WIN_VERIFY_ONCE = 0x41 2682 TIPC_WITHDRAWN = 0x2
2683 WIN_WRITE = 0x30 2683 TIPC_ZONE_BITS = 0x8
2684 WIN_WRITEDMA = 0xca 2684 TIPC_ZONE_CLUSTER_MASK = 0xfffff000
2685 WIN_WRITEDMA_EXT = 0x35 2685 TIPC_ZONE_MASK = 0xff000000
2686 WIN_WRITEDMA_ONCE = 0xcb 2686 TIPC_ZONE_OFFSET = 0x18
2687 WIN_WRITEDMA_QUEUED = 0xcc 2687 TIPC_ZONE_SCOPE = 0x1
2688 WIN_WRITEDMA_QUEUED_EXT = 0x36 2688 TIPC_ZONE_SIZE = 0xff
2689 WIN_WRITE_BUFFER = 0xe8 2689 TMPFS_MAGIC = 0x1021994
2690 WIN_WRITE_EXT = 0x34 2690 TOSTOP = 0x100
2691 WIN_WRITE_LONG = 0x32 2691 TPACKET_ALIGNMENT = 0x10
2692 WIN_WRITE_LONG_ONCE = 0x33 2692 TPACKET_HDRLEN = 0x34
2693 WIN_WRITE_ONCE = 0x31 2693 TP_STATUS_AVAILABLE = 0x0
2694 WIN_WRITE_SAME = 0xe9 2694 TP_STATUS_BLK_TMO = 0x20
2695 WIN_WRITE_VERIFY = 0x3c 2695 TP_STATUS_COPY = 0x2
2696 WNOHANG = 0x1 2696 TP_STATUS_CSUMNOTREADY = 0x8
2697 WNOTHREAD = 0x20000000 2697 TP_STATUS_CSUM_VALID = 0x80
2698 WNOWAIT = 0x1000000 2698 TP_STATUS_KERNEL = 0x0
2699 WORDSIZE = 0x40 2699 TP_STATUS_LOSING = 0x4
2700 WSTOPPED = 0x2 2700 TP_STATUS_SENDING = 0x2
2701 WUNTRACED = 0x2 2701 TP_STATUS_SEND_REQUEST = 0x1
2702 XATTR_CREATE = 0x1 2702 TP_STATUS_TS_RAW_HARDWARE = 0x80000000
2703 XATTR_REPLACE = 0x2 2703 TP_STATUS_TS_SOFTWARE = 0x20000000
2704 XCASE = 0x4 2704 TP_STATUS_TS_SYS_HARDWARE = 0x40000000
2705 XDP_COPY = 0x2 2705 TP_STATUS_USER = 0x1
2706 XDP_FLAGS_DRV_MODE = 0x4 2706 TP_STATUS_VLAN_TPID_VALID = 0x40
2707 XDP_FLAGS_HW_MODE = 0x8 2707 TP_STATUS_VLAN_VALID = 0x10
2708 XDP_FLAGS_MASK = 0xf 2708 TP_STATUS_WRONG_FORMAT = 0x4
2709 XDP_FLAGS_MODES = 0xe 2709 TRACEFS_MAGIC = 0x74726163
2710 XDP_FLAGS_SKB_MODE = 0x2 2710 TS_COMM_LEN = 0x20
2711 XDP_FLAGS_UPDATE_IF_NOEXIST = 0x1 2711 TUNATTACHFILTER = 0x401054d5
2712 XDP_MMAP_OFFSETS = 0x1 2712 TUNDETACHFILTER = 0x401054d6
2713 XDP_PACKET_HEADROOM = 0x100 2713 TUNGETDEVNETNS = 0x54e3
2714 XDP_PGOFF_RX_RING = 0x0 2714 TUNGETFEATURES = 0x800454cf
2715 XDP_PGOFF_TX_RING = 0x80000000 2715 TUNGETFILTER = 0x801054db
2716 XDP_RX_RING = 0x2 2716 TUNGETIFF = 0x800454d2
2717 XDP_SHARED_UMEM = 0x1 2717 TUNGETSNDBUF = 0x800454d3
2718 XDP_STATISTICS = 0x7 2718 TUNGETVNETBE = 0x800454df
2719 XDP_TX_RING = 0x3 2719 TUNGETVNETHDRSZ = 0x800454d7
2720 XDP_UMEM_COMPLETION_RING = 0x6 2720 TUNGETVNETLE = 0x800454dd
2721 XDP_UMEM_FILL_RING = 0x5 2721 TUNSETCARRIER = 0x400454e2
2722 XDP_UMEM_PGOFF_COMPLETION_RING = 0x180000000 2722 TUNSETDEBUG = 0x400454c9
2723 XDP_UMEM_PGOFF_FILL_RING = 0x100000000 2723 TUNSETFILTEREBPF = 0x800454e1
2724 XDP_UMEM_REG = 0x4 2724 TUNSETGROUP = 0x400454ce
2725 XDP_ZEROCOPY = 0x4 2725 TUNSETIFF = 0x400454ca
2726 XENFS_SUPER_MAGIC = 0xabba1974 2726 TUNSETIFINDEX = 0x400454da
2727 XFS_SUPER_MAGIC = 0x58465342 2727 TUNSETLINK = 0x400454cd
2728 XTABS = 0x1800 2728 TUNSETNOCSUM = 0x400454c8
2729 ZSMALLOC_MAGIC = 0x58295829 2729 TUNSETOFFLOAD = 0x400454d0
2730 TUNSETOWNER = 0x400454cc
2731 TUNSETPERSIST = 0x400454cb
2732 TUNSETQUEUE = 0x400454d9
2733 TUNSETSNDBUF = 0x400454d4
2734 TUNSETSTEERINGEBPF = 0x800454e0
2735 TUNSETTXFILTER = 0x400454d1
2736 TUNSETVNETBE = 0x400454de
2737 TUNSETVNETHDRSZ = 0x400454d8
2738 TUNSETVNETLE = 0x400454dc
2739 UBI_IOCATT = 0x40186f40
2740 UBI_IOCDET = 0x40046f41
2741 UBI_IOCEBCH = 0x40044f02
2742 UBI_IOCEBER = 0x40044f01
2743 UBI_IOCEBISMAP = 0x80044f05
2744 UBI_IOCEBMAP = 0x40084f03
2745 UBI_IOCEBUNMAP = 0x40044f04
2746 UBI_IOCMKVOL = 0x40986f00
2747 UBI_IOCRMVOL = 0x40046f01
2748 UBI_IOCRNVOL = 0x51106f03
2749 UBI_IOCRPEB = 0x40046f04
2750 UBI_IOCRSVOL = 0x400c6f02
2751 UBI_IOCSETVOLPROP = 0x40104f06
2752 UBI_IOCSPEB = 0x40046f05
2753 UBI_IOCVOLCRBLK = 0x40804f07
2754 UBI_IOCVOLRMBLK = 0x4f08
2755 UBI_IOCVOLUP = 0x40084f00
2756 UDF_SUPER_MAGIC = 0x15013346
2757 UMOUNT_NOFOLLOW = 0x8
2758 USBDEVICE_SUPER_MAGIC = 0x9fa2
2759 UTIME_NOW = 0x3fffffff
2760 UTIME_OMIT = 0x3ffffffe
2761 V9FS_MAGIC = 0x1021997
2762 VDISCARD = 0xd
2763 VEOF = 0x4
2764 VEOL = 0xb
2765 VEOL2 = 0x10
2766 VERASE = 0x2
2767 VINTR = 0x0
2768 VKILL = 0x3
2769 VLNEXT = 0xf
2770 VMADDR_CID_ANY = 0xffffffff
2771 VMADDR_CID_HOST = 0x2
2772 VMADDR_CID_HYPERVISOR = 0x0
2773 VMADDR_CID_RESERVED = 0x1
2774 VMADDR_PORT_ANY = 0xffffffff
2775 VMIN = 0x6
2776 VM_SOCKETS_INVALID_VERSION = 0xffffffff
2777 VQUIT = 0x1
2778 VREPRINT = 0xc
2779 VSTART = 0x8
2780 VSTOP = 0x9
2781 VSUSP = 0xa
2782 VSWTC = 0x7
2783 VT0 = 0x0
2784 VT1 = 0x4000
2785 VTDLY = 0x4000
2786 VTIME = 0x5
2787 VWERASE = 0xe
2788 WALL = 0x40000000
2789 WCLONE = 0x80000000
2790 WCONTINUED = 0x8
2791 WDIOC_GETBOOTSTATUS = 0x80045702
2792 WDIOC_GETPRETIMEOUT = 0x80045709
2793 WDIOC_GETSTATUS = 0x80045701
2794 WDIOC_GETSUPPORT = 0x80285700
2795 WDIOC_GETTEMP = 0x80045703
2796 WDIOC_GETTIMELEFT = 0x8004570a
2797 WDIOC_GETTIMEOUT = 0x80045707
2798 WDIOC_KEEPALIVE = 0x80045705
2799 WDIOC_SETOPTIONS = 0x80045704
2800 WDIOC_SETPRETIMEOUT = 0xc0045708
2801 WDIOC_SETTIMEOUT = 0xc0045706
2802 WEXITED = 0x4
2803 WIN_ACKMEDIACHANGE = 0xdb
2804 WIN_CHECKPOWERMODE1 = 0xe5
2805 WIN_CHECKPOWERMODE2 = 0x98
2806 WIN_DEVICE_RESET = 0x8
2807 WIN_DIAGNOSE = 0x90
2808 WIN_DOORLOCK = 0xde
2809 WIN_DOORUNLOCK = 0xdf
2810 WIN_DOWNLOAD_MICROCODE = 0x92
2811 WIN_FLUSH_CACHE = 0xe7
2812 WIN_FLUSH_CACHE_EXT = 0xea
2813 WIN_FORMAT = 0x50
2814 WIN_GETMEDIASTATUS = 0xda
2815 WIN_IDENTIFY = 0xec
2816 WIN_IDENTIFY_DMA = 0xee
2817 WIN_IDLEIMMEDIATE = 0xe1
2818 WIN_INIT = 0x60
2819 WIN_MEDIAEJECT = 0xed
2820 WIN_MULTREAD = 0xc4
2821 WIN_MULTREAD_EXT = 0x29
2822 WIN_MULTWRITE = 0xc5
2823 WIN_MULTWRITE_EXT = 0x39
2824 WIN_NOP = 0x0
2825 WIN_PACKETCMD = 0xa0
2826 WIN_PIDENTIFY = 0xa1
2827 WIN_POSTBOOT = 0xdc
2828 WIN_PREBOOT = 0xdd
2829 WIN_QUEUED_SERVICE = 0xa2
2830 WIN_READ = 0x20
2831 WIN_READDMA = 0xc8
2832 WIN_READDMA_EXT = 0x25
2833 WIN_READDMA_ONCE = 0xc9
2834 WIN_READDMA_QUEUED = 0xc7
2835 WIN_READDMA_QUEUED_EXT = 0x26
2836 WIN_READ_BUFFER = 0xe4
2837 WIN_READ_EXT = 0x24
2838 WIN_READ_LONG = 0x22
2839 WIN_READ_LONG_ONCE = 0x23
2840 WIN_READ_NATIVE_MAX = 0xf8
2841 WIN_READ_NATIVE_MAX_EXT = 0x27
2842 WIN_READ_ONCE = 0x21
2843 WIN_RECAL = 0x10
2844 WIN_RESTORE = 0x10
2845 WIN_SECURITY_DISABLE = 0xf6
2846 WIN_SECURITY_ERASE_PREPARE = 0xf3
2847 WIN_SECURITY_ERASE_UNIT = 0xf4
2848 WIN_SECURITY_FREEZE_LOCK = 0xf5
2849 WIN_SECURITY_SET_PASS = 0xf1
2850 WIN_SECURITY_UNLOCK = 0xf2
2851 WIN_SEEK = 0x70
2852 WIN_SETFEATURES = 0xef
2853 WIN_SETIDLE1 = 0xe3
2854 WIN_SETIDLE2 = 0x97
2855 WIN_SETMULT = 0xc6
2856 WIN_SET_MAX = 0xf9
2857 WIN_SET_MAX_EXT = 0x37
2858 WIN_SLEEPNOW1 = 0xe6
2859 WIN_SLEEPNOW2 = 0x99
2860 WIN_SMART = 0xb0
2861 WIN_SPECIFY = 0x91
2862 WIN_SRST = 0x8
2863 WIN_STANDBY = 0xe2
2864 WIN_STANDBY2 = 0x96
2865 WIN_STANDBYNOW1 = 0xe0
2866 WIN_STANDBYNOW2 = 0x94
2867 WIN_VERIFY = 0x40
2868 WIN_VERIFY_EXT = 0x42
2869 WIN_VERIFY_ONCE = 0x41
2870 WIN_WRITE = 0x30
2871 WIN_WRITEDMA = 0xca
2872 WIN_WRITEDMA_EXT = 0x35
2873 WIN_WRITEDMA_ONCE = 0xcb
2874 WIN_WRITEDMA_QUEUED = 0xcc
2875 WIN_WRITEDMA_QUEUED_EXT = 0x36
2876 WIN_WRITE_BUFFER = 0xe8
2877 WIN_WRITE_EXT = 0x34
2878 WIN_WRITE_LONG = 0x32
2879 WIN_WRITE_LONG_ONCE = 0x33
2880 WIN_WRITE_ONCE = 0x31
2881 WIN_WRITE_SAME = 0xe9
2882 WIN_WRITE_VERIFY = 0x3c
2883 WNOHANG = 0x1
2884 WNOTHREAD = 0x20000000
2885 WNOWAIT = 0x1000000
2886 WORDSIZE = 0x40
2887 WSTOPPED = 0x2
2888 WUNTRACED = 0x2
2889 XATTR_CREATE = 0x1
2890 XATTR_REPLACE = 0x2
2891 XCASE = 0x4
2892 XDP_COPY = 0x2
2893 XDP_FLAGS_DRV_MODE = 0x4
2894 XDP_FLAGS_HW_MODE = 0x8
2895 XDP_FLAGS_MASK = 0xf
2896 XDP_FLAGS_MODES = 0xe
2897 XDP_FLAGS_SKB_MODE = 0x2
2898 XDP_FLAGS_UPDATE_IF_NOEXIST = 0x1
2899 XDP_MMAP_OFFSETS = 0x1
2900 XDP_OPTIONS = 0x8
2901 XDP_OPTIONS_ZEROCOPY = 0x1
2902 XDP_PACKET_HEADROOM = 0x100
2903 XDP_PGOFF_RX_RING = 0x0
2904 XDP_PGOFF_TX_RING = 0x80000000
2905 XDP_RING_NEED_WAKEUP = 0x1
2906 XDP_RX_RING = 0x2
2907 XDP_SHARED_UMEM = 0x1
2908 XDP_STATISTICS = 0x7
2909 XDP_TX_RING = 0x3
2910 XDP_UMEM_COMPLETION_RING = 0x6
2911 XDP_UMEM_FILL_RING = 0x5
2912 XDP_UMEM_PGOFF_COMPLETION_RING = 0x180000000
2913 XDP_UMEM_PGOFF_FILL_RING = 0x100000000
2914 XDP_UMEM_REG = 0x4
2915 XDP_UMEM_UNALIGNED_CHUNK_FLAG = 0x1
2916 XDP_USE_NEED_WAKEUP = 0x8
2917 XDP_ZEROCOPY = 0x4
2918 XENFS_SUPER_MAGIC = 0xabba1974
2919 XFS_SUPER_MAGIC = 0x58465342
2920 XTABS = 0x1800
2921 Z3FOLD_MAGIC = 0x33
2922 ZSMALLOC_MAGIC = 0x58295829
2730) 2923)
2731 2924
2732// Errors 2925// Errors
diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go
index b78e49f..084d55b 100644
--- a/vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go
+++ b/vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go
@@ -11,2712 +11,2906 @@ package unix
11import "syscall" 11import "syscall"
12 12
13const ( 13const (
14 AAFS_MAGIC = 0x5a3c69f0 14 AAFS_MAGIC = 0x5a3c69f0
15 ADFS_SUPER_MAGIC = 0xadf5 15 ADFS_SUPER_MAGIC = 0xadf5
16 AFFS_SUPER_MAGIC = 0xadff 16 AFFS_SUPER_MAGIC = 0xadff
17 AFS_FS_MAGIC = 0x6b414653 17 AFS_FS_MAGIC = 0x6b414653
18 AFS_SUPER_MAGIC = 0x5346414f 18 AFS_SUPER_MAGIC = 0x5346414f
19 AF_ALG = 0x26 19 AF_ALG = 0x26
20 AF_APPLETALK = 0x5 20 AF_APPLETALK = 0x5
21 AF_ASH = 0x12 21 AF_ASH = 0x12
22 AF_ATMPVC = 0x8 22 AF_ATMPVC = 0x8
23 AF_ATMSVC = 0x14 23 AF_ATMSVC = 0x14
24 AF_AX25 = 0x3 24 AF_AX25 = 0x3
25 AF_BLUETOOTH = 0x1f 25 AF_BLUETOOTH = 0x1f
26 AF_BRIDGE = 0x7 26 AF_BRIDGE = 0x7
27 AF_CAIF = 0x25 27 AF_CAIF = 0x25
28 AF_CAN = 0x1d 28 AF_CAN = 0x1d
29 AF_DECnet = 0xc 29 AF_DECnet = 0xc
30 AF_ECONET = 0x13 30 AF_ECONET = 0x13
31 AF_FILE = 0x1 31 AF_FILE = 0x1
32 AF_IB = 0x1b 32 AF_IB = 0x1b
33 AF_IEEE802154 = 0x24 33 AF_IEEE802154 = 0x24
34 AF_INET = 0x2 34 AF_INET = 0x2
35 AF_INET6 = 0xa 35 AF_INET6 = 0xa
36 AF_IPX = 0x4 36 AF_IPX = 0x4
37 AF_IRDA = 0x17 37 AF_IRDA = 0x17
38 AF_ISDN = 0x22 38 AF_ISDN = 0x22
39 AF_IUCV = 0x20 39 AF_IUCV = 0x20
40 AF_KCM = 0x29 40 AF_KCM = 0x29
41 AF_KEY = 0xf 41 AF_KEY = 0xf
42 AF_LLC = 0x1a 42 AF_LLC = 0x1a
43 AF_LOCAL = 0x1 43 AF_LOCAL = 0x1
44 AF_MAX = 0x2d 44 AF_MAX = 0x2d
45 AF_MPLS = 0x1c 45 AF_MPLS = 0x1c
46 AF_NETBEUI = 0xd 46 AF_NETBEUI = 0xd
47 AF_NETLINK = 0x10 47 AF_NETLINK = 0x10
48 AF_NETROM = 0x6 48 AF_NETROM = 0x6
49 AF_NFC = 0x27 49 AF_NFC = 0x27
50 AF_PACKET = 0x11 50 AF_PACKET = 0x11
51 AF_PHONET = 0x23 51 AF_PHONET = 0x23
52 AF_PPPOX = 0x18 52 AF_PPPOX = 0x18
53 AF_QIPCRTR = 0x2a 53 AF_QIPCRTR = 0x2a
54 AF_RDS = 0x15 54 AF_RDS = 0x15
55 AF_ROSE = 0xb 55 AF_ROSE = 0xb
56 AF_ROUTE = 0x10 56 AF_ROUTE = 0x10
57 AF_RXRPC = 0x21 57 AF_RXRPC = 0x21
58 AF_SECURITY = 0xe 58 AF_SECURITY = 0xe
59 AF_SMC = 0x2b 59 AF_SMC = 0x2b
60 AF_SNA = 0x16 60 AF_SNA = 0x16
61 AF_TIPC = 0x1e 61 AF_TIPC = 0x1e
62 AF_UNIX = 0x1 62 AF_UNIX = 0x1
63 AF_UNSPEC = 0x0 63 AF_UNSPEC = 0x0
64 AF_VSOCK = 0x28 64 AF_VSOCK = 0x28
65 AF_WANPIPE = 0x19 65 AF_WANPIPE = 0x19
66 AF_X25 = 0x9 66 AF_X25 = 0x9
67 AF_XDP = 0x2c 67 AF_XDP = 0x2c
68 ALG_OP_DECRYPT = 0x0 68 ALG_OP_DECRYPT = 0x0
69 ALG_OP_ENCRYPT = 0x1 69 ALG_OP_ENCRYPT = 0x1
70 ALG_SET_AEAD_ASSOCLEN = 0x4 70 ALG_SET_AEAD_ASSOCLEN = 0x4
71 ALG_SET_AEAD_AUTHSIZE = 0x5 71 ALG_SET_AEAD_AUTHSIZE = 0x5
72 ALG_SET_IV = 0x2 72 ALG_SET_IV = 0x2
73 ALG_SET_KEY = 0x1 73 ALG_SET_KEY = 0x1
74 ALG_SET_OP = 0x3 74 ALG_SET_OP = 0x3
75 ANON_INODE_FS_MAGIC = 0x9041934 75 ANON_INODE_FS_MAGIC = 0x9041934
76 ARPHRD_6LOWPAN = 0x339 76 ARPHRD_6LOWPAN = 0x339
77 ARPHRD_ADAPT = 0x108 77 ARPHRD_ADAPT = 0x108
78 ARPHRD_APPLETLK = 0x8 78 ARPHRD_APPLETLK = 0x8
79 ARPHRD_ARCNET = 0x7 79 ARPHRD_ARCNET = 0x7
80 ARPHRD_ASH = 0x30d 80 ARPHRD_ASH = 0x30d
81 ARPHRD_ATM = 0x13 81 ARPHRD_ATM = 0x13
82 ARPHRD_AX25 = 0x3 82 ARPHRD_AX25 = 0x3
83 ARPHRD_BIF = 0x307 83 ARPHRD_BIF = 0x307
84 ARPHRD_CAIF = 0x336 84 ARPHRD_CAIF = 0x336
85 ARPHRD_CAN = 0x118 85 ARPHRD_CAN = 0x118
86 ARPHRD_CHAOS = 0x5 86 ARPHRD_CHAOS = 0x5
87 ARPHRD_CISCO = 0x201 87 ARPHRD_CISCO = 0x201
88 ARPHRD_CSLIP = 0x101 88 ARPHRD_CSLIP = 0x101
89 ARPHRD_CSLIP6 = 0x103 89 ARPHRD_CSLIP6 = 0x103
90 ARPHRD_DDCMP = 0x205 90 ARPHRD_DDCMP = 0x205
91 ARPHRD_DLCI = 0xf 91 ARPHRD_DLCI = 0xf
92 ARPHRD_ECONET = 0x30e 92 ARPHRD_ECONET = 0x30e
93 ARPHRD_EETHER = 0x2 93 ARPHRD_EETHER = 0x2
94 ARPHRD_ETHER = 0x1 94 ARPHRD_ETHER = 0x1
95 ARPHRD_EUI64 = 0x1b 95 ARPHRD_EUI64 = 0x1b
96 ARPHRD_FCAL = 0x311 96 ARPHRD_FCAL = 0x311
97 ARPHRD_FCFABRIC = 0x313 97 ARPHRD_FCFABRIC = 0x313
98 ARPHRD_FCPL = 0x312 98 ARPHRD_FCPL = 0x312
99 ARPHRD_FCPP = 0x310 99 ARPHRD_FCPP = 0x310
100 ARPHRD_FDDI = 0x306 100 ARPHRD_FDDI = 0x306
101 ARPHRD_FRAD = 0x302 101 ARPHRD_FRAD = 0x302
102 ARPHRD_HDLC = 0x201 102 ARPHRD_HDLC = 0x201
103 ARPHRD_HIPPI = 0x30c 103 ARPHRD_HIPPI = 0x30c
104 ARPHRD_HWX25 = 0x110 104 ARPHRD_HWX25 = 0x110
105 ARPHRD_IEEE1394 = 0x18 105 ARPHRD_IEEE1394 = 0x18
106 ARPHRD_IEEE802 = 0x6 106 ARPHRD_IEEE802 = 0x6
107 ARPHRD_IEEE80211 = 0x321 107 ARPHRD_IEEE80211 = 0x321
108 ARPHRD_IEEE80211_PRISM = 0x322 108 ARPHRD_IEEE80211_PRISM = 0x322
109 ARPHRD_IEEE80211_RADIOTAP = 0x323 109 ARPHRD_IEEE80211_RADIOTAP = 0x323
110 ARPHRD_IEEE802154 = 0x324 110 ARPHRD_IEEE802154 = 0x324
111 ARPHRD_IEEE802154_MONITOR = 0x325 111 ARPHRD_IEEE802154_MONITOR = 0x325
112 ARPHRD_IEEE802_TR = 0x320 112 ARPHRD_IEEE802_TR = 0x320
113 ARPHRD_INFINIBAND = 0x20 113 ARPHRD_INFINIBAND = 0x20
114 ARPHRD_IP6GRE = 0x337 114 ARPHRD_IP6GRE = 0x337
115 ARPHRD_IPDDP = 0x309 115 ARPHRD_IPDDP = 0x309
116 ARPHRD_IPGRE = 0x30a 116 ARPHRD_IPGRE = 0x30a
117 ARPHRD_IRDA = 0x30f 117 ARPHRD_IRDA = 0x30f
118 ARPHRD_LAPB = 0x204 118 ARPHRD_LAPB = 0x204
119 ARPHRD_LOCALTLK = 0x305 119 ARPHRD_LOCALTLK = 0x305
120 ARPHRD_LOOPBACK = 0x304 120 ARPHRD_LOOPBACK = 0x304
121 ARPHRD_METRICOM = 0x17 121 ARPHRD_METRICOM = 0x17
122 ARPHRD_NETLINK = 0x338 122 ARPHRD_NETLINK = 0x338
123 ARPHRD_NETROM = 0x0 123 ARPHRD_NETROM = 0x0
124 ARPHRD_NONE = 0xfffe 124 ARPHRD_NONE = 0xfffe
125 ARPHRD_PHONET = 0x334 125 ARPHRD_PHONET = 0x334
126 ARPHRD_PHONET_PIPE = 0x335 126 ARPHRD_PHONET_PIPE = 0x335
127 ARPHRD_PIMREG = 0x30b 127 ARPHRD_PIMREG = 0x30b
128 ARPHRD_PPP = 0x200 128 ARPHRD_PPP = 0x200
129 ARPHRD_PRONET = 0x4 129 ARPHRD_PRONET = 0x4
130 ARPHRD_RAWHDLC = 0x206 130 ARPHRD_RAWHDLC = 0x206
131 ARPHRD_RAWIP = 0x207 131 ARPHRD_RAWIP = 0x207
132 ARPHRD_ROSE = 0x10e 132 ARPHRD_ROSE = 0x10e
133 ARPHRD_RSRVD = 0x104 133 ARPHRD_RSRVD = 0x104
134 ARPHRD_SIT = 0x308 134 ARPHRD_SIT = 0x308
135 ARPHRD_SKIP = 0x303 135 ARPHRD_SKIP = 0x303
136 ARPHRD_SLIP = 0x100 136 ARPHRD_SLIP = 0x100
137 ARPHRD_SLIP6 = 0x102 137 ARPHRD_SLIP6 = 0x102
138 ARPHRD_TUNNEL = 0x300 138 ARPHRD_TUNNEL = 0x300
139 ARPHRD_TUNNEL6 = 0x301 139 ARPHRD_TUNNEL6 = 0x301
140 ARPHRD_VOID = 0xffff 140 ARPHRD_VOID = 0xffff
141 ARPHRD_VSOCKMON = 0x33a 141 ARPHRD_VSOCKMON = 0x33a
142 ARPHRD_X25 = 0x10f 142 ARPHRD_X25 = 0x10f
143 ASI_LEON_DFLUSH = 0x11 143 ASI_LEON_DFLUSH = 0x11
144 ASI_LEON_IFLUSH = 0x10 144 ASI_LEON_IFLUSH = 0x10
145 ASI_LEON_MMUFLUSH = 0x18 145 ASI_LEON_MMUFLUSH = 0x18
146 AUTOFS_SUPER_MAGIC = 0x187 146 AUTOFS_SUPER_MAGIC = 0x187
147 B0 = 0x0 147 B0 = 0x0
148 B1000000 = 0x1008 148 B1000000 = 0x1008
149 B110 = 0x3 149 B110 = 0x3
150 B115200 = 0x1002 150 B115200 = 0x1002
151 B1152000 = 0x1009 151 B1152000 = 0x1009
152 B1200 = 0x9 152 B1200 = 0x9
153 B134 = 0x4 153 B134 = 0x4
154 B150 = 0x5 154 B150 = 0x5
155 B1500000 = 0x100a 155 B1500000 = 0x100a
156 B1800 = 0xa 156 B1800 = 0xa
157 B19200 = 0xe 157 B19200 = 0xe
158 B200 = 0x6 158 B200 = 0x6
159 B2000000 = 0x100b 159 B2000000 = 0x100b
160 B230400 = 0x1003 160 B230400 = 0x1003
161 B2400 = 0xb 161 B2400 = 0xb
162 B2500000 = 0x100c 162 B2500000 = 0x100c
163 B300 = 0x7 163 B300 = 0x7
164 B3000000 = 0x100d 164 B3000000 = 0x100d
165 B3500000 = 0x100e 165 B3500000 = 0x100e
166 B38400 = 0xf 166 B38400 = 0xf
167 B4000000 = 0x100f 167 B4000000 = 0x100f
168 B460800 = 0x1004 168 B460800 = 0x1004
169 B4800 = 0xc 169 B4800 = 0xc
170 B50 = 0x1 170 B50 = 0x1
171 B500000 = 0x1005 171 B500000 = 0x1005
172 B57600 = 0x1001 172 B57600 = 0x1001
173 B576000 = 0x1006 173 B576000 = 0x1006
174 B600 = 0x8 174 B600 = 0x8
175 B75 = 0x2 175 B75 = 0x2
176 B921600 = 0x1007 176 B921600 = 0x1007
177 B9600 = 0xd 177 B9600 = 0xd
178 BALLOON_KVM_MAGIC = 0x13661366 178 BALLOON_KVM_MAGIC = 0x13661366
179 BDEVFS_MAGIC = 0x62646576 179 BDEVFS_MAGIC = 0x62646576
180 BINDERFS_SUPER_MAGIC = 0x6c6f6f70 180 BINDERFS_SUPER_MAGIC = 0x6c6f6f70
181 BINFMTFS_MAGIC = 0x42494e4d 181 BINFMTFS_MAGIC = 0x42494e4d
182 BLKBSZGET = 0x40081270 182 BLKBSZGET = 0x40081270
183 BLKBSZSET = 0x80081271 183 BLKBSZSET = 0x80081271
184 BLKFLSBUF = 0x20001261 184 BLKFLSBUF = 0x20001261
185 BLKFRAGET = 0x20001265 185 BLKFRAGET = 0x20001265
186 BLKFRASET = 0x20001264 186 BLKFRASET = 0x20001264
187 BLKGETSIZE = 0x20001260 187 BLKGETSIZE = 0x20001260
188 BLKGETSIZE64 = 0x40081272 188 BLKGETSIZE64 = 0x40081272
189 BLKPBSZGET = 0x2000127b 189 BLKPBSZGET = 0x2000127b
190 BLKRAGET = 0x20001263 190 BLKRAGET = 0x20001263
191 BLKRASET = 0x20001262 191 BLKRASET = 0x20001262
192 BLKROGET = 0x2000125e 192 BLKROGET = 0x2000125e
193 BLKROSET = 0x2000125d 193 BLKROSET = 0x2000125d
194 BLKRRPART = 0x2000125f 194 BLKRRPART = 0x2000125f
195 BLKSECTGET = 0x20001267 195 BLKSECTGET = 0x20001267
196 BLKSECTSET = 0x20001266 196 BLKSECTSET = 0x20001266
197 BLKSSZGET = 0x20001268 197 BLKSSZGET = 0x20001268
198 BOTHER = 0x1000 198 BOTHER = 0x1000
199 BPF_A = 0x10 199 BPF_A = 0x10
200 BPF_ABS = 0x20 200 BPF_ABS = 0x20
201 BPF_ADD = 0x0 201 BPF_ADD = 0x0
202 BPF_ADJ_ROOM_ENCAP_L2_MASK = 0xff 202 BPF_ADJ_ROOM_ENCAP_L2_MASK = 0xff
203 BPF_ADJ_ROOM_ENCAP_L2_SHIFT = 0x38 203 BPF_ADJ_ROOM_ENCAP_L2_SHIFT = 0x38
204 BPF_ALU = 0x4 204 BPF_ALU = 0x4
205 BPF_ALU64 = 0x7 205 BPF_ALU64 = 0x7
206 BPF_AND = 0x50 206 BPF_AND = 0x50
207 BPF_ANY = 0x0 207 BPF_ANY = 0x0
208 BPF_ARSH = 0xc0 208 BPF_ARSH = 0xc0
209 BPF_B = 0x10 209 BPF_B = 0x10
210 BPF_BUILD_ID_SIZE = 0x14 210 BPF_BUILD_ID_SIZE = 0x14
211 BPF_CALL = 0x80 211 BPF_CALL = 0x80
212 BPF_DEVCG_ACC_MKNOD = 0x1 212 BPF_DEVCG_ACC_MKNOD = 0x1
213 BPF_DEVCG_ACC_READ = 0x2 213 BPF_DEVCG_ACC_READ = 0x2
214 BPF_DEVCG_ACC_WRITE = 0x4 214 BPF_DEVCG_ACC_WRITE = 0x4
215 BPF_DEVCG_DEV_BLOCK = 0x1 215 BPF_DEVCG_DEV_BLOCK = 0x1
216 BPF_DEVCG_DEV_CHAR = 0x2 216 BPF_DEVCG_DEV_CHAR = 0x2
217 BPF_DIV = 0x30 217 BPF_DIV = 0x30
218 BPF_DW = 0x18 218 BPF_DW = 0x18
219 BPF_END = 0xd0 219 BPF_END = 0xd0
220 BPF_EXIST = 0x2 220 BPF_EXIST = 0x2
221 BPF_EXIT = 0x90 221 BPF_EXIT = 0x90
222 BPF_FROM_BE = 0x8 222 BPF_FLOW_DISSECTOR_F_PARSE_1ST_FRAG = 0x1
223 BPF_FROM_LE = 0x0 223 BPF_FLOW_DISSECTOR_F_STOP_AT_ENCAP = 0x4
224 BPF_FS_MAGIC = 0xcafe4a11 224 BPF_FLOW_DISSECTOR_F_STOP_AT_FLOW_LABEL = 0x2
225 BPF_F_ADJ_ROOM_ENCAP_L3_IPV4 = 0x2 225 BPF_FROM_BE = 0x8
226 BPF_F_ADJ_ROOM_ENCAP_L3_IPV6 = 0x4 226 BPF_FROM_LE = 0x0
227 BPF_F_ADJ_ROOM_ENCAP_L4_GRE = 0x8 227 BPF_FS_MAGIC = 0xcafe4a11
228 BPF_F_ADJ_ROOM_ENCAP_L4_UDP = 0x10 228 BPF_F_ADJ_ROOM_ENCAP_L3_IPV4 = 0x2
229 BPF_F_ADJ_ROOM_FIXED_GSO = 0x1 229 BPF_F_ADJ_ROOM_ENCAP_L3_IPV6 = 0x4
230 BPF_F_ALLOW_MULTI = 0x2 230 BPF_F_ADJ_ROOM_ENCAP_L4_GRE = 0x8
231 BPF_F_ALLOW_OVERRIDE = 0x1 231 BPF_F_ADJ_ROOM_ENCAP_L4_UDP = 0x10
232 BPF_F_ANY_ALIGNMENT = 0x2 232 BPF_F_ADJ_ROOM_FIXED_GSO = 0x1
233 BPF_F_CTXLEN_MASK = 0xfffff00000000 233 BPF_F_ALLOW_MULTI = 0x2
234 BPF_F_CURRENT_CPU = 0xffffffff 234 BPF_F_ALLOW_OVERRIDE = 0x1
235 BPF_F_CURRENT_NETNS = -0x1 235 BPF_F_ANY_ALIGNMENT = 0x2
236 BPF_F_DONT_FRAGMENT = 0x4 236 BPF_F_CLONE = 0x200
237 BPF_F_FAST_STACK_CMP = 0x200 237 BPF_F_CTXLEN_MASK = 0xfffff00000000
238 BPF_F_HDR_FIELD_MASK = 0xf 238 BPF_F_CURRENT_CPU = 0xffffffff
239 BPF_F_INDEX_MASK = 0xffffffff 239 BPF_F_CURRENT_NETNS = -0x1
240 BPF_F_INGRESS = 0x1 240 BPF_F_DONT_FRAGMENT = 0x4
241 BPF_F_INVALIDATE_HASH = 0x2 241 BPF_F_FAST_STACK_CMP = 0x200
242 BPF_F_LOCK = 0x4 242 BPF_F_HDR_FIELD_MASK = 0xf
243 BPF_F_MARK_ENFORCE = 0x40 243 BPF_F_INDEX_MASK = 0xffffffff
244 BPF_F_MARK_MANGLED_0 = 0x20 244 BPF_F_INGRESS = 0x1
245 BPF_F_NO_COMMON_LRU = 0x2 245 BPF_F_INVALIDATE_HASH = 0x2
246 BPF_F_NO_PREALLOC = 0x1 246 BPF_F_LOCK = 0x4
247 BPF_F_NUMA_NODE = 0x4 247 BPF_F_MARK_ENFORCE = 0x40
248 BPF_F_PSEUDO_HDR = 0x10 248 BPF_F_MARK_MANGLED_0 = 0x20
249 BPF_F_QUERY_EFFECTIVE = 0x1 249 BPF_F_MMAPABLE = 0x400
250 BPF_F_RDONLY = 0x8 250 BPF_F_NO_COMMON_LRU = 0x2
251 BPF_F_RDONLY_PROG = 0x80 251 BPF_F_NO_PREALLOC = 0x1
252 BPF_F_RECOMPUTE_CSUM = 0x1 252 BPF_F_NUMA_NODE = 0x4
253 BPF_F_REUSE_STACKID = 0x400 253 BPF_F_PSEUDO_HDR = 0x10
254 BPF_F_SEQ_NUMBER = 0x8 254 BPF_F_QUERY_EFFECTIVE = 0x1
255 BPF_F_SKIP_FIELD_MASK = 0xff 255 BPF_F_RDONLY = 0x8
256 BPF_F_STACK_BUILD_ID = 0x20 256 BPF_F_RDONLY_PROG = 0x80
257 BPF_F_STRICT_ALIGNMENT = 0x1 257 BPF_F_RECOMPUTE_CSUM = 0x1
258 BPF_F_SYSCTL_BASE_NAME = 0x1 258 BPF_F_REUSE_STACKID = 0x400
259 BPF_F_TUNINFO_IPV6 = 0x1 259 BPF_F_SEQ_NUMBER = 0x8
260 BPF_F_USER_BUILD_ID = 0x800 260 BPF_F_SKIP_FIELD_MASK = 0xff
261 BPF_F_USER_STACK = 0x100 261 BPF_F_STACK_BUILD_ID = 0x20
262 BPF_F_WRONLY = 0x10 262 BPF_F_STRICT_ALIGNMENT = 0x1
263 BPF_F_WRONLY_PROG = 0x100 263 BPF_F_SYSCTL_BASE_NAME = 0x1
264 BPF_F_ZERO_CSUM_TX = 0x2 264 BPF_F_TEST_RND_HI32 = 0x4
265 BPF_F_ZERO_SEED = 0x40 265 BPF_F_TEST_STATE_FREQ = 0x8
266 BPF_H = 0x8 266 BPF_F_TUNINFO_IPV6 = 0x1
267 BPF_IMM = 0x0 267 BPF_F_USER_BUILD_ID = 0x800
268 BPF_IND = 0x40 268 BPF_F_USER_STACK = 0x100
269 BPF_JA = 0x0 269 BPF_F_WRONLY = 0x10
270 BPF_JEQ = 0x10 270 BPF_F_WRONLY_PROG = 0x100
271 BPF_JGE = 0x30 271 BPF_F_ZERO_CSUM_TX = 0x2
272 BPF_JGT = 0x20 272 BPF_F_ZERO_SEED = 0x40
273 BPF_JLE = 0xb0 273 BPF_H = 0x8
274 BPF_JLT = 0xa0 274 BPF_IMM = 0x0
275 BPF_JMP = 0x5 275 BPF_IND = 0x40
276 BPF_JMP32 = 0x6 276 BPF_JA = 0x0
277 BPF_JNE = 0x50 277 BPF_JEQ = 0x10
278 BPF_JSET = 0x40 278 BPF_JGE = 0x30
279 BPF_JSGE = 0x70 279 BPF_JGT = 0x20
280 BPF_JSGT = 0x60 280 BPF_JLE = 0xb0
281 BPF_JSLE = 0xd0 281 BPF_JLT = 0xa0
282 BPF_JSLT = 0xc0 282 BPF_JMP = 0x5
283 BPF_K = 0x0 283 BPF_JMP32 = 0x6
284 BPF_LD = 0x0 284 BPF_JNE = 0x50
285 BPF_LDX = 0x1 285 BPF_JSET = 0x40
286 BPF_LEN = 0x80 286 BPF_JSGE = 0x70
287 BPF_LL_OFF = -0x200000 287 BPF_JSGT = 0x60
288 BPF_LSH = 0x60 288 BPF_JSLE = 0xd0
289 BPF_MAJOR_VERSION = 0x1 289 BPF_JSLT = 0xc0
290 BPF_MAXINSNS = 0x1000 290 BPF_K = 0x0
291 BPF_MEM = 0x60 291 BPF_LD = 0x0
292 BPF_MEMWORDS = 0x10 292 BPF_LDX = 0x1
293 BPF_MINOR_VERSION = 0x1 293 BPF_LEN = 0x80
294 BPF_MISC = 0x7 294 BPF_LL_OFF = -0x200000
295 BPF_MOD = 0x90 295 BPF_LSH = 0x60
296 BPF_MOV = 0xb0 296 BPF_MAJOR_VERSION = 0x1
297 BPF_MSH = 0xa0 297 BPF_MAXINSNS = 0x1000
298 BPF_MUL = 0x20 298 BPF_MEM = 0x60
299 BPF_NEG = 0x80 299 BPF_MEMWORDS = 0x10
300 BPF_NET_OFF = -0x100000 300 BPF_MINOR_VERSION = 0x1
301 BPF_NOEXIST = 0x1 301 BPF_MISC = 0x7
302 BPF_OBJ_NAME_LEN = 0x10 302 BPF_MOD = 0x90
303 BPF_OR = 0x40 303 BPF_MOV = 0xb0
304 BPF_PSEUDO_CALL = 0x1 304 BPF_MSH = 0xa0
305 BPF_PSEUDO_MAP_FD = 0x1 305 BPF_MUL = 0x20
306 BPF_PSEUDO_MAP_VALUE = 0x2 306 BPF_NEG = 0x80
307 BPF_RET = 0x6 307 BPF_NET_OFF = -0x100000
308 BPF_RSH = 0x70 308 BPF_NOEXIST = 0x1
309 BPF_SK_STORAGE_GET_F_CREATE = 0x1 309 BPF_OBJ_NAME_LEN = 0x10
310 BPF_SOCK_OPS_ALL_CB_FLAGS = 0x7 310 BPF_OR = 0x40
311 BPF_SOCK_OPS_RETRANS_CB_FLAG = 0x2 311 BPF_PSEUDO_CALL = 0x1
312 BPF_SOCK_OPS_RTO_CB_FLAG = 0x1 312 BPF_PSEUDO_MAP_FD = 0x1
313 BPF_SOCK_OPS_STATE_CB_FLAG = 0x4 313 BPF_PSEUDO_MAP_VALUE = 0x2
314 BPF_ST = 0x2 314 BPF_RET = 0x6
315 BPF_STX = 0x3 315 BPF_RSH = 0x70
316 BPF_SUB = 0x10 316 BPF_SK_STORAGE_GET_F_CREATE = 0x1
317 BPF_TAG_SIZE = 0x8 317 BPF_SOCK_OPS_ALL_CB_FLAGS = 0xf
318 BPF_TAX = 0x0 318 BPF_SOCK_OPS_RETRANS_CB_FLAG = 0x2
319 BPF_TO_BE = 0x8 319 BPF_SOCK_OPS_RTO_CB_FLAG = 0x1
320 BPF_TO_LE = 0x0 320 BPF_SOCK_OPS_RTT_CB_FLAG = 0x8
321 BPF_TXA = 0x80 321 BPF_SOCK_OPS_STATE_CB_FLAG = 0x4
322 BPF_W = 0x0 322 BPF_ST = 0x2
323 BPF_X = 0x8 323 BPF_STX = 0x3
324 BPF_XADD = 0xc0 324 BPF_SUB = 0x10
325 BPF_XOR = 0xa0 325 BPF_TAG_SIZE = 0x8
326 BRKINT = 0x2 326 BPF_TAX = 0x0
327 BS0 = 0x0 327 BPF_TO_BE = 0x8
328 BS1 = 0x2000 328 BPF_TO_LE = 0x0
329 BSDLY = 0x2000 329 BPF_TXA = 0x80
330 BTRFS_SUPER_MAGIC = 0x9123683e 330 BPF_W = 0x0
331 BTRFS_TEST_MAGIC = 0x73727279 331 BPF_X = 0x8
332 CAN_BCM = 0x2 332 BPF_XADD = 0xc0
333 CAN_EFF_FLAG = 0x80000000 333 BPF_XOR = 0xa0
334 CAN_EFF_ID_BITS = 0x1d 334 BRKINT = 0x2
335 CAN_EFF_MASK = 0x1fffffff 335 BS0 = 0x0
336 CAN_ERR_FLAG = 0x20000000 336 BS1 = 0x2000
337 CAN_ERR_MASK = 0x1fffffff 337 BSDLY = 0x2000
338 CAN_INV_FILTER = 0x20000000 338 BTRFS_SUPER_MAGIC = 0x9123683e
339 CAN_ISOTP = 0x6 339 BTRFS_TEST_MAGIC = 0x73727279
340 CAN_MAX_DLC = 0x8 340 CAN_BCM = 0x2
341 CAN_MAX_DLEN = 0x8 341 CAN_EFF_FLAG = 0x80000000
342 CAN_MCNET = 0x5 342 CAN_EFF_ID_BITS = 0x1d
343 CAN_MTU = 0x10 343 CAN_EFF_MASK = 0x1fffffff
344 CAN_NPROTO = 0x7 344 CAN_ERR_FLAG = 0x20000000
345 CAN_RAW = 0x1 345 CAN_ERR_MASK = 0x1fffffff
346 CAN_RAW_FILTER_MAX = 0x200 346 CAN_INV_FILTER = 0x20000000
347 CAN_RTR_FLAG = 0x40000000 347 CAN_ISOTP = 0x6
348 CAN_SFF_ID_BITS = 0xb 348 CAN_J1939 = 0x7
349 CAN_SFF_MASK = 0x7ff 349 CAN_MAX_DLC = 0x8
350 CAN_TP16 = 0x3 350 CAN_MAX_DLEN = 0x8
351 CAN_TP20 = 0x4 351 CAN_MCNET = 0x5
352 CAP_AUDIT_CONTROL = 0x1e 352 CAN_MTU = 0x10
353 CAP_AUDIT_READ = 0x25 353 CAN_NPROTO = 0x8
354 CAP_AUDIT_WRITE = 0x1d 354 CAN_RAW = 0x1
355 CAP_BLOCK_SUSPEND = 0x24 355 CAN_RAW_FILTER_MAX = 0x200
356 CAP_CHOWN = 0x0 356 CAN_RTR_FLAG = 0x40000000
357 CAP_DAC_OVERRIDE = 0x1 357 CAN_SFF_ID_BITS = 0xb
358 CAP_DAC_READ_SEARCH = 0x2 358 CAN_SFF_MASK = 0x7ff
359 CAP_FOWNER = 0x3 359 CAN_TP16 = 0x3
360 CAP_FSETID = 0x4 360 CAN_TP20 = 0x4
361 CAP_IPC_LOCK = 0xe 361 CAP_AUDIT_CONTROL = 0x1e
362 CAP_IPC_OWNER = 0xf 362 CAP_AUDIT_READ = 0x25
363 CAP_KILL = 0x5 363 CAP_AUDIT_WRITE = 0x1d
364 CAP_LAST_CAP = 0x25 364 CAP_BLOCK_SUSPEND = 0x24
365 CAP_LEASE = 0x1c 365 CAP_CHOWN = 0x0
366 CAP_LINUX_IMMUTABLE = 0x9 366 CAP_DAC_OVERRIDE = 0x1
367 CAP_MAC_ADMIN = 0x21 367 CAP_DAC_READ_SEARCH = 0x2
368 CAP_MAC_OVERRIDE = 0x20 368 CAP_FOWNER = 0x3
369 CAP_MKNOD = 0x1b 369 CAP_FSETID = 0x4
370 CAP_NET_ADMIN = 0xc 370 CAP_IPC_LOCK = 0xe
371 CAP_NET_BIND_SERVICE = 0xa 371 CAP_IPC_OWNER = 0xf
372 CAP_NET_BROADCAST = 0xb 372 CAP_KILL = 0x5
373 CAP_NET_RAW = 0xd 373 CAP_LAST_CAP = 0x25
374 CAP_SETFCAP = 0x1f 374 CAP_LEASE = 0x1c
375 CAP_SETGID = 0x6 375 CAP_LINUX_IMMUTABLE = 0x9
376 CAP_SETPCAP = 0x8 376 CAP_MAC_ADMIN = 0x21
377 CAP_SETUID = 0x7 377 CAP_MAC_OVERRIDE = 0x20
378 CAP_SYSLOG = 0x22 378 CAP_MKNOD = 0x1b
379 CAP_SYS_ADMIN = 0x15 379 CAP_NET_ADMIN = 0xc
380 CAP_SYS_BOOT = 0x16 380 CAP_NET_BIND_SERVICE = 0xa
381 CAP_SYS_CHROOT = 0x12 381 CAP_NET_BROADCAST = 0xb
382 CAP_SYS_MODULE = 0x10 382 CAP_NET_RAW = 0xd
383 CAP_SYS_NICE = 0x17 383 CAP_SETFCAP = 0x1f
384 CAP_SYS_PACCT = 0x14 384 CAP_SETGID = 0x6
385 CAP_SYS_PTRACE = 0x13 385 CAP_SETPCAP = 0x8
386 CAP_SYS_RAWIO = 0x11 386 CAP_SETUID = 0x7
387 CAP_SYS_RESOURCE = 0x18 387 CAP_SYSLOG = 0x22
388 CAP_SYS_TIME = 0x19 388 CAP_SYS_ADMIN = 0x15
389 CAP_SYS_TTY_CONFIG = 0x1a 389 CAP_SYS_BOOT = 0x16
390 CAP_WAKE_ALARM = 0x23 390 CAP_SYS_CHROOT = 0x12
391 CBAUD = 0x100f 391 CAP_SYS_MODULE = 0x10
392 CBAUDEX = 0x1000 392 CAP_SYS_NICE = 0x17
393 CFLUSH = 0xf 393 CAP_SYS_PACCT = 0x14
394 CGROUP2_SUPER_MAGIC = 0x63677270 394 CAP_SYS_PTRACE = 0x13
395 CGROUP_SUPER_MAGIC = 0x27e0eb 395 CAP_SYS_RAWIO = 0x11
396 CIBAUD = 0x100f0000 396 CAP_SYS_RESOURCE = 0x18
397 CLOCAL = 0x800 397 CAP_SYS_TIME = 0x19
398 CLOCK_BOOTTIME = 0x7 398 CAP_SYS_TTY_CONFIG = 0x1a
399 CLOCK_BOOTTIME_ALARM = 0x9 399 CAP_WAKE_ALARM = 0x23
400 CLOCK_DEFAULT = 0x0 400 CBAUD = 0x100f
401 CLOCK_EXT = 0x1 401 CBAUDEX = 0x1000
402 CLOCK_INT = 0x2 402 CFLUSH = 0xf
403 CLOCK_MONOTONIC = 0x1 403 CGROUP2_SUPER_MAGIC = 0x63677270
404 CLOCK_MONOTONIC_COARSE = 0x6 404 CGROUP_SUPER_MAGIC = 0x27e0eb
405 CLOCK_MONOTONIC_RAW = 0x4 405 CIBAUD = 0x100f0000
406 CLOCK_PROCESS_CPUTIME_ID = 0x2 406 CLOCAL = 0x800
407 CLOCK_REALTIME = 0x0 407 CLOCK_BOOTTIME = 0x7
408 CLOCK_REALTIME_ALARM = 0x8 408 CLOCK_BOOTTIME_ALARM = 0x9
409 CLOCK_REALTIME_COARSE = 0x5 409 CLOCK_DEFAULT = 0x0
410 CLOCK_TAI = 0xb 410 CLOCK_EXT = 0x1
411 CLOCK_THREAD_CPUTIME_ID = 0x3 411 CLOCK_INT = 0x2
412 CLOCK_TXFROMRX = 0x4 412 CLOCK_MONOTONIC = 0x1
413 CLOCK_TXINT = 0x3 413 CLOCK_MONOTONIC_COARSE = 0x6
414 CLONE_CHILD_CLEARTID = 0x200000 414 CLOCK_MONOTONIC_RAW = 0x4
415 CLONE_CHILD_SETTID = 0x1000000 415 CLOCK_PROCESS_CPUTIME_ID = 0x2
416 CLONE_DETACHED = 0x400000 416 CLOCK_REALTIME = 0x0
417 CLONE_FILES = 0x400 417 CLOCK_REALTIME_ALARM = 0x8
418 CLONE_FS = 0x200 418 CLOCK_REALTIME_COARSE = 0x5
419 CLONE_IO = 0x80000000 419 CLOCK_TAI = 0xb
420 CLONE_NEWCGROUP = 0x2000000 420 CLOCK_THREAD_CPUTIME_ID = 0x3
421 CLONE_NEWIPC = 0x8000000 421 CLOCK_TXFROMRX = 0x4
422 CLONE_NEWNET = 0x40000000 422 CLOCK_TXINT = 0x3
423 CLONE_NEWNS = 0x20000 423 CLONE_ARGS_SIZE_VER0 = 0x40
424 CLONE_NEWPID = 0x20000000 424 CLONE_ARGS_SIZE_VER1 = 0x50
425 CLONE_NEWUSER = 0x10000000 425 CLONE_CHILD_CLEARTID = 0x200000
426 CLONE_NEWUTS = 0x4000000 426 CLONE_CHILD_SETTID = 0x1000000
427 CLONE_PARENT = 0x8000 427 CLONE_CLEAR_SIGHAND = 0x100000000
428 CLONE_PARENT_SETTID = 0x100000 428 CLONE_DETACHED = 0x400000
429 CLONE_PIDFD = 0x1000 429 CLONE_FILES = 0x400
430 CLONE_PTRACE = 0x2000 430 CLONE_FS = 0x200
431 CLONE_SETTLS = 0x80000 431 CLONE_IO = 0x80000000
432 CLONE_SIGHAND = 0x800 432 CLONE_NEWCGROUP = 0x2000000
433 CLONE_SYSVSEM = 0x40000 433 CLONE_NEWIPC = 0x8000000
434 CLONE_THREAD = 0x10000 434 CLONE_NEWNET = 0x40000000
435 CLONE_UNTRACED = 0x800000 435 CLONE_NEWNS = 0x20000
436 CLONE_VFORK = 0x4000 436 CLONE_NEWPID = 0x20000000
437 CLONE_VM = 0x100 437 CLONE_NEWUSER = 0x10000000
438 CMSPAR = 0x40000000 438 CLONE_NEWUTS = 0x4000000
439 CODA_SUPER_MAGIC = 0x73757245 439 CLONE_PARENT = 0x8000
440 CR0 = 0x0 440 CLONE_PARENT_SETTID = 0x100000
441 CR1 = 0x200 441 CLONE_PIDFD = 0x1000
442 CR2 = 0x400 442 CLONE_PTRACE = 0x2000
443 CR3 = 0x600 443 CLONE_SETTLS = 0x80000
444 CRAMFS_MAGIC = 0x28cd3d45 444 CLONE_SIGHAND = 0x800
445 CRDLY = 0x600 445 CLONE_SYSVSEM = 0x40000
446 CREAD = 0x80 446 CLONE_THREAD = 0x10000
447 CRTSCTS = 0x80000000 447 CLONE_UNTRACED = 0x800000
448 CRYPTO_MAX_NAME = 0x40 448 CLONE_VFORK = 0x4000
449 CRYPTO_MSG_MAX = 0x15 449 CLONE_VM = 0x100
450 CRYPTO_NR_MSGTYPES = 0x6 450 CMSPAR = 0x40000000
451 CRYPTO_REPORT_MAXSIZE = 0x160 451 CODA_SUPER_MAGIC = 0x73757245
452 CS5 = 0x0 452 CR0 = 0x0
453 CS6 = 0x10 453 CR1 = 0x200
454 CS7 = 0x20 454 CR2 = 0x400
455 CS8 = 0x30 455 CR3 = 0x600
456 CSIGNAL = 0xff 456 CRAMFS_MAGIC = 0x28cd3d45
457 CSIZE = 0x30 457 CRDLY = 0x600
458 CSTART = 0x11 458 CREAD = 0x80
459 CSTATUS = 0x0 459 CRTSCTS = 0x80000000
460 CSTOP = 0x13 460 CRYPTO_MAX_NAME = 0x40
461 CSTOPB = 0x40 461 CRYPTO_MSG_MAX = 0x15
462 CSUSP = 0x1a 462 CRYPTO_NR_MSGTYPES = 0x6
463 DAXFS_MAGIC = 0x64646178 463 CRYPTO_REPORT_MAXSIZE = 0x160
464 DEBUGFS_MAGIC = 0x64626720 464 CS5 = 0x0
465 DEVPTS_SUPER_MAGIC = 0x1cd1 465 CS6 = 0x10
466 DT_BLK = 0x6 466 CS7 = 0x20
467 DT_CHR = 0x2 467 CS8 = 0x30
468 DT_DIR = 0x4 468 CSIGNAL = 0xff
469 DT_FIFO = 0x1 469 CSIZE = 0x30
470 DT_LNK = 0xa 470 CSTART = 0x11
471 DT_REG = 0x8 471 CSTATUS = 0x0
472 DT_SOCK = 0xc 472 CSTOP = 0x13
473 DT_UNKNOWN = 0x0 473 CSTOPB = 0x40
474 DT_WHT = 0xe 474 CSUSP = 0x1a
475 ECHO = 0x8 475 DAXFS_MAGIC = 0x64646178
476 ECHOCTL = 0x200 476 DEBUGFS_MAGIC = 0x64626720
477 ECHOE = 0x10 477 DEVLINK_CMD_ESWITCH_MODE_GET = 0x1d
478 ECHOK = 0x20 478 DEVLINK_CMD_ESWITCH_MODE_SET = 0x1e
479 ECHOKE = 0x800 479 DEVLINK_GENL_MCGRP_CONFIG_NAME = "config"
480 ECHONL = 0x40 480 DEVLINK_GENL_NAME = "devlink"
481 ECHOPRT = 0x400 481 DEVLINK_GENL_VERSION = 0x1
482 ECRYPTFS_SUPER_MAGIC = 0xf15f 482 DEVLINK_SB_THRESHOLD_TO_ALPHA_MAX = 0x14
483 EFD_CLOEXEC = 0x400000 483 DEVPTS_SUPER_MAGIC = 0x1cd1
484 EFD_NONBLOCK = 0x4000 484 DMA_BUF_MAGIC = 0x444d4142
485 EFD_SEMAPHORE = 0x1 485 DT_BLK = 0x6
486 EFIVARFS_MAGIC = 0xde5e81e4 486 DT_CHR = 0x2
487 EFS_SUPER_MAGIC = 0x414a53 487 DT_DIR = 0x4
488 EMT_TAGOVF = 0x1 488 DT_FIFO = 0x1
489 ENCODING_DEFAULT = 0x0 489 DT_LNK = 0xa
490 ENCODING_FM_MARK = 0x3 490 DT_REG = 0x8
491 ENCODING_FM_SPACE = 0x4 491 DT_SOCK = 0xc
492 ENCODING_MANCHESTER = 0x5 492 DT_UNKNOWN = 0x0
493 ENCODING_NRZ = 0x1 493 DT_WHT = 0xe
494 ENCODING_NRZI = 0x2 494 ECHO = 0x8
495 EPOLLERR = 0x8 495 ECHOCTL = 0x200
496 EPOLLET = 0x80000000 496 ECHOE = 0x10
497 EPOLLEXCLUSIVE = 0x10000000 497 ECHOK = 0x20
498 EPOLLHUP = 0x10 498 ECHOKE = 0x800
499 EPOLLIN = 0x1 499 ECHONL = 0x40
500 EPOLLMSG = 0x400 500 ECHOPRT = 0x400
501 EPOLLONESHOT = 0x40000000 501 ECRYPTFS_SUPER_MAGIC = 0xf15f
502 EPOLLOUT = 0x4 502 EFD_CLOEXEC = 0x400000
503 EPOLLPRI = 0x2 503 EFD_NONBLOCK = 0x4000
504 EPOLLRDBAND = 0x80 504 EFD_SEMAPHORE = 0x1
505 EPOLLRDHUP = 0x2000 505 EFIVARFS_MAGIC = 0xde5e81e4
506 EPOLLRDNORM = 0x40 506 EFS_SUPER_MAGIC = 0x414a53
507 EPOLLWAKEUP = 0x20000000 507 EMT_TAGOVF = 0x1
508 EPOLLWRBAND = 0x200 508 ENCODING_DEFAULT = 0x0
509 EPOLLWRNORM = 0x100 509 ENCODING_FM_MARK = 0x3
510 EPOLL_CLOEXEC = 0x400000 510 ENCODING_FM_SPACE = 0x4
511 EPOLL_CTL_ADD = 0x1 511 ENCODING_MANCHESTER = 0x5
512 EPOLL_CTL_DEL = 0x2 512 ENCODING_NRZ = 0x1
513 EPOLL_CTL_MOD = 0x3 513 ENCODING_NRZI = 0x2
514 ETH_P_1588 = 0x88f7 514 EPOLLERR = 0x8
515 ETH_P_8021AD = 0x88a8 515 EPOLLET = 0x80000000
516 ETH_P_8021AH = 0x88e7 516 EPOLLEXCLUSIVE = 0x10000000
517 ETH_P_8021Q = 0x8100 517 EPOLLHUP = 0x10
518 ETH_P_80221 = 0x8917 518 EPOLLIN = 0x1
519 ETH_P_802_2 = 0x4 519 EPOLLMSG = 0x400
520 ETH_P_802_3 = 0x1 520 EPOLLONESHOT = 0x40000000
521 ETH_P_802_3_MIN = 0x600 521 EPOLLOUT = 0x4
522 ETH_P_802_EX1 = 0x88b5 522 EPOLLPRI = 0x2
523 ETH_P_AARP = 0x80f3 523 EPOLLRDBAND = 0x80
524 ETH_P_AF_IUCV = 0xfbfb 524 EPOLLRDHUP = 0x2000
525 ETH_P_ALL = 0x3 525 EPOLLRDNORM = 0x40
526 ETH_P_AOE = 0x88a2 526 EPOLLWAKEUP = 0x20000000
527 ETH_P_ARCNET = 0x1a 527 EPOLLWRBAND = 0x200
528 ETH_P_ARP = 0x806 528 EPOLLWRNORM = 0x100
529 ETH_P_ATALK = 0x809b 529 EPOLL_CLOEXEC = 0x400000
530 ETH_P_ATMFATE = 0x8884 530 EPOLL_CTL_ADD = 0x1
531 ETH_P_ATMMPOA = 0x884c 531 EPOLL_CTL_DEL = 0x2
532 ETH_P_AX25 = 0x2 532 EPOLL_CTL_MOD = 0x3
533 ETH_P_BATMAN = 0x4305 533 EROFS_SUPER_MAGIC_V1 = 0xe0f5e1e2
534 ETH_P_BPQ = 0x8ff 534 ETH_P_1588 = 0x88f7
535 ETH_P_CAIF = 0xf7 535 ETH_P_8021AD = 0x88a8
536 ETH_P_CAN = 0xc 536 ETH_P_8021AH = 0x88e7
537 ETH_P_CANFD = 0xd 537 ETH_P_8021Q = 0x8100
538 ETH_P_CONTROL = 0x16 538 ETH_P_80221 = 0x8917
539 ETH_P_CUST = 0x6006 539 ETH_P_802_2 = 0x4
540 ETH_P_DDCMP = 0x6 540 ETH_P_802_3 = 0x1
541 ETH_P_DEC = 0x6000 541 ETH_P_802_3_MIN = 0x600
542 ETH_P_DIAG = 0x6005 542 ETH_P_802_EX1 = 0x88b5
543 ETH_P_DNA_DL = 0x6001 543 ETH_P_AARP = 0x80f3
544 ETH_P_DNA_RC = 0x6002 544 ETH_P_AF_IUCV = 0xfbfb
545 ETH_P_DNA_RT = 0x6003 545 ETH_P_ALL = 0x3
546 ETH_P_DSA = 0x1b 546 ETH_P_AOE = 0x88a2
547 ETH_P_DSA_8021Q = 0xdadb 547 ETH_P_ARCNET = 0x1a
548 ETH_P_ECONET = 0x18 548 ETH_P_ARP = 0x806
549 ETH_P_EDSA = 0xdada 549 ETH_P_ATALK = 0x809b
550 ETH_P_ERSPAN = 0x88be 550 ETH_P_ATMFATE = 0x8884
551 ETH_P_ERSPAN2 = 0x22eb 551 ETH_P_ATMMPOA = 0x884c
552 ETH_P_FCOE = 0x8906 552 ETH_P_AX25 = 0x2
553 ETH_P_FIP = 0x8914 553 ETH_P_BATMAN = 0x4305
554 ETH_P_HDLC = 0x19 554 ETH_P_BPQ = 0x8ff
555 ETH_P_HSR = 0x892f 555 ETH_P_CAIF = 0xf7
556 ETH_P_IBOE = 0x8915 556 ETH_P_CAN = 0xc
557 ETH_P_IEEE802154 = 0xf6 557 ETH_P_CANFD = 0xd
558 ETH_P_IEEEPUP = 0xa00 558 ETH_P_CONTROL = 0x16
559 ETH_P_IEEEPUPAT = 0xa01 559 ETH_P_CUST = 0x6006
560 ETH_P_IFE = 0xed3e 560 ETH_P_DDCMP = 0x6
561 ETH_P_IP = 0x800 561 ETH_P_DEC = 0x6000
562 ETH_P_IPV6 = 0x86dd 562 ETH_P_DIAG = 0x6005
563 ETH_P_IPX = 0x8137 563 ETH_P_DNA_DL = 0x6001
564 ETH_P_IRDA = 0x17 564 ETH_P_DNA_RC = 0x6002
565 ETH_P_LAT = 0x6004 565 ETH_P_DNA_RT = 0x6003
566 ETH_P_LINK_CTL = 0x886c 566 ETH_P_DSA = 0x1b
567 ETH_P_LOCALTALK = 0x9 567 ETH_P_DSA_8021Q = 0xdadb
568 ETH_P_LOOP = 0x60 568 ETH_P_ECONET = 0x18
569 ETH_P_LOOPBACK = 0x9000 569 ETH_P_EDSA = 0xdada
570 ETH_P_MACSEC = 0x88e5 570 ETH_P_ERSPAN = 0x88be
571 ETH_P_MAP = 0xf9 571 ETH_P_ERSPAN2 = 0x22eb
572 ETH_P_MOBITEX = 0x15 572 ETH_P_FCOE = 0x8906
573 ETH_P_MPLS_MC = 0x8848 573 ETH_P_FIP = 0x8914
574 ETH_P_MPLS_UC = 0x8847 574 ETH_P_HDLC = 0x19
575 ETH_P_MVRP = 0x88f5 575 ETH_P_HSR = 0x892f
576 ETH_P_NCSI = 0x88f8 576 ETH_P_IBOE = 0x8915
577 ETH_P_NSH = 0x894f 577 ETH_P_IEEE802154 = 0xf6
578 ETH_P_PAE = 0x888e 578 ETH_P_IEEEPUP = 0xa00
579 ETH_P_PAUSE = 0x8808 579 ETH_P_IEEEPUPAT = 0xa01
580 ETH_P_PHONET = 0xf5 580 ETH_P_IFE = 0xed3e
581 ETH_P_PPPTALK = 0x10 581 ETH_P_IP = 0x800
582 ETH_P_PPP_DISC = 0x8863 582 ETH_P_IPV6 = 0x86dd
583 ETH_P_PPP_MP = 0x8 583 ETH_P_IPX = 0x8137
584 ETH_P_PPP_SES = 0x8864 584 ETH_P_IRDA = 0x17
585 ETH_P_PREAUTH = 0x88c7 585 ETH_P_LAT = 0x6004
586 ETH_P_PRP = 0x88fb 586 ETH_P_LINK_CTL = 0x886c
587 ETH_P_PUP = 0x200 587 ETH_P_LLDP = 0x88cc
588 ETH_P_PUPAT = 0x201 588 ETH_P_LOCALTALK = 0x9
589 ETH_P_QINQ1 = 0x9100 589 ETH_P_LOOP = 0x60
590 ETH_P_QINQ2 = 0x9200 590 ETH_P_LOOPBACK = 0x9000
591 ETH_P_QINQ3 = 0x9300 591 ETH_P_MACSEC = 0x88e5
592 ETH_P_RARP = 0x8035 592 ETH_P_MAP = 0xf9
593 ETH_P_SCA = 0x6007 593 ETH_P_MOBITEX = 0x15
594 ETH_P_SLOW = 0x8809 594 ETH_P_MPLS_MC = 0x8848
595 ETH_P_SNAP = 0x5 595 ETH_P_MPLS_UC = 0x8847
596 ETH_P_TDLS = 0x890d 596 ETH_P_MVRP = 0x88f5
597 ETH_P_TEB = 0x6558 597 ETH_P_NCSI = 0x88f8
598 ETH_P_TIPC = 0x88ca 598 ETH_P_NSH = 0x894f
599 ETH_P_TRAILER = 0x1c 599 ETH_P_PAE = 0x888e
600 ETH_P_TR_802_2 = 0x11 600 ETH_P_PAUSE = 0x8808
601 ETH_P_TSN = 0x22f0 601 ETH_P_PHONET = 0xf5
602 ETH_P_WAN_PPP = 0x7 602 ETH_P_PPPTALK = 0x10
603 ETH_P_WCCP = 0x883e 603 ETH_P_PPP_DISC = 0x8863
604 ETH_P_X25 = 0x805 604 ETH_P_PPP_MP = 0x8
605 ETH_P_XDSA = 0xf8 605 ETH_P_PPP_SES = 0x8864
606 EXABYTE_ENABLE_NEST = 0xf0 606 ETH_P_PREAUTH = 0x88c7
607 EXT2_SUPER_MAGIC = 0xef53 607 ETH_P_PRP = 0x88fb
608 EXT3_SUPER_MAGIC = 0xef53 608 ETH_P_PUP = 0x200
609 EXT4_SUPER_MAGIC = 0xef53 609 ETH_P_PUPAT = 0x201
610 EXTA = 0xe 610 ETH_P_QINQ1 = 0x9100
611 EXTB = 0xf 611 ETH_P_QINQ2 = 0x9200
612 EXTPROC = 0x10000 612 ETH_P_QINQ3 = 0x9300
613 F2FS_SUPER_MAGIC = 0xf2f52010 613 ETH_P_RARP = 0x8035
614 FALLOC_FL_COLLAPSE_RANGE = 0x8 614 ETH_P_SCA = 0x6007
615 FALLOC_FL_INSERT_RANGE = 0x20 615 ETH_P_SLOW = 0x8809
616 FALLOC_FL_KEEP_SIZE = 0x1 616 ETH_P_SNAP = 0x5
617 FALLOC_FL_NO_HIDE_STALE = 0x4 617 ETH_P_TDLS = 0x890d
618 FALLOC_FL_PUNCH_HOLE = 0x2 618 ETH_P_TEB = 0x6558
619 FALLOC_FL_UNSHARE_RANGE = 0x40 619 ETH_P_TIPC = 0x88ca
620 FALLOC_FL_ZERO_RANGE = 0x10 620 ETH_P_TRAILER = 0x1c
621 FANOTIFY_METADATA_VERSION = 0x3 621 ETH_P_TR_802_2 = 0x11
622 FAN_ACCESS = 0x1 622 ETH_P_TSN = 0x22f0
623 FAN_ACCESS_PERM = 0x20000 623 ETH_P_WAN_PPP = 0x7
624 FAN_ALLOW = 0x1 624 ETH_P_WCCP = 0x883e
625 FAN_ALL_CLASS_BITS = 0xc 625 ETH_P_X25 = 0x805
626 FAN_ALL_EVENTS = 0x3b 626 ETH_P_XDSA = 0xf8
627 FAN_ALL_INIT_FLAGS = 0x3f 627 EXABYTE_ENABLE_NEST = 0xf0
628 FAN_ALL_MARK_FLAGS = 0xff 628 EXT2_SUPER_MAGIC = 0xef53
629 FAN_ALL_OUTGOING_EVENTS = 0x3403b 629 EXT3_SUPER_MAGIC = 0xef53
630 FAN_ALL_PERM_EVENTS = 0x30000 630 EXT4_SUPER_MAGIC = 0xef53
631 FAN_ATTRIB = 0x4 631 EXTA = 0xe
632 FAN_AUDIT = 0x10 632 EXTB = 0xf
633 FAN_CLASS_CONTENT = 0x4 633 EXTPROC = 0x10000
634 FAN_CLASS_NOTIF = 0x0 634 F2FS_SUPER_MAGIC = 0xf2f52010
635 FAN_CLASS_PRE_CONTENT = 0x8 635 FALLOC_FL_COLLAPSE_RANGE = 0x8
636 FAN_CLOEXEC = 0x1 636 FALLOC_FL_INSERT_RANGE = 0x20
637 FAN_CLOSE = 0x18 637 FALLOC_FL_KEEP_SIZE = 0x1
638 FAN_CLOSE_NOWRITE = 0x10 638 FALLOC_FL_NO_HIDE_STALE = 0x4
639 FAN_CLOSE_WRITE = 0x8 639 FALLOC_FL_PUNCH_HOLE = 0x2
640 FAN_CREATE = 0x100 640 FALLOC_FL_UNSHARE_RANGE = 0x40
641 FAN_DELETE = 0x200 641 FALLOC_FL_ZERO_RANGE = 0x10
642 FAN_DELETE_SELF = 0x400 642 FANOTIFY_METADATA_VERSION = 0x3
643 FAN_DENY = 0x2 643 FAN_ACCESS = 0x1
644 FAN_ENABLE_AUDIT = 0x40 644 FAN_ACCESS_PERM = 0x20000
645 FAN_EVENT_INFO_TYPE_FID = 0x1 645 FAN_ALLOW = 0x1
646 FAN_EVENT_METADATA_LEN = 0x18 646 FAN_ALL_CLASS_BITS = 0xc
647 FAN_EVENT_ON_CHILD = 0x8000000 647 FAN_ALL_EVENTS = 0x3b
648 FAN_MARK_ADD = 0x1 648 FAN_ALL_INIT_FLAGS = 0x3f
649 FAN_MARK_DONT_FOLLOW = 0x4 649 FAN_ALL_MARK_FLAGS = 0xff
650 FAN_MARK_FILESYSTEM = 0x100 650 FAN_ALL_OUTGOING_EVENTS = 0x3403b
651 FAN_MARK_FLUSH = 0x80 651 FAN_ALL_PERM_EVENTS = 0x30000
652 FAN_MARK_IGNORED_MASK = 0x20 652 FAN_ATTRIB = 0x4
653 FAN_MARK_IGNORED_SURV_MODIFY = 0x40 653 FAN_AUDIT = 0x10
654 FAN_MARK_INODE = 0x0 654 FAN_CLASS_CONTENT = 0x4
655 FAN_MARK_MOUNT = 0x10 655 FAN_CLASS_NOTIF = 0x0
656 FAN_MARK_ONLYDIR = 0x8 656 FAN_CLASS_PRE_CONTENT = 0x8
657 FAN_MARK_REMOVE = 0x2 657 FAN_CLOEXEC = 0x1
658 FAN_MODIFY = 0x2 658 FAN_CLOSE = 0x18
659 FAN_MOVE = 0xc0 659 FAN_CLOSE_NOWRITE = 0x10
660 FAN_MOVED_FROM = 0x40 660 FAN_CLOSE_WRITE = 0x8
661 FAN_MOVED_TO = 0x80 661 FAN_CREATE = 0x100
662 FAN_MOVE_SELF = 0x800 662 FAN_DELETE = 0x200
663 FAN_NOFD = -0x1 663 FAN_DELETE_SELF = 0x400
664 FAN_NONBLOCK = 0x2 664 FAN_DENY = 0x2
665 FAN_ONDIR = 0x40000000 665 FAN_ENABLE_AUDIT = 0x40
666 FAN_OPEN = 0x20 666 FAN_EVENT_INFO_TYPE_FID = 0x1
667 FAN_OPEN_EXEC = 0x1000 667 FAN_EVENT_METADATA_LEN = 0x18
668 FAN_OPEN_EXEC_PERM = 0x40000 668 FAN_EVENT_ON_CHILD = 0x8000000
669 FAN_OPEN_PERM = 0x10000 669 FAN_MARK_ADD = 0x1
670 FAN_Q_OVERFLOW = 0x4000 670 FAN_MARK_DONT_FOLLOW = 0x4
671 FAN_REPORT_FID = 0x200 671 FAN_MARK_FILESYSTEM = 0x100
672 FAN_REPORT_TID = 0x100 672 FAN_MARK_FLUSH = 0x80
673 FAN_UNLIMITED_MARKS = 0x20 673 FAN_MARK_IGNORED_MASK = 0x20
674 FAN_UNLIMITED_QUEUE = 0x10 674 FAN_MARK_IGNORED_SURV_MODIFY = 0x40
675 FD_CLOEXEC = 0x1 675 FAN_MARK_INODE = 0x0
676 FD_SETSIZE = 0x400 676 FAN_MARK_MOUNT = 0x10
677 FF0 = 0x0 677 FAN_MARK_ONLYDIR = 0x8
678 FF1 = 0x8000 678 FAN_MARK_REMOVE = 0x2
679 FFDLY = 0x8000 679 FAN_MODIFY = 0x2
680 FLUSHO = 0x1000 680 FAN_MOVE = 0xc0
681 FS_ENCRYPTION_MODE_ADIANTUM = 0x9 681 FAN_MOVED_FROM = 0x40
682 FS_ENCRYPTION_MODE_AES_128_CBC = 0x5 682 FAN_MOVED_TO = 0x80
683 FS_ENCRYPTION_MODE_AES_128_CTS = 0x6 683 FAN_MOVE_SELF = 0x800
684 FS_ENCRYPTION_MODE_AES_256_CBC = 0x3 684 FAN_NOFD = -0x1
685 FS_ENCRYPTION_MODE_AES_256_CTS = 0x4 685 FAN_NONBLOCK = 0x2
686 FS_ENCRYPTION_MODE_AES_256_GCM = 0x2 686 FAN_ONDIR = 0x40000000
687 FS_ENCRYPTION_MODE_AES_256_XTS = 0x1 687 FAN_OPEN = 0x20
688 FS_ENCRYPTION_MODE_INVALID = 0x0 688 FAN_OPEN_EXEC = 0x1000
689 FS_ENCRYPTION_MODE_SPECK128_256_CTS = 0x8 689 FAN_OPEN_EXEC_PERM = 0x40000
690 FS_ENCRYPTION_MODE_SPECK128_256_XTS = 0x7 690 FAN_OPEN_PERM = 0x10000
691 FS_IOC_GET_ENCRYPTION_POLICY = 0x800c6615 691 FAN_Q_OVERFLOW = 0x4000
692 FS_IOC_GET_ENCRYPTION_PWSALT = 0x80106614 692 FAN_REPORT_FID = 0x200
693 FS_IOC_SET_ENCRYPTION_POLICY = 0x400c6613 693 FAN_REPORT_TID = 0x100
694 FS_KEY_DESCRIPTOR_SIZE = 0x8 694 FAN_UNLIMITED_MARKS = 0x20
695 FS_KEY_DESC_PREFIX = "fscrypt:" 695 FAN_UNLIMITED_QUEUE = 0x10
696 FS_KEY_DESC_PREFIX_SIZE = 0x8 696 FD_CLOEXEC = 0x1
697 FS_MAX_KEY_SIZE = 0x40 697 FD_SETSIZE = 0x400
698 FS_POLICY_FLAGS_PAD_16 = 0x2 698 FF0 = 0x0
699 FS_POLICY_FLAGS_PAD_32 = 0x3 699 FF1 = 0x8000
700 FS_POLICY_FLAGS_PAD_4 = 0x0 700 FFDLY = 0x8000
701 FS_POLICY_FLAGS_PAD_8 = 0x1 701 FLUSHO = 0x1000
702 FS_POLICY_FLAGS_PAD_MASK = 0x3 702 FSCRYPT_KEY_DESCRIPTOR_SIZE = 0x8
703 FS_POLICY_FLAGS_VALID = 0x7 703 FSCRYPT_KEY_DESC_PREFIX = "fscrypt:"
704 FUTEXFS_SUPER_MAGIC = 0xbad1dea 704 FSCRYPT_KEY_DESC_PREFIX_SIZE = 0x8
705 F_ADD_SEALS = 0x409 705 FSCRYPT_KEY_IDENTIFIER_SIZE = 0x10
706 F_DUPFD = 0x0 706 FSCRYPT_KEY_REMOVAL_STATUS_FLAG_FILES_BUSY = 0x1
707 F_DUPFD_CLOEXEC = 0x406 707 FSCRYPT_KEY_REMOVAL_STATUS_FLAG_OTHER_USERS = 0x2
708 F_EXLCK = 0x4 708 FSCRYPT_KEY_SPEC_TYPE_DESCRIPTOR = 0x1
709 F_GETFD = 0x1 709 FSCRYPT_KEY_SPEC_TYPE_IDENTIFIER = 0x2
710 F_GETFL = 0x3 710 FSCRYPT_KEY_STATUS_ABSENT = 0x1
711 F_GETLEASE = 0x401 711 FSCRYPT_KEY_STATUS_FLAG_ADDED_BY_SELF = 0x1
712 F_GETLK = 0x7 712 FSCRYPT_KEY_STATUS_INCOMPLETELY_REMOVED = 0x3
713 F_GETLK64 = 0x7 713 FSCRYPT_KEY_STATUS_PRESENT = 0x2
714 F_GETOWN = 0x5 714 FSCRYPT_MAX_KEY_SIZE = 0x40
715 F_GETOWN_EX = 0x10 715 FSCRYPT_MODE_ADIANTUM = 0x9
716 F_GETPIPE_SZ = 0x408 716 FSCRYPT_MODE_AES_128_CBC = 0x5
717 F_GETSIG = 0xb 717 FSCRYPT_MODE_AES_128_CTS = 0x6
718 F_GET_FILE_RW_HINT = 0x40d 718 FSCRYPT_MODE_AES_256_CTS = 0x4
719 F_GET_RW_HINT = 0x40b 719 FSCRYPT_MODE_AES_256_XTS = 0x1
720 F_GET_SEALS = 0x40a 720 FSCRYPT_POLICY_FLAGS_PAD_16 = 0x2
721 F_LOCK = 0x1 721 FSCRYPT_POLICY_FLAGS_PAD_32 = 0x3
722 F_NOTIFY = 0x402 722 FSCRYPT_POLICY_FLAGS_PAD_4 = 0x0
723 F_OFD_GETLK = 0x24 723 FSCRYPT_POLICY_FLAGS_PAD_8 = 0x1
724 F_OFD_SETLK = 0x25 724 FSCRYPT_POLICY_FLAGS_PAD_MASK = 0x3
725 F_OFD_SETLKW = 0x26 725 FSCRYPT_POLICY_FLAGS_VALID = 0xf
726 F_OK = 0x0 726 FSCRYPT_POLICY_FLAG_DIRECT_KEY = 0x4
727 F_RDLCK = 0x1 727 FSCRYPT_POLICY_FLAG_IV_INO_LBLK_64 = 0x8
728 F_SEAL_FUTURE_WRITE = 0x10 728 FSCRYPT_POLICY_V1 = 0x0
729 F_SEAL_GROW = 0x4 729 FSCRYPT_POLICY_V2 = 0x2
730 F_SEAL_SEAL = 0x1 730 FS_ENCRYPTION_MODE_ADIANTUM = 0x9
731 F_SEAL_SHRINK = 0x2 731 FS_ENCRYPTION_MODE_AES_128_CBC = 0x5
732 F_SEAL_WRITE = 0x8 732 FS_ENCRYPTION_MODE_AES_128_CTS = 0x6
733 F_SETFD = 0x2 733 FS_ENCRYPTION_MODE_AES_256_CBC = 0x3
734 F_SETFL = 0x4 734 FS_ENCRYPTION_MODE_AES_256_CTS = 0x4
735 F_SETLEASE = 0x400 735 FS_ENCRYPTION_MODE_AES_256_GCM = 0x2
736 F_SETLK = 0x8 736 FS_ENCRYPTION_MODE_AES_256_XTS = 0x1
737 F_SETLK64 = 0x8 737 FS_ENCRYPTION_MODE_INVALID = 0x0
738 F_SETLKW = 0x9 738 FS_ENCRYPTION_MODE_SPECK128_256_CTS = 0x8
739 F_SETLKW64 = 0x9 739 FS_ENCRYPTION_MODE_SPECK128_256_XTS = 0x7
740 F_SETOWN = 0x6 740 FS_IOC_ADD_ENCRYPTION_KEY = 0xc0506617
741 F_SETOWN_EX = 0xf 741 FS_IOC_GET_ENCRYPTION_KEY_STATUS = 0xc080661a
742 F_SETPIPE_SZ = 0x407 742 FS_IOC_GET_ENCRYPTION_POLICY = 0x800c6615
743 F_SETSIG = 0xa 743 FS_IOC_GET_ENCRYPTION_POLICY_EX = 0xc0096616
744 F_SET_FILE_RW_HINT = 0x40e 744 FS_IOC_GET_ENCRYPTION_PWSALT = 0x80106614
745 F_SET_RW_HINT = 0x40c 745 FS_IOC_REMOVE_ENCRYPTION_KEY = 0xc0406618
746 F_SHLCK = 0x8 746 FS_IOC_REMOVE_ENCRYPTION_KEY_ALL_USERS = 0xc0406619
747 F_TEST = 0x3 747 FS_IOC_SET_ENCRYPTION_POLICY = 0x400c6613
748 F_TLOCK = 0x2 748 FS_KEY_DESCRIPTOR_SIZE = 0x8
749 F_ULOCK = 0x0 749 FS_KEY_DESC_PREFIX = "fscrypt:"
750 F_UNLCK = 0x3 750 FS_KEY_DESC_PREFIX_SIZE = 0x8
751 F_WRLCK = 0x2 751 FS_MAX_KEY_SIZE = 0x40
752 GENL_ADMIN_PERM = 0x1 752 FS_POLICY_FLAGS_PAD_16 = 0x2
753 GENL_CMD_CAP_DO = 0x2 753 FS_POLICY_FLAGS_PAD_32 = 0x3
754 GENL_CMD_CAP_DUMP = 0x4 754 FS_POLICY_FLAGS_PAD_4 = 0x0
755 GENL_CMD_CAP_HASPOL = 0x8 755 FS_POLICY_FLAGS_PAD_8 = 0x1
756 GENL_HDRLEN = 0x4 756 FS_POLICY_FLAGS_PAD_MASK = 0x3
757 GENL_ID_CTRL = 0x10 757 FS_POLICY_FLAGS_VALID = 0xf
758 GENL_ID_PMCRAID = 0x12 758 FUTEXFS_SUPER_MAGIC = 0xbad1dea
759 GENL_ID_VFS_DQUOT = 0x11 759 F_ADD_SEALS = 0x409
760 GENL_MAX_ID = 0x3ff 760 F_DUPFD = 0x0
761 GENL_MIN_ID = 0x10 761 F_DUPFD_CLOEXEC = 0x406
762 GENL_NAMSIZ = 0x10 762 F_EXLCK = 0x4
763 GENL_START_ALLOC = 0x13 763 F_GETFD = 0x1
764 GENL_UNS_ADMIN_PERM = 0x10 764 F_GETFL = 0x3
765 GRND_NONBLOCK = 0x1 765 F_GETLEASE = 0x401
766 GRND_RANDOM = 0x2 766 F_GETLK = 0x7
767 HDIO_DRIVE_CMD = 0x31f 767 F_GETLK64 = 0x7
768 HDIO_DRIVE_CMD_AEB = 0x31e 768 F_GETOWN = 0x5
769 HDIO_DRIVE_CMD_HDR_SIZE = 0x4 769 F_GETOWN_EX = 0x10
770 HDIO_DRIVE_HOB_HDR_SIZE = 0x8 770 F_GETPIPE_SZ = 0x408
771 HDIO_DRIVE_RESET = 0x31c 771 F_GETSIG = 0xb
772 HDIO_DRIVE_TASK = 0x31e 772 F_GET_FILE_RW_HINT = 0x40d
773 HDIO_DRIVE_TASKFILE = 0x31d 773 F_GET_RW_HINT = 0x40b
774 HDIO_DRIVE_TASK_HDR_SIZE = 0x8 774 F_GET_SEALS = 0x40a
775 HDIO_GETGEO = 0x301 775 F_LOCK = 0x1
776 HDIO_GET_32BIT = 0x309 776 F_NOTIFY = 0x402
777 HDIO_GET_ACOUSTIC = 0x30f 777 F_OFD_GETLK = 0x24
778 HDIO_GET_ADDRESS = 0x310 778 F_OFD_SETLK = 0x25
779 HDIO_GET_BUSSTATE = 0x31a 779 F_OFD_SETLKW = 0x26
780 HDIO_GET_DMA = 0x30b 780 F_OK = 0x0
781 HDIO_GET_IDENTITY = 0x30d 781 F_RDLCK = 0x1
782 HDIO_GET_KEEPSETTINGS = 0x308 782 F_SEAL_FUTURE_WRITE = 0x10
783 HDIO_GET_MULTCOUNT = 0x304 783 F_SEAL_GROW = 0x4
784 HDIO_GET_NICE = 0x30c 784 F_SEAL_SEAL = 0x1
785 HDIO_GET_NOWERR = 0x30a 785 F_SEAL_SHRINK = 0x2
786 HDIO_GET_QDMA = 0x305 786 F_SEAL_WRITE = 0x8
787 HDIO_GET_UNMASKINTR = 0x302 787 F_SETFD = 0x2
788 HDIO_GET_WCACHE = 0x30e 788 F_SETFL = 0x4
789 HDIO_OBSOLETE_IDENTITY = 0x307 789 F_SETLEASE = 0x400
790 HDIO_SCAN_HWIF = 0x328 790 F_SETLK = 0x8
791 HDIO_SET_32BIT = 0x324 791 F_SETLK64 = 0x8
792 HDIO_SET_ACOUSTIC = 0x32c 792 F_SETLKW = 0x9
793 HDIO_SET_ADDRESS = 0x32f 793 F_SETLKW64 = 0x9
794 HDIO_SET_BUSSTATE = 0x32d 794 F_SETOWN = 0x6
795 HDIO_SET_DMA = 0x326 795 F_SETOWN_EX = 0xf
796 HDIO_SET_KEEPSETTINGS = 0x323 796 F_SETPIPE_SZ = 0x407
797 HDIO_SET_MULTCOUNT = 0x321 797 F_SETSIG = 0xa
798 HDIO_SET_NICE = 0x329 798 F_SET_FILE_RW_HINT = 0x40e
799 HDIO_SET_NOWERR = 0x325 799 F_SET_RW_HINT = 0x40c
800 HDIO_SET_PIO_MODE = 0x327 800 F_SHLCK = 0x8
801 HDIO_SET_QDMA = 0x32e 801 F_TEST = 0x3
802 HDIO_SET_UNMASKINTR = 0x322 802 F_TLOCK = 0x2
803 HDIO_SET_WCACHE = 0x32b 803 F_ULOCK = 0x0
804 HDIO_SET_XFER = 0x306 804 F_UNLCK = 0x3
805 HDIO_TRISTATE_HWIF = 0x31b 805 F_WRLCK = 0x2
806 HDIO_UNREGISTER_HWIF = 0x32a 806 GENL_ADMIN_PERM = 0x1
807 HOSTFS_SUPER_MAGIC = 0xc0ffee 807 GENL_CMD_CAP_DO = 0x2
808 HPFS_SUPER_MAGIC = 0xf995e849 808 GENL_CMD_CAP_DUMP = 0x4
809 HUGETLBFS_MAGIC = 0x958458f6 809 GENL_CMD_CAP_HASPOL = 0x8
810 HUPCL = 0x400 810 GENL_HDRLEN = 0x4
811 IBSHIFT = 0x10 811 GENL_ID_CTRL = 0x10
812 ICANON = 0x2 812 GENL_ID_PMCRAID = 0x12
813 ICMPV6_FILTER = 0x1 813 GENL_ID_VFS_DQUOT = 0x11
814 ICRNL = 0x100 814 GENL_MAX_ID = 0x3ff
815 IEXTEN = 0x8000 815 GENL_MIN_ID = 0x10
816 IFA_F_DADFAILED = 0x8 816 GENL_NAMSIZ = 0x10
817 IFA_F_DEPRECATED = 0x20 817 GENL_START_ALLOC = 0x13
818 IFA_F_HOMEADDRESS = 0x10 818 GENL_UNS_ADMIN_PERM = 0x10
819 IFA_F_MANAGETEMPADDR = 0x100 819 GRND_NONBLOCK = 0x1
820 IFA_F_MCAUTOJOIN = 0x400 820 GRND_RANDOM = 0x2
821 IFA_F_NODAD = 0x2 821 HDIO_DRIVE_CMD = 0x31f
822 IFA_F_NOPREFIXROUTE = 0x200 822 HDIO_DRIVE_CMD_AEB = 0x31e
823 IFA_F_OPTIMISTIC = 0x4 823 HDIO_DRIVE_CMD_HDR_SIZE = 0x4
824 IFA_F_PERMANENT = 0x80 824 HDIO_DRIVE_HOB_HDR_SIZE = 0x8
825 IFA_F_SECONDARY = 0x1 825 HDIO_DRIVE_RESET = 0x31c
826 IFA_F_STABLE_PRIVACY = 0x800 826 HDIO_DRIVE_TASK = 0x31e
827 IFA_F_TEMPORARY = 0x1 827 HDIO_DRIVE_TASKFILE = 0x31d
828 IFA_F_TENTATIVE = 0x40 828 HDIO_DRIVE_TASK_HDR_SIZE = 0x8
829 IFA_MAX = 0xa 829 HDIO_GETGEO = 0x301
830 IFF_ALLMULTI = 0x200 830 HDIO_GET_32BIT = 0x309
831 IFF_ATTACH_QUEUE = 0x200 831 HDIO_GET_ACOUSTIC = 0x30f
832 IFF_AUTOMEDIA = 0x4000 832 HDIO_GET_ADDRESS = 0x310
833 IFF_BROADCAST = 0x2 833 HDIO_GET_BUSSTATE = 0x31a
834 IFF_DEBUG = 0x4 834 HDIO_GET_DMA = 0x30b
835 IFF_DETACH_QUEUE = 0x400 835 HDIO_GET_IDENTITY = 0x30d
836 IFF_DORMANT = 0x20000 836 HDIO_GET_KEEPSETTINGS = 0x308
837 IFF_DYNAMIC = 0x8000 837 HDIO_GET_MULTCOUNT = 0x304
838 IFF_ECHO = 0x40000 838 HDIO_GET_NICE = 0x30c
839 IFF_LOOPBACK = 0x8 839 HDIO_GET_NOWERR = 0x30a
840 IFF_LOWER_UP = 0x10000 840 HDIO_GET_QDMA = 0x305
841 IFF_MASTER = 0x400 841 HDIO_GET_UNMASKINTR = 0x302
842 IFF_MULTICAST = 0x1000 842 HDIO_GET_WCACHE = 0x30e
843 IFF_MULTI_QUEUE = 0x100 843 HDIO_OBSOLETE_IDENTITY = 0x307
844 IFF_NAPI = 0x10 844 HDIO_SCAN_HWIF = 0x328
845 IFF_NAPI_FRAGS = 0x20 845 HDIO_SET_32BIT = 0x324
846 IFF_NOARP = 0x80 846 HDIO_SET_ACOUSTIC = 0x32c
847 IFF_NOFILTER = 0x1000 847 HDIO_SET_ADDRESS = 0x32f
848 IFF_NOTRAILERS = 0x20 848 HDIO_SET_BUSSTATE = 0x32d
849 IFF_NO_PI = 0x1000 849 HDIO_SET_DMA = 0x326
850 IFF_ONE_QUEUE = 0x2000 850 HDIO_SET_KEEPSETTINGS = 0x323
851 IFF_PERSIST = 0x800 851 HDIO_SET_MULTCOUNT = 0x321
852 IFF_POINTOPOINT = 0x10 852 HDIO_SET_NICE = 0x329
853 IFF_PORTSEL = 0x2000 853 HDIO_SET_NOWERR = 0x325
854 IFF_PROMISC = 0x100 854 HDIO_SET_PIO_MODE = 0x327
855 IFF_RUNNING = 0x40 855 HDIO_SET_QDMA = 0x32e
856 IFF_SLAVE = 0x800 856 HDIO_SET_UNMASKINTR = 0x322
857 IFF_TAP = 0x2 857 HDIO_SET_WCACHE = 0x32b
858 IFF_TUN = 0x1 858 HDIO_SET_XFER = 0x306
859 IFF_TUN_EXCL = 0x8000 859 HDIO_TRISTATE_HWIF = 0x31b
860 IFF_UP = 0x1 860 HDIO_UNREGISTER_HWIF = 0x32a
861 IFF_VNET_HDR = 0x4000 861 HOSTFS_SUPER_MAGIC = 0xc0ffee
862 IFF_VOLATILE = 0x70c5a 862 HPFS_SUPER_MAGIC = 0xf995e849
863 IFNAMSIZ = 0x10 863 HUGETLBFS_MAGIC = 0x958458f6
864 IGNBRK = 0x1 864 HUPCL = 0x400
865 IGNCR = 0x80 865 IBSHIFT = 0x10
866 IGNPAR = 0x4 866 ICANON = 0x2
867 IMAXBEL = 0x2000 867 ICMPV6_FILTER = 0x1
868 INLCR = 0x40 868 ICRNL = 0x100
869 INPCK = 0x10 869 IEXTEN = 0x8000
870 IN_ACCESS = 0x1 870 IFA_F_DADFAILED = 0x8
871 IN_ALL_EVENTS = 0xfff 871 IFA_F_DEPRECATED = 0x20
872 IN_ATTRIB = 0x4 872 IFA_F_HOMEADDRESS = 0x10
873 IN_CLASSA_HOST = 0xffffff 873 IFA_F_MANAGETEMPADDR = 0x100
874 IN_CLASSA_MAX = 0x80 874 IFA_F_MCAUTOJOIN = 0x400
875 IN_CLASSA_NET = 0xff000000 875 IFA_F_NODAD = 0x2
876 IN_CLASSA_NSHIFT = 0x18 876 IFA_F_NOPREFIXROUTE = 0x200
877 IN_CLASSB_HOST = 0xffff 877 IFA_F_OPTIMISTIC = 0x4
878 IN_CLASSB_MAX = 0x10000 878 IFA_F_PERMANENT = 0x80
879 IN_CLASSB_NET = 0xffff0000 879 IFA_F_SECONDARY = 0x1
880 IN_CLASSB_NSHIFT = 0x10 880 IFA_F_STABLE_PRIVACY = 0x800
881 IN_CLASSC_HOST = 0xff 881 IFA_F_TEMPORARY = 0x1
882 IN_CLASSC_NET = 0xffffff00 882 IFA_F_TENTATIVE = 0x40
883 IN_CLASSC_NSHIFT = 0x8 883 IFA_MAX = 0xa
884 IN_CLOEXEC = 0x400000 884 IFF_ALLMULTI = 0x200
885 IN_CLOSE = 0x18 885 IFF_ATTACH_QUEUE = 0x200
886 IN_CLOSE_NOWRITE = 0x10 886 IFF_AUTOMEDIA = 0x4000
887 IN_CLOSE_WRITE = 0x8 887 IFF_BROADCAST = 0x2
888 IN_CREATE = 0x100 888 IFF_DEBUG = 0x4
889 IN_DELETE = 0x200 889 IFF_DETACH_QUEUE = 0x400
890 IN_DELETE_SELF = 0x400 890 IFF_DORMANT = 0x20000
891 IN_DONT_FOLLOW = 0x2000000 891 IFF_DYNAMIC = 0x8000
892 IN_EXCL_UNLINK = 0x4000000 892 IFF_ECHO = 0x40000
893 IN_IGNORED = 0x8000 893 IFF_LOOPBACK = 0x8
894 IN_ISDIR = 0x40000000 894 IFF_LOWER_UP = 0x10000
895 IN_LOOPBACKNET = 0x7f 895 IFF_MASTER = 0x400
896 IN_MASK_ADD = 0x20000000 896 IFF_MULTICAST = 0x1000
897 IN_MASK_CREATE = 0x10000000 897 IFF_MULTI_QUEUE = 0x100
898 IN_MODIFY = 0x2 898 IFF_NAPI = 0x10
899 IN_MOVE = 0xc0 899 IFF_NAPI_FRAGS = 0x20
900 IN_MOVED_FROM = 0x40 900 IFF_NOARP = 0x80
901 IN_MOVED_TO = 0x80 901 IFF_NOFILTER = 0x1000
902 IN_MOVE_SELF = 0x800 902 IFF_NOTRAILERS = 0x20
903 IN_NONBLOCK = 0x4000 903 IFF_NO_PI = 0x1000
904 IN_ONESHOT = 0x80000000 904 IFF_ONE_QUEUE = 0x2000
905 IN_ONLYDIR = 0x1000000 905 IFF_PERSIST = 0x800
906 IN_OPEN = 0x20 906 IFF_POINTOPOINT = 0x10
907 IN_Q_OVERFLOW = 0x4000 907 IFF_PORTSEL = 0x2000
908 IN_UNMOUNT = 0x2000 908 IFF_PROMISC = 0x100
909 IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x200007b9 909 IFF_RUNNING = 0x40
910 IPPROTO_AH = 0x33 910 IFF_SLAVE = 0x800
911 IPPROTO_BEETPH = 0x5e 911 IFF_TAP = 0x2
912 IPPROTO_COMP = 0x6c 912 IFF_TUN = 0x1
913 IPPROTO_DCCP = 0x21 913 IFF_TUN_EXCL = 0x8000
914 IPPROTO_DSTOPTS = 0x3c 914 IFF_UP = 0x1
915 IPPROTO_EGP = 0x8 915 IFF_VNET_HDR = 0x4000
916 IPPROTO_ENCAP = 0x62 916 IFF_VOLATILE = 0x70c5a
917 IPPROTO_ESP = 0x32 917 IFNAMSIZ = 0x10
918 IPPROTO_FRAGMENT = 0x2c 918 IGNBRK = 0x1
919 IPPROTO_GRE = 0x2f 919 IGNCR = 0x80
920 IPPROTO_HOPOPTS = 0x0 920 IGNPAR = 0x4
921 IPPROTO_ICMP = 0x1 921 IMAXBEL = 0x2000
922 IPPROTO_ICMPV6 = 0x3a 922 INLCR = 0x40
923 IPPROTO_IDP = 0x16 923 INPCK = 0x10
924 IPPROTO_IGMP = 0x2 924 IN_ACCESS = 0x1
925 IPPROTO_IP = 0x0 925 IN_ALL_EVENTS = 0xfff
926 IPPROTO_IPIP = 0x4 926 IN_ATTRIB = 0x4
927 IPPROTO_IPV6 = 0x29 927 IN_CLASSA_HOST = 0xffffff
928 IPPROTO_MH = 0x87 928 IN_CLASSA_MAX = 0x80
929 IPPROTO_MPLS = 0x89 929 IN_CLASSA_NET = 0xff000000
930 IPPROTO_MTP = 0x5c 930 IN_CLASSA_NSHIFT = 0x18
931 IPPROTO_NONE = 0x3b 931 IN_CLASSB_HOST = 0xffff
932 IPPROTO_PIM = 0x67 932 IN_CLASSB_MAX = 0x10000
933 IPPROTO_PUP = 0xc 933 IN_CLASSB_NET = 0xffff0000
934 IPPROTO_RAW = 0xff 934 IN_CLASSB_NSHIFT = 0x10
935 IPPROTO_ROUTING = 0x2b 935 IN_CLASSC_HOST = 0xff
936 IPPROTO_RSVP = 0x2e 936 IN_CLASSC_NET = 0xffffff00
937 IPPROTO_SCTP = 0x84 937 IN_CLASSC_NSHIFT = 0x8
938 IPPROTO_TCP = 0x6 938 IN_CLOEXEC = 0x400000
939 IPPROTO_TP = 0x1d 939 IN_CLOSE = 0x18
940 IPPROTO_UDP = 0x11 940 IN_CLOSE_NOWRITE = 0x10
941 IPPROTO_UDPLITE = 0x88 941 IN_CLOSE_WRITE = 0x8
942 IPV6_2292DSTOPTS = 0x4 942 IN_CREATE = 0x100
943 IPV6_2292HOPLIMIT = 0x8 943 IN_DELETE = 0x200
944 IPV6_2292HOPOPTS = 0x3 944 IN_DELETE_SELF = 0x400
945 IPV6_2292PKTINFO = 0x2 945 IN_DONT_FOLLOW = 0x2000000
946 IPV6_2292PKTOPTIONS = 0x6 946 IN_EXCL_UNLINK = 0x4000000
947 IPV6_2292RTHDR = 0x5 947 IN_IGNORED = 0x8000
948 IPV6_ADDRFORM = 0x1 948 IN_ISDIR = 0x40000000
949 IPV6_ADDR_PREFERENCES = 0x48 949 IN_LOOPBACKNET = 0x7f
950 IPV6_ADD_MEMBERSHIP = 0x14 950 IN_MASK_ADD = 0x20000000
951 IPV6_AUTHHDR = 0xa 951 IN_MASK_CREATE = 0x10000000
952 IPV6_AUTOFLOWLABEL = 0x46 952 IN_MODIFY = 0x2
953 IPV6_CHECKSUM = 0x7 953 IN_MOVE = 0xc0
954 IPV6_DONTFRAG = 0x3e 954 IN_MOVED_FROM = 0x40
955 IPV6_DROP_MEMBERSHIP = 0x15 955 IN_MOVED_TO = 0x80
956 IPV6_DSTOPTS = 0x3b 956 IN_MOVE_SELF = 0x800
957 IPV6_FREEBIND = 0x4e 957 IN_NONBLOCK = 0x4000
958 IPV6_HDRINCL = 0x24 958 IN_ONESHOT = 0x80000000
959 IPV6_HOPLIMIT = 0x34 959 IN_ONLYDIR = 0x1000000
960 IPV6_HOPOPTS = 0x36 960 IN_OPEN = 0x20
961 IPV6_IPSEC_POLICY = 0x22 961 IN_Q_OVERFLOW = 0x4000
962 IPV6_JOIN_ANYCAST = 0x1b 962 IN_UNMOUNT = 0x2000
963 IPV6_JOIN_GROUP = 0x14 963 IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x200007b9
964 IPV6_LEAVE_ANYCAST = 0x1c 964 IPPROTO_AH = 0x33
965 IPV6_LEAVE_GROUP = 0x15 965 IPPROTO_BEETPH = 0x5e
966 IPV6_MINHOPCOUNT = 0x49 966 IPPROTO_COMP = 0x6c
967 IPV6_MTU = 0x18 967 IPPROTO_DCCP = 0x21
968 IPV6_MTU_DISCOVER = 0x17 968 IPPROTO_DSTOPTS = 0x3c
969 IPV6_MULTICAST_ALL = 0x1d 969 IPPROTO_EGP = 0x8
970 IPV6_MULTICAST_HOPS = 0x12 970 IPPROTO_ENCAP = 0x62
971 IPV6_MULTICAST_IF = 0x11 971 IPPROTO_ESP = 0x32
972 IPV6_MULTICAST_LOOP = 0x13 972 IPPROTO_FRAGMENT = 0x2c
973 IPV6_NEXTHOP = 0x9 973 IPPROTO_GRE = 0x2f
974 IPV6_ORIGDSTADDR = 0x4a 974 IPPROTO_HOPOPTS = 0x0
975 IPV6_PATHMTU = 0x3d 975 IPPROTO_ICMP = 0x1
976 IPV6_PKTINFO = 0x32 976 IPPROTO_ICMPV6 = 0x3a
977 IPV6_PMTUDISC_DO = 0x2 977 IPPROTO_IDP = 0x16
978 IPV6_PMTUDISC_DONT = 0x0 978 IPPROTO_IGMP = 0x2
979 IPV6_PMTUDISC_INTERFACE = 0x4 979 IPPROTO_IP = 0x0
980 IPV6_PMTUDISC_OMIT = 0x5 980 IPPROTO_IPIP = 0x4
981 IPV6_PMTUDISC_PROBE = 0x3 981 IPPROTO_IPV6 = 0x29
982 IPV6_PMTUDISC_WANT = 0x1 982 IPPROTO_MH = 0x87
983 IPV6_RECVDSTOPTS = 0x3a 983 IPPROTO_MPLS = 0x89
984 IPV6_RECVERR = 0x19 984 IPPROTO_MTP = 0x5c
985 IPV6_RECVFRAGSIZE = 0x4d 985 IPPROTO_NONE = 0x3b
986 IPV6_RECVHOPLIMIT = 0x33 986 IPPROTO_PIM = 0x67
987 IPV6_RECVHOPOPTS = 0x35 987 IPPROTO_PUP = 0xc
988 IPV6_RECVORIGDSTADDR = 0x4a 988 IPPROTO_RAW = 0xff
989 IPV6_RECVPATHMTU = 0x3c 989 IPPROTO_ROUTING = 0x2b
990 IPV6_RECVPKTINFO = 0x31 990 IPPROTO_RSVP = 0x2e
991 IPV6_RECVRTHDR = 0x38 991 IPPROTO_SCTP = 0x84
992 IPV6_RECVTCLASS = 0x42 992 IPPROTO_TCP = 0x6
993 IPV6_ROUTER_ALERT = 0x16 993 IPPROTO_TP = 0x1d
994 IPV6_ROUTER_ALERT_ISOLATE = 0x1e 994 IPPROTO_UDP = 0x11
995 IPV6_RTHDR = 0x39 995 IPPROTO_UDPLITE = 0x88
996 IPV6_RTHDRDSTOPTS = 0x37 996 IPV6_2292DSTOPTS = 0x4
997 IPV6_RTHDR_LOOSE = 0x0 997 IPV6_2292HOPLIMIT = 0x8
998 IPV6_RTHDR_STRICT = 0x1 998 IPV6_2292HOPOPTS = 0x3
999 IPV6_RTHDR_TYPE_0 = 0x0 999 IPV6_2292PKTINFO = 0x2
1000 IPV6_RXDSTOPTS = 0x3b 1000 IPV6_2292PKTOPTIONS = 0x6
1001 IPV6_RXHOPOPTS = 0x36 1001 IPV6_2292RTHDR = 0x5
1002 IPV6_TCLASS = 0x43 1002 IPV6_ADDRFORM = 0x1
1003 IPV6_TRANSPARENT = 0x4b 1003 IPV6_ADDR_PREFERENCES = 0x48
1004 IPV6_UNICAST_HOPS = 0x10 1004 IPV6_ADD_MEMBERSHIP = 0x14
1005 IPV6_UNICAST_IF = 0x4c 1005 IPV6_AUTHHDR = 0xa
1006 IPV6_V6ONLY = 0x1a 1006 IPV6_AUTOFLOWLABEL = 0x46
1007 IPV6_XFRM_POLICY = 0x23 1007 IPV6_CHECKSUM = 0x7
1008 IP_ADD_MEMBERSHIP = 0x23 1008 IPV6_DONTFRAG = 0x3e
1009 IP_ADD_SOURCE_MEMBERSHIP = 0x27 1009 IPV6_DROP_MEMBERSHIP = 0x15
1010 IP_BIND_ADDRESS_NO_PORT = 0x18 1010 IPV6_DSTOPTS = 0x3b
1011 IP_BLOCK_SOURCE = 0x26 1011 IPV6_FREEBIND = 0x4e
1012 IP_CHECKSUM = 0x17 1012 IPV6_HDRINCL = 0x24
1013 IP_DEFAULT_MULTICAST_LOOP = 0x1 1013 IPV6_HOPLIMIT = 0x34
1014 IP_DEFAULT_MULTICAST_TTL = 0x1 1014 IPV6_HOPOPTS = 0x36
1015 IP_DF = 0x4000 1015 IPV6_IPSEC_POLICY = 0x22
1016 IP_DROP_MEMBERSHIP = 0x24 1016 IPV6_JOIN_ANYCAST = 0x1b
1017 IP_DROP_SOURCE_MEMBERSHIP = 0x28 1017 IPV6_JOIN_GROUP = 0x14
1018 IP_FREEBIND = 0xf 1018 IPV6_LEAVE_ANYCAST = 0x1c
1019 IP_HDRINCL = 0x3 1019 IPV6_LEAVE_GROUP = 0x15
1020 IP_IPSEC_POLICY = 0x10 1020 IPV6_MINHOPCOUNT = 0x49
1021 IP_MAXPACKET = 0xffff 1021 IPV6_MTU = 0x18
1022 IP_MAX_MEMBERSHIPS = 0x14 1022 IPV6_MTU_DISCOVER = 0x17
1023 IP_MF = 0x2000 1023 IPV6_MULTICAST_ALL = 0x1d
1024 IP_MINTTL = 0x15 1024 IPV6_MULTICAST_HOPS = 0x12
1025 IP_MSFILTER = 0x29 1025 IPV6_MULTICAST_IF = 0x11
1026 IP_MSS = 0x240 1026 IPV6_MULTICAST_LOOP = 0x13
1027 IP_MTU = 0xe 1027 IPV6_NEXTHOP = 0x9
1028 IP_MTU_DISCOVER = 0xa 1028 IPV6_ORIGDSTADDR = 0x4a
1029 IP_MULTICAST_ALL = 0x31 1029 IPV6_PATHMTU = 0x3d
1030 IP_MULTICAST_IF = 0x20 1030 IPV6_PKTINFO = 0x32
1031 IP_MULTICAST_LOOP = 0x22 1031 IPV6_PMTUDISC_DO = 0x2
1032 IP_MULTICAST_TTL = 0x21 1032 IPV6_PMTUDISC_DONT = 0x0
1033 IP_NODEFRAG = 0x16 1033 IPV6_PMTUDISC_INTERFACE = 0x4
1034 IP_OFFMASK = 0x1fff 1034 IPV6_PMTUDISC_OMIT = 0x5
1035 IP_OPTIONS = 0x4 1035 IPV6_PMTUDISC_PROBE = 0x3
1036 IP_ORIGDSTADDR = 0x14 1036 IPV6_PMTUDISC_WANT = 0x1
1037 IP_PASSSEC = 0x12 1037 IPV6_RECVDSTOPTS = 0x3a
1038 IP_PKTINFO = 0x8 1038 IPV6_RECVERR = 0x19
1039 IP_PKTOPTIONS = 0x9 1039 IPV6_RECVFRAGSIZE = 0x4d
1040 IP_PMTUDISC = 0xa 1040 IPV6_RECVHOPLIMIT = 0x33
1041 IP_PMTUDISC_DO = 0x2 1041 IPV6_RECVHOPOPTS = 0x35
1042 IP_PMTUDISC_DONT = 0x0 1042 IPV6_RECVORIGDSTADDR = 0x4a
1043 IP_PMTUDISC_INTERFACE = 0x4 1043 IPV6_RECVPATHMTU = 0x3c
1044 IP_PMTUDISC_OMIT = 0x5 1044 IPV6_RECVPKTINFO = 0x31
1045 IP_PMTUDISC_PROBE = 0x3 1045 IPV6_RECVRTHDR = 0x38
1046 IP_PMTUDISC_WANT = 0x1 1046 IPV6_RECVTCLASS = 0x42
1047 IP_RECVERR = 0xb 1047 IPV6_ROUTER_ALERT = 0x16
1048 IP_RECVFRAGSIZE = 0x19 1048 IPV6_ROUTER_ALERT_ISOLATE = 0x1e
1049 IP_RECVOPTS = 0x6 1049 IPV6_RTHDR = 0x39
1050 IP_RECVORIGDSTADDR = 0x14 1050 IPV6_RTHDRDSTOPTS = 0x37
1051 IP_RECVRETOPTS = 0x7 1051 IPV6_RTHDR_LOOSE = 0x0
1052 IP_RECVTOS = 0xd 1052 IPV6_RTHDR_STRICT = 0x1
1053 IP_RECVTTL = 0xc 1053 IPV6_RTHDR_TYPE_0 = 0x0
1054 IP_RETOPTS = 0x7 1054 IPV6_RXDSTOPTS = 0x3b
1055 IP_RF = 0x8000 1055 IPV6_RXHOPOPTS = 0x36
1056 IP_ROUTER_ALERT = 0x5 1056 IPV6_TCLASS = 0x43
1057 IP_TOS = 0x1 1057 IPV6_TRANSPARENT = 0x4b
1058 IP_TRANSPARENT = 0x13 1058 IPV6_UNICAST_HOPS = 0x10
1059 IP_TTL = 0x2 1059 IPV6_UNICAST_IF = 0x4c
1060 IP_UNBLOCK_SOURCE = 0x25 1060 IPV6_V6ONLY = 0x1a
1061 IP_UNICAST_IF = 0x32 1061 IPV6_XFRM_POLICY = 0x23
1062 IP_XFRM_POLICY = 0x11 1062 IP_ADD_MEMBERSHIP = 0x23
1063 ISIG = 0x1 1063 IP_ADD_SOURCE_MEMBERSHIP = 0x27
1064 ISOFS_SUPER_MAGIC = 0x9660 1064 IP_BIND_ADDRESS_NO_PORT = 0x18
1065 ISTRIP = 0x20 1065 IP_BLOCK_SOURCE = 0x26
1066 IUCLC = 0x200 1066 IP_CHECKSUM = 0x17
1067 IUTF8 = 0x4000 1067 IP_DEFAULT_MULTICAST_LOOP = 0x1
1068 IXANY = 0x800 1068 IP_DEFAULT_MULTICAST_TTL = 0x1
1069 IXOFF = 0x1000 1069 IP_DF = 0x4000
1070 IXON = 0x400 1070 IP_DROP_MEMBERSHIP = 0x24
1071 JFFS2_SUPER_MAGIC = 0x72b6 1071 IP_DROP_SOURCE_MEMBERSHIP = 0x28
1072 KEXEC_ARCH_386 = 0x30000 1072 IP_FREEBIND = 0xf
1073 KEXEC_ARCH_68K = 0x40000 1073 IP_HDRINCL = 0x3
1074 KEXEC_ARCH_AARCH64 = 0xb70000 1074 IP_IPSEC_POLICY = 0x10
1075 KEXEC_ARCH_ARM = 0x280000 1075 IP_MAXPACKET = 0xffff
1076 KEXEC_ARCH_DEFAULT = 0x0 1076 IP_MAX_MEMBERSHIPS = 0x14
1077 KEXEC_ARCH_IA_64 = 0x320000 1077 IP_MF = 0x2000
1078 KEXEC_ARCH_MASK = 0xffff0000 1078 IP_MINTTL = 0x15
1079 KEXEC_ARCH_MIPS = 0x80000 1079 IP_MSFILTER = 0x29
1080 KEXEC_ARCH_MIPS_LE = 0xa0000 1080 IP_MSS = 0x240
1081 KEXEC_ARCH_PPC = 0x140000 1081 IP_MTU = 0xe
1082 KEXEC_ARCH_PPC64 = 0x150000 1082 IP_MTU_DISCOVER = 0xa
1083 KEXEC_ARCH_S390 = 0x160000 1083 IP_MULTICAST_ALL = 0x31
1084 KEXEC_ARCH_SH = 0x2a0000 1084 IP_MULTICAST_IF = 0x20
1085 KEXEC_ARCH_X86_64 = 0x3e0000 1085 IP_MULTICAST_LOOP = 0x22
1086 KEXEC_FILE_NO_INITRAMFS = 0x4 1086 IP_MULTICAST_TTL = 0x21
1087 KEXEC_FILE_ON_CRASH = 0x2 1087 IP_NODEFRAG = 0x16
1088 KEXEC_FILE_UNLOAD = 0x1 1088 IP_OFFMASK = 0x1fff
1089 KEXEC_ON_CRASH = 0x1 1089 IP_OPTIONS = 0x4
1090 KEXEC_PRESERVE_CONTEXT = 0x2 1090 IP_ORIGDSTADDR = 0x14
1091 KEXEC_SEGMENT_MAX = 0x10 1091 IP_PASSSEC = 0x12
1092 KEYCTL_ASSUME_AUTHORITY = 0x10 1092 IP_PKTINFO = 0x8
1093 KEYCTL_CHOWN = 0x4 1093 IP_PKTOPTIONS = 0x9
1094 KEYCTL_CLEAR = 0x7 1094 IP_PMTUDISC = 0xa
1095 KEYCTL_DESCRIBE = 0x6 1095 IP_PMTUDISC_DO = 0x2
1096 KEYCTL_DH_COMPUTE = 0x17 1096 IP_PMTUDISC_DONT = 0x0
1097 KEYCTL_GET_KEYRING_ID = 0x0 1097 IP_PMTUDISC_INTERFACE = 0x4
1098 KEYCTL_GET_PERSISTENT = 0x16 1098 IP_PMTUDISC_OMIT = 0x5
1099 KEYCTL_GET_SECURITY = 0x11 1099 IP_PMTUDISC_PROBE = 0x3
1100 KEYCTL_INSTANTIATE = 0xc 1100 IP_PMTUDISC_WANT = 0x1
1101 KEYCTL_INSTANTIATE_IOV = 0x14 1101 IP_RECVERR = 0xb
1102 KEYCTL_INVALIDATE = 0x15 1102 IP_RECVFRAGSIZE = 0x19
1103 KEYCTL_JOIN_SESSION_KEYRING = 0x1 1103 IP_RECVOPTS = 0x6
1104 KEYCTL_LINK = 0x8 1104 IP_RECVORIGDSTADDR = 0x14
1105 KEYCTL_NEGATE = 0xd 1105 IP_RECVRETOPTS = 0x7
1106 KEYCTL_PKEY_DECRYPT = 0x1a 1106 IP_RECVTOS = 0xd
1107 KEYCTL_PKEY_ENCRYPT = 0x19 1107 IP_RECVTTL = 0xc
1108 KEYCTL_PKEY_QUERY = 0x18 1108 IP_RETOPTS = 0x7
1109 KEYCTL_PKEY_SIGN = 0x1b 1109 IP_RF = 0x8000
1110 KEYCTL_PKEY_VERIFY = 0x1c 1110 IP_ROUTER_ALERT = 0x5
1111 KEYCTL_READ = 0xb 1111 IP_TOS = 0x1
1112 KEYCTL_REJECT = 0x13 1112 IP_TRANSPARENT = 0x13
1113 KEYCTL_RESTRICT_KEYRING = 0x1d 1113 IP_TTL = 0x2
1114 KEYCTL_REVOKE = 0x3 1114 IP_UNBLOCK_SOURCE = 0x25
1115 KEYCTL_SEARCH = 0xa 1115 IP_UNICAST_IF = 0x32
1116 KEYCTL_SESSION_TO_PARENT = 0x12 1116 IP_XFRM_POLICY = 0x11
1117 KEYCTL_SETPERM = 0x5 1117 ISIG = 0x1
1118 KEYCTL_SET_REQKEY_KEYRING = 0xe 1118 ISOFS_SUPER_MAGIC = 0x9660
1119 KEYCTL_SET_TIMEOUT = 0xf 1119 ISTRIP = 0x20
1120 KEYCTL_SUPPORTS_DECRYPT = 0x2 1120 IUCLC = 0x200
1121 KEYCTL_SUPPORTS_ENCRYPT = 0x1 1121 IUTF8 = 0x4000
1122 KEYCTL_SUPPORTS_SIGN = 0x4 1122 IXANY = 0x800
1123 KEYCTL_SUPPORTS_VERIFY = 0x8 1123 IXOFF = 0x1000
1124 KEYCTL_UNLINK = 0x9 1124 IXON = 0x400
1125 KEYCTL_UPDATE = 0x2 1125 JFFS2_SUPER_MAGIC = 0x72b6
1126 KEY_REQKEY_DEFL_DEFAULT = 0x0 1126 KEXEC_ARCH_386 = 0x30000
1127 KEY_REQKEY_DEFL_GROUP_KEYRING = 0x6 1127 KEXEC_ARCH_68K = 0x40000
1128 KEY_REQKEY_DEFL_NO_CHANGE = -0x1 1128 KEXEC_ARCH_AARCH64 = 0xb70000
1129 KEY_REQKEY_DEFL_PROCESS_KEYRING = 0x2 1129 KEXEC_ARCH_ARM = 0x280000
1130 KEY_REQKEY_DEFL_REQUESTOR_KEYRING = 0x7 1130 KEXEC_ARCH_DEFAULT = 0x0
1131 KEY_REQKEY_DEFL_SESSION_KEYRING = 0x3 1131 KEXEC_ARCH_IA_64 = 0x320000
1132 KEY_REQKEY_DEFL_THREAD_KEYRING = 0x1 1132 KEXEC_ARCH_MASK = 0xffff0000
1133 KEY_REQKEY_DEFL_USER_KEYRING = 0x4 1133 KEXEC_ARCH_MIPS = 0x80000
1134 KEY_REQKEY_DEFL_USER_SESSION_KEYRING = 0x5 1134 KEXEC_ARCH_MIPS_LE = 0xa0000
1135 KEY_SPEC_GROUP_KEYRING = -0x6 1135 KEXEC_ARCH_PARISC = 0xf0000
1136 KEY_SPEC_PROCESS_KEYRING = -0x2 1136 KEXEC_ARCH_PPC = 0x140000
1137 KEY_SPEC_REQKEY_AUTH_KEY = -0x7 1137 KEXEC_ARCH_PPC64 = 0x150000
1138 KEY_SPEC_REQUESTOR_KEYRING = -0x8 1138 KEXEC_ARCH_S390 = 0x160000
1139 KEY_SPEC_SESSION_KEYRING = -0x3 1139 KEXEC_ARCH_SH = 0x2a0000
1140 KEY_SPEC_THREAD_KEYRING = -0x1 1140 KEXEC_ARCH_X86_64 = 0x3e0000
1141 KEY_SPEC_USER_KEYRING = -0x4 1141 KEXEC_FILE_NO_INITRAMFS = 0x4
1142 KEY_SPEC_USER_SESSION_KEYRING = -0x5 1142 KEXEC_FILE_ON_CRASH = 0x2
1143 LINUX_REBOOT_CMD_CAD_OFF = 0x0 1143 KEXEC_FILE_UNLOAD = 0x1
1144 LINUX_REBOOT_CMD_CAD_ON = 0x89abcdef 1144 KEXEC_ON_CRASH = 0x1
1145 LINUX_REBOOT_CMD_HALT = 0xcdef0123 1145 KEXEC_PRESERVE_CONTEXT = 0x2
1146 LINUX_REBOOT_CMD_KEXEC = 0x45584543 1146 KEXEC_SEGMENT_MAX = 0x10
1147 LINUX_REBOOT_CMD_POWER_OFF = 0x4321fedc 1147 KEYCTL_ASSUME_AUTHORITY = 0x10
1148 LINUX_REBOOT_CMD_RESTART = 0x1234567 1148 KEYCTL_CAPABILITIES = 0x1f
1149 LINUX_REBOOT_CMD_RESTART2 = 0xa1b2c3d4 1149 KEYCTL_CAPS0_BIG_KEY = 0x10
1150 LINUX_REBOOT_CMD_SW_SUSPEND = 0xd000fce2 1150 KEYCTL_CAPS0_CAPABILITIES = 0x1
1151 LINUX_REBOOT_MAGIC1 = 0xfee1dead 1151 KEYCTL_CAPS0_DIFFIE_HELLMAN = 0x4
1152 LINUX_REBOOT_MAGIC2 = 0x28121969 1152 KEYCTL_CAPS0_INVALIDATE = 0x20
1153 LOCK_EX = 0x2 1153 KEYCTL_CAPS0_MOVE = 0x80
1154 LOCK_NB = 0x4 1154 KEYCTL_CAPS0_PERSISTENT_KEYRINGS = 0x2
1155 LOCK_SH = 0x1 1155 KEYCTL_CAPS0_PUBLIC_KEY = 0x8
1156 LOCK_UN = 0x8 1156 KEYCTL_CAPS0_RESTRICT_KEYRING = 0x40
1157 LOOP_CLR_FD = 0x4c01 1157 KEYCTL_CAPS1_NS_KEYRING_NAME = 0x1
1158 LOOP_CTL_ADD = 0x4c80 1158 KEYCTL_CAPS1_NS_KEY_TAG = 0x2
1159 LOOP_CTL_GET_FREE = 0x4c82 1159 KEYCTL_CHOWN = 0x4
1160 LOOP_CTL_REMOVE = 0x4c81 1160 KEYCTL_CLEAR = 0x7
1161 LOOP_GET_STATUS = 0x4c03 1161 KEYCTL_DESCRIBE = 0x6
1162 LOOP_GET_STATUS64 = 0x4c05 1162 KEYCTL_DH_COMPUTE = 0x17
1163 LOOP_SET_BLOCK_SIZE = 0x4c09 1163 KEYCTL_GET_KEYRING_ID = 0x0
1164 LOOP_SET_CAPACITY = 0x4c07 1164 KEYCTL_GET_PERSISTENT = 0x16
1165 LOOP_SET_DIRECT_IO = 0x4c08 1165 KEYCTL_GET_SECURITY = 0x11
1166 LOOP_SET_FD = 0x4c00 1166 KEYCTL_INSTANTIATE = 0xc
1167 LOOP_SET_STATUS = 0x4c02 1167 KEYCTL_INSTANTIATE_IOV = 0x14
1168 LOOP_SET_STATUS64 = 0x4c04 1168 KEYCTL_INVALIDATE = 0x15
1169 LO_KEY_SIZE = 0x20 1169 KEYCTL_JOIN_SESSION_KEYRING = 0x1
1170 LO_NAME_SIZE = 0x40 1170 KEYCTL_LINK = 0x8
1171 MADV_DODUMP = 0x11 1171 KEYCTL_MOVE = 0x1e
1172 MADV_DOFORK = 0xb 1172 KEYCTL_MOVE_EXCL = 0x1
1173 MADV_DONTDUMP = 0x10 1173 KEYCTL_NEGATE = 0xd
1174 MADV_DONTFORK = 0xa 1174 KEYCTL_PKEY_DECRYPT = 0x1a
1175 MADV_DONTNEED = 0x4 1175 KEYCTL_PKEY_ENCRYPT = 0x19
1176 MADV_FREE = 0x8 1176 KEYCTL_PKEY_QUERY = 0x18
1177 MADV_HUGEPAGE = 0xe 1177 KEYCTL_PKEY_SIGN = 0x1b
1178 MADV_HWPOISON = 0x64 1178 KEYCTL_PKEY_VERIFY = 0x1c
1179 MADV_KEEPONFORK = 0x13 1179 KEYCTL_READ = 0xb
1180 MADV_MERGEABLE = 0xc 1180 KEYCTL_REJECT = 0x13
1181 MADV_NOHUGEPAGE = 0xf 1181 KEYCTL_RESTRICT_KEYRING = 0x1d
1182 MADV_NORMAL = 0x0 1182 KEYCTL_REVOKE = 0x3
1183 MADV_RANDOM = 0x1 1183 KEYCTL_SEARCH = 0xa
1184 MADV_REMOVE = 0x9 1184 KEYCTL_SESSION_TO_PARENT = 0x12
1185 MADV_SEQUENTIAL = 0x2 1185 KEYCTL_SETPERM = 0x5
1186 MADV_UNMERGEABLE = 0xd 1186 KEYCTL_SET_REQKEY_KEYRING = 0xe
1187 MADV_WILLNEED = 0x3 1187 KEYCTL_SET_TIMEOUT = 0xf
1188 MADV_WIPEONFORK = 0x12 1188 KEYCTL_SUPPORTS_DECRYPT = 0x2
1189 MAP_ANON = 0x20 1189 KEYCTL_SUPPORTS_ENCRYPT = 0x1
1190 MAP_ANONYMOUS = 0x20 1190 KEYCTL_SUPPORTS_SIGN = 0x4
1191 MAP_DENYWRITE = 0x800 1191 KEYCTL_SUPPORTS_VERIFY = 0x8
1192 MAP_EXECUTABLE = 0x1000 1192 KEYCTL_UNLINK = 0x9
1193 MAP_FILE = 0x0 1193 KEYCTL_UPDATE = 0x2
1194 MAP_FIXED = 0x10 1194 KEY_REQKEY_DEFL_DEFAULT = 0x0
1195 MAP_FIXED_NOREPLACE = 0x100000 1195 KEY_REQKEY_DEFL_GROUP_KEYRING = 0x6
1196 MAP_GROWSDOWN = 0x200 1196 KEY_REQKEY_DEFL_NO_CHANGE = -0x1
1197 MAP_HUGETLB = 0x40000 1197 KEY_REQKEY_DEFL_PROCESS_KEYRING = 0x2
1198 MAP_HUGE_MASK = 0x3f 1198 KEY_REQKEY_DEFL_REQUESTOR_KEYRING = 0x7
1199 MAP_HUGE_SHIFT = 0x1a 1199 KEY_REQKEY_DEFL_SESSION_KEYRING = 0x3
1200 MAP_LOCKED = 0x100 1200 KEY_REQKEY_DEFL_THREAD_KEYRING = 0x1
1201 MAP_NONBLOCK = 0x10000 1201 KEY_REQKEY_DEFL_USER_KEYRING = 0x4
1202 MAP_NORESERVE = 0x40 1202 KEY_REQKEY_DEFL_USER_SESSION_KEYRING = 0x5
1203 MAP_POPULATE = 0x8000 1203 KEY_SPEC_GROUP_KEYRING = -0x6
1204 MAP_PRIVATE = 0x2 1204 KEY_SPEC_PROCESS_KEYRING = -0x2
1205 MAP_RENAME = 0x20 1205 KEY_SPEC_REQKEY_AUTH_KEY = -0x7
1206 MAP_SHARED = 0x1 1206 KEY_SPEC_REQUESTOR_KEYRING = -0x8
1207 MAP_SHARED_VALIDATE = 0x3 1207 KEY_SPEC_SESSION_KEYRING = -0x3
1208 MAP_STACK = 0x20000 1208 KEY_SPEC_THREAD_KEYRING = -0x1
1209 MAP_TYPE = 0xf 1209 KEY_SPEC_USER_KEYRING = -0x4
1210 MCAST_BLOCK_SOURCE = 0x2b 1210 KEY_SPEC_USER_SESSION_KEYRING = -0x5
1211 MCAST_EXCLUDE = 0x0 1211 LINUX_REBOOT_CMD_CAD_OFF = 0x0
1212 MCAST_INCLUDE = 0x1 1212 LINUX_REBOOT_CMD_CAD_ON = 0x89abcdef
1213 MCAST_JOIN_GROUP = 0x2a 1213 LINUX_REBOOT_CMD_HALT = 0xcdef0123
1214 MCAST_JOIN_SOURCE_GROUP = 0x2e 1214 LINUX_REBOOT_CMD_KEXEC = 0x45584543
1215 MCAST_LEAVE_GROUP = 0x2d 1215 LINUX_REBOOT_CMD_POWER_OFF = 0x4321fedc
1216 MCAST_LEAVE_SOURCE_GROUP = 0x2f 1216 LINUX_REBOOT_CMD_RESTART = 0x1234567
1217 MCAST_MSFILTER = 0x30 1217 LINUX_REBOOT_CMD_RESTART2 = 0xa1b2c3d4
1218 MCAST_UNBLOCK_SOURCE = 0x2c 1218 LINUX_REBOOT_CMD_SW_SUSPEND = 0xd000fce2
1219 MCL_CURRENT = 0x2000 1219 LINUX_REBOOT_MAGIC1 = 0xfee1dead
1220 MCL_FUTURE = 0x4000 1220 LINUX_REBOOT_MAGIC2 = 0x28121969
1221 MCL_ONFAULT = 0x8000 1221 LOCK_EX = 0x2
1222 MFD_ALLOW_SEALING = 0x2 1222 LOCK_NB = 0x4
1223 MFD_CLOEXEC = 0x1 1223 LOCK_SH = 0x1
1224 MFD_HUGETLB = 0x4 1224 LOCK_UN = 0x8
1225 MFD_HUGE_16GB = -0x78000000 1225 LOOP_CLR_FD = 0x4c01
1226 MFD_HUGE_16MB = 0x60000000 1226 LOOP_CTL_ADD = 0x4c80
1227 MFD_HUGE_1GB = 0x78000000 1227 LOOP_CTL_GET_FREE = 0x4c82
1228 MFD_HUGE_1MB = 0x50000000 1228 LOOP_CTL_REMOVE = 0x4c81
1229 MFD_HUGE_256MB = 0x70000000 1229 LOOP_GET_STATUS = 0x4c03
1230 MFD_HUGE_2GB = 0x7c000000 1230 LOOP_GET_STATUS64 = 0x4c05
1231 MFD_HUGE_2MB = 0x54000000 1231 LOOP_SET_BLOCK_SIZE = 0x4c09
1232 MFD_HUGE_32MB = 0x64000000 1232 LOOP_SET_CAPACITY = 0x4c07
1233 MFD_HUGE_512KB = 0x4c000000 1233 LOOP_SET_DIRECT_IO = 0x4c08
1234 MFD_HUGE_512MB = 0x74000000 1234 LOOP_SET_FD = 0x4c00
1235 MFD_HUGE_64KB = 0x40000000 1235 LOOP_SET_STATUS = 0x4c02
1236 MFD_HUGE_8MB = 0x5c000000 1236 LOOP_SET_STATUS64 = 0x4c04
1237 MFD_HUGE_MASK = 0x3f 1237 LO_KEY_SIZE = 0x20
1238 MFD_HUGE_SHIFT = 0x1a 1238 LO_NAME_SIZE = 0x40
1239 MINIX2_SUPER_MAGIC = 0x2468 1239 MADV_COLD = 0x14
1240 MINIX2_SUPER_MAGIC2 = 0x2478 1240 MADV_DODUMP = 0x11
1241 MINIX3_SUPER_MAGIC = 0x4d5a 1241 MADV_DOFORK = 0xb
1242 MINIX_SUPER_MAGIC = 0x137f 1242 MADV_DONTDUMP = 0x10
1243 MINIX_SUPER_MAGIC2 = 0x138f 1243 MADV_DONTFORK = 0xa
1244 MNT_DETACH = 0x2 1244 MADV_DONTNEED = 0x4
1245 MNT_EXPIRE = 0x4 1245 MADV_FREE = 0x8
1246 MNT_FORCE = 0x1 1246 MADV_HUGEPAGE = 0xe
1247 MODULE_INIT_IGNORE_MODVERSIONS = 0x1 1247 MADV_HWPOISON = 0x64
1248 MODULE_INIT_IGNORE_VERMAGIC = 0x2 1248 MADV_KEEPONFORK = 0x13
1249 MSDOS_SUPER_MAGIC = 0x4d44 1249 MADV_MERGEABLE = 0xc
1250 MSG_BATCH = 0x40000 1250 MADV_NOHUGEPAGE = 0xf
1251 MSG_CMSG_CLOEXEC = 0x40000000 1251 MADV_NORMAL = 0x0
1252 MSG_CONFIRM = 0x800 1252 MADV_PAGEOUT = 0x15
1253 MSG_CTRUNC = 0x8 1253 MADV_RANDOM = 0x1
1254 MSG_DONTROUTE = 0x4 1254 MADV_REMOVE = 0x9
1255 MSG_DONTWAIT = 0x40 1255 MADV_SEQUENTIAL = 0x2
1256 MSG_EOR = 0x80 1256 MADV_UNMERGEABLE = 0xd
1257 MSG_ERRQUEUE = 0x2000 1257 MADV_WILLNEED = 0x3
1258 MSG_FASTOPEN = 0x20000000 1258 MADV_WIPEONFORK = 0x12
1259 MSG_FIN = 0x200 1259 MAP_ANON = 0x20
1260 MSG_MORE = 0x8000 1260 MAP_ANONYMOUS = 0x20
1261 MSG_NOSIGNAL = 0x4000 1261 MAP_DENYWRITE = 0x800
1262 MSG_OOB = 0x1 1262 MAP_EXECUTABLE = 0x1000
1263 MSG_PEEK = 0x2 1263 MAP_FILE = 0x0
1264 MSG_PROXY = 0x10 1264 MAP_FIXED = 0x10
1265 MSG_RST = 0x1000 1265 MAP_FIXED_NOREPLACE = 0x100000
1266 MSG_SYN = 0x400 1266 MAP_GROWSDOWN = 0x200
1267 MSG_TRUNC = 0x20 1267 MAP_HUGETLB = 0x40000
1268 MSG_TRYHARD = 0x4 1268 MAP_HUGE_MASK = 0x3f
1269 MSG_WAITALL = 0x100 1269 MAP_HUGE_SHIFT = 0x1a
1270 MSG_WAITFORONE = 0x10000 1270 MAP_LOCKED = 0x100
1271 MSG_ZEROCOPY = 0x4000000 1271 MAP_NONBLOCK = 0x10000
1272 MS_ACTIVE = 0x40000000 1272 MAP_NORESERVE = 0x40
1273 MS_ASYNC = 0x1 1273 MAP_POPULATE = 0x8000
1274 MS_BIND = 0x1000 1274 MAP_PRIVATE = 0x2
1275 MS_BORN = 0x20000000 1275 MAP_RENAME = 0x20
1276 MS_DIRSYNC = 0x80 1276 MAP_SHARED = 0x1
1277 MS_INVALIDATE = 0x2 1277 MAP_SHARED_VALIDATE = 0x3
1278 MS_I_VERSION = 0x800000 1278 MAP_STACK = 0x20000
1279 MS_KERNMOUNT = 0x400000 1279 MAP_SYNC = 0x80000
1280 MS_LAZYTIME = 0x2000000 1280 MAP_TYPE = 0xf
1281 MS_MANDLOCK = 0x40 1281 MCAST_BLOCK_SOURCE = 0x2b
1282 MS_MGC_MSK = 0xffff0000 1282 MCAST_EXCLUDE = 0x0
1283 MS_MGC_VAL = 0xc0ed0000 1283 MCAST_INCLUDE = 0x1
1284 MS_MOVE = 0x2000 1284 MCAST_JOIN_GROUP = 0x2a
1285 MS_NOATIME = 0x400 1285 MCAST_JOIN_SOURCE_GROUP = 0x2e
1286 MS_NODEV = 0x4 1286 MCAST_LEAVE_GROUP = 0x2d
1287 MS_NODIRATIME = 0x800 1287 MCAST_LEAVE_SOURCE_GROUP = 0x2f
1288 MS_NOEXEC = 0x8 1288 MCAST_MSFILTER = 0x30
1289 MS_NOREMOTELOCK = 0x8000000 1289 MCAST_UNBLOCK_SOURCE = 0x2c
1290 MS_NOSEC = 0x10000000 1290 MCL_CURRENT = 0x2000
1291 MS_NOSUID = 0x2 1291 MCL_FUTURE = 0x4000
1292 MS_NOUSER = -0x80000000 1292 MCL_ONFAULT = 0x8000
1293 MS_POSIXACL = 0x10000 1293 MFD_ALLOW_SEALING = 0x2
1294 MS_PRIVATE = 0x40000 1294 MFD_CLOEXEC = 0x1
1295 MS_RDONLY = 0x1 1295 MFD_HUGETLB = 0x4
1296 MS_REC = 0x4000 1296 MFD_HUGE_16GB = -0x78000000
1297 MS_RELATIME = 0x200000 1297 MFD_HUGE_16MB = 0x60000000
1298 MS_REMOUNT = 0x20 1298 MFD_HUGE_1GB = 0x78000000
1299 MS_RMT_MASK = 0x2800051 1299 MFD_HUGE_1MB = 0x50000000
1300 MS_SHARED = 0x100000 1300 MFD_HUGE_256MB = 0x70000000
1301 MS_SILENT = 0x8000 1301 MFD_HUGE_2GB = 0x7c000000
1302 MS_SLAVE = 0x80000 1302 MFD_HUGE_2MB = 0x54000000
1303 MS_STRICTATIME = 0x1000000 1303 MFD_HUGE_32MB = 0x64000000
1304 MS_SUBMOUNT = 0x4000000 1304 MFD_HUGE_512KB = 0x4c000000
1305 MS_SYNC = 0x4 1305 MFD_HUGE_512MB = 0x74000000
1306 MS_SYNCHRONOUS = 0x10 1306 MFD_HUGE_64KB = 0x40000000
1307 MS_UNBINDABLE = 0x20000 1307 MFD_HUGE_8MB = 0x5c000000
1308 MS_VERBOSE = 0x8000 1308 MFD_HUGE_MASK = 0x3f
1309 MTD_INODE_FS_MAGIC = 0x11307854 1309 MFD_HUGE_SHIFT = 0x1a
1310 NAME_MAX = 0xff 1310 MINIX2_SUPER_MAGIC = 0x2468
1311 NCP_SUPER_MAGIC = 0x564c 1311 MINIX2_SUPER_MAGIC2 = 0x2478
1312 NETLINK_ADD_MEMBERSHIP = 0x1 1312 MINIX3_SUPER_MAGIC = 0x4d5a
1313 NETLINK_AUDIT = 0x9 1313 MINIX_SUPER_MAGIC = 0x137f
1314 NETLINK_BROADCAST_ERROR = 0x4 1314 MINIX_SUPER_MAGIC2 = 0x138f
1315 NETLINK_CAP_ACK = 0xa 1315 MNT_DETACH = 0x2
1316 NETLINK_CONNECTOR = 0xb 1316 MNT_EXPIRE = 0x4
1317 NETLINK_CRYPTO = 0x15 1317 MNT_FORCE = 0x1
1318 NETLINK_DNRTMSG = 0xe 1318 MODULE_INIT_IGNORE_MODVERSIONS = 0x1
1319 NETLINK_DROP_MEMBERSHIP = 0x2 1319 MODULE_INIT_IGNORE_VERMAGIC = 0x2
1320 NETLINK_ECRYPTFS = 0x13 1320 MSDOS_SUPER_MAGIC = 0x4d44
1321 NETLINK_EXT_ACK = 0xb 1321 MSG_BATCH = 0x40000
1322 NETLINK_FIB_LOOKUP = 0xa 1322 MSG_CMSG_CLOEXEC = 0x40000000
1323 NETLINK_FIREWALL = 0x3 1323 MSG_CONFIRM = 0x800
1324 NETLINK_GENERIC = 0x10 1324 MSG_CTRUNC = 0x8
1325 NETLINK_GET_STRICT_CHK = 0xc 1325 MSG_DONTROUTE = 0x4
1326 NETLINK_INET_DIAG = 0x4 1326 MSG_DONTWAIT = 0x40
1327 NETLINK_IP6_FW = 0xd 1327 MSG_EOR = 0x80
1328 NETLINK_ISCSI = 0x8 1328 MSG_ERRQUEUE = 0x2000
1329 NETLINK_KOBJECT_UEVENT = 0xf 1329 MSG_FASTOPEN = 0x20000000
1330 NETLINK_LISTEN_ALL_NSID = 0x8 1330 MSG_FIN = 0x200
1331 NETLINK_LIST_MEMBERSHIPS = 0x9 1331 MSG_MORE = 0x8000
1332 NETLINK_NETFILTER = 0xc 1332 MSG_NOSIGNAL = 0x4000
1333 NETLINK_NFLOG = 0x5 1333 MSG_OOB = 0x1
1334 NETLINK_NO_ENOBUFS = 0x5 1334 MSG_PEEK = 0x2
1335 NETLINK_PKTINFO = 0x3 1335 MSG_PROXY = 0x10
1336 NETLINK_RDMA = 0x14 1336 MSG_RST = 0x1000
1337 NETLINK_ROUTE = 0x0 1337 MSG_SYN = 0x400
1338 NETLINK_RX_RING = 0x6 1338 MSG_TRUNC = 0x20
1339 NETLINK_SCSITRANSPORT = 0x12 1339 MSG_TRYHARD = 0x4
1340 NETLINK_SELINUX = 0x7 1340 MSG_WAITALL = 0x100
1341 NETLINK_SMC = 0x16 1341 MSG_WAITFORONE = 0x10000
1342 NETLINK_SOCK_DIAG = 0x4 1342 MSG_ZEROCOPY = 0x4000000
1343 NETLINK_TX_RING = 0x7 1343 MS_ACTIVE = 0x40000000
1344 NETLINK_UNUSED = 0x1 1344 MS_ASYNC = 0x1
1345 NETLINK_USERSOCK = 0x2 1345 MS_BIND = 0x1000
1346 NETLINK_XFRM = 0x6 1346 MS_BORN = 0x20000000
1347 NETNSA_MAX = 0x5 1347 MS_DIRSYNC = 0x80
1348 NETNSA_NSID_NOT_ASSIGNED = -0x1 1348 MS_INVALIDATE = 0x2
1349 NFNETLINK_V0 = 0x0 1349 MS_I_VERSION = 0x800000
1350 NFNLGRP_ACCT_QUOTA = 0x8 1350 MS_KERNMOUNT = 0x400000
1351 NFNLGRP_CONNTRACK_DESTROY = 0x3 1351 MS_LAZYTIME = 0x2000000
1352 NFNLGRP_CONNTRACK_EXP_DESTROY = 0x6 1352 MS_MANDLOCK = 0x40
1353 NFNLGRP_CONNTRACK_EXP_NEW = 0x4 1353 MS_MGC_MSK = 0xffff0000
1354 NFNLGRP_CONNTRACK_EXP_UPDATE = 0x5 1354 MS_MGC_VAL = 0xc0ed0000
1355 NFNLGRP_CONNTRACK_NEW = 0x1 1355 MS_MOVE = 0x2000
1356 NFNLGRP_CONNTRACK_UPDATE = 0x2 1356 MS_NOATIME = 0x400
1357 NFNLGRP_MAX = 0x9 1357 MS_NODEV = 0x4
1358 NFNLGRP_NFTABLES = 0x7 1358 MS_NODIRATIME = 0x800
1359 NFNLGRP_NFTRACE = 0x9 1359 MS_NOEXEC = 0x8
1360 NFNLGRP_NONE = 0x0 1360 MS_NOREMOTELOCK = 0x8000000
1361 NFNL_BATCH_MAX = 0x1 1361 MS_NOSEC = 0x10000000
1362 NFNL_MSG_BATCH_BEGIN = 0x10 1362 MS_NOSUID = 0x2
1363 NFNL_MSG_BATCH_END = 0x11 1363 MS_NOUSER = -0x80000000
1364 NFNL_NFA_NEST = 0x8000 1364 MS_POSIXACL = 0x10000
1365 NFNL_SUBSYS_ACCT = 0x7 1365 MS_PRIVATE = 0x40000
1366 NFNL_SUBSYS_COUNT = 0xc 1366 MS_RDONLY = 0x1
1367 NFNL_SUBSYS_CTHELPER = 0x9 1367 MS_REC = 0x4000
1368 NFNL_SUBSYS_CTNETLINK = 0x1 1368 MS_RELATIME = 0x200000
1369 NFNL_SUBSYS_CTNETLINK_EXP = 0x2 1369 MS_REMOUNT = 0x20
1370 NFNL_SUBSYS_CTNETLINK_TIMEOUT = 0x8 1370 MS_RMT_MASK = 0x2800051
1371 NFNL_SUBSYS_IPSET = 0x6 1371 MS_SHARED = 0x100000
1372 NFNL_SUBSYS_NFTABLES = 0xa 1372 MS_SILENT = 0x8000
1373 NFNL_SUBSYS_NFT_COMPAT = 0xb 1373 MS_SLAVE = 0x80000
1374 NFNL_SUBSYS_NONE = 0x0 1374 MS_STRICTATIME = 0x1000000
1375 NFNL_SUBSYS_OSF = 0x5 1375 MS_SUBMOUNT = 0x4000000
1376 NFNL_SUBSYS_QUEUE = 0x3 1376 MS_SYNC = 0x4
1377 NFNL_SUBSYS_ULOG = 0x4 1377 MS_SYNCHRONOUS = 0x10
1378 NFS_SUPER_MAGIC = 0x6969 1378 MS_UNBINDABLE = 0x20000
1379 NILFS_SUPER_MAGIC = 0x3434 1379 MS_VERBOSE = 0x8000
1380 NL0 = 0x0 1380 MTD_INODE_FS_MAGIC = 0x11307854
1381 NL1 = 0x100 1381 NAME_MAX = 0xff
1382 NLA_ALIGNTO = 0x4 1382 NCP_SUPER_MAGIC = 0x564c
1383 NLA_F_NESTED = 0x8000 1383 NETLINK_ADD_MEMBERSHIP = 0x1
1384 NLA_F_NET_BYTEORDER = 0x4000 1384 NETLINK_AUDIT = 0x9
1385 NLA_HDRLEN = 0x4 1385 NETLINK_BROADCAST_ERROR = 0x4
1386 NLDLY = 0x100 1386 NETLINK_CAP_ACK = 0xa
1387 NLMSG_ALIGNTO = 0x4 1387 NETLINK_CONNECTOR = 0xb
1388 NLMSG_DONE = 0x3 1388 NETLINK_CRYPTO = 0x15
1389 NLMSG_ERROR = 0x2 1389 NETLINK_DNRTMSG = 0xe
1390 NLMSG_HDRLEN = 0x10 1390 NETLINK_DROP_MEMBERSHIP = 0x2
1391 NLMSG_MIN_TYPE = 0x10 1391 NETLINK_ECRYPTFS = 0x13
1392 NLMSG_NOOP = 0x1 1392 NETLINK_EXT_ACK = 0xb
1393 NLMSG_OVERRUN = 0x4 1393 NETLINK_FIB_LOOKUP = 0xa
1394 NLM_F_ACK = 0x4 1394 NETLINK_FIREWALL = 0x3
1395 NLM_F_ACK_TLVS = 0x200 1395 NETLINK_GENERIC = 0x10
1396 NLM_F_APPEND = 0x800 1396 NETLINK_GET_STRICT_CHK = 0xc
1397 NLM_F_ATOMIC = 0x400 1397 NETLINK_INET_DIAG = 0x4
1398 NLM_F_CAPPED = 0x100 1398 NETLINK_IP6_FW = 0xd
1399 NLM_F_CREATE = 0x400 1399 NETLINK_ISCSI = 0x8
1400 NLM_F_DUMP = 0x300 1400 NETLINK_KOBJECT_UEVENT = 0xf
1401 NLM_F_DUMP_FILTERED = 0x20 1401 NETLINK_LISTEN_ALL_NSID = 0x8
1402 NLM_F_DUMP_INTR = 0x10 1402 NETLINK_LIST_MEMBERSHIPS = 0x9
1403 NLM_F_ECHO = 0x8 1403 NETLINK_NETFILTER = 0xc
1404 NLM_F_EXCL = 0x200 1404 NETLINK_NFLOG = 0x5
1405 NLM_F_MATCH = 0x200 1405 NETLINK_NO_ENOBUFS = 0x5
1406 NLM_F_MULTI = 0x2 1406 NETLINK_PKTINFO = 0x3
1407 NLM_F_NONREC = 0x100 1407 NETLINK_RDMA = 0x14
1408 NLM_F_REPLACE = 0x100 1408 NETLINK_ROUTE = 0x0
1409 NLM_F_REQUEST = 0x1 1409 NETLINK_RX_RING = 0x6
1410 NLM_F_ROOT = 0x100 1410 NETLINK_SCSITRANSPORT = 0x12
1411 NOFLSH = 0x80 1411 NETLINK_SELINUX = 0x7
1412 NSFS_MAGIC = 0x6e736673 1412 NETLINK_SMC = 0x16
1413 NS_GET_NSTYPE = 0x2000b703 1413 NETLINK_SOCK_DIAG = 0x4
1414 NS_GET_OWNER_UID = 0x2000b704 1414 NETLINK_TX_RING = 0x7
1415 NS_GET_PARENT = 0x2000b702 1415 NETLINK_UNUSED = 0x1
1416 NS_GET_USERNS = 0x2000b701 1416 NETLINK_USERSOCK = 0x2
1417 OCFS2_SUPER_MAGIC = 0x7461636f 1417 NETLINK_XFRM = 0x6
1418 OCRNL = 0x8 1418 NETNSA_MAX = 0x5
1419 OFDEL = 0x80 1419 NETNSA_NSID_NOT_ASSIGNED = -0x1
1420 OFILL = 0x40 1420 NFDBITS = 0x40
1421 OLCUC = 0x2 1421 NFNETLINK_V0 = 0x0
1422 ONLCR = 0x4 1422 NFNLGRP_ACCT_QUOTA = 0x8
1423 ONLRET = 0x20 1423 NFNLGRP_CONNTRACK_DESTROY = 0x3
1424 ONOCR = 0x10 1424 NFNLGRP_CONNTRACK_EXP_DESTROY = 0x6
1425 OPENPROM_SUPER_MAGIC = 0x9fa1 1425 NFNLGRP_CONNTRACK_EXP_NEW = 0x4
1426 OPOST = 0x1 1426 NFNLGRP_CONNTRACK_EXP_UPDATE = 0x5
1427 OVERLAYFS_SUPER_MAGIC = 0x794c7630 1427 NFNLGRP_CONNTRACK_NEW = 0x1
1428 O_ACCMODE = 0x3 1428 NFNLGRP_CONNTRACK_UPDATE = 0x2
1429 O_APPEND = 0x8 1429 NFNLGRP_MAX = 0x9
1430 O_ASYNC = 0x40 1430 NFNLGRP_NFTABLES = 0x7
1431 O_CLOEXEC = 0x400000 1431 NFNLGRP_NFTRACE = 0x9
1432 O_CREAT = 0x200 1432 NFNLGRP_NONE = 0x0
1433 O_DIRECT = 0x100000 1433 NFNL_BATCH_MAX = 0x1
1434 O_DIRECTORY = 0x10000 1434 NFNL_MSG_BATCH_BEGIN = 0x10
1435 O_DSYNC = 0x2000 1435 NFNL_MSG_BATCH_END = 0x11
1436 O_EXCL = 0x800 1436 NFNL_NFA_NEST = 0x8000
1437 O_FSYNC = 0x802000 1437 NFNL_SUBSYS_ACCT = 0x7
1438 O_LARGEFILE = 0x0 1438 NFNL_SUBSYS_COUNT = 0xc
1439 O_NDELAY = 0x4004 1439 NFNL_SUBSYS_CTHELPER = 0x9
1440 O_NOATIME = 0x200000 1440 NFNL_SUBSYS_CTNETLINK = 0x1
1441 O_NOCTTY = 0x8000 1441 NFNL_SUBSYS_CTNETLINK_EXP = 0x2
1442 O_NOFOLLOW = 0x20000 1442 NFNL_SUBSYS_CTNETLINK_TIMEOUT = 0x8
1443 O_NONBLOCK = 0x4000 1443 NFNL_SUBSYS_IPSET = 0x6
1444 O_PATH = 0x1000000 1444 NFNL_SUBSYS_NFTABLES = 0xa
1445 O_RDONLY = 0x0 1445 NFNL_SUBSYS_NFT_COMPAT = 0xb
1446 O_RDWR = 0x2 1446 NFNL_SUBSYS_NONE = 0x0
1447 O_RSYNC = 0x802000 1447 NFNL_SUBSYS_OSF = 0x5
1448 O_SYNC = 0x802000 1448 NFNL_SUBSYS_QUEUE = 0x3
1449 O_TMPFILE = 0x2010000 1449 NFNL_SUBSYS_ULOG = 0x4
1450 O_TRUNC = 0x400 1450 NFS_SUPER_MAGIC = 0x6969
1451 O_WRONLY = 0x1 1451 NILFS_SUPER_MAGIC = 0x3434
1452 PACKET_ADD_MEMBERSHIP = 0x1 1452 NL0 = 0x0
1453 PACKET_AUXDATA = 0x8 1453 NL1 = 0x100
1454 PACKET_BROADCAST = 0x1 1454 NLA_ALIGNTO = 0x4
1455 PACKET_COPY_THRESH = 0x7 1455 NLA_F_NESTED = 0x8000
1456 PACKET_DROP_MEMBERSHIP = 0x2 1456 NLA_F_NET_BYTEORDER = 0x4000
1457 PACKET_FANOUT = 0x12 1457 NLA_HDRLEN = 0x4
1458 PACKET_FANOUT_CBPF = 0x6 1458 NLDLY = 0x100
1459 PACKET_FANOUT_CPU = 0x2 1459 NLMSG_ALIGNTO = 0x4
1460 PACKET_FANOUT_DATA = 0x16 1460 NLMSG_DONE = 0x3
1461 PACKET_FANOUT_EBPF = 0x7 1461 NLMSG_ERROR = 0x2
1462 PACKET_FANOUT_FLAG_DEFRAG = 0x8000 1462 NLMSG_HDRLEN = 0x10
1463 PACKET_FANOUT_FLAG_ROLLOVER = 0x1000 1463 NLMSG_MIN_TYPE = 0x10
1464 PACKET_FANOUT_FLAG_UNIQUEID = 0x2000 1464 NLMSG_NOOP = 0x1
1465 PACKET_FANOUT_HASH = 0x0 1465 NLMSG_OVERRUN = 0x4
1466 PACKET_FANOUT_LB = 0x1 1466 NLM_F_ACK = 0x4
1467 PACKET_FANOUT_QM = 0x5 1467 NLM_F_ACK_TLVS = 0x200
1468 PACKET_FANOUT_RND = 0x4 1468 NLM_F_APPEND = 0x800
1469 PACKET_FANOUT_ROLLOVER = 0x3 1469 NLM_F_ATOMIC = 0x400
1470 PACKET_FASTROUTE = 0x6 1470 NLM_F_CAPPED = 0x100
1471 PACKET_HDRLEN = 0xb 1471 NLM_F_CREATE = 0x400
1472 PACKET_HOST = 0x0 1472 NLM_F_DUMP = 0x300
1473 PACKET_IGNORE_OUTGOING = 0x17 1473 NLM_F_DUMP_FILTERED = 0x20
1474 PACKET_KERNEL = 0x7 1474 NLM_F_DUMP_INTR = 0x10
1475 PACKET_LOOPBACK = 0x5 1475 NLM_F_ECHO = 0x8
1476 PACKET_LOSS = 0xe 1476 NLM_F_EXCL = 0x200
1477 PACKET_MR_ALLMULTI = 0x2 1477 NLM_F_MATCH = 0x200
1478 PACKET_MR_MULTICAST = 0x0 1478 NLM_F_MULTI = 0x2
1479 PACKET_MR_PROMISC = 0x1 1479 NLM_F_NONREC = 0x100
1480 PACKET_MR_UNICAST = 0x3 1480 NLM_F_REPLACE = 0x100
1481 PACKET_MULTICAST = 0x2 1481 NLM_F_REQUEST = 0x1
1482 PACKET_ORIGDEV = 0x9 1482 NLM_F_ROOT = 0x100
1483 PACKET_OTHERHOST = 0x3 1483 NOFLSH = 0x80
1484 PACKET_OUTGOING = 0x4 1484 NSFS_MAGIC = 0x6e736673
1485 PACKET_QDISC_BYPASS = 0x14 1485 NS_GET_NSTYPE = 0x2000b703
1486 PACKET_RECV_OUTPUT = 0x3 1486 NS_GET_OWNER_UID = 0x2000b704
1487 PACKET_RESERVE = 0xc 1487 NS_GET_PARENT = 0x2000b702
1488 PACKET_ROLLOVER_STATS = 0x15 1488 NS_GET_USERNS = 0x2000b701
1489 PACKET_RX_RING = 0x5 1489 OCFS2_SUPER_MAGIC = 0x7461636f
1490 PACKET_STATISTICS = 0x6 1490 OCRNL = 0x8
1491 PACKET_TIMESTAMP = 0x11 1491 OFDEL = 0x80
1492 PACKET_TX_HAS_OFF = 0x13 1492 OFILL = 0x40
1493 PACKET_TX_RING = 0xd 1493 OLCUC = 0x2
1494 PACKET_TX_TIMESTAMP = 0x10 1494 ONLCR = 0x4
1495 PACKET_USER = 0x6 1495 ONLRET = 0x20
1496 PACKET_VERSION = 0xa 1496 ONOCR = 0x10
1497 PACKET_VNET_HDR = 0xf 1497 OPENPROM_SUPER_MAGIC = 0x9fa1
1498 PARENB = 0x100 1498 OPOST = 0x1
1499 PARITY_CRC16_PR0 = 0x2 1499 OVERLAYFS_SUPER_MAGIC = 0x794c7630
1500 PARITY_CRC16_PR0_CCITT = 0x4 1500 O_ACCMODE = 0x3
1501 PARITY_CRC16_PR1 = 0x3 1501 O_APPEND = 0x8
1502 PARITY_CRC16_PR1_CCITT = 0x5 1502 O_ASYNC = 0x40
1503 PARITY_CRC32_PR0_CCITT = 0x6 1503 O_CLOEXEC = 0x400000
1504 PARITY_CRC32_PR1_CCITT = 0x7 1504 O_CREAT = 0x200
1505 PARITY_DEFAULT = 0x0 1505 O_DIRECT = 0x100000
1506 PARITY_NONE = 0x1 1506 O_DIRECTORY = 0x10000
1507 PARMRK = 0x8 1507 O_DSYNC = 0x2000
1508 PARODD = 0x200 1508 O_EXCL = 0x800
1509 PENDIN = 0x4000 1509 O_FSYNC = 0x802000
1510 PERF_EVENT_IOC_DISABLE = 0x20002401 1510 O_LARGEFILE = 0x0
1511 PERF_EVENT_IOC_ENABLE = 0x20002400 1511 O_NDELAY = 0x4004
1512 PERF_EVENT_IOC_ID = 0x40082407 1512 O_NOATIME = 0x200000
1513 PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x8008240b 1513 O_NOCTTY = 0x8000
1514 PERF_EVENT_IOC_PAUSE_OUTPUT = 0x80042409 1514 O_NOFOLLOW = 0x20000
1515 PERF_EVENT_IOC_PERIOD = 0x80082404 1515 O_NONBLOCK = 0x4000
1516 PERF_EVENT_IOC_QUERY_BPF = 0xc008240a 1516 O_PATH = 0x1000000
1517 PERF_EVENT_IOC_REFRESH = 0x20002402 1517 O_RDONLY = 0x0
1518 PERF_EVENT_IOC_RESET = 0x20002403 1518 O_RDWR = 0x2
1519 PERF_EVENT_IOC_SET_BPF = 0x80042408 1519 O_RSYNC = 0x802000
1520 PERF_EVENT_IOC_SET_FILTER = 0x80082406 1520 O_SYNC = 0x802000
1521 PERF_EVENT_IOC_SET_OUTPUT = 0x20002405 1521 O_TMPFILE = 0x2010000
1522 PIPEFS_MAGIC = 0x50495045 1522 O_TRUNC = 0x400
1523 PPPIOCATTACH = 0x8004743d 1523 O_WRONLY = 0x1
1524 PPPIOCATTCHAN = 0x80047438 1524 PACKET_ADD_MEMBERSHIP = 0x1
1525 PPPIOCCONNECT = 0x8004743a 1525 PACKET_AUXDATA = 0x8
1526 PPPIOCDETACH = 0x8004743c 1526 PACKET_BROADCAST = 0x1
1527 PPPIOCDISCONN = 0x20007439 1527 PACKET_COPY_THRESH = 0x7
1528 PPPIOCGASYNCMAP = 0x40047458 1528 PACKET_DROP_MEMBERSHIP = 0x2
1529 PPPIOCGCHAN = 0x40047437 1529 PACKET_FANOUT = 0x12
1530 PPPIOCGDEBUG = 0x40047441 1530 PACKET_FANOUT_CBPF = 0x6
1531 PPPIOCGFLAGS = 0x4004745a 1531 PACKET_FANOUT_CPU = 0x2
1532 PPPIOCGIDLE = 0x4010743f 1532 PACKET_FANOUT_DATA = 0x16
1533 PPPIOCGL2TPSTATS = 0x40487436 1533 PACKET_FANOUT_EBPF = 0x7
1534 PPPIOCGMRU = 0x40047453 1534 PACKET_FANOUT_FLAG_DEFRAG = 0x8000
1535 PPPIOCGNPMODE = 0xc008744c 1535 PACKET_FANOUT_FLAG_ROLLOVER = 0x1000
1536 PPPIOCGRASYNCMAP = 0x40047455 1536 PACKET_FANOUT_FLAG_UNIQUEID = 0x2000
1537 PPPIOCGUNIT = 0x40047456 1537 PACKET_FANOUT_HASH = 0x0
1538 PPPIOCGXASYNCMAP = 0x40207450 1538 PACKET_FANOUT_LB = 0x1
1539 PPPIOCNEWUNIT = 0xc004743e 1539 PACKET_FANOUT_QM = 0x5
1540 PPPIOCSACTIVE = 0x80107446 1540 PACKET_FANOUT_RND = 0x4
1541 PPPIOCSASYNCMAP = 0x80047457 1541 PACKET_FANOUT_ROLLOVER = 0x3
1542 PPPIOCSCOMPRESS = 0x8010744d 1542 PACKET_FASTROUTE = 0x6
1543 PPPIOCSDEBUG = 0x80047440 1543 PACKET_HDRLEN = 0xb
1544 PPPIOCSFLAGS = 0x80047459 1544 PACKET_HOST = 0x0
1545 PPPIOCSMAXCID = 0x80047451 1545 PACKET_IGNORE_OUTGOING = 0x17
1546 PPPIOCSMRRU = 0x8004743b 1546 PACKET_KERNEL = 0x7
1547 PPPIOCSMRU = 0x80047452 1547 PACKET_LOOPBACK = 0x5
1548 PPPIOCSNPMODE = 0x8008744b 1548 PACKET_LOSS = 0xe
1549 PPPIOCSPASS = 0x80107447 1549 PACKET_MR_ALLMULTI = 0x2
1550 PPPIOCSRASYNCMAP = 0x80047454 1550 PACKET_MR_MULTICAST = 0x0
1551 PPPIOCSXASYNCMAP = 0x8020744f 1551 PACKET_MR_PROMISC = 0x1
1552 PPPIOCXFERUNIT = 0x2000744e 1552 PACKET_MR_UNICAST = 0x3
1553 PRIO_PGRP = 0x1 1553 PACKET_MULTICAST = 0x2
1554 PRIO_PROCESS = 0x0 1554 PACKET_ORIGDEV = 0x9
1555 PRIO_USER = 0x2 1555 PACKET_OTHERHOST = 0x3
1556 PROC_SUPER_MAGIC = 0x9fa0 1556 PACKET_OUTGOING = 0x4
1557 PROT_EXEC = 0x4 1557 PACKET_QDISC_BYPASS = 0x14
1558 PROT_GROWSDOWN = 0x1000000 1558 PACKET_RECV_OUTPUT = 0x3
1559 PROT_GROWSUP = 0x2000000 1559 PACKET_RESERVE = 0xc
1560 PROT_NONE = 0x0 1560 PACKET_ROLLOVER_STATS = 0x15
1561 PROT_READ = 0x1 1561 PACKET_RX_RING = 0x5
1562 PROT_WRITE = 0x2 1562 PACKET_STATISTICS = 0x6
1563 PR_CAPBSET_DROP = 0x18 1563 PACKET_TIMESTAMP = 0x11
1564 PR_CAPBSET_READ = 0x17 1564 PACKET_TX_HAS_OFF = 0x13
1565 PR_CAP_AMBIENT = 0x2f 1565 PACKET_TX_RING = 0xd
1566 PR_CAP_AMBIENT_CLEAR_ALL = 0x4 1566 PACKET_TX_TIMESTAMP = 0x10
1567 PR_CAP_AMBIENT_IS_SET = 0x1 1567 PACKET_USER = 0x6
1568 PR_CAP_AMBIENT_LOWER = 0x3 1568 PACKET_VERSION = 0xa
1569 PR_CAP_AMBIENT_RAISE = 0x2 1569 PACKET_VNET_HDR = 0xf
1570 PR_ENDIAN_BIG = 0x0 1570 PARENB = 0x100
1571 PR_ENDIAN_LITTLE = 0x1 1571 PARITY_CRC16_PR0 = 0x2
1572 PR_ENDIAN_PPC_LITTLE = 0x2 1572 PARITY_CRC16_PR0_CCITT = 0x4
1573 PR_FPEMU_NOPRINT = 0x1 1573 PARITY_CRC16_PR1 = 0x3
1574 PR_FPEMU_SIGFPE = 0x2 1574 PARITY_CRC16_PR1_CCITT = 0x5
1575 PR_FP_EXC_ASYNC = 0x2 1575 PARITY_CRC32_PR0_CCITT = 0x6
1576 PR_FP_EXC_DISABLED = 0x0 1576 PARITY_CRC32_PR1_CCITT = 0x7
1577 PR_FP_EXC_DIV = 0x10000 1577 PARITY_DEFAULT = 0x0
1578 PR_FP_EXC_INV = 0x100000 1578 PARITY_NONE = 0x1
1579 PR_FP_EXC_NONRECOV = 0x1 1579 PARMRK = 0x8
1580 PR_FP_EXC_OVF = 0x20000 1580 PARODD = 0x200
1581 PR_FP_EXC_PRECISE = 0x3 1581 PENDIN = 0x4000
1582 PR_FP_EXC_RES = 0x80000 1582 PERF_EVENT_IOC_DISABLE = 0x20002401
1583 PR_FP_EXC_SW_ENABLE = 0x80 1583 PERF_EVENT_IOC_ENABLE = 0x20002400
1584 PR_FP_EXC_UND = 0x40000 1584 PERF_EVENT_IOC_ID = 0x40082407
1585 PR_FP_MODE_FR = 0x1 1585 PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x8008240b
1586 PR_FP_MODE_FRE = 0x2 1586 PERF_EVENT_IOC_PAUSE_OUTPUT = 0x80042409
1587 PR_GET_CHILD_SUBREAPER = 0x25 1587 PERF_EVENT_IOC_PERIOD = 0x80082404
1588 PR_GET_DUMPABLE = 0x3 1588 PERF_EVENT_IOC_QUERY_BPF = 0xc008240a
1589 PR_GET_ENDIAN = 0x13 1589 PERF_EVENT_IOC_REFRESH = 0x20002402
1590 PR_GET_FPEMU = 0x9 1590 PERF_EVENT_IOC_RESET = 0x20002403
1591 PR_GET_FPEXC = 0xb 1591 PERF_EVENT_IOC_SET_BPF = 0x80042408
1592 PR_GET_FP_MODE = 0x2e 1592 PERF_EVENT_IOC_SET_FILTER = 0x80082406
1593 PR_GET_KEEPCAPS = 0x7 1593 PERF_EVENT_IOC_SET_OUTPUT = 0x20002405
1594 PR_GET_NAME = 0x10 1594 PIPEFS_MAGIC = 0x50495045
1595 PR_GET_NO_NEW_PRIVS = 0x27 1595 PPC_CMM_MAGIC = 0xc7571590
1596 PR_GET_PDEATHSIG = 0x2 1596 PPPIOCATTACH = 0x8004743d
1597 PR_GET_SECCOMP = 0x15 1597 PPPIOCATTCHAN = 0x80047438
1598 PR_GET_SECUREBITS = 0x1b 1598 PPPIOCCONNECT = 0x8004743a
1599 PR_GET_SPECULATION_CTRL = 0x34 1599 PPPIOCDETACH = 0x8004743c
1600 PR_GET_THP_DISABLE = 0x2a 1600 PPPIOCDISCONN = 0x20007439
1601 PR_GET_TID_ADDRESS = 0x28 1601 PPPIOCGASYNCMAP = 0x40047458
1602 PR_GET_TIMERSLACK = 0x1e 1602 PPPIOCGCHAN = 0x40047437
1603 PR_GET_TIMING = 0xd 1603 PPPIOCGDEBUG = 0x40047441
1604 PR_GET_TSC = 0x19 1604 PPPIOCGFLAGS = 0x4004745a
1605 PR_GET_UNALIGN = 0x5 1605 PPPIOCGIDLE = 0x4010743f
1606 PR_MCE_KILL = 0x21 1606 PPPIOCGIDLE32 = 0x4008743f
1607 PR_MCE_KILL_CLEAR = 0x0 1607 PPPIOCGIDLE64 = 0x4010743f
1608 PR_MCE_KILL_DEFAULT = 0x2 1608 PPPIOCGL2TPSTATS = 0x40487436
1609 PR_MCE_KILL_EARLY = 0x1 1609 PPPIOCGMRU = 0x40047453
1610 PR_MCE_KILL_GET = 0x22 1610 PPPIOCGNPMODE = 0xc008744c
1611 PR_MCE_KILL_LATE = 0x0 1611 PPPIOCGRASYNCMAP = 0x40047455
1612 PR_MCE_KILL_SET = 0x1 1612 PPPIOCGUNIT = 0x40047456
1613 PR_MPX_DISABLE_MANAGEMENT = 0x2c 1613 PPPIOCGXASYNCMAP = 0x40207450
1614 PR_MPX_ENABLE_MANAGEMENT = 0x2b 1614 PPPIOCNEWUNIT = 0xc004743e
1615 PR_PAC_APDAKEY = 0x4 1615 PPPIOCSACTIVE = 0x80107446
1616 PR_PAC_APDBKEY = 0x8 1616 PPPIOCSASYNCMAP = 0x80047457
1617 PR_PAC_APGAKEY = 0x10 1617 PPPIOCSCOMPRESS = 0x8010744d
1618 PR_PAC_APIAKEY = 0x1 1618 PPPIOCSDEBUG = 0x80047440
1619 PR_PAC_APIBKEY = 0x2 1619 PPPIOCSFLAGS = 0x80047459
1620 PR_PAC_RESET_KEYS = 0x36 1620 PPPIOCSMAXCID = 0x80047451
1621 PR_SET_CHILD_SUBREAPER = 0x24 1621 PPPIOCSMRRU = 0x8004743b
1622 PR_SET_DUMPABLE = 0x4 1622 PPPIOCSMRU = 0x80047452
1623 PR_SET_ENDIAN = 0x14 1623 PPPIOCSNPMODE = 0x8008744b
1624 PR_SET_FPEMU = 0xa 1624 PPPIOCSPASS = 0x80107447
1625 PR_SET_FPEXC = 0xc 1625 PPPIOCSRASYNCMAP = 0x80047454
1626 PR_SET_FP_MODE = 0x2d 1626 PPPIOCSXASYNCMAP = 0x8020744f
1627 PR_SET_KEEPCAPS = 0x8 1627 PPPIOCXFERUNIT = 0x2000744e
1628 PR_SET_MM = 0x23 1628 PRIO_PGRP = 0x1
1629 PR_SET_MM_ARG_END = 0x9 1629 PRIO_PROCESS = 0x0
1630 PR_SET_MM_ARG_START = 0x8 1630 PRIO_USER = 0x2
1631 PR_SET_MM_AUXV = 0xc 1631 PROC_SUPER_MAGIC = 0x9fa0
1632 PR_SET_MM_BRK = 0x7 1632 PROT_EXEC = 0x4
1633 PR_SET_MM_END_CODE = 0x2 1633 PROT_GROWSDOWN = 0x1000000
1634 PR_SET_MM_END_DATA = 0x4 1634 PROT_GROWSUP = 0x2000000
1635 PR_SET_MM_ENV_END = 0xb 1635 PROT_NONE = 0x0
1636 PR_SET_MM_ENV_START = 0xa 1636 PROT_READ = 0x1
1637 PR_SET_MM_EXE_FILE = 0xd 1637 PROT_WRITE = 0x2
1638 PR_SET_MM_MAP = 0xe 1638 PR_CAPBSET_DROP = 0x18
1639 PR_SET_MM_MAP_SIZE = 0xf 1639 PR_CAPBSET_READ = 0x17
1640 PR_SET_MM_START_BRK = 0x6 1640 PR_CAP_AMBIENT = 0x2f
1641 PR_SET_MM_START_CODE = 0x1 1641 PR_CAP_AMBIENT_CLEAR_ALL = 0x4
1642 PR_SET_MM_START_DATA = 0x3 1642 PR_CAP_AMBIENT_IS_SET = 0x1
1643 PR_SET_MM_START_STACK = 0x5 1643 PR_CAP_AMBIENT_LOWER = 0x3
1644 PR_SET_NAME = 0xf 1644 PR_CAP_AMBIENT_RAISE = 0x2
1645 PR_SET_NO_NEW_PRIVS = 0x26 1645 PR_ENDIAN_BIG = 0x0
1646 PR_SET_PDEATHSIG = 0x1 1646 PR_ENDIAN_LITTLE = 0x1
1647 PR_SET_PTRACER = 0x59616d61 1647 PR_ENDIAN_PPC_LITTLE = 0x2
1648 PR_SET_PTRACER_ANY = 0xffffffffffffffff 1648 PR_FPEMU_NOPRINT = 0x1
1649 PR_SET_SECCOMP = 0x16 1649 PR_FPEMU_SIGFPE = 0x2
1650 PR_SET_SECUREBITS = 0x1c 1650 PR_FP_EXC_ASYNC = 0x2
1651 PR_SET_SPECULATION_CTRL = 0x35 1651 PR_FP_EXC_DISABLED = 0x0
1652 PR_SET_THP_DISABLE = 0x29 1652 PR_FP_EXC_DIV = 0x10000
1653 PR_SET_TIMERSLACK = 0x1d 1653 PR_FP_EXC_INV = 0x100000
1654 PR_SET_TIMING = 0xe 1654 PR_FP_EXC_NONRECOV = 0x1
1655 PR_SET_TSC = 0x1a 1655 PR_FP_EXC_OVF = 0x20000
1656 PR_SET_UNALIGN = 0x6 1656 PR_FP_EXC_PRECISE = 0x3
1657 PR_SPEC_DISABLE = 0x4 1657 PR_FP_EXC_RES = 0x80000
1658 PR_SPEC_DISABLE_NOEXEC = 0x10 1658 PR_FP_EXC_SW_ENABLE = 0x80
1659 PR_SPEC_ENABLE = 0x2 1659 PR_FP_EXC_UND = 0x40000
1660 PR_SPEC_FORCE_DISABLE = 0x8 1660 PR_FP_MODE_FR = 0x1
1661 PR_SPEC_INDIRECT_BRANCH = 0x1 1661 PR_FP_MODE_FRE = 0x2
1662 PR_SPEC_NOT_AFFECTED = 0x0 1662 PR_GET_CHILD_SUBREAPER = 0x25
1663 PR_SPEC_PRCTL = 0x1 1663 PR_GET_DUMPABLE = 0x3
1664 PR_SPEC_STORE_BYPASS = 0x0 1664 PR_GET_ENDIAN = 0x13
1665 PR_SVE_GET_VL = 0x33 1665 PR_GET_FPEMU = 0x9
1666 PR_SVE_SET_VL = 0x32 1666 PR_GET_FPEXC = 0xb
1667 PR_SVE_SET_VL_ONEXEC = 0x40000 1667 PR_GET_FP_MODE = 0x2e
1668 PR_SVE_VL_INHERIT = 0x20000 1668 PR_GET_KEEPCAPS = 0x7
1669 PR_SVE_VL_LEN_MASK = 0xffff 1669 PR_GET_NAME = 0x10
1670 PR_TASK_PERF_EVENTS_DISABLE = 0x1f 1670 PR_GET_NO_NEW_PRIVS = 0x27
1671 PR_TASK_PERF_EVENTS_ENABLE = 0x20 1671 PR_GET_PDEATHSIG = 0x2
1672 PR_TIMING_STATISTICAL = 0x0 1672 PR_GET_SECCOMP = 0x15
1673 PR_TIMING_TIMESTAMP = 0x1 1673 PR_GET_SECUREBITS = 0x1b
1674 PR_TSC_ENABLE = 0x1 1674 PR_GET_SPECULATION_CTRL = 0x34
1675 PR_TSC_SIGSEGV = 0x2 1675 PR_GET_TAGGED_ADDR_CTRL = 0x38
1676 PR_UNALIGN_NOPRINT = 0x1 1676 PR_GET_THP_DISABLE = 0x2a
1677 PR_UNALIGN_SIGBUS = 0x2 1677 PR_GET_TID_ADDRESS = 0x28
1678 PSTOREFS_MAGIC = 0x6165676c 1678 PR_GET_TIMERSLACK = 0x1e
1679 PTRACE_ATTACH = 0x10 1679 PR_GET_TIMING = 0xd
1680 PTRACE_CONT = 0x7 1680 PR_GET_TSC = 0x19
1681 PTRACE_DETACH = 0x11 1681 PR_GET_UNALIGN = 0x5
1682 PTRACE_EVENT_CLONE = 0x3 1682 PR_MCE_KILL = 0x21
1683 PTRACE_EVENT_EXEC = 0x4 1683 PR_MCE_KILL_CLEAR = 0x0
1684 PTRACE_EVENT_EXIT = 0x6 1684 PR_MCE_KILL_DEFAULT = 0x2
1685 PTRACE_EVENT_FORK = 0x1 1685 PR_MCE_KILL_EARLY = 0x1
1686 PTRACE_EVENT_SECCOMP = 0x7 1686 PR_MCE_KILL_GET = 0x22
1687 PTRACE_EVENT_STOP = 0x80 1687 PR_MCE_KILL_LATE = 0x0
1688 PTRACE_EVENT_VFORK = 0x2 1688 PR_MCE_KILL_SET = 0x1
1689 PTRACE_EVENT_VFORK_DONE = 0x5 1689 PR_MPX_DISABLE_MANAGEMENT = 0x2c
1690 PTRACE_GETEVENTMSG = 0x4201 1690 PR_MPX_ENABLE_MANAGEMENT = 0x2b
1691 PTRACE_GETFPAREGS = 0x14 1691 PR_PAC_APDAKEY = 0x4
1692 PTRACE_GETFPREGS = 0xe 1692 PR_PAC_APDBKEY = 0x8
1693 PTRACE_GETFPREGS64 = 0x19 1693 PR_PAC_APGAKEY = 0x10
1694 PTRACE_GETREGS = 0xc 1694 PR_PAC_APIAKEY = 0x1
1695 PTRACE_GETREGS64 = 0x16 1695 PR_PAC_APIBKEY = 0x2
1696 PTRACE_GETREGSET = 0x4204 1696 PR_PAC_RESET_KEYS = 0x36
1697 PTRACE_GETSIGINFO = 0x4202 1697 PR_SET_CHILD_SUBREAPER = 0x24
1698 PTRACE_GETSIGMASK = 0x420a 1698 PR_SET_DUMPABLE = 0x4
1699 PTRACE_INTERRUPT = 0x4207 1699 PR_SET_ENDIAN = 0x14
1700 PTRACE_KILL = 0x8 1700 PR_SET_FPEMU = 0xa
1701 PTRACE_LISTEN = 0x4208 1701 PR_SET_FPEXC = 0xc
1702 PTRACE_O_EXITKILL = 0x100000 1702 PR_SET_FP_MODE = 0x2d
1703 PTRACE_O_MASK = 0x3000ff 1703 PR_SET_KEEPCAPS = 0x8
1704 PTRACE_O_SUSPEND_SECCOMP = 0x200000 1704 PR_SET_MM = 0x23
1705 PTRACE_O_TRACECLONE = 0x8 1705 PR_SET_MM_ARG_END = 0x9
1706 PTRACE_O_TRACEEXEC = 0x10 1706 PR_SET_MM_ARG_START = 0x8
1707 PTRACE_O_TRACEEXIT = 0x40 1707 PR_SET_MM_AUXV = 0xc
1708 PTRACE_O_TRACEFORK = 0x2 1708 PR_SET_MM_BRK = 0x7
1709 PTRACE_O_TRACESECCOMP = 0x80 1709 PR_SET_MM_END_CODE = 0x2
1710 PTRACE_O_TRACESYSGOOD = 0x1 1710 PR_SET_MM_END_DATA = 0x4
1711 PTRACE_O_TRACEVFORK = 0x4 1711 PR_SET_MM_ENV_END = 0xb
1712 PTRACE_O_TRACEVFORKDONE = 0x20 1712 PR_SET_MM_ENV_START = 0xa
1713 PTRACE_PEEKDATA = 0x2 1713 PR_SET_MM_EXE_FILE = 0xd
1714 PTRACE_PEEKSIGINFO = 0x4209 1714 PR_SET_MM_MAP = 0xe
1715 PTRACE_PEEKSIGINFO_SHARED = 0x1 1715 PR_SET_MM_MAP_SIZE = 0xf
1716 PTRACE_PEEKTEXT = 0x1 1716 PR_SET_MM_START_BRK = 0x6
1717 PTRACE_PEEKUSR = 0x3 1717 PR_SET_MM_START_CODE = 0x1
1718 PTRACE_POKEDATA = 0x5 1718 PR_SET_MM_START_DATA = 0x3
1719 PTRACE_POKETEXT = 0x4 1719 PR_SET_MM_START_STACK = 0x5
1720 PTRACE_POKEUSR = 0x6 1720 PR_SET_NAME = 0xf
1721 PTRACE_READDATA = 0x10 1721 PR_SET_NO_NEW_PRIVS = 0x26
1722 PTRACE_READTEXT = 0x12 1722 PR_SET_PDEATHSIG = 0x1
1723 PTRACE_SECCOMP_GET_FILTER = 0x420c 1723 PR_SET_PTRACER = 0x59616d61
1724 PTRACE_SECCOMP_GET_METADATA = 0x420d 1724 PR_SET_PTRACER_ANY = 0xffffffffffffffff
1725 PTRACE_SEIZE = 0x4206 1725 PR_SET_SECCOMP = 0x16
1726 PTRACE_SETFPAREGS = 0x15 1726 PR_SET_SECUREBITS = 0x1c
1727 PTRACE_SETFPREGS = 0xf 1727 PR_SET_SPECULATION_CTRL = 0x35
1728 PTRACE_SETFPREGS64 = 0x1a 1728 PR_SET_TAGGED_ADDR_CTRL = 0x37
1729 PTRACE_SETOPTIONS = 0x4200 1729 PR_SET_THP_DISABLE = 0x29
1730 PTRACE_SETREGS = 0xd 1730 PR_SET_TIMERSLACK = 0x1d
1731 PTRACE_SETREGS64 = 0x17 1731 PR_SET_TIMING = 0xe
1732 PTRACE_SETREGSET = 0x4205 1732 PR_SET_TSC = 0x1a
1733 PTRACE_SETSIGINFO = 0x4203 1733 PR_SET_UNALIGN = 0x6
1734 PTRACE_SETSIGMASK = 0x420b 1734 PR_SPEC_DISABLE = 0x4
1735 PTRACE_SINGLESTEP = 0x9 1735 PR_SPEC_DISABLE_NOEXEC = 0x10
1736 PTRACE_SPARC_DETACH = 0xb 1736 PR_SPEC_ENABLE = 0x2
1737 PTRACE_SYSCALL = 0x18 1737 PR_SPEC_FORCE_DISABLE = 0x8
1738 PTRACE_TRACEME = 0x0 1738 PR_SPEC_INDIRECT_BRANCH = 0x1
1739 PTRACE_WRITEDATA = 0x11 1739 PR_SPEC_NOT_AFFECTED = 0x0
1740 PTRACE_WRITETEXT = 0x13 1740 PR_SPEC_PRCTL = 0x1
1741 PT_FP = 0x48 1741 PR_SPEC_STORE_BYPASS = 0x0
1742 PT_G0 = 0x10 1742 PR_SVE_GET_VL = 0x33
1743 PT_G1 = 0x14 1743 PR_SVE_SET_VL = 0x32
1744 PT_G2 = 0x18 1744 PR_SVE_SET_VL_ONEXEC = 0x40000
1745 PT_G3 = 0x1c 1745 PR_SVE_VL_INHERIT = 0x20000
1746 PT_G4 = 0x20 1746 PR_SVE_VL_LEN_MASK = 0xffff
1747 PT_G5 = 0x24 1747 PR_TAGGED_ADDR_ENABLE = 0x1
1748 PT_G6 = 0x28 1748 PR_TASK_PERF_EVENTS_DISABLE = 0x1f
1749 PT_G7 = 0x2c 1749 PR_TASK_PERF_EVENTS_ENABLE = 0x20
1750 PT_I0 = 0x30 1750 PR_TIMING_STATISTICAL = 0x0
1751 PT_I1 = 0x34 1751 PR_TIMING_TIMESTAMP = 0x1
1752 PT_I2 = 0x38 1752 PR_TSC_ENABLE = 0x1
1753 PT_I3 = 0x3c 1753 PR_TSC_SIGSEGV = 0x2
1754 PT_I4 = 0x40 1754 PR_UNALIGN_NOPRINT = 0x1
1755 PT_I5 = 0x44 1755 PR_UNALIGN_SIGBUS = 0x2
1756 PT_I6 = 0x48 1756 PSTOREFS_MAGIC = 0x6165676c
1757 PT_I7 = 0x4c 1757 PTRACE_ATTACH = 0x10
1758 PT_NPC = 0x8 1758 PTRACE_CONT = 0x7
1759 PT_PC = 0x4 1759 PTRACE_DETACH = 0x11
1760 PT_PSR = 0x0 1760 PTRACE_EVENTMSG_SYSCALL_ENTRY = 0x1
1761 PT_REGS_MAGIC = 0x57ac6c00 1761 PTRACE_EVENTMSG_SYSCALL_EXIT = 0x2
1762 PT_TNPC = 0x90 1762 PTRACE_EVENT_CLONE = 0x3
1763 PT_TPC = 0x88 1763 PTRACE_EVENT_EXEC = 0x4
1764 PT_TSTATE = 0x80 1764 PTRACE_EVENT_EXIT = 0x6
1765 PT_V9_FP = 0x70 1765 PTRACE_EVENT_FORK = 0x1
1766 PT_V9_G0 = 0x0 1766 PTRACE_EVENT_SECCOMP = 0x7
1767 PT_V9_G1 = 0x8 1767 PTRACE_EVENT_STOP = 0x80
1768 PT_V9_G2 = 0x10 1768 PTRACE_EVENT_VFORK = 0x2
1769 PT_V9_G3 = 0x18 1769 PTRACE_EVENT_VFORK_DONE = 0x5
1770 PT_V9_G4 = 0x20 1770 PTRACE_GETEVENTMSG = 0x4201
1771 PT_V9_G5 = 0x28 1771 PTRACE_GETFPAREGS = 0x14
1772 PT_V9_G6 = 0x30 1772 PTRACE_GETFPREGS = 0xe
1773 PT_V9_G7 = 0x38 1773 PTRACE_GETFPREGS64 = 0x19
1774 PT_V9_I0 = 0x40 1774 PTRACE_GETREGS = 0xc
1775 PT_V9_I1 = 0x48 1775 PTRACE_GETREGS64 = 0x16
1776 PT_V9_I2 = 0x50 1776 PTRACE_GETREGSET = 0x4204
1777 PT_V9_I3 = 0x58 1777 PTRACE_GETSIGINFO = 0x4202
1778 PT_V9_I4 = 0x60 1778 PTRACE_GETSIGMASK = 0x420a
1779 PT_V9_I5 = 0x68 1779 PTRACE_GET_SYSCALL_INFO = 0x420e
1780 PT_V9_I6 = 0x70 1780 PTRACE_INTERRUPT = 0x4207
1781 PT_V9_I7 = 0x78 1781 PTRACE_KILL = 0x8
1782 PT_V9_MAGIC = 0x9c 1782 PTRACE_LISTEN = 0x4208
1783 PT_V9_TNPC = 0x90 1783 PTRACE_O_EXITKILL = 0x100000
1784 PT_V9_TPC = 0x88 1784 PTRACE_O_MASK = 0x3000ff
1785 PT_V9_TSTATE = 0x80 1785 PTRACE_O_SUSPEND_SECCOMP = 0x200000
1786 PT_V9_Y = 0x98 1786 PTRACE_O_TRACECLONE = 0x8
1787 PT_WIM = 0x10 1787 PTRACE_O_TRACEEXEC = 0x10
1788 PT_Y = 0xc 1788 PTRACE_O_TRACEEXIT = 0x40
1789 QNX4_SUPER_MAGIC = 0x2f 1789 PTRACE_O_TRACEFORK = 0x2
1790 QNX6_SUPER_MAGIC = 0x68191122 1790 PTRACE_O_TRACESECCOMP = 0x80
1791 RAMFS_MAGIC = 0x858458f6 1791 PTRACE_O_TRACESYSGOOD = 0x1
1792 RDTGROUP_SUPER_MAGIC = 0x7655821 1792 PTRACE_O_TRACEVFORK = 0x4
1793 REISERFS_SUPER_MAGIC = 0x52654973 1793 PTRACE_O_TRACEVFORKDONE = 0x20
1794 RENAME_EXCHANGE = 0x2 1794 PTRACE_PEEKDATA = 0x2
1795 RENAME_NOREPLACE = 0x1 1795 PTRACE_PEEKSIGINFO = 0x4209
1796 RENAME_WHITEOUT = 0x4 1796 PTRACE_PEEKSIGINFO_SHARED = 0x1
1797 RLIMIT_AS = 0x9 1797 PTRACE_PEEKTEXT = 0x1
1798 RLIMIT_CORE = 0x4 1798 PTRACE_PEEKUSR = 0x3
1799 RLIMIT_CPU = 0x0 1799 PTRACE_POKEDATA = 0x5
1800 RLIMIT_DATA = 0x2 1800 PTRACE_POKETEXT = 0x4
1801 RLIMIT_FSIZE = 0x1 1801 PTRACE_POKEUSR = 0x6
1802 RLIMIT_LOCKS = 0xa 1802 PTRACE_READDATA = 0x10
1803 RLIMIT_MEMLOCK = 0x8 1803 PTRACE_READTEXT = 0x12
1804 RLIMIT_MSGQUEUE = 0xc 1804 PTRACE_SECCOMP_GET_FILTER = 0x420c
1805 RLIMIT_NICE = 0xd 1805 PTRACE_SECCOMP_GET_METADATA = 0x420d
1806 RLIMIT_NOFILE = 0x6 1806 PTRACE_SEIZE = 0x4206
1807 RLIMIT_NPROC = 0x7 1807 PTRACE_SETFPAREGS = 0x15
1808 RLIMIT_RSS = 0x5 1808 PTRACE_SETFPREGS = 0xf
1809 RLIMIT_RTPRIO = 0xe 1809 PTRACE_SETFPREGS64 = 0x1a
1810 RLIMIT_RTTIME = 0xf 1810 PTRACE_SETOPTIONS = 0x4200
1811 RLIMIT_SIGPENDING = 0xb 1811 PTRACE_SETREGS = 0xd
1812 RLIMIT_STACK = 0x3 1812 PTRACE_SETREGS64 = 0x17
1813 RLIM_INFINITY = 0xffffffffffffffff 1813 PTRACE_SETREGSET = 0x4205
1814 RNDADDENTROPY = 0x80085203 1814 PTRACE_SETSIGINFO = 0x4203
1815 RNDADDTOENTCNT = 0x80045201 1815 PTRACE_SETSIGMASK = 0x420b
1816 RNDCLEARPOOL = 0x20005206 1816 PTRACE_SINGLESTEP = 0x9
1817 RNDGETENTCNT = 0x40045200 1817 PTRACE_SPARC_DETACH = 0xb
1818 RNDGETPOOL = 0x40085202 1818 PTRACE_SYSCALL = 0x18
1819 RNDRESEEDCRNG = 0x20005207 1819 PTRACE_SYSCALL_INFO_ENTRY = 0x1
1820 RNDZAPENTCNT = 0x20005204 1820 PTRACE_SYSCALL_INFO_EXIT = 0x2
1821 RTAX_ADVMSS = 0x8 1821 PTRACE_SYSCALL_INFO_NONE = 0x0
1822 RTAX_CC_ALGO = 0x10 1822 PTRACE_SYSCALL_INFO_SECCOMP = 0x3
1823 RTAX_CWND = 0x7 1823 PTRACE_TRACEME = 0x0
1824 RTAX_FASTOPEN_NO_COOKIE = 0x11 1824 PTRACE_WRITEDATA = 0x11
1825 RTAX_FEATURES = 0xc 1825 PTRACE_WRITETEXT = 0x13
1826 RTAX_FEATURE_ALLFRAG = 0x8 1826 PT_FP = 0x48
1827 RTAX_FEATURE_ECN = 0x1 1827 PT_G0 = 0x10
1828 RTAX_FEATURE_MASK = 0xf 1828 PT_G1 = 0x14
1829 RTAX_FEATURE_SACK = 0x2 1829 PT_G2 = 0x18
1830 RTAX_FEATURE_TIMESTAMP = 0x4 1830 PT_G3 = 0x1c
1831 RTAX_HOPLIMIT = 0xa 1831 PT_G4 = 0x20
1832 RTAX_INITCWND = 0xb 1832 PT_G5 = 0x24
1833 RTAX_INITRWND = 0xe 1833 PT_G6 = 0x28
1834 RTAX_LOCK = 0x1 1834 PT_G7 = 0x2c
1835 RTAX_MAX = 0x11 1835 PT_I0 = 0x30
1836 RTAX_MTU = 0x2 1836 PT_I1 = 0x34
1837 RTAX_QUICKACK = 0xf 1837 PT_I2 = 0x38
1838 RTAX_REORDERING = 0x9 1838 PT_I3 = 0x3c
1839 RTAX_RTO_MIN = 0xd 1839 PT_I4 = 0x40
1840 RTAX_RTT = 0x4 1840 PT_I5 = 0x44
1841 RTAX_RTTVAR = 0x5 1841 PT_I6 = 0x48
1842 RTAX_SSTHRESH = 0x6 1842 PT_I7 = 0x4c
1843 RTAX_UNSPEC = 0x0 1843 PT_NPC = 0x8
1844 RTAX_WINDOW = 0x3 1844 PT_PC = 0x4
1845 RTA_ALIGNTO = 0x4 1845 PT_PSR = 0x0
1846 RTA_MAX = 0x1d 1846 PT_REGS_MAGIC = 0x57ac6c00
1847 RTCF_DIRECTSRC = 0x4000000 1847 PT_TNPC = 0x90
1848 RTCF_DOREDIRECT = 0x1000000 1848 PT_TPC = 0x88
1849 RTCF_LOG = 0x2000000 1849 PT_TSTATE = 0x80
1850 RTCF_MASQ = 0x400000 1850 PT_V9_FP = 0x70
1851 RTCF_NAT = 0x800000 1851 PT_V9_G0 = 0x0
1852 RTCF_VALVE = 0x200000 1852 PT_V9_G1 = 0x8
1853 RTC_AF = 0x20 1853 PT_V9_G2 = 0x10
1854 RTC_AIE_OFF = 0x20007002 1854 PT_V9_G3 = 0x18
1855 RTC_AIE_ON = 0x20007001 1855 PT_V9_G4 = 0x20
1856 RTC_ALM_READ = 0x40247008 1856 PT_V9_G5 = 0x28
1857 RTC_ALM_SET = 0x80247007 1857 PT_V9_G6 = 0x30
1858 RTC_EPOCH_READ = 0x4008700d 1858 PT_V9_G7 = 0x38
1859 RTC_EPOCH_SET = 0x8008700e 1859 PT_V9_I0 = 0x40
1860 RTC_IRQF = 0x80 1860 PT_V9_I1 = 0x48
1861 RTC_IRQP_READ = 0x4008700b 1861 PT_V9_I2 = 0x50
1862 RTC_IRQP_SET = 0x8008700c 1862 PT_V9_I3 = 0x58
1863 RTC_MAX_FREQ = 0x2000 1863 PT_V9_I4 = 0x60
1864 RTC_PF = 0x40 1864 PT_V9_I5 = 0x68
1865 RTC_PIE_OFF = 0x20007006 1865 PT_V9_I6 = 0x70
1866 RTC_PIE_ON = 0x20007005 1866 PT_V9_I7 = 0x78
1867 RTC_PLL_GET = 0x40207011 1867 PT_V9_MAGIC = 0x9c
1868 RTC_PLL_SET = 0x80207012 1868 PT_V9_TNPC = 0x90
1869 RTC_RD_TIME = 0x40247009 1869 PT_V9_TPC = 0x88
1870 RTC_SET_TIME = 0x8024700a 1870 PT_V9_TSTATE = 0x80
1871 RTC_UF = 0x10 1871 PT_V9_Y = 0x98
1872 RTC_UIE_OFF = 0x20007004 1872 PT_WIM = 0x10
1873 RTC_UIE_ON = 0x20007003 1873 PT_Y = 0xc
1874 RTC_VL_CLR = 0x20007014 1874 QNX4_SUPER_MAGIC = 0x2f
1875 RTC_VL_READ = 0x40047013 1875 QNX6_SUPER_MAGIC = 0x68191122
1876 RTC_WIE_OFF = 0x20007010 1876 RAMFS_MAGIC = 0x858458f6
1877 RTC_WIE_ON = 0x2000700f 1877 RDTGROUP_SUPER_MAGIC = 0x7655821
1878 RTC_WKALM_RD = 0x40287010 1878 REISERFS_SUPER_MAGIC = 0x52654973
1879 RTC_WKALM_SET = 0x8028700f 1879 RENAME_EXCHANGE = 0x2
1880 RTF_ADDRCLASSMASK = 0xf8000000 1880 RENAME_NOREPLACE = 0x1
1881 RTF_ADDRCONF = 0x40000 1881 RENAME_WHITEOUT = 0x4
1882 RTF_ALLONLINK = 0x20000 1882 RLIMIT_AS = 0x9
1883 RTF_BROADCAST = 0x10000000 1883 RLIMIT_CORE = 0x4
1884 RTF_CACHE = 0x1000000 1884 RLIMIT_CPU = 0x0
1885 RTF_DEFAULT = 0x10000 1885 RLIMIT_DATA = 0x2
1886 RTF_DYNAMIC = 0x10 1886 RLIMIT_FSIZE = 0x1
1887 RTF_FLOW = 0x2000000 1887 RLIMIT_LOCKS = 0xa
1888 RTF_GATEWAY = 0x2 1888 RLIMIT_MEMLOCK = 0x8
1889 RTF_HOST = 0x4 1889 RLIMIT_MSGQUEUE = 0xc
1890 RTF_INTERFACE = 0x40000000 1890 RLIMIT_NICE = 0xd
1891 RTF_IRTT = 0x100 1891 RLIMIT_NOFILE = 0x6
1892 RTF_LINKRT = 0x100000 1892 RLIMIT_NPROC = 0x7
1893 RTF_LOCAL = 0x80000000 1893 RLIMIT_RSS = 0x5
1894 RTF_MODIFIED = 0x20 1894 RLIMIT_RTPRIO = 0xe
1895 RTF_MSS = 0x40 1895 RLIMIT_RTTIME = 0xf
1896 RTF_MTU = 0x40 1896 RLIMIT_SIGPENDING = 0xb
1897 RTF_MULTICAST = 0x20000000 1897 RLIMIT_STACK = 0x3
1898 RTF_NAT = 0x8000000 1898 RLIM_INFINITY = 0xffffffffffffffff
1899 RTF_NOFORWARD = 0x1000 1899 RNDADDENTROPY = 0x80085203
1900 RTF_NONEXTHOP = 0x200000 1900 RNDADDTOENTCNT = 0x80045201
1901 RTF_NOPMTUDISC = 0x4000 1901 RNDCLEARPOOL = 0x20005206
1902 RTF_POLICY = 0x4000000 1902 RNDGETENTCNT = 0x40045200
1903 RTF_REINSTATE = 0x8 1903 RNDGETPOOL = 0x40085202
1904 RTF_REJECT = 0x200 1904 RNDRESEEDCRNG = 0x20005207
1905 RTF_STATIC = 0x400 1905 RNDZAPENTCNT = 0x20005204
1906 RTF_THROW = 0x2000 1906 RTAX_ADVMSS = 0x8
1907 RTF_UP = 0x1 1907 RTAX_CC_ALGO = 0x10
1908 RTF_WINDOW = 0x80 1908 RTAX_CWND = 0x7
1909 RTF_XRESOLVE = 0x800 1909 RTAX_FASTOPEN_NO_COOKIE = 0x11
1910 RTM_BASE = 0x10 1910 RTAX_FEATURES = 0xc
1911 RTM_DELACTION = 0x31 1911 RTAX_FEATURE_ALLFRAG = 0x8
1912 RTM_DELADDR = 0x15 1912 RTAX_FEATURE_ECN = 0x1
1913 RTM_DELADDRLABEL = 0x49 1913 RTAX_FEATURE_MASK = 0xf
1914 RTM_DELCHAIN = 0x65 1914 RTAX_FEATURE_SACK = 0x2
1915 RTM_DELLINK = 0x11 1915 RTAX_FEATURE_TIMESTAMP = 0x4
1916 RTM_DELMDB = 0x55 1916 RTAX_HOPLIMIT = 0xa
1917 RTM_DELNEIGH = 0x1d 1917 RTAX_INITCWND = 0xb
1918 RTM_DELNETCONF = 0x51 1918 RTAX_INITRWND = 0xe
1919 RTM_DELNSID = 0x59 1919 RTAX_LOCK = 0x1
1920 RTM_DELQDISC = 0x25 1920 RTAX_MAX = 0x11
1921 RTM_DELROUTE = 0x19 1921 RTAX_MTU = 0x2
1922 RTM_DELRULE = 0x21 1922 RTAX_QUICKACK = 0xf
1923 RTM_DELTCLASS = 0x29 1923 RTAX_REORDERING = 0x9
1924 RTM_DELTFILTER = 0x2d 1924 RTAX_RTO_MIN = 0xd
1925 RTM_F_CLONED = 0x200 1925 RTAX_RTT = 0x4
1926 RTM_F_EQUALIZE = 0x400 1926 RTAX_RTTVAR = 0x5
1927 RTM_F_FIB_MATCH = 0x2000 1927 RTAX_SSTHRESH = 0x6
1928 RTM_F_LOOKUP_TABLE = 0x1000 1928 RTAX_UNSPEC = 0x0
1929 RTM_F_NOTIFY = 0x100 1929 RTAX_WINDOW = 0x3
1930 RTM_F_PREFIX = 0x800 1930 RTA_ALIGNTO = 0x4
1931 RTM_GETACTION = 0x32 1931 RTA_MAX = 0x1e
1932 RTM_GETADDR = 0x16 1932 RTCF_DIRECTSRC = 0x4000000
1933 RTM_GETADDRLABEL = 0x4a 1933 RTCF_DOREDIRECT = 0x1000000
1934 RTM_GETANYCAST = 0x3e 1934 RTCF_LOG = 0x2000000
1935 RTM_GETCHAIN = 0x66 1935 RTCF_MASQ = 0x400000
1936 RTM_GETDCB = 0x4e 1936 RTCF_NAT = 0x800000
1937 RTM_GETLINK = 0x12 1937 RTCF_VALVE = 0x200000
1938 RTM_GETMDB = 0x56 1938 RTC_AF = 0x20
1939 RTM_GETMULTICAST = 0x3a 1939 RTC_AIE_OFF = 0x20007002
1940 RTM_GETNEIGH = 0x1e 1940 RTC_AIE_ON = 0x20007001
1941 RTM_GETNEIGHTBL = 0x42 1941 RTC_ALM_READ = 0x40247008
1942 RTM_GETNETCONF = 0x52 1942 RTC_ALM_SET = 0x80247007
1943 RTM_GETNSID = 0x5a 1943 RTC_EPOCH_READ = 0x4008700d
1944 RTM_GETQDISC = 0x26 1944 RTC_EPOCH_SET = 0x8008700e
1945 RTM_GETROUTE = 0x1a 1945 RTC_IRQF = 0x80
1946 RTM_GETRULE = 0x22 1946 RTC_IRQP_READ = 0x4008700b
1947 RTM_GETSTATS = 0x5e 1947 RTC_IRQP_SET = 0x8008700c
1948 RTM_GETTCLASS = 0x2a 1948 RTC_MAX_FREQ = 0x2000
1949 RTM_GETTFILTER = 0x2e 1949 RTC_PF = 0x40
1950 RTM_MAX = 0x67 1950 RTC_PIE_OFF = 0x20007006
1951 RTM_NEWACTION = 0x30 1951 RTC_PIE_ON = 0x20007005
1952 RTM_NEWADDR = 0x14 1952 RTC_PLL_GET = 0x40207011
1953 RTM_NEWADDRLABEL = 0x48 1953 RTC_PLL_SET = 0x80207012
1954 RTM_NEWCACHEREPORT = 0x60 1954 RTC_RD_TIME = 0x40247009
1955 RTM_NEWCHAIN = 0x64 1955 RTC_SET_TIME = 0x8024700a
1956 RTM_NEWLINK = 0x10 1956 RTC_UF = 0x10
1957 RTM_NEWMDB = 0x54 1957 RTC_UIE_OFF = 0x20007004
1958 RTM_NEWNDUSEROPT = 0x44 1958 RTC_UIE_ON = 0x20007003
1959 RTM_NEWNEIGH = 0x1c 1959 RTC_VL_CLR = 0x20007014
1960 RTM_NEWNEIGHTBL = 0x40 1960 RTC_VL_READ = 0x40047013
1961 RTM_NEWNETCONF = 0x50 1961 RTC_WIE_OFF = 0x20007010
1962 RTM_NEWNSID = 0x58 1962 RTC_WIE_ON = 0x2000700f
1963 RTM_NEWPREFIX = 0x34 1963 RTC_WKALM_RD = 0x40287010
1964 RTM_NEWQDISC = 0x24 1964 RTC_WKALM_SET = 0x8028700f
1965 RTM_NEWROUTE = 0x18 1965 RTF_ADDRCLASSMASK = 0xf8000000
1966 RTM_NEWRULE = 0x20 1966 RTF_ADDRCONF = 0x40000
1967 RTM_NEWSTATS = 0x5c 1967 RTF_ALLONLINK = 0x20000
1968 RTM_NEWTCLASS = 0x28 1968 RTF_BROADCAST = 0x10000000
1969 RTM_NEWTFILTER = 0x2c 1969 RTF_CACHE = 0x1000000
1970 RTM_NR_FAMILIES = 0x16 1970 RTF_DEFAULT = 0x10000
1971 RTM_NR_MSGTYPES = 0x58 1971 RTF_DYNAMIC = 0x10
1972 RTM_SETDCB = 0x4f 1972 RTF_FLOW = 0x2000000
1973 RTM_SETLINK = 0x13 1973 RTF_GATEWAY = 0x2
1974 RTM_SETNEIGHTBL = 0x43 1974 RTF_HOST = 0x4
1975 RTNH_ALIGNTO = 0x4 1975 RTF_INTERFACE = 0x40000000
1976 RTNH_COMPARE_MASK = 0x19 1976 RTF_IRTT = 0x100
1977 RTNH_F_DEAD = 0x1 1977 RTF_LINKRT = 0x100000
1978 RTNH_F_LINKDOWN = 0x10 1978 RTF_LOCAL = 0x80000000
1979 RTNH_F_OFFLOAD = 0x8 1979 RTF_MODIFIED = 0x20
1980 RTNH_F_ONLINK = 0x4 1980 RTF_MSS = 0x40
1981 RTNH_F_PERVASIVE = 0x2 1981 RTF_MTU = 0x40
1982 RTNH_F_UNRESOLVED = 0x20 1982 RTF_MULTICAST = 0x20000000
1983 RTN_MAX = 0xb 1983 RTF_NAT = 0x8000000
1984 RTPROT_BABEL = 0x2a 1984 RTF_NOFORWARD = 0x1000
1985 RTPROT_BGP = 0xba 1985 RTF_NONEXTHOP = 0x200000
1986 RTPROT_BIRD = 0xc 1986 RTF_NOPMTUDISC = 0x4000
1987 RTPROT_BOOT = 0x3 1987 RTF_POLICY = 0x4000000
1988 RTPROT_DHCP = 0x10 1988 RTF_REINSTATE = 0x8
1989 RTPROT_DNROUTED = 0xd 1989 RTF_REJECT = 0x200
1990 RTPROT_EIGRP = 0xc0 1990 RTF_STATIC = 0x400
1991 RTPROT_GATED = 0x8 1991 RTF_THROW = 0x2000
1992 RTPROT_ISIS = 0xbb 1992 RTF_UP = 0x1
1993 RTPROT_KERNEL = 0x2 1993 RTF_WINDOW = 0x80
1994 RTPROT_MROUTED = 0x11 1994 RTF_XRESOLVE = 0x800
1995 RTPROT_MRT = 0xa 1995 RTMGRP_DECnet_IFADDR = 0x1000
1996 RTPROT_NTK = 0xf 1996 RTMGRP_DECnet_ROUTE = 0x4000
1997 RTPROT_OSPF = 0xbc 1997 RTMGRP_IPV4_IFADDR = 0x10
1998 RTPROT_RA = 0x9 1998 RTMGRP_IPV4_MROUTE = 0x20
1999 RTPROT_REDIRECT = 0x1 1999 RTMGRP_IPV4_ROUTE = 0x40
2000 RTPROT_RIP = 0xbd 2000 RTMGRP_IPV4_RULE = 0x80
2001 RTPROT_STATIC = 0x4 2001 RTMGRP_IPV6_IFADDR = 0x100
2002 RTPROT_UNSPEC = 0x0 2002 RTMGRP_IPV6_IFINFO = 0x800
2003 RTPROT_XORP = 0xe 2003 RTMGRP_IPV6_MROUTE = 0x200
2004 RTPROT_ZEBRA = 0xb 2004 RTMGRP_IPV6_PREFIX = 0x20000
2005 RT_CLASS_DEFAULT = 0xfd 2005 RTMGRP_IPV6_ROUTE = 0x400
2006 RT_CLASS_LOCAL = 0xff 2006 RTMGRP_LINK = 0x1
2007 RT_CLASS_MAIN = 0xfe 2007 RTMGRP_NEIGH = 0x4
2008 RT_CLASS_MAX = 0xff 2008 RTMGRP_NOTIFY = 0x2
2009 RT_CLASS_UNSPEC = 0x0 2009 RTMGRP_TC = 0x8
2010 RUSAGE_CHILDREN = -0x1 2010 RTM_BASE = 0x10
2011 RUSAGE_SELF = 0x0 2011 RTM_DELACTION = 0x31
2012 RUSAGE_THREAD = 0x1 2012 RTM_DELADDR = 0x15
2013 SCM_CREDENTIALS = 0x2 2013 RTM_DELADDRLABEL = 0x49
2014 SCM_RIGHTS = 0x1 2014 RTM_DELCHAIN = 0x65
2015 SCM_TIMESTAMP = 0x1d 2015 RTM_DELLINK = 0x11
2016 SCM_TIMESTAMPING = 0x23 2016 RTM_DELLINKPROP = 0x6d
2017 SCM_TIMESTAMPING_OPT_STATS = 0x38 2017 RTM_DELMDB = 0x55
2018 SCM_TIMESTAMPING_PKTINFO = 0x3c 2018 RTM_DELNEIGH = 0x1d
2019 SCM_TIMESTAMPNS = 0x21 2019 RTM_DELNETCONF = 0x51
2020 SCM_TXTIME = 0x3f 2020 RTM_DELNEXTHOP = 0x69
2021 SCM_WIFI_STATUS = 0x25 2021 RTM_DELNSID = 0x59
2022 SC_LOG_FLUSH = 0x100000 2022 RTM_DELQDISC = 0x25
2023 SECCOMP_MODE_DISABLED = 0x0 2023 RTM_DELROUTE = 0x19
2024 SECCOMP_MODE_FILTER = 0x2 2024 RTM_DELRULE = 0x21
2025 SECCOMP_MODE_STRICT = 0x1 2025 RTM_DELTCLASS = 0x29
2026 SECURITYFS_MAGIC = 0x73636673 2026 RTM_DELTFILTER = 0x2d
2027 SELINUX_MAGIC = 0xf97cff8c 2027 RTM_F_CLONED = 0x200
2028 SFD_CLOEXEC = 0x400000 2028 RTM_F_EQUALIZE = 0x400
2029 SFD_NONBLOCK = 0x4000 2029 RTM_F_FIB_MATCH = 0x2000
2030 SHUT_RD = 0x0 2030 RTM_F_LOOKUP_TABLE = 0x1000
2031 SHUT_RDWR = 0x2 2031 RTM_F_NOTIFY = 0x100
2032 SHUT_WR = 0x1 2032 RTM_F_PREFIX = 0x800
2033 SIOCADDDLCI = 0x8980 2033 RTM_GETACTION = 0x32
2034 SIOCADDMULTI = 0x8931 2034 RTM_GETADDR = 0x16
2035 SIOCADDRT = 0x890b 2035 RTM_GETADDRLABEL = 0x4a
2036 SIOCATMARK = 0x8905 2036 RTM_GETANYCAST = 0x3e
2037 SIOCBONDCHANGEACTIVE = 0x8995 2037 RTM_GETCHAIN = 0x66
2038 SIOCBONDENSLAVE = 0x8990 2038 RTM_GETDCB = 0x4e
2039 SIOCBONDINFOQUERY = 0x8994 2039 RTM_GETLINK = 0x12
2040 SIOCBONDRELEASE = 0x8991 2040 RTM_GETLINKPROP = 0x6e
2041 SIOCBONDSETHWADDR = 0x8992 2041 RTM_GETMDB = 0x56
2042 SIOCBONDSLAVEINFOQUERY = 0x8993 2042 RTM_GETMULTICAST = 0x3a
2043 SIOCBRADDBR = 0x89a0 2043 RTM_GETNEIGH = 0x1e
2044 SIOCBRADDIF = 0x89a2 2044 RTM_GETNEIGHTBL = 0x42
2045 SIOCBRDELBR = 0x89a1 2045 RTM_GETNETCONF = 0x52
2046 SIOCBRDELIF = 0x89a3 2046 RTM_GETNEXTHOP = 0x6a
2047 SIOCDARP = 0x8953 2047 RTM_GETNSID = 0x5a
2048 SIOCDELDLCI = 0x8981 2048 RTM_GETQDISC = 0x26
2049 SIOCDELMULTI = 0x8932 2049 RTM_GETROUTE = 0x1a
2050 SIOCDELRT = 0x890c 2050 RTM_GETRULE = 0x22
2051 SIOCDEVPRIVATE = 0x89f0 2051 RTM_GETSTATS = 0x5e
2052 SIOCDIFADDR = 0x8936 2052 RTM_GETTCLASS = 0x2a
2053 SIOCDRARP = 0x8960 2053 RTM_GETTFILTER = 0x2e
2054 SIOCETHTOOL = 0x8946 2054 RTM_MAX = 0x6f
2055 SIOCGARP = 0x8954 2055 RTM_NEWACTION = 0x30
2056 SIOCGHWTSTAMP = 0x89b1 2056 RTM_NEWADDR = 0x14
2057 SIOCGIFADDR = 0x8915 2057 RTM_NEWADDRLABEL = 0x48
2058 SIOCGIFBR = 0x8940 2058 RTM_NEWCACHEREPORT = 0x60
2059 SIOCGIFBRDADDR = 0x8919 2059 RTM_NEWCHAIN = 0x64
2060 SIOCGIFCONF = 0x8912 2060 RTM_NEWLINK = 0x10
2061 SIOCGIFCOUNT = 0x8938 2061 RTM_NEWLINKPROP = 0x6c
2062 SIOCGIFDSTADDR = 0x8917 2062 RTM_NEWMDB = 0x54
2063 SIOCGIFENCAP = 0x8925 2063 RTM_NEWNDUSEROPT = 0x44
2064 SIOCGIFFLAGS = 0x8913 2064 RTM_NEWNEIGH = 0x1c
2065 SIOCGIFHWADDR = 0x8927 2065 RTM_NEWNEIGHTBL = 0x40
2066 SIOCGIFINDEX = 0x8933 2066 RTM_NEWNETCONF = 0x50
2067 SIOCGIFMAP = 0x8970 2067 RTM_NEWNEXTHOP = 0x68
2068 SIOCGIFMEM = 0x891f 2068 RTM_NEWNSID = 0x58
2069 SIOCGIFMETRIC = 0x891d 2069 RTM_NEWPREFIX = 0x34
2070 SIOCGIFMTU = 0x8921 2070 RTM_NEWQDISC = 0x24
2071 SIOCGIFNAME = 0x8910 2071 RTM_NEWROUTE = 0x18
2072 SIOCGIFNETMASK = 0x891b 2072 RTM_NEWRULE = 0x20
2073 SIOCGIFPFLAGS = 0x8935 2073 RTM_NEWSTATS = 0x5c
2074 SIOCGIFSLAVE = 0x8929 2074 RTM_NEWTCLASS = 0x28
2075 SIOCGIFTXQLEN = 0x8942 2075 RTM_NEWTFILTER = 0x2c
2076 SIOCGIFVLAN = 0x8982 2076 RTM_NR_FAMILIES = 0x18
2077 SIOCGMIIPHY = 0x8947 2077 RTM_NR_MSGTYPES = 0x60
2078 SIOCGMIIREG = 0x8948 2078 RTM_SETDCB = 0x4f
2079 SIOCGPGRP = 0x8904 2079 RTM_SETLINK = 0x13
2080 SIOCGPPPCSTATS = 0x89f2 2080 RTM_SETNEIGHTBL = 0x43
2081 SIOCGPPPSTATS = 0x89f0 2081 RTNH_ALIGNTO = 0x4
2082 SIOCGPPPVER = 0x89f1 2082 RTNH_COMPARE_MASK = 0x19
2083 SIOCGRARP = 0x8961 2083 RTNH_F_DEAD = 0x1
2084 SIOCGSKNS = 0x894c 2084 RTNH_F_LINKDOWN = 0x10
2085 SIOCGSTAMP = 0x8906 2085 RTNH_F_OFFLOAD = 0x8
2086 SIOCGSTAMPNS = 0x8907 2086 RTNH_F_ONLINK = 0x4
2087 SIOCGSTAMPNS_NEW = 0x40108907 2087 RTNH_F_PERVASIVE = 0x2
2088 SIOCGSTAMPNS_OLD = 0x8907 2088 RTNH_F_UNRESOLVED = 0x20
2089 SIOCGSTAMP_NEW = 0x40108906 2089 RTN_MAX = 0xb
2090 SIOCGSTAMP_OLD = 0x8906 2090 RTPROT_BABEL = 0x2a
2091 SIOCINQ = 0x4004667f 2091 RTPROT_BGP = 0xba
2092 SIOCOUTQ = 0x40047473 2092 RTPROT_BIRD = 0xc
2093 SIOCOUTQNSD = 0x894b 2093 RTPROT_BOOT = 0x3
2094 SIOCPROTOPRIVATE = 0x89e0 2094 RTPROT_DHCP = 0x10
2095 SIOCRTMSG = 0x890d 2095 RTPROT_DNROUTED = 0xd
2096 SIOCSARP = 0x8955 2096 RTPROT_EIGRP = 0xc0
2097 SIOCSHWTSTAMP = 0x89b0 2097 RTPROT_GATED = 0x8
2098 SIOCSIFADDR = 0x8916 2098 RTPROT_ISIS = 0xbb
2099 SIOCSIFBR = 0x8941 2099 RTPROT_KERNEL = 0x2
2100 SIOCSIFBRDADDR = 0x891a 2100 RTPROT_MROUTED = 0x11
2101 SIOCSIFDSTADDR = 0x8918 2101 RTPROT_MRT = 0xa
2102 SIOCSIFENCAP = 0x8926 2102 RTPROT_NTK = 0xf
2103 SIOCSIFFLAGS = 0x8914 2103 RTPROT_OSPF = 0xbc
2104 SIOCSIFHWADDR = 0x8924 2104 RTPROT_RA = 0x9
2105 SIOCSIFHWBROADCAST = 0x8937 2105 RTPROT_REDIRECT = 0x1
2106 SIOCSIFLINK = 0x8911 2106 RTPROT_RIP = 0xbd
2107 SIOCSIFMAP = 0x8971 2107 RTPROT_STATIC = 0x4
2108 SIOCSIFMEM = 0x8920 2108 RTPROT_UNSPEC = 0x0
2109 SIOCSIFMETRIC = 0x891e 2109 RTPROT_XORP = 0xe
2110 SIOCSIFMTU = 0x8922 2110 RTPROT_ZEBRA = 0xb
2111 SIOCSIFNAME = 0x8923 2111 RT_CLASS_DEFAULT = 0xfd
2112 SIOCSIFNETMASK = 0x891c 2112 RT_CLASS_LOCAL = 0xff
2113 SIOCSIFPFLAGS = 0x8934 2113 RT_CLASS_MAIN = 0xfe
2114 SIOCSIFSLAVE = 0x8930 2114 RT_CLASS_MAX = 0xff
2115 SIOCSIFTXQLEN = 0x8943 2115 RT_CLASS_UNSPEC = 0x0
2116 SIOCSIFVLAN = 0x8983 2116 RUSAGE_CHILDREN = -0x1
2117 SIOCSMIIREG = 0x8949 2117 RUSAGE_SELF = 0x0
2118 SIOCSPGRP = 0x8902 2118 RUSAGE_THREAD = 0x1
2119 SIOCSRARP = 0x8962 2119 RWF_APPEND = 0x10
2120 SIOCWANDEV = 0x894a 2120 RWF_DSYNC = 0x2
2121 SMACK_MAGIC = 0x43415d53 2121 RWF_HIPRI = 0x1
2122 SMART_AUTOSAVE = 0xd2 2122 RWF_NOWAIT = 0x8
2123 SMART_AUTO_OFFLINE = 0xdb 2123 RWF_SUPPORTED = 0x1f
2124 SMART_DISABLE = 0xd9 2124 RWF_SYNC = 0x4
2125 SMART_ENABLE = 0xd8 2125 RWF_WRITE_LIFE_NOT_SET = 0x0
2126 SMART_HCYL_PASS = 0xc2 2126 SCM_CREDENTIALS = 0x2
2127 SMART_IMMEDIATE_OFFLINE = 0xd4 2127 SCM_RIGHTS = 0x1
2128 SMART_LCYL_PASS = 0x4f 2128 SCM_TIMESTAMP = 0x1d
2129 SMART_READ_LOG_SECTOR = 0xd5 2129 SCM_TIMESTAMPING = 0x23
2130 SMART_READ_THRESHOLDS = 0xd1 2130 SCM_TIMESTAMPING_OPT_STATS = 0x38
2131 SMART_READ_VALUES = 0xd0 2131 SCM_TIMESTAMPING_PKTINFO = 0x3c
2132 SMART_SAVE = 0xd3 2132 SCM_TIMESTAMPNS = 0x21
2133 SMART_STATUS = 0xda 2133 SCM_TXTIME = 0x3f
2134 SMART_WRITE_LOG_SECTOR = 0xd6 2134 SCM_WIFI_STATUS = 0x25
2135 SMART_WRITE_THRESHOLDS = 0xd7 2135 SC_LOG_FLUSH = 0x100000
2136 SMB_SUPER_MAGIC = 0x517b 2136 SECCOMP_MODE_DISABLED = 0x0
2137 SOCKFS_MAGIC = 0x534f434b 2137 SECCOMP_MODE_FILTER = 0x2
2138 SOCK_CLOEXEC = 0x400000 2138 SECCOMP_MODE_STRICT = 0x1
2139 SOCK_DCCP = 0x6 2139 SECURITYFS_MAGIC = 0x73636673
2140 SOCK_DGRAM = 0x2 2140 SELINUX_MAGIC = 0xf97cff8c
2141 SOCK_IOC_TYPE = 0x89 2141 SFD_CLOEXEC = 0x400000
2142 SOCK_NONBLOCK = 0x4000 2142 SFD_NONBLOCK = 0x4000
2143 SOCK_PACKET = 0xa 2143 SHUT_RD = 0x0
2144 SOCK_RAW = 0x3 2144 SHUT_RDWR = 0x2
2145 SOCK_RDM = 0x4 2145 SHUT_WR = 0x1
2146 SOCK_SEQPACKET = 0x5 2146 SIOCADDDLCI = 0x8980
2147 SOCK_STREAM = 0x1 2147 SIOCADDMULTI = 0x8931
2148 SOL_AAL = 0x109 2148 SIOCADDRT = 0x890b
2149 SOL_ALG = 0x117 2149 SIOCATMARK = 0x8905
2150 SOL_ATM = 0x108 2150 SIOCBONDCHANGEACTIVE = 0x8995
2151 SOL_CAIF = 0x116 2151 SIOCBONDENSLAVE = 0x8990
2152 SOL_CAN_BASE = 0x64 2152 SIOCBONDINFOQUERY = 0x8994
2153 SOL_DCCP = 0x10d 2153 SIOCBONDRELEASE = 0x8991
2154 SOL_DECNET = 0x105 2154 SIOCBONDSETHWADDR = 0x8992
2155 SOL_ICMPV6 = 0x3a 2155 SIOCBONDSLAVEINFOQUERY = 0x8993
2156 SOL_IP = 0x0 2156 SIOCBRADDBR = 0x89a0
2157 SOL_IPV6 = 0x29 2157 SIOCBRADDIF = 0x89a2
2158 SOL_IRDA = 0x10a 2158 SIOCBRDELBR = 0x89a1
2159 SOL_IUCV = 0x115 2159 SIOCBRDELIF = 0x89a3
2160 SOL_KCM = 0x119 2160 SIOCDARP = 0x8953
2161 SOL_LLC = 0x10c 2161 SIOCDELDLCI = 0x8981
2162 SOL_NETBEUI = 0x10b 2162 SIOCDELMULTI = 0x8932
2163 SOL_NETLINK = 0x10e 2163 SIOCDELRT = 0x890c
2164 SOL_NFC = 0x118 2164 SIOCDEVPRIVATE = 0x89f0
2165 SOL_PACKET = 0x107 2165 SIOCDIFADDR = 0x8936
2166 SOL_PNPIPE = 0x113 2166 SIOCDRARP = 0x8960
2167 SOL_PPPOL2TP = 0x111 2167 SIOCETHTOOL = 0x8946
2168 SOL_RAW = 0xff 2168 SIOCGARP = 0x8954
2169 SOL_RDS = 0x114 2169 SIOCGETLINKNAME = 0x89e0
2170 SOL_RXRPC = 0x110 2170 SIOCGETNODEID = 0x89e1
2171 SOL_SOCKET = 0xffff 2171 SIOCGHWTSTAMP = 0x89b1
2172 SOL_TCP = 0x6 2172 SIOCGIFADDR = 0x8915
2173 SOL_TIPC = 0x10f 2173 SIOCGIFBR = 0x8940
2174 SOL_TLS = 0x11a 2174 SIOCGIFBRDADDR = 0x8919
2175 SOL_X25 = 0x106 2175 SIOCGIFCONF = 0x8912
2176 SOL_XDP = 0x11b 2176 SIOCGIFCOUNT = 0x8938
2177 SOMAXCONN = 0x80 2177 SIOCGIFDSTADDR = 0x8917
2178 SO_ACCEPTCONN = 0x8000 2178 SIOCGIFENCAP = 0x8925
2179 SO_ATTACH_BPF = 0x34 2179 SIOCGIFFLAGS = 0x8913
2180 SO_ATTACH_FILTER = 0x1a 2180 SIOCGIFHWADDR = 0x8927
2181 SO_ATTACH_REUSEPORT_CBPF = 0x35 2181 SIOCGIFINDEX = 0x8933
2182 SO_ATTACH_REUSEPORT_EBPF = 0x36 2182 SIOCGIFMAP = 0x8970
2183 SO_BINDTODEVICE = 0xd 2183 SIOCGIFMEM = 0x891f
2184 SO_BINDTOIFINDEX = 0x41 2184 SIOCGIFMETRIC = 0x891d
2185 SO_BPF_EXTENSIONS = 0x32 2185 SIOCGIFMTU = 0x8921
2186 SO_BROADCAST = 0x20 2186 SIOCGIFNAME = 0x8910
2187 SO_BSDCOMPAT = 0x400 2187 SIOCGIFNETMASK = 0x891b
2188 SO_BUSY_POLL = 0x30 2188 SIOCGIFPFLAGS = 0x8935
2189 SO_CNX_ADVICE = 0x37 2189 SIOCGIFSLAVE = 0x8929
2190 SO_COOKIE = 0x3b 2190 SIOCGIFTXQLEN = 0x8942
2191 SO_DEBUG = 0x1 2191 SIOCGIFVLAN = 0x8982
2192 SO_DETACH_BPF = 0x1b 2192 SIOCGMIIPHY = 0x8947
2193 SO_DETACH_FILTER = 0x1b 2193 SIOCGMIIREG = 0x8948
2194 SO_DOMAIN = 0x1029 2194 SIOCGPGRP = 0x8904
2195 SO_DONTROUTE = 0x10 2195 SIOCGPPPCSTATS = 0x89f2
2196 SO_EE_CODE_TXTIME_INVALID_PARAM = 0x1 2196 SIOCGPPPSTATS = 0x89f0
2197 SO_EE_CODE_TXTIME_MISSED = 0x2 2197 SIOCGPPPVER = 0x89f1
2198 SO_EE_CODE_ZEROCOPY_COPIED = 0x1 2198 SIOCGRARP = 0x8961
2199 SO_EE_ORIGIN_ICMP = 0x2 2199 SIOCGSKNS = 0x894c
2200 SO_EE_ORIGIN_ICMP6 = 0x3 2200 SIOCGSTAMP = 0x8906
2201 SO_EE_ORIGIN_LOCAL = 0x1 2201 SIOCGSTAMPNS = 0x8907
2202 SO_EE_ORIGIN_NONE = 0x0 2202 SIOCGSTAMPNS_NEW = 0x40108907
2203 SO_EE_ORIGIN_TIMESTAMPING = 0x4 2203 SIOCGSTAMPNS_OLD = 0x8907
2204 SO_EE_ORIGIN_TXSTATUS = 0x4 2204 SIOCGSTAMP_NEW = 0x40108906
2205 SO_EE_ORIGIN_TXTIME = 0x6 2205 SIOCGSTAMP_OLD = 0x8906
2206 SO_EE_ORIGIN_ZEROCOPY = 0x5 2206 SIOCINQ = 0x4004667f
2207 SO_ERROR = 0x1007 2207 SIOCOUTQ = 0x40047473
2208 SO_GET_FILTER = 0x1a 2208 SIOCOUTQNSD = 0x894b
2209 SO_INCOMING_CPU = 0x33 2209 SIOCPROTOPRIVATE = 0x89e0
2210 SO_INCOMING_NAPI_ID = 0x3a 2210 SIOCRTMSG = 0x890d
2211 SO_KEEPALIVE = 0x8 2211 SIOCSARP = 0x8955
2212 SO_LINGER = 0x80 2212 SIOCSHWTSTAMP = 0x89b0
2213 SO_LOCK_FILTER = 0x28 2213 SIOCSIFADDR = 0x8916
2214 SO_MARK = 0x22 2214 SIOCSIFBR = 0x8941
2215 SO_MAX_PACING_RATE = 0x31 2215 SIOCSIFBRDADDR = 0x891a
2216 SO_MEMINFO = 0x39 2216 SIOCSIFDSTADDR = 0x8918
2217 SO_NOFCS = 0x27 2217 SIOCSIFENCAP = 0x8926
2218 SO_NO_CHECK = 0xb 2218 SIOCSIFFLAGS = 0x8914
2219 SO_OOBINLINE = 0x100 2219 SIOCSIFHWADDR = 0x8924
2220 SO_PASSCRED = 0x2 2220 SIOCSIFHWBROADCAST = 0x8937
2221 SO_PASSSEC = 0x1f 2221 SIOCSIFLINK = 0x8911
2222 SO_PEEK_OFF = 0x26 2222 SIOCSIFMAP = 0x8971
2223 SO_PEERCRED = 0x40 2223 SIOCSIFMEM = 0x8920
2224 SO_PEERGROUPS = 0x3d 2224 SIOCSIFMETRIC = 0x891e
2225 SO_PEERNAME = 0x1c 2225 SIOCSIFMTU = 0x8922
2226 SO_PEERSEC = 0x1e 2226 SIOCSIFNAME = 0x8923
2227 SO_PRIORITY = 0xc 2227 SIOCSIFNETMASK = 0x891c
2228 SO_PROTOCOL = 0x1028 2228 SIOCSIFPFLAGS = 0x8934
2229 SO_RCVBUF = 0x1002 2229 SIOCSIFSLAVE = 0x8930
2230 SO_RCVBUFFORCE = 0x100b 2230 SIOCSIFTXQLEN = 0x8943
2231 SO_RCVLOWAT = 0x800 2231 SIOCSIFVLAN = 0x8983
2232 SO_RCVTIMEO = 0x2000 2232 SIOCSMIIREG = 0x8949
2233 SO_RCVTIMEO_NEW = 0x44 2233 SIOCSPGRP = 0x8902
2234 SO_RCVTIMEO_OLD = 0x2000 2234 SIOCSRARP = 0x8962
2235 SO_REUSEADDR = 0x4 2235 SIOCWANDEV = 0x894a
2236 SO_REUSEPORT = 0x200 2236 SMACK_MAGIC = 0x43415d53
2237 SO_RXQ_OVFL = 0x24 2237 SMART_AUTOSAVE = 0xd2
2238 SO_SECURITY_AUTHENTICATION = 0x5001 2238 SMART_AUTO_OFFLINE = 0xdb
2239 SO_SECURITY_ENCRYPTION_NETWORK = 0x5004 2239 SMART_DISABLE = 0xd9
2240 SO_SECURITY_ENCRYPTION_TRANSPORT = 0x5002 2240 SMART_ENABLE = 0xd8
2241 SO_SELECT_ERR_QUEUE = 0x29 2241 SMART_HCYL_PASS = 0xc2
2242 SO_SNDBUF = 0x1001 2242 SMART_IMMEDIATE_OFFLINE = 0xd4
2243 SO_SNDBUFFORCE = 0x100a 2243 SMART_LCYL_PASS = 0x4f
2244 SO_SNDLOWAT = 0x1000 2244 SMART_READ_LOG_SECTOR = 0xd5
2245 SO_SNDTIMEO = 0x4000 2245 SMART_READ_THRESHOLDS = 0xd1
2246 SO_SNDTIMEO_NEW = 0x45 2246 SMART_READ_VALUES = 0xd0
2247 SO_SNDTIMEO_OLD = 0x4000 2247 SMART_SAVE = 0xd3
2248 SO_TIMESTAMP = 0x1d 2248 SMART_STATUS = 0xda
2249 SO_TIMESTAMPING = 0x23 2249 SMART_WRITE_LOG_SECTOR = 0xd6
2250 SO_TIMESTAMPING_NEW = 0x43 2250 SMART_WRITE_THRESHOLDS = 0xd7
2251 SO_TIMESTAMPING_OLD = 0x23 2251 SMB_SUPER_MAGIC = 0x517b
2252 SO_TIMESTAMPNS = 0x21 2252 SOCKFS_MAGIC = 0x534f434b
2253 SO_TIMESTAMPNS_NEW = 0x42 2253 SOCK_CLOEXEC = 0x400000
2254 SO_TIMESTAMPNS_OLD = 0x21 2254 SOCK_DCCP = 0x6
2255 SO_TIMESTAMP_NEW = 0x46 2255 SOCK_DGRAM = 0x2
2256 SO_TIMESTAMP_OLD = 0x1d 2256 SOCK_IOC_TYPE = 0x89
2257 SO_TXTIME = 0x3f 2257 SOCK_NONBLOCK = 0x4000
2258 SO_TYPE = 0x1008 2258 SOCK_PACKET = 0xa
2259 SO_VM_SOCKETS_BUFFER_MAX_SIZE = 0x2 2259 SOCK_RAW = 0x3
2260 SO_VM_SOCKETS_BUFFER_MIN_SIZE = 0x1 2260 SOCK_RDM = 0x4
2261 SO_VM_SOCKETS_BUFFER_SIZE = 0x0 2261 SOCK_SEQPACKET = 0x5
2262 SO_VM_SOCKETS_CONNECT_TIMEOUT = 0x6 2262 SOCK_STREAM = 0x1
2263 SO_VM_SOCKETS_NONBLOCK_TXRX = 0x7 2263 SOL_AAL = 0x109
2264 SO_VM_SOCKETS_PEER_HOST_VM_ID = 0x3 2264 SOL_ALG = 0x117
2265 SO_VM_SOCKETS_TRUSTED = 0x5 2265 SOL_ATM = 0x108
2266 SO_WIFI_STATUS = 0x25 2266 SOL_CAIF = 0x116
2267 SO_ZEROCOPY = 0x3e 2267 SOL_CAN_BASE = 0x64
2268 SPLICE_F_GIFT = 0x8 2268 SOL_DCCP = 0x10d
2269 SPLICE_F_MORE = 0x4 2269 SOL_DECNET = 0x105
2270 SPLICE_F_MOVE = 0x1 2270 SOL_ICMPV6 = 0x3a
2271 SPLICE_F_NONBLOCK = 0x2 2271 SOL_IP = 0x0
2272 SQUASHFS_MAGIC = 0x73717368 2272 SOL_IPV6 = 0x29
2273 STACK_END_MAGIC = 0x57ac6e9d 2273 SOL_IRDA = 0x10a
2274 STATX_ALL = 0xfff 2274 SOL_IUCV = 0x115
2275 STATX_ATIME = 0x20 2275 SOL_KCM = 0x119
2276 STATX_ATTR_APPEND = 0x20 2276 SOL_LLC = 0x10c
2277 STATX_ATTR_AUTOMOUNT = 0x1000 2277 SOL_NETBEUI = 0x10b
2278 STATX_ATTR_COMPRESSED = 0x4 2278 SOL_NETLINK = 0x10e
2279 STATX_ATTR_ENCRYPTED = 0x800 2279 SOL_NFC = 0x118
2280 STATX_ATTR_IMMUTABLE = 0x10 2280 SOL_PACKET = 0x107
2281 STATX_ATTR_NODUMP = 0x40 2281 SOL_PNPIPE = 0x113
2282 STATX_BASIC_STATS = 0x7ff 2282 SOL_PPPOL2TP = 0x111
2283 STATX_BLOCKS = 0x400 2283 SOL_RAW = 0xff
2284 STATX_BTIME = 0x800 2284 SOL_RDS = 0x114
2285 STATX_CTIME = 0x80 2285 SOL_RXRPC = 0x110
2286 STATX_GID = 0x10 2286 SOL_SOCKET = 0xffff
2287 STATX_INO = 0x100 2287 SOL_TCP = 0x6
2288 STATX_MODE = 0x2 2288 SOL_TIPC = 0x10f
2289 STATX_MTIME = 0x40 2289 SOL_TLS = 0x11a
2290 STATX_NLINK = 0x4 2290 SOL_X25 = 0x106
2291 STATX_SIZE = 0x200 2291 SOL_XDP = 0x11b
2292 STATX_TYPE = 0x1 2292 SOMAXCONN = 0x1000
2293 STATX_UID = 0x8 2293 SO_ACCEPTCONN = 0x8000
2294 STATX__RESERVED = 0x80000000 2294 SO_ATTACH_BPF = 0x34
2295 SYNC_FILE_RANGE_WAIT_AFTER = 0x4 2295 SO_ATTACH_FILTER = 0x1a
2296 SYNC_FILE_RANGE_WAIT_BEFORE = 0x1 2296 SO_ATTACH_REUSEPORT_CBPF = 0x35
2297 SYNC_FILE_RANGE_WRITE = 0x2 2297 SO_ATTACH_REUSEPORT_EBPF = 0x36
2298 SYNC_FILE_RANGE_WRITE_AND_WAIT = 0x7 2298 SO_BINDTODEVICE = 0xd
2299 SYSFS_MAGIC = 0x62656572 2299 SO_BINDTOIFINDEX = 0x41
2300 S_BLKSIZE = 0x200 2300 SO_BPF_EXTENSIONS = 0x32
2301 S_IEXEC = 0x40 2301 SO_BROADCAST = 0x20
2302 S_IFBLK = 0x6000 2302 SO_BSDCOMPAT = 0x400
2303 S_IFCHR = 0x2000 2303 SO_BUSY_POLL = 0x30
2304 S_IFDIR = 0x4000 2304 SO_CNX_ADVICE = 0x37
2305 S_IFIFO = 0x1000 2305 SO_COOKIE = 0x3b
2306 S_IFLNK = 0xa000 2306 SO_DEBUG = 0x1
2307 S_IFMT = 0xf000 2307 SO_DETACH_BPF = 0x1b
2308 S_IFREG = 0x8000 2308 SO_DETACH_FILTER = 0x1b
2309 S_IFSOCK = 0xc000 2309 SO_DETACH_REUSEPORT_BPF = 0x47
2310 S_IREAD = 0x100 2310 SO_DOMAIN = 0x1029
2311 S_IRGRP = 0x20 2311 SO_DONTROUTE = 0x10
2312 S_IROTH = 0x4 2312 SO_EE_CODE_TXTIME_INVALID_PARAM = 0x1
2313 S_IRUSR = 0x100 2313 SO_EE_CODE_TXTIME_MISSED = 0x2
2314 S_IRWXG = 0x38 2314 SO_EE_CODE_ZEROCOPY_COPIED = 0x1
2315 S_IRWXO = 0x7 2315 SO_EE_ORIGIN_ICMP = 0x2
2316 S_IRWXU = 0x1c0 2316 SO_EE_ORIGIN_ICMP6 = 0x3
2317 S_ISGID = 0x400 2317 SO_EE_ORIGIN_LOCAL = 0x1
2318 S_ISUID = 0x800 2318 SO_EE_ORIGIN_NONE = 0x0
2319 S_ISVTX = 0x200 2319 SO_EE_ORIGIN_TIMESTAMPING = 0x4
2320 S_IWGRP = 0x10 2320 SO_EE_ORIGIN_TXSTATUS = 0x4
2321 S_IWOTH = 0x2 2321 SO_EE_ORIGIN_TXTIME = 0x6
2322 S_IWRITE = 0x80 2322 SO_EE_ORIGIN_ZEROCOPY = 0x5
2323 S_IWUSR = 0x80 2323 SO_ERROR = 0x1007
2324 S_IXGRP = 0x8 2324 SO_GET_FILTER = 0x1a
2325 S_IXOTH = 0x1 2325 SO_INCOMING_CPU = 0x33
2326 S_IXUSR = 0x40 2326 SO_INCOMING_NAPI_ID = 0x3a
2327 TAB0 = 0x0 2327 SO_KEEPALIVE = 0x8
2328 TAB1 = 0x800 2328 SO_LINGER = 0x80
2329 TAB2 = 0x1000 2329 SO_LOCK_FILTER = 0x28
2330 TAB3 = 0x1800 2330 SO_MARK = 0x22
2331 TABDLY = 0x1800 2331 SO_MAX_PACING_RATE = 0x31
2332 TASKSTATS_CMD_ATTR_MAX = 0x4 2332 SO_MEMINFO = 0x39
2333 TASKSTATS_CMD_MAX = 0x2 2333 SO_NOFCS = 0x27
2334 TASKSTATS_GENL_NAME = "TASKSTATS" 2334 SO_NO_CHECK = 0xb
2335 TASKSTATS_GENL_VERSION = 0x1 2335 SO_OOBINLINE = 0x100
2336 TASKSTATS_TYPE_MAX = 0x6 2336 SO_PASSCRED = 0x2
2337 TASKSTATS_VERSION = 0x9 2337 SO_PASSSEC = 0x1f
2338 TCFLSH = 0x20005407 2338 SO_PEEK_OFF = 0x26
2339 TCGETA = 0x40125401 2339 SO_PEERCRED = 0x40
2340 TCGETS = 0x40245408 2340 SO_PEERGROUPS = 0x3d
2341 TCGETS2 = 0x402c540c 2341 SO_PEERNAME = 0x1c
2342 TCIFLUSH = 0x0 2342 SO_PEERSEC = 0x1e
2343 TCIOFF = 0x2 2343 SO_PRIORITY = 0xc
2344 TCIOFLUSH = 0x2 2344 SO_PROTOCOL = 0x1028
2345 TCION = 0x3 2345 SO_RCVBUF = 0x1002
2346 TCOFLUSH = 0x1 2346 SO_RCVBUFFORCE = 0x100b
2347 TCOOFF = 0x0 2347 SO_RCVLOWAT = 0x800
2348 TCOON = 0x1 2348 SO_RCVTIMEO = 0x2000
2349 TCP_BPF_IW = 0x3e9 2349 SO_RCVTIMEO_NEW = 0x44
2350 TCP_BPF_SNDCWND_CLAMP = 0x3ea 2350 SO_RCVTIMEO_OLD = 0x2000
2351 TCP_CC_INFO = 0x1a 2351 SO_REUSEADDR = 0x4
2352 TCP_CM_INQ = 0x24 2352 SO_REUSEPORT = 0x200
2353 TCP_CONGESTION = 0xd 2353 SO_RXQ_OVFL = 0x24
2354 TCP_COOKIE_IN_ALWAYS = 0x1 2354 SO_SECURITY_AUTHENTICATION = 0x5001
2355 TCP_COOKIE_MAX = 0x10 2355 SO_SECURITY_ENCRYPTION_NETWORK = 0x5004
2356 TCP_COOKIE_MIN = 0x8 2356 SO_SECURITY_ENCRYPTION_TRANSPORT = 0x5002
2357 TCP_COOKIE_OUT_NEVER = 0x2 2357 SO_SELECT_ERR_QUEUE = 0x29
2358 TCP_COOKIE_PAIR_SIZE = 0x20 2358 SO_SNDBUF = 0x1001
2359 TCP_COOKIE_TRANSACTIONS = 0xf 2359 SO_SNDBUFFORCE = 0x100a
2360 TCP_CORK = 0x3 2360 SO_SNDLOWAT = 0x1000
2361 TCP_DEFER_ACCEPT = 0x9 2361 SO_SNDTIMEO = 0x4000
2362 TCP_FASTOPEN = 0x17 2362 SO_SNDTIMEO_NEW = 0x45
2363 TCP_FASTOPEN_CONNECT = 0x1e 2363 SO_SNDTIMEO_OLD = 0x4000
2364 TCP_FASTOPEN_KEY = 0x21 2364 SO_TIMESTAMP = 0x1d
2365 TCP_FASTOPEN_NO_COOKIE = 0x22 2365 SO_TIMESTAMPING = 0x23
2366 TCP_INFO = 0xb 2366 SO_TIMESTAMPING_NEW = 0x43
2367 TCP_INQ = 0x24 2367 SO_TIMESTAMPING_OLD = 0x23
2368 TCP_KEEPCNT = 0x6 2368 SO_TIMESTAMPNS = 0x21
2369 TCP_KEEPIDLE = 0x4 2369 SO_TIMESTAMPNS_NEW = 0x42
2370 TCP_KEEPINTVL = 0x5 2370 SO_TIMESTAMPNS_OLD = 0x21
2371 TCP_LINGER2 = 0x8 2371 SO_TIMESTAMP_NEW = 0x46
2372 TCP_MAXSEG = 0x2 2372 SO_TIMESTAMP_OLD = 0x1d
2373 TCP_MAXWIN = 0xffff 2373 SO_TXTIME = 0x3f
2374 TCP_MAX_WINSHIFT = 0xe 2374 SO_TYPE = 0x1008
2375 TCP_MD5SIG = 0xe 2375 SO_VM_SOCKETS_BUFFER_MAX_SIZE = 0x2
2376 TCP_MD5SIG_EXT = 0x20 2376 SO_VM_SOCKETS_BUFFER_MIN_SIZE = 0x1
2377 TCP_MD5SIG_FLAG_PREFIX = 0x1 2377 SO_VM_SOCKETS_BUFFER_SIZE = 0x0
2378 TCP_MD5SIG_MAXKEYLEN = 0x50 2378 SO_VM_SOCKETS_CONNECT_TIMEOUT = 0x6
2379 TCP_MSS = 0x200 2379 SO_VM_SOCKETS_NONBLOCK_TXRX = 0x7
2380 TCP_MSS_DEFAULT = 0x218 2380 SO_VM_SOCKETS_PEER_HOST_VM_ID = 0x3
2381 TCP_MSS_DESIRED = 0x4c4 2381 SO_VM_SOCKETS_TRUSTED = 0x5
2382 TCP_NODELAY = 0x1 2382 SO_WIFI_STATUS = 0x25
2383 TCP_NOTSENT_LOWAT = 0x19 2383 SO_ZEROCOPY = 0x3e
2384 TCP_QUEUE_SEQ = 0x15 2384 SPLICE_F_GIFT = 0x8
2385 TCP_QUICKACK = 0xc 2385 SPLICE_F_MORE = 0x4
2386 TCP_REPAIR = 0x13 2386 SPLICE_F_MOVE = 0x1
2387 TCP_REPAIR_OFF = 0x0 2387 SPLICE_F_NONBLOCK = 0x2
2388 TCP_REPAIR_OFF_NO_WP = -0x1 2388 SQUASHFS_MAGIC = 0x73717368
2389 TCP_REPAIR_ON = 0x1 2389 STACK_END_MAGIC = 0x57ac6e9d
2390 TCP_REPAIR_OPTIONS = 0x16 2390 STATX_ALL = 0xfff
2391 TCP_REPAIR_QUEUE = 0x14 2391 STATX_ATIME = 0x20
2392 TCP_REPAIR_WINDOW = 0x1d 2392 STATX_ATTR_APPEND = 0x20
2393 TCP_SAVED_SYN = 0x1c 2393 STATX_ATTR_AUTOMOUNT = 0x1000
2394 TCP_SAVE_SYN = 0x1b 2394 STATX_ATTR_COMPRESSED = 0x4
2395 TCP_SYNCNT = 0x7 2395 STATX_ATTR_ENCRYPTED = 0x800
2396 TCP_S_DATA_IN = 0x4 2396 STATX_ATTR_IMMUTABLE = 0x10
2397 TCP_S_DATA_OUT = 0x8 2397 STATX_ATTR_NODUMP = 0x40
2398 TCP_THIN_DUPACK = 0x11 2398 STATX_ATTR_VERITY = 0x100000
2399 TCP_THIN_LINEAR_TIMEOUTS = 0x10 2399 STATX_BASIC_STATS = 0x7ff
2400 TCP_TIMESTAMP = 0x18 2400 STATX_BLOCKS = 0x400
2401 TCP_ULP = 0x1f 2401 STATX_BTIME = 0x800
2402 TCP_USER_TIMEOUT = 0x12 2402 STATX_CTIME = 0x80
2403 TCP_WINDOW_CLAMP = 0xa 2403 STATX_GID = 0x10
2404 TCP_ZEROCOPY_RECEIVE = 0x23 2404 STATX_INO = 0x100
2405 TCSAFLUSH = 0x2 2405 STATX_MODE = 0x2
2406 TCSBRK = 0x20005405 2406 STATX_MTIME = 0x40
2407 TCSBRKP = 0x5425 2407 STATX_NLINK = 0x4
2408 TCSETA = 0x80125402 2408 STATX_SIZE = 0x200
2409 TCSETAF = 0x80125404 2409 STATX_TYPE = 0x1
2410 TCSETAW = 0x80125403 2410 STATX_UID = 0x8
2411 TCSETS = 0x80245409 2411 STATX__RESERVED = 0x80000000
2412 TCSETS2 = 0x802c540d 2412 SYNC_FILE_RANGE_WAIT_AFTER = 0x4
2413 TCSETSF = 0x8024540b 2413 SYNC_FILE_RANGE_WAIT_BEFORE = 0x1
2414 TCSETSF2 = 0x802c540f 2414 SYNC_FILE_RANGE_WRITE = 0x2
2415 TCSETSW = 0x8024540a 2415 SYNC_FILE_RANGE_WRITE_AND_WAIT = 0x7
2416 TCSETSW2 = 0x802c540e 2416 SYSFS_MAGIC = 0x62656572
2417 TCXONC = 0x20005406 2417 S_BLKSIZE = 0x200
2418 TIMER_ABSTIME = 0x1 2418 S_IEXEC = 0x40
2419 TIOCCBRK = 0x2000747a 2419 S_IFBLK = 0x6000
2420 TIOCCONS = 0x20007424 2420 S_IFCHR = 0x2000
2421 TIOCEXCL = 0x2000740d 2421 S_IFDIR = 0x4000
2422 TIOCGDEV = 0x40045432 2422 S_IFIFO = 0x1000
2423 TIOCGETD = 0x40047400 2423 S_IFLNK = 0xa000
2424 TIOCGEXCL = 0x40045440 2424 S_IFMT = 0xf000
2425 TIOCGICOUNT = 0x545d 2425 S_IFREG = 0x8000
2426 TIOCGISO7816 = 0x40285443 2426 S_IFSOCK = 0xc000
2427 TIOCGLCKTRMIOS = 0x5456 2427 S_IREAD = 0x100
2428 TIOCGPGRP = 0x40047483 2428 S_IRGRP = 0x20
2429 TIOCGPKT = 0x40045438 2429 S_IROTH = 0x4
2430 TIOCGPTLCK = 0x40045439 2430 S_IRUSR = 0x100
2431 TIOCGPTN = 0x40047486 2431 S_IRWXG = 0x38
2432 TIOCGPTPEER = 0x20007489 2432 S_IRWXO = 0x7
2433 TIOCGRS485 = 0x40205441 2433 S_IRWXU = 0x1c0
2434 TIOCGSERIAL = 0x541e 2434 S_ISGID = 0x400
2435 TIOCGSID = 0x40047485 2435 S_ISUID = 0x800
2436 TIOCGSOFTCAR = 0x40047464 2436 S_ISVTX = 0x200
2437 TIOCGWINSZ = 0x40087468 2437 S_IWGRP = 0x10
2438 TIOCINQ = 0x4004667f 2438 S_IWOTH = 0x2
2439 TIOCLINUX = 0x541c 2439 S_IWRITE = 0x80
2440 TIOCMBIC = 0x8004746b 2440 S_IWUSR = 0x80
2441 TIOCMBIS = 0x8004746c 2441 S_IXGRP = 0x8
2442 TIOCMGET = 0x4004746a 2442 S_IXOTH = 0x1
2443 TIOCMIWAIT = 0x545c 2443 S_IXUSR = 0x40
2444 TIOCMSET = 0x8004746d 2444 TAB0 = 0x0
2445 TIOCM_CAR = 0x40 2445 TAB1 = 0x800
2446 TIOCM_CD = 0x40 2446 TAB2 = 0x1000
2447 TIOCM_CTS = 0x20 2447 TAB3 = 0x1800
2448 TIOCM_DSR = 0x100 2448 TABDLY = 0x1800
2449 TIOCM_DTR = 0x2 2449 TASKSTATS_CMD_ATTR_MAX = 0x4
2450 TIOCM_LE = 0x1 2450 TASKSTATS_CMD_MAX = 0x2
2451 TIOCM_RI = 0x80 2451 TASKSTATS_GENL_NAME = "TASKSTATS"
2452 TIOCM_RNG = 0x80 2452 TASKSTATS_GENL_VERSION = 0x1
2453 TIOCM_RTS = 0x4 2453 TASKSTATS_TYPE_MAX = 0x6
2454 TIOCM_SR = 0x10 2454 TASKSTATS_VERSION = 0x9
2455 TIOCM_ST = 0x8 2455 TCFLSH = 0x20005407
2456 TIOCNOTTY = 0x20007471 2456 TCGETA = 0x40125401
2457 TIOCNXCL = 0x2000740e 2457 TCGETS = 0x40245408
2458 TIOCOUTQ = 0x40047473 2458 TCGETS2 = 0x402c540c
2459 TIOCPKT = 0x80047470 2459 TCIFLUSH = 0x0
2460 TIOCPKT_DATA = 0x0 2460 TCIOFF = 0x2
2461 TIOCPKT_DOSTOP = 0x20 2461 TCIOFLUSH = 0x2
2462 TIOCPKT_FLUSHREAD = 0x1 2462 TCION = 0x3
2463 TIOCPKT_FLUSHWRITE = 0x2 2463 TCOFLUSH = 0x1
2464 TIOCPKT_IOCTL = 0x40 2464 TCOOFF = 0x0
2465 TIOCPKT_NOSTOP = 0x10 2465 TCOON = 0x1
2466 TIOCPKT_START = 0x8 2466 TCP_BPF_IW = 0x3e9
2467 TIOCPKT_STOP = 0x4 2467 TCP_BPF_SNDCWND_CLAMP = 0x3ea
2468 TIOCSBRK = 0x2000747b 2468 TCP_CC_INFO = 0x1a
2469 TIOCSCTTY = 0x20007484 2469 TCP_CM_INQ = 0x24
2470 TIOCSERCONFIG = 0x5453 2470 TCP_CONGESTION = 0xd
2471 TIOCSERGETLSR = 0x5459 2471 TCP_COOKIE_IN_ALWAYS = 0x1
2472 TIOCSERGETMULTI = 0x545a 2472 TCP_COOKIE_MAX = 0x10
2473 TIOCSERGSTRUCT = 0x5458 2473 TCP_COOKIE_MIN = 0x8
2474 TIOCSERGWILD = 0x5454 2474 TCP_COOKIE_OUT_NEVER = 0x2
2475 TIOCSERSETMULTI = 0x545b 2475 TCP_COOKIE_PAIR_SIZE = 0x20
2476 TIOCSERSWILD = 0x5455 2476 TCP_COOKIE_TRANSACTIONS = 0xf
2477 TIOCSETD = 0x80047401 2477 TCP_CORK = 0x3
2478 TIOCSIG = 0x80047488 2478 TCP_DEFER_ACCEPT = 0x9
2479 TIOCSISO7816 = 0xc0285444 2479 TCP_FASTOPEN = 0x17
2480 TIOCSLCKTRMIOS = 0x5457 2480 TCP_FASTOPEN_CONNECT = 0x1e
2481 TIOCSPGRP = 0x80047482 2481 TCP_FASTOPEN_KEY = 0x21
2482 TIOCSPTLCK = 0x80047487 2482 TCP_FASTOPEN_NO_COOKIE = 0x22
2483 TIOCSRS485 = 0xc0205442 2483 TCP_INFO = 0xb
2484 TIOCSSERIAL = 0x541f 2484 TCP_INQ = 0x24
2485 TIOCSSOFTCAR = 0x80047465 2485 TCP_KEEPCNT = 0x6
2486 TIOCSTART = 0x2000746e 2486 TCP_KEEPIDLE = 0x4
2487 TIOCSTI = 0x80017472 2487 TCP_KEEPINTVL = 0x5
2488 TIOCSTOP = 0x2000746f 2488 TCP_LINGER2 = 0x8
2489 TIOCSWINSZ = 0x80087467 2489 TCP_MAXSEG = 0x2
2490 TIOCVHANGUP = 0x20005437 2490 TCP_MAXWIN = 0xffff
2491 TMPFS_MAGIC = 0x1021994 2491 TCP_MAX_WINSHIFT = 0xe
2492 TOSTOP = 0x100 2492 TCP_MD5SIG = 0xe
2493 TPACKET_ALIGNMENT = 0x10 2493 TCP_MD5SIG_EXT = 0x20
2494 TPACKET_HDRLEN = 0x34 2494 TCP_MD5SIG_FLAG_PREFIX = 0x1
2495 TP_STATUS_AVAILABLE = 0x0 2495 TCP_MD5SIG_MAXKEYLEN = 0x50
2496 TP_STATUS_BLK_TMO = 0x20 2496 TCP_MSS = 0x200
2497 TP_STATUS_COPY = 0x2 2497 TCP_MSS_DEFAULT = 0x218
2498 TP_STATUS_CSUMNOTREADY = 0x8 2498 TCP_MSS_DESIRED = 0x4c4
2499 TP_STATUS_CSUM_VALID = 0x80 2499 TCP_NODELAY = 0x1
2500 TP_STATUS_KERNEL = 0x0 2500 TCP_NOTSENT_LOWAT = 0x19
2501 TP_STATUS_LOSING = 0x4 2501 TCP_QUEUE_SEQ = 0x15
2502 TP_STATUS_SENDING = 0x2 2502 TCP_QUICKACK = 0xc
2503 TP_STATUS_SEND_REQUEST = 0x1 2503 TCP_REPAIR = 0x13
2504 TP_STATUS_TS_RAW_HARDWARE = -0x80000000 2504 TCP_REPAIR_OFF = 0x0
2505 TP_STATUS_TS_SOFTWARE = 0x20000000 2505 TCP_REPAIR_OFF_NO_WP = -0x1
2506 TP_STATUS_TS_SYS_HARDWARE = 0x40000000 2506 TCP_REPAIR_ON = 0x1
2507 TP_STATUS_USER = 0x1 2507 TCP_REPAIR_OPTIONS = 0x16
2508 TP_STATUS_VLAN_TPID_VALID = 0x40 2508 TCP_REPAIR_QUEUE = 0x14
2509 TP_STATUS_VLAN_VALID = 0x10 2509 TCP_REPAIR_WINDOW = 0x1d
2510 TP_STATUS_WRONG_FORMAT = 0x4 2510 TCP_SAVED_SYN = 0x1c
2511 TRACEFS_MAGIC = 0x74726163 2511 TCP_SAVE_SYN = 0x1b
2512 TS_COMM_LEN = 0x20 2512 TCP_SYNCNT = 0x7
2513 TUNATTACHFILTER = 0x801054d5 2513 TCP_S_DATA_IN = 0x4
2514 TUNDETACHFILTER = 0x801054d6 2514 TCP_S_DATA_OUT = 0x8
2515 TUNGETDEVNETNS = 0x200054e3 2515 TCP_THIN_DUPACK = 0x11
2516 TUNGETFEATURES = 0x400454cf 2516 TCP_THIN_LINEAR_TIMEOUTS = 0x10
2517 TUNGETFILTER = 0x401054db 2517 TCP_TIMESTAMP = 0x18
2518 TUNGETIFF = 0x400454d2 2518 TCP_TX_DELAY = 0x25
2519 TUNGETSNDBUF = 0x400454d3 2519 TCP_ULP = 0x1f
2520 TUNGETVNETBE = 0x400454df 2520 TCP_USER_TIMEOUT = 0x12
2521 TUNGETVNETHDRSZ = 0x400454d7 2521 TCP_WINDOW_CLAMP = 0xa
2522 TUNGETVNETLE = 0x400454dd 2522 TCP_ZEROCOPY_RECEIVE = 0x23
2523 TUNSETCARRIER = 0x800454e2 2523 TCSAFLUSH = 0x2
2524 TUNSETDEBUG = 0x800454c9 2524 TCSBRK = 0x20005405
2525 TUNSETFILTEREBPF = 0x400454e1 2525 TCSBRKP = 0x5425
2526 TUNSETGROUP = 0x800454ce 2526 TCSETA = 0x80125402
2527 TUNSETIFF = 0x800454ca 2527 TCSETAF = 0x80125404
2528 TUNSETIFINDEX = 0x800454da 2528 TCSETAW = 0x80125403
2529 TUNSETLINK = 0x800454cd 2529 TCSETS = 0x80245409
2530 TUNSETNOCSUM = 0x800454c8 2530 TCSETS2 = 0x802c540d
2531 TUNSETOFFLOAD = 0x800454d0 2531 TCSETSF = 0x8024540b
2532 TUNSETOWNER = 0x800454cc 2532 TCSETSF2 = 0x802c540f
2533 TUNSETPERSIST = 0x800454cb 2533 TCSETSW = 0x8024540a
2534 TUNSETQUEUE = 0x800454d9 2534 TCSETSW2 = 0x802c540e
2535 TUNSETSNDBUF = 0x800454d4 2535 TCXONC = 0x20005406
2536 TUNSETSTEERINGEBPF = 0x400454e0 2536 TIMER_ABSTIME = 0x1
2537 TUNSETTXFILTER = 0x800454d1 2537 TIOCCBRK = 0x2000747a
2538 TUNSETVNETBE = 0x800454de 2538 TIOCCONS = 0x20007424
2539 TUNSETVNETHDRSZ = 0x800454d8 2539 TIOCEXCL = 0x2000740d
2540 TUNSETVNETLE = 0x800454dc 2540 TIOCGDEV = 0x40045432
2541 UBI_IOCATT = 0x80186f40 2541 TIOCGETD = 0x40047400
2542 UBI_IOCDET = 0x80046f41 2542 TIOCGEXCL = 0x40045440
2543 UBI_IOCEBCH = 0x80044f02 2543 TIOCGICOUNT = 0x545d
2544 UBI_IOCEBER = 0x80044f01 2544 TIOCGISO7816 = 0x40285443
2545 UBI_IOCEBISMAP = 0x40044f05 2545 TIOCGLCKTRMIOS = 0x5456
2546 UBI_IOCEBMAP = 0x80084f03 2546 TIOCGPGRP = 0x40047483
2547 UBI_IOCEBUNMAP = 0x80044f04 2547 TIOCGPKT = 0x40045438
2548 UBI_IOCMKVOL = 0x80986f00 2548 TIOCGPTLCK = 0x40045439
2549 UBI_IOCRMVOL = 0x80046f01 2549 TIOCGPTN = 0x40047486
2550 UBI_IOCRNVOL = 0x91106f03 2550 TIOCGPTPEER = 0x20007489
2551 UBI_IOCRPEB = 0x80046f04 2551 TIOCGRS485 = 0x40205441
2552 UBI_IOCRSVOL = 0x800c6f02 2552 TIOCGSERIAL = 0x541e
2553 UBI_IOCSETVOLPROP = 0x80104f06 2553 TIOCGSID = 0x40047485
2554 UBI_IOCSPEB = 0x80046f05 2554 TIOCGSOFTCAR = 0x40047464
2555 UBI_IOCVOLCRBLK = 0x80804f07 2555 TIOCGWINSZ = 0x40087468
2556 UBI_IOCVOLRMBLK = 0x20004f08 2556 TIOCINQ = 0x4004667f
2557 UBI_IOCVOLUP = 0x80084f00 2557 TIOCLINUX = 0x541c
2558 UDF_SUPER_MAGIC = 0x15013346 2558 TIOCMBIC = 0x8004746b
2559 UMOUNT_NOFOLLOW = 0x8 2559 TIOCMBIS = 0x8004746c
2560 USBDEVICE_SUPER_MAGIC = 0x9fa2 2560 TIOCMGET = 0x4004746a
2561 UTIME_NOW = 0x3fffffff 2561 TIOCMIWAIT = 0x545c
2562 UTIME_OMIT = 0x3ffffffe 2562 TIOCMSET = 0x8004746d
2563 V9FS_MAGIC = 0x1021997 2563 TIOCM_CAR = 0x40
2564 VDISCARD = 0xd 2564 TIOCM_CD = 0x40
2565 VEOF = 0x4 2565 TIOCM_CTS = 0x20
2566 VEOL = 0xb 2566 TIOCM_DSR = 0x100
2567 VEOL2 = 0x10 2567 TIOCM_DTR = 0x2
2568 VERASE = 0x2 2568 TIOCM_LE = 0x1
2569 VINTR = 0x0 2569 TIOCM_RI = 0x80
2570 VKILL = 0x3 2570 TIOCM_RNG = 0x80
2571 VLNEXT = 0xf 2571 TIOCM_RTS = 0x4
2572 VMADDR_CID_ANY = 0xffffffff 2572 TIOCM_SR = 0x10
2573 VMADDR_CID_HOST = 0x2 2573 TIOCM_ST = 0x8
2574 VMADDR_CID_HYPERVISOR = 0x0 2574 TIOCNOTTY = 0x20007471
2575 VMADDR_CID_RESERVED = 0x1 2575 TIOCNXCL = 0x2000740e
2576 VMADDR_PORT_ANY = 0xffffffff 2576 TIOCOUTQ = 0x40047473
2577 VMIN = 0x6 2577 TIOCPKT = 0x80047470
2578 VM_SOCKETS_INVALID_VERSION = 0xffffffff 2578 TIOCPKT_DATA = 0x0
2579 VQUIT = 0x1 2579 TIOCPKT_DOSTOP = 0x20
2580 VREPRINT = 0xc 2580 TIOCPKT_FLUSHREAD = 0x1
2581 VSTART = 0x8 2581 TIOCPKT_FLUSHWRITE = 0x2
2582 VSTOP = 0x9 2582 TIOCPKT_IOCTL = 0x40
2583 VSUSP = 0xa 2583 TIOCPKT_NOSTOP = 0x10
2584 VSWTC = 0x7 2584 TIOCPKT_START = 0x8
2585 VT0 = 0x0 2585 TIOCPKT_STOP = 0x4
2586 VT1 = 0x4000 2586 TIOCSBRK = 0x2000747b
2587 VTDLY = 0x4000 2587 TIOCSCTTY = 0x20007484
2588 VTIME = 0x5 2588 TIOCSERCONFIG = 0x5453
2589 VWERASE = 0xe 2589 TIOCSERGETLSR = 0x5459
2590 WALL = 0x40000000 2590 TIOCSERGETMULTI = 0x545a
2591 WCLONE = 0x80000000 2591 TIOCSERGSTRUCT = 0x5458
2592 WCONTINUED = 0x8 2592 TIOCSERGWILD = 0x5454
2593 WDIOC_GETBOOTSTATUS = 0x40045702 2593 TIOCSERSETMULTI = 0x545b
2594 WDIOC_GETPRETIMEOUT = 0x40045709 2594 TIOCSERSWILD = 0x5455
2595 WDIOC_GETSTATUS = 0x40045701 2595 TIOCSETD = 0x80047401
2596 WDIOC_GETSUPPORT = 0x40285700 2596 TIOCSIG = 0x80047488
2597 WDIOC_GETTEMP = 0x40045703 2597 TIOCSISO7816 = 0xc0285444
2598 WDIOC_GETTIMELEFT = 0x4004570a 2598 TIOCSLCKTRMIOS = 0x5457
2599 WDIOC_GETTIMEOUT = 0x40045707 2599 TIOCSPGRP = 0x80047482
2600 WDIOC_KEEPALIVE = 0x40045705 2600 TIOCSPTLCK = 0x80047487
2601 WDIOC_SETOPTIONS = 0x40045704 2601 TIOCSRS485 = 0xc0205442
2602 WDIOC_SETPRETIMEOUT = 0xc0045708 2602 TIOCSSERIAL = 0x541f
2603 WDIOC_SETTIMEOUT = 0xc0045706 2603 TIOCSSOFTCAR = 0x80047465
2604 WEXITED = 0x4 2604 TIOCSTART = 0x2000746e
2605 WIN_ACKMEDIACHANGE = 0xdb 2605 TIOCSTI = 0x80017472
2606 WIN_CHECKPOWERMODE1 = 0xe5 2606 TIOCSTOP = 0x2000746f
2607 WIN_CHECKPOWERMODE2 = 0x98 2607 TIOCSWINSZ = 0x80087467
2608 WIN_DEVICE_RESET = 0x8 2608 TIOCVHANGUP = 0x20005437
2609 WIN_DIAGNOSE = 0x90 2609 TIPC_ADDR_ID = 0x3
2610 WIN_DOORLOCK = 0xde 2610 TIPC_ADDR_MCAST = 0x1
2611 WIN_DOORUNLOCK = 0xdf 2611 TIPC_ADDR_NAME = 0x2
2612 WIN_DOWNLOAD_MICROCODE = 0x92 2612 TIPC_ADDR_NAMESEQ = 0x1
2613 WIN_FLUSH_CACHE = 0xe7 2613 TIPC_AEAD_ALG_NAME = 0x20
2614 WIN_FLUSH_CACHE_EXT = 0xea 2614 TIPC_AEAD_KEYLEN_MAX = 0x24
2615 WIN_FORMAT = 0x50 2615 TIPC_AEAD_KEYLEN_MIN = 0x14
2616 WIN_GETMEDIASTATUS = 0xda 2616 TIPC_AEAD_KEY_SIZE_MAX = 0x48
2617 WIN_IDENTIFY = 0xec 2617 TIPC_CFG_SRV = 0x0
2618 WIN_IDENTIFY_DMA = 0xee 2618 TIPC_CLUSTER_BITS = 0xc
2619 WIN_IDLEIMMEDIATE = 0xe1 2619 TIPC_CLUSTER_MASK = 0xfff000
2620 WIN_INIT = 0x60 2620 TIPC_CLUSTER_OFFSET = 0xc
2621 WIN_MEDIAEJECT = 0xed 2621 TIPC_CLUSTER_SIZE = 0xfff
2622 WIN_MULTREAD = 0xc4 2622 TIPC_CONN_SHUTDOWN = 0x5
2623 WIN_MULTREAD_EXT = 0x29 2623 TIPC_CONN_TIMEOUT = 0x82
2624 WIN_MULTWRITE = 0xc5 2624 TIPC_CRITICAL_IMPORTANCE = 0x3
2625 WIN_MULTWRITE_EXT = 0x39 2625 TIPC_DESTNAME = 0x3
2626 WIN_NOP = 0x0 2626 TIPC_DEST_DROPPABLE = 0x81
2627 WIN_PACKETCMD = 0xa0 2627 TIPC_ERRINFO = 0x1
2628 WIN_PIDENTIFY = 0xa1 2628 TIPC_ERR_NO_NAME = 0x1
2629 WIN_POSTBOOT = 0xdc 2629 TIPC_ERR_NO_NODE = 0x3
2630 WIN_PREBOOT = 0xdd 2630 TIPC_ERR_NO_PORT = 0x2
2631 WIN_QUEUED_SERVICE = 0xa2 2631 TIPC_ERR_OVERLOAD = 0x4
2632 WIN_READ = 0x20 2632 TIPC_GROUP_JOIN = 0x87
2633 WIN_READDMA = 0xc8 2633 TIPC_GROUP_LEAVE = 0x88
2634 WIN_READDMA_EXT = 0x25 2634 TIPC_GROUP_LOOPBACK = 0x1
2635 WIN_READDMA_ONCE = 0xc9 2635 TIPC_GROUP_MEMBER_EVTS = 0x2
2636 WIN_READDMA_QUEUED = 0xc7 2636 TIPC_HIGH_IMPORTANCE = 0x2
2637 WIN_READDMA_QUEUED_EXT = 0x26 2637 TIPC_IMPORTANCE = 0x7f
2638 WIN_READ_BUFFER = 0xe4 2638 TIPC_LINK_STATE = 0x2
2639 WIN_READ_EXT = 0x24 2639 TIPC_LOW_IMPORTANCE = 0x0
2640 WIN_READ_LONG = 0x22 2640 TIPC_MAX_BEARER_NAME = 0x20
2641 WIN_READ_LONG_ONCE = 0x23 2641 TIPC_MAX_IF_NAME = 0x10
2642 WIN_READ_NATIVE_MAX = 0xf8 2642 TIPC_MAX_LINK_NAME = 0x44
2643 WIN_READ_NATIVE_MAX_EXT = 0x27 2643 TIPC_MAX_MEDIA_NAME = 0x10
2644 WIN_READ_ONCE = 0x21 2644 TIPC_MAX_USER_MSG_SIZE = 0x101d0
2645 WIN_RECAL = 0x10 2645 TIPC_MCAST_BROADCAST = 0x85
2646 WIN_RESTORE = 0x10 2646 TIPC_MCAST_REPLICAST = 0x86
2647 WIN_SECURITY_DISABLE = 0xf6 2647 TIPC_MEDIUM_IMPORTANCE = 0x1
2648 WIN_SECURITY_ERASE_PREPARE = 0xf3 2648 TIPC_NODEID_LEN = 0x10
2649 WIN_SECURITY_ERASE_UNIT = 0xf4 2649 TIPC_NODELAY = 0x8a
2650 WIN_SECURITY_FREEZE_LOCK = 0xf5 2650 TIPC_NODE_BITS = 0xc
2651 WIN_SECURITY_SET_PASS = 0xf1 2651 TIPC_NODE_MASK = 0xfff
2652 WIN_SECURITY_UNLOCK = 0xf2 2652 TIPC_NODE_OFFSET = 0x0
2653 WIN_SEEK = 0x70 2653 TIPC_NODE_RECVQ_DEPTH = 0x83
2654 WIN_SETFEATURES = 0xef 2654 TIPC_NODE_SIZE = 0xfff
2655 WIN_SETIDLE1 = 0xe3 2655 TIPC_NODE_STATE = 0x0
2656 WIN_SETIDLE2 = 0x97 2656 TIPC_OK = 0x0
2657 WIN_SETMULT = 0xc6 2657 TIPC_PUBLISHED = 0x1
2658 WIN_SET_MAX = 0xf9 2658 TIPC_RESERVED_TYPES = 0x40
2659 WIN_SET_MAX_EXT = 0x37 2659 TIPC_RETDATA = 0x2
2660 WIN_SLEEPNOW1 = 0xe6 2660 TIPC_SERVICE_ADDR = 0x2
2661 WIN_SLEEPNOW2 = 0x99 2661 TIPC_SERVICE_RANGE = 0x1
2662 WIN_SMART = 0xb0 2662 TIPC_SOCKET_ADDR = 0x3
2663 WIN_SPECIFY = 0x91 2663 TIPC_SOCK_RECVQ_DEPTH = 0x84
2664 WIN_SRST = 0x8 2664 TIPC_SOCK_RECVQ_USED = 0x89
2665 WIN_STANDBY = 0xe2 2665 TIPC_SRC_DROPPABLE = 0x80
2666 WIN_STANDBY2 = 0x96 2666 TIPC_SUBSCR_TIMEOUT = 0x3
2667 WIN_STANDBYNOW1 = 0xe0 2667 TIPC_SUB_CANCEL = 0x4
2668 WIN_STANDBYNOW2 = 0x94 2668 TIPC_SUB_PORTS = 0x1
2669 WIN_VERIFY = 0x40 2669 TIPC_SUB_SERVICE = 0x2
2670 WIN_VERIFY_EXT = 0x42 2670 TIPC_TOP_SRV = 0x1
2671 WIN_VERIFY_ONCE = 0x41 2671 TIPC_WAIT_FOREVER = 0xffffffff
2672 WIN_WRITE = 0x30 2672 TIPC_WITHDRAWN = 0x2
2673 WIN_WRITEDMA = 0xca 2673 TIPC_ZONE_BITS = 0x8
2674 WIN_WRITEDMA_EXT = 0x35 2674 TIPC_ZONE_CLUSTER_MASK = 0xfffff000
2675 WIN_WRITEDMA_ONCE = 0xcb 2675 TIPC_ZONE_MASK = 0xff000000
2676 WIN_WRITEDMA_QUEUED = 0xcc 2676 TIPC_ZONE_OFFSET = 0x18
2677 WIN_WRITEDMA_QUEUED_EXT = 0x36 2677 TIPC_ZONE_SCOPE = 0x1
2678 WIN_WRITE_BUFFER = 0xe8 2678 TIPC_ZONE_SIZE = 0xff
2679 WIN_WRITE_EXT = 0x34 2679 TMPFS_MAGIC = 0x1021994
2680 WIN_WRITE_LONG = 0x32 2680 TOSTOP = 0x100
2681 WIN_WRITE_LONG_ONCE = 0x33 2681 TPACKET_ALIGNMENT = 0x10
2682 WIN_WRITE_ONCE = 0x31 2682 TPACKET_HDRLEN = 0x34
2683 WIN_WRITE_SAME = 0xe9 2683 TP_STATUS_AVAILABLE = 0x0
2684 WIN_WRITE_VERIFY = 0x3c 2684 TP_STATUS_BLK_TMO = 0x20
2685 WNOHANG = 0x1 2685 TP_STATUS_COPY = 0x2
2686 WNOTHREAD = 0x20000000 2686 TP_STATUS_CSUMNOTREADY = 0x8
2687 WNOWAIT = 0x1000000 2687 TP_STATUS_CSUM_VALID = 0x80
2688 WORDSIZE = 0x40 2688 TP_STATUS_KERNEL = 0x0
2689 WSTOPPED = 0x2 2689 TP_STATUS_LOSING = 0x4
2690 WUNTRACED = 0x2 2690 TP_STATUS_SENDING = 0x2
2691 XATTR_CREATE = 0x1 2691 TP_STATUS_SEND_REQUEST = 0x1
2692 XATTR_REPLACE = 0x2 2692 TP_STATUS_TS_RAW_HARDWARE = 0x80000000
2693 XCASE = 0x4 2693 TP_STATUS_TS_SOFTWARE = 0x20000000
2694 XDP_COPY = 0x2 2694 TP_STATUS_TS_SYS_HARDWARE = 0x40000000
2695 XDP_FLAGS_DRV_MODE = 0x4 2695 TP_STATUS_USER = 0x1
2696 XDP_FLAGS_HW_MODE = 0x8 2696 TP_STATUS_VLAN_TPID_VALID = 0x40
2697 XDP_FLAGS_MASK = 0xf 2697 TP_STATUS_VLAN_VALID = 0x10
2698 XDP_FLAGS_MODES = 0xe 2698 TP_STATUS_WRONG_FORMAT = 0x4
2699 XDP_FLAGS_SKB_MODE = 0x2 2699 TRACEFS_MAGIC = 0x74726163
2700 XDP_FLAGS_UPDATE_IF_NOEXIST = 0x1 2700 TS_COMM_LEN = 0x20
2701 XDP_MMAP_OFFSETS = 0x1 2701 TUNATTACHFILTER = 0x801054d5
2702 XDP_PACKET_HEADROOM = 0x100 2702 TUNDETACHFILTER = 0x801054d6
2703 XDP_PGOFF_RX_RING = 0x0 2703 TUNGETDEVNETNS = 0x200054e3
2704 XDP_PGOFF_TX_RING = 0x80000000 2704 TUNGETFEATURES = 0x400454cf
2705 XDP_RX_RING = 0x2 2705 TUNGETFILTER = 0x401054db
2706 XDP_SHARED_UMEM = 0x1 2706 TUNGETIFF = 0x400454d2
2707 XDP_STATISTICS = 0x7 2707 TUNGETSNDBUF = 0x400454d3
2708 XDP_TX_RING = 0x3 2708 TUNGETVNETBE = 0x400454df
2709 XDP_UMEM_COMPLETION_RING = 0x6 2709 TUNGETVNETHDRSZ = 0x400454d7
2710 XDP_UMEM_FILL_RING = 0x5 2710 TUNGETVNETLE = 0x400454dd
2711 XDP_UMEM_PGOFF_COMPLETION_RING = 0x180000000 2711 TUNSETCARRIER = 0x800454e2
2712 XDP_UMEM_PGOFF_FILL_RING = 0x100000000 2712 TUNSETDEBUG = 0x800454c9
2713 XDP_UMEM_REG = 0x4 2713 TUNSETFILTEREBPF = 0x400454e1
2714 XDP_ZEROCOPY = 0x4 2714 TUNSETGROUP = 0x800454ce
2715 XENFS_SUPER_MAGIC = 0xabba1974 2715 TUNSETIFF = 0x800454ca
2716 XFS_SUPER_MAGIC = 0x58465342 2716 TUNSETIFINDEX = 0x800454da
2717 XTABS = 0x1800 2717 TUNSETLINK = 0x800454cd
2718 ZSMALLOC_MAGIC = 0x58295829 2718 TUNSETNOCSUM = 0x800454c8
2719 __TIOCFLUSH = 0x80047410 2719 TUNSETOFFLOAD = 0x800454d0
2720 TUNSETOWNER = 0x800454cc
2721 TUNSETPERSIST = 0x800454cb
2722 TUNSETQUEUE = 0x800454d9
2723 TUNSETSNDBUF = 0x800454d4
2724 TUNSETSTEERINGEBPF = 0x400454e0
2725 TUNSETTXFILTER = 0x800454d1
2726 TUNSETVNETBE = 0x800454de
2727 TUNSETVNETHDRSZ = 0x800454d8
2728 TUNSETVNETLE = 0x800454dc
2729 UBI_IOCATT = 0x80186f40
2730 UBI_IOCDET = 0x80046f41
2731 UBI_IOCEBCH = 0x80044f02
2732 UBI_IOCEBER = 0x80044f01
2733 UBI_IOCEBISMAP = 0x40044f05
2734 UBI_IOCEBMAP = 0x80084f03
2735 UBI_IOCEBUNMAP = 0x80044f04
2736 UBI_IOCMKVOL = 0x80986f00
2737 UBI_IOCRMVOL = 0x80046f01
2738 UBI_IOCRNVOL = 0x91106f03
2739 UBI_IOCRPEB = 0x80046f04
2740 UBI_IOCRSVOL = 0x800c6f02
2741 UBI_IOCSETVOLPROP = 0x80104f06
2742 UBI_IOCSPEB = 0x80046f05
2743 UBI_IOCVOLCRBLK = 0x80804f07
2744 UBI_IOCVOLRMBLK = 0x20004f08
2745 UBI_IOCVOLUP = 0x80084f00
2746 UDF_SUPER_MAGIC = 0x15013346
2747 UMOUNT_NOFOLLOW = 0x8
2748 USBDEVICE_SUPER_MAGIC = 0x9fa2
2749 UTIME_NOW = 0x3fffffff
2750 UTIME_OMIT = 0x3ffffffe
2751 V9FS_MAGIC = 0x1021997
2752 VDISCARD = 0xd
2753 VEOF = 0x4
2754 VEOL = 0xb
2755 VEOL2 = 0x10
2756 VERASE = 0x2
2757 VINTR = 0x0
2758 VKILL = 0x3
2759 VLNEXT = 0xf
2760 VMADDR_CID_ANY = 0xffffffff
2761 VMADDR_CID_HOST = 0x2
2762 VMADDR_CID_HYPERVISOR = 0x0
2763 VMADDR_CID_RESERVED = 0x1
2764 VMADDR_PORT_ANY = 0xffffffff
2765 VMIN = 0x6
2766 VM_SOCKETS_INVALID_VERSION = 0xffffffff
2767 VQUIT = 0x1
2768 VREPRINT = 0xc
2769 VSTART = 0x8
2770 VSTOP = 0x9
2771 VSUSP = 0xa
2772 VSWTC = 0x7
2773 VT0 = 0x0
2774 VT1 = 0x4000
2775 VTDLY = 0x4000
2776 VTIME = 0x5
2777 VWERASE = 0xe
2778 WALL = 0x40000000
2779 WCLONE = 0x80000000
2780 WCONTINUED = 0x8
2781 WDIOC_GETBOOTSTATUS = 0x40045702
2782 WDIOC_GETPRETIMEOUT = 0x40045709
2783 WDIOC_GETSTATUS = 0x40045701
2784 WDIOC_GETSUPPORT = 0x40285700
2785 WDIOC_GETTEMP = 0x40045703
2786 WDIOC_GETTIMELEFT = 0x4004570a
2787 WDIOC_GETTIMEOUT = 0x40045707
2788 WDIOC_KEEPALIVE = 0x40045705
2789 WDIOC_SETOPTIONS = 0x40045704
2790 WDIOC_SETPRETIMEOUT = 0xc0045708
2791 WDIOC_SETTIMEOUT = 0xc0045706
2792 WEXITED = 0x4
2793 WIN_ACKMEDIACHANGE = 0xdb
2794 WIN_CHECKPOWERMODE1 = 0xe5
2795 WIN_CHECKPOWERMODE2 = 0x98
2796 WIN_DEVICE_RESET = 0x8
2797 WIN_DIAGNOSE = 0x90
2798 WIN_DOORLOCK = 0xde
2799 WIN_DOORUNLOCK = 0xdf
2800 WIN_DOWNLOAD_MICROCODE = 0x92
2801 WIN_FLUSH_CACHE = 0xe7
2802 WIN_FLUSH_CACHE_EXT = 0xea
2803 WIN_FORMAT = 0x50
2804 WIN_GETMEDIASTATUS = 0xda
2805 WIN_IDENTIFY = 0xec
2806 WIN_IDENTIFY_DMA = 0xee
2807 WIN_IDLEIMMEDIATE = 0xe1
2808 WIN_INIT = 0x60
2809 WIN_MEDIAEJECT = 0xed
2810 WIN_MULTREAD = 0xc4
2811 WIN_MULTREAD_EXT = 0x29
2812 WIN_MULTWRITE = 0xc5
2813 WIN_MULTWRITE_EXT = 0x39
2814 WIN_NOP = 0x0
2815 WIN_PACKETCMD = 0xa0
2816 WIN_PIDENTIFY = 0xa1
2817 WIN_POSTBOOT = 0xdc
2818 WIN_PREBOOT = 0xdd
2819 WIN_QUEUED_SERVICE = 0xa2
2820 WIN_READ = 0x20
2821 WIN_READDMA = 0xc8
2822 WIN_READDMA_EXT = 0x25
2823 WIN_READDMA_ONCE = 0xc9
2824 WIN_READDMA_QUEUED = 0xc7
2825 WIN_READDMA_QUEUED_EXT = 0x26
2826 WIN_READ_BUFFER = 0xe4
2827 WIN_READ_EXT = 0x24
2828 WIN_READ_LONG = 0x22
2829 WIN_READ_LONG_ONCE = 0x23
2830 WIN_READ_NATIVE_MAX = 0xf8
2831 WIN_READ_NATIVE_MAX_EXT = 0x27
2832 WIN_READ_ONCE = 0x21
2833 WIN_RECAL = 0x10
2834 WIN_RESTORE = 0x10
2835 WIN_SECURITY_DISABLE = 0xf6
2836 WIN_SECURITY_ERASE_PREPARE = 0xf3
2837 WIN_SECURITY_ERASE_UNIT = 0xf4
2838 WIN_SECURITY_FREEZE_LOCK = 0xf5
2839 WIN_SECURITY_SET_PASS = 0xf1
2840 WIN_SECURITY_UNLOCK = 0xf2
2841 WIN_SEEK = 0x70
2842 WIN_SETFEATURES = 0xef
2843 WIN_SETIDLE1 = 0xe3
2844 WIN_SETIDLE2 = 0x97
2845 WIN_SETMULT = 0xc6
2846 WIN_SET_MAX = 0xf9
2847 WIN_SET_MAX_EXT = 0x37
2848 WIN_SLEEPNOW1 = 0xe6
2849 WIN_SLEEPNOW2 = 0x99
2850 WIN_SMART = 0xb0
2851 WIN_SPECIFY = 0x91
2852 WIN_SRST = 0x8
2853 WIN_STANDBY = 0xe2
2854 WIN_STANDBY2 = 0x96
2855 WIN_STANDBYNOW1 = 0xe0
2856 WIN_STANDBYNOW2 = 0x94
2857 WIN_VERIFY = 0x40
2858 WIN_VERIFY_EXT = 0x42
2859 WIN_VERIFY_ONCE = 0x41
2860 WIN_WRITE = 0x30
2861 WIN_WRITEDMA = 0xca
2862 WIN_WRITEDMA_EXT = 0x35
2863 WIN_WRITEDMA_ONCE = 0xcb
2864 WIN_WRITEDMA_QUEUED = 0xcc
2865 WIN_WRITEDMA_QUEUED_EXT = 0x36
2866 WIN_WRITE_BUFFER = 0xe8
2867 WIN_WRITE_EXT = 0x34
2868 WIN_WRITE_LONG = 0x32
2869 WIN_WRITE_LONG_ONCE = 0x33
2870 WIN_WRITE_ONCE = 0x31
2871 WIN_WRITE_SAME = 0xe9
2872 WIN_WRITE_VERIFY = 0x3c
2873 WNOHANG = 0x1
2874 WNOTHREAD = 0x20000000
2875 WNOWAIT = 0x1000000
2876 WORDSIZE = 0x40
2877 WSTOPPED = 0x2
2878 WUNTRACED = 0x2
2879 XATTR_CREATE = 0x1
2880 XATTR_REPLACE = 0x2
2881 XCASE = 0x4
2882 XDP_COPY = 0x2
2883 XDP_FLAGS_DRV_MODE = 0x4
2884 XDP_FLAGS_HW_MODE = 0x8
2885 XDP_FLAGS_MASK = 0xf
2886 XDP_FLAGS_MODES = 0xe
2887 XDP_FLAGS_SKB_MODE = 0x2
2888 XDP_FLAGS_UPDATE_IF_NOEXIST = 0x1
2889 XDP_MMAP_OFFSETS = 0x1
2890 XDP_OPTIONS = 0x8
2891 XDP_OPTIONS_ZEROCOPY = 0x1
2892 XDP_PACKET_HEADROOM = 0x100
2893 XDP_PGOFF_RX_RING = 0x0
2894 XDP_PGOFF_TX_RING = 0x80000000
2895 XDP_RING_NEED_WAKEUP = 0x1
2896 XDP_RX_RING = 0x2
2897 XDP_SHARED_UMEM = 0x1
2898 XDP_STATISTICS = 0x7
2899 XDP_TX_RING = 0x3
2900 XDP_UMEM_COMPLETION_RING = 0x6
2901 XDP_UMEM_FILL_RING = 0x5
2902 XDP_UMEM_PGOFF_COMPLETION_RING = 0x180000000
2903 XDP_UMEM_PGOFF_FILL_RING = 0x100000000
2904 XDP_UMEM_REG = 0x4
2905 XDP_UMEM_UNALIGNED_CHUNK_FLAG = 0x1
2906 XDP_USE_NEED_WAKEUP = 0x8
2907 XDP_ZEROCOPY = 0x4
2908 XENFS_SUPER_MAGIC = 0xabba1974
2909 XFS_SUPER_MAGIC = 0x58465342
2910 XTABS = 0x1800
2911 Z3FOLD_MAGIC = 0x33
2912 ZSMALLOC_MAGIC = 0x58295829
2913 __TIOCFLUSH = 0x80047410
2720) 2914)
2721 2915
2722// Errors 2916// Errors
diff --git a/vendor/golang.org/x/sys/unix/zerrors_netbsd_386.go b/vendor/golang.org/x/sys/unix/zerrors_netbsd_386.go
index 78cc04e..96b9b8a 100644
--- a/vendor/golang.org/x/sys/unix/zerrors_netbsd_386.go
+++ b/vendor/golang.org/x/sys/unix/zerrors_netbsd_386.go
@@ -3,7 +3,7 @@
3 3
4// +build 386,netbsd 4// +build 386,netbsd
5 5
6// Created by cgo -godefs - DO NOT EDIT 6// Code generated by cmd/cgo -godefs; DO NOT EDIT.
7// cgo -godefs -- -m32 _const.go 7// cgo -godefs -- -m32 _const.go
8 8
9package unix 9package unix
@@ -1085,6 +1085,7 @@ const (
1085 NET_RT_MAXID = 0x6 1085 NET_RT_MAXID = 0x6
1086 NET_RT_OIFLIST = 0x4 1086 NET_RT_OIFLIST = 0x4
1087 NET_RT_OOIFLIST = 0x3 1087 NET_RT_OOIFLIST = 0x3
1088 NFDBITS = 0x20
1088 NOFLSH = 0x80000000 1089 NOFLSH = 0x80000000
1089 NOTE_ATTRIB = 0x8 1090 NOTE_ATTRIB = 0x8
1090 NOTE_CHILD = 0x4 1091 NOTE_CHILD = 0x4
diff --git a/vendor/golang.org/x/sys/unix/zerrors_netbsd_amd64.go b/vendor/golang.org/x/sys/unix/zerrors_netbsd_amd64.go
index 92185e6..ed522a8 100644
--- a/vendor/golang.org/x/sys/unix/zerrors_netbsd_amd64.go
+++ b/vendor/golang.org/x/sys/unix/zerrors_netbsd_amd64.go
@@ -3,7 +3,7 @@
3 3
4// +build amd64,netbsd 4// +build amd64,netbsd
5 5
6// Created by cgo -godefs - DO NOT EDIT 6// Code generated by cmd/cgo -godefs; DO NOT EDIT.
7// cgo -godefs -- -m64 _const.go 7// cgo -godefs -- -m64 _const.go
8 8
9package unix 9package unix
@@ -1075,6 +1075,7 @@ const (
1075 NET_RT_MAXID = 0x6 1075 NET_RT_MAXID = 0x6
1076 NET_RT_OIFLIST = 0x4 1076 NET_RT_OIFLIST = 0x4
1077 NET_RT_OOIFLIST = 0x3 1077 NET_RT_OOIFLIST = 0x3
1078 NFDBITS = 0x20
1078 NOFLSH = 0x80000000 1079 NOFLSH = 0x80000000
1079 NOTE_ATTRIB = 0x8 1080 NOTE_ATTRIB = 0x8
1080 NOTE_CHILD = 0x4 1081 NOTE_CHILD = 0x4
diff --git a/vendor/golang.org/x/sys/unix/zerrors_netbsd_arm.go b/vendor/golang.org/x/sys/unix/zerrors_netbsd_arm.go
index 373ad45..c8d36fe 100644
--- a/vendor/golang.org/x/sys/unix/zerrors_netbsd_arm.go
+++ b/vendor/golang.org/x/sys/unix/zerrors_netbsd_arm.go
@@ -3,7 +3,7 @@
3 3
4// +build arm,netbsd 4// +build arm,netbsd
5 5
6// Created by cgo -godefs - DO NOT EDIT 6// Code generated by cmd/cgo -godefs; DO NOT EDIT.
7// cgo -godefs -- -marm _const.go 7// cgo -godefs -- -marm _const.go
8 8
9package unix 9package unix
@@ -1065,6 +1065,7 @@ const (
1065 NET_RT_MAXID = 0x6 1065 NET_RT_MAXID = 0x6
1066 NET_RT_OIFLIST = 0x4 1066 NET_RT_OIFLIST = 0x4
1067 NET_RT_OOIFLIST = 0x3 1067 NET_RT_OOIFLIST = 0x3
1068 NFDBITS = 0x20
1068 NOFLSH = 0x80000000 1069 NOFLSH = 0x80000000
1069 NOTE_ATTRIB = 0x8 1070 NOTE_ATTRIB = 0x8
1070 NOTE_CHILD = 0x4 1071 NOTE_CHILD = 0x4
diff --git a/vendor/golang.org/x/sys/unix/zerrors_netbsd_arm64.go b/vendor/golang.org/x/sys/unix/zerrors_netbsd_arm64.go
index fb6c604..f1c146a 100644
--- a/vendor/golang.org/x/sys/unix/zerrors_netbsd_arm64.go
+++ b/vendor/golang.org/x/sys/unix/zerrors_netbsd_arm64.go
@@ -3,7 +3,7 @@
3 3
4// +build arm64,netbsd 4// +build arm64,netbsd
5 5
6// Created by cgo -godefs - DO NOT EDIT 6// Code generated by cmd/cgo -godefs; DO NOT EDIT.
7// cgo -godefs -- -m64 _const.go 7// cgo -godefs -- -m64 _const.go
8 8
9package unix 9package unix
@@ -1075,6 +1075,7 @@ const (
1075 NET_RT_MAXID = 0x6 1075 NET_RT_MAXID = 0x6
1076 NET_RT_OIFLIST = 0x4 1076 NET_RT_OIFLIST = 0x4
1077 NET_RT_OOIFLIST = 0x3 1077 NET_RT_OOIFLIST = 0x3
1078 NFDBITS = 0x20
1078 NOFLSH = 0x80000000 1079 NOFLSH = 0x80000000
1079 NOTE_ATTRIB = 0x8 1080 NOTE_ATTRIB = 0x8
1080 NOTE_CHILD = 0x4 1081 NOTE_CHILD = 0x4
diff --git a/vendor/golang.org/x/sys/unix/zerrors_openbsd_386.go b/vendor/golang.org/x/sys/unix/zerrors_openbsd_386.go
index d8be045..5402bd5 100644
--- a/vendor/golang.org/x/sys/unix/zerrors_openbsd_386.go
+++ b/vendor/golang.org/x/sys/unix/zerrors_openbsd_386.go
@@ -3,7 +3,7 @@
3 3
4// +build 386,openbsd 4// +build 386,openbsd
5 5
6// Created by cgo -godefs - DO NOT EDIT 6// Code generated by cmd/cgo -godefs; DO NOT EDIT.
7// cgo -godefs -- -m32 _const.go 7// cgo -godefs -- -m32 _const.go
8 8
9package unix 9package unix
@@ -881,14 +881,15 @@ const (
881 MADV_SPACEAVAIL = 0x5 881 MADV_SPACEAVAIL = 0x5
882 MADV_WILLNEED = 0x3 882 MADV_WILLNEED = 0x3
883 MAP_ANON = 0x1000 883 MAP_ANON = 0x1000
884 MAP_COPY = 0x4 884 MAP_ANONYMOUS = 0x1000
885 MAP_CONCEAL = 0x8000
886 MAP_COPY = 0x2
885 MAP_FILE = 0x0 887 MAP_FILE = 0x0
886 MAP_FIXED = 0x10 888 MAP_FIXED = 0x10
887 MAP_FLAGMASK = 0x1ff7 889 MAP_FLAGMASK = 0xfff7
888 MAP_HASSEMAPHORE = 0x200 890 MAP_HASSEMAPHORE = 0x0
889 MAP_INHERIT = 0x80 891 MAP_INHERIT = 0x0
890 MAP_INHERIT_COPY = 0x1 892 MAP_INHERIT_COPY = 0x1
891 MAP_INHERIT_DONATE_COPY = 0x3
892 MAP_INHERIT_NONE = 0x2 893 MAP_INHERIT_NONE = 0x2
893 MAP_INHERIT_SHARE = 0x0 894 MAP_INHERIT_SHARE = 0x0
894 MAP_NOEXTEND = 0x100 895 MAP_NOEXTEND = 0x100
@@ -896,7 +897,8 @@ const (
896 MAP_PRIVATE = 0x2 897 MAP_PRIVATE = 0x2
897 MAP_RENAME = 0x20 898 MAP_RENAME = 0x20
898 MAP_SHARED = 0x1 899 MAP_SHARED = 0x1
899 MAP_TRYFIXED = 0x400 900 MAP_STACK = 0x4000
901 MAP_TRYFIXED = 0x0
900 MCL_CURRENT = 0x1 902 MCL_CURRENT = 0x1
901 MCL_FUTURE = 0x2 903 MCL_FUTURE = 0x2
902 MNT_ASYNC = 0x40 904 MNT_ASYNC = 0x40
@@ -946,6 +948,7 @@ const (
946 NET_RT_MAXID = 0x6 948 NET_RT_MAXID = 0x6
947 NET_RT_STATS = 0x4 949 NET_RT_STATS = 0x4
948 NET_RT_TABLE = 0x5 950 NET_RT_TABLE = 0x5
951 NFDBITS = 0x20
949 NOFLSH = 0x80000000 952 NOFLSH = 0x80000000
950 NOTE_ATTRIB = 0x8 953 NOTE_ATTRIB = 0x8
951 NOTE_CHILD = 0x4 954 NOTE_CHILD = 0x4
diff --git a/vendor/golang.org/x/sys/unix/zerrors_openbsd_amd64.go b/vendor/golang.org/x/sys/unix/zerrors_openbsd_amd64.go
index 1f9e8a2..ffaf2d2 100644
--- a/vendor/golang.org/x/sys/unix/zerrors_openbsd_amd64.go
+++ b/vendor/golang.org/x/sys/unix/zerrors_openbsd_amd64.go
@@ -3,7 +3,7 @@
3 3
4// +build amd64,openbsd 4// +build amd64,openbsd
5 5
6// Created by cgo -godefs - DO NOT EDIT 6// Code generated by cmd/cgo -godefs; DO NOT EDIT.
7// cgo -godefs -- -m64 _const.go 7// cgo -godefs -- -m64 _const.go
8 8
9package unix 9package unix
@@ -920,10 +920,11 @@ const (
920 MADV_WILLNEED = 0x3 920 MADV_WILLNEED = 0x3
921 MAP_ANON = 0x1000 921 MAP_ANON = 0x1000
922 MAP_ANONYMOUS = 0x1000 922 MAP_ANONYMOUS = 0x1000
923 MAP_CONCEAL = 0x8000
923 MAP_COPY = 0x2 924 MAP_COPY = 0x2
924 MAP_FILE = 0x0 925 MAP_FILE = 0x0
925 MAP_FIXED = 0x10 926 MAP_FIXED = 0x10
926 MAP_FLAGMASK = 0x7ff7 927 MAP_FLAGMASK = 0xfff7
927 MAP_HASSEMAPHORE = 0x0 928 MAP_HASSEMAPHORE = 0x0
928 MAP_INHERIT = 0x0 929 MAP_INHERIT = 0x0
929 MAP_INHERIT_COPY = 0x1 930 MAP_INHERIT_COPY = 0x1
@@ -990,6 +991,7 @@ const (
990 NET_RT_MAXID = 0x7 991 NET_RT_MAXID = 0x7
991 NET_RT_STATS = 0x4 992 NET_RT_STATS = 0x4
992 NET_RT_TABLE = 0x5 993 NET_RT_TABLE = 0x5
994 NFDBITS = 0x20
993 NOFLSH = 0x80000000 995 NOFLSH = 0x80000000
994 NOKERNINFO = 0x2000000 996 NOKERNINFO = 0x2000000
995 NOTE_ATTRIB = 0x8 997 NOTE_ATTRIB = 0x8
diff --git a/vendor/golang.org/x/sys/unix/zerrors_openbsd_arm.go b/vendor/golang.org/x/sys/unix/zerrors_openbsd_arm.go
index 79d5695..7aa796a 100644
--- a/vendor/golang.org/x/sys/unix/zerrors_openbsd_arm.go
+++ b/vendor/golang.org/x/sys/unix/zerrors_openbsd_arm.go
@@ -1,11 +1,11 @@
1// mkerrors.sh 1// mkerrors.sh
2// Code generated by the command above; see README.md. DO NOT EDIT. 2// Code generated by the command above; see README.md. DO NOT EDIT.
3 3
4// Created by cgo -godefs - DO NOT EDIT
5// cgo -godefs -- _const.go
6
7// +build arm,openbsd 4// +build arm,openbsd
8 5
6// Code generated by cmd/cgo -godefs; DO NOT EDIT.
7// cgo -godefs -- _const.go
8
9package unix 9package unix
10 10
11import "syscall" 11import "syscall"
@@ -881,10 +881,11 @@ const (
881 MADV_WILLNEED = 0x3 881 MADV_WILLNEED = 0x3
882 MAP_ANON = 0x1000 882 MAP_ANON = 0x1000
883 MAP_ANONYMOUS = 0x1000 883 MAP_ANONYMOUS = 0x1000
884 MAP_CONCEAL = 0x8000
884 MAP_COPY = 0x2 885 MAP_COPY = 0x2
885 MAP_FILE = 0x0 886 MAP_FILE = 0x0
886 MAP_FIXED = 0x10 887 MAP_FIXED = 0x10
887 MAP_FLAGMASK = 0x3ff7 888 MAP_FLAGMASK = 0xfff7
888 MAP_HASSEMAPHORE = 0x0 889 MAP_HASSEMAPHORE = 0x0
889 MAP_INHERIT = 0x0 890 MAP_INHERIT = 0x0
890 MAP_INHERIT_COPY = 0x1 891 MAP_INHERIT_COPY = 0x1
@@ -896,6 +897,7 @@ const (
896 MAP_PRIVATE = 0x2 897 MAP_PRIVATE = 0x2
897 MAP_RENAME = 0x0 898 MAP_RENAME = 0x0
898 MAP_SHARED = 0x1 899 MAP_SHARED = 0x1
900 MAP_STACK = 0x4000
899 MAP_TRYFIXED = 0x0 901 MAP_TRYFIXED = 0x0
900 MCL_CURRENT = 0x1 902 MCL_CURRENT = 0x1
901 MCL_FUTURE = 0x2 903 MCL_FUTURE = 0x2
@@ -947,6 +949,7 @@ const (
947 NET_RT_MAXID = 0x6 949 NET_RT_MAXID = 0x6
948 NET_RT_STATS = 0x4 950 NET_RT_STATS = 0x4
949 NET_RT_TABLE = 0x5 951 NET_RT_TABLE = 0x5
952 NFDBITS = 0x20
950 NOFLSH = 0x80000000 953 NOFLSH = 0x80000000
951 NOTE_ATTRIB = 0x8 954 NOTE_ATTRIB = 0x8
952 NOTE_CHILD = 0x4 955 NOTE_CHILD = 0x4
diff --git a/vendor/golang.org/x/sys/unix/zerrors_openbsd_arm64.go b/vendor/golang.org/x/sys/unix/zerrors_openbsd_arm64.go
index ec5f92d..1792d3f 100644
--- a/vendor/golang.org/x/sys/unix/zerrors_openbsd_arm64.go
+++ b/vendor/golang.org/x/sys/unix/zerrors_openbsd_arm64.go
@@ -996,6 +996,7 @@ const (
996 NET_RT_MAXID = 0x7 996 NET_RT_MAXID = 0x7
997 NET_RT_STATS = 0x4 997 NET_RT_STATS = 0x4
998 NET_RT_TABLE = 0x5 998 NET_RT_TABLE = 0x5
999 NFDBITS = 0x20
999 NOFLSH = 0x80000000 1000 NOFLSH = 0x80000000
1000 NOKERNINFO = 0x2000000 1001 NOKERNINFO = 0x2000000
1001 NOTE_ATTRIB = 0x8 1002 NOTE_ATTRIB = 0x8
diff --git a/vendor/golang.org/x/sys/unix/zerrors_solaris_amd64.go b/vendor/golang.org/x/sys/unix/zerrors_solaris_amd64.go
index 22569db..46e054c 100644
--- a/vendor/golang.org/x/sys/unix/zerrors_solaris_amd64.go
+++ b/vendor/golang.org/x/sys/unix/zerrors_solaris_amd64.go
@@ -3,7 +3,7 @@
3 3
4// +build amd64,solaris 4// +build amd64,solaris
5 5
6// Created by cgo -godefs - DO NOT EDIT 6// Code generated by cmd/cgo -godefs; DO NOT EDIT.
7// cgo -godefs -- -m64 _const.go 7// cgo -godefs -- -m64 _const.go
8 8
9package unix 9package unix
@@ -666,6 +666,7 @@ const (
666 M_FLUSH = 0x86 666 M_FLUSH = 0x86
667 NAME_MAX = 0xff 667 NAME_MAX = 0xff
668 NEWDEV = 0x1 668 NEWDEV = 0x1
669 NFDBITS = 0x40
669 NL0 = 0x0 670 NL0 = 0x0
670 NL1 = 0x100 671 NL1 = 0x100
671 NLDLY = 0x100 672 NLDLY = 0x100
diff --git a/vendor/golang.org/x/sys/unix/zptracearm_linux.go b/vendor/golang.org/x/sys/unix/zptrace_armnn_linux.go
index faf23bb..89c5920 100644
--- a/vendor/golang.org/x/sys/unix/zptracearm_linux.go
+++ b/vendor/golang.org/x/sys/unix/zptrace_armnn_linux.go
@@ -1,4 +1,4 @@
1// Code generated by linux/mkall.go generatePtracePair(arm, arm64). DO NOT EDIT. 1// Code generated by linux/mkall.go generatePtracePair("arm", "arm64"). DO NOT EDIT.
2 2
3// +build linux 3// +build linux
4// +build arm arm64 4// +build arm arm64
diff --git a/vendor/golang.org/x/sys/unix/zptrace_linux_arm64.go b/vendor/golang.org/x/sys/unix/zptrace_linux_arm64.go
new file mode 100644
index 0000000..6cb6d68
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/zptrace_linux_arm64.go
@@ -0,0 +1,17 @@
1// Code generated by linux/mkall.go generatePtraceRegSet("arm64"). DO NOT EDIT.
2
3package unix
4
5import "unsafe"
6
7// PtraceGetRegSetArm64 fetches the registers used by arm64 binaries.
8func PtraceGetRegSetArm64(pid, addr int, regsout *PtraceRegsArm64) error {
9 iovec := Iovec{(*byte)(unsafe.Pointer(regsout)), uint64(unsafe.Sizeof(*regsout))}
10 return ptrace(PTRACE_GETREGSET, pid, uintptr(addr), uintptr(unsafe.Pointer(&iovec)))
11}
12
13// PtraceSetRegSetArm64 sets the registers used by arm64 binaries.
14func PtraceSetRegSetArm64(pid, addr int, regs *PtraceRegsArm64) error {
15 iovec := Iovec{(*byte)(unsafe.Pointer(regs)), uint64(unsafe.Sizeof(*regs))}
16 return ptrace(PTRACE_SETREGSET, pid, uintptr(addr), uintptr(unsafe.Pointer(&iovec)))
17}
diff --git a/vendor/golang.org/x/sys/unix/zptracemips_linux.go b/vendor/golang.org/x/sys/unix/zptrace_mipsnn_linux.go
index c431131..24b841e 100644
--- a/vendor/golang.org/x/sys/unix/zptracemips_linux.go
+++ b/vendor/golang.org/x/sys/unix/zptrace_mipsnn_linux.go
@@ -1,4 +1,4 @@
1// Code generated by linux/mkall.go generatePtracePair(mips, mips64). DO NOT EDIT. 1// Code generated by linux/mkall.go generatePtracePair("mips", "mips64"). DO NOT EDIT.
2 2
3// +build linux 3// +build linux
4// +build mips mips64 4// +build mips mips64
diff --git a/vendor/golang.org/x/sys/unix/zptracemipsle_linux.go b/vendor/golang.org/x/sys/unix/zptrace_mipsnnle_linux.go
index dc3d6d3..47b0489 100644
--- a/vendor/golang.org/x/sys/unix/zptracemipsle_linux.go
+++ b/vendor/golang.org/x/sys/unix/zptrace_mipsnnle_linux.go
@@ -1,4 +1,4 @@
1// Code generated by linux/mkall.go generatePtracePair(mipsle, mips64le). DO NOT EDIT. 1// Code generated by linux/mkall.go generatePtracePair("mipsle", "mips64le"). DO NOT EDIT.
2 2
3// +build linux 3// +build linux
4// +build mipsle mips64le 4// +build mipsle mips64le
diff --git a/vendor/golang.org/x/sys/unix/zptrace386_linux.go b/vendor/golang.org/x/sys/unix/zptrace_x86_linux.go
index 2d21c49..ea5d9cb 100644
--- a/vendor/golang.org/x/sys/unix/zptrace386_linux.go
+++ b/vendor/golang.org/x/sys/unix/zptrace_x86_linux.go
@@ -1,4 +1,4 @@
1// Code generated by linux/mkall.go generatePtracePair(386, amd64). DO NOT EDIT. 1// Code generated by linux/mkall.go generatePtracePair("386", "amd64"). DO NOT EDIT.
2 2
3// +build linux 3// +build linux
4// +build 386 amd64 4// +build 386 amd64
diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_386.1_11.go b/vendor/golang.org/x/sys/unix/zsyscall_darwin_386.1_11.go
index dd5ea36..c1cc0a4 100644
--- a/vendor/golang.org/x/sys/unix/zsyscall_darwin_386.1_11.go
+++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_386.1_11.go
@@ -1,4 +1,4 @@
1// go run mksyscall.go -l32 -tags darwin,386,!go1.12 syscall_bsd.go syscall_darwin.go syscall_darwin_386.go 1// go run mksyscall.go -l32 -tags darwin,386,!go1.12 syscall_bsd.go syscall_darwin.go syscall_darwin_386.1_11.go syscall_darwin_386.go
2// Code generated by the command above; see README.md. DO NOT EDIT. 2// Code generated by the command above; see README.md. DO NOT EDIT.
3 3
4// +build darwin,386,!go1.12 4// +build darwin,386,!go1.12
@@ -214,22 +214,6 @@ func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, ne
214 214
215// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 215// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
216 216
217func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {
218 var _p0 unsafe.Pointer
219 if len(mib) > 0 {
220 _p0 = unsafe.Pointer(&mib[0])
221 } else {
222 _p0 = unsafe.Pointer(&_zero)
223 }
224 _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))
225 if e1 != 0 {
226 err = errnoErr(e1)
227 }
228 return
229}
230
231// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
232
233func utimes(path string, timeval *[2]Timeval) (err error) { 217func utimes(path string, timeval *[2]Timeval) (err error) {
234 var _p0 *byte 218 var _p0 *byte
235 _p0, err = BytePtrFromString(path) 219 _p0, err = BytePtrFromString(path)
@@ -255,17 +239,6 @@ func futimes(fd int, timeval *[2]Timeval) (err error) {
255 239
256// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 240// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
257 241
258func fcntl(fd int, cmd int, arg int) (val int, err error) {
259 r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg))
260 val = int(r0)
261 if e1 != 0 {
262 err = errnoErr(e1)
263 }
264 return
265}
266
267// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
268
269func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { 242func poll(fds *PollFd, nfds int, timeout int) (n int, err error) {
270 r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) 243 r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))
271 n = int(r0) 244 n = int(r0)
@@ -543,6 +516,17 @@ func setattrlist(path *byte, list unsafe.Pointer, buf unsafe.Pointer, size uintp
543 516
544// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 517// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
545 518
519func fcntl(fd int, cmd int, arg int) (val int, err error) {
520 r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg))
521 val = int(r0)
522 if e1 != 0 {
523 err = errnoErr(e1)
524 }
525 return
526}
527
528// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
529
546func kill(pid int, signum int, posix int) (err error) { 530func kill(pid int, signum int, posix int) (err error) {
547 _, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), uintptr(posix)) 531 _, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), uintptr(posix))
548 if e1 != 0 { 532 if e1 != 0 {
@@ -563,6 +547,22 @@ func ioctl(fd int, req uint, arg uintptr) (err error) {
563 547
564// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 548// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
565 549
550func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {
551 var _p0 unsafe.Pointer
552 if len(mib) > 0 {
553 _p0 = unsafe.Pointer(&mib[0])
554 } else {
555 _p0 = unsafe.Pointer(&_zero)
556 }
557 _, _, e1 := Syscall6(SYS_SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))
558 if e1 != 0 {
559 err = errnoErr(e1)
560 }
561 return
562}
563
564// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
565
566func sendfile(infd int, outfd int, offset int64, len *int64, hdtr unsafe.Pointer, flags int) (err error) { 566func sendfile(infd int, outfd int, offset int64, len *int64, hdtr unsafe.Pointer, flags int) (err error) {
567 _, _, e1 := Syscall9(SYS_SENDFILE, uintptr(infd), uintptr(outfd), uintptr(offset), uintptr(offset>>32), uintptr(unsafe.Pointer(len)), uintptr(hdtr), uintptr(flags), 0, 0) 567 _, _, e1 := Syscall9(SYS_SENDFILE, uintptr(infd), uintptr(outfd), uintptr(offset), uintptr(offset>>32), uintptr(unsafe.Pointer(len)), uintptr(hdtr), uintptr(flags), 0, 0)
568 if e1 != 0 { 568 if e1 != 0 {
@@ -1342,8 +1342,9 @@ func Seek(fd int, offset int64, whence int) (newoffset int64, err error) {
1342 1342
1343// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 1343// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
1344 1344
1345func Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) { 1345func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {
1346 _, _, e1 := Syscall6(SYS_SELECT, uintptr(n), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) 1346 r0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)
1347 n = int(r0)
1347 if e1 != 0 { 1348 if e1 != 0 {
1348 err = errnoErr(e1) 1349 err = errnoErr(e1)
1349 } 1350 }
@@ -1681,6 +1682,23 @@ func writelen(fd int, buf *byte, nbuf int) (n int, err error) {
1681 1682
1682// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 1683// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
1683 1684
1685func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) {
1686 var _p0 unsafe.Pointer
1687 if len(buf) > 0 {
1688 _p0 = unsafe.Pointer(&buf[0])
1689 } else {
1690 _p0 = unsafe.Pointer(&_zero)
1691 }
1692 r0, _, e1 := Syscall6(SYS_GETDIRENTRIES64, uintptr(fd), uintptr(_p0), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 0, 0)
1693 n = int(r0)
1694 if e1 != 0 {
1695 err = errnoErr(e1)
1696 }
1697 return
1698}
1699
1700// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
1701
1684func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) { 1702func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) {
1685 _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) 1703 _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0)
1686 if e1 != 0 { 1704 if e1 != 0 {
@@ -1738,23 +1756,6 @@ func Fstatfs(fd int, stat *Statfs_t) (err error) {
1738 1756
1739// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 1757// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
1740 1758
1741func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) {
1742 var _p0 unsafe.Pointer
1743 if len(buf) > 0 {
1744 _p0 = unsafe.Pointer(&buf[0])
1745 } else {
1746 _p0 = unsafe.Pointer(&_zero)
1747 }
1748 r0, _, e1 := Syscall6(SYS_GETDIRENTRIES64, uintptr(fd), uintptr(_p0), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 0, 0)
1749 n = int(r0)
1750 if e1 != 0 {
1751 err = errnoErr(e1)
1752 }
1753 return
1754}
1755
1756// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
1757
1758func getfsstat(buf unsafe.Pointer, size uintptr, flags int) (n int, err error) { 1759func getfsstat(buf unsafe.Pointer, size uintptr, flags int) (n int, err error) {
1759 r0, _, e1 := Syscall(SYS_GETFSSTAT64, uintptr(buf), uintptr(size), uintptr(flags)) 1760 r0, _, e1 := Syscall(SYS_GETFSSTAT64, uintptr(buf), uintptr(size), uintptr(flags))
1760 n = int(r0) 1761 n = int(r0)
diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_386.1_13.go b/vendor/golang.org/x/sys/unix/zsyscall_darwin_386.1_13.go
new file mode 100644
index 0000000..e263fbd
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_386.1_13.go
@@ -0,0 +1,41 @@
1// go run mksyscall.go -l32 -tags darwin,386,go1.13 syscall_darwin.1_13.go
2// Code generated by the command above; see README.md. DO NOT EDIT.
3
4// +build darwin,386,go1.13
5
6package unix
7
8import (
9 "syscall"
10 "unsafe"
11)
12
13var _ syscall.Errno
14
15// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
16
17func closedir(dir uintptr) (err error) {
18 _, _, e1 := syscall_syscall(funcPC(libc_closedir_trampoline), uintptr(dir), 0, 0)
19 if e1 != 0 {
20 err = errnoErr(e1)
21 }
22 return
23}
24
25func libc_closedir_trampoline()
26
27//go:linkname libc_closedir libc_closedir
28//go:cgo_import_dynamic libc_closedir closedir "/usr/lib/libSystem.B.dylib"
29
30// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
31
32func readdir_r(dir uintptr, entry *Dirent, result **Dirent) (res Errno) {
33 r0, _, _ := syscall_syscall(funcPC(libc_readdir_r_trampoline), uintptr(dir), uintptr(unsafe.Pointer(entry)), uintptr(unsafe.Pointer(result)))
34 res = Errno(r0)
35 return
36}
37
38func libc_readdir_r_trampoline()
39
40//go:linkname libc_readdir_r libc_readdir_r
41//go:cgo_import_dynamic libc_readdir_r readdir_r "/usr/lib/libSystem.B.dylib"
diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_386.1_13.s b/vendor/golang.org/x/sys/unix/zsyscall_darwin_386.1_13.s
new file mode 100644
index 0000000..00da1eb
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_386.1_13.s
@@ -0,0 +1,12 @@
1// go run mkasm_darwin.go 386
2// Code generated by the command above; DO NOT EDIT.
3
4// +build go1.13
5
6#include "textflag.h"
7TEXT ·libc_fdopendir_trampoline(SB),NOSPLIT,$0-0
8 JMP libc_fdopendir(SB)
9TEXT ·libc_closedir_trampoline(SB),NOSPLIT,$0-0
10 JMP libc_closedir(SB)
11TEXT ·libc_readdir_r_trampoline(SB),NOSPLIT,$0-0
12 JMP libc_readdir_r(SB)
diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_386.go b/vendor/golang.org/x/sys/unix/zsyscall_darwin_386.go
index 78ca923..a3fc490 100644
--- a/vendor/golang.org/x/sys/unix/zsyscall_darwin_386.go
+++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_386.go
@@ -304,27 +304,6 @@ func libc_kevent_trampoline()
304 304
305// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 305// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
306 306
307func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {
308 var _p0 unsafe.Pointer
309 if len(mib) > 0 {
310 _p0 = unsafe.Pointer(&mib[0])
311 } else {
312 _p0 = unsafe.Pointer(&_zero)
313 }
314 _, _, e1 := syscall_syscall6(funcPC(libc___sysctl_trampoline), uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))
315 if e1 != 0 {
316 err = errnoErr(e1)
317 }
318 return
319}
320
321func libc___sysctl_trampoline()
322
323//go:linkname libc___sysctl libc___sysctl
324//go:cgo_import_dynamic libc___sysctl __sysctl "/usr/lib/libSystem.B.dylib"
325
326// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
327
328func utimes(path string, timeval *[2]Timeval) (err error) { 307func utimes(path string, timeval *[2]Timeval) (err error) {
329 var _p0 *byte 308 var _p0 *byte
330 _p0, err = BytePtrFromString(path) 309 _p0, err = BytePtrFromString(path)
@@ -360,22 +339,6 @@ func libc_futimes_trampoline()
360 339
361// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 340// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
362 341
363func fcntl(fd int, cmd int, arg int) (val int, err error) {
364 r0, _, e1 := syscall_syscall(funcPC(libc_fcntl_trampoline), uintptr(fd), uintptr(cmd), uintptr(arg))
365 val = int(r0)
366 if e1 != 0 {
367 err = errnoErr(e1)
368 }
369 return
370}
371
372func libc_fcntl_trampoline()
373
374//go:linkname libc_fcntl libc_fcntl
375//go:cgo_import_dynamic libc_fcntl fcntl "/usr/lib/libSystem.B.dylib"
376
377// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
378
379func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { 342func poll(fds *PollFd, nfds int, timeout int) (n int, err error) {
380 r0, _, e1 := syscall_syscall(funcPC(libc_poll_trampoline), uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) 343 r0, _, e1 := syscall_syscall(funcPC(libc_poll_trampoline), uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))
381 n = int(r0) 344 n = int(r0)
@@ -748,6 +711,22 @@ func libc_setattrlist_trampoline()
748 711
749// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 712// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
750 713
714func fcntl(fd int, cmd int, arg int) (val int, err error) {
715 r0, _, e1 := syscall_syscall(funcPC(libc_fcntl_trampoline), uintptr(fd), uintptr(cmd), uintptr(arg))
716 val = int(r0)
717 if e1 != 0 {
718 err = errnoErr(e1)
719 }
720 return
721}
722
723func libc_fcntl_trampoline()
724
725//go:linkname libc_fcntl libc_fcntl
726//go:cgo_import_dynamic libc_fcntl fcntl "/usr/lib/libSystem.B.dylib"
727
728// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
729
751func kill(pid int, signum int, posix int) (err error) { 730func kill(pid int, signum int, posix int) (err error) {
752 _, _, e1 := syscall_syscall(funcPC(libc_kill_trampoline), uintptr(pid), uintptr(signum), uintptr(posix)) 731 _, _, e1 := syscall_syscall(funcPC(libc_kill_trampoline), uintptr(pid), uintptr(signum), uintptr(posix))
753 if e1 != 0 { 732 if e1 != 0 {
@@ -778,6 +757,27 @@ func libc_ioctl_trampoline()
778 757
779// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 758// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
780 759
760func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {
761 var _p0 unsafe.Pointer
762 if len(mib) > 0 {
763 _p0 = unsafe.Pointer(&mib[0])
764 } else {
765 _p0 = unsafe.Pointer(&_zero)
766 }
767 _, _, e1 := syscall_syscall6(funcPC(libc_sysctl_trampoline), uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))
768 if e1 != 0 {
769 err = errnoErr(e1)
770 }
771 return
772}
773
774func libc_sysctl_trampoline()
775
776//go:linkname libc_sysctl libc_sysctl
777//go:cgo_import_dynamic libc_sysctl sysctl "/usr/lib/libSystem.B.dylib"
778
779// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
780
781func sendfile(infd int, outfd int, offset int64, len *int64, hdtr unsafe.Pointer, flags int) (err error) { 781func sendfile(infd int, outfd int, offset int64, len *int64, hdtr unsafe.Pointer, flags int) (err error) {
782 _, _, e1 := syscall_syscall9(funcPC(libc_sendfile_trampoline), uintptr(infd), uintptr(outfd), uintptr(offset), uintptr(offset>>32), uintptr(unsafe.Pointer(len)), uintptr(hdtr), uintptr(flags), 0, 0) 782 _, _, e1 := syscall_syscall9(funcPC(libc_sendfile_trampoline), uintptr(infd), uintptr(outfd), uintptr(offset), uintptr(offset>>32), uintptr(unsafe.Pointer(len)), uintptr(hdtr), uintptr(flags), 0, 0)
783 if e1 != 0 { 783 if e1 != 0 {
@@ -928,6 +928,21 @@ func libc_chroot_trampoline()
928 928
929// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 929// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
930 930
931func ClockGettime(clockid int32, time *Timespec) (err error) {
932 _, _, e1 := syscall_syscall(funcPC(libc_clock_gettime_trampoline), uintptr(clockid), uintptr(unsafe.Pointer(time)), 0)
933 if e1 != 0 {
934 err = errnoErr(e1)
935 }
936 return
937}
938
939func libc_clock_gettime_trampoline()
940
941//go:linkname libc_clock_gettime libc_clock_gettime
942//go:cgo_import_dynamic libc_clock_gettime clock_gettime "/usr/lib/libSystem.B.dylib"
943
944// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
945
931func Close(fd int) (err error) { 946func Close(fd int) (err error) {
932 _, _, e1 := syscall_syscall(funcPC(libc_close_trampoline), uintptr(fd), 0, 0) 947 _, _, e1 := syscall_syscall(funcPC(libc_close_trampoline), uintptr(fd), 0, 0)
933 if e1 != 0 { 948 if e1 != 0 {
@@ -1857,8 +1872,9 @@ func libc_lseek_trampoline()
1857 1872
1858// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 1873// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
1859 1874
1860func Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) { 1875func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {
1861 _, _, e1 := syscall_syscall6(funcPC(libc_select_trampoline), uintptr(n), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) 1876 r0, _, e1 := syscall_syscall6(funcPC(libc_select_trampoline), uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)
1877 n = int(r0)
1862 if e1 != 0 { 1878 if e1 != 0 {
1863 err = errnoErr(e1) 1879 err = errnoErr(e1)
1864 } 1880 }
@@ -2408,28 +2424,6 @@ func libc_fstatfs64_trampoline()
2408 2424
2409// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 2425// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
2410 2426
2411func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) {
2412 var _p0 unsafe.Pointer
2413 if len(buf) > 0 {
2414 _p0 = unsafe.Pointer(&buf[0])
2415 } else {
2416 _p0 = unsafe.Pointer(&_zero)
2417 }
2418 r0, _, e1 := syscall_syscall6(funcPC(libc___getdirentries64_trampoline), uintptr(fd), uintptr(_p0), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 0, 0)
2419 n = int(r0)
2420 if e1 != 0 {
2421 err = errnoErr(e1)
2422 }
2423 return
2424}
2425
2426func libc___getdirentries64_trampoline()
2427
2428//go:linkname libc___getdirentries64 libc___getdirentries64
2429//go:cgo_import_dynamic libc___getdirentries64 __getdirentries64 "/usr/lib/libSystem.B.dylib"
2430
2431// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
2432
2433func getfsstat(buf unsafe.Pointer, size uintptr, flags int) (n int, err error) { 2427func getfsstat(buf unsafe.Pointer, size uintptr, flags int) (n int, err error) {
2434 r0, _, e1 := syscall_syscall(funcPC(libc_getfsstat64_trampoline), uintptr(buf), uintptr(size), uintptr(flags)) 2428 r0, _, e1 := syscall_syscall(funcPC(libc_getfsstat64_trampoline), uintptr(buf), uintptr(size), uintptr(flags))
2435 n = int(r0) 2429 n = int(r0)
diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_386.s b/vendor/golang.org/x/sys/unix/zsyscall_darwin_386.s
index f40465c..6836a41 100644
--- a/vendor/golang.org/x/sys/unix/zsyscall_darwin_386.s
+++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_386.s
@@ -40,14 +40,10 @@ TEXT ·libc_sendmsg_trampoline(SB),NOSPLIT,$0-0
40 JMP libc_sendmsg(SB) 40 JMP libc_sendmsg(SB)
41TEXT ·libc_kevent_trampoline(SB),NOSPLIT,$0-0 41TEXT ·libc_kevent_trampoline(SB),NOSPLIT,$0-0
42 JMP libc_kevent(SB) 42 JMP libc_kevent(SB)
43TEXT ·libc___sysctl_trampoline(SB),NOSPLIT,$0-0
44 JMP libc___sysctl(SB)
45TEXT ·libc_utimes_trampoline(SB),NOSPLIT,$0-0 43TEXT ·libc_utimes_trampoline(SB),NOSPLIT,$0-0
46 JMP libc_utimes(SB) 44 JMP libc_utimes(SB)
47TEXT ·libc_futimes_trampoline(SB),NOSPLIT,$0-0 45TEXT ·libc_futimes_trampoline(SB),NOSPLIT,$0-0
48 JMP libc_futimes(SB) 46 JMP libc_futimes(SB)
49TEXT ·libc_fcntl_trampoline(SB),NOSPLIT,$0-0
50 JMP libc_fcntl(SB)
51TEXT ·libc_poll_trampoline(SB),NOSPLIT,$0-0 47TEXT ·libc_poll_trampoline(SB),NOSPLIT,$0-0
52 JMP libc_poll(SB) 48 JMP libc_poll(SB)
53TEXT ·libc_madvise_trampoline(SB),NOSPLIT,$0-0 49TEXT ·libc_madvise_trampoline(SB),NOSPLIT,$0-0
@@ -86,10 +82,14 @@ TEXT ·libc_flistxattr_trampoline(SB),NOSPLIT,$0-0
86 JMP libc_flistxattr(SB) 82 JMP libc_flistxattr(SB)
87TEXT ·libc_setattrlist_trampoline(SB),NOSPLIT,$0-0 83TEXT ·libc_setattrlist_trampoline(SB),NOSPLIT,$0-0
88 JMP libc_setattrlist(SB) 84 JMP libc_setattrlist(SB)
85TEXT ·libc_fcntl_trampoline(SB),NOSPLIT,$0-0
86 JMP libc_fcntl(SB)
89TEXT ·libc_kill_trampoline(SB),NOSPLIT,$0-0 87TEXT ·libc_kill_trampoline(SB),NOSPLIT,$0-0
90 JMP libc_kill(SB) 88 JMP libc_kill(SB)
91TEXT ·libc_ioctl_trampoline(SB),NOSPLIT,$0-0 89TEXT ·libc_ioctl_trampoline(SB),NOSPLIT,$0-0
92 JMP libc_ioctl(SB) 90 JMP libc_ioctl(SB)
91TEXT ·libc_sysctl_trampoline(SB),NOSPLIT,$0-0
92 JMP libc_sysctl(SB)
93TEXT ·libc_sendfile_trampoline(SB),NOSPLIT,$0-0 93TEXT ·libc_sendfile_trampoline(SB),NOSPLIT,$0-0
94 JMP libc_sendfile(SB) 94 JMP libc_sendfile(SB)
95TEXT ·libc_access_trampoline(SB),NOSPLIT,$0-0 95TEXT ·libc_access_trampoline(SB),NOSPLIT,$0-0
@@ -106,6 +106,8 @@ TEXT ·libc_chown_trampoline(SB),NOSPLIT,$0-0
106 JMP libc_chown(SB) 106 JMP libc_chown(SB)
107TEXT ·libc_chroot_trampoline(SB),NOSPLIT,$0-0 107TEXT ·libc_chroot_trampoline(SB),NOSPLIT,$0-0
108 JMP libc_chroot(SB) 108 JMP libc_chroot(SB)
109TEXT ·libc_clock_gettime_trampoline(SB),NOSPLIT,$0-0
110 JMP libc_clock_gettime(SB)
109TEXT ·libc_close_trampoline(SB),NOSPLIT,$0-0 111TEXT ·libc_close_trampoline(SB),NOSPLIT,$0-0
110 JMP libc_close(SB) 112 JMP libc_close(SB)
111TEXT ·libc_dup_trampoline(SB),NOSPLIT,$0-0 113TEXT ·libc_dup_trampoline(SB),NOSPLIT,$0-0
@@ -272,8 +274,6 @@ TEXT ·libc_fstatat64_trampoline(SB),NOSPLIT,$0-0
272 JMP libc_fstatat64(SB) 274 JMP libc_fstatat64(SB)
273TEXT ·libc_fstatfs64_trampoline(SB),NOSPLIT,$0-0 275TEXT ·libc_fstatfs64_trampoline(SB),NOSPLIT,$0-0
274 JMP libc_fstatfs64(SB) 276 JMP libc_fstatfs64(SB)
275TEXT ·libc___getdirentries64_trampoline(SB),NOSPLIT,$0-0
276 JMP libc___getdirentries64(SB)
277TEXT ·libc_getfsstat64_trampoline(SB),NOSPLIT,$0-0 277TEXT ·libc_getfsstat64_trampoline(SB),NOSPLIT,$0-0
278 JMP libc_getfsstat64(SB) 278 JMP libc_getfsstat64(SB)
279TEXT ·libc_lstat64_trampoline(SB),NOSPLIT,$0-0 279TEXT ·libc_lstat64_trampoline(SB),NOSPLIT,$0-0
diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.1_11.go b/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.1_11.go
index 2581e89..f8e5c37 100644
--- a/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.1_11.go
+++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.1_11.go
@@ -1,4 +1,4 @@
1// go run mksyscall.go -tags darwin,amd64,!go1.12 syscall_bsd.go syscall_darwin.go syscall_darwin_amd64.go 1// go run mksyscall.go -tags darwin,amd64,!go1.12 syscall_bsd.go syscall_darwin.go syscall_darwin_amd64.1_11.go syscall_darwin_amd64.go
2// Code generated by the command above; see README.md. DO NOT EDIT. 2// Code generated by the command above; see README.md. DO NOT EDIT.
3 3
4// +build darwin,amd64,!go1.12 4// +build darwin,amd64,!go1.12
@@ -214,22 +214,6 @@ func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, ne
214 214
215// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 215// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
216 216
217func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {
218 var _p0 unsafe.Pointer
219 if len(mib) > 0 {
220 _p0 = unsafe.Pointer(&mib[0])
221 } else {
222 _p0 = unsafe.Pointer(&_zero)
223 }
224 _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))
225 if e1 != 0 {
226 err = errnoErr(e1)
227 }
228 return
229}
230
231// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
232
233func utimes(path string, timeval *[2]Timeval) (err error) { 217func utimes(path string, timeval *[2]Timeval) (err error) {
234 var _p0 *byte 218 var _p0 *byte
235 _p0, err = BytePtrFromString(path) 219 _p0, err = BytePtrFromString(path)
@@ -255,17 +239,6 @@ func futimes(fd int, timeval *[2]Timeval) (err error) {
255 239
256// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 240// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
257 241
258func fcntl(fd int, cmd int, arg int) (val int, err error) {
259 r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg))
260 val = int(r0)
261 if e1 != 0 {
262 err = errnoErr(e1)
263 }
264 return
265}
266
267// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
268
269func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { 242func poll(fds *PollFd, nfds int, timeout int) (n int, err error) {
270 r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) 243 r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))
271 n = int(r0) 244 n = int(r0)
@@ -377,16 +350,6 @@ func Munlockall() (err error) {
377 350
378// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 351// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
379 352
380func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) {
381 _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0)
382 if e1 != 0 {
383 err = errnoErr(e1)
384 }
385 return
386}
387
388// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
389
390func getattrlist(path *byte, list unsafe.Pointer, buf unsafe.Pointer, size uintptr, options int) (err error) { 353func getattrlist(path *byte, list unsafe.Pointer, buf unsafe.Pointer, size uintptr, options int) (err error) {
391 _, _, e1 := Syscall6(SYS_GETATTRLIST, uintptr(unsafe.Pointer(path)), uintptr(list), uintptr(buf), uintptr(size), uintptr(options), 0) 354 _, _, e1 := Syscall6(SYS_GETATTRLIST, uintptr(unsafe.Pointer(path)), uintptr(list), uintptr(buf), uintptr(size), uintptr(options), 0)
392 if e1 != 0 { 355 if e1 != 0 {
@@ -553,6 +516,17 @@ func setattrlist(path *byte, list unsafe.Pointer, buf unsafe.Pointer, size uintp
553 516
554// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 517// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
555 518
519func fcntl(fd int, cmd int, arg int) (val int, err error) {
520 r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg))
521 val = int(r0)
522 if e1 != 0 {
523 err = errnoErr(e1)
524 }
525 return
526}
527
528// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
529
556func kill(pid int, signum int, posix int) (err error) { 530func kill(pid int, signum int, posix int) (err error) {
557 _, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), uintptr(posix)) 531 _, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), uintptr(posix))
558 if e1 != 0 { 532 if e1 != 0 {
@@ -573,6 +547,22 @@ func ioctl(fd int, req uint, arg uintptr) (err error) {
573 547
574// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 548// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
575 549
550func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {
551 var _p0 unsafe.Pointer
552 if len(mib) > 0 {
553 _p0 = unsafe.Pointer(&mib[0])
554 } else {
555 _p0 = unsafe.Pointer(&_zero)
556 }
557 _, _, e1 := Syscall6(SYS_SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))
558 if e1 != 0 {
559 err = errnoErr(e1)
560 }
561 return
562}
563
564// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
565
576func sendfile(infd int, outfd int, offset int64, len *int64, hdtr unsafe.Pointer, flags int) (err error) { 566func sendfile(infd int, outfd int, offset int64, len *int64, hdtr unsafe.Pointer, flags int) (err error) {
577 _, _, e1 := Syscall6(SYS_SENDFILE, uintptr(infd), uintptr(outfd), uintptr(offset), uintptr(unsafe.Pointer(len)), uintptr(hdtr), uintptr(flags)) 567 _, _, e1 := Syscall6(SYS_SENDFILE, uintptr(infd), uintptr(outfd), uintptr(offset), uintptr(unsafe.Pointer(len)), uintptr(hdtr), uintptr(flags))
578 if e1 != 0 { 568 if e1 != 0 {
@@ -1352,8 +1342,9 @@ func Seek(fd int, offset int64, whence int) (newoffset int64, err error) {
1352 1342
1353// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 1343// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
1354 1344
1355func Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) { 1345func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {
1356 _, _, e1 := Syscall6(SYS_SELECT, uintptr(n), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) 1346 r0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)
1347 n = int(r0)
1357 if e1 != 0 { 1348 if e1 != 0 {
1358 err = errnoErr(e1) 1349 err = errnoErr(e1)
1359 } 1350 }
@@ -1691,6 +1682,33 @@ func writelen(fd int, buf *byte, nbuf int) (n int, err error) {
1691 1682
1692// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 1683// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
1693 1684
1685func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) {
1686 var _p0 unsafe.Pointer
1687 if len(buf) > 0 {
1688 _p0 = unsafe.Pointer(&buf[0])
1689 } else {
1690 _p0 = unsafe.Pointer(&_zero)
1691 }
1692 r0, _, e1 := Syscall6(SYS_GETDIRENTRIES64, uintptr(fd), uintptr(_p0), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 0, 0)
1693 n = int(r0)
1694 if e1 != 0 {
1695 err = errnoErr(e1)
1696 }
1697 return
1698}
1699
1700// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
1701
1702func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) {
1703 _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0)
1704 if e1 != 0 {
1705 err = errnoErr(e1)
1706 }
1707 return
1708}
1709
1710// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
1711
1694func gettimeofday(tp *Timeval) (sec int64, usec int32, err error) { 1712func gettimeofday(tp *Timeval) (sec int64, usec int32, err error) {
1695 r0, r1, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0) 1713 r0, r1, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0)
1696 sec = int64(r0) 1714 sec = int64(r0)
@@ -1738,23 +1756,6 @@ func Fstatfs(fd int, stat *Statfs_t) (err error) {
1738 1756
1739// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 1757// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
1740 1758
1741func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) {
1742 var _p0 unsafe.Pointer
1743 if len(buf) > 0 {
1744 _p0 = unsafe.Pointer(&buf[0])
1745 } else {
1746 _p0 = unsafe.Pointer(&_zero)
1747 }
1748 r0, _, e1 := Syscall6(SYS_GETDIRENTRIES64, uintptr(fd), uintptr(_p0), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 0, 0)
1749 n = int(r0)
1750 if e1 != 0 {
1751 err = errnoErr(e1)
1752 }
1753 return
1754}
1755
1756// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
1757
1758func getfsstat(buf unsafe.Pointer, size uintptr, flags int) (n int, err error) { 1759func getfsstat(buf unsafe.Pointer, size uintptr, flags int) (n int, err error) {
1759 r0, _, e1 := Syscall(SYS_GETFSSTAT64, uintptr(buf), uintptr(size), uintptr(flags)) 1760 r0, _, e1 := Syscall(SYS_GETFSSTAT64, uintptr(buf), uintptr(size), uintptr(flags))
1760 n = int(r0) 1761 n = int(r0)
diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.1_13.go b/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.1_13.go
new file mode 100644
index 0000000..314042a
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.1_13.go
@@ -0,0 +1,41 @@
1// go run mksyscall.go -tags darwin,amd64,go1.13 syscall_darwin.1_13.go
2// Code generated by the command above; see README.md. DO NOT EDIT.
3
4// +build darwin,amd64,go1.13
5
6package unix
7
8import (
9 "syscall"
10 "unsafe"
11)
12
13var _ syscall.Errno
14
15// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
16
17func closedir(dir uintptr) (err error) {
18 _, _, e1 := syscall_syscall(funcPC(libc_closedir_trampoline), uintptr(dir), 0, 0)
19 if e1 != 0 {
20 err = errnoErr(e1)
21 }
22 return
23}
24
25func libc_closedir_trampoline()
26
27//go:linkname libc_closedir libc_closedir
28//go:cgo_import_dynamic libc_closedir closedir "/usr/lib/libSystem.B.dylib"
29
30// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
31
32func readdir_r(dir uintptr, entry *Dirent, result **Dirent) (res Errno) {
33 r0, _, _ := syscall_syscall(funcPC(libc_readdir_r_trampoline), uintptr(dir), uintptr(unsafe.Pointer(entry)), uintptr(unsafe.Pointer(result)))
34 res = Errno(r0)
35 return
36}
37
38func libc_readdir_r_trampoline()
39
40//go:linkname libc_readdir_r libc_readdir_r
41//go:cgo_import_dynamic libc_readdir_r readdir_r "/usr/lib/libSystem.B.dylib"
diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.1_13.s b/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.1_13.s
new file mode 100644
index 0000000..d671e83
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.1_13.s
@@ -0,0 +1,12 @@
1// go run mkasm_darwin.go amd64
2// Code generated by the command above; DO NOT EDIT.
3
4// +build go1.13
5
6#include "textflag.h"
7TEXT ·libc_fdopendir_trampoline(SB),NOSPLIT,$0-0
8 JMP libc_fdopendir(SB)
9TEXT ·libc_closedir_trampoline(SB),NOSPLIT,$0-0
10 JMP libc_closedir(SB)
11TEXT ·libc_readdir_r_trampoline(SB),NOSPLIT,$0-0
12 JMP libc_readdir_r(SB)
diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.go
index 64df03c..50d6437 100644
--- a/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.go
+++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.go
@@ -304,27 +304,6 @@ func libc_kevent_trampoline()
304 304
305// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 305// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
306 306
307func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {
308 var _p0 unsafe.Pointer
309 if len(mib) > 0 {
310 _p0 = unsafe.Pointer(&mib[0])
311 } else {
312 _p0 = unsafe.Pointer(&_zero)
313 }
314 _, _, e1 := syscall_syscall6(funcPC(libc___sysctl_trampoline), uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))
315 if e1 != 0 {
316 err = errnoErr(e1)
317 }
318 return
319}
320
321func libc___sysctl_trampoline()
322
323//go:linkname libc___sysctl libc___sysctl
324//go:cgo_import_dynamic libc___sysctl __sysctl "/usr/lib/libSystem.B.dylib"
325
326// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
327
328func utimes(path string, timeval *[2]Timeval) (err error) { 307func utimes(path string, timeval *[2]Timeval) (err error) {
329 var _p0 *byte 308 var _p0 *byte
330 _p0, err = BytePtrFromString(path) 309 _p0, err = BytePtrFromString(path)
@@ -360,22 +339,6 @@ func libc_futimes_trampoline()
360 339
361// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 340// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
362 341
363func fcntl(fd int, cmd int, arg int) (val int, err error) {
364 r0, _, e1 := syscall_syscall(funcPC(libc_fcntl_trampoline), uintptr(fd), uintptr(cmd), uintptr(arg))
365 val = int(r0)
366 if e1 != 0 {
367 err = errnoErr(e1)
368 }
369 return
370}
371
372func libc_fcntl_trampoline()
373
374//go:linkname libc_fcntl libc_fcntl
375//go:cgo_import_dynamic libc_fcntl fcntl "/usr/lib/libSystem.B.dylib"
376
377// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
378
379func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { 342func poll(fds *PollFd, nfds int, timeout int) (n int, err error) {
380 r0, _, e1 := syscall_syscall(funcPC(libc_poll_trampoline), uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) 343 r0, _, e1 := syscall_syscall(funcPC(libc_poll_trampoline), uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))
381 n = int(r0) 344 n = int(r0)
@@ -748,6 +711,22 @@ func libc_setattrlist_trampoline()
748 711
749// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 712// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
750 713
714func fcntl(fd int, cmd int, arg int) (val int, err error) {
715 r0, _, e1 := syscall_syscall(funcPC(libc_fcntl_trampoline), uintptr(fd), uintptr(cmd), uintptr(arg))
716 val = int(r0)
717 if e1 != 0 {
718 err = errnoErr(e1)
719 }
720 return
721}
722
723func libc_fcntl_trampoline()
724
725//go:linkname libc_fcntl libc_fcntl
726//go:cgo_import_dynamic libc_fcntl fcntl "/usr/lib/libSystem.B.dylib"
727
728// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
729
751func kill(pid int, signum int, posix int) (err error) { 730func kill(pid int, signum int, posix int) (err error) {
752 _, _, e1 := syscall_syscall(funcPC(libc_kill_trampoline), uintptr(pid), uintptr(signum), uintptr(posix)) 731 _, _, e1 := syscall_syscall(funcPC(libc_kill_trampoline), uintptr(pid), uintptr(signum), uintptr(posix))
753 if e1 != 0 { 732 if e1 != 0 {
@@ -778,6 +757,27 @@ func libc_ioctl_trampoline()
778 757
779// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 758// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
780 759
760func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {
761 var _p0 unsafe.Pointer
762 if len(mib) > 0 {
763 _p0 = unsafe.Pointer(&mib[0])
764 } else {
765 _p0 = unsafe.Pointer(&_zero)
766 }
767 _, _, e1 := syscall_syscall6(funcPC(libc_sysctl_trampoline), uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))
768 if e1 != 0 {
769 err = errnoErr(e1)
770 }
771 return
772}
773
774func libc_sysctl_trampoline()
775
776//go:linkname libc_sysctl libc_sysctl
777//go:cgo_import_dynamic libc_sysctl sysctl "/usr/lib/libSystem.B.dylib"
778
779// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
780
781func sendfile(infd int, outfd int, offset int64, len *int64, hdtr unsafe.Pointer, flags int) (err error) { 781func sendfile(infd int, outfd int, offset int64, len *int64, hdtr unsafe.Pointer, flags int) (err error) {
782 _, _, e1 := syscall_syscall6(funcPC(libc_sendfile_trampoline), uintptr(infd), uintptr(outfd), uintptr(offset), uintptr(unsafe.Pointer(len)), uintptr(hdtr), uintptr(flags)) 782 _, _, e1 := syscall_syscall6(funcPC(libc_sendfile_trampoline), uintptr(infd), uintptr(outfd), uintptr(offset), uintptr(unsafe.Pointer(len)), uintptr(hdtr), uintptr(flags))
783 if e1 != 0 { 783 if e1 != 0 {
@@ -1872,8 +1872,9 @@ func libc_lseek_trampoline()
1872 1872
1873// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 1873// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
1874 1874
1875func Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) { 1875func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {
1876 _, _, e1 := syscall_syscall6(funcPC(libc_select_trampoline), uintptr(n), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) 1876 r0, _, e1 := syscall_syscall6(funcPC(libc_select_trampoline), uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)
1877 n = int(r0)
1877 if e1 != 0 { 1878 if e1 != 0 {
1878 err = errnoErr(e1) 1879 err = errnoErr(e1)
1879 } 1880 }
@@ -2423,28 +2424,6 @@ func libc_fstatfs64_trampoline()
2423 2424
2424// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 2425// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
2425 2426
2426func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) {
2427 var _p0 unsafe.Pointer
2428 if len(buf) > 0 {
2429 _p0 = unsafe.Pointer(&buf[0])
2430 } else {
2431 _p0 = unsafe.Pointer(&_zero)
2432 }
2433 r0, _, e1 := syscall_syscall6(funcPC(libc___getdirentries64_trampoline), uintptr(fd), uintptr(_p0), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 0, 0)
2434 n = int(r0)
2435 if e1 != 0 {
2436 err = errnoErr(e1)
2437 }
2438 return
2439}
2440
2441func libc___getdirentries64_trampoline()
2442
2443//go:linkname libc___getdirentries64 libc___getdirentries64
2444//go:cgo_import_dynamic libc___getdirentries64 __getdirentries64 "/usr/lib/libSystem.B.dylib"
2445
2446// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
2447
2448func getfsstat(buf unsafe.Pointer, size uintptr, flags int) (n int, err error) { 2427func getfsstat(buf unsafe.Pointer, size uintptr, flags int) (n int, err error) {
2449 r0, _, e1 := syscall_syscall(funcPC(libc_getfsstat64_trampoline), uintptr(buf), uintptr(size), uintptr(flags)) 2428 r0, _, e1 := syscall_syscall(funcPC(libc_getfsstat64_trampoline), uintptr(buf), uintptr(size), uintptr(flags))
2450 n = int(r0) 2429 n = int(r0)
diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.s b/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.s
index debcb8e..a3fdf09 100644
--- a/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.s
+++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.s
@@ -40,14 +40,10 @@ TEXT ·libc_sendmsg_trampoline(SB),NOSPLIT,$0-0
40 JMP libc_sendmsg(SB) 40 JMP libc_sendmsg(SB)
41TEXT ·libc_kevent_trampoline(SB),NOSPLIT,$0-0 41TEXT ·libc_kevent_trampoline(SB),NOSPLIT,$0-0
42 JMP libc_kevent(SB) 42 JMP libc_kevent(SB)
43TEXT ·libc___sysctl_trampoline(SB),NOSPLIT,$0-0
44 JMP libc___sysctl(SB)
45TEXT ·libc_utimes_trampoline(SB),NOSPLIT,$0-0 43TEXT ·libc_utimes_trampoline(SB),NOSPLIT,$0-0
46 JMP libc_utimes(SB) 44 JMP libc_utimes(SB)
47TEXT ·libc_futimes_trampoline(SB),NOSPLIT,$0-0 45TEXT ·libc_futimes_trampoline(SB),NOSPLIT,$0-0
48 JMP libc_futimes(SB) 46 JMP libc_futimes(SB)
49TEXT ·libc_fcntl_trampoline(SB),NOSPLIT,$0-0
50 JMP libc_fcntl(SB)
51TEXT ·libc_poll_trampoline(SB),NOSPLIT,$0-0 47TEXT ·libc_poll_trampoline(SB),NOSPLIT,$0-0
52 JMP libc_poll(SB) 48 JMP libc_poll(SB)
53TEXT ·libc_madvise_trampoline(SB),NOSPLIT,$0-0 49TEXT ·libc_madvise_trampoline(SB),NOSPLIT,$0-0
@@ -86,10 +82,14 @@ TEXT ·libc_flistxattr_trampoline(SB),NOSPLIT,$0-0
86 JMP libc_flistxattr(SB) 82 JMP libc_flistxattr(SB)
87TEXT ·libc_setattrlist_trampoline(SB),NOSPLIT,$0-0 83TEXT ·libc_setattrlist_trampoline(SB),NOSPLIT,$0-0
88 JMP libc_setattrlist(SB) 84 JMP libc_setattrlist(SB)
85TEXT ·libc_fcntl_trampoline(SB),NOSPLIT,$0-0
86 JMP libc_fcntl(SB)
89TEXT ·libc_kill_trampoline(SB),NOSPLIT,$0-0 87TEXT ·libc_kill_trampoline(SB),NOSPLIT,$0-0
90 JMP libc_kill(SB) 88 JMP libc_kill(SB)
91TEXT ·libc_ioctl_trampoline(SB),NOSPLIT,$0-0 89TEXT ·libc_ioctl_trampoline(SB),NOSPLIT,$0-0
92 JMP libc_ioctl(SB) 90 JMP libc_ioctl(SB)
91TEXT ·libc_sysctl_trampoline(SB),NOSPLIT,$0-0
92 JMP libc_sysctl(SB)
93TEXT ·libc_sendfile_trampoline(SB),NOSPLIT,$0-0 93TEXT ·libc_sendfile_trampoline(SB),NOSPLIT,$0-0
94 JMP libc_sendfile(SB) 94 JMP libc_sendfile(SB)
95TEXT ·libc_access_trampoline(SB),NOSPLIT,$0-0 95TEXT ·libc_access_trampoline(SB),NOSPLIT,$0-0
@@ -274,8 +274,6 @@ TEXT ·libc_fstatat64_trampoline(SB),NOSPLIT,$0-0
274 JMP libc_fstatat64(SB) 274 JMP libc_fstatat64(SB)
275TEXT ·libc_fstatfs64_trampoline(SB),NOSPLIT,$0-0 275TEXT ·libc_fstatfs64_trampoline(SB),NOSPLIT,$0-0
276 JMP libc_fstatfs64(SB) 276 JMP libc_fstatfs64(SB)
277TEXT ·libc___getdirentries64_trampoline(SB),NOSPLIT,$0-0
278 JMP libc___getdirentries64(SB)
279TEXT ·libc_getfsstat64_trampoline(SB),NOSPLIT,$0-0 277TEXT ·libc_getfsstat64_trampoline(SB),NOSPLIT,$0-0
280 JMP libc_getfsstat64(SB) 278 JMP libc_getfsstat64(SB)
281TEXT ·libc_lstat64_trampoline(SB),NOSPLIT,$0-0 279TEXT ·libc_lstat64_trampoline(SB),NOSPLIT,$0-0
diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.1_11.go b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.1_11.go
index f8caece..cea04e0 100644
--- a/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.1_11.go
+++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.1_11.go
@@ -1,4 +1,4 @@
1// go run mksyscall.go -l32 -tags darwin,arm,!go1.12 syscall_bsd.go syscall_darwin.go syscall_darwin_arm.go 1// go run mksyscall.go -l32 -tags darwin,arm,!go1.12 syscall_bsd.go syscall_darwin.go syscall_darwin_arm.1_11.go syscall_darwin_arm.go
2// Code generated by the command above; see README.md. DO NOT EDIT. 2// Code generated by the command above; see README.md. DO NOT EDIT.
3 3
4// +build darwin,arm,!go1.12 4// +build darwin,arm,!go1.12
@@ -214,22 +214,6 @@ func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, ne
214 214
215// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 215// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
216 216
217func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {
218 var _p0 unsafe.Pointer
219 if len(mib) > 0 {
220 _p0 = unsafe.Pointer(&mib[0])
221 } else {
222 _p0 = unsafe.Pointer(&_zero)
223 }
224 _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))
225 if e1 != 0 {
226 err = errnoErr(e1)
227 }
228 return
229}
230
231// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
232
233func utimes(path string, timeval *[2]Timeval) (err error) { 217func utimes(path string, timeval *[2]Timeval) (err error) {
234 var _p0 *byte 218 var _p0 *byte
235 _p0, err = BytePtrFromString(path) 219 _p0, err = BytePtrFromString(path)
@@ -255,17 +239,6 @@ func futimes(fd int, timeval *[2]Timeval) (err error) {
255 239
256// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 240// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
257 241
258func fcntl(fd int, cmd int, arg int) (val int, err error) {
259 r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg))
260 val = int(r0)
261 if e1 != 0 {
262 err = errnoErr(e1)
263 }
264 return
265}
266
267// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
268
269func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { 242func poll(fds *PollFd, nfds int, timeout int) (n int, err error) {
270 r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) 243 r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))
271 n = int(r0) 244 n = int(r0)
@@ -377,16 +350,6 @@ func Munlockall() (err error) {
377 350
378// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 351// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
379 352
380func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) {
381 _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0)
382 if e1 != 0 {
383 err = errnoErr(e1)
384 }
385 return
386}
387
388// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
389
390func getattrlist(path *byte, list unsafe.Pointer, buf unsafe.Pointer, size uintptr, options int) (err error) { 353func getattrlist(path *byte, list unsafe.Pointer, buf unsafe.Pointer, size uintptr, options int) (err error) {
391 _, _, e1 := Syscall6(SYS_GETATTRLIST, uintptr(unsafe.Pointer(path)), uintptr(list), uintptr(buf), uintptr(size), uintptr(options), 0) 354 _, _, e1 := Syscall6(SYS_GETATTRLIST, uintptr(unsafe.Pointer(path)), uintptr(list), uintptr(buf), uintptr(size), uintptr(options), 0)
392 if e1 != 0 { 355 if e1 != 0 {
@@ -553,6 +516,17 @@ func setattrlist(path *byte, list unsafe.Pointer, buf unsafe.Pointer, size uintp
553 516
554// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 517// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
555 518
519func fcntl(fd int, cmd int, arg int) (val int, err error) {
520 r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg))
521 val = int(r0)
522 if e1 != 0 {
523 err = errnoErr(e1)
524 }
525 return
526}
527
528// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
529
556func kill(pid int, signum int, posix int) (err error) { 530func kill(pid int, signum int, posix int) (err error) {
557 _, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), uintptr(posix)) 531 _, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), uintptr(posix))
558 if e1 != 0 { 532 if e1 != 0 {
@@ -573,6 +547,22 @@ func ioctl(fd int, req uint, arg uintptr) (err error) {
573 547
574// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 548// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
575 549
550func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {
551 var _p0 unsafe.Pointer
552 if len(mib) > 0 {
553 _p0 = unsafe.Pointer(&mib[0])
554 } else {
555 _p0 = unsafe.Pointer(&_zero)
556 }
557 _, _, e1 := Syscall6(SYS_SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))
558 if e1 != 0 {
559 err = errnoErr(e1)
560 }
561 return
562}
563
564// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
565
576func sendfile(infd int, outfd int, offset int64, len *int64, hdtr unsafe.Pointer, flags int) (err error) { 566func sendfile(infd int, outfd int, offset int64, len *int64, hdtr unsafe.Pointer, flags int) (err error) {
577 _, _, e1 := Syscall9(SYS_SENDFILE, uintptr(infd), uintptr(outfd), uintptr(offset), uintptr(offset>>32), uintptr(unsafe.Pointer(len)), uintptr(hdtr), uintptr(flags), 0, 0) 567 _, _, e1 := Syscall9(SYS_SENDFILE, uintptr(infd), uintptr(outfd), uintptr(offset), uintptr(offset>>32), uintptr(unsafe.Pointer(len)), uintptr(hdtr), uintptr(flags), 0, 0)
578 if e1 != 0 { 568 if e1 != 0 {
@@ -1352,8 +1342,9 @@ func Seek(fd int, offset int64, whence int) (newoffset int64, err error) {
1352 1342
1353// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 1343// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
1354 1344
1355func Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) { 1345func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {
1356 _, _, e1 := Syscall6(SYS_SELECT, uintptr(n), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) 1346 r0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)
1347 n = int(r0)
1357 if e1 != 0 { 1348 if e1 != 0 {
1358 err = errnoErr(e1) 1349 err = errnoErr(e1)
1359 } 1350 }
diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.1_13.go b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.1_13.go
new file mode 100644
index 0000000..f519ce9
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.1_13.go
@@ -0,0 +1,41 @@
1// go run mksyscall.go -l32 -tags darwin,arm,go1.13 syscall_darwin.1_13.go
2// Code generated by the command above; see README.md. DO NOT EDIT.
3
4// +build darwin,arm,go1.13
5
6package unix
7
8import (
9 "syscall"
10 "unsafe"
11)
12
13var _ syscall.Errno
14
15// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
16
17func closedir(dir uintptr) (err error) {
18 _, _, e1 := syscall_syscall(funcPC(libc_closedir_trampoline), uintptr(dir), 0, 0)
19 if e1 != 0 {
20 err = errnoErr(e1)
21 }
22 return
23}
24
25func libc_closedir_trampoline()
26
27//go:linkname libc_closedir libc_closedir
28//go:cgo_import_dynamic libc_closedir closedir "/usr/lib/libSystem.B.dylib"
29
30// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
31
32func readdir_r(dir uintptr, entry *Dirent, result **Dirent) (res Errno) {
33 r0, _, _ := syscall_syscall(funcPC(libc_readdir_r_trampoline), uintptr(dir), uintptr(unsafe.Pointer(entry)), uintptr(unsafe.Pointer(result)))
34 res = Errno(r0)
35 return
36}
37
38func libc_readdir_r_trampoline()
39
40//go:linkname libc_readdir_r libc_readdir_r
41//go:cgo_import_dynamic libc_readdir_r readdir_r "/usr/lib/libSystem.B.dylib"
diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.1_13.s b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.1_13.s
new file mode 100644
index 0000000..488e557
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.1_13.s
@@ -0,0 +1,12 @@
1// go run mkasm_darwin.go arm
2// Code generated by the command above; DO NOT EDIT.
3
4// +build go1.13
5
6#include "textflag.h"
7TEXT ·libc_fdopendir_trampoline(SB),NOSPLIT,$0-0
8 JMP libc_fdopendir(SB)
9TEXT ·libc_closedir_trampoline(SB),NOSPLIT,$0-0
10 JMP libc_closedir(SB)
11TEXT ·libc_readdir_r_trampoline(SB),NOSPLIT,$0-0
12 JMP libc_readdir_r(SB)
diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.go b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.go
index ed33062..6310395 100644
--- a/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.go
+++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.go
@@ -304,27 +304,6 @@ func libc_kevent_trampoline()
304 304
305// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 305// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
306 306
307func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {
308 var _p0 unsafe.Pointer
309 if len(mib) > 0 {
310 _p0 = unsafe.Pointer(&mib[0])
311 } else {
312 _p0 = unsafe.Pointer(&_zero)
313 }
314 _, _, e1 := syscall_syscall6(funcPC(libc___sysctl_trampoline), uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))
315 if e1 != 0 {
316 err = errnoErr(e1)
317 }
318 return
319}
320
321func libc___sysctl_trampoline()
322
323//go:linkname libc___sysctl libc___sysctl
324//go:cgo_import_dynamic libc___sysctl __sysctl "/usr/lib/libSystem.B.dylib"
325
326// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
327
328func utimes(path string, timeval *[2]Timeval) (err error) { 307func utimes(path string, timeval *[2]Timeval) (err error) {
329 var _p0 *byte 308 var _p0 *byte
330 _p0, err = BytePtrFromString(path) 309 _p0, err = BytePtrFromString(path)
@@ -360,22 +339,6 @@ func libc_futimes_trampoline()
360 339
361// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 340// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
362 341
363func fcntl(fd int, cmd int, arg int) (val int, err error) {
364 r0, _, e1 := syscall_syscall(funcPC(libc_fcntl_trampoline), uintptr(fd), uintptr(cmd), uintptr(arg))
365 val = int(r0)
366 if e1 != 0 {
367 err = errnoErr(e1)
368 }
369 return
370}
371
372func libc_fcntl_trampoline()
373
374//go:linkname libc_fcntl libc_fcntl
375//go:cgo_import_dynamic libc_fcntl fcntl "/usr/lib/libSystem.B.dylib"
376
377// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
378
379func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { 342func poll(fds *PollFd, nfds int, timeout int) (n int, err error) {
380 r0, _, e1 := syscall_syscall(funcPC(libc_poll_trampoline), uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) 343 r0, _, e1 := syscall_syscall(funcPC(libc_poll_trampoline), uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))
381 n = int(r0) 344 n = int(r0)
@@ -748,6 +711,22 @@ func libc_setattrlist_trampoline()
748 711
749// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 712// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
750 713
714func fcntl(fd int, cmd int, arg int) (val int, err error) {
715 r0, _, e1 := syscall_syscall(funcPC(libc_fcntl_trampoline), uintptr(fd), uintptr(cmd), uintptr(arg))
716 val = int(r0)
717 if e1 != 0 {
718 err = errnoErr(e1)
719 }
720 return
721}
722
723func libc_fcntl_trampoline()
724
725//go:linkname libc_fcntl libc_fcntl
726//go:cgo_import_dynamic libc_fcntl fcntl "/usr/lib/libSystem.B.dylib"
727
728// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
729
751func kill(pid int, signum int, posix int) (err error) { 730func kill(pid int, signum int, posix int) (err error) {
752 _, _, e1 := syscall_syscall(funcPC(libc_kill_trampoline), uintptr(pid), uintptr(signum), uintptr(posix)) 731 _, _, e1 := syscall_syscall(funcPC(libc_kill_trampoline), uintptr(pid), uintptr(signum), uintptr(posix))
753 if e1 != 0 { 732 if e1 != 0 {
@@ -778,6 +757,27 @@ func libc_ioctl_trampoline()
778 757
779// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 758// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
780 759
760func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {
761 var _p0 unsafe.Pointer
762 if len(mib) > 0 {
763 _p0 = unsafe.Pointer(&mib[0])
764 } else {
765 _p0 = unsafe.Pointer(&_zero)
766 }
767 _, _, e1 := syscall_syscall6(funcPC(libc_sysctl_trampoline), uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))
768 if e1 != 0 {
769 err = errnoErr(e1)
770 }
771 return
772}
773
774func libc_sysctl_trampoline()
775
776//go:linkname libc_sysctl libc_sysctl
777//go:cgo_import_dynamic libc_sysctl sysctl "/usr/lib/libSystem.B.dylib"
778
779// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
780
781func sendfile(infd int, outfd int, offset int64, len *int64, hdtr unsafe.Pointer, flags int) (err error) { 781func sendfile(infd int, outfd int, offset int64, len *int64, hdtr unsafe.Pointer, flags int) (err error) {
782 _, _, e1 := syscall_syscall9(funcPC(libc_sendfile_trampoline), uintptr(infd), uintptr(outfd), uintptr(offset), uintptr(offset>>32), uintptr(unsafe.Pointer(len)), uintptr(hdtr), uintptr(flags), 0, 0) 782 _, _, e1 := syscall_syscall9(funcPC(libc_sendfile_trampoline), uintptr(infd), uintptr(outfd), uintptr(offset), uintptr(offset>>32), uintptr(unsafe.Pointer(len)), uintptr(hdtr), uintptr(flags), 0, 0)
783 if e1 != 0 { 783 if e1 != 0 {
@@ -928,6 +928,21 @@ func libc_chroot_trampoline()
928 928
929// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 929// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
930 930
931func ClockGettime(clockid int32, time *Timespec) (err error) {
932 _, _, e1 := syscall_syscall(funcPC(libc_clock_gettime_trampoline), uintptr(clockid), uintptr(unsafe.Pointer(time)), 0)
933 if e1 != 0 {
934 err = errnoErr(e1)
935 }
936 return
937}
938
939func libc_clock_gettime_trampoline()
940
941//go:linkname libc_clock_gettime libc_clock_gettime
942//go:cgo_import_dynamic libc_clock_gettime clock_gettime "/usr/lib/libSystem.B.dylib"
943
944// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
945
931func Close(fd int) (err error) { 946func Close(fd int) (err error) {
932 _, _, e1 := syscall_syscall(funcPC(libc_close_trampoline), uintptr(fd), 0, 0) 947 _, _, e1 := syscall_syscall(funcPC(libc_close_trampoline), uintptr(fd), 0, 0)
933 if e1 != 0 { 948 if e1 != 0 {
@@ -1857,8 +1872,9 @@ func libc_lseek_trampoline()
1857 1872
1858// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 1873// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
1859 1874
1860func Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) { 1875func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {
1861 _, _, e1 := syscall_syscall6(funcPC(libc_select_trampoline), uintptr(n), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) 1876 r0, _, e1 := syscall_syscall6(funcPC(libc_select_trampoline), uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)
1877 n = int(r0)
1862 if e1 != 0 { 1878 if e1 != 0 {
1863 err = errnoErr(e1) 1879 err = errnoErr(e1)
1864 } 1880 }
diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.s b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.s
index 66af9f4..b67f518 100644
--- a/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.s
+++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.s
@@ -40,14 +40,10 @@ TEXT ·libc_sendmsg_trampoline(SB),NOSPLIT,$0-0
40 JMP libc_sendmsg(SB) 40 JMP libc_sendmsg(SB)
41TEXT ·libc_kevent_trampoline(SB),NOSPLIT,$0-0 41TEXT ·libc_kevent_trampoline(SB),NOSPLIT,$0-0
42 JMP libc_kevent(SB) 42 JMP libc_kevent(SB)
43TEXT ·libc___sysctl_trampoline(SB),NOSPLIT,$0-0
44 JMP libc___sysctl(SB)
45TEXT ·libc_utimes_trampoline(SB),NOSPLIT,$0-0 43TEXT ·libc_utimes_trampoline(SB),NOSPLIT,$0-0
46 JMP libc_utimes(SB) 44 JMP libc_utimes(SB)
47TEXT ·libc_futimes_trampoline(SB),NOSPLIT,$0-0 45TEXT ·libc_futimes_trampoline(SB),NOSPLIT,$0-0
48 JMP libc_futimes(SB) 46 JMP libc_futimes(SB)
49TEXT ·libc_fcntl_trampoline(SB),NOSPLIT,$0-0
50 JMP libc_fcntl(SB)
51TEXT ·libc_poll_trampoline(SB),NOSPLIT,$0-0 47TEXT ·libc_poll_trampoline(SB),NOSPLIT,$0-0
52 JMP libc_poll(SB) 48 JMP libc_poll(SB)
53TEXT ·libc_madvise_trampoline(SB),NOSPLIT,$0-0 49TEXT ·libc_madvise_trampoline(SB),NOSPLIT,$0-0
@@ -86,10 +82,14 @@ TEXT ·libc_flistxattr_trampoline(SB),NOSPLIT,$0-0
86 JMP libc_flistxattr(SB) 82 JMP libc_flistxattr(SB)
87TEXT ·libc_setattrlist_trampoline(SB),NOSPLIT,$0-0 83TEXT ·libc_setattrlist_trampoline(SB),NOSPLIT,$0-0
88 JMP libc_setattrlist(SB) 84 JMP libc_setattrlist(SB)
85TEXT ·libc_fcntl_trampoline(SB),NOSPLIT,$0-0
86 JMP libc_fcntl(SB)
89TEXT ·libc_kill_trampoline(SB),NOSPLIT,$0-0 87TEXT ·libc_kill_trampoline(SB),NOSPLIT,$0-0
90 JMP libc_kill(SB) 88 JMP libc_kill(SB)
91TEXT ·libc_ioctl_trampoline(SB),NOSPLIT,$0-0 89TEXT ·libc_ioctl_trampoline(SB),NOSPLIT,$0-0
92 JMP libc_ioctl(SB) 90 JMP libc_ioctl(SB)
91TEXT ·libc_sysctl_trampoline(SB),NOSPLIT,$0-0
92 JMP libc_sysctl(SB)
93TEXT ·libc_sendfile_trampoline(SB),NOSPLIT,$0-0 93TEXT ·libc_sendfile_trampoline(SB),NOSPLIT,$0-0
94 JMP libc_sendfile(SB) 94 JMP libc_sendfile(SB)
95TEXT ·libc_access_trampoline(SB),NOSPLIT,$0-0 95TEXT ·libc_access_trampoline(SB),NOSPLIT,$0-0
@@ -106,6 +106,8 @@ TEXT ·libc_chown_trampoline(SB),NOSPLIT,$0-0
106 JMP libc_chown(SB) 106 JMP libc_chown(SB)
107TEXT ·libc_chroot_trampoline(SB),NOSPLIT,$0-0 107TEXT ·libc_chroot_trampoline(SB),NOSPLIT,$0-0
108 JMP libc_chroot(SB) 108 JMP libc_chroot(SB)
109TEXT ·libc_clock_gettime_trampoline(SB),NOSPLIT,$0-0
110 JMP libc_clock_gettime(SB)
109TEXT ·libc_close_trampoline(SB),NOSPLIT,$0-0 111TEXT ·libc_close_trampoline(SB),NOSPLIT,$0-0
110 JMP libc_close(SB) 112 JMP libc_close(SB)
111TEXT ·libc_dup_trampoline(SB),NOSPLIT,$0-0 113TEXT ·libc_dup_trampoline(SB),NOSPLIT,$0-0
diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.1_11.go b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.1_11.go
index 3fd0f3c..8c3bb3a 100644
--- a/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.1_11.go
+++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.1_11.go
@@ -1,4 +1,4 @@
1// go run mksyscall.go -tags darwin,arm64,!go1.12 syscall_bsd.go syscall_darwin.go syscall_darwin_arm64.go 1// go run mksyscall.go -tags darwin,arm64,!go1.12 syscall_bsd.go syscall_darwin.go syscall_darwin_arm64.1_11.go syscall_darwin_arm64.go
2// Code generated by the command above; see README.md. DO NOT EDIT. 2// Code generated by the command above; see README.md. DO NOT EDIT.
3 3
4// +build darwin,arm64,!go1.12 4// +build darwin,arm64,!go1.12
@@ -214,22 +214,6 @@ func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, ne
214 214
215// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 215// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
216 216
217func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {
218 var _p0 unsafe.Pointer
219 if len(mib) > 0 {
220 _p0 = unsafe.Pointer(&mib[0])
221 } else {
222 _p0 = unsafe.Pointer(&_zero)
223 }
224 _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))
225 if e1 != 0 {
226 err = errnoErr(e1)
227 }
228 return
229}
230
231// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
232
233func utimes(path string, timeval *[2]Timeval) (err error) { 217func utimes(path string, timeval *[2]Timeval) (err error) {
234 var _p0 *byte 218 var _p0 *byte
235 _p0, err = BytePtrFromString(path) 219 _p0, err = BytePtrFromString(path)
@@ -255,17 +239,6 @@ func futimes(fd int, timeval *[2]Timeval) (err error) {
255 239
256// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 240// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
257 241
258func fcntl(fd int, cmd int, arg int) (val int, err error) {
259 r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg))
260 val = int(r0)
261 if e1 != 0 {
262 err = errnoErr(e1)
263 }
264 return
265}
266
267// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
268
269func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { 242func poll(fds *PollFd, nfds int, timeout int) (n int, err error) {
270 r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) 243 r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))
271 n = int(r0) 244 n = int(r0)
@@ -377,16 +350,6 @@ func Munlockall() (err error) {
377 350
378// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 351// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
379 352
380func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) {
381 _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0)
382 if e1 != 0 {
383 err = errnoErr(e1)
384 }
385 return
386}
387
388// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
389
390func getattrlist(path *byte, list unsafe.Pointer, buf unsafe.Pointer, size uintptr, options int) (err error) { 353func getattrlist(path *byte, list unsafe.Pointer, buf unsafe.Pointer, size uintptr, options int) (err error) {
391 _, _, e1 := Syscall6(SYS_GETATTRLIST, uintptr(unsafe.Pointer(path)), uintptr(list), uintptr(buf), uintptr(size), uintptr(options), 0) 354 _, _, e1 := Syscall6(SYS_GETATTRLIST, uintptr(unsafe.Pointer(path)), uintptr(list), uintptr(buf), uintptr(size), uintptr(options), 0)
392 if e1 != 0 { 355 if e1 != 0 {
@@ -553,6 +516,17 @@ func setattrlist(path *byte, list unsafe.Pointer, buf unsafe.Pointer, size uintp
553 516
554// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 517// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
555 518
519func fcntl(fd int, cmd int, arg int) (val int, err error) {
520 r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg))
521 val = int(r0)
522 if e1 != 0 {
523 err = errnoErr(e1)
524 }
525 return
526}
527
528// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
529
556func kill(pid int, signum int, posix int) (err error) { 530func kill(pid int, signum int, posix int) (err error) {
557 _, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), uintptr(posix)) 531 _, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), uintptr(posix))
558 if e1 != 0 { 532 if e1 != 0 {
@@ -573,6 +547,22 @@ func ioctl(fd int, req uint, arg uintptr) (err error) {
573 547
574// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 548// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
575 549
550func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {
551 var _p0 unsafe.Pointer
552 if len(mib) > 0 {
553 _p0 = unsafe.Pointer(&mib[0])
554 } else {
555 _p0 = unsafe.Pointer(&_zero)
556 }
557 _, _, e1 := Syscall6(SYS_SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))
558 if e1 != 0 {
559 err = errnoErr(e1)
560 }
561 return
562}
563
564// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
565
576func sendfile(infd int, outfd int, offset int64, len *int64, hdtr unsafe.Pointer, flags int) (err error) { 566func sendfile(infd int, outfd int, offset int64, len *int64, hdtr unsafe.Pointer, flags int) (err error) {
577 _, _, e1 := Syscall6(SYS_SENDFILE, uintptr(infd), uintptr(outfd), uintptr(offset), uintptr(unsafe.Pointer(len)), uintptr(hdtr), uintptr(flags)) 567 _, _, e1 := Syscall6(SYS_SENDFILE, uintptr(infd), uintptr(outfd), uintptr(offset), uintptr(unsafe.Pointer(len)), uintptr(hdtr), uintptr(flags))
578 if e1 != 0 { 568 if e1 != 0 {
@@ -1352,8 +1342,9 @@ func Seek(fd int, offset int64, whence int) (newoffset int64, err error) {
1352 1342
1353// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 1343// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
1354 1344
1355func Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) { 1345func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {
1356 _, _, e1 := Syscall6(SYS_SELECT, uintptr(n), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) 1346 r0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)
1347 n = int(r0)
1357 if e1 != 0 { 1348 if e1 != 0 {
1358 err = errnoErr(e1) 1349 err = errnoErr(e1)
1359 } 1350 }
diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.1_13.go b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.1_13.go
new file mode 100644
index 0000000..d64e6c8
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.1_13.go
@@ -0,0 +1,41 @@
1// go run mksyscall.go -tags darwin,arm64,go1.13 syscall_darwin.1_13.go
2// Code generated by the command above; see README.md. DO NOT EDIT.
3
4// +build darwin,arm64,go1.13
5
6package unix
7
8import (
9 "syscall"
10 "unsafe"
11)
12
13var _ syscall.Errno
14
15// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
16
17func closedir(dir uintptr) (err error) {
18 _, _, e1 := syscall_syscall(funcPC(libc_closedir_trampoline), uintptr(dir), 0, 0)
19 if e1 != 0 {
20 err = errnoErr(e1)
21 }
22 return
23}
24
25func libc_closedir_trampoline()
26
27//go:linkname libc_closedir libc_closedir
28//go:cgo_import_dynamic libc_closedir closedir "/usr/lib/libSystem.B.dylib"
29
30// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
31
32func readdir_r(dir uintptr, entry *Dirent, result **Dirent) (res Errno) {
33 r0, _, _ := syscall_syscall(funcPC(libc_readdir_r_trampoline), uintptr(dir), uintptr(unsafe.Pointer(entry)), uintptr(unsafe.Pointer(result)))
34 res = Errno(r0)
35 return
36}
37
38func libc_readdir_r_trampoline()
39
40//go:linkname libc_readdir_r libc_readdir_r
41//go:cgo_import_dynamic libc_readdir_r readdir_r "/usr/lib/libSystem.B.dylib"
diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.1_13.s b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.1_13.s
new file mode 100644
index 0000000..b29dabb
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.1_13.s
@@ -0,0 +1,12 @@
1// go run mkasm_darwin.go arm64
2// Code generated by the command above; DO NOT EDIT.
3
4// +build go1.13
5
6#include "textflag.h"
7TEXT ·libc_fdopendir_trampoline(SB),NOSPLIT,$0-0
8 JMP libc_fdopendir(SB)
9TEXT ·libc_closedir_trampoline(SB),NOSPLIT,$0-0
10 JMP libc_closedir(SB)
11TEXT ·libc_readdir_r_trampoline(SB),NOSPLIT,$0-0
12 JMP libc_readdir_r(SB)
diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.go b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.go
index 5258a73..a8709f7 100644
--- a/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.go
+++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.go
@@ -304,27 +304,6 @@ func libc_kevent_trampoline()
304 304
305// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 305// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
306 306
307func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {
308 var _p0 unsafe.Pointer
309 if len(mib) > 0 {
310 _p0 = unsafe.Pointer(&mib[0])
311 } else {
312 _p0 = unsafe.Pointer(&_zero)
313 }
314 _, _, e1 := syscall_syscall6(funcPC(libc___sysctl_trampoline), uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))
315 if e1 != 0 {
316 err = errnoErr(e1)
317 }
318 return
319}
320
321func libc___sysctl_trampoline()
322
323//go:linkname libc___sysctl libc___sysctl
324//go:cgo_import_dynamic libc___sysctl __sysctl "/usr/lib/libSystem.B.dylib"
325
326// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
327
328func utimes(path string, timeval *[2]Timeval) (err error) { 307func utimes(path string, timeval *[2]Timeval) (err error) {
329 var _p0 *byte 308 var _p0 *byte
330 _p0, err = BytePtrFromString(path) 309 _p0, err = BytePtrFromString(path)
@@ -360,22 +339,6 @@ func libc_futimes_trampoline()
360 339
361// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 340// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
362 341
363func fcntl(fd int, cmd int, arg int) (val int, err error) {
364 r0, _, e1 := syscall_syscall(funcPC(libc_fcntl_trampoline), uintptr(fd), uintptr(cmd), uintptr(arg))
365 val = int(r0)
366 if e1 != 0 {
367 err = errnoErr(e1)
368 }
369 return
370}
371
372func libc_fcntl_trampoline()
373
374//go:linkname libc_fcntl libc_fcntl
375//go:cgo_import_dynamic libc_fcntl fcntl "/usr/lib/libSystem.B.dylib"
376
377// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
378
379func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { 342func poll(fds *PollFd, nfds int, timeout int) (n int, err error) {
380 r0, _, e1 := syscall_syscall(funcPC(libc_poll_trampoline), uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) 343 r0, _, e1 := syscall_syscall(funcPC(libc_poll_trampoline), uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))
381 n = int(r0) 344 n = int(r0)
@@ -748,6 +711,22 @@ func libc_setattrlist_trampoline()
748 711
749// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 712// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
750 713
714func fcntl(fd int, cmd int, arg int) (val int, err error) {
715 r0, _, e1 := syscall_syscall(funcPC(libc_fcntl_trampoline), uintptr(fd), uintptr(cmd), uintptr(arg))
716 val = int(r0)
717 if e1 != 0 {
718 err = errnoErr(e1)
719 }
720 return
721}
722
723func libc_fcntl_trampoline()
724
725//go:linkname libc_fcntl libc_fcntl
726//go:cgo_import_dynamic libc_fcntl fcntl "/usr/lib/libSystem.B.dylib"
727
728// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
729
751func kill(pid int, signum int, posix int) (err error) { 730func kill(pid int, signum int, posix int) (err error) {
752 _, _, e1 := syscall_syscall(funcPC(libc_kill_trampoline), uintptr(pid), uintptr(signum), uintptr(posix)) 731 _, _, e1 := syscall_syscall(funcPC(libc_kill_trampoline), uintptr(pid), uintptr(signum), uintptr(posix))
753 if e1 != 0 { 732 if e1 != 0 {
@@ -778,6 +757,27 @@ func libc_ioctl_trampoline()
778 757
779// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 758// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
780 759
760func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {
761 var _p0 unsafe.Pointer
762 if len(mib) > 0 {
763 _p0 = unsafe.Pointer(&mib[0])
764 } else {
765 _p0 = unsafe.Pointer(&_zero)
766 }
767 _, _, e1 := syscall_syscall6(funcPC(libc_sysctl_trampoline), uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))
768 if e1 != 0 {
769 err = errnoErr(e1)
770 }
771 return
772}
773
774func libc_sysctl_trampoline()
775
776//go:linkname libc_sysctl libc_sysctl
777//go:cgo_import_dynamic libc_sysctl sysctl "/usr/lib/libSystem.B.dylib"
778
779// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
780
781func sendfile(infd int, outfd int, offset int64, len *int64, hdtr unsafe.Pointer, flags int) (err error) { 781func sendfile(infd int, outfd int, offset int64, len *int64, hdtr unsafe.Pointer, flags int) (err error) {
782 _, _, e1 := syscall_syscall6(funcPC(libc_sendfile_trampoline), uintptr(infd), uintptr(outfd), uintptr(offset), uintptr(unsafe.Pointer(len)), uintptr(hdtr), uintptr(flags)) 782 _, _, e1 := syscall_syscall6(funcPC(libc_sendfile_trampoline), uintptr(infd), uintptr(outfd), uintptr(offset), uintptr(unsafe.Pointer(len)), uintptr(hdtr), uintptr(flags))
783 if e1 != 0 { 783 if e1 != 0 {
@@ -928,6 +928,21 @@ func libc_chroot_trampoline()
928 928
929// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 929// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
930 930
931func ClockGettime(clockid int32, time *Timespec) (err error) {
932 _, _, e1 := syscall_syscall(funcPC(libc_clock_gettime_trampoline), uintptr(clockid), uintptr(unsafe.Pointer(time)), 0)
933 if e1 != 0 {
934 err = errnoErr(e1)
935 }
936 return
937}
938
939func libc_clock_gettime_trampoline()
940
941//go:linkname libc_clock_gettime libc_clock_gettime
942//go:cgo_import_dynamic libc_clock_gettime clock_gettime "/usr/lib/libSystem.B.dylib"
943
944// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
945
931func Close(fd int) (err error) { 946func Close(fd int) (err error) {
932 _, _, e1 := syscall_syscall(funcPC(libc_close_trampoline), uintptr(fd), 0, 0) 947 _, _, e1 := syscall_syscall(funcPC(libc_close_trampoline), uintptr(fd), 0, 0)
933 if e1 != 0 { 948 if e1 != 0 {
@@ -1857,8 +1872,9 @@ func libc_lseek_trampoline()
1857 1872
1858// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 1873// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
1859 1874
1860func Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) { 1875func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {
1861 _, _, e1 := syscall_syscall6(funcPC(libc_select_trampoline), uintptr(n), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) 1876 r0, _, e1 := syscall_syscall6(funcPC(libc_select_trampoline), uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)
1877 n = int(r0)
1862 if e1 != 0 { 1878 if e1 != 0 {
1863 err = errnoErr(e1) 1879 err = errnoErr(e1)
1864 } 1880 }
diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.s b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.s
index f57f48f..40cce1b 100644
--- a/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.s
+++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.s
@@ -40,14 +40,10 @@ TEXT ·libc_sendmsg_trampoline(SB),NOSPLIT,$0-0
40 JMP libc_sendmsg(SB) 40 JMP libc_sendmsg(SB)
41TEXT ·libc_kevent_trampoline(SB),NOSPLIT,$0-0 41TEXT ·libc_kevent_trampoline(SB),NOSPLIT,$0-0
42 JMP libc_kevent(SB) 42 JMP libc_kevent(SB)
43TEXT ·libc___sysctl_trampoline(SB),NOSPLIT,$0-0
44 JMP libc___sysctl(SB)
45TEXT ·libc_utimes_trampoline(SB),NOSPLIT,$0-0 43TEXT ·libc_utimes_trampoline(SB),NOSPLIT,$0-0
46 JMP libc_utimes(SB) 44 JMP libc_utimes(SB)
47TEXT ·libc_futimes_trampoline(SB),NOSPLIT,$0-0 45TEXT ·libc_futimes_trampoline(SB),NOSPLIT,$0-0
48 JMP libc_futimes(SB) 46 JMP libc_futimes(SB)
49TEXT ·libc_fcntl_trampoline(SB),NOSPLIT,$0-0
50 JMP libc_fcntl(SB)
51TEXT ·libc_poll_trampoline(SB),NOSPLIT,$0-0 47TEXT ·libc_poll_trampoline(SB),NOSPLIT,$0-0
52 JMP libc_poll(SB) 48 JMP libc_poll(SB)
53TEXT ·libc_madvise_trampoline(SB),NOSPLIT,$0-0 49TEXT ·libc_madvise_trampoline(SB),NOSPLIT,$0-0
@@ -86,10 +82,14 @@ TEXT ·libc_flistxattr_trampoline(SB),NOSPLIT,$0-0
86 JMP libc_flistxattr(SB) 82 JMP libc_flistxattr(SB)
87TEXT ·libc_setattrlist_trampoline(SB),NOSPLIT,$0-0 83TEXT ·libc_setattrlist_trampoline(SB),NOSPLIT,$0-0
88 JMP libc_setattrlist(SB) 84 JMP libc_setattrlist(SB)
85TEXT ·libc_fcntl_trampoline(SB),NOSPLIT,$0-0
86 JMP libc_fcntl(SB)
89TEXT ·libc_kill_trampoline(SB),NOSPLIT,$0-0 87TEXT ·libc_kill_trampoline(SB),NOSPLIT,$0-0
90 JMP libc_kill(SB) 88 JMP libc_kill(SB)
91TEXT ·libc_ioctl_trampoline(SB),NOSPLIT,$0-0 89TEXT ·libc_ioctl_trampoline(SB),NOSPLIT,$0-0
92 JMP libc_ioctl(SB) 90 JMP libc_ioctl(SB)
91TEXT ·libc_sysctl_trampoline(SB),NOSPLIT,$0-0
92 JMP libc_sysctl(SB)
93TEXT ·libc_sendfile_trampoline(SB),NOSPLIT,$0-0 93TEXT ·libc_sendfile_trampoline(SB),NOSPLIT,$0-0
94 JMP libc_sendfile(SB) 94 JMP libc_sendfile(SB)
95TEXT ·libc_access_trampoline(SB),NOSPLIT,$0-0 95TEXT ·libc_access_trampoline(SB),NOSPLIT,$0-0
@@ -106,6 +106,8 @@ TEXT ·libc_chown_trampoline(SB),NOSPLIT,$0-0
106 JMP libc_chown(SB) 106 JMP libc_chown(SB)
107TEXT ·libc_chroot_trampoline(SB),NOSPLIT,$0-0 107TEXT ·libc_chroot_trampoline(SB),NOSPLIT,$0-0
108 JMP libc_chroot(SB) 108 JMP libc_chroot(SB)
109TEXT ·libc_clock_gettime_trampoline(SB),NOSPLIT,$0-0
110 JMP libc_clock_gettime(SB)
109TEXT ·libc_close_trampoline(SB),NOSPLIT,$0-0 111TEXT ·libc_close_trampoline(SB),NOSPLIT,$0-0
110 JMP libc_close(SB) 112 JMP libc_close(SB)
111TEXT ·libc_dup_trampoline(SB),NOSPLIT,$0-0 113TEXT ·libc_dup_trampoline(SB),NOSPLIT,$0-0
diff --git a/vendor/golang.org/x/sys/unix/zsyscall_dragonfly_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_dragonfly_amd64.go
index cdfe931..fe1fdd7 100644
--- a/vendor/golang.org/x/sys/unix/zsyscall_dragonfly_amd64.go
+++ b/vendor/golang.org/x/sys/unix/zsyscall_dragonfly_amd64.go
@@ -255,17 +255,6 @@ func futimes(fd int, timeval *[2]Timeval) (err error) {
255 255
256// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 256// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
257 257
258func fcntl(fd int, cmd int, arg int) (val int, err error) {
259 r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg))
260 val = int(r0)
261 if e1 != 0 {
262 err = errnoErr(e1)
263 }
264 return
265}
266
267// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
268
269func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { 258func poll(fds *PollFd, nfds int, timeout int) (n int, err error) {
270 r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) 259 r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))
271 n = int(r0) 260 n = int(r0)
@@ -1272,8 +1261,9 @@ func Seek(fd int, offset int64, whence int) (newoffset int64, err error) {
1272 1261
1273// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 1262// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
1274 1263
1275func Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) { 1264func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {
1276 _, _, e1 := Syscall6(SYS_SELECT, uintptr(n), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) 1265 r0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)
1266 n = int(r0)
1277 if e1 != 0 { 1267 if e1 != 0 {
1278 err = errnoErr(e1) 1268 err = errnoErr(e1)
1279 } 1269 }
diff --git a/vendor/golang.org/x/sys/unix/zsyscall_freebsd_386.go b/vendor/golang.org/x/sys/unix/zsyscall_freebsd_386.go
index a783306..c9058f3 100644
--- a/vendor/golang.org/x/sys/unix/zsyscall_freebsd_386.go
+++ b/vendor/golang.org/x/sys/unix/zsyscall_freebsd_386.go
@@ -255,17 +255,6 @@ func futimes(fd int, timeval *[2]Timeval) (err error) {
255 255
256// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 256// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
257 257
258func fcntl(fd int, cmd int, arg int) (val int, err error) {
259 r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg))
260 val = int(r0)
261 if e1 != 0 {
262 err = errnoErr(e1)
263 }
264 return
265}
266
267// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
268
269func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { 258func poll(fds *PollFd, nfds int, timeout int) (n int, err error) {
270 r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) 259 r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))
271 n = int(r0) 260 n = int(r0)
@@ -1606,8 +1595,9 @@ func Seek(fd int, offset int64, whence int) (newoffset int64, err error) {
1606 1595
1607// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 1596// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
1608 1597
1609func Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) { 1598func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {
1610 _, _, e1 := Syscall6(SYS_SELECT, uintptr(n), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) 1599 r0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)
1600 n = int(r0)
1611 if e1 != 0 { 1601 if e1 != 0 {
1612 err = errnoErr(e1) 1602 err = errnoErr(e1)
1613 } 1603 }
diff --git a/vendor/golang.org/x/sys/unix/zsyscall_freebsd_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_freebsd_amd64.go
index f995520..49b20c2 100644
--- a/vendor/golang.org/x/sys/unix/zsyscall_freebsd_amd64.go
+++ b/vendor/golang.org/x/sys/unix/zsyscall_freebsd_amd64.go
@@ -214,22 +214,6 @@ func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, ne
214 214
215// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 215// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
216 216
217func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {
218 var _p0 unsafe.Pointer
219 if len(mib) > 0 {
220 _p0 = unsafe.Pointer(&mib[0])
221 } else {
222 _p0 = unsafe.Pointer(&_zero)
223 }
224 _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))
225 if e1 != 0 {
226 err = errnoErr(e1)
227 }
228 return
229}
230
231// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
232
233func utimes(path string, timeval *[2]Timeval) (err error) { 217func utimes(path string, timeval *[2]Timeval) (err error) {
234 var _p0 *byte 218 var _p0 *byte
235 _p0, err = BytePtrFromString(path) 219 _p0, err = BytePtrFromString(path)
@@ -255,17 +239,6 @@ func futimes(fd int, timeval *[2]Timeval) (err error) {
255 239
256// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 240// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
257 241
258func fcntl(fd int, cmd int, arg int) (val int, err error) {
259 r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg))
260 val = int(r0)
261 if e1 != 0 {
262 err = errnoErr(e1)
263 }
264 return
265}
266
267// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
268
269func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { 242func poll(fds *PollFd, nfds int, timeout int) (n int, err error) {
270 r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) 243 r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))
271 n = int(r0) 244 n = int(r0)
@@ -377,8 +350,14 @@ func Munlockall() (err error) {
377 350
378// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 351// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
379 352
380func pipe2(p *[2]_C_int, flags int) (err error) { 353func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {
381 _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) 354 var _p0 unsafe.Pointer
355 if len(mib) > 0 {
356 _p0 = unsafe.Pointer(&mib[0])
357 } else {
358 _p0 = unsafe.Pointer(&_zero)
359 }
360 _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))
382 if e1 != 0 { 361 if e1 != 0 {
383 err = errnoErr(e1) 362 err = errnoErr(e1)
384 } 363 }
@@ -387,8 +366,8 @@ func pipe2(p *[2]_C_int, flags int) (err error) {
387 366
388// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 367// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
389 368
390func ptrace(request int, pid int, addr uintptr, data int) (err error) { 369func pipe2(p *[2]_C_int, flags int) (err error) {
391 _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) 370 _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0)
392 if e1 != 0 { 371 if e1 != 0 {
393 err = errnoErr(e1) 372 err = errnoErr(e1)
394 } 373 }
@@ -424,6 +403,16 @@ func ioctl(fd int, req uint, arg uintptr) (err error) {
424 403
425// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 404// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
426 405
406func ptrace(request int, pid int, addr uintptr, data int) (err error) {
407 _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0)
408 if e1 != 0 {
409 err = errnoErr(e1)
410 }
411 return
412}
413
414// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
415
427func Access(path string, mode uint32) (err error) { 416func Access(path string, mode uint32) (err error) {
428 var _p0 *byte 417 var _p0 *byte
429 _p0, err = BytePtrFromString(path) 418 _p0, err = BytePtrFromString(path)
@@ -1606,8 +1595,9 @@ func Seek(fd int, offset int64, whence int) (newoffset int64, err error) {
1606 1595
1607// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 1596// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
1608 1597
1609func Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) { 1598func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {
1610 _, _, e1 := Syscall6(SYS_SELECT, uintptr(n), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) 1599 r0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)
1600 n = int(r0)
1611 if e1 != 0 { 1601 if e1 != 0 {
1612 err = errnoErr(e1) 1602 err = errnoErr(e1)
1613 } 1603 }
diff --git a/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm.go b/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm.go
index d681acd..31d2c46 100644
--- a/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm.go
+++ b/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm.go
@@ -214,22 +214,6 @@ func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, ne
214 214
215// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 215// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
216 216
217func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {
218 var _p0 unsafe.Pointer
219 if len(mib) > 0 {
220 _p0 = unsafe.Pointer(&mib[0])
221 } else {
222 _p0 = unsafe.Pointer(&_zero)
223 }
224 _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))
225 if e1 != 0 {
226 err = errnoErr(e1)
227 }
228 return
229}
230
231// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
232
233func utimes(path string, timeval *[2]Timeval) (err error) { 217func utimes(path string, timeval *[2]Timeval) (err error) {
234 var _p0 *byte 218 var _p0 *byte
235 _p0, err = BytePtrFromString(path) 219 _p0, err = BytePtrFromString(path)
@@ -255,17 +239,6 @@ func futimes(fd int, timeval *[2]Timeval) (err error) {
255 239
256// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 240// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
257 241
258func fcntl(fd int, cmd int, arg int) (val int, err error) {
259 r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg))
260 val = int(r0)
261 if e1 != 0 {
262 err = errnoErr(e1)
263 }
264 return
265}
266
267// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
268
269func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { 242func poll(fds *PollFd, nfds int, timeout int) (n int, err error) {
270 r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) 243 r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))
271 n = int(r0) 244 n = int(r0)
@@ -377,8 +350,14 @@ func Munlockall() (err error) {
377 350
378// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 351// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
379 352
380func pipe2(p *[2]_C_int, flags int) (err error) { 353func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {
381 _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) 354 var _p0 unsafe.Pointer
355 if len(mib) > 0 {
356 _p0 = unsafe.Pointer(&mib[0])
357 } else {
358 _p0 = unsafe.Pointer(&_zero)
359 }
360 _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))
382 if e1 != 0 { 361 if e1 != 0 {
383 err = errnoErr(e1) 362 err = errnoErr(e1)
384 } 363 }
@@ -387,8 +366,8 @@ func pipe2(p *[2]_C_int, flags int) (err error) {
387 366
388// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 367// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
389 368
390func ptrace(request int, pid int, addr uintptr, data int) (err error) { 369func pipe2(p *[2]_C_int, flags int) (err error) {
391 _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) 370 _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0)
392 if e1 != 0 { 371 if e1 != 0 {
393 err = errnoErr(e1) 372 err = errnoErr(e1)
394 } 373 }
@@ -424,6 +403,16 @@ func ioctl(fd int, req uint, arg uintptr) (err error) {
424 403
425// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 404// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
426 405
406func ptrace(request int, pid int, addr uintptr, data int) (err error) {
407 _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0)
408 if e1 != 0 {
409 err = errnoErr(e1)
410 }
411 return
412}
413
414// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
415
427func Access(path string, mode uint32) (err error) { 416func Access(path string, mode uint32) (err error) {
428 var _p0 *byte 417 var _p0 *byte
429 _p0, err = BytePtrFromString(path) 418 _p0, err = BytePtrFromString(path)
@@ -1606,8 +1595,9 @@ func Seek(fd int, offset int64, whence int) (newoffset int64, err error) {
1606 1595
1607// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 1596// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
1608 1597
1609func Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) { 1598func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {
1610 _, _, e1 := Syscall6(SYS_SELECT, uintptr(n), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) 1599 r0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)
1600 n = int(r0)
1611 if e1 != 0 { 1601 if e1 != 0 {
1612 err = errnoErr(e1) 1602 err = errnoErr(e1)
1613 } 1603 }
diff --git a/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm64.go b/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm64.go
index 5049b2e..abab3d7 100644
--- a/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm64.go
+++ b/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm64.go
@@ -214,22 +214,6 @@ func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, ne
214 214
215// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 215// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
216 216
217func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {
218 var _p0 unsafe.Pointer
219 if len(mib) > 0 {
220 _p0 = unsafe.Pointer(&mib[0])
221 } else {
222 _p0 = unsafe.Pointer(&_zero)
223 }
224 _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))
225 if e1 != 0 {
226 err = errnoErr(e1)
227 }
228 return
229}
230
231// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
232
233func utimes(path string, timeval *[2]Timeval) (err error) { 217func utimes(path string, timeval *[2]Timeval) (err error) {
234 var _p0 *byte 218 var _p0 *byte
235 _p0, err = BytePtrFromString(path) 219 _p0, err = BytePtrFromString(path)
@@ -255,17 +239,6 @@ func futimes(fd int, timeval *[2]Timeval) (err error) {
255 239
256// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 240// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
257 241
258func fcntl(fd int, cmd int, arg int) (val int, err error) {
259 r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg))
260 val = int(r0)
261 if e1 != 0 {
262 err = errnoErr(e1)
263 }
264 return
265}
266
267// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
268
269func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { 242func poll(fds *PollFd, nfds int, timeout int) (n int, err error) {
270 r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) 243 r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))
271 n = int(r0) 244 n = int(r0)
@@ -377,6 +350,22 @@ func Munlockall() (err error) {
377 350
378// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 351// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
379 352
353func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {
354 var _p0 unsafe.Pointer
355 if len(mib) > 0 {
356 _p0 = unsafe.Pointer(&mib[0])
357 } else {
358 _p0 = unsafe.Pointer(&_zero)
359 }
360 _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))
361 if e1 != 0 {
362 err = errnoErr(e1)
363 }
364 return
365}
366
367// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
368
380func pipe2(p *[2]_C_int, flags int) (err error) { 369func pipe2(p *[2]_C_int, flags int) (err error) {
381 _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) 370 _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0)
382 if e1 != 0 { 371 if e1 != 0 {
@@ -404,8 +393,8 @@ func Getcwd(buf []byte) (n int, err error) {
404 393
405// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 394// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
406 395
407func ptrace(request int, pid int, addr uintptr, data int) (err error) { 396func ioctl(fd int, req uint, arg uintptr) (err error) {
408 _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) 397 _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg))
409 if e1 != 0 { 398 if e1 != 0 {
410 err = errnoErr(e1) 399 err = errnoErr(e1)
411 } 400 }
@@ -414,8 +403,8 @@ func ptrace(request int, pid int, addr uintptr, data int) (err error) {
414 403
415// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 404// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
416 405
417func ioctl(fd int, req uint, arg uintptr) (err error) { 406func ptrace(request int, pid int, addr uintptr, data int) (err error) {
418 _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg)) 407 _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0)
419 if e1 != 0 { 408 if e1 != 0 {
420 err = errnoErr(e1) 409 err = errnoErr(e1)
421 } 410 }
@@ -1606,8 +1595,9 @@ func Seek(fd int, offset int64, whence int) (newoffset int64, err error) {
1606 1595
1607// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 1596// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
1608 1597
1609func Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) { 1598func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {
1610 _, _, e1 := Syscall6(SYS_SELECT, uintptr(n), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) 1599 r0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)
1600 n = int(r0)
1611 if e1 != 0 { 1601 if e1 != 0 {
1612 err = errnoErr(e1) 1602 err = errnoErr(e1)
1613 } 1603 }
diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_386.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_386.go
index c5e46e4..0e68c14 100644
--- a/vendor/golang.org/x/sys/unix/zsyscall_linux_386.go
+++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_386.go
@@ -305,6 +305,36 @@ func keyctlDH(cmd int, arg2 *KeyctlDHParams, buf []byte) (ret int, err error) {
305 305
306// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 306// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
307 307
308func keyctlRestrictKeyringByType(cmd int, arg2 int, keyType string, restriction string) (err error) {
309 var _p0 *byte
310 _p0, err = BytePtrFromString(keyType)
311 if err != nil {
312 return
313 }
314 var _p1 *byte
315 _p1, err = BytePtrFromString(restriction)
316 if err != nil {
317 return
318 }
319 _, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0, 0)
320 if e1 != 0 {
321 err = errnoErr(e1)
322 }
323 return
324}
325
326// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
327
328func keyctlRestrictKeyring(cmd int, arg2 int) (err error) {
329 _, _, e1 := Syscall(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), 0)
330 if e1 != 0 {
331 err = errnoErr(e1)
332 }
333 return
334}
335
336// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
337
308func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) { 338func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) {
309 _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) 339 _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0)
310 if e1 != 0 { 340 if e1 != 0 {
@@ -629,17 +659,6 @@ func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {
629 659
630// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 660// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
631 661
632func fcntl(fd int, cmd int, arg int) (val int, err error) {
633 r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg))
634 val = int(r0)
635 if e1 != 0 {
636 err = errnoErr(e1)
637 }
638 return
639}
640
641// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
642
643func Fdatasync(fd int) (err error) { 662func Fdatasync(fd int) (err error) {
644 _, _, e1 := Syscall(SYS_FDATASYNC, uintptr(fd), 0, 0) 663 _, _, e1 := Syscall(SYS_FDATASYNC, uintptr(fd), 0, 0)
645 if e1 != 0 { 664 if e1 != 0 {
@@ -1578,6 +1597,108 @@ func writelen(fd int, p *byte, np int) (n int, err error) {
1578 1597
1579// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 1598// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
1580 1599
1600func readv(fd int, iovs []Iovec) (n int, err error) {
1601 var _p0 unsafe.Pointer
1602 if len(iovs) > 0 {
1603 _p0 = unsafe.Pointer(&iovs[0])
1604 } else {
1605 _p0 = unsafe.Pointer(&_zero)
1606 }
1607 r0, _, e1 := Syscall(SYS_READV, uintptr(fd), uintptr(_p0), uintptr(len(iovs)))
1608 n = int(r0)
1609 if e1 != 0 {
1610 err = errnoErr(e1)
1611 }
1612 return
1613}
1614
1615// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
1616
1617func writev(fd int, iovs []Iovec) (n int, err error) {
1618 var _p0 unsafe.Pointer
1619 if len(iovs) > 0 {
1620 _p0 = unsafe.Pointer(&iovs[0])
1621 } else {
1622 _p0 = unsafe.Pointer(&_zero)
1623 }
1624 r0, _, e1 := Syscall(SYS_WRITEV, uintptr(fd), uintptr(_p0), uintptr(len(iovs)))
1625 n = int(r0)
1626 if e1 != 0 {
1627 err = errnoErr(e1)
1628 }
1629 return
1630}
1631
1632// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
1633
1634func preadv(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr) (n int, err error) {
1635 var _p0 unsafe.Pointer
1636 if len(iovs) > 0 {
1637 _p0 = unsafe.Pointer(&iovs[0])
1638 } else {
1639 _p0 = unsafe.Pointer(&_zero)
1640 }
1641 r0, _, e1 := Syscall6(SYS_PREADV, uintptr(fd), uintptr(_p0), uintptr(len(iovs)), uintptr(offs_l), uintptr(offs_h), 0)
1642 n = int(r0)
1643 if e1 != 0 {
1644 err = errnoErr(e1)
1645 }
1646 return
1647}
1648
1649// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
1650
1651func pwritev(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr) (n int, err error) {
1652 var _p0 unsafe.Pointer
1653 if len(iovs) > 0 {
1654 _p0 = unsafe.Pointer(&iovs[0])
1655 } else {
1656 _p0 = unsafe.Pointer(&_zero)
1657 }
1658 r0, _, e1 := Syscall6(SYS_PWRITEV, uintptr(fd), uintptr(_p0), uintptr(len(iovs)), uintptr(offs_l), uintptr(offs_h), 0)
1659 n = int(r0)
1660 if e1 != 0 {
1661 err = errnoErr(e1)
1662 }
1663 return
1664}
1665
1666// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
1667
1668func preadv2(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr, flags int) (n int, err error) {
1669 var _p0 unsafe.Pointer
1670 if len(iovs) > 0 {
1671 _p0 = unsafe.Pointer(&iovs[0])
1672 } else {
1673 _p0 = unsafe.Pointer(&_zero)
1674 }
1675 r0, _, e1 := Syscall6(SYS_PREADV2, uintptr(fd), uintptr(_p0), uintptr(len(iovs)), uintptr(offs_l), uintptr(offs_h), uintptr(flags))
1676 n = int(r0)
1677 if e1 != 0 {
1678 err = errnoErr(e1)
1679 }
1680 return
1681}
1682
1683// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
1684
1685func pwritev2(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr, flags int) (n int, err error) {
1686 var _p0 unsafe.Pointer
1687 if len(iovs) > 0 {
1688 _p0 = unsafe.Pointer(&iovs[0])
1689 } else {
1690 _p0 = unsafe.Pointer(&_zero)
1691 }
1692 r0, _, e1 := Syscall6(SYS_PWRITEV2, uintptr(fd), uintptr(_p0), uintptr(len(iovs)), uintptr(offs_l), uintptr(offs_h), uintptr(flags))
1693 n = int(r0)
1694 if e1 != 0 {
1695 err = errnoErr(e1)
1696 }
1697 return
1698}
1699
1700// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
1701
1581func munmap(addr uintptr, length uintptr) (err error) { 1702func munmap(addr uintptr, length uintptr) (err error) {
1582 _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) 1703 _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0)
1583 if e1 != 0 { 1704 if e1 != 0 {
@@ -2000,8 +2121,9 @@ func sendfile(outfd int, infd int, offset *int64, count int) (written int, err e
2000 2121
2001// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 2122// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
2002 2123
2003func Setfsgid(gid int) (err error) { 2124func setfsgid(gid int) (prev int, err error) {
2004 _, _, e1 := Syscall(SYS_SETFSGID32, uintptr(gid), 0, 0) 2125 r0, _, e1 := Syscall(SYS_SETFSGID32, uintptr(gid), 0, 0)
2126 prev = int(r0)
2005 if e1 != 0 { 2127 if e1 != 0 {
2006 err = errnoErr(e1) 2128 err = errnoErr(e1)
2007 } 2129 }
@@ -2010,8 +2132,9 @@ func Setfsgid(gid int) (err error) {
2010 2132
2011// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 2133// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
2012 2134
2013func Setfsuid(uid int) (err error) { 2135func setfsuid(uid int) (prev int, err error) {
2014 _, _, e1 := Syscall(SYS_SETFSUID32, uintptr(uid), 0, 0) 2136 r0, _, e1 := Syscall(SYS_SETFSUID32, uintptr(uid), 0, 0)
2137 prev = int(r0)
2015 if e1 != 0 { 2138 if e1 != 0 {
2016 err = errnoErr(e1) 2139 err = errnoErr(e1)
2017 } 2140 }
diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_amd64.go
index da8819e..c038e52 100644
--- a/vendor/golang.org/x/sys/unix/zsyscall_linux_amd64.go
+++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_amd64.go
@@ -305,6 +305,36 @@ func keyctlDH(cmd int, arg2 *KeyctlDHParams, buf []byte) (ret int, err error) {
305 305
306// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 306// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
307 307
308func keyctlRestrictKeyringByType(cmd int, arg2 int, keyType string, restriction string) (err error) {
309 var _p0 *byte
310 _p0, err = BytePtrFromString(keyType)
311 if err != nil {
312 return
313 }
314 var _p1 *byte
315 _p1, err = BytePtrFromString(restriction)
316 if err != nil {
317 return
318 }
319 _, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0, 0)
320 if e1 != 0 {
321 err = errnoErr(e1)
322 }
323 return
324}
325
326// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
327
328func keyctlRestrictKeyring(cmd int, arg2 int) (err error) {
329 _, _, e1 := Syscall(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), 0)
330 if e1 != 0 {
331 err = errnoErr(e1)
332 }
333 return
334}
335
336// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
337
308func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) { 338func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) {
309 _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) 339 _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0)
310 if e1 != 0 { 340 if e1 != 0 {
@@ -629,17 +659,6 @@ func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {
629 659
630// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 660// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
631 661
632func fcntl(fd int, cmd int, arg int) (val int, err error) {
633 r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg))
634 val = int(r0)
635 if e1 != 0 {
636 err = errnoErr(e1)
637 }
638 return
639}
640
641// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
642
643func Fdatasync(fd int) (err error) { 662func Fdatasync(fd int) (err error) {
644 _, _, e1 := Syscall(SYS_FDATASYNC, uintptr(fd), 0, 0) 663 _, _, e1 := Syscall(SYS_FDATASYNC, uintptr(fd), 0, 0)
645 if e1 != 0 { 664 if e1 != 0 {
@@ -1578,6 +1597,108 @@ func writelen(fd int, p *byte, np int) (n int, err error) {
1578 1597
1579// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 1598// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
1580 1599
1600func readv(fd int, iovs []Iovec) (n int, err error) {
1601 var _p0 unsafe.Pointer
1602 if len(iovs) > 0 {
1603 _p0 = unsafe.Pointer(&iovs[0])
1604 } else {
1605 _p0 = unsafe.Pointer(&_zero)
1606 }
1607 r0, _, e1 := Syscall(SYS_READV, uintptr(fd), uintptr(_p0), uintptr(len(iovs)))
1608 n = int(r0)
1609 if e1 != 0 {
1610 err = errnoErr(e1)
1611 }
1612 return
1613}
1614
1615// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
1616
1617func writev(fd int, iovs []Iovec) (n int, err error) {
1618 var _p0 unsafe.Pointer
1619 if len(iovs) > 0 {
1620 _p0 = unsafe.Pointer(&iovs[0])
1621 } else {
1622 _p0 = unsafe.Pointer(&_zero)
1623 }
1624 r0, _, e1 := Syscall(SYS_WRITEV, uintptr(fd), uintptr(_p0), uintptr(len(iovs)))
1625 n = int(r0)
1626 if e1 != 0 {
1627 err = errnoErr(e1)
1628 }
1629 return
1630}
1631
1632// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
1633
1634func preadv(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr) (n int, err error) {
1635 var _p0 unsafe.Pointer
1636 if len(iovs) > 0 {
1637 _p0 = unsafe.Pointer(&iovs[0])
1638 } else {
1639 _p0 = unsafe.Pointer(&_zero)
1640 }
1641 r0, _, e1 := Syscall6(SYS_PREADV, uintptr(fd), uintptr(_p0), uintptr(len(iovs)), uintptr(offs_l), uintptr(offs_h), 0)
1642 n = int(r0)
1643 if e1 != 0 {
1644 err = errnoErr(e1)
1645 }
1646 return
1647}
1648
1649// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
1650
1651func pwritev(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr) (n int, err error) {
1652 var _p0 unsafe.Pointer
1653 if len(iovs) > 0 {
1654 _p0 = unsafe.Pointer(&iovs[0])
1655 } else {
1656 _p0 = unsafe.Pointer(&_zero)
1657 }
1658 r0, _, e1 := Syscall6(SYS_PWRITEV, uintptr(fd), uintptr(_p0), uintptr(len(iovs)), uintptr(offs_l), uintptr(offs_h), 0)
1659 n = int(r0)
1660 if e1 != 0 {
1661 err = errnoErr(e1)
1662 }
1663 return
1664}
1665
1666// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
1667
1668func preadv2(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr, flags int) (n int, err error) {
1669 var _p0 unsafe.Pointer
1670 if len(iovs) > 0 {
1671 _p0 = unsafe.Pointer(&iovs[0])
1672 } else {
1673 _p0 = unsafe.Pointer(&_zero)
1674 }
1675 r0, _, e1 := Syscall6(SYS_PREADV2, uintptr(fd), uintptr(_p0), uintptr(len(iovs)), uintptr(offs_l), uintptr(offs_h), uintptr(flags))
1676 n = int(r0)
1677 if e1 != 0 {
1678 err = errnoErr(e1)
1679 }
1680 return
1681}
1682
1683// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
1684
1685func pwritev2(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr, flags int) (n int, err error) {
1686 var _p0 unsafe.Pointer
1687 if len(iovs) > 0 {
1688 _p0 = unsafe.Pointer(&iovs[0])
1689 } else {
1690 _p0 = unsafe.Pointer(&_zero)
1691 }
1692 r0, _, e1 := Syscall6(SYS_PWRITEV2, uintptr(fd), uintptr(_p0), uintptr(len(iovs)), uintptr(offs_l), uintptr(offs_h), uintptr(flags))
1693 n = int(r0)
1694 if e1 != 0 {
1695 err = errnoErr(e1)
1696 }
1697 return
1698}
1699
1700// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
1701
1581func munmap(addr uintptr, length uintptr) (err error) { 1702func munmap(addr uintptr, length uintptr) (err error) {
1582 _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) 1703 _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0)
1583 if e1 != 0 { 1704 if e1 != 0 {
@@ -2016,8 +2137,9 @@ func sendfile(outfd int, infd int, offset *int64, count int) (written int, err e
2016 2137
2017// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 2138// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
2018 2139
2019func Setfsgid(gid int) (err error) { 2140func setfsgid(gid int) (prev int, err error) {
2020 _, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0) 2141 r0, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0)
2142 prev = int(r0)
2021 if e1 != 0 { 2143 if e1 != 0 {
2022 err = errnoErr(e1) 2144 err = errnoErr(e1)
2023 } 2145 }
@@ -2026,8 +2148,9 @@ func Setfsgid(gid int) (err error) {
2026 2148
2027// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 2149// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
2028 2150
2029func Setfsuid(uid int) (err error) { 2151func setfsuid(uid int) (prev int, err error) {
2030 _, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0) 2152 r0, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0)
2153 prev = int(r0)
2031 if e1 != 0 { 2154 if e1 != 0 {
2032 err = errnoErr(e1) 2155 err = errnoErr(e1)
2033 } 2156 }
diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_arm.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_arm.go
index 6ad9be6..333683d 100644
--- a/vendor/golang.org/x/sys/unix/zsyscall_linux_arm.go
+++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_arm.go
@@ -305,6 +305,36 @@ func keyctlDH(cmd int, arg2 *KeyctlDHParams, buf []byte) (ret int, err error) {
305 305
306// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 306// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
307 307
308func keyctlRestrictKeyringByType(cmd int, arg2 int, keyType string, restriction string) (err error) {
309 var _p0 *byte
310 _p0, err = BytePtrFromString(keyType)
311 if err != nil {
312 return
313 }
314 var _p1 *byte
315 _p1, err = BytePtrFromString(restriction)
316 if err != nil {
317 return
318 }
319 _, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0, 0)
320 if e1 != 0 {
321 err = errnoErr(e1)
322 }
323 return
324}
325
326// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
327
328func keyctlRestrictKeyring(cmd int, arg2 int) (err error) {
329 _, _, e1 := Syscall(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), 0)
330 if e1 != 0 {
331 err = errnoErr(e1)
332 }
333 return
334}
335
336// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
337
308func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) { 338func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) {
309 _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) 339 _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0)
310 if e1 != 0 { 340 if e1 != 0 {
@@ -629,17 +659,6 @@ func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {
629 659
630// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 660// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
631 661
632func fcntl(fd int, cmd int, arg int) (val int, err error) {
633 r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg))
634 val = int(r0)
635 if e1 != 0 {
636 err = errnoErr(e1)
637 }
638 return
639}
640
641// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
642
643func Fdatasync(fd int) (err error) { 662func Fdatasync(fd int) (err error) {
644 _, _, e1 := Syscall(SYS_FDATASYNC, uintptr(fd), 0, 0) 663 _, _, e1 := Syscall(SYS_FDATASYNC, uintptr(fd), 0, 0)
645 if e1 != 0 { 664 if e1 != 0 {
@@ -1578,6 +1597,108 @@ func writelen(fd int, p *byte, np int) (n int, err error) {
1578 1597
1579// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 1598// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
1580 1599
1600func readv(fd int, iovs []Iovec) (n int, err error) {
1601 var _p0 unsafe.Pointer
1602 if len(iovs) > 0 {
1603 _p0 = unsafe.Pointer(&iovs[0])
1604 } else {
1605 _p0 = unsafe.Pointer(&_zero)
1606 }
1607 r0, _, e1 := Syscall(SYS_READV, uintptr(fd), uintptr(_p0), uintptr(len(iovs)))
1608 n = int(r0)
1609 if e1 != 0 {
1610 err = errnoErr(e1)
1611 }
1612 return
1613}
1614
1615// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
1616
1617func writev(fd int, iovs []Iovec) (n int, err error) {
1618 var _p0 unsafe.Pointer
1619 if len(iovs) > 0 {
1620 _p0 = unsafe.Pointer(&iovs[0])
1621 } else {
1622 _p0 = unsafe.Pointer(&_zero)
1623 }
1624 r0, _, e1 := Syscall(SYS_WRITEV, uintptr(fd), uintptr(_p0), uintptr(len(iovs)))
1625 n = int(r0)
1626 if e1 != 0 {
1627 err = errnoErr(e1)
1628 }
1629 return
1630}
1631
1632// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
1633
1634func preadv(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr) (n int, err error) {
1635 var _p0 unsafe.Pointer
1636 if len(iovs) > 0 {
1637 _p0 = unsafe.Pointer(&iovs[0])
1638 } else {
1639 _p0 = unsafe.Pointer(&_zero)
1640 }
1641 r0, _, e1 := Syscall6(SYS_PREADV, uintptr(fd), uintptr(_p0), uintptr(len(iovs)), uintptr(offs_l), uintptr(offs_h), 0)
1642 n = int(r0)
1643 if e1 != 0 {
1644 err = errnoErr(e1)
1645 }
1646 return
1647}
1648
1649// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
1650
1651func pwritev(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr) (n int, err error) {
1652 var _p0 unsafe.Pointer
1653 if len(iovs) > 0 {
1654 _p0 = unsafe.Pointer(&iovs[0])
1655 } else {
1656 _p0 = unsafe.Pointer(&_zero)
1657 }
1658 r0, _, e1 := Syscall6(SYS_PWRITEV, uintptr(fd), uintptr(_p0), uintptr(len(iovs)), uintptr(offs_l), uintptr(offs_h), 0)
1659 n = int(r0)
1660 if e1 != 0 {
1661 err = errnoErr(e1)
1662 }
1663 return
1664}
1665
1666// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
1667
1668func preadv2(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr, flags int) (n int, err error) {
1669 var _p0 unsafe.Pointer
1670 if len(iovs) > 0 {
1671 _p0 = unsafe.Pointer(&iovs[0])
1672 } else {
1673 _p0 = unsafe.Pointer(&_zero)
1674 }
1675 r0, _, e1 := Syscall6(SYS_PREADV2, uintptr(fd), uintptr(_p0), uintptr(len(iovs)), uintptr(offs_l), uintptr(offs_h), uintptr(flags))
1676 n = int(r0)
1677 if e1 != 0 {
1678 err = errnoErr(e1)
1679 }
1680 return
1681}
1682
1683// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
1684
1685func pwritev2(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr, flags int) (n int, err error) {
1686 var _p0 unsafe.Pointer
1687 if len(iovs) > 0 {
1688 _p0 = unsafe.Pointer(&iovs[0])
1689 } else {
1690 _p0 = unsafe.Pointer(&_zero)
1691 }
1692 r0, _, e1 := Syscall6(SYS_PWRITEV2, uintptr(fd), uintptr(_p0), uintptr(len(iovs)), uintptr(offs_l), uintptr(offs_h), uintptr(flags))
1693 n = int(r0)
1694 if e1 != 0 {
1695 err = errnoErr(e1)
1696 }
1697 return
1698}
1699
1700// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
1701
1581func munmap(addr uintptr, length uintptr) (err error) { 1702func munmap(addr uintptr, length uintptr) (err error) {
1582 _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) 1703 _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0)
1583 if e1 != 0 { 1704 if e1 != 0 {
@@ -2136,8 +2257,9 @@ func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err
2136 2257
2137// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 2258// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
2138 2259
2139func Setfsgid(gid int) (err error) { 2260func setfsgid(gid int) (prev int, err error) {
2140 _, _, e1 := Syscall(SYS_SETFSGID32, uintptr(gid), 0, 0) 2261 r0, _, e1 := Syscall(SYS_SETFSGID32, uintptr(gid), 0, 0)
2262 prev = int(r0)
2141 if e1 != 0 { 2263 if e1 != 0 {
2142 err = errnoErr(e1) 2264 err = errnoErr(e1)
2143 } 2265 }
@@ -2146,8 +2268,9 @@ func Setfsgid(gid int) (err error) {
2146 2268
2147// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 2269// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
2148 2270
2149func Setfsuid(uid int) (err error) { 2271func setfsuid(uid int) (prev int, err error) {
2150 _, _, e1 := Syscall(SYS_SETFSUID32, uintptr(uid), 0, 0) 2272 r0, _, e1 := Syscall(SYS_SETFSUID32, uintptr(uid), 0, 0)
2273 prev = int(r0)
2151 if e1 != 0 { 2274 if e1 != 0 {
2152 err = errnoErr(e1) 2275 err = errnoErr(e1)
2153 } 2276 }
diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_arm64.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_arm64.go
index f883317..838bbdb 100644
--- a/vendor/golang.org/x/sys/unix/zsyscall_linux_arm64.go
+++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_arm64.go
@@ -305,6 +305,36 @@ func keyctlDH(cmd int, arg2 *KeyctlDHParams, buf []byte) (ret int, err error) {
305 305
306// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 306// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
307 307
308func keyctlRestrictKeyringByType(cmd int, arg2 int, keyType string, restriction string) (err error) {
309 var _p0 *byte
310 _p0, err = BytePtrFromString(keyType)
311 if err != nil {
312 return
313 }
314 var _p1 *byte
315 _p1, err = BytePtrFromString(restriction)
316 if err != nil {
317 return
318 }
319 _, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0, 0)
320 if e1 != 0 {
321 err = errnoErr(e1)
322 }
323 return
324}
325
326// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
327
328func keyctlRestrictKeyring(cmd int, arg2 int) (err error) {
329 _, _, e1 := Syscall(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), 0)
330 if e1 != 0 {
331 err = errnoErr(e1)
332 }
333 return
334}
335
336// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
337
308func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) { 338func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) {
309 _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) 339 _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0)
310 if e1 != 0 { 340 if e1 != 0 {
@@ -629,17 +659,6 @@ func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {
629 659
630// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 660// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
631 661
632func fcntl(fd int, cmd int, arg int) (val int, err error) {
633 r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg))
634 val = int(r0)
635 if e1 != 0 {
636 err = errnoErr(e1)
637 }
638 return
639}
640
641// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
642
643func Fdatasync(fd int) (err error) { 662func Fdatasync(fd int) (err error) {
644 _, _, e1 := Syscall(SYS_FDATASYNC, uintptr(fd), 0, 0) 663 _, _, e1 := Syscall(SYS_FDATASYNC, uintptr(fd), 0, 0)
645 if e1 != 0 { 664 if e1 != 0 {
@@ -1578,6 +1597,108 @@ func writelen(fd int, p *byte, np int) (n int, err error) {
1578 1597
1579// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 1598// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
1580 1599
1600func readv(fd int, iovs []Iovec) (n int, err error) {
1601 var _p0 unsafe.Pointer
1602 if len(iovs) > 0 {
1603 _p0 = unsafe.Pointer(&iovs[0])
1604 } else {
1605 _p0 = unsafe.Pointer(&_zero)
1606 }
1607 r0, _, e1 := Syscall(SYS_READV, uintptr(fd), uintptr(_p0), uintptr(len(iovs)))
1608 n = int(r0)
1609 if e1 != 0 {
1610 err = errnoErr(e1)
1611 }
1612 return
1613}
1614
1615// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
1616
1617func writev(fd int, iovs []Iovec) (n int, err error) {
1618 var _p0 unsafe.Pointer
1619 if len(iovs) > 0 {
1620 _p0 = unsafe.Pointer(&iovs[0])
1621 } else {
1622 _p0 = unsafe.Pointer(&_zero)
1623 }
1624 r0, _, e1 := Syscall(SYS_WRITEV, uintptr(fd), uintptr(_p0), uintptr(len(iovs)))
1625 n = int(r0)
1626 if e1 != 0 {
1627 err = errnoErr(e1)
1628 }
1629 return
1630}
1631
1632// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
1633
1634func preadv(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr) (n int, err error) {
1635 var _p0 unsafe.Pointer
1636 if len(iovs) > 0 {
1637 _p0 = unsafe.Pointer(&iovs[0])
1638 } else {
1639 _p0 = unsafe.Pointer(&_zero)
1640 }
1641 r0, _, e1 := Syscall6(SYS_PREADV, uintptr(fd), uintptr(_p0), uintptr(len(iovs)), uintptr(offs_l), uintptr(offs_h), 0)
1642 n = int(r0)
1643 if e1 != 0 {
1644 err = errnoErr(e1)
1645 }
1646 return
1647}
1648
1649// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
1650
1651func pwritev(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr) (n int, err error) {
1652 var _p0 unsafe.Pointer
1653 if len(iovs) > 0 {
1654 _p0 = unsafe.Pointer(&iovs[0])
1655 } else {
1656 _p0 = unsafe.Pointer(&_zero)
1657 }
1658 r0, _, e1 := Syscall6(SYS_PWRITEV, uintptr(fd), uintptr(_p0), uintptr(len(iovs)), uintptr(offs_l), uintptr(offs_h), 0)
1659 n = int(r0)
1660 if e1 != 0 {
1661 err = errnoErr(e1)
1662 }
1663 return
1664}
1665
1666// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
1667
1668func preadv2(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr, flags int) (n int, err error) {
1669 var _p0 unsafe.Pointer
1670 if len(iovs) > 0 {
1671 _p0 = unsafe.Pointer(&iovs[0])
1672 } else {
1673 _p0 = unsafe.Pointer(&_zero)
1674 }
1675 r0, _, e1 := Syscall6(SYS_PREADV2, uintptr(fd), uintptr(_p0), uintptr(len(iovs)), uintptr(offs_l), uintptr(offs_h), uintptr(flags))
1676 n = int(r0)
1677 if e1 != 0 {
1678 err = errnoErr(e1)
1679 }
1680 return
1681}
1682
1683// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
1684
1685func pwritev2(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr, flags int) (n int, err error) {
1686 var _p0 unsafe.Pointer
1687 if len(iovs) > 0 {
1688 _p0 = unsafe.Pointer(&iovs[0])
1689 } else {
1690 _p0 = unsafe.Pointer(&_zero)
1691 }
1692 r0, _, e1 := Syscall6(SYS_PWRITEV2, uintptr(fd), uintptr(_p0), uintptr(len(iovs)), uintptr(offs_l), uintptr(offs_h), uintptr(flags))
1693 n = int(r0)
1694 if e1 != 0 {
1695 err = errnoErr(e1)
1696 }
1697 return
1698}
1699
1700// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
1701
1581func munmap(addr uintptr, length uintptr) (err error) { 1702func munmap(addr uintptr, length uintptr) (err error) {
1582 _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) 1703 _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0)
1583 if e1 != 0 { 1704 if e1 != 0 {
@@ -1939,8 +2060,9 @@ func sendfile(outfd int, infd int, offset *int64, count int) (written int, err e
1939 2060
1940// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 2061// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
1941 2062
1942func Setfsgid(gid int) (err error) { 2063func setfsgid(gid int) (prev int, err error) {
1943 _, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0) 2064 r0, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0)
2065 prev = int(r0)
1944 if e1 != 0 { 2066 if e1 != 0 {
1945 err = errnoErr(e1) 2067 err = errnoErr(e1)
1946 } 2068 }
@@ -1949,8 +2071,9 @@ func Setfsgid(gid int) (err error) {
1949 2071
1950// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 2072// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
1951 2073
1952func Setfsuid(uid int) (err error) { 2074func setfsuid(uid int) (prev int, err error) {
1953 _, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0) 2075 r0, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0)
2076 prev = int(r0)
1954 if e1 != 0 { 2077 if e1 != 0 {
1955 err = errnoErr(e1) 2078 err = errnoErr(e1)
1956 } 2079 }
diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_mips.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_mips.go
index 8eebc6c..7da49ae 100644
--- a/vendor/golang.org/x/sys/unix/zsyscall_linux_mips.go
+++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_mips.go
@@ -305,6 +305,36 @@ func keyctlDH(cmd int, arg2 *KeyctlDHParams, buf []byte) (ret int, err error) {
305 305
306// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 306// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
307 307
308func keyctlRestrictKeyringByType(cmd int, arg2 int, keyType string, restriction string) (err error) {
309 var _p0 *byte
310 _p0, err = BytePtrFromString(keyType)
311 if err != nil {
312 return
313 }
314 var _p1 *byte
315 _p1, err = BytePtrFromString(restriction)
316 if err != nil {
317 return
318 }
319 _, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0, 0)
320 if e1 != 0 {
321 err = errnoErr(e1)
322 }
323 return
324}
325
326// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
327
328func keyctlRestrictKeyring(cmd int, arg2 int) (err error) {
329 _, _, e1 := Syscall(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), 0)
330 if e1 != 0 {
331 err = errnoErr(e1)
332 }
333 return
334}
335
336// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
337
308func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) { 338func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) {
309 _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) 339 _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0)
310 if e1 != 0 { 340 if e1 != 0 {
@@ -629,17 +659,6 @@ func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {
629 659
630// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 660// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
631 661
632func fcntl(fd int, cmd int, arg int) (val int, err error) {
633 r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg))
634 val = int(r0)
635 if e1 != 0 {
636 err = errnoErr(e1)
637 }
638 return
639}
640
641// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
642
643func Fdatasync(fd int) (err error) { 662func Fdatasync(fd int) (err error) {
644 _, _, e1 := Syscall(SYS_FDATASYNC, uintptr(fd), 0, 0) 663 _, _, e1 := Syscall(SYS_FDATASYNC, uintptr(fd), 0, 0)
645 if e1 != 0 { 664 if e1 != 0 {
@@ -1578,6 +1597,108 @@ func writelen(fd int, p *byte, np int) (n int, err error) {
1578 1597
1579// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 1598// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
1580 1599
1600func readv(fd int, iovs []Iovec) (n int, err error) {
1601 var _p0 unsafe.Pointer
1602 if len(iovs) > 0 {
1603 _p0 = unsafe.Pointer(&iovs[0])
1604 } else {
1605 _p0 = unsafe.Pointer(&_zero)
1606 }
1607 r0, _, e1 := Syscall(SYS_READV, uintptr(fd), uintptr(_p0), uintptr(len(iovs)))
1608 n = int(r0)
1609 if e1 != 0 {
1610 err = errnoErr(e1)
1611 }
1612 return
1613}
1614
1615// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
1616
1617func writev(fd int, iovs []Iovec) (n int, err error) {
1618 var _p0 unsafe.Pointer
1619 if len(iovs) > 0 {
1620 _p0 = unsafe.Pointer(&iovs[0])
1621 } else {
1622 _p0 = unsafe.Pointer(&_zero)
1623 }
1624 r0, _, e1 := Syscall(SYS_WRITEV, uintptr(fd), uintptr(_p0), uintptr(len(iovs)))
1625 n = int(r0)
1626 if e1 != 0 {
1627 err = errnoErr(e1)
1628 }
1629 return
1630}
1631
1632// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
1633
1634func preadv(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr) (n int, err error) {
1635 var _p0 unsafe.Pointer
1636 if len(iovs) > 0 {
1637 _p0 = unsafe.Pointer(&iovs[0])
1638 } else {
1639 _p0 = unsafe.Pointer(&_zero)
1640 }
1641 r0, _, e1 := Syscall6(SYS_PREADV, uintptr(fd), uintptr(_p0), uintptr(len(iovs)), uintptr(offs_l), uintptr(offs_h), 0)
1642 n = int(r0)
1643 if e1 != 0 {
1644 err = errnoErr(e1)
1645 }
1646 return
1647}
1648
1649// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
1650
1651func pwritev(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr) (n int, err error) {
1652 var _p0 unsafe.Pointer
1653 if len(iovs) > 0 {
1654 _p0 = unsafe.Pointer(&iovs[0])
1655 } else {
1656 _p0 = unsafe.Pointer(&_zero)
1657 }
1658 r0, _, e1 := Syscall6(SYS_PWRITEV, uintptr(fd), uintptr(_p0), uintptr(len(iovs)), uintptr(offs_l), uintptr(offs_h), 0)
1659 n = int(r0)
1660 if e1 != 0 {
1661 err = errnoErr(e1)
1662 }
1663 return
1664}
1665
1666// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
1667
1668func preadv2(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr, flags int) (n int, err error) {
1669 var _p0 unsafe.Pointer
1670 if len(iovs) > 0 {
1671 _p0 = unsafe.Pointer(&iovs[0])
1672 } else {
1673 _p0 = unsafe.Pointer(&_zero)
1674 }
1675 r0, _, e1 := Syscall6(SYS_PREADV2, uintptr(fd), uintptr(_p0), uintptr(len(iovs)), uintptr(offs_l), uintptr(offs_h), uintptr(flags))
1676 n = int(r0)
1677 if e1 != 0 {
1678 err = errnoErr(e1)
1679 }
1680 return
1681}
1682
1683// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
1684
1685func pwritev2(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr, flags int) (n int, err error) {
1686 var _p0 unsafe.Pointer
1687 if len(iovs) > 0 {
1688 _p0 = unsafe.Pointer(&iovs[0])
1689 } else {
1690 _p0 = unsafe.Pointer(&_zero)
1691 }
1692 r0, _, e1 := Syscall6(SYS_PWRITEV2, uintptr(fd), uintptr(_p0), uintptr(len(iovs)), uintptr(offs_l), uintptr(offs_h), uintptr(flags))
1693 n = int(r0)
1694 if e1 != 0 {
1695 err = errnoErr(e1)
1696 }
1697 return
1698}
1699
1700// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
1701
1581func munmap(addr uintptr, length uintptr) (err error) { 1702func munmap(addr uintptr, length uintptr) (err error) {
1582 _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) 1703 _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0)
1583 if e1 != 0 { 1704 if e1 != 0 {
@@ -1930,8 +2051,9 @@ func sendfile(outfd int, infd int, offset *int64, count int) (written int, err e
1930 2051
1931// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 2052// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
1932 2053
1933func Setfsgid(gid int) (err error) { 2054func setfsgid(gid int) (prev int, err error) {
1934 _, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0) 2055 r0, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0)
2056 prev = int(r0)
1935 if e1 != 0 { 2057 if e1 != 0 {
1936 err = errnoErr(e1) 2058 err = errnoErr(e1)
1937 } 2059 }
@@ -1940,8 +2062,9 @@ func Setfsgid(gid int) (err error) {
1940 2062
1941// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 2063// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
1942 2064
1943func Setfsuid(uid int) (err error) { 2065func setfsuid(uid int) (prev int, err error) {
1944 _, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0) 2066 r0, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0)
2067 prev = int(r0)
1945 if e1 != 0 { 2068 if e1 != 0 {
1946 err = errnoErr(e1) 2069 err = errnoErr(e1)
1947 } 2070 }
diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64.go
index ecf62a6..f22f83f 100644
--- a/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64.go
+++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64.go
@@ -305,6 +305,36 @@ func keyctlDH(cmd int, arg2 *KeyctlDHParams, buf []byte) (ret int, err error) {
305 305
306// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 306// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
307 307
308func keyctlRestrictKeyringByType(cmd int, arg2 int, keyType string, restriction string) (err error) {
309 var _p0 *byte
310 _p0, err = BytePtrFromString(keyType)
311 if err != nil {
312 return
313 }
314 var _p1 *byte
315 _p1, err = BytePtrFromString(restriction)
316 if err != nil {
317 return
318 }
319 _, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0, 0)
320 if e1 != 0 {
321 err = errnoErr(e1)
322 }
323 return
324}
325
326// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
327
328func keyctlRestrictKeyring(cmd int, arg2 int) (err error) {
329 _, _, e1 := Syscall(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), 0)
330 if e1 != 0 {
331 err = errnoErr(e1)
332 }
333 return
334}
335
336// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
337
308func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) { 338func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) {
309 _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) 339 _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0)
310 if e1 != 0 { 340 if e1 != 0 {
@@ -629,17 +659,6 @@ func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {
629 659
630// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 660// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
631 661
632func fcntl(fd int, cmd int, arg int) (val int, err error) {
633 r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg))
634 val = int(r0)
635 if e1 != 0 {
636 err = errnoErr(e1)
637 }
638 return
639}
640
641// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
642
643func Fdatasync(fd int) (err error) { 662func Fdatasync(fd int) (err error) {
644 _, _, e1 := Syscall(SYS_FDATASYNC, uintptr(fd), 0, 0) 663 _, _, e1 := Syscall(SYS_FDATASYNC, uintptr(fd), 0, 0)
645 if e1 != 0 { 664 if e1 != 0 {
@@ -1578,6 +1597,108 @@ func writelen(fd int, p *byte, np int) (n int, err error) {
1578 1597
1579// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 1598// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
1580 1599
1600func readv(fd int, iovs []Iovec) (n int, err error) {
1601 var _p0 unsafe.Pointer
1602 if len(iovs) > 0 {
1603 _p0 = unsafe.Pointer(&iovs[0])
1604 } else {
1605 _p0 = unsafe.Pointer(&_zero)
1606 }
1607 r0, _, e1 := Syscall(SYS_READV, uintptr(fd), uintptr(_p0), uintptr(len(iovs)))
1608 n = int(r0)
1609 if e1 != 0 {
1610 err = errnoErr(e1)
1611 }
1612 return
1613}
1614
1615// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
1616
1617func writev(fd int, iovs []Iovec) (n int, err error) {
1618 var _p0 unsafe.Pointer
1619 if len(iovs) > 0 {
1620 _p0 = unsafe.Pointer(&iovs[0])
1621 } else {
1622 _p0 = unsafe.Pointer(&_zero)
1623 }
1624 r0, _, e1 := Syscall(SYS_WRITEV, uintptr(fd), uintptr(_p0), uintptr(len(iovs)))
1625 n = int(r0)
1626 if e1 != 0 {
1627 err = errnoErr(e1)
1628 }
1629 return
1630}
1631
1632// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
1633
1634func preadv(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr) (n int, err error) {
1635 var _p0 unsafe.Pointer
1636 if len(iovs) > 0 {
1637 _p0 = unsafe.Pointer(&iovs[0])
1638 } else {
1639 _p0 = unsafe.Pointer(&_zero)
1640 }
1641 r0, _, e1 := Syscall6(SYS_PREADV, uintptr(fd), uintptr(_p0), uintptr(len(iovs)), uintptr(offs_l), uintptr(offs_h), 0)
1642 n = int(r0)
1643 if e1 != 0 {
1644 err = errnoErr(e1)
1645 }
1646 return
1647}
1648
1649// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
1650
1651func pwritev(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr) (n int, err error) {
1652 var _p0 unsafe.Pointer
1653 if len(iovs) > 0 {
1654 _p0 = unsafe.Pointer(&iovs[0])
1655 } else {
1656 _p0 = unsafe.Pointer(&_zero)
1657 }
1658 r0, _, e1 := Syscall6(SYS_PWRITEV, uintptr(fd), uintptr(_p0), uintptr(len(iovs)), uintptr(offs_l), uintptr(offs_h), 0)
1659 n = int(r0)
1660 if e1 != 0 {
1661 err = errnoErr(e1)
1662 }
1663 return
1664}
1665
1666// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
1667
1668func preadv2(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr, flags int) (n int, err error) {
1669 var _p0 unsafe.Pointer
1670 if len(iovs) > 0 {
1671 _p0 = unsafe.Pointer(&iovs[0])
1672 } else {
1673 _p0 = unsafe.Pointer(&_zero)
1674 }
1675 r0, _, e1 := Syscall6(SYS_PREADV2, uintptr(fd), uintptr(_p0), uintptr(len(iovs)), uintptr(offs_l), uintptr(offs_h), uintptr(flags))
1676 n = int(r0)
1677 if e1 != 0 {
1678 err = errnoErr(e1)
1679 }
1680 return
1681}
1682
1683// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
1684
1685func pwritev2(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr, flags int) (n int, err error) {
1686 var _p0 unsafe.Pointer
1687 if len(iovs) > 0 {
1688 _p0 = unsafe.Pointer(&iovs[0])
1689 } else {
1690 _p0 = unsafe.Pointer(&_zero)
1691 }
1692 r0, _, e1 := Syscall6(SYS_PWRITEV2, uintptr(fd), uintptr(_p0), uintptr(len(iovs)), uintptr(offs_l), uintptr(offs_h), uintptr(flags))
1693 n = int(r0)
1694 if e1 != 0 {
1695 err = errnoErr(e1)
1696 }
1697 return
1698}
1699
1700// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
1701
1581func munmap(addr uintptr, length uintptr) (err error) { 1702func munmap(addr uintptr, length uintptr) (err error) {
1582 _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) 1703 _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0)
1583 if e1 != 0 { 1704 if e1 != 0 {
@@ -1960,8 +2081,9 @@ func sendfile(outfd int, infd int, offset *int64, count int) (written int, err e
1960 2081
1961// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 2082// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
1962 2083
1963func Setfsgid(gid int) (err error) { 2084func setfsgid(gid int) (prev int, err error) {
1964 _, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0) 2085 r0, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0)
2086 prev = int(r0)
1965 if e1 != 0 { 2087 if e1 != 0 {
1966 err = errnoErr(e1) 2088 err = errnoErr(e1)
1967 } 2089 }
@@ -1970,8 +2092,9 @@ func Setfsgid(gid int) (err error) {
1970 2092
1971// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 2093// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
1972 2094
1973func Setfsuid(uid int) (err error) { 2095func setfsuid(uid int) (prev int, err error) {
1974 _, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0) 2096 r0, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0)
2097 prev = int(r0)
1975 if e1 != 0 { 2098 if e1 != 0 {
1976 err = errnoErr(e1) 2099 err = errnoErr(e1)
1977 } 2100 }
diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64le.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64le.go
index 1ba0f7b..307c430 100644
--- a/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64le.go
+++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64le.go
@@ -305,6 +305,36 @@ func keyctlDH(cmd int, arg2 *KeyctlDHParams, buf []byte) (ret int, err error) {
305 305
306// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 306// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
307 307
308func keyctlRestrictKeyringByType(cmd int, arg2 int, keyType string, restriction string) (err error) {
309 var _p0 *byte
310 _p0, err = BytePtrFromString(keyType)
311 if err != nil {
312 return
313 }
314 var _p1 *byte
315 _p1, err = BytePtrFromString(restriction)
316 if err != nil {
317 return
318 }
319 _, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0, 0)
320 if e1 != 0 {
321 err = errnoErr(e1)
322 }
323 return
324}
325
326// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
327
328func keyctlRestrictKeyring(cmd int, arg2 int) (err error) {
329 _, _, e1 := Syscall(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), 0)
330 if e1 != 0 {
331 err = errnoErr(e1)
332 }
333 return
334}
335
336// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
337
308func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) { 338func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) {
309 _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) 339 _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0)
310 if e1 != 0 { 340 if e1 != 0 {
@@ -629,17 +659,6 @@ func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {
629 659
630// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 660// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
631 661
632func fcntl(fd int, cmd int, arg int) (val int, err error) {
633 r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg))
634 val = int(r0)
635 if e1 != 0 {
636 err = errnoErr(e1)
637 }
638 return
639}
640
641// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
642
643func Fdatasync(fd int) (err error) { 662func Fdatasync(fd int) (err error) {
644 _, _, e1 := Syscall(SYS_FDATASYNC, uintptr(fd), 0, 0) 663 _, _, e1 := Syscall(SYS_FDATASYNC, uintptr(fd), 0, 0)
645 if e1 != 0 { 664 if e1 != 0 {
@@ -1578,6 +1597,108 @@ func writelen(fd int, p *byte, np int) (n int, err error) {
1578 1597
1579// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 1598// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
1580 1599
1600func readv(fd int, iovs []Iovec) (n int, err error) {
1601 var _p0 unsafe.Pointer
1602 if len(iovs) > 0 {
1603 _p0 = unsafe.Pointer(&iovs[0])
1604 } else {
1605 _p0 = unsafe.Pointer(&_zero)
1606 }
1607 r0, _, e1 := Syscall(SYS_READV, uintptr(fd), uintptr(_p0), uintptr(len(iovs)))
1608 n = int(r0)
1609 if e1 != 0 {
1610 err = errnoErr(e1)
1611 }
1612 return
1613}
1614
1615// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
1616
1617func writev(fd int, iovs []Iovec) (n int, err error) {
1618 var _p0 unsafe.Pointer
1619 if len(iovs) > 0 {
1620 _p0 = unsafe.Pointer(&iovs[0])
1621 } else {
1622 _p0 = unsafe.Pointer(&_zero)
1623 }
1624 r0, _, e1 := Syscall(SYS_WRITEV, uintptr(fd), uintptr(_p0), uintptr(len(iovs)))
1625 n = int(r0)
1626 if e1 != 0 {
1627 err = errnoErr(e1)
1628 }
1629 return
1630}
1631
1632// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
1633
1634func preadv(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr) (n int, err error) {
1635 var _p0 unsafe.Pointer
1636 if len(iovs) > 0 {
1637 _p0 = unsafe.Pointer(&iovs[0])
1638 } else {
1639 _p0 = unsafe.Pointer(&_zero)
1640 }
1641 r0, _, e1 := Syscall6(SYS_PREADV, uintptr(fd), uintptr(_p0), uintptr(len(iovs)), uintptr(offs_l), uintptr(offs_h), 0)
1642 n = int(r0)
1643 if e1 != 0 {
1644 err = errnoErr(e1)
1645 }
1646 return
1647}
1648
1649// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
1650
1651func pwritev(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr) (n int, err error) {
1652 var _p0 unsafe.Pointer
1653 if len(iovs) > 0 {
1654 _p0 = unsafe.Pointer(&iovs[0])
1655 } else {
1656 _p0 = unsafe.Pointer(&_zero)
1657 }
1658 r0, _, e1 := Syscall6(SYS_PWRITEV, uintptr(fd), uintptr(_p0), uintptr(len(iovs)), uintptr(offs_l), uintptr(offs_h), 0)
1659 n = int(r0)
1660 if e1 != 0 {
1661 err = errnoErr(e1)
1662 }
1663 return
1664}
1665
1666// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
1667
1668func preadv2(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr, flags int) (n int, err error) {
1669 var _p0 unsafe.Pointer
1670 if len(iovs) > 0 {
1671 _p0 = unsafe.Pointer(&iovs[0])
1672 } else {
1673 _p0 = unsafe.Pointer(&_zero)
1674 }
1675 r0, _, e1 := Syscall6(SYS_PREADV2, uintptr(fd), uintptr(_p0), uintptr(len(iovs)), uintptr(offs_l), uintptr(offs_h), uintptr(flags))
1676 n = int(r0)
1677 if e1 != 0 {
1678 err = errnoErr(e1)
1679 }
1680 return
1681}
1682
1683// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
1684
1685func pwritev2(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr, flags int) (n int, err error) {
1686 var _p0 unsafe.Pointer
1687 if len(iovs) > 0 {
1688 _p0 = unsafe.Pointer(&iovs[0])
1689 } else {
1690 _p0 = unsafe.Pointer(&_zero)
1691 }
1692 r0, _, e1 := Syscall6(SYS_PWRITEV2, uintptr(fd), uintptr(_p0), uintptr(len(iovs)), uintptr(offs_l), uintptr(offs_h), uintptr(flags))
1693 n = int(r0)
1694 if e1 != 0 {
1695 err = errnoErr(e1)
1696 }
1697 return
1698}
1699
1700// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
1701
1581func munmap(addr uintptr, length uintptr) (err error) { 1702func munmap(addr uintptr, length uintptr) (err error) {
1582 _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) 1703 _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0)
1583 if e1 != 0 { 1704 if e1 != 0 {
@@ -1960,8 +2081,9 @@ func sendfile(outfd int, infd int, offset *int64, count int) (written int, err e
1960 2081
1961// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 2082// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
1962 2083
1963func Setfsgid(gid int) (err error) { 2084func setfsgid(gid int) (prev int, err error) {
1964 _, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0) 2085 r0, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0)
2086 prev = int(r0)
1965 if e1 != 0 { 2087 if e1 != 0 {
1966 err = errnoErr(e1) 2088 err = errnoErr(e1)
1967 } 2089 }
@@ -1970,8 +2092,9 @@ func Setfsgid(gid int) (err error) {
1970 2092
1971// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 2093// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
1972 2094
1973func Setfsuid(uid int) (err error) { 2095func setfsuid(uid int) (prev int, err error) {
1974 _, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0) 2096 r0, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0)
2097 prev = int(r0)
1975 if e1 != 0 { 2098 if e1 != 0 {
1976 err = errnoErr(e1) 2099 err = errnoErr(e1)
1977 } 2100 }
diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_mipsle.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_mipsle.go
index 20012b2..0997b6e 100644
--- a/vendor/golang.org/x/sys/unix/zsyscall_linux_mipsle.go
+++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_mipsle.go
@@ -305,6 +305,36 @@ func keyctlDH(cmd int, arg2 *KeyctlDHParams, buf []byte) (ret int, err error) {
305 305
306// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 306// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
307 307
308func keyctlRestrictKeyringByType(cmd int, arg2 int, keyType string, restriction string) (err error) {
309 var _p0 *byte
310 _p0, err = BytePtrFromString(keyType)
311 if err != nil {
312 return
313 }
314 var _p1 *byte
315 _p1, err = BytePtrFromString(restriction)
316 if err != nil {
317 return
318 }
319 _, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0, 0)
320 if e1 != 0 {
321 err = errnoErr(e1)
322 }
323 return
324}
325
326// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
327
328func keyctlRestrictKeyring(cmd int, arg2 int) (err error) {
329 _, _, e1 := Syscall(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), 0)
330 if e1 != 0 {
331 err = errnoErr(e1)
332 }
333 return
334}
335
336// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
337
308func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) { 338func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) {
309 _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) 339 _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0)
310 if e1 != 0 { 340 if e1 != 0 {
@@ -629,17 +659,6 @@ func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {
629 659
630// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 660// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
631 661
632func fcntl(fd int, cmd int, arg int) (val int, err error) {
633 r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg))
634 val = int(r0)
635 if e1 != 0 {
636 err = errnoErr(e1)
637 }
638 return
639}
640
641// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
642
643func Fdatasync(fd int) (err error) { 662func Fdatasync(fd int) (err error) {
644 _, _, e1 := Syscall(SYS_FDATASYNC, uintptr(fd), 0, 0) 663 _, _, e1 := Syscall(SYS_FDATASYNC, uintptr(fd), 0, 0)
645 if e1 != 0 { 664 if e1 != 0 {
@@ -1578,6 +1597,108 @@ func writelen(fd int, p *byte, np int) (n int, err error) {
1578 1597
1579// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 1598// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
1580 1599
1600func readv(fd int, iovs []Iovec) (n int, err error) {
1601 var _p0 unsafe.Pointer
1602 if len(iovs) > 0 {
1603 _p0 = unsafe.Pointer(&iovs[0])
1604 } else {
1605 _p0 = unsafe.Pointer(&_zero)
1606 }
1607 r0, _, e1 := Syscall(SYS_READV, uintptr(fd), uintptr(_p0), uintptr(len(iovs)))
1608 n = int(r0)
1609 if e1 != 0 {
1610 err = errnoErr(e1)
1611 }
1612 return
1613}
1614
1615// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
1616
1617func writev(fd int, iovs []Iovec) (n int, err error) {
1618 var _p0 unsafe.Pointer
1619 if len(iovs) > 0 {
1620 _p0 = unsafe.Pointer(&iovs[0])
1621 } else {
1622 _p0 = unsafe.Pointer(&_zero)
1623 }
1624 r0, _, e1 := Syscall(SYS_WRITEV, uintptr(fd), uintptr(_p0), uintptr(len(iovs)))
1625 n = int(r0)
1626 if e1 != 0 {
1627 err = errnoErr(e1)
1628 }
1629 return
1630}
1631
1632// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
1633
1634func preadv(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr) (n int, err error) {
1635 var _p0 unsafe.Pointer
1636 if len(iovs) > 0 {
1637 _p0 = unsafe.Pointer(&iovs[0])
1638 } else {
1639 _p0 = unsafe.Pointer(&_zero)
1640 }
1641 r0, _, e1 := Syscall6(SYS_PREADV, uintptr(fd), uintptr(_p0), uintptr(len(iovs)), uintptr(offs_l), uintptr(offs_h), 0)
1642 n = int(r0)
1643 if e1 != 0 {
1644 err = errnoErr(e1)
1645 }
1646 return
1647}
1648
1649// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
1650
1651func pwritev(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr) (n int, err error) {
1652 var _p0 unsafe.Pointer
1653 if len(iovs) > 0 {
1654 _p0 = unsafe.Pointer(&iovs[0])
1655 } else {
1656 _p0 = unsafe.Pointer(&_zero)
1657 }
1658 r0, _, e1 := Syscall6(SYS_PWRITEV, uintptr(fd), uintptr(_p0), uintptr(len(iovs)), uintptr(offs_l), uintptr(offs_h), 0)
1659 n = int(r0)
1660 if e1 != 0 {
1661 err = errnoErr(e1)
1662 }
1663 return
1664}
1665
1666// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
1667
1668func preadv2(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr, flags int) (n int, err error) {
1669 var _p0 unsafe.Pointer
1670 if len(iovs) > 0 {
1671 _p0 = unsafe.Pointer(&iovs[0])
1672 } else {
1673 _p0 = unsafe.Pointer(&_zero)
1674 }
1675 r0, _, e1 := Syscall6(SYS_PREADV2, uintptr(fd), uintptr(_p0), uintptr(len(iovs)), uintptr(offs_l), uintptr(offs_h), uintptr(flags))
1676 n = int(r0)
1677 if e1 != 0 {
1678 err = errnoErr(e1)
1679 }
1680 return
1681}
1682
1683// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
1684
1685func pwritev2(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr, flags int) (n int, err error) {
1686 var _p0 unsafe.Pointer
1687 if len(iovs) > 0 {
1688 _p0 = unsafe.Pointer(&iovs[0])
1689 } else {
1690 _p0 = unsafe.Pointer(&_zero)
1691 }
1692 r0, _, e1 := Syscall6(SYS_PWRITEV2, uintptr(fd), uintptr(_p0), uintptr(len(iovs)), uintptr(offs_l), uintptr(offs_h), uintptr(flags))
1693 n = int(r0)
1694 if e1 != 0 {
1695 err = errnoErr(e1)
1696 }
1697 return
1698}
1699
1700// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
1701
1581func munmap(addr uintptr, length uintptr) (err error) { 1702func munmap(addr uintptr, length uintptr) (err error) {
1582 _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) 1703 _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0)
1583 if e1 != 0 { 1704 if e1 != 0 {
@@ -1930,8 +2051,9 @@ func sendfile(outfd int, infd int, offset *int64, count int) (written int, err e
1930 2051
1931// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 2052// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
1932 2053
1933func Setfsgid(gid int) (err error) { 2054func setfsgid(gid int) (prev int, err error) {
1934 _, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0) 2055 r0, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0)
2056 prev = int(r0)
1935 if e1 != 0 { 2057 if e1 != 0 {
1936 err = errnoErr(e1) 2058 err = errnoErr(e1)
1937 } 2059 }
@@ -1940,8 +2062,9 @@ func Setfsgid(gid int) (err error) {
1940 2062
1941// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 2063// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
1942 2064
1943func Setfsuid(uid int) (err error) { 2065func setfsuid(uid int) (prev int, err error) {
1944 _, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0) 2066 r0, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0)
2067 prev = int(r0)
1945 if e1 != 0 { 2068 if e1 != 0 {
1946 err = errnoErr(e1) 2069 err = errnoErr(e1)
1947 } 2070 }
diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64.go
index 2b520de..a601e72 100644
--- a/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64.go
+++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64.go
@@ -305,6 +305,36 @@ func keyctlDH(cmd int, arg2 *KeyctlDHParams, buf []byte) (ret int, err error) {
305 305
306// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 306// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
307 307
308func keyctlRestrictKeyringByType(cmd int, arg2 int, keyType string, restriction string) (err error) {
309 var _p0 *byte
310 _p0, err = BytePtrFromString(keyType)
311 if err != nil {
312 return
313 }
314 var _p1 *byte
315 _p1, err = BytePtrFromString(restriction)
316 if err != nil {
317 return
318 }
319 _, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0, 0)
320 if e1 != 0 {
321 err = errnoErr(e1)
322 }
323 return
324}
325
326// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
327
328func keyctlRestrictKeyring(cmd int, arg2 int) (err error) {
329 _, _, e1 := Syscall(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), 0)
330 if e1 != 0 {
331 err = errnoErr(e1)
332 }
333 return
334}
335
336// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
337
308func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) { 338func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) {
309 _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) 339 _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0)
310 if e1 != 0 { 340 if e1 != 0 {
@@ -629,17 +659,6 @@ func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {
629 659
630// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 660// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
631 661
632func fcntl(fd int, cmd int, arg int) (val int, err error) {
633 r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg))
634 val = int(r0)
635 if e1 != 0 {
636 err = errnoErr(e1)
637 }
638 return
639}
640
641// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
642
643func Fdatasync(fd int) (err error) { 662func Fdatasync(fd int) (err error) {
644 _, _, e1 := Syscall(SYS_FDATASYNC, uintptr(fd), 0, 0) 663 _, _, e1 := Syscall(SYS_FDATASYNC, uintptr(fd), 0, 0)
645 if e1 != 0 { 664 if e1 != 0 {
@@ -1578,6 +1597,108 @@ func writelen(fd int, p *byte, np int) (n int, err error) {
1578 1597
1579// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 1598// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
1580 1599
1600func readv(fd int, iovs []Iovec) (n int, err error) {
1601 var _p0 unsafe.Pointer
1602 if len(iovs) > 0 {
1603 _p0 = unsafe.Pointer(&iovs[0])
1604 } else {
1605 _p0 = unsafe.Pointer(&_zero)
1606 }
1607 r0, _, e1 := Syscall(SYS_READV, uintptr(fd), uintptr(_p0), uintptr(len(iovs)))
1608 n = int(r0)
1609 if e1 != 0 {
1610 err = errnoErr(e1)
1611 }
1612 return
1613}
1614
1615// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
1616
1617func writev(fd int, iovs []Iovec) (n int, err error) {
1618 var _p0 unsafe.Pointer
1619 if len(iovs) > 0 {
1620 _p0 = unsafe.Pointer(&iovs[0])
1621 } else {
1622 _p0 = unsafe.Pointer(&_zero)
1623 }
1624 r0, _, e1 := Syscall(SYS_WRITEV, uintptr(fd), uintptr(_p0), uintptr(len(iovs)))
1625 n = int(r0)
1626 if e1 != 0 {
1627 err = errnoErr(e1)
1628 }
1629 return
1630}
1631
1632// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
1633
1634func preadv(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr) (n int, err error) {
1635 var _p0 unsafe.Pointer
1636 if len(iovs) > 0 {
1637 _p0 = unsafe.Pointer(&iovs[0])
1638 } else {
1639 _p0 = unsafe.Pointer(&_zero)
1640 }
1641 r0, _, e1 := Syscall6(SYS_PREADV, uintptr(fd), uintptr(_p0), uintptr(len(iovs)), uintptr(offs_l), uintptr(offs_h), 0)
1642 n = int(r0)
1643 if e1 != 0 {
1644 err = errnoErr(e1)
1645 }
1646 return
1647}
1648
1649// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
1650
1651func pwritev(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr) (n int, err error) {
1652 var _p0 unsafe.Pointer
1653 if len(iovs) > 0 {
1654 _p0 = unsafe.Pointer(&iovs[0])
1655 } else {
1656 _p0 = unsafe.Pointer(&_zero)
1657 }
1658 r0, _, e1 := Syscall6(SYS_PWRITEV, uintptr(fd), uintptr(_p0), uintptr(len(iovs)), uintptr(offs_l), uintptr(offs_h), 0)
1659 n = int(r0)
1660 if e1 != 0 {
1661 err = errnoErr(e1)
1662 }
1663 return
1664}
1665
1666// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
1667
1668func preadv2(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr, flags int) (n int, err error) {
1669 var _p0 unsafe.Pointer
1670 if len(iovs) > 0 {
1671 _p0 = unsafe.Pointer(&iovs[0])
1672 } else {
1673 _p0 = unsafe.Pointer(&_zero)
1674 }
1675 r0, _, e1 := Syscall6(SYS_PREADV2, uintptr(fd), uintptr(_p0), uintptr(len(iovs)), uintptr(offs_l), uintptr(offs_h), uintptr(flags))
1676 n = int(r0)
1677 if e1 != 0 {
1678 err = errnoErr(e1)
1679 }
1680 return
1681}
1682
1683// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
1684
1685func pwritev2(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr, flags int) (n int, err error) {
1686 var _p0 unsafe.Pointer
1687 if len(iovs) > 0 {
1688 _p0 = unsafe.Pointer(&iovs[0])
1689 } else {
1690 _p0 = unsafe.Pointer(&_zero)
1691 }
1692 r0, _, e1 := Syscall6(SYS_PWRITEV2, uintptr(fd), uintptr(_p0), uintptr(len(iovs)), uintptr(offs_l), uintptr(offs_h), uintptr(flags))
1693 n = int(r0)
1694 if e1 != 0 {
1695 err = errnoErr(e1)
1696 }
1697 return
1698}
1699
1700// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
1701
1581func munmap(addr uintptr, length uintptr) (err error) { 1702func munmap(addr uintptr, length uintptr) (err error) {
1582 _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) 1703 _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0)
1583 if e1 != 0 { 1704 if e1 != 0 {
@@ -2042,8 +2163,9 @@ func sendfile(outfd int, infd int, offset *int64, count int) (written int, err e
2042 2163
2043// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 2164// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
2044 2165
2045func Setfsgid(gid int) (err error) { 2166func setfsgid(gid int) (prev int, err error) {
2046 _, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0) 2167 r0, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0)
2168 prev = int(r0)
2047 if e1 != 0 { 2169 if e1 != 0 {
2048 err = errnoErr(e1) 2170 err = errnoErr(e1)
2049 } 2171 }
@@ -2052,8 +2174,9 @@ func Setfsgid(gid int) (err error) {
2052 2174
2053// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 2175// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
2054 2176
2055func Setfsuid(uid int) (err error) { 2177func setfsuid(uid int) (prev int, err error) {
2056 _, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0) 2178 r0, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0)
2179 prev = int(r0)
2057 if e1 != 0 { 2180 if e1 != 0 {
2058 err = errnoErr(e1) 2181 err = errnoErr(e1)
2059 } 2182 }
diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64le.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64le.go
index d9f044c..6e4cb19 100644
--- a/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64le.go
+++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64le.go
@@ -305,6 +305,36 @@ func keyctlDH(cmd int, arg2 *KeyctlDHParams, buf []byte) (ret int, err error) {
305 305
306// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 306// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
307 307
308func keyctlRestrictKeyringByType(cmd int, arg2 int, keyType string, restriction string) (err error) {
309 var _p0 *byte
310 _p0, err = BytePtrFromString(keyType)
311 if err != nil {
312 return
313 }
314 var _p1 *byte
315 _p1, err = BytePtrFromString(restriction)
316 if err != nil {
317 return
318 }
319 _, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0, 0)
320 if e1 != 0 {
321 err = errnoErr(e1)
322 }
323 return
324}
325
326// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
327
328func keyctlRestrictKeyring(cmd int, arg2 int) (err error) {
329 _, _, e1 := Syscall(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), 0)
330 if e1 != 0 {
331 err = errnoErr(e1)
332 }
333 return
334}
335
336// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
337
308func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) { 338func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) {
309 _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) 339 _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0)
310 if e1 != 0 { 340 if e1 != 0 {
@@ -629,17 +659,6 @@ func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {
629 659
630// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 660// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
631 661
632func fcntl(fd int, cmd int, arg int) (val int, err error) {
633 r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg))
634 val = int(r0)
635 if e1 != 0 {
636 err = errnoErr(e1)
637 }
638 return
639}
640
641// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
642
643func Fdatasync(fd int) (err error) { 662func Fdatasync(fd int) (err error) {
644 _, _, e1 := Syscall(SYS_FDATASYNC, uintptr(fd), 0, 0) 663 _, _, e1 := Syscall(SYS_FDATASYNC, uintptr(fd), 0, 0)
645 if e1 != 0 { 664 if e1 != 0 {
@@ -1578,6 +1597,108 @@ func writelen(fd int, p *byte, np int) (n int, err error) {
1578 1597
1579// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 1598// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
1580 1599
1600func readv(fd int, iovs []Iovec) (n int, err error) {
1601 var _p0 unsafe.Pointer
1602 if len(iovs) > 0 {
1603 _p0 = unsafe.Pointer(&iovs[0])
1604 } else {
1605 _p0 = unsafe.Pointer(&_zero)
1606 }
1607 r0, _, e1 := Syscall(SYS_READV, uintptr(fd), uintptr(_p0), uintptr(len(iovs)))
1608 n = int(r0)
1609 if e1 != 0 {
1610 err = errnoErr(e1)
1611 }
1612 return
1613}
1614
1615// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
1616
1617func writev(fd int, iovs []Iovec) (n int, err error) {
1618 var _p0 unsafe.Pointer
1619 if len(iovs) > 0 {
1620 _p0 = unsafe.Pointer(&iovs[0])
1621 } else {
1622 _p0 = unsafe.Pointer(&_zero)
1623 }
1624 r0, _, e1 := Syscall(SYS_WRITEV, uintptr(fd), uintptr(_p0), uintptr(len(iovs)))
1625 n = int(r0)
1626 if e1 != 0 {
1627 err = errnoErr(e1)
1628 }
1629 return
1630}
1631
1632// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
1633
1634func preadv(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr) (n int, err error) {
1635 var _p0 unsafe.Pointer
1636 if len(iovs) > 0 {
1637 _p0 = unsafe.Pointer(&iovs[0])
1638 } else {
1639 _p0 = unsafe.Pointer(&_zero)
1640 }
1641 r0, _, e1 := Syscall6(SYS_PREADV, uintptr(fd), uintptr(_p0), uintptr(len(iovs)), uintptr(offs_l), uintptr(offs_h), 0)
1642 n = int(r0)
1643 if e1 != 0 {
1644 err = errnoErr(e1)
1645 }
1646 return
1647}
1648
1649// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
1650
1651func pwritev(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr) (n int, err error) {
1652 var _p0 unsafe.Pointer
1653 if len(iovs) > 0 {
1654 _p0 = unsafe.Pointer(&iovs[0])
1655 } else {
1656 _p0 = unsafe.Pointer(&_zero)
1657 }
1658 r0, _, e1 := Syscall6(SYS_PWRITEV, uintptr(fd), uintptr(_p0), uintptr(len(iovs)), uintptr(offs_l), uintptr(offs_h), 0)
1659 n = int(r0)
1660 if e1 != 0 {
1661 err = errnoErr(e1)
1662 }
1663 return
1664}
1665
1666// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
1667
1668func preadv2(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr, flags int) (n int, err error) {
1669 var _p0 unsafe.Pointer
1670 if len(iovs) > 0 {
1671 _p0 = unsafe.Pointer(&iovs[0])
1672 } else {
1673 _p0 = unsafe.Pointer(&_zero)
1674 }
1675 r0, _, e1 := Syscall6(SYS_PREADV2, uintptr(fd), uintptr(_p0), uintptr(len(iovs)), uintptr(offs_l), uintptr(offs_h), uintptr(flags))
1676 n = int(r0)
1677 if e1 != 0 {
1678 err = errnoErr(e1)
1679 }
1680 return
1681}
1682
1683// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
1684
1685func pwritev2(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr, flags int) (n int, err error) {
1686 var _p0 unsafe.Pointer
1687 if len(iovs) > 0 {
1688 _p0 = unsafe.Pointer(&iovs[0])
1689 } else {
1690 _p0 = unsafe.Pointer(&_zero)
1691 }
1692 r0, _, e1 := Syscall6(SYS_PWRITEV2, uintptr(fd), uintptr(_p0), uintptr(len(iovs)), uintptr(offs_l), uintptr(offs_h), uintptr(flags))
1693 n = int(r0)
1694 if e1 != 0 {
1695 err = errnoErr(e1)
1696 }
1697 return
1698}
1699
1700// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
1701
1581func munmap(addr uintptr, length uintptr) (err error) { 1702func munmap(addr uintptr, length uintptr) (err error) {
1582 _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) 1703 _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0)
1583 if e1 != 0 { 1704 if e1 != 0 {
@@ -2042,8 +2163,9 @@ func sendfile(outfd int, infd int, offset *int64, count int) (written int, err e
2042 2163
2043// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 2164// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
2044 2165
2045func Setfsgid(gid int) (err error) { 2166func setfsgid(gid int) (prev int, err error) {
2046 _, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0) 2167 r0, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0)
2168 prev = int(r0)
2047 if e1 != 0 { 2169 if e1 != 0 {
2048 err = errnoErr(e1) 2170 err = errnoErr(e1)
2049 } 2171 }
@@ -2052,8 +2174,9 @@ func Setfsgid(gid int) (err error) {
2052 2174
2053// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 2175// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
2054 2176
2055func Setfsuid(uid int) (err error) { 2177func setfsuid(uid int) (prev int, err error) {
2056 _, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0) 2178 r0, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0)
2179 prev = int(r0)
2057 if e1 != 0 { 2180 if e1 != 0 {
2058 err = errnoErr(e1) 2181 err = errnoErr(e1)
2059 } 2182 }
diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_riscv64.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_riscv64.go
index 9feed65..e690f19 100644
--- a/vendor/golang.org/x/sys/unix/zsyscall_linux_riscv64.go
+++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_riscv64.go
@@ -305,6 +305,36 @@ func keyctlDH(cmd int, arg2 *KeyctlDHParams, buf []byte) (ret int, err error) {
305 305
306// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 306// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
307 307
308func keyctlRestrictKeyringByType(cmd int, arg2 int, keyType string, restriction string) (err error) {
309 var _p0 *byte
310 _p0, err = BytePtrFromString(keyType)
311 if err != nil {
312 return
313 }
314 var _p1 *byte
315 _p1, err = BytePtrFromString(restriction)
316 if err != nil {
317 return
318 }
319 _, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0, 0)
320 if e1 != 0 {
321 err = errnoErr(e1)
322 }
323 return
324}
325
326// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
327
328func keyctlRestrictKeyring(cmd int, arg2 int) (err error) {
329 _, _, e1 := Syscall(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), 0)
330 if e1 != 0 {
331 err = errnoErr(e1)
332 }
333 return
334}
335
336// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
337
308func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) { 338func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) {
309 _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) 339 _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0)
310 if e1 != 0 { 340 if e1 != 0 {
@@ -629,17 +659,6 @@ func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {
629 659
630// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 660// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
631 661
632func fcntl(fd int, cmd int, arg int) (val int, err error) {
633 r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg))
634 val = int(r0)
635 if e1 != 0 {
636 err = errnoErr(e1)
637 }
638 return
639}
640
641// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
642
643func Fdatasync(fd int) (err error) { 662func Fdatasync(fd int) (err error) {
644 _, _, e1 := Syscall(SYS_FDATASYNC, uintptr(fd), 0, 0) 663 _, _, e1 := Syscall(SYS_FDATASYNC, uintptr(fd), 0, 0)
645 if e1 != 0 { 664 if e1 != 0 {
@@ -1578,6 +1597,108 @@ func writelen(fd int, p *byte, np int) (n int, err error) {
1578 1597
1579// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 1598// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
1580 1599
1600func readv(fd int, iovs []Iovec) (n int, err error) {
1601 var _p0 unsafe.Pointer
1602 if len(iovs) > 0 {
1603 _p0 = unsafe.Pointer(&iovs[0])
1604 } else {
1605 _p0 = unsafe.Pointer(&_zero)
1606 }
1607 r0, _, e1 := Syscall(SYS_READV, uintptr(fd), uintptr(_p0), uintptr(len(iovs)))
1608 n = int(r0)
1609 if e1 != 0 {
1610 err = errnoErr(e1)
1611 }
1612 return
1613}
1614
1615// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
1616
1617func writev(fd int, iovs []Iovec) (n int, err error) {
1618 var _p0 unsafe.Pointer
1619 if len(iovs) > 0 {
1620 _p0 = unsafe.Pointer(&iovs[0])
1621 } else {
1622 _p0 = unsafe.Pointer(&_zero)
1623 }
1624 r0, _, e1 := Syscall(SYS_WRITEV, uintptr(fd), uintptr(_p0), uintptr(len(iovs)))
1625 n = int(r0)
1626 if e1 != 0 {
1627 err = errnoErr(e1)
1628 }
1629 return
1630}
1631
1632// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
1633
1634func preadv(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr) (n int, err error) {
1635 var _p0 unsafe.Pointer
1636 if len(iovs) > 0 {
1637 _p0 = unsafe.Pointer(&iovs[0])
1638 } else {
1639 _p0 = unsafe.Pointer(&_zero)
1640 }
1641 r0, _, e1 := Syscall6(SYS_PREADV, uintptr(fd), uintptr(_p0), uintptr(len(iovs)), uintptr(offs_l), uintptr(offs_h), 0)
1642 n = int(r0)
1643 if e1 != 0 {
1644 err = errnoErr(e1)
1645 }
1646 return
1647}
1648
1649// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
1650
1651func pwritev(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr) (n int, err error) {
1652 var _p0 unsafe.Pointer
1653 if len(iovs) > 0 {
1654 _p0 = unsafe.Pointer(&iovs[0])
1655 } else {
1656 _p0 = unsafe.Pointer(&_zero)
1657 }
1658 r0, _, e1 := Syscall6(SYS_PWRITEV, uintptr(fd), uintptr(_p0), uintptr(len(iovs)), uintptr(offs_l), uintptr(offs_h), 0)
1659 n = int(r0)
1660 if e1 != 0 {
1661 err = errnoErr(e1)
1662 }
1663 return
1664}
1665
1666// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
1667
1668func preadv2(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr, flags int) (n int, err error) {
1669 var _p0 unsafe.Pointer
1670 if len(iovs) > 0 {
1671 _p0 = unsafe.Pointer(&iovs[0])
1672 } else {
1673 _p0 = unsafe.Pointer(&_zero)
1674 }
1675 r0, _, e1 := Syscall6(SYS_PREADV2, uintptr(fd), uintptr(_p0), uintptr(len(iovs)), uintptr(offs_l), uintptr(offs_h), uintptr(flags))
1676 n = int(r0)
1677 if e1 != 0 {
1678 err = errnoErr(e1)
1679 }
1680 return
1681}
1682
1683// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
1684
1685func pwritev2(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr, flags int) (n int, err error) {
1686 var _p0 unsafe.Pointer
1687 if len(iovs) > 0 {
1688 _p0 = unsafe.Pointer(&iovs[0])
1689 } else {
1690 _p0 = unsafe.Pointer(&_zero)
1691 }
1692 r0, _, e1 := Syscall6(SYS_PWRITEV2, uintptr(fd), uintptr(_p0), uintptr(len(iovs)), uintptr(offs_l), uintptr(offs_h), uintptr(flags))
1693 n = int(r0)
1694 if e1 != 0 {
1695 err = errnoErr(e1)
1696 }
1697 return
1698}
1699
1700// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
1701
1581func munmap(addr uintptr, length uintptr) (err error) { 1702func munmap(addr uintptr, length uintptr) (err error) {
1582 _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) 1703 _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0)
1583 if e1 != 0 { 1704 if e1 != 0 {
@@ -1919,8 +2040,9 @@ func sendfile(outfd int, infd int, offset *int64, count int) (written int, err e
1919 2040
1920// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 2041// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
1921 2042
1922func Setfsgid(gid int) (err error) { 2043func setfsgid(gid int) (prev int, err error) {
1923 _, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0) 2044 r0, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0)
2045 prev = int(r0)
1924 if e1 != 0 { 2046 if e1 != 0 {
1925 err = errnoErr(e1) 2047 err = errnoErr(e1)
1926 } 2048 }
@@ -1929,8 +2051,9 @@ func Setfsgid(gid int) (err error) {
1929 2051
1930// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 2052// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
1931 2053
1932func Setfsuid(uid int) (err error) { 2054func setfsuid(uid int) (prev int, err error) {
1933 _, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0) 2055 r0, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0)
2056 prev = int(r0)
1934 if e1 != 0 { 2057 if e1 != 0 {
1935 err = errnoErr(e1) 2058 err = errnoErr(e1)
1936 } 2059 }
diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_s390x.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_s390x.go
index 0a65150..f4cd086 100644
--- a/vendor/golang.org/x/sys/unix/zsyscall_linux_s390x.go
+++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_s390x.go
@@ -305,6 +305,36 @@ func keyctlDH(cmd int, arg2 *KeyctlDHParams, buf []byte) (ret int, err error) {
305 305
306// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 306// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
307 307
308func keyctlRestrictKeyringByType(cmd int, arg2 int, keyType string, restriction string) (err error) {
309 var _p0 *byte
310 _p0, err = BytePtrFromString(keyType)
311 if err != nil {
312 return
313 }
314 var _p1 *byte
315 _p1, err = BytePtrFromString(restriction)
316 if err != nil {
317 return
318 }
319 _, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0, 0)
320 if e1 != 0 {
321 err = errnoErr(e1)
322 }
323 return
324}
325
326// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
327
328func keyctlRestrictKeyring(cmd int, arg2 int) (err error) {
329 _, _, e1 := Syscall(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), 0)
330 if e1 != 0 {
331 err = errnoErr(e1)
332 }
333 return
334}
335
336// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
337
308func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) { 338func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) {
309 _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) 339 _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0)
310 if e1 != 0 { 340 if e1 != 0 {
@@ -629,17 +659,6 @@ func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {
629 659
630// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 660// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
631 661
632func fcntl(fd int, cmd int, arg int) (val int, err error) {
633 r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg))
634 val = int(r0)
635 if e1 != 0 {
636 err = errnoErr(e1)
637 }
638 return
639}
640
641// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
642
643func Fdatasync(fd int) (err error) { 662func Fdatasync(fd int) (err error) {
644 _, _, e1 := Syscall(SYS_FDATASYNC, uintptr(fd), 0, 0) 663 _, _, e1 := Syscall(SYS_FDATASYNC, uintptr(fd), 0, 0)
645 if e1 != 0 { 664 if e1 != 0 {
@@ -1578,6 +1597,108 @@ func writelen(fd int, p *byte, np int) (n int, err error) {
1578 1597
1579// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 1598// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
1580 1599
1600func readv(fd int, iovs []Iovec) (n int, err error) {
1601 var _p0 unsafe.Pointer
1602 if len(iovs) > 0 {
1603 _p0 = unsafe.Pointer(&iovs[0])
1604 } else {
1605 _p0 = unsafe.Pointer(&_zero)
1606 }
1607 r0, _, e1 := Syscall(SYS_READV, uintptr(fd), uintptr(_p0), uintptr(len(iovs)))
1608 n = int(r0)
1609 if e1 != 0 {
1610 err = errnoErr(e1)
1611 }
1612 return
1613}
1614
1615// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
1616
1617func writev(fd int, iovs []Iovec) (n int, err error) {
1618 var _p0 unsafe.Pointer
1619 if len(iovs) > 0 {
1620 _p0 = unsafe.Pointer(&iovs[0])
1621 } else {
1622 _p0 = unsafe.Pointer(&_zero)
1623 }
1624 r0, _, e1 := Syscall(SYS_WRITEV, uintptr(fd), uintptr(_p0), uintptr(len(iovs)))
1625 n = int(r0)
1626 if e1 != 0 {
1627 err = errnoErr(e1)
1628 }
1629 return
1630}
1631
1632// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
1633
1634func preadv(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr) (n int, err error) {
1635 var _p0 unsafe.Pointer
1636 if len(iovs) > 0 {
1637 _p0 = unsafe.Pointer(&iovs[0])
1638 } else {
1639 _p0 = unsafe.Pointer(&_zero)
1640 }
1641 r0, _, e1 := Syscall6(SYS_PREADV, uintptr(fd), uintptr(_p0), uintptr(len(iovs)), uintptr(offs_l), uintptr(offs_h), 0)
1642 n = int(r0)
1643 if e1 != 0 {
1644 err = errnoErr(e1)
1645 }
1646 return
1647}
1648
1649// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
1650
1651func pwritev(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr) (n int, err error) {
1652 var _p0 unsafe.Pointer
1653 if len(iovs) > 0 {
1654 _p0 = unsafe.Pointer(&iovs[0])
1655 } else {
1656 _p0 = unsafe.Pointer(&_zero)
1657 }
1658 r0, _, e1 := Syscall6(SYS_PWRITEV, uintptr(fd), uintptr(_p0), uintptr(len(iovs)), uintptr(offs_l), uintptr(offs_h), 0)
1659 n = int(r0)
1660 if e1 != 0 {
1661 err = errnoErr(e1)
1662 }
1663 return
1664}
1665
1666// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
1667
1668func preadv2(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr, flags int) (n int, err error) {
1669 var _p0 unsafe.Pointer
1670 if len(iovs) > 0 {
1671 _p0 = unsafe.Pointer(&iovs[0])
1672 } else {
1673 _p0 = unsafe.Pointer(&_zero)
1674 }
1675 r0, _, e1 := Syscall6(SYS_PREADV2, uintptr(fd), uintptr(_p0), uintptr(len(iovs)), uintptr(offs_l), uintptr(offs_h), uintptr(flags))
1676 n = int(r0)
1677 if e1 != 0 {
1678 err = errnoErr(e1)
1679 }
1680 return
1681}
1682
1683// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
1684
1685func pwritev2(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr, flags int) (n int, err error) {
1686 var _p0 unsafe.Pointer
1687 if len(iovs) > 0 {
1688 _p0 = unsafe.Pointer(&iovs[0])
1689 } else {
1690 _p0 = unsafe.Pointer(&_zero)
1691 }
1692 r0, _, e1 := Syscall6(SYS_PWRITEV2, uintptr(fd), uintptr(_p0), uintptr(len(iovs)), uintptr(offs_l), uintptr(offs_h), uintptr(flags))
1693 n = int(r0)
1694 if e1 != 0 {
1695 err = errnoErr(e1)
1696 }
1697 return
1698}
1699
1700// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
1701
1581func munmap(addr uintptr, length uintptr) (err error) { 1702func munmap(addr uintptr, length uintptr) (err error) {
1582 _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) 1703 _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0)
1583 if e1 != 0 { 1704 if e1 != 0 {
@@ -2012,8 +2133,9 @@ func sendfile(outfd int, infd int, offset *int64, count int) (written int, err e
2012 2133
2013// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 2134// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
2014 2135
2015func Setfsgid(gid int) (err error) { 2136func setfsgid(gid int) (prev int, err error) {
2016 _, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0) 2137 r0, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0)
2138 prev = int(r0)
2017 if e1 != 0 { 2139 if e1 != 0 {
2018 err = errnoErr(e1) 2140 err = errnoErr(e1)
2019 } 2141 }
@@ -2022,8 +2144,9 @@ func Setfsgid(gid int) (err error) {
2022 2144
2023// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 2145// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
2024 2146
2025func Setfsuid(uid int) (err error) { 2147func setfsuid(uid int) (prev int, err error) {
2026 _, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0) 2148 r0, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0)
2149 prev = int(r0)
2027 if e1 != 0 { 2150 if e1 != 0 {
2028 err = errnoErr(e1) 2151 err = errnoErr(e1)
2029 } 2152 }
diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_sparc64.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_sparc64.go
index e27f669..2447f2a 100644
--- a/vendor/golang.org/x/sys/unix/zsyscall_linux_sparc64.go
+++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_sparc64.go
@@ -305,6 +305,36 @@ func keyctlDH(cmd int, arg2 *KeyctlDHParams, buf []byte) (ret int, err error) {
305 305
306// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 306// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
307 307
308func keyctlRestrictKeyringByType(cmd int, arg2 int, keyType string, restriction string) (err error) {
309 var _p0 *byte
310 _p0, err = BytePtrFromString(keyType)
311 if err != nil {
312 return
313 }
314 var _p1 *byte
315 _p1, err = BytePtrFromString(restriction)
316 if err != nil {
317 return
318 }
319 _, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0, 0)
320 if e1 != 0 {
321 err = errnoErr(e1)
322 }
323 return
324}
325
326// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
327
328func keyctlRestrictKeyring(cmd int, arg2 int) (err error) {
329 _, _, e1 := Syscall(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), 0)
330 if e1 != 0 {
331 err = errnoErr(e1)
332 }
333 return
334}
335
336// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
337
308func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) { 338func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) {
309 _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) 339 _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0)
310 if e1 != 0 { 340 if e1 != 0 {
@@ -629,17 +659,6 @@ func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {
629 659
630// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 660// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
631 661
632func fcntl(fd int, cmd int, arg int) (val int, err error) {
633 r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg))
634 val = int(r0)
635 if e1 != 0 {
636 err = errnoErr(e1)
637 }
638 return
639}
640
641// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
642
643func Fdatasync(fd int) (err error) { 662func Fdatasync(fd int) (err error) {
644 _, _, e1 := Syscall(SYS_FDATASYNC, uintptr(fd), 0, 0) 663 _, _, e1 := Syscall(SYS_FDATASYNC, uintptr(fd), 0, 0)
645 if e1 != 0 { 664 if e1 != 0 {
@@ -1578,6 +1597,108 @@ func writelen(fd int, p *byte, np int) (n int, err error) {
1578 1597
1579// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 1598// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
1580 1599
1600func readv(fd int, iovs []Iovec) (n int, err error) {
1601 var _p0 unsafe.Pointer
1602 if len(iovs) > 0 {
1603 _p0 = unsafe.Pointer(&iovs[0])
1604 } else {
1605 _p0 = unsafe.Pointer(&_zero)
1606 }
1607 r0, _, e1 := Syscall(SYS_READV, uintptr(fd), uintptr(_p0), uintptr(len(iovs)))
1608 n = int(r0)
1609 if e1 != 0 {
1610 err = errnoErr(e1)
1611 }
1612 return
1613}
1614
1615// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
1616
1617func writev(fd int, iovs []Iovec) (n int, err error) {
1618 var _p0 unsafe.Pointer
1619 if len(iovs) > 0 {
1620 _p0 = unsafe.Pointer(&iovs[0])
1621 } else {
1622 _p0 = unsafe.Pointer(&_zero)
1623 }
1624 r0, _, e1 := Syscall(SYS_WRITEV, uintptr(fd), uintptr(_p0), uintptr(len(iovs)))
1625 n = int(r0)
1626 if e1 != 0 {
1627 err = errnoErr(e1)
1628 }
1629 return
1630}
1631
1632// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
1633
1634func preadv(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr) (n int, err error) {
1635 var _p0 unsafe.Pointer
1636 if len(iovs) > 0 {
1637 _p0 = unsafe.Pointer(&iovs[0])
1638 } else {
1639 _p0 = unsafe.Pointer(&_zero)
1640 }
1641 r0, _, e1 := Syscall6(SYS_PREADV, uintptr(fd), uintptr(_p0), uintptr(len(iovs)), uintptr(offs_l), uintptr(offs_h), 0)
1642 n = int(r0)
1643 if e1 != 0 {
1644 err = errnoErr(e1)
1645 }
1646 return
1647}
1648
1649// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
1650
1651func pwritev(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr) (n int, err error) {
1652 var _p0 unsafe.Pointer
1653 if len(iovs) > 0 {
1654 _p0 = unsafe.Pointer(&iovs[0])
1655 } else {
1656 _p0 = unsafe.Pointer(&_zero)
1657 }
1658 r0, _, e1 := Syscall6(SYS_PWRITEV, uintptr(fd), uintptr(_p0), uintptr(len(iovs)), uintptr(offs_l), uintptr(offs_h), 0)
1659 n = int(r0)
1660 if e1 != 0 {
1661 err = errnoErr(e1)
1662 }
1663 return
1664}
1665
1666// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
1667
1668func preadv2(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr, flags int) (n int, err error) {
1669 var _p0 unsafe.Pointer
1670 if len(iovs) > 0 {
1671 _p0 = unsafe.Pointer(&iovs[0])
1672 } else {
1673 _p0 = unsafe.Pointer(&_zero)
1674 }
1675 r0, _, e1 := Syscall6(SYS_PREADV2, uintptr(fd), uintptr(_p0), uintptr(len(iovs)), uintptr(offs_l), uintptr(offs_h), uintptr(flags))
1676 n = int(r0)
1677 if e1 != 0 {
1678 err = errnoErr(e1)
1679 }
1680 return
1681}
1682
1683// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
1684
1685func pwritev2(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr, flags int) (n int, err error) {
1686 var _p0 unsafe.Pointer
1687 if len(iovs) > 0 {
1688 _p0 = unsafe.Pointer(&iovs[0])
1689 } else {
1690 _p0 = unsafe.Pointer(&_zero)
1691 }
1692 r0, _, e1 := Syscall6(SYS_PWRITEV2, uintptr(fd), uintptr(_p0), uintptr(len(iovs)), uintptr(offs_l), uintptr(offs_h), uintptr(flags))
1693 n = int(r0)
1694 if e1 != 0 {
1695 err = errnoErr(e1)
1696 }
1697 return
1698}
1699
1700// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
1701
1581func munmap(addr uintptr, length uintptr) (err error) { 1702func munmap(addr uintptr, length uintptr) (err error) {
1582 _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) 1703 _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0)
1583 if e1 != 0 { 1704 if e1 != 0 {
@@ -2011,8 +2132,9 @@ func sendfile(outfd int, infd int, offset *int64, count int) (written int, err e
2011 2132
2012// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 2133// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
2013 2134
2014func Setfsgid(gid int) (err error) { 2135func setfsgid(gid int) (prev int, err error) {
2015 _, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0) 2136 r0, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0)
2137 prev = int(r0)
2016 if e1 != 0 { 2138 if e1 != 0 {
2017 err = errnoErr(e1) 2139 err = errnoErr(e1)
2018 } 2140 }
@@ -2021,8 +2143,9 @@ func Setfsgid(gid int) (err error) {
2021 2143
2022// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 2144// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
2023 2145
2024func Setfsuid(uid int) (err error) { 2146func setfsuid(uid int) (prev int, err error) {
2025 _, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0) 2147 r0, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0)
2148 prev = int(r0)
2026 if e1 != 0 { 2149 if e1 != 0 {
2027 err = errnoErr(e1) 2150 err = errnoErr(e1)
2028 } 2151 }
diff --git a/vendor/golang.org/x/sys/unix/zsyscall_netbsd_386.go b/vendor/golang.org/x/sys/unix/zsyscall_netbsd_386.go
index 7e05826..3bbd9e3 100644
--- a/vendor/golang.org/x/sys/unix/zsyscall_netbsd_386.go
+++ b/vendor/golang.org/x/sys/unix/zsyscall_netbsd_386.go
@@ -214,22 +214,6 @@ func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, ne
214 214
215// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 215// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
216 216
217func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {
218 var _p0 unsafe.Pointer
219 if len(mib) > 0 {
220 _p0 = unsafe.Pointer(&mib[0])
221 } else {
222 _p0 = unsafe.Pointer(&_zero)
223 }
224 _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))
225 if e1 != 0 {
226 err = errnoErr(e1)
227 }
228 return
229}
230
231// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
232
233func utimes(path string, timeval *[2]Timeval) (err error) { 217func utimes(path string, timeval *[2]Timeval) (err error) {
234 var _p0 *byte 218 var _p0 *byte
235 _p0, err = BytePtrFromString(path) 219 _p0, err = BytePtrFromString(path)
@@ -255,17 +239,6 @@ func futimes(fd int, timeval *[2]Timeval) (err error) {
255 239
256// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 240// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
257 241
258func fcntl(fd int, cmd int, arg int) (val int, err error) {
259 r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg))
260 val = int(r0)
261 if e1 != 0 {
262 err = errnoErr(e1)
263 }
264 return
265}
266
267// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
268
269func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { 242func poll(fds *PollFd, nfds int, timeout int) (n int, err error) {
270 r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) 243 r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))
271 n = int(r0) 244 n = int(r0)
@@ -433,6 +406,22 @@ func ioctl(fd int, req uint, arg uintptr) (err error) {
433 406
434// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 407// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
435 408
409func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {
410 var _p0 unsafe.Pointer
411 if len(mib) > 0 {
412 _p0 = unsafe.Pointer(&mib[0])
413 } else {
414 _p0 = unsafe.Pointer(&_zero)
415 }
416 _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))
417 if e1 != 0 {
418 err = errnoErr(e1)
419 }
420 return
421}
422
423// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
424
436func Access(path string, mode uint32) (err error) { 425func Access(path string, mode uint32) (err error) {
437 var _p0 *byte 426 var _p0 *byte
438 _p0, err = BytePtrFromString(path) 427 _p0, err = BytePtrFromString(path)
@@ -564,6 +553,16 @@ func Dup2(from int, to int) (err error) {
564 553
565// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 554// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
566 555
556func Dup3(from int, to int, flags int) (err error) {
557 _, _, e1 := Syscall(SYS_DUP3, uintptr(from), uintptr(to), uintptr(flags))
558 if e1 != 0 {
559 err = errnoErr(e1)
560 }
561 return
562}
563
564// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
565
567func Exit(code int) { 566func Exit(code int) {
568 Syscall(SYS_EXIT, uintptr(code), 0, 0) 567 Syscall(SYS_EXIT, uintptr(code), 0, 0)
569 return 568 return
@@ -926,6 +925,16 @@ func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) {
926 925
927// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 926// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
928 927
928func Fstatvfs1(fd int, buf *Statvfs_t, flags int) (err error) {
929 _, _, e1 := Syscall(SYS_FSTATVFS1, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(flags))
930 if e1 != 0 {
931 err = errnoErr(e1)
932 }
933 return
934}
935
936// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
937
929func Fsync(fd int) (err error) { 938func Fsync(fd int) (err error) {
930 _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) 939 _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0)
931 if e1 != 0 { 940 if e1 != 0 {
@@ -1498,8 +1507,9 @@ func Seek(fd int, offset int64, whence int) (newoffset int64, err error) {
1498 1507
1499// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 1508// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
1500 1509
1501func Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) { 1510func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {
1502 _, _, e1 := Syscall6(SYS_SELECT, uintptr(n), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) 1511 r0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)
1512 n = int(r0)
1503 if e1 != 0 { 1513 if e1 != 0 {
1504 err = errnoErr(e1) 1514 err = errnoErr(e1)
1505 } 1515 }
@@ -1634,6 +1644,21 @@ func Stat(path string, stat *Stat_t) (err error) {
1634 1644
1635// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 1645// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
1636 1646
1647func Statvfs1(path string, buf *Statvfs_t, flags int) (err error) {
1648 var _p0 *byte
1649 _p0, err = BytePtrFromString(path)
1650 if err != nil {
1651 return
1652 }
1653 _, _, e1 := Syscall(SYS_STATVFS1, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), uintptr(flags))
1654 if e1 != 0 {
1655 err = errnoErr(e1)
1656 }
1657 return
1658}
1659
1660// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
1661
1637func Symlink(path string, link string) (err error) { 1662func Symlink(path string, link string) (err error) {
1638 var _p0 *byte 1663 var _p0 *byte
1639 _p0, err = BytePtrFromString(path) 1664 _p0, err = BytePtrFromString(path)
diff --git a/vendor/golang.org/x/sys/unix/zsyscall_netbsd_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_netbsd_amd64.go
index d94d076..d8cf501 100644
--- a/vendor/golang.org/x/sys/unix/zsyscall_netbsd_amd64.go
+++ b/vendor/golang.org/x/sys/unix/zsyscall_netbsd_amd64.go
@@ -214,22 +214,6 @@ func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, ne
214 214
215// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 215// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
216 216
217func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {
218 var _p0 unsafe.Pointer
219 if len(mib) > 0 {
220 _p0 = unsafe.Pointer(&mib[0])
221 } else {
222 _p0 = unsafe.Pointer(&_zero)
223 }
224 _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))
225 if e1 != 0 {
226 err = errnoErr(e1)
227 }
228 return
229}
230
231// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
232
233func utimes(path string, timeval *[2]Timeval) (err error) { 217func utimes(path string, timeval *[2]Timeval) (err error) {
234 var _p0 *byte 218 var _p0 *byte
235 _p0, err = BytePtrFromString(path) 219 _p0, err = BytePtrFromString(path)
@@ -255,17 +239,6 @@ func futimes(fd int, timeval *[2]Timeval) (err error) {
255 239
256// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 240// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
257 241
258func fcntl(fd int, cmd int, arg int) (val int, err error) {
259 r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg))
260 val = int(r0)
261 if e1 != 0 {
262 err = errnoErr(e1)
263 }
264 return
265}
266
267// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
268
269func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { 242func poll(fds *PollFd, nfds int, timeout int) (n int, err error) {
270 r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) 243 r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))
271 n = int(r0) 244 n = int(r0)
@@ -433,6 +406,22 @@ func ioctl(fd int, req uint, arg uintptr) (err error) {
433 406
434// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 407// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
435 408
409func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {
410 var _p0 unsafe.Pointer
411 if len(mib) > 0 {
412 _p0 = unsafe.Pointer(&mib[0])
413 } else {
414 _p0 = unsafe.Pointer(&_zero)
415 }
416 _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))
417 if e1 != 0 {
418 err = errnoErr(e1)
419 }
420 return
421}
422
423// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
424
436func Access(path string, mode uint32) (err error) { 425func Access(path string, mode uint32) (err error) {
437 var _p0 *byte 426 var _p0 *byte
438 _p0, err = BytePtrFromString(path) 427 _p0, err = BytePtrFromString(path)
@@ -564,6 +553,16 @@ func Dup2(from int, to int) (err error) {
564 553
565// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 554// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
566 555
556func Dup3(from int, to int, flags int) (err error) {
557 _, _, e1 := Syscall(SYS_DUP3, uintptr(from), uintptr(to), uintptr(flags))
558 if e1 != 0 {
559 err = errnoErr(e1)
560 }
561 return
562}
563
564// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
565
567func Exit(code int) { 566func Exit(code int) {
568 Syscall(SYS_EXIT, uintptr(code), 0, 0) 567 Syscall(SYS_EXIT, uintptr(code), 0, 0)
569 return 568 return
@@ -926,6 +925,16 @@ func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) {
926 925
927// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 926// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
928 927
928func Fstatvfs1(fd int, buf *Statvfs_t, flags int) (err error) {
929 _, _, e1 := Syscall(SYS_FSTATVFS1, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(flags))
930 if e1 != 0 {
931 err = errnoErr(e1)
932 }
933 return
934}
935
936// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
937
929func Fsync(fd int) (err error) { 938func Fsync(fd int) (err error) {
930 _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) 939 _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0)
931 if e1 != 0 { 940 if e1 != 0 {
@@ -1498,8 +1507,9 @@ func Seek(fd int, offset int64, whence int) (newoffset int64, err error) {
1498 1507
1499// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 1508// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
1500 1509
1501func Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) { 1510func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {
1502 _, _, e1 := Syscall6(SYS_SELECT, uintptr(n), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) 1511 r0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)
1512 n = int(r0)
1503 if e1 != 0 { 1513 if e1 != 0 {
1504 err = errnoErr(e1) 1514 err = errnoErr(e1)
1505 } 1515 }
@@ -1634,6 +1644,21 @@ func Stat(path string, stat *Stat_t) (err error) {
1634 1644
1635// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 1645// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
1636 1646
1647func Statvfs1(path string, buf *Statvfs_t, flags int) (err error) {
1648 var _p0 *byte
1649 _p0, err = BytePtrFromString(path)
1650 if err != nil {
1651 return
1652 }
1653 _, _, e1 := Syscall(SYS_STATVFS1, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), uintptr(flags))
1654 if e1 != 0 {
1655 err = errnoErr(e1)
1656 }
1657 return
1658}
1659
1660// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
1661
1637func Symlink(path string, link string) (err error) { 1662func Symlink(path string, link string) (err error) {
1638 var _p0 *byte 1663 var _p0 *byte
1639 _p0, err = BytePtrFromString(path) 1664 _p0, err = BytePtrFromString(path)
diff --git a/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm.go b/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm.go
index cf5bf3d..1153fe6 100644
--- a/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm.go
+++ b/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm.go
@@ -214,22 +214,6 @@ func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, ne
214 214
215// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 215// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
216 216
217func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {
218 var _p0 unsafe.Pointer
219 if len(mib) > 0 {
220 _p0 = unsafe.Pointer(&mib[0])
221 } else {
222 _p0 = unsafe.Pointer(&_zero)
223 }
224 _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))
225 if e1 != 0 {
226 err = errnoErr(e1)
227 }
228 return
229}
230
231// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
232
233func utimes(path string, timeval *[2]Timeval) (err error) { 217func utimes(path string, timeval *[2]Timeval) (err error) {
234 var _p0 *byte 218 var _p0 *byte
235 _p0, err = BytePtrFromString(path) 219 _p0, err = BytePtrFromString(path)
@@ -255,17 +239,6 @@ func futimes(fd int, timeval *[2]Timeval) (err error) {
255 239
256// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 240// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
257 241
258func fcntl(fd int, cmd int, arg int) (val int, err error) {
259 r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg))
260 val = int(r0)
261 if e1 != 0 {
262 err = errnoErr(e1)
263 }
264 return
265}
266
267// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
268
269func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { 242func poll(fds *PollFd, nfds int, timeout int) (n int, err error) {
270 r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) 243 r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))
271 n = int(r0) 244 n = int(r0)
@@ -433,6 +406,22 @@ func ioctl(fd int, req uint, arg uintptr) (err error) {
433 406
434// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 407// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
435 408
409func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {
410 var _p0 unsafe.Pointer
411 if len(mib) > 0 {
412 _p0 = unsafe.Pointer(&mib[0])
413 } else {
414 _p0 = unsafe.Pointer(&_zero)
415 }
416 _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))
417 if e1 != 0 {
418 err = errnoErr(e1)
419 }
420 return
421}
422
423// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
424
436func Access(path string, mode uint32) (err error) { 425func Access(path string, mode uint32) (err error) {
437 var _p0 *byte 426 var _p0 *byte
438 _p0, err = BytePtrFromString(path) 427 _p0, err = BytePtrFromString(path)
@@ -564,6 +553,16 @@ func Dup2(from int, to int) (err error) {
564 553
565// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 554// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
566 555
556func Dup3(from int, to int, flags int) (err error) {
557 _, _, e1 := Syscall(SYS_DUP3, uintptr(from), uintptr(to), uintptr(flags))
558 if e1 != 0 {
559 err = errnoErr(e1)
560 }
561 return
562}
563
564// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
565
567func Exit(code int) { 566func Exit(code int) {
568 Syscall(SYS_EXIT, uintptr(code), 0, 0) 567 Syscall(SYS_EXIT, uintptr(code), 0, 0)
569 return 568 return
@@ -926,6 +925,16 @@ func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) {
926 925
927// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 926// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
928 927
928func Fstatvfs1(fd int, buf *Statvfs_t, flags int) (err error) {
929 _, _, e1 := Syscall(SYS_FSTATVFS1, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(flags))
930 if e1 != 0 {
931 err = errnoErr(e1)
932 }
933 return
934}
935
936// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
937
929func Fsync(fd int) (err error) { 938func Fsync(fd int) (err error) {
930 _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) 939 _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0)
931 if e1 != 0 { 940 if e1 != 0 {
@@ -1498,8 +1507,9 @@ func Seek(fd int, offset int64, whence int) (newoffset int64, err error) {
1498 1507
1499// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 1508// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
1500 1509
1501func Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) { 1510func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {
1502 _, _, e1 := Syscall6(SYS_SELECT, uintptr(n), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) 1511 r0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)
1512 n = int(r0)
1503 if e1 != 0 { 1513 if e1 != 0 {
1504 err = errnoErr(e1) 1514 err = errnoErr(e1)
1505 } 1515 }
@@ -1634,6 +1644,21 @@ func Stat(path string, stat *Stat_t) (err error) {
1634 1644
1635// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 1645// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
1636 1646
1647func Statvfs1(path string, buf *Statvfs_t, flags int) (err error) {
1648 var _p0 *byte
1649 _p0, err = BytePtrFromString(path)
1650 if err != nil {
1651 return
1652 }
1653 _, _, e1 := Syscall(SYS_STATVFS1, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), uintptr(flags))
1654 if e1 != 0 {
1655 err = errnoErr(e1)
1656 }
1657 return
1658}
1659
1660// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
1661
1637func Symlink(path string, link string) (err error) { 1662func Symlink(path string, link string) (err error) {
1638 var _p0 *byte 1663 var _p0 *byte
1639 _p0, err = BytePtrFromString(path) 1664 _p0, err = BytePtrFromString(path)
diff --git a/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm64.go b/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm64.go
index 243a931..24b4ebb 100644
--- a/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm64.go
+++ b/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm64.go
@@ -214,22 +214,6 @@ func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, ne
214 214
215// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 215// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
216 216
217func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {
218 var _p0 unsafe.Pointer
219 if len(mib) > 0 {
220 _p0 = unsafe.Pointer(&mib[0])
221 } else {
222 _p0 = unsafe.Pointer(&_zero)
223 }
224 _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))
225 if e1 != 0 {
226 err = errnoErr(e1)
227 }
228 return
229}
230
231// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
232
233func utimes(path string, timeval *[2]Timeval) (err error) { 217func utimes(path string, timeval *[2]Timeval) (err error) {
234 var _p0 *byte 218 var _p0 *byte
235 _p0, err = BytePtrFromString(path) 219 _p0, err = BytePtrFromString(path)
@@ -255,17 +239,6 @@ func futimes(fd int, timeval *[2]Timeval) (err error) {
255 239
256// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 240// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
257 241
258func fcntl(fd int, cmd int, arg int) (val int, err error) {
259 r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg))
260 val = int(r0)
261 if e1 != 0 {
262 err = errnoErr(e1)
263 }
264 return
265}
266
267// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
268
269func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { 242func poll(fds *PollFd, nfds int, timeout int) (n int, err error) {
270 r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) 243 r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))
271 n = int(r0) 244 n = int(r0)
@@ -433,6 +406,22 @@ func ioctl(fd int, req uint, arg uintptr) (err error) {
433 406
434// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 407// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
435 408
409func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {
410 var _p0 unsafe.Pointer
411 if len(mib) > 0 {
412 _p0 = unsafe.Pointer(&mib[0])
413 } else {
414 _p0 = unsafe.Pointer(&_zero)
415 }
416 _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))
417 if e1 != 0 {
418 err = errnoErr(e1)
419 }
420 return
421}
422
423// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
424
436func Access(path string, mode uint32) (err error) { 425func Access(path string, mode uint32) (err error) {
437 var _p0 *byte 426 var _p0 *byte
438 _p0, err = BytePtrFromString(path) 427 _p0, err = BytePtrFromString(path)
@@ -564,6 +553,16 @@ func Dup2(from int, to int) (err error) {
564 553
565// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 554// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
566 555
556func Dup3(from int, to int, flags int) (err error) {
557 _, _, e1 := Syscall(SYS_DUP3, uintptr(from), uintptr(to), uintptr(flags))
558 if e1 != 0 {
559 err = errnoErr(e1)
560 }
561 return
562}
563
564// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
565
567func Exit(code int) { 566func Exit(code int) {
568 Syscall(SYS_EXIT, uintptr(code), 0, 0) 567 Syscall(SYS_EXIT, uintptr(code), 0, 0)
569 return 568 return
@@ -926,6 +925,16 @@ func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) {
926 925
927// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 926// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
928 927
928func Fstatvfs1(fd int, buf *Statvfs_t, flags int) (err error) {
929 _, _, e1 := Syscall(SYS_FSTATVFS1, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(flags))
930 if e1 != 0 {
931 err = errnoErr(e1)
932 }
933 return
934}
935
936// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
937
929func Fsync(fd int) (err error) { 938func Fsync(fd int) (err error) {
930 _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) 939 _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0)
931 if e1 != 0 { 940 if e1 != 0 {
@@ -1498,8 +1507,9 @@ func Seek(fd int, offset int64, whence int) (newoffset int64, err error) {
1498 1507
1499// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 1508// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
1500 1509
1501func Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) { 1510func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {
1502 _, _, e1 := Syscall6(SYS_SELECT, uintptr(n), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) 1511 r0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)
1512 n = int(r0)
1503 if e1 != 0 { 1513 if e1 != 0 {
1504 err = errnoErr(e1) 1514 err = errnoErr(e1)
1505 } 1515 }
@@ -1634,6 +1644,21 @@ func Stat(path string, stat *Stat_t) (err error) {
1634 1644
1635// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 1645// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
1636 1646
1647func Statvfs1(path string, buf *Statvfs_t, flags int) (err error) {
1648 var _p0 *byte
1649 _p0, err = BytePtrFromString(path)
1650 if err != nil {
1651 return
1652 }
1653 _, _, e1 := Syscall(SYS_STATVFS1, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), uintptr(flags))
1654 if e1 != 0 {
1655 err = errnoErr(e1)
1656 }
1657 return
1658}
1659
1660// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
1661
1637func Symlink(path string, link string) (err error) { 1662func Symlink(path string, link string) (err error) {
1638 var _p0 *byte 1663 var _p0 *byte
1639 _p0, err = BytePtrFromString(path) 1664 _p0, err = BytePtrFromString(path)
diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.go b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.go
index a9532d0..b44b31a 100644
--- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.go
+++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.go
@@ -214,22 +214,6 @@ func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, ne
214 214
215// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 215// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
216 216
217func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {
218 var _p0 unsafe.Pointer
219 if len(mib) > 0 {
220 _p0 = unsafe.Pointer(&mib[0])
221 } else {
222 _p0 = unsafe.Pointer(&_zero)
223 }
224 _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))
225 if e1 != 0 {
226 err = errnoErr(e1)
227 }
228 return
229}
230
231// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
232
233func utimes(path string, timeval *[2]Timeval) (err error) { 217func utimes(path string, timeval *[2]Timeval) (err error) {
234 var _p0 *byte 218 var _p0 *byte
235 _p0, err = BytePtrFromString(path) 219 _p0, err = BytePtrFromString(path)
@@ -255,17 +239,6 @@ func futimes(fd int, timeval *[2]Timeval) (err error) {
255 239
256// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 240// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
257 241
258func fcntl(fd int, cmd int, arg int) (val int, err error) {
259 r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg))
260 val = int(r0)
261 if e1 != 0 {
262 err = errnoErr(e1)
263 }
264 return
265}
266
267// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
268
269func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { 242func poll(fds *PollFd, nfds int, timeout int) (n int, err error) {
270 r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) 243 r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))
271 n = int(r0) 244 n = int(r0)
@@ -377,8 +350,8 @@ func Munlockall() (err error) {
377 350
378// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 351// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
379 352
380func pipe(p *[2]_C_int) (err error) { 353func pipe2(p *[2]_C_int, flags int) (err error) {
381 _, _, e1 := RawSyscall(SYS_PIPE, uintptr(unsafe.Pointer(p)), 0, 0) 354 _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0)
382 if e1 != 0 { 355 if e1 != 0 {
383 err = errnoErr(e1) 356 err = errnoErr(e1)
384 } 357 }
@@ -431,6 +404,22 @@ func ioctl(fd int, req uint, arg uintptr) (err error) {
431 404
432// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 405// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
433 406
407func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {
408 var _p0 unsafe.Pointer
409 if len(mib) > 0 {
410 _p0 = unsafe.Pointer(&mib[0])
411 } else {
412 _p0 = unsafe.Pointer(&_zero)
413 }
414 _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))
415 if e1 != 0 {
416 err = errnoErr(e1)
417 }
418 return
419}
420
421// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
422
434func ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { 423func ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) {
435 r0, _, e1 := Syscall6(SYS_PPOLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0) 424 r0, _, e1 := Syscall6(SYS_PPOLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0)
436 n = int(r0) 425 n = int(r0)
@@ -573,6 +562,16 @@ func Dup2(from int, to int) (err error) {
573 562
574// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 563// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
575 564
565func Dup3(from int, to int, flags int) (err error) {
566 _, _, e1 := Syscall(SYS_DUP3, uintptr(from), uintptr(to), uintptr(flags))
567 if e1 != 0 {
568 err = errnoErr(e1)
569 }
570 return
571}
572
573// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
574
576func Exit(code int) { 575func Exit(code int) {
577 Syscall(SYS_EXIT, uintptr(code), 0, 0) 576 Syscall(SYS_EXIT, uintptr(code), 0, 0)
578 return 577 return
@@ -1304,8 +1303,9 @@ func Seek(fd int, offset int64, whence int) (newoffset int64, err error) {
1304 1303
1305// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 1304// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
1306 1305
1307func Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) { 1306func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {
1308 _, _, e1 := Syscall6(SYS_SELECT, uintptr(n), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) 1307 r0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)
1308 n = int(r0)
1309 if e1 != 0 { 1309 if e1 != 0 {
1310 err = errnoErr(e1) 1310 err = errnoErr(e1)
1311 } 1311 }
diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.go
index 0cb9f01..67f93ee 100644
--- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.go
+++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.go
@@ -214,22 +214,6 @@ func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, ne
214 214
215// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 215// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
216 216
217func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {
218 var _p0 unsafe.Pointer
219 if len(mib) > 0 {
220 _p0 = unsafe.Pointer(&mib[0])
221 } else {
222 _p0 = unsafe.Pointer(&_zero)
223 }
224 _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))
225 if e1 != 0 {
226 err = errnoErr(e1)
227 }
228 return
229}
230
231// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
232
233func utimes(path string, timeval *[2]Timeval) (err error) { 217func utimes(path string, timeval *[2]Timeval) (err error) {
234 var _p0 *byte 218 var _p0 *byte
235 _p0, err = BytePtrFromString(path) 219 _p0, err = BytePtrFromString(path)
@@ -255,17 +239,6 @@ func futimes(fd int, timeval *[2]Timeval) (err error) {
255 239
256// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 240// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
257 241
258func fcntl(fd int, cmd int, arg int) (val int, err error) {
259 r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg))
260 val = int(r0)
261 if e1 != 0 {
262 err = errnoErr(e1)
263 }
264 return
265}
266
267// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
268
269func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { 242func poll(fds *PollFd, nfds int, timeout int) (n int, err error) {
270 r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) 243 r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))
271 n = int(r0) 244 n = int(r0)
@@ -377,8 +350,8 @@ func Munlockall() (err error) {
377 350
378// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 351// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
379 352
380func pipe(p *[2]_C_int) (err error) { 353func pipe2(p *[2]_C_int, flags int) (err error) {
381 _, _, e1 := RawSyscall(SYS_PIPE, uintptr(unsafe.Pointer(p)), 0, 0) 354 _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0)
382 if e1 != 0 { 355 if e1 != 0 {
383 err = errnoErr(e1) 356 err = errnoErr(e1)
384 } 357 }
@@ -431,6 +404,22 @@ func ioctl(fd int, req uint, arg uintptr) (err error) {
431 404
432// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 405// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
433 406
407func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {
408 var _p0 unsafe.Pointer
409 if len(mib) > 0 {
410 _p0 = unsafe.Pointer(&mib[0])
411 } else {
412 _p0 = unsafe.Pointer(&_zero)
413 }
414 _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))
415 if e1 != 0 {
416 err = errnoErr(e1)
417 }
418 return
419}
420
421// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
422
434func ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { 423func ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) {
435 r0, _, e1 := Syscall6(SYS_PPOLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0) 424 r0, _, e1 := Syscall6(SYS_PPOLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0)
436 n = int(r0) 425 n = int(r0)
@@ -573,6 +562,16 @@ func Dup2(from int, to int) (err error) {
573 562
574// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 563// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
575 564
565func Dup3(from int, to int, flags int) (err error) {
566 _, _, e1 := Syscall(SYS_DUP3, uintptr(from), uintptr(to), uintptr(flags))
567 if e1 != 0 {
568 err = errnoErr(e1)
569 }
570 return
571}
572
573// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
574
576func Exit(code int) { 575func Exit(code int) {
577 Syscall(SYS_EXIT, uintptr(code), 0, 0) 576 Syscall(SYS_EXIT, uintptr(code), 0, 0)
578 return 577 return
@@ -1304,8 +1303,9 @@ func Seek(fd int, offset int64, whence int) (newoffset int64, err error) {
1304 1303
1305// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 1304// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
1306 1305
1307func Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) { 1306func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {
1308 _, _, e1 := Syscall6(SYS_SELECT, uintptr(n), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) 1307 r0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)
1308 n = int(r0)
1309 if e1 != 0 { 1309 if e1 != 0 {
1310 err = errnoErr(e1) 1310 err = errnoErr(e1)
1311 } 1311 }
diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.go b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.go
index 6fc99b5..d7c878b 100644
--- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.go
+++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.go
@@ -214,22 +214,6 @@ func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, ne
214 214
215// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 215// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
216 216
217func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {
218 var _p0 unsafe.Pointer
219 if len(mib) > 0 {
220 _p0 = unsafe.Pointer(&mib[0])
221 } else {
222 _p0 = unsafe.Pointer(&_zero)
223 }
224 _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))
225 if e1 != 0 {
226 err = errnoErr(e1)
227 }
228 return
229}
230
231// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
232
233func utimes(path string, timeval *[2]Timeval) (err error) { 217func utimes(path string, timeval *[2]Timeval) (err error) {
234 var _p0 *byte 218 var _p0 *byte
235 _p0, err = BytePtrFromString(path) 219 _p0, err = BytePtrFromString(path)
@@ -255,17 +239,6 @@ func futimes(fd int, timeval *[2]Timeval) (err error) {
255 239
256// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 240// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
257 241
258func fcntl(fd int, cmd int, arg int) (val int, err error) {
259 r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg))
260 val = int(r0)
261 if e1 != 0 {
262 err = errnoErr(e1)
263 }
264 return
265}
266
267// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
268
269func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { 242func poll(fds *PollFd, nfds int, timeout int) (n int, err error) {
270 r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) 243 r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))
271 n = int(r0) 244 n = int(r0)
@@ -377,8 +350,8 @@ func Munlockall() (err error) {
377 350
378// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 351// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
379 352
380func pipe(p *[2]_C_int) (err error) { 353func pipe2(p *[2]_C_int, flags int) (err error) {
381 _, _, e1 := RawSyscall(SYS_PIPE, uintptr(unsafe.Pointer(p)), 0, 0) 354 _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0)
382 if e1 != 0 { 355 if e1 != 0 {
383 err = errnoErr(e1) 356 err = errnoErr(e1)
384 } 357 }
@@ -431,6 +404,22 @@ func ioctl(fd int, req uint, arg uintptr) (err error) {
431 404
432// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 405// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
433 406
407func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {
408 var _p0 unsafe.Pointer
409 if len(mib) > 0 {
410 _p0 = unsafe.Pointer(&mib[0])
411 } else {
412 _p0 = unsafe.Pointer(&_zero)
413 }
414 _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))
415 if e1 != 0 {
416 err = errnoErr(e1)
417 }
418 return
419}
420
421// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
422
434func ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { 423func ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) {
435 r0, _, e1 := Syscall6(SYS_PPOLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0) 424 r0, _, e1 := Syscall6(SYS_PPOLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0)
436 n = int(r0) 425 n = int(r0)
@@ -573,6 +562,16 @@ func Dup2(from int, to int) (err error) {
573 562
574// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 563// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
575 564
565func Dup3(from int, to int, flags int) (err error) {
566 _, _, e1 := Syscall(SYS_DUP3, uintptr(from), uintptr(to), uintptr(flags))
567 if e1 != 0 {
568 err = errnoErr(e1)
569 }
570 return
571}
572
573// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
574
576func Exit(code int) { 575func Exit(code int) {
577 Syscall(SYS_EXIT, uintptr(code), 0, 0) 576 Syscall(SYS_EXIT, uintptr(code), 0, 0)
578 return 577 return
@@ -1304,8 +1303,9 @@ func Seek(fd int, offset int64, whence int) (newoffset int64, err error) {
1304 1303
1305// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 1304// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
1306 1305
1307func Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) { 1306func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {
1308 _, _, e1 := Syscall6(SYS_SELECT, uintptr(n), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) 1307 r0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)
1308 n = int(r0)
1309 if e1 != 0 { 1309 if e1 != 0 {
1310 err = errnoErr(e1) 1310 err = errnoErr(e1)
1311 } 1311 }
diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.go b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.go
index 27878a7..8facd69 100644
--- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.go
+++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.go
@@ -214,22 +214,6 @@ func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, ne
214 214
215// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 215// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
216 216
217func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {
218 var _p0 unsafe.Pointer
219 if len(mib) > 0 {
220 _p0 = unsafe.Pointer(&mib[0])
221 } else {
222 _p0 = unsafe.Pointer(&_zero)
223 }
224 _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))
225 if e1 != 0 {
226 err = errnoErr(e1)
227 }
228 return
229}
230
231// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
232
233func utimes(path string, timeval *[2]Timeval) (err error) { 217func utimes(path string, timeval *[2]Timeval) (err error) {
234 var _p0 *byte 218 var _p0 *byte
235 _p0, err = BytePtrFromString(path) 219 _p0, err = BytePtrFromString(path)
@@ -255,17 +239,6 @@ func futimes(fd int, timeval *[2]Timeval) (err error) {
255 239
256// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 240// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
257 241
258func fcntl(fd int, cmd int, arg int) (val int, err error) {
259 r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg))
260 val = int(r0)
261 if e1 != 0 {
262 err = errnoErr(e1)
263 }
264 return
265}
266
267// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
268
269func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { 242func poll(fds *PollFd, nfds int, timeout int) (n int, err error) {
270 r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) 243 r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))
271 n = int(r0) 244 n = int(r0)
@@ -377,8 +350,8 @@ func Munlockall() (err error) {
377 350
378// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 351// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
379 352
380func pipe(p *[2]_C_int) (err error) { 353func pipe2(p *[2]_C_int, flags int) (err error) {
381 _, _, e1 := RawSyscall(SYS_PIPE, uintptr(unsafe.Pointer(p)), 0, 0) 354 _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0)
382 if e1 != 0 { 355 if e1 != 0 {
383 err = errnoErr(e1) 356 err = errnoErr(e1)
384 } 357 }
@@ -431,6 +404,22 @@ func ioctl(fd int, req uint, arg uintptr) (err error) {
431 404
432// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 405// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
433 406
407func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {
408 var _p0 unsafe.Pointer
409 if len(mib) > 0 {
410 _p0 = unsafe.Pointer(&mib[0])
411 } else {
412 _p0 = unsafe.Pointer(&_zero)
413 }
414 _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))
415 if e1 != 0 {
416 err = errnoErr(e1)
417 }
418 return
419}
420
421// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
422
434func ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { 423func ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) {
435 r0, _, e1 := Syscall6(SYS_PPOLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0) 424 r0, _, e1 := Syscall6(SYS_PPOLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0)
436 n = int(r0) 425 n = int(r0)
@@ -573,6 +562,16 @@ func Dup2(from int, to int) (err error) {
573 562
574// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 563// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
575 564
565func Dup3(from int, to int, flags int) (err error) {
566 _, _, e1 := Syscall(SYS_DUP3, uintptr(from), uintptr(to), uintptr(flags))
567 if e1 != 0 {
568 err = errnoErr(e1)
569 }
570 return
571}
572
573// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
574
576func Exit(code int) { 575func Exit(code int) {
577 Syscall(SYS_EXIT, uintptr(code), 0, 0) 576 Syscall(SYS_EXIT, uintptr(code), 0, 0)
578 return 577 return
@@ -1304,8 +1303,9 @@ func Seek(fd int, offset int64, whence int) (newoffset int64, err error) {
1304 1303
1305// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 1304// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
1306 1305
1307func Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) { 1306func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {
1308 _, _, e1 := Syscall6(SYS_SELECT, uintptr(n), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) 1307 r0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)
1308 n = int(r0)
1309 if e1 != 0 { 1309 if e1 != 0 {
1310 err = errnoErr(e1) 1310 err = errnoErr(e1)
1311 } 1311 }
diff --git a/vendor/golang.org/x/sys/unix/zsyscall_solaris_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_solaris_amd64.go
index 5f61476..a96165d 100644
--- a/vendor/golang.org/x/sys/unix/zsyscall_solaris_amd64.go
+++ b/vendor/golang.org/x/sys/unix/zsyscall_solaris_amd64.go
@@ -1478,8 +1478,9 @@ func Seek(fd int, offset int64, whence int) (newoffset int64, err error) {
1478 1478
1479// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT 1479// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
1480 1480
1481func Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) { 1481func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {
1482 _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procSelect)), 5, uintptr(n), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) 1482 r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procSelect)), 5, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)
1483 n = int(r0)
1483 if e1 != 0 { 1484 if e1 != 0 {
1484 err = e1 1485 err = e1
1485 } 1486 }
diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_386.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_386.go
index e869c06..7aae554 100644
--- a/vendor/golang.org/x/sys/unix/zsysnum_linux_386.go
+++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_386.go
@@ -429,4 +429,6 @@ const (
429 SYS_FSCONFIG = 431 429 SYS_FSCONFIG = 431
430 SYS_FSMOUNT = 432 430 SYS_FSMOUNT = 432
431 SYS_FSPICK = 433 431 SYS_FSPICK = 433
432 SYS_PIDFD_OPEN = 434
433 SYS_CLONE3 = 435
432) 434)
diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go
index 4917b8a..7968439 100644
--- a/vendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go
+++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go
@@ -351,4 +351,6 @@ const (
351 SYS_FSCONFIG = 431 351 SYS_FSCONFIG = 431
352 SYS_FSMOUNT = 432 352 SYS_FSMOUNT = 432
353 SYS_FSPICK = 433 353 SYS_FSPICK = 433
354 SYS_PIDFD_OPEN = 434
355 SYS_CLONE3 = 435
354) 356)
diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_arm.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_arm.go
index f85fcb4..3c663c6 100644
--- a/vendor/golang.org/x/sys/unix/zsysnum_linux_arm.go
+++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_arm.go
@@ -393,4 +393,6 @@ const (
393 SYS_FSCONFIG = 431 393 SYS_FSCONFIG = 431
394 SYS_FSMOUNT = 432 394 SYS_FSMOUNT = 432
395 SYS_FSPICK = 433 395 SYS_FSPICK = 433
396 SYS_PIDFD_OPEN = 434
397 SYS_CLONE3 = 435
396) 398)
diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go
index 678a119..1f3b4d1 100644
--- a/vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go
+++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go
@@ -296,4 +296,6 @@ const (
296 SYS_FSCONFIG = 431 296 SYS_FSCONFIG = 431
297 SYS_FSMOUNT = 432 297 SYS_FSMOUNT = 432
298 SYS_FSPICK = 433 298 SYS_FSPICK = 433
299 SYS_PIDFD_OPEN = 434
300 SYS_CLONE3 = 435
299) 301)
diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_mips.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_mips.go
index 222c9f9..00da3de 100644
--- a/vendor/golang.org/x/sys/unix/zsysnum_linux_mips.go
+++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_mips.go
@@ -414,4 +414,6 @@ const (
414 SYS_FSCONFIG = 4431 414 SYS_FSCONFIG = 4431
415 SYS_FSMOUNT = 4432 415 SYS_FSMOUNT = 4432
416 SYS_FSPICK = 4433 416 SYS_FSPICK = 4433
417 SYS_PIDFD_OPEN = 4434
418 SYS_CLONE3 = 4435
417) 419)
diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go
index 28e6d0e..d404fbd 100644
--- a/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go
+++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go
@@ -344,4 +344,6 @@ const (
344 SYS_FSCONFIG = 5431 344 SYS_FSCONFIG = 5431
345 SYS_FSMOUNT = 5432 345 SYS_FSMOUNT = 5432
346 SYS_FSPICK = 5433 346 SYS_FSPICK = 5433
347 SYS_PIDFD_OPEN = 5434
348 SYS_CLONE3 = 5435
347) 349)
diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go
index e643c6f..bfbf242 100644
--- a/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go
+++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go
@@ -344,4 +344,6 @@ const (
344 SYS_FSCONFIG = 5431 344 SYS_FSCONFIG = 5431
345 SYS_FSMOUNT = 5432 345 SYS_FSMOUNT = 5432
346 SYS_FSPICK = 5433 346 SYS_FSPICK = 5433
347 SYS_PIDFD_OPEN = 5434
348 SYS_CLONE3 = 5435
347) 349)
diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go
index 01d93c4..3826f49 100644
--- a/vendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go
+++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go
@@ -414,4 +414,6 @@ const (
414 SYS_FSCONFIG = 4431 414 SYS_FSCONFIG = 4431
415 SYS_FSMOUNT = 4432 415 SYS_FSMOUNT = 4432
416 SYS_FSPICK = 4433 416 SYS_FSPICK = 4433
417 SYS_PIDFD_OPEN = 4434
418 SYS_CLONE3 = 4435
417) 419)
diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go
index 5744149..52e3da6 100644
--- a/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go
+++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go
@@ -393,4 +393,6 @@ const (
393 SYS_FSCONFIG = 431 393 SYS_FSCONFIG = 431
394 SYS_FSMOUNT = 432 394 SYS_FSMOUNT = 432
395 SYS_FSPICK = 433 395 SYS_FSPICK = 433
396 SYS_PIDFD_OPEN = 434
397 SYS_CLONE3 = 435
396) 398)
diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go
index 21c8320..6141f90 100644
--- a/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go
+++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go
@@ -393,4 +393,6 @@ const (
393 SYS_FSCONFIG = 431 393 SYS_FSCONFIG = 431
394 SYS_FSMOUNT = 432 394 SYS_FSMOUNT = 432
395 SYS_FSPICK = 433 395 SYS_FSPICK = 433
396 SYS_PIDFD_OPEN = 434
397 SYS_CLONE3 = 435
396) 398)
diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_riscv64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_riscv64.go
index c1bb6d8..4f7261a 100644
--- a/vendor/golang.org/x/sys/unix/zsysnum_linux_riscv64.go
+++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_riscv64.go
@@ -295,4 +295,6 @@ const (
295 SYS_FSCONFIG = 431 295 SYS_FSCONFIG = 431
296 SYS_FSMOUNT = 432 296 SYS_FSMOUNT = 432
297 SYS_FSPICK = 433 297 SYS_FSPICK = 433
298 SYS_PIDFD_OPEN = 434
299 SYS_CLONE3 = 435
298) 300)
diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go
index bc3cc6b..f47014a 100644
--- a/vendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go
+++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go
@@ -358,4 +358,6 @@ const (
358 SYS_FSCONFIG = 431 358 SYS_FSCONFIG = 431
359 SYS_FSMOUNT = 432 359 SYS_FSMOUNT = 432
360 SYS_FSPICK = 433 360 SYS_FSPICK = 433
361 SYS_PIDFD_OPEN = 434
362 SYS_CLONE3 = 435
361) 363)
diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go
index 0a2841b..dd78abb 100644
--- a/vendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go
+++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go
@@ -373,4 +373,5 @@ const (
373 SYS_FSCONFIG = 431 373 SYS_FSCONFIG = 431
374 SYS_FSMOUNT = 432 374 SYS_FSMOUNT = 432
375 SYS_FSPICK = 433 375 SYS_FSPICK = 433
376 SYS_PIDFD_OPEN = 434
376) 377)
diff --git a/vendor/golang.org/x/sys/unix/ztypes_dragonfly_amd64.go b/vendor/golang.org/x/sys/unix/ztypes_dragonfly_amd64.go
index c206f2b..71ea1d6 100644
--- a/vendor/golang.org/x/sys/unix/ztypes_dragonfly_amd64.go
+++ b/vendor/golang.org/x/sys/unix/ztypes_dragonfly_amd64.go
@@ -467,3 +467,13 @@ type Utsname struct {
467 Version [32]byte 467 Version [32]byte
468 Machine [32]byte 468 Machine [32]byte
469} 469}
470
471const SizeofClockinfo = 0x14
472
473type Clockinfo struct {
474 Hz int32
475 Tick int32
476 Tickadj int32
477 Stathz int32
478 Profhz int32
479}
diff --git a/vendor/golang.org/x/sys/unix/ztypes_freebsd_386.go b/vendor/golang.org/x/sys/unix/ztypes_freebsd_386.go
index 7312e95..0ec1596 100644
--- a/vendor/golang.org/x/sys/unix/ztypes_freebsd_386.go
+++ b/vendor/golang.org/x/sys/unix/ztypes_freebsd_386.go
@@ -423,7 +423,7 @@ type PtraceIoDesc struct {
423 Op int32 423 Op int32
424 Offs *byte 424 Offs *byte
425 Addr *byte 425 Addr *byte
426 Len uint 426 Len uint32
427} 427}
428 428
429type Kevent_t struct { 429type Kevent_t struct {
@@ -698,3 +698,13 @@ type Utsname struct {
698 Version [256]byte 698 Version [256]byte
699 Machine [256]byte 699 Machine [256]byte
700} 700}
701
702const SizeofClockinfo = 0x14
703
704type Clockinfo struct {
705 Hz int32
706 Tick int32
707 Spare int32
708 Stathz int32
709 Profhz int32
710}
diff --git a/vendor/golang.org/x/sys/unix/ztypes_freebsd_amd64.go b/vendor/golang.org/x/sys/unix/ztypes_freebsd_amd64.go
index 29ba2f5..8340f57 100644
--- a/vendor/golang.org/x/sys/unix/ztypes_freebsd_amd64.go
+++ b/vendor/golang.org/x/sys/unix/ztypes_freebsd_amd64.go
@@ -428,7 +428,7 @@ type PtraceIoDesc struct {
428 Op int32 428 Op int32
429 Offs *byte 429 Offs *byte
430 Addr *byte 430 Addr *byte
431 Len uint 431 Len uint64
432} 432}
433 433
434type Kevent_t struct { 434type Kevent_t struct {
@@ -704,3 +704,13 @@ type Utsname struct {
704 Version [256]byte 704 Version [256]byte
705 Machine [256]byte 705 Machine [256]byte
706} 706}
707
708const SizeofClockinfo = 0x14
709
710type Clockinfo struct {
711 Hz int32
712 Tick int32
713 Spare int32
714 Stathz int32
715 Profhz int32
716}
diff --git a/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm.go b/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm.go
index b4090ef..6f79227 100644
--- a/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm.go
+++ b/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm.go
@@ -405,7 +405,7 @@ type PtraceIoDesc struct {
405 Op int32 405 Op int32
406 Offs *byte 406 Offs *byte
407 Addr *byte 407 Addr *byte
408 Len uint 408 Len uint32
409} 409}
410 410
411type Kevent_t struct { 411type Kevent_t struct {
@@ -681,3 +681,13 @@ type Utsname struct {
681 Version [256]byte 681 Version [256]byte
682 Machine [256]byte 682 Machine [256]byte
683} 683}
684
685const SizeofClockinfo = 0x14
686
687type Clockinfo struct {
688 Hz int32
689 Tick int32
690 Spare int32
691 Stathz int32
692 Profhz int32
693}
diff --git a/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm64.go b/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm64.go
index 1542a87..e751e00 100644
--- a/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm64.go
+++ b/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm64.go
@@ -397,7 +397,7 @@ type Reg struct {
397} 397}
398 398
399type FpReg struct { 399type FpReg struct {
400 Fp_q [32]uint128 400 Fp_q [512]uint8
401 Fp_sr uint32 401 Fp_sr uint32
402 Fp_cr uint32 402 Fp_cr uint32
403} 403}
@@ -406,7 +406,7 @@ type PtraceIoDesc struct {
406 Op int32 406 Op int32
407 Offs *byte 407 Offs *byte
408 Addr *byte 408 Addr *byte
409 Len uint 409 Len uint64
410} 410}
411 411
412type Kevent_t struct { 412type Kevent_t struct {
@@ -682,3 +682,13 @@ type Utsname struct {
682 Version [256]byte 682 Version [256]byte
683 Machine [256]byte 683 Machine [256]byte
684} 684}
685
686const SizeofClockinfo = 0x14
687
688type Clockinfo struct {
689 Hz int32
690 Tick int32
691 Spare int32
692 Stathz int32
693 Profhz int32
694}
diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_386.go b/vendor/golang.org/x/sys/unix/ztypes_linux_386.go
index 50bc412..d808958 100644
--- a/vendor/golang.org/x/sys/unix/ztypes_linux_386.go
+++ b/vendor/golang.org/x/sys/unix/ztypes_linux_386.go
@@ -179,6 +179,55 @@ type FscryptKey struct {
179 Size uint32 179 Size uint32
180} 180}
181 181
182type FscryptPolicyV1 struct {
183 Version uint8
184 Contents_encryption_mode uint8
185 Filenames_encryption_mode uint8
186 Flags uint8
187 Master_key_descriptor [8]uint8
188}
189
190type FscryptPolicyV2 struct {
191 Version uint8
192 Contents_encryption_mode uint8
193 Filenames_encryption_mode uint8
194 Flags uint8
195 _ [4]uint8
196 Master_key_identifier [16]uint8
197}
198
199type FscryptGetPolicyExArg struct {
200 Size uint64
201 Policy [24]byte
202}
203
204type FscryptKeySpecifier struct {
205 Type uint32
206 _ uint32
207 U [32]byte
208}
209
210type FscryptAddKeyArg struct {
211 Key_spec FscryptKeySpecifier
212 Raw_size uint32
213 _ [9]uint32
214}
215
216type FscryptRemoveKeyArg struct {
217 Key_spec FscryptKeySpecifier
218 Removal_status_flags uint32
219 _ [5]uint32
220}
221
222type FscryptGetKeyStatusArg struct {
223 Key_spec FscryptKeySpecifier
224 _ [6]uint32
225 Status uint32
226 Status_flags uint32
227 User_count uint32
228 _ [13]uint32
229}
230
182type KeyctlDHParams struct { 231type KeyctlDHParams struct {
183 Private int32 232 Private int32
184 Prime int32 233 Prime int32
@@ -256,7 +305,7 @@ type RawSockaddrRFCOMM struct {
256type RawSockaddrCAN struct { 305type RawSockaddrCAN struct {
257 Family uint16 306 Family uint16
258 Ifindex int32 307 Ifindex int32
259 Addr [8]byte 308 Addr [16]byte
260} 309}
261 310
262type RawSockaddrALG struct { 311type RawSockaddrALG struct {
@@ -285,6 +334,13 @@ type RawSockaddrXDP struct {
285 334
286type RawSockaddrPPPoX [0x1e]byte 335type RawSockaddrPPPoX [0x1e]byte
287 336
337type RawSockaddrTIPC struct {
338 Family uint16
339 Addrtype uint8
340 Scope int8
341 Addr [12]byte
342}
343
288type RawSockaddr struct { 344type RawSockaddr struct {
289 Family uint16 345 Family uint16
290 Data [14]int8 346 Data [14]int8
@@ -420,11 +476,12 @@ const (
420 SizeofSockaddrHCI = 0x6 476 SizeofSockaddrHCI = 0x6
421 SizeofSockaddrL2 = 0xe 477 SizeofSockaddrL2 = 0xe
422 SizeofSockaddrRFCOMM = 0xa 478 SizeofSockaddrRFCOMM = 0xa
423 SizeofSockaddrCAN = 0x10 479 SizeofSockaddrCAN = 0x18
424 SizeofSockaddrALG = 0x58 480 SizeofSockaddrALG = 0x58
425 SizeofSockaddrVM = 0x10 481 SizeofSockaddrVM = 0x10
426 SizeofSockaddrXDP = 0x10 482 SizeofSockaddrXDP = 0x10
427 SizeofSockaddrPPPoX = 0x1e 483 SizeofSockaddrPPPoX = 0x1e
484 SizeofSockaddrTIPC = 0x10
428 SizeofLinger = 0x8 485 SizeofLinger = 0x8
429 SizeofIovec = 0x8 486 SizeofIovec = 0x8
430 SizeofIPMreq = 0x8 487 SizeofIPMreq = 0x8
@@ -535,7 +592,7 @@ const (
535 IFLA_NEW_IFINDEX = 0x31 592 IFLA_NEW_IFINDEX = 0x31
536 IFLA_MIN_MTU = 0x32 593 IFLA_MIN_MTU = 0x32
537 IFLA_MAX_MTU = 0x33 594 IFLA_MAX_MTU = 0x33
538 IFLA_MAX = 0x33 595 IFLA_MAX = 0x35
539 IFLA_INFO_KIND = 0x1 596 IFLA_INFO_KIND = 0x1
540 IFLA_INFO_DATA = 0x2 597 IFLA_INFO_DATA = 0x2
541 IFLA_INFO_XSTATS = 0x3 598 IFLA_INFO_XSTATS = 0x3
@@ -591,22 +648,6 @@ const (
591 RTN_THROW = 0x9 648 RTN_THROW = 0x9
592 RTN_NAT = 0xa 649 RTN_NAT = 0xa
593 RTN_XRESOLVE = 0xb 650 RTN_XRESOLVE = 0xb
594 RTNLGRP_NONE = 0x0
595 RTNLGRP_LINK = 0x1
596 RTNLGRP_NOTIFY = 0x2
597 RTNLGRP_NEIGH = 0x3
598 RTNLGRP_TC = 0x4
599 RTNLGRP_IPV4_IFADDR = 0x5
600 RTNLGRP_IPV4_MROUTE = 0x6
601 RTNLGRP_IPV4_ROUTE = 0x7
602 RTNLGRP_IPV4_RULE = 0x8
603 RTNLGRP_IPV6_IFADDR = 0x9
604 RTNLGRP_IPV6_MROUTE = 0xa
605 RTNLGRP_IPV6_ROUTE = 0xb
606 RTNLGRP_IPV6_IFINFO = 0xc
607 RTNLGRP_IPV6_PREFIX = 0x12
608 RTNLGRP_IPV6_RULE = 0x13
609 RTNLGRP_ND_USEROPT = 0x14
610 SizeofNlMsghdr = 0x10 651 SizeofNlMsghdr = 0x10
611 SizeofNlMsgerr = 0x14 652 SizeofNlMsgerr = 0x14
612 SizeofRtGenmsg = 0x1 653 SizeofRtGenmsg = 0x1
@@ -614,6 +655,7 @@ const (
614 SizeofRtAttr = 0x4 655 SizeofRtAttr = 0x4
615 SizeofIfInfomsg = 0x10 656 SizeofIfInfomsg = 0x10
616 SizeofIfAddrmsg = 0x8 657 SizeofIfAddrmsg = 0x8
658 SizeofIfaCacheinfo = 0x10
617 SizeofRtMsg = 0xc 659 SizeofRtMsg = 0xc
618 SizeofRtNexthop = 0x8 660 SizeofRtNexthop = 0x8
619 SizeofNdUseroptmsg = 0x10 661 SizeofNdUseroptmsg = 0x10
@@ -664,6 +706,13 @@ type IfAddrmsg struct {
664 Index uint32 706 Index uint32
665} 707}
666 708
709type IfaCacheinfo struct {
710 Prefered uint32
711 Valid uint32
712 Cstamp uint32
713 Tstamp uint32
714}
715
667type RtMsg struct { 716type RtMsg struct {
668 Family uint8 717 Family uint8
669 Dst_len uint8 718 Dst_len uint8
@@ -2041,6 +2090,7 @@ type XDPRingOffset struct {
2041 Producer uint64 2090 Producer uint64
2042 Consumer uint64 2091 Consumer uint64
2043 Desc uint64 2092 Desc uint64
2093 Flags uint64
2044} 2094}
2045 2095
2046type XDPMmapOffsets struct { 2096type XDPMmapOffsets struct {
@@ -2055,6 +2105,7 @@ type XDPUmemReg struct {
2055 Len uint64 2105 Len uint64
2056 Size uint32 2106 Size uint32
2057 Headroom uint32 2107 Headroom uint32
2108 Flags uint32
2058} 2109}
2059 2110
2060type XDPStatistics struct { 2111type XDPStatistics struct {
@@ -2468,6 +2519,42 @@ const (
2468 BPF_FD_TYPE_URETPROBE = 0x5 2519 BPF_FD_TYPE_URETPROBE = 0x5
2469) 2520)
2470 2521
2522const (
2523 RTNLGRP_NONE = 0x0
2524 RTNLGRP_LINK = 0x1
2525 RTNLGRP_NOTIFY = 0x2
2526 RTNLGRP_NEIGH = 0x3
2527 RTNLGRP_TC = 0x4
2528 RTNLGRP_IPV4_IFADDR = 0x5
2529 RTNLGRP_IPV4_MROUTE = 0x6
2530 RTNLGRP_IPV4_ROUTE = 0x7
2531 RTNLGRP_IPV4_RULE = 0x8
2532 RTNLGRP_IPV6_IFADDR = 0x9
2533 RTNLGRP_IPV6_MROUTE = 0xa
2534 RTNLGRP_IPV6_ROUTE = 0xb
2535 RTNLGRP_IPV6_IFINFO = 0xc
2536 RTNLGRP_DECnet_IFADDR = 0xd
2537 RTNLGRP_NOP2 = 0xe
2538 RTNLGRP_DECnet_ROUTE = 0xf
2539 RTNLGRP_DECnet_RULE = 0x10
2540 RTNLGRP_NOP4 = 0x11
2541 RTNLGRP_IPV6_PREFIX = 0x12
2542 RTNLGRP_IPV6_RULE = 0x13
2543 RTNLGRP_ND_USEROPT = 0x14
2544 RTNLGRP_PHONET_IFADDR = 0x15
2545 RTNLGRP_PHONET_ROUTE = 0x16
2546 RTNLGRP_DCB = 0x17
2547 RTNLGRP_IPV4_NETCONF = 0x18
2548 RTNLGRP_IPV6_NETCONF = 0x19
2549 RTNLGRP_MDB = 0x1a
2550 RTNLGRP_MPLS_ROUTE = 0x1b
2551 RTNLGRP_NSID = 0x1c
2552 RTNLGRP_MPLS_NETCONF = 0x1d
2553 RTNLGRP_IPV4_MROUTE_R = 0x1e
2554 RTNLGRP_IPV6_MROUTE_R = 0x1f
2555 RTNLGRP_NEXTHOP = 0x20
2556)
2557
2471type CapUserHeader struct { 2558type CapUserHeader struct {
2472 Version uint32 2559 Version uint32
2473 Pid int32 2560 Pid int32
@@ -2521,3 +2608,201 @@ type LoopInfo64 struct {
2521 Encrypt_key [32]uint8 2608 Encrypt_key [32]uint8
2522 Init [2]uint64 2609 Init [2]uint64
2523} 2610}
2611
2612type TIPCSocketAddr struct {
2613 Ref uint32
2614 Node uint32
2615}
2616
2617type TIPCServiceRange struct {
2618 Type uint32
2619 Lower uint32
2620 Upper uint32
2621}
2622
2623type TIPCServiceName struct {
2624 Type uint32
2625 Instance uint32
2626 Domain uint32
2627}
2628
2629type TIPCSubscr struct {
2630 Seq TIPCServiceRange
2631 Timeout uint32
2632 Filter uint32
2633 Handle [8]int8
2634}
2635
2636type TIPCEvent struct {
2637 Event uint32
2638 Lower uint32
2639 Upper uint32
2640 Port TIPCSocketAddr
2641 S TIPCSubscr
2642}
2643
2644type TIPCGroupReq struct {
2645 Type uint32
2646 Instance uint32
2647 Scope uint32
2648 Flags uint32
2649}
2650
2651type TIPCSIOCLNReq struct {
2652 Peer uint32
2653 Id uint32
2654 Linkname [68]int8
2655}
2656
2657type TIPCSIOCNodeIDReq struct {
2658 Peer uint32
2659 Id [16]int8
2660}
2661
2662const (
2663 TIPC_CLUSTER_SCOPE = 0x2
2664 TIPC_NODE_SCOPE = 0x3
2665)
2666
2667const (
2668 SYSLOG_ACTION_CLOSE = 0
2669 SYSLOG_ACTION_OPEN = 1
2670 SYSLOG_ACTION_READ = 2
2671 SYSLOG_ACTION_READ_ALL = 3
2672 SYSLOG_ACTION_READ_CLEAR = 4
2673 SYSLOG_ACTION_CLEAR = 5
2674 SYSLOG_ACTION_CONSOLE_OFF = 6
2675 SYSLOG_ACTION_CONSOLE_ON = 7
2676 SYSLOG_ACTION_CONSOLE_LEVEL = 8
2677 SYSLOG_ACTION_SIZE_UNREAD = 9
2678 SYSLOG_ACTION_SIZE_BUFFER = 10
2679)
2680
2681const (
2682 DEVLINK_CMD_UNSPEC = 0x0
2683 DEVLINK_CMD_GET = 0x1
2684 DEVLINK_CMD_SET = 0x2
2685 DEVLINK_CMD_NEW = 0x3
2686 DEVLINK_CMD_DEL = 0x4
2687 DEVLINK_CMD_PORT_GET = 0x5
2688 DEVLINK_CMD_PORT_SET = 0x6
2689 DEVLINK_CMD_PORT_NEW = 0x7
2690 DEVLINK_CMD_PORT_DEL = 0x8
2691 DEVLINK_CMD_PORT_SPLIT = 0x9
2692 DEVLINK_CMD_PORT_UNSPLIT = 0xa
2693 DEVLINK_CMD_SB_GET = 0xb
2694 DEVLINK_CMD_SB_SET = 0xc
2695 DEVLINK_CMD_SB_NEW = 0xd
2696 DEVLINK_CMD_SB_DEL = 0xe
2697 DEVLINK_CMD_SB_POOL_GET = 0xf
2698 DEVLINK_CMD_SB_POOL_SET = 0x10
2699 DEVLINK_CMD_SB_POOL_NEW = 0x11
2700 DEVLINK_CMD_SB_POOL_DEL = 0x12
2701 DEVLINK_CMD_SB_PORT_POOL_GET = 0x13
2702 DEVLINK_CMD_SB_PORT_POOL_SET = 0x14
2703 DEVLINK_CMD_SB_PORT_POOL_NEW = 0x15
2704 DEVLINK_CMD_SB_PORT_POOL_DEL = 0x16
2705 DEVLINK_CMD_SB_TC_POOL_BIND_GET = 0x17
2706 DEVLINK_CMD_SB_TC_POOL_BIND_SET = 0x18
2707 DEVLINK_CMD_SB_TC_POOL_BIND_NEW = 0x19
2708 DEVLINK_CMD_SB_TC_POOL_BIND_DEL = 0x1a
2709 DEVLINK_CMD_SB_OCC_SNAPSHOT = 0x1b
2710 DEVLINK_CMD_SB_OCC_MAX_CLEAR = 0x1c
2711 DEVLINK_CMD_ESWITCH_GET = 0x1d
2712 DEVLINK_CMD_ESWITCH_SET = 0x1e
2713 DEVLINK_CMD_DPIPE_TABLE_GET = 0x1f
2714 DEVLINK_CMD_DPIPE_ENTRIES_GET = 0x20
2715 DEVLINK_CMD_DPIPE_HEADERS_GET = 0x21
2716 DEVLINK_CMD_DPIPE_TABLE_COUNTERS_SET = 0x22
2717 DEVLINK_CMD_MAX = 0x44
2718 DEVLINK_PORT_TYPE_NOTSET = 0x0
2719 DEVLINK_PORT_TYPE_AUTO = 0x1
2720 DEVLINK_PORT_TYPE_ETH = 0x2
2721 DEVLINK_PORT_TYPE_IB = 0x3
2722 DEVLINK_SB_POOL_TYPE_INGRESS = 0x0
2723 DEVLINK_SB_POOL_TYPE_EGRESS = 0x1
2724 DEVLINK_SB_THRESHOLD_TYPE_STATIC = 0x0
2725 DEVLINK_SB_THRESHOLD_TYPE_DYNAMIC = 0x1
2726 DEVLINK_ESWITCH_MODE_LEGACY = 0x0
2727 DEVLINK_ESWITCH_MODE_SWITCHDEV = 0x1
2728 DEVLINK_ESWITCH_INLINE_MODE_NONE = 0x0
2729 DEVLINK_ESWITCH_INLINE_MODE_LINK = 0x1
2730 DEVLINK_ESWITCH_INLINE_MODE_NETWORK = 0x2
2731 DEVLINK_ESWITCH_INLINE_MODE_TRANSPORT = 0x3
2732 DEVLINK_ESWITCH_ENCAP_MODE_NONE = 0x0
2733 DEVLINK_ESWITCH_ENCAP_MODE_BASIC = 0x1
2734 DEVLINK_ATTR_UNSPEC = 0x0
2735 DEVLINK_ATTR_BUS_NAME = 0x1
2736 DEVLINK_ATTR_DEV_NAME = 0x2
2737 DEVLINK_ATTR_PORT_INDEX = 0x3
2738 DEVLINK_ATTR_PORT_TYPE = 0x4
2739 DEVLINK_ATTR_PORT_DESIRED_TYPE = 0x5
2740 DEVLINK_ATTR_PORT_NETDEV_IFINDEX = 0x6
2741 DEVLINK_ATTR_PORT_NETDEV_NAME = 0x7
2742 DEVLINK_ATTR_PORT_IBDEV_NAME = 0x8
2743 DEVLINK_ATTR_PORT_SPLIT_COUNT = 0x9
2744 DEVLINK_ATTR_PORT_SPLIT_GROUP = 0xa
2745 DEVLINK_ATTR_SB_INDEX = 0xb
2746 DEVLINK_ATTR_SB_SIZE = 0xc
2747 DEVLINK_ATTR_SB_INGRESS_POOL_COUNT = 0xd
2748 DEVLINK_ATTR_SB_EGRESS_POOL_COUNT = 0xe
2749 DEVLINK_ATTR_SB_INGRESS_TC_COUNT = 0xf
2750 DEVLINK_ATTR_SB_EGRESS_TC_COUNT = 0x10
2751 DEVLINK_ATTR_SB_POOL_INDEX = 0x11
2752 DEVLINK_ATTR_SB_POOL_TYPE = 0x12
2753 DEVLINK_ATTR_SB_POOL_SIZE = 0x13
2754 DEVLINK_ATTR_SB_POOL_THRESHOLD_TYPE = 0x14
2755 DEVLINK_ATTR_SB_THRESHOLD = 0x15
2756 DEVLINK_ATTR_SB_TC_INDEX = 0x16
2757 DEVLINK_ATTR_SB_OCC_CUR = 0x17
2758 DEVLINK_ATTR_SB_OCC_MAX = 0x18
2759 DEVLINK_ATTR_ESWITCH_MODE = 0x19
2760 DEVLINK_ATTR_ESWITCH_INLINE_MODE = 0x1a
2761 DEVLINK_ATTR_DPIPE_TABLES = 0x1b
2762 DEVLINK_ATTR_DPIPE_TABLE = 0x1c
2763 DEVLINK_ATTR_DPIPE_TABLE_NAME = 0x1d
2764 DEVLINK_ATTR_DPIPE_TABLE_SIZE = 0x1e
2765 DEVLINK_ATTR_DPIPE_TABLE_MATCHES = 0x1f
2766 DEVLINK_ATTR_DPIPE_TABLE_ACTIONS = 0x20
2767 DEVLINK_ATTR_DPIPE_TABLE_COUNTERS_ENABLED = 0x21
2768 DEVLINK_ATTR_DPIPE_ENTRIES = 0x22
2769 DEVLINK_ATTR_DPIPE_ENTRY = 0x23
2770 DEVLINK_ATTR_DPIPE_ENTRY_INDEX = 0x24
2771 DEVLINK_ATTR_DPIPE_ENTRY_MATCH_VALUES = 0x25
2772 DEVLINK_ATTR_DPIPE_ENTRY_ACTION_VALUES = 0x26
2773 DEVLINK_ATTR_DPIPE_ENTRY_COUNTER = 0x27
2774 DEVLINK_ATTR_DPIPE_MATCH = 0x28
2775 DEVLINK_ATTR_DPIPE_MATCH_VALUE = 0x29
2776 DEVLINK_ATTR_DPIPE_MATCH_TYPE = 0x2a
2777 DEVLINK_ATTR_DPIPE_ACTION = 0x2b
2778 DEVLINK_ATTR_DPIPE_ACTION_VALUE = 0x2c
2779 DEVLINK_ATTR_DPIPE_ACTION_TYPE = 0x2d
2780 DEVLINK_ATTR_DPIPE_VALUE = 0x2e
2781 DEVLINK_ATTR_DPIPE_VALUE_MASK = 0x2f
2782 DEVLINK_ATTR_DPIPE_VALUE_MAPPING = 0x30
2783 DEVLINK_ATTR_DPIPE_HEADERS = 0x31
2784 DEVLINK_ATTR_DPIPE_HEADER = 0x32
2785 DEVLINK_ATTR_DPIPE_HEADER_NAME = 0x33
2786 DEVLINK_ATTR_DPIPE_HEADER_ID = 0x34
2787 DEVLINK_ATTR_DPIPE_HEADER_FIELDS = 0x35
2788 DEVLINK_ATTR_DPIPE_HEADER_GLOBAL = 0x36
2789 DEVLINK_ATTR_DPIPE_HEADER_INDEX = 0x37
2790 DEVLINK_ATTR_DPIPE_FIELD = 0x38
2791 DEVLINK_ATTR_DPIPE_FIELD_NAME = 0x39
2792 DEVLINK_ATTR_DPIPE_FIELD_ID = 0x3a
2793 DEVLINK_ATTR_DPIPE_FIELD_BITWIDTH = 0x3b
2794 DEVLINK_ATTR_DPIPE_FIELD_MAPPING_TYPE = 0x3c
2795 DEVLINK_ATTR_PAD = 0x3d
2796 DEVLINK_ATTR_ESWITCH_ENCAP_MODE = 0x3e
2797 DEVLINK_ATTR_MAX = 0x8c
2798 DEVLINK_DPIPE_FIELD_MAPPING_TYPE_NONE = 0x0
2799 DEVLINK_DPIPE_FIELD_MAPPING_TYPE_IFINDEX = 0x1
2800 DEVLINK_DPIPE_MATCH_TYPE_FIELD_EXACT = 0x0
2801 DEVLINK_DPIPE_ACTION_TYPE_FIELD_MODIFY = 0x0
2802 DEVLINK_DPIPE_FIELD_ETHERNET_DST_MAC = 0x0
2803 DEVLINK_DPIPE_FIELD_IPV4_DST_IP = 0x0
2804 DEVLINK_DPIPE_FIELD_IPV6_DST_IP = 0x0
2805 DEVLINK_DPIPE_HEADER_ETHERNET = 0x0
2806 DEVLINK_DPIPE_HEADER_IPV4 = 0x1
2807 DEVLINK_DPIPE_HEADER_IPV6 = 0x2
2808)
diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_amd64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_amd64.go
index 055eaa7..88c7639 100644
--- a/vendor/golang.org/x/sys/unix/ztypes_linux_amd64.go
+++ b/vendor/golang.org/x/sys/unix/ztypes_linux_amd64.go
@@ -179,6 +179,55 @@ type FscryptKey struct {
179 Size uint32 179 Size uint32
180} 180}
181 181
182type FscryptPolicyV1 struct {
183 Version uint8
184 Contents_encryption_mode uint8
185 Filenames_encryption_mode uint8
186 Flags uint8
187 Master_key_descriptor [8]uint8
188}
189
190type FscryptPolicyV2 struct {
191 Version uint8
192 Contents_encryption_mode uint8
193 Filenames_encryption_mode uint8
194 Flags uint8
195 _ [4]uint8
196 Master_key_identifier [16]uint8
197}
198
199type FscryptGetPolicyExArg struct {
200 Size uint64
201 Policy [24]byte
202}
203
204type FscryptKeySpecifier struct {
205 Type uint32
206 _ uint32
207 U [32]byte
208}
209
210type FscryptAddKeyArg struct {
211 Key_spec FscryptKeySpecifier
212 Raw_size uint32
213 _ [9]uint32
214}
215
216type FscryptRemoveKeyArg struct {
217 Key_spec FscryptKeySpecifier
218 Removal_status_flags uint32
219 _ [5]uint32
220}
221
222type FscryptGetKeyStatusArg struct {
223 Key_spec FscryptKeySpecifier
224 _ [6]uint32
225 Status uint32
226 Status_flags uint32
227 User_count uint32
228 _ [13]uint32
229}
230
182type KeyctlDHParams struct { 231type KeyctlDHParams struct {
183 Private int32 232 Private int32
184 Prime int32 233 Prime int32
@@ -256,7 +305,7 @@ type RawSockaddrRFCOMM struct {
256type RawSockaddrCAN struct { 305type RawSockaddrCAN struct {
257 Family uint16 306 Family uint16
258 Ifindex int32 307 Ifindex int32
259 Addr [8]byte 308 Addr [16]byte
260} 309}
261 310
262type RawSockaddrALG struct { 311type RawSockaddrALG struct {
@@ -285,6 +334,13 @@ type RawSockaddrXDP struct {
285 334
286type RawSockaddrPPPoX [0x1e]byte 335type RawSockaddrPPPoX [0x1e]byte
287 336
337type RawSockaddrTIPC struct {
338 Family uint16
339 Addrtype uint8
340 Scope int8
341 Addr [12]byte
342}
343
288type RawSockaddr struct { 344type RawSockaddr struct {
289 Family uint16 345 Family uint16
290 Data [14]int8 346 Data [14]int8
@@ -421,11 +477,12 @@ const (
421 SizeofSockaddrHCI = 0x6 477 SizeofSockaddrHCI = 0x6
422 SizeofSockaddrL2 = 0xe 478 SizeofSockaddrL2 = 0xe
423 SizeofSockaddrRFCOMM = 0xa 479 SizeofSockaddrRFCOMM = 0xa
424 SizeofSockaddrCAN = 0x10 480 SizeofSockaddrCAN = 0x18
425 SizeofSockaddrALG = 0x58 481 SizeofSockaddrALG = 0x58
426 SizeofSockaddrVM = 0x10 482 SizeofSockaddrVM = 0x10
427 SizeofSockaddrXDP = 0x10 483 SizeofSockaddrXDP = 0x10
428 SizeofSockaddrPPPoX = 0x1e 484 SizeofSockaddrPPPoX = 0x1e
485 SizeofSockaddrTIPC = 0x10
429 SizeofLinger = 0x8 486 SizeofLinger = 0x8
430 SizeofIovec = 0x10 487 SizeofIovec = 0x10
431 SizeofIPMreq = 0x8 488 SizeofIPMreq = 0x8
@@ -536,7 +593,7 @@ const (
536 IFLA_NEW_IFINDEX = 0x31 593 IFLA_NEW_IFINDEX = 0x31
537 IFLA_MIN_MTU = 0x32 594 IFLA_MIN_MTU = 0x32
538 IFLA_MAX_MTU = 0x33 595 IFLA_MAX_MTU = 0x33
539 IFLA_MAX = 0x33 596 IFLA_MAX = 0x35
540 IFLA_INFO_KIND = 0x1 597 IFLA_INFO_KIND = 0x1
541 IFLA_INFO_DATA = 0x2 598 IFLA_INFO_DATA = 0x2
542 IFLA_INFO_XSTATS = 0x3 599 IFLA_INFO_XSTATS = 0x3
@@ -592,22 +649,6 @@ const (
592 RTN_THROW = 0x9 649 RTN_THROW = 0x9
593 RTN_NAT = 0xa 650 RTN_NAT = 0xa
594 RTN_XRESOLVE = 0xb 651 RTN_XRESOLVE = 0xb
595 RTNLGRP_NONE = 0x0
596 RTNLGRP_LINK = 0x1
597 RTNLGRP_NOTIFY = 0x2
598 RTNLGRP_NEIGH = 0x3
599 RTNLGRP_TC = 0x4
600 RTNLGRP_IPV4_IFADDR = 0x5
601 RTNLGRP_IPV4_MROUTE = 0x6
602 RTNLGRP_IPV4_ROUTE = 0x7
603 RTNLGRP_IPV4_RULE = 0x8
604 RTNLGRP_IPV6_IFADDR = 0x9
605 RTNLGRP_IPV6_MROUTE = 0xa
606 RTNLGRP_IPV6_ROUTE = 0xb
607 RTNLGRP_IPV6_IFINFO = 0xc
608 RTNLGRP_IPV6_PREFIX = 0x12
609 RTNLGRP_IPV6_RULE = 0x13
610 RTNLGRP_ND_USEROPT = 0x14
611 SizeofNlMsghdr = 0x10 652 SizeofNlMsghdr = 0x10
612 SizeofNlMsgerr = 0x14 653 SizeofNlMsgerr = 0x14
613 SizeofRtGenmsg = 0x1 654 SizeofRtGenmsg = 0x1
@@ -615,6 +656,7 @@ const (
615 SizeofRtAttr = 0x4 656 SizeofRtAttr = 0x4
616 SizeofIfInfomsg = 0x10 657 SizeofIfInfomsg = 0x10
617 SizeofIfAddrmsg = 0x8 658 SizeofIfAddrmsg = 0x8
659 SizeofIfaCacheinfo = 0x10
618 SizeofRtMsg = 0xc 660 SizeofRtMsg = 0xc
619 SizeofRtNexthop = 0x8 661 SizeofRtNexthop = 0x8
620 SizeofNdUseroptmsg = 0x10 662 SizeofNdUseroptmsg = 0x10
@@ -665,6 +707,13 @@ type IfAddrmsg struct {
665 Index uint32 707 Index uint32
666} 708}
667 709
710type IfaCacheinfo struct {
711 Prefered uint32
712 Valid uint32
713 Cstamp uint32
714 Tstamp uint32
715}
716
668type RtMsg struct { 717type RtMsg struct {
669 Family uint8 718 Family uint8
670 Dst_len uint8 719 Dst_len uint8
@@ -2054,6 +2103,7 @@ type XDPRingOffset struct {
2054 Producer uint64 2103 Producer uint64
2055 Consumer uint64 2104 Consumer uint64
2056 Desc uint64 2105 Desc uint64
2106 Flags uint64
2057} 2107}
2058 2108
2059type XDPMmapOffsets struct { 2109type XDPMmapOffsets struct {
@@ -2068,6 +2118,8 @@ type XDPUmemReg struct {
2068 Len uint64 2118 Len uint64
2069 Size uint32 2119 Size uint32
2070 Headroom uint32 2120 Headroom uint32
2121 Flags uint32
2122 _ [4]byte
2071} 2123}
2072 2124
2073type XDPStatistics struct { 2125type XDPStatistics struct {
@@ -2481,6 +2533,42 @@ const (
2481 BPF_FD_TYPE_URETPROBE = 0x5 2533 BPF_FD_TYPE_URETPROBE = 0x5
2482) 2534)
2483 2535
2536const (
2537 RTNLGRP_NONE = 0x0
2538 RTNLGRP_LINK = 0x1
2539 RTNLGRP_NOTIFY = 0x2
2540 RTNLGRP_NEIGH = 0x3
2541 RTNLGRP_TC = 0x4
2542 RTNLGRP_IPV4_IFADDR = 0x5
2543 RTNLGRP_IPV4_MROUTE = 0x6
2544 RTNLGRP_IPV4_ROUTE = 0x7
2545 RTNLGRP_IPV4_RULE = 0x8
2546 RTNLGRP_IPV6_IFADDR = 0x9
2547 RTNLGRP_IPV6_MROUTE = 0xa
2548 RTNLGRP_IPV6_ROUTE = 0xb
2549 RTNLGRP_IPV6_IFINFO = 0xc
2550 RTNLGRP_DECnet_IFADDR = 0xd
2551 RTNLGRP_NOP2 = 0xe
2552 RTNLGRP_DECnet_ROUTE = 0xf
2553 RTNLGRP_DECnet_RULE = 0x10
2554 RTNLGRP_NOP4 = 0x11
2555 RTNLGRP_IPV6_PREFIX = 0x12
2556 RTNLGRP_IPV6_RULE = 0x13
2557 RTNLGRP_ND_USEROPT = 0x14
2558 RTNLGRP_PHONET_IFADDR = 0x15
2559 RTNLGRP_PHONET_ROUTE = 0x16
2560 RTNLGRP_DCB = 0x17
2561 RTNLGRP_IPV4_NETCONF = 0x18
2562 RTNLGRP_IPV6_NETCONF = 0x19
2563 RTNLGRP_MDB = 0x1a
2564 RTNLGRP_MPLS_ROUTE = 0x1b
2565 RTNLGRP_NSID = 0x1c
2566 RTNLGRP_MPLS_NETCONF = 0x1d
2567 RTNLGRP_IPV4_MROUTE_R = 0x1e
2568 RTNLGRP_IPV6_MROUTE_R = 0x1f
2569 RTNLGRP_NEXTHOP = 0x20
2570)
2571
2484type CapUserHeader struct { 2572type CapUserHeader struct {
2485 Version uint32 2573 Version uint32
2486 Pid int32 2574 Pid int32
@@ -2535,3 +2623,201 @@ type LoopInfo64 struct {
2535 Encrypt_key [32]uint8 2623 Encrypt_key [32]uint8
2536 Init [2]uint64 2624 Init [2]uint64
2537} 2625}
2626
2627type TIPCSocketAddr struct {
2628 Ref uint32
2629 Node uint32
2630}
2631
2632type TIPCServiceRange struct {
2633 Type uint32
2634 Lower uint32
2635 Upper uint32
2636}
2637
2638type TIPCServiceName struct {
2639 Type uint32
2640 Instance uint32
2641 Domain uint32
2642}
2643
2644type TIPCSubscr struct {
2645 Seq TIPCServiceRange
2646 Timeout uint32
2647 Filter uint32
2648 Handle [8]int8
2649}
2650
2651type TIPCEvent struct {
2652 Event uint32
2653 Lower uint32
2654 Upper uint32
2655 Port TIPCSocketAddr
2656 S TIPCSubscr
2657}
2658
2659type TIPCGroupReq struct {
2660 Type uint32
2661 Instance uint32
2662 Scope uint32
2663 Flags uint32
2664}
2665
2666type TIPCSIOCLNReq struct {
2667 Peer uint32
2668 Id uint32
2669 Linkname [68]int8
2670}
2671
2672type TIPCSIOCNodeIDReq struct {
2673 Peer uint32
2674 Id [16]int8
2675}
2676
2677const (
2678 TIPC_CLUSTER_SCOPE = 0x2
2679 TIPC_NODE_SCOPE = 0x3
2680)
2681
2682const (
2683 SYSLOG_ACTION_CLOSE = 0
2684 SYSLOG_ACTION_OPEN = 1
2685 SYSLOG_ACTION_READ = 2
2686 SYSLOG_ACTION_READ_ALL = 3
2687 SYSLOG_ACTION_READ_CLEAR = 4
2688 SYSLOG_ACTION_CLEAR = 5
2689 SYSLOG_ACTION_CONSOLE_OFF = 6
2690 SYSLOG_ACTION_CONSOLE_ON = 7
2691 SYSLOG_ACTION_CONSOLE_LEVEL = 8
2692 SYSLOG_ACTION_SIZE_UNREAD = 9
2693 SYSLOG_ACTION_SIZE_BUFFER = 10
2694)
2695
2696const (
2697 DEVLINK_CMD_UNSPEC = 0x0
2698 DEVLINK_CMD_GET = 0x1
2699 DEVLINK_CMD_SET = 0x2
2700 DEVLINK_CMD_NEW = 0x3
2701 DEVLINK_CMD_DEL = 0x4
2702 DEVLINK_CMD_PORT_GET = 0x5
2703 DEVLINK_CMD_PORT_SET = 0x6
2704 DEVLINK_CMD_PORT_NEW = 0x7
2705 DEVLINK_CMD_PORT_DEL = 0x8
2706 DEVLINK_CMD_PORT_SPLIT = 0x9
2707 DEVLINK_CMD_PORT_UNSPLIT = 0xa
2708 DEVLINK_CMD_SB_GET = 0xb
2709 DEVLINK_CMD_SB_SET = 0xc
2710 DEVLINK_CMD_SB_NEW = 0xd
2711 DEVLINK_CMD_SB_DEL = 0xe
2712 DEVLINK_CMD_SB_POOL_GET = 0xf
2713 DEVLINK_CMD_SB_POOL_SET = 0x10
2714 DEVLINK_CMD_SB_POOL_NEW = 0x11
2715 DEVLINK_CMD_SB_POOL_DEL = 0x12
2716 DEVLINK_CMD_SB_PORT_POOL_GET = 0x13
2717 DEVLINK_CMD_SB_PORT_POOL_SET = 0x14
2718 DEVLINK_CMD_SB_PORT_POOL_NEW = 0x15
2719 DEVLINK_CMD_SB_PORT_POOL_DEL = 0x16
2720 DEVLINK_CMD_SB_TC_POOL_BIND_GET = 0x17
2721 DEVLINK_CMD_SB_TC_POOL_BIND_SET = 0x18
2722 DEVLINK_CMD_SB_TC_POOL_BIND_NEW = 0x19
2723 DEVLINK_CMD_SB_TC_POOL_BIND_DEL = 0x1a
2724 DEVLINK_CMD_SB_OCC_SNAPSHOT = 0x1b
2725 DEVLINK_CMD_SB_OCC_MAX_CLEAR = 0x1c
2726 DEVLINK_CMD_ESWITCH_GET = 0x1d
2727 DEVLINK_CMD_ESWITCH_SET = 0x1e
2728 DEVLINK_CMD_DPIPE_TABLE_GET = 0x1f
2729 DEVLINK_CMD_DPIPE_ENTRIES_GET = 0x20
2730 DEVLINK_CMD_DPIPE_HEADERS_GET = 0x21
2731 DEVLINK_CMD_DPIPE_TABLE_COUNTERS_SET = 0x22
2732 DEVLINK_CMD_MAX = 0x44
2733 DEVLINK_PORT_TYPE_NOTSET = 0x0
2734 DEVLINK_PORT_TYPE_AUTO = 0x1
2735 DEVLINK_PORT_TYPE_ETH = 0x2
2736 DEVLINK_PORT_TYPE_IB = 0x3
2737 DEVLINK_SB_POOL_TYPE_INGRESS = 0x0
2738 DEVLINK_SB_POOL_TYPE_EGRESS = 0x1
2739 DEVLINK_SB_THRESHOLD_TYPE_STATIC = 0x0
2740 DEVLINK_SB_THRESHOLD_TYPE_DYNAMIC = 0x1
2741 DEVLINK_ESWITCH_MODE_LEGACY = 0x0
2742 DEVLINK_ESWITCH_MODE_SWITCHDEV = 0x1
2743 DEVLINK_ESWITCH_INLINE_MODE_NONE = 0x0
2744 DEVLINK_ESWITCH_INLINE_MODE_LINK = 0x1
2745 DEVLINK_ESWITCH_INLINE_MODE_NETWORK = 0x2
2746 DEVLINK_ESWITCH_INLINE_MODE_TRANSPORT = 0x3
2747 DEVLINK_ESWITCH_ENCAP_MODE_NONE = 0x0
2748 DEVLINK_ESWITCH_ENCAP_MODE_BASIC = 0x1
2749 DEVLINK_ATTR_UNSPEC = 0x0
2750 DEVLINK_ATTR_BUS_NAME = 0x1
2751 DEVLINK_ATTR_DEV_NAME = 0x2
2752 DEVLINK_ATTR_PORT_INDEX = 0x3
2753 DEVLINK_ATTR_PORT_TYPE = 0x4
2754 DEVLINK_ATTR_PORT_DESIRED_TYPE = 0x5
2755 DEVLINK_ATTR_PORT_NETDEV_IFINDEX = 0x6
2756 DEVLINK_ATTR_PORT_NETDEV_NAME = 0x7
2757 DEVLINK_ATTR_PORT_IBDEV_NAME = 0x8
2758 DEVLINK_ATTR_PORT_SPLIT_COUNT = 0x9
2759 DEVLINK_ATTR_PORT_SPLIT_GROUP = 0xa
2760 DEVLINK_ATTR_SB_INDEX = 0xb
2761 DEVLINK_ATTR_SB_SIZE = 0xc
2762 DEVLINK_ATTR_SB_INGRESS_POOL_COUNT = 0xd
2763 DEVLINK_ATTR_SB_EGRESS_POOL_COUNT = 0xe
2764 DEVLINK_ATTR_SB_INGRESS_TC_COUNT = 0xf
2765 DEVLINK_ATTR_SB_EGRESS_TC_COUNT = 0x10
2766 DEVLINK_ATTR_SB_POOL_INDEX = 0x11
2767 DEVLINK_ATTR_SB_POOL_TYPE = 0x12
2768 DEVLINK_ATTR_SB_POOL_SIZE = 0x13
2769 DEVLINK_ATTR_SB_POOL_THRESHOLD_TYPE = 0x14
2770 DEVLINK_ATTR_SB_THRESHOLD = 0x15
2771 DEVLINK_ATTR_SB_TC_INDEX = 0x16
2772 DEVLINK_ATTR_SB_OCC_CUR = 0x17
2773 DEVLINK_ATTR_SB_OCC_MAX = 0x18
2774 DEVLINK_ATTR_ESWITCH_MODE = 0x19
2775 DEVLINK_ATTR_ESWITCH_INLINE_MODE = 0x1a
2776 DEVLINK_ATTR_DPIPE_TABLES = 0x1b
2777 DEVLINK_ATTR_DPIPE_TABLE = 0x1c
2778 DEVLINK_ATTR_DPIPE_TABLE_NAME = 0x1d
2779 DEVLINK_ATTR_DPIPE_TABLE_SIZE = 0x1e
2780 DEVLINK_ATTR_DPIPE_TABLE_MATCHES = 0x1f
2781 DEVLINK_ATTR_DPIPE_TABLE_ACTIONS = 0x20
2782 DEVLINK_ATTR_DPIPE_TABLE_COUNTERS_ENABLED = 0x21
2783 DEVLINK_ATTR_DPIPE_ENTRIES = 0x22
2784 DEVLINK_ATTR_DPIPE_ENTRY = 0x23
2785 DEVLINK_ATTR_DPIPE_ENTRY_INDEX = 0x24
2786 DEVLINK_ATTR_DPIPE_ENTRY_MATCH_VALUES = 0x25
2787 DEVLINK_ATTR_DPIPE_ENTRY_ACTION_VALUES = 0x26
2788 DEVLINK_ATTR_DPIPE_ENTRY_COUNTER = 0x27
2789 DEVLINK_ATTR_DPIPE_MATCH = 0x28
2790 DEVLINK_ATTR_DPIPE_MATCH_VALUE = 0x29
2791 DEVLINK_ATTR_DPIPE_MATCH_TYPE = 0x2a
2792 DEVLINK_ATTR_DPIPE_ACTION = 0x2b
2793 DEVLINK_ATTR_DPIPE_ACTION_VALUE = 0x2c
2794 DEVLINK_ATTR_DPIPE_ACTION_TYPE = 0x2d
2795 DEVLINK_ATTR_DPIPE_VALUE = 0x2e
2796 DEVLINK_ATTR_DPIPE_VALUE_MASK = 0x2f
2797 DEVLINK_ATTR_DPIPE_VALUE_MAPPING = 0x30
2798 DEVLINK_ATTR_DPIPE_HEADERS = 0x31
2799 DEVLINK_ATTR_DPIPE_HEADER = 0x32
2800 DEVLINK_ATTR_DPIPE_HEADER_NAME = 0x33
2801 DEVLINK_ATTR_DPIPE_HEADER_ID = 0x34
2802 DEVLINK_ATTR_DPIPE_HEADER_FIELDS = 0x35
2803 DEVLINK_ATTR_DPIPE_HEADER_GLOBAL = 0x36
2804 DEVLINK_ATTR_DPIPE_HEADER_INDEX = 0x37
2805 DEVLINK_ATTR_DPIPE_FIELD = 0x38
2806 DEVLINK_ATTR_DPIPE_FIELD_NAME = 0x39
2807 DEVLINK_ATTR_DPIPE_FIELD_ID = 0x3a
2808 DEVLINK_ATTR_DPIPE_FIELD_BITWIDTH = 0x3b
2809 DEVLINK_ATTR_DPIPE_FIELD_MAPPING_TYPE = 0x3c
2810 DEVLINK_ATTR_PAD = 0x3d
2811 DEVLINK_ATTR_ESWITCH_ENCAP_MODE = 0x3e
2812 DEVLINK_ATTR_MAX = 0x8c
2813 DEVLINK_DPIPE_FIELD_MAPPING_TYPE_NONE = 0x0
2814 DEVLINK_DPIPE_FIELD_MAPPING_TYPE_IFINDEX = 0x1
2815 DEVLINK_DPIPE_MATCH_TYPE_FIELD_EXACT = 0x0
2816 DEVLINK_DPIPE_ACTION_TYPE_FIELD_MODIFY = 0x0
2817 DEVLINK_DPIPE_FIELD_ETHERNET_DST_MAC = 0x0
2818 DEVLINK_DPIPE_FIELD_IPV4_DST_IP = 0x0
2819 DEVLINK_DPIPE_FIELD_IPV6_DST_IP = 0x0
2820 DEVLINK_DPIPE_HEADER_ETHERNET = 0x0
2821 DEVLINK_DPIPE_HEADER_IPV4 = 0x1
2822 DEVLINK_DPIPE_HEADER_IPV6 = 0x2
2823)
diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_arm.go b/vendor/golang.org/x/sys/unix/ztypes_linux_arm.go
index 66019c9..0c0f24c 100644
--- a/vendor/golang.org/x/sys/unix/ztypes_linux_arm.go
+++ b/vendor/golang.org/x/sys/unix/ztypes_linux_arm.go
@@ -183,6 +183,55 @@ type FscryptKey struct {
183 Size uint32 183 Size uint32
184} 184}
185 185
186type FscryptPolicyV1 struct {
187 Version uint8
188 Contents_encryption_mode uint8
189 Filenames_encryption_mode uint8
190 Flags uint8
191 Master_key_descriptor [8]uint8
192}
193
194type FscryptPolicyV2 struct {
195 Version uint8
196 Contents_encryption_mode uint8
197 Filenames_encryption_mode uint8
198 Flags uint8
199 _ [4]uint8
200 Master_key_identifier [16]uint8
201}
202
203type FscryptGetPolicyExArg struct {
204 Size uint64
205 Policy [24]byte
206}
207
208type FscryptKeySpecifier struct {
209 Type uint32
210 _ uint32
211 U [32]byte
212}
213
214type FscryptAddKeyArg struct {
215 Key_spec FscryptKeySpecifier
216 Raw_size uint32
217 _ [9]uint32
218}
219
220type FscryptRemoveKeyArg struct {
221 Key_spec FscryptKeySpecifier
222 Removal_status_flags uint32
223 _ [5]uint32
224}
225
226type FscryptGetKeyStatusArg struct {
227 Key_spec FscryptKeySpecifier
228 _ [6]uint32
229 Status uint32
230 Status_flags uint32
231 User_count uint32
232 _ [13]uint32
233}
234
186type KeyctlDHParams struct { 235type KeyctlDHParams struct {
187 Private int32 236 Private int32
188 Prime int32 237 Prime int32
@@ -260,7 +309,7 @@ type RawSockaddrRFCOMM struct {
260type RawSockaddrCAN struct { 309type RawSockaddrCAN struct {
261 Family uint16 310 Family uint16
262 Ifindex int32 311 Ifindex int32
263 Addr [8]byte 312 Addr [16]byte
264} 313}
265 314
266type RawSockaddrALG struct { 315type RawSockaddrALG struct {
@@ -289,6 +338,13 @@ type RawSockaddrXDP struct {
289 338
290type RawSockaddrPPPoX [0x1e]byte 339type RawSockaddrPPPoX [0x1e]byte
291 340
341type RawSockaddrTIPC struct {
342 Family uint16
343 Addrtype uint8
344 Scope int8
345 Addr [12]byte
346}
347
292type RawSockaddr struct { 348type RawSockaddr struct {
293 Family uint16 349 Family uint16
294 Data [14]uint8 350 Data [14]uint8
@@ -424,11 +480,12 @@ const (
424 SizeofSockaddrHCI = 0x6 480 SizeofSockaddrHCI = 0x6
425 SizeofSockaddrL2 = 0xe 481 SizeofSockaddrL2 = 0xe
426 SizeofSockaddrRFCOMM = 0xa 482 SizeofSockaddrRFCOMM = 0xa
427 SizeofSockaddrCAN = 0x10 483 SizeofSockaddrCAN = 0x18
428 SizeofSockaddrALG = 0x58 484 SizeofSockaddrALG = 0x58
429 SizeofSockaddrVM = 0x10 485 SizeofSockaddrVM = 0x10
430 SizeofSockaddrXDP = 0x10 486 SizeofSockaddrXDP = 0x10
431 SizeofSockaddrPPPoX = 0x1e 487 SizeofSockaddrPPPoX = 0x1e
488 SizeofSockaddrTIPC = 0x10
432 SizeofLinger = 0x8 489 SizeofLinger = 0x8
433 SizeofIovec = 0x8 490 SizeofIovec = 0x8
434 SizeofIPMreq = 0x8 491 SizeofIPMreq = 0x8
@@ -539,7 +596,7 @@ const (
539 IFLA_NEW_IFINDEX = 0x31 596 IFLA_NEW_IFINDEX = 0x31
540 IFLA_MIN_MTU = 0x32 597 IFLA_MIN_MTU = 0x32
541 IFLA_MAX_MTU = 0x33 598 IFLA_MAX_MTU = 0x33
542 IFLA_MAX = 0x33 599 IFLA_MAX = 0x35
543 IFLA_INFO_KIND = 0x1 600 IFLA_INFO_KIND = 0x1
544 IFLA_INFO_DATA = 0x2 601 IFLA_INFO_DATA = 0x2
545 IFLA_INFO_XSTATS = 0x3 602 IFLA_INFO_XSTATS = 0x3
@@ -595,22 +652,6 @@ const (
595 RTN_THROW = 0x9 652 RTN_THROW = 0x9
596 RTN_NAT = 0xa 653 RTN_NAT = 0xa
597 RTN_XRESOLVE = 0xb 654 RTN_XRESOLVE = 0xb
598 RTNLGRP_NONE = 0x0
599 RTNLGRP_LINK = 0x1
600 RTNLGRP_NOTIFY = 0x2
601 RTNLGRP_NEIGH = 0x3
602 RTNLGRP_TC = 0x4
603 RTNLGRP_IPV4_IFADDR = 0x5
604 RTNLGRP_IPV4_MROUTE = 0x6
605 RTNLGRP_IPV4_ROUTE = 0x7
606 RTNLGRP_IPV4_RULE = 0x8
607 RTNLGRP_IPV6_IFADDR = 0x9
608 RTNLGRP_IPV6_MROUTE = 0xa
609 RTNLGRP_IPV6_ROUTE = 0xb
610 RTNLGRP_IPV6_IFINFO = 0xc
611 RTNLGRP_IPV6_PREFIX = 0x12
612 RTNLGRP_IPV6_RULE = 0x13
613 RTNLGRP_ND_USEROPT = 0x14
614 SizeofNlMsghdr = 0x10 655 SizeofNlMsghdr = 0x10
615 SizeofNlMsgerr = 0x14 656 SizeofNlMsgerr = 0x14
616 SizeofRtGenmsg = 0x1 657 SizeofRtGenmsg = 0x1
@@ -618,6 +659,7 @@ const (
618 SizeofRtAttr = 0x4 659 SizeofRtAttr = 0x4
619 SizeofIfInfomsg = 0x10 660 SizeofIfInfomsg = 0x10
620 SizeofIfAddrmsg = 0x8 661 SizeofIfAddrmsg = 0x8
662 SizeofIfaCacheinfo = 0x10
621 SizeofRtMsg = 0xc 663 SizeofRtMsg = 0xc
622 SizeofRtNexthop = 0x8 664 SizeofRtNexthop = 0x8
623 SizeofNdUseroptmsg = 0x10 665 SizeofNdUseroptmsg = 0x10
@@ -668,6 +710,13 @@ type IfAddrmsg struct {
668 Index uint32 710 Index uint32
669} 711}
670 712
713type IfaCacheinfo struct {
714 Prefered uint32
715 Valid uint32
716 Cstamp uint32
717 Tstamp uint32
718}
719
671type RtMsg struct { 720type RtMsg struct {
672 Family uint8 721 Family uint8
673 Dst_len uint8 722 Dst_len uint8
@@ -2032,6 +2081,7 @@ type XDPRingOffset struct {
2032 Producer uint64 2081 Producer uint64
2033 Consumer uint64 2082 Consumer uint64
2034 Desc uint64 2083 Desc uint64
2084 Flags uint64
2035} 2085}
2036 2086
2037type XDPMmapOffsets struct { 2087type XDPMmapOffsets struct {
@@ -2046,6 +2096,8 @@ type XDPUmemReg struct {
2046 Len uint64 2096 Len uint64
2047 Size uint32 2097 Size uint32
2048 Headroom uint32 2098 Headroom uint32
2099 Flags uint32
2100 _ [4]byte
2049} 2101}
2050 2102
2051type XDPStatistics struct { 2103type XDPStatistics struct {
@@ -2459,6 +2511,42 @@ const (
2459 BPF_FD_TYPE_URETPROBE = 0x5 2511 BPF_FD_TYPE_URETPROBE = 0x5
2460) 2512)
2461 2513
2514const (
2515 RTNLGRP_NONE = 0x0
2516 RTNLGRP_LINK = 0x1
2517 RTNLGRP_NOTIFY = 0x2
2518 RTNLGRP_NEIGH = 0x3
2519 RTNLGRP_TC = 0x4
2520 RTNLGRP_IPV4_IFADDR = 0x5
2521 RTNLGRP_IPV4_MROUTE = 0x6
2522 RTNLGRP_IPV4_ROUTE = 0x7
2523 RTNLGRP_IPV4_RULE = 0x8
2524 RTNLGRP_IPV6_IFADDR = 0x9
2525 RTNLGRP_IPV6_MROUTE = 0xa
2526 RTNLGRP_IPV6_ROUTE = 0xb
2527 RTNLGRP_IPV6_IFINFO = 0xc
2528 RTNLGRP_DECnet_IFADDR = 0xd
2529 RTNLGRP_NOP2 = 0xe
2530 RTNLGRP_DECnet_ROUTE = 0xf
2531 RTNLGRP_DECnet_RULE = 0x10
2532 RTNLGRP_NOP4 = 0x11
2533 RTNLGRP_IPV6_PREFIX = 0x12
2534 RTNLGRP_IPV6_RULE = 0x13
2535 RTNLGRP_ND_USEROPT = 0x14
2536 RTNLGRP_PHONET_IFADDR = 0x15
2537 RTNLGRP_PHONET_ROUTE = 0x16
2538 RTNLGRP_DCB = 0x17
2539 RTNLGRP_IPV4_NETCONF = 0x18
2540 RTNLGRP_IPV6_NETCONF = 0x19
2541 RTNLGRP_MDB = 0x1a
2542 RTNLGRP_MPLS_ROUTE = 0x1b
2543 RTNLGRP_NSID = 0x1c
2544 RTNLGRP_MPLS_NETCONF = 0x1d
2545 RTNLGRP_IPV4_MROUTE_R = 0x1e
2546 RTNLGRP_IPV6_MROUTE_R = 0x1f
2547 RTNLGRP_NEXTHOP = 0x20
2548)
2549
2462type CapUserHeader struct { 2550type CapUserHeader struct {
2463 Version uint32 2551 Version uint32
2464 Pid int32 2552 Pid int32
@@ -2512,3 +2600,201 @@ type LoopInfo64 struct {
2512 Encrypt_key [32]uint8 2600 Encrypt_key [32]uint8
2513 Init [2]uint64 2601 Init [2]uint64
2514} 2602}
2603
2604type TIPCSocketAddr struct {
2605 Ref uint32
2606 Node uint32
2607}
2608
2609type TIPCServiceRange struct {
2610 Type uint32
2611 Lower uint32
2612 Upper uint32
2613}
2614
2615type TIPCServiceName struct {
2616 Type uint32
2617 Instance uint32
2618 Domain uint32
2619}
2620
2621type TIPCSubscr struct {
2622 Seq TIPCServiceRange
2623 Timeout uint32
2624 Filter uint32
2625 Handle [8]uint8
2626}
2627
2628type TIPCEvent struct {
2629 Event uint32
2630 Lower uint32
2631 Upper uint32
2632 Port TIPCSocketAddr
2633 S TIPCSubscr
2634}
2635
2636type TIPCGroupReq struct {
2637 Type uint32
2638 Instance uint32
2639 Scope uint32
2640 Flags uint32
2641}
2642
2643type TIPCSIOCLNReq struct {
2644 Peer uint32
2645 Id uint32
2646 Linkname [68]uint8
2647}
2648
2649type TIPCSIOCNodeIDReq struct {
2650 Peer uint32
2651 Id [16]uint8
2652}
2653
2654const (
2655 TIPC_CLUSTER_SCOPE = 0x2
2656 TIPC_NODE_SCOPE = 0x3
2657)
2658
2659const (
2660 SYSLOG_ACTION_CLOSE = 0
2661 SYSLOG_ACTION_OPEN = 1
2662 SYSLOG_ACTION_READ = 2
2663 SYSLOG_ACTION_READ_ALL = 3
2664 SYSLOG_ACTION_READ_CLEAR = 4
2665 SYSLOG_ACTION_CLEAR = 5
2666 SYSLOG_ACTION_CONSOLE_OFF = 6
2667 SYSLOG_ACTION_CONSOLE_ON = 7
2668 SYSLOG_ACTION_CONSOLE_LEVEL = 8
2669 SYSLOG_ACTION_SIZE_UNREAD = 9
2670 SYSLOG_ACTION_SIZE_BUFFER = 10
2671)
2672
2673const (
2674 DEVLINK_CMD_UNSPEC = 0x0
2675 DEVLINK_CMD_GET = 0x1
2676 DEVLINK_CMD_SET = 0x2
2677 DEVLINK_CMD_NEW = 0x3
2678 DEVLINK_CMD_DEL = 0x4
2679 DEVLINK_CMD_PORT_GET = 0x5
2680 DEVLINK_CMD_PORT_SET = 0x6
2681 DEVLINK_CMD_PORT_NEW = 0x7
2682 DEVLINK_CMD_PORT_DEL = 0x8
2683 DEVLINK_CMD_PORT_SPLIT = 0x9
2684 DEVLINK_CMD_PORT_UNSPLIT = 0xa
2685 DEVLINK_CMD_SB_GET = 0xb
2686 DEVLINK_CMD_SB_SET = 0xc
2687 DEVLINK_CMD_SB_NEW = 0xd
2688 DEVLINK_CMD_SB_DEL = 0xe
2689 DEVLINK_CMD_SB_POOL_GET = 0xf
2690 DEVLINK_CMD_SB_POOL_SET = 0x10
2691 DEVLINK_CMD_SB_POOL_NEW = 0x11
2692 DEVLINK_CMD_SB_POOL_DEL = 0x12
2693 DEVLINK_CMD_SB_PORT_POOL_GET = 0x13
2694 DEVLINK_CMD_SB_PORT_POOL_SET = 0x14
2695 DEVLINK_CMD_SB_PORT_POOL_NEW = 0x15
2696 DEVLINK_CMD_SB_PORT_POOL_DEL = 0x16
2697 DEVLINK_CMD_SB_TC_POOL_BIND_GET = 0x17
2698 DEVLINK_CMD_SB_TC_POOL_BIND_SET = 0x18
2699 DEVLINK_CMD_SB_TC_POOL_BIND_NEW = 0x19
2700 DEVLINK_CMD_SB_TC_POOL_BIND_DEL = 0x1a
2701 DEVLINK_CMD_SB_OCC_SNAPSHOT = 0x1b
2702 DEVLINK_CMD_SB_OCC_MAX_CLEAR = 0x1c
2703 DEVLINK_CMD_ESWITCH_GET = 0x1d
2704 DEVLINK_CMD_ESWITCH_SET = 0x1e
2705 DEVLINK_CMD_DPIPE_TABLE_GET = 0x1f
2706 DEVLINK_CMD_DPIPE_ENTRIES_GET = 0x20
2707 DEVLINK_CMD_DPIPE_HEADERS_GET = 0x21
2708 DEVLINK_CMD_DPIPE_TABLE_COUNTERS_SET = 0x22
2709 DEVLINK_CMD_MAX = 0x44
2710 DEVLINK_PORT_TYPE_NOTSET = 0x0
2711 DEVLINK_PORT_TYPE_AUTO = 0x1
2712 DEVLINK_PORT_TYPE_ETH = 0x2
2713 DEVLINK_PORT_TYPE_IB = 0x3
2714 DEVLINK_SB_POOL_TYPE_INGRESS = 0x0
2715 DEVLINK_SB_POOL_TYPE_EGRESS = 0x1
2716 DEVLINK_SB_THRESHOLD_TYPE_STATIC = 0x0
2717 DEVLINK_SB_THRESHOLD_TYPE_DYNAMIC = 0x1
2718 DEVLINK_ESWITCH_MODE_LEGACY = 0x0
2719 DEVLINK_ESWITCH_MODE_SWITCHDEV = 0x1
2720 DEVLINK_ESWITCH_INLINE_MODE_NONE = 0x0
2721 DEVLINK_ESWITCH_INLINE_MODE_LINK = 0x1
2722 DEVLINK_ESWITCH_INLINE_MODE_NETWORK = 0x2
2723 DEVLINK_ESWITCH_INLINE_MODE_TRANSPORT = 0x3
2724 DEVLINK_ESWITCH_ENCAP_MODE_NONE = 0x0
2725 DEVLINK_ESWITCH_ENCAP_MODE_BASIC = 0x1
2726 DEVLINK_ATTR_UNSPEC = 0x0
2727 DEVLINK_ATTR_BUS_NAME = 0x1
2728 DEVLINK_ATTR_DEV_NAME = 0x2
2729 DEVLINK_ATTR_PORT_INDEX = 0x3
2730 DEVLINK_ATTR_PORT_TYPE = 0x4
2731 DEVLINK_ATTR_PORT_DESIRED_TYPE = 0x5
2732 DEVLINK_ATTR_PORT_NETDEV_IFINDEX = 0x6
2733 DEVLINK_ATTR_PORT_NETDEV_NAME = 0x7
2734 DEVLINK_ATTR_PORT_IBDEV_NAME = 0x8
2735 DEVLINK_ATTR_PORT_SPLIT_COUNT = 0x9
2736 DEVLINK_ATTR_PORT_SPLIT_GROUP = 0xa
2737 DEVLINK_ATTR_SB_INDEX = 0xb
2738 DEVLINK_ATTR_SB_SIZE = 0xc
2739 DEVLINK_ATTR_SB_INGRESS_POOL_COUNT = 0xd
2740 DEVLINK_ATTR_SB_EGRESS_POOL_COUNT = 0xe
2741 DEVLINK_ATTR_SB_INGRESS_TC_COUNT = 0xf
2742 DEVLINK_ATTR_SB_EGRESS_TC_COUNT = 0x10
2743 DEVLINK_ATTR_SB_POOL_INDEX = 0x11
2744 DEVLINK_ATTR_SB_POOL_TYPE = 0x12
2745 DEVLINK_ATTR_SB_POOL_SIZE = 0x13
2746 DEVLINK_ATTR_SB_POOL_THRESHOLD_TYPE = 0x14
2747 DEVLINK_ATTR_SB_THRESHOLD = 0x15
2748 DEVLINK_ATTR_SB_TC_INDEX = 0x16
2749 DEVLINK_ATTR_SB_OCC_CUR = 0x17
2750 DEVLINK_ATTR_SB_OCC_MAX = 0x18
2751 DEVLINK_ATTR_ESWITCH_MODE = 0x19
2752 DEVLINK_ATTR_ESWITCH_INLINE_MODE = 0x1a
2753 DEVLINK_ATTR_DPIPE_TABLES = 0x1b
2754 DEVLINK_ATTR_DPIPE_TABLE = 0x1c
2755 DEVLINK_ATTR_DPIPE_TABLE_NAME = 0x1d
2756 DEVLINK_ATTR_DPIPE_TABLE_SIZE = 0x1e
2757 DEVLINK_ATTR_DPIPE_TABLE_MATCHES = 0x1f
2758 DEVLINK_ATTR_DPIPE_TABLE_ACTIONS = 0x20
2759 DEVLINK_ATTR_DPIPE_TABLE_COUNTERS_ENABLED = 0x21
2760 DEVLINK_ATTR_DPIPE_ENTRIES = 0x22
2761 DEVLINK_ATTR_DPIPE_ENTRY = 0x23
2762 DEVLINK_ATTR_DPIPE_ENTRY_INDEX = 0x24
2763 DEVLINK_ATTR_DPIPE_ENTRY_MATCH_VALUES = 0x25
2764 DEVLINK_ATTR_DPIPE_ENTRY_ACTION_VALUES = 0x26
2765 DEVLINK_ATTR_DPIPE_ENTRY_COUNTER = 0x27
2766 DEVLINK_ATTR_DPIPE_MATCH = 0x28
2767 DEVLINK_ATTR_DPIPE_MATCH_VALUE = 0x29
2768 DEVLINK_ATTR_DPIPE_MATCH_TYPE = 0x2a
2769 DEVLINK_ATTR_DPIPE_ACTION = 0x2b
2770 DEVLINK_ATTR_DPIPE_ACTION_VALUE = 0x2c
2771 DEVLINK_ATTR_DPIPE_ACTION_TYPE = 0x2d
2772 DEVLINK_ATTR_DPIPE_VALUE = 0x2e
2773 DEVLINK_ATTR_DPIPE_VALUE_MASK = 0x2f
2774 DEVLINK_ATTR_DPIPE_VALUE_MAPPING = 0x30
2775 DEVLINK_ATTR_DPIPE_HEADERS = 0x31
2776 DEVLINK_ATTR_DPIPE_HEADER = 0x32
2777 DEVLINK_ATTR_DPIPE_HEADER_NAME = 0x33
2778 DEVLINK_ATTR_DPIPE_HEADER_ID = 0x34
2779 DEVLINK_ATTR_DPIPE_HEADER_FIELDS = 0x35
2780 DEVLINK_ATTR_DPIPE_HEADER_GLOBAL = 0x36
2781 DEVLINK_ATTR_DPIPE_HEADER_INDEX = 0x37
2782 DEVLINK_ATTR_DPIPE_FIELD = 0x38
2783 DEVLINK_ATTR_DPIPE_FIELD_NAME = 0x39
2784 DEVLINK_ATTR_DPIPE_FIELD_ID = 0x3a
2785 DEVLINK_ATTR_DPIPE_FIELD_BITWIDTH = 0x3b
2786 DEVLINK_ATTR_DPIPE_FIELD_MAPPING_TYPE = 0x3c
2787 DEVLINK_ATTR_PAD = 0x3d
2788 DEVLINK_ATTR_ESWITCH_ENCAP_MODE = 0x3e
2789 DEVLINK_ATTR_MAX = 0x8c
2790 DEVLINK_DPIPE_FIELD_MAPPING_TYPE_NONE = 0x0
2791 DEVLINK_DPIPE_FIELD_MAPPING_TYPE_IFINDEX = 0x1
2792 DEVLINK_DPIPE_MATCH_TYPE_FIELD_EXACT = 0x0
2793 DEVLINK_DPIPE_ACTION_TYPE_FIELD_MODIFY = 0x0
2794 DEVLINK_DPIPE_FIELD_ETHERNET_DST_MAC = 0x0
2795 DEVLINK_DPIPE_FIELD_IPV4_DST_IP = 0x0
2796 DEVLINK_DPIPE_FIELD_IPV6_DST_IP = 0x0
2797 DEVLINK_DPIPE_HEADER_ETHERNET = 0x0
2798 DEVLINK_DPIPE_HEADER_IPV4 = 0x1
2799 DEVLINK_DPIPE_HEADER_IPV6 = 0x2
2800)
diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_arm64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_arm64.go
index 3104798..6065d2d 100644
--- a/vendor/golang.org/x/sys/unix/ztypes_linux_arm64.go
+++ b/vendor/golang.org/x/sys/unix/ztypes_linux_arm64.go
@@ -180,6 +180,55 @@ type FscryptKey struct {
180 Size uint32 180 Size uint32
181} 181}
182 182
183type FscryptPolicyV1 struct {
184 Version uint8
185 Contents_encryption_mode uint8
186 Filenames_encryption_mode uint8
187 Flags uint8
188 Master_key_descriptor [8]uint8
189}
190
191type FscryptPolicyV2 struct {
192 Version uint8
193 Contents_encryption_mode uint8
194 Filenames_encryption_mode uint8
195 Flags uint8
196 _ [4]uint8
197 Master_key_identifier [16]uint8
198}
199
200type FscryptGetPolicyExArg struct {
201 Size uint64
202 Policy [24]byte
203}
204
205type FscryptKeySpecifier struct {
206 Type uint32
207 _ uint32
208 U [32]byte
209}
210
211type FscryptAddKeyArg struct {
212 Key_spec FscryptKeySpecifier
213 Raw_size uint32
214 _ [9]uint32
215}
216
217type FscryptRemoveKeyArg struct {
218 Key_spec FscryptKeySpecifier
219 Removal_status_flags uint32
220 _ [5]uint32
221}
222
223type FscryptGetKeyStatusArg struct {
224 Key_spec FscryptKeySpecifier
225 _ [6]uint32
226 Status uint32
227 Status_flags uint32
228 User_count uint32
229 _ [13]uint32
230}
231
183type KeyctlDHParams struct { 232type KeyctlDHParams struct {
184 Private int32 233 Private int32
185 Prime int32 234 Prime int32
@@ -257,7 +306,7 @@ type RawSockaddrRFCOMM struct {
257type RawSockaddrCAN struct { 306type RawSockaddrCAN struct {
258 Family uint16 307 Family uint16
259 Ifindex int32 308 Ifindex int32
260 Addr [8]byte 309 Addr [16]byte
261} 310}
262 311
263type RawSockaddrALG struct { 312type RawSockaddrALG struct {
@@ -286,6 +335,13 @@ type RawSockaddrXDP struct {
286 335
287type RawSockaddrPPPoX [0x1e]byte 336type RawSockaddrPPPoX [0x1e]byte
288 337
338type RawSockaddrTIPC struct {
339 Family uint16
340 Addrtype uint8
341 Scope int8
342 Addr [12]byte
343}
344
289type RawSockaddr struct { 345type RawSockaddr struct {
290 Family uint16 346 Family uint16
291 Data [14]int8 347 Data [14]int8
@@ -422,11 +478,12 @@ const (
422 SizeofSockaddrHCI = 0x6 478 SizeofSockaddrHCI = 0x6
423 SizeofSockaddrL2 = 0xe 479 SizeofSockaddrL2 = 0xe
424 SizeofSockaddrRFCOMM = 0xa 480 SizeofSockaddrRFCOMM = 0xa
425 SizeofSockaddrCAN = 0x10 481 SizeofSockaddrCAN = 0x18
426 SizeofSockaddrALG = 0x58 482 SizeofSockaddrALG = 0x58
427 SizeofSockaddrVM = 0x10 483 SizeofSockaddrVM = 0x10
428 SizeofSockaddrXDP = 0x10 484 SizeofSockaddrXDP = 0x10
429 SizeofSockaddrPPPoX = 0x1e 485 SizeofSockaddrPPPoX = 0x1e
486 SizeofSockaddrTIPC = 0x10
430 SizeofLinger = 0x8 487 SizeofLinger = 0x8
431 SizeofIovec = 0x10 488 SizeofIovec = 0x10
432 SizeofIPMreq = 0x8 489 SizeofIPMreq = 0x8
@@ -537,7 +594,7 @@ const (
537 IFLA_NEW_IFINDEX = 0x31 594 IFLA_NEW_IFINDEX = 0x31
538 IFLA_MIN_MTU = 0x32 595 IFLA_MIN_MTU = 0x32
539 IFLA_MAX_MTU = 0x33 596 IFLA_MAX_MTU = 0x33
540 IFLA_MAX = 0x33 597 IFLA_MAX = 0x35
541 IFLA_INFO_KIND = 0x1 598 IFLA_INFO_KIND = 0x1
542 IFLA_INFO_DATA = 0x2 599 IFLA_INFO_DATA = 0x2
543 IFLA_INFO_XSTATS = 0x3 600 IFLA_INFO_XSTATS = 0x3
@@ -593,22 +650,6 @@ const (
593 RTN_THROW = 0x9 650 RTN_THROW = 0x9
594 RTN_NAT = 0xa 651 RTN_NAT = 0xa
595 RTN_XRESOLVE = 0xb 652 RTN_XRESOLVE = 0xb
596 RTNLGRP_NONE = 0x0
597 RTNLGRP_LINK = 0x1
598 RTNLGRP_NOTIFY = 0x2
599 RTNLGRP_NEIGH = 0x3
600 RTNLGRP_TC = 0x4
601 RTNLGRP_IPV4_IFADDR = 0x5
602 RTNLGRP_IPV4_MROUTE = 0x6
603 RTNLGRP_IPV4_ROUTE = 0x7
604 RTNLGRP_IPV4_RULE = 0x8
605 RTNLGRP_IPV6_IFADDR = 0x9
606 RTNLGRP_IPV6_MROUTE = 0xa
607 RTNLGRP_IPV6_ROUTE = 0xb
608 RTNLGRP_IPV6_IFINFO = 0xc
609 RTNLGRP_IPV6_PREFIX = 0x12
610 RTNLGRP_IPV6_RULE = 0x13
611 RTNLGRP_ND_USEROPT = 0x14
612 SizeofNlMsghdr = 0x10 653 SizeofNlMsghdr = 0x10
613 SizeofNlMsgerr = 0x14 654 SizeofNlMsgerr = 0x14
614 SizeofRtGenmsg = 0x1 655 SizeofRtGenmsg = 0x1
@@ -616,6 +657,7 @@ const (
616 SizeofRtAttr = 0x4 657 SizeofRtAttr = 0x4
617 SizeofIfInfomsg = 0x10 658 SizeofIfInfomsg = 0x10
618 SizeofIfAddrmsg = 0x8 659 SizeofIfAddrmsg = 0x8
660 SizeofIfaCacheinfo = 0x10
619 SizeofRtMsg = 0xc 661 SizeofRtMsg = 0xc
620 SizeofRtNexthop = 0x8 662 SizeofRtNexthop = 0x8
621 SizeofNdUseroptmsg = 0x10 663 SizeofNdUseroptmsg = 0x10
@@ -666,6 +708,13 @@ type IfAddrmsg struct {
666 Index uint32 708 Index uint32
667} 709}
668 710
711type IfaCacheinfo struct {
712 Prefered uint32
713 Valid uint32
714 Cstamp uint32
715 Tstamp uint32
716}
717
669type RtMsg struct { 718type RtMsg struct {
670 Family uint8 719 Family uint8
671 Dst_len uint8 720 Dst_len uint8
@@ -2033,6 +2082,7 @@ type XDPRingOffset struct {
2033 Producer uint64 2082 Producer uint64
2034 Consumer uint64 2083 Consumer uint64
2035 Desc uint64 2084 Desc uint64
2085 Flags uint64
2036} 2086}
2037 2087
2038type XDPMmapOffsets struct { 2088type XDPMmapOffsets struct {
@@ -2047,6 +2097,8 @@ type XDPUmemReg struct {
2047 Len uint64 2097 Len uint64
2048 Size uint32 2098 Size uint32
2049 Headroom uint32 2099 Headroom uint32
2100 Flags uint32
2101 _ [4]byte
2050} 2102}
2051 2103
2052type XDPStatistics struct { 2104type XDPStatistics struct {
@@ -2460,6 +2512,42 @@ const (
2460 BPF_FD_TYPE_URETPROBE = 0x5 2512 BPF_FD_TYPE_URETPROBE = 0x5
2461) 2513)
2462 2514
2515const (
2516 RTNLGRP_NONE = 0x0
2517 RTNLGRP_LINK = 0x1
2518 RTNLGRP_NOTIFY = 0x2
2519 RTNLGRP_NEIGH = 0x3
2520 RTNLGRP_TC = 0x4
2521 RTNLGRP_IPV4_IFADDR = 0x5
2522 RTNLGRP_IPV4_MROUTE = 0x6
2523 RTNLGRP_IPV4_ROUTE = 0x7
2524 RTNLGRP_IPV4_RULE = 0x8
2525 RTNLGRP_IPV6_IFADDR = 0x9
2526 RTNLGRP_IPV6_MROUTE = 0xa
2527 RTNLGRP_IPV6_ROUTE = 0xb
2528 RTNLGRP_IPV6_IFINFO = 0xc
2529 RTNLGRP_DECnet_IFADDR = 0xd
2530 RTNLGRP_NOP2 = 0xe
2531 RTNLGRP_DECnet_ROUTE = 0xf
2532 RTNLGRP_DECnet_RULE = 0x10
2533 RTNLGRP_NOP4 = 0x11
2534 RTNLGRP_IPV6_PREFIX = 0x12
2535 RTNLGRP_IPV6_RULE = 0x13
2536 RTNLGRP_ND_USEROPT = 0x14
2537 RTNLGRP_PHONET_IFADDR = 0x15
2538 RTNLGRP_PHONET_ROUTE = 0x16
2539 RTNLGRP_DCB = 0x17
2540 RTNLGRP_IPV4_NETCONF = 0x18
2541 RTNLGRP_IPV6_NETCONF = 0x19
2542 RTNLGRP_MDB = 0x1a
2543 RTNLGRP_MPLS_ROUTE = 0x1b
2544 RTNLGRP_NSID = 0x1c
2545 RTNLGRP_MPLS_NETCONF = 0x1d
2546 RTNLGRP_IPV4_MROUTE_R = 0x1e
2547 RTNLGRP_IPV6_MROUTE_R = 0x1f
2548 RTNLGRP_NEXTHOP = 0x20
2549)
2550
2463type CapUserHeader struct { 2551type CapUserHeader struct {
2464 Version uint32 2552 Version uint32
2465 Pid int32 2553 Pid int32
@@ -2514,3 +2602,201 @@ type LoopInfo64 struct {
2514 Encrypt_key [32]uint8 2602 Encrypt_key [32]uint8
2515 Init [2]uint64 2603 Init [2]uint64
2516} 2604}
2605
2606type TIPCSocketAddr struct {
2607 Ref uint32
2608 Node uint32
2609}
2610
2611type TIPCServiceRange struct {
2612 Type uint32
2613 Lower uint32
2614 Upper uint32
2615}
2616
2617type TIPCServiceName struct {
2618 Type uint32
2619 Instance uint32
2620 Domain uint32
2621}
2622
2623type TIPCSubscr struct {
2624 Seq TIPCServiceRange
2625 Timeout uint32
2626 Filter uint32
2627 Handle [8]int8
2628}
2629
2630type TIPCEvent struct {
2631 Event uint32
2632 Lower uint32
2633 Upper uint32
2634 Port TIPCSocketAddr
2635 S TIPCSubscr
2636}
2637
2638type TIPCGroupReq struct {
2639 Type uint32
2640 Instance uint32
2641 Scope uint32
2642 Flags uint32
2643}
2644
2645type TIPCSIOCLNReq struct {
2646 Peer uint32
2647 Id uint32
2648 Linkname [68]int8
2649}
2650
2651type TIPCSIOCNodeIDReq struct {
2652 Peer uint32
2653 Id [16]int8
2654}
2655
2656const (
2657 TIPC_CLUSTER_SCOPE = 0x2
2658 TIPC_NODE_SCOPE = 0x3
2659)
2660
2661const (
2662 SYSLOG_ACTION_CLOSE = 0
2663 SYSLOG_ACTION_OPEN = 1
2664 SYSLOG_ACTION_READ = 2
2665 SYSLOG_ACTION_READ_ALL = 3
2666 SYSLOG_ACTION_READ_CLEAR = 4
2667 SYSLOG_ACTION_CLEAR = 5
2668 SYSLOG_ACTION_CONSOLE_OFF = 6
2669 SYSLOG_ACTION_CONSOLE_ON = 7
2670 SYSLOG_ACTION_CONSOLE_LEVEL = 8
2671 SYSLOG_ACTION_SIZE_UNREAD = 9
2672 SYSLOG_ACTION_SIZE_BUFFER = 10
2673)
2674
2675const (
2676 DEVLINK_CMD_UNSPEC = 0x0
2677 DEVLINK_CMD_GET = 0x1
2678 DEVLINK_CMD_SET = 0x2
2679 DEVLINK_CMD_NEW = 0x3
2680 DEVLINK_CMD_DEL = 0x4
2681 DEVLINK_CMD_PORT_GET = 0x5
2682 DEVLINK_CMD_PORT_SET = 0x6
2683 DEVLINK_CMD_PORT_NEW = 0x7
2684 DEVLINK_CMD_PORT_DEL = 0x8
2685 DEVLINK_CMD_PORT_SPLIT = 0x9
2686 DEVLINK_CMD_PORT_UNSPLIT = 0xa
2687 DEVLINK_CMD_SB_GET = 0xb
2688 DEVLINK_CMD_SB_SET = 0xc
2689 DEVLINK_CMD_SB_NEW = 0xd
2690 DEVLINK_CMD_SB_DEL = 0xe
2691 DEVLINK_CMD_SB_POOL_GET = 0xf
2692 DEVLINK_CMD_SB_POOL_SET = 0x10
2693 DEVLINK_CMD_SB_POOL_NEW = 0x11
2694 DEVLINK_CMD_SB_POOL_DEL = 0x12
2695 DEVLINK_CMD_SB_PORT_POOL_GET = 0x13
2696 DEVLINK_CMD_SB_PORT_POOL_SET = 0x14
2697 DEVLINK_CMD_SB_PORT_POOL_NEW = 0x15
2698 DEVLINK_CMD_SB_PORT_POOL_DEL = 0x16
2699 DEVLINK_CMD_SB_TC_POOL_BIND_GET = 0x17
2700 DEVLINK_CMD_SB_TC_POOL_BIND_SET = 0x18
2701 DEVLINK_CMD_SB_TC_POOL_BIND_NEW = 0x19
2702 DEVLINK_CMD_SB_TC_POOL_BIND_DEL = 0x1a
2703 DEVLINK_CMD_SB_OCC_SNAPSHOT = 0x1b
2704 DEVLINK_CMD_SB_OCC_MAX_CLEAR = 0x1c
2705 DEVLINK_CMD_ESWITCH_GET = 0x1d
2706 DEVLINK_CMD_ESWITCH_SET = 0x1e
2707 DEVLINK_CMD_DPIPE_TABLE_GET = 0x1f
2708 DEVLINK_CMD_DPIPE_ENTRIES_GET = 0x20
2709 DEVLINK_CMD_DPIPE_HEADERS_GET = 0x21
2710 DEVLINK_CMD_DPIPE_TABLE_COUNTERS_SET = 0x22
2711 DEVLINK_CMD_MAX = 0x44
2712 DEVLINK_PORT_TYPE_NOTSET = 0x0
2713 DEVLINK_PORT_TYPE_AUTO = 0x1
2714 DEVLINK_PORT_TYPE_ETH = 0x2
2715 DEVLINK_PORT_TYPE_IB = 0x3
2716 DEVLINK_SB_POOL_TYPE_INGRESS = 0x0
2717 DEVLINK_SB_POOL_TYPE_EGRESS = 0x1
2718 DEVLINK_SB_THRESHOLD_TYPE_STATIC = 0x0
2719 DEVLINK_SB_THRESHOLD_TYPE_DYNAMIC = 0x1
2720 DEVLINK_ESWITCH_MODE_LEGACY = 0x0
2721 DEVLINK_ESWITCH_MODE_SWITCHDEV = 0x1
2722 DEVLINK_ESWITCH_INLINE_MODE_NONE = 0x0
2723 DEVLINK_ESWITCH_INLINE_MODE_LINK = 0x1
2724 DEVLINK_ESWITCH_INLINE_MODE_NETWORK = 0x2
2725 DEVLINK_ESWITCH_INLINE_MODE_TRANSPORT = 0x3
2726 DEVLINK_ESWITCH_ENCAP_MODE_NONE = 0x0
2727 DEVLINK_ESWITCH_ENCAP_MODE_BASIC = 0x1
2728 DEVLINK_ATTR_UNSPEC = 0x0
2729 DEVLINK_ATTR_BUS_NAME = 0x1
2730 DEVLINK_ATTR_DEV_NAME = 0x2
2731 DEVLINK_ATTR_PORT_INDEX = 0x3
2732 DEVLINK_ATTR_PORT_TYPE = 0x4
2733 DEVLINK_ATTR_PORT_DESIRED_TYPE = 0x5
2734 DEVLINK_ATTR_PORT_NETDEV_IFINDEX = 0x6
2735 DEVLINK_ATTR_PORT_NETDEV_NAME = 0x7
2736 DEVLINK_ATTR_PORT_IBDEV_NAME = 0x8
2737 DEVLINK_ATTR_PORT_SPLIT_COUNT = 0x9
2738 DEVLINK_ATTR_PORT_SPLIT_GROUP = 0xa
2739 DEVLINK_ATTR_SB_INDEX = 0xb
2740 DEVLINK_ATTR_SB_SIZE = 0xc
2741 DEVLINK_ATTR_SB_INGRESS_POOL_COUNT = 0xd
2742 DEVLINK_ATTR_SB_EGRESS_POOL_COUNT = 0xe
2743 DEVLINK_ATTR_SB_INGRESS_TC_COUNT = 0xf
2744 DEVLINK_ATTR_SB_EGRESS_TC_COUNT = 0x10
2745 DEVLINK_ATTR_SB_POOL_INDEX = 0x11
2746 DEVLINK_ATTR_SB_POOL_TYPE = 0x12
2747 DEVLINK_ATTR_SB_POOL_SIZE = 0x13
2748 DEVLINK_ATTR_SB_POOL_THRESHOLD_TYPE = 0x14
2749 DEVLINK_ATTR_SB_THRESHOLD = 0x15
2750 DEVLINK_ATTR_SB_TC_INDEX = 0x16
2751 DEVLINK_ATTR_SB_OCC_CUR = 0x17
2752 DEVLINK_ATTR_SB_OCC_MAX = 0x18
2753 DEVLINK_ATTR_ESWITCH_MODE = 0x19
2754 DEVLINK_ATTR_ESWITCH_INLINE_MODE = 0x1a
2755 DEVLINK_ATTR_DPIPE_TABLES = 0x1b
2756 DEVLINK_ATTR_DPIPE_TABLE = 0x1c
2757 DEVLINK_ATTR_DPIPE_TABLE_NAME = 0x1d
2758 DEVLINK_ATTR_DPIPE_TABLE_SIZE = 0x1e
2759 DEVLINK_ATTR_DPIPE_TABLE_MATCHES = 0x1f
2760 DEVLINK_ATTR_DPIPE_TABLE_ACTIONS = 0x20
2761 DEVLINK_ATTR_DPIPE_TABLE_COUNTERS_ENABLED = 0x21
2762 DEVLINK_ATTR_DPIPE_ENTRIES = 0x22
2763 DEVLINK_ATTR_DPIPE_ENTRY = 0x23
2764 DEVLINK_ATTR_DPIPE_ENTRY_INDEX = 0x24
2765 DEVLINK_ATTR_DPIPE_ENTRY_MATCH_VALUES = 0x25
2766 DEVLINK_ATTR_DPIPE_ENTRY_ACTION_VALUES = 0x26
2767 DEVLINK_ATTR_DPIPE_ENTRY_COUNTER = 0x27
2768 DEVLINK_ATTR_DPIPE_MATCH = 0x28
2769 DEVLINK_ATTR_DPIPE_MATCH_VALUE = 0x29
2770 DEVLINK_ATTR_DPIPE_MATCH_TYPE = 0x2a
2771 DEVLINK_ATTR_DPIPE_ACTION = 0x2b
2772 DEVLINK_ATTR_DPIPE_ACTION_VALUE = 0x2c
2773 DEVLINK_ATTR_DPIPE_ACTION_TYPE = 0x2d
2774 DEVLINK_ATTR_DPIPE_VALUE = 0x2e
2775 DEVLINK_ATTR_DPIPE_VALUE_MASK = 0x2f
2776 DEVLINK_ATTR_DPIPE_VALUE_MAPPING = 0x30
2777 DEVLINK_ATTR_DPIPE_HEADERS = 0x31
2778 DEVLINK_ATTR_DPIPE_HEADER = 0x32
2779 DEVLINK_ATTR_DPIPE_HEADER_NAME = 0x33
2780 DEVLINK_ATTR_DPIPE_HEADER_ID = 0x34
2781 DEVLINK_ATTR_DPIPE_HEADER_FIELDS = 0x35
2782 DEVLINK_ATTR_DPIPE_HEADER_GLOBAL = 0x36
2783 DEVLINK_ATTR_DPIPE_HEADER_INDEX = 0x37
2784 DEVLINK_ATTR_DPIPE_FIELD = 0x38
2785 DEVLINK_ATTR_DPIPE_FIELD_NAME = 0x39
2786 DEVLINK_ATTR_DPIPE_FIELD_ID = 0x3a
2787 DEVLINK_ATTR_DPIPE_FIELD_BITWIDTH = 0x3b
2788 DEVLINK_ATTR_DPIPE_FIELD_MAPPING_TYPE = 0x3c
2789 DEVLINK_ATTR_PAD = 0x3d
2790 DEVLINK_ATTR_ESWITCH_ENCAP_MODE = 0x3e
2791 DEVLINK_ATTR_MAX = 0x8c
2792 DEVLINK_DPIPE_FIELD_MAPPING_TYPE_NONE = 0x0
2793 DEVLINK_DPIPE_FIELD_MAPPING_TYPE_IFINDEX = 0x1
2794 DEVLINK_DPIPE_MATCH_TYPE_FIELD_EXACT = 0x0
2795 DEVLINK_DPIPE_ACTION_TYPE_FIELD_MODIFY = 0x0
2796 DEVLINK_DPIPE_FIELD_ETHERNET_DST_MAC = 0x0
2797 DEVLINK_DPIPE_FIELD_IPV4_DST_IP = 0x0
2798 DEVLINK_DPIPE_FIELD_IPV6_DST_IP = 0x0
2799 DEVLINK_DPIPE_HEADER_ETHERNET = 0x0
2800 DEVLINK_DPIPE_HEADER_IPV4 = 0x1
2801 DEVLINK_DPIPE_HEADER_IPV6 = 0x2
2802)
diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_mips.go b/vendor/golang.org/x/sys/unix/ztypes_linux_mips.go
index 46c8602..29d4408 100644
--- a/vendor/golang.org/x/sys/unix/ztypes_linux_mips.go
+++ b/vendor/golang.org/x/sys/unix/ztypes_linux_mips.go
@@ -182,6 +182,55 @@ type FscryptKey struct {
182 Size uint32 182 Size uint32
183} 183}
184 184
185type FscryptPolicyV1 struct {
186 Version uint8
187 Contents_encryption_mode uint8
188 Filenames_encryption_mode uint8
189 Flags uint8
190 Master_key_descriptor [8]uint8
191}
192
193type FscryptPolicyV2 struct {
194 Version uint8
195 Contents_encryption_mode uint8
196 Filenames_encryption_mode uint8
197 Flags uint8
198 _ [4]uint8
199 Master_key_identifier [16]uint8
200}
201
202type FscryptGetPolicyExArg struct {
203 Size uint64
204 Policy [24]byte
205}
206
207type FscryptKeySpecifier struct {
208 Type uint32
209 _ uint32
210 U [32]byte
211}
212
213type FscryptAddKeyArg struct {
214 Key_spec FscryptKeySpecifier
215 Raw_size uint32
216 _ [9]uint32
217}
218
219type FscryptRemoveKeyArg struct {
220 Key_spec FscryptKeySpecifier
221 Removal_status_flags uint32
222 _ [5]uint32
223}
224
225type FscryptGetKeyStatusArg struct {
226 Key_spec FscryptKeySpecifier
227 _ [6]uint32
228 Status uint32
229 Status_flags uint32
230 User_count uint32
231 _ [13]uint32
232}
233
185type KeyctlDHParams struct { 234type KeyctlDHParams struct {
186 Private int32 235 Private int32
187 Prime int32 236 Prime int32
@@ -259,7 +308,7 @@ type RawSockaddrRFCOMM struct {
259type RawSockaddrCAN struct { 308type RawSockaddrCAN struct {
260 Family uint16 309 Family uint16
261 Ifindex int32 310 Ifindex int32
262 Addr [8]byte 311 Addr [16]byte
263} 312}
264 313
265type RawSockaddrALG struct { 314type RawSockaddrALG struct {
@@ -288,6 +337,13 @@ type RawSockaddrXDP struct {
288 337
289type RawSockaddrPPPoX [0x1e]byte 338type RawSockaddrPPPoX [0x1e]byte
290 339
340type RawSockaddrTIPC struct {
341 Family uint16
342 Addrtype uint8
343 Scope int8
344 Addr [12]byte
345}
346
291type RawSockaddr struct { 347type RawSockaddr struct {
292 Family uint16 348 Family uint16
293 Data [14]int8 349 Data [14]int8
@@ -423,11 +479,12 @@ const (
423 SizeofSockaddrHCI = 0x6 479 SizeofSockaddrHCI = 0x6
424 SizeofSockaddrL2 = 0xe 480 SizeofSockaddrL2 = 0xe
425 SizeofSockaddrRFCOMM = 0xa 481 SizeofSockaddrRFCOMM = 0xa
426 SizeofSockaddrCAN = 0x10 482 SizeofSockaddrCAN = 0x18
427 SizeofSockaddrALG = 0x58 483 SizeofSockaddrALG = 0x58
428 SizeofSockaddrVM = 0x10 484 SizeofSockaddrVM = 0x10
429 SizeofSockaddrXDP = 0x10 485 SizeofSockaddrXDP = 0x10
430 SizeofSockaddrPPPoX = 0x1e 486 SizeofSockaddrPPPoX = 0x1e
487 SizeofSockaddrTIPC = 0x10
431 SizeofLinger = 0x8 488 SizeofLinger = 0x8
432 SizeofIovec = 0x8 489 SizeofIovec = 0x8
433 SizeofIPMreq = 0x8 490 SizeofIPMreq = 0x8
@@ -538,7 +595,7 @@ const (
538 IFLA_NEW_IFINDEX = 0x31 595 IFLA_NEW_IFINDEX = 0x31
539 IFLA_MIN_MTU = 0x32 596 IFLA_MIN_MTU = 0x32
540 IFLA_MAX_MTU = 0x33 597 IFLA_MAX_MTU = 0x33
541 IFLA_MAX = 0x33 598 IFLA_MAX = 0x35
542 IFLA_INFO_KIND = 0x1 599 IFLA_INFO_KIND = 0x1
543 IFLA_INFO_DATA = 0x2 600 IFLA_INFO_DATA = 0x2
544 IFLA_INFO_XSTATS = 0x3 601 IFLA_INFO_XSTATS = 0x3
@@ -594,22 +651,6 @@ const (
594 RTN_THROW = 0x9 651 RTN_THROW = 0x9
595 RTN_NAT = 0xa 652 RTN_NAT = 0xa
596 RTN_XRESOLVE = 0xb 653 RTN_XRESOLVE = 0xb
597 RTNLGRP_NONE = 0x0
598 RTNLGRP_LINK = 0x1
599 RTNLGRP_NOTIFY = 0x2
600 RTNLGRP_NEIGH = 0x3
601 RTNLGRP_TC = 0x4
602 RTNLGRP_IPV4_IFADDR = 0x5
603 RTNLGRP_IPV4_MROUTE = 0x6
604 RTNLGRP_IPV4_ROUTE = 0x7
605 RTNLGRP_IPV4_RULE = 0x8
606 RTNLGRP_IPV6_IFADDR = 0x9
607 RTNLGRP_IPV6_MROUTE = 0xa
608 RTNLGRP_IPV6_ROUTE = 0xb
609 RTNLGRP_IPV6_IFINFO = 0xc
610 RTNLGRP_IPV6_PREFIX = 0x12
611 RTNLGRP_IPV6_RULE = 0x13
612 RTNLGRP_ND_USEROPT = 0x14
613 SizeofNlMsghdr = 0x10 654 SizeofNlMsghdr = 0x10
614 SizeofNlMsgerr = 0x14 655 SizeofNlMsgerr = 0x14
615 SizeofRtGenmsg = 0x1 656 SizeofRtGenmsg = 0x1
@@ -617,6 +658,7 @@ const (
617 SizeofRtAttr = 0x4 658 SizeofRtAttr = 0x4
618 SizeofIfInfomsg = 0x10 659 SizeofIfInfomsg = 0x10
619 SizeofIfAddrmsg = 0x8 660 SizeofIfAddrmsg = 0x8
661 SizeofIfaCacheinfo = 0x10
620 SizeofRtMsg = 0xc 662 SizeofRtMsg = 0xc
621 SizeofRtNexthop = 0x8 663 SizeofRtNexthop = 0x8
622 SizeofNdUseroptmsg = 0x10 664 SizeofNdUseroptmsg = 0x10
@@ -667,6 +709,13 @@ type IfAddrmsg struct {
667 Index uint32 709 Index uint32
668} 710}
669 711
712type IfaCacheinfo struct {
713 Prefered uint32
714 Valid uint32
715 Cstamp uint32
716 Tstamp uint32
717}
718
670type RtMsg struct { 719type RtMsg struct {
671 Family uint8 720 Family uint8
672 Dst_len uint8 721 Dst_len uint8
@@ -2038,6 +2087,7 @@ type XDPRingOffset struct {
2038 Producer uint64 2087 Producer uint64
2039 Consumer uint64 2088 Consumer uint64
2040 Desc uint64 2089 Desc uint64
2090 Flags uint64
2041} 2091}
2042 2092
2043type XDPMmapOffsets struct { 2093type XDPMmapOffsets struct {
@@ -2052,6 +2102,8 @@ type XDPUmemReg struct {
2052 Len uint64 2102 Len uint64
2053 Size uint32 2103 Size uint32
2054 Headroom uint32 2104 Headroom uint32
2105 Flags uint32
2106 _ [4]byte
2055} 2107}
2056 2108
2057type XDPStatistics struct { 2109type XDPStatistics struct {
@@ -2465,6 +2517,42 @@ const (
2465 BPF_FD_TYPE_URETPROBE = 0x5 2517 BPF_FD_TYPE_URETPROBE = 0x5
2466) 2518)
2467 2519
2520const (
2521 RTNLGRP_NONE = 0x0
2522 RTNLGRP_LINK = 0x1
2523 RTNLGRP_NOTIFY = 0x2
2524 RTNLGRP_NEIGH = 0x3
2525 RTNLGRP_TC = 0x4
2526 RTNLGRP_IPV4_IFADDR = 0x5
2527 RTNLGRP_IPV4_MROUTE = 0x6
2528 RTNLGRP_IPV4_ROUTE = 0x7
2529 RTNLGRP_IPV4_RULE = 0x8
2530 RTNLGRP_IPV6_IFADDR = 0x9
2531 RTNLGRP_IPV6_MROUTE = 0xa
2532 RTNLGRP_IPV6_ROUTE = 0xb
2533 RTNLGRP_IPV6_IFINFO = 0xc
2534 RTNLGRP_DECnet_IFADDR = 0xd
2535 RTNLGRP_NOP2 = 0xe
2536 RTNLGRP_DECnet_ROUTE = 0xf
2537 RTNLGRP_DECnet_RULE = 0x10
2538 RTNLGRP_NOP4 = 0x11
2539 RTNLGRP_IPV6_PREFIX = 0x12
2540 RTNLGRP_IPV6_RULE = 0x13
2541 RTNLGRP_ND_USEROPT = 0x14
2542 RTNLGRP_PHONET_IFADDR = 0x15
2543 RTNLGRP_PHONET_ROUTE = 0x16
2544 RTNLGRP_DCB = 0x17
2545 RTNLGRP_IPV4_NETCONF = 0x18
2546 RTNLGRP_IPV6_NETCONF = 0x19
2547 RTNLGRP_MDB = 0x1a
2548 RTNLGRP_MPLS_ROUTE = 0x1b
2549 RTNLGRP_NSID = 0x1c
2550 RTNLGRP_MPLS_NETCONF = 0x1d
2551 RTNLGRP_IPV4_MROUTE_R = 0x1e
2552 RTNLGRP_IPV6_MROUTE_R = 0x1f
2553 RTNLGRP_NEXTHOP = 0x20
2554)
2555
2468type CapUserHeader struct { 2556type CapUserHeader struct {
2469 Version uint32 2557 Version uint32
2470 Pid int32 2558 Pid int32
@@ -2518,3 +2606,201 @@ type LoopInfo64 struct {
2518 Encrypt_key [32]uint8 2606 Encrypt_key [32]uint8
2519 Init [2]uint64 2607 Init [2]uint64
2520} 2608}
2609
2610type TIPCSocketAddr struct {
2611 Ref uint32
2612 Node uint32
2613}
2614
2615type TIPCServiceRange struct {
2616 Type uint32
2617 Lower uint32
2618 Upper uint32
2619}
2620
2621type TIPCServiceName struct {
2622 Type uint32
2623 Instance uint32
2624 Domain uint32
2625}
2626
2627type TIPCSubscr struct {
2628 Seq TIPCServiceRange
2629 Timeout uint32
2630 Filter uint32
2631 Handle [8]int8
2632}
2633
2634type TIPCEvent struct {
2635 Event uint32
2636 Lower uint32
2637 Upper uint32
2638 Port TIPCSocketAddr
2639 S TIPCSubscr
2640}
2641
2642type TIPCGroupReq struct {
2643 Type uint32
2644 Instance uint32
2645 Scope uint32
2646 Flags uint32
2647}
2648
2649type TIPCSIOCLNReq struct {
2650 Peer uint32
2651 Id uint32
2652 Linkname [68]int8
2653}
2654
2655type TIPCSIOCNodeIDReq struct {
2656 Peer uint32
2657 Id [16]int8
2658}
2659
2660const (
2661 TIPC_CLUSTER_SCOPE = 0x2
2662 TIPC_NODE_SCOPE = 0x3
2663)
2664
2665const (
2666 SYSLOG_ACTION_CLOSE = 0
2667 SYSLOG_ACTION_OPEN = 1
2668 SYSLOG_ACTION_READ = 2
2669 SYSLOG_ACTION_READ_ALL = 3
2670 SYSLOG_ACTION_READ_CLEAR = 4
2671 SYSLOG_ACTION_CLEAR = 5
2672 SYSLOG_ACTION_CONSOLE_OFF = 6
2673 SYSLOG_ACTION_CONSOLE_ON = 7
2674 SYSLOG_ACTION_CONSOLE_LEVEL = 8
2675 SYSLOG_ACTION_SIZE_UNREAD = 9
2676 SYSLOG_ACTION_SIZE_BUFFER = 10
2677)
2678
2679const (
2680 DEVLINK_CMD_UNSPEC = 0x0
2681 DEVLINK_CMD_GET = 0x1
2682 DEVLINK_CMD_SET = 0x2
2683 DEVLINK_CMD_NEW = 0x3
2684 DEVLINK_CMD_DEL = 0x4
2685 DEVLINK_CMD_PORT_GET = 0x5
2686 DEVLINK_CMD_PORT_SET = 0x6
2687 DEVLINK_CMD_PORT_NEW = 0x7
2688 DEVLINK_CMD_PORT_DEL = 0x8
2689 DEVLINK_CMD_PORT_SPLIT = 0x9
2690 DEVLINK_CMD_PORT_UNSPLIT = 0xa
2691 DEVLINK_CMD_SB_GET = 0xb
2692 DEVLINK_CMD_SB_SET = 0xc
2693 DEVLINK_CMD_SB_NEW = 0xd
2694 DEVLINK_CMD_SB_DEL = 0xe
2695 DEVLINK_CMD_SB_POOL_GET = 0xf
2696 DEVLINK_CMD_SB_POOL_SET = 0x10
2697 DEVLINK_CMD_SB_POOL_NEW = 0x11
2698 DEVLINK_CMD_SB_POOL_DEL = 0x12
2699 DEVLINK_CMD_SB_PORT_POOL_GET = 0x13
2700 DEVLINK_CMD_SB_PORT_POOL_SET = 0x14
2701 DEVLINK_CMD_SB_PORT_POOL_NEW = 0x15
2702 DEVLINK_CMD_SB_PORT_POOL_DEL = 0x16
2703 DEVLINK_CMD_SB_TC_POOL_BIND_GET = 0x17
2704 DEVLINK_CMD_SB_TC_POOL_BIND_SET = 0x18
2705 DEVLINK_CMD_SB_TC_POOL_BIND_NEW = 0x19
2706 DEVLINK_CMD_SB_TC_POOL_BIND_DEL = 0x1a
2707 DEVLINK_CMD_SB_OCC_SNAPSHOT = 0x1b
2708 DEVLINK_CMD_SB_OCC_MAX_CLEAR = 0x1c
2709 DEVLINK_CMD_ESWITCH_GET = 0x1d
2710 DEVLINK_CMD_ESWITCH_SET = 0x1e
2711 DEVLINK_CMD_DPIPE_TABLE_GET = 0x1f
2712 DEVLINK_CMD_DPIPE_ENTRIES_GET = 0x20
2713 DEVLINK_CMD_DPIPE_HEADERS_GET = 0x21
2714 DEVLINK_CMD_DPIPE_TABLE_COUNTERS_SET = 0x22
2715 DEVLINK_CMD_MAX = 0x44
2716 DEVLINK_PORT_TYPE_NOTSET = 0x0
2717 DEVLINK_PORT_TYPE_AUTO = 0x1
2718 DEVLINK_PORT_TYPE_ETH = 0x2
2719 DEVLINK_PORT_TYPE_IB = 0x3
2720 DEVLINK_SB_POOL_TYPE_INGRESS = 0x0
2721 DEVLINK_SB_POOL_TYPE_EGRESS = 0x1
2722 DEVLINK_SB_THRESHOLD_TYPE_STATIC = 0x0
2723 DEVLINK_SB_THRESHOLD_TYPE_DYNAMIC = 0x1
2724 DEVLINK_ESWITCH_MODE_LEGACY = 0x0
2725 DEVLINK_ESWITCH_MODE_SWITCHDEV = 0x1
2726 DEVLINK_ESWITCH_INLINE_MODE_NONE = 0x0
2727 DEVLINK_ESWITCH_INLINE_MODE_LINK = 0x1
2728 DEVLINK_ESWITCH_INLINE_MODE_NETWORK = 0x2
2729 DEVLINK_ESWITCH_INLINE_MODE_TRANSPORT = 0x3
2730 DEVLINK_ESWITCH_ENCAP_MODE_NONE = 0x0
2731 DEVLINK_ESWITCH_ENCAP_MODE_BASIC = 0x1
2732 DEVLINK_ATTR_UNSPEC = 0x0
2733 DEVLINK_ATTR_BUS_NAME = 0x1
2734 DEVLINK_ATTR_DEV_NAME = 0x2
2735 DEVLINK_ATTR_PORT_INDEX = 0x3
2736 DEVLINK_ATTR_PORT_TYPE = 0x4
2737 DEVLINK_ATTR_PORT_DESIRED_TYPE = 0x5
2738 DEVLINK_ATTR_PORT_NETDEV_IFINDEX = 0x6
2739 DEVLINK_ATTR_PORT_NETDEV_NAME = 0x7
2740 DEVLINK_ATTR_PORT_IBDEV_NAME = 0x8
2741 DEVLINK_ATTR_PORT_SPLIT_COUNT = 0x9
2742 DEVLINK_ATTR_PORT_SPLIT_GROUP = 0xa
2743 DEVLINK_ATTR_SB_INDEX = 0xb
2744 DEVLINK_ATTR_SB_SIZE = 0xc
2745 DEVLINK_ATTR_SB_INGRESS_POOL_COUNT = 0xd
2746 DEVLINK_ATTR_SB_EGRESS_POOL_COUNT = 0xe
2747 DEVLINK_ATTR_SB_INGRESS_TC_COUNT = 0xf
2748 DEVLINK_ATTR_SB_EGRESS_TC_COUNT = 0x10
2749 DEVLINK_ATTR_SB_POOL_INDEX = 0x11
2750 DEVLINK_ATTR_SB_POOL_TYPE = 0x12
2751 DEVLINK_ATTR_SB_POOL_SIZE = 0x13
2752 DEVLINK_ATTR_SB_POOL_THRESHOLD_TYPE = 0x14
2753 DEVLINK_ATTR_SB_THRESHOLD = 0x15
2754 DEVLINK_ATTR_SB_TC_INDEX = 0x16
2755 DEVLINK_ATTR_SB_OCC_CUR = 0x17
2756 DEVLINK_ATTR_SB_OCC_MAX = 0x18
2757 DEVLINK_ATTR_ESWITCH_MODE = 0x19
2758 DEVLINK_ATTR_ESWITCH_INLINE_MODE = 0x1a
2759 DEVLINK_ATTR_DPIPE_TABLES = 0x1b
2760 DEVLINK_ATTR_DPIPE_TABLE = 0x1c
2761 DEVLINK_ATTR_DPIPE_TABLE_NAME = 0x1d
2762 DEVLINK_ATTR_DPIPE_TABLE_SIZE = 0x1e
2763 DEVLINK_ATTR_DPIPE_TABLE_MATCHES = 0x1f
2764 DEVLINK_ATTR_DPIPE_TABLE_ACTIONS = 0x20
2765 DEVLINK_ATTR_DPIPE_TABLE_COUNTERS_ENABLED = 0x21
2766 DEVLINK_ATTR_DPIPE_ENTRIES = 0x22
2767 DEVLINK_ATTR_DPIPE_ENTRY = 0x23
2768 DEVLINK_ATTR_DPIPE_ENTRY_INDEX = 0x24
2769 DEVLINK_ATTR_DPIPE_ENTRY_MATCH_VALUES = 0x25
2770 DEVLINK_ATTR_DPIPE_ENTRY_ACTION_VALUES = 0x26
2771 DEVLINK_ATTR_DPIPE_ENTRY_COUNTER = 0x27
2772 DEVLINK_ATTR_DPIPE_MATCH = 0x28
2773 DEVLINK_ATTR_DPIPE_MATCH_VALUE = 0x29
2774 DEVLINK_ATTR_DPIPE_MATCH_TYPE = 0x2a
2775 DEVLINK_ATTR_DPIPE_ACTION = 0x2b
2776 DEVLINK_ATTR_DPIPE_ACTION_VALUE = 0x2c
2777 DEVLINK_ATTR_DPIPE_ACTION_TYPE = 0x2d
2778 DEVLINK_ATTR_DPIPE_VALUE = 0x2e
2779 DEVLINK_ATTR_DPIPE_VALUE_MASK = 0x2f
2780 DEVLINK_ATTR_DPIPE_VALUE_MAPPING = 0x30
2781 DEVLINK_ATTR_DPIPE_HEADERS = 0x31
2782 DEVLINK_ATTR_DPIPE_HEADER = 0x32
2783 DEVLINK_ATTR_DPIPE_HEADER_NAME = 0x33
2784 DEVLINK_ATTR_DPIPE_HEADER_ID = 0x34
2785 DEVLINK_ATTR_DPIPE_HEADER_FIELDS = 0x35
2786 DEVLINK_ATTR_DPIPE_HEADER_GLOBAL = 0x36
2787 DEVLINK_ATTR_DPIPE_HEADER_INDEX = 0x37
2788 DEVLINK_ATTR_DPIPE_FIELD = 0x38
2789 DEVLINK_ATTR_DPIPE_FIELD_NAME = 0x39
2790 DEVLINK_ATTR_DPIPE_FIELD_ID = 0x3a
2791 DEVLINK_ATTR_DPIPE_FIELD_BITWIDTH = 0x3b
2792 DEVLINK_ATTR_DPIPE_FIELD_MAPPING_TYPE = 0x3c
2793 DEVLINK_ATTR_PAD = 0x3d
2794 DEVLINK_ATTR_ESWITCH_ENCAP_MODE = 0x3e
2795 DEVLINK_ATTR_MAX = 0x8c
2796 DEVLINK_DPIPE_FIELD_MAPPING_TYPE_NONE = 0x0
2797 DEVLINK_DPIPE_FIELD_MAPPING_TYPE_IFINDEX = 0x1
2798 DEVLINK_DPIPE_MATCH_TYPE_FIELD_EXACT = 0x0
2799 DEVLINK_DPIPE_ACTION_TYPE_FIELD_MODIFY = 0x0
2800 DEVLINK_DPIPE_FIELD_ETHERNET_DST_MAC = 0x0
2801 DEVLINK_DPIPE_FIELD_IPV4_DST_IP = 0x0
2802 DEVLINK_DPIPE_FIELD_IPV6_DST_IP = 0x0
2803 DEVLINK_DPIPE_HEADER_ETHERNET = 0x0
2804 DEVLINK_DPIPE_HEADER_IPV4 = 0x1
2805 DEVLINK_DPIPE_HEADER_IPV6 = 0x2
2806)
diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_mips64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_mips64.go
index c2fe1a6..9cac9ff 100644
--- a/vendor/golang.org/x/sys/unix/ztypes_linux_mips64.go
+++ b/vendor/golang.org/x/sys/unix/ztypes_linux_mips64.go
@@ -180,6 +180,55 @@ type FscryptKey struct {
180 Size uint32 180 Size uint32
181} 181}
182 182
183type FscryptPolicyV1 struct {
184 Version uint8
185 Contents_encryption_mode uint8
186 Filenames_encryption_mode uint8
187 Flags uint8
188 Master_key_descriptor [8]uint8
189}
190
191type FscryptPolicyV2 struct {
192 Version uint8
193 Contents_encryption_mode uint8
194 Filenames_encryption_mode uint8
195 Flags uint8
196 _ [4]uint8
197 Master_key_identifier [16]uint8
198}
199
200type FscryptGetPolicyExArg struct {
201 Size uint64
202 Policy [24]byte
203}
204
205type FscryptKeySpecifier struct {
206 Type uint32
207 _ uint32
208 U [32]byte
209}
210
211type FscryptAddKeyArg struct {
212 Key_spec FscryptKeySpecifier
213 Raw_size uint32
214 _ [9]uint32
215}
216
217type FscryptRemoveKeyArg struct {
218 Key_spec FscryptKeySpecifier
219 Removal_status_flags uint32
220 _ [5]uint32
221}
222
223type FscryptGetKeyStatusArg struct {
224 Key_spec FscryptKeySpecifier
225 _ [6]uint32
226 Status uint32
227 Status_flags uint32
228 User_count uint32
229 _ [13]uint32
230}
231
183type KeyctlDHParams struct { 232type KeyctlDHParams struct {
184 Private int32 233 Private int32
185 Prime int32 234 Prime int32
@@ -257,7 +306,7 @@ type RawSockaddrRFCOMM struct {
257type RawSockaddrCAN struct { 306type RawSockaddrCAN struct {
258 Family uint16 307 Family uint16
259 Ifindex int32 308 Ifindex int32
260 Addr [8]byte 309 Addr [16]byte
261} 310}
262 311
263type RawSockaddrALG struct { 312type RawSockaddrALG struct {
@@ -286,6 +335,13 @@ type RawSockaddrXDP struct {
286 335
287type RawSockaddrPPPoX [0x1e]byte 336type RawSockaddrPPPoX [0x1e]byte
288 337
338type RawSockaddrTIPC struct {
339 Family uint16
340 Addrtype uint8
341 Scope int8
342 Addr [12]byte
343}
344
289type RawSockaddr struct { 345type RawSockaddr struct {
290 Family uint16 346 Family uint16
291 Data [14]int8 347 Data [14]int8
@@ -422,11 +478,12 @@ const (
422 SizeofSockaddrHCI = 0x6 478 SizeofSockaddrHCI = 0x6
423 SizeofSockaddrL2 = 0xe 479 SizeofSockaddrL2 = 0xe
424 SizeofSockaddrRFCOMM = 0xa 480 SizeofSockaddrRFCOMM = 0xa
425 SizeofSockaddrCAN = 0x10 481 SizeofSockaddrCAN = 0x18
426 SizeofSockaddrALG = 0x58 482 SizeofSockaddrALG = 0x58
427 SizeofSockaddrVM = 0x10 483 SizeofSockaddrVM = 0x10
428 SizeofSockaddrXDP = 0x10 484 SizeofSockaddrXDP = 0x10
429 SizeofSockaddrPPPoX = 0x1e 485 SizeofSockaddrPPPoX = 0x1e
486 SizeofSockaddrTIPC = 0x10
430 SizeofLinger = 0x8 487 SizeofLinger = 0x8
431 SizeofIovec = 0x10 488 SizeofIovec = 0x10
432 SizeofIPMreq = 0x8 489 SizeofIPMreq = 0x8
@@ -537,7 +594,7 @@ const (
537 IFLA_NEW_IFINDEX = 0x31 594 IFLA_NEW_IFINDEX = 0x31
538 IFLA_MIN_MTU = 0x32 595 IFLA_MIN_MTU = 0x32
539 IFLA_MAX_MTU = 0x33 596 IFLA_MAX_MTU = 0x33
540 IFLA_MAX = 0x33 597 IFLA_MAX = 0x35
541 IFLA_INFO_KIND = 0x1 598 IFLA_INFO_KIND = 0x1
542 IFLA_INFO_DATA = 0x2 599 IFLA_INFO_DATA = 0x2
543 IFLA_INFO_XSTATS = 0x3 600 IFLA_INFO_XSTATS = 0x3
@@ -593,22 +650,6 @@ const (
593 RTN_THROW = 0x9 650 RTN_THROW = 0x9
594 RTN_NAT = 0xa 651 RTN_NAT = 0xa
595 RTN_XRESOLVE = 0xb 652 RTN_XRESOLVE = 0xb
596 RTNLGRP_NONE = 0x0
597 RTNLGRP_LINK = 0x1
598 RTNLGRP_NOTIFY = 0x2
599 RTNLGRP_NEIGH = 0x3
600 RTNLGRP_TC = 0x4
601 RTNLGRP_IPV4_IFADDR = 0x5
602 RTNLGRP_IPV4_MROUTE = 0x6
603 RTNLGRP_IPV4_ROUTE = 0x7
604 RTNLGRP_IPV4_RULE = 0x8
605 RTNLGRP_IPV6_IFADDR = 0x9
606 RTNLGRP_IPV6_MROUTE = 0xa
607 RTNLGRP_IPV6_ROUTE = 0xb
608 RTNLGRP_IPV6_IFINFO = 0xc
609 RTNLGRP_IPV6_PREFIX = 0x12
610 RTNLGRP_IPV6_RULE = 0x13
611 RTNLGRP_ND_USEROPT = 0x14
612 SizeofNlMsghdr = 0x10 653 SizeofNlMsghdr = 0x10
613 SizeofNlMsgerr = 0x14 654 SizeofNlMsgerr = 0x14
614 SizeofRtGenmsg = 0x1 655 SizeofRtGenmsg = 0x1
@@ -616,6 +657,7 @@ const (
616 SizeofRtAttr = 0x4 657 SizeofRtAttr = 0x4
617 SizeofIfInfomsg = 0x10 658 SizeofIfInfomsg = 0x10
618 SizeofIfAddrmsg = 0x8 659 SizeofIfAddrmsg = 0x8
660 SizeofIfaCacheinfo = 0x10
619 SizeofRtMsg = 0xc 661 SizeofRtMsg = 0xc
620 SizeofRtNexthop = 0x8 662 SizeofRtNexthop = 0x8
621 SizeofNdUseroptmsg = 0x10 663 SizeofNdUseroptmsg = 0x10
@@ -666,6 +708,13 @@ type IfAddrmsg struct {
666 Index uint32 708 Index uint32
667} 709}
668 710
711type IfaCacheinfo struct {
712 Prefered uint32
713 Valid uint32
714 Cstamp uint32
715 Tstamp uint32
716}
717
669type RtMsg struct { 718type RtMsg struct {
670 Family uint8 719 Family uint8
671 Dst_len uint8 720 Dst_len uint8
@@ -783,6 +832,7 @@ type Ustat_t struct {
783 832
784type EpollEvent struct { 833type EpollEvent struct {
785 Events uint32 834 Events uint32
835 _ int32
786 Fd int32 836 Fd int32
787 Pad int32 837 Pad int32
788} 838}
@@ -2035,6 +2085,7 @@ type XDPRingOffset struct {
2035 Producer uint64 2085 Producer uint64
2036 Consumer uint64 2086 Consumer uint64
2037 Desc uint64 2087 Desc uint64
2088 Flags uint64
2038} 2089}
2039 2090
2040type XDPMmapOffsets struct { 2091type XDPMmapOffsets struct {
@@ -2049,6 +2100,8 @@ type XDPUmemReg struct {
2049 Len uint64 2100 Len uint64
2050 Size uint32 2101 Size uint32
2051 Headroom uint32 2102 Headroom uint32
2103 Flags uint32
2104 _ [4]byte
2052} 2105}
2053 2106
2054type XDPStatistics struct { 2107type XDPStatistics struct {
@@ -2462,6 +2515,42 @@ const (
2462 BPF_FD_TYPE_URETPROBE = 0x5 2515 BPF_FD_TYPE_URETPROBE = 0x5
2463) 2516)
2464 2517
2518const (
2519 RTNLGRP_NONE = 0x0
2520 RTNLGRP_LINK = 0x1
2521 RTNLGRP_NOTIFY = 0x2
2522 RTNLGRP_NEIGH = 0x3
2523 RTNLGRP_TC = 0x4
2524 RTNLGRP_IPV4_IFADDR = 0x5
2525 RTNLGRP_IPV4_MROUTE = 0x6
2526 RTNLGRP_IPV4_ROUTE = 0x7
2527 RTNLGRP_IPV4_RULE = 0x8
2528 RTNLGRP_IPV6_IFADDR = 0x9
2529 RTNLGRP_IPV6_MROUTE = 0xa
2530 RTNLGRP_IPV6_ROUTE = 0xb
2531 RTNLGRP_IPV6_IFINFO = 0xc
2532 RTNLGRP_DECnet_IFADDR = 0xd
2533 RTNLGRP_NOP2 = 0xe
2534 RTNLGRP_DECnet_ROUTE = 0xf
2535 RTNLGRP_DECnet_RULE = 0x10
2536 RTNLGRP_NOP4 = 0x11
2537 RTNLGRP_IPV6_PREFIX = 0x12
2538 RTNLGRP_IPV6_RULE = 0x13
2539 RTNLGRP_ND_USEROPT = 0x14
2540 RTNLGRP_PHONET_IFADDR = 0x15
2541 RTNLGRP_PHONET_ROUTE = 0x16
2542 RTNLGRP_DCB = 0x17
2543 RTNLGRP_IPV4_NETCONF = 0x18
2544 RTNLGRP_IPV6_NETCONF = 0x19
2545 RTNLGRP_MDB = 0x1a
2546 RTNLGRP_MPLS_ROUTE = 0x1b
2547 RTNLGRP_NSID = 0x1c
2548 RTNLGRP_MPLS_NETCONF = 0x1d
2549 RTNLGRP_IPV4_MROUTE_R = 0x1e
2550 RTNLGRP_IPV6_MROUTE_R = 0x1f
2551 RTNLGRP_NEXTHOP = 0x20
2552)
2553
2465type CapUserHeader struct { 2554type CapUserHeader struct {
2466 Version uint32 2555 Version uint32
2467 Pid int32 2556 Pid int32
@@ -2516,3 +2605,201 @@ type LoopInfo64 struct {
2516 Encrypt_key [32]uint8 2605 Encrypt_key [32]uint8
2517 Init [2]uint64 2606 Init [2]uint64
2518} 2607}
2608
2609type TIPCSocketAddr struct {
2610 Ref uint32
2611 Node uint32
2612}
2613
2614type TIPCServiceRange struct {
2615 Type uint32
2616 Lower uint32
2617 Upper uint32
2618}
2619
2620type TIPCServiceName struct {
2621 Type uint32
2622 Instance uint32
2623 Domain uint32
2624}
2625
2626type TIPCSubscr struct {
2627 Seq TIPCServiceRange
2628 Timeout uint32
2629 Filter uint32
2630 Handle [8]int8
2631}
2632
2633type TIPCEvent struct {
2634 Event uint32
2635 Lower uint32
2636 Upper uint32
2637 Port TIPCSocketAddr
2638 S TIPCSubscr
2639}
2640
2641type TIPCGroupReq struct {
2642 Type uint32
2643 Instance uint32
2644 Scope uint32
2645 Flags uint32
2646}
2647
2648type TIPCSIOCLNReq struct {
2649 Peer uint32
2650 Id uint32
2651 Linkname [68]int8
2652}
2653
2654type TIPCSIOCNodeIDReq struct {
2655 Peer uint32
2656 Id [16]int8
2657}
2658
2659const (
2660 TIPC_CLUSTER_SCOPE = 0x2
2661 TIPC_NODE_SCOPE = 0x3
2662)
2663
2664const (
2665 SYSLOG_ACTION_CLOSE = 0
2666 SYSLOG_ACTION_OPEN = 1
2667 SYSLOG_ACTION_READ = 2
2668 SYSLOG_ACTION_READ_ALL = 3
2669 SYSLOG_ACTION_READ_CLEAR = 4
2670 SYSLOG_ACTION_CLEAR = 5
2671 SYSLOG_ACTION_CONSOLE_OFF = 6
2672 SYSLOG_ACTION_CONSOLE_ON = 7
2673 SYSLOG_ACTION_CONSOLE_LEVEL = 8
2674 SYSLOG_ACTION_SIZE_UNREAD = 9
2675 SYSLOG_ACTION_SIZE_BUFFER = 10
2676)
2677
2678const (
2679 DEVLINK_CMD_UNSPEC = 0x0
2680 DEVLINK_CMD_GET = 0x1
2681 DEVLINK_CMD_SET = 0x2
2682 DEVLINK_CMD_NEW = 0x3
2683 DEVLINK_CMD_DEL = 0x4
2684 DEVLINK_CMD_PORT_GET = 0x5
2685 DEVLINK_CMD_PORT_SET = 0x6
2686 DEVLINK_CMD_PORT_NEW = 0x7
2687 DEVLINK_CMD_PORT_DEL = 0x8
2688 DEVLINK_CMD_PORT_SPLIT = 0x9
2689 DEVLINK_CMD_PORT_UNSPLIT = 0xa
2690 DEVLINK_CMD_SB_GET = 0xb
2691 DEVLINK_CMD_SB_SET = 0xc
2692 DEVLINK_CMD_SB_NEW = 0xd
2693 DEVLINK_CMD_SB_DEL = 0xe
2694 DEVLINK_CMD_SB_POOL_GET = 0xf
2695 DEVLINK_CMD_SB_POOL_SET = 0x10
2696 DEVLINK_CMD_SB_POOL_NEW = 0x11
2697 DEVLINK_CMD_SB_POOL_DEL = 0x12
2698 DEVLINK_CMD_SB_PORT_POOL_GET = 0x13
2699 DEVLINK_CMD_SB_PORT_POOL_SET = 0x14
2700 DEVLINK_CMD_SB_PORT_POOL_NEW = 0x15
2701 DEVLINK_CMD_SB_PORT_POOL_DEL = 0x16
2702 DEVLINK_CMD_SB_TC_POOL_BIND_GET = 0x17
2703 DEVLINK_CMD_SB_TC_POOL_BIND_SET = 0x18
2704 DEVLINK_CMD_SB_TC_POOL_BIND_NEW = 0x19
2705 DEVLINK_CMD_SB_TC_POOL_BIND_DEL = 0x1a
2706 DEVLINK_CMD_SB_OCC_SNAPSHOT = 0x1b
2707 DEVLINK_CMD_SB_OCC_MAX_CLEAR = 0x1c
2708 DEVLINK_CMD_ESWITCH_GET = 0x1d
2709 DEVLINK_CMD_ESWITCH_SET = 0x1e
2710 DEVLINK_CMD_DPIPE_TABLE_GET = 0x1f
2711 DEVLINK_CMD_DPIPE_ENTRIES_GET = 0x20
2712 DEVLINK_CMD_DPIPE_HEADERS_GET = 0x21
2713 DEVLINK_CMD_DPIPE_TABLE_COUNTERS_SET = 0x22
2714 DEVLINK_CMD_MAX = 0x44
2715 DEVLINK_PORT_TYPE_NOTSET = 0x0
2716 DEVLINK_PORT_TYPE_AUTO = 0x1
2717 DEVLINK_PORT_TYPE_ETH = 0x2
2718 DEVLINK_PORT_TYPE_IB = 0x3
2719 DEVLINK_SB_POOL_TYPE_INGRESS = 0x0
2720 DEVLINK_SB_POOL_TYPE_EGRESS = 0x1
2721 DEVLINK_SB_THRESHOLD_TYPE_STATIC = 0x0
2722 DEVLINK_SB_THRESHOLD_TYPE_DYNAMIC = 0x1
2723 DEVLINK_ESWITCH_MODE_LEGACY = 0x0
2724 DEVLINK_ESWITCH_MODE_SWITCHDEV = 0x1
2725 DEVLINK_ESWITCH_INLINE_MODE_NONE = 0x0
2726 DEVLINK_ESWITCH_INLINE_MODE_LINK = 0x1
2727 DEVLINK_ESWITCH_INLINE_MODE_NETWORK = 0x2
2728 DEVLINK_ESWITCH_INLINE_MODE_TRANSPORT = 0x3
2729 DEVLINK_ESWITCH_ENCAP_MODE_NONE = 0x0
2730 DEVLINK_ESWITCH_ENCAP_MODE_BASIC = 0x1
2731 DEVLINK_ATTR_UNSPEC = 0x0
2732 DEVLINK_ATTR_BUS_NAME = 0x1
2733 DEVLINK_ATTR_DEV_NAME = 0x2
2734 DEVLINK_ATTR_PORT_INDEX = 0x3
2735 DEVLINK_ATTR_PORT_TYPE = 0x4
2736 DEVLINK_ATTR_PORT_DESIRED_TYPE = 0x5
2737 DEVLINK_ATTR_PORT_NETDEV_IFINDEX = 0x6
2738 DEVLINK_ATTR_PORT_NETDEV_NAME = 0x7
2739 DEVLINK_ATTR_PORT_IBDEV_NAME = 0x8
2740 DEVLINK_ATTR_PORT_SPLIT_COUNT = 0x9
2741 DEVLINK_ATTR_PORT_SPLIT_GROUP = 0xa
2742 DEVLINK_ATTR_SB_INDEX = 0xb
2743 DEVLINK_ATTR_SB_SIZE = 0xc
2744 DEVLINK_ATTR_SB_INGRESS_POOL_COUNT = 0xd
2745 DEVLINK_ATTR_SB_EGRESS_POOL_COUNT = 0xe
2746 DEVLINK_ATTR_SB_INGRESS_TC_COUNT = 0xf
2747 DEVLINK_ATTR_SB_EGRESS_TC_COUNT = 0x10
2748 DEVLINK_ATTR_SB_POOL_INDEX = 0x11
2749 DEVLINK_ATTR_SB_POOL_TYPE = 0x12
2750 DEVLINK_ATTR_SB_POOL_SIZE = 0x13
2751 DEVLINK_ATTR_SB_POOL_THRESHOLD_TYPE = 0x14
2752 DEVLINK_ATTR_SB_THRESHOLD = 0x15
2753 DEVLINK_ATTR_SB_TC_INDEX = 0x16
2754 DEVLINK_ATTR_SB_OCC_CUR = 0x17
2755 DEVLINK_ATTR_SB_OCC_MAX = 0x18
2756 DEVLINK_ATTR_ESWITCH_MODE = 0x19
2757 DEVLINK_ATTR_ESWITCH_INLINE_MODE = 0x1a
2758 DEVLINK_ATTR_DPIPE_TABLES = 0x1b
2759 DEVLINK_ATTR_DPIPE_TABLE = 0x1c
2760 DEVLINK_ATTR_DPIPE_TABLE_NAME = 0x1d
2761 DEVLINK_ATTR_DPIPE_TABLE_SIZE = 0x1e
2762 DEVLINK_ATTR_DPIPE_TABLE_MATCHES = 0x1f
2763 DEVLINK_ATTR_DPIPE_TABLE_ACTIONS = 0x20
2764 DEVLINK_ATTR_DPIPE_TABLE_COUNTERS_ENABLED = 0x21
2765 DEVLINK_ATTR_DPIPE_ENTRIES = 0x22
2766 DEVLINK_ATTR_DPIPE_ENTRY = 0x23
2767 DEVLINK_ATTR_DPIPE_ENTRY_INDEX = 0x24
2768 DEVLINK_ATTR_DPIPE_ENTRY_MATCH_VALUES = 0x25
2769 DEVLINK_ATTR_DPIPE_ENTRY_ACTION_VALUES = 0x26
2770 DEVLINK_ATTR_DPIPE_ENTRY_COUNTER = 0x27
2771 DEVLINK_ATTR_DPIPE_MATCH = 0x28
2772 DEVLINK_ATTR_DPIPE_MATCH_VALUE = 0x29
2773 DEVLINK_ATTR_DPIPE_MATCH_TYPE = 0x2a
2774 DEVLINK_ATTR_DPIPE_ACTION = 0x2b
2775 DEVLINK_ATTR_DPIPE_ACTION_VALUE = 0x2c
2776 DEVLINK_ATTR_DPIPE_ACTION_TYPE = 0x2d
2777 DEVLINK_ATTR_DPIPE_VALUE = 0x2e
2778 DEVLINK_ATTR_DPIPE_VALUE_MASK = 0x2f
2779 DEVLINK_ATTR_DPIPE_VALUE_MAPPING = 0x30
2780 DEVLINK_ATTR_DPIPE_HEADERS = 0x31
2781 DEVLINK_ATTR_DPIPE_HEADER = 0x32
2782 DEVLINK_ATTR_DPIPE_HEADER_NAME = 0x33
2783 DEVLINK_ATTR_DPIPE_HEADER_ID = 0x34
2784 DEVLINK_ATTR_DPIPE_HEADER_FIELDS = 0x35
2785 DEVLINK_ATTR_DPIPE_HEADER_GLOBAL = 0x36
2786 DEVLINK_ATTR_DPIPE_HEADER_INDEX = 0x37
2787 DEVLINK_ATTR_DPIPE_FIELD = 0x38
2788 DEVLINK_ATTR_DPIPE_FIELD_NAME = 0x39
2789 DEVLINK_ATTR_DPIPE_FIELD_ID = 0x3a
2790 DEVLINK_ATTR_DPIPE_FIELD_BITWIDTH = 0x3b
2791 DEVLINK_ATTR_DPIPE_FIELD_MAPPING_TYPE = 0x3c
2792 DEVLINK_ATTR_PAD = 0x3d
2793 DEVLINK_ATTR_ESWITCH_ENCAP_MODE = 0x3e
2794 DEVLINK_ATTR_MAX = 0x8c
2795 DEVLINK_DPIPE_FIELD_MAPPING_TYPE_NONE = 0x0
2796 DEVLINK_DPIPE_FIELD_MAPPING_TYPE_IFINDEX = 0x1
2797 DEVLINK_DPIPE_MATCH_TYPE_FIELD_EXACT = 0x0
2798 DEVLINK_DPIPE_ACTION_TYPE_FIELD_MODIFY = 0x0
2799 DEVLINK_DPIPE_FIELD_ETHERNET_DST_MAC = 0x0
2800 DEVLINK_DPIPE_FIELD_IPV4_DST_IP = 0x0
2801 DEVLINK_DPIPE_FIELD_IPV6_DST_IP = 0x0
2802 DEVLINK_DPIPE_HEADER_ETHERNET = 0x0
2803 DEVLINK_DPIPE_HEADER_IPV4 = 0x1
2804 DEVLINK_DPIPE_HEADER_IPV6 = 0x2
2805)
diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go b/vendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go
index f1eb0d3..dbc21cf 100644
--- a/vendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go
+++ b/vendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go
@@ -180,6 +180,55 @@ type FscryptKey struct {
180 Size uint32 180 Size uint32
181} 181}
182 182
183type FscryptPolicyV1 struct {
184 Version uint8
185 Contents_encryption_mode uint8
186 Filenames_encryption_mode uint8
187 Flags uint8
188 Master_key_descriptor [8]uint8
189}
190
191type FscryptPolicyV2 struct {
192 Version uint8
193 Contents_encryption_mode uint8
194 Filenames_encryption_mode uint8
195 Flags uint8
196 _ [4]uint8
197 Master_key_identifier [16]uint8
198}
199
200type FscryptGetPolicyExArg struct {
201 Size uint64
202 Policy [24]byte
203}
204
205type FscryptKeySpecifier struct {
206 Type uint32
207 _ uint32
208 U [32]byte
209}
210
211type FscryptAddKeyArg struct {
212 Key_spec FscryptKeySpecifier
213 Raw_size uint32
214 _ [9]uint32
215}
216
217type FscryptRemoveKeyArg struct {
218 Key_spec FscryptKeySpecifier
219 Removal_status_flags uint32
220 _ [5]uint32
221}
222
223type FscryptGetKeyStatusArg struct {
224 Key_spec FscryptKeySpecifier
225 _ [6]uint32
226 Status uint32
227 Status_flags uint32
228 User_count uint32
229 _ [13]uint32
230}
231
183type KeyctlDHParams struct { 232type KeyctlDHParams struct {
184 Private int32 233 Private int32
185 Prime int32 234 Prime int32
@@ -257,7 +306,7 @@ type RawSockaddrRFCOMM struct {
257type RawSockaddrCAN struct { 306type RawSockaddrCAN struct {
258 Family uint16 307 Family uint16
259 Ifindex int32 308 Ifindex int32
260 Addr [8]byte 309 Addr [16]byte
261} 310}
262 311
263type RawSockaddrALG struct { 312type RawSockaddrALG struct {
@@ -286,6 +335,13 @@ type RawSockaddrXDP struct {
286 335
287type RawSockaddrPPPoX [0x1e]byte 336type RawSockaddrPPPoX [0x1e]byte
288 337
338type RawSockaddrTIPC struct {
339 Family uint16
340 Addrtype uint8
341 Scope int8
342 Addr [12]byte
343}
344
289type RawSockaddr struct { 345type RawSockaddr struct {
290 Family uint16 346 Family uint16
291 Data [14]int8 347 Data [14]int8
@@ -422,11 +478,12 @@ const (
422 SizeofSockaddrHCI = 0x6 478 SizeofSockaddrHCI = 0x6
423 SizeofSockaddrL2 = 0xe 479 SizeofSockaddrL2 = 0xe
424 SizeofSockaddrRFCOMM = 0xa 480 SizeofSockaddrRFCOMM = 0xa
425 SizeofSockaddrCAN = 0x10 481 SizeofSockaddrCAN = 0x18
426 SizeofSockaddrALG = 0x58 482 SizeofSockaddrALG = 0x58
427 SizeofSockaddrVM = 0x10 483 SizeofSockaddrVM = 0x10
428 SizeofSockaddrXDP = 0x10 484 SizeofSockaddrXDP = 0x10
429 SizeofSockaddrPPPoX = 0x1e 485 SizeofSockaddrPPPoX = 0x1e
486 SizeofSockaddrTIPC = 0x10
430 SizeofLinger = 0x8 487 SizeofLinger = 0x8
431 SizeofIovec = 0x10 488 SizeofIovec = 0x10
432 SizeofIPMreq = 0x8 489 SizeofIPMreq = 0x8
@@ -537,7 +594,7 @@ const (
537 IFLA_NEW_IFINDEX = 0x31 594 IFLA_NEW_IFINDEX = 0x31
538 IFLA_MIN_MTU = 0x32 595 IFLA_MIN_MTU = 0x32
539 IFLA_MAX_MTU = 0x33 596 IFLA_MAX_MTU = 0x33
540 IFLA_MAX = 0x33 597 IFLA_MAX = 0x35
541 IFLA_INFO_KIND = 0x1 598 IFLA_INFO_KIND = 0x1
542 IFLA_INFO_DATA = 0x2 599 IFLA_INFO_DATA = 0x2
543 IFLA_INFO_XSTATS = 0x3 600 IFLA_INFO_XSTATS = 0x3
@@ -593,22 +650,6 @@ const (
593 RTN_THROW = 0x9 650 RTN_THROW = 0x9
594 RTN_NAT = 0xa 651 RTN_NAT = 0xa
595 RTN_XRESOLVE = 0xb 652 RTN_XRESOLVE = 0xb
596 RTNLGRP_NONE = 0x0
597 RTNLGRP_LINK = 0x1
598 RTNLGRP_NOTIFY = 0x2
599 RTNLGRP_NEIGH = 0x3
600 RTNLGRP_TC = 0x4
601 RTNLGRP_IPV4_IFADDR = 0x5
602 RTNLGRP_IPV4_MROUTE = 0x6
603 RTNLGRP_IPV4_ROUTE = 0x7
604 RTNLGRP_IPV4_RULE = 0x8
605 RTNLGRP_IPV6_IFADDR = 0x9
606 RTNLGRP_IPV6_MROUTE = 0xa
607 RTNLGRP_IPV6_ROUTE = 0xb
608 RTNLGRP_IPV6_IFINFO = 0xc
609 RTNLGRP_IPV6_PREFIX = 0x12
610 RTNLGRP_IPV6_RULE = 0x13
611 RTNLGRP_ND_USEROPT = 0x14
612 SizeofNlMsghdr = 0x10 653 SizeofNlMsghdr = 0x10
613 SizeofNlMsgerr = 0x14 654 SizeofNlMsgerr = 0x14
614 SizeofRtGenmsg = 0x1 655 SizeofRtGenmsg = 0x1
@@ -616,6 +657,7 @@ const (
616 SizeofRtAttr = 0x4 657 SizeofRtAttr = 0x4
617 SizeofIfInfomsg = 0x10 658 SizeofIfInfomsg = 0x10
618 SizeofIfAddrmsg = 0x8 659 SizeofIfAddrmsg = 0x8
660 SizeofIfaCacheinfo = 0x10
619 SizeofRtMsg = 0xc 661 SizeofRtMsg = 0xc
620 SizeofRtNexthop = 0x8 662 SizeofRtNexthop = 0x8
621 SizeofNdUseroptmsg = 0x10 663 SizeofNdUseroptmsg = 0x10
@@ -666,6 +708,13 @@ type IfAddrmsg struct {
666 Index uint32 708 Index uint32
667} 709}
668 710
711type IfaCacheinfo struct {
712 Prefered uint32
713 Valid uint32
714 Cstamp uint32
715 Tstamp uint32
716}
717
669type RtMsg struct { 718type RtMsg struct {
670 Family uint8 719 Family uint8
671 Dst_len uint8 720 Dst_len uint8
@@ -783,6 +832,7 @@ type Ustat_t struct {
783 832
784type EpollEvent struct { 833type EpollEvent struct {
785 Events uint32 834 Events uint32
835 _ int32
786 Fd int32 836 Fd int32
787 Pad int32 837 Pad int32
788} 838}
@@ -2035,6 +2085,7 @@ type XDPRingOffset struct {
2035 Producer uint64 2085 Producer uint64
2036 Consumer uint64 2086 Consumer uint64
2037 Desc uint64 2087 Desc uint64
2088 Flags uint64
2038} 2089}
2039 2090
2040type XDPMmapOffsets struct { 2091type XDPMmapOffsets struct {
@@ -2049,6 +2100,8 @@ type XDPUmemReg struct {
2049 Len uint64 2100 Len uint64
2050 Size uint32 2101 Size uint32
2051 Headroom uint32 2102 Headroom uint32
2103 Flags uint32
2104 _ [4]byte
2052} 2105}
2053 2106
2054type XDPStatistics struct { 2107type XDPStatistics struct {
@@ -2462,6 +2515,42 @@ const (
2462 BPF_FD_TYPE_URETPROBE = 0x5 2515 BPF_FD_TYPE_URETPROBE = 0x5
2463) 2516)
2464 2517
2518const (
2519 RTNLGRP_NONE = 0x0
2520 RTNLGRP_LINK = 0x1
2521 RTNLGRP_NOTIFY = 0x2
2522 RTNLGRP_NEIGH = 0x3
2523 RTNLGRP_TC = 0x4
2524 RTNLGRP_IPV4_IFADDR = 0x5
2525 RTNLGRP_IPV4_MROUTE = 0x6
2526 RTNLGRP_IPV4_ROUTE = 0x7
2527 RTNLGRP_IPV4_RULE = 0x8
2528 RTNLGRP_IPV6_IFADDR = 0x9
2529 RTNLGRP_IPV6_MROUTE = 0xa
2530 RTNLGRP_IPV6_ROUTE = 0xb
2531 RTNLGRP_IPV6_IFINFO = 0xc
2532 RTNLGRP_DECnet_IFADDR = 0xd
2533 RTNLGRP_NOP2 = 0xe
2534 RTNLGRP_DECnet_ROUTE = 0xf
2535 RTNLGRP_DECnet_RULE = 0x10
2536 RTNLGRP_NOP4 = 0x11
2537 RTNLGRP_IPV6_PREFIX = 0x12
2538 RTNLGRP_IPV6_RULE = 0x13
2539 RTNLGRP_ND_USEROPT = 0x14
2540 RTNLGRP_PHONET_IFADDR = 0x15
2541 RTNLGRP_PHONET_ROUTE = 0x16
2542 RTNLGRP_DCB = 0x17
2543 RTNLGRP_IPV4_NETCONF = 0x18
2544 RTNLGRP_IPV6_NETCONF = 0x19
2545 RTNLGRP_MDB = 0x1a
2546 RTNLGRP_MPLS_ROUTE = 0x1b
2547 RTNLGRP_NSID = 0x1c
2548 RTNLGRP_MPLS_NETCONF = 0x1d
2549 RTNLGRP_IPV4_MROUTE_R = 0x1e
2550 RTNLGRP_IPV6_MROUTE_R = 0x1f
2551 RTNLGRP_NEXTHOP = 0x20
2552)
2553
2465type CapUserHeader struct { 2554type CapUserHeader struct {
2466 Version uint32 2555 Version uint32
2467 Pid int32 2556 Pid int32
@@ -2516,3 +2605,201 @@ type LoopInfo64 struct {
2516 Encrypt_key [32]uint8 2605 Encrypt_key [32]uint8
2517 Init [2]uint64 2606 Init [2]uint64
2518} 2607}
2608
2609type TIPCSocketAddr struct {
2610 Ref uint32
2611 Node uint32
2612}
2613
2614type TIPCServiceRange struct {
2615 Type uint32
2616 Lower uint32
2617 Upper uint32
2618}
2619
2620type TIPCServiceName struct {
2621 Type uint32
2622 Instance uint32
2623 Domain uint32
2624}
2625
2626type TIPCSubscr struct {
2627 Seq TIPCServiceRange
2628 Timeout uint32
2629 Filter uint32
2630 Handle [8]int8
2631}
2632
2633type TIPCEvent struct {
2634 Event uint32
2635 Lower uint32
2636 Upper uint32
2637 Port TIPCSocketAddr
2638 S TIPCSubscr
2639}
2640
2641type TIPCGroupReq struct {
2642 Type uint32
2643 Instance uint32
2644 Scope uint32
2645 Flags uint32
2646}
2647
2648type TIPCSIOCLNReq struct {
2649 Peer uint32
2650 Id uint32
2651 Linkname [68]int8
2652}
2653
2654type TIPCSIOCNodeIDReq struct {
2655 Peer uint32
2656 Id [16]int8
2657}
2658
2659const (
2660 TIPC_CLUSTER_SCOPE = 0x2
2661 TIPC_NODE_SCOPE = 0x3
2662)
2663
2664const (
2665 SYSLOG_ACTION_CLOSE = 0
2666 SYSLOG_ACTION_OPEN = 1
2667 SYSLOG_ACTION_READ = 2
2668 SYSLOG_ACTION_READ_ALL = 3
2669 SYSLOG_ACTION_READ_CLEAR = 4
2670 SYSLOG_ACTION_CLEAR = 5
2671 SYSLOG_ACTION_CONSOLE_OFF = 6
2672 SYSLOG_ACTION_CONSOLE_ON = 7
2673 SYSLOG_ACTION_CONSOLE_LEVEL = 8
2674 SYSLOG_ACTION_SIZE_UNREAD = 9
2675 SYSLOG_ACTION_SIZE_BUFFER = 10
2676)
2677
2678const (
2679 DEVLINK_CMD_UNSPEC = 0x0
2680 DEVLINK_CMD_GET = 0x1
2681 DEVLINK_CMD_SET = 0x2
2682 DEVLINK_CMD_NEW = 0x3
2683 DEVLINK_CMD_DEL = 0x4
2684 DEVLINK_CMD_PORT_GET = 0x5
2685 DEVLINK_CMD_PORT_SET = 0x6
2686 DEVLINK_CMD_PORT_NEW = 0x7
2687 DEVLINK_CMD_PORT_DEL = 0x8
2688 DEVLINK_CMD_PORT_SPLIT = 0x9
2689 DEVLINK_CMD_PORT_UNSPLIT = 0xa
2690 DEVLINK_CMD_SB_GET = 0xb
2691 DEVLINK_CMD_SB_SET = 0xc
2692 DEVLINK_CMD_SB_NEW = 0xd
2693 DEVLINK_CMD_SB_DEL = 0xe
2694 DEVLINK_CMD_SB_POOL_GET = 0xf
2695 DEVLINK_CMD_SB_POOL_SET = 0x10
2696 DEVLINK_CMD_SB_POOL_NEW = 0x11
2697 DEVLINK_CMD_SB_POOL_DEL = 0x12
2698 DEVLINK_CMD_SB_PORT_POOL_GET = 0x13
2699 DEVLINK_CMD_SB_PORT_POOL_SET = 0x14
2700 DEVLINK_CMD_SB_PORT_POOL_NEW = 0x15
2701 DEVLINK_CMD_SB_PORT_POOL_DEL = 0x16
2702 DEVLINK_CMD_SB_TC_POOL_BIND_GET = 0x17
2703 DEVLINK_CMD_SB_TC_POOL_BIND_SET = 0x18
2704 DEVLINK_CMD_SB_TC_POOL_BIND_NEW = 0x19
2705 DEVLINK_CMD_SB_TC_POOL_BIND_DEL = 0x1a
2706 DEVLINK_CMD_SB_OCC_SNAPSHOT = 0x1b
2707 DEVLINK_CMD_SB_OCC_MAX_CLEAR = 0x1c
2708 DEVLINK_CMD_ESWITCH_GET = 0x1d
2709 DEVLINK_CMD_ESWITCH_SET = 0x1e
2710 DEVLINK_CMD_DPIPE_TABLE_GET = 0x1f
2711 DEVLINK_CMD_DPIPE_ENTRIES_GET = 0x20
2712 DEVLINK_CMD_DPIPE_HEADERS_GET = 0x21
2713 DEVLINK_CMD_DPIPE_TABLE_COUNTERS_SET = 0x22
2714 DEVLINK_CMD_MAX = 0x44
2715 DEVLINK_PORT_TYPE_NOTSET = 0x0
2716 DEVLINK_PORT_TYPE_AUTO = 0x1
2717 DEVLINK_PORT_TYPE_ETH = 0x2
2718 DEVLINK_PORT_TYPE_IB = 0x3
2719 DEVLINK_SB_POOL_TYPE_INGRESS = 0x0
2720 DEVLINK_SB_POOL_TYPE_EGRESS = 0x1
2721 DEVLINK_SB_THRESHOLD_TYPE_STATIC = 0x0
2722 DEVLINK_SB_THRESHOLD_TYPE_DYNAMIC = 0x1
2723 DEVLINK_ESWITCH_MODE_LEGACY = 0x0
2724 DEVLINK_ESWITCH_MODE_SWITCHDEV = 0x1
2725 DEVLINK_ESWITCH_INLINE_MODE_NONE = 0x0
2726 DEVLINK_ESWITCH_INLINE_MODE_LINK = 0x1
2727 DEVLINK_ESWITCH_INLINE_MODE_NETWORK = 0x2
2728 DEVLINK_ESWITCH_INLINE_MODE_TRANSPORT = 0x3
2729 DEVLINK_ESWITCH_ENCAP_MODE_NONE = 0x0
2730 DEVLINK_ESWITCH_ENCAP_MODE_BASIC = 0x1
2731 DEVLINK_ATTR_UNSPEC = 0x0
2732 DEVLINK_ATTR_BUS_NAME = 0x1
2733 DEVLINK_ATTR_DEV_NAME = 0x2
2734 DEVLINK_ATTR_PORT_INDEX = 0x3
2735 DEVLINK_ATTR_PORT_TYPE = 0x4
2736 DEVLINK_ATTR_PORT_DESIRED_TYPE = 0x5
2737 DEVLINK_ATTR_PORT_NETDEV_IFINDEX = 0x6
2738 DEVLINK_ATTR_PORT_NETDEV_NAME = 0x7
2739 DEVLINK_ATTR_PORT_IBDEV_NAME = 0x8
2740 DEVLINK_ATTR_PORT_SPLIT_COUNT = 0x9
2741 DEVLINK_ATTR_PORT_SPLIT_GROUP = 0xa
2742 DEVLINK_ATTR_SB_INDEX = 0xb
2743 DEVLINK_ATTR_SB_SIZE = 0xc
2744 DEVLINK_ATTR_SB_INGRESS_POOL_COUNT = 0xd
2745 DEVLINK_ATTR_SB_EGRESS_POOL_COUNT = 0xe
2746 DEVLINK_ATTR_SB_INGRESS_TC_COUNT = 0xf
2747 DEVLINK_ATTR_SB_EGRESS_TC_COUNT = 0x10
2748 DEVLINK_ATTR_SB_POOL_INDEX = 0x11
2749 DEVLINK_ATTR_SB_POOL_TYPE = 0x12
2750 DEVLINK_ATTR_SB_POOL_SIZE = 0x13
2751 DEVLINK_ATTR_SB_POOL_THRESHOLD_TYPE = 0x14
2752 DEVLINK_ATTR_SB_THRESHOLD = 0x15
2753 DEVLINK_ATTR_SB_TC_INDEX = 0x16
2754 DEVLINK_ATTR_SB_OCC_CUR = 0x17
2755 DEVLINK_ATTR_SB_OCC_MAX = 0x18
2756 DEVLINK_ATTR_ESWITCH_MODE = 0x19
2757 DEVLINK_ATTR_ESWITCH_INLINE_MODE = 0x1a
2758 DEVLINK_ATTR_DPIPE_TABLES = 0x1b
2759 DEVLINK_ATTR_DPIPE_TABLE = 0x1c
2760 DEVLINK_ATTR_DPIPE_TABLE_NAME = 0x1d
2761 DEVLINK_ATTR_DPIPE_TABLE_SIZE = 0x1e
2762 DEVLINK_ATTR_DPIPE_TABLE_MATCHES = 0x1f
2763 DEVLINK_ATTR_DPIPE_TABLE_ACTIONS = 0x20
2764 DEVLINK_ATTR_DPIPE_TABLE_COUNTERS_ENABLED = 0x21
2765 DEVLINK_ATTR_DPIPE_ENTRIES = 0x22
2766 DEVLINK_ATTR_DPIPE_ENTRY = 0x23
2767 DEVLINK_ATTR_DPIPE_ENTRY_INDEX = 0x24
2768 DEVLINK_ATTR_DPIPE_ENTRY_MATCH_VALUES = 0x25
2769 DEVLINK_ATTR_DPIPE_ENTRY_ACTION_VALUES = 0x26
2770 DEVLINK_ATTR_DPIPE_ENTRY_COUNTER = 0x27
2771 DEVLINK_ATTR_DPIPE_MATCH = 0x28
2772 DEVLINK_ATTR_DPIPE_MATCH_VALUE = 0x29
2773 DEVLINK_ATTR_DPIPE_MATCH_TYPE = 0x2a
2774 DEVLINK_ATTR_DPIPE_ACTION = 0x2b
2775 DEVLINK_ATTR_DPIPE_ACTION_VALUE = 0x2c
2776 DEVLINK_ATTR_DPIPE_ACTION_TYPE = 0x2d
2777 DEVLINK_ATTR_DPIPE_VALUE = 0x2e
2778 DEVLINK_ATTR_DPIPE_VALUE_MASK = 0x2f
2779 DEVLINK_ATTR_DPIPE_VALUE_MAPPING = 0x30
2780 DEVLINK_ATTR_DPIPE_HEADERS = 0x31
2781 DEVLINK_ATTR_DPIPE_HEADER = 0x32
2782 DEVLINK_ATTR_DPIPE_HEADER_NAME = 0x33
2783 DEVLINK_ATTR_DPIPE_HEADER_ID = 0x34
2784 DEVLINK_ATTR_DPIPE_HEADER_FIELDS = 0x35
2785 DEVLINK_ATTR_DPIPE_HEADER_GLOBAL = 0x36
2786 DEVLINK_ATTR_DPIPE_HEADER_INDEX = 0x37
2787 DEVLINK_ATTR_DPIPE_FIELD = 0x38
2788 DEVLINK_ATTR_DPIPE_FIELD_NAME = 0x39
2789 DEVLINK_ATTR_DPIPE_FIELD_ID = 0x3a
2790 DEVLINK_ATTR_DPIPE_FIELD_BITWIDTH = 0x3b
2791 DEVLINK_ATTR_DPIPE_FIELD_MAPPING_TYPE = 0x3c
2792 DEVLINK_ATTR_PAD = 0x3d
2793 DEVLINK_ATTR_ESWITCH_ENCAP_MODE = 0x3e
2794 DEVLINK_ATTR_MAX = 0x8c
2795 DEVLINK_DPIPE_FIELD_MAPPING_TYPE_NONE = 0x0
2796 DEVLINK_DPIPE_FIELD_MAPPING_TYPE_IFINDEX = 0x1
2797 DEVLINK_DPIPE_MATCH_TYPE_FIELD_EXACT = 0x0
2798 DEVLINK_DPIPE_ACTION_TYPE_FIELD_MODIFY = 0x0
2799 DEVLINK_DPIPE_FIELD_ETHERNET_DST_MAC = 0x0
2800 DEVLINK_DPIPE_FIELD_IPV4_DST_IP = 0x0
2801 DEVLINK_DPIPE_FIELD_IPV6_DST_IP = 0x0
2802 DEVLINK_DPIPE_HEADER_ETHERNET = 0x0
2803 DEVLINK_DPIPE_HEADER_IPV4 = 0x1
2804 DEVLINK_DPIPE_HEADER_IPV6 = 0x2
2805)
diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_mipsle.go b/vendor/golang.org/x/sys/unix/ztypes_linux_mipsle.go
index 8759bc3..a266237 100644
--- a/vendor/golang.org/x/sys/unix/ztypes_linux_mipsle.go
+++ b/vendor/golang.org/x/sys/unix/ztypes_linux_mipsle.go
@@ -182,6 +182,55 @@ type FscryptKey struct {
182 Size uint32 182 Size uint32
183} 183}
184 184
185type FscryptPolicyV1 struct {
186 Version uint8
187 Contents_encryption_mode uint8
188 Filenames_encryption_mode uint8
189 Flags uint8
190 Master_key_descriptor [8]uint8
191}
192
193type FscryptPolicyV2 struct {
194 Version uint8
195 Contents_encryption_mode uint8
196 Filenames_encryption_mode uint8
197 Flags uint8
198 _ [4]uint8
199 Master_key_identifier [16]uint8
200}
201
202type FscryptGetPolicyExArg struct {
203 Size uint64
204 Policy [24]byte
205}
206
207type FscryptKeySpecifier struct {
208 Type uint32
209 _ uint32
210 U [32]byte
211}
212
213type FscryptAddKeyArg struct {
214 Key_spec FscryptKeySpecifier
215 Raw_size uint32
216 _ [9]uint32
217}
218
219type FscryptRemoveKeyArg struct {
220 Key_spec FscryptKeySpecifier
221 Removal_status_flags uint32
222 _ [5]uint32
223}
224
225type FscryptGetKeyStatusArg struct {
226 Key_spec FscryptKeySpecifier
227 _ [6]uint32
228 Status uint32
229 Status_flags uint32
230 User_count uint32
231 _ [13]uint32
232}
233
185type KeyctlDHParams struct { 234type KeyctlDHParams struct {
186 Private int32 235 Private int32
187 Prime int32 236 Prime int32
@@ -259,7 +308,7 @@ type RawSockaddrRFCOMM struct {
259type RawSockaddrCAN struct { 308type RawSockaddrCAN struct {
260 Family uint16 309 Family uint16
261 Ifindex int32 310 Ifindex int32
262 Addr [8]byte 311 Addr [16]byte
263} 312}
264 313
265type RawSockaddrALG struct { 314type RawSockaddrALG struct {
@@ -288,6 +337,13 @@ type RawSockaddrXDP struct {
288 337
289type RawSockaddrPPPoX [0x1e]byte 338type RawSockaddrPPPoX [0x1e]byte
290 339
340type RawSockaddrTIPC struct {
341 Family uint16
342 Addrtype uint8
343 Scope int8
344 Addr [12]byte
345}
346
291type RawSockaddr struct { 347type RawSockaddr struct {
292 Family uint16 348 Family uint16
293 Data [14]int8 349 Data [14]int8
@@ -423,11 +479,12 @@ const (
423 SizeofSockaddrHCI = 0x6 479 SizeofSockaddrHCI = 0x6
424 SizeofSockaddrL2 = 0xe 480 SizeofSockaddrL2 = 0xe
425 SizeofSockaddrRFCOMM = 0xa 481 SizeofSockaddrRFCOMM = 0xa
426 SizeofSockaddrCAN = 0x10 482 SizeofSockaddrCAN = 0x18
427 SizeofSockaddrALG = 0x58 483 SizeofSockaddrALG = 0x58
428 SizeofSockaddrVM = 0x10 484 SizeofSockaddrVM = 0x10
429 SizeofSockaddrXDP = 0x10 485 SizeofSockaddrXDP = 0x10
430 SizeofSockaddrPPPoX = 0x1e 486 SizeofSockaddrPPPoX = 0x1e
487 SizeofSockaddrTIPC = 0x10
431 SizeofLinger = 0x8 488 SizeofLinger = 0x8
432 SizeofIovec = 0x8 489 SizeofIovec = 0x8
433 SizeofIPMreq = 0x8 490 SizeofIPMreq = 0x8
@@ -538,7 +595,7 @@ const (
538 IFLA_NEW_IFINDEX = 0x31 595 IFLA_NEW_IFINDEX = 0x31
539 IFLA_MIN_MTU = 0x32 596 IFLA_MIN_MTU = 0x32
540 IFLA_MAX_MTU = 0x33 597 IFLA_MAX_MTU = 0x33
541 IFLA_MAX = 0x33 598 IFLA_MAX = 0x35
542 IFLA_INFO_KIND = 0x1 599 IFLA_INFO_KIND = 0x1
543 IFLA_INFO_DATA = 0x2 600 IFLA_INFO_DATA = 0x2
544 IFLA_INFO_XSTATS = 0x3 601 IFLA_INFO_XSTATS = 0x3
@@ -594,22 +651,6 @@ const (
594 RTN_THROW = 0x9 651 RTN_THROW = 0x9
595 RTN_NAT = 0xa 652 RTN_NAT = 0xa
596 RTN_XRESOLVE = 0xb 653 RTN_XRESOLVE = 0xb
597 RTNLGRP_NONE = 0x0
598 RTNLGRP_LINK = 0x1
599 RTNLGRP_NOTIFY = 0x2
600 RTNLGRP_NEIGH = 0x3
601 RTNLGRP_TC = 0x4
602 RTNLGRP_IPV4_IFADDR = 0x5
603 RTNLGRP_IPV4_MROUTE = 0x6
604 RTNLGRP_IPV4_ROUTE = 0x7
605 RTNLGRP_IPV4_RULE = 0x8
606 RTNLGRP_IPV6_IFADDR = 0x9
607 RTNLGRP_IPV6_MROUTE = 0xa
608 RTNLGRP_IPV6_ROUTE = 0xb
609 RTNLGRP_IPV6_IFINFO = 0xc
610 RTNLGRP_IPV6_PREFIX = 0x12
611 RTNLGRP_IPV6_RULE = 0x13
612 RTNLGRP_ND_USEROPT = 0x14
613 SizeofNlMsghdr = 0x10 654 SizeofNlMsghdr = 0x10
614 SizeofNlMsgerr = 0x14 655 SizeofNlMsgerr = 0x14
615 SizeofRtGenmsg = 0x1 656 SizeofRtGenmsg = 0x1
@@ -617,6 +658,7 @@ const (
617 SizeofRtAttr = 0x4 658 SizeofRtAttr = 0x4
618 SizeofIfInfomsg = 0x10 659 SizeofIfInfomsg = 0x10
619 SizeofIfAddrmsg = 0x8 660 SizeofIfAddrmsg = 0x8
661 SizeofIfaCacheinfo = 0x10
620 SizeofRtMsg = 0xc 662 SizeofRtMsg = 0xc
621 SizeofRtNexthop = 0x8 663 SizeofRtNexthop = 0x8
622 SizeofNdUseroptmsg = 0x10 664 SizeofNdUseroptmsg = 0x10
@@ -667,6 +709,13 @@ type IfAddrmsg struct {
667 Index uint32 709 Index uint32
668} 710}
669 711
712type IfaCacheinfo struct {
713 Prefered uint32
714 Valid uint32
715 Cstamp uint32
716 Tstamp uint32
717}
718
670type RtMsg struct { 719type RtMsg struct {
671 Family uint8 720 Family uint8
672 Dst_len uint8 721 Dst_len uint8
@@ -2038,6 +2087,7 @@ type XDPRingOffset struct {
2038 Producer uint64 2087 Producer uint64
2039 Consumer uint64 2088 Consumer uint64
2040 Desc uint64 2089 Desc uint64
2090 Flags uint64
2041} 2091}
2042 2092
2043type XDPMmapOffsets struct { 2093type XDPMmapOffsets struct {
@@ -2052,6 +2102,8 @@ type XDPUmemReg struct {
2052 Len uint64 2102 Len uint64
2053 Size uint32 2103 Size uint32
2054 Headroom uint32 2104 Headroom uint32
2105 Flags uint32
2106 _ [4]byte
2055} 2107}
2056 2108
2057type XDPStatistics struct { 2109type XDPStatistics struct {
@@ -2465,6 +2517,42 @@ const (
2465 BPF_FD_TYPE_URETPROBE = 0x5 2517 BPF_FD_TYPE_URETPROBE = 0x5
2466) 2518)
2467 2519
2520const (
2521 RTNLGRP_NONE = 0x0
2522 RTNLGRP_LINK = 0x1
2523 RTNLGRP_NOTIFY = 0x2
2524 RTNLGRP_NEIGH = 0x3
2525 RTNLGRP_TC = 0x4
2526 RTNLGRP_IPV4_IFADDR = 0x5
2527 RTNLGRP_IPV4_MROUTE = 0x6
2528 RTNLGRP_IPV4_ROUTE = 0x7
2529 RTNLGRP_IPV4_RULE = 0x8
2530 RTNLGRP_IPV6_IFADDR = 0x9
2531 RTNLGRP_IPV6_MROUTE = 0xa
2532 RTNLGRP_IPV6_ROUTE = 0xb
2533 RTNLGRP_IPV6_IFINFO = 0xc
2534 RTNLGRP_DECnet_IFADDR = 0xd
2535 RTNLGRP_NOP2 = 0xe
2536 RTNLGRP_DECnet_ROUTE = 0xf
2537 RTNLGRP_DECnet_RULE = 0x10
2538 RTNLGRP_NOP4 = 0x11
2539 RTNLGRP_IPV6_PREFIX = 0x12
2540 RTNLGRP_IPV6_RULE = 0x13
2541 RTNLGRP_ND_USEROPT = 0x14
2542 RTNLGRP_PHONET_IFADDR = 0x15
2543 RTNLGRP_PHONET_ROUTE = 0x16
2544 RTNLGRP_DCB = 0x17
2545 RTNLGRP_IPV4_NETCONF = 0x18
2546 RTNLGRP_IPV6_NETCONF = 0x19
2547 RTNLGRP_MDB = 0x1a
2548 RTNLGRP_MPLS_ROUTE = 0x1b
2549 RTNLGRP_NSID = 0x1c
2550 RTNLGRP_MPLS_NETCONF = 0x1d
2551 RTNLGRP_IPV4_MROUTE_R = 0x1e
2552 RTNLGRP_IPV6_MROUTE_R = 0x1f
2553 RTNLGRP_NEXTHOP = 0x20
2554)
2555
2468type CapUserHeader struct { 2556type CapUserHeader struct {
2469 Version uint32 2557 Version uint32
2470 Pid int32 2558 Pid int32
@@ -2518,3 +2606,201 @@ type LoopInfo64 struct {
2518 Encrypt_key [32]uint8 2606 Encrypt_key [32]uint8
2519 Init [2]uint64 2607 Init [2]uint64
2520} 2608}
2609
2610type TIPCSocketAddr struct {
2611 Ref uint32
2612 Node uint32
2613}
2614
2615type TIPCServiceRange struct {
2616 Type uint32
2617 Lower uint32
2618 Upper uint32
2619}
2620
2621type TIPCServiceName struct {
2622 Type uint32
2623 Instance uint32
2624 Domain uint32
2625}
2626
2627type TIPCSubscr struct {
2628 Seq TIPCServiceRange
2629 Timeout uint32
2630 Filter uint32
2631 Handle [8]int8
2632}
2633
2634type TIPCEvent struct {
2635 Event uint32
2636 Lower uint32
2637 Upper uint32
2638 Port TIPCSocketAddr
2639 S TIPCSubscr
2640}
2641
2642type TIPCGroupReq struct {
2643 Type uint32
2644 Instance uint32
2645 Scope uint32
2646 Flags uint32
2647}
2648
2649type TIPCSIOCLNReq struct {
2650 Peer uint32
2651 Id uint32
2652 Linkname [68]int8
2653}
2654
2655type TIPCSIOCNodeIDReq struct {
2656 Peer uint32
2657 Id [16]int8
2658}
2659
2660const (
2661 TIPC_CLUSTER_SCOPE = 0x2
2662 TIPC_NODE_SCOPE = 0x3
2663)
2664
2665const (
2666 SYSLOG_ACTION_CLOSE = 0
2667 SYSLOG_ACTION_OPEN = 1
2668 SYSLOG_ACTION_READ = 2
2669 SYSLOG_ACTION_READ_ALL = 3
2670 SYSLOG_ACTION_READ_CLEAR = 4
2671 SYSLOG_ACTION_CLEAR = 5
2672 SYSLOG_ACTION_CONSOLE_OFF = 6
2673 SYSLOG_ACTION_CONSOLE_ON = 7
2674 SYSLOG_ACTION_CONSOLE_LEVEL = 8
2675 SYSLOG_ACTION_SIZE_UNREAD = 9
2676 SYSLOG_ACTION_SIZE_BUFFER = 10
2677)
2678
2679const (
2680 DEVLINK_CMD_UNSPEC = 0x0
2681 DEVLINK_CMD_GET = 0x1
2682 DEVLINK_CMD_SET = 0x2
2683 DEVLINK_CMD_NEW = 0x3
2684 DEVLINK_CMD_DEL = 0x4
2685 DEVLINK_CMD_PORT_GET = 0x5
2686 DEVLINK_CMD_PORT_SET = 0x6
2687 DEVLINK_CMD_PORT_NEW = 0x7
2688 DEVLINK_CMD_PORT_DEL = 0x8
2689 DEVLINK_CMD_PORT_SPLIT = 0x9
2690 DEVLINK_CMD_PORT_UNSPLIT = 0xa
2691 DEVLINK_CMD_SB_GET = 0xb
2692 DEVLINK_CMD_SB_SET = 0xc
2693 DEVLINK_CMD_SB_NEW = 0xd
2694 DEVLINK_CMD_SB_DEL = 0xe
2695 DEVLINK_CMD_SB_POOL_GET = 0xf
2696 DEVLINK_CMD_SB_POOL_SET = 0x10
2697 DEVLINK_CMD_SB_POOL_NEW = 0x11
2698 DEVLINK_CMD_SB_POOL_DEL = 0x12
2699 DEVLINK_CMD_SB_PORT_POOL_GET = 0x13
2700 DEVLINK_CMD_SB_PORT_POOL_SET = 0x14
2701 DEVLINK_CMD_SB_PORT_POOL_NEW = 0x15
2702 DEVLINK_CMD_SB_PORT_POOL_DEL = 0x16
2703 DEVLINK_CMD_SB_TC_POOL_BIND_GET = 0x17
2704 DEVLINK_CMD_SB_TC_POOL_BIND_SET = 0x18
2705 DEVLINK_CMD_SB_TC_POOL_BIND_NEW = 0x19
2706 DEVLINK_CMD_SB_TC_POOL_BIND_DEL = 0x1a
2707 DEVLINK_CMD_SB_OCC_SNAPSHOT = 0x1b
2708 DEVLINK_CMD_SB_OCC_MAX_CLEAR = 0x1c
2709 DEVLINK_CMD_ESWITCH_GET = 0x1d
2710 DEVLINK_CMD_ESWITCH_SET = 0x1e
2711 DEVLINK_CMD_DPIPE_TABLE_GET = 0x1f
2712 DEVLINK_CMD_DPIPE_ENTRIES_GET = 0x20
2713 DEVLINK_CMD_DPIPE_HEADERS_GET = 0x21
2714 DEVLINK_CMD_DPIPE_TABLE_COUNTERS_SET = 0x22
2715 DEVLINK_CMD_MAX = 0x44
2716 DEVLINK_PORT_TYPE_NOTSET = 0x0
2717 DEVLINK_PORT_TYPE_AUTO = 0x1
2718 DEVLINK_PORT_TYPE_ETH = 0x2
2719 DEVLINK_PORT_TYPE_IB = 0x3
2720 DEVLINK_SB_POOL_TYPE_INGRESS = 0x0
2721 DEVLINK_SB_POOL_TYPE_EGRESS = 0x1
2722 DEVLINK_SB_THRESHOLD_TYPE_STATIC = 0x0
2723 DEVLINK_SB_THRESHOLD_TYPE_DYNAMIC = 0x1
2724 DEVLINK_ESWITCH_MODE_LEGACY = 0x0
2725 DEVLINK_ESWITCH_MODE_SWITCHDEV = 0x1
2726 DEVLINK_ESWITCH_INLINE_MODE_NONE = 0x0
2727 DEVLINK_ESWITCH_INLINE_MODE_LINK = 0x1
2728 DEVLINK_ESWITCH_INLINE_MODE_NETWORK = 0x2
2729 DEVLINK_ESWITCH_INLINE_MODE_TRANSPORT = 0x3
2730 DEVLINK_ESWITCH_ENCAP_MODE_NONE = 0x0
2731 DEVLINK_ESWITCH_ENCAP_MODE_BASIC = 0x1
2732 DEVLINK_ATTR_UNSPEC = 0x0
2733 DEVLINK_ATTR_BUS_NAME = 0x1
2734 DEVLINK_ATTR_DEV_NAME = 0x2
2735 DEVLINK_ATTR_PORT_INDEX = 0x3
2736 DEVLINK_ATTR_PORT_TYPE = 0x4
2737 DEVLINK_ATTR_PORT_DESIRED_TYPE = 0x5
2738 DEVLINK_ATTR_PORT_NETDEV_IFINDEX = 0x6
2739 DEVLINK_ATTR_PORT_NETDEV_NAME = 0x7
2740 DEVLINK_ATTR_PORT_IBDEV_NAME = 0x8
2741 DEVLINK_ATTR_PORT_SPLIT_COUNT = 0x9
2742 DEVLINK_ATTR_PORT_SPLIT_GROUP = 0xa
2743 DEVLINK_ATTR_SB_INDEX = 0xb
2744 DEVLINK_ATTR_SB_SIZE = 0xc
2745 DEVLINK_ATTR_SB_INGRESS_POOL_COUNT = 0xd
2746 DEVLINK_ATTR_SB_EGRESS_POOL_COUNT = 0xe
2747 DEVLINK_ATTR_SB_INGRESS_TC_COUNT = 0xf
2748 DEVLINK_ATTR_SB_EGRESS_TC_COUNT = 0x10
2749 DEVLINK_ATTR_SB_POOL_INDEX = 0x11
2750 DEVLINK_ATTR_SB_POOL_TYPE = 0x12
2751 DEVLINK_ATTR_SB_POOL_SIZE = 0x13
2752 DEVLINK_ATTR_SB_POOL_THRESHOLD_TYPE = 0x14
2753 DEVLINK_ATTR_SB_THRESHOLD = 0x15
2754 DEVLINK_ATTR_SB_TC_INDEX = 0x16
2755 DEVLINK_ATTR_SB_OCC_CUR = 0x17
2756 DEVLINK_ATTR_SB_OCC_MAX = 0x18
2757 DEVLINK_ATTR_ESWITCH_MODE = 0x19
2758 DEVLINK_ATTR_ESWITCH_INLINE_MODE = 0x1a
2759 DEVLINK_ATTR_DPIPE_TABLES = 0x1b
2760 DEVLINK_ATTR_DPIPE_TABLE = 0x1c
2761 DEVLINK_ATTR_DPIPE_TABLE_NAME = 0x1d
2762 DEVLINK_ATTR_DPIPE_TABLE_SIZE = 0x1e
2763 DEVLINK_ATTR_DPIPE_TABLE_MATCHES = 0x1f
2764 DEVLINK_ATTR_DPIPE_TABLE_ACTIONS = 0x20
2765 DEVLINK_ATTR_DPIPE_TABLE_COUNTERS_ENABLED = 0x21
2766 DEVLINK_ATTR_DPIPE_ENTRIES = 0x22
2767 DEVLINK_ATTR_DPIPE_ENTRY = 0x23
2768 DEVLINK_ATTR_DPIPE_ENTRY_INDEX = 0x24
2769 DEVLINK_ATTR_DPIPE_ENTRY_MATCH_VALUES = 0x25
2770 DEVLINK_ATTR_DPIPE_ENTRY_ACTION_VALUES = 0x26
2771 DEVLINK_ATTR_DPIPE_ENTRY_COUNTER = 0x27
2772 DEVLINK_ATTR_DPIPE_MATCH = 0x28
2773 DEVLINK_ATTR_DPIPE_MATCH_VALUE = 0x29
2774 DEVLINK_ATTR_DPIPE_MATCH_TYPE = 0x2a
2775 DEVLINK_ATTR_DPIPE_ACTION = 0x2b
2776 DEVLINK_ATTR_DPIPE_ACTION_VALUE = 0x2c
2777 DEVLINK_ATTR_DPIPE_ACTION_TYPE = 0x2d
2778 DEVLINK_ATTR_DPIPE_VALUE = 0x2e
2779 DEVLINK_ATTR_DPIPE_VALUE_MASK = 0x2f
2780 DEVLINK_ATTR_DPIPE_VALUE_MAPPING = 0x30
2781 DEVLINK_ATTR_DPIPE_HEADERS = 0x31
2782 DEVLINK_ATTR_DPIPE_HEADER = 0x32
2783 DEVLINK_ATTR_DPIPE_HEADER_NAME = 0x33
2784 DEVLINK_ATTR_DPIPE_HEADER_ID = 0x34
2785 DEVLINK_ATTR_DPIPE_HEADER_FIELDS = 0x35
2786 DEVLINK_ATTR_DPIPE_HEADER_GLOBAL = 0x36
2787 DEVLINK_ATTR_DPIPE_HEADER_INDEX = 0x37
2788 DEVLINK_ATTR_DPIPE_FIELD = 0x38
2789 DEVLINK_ATTR_DPIPE_FIELD_NAME = 0x39
2790 DEVLINK_ATTR_DPIPE_FIELD_ID = 0x3a
2791 DEVLINK_ATTR_DPIPE_FIELD_BITWIDTH = 0x3b
2792 DEVLINK_ATTR_DPIPE_FIELD_MAPPING_TYPE = 0x3c
2793 DEVLINK_ATTR_PAD = 0x3d
2794 DEVLINK_ATTR_ESWITCH_ENCAP_MODE = 0x3e
2795 DEVLINK_ATTR_MAX = 0x8c
2796 DEVLINK_DPIPE_FIELD_MAPPING_TYPE_NONE = 0x0
2797 DEVLINK_DPIPE_FIELD_MAPPING_TYPE_IFINDEX = 0x1
2798 DEVLINK_DPIPE_MATCH_TYPE_FIELD_EXACT = 0x0
2799 DEVLINK_DPIPE_ACTION_TYPE_FIELD_MODIFY = 0x0
2800 DEVLINK_DPIPE_FIELD_ETHERNET_DST_MAC = 0x0
2801 DEVLINK_DPIPE_FIELD_IPV4_DST_IP = 0x0
2802 DEVLINK_DPIPE_FIELD_IPV6_DST_IP = 0x0
2803 DEVLINK_DPIPE_HEADER_ETHERNET = 0x0
2804 DEVLINK_DPIPE_HEADER_IPV4 = 0x1
2805 DEVLINK_DPIPE_HEADER_IPV6 = 0x2
2806)
diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go
index a812005..e93b73c 100644
--- a/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go
+++ b/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go
@@ -181,6 +181,55 @@ type FscryptKey struct {
181 Size uint32 181 Size uint32
182} 182}
183 183
184type FscryptPolicyV1 struct {
185 Version uint8
186 Contents_encryption_mode uint8
187 Filenames_encryption_mode uint8
188 Flags uint8
189 Master_key_descriptor [8]uint8
190}
191
192type FscryptPolicyV2 struct {
193 Version uint8
194 Contents_encryption_mode uint8
195 Filenames_encryption_mode uint8
196 Flags uint8
197 _ [4]uint8
198 Master_key_identifier [16]uint8
199}
200
201type FscryptGetPolicyExArg struct {
202 Size uint64
203 Policy [24]byte
204}
205
206type FscryptKeySpecifier struct {
207 Type uint32
208 _ uint32
209 U [32]byte
210}
211
212type FscryptAddKeyArg struct {
213 Key_spec FscryptKeySpecifier
214 Raw_size uint32
215 _ [9]uint32
216}
217
218type FscryptRemoveKeyArg struct {
219 Key_spec FscryptKeySpecifier
220 Removal_status_flags uint32
221 _ [5]uint32
222}
223
224type FscryptGetKeyStatusArg struct {
225 Key_spec FscryptKeySpecifier
226 _ [6]uint32
227 Status uint32
228 Status_flags uint32
229 User_count uint32
230 _ [13]uint32
231}
232
184type KeyctlDHParams struct { 233type KeyctlDHParams struct {
185 Private int32 234 Private int32
186 Prime int32 235 Prime int32
@@ -258,7 +307,7 @@ type RawSockaddrRFCOMM struct {
258type RawSockaddrCAN struct { 307type RawSockaddrCAN struct {
259 Family uint16 308 Family uint16
260 Ifindex int32 309 Ifindex int32
261 Addr [8]byte 310 Addr [16]byte
262} 311}
263 312
264type RawSockaddrALG struct { 313type RawSockaddrALG struct {
@@ -287,6 +336,13 @@ type RawSockaddrXDP struct {
287 336
288type RawSockaddrPPPoX [0x1e]byte 337type RawSockaddrPPPoX [0x1e]byte
289 338
339type RawSockaddrTIPC struct {
340 Family uint16
341 Addrtype uint8
342 Scope int8
343 Addr [12]byte
344}
345
290type RawSockaddr struct { 346type RawSockaddr struct {
291 Family uint16 347 Family uint16
292 Data [14]uint8 348 Data [14]uint8
@@ -423,11 +479,12 @@ const (
423 SizeofSockaddrHCI = 0x6 479 SizeofSockaddrHCI = 0x6
424 SizeofSockaddrL2 = 0xe 480 SizeofSockaddrL2 = 0xe
425 SizeofSockaddrRFCOMM = 0xa 481 SizeofSockaddrRFCOMM = 0xa
426 SizeofSockaddrCAN = 0x10 482 SizeofSockaddrCAN = 0x18
427 SizeofSockaddrALG = 0x58 483 SizeofSockaddrALG = 0x58
428 SizeofSockaddrVM = 0x10 484 SizeofSockaddrVM = 0x10
429 SizeofSockaddrXDP = 0x10 485 SizeofSockaddrXDP = 0x10
430 SizeofSockaddrPPPoX = 0x1e 486 SizeofSockaddrPPPoX = 0x1e
487 SizeofSockaddrTIPC = 0x10
431 SizeofLinger = 0x8 488 SizeofLinger = 0x8
432 SizeofIovec = 0x10 489 SizeofIovec = 0x10
433 SizeofIPMreq = 0x8 490 SizeofIPMreq = 0x8
@@ -538,7 +595,7 @@ const (
538 IFLA_NEW_IFINDEX = 0x31 595 IFLA_NEW_IFINDEX = 0x31
539 IFLA_MIN_MTU = 0x32 596 IFLA_MIN_MTU = 0x32
540 IFLA_MAX_MTU = 0x33 597 IFLA_MAX_MTU = 0x33
541 IFLA_MAX = 0x33 598 IFLA_MAX = 0x35
542 IFLA_INFO_KIND = 0x1 599 IFLA_INFO_KIND = 0x1
543 IFLA_INFO_DATA = 0x2 600 IFLA_INFO_DATA = 0x2
544 IFLA_INFO_XSTATS = 0x3 601 IFLA_INFO_XSTATS = 0x3
@@ -594,22 +651,6 @@ const (
594 RTN_THROW = 0x9 651 RTN_THROW = 0x9
595 RTN_NAT = 0xa 652 RTN_NAT = 0xa
596 RTN_XRESOLVE = 0xb 653 RTN_XRESOLVE = 0xb
597 RTNLGRP_NONE = 0x0
598 RTNLGRP_LINK = 0x1
599 RTNLGRP_NOTIFY = 0x2
600 RTNLGRP_NEIGH = 0x3
601 RTNLGRP_TC = 0x4
602 RTNLGRP_IPV4_IFADDR = 0x5
603 RTNLGRP_IPV4_MROUTE = 0x6
604 RTNLGRP_IPV4_ROUTE = 0x7
605 RTNLGRP_IPV4_RULE = 0x8
606 RTNLGRP_IPV6_IFADDR = 0x9
607 RTNLGRP_IPV6_MROUTE = 0xa
608 RTNLGRP_IPV6_ROUTE = 0xb
609 RTNLGRP_IPV6_IFINFO = 0xc
610 RTNLGRP_IPV6_PREFIX = 0x12
611 RTNLGRP_IPV6_RULE = 0x13
612 RTNLGRP_ND_USEROPT = 0x14
613 SizeofNlMsghdr = 0x10 654 SizeofNlMsghdr = 0x10
614 SizeofNlMsgerr = 0x14 655 SizeofNlMsgerr = 0x14
615 SizeofRtGenmsg = 0x1 656 SizeofRtGenmsg = 0x1
@@ -617,6 +658,7 @@ const (
617 SizeofRtAttr = 0x4 658 SizeofRtAttr = 0x4
618 SizeofIfInfomsg = 0x10 659 SizeofIfInfomsg = 0x10
619 SizeofIfAddrmsg = 0x8 660 SizeofIfAddrmsg = 0x8
661 SizeofIfaCacheinfo = 0x10
620 SizeofRtMsg = 0xc 662 SizeofRtMsg = 0xc
621 SizeofRtNexthop = 0x8 663 SizeofRtNexthop = 0x8
622 SizeofNdUseroptmsg = 0x10 664 SizeofNdUseroptmsg = 0x10
@@ -667,6 +709,13 @@ type IfAddrmsg struct {
667 Index uint32 709 Index uint32
668} 710}
669 711
712type IfaCacheinfo struct {
713 Prefered uint32
714 Valid uint32
715 Cstamp uint32
716 Tstamp uint32
717}
718
670type RtMsg struct { 719type RtMsg struct {
671 Family uint8 720 Family uint8
672 Dst_len uint8 721 Dst_len uint8
@@ -2043,6 +2092,7 @@ type XDPRingOffset struct {
2043 Producer uint64 2092 Producer uint64
2044 Consumer uint64 2093 Consumer uint64
2045 Desc uint64 2094 Desc uint64
2095 Flags uint64
2046} 2096}
2047 2097
2048type XDPMmapOffsets struct { 2098type XDPMmapOffsets struct {
@@ -2057,6 +2107,8 @@ type XDPUmemReg struct {
2057 Len uint64 2107 Len uint64
2058 Size uint32 2108 Size uint32
2059 Headroom uint32 2109 Headroom uint32
2110 Flags uint32
2111 _ [4]byte
2060} 2112}
2061 2113
2062type XDPStatistics struct { 2114type XDPStatistics struct {
@@ -2470,6 +2522,42 @@ const (
2470 BPF_FD_TYPE_URETPROBE = 0x5 2522 BPF_FD_TYPE_URETPROBE = 0x5
2471) 2523)
2472 2524
2525const (
2526 RTNLGRP_NONE = 0x0
2527 RTNLGRP_LINK = 0x1
2528 RTNLGRP_NOTIFY = 0x2
2529 RTNLGRP_NEIGH = 0x3
2530 RTNLGRP_TC = 0x4
2531 RTNLGRP_IPV4_IFADDR = 0x5
2532 RTNLGRP_IPV4_MROUTE = 0x6
2533 RTNLGRP_IPV4_ROUTE = 0x7
2534 RTNLGRP_IPV4_RULE = 0x8
2535 RTNLGRP_IPV6_IFADDR = 0x9
2536 RTNLGRP_IPV6_MROUTE = 0xa
2537 RTNLGRP_IPV6_ROUTE = 0xb
2538 RTNLGRP_IPV6_IFINFO = 0xc
2539 RTNLGRP_DECnet_IFADDR = 0xd
2540 RTNLGRP_NOP2 = 0xe
2541 RTNLGRP_DECnet_ROUTE = 0xf
2542 RTNLGRP_DECnet_RULE = 0x10
2543 RTNLGRP_NOP4 = 0x11
2544 RTNLGRP_IPV6_PREFIX = 0x12
2545 RTNLGRP_IPV6_RULE = 0x13
2546 RTNLGRP_ND_USEROPT = 0x14
2547 RTNLGRP_PHONET_IFADDR = 0x15
2548 RTNLGRP_PHONET_ROUTE = 0x16
2549 RTNLGRP_DCB = 0x17
2550 RTNLGRP_IPV4_NETCONF = 0x18
2551 RTNLGRP_IPV6_NETCONF = 0x19
2552 RTNLGRP_MDB = 0x1a
2553 RTNLGRP_MPLS_ROUTE = 0x1b
2554 RTNLGRP_NSID = 0x1c
2555 RTNLGRP_MPLS_NETCONF = 0x1d
2556 RTNLGRP_IPV4_MROUTE_R = 0x1e
2557 RTNLGRP_IPV6_MROUTE_R = 0x1f
2558 RTNLGRP_NEXTHOP = 0x20
2559)
2560
2473type CapUserHeader struct { 2561type CapUserHeader struct {
2474 Version uint32 2562 Version uint32
2475 Pid int32 2563 Pid int32
@@ -2524,3 +2612,201 @@ type LoopInfo64 struct {
2524 Encrypt_key [32]uint8 2612 Encrypt_key [32]uint8
2525 Init [2]uint64 2613 Init [2]uint64
2526} 2614}
2615
2616type TIPCSocketAddr struct {
2617 Ref uint32
2618 Node uint32
2619}
2620
2621type TIPCServiceRange struct {
2622 Type uint32
2623 Lower uint32
2624 Upper uint32
2625}
2626
2627type TIPCServiceName struct {
2628 Type uint32
2629 Instance uint32
2630 Domain uint32
2631}
2632
2633type TIPCSubscr struct {
2634 Seq TIPCServiceRange
2635 Timeout uint32
2636 Filter uint32
2637 Handle [8]uint8
2638}
2639
2640type TIPCEvent struct {
2641 Event uint32
2642 Lower uint32
2643 Upper uint32
2644 Port TIPCSocketAddr
2645 S TIPCSubscr
2646}
2647
2648type TIPCGroupReq struct {
2649 Type uint32
2650 Instance uint32
2651 Scope uint32
2652 Flags uint32
2653}
2654
2655type TIPCSIOCLNReq struct {
2656 Peer uint32
2657 Id uint32
2658 Linkname [68]uint8
2659}
2660
2661type TIPCSIOCNodeIDReq struct {
2662 Peer uint32
2663 Id [16]uint8
2664}
2665
2666const (
2667 TIPC_CLUSTER_SCOPE = 0x2
2668 TIPC_NODE_SCOPE = 0x3
2669)
2670
2671const (
2672 SYSLOG_ACTION_CLOSE = 0
2673 SYSLOG_ACTION_OPEN = 1
2674 SYSLOG_ACTION_READ = 2
2675 SYSLOG_ACTION_READ_ALL = 3
2676 SYSLOG_ACTION_READ_CLEAR = 4
2677 SYSLOG_ACTION_CLEAR = 5
2678 SYSLOG_ACTION_CONSOLE_OFF = 6
2679 SYSLOG_ACTION_CONSOLE_ON = 7
2680 SYSLOG_ACTION_CONSOLE_LEVEL = 8
2681 SYSLOG_ACTION_SIZE_UNREAD = 9
2682 SYSLOG_ACTION_SIZE_BUFFER = 10
2683)
2684
2685const (
2686 DEVLINK_CMD_UNSPEC = 0x0
2687 DEVLINK_CMD_GET = 0x1
2688 DEVLINK_CMD_SET = 0x2
2689 DEVLINK_CMD_NEW = 0x3
2690 DEVLINK_CMD_DEL = 0x4
2691 DEVLINK_CMD_PORT_GET = 0x5
2692 DEVLINK_CMD_PORT_SET = 0x6
2693 DEVLINK_CMD_PORT_NEW = 0x7
2694 DEVLINK_CMD_PORT_DEL = 0x8
2695 DEVLINK_CMD_PORT_SPLIT = 0x9
2696 DEVLINK_CMD_PORT_UNSPLIT = 0xa
2697 DEVLINK_CMD_SB_GET = 0xb
2698 DEVLINK_CMD_SB_SET = 0xc
2699 DEVLINK_CMD_SB_NEW = 0xd
2700 DEVLINK_CMD_SB_DEL = 0xe
2701 DEVLINK_CMD_SB_POOL_GET = 0xf
2702 DEVLINK_CMD_SB_POOL_SET = 0x10
2703 DEVLINK_CMD_SB_POOL_NEW = 0x11
2704 DEVLINK_CMD_SB_POOL_DEL = 0x12
2705 DEVLINK_CMD_SB_PORT_POOL_GET = 0x13
2706 DEVLINK_CMD_SB_PORT_POOL_SET = 0x14
2707 DEVLINK_CMD_SB_PORT_POOL_NEW = 0x15
2708 DEVLINK_CMD_SB_PORT_POOL_DEL = 0x16
2709 DEVLINK_CMD_SB_TC_POOL_BIND_GET = 0x17
2710 DEVLINK_CMD_SB_TC_POOL_BIND_SET = 0x18
2711 DEVLINK_CMD_SB_TC_POOL_BIND_NEW = 0x19
2712 DEVLINK_CMD_SB_TC_POOL_BIND_DEL = 0x1a
2713 DEVLINK_CMD_SB_OCC_SNAPSHOT = 0x1b
2714 DEVLINK_CMD_SB_OCC_MAX_CLEAR = 0x1c
2715 DEVLINK_CMD_ESWITCH_GET = 0x1d
2716 DEVLINK_CMD_ESWITCH_SET = 0x1e
2717 DEVLINK_CMD_DPIPE_TABLE_GET = 0x1f
2718 DEVLINK_CMD_DPIPE_ENTRIES_GET = 0x20
2719 DEVLINK_CMD_DPIPE_HEADERS_GET = 0x21
2720 DEVLINK_CMD_DPIPE_TABLE_COUNTERS_SET = 0x22
2721 DEVLINK_CMD_MAX = 0x44
2722 DEVLINK_PORT_TYPE_NOTSET = 0x0
2723 DEVLINK_PORT_TYPE_AUTO = 0x1
2724 DEVLINK_PORT_TYPE_ETH = 0x2
2725 DEVLINK_PORT_TYPE_IB = 0x3
2726 DEVLINK_SB_POOL_TYPE_INGRESS = 0x0
2727 DEVLINK_SB_POOL_TYPE_EGRESS = 0x1
2728 DEVLINK_SB_THRESHOLD_TYPE_STATIC = 0x0
2729 DEVLINK_SB_THRESHOLD_TYPE_DYNAMIC = 0x1
2730 DEVLINK_ESWITCH_MODE_LEGACY = 0x0
2731 DEVLINK_ESWITCH_MODE_SWITCHDEV = 0x1
2732 DEVLINK_ESWITCH_INLINE_MODE_NONE = 0x0
2733 DEVLINK_ESWITCH_INLINE_MODE_LINK = 0x1
2734 DEVLINK_ESWITCH_INLINE_MODE_NETWORK = 0x2
2735 DEVLINK_ESWITCH_INLINE_MODE_TRANSPORT = 0x3
2736 DEVLINK_ESWITCH_ENCAP_MODE_NONE = 0x0
2737 DEVLINK_ESWITCH_ENCAP_MODE_BASIC = 0x1
2738 DEVLINK_ATTR_UNSPEC = 0x0
2739 DEVLINK_ATTR_BUS_NAME = 0x1
2740 DEVLINK_ATTR_DEV_NAME = 0x2
2741 DEVLINK_ATTR_PORT_INDEX = 0x3
2742 DEVLINK_ATTR_PORT_TYPE = 0x4
2743 DEVLINK_ATTR_PORT_DESIRED_TYPE = 0x5
2744 DEVLINK_ATTR_PORT_NETDEV_IFINDEX = 0x6
2745 DEVLINK_ATTR_PORT_NETDEV_NAME = 0x7
2746 DEVLINK_ATTR_PORT_IBDEV_NAME = 0x8
2747 DEVLINK_ATTR_PORT_SPLIT_COUNT = 0x9
2748 DEVLINK_ATTR_PORT_SPLIT_GROUP = 0xa
2749 DEVLINK_ATTR_SB_INDEX = 0xb
2750 DEVLINK_ATTR_SB_SIZE = 0xc
2751 DEVLINK_ATTR_SB_INGRESS_POOL_COUNT = 0xd
2752 DEVLINK_ATTR_SB_EGRESS_POOL_COUNT = 0xe
2753 DEVLINK_ATTR_SB_INGRESS_TC_COUNT = 0xf
2754 DEVLINK_ATTR_SB_EGRESS_TC_COUNT = 0x10
2755 DEVLINK_ATTR_SB_POOL_INDEX = 0x11
2756 DEVLINK_ATTR_SB_POOL_TYPE = 0x12
2757 DEVLINK_ATTR_SB_POOL_SIZE = 0x13
2758 DEVLINK_ATTR_SB_POOL_THRESHOLD_TYPE = 0x14
2759 DEVLINK_ATTR_SB_THRESHOLD = 0x15
2760 DEVLINK_ATTR_SB_TC_INDEX = 0x16
2761 DEVLINK_ATTR_SB_OCC_CUR = 0x17
2762 DEVLINK_ATTR_SB_OCC_MAX = 0x18
2763 DEVLINK_ATTR_ESWITCH_MODE = 0x19
2764 DEVLINK_ATTR_ESWITCH_INLINE_MODE = 0x1a
2765 DEVLINK_ATTR_DPIPE_TABLES = 0x1b
2766 DEVLINK_ATTR_DPIPE_TABLE = 0x1c
2767 DEVLINK_ATTR_DPIPE_TABLE_NAME = 0x1d
2768 DEVLINK_ATTR_DPIPE_TABLE_SIZE = 0x1e
2769 DEVLINK_ATTR_DPIPE_TABLE_MATCHES = 0x1f
2770 DEVLINK_ATTR_DPIPE_TABLE_ACTIONS = 0x20
2771 DEVLINK_ATTR_DPIPE_TABLE_COUNTERS_ENABLED = 0x21
2772 DEVLINK_ATTR_DPIPE_ENTRIES = 0x22
2773 DEVLINK_ATTR_DPIPE_ENTRY = 0x23
2774 DEVLINK_ATTR_DPIPE_ENTRY_INDEX = 0x24
2775 DEVLINK_ATTR_DPIPE_ENTRY_MATCH_VALUES = 0x25
2776 DEVLINK_ATTR_DPIPE_ENTRY_ACTION_VALUES = 0x26
2777 DEVLINK_ATTR_DPIPE_ENTRY_COUNTER = 0x27
2778 DEVLINK_ATTR_DPIPE_MATCH = 0x28
2779 DEVLINK_ATTR_DPIPE_MATCH_VALUE = 0x29
2780 DEVLINK_ATTR_DPIPE_MATCH_TYPE = 0x2a
2781 DEVLINK_ATTR_DPIPE_ACTION = 0x2b
2782 DEVLINK_ATTR_DPIPE_ACTION_VALUE = 0x2c
2783 DEVLINK_ATTR_DPIPE_ACTION_TYPE = 0x2d
2784 DEVLINK_ATTR_DPIPE_VALUE = 0x2e
2785 DEVLINK_ATTR_DPIPE_VALUE_MASK = 0x2f
2786 DEVLINK_ATTR_DPIPE_VALUE_MAPPING = 0x30
2787 DEVLINK_ATTR_DPIPE_HEADERS = 0x31
2788 DEVLINK_ATTR_DPIPE_HEADER = 0x32
2789 DEVLINK_ATTR_DPIPE_HEADER_NAME = 0x33
2790 DEVLINK_ATTR_DPIPE_HEADER_ID = 0x34
2791 DEVLINK_ATTR_DPIPE_HEADER_FIELDS = 0x35
2792 DEVLINK_ATTR_DPIPE_HEADER_GLOBAL = 0x36
2793 DEVLINK_ATTR_DPIPE_HEADER_INDEX = 0x37
2794 DEVLINK_ATTR_DPIPE_FIELD = 0x38
2795 DEVLINK_ATTR_DPIPE_FIELD_NAME = 0x39
2796 DEVLINK_ATTR_DPIPE_FIELD_ID = 0x3a
2797 DEVLINK_ATTR_DPIPE_FIELD_BITWIDTH = 0x3b
2798 DEVLINK_ATTR_DPIPE_FIELD_MAPPING_TYPE = 0x3c
2799 DEVLINK_ATTR_PAD = 0x3d
2800 DEVLINK_ATTR_ESWITCH_ENCAP_MODE = 0x3e
2801 DEVLINK_ATTR_MAX = 0x8c
2802 DEVLINK_DPIPE_FIELD_MAPPING_TYPE_NONE = 0x0
2803 DEVLINK_DPIPE_FIELD_MAPPING_TYPE_IFINDEX = 0x1
2804 DEVLINK_DPIPE_MATCH_TYPE_FIELD_EXACT = 0x0
2805 DEVLINK_DPIPE_ACTION_TYPE_FIELD_MODIFY = 0x0
2806 DEVLINK_DPIPE_FIELD_ETHERNET_DST_MAC = 0x0
2807 DEVLINK_DPIPE_FIELD_IPV4_DST_IP = 0x0
2808 DEVLINK_DPIPE_FIELD_IPV6_DST_IP = 0x0
2809 DEVLINK_DPIPE_HEADER_ETHERNET = 0x0
2810 DEVLINK_DPIPE_HEADER_IPV4 = 0x1
2811 DEVLINK_DPIPE_HEADER_IPV6 = 0x2
2812)
diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go b/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go
index 74b7a91..1f431b6 100644
--- a/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go
+++ b/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go
@@ -181,6 +181,55 @@ type FscryptKey struct {
181 Size uint32 181 Size uint32
182} 182}
183 183
184type FscryptPolicyV1 struct {
185 Version uint8
186 Contents_encryption_mode uint8
187 Filenames_encryption_mode uint8
188 Flags uint8
189 Master_key_descriptor [8]uint8
190}
191
192type FscryptPolicyV2 struct {
193 Version uint8
194 Contents_encryption_mode uint8
195 Filenames_encryption_mode uint8
196 Flags uint8
197 _ [4]uint8
198 Master_key_identifier [16]uint8
199}
200
201type FscryptGetPolicyExArg struct {
202 Size uint64
203 Policy [24]byte
204}
205
206type FscryptKeySpecifier struct {
207 Type uint32
208 _ uint32
209 U [32]byte
210}
211
212type FscryptAddKeyArg struct {
213 Key_spec FscryptKeySpecifier
214 Raw_size uint32
215 _ [9]uint32
216}
217
218type FscryptRemoveKeyArg struct {
219 Key_spec FscryptKeySpecifier
220 Removal_status_flags uint32
221 _ [5]uint32
222}
223
224type FscryptGetKeyStatusArg struct {
225 Key_spec FscryptKeySpecifier
226 _ [6]uint32
227 Status uint32
228 Status_flags uint32
229 User_count uint32
230 _ [13]uint32
231}
232
184type KeyctlDHParams struct { 233type KeyctlDHParams struct {
185 Private int32 234 Private int32
186 Prime int32 235 Prime int32
@@ -258,7 +307,7 @@ type RawSockaddrRFCOMM struct {
258type RawSockaddrCAN struct { 307type RawSockaddrCAN struct {
259 Family uint16 308 Family uint16
260 Ifindex int32 309 Ifindex int32
261 Addr [8]byte 310 Addr [16]byte
262} 311}
263 312
264type RawSockaddrALG struct { 313type RawSockaddrALG struct {
@@ -287,6 +336,13 @@ type RawSockaddrXDP struct {
287 336
288type RawSockaddrPPPoX [0x1e]byte 337type RawSockaddrPPPoX [0x1e]byte
289 338
339type RawSockaddrTIPC struct {
340 Family uint16
341 Addrtype uint8
342 Scope int8
343 Addr [12]byte
344}
345
290type RawSockaddr struct { 346type RawSockaddr struct {
291 Family uint16 347 Family uint16
292 Data [14]uint8 348 Data [14]uint8
@@ -423,11 +479,12 @@ const (
423 SizeofSockaddrHCI = 0x6 479 SizeofSockaddrHCI = 0x6
424 SizeofSockaddrL2 = 0xe 480 SizeofSockaddrL2 = 0xe
425 SizeofSockaddrRFCOMM = 0xa 481 SizeofSockaddrRFCOMM = 0xa
426 SizeofSockaddrCAN = 0x10 482 SizeofSockaddrCAN = 0x18
427 SizeofSockaddrALG = 0x58 483 SizeofSockaddrALG = 0x58
428 SizeofSockaddrVM = 0x10 484 SizeofSockaddrVM = 0x10
429 SizeofSockaddrXDP = 0x10 485 SizeofSockaddrXDP = 0x10
430 SizeofSockaddrPPPoX = 0x1e 486 SizeofSockaddrPPPoX = 0x1e
487 SizeofSockaddrTIPC = 0x10
431 SizeofLinger = 0x8 488 SizeofLinger = 0x8
432 SizeofIovec = 0x10 489 SizeofIovec = 0x10
433 SizeofIPMreq = 0x8 490 SizeofIPMreq = 0x8
@@ -538,7 +595,7 @@ const (
538 IFLA_NEW_IFINDEX = 0x31 595 IFLA_NEW_IFINDEX = 0x31
539 IFLA_MIN_MTU = 0x32 596 IFLA_MIN_MTU = 0x32
540 IFLA_MAX_MTU = 0x33 597 IFLA_MAX_MTU = 0x33
541 IFLA_MAX = 0x33 598 IFLA_MAX = 0x35
542 IFLA_INFO_KIND = 0x1 599 IFLA_INFO_KIND = 0x1
543 IFLA_INFO_DATA = 0x2 600 IFLA_INFO_DATA = 0x2
544 IFLA_INFO_XSTATS = 0x3 601 IFLA_INFO_XSTATS = 0x3
@@ -594,22 +651,6 @@ const (
594 RTN_THROW = 0x9 651 RTN_THROW = 0x9
595 RTN_NAT = 0xa 652 RTN_NAT = 0xa
596 RTN_XRESOLVE = 0xb 653 RTN_XRESOLVE = 0xb
597 RTNLGRP_NONE = 0x0
598 RTNLGRP_LINK = 0x1
599 RTNLGRP_NOTIFY = 0x2
600 RTNLGRP_NEIGH = 0x3
601 RTNLGRP_TC = 0x4
602 RTNLGRP_IPV4_IFADDR = 0x5
603 RTNLGRP_IPV4_MROUTE = 0x6
604 RTNLGRP_IPV4_ROUTE = 0x7
605 RTNLGRP_IPV4_RULE = 0x8
606 RTNLGRP_IPV6_IFADDR = 0x9
607 RTNLGRP_IPV6_MROUTE = 0xa
608 RTNLGRP_IPV6_ROUTE = 0xb
609 RTNLGRP_IPV6_IFINFO = 0xc
610 RTNLGRP_IPV6_PREFIX = 0x12
611 RTNLGRP_IPV6_RULE = 0x13
612 RTNLGRP_ND_USEROPT = 0x14
613 SizeofNlMsghdr = 0x10 654 SizeofNlMsghdr = 0x10
614 SizeofNlMsgerr = 0x14 655 SizeofNlMsgerr = 0x14
615 SizeofRtGenmsg = 0x1 656 SizeofRtGenmsg = 0x1
@@ -617,6 +658,7 @@ const (
617 SizeofRtAttr = 0x4 658 SizeofRtAttr = 0x4
618 SizeofIfInfomsg = 0x10 659 SizeofIfInfomsg = 0x10
619 SizeofIfAddrmsg = 0x8 660 SizeofIfAddrmsg = 0x8
661 SizeofIfaCacheinfo = 0x10
620 SizeofRtMsg = 0xc 662 SizeofRtMsg = 0xc
621 SizeofRtNexthop = 0x8 663 SizeofRtNexthop = 0x8
622 SizeofNdUseroptmsg = 0x10 664 SizeofNdUseroptmsg = 0x10
@@ -667,6 +709,13 @@ type IfAddrmsg struct {
667 Index uint32 709 Index uint32
668} 710}
669 711
712type IfaCacheinfo struct {
713 Prefered uint32
714 Valid uint32
715 Cstamp uint32
716 Tstamp uint32
717}
718
670type RtMsg struct { 719type RtMsg struct {
671 Family uint8 720 Family uint8
672 Dst_len uint8 721 Dst_len uint8
@@ -2043,6 +2092,7 @@ type XDPRingOffset struct {
2043 Producer uint64 2092 Producer uint64
2044 Consumer uint64 2093 Consumer uint64
2045 Desc uint64 2094 Desc uint64
2095 Flags uint64
2046} 2096}
2047 2097
2048type XDPMmapOffsets struct { 2098type XDPMmapOffsets struct {
@@ -2057,6 +2107,8 @@ type XDPUmemReg struct {
2057 Len uint64 2107 Len uint64
2058 Size uint32 2108 Size uint32
2059 Headroom uint32 2109 Headroom uint32
2110 Flags uint32
2111 _ [4]byte
2060} 2112}
2061 2113
2062type XDPStatistics struct { 2114type XDPStatistics struct {
@@ -2470,6 +2522,42 @@ const (
2470 BPF_FD_TYPE_URETPROBE = 0x5 2522 BPF_FD_TYPE_URETPROBE = 0x5
2471) 2523)
2472 2524
2525const (
2526 RTNLGRP_NONE = 0x0
2527 RTNLGRP_LINK = 0x1
2528 RTNLGRP_NOTIFY = 0x2
2529 RTNLGRP_NEIGH = 0x3
2530 RTNLGRP_TC = 0x4
2531 RTNLGRP_IPV4_IFADDR = 0x5
2532 RTNLGRP_IPV4_MROUTE = 0x6
2533 RTNLGRP_IPV4_ROUTE = 0x7
2534 RTNLGRP_IPV4_RULE = 0x8
2535 RTNLGRP_IPV6_IFADDR = 0x9
2536 RTNLGRP_IPV6_MROUTE = 0xa
2537 RTNLGRP_IPV6_ROUTE = 0xb
2538 RTNLGRP_IPV6_IFINFO = 0xc
2539 RTNLGRP_DECnet_IFADDR = 0xd
2540 RTNLGRP_NOP2 = 0xe
2541 RTNLGRP_DECnet_ROUTE = 0xf
2542 RTNLGRP_DECnet_RULE = 0x10
2543 RTNLGRP_NOP4 = 0x11
2544 RTNLGRP_IPV6_PREFIX = 0x12
2545 RTNLGRP_IPV6_RULE = 0x13
2546 RTNLGRP_ND_USEROPT = 0x14
2547 RTNLGRP_PHONET_IFADDR = 0x15
2548 RTNLGRP_PHONET_ROUTE = 0x16
2549 RTNLGRP_DCB = 0x17
2550 RTNLGRP_IPV4_NETCONF = 0x18
2551 RTNLGRP_IPV6_NETCONF = 0x19
2552 RTNLGRP_MDB = 0x1a
2553 RTNLGRP_MPLS_ROUTE = 0x1b
2554 RTNLGRP_NSID = 0x1c
2555 RTNLGRP_MPLS_NETCONF = 0x1d
2556 RTNLGRP_IPV4_MROUTE_R = 0x1e
2557 RTNLGRP_IPV6_MROUTE_R = 0x1f
2558 RTNLGRP_NEXTHOP = 0x20
2559)
2560
2473type CapUserHeader struct { 2561type CapUserHeader struct {
2474 Version uint32 2562 Version uint32
2475 Pid int32 2563 Pid int32
@@ -2524,3 +2612,201 @@ type LoopInfo64 struct {
2524 Encrypt_key [32]uint8 2612 Encrypt_key [32]uint8
2525 Init [2]uint64 2613 Init [2]uint64
2526} 2614}
2615
2616type TIPCSocketAddr struct {
2617 Ref uint32
2618 Node uint32
2619}
2620
2621type TIPCServiceRange struct {
2622 Type uint32
2623 Lower uint32
2624 Upper uint32
2625}
2626
2627type TIPCServiceName struct {
2628 Type uint32
2629 Instance uint32
2630 Domain uint32
2631}
2632
2633type TIPCSubscr struct {
2634 Seq TIPCServiceRange
2635 Timeout uint32
2636 Filter uint32
2637 Handle [8]uint8
2638}
2639
2640type TIPCEvent struct {
2641 Event uint32
2642 Lower uint32
2643 Upper uint32
2644 Port TIPCSocketAddr
2645 S TIPCSubscr
2646}
2647
2648type TIPCGroupReq struct {
2649 Type uint32
2650 Instance uint32
2651 Scope uint32
2652 Flags uint32
2653}
2654
2655type TIPCSIOCLNReq struct {
2656 Peer uint32
2657 Id uint32
2658 Linkname [68]uint8
2659}
2660
2661type TIPCSIOCNodeIDReq struct {
2662 Peer uint32
2663 Id [16]uint8
2664}
2665
2666const (
2667 TIPC_CLUSTER_SCOPE = 0x2
2668 TIPC_NODE_SCOPE = 0x3
2669)
2670
2671const (
2672 SYSLOG_ACTION_CLOSE = 0
2673 SYSLOG_ACTION_OPEN = 1
2674 SYSLOG_ACTION_READ = 2
2675 SYSLOG_ACTION_READ_ALL = 3
2676 SYSLOG_ACTION_READ_CLEAR = 4
2677 SYSLOG_ACTION_CLEAR = 5
2678 SYSLOG_ACTION_CONSOLE_OFF = 6
2679 SYSLOG_ACTION_CONSOLE_ON = 7
2680 SYSLOG_ACTION_CONSOLE_LEVEL = 8
2681 SYSLOG_ACTION_SIZE_UNREAD = 9
2682 SYSLOG_ACTION_SIZE_BUFFER = 10
2683)
2684
2685const (
2686 DEVLINK_CMD_UNSPEC = 0x0
2687 DEVLINK_CMD_GET = 0x1
2688 DEVLINK_CMD_SET = 0x2
2689 DEVLINK_CMD_NEW = 0x3
2690 DEVLINK_CMD_DEL = 0x4
2691 DEVLINK_CMD_PORT_GET = 0x5
2692 DEVLINK_CMD_PORT_SET = 0x6
2693 DEVLINK_CMD_PORT_NEW = 0x7
2694 DEVLINK_CMD_PORT_DEL = 0x8
2695 DEVLINK_CMD_PORT_SPLIT = 0x9
2696 DEVLINK_CMD_PORT_UNSPLIT = 0xa
2697 DEVLINK_CMD_SB_GET = 0xb
2698 DEVLINK_CMD_SB_SET = 0xc
2699 DEVLINK_CMD_SB_NEW = 0xd
2700 DEVLINK_CMD_SB_DEL = 0xe
2701 DEVLINK_CMD_SB_POOL_GET = 0xf
2702 DEVLINK_CMD_SB_POOL_SET = 0x10
2703 DEVLINK_CMD_SB_POOL_NEW = 0x11
2704 DEVLINK_CMD_SB_POOL_DEL = 0x12
2705 DEVLINK_CMD_SB_PORT_POOL_GET = 0x13
2706 DEVLINK_CMD_SB_PORT_POOL_SET = 0x14
2707 DEVLINK_CMD_SB_PORT_POOL_NEW = 0x15
2708 DEVLINK_CMD_SB_PORT_POOL_DEL = 0x16
2709 DEVLINK_CMD_SB_TC_POOL_BIND_GET = 0x17
2710 DEVLINK_CMD_SB_TC_POOL_BIND_SET = 0x18
2711 DEVLINK_CMD_SB_TC_POOL_BIND_NEW = 0x19
2712 DEVLINK_CMD_SB_TC_POOL_BIND_DEL = 0x1a
2713 DEVLINK_CMD_SB_OCC_SNAPSHOT = 0x1b
2714 DEVLINK_CMD_SB_OCC_MAX_CLEAR = 0x1c
2715 DEVLINK_CMD_ESWITCH_GET = 0x1d
2716 DEVLINK_CMD_ESWITCH_SET = 0x1e
2717 DEVLINK_CMD_DPIPE_TABLE_GET = 0x1f
2718 DEVLINK_CMD_DPIPE_ENTRIES_GET = 0x20
2719 DEVLINK_CMD_DPIPE_HEADERS_GET = 0x21
2720 DEVLINK_CMD_DPIPE_TABLE_COUNTERS_SET = 0x22
2721 DEVLINK_CMD_MAX = 0x44
2722 DEVLINK_PORT_TYPE_NOTSET = 0x0
2723 DEVLINK_PORT_TYPE_AUTO = 0x1
2724 DEVLINK_PORT_TYPE_ETH = 0x2
2725 DEVLINK_PORT_TYPE_IB = 0x3
2726 DEVLINK_SB_POOL_TYPE_INGRESS = 0x0
2727 DEVLINK_SB_POOL_TYPE_EGRESS = 0x1
2728 DEVLINK_SB_THRESHOLD_TYPE_STATIC = 0x0
2729 DEVLINK_SB_THRESHOLD_TYPE_DYNAMIC = 0x1
2730 DEVLINK_ESWITCH_MODE_LEGACY = 0x0
2731 DEVLINK_ESWITCH_MODE_SWITCHDEV = 0x1
2732 DEVLINK_ESWITCH_INLINE_MODE_NONE = 0x0
2733 DEVLINK_ESWITCH_INLINE_MODE_LINK = 0x1
2734 DEVLINK_ESWITCH_INLINE_MODE_NETWORK = 0x2
2735 DEVLINK_ESWITCH_INLINE_MODE_TRANSPORT = 0x3
2736 DEVLINK_ESWITCH_ENCAP_MODE_NONE = 0x0
2737 DEVLINK_ESWITCH_ENCAP_MODE_BASIC = 0x1
2738 DEVLINK_ATTR_UNSPEC = 0x0
2739 DEVLINK_ATTR_BUS_NAME = 0x1
2740 DEVLINK_ATTR_DEV_NAME = 0x2
2741 DEVLINK_ATTR_PORT_INDEX = 0x3
2742 DEVLINK_ATTR_PORT_TYPE = 0x4
2743 DEVLINK_ATTR_PORT_DESIRED_TYPE = 0x5
2744 DEVLINK_ATTR_PORT_NETDEV_IFINDEX = 0x6
2745 DEVLINK_ATTR_PORT_NETDEV_NAME = 0x7
2746 DEVLINK_ATTR_PORT_IBDEV_NAME = 0x8
2747 DEVLINK_ATTR_PORT_SPLIT_COUNT = 0x9
2748 DEVLINK_ATTR_PORT_SPLIT_GROUP = 0xa
2749 DEVLINK_ATTR_SB_INDEX = 0xb
2750 DEVLINK_ATTR_SB_SIZE = 0xc
2751 DEVLINK_ATTR_SB_INGRESS_POOL_COUNT = 0xd
2752 DEVLINK_ATTR_SB_EGRESS_POOL_COUNT = 0xe
2753 DEVLINK_ATTR_SB_INGRESS_TC_COUNT = 0xf
2754 DEVLINK_ATTR_SB_EGRESS_TC_COUNT = 0x10
2755 DEVLINK_ATTR_SB_POOL_INDEX = 0x11
2756 DEVLINK_ATTR_SB_POOL_TYPE = 0x12
2757 DEVLINK_ATTR_SB_POOL_SIZE = 0x13
2758 DEVLINK_ATTR_SB_POOL_THRESHOLD_TYPE = 0x14
2759 DEVLINK_ATTR_SB_THRESHOLD = 0x15
2760 DEVLINK_ATTR_SB_TC_INDEX = 0x16
2761 DEVLINK_ATTR_SB_OCC_CUR = 0x17
2762 DEVLINK_ATTR_SB_OCC_MAX = 0x18
2763 DEVLINK_ATTR_ESWITCH_MODE = 0x19
2764 DEVLINK_ATTR_ESWITCH_INLINE_MODE = 0x1a
2765 DEVLINK_ATTR_DPIPE_TABLES = 0x1b
2766 DEVLINK_ATTR_DPIPE_TABLE = 0x1c
2767 DEVLINK_ATTR_DPIPE_TABLE_NAME = 0x1d
2768 DEVLINK_ATTR_DPIPE_TABLE_SIZE = 0x1e
2769 DEVLINK_ATTR_DPIPE_TABLE_MATCHES = 0x1f
2770 DEVLINK_ATTR_DPIPE_TABLE_ACTIONS = 0x20
2771 DEVLINK_ATTR_DPIPE_TABLE_COUNTERS_ENABLED = 0x21
2772 DEVLINK_ATTR_DPIPE_ENTRIES = 0x22
2773 DEVLINK_ATTR_DPIPE_ENTRY = 0x23
2774 DEVLINK_ATTR_DPIPE_ENTRY_INDEX = 0x24
2775 DEVLINK_ATTR_DPIPE_ENTRY_MATCH_VALUES = 0x25
2776 DEVLINK_ATTR_DPIPE_ENTRY_ACTION_VALUES = 0x26
2777 DEVLINK_ATTR_DPIPE_ENTRY_COUNTER = 0x27
2778 DEVLINK_ATTR_DPIPE_MATCH = 0x28
2779 DEVLINK_ATTR_DPIPE_MATCH_VALUE = 0x29
2780 DEVLINK_ATTR_DPIPE_MATCH_TYPE = 0x2a
2781 DEVLINK_ATTR_DPIPE_ACTION = 0x2b
2782 DEVLINK_ATTR_DPIPE_ACTION_VALUE = 0x2c
2783 DEVLINK_ATTR_DPIPE_ACTION_TYPE = 0x2d
2784 DEVLINK_ATTR_DPIPE_VALUE = 0x2e
2785 DEVLINK_ATTR_DPIPE_VALUE_MASK = 0x2f
2786 DEVLINK_ATTR_DPIPE_VALUE_MAPPING = 0x30
2787 DEVLINK_ATTR_DPIPE_HEADERS = 0x31
2788 DEVLINK_ATTR_DPIPE_HEADER = 0x32
2789 DEVLINK_ATTR_DPIPE_HEADER_NAME = 0x33
2790 DEVLINK_ATTR_DPIPE_HEADER_ID = 0x34
2791 DEVLINK_ATTR_DPIPE_HEADER_FIELDS = 0x35
2792 DEVLINK_ATTR_DPIPE_HEADER_GLOBAL = 0x36
2793 DEVLINK_ATTR_DPIPE_HEADER_INDEX = 0x37
2794 DEVLINK_ATTR_DPIPE_FIELD = 0x38
2795 DEVLINK_ATTR_DPIPE_FIELD_NAME = 0x39
2796 DEVLINK_ATTR_DPIPE_FIELD_ID = 0x3a
2797 DEVLINK_ATTR_DPIPE_FIELD_BITWIDTH = 0x3b
2798 DEVLINK_ATTR_DPIPE_FIELD_MAPPING_TYPE = 0x3c
2799 DEVLINK_ATTR_PAD = 0x3d
2800 DEVLINK_ATTR_ESWITCH_ENCAP_MODE = 0x3e
2801 DEVLINK_ATTR_MAX = 0x8c
2802 DEVLINK_DPIPE_FIELD_MAPPING_TYPE_NONE = 0x0
2803 DEVLINK_DPIPE_FIELD_MAPPING_TYPE_IFINDEX = 0x1
2804 DEVLINK_DPIPE_MATCH_TYPE_FIELD_EXACT = 0x0
2805 DEVLINK_DPIPE_ACTION_TYPE_FIELD_MODIFY = 0x0
2806 DEVLINK_DPIPE_FIELD_ETHERNET_DST_MAC = 0x0
2807 DEVLINK_DPIPE_FIELD_IPV4_DST_IP = 0x0
2808 DEVLINK_DPIPE_FIELD_IPV6_DST_IP = 0x0
2809 DEVLINK_DPIPE_HEADER_ETHERNET = 0x0
2810 DEVLINK_DPIPE_HEADER_IPV4 = 0x1
2811 DEVLINK_DPIPE_HEADER_IPV6 = 0x2
2812)
diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_riscv64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_riscv64.go
index ccea3e6..81a5dc1 100644
--- a/vendor/golang.org/x/sys/unix/ztypes_linux_riscv64.go
+++ b/vendor/golang.org/x/sys/unix/ztypes_linux_riscv64.go
@@ -180,6 +180,55 @@ type FscryptKey struct {
180 Size uint32 180 Size uint32
181} 181}
182 182
183type FscryptPolicyV1 struct {
184 Version uint8
185 Contents_encryption_mode uint8
186 Filenames_encryption_mode uint8
187 Flags uint8
188 Master_key_descriptor [8]uint8
189}
190
191type FscryptPolicyV2 struct {
192 Version uint8
193 Contents_encryption_mode uint8
194 Filenames_encryption_mode uint8
195 Flags uint8
196 _ [4]uint8
197 Master_key_identifier [16]uint8
198}
199
200type FscryptGetPolicyExArg struct {
201 Size uint64
202 Policy [24]byte
203}
204
205type FscryptKeySpecifier struct {
206 Type uint32
207 _ uint32
208 U [32]byte
209}
210
211type FscryptAddKeyArg struct {
212 Key_spec FscryptKeySpecifier
213 Raw_size uint32
214 _ [9]uint32
215}
216
217type FscryptRemoveKeyArg struct {
218 Key_spec FscryptKeySpecifier
219 Removal_status_flags uint32
220 _ [5]uint32
221}
222
223type FscryptGetKeyStatusArg struct {
224 Key_spec FscryptKeySpecifier
225 _ [6]uint32
226 Status uint32
227 Status_flags uint32
228 User_count uint32
229 _ [13]uint32
230}
231
183type KeyctlDHParams struct { 232type KeyctlDHParams struct {
184 Private int32 233 Private int32
185 Prime int32 234 Prime int32
@@ -257,7 +306,7 @@ type RawSockaddrRFCOMM struct {
257type RawSockaddrCAN struct { 306type RawSockaddrCAN struct {
258 Family uint16 307 Family uint16
259 Ifindex int32 308 Ifindex int32
260 Addr [8]byte 309 Addr [16]byte
261} 310}
262 311
263type RawSockaddrALG struct { 312type RawSockaddrALG struct {
@@ -286,6 +335,13 @@ type RawSockaddrXDP struct {
286 335
287type RawSockaddrPPPoX [0x1e]byte 336type RawSockaddrPPPoX [0x1e]byte
288 337
338type RawSockaddrTIPC struct {
339 Family uint16
340 Addrtype uint8
341 Scope int8
342 Addr [12]byte
343}
344
289type RawSockaddr struct { 345type RawSockaddr struct {
290 Family uint16 346 Family uint16
291 Data [14]uint8 347 Data [14]uint8
@@ -422,11 +478,12 @@ const (
422 SizeofSockaddrHCI = 0x6 478 SizeofSockaddrHCI = 0x6
423 SizeofSockaddrL2 = 0xe 479 SizeofSockaddrL2 = 0xe
424 SizeofSockaddrRFCOMM = 0xa 480 SizeofSockaddrRFCOMM = 0xa
425 SizeofSockaddrCAN = 0x10 481 SizeofSockaddrCAN = 0x18
426 SizeofSockaddrALG = 0x58 482 SizeofSockaddrALG = 0x58
427 SizeofSockaddrVM = 0x10 483 SizeofSockaddrVM = 0x10
428 SizeofSockaddrXDP = 0x10 484 SizeofSockaddrXDP = 0x10
429 SizeofSockaddrPPPoX = 0x1e 485 SizeofSockaddrPPPoX = 0x1e
486 SizeofSockaddrTIPC = 0x10
430 SizeofLinger = 0x8 487 SizeofLinger = 0x8
431 SizeofIovec = 0x10 488 SizeofIovec = 0x10
432 SizeofIPMreq = 0x8 489 SizeofIPMreq = 0x8
@@ -537,7 +594,7 @@ const (
537 IFLA_NEW_IFINDEX = 0x31 594 IFLA_NEW_IFINDEX = 0x31
538 IFLA_MIN_MTU = 0x32 595 IFLA_MIN_MTU = 0x32
539 IFLA_MAX_MTU = 0x33 596 IFLA_MAX_MTU = 0x33
540 IFLA_MAX = 0x33 597 IFLA_MAX = 0x35
541 IFLA_INFO_KIND = 0x1 598 IFLA_INFO_KIND = 0x1
542 IFLA_INFO_DATA = 0x2 599 IFLA_INFO_DATA = 0x2
543 IFLA_INFO_XSTATS = 0x3 600 IFLA_INFO_XSTATS = 0x3
@@ -593,22 +650,6 @@ const (
593 RTN_THROW = 0x9 650 RTN_THROW = 0x9
594 RTN_NAT = 0xa 651 RTN_NAT = 0xa
595 RTN_XRESOLVE = 0xb 652 RTN_XRESOLVE = 0xb
596 RTNLGRP_NONE = 0x0
597 RTNLGRP_LINK = 0x1
598 RTNLGRP_NOTIFY = 0x2
599 RTNLGRP_NEIGH = 0x3
600 RTNLGRP_TC = 0x4
601 RTNLGRP_IPV4_IFADDR = 0x5
602 RTNLGRP_IPV4_MROUTE = 0x6
603 RTNLGRP_IPV4_ROUTE = 0x7
604 RTNLGRP_IPV4_RULE = 0x8
605 RTNLGRP_IPV6_IFADDR = 0x9
606 RTNLGRP_IPV6_MROUTE = 0xa
607 RTNLGRP_IPV6_ROUTE = 0xb
608 RTNLGRP_IPV6_IFINFO = 0xc
609 RTNLGRP_IPV6_PREFIX = 0x12
610 RTNLGRP_IPV6_RULE = 0x13
611 RTNLGRP_ND_USEROPT = 0x14
612 SizeofNlMsghdr = 0x10 653 SizeofNlMsghdr = 0x10
613 SizeofNlMsgerr = 0x14 654 SizeofNlMsgerr = 0x14
614 SizeofRtGenmsg = 0x1 655 SizeofRtGenmsg = 0x1
@@ -616,6 +657,7 @@ const (
616 SizeofRtAttr = 0x4 657 SizeofRtAttr = 0x4
617 SizeofIfInfomsg = 0x10 658 SizeofIfInfomsg = 0x10
618 SizeofIfAddrmsg = 0x8 659 SizeofIfAddrmsg = 0x8
660 SizeofIfaCacheinfo = 0x10
619 SizeofRtMsg = 0xc 661 SizeofRtMsg = 0xc
620 SizeofRtNexthop = 0x8 662 SizeofRtNexthop = 0x8
621 SizeofNdUseroptmsg = 0x10 663 SizeofNdUseroptmsg = 0x10
@@ -666,6 +708,13 @@ type IfAddrmsg struct {
666 Index uint32 708 Index uint32
667} 709}
668 710
711type IfaCacheinfo struct {
712 Prefered uint32
713 Valid uint32
714 Cstamp uint32
715 Tstamp uint32
716}
717
669type RtMsg struct { 718type RtMsg struct {
670 Family uint8 719 Family uint8
671 Dst_len uint8 720 Dst_len uint8
@@ -2061,6 +2110,7 @@ type XDPRingOffset struct {
2061 Producer uint64 2110 Producer uint64
2062 Consumer uint64 2111 Consumer uint64
2063 Desc uint64 2112 Desc uint64
2113 Flags uint64
2064} 2114}
2065 2115
2066type XDPMmapOffsets struct { 2116type XDPMmapOffsets struct {
@@ -2075,6 +2125,8 @@ type XDPUmemReg struct {
2075 Len uint64 2125 Len uint64
2076 Size uint32 2126 Size uint32
2077 Headroom uint32 2127 Headroom uint32
2128 Flags uint32
2129 _ [4]byte
2078} 2130}
2079 2131
2080type XDPStatistics struct { 2132type XDPStatistics struct {
@@ -2488,6 +2540,42 @@ const (
2488 BPF_FD_TYPE_URETPROBE = 0x5 2540 BPF_FD_TYPE_URETPROBE = 0x5
2489) 2541)
2490 2542
2543const (
2544 RTNLGRP_NONE = 0x0
2545 RTNLGRP_LINK = 0x1
2546 RTNLGRP_NOTIFY = 0x2
2547 RTNLGRP_NEIGH = 0x3
2548 RTNLGRP_TC = 0x4
2549 RTNLGRP_IPV4_IFADDR = 0x5
2550 RTNLGRP_IPV4_MROUTE = 0x6
2551 RTNLGRP_IPV4_ROUTE = 0x7
2552 RTNLGRP_IPV4_RULE = 0x8
2553 RTNLGRP_IPV6_IFADDR = 0x9
2554 RTNLGRP_IPV6_MROUTE = 0xa
2555 RTNLGRP_IPV6_ROUTE = 0xb
2556 RTNLGRP_IPV6_IFINFO = 0xc
2557 RTNLGRP_DECnet_IFADDR = 0xd
2558 RTNLGRP_NOP2 = 0xe
2559 RTNLGRP_DECnet_ROUTE = 0xf
2560 RTNLGRP_DECnet_RULE = 0x10
2561 RTNLGRP_NOP4 = 0x11
2562 RTNLGRP_IPV6_PREFIX = 0x12
2563 RTNLGRP_IPV6_RULE = 0x13
2564 RTNLGRP_ND_USEROPT = 0x14
2565 RTNLGRP_PHONET_IFADDR = 0x15
2566 RTNLGRP_PHONET_ROUTE = 0x16
2567 RTNLGRP_DCB = 0x17
2568 RTNLGRP_IPV4_NETCONF = 0x18
2569 RTNLGRP_IPV6_NETCONF = 0x19
2570 RTNLGRP_MDB = 0x1a
2571 RTNLGRP_MPLS_ROUTE = 0x1b
2572 RTNLGRP_NSID = 0x1c
2573 RTNLGRP_MPLS_NETCONF = 0x1d
2574 RTNLGRP_IPV4_MROUTE_R = 0x1e
2575 RTNLGRP_IPV6_MROUTE_R = 0x1f
2576 RTNLGRP_NEXTHOP = 0x20
2577)
2578
2491type CapUserHeader struct { 2579type CapUserHeader struct {
2492 Version uint32 2580 Version uint32
2493 Pid int32 2581 Pid int32
@@ -2542,3 +2630,201 @@ type LoopInfo64 struct {
2542 Encrypt_key [32]uint8 2630 Encrypt_key [32]uint8
2543 Init [2]uint64 2631 Init [2]uint64
2544} 2632}
2633
2634type TIPCSocketAddr struct {
2635 Ref uint32
2636 Node uint32
2637}
2638
2639type TIPCServiceRange struct {
2640 Type uint32
2641 Lower uint32
2642 Upper uint32
2643}
2644
2645type TIPCServiceName struct {
2646 Type uint32
2647 Instance uint32
2648 Domain uint32
2649}
2650
2651type TIPCSubscr struct {
2652 Seq TIPCServiceRange
2653 Timeout uint32
2654 Filter uint32
2655 Handle [8]uint8
2656}
2657
2658type TIPCEvent struct {
2659 Event uint32
2660 Lower uint32
2661 Upper uint32
2662 Port TIPCSocketAddr
2663 S TIPCSubscr
2664}
2665
2666type TIPCGroupReq struct {
2667 Type uint32
2668 Instance uint32
2669 Scope uint32
2670 Flags uint32
2671}
2672
2673type TIPCSIOCLNReq struct {
2674 Peer uint32
2675 Id uint32
2676 Linkname [68]uint8
2677}
2678
2679type TIPCSIOCNodeIDReq struct {
2680 Peer uint32
2681 Id [16]uint8
2682}
2683
2684const (
2685 TIPC_CLUSTER_SCOPE = 0x2
2686 TIPC_NODE_SCOPE = 0x3
2687)
2688
2689const (
2690 SYSLOG_ACTION_CLOSE = 0
2691 SYSLOG_ACTION_OPEN = 1
2692 SYSLOG_ACTION_READ = 2
2693 SYSLOG_ACTION_READ_ALL = 3
2694 SYSLOG_ACTION_READ_CLEAR = 4
2695 SYSLOG_ACTION_CLEAR = 5
2696 SYSLOG_ACTION_CONSOLE_OFF = 6
2697 SYSLOG_ACTION_CONSOLE_ON = 7
2698 SYSLOG_ACTION_CONSOLE_LEVEL = 8
2699 SYSLOG_ACTION_SIZE_UNREAD = 9
2700 SYSLOG_ACTION_SIZE_BUFFER = 10
2701)
2702
2703const (
2704 DEVLINK_CMD_UNSPEC = 0x0
2705 DEVLINK_CMD_GET = 0x1
2706 DEVLINK_CMD_SET = 0x2
2707 DEVLINK_CMD_NEW = 0x3
2708 DEVLINK_CMD_DEL = 0x4
2709 DEVLINK_CMD_PORT_GET = 0x5
2710 DEVLINK_CMD_PORT_SET = 0x6
2711 DEVLINK_CMD_PORT_NEW = 0x7
2712 DEVLINK_CMD_PORT_DEL = 0x8
2713 DEVLINK_CMD_PORT_SPLIT = 0x9
2714 DEVLINK_CMD_PORT_UNSPLIT = 0xa
2715 DEVLINK_CMD_SB_GET = 0xb
2716 DEVLINK_CMD_SB_SET = 0xc
2717 DEVLINK_CMD_SB_NEW = 0xd
2718 DEVLINK_CMD_SB_DEL = 0xe
2719 DEVLINK_CMD_SB_POOL_GET = 0xf
2720 DEVLINK_CMD_SB_POOL_SET = 0x10
2721 DEVLINK_CMD_SB_POOL_NEW = 0x11
2722 DEVLINK_CMD_SB_POOL_DEL = 0x12
2723 DEVLINK_CMD_SB_PORT_POOL_GET = 0x13
2724 DEVLINK_CMD_SB_PORT_POOL_SET = 0x14
2725 DEVLINK_CMD_SB_PORT_POOL_NEW = 0x15
2726 DEVLINK_CMD_SB_PORT_POOL_DEL = 0x16
2727 DEVLINK_CMD_SB_TC_POOL_BIND_GET = 0x17
2728 DEVLINK_CMD_SB_TC_POOL_BIND_SET = 0x18
2729 DEVLINK_CMD_SB_TC_POOL_BIND_NEW = 0x19
2730 DEVLINK_CMD_SB_TC_POOL_BIND_DEL = 0x1a
2731 DEVLINK_CMD_SB_OCC_SNAPSHOT = 0x1b
2732 DEVLINK_CMD_SB_OCC_MAX_CLEAR = 0x1c
2733 DEVLINK_CMD_ESWITCH_GET = 0x1d
2734 DEVLINK_CMD_ESWITCH_SET = 0x1e
2735 DEVLINK_CMD_DPIPE_TABLE_GET = 0x1f
2736 DEVLINK_CMD_DPIPE_ENTRIES_GET = 0x20
2737 DEVLINK_CMD_DPIPE_HEADERS_GET = 0x21
2738 DEVLINK_CMD_DPIPE_TABLE_COUNTERS_SET = 0x22
2739 DEVLINK_CMD_MAX = 0x44
2740 DEVLINK_PORT_TYPE_NOTSET = 0x0
2741 DEVLINK_PORT_TYPE_AUTO = 0x1
2742 DEVLINK_PORT_TYPE_ETH = 0x2
2743 DEVLINK_PORT_TYPE_IB = 0x3
2744 DEVLINK_SB_POOL_TYPE_INGRESS = 0x0
2745 DEVLINK_SB_POOL_TYPE_EGRESS = 0x1
2746 DEVLINK_SB_THRESHOLD_TYPE_STATIC = 0x0
2747 DEVLINK_SB_THRESHOLD_TYPE_DYNAMIC = 0x1
2748 DEVLINK_ESWITCH_MODE_LEGACY = 0x0
2749 DEVLINK_ESWITCH_MODE_SWITCHDEV = 0x1
2750 DEVLINK_ESWITCH_INLINE_MODE_NONE = 0x0
2751 DEVLINK_ESWITCH_INLINE_MODE_LINK = 0x1
2752 DEVLINK_ESWITCH_INLINE_MODE_NETWORK = 0x2
2753 DEVLINK_ESWITCH_INLINE_MODE_TRANSPORT = 0x3
2754 DEVLINK_ESWITCH_ENCAP_MODE_NONE = 0x0
2755 DEVLINK_ESWITCH_ENCAP_MODE_BASIC = 0x1
2756 DEVLINK_ATTR_UNSPEC = 0x0
2757 DEVLINK_ATTR_BUS_NAME = 0x1
2758 DEVLINK_ATTR_DEV_NAME = 0x2
2759 DEVLINK_ATTR_PORT_INDEX = 0x3
2760 DEVLINK_ATTR_PORT_TYPE = 0x4
2761 DEVLINK_ATTR_PORT_DESIRED_TYPE = 0x5
2762 DEVLINK_ATTR_PORT_NETDEV_IFINDEX = 0x6
2763 DEVLINK_ATTR_PORT_NETDEV_NAME = 0x7
2764 DEVLINK_ATTR_PORT_IBDEV_NAME = 0x8
2765 DEVLINK_ATTR_PORT_SPLIT_COUNT = 0x9
2766 DEVLINK_ATTR_PORT_SPLIT_GROUP = 0xa
2767 DEVLINK_ATTR_SB_INDEX = 0xb
2768 DEVLINK_ATTR_SB_SIZE = 0xc
2769 DEVLINK_ATTR_SB_INGRESS_POOL_COUNT = 0xd
2770 DEVLINK_ATTR_SB_EGRESS_POOL_COUNT = 0xe
2771 DEVLINK_ATTR_SB_INGRESS_TC_COUNT = 0xf
2772 DEVLINK_ATTR_SB_EGRESS_TC_COUNT = 0x10
2773 DEVLINK_ATTR_SB_POOL_INDEX = 0x11
2774 DEVLINK_ATTR_SB_POOL_TYPE = 0x12
2775 DEVLINK_ATTR_SB_POOL_SIZE = 0x13
2776 DEVLINK_ATTR_SB_POOL_THRESHOLD_TYPE = 0x14
2777 DEVLINK_ATTR_SB_THRESHOLD = 0x15
2778 DEVLINK_ATTR_SB_TC_INDEX = 0x16
2779 DEVLINK_ATTR_SB_OCC_CUR = 0x17
2780 DEVLINK_ATTR_SB_OCC_MAX = 0x18
2781 DEVLINK_ATTR_ESWITCH_MODE = 0x19
2782 DEVLINK_ATTR_ESWITCH_INLINE_MODE = 0x1a
2783 DEVLINK_ATTR_DPIPE_TABLES = 0x1b
2784 DEVLINK_ATTR_DPIPE_TABLE = 0x1c
2785 DEVLINK_ATTR_DPIPE_TABLE_NAME = 0x1d
2786 DEVLINK_ATTR_DPIPE_TABLE_SIZE = 0x1e
2787 DEVLINK_ATTR_DPIPE_TABLE_MATCHES = 0x1f
2788 DEVLINK_ATTR_DPIPE_TABLE_ACTIONS = 0x20
2789 DEVLINK_ATTR_DPIPE_TABLE_COUNTERS_ENABLED = 0x21
2790 DEVLINK_ATTR_DPIPE_ENTRIES = 0x22
2791 DEVLINK_ATTR_DPIPE_ENTRY = 0x23
2792 DEVLINK_ATTR_DPIPE_ENTRY_INDEX = 0x24
2793 DEVLINK_ATTR_DPIPE_ENTRY_MATCH_VALUES = 0x25
2794 DEVLINK_ATTR_DPIPE_ENTRY_ACTION_VALUES = 0x26
2795 DEVLINK_ATTR_DPIPE_ENTRY_COUNTER = 0x27
2796 DEVLINK_ATTR_DPIPE_MATCH = 0x28
2797 DEVLINK_ATTR_DPIPE_MATCH_VALUE = 0x29
2798 DEVLINK_ATTR_DPIPE_MATCH_TYPE = 0x2a
2799 DEVLINK_ATTR_DPIPE_ACTION = 0x2b
2800 DEVLINK_ATTR_DPIPE_ACTION_VALUE = 0x2c
2801 DEVLINK_ATTR_DPIPE_ACTION_TYPE = 0x2d
2802 DEVLINK_ATTR_DPIPE_VALUE = 0x2e
2803 DEVLINK_ATTR_DPIPE_VALUE_MASK = 0x2f
2804 DEVLINK_ATTR_DPIPE_VALUE_MAPPING = 0x30
2805 DEVLINK_ATTR_DPIPE_HEADERS = 0x31
2806 DEVLINK_ATTR_DPIPE_HEADER = 0x32
2807 DEVLINK_ATTR_DPIPE_HEADER_NAME = 0x33
2808 DEVLINK_ATTR_DPIPE_HEADER_ID = 0x34
2809 DEVLINK_ATTR_DPIPE_HEADER_FIELDS = 0x35
2810 DEVLINK_ATTR_DPIPE_HEADER_GLOBAL = 0x36
2811 DEVLINK_ATTR_DPIPE_HEADER_INDEX = 0x37
2812 DEVLINK_ATTR_DPIPE_FIELD = 0x38
2813 DEVLINK_ATTR_DPIPE_FIELD_NAME = 0x39
2814 DEVLINK_ATTR_DPIPE_FIELD_ID = 0x3a
2815 DEVLINK_ATTR_DPIPE_FIELD_BITWIDTH = 0x3b
2816 DEVLINK_ATTR_DPIPE_FIELD_MAPPING_TYPE = 0x3c
2817 DEVLINK_ATTR_PAD = 0x3d
2818 DEVLINK_ATTR_ESWITCH_ENCAP_MODE = 0x3e
2819 DEVLINK_ATTR_MAX = 0x8c
2820 DEVLINK_DPIPE_FIELD_MAPPING_TYPE_NONE = 0x0
2821 DEVLINK_DPIPE_FIELD_MAPPING_TYPE_IFINDEX = 0x1
2822 DEVLINK_DPIPE_MATCH_TYPE_FIELD_EXACT = 0x0
2823 DEVLINK_DPIPE_ACTION_TYPE_FIELD_MODIFY = 0x0
2824 DEVLINK_DPIPE_FIELD_ETHERNET_DST_MAC = 0x0
2825 DEVLINK_DPIPE_FIELD_IPV4_DST_IP = 0x0
2826 DEVLINK_DPIPE_FIELD_IPV6_DST_IP = 0x0
2827 DEVLINK_DPIPE_HEADER_ETHERNET = 0x0
2828 DEVLINK_DPIPE_HEADER_IPV4 = 0x1
2829 DEVLINK_DPIPE_HEADER_IPV6 = 0x2
2830)
diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_s390x.go b/vendor/golang.org/x/sys/unix/ztypes_linux_s390x.go
index d8fc0bc..ae765d4 100644
--- a/vendor/golang.org/x/sys/unix/ztypes_linux_s390x.go
+++ b/vendor/golang.org/x/sys/unix/ztypes_linux_s390x.go
@@ -179,6 +179,55 @@ type FscryptKey struct {
179 Size uint32 179 Size uint32
180} 180}
181 181
182type FscryptPolicyV1 struct {
183 Version uint8
184 Contents_encryption_mode uint8
185 Filenames_encryption_mode uint8
186 Flags uint8
187 Master_key_descriptor [8]uint8
188}
189
190type FscryptPolicyV2 struct {
191 Version uint8
192 Contents_encryption_mode uint8
193 Filenames_encryption_mode uint8
194 Flags uint8
195 _ [4]uint8
196 Master_key_identifier [16]uint8
197}
198
199type FscryptGetPolicyExArg struct {
200 Size uint64
201 Policy [24]byte
202}
203
204type FscryptKeySpecifier struct {
205 Type uint32
206 _ uint32
207 U [32]byte
208}
209
210type FscryptAddKeyArg struct {
211 Key_spec FscryptKeySpecifier
212 Raw_size uint32
213 _ [9]uint32
214}
215
216type FscryptRemoveKeyArg struct {
217 Key_spec FscryptKeySpecifier
218 Removal_status_flags uint32
219 _ [5]uint32
220}
221
222type FscryptGetKeyStatusArg struct {
223 Key_spec FscryptKeySpecifier
224 _ [6]uint32
225 Status uint32
226 Status_flags uint32
227 User_count uint32
228 _ [13]uint32
229}
230
182type KeyctlDHParams struct { 231type KeyctlDHParams struct {
183 Private int32 232 Private int32
184 Prime int32 233 Prime int32
@@ -256,7 +305,7 @@ type RawSockaddrRFCOMM struct {
256type RawSockaddrCAN struct { 305type RawSockaddrCAN struct {
257 Family uint16 306 Family uint16
258 Ifindex int32 307 Ifindex int32
259 Addr [8]byte 308 Addr [16]byte
260} 309}
261 310
262type RawSockaddrALG struct { 311type RawSockaddrALG struct {
@@ -285,6 +334,13 @@ type RawSockaddrXDP struct {
285 334
286type RawSockaddrPPPoX [0x1e]byte 335type RawSockaddrPPPoX [0x1e]byte
287 336
337type RawSockaddrTIPC struct {
338 Family uint16
339 Addrtype uint8
340 Scope int8
341 Addr [12]byte
342}
343
288type RawSockaddr struct { 344type RawSockaddr struct {
289 Family uint16 345 Family uint16
290 Data [14]int8 346 Data [14]int8
@@ -421,11 +477,12 @@ const (
421 SizeofSockaddrHCI = 0x6 477 SizeofSockaddrHCI = 0x6
422 SizeofSockaddrL2 = 0xe 478 SizeofSockaddrL2 = 0xe
423 SizeofSockaddrRFCOMM = 0xa 479 SizeofSockaddrRFCOMM = 0xa
424 SizeofSockaddrCAN = 0x10 480 SizeofSockaddrCAN = 0x18
425 SizeofSockaddrALG = 0x58 481 SizeofSockaddrALG = 0x58
426 SizeofSockaddrVM = 0x10 482 SizeofSockaddrVM = 0x10
427 SizeofSockaddrXDP = 0x10 483 SizeofSockaddrXDP = 0x10
428 SizeofSockaddrPPPoX = 0x1e 484 SizeofSockaddrPPPoX = 0x1e
485 SizeofSockaddrTIPC = 0x10
429 SizeofLinger = 0x8 486 SizeofLinger = 0x8
430 SizeofIovec = 0x10 487 SizeofIovec = 0x10
431 SizeofIPMreq = 0x8 488 SizeofIPMreq = 0x8
@@ -536,7 +593,7 @@ const (
536 IFLA_NEW_IFINDEX = 0x31 593 IFLA_NEW_IFINDEX = 0x31
537 IFLA_MIN_MTU = 0x32 594 IFLA_MIN_MTU = 0x32
538 IFLA_MAX_MTU = 0x33 595 IFLA_MAX_MTU = 0x33
539 IFLA_MAX = 0x33 596 IFLA_MAX = 0x35
540 IFLA_INFO_KIND = 0x1 597 IFLA_INFO_KIND = 0x1
541 IFLA_INFO_DATA = 0x2 598 IFLA_INFO_DATA = 0x2
542 IFLA_INFO_XSTATS = 0x3 599 IFLA_INFO_XSTATS = 0x3
@@ -592,22 +649,6 @@ const (
592 RTN_THROW = 0x9 649 RTN_THROW = 0x9
593 RTN_NAT = 0xa 650 RTN_NAT = 0xa
594 RTN_XRESOLVE = 0xb 651 RTN_XRESOLVE = 0xb
595 RTNLGRP_NONE = 0x0
596 RTNLGRP_LINK = 0x1
597 RTNLGRP_NOTIFY = 0x2
598 RTNLGRP_NEIGH = 0x3
599 RTNLGRP_TC = 0x4
600 RTNLGRP_IPV4_IFADDR = 0x5
601 RTNLGRP_IPV4_MROUTE = 0x6
602 RTNLGRP_IPV4_ROUTE = 0x7
603 RTNLGRP_IPV4_RULE = 0x8
604 RTNLGRP_IPV6_IFADDR = 0x9
605 RTNLGRP_IPV6_MROUTE = 0xa
606 RTNLGRP_IPV6_ROUTE = 0xb
607 RTNLGRP_IPV6_IFINFO = 0xc
608 RTNLGRP_IPV6_PREFIX = 0x12
609 RTNLGRP_IPV6_RULE = 0x13
610 RTNLGRP_ND_USEROPT = 0x14
611 SizeofNlMsghdr = 0x10 652 SizeofNlMsghdr = 0x10
612 SizeofNlMsgerr = 0x14 653 SizeofNlMsgerr = 0x14
613 SizeofRtGenmsg = 0x1 654 SizeofRtGenmsg = 0x1
@@ -615,6 +656,7 @@ const (
615 SizeofRtAttr = 0x4 656 SizeofRtAttr = 0x4
616 SizeofIfInfomsg = 0x10 657 SizeofIfInfomsg = 0x10
617 SizeofIfAddrmsg = 0x8 658 SizeofIfAddrmsg = 0x8
659 SizeofIfaCacheinfo = 0x10
618 SizeofRtMsg = 0xc 660 SizeofRtMsg = 0xc
619 SizeofRtNexthop = 0x8 661 SizeofRtNexthop = 0x8
620 SizeofNdUseroptmsg = 0x10 662 SizeofNdUseroptmsg = 0x10
@@ -665,6 +707,13 @@ type IfAddrmsg struct {
665 Index uint32 707 Index uint32
666} 708}
667 709
710type IfaCacheinfo struct {
711 Prefered uint32
712 Valid uint32
713 Cstamp uint32
714 Tstamp uint32
715}
716
668type RtMsg struct { 717type RtMsg struct {
669 Family uint8 718 Family uint8
670 Dst_len uint8 719 Dst_len uint8
@@ -2057,6 +2106,7 @@ type XDPRingOffset struct {
2057 Producer uint64 2106 Producer uint64
2058 Consumer uint64 2107 Consumer uint64
2059 Desc uint64 2108 Desc uint64
2109 Flags uint64
2060} 2110}
2061 2111
2062type XDPMmapOffsets struct { 2112type XDPMmapOffsets struct {
@@ -2071,6 +2121,8 @@ type XDPUmemReg struct {
2071 Len uint64 2121 Len uint64
2072 Size uint32 2122 Size uint32
2073 Headroom uint32 2123 Headroom uint32
2124 Flags uint32
2125 _ [4]byte
2074} 2126}
2075 2127
2076type XDPStatistics struct { 2128type XDPStatistics struct {
@@ -2484,6 +2536,42 @@ const (
2484 BPF_FD_TYPE_URETPROBE = 0x5 2536 BPF_FD_TYPE_URETPROBE = 0x5
2485) 2537)
2486 2538
2539const (
2540 RTNLGRP_NONE = 0x0
2541 RTNLGRP_LINK = 0x1
2542 RTNLGRP_NOTIFY = 0x2
2543 RTNLGRP_NEIGH = 0x3
2544 RTNLGRP_TC = 0x4
2545 RTNLGRP_IPV4_IFADDR = 0x5
2546 RTNLGRP_IPV4_MROUTE = 0x6
2547 RTNLGRP_IPV4_ROUTE = 0x7
2548 RTNLGRP_IPV4_RULE = 0x8
2549 RTNLGRP_IPV6_IFADDR = 0x9
2550 RTNLGRP_IPV6_MROUTE = 0xa
2551 RTNLGRP_IPV6_ROUTE = 0xb
2552 RTNLGRP_IPV6_IFINFO = 0xc
2553 RTNLGRP_DECnet_IFADDR = 0xd
2554 RTNLGRP_NOP2 = 0xe
2555 RTNLGRP_DECnet_ROUTE = 0xf
2556 RTNLGRP_DECnet_RULE = 0x10
2557 RTNLGRP_NOP4 = 0x11
2558 RTNLGRP_IPV6_PREFIX = 0x12
2559 RTNLGRP_IPV6_RULE = 0x13
2560 RTNLGRP_ND_USEROPT = 0x14
2561 RTNLGRP_PHONET_IFADDR = 0x15
2562 RTNLGRP_PHONET_ROUTE = 0x16
2563 RTNLGRP_DCB = 0x17
2564 RTNLGRP_IPV4_NETCONF = 0x18
2565 RTNLGRP_IPV6_NETCONF = 0x19
2566 RTNLGRP_MDB = 0x1a
2567 RTNLGRP_MPLS_ROUTE = 0x1b
2568 RTNLGRP_NSID = 0x1c
2569 RTNLGRP_MPLS_NETCONF = 0x1d
2570 RTNLGRP_IPV4_MROUTE_R = 0x1e
2571 RTNLGRP_IPV6_MROUTE_R = 0x1f
2572 RTNLGRP_NEXTHOP = 0x20
2573)
2574
2487type CapUserHeader struct { 2575type CapUserHeader struct {
2488 Version uint32 2576 Version uint32
2489 Pid int32 2577 Pid int32
@@ -2538,3 +2626,201 @@ type LoopInfo64 struct {
2538 Encrypt_key [32]uint8 2626 Encrypt_key [32]uint8
2539 Init [2]uint64 2627 Init [2]uint64
2540} 2628}
2629
2630type TIPCSocketAddr struct {
2631 Ref uint32
2632 Node uint32
2633}
2634
2635type TIPCServiceRange struct {
2636 Type uint32
2637 Lower uint32
2638 Upper uint32
2639}
2640
2641type TIPCServiceName struct {
2642 Type uint32
2643 Instance uint32
2644 Domain uint32
2645}
2646
2647type TIPCSubscr struct {
2648 Seq TIPCServiceRange
2649 Timeout uint32
2650 Filter uint32
2651 Handle [8]int8
2652}
2653
2654type TIPCEvent struct {
2655 Event uint32
2656 Lower uint32
2657 Upper uint32
2658 Port TIPCSocketAddr
2659 S TIPCSubscr
2660}
2661
2662type TIPCGroupReq struct {
2663 Type uint32
2664 Instance uint32
2665 Scope uint32
2666 Flags uint32
2667}
2668
2669type TIPCSIOCLNReq struct {
2670 Peer uint32
2671 Id uint32
2672 Linkname [68]int8
2673}
2674
2675type TIPCSIOCNodeIDReq struct {
2676 Peer uint32
2677 Id [16]int8
2678}
2679
2680const (
2681 TIPC_CLUSTER_SCOPE = 0x2
2682 TIPC_NODE_SCOPE = 0x3
2683)
2684
2685const (
2686 SYSLOG_ACTION_CLOSE = 0
2687 SYSLOG_ACTION_OPEN = 1
2688 SYSLOG_ACTION_READ = 2
2689 SYSLOG_ACTION_READ_ALL = 3
2690 SYSLOG_ACTION_READ_CLEAR = 4
2691 SYSLOG_ACTION_CLEAR = 5
2692 SYSLOG_ACTION_CONSOLE_OFF = 6
2693 SYSLOG_ACTION_CONSOLE_ON = 7
2694 SYSLOG_ACTION_CONSOLE_LEVEL = 8
2695 SYSLOG_ACTION_SIZE_UNREAD = 9
2696 SYSLOG_ACTION_SIZE_BUFFER = 10
2697)
2698
2699const (
2700 DEVLINK_CMD_UNSPEC = 0x0
2701 DEVLINK_CMD_GET = 0x1
2702 DEVLINK_CMD_SET = 0x2
2703 DEVLINK_CMD_NEW = 0x3
2704 DEVLINK_CMD_DEL = 0x4
2705 DEVLINK_CMD_PORT_GET = 0x5
2706 DEVLINK_CMD_PORT_SET = 0x6
2707 DEVLINK_CMD_PORT_NEW = 0x7
2708 DEVLINK_CMD_PORT_DEL = 0x8
2709 DEVLINK_CMD_PORT_SPLIT = 0x9
2710 DEVLINK_CMD_PORT_UNSPLIT = 0xa
2711 DEVLINK_CMD_SB_GET = 0xb
2712 DEVLINK_CMD_SB_SET = 0xc
2713 DEVLINK_CMD_SB_NEW = 0xd
2714 DEVLINK_CMD_SB_DEL = 0xe
2715 DEVLINK_CMD_SB_POOL_GET = 0xf
2716 DEVLINK_CMD_SB_POOL_SET = 0x10
2717 DEVLINK_CMD_SB_POOL_NEW = 0x11
2718 DEVLINK_CMD_SB_POOL_DEL = 0x12
2719 DEVLINK_CMD_SB_PORT_POOL_GET = 0x13
2720 DEVLINK_CMD_SB_PORT_POOL_SET = 0x14
2721 DEVLINK_CMD_SB_PORT_POOL_NEW = 0x15
2722 DEVLINK_CMD_SB_PORT_POOL_DEL = 0x16
2723 DEVLINK_CMD_SB_TC_POOL_BIND_GET = 0x17
2724 DEVLINK_CMD_SB_TC_POOL_BIND_SET = 0x18
2725 DEVLINK_CMD_SB_TC_POOL_BIND_NEW = 0x19
2726 DEVLINK_CMD_SB_TC_POOL_BIND_DEL = 0x1a
2727 DEVLINK_CMD_SB_OCC_SNAPSHOT = 0x1b
2728 DEVLINK_CMD_SB_OCC_MAX_CLEAR = 0x1c
2729 DEVLINK_CMD_ESWITCH_GET = 0x1d
2730 DEVLINK_CMD_ESWITCH_SET = 0x1e
2731 DEVLINK_CMD_DPIPE_TABLE_GET = 0x1f
2732 DEVLINK_CMD_DPIPE_ENTRIES_GET = 0x20
2733 DEVLINK_CMD_DPIPE_HEADERS_GET = 0x21
2734 DEVLINK_CMD_DPIPE_TABLE_COUNTERS_SET = 0x22
2735 DEVLINK_CMD_MAX = 0x44
2736 DEVLINK_PORT_TYPE_NOTSET = 0x0
2737 DEVLINK_PORT_TYPE_AUTO = 0x1
2738 DEVLINK_PORT_TYPE_ETH = 0x2
2739 DEVLINK_PORT_TYPE_IB = 0x3
2740 DEVLINK_SB_POOL_TYPE_INGRESS = 0x0
2741 DEVLINK_SB_POOL_TYPE_EGRESS = 0x1
2742 DEVLINK_SB_THRESHOLD_TYPE_STATIC = 0x0
2743 DEVLINK_SB_THRESHOLD_TYPE_DYNAMIC = 0x1
2744 DEVLINK_ESWITCH_MODE_LEGACY = 0x0
2745 DEVLINK_ESWITCH_MODE_SWITCHDEV = 0x1
2746 DEVLINK_ESWITCH_INLINE_MODE_NONE = 0x0
2747 DEVLINK_ESWITCH_INLINE_MODE_LINK = 0x1
2748 DEVLINK_ESWITCH_INLINE_MODE_NETWORK = 0x2
2749 DEVLINK_ESWITCH_INLINE_MODE_TRANSPORT = 0x3
2750 DEVLINK_ESWITCH_ENCAP_MODE_NONE = 0x0
2751 DEVLINK_ESWITCH_ENCAP_MODE_BASIC = 0x1
2752 DEVLINK_ATTR_UNSPEC = 0x0
2753 DEVLINK_ATTR_BUS_NAME = 0x1
2754 DEVLINK_ATTR_DEV_NAME = 0x2
2755 DEVLINK_ATTR_PORT_INDEX = 0x3
2756 DEVLINK_ATTR_PORT_TYPE = 0x4
2757 DEVLINK_ATTR_PORT_DESIRED_TYPE = 0x5
2758 DEVLINK_ATTR_PORT_NETDEV_IFINDEX = 0x6
2759 DEVLINK_ATTR_PORT_NETDEV_NAME = 0x7
2760 DEVLINK_ATTR_PORT_IBDEV_NAME = 0x8
2761 DEVLINK_ATTR_PORT_SPLIT_COUNT = 0x9
2762 DEVLINK_ATTR_PORT_SPLIT_GROUP = 0xa
2763 DEVLINK_ATTR_SB_INDEX = 0xb
2764 DEVLINK_ATTR_SB_SIZE = 0xc
2765 DEVLINK_ATTR_SB_INGRESS_POOL_COUNT = 0xd
2766 DEVLINK_ATTR_SB_EGRESS_POOL_COUNT = 0xe
2767 DEVLINK_ATTR_SB_INGRESS_TC_COUNT = 0xf
2768 DEVLINK_ATTR_SB_EGRESS_TC_COUNT = 0x10
2769 DEVLINK_ATTR_SB_POOL_INDEX = 0x11
2770 DEVLINK_ATTR_SB_POOL_TYPE = 0x12
2771 DEVLINK_ATTR_SB_POOL_SIZE = 0x13
2772 DEVLINK_ATTR_SB_POOL_THRESHOLD_TYPE = 0x14
2773 DEVLINK_ATTR_SB_THRESHOLD = 0x15
2774 DEVLINK_ATTR_SB_TC_INDEX = 0x16
2775 DEVLINK_ATTR_SB_OCC_CUR = 0x17
2776 DEVLINK_ATTR_SB_OCC_MAX = 0x18
2777 DEVLINK_ATTR_ESWITCH_MODE = 0x19
2778 DEVLINK_ATTR_ESWITCH_INLINE_MODE = 0x1a
2779 DEVLINK_ATTR_DPIPE_TABLES = 0x1b
2780 DEVLINK_ATTR_DPIPE_TABLE = 0x1c
2781 DEVLINK_ATTR_DPIPE_TABLE_NAME = 0x1d
2782 DEVLINK_ATTR_DPIPE_TABLE_SIZE = 0x1e
2783 DEVLINK_ATTR_DPIPE_TABLE_MATCHES = 0x1f
2784 DEVLINK_ATTR_DPIPE_TABLE_ACTIONS = 0x20
2785 DEVLINK_ATTR_DPIPE_TABLE_COUNTERS_ENABLED = 0x21
2786 DEVLINK_ATTR_DPIPE_ENTRIES = 0x22
2787 DEVLINK_ATTR_DPIPE_ENTRY = 0x23
2788 DEVLINK_ATTR_DPIPE_ENTRY_INDEX = 0x24
2789 DEVLINK_ATTR_DPIPE_ENTRY_MATCH_VALUES = 0x25
2790 DEVLINK_ATTR_DPIPE_ENTRY_ACTION_VALUES = 0x26
2791 DEVLINK_ATTR_DPIPE_ENTRY_COUNTER = 0x27
2792 DEVLINK_ATTR_DPIPE_MATCH = 0x28
2793 DEVLINK_ATTR_DPIPE_MATCH_VALUE = 0x29
2794 DEVLINK_ATTR_DPIPE_MATCH_TYPE = 0x2a
2795 DEVLINK_ATTR_DPIPE_ACTION = 0x2b
2796 DEVLINK_ATTR_DPIPE_ACTION_VALUE = 0x2c
2797 DEVLINK_ATTR_DPIPE_ACTION_TYPE = 0x2d
2798 DEVLINK_ATTR_DPIPE_VALUE = 0x2e
2799 DEVLINK_ATTR_DPIPE_VALUE_MASK = 0x2f
2800 DEVLINK_ATTR_DPIPE_VALUE_MAPPING = 0x30
2801 DEVLINK_ATTR_DPIPE_HEADERS = 0x31
2802 DEVLINK_ATTR_DPIPE_HEADER = 0x32
2803 DEVLINK_ATTR_DPIPE_HEADER_NAME = 0x33
2804 DEVLINK_ATTR_DPIPE_HEADER_ID = 0x34
2805 DEVLINK_ATTR_DPIPE_HEADER_FIELDS = 0x35
2806 DEVLINK_ATTR_DPIPE_HEADER_GLOBAL = 0x36
2807 DEVLINK_ATTR_DPIPE_HEADER_INDEX = 0x37
2808 DEVLINK_ATTR_DPIPE_FIELD = 0x38
2809 DEVLINK_ATTR_DPIPE_FIELD_NAME = 0x39
2810 DEVLINK_ATTR_DPIPE_FIELD_ID = 0x3a
2811 DEVLINK_ATTR_DPIPE_FIELD_BITWIDTH = 0x3b
2812 DEVLINK_ATTR_DPIPE_FIELD_MAPPING_TYPE = 0x3c
2813 DEVLINK_ATTR_PAD = 0x3d
2814 DEVLINK_ATTR_ESWITCH_ENCAP_MODE = 0x3e
2815 DEVLINK_ATTR_MAX = 0x8c
2816 DEVLINK_DPIPE_FIELD_MAPPING_TYPE_NONE = 0x0
2817 DEVLINK_DPIPE_FIELD_MAPPING_TYPE_IFINDEX = 0x1
2818 DEVLINK_DPIPE_MATCH_TYPE_FIELD_EXACT = 0x0
2819 DEVLINK_DPIPE_ACTION_TYPE_FIELD_MODIFY = 0x0
2820 DEVLINK_DPIPE_FIELD_ETHERNET_DST_MAC = 0x0
2821 DEVLINK_DPIPE_FIELD_IPV4_DST_IP = 0x0
2822 DEVLINK_DPIPE_FIELD_IPV6_DST_IP = 0x0
2823 DEVLINK_DPIPE_HEADER_ETHERNET = 0x0
2824 DEVLINK_DPIPE_HEADER_IPV4 = 0x1
2825 DEVLINK_DPIPE_HEADER_IPV6 = 0x2
2826)
diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go
index 5e0ab93..63685ca 100644
--- a/vendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go
+++ b/vendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go
@@ -183,6 +183,55 @@ type FscryptKey struct {
183 Size uint32 183 Size uint32
184} 184}
185 185
186type FscryptPolicyV1 struct {
187 Version uint8
188 Contents_encryption_mode uint8
189 Filenames_encryption_mode uint8
190 Flags uint8
191 Master_key_descriptor [8]uint8
192}
193
194type FscryptPolicyV2 struct {
195 Version uint8
196 Contents_encryption_mode uint8
197 Filenames_encryption_mode uint8
198 Flags uint8
199 _ [4]uint8
200 Master_key_identifier [16]uint8
201}
202
203type FscryptGetPolicyExArg struct {
204 Size uint64
205 Policy [24]byte
206}
207
208type FscryptKeySpecifier struct {
209 Type uint32
210 _ uint32
211 U [32]byte
212}
213
214type FscryptAddKeyArg struct {
215 Key_spec FscryptKeySpecifier
216 Raw_size uint32
217 _ [9]uint32
218}
219
220type FscryptRemoveKeyArg struct {
221 Key_spec FscryptKeySpecifier
222 Removal_status_flags uint32
223 _ [5]uint32
224}
225
226type FscryptGetKeyStatusArg struct {
227 Key_spec FscryptKeySpecifier
228 _ [6]uint32
229 Status uint32
230 Status_flags uint32
231 User_count uint32
232 _ [13]uint32
233}
234
186type KeyctlDHParams struct { 235type KeyctlDHParams struct {
187 Private int32 236 Private int32
188 Prime int32 237 Prime int32
@@ -260,7 +309,7 @@ type RawSockaddrRFCOMM struct {
260type RawSockaddrCAN struct { 309type RawSockaddrCAN struct {
261 Family uint16 310 Family uint16
262 Ifindex int32 311 Ifindex int32
263 Addr [8]byte 312 Addr [16]byte
264} 313}
265 314
266type RawSockaddrALG struct { 315type RawSockaddrALG struct {
@@ -289,6 +338,13 @@ type RawSockaddrXDP struct {
289 338
290type RawSockaddrPPPoX [0x1e]byte 339type RawSockaddrPPPoX [0x1e]byte
291 340
341type RawSockaddrTIPC struct {
342 Family uint16
343 Addrtype uint8
344 Scope int8
345 Addr [12]byte
346}
347
292type RawSockaddr struct { 348type RawSockaddr struct {
293 Family uint16 349 Family uint16
294 Data [14]int8 350 Data [14]int8
@@ -425,11 +481,12 @@ const (
425 SizeofSockaddrHCI = 0x6 481 SizeofSockaddrHCI = 0x6
426 SizeofSockaddrL2 = 0xe 482 SizeofSockaddrL2 = 0xe
427 SizeofSockaddrRFCOMM = 0xa 483 SizeofSockaddrRFCOMM = 0xa
428 SizeofSockaddrCAN = 0x10 484 SizeofSockaddrCAN = 0x18
429 SizeofSockaddrALG = 0x58 485 SizeofSockaddrALG = 0x58
430 SizeofSockaddrVM = 0x10 486 SizeofSockaddrVM = 0x10
431 SizeofSockaddrXDP = 0x10 487 SizeofSockaddrXDP = 0x10
432 SizeofSockaddrPPPoX = 0x1e 488 SizeofSockaddrPPPoX = 0x1e
489 SizeofSockaddrTIPC = 0x10
433 SizeofLinger = 0x8 490 SizeofLinger = 0x8
434 SizeofIovec = 0x10 491 SizeofIovec = 0x10
435 SizeofIPMreq = 0x8 492 SizeofIPMreq = 0x8
@@ -540,7 +597,7 @@ const (
540 IFLA_NEW_IFINDEX = 0x31 597 IFLA_NEW_IFINDEX = 0x31
541 IFLA_MIN_MTU = 0x32 598 IFLA_MIN_MTU = 0x32
542 IFLA_MAX_MTU = 0x33 599 IFLA_MAX_MTU = 0x33
543 IFLA_MAX = 0x33 600 IFLA_MAX = 0x35
544 IFLA_INFO_KIND = 0x1 601 IFLA_INFO_KIND = 0x1
545 IFLA_INFO_DATA = 0x2 602 IFLA_INFO_DATA = 0x2
546 IFLA_INFO_XSTATS = 0x3 603 IFLA_INFO_XSTATS = 0x3
@@ -596,22 +653,6 @@ const (
596 RTN_THROW = 0x9 653 RTN_THROW = 0x9
597 RTN_NAT = 0xa 654 RTN_NAT = 0xa
598 RTN_XRESOLVE = 0xb 655 RTN_XRESOLVE = 0xb
599 RTNLGRP_NONE = 0x0
600 RTNLGRP_LINK = 0x1
601 RTNLGRP_NOTIFY = 0x2
602 RTNLGRP_NEIGH = 0x3
603 RTNLGRP_TC = 0x4
604 RTNLGRP_IPV4_IFADDR = 0x5
605 RTNLGRP_IPV4_MROUTE = 0x6
606 RTNLGRP_IPV4_ROUTE = 0x7
607 RTNLGRP_IPV4_RULE = 0x8
608 RTNLGRP_IPV6_IFADDR = 0x9
609 RTNLGRP_IPV6_MROUTE = 0xa
610 RTNLGRP_IPV6_ROUTE = 0xb
611 RTNLGRP_IPV6_IFINFO = 0xc
612 RTNLGRP_IPV6_PREFIX = 0x12
613 RTNLGRP_IPV6_RULE = 0x13
614 RTNLGRP_ND_USEROPT = 0x14
615 SizeofNlMsghdr = 0x10 656 SizeofNlMsghdr = 0x10
616 SizeofNlMsgerr = 0x14 657 SizeofNlMsgerr = 0x14
617 SizeofRtGenmsg = 0x1 658 SizeofRtGenmsg = 0x1
@@ -619,6 +660,7 @@ const (
619 SizeofRtAttr = 0x4 660 SizeofRtAttr = 0x4
620 SizeofIfInfomsg = 0x10 661 SizeofIfInfomsg = 0x10
621 SizeofIfAddrmsg = 0x8 662 SizeofIfAddrmsg = 0x8
663 SizeofIfaCacheinfo = 0x10
622 SizeofRtMsg = 0xc 664 SizeofRtMsg = 0xc
623 SizeofRtNexthop = 0x8 665 SizeofRtNexthop = 0x8
624 SizeofNdUseroptmsg = 0x10 666 SizeofNdUseroptmsg = 0x10
@@ -669,6 +711,13 @@ type IfAddrmsg struct {
669 Index uint32 711 Index uint32
670} 712}
671 713
714type IfaCacheinfo struct {
715 Prefered uint32
716 Valid uint32
717 Cstamp uint32
718 Tstamp uint32
719}
720
672type RtMsg struct { 721type RtMsg struct {
673 Family uint8 722 Family uint8
674 Dst_len uint8 723 Dst_len uint8
@@ -2038,6 +2087,7 @@ type XDPRingOffset struct {
2038 Producer uint64 2087 Producer uint64
2039 Consumer uint64 2088 Consumer uint64
2040 Desc uint64 2089 Desc uint64
2090 Flags uint64
2041} 2091}
2042 2092
2043type XDPMmapOffsets struct { 2093type XDPMmapOffsets struct {
@@ -2052,6 +2102,8 @@ type XDPUmemReg struct {
2052 Len uint64 2102 Len uint64
2053 Size uint32 2103 Size uint32
2054 Headroom uint32 2104 Headroom uint32
2105 Flags uint32
2106 _ [4]byte
2055} 2107}
2056 2108
2057type XDPStatistics struct { 2109type XDPStatistics struct {
@@ -2465,6 +2517,42 @@ const (
2465 BPF_FD_TYPE_URETPROBE = 0x5 2517 BPF_FD_TYPE_URETPROBE = 0x5
2466) 2518)
2467 2519
2520const (
2521 RTNLGRP_NONE = 0x0
2522 RTNLGRP_LINK = 0x1
2523 RTNLGRP_NOTIFY = 0x2
2524 RTNLGRP_NEIGH = 0x3
2525 RTNLGRP_TC = 0x4
2526 RTNLGRP_IPV4_IFADDR = 0x5
2527 RTNLGRP_IPV4_MROUTE = 0x6
2528 RTNLGRP_IPV4_ROUTE = 0x7
2529 RTNLGRP_IPV4_RULE = 0x8
2530 RTNLGRP_IPV6_IFADDR = 0x9
2531 RTNLGRP_IPV6_MROUTE = 0xa
2532 RTNLGRP_IPV6_ROUTE = 0xb
2533 RTNLGRP_IPV6_IFINFO = 0xc
2534 RTNLGRP_DECnet_IFADDR = 0xd
2535 RTNLGRP_NOP2 = 0xe
2536 RTNLGRP_DECnet_ROUTE = 0xf
2537 RTNLGRP_DECnet_RULE = 0x10
2538 RTNLGRP_NOP4 = 0x11
2539 RTNLGRP_IPV6_PREFIX = 0x12
2540 RTNLGRP_IPV6_RULE = 0x13
2541 RTNLGRP_ND_USEROPT = 0x14
2542 RTNLGRP_PHONET_IFADDR = 0x15
2543 RTNLGRP_PHONET_ROUTE = 0x16
2544 RTNLGRP_DCB = 0x17
2545 RTNLGRP_IPV4_NETCONF = 0x18
2546 RTNLGRP_IPV6_NETCONF = 0x19
2547 RTNLGRP_MDB = 0x1a
2548 RTNLGRP_MPLS_ROUTE = 0x1b
2549 RTNLGRP_NSID = 0x1c
2550 RTNLGRP_MPLS_NETCONF = 0x1d
2551 RTNLGRP_IPV4_MROUTE_R = 0x1e
2552 RTNLGRP_IPV6_MROUTE_R = 0x1f
2553 RTNLGRP_NEXTHOP = 0x20
2554)
2555
2468type CapUserHeader struct { 2556type CapUserHeader struct {
2469 Version uint32 2557 Version uint32
2470 Pid int32 2558 Pid int32
@@ -2519,3 +2607,201 @@ type LoopInfo64 struct {
2519 Encrypt_key [32]uint8 2607 Encrypt_key [32]uint8
2520 Init [2]uint64 2608 Init [2]uint64
2521} 2609}
2610
2611type TIPCSocketAddr struct {
2612 Ref uint32
2613 Node uint32
2614}
2615
2616type TIPCServiceRange struct {
2617 Type uint32
2618 Lower uint32
2619 Upper uint32
2620}
2621
2622type TIPCServiceName struct {
2623 Type uint32
2624 Instance uint32
2625 Domain uint32
2626}
2627
2628type TIPCSubscr struct {
2629 Seq TIPCServiceRange
2630 Timeout uint32
2631 Filter uint32
2632 Handle [8]int8
2633}
2634
2635type TIPCEvent struct {
2636 Event uint32
2637 Lower uint32
2638 Upper uint32
2639 Port TIPCSocketAddr
2640 S TIPCSubscr
2641}
2642
2643type TIPCGroupReq struct {
2644 Type uint32
2645 Instance uint32
2646 Scope uint32
2647 Flags uint32
2648}
2649
2650type TIPCSIOCLNReq struct {
2651 Peer uint32
2652 Id uint32
2653 Linkname [68]int8
2654}
2655
2656type TIPCSIOCNodeIDReq struct {
2657 Peer uint32
2658 Id [16]int8
2659}
2660
2661const (
2662 TIPC_CLUSTER_SCOPE = 0x2
2663 TIPC_NODE_SCOPE = 0x3
2664)
2665
2666const (
2667 SYSLOG_ACTION_CLOSE = 0
2668 SYSLOG_ACTION_OPEN = 1
2669 SYSLOG_ACTION_READ = 2
2670 SYSLOG_ACTION_READ_ALL = 3
2671 SYSLOG_ACTION_READ_CLEAR = 4
2672 SYSLOG_ACTION_CLEAR = 5
2673 SYSLOG_ACTION_CONSOLE_OFF = 6
2674 SYSLOG_ACTION_CONSOLE_ON = 7
2675 SYSLOG_ACTION_CONSOLE_LEVEL = 8
2676 SYSLOG_ACTION_SIZE_UNREAD = 9
2677 SYSLOG_ACTION_SIZE_BUFFER = 10
2678)
2679
2680const (
2681 DEVLINK_CMD_UNSPEC = 0x0
2682 DEVLINK_CMD_GET = 0x1
2683 DEVLINK_CMD_SET = 0x2
2684 DEVLINK_CMD_NEW = 0x3
2685 DEVLINK_CMD_DEL = 0x4
2686 DEVLINK_CMD_PORT_GET = 0x5
2687 DEVLINK_CMD_PORT_SET = 0x6
2688 DEVLINK_CMD_PORT_NEW = 0x7
2689 DEVLINK_CMD_PORT_DEL = 0x8
2690 DEVLINK_CMD_PORT_SPLIT = 0x9
2691 DEVLINK_CMD_PORT_UNSPLIT = 0xa
2692 DEVLINK_CMD_SB_GET = 0xb
2693 DEVLINK_CMD_SB_SET = 0xc
2694 DEVLINK_CMD_SB_NEW = 0xd
2695 DEVLINK_CMD_SB_DEL = 0xe
2696 DEVLINK_CMD_SB_POOL_GET = 0xf
2697 DEVLINK_CMD_SB_POOL_SET = 0x10
2698 DEVLINK_CMD_SB_POOL_NEW = 0x11
2699 DEVLINK_CMD_SB_POOL_DEL = 0x12
2700 DEVLINK_CMD_SB_PORT_POOL_GET = 0x13
2701 DEVLINK_CMD_SB_PORT_POOL_SET = 0x14
2702 DEVLINK_CMD_SB_PORT_POOL_NEW = 0x15
2703 DEVLINK_CMD_SB_PORT_POOL_DEL = 0x16
2704 DEVLINK_CMD_SB_TC_POOL_BIND_GET = 0x17
2705 DEVLINK_CMD_SB_TC_POOL_BIND_SET = 0x18
2706 DEVLINK_CMD_SB_TC_POOL_BIND_NEW = 0x19
2707 DEVLINK_CMD_SB_TC_POOL_BIND_DEL = 0x1a
2708 DEVLINK_CMD_SB_OCC_SNAPSHOT = 0x1b
2709 DEVLINK_CMD_SB_OCC_MAX_CLEAR = 0x1c
2710 DEVLINK_CMD_ESWITCH_GET = 0x1d
2711 DEVLINK_CMD_ESWITCH_SET = 0x1e
2712 DEVLINK_CMD_DPIPE_TABLE_GET = 0x1f
2713 DEVLINK_CMD_DPIPE_ENTRIES_GET = 0x20
2714 DEVLINK_CMD_DPIPE_HEADERS_GET = 0x21
2715 DEVLINK_CMD_DPIPE_TABLE_COUNTERS_SET = 0x22
2716 DEVLINK_CMD_MAX = 0x44
2717 DEVLINK_PORT_TYPE_NOTSET = 0x0
2718 DEVLINK_PORT_TYPE_AUTO = 0x1
2719 DEVLINK_PORT_TYPE_ETH = 0x2
2720 DEVLINK_PORT_TYPE_IB = 0x3
2721 DEVLINK_SB_POOL_TYPE_INGRESS = 0x0
2722 DEVLINK_SB_POOL_TYPE_EGRESS = 0x1
2723 DEVLINK_SB_THRESHOLD_TYPE_STATIC = 0x0
2724 DEVLINK_SB_THRESHOLD_TYPE_DYNAMIC = 0x1
2725 DEVLINK_ESWITCH_MODE_LEGACY = 0x0
2726 DEVLINK_ESWITCH_MODE_SWITCHDEV = 0x1
2727 DEVLINK_ESWITCH_INLINE_MODE_NONE = 0x0
2728 DEVLINK_ESWITCH_INLINE_MODE_LINK = 0x1
2729 DEVLINK_ESWITCH_INLINE_MODE_NETWORK = 0x2
2730 DEVLINK_ESWITCH_INLINE_MODE_TRANSPORT = 0x3
2731 DEVLINK_ESWITCH_ENCAP_MODE_NONE = 0x0
2732 DEVLINK_ESWITCH_ENCAP_MODE_BASIC = 0x1
2733 DEVLINK_ATTR_UNSPEC = 0x0
2734 DEVLINK_ATTR_BUS_NAME = 0x1
2735 DEVLINK_ATTR_DEV_NAME = 0x2
2736 DEVLINK_ATTR_PORT_INDEX = 0x3
2737 DEVLINK_ATTR_PORT_TYPE = 0x4
2738 DEVLINK_ATTR_PORT_DESIRED_TYPE = 0x5
2739 DEVLINK_ATTR_PORT_NETDEV_IFINDEX = 0x6
2740 DEVLINK_ATTR_PORT_NETDEV_NAME = 0x7
2741 DEVLINK_ATTR_PORT_IBDEV_NAME = 0x8
2742 DEVLINK_ATTR_PORT_SPLIT_COUNT = 0x9
2743 DEVLINK_ATTR_PORT_SPLIT_GROUP = 0xa
2744 DEVLINK_ATTR_SB_INDEX = 0xb
2745 DEVLINK_ATTR_SB_SIZE = 0xc
2746 DEVLINK_ATTR_SB_INGRESS_POOL_COUNT = 0xd
2747 DEVLINK_ATTR_SB_EGRESS_POOL_COUNT = 0xe
2748 DEVLINK_ATTR_SB_INGRESS_TC_COUNT = 0xf
2749 DEVLINK_ATTR_SB_EGRESS_TC_COUNT = 0x10
2750 DEVLINK_ATTR_SB_POOL_INDEX = 0x11
2751 DEVLINK_ATTR_SB_POOL_TYPE = 0x12
2752 DEVLINK_ATTR_SB_POOL_SIZE = 0x13
2753 DEVLINK_ATTR_SB_POOL_THRESHOLD_TYPE = 0x14
2754 DEVLINK_ATTR_SB_THRESHOLD = 0x15
2755 DEVLINK_ATTR_SB_TC_INDEX = 0x16
2756 DEVLINK_ATTR_SB_OCC_CUR = 0x17
2757 DEVLINK_ATTR_SB_OCC_MAX = 0x18
2758 DEVLINK_ATTR_ESWITCH_MODE = 0x19
2759 DEVLINK_ATTR_ESWITCH_INLINE_MODE = 0x1a
2760 DEVLINK_ATTR_DPIPE_TABLES = 0x1b
2761 DEVLINK_ATTR_DPIPE_TABLE = 0x1c
2762 DEVLINK_ATTR_DPIPE_TABLE_NAME = 0x1d
2763 DEVLINK_ATTR_DPIPE_TABLE_SIZE = 0x1e
2764 DEVLINK_ATTR_DPIPE_TABLE_MATCHES = 0x1f
2765 DEVLINK_ATTR_DPIPE_TABLE_ACTIONS = 0x20
2766 DEVLINK_ATTR_DPIPE_TABLE_COUNTERS_ENABLED = 0x21
2767 DEVLINK_ATTR_DPIPE_ENTRIES = 0x22
2768 DEVLINK_ATTR_DPIPE_ENTRY = 0x23
2769 DEVLINK_ATTR_DPIPE_ENTRY_INDEX = 0x24
2770 DEVLINK_ATTR_DPIPE_ENTRY_MATCH_VALUES = 0x25
2771 DEVLINK_ATTR_DPIPE_ENTRY_ACTION_VALUES = 0x26
2772 DEVLINK_ATTR_DPIPE_ENTRY_COUNTER = 0x27
2773 DEVLINK_ATTR_DPIPE_MATCH = 0x28
2774 DEVLINK_ATTR_DPIPE_MATCH_VALUE = 0x29
2775 DEVLINK_ATTR_DPIPE_MATCH_TYPE = 0x2a
2776 DEVLINK_ATTR_DPIPE_ACTION = 0x2b
2777 DEVLINK_ATTR_DPIPE_ACTION_VALUE = 0x2c
2778 DEVLINK_ATTR_DPIPE_ACTION_TYPE = 0x2d
2779 DEVLINK_ATTR_DPIPE_VALUE = 0x2e
2780 DEVLINK_ATTR_DPIPE_VALUE_MASK = 0x2f
2781 DEVLINK_ATTR_DPIPE_VALUE_MAPPING = 0x30
2782 DEVLINK_ATTR_DPIPE_HEADERS = 0x31
2783 DEVLINK_ATTR_DPIPE_HEADER = 0x32
2784 DEVLINK_ATTR_DPIPE_HEADER_NAME = 0x33
2785 DEVLINK_ATTR_DPIPE_HEADER_ID = 0x34
2786 DEVLINK_ATTR_DPIPE_HEADER_FIELDS = 0x35
2787 DEVLINK_ATTR_DPIPE_HEADER_GLOBAL = 0x36
2788 DEVLINK_ATTR_DPIPE_HEADER_INDEX = 0x37
2789 DEVLINK_ATTR_DPIPE_FIELD = 0x38
2790 DEVLINK_ATTR_DPIPE_FIELD_NAME = 0x39
2791 DEVLINK_ATTR_DPIPE_FIELD_ID = 0x3a
2792 DEVLINK_ATTR_DPIPE_FIELD_BITWIDTH = 0x3b
2793 DEVLINK_ATTR_DPIPE_FIELD_MAPPING_TYPE = 0x3c
2794 DEVLINK_ATTR_PAD = 0x3d
2795 DEVLINK_ATTR_ESWITCH_ENCAP_MODE = 0x3e
2796 DEVLINK_ATTR_MAX = 0x8c
2797 DEVLINK_DPIPE_FIELD_MAPPING_TYPE_NONE = 0x0
2798 DEVLINK_DPIPE_FIELD_MAPPING_TYPE_IFINDEX = 0x1
2799 DEVLINK_DPIPE_MATCH_TYPE_FIELD_EXACT = 0x0
2800 DEVLINK_DPIPE_ACTION_TYPE_FIELD_MODIFY = 0x0
2801 DEVLINK_DPIPE_FIELD_ETHERNET_DST_MAC = 0x0
2802 DEVLINK_DPIPE_FIELD_IPV4_DST_IP = 0x0
2803 DEVLINK_DPIPE_FIELD_IPV6_DST_IP = 0x0
2804 DEVLINK_DPIPE_HEADER_ETHERNET = 0x0
2805 DEVLINK_DPIPE_HEADER_IPV4 = 0x1
2806 DEVLINK_DPIPE_HEADER_IPV6 = 0x2
2807)
diff --git a/vendor/golang.org/x/sys/unix/ztypes_netbsd_386.go b/vendor/golang.org/x/sys/unix/ztypes_netbsd_386.go
index 86736ab..a89100c 100644
--- a/vendor/golang.org/x/sys/unix/ztypes_netbsd_386.go
+++ b/vendor/golang.org/x/sys/unix/ztypes_netbsd_386.go
@@ -78,6 +78,33 @@ type Stat_t struct {
78 78
79type Statfs_t [0]byte 79type Statfs_t [0]byte
80 80
81type Statvfs_t struct {
82 Flag uint32
83 Bsize uint32
84 Frsize uint32
85 Iosize uint32
86 Blocks uint64
87 Bfree uint64
88 Bavail uint64
89 Bresvd uint64
90 Files uint64
91 Ffree uint64
92 Favail uint64
93 Fresvd uint64
94 Syncreads uint64
95 Syncwrites uint64
96 Asyncreads uint64
97 Asyncwrites uint64
98 Fsidx Fsid
99 Fsid uint32
100 Namemax uint32
101 Owner uint32
102 Spare [4]uint32
103 Fstypename [32]byte
104 Mntonname [1024]byte
105 Mntfromname [1024]byte
106}
107
81type Flock_t struct { 108type Flock_t struct {
82 Start int64 109 Start int64
83 Len int64 110 Len int64
@@ -104,6 +131,11 @@ const (
104) 131)
105 132
106const ( 133const (
134 ST_WAIT = 0x1
135 ST_NOWAIT = 0x2
136)
137
138const (
107 FADV_NORMAL = 0x0 139 FADV_NORMAL = 0x0
108 FADV_RANDOM = 0x1 140 FADV_RANDOM = 0x1
109 FADV_SEQUENTIAL = 0x2 141 FADV_SEQUENTIAL = 0x2
diff --git a/vendor/golang.org/x/sys/unix/ztypes_netbsd_amd64.go b/vendor/golang.org/x/sys/unix/ztypes_netbsd_amd64.go
index 3427811..289184e 100644
--- a/vendor/golang.org/x/sys/unix/ztypes_netbsd_amd64.go
+++ b/vendor/golang.org/x/sys/unix/ztypes_netbsd_amd64.go
@@ -82,6 +82,34 @@ type Stat_t struct {
82 82
83type Statfs_t [0]byte 83type Statfs_t [0]byte
84 84
85type Statvfs_t struct {
86 Flag uint64
87 Bsize uint64
88 Frsize uint64
89 Iosize uint64
90 Blocks uint64
91 Bfree uint64
92 Bavail uint64
93 Bresvd uint64
94 Files uint64
95 Ffree uint64
96 Favail uint64
97 Fresvd uint64
98 Syncreads uint64
99 Syncwrites uint64
100 Asyncreads uint64
101 Asyncwrites uint64
102 Fsidx Fsid
103 Fsid uint64
104 Namemax uint64
105 Owner uint32
106 Spare [4]uint32
107 Fstypename [32]byte
108 Mntonname [1024]byte
109 Mntfromname [1024]byte
110 _ [4]byte
111}
112
85type Flock_t struct { 113type Flock_t struct {
86 Start int64 114 Start int64
87 Len int64 115 Len int64
@@ -108,6 +136,11 @@ const (
108) 136)
109 137
110const ( 138const (
139 ST_WAIT = 0x1
140 ST_NOWAIT = 0x2
141)
142
143const (
111 FADV_NORMAL = 0x0 144 FADV_NORMAL = 0x0
112 FADV_RANDOM = 0x1 145 FADV_RANDOM = 0x1
113 FADV_SEQUENTIAL = 0x2 146 FADV_SEQUENTIAL = 0x2
diff --git a/vendor/golang.org/x/sys/unix/ztypes_netbsd_arm.go b/vendor/golang.org/x/sys/unix/ztypes_netbsd_arm.go
index 399f37a..428c450 100644
--- a/vendor/golang.org/x/sys/unix/ztypes_netbsd_arm.go
+++ b/vendor/golang.org/x/sys/unix/ztypes_netbsd_arm.go
@@ -83,6 +83,33 @@ type Stat_t struct {
83 83
84type Statfs_t [0]byte 84type Statfs_t [0]byte
85 85
86type Statvfs_t struct {
87 Flag uint32
88 Bsize uint32
89 Frsize uint32
90 Iosize uint32
91 Blocks uint64
92 Bfree uint64
93 Bavail uint64
94 Bresvd uint64
95 Files uint64
96 Ffree uint64
97 Favail uint64
98 Fresvd uint64
99 Syncreads uint64
100 Syncwrites uint64
101 Asyncreads uint64
102 Asyncwrites uint64
103 Fsidx Fsid
104 Fsid uint32
105 Namemax uint32
106 Owner uint32
107 Spare [4]uint32
108 Fstypename [32]byte
109 Mntonname [1024]byte
110 Mntfromname [1024]byte
111}
112
86type Flock_t struct { 113type Flock_t struct {
87 Start int64 114 Start int64
88 Len int64 115 Len int64
@@ -109,6 +136,11 @@ const (
109) 136)
110 137
111const ( 138const (
139 ST_WAIT = 0x1
140 ST_NOWAIT = 0x2
141)
142
143const (
112 FADV_NORMAL = 0x0 144 FADV_NORMAL = 0x0
113 FADV_RANDOM = 0x1 145 FADV_RANDOM = 0x1
114 FADV_SEQUENTIAL = 0x2 146 FADV_SEQUENTIAL = 0x2
diff --git a/vendor/golang.org/x/sys/unix/ztypes_netbsd_arm64.go b/vendor/golang.org/x/sys/unix/ztypes_netbsd_arm64.go
index 32f0c15..6f1f284 100644
--- a/vendor/golang.org/x/sys/unix/ztypes_netbsd_arm64.go
+++ b/vendor/golang.org/x/sys/unix/ztypes_netbsd_arm64.go
@@ -82,6 +82,34 @@ type Stat_t struct {
82 82
83type Statfs_t [0]byte 83type Statfs_t [0]byte
84 84
85type Statvfs_t struct {
86 Flag uint64
87 Bsize uint64
88 Frsize uint64
89 Iosize uint64
90 Blocks uint64
91 Bfree uint64
92 Bavail uint64
93 Bresvd uint64
94 Files uint64
95 Ffree uint64
96 Favail uint64
97 Fresvd uint64
98 Syncreads uint64
99 Syncwrites uint64
100 Asyncreads uint64
101 Asyncwrites uint64
102 Fsidx Fsid
103 Fsid uint64
104 Namemax uint64
105 Owner uint32
106 Spare [4]uint32
107 Fstypename [32]byte
108 Mntonname [1024]byte
109 Mntfromname [1024]byte
110 _ [4]byte
111}
112
85type Flock_t struct { 113type Flock_t struct {
86 Start int64 114 Start int64
87 Len int64 115 Len int64
@@ -108,6 +136,11 @@ const (
108) 136)
109 137
110const ( 138const (
139 ST_WAIT = 0x1
140 ST_NOWAIT = 0x2
141)
142
143const (
111 FADV_NORMAL = 0x0 144 FADV_NORMAL = 0x0
112 FADV_RANDOM = 0x1 145 FADV_RANDOM = 0x1
113 FADV_SEQUENTIAL = 0x2 146 FADV_SEQUENTIAL = 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
index 8531a19..23ed9fe 100644
--- a/vendor/golang.org/x/sys/unix/ztypes_solaris_amd64.go
+++ b/vendor/golang.org/x/sys/unix/ztypes_solaris_amd64.go
@@ -211,6 +211,12 @@ type Cmsghdr struct {
211 Type int32 211 Type int32
212} 212}
213 213
214type Inet4Pktinfo struct {
215 Ifindex uint32
216 Spec_dst [4]byte /* in_addr */
217 Addr [4]byte /* in_addr */
218}
219
214type Inet6Pktinfo struct { 220type Inet6Pktinfo struct {
215 Addr [16]byte /* in6_addr */ 221 Addr [16]byte /* in6_addr */
216 Ifindex uint32 222 Ifindex uint32
@@ -236,6 +242,7 @@ const (
236 SizeofIPv6Mreq = 0x14 242 SizeofIPv6Mreq = 0x14
237 SizeofMsghdr = 0x30 243 SizeofMsghdr = 0x30
238 SizeofCmsghdr = 0xc 244 SizeofCmsghdr = 0xc
245 SizeofInet4Pktinfo = 0xc
239 SizeofInet6Pktinfo = 0x14 246 SizeofInet6Pktinfo = 0x14
240 SizeofIPv6MTUInfo = 0x24 247 SizeofIPv6MTUInfo = 0x24
241 SizeofICMPv6Filter = 0x20 248 SizeofICMPv6Filter = 0x20
diff --git a/vendor/golang.org/x/sys/windows/asm_windows_386.s b/vendor/golang.org/x/sys/windows/asm_windows_386.s
deleted file mode 100644
index 21d994d..0000000
--- a/vendor/golang.org/x/sys/windows/asm_windows_386.s
+++ /dev/null
@@ -1,13 +0,0 @@
1// Copyright 2009 The Go Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style
3// license that can be found in the LICENSE file.
4
5//
6// System calls for 386, Windows are implemented in runtime/syscall_windows.goc
7//
8
9TEXT ·getprocaddress(SB), 7, $0-16
10 JMP syscall·getprocaddress(SB)
11
12TEXT ·loadlibrary(SB), 7, $0-12
13 JMP syscall·loadlibrary(SB)
diff --git a/vendor/golang.org/x/sys/windows/asm_windows_amd64.s b/vendor/golang.org/x/sys/windows/asm_windows_amd64.s
deleted file mode 100644
index 5bfdf79..0000000
--- a/vendor/golang.org/x/sys/windows/asm_windows_amd64.s
+++ /dev/null
@@ -1,13 +0,0 @@
1// Copyright 2009 The Go Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style
3// license that can be found in the LICENSE file.
4
5//
6// System calls for amd64, Windows are implemented in runtime/syscall_windows.goc
7//
8
9TEXT ·getprocaddress(SB), 7, $0-32
10 JMP syscall·getprocaddress(SB)
11
12TEXT ·loadlibrary(SB), 7, $0-24
13 JMP syscall·loadlibrary(SB)
diff --git a/vendor/golang.org/x/sys/windows/asm_windows_arm.s b/vendor/golang.org/x/sys/windows/asm_windows_arm.s
deleted file mode 100644
index 55d8b91..0000000
--- a/vendor/golang.org/x/sys/windows/asm_windows_arm.s
+++ /dev/null
@@ -1,11 +0,0 @@
1// Copyright 2018 The Go Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style
3// license that can be found in the LICENSE file.
4
5#include "textflag.h"
6
7TEXT ·getprocaddress(SB),NOSPLIT,$0
8 B syscall·getprocaddress(SB)
9
10TEXT ·loadlibrary(SB),NOSPLIT,$0
11 B syscall·loadlibrary(SB)
diff --git a/vendor/golang.org/x/sys/windows/dll_windows.go b/vendor/golang.org/x/sys/windows/dll_windows.go
index ba67658..d777113 100644
--- a/vendor/golang.org/x/sys/windows/dll_windows.go
+++ b/vendor/golang.org/x/sys/windows/dll_windows.go
@@ -11,6 +11,18 @@ import (
11 "unsafe" 11 "unsafe"
12) 12)
13 13
14// We need to use LoadLibrary and GetProcAddress from the Go runtime, because
15// the these symbols are loaded by the system linker and are required to
16// dynamically load additional symbols. Note that in the Go runtime, these
17// return syscall.Handle and syscall.Errno, but these are the same, in fact,
18// as windows.Handle and windows.Errno, and we intend to keep these the same.
19
20//go:linkname syscall_loadlibrary syscall.loadlibrary
21func syscall_loadlibrary(filename *uint16) (handle Handle, err Errno)
22
23//go:linkname syscall_getprocaddress syscall.getprocaddress
24func syscall_getprocaddress(handle Handle, procname *uint8) (proc uintptr, err Errno)
25
14// DLLError describes reasons for DLL load failures. 26// DLLError describes reasons for DLL load failures.
15type DLLError struct { 27type DLLError struct {
16 Err error 28 Err error
@@ -20,10 +32,6 @@ type DLLError struct {
20 32
21func (e *DLLError) Error() string { return e.Msg } 33func (e *DLLError) Error() string { return e.Msg }
22 34
23// Implemented in runtime/syscall_windows.goc; we provide jumps to them in our assembly file.
24func loadlibrary(filename *uint16) (handle uintptr, err syscall.Errno)
25func getprocaddress(handle uintptr, procname *uint8) (proc uintptr, err syscall.Errno)
26
27// A DLL implements access to a single DLL. 35// A DLL implements access to a single DLL.
28type DLL struct { 36type DLL struct {
29 Name string 37 Name string
@@ -40,7 +48,7 @@ func LoadDLL(name string) (dll *DLL, err error) {
40 if err != nil { 48 if err != nil {
41 return nil, err 49 return nil, err
42 } 50 }
43 h, e := loadlibrary(namep) 51 h, e := syscall_loadlibrary(namep)
44 if e != 0 { 52 if e != 0 {
45 return nil, &DLLError{ 53 return nil, &DLLError{
46 Err: e, 54 Err: e,
@@ -50,7 +58,7 @@ func LoadDLL(name string) (dll *DLL, err error) {
50 } 58 }
51 d := &DLL{ 59 d := &DLL{
52 Name: name, 60 Name: name,
53 Handle: Handle(h), 61 Handle: h,
54 } 62 }
55 return d, nil 63 return d, nil
56} 64}
@@ -71,7 +79,7 @@ func (d *DLL) FindProc(name string) (proc *Proc, err error) {
71 if err != nil { 79 if err != nil {
72 return nil, err 80 return nil, err
73 } 81 }
74 a, e := getprocaddress(uintptr(d.Handle), namep) 82 a, e := syscall_getprocaddress(d.Handle, namep)
75 if e != 0 { 83 if e != 0 {
76 return nil, &DLLError{ 84 return nil, &DLLError{
77 Err: e, 85 Err: e,
diff --git a/vendor/golang.org/x/sys/windows/empty.s b/vendor/golang.org/x/sys/windows/empty.s
new file mode 100644
index 0000000..69309e4
--- /dev/null
+++ b/vendor/golang.org/x/sys/windows/empty.s
@@ -0,0 +1,8 @@
1// Copyright 2019 The Go Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style
3// license that can be found in the LICENSE file.
4
5// +build !go1.12
6
7// This file is here to allow bodyless functions with go:linkname for Go 1.11
8// and earlier (see https://golang.org/issue/23311).
diff --git a/vendor/golang.org/x/sys/windows/mksyscall.go b/vendor/golang.org/x/sys/windows/mksyscall.go
index 6277057..328e3b2 100644
--- a/vendor/golang.org/x/sys/windows/mksyscall.go
+++ b/vendor/golang.org/x/sys/windows/mksyscall.go
@@ -6,4 +6,4 @@
6 6
7package windows 7package windows
8 8
9//go:generate go run $GOROOT/src/syscall/mksyscall_windows.go -output zsyscall_windows.go eventlog.go service.go syscall_windows.go security_windows.go 9//go:generate go run golang.org/x/sys/windows/mkwinsyscall -output zsyscall_windows.go eventlog.go service.go syscall_windows.go security_windows.go
diff --git a/vendor/golang.org/x/sys/windows/security_windows.go b/vendor/golang.org/x/sys/windows/security_windows.go
index 7b2cfb9..4b6eff1 100644
--- a/vendor/golang.org/x/sys/windows/security_windows.go
+++ b/vendor/golang.org/x/sys/windows/security_windows.go
@@ -10,14 +10,6 @@ import (
10) 10)
11 11
12const ( 12const (
13 STANDARD_RIGHTS_REQUIRED = 0xf0000
14 STANDARD_RIGHTS_READ = 0x20000
15 STANDARD_RIGHTS_WRITE = 0x20000
16 STANDARD_RIGHTS_EXECUTE = 0x20000
17 STANDARD_RIGHTS_ALL = 0x1F0000
18)
19
20const (
21 NameUnknown = 0 13 NameUnknown = 0
22 NameFullyQualifiedDN = 1 14 NameFullyQualifiedDN = 1
23 NameSamCompatible = 2 15 NameSamCompatible = 2
@@ -235,16 +227,15 @@ func LookupSID(system, account string) (sid *SID, domain string, accType uint32,
235 } 227 }
236} 228}
237 229
238// String converts SID to a string format 230// String converts SID to a string format suitable for display, storage, or transmission.
239// suitable for display, storage, or transmission. 231func (sid *SID) String() string {
240func (sid *SID) String() (string, error) {
241 var s *uint16 232 var s *uint16
242 e := ConvertSidToStringSid(sid, &s) 233 e := ConvertSidToStringSid(sid, &s)
243 if e != nil { 234 if e != nil {
244 return "", e 235 return ""
245 } 236 }
246 defer LocalFree((Handle)(unsafe.Pointer(s))) 237 defer LocalFree((Handle)(unsafe.Pointer(s)))
247 return UTF16ToString((*[256]uint16)(unsafe.Pointer(s))[:]), nil 238 return UTF16ToString((*[256]uint16)(unsafe.Pointer(s))[:])
248} 239}
249 240
250// Len returns the length, in bytes, of a valid security identifier SID. 241// Len returns the length, in bytes, of a valid security identifier SID.
@@ -656,21 +647,16 @@ func (tml *Tokenmandatorylabel) Size() uint32 {
656// system-related operations on the local computer. 647// system-related operations on the local computer.
657type Token Handle 648type Token Handle
658 649
659// OpenCurrentProcessToken opens the access token 650// OpenCurrentProcessToken opens an access token associated with current
660// associated with current process. It is a real 651// process with TOKEN_QUERY access. It is a real token that needs to be closed.
661// token that needs to be closed, unlike 652//
662// GetCurrentProcessToken. 653// Deprecated: Explicitly call OpenProcessToken(CurrentProcess(), ...)
654// with the desired access instead, or use GetCurrentProcessToken for a
655// TOKEN_QUERY token.
663func OpenCurrentProcessToken() (Token, error) { 656func OpenCurrentProcessToken() (Token, error) {
664 p, e := GetCurrentProcess() 657 var token Token
665 if e != nil { 658 err := OpenProcessToken(CurrentProcess(), TOKEN_QUERY, &token)
666 return 0, e 659 return token, err
667 }
668 var t Token
669 e = OpenProcessToken(p, TOKEN_QUERY|TOKEN_DUPLICATE, &t)
670 if e != nil {
671 return 0, e
672 }
673 return t, nil
674} 660}
675 661
676// GetCurrentProcessToken returns the access token associated with 662// GetCurrentProcessToken returns the access token associated with
@@ -890,3 +876,521 @@ type WTS_SESSION_INFO struct {
890//sys WTSQueryUserToken(session uint32, token *Token) (err error) = wtsapi32.WTSQueryUserToken 876//sys WTSQueryUserToken(session uint32, token *Token) (err error) = wtsapi32.WTSQueryUserToken
891//sys WTSEnumerateSessions(handle Handle, reserved uint32, version uint32, sessions **WTS_SESSION_INFO, count *uint32) (err error) = wtsapi32.WTSEnumerateSessionsW 877//sys WTSEnumerateSessions(handle Handle, reserved uint32, version uint32, sessions **WTS_SESSION_INFO, count *uint32) (err error) = wtsapi32.WTSEnumerateSessionsW
892//sys WTSFreeMemory(ptr uintptr) = wtsapi32.WTSFreeMemory 878//sys WTSFreeMemory(ptr uintptr) = wtsapi32.WTSFreeMemory
879
880type ACL struct {
881 aclRevision byte
882 sbz1 byte
883 aclSize uint16
884 aceCount uint16
885 sbz2 uint16
886}
887
888type SECURITY_DESCRIPTOR struct {
889 revision byte
890 sbz1 byte
891 control SECURITY_DESCRIPTOR_CONTROL
892 owner *SID
893 group *SID
894 sacl *ACL
895 dacl *ACL
896}
897
898type SecurityAttributes struct {
899 Length uint32
900 SecurityDescriptor *SECURITY_DESCRIPTOR
901 InheritHandle uint32
902}
903
904type SE_OBJECT_TYPE uint32
905
906// Constants for type SE_OBJECT_TYPE
907const (
908 SE_UNKNOWN_OBJECT_TYPE = 0
909 SE_FILE_OBJECT = 1
910 SE_SERVICE = 2
911 SE_PRINTER = 3
912 SE_REGISTRY_KEY = 4
913 SE_LMSHARE = 5
914 SE_KERNEL_OBJECT = 6
915 SE_WINDOW_OBJECT = 7
916 SE_DS_OBJECT = 8
917 SE_DS_OBJECT_ALL = 9
918 SE_PROVIDER_DEFINED_OBJECT = 10
919 SE_WMIGUID_OBJECT = 11
920 SE_REGISTRY_WOW64_32KEY = 12
921 SE_REGISTRY_WOW64_64KEY = 13
922)
923
924type SECURITY_INFORMATION uint32
925
926// Constants for type SECURITY_INFORMATION
927const (
928 OWNER_SECURITY_INFORMATION = 0x00000001
929 GROUP_SECURITY_INFORMATION = 0x00000002
930 DACL_SECURITY_INFORMATION = 0x00000004
931 SACL_SECURITY_INFORMATION = 0x00000008
932 LABEL_SECURITY_INFORMATION = 0x00000010
933 ATTRIBUTE_SECURITY_INFORMATION = 0x00000020
934 SCOPE_SECURITY_INFORMATION = 0x00000040
935 BACKUP_SECURITY_INFORMATION = 0x00010000
936 PROTECTED_DACL_SECURITY_INFORMATION = 0x80000000
937 PROTECTED_SACL_SECURITY_INFORMATION = 0x40000000
938 UNPROTECTED_DACL_SECURITY_INFORMATION = 0x20000000
939 UNPROTECTED_SACL_SECURITY_INFORMATION = 0x10000000
940)
941
942type SECURITY_DESCRIPTOR_CONTROL uint16
943
944// Constants for type SECURITY_DESCRIPTOR_CONTROL
945const (
946 SE_OWNER_DEFAULTED = 0x0001
947 SE_GROUP_DEFAULTED = 0x0002
948 SE_DACL_PRESENT = 0x0004
949 SE_DACL_DEFAULTED = 0x0008
950 SE_SACL_PRESENT = 0x0010
951 SE_SACL_DEFAULTED = 0x0020
952 SE_DACL_AUTO_INHERIT_REQ = 0x0100
953 SE_SACL_AUTO_INHERIT_REQ = 0x0200
954 SE_DACL_AUTO_INHERITED = 0x0400
955 SE_SACL_AUTO_INHERITED = 0x0800
956 SE_DACL_PROTECTED = 0x1000
957 SE_SACL_PROTECTED = 0x2000
958 SE_RM_CONTROL_VALID = 0x4000
959 SE_SELF_RELATIVE = 0x8000
960)
961
962type ACCESS_MASK uint32
963
964// Constants for type ACCESS_MASK
965const (
966 DELETE = 0x00010000
967 READ_CONTROL = 0x00020000
968 WRITE_DAC = 0x00040000
969 WRITE_OWNER = 0x00080000
970 SYNCHRONIZE = 0x00100000
971 STANDARD_RIGHTS_REQUIRED = 0x000F0000
972 STANDARD_RIGHTS_READ = READ_CONTROL
973 STANDARD_RIGHTS_WRITE = READ_CONTROL
974 STANDARD_RIGHTS_EXECUTE = READ_CONTROL
975 STANDARD_RIGHTS_ALL = 0x001F0000
976 SPECIFIC_RIGHTS_ALL = 0x0000FFFF
977 ACCESS_SYSTEM_SECURITY = 0x01000000
978 MAXIMUM_ALLOWED = 0x02000000
979 GENERIC_READ = 0x80000000
980 GENERIC_WRITE = 0x40000000
981 GENERIC_EXECUTE = 0x20000000
982 GENERIC_ALL = 0x10000000
983)
984
985type ACCESS_MODE uint32
986
987// Constants for type ACCESS_MODE
988const (
989 NOT_USED_ACCESS = 0
990 GRANT_ACCESS = 1
991 SET_ACCESS = 2
992 DENY_ACCESS = 3
993 REVOKE_ACCESS = 4
994 SET_AUDIT_SUCCESS = 5
995 SET_AUDIT_FAILURE = 6
996)
997
998// Constants for AceFlags and Inheritance fields
999const (
1000 NO_INHERITANCE = 0x0
1001 SUB_OBJECTS_ONLY_INHERIT = 0x1
1002 SUB_CONTAINERS_ONLY_INHERIT = 0x2
1003 SUB_CONTAINERS_AND_OBJECTS_INHERIT = 0x3
1004 INHERIT_NO_PROPAGATE = 0x4
1005 INHERIT_ONLY = 0x8
1006 INHERITED_ACCESS_ENTRY = 0x10
1007 INHERITED_PARENT = 0x10000000
1008 INHERITED_GRANDPARENT = 0x20000000
1009 OBJECT_INHERIT_ACE = 0x1
1010 CONTAINER_INHERIT_ACE = 0x2
1011 NO_PROPAGATE_INHERIT_ACE = 0x4
1012 INHERIT_ONLY_ACE = 0x8
1013 INHERITED_ACE = 0x10
1014 VALID_INHERIT_FLAGS = 0x1F
1015)
1016
1017type MULTIPLE_TRUSTEE_OPERATION uint32
1018
1019// Constants for MULTIPLE_TRUSTEE_OPERATION
1020const (
1021 NO_MULTIPLE_TRUSTEE = 0
1022 TRUSTEE_IS_IMPERSONATE = 1
1023)
1024
1025type TRUSTEE_FORM uint32
1026
1027// Constants for TRUSTEE_FORM
1028const (
1029 TRUSTEE_IS_SID = 0
1030 TRUSTEE_IS_NAME = 1
1031 TRUSTEE_BAD_FORM = 2
1032 TRUSTEE_IS_OBJECTS_AND_SID = 3
1033 TRUSTEE_IS_OBJECTS_AND_NAME = 4
1034)
1035
1036type TRUSTEE_TYPE uint32
1037
1038// Constants for TRUSTEE_TYPE
1039const (
1040 TRUSTEE_IS_UNKNOWN = 0
1041 TRUSTEE_IS_USER = 1
1042 TRUSTEE_IS_GROUP = 2
1043 TRUSTEE_IS_DOMAIN = 3
1044 TRUSTEE_IS_ALIAS = 4
1045 TRUSTEE_IS_WELL_KNOWN_GROUP = 5
1046 TRUSTEE_IS_DELETED = 6
1047 TRUSTEE_IS_INVALID = 7
1048 TRUSTEE_IS_COMPUTER = 8
1049)
1050
1051// Constants for ObjectsPresent field
1052const (
1053 ACE_OBJECT_TYPE_PRESENT = 0x1
1054 ACE_INHERITED_OBJECT_TYPE_PRESENT = 0x2
1055)
1056
1057type EXPLICIT_ACCESS struct {
1058 AccessPermissions ACCESS_MASK
1059 AccessMode ACCESS_MODE
1060 Inheritance uint32
1061 Trustee TRUSTEE
1062}
1063
1064// This type is the union inside of TRUSTEE and must be created using one of the TrusteeValueFrom* functions.
1065type TrusteeValue uintptr
1066
1067func TrusteeValueFromString(str string) TrusteeValue {
1068 return TrusteeValue(unsafe.Pointer(StringToUTF16Ptr(str)))
1069}
1070func TrusteeValueFromSID(sid *SID) TrusteeValue {
1071 return TrusteeValue(unsafe.Pointer(sid))
1072}
1073func TrusteeValueFromObjectsAndSid(objectsAndSid *OBJECTS_AND_SID) TrusteeValue {
1074 return TrusteeValue(unsafe.Pointer(objectsAndSid))
1075}
1076func TrusteeValueFromObjectsAndName(objectsAndName *OBJECTS_AND_NAME) TrusteeValue {
1077 return TrusteeValue(unsafe.Pointer(objectsAndName))
1078}
1079
1080type TRUSTEE struct {
1081 MultipleTrustee *TRUSTEE
1082 MultipleTrusteeOperation MULTIPLE_TRUSTEE_OPERATION
1083 TrusteeForm TRUSTEE_FORM
1084 TrusteeType TRUSTEE_TYPE
1085 TrusteeValue TrusteeValue
1086}
1087
1088type OBJECTS_AND_SID struct {
1089 ObjectsPresent uint32
1090 ObjectTypeGuid GUID
1091 InheritedObjectTypeGuid GUID
1092 Sid *SID
1093}
1094
1095type OBJECTS_AND_NAME struct {
1096 ObjectsPresent uint32
1097 ObjectType SE_OBJECT_TYPE
1098 ObjectTypeName *uint16
1099 InheritedObjectTypeName *uint16
1100 Name *uint16
1101}
1102
1103//sys getSecurityInfo(handle Handle, objectType SE_OBJECT_TYPE, securityInformation SECURITY_INFORMATION, owner **SID, group **SID, dacl **ACL, sacl **ACL, sd **SECURITY_DESCRIPTOR) (ret error) = advapi32.GetSecurityInfo
1104//sys SetSecurityInfo(handle Handle, objectType SE_OBJECT_TYPE, securityInformation SECURITY_INFORMATION, owner *SID, group *SID, dacl *ACL, sacl *ACL) = advapi32.SetSecurityInfo
1105//sys getNamedSecurityInfo(objectName string, objectType SE_OBJECT_TYPE, securityInformation SECURITY_INFORMATION, owner **SID, group **SID, dacl **ACL, sacl **ACL, sd **SECURITY_DESCRIPTOR) (ret error) = advapi32.GetNamedSecurityInfoW
1106//sys SetNamedSecurityInfo(objectName string, objectType SE_OBJECT_TYPE, securityInformation SECURITY_INFORMATION, owner *SID, group *SID, dacl *ACL, sacl *ACL) (ret error) = advapi32.SetNamedSecurityInfoW
1107
1108//sys buildSecurityDescriptor(owner *TRUSTEE, group *TRUSTEE, countAccessEntries uint32, accessEntries *EXPLICIT_ACCESS, countAuditEntries uint32, auditEntries *EXPLICIT_ACCESS, oldSecurityDescriptor *SECURITY_DESCRIPTOR, sizeNewSecurityDescriptor *uint32, newSecurityDescriptor **SECURITY_DESCRIPTOR) (ret error) = advapi32.BuildSecurityDescriptorW
1109//sys initializeSecurityDescriptor(absoluteSD *SECURITY_DESCRIPTOR, revision uint32) (err error) = advapi32.InitializeSecurityDescriptor
1110
1111//sys getSecurityDescriptorControl(sd *SECURITY_DESCRIPTOR, control *SECURITY_DESCRIPTOR_CONTROL, revision *uint32) (err error) = advapi32.GetSecurityDescriptorControl
1112//sys getSecurityDescriptorDacl(sd *SECURITY_DESCRIPTOR, daclPresent *bool, dacl **ACL, daclDefaulted *bool) (err error) = advapi32.GetSecurityDescriptorDacl
1113//sys getSecurityDescriptorSacl(sd *SECURITY_DESCRIPTOR, saclPresent *bool, sacl **ACL, saclDefaulted *bool) (err error) = advapi32.GetSecurityDescriptorSacl
1114//sys getSecurityDescriptorOwner(sd *SECURITY_DESCRIPTOR, owner **SID, ownerDefaulted *bool) (err error) = advapi32.GetSecurityDescriptorOwner
1115//sys getSecurityDescriptorGroup(sd *SECURITY_DESCRIPTOR, group **SID, groupDefaulted *bool) (err error) = advapi32.GetSecurityDescriptorGroup
1116//sys getSecurityDescriptorLength(sd *SECURITY_DESCRIPTOR) (len uint32) = advapi32.GetSecurityDescriptorLength
1117//sys getSecurityDescriptorRMControl(sd *SECURITY_DESCRIPTOR, rmControl *uint8) (ret error) [failretval!=0] = advapi32.GetSecurityDescriptorRMControl
1118//sys isValidSecurityDescriptor(sd *SECURITY_DESCRIPTOR) (isValid bool) = advapi32.IsValidSecurityDescriptor
1119
1120//sys setSecurityDescriptorControl(sd *SECURITY_DESCRIPTOR, controlBitsOfInterest SECURITY_DESCRIPTOR_CONTROL, controlBitsToSet SECURITY_DESCRIPTOR_CONTROL) (err error) = advapi32.SetSecurityDescriptorControl
1121//sys setSecurityDescriptorDacl(sd *SECURITY_DESCRIPTOR, daclPresent bool, dacl *ACL, daclDefaulted bool) (err error) = advapi32.SetSecurityDescriptorDacl
1122//sys setSecurityDescriptorSacl(sd *SECURITY_DESCRIPTOR, saclPresent bool, sacl *ACL, saclDefaulted bool) (err error) = advapi32.SetSecurityDescriptorSacl
1123//sys setSecurityDescriptorOwner(sd *SECURITY_DESCRIPTOR, owner *SID, ownerDefaulted bool) (err error) = advapi32.SetSecurityDescriptorOwner
1124//sys setSecurityDescriptorGroup(sd *SECURITY_DESCRIPTOR, group *SID, groupDefaulted bool) (err error) = advapi32.SetSecurityDescriptorGroup
1125//sys setSecurityDescriptorRMControl(sd *SECURITY_DESCRIPTOR, rmControl *uint8) = advapi32.SetSecurityDescriptorRMControl
1126
1127//sys convertStringSecurityDescriptorToSecurityDescriptor(str string, revision uint32, sd **SECURITY_DESCRIPTOR, size *uint32) (err error) = advapi32.ConvertStringSecurityDescriptorToSecurityDescriptorW
1128//sys convertSecurityDescriptorToStringSecurityDescriptor(sd *SECURITY_DESCRIPTOR, revision uint32, securityInformation SECURITY_INFORMATION, str **uint16, strLen *uint32) (err error) = advapi32.ConvertSecurityDescriptorToStringSecurityDescriptorW
1129
1130//sys makeAbsoluteSD(selfRelativeSD *SECURITY_DESCRIPTOR, absoluteSD *SECURITY_DESCRIPTOR, absoluteSDSize *uint32, dacl *ACL, daclSize *uint32, sacl *ACL, saclSize *uint32, owner *SID, ownerSize *uint32, group *SID, groupSize *uint32) (err error) = advapi32.MakeAbsoluteSD
1131//sys makeSelfRelativeSD(absoluteSD *SECURITY_DESCRIPTOR, selfRelativeSD *SECURITY_DESCRIPTOR, selfRelativeSDSize *uint32) (err error) = advapi32.MakeSelfRelativeSD
1132
1133//sys setEntriesInAcl(countExplicitEntries uint32, explicitEntries *EXPLICIT_ACCESS, oldACL *ACL, newACL **ACL) (ret error) = advapi32.SetEntriesInAclW
1134
1135// Control returns the security descriptor control bits.
1136func (sd *SECURITY_DESCRIPTOR) Control() (control SECURITY_DESCRIPTOR_CONTROL, revision uint32, err error) {
1137 err = getSecurityDescriptorControl(sd, &control, &revision)
1138 return
1139}
1140
1141// SetControl sets the security descriptor control bits.
1142func (sd *SECURITY_DESCRIPTOR) SetControl(controlBitsOfInterest SECURITY_DESCRIPTOR_CONTROL, controlBitsToSet SECURITY_DESCRIPTOR_CONTROL) error {
1143 return setSecurityDescriptorControl(sd, controlBitsOfInterest, controlBitsToSet)
1144}
1145
1146// RMControl returns the security descriptor resource manager control bits.
1147func (sd *SECURITY_DESCRIPTOR) RMControl() (control uint8, err error) {
1148 err = getSecurityDescriptorRMControl(sd, &control)
1149 return
1150}
1151
1152// SetRMControl sets the security descriptor resource manager control bits.
1153func (sd *SECURITY_DESCRIPTOR) SetRMControl(rmControl uint8) {
1154 setSecurityDescriptorRMControl(sd, &rmControl)
1155}
1156
1157// DACL returns the security descriptor DACL and whether it was defaulted. The dacl return value may be nil
1158// if a DACL exists but is an "empty DACL", meaning fully permissive. If the DACL does not exist, err returns
1159// ERROR_OBJECT_NOT_FOUND.
1160func (sd *SECURITY_DESCRIPTOR) DACL() (dacl *ACL, defaulted bool, err error) {
1161 var present bool
1162 err = getSecurityDescriptorDacl(sd, &present, &dacl, &defaulted)
1163 if !present {
1164 err = ERROR_OBJECT_NOT_FOUND
1165 }
1166 return
1167}
1168
1169// SetDACL sets the absolute security descriptor DACL.
1170func (absoluteSD *SECURITY_DESCRIPTOR) SetDACL(dacl *ACL, present, defaulted bool) error {
1171 return setSecurityDescriptorDacl(absoluteSD, present, dacl, defaulted)
1172}
1173
1174// SACL returns the security descriptor SACL and whether it was defaulted. The sacl return value may be nil
1175// if a SACL exists but is an "empty SACL", meaning fully permissive. If the SACL does not exist, err returns
1176// ERROR_OBJECT_NOT_FOUND.
1177func (sd *SECURITY_DESCRIPTOR) SACL() (sacl *ACL, defaulted bool, err error) {
1178 var present bool
1179 err = getSecurityDescriptorSacl(sd, &present, &sacl, &defaulted)
1180 if !present {
1181 err = ERROR_OBJECT_NOT_FOUND
1182 }
1183 return
1184}
1185
1186// SetSACL sets the absolute security descriptor SACL.
1187func (absoluteSD *SECURITY_DESCRIPTOR) SetSACL(sacl *ACL, present, defaulted bool) error {
1188 return setSecurityDescriptorSacl(absoluteSD, present, sacl, defaulted)
1189}
1190
1191// Owner returns the security descriptor owner and whether it was defaulted.
1192func (sd *SECURITY_DESCRIPTOR) Owner() (owner *SID, defaulted bool, err error) {
1193 err = getSecurityDescriptorOwner(sd, &owner, &defaulted)
1194 return
1195}
1196
1197// SetOwner sets the absolute security descriptor owner.
1198func (absoluteSD *SECURITY_DESCRIPTOR) SetOwner(owner *SID, defaulted bool) error {
1199 return setSecurityDescriptorOwner(absoluteSD, owner, defaulted)
1200}
1201
1202// Group returns the security descriptor group and whether it was defaulted.
1203func (sd *SECURITY_DESCRIPTOR) Group() (group *SID, defaulted bool, err error) {
1204 err = getSecurityDescriptorGroup(sd, &group, &defaulted)
1205 return
1206}
1207
1208// SetGroup sets the absolute security descriptor owner.
1209func (absoluteSD *SECURITY_DESCRIPTOR) SetGroup(group *SID, defaulted bool) error {
1210 return setSecurityDescriptorGroup(absoluteSD, group, defaulted)
1211}
1212
1213// Length returns the length of the security descriptor.
1214func (sd *SECURITY_DESCRIPTOR) Length() uint32 {
1215 return getSecurityDescriptorLength(sd)
1216}
1217
1218// IsValid returns whether the security descriptor is valid.
1219func (sd *SECURITY_DESCRIPTOR) IsValid() bool {
1220 return isValidSecurityDescriptor(sd)
1221}
1222
1223// String returns the SDDL form of the security descriptor, with a function signature that can be
1224// used with %v formatting directives.
1225func (sd *SECURITY_DESCRIPTOR) String() string {
1226 var sddl *uint16
1227 err := convertSecurityDescriptorToStringSecurityDescriptor(sd, 1, 0xff, &sddl, nil)
1228 if err != nil {
1229 return ""
1230 }
1231 defer LocalFree(Handle(unsafe.Pointer(sddl)))
1232 return UTF16ToString((*[(1 << 30) - 1]uint16)(unsafe.Pointer(sddl))[:])
1233}
1234
1235// ToAbsolute converts a self-relative security descriptor into an absolute one.
1236func (selfRelativeSD *SECURITY_DESCRIPTOR) ToAbsolute() (absoluteSD *SECURITY_DESCRIPTOR, err error) {
1237 control, _, err := selfRelativeSD.Control()
1238 if err != nil {
1239 return
1240 }
1241 if control&SE_SELF_RELATIVE == 0 {
1242 err = ERROR_INVALID_PARAMETER
1243 return
1244 }
1245 var absoluteSDSize, daclSize, saclSize, ownerSize, groupSize uint32
1246 err = makeAbsoluteSD(selfRelativeSD, nil, &absoluteSDSize,
1247 nil, &daclSize, nil, &saclSize, nil, &ownerSize, nil, &groupSize)
1248 switch err {
1249 case ERROR_INSUFFICIENT_BUFFER:
1250 case nil:
1251 // makeAbsoluteSD is expected to fail, but it succeeds.
1252 return nil, ERROR_INTERNAL_ERROR
1253 default:
1254 return nil, err
1255 }
1256 if absoluteSDSize > 0 {
1257 absoluteSD = (*SECURITY_DESCRIPTOR)(unsafe.Pointer(&make([]byte, absoluteSDSize)[0]))
1258 }
1259 var (
1260 dacl *ACL
1261 sacl *ACL
1262 owner *SID
1263 group *SID
1264 )
1265 if daclSize > 0 {
1266 dacl = (*ACL)(unsafe.Pointer(&make([]byte, daclSize)[0]))
1267 }
1268 if saclSize > 0 {
1269 sacl = (*ACL)(unsafe.Pointer(&make([]byte, saclSize)[0]))
1270 }
1271 if ownerSize > 0 {
1272 owner = (*SID)(unsafe.Pointer(&make([]byte, ownerSize)[0]))
1273 }
1274 if groupSize > 0 {
1275 group = (*SID)(unsafe.Pointer(&make([]byte, groupSize)[0]))
1276 }
1277 err = makeAbsoluteSD(selfRelativeSD, absoluteSD, &absoluteSDSize,
1278 dacl, &daclSize, sacl, &saclSize, owner, &ownerSize, group, &groupSize)
1279 return
1280}
1281
1282// ToSelfRelative converts an absolute security descriptor into a self-relative one.
1283func (absoluteSD *SECURITY_DESCRIPTOR) ToSelfRelative() (selfRelativeSD *SECURITY_DESCRIPTOR, err error) {
1284 control, _, err := absoluteSD.Control()
1285 if err != nil {
1286 return
1287 }
1288 if control&SE_SELF_RELATIVE != 0 {
1289 err = ERROR_INVALID_PARAMETER
1290 return
1291 }
1292 var selfRelativeSDSize uint32
1293 err = makeSelfRelativeSD(absoluteSD, nil, &selfRelativeSDSize)
1294 switch err {
1295 case ERROR_INSUFFICIENT_BUFFER:
1296 case nil:
1297 // makeSelfRelativeSD is expected to fail, but it succeeds.
1298 return nil, ERROR_INTERNAL_ERROR
1299 default:
1300 return nil, err
1301 }
1302 if selfRelativeSDSize > 0 {
1303 selfRelativeSD = (*SECURITY_DESCRIPTOR)(unsafe.Pointer(&make([]byte, selfRelativeSDSize)[0]))
1304 }
1305 err = makeSelfRelativeSD(absoluteSD, selfRelativeSD, &selfRelativeSDSize)
1306 return
1307}
1308
1309func (selfRelativeSD *SECURITY_DESCRIPTOR) copySelfRelativeSecurityDescriptor() *SECURITY_DESCRIPTOR {
1310 sdBytes := make([]byte, selfRelativeSD.Length())
1311 copy(sdBytes, (*[(1 << 31) - 1]byte)(unsafe.Pointer(selfRelativeSD))[:len(sdBytes)])
1312 return (*SECURITY_DESCRIPTOR)(unsafe.Pointer(&sdBytes[0]))
1313}
1314
1315// SecurityDescriptorFromString converts an SDDL string describing a security descriptor into a
1316// self-relative security descriptor object allocated on the Go heap.
1317func SecurityDescriptorFromString(sddl string) (sd *SECURITY_DESCRIPTOR, err error) {
1318 var winHeapSD *SECURITY_DESCRIPTOR
1319 err = convertStringSecurityDescriptorToSecurityDescriptor(sddl, 1, &winHeapSD, nil)
1320 if err != nil {
1321 return
1322 }
1323 defer LocalFree(Handle(unsafe.Pointer(winHeapSD)))
1324 return winHeapSD.copySelfRelativeSecurityDescriptor(), nil
1325}
1326
1327// GetSecurityInfo queries the security information for a given handle and returns the self-relative security
1328// descriptor result on the Go heap.
1329func GetSecurityInfo(handle Handle, objectType SE_OBJECT_TYPE, securityInformation SECURITY_INFORMATION) (sd *SECURITY_DESCRIPTOR, err error) {
1330 var winHeapSD *SECURITY_DESCRIPTOR
1331 err = getSecurityInfo(handle, objectType, securityInformation, nil, nil, nil, nil, &winHeapSD)
1332 if err != nil {
1333 return
1334 }
1335 defer LocalFree(Handle(unsafe.Pointer(winHeapSD)))
1336 return winHeapSD.copySelfRelativeSecurityDescriptor(), nil
1337}
1338
1339// GetNamedSecurityInfo queries the security information for a given named object and returns the self-relative security
1340// descriptor result on the Go heap.
1341func GetNamedSecurityInfo(objectName string, objectType SE_OBJECT_TYPE, securityInformation SECURITY_INFORMATION) (sd *SECURITY_DESCRIPTOR, err error) {
1342 var winHeapSD *SECURITY_DESCRIPTOR
1343 err = getNamedSecurityInfo(objectName, objectType, securityInformation, nil, nil, nil, nil, &winHeapSD)
1344 if err != nil {
1345 return
1346 }
1347 defer LocalFree(Handle(unsafe.Pointer(winHeapSD)))
1348 return winHeapSD.copySelfRelativeSecurityDescriptor(), nil
1349}
1350
1351// BuildSecurityDescriptor makes a new security descriptor using the input trustees, explicit access lists, and
1352// prior security descriptor to be merged, any of which can be nil, returning the self-relative security descriptor
1353// result on the Go heap.
1354func BuildSecurityDescriptor(owner *TRUSTEE, group *TRUSTEE, accessEntries []EXPLICIT_ACCESS, auditEntries []EXPLICIT_ACCESS, mergedSecurityDescriptor *SECURITY_DESCRIPTOR) (sd *SECURITY_DESCRIPTOR, err error) {
1355 var winHeapSD *SECURITY_DESCRIPTOR
1356 var winHeapSDSize uint32
1357 var firstAccessEntry *EXPLICIT_ACCESS
1358 if len(accessEntries) > 0 {
1359 firstAccessEntry = &accessEntries[0]
1360 }
1361 var firstAuditEntry *EXPLICIT_ACCESS
1362 if len(auditEntries) > 0 {
1363 firstAuditEntry = &auditEntries[0]
1364 }
1365 err = buildSecurityDescriptor(owner, group, uint32(len(accessEntries)), firstAccessEntry, uint32(len(auditEntries)), firstAuditEntry, mergedSecurityDescriptor, &winHeapSDSize, &winHeapSD)
1366 if err != nil {
1367 return
1368 }
1369 defer LocalFree(Handle(unsafe.Pointer(winHeapSD)))
1370 return winHeapSD.copySelfRelativeSecurityDescriptor(), nil
1371}
1372
1373// NewSecurityDescriptor creates and initializes a new absolute security descriptor.
1374func NewSecurityDescriptor() (absoluteSD *SECURITY_DESCRIPTOR, err error) {
1375 absoluteSD = &SECURITY_DESCRIPTOR{}
1376 err = initializeSecurityDescriptor(absoluteSD, 1)
1377 return
1378}
1379
1380// ACLFromEntries returns a new ACL on the Go heap containing a list of explicit entries as well as those of another ACL.
1381// Both explicitEntries and mergedACL are optional and can be nil.
1382func ACLFromEntries(explicitEntries []EXPLICIT_ACCESS, mergedACL *ACL) (acl *ACL, err error) {
1383 var firstExplicitEntry *EXPLICIT_ACCESS
1384 if len(explicitEntries) > 0 {
1385 firstExplicitEntry = &explicitEntries[0]
1386 }
1387 var winHeapACL *ACL
1388 err = setEntriesInAcl(uint32(len(explicitEntries)), firstExplicitEntry, mergedACL, &winHeapACL)
1389 if err != nil {
1390 return
1391 }
1392 defer LocalFree(Handle(unsafe.Pointer(winHeapACL)))
1393 aclBytes := make([]byte, winHeapACL.aclSize)
1394 copy(aclBytes, (*[(1 << 31) - 1]byte)(unsafe.Pointer(winHeapACL))[:len(aclBytes)])
1395 return (*ACL)(unsafe.Pointer(&aclBytes[0])), nil
1396}
diff --git a/vendor/golang.org/x/sys/windows/syscall_windows.go b/vendor/golang.org/x/sys/windows/syscall_windows.go
index abdefc3..053d664 100644
--- a/vendor/golang.org/x/sys/windows/syscall_windows.go
+++ b/vendor/golang.org/x/sys/windows/syscall_windows.go
@@ -57,6 +57,10 @@ const (
57 FILE_VOLUME_IS_COMPRESSED = 0x00008000 57 FILE_VOLUME_IS_COMPRESSED = 0x00008000
58 FILE_VOLUME_QUOTAS = 0x00000020 58 FILE_VOLUME_QUOTAS = 0x00000020
59 59
60 // Flags for LockFileEx.
61 LOCKFILE_FAIL_IMMEDIATELY = 0x00000001
62 LOCKFILE_EXCLUSIVE_LOCK = 0x00000002
63
60 // Return values of SleepEx and other APC functions 64 // Return values of SleepEx and other APC functions
61 STATUS_USER_APC = 0x000000C0 65 STATUS_USER_APC = 0x000000C0
62 WAIT_IO_COMPLETION = STATUS_USER_APC 66 WAIT_IO_COMPLETION = STATUS_USER_APC
@@ -136,6 +140,8 @@ func NewCallbackCDecl(fn interface{}) uintptr {
136//sys LoadLibraryEx(libname string, zero Handle, flags uintptr) (handle Handle, err error) = LoadLibraryExW 140//sys LoadLibraryEx(libname string, zero Handle, flags uintptr) (handle Handle, err error) = LoadLibraryExW
137//sys FreeLibrary(handle Handle) (err error) 141//sys FreeLibrary(handle Handle) (err error)
138//sys GetProcAddress(module Handle, procname string) (proc uintptr, err error) 142//sys GetProcAddress(module Handle, procname string) (proc uintptr, err error)
143//sys GetModuleFileName(module Handle, filename *uint16, size uint32) (n uint32, err error) = kernel32.GetModuleFileNameW
144//sys GetModuleHandleEx(flags uint32, moduleName *uint16, module *Handle) (err error) = kernel32.GetModuleHandleExW
139//sys GetVersion() (ver uint32, err error) 145//sys GetVersion() (ver uint32, err error)
140//sys FormatMessage(flags uint32, msgsrc uintptr, msgid uint32, langid uint32, buf []uint16, args *byte) (n uint32, err error) = FormatMessageW 146//sys FormatMessage(flags uint32, msgsrc uintptr, msgid uint32, langid uint32, buf []uint16, args *byte) (n uint32, err error) = FormatMessageW
141//sys ExitProcess(exitcode uint32) 147//sys ExitProcess(exitcode uint32)
@@ -160,6 +166,8 @@ func NewCallbackCDecl(fn interface{}) uintptr {
160//sys DeleteFile(path *uint16) (err error) = DeleteFileW 166//sys DeleteFile(path *uint16) (err error) = DeleteFileW
161//sys MoveFile(from *uint16, to *uint16) (err error) = MoveFileW 167//sys MoveFile(from *uint16, to *uint16) (err error) = MoveFileW
162//sys MoveFileEx(from *uint16, to *uint16, flags uint32) (err error) = MoveFileExW 168//sys MoveFileEx(from *uint16, to *uint16, flags uint32) (err error) = MoveFileExW
169//sys LockFileEx(file Handle, flags uint32, reserved uint32, bytesLow uint32, bytesHigh uint32, overlapped *Overlapped) (err error)
170//sys UnlockFileEx(file Handle, reserved uint32, bytesLow uint32, bytesHigh uint32, overlapped *Overlapped) (err error)
163//sys GetComputerName(buf *uint16, n *uint32) (err error) = GetComputerNameW 171//sys GetComputerName(buf *uint16, n *uint32) (err error) = GetComputerNameW
164//sys GetComputerNameEx(nametype uint32, buf *uint16, n *uint32) (err error) = GetComputerNameExW 172//sys GetComputerNameEx(nametype uint32, buf *uint16, n *uint32) (err error) = GetComputerNameExW
165//sys SetEndOfFile(handle Handle) (err error) 173//sys SetEndOfFile(handle Handle) (err error)
@@ -173,13 +181,11 @@ func NewCallbackCDecl(fn interface{}) uintptr {
173//sys CancelIoEx(s Handle, o *Overlapped) (err error) 181//sys CancelIoEx(s Handle, o *Overlapped) (err error)
174//sys CreateProcess(appName *uint16, commandLine *uint16, procSecurity *SecurityAttributes, threadSecurity *SecurityAttributes, inheritHandles bool, creationFlags uint32, env *uint16, currentDir *uint16, startupInfo *StartupInfo, outProcInfo *ProcessInformation) (err error) = CreateProcessW 182//sys CreateProcess(appName *uint16, commandLine *uint16, procSecurity *SecurityAttributes, threadSecurity *SecurityAttributes, inheritHandles bool, creationFlags uint32, env *uint16, currentDir *uint16, startupInfo *StartupInfo, outProcInfo *ProcessInformation) (err error) = CreateProcessW
175//sys OpenProcess(desiredAccess uint32, inheritHandle bool, processId uint32) (handle Handle, err error) 183//sys OpenProcess(desiredAccess uint32, inheritHandle bool, processId uint32) (handle Handle, err error)
176//sys ShellExecute(hwnd Handle, verb *uint16, file *uint16, args *uint16, cwd *uint16, showCmd int32) (err error) = shell32.ShellExecuteW 184//sys ShellExecute(hwnd Handle, verb *uint16, file *uint16, args *uint16, cwd *uint16, showCmd int32) (err error) [failretval<=32] = shell32.ShellExecuteW
177//sys shGetKnownFolderPath(id *KNOWNFOLDERID, flags uint32, token Token, path **uint16) (ret error) = shell32.SHGetKnownFolderPath 185//sys shGetKnownFolderPath(id *KNOWNFOLDERID, flags uint32, token Token, path **uint16) (ret error) = shell32.SHGetKnownFolderPath
178//sys TerminateProcess(handle Handle, exitcode uint32) (err error) 186//sys TerminateProcess(handle Handle, exitcode uint32) (err error)
179//sys GetExitCodeProcess(handle Handle, exitcode *uint32) (err error) 187//sys GetExitCodeProcess(handle Handle, exitcode *uint32) (err error)
180//sys GetStartupInfo(startupInfo *StartupInfo) (err error) = GetStartupInfoW 188//sys GetStartupInfo(startupInfo *StartupInfo) (err error) = GetStartupInfoW
181//sys GetCurrentProcess() (pseudoHandle Handle, err error)
182//sys GetCurrentThread() (pseudoHandle Handle, err error)
183//sys GetProcessTimes(handle Handle, creationTime *Filetime, exitTime *Filetime, kernelTime *Filetime, userTime *Filetime) (err error) 189//sys GetProcessTimes(handle Handle, creationTime *Filetime, exitTime *Filetime, kernelTime *Filetime, userTime *Filetime) (err error)
184//sys DuplicateHandle(hSourceProcessHandle Handle, hSourceHandle Handle, hTargetProcessHandle Handle, lpTargetHandle *Handle, dwDesiredAccess uint32, bInheritHandle bool, dwOptions uint32) (err error) 190//sys DuplicateHandle(hSourceProcessHandle Handle, hSourceHandle Handle, hTargetProcessHandle Handle, lpTargetHandle *Handle, dwDesiredAccess uint32, bInheritHandle bool, dwOptions uint32) (err error)
185//sys WaitForSingleObject(handle Handle, waitMilliseconds uint32) (event uint32, err error) [failretval==0xffffffff] 191//sys WaitForSingleObject(handle Handle, waitMilliseconds uint32) (event uint32, err error) [failretval==0xffffffff]
@@ -284,6 +290,7 @@ func NewCallbackCDecl(fn interface{}) uintptr {
284//sys FindNextVolumeMountPoint(findVolumeMountPoint Handle, volumeMountPoint *uint16, bufferLength uint32) (err error) = FindNextVolumeMountPointW 290//sys FindNextVolumeMountPoint(findVolumeMountPoint Handle, volumeMountPoint *uint16, bufferLength uint32) (err error) = FindNextVolumeMountPointW
285//sys FindVolumeClose(findVolume Handle) (err error) 291//sys FindVolumeClose(findVolume Handle) (err error)
286//sys FindVolumeMountPointClose(findVolumeMountPoint Handle) (err error) 292//sys FindVolumeMountPointClose(findVolumeMountPoint Handle) (err error)
293//sys GetDiskFreeSpaceEx(directoryName *uint16, freeBytesAvailableToCaller *uint64, totalNumberOfBytes *uint64, totalNumberOfFreeBytes *uint64) (err error) = GetDiskFreeSpaceExW
287//sys GetDriveType(rootPathName *uint16) (driveType uint32) = GetDriveTypeW 294//sys GetDriveType(rootPathName *uint16) (driveType uint32) = GetDriveTypeW
288//sys GetLogicalDrives() (drivesBitMask uint32, err error) [failretval==0] 295//sys GetLogicalDrives() (drivesBitMask uint32, err error) [failretval==0]
289//sys GetLogicalDriveStrings(bufferLength uint32, buffer *uint16) (n uint32, err error) [failretval==0] = GetLogicalDriveStringsW 296//sys GetLogicalDriveStrings(bufferLength uint32, buffer *uint16) (n uint32, err error) [failretval==0] = GetLogicalDriveStringsW
@@ -296,15 +303,54 @@ func NewCallbackCDecl(fn interface{}) uintptr {
296//sys SetVolumeLabel(rootPathName *uint16, volumeName *uint16) (err error) = SetVolumeLabelW 303//sys SetVolumeLabel(rootPathName *uint16, volumeName *uint16) (err error) = SetVolumeLabelW
297//sys SetVolumeMountPoint(volumeMountPoint *uint16, volumeName *uint16) (err error) = SetVolumeMountPointW 304//sys SetVolumeMountPoint(volumeMountPoint *uint16, volumeName *uint16) (err error) = SetVolumeMountPointW
298//sys MessageBox(hwnd Handle, text *uint16, caption *uint16, boxtype uint32) (ret int32, err error) [failretval==0] = user32.MessageBoxW 305//sys MessageBox(hwnd Handle, text *uint16, caption *uint16, boxtype uint32) (ret int32, err error) [failretval==0] = user32.MessageBoxW
306//sys ExitWindowsEx(flags uint32, reason uint32) (err error) = user32.ExitWindowsEx
307//sys InitiateSystemShutdownEx(machineName *uint16, message *uint16, timeout uint32, forceAppsClosed bool, rebootAfterShutdown bool, reason uint32) (err error) = advapi32.InitiateSystemShutdownExW
308//sys SetProcessShutdownParameters(level uint32, flags uint32) (err error) = kernel32.SetProcessShutdownParameters
309//sys GetProcessShutdownParameters(level *uint32, flags *uint32) (err error) = kernel32.GetProcessShutdownParameters
299//sys clsidFromString(lpsz *uint16, pclsid *GUID) (ret error) = ole32.CLSIDFromString 310//sys clsidFromString(lpsz *uint16, pclsid *GUID) (ret error) = ole32.CLSIDFromString
300//sys stringFromGUID2(rguid *GUID, lpsz *uint16, cchMax int32) (chars int32) = ole32.StringFromGUID2 311//sys stringFromGUID2(rguid *GUID, lpsz *uint16, cchMax int32) (chars int32) = ole32.StringFromGUID2
301//sys coCreateGuid(pguid *GUID) (ret error) = ole32.CoCreateGuid 312//sys coCreateGuid(pguid *GUID) (ret error) = ole32.CoCreateGuid
302//sys CoTaskMemFree(address unsafe.Pointer) = ole32.CoTaskMemFree 313//sys CoTaskMemFree(address unsafe.Pointer) = ole32.CoTaskMemFree
303//sys rtlGetVersion(info *OsVersionInfoEx) (ret error) = ntdll.RtlGetVersion 314//sys rtlGetVersion(info *OsVersionInfoEx) (ret error) = ntdll.RtlGetVersion
304//sys rtlGetNtVersionNumbers(majorVersion *uint32, minorVersion *uint32, buildNumber *uint32) = ntdll.RtlGetNtVersionNumbers 315//sys rtlGetNtVersionNumbers(majorVersion *uint32, minorVersion *uint32, buildNumber *uint32) = ntdll.RtlGetNtVersionNumbers
316//sys getProcessPreferredUILanguages(flags uint32, numLanguages *uint32, buf *uint16, bufSize *uint32) (err error) = kernel32.GetProcessPreferredUILanguages
317//sys getThreadPreferredUILanguages(flags uint32, numLanguages *uint32, buf *uint16, bufSize *uint32) (err error) = kernel32.GetThreadPreferredUILanguages
318//sys getUserPreferredUILanguages(flags uint32, numLanguages *uint32, buf *uint16, bufSize *uint32) (err error) = kernel32.GetUserPreferredUILanguages
319//sys getSystemPreferredUILanguages(flags uint32, numLanguages *uint32, buf *uint16, bufSize *uint32) (err error) = kernel32.GetSystemPreferredUILanguages
320
321// Process Status API (PSAPI)
322//sys EnumProcesses(processIds []uint32, bytesReturned *uint32) (err error) = psapi.EnumProcesses
305 323
306// syscall interface implementation for other packages 324// syscall interface implementation for other packages
307 325
326// GetCurrentProcess returns the handle for the current process.
327// It is a pseudo handle that does not need to be closed.
328// The returned error is always nil.
329//
330// Deprecated: use CurrentProcess for the same Handle without the nil
331// error.
332func GetCurrentProcess() (Handle, error) {
333 return CurrentProcess(), nil
334}
335
336// CurrentProcess returns the handle for the current process.
337// It is a pseudo handle that does not need to be closed.
338func CurrentProcess() Handle { return Handle(^uintptr(1 - 1)) }
339
340// GetCurrentThread returns the handle for the current thread.
341// It is a pseudo handle that does not need to be closed.
342// The returned error is always nil.
343//
344// Deprecated: use CurrentThread for the same Handle without the nil
345// error.
346func GetCurrentThread() (Handle, error) {
347 return CurrentThread(), nil
348}
349
350// CurrentThread returns the handle for the current thread.
351// It is a pseudo handle that does not need to be closed.
352func CurrentThread() Handle { return Handle(^uintptr(2 - 1)) }
353
308// GetProcAddressByOrdinal retrieves the address of the exported 354// GetProcAddressByOrdinal retrieves the address of the exported
309// function from module by ordinal. 355// function from module by ordinal.
310func GetProcAddressByOrdinal(module Handle, ordinal uintptr) (proc uintptr, err error) { 356func GetProcAddressByOrdinal(module Handle, ordinal uintptr) (proc uintptr, err error) {
@@ -371,7 +417,11 @@ func Open(path string, mode int, perm uint32) (fd Handle, err error) {
371 default: 417 default:
372 createmode = OPEN_EXISTING 418 createmode = OPEN_EXISTING
373 } 419 }
374 h, e := CreateFile(pathp, access, sharemode, sa, createmode, FILE_ATTRIBUTE_NORMAL, 0) 420 var attrs uint32 = FILE_ATTRIBUTE_NORMAL
421 if perm&S_IWRITE == 0 {
422 attrs = FILE_ATTRIBUTE_READONLY
423 }
424 h, e := CreateFile(pathp, access, sharemode, sa, createmode, attrs, 0)
375 return h, e 425 return h, e
376} 426}
377 427
@@ -651,6 +701,8 @@ const socket_error = uintptr(^uint32(0))
651//sys WSACleanup() (err error) [failretval==socket_error] = ws2_32.WSACleanup 701//sys WSACleanup() (err error) [failretval==socket_error] = ws2_32.WSACleanup
652//sys WSAIoctl(s Handle, iocc uint32, inbuf *byte, cbif uint32, outbuf *byte, cbob uint32, cbbr *uint32, overlapped *Overlapped, completionRoutine uintptr) (err error) [failretval==socket_error] = ws2_32.WSAIoctl 702//sys WSAIoctl(s Handle, iocc uint32, inbuf *byte, cbif uint32, outbuf *byte, cbob uint32, cbbr *uint32, overlapped *Overlapped, completionRoutine uintptr) (err error) [failretval==socket_error] = ws2_32.WSAIoctl
653//sys socket(af int32, typ int32, protocol int32) (handle Handle, err error) [failretval==InvalidHandle] = ws2_32.socket 703//sys socket(af int32, typ int32, protocol int32) (handle Handle, err error) [failretval==InvalidHandle] = ws2_32.socket
704//sys sendto(s Handle, buf []byte, flags int32, to unsafe.Pointer, tolen int32) (err error) [failretval==socket_error] = ws2_32.sendto
705//sys recvfrom(s Handle, buf []byte, flags int32, from *RawSockaddrAny, fromlen *int32) (n int32, err error) [failretval==-1] = ws2_32.recvfrom
654//sys Setsockopt(s Handle, level int32, optname int32, optval *byte, optlen int32) (err error) [failretval==socket_error] = ws2_32.setsockopt 706//sys Setsockopt(s Handle, level int32, optname int32, optval *byte, optlen int32) (err error) [failretval==socket_error] = ws2_32.setsockopt
655//sys Getsockopt(s Handle, level int32, optname int32, optval *byte, optlen *int32) (err error) [failretval==socket_error] = ws2_32.getsockopt 707//sys Getsockopt(s Handle, level int32, optname int32, optval *byte, optlen *int32) (err error) [failretval==socket_error] = ws2_32.getsockopt
656//sys bind(s Handle, name unsafe.Pointer, namelen int32) (err error) [failretval==socket_error] = ws2_32.bind 708//sys bind(s Handle, name unsafe.Pointer, namelen int32) (err error) [failretval==socket_error] = ws2_32.bind
@@ -818,7 +870,7 @@ func (rsa *RawSockaddrAny) Sockaddr() (Sockaddr, error) {
818 for n < len(pp.Path) && pp.Path[n] != 0 { 870 for n < len(pp.Path) && pp.Path[n] != 0 {
819 n++ 871 n++
820 } 872 }
821 bytes := (*[10000]byte)(unsafe.Pointer(&pp.Path[0]))[0:n] 873 bytes := (*[len(pp.Path)]byte)(unsafe.Pointer(&pp.Path[0]))[0:n]
822 sa.Name = string(bytes) 874 sa.Name = string(bytes)
823 return sa, nil 875 return sa, nil
824 876
@@ -1079,10 +1131,27 @@ func NsecToTimespec(nsec int64) (ts Timespec) {
1079// TODO(brainman): fix all needed for net 1131// TODO(brainman): fix all needed for net
1080 1132
1081func Accept(fd Handle) (nfd Handle, sa Sockaddr, err error) { return 0, nil, syscall.EWINDOWS } 1133func Accept(fd Handle) (nfd Handle, sa Sockaddr, err error) { return 0, nil, syscall.EWINDOWS }
1134
1082func Recvfrom(fd Handle, p []byte, flags int) (n int, from Sockaddr, err error) { 1135func Recvfrom(fd Handle, p []byte, flags int) (n int, from Sockaddr, err error) {
1083 return 0, nil, syscall.EWINDOWS 1136 var rsa RawSockaddrAny
1137 l := int32(unsafe.Sizeof(rsa))
1138 n32, err := recvfrom(fd, p, int32(flags), &rsa, &l)
1139 n = int(n32)
1140 if err != nil {
1141 return
1142 }
1143 from, err = rsa.Sockaddr()
1144 return
1145}
1146
1147func Sendto(fd Handle, p []byte, flags int, to Sockaddr) (err error) {
1148 ptr, l, err := to.sockaddr()
1149 if err != nil {
1150 return err
1151 }
1152 return sendto(fd, p, int32(flags), ptr, l)
1084} 1153}
1085func Sendto(fd Handle, p []byte, flags int, to Sockaddr) (err error) { return syscall.EWINDOWS } 1154
1086func SetsockoptTimeval(fd Handle, level, opt int, tv *Timeval) (err error) { return syscall.EWINDOWS } 1155func SetsockoptTimeval(fd Handle, level, opt int, tv *Timeval) (err error) { return syscall.EWINDOWS }
1087 1156
1088// The Linger struct is wrong but we only noticed after Go 1. 1157// The Linger struct is wrong but we only noticed after Go 1.
@@ -1332,3 +1401,54 @@ func RtlGetNtVersionNumbers() (majorVersion, minorVersion, buildNumber uint32) {
1332 buildNumber &= 0xffff 1401 buildNumber &= 0xffff
1333 return 1402 return
1334} 1403}
1404
1405// GetProcessPreferredUILanguages retrieves the process preferred UI languages.
1406func GetProcessPreferredUILanguages(flags uint32) ([]string, error) {
1407 return getUILanguages(flags, getProcessPreferredUILanguages)
1408}
1409
1410// GetThreadPreferredUILanguages retrieves the thread preferred UI languages for the current thread.
1411func GetThreadPreferredUILanguages(flags uint32) ([]string, error) {
1412 return getUILanguages(flags, getThreadPreferredUILanguages)
1413}
1414
1415// GetUserPreferredUILanguages retrieves information about the user preferred UI languages.
1416func GetUserPreferredUILanguages(flags uint32) ([]string, error) {
1417 return getUILanguages(flags, getUserPreferredUILanguages)
1418}
1419
1420// GetSystemPreferredUILanguages retrieves the system preferred UI languages.
1421func GetSystemPreferredUILanguages(flags uint32) ([]string, error) {
1422 return getUILanguages(flags, getSystemPreferredUILanguages)
1423}
1424
1425func getUILanguages(flags uint32, f func(flags uint32, numLanguages *uint32, buf *uint16, bufSize *uint32) error) ([]string, error) {
1426 size := uint32(128)
1427 for {
1428 var numLanguages uint32
1429 buf := make([]uint16, size)
1430 err := f(flags, &numLanguages, &buf[0], &size)
1431 if err == ERROR_INSUFFICIENT_BUFFER {
1432 continue
1433 }
1434 if err != nil {
1435 return nil, err
1436 }
1437 buf = buf[:size]
1438 if numLanguages == 0 || len(buf) == 0 { // GetProcessPreferredUILanguages may return numLanguages==0 with "\0\0"
1439 return []string{}, nil
1440 }
1441 if buf[len(buf)-1] == 0 {
1442 buf = buf[:len(buf)-1] // remove terminating null
1443 }
1444 languages := make([]string, 0, numLanguages)
1445 from := 0
1446 for i, c := range buf {
1447 if c == 0 {
1448 languages = append(languages, string(utf16.Decode(buf[from:i])))
1449 from = i + 1
1450 }
1451 }
1452 return languages, nil
1453 }
1454}
diff --git a/vendor/golang.org/x/sys/windows/types_windows.go b/vendor/golang.org/x/sys/windows/types_windows.go
index 1ef80cd..809fff0 100644
--- a/vendor/golang.org/x/sys/windows/types_windows.go
+++ b/vendor/golang.org/x/sys/windows/types_windows.go
@@ -62,11 +62,6 @@ var signals = [...]string{
62} 62}
63 63
64const ( 64const (
65 GENERIC_READ = 0x80000000
66 GENERIC_WRITE = 0x40000000
67 GENERIC_EXECUTE = 0x20000000
68 GENERIC_ALL = 0x10000000
69
70 FILE_LIST_DIRECTORY = 0x00000001 65 FILE_LIST_DIRECTORY = 0x00000001
71 FILE_APPEND_DATA = 0x00000004 66 FILE_APPEND_DATA = 0x00000004
72 FILE_WRITE_ATTRIBUTES = 0x00000100 67 FILE_WRITE_ATTRIBUTES = 0x00000100
@@ -158,13 +153,6 @@ const (
158 WAIT_OBJECT_0 = 0x00000000 153 WAIT_OBJECT_0 = 0x00000000
159 WAIT_FAILED = 0xFFFFFFFF 154 WAIT_FAILED = 0xFFFFFFFF
160 155
161 // Standard access rights.
162 DELETE = 0x00010000
163 READ_CONTROL = 0x00020000
164 SYNCHRONIZE = 0x00100000
165 WRITE_DAC = 0x00040000
166 WRITE_OWNER = 0x00080000
167
168 // Access rights for process. 156 // Access rights for process.
169 PROCESS_CREATE_PROCESS = 0x0080 157 PROCESS_CREATE_PROCESS = 0x0080
170 PROCESS_CREATE_THREAD = 0x0002 158 PROCESS_CREATE_THREAD = 0x0002
@@ -483,12 +471,6 @@ func NsecToTimeval(nsec int64) (tv Timeval) {
483 return 471 return
484} 472}
485 473
486type SecurityAttributes struct {
487 Length uint32
488 SecurityDescriptor uintptr
489 InheritHandle uint32
490}
491
492type Overlapped struct { 474type Overlapped struct {
493 Internal uintptr 475 Internal uintptr
494 InternalHigh uintptr 476 InternalHigh uintptr
@@ -699,18 +681,26 @@ const (
699 AF_UNSPEC = 0 681 AF_UNSPEC = 0
700 AF_UNIX = 1 682 AF_UNIX = 1
701 AF_INET = 2 683 AF_INET = 2
702 AF_INET6 = 23
703 AF_NETBIOS = 17 684 AF_NETBIOS = 17
685 AF_INET6 = 23
686 AF_IRDA = 26
687 AF_BTH = 32
704 688
705 SOCK_STREAM = 1 689 SOCK_STREAM = 1
706 SOCK_DGRAM = 2 690 SOCK_DGRAM = 2
707 SOCK_RAW = 3 691 SOCK_RAW = 3
692 SOCK_RDM = 4
708 SOCK_SEQPACKET = 5 693 SOCK_SEQPACKET = 5
709 694
710 IPPROTO_IP = 0 695 IPPROTO_IP = 0
711 IPPROTO_IPV6 = 0x29 696 IPPROTO_ICMP = 1
712 IPPROTO_TCP = 6 697 IPPROTO_IGMP = 2
713 IPPROTO_UDP = 17 698 BTHPROTO_RFCOMM = 3
699 IPPROTO_TCP = 6
700 IPPROTO_UDP = 17
701 IPPROTO_IPV6 = 41
702 IPPROTO_ICMPV6 = 58
703 IPPROTO_RM = 113
714 704
715 SOL_SOCKET = 0xffff 705 SOL_SOCKET = 0xffff
716 SO_REUSEADDR = 4 706 SO_REUSEADDR = 4
@@ -719,6 +709,7 @@ const (
719 SO_BROADCAST = 32 709 SO_BROADCAST = 32
720 SO_LINGER = 128 710 SO_LINGER = 128
721 SO_RCVBUF = 0x1002 711 SO_RCVBUF = 0x1002
712 SO_RCVTIMEO = 0x1006
722 SO_SNDBUF = 0x1001 713 SO_SNDBUF = 0x1001
723 SO_UPDATE_ACCEPT_CONTEXT = 0x700b 714 SO_UPDATE_ACCEPT_CONTEXT = 0x700b
724 SO_UPDATE_CONNECT_CONTEXT = 0x7010 715 SO_UPDATE_CONNECT_CONTEXT = 0x7010
@@ -1688,3 +1679,108 @@ type OsVersionInfoEx struct {
1688 ProductType byte 1679 ProductType byte
1689 _ byte 1680 _ byte
1690} 1681}
1682
1683const (
1684 EWX_LOGOFF = 0x00000000
1685 EWX_SHUTDOWN = 0x00000001
1686 EWX_REBOOT = 0x00000002
1687 EWX_FORCE = 0x00000004
1688 EWX_POWEROFF = 0x00000008
1689 EWX_FORCEIFHUNG = 0x00000010
1690 EWX_QUICKRESOLVE = 0x00000020
1691 EWX_RESTARTAPPS = 0x00000040
1692 EWX_HYBRID_SHUTDOWN = 0x00400000
1693 EWX_BOOTOPTIONS = 0x01000000
1694
1695 SHTDN_REASON_FLAG_COMMENT_REQUIRED = 0x01000000
1696 SHTDN_REASON_FLAG_DIRTY_PROBLEM_ID_REQUIRED = 0x02000000
1697 SHTDN_REASON_FLAG_CLEAN_UI = 0x04000000
1698 SHTDN_REASON_FLAG_DIRTY_UI = 0x08000000
1699 SHTDN_REASON_FLAG_USER_DEFINED = 0x40000000
1700 SHTDN_REASON_FLAG_PLANNED = 0x80000000
1701 SHTDN_REASON_MAJOR_OTHER = 0x00000000
1702 SHTDN_REASON_MAJOR_NONE = 0x00000000
1703 SHTDN_REASON_MAJOR_HARDWARE = 0x00010000
1704 SHTDN_REASON_MAJOR_OPERATINGSYSTEM = 0x00020000
1705 SHTDN_REASON_MAJOR_SOFTWARE = 0x00030000
1706 SHTDN_REASON_MAJOR_APPLICATION = 0x00040000
1707 SHTDN_REASON_MAJOR_SYSTEM = 0x00050000
1708 SHTDN_REASON_MAJOR_POWER = 0x00060000
1709 SHTDN_REASON_MAJOR_LEGACY_API = 0x00070000
1710 SHTDN_REASON_MINOR_OTHER = 0x00000000
1711 SHTDN_REASON_MINOR_NONE = 0x000000ff
1712 SHTDN_REASON_MINOR_MAINTENANCE = 0x00000001
1713 SHTDN_REASON_MINOR_INSTALLATION = 0x00000002
1714 SHTDN_REASON_MINOR_UPGRADE = 0x00000003
1715 SHTDN_REASON_MINOR_RECONFIG = 0x00000004
1716 SHTDN_REASON_MINOR_HUNG = 0x00000005
1717 SHTDN_REASON_MINOR_UNSTABLE = 0x00000006
1718 SHTDN_REASON_MINOR_DISK = 0x00000007
1719 SHTDN_REASON_MINOR_PROCESSOR = 0x00000008
1720 SHTDN_REASON_MINOR_NETWORKCARD = 0x00000009
1721 SHTDN_REASON_MINOR_POWER_SUPPLY = 0x0000000a
1722 SHTDN_REASON_MINOR_CORDUNPLUGGED = 0x0000000b
1723 SHTDN_REASON_MINOR_ENVIRONMENT = 0x0000000c
1724 SHTDN_REASON_MINOR_HARDWARE_DRIVER = 0x0000000d
1725 SHTDN_REASON_MINOR_OTHERDRIVER = 0x0000000e
1726 SHTDN_REASON_MINOR_BLUESCREEN = 0x0000000F
1727 SHTDN_REASON_MINOR_SERVICEPACK = 0x00000010
1728 SHTDN_REASON_MINOR_HOTFIX = 0x00000011
1729 SHTDN_REASON_MINOR_SECURITYFIX = 0x00000012
1730 SHTDN_REASON_MINOR_SECURITY = 0x00000013
1731 SHTDN_REASON_MINOR_NETWORK_CONNECTIVITY = 0x00000014
1732 SHTDN_REASON_MINOR_WMI = 0x00000015
1733 SHTDN_REASON_MINOR_SERVICEPACK_UNINSTALL = 0x00000016
1734 SHTDN_REASON_MINOR_HOTFIX_UNINSTALL = 0x00000017
1735 SHTDN_REASON_MINOR_SECURITYFIX_UNINSTALL = 0x00000018
1736 SHTDN_REASON_MINOR_MMC = 0x00000019
1737 SHTDN_REASON_MINOR_SYSTEMRESTORE = 0x0000001a
1738 SHTDN_REASON_MINOR_TERMSRV = 0x00000020
1739 SHTDN_REASON_MINOR_DC_PROMOTION = 0x00000021
1740 SHTDN_REASON_MINOR_DC_DEMOTION = 0x00000022
1741 SHTDN_REASON_UNKNOWN = SHTDN_REASON_MINOR_NONE
1742 SHTDN_REASON_LEGACY_API = SHTDN_REASON_MAJOR_LEGACY_API | SHTDN_REASON_FLAG_PLANNED
1743 SHTDN_REASON_VALID_BIT_MASK = 0xc0ffffff
1744
1745 SHUTDOWN_NORETRY = 0x1
1746)
1747
1748// Flags used for GetModuleHandleEx
1749const (
1750 GET_MODULE_HANDLE_EX_FLAG_PIN = 1
1751 GET_MODULE_HANDLE_EX_FLAG_UNCHANGED_REFCOUNT = 2
1752 GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS = 4
1753)
1754
1755// MUI function flag values
1756const (
1757 MUI_LANGUAGE_ID = 0x4
1758 MUI_LANGUAGE_NAME = 0x8
1759 MUI_MERGE_SYSTEM_FALLBACK = 0x10
1760 MUI_MERGE_USER_FALLBACK = 0x20
1761 MUI_UI_FALLBACK = MUI_MERGE_SYSTEM_FALLBACK | MUI_MERGE_USER_FALLBACK
1762 MUI_THREAD_LANGUAGES = 0x40
1763 MUI_CONSOLE_FILTER = 0x100
1764 MUI_COMPLEX_SCRIPT_FILTER = 0x200
1765 MUI_RESET_FILTERS = 0x001
1766 MUI_USER_PREFERRED_UI_LANGUAGES = 0x10
1767 MUI_USE_INSTALLED_LANGUAGES = 0x20
1768 MUI_USE_SEARCH_ALL_LANGUAGES = 0x40
1769 MUI_LANG_NEUTRAL_PE_FILE = 0x100
1770 MUI_NON_LANG_NEUTRAL_FILE = 0x200
1771 MUI_MACHINE_LANGUAGE_SETTINGS = 0x400
1772 MUI_FILETYPE_NOT_LANGUAGE_NEUTRAL = 0x001
1773 MUI_FILETYPE_LANGUAGE_NEUTRAL_MAIN = 0x002
1774 MUI_FILETYPE_LANGUAGE_NEUTRAL_MUI = 0x004
1775 MUI_QUERY_TYPE = 0x001
1776 MUI_QUERY_CHECKSUM = 0x002
1777 MUI_QUERY_LANGUAGE_NAME = 0x004
1778 MUI_QUERY_RESOURCE_TYPES = 0x008
1779 MUI_FILEINFO_VERSION = 0x001
1780
1781 MUI_FULL_LANGUAGE = 0x01
1782 MUI_PARTIAL_LANGUAGE = 0x02
1783 MUI_LIP_LANGUAGE = 0x04
1784 MUI_LANGUAGE_INSTALLED = 0x20
1785 MUI_LANGUAGE_LICENSED = 0x40
1786)
diff --git a/vendor/golang.org/x/sys/windows/zsyscall_windows.go b/vendor/golang.org/x/sys/windows/zsyscall_windows.go
index 9c448be..2aa4fa6 100644
--- a/vendor/golang.org/x/sys/windows/zsyscall_windows.go
+++ b/vendor/golang.org/x/sys/windows/zsyscall_windows.go
@@ -44,6 +44,7 @@ var (
44 moduser32 = NewLazySystemDLL("user32.dll") 44 moduser32 = NewLazySystemDLL("user32.dll")
45 modole32 = NewLazySystemDLL("ole32.dll") 45 modole32 = NewLazySystemDLL("ole32.dll")
46 modntdll = NewLazySystemDLL("ntdll.dll") 46 modntdll = NewLazySystemDLL("ntdll.dll")
47 modpsapi = NewLazySystemDLL("psapi.dll")
47 modws2_32 = NewLazySystemDLL("ws2_32.dll") 48 modws2_32 = NewLazySystemDLL("ws2_32.dll")
48 moddnsapi = NewLazySystemDLL("dnsapi.dll") 49 moddnsapi = NewLazySystemDLL("dnsapi.dll")
49 modiphlpapi = NewLazySystemDLL("iphlpapi.dll") 50 modiphlpapi = NewLazySystemDLL("iphlpapi.dll")
@@ -51,269 +52,308 @@ var (
51 modnetapi32 = NewLazySystemDLL("netapi32.dll") 52 modnetapi32 = NewLazySystemDLL("netapi32.dll")
52 modwtsapi32 = NewLazySystemDLL("wtsapi32.dll") 53 modwtsapi32 = NewLazySystemDLL("wtsapi32.dll")
53 54
54 procRegisterEventSourceW = modadvapi32.NewProc("RegisterEventSourceW") 55 procRegisterEventSourceW = modadvapi32.NewProc("RegisterEventSourceW")
55 procDeregisterEventSource = modadvapi32.NewProc("DeregisterEventSource") 56 procDeregisterEventSource = modadvapi32.NewProc("DeregisterEventSource")
56 procReportEventW = modadvapi32.NewProc("ReportEventW") 57 procReportEventW = modadvapi32.NewProc("ReportEventW")
57 procOpenSCManagerW = modadvapi32.NewProc("OpenSCManagerW") 58 procOpenSCManagerW = modadvapi32.NewProc("OpenSCManagerW")
58 procCloseServiceHandle = modadvapi32.NewProc("CloseServiceHandle") 59 procCloseServiceHandle = modadvapi32.NewProc("CloseServiceHandle")
59 procCreateServiceW = modadvapi32.NewProc("CreateServiceW") 60 procCreateServiceW = modadvapi32.NewProc("CreateServiceW")
60 procOpenServiceW = modadvapi32.NewProc("OpenServiceW") 61 procOpenServiceW = modadvapi32.NewProc("OpenServiceW")
61 procDeleteService = modadvapi32.NewProc("DeleteService") 62 procDeleteService = modadvapi32.NewProc("DeleteService")
62 procStartServiceW = modadvapi32.NewProc("StartServiceW") 63 procStartServiceW = modadvapi32.NewProc("StartServiceW")
63 procQueryServiceStatus = modadvapi32.NewProc("QueryServiceStatus") 64 procQueryServiceStatus = modadvapi32.NewProc("QueryServiceStatus")
64 procQueryServiceLockStatusW = modadvapi32.NewProc("QueryServiceLockStatusW") 65 procQueryServiceLockStatusW = modadvapi32.NewProc("QueryServiceLockStatusW")
65 procControlService = modadvapi32.NewProc("ControlService") 66 procControlService = modadvapi32.NewProc("ControlService")
66 procStartServiceCtrlDispatcherW = modadvapi32.NewProc("StartServiceCtrlDispatcherW") 67 procStartServiceCtrlDispatcherW = modadvapi32.NewProc("StartServiceCtrlDispatcherW")
67 procSetServiceStatus = modadvapi32.NewProc("SetServiceStatus") 68 procSetServiceStatus = modadvapi32.NewProc("SetServiceStatus")
68 procChangeServiceConfigW = modadvapi32.NewProc("ChangeServiceConfigW") 69 procChangeServiceConfigW = modadvapi32.NewProc("ChangeServiceConfigW")
69 procQueryServiceConfigW = modadvapi32.NewProc("QueryServiceConfigW") 70 procQueryServiceConfigW = modadvapi32.NewProc("QueryServiceConfigW")
70 procChangeServiceConfig2W = modadvapi32.NewProc("ChangeServiceConfig2W") 71 procChangeServiceConfig2W = modadvapi32.NewProc("ChangeServiceConfig2W")
71 procQueryServiceConfig2W = modadvapi32.NewProc("QueryServiceConfig2W") 72 procQueryServiceConfig2W = modadvapi32.NewProc("QueryServiceConfig2W")
72 procEnumServicesStatusExW = modadvapi32.NewProc("EnumServicesStatusExW") 73 procEnumServicesStatusExW = modadvapi32.NewProc("EnumServicesStatusExW")
73 procQueryServiceStatusEx = modadvapi32.NewProc("QueryServiceStatusEx") 74 procQueryServiceStatusEx = modadvapi32.NewProc("QueryServiceStatusEx")
74 procNotifyServiceStatusChangeW = modadvapi32.NewProc("NotifyServiceStatusChangeW") 75 procNotifyServiceStatusChangeW = modadvapi32.NewProc("NotifyServiceStatusChangeW")
75 procGetLastError = modkernel32.NewProc("GetLastError") 76 procGetLastError = modkernel32.NewProc("GetLastError")
76 procLoadLibraryW = modkernel32.NewProc("LoadLibraryW") 77 procLoadLibraryW = modkernel32.NewProc("LoadLibraryW")
77 procLoadLibraryExW = modkernel32.NewProc("LoadLibraryExW") 78 procLoadLibraryExW = modkernel32.NewProc("LoadLibraryExW")
78 procFreeLibrary = modkernel32.NewProc("FreeLibrary") 79 procFreeLibrary = modkernel32.NewProc("FreeLibrary")
79 procGetProcAddress = modkernel32.NewProc("GetProcAddress") 80 procGetProcAddress = modkernel32.NewProc("GetProcAddress")
80 procGetVersion = modkernel32.NewProc("GetVersion") 81 procGetModuleFileNameW = modkernel32.NewProc("GetModuleFileNameW")
81 procFormatMessageW = modkernel32.NewProc("FormatMessageW") 82 procGetModuleHandleExW = modkernel32.NewProc("GetModuleHandleExW")
82 procExitProcess = modkernel32.NewProc("ExitProcess") 83 procGetVersion = modkernel32.NewProc("GetVersion")
83 procIsWow64Process = modkernel32.NewProc("IsWow64Process") 84 procFormatMessageW = modkernel32.NewProc("FormatMessageW")
84 procCreateFileW = modkernel32.NewProc("CreateFileW") 85 procExitProcess = modkernel32.NewProc("ExitProcess")
85 procReadFile = modkernel32.NewProc("ReadFile") 86 procIsWow64Process = modkernel32.NewProc("IsWow64Process")
86 procWriteFile = modkernel32.NewProc("WriteFile") 87 procCreateFileW = modkernel32.NewProc("CreateFileW")
87 procGetOverlappedResult = modkernel32.NewProc("GetOverlappedResult") 88 procReadFile = modkernel32.NewProc("ReadFile")
88 procSetFilePointer = modkernel32.NewProc("SetFilePointer") 89 procWriteFile = modkernel32.NewProc("WriteFile")
89 procCloseHandle = modkernel32.NewProc("CloseHandle") 90 procGetOverlappedResult = modkernel32.NewProc("GetOverlappedResult")
90 procGetStdHandle = modkernel32.NewProc("GetStdHandle") 91 procSetFilePointer = modkernel32.NewProc("SetFilePointer")
91 procSetStdHandle = modkernel32.NewProc("SetStdHandle") 92 procCloseHandle = modkernel32.NewProc("CloseHandle")
92 procFindFirstFileW = modkernel32.NewProc("FindFirstFileW") 93 procGetStdHandle = modkernel32.NewProc("GetStdHandle")
93 procFindNextFileW = modkernel32.NewProc("FindNextFileW") 94 procSetStdHandle = modkernel32.NewProc("SetStdHandle")
94 procFindClose = modkernel32.NewProc("FindClose") 95 procFindFirstFileW = modkernel32.NewProc("FindFirstFileW")
95 procGetFileInformationByHandle = modkernel32.NewProc("GetFileInformationByHandle") 96 procFindNextFileW = modkernel32.NewProc("FindNextFileW")
96 procGetFileInformationByHandleEx = modkernel32.NewProc("GetFileInformationByHandleEx") 97 procFindClose = modkernel32.NewProc("FindClose")
97 procGetCurrentDirectoryW = modkernel32.NewProc("GetCurrentDirectoryW") 98 procGetFileInformationByHandle = modkernel32.NewProc("GetFileInformationByHandle")
98 procSetCurrentDirectoryW = modkernel32.NewProc("SetCurrentDirectoryW") 99 procGetFileInformationByHandleEx = modkernel32.NewProc("GetFileInformationByHandleEx")
99 procCreateDirectoryW = modkernel32.NewProc("CreateDirectoryW") 100 procGetCurrentDirectoryW = modkernel32.NewProc("GetCurrentDirectoryW")
100 procRemoveDirectoryW = modkernel32.NewProc("RemoveDirectoryW") 101 procSetCurrentDirectoryW = modkernel32.NewProc("SetCurrentDirectoryW")
101 procDeleteFileW = modkernel32.NewProc("DeleteFileW") 102 procCreateDirectoryW = modkernel32.NewProc("CreateDirectoryW")
102 procMoveFileW = modkernel32.NewProc("MoveFileW") 103 procRemoveDirectoryW = modkernel32.NewProc("RemoveDirectoryW")
103 procMoveFileExW = modkernel32.NewProc("MoveFileExW") 104 procDeleteFileW = modkernel32.NewProc("DeleteFileW")
104 procGetComputerNameW = modkernel32.NewProc("GetComputerNameW") 105 procMoveFileW = modkernel32.NewProc("MoveFileW")
105 procGetComputerNameExW = modkernel32.NewProc("GetComputerNameExW") 106 procMoveFileExW = modkernel32.NewProc("MoveFileExW")
106 procSetEndOfFile = modkernel32.NewProc("SetEndOfFile") 107 procLockFileEx = modkernel32.NewProc("LockFileEx")
107 procGetSystemTimeAsFileTime = modkernel32.NewProc("GetSystemTimeAsFileTime") 108 procUnlockFileEx = modkernel32.NewProc("UnlockFileEx")
108 procGetSystemTimePreciseAsFileTime = modkernel32.NewProc("GetSystemTimePreciseAsFileTime") 109 procGetComputerNameW = modkernel32.NewProc("GetComputerNameW")
109 procGetTimeZoneInformation = modkernel32.NewProc("GetTimeZoneInformation") 110 procGetComputerNameExW = modkernel32.NewProc("GetComputerNameExW")
110 procCreateIoCompletionPort = modkernel32.NewProc("CreateIoCompletionPort") 111 procSetEndOfFile = modkernel32.NewProc("SetEndOfFile")
111 procGetQueuedCompletionStatus = modkernel32.NewProc("GetQueuedCompletionStatus") 112 procGetSystemTimeAsFileTime = modkernel32.NewProc("GetSystemTimeAsFileTime")
112 procPostQueuedCompletionStatus = modkernel32.NewProc("PostQueuedCompletionStatus") 113 procGetSystemTimePreciseAsFileTime = modkernel32.NewProc("GetSystemTimePreciseAsFileTime")
113 procCancelIo = modkernel32.NewProc("CancelIo") 114 procGetTimeZoneInformation = modkernel32.NewProc("GetTimeZoneInformation")
114 procCancelIoEx = modkernel32.NewProc("CancelIoEx") 115 procCreateIoCompletionPort = modkernel32.NewProc("CreateIoCompletionPort")
115 procCreateProcessW = modkernel32.NewProc("CreateProcessW") 116 procGetQueuedCompletionStatus = modkernel32.NewProc("GetQueuedCompletionStatus")
116 procOpenProcess = modkernel32.NewProc("OpenProcess") 117 procPostQueuedCompletionStatus = modkernel32.NewProc("PostQueuedCompletionStatus")
117 procShellExecuteW = modshell32.NewProc("ShellExecuteW") 118 procCancelIo = modkernel32.NewProc("CancelIo")
118 procSHGetKnownFolderPath = modshell32.NewProc("SHGetKnownFolderPath") 119 procCancelIoEx = modkernel32.NewProc("CancelIoEx")
119 procTerminateProcess = modkernel32.NewProc("TerminateProcess") 120 procCreateProcessW = modkernel32.NewProc("CreateProcessW")
120 procGetExitCodeProcess = modkernel32.NewProc("GetExitCodeProcess") 121 procOpenProcess = modkernel32.NewProc("OpenProcess")
121 procGetStartupInfoW = modkernel32.NewProc("GetStartupInfoW") 122 procShellExecuteW = modshell32.NewProc("ShellExecuteW")
122 procGetCurrentProcess = modkernel32.NewProc("GetCurrentProcess") 123 procSHGetKnownFolderPath = modshell32.NewProc("SHGetKnownFolderPath")
123 procGetCurrentThread = modkernel32.NewProc("GetCurrentThread") 124 procTerminateProcess = modkernel32.NewProc("TerminateProcess")
124 procGetProcessTimes = modkernel32.NewProc("GetProcessTimes") 125 procGetExitCodeProcess = modkernel32.NewProc("GetExitCodeProcess")
125 procDuplicateHandle = modkernel32.NewProc("DuplicateHandle") 126 procGetStartupInfoW = modkernel32.NewProc("GetStartupInfoW")
126 procWaitForSingleObject = modkernel32.NewProc("WaitForSingleObject") 127 procGetProcessTimes = modkernel32.NewProc("GetProcessTimes")
127 procWaitForMultipleObjects = modkernel32.NewProc("WaitForMultipleObjects") 128 procDuplicateHandle = modkernel32.NewProc("DuplicateHandle")
128 procGetTempPathW = modkernel32.NewProc("GetTempPathW") 129 procWaitForSingleObject = modkernel32.NewProc("WaitForSingleObject")
129 procCreatePipe = modkernel32.NewProc("CreatePipe") 130 procWaitForMultipleObjects = modkernel32.NewProc("WaitForMultipleObjects")
130 procGetFileType = modkernel32.NewProc("GetFileType") 131 procGetTempPathW = modkernel32.NewProc("GetTempPathW")
131 procCryptAcquireContextW = modadvapi32.NewProc("CryptAcquireContextW") 132 procCreatePipe = modkernel32.NewProc("CreatePipe")
132 procCryptReleaseContext = modadvapi32.NewProc("CryptReleaseContext") 133 procGetFileType = modkernel32.NewProc("GetFileType")
133 procCryptGenRandom = modadvapi32.NewProc("CryptGenRandom") 134 procCryptAcquireContextW = modadvapi32.NewProc("CryptAcquireContextW")
134 procGetEnvironmentStringsW = modkernel32.NewProc("GetEnvironmentStringsW") 135 procCryptReleaseContext = modadvapi32.NewProc("CryptReleaseContext")
135 procFreeEnvironmentStringsW = modkernel32.NewProc("FreeEnvironmentStringsW") 136 procCryptGenRandom = modadvapi32.NewProc("CryptGenRandom")
136 procGetEnvironmentVariableW = modkernel32.NewProc("GetEnvironmentVariableW") 137 procGetEnvironmentStringsW = modkernel32.NewProc("GetEnvironmentStringsW")
137 procSetEnvironmentVariableW = modkernel32.NewProc("SetEnvironmentVariableW") 138 procFreeEnvironmentStringsW = modkernel32.NewProc("FreeEnvironmentStringsW")
138 procCreateEnvironmentBlock = moduserenv.NewProc("CreateEnvironmentBlock") 139 procGetEnvironmentVariableW = modkernel32.NewProc("GetEnvironmentVariableW")
139 procDestroyEnvironmentBlock = moduserenv.NewProc("DestroyEnvironmentBlock") 140 procSetEnvironmentVariableW = modkernel32.NewProc("SetEnvironmentVariableW")
140 procGetTickCount64 = modkernel32.NewProc("GetTickCount64") 141 procCreateEnvironmentBlock = moduserenv.NewProc("CreateEnvironmentBlock")
141 procSetFileTime = modkernel32.NewProc("SetFileTime") 142 procDestroyEnvironmentBlock = moduserenv.NewProc("DestroyEnvironmentBlock")
142 procGetFileAttributesW = modkernel32.NewProc("GetFileAttributesW") 143 procGetTickCount64 = modkernel32.NewProc("GetTickCount64")
143 procSetFileAttributesW = modkernel32.NewProc("SetFileAttributesW") 144 procSetFileTime = modkernel32.NewProc("SetFileTime")
144 procGetFileAttributesExW = modkernel32.NewProc("GetFileAttributesExW") 145 procGetFileAttributesW = modkernel32.NewProc("GetFileAttributesW")
145 procGetCommandLineW = modkernel32.NewProc("GetCommandLineW") 146 procSetFileAttributesW = modkernel32.NewProc("SetFileAttributesW")
146 procCommandLineToArgvW = modshell32.NewProc("CommandLineToArgvW") 147 procGetFileAttributesExW = modkernel32.NewProc("GetFileAttributesExW")
147 procLocalFree = modkernel32.NewProc("LocalFree") 148 procGetCommandLineW = modkernel32.NewProc("GetCommandLineW")
148 procSetHandleInformation = modkernel32.NewProc("SetHandleInformation") 149 procCommandLineToArgvW = modshell32.NewProc("CommandLineToArgvW")
149 procFlushFileBuffers = modkernel32.NewProc("FlushFileBuffers") 150 procLocalFree = modkernel32.NewProc("LocalFree")
150 procGetFullPathNameW = modkernel32.NewProc("GetFullPathNameW") 151 procSetHandleInformation = modkernel32.NewProc("SetHandleInformation")
151 procGetLongPathNameW = modkernel32.NewProc("GetLongPathNameW") 152 procFlushFileBuffers = modkernel32.NewProc("FlushFileBuffers")
152 procGetShortPathNameW = modkernel32.NewProc("GetShortPathNameW") 153 procGetFullPathNameW = modkernel32.NewProc("GetFullPathNameW")
153 procCreateFileMappingW = modkernel32.NewProc("CreateFileMappingW") 154 procGetLongPathNameW = modkernel32.NewProc("GetLongPathNameW")
154 procMapViewOfFile = modkernel32.NewProc("MapViewOfFile") 155 procGetShortPathNameW = modkernel32.NewProc("GetShortPathNameW")
155 procUnmapViewOfFile = modkernel32.NewProc("UnmapViewOfFile") 156 procCreateFileMappingW = modkernel32.NewProc("CreateFileMappingW")
156 procFlushViewOfFile = modkernel32.NewProc("FlushViewOfFile") 157 procMapViewOfFile = modkernel32.NewProc("MapViewOfFile")
157 procVirtualLock = modkernel32.NewProc("VirtualLock") 158 procUnmapViewOfFile = modkernel32.NewProc("UnmapViewOfFile")
158 procVirtualUnlock = modkernel32.NewProc("VirtualUnlock") 159 procFlushViewOfFile = modkernel32.NewProc("FlushViewOfFile")
159 procVirtualAlloc = modkernel32.NewProc("VirtualAlloc") 160 procVirtualLock = modkernel32.NewProc("VirtualLock")
160 procVirtualFree = modkernel32.NewProc("VirtualFree") 161 procVirtualUnlock = modkernel32.NewProc("VirtualUnlock")
161 procVirtualProtect = modkernel32.NewProc("VirtualProtect") 162 procVirtualAlloc = modkernel32.NewProc("VirtualAlloc")
162 procTransmitFile = modmswsock.NewProc("TransmitFile") 163 procVirtualFree = modkernel32.NewProc("VirtualFree")
163 procReadDirectoryChangesW = modkernel32.NewProc("ReadDirectoryChangesW") 164 procVirtualProtect = modkernel32.NewProc("VirtualProtect")
164 procCertOpenSystemStoreW = modcrypt32.NewProc("CertOpenSystemStoreW") 165 procTransmitFile = modmswsock.NewProc("TransmitFile")
165 procCertOpenStore = modcrypt32.NewProc("CertOpenStore") 166 procReadDirectoryChangesW = modkernel32.NewProc("ReadDirectoryChangesW")
166 procCertEnumCertificatesInStore = modcrypt32.NewProc("CertEnumCertificatesInStore") 167 procCertOpenSystemStoreW = modcrypt32.NewProc("CertOpenSystemStoreW")
167 procCertAddCertificateContextToStore = modcrypt32.NewProc("CertAddCertificateContextToStore") 168 procCertOpenStore = modcrypt32.NewProc("CertOpenStore")
168 procCertCloseStore = modcrypt32.NewProc("CertCloseStore") 169 procCertEnumCertificatesInStore = modcrypt32.NewProc("CertEnumCertificatesInStore")
169 procCertGetCertificateChain = modcrypt32.NewProc("CertGetCertificateChain") 170 procCertAddCertificateContextToStore = modcrypt32.NewProc("CertAddCertificateContextToStore")
170 procCertFreeCertificateChain = modcrypt32.NewProc("CertFreeCertificateChain") 171 procCertCloseStore = modcrypt32.NewProc("CertCloseStore")
171 procCertCreateCertificateContext = modcrypt32.NewProc("CertCreateCertificateContext") 172 procCertGetCertificateChain = modcrypt32.NewProc("CertGetCertificateChain")
172 procCertFreeCertificateContext = modcrypt32.NewProc("CertFreeCertificateContext") 173 procCertFreeCertificateChain = modcrypt32.NewProc("CertFreeCertificateChain")
173 procCertVerifyCertificateChainPolicy = modcrypt32.NewProc("CertVerifyCertificateChainPolicy") 174 procCertCreateCertificateContext = modcrypt32.NewProc("CertCreateCertificateContext")
174 procRegOpenKeyExW = modadvapi32.NewProc("RegOpenKeyExW") 175 procCertFreeCertificateContext = modcrypt32.NewProc("CertFreeCertificateContext")
175 procRegCloseKey = modadvapi32.NewProc("RegCloseKey") 176 procCertVerifyCertificateChainPolicy = modcrypt32.NewProc("CertVerifyCertificateChainPolicy")
176 procRegQueryInfoKeyW = modadvapi32.NewProc("RegQueryInfoKeyW") 177 procRegOpenKeyExW = modadvapi32.NewProc("RegOpenKeyExW")
177 procRegEnumKeyExW = modadvapi32.NewProc("RegEnumKeyExW") 178 procRegCloseKey = modadvapi32.NewProc("RegCloseKey")
178 procRegQueryValueExW = modadvapi32.NewProc("RegQueryValueExW") 179 procRegQueryInfoKeyW = modadvapi32.NewProc("RegQueryInfoKeyW")
179 procGetCurrentProcessId = modkernel32.NewProc("GetCurrentProcessId") 180 procRegEnumKeyExW = modadvapi32.NewProc("RegEnumKeyExW")
180 procGetConsoleMode = modkernel32.NewProc("GetConsoleMode") 181 procRegQueryValueExW = modadvapi32.NewProc("RegQueryValueExW")
181 procSetConsoleMode = modkernel32.NewProc("SetConsoleMode") 182 procGetCurrentProcessId = modkernel32.NewProc("GetCurrentProcessId")
182 procGetConsoleScreenBufferInfo = modkernel32.NewProc("GetConsoleScreenBufferInfo") 183 procGetConsoleMode = modkernel32.NewProc("GetConsoleMode")
183 procWriteConsoleW = modkernel32.NewProc("WriteConsoleW") 184 procSetConsoleMode = modkernel32.NewProc("SetConsoleMode")
184 procReadConsoleW = modkernel32.NewProc("ReadConsoleW") 185 procGetConsoleScreenBufferInfo = modkernel32.NewProc("GetConsoleScreenBufferInfo")
185 procCreateToolhelp32Snapshot = modkernel32.NewProc("CreateToolhelp32Snapshot") 186 procWriteConsoleW = modkernel32.NewProc("WriteConsoleW")
186 procProcess32FirstW = modkernel32.NewProc("Process32FirstW") 187 procReadConsoleW = modkernel32.NewProc("ReadConsoleW")
187 procProcess32NextW = modkernel32.NewProc("Process32NextW") 188 procCreateToolhelp32Snapshot = modkernel32.NewProc("CreateToolhelp32Snapshot")
188 procThread32First = modkernel32.NewProc("Thread32First") 189 procProcess32FirstW = modkernel32.NewProc("Process32FirstW")
189 procThread32Next = modkernel32.NewProc("Thread32Next") 190 procProcess32NextW = modkernel32.NewProc("Process32NextW")
190 procDeviceIoControl = modkernel32.NewProc("DeviceIoControl") 191 procThread32First = modkernel32.NewProc("Thread32First")
191 procCreateSymbolicLinkW = modkernel32.NewProc("CreateSymbolicLinkW") 192 procThread32Next = modkernel32.NewProc("Thread32Next")
192 procCreateHardLinkW = modkernel32.NewProc("CreateHardLinkW") 193 procDeviceIoControl = modkernel32.NewProc("DeviceIoControl")
193 procGetCurrentThreadId = modkernel32.NewProc("GetCurrentThreadId") 194 procCreateSymbolicLinkW = modkernel32.NewProc("CreateSymbolicLinkW")
194 procCreateEventW = modkernel32.NewProc("CreateEventW") 195 procCreateHardLinkW = modkernel32.NewProc("CreateHardLinkW")
195 procCreateEventExW = modkernel32.NewProc("CreateEventExW") 196 procGetCurrentThreadId = modkernel32.NewProc("GetCurrentThreadId")
196 procOpenEventW = modkernel32.NewProc("OpenEventW") 197 procCreateEventW = modkernel32.NewProc("CreateEventW")
197 procSetEvent = modkernel32.NewProc("SetEvent") 198 procCreateEventExW = modkernel32.NewProc("CreateEventExW")
198 procResetEvent = modkernel32.NewProc("ResetEvent") 199 procOpenEventW = modkernel32.NewProc("OpenEventW")
199 procPulseEvent = modkernel32.NewProc("PulseEvent") 200 procSetEvent = modkernel32.NewProc("SetEvent")
200 procCreateMutexW = modkernel32.NewProc("CreateMutexW") 201 procResetEvent = modkernel32.NewProc("ResetEvent")
201 procCreateMutexExW = modkernel32.NewProc("CreateMutexExW") 202 procPulseEvent = modkernel32.NewProc("PulseEvent")
202 procOpenMutexW = modkernel32.NewProc("OpenMutexW") 203 procCreateMutexW = modkernel32.NewProc("CreateMutexW")
203 procReleaseMutex = modkernel32.NewProc("ReleaseMutex") 204 procCreateMutexExW = modkernel32.NewProc("CreateMutexExW")
204 procSleepEx = modkernel32.NewProc("SleepEx") 205 procOpenMutexW = modkernel32.NewProc("OpenMutexW")
205 procCreateJobObjectW = modkernel32.NewProc("CreateJobObjectW") 206 procReleaseMutex = modkernel32.NewProc("ReleaseMutex")
206 procAssignProcessToJobObject = modkernel32.NewProc("AssignProcessToJobObject") 207 procSleepEx = modkernel32.NewProc("SleepEx")
207 procTerminateJobObject = modkernel32.NewProc("TerminateJobObject") 208 procCreateJobObjectW = modkernel32.NewProc("CreateJobObjectW")
208 procSetErrorMode = modkernel32.NewProc("SetErrorMode") 209 procAssignProcessToJobObject = modkernel32.NewProc("AssignProcessToJobObject")
209 procResumeThread = modkernel32.NewProc("ResumeThread") 210 procTerminateJobObject = modkernel32.NewProc("TerminateJobObject")
210 procSetPriorityClass = modkernel32.NewProc("SetPriorityClass") 211 procSetErrorMode = modkernel32.NewProc("SetErrorMode")
211 procGetPriorityClass = modkernel32.NewProc("GetPriorityClass") 212 procResumeThread = modkernel32.NewProc("ResumeThread")
212 procSetInformationJobObject = modkernel32.NewProc("SetInformationJobObject") 213 procSetPriorityClass = modkernel32.NewProc("SetPriorityClass")
213 procGenerateConsoleCtrlEvent = modkernel32.NewProc("GenerateConsoleCtrlEvent") 214 procGetPriorityClass = modkernel32.NewProc("GetPriorityClass")
214 procGetProcessId = modkernel32.NewProc("GetProcessId") 215 procSetInformationJobObject = modkernel32.NewProc("SetInformationJobObject")
215 procOpenThread = modkernel32.NewProc("OpenThread") 216 procGenerateConsoleCtrlEvent = modkernel32.NewProc("GenerateConsoleCtrlEvent")
216 procSetProcessPriorityBoost = modkernel32.NewProc("SetProcessPriorityBoost") 217 procGetProcessId = modkernel32.NewProc("GetProcessId")
217 procDefineDosDeviceW = modkernel32.NewProc("DefineDosDeviceW") 218 procOpenThread = modkernel32.NewProc("OpenThread")
218 procDeleteVolumeMountPointW = modkernel32.NewProc("DeleteVolumeMountPointW") 219 procSetProcessPriorityBoost = modkernel32.NewProc("SetProcessPriorityBoost")
219 procFindFirstVolumeW = modkernel32.NewProc("FindFirstVolumeW") 220 procDefineDosDeviceW = modkernel32.NewProc("DefineDosDeviceW")
220 procFindFirstVolumeMountPointW = modkernel32.NewProc("FindFirstVolumeMountPointW") 221 procDeleteVolumeMountPointW = modkernel32.NewProc("DeleteVolumeMountPointW")
221 procFindNextVolumeW = modkernel32.NewProc("FindNextVolumeW") 222 procFindFirstVolumeW = modkernel32.NewProc("FindFirstVolumeW")
222 procFindNextVolumeMountPointW = modkernel32.NewProc("FindNextVolumeMountPointW") 223 procFindFirstVolumeMountPointW = modkernel32.NewProc("FindFirstVolumeMountPointW")
223 procFindVolumeClose = modkernel32.NewProc("FindVolumeClose") 224 procFindNextVolumeW = modkernel32.NewProc("FindNextVolumeW")
224 procFindVolumeMountPointClose = modkernel32.NewProc("FindVolumeMountPointClose") 225 procFindNextVolumeMountPointW = modkernel32.NewProc("FindNextVolumeMountPointW")
225 procGetDriveTypeW = modkernel32.NewProc("GetDriveTypeW") 226 procFindVolumeClose = modkernel32.NewProc("FindVolumeClose")
226 procGetLogicalDrives = modkernel32.NewProc("GetLogicalDrives") 227 procFindVolumeMountPointClose = modkernel32.NewProc("FindVolumeMountPointClose")
227 procGetLogicalDriveStringsW = modkernel32.NewProc("GetLogicalDriveStringsW") 228 procGetDiskFreeSpaceExW = modkernel32.NewProc("GetDiskFreeSpaceExW")
228 procGetVolumeInformationW = modkernel32.NewProc("GetVolumeInformationW") 229 procGetDriveTypeW = modkernel32.NewProc("GetDriveTypeW")
229 procGetVolumeInformationByHandleW = modkernel32.NewProc("GetVolumeInformationByHandleW") 230 procGetLogicalDrives = modkernel32.NewProc("GetLogicalDrives")
230 procGetVolumeNameForVolumeMountPointW = modkernel32.NewProc("GetVolumeNameForVolumeMountPointW") 231 procGetLogicalDriveStringsW = modkernel32.NewProc("GetLogicalDriveStringsW")
231 procGetVolumePathNameW = modkernel32.NewProc("GetVolumePathNameW") 232 procGetVolumeInformationW = modkernel32.NewProc("GetVolumeInformationW")
232 procGetVolumePathNamesForVolumeNameW = modkernel32.NewProc("GetVolumePathNamesForVolumeNameW") 233 procGetVolumeInformationByHandleW = modkernel32.NewProc("GetVolumeInformationByHandleW")
233 procQueryDosDeviceW = modkernel32.NewProc("QueryDosDeviceW") 234 procGetVolumeNameForVolumeMountPointW = modkernel32.NewProc("GetVolumeNameForVolumeMountPointW")
234 procSetVolumeLabelW = modkernel32.NewProc("SetVolumeLabelW") 235 procGetVolumePathNameW = modkernel32.NewProc("GetVolumePathNameW")
235 procSetVolumeMountPointW = modkernel32.NewProc("SetVolumeMountPointW") 236 procGetVolumePathNamesForVolumeNameW = modkernel32.NewProc("GetVolumePathNamesForVolumeNameW")
236 procMessageBoxW = moduser32.NewProc("MessageBoxW") 237 procQueryDosDeviceW = modkernel32.NewProc("QueryDosDeviceW")
237 procCLSIDFromString = modole32.NewProc("CLSIDFromString") 238 procSetVolumeLabelW = modkernel32.NewProc("SetVolumeLabelW")
238 procStringFromGUID2 = modole32.NewProc("StringFromGUID2") 239 procSetVolumeMountPointW = modkernel32.NewProc("SetVolumeMountPointW")
239 procCoCreateGuid = modole32.NewProc("CoCreateGuid") 240 procMessageBoxW = moduser32.NewProc("MessageBoxW")
240 procCoTaskMemFree = modole32.NewProc("CoTaskMemFree") 241 procExitWindowsEx = moduser32.NewProc("ExitWindowsEx")
241 procRtlGetVersion = modntdll.NewProc("RtlGetVersion") 242 procInitiateSystemShutdownExW = modadvapi32.NewProc("InitiateSystemShutdownExW")
242 procRtlGetNtVersionNumbers = modntdll.NewProc("RtlGetNtVersionNumbers") 243 procSetProcessShutdownParameters = modkernel32.NewProc("SetProcessShutdownParameters")
243 procWSAStartup = modws2_32.NewProc("WSAStartup") 244 procGetProcessShutdownParameters = modkernel32.NewProc("GetProcessShutdownParameters")
244 procWSACleanup = modws2_32.NewProc("WSACleanup") 245 procCLSIDFromString = modole32.NewProc("CLSIDFromString")
245 procWSAIoctl = modws2_32.NewProc("WSAIoctl") 246 procStringFromGUID2 = modole32.NewProc("StringFromGUID2")
246 procsocket = modws2_32.NewProc("socket") 247 procCoCreateGuid = modole32.NewProc("CoCreateGuid")
247 procsetsockopt = modws2_32.NewProc("setsockopt") 248 procCoTaskMemFree = modole32.NewProc("CoTaskMemFree")
248 procgetsockopt = modws2_32.NewProc("getsockopt") 249 procRtlGetVersion = modntdll.NewProc("RtlGetVersion")
249 procbind = modws2_32.NewProc("bind") 250 procRtlGetNtVersionNumbers = modntdll.NewProc("RtlGetNtVersionNumbers")
250 procconnect = modws2_32.NewProc("connect") 251 procGetProcessPreferredUILanguages = modkernel32.NewProc("GetProcessPreferredUILanguages")
251 procgetsockname = modws2_32.NewProc("getsockname") 252 procGetThreadPreferredUILanguages = modkernel32.NewProc("GetThreadPreferredUILanguages")
252 procgetpeername = modws2_32.NewProc("getpeername") 253 procGetUserPreferredUILanguages = modkernel32.NewProc("GetUserPreferredUILanguages")
253 proclisten = modws2_32.NewProc("listen") 254 procGetSystemPreferredUILanguages = modkernel32.NewProc("GetSystemPreferredUILanguages")
254 procshutdown = modws2_32.NewProc("shutdown") 255 procEnumProcesses = modpsapi.NewProc("EnumProcesses")
255 procclosesocket = modws2_32.NewProc("closesocket") 256 procWSAStartup = modws2_32.NewProc("WSAStartup")
256 procAcceptEx = modmswsock.NewProc("AcceptEx") 257 procWSACleanup = modws2_32.NewProc("WSACleanup")
257 procGetAcceptExSockaddrs = modmswsock.NewProc("GetAcceptExSockaddrs") 258 procWSAIoctl = modws2_32.NewProc("WSAIoctl")
258 procWSARecv = modws2_32.NewProc("WSARecv") 259 procsocket = modws2_32.NewProc("socket")
259 procWSASend = modws2_32.NewProc("WSASend") 260 procsendto = modws2_32.NewProc("sendto")
260 procWSARecvFrom = modws2_32.NewProc("WSARecvFrom") 261 procrecvfrom = modws2_32.NewProc("recvfrom")
261 procWSASendTo = modws2_32.NewProc("WSASendTo") 262 procsetsockopt = modws2_32.NewProc("setsockopt")
262 procgethostbyname = modws2_32.NewProc("gethostbyname") 263 procgetsockopt = modws2_32.NewProc("getsockopt")
263 procgetservbyname = modws2_32.NewProc("getservbyname") 264 procbind = modws2_32.NewProc("bind")
264 procntohs = modws2_32.NewProc("ntohs") 265 procconnect = modws2_32.NewProc("connect")
265 procgetprotobyname = modws2_32.NewProc("getprotobyname") 266 procgetsockname = modws2_32.NewProc("getsockname")
266 procDnsQuery_W = moddnsapi.NewProc("DnsQuery_W") 267 procgetpeername = modws2_32.NewProc("getpeername")
267 procDnsRecordListFree = moddnsapi.NewProc("DnsRecordListFree") 268 proclisten = modws2_32.NewProc("listen")
268 procDnsNameCompare_W = moddnsapi.NewProc("DnsNameCompare_W") 269 procshutdown = modws2_32.NewProc("shutdown")
269 procGetAddrInfoW = modws2_32.NewProc("GetAddrInfoW") 270 procclosesocket = modws2_32.NewProc("closesocket")
270 procFreeAddrInfoW = modws2_32.NewProc("FreeAddrInfoW") 271 procAcceptEx = modmswsock.NewProc("AcceptEx")
271 procGetIfEntry = modiphlpapi.NewProc("GetIfEntry") 272 procGetAcceptExSockaddrs = modmswsock.NewProc("GetAcceptExSockaddrs")
272 procGetAdaptersInfo = modiphlpapi.NewProc("GetAdaptersInfo") 273 procWSARecv = modws2_32.NewProc("WSARecv")
273 procSetFileCompletionNotificationModes = modkernel32.NewProc("SetFileCompletionNotificationModes") 274 procWSASend = modws2_32.NewProc("WSASend")
274 procWSAEnumProtocolsW = modws2_32.NewProc("WSAEnumProtocolsW") 275 procWSARecvFrom = modws2_32.NewProc("WSARecvFrom")
275 procGetAdaptersAddresses = modiphlpapi.NewProc("GetAdaptersAddresses") 276 procWSASendTo = modws2_32.NewProc("WSASendTo")
276 procGetACP = modkernel32.NewProc("GetACP") 277 procgethostbyname = modws2_32.NewProc("gethostbyname")
277 procMultiByteToWideChar = modkernel32.NewProc("MultiByteToWideChar") 278 procgetservbyname = modws2_32.NewProc("getservbyname")
278 procTranslateNameW = modsecur32.NewProc("TranslateNameW") 279 procntohs = modws2_32.NewProc("ntohs")
279 procGetUserNameExW = modsecur32.NewProc("GetUserNameExW") 280 procgetprotobyname = modws2_32.NewProc("getprotobyname")
280 procNetUserGetInfo = modnetapi32.NewProc("NetUserGetInfo") 281 procDnsQuery_W = moddnsapi.NewProc("DnsQuery_W")
281 procNetGetJoinInformation = modnetapi32.NewProc("NetGetJoinInformation") 282 procDnsRecordListFree = moddnsapi.NewProc("DnsRecordListFree")
282 procNetApiBufferFree = modnetapi32.NewProc("NetApiBufferFree") 283 procDnsNameCompare_W = moddnsapi.NewProc("DnsNameCompare_W")
283 procLookupAccountSidW = modadvapi32.NewProc("LookupAccountSidW") 284 procGetAddrInfoW = modws2_32.NewProc("GetAddrInfoW")
284 procLookupAccountNameW = modadvapi32.NewProc("LookupAccountNameW") 285 procFreeAddrInfoW = modws2_32.NewProc("FreeAddrInfoW")
285 procConvertSidToStringSidW = modadvapi32.NewProc("ConvertSidToStringSidW") 286 procGetIfEntry = modiphlpapi.NewProc("GetIfEntry")
286 procConvertStringSidToSidW = modadvapi32.NewProc("ConvertStringSidToSidW") 287 procGetAdaptersInfo = modiphlpapi.NewProc("GetAdaptersInfo")
287 procGetLengthSid = modadvapi32.NewProc("GetLengthSid") 288 procSetFileCompletionNotificationModes = modkernel32.NewProc("SetFileCompletionNotificationModes")
288 procCopySid = modadvapi32.NewProc("CopySid") 289 procWSAEnumProtocolsW = modws2_32.NewProc("WSAEnumProtocolsW")
289 procAllocateAndInitializeSid = modadvapi32.NewProc("AllocateAndInitializeSid") 290 procGetAdaptersAddresses = modiphlpapi.NewProc("GetAdaptersAddresses")
290 procCreateWellKnownSid = modadvapi32.NewProc("CreateWellKnownSid") 291 procGetACP = modkernel32.NewProc("GetACP")
291 procIsWellKnownSid = modadvapi32.NewProc("IsWellKnownSid") 292 procMultiByteToWideChar = modkernel32.NewProc("MultiByteToWideChar")
292 procFreeSid = modadvapi32.NewProc("FreeSid") 293 procTranslateNameW = modsecur32.NewProc("TranslateNameW")
293 procEqualSid = modadvapi32.NewProc("EqualSid") 294 procGetUserNameExW = modsecur32.NewProc("GetUserNameExW")
294 procGetSidIdentifierAuthority = modadvapi32.NewProc("GetSidIdentifierAuthority") 295 procNetUserGetInfo = modnetapi32.NewProc("NetUserGetInfo")
295 procGetSidSubAuthorityCount = modadvapi32.NewProc("GetSidSubAuthorityCount") 296 procNetGetJoinInformation = modnetapi32.NewProc("NetGetJoinInformation")
296 procGetSidSubAuthority = modadvapi32.NewProc("GetSidSubAuthority") 297 procNetApiBufferFree = modnetapi32.NewProc("NetApiBufferFree")
297 procIsValidSid = modadvapi32.NewProc("IsValidSid") 298 procLookupAccountSidW = modadvapi32.NewProc("LookupAccountSidW")
298 procCheckTokenMembership = modadvapi32.NewProc("CheckTokenMembership") 299 procLookupAccountNameW = modadvapi32.NewProc("LookupAccountNameW")
299 procOpenProcessToken = modadvapi32.NewProc("OpenProcessToken") 300 procConvertSidToStringSidW = modadvapi32.NewProc("ConvertSidToStringSidW")
300 procOpenThreadToken = modadvapi32.NewProc("OpenThreadToken") 301 procConvertStringSidToSidW = modadvapi32.NewProc("ConvertStringSidToSidW")
301 procImpersonateSelf = modadvapi32.NewProc("ImpersonateSelf") 302 procGetLengthSid = modadvapi32.NewProc("GetLengthSid")
302 procRevertToSelf = modadvapi32.NewProc("RevertToSelf") 303 procCopySid = modadvapi32.NewProc("CopySid")
303 procSetThreadToken = modadvapi32.NewProc("SetThreadToken") 304 procAllocateAndInitializeSid = modadvapi32.NewProc("AllocateAndInitializeSid")
304 procLookupPrivilegeValueW = modadvapi32.NewProc("LookupPrivilegeValueW") 305 procCreateWellKnownSid = modadvapi32.NewProc("CreateWellKnownSid")
305 procAdjustTokenPrivileges = modadvapi32.NewProc("AdjustTokenPrivileges") 306 procIsWellKnownSid = modadvapi32.NewProc("IsWellKnownSid")
306 procAdjustTokenGroups = modadvapi32.NewProc("AdjustTokenGroups") 307 procFreeSid = modadvapi32.NewProc("FreeSid")
307 procGetTokenInformation = modadvapi32.NewProc("GetTokenInformation") 308 procEqualSid = modadvapi32.NewProc("EqualSid")
308 procSetTokenInformation = modadvapi32.NewProc("SetTokenInformation") 309 procGetSidIdentifierAuthority = modadvapi32.NewProc("GetSidIdentifierAuthority")
309 procDuplicateTokenEx = modadvapi32.NewProc("DuplicateTokenEx") 310 procGetSidSubAuthorityCount = modadvapi32.NewProc("GetSidSubAuthorityCount")
310 procGetUserProfileDirectoryW = moduserenv.NewProc("GetUserProfileDirectoryW") 311 procGetSidSubAuthority = modadvapi32.NewProc("GetSidSubAuthority")
311 procGetSystemDirectoryW = modkernel32.NewProc("GetSystemDirectoryW") 312 procIsValidSid = modadvapi32.NewProc("IsValidSid")
312 procGetWindowsDirectoryW = modkernel32.NewProc("GetWindowsDirectoryW") 313 procCheckTokenMembership = modadvapi32.NewProc("CheckTokenMembership")
313 procGetSystemWindowsDirectoryW = modkernel32.NewProc("GetSystemWindowsDirectoryW") 314 procOpenProcessToken = modadvapi32.NewProc("OpenProcessToken")
314 procWTSQueryUserToken = modwtsapi32.NewProc("WTSQueryUserToken") 315 procOpenThreadToken = modadvapi32.NewProc("OpenThreadToken")
315 procWTSEnumerateSessionsW = modwtsapi32.NewProc("WTSEnumerateSessionsW") 316 procImpersonateSelf = modadvapi32.NewProc("ImpersonateSelf")
316 procWTSFreeMemory = modwtsapi32.NewProc("WTSFreeMemory") 317 procRevertToSelf = modadvapi32.NewProc("RevertToSelf")
318 procSetThreadToken = modadvapi32.NewProc("SetThreadToken")
319 procLookupPrivilegeValueW = modadvapi32.NewProc("LookupPrivilegeValueW")
320 procAdjustTokenPrivileges = modadvapi32.NewProc("AdjustTokenPrivileges")
321 procAdjustTokenGroups = modadvapi32.NewProc("AdjustTokenGroups")
322 procGetTokenInformation = modadvapi32.NewProc("GetTokenInformation")
323 procSetTokenInformation = modadvapi32.NewProc("SetTokenInformation")
324 procDuplicateTokenEx = modadvapi32.NewProc("DuplicateTokenEx")
325 procGetUserProfileDirectoryW = moduserenv.NewProc("GetUserProfileDirectoryW")
326 procGetSystemDirectoryW = modkernel32.NewProc("GetSystemDirectoryW")
327 procGetWindowsDirectoryW = modkernel32.NewProc("GetWindowsDirectoryW")
328 procGetSystemWindowsDirectoryW = modkernel32.NewProc("GetSystemWindowsDirectoryW")
329 procWTSQueryUserToken = modwtsapi32.NewProc("WTSQueryUserToken")
330 procWTSEnumerateSessionsW = modwtsapi32.NewProc("WTSEnumerateSessionsW")
331 procWTSFreeMemory = modwtsapi32.NewProc("WTSFreeMemory")
332 procGetSecurityInfo = modadvapi32.NewProc("GetSecurityInfo")
333 procSetSecurityInfo = modadvapi32.NewProc("SetSecurityInfo")
334 procGetNamedSecurityInfoW = modadvapi32.NewProc("GetNamedSecurityInfoW")
335 procSetNamedSecurityInfoW = modadvapi32.NewProc("SetNamedSecurityInfoW")
336 procBuildSecurityDescriptorW = modadvapi32.NewProc("BuildSecurityDescriptorW")
337 procInitializeSecurityDescriptor = modadvapi32.NewProc("InitializeSecurityDescriptor")
338 procGetSecurityDescriptorControl = modadvapi32.NewProc("GetSecurityDescriptorControl")
339 procGetSecurityDescriptorDacl = modadvapi32.NewProc("GetSecurityDescriptorDacl")
340 procGetSecurityDescriptorSacl = modadvapi32.NewProc("GetSecurityDescriptorSacl")
341 procGetSecurityDescriptorOwner = modadvapi32.NewProc("GetSecurityDescriptorOwner")
342 procGetSecurityDescriptorGroup = modadvapi32.NewProc("GetSecurityDescriptorGroup")
343 procGetSecurityDescriptorLength = modadvapi32.NewProc("GetSecurityDescriptorLength")
344 procGetSecurityDescriptorRMControl = modadvapi32.NewProc("GetSecurityDescriptorRMControl")
345 procIsValidSecurityDescriptor = modadvapi32.NewProc("IsValidSecurityDescriptor")
346 procSetSecurityDescriptorControl = modadvapi32.NewProc("SetSecurityDescriptorControl")
347 procSetSecurityDescriptorDacl = modadvapi32.NewProc("SetSecurityDescriptorDacl")
348 procSetSecurityDescriptorSacl = modadvapi32.NewProc("SetSecurityDescriptorSacl")
349 procSetSecurityDescriptorOwner = modadvapi32.NewProc("SetSecurityDescriptorOwner")
350 procSetSecurityDescriptorGroup = modadvapi32.NewProc("SetSecurityDescriptorGroup")
351 procSetSecurityDescriptorRMControl = modadvapi32.NewProc("SetSecurityDescriptorRMControl")
352 procConvertStringSecurityDescriptorToSecurityDescriptorW = modadvapi32.NewProc("ConvertStringSecurityDescriptorToSecurityDescriptorW")
353 procConvertSecurityDescriptorToStringSecurityDescriptorW = modadvapi32.NewProc("ConvertSecurityDescriptorToStringSecurityDescriptorW")
354 procMakeAbsoluteSD = modadvapi32.NewProc("MakeAbsoluteSD")
355 procMakeSelfRelativeSD = modadvapi32.NewProc("MakeSelfRelativeSD")
356 procSetEntriesInAclW = modadvapi32.NewProc("SetEntriesInAclW")
317) 357)
318 358
319func RegisterEventSource(uncServerName *uint16, sourceName *uint16) (handle Handle, err error) { 359func RegisterEventSource(uncServerName *uint16, sourceName *uint16) (handle Handle, err error) {
@@ -654,6 +694,31 @@ func _GetProcAddress(module Handle, procname *byte) (proc uintptr, err error) {
654 return 694 return
655} 695}
656 696
697func GetModuleFileName(module Handle, filename *uint16, size uint32) (n uint32, err error) {
698 r0, _, e1 := syscall.Syscall(procGetModuleFileNameW.Addr(), 3, uintptr(module), uintptr(unsafe.Pointer(filename)), uintptr(size))
699 n = uint32(r0)
700 if n == 0 {
701 if e1 != 0 {
702 err = errnoErr(e1)
703 } else {
704 err = syscall.EINVAL
705 }
706 }
707 return
708}
709
710func GetModuleHandleEx(flags uint32, moduleName *uint16, module *Handle) (err error) {
711 r1, _, e1 := syscall.Syscall(procGetModuleHandleExW.Addr(), 3, uintptr(flags), uintptr(unsafe.Pointer(moduleName)), uintptr(unsafe.Pointer(module)))
712 if r1 == 0 {
713 if e1 != 0 {
714 err = errnoErr(e1)
715 } else {
716 err = syscall.EINVAL
717 }
718 }
719 return
720}
721
657func GetVersion() (ver uint32, err error) { 722func GetVersion() (ver uint32, err error) {
658 r0, _, e1 := syscall.Syscall(procGetVersion.Addr(), 0, 0, 0, 0) 723 r0, _, e1 := syscall.Syscall(procGetVersion.Addr(), 0, 0, 0, 0)
659 ver = uint32(r0) 724 ver = uint32(r0)
@@ -690,7 +755,14 @@ func ExitProcess(exitcode uint32) {
690} 755}
691 756
692func IsWow64Process(handle Handle, isWow64 *bool) (err error) { 757func IsWow64Process(handle Handle, isWow64 *bool) (err error) {
693 r1, _, e1 := syscall.Syscall(procIsWow64Process.Addr(), 2, uintptr(handle), uintptr(unsafe.Pointer(isWow64)), 0) 758 var _p0 uint32
759 if *isWow64 {
760 _p0 = 1
761 } else {
762 _p0 = 0
763 }
764 r1, _, e1 := syscall.Syscall(procIsWow64Process.Addr(), 2, uintptr(handle), uintptr(unsafe.Pointer(&_p0)), 0)
765 *isWow64 = _p0 != 0
694 if r1 == 0 { 766 if r1 == 0 {
695 if e1 != 0 { 767 if e1 != 0 {
696 err = errnoErr(e1) 768 err = errnoErr(e1)
@@ -960,6 +1032,30 @@ func MoveFileEx(from *uint16, to *uint16, flags uint32) (err error) {
960 return 1032 return
961} 1033}
962 1034
1035func LockFileEx(file Handle, flags uint32, reserved uint32, bytesLow uint32, bytesHigh uint32, overlapped *Overlapped) (err error) {
1036 r1, _, e1 := syscall.Syscall6(procLockFileEx.Addr(), 6, uintptr(file), uintptr(flags), uintptr(reserved), uintptr(bytesLow), uintptr(bytesHigh), uintptr(unsafe.Pointer(overlapped)))
1037 if r1 == 0 {
1038 if e1 != 0 {
1039 err = errnoErr(e1)
1040 } else {
1041 err = syscall.EINVAL
1042 }
1043 }
1044 return
1045}
1046
1047func UnlockFileEx(file Handle, reserved uint32, bytesLow uint32, bytesHigh uint32, overlapped *Overlapped) (err error) {
1048 r1, _, e1 := syscall.Syscall6(procUnlockFileEx.Addr(), 5, uintptr(file), uintptr(reserved), uintptr(bytesLow), uintptr(bytesHigh), uintptr(unsafe.Pointer(overlapped)), 0)
1049 if r1 == 0 {
1050 if e1 != 0 {
1051 err = errnoErr(e1)
1052 } else {
1053 err = syscall.EINVAL
1054 }
1055 }
1056 return
1057}
1058
963func GetComputerName(buf *uint16, n *uint32) (err error) { 1059func GetComputerName(buf *uint16, n *uint32) (err error) {
964 r1, _, e1 := syscall.Syscall(procGetComputerNameW.Addr(), 2, uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(n)), 0) 1060 r1, _, e1 := syscall.Syscall(procGetComputerNameW.Addr(), 2, uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(n)), 0)
965 if r1 == 0 { 1061 if r1 == 0 {
@@ -1119,7 +1215,7 @@ func OpenProcess(desiredAccess uint32, inheritHandle bool, processId uint32) (ha
1119 1215
1120func ShellExecute(hwnd Handle, verb *uint16, file *uint16, args *uint16, cwd *uint16, showCmd int32) (err error) { 1216func ShellExecute(hwnd Handle, verb *uint16, file *uint16, args *uint16, cwd *uint16, showCmd int32) (err error) {
1121 r1, _, e1 := syscall.Syscall6(procShellExecuteW.Addr(), 6, uintptr(hwnd), uintptr(unsafe.Pointer(verb)), uintptr(unsafe.Pointer(file)), uintptr(unsafe.Pointer(args)), uintptr(unsafe.Pointer(cwd)), uintptr(showCmd)) 1217 r1, _, e1 := syscall.Syscall6(procShellExecuteW.Addr(), 6, uintptr(hwnd), uintptr(unsafe.Pointer(verb)), uintptr(unsafe.Pointer(file)), uintptr(unsafe.Pointer(args)), uintptr(unsafe.Pointer(cwd)), uintptr(showCmd))
1122 if r1 == 0 { 1218 if r1 <= 32 {
1123 if e1 != 0 { 1219 if e1 != 0 {
1124 err = errnoErr(e1) 1220 err = errnoErr(e1)
1125 } else { 1221 } else {
@@ -1173,32 +1269,6 @@ func GetStartupInfo(startupInfo *StartupInfo) (err error) {
1173 return 1269 return
1174} 1270}
1175 1271
1176func GetCurrentProcess() (pseudoHandle Handle, err error) {
1177 r0, _, e1 := syscall.Syscall(procGetCurrentProcess.Addr(), 0, 0, 0, 0)
1178 pseudoHandle = Handle(r0)
1179 if pseudoHandle == 0 {
1180 if e1 != 0 {
1181 err = errnoErr(e1)
1182 } else {
1183 err = syscall.EINVAL
1184 }
1185 }
1186 return
1187}
1188
1189func GetCurrentThread() (pseudoHandle Handle, err error) {
1190 r0, _, e1 := syscall.Syscall(procGetCurrentThread.Addr(), 0, 0, 0, 0)
1191 pseudoHandle = Handle(r0)
1192 if pseudoHandle == 0 {
1193 if e1 != 0 {
1194 err = errnoErr(e1)
1195 } else {
1196 err = syscall.EINVAL
1197 }
1198 }
1199 return
1200}
1201
1202func GetProcessTimes(handle Handle, creationTime *Filetime, exitTime *Filetime, kernelTime *Filetime, userTime *Filetime) (err error) { 1272func GetProcessTimes(handle Handle, creationTime *Filetime, exitTime *Filetime, kernelTime *Filetime, userTime *Filetime) (err error) {
1203 r1, _, e1 := syscall.Syscall6(procGetProcessTimes.Addr(), 5, uintptr(handle), uintptr(unsafe.Pointer(creationTime)), uintptr(unsafe.Pointer(exitTime)), uintptr(unsafe.Pointer(kernelTime)), uintptr(unsafe.Pointer(userTime)), 0) 1273 r1, _, e1 := syscall.Syscall6(procGetProcessTimes.Addr(), 5, uintptr(handle), uintptr(unsafe.Pointer(creationTime)), uintptr(unsafe.Pointer(exitTime)), uintptr(unsafe.Pointer(kernelTime)), uintptr(unsafe.Pointer(userTime)), 0)
1204 if r1 == 0 { 1274 if r1 == 0 {
@@ -2442,6 +2512,18 @@ func FindVolumeMountPointClose(findVolumeMountPoint Handle) (err error) {
2442 return 2512 return
2443} 2513}
2444 2514
2515func GetDiskFreeSpaceEx(directoryName *uint16, freeBytesAvailableToCaller *uint64, totalNumberOfBytes *uint64, totalNumberOfFreeBytes *uint64) (err error) {
2516 r1, _, e1 := syscall.Syscall6(procGetDiskFreeSpaceExW.Addr(), 4, uintptr(unsafe.Pointer(directoryName)), uintptr(unsafe.Pointer(freeBytesAvailableToCaller)), uintptr(unsafe.Pointer(totalNumberOfBytes)), uintptr(unsafe.Pointer(totalNumberOfFreeBytes)), 0, 0)
2517 if r1 == 0 {
2518 if e1 != 0 {
2519 err = errnoErr(e1)
2520 } else {
2521 err = syscall.EINVAL
2522 }
2523 }
2524 return
2525}
2526
2445func GetDriveType(rootPathName *uint16) (driveType uint32) { 2527func GetDriveType(rootPathName *uint16) (driveType uint32) {
2446 r0, _, _ := syscall.Syscall(procGetDriveTypeW.Addr(), 1, uintptr(unsafe.Pointer(rootPathName)), 0, 0) 2528 r0, _, _ := syscall.Syscall(procGetDriveTypeW.Addr(), 1, uintptr(unsafe.Pointer(rootPathName)), 0, 0)
2447 driveType = uint32(r0) 2529 driveType = uint32(r0)
@@ -2584,6 +2666,66 @@ func MessageBox(hwnd Handle, text *uint16, caption *uint16, boxtype uint32) (ret
2584 return 2666 return
2585} 2667}
2586 2668
2669func ExitWindowsEx(flags uint32, reason uint32) (err error) {
2670 r1, _, e1 := syscall.Syscall(procExitWindowsEx.Addr(), 2, uintptr(flags), uintptr(reason), 0)
2671 if r1 == 0 {
2672 if e1 != 0 {
2673 err = errnoErr(e1)
2674 } else {
2675 err = syscall.EINVAL
2676 }
2677 }
2678 return
2679}
2680
2681func InitiateSystemShutdownEx(machineName *uint16, message *uint16, timeout uint32, forceAppsClosed bool, rebootAfterShutdown bool, reason uint32) (err error) {
2682 var _p0 uint32
2683 if forceAppsClosed {
2684 _p0 = 1
2685 } else {
2686 _p0 = 0
2687 }
2688 var _p1 uint32
2689 if rebootAfterShutdown {
2690 _p1 = 1
2691 } else {
2692 _p1 = 0
2693 }
2694 r1, _, e1 := syscall.Syscall6(procInitiateSystemShutdownExW.Addr(), 6, uintptr(unsafe.Pointer(machineName)), uintptr(unsafe.Pointer(message)), uintptr(timeout), uintptr(_p0), uintptr(_p1), uintptr(reason))
2695 if r1 == 0 {
2696 if e1 != 0 {
2697 err = errnoErr(e1)
2698 } else {
2699 err = syscall.EINVAL
2700 }
2701 }
2702 return
2703}
2704
2705func SetProcessShutdownParameters(level uint32, flags uint32) (err error) {
2706 r1, _, e1 := syscall.Syscall(procSetProcessShutdownParameters.Addr(), 2, uintptr(level), uintptr(flags), 0)
2707 if r1 == 0 {
2708 if e1 != 0 {
2709 err = errnoErr(e1)
2710 } else {
2711 err = syscall.EINVAL
2712 }
2713 }
2714 return
2715}
2716
2717func GetProcessShutdownParameters(level *uint32, flags *uint32) (err error) {
2718 r1, _, e1 := syscall.Syscall(procGetProcessShutdownParameters.Addr(), 2, uintptr(unsafe.Pointer(level)), uintptr(unsafe.Pointer(flags)), 0)
2719 if r1 == 0 {
2720 if e1 != 0 {
2721 err = errnoErr(e1)
2722 } else {
2723 err = syscall.EINVAL
2724 }
2725 }
2726 return
2727}
2728
2587func clsidFromString(lpsz *uint16, pclsid *GUID) (ret error) { 2729func clsidFromString(lpsz *uint16, pclsid *GUID) (ret error) {
2588 r0, _, _ := syscall.Syscall(procCLSIDFromString.Addr(), 2, uintptr(unsafe.Pointer(lpsz)), uintptr(unsafe.Pointer(pclsid)), 0) 2730 r0, _, _ := syscall.Syscall(procCLSIDFromString.Addr(), 2, uintptr(unsafe.Pointer(lpsz)), uintptr(unsafe.Pointer(pclsid)), 0)
2589 if r0 != 0 { 2731 if r0 != 0 {
@@ -2624,6 +2766,70 @@ func rtlGetNtVersionNumbers(majorVersion *uint32, minorVersion *uint32, buildNum
2624 return 2766 return
2625} 2767}
2626 2768
2769func getProcessPreferredUILanguages(flags uint32, numLanguages *uint32, buf *uint16, bufSize *uint32) (err error) {
2770 r1, _, e1 := syscall.Syscall6(procGetProcessPreferredUILanguages.Addr(), 4, uintptr(flags), uintptr(unsafe.Pointer(numLanguages)), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(bufSize)), 0, 0)
2771 if r1 == 0 {
2772 if e1 != 0 {
2773 err = errnoErr(e1)
2774 } else {
2775 err = syscall.EINVAL
2776 }
2777 }
2778 return
2779}
2780
2781func getThreadPreferredUILanguages(flags uint32, numLanguages *uint32, buf *uint16, bufSize *uint32) (err error) {
2782 r1, _, e1 := syscall.Syscall6(procGetThreadPreferredUILanguages.Addr(), 4, uintptr(flags), uintptr(unsafe.Pointer(numLanguages)), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(bufSize)), 0, 0)
2783 if r1 == 0 {
2784 if e1 != 0 {
2785 err = errnoErr(e1)
2786 } else {
2787 err = syscall.EINVAL
2788 }
2789 }
2790 return
2791}
2792
2793func getUserPreferredUILanguages(flags uint32, numLanguages *uint32, buf *uint16, bufSize *uint32) (err error) {
2794 r1, _, e1 := syscall.Syscall6(procGetUserPreferredUILanguages.Addr(), 4, uintptr(flags), uintptr(unsafe.Pointer(numLanguages)), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(bufSize)), 0, 0)
2795 if r1 == 0 {
2796 if e1 != 0 {
2797 err = errnoErr(e1)
2798 } else {
2799 err = syscall.EINVAL
2800 }
2801 }
2802 return
2803}
2804
2805func getSystemPreferredUILanguages(flags uint32, numLanguages *uint32, buf *uint16, bufSize *uint32) (err error) {
2806 r1, _, e1 := syscall.Syscall6(procGetSystemPreferredUILanguages.Addr(), 4, uintptr(flags), uintptr(unsafe.Pointer(numLanguages)), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(bufSize)), 0, 0)
2807 if r1 == 0 {
2808 if e1 != 0 {
2809 err = errnoErr(e1)
2810 } else {
2811 err = syscall.EINVAL
2812 }
2813 }
2814 return
2815}
2816
2817func EnumProcesses(processIds []uint32, bytesReturned *uint32) (err error) {
2818 var _p0 *uint32
2819 if len(processIds) > 0 {
2820 _p0 = &processIds[0]
2821 }
2822 r1, _, e1 := syscall.Syscall(procEnumProcesses.Addr(), 3, uintptr(unsafe.Pointer(_p0)), uintptr(len(processIds)), uintptr(unsafe.Pointer(bytesReturned)))
2823 if r1 == 0 {
2824 if e1 != 0 {
2825 err = errnoErr(e1)
2826 } else {
2827 err = syscall.EINVAL
2828 }
2829 }
2830 return
2831}
2832
2627func WSAStartup(verreq uint32, data *WSAData) (sockerr error) { 2833func WSAStartup(verreq uint32, data *WSAData) (sockerr error) {
2628 r0, _, _ := syscall.Syscall(procWSAStartup.Addr(), 2, uintptr(verreq), uintptr(unsafe.Pointer(data)), 0) 2834 r0, _, _ := syscall.Syscall(procWSAStartup.Addr(), 2, uintptr(verreq), uintptr(unsafe.Pointer(data)), 0)
2629 if r0 != 0 { 2835 if r0 != 0 {
@@ -2669,6 +2875,39 @@ func socket(af int32, typ int32, protocol int32) (handle Handle, err error) {
2669 return 2875 return
2670} 2876}
2671 2877
2878func sendto(s Handle, buf []byte, flags int32, to unsafe.Pointer, tolen int32) (err error) {
2879 var _p0 *byte
2880 if len(buf) > 0 {
2881 _p0 = &buf[0]
2882 }
2883 r1, _, e1 := syscall.Syscall6(procsendto.Addr(), 6, uintptr(s), uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(tolen))
2884 if r1 == socket_error {
2885 if e1 != 0 {
2886 err = errnoErr(e1)
2887 } else {
2888 err = syscall.EINVAL
2889 }
2890 }
2891 return
2892}
2893
2894func recvfrom(s Handle, buf []byte, flags int32, from *RawSockaddrAny, fromlen *int32) (n int32, err error) {
2895 var _p0 *byte
2896 if len(buf) > 0 {
2897 _p0 = &buf[0]
2898 }
2899 r0, _, e1 := syscall.Syscall6(procrecvfrom.Addr(), 6, uintptr(s), uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))
2900 n = int32(r0)
2901 if n == -1 {
2902 if e1 != 0 {
2903 err = errnoErr(e1)
2904 } else {
2905 err = syscall.EINVAL
2906 }
2907 }
2908 return
2909}
2910
2672func Setsockopt(s Handle, level int32, optname int32, optval *byte, optlen int32) (err error) { 2911func Setsockopt(s Handle, level int32, optname int32, optval *byte, optlen int32) (err error) {
2673 r1, _, e1 := syscall.Syscall6(procsetsockopt.Addr(), 5, uintptr(s), uintptr(level), uintptr(optname), uintptr(unsafe.Pointer(optval)), uintptr(optlen), 0) 2912 r1, _, e1 := syscall.Syscall6(procsetsockopt.Addr(), 5, uintptr(s), uintptr(level), uintptr(optname), uintptr(unsafe.Pointer(optval)), uintptr(optlen), 0)
2674 if r1 == socket_error { 2913 if r1 == socket_error {
@@ -3455,3 +3694,358 @@ func WTSFreeMemory(ptr uintptr) {
3455 syscall.Syscall(procWTSFreeMemory.Addr(), 1, uintptr(ptr), 0, 0) 3694 syscall.Syscall(procWTSFreeMemory.Addr(), 1, uintptr(ptr), 0, 0)
3456 return 3695 return
3457} 3696}
3697
3698func getSecurityInfo(handle Handle, objectType SE_OBJECT_TYPE, securityInformation SECURITY_INFORMATION, owner **SID, group **SID, dacl **ACL, sacl **ACL, sd **SECURITY_DESCRIPTOR) (ret error) {
3699 r0, _, _ := syscall.Syscall9(procGetSecurityInfo.Addr(), 8, uintptr(handle), uintptr(objectType), uintptr(securityInformation), uintptr(unsafe.Pointer(owner)), uintptr(unsafe.Pointer(group)), uintptr(unsafe.Pointer(dacl)), uintptr(unsafe.Pointer(sacl)), uintptr(unsafe.Pointer(sd)), 0)
3700 if r0 != 0 {
3701 ret = syscall.Errno(r0)
3702 }
3703 return
3704}
3705
3706func SetSecurityInfo(handle Handle, objectType SE_OBJECT_TYPE, securityInformation SECURITY_INFORMATION, owner *SID, group *SID, dacl *ACL, sacl *ACL) {
3707 syscall.Syscall9(procSetSecurityInfo.Addr(), 7, uintptr(handle), uintptr(objectType), uintptr(securityInformation), uintptr(unsafe.Pointer(owner)), uintptr(unsafe.Pointer(group)), uintptr(unsafe.Pointer(dacl)), uintptr(unsafe.Pointer(sacl)), 0, 0)
3708 return
3709}
3710
3711func getNamedSecurityInfo(objectName string, objectType SE_OBJECT_TYPE, securityInformation SECURITY_INFORMATION, owner **SID, group **SID, dacl **ACL, sacl **ACL, sd **SECURITY_DESCRIPTOR) (ret error) {
3712 var _p0 *uint16
3713 _p0, ret = syscall.UTF16PtrFromString(objectName)
3714 if ret != nil {
3715 return
3716 }
3717 return _getNamedSecurityInfo(_p0, objectType, securityInformation, owner, group, dacl, sacl, sd)
3718}
3719
3720func _getNamedSecurityInfo(objectName *uint16, objectType SE_OBJECT_TYPE, securityInformation SECURITY_INFORMATION, owner **SID, group **SID, dacl **ACL, sacl **ACL, sd **SECURITY_DESCRIPTOR) (ret error) {
3721 r0, _, _ := syscall.Syscall9(procGetNamedSecurityInfoW.Addr(), 8, uintptr(unsafe.Pointer(objectName)), uintptr(objectType), uintptr(securityInformation), uintptr(unsafe.Pointer(owner)), uintptr(unsafe.Pointer(group)), uintptr(unsafe.Pointer(dacl)), uintptr(unsafe.Pointer(sacl)), uintptr(unsafe.Pointer(sd)), 0)
3722 if r0 != 0 {
3723 ret = syscall.Errno(r0)
3724 }
3725 return
3726}
3727
3728func SetNamedSecurityInfo(objectName string, objectType SE_OBJECT_TYPE, securityInformation SECURITY_INFORMATION, owner *SID, group *SID, dacl *ACL, sacl *ACL) (ret error) {
3729 var _p0 *uint16
3730 _p0, ret = syscall.UTF16PtrFromString(objectName)
3731 if ret != nil {
3732 return
3733 }
3734 return _SetNamedSecurityInfo(_p0, objectType, securityInformation, owner, group, dacl, sacl)
3735}
3736
3737func _SetNamedSecurityInfo(objectName *uint16, objectType SE_OBJECT_TYPE, securityInformation SECURITY_INFORMATION, owner *SID, group *SID, dacl *ACL, sacl *ACL) (ret error) {
3738 r0, _, _ := syscall.Syscall9(procSetNamedSecurityInfoW.Addr(), 7, uintptr(unsafe.Pointer(objectName)), uintptr(objectType), uintptr(securityInformation), uintptr(unsafe.Pointer(owner)), uintptr(unsafe.Pointer(group)), uintptr(unsafe.Pointer(dacl)), uintptr(unsafe.Pointer(sacl)), 0, 0)
3739 if r0 != 0 {
3740 ret = syscall.Errno(r0)
3741 }
3742 return
3743}
3744
3745func buildSecurityDescriptor(owner *TRUSTEE, group *TRUSTEE, countAccessEntries uint32, accessEntries *EXPLICIT_ACCESS, countAuditEntries uint32, auditEntries *EXPLICIT_ACCESS, oldSecurityDescriptor *SECURITY_DESCRIPTOR, sizeNewSecurityDescriptor *uint32, newSecurityDescriptor **SECURITY_DESCRIPTOR) (ret error) {
3746 r0, _, _ := syscall.Syscall9(procBuildSecurityDescriptorW.Addr(), 9, uintptr(unsafe.Pointer(owner)), uintptr(unsafe.Pointer(group)), uintptr(countAccessEntries), uintptr(unsafe.Pointer(accessEntries)), uintptr(countAuditEntries), uintptr(unsafe.Pointer(auditEntries)), uintptr(unsafe.Pointer(oldSecurityDescriptor)), uintptr(unsafe.Pointer(sizeNewSecurityDescriptor)), uintptr(unsafe.Pointer(newSecurityDescriptor)))
3747 if r0 != 0 {
3748 ret = syscall.Errno(r0)
3749 }
3750 return
3751}
3752
3753func initializeSecurityDescriptor(absoluteSD *SECURITY_DESCRIPTOR, revision uint32) (err error) {
3754 r1, _, e1 := syscall.Syscall(procInitializeSecurityDescriptor.Addr(), 2, uintptr(unsafe.Pointer(absoluteSD)), uintptr(revision), 0)
3755 if r1 == 0 {
3756 if e1 != 0 {
3757 err = errnoErr(e1)
3758 } else {
3759 err = syscall.EINVAL
3760 }
3761 }
3762 return
3763}
3764
3765func getSecurityDescriptorControl(sd *SECURITY_DESCRIPTOR, control *SECURITY_DESCRIPTOR_CONTROL, revision *uint32) (err error) {
3766 r1, _, e1 := syscall.Syscall(procGetSecurityDescriptorControl.Addr(), 3, uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(control)), uintptr(unsafe.Pointer(revision)))
3767 if r1 == 0 {
3768 if e1 != 0 {
3769 err = errnoErr(e1)
3770 } else {
3771 err = syscall.EINVAL
3772 }
3773 }
3774 return
3775}
3776
3777func getSecurityDescriptorDacl(sd *SECURITY_DESCRIPTOR, daclPresent *bool, dacl **ACL, daclDefaulted *bool) (err error) {
3778 var _p0 uint32
3779 if *daclPresent {
3780 _p0 = 1
3781 } else {
3782 _p0 = 0
3783 }
3784 var _p1 uint32
3785 if *daclDefaulted {
3786 _p1 = 1
3787 } else {
3788 _p1 = 0
3789 }
3790 r1, _, e1 := syscall.Syscall6(procGetSecurityDescriptorDacl.Addr(), 4, uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(&_p0)), uintptr(unsafe.Pointer(dacl)), uintptr(unsafe.Pointer(&_p1)), 0, 0)
3791 *daclPresent = _p0 != 0
3792 *daclDefaulted = _p1 != 0
3793 if r1 == 0 {
3794 if e1 != 0 {
3795 err = errnoErr(e1)
3796 } else {
3797 err = syscall.EINVAL
3798 }
3799 }
3800 return
3801}
3802
3803func getSecurityDescriptorSacl(sd *SECURITY_DESCRIPTOR, saclPresent *bool, sacl **ACL, saclDefaulted *bool) (err error) {
3804 var _p0 uint32
3805 if *saclPresent {
3806 _p0 = 1
3807 } else {
3808 _p0 = 0
3809 }
3810 var _p1 uint32
3811 if *saclDefaulted {
3812 _p1 = 1
3813 } else {
3814 _p1 = 0
3815 }
3816 r1, _, e1 := syscall.Syscall6(procGetSecurityDescriptorSacl.Addr(), 4, uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(&_p0)), uintptr(unsafe.Pointer(sacl)), uintptr(unsafe.Pointer(&_p1)), 0, 0)
3817 *saclPresent = _p0 != 0
3818 *saclDefaulted = _p1 != 0
3819 if r1 == 0 {
3820 if e1 != 0 {
3821 err = errnoErr(e1)
3822 } else {
3823 err = syscall.EINVAL
3824 }
3825 }
3826 return
3827}
3828
3829func getSecurityDescriptorOwner(sd *SECURITY_DESCRIPTOR, owner **SID, ownerDefaulted *bool) (err error) {
3830 var _p0 uint32
3831 if *ownerDefaulted {
3832 _p0 = 1
3833 } else {
3834 _p0 = 0
3835 }
3836 r1, _, e1 := syscall.Syscall(procGetSecurityDescriptorOwner.Addr(), 3, uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(owner)), uintptr(unsafe.Pointer(&_p0)))
3837 *ownerDefaulted = _p0 != 0
3838 if r1 == 0 {
3839 if e1 != 0 {
3840 err = errnoErr(e1)
3841 } else {
3842 err = syscall.EINVAL
3843 }
3844 }
3845 return
3846}
3847
3848func getSecurityDescriptorGroup(sd *SECURITY_DESCRIPTOR, group **SID, groupDefaulted *bool) (err error) {
3849 var _p0 uint32
3850 if *groupDefaulted {
3851 _p0 = 1
3852 } else {
3853 _p0 = 0
3854 }
3855 r1, _, e1 := syscall.Syscall(procGetSecurityDescriptorGroup.Addr(), 3, uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(group)), uintptr(unsafe.Pointer(&_p0)))
3856 *groupDefaulted = _p0 != 0
3857 if r1 == 0 {
3858 if e1 != 0 {
3859 err = errnoErr(e1)
3860 } else {
3861 err = syscall.EINVAL
3862 }
3863 }
3864 return
3865}
3866
3867func getSecurityDescriptorLength(sd *SECURITY_DESCRIPTOR) (len uint32) {
3868 r0, _, _ := syscall.Syscall(procGetSecurityDescriptorLength.Addr(), 1, uintptr(unsafe.Pointer(sd)), 0, 0)
3869 len = uint32(r0)
3870 return
3871}
3872
3873func getSecurityDescriptorRMControl(sd *SECURITY_DESCRIPTOR, rmControl *uint8) (ret error) {
3874 r0, _, _ := syscall.Syscall(procGetSecurityDescriptorRMControl.Addr(), 2, uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(rmControl)), 0)
3875 if r0 != 0 {
3876 ret = syscall.Errno(r0)
3877 }
3878 return
3879}
3880
3881func isValidSecurityDescriptor(sd *SECURITY_DESCRIPTOR) (isValid bool) {
3882 r0, _, _ := syscall.Syscall(procIsValidSecurityDescriptor.Addr(), 1, uintptr(unsafe.Pointer(sd)), 0, 0)
3883 isValid = r0 != 0
3884 return
3885}
3886
3887func setSecurityDescriptorControl(sd *SECURITY_DESCRIPTOR, controlBitsOfInterest SECURITY_DESCRIPTOR_CONTROL, controlBitsToSet SECURITY_DESCRIPTOR_CONTROL) (err error) {
3888 r1, _, e1 := syscall.Syscall(procSetSecurityDescriptorControl.Addr(), 3, uintptr(unsafe.Pointer(sd)), uintptr(controlBitsOfInterest), uintptr(controlBitsToSet))
3889 if r1 == 0 {
3890 if e1 != 0 {
3891 err = errnoErr(e1)
3892 } else {
3893 err = syscall.EINVAL
3894 }
3895 }
3896 return
3897}
3898
3899func setSecurityDescriptorDacl(sd *SECURITY_DESCRIPTOR, daclPresent bool, dacl *ACL, daclDefaulted bool) (err error) {
3900 var _p0 uint32
3901 if daclPresent {
3902 _p0 = 1
3903 } else {
3904 _p0 = 0
3905 }
3906 var _p1 uint32
3907 if daclDefaulted {
3908 _p1 = 1
3909 } else {
3910 _p1 = 0
3911 }
3912 r1, _, e1 := syscall.Syscall6(procSetSecurityDescriptorDacl.Addr(), 4, uintptr(unsafe.Pointer(sd)), uintptr(_p0), uintptr(unsafe.Pointer(dacl)), uintptr(_p1), 0, 0)
3913 if r1 == 0 {
3914 if e1 != 0 {
3915 err = errnoErr(e1)
3916 } else {
3917 err = syscall.EINVAL
3918 }
3919 }
3920 return
3921}
3922
3923func setSecurityDescriptorSacl(sd *SECURITY_DESCRIPTOR, saclPresent bool, sacl *ACL, saclDefaulted bool) (err error) {
3924 var _p0 uint32
3925 if saclPresent {
3926 _p0 = 1
3927 } else {
3928 _p0 = 0
3929 }
3930 var _p1 uint32
3931 if saclDefaulted {
3932 _p1 = 1
3933 } else {
3934 _p1 = 0
3935 }
3936 r1, _, e1 := syscall.Syscall6(procSetSecurityDescriptorSacl.Addr(), 4, uintptr(unsafe.Pointer(sd)), uintptr(_p0), uintptr(unsafe.Pointer(sacl)), uintptr(_p1), 0, 0)
3937 if r1 == 0 {
3938 if e1 != 0 {
3939 err = errnoErr(e1)
3940 } else {
3941 err = syscall.EINVAL
3942 }
3943 }
3944 return
3945}
3946
3947func setSecurityDescriptorOwner(sd *SECURITY_DESCRIPTOR, owner *SID, ownerDefaulted bool) (err error) {
3948 var _p0 uint32
3949 if ownerDefaulted {
3950 _p0 = 1
3951 } else {
3952 _p0 = 0
3953 }
3954 r1, _, e1 := syscall.Syscall(procSetSecurityDescriptorOwner.Addr(), 3, uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(owner)), uintptr(_p0))
3955 if r1 == 0 {
3956 if e1 != 0 {
3957 err = errnoErr(e1)
3958 } else {
3959 err = syscall.EINVAL
3960 }
3961 }
3962 return
3963}
3964
3965func setSecurityDescriptorGroup(sd *SECURITY_DESCRIPTOR, group *SID, groupDefaulted bool) (err error) {
3966 var _p0 uint32
3967 if groupDefaulted {
3968 _p0 = 1
3969 } else {
3970 _p0 = 0
3971 }
3972 r1, _, e1 := syscall.Syscall(procSetSecurityDescriptorGroup.Addr(), 3, uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(group)), uintptr(_p0))
3973 if r1 == 0 {
3974 if e1 != 0 {
3975 err = errnoErr(e1)
3976 } else {
3977 err = syscall.EINVAL
3978 }
3979 }
3980 return
3981}
3982
3983func setSecurityDescriptorRMControl(sd *SECURITY_DESCRIPTOR, rmControl *uint8) {
3984 syscall.Syscall(procSetSecurityDescriptorRMControl.Addr(), 2, uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(rmControl)), 0)
3985 return
3986}
3987
3988func convertStringSecurityDescriptorToSecurityDescriptor(str string, revision uint32, sd **SECURITY_DESCRIPTOR, size *uint32) (err error) {
3989 var _p0 *uint16
3990 _p0, err = syscall.UTF16PtrFromString(str)
3991 if err != nil {
3992 return
3993 }
3994 return _convertStringSecurityDescriptorToSecurityDescriptor(_p0, revision, sd, size)
3995}
3996
3997func _convertStringSecurityDescriptorToSecurityDescriptor(str *uint16, revision uint32, sd **SECURITY_DESCRIPTOR, size *uint32) (err error) {
3998 r1, _, e1 := syscall.Syscall6(procConvertStringSecurityDescriptorToSecurityDescriptorW.Addr(), 4, uintptr(unsafe.Pointer(str)), uintptr(revision), uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(size)), 0, 0)
3999 if r1 == 0 {
4000 if e1 != 0 {
4001 err = errnoErr(e1)
4002 } else {
4003 err = syscall.EINVAL
4004 }
4005 }
4006 return
4007}
4008
4009func convertSecurityDescriptorToStringSecurityDescriptor(sd *SECURITY_DESCRIPTOR, revision uint32, securityInformation SECURITY_INFORMATION, str **uint16, strLen *uint32) (err error) {
4010 r1, _, e1 := syscall.Syscall6(procConvertSecurityDescriptorToStringSecurityDescriptorW.Addr(), 5, uintptr(unsafe.Pointer(sd)), uintptr(revision), uintptr(securityInformation), uintptr(unsafe.Pointer(str)), uintptr(unsafe.Pointer(strLen)), 0)
4011 if r1 == 0 {
4012 if e1 != 0 {
4013 err = errnoErr(e1)
4014 } else {
4015 err = syscall.EINVAL
4016 }
4017 }
4018 return
4019}
4020
4021func makeAbsoluteSD(selfRelativeSD *SECURITY_DESCRIPTOR, absoluteSD *SECURITY_DESCRIPTOR, absoluteSDSize *uint32, dacl *ACL, daclSize *uint32, sacl *ACL, saclSize *uint32, owner *SID, ownerSize *uint32, group *SID, groupSize *uint32) (err error) {
4022 r1, _, e1 := syscall.Syscall12(procMakeAbsoluteSD.Addr(), 11, uintptr(unsafe.Pointer(selfRelativeSD)), uintptr(unsafe.Pointer(absoluteSD)), uintptr(unsafe.Pointer(absoluteSDSize)), uintptr(unsafe.Pointer(dacl)), uintptr(unsafe.Pointer(daclSize)), uintptr(unsafe.Pointer(sacl)), uintptr(unsafe.Pointer(saclSize)), uintptr(unsafe.Pointer(owner)), uintptr(unsafe.Pointer(ownerSize)), uintptr(unsafe.Pointer(group)), uintptr(unsafe.Pointer(groupSize)), 0)
4023 if r1 == 0 {
4024 if e1 != 0 {
4025 err = errnoErr(e1)
4026 } else {
4027 err = syscall.EINVAL
4028 }
4029 }
4030 return
4031}
4032
4033func makeSelfRelativeSD(absoluteSD *SECURITY_DESCRIPTOR, selfRelativeSD *SECURITY_DESCRIPTOR, selfRelativeSDSize *uint32) (err error) {
4034 r1, _, e1 := syscall.Syscall(procMakeSelfRelativeSD.Addr(), 3, uintptr(unsafe.Pointer(absoluteSD)), uintptr(unsafe.Pointer(selfRelativeSD)), uintptr(unsafe.Pointer(selfRelativeSDSize)))
4035 if r1 == 0 {
4036 if e1 != 0 {
4037 err = errnoErr(e1)
4038 } else {
4039 err = syscall.EINVAL
4040 }
4041 }
4042 return
4043}
4044
4045func setEntriesInAcl(countExplicitEntries uint32, explicitEntries *EXPLICIT_ACCESS, oldACL *ACL, newACL **ACL) (ret error) {
4046 r0, _, _ := syscall.Syscall6(procSetEntriesInAclW.Addr(), 4, uintptr(countExplicitEntries), uintptr(unsafe.Pointer(explicitEntries)), uintptr(unsafe.Pointer(oldACL)), uintptr(unsafe.Pointer(newACL)), 0, 0)
4047 if r0 != 0 {
4048 ret = syscall.Errno(r0)
4049 }
4050 return
4051}
diff --git a/vendor/golang.org/x/tools/AUTHORS b/vendor/golang.org/x/tools/AUTHORS
new file mode 100644
index 0000000..15167cd
--- /dev/null
+++ b/vendor/golang.org/x/tools/AUTHORS
@@ -0,0 +1,3 @@
1# This source code refers to The Go Authors for copyright purposes.
2# The master list of authors is in the main Go distribution,
3# visible at http://tip.golang.org/AUTHORS.
diff --git a/vendor/golang.org/x/tools/CONTRIBUTORS b/vendor/golang.org/x/tools/CONTRIBUTORS
new file mode 100644
index 0000000..1c4577e
--- /dev/null
+++ b/vendor/golang.org/x/tools/CONTRIBUTORS
@@ -0,0 +1,3 @@
1# This source code was written by the Go contributors.
2# The master list of contributors is in the main Go distribution,
3# visible at http://tip.golang.org/CONTRIBUTORS.
diff --git a/vendor/golang.org/x/tools/LICENSE b/vendor/golang.org/x/tools/LICENSE
new file mode 100644
index 0000000..6a66aea
--- /dev/null
+++ b/vendor/golang.org/x/tools/LICENSE
@@ -0,0 +1,27 @@
1Copyright (c) 2009 The Go Authors. All rights reserved.
2
3Redistribution and use in source and binary forms, with or without
4modification, are permitted provided that the following conditions are
5met:
6
7 * Redistributions of source code must retain the above copyright
8notice, this list of conditions and the following disclaimer.
9 * Redistributions in binary form must reproduce the above
10copyright notice, this list of conditions and the following disclaimer
11in the documentation and/or other materials provided with the
12distribution.
13 * Neither the name of Google Inc. nor the names of its
14contributors may be used to endorse or promote products derived from
15this software without specific prior written permission.
16
17THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
18"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
19LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
20A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
21OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
22SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
23LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
24DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
25THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
26(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
27OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/vendor/golang.org/x/tools/PATENTS b/vendor/golang.org/x/tools/PATENTS
new file mode 100644
index 0000000..7330990
--- /dev/null
+++ b/vendor/golang.org/x/tools/PATENTS
@@ -0,0 +1,22 @@
1Additional IP Rights Grant (Patents)
2
3"This implementation" means the copyrightable works distributed by
4Google as part of the Go project.
5
6Google hereby grants to You a perpetual, worldwide, non-exclusive,
7no-charge, royalty-free, irrevocable (except as stated in this section)
8patent license to make, have made, use, offer to sell, sell, import,
9transfer and otherwise run, modify and propagate the contents of this
10implementation of Go, where such license applies only to those patent
11claims, both currently owned or controlled by Google and acquired in
12the future, licensable by Google that are necessarily infringed by this
13implementation of Go. This grant does not include claims that would be
14infringed only as a consequence of further modification of this
15implementation. If you or your agent or exclusive licensee institute or
16order or agree to the institution of patent litigation against any
17entity (including a cross-claim or counterclaim in a lawsuit) alleging
18that this implementation of Go or any code incorporated within this
19implementation of Go constitutes direct or contributory patent
20infringement, or inducement of patent infringement, then any patent
21rights granted to you under this License for this implementation of Go
22shall terminate as of the date such litigation is filed.
diff --git a/vendor/golang.org/x/tools/go/analysis/analysis.go b/vendor/golang.org/x/tools/go/analysis/analysis.go
new file mode 100644
index 0000000..ea605f4
--- /dev/null
+++ b/vendor/golang.org/x/tools/go/analysis/analysis.go
@@ -0,0 +1,221 @@
1package analysis
2
3import (
4 "flag"
5 "fmt"
6 "go/ast"
7 "go/token"
8 "go/types"
9 "reflect"
10)
11
12// An Analyzer describes an analysis function and its options.
13type Analyzer struct {
14 // The Name of the analyzer must be a valid Go identifier
15 // as it may appear in command-line flags, URLs, and so on.
16 Name string
17
18 // Doc is the documentation for the analyzer.
19 // The part before the first "\n\n" is the title
20 // (no capital or period, max ~60 letters).
21 Doc string
22
23 // Flags defines any flags accepted by the analyzer.
24 // The manner in which these flags are exposed to the user
25 // depends on the driver which runs the analyzer.
26 Flags flag.FlagSet
27
28 // Run applies the analyzer to a package.
29 // It returns an error if the analyzer failed.
30 //
31 // On success, the Run function may return a result
32 // computed by the Analyzer; its type must match ResultType.
33 // The driver makes this result available as an input to
34 // another Analyzer that depends directly on this one (see
35 // Requires) when it analyzes the same package.
36 //
37 // To pass analysis results between packages (and thus
38 // potentially between address spaces), use Facts, which are
39 // serializable.
40 Run func(*Pass) (interface{}, error)
41
42 // RunDespiteErrors allows the driver to invoke
43 // the Run method of this analyzer even on a
44 // package that contains parse or type errors.
45 RunDespiteErrors bool
46
47 // Requires is a set of analyzers that must run successfully
48 // before this one on a given package. This analyzer may inspect
49 // the outputs produced by each analyzer in Requires.
50 // The graph over analyzers implied by Requires edges must be acyclic.
51 //
52 // Requires establishes a "horizontal" dependency between
53 // analysis passes (different analyzers, same package).
54 Requires []*Analyzer
55
56 // ResultType is the type of the optional result of the Run function.
57 ResultType reflect.Type
58
59 // FactTypes indicates that this analyzer imports and exports
60 // Facts of the specified concrete types.
61 // An analyzer that uses facts may assume that its import
62 // dependencies have been similarly analyzed before it runs.
63 // Facts must be pointers.
64 //
65 // FactTypes establishes a "vertical" dependency between
66 // analysis passes (same analyzer, different packages).
67 FactTypes []Fact
68}
69
70func (a *Analyzer) String() string { return a.Name }
71
72// A Pass provides information to the Run function that
73// applies a specific analyzer to a single Go package.
74//
75// It forms the interface between the analysis logic and the driver
76// program, and has both input and an output components.
77//
78// As in a compiler, one pass may depend on the result computed by another.
79//
80// The Run function should not call any of the Pass functions concurrently.
81type Pass struct {
82 Analyzer *Analyzer // the identity of the current analyzer
83
84 // syntax and type information
85 Fset *token.FileSet // file position information
86 Files []*ast.File // the abstract syntax tree of each file
87 OtherFiles []string // names of non-Go files of this package
88 Pkg *types.Package // type information about the package
89 TypesInfo *types.Info // type information about the syntax trees
90 TypesSizes types.Sizes // function for computing sizes of types
91
92 // Report reports a Diagnostic, a finding about a specific location
93 // in the analyzed source code such as a potential mistake.
94 // It may be called by the Run function.
95 Report func(Diagnostic)
96
97 // ResultOf provides the inputs to this analysis pass, which are
98 // the corresponding results of its prerequisite analyzers.
99 // The map keys are the elements of Analysis.Required,
100 // and the type of each corresponding value is the required
101 // analysis's ResultType.
102 ResultOf map[*Analyzer]interface{}
103
104 // -- facts --
105
106 // ImportObjectFact retrieves a fact associated with obj.
107 // Given a value ptr of type *T, where *T satisfies Fact,
108 // ImportObjectFact copies the value to *ptr.
109 //
110 // ImportObjectFact panics if called after the pass is complete.
111 // ImportObjectFact is not concurrency-safe.
112 ImportObjectFact func(obj types.Object, fact Fact) bool
113
114 // ImportPackageFact retrieves a fact associated with package pkg,
115 // which must be this package or one of its dependencies.
116 // See comments for ImportObjectFact.
117 ImportPackageFact func(pkg *types.Package, fact Fact) bool
118
119 // ExportObjectFact associates a fact of type *T with the obj,
120 // replacing any previous fact of that type.
121 //
122 // ExportObjectFact panics if it is called after the pass is
123 // complete, or if obj does not belong to the package being analyzed.
124 // ExportObjectFact is not concurrency-safe.
125 ExportObjectFact func(obj types.Object, fact Fact)
126
127 // ExportPackageFact associates a fact with the current package.
128 // See comments for ExportObjectFact.
129 ExportPackageFact func(fact Fact)
130
131 // AllPackageFacts returns a new slice containing all package facts of the analysis's FactTypes
132 // in unspecified order.
133 // WARNING: This is an experimental API and may change in the future.
134 AllPackageFacts func() []PackageFact
135
136 // AllObjectFacts returns a new slice containing all object facts of the analysis's FactTypes
137 // in unspecified order.
138 // WARNING: This is an experimental API and may change in the future.
139 AllObjectFacts func() []ObjectFact
140
141 /* Further fields may be added in future. */
142 // For example, suggested or applied refactorings.
143}
144
145// PackageFact is a package together with an associated fact.
146// WARNING: This is an experimental API and may change in the future.
147type PackageFact struct {
148 Package *types.Package
149 Fact Fact
150}
151
152// ObjectFact is an object together with an associated fact.
153// WARNING: This is an experimental API and may change in the future.
154type ObjectFact struct {
155 Object types.Object
156 Fact Fact
157}
158
159// Reportf is a helper function that reports a Diagnostic using the
160// specified position and formatted error message.
161func (pass *Pass) Reportf(pos token.Pos, format string, args ...interface{}) {
162 msg := fmt.Sprintf(format, args...)
163 pass.Report(Diagnostic{Pos: pos, Message: msg})
164}
165
166// The Range interface provides a range. It's equivalent to and satisfied by
167// ast.Node.
168type Range interface {
169 Pos() token.Pos // position of first character belonging to the node
170 End() token.Pos // position of first character immediately after the node
171}
172
173// ReportRangef is a helper function that reports a Diagnostic using the
174// range provided. ast.Node values can be passed in as the range because
175// they satisfy the Range interface.
176func (pass *Pass) ReportRangef(rng Range, format string, args ...interface{}) {
177 msg := fmt.Sprintf(format, args...)
178 pass.Report(Diagnostic{Pos: rng.Pos(), End: rng.End(), Message: msg})
179}
180
181func (pass *Pass) String() string {
182 return fmt.Sprintf("%s@%s", pass.Analyzer.Name, pass.Pkg.Path())
183}
184
185// A Fact is an intermediate fact produced during analysis.
186//
187// Each fact is associated with a named declaration (a types.Object) or
188// with a package as a whole. A single object or package may have
189// multiple associated facts, but only one of any particular fact type.
190//
191// A Fact represents a predicate such as "never returns", but does not
192// represent the subject of the predicate such as "function F" or "package P".
193//
194// Facts may be produced in one analysis pass and consumed by another
195// analysis pass even if these are in different address spaces.
196// If package P imports Q, all facts about Q produced during
197// analysis of that package will be available during later analysis of P.
198// Facts are analogous to type export data in a build system:
199// just as export data enables separate compilation of several passes,
200// facts enable "separate analysis".
201//
202// Each pass (a, p) starts with the set of facts produced by the
203// same analyzer a applied to the packages directly imported by p.
204// The analysis may add facts to the set, and they may be exported in turn.
205// An analysis's Run function may retrieve facts by calling
206// Pass.Import{Object,Package}Fact and update them using
207// Pass.Export{Object,Package}Fact.
208//
209// A fact is logically private to its Analysis. To pass values
210// between different analyzers, use the results mechanism;
211// see Analyzer.Requires, Analyzer.ResultType, and Pass.ResultOf.
212//
213// A Fact type must be a pointer.
214// Facts are encoded and decoded using encoding/gob.
215// A Fact may implement the GobEncoder/GobDecoder interfaces
216// to customize its encoding. Fact encoding should not fail.
217//
218// A Fact should not be modified once exported.
219type Fact interface {
220 AFact() // dummy method to avoid type errors
221}
diff --git a/vendor/golang.org/x/tools/go/analysis/diagnostic.go b/vendor/golang.org/x/tools/go/analysis/diagnostic.go
new file mode 100644
index 0000000..57eaf6f
--- /dev/null
+++ b/vendor/golang.org/x/tools/go/analysis/diagnostic.go
@@ -0,0 +1,61 @@
1package analysis
2
3import "go/token"
4
5// A Diagnostic is a message associated with a source location or range.
6//
7// An Analyzer may return a variety of diagnostics; the optional Category,
8// which should be a constant, may be used to classify them.
9// It is primarily intended to make it easy to look up documentation.
10//
11// If End is provided, the diagnostic is specified to apply to the range between
12// Pos and End.
13type Diagnostic struct {
14 Pos token.Pos
15 End token.Pos // optional
16 Category string // optional
17 Message string
18
19 // SuggestedFixes contains suggested fixes for a diagnostic which can be used to perform
20 // edits to a file that address the diagnostic.
21 // TODO(matloob): Should multiple SuggestedFixes be allowed for a diagnostic?
22 // Diagnostics should not contain SuggestedFixes that overlap.
23 // Experimental: This API is experimental and may change in the future.
24 SuggestedFixes []SuggestedFix // optional
25
26 // Experimental: This API is experimental and may change in the future.
27 Related []RelatedInformation // optional
28}
29
30// RelatedInformation contains information related to a diagnostic.
31// For example, a diagnostic that flags duplicated declarations of a
32// variable may include one RelatedInformation per existing
33// declaration.
34type RelatedInformation struct {
35 Pos token.Pos
36 End token.Pos
37 Message string
38}
39
40// A SuggestedFix is a code change associated with a Diagnostic that a user can choose
41// to apply to their code. Usually the SuggestedFix is meant to fix the issue flagged
42// by the diagnostic.
43// TextEdits for a SuggestedFix should not overlap. TextEdits for a SuggestedFix
44// should not contain edits for other packages.
45// Experimental: This API is experimental and may change in the future.
46type SuggestedFix struct {
47 // A description for this suggested fix to be shown to a user deciding
48 // whether to accept it.
49 Message string
50 TextEdits []TextEdit
51}
52
53// A TextEdit represents the replacement of the code between Pos and End with the new text.
54// Each TextEdit should apply to a single file. End should not be earlier in the file than Pos.
55// Experimental: This API is experimental and may change in the future.
56type TextEdit struct {
57 // For a pure insertion, End can either be set to Pos or token.NoPos.
58 Pos token.Pos
59 End token.Pos
60 NewText []byte
61}
diff --git a/vendor/golang.org/x/tools/go/analysis/doc.go b/vendor/golang.org/x/tools/go/analysis/doc.go
new file mode 100644
index 0000000..ea56b72
--- /dev/null
+++ b/vendor/golang.org/x/tools/go/analysis/doc.go
@@ -0,0 +1,301 @@
1/*
2
3Package analysis defines the interface between a modular static
4analysis and an analysis driver program.
5
6
7Background
8
9A static analysis is a function that inspects a package of Go code and
10reports a set of diagnostics (typically mistakes in the code), and
11perhaps produces other results as well, such as suggested refactorings
12or other facts. An analysis that reports mistakes is informally called a
13"checker". For example, the printf checker reports mistakes in
14fmt.Printf format strings.
15
16A "modular" analysis is one that inspects one package at a time but can
17save information from a lower-level package and use it when inspecting a
18higher-level package, analogous to separate compilation in a toolchain.
19The printf checker is modular: when it discovers that a function such as
20log.Fatalf delegates to fmt.Printf, it records this fact, and checks
21calls to that function too, including calls made from another package.
22
23By implementing a common interface, checkers from a variety of sources
24can be easily selected, incorporated, and reused in a wide range of
25driver programs including command-line tools (such as vet), text editors and
26IDEs, build and test systems (such as go build, Bazel, or Buck), test
27frameworks, code review tools, code-base indexers (such as SourceGraph),
28documentation viewers (such as godoc), batch pipelines for large code
29bases, and so on.
30
31
32Analyzer
33
34The primary type in the API is Analyzer. An Analyzer statically
35describes an analysis function: its name, documentation, flags,
36relationship to other analyzers, and of course, its logic.
37
38To define an analysis, a user declares a (logically constant) variable
39of type Analyzer. Here is a typical example from one of the analyzers in
40the go/analysis/passes/ subdirectory:
41
42 package unusedresult
43
44 var Analyzer = &analysis.Analyzer{
45 Name: "unusedresult",
46 Doc: "check for unused results of calls to some functions",
47 Run: run,
48 ...
49 }
50
51 func run(pass *analysis.Pass) (interface{}, error) {
52 ...
53 }
54
55An analysis driver is a program such as vet that runs a set of
56analyses and prints the diagnostics that they report.
57The driver program must import the list of Analyzers it needs.
58Typically each Analyzer resides in a separate package.
59To add a new Analyzer to an existing driver, add another item to the list:
60
61 import ( "unusedresult"; "nilness"; "printf" )
62
63 var analyses = []*analysis.Analyzer{
64 unusedresult.Analyzer,
65 nilness.Analyzer,
66 printf.Analyzer,
67 }
68
69A driver may use the name, flags, and documentation to provide on-line
70help that describes the analyses it performs.
71The doc comment contains a brief one-line summary,
72optionally followed by paragraphs of explanation.
73
74The Analyzer type has more fields besides those shown above:
75
76 type Analyzer struct {
77 Name string
78 Doc string
79 Flags flag.FlagSet
80 Run func(*Pass) (interface{}, error)
81 RunDespiteErrors bool
82 ResultType reflect.Type
83 Requires []*Analyzer
84 FactTypes []Fact
85 }
86
87The Flags field declares a set of named (global) flag variables that
88control analysis behavior. Unlike vet, analysis flags are not declared
89directly in the command line FlagSet; it is up to the driver to set the
90flag variables. A driver for a single analysis, a, might expose its flag
91f directly on the command line as -f, whereas a driver for multiple
92analyses might prefix the flag name by the analysis name (-a.f) to avoid
93ambiguity. An IDE might expose the flags through a graphical interface,
94and a batch pipeline might configure them from a config file.
95See the "findcall" analyzer for an example of flags in action.
96
97The RunDespiteErrors flag indicates whether the analysis is equipped to
98handle ill-typed code. If not, the driver will skip the analysis if
99there were parse or type errors.
100The optional ResultType field specifies the type of the result value
101computed by this analysis and made available to other analyses.
102The Requires field specifies a list of analyses upon which
103this one depends and whose results it may access, and it constrains the
104order in which a driver may run analyses.
105The FactTypes field is discussed in the section on Modularity.
106The analysis package provides a Validate function to perform basic
107sanity checks on an Analyzer, such as that its Requires graph is
108acyclic, its fact and result types are unique, and so on.
109
110Finally, the Run field contains a function to be called by the driver to
111execute the analysis on a single package. The driver passes it an
112instance of the Pass type.
113
114
115Pass
116
117A Pass describes a single unit of work: the application of a particular
118Analyzer to a particular package of Go code.
119The Pass provides information to the Analyzer's Run function about the
120package being analyzed, and provides operations to the Run function for
121reporting diagnostics and other information back to the driver.
122
123 type Pass struct {
124 Fset *token.FileSet
125 Files []*ast.File
126 OtherFiles []string
127 Pkg *types.Package
128 TypesInfo *types.Info
129 ResultOf map[*Analyzer]interface{}
130 Report func(Diagnostic)
131 ...
132 }
133
134The Fset, Files, Pkg, and TypesInfo fields provide the syntax trees,
135type information, and source positions for a single package of Go code.
136
137The OtherFiles field provides the names, but not the contents, of non-Go
138files such as assembly that are part of this package. See the "asmdecl"
139or "buildtags" analyzers for examples of loading non-Go files and reporting
140diagnostics against them.
141
142The ResultOf field provides the results computed by the analyzers
143required by this one, as expressed in its Analyzer.Requires field. The
144driver runs the required analyzers first and makes their results
145available in this map. Each Analyzer must return a value of the type
146described in its Analyzer.ResultType field.
147For example, the "ctrlflow" analyzer returns a *ctrlflow.CFGs, which
148provides a control-flow graph for each function in the package (see
149golang.org/x/tools/go/cfg); the "inspect" analyzer returns a value that
150enables other Analyzers to traverse the syntax trees of the package more
151efficiently; and the "buildssa" analyzer constructs an SSA-form
152intermediate representation.
153Each of these Analyzers extends the capabilities of later Analyzers
154without adding a dependency to the core API, so an analysis tool pays
155only for the extensions it needs.
156
157The Report function emits a diagnostic, a message associated with a
158source position. For most analyses, diagnostics are their primary
159result.
160For convenience, Pass provides a helper method, Reportf, to report a new
161diagnostic by formatting a string.
162Diagnostic is defined as:
163
164 type Diagnostic struct {
165 Pos token.Pos
166 Category string // optional
167 Message string
168 }
169
170The optional Category field is a short identifier that classifies the
171kind of message when an analysis produces several kinds of diagnostic.
172
173Most Analyzers inspect typed Go syntax trees, but a few, such as asmdecl
174and buildtag, inspect the raw text of Go source files or even non-Go
175files such as assembly. To report a diagnostic against a line of a
176raw text file, use the following sequence:
177
178 content, err := ioutil.ReadFile(filename)
179 if err != nil { ... }
180 tf := fset.AddFile(filename, -1, len(content))
181 tf.SetLinesForContent(content)
182 ...
183 pass.Reportf(tf.LineStart(line), "oops")
184
185
186Modular analysis with Facts
187
188To improve efficiency and scalability, large programs are routinely
189built using separate compilation: units of the program are compiled
190separately, and recompiled only when one of their dependencies changes;
191independent modules may be compiled in parallel. The same technique may
192be applied to static analyses, for the same benefits. Such analyses are
193described as "modular".
194
195A compiler’s type checker is an example of a modular static analysis.
196Many other checkers we would like to apply to Go programs can be
197understood as alternative or non-standard type systems. For example,
198vet's printf checker infers whether a function has the "printf wrapper"
199type, and it applies stricter checks to calls of such functions. In
200addition, it records which functions are printf wrappers for use by
201later analysis passes to identify other printf wrappers by induction.
202A result such as “f is a printf wrapper” that is not interesting by
203itself but serves as a stepping stone to an interesting result (such as
204a diagnostic) is called a "fact".
205
206The analysis API allows an analysis to define new types of facts, to
207associate facts of these types with objects (named entities) declared
208within the current package, or with the package as a whole, and to query
209for an existing fact of a given type associated with an object or
210package.
211
212An Analyzer that uses facts must declare their types:
213
214 var Analyzer = &analysis.Analyzer{
215 Name: "printf",
216 FactTypes: []analysis.Fact{new(isWrapper)},
217 ...
218 }
219
220 type isWrapper struct{} // => *types.Func f “is a printf wrapper”
221
222The driver program ensures that facts for a pass’s dependencies are
223generated before analyzing the package and is responsible for propagating
224facts from one package to another, possibly across address spaces.
225Consequently, Facts must be serializable. The API requires that drivers
226use the gob encoding, an efficient, robust, self-describing binary
227protocol. A fact type may implement the GobEncoder/GobDecoder interfaces
228if the default encoding is unsuitable. Facts should be stateless.
229
230The Pass type has functions to import and export facts,
231associated either with an object or with a package:
232
233 type Pass struct {
234 ...
235 ExportObjectFact func(types.Object, Fact)
236 ImportObjectFact func(types.Object, Fact) bool
237
238 ExportPackageFact func(fact Fact)
239 ImportPackageFact func(*types.Package, Fact) bool
240 }
241
242An Analyzer may only export facts associated with the current package or
243its objects, though it may import facts from any package or object that
244is an import dependency of the current package.
245
246Conceptually, ExportObjectFact(obj, fact) inserts fact into a hidden map keyed by
247the pair (obj, TypeOf(fact)), and the ImportObjectFact function
248retrieves the entry from this map and copies its value into the variable
249pointed to by fact. This scheme assumes that the concrete type of fact
250is a pointer; this assumption is checked by the Validate function.
251See the "printf" analyzer for an example of object facts in action.
252
253Some driver implementations (such as those based on Bazel and Blaze) do
254not currently apply analyzers to packages of the standard library.
255Therefore, for best results, analyzer authors should not rely on
256analysis facts being available for standard packages.
257For example, although the printf checker is capable of deducing during
258analysis of the log package that log.Printf is a printf wrapper,
259this fact is built in to the analyzer so that it correctly checks
260calls to log.Printf even when run in a driver that does not apply
261it to standard packages. We would like to remove this limitation in future.
262
263
264Testing an Analyzer
265
266The analysistest subpackage provides utilities for testing an Analyzer.
267In a few lines of code, it is possible to run an analyzer on a package
268of testdata files and check that it reported all the expected
269diagnostics and facts (and no more). Expectations are expressed using
270"// want ..." comments in the input code.
271
272
273Standalone commands
274
275Analyzers are provided in the form of packages that a driver program is
276expected to import. The vet command imports a set of several analyzers,
277but users may wish to define their own analysis commands that perform
278additional checks. To simplify the task of creating an analysis command,
279either for a single analyzer or for a whole suite, we provide the
280singlechecker and multichecker subpackages.
281
282The singlechecker package provides the main function for a command that
283runs one analyzer. By convention, each analyzer such as
284go/passes/findcall should be accompanied by a singlechecker-based
285command such as go/analysis/passes/findcall/cmd/findcall, defined in its
286entirety as:
287
288 package main
289
290 import (
291 "golang.org/x/tools/go/analysis/passes/findcall"
292 "golang.org/x/tools/go/analysis/singlechecker"
293 )
294
295 func main() { singlechecker.Main(findcall.Analyzer) }
296
297A tool that provides multiple analyzers can use multichecker in a
298similar way, giving it the list of Analyzers.
299
300*/
301package analysis
diff --git a/vendor/golang.org/x/tools/go/analysis/passes/inspect/inspect.go b/vendor/golang.org/x/tools/go/analysis/passes/inspect/inspect.go
new file mode 100644
index 0000000..2856df1
--- /dev/null
+++ b/vendor/golang.org/x/tools/go/analysis/passes/inspect/inspect.go
@@ -0,0 +1,49 @@
1// Copyright 2018 The Go Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style
3// license that can be found in the LICENSE file.
4
5// Package inspect defines an Analyzer that provides an AST inspector
6// (golang.org/x/tools/go/ast/inspect.Inspect) for the syntax trees of a
7// package. It is only a building block for other analyzers.
8//
9// Example of use in another analysis:
10//
11// import (
12// "golang.org/x/tools/go/analysis"
13// "golang.org/x/tools/go/analysis/passes/inspect"
14// "golang.org/x/tools/go/ast/inspector"
15// )
16//
17// var Analyzer = &analysis.Analyzer{
18// ...
19// Requires: []*analysis.Analyzer{inspect.Analyzer},
20// }
21//
22// func run(pass *analysis.Pass) (interface{}, error) {
23// inspect := pass.ResultOf[inspect.Analyzer].(*inspector.Inspector)
24// inspect.Preorder(nil, func(n ast.Node) {
25// ...
26// })
27// return nil
28// }
29//
30package inspect
31
32import (
33 "reflect"
34
35 "golang.org/x/tools/go/analysis"
36 "golang.org/x/tools/go/ast/inspector"
37)
38
39var Analyzer = &analysis.Analyzer{
40 Name: "inspect",
41 Doc: "optimize AST traversal for later passes",
42 Run: run,
43 RunDespiteErrors: true,
44 ResultType: reflect.TypeOf(new(inspector.Inspector)),
45}
46
47func run(pass *analysis.Pass) (interface{}, error) {
48 return inspector.New(pass.Files), nil
49}
diff --git a/vendor/golang.org/x/tools/go/analysis/validate.go b/vendor/golang.org/x/tools/go/analysis/validate.go
new file mode 100644
index 0000000..be98143
--- /dev/null
+++ b/vendor/golang.org/x/tools/go/analysis/validate.go
@@ -0,0 +1,97 @@
1package analysis
2
3import (
4 "fmt"
5 "reflect"
6 "unicode"
7)
8
9// Validate reports an error if any of the analyzers are misconfigured.
10// Checks include:
11// that the name is a valid identifier;
12// that the Requires graph is acyclic;
13// that analyzer fact types are unique;
14// that each fact type is a pointer.
15func Validate(analyzers []*Analyzer) error {
16 // Map each fact type to its sole generating analyzer.
17 factTypes := make(map[reflect.Type]*Analyzer)
18
19 // Traverse the Requires graph, depth first.
20 const (
21 white = iota
22 grey
23 black
24 finished
25 )
26 color := make(map[*Analyzer]uint8)
27 var visit func(a *Analyzer) error
28 visit = func(a *Analyzer) error {
29 if a == nil {
30 return fmt.Errorf("nil *Analyzer")
31 }
32 if color[a] == white {
33 color[a] = grey
34
35 // names
36 if !validIdent(a.Name) {
37 return fmt.Errorf("invalid analyzer name %q", a)
38 }
39
40 if a.Doc == "" {
41 return fmt.Errorf("analyzer %q is undocumented", a)
42 }
43
44 // fact types
45 for _, f := range a.FactTypes {
46 if f == nil {
47 return fmt.Errorf("analyzer %s has nil FactType", a)
48 }
49 t := reflect.TypeOf(f)
50 if prev := factTypes[t]; prev != nil {
51 return fmt.Errorf("fact type %s registered by two analyzers: %v, %v",
52 t, a, prev)
53 }
54 if t.Kind() != reflect.Ptr {
55 return fmt.Errorf("%s: fact type %s is not a pointer", a, t)
56 }
57 factTypes[t] = a
58 }
59
60 // recursion
61 for i, req := range a.Requires {
62 if err := visit(req); err != nil {
63 return fmt.Errorf("%s.Requires[%d]: %v", a.Name, i, err)
64 }
65 }
66 color[a] = black
67 }
68
69 return nil
70 }
71 for _, a := range analyzers {
72 if err := visit(a); err != nil {
73 return err
74 }
75 }
76
77 // Reject duplicates among analyzers.
78 // Precondition: color[a] == black.
79 // Postcondition: color[a] == finished.
80 for _, a := range analyzers {
81 if color[a] == finished {
82 return fmt.Errorf("duplicate analyzer: %s", a.Name)
83 }
84 color[a] = finished
85 }
86
87 return nil
88}
89
90func validIdent(name string) bool {
91 for i, r := range name {
92 if !(r == '_' || unicode.IsLetter(r) || i > 0 && unicode.IsDigit(r)) {
93 return false
94 }
95 }
96 return name != ""
97}
diff --git a/vendor/golang.org/x/tools/go/ast/astutil/enclosing.go b/vendor/golang.org/x/tools/go/ast/astutil/enclosing.go
new file mode 100644
index 0000000..6b7052b
--- /dev/null
+++ b/vendor/golang.org/x/tools/go/ast/astutil/enclosing.go
@@ -0,0 +1,627 @@
1// Copyright 2013 The Go Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style
3// license that can be found in the LICENSE file.
4
5package astutil
6
7// This file defines utilities for working with source positions.
8
9import (
10 "fmt"
11 "go/ast"
12 "go/token"
13 "sort"
14)
15
16// PathEnclosingInterval returns the node that encloses the source
17// interval [start, end), and all its ancestors up to the AST root.
18//
19// The definition of "enclosing" used by this function considers
20// additional whitespace abutting a node to be enclosed by it.
21// In this example:
22//
23// z := x + y // add them
24// <-A->
25// <----B----->
26//
27// the ast.BinaryExpr(+) node is considered to enclose interval B
28// even though its [Pos()..End()) is actually only interval A.
29// This behaviour makes user interfaces more tolerant of imperfect
30// input.
31//
32// This function treats tokens as nodes, though they are not included
33// in the result. e.g. PathEnclosingInterval("+") returns the
34// enclosing ast.BinaryExpr("x + y").
35//
36// If start==end, the 1-char interval following start is used instead.
37//
38// The 'exact' result is true if the interval contains only path[0]
39// and perhaps some adjacent whitespace. It is false if the interval
40// overlaps multiple children of path[0], or if it contains only
41// interior whitespace of path[0].
42// In this example:
43//
44// z := x + y // add them
45// <--C--> <---E-->
46// ^
47// D
48//
49// intervals C, D and E are inexact. C is contained by the
50// z-assignment statement, because it spans three of its children (:=,
51// x, +). So too is the 1-char interval D, because it contains only
52// interior whitespace of the assignment. E is considered interior
53// whitespace of the BlockStmt containing the assignment.
54//
55// Precondition: [start, end) both lie within the same file as root.
56// TODO(adonovan): return (nil, false) in this case and remove precond.
57// Requires FileSet; see loader.tokenFileContainsPos.
58//
59// Postcondition: path is never nil; it always contains at least 'root'.
60//
61func PathEnclosingInterval(root *ast.File, start, end token.Pos) (path []ast.Node, exact bool) {
62 // fmt.Printf("EnclosingInterval %d %d\n", start, end) // debugging
63
64 // Precondition: node.[Pos..End) and adjoining whitespace contain [start, end).
65 var visit func(node ast.Node) bool
66 visit = func(node ast.Node) bool {
67 path = append(path, node)
68
69 nodePos := node.Pos()
70 nodeEnd := node.End()
71
72 // fmt.Printf("visit(%T, %d, %d)\n", node, nodePos, nodeEnd) // debugging
73
74 // Intersect [start, end) with interval of node.
75 if start < nodePos {
76 start = nodePos
77 }
78 if end > nodeEnd {
79 end = nodeEnd
80 }
81
82 // Find sole child that contains [start, end).
83 children := childrenOf(node)
84 l := len(children)
85 for i, child := range children {
86 // [childPos, childEnd) is unaugmented interval of child.
87 childPos := child.Pos()
88 childEnd := child.End()
89
90 // [augPos, augEnd) is whitespace-augmented interval of child.
91 augPos := childPos
92 augEnd := childEnd
93 if i > 0 {
94 augPos = children[i-1].End() // start of preceding whitespace
95 }
96 if i < l-1 {
97 nextChildPos := children[i+1].Pos()
98 // Does [start, end) lie between child and next child?
99 if start >= augEnd && end <= nextChildPos {
100 return false // inexact match
101 }
102 augEnd = nextChildPos // end of following whitespace
103 }
104
105 // fmt.Printf("\tchild %d: [%d..%d)\tcontains interval [%d..%d)?\n",
106 // i, augPos, augEnd, start, end) // debugging
107
108 // Does augmented child strictly contain [start, end)?
109 if augPos <= start && end <= augEnd {
110 _, isToken := child.(tokenNode)
111 return isToken || visit(child)
112 }
113
114 // Does [start, end) overlap multiple children?
115 // i.e. left-augmented child contains start
116 // but LR-augmented child does not contain end.
117 if start < childEnd && end > augEnd {
118 break
119 }
120 }
121
122 // No single child contained [start, end),
123 // so node is the result. Is it exact?
124
125 // (It's tempting to put this condition before the
126 // child loop, but it gives the wrong result in the
127 // case where a node (e.g. ExprStmt) and its sole
128 // child have equal intervals.)
129 if start == nodePos && end == nodeEnd {
130 return true // exact match
131 }
132
133 return false // inexact: overlaps multiple children
134 }
135
136 if start > end {
137 start, end = end, start
138 }
139
140 if start < root.End() && end > root.Pos() {
141 if start == end {
142 end = start + 1 // empty interval => interval of size 1
143 }
144 exact = visit(root)
145
146 // Reverse the path:
147 for i, l := 0, len(path); i < l/2; i++ {
148 path[i], path[l-1-i] = path[l-1-i], path[i]
149 }
150 } else {
151 // Selection lies within whitespace preceding the
152 // first (or following the last) declaration in the file.
153 // The result nonetheless always includes the ast.File.
154 path = append(path, root)
155 }
156
157 return
158}
159
160// tokenNode is a dummy implementation of ast.Node for a single token.
161// They are used transiently by PathEnclosingInterval but never escape
162// this package.
163//
164type tokenNode struct {
165 pos token.Pos
166 end token.Pos
167}
168
169func (n tokenNode) Pos() token.Pos {
170 return n.pos
171}
172
173func (n tokenNode) End() token.Pos {
174 return n.end
175}
176
177func tok(pos token.Pos, len int) ast.Node {
178 return tokenNode{pos, pos + token.Pos(len)}
179}
180
181// childrenOf returns the direct non-nil children of ast.Node n.
182// It may include fake ast.Node implementations for bare tokens.
183// it is not safe to call (e.g.) ast.Walk on such nodes.
184//
185func childrenOf(n ast.Node) []ast.Node {
186 var children []ast.Node
187
188 // First add nodes for all true subtrees.
189 ast.Inspect(n, func(node ast.Node) bool {
190 if node == n { // push n
191 return true // recur
192 }
193 if node != nil { // push child
194 children = append(children, node)
195 }
196 return false // no recursion
197 })
198
199 // Then add fake Nodes for bare tokens.
200 switch n := n.(type) {
201 case *ast.ArrayType:
202 children = append(children,
203 tok(n.Lbrack, len("[")),
204 tok(n.Elt.End(), len("]")))
205
206 case *ast.AssignStmt:
207 children = append(children,
208 tok(n.TokPos, len(n.Tok.String())))
209
210 case *ast.BasicLit:
211 children = append(children,
212 tok(n.ValuePos, len(n.Value)))
213
214 case *ast.BinaryExpr:
215 children = append(children, tok(n.OpPos, len(n.Op.String())))
216
217 case *ast.BlockStmt:
218 children = append(children,
219 tok(n.Lbrace, len("{")),
220 tok(n.Rbrace, len("}")))
221
222 case *ast.BranchStmt:
223 children = append(children,
224 tok(n.TokPos, len(n.Tok.String())))
225
226 case *ast.CallExpr:
227 children = append(children,
228 tok(n.Lparen, len("(")),
229 tok(n.Rparen, len(")")))
230 if n.Ellipsis != 0 {
231 children = append(children, tok(n.Ellipsis, len("...")))
232 }
233
234 case *ast.CaseClause:
235 if n.List == nil {
236 children = append(children,
237 tok(n.Case, len("default")))
238 } else {
239 children = append(children,
240 tok(n.Case, len("case")))
241 }
242 children = append(children, tok(n.Colon, len(":")))
243
244 case *ast.ChanType:
245 switch n.Dir {
246 case ast.RECV:
247 children = append(children, tok(n.Begin, len("<-chan")))
248 case ast.SEND:
249 children = append(children, tok(n.Begin, len("chan<-")))
250 case ast.RECV | ast.SEND:
251 children = append(children, tok(n.Begin, len("chan")))
252 }
253
254 case *ast.CommClause:
255 if n.Comm == nil {
256 children = append(children,
257 tok(n.Case, len("default")))
258 } else {
259 children = append(children,
260 tok(n.Case, len("case")))
261 }
262 children = append(children, tok(n.Colon, len(":")))
263
264 case *ast.Comment:
265 // nop
266
267 case *ast.CommentGroup:
268 // nop
269
270 case *ast.CompositeLit:
271 children = append(children,
272 tok(n.Lbrace, len("{")),
273 tok(n.Rbrace, len("{")))
274
275 case *ast.DeclStmt:
276 // nop
277
278 case *ast.DeferStmt:
279 children = append(children,
280 tok(n.Defer, len("defer")))
281
282 case *ast.Ellipsis:
283 children = append(children,
284 tok(n.Ellipsis, len("...")))
285
286 case *ast.EmptyStmt:
287 // nop
288
289 case *ast.ExprStmt:
290 // nop
291
292 case *ast.Field:
293 // TODO(adonovan): Field.{Doc,Comment,Tag}?
294
295 case *ast.FieldList:
296 children = append(children,
297 tok(n.Opening, len("(")),
298 tok(n.Closing, len(")")))
299
300 case *ast.File:
301 // TODO test: Doc
302 children = append(children,
303 tok(n.Package, len("package")))
304
305 case *ast.ForStmt:
306 children = append(children,
307 tok(n.For, len("for")))
308
309 case *ast.FuncDecl:
310 // TODO(adonovan): FuncDecl.Comment?
311
312 // Uniquely, FuncDecl breaks the invariant that
313 // preorder traversal yields tokens in lexical order:
314 // in fact, FuncDecl.Recv precedes FuncDecl.Type.Func.
315 //
316 // As a workaround, we inline the case for FuncType
317 // here and order things correctly.
318 //
319 children = nil // discard ast.Walk(FuncDecl) info subtrees
320 children = append(children, tok(n.Type.Func, len("func")))
321 if n.Recv != nil {
322 children = append(children, n.Recv)
323 }
324 children = append(children, n.Name)
325 if n.Type.Params != nil {
326 children = append(children, n.Type.Params)
327 }
328 if n.Type.Results != nil {
329 children = append(children, n.Type.Results)
330 }
331 if n.Body != nil {
332 children = append(children, n.Body)
333 }
334
335 case *ast.FuncLit:
336 // nop
337
338 case *ast.FuncType:
339 if n.Func != 0 {
340 children = append(children,
341 tok(n.Func, len("func")))
342 }
343
344 case *ast.GenDecl:
345 children = append(children,
346 tok(n.TokPos, len(n.Tok.String())))
347 if n.Lparen != 0 {
348 children = append(children,
349 tok(n.Lparen, len("(")),
350 tok(n.Rparen, len(")")))
351 }
352
353 case *ast.GoStmt:
354 children = append(children,
355 tok(n.Go, len("go")))
356
357 case *ast.Ident:
358 children = append(children,
359 tok(n.NamePos, len(n.Name)))
360
361 case *ast.IfStmt:
362 children = append(children,
363 tok(n.If, len("if")))
364
365 case *ast.ImportSpec:
366 // TODO(adonovan): ImportSpec.{Doc,EndPos}?
367
368 case *ast.IncDecStmt:
369 children = append(children,
370 tok(n.TokPos, len(n.Tok.String())))
371
372 case *ast.IndexExpr:
373 children = append(children,
374 tok(n.Lbrack, len("{")),
375 tok(n.Rbrack, len("}")))
376
377 case *ast.InterfaceType:
378 children = append(children,
379 tok(n.Interface, len("interface")))
380
381 case *ast.KeyValueExpr:
382 children = append(children,
383 tok(n.Colon, len(":")))
384
385 case *ast.LabeledStmt:
386 children = append(children,
387 tok(n.Colon, len(":")))
388
389 case *ast.MapType:
390 children = append(children,
391 tok(n.Map, len("map")))
392
393 case *ast.ParenExpr:
394 children = append(children,
395 tok(n.Lparen, len("(")),
396 tok(n.Rparen, len(")")))
397
398 case *ast.RangeStmt:
399 children = append(children,
400 tok(n.For, len("for")),
401 tok(n.TokPos, len(n.Tok.String())))
402
403 case *ast.ReturnStmt:
404 children = append(children,
405 tok(n.Return, len("return")))
406
407 case *ast.SelectStmt:
408 children = append(children,
409 tok(n.Select, len("select")))
410
411 case *ast.SelectorExpr:
412 // nop
413
414 case *ast.SendStmt:
415 children = append(children,
416 tok(n.Arrow, len("<-")))
417
418 case *ast.SliceExpr:
419 children = append(children,
420 tok(n.Lbrack, len("[")),
421 tok(n.Rbrack, len("]")))
422
423 case *ast.StarExpr:
424 children = append(children, tok(n.Star, len("*")))
425
426 case *ast.StructType:
427 children = append(children, tok(n.Struct, len("struct")))
428
429 case *ast.SwitchStmt:
430 children = append(children, tok(n.Switch, len("switch")))
431
432 case *ast.TypeAssertExpr:
433 children = append(children,
434 tok(n.Lparen-1, len(".")),
435 tok(n.Lparen, len("(")),
436 tok(n.Rparen, len(")")))
437
438 case *ast.TypeSpec:
439 // TODO(adonovan): TypeSpec.{Doc,Comment}?
440
441 case *ast.TypeSwitchStmt:
442 children = append(children, tok(n.Switch, len("switch")))
443
444 case *ast.UnaryExpr:
445 children = append(children, tok(n.OpPos, len(n.Op.String())))
446
447 case *ast.ValueSpec:
448 // TODO(adonovan): ValueSpec.{Doc,Comment}?
449
450 case *ast.BadDecl, *ast.BadExpr, *ast.BadStmt:
451 // nop
452 }
453
454 // TODO(adonovan): opt: merge the logic of ast.Inspect() into
455 // the switch above so we can make interleaved callbacks for
456 // both Nodes and Tokens in the right order and avoid the need
457 // to sort.
458 sort.Sort(byPos(children))
459
460 return children
461}
462
463type byPos []ast.Node
464
465func (sl byPos) Len() int {
466 return len(sl)
467}
468func (sl byPos) Less(i, j int) bool {
469 return sl[i].Pos() < sl[j].Pos()
470}
471func (sl byPos) Swap(i, j int) {
472 sl[i], sl[j] = sl[j], sl[i]
473}
474
475// NodeDescription returns a description of the concrete type of n suitable
476// for a user interface.
477//
478// TODO(adonovan): in some cases (e.g. Field, FieldList, Ident,
479// StarExpr) we could be much more specific given the path to the AST
480// root. Perhaps we should do that.
481//
482func NodeDescription(n ast.Node) string {
483 switch n := n.(type) {
484 case *ast.ArrayType:
485 return "array type"
486 case *ast.AssignStmt:
487 return "assignment"
488 case *ast.BadDecl:
489 return "bad declaration"
490 case *ast.BadExpr:
491 return "bad expression"
492 case *ast.BadStmt:
493 return "bad statement"
494 case *ast.BasicLit:
495 return "basic literal"
496 case *ast.BinaryExpr:
497 return fmt.Sprintf("binary %s operation", n.Op)
498 case *ast.BlockStmt:
499 return "block"
500 case *ast.BranchStmt:
501 switch n.Tok {
502 case token.BREAK:
503 return "break statement"
504 case token.CONTINUE:
505 return "continue statement"
506 case token.GOTO:
507 return "goto statement"
508 case token.FALLTHROUGH:
509 return "fall-through statement"
510 }
511 case *ast.CallExpr:
512 if len(n.Args) == 1 && !n.Ellipsis.IsValid() {
513 return "function call (or conversion)"
514 }
515 return "function call"
516 case *ast.CaseClause:
517 return "case clause"
518 case *ast.ChanType:
519 return "channel type"
520 case *ast.CommClause:
521 return "communication clause"
522 case *ast.Comment:
523 return "comment"
524 case *ast.CommentGroup:
525 return "comment group"
526 case *ast.CompositeLit:
527 return "composite literal"
528 case *ast.DeclStmt:
529 return NodeDescription(n.Decl) + " statement"
530 case *ast.DeferStmt:
531 return "defer statement"
532 case *ast.Ellipsis:
533 return "ellipsis"
534 case *ast.EmptyStmt:
535 return "empty statement"
536 case *ast.ExprStmt:
537 return "expression statement"
538 case *ast.Field:
539 // Can be any of these:
540 // struct {x, y int} -- struct field(s)
541 // struct {T} -- anon struct field
542 // interface {I} -- interface embedding
543 // interface {f()} -- interface method
544 // func (A) func(B) C -- receiver, param(s), result(s)
545 return "field/method/parameter"
546 case *ast.FieldList:
547 return "field/method/parameter list"
548 case *ast.File:
549 return "source file"
550 case *ast.ForStmt:
551 return "for loop"
552 case *ast.FuncDecl:
553 return "function declaration"
554 case *ast.FuncLit:
555 return "function literal"
556 case *ast.FuncType:
557 return "function type"
558 case *ast.GenDecl:
559 switch n.Tok {
560 case token.IMPORT:
561 return "import declaration"
562 case token.CONST:
563 return "constant declaration"
564 case token.TYPE:
565 return "type declaration"
566 case token.VAR:
567 return "variable declaration"
568 }
569 case *ast.GoStmt:
570 return "go statement"
571 case *ast.Ident:
572 return "identifier"
573 case *ast.IfStmt:
574 return "if statement"
575 case *ast.ImportSpec:
576 return "import specification"
577 case *ast.IncDecStmt:
578 if n.Tok == token.INC {
579 return "increment statement"
580 }
581 return "decrement statement"
582 case *ast.IndexExpr:
583 return "index expression"
584 case *ast.InterfaceType:
585 return "interface type"
586 case *ast.KeyValueExpr:
587 return "key/value association"
588 case *ast.LabeledStmt:
589 return "statement label"
590 case *ast.MapType:
591 return "map type"
592 case *ast.Package:
593 return "package"
594 case *ast.ParenExpr:
595 return "parenthesized " + NodeDescription(n.X)
596 case *ast.RangeStmt:
597 return "range loop"
598 case *ast.ReturnStmt:
599 return "return statement"
600 case *ast.SelectStmt:
601 return "select statement"
602 case *ast.SelectorExpr:
603 return "selector"
604 case *ast.SendStmt:
605 return "channel send"
606 case *ast.SliceExpr:
607 return "slice expression"
608 case *ast.StarExpr:
609 return "*-operation" // load/store expr or pointer type
610 case *ast.StructType:
611 return "struct type"
612 case *ast.SwitchStmt:
613 return "switch statement"
614 case *ast.TypeAssertExpr:
615 return "type assertion"
616 case *ast.TypeSpec:
617 return "type specification"
618 case *ast.TypeSwitchStmt:
619 return "type switch"
620 case *ast.UnaryExpr:
621 return fmt.Sprintf("unary %s operation", n.Op)
622 case *ast.ValueSpec:
623 return "value specification"
624
625 }
626 panic(fmt.Sprintf("unexpected node type: %T", n))
627}
diff --git a/vendor/golang.org/x/tools/go/ast/astutil/imports.go b/vendor/golang.org/x/tools/go/ast/astutil/imports.go
new file mode 100644
index 0000000..2087cee
--- /dev/null
+++ b/vendor/golang.org/x/tools/go/ast/astutil/imports.go
@@ -0,0 +1,482 @@
1// Copyright 2013 The Go Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style
3// license that can be found in the LICENSE file.
4
5// Package astutil contains common utilities for working with the Go AST.
6package astutil // import "golang.org/x/tools/go/ast/astutil"
7
8import (
9 "fmt"
10 "go/ast"
11 "go/token"
12 "strconv"
13 "strings"
14)
15
16// AddImport adds the import path to the file f, if absent.
17func AddImport(fset *token.FileSet, f *ast.File, path string) (added bool) {
18 return AddNamedImport(fset, f, "", path)
19}
20
21// AddNamedImport adds the import with the given name and path to the file f, if absent.
22// If name is not empty, it is used to rename the import.
23//
24// For example, calling
25// AddNamedImport(fset, f, "pathpkg", "path")
26// adds
27// import pathpkg "path"
28func AddNamedImport(fset *token.FileSet, f *ast.File, name, path string) (added bool) {
29 if imports(f, name, path) {
30 return false
31 }
32
33 newImport := &ast.ImportSpec{
34 Path: &ast.BasicLit{
35 Kind: token.STRING,
36 Value: strconv.Quote(path),
37 },
38 }
39 if name != "" {
40 newImport.Name = &ast.Ident{Name: name}
41 }
42
43 // Find an import decl to add to.
44 // The goal is to find an existing import
45 // whose import path has the longest shared
46 // prefix with path.
47 var (
48 bestMatch = -1 // length of longest shared prefix
49 lastImport = -1 // index in f.Decls of the file's final import decl
50 impDecl *ast.GenDecl // import decl containing the best match
51 impIndex = -1 // spec index in impDecl containing the best match
52
53 isThirdPartyPath = isThirdParty(path)
54 )
55 for i, decl := range f.Decls {
56 gen, ok := decl.(*ast.GenDecl)
57 if ok && gen.Tok == token.IMPORT {
58 lastImport = i
59 // Do not add to import "C", to avoid disrupting the
60 // association with its doc comment, breaking cgo.
61 if declImports(gen, "C") {
62 continue
63 }
64
65 // Match an empty import decl if that's all that is available.
66 if len(gen.Specs) == 0 && bestMatch == -1 {
67 impDecl = gen
68 }
69
70 // Compute longest shared prefix with imports in this group and find best
71 // matched import spec.
72 // 1. Always prefer import spec with longest shared prefix.
73 // 2. While match length is 0,
74 // - for stdlib package: prefer first import spec.
75 // - for third party package: prefer first third party import spec.
76 // We cannot use last import spec as best match for third party package
77 // because grouped imports are usually placed last by goimports -local
78 // flag.
79 // See issue #19190.
80 seenAnyThirdParty := false
81 for j, spec := range gen.Specs {
82 impspec := spec.(*ast.ImportSpec)
83 p := importPath(impspec)
84 n := matchLen(p, path)
85 if n > bestMatch || (bestMatch == 0 && !seenAnyThirdParty && isThirdPartyPath) {
86 bestMatch = n
87 impDecl = gen
88 impIndex = j
89 }
90 seenAnyThirdParty = seenAnyThirdParty || isThirdParty(p)
91 }
92 }
93 }
94
95 // If no import decl found, add one after the last import.
96 if impDecl == nil {
97 impDecl = &ast.GenDecl{
98 Tok: token.IMPORT,
99 }
100 if lastImport >= 0 {
101 impDecl.TokPos = f.Decls[lastImport].End()
102 } else {
103 // There are no existing imports.
104 // Our new import, preceded by a blank line, goes after the package declaration
105 // and after the comment, if any, that starts on the same line as the
106 // package declaration.
107 impDecl.TokPos = f.Package
108
109 file := fset.File(f.Package)
110 pkgLine := file.Line(f.Package)
111 for _, c := range f.Comments {
112 if file.Line(c.Pos()) > pkgLine {
113 break
114 }
115 // +2 for a blank line
116 impDecl.TokPos = c.End() + 2
117 }
118 }
119 f.Decls = append(f.Decls, nil)
120 copy(f.Decls[lastImport+2:], f.Decls[lastImport+1:])
121 f.Decls[lastImport+1] = impDecl
122 }
123
124 // Insert new import at insertAt.
125 insertAt := 0
126 if impIndex >= 0 {
127 // insert after the found import
128 insertAt = impIndex + 1
129 }
130 impDecl.Specs = append(impDecl.Specs, nil)
131 copy(impDecl.Specs[insertAt+1:], impDecl.Specs[insertAt:])
132 impDecl.Specs[insertAt] = newImport
133 pos := impDecl.Pos()
134 if insertAt > 0 {
135 // If there is a comment after an existing import, preserve the comment
136 // position by adding the new import after the comment.
137 if spec, ok := impDecl.Specs[insertAt-1].(*ast.ImportSpec); ok && spec.Comment != nil {
138 pos = spec.Comment.End()
139 } else {
140 // Assign same position as the previous import,
141 // so that the sorter sees it as being in the same block.
142 pos = impDecl.Specs[insertAt-1].Pos()
143 }
144 }
145 if newImport.Name != nil {
146 newImport.Name.NamePos = pos
147 }
148 newImport.Path.ValuePos = pos
149 newImport.EndPos = pos
150
151 // Clean up parens. impDecl contains at least one spec.
152 if len(impDecl.Specs) == 1 {
153 // Remove unneeded parens.
154 impDecl.Lparen = token.NoPos
155 } else if !impDecl.Lparen.IsValid() {
156 // impDecl needs parens added.
157 impDecl.Lparen = impDecl.Specs[0].Pos()
158 }
159
160 f.Imports = append(f.Imports, newImport)
161
162 if len(f.Decls) <= 1 {
163 return true
164 }
165
166 // Merge all the import declarations into the first one.
167 var first *ast.GenDecl
168 for i := 0; i < len(f.Decls); i++ {
169 decl := f.Decls[i]
170 gen, ok := decl.(*ast.GenDecl)
171 if !ok || gen.Tok != token.IMPORT || declImports(gen, "C") {
172 continue
173 }
174 if first == nil {
175 first = gen
176 continue // Don't touch the first one.
177 }
178 // We now know there is more than one package in this import
179 // declaration. Ensure that it ends up parenthesized.
180 first.Lparen = first.Pos()
181 // Move the imports of the other import declaration to the first one.
182 for _, spec := range gen.Specs {
183 spec.(*ast.ImportSpec).Path.ValuePos = first.Pos()
184 first.Specs = append(first.Specs, spec)
185 }
186 f.Decls = append(f.Decls[:i], f.Decls[i+1:]...)
187 i--
188 }
189
190 return true
191}
192
193func isThirdParty(importPath string) bool {
194 // Third party package import path usually contains "." (".com", ".org", ...)
195 // This logic is taken from golang.org/x/tools/imports package.
196 return strings.Contains(importPath, ".")
197}
198
199// DeleteImport deletes the import path from the file f, if present.
200// If there are duplicate import declarations, all matching ones are deleted.
201func DeleteImport(fset *token.FileSet, f *ast.File, path string) (deleted bool) {
202 return DeleteNamedImport(fset, f, "", path)
203}
204
205// DeleteNamedImport deletes the import with the given name and path from the file f, if present.
206// If there are duplicate import declarations, all matching ones are deleted.
207func DeleteNamedImport(fset *token.FileSet, f *ast.File, name, path string) (deleted bool) {
208 var delspecs []*ast.ImportSpec
209 var delcomments []*ast.CommentGroup
210
211 // Find the import nodes that import path, if any.
212 for i := 0; i < len(f.Decls); i++ {
213 decl := f.Decls[i]
214 gen, ok := decl.(*ast.GenDecl)
215 if !ok || gen.Tok != token.IMPORT {
216 continue
217 }
218 for j := 0; j < len(gen.Specs); j++ {
219 spec := gen.Specs[j]
220 impspec := spec.(*ast.ImportSpec)
221 if importName(impspec) != name || importPath(impspec) != path {
222 continue
223 }
224
225 // We found an import spec that imports path.
226 // Delete it.
227 delspecs = append(delspecs, impspec)
228 deleted = true
229 copy(gen.Specs[j:], gen.Specs[j+1:])
230 gen.Specs = gen.Specs[:len(gen.Specs)-1]
231
232 // If this was the last import spec in this decl,
233 // delete the decl, too.
234 if len(gen.Specs) == 0 {
235 copy(f.Decls[i:], f.Decls[i+1:])
236 f.Decls = f.Decls[:len(f.Decls)-1]
237 i--
238 break
239 } else if len(gen.Specs) == 1 {
240 if impspec.Doc != nil {
241 delcomments = append(delcomments, impspec.Doc)
242 }
243 if impspec.Comment != nil {
244 delcomments = append(delcomments, impspec.Comment)
245 }
246 for _, cg := range f.Comments {
247 // Found comment on the same line as the import spec.
248 if cg.End() < impspec.Pos() && fset.Position(cg.End()).Line == fset.Position(impspec.Pos()).Line {
249 delcomments = append(delcomments, cg)
250 break
251 }
252 }
253
254 spec := gen.Specs[0].(*ast.ImportSpec)
255
256 // Move the documentation right after the import decl.
257 if spec.Doc != nil {
258 for fset.Position(gen.TokPos).Line+1 < fset.Position(spec.Doc.Pos()).Line {
259 fset.File(gen.TokPos).MergeLine(fset.Position(gen.TokPos).Line)
260 }
261 }
262 for _, cg := range f.Comments {
263 if cg.End() < spec.Pos() && fset.Position(cg.End()).Line == fset.Position(spec.Pos()).Line {
264 for fset.Position(gen.TokPos).Line+1 < fset.Position(spec.Pos()).Line {
265 fset.File(gen.TokPos).MergeLine(fset.Position(gen.TokPos).Line)
266 }
267 break
268 }
269 }
270 }
271 if j > 0 {
272 lastImpspec := gen.Specs[j-1].(*ast.ImportSpec)
273 lastLine := fset.Position(lastImpspec.Path.ValuePos).Line
274 line := fset.Position(impspec.Path.ValuePos).Line
275
276 // We deleted an entry but now there may be
277 // a blank line-sized hole where the import was.
278 if line-lastLine > 1 || !gen.Rparen.IsValid() {
279 // There was a blank line immediately preceding the deleted import,
280 // so there's no need to close the hole. The right parenthesis is
281 // invalid after AddImport to an import statement without parenthesis.
282 // Do nothing.
283 } else if line != fset.File(gen.Rparen).LineCount() {
284 // There was no blank line. Close the hole.
285 fset.File(gen.Rparen).MergeLine(line)
286 }
287 }
288 j--
289 }
290 }
291
292 // Delete imports from f.Imports.
293 for i := 0; i < len(f.Imports); i++ {
294 imp := f.Imports[i]
295 for j, del := range delspecs {
296 if imp == del {
297 copy(f.Imports[i:], f.Imports[i+1:])
298 f.Imports = f.Imports[:len(f.Imports)-1]
299 copy(delspecs[j:], delspecs[j+1:])
300 delspecs = delspecs[:len(delspecs)-1]
301 i--
302 break
303 }
304 }
305 }
306
307 // Delete comments from f.Comments.
308 for i := 0; i < len(f.Comments); i++ {
309 cg := f.Comments[i]
310 for j, del := range delcomments {
311 if cg == del {
312 copy(f.Comments[i:], f.Comments[i+1:])
313 f.Comments = f.Comments[:len(f.Comments)-1]
314 copy(delcomments[j:], delcomments[j+1:])
315 delcomments = delcomments[:len(delcomments)-1]
316 i--
317 break
318 }
319 }
320 }
321
322 if len(delspecs) > 0 {
323 panic(fmt.Sprintf("deleted specs from Decls but not Imports: %v", delspecs))
324 }
325
326 return
327}
328
329// RewriteImport rewrites any import of path oldPath to path newPath.
330func RewriteImport(fset *token.FileSet, f *ast.File, oldPath, newPath string) (rewrote bool) {
331 for _, imp := range f.Imports {
332 if importPath(imp) == oldPath {
333 rewrote = true
334 // record old End, because the default is to compute
335 // it using the length of imp.Path.Value.
336 imp.EndPos = imp.End()
337 imp.Path.Value = strconv.Quote(newPath)
338 }
339 }
340 return
341}
342
343// UsesImport reports whether a given import is used.
344func UsesImport(f *ast.File, path string) (used bool) {
345 spec := importSpec(f, path)
346 if spec == nil {
347 return
348 }
349
350 name := spec.Name.String()
351 switch name {
352 case "<nil>":
353 // If the package name is not explicitly specified,
354 // make an educated guess. This is not guaranteed to be correct.
355 lastSlash := strings.LastIndex(path, "/")
356 if lastSlash == -1 {
357 name = path
358 } else {
359 name = path[lastSlash+1:]
360 }
361 case "_", ".":
362 // Not sure if this import is used - err on the side of caution.
363 return true
364 }
365
366 ast.Walk(visitFn(func(n ast.Node) {
367 sel, ok := n.(*ast.SelectorExpr)
368 if ok && isTopName(sel.X, name) {
369 used = true
370 }
371 }), f)
372
373 return
374}
375
376type visitFn func(node ast.Node)
377
378func (fn visitFn) Visit(node ast.Node) ast.Visitor {
379 fn(node)
380 return fn
381}
382
383// imports reports whether f has an import with the specified name and path.
384func imports(f *ast.File, name, path string) bool {
385 for _, s := range f.Imports {
386 if importName(s) == name && importPath(s) == path {
387 return true
388 }
389 }
390 return false
391}
392
393// importSpec returns the import spec if f imports path,
394// or nil otherwise.
395func importSpec(f *ast.File, path string) *ast.ImportSpec {
396 for _, s := range f.Imports {
397 if importPath(s) == path {
398 return s
399 }
400 }
401 return nil
402}
403
404// importName returns the name of s,
405// or "" if the import is not named.
406func importName(s *ast.ImportSpec) string {
407 if s.Name == nil {
408 return ""
409 }
410 return s.Name.Name
411}
412
413// importPath returns the unquoted import path of s,
414// or "" if the path is not properly quoted.
415func importPath(s *ast.ImportSpec) string {
416 t, err := strconv.Unquote(s.Path.Value)
417 if err != nil {
418 return ""
419 }
420 return t
421}
422
423// declImports reports whether gen contains an import of path.
424func declImports(gen *ast.GenDecl, path string) bool {
425 if gen.Tok != token.IMPORT {
426 return false
427 }
428 for _, spec := range gen.Specs {
429 impspec := spec.(*ast.ImportSpec)
430 if importPath(impspec) == path {
431 return true
432 }
433 }
434 return false
435}
436
437// matchLen returns the length of the longest path segment prefix shared by x and y.
438func matchLen(x, y string) int {
439 n := 0
440 for i := 0; i < len(x) && i < len(y) && x[i] == y[i]; i++ {
441 if x[i] == '/' {
442 n++
443 }
444 }
445 return n
446}
447
448// isTopName returns true if n is a top-level unresolved identifier with the given name.
449func isTopName(n ast.Expr, name string) bool {
450 id, ok := n.(*ast.Ident)
451 return ok && id.Name == name && id.Obj == nil
452}
453
454// Imports returns the file imports grouped by paragraph.
455func Imports(fset *token.FileSet, f *ast.File) [][]*ast.ImportSpec {
456 var groups [][]*ast.ImportSpec
457
458 for _, decl := range f.Decls {
459 genDecl, ok := decl.(*ast.GenDecl)
460 if !ok || genDecl.Tok != token.IMPORT {
461 break
462 }
463
464 group := []*ast.ImportSpec{}
465
466 var lastLine int
467 for _, spec := range genDecl.Specs {
468 importSpec := spec.(*ast.ImportSpec)
469 pos := importSpec.Path.ValuePos
470 line := fset.Position(pos).Line
471 if lastLine > 0 && pos > 0 && line-lastLine > 1 {
472 groups = append(groups, group)
473 group = []*ast.ImportSpec{}
474 }
475 group = append(group, importSpec)
476 lastLine = line
477 }
478 groups = append(groups, group)
479 }
480
481 return groups
482}
diff --git a/vendor/golang.org/x/tools/go/ast/astutil/rewrite.go b/vendor/golang.org/x/tools/go/ast/astutil/rewrite.go
new file mode 100644
index 0000000..cf72ea9
--- /dev/null
+++ b/vendor/golang.org/x/tools/go/ast/astutil/rewrite.go
@@ -0,0 +1,477 @@
1// Copyright 2017 The Go Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style
3// license that can be found in the LICENSE file.
4
5package astutil
6
7import (
8 "fmt"
9 "go/ast"
10 "reflect"
11 "sort"
12)
13
14// An ApplyFunc is invoked by Apply for each node n, even if n is nil,
15// before and/or after the node's children, using a Cursor describing
16// the current node and providing operations on it.
17//
18// The return value of ApplyFunc controls the syntax tree traversal.
19// See Apply for details.
20type ApplyFunc func(*Cursor) bool
21
22// Apply traverses a syntax tree recursively, starting with root,
23// and calling pre and post for each node as described below.
24// Apply returns the syntax tree, possibly modified.
25//
26// If pre is not nil, it is called for each node before the node's
27// children are traversed (pre-order). If pre returns false, no
28// children are traversed, and post is not called for that node.
29//
30// If post is not nil, and a prior call of pre didn't return false,
31// post is called for each node after its children are traversed
32// (post-order). If post returns false, traversal is terminated and
33// Apply returns immediately.
34//
35// Only fields that refer to AST nodes are considered children;
36// i.e., token.Pos, Scopes, Objects, and fields of basic types
37// (strings, etc.) are ignored.
38//
39// Children are traversed in the order in which they appear in the
40// respective node's struct definition. A package's files are
41// traversed in the filenames' alphabetical order.
42//
43func Apply(root ast.Node, pre, post ApplyFunc) (result ast.Node) {
44 parent := &struct{ ast.Node }{root}
45 defer func() {
46 if r := recover(); r != nil && r != abort {
47 panic(r)
48 }
49 result = parent.Node
50 }()
51 a := &application{pre: pre, post: post}
52 a.apply(parent, "Node", nil, root)
53 return
54}
55
56var abort = new(int) // singleton, to signal termination of Apply
57
58// A Cursor describes a node encountered during Apply.
59// Information about the node and its parent is available
60// from the Node, Parent, Name, and Index methods.
61//
62// If p is a variable of type and value of the current parent node
63// c.Parent(), and f is the field identifier with name c.Name(),
64// the following invariants hold:
65//
66// p.f == c.Node() if c.Index() < 0
67// p.f[c.Index()] == c.Node() if c.Index() >= 0
68//
69// The methods Replace, Delete, InsertBefore, and InsertAfter
70// can be used to change the AST without disrupting Apply.
71type Cursor struct {
72 parent ast.Node
73 name string
74 iter *iterator // valid if non-nil
75 node ast.Node
76}
77
78// Node returns the current Node.
79func (c *Cursor) Node() ast.Node { return c.node }
80
81// Parent returns the parent of the current Node.
82func (c *Cursor) Parent() ast.Node { return c.parent }
83
84// Name returns the name of the parent Node field that contains the current Node.
85// If the parent is a *ast.Package and the current Node is a *ast.File, Name returns
86// the filename for the current Node.
87func (c *Cursor) Name() string { return c.name }
88
89// Index reports the index >= 0 of the current Node in the slice of Nodes that
90// contains it, or a value < 0 if the current Node is not part of a slice.
91// The index of the current node changes if InsertBefore is called while
92// processing the current node.
93func (c *Cursor) Index() int {
94 if c.iter != nil {
95 return c.iter.index
96 }
97 return -1
98}
99
100// field returns the current node's parent field value.
101func (c *Cursor) field() reflect.Value {
102 return reflect.Indirect(reflect.ValueOf(c.parent)).FieldByName(c.name)
103}
104
105// Replace replaces the current Node with n.
106// The replacement node is not walked by Apply.
107func (c *Cursor) Replace(n ast.Node) {
108 if _, ok := c.node.(*ast.File); ok {
109 file, ok := n.(*ast.File)
110 if !ok {
111 panic("attempt to replace *ast.File with non-*ast.File")
112 }
113 c.parent.(*ast.Package).Files[c.name] = file
114 return
115 }
116
117 v := c.field()
118 if i := c.Index(); i >= 0 {
119 v = v.Index(i)
120 }
121 v.Set(reflect.ValueOf(n))
122}
123
124// Delete deletes the current Node from its containing slice.
125// If the current Node is not part of a slice, Delete panics.
126// As a special case, if the current node is a package file,
127// Delete removes it from the package's Files map.
128func (c *Cursor) Delete() {
129 if _, ok := c.node.(*ast.File); ok {
130 delete(c.parent.(*ast.Package).Files, c.name)
131 return
132 }
133
134 i := c.Index()
135 if i < 0 {
136 panic("Delete node not contained in slice")
137 }
138 v := c.field()
139 l := v.Len()
140 reflect.Copy(v.Slice(i, l), v.Slice(i+1, l))
141 v.Index(l - 1).Set(reflect.Zero(v.Type().Elem()))
142 v.SetLen(l - 1)
143 c.iter.step--
144}
145
146// InsertAfter inserts n after the current Node in its containing slice.
147// If the current Node is not part of a slice, InsertAfter panics.
148// Apply does not walk n.
149func (c *Cursor) InsertAfter(n ast.Node) {
150 i := c.Index()
151 if i < 0 {
152 panic("InsertAfter node not contained in slice")
153 }
154 v := c.field()
155 v.Set(reflect.Append(v, reflect.Zero(v.Type().Elem())))
156 l := v.Len()
157 reflect.Copy(v.Slice(i+2, l), v.Slice(i+1, l))
158 v.Index(i + 1).Set(reflect.ValueOf(n))
159 c.iter.step++
160}
161
162// InsertBefore inserts n before the current Node in its containing slice.
163// If the current Node is not part of a slice, InsertBefore panics.
164// Apply will not walk n.
165func (c *Cursor) InsertBefore(n ast.Node) {
166 i := c.Index()
167 if i < 0 {
168 panic("InsertBefore node not contained in slice")
169 }
170 v := c.field()
171 v.Set(reflect.Append(v, reflect.Zero(v.Type().Elem())))
172 l := v.Len()
173 reflect.Copy(v.Slice(i+1, l), v.Slice(i, l))
174 v.Index(i).Set(reflect.ValueOf(n))
175 c.iter.index++
176}
177
178// application carries all the shared data so we can pass it around cheaply.
179type application struct {
180 pre, post ApplyFunc
181 cursor Cursor
182 iter iterator
183}
184
185func (a *application) apply(parent ast.Node, name string, iter *iterator, n ast.Node) {
186 // convert typed nil into untyped nil
187 if v := reflect.ValueOf(n); v.Kind() == reflect.Ptr && v.IsNil() {
188 n = nil
189 }
190
191 // avoid heap-allocating a new cursor for each apply call; reuse a.cursor instead
192 saved := a.cursor
193 a.cursor.parent = parent
194 a.cursor.name = name
195 a.cursor.iter = iter
196 a.cursor.node = n
197
198 if a.pre != nil && !a.pre(&a.cursor) {
199 a.cursor = saved
200 return
201 }
202
203 // walk children
204 // (the order of the cases matches the order of the corresponding node types in go/ast)
205 switch n := n.(type) {
206 case nil:
207 // nothing to do
208
209 // Comments and fields
210 case *ast.Comment:
211 // nothing to do
212
213 case *ast.CommentGroup:
214 if n != nil {
215 a.applyList(n, "List")
216 }
217
218 case *ast.Field:
219 a.apply(n, "Doc", nil, n.Doc)
220 a.applyList(n, "Names")
221 a.apply(n, "Type", nil, n.Type)
222 a.apply(n, "Tag", nil, n.Tag)
223 a.apply(n, "Comment", nil, n.Comment)
224
225 case *ast.FieldList:
226 a.applyList(n, "List")
227
228 // Expressions
229 case *ast.BadExpr, *ast.Ident, *ast.BasicLit:
230 // nothing to do
231
232 case *ast.Ellipsis:
233 a.apply(n, "Elt", nil, n.Elt)
234
235 case *ast.FuncLit:
236 a.apply(n, "Type", nil, n.Type)
237 a.apply(n, "Body", nil, n.Body)
238
239 case *ast.CompositeLit:
240 a.apply(n, "Type", nil, n.Type)
241 a.applyList(n, "Elts")
242
243 case *ast.ParenExpr:
244 a.apply(n, "X", nil, n.X)
245
246 case *ast.SelectorExpr:
247 a.apply(n, "X", nil, n.X)
248 a.apply(n, "Sel", nil, n.Sel)
249
250 case *ast.IndexExpr:
251 a.apply(n, "X", nil, n.X)
252 a.apply(n, "Index", nil, n.Index)
253
254 case *ast.SliceExpr:
255 a.apply(n, "X", nil, n.X)
256 a.apply(n, "Low", nil, n.Low)
257 a.apply(n, "High", nil, n.High)
258 a.apply(n, "Max", nil, n.Max)
259
260 case *ast.TypeAssertExpr:
261 a.apply(n, "X", nil, n.X)
262 a.apply(n, "Type", nil, n.Type)
263
264 case *ast.CallExpr:
265 a.apply(n, "Fun", nil, n.Fun)
266 a.applyList(n, "Args")
267
268 case *ast.StarExpr:
269 a.apply(n, "X", nil, n.X)
270
271 case *ast.UnaryExpr:
272 a.apply(n, "X", nil, n.X)
273
274 case *ast.BinaryExpr:
275 a.apply(n, "X", nil, n.X)
276 a.apply(n, "Y", nil, n.Y)
277
278 case *ast.KeyValueExpr:
279 a.apply(n, "Key", nil, n.Key)
280 a.apply(n, "Value", nil, n.Value)
281
282 // Types
283 case *ast.ArrayType:
284 a.apply(n, "Len", nil, n.Len)
285 a.apply(n, "Elt", nil, n.Elt)
286
287 case *ast.StructType:
288 a.apply(n, "Fields", nil, n.Fields)
289
290 case *ast.FuncType:
291 a.apply(n, "Params", nil, n.Params)
292 a.apply(n, "Results", nil, n.Results)
293
294 case *ast.InterfaceType:
295 a.apply(n, "Methods", nil, n.Methods)
296
297 case *ast.MapType:
298 a.apply(n, "Key", nil, n.Key)
299 a.apply(n, "Value", nil, n.Value)
300
301 case *ast.ChanType:
302 a.apply(n, "Value", nil, n.Value)
303
304 // Statements
305 case *ast.BadStmt:
306 // nothing to do
307
308 case *ast.DeclStmt:
309 a.apply(n, "Decl", nil, n.Decl)
310
311 case *ast.EmptyStmt:
312 // nothing to do
313
314 case *ast.LabeledStmt:
315 a.apply(n, "Label", nil, n.Label)
316 a.apply(n, "Stmt", nil, n.Stmt)
317
318 case *ast.ExprStmt:
319 a.apply(n, "X", nil, n.X)
320
321 case *ast.SendStmt:
322 a.apply(n, "Chan", nil, n.Chan)
323 a.apply(n, "Value", nil, n.Value)
324
325 case *ast.IncDecStmt:
326 a.apply(n, "X", nil, n.X)
327
328 case *ast.AssignStmt:
329 a.applyList(n, "Lhs")
330 a.applyList(n, "Rhs")
331
332 case *ast.GoStmt:
333 a.apply(n, "Call", nil, n.Call)
334
335 case *ast.DeferStmt:
336 a.apply(n, "Call", nil, n.Call)
337
338 case *ast.ReturnStmt:
339 a.applyList(n, "Results")
340
341 case *ast.BranchStmt:
342 a.apply(n, "Label", nil, n.Label)
343
344 case *ast.BlockStmt:
345 a.applyList(n, "List")
346
347 case *ast.IfStmt:
348 a.apply(n, "Init", nil, n.Init)
349 a.apply(n, "Cond", nil, n.Cond)
350 a.apply(n, "Body", nil, n.Body)
351 a.apply(n, "Else", nil, n.Else)
352
353 case *ast.CaseClause:
354 a.applyList(n, "List")
355 a.applyList(n, "Body")
356
357 case *ast.SwitchStmt:
358 a.apply(n, "Init", nil, n.Init)
359 a.apply(n, "Tag", nil, n.Tag)
360 a.apply(n, "Body", nil, n.Body)
361
362 case *ast.TypeSwitchStmt:
363 a.apply(n, "Init", nil, n.Init)
364 a.apply(n, "Assign", nil, n.Assign)
365 a.apply(n, "Body", nil, n.Body)
366
367 case *ast.CommClause:
368 a.apply(n, "Comm", nil, n.Comm)
369 a.applyList(n, "Body")
370
371 case *ast.SelectStmt:
372 a.apply(n, "Body", nil, n.Body)
373
374 case *ast.ForStmt:
375 a.apply(n, "Init", nil, n.Init)
376 a.apply(n, "Cond", nil, n.Cond)
377 a.apply(n, "Post", nil, n.Post)
378 a.apply(n, "Body", nil, n.Body)
379
380 case *ast.RangeStmt:
381 a.apply(n, "Key", nil, n.Key)
382 a.apply(n, "Value", nil, n.Value)
383 a.apply(n, "X", nil, n.X)
384 a.apply(n, "Body", nil, n.Body)
385
386 // Declarations
387 case *ast.ImportSpec:
388 a.apply(n, "Doc", nil, n.Doc)
389 a.apply(n, "Name", nil, n.Name)
390 a.apply(n, "Path", nil, n.Path)
391 a.apply(n, "Comment", nil, n.Comment)
392
393 case *ast.ValueSpec:
394 a.apply(n, "Doc", nil, n.Doc)
395 a.applyList(n, "Names")
396 a.apply(n, "Type", nil, n.Type)
397 a.applyList(n, "Values")
398 a.apply(n, "Comment", nil, n.Comment)
399
400 case *ast.TypeSpec:
401 a.apply(n, "Doc", nil, n.Doc)
402 a.apply(n, "Name", nil, n.Name)
403 a.apply(n, "Type", nil, n.Type)
404 a.apply(n, "Comment", nil, n.Comment)
405
406 case *ast.BadDecl:
407 // nothing to do
408
409 case *ast.GenDecl:
410 a.apply(n, "Doc", nil, n.Doc)
411 a.applyList(n, "Specs")
412
413 case *ast.FuncDecl:
414 a.apply(n, "Doc", nil, n.Doc)
415 a.apply(n, "Recv", nil, n.Recv)
416 a.apply(n, "Name", nil, n.Name)
417 a.apply(n, "Type", nil, n.Type)
418 a.apply(n, "Body", nil, n.Body)
419
420 // Files and packages
421 case *ast.File:
422 a.apply(n, "Doc", nil, n.Doc)
423 a.apply(n, "Name", nil, n.Name)
424 a.applyList(n, "Decls")
425 // Don't walk n.Comments; they have either been walked already if
426 // they are Doc comments, or they can be easily walked explicitly.
427
428 case *ast.Package:
429 // collect and sort names for reproducible behavior
430 var names []string
431 for name := range n.Files {
432 names = append(names, name)
433 }
434 sort.Strings(names)
435 for _, name := range names {
436 a.apply(n, name, nil, n.Files[name])
437 }
438
439 default:
440 panic(fmt.Sprintf("Apply: unexpected node type %T", n))
441 }
442
443 if a.post != nil && !a.post(&a.cursor) {
444 panic(abort)
445 }
446
447 a.cursor = saved
448}
449
450// An iterator controls iteration over a slice of nodes.
451type iterator struct {
452 index, step int
453}
454
455func (a *application) applyList(parent ast.Node, name string) {
456 // avoid heap-allocating a new iterator for each applyList call; reuse a.iter instead
457 saved := a.iter
458 a.iter.index = 0
459 for {
460 // must reload parent.name each time, since cursor modifications might change it
461 v := reflect.Indirect(reflect.ValueOf(parent)).FieldByName(name)
462 if a.iter.index >= v.Len() {
463 break
464 }
465
466 // element x may be nil in a bad AST - be cautious
467 var x ast.Node
468 if e := v.Index(a.iter.index); e.IsValid() {
469 x = e.Interface().(ast.Node)
470 }
471
472 a.iter.step = 1
473 a.apply(parent, name, &a.iter, x)
474 a.iter.index += a.iter.step
475 }
476 a.iter = saved
477}
diff --git a/vendor/golang.org/x/tools/go/ast/astutil/util.go b/vendor/golang.org/x/tools/go/ast/astutil/util.go
new file mode 100644
index 0000000..7630629
--- /dev/null
+++ b/vendor/golang.org/x/tools/go/ast/astutil/util.go
@@ -0,0 +1,14 @@
1package astutil
2
3import "go/ast"
4
5// Unparen returns e with any enclosing parentheses stripped.
6func Unparen(e ast.Expr) ast.Expr {
7 for {
8 p, ok := e.(*ast.ParenExpr)
9 if !ok {
10 return e
11 }
12 e = p.X
13 }
14}
diff --git a/vendor/golang.org/x/tools/go/ast/inspector/inspector.go b/vendor/golang.org/x/tools/go/ast/inspector/inspector.go
new file mode 100644
index 0000000..3084508
--- /dev/null
+++ b/vendor/golang.org/x/tools/go/ast/inspector/inspector.go
@@ -0,0 +1,182 @@
1// Copyright 2018 The Go Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style
3// license that can be found in the LICENSE file.
4
5// Package inspector provides helper functions for traversal over the
6// syntax trees of a package, including node filtering by type, and
7// materialization of the traversal stack.
8//
9// During construction, the inspector does a complete traversal and
10// builds a list of push/pop events and their node type. Subsequent
11// method calls that request a traversal scan this list, rather than walk
12// the AST, and perform type filtering using efficient bit sets.
13//
14// Experiments suggest the inspector's traversals are about 2.5x faster
15// than ast.Inspect, but it may take around 5 traversals for this
16// benefit to amortize the inspector's construction cost.
17// If efficiency is the primary concern, do not use Inspector for
18// one-off traversals.
19package inspector
20
21// There are four orthogonal features in a traversal:
22// 1 type filtering
23// 2 pruning
24// 3 postorder calls to f
25// 4 stack
26// Rather than offer all of them in the API,
27// only a few combinations are exposed:
28// - Preorder is the fastest and has fewest features,
29// but is the most commonly needed traversal.
30// - Nodes and WithStack both provide pruning and postorder calls,
31// even though few clients need it, because supporting two versions
32// is not justified.
33// More combinations could be supported by expressing them as
34// wrappers around a more generic traversal, but this was measured
35// and found to degrade performance significantly (30%).
36
37import (
38 "go/ast"
39)
40
41// An Inspector provides methods for inspecting
42// (traversing) the syntax trees of a package.
43type Inspector struct {
44 events []event
45}
46
47// New returns an Inspector for the specified syntax trees.
48func New(files []*ast.File) *Inspector {
49 return &Inspector{traverse(files)}
50}
51
52// An event represents a push or a pop
53// of an ast.Node during a traversal.
54type event struct {
55 node ast.Node
56 typ uint64 // typeOf(node)
57 index int // 1 + index of corresponding pop event, or 0 if this is a pop
58}
59
60// Preorder visits all the nodes of the files supplied to New in
61// depth-first order. It calls f(n) for each node n before it visits
62// n's children.
63//
64// The types argument, if non-empty, enables type-based filtering of
65// events. The function f if is called only for nodes whose type
66// matches an element of the types slice.
67func (in *Inspector) Preorder(types []ast.Node, f func(ast.Node)) {
68 // Because it avoids postorder calls to f, and the pruning
69 // check, Preorder is almost twice as fast as Nodes. The two
70 // features seem to contribute similar slowdowns (~1.4x each).
71
72 mask := maskOf(types)
73 for i := 0; i < len(in.events); {
74 ev := in.events[i]
75 if ev.typ&mask != 0 {
76 if ev.index > 0 {
77 f(ev.node)
78 }
79 }
80 i++
81 }
82}
83
84// Nodes visits the nodes of the files supplied to New in depth-first
85// order. It calls f(n, true) for each node n before it visits n's
86// children. If f returns true, Nodes invokes f recursively for each
87// of the non-nil children of the node, followed by a call of
88// f(n, false).
89//
90// The types argument, if non-empty, enables type-based filtering of
91// events. The function f if is called only for nodes whose type
92// matches an element of the types slice.
93func (in *Inspector) Nodes(types []ast.Node, f func(n ast.Node, push bool) (proceed bool)) {
94 mask := maskOf(types)
95 for i := 0; i < len(in.events); {
96 ev := in.events[i]
97 if ev.typ&mask != 0 {
98 if ev.index > 0 {
99 // push
100 if !f(ev.node, true) {
101 i = ev.index // jump to corresponding pop + 1
102 continue
103 }
104 } else {
105 // pop
106 f(ev.node, false)
107 }
108 }
109 i++
110 }
111}
112
113// WithStack visits nodes in a similar manner to Nodes, but it
114// supplies each call to f an additional argument, the current
115// traversal stack. The stack's first element is the outermost node,
116// an *ast.File; its last is the innermost, n.
117func (in *Inspector) WithStack(types []ast.Node, f func(n ast.Node, push bool, stack []ast.Node) (proceed bool)) {
118 mask := maskOf(types)
119 var stack []ast.Node
120 for i := 0; i < len(in.events); {
121 ev := in.events[i]
122 if ev.index > 0 {
123 // push
124 stack = append(stack, ev.node)
125 if ev.typ&mask != 0 {
126 if !f(ev.node, true, stack) {
127 i = ev.index
128 stack = stack[:len(stack)-1]
129 continue
130 }
131 }
132 } else {
133 // pop
134 if ev.typ&mask != 0 {
135 f(ev.node, false, stack)
136 }
137 stack = stack[:len(stack)-1]
138 }
139 i++
140 }
141}
142
143// traverse builds the table of events representing a traversal.
144func traverse(files []*ast.File) []event {
145 // Preallocate approximate number of events
146 // based on source file extent.
147 // This makes traverse faster by 4x (!).
148 var extent int
149 for _, f := range files {
150 extent += int(f.End() - f.Pos())
151 }
152 // This estimate is based on the net/http package.
153 events := make([]event, 0, extent*33/100)
154
155 var stack []event
156 for _, f := range files {
157 ast.Inspect(f, func(n ast.Node) bool {
158 if n != nil {
159 // push
160 ev := event{
161 node: n,
162 typ: typeOf(n),
163 index: len(events), // push event temporarily holds own index
164 }
165 stack = append(stack, ev)
166 events = append(events, ev)
167 } else {
168 // pop
169 ev := stack[len(stack)-1]
170 stack = stack[:len(stack)-1]
171
172 events[ev.index].index = len(events) + 1 // make push refer to pop
173
174 ev.index = 0 // turn ev into a pop event
175 events = append(events, ev)
176 }
177 return true
178 })
179 }
180
181 return events
182}
diff --git a/vendor/golang.org/x/tools/go/ast/inspector/typeof.go b/vendor/golang.org/x/tools/go/ast/inspector/typeof.go
new file mode 100644
index 0000000..d61301b
--- /dev/null
+++ b/vendor/golang.org/x/tools/go/ast/inspector/typeof.go
@@ -0,0 +1,216 @@
1package inspector
2
3// This file defines func typeOf(ast.Node) uint64.
4//
5// The initial map-based implementation was too slow;
6// see https://go-review.googlesource.com/c/tools/+/135655/1/go/ast/inspector/inspector.go#196
7
8import "go/ast"
9
10const (
11 nArrayType = iota
12 nAssignStmt
13 nBadDecl
14 nBadExpr
15 nBadStmt
16 nBasicLit
17 nBinaryExpr
18 nBlockStmt
19 nBranchStmt
20 nCallExpr
21 nCaseClause
22 nChanType
23 nCommClause
24 nComment
25 nCommentGroup
26 nCompositeLit
27 nDeclStmt
28 nDeferStmt
29 nEllipsis
30 nEmptyStmt
31 nExprStmt
32 nField
33 nFieldList
34 nFile
35 nForStmt
36 nFuncDecl
37 nFuncLit
38 nFuncType
39 nGenDecl
40 nGoStmt
41 nIdent
42 nIfStmt
43 nImportSpec
44 nIncDecStmt
45 nIndexExpr
46 nInterfaceType
47 nKeyValueExpr
48 nLabeledStmt
49 nMapType
50 nPackage
51 nParenExpr
52 nRangeStmt
53 nReturnStmt
54 nSelectStmt
55 nSelectorExpr
56 nSendStmt
57 nSliceExpr
58 nStarExpr
59 nStructType
60 nSwitchStmt
61 nTypeAssertExpr
62 nTypeSpec
63 nTypeSwitchStmt
64 nUnaryExpr
65 nValueSpec
66)
67
68// typeOf returns a distinct single-bit value that represents the type of n.
69//
70// Various implementations were benchmarked with BenchmarkNewInspector:
71// GOGC=off
72// - type switch 4.9-5.5ms 2.1ms
73// - binary search over a sorted list of types 5.5-5.9ms 2.5ms
74// - linear scan, frequency-ordered list 5.9-6.1ms 2.7ms
75// - linear scan, unordered list 6.4ms 2.7ms
76// - hash table 6.5ms 3.1ms
77// A perfect hash seemed like overkill.
78//
79// The compiler's switch statement is the clear winner
80// as it produces a binary tree in code,
81// with constant conditions and good branch prediction.
82// (Sadly it is the most verbose in source code.)
83// Binary search suffered from poor branch prediction.
84//
85func typeOf(n ast.Node) uint64 {
86 // Fast path: nearly half of all nodes are identifiers.
87 if _, ok := n.(*ast.Ident); ok {
88 return 1 << nIdent
89 }
90
91 // These cases include all nodes encountered by ast.Inspect.
92 switch n.(type) {
93 case *ast.ArrayType:
94 return 1 << nArrayType
95 case *ast.AssignStmt:
96 return 1 << nAssignStmt
97 case *ast.BadDecl:
98 return 1 << nBadDecl
99 case *ast.BadExpr:
100 return 1 << nBadExpr
101 case *ast.BadStmt:
102 return 1 << nBadStmt
103 case *ast.BasicLit:
104 return 1 << nBasicLit
105 case *ast.BinaryExpr:
106 return 1 << nBinaryExpr
107 case *ast.BlockStmt:
108 return 1 << nBlockStmt
109 case *ast.BranchStmt:
110 return 1 << nBranchStmt
111 case *ast.CallExpr:
112 return 1 << nCallExpr
113 case *ast.CaseClause:
114 return 1 << nCaseClause
115 case *ast.ChanType:
116 return 1 << nChanType
117 case *ast.CommClause:
118 return 1 << nCommClause
119 case *ast.Comment:
120 return 1 << nComment
121 case *ast.CommentGroup:
122 return 1 << nCommentGroup
123 case *ast.CompositeLit:
124 return 1 << nCompositeLit
125 case *ast.DeclStmt:
126 return 1 << nDeclStmt
127 case *ast.DeferStmt:
128 return 1 << nDeferStmt
129 case *ast.Ellipsis:
130 return 1 << nEllipsis
131 case *ast.EmptyStmt:
132 return 1 << nEmptyStmt
133 case *ast.ExprStmt:
134 return 1 << nExprStmt
135 case *ast.Field:
136 return 1 << nField
137 case *ast.FieldList:
138 return 1 << nFieldList
139 case *ast.File:
140 return 1 << nFile
141 case *ast.ForStmt:
142 return 1 << nForStmt
143 case *ast.FuncDecl:
144 return 1 << nFuncDecl
145 case *ast.FuncLit:
146 return 1 << nFuncLit
147 case *ast.FuncType:
148 return 1 << nFuncType
149 case *ast.GenDecl:
150 return 1 << nGenDecl
151 case *ast.GoStmt:
152 return 1 << nGoStmt
153 case *ast.Ident:
154 return 1 << nIdent
155 case *ast.IfStmt:
156 return 1 << nIfStmt
157 case *ast.ImportSpec:
158 return 1 << nImportSpec
159 case *ast.IncDecStmt:
160 return 1 << nIncDecStmt
161 case *ast.IndexExpr:
162 return 1 << nIndexExpr
163 case *ast.InterfaceType:
164 return 1 << nInterfaceType
165 case *ast.KeyValueExpr:
166 return 1 << nKeyValueExpr
167 case *ast.LabeledStmt:
168 return 1 << nLabeledStmt
169 case *ast.MapType:
170 return 1 << nMapType
171 case *ast.Package:
172 return 1 << nPackage
173 case *ast.ParenExpr:
174 return 1 << nParenExpr
175 case *ast.RangeStmt:
176 return 1 << nRangeStmt
177 case *ast.ReturnStmt:
178 return 1 << nReturnStmt
179 case *ast.SelectStmt:
180 return 1 << nSelectStmt
181 case *ast.SelectorExpr:
182 return 1 << nSelectorExpr
183 case *ast.SendStmt:
184 return 1 << nSendStmt
185 case *ast.SliceExpr:
186 return 1 << nSliceExpr
187 case *ast.StarExpr:
188 return 1 << nStarExpr
189 case *ast.StructType:
190 return 1 << nStructType
191 case *ast.SwitchStmt:
192 return 1 << nSwitchStmt
193 case *ast.TypeAssertExpr:
194 return 1 << nTypeAssertExpr
195 case *ast.TypeSpec:
196 return 1 << nTypeSpec
197 case *ast.TypeSwitchStmt:
198 return 1 << nTypeSwitchStmt
199 case *ast.UnaryExpr:
200 return 1 << nUnaryExpr
201 case *ast.ValueSpec:
202 return 1 << nValueSpec
203 }
204 return 0
205}
206
207func maskOf(nodes []ast.Node) uint64 {
208 if nodes == nil {
209 return 1<<64 - 1 // match all node types
210 }
211 var mask uint64
212 for _, n := range nodes {
213 mask |= typeOf(n)
214 }
215 return mask
216}
diff --git a/vendor/golang.org/x/tools/go/buildutil/allpackages.go b/vendor/golang.org/x/tools/go/buildutil/allpackages.go
new file mode 100644
index 0000000..c0cb03e
--- /dev/null
+++ b/vendor/golang.org/x/tools/go/buildutil/allpackages.go
@@ -0,0 +1,198 @@
1// Copyright 2014 The Go Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style
3// license that can be found in the LICENSE file.
4
5// Package buildutil provides utilities related to the go/build
6// package in the standard library.
7//
8// All I/O is done via the build.Context file system interface, which must
9// be concurrency-safe.
10package buildutil // import "golang.org/x/tools/go/buildutil"
11
12import (
13 "go/build"
14 "os"
15 "path/filepath"
16 "sort"
17 "strings"
18 "sync"
19)
20
21// AllPackages returns the package path of each Go package in any source
22// directory of the specified build context (e.g. $GOROOT or an element
23// of $GOPATH). Errors are ignored. The results are sorted.
24// All package paths are canonical, and thus may contain "/vendor/".
25//
26// The result may include import paths for directories that contain no
27// *.go files, such as "archive" (in $GOROOT/src).
28//
29// All I/O is done via the build.Context file system interface,
30// which must be concurrency-safe.
31//
32func AllPackages(ctxt *build.Context) []string {
33 var list []string
34 ForEachPackage(ctxt, func(pkg string, _ error) {
35 list = append(list, pkg)
36 })
37 sort.Strings(list)
38 return list
39}
40
41// ForEachPackage calls the found function with the package path of
42// each Go package it finds in any source directory of the specified
43// build context (e.g. $GOROOT or an element of $GOPATH).
44// All package paths are canonical, and thus may contain "/vendor/".
45//
46// If the package directory exists but could not be read, the second
47// argument to the found function provides the error.
48//
49// All I/O is done via the build.Context file system interface,
50// which must be concurrency-safe.
51//
52func ForEachPackage(ctxt *build.Context, found func(importPath string, err error)) {
53 ch := make(chan item)
54
55 var wg sync.WaitGroup
56 for _, root := range ctxt.SrcDirs() {
57 root := root
58 wg.Add(1)
59 go func() {
60 allPackages(ctxt, root, ch)
61 wg.Done()
62 }()
63 }
64 go func() {
65 wg.Wait()
66 close(ch)
67 }()
68
69 // All calls to found occur in the caller's goroutine.
70 for i := range ch {
71 found(i.importPath, i.err)
72 }
73}
74
75type item struct {
76 importPath string
77 err error // (optional)
78}
79
80// We use a process-wide counting semaphore to limit
81// the number of parallel calls to ReadDir.
82var ioLimit = make(chan bool, 20)
83
84func allPackages(ctxt *build.Context, root string, ch chan<- item) {
85 root = filepath.Clean(root) + string(os.PathSeparator)
86
87 var wg sync.WaitGroup
88
89 var walkDir func(dir string)
90 walkDir = func(dir string) {
91 // Avoid .foo, _foo, and testdata directory trees.
92 base := filepath.Base(dir)
93 if base == "" || base[0] == '.' || base[0] == '_' || base == "testdata" {
94 return
95 }
96
97 pkg := filepath.ToSlash(strings.TrimPrefix(dir, root))
98
99 // Prune search if we encounter any of these import paths.
100 switch pkg {
101 case "builtin":
102 return
103 }
104
105 ioLimit <- true
106 files, err := ReadDir(ctxt, dir)
107 <-ioLimit
108 if pkg != "" || err != nil {
109 ch <- item{pkg, err}
110 }
111 for _, fi := range files {
112 fi := fi
113 if fi.IsDir() {
114 wg.Add(1)
115 go func() {
116 walkDir(filepath.Join(dir, fi.Name()))
117 wg.Done()
118 }()
119 }
120 }
121 }
122
123 walkDir(root)
124 wg.Wait()
125}
126
127// ExpandPatterns returns the set of packages matched by patterns,
128// which may have the following forms:
129//
130// golang.org/x/tools/cmd/guru # a single package
131// golang.org/x/tools/... # all packages beneath dir
132// ... # the entire workspace.
133//
134// Order is significant: a pattern preceded by '-' removes matching
135// packages from the set. For example, these patterns match all encoding
136// packages except encoding/xml:
137//
138// encoding/... -encoding/xml
139//
140// A trailing slash in a pattern is ignored. (Path components of Go
141// package names are separated by slash, not the platform's path separator.)
142//
143func ExpandPatterns(ctxt *build.Context, patterns []string) map[string]bool {
144 // TODO(adonovan): support other features of 'go list':
145 // - "std"/"cmd"/"all" meta-packages
146 // - "..." not at the end of a pattern
147 // - relative patterns using "./" or "../" prefix
148
149 pkgs := make(map[string]bool)
150 doPkg := func(pkg string, neg bool) {
151 if neg {
152 delete(pkgs, pkg)
153 } else {
154 pkgs[pkg] = true
155 }
156 }
157
158 // Scan entire workspace if wildcards are present.
159 // TODO(adonovan): opt: scan only the necessary subtrees of the workspace.
160 var all []string
161 for _, arg := range patterns {
162 if strings.HasSuffix(arg, "...") {
163 all = AllPackages(ctxt)
164 break
165 }
166 }
167
168 for _, arg := range patterns {
169 if arg == "" {
170 continue
171 }
172
173 neg := arg[0] == '-'
174 if neg {
175 arg = arg[1:]
176 }
177
178 if arg == "..." {
179 // ... matches all packages
180 for _, pkg := range all {
181 doPkg(pkg, neg)
182 }
183 } else if dir := strings.TrimSuffix(arg, "/..."); dir != arg {
184 // dir/... matches all packages beneath dir
185 for _, pkg := range all {
186 if strings.HasPrefix(pkg, dir) &&
187 (len(pkg) == len(dir) || pkg[len(dir)] == '/') {
188 doPkg(pkg, neg)
189 }
190 }
191 } else {
192 // single package
193 doPkg(strings.TrimSuffix(arg, "/"), neg)
194 }
195 }
196
197 return pkgs
198}
diff --git a/vendor/golang.org/x/tools/go/buildutil/fakecontext.go b/vendor/golang.org/x/tools/go/buildutil/fakecontext.go
new file mode 100644
index 0000000..8b7f066
--- /dev/null
+++ b/vendor/golang.org/x/tools/go/buildutil/fakecontext.go
@@ -0,0 +1,109 @@
1package buildutil
2
3import (
4 "fmt"
5 "go/build"
6 "io"
7 "io/ioutil"
8 "os"
9 "path"
10 "path/filepath"
11 "sort"
12 "strings"
13 "time"
14)
15
16// FakeContext returns a build.Context for the fake file tree specified
17// by pkgs, which maps package import paths to a mapping from file base
18// names to contents.
19//
20// The fake Context has a GOROOT of "/go" and no GOPATH, and overrides
21// the necessary file access methods to read from memory instead of the
22// real file system.
23//
24// Unlike a real file tree, the fake one has only two levels---packages
25// and files---so ReadDir("/go/src/") returns all packages under
26// /go/src/ including, for instance, "math" and "math/big".
27// ReadDir("/go/src/math/big") would return all the files in the
28// "math/big" package.
29//
30func FakeContext(pkgs map[string]map[string]string) *build.Context {
31 clean := func(filename string) string {
32 f := path.Clean(filepath.ToSlash(filename))
33 // Removing "/go/src" while respecting segment
34 // boundaries has this unfortunate corner case:
35 if f == "/go/src" {
36 return ""
37 }
38 return strings.TrimPrefix(f, "/go/src/")
39 }
40
41 ctxt := build.Default // copy
42 ctxt.GOROOT = "/go"
43 ctxt.GOPATH = ""
44 ctxt.Compiler = "gc"
45 ctxt.IsDir = func(dir string) bool {
46 dir = clean(dir)
47 if dir == "" {
48 return true // needed by (*build.Context).SrcDirs
49 }
50 return pkgs[dir] != nil
51 }
52 ctxt.ReadDir = func(dir string) ([]os.FileInfo, error) {
53 dir = clean(dir)
54 var fis []os.FileInfo
55 if dir == "" {
56 // enumerate packages
57 for importPath := range pkgs {
58 fis = append(fis, fakeDirInfo(importPath))
59 }
60 } else {
61 // enumerate files of package
62 for basename := range pkgs[dir] {
63 fis = append(fis, fakeFileInfo(basename))
64 }
65 }
66 sort.Sort(byName(fis))
67 return fis, nil
68 }
69 ctxt.OpenFile = func(filename string) (io.ReadCloser, error) {
70 filename = clean(filename)
71 dir, base := path.Split(filename)
72 content, ok := pkgs[path.Clean(dir)][base]
73 if !ok {
74 return nil, fmt.Errorf("file not found: %s", filename)
75 }
76 return ioutil.NopCloser(strings.NewReader(content)), nil
77 }
78 ctxt.IsAbsPath = func(path string) bool {
79 path = filepath.ToSlash(path)
80 // Don't rely on the default (filepath.Path) since on
81 // Windows, it reports virtual paths as non-absolute.
82 return strings.HasPrefix(path, "/")
83 }
84 return &ctxt
85}
86
87type byName []os.FileInfo
88
89func (s byName) Len() int { return len(s) }
90func (s byName) Swap(i, j int) { s[i], s[j] = s[j], s[i] }
91func (s byName) Less(i, j int) bool { return s[i].Name() < s[j].Name() }
92
93type fakeFileInfo string
94
95func (fi fakeFileInfo) Name() string { return string(fi) }
96func (fakeFileInfo) Sys() interface{} { return nil }
97func (fakeFileInfo) ModTime() time.Time { return time.Time{} }
98func (fakeFileInfo) IsDir() bool { return false }
99func (fakeFileInfo) Size() int64 { return 0 }
100func (fakeFileInfo) Mode() os.FileMode { return 0644 }
101
102type fakeDirInfo string
103
104func (fd fakeDirInfo) Name() string { return string(fd) }
105func (fakeDirInfo) Sys() interface{} { return nil }
106func (fakeDirInfo) ModTime() time.Time { return time.Time{} }
107func (fakeDirInfo) IsDir() bool { return true }
108func (fakeDirInfo) Size() int64 { return 0 }
109func (fakeDirInfo) Mode() os.FileMode { return 0755 }
diff --git a/vendor/golang.org/x/tools/go/buildutil/overlay.go b/vendor/golang.org/x/tools/go/buildutil/overlay.go
new file mode 100644
index 0000000..8e23908
--- /dev/null
+++ b/vendor/golang.org/x/tools/go/buildutil/overlay.go
@@ -0,0 +1,103 @@
1// Copyright 2016 The Go Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style
3// license that can be found in the LICENSE file.
4
5package buildutil
6
7import (
8 "bufio"
9 "bytes"
10 "fmt"
11 "go/build"
12 "io"
13 "io/ioutil"
14 "path/filepath"
15 "strconv"
16 "strings"
17)
18
19// OverlayContext overlays a build.Context with additional files from
20// a map. Files in the map take precedence over other files.
21//
22// In addition to plain string comparison, two file names are
23// considered equal if their base names match and their directory
24// components point at the same directory on the file system. That is,
25// symbolic links are followed for directories, but not files.
26//
27// A common use case for OverlayContext is to allow editors to pass in
28// a set of unsaved, modified files.
29//
30// Currently, only the Context.OpenFile function will respect the
31// overlay. This may change in the future.
32func OverlayContext(orig *build.Context, overlay map[string][]byte) *build.Context {
33 // TODO(dominikh): Implement IsDir, HasSubdir and ReadDir
34
35 rc := func(data []byte) (io.ReadCloser, error) {
36 return ioutil.NopCloser(bytes.NewBuffer(data)), nil
37 }
38
39 copy := *orig // make a copy
40 ctxt := &copy
41 ctxt.OpenFile = func(path string) (io.ReadCloser, error) {
42 // Fast path: names match exactly.
43 if content, ok := overlay[path]; ok {
44 return rc(content)
45 }
46
47 // Slow path: check for same file under a different
48 // alias, perhaps due to a symbolic link.
49 for filename, content := range overlay {
50 if sameFile(path, filename) {
51 return rc(content)
52 }
53 }
54
55 return OpenFile(orig, path)
56 }
57 return ctxt
58}
59
60// ParseOverlayArchive parses an archive containing Go files and their
61// contents. The result is intended to be used with OverlayContext.
62//
63//
64// Archive format
65//
66// The archive consists of a series of files. Each file consists of a
67// name, a decimal file size and the file contents, separated by
68// newlines. No newline follows after the file contents.
69func ParseOverlayArchive(archive io.Reader) (map[string][]byte, error) {
70 overlay := make(map[string][]byte)
71 r := bufio.NewReader(archive)
72 for {
73 // Read file name.
74 filename, err := r.ReadString('\n')
75 if err != nil {
76 if err == io.EOF {
77 break // OK
78 }
79 return nil, fmt.Errorf("reading archive file name: %v", err)
80 }
81 filename = filepath.Clean(strings.TrimSpace(filename))
82
83 // Read file size.
84 sz, err := r.ReadString('\n')
85 if err != nil {
86 return nil, fmt.Errorf("reading size of archive file %s: %v", filename, err)
87 }
88 sz = strings.TrimSpace(sz)
89 size, err := strconv.ParseUint(sz, 10, 32)
90 if err != nil {
91 return nil, fmt.Errorf("parsing size of archive file %s: %v", filename, err)
92 }
93
94 // Read file content.
95 content := make([]byte, size)
96 if _, err := io.ReadFull(r, content); err != nil {
97 return nil, fmt.Errorf("reading archive file %s: %v", filename, err)
98 }
99 overlay[filename] = content
100 }
101
102 return overlay, nil
103}
diff --git a/vendor/golang.org/x/tools/go/buildutil/tags.go b/vendor/golang.org/x/tools/go/buildutil/tags.go
new file mode 100644
index 0000000..486606f
--- /dev/null
+++ b/vendor/golang.org/x/tools/go/buildutil/tags.go
@@ -0,0 +1,75 @@
1package buildutil
2
3// This logic was copied from stringsFlag from $GOROOT/src/cmd/go/build.go.
4
5import "fmt"
6
7const TagsFlagDoc = "a list of `build tags` to consider satisfied during the build. " +
8 "For more information about build tags, see the description of " +
9 "build constraints in the documentation for the go/build package"
10
11// TagsFlag is an implementation of the flag.Value and flag.Getter interfaces that parses
12// a flag value in the same manner as go build's -tags flag and
13// populates a []string slice.
14//
15// See $GOROOT/src/go/build/doc.go for description of build tags.
16// See $GOROOT/src/cmd/go/doc.go for description of 'go build -tags' flag.
17//
18// Example:
19// flag.Var((*buildutil.TagsFlag)(&build.Default.BuildTags), "tags", buildutil.TagsFlagDoc)
20type TagsFlag []string
21
22func (v *TagsFlag) Set(s string) error {
23 var err error
24 *v, err = splitQuotedFields(s)
25 if *v == nil {
26 *v = []string{}
27 }
28 return err
29}
30
31func (v *TagsFlag) Get() interface{} { return *v }
32
33func splitQuotedFields(s string) ([]string, error) {
34 // Split fields allowing '' or "" around elements.
35 // Quotes further inside the string do not count.
36 var f []string
37 for len(s) > 0 {
38 for len(s) > 0 && isSpaceByte(s[0]) {
39 s = s[1:]
40 }
41 if len(s) == 0 {
42 break
43 }
44 // Accepted quoted string. No unescaping inside.
45 if s[0] == '"' || s[0] == '\'' {
46 quote := s[0]
47 s = s[1:]
48 i := 0
49 for i < len(s) && s[i] != quote {
50 i++
51 }
52 if i >= len(s) {
53 return nil, fmt.Errorf("unterminated %c string", quote)
54 }
55 f = append(f, s[:i])
56 s = s[i+1:]
57 continue
58 }
59 i := 0
60 for i < len(s) && !isSpaceByte(s[i]) {
61 i++
62 }
63 f = append(f, s[:i])
64 s = s[i:]
65 }
66 return f, nil
67}
68
69func (v *TagsFlag) String() string {
70 return "<tagsFlag>"
71}
72
73func isSpaceByte(c byte) bool {
74 return c == ' ' || c == '\t' || c == '\n' || c == '\r'
75}
diff --git a/vendor/golang.org/x/tools/go/buildutil/util.go b/vendor/golang.org/x/tools/go/buildutil/util.go
new file mode 100644
index 0000000..fc923d7
--- /dev/null
+++ b/vendor/golang.org/x/tools/go/buildutil/util.go
@@ -0,0 +1,212 @@
1// Copyright 2014 The Go Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style
3// license that can be found in the LICENSE file.
4
5package buildutil
6
7import (
8 "fmt"
9 "go/ast"
10 "go/build"
11 "go/parser"
12 "go/token"
13 "io"
14 "io/ioutil"
15 "os"
16 "path"
17 "path/filepath"
18 "strings"
19)
20
21// ParseFile behaves like parser.ParseFile,
22// but uses the build context's file system interface, if any.
23//
24// If file is not absolute (as defined by IsAbsPath), the (dir, file)
25// components are joined using JoinPath; dir must be absolute.
26//
27// The displayPath function, if provided, is used to transform the
28// filename that will be attached to the ASTs.
29//
30// TODO(adonovan): call this from go/loader.parseFiles when the tree thaws.
31//
32func ParseFile(fset *token.FileSet, ctxt *build.Context, displayPath func(string) string, dir string, file string, mode parser.Mode) (*ast.File, error) {
33 if !IsAbsPath(ctxt, file) {
34 file = JoinPath(ctxt, dir, file)
35 }
36 rd, err := OpenFile(ctxt, file)
37 if err != nil {
38 return nil, err
39 }
40 defer rd.Close() // ignore error
41 if displayPath != nil {
42 file = displayPath(file)
43 }
44 return parser.ParseFile(fset, file, rd, mode)
45}
46
47// ContainingPackage returns the package containing filename.
48//
49// If filename is not absolute, it is interpreted relative to working directory dir.
50// All I/O is via the build context's file system interface, if any.
51//
52// The '...Files []string' fields of the resulting build.Package are not
53// populated (build.FindOnly mode).
54//
55func ContainingPackage(ctxt *build.Context, dir, filename string) (*build.Package, error) {
56 if !IsAbsPath(ctxt, filename) {
57 filename = JoinPath(ctxt, dir, filename)
58 }
59
60 // We must not assume the file tree uses
61 // "/" always,
62 // `\` always,
63 // or os.PathSeparator (which varies by platform),
64 // but to make any progress, we are forced to assume that
65 // paths will not use `\` unless the PathSeparator
66 // is also `\`, thus we can rely on filepath.ToSlash for some sanity.
67
68 dirSlash := path.Dir(filepath.ToSlash(filename)) + "/"
69
70 // We assume that no source root (GOPATH[i] or GOROOT) contains any other.
71 for _, srcdir := range ctxt.SrcDirs() {
72 srcdirSlash := filepath.ToSlash(srcdir) + "/"
73 if importPath, ok := HasSubdir(ctxt, srcdirSlash, dirSlash); ok {
74 return ctxt.Import(importPath, dir, build.FindOnly)
75 }
76 }
77
78 return nil, fmt.Errorf("can't find package containing %s", filename)
79}
80
81// -- Effective methods of file system interface -------------------------
82
83// (go/build.Context defines these as methods, but does not export them.)
84
85// hasSubdir calls ctxt.HasSubdir (if not nil) or else uses
86// the local file system to answer the question.
87func HasSubdir(ctxt *build.Context, root, dir string) (rel string, ok bool) {
88 if f := ctxt.HasSubdir; f != nil {
89 return f(root, dir)
90 }
91
92 // Try using paths we received.
93 if rel, ok = hasSubdir(root, dir); ok {
94 return
95 }
96
97 // Try expanding symlinks and comparing
98 // expanded against unexpanded and
99 // expanded against expanded.
100 rootSym, _ := filepath.EvalSymlinks(root)
101 dirSym, _ := filepath.EvalSymlinks(dir)
102
103 if rel, ok = hasSubdir(rootSym, dir); ok {
104 return
105 }
106 if rel, ok = hasSubdir(root, dirSym); ok {
107 return
108 }
109 return hasSubdir(rootSym, dirSym)
110}
111
112func hasSubdir(root, dir string) (rel string, ok bool) {
113 const sep = string(filepath.Separator)
114 root = filepath.Clean(root)
115 if !strings.HasSuffix(root, sep) {
116 root += sep
117 }
118
119 dir = filepath.Clean(dir)
120 if !strings.HasPrefix(dir, root) {
121 return "", false
122 }
123
124 return filepath.ToSlash(dir[len(root):]), true
125}
126
127// FileExists returns true if the specified file exists,
128// using the build context's file system interface.
129func FileExists(ctxt *build.Context, path string) bool {
130 if ctxt.OpenFile != nil {
131 r, err := ctxt.OpenFile(path)
132 if err != nil {
133 return false
134 }
135 r.Close() // ignore error
136 return true
137 }
138 _, err := os.Stat(path)
139 return err == nil
140}
141
142// OpenFile behaves like os.Open,
143// but uses the build context's file system interface, if any.
144func OpenFile(ctxt *build.Context, path string) (io.ReadCloser, error) {
145 if ctxt.OpenFile != nil {
146 return ctxt.OpenFile(path)
147 }
148 return os.Open(path)
149}
150
151// IsAbsPath behaves like filepath.IsAbs,
152// but uses the build context's file system interface, if any.
153func IsAbsPath(ctxt *build.Context, path string) bool {
154 if ctxt.IsAbsPath != nil {
155 return ctxt.IsAbsPath(path)
156 }
157 return filepath.IsAbs(path)
158}
159
160// JoinPath behaves like filepath.Join,
161// but uses the build context's file system interface, if any.
162func JoinPath(ctxt *build.Context, path ...string) string {
163 if ctxt.JoinPath != nil {
164 return ctxt.JoinPath(path...)
165 }
166 return filepath.Join(path...)
167}
168
169// IsDir behaves like os.Stat plus IsDir,
170// but uses the build context's file system interface, if any.
171func IsDir(ctxt *build.Context, path string) bool {
172 if ctxt.IsDir != nil {
173 return ctxt.IsDir(path)
174 }
175 fi, err := os.Stat(path)
176 return err == nil && fi.IsDir()
177}
178
179// ReadDir behaves like ioutil.ReadDir,
180// but uses the build context's file system interface, if any.
181func ReadDir(ctxt *build.Context, path string) ([]os.FileInfo, error) {
182 if ctxt.ReadDir != nil {
183 return ctxt.ReadDir(path)
184 }
185 return ioutil.ReadDir(path)
186}
187
188// SplitPathList behaves like filepath.SplitList,
189// but uses the build context's file system interface, if any.
190func SplitPathList(ctxt *build.Context, s string) []string {
191 if ctxt.SplitPathList != nil {
192 return ctxt.SplitPathList(s)
193 }
194 return filepath.SplitList(s)
195}
196
197// sameFile returns true if x and y have the same basename and denote
198// the same file.
199//
200func sameFile(x, y string) bool {
201 if path.Clean(x) == path.Clean(y) {
202 return true
203 }
204 if filepath.Base(x) == filepath.Base(y) { // (optimisation)
205 if xi, err := os.Stat(x); err == nil {
206 if yi, err := os.Stat(y); err == nil {
207 return os.SameFile(xi, yi)
208 }
209 }
210 }
211 return false
212}
diff --git a/vendor/golang.org/x/tools/go/gcexportdata/gcexportdata.go b/vendor/golang.org/x/tools/go/gcexportdata/gcexportdata.go
new file mode 100644
index 0000000..f8363d8
--- /dev/null
+++ b/vendor/golang.org/x/tools/go/gcexportdata/gcexportdata.go
@@ -0,0 +1,109 @@
1// Copyright 2016 The Go Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style
3// license that can be found in the LICENSE file.
4
5// Package gcexportdata provides functions for locating, reading, and
6// writing export data files containing type information produced by the
7// gc compiler. This package supports go1.7 export data format and all
8// later versions.
9//
10// Although it might seem convenient for this package to live alongside
11// go/types in the standard library, this would cause version skew
12// problems for developer tools that use it, since they must be able to
13// consume the outputs of the gc compiler both before and after a Go
14// update such as from Go 1.7 to Go 1.8. Because this package lives in
15// golang.org/x/tools, sites can update their version of this repo some
16// time before the Go 1.8 release and rebuild and redeploy their
17// developer tools, which will then be able to consume both Go 1.7 and
18// Go 1.8 export data files, so they will work before and after the
19// Go update. (See discussion at https://golang.org/issue/15651.)
20//
21package gcexportdata // import "golang.org/x/tools/go/gcexportdata"
22
23import (
24 "bufio"
25 "bytes"
26 "fmt"
27 "go/token"
28 "go/types"
29 "io"
30 "io/ioutil"
31
32 "golang.org/x/tools/go/internal/gcimporter"
33)
34
35// Find returns the name of an object (.o) or archive (.a) file
36// containing type information for the specified import path,
37// using the workspace layout conventions of go/build.
38// If no file was found, an empty filename is returned.
39//
40// A relative srcDir is interpreted relative to the current working directory.
41//
42// Find also returns the package's resolved (canonical) import path,
43// reflecting the effects of srcDir and vendoring on importPath.
44func Find(importPath, srcDir string) (filename, path string) {
45 return gcimporter.FindPkg(importPath, srcDir)
46}
47
48// NewReader returns a reader for the export data section of an object
49// (.o) or archive (.a) file read from r. The new reader may provide
50// additional trailing data beyond the end of the export data.
51func NewReader(r io.Reader) (io.Reader, error) {
52 buf := bufio.NewReader(r)
53 _, err := gcimporter.FindExportData(buf)
54 // If we ever switch to a zip-like archive format with the ToC
55 // at the end, we can return the correct portion of export data,
56 // but for now we must return the entire rest of the file.
57 return buf, err
58}
59
60// Read reads export data from in, decodes it, and returns type
61// information for the package.
62// The package name is specified by path.
63// File position information is added to fset.
64//
65// Read may inspect and add to the imports map to ensure that references
66// within the export data to other packages are consistent. The caller
67// must ensure that imports[path] does not exist, or exists but is
68// incomplete (see types.Package.Complete), and Read inserts the
69// resulting package into this map entry.
70//
71// On return, the state of the reader is undefined.
72func Read(in io.Reader, fset *token.FileSet, imports map[string]*types.Package, path string) (*types.Package, error) {
73 data, err := ioutil.ReadAll(in)
74 if err != nil {
75 return nil, fmt.Errorf("reading export data for %q: %v", path, err)
76 }
77
78 if bytes.HasPrefix(data, []byte("!<arch>")) {
79 return nil, fmt.Errorf("can't read export data for %q directly from an archive file (call gcexportdata.NewReader first to extract export data)", path)
80 }
81
82 // The App Engine Go runtime v1.6 uses the old export data format.
83 // TODO(adonovan): delete once v1.7 has been around for a while.
84 if bytes.HasPrefix(data, []byte("package ")) {
85 return gcimporter.ImportData(imports, path, path, bytes.NewReader(data))
86 }
87
88 // The indexed export format starts with an 'i'; the older
89 // binary export format starts with a 'c', 'd', or 'v'
90 // (from "version"). Select appropriate importer.
91 if len(data) > 0 && data[0] == 'i' {
92 _, pkg, err := gcimporter.IImportData(fset, imports, data[1:], path)
93 return pkg, err
94 }
95
96 _, pkg, err := gcimporter.BImportData(fset, imports, data, path)
97 return pkg, err
98}
99
100// Write writes encoded type information for the specified package to out.
101// The FileSet provides file position information for named objects.
102func Write(out io.Writer, fset *token.FileSet, pkg *types.Package) error {
103 b, err := gcimporter.IExportData(fset, pkg)
104 if err != nil {
105 return err
106 }
107 _, err = out.Write(b)
108 return err
109}
diff --git a/vendor/golang.org/x/tools/go/gcexportdata/importer.go b/vendor/golang.org/x/tools/go/gcexportdata/importer.go
new file mode 100644
index 0000000..efe221e
--- /dev/null
+++ b/vendor/golang.org/x/tools/go/gcexportdata/importer.go
@@ -0,0 +1,73 @@
1// Copyright 2016 The Go Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style
3// license that can be found in the LICENSE file.
4
5package gcexportdata
6
7import (
8 "fmt"
9 "go/token"
10 "go/types"
11 "os"
12)
13
14// NewImporter returns a new instance of the types.Importer interface
15// that reads type information from export data files written by gc.
16// The Importer also satisfies types.ImporterFrom.
17//
18// Export data files are located using "go build" workspace conventions
19// and the build.Default context.
20//
21// Use this importer instead of go/importer.For("gc", ...) to avoid the
22// version-skew problems described in the documentation of this package,
23// or to control the FileSet or access the imports map populated during
24// package loading.
25//
26func NewImporter(fset *token.FileSet, imports map[string]*types.Package) types.ImporterFrom {
27 return importer{fset, imports}
28}
29
30type importer struct {
31 fset *token.FileSet
32 imports map[string]*types.Package
33}
34
35func (imp importer) Import(importPath string) (*types.Package, error) {
36 return imp.ImportFrom(importPath, "", 0)
37}
38
39func (imp importer) ImportFrom(importPath, srcDir string, mode types.ImportMode) (_ *types.Package, err error) {
40 filename, path := Find(importPath, srcDir)
41 if filename == "" {
42 if importPath == "unsafe" {
43 // Even for unsafe, call Find first in case
44 // the package was vendored.
45 return types.Unsafe, nil
46 }
47 return nil, fmt.Errorf("can't find import: %s", importPath)
48 }
49
50 if pkg, ok := imp.imports[path]; ok && pkg.Complete() {
51 return pkg, nil // cache hit
52 }
53
54 // open file
55 f, err := os.Open(filename)
56 if err != nil {
57 return nil, err
58 }
59 defer func() {
60 f.Close()
61 if err != nil {
62 // add file name to error
63 err = fmt.Errorf("reading export data: %s: %v", filename, err)
64 }
65 }()
66
67 r, err := NewReader(f)
68 if err != nil {
69 return nil, err
70 }
71
72 return Read(r, imp.fset, imp.imports, path)
73}
diff --git a/vendor/golang.org/x/tools/go/internal/gcimporter/bexport.go b/vendor/golang.org/x/tools/go/internal/gcimporter/bexport.go
new file mode 100644
index 0000000..a807d0a
--- /dev/null
+++ b/vendor/golang.org/x/tools/go/internal/gcimporter/bexport.go
@@ -0,0 +1,852 @@
1// Copyright 2016 The Go Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style
3// license that can be found in the LICENSE file.
4
5// Binary package export.
6// This file was derived from $GOROOT/src/cmd/compile/internal/gc/bexport.go;
7// see that file for specification of the format.
8
9package gcimporter
10
11import (
12 "bytes"
13 "encoding/binary"
14 "fmt"
15 "go/ast"
16 "go/constant"
17 "go/token"
18 "go/types"
19 "math"
20 "math/big"
21 "sort"
22 "strings"
23)
24
25// If debugFormat is set, each integer and string value is preceded by a marker
26// and position information in the encoding. This mechanism permits an importer
27// to recognize immediately when it is out of sync. The importer recognizes this
28// mode automatically (i.e., it can import export data produced with debugging
29// support even if debugFormat is not set at the time of import). This mode will
30// lead to massively larger export data (by a factor of 2 to 3) and should only
31// be enabled during development and debugging.
32//
33// NOTE: This flag is the first flag to enable if importing dies because of
34// (suspected) format errors, and whenever a change is made to the format.
35const debugFormat = false // default: false
36
37// If trace is set, debugging output is printed to std out.
38const trace = false // default: false
39
40// Current export format version. Increase with each format change.
41// Note: The latest binary (non-indexed) export format is at version 6.
42// This exporter is still at level 4, but it doesn't matter since
43// the binary importer can handle older versions just fine.
44// 6: package height (CL 105038) -- NOT IMPLEMENTED HERE
45// 5: improved position encoding efficiency (issue 20080, CL 41619) -- NOT IMPLEMEMTED HERE
46// 4: type name objects support type aliases, uses aliasTag
47// 3: Go1.8 encoding (same as version 2, aliasTag defined but never used)
48// 2: removed unused bool in ODCL export (compiler only)
49// 1: header format change (more regular), export package for _ struct fields
50// 0: Go1.7 encoding
51const exportVersion = 4
52
53// trackAllTypes enables cycle tracking for all types, not just named
54// types. The existing compiler invariants assume that unnamed types
55// that are not completely set up are not used, or else there are spurious
56// errors.
57// If disabled, only named types are tracked, possibly leading to slightly
58// less efficient encoding in rare cases. It also prevents the export of
59// some corner-case type declarations (but those are not handled correctly
60// with with the textual export format either).
61// TODO(gri) enable and remove once issues caused by it are fixed
62const trackAllTypes = false
63
64type exporter struct {
65 fset *token.FileSet
66 out bytes.Buffer
67
68 // object -> index maps, indexed in order of serialization
69 strIndex map[string]int
70 pkgIndex map[*types.Package]int
71 typIndex map[types.Type]int
72
73 // position encoding
74 posInfoFormat bool
75 prevFile string
76 prevLine int
77
78 // debugging support
79 written int // bytes written
80 indent int // for trace
81}
82
83// internalError represents an error generated inside this package.
84type internalError string
85
86func (e internalError) Error() string { return "gcimporter: " + string(e) }
87
88func internalErrorf(format string, args ...interface{}) error {
89 return internalError(fmt.Sprintf(format, args...))
90}
91
92// BExportData returns binary export data for pkg.
93// If no file set is provided, position info will be missing.
94func BExportData(fset *token.FileSet, pkg *types.Package) (b []byte, err error) {
95 defer func() {
96 if e := recover(); e != nil {
97 if ierr, ok := e.(internalError); ok {
98 err = ierr
99 return
100 }
101 // Not an internal error; panic again.
102 panic(e)
103 }
104 }()
105
106 p := exporter{
107 fset: fset,
108 strIndex: map[string]int{"": 0}, // empty string is mapped to 0
109 pkgIndex: make(map[*types.Package]int),
110 typIndex: make(map[types.Type]int),
111 posInfoFormat: true, // TODO(gri) might become a flag, eventually
112 }
113
114 // write version info
115 // The version string must start with "version %d" where %d is the version
116 // number. Additional debugging information may follow after a blank; that
117 // text is ignored by the importer.
118 p.rawStringln(fmt.Sprintf("version %d", exportVersion))
119 var debug string
120 if debugFormat {
121 debug = "debug"
122 }
123 p.rawStringln(debug) // cannot use p.bool since it's affected by debugFormat; also want to see this clearly
124 p.bool(trackAllTypes)
125 p.bool(p.posInfoFormat)
126
127 // --- generic export data ---
128
129 // populate type map with predeclared "known" types
130 for index, typ := range predeclared() {
131 p.typIndex[typ] = index
132 }
133 if len(p.typIndex) != len(predeclared()) {
134 return nil, internalError("duplicate entries in type map?")
135 }
136
137 // write package data
138 p.pkg(pkg, true)
139 if trace {
140 p.tracef("\n")
141 }
142
143 // write objects
144 objcount := 0
145 scope := pkg.Scope()
146 for _, name := range scope.Names() {
147 if !ast.IsExported(name) {
148 continue
149 }
150 if trace {
151 p.tracef("\n")
152 }
153 p.obj(scope.Lookup(name))
154 objcount++
155 }
156
157 // indicate end of list
158 if trace {
159 p.tracef("\n")
160 }
161 p.tag(endTag)
162
163 // for self-verification only (redundant)
164 p.int(objcount)
165
166 if trace {
167 p.tracef("\n")
168 }
169
170 // --- end of export data ---
171
172 return p.out.Bytes(), nil
173}
174
175func (p *exporter) pkg(pkg *types.Package, emptypath bool) {
176 if pkg == nil {
177 panic(internalError("unexpected nil pkg"))
178 }
179
180 // if we saw the package before, write its index (>= 0)
181 if i, ok := p.pkgIndex[pkg]; ok {
182 p.index('P', i)
183 return
184 }
185
186 // otherwise, remember the package, write the package tag (< 0) and package data
187 if trace {
188 p.tracef("P%d = { ", len(p.pkgIndex))
189 defer p.tracef("} ")
190 }
191 p.pkgIndex[pkg] = len(p.pkgIndex)
192
193 p.tag(packageTag)
194 p.string(pkg.Name())
195 if emptypath {
196 p.string("")
197 } else {
198 p.string(pkg.Path())
199 }
200}
201
202func (p *exporter) obj(obj types.Object) {
203 switch obj := obj.(type) {
204 case *types.Const:
205 p.tag(constTag)
206 p.pos(obj)
207 p.qualifiedName(obj)
208 p.typ(obj.Type())
209 p.value(obj.Val())
210
211 case *types.TypeName:
212 if obj.IsAlias() {
213 p.tag(aliasTag)
214 p.pos(obj)
215 p.qualifiedName(obj)
216 } else {
217 p.tag(typeTag)
218 }
219 p.typ(obj.Type())
220
221 case *types.Var:
222 p.tag(varTag)
223 p.pos(obj)
224 p.qualifiedName(obj)
225 p.typ(obj.Type())
226
227 case *types.Func:
228 p.tag(funcTag)
229 p.pos(obj)
230 p.qualifiedName(obj)
231 sig := obj.Type().(*types.Signature)
232 p.paramList(sig.Params(), sig.Variadic())
233 p.paramList(sig.Results(), false)
234
235 default:
236 panic(internalErrorf("unexpected object %v (%T)", obj, obj))
237 }
238}
239
240func (p *exporter) pos(obj types.Object) {
241 if !p.posInfoFormat {
242 return
243 }
244
245 file, line := p.fileLine(obj)
246 if file == p.prevFile {
247 // common case: write line delta
248 // delta == 0 means different file or no line change
249 delta := line - p.prevLine
250 p.int(delta)
251 if delta == 0 {
252 p.int(-1) // -1 means no file change
253 }
254 } else {
255 // different file
256 p.int(0)
257 // Encode filename as length of common prefix with previous
258 // filename, followed by (possibly empty) suffix. Filenames
259 // frequently share path prefixes, so this can save a lot
260 // of space and make export data size less dependent on file
261 // path length. The suffix is unlikely to be empty because
262 // file names tend to end in ".go".
263 n := commonPrefixLen(p.prevFile, file)
264 p.int(n) // n >= 0
265 p.string(file[n:]) // write suffix only
266 p.prevFile = file
267 p.int(line)
268 }
269 p.prevLine = line
270}
271
272func (p *exporter) fileLine(obj types.Object) (file string, line int) {
273 if p.fset != nil {
274 pos := p.fset.Position(obj.Pos())
275 file = pos.Filename
276 line = pos.Line
277 }
278 return
279}
280
281func commonPrefixLen(a, b string) int {
282 if len(a) > len(b) {
283 a, b = b, a
284 }
285 // len(a) <= len(b)
286 i := 0
287 for i < len(a) && a[i] == b[i] {
288 i++
289 }
290 return i
291}
292
293func (p *exporter) qualifiedName(obj types.Object) {
294 p.string(obj.Name())
295 p.pkg(obj.Pkg(), false)
296}
297
298func (p *exporter) typ(t types.Type) {
299 if t == nil {
300 panic(internalError("nil type"))
301 }
302
303 // Possible optimization: Anonymous pointer types *T where
304 // T is a named type are common. We could canonicalize all
305 // such types *T to a single type PT = *T. This would lead
306 // to at most one *T entry in typIndex, and all future *T's
307 // would be encoded as the respective index directly. Would
308 // save 1 byte (pointerTag) per *T and reduce the typIndex
309 // size (at the cost of a canonicalization map). We can do
310 // this later, without encoding format change.
311
312 // if we saw the type before, write its index (>= 0)
313 if i, ok := p.typIndex[t]; ok {
314 p.index('T', i)
315 return
316 }
317
318 // otherwise, remember the type, write the type tag (< 0) and type data
319 if trackAllTypes {
320 if trace {
321 p.tracef("T%d = {>\n", len(p.typIndex))
322 defer p.tracef("<\n} ")
323 }
324 p.typIndex[t] = len(p.typIndex)
325 }
326
327 switch t := t.(type) {
328 case *types.Named:
329 if !trackAllTypes {
330 // if we don't track all types, track named types now
331 p.typIndex[t] = len(p.typIndex)
332 }
333
334 p.tag(namedTag)
335 p.pos(t.Obj())
336 p.qualifiedName(t.Obj())
337 p.typ(t.Underlying())
338 if !types.IsInterface(t) {
339 p.assocMethods(t)
340 }
341
342 case *types.Array:
343 p.tag(arrayTag)
344 p.int64(t.Len())
345 p.typ(t.Elem())
346
347 case *types.Slice:
348 p.tag(sliceTag)
349 p.typ(t.Elem())
350
351 case *dddSlice:
352 p.tag(dddTag)
353 p.typ(t.elem)
354
355 case *types.Struct:
356 p.tag(structTag)
357 p.fieldList(t)
358
359 case *types.Pointer:
360 p.tag(pointerTag)
361 p.typ(t.Elem())
362
363 case *types.Signature:
364 p.tag(signatureTag)
365 p.paramList(t.Params(), t.Variadic())
366 p.paramList(t.Results(), false)
367
368 case *types.Interface:
369 p.tag(interfaceTag)
370 p.iface(t)
371
372 case *types.Map:
373 p.tag(mapTag)
374 p.typ(t.Key())
375 p.typ(t.Elem())
376
377 case *types.Chan:
378 p.tag(chanTag)
379 p.int(int(3 - t.Dir())) // hack
380 p.typ(t.Elem())
381
382 default:
383 panic(internalErrorf("unexpected type %T: %s", t, t))
384 }
385}
386
387func (p *exporter) assocMethods(named *types.Named) {
388 // Sort methods (for determinism).
389 var methods []*types.Func
390 for i := 0; i < named.NumMethods(); i++ {
391 methods = append(methods, named.Method(i))
392 }
393 sort.Sort(methodsByName(methods))
394
395 p.int(len(methods))
396
397 if trace && methods != nil {
398 p.tracef("associated methods {>\n")
399 }
400
401 for i, m := range methods {
402 if trace && i > 0 {
403 p.tracef("\n")
404 }
405
406 p.pos(m)
407 name := m.Name()
408 p.string(name)
409 if !exported(name) {
410 p.pkg(m.Pkg(), false)
411 }
412
413 sig := m.Type().(*types.Signature)
414 p.paramList(types.NewTuple(sig.Recv()), false)
415 p.paramList(sig.Params(), sig.Variadic())
416 p.paramList(sig.Results(), false)
417 p.int(0) // dummy value for go:nointerface pragma - ignored by importer
418 }
419
420 if trace && methods != nil {
421 p.tracef("<\n} ")
422 }
423}
424
425type methodsByName []*types.Func
426
427func (x methodsByName) Len() int { return len(x) }
428func (x methodsByName) Swap(i, j int) { x[i], x[j] = x[j], x[i] }
429func (x methodsByName) Less(i, j int) bool { return x[i].Name() < x[j].Name() }
430
431func (p *exporter) fieldList(t *types.Struct) {
432 if trace && t.NumFields() > 0 {
433 p.tracef("fields {>\n")
434 defer p.tracef("<\n} ")
435 }
436
437 p.int(t.NumFields())
438 for i := 0; i < t.NumFields(); i++ {
439 if trace && i > 0 {
440 p.tracef("\n")
441 }
442 p.field(t.Field(i))
443 p.string(t.Tag(i))
444 }
445}
446
447func (p *exporter) field(f *types.Var) {
448 if !f.IsField() {
449 panic(internalError("field expected"))
450 }
451
452 p.pos(f)
453 p.fieldName(f)
454 p.typ(f.Type())
455}
456
457func (p *exporter) iface(t *types.Interface) {
458 // TODO(gri): enable importer to load embedded interfaces,
459 // then emit Embeddeds and ExplicitMethods separately here.
460 p.int(0)
461
462 n := t.NumMethods()
463 if trace && n > 0 {
464 p.tracef("methods {>\n")
465 defer p.tracef("<\n} ")
466 }
467 p.int(n)
468 for i := 0; i < n; i++ {
469 if trace && i > 0 {
470 p.tracef("\n")
471 }
472 p.method(t.Method(i))
473 }
474}
475
476func (p *exporter) method(m *types.Func) {
477 sig := m.Type().(*types.Signature)
478 if sig.Recv() == nil {
479 panic(internalError("method expected"))
480 }
481
482 p.pos(m)
483 p.string(m.Name())
484 if m.Name() != "_" && !ast.IsExported(m.Name()) {
485 p.pkg(m.Pkg(), false)
486 }
487
488 // interface method; no need to encode receiver.
489 p.paramList(sig.Params(), sig.Variadic())
490 p.paramList(sig.Results(), false)
491}
492
493func (p *exporter) fieldName(f *types.Var) {
494 name := f.Name()
495
496 if f.Anonymous() {
497 // anonymous field - we distinguish between 3 cases:
498 // 1) field name matches base type name and is exported
499 // 2) field name matches base type name and is not exported
500 // 3) field name doesn't match base type name (alias name)
501 bname := basetypeName(f.Type())
502 if name == bname {
503 if ast.IsExported(name) {
504 name = "" // 1) we don't need to know the field name or package
505 } else {
506 name = "?" // 2) use unexported name "?" to force package export
507 }
508 } else {
509 // 3) indicate alias and export name as is
510 // (this requires an extra "@" but this is a rare case)
511 p.string("@")
512 }
513 }
514
515 p.string(name)
516 if name != "" && !ast.IsExported(name) {
517 p.pkg(f.Pkg(), false)
518 }
519}
520
521func basetypeName(typ types.Type) string {
522 switch typ := deref(typ).(type) {
523 case *types.Basic:
524 return typ.Name()
525 case *types.Named:
526 return typ.Obj().Name()
527 default:
528 return "" // unnamed type
529 }
530}
531
532func (p *exporter) paramList(params *types.Tuple, variadic bool) {
533 // use negative length to indicate unnamed parameters
534 // (look at the first parameter only since either all
535 // names are present or all are absent)
536 n := params.Len()
537 if n > 0 && params.At(0).Name() == "" {
538 n = -n
539 }
540 p.int(n)
541 for i := 0; i < params.Len(); i++ {
542 q := params.At(i)
543 t := q.Type()
544 if variadic && i == params.Len()-1 {
545 t = &dddSlice{t.(*types.Slice).Elem()}
546 }
547 p.typ(t)
548 if n > 0 {
549 name := q.Name()
550 p.string(name)
551 if name != "_" {
552 p.pkg(q.Pkg(), false)
553 }
554 }
555 p.string("") // no compiler-specific info
556 }
557}
558
559func (p *exporter) value(x constant.Value) {
560 if trace {
561 p.tracef("= ")
562 }
563
564 switch x.Kind() {
565 case constant.Bool:
566 tag := falseTag
567 if constant.BoolVal(x) {
568 tag = trueTag
569 }
570 p.tag(tag)
571
572 case constant.Int:
573 if v, exact := constant.Int64Val(x); exact {
574 // common case: x fits into an int64 - use compact encoding
575 p.tag(int64Tag)
576 p.int64(v)
577 return
578 }
579 // uncommon case: large x - use float encoding
580 // (powers of 2 will be encoded efficiently with exponent)
581 p.tag(floatTag)
582 p.float(constant.ToFloat(x))
583
584 case constant.Float:
585 p.tag(floatTag)
586 p.float(x)
587
588 case constant.Complex:
589 p.tag(complexTag)
590 p.float(constant.Real(x))
591 p.float(constant.Imag(x))
592
593 case constant.String:
594 p.tag(stringTag)
595 p.string(constant.StringVal(x))
596
597 case constant.Unknown:
598 // package contains type errors
599 p.tag(unknownTag)
600
601 default:
602 panic(internalErrorf("unexpected value %v (%T)", x, x))
603 }
604}
605
606func (p *exporter) float(x constant.Value) {
607 if x.Kind() != constant.Float {
608 panic(internalErrorf("unexpected constant %v, want float", x))
609 }
610 // extract sign (there is no -0)
611 sign := constant.Sign(x)
612 if sign == 0 {
613 // x == 0
614 p.int(0)
615 return
616 }
617 // x != 0
618
619 var f big.Float
620 if v, exact := constant.Float64Val(x); exact {
621 // float64
622 f.SetFloat64(v)
623 } else if num, denom := constant.Num(x), constant.Denom(x); num.Kind() == constant.Int {
624 // TODO(gri): add big.Rat accessor to constant.Value.
625 r := valueToRat(num)
626 f.SetRat(r.Quo(r, valueToRat(denom)))
627 } else {
628 // Value too large to represent as a fraction => inaccessible.
629 // TODO(gri): add big.Float accessor to constant.Value.
630 f.SetFloat64(math.MaxFloat64) // FIXME
631 }
632
633 // extract exponent such that 0.5 <= m < 1.0
634 var m big.Float
635 exp := f.MantExp(&m)
636
637 // extract mantissa as *big.Int
638 // - set exponent large enough so mant satisfies mant.IsInt()
639 // - get *big.Int from mant
640 m.SetMantExp(&m, int(m.MinPrec()))
641 mant, acc := m.Int(nil)
642 if acc != big.Exact {
643 panic(internalError("internal error"))
644 }
645
646 p.int(sign)
647 p.int(exp)
648 p.string(string(mant.Bytes()))
649}
650
651func valueToRat(x constant.Value) *big.Rat {
652 // Convert little-endian to big-endian.
653 // I can't believe this is necessary.
654 bytes := constant.Bytes(x)
655 for i := 0; i < len(bytes)/2; i++ {
656 bytes[i], bytes[len(bytes)-1-i] = bytes[len(bytes)-1-i], bytes[i]
657 }
658 return new(big.Rat).SetInt(new(big.Int).SetBytes(bytes))
659}
660
661func (p *exporter) bool(b bool) bool {
662 if trace {
663 p.tracef("[")
664 defer p.tracef("= %v] ", b)
665 }
666
667 x := 0
668 if b {
669 x = 1
670 }
671 p.int(x)
672 return b
673}
674
675// ----------------------------------------------------------------------------
676// Low-level encoders
677
678func (p *exporter) index(marker byte, index int) {
679 if index < 0 {
680 panic(internalError("invalid index < 0"))
681 }
682 if debugFormat {
683 p.marker('t')
684 }
685 if trace {
686 p.tracef("%c%d ", marker, index)
687 }
688 p.rawInt64(int64(index))
689}
690
691func (p *exporter) tag(tag int) {
692 if tag >= 0 {
693 panic(internalError("invalid tag >= 0"))
694 }
695 if debugFormat {
696 p.marker('t')
697 }
698 if trace {
699 p.tracef("%s ", tagString[-tag])
700 }
701 p.rawInt64(int64(tag))
702}
703
704func (p *exporter) int(x int) {
705 p.int64(int64(x))
706}
707
708func (p *exporter) int64(x int64) {
709 if debugFormat {
710 p.marker('i')
711 }
712 if trace {
713 p.tracef("%d ", x)
714 }
715 p.rawInt64(x)
716}
717
718func (p *exporter) string(s string) {
719 if debugFormat {
720 p.marker('s')
721 }
722 if trace {
723 p.tracef("%q ", s)
724 }
725 // if we saw the string before, write its index (>= 0)
726 // (the empty string is mapped to 0)
727 if i, ok := p.strIndex[s]; ok {
728 p.rawInt64(int64(i))
729 return
730 }
731 // otherwise, remember string and write its negative length and bytes
732 p.strIndex[s] = len(p.strIndex)
733 p.rawInt64(-int64(len(s)))
734 for i := 0; i < len(s); i++ {
735 p.rawByte(s[i])
736 }
737}
738
739// marker emits a marker byte and position information which makes
740// it easy for a reader to detect if it is "out of sync". Used for
741// debugFormat format only.
742func (p *exporter) marker(m byte) {
743 p.rawByte(m)
744 // Enable this for help tracking down the location
745 // of an incorrect marker when running in debugFormat.
746 if false && trace {
747 p.tracef("#%d ", p.written)
748 }
749 p.rawInt64(int64(p.written))
750}
751
752// rawInt64 should only be used by low-level encoders.
753func (p *exporter) rawInt64(x int64) {
754 var tmp [binary.MaxVarintLen64]byte
755 n := binary.PutVarint(tmp[:], x)
756 for i := 0; i < n; i++ {
757 p.rawByte(tmp[i])
758 }
759}
760
761// rawStringln should only be used to emit the initial version string.
762func (p *exporter) rawStringln(s string) {
763 for i := 0; i < len(s); i++ {
764 p.rawByte(s[i])
765 }
766 p.rawByte('\n')
767}
768
769// rawByte is the bottleneck interface to write to p.out.
770// rawByte escapes b as follows (any encoding does that
771// hides '$'):
772//
773// '$' => '|' 'S'
774// '|' => '|' '|'
775//
776// Necessary so other tools can find the end of the
777// export data by searching for "$$".
778// rawByte should only be used by low-level encoders.
779func (p *exporter) rawByte(b byte) {
780 switch b {
781 case '$':
782 // write '$' as '|' 'S'
783 b = 'S'
784 fallthrough
785 case '|':
786 // write '|' as '|' '|'
787 p.out.WriteByte('|')
788 p.written++
789 }
790 p.out.WriteByte(b)
791 p.written++
792}
793
794// tracef is like fmt.Printf but it rewrites the format string
795// to take care of indentation.
796func (p *exporter) tracef(format string, args ...interface{}) {
797 if strings.ContainsAny(format, "<>\n") {
798 var buf bytes.Buffer
799 for i := 0; i < len(format); i++ {
800 // no need to deal with runes
801 ch := format[i]
802 switch ch {
803 case '>':
804 p.indent++
805 continue
806 case '<':
807 p.indent--
808 continue
809 }
810 buf.WriteByte(ch)
811 if ch == '\n' {
812 for j := p.indent; j > 0; j-- {
813 buf.WriteString(". ")
814 }
815 }
816 }
817 format = buf.String()
818 }
819 fmt.Printf(format, args...)
820}
821
822// Debugging support.
823// (tagString is only used when tracing is enabled)
824var tagString = [...]string{
825 // Packages
826 -packageTag: "package",
827
828 // Types
829 -namedTag: "named type",
830 -arrayTag: "array",
831 -sliceTag: "slice",
832 -dddTag: "ddd",
833 -structTag: "struct",
834 -pointerTag: "pointer",
835 -signatureTag: "signature",
836 -interfaceTag: "interface",
837 -mapTag: "map",
838 -chanTag: "chan",
839
840 // Values
841 -falseTag: "false",
842 -trueTag: "true",
843 -int64Tag: "int64",
844 -floatTag: "float",
845 -fractionTag: "fraction",
846 -complexTag: "complex",
847 -stringTag: "string",
848 -unknownTag: "unknown",
849
850 // Type aliases
851 -aliasTag: "alias",
852}
diff --git a/vendor/golang.org/x/tools/go/internal/gcimporter/bimport.go b/vendor/golang.org/x/tools/go/internal/gcimporter/bimport.go
new file mode 100644
index 0000000..e9f73d1
--- /dev/null
+++ b/vendor/golang.org/x/tools/go/internal/gcimporter/bimport.go
@@ -0,0 +1,1039 @@
1// Copyright 2015 The Go Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style
3// license that can be found in the LICENSE file.
4
5// This file is a copy of $GOROOT/src/go/internal/gcimporter/bimport.go.
6
7package gcimporter
8
9import (
10 "encoding/binary"
11 "fmt"
12 "go/constant"
13 "go/token"
14 "go/types"
15 "sort"
16 "strconv"
17 "strings"
18 "sync"
19 "unicode"
20 "unicode/utf8"
21)
22
23type importer struct {
24 imports map[string]*types.Package
25 data []byte
26 importpath string
27 buf []byte // for reading strings
28 version int // export format version
29
30 // object lists
31 strList []string // in order of appearance
32 pathList []string // in order of appearance
33 pkgList []*types.Package // in order of appearance
34 typList []types.Type // in order of appearance
35 interfaceList []*types.Interface // for delayed completion only
36 trackAllTypes bool
37
38 // position encoding
39 posInfoFormat bool
40 prevFile string
41 prevLine int
42 fake fakeFileSet
43
44 // debugging support
45 debugFormat bool
46 read int // bytes read
47}
48
49// BImportData imports a package from the serialized package data
50// and returns the number of bytes consumed and a reference to the package.
51// If the export data version is not recognized or the format is otherwise
52// compromised, an error is returned.
53func BImportData(fset *token.FileSet, imports map[string]*types.Package, data []byte, path string) (_ int, pkg *types.Package, err error) {
54 // catch panics and return them as errors
55 const currentVersion = 6
56 version := -1 // unknown version
57 defer func() {
58 if e := recover(); e != nil {
59 // Return a (possibly nil or incomplete) package unchanged (see #16088).
60 if version > currentVersion {
61 err = fmt.Errorf("cannot import %q (%v), export data is newer version - update tool", path, e)
62 } else {
63 err = fmt.Errorf("cannot import %q (%v), possibly version skew - reinstall package", path, e)
64 }
65 }
66 }()
67
68 p := importer{
69 imports: imports,
70 data: data,
71 importpath: path,
72 version: version,
73 strList: []string{""}, // empty string is mapped to 0
74 pathList: []string{""}, // empty string is mapped to 0
75 fake: fakeFileSet{
76 fset: fset,
77 files: make(map[string]*token.File),
78 },
79 }
80
81 // read version info
82 var versionstr string
83 if b := p.rawByte(); b == 'c' || b == 'd' {
84 // Go1.7 encoding; first byte encodes low-level
85 // encoding format (compact vs debug).
86 // For backward-compatibility only (avoid problems with
87 // old installed packages). Newly compiled packages use
88 // the extensible format string.
89 // TODO(gri) Remove this support eventually; after Go1.8.
90 if b == 'd' {
91 p.debugFormat = true
92 }
93 p.trackAllTypes = p.rawByte() == 'a'
94 p.posInfoFormat = p.int() != 0
95 versionstr = p.string()
96 if versionstr == "v1" {
97 version = 0
98 }
99 } else {
100 // Go1.8 extensible encoding
101 // read version string and extract version number (ignore anything after the version number)
102 versionstr = p.rawStringln(b)
103 if s := strings.SplitN(versionstr, " ", 3); len(s) >= 2 && s[0] == "version" {
104 if v, err := strconv.Atoi(s[1]); err == nil && v > 0 {
105 version = v
106 }
107 }
108 }
109 p.version = version
110
111 // read version specific flags - extend as necessary
112 switch p.version {
113 // case currentVersion:
114 // ...
115 // fallthrough
116 case currentVersion, 5, 4, 3, 2, 1:
117 p.debugFormat = p.rawStringln(p.rawByte()) == "debug"
118 p.trackAllTypes = p.int() != 0
119 p.posInfoFormat = p.int() != 0
120 case 0:
121 // Go1.7 encoding format - nothing to do here
122 default:
123 errorf("unknown bexport format version %d (%q)", p.version, versionstr)
124 }
125
126 // --- generic export data ---
127
128 // populate typList with predeclared "known" types
129 p.typList = append(p.typList, predeclared()...)
130
131 // read package data
132 pkg = p.pkg()
133
134 // read objects of phase 1 only (see cmd/compile/internal/gc/bexport.go)
135 objcount := 0
136 for {
137 tag := p.tagOrIndex()
138 if tag == endTag {
139 break
140 }
141 p.obj(tag)
142 objcount++
143 }
144
145 // self-verification
146 if count := p.int(); count != objcount {
147 errorf("got %d objects; want %d", objcount, count)
148 }
149
150 // ignore compiler-specific import data
151
152 // complete interfaces
153 // TODO(gri) re-investigate if we still need to do this in a delayed fashion
154 for _, typ := range p.interfaceList {
155 typ.Complete()
156 }
157
158 // record all referenced packages as imports
159 list := append(([]*types.Package)(nil), p.pkgList[1:]...)
160 sort.Sort(byPath(list))
161 pkg.SetImports(list)
162
163 // package was imported completely and without errors
164 pkg.MarkComplete()
165
166 return p.read, pkg, nil
167}
168
169func errorf(format string, args ...interface{}) {
170 panic(fmt.Sprintf(format, args...))
171}
172
173func (p *importer) pkg() *types.Package {
174 // if the package was seen before, i is its index (>= 0)
175 i := p.tagOrIndex()
176 if i >= 0 {
177 return p.pkgList[i]
178 }
179
180 // otherwise, i is the package tag (< 0)
181 if i != packageTag {
182 errorf("unexpected package tag %d version %d", i, p.version)
183 }
184
185 // read package data
186 name := p.string()
187 var path string
188 if p.version >= 5 {
189 path = p.path()
190 } else {
191 path = p.string()
192 }
193 if p.version >= 6 {
194 p.int() // package height; unused by go/types
195 }
196
197 // we should never see an empty package name
198 if name == "" {
199 errorf("empty package name in import")
200 }
201
202 // an empty path denotes the package we are currently importing;
203 // it must be the first package we see
204 if (path == "") != (len(p.pkgList) == 0) {
205 errorf("package path %q for pkg index %d", path, len(p.pkgList))
206 }
207
208 // if the package was imported before, use that one; otherwise create a new one
209 if path == "" {
210 path = p.importpath
211 }
212 pkg := p.imports[path]
213 if pkg == nil {
214 pkg = types.NewPackage(path, name)
215 p.imports[path] = pkg
216 } else if pkg.Name() != name {
217 errorf("conflicting names %s and %s for package %q", pkg.Name(), name, path)
218 }
219 p.pkgList = append(p.pkgList, pkg)
220
221 return pkg
222}
223
224// objTag returns the tag value for each object kind.
225func objTag(obj types.Object) int {
226 switch obj.(type) {
227 case *types.Const:
228 return constTag
229 case *types.TypeName:
230 return typeTag
231 case *types.Var:
232 return varTag
233 case *types.Func:
234 return funcTag
235 default:
236 errorf("unexpected object: %v (%T)", obj, obj) // panics
237 panic("unreachable")
238 }
239}
240
241func sameObj(a, b types.Object) bool {
242 // Because unnamed types are not canonicalized, we cannot simply compare types for
243 // (pointer) identity.
244 // Ideally we'd check equality of constant values as well, but this is good enough.
245 return objTag(a) == objTag(b) && types.Identical(a.Type(), b.Type())
246}
247
248func (p *importer) declare(obj types.Object) {
249 pkg := obj.Pkg()
250 if alt := pkg.Scope().Insert(obj); alt != nil {
251 // This can only trigger if we import a (non-type) object a second time.
252 // Excluding type aliases, this cannot happen because 1) we only import a package
253 // once; and b) we ignore compiler-specific export data which may contain
254 // functions whose inlined function bodies refer to other functions that
255 // were already imported.
256 // However, type aliases require reexporting the original type, so we need
257 // to allow it (see also the comment in cmd/compile/internal/gc/bimport.go,
258 // method importer.obj, switch case importing functions).
259 // TODO(gri) review/update this comment once the gc compiler handles type aliases.
260 if !sameObj(obj, alt) {
261 errorf("inconsistent import:\n\t%v\npreviously imported as:\n\t%v\n", obj, alt)
262 }
263 }
264}
265
266func (p *importer) obj(tag int) {
267 switch tag {
268 case constTag:
269 pos := p.pos()
270 pkg, name := p.qualifiedName()
271 typ := p.typ(nil, nil)
272 val := p.value()
273 p.declare(types.NewConst(pos, pkg, name, typ, val))
274
275 case aliasTag:
276 // TODO(gri) verify type alias hookup is correct
277 pos := p.pos()
278 pkg, name := p.qualifiedName()
279 typ := p.typ(nil, nil)
280 p.declare(types.NewTypeName(pos, pkg, name, typ))
281
282 case typeTag:
283 p.typ(nil, nil)
284
285 case varTag:
286 pos := p.pos()
287 pkg, name := p.qualifiedName()
288 typ := p.typ(nil, nil)
289 p.declare(types.NewVar(pos, pkg, name, typ))
290
291 case funcTag:
292 pos := p.pos()
293 pkg, name := p.qualifiedName()
294 params, isddd := p.paramList()
295 result, _ := p.paramList()
296 sig := types.NewSignature(nil, params, result, isddd)
297 p.declare(types.NewFunc(pos, pkg, name, sig))
298
299 default:
300 errorf("unexpected object tag %d", tag)
301 }
302}
303
304const deltaNewFile = -64 // see cmd/compile/internal/gc/bexport.go
305
306func (p *importer) pos() token.Pos {
307 if !p.posInfoFormat {
308 return token.NoPos
309 }
310
311 file := p.prevFile
312 line := p.prevLine
313 delta := p.int()
314 line += delta
315 if p.version >= 5 {
316 if delta == deltaNewFile {
317 if n := p.int(); n >= 0 {
318 // file changed
319 file = p.path()
320 line = n
321 }
322 }
323 } else {
324 if delta == 0 {
325 if n := p.int(); n >= 0 {
326 // file changed
327 file = p.prevFile[:n] + p.string()
328 line = p.int()
329 }
330 }
331 }
332 p.prevFile = file
333 p.prevLine = line
334
335 return p.fake.pos(file, line, 0)
336}
337
338// Synthesize a token.Pos
339type fakeFileSet struct {
340 fset *token.FileSet
341 files map[string]*token.File
342}
343
344func (s *fakeFileSet) pos(file string, line, column int) token.Pos {
345 // TODO(mdempsky): Make use of column.
346
347 // Since we don't know the set of needed file positions, we
348 // reserve maxlines positions per file.
349 const maxlines = 64 * 1024
350 f := s.files[file]
351 if f == nil {
352 f = s.fset.AddFile(file, -1, maxlines)
353 s.files[file] = f
354 // Allocate the fake linebreak indices on first use.
355 // TODO(adonovan): opt: save ~512KB using a more complex scheme?
356 fakeLinesOnce.Do(func() {
357 fakeLines = make([]int, maxlines)
358 for i := range fakeLines {
359 fakeLines[i] = i
360 }
361 })
362 f.SetLines(fakeLines)
363 }
364
365 if line > maxlines {
366 line = 1
367 }
368
369 // Treat the file as if it contained only newlines
370 // and column=1: use the line number as the offset.
371 return f.Pos(line - 1)
372}
373
374var (
375 fakeLines []int
376 fakeLinesOnce sync.Once
377)
378
379func (p *importer) qualifiedName() (pkg *types.Package, name string) {
380 name = p.string()
381 pkg = p.pkg()
382 return
383}
384
385func (p *importer) record(t types.Type) {
386 p.typList = append(p.typList, t)
387}
388
389// A dddSlice is a types.Type representing ...T parameters.
390// It only appears for parameter types and does not escape
391// the importer.
392type dddSlice struct {
393 elem types.Type
394}
395
396func (t *dddSlice) Underlying() types.Type { return t }
397func (t *dddSlice) String() string { return "..." + t.elem.String() }
398
399// parent is the package which declared the type; parent == nil means
400// the package currently imported. The parent package is needed for
401// exported struct fields and interface methods which don't contain
402// explicit package information in the export data.
403//
404// A non-nil tname is used as the "owner" of the result type; i.e.,
405// the result type is the underlying type of tname. tname is used
406// to give interface methods a named receiver type where possible.
407func (p *importer) typ(parent *types.Package, tname *types.Named) types.Type {
408 // if the type was seen before, i is its index (>= 0)
409 i := p.tagOrIndex()
410 if i >= 0 {
411 return p.typList[i]
412 }
413
414 // otherwise, i is the type tag (< 0)
415 switch i {
416 case namedTag:
417 // read type object
418 pos := p.pos()
419 parent, name := p.qualifiedName()
420 scope := parent.Scope()
421 obj := scope.Lookup(name)
422
423 // if the object doesn't exist yet, create and insert it
424 if obj == nil {
425 obj = types.NewTypeName(pos, parent, name, nil)
426 scope.Insert(obj)
427 }
428
429 if _, ok := obj.(*types.TypeName); !ok {
430 errorf("pkg = %s, name = %s => %s", parent, name, obj)
431 }
432
433 // associate new named type with obj if it doesn't exist yet
434 t0 := types.NewNamed(obj.(*types.TypeName), nil, nil)
435
436 // but record the existing type, if any
437 tname := obj.Type().(*types.Named) // tname is either t0 or the existing type
438 p.record(tname)
439
440 // read underlying type
441 t0.SetUnderlying(p.typ(parent, t0))
442
443 // interfaces don't have associated methods
444 if types.IsInterface(t0) {
445 return tname
446 }
447
448 // read associated methods
449 for i := p.int(); i > 0; i-- {
450 // TODO(gri) replace this with something closer to fieldName
451 pos := p.pos()
452 name := p.string()
453 if !exported(name) {
454 p.pkg()
455 }
456
457 recv, _ := p.paramList() // TODO(gri) do we need a full param list for the receiver?
458 params, isddd := p.paramList()
459 result, _ := p.paramList()
460 p.int() // go:nointerface pragma - discarded
461
462 sig := types.NewSignature(recv.At(0), params, result, isddd)
463 t0.AddMethod(types.NewFunc(pos, parent, name, sig))
464 }
465
466 return tname
467
468 case arrayTag:
469 t := new(types.Array)
470 if p.trackAllTypes {
471 p.record(t)
472 }
473
474 n := p.int64()
475 *t = *types.NewArray(p.typ(parent, nil), n)
476 return t
477
478 case sliceTag:
479 t := new(types.Slice)
480 if p.trackAllTypes {
481 p.record(t)
482 }
483
484 *t = *types.NewSlice(p.typ(parent, nil))
485 return t
486
487 case dddTag:
488 t := new(dddSlice)
489 if p.trackAllTypes {
490 p.record(t)
491 }
492
493 t.elem = p.typ(parent, nil)
494 return t
495
496 case structTag:
497 t := new(types.Struct)
498 if p.trackAllTypes {
499 p.record(t)
500 }
501
502 *t = *types.NewStruct(p.fieldList(parent))
503 return t
504
505 case pointerTag:
506 t := new(types.Pointer)
507 if p.trackAllTypes {
508 p.record(t)
509 }
510
511 *t = *types.NewPointer(p.typ(parent, nil))
512 return t
513
514 case signatureTag:
515 t := new(types.Signature)
516 if p.trackAllTypes {
517 p.record(t)
518 }
519
520 params, isddd := p.paramList()
521 result, _ := p.paramList()
522 *t = *types.NewSignature(nil, params, result, isddd)
523 return t
524
525 case interfaceTag:
526 // Create a dummy entry in the type list. This is safe because we
527 // cannot expect the interface type to appear in a cycle, as any
528 // such cycle must contain a named type which would have been
529 // first defined earlier.
530 // TODO(gri) Is this still true now that we have type aliases?
531 // See issue #23225.
532 n := len(p.typList)
533 if p.trackAllTypes {
534 p.record(nil)
535 }
536
537 var embeddeds []types.Type
538 for n := p.int(); n > 0; n-- {
539 p.pos()
540 embeddeds = append(embeddeds, p.typ(parent, nil))
541 }
542
543 t := newInterface(p.methodList(parent, tname), embeddeds)
544 p.interfaceList = append(p.interfaceList, t)
545 if p.trackAllTypes {
546 p.typList[n] = t
547 }
548 return t
549
550 case mapTag:
551 t := new(types.Map)
552 if p.trackAllTypes {
553 p.record(t)
554 }
555
556 key := p.typ(parent, nil)
557 val := p.typ(parent, nil)
558 *t = *types.NewMap(key, val)
559 return t
560
561 case chanTag:
562 t := new(types.Chan)
563 if p.trackAllTypes {
564 p.record(t)
565 }
566
567 dir := chanDir(p.int())
568 val := p.typ(parent, nil)
569 *t = *types.NewChan(dir, val)
570 return t
571
572 default:
573 errorf("unexpected type tag %d", i) // panics
574 panic("unreachable")
575 }
576}
577
578func chanDir(d int) types.ChanDir {
579 // tag values must match the constants in cmd/compile/internal/gc/go.go
580 switch d {
581 case 1 /* Crecv */ :
582 return types.RecvOnly
583 case 2 /* Csend */ :
584 return types.SendOnly
585 case 3 /* Cboth */ :
586 return types.SendRecv
587 default:
588 errorf("unexpected channel dir %d", d)
589 return 0
590 }
591}
592
593func (p *importer) fieldList(parent *types.Package) (fields []*types.Var, tags []string) {
594 if n := p.int(); n > 0 {
595 fields = make([]*types.Var, n)
596 tags = make([]string, n)
597 for i := range fields {
598 fields[i], tags[i] = p.field(parent)
599 }
600 }
601 return
602}
603
604func (p *importer) field(parent *types.Package) (*types.Var, string) {
605 pos := p.pos()
606 pkg, name, alias := p.fieldName(parent)
607 typ := p.typ(parent, nil)
608 tag := p.string()
609
610 anonymous := false
611 if name == "" {
612 // anonymous field - typ must be T or *T and T must be a type name
613 switch typ := deref(typ).(type) {
614 case *types.Basic: // basic types are named types
615 pkg = nil // // objects defined in Universe scope have no package
616 name = typ.Name()
617 case *types.Named:
618 name = typ.Obj().Name()
619 default:
620 errorf("named base type expected")
621 }
622 anonymous = true
623 } else if alias {
624 // anonymous field: we have an explicit name because it's an alias
625 anonymous = true
626 }
627
628 return types.NewField(pos, pkg, name, typ, anonymous), tag
629}
630
631func (p *importer) methodList(parent *types.Package, baseType *types.Named) (methods []*types.Func) {
632 if n := p.int(); n > 0 {
633 methods = make([]*types.Func, n)
634 for i := range methods {
635 methods[i] = p.method(parent, baseType)
636 }
637 }
638 return
639}
640
641func (p *importer) method(parent *types.Package, baseType *types.Named) *types.Func {
642 pos := p.pos()
643 pkg, name, _ := p.fieldName(parent)
644 // If we don't have a baseType, use a nil receiver.
645 // A receiver using the actual interface type (which
646 // we don't know yet) will be filled in when we call
647 // types.Interface.Complete.
648 var recv *types.Var
649 if baseType != nil {
650 recv = types.NewVar(token.NoPos, parent, "", baseType)
651 }
652 params, isddd := p.paramList()
653 result, _ := p.paramList()
654 sig := types.NewSignature(recv, params, result, isddd)
655 return types.NewFunc(pos, pkg, name, sig)
656}
657
658func (p *importer) fieldName(parent *types.Package) (pkg *types.Package, name string, alias bool) {
659 name = p.string()
660 pkg = parent
661 if pkg == nil {
662 // use the imported package instead
663 pkg = p.pkgList[0]
664 }
665 if p.version == 0 && name == "_" {
666 // version 0 didn't export a package for _ fields
667 return
668 }
669 switch name {
670 case "":
671 // 1) field name matches base type name and is exported: nothing to do
672 case "?":
673 // 2) field name matches base type name and is not exported: need package
674 name = ""
675 pkg = p.pkg()
676 case "@":
677 // 3) field name doesn't match type name (alias)
678 name = p.string()
679 alias = true
680 fallthrough
681 default:
682 if !exported(name) {
683 pkg = p.pkg()
684 }
685 }
686 return
687}
688
689func (p *importer) paramList() (*types.Tuple, bool) {
690 n := p.int()
691 if n == 0 {
692 return nil, false
693 }
694 // negative length indicates unnamed parameters
695 named := true
696 if n < 0 {
697 n = -n
698 named = false
699 }
700 // n > 0
701 params := make([]*types.Var, n)
702 isddd := false
703 for i := range params {
704 params[i], isddd = p.param(named)
705 }
706 return types.NewTuple(params...), isddd
707}
708
709func (p *importer) param(named bool) (*types.Var, bool) {
710 t := p.typ(nil, nil)
711 td, isddd := t.(*dddSlice)
712 if isddd {
713 t = types.NewSlice(td.elem)
714 }
715
716 var pkg *types.Package
717 var name string
718 if named {
719 name = p.string()
720 if name == "" {
721 errorf("expected named parameter")
722 }
723 if name != "_" {
724 pkg = p.pkg()
725 }
726 if i := strings.Index(name, "·"); i > 0 {
727 name = name[:i] // cut off gc-specific parameter numbering
728 }
729 }
730
731 // read and discard compiler-specific info
732 p.string()
733
734 return types.NewVar(token.NoPos, pkg, name, t), isddd
735}
736
737func exported(name string) bool {
738 ch, _ := utf8.DecodeRuneInString(name)
739 return unicode.IsUpper(ch)
740}
741
742func (p *importer) value() constant.Value {
743 switch tag := p.tagOrIndex(); tag {
744 case falseTag:
745 return constant.MakeBool(false)
746 case trueTag:
747 return constant.MakeBool(true)
748 case int64Tag:
749 return constant.MakeInt64(p.int64())
750 case floatTag:
751 return p.float()
752 case complexTag:
753 re := p.float()
754 im := p.float()
755 return constant.BinaryOp(re, token.ADD, constant.MakeImag(im))
756 case stringTag:
757 return constant.MakeString(p.string())
758 case unknownTag:
759 return constant.MakeUnknown()
760 default:
761 errorf("unexpected value tag %d", tag) // panics
762 panic("unreachable")
763 }
764}
765
766func (p *importer) float() constant.Value {
767 sign := p.int()
768 if sign == 0 {
769 return constant.MakeInt64(0)
770 }
771
772 exp := p.int()
773 mant := []byte(p.string()) // big endian
774
775 // remove leading 0's if any
776 for len(mant) > 0 && mant[0] == 0 {
777 mant = mant[1:]
778 }
779
780 // convert to little endian
781 // TODO(gri) go/constant should have a more direct conversion function
782 // (e.g., once it supports a big.Float based implementation)
783 for i, j := 0, len(mant)-1; i < j; i, j = i+1, j-1 {
784 mant[i], mant[j] = mant[j], mant[i]
785 }
786
787 // adjust exponent (constant.MakeFromBytes creates an integer value,
788 // but mant represents the mantissa bits such that 0.5 <= mant < 1.0)
789 exp -= len(mant) << 3
790 if len(mant) > 0 {
791 for msd := mant[len(mant)-1]; msd&0x80 == 0; msd <<= 1 {
792 exp++
793 }
794 }
795
796 x := constant.MakeFromBytes(mant)
797 switch {
798 case exp < 0:
799 d := constant.Shift(constant.MakeInt64(1), token.SHL, uint(-exp))
800 x = constant.BinaryOp(x, token.QUO, d)
801 case exp > 0:
802 x = constant.Shift(x, token.SHL, uint(exp))
803 }
804
805 if sign < 0 {
806 x = constant.UnaryOp(token.SUB, x, 0)
807 }
808 return x
809}
810
811// ----------------------------------------------------------------------------
812// Low-level decoders
813
814func (p *importer) tagOrIndex() int {
815 if p.debugFormat {
816 p.marker('t')
817 }
818
819 return int(p.rawInt64())
820}
821
822func (p *importer) int() int {
823 x := p.int64()
824 if int64(int(x)) != x {
825 errorf("exported integer too large")
826 }
827 return int(x)
828}
829
830func (p *importer) int64() int64 {
831 if p.debugFormat {
832 p.marker('i')
833 }
834
835 return p.rawInt64()
836}
837
838func (p *importer) path() string {
839 if p.debugFormat {
840 p.marker('p')
841 }
842 // if the path was seen before, i is its index (>= 0)
843 // (the empty string is at index 0)
844 i := p.rawInt64()
845 if i >= 0 {
846 return p.pathList[i]
847 }
848 // otherwise, i is the negative path length (< 0)
849 a := make([]string, -i)
850 for n := range a {
851 a[n] = p.string()
852 }
853 s := strings.Join(a, "/")
854 p.pathList = append(p.pathList, s)
855 return s
856}
857
858func (p *importer) string() string {
859 if p.debugFormat {
860 p.marker('s')
861 }
862 // if the string was seen before, i is its index (>= 0)
863 // (the empty string is at index 0)
864 i := p.rawInt64()
865 if i >= 0 {
866 return p.strList[i]
867 }
868 // otherwise, i is the negative string length (< 0)
869 if n := int(-i); n <= cap(p.buf) {
870 p.buf = p.buf[:n]
871 } else {
872 p.buf = make([]byte, n)
873 }
874 for i := range p.buf {
875 p.buf[i] = p.rawByte()
876 }
877 s := string(p.buf)
878 p.strList = append(p.strList, s)
879 return s
880}
881
882func (p *importer) marker(want byte) {
883 if got := p.rawByte(); got != want {
884 errorf("incorrect marker: got %c; want %c (pos = %d)", got, want, p.read)
885 }
886
887 pos := p.read
888 if n := int(p.rawInt64()); n != pos {
889 errorf("incorrect position: got %d; want %d", n, pos)
890 }
891}
892
893// rawInt64 should only be used by low-level decoders.
894func (p *importer) rawInt64() int64 {
895 i, err := binary.ReadVarint(p)
896 if err != nil {
897 errorf("read error: %v", err)
898 }
899 return i
900}
901
902// rawStringln should only be used to read the initial version string.
903func (p *importer) rawStringln(b byte) string {
904 p.buf = p.buf[:0]
905 for b != '\n' {
906 p.buf = append(p.buf, b)
907 b = p.rawByte()
908 }
909 return string(p.buf)
910}
911
912// needed for binary.ReadVarint in rawInt64
913func (p *importer) ReadByte() (byte, error) {
914 return p.rawByte(), nil
915}
916
917// byte is the bottleneck interface for reading p.data.
918// It unescapes '|' 'S' to '$' and '|' '|' to '|'.
919// rawByte should only be used by low-level decoders.
920func (p *importer) rawByte() byte {
921 b := p.data[0]
922 r := 1
923 if b == '|' {
924 b = p.data[1]
925 r = 2
926 switch b {
927 case 'S':
928 b = '$'
929 case '|':
930 // nothing to do
931 default:
932 errorf("unexpected escape sequence in export data")
933 }
934 }
935 p.data = p.data[r:]
936 p.read += r
937 return b
938
939}
940
941// ----------------------------------------------------------------------------
942// Export format
943
944// Tags. Must be < 0.
945const (
946 // Objects
947 packageTag = -(iota + 1)
948 constTag
949 typeTag
950 varTag
951 funcTag
952 endTag
953
954 // Types
955 namedTag
956 arrayTag
957 sliceTag
958 dddTag
959 structTag
960 pointerTag
961 signatureTag
962 interfaceTag
963 mapTag
964 chanTag
965
966 // Values
967 falseTag
968 trueTag
969 int64Tag
970 floatTag
971 fractionTag // not used by gc
972 complexTag
973 stringTag
974 nilTag // only used by gc (appears in exported inlined function bodies)
975 unknownTag // not used by gc (only appears in packages with errors)
976
977 // Type aliases
978 aliasTag
979)
980
981var predeclOnce sync.Once
982var predecl []types.Type // initialized lazily
983
984func predeclared() []types.Type {
985 predeclOnce.Do(func() {
986 // initialize lazily to be sure that all
987 // elements have been initialized before
988 predecl = []types.Type{ // basic types
989 types.Typ[types.Bool],
990 types.Typ[types.Int],
991 types.Typ[types.Int8],
992 types.Typ[types.Int16],
993 types.Typ[types.Int32],
994 types.Typ[types.Int64],
995 types.Typ[types.Uint],
996 types.Typ[types.Uint8],
997 types.Typ[types.Uint16],
998 types.Typ[types.Uint32],
999 types.Typ[types.Uint64],
1000 types.Typ[types.Uintptr],
1001 types.Typ[types.Float32],
1002 types.Typ[types.Float64],
1003 types.Typ[types.Complex64],
1004 types.Typ[types.Complex128],
1005 types.Typ[types.String],
1006
1007 // basic type aliases
1008 types.Universe.Lookup("byte").Type(),
1009 types.Universe.Lookup("rune").Type(),
1010
1011 // error
1012 types.Universe.Lookup("error").Type(),
1013
1014 // untyped types
1015 types.Typ[types.UntypedBool],
1016 types.Typ[types.UntypedInt],
1017 types.Typ[types.UntypedRune],
1018 types.Typ[types.UntypedFloat],
1019 types.Typ[types.UntypedComplex],
1020 types.Typ[types.UntypedString],
1021 types.Typ[types.UntypedNil],
1022
1023 // package unsafe
1024 types.Typ[types.UnsafePointer],
1025
1026 // invalid type
1027 types.Typ[types.Invalid], // only appears in packages with errors
1028
1029 // used internally by gc; never used by this package or in .a files
1030 anyType{},
1031 }
1032 })
1033 return predecl
1034}
1035
1036type anyType struct{}
1037
1038func (t anyType) Underlying() types.Type { return t }
1039func (t anyType) String() string { return "any" }
diff --git a/vendor/golang.org/x/tools/go/internal/gcimporter/exportdata.go b/vendor/golang.org/x/tools/go/internal/gcimporter/exportdata.go
new file mode 100644
index 0000000..f33dc56
--- /dev/null
+++ b/vendor/golang.org/x/tools/go/internal/gcimporter/exportdata.go
@@ -0,0 +1,93 @@
1// Copyright 2011 The Go Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style
3// license that can be found in the LICENSE file.
4
5// This file is a copy of $GOROOT/src/go/internal/gcimporter/exportdata.go.
6
7// This file implements FindExportData.
8
9package gcimporter
10
11import (
12 "bufio"
13 "fmt"
14 "io"
15 "strconv"
16 "strings"
17)
18
19func readGopackHeader(r *bufio.Reader) (name string, size int, err error) {
20 // See $GOROOT/include/ar.h.
21 hdr := make([]byte, 16+12+6+6+8+10+2)
22 _, err = io.ReadFull(r, hdr)
23 if err != nil {
24 return
25 }
26 // leave for debugging
27 if false {
28 fmt.Printf("header: %s", hdr)
29 }
30 s := strings.TrimSpace(string(hdr[16+12+6+6+8:][:10]))
31 size, err = strconv.Atoi(s)
32 if err != nil || hdr[len(hdr)-2] != '`' || hdr[len(hdr)-1] != '\n' {
33 err = fmt.Errorf("invalid archive header")
34 return
35 }
36 name = strings.TrimSpace(string(hdr[:16]))
37 return
38}
39
40// FindExportData positions the reader r at the beginning of the
41// export data section of an underlying GC-created object/archive
42// file by reading from it. The reader must be positioned at the
43// start of the file before calling this function. The hdr result
44// is the string before the export data, either "$$" or "$$B".
45//
46func FindExportData(r *bufio.Reader) (hdr string, err error) {
47 // Read first line to make sure this is an object file.
48 line, err := r.ReadSlice('\n')
49 if err != nil {
50 err = fmt.Errorf("can't find export data (%v)", err)
51 return
52 }
53
54 if string(line) == "!<arch>\n" {
55 // Archive file. Scan to __.PKGDEF.
56 var name string
57 if name, _, err = readGopackHeader(r); err != nil {
58 return
59 }
60
61 // First entry should be __.PKGDEF.
62 if name != "__.PKGDEF" {
63 err = fmt.Errorf("go archive is missing __.PKGDEF")
64 return
65 }
66
67 // Read first line of __.PKGDEF data, so that line
68 // is once again the first line of the input.
69 if line, err = r.ReadSlice('\n'); err != nil {
70 err = fmt.Errorf("can't find export data (%v)", err)
71 return
72 }
73 }
74
75 // Now at __.PKGDEF in archive or still at beginning of file.
76 // Either way, line should begin with "go object ".
77 if !strings.HasPrefix(string(line), "go object ") {
78 err = fmt.Errorf("not a Go object file")
79 return
80 }
81
82 // Skip over object header to export data.
83 // Begins after first line starting with $$.
84 for line[0] != '$' {
85 if line, err = r.ReadSlice('\n'); err != nil {
86 err = fmt.Errorf("can't find export data (%v)", err)
87 return
88 }
89 }
90 hdr = string(line)
91
92 return
93}
diff --git a/vendor/golang.org/x/tools/go/internal/gcimporter/gcimporter.go b/vendor/golang.org/x/tools/go/internal/gcimporter/gcimporter.go
new file mode 100644
index 0000000..8dcd8bb
--- /dev/null
+++ b/vendor/golang.org/x/tools/go/internal/gcimporter/gcimporter.go
@@ -0,0 +1,1078 @@
1// Copyright 2011 The Go Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style
3// license that can be found in the LICENSE file.
4
5// This file is a modified copy of $GOROOT/src/go/internal/gcimporter/gcimporter.go,
6// but it also contains the original source-based importer code for Go1.6.
7// Once we stop supporting 1.6, we can remove that code.
8
9// Package gcimporter provides various functions for reading
10// gc-generated object files that can be used to implement the
11// Importer interface defined by the Go 1.5 standard library package.
12package gcimporter // import "golang.org/x/tools/go/internal/gcimporter"
13
14import (
15 "bufio"
16 "errors"
17 "fmt"
18 "go/build"
19 "go/constant"
20 "go/token"
21 "go/types"
22 "io"
23 "io/ioutil"
24 "os"
25 "path/filepath"
26 "sort"
27 "strconv"
28 "strings"
29 "text/scanner"
30)
31
32// debugging/development support
33const debug = false
34
35var pkgExts = [...]string{".a", ".o"}
36
37// FindPkg returns the filename and unique package id for an import
38// path based on package information provided by build.Import (using
39// the build.Default build.Context). A relative srcDir is interpreted
40// relative to the current working directory.
41// If no file was found, an empty filename is returned.
42//
43func FindPkg(path, srcDir string) (filename, id string) {
44 if path == "" {
45 return
46 }
47
48 var noext string
49 switch {
50 default:
51 // "x" -> "$GOPATH/pkg/$GOOS_$GOARCH/x.ext", "x"
52 // Don't require the source files to be present.
53 if abs, err := filepath.Abs(srcDir); err == nil { // see issue 14282
54 srcDir = abs
55 }
56 bp, _ := build.Import(path, srcDir, build.FindOnly|build.AllowBinary)
57 if bp.PkgObj == "" {
58 id = path // make sure we have an id to print in error message
59 return
60 }
61 noext = strings.TrimSuffix(bp.PkgObj, ".a")
62 id = bp.ImportPath
63
64 case build.IsLocalImport(path):
65 // "./x" -> "/this/directory/x.ext", "/this/directory/x"
66 noext = filepath.Join(srcDir, path)
67 id = noext
68
69 case filepath.IsAbs(path):
70 // for completeness only - go/build.Import
71 // does not support absolute imports
72 // "/x" -> "/x.ext", "/x"
73 noext = path
74 id = path
75 }
76
77 if false { // for debugging
78 if path != id {
79 fmt.Printf("%s -> %s\n", path, id)
80 }
81 }
82
83 // try extensions
84 for _, ext := range pkgExts {
85 filename = noext + ext
86 if f, err := os.Stat(filename); err == nil && !f.IsDir() {
87 return
88 }
89 }
90
91 filename = "" // not found
92 return
93}
94
95// ImportData imports a package by reading the gc-generated export data,
96// adds the corresponding package object to the packages map indexed by id,
97// and returns the object.
98//
99// The packages map must contains all packages already imported. The data
100// reader position must be the beginning of the export data section. The
101// filename is only used in error messages.
102//
103// If packages[id] contains the completely imported package, that package
104// can be used directly, and there is no need to call this function (but
105// there is also no harm but for extra time used).
106//
107func ImportData(packages map[string]*types.Package, filename, id string, data io.Reader) (pkg *types.Package, err error) {
108 // support for parser error handling
109 defer func() {
110 switch r := recover().(type) {
111 case nil:
112 // nothing to do
113 case importError:
114 err = r
115 default:
116 panic(r) // internal error
117 }
118 }()
119
120 var p parser
121 p.init(filename, id, data, packages)
122 pkg = p.parseExport()
123
124 return
125}
126
127// Import imports a gc-generated package given its import path and srcDir, adds
128// the corresponding package object to the packages map, and returns the object.
129// The packages map must contain all packages already imported.
130//
131func Import(packages map[string]*types.Package, path, srcDir string, lookup func(path string) (io.ReadCloser, error)) (pkg *types.Package, err error) {
132 var rc io.ReadCloser
133 var filename, id string
134 if lookup != nil {
135 // With custom lookup specified, assume that caller has
136 // converted path to a canonical import path for use in the map.
137 if path == "unsafe" {
138 return types.Unsafe, nil
139 }
140 id = path
141
142 // No need to re-import if the package was imported completely before.
143 if pkg = packages[id]; pkg != nil && pkg.Complete() {
144 return
145 }
146 f, err := lookup(path)
147 if err != nil {
148 return nil, err
149 }
150 rc = f
151 } else {
152 filename, id = FindPkg(path, srcDir)
153 if filename == "" {
154 if path == "unsafe" {
155 return types.Unsafe, nil
156 }
157 return nil, fmt.Errorf("can't find import: %q", id)
158 }
159
160 // no need to re-import if the package was imported completely before
161 if pkg = packages[id]; pkg != nil && pkg.Complete() {
162 return
163 }
164
165 // open file
166 f, err := os.Open(filename)
167 if err != nil {
168 return nil, err
169 }
170 defer func() {
171 if err != nil {
172 // add file name to error
173 err = fmt.Errorf("%s: %v", filename, err)
174 }
175 }()
176 rc = f
177 }
178 defer rc.Close()
179
180 var hdr string
181 buf := bufio.NewReader(rc)
182 if hdr, err = FindExportData(buf); err != nil {
183 return
184 }
185
186 switch hdr {
187 case "$$\n":
188 // Work-around if we don't have a filename; happens only if lookup != nil.
189 // Either way, the filename is only needed for importer error messages, so
190 // this is fine.
191 if filename == "" {
192 filename = path
193 }
194 return ImportData(packages, filename, id, buf)
195
196 case "$$B\n":
197 var data []byte
198 data, err = ioutil.ReadAll(buf)
199 if err != nil {
200 break
201 }
202
203 // TODO(gri): allow clients of go/importer to provide a FileSet.
204 // Or, define a new standard go/types/gcexportdata package.
205 fset := token.NewFileSet()
206
207 // The indexed export format starts with an 'i'; the older
208 // binary export format starts with a 'c', 'd', or 'v'
209 // (from "version"). Select appropriate importer.
210 if len(data) > 0 && data[0] == 'i' {
211 _, pkg, err = IImportData(fset, packages, data[1:], id)
212 } else {
213 _, pkg, err = BImportData(fset, packages, data, id)
214 }
215
216 default:
217 err = fmt.Errorf("unknown export data header: %q", hdr)
218 }
219
220 return
221}
222
223// ----------------------------------------------------------------------------
224// Parser
225
226// TODO(gri) Imported objects don't have position information.
227// Ideally use the debug table line info; alternatively
228// create some fake position (or the position of the
229// import). That way error messages referring to imported
230// objects can print meaningful information.
231
232// parser parses the exports inside a gc compiler-produced
233// object/archive file and populates its scope with the results.
234type parser struct {
235 scanner scanner.Scanner
236 tok rune // current token
237 lit string // literal string; only valid for Ident, Int, String tokens
238 id string // package id of imported package
239 sharedPkgs map[string]*types.Package // package id -> package object (across importer)
240 localPkgs map[string]*types.Package // package id -> package object (just this package)
241}
242
243func (p *parser) init(filename, id string, src io.Reader, packages map[string]*types.Package) {
244 p.scanner.Init(src)
245 p.scanner.Error = func(_ *scanner.Scanner, msg string) { p.error(msg) }
246 p.scanner.Mode = scanner.ScanIdents | scanner.ScanInts | scanner.ScanChars | scanner.ScanStrings | scanner.ScanComments | scanner.SkipComments
247 p.scanner.Whitespace = 1<<'\t' | 1<<' '
248 p.scanner.Filename = filename // for good error messages
249 p.next()
250 p.id = id
251 p.sharedPkgs = packages
252 if debug {
253 // check consistency of packages map
254 for _, pkg := range packages {
255 if pkg.Name() == "" {
256 fmt.Printf("no package name for %s\n", pkg.Path())
257 }
258 }
259 }
260}
261
262func (p *parser) next() {
263 p.tok = p.scanner.Scan()
264 switch p.tok {
265 case scanner.Ident, scanner.Int, scanner.Char, scanner.String, '·':
266 p.lit = p.scanner.TokenText()
267 default:
268 p.lit = ""
269 }
270 if debug {
271 fmt.Printf("%s: %q -> %q\n", scanner.TokenString(p.tok), p.scanner.TokenText(), p.lit)
272 }
273}
274
275func declTypeName(pkg *types.Package, name string) *types.TypeName {
276 scope := pkg.Scope()
277 if obj := scope.Lookup(name); obj != nil {
278 return obj.(*types.TypeName)
279 }
280 obj := types.NewTypeName(token.NoPos, pkg, name, nil)
281 // a named type may be referred to before the underlying type
282 // is known - set it up
283 types.NewNamed(obj, nil, nil)
284 scope.Insert(obj)
285 return obj
286}
287
288// ----------------------------------------------------------------------------
289// Error handling
290
291// Internal errors are boxed as importErrors.
292type importError struct {
293 pos scanner.Position
294 err error
295}
296
297func (e importError) Error() string {
298 return fmt.Sprintf("import error %s (byte offset = %d): %s", e.pos, e.pos.Offset, e.err)
299}
300
301func (p *parser) error(err interface{}) {
302 if s, ok := err.(string); ok {
303 err = errors.New(s)
304 }
305 // panic with a runtime.Error if err is not an error
306 panic(importError{p.scanner.Pos(), err.(error)})
307}
308
309func (p *parser) errorf(format string, args ...interface{}) {
310 p.error(fmt.Sprintf(format, args...))
311}
312
313func (p *parser) expect(tok rune) string {
314 lit := p.lit
315 if p.tok != tok {
316 p.errorf("expected %s, got %s (%s)", scanner.TokenString(tok), scanner.TokenString(p.tok), lit)
317 }
318 p.next()
319 return lit
320}
321
322func (p *parser) expectSpecial(tok string) {
323 sep := 'x' // not white space
324 i := 0
325 for i < len(tok) && p.tok == rune(tok[i]) && sep > ' ' {
326 sep = p.scanner.Peek() // if sep <= ' ', there is white space before the next token
327 p.next()
328 i++
329 }
330 if i < len(tok) {
331 p.errorf("expected %q, got %q", tok, tok[0:i])
332 }
333}
334
335func (p *parser) expectKeyword(keyword string) {
336 lit := p.expect(scanner.Ident)
337 if lit != keyword {
338 p.errorf("expected keyword %s, got %q", keyword, lit)
339 }
340}
341
342// ----------------------------------------------------------------------------
343// Qualified and unqualified names
344
345// PackageId = string_lit .
346//
347func (p *parser) parsePackageID() string {
348 id, err := strconv.Unquote(p.expect(scanner.String))
349 if err != nil {
350 p.error(err)
351 }
352 // id == "" stands for the imported package id
353 // (only known at time of package installation)
354 if id == "" {
355 id = p.id
356 }
357 return id
358}
359
360// PackageName = ident .
361//
362func (p *parser) parsePackageName() string {
363 return p.expect(scanner.Ident)
364}
365
366// dotIdentifier = ( ident | '·' ) { ident | int | '·' } .
367func (p *parser) parseDotIdent() string {
368 ident := ""
369 if p.tok != scanner.Int {
370 sep := 'x' // not white space
371 for (p.tok == scanner.Ident || p.tok == scanner.Int || p.tok == '·') && sep > ' ' {
372 ident += p.lit
373 sep = p.scanner.Peek() // if sep <= ' ', there is white space before the next token
374 p.next()
375 }
376 }
377 if ident == "" {
378 p.expect(scanner.Ident) // use expect() for error handling
379 }
380 return ident
381}
382
383// QualifiedName = "@" PackageId "." ( "?" | dotIdentifier ) .
384//
385func (p *parser) parseQualifiedName() (id, name string) {
386 p.expect('@')
387 id = p.parsePackageID()
388 p.expect('.')
389 // Per rev f280b8a485fd (10/2/2013), qualified names may be used for anonymous fields.
390 if p.tok == '?' {
391 p.next()
392 } else {
393 name = p.parseDotIdent()
394 }
395 return
396}
397
398// getPkg returns the package for a given id. If the package is
399// not found, create the package and add it to the p.localPkgs
400// and p.sharedPkgs maps. name is the (expected) name of the
401// package. If name == "", the package name is expected to be
402// set later via an import clause in the export data.
403//
404// id identifies a package, usually by a canonical package path like
405// "encoding/json" but possibly by a non-canonical import path like
406// "./json".
407//
408func (p *parser) getPkg(id, name string) *types.Package {
409 // package unsafe is not in the packages maps - handle explicitly
410 if id == "unsafe" {
411 return types.Unsafe
412 }
413
414 pkg := p.localPkgs[id]
415 if pkg == nil {
416 // first import of id from this package
417 pkg = p.sharedPkgs[id]
418 if pkg == nil {
419 // first import of id by this importer;
420 // add (possibly unnamed) pkg to shared packages
421 pkg = types.NewPackage(id, name)
422 p.sharedPkgs[id] = pkg
423 }
424 // add (possibly unnamed) pkg to local packages
425 if p.localPkgs == nil {
426 p.localPkgs = make(map[string]*types.Package)
427 }
428 p.localPkgs[id] = pkg
429 } else if name != "" {
430 // package exists already and we have an expected package name;
431 // make sure names match or set package name if necessary
432 if pname := pkg.Name(); pname == "" {
433 pkg.SetName(name)
434 } else if pname != name {
435 p.errorf("%s package name mismatch: %s (given) vs %s (expected)", id, pname, name)
436 }
437 }
438 return pkg
439}
440
441// parseExportedName is like parseQualifiedName, but
442// the package id is resolved to an imported *types.Package.
443//
444func (p *parser) parseExportedName() (pkg *types.Package, name string) {
445 id, name := p.parseQualifiedName()
446 pkg = p.getPkg(id, "")
447 return
448}
449
450// ----------------------------------------------------------------------------
451// Types
452
453// BasicType = identifier .
454//
455func (p *parser) parseBasicType() types.Type {
456 id := p.expect(scanner.Ident)
457 obj := types.Universe.Lookup(id)
458 if obj, ok := obj.(*types.TypeName); ok {
459 return obj.Type()
460 }
461 p.errorf("not a basic type: %s", id)
462 return nil
463}
464
465// ArrayType = "[" int_lit "]" Type .
466//
467func (p *parser) parseArrayType(parent *types.Package) types.Type {
468 // "[" already consumed and lookahead known not to be "]"
469 lit := p.expect(scanner.Int)
470 p.expect(']')
471 elem := p.parseType(parent)
472 n, err := strconv.ParseInt(lit, 10, 64)
473 if err != nil {
474 p.error(err)
475 }
476 return types.NewArray(elem, n)
477}
478
479// MapType = "map" "[" Type "]" Type .
480//
481func (p *parser) parseMapType(parent *types.Package) types.Type {
482 p.expectKeyword("map")
483 p.expect('[')
484 key := p.parseType(parent)
485 p.expect(']')
486 elem := p.parseType(parent)
487 return types.NewMap(key, elem)
488}
489
490// Name = identifier | "?" | QualifiedName .
491//
492// For unqualified and anonymous names, the returned package is the parent
493// package unless parent == nil, in which case the returned package is the
494// package being imported. (The parent package is not nil if the the name
495// is an unqualified struct field or interface method name belonging to a
496// type declared in another package.)
497//
498// For qualified names, the returned package is nil (and not created if
499// it doesn't exist yet) unless materializePkg is set (which creates an
500// unnamed package with valid package path). In the latter case, a
501// subsequent import clause is expected to provide a name for the package.
502//
503func (p *parser) parseName(parent *types.Package, materializePkg bool) (pkg *types.Package, name string) {
504 pkg = parent
505 if pkg == nil {
506 pkg = p.sharedPkgs[p.id]
507 }
508 switch p.tok {
509 case scanner.Ident:
510 name = p.lit
511 p.next()
512 case '?':
513 // anonymous
514 p.next()
515 case '@':
516 // exported name prefixed with package path
517 pkg = nil
518 var id string
519 id, name = p.parseQualifiedName()
520 if materializePkg {
521 pkg = p.getPkg(id, "")
522 }
523 default:
524 p.error("name expected")
525 }
526 return
527}
528
529func deref(typ types.Type) types.Type {
530 if p, _ := typ.(*types.Pointer); p != nil {
531 return p.Elem()
532 }
533 return typ
534}
535
536// Field = Name Type [ string_lit ] .
537//
538func (p *parser) parseField(parent *types.Package) (*types.Var, string) {
539 pkg, name := p.parseName(parent, true)
540
541 if name == "_" {
542 // Blank fields should be package-qualified because they
543 // are unexported identifiers, but gc does not qualify them.
544 // Assuming that the ident belongs to the current package
545 // causes types to change during re-exporting, leading
546 // to spurious "can't assign A to B" errors from go/types.
547 // As a workaround, pretend all blank fields belong
548 // to the same unique dummy package.
549 const blankpkg = "<_>"
550 pkg = p.getPkg(blankpkg, blankpkg)
551 }
552
553 typ := p.parseType(parent)
554 anonymous := false
555 if name == "" {
556 // anonymous field - typ must be T or *T and T must be a type name
557 switch typ := deref(typ).(type) {
558 case *types.Basic: // basic types are named types
559 pkg = nil // objects defined in Universe scope have no package
560 name = typ.Name()
561 case *types.Named:
562 name = typ.Obj().Name()
563 default:
564 p.errorf("anonymous field expected")
565 }
566 anonymous = true
567 }
568 tag := ""
569 if p.tok == scanner.String {
570 s := p.expect(scanner.String)
571 var err error
572 tag, err = strconv.Unquote(s)
573 if err != nil {
574 p.errorf("invalid struct tag %s: %s", s, err)
575 }
576 }
577 return types.NewField(token.NoPos, pkg, name, typ, anonymous), tag
578}
579
580// StructType = "struct" "{" [ FieldList ] "}" .
581// FieldList = Field { ";" Field } .
582//
583func (p *parser) parseStructType(parent *types.Package) types.Type {
584 var fields []*types.Var
585 var tags []string
586
587 p.expectKeyword("struct")
588 p.expect('{')
589 for i := 0; p.tok != '}' && p.tok != scanner.EOF; i++ {
590 if i > 0 {
591 p.expect(';')
592 }
593 fld, tag := p.parseField(parent)
594 if tag != "" && tags == nil {
595 tags = make([]string, i)
596 }
597 if tags != nil {
598 tags = append(tags, tag)
599 }
600 fields = append(fields, fld)
601 }
602 p.expect('}')
603
604 return types.NewStruct(fields, tags)
605}
606
607// Parameter = ( identifier | "?" ) [ "..." ] Type [ string_lit ] .
608//
609func (p *parser) parseParameter() (par *types.Var, isVariadic bool) {
610 _, name := p.parseName(nil, false)
611 // remove gc-specific parameter numbering
612 if i := strings.Index(name, "·"); i >= 0 {
613 name = name[:i]
614 }
615 if p.tok == '.' {
616 p.expectSpecial("...")
617 isVariadic = true
618 }
619 typ := p.parseType(nil)
620 if isVariadic {
621 typ = types.NewSlice(typ)
622 }
623 // ignore argument tag (e.g. "noescape")
624 if p.tok == scanner.String {
625 p.next()
626 }
627 // TODO(gri) should we provide a package?
628 par = types.NewVar(token.NoPos, nil, name, typ)
629 return
630}
631
632// Parameters = "(" [ ParameterList ] ")" .
633// ParameterList = { Parameter "," } Parameter .
634//
635func (p *parser) parseParameters() (list []*types.Var, isVariadic bool) {
636 p.expect('(')
637 for p.tok != ')' && p.tok != scanner.EOF {
638 if len(list) > 0 {
639 p.expect(',')
640 }
641 par, variadic := p.parseParameter()
642 list = append(list, par)
643 if variadic {
644 if isVariadic {
645 p.error("... not on final argument")
646 }
647 isVariadic = true
648 }
649 }
650 p.expect(')')
651
652 return
653}
654
655// Signature = Parameters [ Result ] .
656// Result = Type | Parameters .
657//
658func (p *parser) parseSignature(recv *types.Var) *types.Signature {
659 params, isVariadic := p.parseParameters()
660
661 // optional result type
662 var results []*types.Var
663 if p.tok == '(' {
664 var variadic bool
665 results, variadic = p.parseParameters()
666 if variadic {
667 p.error("... not permitted on result type")
668 }
669 }
670
671 return types.NewSignature(recv, types.NewTuple(params...), types.NewTuple(results...), isVariadic)
672}
673
674// InterfaceType = "interface" "{" [ MethodList ] "}" .
675// MethodList = Method { ";" Method } .
676// Method = Name Signature .
677//
678// The methods of embedded interfaces are always "inlined"
679// by the compiler and thus embedded interfaces are never
680// visible in the export data.
681//
682func (p *parser) parseInterfaceType(parent *types.Package) types.Type {
683 var methods []*types.Func
684
685 p.expectKeyword("interface")
686 p.expect('{')
687 for i := 0; p.tok != '}' && p.tok != scanner.EOF; i++ {
688 if i > 0 {
689 p.expect(';')
690 }
691 pkg, name := p.parseName(parent, true)
692 sig := p.parseSignature(nil)
693 methods = append(methods, types.NewFunc(token.NoPos, pkg, name, sig))
694 }
695 p.expect('}')
696
697 // Complete requires the type's embedded interfaces to be fully defined,
698 // but we do not define any
699 return newInterface(methods, nil).Complete()
700}
701
702// ChanType = ( "chan" [ "<-" ] | "<-" "chan" ) Type .
703//
704func (p *parser) parseChanType(parent *types.Package) types.Type {
705 dir := types.SendRecv
706 if p.tok == scanner.Ident {
707 p.expectKeyword("chan")
708 if p.tok == '<' {
709 p.expectSpecial("<-")
710 dir = types.SendOnly
711 }
712 } else {
713 p.expectSpecial("<-")
714 p.expectKeyword("chan")
715 dir = types.RecvOnly
716 }
717 elem := p.parseType(parent)
718 return types.NewChan(dir, elem)
719}
720
721// Type =
722// BasicType | TypeName | ArrayType | SliceType | StructType |
723// PointerType | FuncType | InterfaceType | MapType | ChanType |
724// "(" Type ")" .
725//
726// BasicType = ident .
727// TypeName = ExportedName .
728// SliceType = "[" "]" Type .
729// PointerType = "*" Type .
730// FuncType = "func" Signature .
731//
732func (p *parser) parseType(parent *types.Package) types.Type {
733 switch p.tok {
734 case scanner.Ident:
735 switch p.lit {
736 default:
737 return p.parseBasicType()
738 case "struct":
739 return p.parseStructType(parent)
740 case "func":
741 // FuncType
742 p.next()
743 return p.parseSignature(nil)
744 case "interface":
745 return p.parseInterfaceType(parent)
746 case "map":
747 return p.parseMapType(parent)
748 case "chan":
749 return p.parseChanType(parent)
750 }
751 case '@':
752 // TypeName
753 pkg, name := p.parseExportedName()
754 return declTypeName(pkg, name).Type()
755 case '[':
756 p.next() // look ahead
757 if p.tok == ']' {
758 // SliceType
759 p.next()
760 return types.NewSlice(p.parseType(parent))
761 }
762 return p.parseArrayType(parent)
763 case '*':
764 // PointerType
765 p.next()
766 return types.NewPointer(p.parseType(parent))
767 case '<':
768 return p.parseChanType(parent)
769 case '(':
770 // "(" Type ")"
771 p.next()
772 typ := p.parseType(parent)
773 p.expect(')')
774 return typ
775 }
776 p.errorf("expected type, got %s (%q)", scanner.TokenString(p.tok), p.lit)
777 return nil
778}
779
780// ----------------------------------------------------------------------------
781// Declarations
782
783// ImportDecl = "import" PackageName PackageId .
784//
785func (p *parser) parseImportDecl() {
786 p.expectKeyword("import")
787 name := p.parsePackageName()
788 p.getPkg(p.parsePackageID(), name)
789}
790
791// int_lit = [ "+" | "-" ] { "0" ... "9" } .
792//
793func (p *parser) parseInt() string {
794 s := ""
795 switch p.tok {
796 case '-':
797 s = "-"
798 p.next()
799 case '+':
800 p.next()
801 }
802 return s + p.expect(scanner.Int)
803}
804
805// number = int_lit [ "p" int_lit ] .
806//
807func (p *parser) parseNumber() (typ *types.Basic, val constant.Value) {
808 // mantissa
809 mant := constant.MakeFromLiteral(p.parseInt(), token.INT, 0)
810 if mant == nil {
811 panic("invalid mantissa")
812 }
813
814 if p.lit == "p" {
815 // exponent (base 2)
816 p.next()
817 exp, err := strconv.ParseInt(p.parseInt(), 10, 0)
818 if err != nil {
819 p.error(err)
820 }
821 if exp < 0 {
822 denom := constant.MakeInt64(1)
823 denom = constant.Shift(denom, token.SHL, uint(-exp))
824 typ = types.Typ[types.UntypedFloat]
825 val = constant.BinaryOp(mant, token.QUO, denom)
826 return
827 }
828 if exp > 0 {
829 mant = constant.Shift(mant, token.SHL, uint(exp))
830 }
831 typ = types.Typ[types.UntypedFloat]
832 val = mant
833 return
834 }
835
836 typ = types.Typ[types.UntypedInt]
837 val = mant
838 return
839}
840
841// ConstDecl = "const" ExportedName [ Type ] "=" Literal .
842// Literal = bool_lit | int_lit | float_lit | complex_lit | rune_lit | string_lit .
843// bool_lit = "true" | "false" .
844// complex_lit = "(" float_lit "+" float_lit "i" ")" .
845// rune_lit = "(" int_lit "+" int_lit ")" .
846// string_lit = `"` { unicode_char } `"` .
847//
848func (p *parser) parseConstDecl() {
849 p.expectKeyword("const")
850 pkg, name := p.parseExportedName()
851
852 var typ0 types.Type
853 if p.tok != '=' {
854 // constant types are never structured - no need for parent type
855 typ0 = p.parseType(nil)
856 }
857
858 p.expect('=')
859 var typ types.Type
860 var val constant.Value
861 switch p.tok {
862 case scanner.Ident:
863 // bool_lit
864 if p.lit != "true" && p.lit != "false" {
865 p.error("expected true or false")
866 }
867 typ = types.Typ[types.UntypedBool]
868 val = constant.MakeBool(p.lit == "true")
869 p.next()
870
871 case '-', scanner.Int:
872 // int_lit
873 typ, val = p.parseNumber()
874
875 case '(':
876 // complex_lit or rune_lit
877 p.next()
878 if p.tok == scanner.Char {
879 p.next()
880 p.expect('+')
881 typ = types.Typ[types.UntypedRune]
882 _, val = p.parseNumber()
883 p.expect(')')
884 break
885 }
886 _, re := p.parseNumber()
887 p.expect('+')
888 _, im := p.parseNumber()
889 p.expectKeyword("i")
890 p.expect(')')
891 typ = types.Typ[types.UntypedComplex]
892 val = constant.BinaryOp(re, token.ADD, constant.MakeImag(im))
893
894 case scanner.Char:
895 // rune_lit
896 typ = types.Typ[types.UntypedRune]
897 val = constant.MakeFromLiteral(p.lit, token.CHAR, 0)
898 p.next()
899
900 case scanner.String:
901 // string_lit
902 typ = types.Typ[types.UntypedString]
903 val = constant.MakeFromLiteral(p.lit, token.STRING, 0)
904 p.next()
905
906 default:
907 p.errorf("expected literal got %s", scanner.TokenString(p.tok))
908 }
909
910 if typ0 == nil {
911 typ0 = typ
912 }
913
914 pkg.Scope().Insert(types.NewConst(token.NoPos, pkg, name, typ0, val))
915}
916
917// TypeDecl = "type" ExportedName Type .
918//
919func (p *parser) parseTypeDecl() {
920 p.expectKeyword("type")
921 pkg, name := p.parseExportedName()
922 obj := declTypeName(pkg, name)
923
924 // The type object may have been imported before and thus already
925 // have a type associated with it. We still need to parse the type
926 // structure, but throw it away if the object already has a type.
927 // This ensures that all imports refer to the same type object for
928 // a given type declaration.
929 typ := p.parseType(pkg)
930
931 if name := obj.Type().(*types.Named); name.Underlying() == nil {
932 name.SetUnderlying(typ)
933 }
934}
935
936// VarDecl = "var" ExportedName Type .
937//
938func (p *parser) parseVarDecl() {
939 p.expectKeyword("var")
940 pkg, name := p.parseExportedName()
941 typ := p.parseType(pkg)
942 pkg.Scope().Insert(types.NewVar(token.NoPos, pkg, name, typ))
943}
944
945// Func = Signature [ Body ] .
946// Body = "{" ... "}" .
947//
948func (p *parser) parseFunc(recv *types.Var) *types.Signature {
949 sig := p.parseSignature(recv)
950 if p.tok == '{' {
951 p.next()
952 for i := 1; i > 0; p.next() {
953 switch p.tok {
954 case '{':
955 i++
956 case '}':
957 i--
958 }
959 }
960 }
961 return sig
962}
963
964// MethodDecl = "func" Receiver Name Func .
965// Receiver = "(" ( identifier | "?" ) [ "*" ] ExportedName ")" .
966//
967func (p *parser) parseMethodDecl() {
968 // "func" already consumed
969 p.expect('(')
970 recv, _ := p.parseParameter() // receiver
971 p.expect(')')
972
973 // determine receiver base type object
974 base := deref(recv.Type()).(*types.Named)
975
976 // parse method name, signature, and possibly inlined body
977 _, name := p.parseName(nil, false)
978 sig := p.parseFunc(recv)
979
980 // methods always belong to the same package as the base type object
981 pkg := base.Obj().Pkg()
982
983 // add method to type unless type was imported before
984 // and method exists already
985 // TODO(gri) This leads to a quadratic algorithm - ok for now because method counts are small.
986 base.AddMethod(types.NewFunc(token.NoPos, pkg, name, sig))
987}
988
989// FuncDecl = "func" ExportedName Func .
990//
991func (p *parser) parseFuncDecl() {
992 // "func" already consumed
993 pkg, name := p.parseExportedName()
994 typ := p.parseFunc(nil)
995 pkg.Scope().Insert(types.NewFunc(token.NoPos, pkg, name, typ))
996}
997
998// Decl = [ ImportDecl | ConstDecl | TypeDecl | VarDecl | FuncDecl | MethodDecl ] "\n" .
999//
1000func (p *parser) parseDecl() {
1001 if p.tok == scanner.Ident {
1002 switch p.lit {
1003 case "import":
1004 p.parseImportDecl()
1005 case "const":
1006 p.parseConstDecl()
1007 case "type":
1008 p.parseTypeDecl()
1009 case "var":
1010 p.parseVarDecl()
1011 case "func":
1012 p.next() // look ahead
1013 if p.tok == '(' {
1014 p.parseMethodDecl()
1015 } else {
1016 p.parseFuncDecl()
1017 }
1018 }
1019 }
1020 p.expect('\n')
1021}
1022
1023// ----------------------------------------------------------------------------
1024// Export
1025
1026// Export = "PackageClause { Decl } "$$" .
1027// PackageClause = "package" PackageName [ "safe" ] "\n" .
1028//
1029func (p *parser) parseExport() *types.Package {
1030 p.expectKeyword("package")
1031 name := p.parsePackageName()
1032 if p.tok == scanner.Ident && p.lit == "safe" {
1033 // package was compiled with -u option - ignore
1034 p.next()
1035 }
1036 p.expect('\n')
1037
1038 pkg := p.getPkg(p.id, name)
1039
1040 for p.tok != '$' && p.tok != scanner.EOF {
1041 p.parseDecl()
1042 }
1043
1044 if ch := p.scanner.Peek(); p.tok != '$' || ch != '$' {
1045 // don't call next()/expect() since reading past the
1046 // export data may cause scanner errors (e.g. NUL chars)
1047 p.errorf("expected '$$', got %s %c", scanner.TokenString(p.tok), ch)
1048 }
1049
1050 if n := p.scanner.ErrorCount; n != 0 {
1051 p.errorf("expected no scanner errors, got %d", n)
1052 }
1053
1054 // Record all locally referenced packages as imports.
1055 var imports []*types.Package
1056 for id, pkg2 := range p.localPkgs {
1057 if pkg2.Name() == "" {
1058 p.errorf("%s package has no name", id)
1059 }
1060 if id == p.id {
1061 continue // avoid self-edge
1062 }
1063 imports = append(imports, pkg2)
1064 }
1065 sort.Sort(byPath(imports))
1066 pkg.SetImports(imports)
1067
1068 // package was imported completely and without errors
1069 pkg.MarkComplete()
1070
1071 return pkg
1072}
1073
1074type byPath []*types.Package
1075
1076func (a byPath) Len() int { return len(a) }
1077func (a byPath) Swap(i, j int) { a[i], a[j] = a[j], a[i] }
1078func (a byPath) Less(i, j int) bool { return a[i].Path() < a[j].Path() }
diff --git a/vendor/golang.org/x/tools/go/internal/gcimporter/iexport.go b/vendor/golang.org/x/tools/go/internal/gcimporter/iexport.go
new file mode 100644
index 0000000..4be32a2
--- /dev/null
+++ b/vendor/golang.org/x/tools/go/internal/gcimporter/iexport.go
@@ -0,0 +1,739 @@
1// Copyright 2019 The Go Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style
3// license that can be found in the LICENSE file.
4
5// Indexed binary package export.
6// This file was derived from $GOROOT/src/cmd/compile/internal/gc/iexport.go;
7// see that file for specification of the format.
8
9package gcimporter
10
11import (
12 "bytes"
13 "encoding/binary"
14 "go/ast"
15 "go/constant"
16 "go/token"
17 "go/types"
18 "io"
19 "math/big"
20 "reflect"
21 "sort"
22)
23
24// Current indexed export format version. Increase with each format change.
25// 0: Go1.11 encoding
26const iexportVersion = 0
27
28// IExportData returns the binary export data for pkg.
29//
30// If no file set is provided, position info will be missing.
31// The package path of the top-level package will not be recorded,
32// so that calls to IImportData can override with a provided package path.
33func IExportData(fset *token.FileSet, pkg *types.Package) (b []byte, err error) {
34 defer func() {
35 if e := recover(); e != nil {
36 if ierr, ok := e.(internalError); ok {
37 err = ierr
38 return
39 }
40 // Not an internal error; panic again.
41 panic(e)
42 }
43 }()
44
45 p := iexporter{
46 out: bytes.NewBuffer(nil),
47 fset: fset,
48 allPkgs: map[*types.Package]bool{},
49 stringIndex: map[string]uint64{},
50 declIndex: map[types.Object]uint64{},
51 typIndex: map[types.Type]uint64{},
52 localpkg: pkg,
53 }
54
55 for i, pt := range predeclared() {
56 p.typIndex[pt] = uint64(i)
57 }
58 if len(p.typIndex) > predeclReserved {
59 panic(internalErrorf("too many predeclared types: %d > %d", len(p.typIndex), predeclReserved))
60 }
61
62 // Initialize work queue with exported declarations.
63 scope := pkg.Scope()
64 for _, name := range scope.Names() {
65 if ast.IsExported(name) {
66 p.pushDecl(scope.Lookup(name))
67 }
68 }
69
70 // Loop until no more work.
71 for !p.declTodo.empty() {
72 p.doDecl(p.declTodo.popHead())
73 }
74
75 // Append indices to data0 section.
76 dataLen := uint64(p.data0.Len())
77 w := p.newWriter()
78 w.writeIndex(p.declIndex)
79 w.flush()
80
81 // Assemble header.
82 var hdr intWriter
83 hdr.WriteByte('i')
84 hdr.uint64(iexportVersion)
85 hdr.uint64(uint64(p.strings.Len()))
86 hdr.uint64(dataLen)
87
88 // Flush output.
89 io.Copy(p.out, &hdr)
90 io.Copy(p.out, &p.strings)
91 io.Copy(p.out, &p.data0)
92
93 return p.out.Bytes(), nil
94}
95
96// writeIndex writes out an object index. mainIndex indicates whether
97// we're writing out the main index, which is also read by
98// non-compiler tools and includes a complete package description
99// (i.e., name and height).
100func (w *exportWriter) writeIndex(index map[types.Object]uint64) {
101 // Build a map from packages to objects from that package.
102 pkgObjs := map[*types.Package][]types.Object{}
103
104 // For the main index, make sure to include every package that
105 // we reference, even if we're not exporting (or reexporting)
106 // any symbols from it.
107 pkgObjs[w.p.localpkg] = nil
108 for pkg := range w.p.allPkgs {
109 pkgObjs[pkg] = nil
110 }
111
112 for obj := range index {
113 pkgObjs[obj.Pkg()] = append(pkgObjs[obj.Pkg()], obj)
114 }
115
116 var pkgs []*types.Package
117 for pkg, objs := range pkgObjs {
118 pkgs = append(pkgs, pkg)
119
120 sort.Slice(objs, func(i, j int) bool {
121 return objs[i].Name() < objs[j].Name()
122 })
123 }
124
125 sort.Slice(pkgs, func(i, j int) bool {
126 return w.exportPath(pkgs[i]) < w.exportPath(pkgs[j])
127 })
128
129 w.uint64(uint64(len(pkgs)))
130 for _, pkg := range pkgs {
131 w.string(w.exportPath(pkg))
132 w.string(pkg.Name())
133 w.uint64(uint64(0)) // package height is not needed for go/types
134
135 objs := pkgObjs[pkg]
136 w.uint64(uint64(len(objs)))
137 for _, obj := range objs {
138 w.string(obj.Name())
139 w.uint64(index[obj])
140 }
141 }
142}
143
144type iexporter struct {
145 fset *token.FileSet
146 out *bytes.Buffer
147
148 localpkg *types.Package
149
150 // allPkgs tracks all packages that have been referenced by
151 // the export data, so we can ensure to include them in the
152 // main index.
153 allPkgs map[*types.Package]bool
154
155 declTodo objQueue
156
157 strings intWriter
158 stringIndex map[string]uint64
159
160 data0 intWriter
161 declIndex map[types.Object]uint64
162 typIndex map[types.Type]uint64
163}
164
165// stringOff returns the offset of s within the string section.
166// If not already present, it's added to the end.
167func (p *iexporter) stringOff(s string) uint64 {
168 off, ok := p.stringIndex[s]
169 if !ok {
170 off = uint64(p.strings.Len())
171 p.stringIndex[s] = off
172
173 p.strings.uint64(uint64(len(s)))
174 p.strings.WriteString(s)
175 }
176 return off
177}
178
179// pushDecl adds n to the declaration work queue, if not already present.
180func (p *iexporter) pushDecl(obj types.Object) {
181 // Package unsafe is known to the compiler and predeclared.
182 assert(obj.Pkg() != types.Unsafe)
183
184 if _, ok := p.declIndex[obj]; ok {
185 return
186 }
187
188 p.declIndex[obj] = ^uint64(0) // mark n present in work queue
189 p.declTodo.pushTail(obj)
190}
191
192// exportWriter handles writing out individual data section chunks.
193type exportWriter struct {
194 p *iexporter
195
196 data intWriter
197 currPkg *types.Package
198 prevFile string
199 prevLine int64
200}
201
202func (w *exportWriter) exportPath(pkg *types.Package) string {
203 if pkg == w.p.localpkg {
204 return ""
205 }
206 return pkg.Path()
207}
208
209func (p *iexporter) doDecl(obj types.Object) {
210 w := p.newWriter()
211 w.setPkg(obj.Pkg(), false)
212
213 switch obj := obj.(type) {
214 case *types.Var:
215 w.tag('V')
216 w.pos(obj.Pos())
217 w.typ(obj.Type(), obj.Pkg())
218
219 case *types.Func:
220 sig, _ := obj.Type().(*types.Signature)
221 if sig.Recv() != nil {
222 panic(internalErrorf("unexpected method: %v", sig))
223 }
224 w.tag('F')
225 w.pos(obj.Pos())
226 w.signature(sig)
227
228 case *types.Const:
229 w.tag('C')
230 w.pos(obj.Pos())
231 w.value(obj.Type(), obj.Val())
232
233 case *types.TypeName:
234 if obj.IsAlias() {
235 w.tag('A')
236 w.pos(obj.Pos())
237 w.typ(obj.Type(), obj.Pkg())
238 break
239 }
240
241 // Defined type.
242 w.tag('T')
243 w.pos(obj.Pos())
244
245 underlying := obj.Type().Underlying()
246 w.typ(underlying, obj.Pkg())
247
248 t := obj.Type()
249 if types.IsInterface(t) {
250 break
251 }
252
253 named, ok := t.(*types.Named)
254 if !ok {
255 panic(internalErrorf("%s is not a defined type", t))
256 }
257
258 n := named.NumMethods()
259 w.uint64(uint64(n))
260 for i := 0; i < n; i++ {
261 m := named.Method(i)
262 w.pos(m.Pos())
263 w.string(m.Name())
264 sig, _ := m.Type().(*types.Signature)
265 w.param(sig.Recv())
266 w.signature(sig)
267 }
268
269 default:
270 panic(internalErrorf("unexpected object: %v", obj))
271 }
272
273 p.declIndex[obj] = w.flush()
274}
275
276func (w *exportWriter) tag(tag byte) {
277 w.data.WriteByte(tag)
278}
279
280func (w *exportWriter) pos(pos token.Pos) {
281 if w.p.fset == nil {
282 w.int64(0)
283 return
284 }
285
286 p := w.p.fset.Position(pos)
287 file := p.Filename
288 line := int64(p.Line)
289
290 // When file is the same as the last position (common case),
291 // we can save a few bytes by delta encoding just the line
292 // number.
293 //
294 // Note: Because data objects may be read out of order (or not
295 // at all), we can only apply delta encoding within a single
296 // object. This is handled implicitly by tracking prevFile and
297 // prevLine as fields of exportWriter.
298
299 if file == w.prevFile {
300 delta := line - w.prevLine
301 w.int64(delta)
302 if delta == deltaNewFile {
303 w.int64(-1)
304 }
305 } else {
306 w.int64(deltaNewFile)
307 w.int64(line) // line >= 0
308 w.string(file)
309 w.prevFile = file
310 }
311 w.prevLine = line
312}
313
314func (w *exportWriter) pkg(pkg *types.Package) {
315 // Ensure any referenced packages are declared in the main index.
316 w.p.allPkgs[pkg] = true
317
318 w.string(w.exportPath(pkg))
319}
320
321func (w *exportWriter) qualifiedIdent(obj types.Object) {
322 // Ensure any referenced declarations are written out too.
323 w.p.pushDecl(obj)
324
325 w.string(obj.Name())
326 w.pkg(obj.Pkg())
327}
328
329func (w *exportWriter) typ(t types.Type, pkg *types.Package) {
330 w.data.uint64(w.p.typOff(t, pkg))
331}
332
333func (p *iexporter) newWriter() *exportWriter {
334 return &exportWriter{p: p}
335}
336
337func (w *exportWriter) flush() uint64 {
338 off := uint64(w.p.data0.Len())
339 io.Copy(&w.p.data0, &w.data)
340 return off
341}
342
343func (p *iexporter) typOff(t types.Type, pkg *types.Package) uint64 {
344 off, ok := p.typIndex[t]
345 if !ok {
346 w := p.newWriter()
347 w.doTyp(t, pkg)
348 off = predeclReserved + w.flush()
349 p.typIndex[t] = off
350 }
351 return off
352}
353
354func (w *exportWriter) startType(k itag) {
355 w.data.uint64(uint64(k))
356}
357
358func (w *exportWriter) doTyp(t types.Type, pkg *types.Package) {
359 switch t := t.(type) {
360 case *types.Named:
361 w.startType(definedType)
362 w.qualifiedIdent(t.Obj())
363
364 case *types.Pointer:
365 w.startType(pointerType)
366 w.typ(t.Elem(), pkg)
367
368 case *types.Slice:
369 w.startType(sliceType)
370 w.typ(t.Elem(), pkg)
371
372 case *types.Array:
373 w.startType(arrayType)
374 w.uint64(uint64(t.Len()))
375 w.typ(t.Elem(), pkg)
376
377 case *types.Chan:
378 w.startType(chanType)
379 // 1 RecvOnly; 2 SendOnly; 3 SendRecv
380 var dir uint64
381 switch t.Dir() {
382 case types.RecvOnly:
383 dir = 1
384 case types.SendOnly:
385 dir = 2
386 case types.SendRecv:
387 dir = 3
388 }
389 w.uint64(dir)
390 w.typ(t.Elem(), pkg)
391
392 case *types.Map:
393 w.startType(mapType)
394 w.typ(t.Key(), pkg)
395 w.typ(t.Elem(), pkg)
396
397 case *types.Signature:
398 w.startType(signatureType)
399 w.setPkg(pkg, true)
400 w.signature(t)
401
402 case *types.Struct:
403 w.startType(structType)
404 w.setPkg(pkg, true)
405
406 n := t.NumFields()
407 w.uint64(uint64(n))
408 for i := 0; i < n; i++ {
409 f := t.Field(i)
410 w.pos(f.Pos())
411 w.string(f.Name())
412 w.typ(f.Type(), pkg)
413 w.bool(f.Anonymous())
414 w.string(t.Tag(i)) // note (or tag)
415 }
416
417 case *types.Interface:
418 w.startType(interfaceType)
419 w.setPkg(pkg, true)
420
421 n := t.NumEmbeddeds()
422 w.uint64(uint64(n))
423 for i := 0; i < n; i++ {
424 f := t.Embedded(i)
425 w.pos(f.Obj().Pos())
426 w.typ(f.Obj().Type(), f.Obj().Pkg())
427 }
428
429 n = t.NumExplicitMethods()
430 w.uint64(uint64(n))
431 for i := 0; i < n; i++ {
432 m := t.ExplicitMethod(i)
433 w.pos(m.Pos())
434 w.string(m.Name())
435 sig, _ := m.Type().(*types.Signature)
436 w.signature(sig)
437 }
438
439 default:
440 panic(internalErrorf("unexpected type: %v, %v", t, reflect.TypeOf(t)))
441 }
442}
443
444func (w *exportWriter) setPkg(pkg *types.Package, write bool) {
445 if write {
446 w.pkg(pkg)
447 }
448
449 w.currPkg = pkg
450}
451
452func (w *exportWriter) signature(sig *types.Signature) {
453 w.paramList(sig.Params())
454 w.paramList(sig.Results())
455 if sig.Params().Len() > 0 {
456 w.bool(sig.Variadic())
457 }
458}
459
460func (w *exportWriter) paramList(tup *types.Tuple) {
461 n := tup.Len()
462 w.uint64(uint64(n))
463 for i := 0; i < n; i++ {
464 w.param(tup.At(i))
465 }
466}
467
468func (w *exportWriter) param(obj types.Object) {
469 w.pos(obj.Pos())
470 w.localIdent(obj)
471 w.typ(obj.Type(), obj.Pkg())
472}
473
474func (w *exportWriter) value(typ types.Type, v constant.Value) {
475 w.typ(typ, nil)
476
477 switch v.Kind() {
478 case constant.Bool:
479 w.bool(constant.BoolVal(v))
480 case constant.Int:
481 var i big.Int
482 if i64, exact := constant.Int64Val(v); exact {
483 i.SetInt64(i64)
484 } else if ui64, exact := constant.Uint64Val(v); exact {
485 i.SetUint64(ui64)
486 } else {
487 i.SetString(v.ExactString(), 10)
488 }
489 w.mpint(&i, typ)
490 case constant.Float:
491 f := constantToFloat(v)
492 w.mpfloat(f, typ)
493 case constant.Complex:
494 w.mpfloat(constantToFloat(constant.Real(v)), typ)
495 w.mpfloat(constantToFloat(constant.Imag(v)), typ)
496 case constant.String:
497 w.string(constant.StringVal(v))
498 case constant.Unknown:
499 // package contains type errors
500 default:
501 panic(internalErrorf("unexpected value %v (%T)", v, v))
502 }
503}
504
505// constantToFloat converts a constant.Value with kind constant.Float to a
506// big.Float.
507func constantToFloat(x constant.Value) *big.Float {
508 assert(x.Kind() == constant.Float)
509 // Use the same floating-point precision (512) as cmd/compile
510 // (see Mpprec in cmd/compile/internal/gc/mpfloat.go).
511 const mpprec = 512
512 var f big.Float
513 f.SetPrec(mpprec)
514 if v, exact := constant.Float64Val(x); exact {
515 // float64
516 f.SetFloat64(v)
517 } else if num, denom := constant.Num(x), constant.Denom(x); num.Kind() == constant.Int {
518 // TODO(gri): add big.Rat accessor to constant.Value.
519 n := valueToRat(num)
520 d := valueToRat(denom)
521 f.SetRat(n.Quo(n, d))
522 } else {
523 // Value too large to represent as a fraction => inaccessible.
524 // TODO(gri): add big.Float accessor to constant.Value.
525 _, ok := f.SetString(x.ExactString())
526 assert(ok)
527 }
528 return &f
529}
530
531// mpint exports a multi-precision integer.
532//
533// For unsigned types, small values are written out as a single
534// byte. Larger values are written out as a length-prefixed big-endian
535// byte string, where the length prefix is encoded as its complement.
536// For example, bytes 0, 1, and 2 directly represent the integer
537// values 0, 1, and 2; while bytes 255, 254, and 253 indicate a 1-,
538// 2-, and 3-byte big-endian string follow.
539//
540// Encoding for signed types use the same general approach as for
541// unsigned types, except small values use zig-zag encoding and the
542// bottom bit of length prefix byte for large values is reserved as a
543// sign bit.
544//
545// The exact boundary between small and large encodings varies
546// according to the maximum number of bytes needed to encode a value
547// of type typ. As a special case, 8-bit types are always encoded as a
548// single byte.
549//
550// TODO(mdempsky): Is this level of complexity really worthwhile?
551func (w *exportWriter) mpint(x *big.Int, typ types.Type) {
552 basic, ok := typ.Underlying().(*types.Basic)
553 if !ok {
554 panic(internalErrorf("unexpected type %v (%T)", typ.Underlying(), typ.Underlying()))
555 }
556
557 signed, maxBytes := intSize(basic)
558
559 negative := x.Sign() < 0
560 if !signed && negative {
561 panic(internalErrorf("negative unsigned integer; type %v, value %v", typ, x))
562 }
563
564 b := x.Bytes()
565 if len(b) > 0 && b[0] == 0 {
566 panic(internalErrorf("leading zeros"))
567 }
568 if uint(len(b)) > maxBytes {
569 panic(internalErrorf("bad mpint length: %d > %d (type %v, value %v)", len(b), maxBytes, typ, x))
570 }
571
572 maxSmall := 256 - maxBytes
573 if signed {
574 maxSmall = 256 - 2*maxBytes
575 }
576 if maxBytes == 1 {
577 maxSmall = 256
578 }
579
580 // Check if x can use small value encoding.
581 if len(b) <= 1 {
582 var ux uint
583 if len(b) == 1 {
584 ux = uint(b[0])
585 }
586 if signed {
587 ux <<= 1
588 if negative {
589 ux--
590 }
591 }
592 if ux < maxSmall {
593 w.data.WriteByte(byte(ux))
594 return
595 }
596 }
597
598 n := 256 - uint(len(b))
599 if signed {
600 n = 256 - 2*uint(len(b))
601 if negative {
602 n |= 1
603 }
604 }
605 if n < maxSmall || n >= 256 {
606 panic(internalErrorf("encoding mistake: %d, %v, %v => %d", len(b), signed, negative, n))
607 }
608
609 w.data.WriteByte(byte(n))
610 w.data.Write(b)
611}
612
613// mpfloat exports a multi-precision floating point number.
614//
615// The number's value is decomposed into mantissa × 2**exponent, where
616// mantissa is an integer. The value is written out as mantissa (as a
617// multi-precision integer) and then the exponent, except exponent is
618// omitted if mantissa is zero.
619func (w *exportWriter) mpfloat(f *big.Float, typ types.Type) {
620 if f.IsInf() {
621 panic("infinite constant")
622 }
623
624 // Break into f = mant × 2**exp, with 0.5 <= mant < 1.
625 var mant big.Float
626 exp := int64(f.MantExp(&mant))
627
628 // Scale so that mant is an integer.
629 prec := mant.MinPrec()
630 mant.SetMantExp(&mant, int(prec))
631 exp -= int64(prec)
632
633 manti, acc := mant.Int(nil)
634 if acc != big.Exact {
635 panic(internalErrorf("mantissa scaling failed for %f (%s)", f, acc))
636 }
637 w.mpint(manti, typ)
638 if manti.Sign() != 0 {
639 w.int64(exp)
640 }
641}
642
643func (w *exportWriter) bool(b bool) bool {
644 var x uint64
645 if b {
646 x = 1
647 }
648 w.uint64(x)
649 return b
650}
651
652func (w *exportWriter) int64(x int64) { w.data.int64(x) }
653func (w *exportWriter) uint64(x uint64) { w.data.uint64(x) }
654func (w *exportWriter) string(s string) { w.uint64(w.p.stringOff(s)) }
655
656func (w *exportWriter) localIdent(obj types.Object) {
657 // Anonymous parameters.
658 if obj == nil {
659 w.string("")
660 return
661 }
662
663 name := obj.Name()
664 if name == "_" {
665 w.string("_")
666 return
667 }
668
669 w.string(name)
670}
671
672type intWriter struct {
673 bytes.Buffer
674}
675
676func (w *intWriter) int64(x int64) {
677 var buf [binary.MaxVarintLen64]byte
678 n := binary.PutVarint(buf[:], x)
679 w.Write(buf[:n])
680}
681
682func (w *intWriter) uint64(x uint64) {
683 var buf [binary.MaxVarintLen64]byte
684 n := binary.PutUvarint(buf[:], x)
685 w.Write(buf[:n])
686}
687
688func assert(cond bool) {
689 if !cond {
690 panic("internal error: assertion failed")
691 }
692}
693
694// The below is copied from go/src/cmd/compile/internal/gc/syntax.go.
695
696// objQueue is a FIFO queue of types.Object. The zero value of objQueue is
697// a ready-to-use empty queue.
698type objQueue struct {
699 ring []types.Object
700 head, tail int
701}
702
703// empty returns true if q contains no Nodes.
704func (q *objQueue) empty() bool {
705 return q.head == q.tail
706}
707
708// pushTail appends n to the tail of the queue.
709func (q *objQueue) pushTail(obj types.Object) {
710 if len(q.ring) == 0 {
711 q.ring = make([]types.Object, 16)
712 } else if q.head+len(q.ring) == q.tail {
713 // Grow the ring.
714 nring := make([]types.Object, len(q.ring)*2)
715 // Copy the old elements.
716 part := q.ring[q.head%len(q.ring):]
717 if q.tail-q.head <= len(part) {
718 part = part[:q.tail-q.head]
719 copy(nring, part)
720 } else {
721 pos := copy(nring, part)
722 copy(nring[pos:], q.ring[:q.tail%len(q.ring)])
723 }
724 q.ring, q.head, q.tail = nring, 0, q.tail-q.head
725 }
726
727 q.ring[q.tail%len(q.ring)] = obj
728 q.tail++
729}
730
731// popHead pops a node from the head of the queue. It panics if q is empty.
732func (q *objQueue) popHead() types.Object {
733 if q.empty() {
734 panic("dequeue empty")
735 }
736 obj := q.ring[q.head%len(q.ring)]
737 q.head++
738 return obj
739}
diff --git a/vendor/golang.org/x/tools/go/internal/gcimporter/iimport.go b/vendor/golang.org/x/tools/go/internal/gcimporter/iimport.go
new file mode 100644
index 0000000..a31a880
--- /dev/null
+++ b/vendor/golang.org/x/tools/go/internal/gcimporter/iimport.go
@@ -0,0 +1,630 @@
1// Copyright 2018 The Go Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style
3// license that can be found in the LICENSE file.
4
5// Indexed package import.
6// See cmd/compile/internal/gc/iexport.go for the export data format.
7
8// This file is a copy of $GOROOT/src/go/internal/gcimporter/iimport.go.
9
10package gcimporter
11
12import (
13 "bytes"
14 "encoding/binary"
15 "fmt"
16 "go/constant"
17 "go/token"
18 "go/types"
19 "io"
20 "sort"
21)
22
23type intReader struct {
24 *bytes.Reader
25 path string
26}
27
28func (r *intReader) int64() int64 {
29 i, err := binary.ReadVarint(r.Reader)
30 if err != nil {
31 errorf("import %q: read varint error: %v", r.path, err)
32 }
33 return i
34}
35
36func (r *intReader) uint64() uint64 {
37 i, err := binary.ReadUvarint(r.Reader)
38 if err != nil {
39 errorf("import %q: read varint error: %v", r.path, err)
40 }
41 return i
42}
43
44const predeclReserved = 32
45
46type itag uint64
47
48const (
49 // Types
50 definedType itag = iota
51 pointerType
52 sliceType
53 arrayType
54 chanType
55 mapType
56 signatureType
57 structType
58 interfaceType
59)
60
61// IImportData imports a package from the serialized package data
62// and returns the number of bytes consumed and a reference to the package.
63// If the export data version is not recognized or the format is otherwise
64// compromised, an error is returned.
65func IImportData(fset *token.FileSet, imports map[string]*types.Package, data []byte, path string) (_ int, pkg *types.Package, err error) {
66 const currentVersion = 1
67 version := int64(-1)
68 defer func() {
69 if e := recover(); e != nil {
70 if version > currentVersion {
71 err = fmt.Errorf("cannot import %q (%v), export data is newer version - update tool", path, e)
72 } else {
73 err = fmt.Errorf("cannot import %q (%v), possibly version skew - reinstall package", path, e)
74 }
75 }
76 }()
77
78 r := &intReader{bytes.NewReader(data), path}
79
80 version = int64(r.uint64())
81 switch version {
82 case currentVersion, 0:
83 default:
84 errorf("unknown iexport format version %d", version)
85 }
86
87 sLen := int64(r.uint64())
88 dLen := int64(r.uint64())
89
90 whence, _ := r.Seek(0, io.SeekCurrent)
91 stringData := data[whence : whence+sLen]
92 declData := data[whence+sLen : whence+sLen+dLen]
93 r.Seek(sLen+dLen, io.SeekCurrent)
94
95 p := iimporter{
96 ipath: path,
97 version: int(version),
98
99 stringData: stringData,
100 stringCache: make(map[uint64]string),
101 pkgCache: make(map[uint64]*types.Package),
102
103 declData: declData,
104 pkgIndex: make(map[*types.Package]map[string]uint64),
105 typCache: make(map[uint64]types.Type),
106
107 fake: fakeFileSet{
108 fset: fset,
109 files: make(map[string]*token.File),
110 },
111 }
112
113 for i, pt := range predeclared() {
114 p.typCache[uint64(i)] = pt
115 }
116
117 pkgList := make([]*types.Package, r.uint64())
118 for i := range pkgList {
119 pkgPathOff := r.uint64()
120 pkgPath := p.stringAt(pkgPathOff)
121 pkgName := p.stringAt(r.uint64())
122 _ = r.uint64() // package height; unused by go/types
123
124 if pkgPath == "" {
125 pkgPath = path
126 }
127 pkg := imports[pkgPath]
128 if pkg == nil {
129 pkg = types.NewPackage(pkgPath, pkgName)
130 imports[pkgPath] = pkg
131 } else if pkg.Name() != pkgName {
132 errorf("conflicting names %s and %s for package %q", pkg.Name(), pkgName, path)
133 }
134
135 p.pkgCache[pkgPathOff] = pkg
136
137 nameIndex := make(map[string]uint64)
138 for nSyms := r.uint64(); nSyms > 0; nSyms-- {
139 name := p.stringAt(r.uint64())
140 nameIndex[name] = r.uint64()
141 }
142
143 p.pkgIndex[pkg] = nameIndex
144 pkgList[i] = pkg
145 }
146 if len(pkgList) == 0 {
147 errorf("no packages found for %s", path)
148 panic("unreachable")
149 }
150 p.ipkg = pkgList[0]
151 names := make([]string, 0, len(p.pkgIndex[p.ipkg]))
152 for name := range p.pkgIndex[p.ipkg] {
153 names = append(names, name)
154 }
155 sort.Strings(names)
156 for _, name := range names {
157 p.doDecl(p.ipkg, name)
158 }
159
160 for _, typ := range p.interfaceList {
161 typ.Complete()
162 }
163
164 // record all referenced packages as imports
165 list := append(([]*types.Package)(nil), pkgList[1:]...)
166 sort.Sort(byPath(list))
167 p.ipkg.SetImports(list)
168
169 // package was imported completely and without errors
170 p.ipkg.MarkComplete()
171
172 consumed, _ := r.Seek(0, io.SeekCurrent)
173 return int(consumed), p.ipkg, nil
174}
175
176type iimporter struct {
177 ipath string
178 ipkg *types.Package
179 version int
180
181 stringData []byte
182 stringCache map[uint64]string
183 pkgCache map[uint64]*types.Package
184
185 declData []byte
186 pkgIndex map[*types.Package]map[string]uint64
187 typCache map[uint64]types.Type
188
189 fake fakeFileSet
190 interfaceList []*types.Interface
191}
192
193func (p *iimporter) doDecl(pkg *types.Package, name string) {
194 // See if we've already imported this declaration.
195 if obj := pkg.Scope().Lookup(name); obj != nil {
196 return
197 }
198
199 off, ok := p.pkgIndex[pkg][name]
200 if !ok {
201 errorf("%v.%v not in index", pkg, name)
202 }
203
204 r := &importReader{p: p, currPkg: pkg}
205 r.declReader.Reset(p.declData[off:])
206
207 r.obj(name)
208}
209
210func (p *iimporter) stringAt(off uint64) string {
211 if s, ok := p.stringCache[off]; ok {
212 return s
213 }
214
215 slen, n := binary.Uvarint(p.stringData[off:])
216 if n <= 0 {
217 errorf("varint failed")
218 }
219 spos := off + uint64(n)
220 s := string(p.stringData[spos : spos+slen])
221 p.stringCache[off] = s
222 return s
223}
224
225func (p *iimporter) pkgAt(off uint64) *types.Package {
226 if pkg, ok := p.pkgCache[off]; ok {
227 return pkg
228 }
229 path := p.stringAt(off)
230 if path == p.ipath {
231 return p.ipkg
232 }
233 errorf("missing package %q in %q", path, p.ipath)
234 return nil
235}
236
237func (p *iimporter) typAt(off uint64, base *types.Named) types.Type {
238 if t, ok := p.typCache[off]; ok && (base == nil || !isInterface(t)) {
239 return t
240 }
241
242 if off < predeclReserved {
243 errorf("predeclared type missing from cache: %v", off)
244 }
245
246 r := &importReader{p: p}
247 r.declReader.Reset(p.declData[off-predeclReserved:])
248 t := r.doType(base)
249
250 if base == nil || !isInterface(t) {
251 p.typCache[off] = t
252 }
253 return t
254}
255
256type importReader struct {
257 p *iimporter
258 declReader bytes.Reader
259 currPkg *types.Package
260 prevFile string
261 prevLine int64
262 prevColumn int64
263}
264
265func (r *importReader) obj(name string) {
266 tag := r.byte()
267 pos := r.pos()
268
269 switch tag {
270 case 'A':
271 typ := r.typ()
272
273 r.declare(types.NewTypeName(pos, r.currPkg, name, typ))
274
275 case 'C':
276 typ, val := r.value()
277
278 r.declare(types.NewConst(pos, r.currPkg, name, typ, val))
279
280 case 'F':
281 sig := r.signature(nil)
282
283 r.declare(types.NewFunc(pos, r.currPkg, name, sig))
284
285 case 'T':
286 // Types can be recursive. We need to setup a stub
287 // declaration before recursing.
288 obj := types.NewTypeName(pos, r.currPkg, name, nil)
289 named := types.NewNamed(obj, nil, nil)
290 r.declare(obj)
291
292 underlying := r.p.typAt(r.uint64(), named).Underlying()
293 named.SetUnderlying(underlying)
294
295 if !isInterface(underlying) {
296 for n := r.uint64(); n > 0; n-- {
297 mpos := r.pos()
298 mname := r.ident()
299 recv := r.param()
300 msig := r.signature(recv)
301
302 named.AddMethod(types.NewFunc(mpos, r.currPkg, mname, msig))
303 }
304 }
305
306 case 'V':
307 typ := r.typ()
308
309 r.declare(types.NewVar(pos, r.currPkg, name, typ))
310
311 default:
312 errorf("unexpected tag: %v", tag)
313 }
314}
315
316func (r *importReader) declare(obj types.Object) {
317 obj.Pkg().Scope().Insert(obj)
318}
319
320func (r *importReader) value() (typ types.Type, val constant.Value) {
321 typ = r.typ()
322
323 switch b := typ.Underlying().(*types.Basic); b.Info() & types.IsConstType {
324 case types.IsBoolean:
325 val = constant.MakeBool(r.bool())
326
327 case types.IsString:
328 val = constant.MakeString(r.string())
329
330 case types.IsInteger:
331 val = r.mpint(b)
332
333 case types.IsFloat:
334 val = r.mpfloat(b)
335
336 case types.IsComplex:
337 re := r.mpfloat(b)
338 im := r.mpfloat(b)
339 val = constant.BinaryOp(re, token.ADD, constant.MakeImag(im))
340
341 default:
342 if b.Kind() == types.Invalid {
343 val = constant.MakeUnknown()
344 return
345 }
346 errorf("unexpected type %v", typ) // panics
347 panic("unreachable")
348 }
349
350 return
351}
352
353func intSize(b *types.Basic) (signed bool, maxBytes uint) {
354 if (b.Info() & types.IsUntyped) != 0 {
355 return true, 64
356 }
357
358 switch b.Kind() {
359 case types.Float32, types.Complex64:
360 return true, 3
361 case types.Float64, types.Complex128:
362 return true, 7
363 }
364
365 signed = (b.Info() & types.IsUnsigned) == 0
366 switch b.Kind() {
367 case types.Int8, types.Uint8:
368 maxBytes = 1
369 case types.Int16, types.Uint16:
370 maxBytes = 2
371 case types.Int32, types.Uint32:
372 maxBytes = 4
373 default:
374 maxBytes = 8
375 }
376
377 return
378}
379
380func (r *importReader) mpint(b *types.Basic) constant.Value {
381 signed, maxBytes := intSize(b)
382
383 maxSmall := 256 - maxBytes
384 if signed {
385 maxSmall = 256 - 2*maxBytes
386 }
387 if maxBytes == 1 {
388 maxSmall = 256
389 }
390
391 n, _ := r.declReader.ReadByte()
392 if uint(n) < maxSmall {
393 v := int64(n)
394 if signed {
395 v >>= 1
396 if n&1 != 0 {
397 v = ^v
398 }
399 }
400 return constant.MakeInt64(v)
401 }
402
403 v := -n
404 if signed {
405 v = -(n &^ 1) >> 1
406 }
407 if v < 1 || uint(v) > maxBytes {
408 errorf("weird decoding: %v, %v => %v", n, signed, v)
409 }
410
411 buf := make([]byte, v)
412 io.ReadFull(&r.declReader, buf)
413
414 // convert to little endian
415 // TODO(gri) go/constant should have a more direct conversion function
416 // (e.g., once it supports a big.Float based implementation)
417 for i, j := 0, len(buf)-1; i < j; i, j = i+1, j-1 {
418 buf[i], buf[j] = buf[j], buf[i]
419 }
420
421 x := constant.MakeFromBytes(buf)
422 if signed && n&1 != 0 {
423 x = constant.UnaryOp(token.SUB, x, 0)
424 }
425 return x
426}
427
428func (r *importReader) mpfloat(b *types.Basic) constant.Value {
429 x := r.mpint(b)
430 if constant.Sign(x) == 0 {
431 return x
432 }
433
434 exp := r.int64()
435 switch {
436 case exp > 0:
437 x = constant.Shift(x, token.SHL, uint(exp))
438 case exp < 0:
439 d := constant.Shift(constant.MakeInt64(1), token.SHL, uint(-exp))
440 x = constant.BinaryOp(x, token.QUO, d)
441 }
442 return x
443}
444
445func (r *importReader) ident() string {
446 return r.string()
447}
448
449func (r *importReader) qualifiedIdent() (*types.Package, string) {
450 name := r.string()
451 pkg := r.pkg()
452 return pkg, name
453}
454
455func (r *importReader) pos() token.Pos {
456 if r.p.version >= 1 {
457 r.posv1()
458 } else {
459 r.posv0()
460 }
461
462 if r.prevFile == "" && r.prevLine == 0 && r.prevColumn == 0 {
463 return token.NoPos
464 }
465 return r.p.fake.pos(r.prevFile, int(r.prevLine), int(r.prevColumn))
466}
467
468func (r *importReader) posv0() {
469 delta := r.int64()
470 if delta != deltaNewFile {
471 r.prevLine += delta
472 } else if l := r.int64(); l == -1 {
473 r.prevLine += deltaNewFile
474 } else {
475 r.prevFile = r.string()
476 r.prevLine = l
477 }
478}
479
480func (r *importReader) posv1() {
481 delta := r.int64()
482 r.prevColumn += delta >> 1
483 if delta&1 != 0 {
484 delta = r.int64()
485 r.prevLine += delta >> 1
486 if delta&1 != 0 {
487 r.prevFile = r.string()
488 }
489 }
490}
491
492func (r *importReader) typ() types.Type {
493 return r.p.typAt(r.uint64(), nil)
494}
495
496func isInterface(t types.Type) bool {
497 _, ok := t.(*types.Interface)
498 return ok
499}
500
501func (r *importReader) pkg() *types.Package { return r.p.pkgAt(r.uint64()) }
502func (r *importReader) string() string { return r.p.stringAt(r.uint64()) }
503
504func (r *importReader) doType(base *types.Named) types.Type {
505 switch k := r.kind(); k {
506 default:
507 errorf("unexpected kind tag in %q: %v", r.p.ipath, k)
508 return nil
509
510 case definedType:
511 pkg, name := r.qualifiedIdent()
512 r.p.doDecl(pkg, name)
513 return pkg.Scope().Lookup(name).(*types.TypeName).Type()
514 case pointerType:
515 return types.NewPointer(r.typ())
516 case sliceType:
517 return types.NewSlice(r.typ())
518 case arrayType:
519 n := r.uint64()
520 return types.NewArray(r.typ(), int64(n))
521 case chanType:
522 dir := chanDir(int(r.uint64()))
523 return types.NewChan(dir, r.typ())
524 case mapType:
525 return types.NewMap(r.typ(), r.typ())
526 case signatureType:
527 r.currPkg = r.pkg()
528 return r.signature(nil)
529
530 case structType:
531 r.currPkg = r.pkg()
532
533 fields := make([]*types.Var, r.uint64())
534 tags := make([]string, len(fields))
535 for i := range fields {
536 fpos := r.pos()
537 fname := r.ident()
538 ftyp := r.typ()
539 emb := r.bool()
540 tag := r.string()
541
542 fields[i] = types.NewField(fpos, r.currPkg, fname, ftyp, emb)
543 tags[i] = tag
544 }
545 return types.NewStruct(fields, tags)
546
547 case interfaceType:
548 r.currPkg = r.pkg()
549
550 embeddeds := make([]types.Type, r.uint64())
551 for i := range embeddeds {
552 _ = r.pos()
553 embeddeds[i] = r.typ()
554 }
555
556 methods := make([]*types.Func, r.uint64())
557 for i := range methods {
558 mpos := r.pos()
559 mname := r.ident()
560
561 // TODO(mdempsky): Matches bimport.go, but I
562 // don't agree with this.
563 var recv *types.Var
564 if base != nil {
565 recv = types.NewVar(token.NoPos, r.currPkg, "", base)
566 }
567
568 msig := r.signature(recv)
569 methods[i] = types.NewFunc(mpos, r.currPkg, mname, msig)
570 }
571
572 typ := newInterface(methods, embeddeds)
573 r.p.interfaceList = append(r.p.interfaceList, typ)
574 return typ
575 }
576}
577
578func (r *importReader) kind() itag {
579 return itag(r.uint64())
580}
581
582func (r *importReader) signature(recv *types.Var) *types.Signature {
583 params := r.paramList()
584 results := r.paramList()
585 variadic := params.Len() > 0 && r.bool()
586 return types.NewSignature(recv, params, results, variadic)
587}
588
589func (r *importReader) paramList() *types.Tuple {
590 xs := make([]*types.Var, r.uint64())
591 for i := range xs {
592 xs[i] = r.param()
593 }
594 return types.NewTuple(xs...)
595}
596
597func (r *importReader) param() *types.Var {
598 pos := r.pos()
599 name := r.ident()
600 typ := r.typ()
601 return types.NewParam(pos, r.currPkg, name, typ)
602}
603
604func (r *importReader) bool() bool {
605 return r.uint64() != 0
606}
607
608func (r *importReader) int64() int64 {
609 n, err := binary.ReadVarint(&r.declReader)
610 if err != nil {
611 errorf("readVarint: %v", err)
612 }
613 return n
614}
615
616func (r *importReader) uint64() uint64 {
617 n, err := binary.ReadUvarint(&r.declReader)
618 if err != nil {
619 errorf("readUvarint: %v", err)
620 }
621 return n
622}
623
624func (r *importReader) byte() byte {
625 x, err := r.declReader.ReadByte()
626 if err != nil {
627 errorf("declReader.ReadByte: %v", err)
628 }
629 return x
630}
diff --git a/vendor/golang.org/x/tools/go/internal/gcimporter/newInterface10.go b/vendor/golang.org/x/tools/go/internal/gcimporter/newInterface10.go
new file mode 100644
index 0000000..463f252
--- /dev/null
+++ b/vendor/golang.org/x/tools/go/internal/gcimporter/newInterface10.go
@@ -0,0 +1,21 @@
1// Copyright 2018 The Go Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style
3// license that can be found in the LICENSE file.
4
5// +build !go1.11
6
7package gcimporter
8
9import "go/types"
10
11func newInterface(methods []*types.Func, embeddeds []types.Type) *types.Interface {
12 named := make([]*types.Named, len(embeddeds))
13 for i, e := range embeddeds {
14 var ok bool
15 named[i], ok = e.(*types.Named)
16 if !ok {
17 panic("embedding of non-defined interfaces in interfaces is not supported before Go 1.11")
18 }
19 }
20 return types.NewInterface(methods, named)
21}
diff --git a/vendor/golang.org/x/tools/go/internal/gcimporter/newInterface11.go b/vendor/golang.org/x/tools/go/internal/gcimporter/newInterface11.go
new file mode 100644
index 0000000..ab28b95
--- /dev/null
+++ b/vendor/golang.org/x/tools/go/internal/gcimporter/newInterface11.go
@@ -0,0 +1,13 @@
1// Copyright 2018 The Go Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style
3// license that can be found in the LICENSE file.
4
5// +build go1.11
6
7package gcimporter
8
9import "go/types"
10
11func newInterface(methods []*types.Func, embeddeds []types.Type) *types.Interface {
12 return types.NewInterfaceType(methods, embeddeds)
13}
diff --git a/vendor/golang.org/x/tools/go/internal/packagesdriver/sizes.go b/vendor/golang.org/x/tools/go/internal/packagesdriver/sizes.go
new file mode 100644
index 0000000..db0c9a7
--- /dev/null
+++ b/vendor/golang.org/x/tools/go/internal/packagesdriver/sizes.go
@@ -0,0 +1,174 @@
1// Copyright 2018 The Go Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style
3// license that can be found in the LICENSE file.
4
5// Package packagesdriver fetches type sizes for go/packages and go/analysis.
6package packagesdriver
7
8import (
9 "bytes"
10 "context"
11 "encoding/json"
12 "fmt"
13 "go/types"
14 "log"
15 "os"
16 "os/exec"
17 "strings"
18 "time"
19)
20
21var debug = false
22
23// GetSizes returns the sizes used by the underlying driver with the given parameters.
24func GetSizes(ctx context.Context, buildFlags, env []string, dir string, usesExportData bool) (types.Sizes, error) {
25 // TODO(matloob): Clean this up. This code is mostly a copy of packages.findExternalDriver.
26 const toolPrefix = "GOPACKAGESDRIVER="
27 tool := ""
28 for _, env := range env {
29 if val := strings.TrimPrefix(env, toolPrefix); val != env {
30 tool = val
31 }
32 }
33
34 if tool == "" {
35 var err error
36 tool, err = exec.LookPath("gopackagesdriver")
37 if err != nil {
38 // We did not find the driver, so use "go list".
39 tool = "off"
40 }
41 }
42
43 if tool == "off" {
44 return GetSizesGolist(ctx, buildFlags, env, dir, usesExportData)
45 }
46
47 req, err := json.Marshal(struct {
48 Command string `json:"command"`
49 Env []string `json:"env"`
50 BuildFlags []string `json:"build_flags"`
51 }{
52 Command: "sizes",
53 Env: env,
54 BuildFlags: buildFlags,
55 })
56 if err != nil {
57 return nil, fmt.Errorf("failed to encode message to driver tool: %v", err)
58 }
59
60 buf := new(bytes.Buffer)
61 cmd := exec.CommandContext(ctx, tool)
62 cmd.Dir = dir
63 cmd.Env = env
64 cmd.Stdin = bytes.NewReader(req)
65 cmd.Stdout = buf
66 cmd.Stderr = new(bytes.Buffer)
67 if err := cmd.Run(); err != nil {
68 return nil, fmt.Errorf("%v: %v: %s", tool, err, cmd.Stderr)
69 }
70 var response struct {
71 // Sizes, if not nil, is the types.Sizes to use when type checking.
72 Sizes *types.StdSizes
73 }
74 if err := json.Unmarshal(buf.Bytes(), &response); err != nil {
75 return nil, err
76 }
77 return response.Sizes, nil
78}
79
80func GetSizesGolist(ctx context.Context, buildFlags, env []string, dir string, usesExportData bool) (types.Sizes, error) {
81 args := []string{"list", "-f", "{{context.GOARCH}} {{context.Compiler}}"}
82 args = append(args, buildFlags...)
83 args = append(args, "--", "unsafe")
84 stdout, stderr, err := invokeGo(ctx, env, dir, usesExportData, args...)
85 var goarch, compiler string
86 if err != nil {
87 if strings.Contains(err.Error(), "cannot find main module") {
88 // User's running outside of a module. All bets are off. Get GOARCH and guess compiler is gc.
89 // TODO(matloob): Is this a problem in practice?
90 envout, _, enverr := invokeGo(ctx, env, dir, usesExportData, "env", "GOARCH")
91 if enverr != nil {
92 return nil, err
93 }
94 goarch = strings.TrimSpace(envout.String())
95 compiler = "gc"
96 } else {
97 return nil, err
98 }
99 } else {
100 fields := strings.Fields(stdout.String())
101 if len(fields) < 2 {
102 return nil, fmt.Errorf("could not parse GOARCH and Go compiler in format \"<GOARCH> <compiler>\" from stdout of go command:\n%s\ndir: %s\nstdout: <<%s>>\nstderr: <<%s>>",
103 cmdDebugStr(env, args...), dir, stdout.String(), stderr.String())
104 }
105 goarch = fields[0]
106 compiler = fields[1]
107 }
108 return types.SizesFor(compiler, goarch), nil
109}
110
111// invokeGo returns the stdout and stderr of a go command invocation.
112func invokeGo(ctx context.Context, env []string, dir string, usesExportData bool, args ...string) (*bytes.Buffer, *bytes.Buffer, error) {
113 if debug {
114 defer func(start time.Time) { log.Printf("%s for %v", time.Since(start), cmdDebugStr(env, args...)) }(time.Now())
115 }
116 stdout := new(bytes.Buffer)
117 stderr := new(bytes.Buffer)
118 cmd := exec.CommandContext(ctx, "go", args...)
119 // On darwin the cwd gets resolved to the real path, which breaks anything that
120 // expects the working directory to keep the original path, including the
121 // go command when dealing with modules.
122 // The Go stdlib has a special feature where if the cwd and the PWD are the
123 // same node then it trusts the PWD, so by setting it in the env for the child
124 // process we fix up all the paths returned by the go command.
125 cmd.Env = append(append([]string{}, env...), "PWD="+dir)
126 cmd.Dir = dir
127 cmd.Stdout = stdout
128 cmd.Stderr = stderr
129 if err := cmd.Run(); err != nil {
130 exitErr, ok := err.(*exec.ExitError)
131 if !ok {
132 // Catastrophic error:
133 // - executable not found
134 // - context cancellation
135 return nil, nil, fmt.Errorf("couldn't exec 'go %v': %s %T", args, err, err)
136 }
137
138 // Export mode entails a build.
139 // If that build fails, errors appear on stderr
140 // (despite the -e flag) and the Export field is blank.
141 // Do not fail in that case.
142 if !usesExportData {
143 return nil, nil, fmt.Errorf("go %v: %s: %s", args, exitErr, stderr)
144 }
145 }
146
147 // As of writing, go list -export prints some non-fatal compilation
148 // errors to stderr, even with -e set. We would prefer that it put
149 // them in the Package.Error JSON (see https://golang.org/issue/26319).
150 // In the meantime, there's nowhere good to put them, but they can
151 // be useful for debugging. Print them if $GOPACKAGESPRINTGOLISTERRORS
152 // is set.
153 if len(stderr.Bytes()) != 0 && os.Getenv("GOPACKAGESPRINTGOLISTERRORS") != "" {
154 fmt.Fprintf(os.Stderr, "%s stderr: <<%s>>\n", cmdDebugStr(env, args...), stderr)
155 }
156
157 // debugging
158 if false {
159 fmt.Fprintf(os.Stderr, "%s stdout: <<%s>>\n", cmdDebugStr(env, args...), stdout)
160 }
161
162 return stdout, stderr, nil
163}
164
165func cmdDebugStr(envlist []string, args ...string) string {
166 env := make(map[string]string)
167 for _, kv := range envlist {
168 split := strings.Split(kv, "=")
169 k, v := split[0], split[1]
170 env[k] = v
171 }
172
173 return fmt.Sprintf("GOROOT=%v GOPATH=%v GO111MODULE=%v PWD=%v go %v", env["GOROOT"], env["GOPATH"], env["GO111MODULE"], env["PWD"], args)
174}
diff --git a/vendor/golang.org/x/tools/go/packages/doc.go b/vendor/golang.org/x/tools/go/packages/doc.go
new file mode 100644
index 0000000..4bfe28a
--- /dev/null
+++ b/vendor/golang.org/x/tools/go/packages/doc.go
@@ -0,0 +1,221 @@
1// Copyright 2018 The Go Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style
3// license that can be found in the LICENSE file.
4
5/*
6Package packages loads Go packages for inspection and analysis.
7
8The Load function takes as input a list of patterns and return a list of Package
9structs describing individual packages matched by those patterns.
10The LoadMode controls the amount of detail in the loaded packages.
11
12Load passes most patterns directly to the underlying build tool,
13but all patterns with the prefix "query=", where query is a
14non-empty string of letters from [a-z], are reserved and may be
15interpreted as query operators.
16
17Two query operators are currently supported: "file" and "pattern".
18
19The query "file=path/to/file.go" matches the package or packages enclosing
20the Go source file path/to/file.go. For example "file=~/go/src/fmt/print.go"
21might return the packages "fmt" and "fmt [fmt.test]".
22
23The query "pattern=string" causes "string" to be passed directly to
24the underlying build tool. In most cases this is unnecessary,
25but an application can use Load("pattern=" + x) as an escaping mechanism
26to ensure that x is not interpreted as a query operator if it contains '='.
27
28All other query operators are reserved for future use and currently
29cause Load to report an error.
30
31The Package struct provides basic information about the package, including
32
33 - ID, a unique identifier for the package in the returned set;
34 - GoFiles, the names of the package's Go source files;
35 - Imports, a map from source import strings to the Packages they name;
36 - Types, the type information for the package's exported symbols;
37 - Syntax, the parsed syntax trees for the package's source code; and
38 - TypeInfo, the result of a complete type-check of the package syntax trees.
39
40(See the documentation for type Package for the complete list of fields
41and more detailed descriptions.)
42
43For example,
44
45 Load(nil, "bytes", "unicode...")
46
47returns four Package structs describing the standard library packages
48bytes, unicode, unicode/utf16, and unicode/utf8. Note that one pattern
49can match multiple packages and that a package might be matched by
50multiple patterns: in general it is not possible to determine which
51packages correspond to which patterns.
52
53Note that the list returned by Load contains only the packages matched
54by the patterns. Their dependencies can be found by walking the import
55graph using the Imports fields.
56
57The Load function can be configured by passing a pointer to a Config as
58the first argument. A nil Config is equivalent to the zero Config, which
59causes Load to run in LoadFiles mode, collecting minimal information.
60See the documentation for type Config for details.
61
62As noted earlier, the Config.Mode controls the amount of detail
63reported about the loaded packages. See the documentation for type LoadMode
64for details.
65
66Most tools should pass their command-line arguments (after any flags)
67uninterpreted to the loader, so that the loader can interpret them
68according to the conventions of the underlying build system.
69See the Example function for typical usage.
70
71*/
72package packages // import "golang.org/x/tools/go/packages"
73
74/*
75
76Motivation and design considerations
77
78The new package's design solves problems addressed by two existing
79packages: go/build, which locates and describes packages, and
80golang.org/x/tools/go/loader, which loads, parses and type-checks them.
81The go/build.Package structure encodes too much of the 'go build' way
82of organizing projects, leaving us in need of a data type that describes a
83package of Go source code independent of the underlying build system.
84We wanted something that works equally well with go build and vgo, and
85also other build systems such as Bazel and Blaze, making it possible to
86construct analysis tools that work in all these environments.
87Tools such as errcheck and staticcheck were essentially unavailable to
88the Go community at Google, and some of Google's internal tools for Go
89are unavailable externally.
90This new package provides a uniform way to obtain package metadata by
91querying each of these build systems, optionally supporting their
92preferred command-line notations for packages, so that tools integrate
93neatly with users' build environments. The Metadata query function
94executes an external query tool appropriate to the current workspace.
95
96Loading packages always returns the complete import graph "all the way down",
97even if all you want is information about a single package, because the query
98mechanisms of all the build systems we currently support ({go,vgo} list, and
99blaze/bazel aspect-based query) cannot provide detailed information
100about one package without visiting all its dependencies too, so there is
101no additional asymptotic cost to providing transitive information.
102(This property might not be true of a hypothetical 5th build system.)
103
104In calls to TypeCheck, all initial packages, and any package that
105transitively depends on one of them, must be loaded from source.
106Consider A->B->C->D->E: if A,C are initial, A,B,C must be loaded from
107source; D may be loaded from export data, and E may not be loaded at all
108(though it's possible that D's export data mentions it, so a
109types.Package may be created for it and exposed.)
110
111The old loader had a feature to suppress type-checking of function
112bodies on a per-package basis, primarily intended to reduce the work of
113obtaining type information for imported packages. Now that imports are
114satisfied by export data, the optimization no longer seems necessary.
115
116Despite some early attempts, the old loader did not exploit export data,
117instead always using the equivalent of WholeProgram mode. This was due
118to the complexity of mixing source and export data packages (now
119resolved by the upward traversal mentioned above), and because export data
120files were nearly always missing or stale. Now that 'go build' supports
121caching, all the underlying build systems can guarantee to produce
122export data in a reasonable (amortized) time.
123
124Test "main" packages synthesized by the build system are now reported as
125first-class packages, avoiding the need for clients (such as go/ssa) to
126reinvent this generation logic.
127
128One way in which go/packages is simpler than the old loader is in its
129treatment of in-package tests. In-package tests are packages that
130consist of all the files of the library under test, plus the test files.
131The old loader constructed in-package tests by a two-phase process of
132mutation called "augmentation": first it would construct and type check
133all the ordinary library packages and type-check the packages that
134depend on them; then it would add more (test) files to the package and
135type-check again. This two-phase approach had four major problems:
1361) in processing the tests, the loader modified the library package,
137 leaving no way for a client application to see both the test
138 package and the library package; one would mutate into the other.
1392) because test files can declare additional methods on types defined in
140 the library portion of the package, the dispatch of method calls in
141 the library portion was affected by the presence of the test files.
142 This should have been a clue that the packages were logically
143 different.
1443) this model of "augmentation" assumed at most one in-package test
145 per library package, which is true of projects using 'go build',
146 but not other build systems.
1474) because of the two-phase nature of test processing, all packages that
148 import the library package had to be processed before augmentation,
149 forcing a "one-shot" API and preventing the client from calling Load
150 in several times in sequence as is now possible in WholeProgram mode.
151 (TypeCheck mode has a similar one-shot restriction for a different reason.)
152
153Early drafts of this package supported "multi-shot" operation.
154Although it allowed clients to make a sequence of calls (or concurrent
155calls) to Load, building up the graph of Packages incrementally,
156it was of marginal value: it complicated the API
157(since it allowed some options to vary across calls but not others),
158it complicated the implementation,
159it cannot be made to work in Types mode, as explained above,
160and it was less efficient than making one combined call (when this is possible).
161Among the clients we have inspected, none made multiple calls to load
162but could not be easily and satisfactorily modified to make only a single call.
163However, applications changes may be required.
164For example, the ssadump command loads the user-specified packages
165and in addition the runtime package. It is tempting to simply append
166"runtime" to the user-provided list, but that does not work if the user
167specified an ad-hoc package such as [a.go b.go].
168Instead, ssadump no longer requests the runtime package,
169but seeks it among the dependencies of the user-specified packages,
170and emits an error if it is not found.
171
172Overlays: The Overlay field in the Config allows providing alternate contents
173for Go source files, by providing a mapping from file path to contents.
174go/packages will pull in new imports added in overlay files when go/packages
175is run in LoadImports mode or greater.
176Overlay support for the go list driver isn't complete yet: if the file doesn't
177exist on disk, it will only be recognized in an overlay if it is a non-test file
178and the package would be reported even without the overlay.
179
180Questions & Tasks
181
182- Add GOARCH/GOOS?
183 They are not portable concepts, but could be made portable.
184 Our goal has been to allow users to express themselves using the conventions
185 of the underlying build system: if the build system honors GOARCH
186 during a build and during a metadata query, then so should
187 applications built atop that query mechanism.
188 Conversely, if the target architecture of the build is determined by
189 command-line flags, the application can pass the relevant
190 flags through to the build system using a command such as:
191 myapp -query_flag="--cpu=amd64" -query_flag="--os=darwin"
192 However, this approach is low-level, unwieldy, and non-portable.
193 GOOS and GOARCH seem important enough to warrant a dedicated option.
194
195- How should we handle partial failures such as a mixture of good and
196 malformed patterns, existing and non-existent packages, successful and
197 failed builds, import failures, import cycles, and so on, in a call to
198 Load?
199
200- Support bazel, blaze, and go1.10 list, not just go1.11 list.
201
202- Handle (and test) various partial success cases, e.g.
203 a mixture of good packages and:
204 invalid patterns
205 nonexistent packages
206 empty packages
207 packages with malformed package or import declarations
208 unreadable files
209 import cycles
210 other parse errors
211 type errors
212 Make sure we record errors at the correct place in the graph.
213
214- Missing packages among initial arguments are not reported.
215 Return bogus packages for them, like golist does.
216
217- "undeclared name" errors (for example) are reported out of source file
218 order. I suspect this is due to the breadth-first resolution now used
219 by go/types. Is that a bug? Discuss with gri.
220
221*/
diff --git a/vendor/golang.org/x/tools/go/packages/external.go b/vendor/golang.org/x/tools/go/packages/external.go
new file mode 100644
index 0000000..8c8473f
--- /dev/null
+++ b/vendor/golang.org/x/tools/go/packages/external.go
@@ -0,0 +1,101 @@
1// Copyright 2018 The Go Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style
3// license that can be found in the LICENSE file.
4
5// This file enables an external tool to intercept package requests.
6// If the tool is present then its results are used in preference to
7// the go list command.
8
9package packages
10
11import (
12 "bytes"
13 "encoding/json"
14 "fmt"
15 "os"
16 "os/exec"
17 "strings"
18)
19
20// The Driver Protocol
21//
22// The driver, given the inputs to a call to Load, returns metadata about the packages specified.
23// This allows for different build systems to support go/packages by telling go/packages how the
24// packages' source is organized.
25// The driver is a binary, either specified by the GOPACKAGESDRIVER environment variable or in
26// the path as gopackagesdriver. It's given the inputs to load in its argv. See the package
27// documentation in doc.go for the full description of the patterns that need to be supported.
28// A driver receives as a JSON-serialized driverRequest struct in standard input and will
29// produce a JSON-serialized driverResponse (see definition in packages.go) in its standard output.
30
31// driverRequest is used to provide the portion of Load's Config that is needed by a driver.
32type driverRequest struct {
33 Mode LoadMode `json:"mode"`
34 // Env specifies the environment the underlying build system should be run in.
35 Env []string `json:"env"`
36 // BuildFlags are flags that should be passed to the underlying build system.
37 BuildFlags []string `json:"build_flags"`
38 // Tests specifies whether the patterns should also return test packages.
39 Tests bool `json:"tests"`
40 // Overlay maps file paths (relative to the driver's working directory) to the byte contents
41 // of overlay files.
42 Overlay map[string][]byte `json:"overlay"`
43}
44
45// findExternalDriver returns the file path of a tool that supplies
46// the build system package structure, or "" if not found."
47// If GOPACKAGESDRIVER is set in the environment findExternalTool returns its
48// value, otherwise it searches for a binary named gopackagesdriver on the PATH.
49func findExternalDriver(cfg *Config) driver {
50 const toolPrefix = "GOPACKAGESDRIVER="
51 tool := ""
52 for _, env := range cfg.Env {
53 if val := strings.TrimPrefix(env, toolPrefix); val != env {
54 tool = val
55 }
56 }
57 if tool != "" && tool == "off" {
58 return nil
59 }
60 if tool == "" {
61 var err error
62 tool, err = exec.LookPath("gopackagesdriver")
63 if err != nil {
64 return nil
65 }
66 }
67 return func(cfg *Config, words ...string) (*driverResponse, error) {
68 req, err := json.Marshal(driverRequest{
69 Mode: cfg.Mode,
70 Env: cfg.Env,
71 BuildFlags: cfg.BuildFlags,
72 Tests: cfg.Tests,
73 Overlay: cfg.Overlay,
74 })
75 if err != nil {
76 return nil, fmt.Errorf("failed to encode message to driver tool: %v", err)
77 }
78
79 buf := new(bytes.Buffer)
80 stderr := new(bytes.Buffer)
81 cmd := exec.CommandContext(cfg.Context, tool, words...)
82 cmd.Dir = cfg.Dir
83 cmd.Env = cfg.Env
84 cmd.Stdin = bytes.NewReader(req)
85 cmd.Stdout = buf
86 cmd.Stderr = stderr
87
88 if err := cmd.Run(); err != nil {
89 return nil, fmt.Errorf("%v: %v: %s", tool, err, cmd.Stderr)
90 }
91 if len(stderr.Bytes()) != 0 && os.Getenv("GOPACKAGESPRINTDRIVERERRORS") != "" {
92 fmt.Fprintf(os.Stderr, "%s stderr: <<%s>>\n", cmdDebugStr(cmd, words...), stderr)
93 }
94
95 var response driverResponse
96 if err := json.Unmarshal(buf.Bytes(), &response); err != nil {
97 return nil, err
98 }
99 return &response, nil
100 }
101}
diff --git a/vendor/golang.org/x/tools/go/packages/golist.go b/vendor/golang.org/x/tools/go/packages/golist.go
new file mode 100644
index 0000000..fc0b28e
--- /dev/null
+++ b/vendor/golang.org/x/tools/go/packages/golist.go
@@ -0,0 +1,895 @@
1// Copyright 2018 The Go Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style
3// license that can be found in the LICENSE file.
4
5package packages
6
7import (
8 "bytes"
9 "context"
10 "encoding/json"
11 "fmt"
12 "go/types"
13 "log"
14 "os"
15 "os/exec"
16 "path"
17 "path/filepath"
18 "reflect"
19 "sort"
20 "strconv"
21 "strings"
22 "sync"
23 "time"
24 "unicode"
25
26 "golang.org/x/tools/go/internal/packagesdriver"
27)
28
29// debug controls verbose logging.
30var debug, _ = strconv.ParseBool(os.Getenv("GOPACKAGESDEBUG"))
31
32// A goTooOldError reports that the go command
33// found by exec.LookPath is too old to use the new go list behavior.
34type goTooOldError struct {
35 error
36}
37
38// responseDeduper wraps a driverResponse, deduplicating its contents.
39type responseDeduper struct {
40 seenRoots map[string]bool
41 seenPackages map[string]*Package
42 dr *driverResponse
43}
44
45func newDeduper() *responseDeduper {
46 return &responseDeduper{
47 dr: &driverResponse{},
48 seenRoots: map[string]bool{},
49 seenPackages: map[string]*Package{},
50 }
51}
52
53// addAll fills in r with a driverResponse.
54func (r *responseDeduper) addAll(dr *driverResponse) {
55 for _, pkg := range dr.Packages {
56 r.addPackage(pkg)
57 }
58 for _, root := range dr.Roots {
59 r.addRoot(root)
60 }
61}
62
63func (r *responseDeduper) addPackage(p *Package) {
64 if r.seenPackages[p.ID] != nil {
65 return
66 }
67 r.seenPackages[p.ID] = p
68 r.dr.Packages = append(r.dr.Packages, p)
69}
70
71func (r *responseDeduper) addRoot(id string) {
72 if r.seenRoots[id] {
73 return
74 }
75 r.seenRoots[id] = true
76 r.dr.Roots = append(r.dr.Roots, id)
77}
78
79type golistState struct {
80 cfg *Config
81 ctx context.Context
82
83 envOnce sync.Once
84 goEnvError error
85 goEnv map[string]string
86
87 rootsOnce sync.Once
88 rootDirsError error
89 rootDirs map[string]string
90
91 // vendorDirs caches the (non)existence of vendor directories.
92 vendorDirs map[string]bool
93}
94
95// getEnv returns Go environment variables. Only specific variables are
96// populated -- computing all of them is slow.
97func (state *golistState) getEnv() (map[string]string, error) {
98 state.envOnce.Do(func() {
99 var b *bytes.Buffer
100 b, state.goEnvError = state.invokeGo("env", "-json", "GOMOD", "GOPATH")
101 if state.goEnvError != nil {
102 return
103 }
104
105 state.goEnv = make(map[string]string)
106 decoder := json.NewDecoder(b)
107 if state.goEnvError = decoder.Decode(&state.goEnv); state.goEnvError != nil {
108 return
109 }
110 })
111 return state.goEnv, state.goEnvError
112}
113
114// mustGetEnv is a convenience function that can be used if getEnv has already succeeded.
115func (state *golistState) mustGetEnv() map[string]string {
116 env, err := state.getEnv()
117 if err != nil {
118 panic(fmt.Sprintf("mustGetEnv: %v", err))
119 }
120 return env
121}
122
123// goListDriver uses the go list command to interpret the patterns and produce
124// the build system package structure.
125// See driver for more details.
126func goListDriver(cfg *Config, patterns ...string) (*driverResponse, error) {
127 // Make sure that any asynchronous go commands are killed when we return.
128 parentCtx := cfg.Context
129 if parentCtx == nil {
130 parentCtx = context.Background()
131 }
132 ctx, cancel := context.WithCancel(parentCtx)
133 defer cancel()
134
135 response := newDeduper()
136
137 // Fill in response.Sizes asynchronously if necessary.
138 var sizeserr error
139 var sizeswg sync.WaitGroup
140 if cfg.Mode&NeedTypesSizes != 0 || cfg.Mode&NeedTypes != 0 {
141 sizeswg.Add(1)
142 go func() {
143 var sizes types.Sizes
144 sizes, sizeserr = packagesdriver.GetSizesGolist(ctx, cfg.BuildFlags, cfg.Env, cfg.Dir, usesExportData(cfg))
145 // types.SizesFor always returns nil or a *types.StdSizes.
146 response.dr.Sizes, _ = sizes.(*types.StdSizes)
147 sizeswg.Done()
148 }()
149 }
150
151 state := &golistState{
152 cfg: cfg,
153 ctx: ctx,
154 vendorDirs: map[string]bool{},
155 }
156
157 // Determine files requested in contains patterns
158 var containFiles []string
159 restPatterns := make([]string, 0, len(patterns))
160 // Extract file= and other [querytype]= patterns. Report an error if querytype
161 // doesn't exist.
162extractQueries:
163 for _, pattern := range patterns {
164 eqidx := strings.Index(pattern, "=")
165 if eqidx < 0 {
166 restPatterns = append(restPatterns, pattern)
167 } else {
168 query, value := pattern[:eqidx], pattern[eqidx+len("="):]
169 switch query {
170 case "file":
171 containFiles = append(containFiles, value)
172 case "pattern":
173 restPatterns = append(restPatterns, value)
174 case "": // not a reserved query
175 restPatterns = append(restPatterns, pattern)
176 default:
177 for _, rune := range query {
178 if rune < 'a' || rune > 'z' { // not a reserved query
179 restPatterns = append(restPatterns, pattern)
180 continue extractQueries
181 }
182 }
183 // Reject all other patterns containing "="
184 return nil, fmt.Errorf("invalid query type %q in query pattern %q", query, pattern)
185 }
186 }
187 }
188
189 // See if we have any patterns to pass through to go list. Zero initial
190 // patterns also requires a go list call, since it's the equivalent of
191 // ".".
192 if len(restPatterns) > 0 || len(patterns) == 0 {
193 dr, err := state.createDriverResponse(restPatterns...)
194 if err != nil {
195 return nil, err
196 }
197 response.addAll(dr)
198 }
199
200 if len(containFiles) != 0 {
201 if err := state.runContainsQueries(response, containFiles); err != nil {
202 return nil, err
203 }
204 }
205
206 modifiedPkgs, needPkgs, err := state.processGolistOverlay(response)
207 if err != nil {
208 return nil, err
209 }
210
211 var containsCandidates []string
212 if len(containFiles) > 0 {
213 containsCandidates = append(containsCandidates, modifiedPkgs...)
214 containsCandidates = append(containsCandidates, needPkgs...)
215 }
216 if err := state.addNeededOverlayPackages(response, needPkgs); err != nil {
217 return nil, err
218 }
219 // Check candidate packages for containFiles.
220 if len(containFiles) > 0 {
221 for _, id := range containsCandidates {
222 pkg, ok := response.seenPackages[id]
223 if !ok {
224 response.addPackage(&Package{
225 ID: id,
226 Errors: []Error{
227 {
228 Kind: ListError,
229 Msg: fmt.Sprintf("package %s expected but not seen", id),
230 },
231 },
232 })
233 continue
234 }
235 for _, f := range containFiles {
236 for _, g := range pkg.GoFiles {
237 if sameFile(f, g) {
238 response.addRoot(id)
239 }
240 }
241 }
242 }
243 }
244
245 sizeswg.Wait()
246 if sizeserr != nil {
247 return nil, sizeserr
248 }
249 return response.dr, nil
250}
251
252func (state *golistState) addNeededOverlayPackages(response *responseDeduper, pkgs []string) error {
253 if len(pkgs) == 0 {
254 return nil
255 }
256 dr, err := state.createDriverResponse(pkgs...)
257 if err != nil {
258 return err
259 }
260 for _, pkg := range dr.Packages {
261 response.addPackage(pkg)
262 }
263 _, needPkgs, err := state.processGolistOverlay(response)
264 if err != nil {
265 return err
266 }
267 return state.addNeededOverlayPackages(response, needPkgs)
268}
269
270func (state *golistState) runContainsQueries(response *responseDeduper, queries []string) error {
271 for _, query := range queries {
272 // TODO(matloob): Do only one query per directory.
273 fdir := filepath.Dir(query)
274 // Pass absolute path of directory to go list so that it knows to treat it as a directory,
275 // not a package path.
276 pattern, err := filepath.Abs(fdir)
277 if err != nil {
278 return fmt.Errorf("could not determine absolute path of file= query path %q: %v", query, err)
279 }
280 dirResponse, err := state.createDriverResponse(pattern)
281
282 // If there was an error loading the package, or the package is returned
283 // with errors, try to load the file as an ad-hoc package.
284 // Usually the error will appear in a returned package, but may not if we're
285 // in module mode and the ad-hoc is located outside a module.
286 if err != nil || len(dirResponse.Packages) == 1 && len(dirResponse.Packages[0].GoFiles) == 0 &&
287 len(dirResponse.Packages[0].Errors) == 1 {
288 var queryErr error
289 if dirResponse, queryErr = state.adhocPackage(pattern, query); queryErr != nil {
290 return err // return the original error
291 }
292 }
293 isRoot := make(map[string]bool, len(dirResponse.Roots))
294 for _, root := range dirResponse.Roots {
295 isRoot[root] = true
296 }
297 for _, pkg := range dirResponse.Packages {
298 // Add any new packages to the main set
299 // We don't bother to filter packages that will be dropped by the changes of roots,
300 // that will happen anyway during graph construction outside this function.
301 // Over-reporting packages is not a problem.
302 response.addPackage(pkg)
303 // if the package was not a root one, it cannot have the file
304 if !isRoot[pkg.ID] {
305 continue
306 }
307 for _, pkgFile := range pkg.GoFiles {
308 if filepath.Base(query) == filepath.Base(pkgFile) {
309 response.addRoot(pkg.ID)
310 break
311 }
312 }
313 }
314 }
315 return nil
316}
317
318// adhocPackage attempts to load or construct an ad-hoc package for a given
319// query, if the original call to the driver produced inadequate results.
320func (state *golistState) adhocPackage(pattern, query string) (*driverResponse, error) {
321 response, err := state.createDriverResponse(query)
322 if err != nil {
323 return nil, err
324 }
325 // If we get nothing back from `go list`,
326 // try to make this file into its own ad-hoc package.
327 // TODO(rstambler): Should this check against the original response?
328 if len(response.Packages) == 0 {
329 response.Packages = append(response.Packages, &Package{
330 ID: "command-line-arguments",
331 PkgPath: query,
332 GoFiles: []string{query},
333 CompiledGoFiles: []string{query},
334 Imports: make(map[string]*Package),
335 })
336 response.Roots = append(response.Roots, "command-line-arguments")
337 }
338 // Handle special cases.
339 if len(response.Packages) == 1 {
340 // golang/go#33482: If this is a file= query for ad-hoc packages where
341 // the file only exists on an overlay, and exists outside of a module,
342 // add the file to the package and remove the errors.
343 if response.Packages[0].ID == "command-line-arguments" ||
344 filepath.ToSlash(response.Packages[0].PkgPath) == filepath.ToSlash(query) {
345 if len(response.Packages[0].GoFiles) == 0 {
346 filename := filepath.Join(pattern, filepath.Base(query)) // avoid recomputing abspath
347 // TODO(matloob): check if the file is outside of a root dir?
348 for path := range state.cfg.Overlay {
349 if path == filename {
350 response.Packages[0].Errors = nil
351 response.Packages[0].GoFiles = []string{path}
352 response.Packages[0].CompiledGoFiles = []string{path}
353 }
354 }
355 }
356 }
357 }
358 return response, nil
359}
360
361// Fields must match go list;
362// see $GOROOT/src/cmd/go/internal/load/pkg.go.
363type jsonPackage struct {
364 ImportPath string
365 Dir string
366 Name string
367 Export string
368 GoFiles []string
369 CompiledGoFiles []string
370 CFiles []string
371 CgoFiles []string
372 CXXFiles []string
373 MFiles []string
374 HFiles []string
375 FFiles []string
376 SFiles []string
377 SwigFiles []string
378 SwigCXXFiles []string
379 SysoFiles []string
380 Imports []string
381 ImportMap map[string]string
382 Deps []string
383 TestGoFiles []string
384 TestImports []string
385 XTestGoFiles []string
386 XTestImports []string
387 ForTest string // q in a "p [q.test]" package, else ""
388 DepOnly bool
389
390 Error *jsonPackageError
391}
392
393type jsonPackageError struct {
394 ImportStack []string
395 Pos string
396 Err string
397}
398
399func otherFiles(p *jsonPackage) [][]string {
400 return [][]string{p.CFiles, p.CXXFiles, p.MFiles, p.HFiles, p.FFiles, p.SFiles, p.SwigFiles, p.SwigCXXFiles, p.SysoFiles}
401}
402
403// createDriverResponse uses the "go list" command to expand the pattern
404// words and return a response for the specified packages.
405func (state *golistState) createDriverResponse(words ...string) (*driverResponse, error) {
406 // go list uses the following identifiers in ImportPath and Imports:
407 //
408 // "p" -- importable package or main (command)
409 // "q.test" -- q's test executable
410 // "p [q.test]" -- variant of p as built for q's test executable
411 // "q_test [q.test]" -- q's external test package
412 //
413 // The packages p that are built differently for a test q.test
414 // are q itself, plus any helpers used by the external test q_test,
415 // typically including "testing" and all its dependencies.
416
417 // Run "go list" for complete
418 // information on the specified packages.
419 buf, err := state.invokeGo("list", golistargs(state.cfg, words)...)
420 if err != nil {
421 return nil, err
422 }
423 seen := make(map[string]*jsonPackage)
424 pkgs := make(map[string]*Package)
425 additionalErrors := make(map[string][]Error)
426 // Decode the JSON and convert it to Package form.
427 var response driverResponse
428 for dec := json.NewDecoder(buf); dec.More(); {
429 p := new(jsonPackage)
430 if err := dec.Decode(p); err != nil {
431 return nil, fmt.Errorf("JSON decoding failed: %v", err)
432 }
433
434 if p.ImportPath == "" {
435 // The documentation for go list says that “[e]rroneous packages will have
436 // a non-empty ImportPath”. If for some reason it comes back empty, we
437 // prefer to error out rather than silently discarding data or handing
438 // back a package without any way to refer to it.
439 if p.Error != nil {
440 return nil, Error{
441 Pos: p.Error.Pos,
442 Msg: p.Error.Err,
443 }
444 }
445 return nil, fmt.Errorf("package missing import path: %+v", p)
446 }
447
448 // Work around https://golang.org/issue/33157:
449 // go list -e, when given an absolute path, will find the package contained at
450 // that directory. But when no package exists there, it will return a fake package
451 // with an error and the ImportPath set to the absolute path provided to go list.
452 // Try to convert that absolute path to what its package path would be if it's
453 // contained in a known module or GOPATH entry. This will allow the package to be
454 // properly "reclaimed" when overlays are processed.
455 if filepath.IsAbs(p.ImportPath) && p.Error != nil {
456 pkgPath, ok, err := state.getPkgPath(p.ImportPath)
457 if err != nil {
458 return nil, err
459 }
460 if ok {
461 p.ImportPath = pkgPath
462 }
463 }
464
465 if old, found := seen[p.ImportPath]; found {
466 // If one version of the package has an error, and the other doesn't, assume
467 // that this is a case where go list is reporting a fake dependency variant
468 // of the imported package: When a package tries to invalidly import another
469 // package, go list emits a variant of the imported package (with the same
470 // import path, but with an error on it, and the package will have a
471 // DepError set on it). An example of when this can happen is for imports of
472 // main packages: main packages can not be imported, but they may be
473 // separately matched and listed by another pattern.
474 // See golang.org/issue/36188 for more details.
475
476 // The plan is that eventually, hopefully in Go 1.15, the error will be
477 // reported on the importing package rather than the duplicate "fake"
478 // version of the imported package. Once all supported versions of Go
479 // have the new behavior this logic can be deleted.
480 // TODO(matloob): delete the workaround logic once all supported versions of
481 // Go return the errors on the proper package.
482
483 // There should be exactly one version of a package that doesn't have an
484 // error.
485 if old.Error == nil && p.Error == nil {
486 if !reflect.DeepEqual(p, old) {
487 return nil, fmt.Errorf("internal error: go list gives conflicting information for package %v", p.ImportPath)
488 }
489 continue
490 }
491
492 // Determine if this package's error needs to be bubbled up.
493 // This is a hack, and we expect for go list to eventually set the error
494 // on the package.
495 if old.Error != nil {
496 var errkind string
497 if strings.Contains(old.Error.Err, "not an importable package") {
498 errkind = "not an importable package"
499 } else if strings.Contains(old.Error.Err, "use of internal package") && strings.Contains(old.Error.Err, "not allowed") {
500 errkind = "use of internal package not allowed"
501 }
502 if errkind != "" {
503 if len(old.Error.ImportStack) < 2 {
504 return nil, fmt.Errorf(`internal error: go list gave a %q error with an import stack with fewer than two elements`, errkind)
505 }
506 importingPkg := old.Error.ImportStack[len(old.Error.ImportStack)-2]
507 additionalErrors[importingPkg] = append(additionalErrors[importingPkg], Error{
508 Pos: old.Error.Pos,
509 Msg: old.Error.Err,
510 Kind: ListError,
511 })
512 }
513 }
514
515 // Make sure that if there's a version of the package without an error,
516 // that's the one reported to the user.
517 if old.Error == nil {
518 continue
519 }
520
521 // This package will replace the old one at the end of the loop.
522 }
523 seen[p.ImportPath] = p
524
525 pkg := &Package{
526 Name: p.Name,
527 ID: p.ImportPath,
528 GoFiles: absJoin(p.Dir, p.GoFiles, p.CgoFiles),
529 CompiledGoFiles: absJoin(p.Dir, p.CompiledGoFiles),
530 OtherFiles: absJoin(p.Dir, otherFiles(p)...),
531 forTest: p.ForTest,
532 }
533
534 // Work around https://golang.org/issue/28749:
535 // cmd/go puts assembly, C, and C++ files in CompiledGoFiles.
536 // Filter out any elements of CompiledGoFiles that are also in OtherFiles.
537 // We have to keep this workaround in place until go1.12 is a distant memory.
538 if len(pkg.OtherFiles) > 0 {
539 other := make(map[string]bool, len(pkg.OtherFiles))
540 for _, f := range pkg.OtherFiles {
541 other[f] = true
542 }
543
544 out := pkg.CompiledGoFiles[:0]
545 for _, f := range pkg.CompiledGoFiles {
546 if other[f] {
547 continue
548 }
549 out = append(out, f)
550 }
551 pkg.CompiledGoFiles = out
552 }
553
554 // Extract the PkgPath from the package's ID.
555 if i := strings.IndexByte(pkg.ID, ' '); i >= 0 {
556 pkg.PkgPath = pkg.ID[:i]
557 } else {
558 pkg.PkgPath = pkg.ID
559 }
560
561 if pkg.PkgPath == "unsafe" {
562 pkg.GoFiles = nil // ignore fake unsafe.go file
563 }
564
565 // Assume go list emits only absolute paths for Dir.
566 if p.Dir != "" && !filepath.IsAbs(p.Dir) {
567 log.Fatalf("internal error: go list returned non-absolute Package.Dir: %s", p.Dir)
568 }
569
570 if p.Export != "" && !filepath.IsAbs(p.Export) {
571 pkg.ExportFile = filepath.Join(p.Dir, p.Export)
572 } else {
573 pkg.ExportFile = p.Export
574 }
575
576 // imports
577 //
578 // Imports contains the IDs of all imported packages.
579 // ImportsMap records (path, ID) only where they differ.
580 ids := make(map[string]bool)
581 for _, id := range p.Imports {
582 ids[id] = true
583 }
584 pkg.Imports = make(map[string]*Package)
585 for path, id := range p.ImportMap {
586 pkg.Imports[path] = &Package{ID: id} // non-identity import
587 delete(ids, id)
588 }
589 for id := range ids {
590 if id == "C" {
591 continue
592 }
593
594 pkg.Imports[id] = &Package{ID: id} // identity import
595 }
596 if !p.DepOnly {
597 response.Roots = append(response.Roots, pkg.ID)
598 }
599
600 // Work around for pre-go.1.11 versions of go list.
601 // TODO(matloob): they should be handled by the fallback.
602 // Can we delete this?
603 if len(pkg.CompiledGoFiles) == 0 {
604 pkg.CompiledGoFiles = pkg.GoFiles
605 }
606
607 if p.Error != nil {
608 msg := strings.TrimSpace(p.Error.Err) // Trim to work around golang.org/issue/32363.
609 // Address golang.org/issue/35964 by appending import stack to error message.
610 if msg == "import cycle not allowed" && len(p.Error.ImportStack) != 0 {
611 msg += fmt.Sprintf(": import stack: %v", p.Error.ImportStack)
612 }
613 pkg.Errors = append(pkg.Errors, Error{
614 Pos: p.Error.Pos,
615 Msg: msg,
616 Kind: ListError,
617 })
618 }
619
620 pkgs[pkg.ID] = pkg
621 }
622
623 for id, errs := range additionalErrors {
624 if p, ok := pkgs[id]; ok {
625 p.Errors = append(p.Errors, errs...)
626 }
627 }
628 for _, pkg := range pkgs {
629 response.Packages = append(response.Packages, pkg)
630 }
631 sort.Slice(response.Packages, func(i, j int) bool { return response.Packages[i].ID < response.Packages[j].ID })
632
633 return &response, nil
634}
635
636// getPkgPath finds the package path of a directory if it's relative to a root directory.
637func (state *golistState) getPkgPath(dir string) (string, bool, error) {
638 absDir, err := filepath.Abs(dir)
639 if err != nil {
640 return "", false, err
641 }
642 roots, err := state.determineRootDirs()
643 if err != nil {
644 return "", false, err
645 }
646
647 for rdir, rpath := range roots {
648 // Make sure that the directory is in the module,
649 // to avoid creating a path relative to another module.
650 if !strings.HasPrefix(absDir, rdir) {
651 continue
652 }
653 // TODO(matloob): This doesn't properly handle symlinks.
654 r, err := filepath.Rel(rdir, dir)
655 if err != nil {
656 continue
657 }
658 if rpath != "" {
659 // We choose only one root even though the directory even it can belong in multiple modules
660 // or GOPATH entries. This is okay because we only need to work with absolute dirs when a
661 // file is missing from disk, for instance when gopls calls go/packages in an overlay.
662 // Once the file is saved, gopls, or the next invocation of the tool will get the correct
663 // result straight from golist.
664 // TODO(matloob): Implement module tiebreaking?
665 return path.Join(rpath, filepath.ToSlash(r)), true, nil
666 }
667 return filepath.ToSlash(r), true, nil
668 }
669 return "", false, nil
670}
671
672// absJoin absolutizes and flattens the lists of files.
673func absJoin(dir string, fileses ...[]string) (res []string) {
674 for _, files := range fileses {
675 for _, file := range files {
676 if !filepath.IsAbs(file) {
677 file = filepath.Join(dir, file)
678 }
679 res = append(res, file)
680 }
681 }
682 return res
683}
684
685func golistargs(cfg *Config, words []string) []string {
686 const findFlags = NeedImports | NeedTypes | NeedSyntax | NeedTypesInfo
687 fullargs := []string{
688 "-e", "-json",
689 fmt.Sprintf("-compiled=%t", cfg.Mode&(NeedCompiledGoFiles|NeedSyntax|NeedTypes|NeedTypesInfo|NeedTypesSizes) != 0),
690 fmt.Sprintf("-test=%t", cfg.Tests),
691 fmt.Sprintf("-export=%t", usesExportData(cfg)),
692 fmt.Sprintf("-deps=%t", cfg.Mode&NeedImports != 0),
693 // go list doesn't let you pass -test and -find together,
694 // probably because you'd just get the TestMain.
695 fmt.Sprintf("-find=%t", !cfg.Tests && cfg.Mode&findFlags == 0),
696 }
697 fullargs = append(fullargs, cfg.BuildFlags...)
698 fullargs = append(fullargs, "--")
699 fullargs = append(fullargs, words...)
700 return fullargs
701}
702
703// invokeGo returns the stdout of a go command invocation.
704func (state *golistState) invokeGo(verb string, args ...string) (*bytes.Buffer, error) {
705 cfg := state.cfg
706
707 stdout := new(bytes.Buffer)
708 stderr := new(bytes.Buffer)
709 goArgs := []string{verb}
710 if verb != "env" {
711 goArgs = append(goArgs, cfg.BuildFlags...)
712 }
713 goArgs = append(goArgs, args...)
714 cmd := exec.CommandContext(state.ctx, "go", goArgs...)
715 // On darwin the cwd gets resolved to the real path, which breaks anything that
716 // expects the working directory to keep the original path, including the
717 // go command when dealing with modules.
718 // The Go stdlib has a special feature where if the cwd and the PWD are the
719 // same node then it trusts the PWD, so by setting it in the env for the child
720 // process we fix up all the paths returned by the go command.
721 cmd.Env = append(append([]string{}, cfg.Env...), "PWD="+cfg.Dir)
722 cmd.Dir = cfg.Dir
723 cmd.Stdout = stdout
724 cmd.Stderr = stderr
725 defer func(start time.Time) {
726 cfg.Logf("%s for %v, stderr: <<%s>> stdout: <<%s>>\n", time.Since(start), cmdDebugStr(cmd, goArgs...), stderr, stdout)
727 }(time.Now())
728
729 if err := cmd.Run(); err != nil {
730 // Check for 'go' executable not being found.
731 if ee, ok := err.(*exec.Error); ok && ee.Err == exec.ErrNotFound {
732 return nil, fmt.Errorf("'go list' driver requires 'go', but %s", exec.ErrNotFound)
733 }
734
735 exitErr, ok := err.(*exec.ExitError)
736 if !ok {
737 // Catastrophic error:
738 // - context cancellation
739 return nil, fmt.Errorf("couldn't exec 'go %v': %s %T", args, err, err)
740 }
741
742 // Old go version?
743 if strings.Contains(stderr.String(), "flag provided but not defined") {
744 return nil, goTooOldError{fmt.Errorf("unsupported version of go: %s: %s", exitErr, stderr)}
745 }
746
747 // Related to #24854
748 if len(stderr.String()) > 0 && strings.Contains(stderr.String(), "unexpected directory layout") {
749 return nil, fmt.Errorf("%s", stderr.String())
750 }
751
752 // Is there an error running the C compiler in cgo? This will be reported in the "Error" field
753 // and should be suppressed by go list -e.
754 //
755 // This condition is not perfect yet because the error message can include other error messages than runtime/cgo.
756 isPkgPathRune := func(r rune) bool {
757 // From https://golang.org/ref/spec#Import_declarations:
758 // Implementation restriction: A compiler may restrict ImportPaths to non-empty strings
759 // using only characters belonging to Unicode's L, M, N, P, and S general categories
760 // (the Graphic characters without spaces) and may also exclude the
761 // characters !"#$%&'()*,:;<=>?[\]^`{|} and the Unicode replacement character U+FFFD.
762 return unicode.IsOneOf([]*unicode.RangeTable{unicode.L, unicode.M, unicode.N, unicode.P, unicode.S}, r) &&
763 !strings.ContainsRune("!\"#$%&'()*,:;<=>?[\\]^`{|}\uFFFD", r)
764 }
765 if len(stderr.String()) > 0 && strings.HasPrefix(stderr.String(), "# ") {
766 msg := stderr.String()[len("# "):]
767 if strings.HasPrefix(strings.TrimLeftFunc(msg, isPkgPathRune), "\n") {
768 return stdout, nil
769 }
770 // Treat pkg-config errors as a special case (golang.org/issue/36770).
771 if strings.HasPrefix(msg, "pkg-config") {
772 return stdout, nil
773 }
774 }
775
776 // This error only appears in stderr. See golang.org/cl/166398 for a fix in go list to show
777 // the error in the Err section of stdout in case -e option is provided.
778 // This fix is provided for backwards compatibility.
779 if len(stderr.String()) > 0 && strings.Contains(stderr.String(), "named files must be .go files") {
780 output := fmt.Sprintf(`{"ImportPath": "command-line-arguments","Incomplete": true,"Error": {"Pos": "","Err": %q}}`,
781 strings.Trim(stderr.String(), "\n"))
782 return bytes.NewBufferString(output), nil
783 }
784
785 // Similar to the previous error, but currently lacks a fix in Go.
786 if len(stderr.String()) > 0 && strings.Contains(stderr.String(), "named files must all be in one directory") {
787 output := fmt.Sprintf(`{"ImportPath": "command-line-arguments","Incomplete": true,"Error": {"Pos": "","Err": %q}}`,
788 strings.Trim(stderr.String(), "\n"))
789 return bytes.NewBufferString(output), nil
790 }
791
792 // Backwards compatibility for Go 1.11 because 1.12 and 1.13 put the directory in the ImportPath.
793 // If the package doesn't exist, put the absolute path of the directory into the error message,
794 // as Go 1.13 list does.
795 const noSuchDirectory = "no such directory"
796 if len(stderr.String()) > 0 && strings.Contains(stderr.String(), noSuchDirectory) {
797 errstr := stderr.String()
798 abspath := strings.TrimSpace(errstr[strings.Index(errstr, noSuchDirectory)+len(noSuchDirectory):])
799 output := fmt.Sprintf(`{"ImportPath": %q,"Incomplete": true,"Error": {"Pos": "","Err": %q}}`,
800 abspath, strings.Trim(stderr.String(), "\n"))
801 return bytes.NewBufferString(output), nil
802 }
803
804 // Workaround for #29280: go list -e has incorrect behavior when an ad-hoc package doesn't exist.
805 // Note that the error message we look for in this case is different that the one looked for above.
806 if len(stderr.String()) > 0 && strings.Contains(stderr.String(), "no such file or directory") {
807 output := fmt.Sprintf(`{"ImportPath": "command-line-arguments","Incomplete": true,"Error": {"Pos": "","Err": %q}}`,
808 strings.Trim(stderr.String(), "\n"))
809 return bytes.NewBufferString(output), nil
810 }
811
812 // Workaround for #34273. go list -e with GO111MODULE=on has incorrect behavior when listing a
813 // directory outside any module.
814 if len(stderr.String()) > 0 && strings.Contains(stderr.String(), "outside available modules") {
815 output := fmt.Sprintf(`{"ImportPath": %q,"Incomplete": true,"Error": {"Pos": "","Err": %q}}`,
816 // TODO(matloob): command-line-arguments isn't correct here.
817 "command-line-arguments", strings.Trim(stderr.String(), "\n"))
818 return bytes.NewBufferString(output), nil
819 }
820
821 // Another variation of the previous error
822 if len(stderr.String()) > 0 && strings.Contains(stderr.String(), "outside module root") {
823 output := fmt.Sprintf(`{"ImportPath": %q,"Incomplete": true,"Error": {"Pos": "","Err": %q}}`,
824 // TODO(matloob): command-line-arguments isn't correct here.
825 "command-line-arguments", strings.Trim(stderr.String(), "\n"))
826 return bytes.NewBufferString(output), nil
827 }
828
829 // Workaround for an instance of golang.org/issue/26755: go list -e will return a non-zero exit
830 // status if there's a dependency on a package that doesn't exist. But it should return
831 // a zero exit status and set an error on that package.
832 if len(stderr.String()) > 0 && strings.Contains(stderr.String(), "no Go files in") {
833 // Don't clobber stdout if `go list` actually returned something.
834 if len(stdout.String()) > 0 {
835 return stdout, nil
836 }
837 // try to extract package name from string
838 stderrStr := stderr.String()
839 var importPath string
840 colon := strings.Index(stderrStr, ":")
841 if colon > 0 && strings.HasPrefix(stderrStr, "go build ") {
842 importPath = stderrStr[len("go build "):colon]
843 }
844 output := fmt.Sprintf(`{"ImportPath": %q,"Incomplete": true,"Error": {"Pos": "","Err": %q}}`,
845 importPath, strings.Trim(stderrStr, "\n"))
846 return bytes.NewBufferString(output), nil
847 }
848
849 // Export mode entails a build.
850 // If that build fails, errors appear on stderr
851 // (despite the -e flag) and the Export field is blank.
852 // Do not fail in that case.
853 // The same is true if an ad-hoc package given to go list doesn't exist.
854 // TODO(matloob): Remove these once we can depend on go list to exit with a zero status with -e even when
855 // packages don't exist or a build fails.
856 if !usesExportData(cfg) && !containsGoFile(args) {
857 return nil, fmt.Errorf("go %v: %s: %s", args, exitErr, stderr)
858 }
859 }
860
861 // As of writing, go list -export prints some non-fatal compilation
862 // errors to stderr, even with -e set. We would prefer that it put
863 // them in the Package.Error JSON (see https://golang.org/issue/26319).
864 // In the meantime, there's nowhere good to put them, but they can
865 // be useful for debugging. Print them if $GOPACKAGESPRINTGOLISTERRORS
866 // is set.
867 if len(stderr.Bytes()) != 0 && os.Getenv("GOPACKAGESPRINTGOLISTERRORS") != "" {
868 fmt.Fprintf(os.Stderr, "%s stderr: <<%s>>\n", cmdDebugStr(cmd, args...), stderr)
869 }
870 return stdout, nil
871}
872
873func containsGoFile(s []string) bool {
874 for _, f := range s {
875 if strings.HasSuffix(f, ".go") {
876 return true
877 }
878 }
879 return false
880}
881
882func cmdDebugStr(cmd *exec.Cmd, args ...string) string {
883 env := make(map[string]string)
884 for _, kv := range cmd.Env {
885 split := strings.Split(kv, "=")
886 k, v := split[0], split[1]
887 env[k] = v
888 }
889 var quotedArgs []string
890 for _, arg := range args {
891 quotedArgs = append(quotedArgs, strconv.Quote(arg))
892 }
893
894 return fmt.Sprintf("GOROOT=%v GOPATH=%v GO111MODULE=%v PWD=%v go %s", env["GOROOT"], env["GOPATH"], env["GO111MODULE"], env["PWD"], strings.Join(quotedArgs, " "))
895}
diff --git a/vendor/golang.org/x/tools/go/packages/golist_overlay.go b/vendor/golang.org/x/tools/go/packages/golist_overlay.go
new file mode 100644
index 0000000..7974a6c
--- /dev/null
+++ b/vendor/golang.org/x/tools/go/packages/golist_overlay.go
@@ -0,0 +1,376 @@
1package packages
2
3import (
4 "encoding/json"
5 "fmt"
6 "go/parser"
7 "go/token"
8 "os"
9 "path/filepath"
10 "sort"
11 "strconv"
12 "strings"
13)
14
15// processGolistOverlay provides rudimentary support for adding
16// files that don't exist on disk to an overlay. The results can be
17// sometimes incorrect.
18// TODO(matloob): Handle unsupported cases, including the following:
19// - determining the correct package to add given a new import path
20func (state *golistState) processGolistOverlay(response *responseDeduper) (modifiedPkgs, needPkgs []string, err error) {
21 havePkgs := make(map[string]string) // importPath -> non-test package ID
22 needPkgsSet := make(map[string]bool)
23 modifiedPkgsSet := make(map[string]bool)
24
25 for _, pkg := range response.dr.Packages {
26 // This is an approximation of import path to id. This can be
27 // wrong for tests, vendored packages, and a number of other cases.
28 havePkgs[pkg.PkgPath] = pkg.ID
29 }
30
31 // If no new imports are added, it is safe to avoid loading any needPkgs.
32 // Otherwise, it's hard to tell which package is actually being loaded
33 // (due to vendoring) and whether any modified package will show up
34 // in the transitive set of dependencies (because new imports are added,
35 // potentially modifying the transitive set of dependencies).
36 var overlayAddsImports bool
37
38 // If both a package and its test package are created by the overlay, we
39 // need the real package first. Process all non-test files before test
40 // files, and make the whole process deterministic while we're at it.
41 var overlayFiles []string
42 for opath := range state.cfg.Overlay {
43 overlayFiles = append(overlayFiles, opath)
44 }
45 sort.Slice(overlayFiles, func(i, j int) bool {
46 iTest := strings.HasSuffix(overlayFiles[i], "_test.go")
47 jTest := strings.HasSuffix(overlayFiles[j], "_test.go")
48 if iTest != jTest {
49 return !iTest // non-tests are before tests.
50 }
51 return overlayFiles[i] < overlayFiles[j]
52 })
53 for _, opath := range overlayFiles {
54 contents := state.cfg.Overlay[opath]
55 base := filepath.Base(opath)
56 dir := filepath.Dir(opath)
57 var pkg *Package // if opath belongs to both a package and its test variant, this will be the test variant
58 var testVariantOf *Package // if opath is a test file, this is the package it is testing
59 var fileExists bool
60 isTestFile := strings.HasSuffix(opath, "_test.go")
61 pkgName, ok := extractPackageName(opath, contents)
62 if !ok {
63 // Don't bother adding a file that doesn't even have a parsable package statement
64 // to the overlay.
65 continue
66 }
67 nextPackage:
68 for _, p := range response.dr.Packages {
69 if pkgName != p.Name && p.ID != "command-line-arguments" {
70 continue
71 }
72 for _, f := range p.GoFiles {
73 if !sameFile(filepath.Dir(f), dir) {
74 continue
75 }
76 // Make sure to capture information on the package's test variant, if needed.
77 if isTestFile && !hasTestFiles(p) {
78 // TODO(matloob): Are there packages other than the 'production' variant
79 // of a package that this can match? This shouldn't match the test main package
80 // because the file is generated in another directory.
81 testVariantOf = p
82 continue nextPackage
83 }
84 // We must have already seen the package of which this is a test variant.
85 if pkg != nil && p != pkg && pkg.PkgPath == p.PkgPath {
86 if hasTestFiles(p) {
87 testVariantOf = pkg
88 }
89 }
90 pkg = p
91 if filepath.Base(f) == base {
92 fileExists = true
93 }
94 }
95 }
96 // The overlay could have included an entirely new package.
97 if pkg == nil {
98 // Try to find the module or gopath dir the file is contained in.
99 // Then for modules, add the module opath to the beginning.
100 pkgPath, ok, err := state.getPkgPath(dir)
101 if err != nil {
102 return nil, nil, err
103 }
104 if !ok {
105 break
106 }
107 isXTest := strings.HasSuffix(pkgName, "_test")
108 if isXTest {
109 pkgPath += "_test"
110 }
111 id := pkgPath
112 if isTestFile && !isXTest {
113 id = fmt.Sprintf("%s [%s.test]", pkgPath, pkgPath)
114 }
115 // Try to reclaim a package with the same id if it exists in the response.
116 for _, p := range response.dr.Packages {
117 if reclaimPackage(p, id, opath, contents) {
118 pkg = p
119 break
120 }
121 }
122 // Otherwise, create a new package
123 if pkg == nil {
124 pkg = &Package{PkgPath: pkgPath, ID: id, Name: pkgName, Imports: make(map[string]*Package)}
125 response.addPackage(pkg)
126 havePkgs[pkg.PkgPath] = id
127 // Add the production package's sources for a test variant.
128 if isTestFile && !isXTest && testVariantOf != nil {
129 pkg.GoFiles = append(pkg.GoFiles, testVariantOf.GoFiles...)
130 pkg.CompiledGoFiles = append(pkg.CompiledGoFiles, testVariantOf.CompiledGoFiles...)
131 // Add the package under test and its imports to the test variant.
132 pkg.forTest = testVariantOf.PkgPath
133 for k, v := range testVariantOf.Imports {
134 pkg.Imports[k] = &Package{ID: v.ID}
135 }
136 }
137 }
138 }
139 if !fileExists {
140 pkg.GoFiles = append(pkg.GoFiles, opath)
141 // TODO(matloob): Adding the file to CompiledGoFiles can exhibit the wrong behavior
142 // if the file will be ignored due to its build tags.
143 pkg.CompiledGoFiles = append(pkg.CompiledGoFiles, opath)
144 modifiedPkgsSet[pkg.ID] = true
145 }
146 imports, err := extractImports(opath, contents)
147 if err != nil {
148 // Let the parser or type checker report errors later.
149 continue
150 }
151 for _, imp := range imports {
152 if _, found := pkg.Imports[imp]; found {
153 continue
154 }
155 overlayAddsImports = true
156 id, ok := havePkgs[imp]
157 if !ok {
158 var err error
159 id, err = state.resolveImport(dir, imp)
160 if err != nil {
161 return nil, nil, err
162 }
163 }
164 pkg.Imports[imp] = &Package{ID: id}
165 // Add dependencies to the non-test variant version of this package as well.
166 if testVariantOf != nil {
167 testVariantOf.Imports[imp] = &Package{ID: id}
168 }
169 }
170 }
171
172 // toPkgPath guesses the package path given the id.
173 toPkgPath := func(sourceDir, id string) (string, error) {
174 if i := strings.IndexByte(id, ' '); i >= 0 {
175 return state.resolveImport(sourceDir, id[:i])
176 }
177 return state.resolveImport(sourceDir, id)
178 }
179
180 // Now that new packages have been created, do another pass to determine
181 // the new set of missing packages.
182 for _, pkg := range response.dr.Packages {
183 for _, imp := range pkg.Imports {
184 if len(pkg.GoFiles) == 0 {
185 return nil, nil, fmt.Errorf("cannot resolve imports for package %q with no Go files", pkg.PkgPath)
186 }
187 pkgPath, err := toPkgPath(filepath.Dir(pkg.GoFiles[0]), imp.ID)
188 if err != nil {
189 return nil, nil, err
190 }
191 if _, ok := havePkgs[pkgPath]; !ok {
192 needPkgsSet[pkgPath] = true
193 }
194 }
195 }
196
197 if overlayAddsImports {
198 needPkgs = make([]string, 0, len(needPkgsSet))
199 for pkg := range needPkgsSet {
200 needPkgs = append(needPkgs, pkg)
201 }
202 }
203 modifiedPkgs = make([]string, 0, len(modifiedPkgsSet))
204 for pkg := range modifiedPkgsSet {
205 modifiedPkgs = append(modifiedPkgs, pkg)
206 }
207 return modifiedPkgs, needPkgs, err
208}
209
210// resolveImport finds the the ID of a package given its import path.
211// In particular, it will find the right vendored copy when in GOPATH mode.
212func (state *golistState) resolveImport(sourceDir, importPath string) (string, error) {
213 env, err := state.getEnv()
214 if err != nil {
215 return "", err
216 }
217 if env["GOMOD"] != "" {
218 return importPath, nil
219 }
220
221 searchDir := sourceDir
222 for {
223 vendorDir := filepath.Join(searchDir, "vendor")
224 exists, ok := state.vendorDirs[vendorDir]
225 if !ok {
226 info, err := os.Stat(vendorDir)
227 exists = err == nil && info.IsDir()
228 state.vendorDirs[vendorDir] = exists
229 }
230
231 if exists {
232 vendoredPath := filepath.Join(vendorDir, importPath)
233 if info, err := os.Stat(vendoredPath); err == nil && info.IsDir() {
234 // We should probably check for .go files here, but shame on anyone who fools us.
235 path, ok, err := state.getPkgPath(vendoredPath)
236 if err != nil {
237 return "", err
238 }
239 if ok {
240 return path, nil
241 }
242 }
243 }
244
245 // We know we've hit the top of the filesystem when we Dir / and get /,
246 // or C:\ and get C:\, etc.
247 next := filepath.Dir(searchDir)
248 if next == searchDir {
249 break
250 }
251 searchDir = next
252 }
253 return importPath, nil
254}
255
256func hasTestFiles(p *Package) bool {
257 for _, f := range p.GoFiles {
258 if strings.HasSuffix(f, "_test.go") {
259 return true
260 }
261 }
262 return false
263}
264
265// determineRootDirs returns a mapping from absolute directories that could
266// contain code to their corresponding import path prefixes.
267func (state *golistState) determineRootDirs() (map[string]string, error) {
268 env, err := state.getEnv()
269 if err != nil {
270 return nil, err
271 }
272 if env["GOMOD"] != "" {
273 state.rootsOnce.Do(func() {
274 state.rootDirs, state.rootDirsError = state.determineRootDirsModules()
275 })
276 } else {
277 state.rootsOnce.Do(func() {
278 state.rootDirs, state.rootDirsError = state.determineRootDirsGOPATH()
279 })
280 }
281 return state.rootDirs, state.rootDirsError
282}
283
284func (state *golistState) determineRootDirsModules() (map[string]string, error) {
285 out, err := state.invokeGo("list", "-m", "-json", "all")
286 if err != nil {
287 return nil, err
288 }
289 m := map[string]string{}
290 type jsonMod struct{ Path, Dir string }
291 for dec := json.NewDecoder(out); dec.More(); {
292 mod := new(jsonMod)
293 if err := dec.Decode(mod); err != nil {
294 return nil, err
295 }
296 if mod.Dir != "" && mod.Path != "" {
297 // This is a valid module; add it to the map.
298 absDir, err := filepath.Abs(mod.Dir)
299 if err != nil {
300 return nil, err
301 }
302 m[absDir] = mod.Path
303 }
304 }
305 return m, nil
306}
307
308func (state *golistState) determineRootDirsGOPATH() (map[string]string, error) {
309 m := map[string]string{}
310 for _, dir := range filepath.SplitList(state.mustGetEnv()["GOPATH"]) {
311 absDir, err := filepath.Abs(dir)
312 if err != nil {
313 return nil, err
314 }
315 m[filepath.Join(absDir, "src")] = ""
316 }
317 return m, nil
318}
319
320func extractImports(filename string, contents []byte) ([]string, error) {
321 f, err := parser.ParseFile(token.NewFileSet(), filename, contents, parser.ImportsOnly) // TODO(matloob): reuse fileset?
322 if err != nil {
323 return nil, err
324 }
325 var res []string
326 for _, imp := range f.Imports {
327 quotedPath := imp.Path.Value
328 path, err := strconv.Unquote(quotedPath)
329 if err != nil {
330 return nil, err
331 }
332 res = append(res, path)
333 }
334 return res, nil
335}
336
337// reclaimPackage attempts to reuse a package that failed to load in an overlay.
338//
339// If the package has errors and has no Name, GoFiles, or Imports,
340// then it's possible that it doesn't yet exist on disk.
341func reclaimPackage(pkg *Package, id string, filename string, contents []byte) bool {
342 // TODO(rstambler): Check the message of the actual error?
343 // It differs between $GOPATH and module mode.
344 if pkg.ID != id {
345 return false
346 }
347 if len(pkg.Errors) != 1 {
348 return false
349 }
350 if pkg.Name != "" || pkg.ExportFile != "" {
351 return false
352 }
353 if len(pkg.GoFiles) > 0 || len(pkg.CompiledGoFiles) > 0 || len(pkg.OtherFiles) > 0 {
354 return false
355 }
356 if len(pkg.Imports) > 0 {
357 return false
358 }
359 pkgName, ok := extractPackageName(filename, contents)
360 if !ok {
361 return false
362 }
363 pkg.Name = pkgName
364 pkg.Errors = nil
365 return true
366}
367
368func extractPackageName(filename string, contents []byte) (string, bool) {
369 // TODO(rstambler): Check the message of the actual error?
370 // It differs between $GOPATH and module mode.
371 f, err := parser.ParseFile(token.NewFileSet(), filename, contents, parser.PackageClauseOnly) // TODO(matloob): reuse fileset?
372 if err != nil {
373 return "", false
374 }
375 return f.Name.Name, true
376}
diff --git a/vendor/golang.org/x/tools/go/packages/loadmode_string.go b/vendor/golang.org/x/tools/go/packages/loadmode_string.go
new file mode 100644
index 0000000..aff94a3
--- /dev/null
+++ b/vendor/golang.org/x/tools/go/packages/loadmode_string.go
@@ -0,0 +1,57 @@
1// Copyright 2019 The Go Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style
3// license that can be found in the LICENSE file.
4
5package packages
6
7import (
8 "fmt"
9 "strings"
10)
11
12var allModes = []LoadMode{
13 NeedName,
14 NeedFiles,
15 NeedCompiledGoFiles,
16 NeedImports,
17 NeedDeps,
18 NeedExportsFile,
19 NeedTypes,
20 NeedSyntax,
21 NeedTypesInfo,
22 NeedTypesSizes,
23}
24
25var modeStrings = []string{
26 "NeedName",
27 "NeedFiles",
28 "NeedCompiledGoFiles",
29 "NeedImports",
30 "NeedDeps",
31 "NeedExportsFile",
32 "NeedTypes",
33 "NeedSyntax",
34 "NeedTypesInfo",
35 "NeedTypesSizes",
36}
37
38func (mod LoadMode) String() string {
39 m := mod
40 if m == 0 {
41 return fmt.Sprintf("LoadMode(0)")
42 }
43 var out []string
44 for i, x := range allModes {
45 if x > m {
46 break
47 }
48 if (m & x) != 0 {
49 out = append(out, modeStrings[i])
50 m = m ^ x
51 }
52 }
53 if m != 0 {
54 out = append(out, "Unknown")
55 }
56 return fmt.Sprintf("LoadMode(%s)", strings.Join(out, "|"))
57}
diff --git a/vendor/golang.org/x/tools/go/packages/packages.go b/vendor/golang.org/x/tools/go/packages/packages.go
new file mode 100644
index 0000000..586c714
--- /dev/null
+++ b/vendor/golang.org/x/tools/go/packages/packages.go
@@ -0,0 +1,1140 @@
1// Copyright 2018 The Go Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style
3// license that can be found in the LICENSE file.
4
5package packages
6
7// See doc.go for package documentation and implementation notes.
8
9import (
10 "context"
11 "encoding/json"
12 "fmt"
13 "go/ast"
14 "go/parser"
15 "go/scanner"
16 "go/token"
17 "go/types"
18 "io/ioutil"
19 "log"
20 "os"
21 "path/filepath"
22 "strings"
23 "sync"
24
25 "golang.org/x/tools/go/gcexportdata"
26 "golang.org/x/tools/internal/packagesinternal"
27)
28
29// A LoadMode controls the amount of detail to return when loading.
30// The bits below can be combined to specify which fields should be
31// filled in the result packages.
32// The zero value is a special case, equivalent to combining
33// the NeedName, NeedFiles, and NeedCompiledGoFiles bits.
34// ID and Errors (if present) will always be filled.
35// Load may return more information than requested.
36type LoadMode int
37
38// TODO(matloob): When a V2 of go/packages is released, rename NeedExportsFile to
39// NeedExportFile to make it consistent with the Package field it's adding.
40
41const (
42 // NeedName adds Name and PkgPath.
43 NeedName LoadMode = 1 << iota
44
45 // NeedFiles adds GoFiles and OtherFiles.
46 NeedFiles
47
48 // NeedCompiledGoFiles adds CompiledGoFiles.
49 NeedCompiledGoFiles
50
51 // NeedImports adds Imports. If NeedDeps is not set, the Imports field will contain
52 // "placeholder" Packages with only the ID set.
53 NeedImports
54
55 // NeedDeps adds the fields requested by the LoadMode in the packages in Imports.
56 NeedDeps
57
58 // NeedExportsFile adds ExportFile.
59 NeedExportsFile
60
61 // NeedTypes adds Types, Fset, and IllTyped.
62 NeedTypes
63
64 // NeedSyntax adds Syntax.
65 NeedSyntax
66
67 // NeedTypesInfo adds TypesInfo.
68 NeedTypesInfo
69
70 // NeedTypesSizes adds TypesSizes.
71 NeedTypesSizes
72)
73
74const (
75 // Deprecated: LoadFiles exists for historical compatibility
76 // and should not be used. Please directly specify the needed fields using the Need values.
77 LoadFiles = NeedName | NeedFiles | NeedCompiledGoFiles
78
79 // Deprecated: LoadImports exists for historical compatibility
80 // and should not be used. Please directly specify the needed fields using the Need values.
81 LoadImports = LoadFiles | NeedImports
82
83 // Deprecated: LoadTypes exists for historical compatibility
84 // and should not be used. Please directly specify the needed fields using the Need values.
85 LoadTypes = LoadImports | NeedTypes | NeedTypesSizes
86
87 // Deprecated: LoadSyntax exists for historical compatibility
88 // and should not be used. Please directly specify the needed fields using the Need values.
89 LoadSyntax = LoadTypes | NeedSyntax | NeedTypesInfo
90
91 // Deprecated: LoadAllSyntax exists for historical compatibility
92 // and should not be used. Please directly specify the needed fields using the Need values.
93 LoadAllSyntax = LoadSyntax | NeedDeps
94)
95
96// A Config specifies details about how packages should be loaded.
97// The zero value is a valid configuration.
98// Calls to Load do not modify this struct.
99type Config struct {
100 // Mode controls the level of information returned for each package.
101 Mode LoadMode
102
103 // Context specifies the context for the load operation.
104 // If the context is cancelled, the loader may stop early
105 // and return an ErrCancelled error.
106 // If Context is nil, the load cannot be cancelled.
107 Context context.Context
108
109 // Logf is the logger for the config.
110 // If the user provides a logger, debug logging is enabled.
111 // If the GOPACKAGESDEBUG environment variable is set to true,
112 // but the logger is nil, default to log.Printf.
113 Logf func(format string, args ...interface{})
114
115 // Dir is the directory in which to run the build system's query tool
116 // that provides information about the packages.
117 // If Dir is empty, the tool is run in the current directory.
118 Dir string
119
120 // Env is the environment to use when invoking the build system's query tool.
121 // If Env is nil, the current environment is used.
122 // As in os/exec's Cmd, only the last value in the slice for
123 // each environment key is used. To specify the setting of only
124 // a few variables, append to the current environment, as in:
125 //
126 // opt.Env = append(os.Environ(), "GOOS=plan9", "GOARCH=386")
127 //
128 Env []string
129
130 // BuildFlags is a list of command-line flags to be passed through to
131 // the build system's query tool.
132 BuildFlags []string
133
134 // Fset provides source position information for syntax trees and types.
135 // If Fset is nil, Load will use a new fileset, but preserve Fset's value.
136 Fset *token.FileSet
137
138 // ParseFile is called to read and parse each file
139 // when preparing a package's type-checked syntax tree.
140 // It must be safe to call ParseFile simultaneously from multiple goroutines.
141 // If ParseFile is nil, the loader will uses parser.ParseFile.
142 //
143 // ParseFile should parse the source from src and use filename only for
144 // recording position information.
145 //
146 // An application may supply a custom implementation of ParseFile
147 // to change the effective file contents or the behavior of the parser,
148 // or to modify the syntax tree. For example, selectively eliminating
149 // unwanted function bodies can significantly accelerate type checking.
150 ParseFile func(fset *token.FileSet, filename string, src []byte) (*ast.File, error)
151
152 // If Tests is set, the loader includes not just the packages
153 // matching a particular pattern but also any related test packages,
154 // including test-only variants of the package and the test executable.
155 //
156 // For example, when using the go command, loading "fmt" with Tests=true
157 // returns four packages, with IDs "fmt" (the standard package),
158 // "fmt [fmt.test]" (the package as compiled for the test),
159 // "fmt_test" (the test functions from source files in package fmt_test),
160 // and "fmt.test" (the test binary).
161 //
162 // In build systems with explicit names for tests,
163 // setting Tests may have no effect.
164 Tests bool
165
166 // Overlay provides a mapping of absolute file paths to file contents.
167 // If the file with the given path already exists, the parser will use the
168 // alternative file contents provided by the map.
169 //
170 // Overlays provide incomplete support for when a given file doesn't
171 // already exist on disk. See the package doc above for more details.
172 Overlay map[string][]byte
173}
174
175// driver is the type for functions that query the build system for the
176// packages named by the patterns.
177type driver func(cfg *Config, patterns ...string) (*driverResponse, error)
178
179// driverResponse contains the results for a driver query.
180type driverResponse struct {
181 // Sizes, if not nil, is the types.Sizes to use when type checking.
182 Sizes *types.StdSizes
183
184 // Roots is the set of package IDs that make up the root packages.
185 // We have to encode this separately because when we encode a single package
186 // we cannot know if it is one of the roots as that requires knowledge of the
187 // graph it is part of.
188 Roots []string `json:",omitempty"`
189
190 // Packages is the full set of packages in the graph.
191 // The packages are not connected into a graph.
192 // The Imports if populated will be stubs that only have their ID set.
193 // Imports will be connected and then type and syntax information added in a
194 // later pass (see refine).
195 Packages []*Package
196}
197
198// Load loads and returns the Go packages named by the given patterns.
199//
200// Config specifies loading options;
201// nil behaves the same as an empty Config.
202//
203// Load returns an error if any of the patterns was invalid
204// as defined by the underlying build system.
205// It may return an empty list of packages without an error,
206// for instance for an empty expansion of a valid wildcard.
207// Errors associated with a particular package are recorded in the
208// corresponding Package's Errors list, and do not cause Load to
209// return an error. Clients may need to handle such errors before
210// proceeding with further analysis. The PrintErrors function is
211// provided for convenient display of all errors.
212func Load(cfg *Config, patterns ...string) ([]*Package, error) {
213 l := newLoader(cfg)
214 response, err := defaultDriver(&l.Config, patterns...)
215 if err != nil {
216 return nil, err
217 }
218 l.sizes = response.Sizes
219 return l.refine(response.Roots, response.Packages...)
220}
221
222// defaultDriver is a driver that looks for an external driver binary, and if
223// it does not find it falls back to the built in go list driver.
224func defaultDriver(cfg *Config, patterns ...string) (*driverResponse, error) {
225 driver := findExternalDriver(cfg)
226 if driver == nil {
227 driver = goListDriver
228 }
229 return driver(cfg, patterns...)
230}
231
232// A Package describes a loaded Go package.
233type Package struct {
234 // ID is a unique identifier for a package,
235 // in a syntax provided by the underlying build system.
236 //
237 // Because the syntax varies based on the build system,
238 // clients should treat IDs as opaque and not attempt to
239 // interpret them.
240 ID string
241
242 // Name is the package name as it appears in the package source code.
243 Name string
244
245 // PkgPath is the package path as used by the go/types package.
246 PkgPath string
247
248 // Errors contains any errors encountered querying the metadata
249 // of the package, or while parsing or type-checking its files.
250 Errors []Error
251
252 // GoFiles lists the absolute file paths of the package's Go source files.
253 GoFiles []string
254
255 // CompiledGoFiles lists the absolute file paths of the package's source
256 // files that were presented to the compiler.
257 // This may differ from GoFiles if files are processed before compilation.
258 CompiledGoFiles []string
259
260 // OtherFiles lists the absolute file paths of the package's non-Go source files,
261 // including assembly, C, C++, Fortran, Objective-C, SWIG, and so on.
262 OtherFiles []string
263
264 // ExportFile is the absolute path to a file containing type
265 // information for the package as provided by the build system.
266 ExportFile string
267
268 // Imports maps import paths appearing in the package's Go source files
269 // to corresponding loaded Packages.
270 Imports map[string]*Package
271
272 // Types provides type information for the package.
273 // The NeedTypes LoadMode bit sets this field for packages matching the
274 // patterns; type information for dependencies may be missing or incomplete,
275 // unless NeedDeps and NeedImports are also set.
276 Types *types.Package
277
278 // Fset provides position information for Types, TypesInfo, and Syntax.
279 // It is set only when Types is set.
280 Fset *token.FileSet
281
282 // IllTyped indicates whether the package or any dependency contains errors.
283 // It is set only when Types is set.
284 IllTyped bool
285
286 // Syntax is the package's syntax trees, for the files listed in CompiledGoFiles.
287 //
288 // The NeedSyntax LoadMode bit populates this field for packages matching the patterns.
289 // If NeedDeps and NeedImports are also set, this field will also be populated
290 // for dependencies.
291 Syntax []*ast.File
292
293 // TypesInfo provides type information about the package's syntax trees.
294 // It is set only when Syntax is set.
295 TypesInfo *types.Info
296
297 // TypesSizes provides the effective size function for types in TypesInfo.
298 TypesSizes types.Sizes
299
300 // forTest is the package under test, if any.
301 forTest string
302}
303
304func init() {
305 packagesinternal.GetForTest = func(p interface{}) string {
306 return p.(*Package).forTest
307 }
308}
309
310// An Error describes a problem with a package's metadata, syntax, or types.
311type Error struct {
312 Pos string // "file:line:col" or "file:line" or "" or "-"
313 Msg string
314 Kind ErrorKind
315}
316
317// ErrorKind describes the source of the error, allowing the user to
318// differentiate between errors generated by the driver, the parser, or the
319// type-checker.
320type ErrorKind int
321
322const (
323 UnknownError ErrorKind = iota
324 ListError
325 ParseError
326 TypeError
327)
328
329func (err Error) Error() string {
330 pos := err.Pos
331 if pos == "" {
332 pos = "-" // like token.Position{}.String()
333 }
334 return pos + ": " + err.Msg
335}
336
337// flatPackage is the JSON form of Package
338// It drops all the type and syntax fields, and transforms the Imports
339//
340// TODO(adonovan): identify this struct with Package, effectively
341// publishing the JSON protocol.
342type flatPackage struct {
343 ID string
344 Name string `json:",omitempty"`
345 PkgPath string `json:",omitempty"`
346 Errors []Error `json:",omitempty"`
347 GoFiles []string `json:",omitempty"`
348 CompiledGoFiles []string `json:",omitempty"`
349 OtherFiles []string `json:",omitempty"`
350 ExportFile string `json:",omitempty"`
351 Imports map[string]string `json:",omitempty"`
352}
353
354// MarshalJSON returns the Package in its JSON form.
355// For the most part, the structure fields are written out unmodified, and
356// the type and syntax fields are skipped.
357// The imports are written out as just a map of path to package id.
358// The errors are written using a custom type that tries to preserve the
359// structure of error types we know about.
360//
361// This method exists to enable support for additional build systems. It is
362// not intended for use by clients of the API and we may change the format.
363func (p *Package) MarshalJSON() ([]byte, error) {
364 flat := &flatPackage{
365 ID: p.ID,
366 Name: p.Name,
367 PkgPath: p.PkgPath,
368 Errors: p.Errors,
369 GoFiles: p.GoFiles,
370 CompiledGoFiles: p.CompiledGoFiles,
371 OtherFiles: p.OtherFiles,
372 ExportFile: p.ExportFile,
373 }
374 if len(p.Imports) > 0 {
375 flat.Imports = make(map[string]string, len(p.Imports))
376 for path, ipkg := range p.Imports {
377 flat.Imports[path] = ipkg.ID
378 }
379 }
380 return json.Marshal(flat)
381}
382
383// UnmarshalJSON reads in a Package from its JSON format.
384// See MarshalJSON for details about the format accepted.
385func (p *Package) UnmarshalJSON(b []byte) error {
386 flat := &flatPackage{}
387 if err := json.Unmarshal(b, &flat); err != nil {
388 return err
389 }
390 *p = Package{
391 ID: flat.ID,
392 Name: flat.Name,
393 PkgPath: flat.PkgPath,
394 Errors: flat.Errors,
395 GoFiles: flat.GoFiles,
396 CompiledGoFiles: flat.CompiledGoFiles,
397 OtherFiles: flat.OtherFiles,
398 ExportFile: flat.ExportFile,
399 }
400 if len(flat.Imports) > 0 {
401 p.Imports = make(map[string]*Package, len(flat.Imports))
402 for path, id := range flat.Imports {
403 p.Imports[path] = &Package{ID: id}
404 }
405 }
406 return nil
407}
408
409func (p *Package) String() string { return p.ID }
410
411// loaderPackage augments Package with state used during the loading phase
412type loaderPackage struct {
413 *Package
414 importErrors map[string]error // maps each bad import to its error
415 loadOnce sync.Once
416 color uint8 // for cycle detection
417 needsrc bool // load from source (Mode >= LoadTypes)
418 needtypes bool // type information is either requested or depended on
419 initial bool // package was matched by a pattern
420}
421
422// loader holds the working state of a single call to load.
423type loader struct {
424 pkgs map[string]*loaderPackage
425 Config
426 sizes types.Sizes
427 parseCache map[string]*parseValue
428 parseCacheMu sync.Mutex
429 exportMu sync.Mutex // enforces mutual exclusion of exportdata operations
430
431 // Config.Mode contains the implied mode (see impliedLoadMode).
432 // Implied mode contains all the fields we need the data for.
433 // In requestedMode there are the actually requested fields.
434 // We'll zero them out before returning packages to the user.
435 // This makes it easier for us to get the conditions where
436 // we need certain modes right.
437 requestedMode LoadMode
438}
439
440type parseValue struct {
441 f *ast.File
442 err error
443 ready chan struct{}
444}
445
446func newLoader(cfg *Config) *loader {
447 ld := &loader{
448 parseCache: map[string]*parseValue{},
449 }
450 if cfg != nil {
451 ld.Config = *cfg
452 // If the user has provided a logger, use it.
453 ld.Config.Logf = cfg.Logf
454 }
455 if ld.Config.Logf == nil {
456 // If the GOPACKAGESDEBUG environment variable is set to true,
457 // but the user has not provided a logger, default to log.Printf.
458 if debug {
459 ld.Config.Logf = log.Printf
460 } else {
461 ld.Config.Logf = func(format string, args ...interface{}) {}
462 }
463 }
464 if ld.Config.Mode == 0 {
465 ld.Config.Mode = NeedName | NeedFiles | NeedCompiledGoFiles // Preserve zero behavior of Mode for backwards compatibility.
466 }
467 if ld.Config.Env == nil {
468 ld.Config.Env = os.Environ()
469 }
470 if ld.Context == nil {
471 ld.Context = context.Background()
472 }
473 if ld.Dir == "" {
474 if dir, err := os.Getwd(); err == nil {
475 ld.Dir = dir
476 }
477 }
478
479 // Save the actually requested fields. We'll zero them out before returning packages to the user.
480 ld.requestedMode = ld.Mode
481 ld.Mode = impliedLoadMode(ld.Mode)
482
483 if ld.Mode&NeedTypes != 0 || ld.Mode&NeedSyntax != 0 {
484 if ld.Fset == nil {
485 ld.Fset = token.NewFileSet()
486 }
487
488 // ParseFile is required even in LoadTypes mode
489 // because we load source if export data is missing.
490 if ld.ParseFile == nil {
491 ld.ParseFile = func(fset *token.FileSet, filename string, src []byte) (*ast.File, error) {
492 const mode = parser.AllErrors | parser.ParseComments
493 return parser.ParseFile(fset, filename, src, mode)
494 }
495 }
496 }
497
498 return ld
499}
500
501// refine connects the supplied packages into a graph and then adds type and
502// and syntax information as requested by the LoadMode.
503func (ld *loader) refine(roots []string, list ...*Package) ([]*Package, error) {
504 rootMap := make(map[string]int, len(roots))
505 for i, root := range roots {
506 rootMap[root] = i
507 }
508 ld.pkgs = make(map[string]*loaderPackage)
509 // first pass, fixup and build the map and roots
510 var initial = make([]*loaderPackage, len(roots))
511 for _, pkg := range list {
512 rootIndex := -1
513 if i, found := rootMap[pkg.ID]; found {
514 rootIndex = i
515 }
516
517 // Overlays can invalidate export data.
518 // TODO(matloob): make this check fine-grained based on dependencies on overlaid files
519 exportDataInvalid := len(ld.Overlay) > 0 || pkg.ExportFile == "" && pkg.PkgPath != "unsafe"
520 // This package needs type information if the caller requested types and the package is
521 // either a root, or it's a non-root and the user requested dependencies ...
522 needtypes := (ld.Mode&NeedTypes|NeedTypesInfo != 0 && (rootIndex >= 0 || ld.Mode&NeedDeps != 0))
523 // This package needs source if the call requested source (or types info, which implies source)
524 // and the package is either a root, or itas a non- root and the user requested dependencies...
525 needsrc := ((ld.Mode&(NeedSyntax|NeedTypesInfo) != 0 && (rootIndex >= 0 || ld.Mode&NeedDeps != 0)) ||
526 // ... or if we need types and the exportData is invalid. We fall back to (incompletely)
527 // typechecking packages from source if they fail to compile.
528 (ld.Mode&NeedTypes|NeedTypesInfo != 0 && exportDataInvalid)) && pkg.PkgPath != "unsafe"
529 lpkg := &loaderPackage{
530 Package: pkg,
531 needtypes: needtypes,
532 needsrc: needsrc,
533 }
534 ld.pkgs[lpkg.ID] = lpkg
535 if rootIndex >= 0 {
536 initial[rootIndex] = lpkg
537 lpkg.initial = true
538 }
539 }
540 for i, root := range roots {
541 if initial[i] == nil {
542 return nil, fmt.Errorf("root package %v is missing", root)
543 }
544 }
545
546 // Materialize the import graph.
547
548 const (
549 white = 0 // new
550 grey = 1 // in progress
551 black = 2 // complete
552 )
553
554 // visit traverses the import graph, depth-first,
555 // and materializes the graph as Packages.Imports.
556 //
557 // Valid imports are saved in the Packages.Import map.
558 // Invalid imports (cycles and missing nodes) are saved in the importErrors map.
559 // Thus, even in the presence of both kinds of errors, the Import graph remains a DAG.
560 //
561 // visit returns whether the package needs src or has a transitive
562 // dependency on a package that does. These are the only packages
563 // for which we load source code.
564 var stack []*loaderPackage
565 var visit func(lpkg *loaderPackage) bool
566 var srcPkgs []*loaderPackage
567 visit = func(lpkg *loaderPackage) bool {
568 switch lpkg.color {
569 case black:
570 return lpkg.needsrc
571 case grey:
572 panic("internal error: grey node")
573 }
574 lpkg.color = grey
575 stack = append(stack, lpkg) // push
576 stubs := lpkg.Imports // the structure form has only stubs with the ID in the Imports
577 // If NeedImports isn't set, the imports fields will all be zeroed out.
578 if ld.Mode&NeedImports != 0 {
579 lpkg.Imports = make(map[string]*Package, len(stubs))
580 for importPath, ipkg := range stubs {
581 var importErr error
582 imp := ld.pkgs[ipkg.ID]
583 if imp == nil {
584 // (includes package "C" when DisableCgo)
585 importErr = fmt.Errorf("missing package: %q", ipkg.ID)
586 } else if imp.color == grey {
587 importErr = fmt.Errorf("import cycle: %s", stack)
588 }
589 if importErr != nil {
590 if lpkg.importErrors == nil {
591 lpkg.importErrors = make(map[string]error)
592 }
593 lpkg.importErrors[importPath] = importErr
594 continue
595 }
596
597 if visit(imp) {
598 lpkg.needsrc = true
599 }
600 lpkg.Imports[importPath] = imp.Package
601 }
602 }
603 if lpkg.needsrc {
604 srcPkgs = append(srcPkgs, lpkg)
605 }
606 if ld.Mode&NeedTypesSizes != 0 {
607 lpkg.TypesSizes = ld.sizes
608 }
609 stack = stack[:len(stack)-1] // pop
610 lpkg.color = black
611
612 return lpkg.needsrc
613 }
614
615 if ld.Mode&NeedImports == 0 {
616 // We do this to drop the stub import packages that we are not even going to try to resolve.
617 for _, lpkg := range initial {
618 lpkg.Imports = nil
619 }
620 } else {
621 // For each initial package, create its import DAG.
622 for _, lpkg := range initial {
623 visit(lpkg)
624 }
625 }
626 if ld.Mode&NeedImports != 0 && ld.Mode&NeedTypes != 0 {
627 for _, lpkg := range srcPkgs {
628 // Complete type information is required for the
629 // immediate dependencies of each source package.
630 for _, ipkg := range lpkg.Imports {
631 imp := ld.pkgs[ipkg.ID]
632 imp.needtypes = true
633 }
634 }
635 }
636 // Load type data and syntax if needed, starting at
637 // the initial packages (roots of the import DAG).
638 if ld.Mode&NeedTypes != 0 || ld.Mode&NeedSyntax != 0 {
639 var wg sync.WaitGroup
640 for _, lpkg := range initial {
641 wg.Add(1)
642 go func(lpkg *loaderPackage) {
643 ld.loadRecursive(lpkg)
644 wg.Done()
645 }(lpkg)
646 }
647 wg.Wait()
648 }
649
650 result := make([]*Package, len(initial))
651 for i, lpkg := range initial {
652 result[i] = lpkg.Package
653 }
654 for i := range ld.pkgs {
655 // Clear all unrequested fields, for extra de-Hyrum-ization.
656 if ld.requestedMode&NeedName == 0 {
657 ld.pkgs[i].Name = ""
658 ld.pkgs[i].PkgPath = ""
659 }
660 if ld.requestedMode&NeedFiles == 0 {
661 ld.pkgs[i].GoFiles = nil
662 ld.pkgs[i].OtherFiles = nil
663 }
664 if ld.requestedMode&NeedCompiledGoFiles == 0 {
665 ld.pkgs[i].CompiledGoFiles = nil
666 }
667 if ld.requestedMode&NeedImports == 0 {
668 ld.pkgs[i].Imports = nil
669 }
670 if ld.requestedMode&NeedExportsFile == 0 {
671 ld.pkgs[i].ExportFile = ""
672 }
673 if ld.requestedMode&NeedTypes == 0 {
674 ld.pkgs[i].Types = nil
675 ld.pkgs[i].Fset = nil
676 ld.pkgs[i].IllTyped = false
677 }
678 if ld.requestedMode&NeedSyntax == 0 {
679 ld.pkgs[i].Syntax = nil
680 }
681 if ld.requestedMode&NeedTypesInfo == 0 {
682 ld.pkgs[i].TypesInfo = nil
683 }
684 if ld.requestedMode&NeedTypesSizes == 0 {
685 ld.pkgs[i].TypesSizes = nil
686 }
687 }
688
689 return result, nil
690}
691
692// loadRecursive loads the specified package and its dependencies,
693// recursively, in parallel, in topological order.
694// It is atomic and idempotent.
695// Precondition: ld.Mode&NeedTypes.
696func (ld *loader) loadRecursive(lpkg *loaderPackage) {
697 lpkg.loadOnce.Do(func() {
698 // Load the direct dependencies, in parallel.
699 var wg sync.WaitGroup
700 for _, ipkg := range lpkg.Imports {
701 imp := ld.pkgs[ipkg.ID]
702 wg.Add(1)
703 go func(imp *loaderPackage) {
704 ld.loadRecursive(imp)
705 wg.Done()
706 }(imp)
707 }
708 wg.Wait()
709 ld.loadPackage(lpkg)
710 })
711}
712
713// loadPackage loads the specified package.
714// It must be called only once per Package,
715// after immediate dependencies are loaded.
716// Precondition: ld.Mode & NeedTypes.
717func (ld *loader) loadPackage(lpkg *loaderPackage) {
718 if lpkg.PkgPath == "unsafe" {
719 // Fill in the blanks to avoid surprises.
720 lpkg.Types = types.Unsafe
721 lpkg.Fset = ld.Fset
722 lpkg.Syntax = []*ast.File{}
723 lpkg.TypesInfo = new(types.Info)
724 lpkg.TypesSizes = ld.sizes
725 return
726 }
727
728 // Call NewPackage directly with explicit name.
729 // This avoids skew between golist and go/types when the files'
730 // package declarations are inconsistent.
731 lpkg.Types = types.NewPackage(lpkg.PkgPath, lpkg.Name)
732 lpkg.Fset = ld.Fset
733
734 // Subtle: we populate all Types fields with an empty Package
735 // before loading export data so that export data processing
736 // never has to create a types.Package for an indirect dependency,
737 // which would then require that such created packages be explicitly
738 // inserted back into the Import graph as a final step after export data loading.
739 // The Diamond test exercises this case.
740 if !lpkg.needtypes && !lpkg.needsrc {
741 return
742 }
743 if !lpkg.needsrc {
744 ld.loadFromExportData(lpkg)
745 return // not a source package, don't get syntax trees
746 }
747
748 appendError := func(err error) {
749 // Convert various error types into the one true Error.
750 var errs []Error
751 switch err := err.(type) {
752 case Error:
753 // from driver
754 errs = append(errs, err)
755
756 case *os.PathError:
757 // from parser
758 errs = append(errs, Error{
759 Pos: err.Path + ":1",
760 Msg: err.Err.Error(),
761 Kind: ParseError,
762 })
763
764 case scanner.ErrorList:
765 // from parser
766 for _, err := range err {
767 errs = append(errs, Error{
768 Pos: err.Pos.String(),
769 Msg: err.Msg,
770 Kind: ParseError,
771 })
772 }
773
774 case types.Error:
775 // from type checker
776 errs = append(errs, Error{
777 Pos: err.Fset.Position(err.Pos).String(),
778 Msg: err.Msg,
779 Kind: TypeError,
780 })
781
782 default:
783 // unexpected impoverished error from parser?
784 errs = append(errs, Error{
785 Pos: "-",
786 Msg: err.Error(),
787 Kind: UnknownError,
788 })
789
790 // If you see this error message, please file a bug.
791 log.Printf("internal error: error %q (%T) without position", err, err)
792 }
793
794 lpkg.Errors = append(lpkg.Errors, errs...)
795 }
796
797 if ld.Config.Mode&NeedTypes != 0 && len(lpkg.CompiledGoFiles) == 0 && lpkg.ExportFile != "" {
798 // The config requested loading sources and types, but sources are missing.
799 // Add an error to the package and fall back to loading from export data.
800 appendError(Error{"-", fmt.Sprintf("sources missing for package %s", lpkg.ID), ParseError})
801 ld.loadFromExportData(lpkg)
802 return // can't get syntax trees for this package
803 }
804
805 files, errs := ld.parseFiles(lpkg.CompiledGoFiles)
806 for _, err := range errs {
807 appendError(err)
808 }
809
810 lpkg.Syntax = files
811 if ld.Config.Mode&NeedTypes == 0 {
812 return
813 }
814
815 lpkg.TypesInfo = &types.Info{
816 Types: make(map[ast.Expr]types.TypeAndValue),
817 Defs: make(map[*ast.Ident]types.Object),
818 Uses: make(map[*ast.Ident]types.Object),
819 Implicits: make(map[ast.Node]types.Object),
820 Scopes: make(map[ast.Node]*types.Scope),
821 Selections: make(map[*ast.SelectorExpr]*types.Selection),
822 }
823 lpkg.TypesSizes = ld.sizes
824
825 importer := importerFunc(func(path string) (*types.Package, error) {
826 if path == "unsafe" {
827 return types.Unsafe, nil
828 }
829
830 // The imports map is keyed by import path.
831 ipkg := lpkg.Imports[path]
832 if ipkg == nil {
833 if err := lpkg.importErrors[path]; err != nil {
834 return nil, err
835 }
836 // There was skew between the metadata and the
837 // import declarations, likely due to an edit
838 // race, or because the ParseFile feature was
839 // used to supply alternative file contents.
840 return nil, fmt.Errorf("no metadata for %s", path)
841 }
842
843 if ipkg.Types != nil && ipkg.Types.Complete() {
844 return ipkg.Types, nil
845 }
846 log.Fatalf("internal error: package %q without types was imported from %q", path, lpkg)
847 panic("unreachable")
848 })
849
850 // type-check
851 tc := &types.Config{
852 Importer: importer,
853
854 // Type-check bodies of functions only in non-initial packages.
855 // Example: for import graph A->B->C and initial packages {A,C},
856 // we can ignore function bodies in B.
857 IgnoreFuncBodies: ld.Mode&NeedDeps == 0 && !lpkg.initial,
858
859 Error: appendError,
860 Sizes: ld.sizes,
861 }
862 types.NewChecker(tc, ld.Fset, lpkg.Types, lpkg.TypesInfo).Files(lpkg.Syntax)
863
864 lpkg.importErrors = nil // no longer needed
865
866 // If !Cgo, the type-checker uses FakeImportC mode, so
867 // it doesn't invoke the importer for import "C",
868 // nor report an error for the import,
869 // or for any undefined C.f reference.
870 // We must detect this explicitly and correctly
871 // mark the package as IllTyped (by reporting an error).
872 // TODO(adonovan): if these errors are annoying,
873 // we could just set IllTyped quietly.
874 if tc.FakeImportC {
875 outer:
876 for _, f := range lpkg.Syntax {
877 for _, imp := range f.Imports {
878 if imp.Path.Value == `"C"` {
879 err := types.Error{Fset: ld.Fset, Pos: imp.Pos(), Msg: `import "C" ignored`}
880 appendError(err)
881 break outer
882 }
883 }
884 }
885 }
886
887 // Record accumulated errors.
888 illTyped := len(lpkg.Errors) > 0
889 if !illTyped {
890 for _, imp := range lpkg.Imports {
891 if imp.IllTyped {
892 illTyped = true
893 break
894 }
895 }
896 }
897 lpkg.IllTyped = illTyped
898}
899
900// An importFunc is an implementation of the single-method
901// types.Importer interface based on a function value.
902type importerFunc func(path string) (*types.Package, error)
903
904func (f importerFunc) Import(path string) (*types.Package, error) { return f(path) }
905
906// We use a counting semaphore to limit
907// the number of parallel I/O calls per process.
908var ioLimit = make(chan bool, 20)
909
910func (ld *loader) parseFile(filename string) (*ast.File, error) {
911 ld.parseCacheMu.Lock()
912 v, ok := ld.parseCache[filename]
913 if ok {
914 // cache hit
915 ld.parseCacheMu.Unlock()
916 <-v.ready
917 } else {
918 // cache miss
919 v = &parseValue{ready: make(chan struct{})}
920 ld.parseCache[filename] = v
921 ld.parseCacheMu.Unlock()
922
923 var src []byte
924 for f, contents := range ld.Config.Overlay {
925 if sameFile(f, filename) {
926 src = contents
927 }
928 }
929 var err error
930 if src == nil {
931 ioLimit <- true // wait
932 src, err = ioutil.ReadFile(filename)
933 <-ioLimit // signal
934 }
935 if err != nil {
936 v.err = err
937 } else {
938 v.f, v.err = ld.ParseFile(ld.Fset, filename, src)
939 }
940
941 close(v.ready)
942 }
943 return v.f, v.err
944}
945
946// parseFiles reads and parses the Go source files and returns the ASTs
947// of the ones that could be at least partially parsed, along with a
948// list of I/O and parse errors encountered.
949//
950// Because files are scanned in parallel, the token.Pos
951// positions of the resulting ast.Files are not ordered.
952//
953func (ld *loader) parseFiles(filenames []string) ([]*ast.File, []error) {
954 var wg sync.WaitGroup
955 n := len(filenames)
956 parsed := make([]*ast.File, n)
957 errors := make([]error, n)
958 for i, file := range filenames {
959 if ld.Config.Context.Err() != nil {
960 parsed[i] = nil
961 errors[i] = ld.Config.Context.Err()
962 continue
963 }
964 wg.Add(1)
965 go func(i int, filename string) {
966 parsed[i], errors[i] = ld.parseFile(filename)
967 wg.Done()
968 }(i, file)
969 }
970 wg.Wait()
971
972 // Eliminate nils, preserving order.
973 var o int
974 for _, f := range parsed {
975 if f != nil {
976 parsed[o] = f
977 o++
978 }
979 }
980 parsed = parsed[:o]
981
982 o = 0
983 for _, err := range errors {
984 if err != nil {
985 errors[o] = err
986 o++
987 }
988 }
989 errors = errors[:o]
990
991 return parsed, errors
992}
993
994// sameFile returns true if x and y have the same basename and denote
995// the same file.
996//
997func sameFile(x, y string) bool {
998 if x == y {
999 // It could be the case that y doesn't exist.
1000 // For instance, it may be an overlay file that
1001 // hasn't been written to disk. To handle that case
1002 // let x == y through. (We added the exact absolute path
1003 // string to the CompiledGoFiles list, so the unwritten
1004 // overlay case implies x==y.)
1005 return true
1006 }
1007 if strings.EqualFold(filepath.Base(x), filepath.Base(y)) { // (optimisation)
1008 if xi, err := os.Stat(x); err == nil {
1009 if yi, err := os.Stat(y); err == nil {
1010 return os.SameFile(xi, yi)
1011 }
1012 }
1013 }
1014 return false
1015}
1016
1017// loadFromExportData returns type information for the specified
1018// package, loading it from an export data file on the first request.
1019func (ld *loader) loadFromExportData(lpkg *loaderPackage) (*types.Package, error) {
1020 if lpkg.PkgPath == "" {
1021 log.Fatalf("internal error: Package %s has no PkgPath", lpkg)
1022 }
1023
1024 // Because gcexportdata.Read has the potential to create or
1025 // modify the types.Package for each node in the transitive
1026 // closure of dependencies of lpkg, all exportdata operations
1027 // must be sequential. (Finer-grained locking would require
1028 // changes to the gcexportdata API.)
1029 //
1030 // The exportMu lock guards the Package.Pkg field and the
1031 // types.Package it points to, for each Package in the graph.
1032 //
1033 // Not all accesses to Package.Pkg need to be protected by exportMu:
1034 // graph ordering ensures that direct dependencies of source
1035 // packages are fully loaded before the importer reads their Pkg field.
1036 ld.exportMu.Lock()
1037 defer ld.exportMu.Unlock()
1038
1039 if tpkg := lpkg.Types; tpkg != nil && tpkg.Complete() {
1040 return tpkg, nil // cache hit
1041 }
1042
1043 lpkg.IllTyped = true // fail safe
1044
1045 if lpkg.ExportFile == "" {
1046 // Errors while building export data will have been printed to stderr.
1047 return nil, fmt.Errorf("no export data file")
1048 }
1049 f, err := os.Open(lpkg.ExportFile)
1050 if err != nil {
1051 return nil, err
1052 }
1053 defer f.Close()
1054
1055 // Read gc export data.
1056 //
1057 // We don't currently support gccgo export data because all
1058 // underlying workspaces use the gc toolchain. (Even build
1059 // systems that support gccgo don't use it for workspace
1060 // queries.)
1061 r, err := gcexportdata.NewReader(f)
1062 if err != nil {
1063 return nil, fmt.Errorf("reading %s: %v", lpkg.ExportFile, err)
1064 }
1065
1066 // Build the view.
1067 //
1068 // The gcexportdata machinery has no concept of package ID.
1069 // It identifies packages by their PkgPath, which although not
1070 // globally unique is unique within the scope of one invocation
1071 // of the linker, type-checker, or gcexportdata.
1072 //
1073 // So, we must build a PkgPath-keyed view of the global
1074 // (conceptually ID-keyed) cache of packages and pass it to
1075 // gcexportdata. The view must contain every existing
1076 // package that might possibly be mentioned by the
1077 // current package---its transitive closure.
1078 //
1079 // In loadPackage, we unconditionally create a types.Package for
1080 // each dependency so that export data loading does not
1081 // create new ones.
1082 //
1083 // TODO(adonovan): it would be simpler and more efficient
1084 // if the export data machinery invoked a callback to
1085 // get-or-create a package instead of a map.
1086 //
1087 view := make(map[string]*types.Package) // view seen by gcexportdata
1088 seen := make(map[*loaderPackage]bool) // all visited packages
1089 var visit func(pkgs map[string]*Package)
1090 visit = func(pkgs map[string]*Package) {
1091 for _, p := range pkgs {
1092 lpkg := ld.pkgs[p.ID]
1093 if !seen[lpkg] {
1094 seen[lpkg] = true
1095 view[lpkg.PkgPath] = lpkg.Types
1096 visit(lpkg.Imports)
1097 }
1098 }
1099 }
1100 visit(lpkg.Imports)
1101
1102 viewLen := len(view) + 1 // adding the self package
1103 // Parse the export data.
1104 // (May modify incomplete packages in view but not create new ones.)
1105 tpkg, err := gcexportdata.Read(r, ld.Fset, view, lpkg.PkgPath)
1106 if err != nil {
1107 return nil, fmt.Errorf("reading %s: %v", lpkg.ExportFile, err)
1108 }
1109 if viewLen != len(view) {
1110 log.Fatalf("Unexpected package creation during export data loading")
1111 }
1112
1113 lpkg.Types = tpkg
1114 lpkg.IllTyped = false
1115
1116 return tpkg, nil
1117}
1118
1119// impliedLoadMode returns loadMode with its dependencies.
1120func impliedLoadMode(loadMode LoadMode) LoadMode {
1121 if loadMode&NeedTypesInfo != 0 && loadMode&NeedImports == 0 {
1122 // If NeedTypesInfo, go/packages needs to do typechecking itself so it can
1123 // associate type info with the AST. To do so, we need the export data
1124 // for dependencies, which means we need to ask for the direct dependencies.
1125 // NeedImports is used to ask for the direct dependencies.
1126 loadMode |= NeedImports
1127 }
1128
1129 if loadMode&NeedDeps != 0 && loadMode&NeedImports == 0 {
1130 // With NeedDeps we need to load at least direct dependencies.
1131 // NeedImports is used to ask for the direct dependencies.
1132 loadMode |= NeedImports
1133 }
1134
1135 return loadMode
1136}
1137
1138func usesExportData(cfg *Config) bool {
1139 return cfg.Mode&NeedExportsFile != 0 || cfg.Mode&NeedTypes != 0 && cfg.Mode&NeedDeps == 0
1140}
diff --git a/vendor/golang.org/x/tools/go/packages/visit.go b/vendor/golang.org/x/tools/go/packages/visit.go
new file mode 100644
index 0000000..b13cb08
--- /dev/null
+++ b/vendor/golang.org/x/tools/go/packages/visit.go
@@ -0,0 +1,55 @@
1package packages
2
3import (
4 "fmt"
5 "os"
6 "sort"
7)
8
9// Visit visits all the packages in the import graph whose roots are
10// pkgs, calling the optional pre function the first time each package
11// is encountered (preorder), and the optional post function after a
12// package's dependencies have been visited (postorder).
13// The boolean result of pre(pkg) determines whether
14// the imports of package pkg are visited.
15func Visit(pkgs []*Package, pre func(*Package) bool, post func(*Package)) {
16 seen := make(map[*Package]bool)
17 var visit func(*Package)
18 visit = func(pkg *Package) {
19 if !seen[pkg] {
20 seen[pkg] = true
21
22 if pre == nil || pre(pkg) {
23 paths := make([]string, 0, len(pkg.Imports))
24 for path := range pkg.Imports {
25 paths = append(paths, path)
26 }
27 sort.Strings(paths) // Imports is a map, this makes visit stable
28 for _, path := range paths {
29 visit(pkg.Imports[path])
30 }
31 }
32
33 if post != nil {
34 post(pkg)
35 }
36 }
37 }
38 for _, pkg := range pkgs {
39 visit(pkg)
40 }
41}
42
43// PrintErrors prints to os.Stderr the accumulated errors of all
44// packages in the import graph rooted at pkgs, dependencies first.
45// PrintErrors returns the number of errors printed.
46func PrintErrors(pkgs []*Package) int {
47 var n int
48 Visit(pkgs, nil, func(pkg *Package) {
49 for _, err := range pkg.Errors {
50 fmt.Fprintln(os.Stderr, err)
51 n++
52 }
53 })
54 return n
55}
diff --git a/vendor/golang.org/x/tools/go/types/objectpath/objectpath.go b/vendor/golang.org/x/tools/go/types/objectpath/objectpath.go
new file mode 100644
index 0000000..882e3b3
--- /dev/null
+++ b/vendor/golang.org/x/tools/go/types/objectpath/objectpath.go
@@ -0,0 +1,523 @@
1// Copyright 2018 The Go Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style
3// license that can be found in the LICENSE file.
4
5// Package objectpath defines a naming scheme for types.Objects
6// (that is, named entities in Go programs) relative to their enclosing
7// package.
8//
9// Type-checker objects are canonical, so they are usually identified by
10// their address in memory (a pointer), but a pointer has meaning only
11// within one address space. By contrast, objectpath names allow the
12// identity of an object to be sent from one program to another,
13// establishing a correspondence between types.Object variables that are
14// distinct but logically equivalent.
15//
16// A single object may have multiple paths. In this example,
17// type A struct{ X int }
18// type B A
19// the field X has two paths due to its membership of both A and B.
20// The For(obj) function always returns one of these paths, arbitrarily
21// but consistently.
22package objectpath
23
24import (
25 "fmt"
26 "strconv"
27 "strings"
28
29 "go/types"
30)
31
32// A Path is an opaque name that identifies a types.Object
33// relative to its package. Conceptually, the name consists of a
34// sequence of destructuring operations applied to the package scope
35// to obtain the original object.
36// The name does not include the package itself.
37type Path string
38
39// Encoding
40//
41// An object path is a textual and (with training) human-readable encoding
42// of a sequence of destructuring operators, starting from a types.Package.
43// The sequences represent a path through the package/object/type graph.
44// We classify these operators by their type:
45//
46// PO package->object Package.Scope.Lookup
47// OT object->type Object.Type
48// TT type->type Type.{Elem,Key,Params,Results,Underlying} [EKPRU]
49// TO type->object Type.{At,Field,Method,Obj} [AFMO]
50//
51// All valid paths start with a package and end at an object
52// and thus may be defined by the regular language:
53//
54// objectpath = PO (OT TT* TO)*
55//
56// The concrete encoding follows directly:
57// - The only PO operator is Package.Scope.Lookup, which requires an identifier.
58// - The only OT operator is Object.Type,
59// which we encode as '.' because dot cannot appear in an identifier.
60// - The TT operators are encoded as [EKPRU].
61// - The OT operators are encoded as [AFMO];
62// three of these (At,Field,Method) require an integer operand,
63// which is encoded as a string of decimal digits.
64// These indices are stable across different representations
65// of the same package, even source and export data.
66//
67// In the example below,
68//
69// package p
70//
71// type T interface {
72// f() (a string, b struct{ X int })
73// }
74//
75// field X has the path "T.UM0.RA1.F0",
76// representing the following sequence of operations:
77//
78// p.Lookup("T") T
79// .Type().Underlying().Method(0). f
80// .Type().Results().At(1) b
81// .Type().Field(0) X
82//
83// The encoding is not maximally compact---every R or P is
84// followed by an A, for example---but this simplifies the
85// encoder and decoder.
86//
87const (
88 // object->type operators
89 opType = '.' // .Type() (Object)
90
91 // type->type operators
92 opElem = 'E' // .Elem() (Pointer, Slice, Array, Chan, Map)
93 opKey = 'K' // .Key() (Map)
94 opParams = 'P' // .Params() (Signature)
95 opResults = 'R' // .Results() (Signature)
96 opUnderlying = 'U' // .Underlying() (Named)
97
98 // type->object operators
99 opAt = 'A' // .At(i) (Tuple)
100 opField = 'F' // .Field(i) (Struct)
101 opMethod = 'M' // .Method(i) (Named or Interface; not Struct: "promoted" names are ignored)
102 opObj = 'O' // .Obj() (Named)
103)
104
105// The For function returns the path to an object relative to its package,
106// or an error if the object is not accessible from the package's Scope.
107//
108// The For function guarantees to return a path only for the following objects:
109// - package-level types
110// - exported package-level non-types
111// - methods
112// - parameter and result variables
113// - struct fields
114// These objects are sufficient to define the API of their package.
115// The objects described by a package's export data are drawn from this set.
116//
117// For does not return a path for predeclared names, imported package
118// names, local names, and unexported package-level names (except
119// types).
120//
121// Example: given this definition,
122//
123// package p
124//
125// type T interface {
126// f() (a string, b struct{ X int })
127// }
128//
129// For(X) would return a path that denotes the following sequence of operations:
130//
131// p.Scope().Lookup("T") (TypeName T)
132// .Type().Underlying().Method(0). (method Func f)
133// .Type().Results().At(1) (field Var b)
134// .Type().Field(0) (field Var X)
135//
136// where p is the package (*types.Package) to which X belongs.
137func For(obj types.Object) (Path, error) {
138 pkg := obj.Pkg()
139
140 // This table lists the cases of interest.
141 //
142 // Object Action
143 // ------ ------
144 // nil reject
145 // builtin reject
146 // pkgname reject
147 // label reject
148 // var
149 // package-level accept
150 // func param/result accept
151 // local reject
152 // struct field accept
153 // const
154 // package-level accept
155 // local reject
156 // func
157 // package-level accept
158 // init functions reject
159 // concrete method accept
160 // interface method accept
161 // type
162 // package-level accept
163 // local reject
164 //
165 // The only accessible package-level objects are members of pkg itself.
166 //
167 // The cases are handled in four steps:
168 //
169 // 1. reject nil and builtin
170 // 2. accept package-level objects
171 // 3. reject obviously invalid objects
172 // 4. search the API for the path to the param/result/field/method.
173
174 // 1. reference to nil or builtin?
175 if pkg == nil {
176 return "", fmt.Errorf("predeclared %s has no path", obj)
177 }
178 scope := pkg.Scope()
179
180 // 2. package-level object?
181 if scope.Lookup(obj.Name()) == obj {
182 // Only exported objects (and non-exported types) have a path.
183 // Non-exported types may be referenced by other objects.
184 if _, ok := obj.(*types.TypeName); !ok && !obj.Exported() {
185 return "", fmt.Errorf("no path for non-exported %v", obj)
186 }
187 return Path(obj.Name()), nil
188 }
189
190 // 3. Not a package-level object.
191 // Reject obviously non-viable cases.
192 switch obj := obj.(type) {
193 case *types.Const, // Only package-level constants have a path.
194 *types.TypeName, // Only package-level types have a path.
195 *types.Label, // Labels are function-local.
196 *types.PkgName: // PkgNames are file-local.
197 return "", fmt.Errorf("no path for %v", obj)
198
199 case *types.Var:
200 // Could be:
201 // - a field (obj.IsField())
202 // - a func parameter or result
203 // - a local var.
204 // Sadly there is no way to distinguish
205 // a param/result from a local
206 // so we must proceed to the find.
207
208 case *types.Func:
209 // A func, if not package-level, must be a method.
210 if recv := obj.Type().(*types.Signature).Recv(); recv == nil {
211 return "", fmt.Errorf("func is not a method: %v", obj)
212 }
213 // TODO(adonovan): opt: if the method is concrete,
214 // do a specialized version of the rest of this function so
215 // that it's O(1) not O(|scope|). Basically 'find' is needed
216 // only for struct fields and interface methods.
217
218 default:
219 panic(obj)
220 }
221
222 // 4. Search the API for the path to the var (field/param/result) or method.
223
224 // First inspect package-level named types.
225 // In the presence of path aliases, these give
226 // the best paths because non-types may
227 // refer to types, but not the reverse.
228 empty := make([]byte, 0, 48) // initial space
229 for _, name := range scope.Names() {
230 o := scope.Lookup(name)
231 tname, ok := o.(*types.TypeName)
232 if !ok {
233 continue // handle non-types in second pass
234 }
235
236 path := append(empty, name...)
237 path = append(path, opType)
238
239 T := o.Type()
240
241 if tname.IsAlias() {
242 // type alias
243 if r := find(obj, T, path); r != nil {
244 return Path(r), nil
245 }
246 } else {
247 // defined (named) type
248 if r := find(obj, T.Underlying(), append(path, opUnderlying)); r != nil {
249 return Path(r), nil
250 }
251 }
252 }
253
254 // Then inspect everything else:
255 // non-types, and declared methods of defined types.
256 for _, name := range scope.Names() {
257 o := scope.Lookup(name)
258 path := append(empty, name...)
259 if _, ok := o.(*types.TypeName); !ok {
260 if o.Exported() {
261 // exported non-type (const, var, func)
262 if r := find(obj, o.Type(), append(path, opType)); r != nil {
263 return Path(r), nil
264 }
265 }
266 continue
267 }
268
269 // Inspect declared methods of defined types.
270 if T, ok := o.Type().(*types.Named); ok {
271 path = append(path, opType)
272 for i := 0; i < T.NumMethods(); i++ {
273 m := T.Method(i)
274 path2 := appendOpArg(path, opMethod, i)
275 if m == obj {
276 return Path(path2), nil // found declared method
277 }
278 if r := find(obj, m.Type(), append(path2, opType)); r != nil {
279 return Path(r), nil
280 }
281 }
282 }
283 }
284
285 return "", fmt.Errorf("can't find path for %v in %s", obj, pkg.Path())
286}
287
288func appendOpArg(path []byte, op byte, arg int) []byte {
289 path = append(path, op)
290 path = strconv.AppendInt(path, int64(arg), 10)
291 return path
292}
293
294// find finds obj within type T, returning the path to it, or nil if not found.
295func find(obj types.Object, T types.Type, path []byte) []byte {
296 switch T := T.(type) {
297 case *types.Basic, *types.Named:
298 // Named types belonging to pkg were handled already,
299 // so T must belong to another package. No path.
300 return nil
301 case *types.Pointer:
302 return find(obj, T.Elem(), append(path, opElem))
303 case *types.Slice:
304 return find(obj, T.Elem(), append(path, opElem))
305 case *types.Array:
306 return find(obj, T.Elem(), append(path, opElem))
307 case *types.Chan:
308 return find(obj, T.Elem(), append(path, opElem))
309 case *types.Map:
310 if r := find(obj, T.Key(), append(path, opKey)); r != nil {
311 return r
312 }
313 return find(obj, T.Elem(), append(path, opElem))
314 case *types.Signature:
315 if r := find(obj, T.Params(), append(path, opParams)); r != nil {
316 return r
317 }
318 return find(obj, T.Results(), append(path, opResults))
319 case *types.Struct:
320 for i := 0; i < T.NumFields(); i++ {
321 f := T.Field(i)
322 path2 := appendOpArg(path, opField, i)
323 if f == obj {
324 return path2 // found field var
325 }
326 if r := find(obj, f.Type(), append(path2, opType)); r != nil {
327 return r
328 }
329 }
330 return nil
331 case *types.Tuple:
332 for i := 0; i < T.Len(); i++ {
333 v := T.At(i)
334 path2 := appendOpArg(path, opAt, i)
335 if v == obj {
336 return path2 // found param/result var
337 }
338 if r := find(obj, v.Type(), append(path2, opType)); r != nil {
339 return r
340 }
341 }
342 return nil
343 case *types.Interface:
344 for i := 0; i < T.NumMethods(); i++ {
345 m := T.Method(i)
346 path2 := appendOpArg(path, opMethod, i)
347 if m == obj {
348 return path2 // found interface method
349 }
350 if r := find(obj, m.Type(), append(path2, opType)); r != nil {
351 return r
352 }
353 }
354 return nil
355 }
356 panic(T)
357}
358
359// Object returns the object denoted by path p within the package pkg.
360func Object(pkg *types.Package, p Path) (types.Object, error) {
361 if p == "" {
362 return nil, fmt.Errorf("empty path")
363 }
364
365 pathstr := string(p)
366 var pkgobj, suffix string
367 if dot := strings.IndexByte(pathstr, opType); dot < 0 {
368 pkgobj = pathstr
369 } else {
370 pkgobj = pathstr[:dot]
371 suffix = pathstr[dot:] // suffix starts with "."
372 }
373
374 obj := pkg.Scope().Lookup(pkgobj)
375 if obj == nil {
376 return nil, fmt.Errorf("package %s does not contain %q", pkg.Path(), pkgobj)
377 }
378
379 // abstraction of *types.{Pointer,Slice,Array,Chan,Map}
380 type hasElem interface {
381 Elem() types.Type
382 }
383 // abstraction of *types.{Interface,Named}
384 type hasMethods interface {
385 Method(int) *types.Func
386 NumMethods() int
387 }
388
389 // The loop state is the pair (t, obj),
390 // exactly one of which is non-nil, initially obj.
391 // All suffixes start with '.' (the only object->type operation),
392 // followed by optional type->type operations,
393 // then a type->object operation.
394 // The cycle then repeats.
395 var t types.Type
396 for suffix != "" {
397 code := suffix[0]
398 suffix = suffix[1:]
399
400 // Codes [AFM] have an integer operand.
401 var index int
402 switch code {
403 case opAt, opField, opMethod:
404 rest := strings.TrimLeft(suffix, "0123456789")
405 numerals := suffix[:len(suffix)-len(rest)]
406 suffix = rest
407 i, err := strconv.Atoi(numerals)
408 if err != nil {
409 return nil, fmt.Errorf("invalid path: bad numeric operand %q for code %q", numerals, code)
410 }
411 index = int(i)
412 case opObj:
413 // no operand
414 default:
415 // The suffix must end with a type->object operation.
416 if suffix == "" {
417 return nil, fmt.Errorf("invalid path: ends with %q, want [AFMO]", code)
418 }
419 }
420
421 if code == opType {
422 if t != nil {
423 return nil, fmt.Errorf("invalid path: unexpected %q in type context", opType)
424 }
425 t = obj.Type()
426 obj = nil
427 continue
428 }
429
430 if t == nil {
431 return nil, fmt.Errorf("invalid path: code %q in object context", code)
432 }
433
434 // Inv: t != nil, obj == nil
435
436 switch code {
437 case opElem:
438 hasElem, ok := t.(hasElem) // Pointer, Slice, Array, Chan, Map
439 if !ok {
440 return nil, fmt.Errorf("cannot apply %q to %s (got %T, want pointer, slice, array, chan or map)", code, t, t)
441 }
442 t = hasElem.Elem()
443
444 case opKey:
445 mapType, ok := t.(*types.Map)
446 if !ok {
447 return nil, fmt.Errorf("cannot apply %q to %s (got %T, want map)", code, t, t)
448 }
449 t = mapType.Key()
450
451 case opParams:
452 sig, ok := t.(*types.Signature)
453 if !ok {
454 return nil, fmt.Errorf("cannot apply %q to %s (got %T, want signature)", code, t, t)
455 }
456 t = sig.Params()
457
458 case opResults:
459 sig, ok := t.(*types.Signature)
460 if !ok {
461 return nil, fmt.Errorf("cannot apply %q to %s (got %T, want signature)", code, t, t)
462 }
463 t = sig.Results()
464
465 case opUnderlying:
466 named, ok := t.(*types.Named)
467 if !ok {
468 return nil, fmt.Errorf("cannot apply %q to %s (got %s, want named)", code, t, t)
469 }
470 t = named.Underlying()
471
472 case opAt:
473 tuple, ok := t.(*types.Tuple)
474 if !ok {
475 return nil, fmt.Errorf("cannot apply %q to %s (got %s, want tuple)", code, t, t)
476 }
477 if n := tuple.Len(); index >= n {
478 return nil, fmt.Errorf("tuple index %d out of range [0-%d)", index, n)
479 }
480 obj = tuple.At(index)
481 t = nil
482
483 case opField:
484 structType, ok := t.(*types.Struct)
485 if !ok {
486 return nil, fmt.Errorf("cannot apply %q to %s (got %T, want struct)", code, t, t)
487 }
488 if n := structType.NumFields(); index >= n {
489 return nil, fmt.Errorf("field index %d out of range [0-%d)", index, n)
490 }
491 obj = structType.Field(index)
492 t = nil
493
494 case opMethod:
495 hasMethods, ok := t.(hasMethods) // Interface or Named
496 if !ok {
497 return nil, fmt.Errorf("cannot apply %q to %s (got %s, want interface or named)", code, t, t)
498 }
499 if n := hasMethods.NumMethods(); index >= n {
500 return nil, fmt.Errorf("method index %d out of range [0-%d)", index, n)
501 }
502 obj = hasMethods.Method(index)
503 t = nil
504
505 case opObj:
506 named, ok := t.(*types.Named)
507 if !ok {
508 return nil, fmt.Errorf("cannot apply %q to %s (got %s, want named)", code, t, t)
509 }
510 obj = named.Obj()
511 t = nil
512
513 default:
514 return nil, fmt.Errorf("invalid path: unknown code %q", code)
515 }
516 }
517
518 if obj.Pkg() != pkg {
519 return nil, fmt.Errorf("path denotes %s, which belongs to a different package", obj)
520 }
521
522 return obj, nil // success
523}
diff --git a/vendor/golang.org/x/tools/go/types/typeutil/callee.go b/vendor/golang.org/x/tools/go/types/typeutil/callee.go
new file mode 100644
index 0000000..38f596d
--- /dev/null
+++ b/vendor/golang.org/x/tools/go/types/typeutil/callee.go
@@ -0,0 +1,46 @@
1// Copyright 2018 The Go Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style
3// license that can be found in the LICENSE file.
4
5package typeutil
6
7import (
8 "go/ast"
9 "go/types"
10
11 "golang.org/x/tools/go/ast/astutil"
12)
13
14// Callee returns the named target of a function call, if any:
15// a function, method, builtin, or variable.
16func Callee(info *types.Info, call *ast.CallExpr) types.Object {
17 var obj types.Object
18 switch fun := astutil.Unparen(call.Fun).(type) {
19 case *ast.Ident:
20 obj = info.Uses[fun] // type, var, builtin, or declared func
21 case *ast.SelectorExpr:
22 if sel, ok := info.Selections[fun]; ok {
23 obj = sel.Obj() // method or field
24 } else {
25 obj = info.Uses[fun.Sel] // qualified identifier?
26 }
27 }
28 if _, ok := obj.(*types.TypeName); ok {
29 return nil // T(x) is a conversion, not a call
30 }
31 return obj
32}
33
34// StaticCallee returns the target (function or method) of a static
35// function call, if any. It returns nil for calls to builtins.
36func StaticCallee(info *types.Info, call *ast.CallExpr) *types.Func {
37 if f, ok := Callee(info, call).(*types.Func); ok && !interfaceMethod(f) {
38 return f
39 }
40 return nil
41}
42
43func interfaceMethod(f *types.Func) bool {
44 recv := f.Type().(*types.Signature).Recv()
45 return recv != nil && types.IsInterface(recv.Type())
46}
diff --git a/vendor/golang.org/x/tools/go/types/typeutil/imports.go b/vendor/golang.org/x/tools/go/types/typeutil/imports.go
new file mode 100644
index 0000000..9c441db
--- /dev/null
+++ b/vendor/golang.org/x/tools/go/types/typeutil/imports.go
@@ -0,0 +1,31 @@
1// Copyright 2014 The Go Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style
3// license that can be found in the LICENSE file.
4
5package typeutil
6
7import "go/types"
8
9// Dependencies returns all dependencies of the specified packages.
10//
11// Dependent packages appear in topological order: if package P imports
12// package Q, Q appears earlier than P in the result.
13// The algorithm follows import statements in the order they
14// appear in the source code, so the result is a total order.
15//
16func Dependencies(pkgs ...*types.Package) []*types.Package {
17 var result []*types.Package
18 seen := make(map[*types.Package]bool)
19 var visit func(pkgs []*types.Package)
20 visit = func(pkgs []*types.Package) {
21 for _, p := range pkgs {
22 if !seen[p] {
23 seen[p] = true
24 visit(p.Imports())
25 result = append(result, p)
26 }
27 }
28 }
29 visit(pkgs)
30 return result
31}
diff --git a/vendor/golang.org/x/tools/go/types/typeutil/map.go b/vendor/golang.org/x/tools/go/types/typeutil/map.go
new file mode 100644
index 0000000..c7f7545
--- /dev/null
+++ b/vendor/golang.org/x/tools/go/types/typeutil/map.go
@@ -0,0 +1,313 @@
1// Copyright 2014 The Go Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style
3// license that can be found in the LICENSE file.
4
5// Package typeutil defines various utilities for types, such as Map,
6// a mapping from types.Type to interface{} values.
7package typeutil // import "golang.org/x/tools/go/types/typeutil"
8
9import (
10 "bytes"
11 "fmt"
12 "go/types"
13 "reflect"
14)
15
16// Map is a hash-table-based mapping from types (types.Type) to
17// arbitrary interface{} values. The concrete types that implement
18// the Type interface are pointers. Since they are not canonicalized,
19// == cannot be used to check for equivalence, and thus we cannot
20// simply use a Go map.
21//
22// Just as with map[K]V, a nil *Map is a valid empty map.
23//
24// Not thread-safe.
25//
26type Map struct {
27 hasher Hasher // shared by many Maps
28 table map[uint32][]entry // maps hash to bucket; entry.key==nil means unused
29 length int // number of map entries
30}
31
32// entry is an entry (key/value association) in a hash bucket.
33type entry struct {
34 key types.Type
35 value interface{}
36}
37
38// SetHasher sets the hasher used by Map.
39//
40// All Hashers are functionally equivalent but contain internal state
41// used to cache the results of hashing previously seen types.
42//
43// A single Hasher created by MakeHasher() may be shared among many
44// Maps. This is recommended if the instances have many keys in
45// common, as it will amortize the cost of hash computation.
46//
47// A Hasher may grow without bound as new types are seen. Even when a
48// type is deleted from the map, the Hasher never shrinks, since other
49// types in the map may reference the deleted type indirectly.
50//
51// Hashers are not thread-safe, and read-only operations such as
52// Map.Lookup require updates to the hasher, so a full Mutex lock (not a
53// read-lock) is require around all Map operations if a shared
54// hasher is accessed from multiple threads.
55//
56// If SetHasher is not called, the Map will create a private hasher at
57// the first call to Insert.
58//
59func (m *Map) SetHasher(hasher Hasher) {
60 m.hasher = hasher
61}
62
63// Delete removes the entry with the given key, if any.
64// It returns true if the entry was found.
65//
66func (m *Map) Delete(key types.Type) bool {
67 if m != nil && m.table != nil {
68 hash := m.hasher.Hash(key)
69 bucket := m.table[hash]
70 for i, e := range bucket {
71 if e.key != nil && types.Identical(key, e.key) {
72 // We can't compact the bucket as it
73 // would disturb iterators.
74 bucket[i] = entry{}
75 m.length--
76 return true
77 }
78 }
79 }
80 return false
81}
82
83// At returns the map entry for the given key.
84// The result is nil if the entry is not present.
85//
86func (m *Map) At(key types.Type) interface{} {
87 if m != nil && m.table != nil {
88 for _, e := range m.table[m.hasher.Hash(key)] {
89 if e.key != nil && types.Identical(key, e.key) {
90 return e.value
91 }
92 }
93 }
94 return nil
95}
96
97// Set sets the map entry for key to val,
98// and returns the previous entry, if any.
99func (m *Map) Set(key types.Type, value interface{}) (prev interface{}) {
100 if m.table != nil {
101 hash := m.hasher.Hash(key)
102 bucket := m.table[hash]
103 var hole *entry
104 for i, e := range bucket {
105 if e.key == nil {
106 hole = &bucket[i]
107 } else if types.Identical(key, e.key) {
108 prev = e.value
109 bucket[i].value = value
110 return
111 }
112 }
113
114 if hole != nil {
115 *hole = entry{key, value} // overwrite deleted entry
116 } else {
117 m.table[hash] = append(bucket, entry{key, value})
118 }
119 } else {
120 if m.hasher.memo == nil {
121 m.hasher = MakeHasher()
122 }
123 hash := m.hasher.Hash(key)
124 m.table = map[uint32][]entry{hash: {entry{key, value}}}
125 }
126
127 m.length++
128 return
129}
130
131// Len returns the number of map entries.
132func (m *Map) Len() int {
133 if m != nil {
134 return m.length
135 }
136 return 0
137}
138
139// Iterate calls function f on each entry in the map in unspecified order.
140//
141// If f should mutate the map, Iterate provides the same guarantees as
142// Go maps: if f deletes a map entry that Iterate has not yet reached,
143// f will not be invoked for it, but if f inserts a map entry that
144// Iterate has not yet reached, whether or not f will be invoked for
145// it is unspecified.
146//
147func (m *Map) Iterate(f func(key types.Type, value interface{})) {
148 if m != nil {
149 for _, bucket := range m.table {
150 for _, e := range bucket {
151 if e.key != nil {
152 f(e.key, e.value)
153 }
154 }
155 }
156 }
157}
158
159// Keys returns a new slice containing the set of map keys.
160// The order is unspecified.
161func (m *Map) Keys() []types.Type {
162 keys := make([]types.Type, 0, m.Len())
163 m.Iterate(func(key types.Type, _ interface{}) {
164 keys = append(keys, key)
165 })
166 return keys
167}
168
169func (m *Map) toString(values bool) string {
170 if m == nil {
171 return "{}"
172 }
173 var buf bytes.Buffer
174 fmt.Fprint(&buf, "{")
175 sep := ""
176 m.Iterate(func(key types.Type, value interface{}) {
177 fmt.Fprint(&buf, sep)
178 sep = ", "
179 fmt.Fprint(&buf, key)
180 if values {
181 fmt.Fprintf(&buf, ": %q", value)
182 }
183 })
184 fmt.Fprint(&buf, "}")
185 return buf.String()
186}
187
188// String returns a string representation of the map's entries.
189// Values are printed using fmt.Sprintf("%v", v).
190// Order is unspecified.
191//
192func (m *Map) String() string {
193 return m.toString(true)
194}
195
196// KeysString returns a string representation of the map's key set.
197// Order is unspecified.
198//
199func (m *Map) KeysString() string {
200 return m.toString(false)
201}
202
203////////////////////////////////////////////////////////////////////////
204// Hasher
205
206// A Hasher maps each type to its hash value.
207// For efficiency, a hasher uses memoization; thus its memory
208// footprint grows monotonically over time.
209// Hashers are not thread-safe.
210// Hashers have reference semantics.
211// Call MakeHasher to create a Hasher.
212type Hasher struct {
213 memo map[types.Type]uint32
214}
215
216// MakeHasher returns a new Hasher instance.
217func MakeHasher() Hasher {
218 return Hasher{make(map[types.Type]uint32)}
219}
220
221// Hash computes a hash value for the given type t such that
222// Identical(t, t') => Hash(t) == Hash(t').
223func (h Hasher) Hash(t types.Type) uint32 {
224 hash, ok := h.memo[t]
225 if !ok {
226 hash = h.hashFor(t)
227 h.memo[t] = hash
228 }
229 return hash
230}
231
232// hashString computes the Fowler–Noll–Vo hash of s.
233func hashString(s string) uint32 {
234 var h uint32
235 for i := 0; i < len(s); i++ {
236 h ^= uint32(s[i])
237 h *= 16777619
238 }
239 return h
240}
241
242// hashFor computes the hash of t.
243func (h Hasher) hashFor(t types.Type) uint32 {
244 // See Identical for rationale.
245 switch t := t.(type) {
246 case *types.Basic:
247 return uint32(t.Kind())
248
249 case *types.Array:
250 return 9043 + 2*uint32(t.Len()) + 3*h.Hash(t.Elem())
251
252 case *types.Slice:
253 return 9049 + 2*h.Hash(t.Elem())
254
255 case *types.Struct:
256 var hash uint32 = 9059
257 for i, n := 0, t.NumFields(); i < n; i++ {
258 f := t.Field(i)
259 if f.Anonymous() {
260 hash += 8861
261 }
262 hash += hashString(t.Tag(i))
263 hash += hashString(f.Name()) // (ignore f.Pkg)
264 hash += h.Hash(f.Type())
265 }
266 return hash
267
268 case *types.Pointer:
269 return 9067 + 2*h.Hash(t.Elem())
270
271 case *types.Signature:
272 var hash uint32 = 9091
273 if t.Variadic() {
274 hash *= 8863
275 }
276 return hash + 3*h.hashTuple(t.Params()) + 5*h.hashTuple(t.Results())
277
278 case *types.Interface:
279 var hash uint32 = 9103
280 for i, n := 0, t.NumMethods(); i < n; i++ {
281 // See go/types.identicalMethods for rationale.
282 // Method order is not significant.
283 // Ignore m.Pkg().
284 m := t.Method(i)
285 hash += 3*hashString(m.Name()) + 5*h.Hash(m.Type())
286 }
287 return hash
288
289 case *types.Map:
290 return 9109 + 2*h.Hash(t.Key()) + 3*h.Hash(t.Elem())
291
292 case *types.Chan:
293 return 9127 + 2*uint32(t.Dir()) + 3*h.Hash(t.Elem())
294
295 case *types.Named:
296 // Not safe with a copying GC; objects may move.
297 return uint32(reflect.ValueOf(t.Obj()).Pointer())
298
299 case *types.Tuple:
300 return h.hashTuple(t)
301 }
302 panic(t)
303}
304
305func (h Hasher) hashTuple(tuple *types.Tuple) uint32 {
306 // See go/types.identicalTypes for rationale.
307 n := tuple.Len()
308 var hash uint32 = 9137 + 2*uint32(n)
309 for i := 0; i < n; i++ {
310 hash += 3 * h.Hash(tuple.At(i).Type())
311 }
312 return hash
313}
diff --git a/vendor/golang.org/x/tools/go/types/typeutil/methodsetcache.go b/vendor/golang.org/x/tools/go/types/typeutil/methodsetcache.go
new file mode 100644
index 0000000..3208461
--- /dev/null
+++ b/vendor/golang.org/x/tools/go/types/typeutil/methodsetcache.go
@@ -0,0 +1,72 @@
1// Copyright 2014 The Go Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style
3// license that can be found in the LICENSE file.
4
5// This file implements a cache of method sets.
6
7package typeutil
8
9import (
10 "go/types"
11 "sync"
12)
13
14// A MethodSetCache records the method set of each type T for which
15// MethodSet(T) is called so that repeat queries are fast.
16// The zero value is a ready-to-use cache instance.
17type MethodSetCache struct {
18 mu sync.Mutex
19 named map[*types.Named]struct{ value, pointer *types.MethodSet } // method sets for named N and *N
20 others map[types.Type]*types.MethodSet // all other types
21}
22
23// MethodSet returns the method set of type T. It is thread-safe.
24//
25// If cache is nil, this function is equivalent to types.NewMethodSet(T).
26// Utility functions can thus expose an optional *MethodSetCache
27// parameter to clients that care about performance.
28//
29func (cache *MethodSetCache) MethodSet(T types.Type) *types.MethodSet {
30 if cache == nil {
31 return types.NewMethodSet(T)
32 }
33 cache.mu.Lock()
34 defer cache.mu.Unlock()
35
36 switch T := T.(type) {
37 case *types.Named:
38 return cache.lookupNamed(T).value
39
40 case *types.Pointer:
41 if N, ok := T.Elem().(*types.Named); ok {
42 return cache.lookupNamed(N).pointer
43 }
44 }
45
46 // all other types
47 // (The map uses pointer equivalence, not type identity.)
48 mset := cache.others[T]
49 if mset == nil {
50 mset = types.NewMethodSet(T)
51 if cache.others == nil {
52 cache.others = make(map[types.Type]*types.MethodSet)
53 }
54 cache.others[T] = mset
55 }
56 return mset
57}
58
59func (cache *MethodSetCache) lookupNamed(named *types.Named) struct{ value, pointer *types.MethodSet } {
60 if cache.named == nil {
61 cache.named = make(map[*types.Named]struct{ value, pointer *types.MethodSet })
62 }
63 // Avoid recomputing mset(*T) for each distinct Pointer
64 // instance whose underlying type is a named type.
65 msets, ok := cache.named[named]
66 if !ok {
67 msets.value = types.NewMethodSet(named)
68 msets.pointer = types.NewMethodSet(types.NewPointer(named))
69 cache.named[named] = msets
70 }
71 return msets
72}
diff --git a/vendor/golang.org/x/tools/go/types/typeutil/ui.go b/vendor/golang.org/x/tools/go/types/typeutil/ui.go
new file mode 100644
index 0000000..9849c24
--- /dev/null
+++ b/vendor/golang.org/x/tools/go/types/typeutil/ui.go
@@ -0,0 +1,52 @@
1// Copyright 2014 The Go Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style
3// license that can be found in the LICENSE file.
4
5package typeutil
6
7// This file defines utilities for user interfaces that display types.
8
9import "go/types"
10
11// IntuitiveMethodSet returns the intuitive method set of a type T,
12// which is the set of methods you can call on an addressable value of
13// that type.
14//
15// The result always contains MethodSet(T), and is exactly MethodSet(T)
16// for interface types and for pointer-to-concrete types.
17// For all other concrete types T, the result additionally
18// contains each method belonging to *T if there is no identically
19// named method on T itself.
20//
21// This corresponds to user intuition about method sets;
22// this function is intended only for user interfaces.
23//
24// The order of the result is as for types.MethodSet(T).
25//
26func IntuitiveMethodSet(T types.Type, msets *MethodSetCache) []*types.Selection {
27 isPointerToConcrete := func(T types.Type) bool {
28 ptr, ok := T.(*types.Pointer)
29 return ok && !types.IsInterface(ptr.Elem())
30 }
31
32 var result []*types.Selection
33 mset := msets.MethodSet(T)
34 if types.IsInterface(T) || isPointerToConcrete(T) {
35 for i, n := 0, mset.Len(); i < n; i++ {
36 result = append(result, mset.At(i))
37 }
38 } else {
39 // T is some other concrete type.
40 // Report methods of T and *T, preferring those of T.
41 pmset := msets.MethodSet(types.NewPointer(T))
42 for i, n := 0, pmset.Len(); i < n; i++ {
43 meth := pmset.At(i)
44 if m := mset.Lookup(meth.Obj().Pkg(), meth.Obj().Name()); m != nil {
45 meth = m
46 }
47 result = append(result, meth)
48 }
49
50 }
51 return result
52}
diff --git a/vendor/golang.org/x/tools/internal/packagesinternal/packages.go b/vendor/golang.org/x/tools/internal/packagesinternal/packages.go
new file mode 100644
index 0000000..0c0dbb6
--- /dev/null
+++ b/vendor/golang.org/x/tools/internal/packagesinternal/packages.go
@@ -0,0 +1,4 @@
1// Package packagesinternal exposes internal-only fields from go/packages.
2package packagesinternal
3
4var GetForTest = func(p interface{}) string { return "" }
diff --git a/vendor/gopkg.in/yaml.v2/.travis.yml b/vendor/gopkg.in/yaml.v2/.travis.yml
index 9f55693..055480b 100644
--- a/vendor/gopkg.in/yaml.v2/.travis.yml
+++ b/vendor/gopkg.in/yaml.v2/.travis.yml
@@ -1,12 +1,16 @@
1language: go 1language: go
2 2
3go: 3go:
4 - 1.4 4 - "1.4.x"
5 - 1.5 5 - "1.5.x"
6 - 1.6 6 - "1.6.x"
7 - 1.7 7 - "1.7.x"
8 - 1.8 8 - "1.8.x"
9 - 1.9 9 - "1.9.x"
10 - tip 10 - "1.10.x"
11 - "1.11.x"
12 - "1.12.x"
13 - "1.13.x"
14 - "tip"
11 15
12go_import_path: gopkg.in/yaml.v2 16go_import_path: gopkg.in/yaml.v2
diff --git a/vendor/gopkg.in/yaml.v2/decode.go b/vendor/gopkg.in/yaml.v2/decode.go
index e4e56e2..129bc2a 100644
--- a/vendor/gopkg.in/yaml.v2/decode.go
+++ b/vendor/gopkg.in/yaml.v2/decode.go
@@ -229,6 +229,10 @@ type decoder struct {
229 mapType reflect.Type 229 mapType reflect.Type
230 terrors []string 230 terrors []string
231 strict bool 231 strict bool
232
233 decodeCount int
234 aliasCount int
235 aliasDepth int
232} 236}
233 237
234var ( 238var (
@@ -314,7 +318,43 @@ func (d *decoder) prepare(n *node, out reflect.Value) (newout reflect.Value, unm
314 return out, false, false 318 return out, false, false
315} 319}
316 320
321const (
322 // 400,000 decode operations is ~500kb of dense object declarations, or
323 // ~5kb of dense object declarations with 10000% alias expansion
324 alias_ratio_range_low = 400000
325
326 // 4,000,000 decode operations is ~5MB of dense object declarations, or
327 // ~4.5MB of dense object declarations with 10% alias expansion
328 alias_ratio_range_high = 4000000
329
330 // alias_ratio_range is the range over which we scale allowed alias ratios
331 alias_ratio_range = float64(alias_ratio_range_high - alias_ratio_range_low)
332)
333
334func allowedAliasRatio(decodeCount int) float64 {
335 switch {
336 case decodeCount <= alias_ratio_range_low:
337 // allow 99% to come from alias expansion for small-to-medium documents
338 return 0.99
339 case decodeCount >= alias_ratio_range_high:
340 // allow 10% to come from alias expansion for very large documents
341 return 0.10
342 default:
343 // scale smoothly from 99% down to 10% over the range.
344 // this maps to 396,000 - 400,000 allowed alias-driven decodes over the range.
345 // 400,000 decode operations is ~100MB of allocations in worst-case scenarios (single-item maps).
346 return 0.99 - 0.89*(float64(decodeCount-alias_ratio_range_low)/alias_ratio_range)
347 }
348}
349
317func (d *decoder) unmarshal(n *node, out reflect.Value) (good bool) { 350func (d *decoder) unmarshal(n *node, out reflect.Value) (good bool) {
351 d.decodeCount++
352 if d.aliasDepth > 0 {
353 d.aliasCount++
354 }
355 if d.aliasCount > 100 && d.decodeCount > 1000 && float64(d.aliasCount)/float64(d.decodeCount) > allowedAliasRatio(d.decodeCount) {
356 failf("document contains excessive aliasing")
357 }
318 switch n.kind { 358 switch n.kind {
319 case documentNode: 359 case documentNode:
320 return d.document(n, out) 360 return d.document(n, out)
@@ -353,7 +393,9 @@ func (d *decoder) alias(n *node, out reflect.Value) (good bool) {
353 failf("anchor '%s' value contains itself", n.value) 393 failf("anchor '%s' value contains itself", n.value)
354 } 394 }
355 d.aliases[n] = true 395 d.aliases[n] = true
396 d.aliasDepth++
356 good = d.unmarshal(n.alias, out) 397 good = d.unmarshal(n.alias, out)
398 d.aliasDepth--
357 delete(d.aliases, n) 399 delete(d.aliases, n)
358 return good 400 return good
359} 401}
@@ -746,8 +788,7 @@ func (d *decoder) merge(n *node, out reflect.Value) {
746 case mappingNode: 788 case mappingNode:
747 d.unmarshal(n, out) 789 d.unmarshal(n, out)
748 case aliasNode: 790 case aliasNode:
749 an, ok := d.doc.anchors[n.value] 791 if n.alias != nil && n.alias.kind != mappingNode {
750 if ok && an.kind != mappingNode {
751 failWantMap() 792 failWantMap()
752 } 793 }
753 d.unmarshal(n, out) 794 d.unmarshal(n, out)
@@ -756,8 +797,7 @@ func (d *decoder) merge(n *node, out reflect.Value) {
756 for i := len(n.children) - 1; i >= 0; i-- { 797 for i := len(n.children) - 1; i >= 0; i-- {
757 ni := n.children[i] 798 ni := n.children[i]
758 if ni.kind == aliasNode { 799 if ni.kind == aliasNode {
759 an, ok := d.doc.anchors[ni.value] 800 if ni.alias != nil && ni.alias.kind != mappingNode {
760 if ok && an.kind != mappingNode {
761 failWantMap() 801 failWantMap()
762 } 802 }
763 } else if ni.kind != mappingNode { 803 } else if ni.kind != mappingNode {
diff --git a/vendor/gopkg.in/yaml.v2/resolve.go b/vendor/gopkg.in/yaml.v2/resolve.go
index 6c151db..4120e0c 100644
--- a/vendor/gopkg.in/yaml.v2/resolve.go
+++ b/vendor/gopkg.in/yaml.v2/resolve.go
@@ -81,7 +81,7 @@ func resolvableTag(tag string) bool {
81 return false 81 return false
82} 82}
83 83
84var yamlStyleFloat = regexp.MustCompile(`^[-+]?[0-9]*\.?[0-9]+([eE][-+][0-9]+)?$`) 84var yamlStyleFloat = regexp.MustCompile(`^[-+]?(\.[0-9]+|[0-9]+(\.[0-9]*)?)([eE][-+]?[0-9]+)?$`)
85 85
86func resolve(tag string, in string) (rtag string, out interface{}) { 86func resolve(tag string, in string) (rtag string, out interface{}) {
87 if !resolvableTag(tag) { 87 if !resolvableTag(tag) {
diff --git a/vendor/gopkg.in/yaml.v2/scannerc.go b/vendor/gopkg.in/yaml.v2/scannerc.go
index 077fd1d..0b9bb60 100644
--- a/vendor/gopkg.in/yaml.v2/scannerc.go
+++ b/vendor/gopkg.in/yaml.v2/scannerc.go
@@ -626,30 +626,17 @@ func trace(args ...interface{}) func() {
626func yaml_parser_fetch_more_tokens(parser *yaml_parser_t) bool { 626func yaml_parser_fetch_more_tokens(parser *yaml_parser_t) bool {
627 // While we need more tokens to fetch, do it. 627 // While we need more tokens to fetch, do it.
628 for { 628 for {
629 // Check if we really need to fetch more tokens. 629 if parser.tokens_head != len(parser.tokens) {
630 need_more_tokens := false 630 // If queue is non-empty, check if any potential simple key may
631 631 // occupy the head position.
632 if parser.tokens_head == len(parser.tokens) { 632 head_tok_idx, ok := parser.simple_keys_by_tok[parser.tokens_parsed]
633 // Queue is empty. 633 if !ok {
634 need_more_tokens = true 634 break
635 } else { 635 } else if valid, ok := yaml_simple_key_is_valid(parser, &parser.simple_keys[head_tok_idx]); !ok {
636 // Check if any potential simple key may occupy the head position.
637 if !yaml_parser_stale_simple_keys(parser) {
638 return false 636 return false
637 } else if !valid {
638 break
639 } 639 }
640
641 for i := range parser.simple_keys {
642 simple_key := &parser.simple_keys[i]
643 if simple_key.possible && simple_key.token_number == parser.tokens_parsed {
644 need_more_tokens = true
645 break
646 }
647 }
648 }
649
650 // We are finished.
651 if !need_more_tokens {
652 break
653 } 640 }
654 // Fetch the next token. 641 // Fetch the next token.
655 if !yaml_parser_fetch_next_token(parser) { 642 if !yaml_parser_fetch_next_token(parser) {
@@ -678,11 +665,6 @@ func yaml_parser_fetch_next_token(parser *yaml_parser_t) bool {
678 return false 665 return false
679 } 666 }
680 667
681 // Remove obsolete potential simple keys.
682 if !yaml_parser_stale_simple_keys(parser) {
683 return false
684 }
685
686 // Check the indentation level against the current column. 668 // Check the indentation level against the current column.
687 if !yaml_parser_unroll_indent(parser, parser.mark.column) { 669 if !yaml_parser_unroll_indent(parser, parser.mark.column) {
688 return false 670 return false
@@ -837,29 +819,30 @@ func yaml_parser_fetch_next_token(parser *yaml_parser_t) bool {
837 "found character that cannot start any token") 819 "found character that cannot start any token")
838} 820}
839 821
840// Check the list of potential simple keys and remove the positions that 822func yaml_simple_key_is_valid(parser *yaml_parser_t, simple_key *yaml_simple_key_t) (valid, ok bool) {
841// cannot contain simple keys anymore. 823 if !simple_key.possible {
842func yaml_parser_stale_simple_keys(parser *yaml_parser_t) bool { 824 return false, true
843 // Check for a potential simple key for each flow level. 825 }
844 for i := range parser.simple_keys { 826
845 simple_key := &parser.simple_keys[i] 827 // The 1.2 specification says:
846 828 //
847 // The specification requires that a simple key 829 // "If the ? indicator is omitted, parsing needs to see past the
848 // 830 // implicit key to recognize it as such. To limit the amount of
849 // - is limited to a single line, 831 // lookahead required, the “:” indicator must appear at most 1024
850 // - is shorter than 1024 characters. 832 // Unicode characters beyond the start of the key. In addition, the key
851 if simple_key.possible && (simple_key.mark.line < parser.mark.line || simple_key.mark.index+1024 < parser.mark.index) { 833 // is restricted to a single line."
852 834 //
853 // Check if the potential simple key to be removed is required. 835 if simple_key.mark.line < parser.mark.line || simple_key.mark.index+1024 < parser.mark.index {
854 if simple_key.required { 836 // Check if the potential simple key to be removed is required.
855 return yaml_parser_set_scanner_error(parser, 837 if simple_key.required {
856 "while scanning a simple key", simple_key.mark, 838 return false, yaml_parser_set_scanner_error(parser,
857 "could not find expected ':'") 839 "while scanning a simple key", simple_key.mark,
858 } 840 "could not find expected ':'")
859 simple_key.possible = false
860 } 841 }
842 simple_key.possible = false
843 return false, true
861 } 844 }
862 return true 845 return true, true
863} 846}
864 847
865// Check if a simple key may start at the current position and add it if 848// Check if a simple key may start at the current position and add it if
@@ -879,13 +862,14 @@ func yaml_parser_save_simple_key(parser *yaml_parser_t) bool {
879 possible: true, 862 possible: true,
880 required: required, 863 required: required,
881 token_number: parser.tokens_parsed + (len(parser.tokens) - parser.tokens_head), 864 token_number: parser.tokens_parsed + (len(parser.tokens) - parser.tokens_head),
865 mark: parser.mark,
882 } 866 }
883 simple_key.mark = parser.mark
884 867
885 if !yaml_parser_remove_simple_key(parser) { 868 if !yaml_parser_remove_simple_key(parser) {
886 return false 869 return false
887 } 870 }
888 parser.simple_keys[len(parser.simple_keys)-1] = simple_key 871 parser.simple_keys[len(parser.simple_keys)-1] = simple_key
872 parser.simple_keys_by_tok[simple_key.token_number] = len(parser.simple_keys) - 1
889 } 873 }
890 return true 874 return true
891} 875}
@@ -900,19 +884,33 @@ func yaml_parser_remove_simple_key(parser *yaml_parser_t) bool {
900 "while scanning a simple key", parser.simple_keys[i].mark, 884 "while scanning a simple key", parser.simple_keys[i].mark,
901 "could not find expected ':'") 885 "could not find expected ':'")
902 } 886 }
887 // Remove the key from the stack.
888 parser.simple_keys[i].possible = false
889 delete(parser.simple_keys_by_tok, parser.simple_keys[i].token_number)
903 } 890 }
904 // Remove the key from the stack.
905 parser.simple_keys[i].possible = false
906 return true 891 return true
907} 892}
908 893
894// max_flow_level limits the flow_level
895const max_flow_level = 10000
896
909// Increase the flow level and resize the simple key list if needed. 897// Increase the flow level and resize the simple key list if needed.
910func yaml_parser_increase_flow_level(parser *yaml_parser_t) bool { 898func yaml_parser_increase_flow_level(parser *yaml_parser_t) bool {
911 // Reset the simple key on the next level. 899 // Reset the simple key on the next level.
912 parser.simple_keys = append(parser.simple_keys, yaml_simple_key_t{}) 900 parser.simple_keys = append(parser.simple_keys, yaml_simple_key_t{
901 possible: false,
902 required: false,
903 token_number: parser.tokens_parsed + (len(parser.tokens) - parser.tokens_head),
904 mark: parser.mark,
905 })
913 906
914 // Increase the flow level. 907 // Increase the flow level.
915 parser.flow_level++ 908 parser.flow_level++
909 if parser.flow_level > max_flow_level {
910 return yaml_parser_set_scanner_error(parser,
911 "while increasing flow level", parser.simple_keys[len(parser.simple_keys)-1].mark,
912 fmt.Sprintf("exceeded max depth of %d", max_flow_level))
913 }
916 return true 914 return true
917} 915}
918 916
@@ -920,11 +918,16 @@ func yaml_parser_increase_flow_level(parser *yaml_parser_t) bool {
920func yaml_parser_decrease_flow_level(parser *yaml_parser_t) bool { 918func yaml_parser_decrease_flow_level(parser *yaml_parser_t) bool {
921 if parser.flow_level > 0 { 919 if parser.flow_level > 0 {
922 parser.flow_level-- 920 parser.flow_level--
923 parser.simple_keys = parser.simple_keys[:len(parser.simple_keys)-1] 921 last := len(parser.simple_keys) - 1
922 delete(parser.simple_keys_by_tok, parser.simple_keys[last].token_number)
923 parser.simple_keys = parser.simple_keys[:last]
924 } 924 }
925 return true 925 return true
926} 926}
927 927
928// max_indents limits the indents stack size
929const max_indents = 10000
930
928// Push the current indentation level to the stack and set the new level 931// Push the current indentation level to the stack and set the new level
929// the current column is greater than the indentation level. In this case, 932// the current column is greater than the indentation level. In this case,
930// append or insert the specified token into the token queue. 933// append or insert the specified token into the token queue.
@@ -939,6 +942,11 @@ func yaml_parser_roll_indent(parser *yaml_parser_t, column, number int, typ yaml
939 // indentation level. 942 // indentation level.
940 parser.indents = append(parser.indents, parser.indent) 943 parser.indents = append(parser.indents, parser.indent)
941 parser.indent = column 944 parser.indent = column
945 if len(parser.indents) > max_indents {
946 return yaml_parser_set_scanner_error(parser,
947 "while increasing indent level", parser.simple_keys[len(parser.simple_keys)-1].mark,
948 fmt.Sprintf("exceeded max depth of %d", max_indents))
949 }
942 950
943 // Create a token and insert it into the queue. 951 // Create a token and insert it into the queue.
944 token := yaml_token_t{ 952 token := yaml_token_t{
@@ -989,6 +997,8 @@ func yaml_parser_fetch_stream_start(parser *yaml_parser_t) bool {
989 // Initialize the simple key stack. 997 // Initialize the simple key stack.
990 parser.simple_keys = append(parser.simple_keys, yaml_simple_key_t{}) 998 parser.simple_keys = append(parser.simple_keys, yaml_simple_key_t{})
991 999
1000 parser.simple_keys_by_tok = make(map[int]int)
1001
992 // A simple key is allowed at the beginning of the stream. 1002 // A simple key is allowed at the beginning of the stream.
993 parser.simple_key_allowed = true 1003 parser.simple_key_allowed = true
994 1004
@@ -1270,7 +1280,11 @@ func yaml_parser_fetch_value(parser *yaml_parser_t) bool {
1270 simple_key := &parser.simple_keys[len(parser.simple_keys)-1] 1280 simple_key := &parser.simple_keys[len(parser.simple_keys)-1]
1271 1281
1272 // Have we found a simple key? 1282 // Have we found a simple key?
1273 if simple_key.possible { 1283 if valid, ok := yaml_simple_key_is_valid(parser, simple_key); !ok {
1284 return false
1285
1286 } else if valid {
1287
1274 // Create the KEY token and insert it into the queue. 1288 // Create the KEY token and insert it into the queue.
1275 token := yaml_token_t{ 1289 token := yaml_token_t{
1276 typ: yaml_KEY_TOKEN, 1290 typ: yaml_KEY_TOKEN,
@@ -1288,6 +1302,7 @@ func yaml_parser_fetch_value(parser *yaml_parser_t) bool {
1288 1302
1289 // Remove the simple key. 1303 // Remove the simple key.
1290 simple_key.possible = false 1304 simple_key.possible = false
1305 delete(parser.simple_keys_by_tok, simple_key.token_number)
1291 1306
1292 // A simple key cannot follow another simple key. 1307 // A simple key cannot follow another simple key.
1293 parser.simple_key_allowed = false 1308 parser.simple_key_allowed = false
diff --git a/vendor/gopkg.in/yaml.v2/yaml.go b/vendor/gopkg.in/yaml.v2/yaml.go
index de85aa4..89650e2 100644
--- a/vendor/gopkg.in/yaml.v2/yaml.go
+++ b/vendor/gopkg.in/yaml.v2/yaml.go
@@ -89,7 +89,7 @@ func UnmarshalStrict(in []byte, out interface{}) (err error) {
89 return unmarshal(in, out, true) 89 return unmarshal(in, out, true)
90} 90}
91 91
92// A Decorder reads and decodes YAML values from an input stream. 92// A Decoder reads and decodes YAML values from an input stream.
93type Decoder struct { 93type Decoder struct {
94 strict bool 94 strict bool
95 parser *parser 95 parser *parser
diff --git a/vendor/gopkg.in/yaml.v2/yamlh.go b/vendor/gopkg.in/yaml.v2/yamlh.go
index e25cee5..f6a9c8e 100644
--- a/vendor/gopkg.in/yaml.v2/yamlh.go
+++ b/vendor/gopkg.in/yaml.v2/yamlh.go
@@ -579,6 +579,7 @@ type yaml_parser_t struct {
579 579
580 simple_key_allowed bool // May a simple key occur at the current position? 580 simple_key_allowed bool // May a simple key occur at the current position?
581 simple_keys []yaml_simple_key_t // The stack of simple keys. 581 simple_keys []yaml_simple_key_t // The stack of simple keys.
582 simple_keys_by_tok map[int]int // possible simple_key indexes indexed by token_number
582 583
583 // Parser stuff 584 // Parser stuff
584 585
diff --git a/vendor/honnef.co/go/tools/LICENSE b/vendor/honnef.co/go/tools/LICENSE
new file mode 100644
index 0000000..dfd0314
--- /dev/null
+++ b/vendor/honnef.co/go/tools/LICENSE
@@ -0,0 +1,20 @@
1Copyright (c) 2016 Dominik Honnef
2
3Permission is hereby granted, free of charge, to any person obtaining
4a copy of this software and associated documentation files (the
5"Software"), to deal in the Software without restriction, including
6without limitation the rights to use, copy, modify, merge, publish,
7distribute, sublicense, and/or sell copies of the Software, and to
8permit persons to whom the Software is furnished to do so, subject to
9the following conditions:
10
11The above copyright notice and this permission notice shall be
12included in all copies or substantial portions of the Software.
13
14THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/vendor/honnef.co/go/tools/LICENSE-THIRD-PARTY b/vendor/honnef.co/go/tools/LICENSE-THIRD-PARTY
new file mode 100644
index 0000000..7c241b7
--- /dev/null
+++ b/vendor/honnef.co/go/tools/LICENSE-THIRD-PARTY
@@ -0,0 +1,226 @@
1Staticcheck and its related tools make use of third party projects,
2either by reusing their code, or by statically linking them into
3resulting binaries. These projects are:
4
5* The Go Programming Language - https://golang.org/
6
7 Copyright (c) 2009 The Go Authors. All rights reserved.
8
9 Redistribution and use in source and binary forms, with or without
10 modification, are permitted provided that the following conditions are
11 met:
12
13 * Redistributions of source code must retain the above copyright
14 notice, this list of conditions and the following disclaimer.
15 * Redistributions in binary form must reproduce the above
16 copyright notice, this list of conditions and the following disclaimer
17 in the documentation and/or other materials provided with the
18 distribution.
19 * Neither the name of Google Inc. nor the names of its
20 contributors may be used to endorse or promote products derived from
21 this software without specific prior written permission.
22
23 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
24 "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
25 LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
26 A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
27 OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
28 SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
29 LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
30 DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
31 THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
32 (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
33 OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
34
35
36* github.com/BurntSushi/toml - https://github.com/BurntSushi/toml
37
38 The MIT License (MIT)
39
40 Copyright (c) 2013 TOML authors
41
42 Permission is hereby granted, free of charge, to any person obtaining a copy
43 of this software and associated documentation files (the "Software"), to deal
44 in the Software without restriction, including without limitation the rights
45 to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
46 copies of the Software, and to permit persons to whom the Software is
47 furnished to do so, subject to the following conditions:
48
49 The above copyright notice and this permission notice shall be included in
50 all copies or substantial portions of the Software.
51
52 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
53 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
54 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
55 AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
56 LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
57 OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
58 THE SOFTWARE.
59
60
61* github.com/google/renameio - https://github.com/google/renameio
62
63 Copyright 2018 Google Inc.
64
65 Licensed under the Apache License, Version 2.0 (the "License");
66 you may not use this file except in compliance with the License.
67 You may obtain a copy of the License at
68
69 http://www.apache.org/licenses/LICENSE-2.0
70
71 Unless required by applicable law or agreed to in writing, software
72 distributed under the License is distributed on an "AS IS" BASIS,
73 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
74 See the License for the specific language governing permissions and
75 limitations under the License.
76
77
78* github.com/kisielk/gotool – https://github.com/kisielk/gotool
79
80 Copyright (c) 2013 Kamil Kisiel <kamil@kamilkisiel.net>
81
82 Permission is hereby granted, free of charge, to any person obtaining
83 a copy of this software and associated documentation files (the
84 "Software"), to deal in the Software without restriction, including
85 without limitation the rights to use, copy, modify, merge, publish,
86 distribute, sublicense, and/or sell copies of the Software, and to
87 permit persons to whom the Software is furnished to do so, subject to
88 the following conditions:
89
90 The above copyright notice and this permission notice shall be
91 included in all copies or substantial portions of the Software.
92
93 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
94 EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
95 MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
96 NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
97 LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
98 OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
99 WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
100
101 All the files in this distribution are covered under either the MIT
102 license (see the file LICENSE) except some files mentioned below.
103
104 match.go, match_test.go:
105
106 Copyright (c) 2009 The Go Authors. All rights reserved.
107
108 Redistribution and use in source and binary forms, with or without
109 modification, are permitted provided that the following conditions are
110 met:
111
112 * Redistributions of source code must retain the above copyright
113 notice, this list of conditions and the following disclaimer.
114 * Redistributions in binary form must reproduce the above
115 copyright notice, this list of conditions and the following disclaimer
116 in the documentation and/or other materials provided with the
117 distribution.
118 * Neither the name of Google Inc. nor the names of its
119 contributors may be used to endorse or promote products derived from
120 this software without specific prior written permission.
121
122 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
123 "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
124 LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
125 A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
126 OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
127 SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
128 LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
129 DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
130 THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
131 (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
132 OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
133
134
135* github.com/rogpeppe/go-internal - https://github.com/rogpeppe/go-internal
136
137 Copyright (c) 2018 The Go Authors. All rights reserved.
138
139 Redistribution and use in source and binary forms, with or without
140 modification, are permitted provided that the following conditions are
141 met:
142
143 * Redistributions of source code must retain the above copyright
144 notice, this list of conditions and the following disclaimer.
145 * Redistributions in binary form must reproduce the above
146 copyright notice, this list of conditions and the following disclaimer
147 in the documentation and/or other materials provided with the
148 distribution.
149 * Neither the name of Google Inc. nor the names of its
150 contributors may be used to endorse or promote products derived from
151 this software without specific prior written permission.
152
153 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
154 "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
155 LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
156 A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
157 OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
158 SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
159 LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
160 DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
161 THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
162 (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
163 OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
164
165
166* golang.org/x/mod/module - https://github.com/golang/mod
167
168 Copyright (c) 2009 The Go Authors. All rights reserved.
169
170 Redistribution and use in source and binary forms, with or without
171 modification, are permitted provided that the following conditions are
172 met:
173
174 * Redistributions of source code must retain the above copyright
175 notice, this list of conditions and the following disclaimer.
176 * Redistributions in binary form must reproduce the above
177 copyright notice, this list of conditions and the following disclaimer
178 in the documentation and/or other materials provided with the
179 distribution.
180 * Neither the name of Google Inc. nor the names of its
181 contributors may be used to endorse or promote products derived from
182 this software without specific prior written permission.
183
184 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
185 "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
186 LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
187 A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
188 OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
189 SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
190 LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
191 DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
192 THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
193 (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
194 OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
195
196
197* golang.org/x/tools/go/analysis - https://github.com/golang/tools
198
199 Copyright (c) 2009 The Go Authors. All rights reserved.
200
201 Redistribution and use in source and binary forms, with or without
202 modification, are permitted provided that the following conditions are
203 met:
204
205 * Redistributions of source code must retain the above copyright
206 notice, this list of conditions and the following disclaimer.
207 * Redistributions in binary form must reproduce the above
208 copyright notice, this list of conditions and the following disclaimer
209 in the documentation and/or other materials provided with the
210 distribution.
211 * Neither the name of Google Inc. nor the names of its
212 contributors may be used to endorse or promote products derived from
213 this software without specific prior written permission.
214
215 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
216 "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
217 LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
218 A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
219 OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
220 SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
221 LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
222 DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
223 THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
224 (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
225 OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
226
diff --git a/vendor/honnef.co/go/tools/arg/arg.go b/vendor/honnef.co/go/tools/arg/arg.go
new file mode 100644
index 0000000..1e7f30d
--- /dev/null
+++ b/vendor/honnef.co/go/tools/arg/arg.go
@@ -0,0 +1,48 @@
1package arg
2
3var args = map[string]int{
4 "(*encoding/json.Decoder).Decode.v": 0,
5 "(*encoding/json.Encoder).Encode.v": 0,
6 "(*encoding/xml.Decoder).Decode.v": 0,
7 "(*encoding/xml.Encoder).Encode.v": 0,
8 "(*sync.Pool).Put.x": 0,
9 "(*text/template.Template).Parse.text": 0,
10 "(io.Seeker).Seek.offset": 0,
11 "(time.Time).Sub.u": 0,
12 "append.elems": 1,
13 "append.slice": 0,
14 "bytes.Equal.a": 0,
15 "bytes.Equal.b": 1,
16 "encoding/binary.Write.data": 2,
17 "errors.New.text": 0,
18 "fmt.Fprintf.format": 1,
19 "fmt.Printf.format": 0,
20 "fmt.Sprintf.a[0]": 1,
21 "fmt.Sprintf.format": 0,
22 "json.Marshal.v": 0,
23 "json.Unmarshal.v": 1,
24 "len.v": 0,
25 "make.size[0]": 1,
26 "make.size[1]": 2,
27 "make.t": 0,
28 "net/url.Parse.rawurl": 0,
29 "os.OpenFile.flag": 1,
30 "os/exec.Command.name": 0,
31 "os/signal.Notify.c": 0,
32 "regexp.Compile.expr": 0,
33 "runtime.SetFinalizer.finalizer": 1,
34 "runtime.SetFinalizer.obj": 0,
35 "sort.Sort.data": 0,
36 "time.Parse.layout": 0,
37 "time.Sleep.d": 0,
38 "xml.Marshal.v": 0,
39 "xml.Unmarshal.v": 1,
40}
41
42func Arg(name string) int {
43 n, ok := args[name]
44 if !ok {
45 panic("unknown argument " + name)
46 }
47 return n
48}
diff --git a/vendor/honnef.co/go/tools/cmd/staticcheck/README.md b/vendor/honnef.co/go/tools/cmd/staticcheck/README.md
new file mode 100644
index 0000000..4d14577
--- /dev/null
+++ b/vendor/honnef.co/go/tools/cmd/staticcheck/README.md
@@ -0,0 +1,15 @@
1# staticcheck
2
3_staticcheck_ offers extensive analysis of Go code, covering a myriad
4of categories. It will detect bugs, suggest code simplifications,
5point out dead code, and more.
6
7## Installation
8
9See [the main README](https://github.com/dominikh/go-tools#installation) for installation instructions.
10
11## Documentation
12
13Detailed documentation can be found on
14[staticcheck.io](https://staticcheck.io/docs/).
15
diff --git a/vendor/honnef.co/go/tools/cmd/staticcheck/staticcheck.go b/vendor/honnef.co/go/tools/cmd/staticcheck/staticcheck.go
new file mode 100644
index 0000000..4f504dc
--- /dev/null
+++ b/vendor/honnef.co/go/tools/cmd/staticcheck/staticcheck.go
@@ -0,0 +1,44 @@
1// staticcheck analyses Go code and makes it better.
2package main // import "honnef.co/go/tools/cmd/staticcheck"
3
4import (
5 "log"
6 "os"
7
8 "golang.org/x/tools/go/analysis"
9 "honnef.co/go/tools/lint"
10 "honnef.co/go/tools/lint/lintutil"
11 "honnef.co/go/tools/simple"
12 "honnef.co/go/tools/staticcheck"
13 "honnef.co/go/tools/stylecheck"
14 "honnef.co/go/tools/unused"
15)
16
17func main() {
18 fs := lintutil.FlagSet("staticcheck")
19 wholeProgram := fs.Bool("unused.whole-program", false, "Run unused in whole program mode")
20 debug := fs.String("debug.unused-graph", "", "Write unused's object graph to `file`")
21 fs.Parse(os.Args[1:])
22
23 var cs []*analysis.Analyzer
24 for _, v := range simple.Analyzers {
25 cs = append(cs, v)
26 }
27 for _, v := range staticcheck.Analyzers {
28 cs = append(cs, v)
29 }
30 for _, v := range stylecheck.Analyzers {
31 cs = append(cs, v)
32 }
33
34 u := unused.NewChecker(*wholeProgram)
35 if *debug != "" {
36 f, err := os.OpenFile(*debug, os.O_WRONLY|os.O_CREATE|os.O_TRUNC, 0666)
37 if err != nil {
38 log.Fatal(err)
39 }
40 u.Debug = f
41 }
42 cums := []lint.CumulativeChecker{u}
43 lintutil.ProcessFlagSet(cs, cums, fs)
44}
diff --git a/vendor/honnef.co/go/tools/config/config.go b/vendor/honnef.co/go/tools/config/config.go
new file mode 100644
index 0000000..c22093a
--- /dev/null
+++ b/vendor/honnef.co/go/tools/config/config.go
@@ -0,0 +1,224 @@
1package config
2
3import (
4 "bytes"
5 "fmt"
6 "os"
7 "path/filepath"
8 "reflect"
9 "strings"
10
11 "github.com/BurntSushi/toml"
12 "golang.org/x/tools/go/analysis"
13)
14
15var Analyzer = &analysis.Analyzer{
16 Name: "config",
17 Doc: "loads configuration for the current package tree",
18 Run: func(pass *analysis.Pass) (interface{}, error) {
19 if len(pass.Files) == 0 {
20 cfg := DefaultConfig
21 return &cfg, nil
22 }
23 cache, err := os.UserCacheDir()
24 if err != nil {
25 cache = ""
26 }
27 var path string
28 for _, f := range pass.Files {
29 p := pass.Fset.PositionFor(f.Pos(), true).Filename
30 // FIXME(dh): using strings.HasPrefix isn't technically
31 // correct, but it should be good enough for now.
32 if cache != "" && strings.HasPrefix(p, cache) {
33 // File in the build cache of the standard Go build system
34 continue
35 }
36 path = p
37 break
38 }
39
40 if path == "" {
41 // The package only consists of generated files.
42 cfg := DefaultConfig
43 return &cfg, nil
44 }
45
46 dir := filepath.Dir(path)
47 cfg, err := Load(dir)
48 if err != nil {
49 return nil, fmt.Errorf("error loading staticcheck.conf: %s", err)
50 }
51 return &cfg, nil
52 },
53 RunDespiteErrors: true,
54 ResultType: reflect.TypeOf((*Config)(nil)),
55}
56
57func For(pass *analysis.Pass) *Config {
58 return pass.ResultOf[Analyzer].(*Config)
59}
60
61func mergeLists(a, b []string) []string {
62 out := make([]string, 0, len(a)+len(b))
63 for _, el := range b {
64 if el == "inherit" {
65 out = append(out, a...)
66 } else {
67 out = append(out, el)
68 }
69 }
70
71 return out
72}
73
74func normalizeList(list []string) []string {
75 if len(list) > 1 {
76 nlist := make([]string, 0, len(list))
77 nlist = append(nlist, list[0])
78 for i, el := range list[1:] {
79 if el != list[i] {
80 nlist = append(nlist, el)
81 }
82 }
83 list = nlist
84 }
85
86 for _, el := range list {
87 if el == "inherit" {
88 // This should never happen, because the default config
89 // should not use "inherit"
90 panic(`unresolved "inherit"`)
91 }
92 }
93
94 return list
95}
96
97func (cfg Config) Merge(ocfg Config) Config {
98 if ocfg.Checks != nil {
99 cfg.Checks = mergeLists(cfg.Checks, ocfg.Checks)
100 }
101 if ocfg.Initialisms != nil {
102 cfg.Initialisms = mergeLists(cfg.Initialisms, ocfg.Initialisms)
103 }
104 if ocfg.DotImportWhitelist != nil {
105 cfg.DotImportWhitelist = mergeLists(cfg.DotImportWhitelist, ocfg.DotImportWhitelist)
106 }
107 if ocfg.HTTPStatusCodeWhitelist != nil {
108 cfg.HTTPStatusCodeWhitelist = mergeLists(cfg.HTTPStatusCodeWhitelist, ocfg.HTTPStatusCodeWhitelist)
109 }
110 return cfg
111}
112
113type Config struct {
114 // TODO(dh): this implementation makes it impossible for external
115 // clients to add their own checkers with configuration. At the
116 // moment, we don't really care about that; we don't encourage
117 // that people use this package. In the future, we may. The
118 // obvious solution would be using map[string]interface{}, but
119 // that's obviously subpar.
120
121 Checks []string `toml:"checks"`
122 Initialisms []string `toml:"initialisms"`
123 DotImportWhitelist []string `toml:"dot_import_whitelist"`
124 HTTPStatusCodeWhitelist []string `toml:"http_status_code_whitelist"`
125}
126
127func (c Config) String() string {
128 buf := &bytes.Buffer{}
129
130 fmt.Fprintf(buf, "Checks: %#v\n", c.Checks)
131 fmt.Fprintf(buf, "Initialisms: %#v\n", c.Initialisms)
132 fmt.Fprintf(buf, "DotImportWhitelist: %#v\n", c.DotImportWhitelist)
133 fmt.Fprintf(buf, "HTTPStatusCodeWhitelist: %#v", c.HTTPStatusCodeWhitelist)
134
135 return buf.String()
136}
137
138var DefaultConfig = Config{
139 Checks: []string{"all", "-ST1000", "-ST1003", "-ST1016"},
140 Initialisms: []string{
141 "ACL", "API", "ASCII", "CPU", "CSS", "DNS",
142 "EOF", "GUID", "HTML", "HTTP", "HTTPS", "ID",
143 "IP", "JSON", "QPS", "RAM", "RPC", "SLA",
144 "SMTP", "SQL", "SSH", "TCP", "TLS", "TTL",
145 "UDP", "UI", "GID", "UID", "UUID", "URI",
146 "URL", "UTF8", "VM", "XML", "XMPP", "XSRF",
147 "XSS", "SIP", "RTP",
148 },
149 DotImportWhitelist: []string{},
150 HTTPStatusCodeWhitelist: []string{"200", "400", "404", "500"},
151}
152
153const configName = "staticcheck.conf"
154
155func parseConfigs(dir string) ([]Config, error) {
156 var out []Config
157
158 // TODO(dh): consider stopping at the GOPATH/module boundary
159 for dir != "" {
160 f, err := os.Open(filepath.Join(dir, configName))
161 if os.IsNotExist(err) {
162 ndir := filepath.Dir(dir)
163 if ndir == dir {
164 break
165 }
166 dir = ndir
167 continue
168 }
169 if err != nil {
170 return nil, err
171 }
172 var cfg Config
173 _, err = toml.DecodeReader(f, &cfg)
174 f.Close()
175 if err != nil {
176 return nil, err
177 }
178 out = append(out, cfg)
179 ndir := filepath.Dir(dir)
180 if ndir == dir {
181 break
182 }
183 dir = ndir
184 }
185 out = append(out, DefaultConfig)
186 if len(out) < 2 {
187 return out, nil
188 }
189 for i := 0; i < len(out)/2; i++ {
190 out[i], out[len(out)-1-i] = out[len(out)-1-i], out[i]
191 }
192 return out, nil
193}
194
195func mergeConfigs(confs []Config) Config {
196 if len(confs) == 0 {
197 // This shouldn't happen because we always have at least a
198 // default config.
199 panic("trying to merge zero configs")
200 }
201 if len(confs) == 1 {
202 return confs[0]
203 }
204 conf := confs[0]
205 for _, oconf := range confs[1:] {
206 conf = conf.Merge(oconf)
207 }
208 return conf
209}
210
211func Load(dir string) (Config, error) {
212 confs, err := parseConfigs(dir)
213 if err != nil {
214 return Config{}, err
215 }
216 conf := mergeConfigs(confs)
217
218 conf.Checks = normalizeList(conf.Checks)
219 conf.Initialisms = normalizeList(conf.Initialisms)
220 conf.DotImportWhitelist = normalizeList(conf.DotImportWhitelist)
221 conf.HTTPStatusCodeWhitelist = normalizeList(conf.HTTPStatusCodeWhitelist)
222
223 return conf, nil
224}
diff --git a/vendor/honnef.co/go/tools/config/example.conf b/vendor/honnef.co/go/tools/config/example.conf
new file mode 100644
index 0000000..a715a24
--- /dev/null
+++ b/vendor/honnef.co/go/tools/config/example.conf
@@ -0,0 +1,10 @@
1checks = ["all", "-ST1003", "-ST1014"]
2initialisms = ["ACL", "API", "ASCII", "CPU", "CSS", "DNS",
3 "EOF", "GUID", "HTML", "HTTP", "HTTPS", "ID",
4 "IP", "JSON", "QPS", "RAM", "RPC", "SLA",
5 "SMTP", "SQL", "SSH", "TCP", "TLS", "TTL",
6 "UDP", "UI", "GID", "UID", "UUID", "URI",
7 "URL", "UTF8", "VM", "XML", "XMPP", "XSRF",
8 "XSS", "SIP", "RTP"]
9dot_import_whitelist = []
10http_status_code_whitelist = ["200", "400", "404", "500"]
diff --git a/vendor/honnef.co/go/tools/deprecated/stdlib.go b/vendor/honnef.co/go/tools/deprecated/stdlib.go
new file mode 100644
index 0000000..5d8ce18
--- /dev/null
+++ b/vendor/honnef.co/go/tools/deprecated/stdlib.go
@@ -0,0 +1,112 @@
1package deprecated
2
3type Deprecation struct {
4 DeprecatedSince int
5 AlternativeAvailableSince int
6}
7
8var Stdlib = map[string]Deprecation{
9 "image/jpeg.Reader": {4, 0},
10 // FIXME(dh): AllowBinary isn't being detected as deprecated
11 // because the comment has a newline right after "Deprecated:"
12 "go/build.AllowBinary": {7, 7},
13 "(archive/zip.FileHeader).CompressedSize": {1, 1},
14 "(archive/zip.FileHeader).UncompressedSize": {1, 1},
15 "(archive/zip.FileHeader).ModifiedTime": {10, 10},
16 "(archive/zip.FileHeader).ModifiedDate": {10, 10},
17 "(*archive/zip.FileHeader).ModTime": {10, 10},
18 "(*archive/zip.FileHeader).SetModTime": {10, 10},
19 "(go/doc.Package).Bugs": {1, 1},
20 "os.SEEK_SET": {7, 7},
21 "os.SEEK_CUR": {7, 7},
22 "os.SEEK_END": {7, 7},
23 "(net.Dialer).Cancel": {7, 7},
24 "runtime.CPUProfile": {9, 0},
25 "compress/flate.ReadError": {6, 6},
26 "compress/flate.WriteError": {6, 6},
27 "path/filepath.HasPrefix": {0, 0},
28 "(net/http.Transport).Dial": {7, 7},
29 "(*net/http.Transport).CancelRequest": {6, 5},
30 "net/http.ErrWriteAfterFlush": {7, 0},
31 "net/http.ErrHeaderTooLong": {8, 0},
32 "net/http.ErrShortBody": {8, 0},
33 "net/http.ErrMissingContentLength": {8, 0},
34 "net/http/httputil.ErrPersistEOF": {0, 0},
35 "net/http/httputil.ErrClosed": {0, 0},
36 "net/http/httputil.ErrPipeline": {0, 0},
37 "net/http/httputil.ServerConn": {0, 0},
38 "net/http/httputil.NewServerConn": {0, 0},
39 "net/http/httputil.ClientConn": {0, 0},
40 "net/http/httputil.NewClientConn": {0, 0},
41 "net/http/httputil.NewProxyClientConn": {0, 0},
42 "(net/http.Request).Cancel": {7, 7},
43 "(text/template/parse.PipeNode).Line": {1, 1},
44 "(text/template/parse.ActionNode).Line": {1, 1},
45 "(text/template/parse.BranchNode).Line": {1, 1},
46 "(text/template/parse.TemplateNode).Line": {1, 1},
47 "database/sql/driver.ColumnConverter": {9, 9},
48 "database/sql/driver.Execer": {8, 8},
49 "database/sql/driver.Queryer": {8, 8},
50 "(database/sql/driver.Conn).Begin": {8, 8},
51 "(database/sql/driver.Stmt).Exec": {8, 8},
52 "(database/sql/driver.Stmt).Query": {8, 8},
53 "syscall.StringByteSlice": {1, 1},
54 "syscall.StringBytePtr": {1, 1},
55 "syscall.StringSlicePtr": {1, 1},
56 "syscall.StringToUTF16": {1, 1},
57 "syscall.StringToUTF16Ptr": {1, 1},
58 "(*regexp.Regexp).Copy": {12, 12},
59 "(archive/tar.Header).Xattrs": {10, 10},
60 "archive/tar.TypeRegA": {11, 1},
61 "go/types.NewInterface": {11, 11},
62 "(*go/types.Interface).Embedded": {11, 11},
63 "go/importer.For": {12, 12},
64 "encoding/json.InvalidUTF8Error": {2, 2},
65 "encoding/json.UnmarshalFieldError": {2, 2},
66 "encoding/csv.ErrTrailingComma": {2, 2},
67 "(encoding/csv.Reader).TrailingComma": {2, 2},
68 "(net.Dialer).DualStack": {12, 12},
69 "net/http.ErrUnexpectedTrailer": {12, 12},
70 "net/http.CloseNotifier": {11, 7},
71 "net/http.ProtocolError": {8, 8},
72 "(crypto/x509.CertificateRequest).Attributes": {5, 3},
73 // This function has no alternative, but also no purpose.
74 "(*crypto/rc4.Cipher).Reset": {12, 0},
75 "(net/http/httptest.ResponseRecorder).HeaderMap": {11, 7},
76
77 // All of these have been deprecated in favour of external libraries
78 "syscall.AttachLsf": {7, 0},
79 "syscall.DetachLsf": {7, 0},
80 "syscall.LsfSocket": {7, 0},
81 "syscall.SetLsfPromisc": {7, 0},
82 "syscall.LsfJump": {7, 0},
83 "syscall.LsfStmt": {7, 0},
84 "syscall.BpfStmt": {7, 0},
85 "syscall.BpfJump": {7, 0},
86 "syscall.BpfBuflen": {7, 0},
87 "syscall.SetBpfBuflen": {7, 0},
88 "syscall.BpfDatalink": {7, 0},
89 "syscall.SetBpfDatalink": {7, 0},
90 "syscall.SetBpfPromisc": {7, 0},
91 "syscall.FlushBpf": {7, 0},
92 "syscall.BpfInterface": {7, 0},
93 "syscall.SetBpfInterface": {7, 0},
94 "syscall.BpfTimeout": {7, 0},
95 "syscall.SetBpfTimeout": {7, 0},
96 "syscall.BpfStats": {7, 0},
97 "syscall.SetBpfImmediate": {7, 0},
98 "syscall.SetBpf": {7, 0},
99 "syscall.CheckBpfVersion": {7, 0},
100 "syscall.BpfHeadercmpl": {7, 0},
101 "syscall.SetBpfHeadercmpl": {7, 0},
102 "syscall.RouteRIB": {8, 0},
103 "syscall.RoutingMessage": {8, 0},
104 "syscall.RouteMessage": {8, 0},
105 "syscall.InterfaceMessage": {8, 0},
106 "syscall.InterfaceAddrMessage": {8, 0},
107 "syscall.ParseRoutingMessage": {8, 0},
108 "syscall.ParseRoutingSockaddr": {8, 0},
109 "InterfaceAnnounceMessage": {7, 0},
110 "InterfaceMulticastAddrMessage": {7, 0},
111 "syscall.FormatMessage": {5, 0},
112}
diff --git a/vendor/honnef.co/go/tools/facts/deprecated.go b/vendor/honnef.co/go/tools/facts/deprecated.go
new file mode 100644
index 0000000..8587b0e
--- /dev/null
+++ b/vendor/honnef.co/go/tools/facts/deprecated.go
@@ -0,0 +1,144 @@
1package facts
2
3import (
4 "go/ast"
5 "go/token"
6 "go/types"
7 "reflect"
8 "strings"
9
10 "golang.org/x/tools/go/analysis"
11)
12
13type IsDeprecated struct{ Msg string }
14
15func (*IsDeprecated) AFact() {}
16func (d *IsDeprecated) String() string { return "Deprecated: " + d.Msg }
17
18type DeprecatedResult struct {
19 Objects map[types.Object]*IsDeprecated
20 Packages map[*types.Package]*IsDeprecated
21}
22
23var Deprecated = &analysis.Analyzer{
24 Name: "fact_deprecated",
25 Doc: "Mark deprecated objects",
26 Run: deprecated,
27 FactTypes: []analysis.Fact{(*IsDeprecated)(nil)},
28 ResultType: reflect.TypeOf(DeprecatedResult{}),
29}
30
31func deprecated(pass *analysis.Pass) (interface{}, error) {
32 var names []*ast.Ident
33
34 extractDeprecatedMessage := func(docs []*ast.CommentGroup) string {
35 for _, doc := range docs {
36 if doc == nil {
37 continue
38 }
39 parts := strings.Split(doc.Text(), "\n\n")
40 last := parts[len(parts)-1]
41 if !strings.HasPrefix(last, "Deprecated: ") {
42 continue
43 }
44 alt := last[len("Deprecated: "):]
45 alt = strings.Replace(alt, "\n", " ", -1)
46 return alt
47 }
48 return ""
49 }
50 doDocs := func(names []*ast.Ident, docs []*ast.CommentGroup) {
51 alt := extractDeprecatedMessage(docs)
52 if alt == "" {
53 return
54 }
55
56 for _, name := range names {
57 obj := pass.TypesInfo.ObjectOf(name)
58 pass.ExportObjectFact(obj, &IsDeprecated{alt})
59 }
60 }
61
62 var docs []*ast.CommentGroup
63 for _, f := range pass.Files {
64 docs = append(docs, f.Doc)
65 }
66 if alt := extractDeprecatedMessage(docs); alt != "" {
67 // Don't mark package syscall as deprecated, even though
68 // it is. A lot of people still use it for simple
69 // constants like SIGKILL, and I am not comfortable
70 // telling them to use x/sys for that.
71 if pass.Pkg.Path() != "syscall" {
72 pass.ExportPackageFact(&IsDeprecated{alt})
73 }
74 }
75
76 docs = docs[:0]
77 for _, f := range pass.Files {
78 fn := func(node ast.Node) bool {
79 if node == nil {
80 return true
81 }
82 var ret bool
83 switch node := node.(type) {
84 case *ast.GenDecl:
85 switch node.Tok {
86 case token.TYPE, token.CONST, token.VAR:
87 docs = append(docs, node.Doc)
88 return true
89 default:
90 return false
91 }
92 case *ast.FuncDecl:
93 docs = append(docs, node.Doc)
94 names = []*ast.Ident{node.Name}
95 ret = false
96 case *ast.TypeSpec:
97 docs = append(docs, node.Doc)
98 names = []*ast.Ident{node.Name}
99 ret = true
100 case *ast.ValueSpec:
101 docs = append(docs, node.Doc)
102 names = node.Names
103 ret = false
104 case *ast.File:
105 return true
106 case *ast.StructType:
107 for _, field := range node.Fields.List {
108 doDocs(field.Names, []*ast.CommentGroup{field.Doc})
109 }
110 return false
111 case *ast.InterfaceType:
112 for _, field := range node.Methods.List {
113 doDocs(field.Names, []*ast.CommentGroup{field.Doc})
114 }
115 return false
116 default:
117 return false
118 }
119 if len(names) == 0 || len(docs) == 0 {
120 return ret
121 }
122 doDocs(names, docs)
123
124 docs = docs[:0]
125 names = nil
126 return ret
127 }
128 ast.Inspect(f, fn)
129 }
130
131 out := DeprecatedResult{
132 Objects: map[types.Object]*IsDeprecated{},
133 Packages: map[*types.Package]*IsDeprecated{},
134 }
135
136 for _, fact := range pass.AllObjectFacts() {
137 out.Objects[fact.Object] = fact.Fact.(*IsDeprecated)
138 }
139 for _, fact := range pass.AllPackageFacts() {
140 out.Packages[fact.Package] = fact.Fact.(*IsDeprecated)
141 }
142
143 return out, nil
144}
diff --git a/vendor/honnef.co/go/tools/facts/generated.go b/vendor/honnef.co/go/tools/facts/generated.go
new file mode 100644
index 0000000..1ed9563
--- /dev/null
+++ b/vendor/honnef.co/go/tools/facts/generated.go
@@ -0,0 +1,86 @@
1package facts
2
3import (
4 "bufio"
5 "bytes"
6 "io"
7 "os"
8 "reflect"
9 "strings"
10
11 "golang.org/x/tools/go/analysis"
12)
13
14type Generator int
15
16// A list of known generators we can detect
17const (
18 Unknown Generator = iota
19 Goyacc
20 Cgo
21 Stringer
22)
23
24var (
25 // used by cgo before Go 1.11
26 oldCgo = []byte("// Created by cgo - DO NOT EDIT")
27 prefix = []byte("// Code generated ")
28 suffix = []byte(" DO NOT EDIT.")
29 nl = []byte("\n")
30 crnl = []byte("\r\n")
31)
32
33func isGenerated(path string) (Generator, bool) {
34 f, err := os.Open(path)
35 if err != nil {
36 return 0, false
37 }
38 defer f.Close()
39 br := bufio.NewReader(f)
40 for {
41 s, err := br.ReadBytes('\n')
42 if err != nil && err != io.EOF {
43 return 0, false
44 }
45 s = bytes.TrimSuffix(s, crnl)
46 s = bytes.TrimSuffix(s, nl)
47 if bytes.HasPrefix(s, prefix) && bytes.HasSuffix(s, suffix) {
48 text := string(s[len(prefix) : len(s)-len(suffix)])
49 switch text {
50 case "by goyacc.":
51 return Goyacc, true
52 case "by cmd/cgo;":
53 return Cgo, true
54 }
55 if strings.HasPrefix(text, `by "stringer `) {
56 return Stringer, true
57 }
58 return Unknown, true
59 }
60 if bytes.Equal(s, oldCgo) {
61 return Cgo, true
62 }
63 if err == io.EOF {
64 break
65 }
66 }
67 return 0, false
68}
69
70var Generated = &analysis.Analyzer{
71 Name: "isgenerated",
72 Doc: "annotate file names that have been code generated",
73 Run: func(pass *analysis.Pass) (interface{}, error) {
74 m := map[string]Generator{}
75 for _, f := range pass.Files {
76 path := pass.Fset.PositionFor(f.Pos(), false).Filename
77 g, ok := isGenerated(path)
78 if ok {
79 m[path] = g
80 }
81 }
82 return m, nil
83 },
84 RunDespiteErrors: true,
85 ResultType: reflect.TypeOf(map[string]Generator{}),
86}
diff --git a/vendor/honnef.co/go/tools/facts/purity.go b/vendor/honnef.co/go/tools/facts/purity.go
new file mode 100644
index 0000000..861ca41
--- /dev/null
+++ b/vendor/honnef.co/go/tools/facts/purity.go
@@ -0,0 +1,175 @@
1package facts
2
3import (
4 "go/token"
5 "go/types"
6 "reflect"
7
8 "golang.org/x/tools/go/analysis"
9 "honnef.co/go/tools/functions"
10 "honnef.co/go/tools/internal/passes/buildssa"
11 "honnef.co/go/tools/ssa"
12)
13
14type IsPure struct{}
15
16func (*IsPure) AFact() {}
17func (d *IsPure) String() string { return "is pure" }
18
19type PurityResult map[*types.Func]*IsPure
20
21var Purity = &analysis.Analyzer{
22 Name: "fact_purity",
23 Doc: "Mark pure functions",
24 Run: purity,
25 Requires: []*analysis.Analyzer{buildssa.Analyzer},
26 FactTypes: []analysis.Fact{(*IsPure)(nil)},
27 ResultType: reflect.TypeOf(PurityResult{}),
28}
29
30var pureStdlib = map[string]struct{}{
31 "errors.New": {},
32 "fmt.Errorf": {},
33 "fmt.Sprintf": {},
34 "fmt.Sprint": {},
35 "sort.Reverse": {},
36 "strings.Map": {},
37 "strings.Repeat": {},
38 "strings.Replace": {},
39 "strings.Title": {},
40 "strings.ToLower": {},
41 "strings.ToLowerSpecial": {},
42 "strings.ToTitle": {},
43 "strings.ToTitleSpecial": {},
44 "strings.ToUpper": {},
45 "strings.ToUpperSpecial": {},
46 "strings.Trim": {},
47 "strings.TrimFunc": {},
48 "strings.TrimLeft": {},
49 "strings.TrimLeftFunc": {},
50 "strings.TrimPrefix": {},
51 "strings.TrimRight": {},
52 "strings.TrimRightFunc": {},
53 "strings.TrimSpace": {},
54 "strings.TrimSuffix": {},
55 "(*net/http.Request).WithContext": {},
56}
57
58func purity(pass *analysis.Pass) (interface{}, error) {
59 seen := map[*ssa.Function]struct{}{}
60 ssapkg := pass.ResultOf[buildssa.Analyzer].(*buildssa.SSA).Pkg
61 var check func(ssafn *ssa.Function) (ret bool)
62 check = func(ssafn *ssa.Function) (ret bool) {
63 if ssafn.Object() == nil {
64 // TODO(dh): support closures
65 return false
66 }
67 if pass.ImportObjectFact(ssafn.Object(), new(IsPure)) {
68 return true
69 }
70 if ssafn.Pkg != ssapkg {
71 // Function is in another package but wasn't marked as
72 // pure, ergo it isn't pure
73 return false
74 }
75 // Break recursion
76 if _, ok := seen[ssafn]; ok {
77 return false
78 }
79
80 seen[ssafn] = struct{}{}
81 defer func() {
82 if ret {
83 pass.ExportObjectFact(ssafn.Object(), &IsPure{})
84 }
85 }()
86
87 if functions.IsStub(ssafn) {
88 return false
89 }
90
91 if _, ok := pureStdlib[ssafn.Object().(*types.Func).FullName()]; ok {
92 return true
93 }
94
95 if ssafn.Signature.Results().Len() == 0 {
96 // A function with no return values is empty or is doing some
97 // work we cannot see (for example because of build tags);
98 // don't consider it pure.
99 return false
100 }
101
102 for _, param := range ssafn.Params {
103 if _, ok := param.Type().Underlying().(*types.Basic); !ok {
104 return false
105 }
106 }
107
108 if ssafn.Blocks == nil {
109 return false
110 }
111 checkCall := func(common *ssa.CallCommon) bool {
112 if common.IsInvoke() {
113 return false
114 }
115 builtin, ok := common.Value.(*ssa.Builtin)
116 if !ok {
117 if common.StaticCallee() != ssafn {
118 if common.StaticCallee() == nil {
119 return false
120 }
121 if !check(common.StaticCallee()) {
122 return false
123 }
124 }
125 } else {
126 switch builtin.Name() {
127 case "len", "cap", "make", "new":
128 default:
129 return false
130 }
131 }
132 return true
133 }
134 for _, b := range ssafn.Blocks {
135 for _, ins := range b.Instrs {
136 switch ins := ins.(type) {
137 case *ssa.Call:
138 if !checkCall(ins.Common()) {
139 return false
140 }
141 case *ssa.Defer:
142 if !checkCall(&ins.Call) {
143 return false
144 }
145 case *ssa.Select:
146 return false
147 case *ssa.Send:
148 return false
149 case *ssa.Go:
150 return false
151 case *ssa.Panic:
152 return false
153 case *ssa.Store:
154 return false
155 case *ssa.FieldAddr:
156 return false
157 case *ssa.UnOp:
158 if ins.Op == token.MUL || ins.Op == token.AND {
159 return false
160 }
161 }
162 }
163 }
164 return true
165 }
166 for _, ssafn := range pass.ResultOf[buildssa.Analyzer].(*buildssa.SSA).SrcFuncs {
167 check(ssafn)
168 }
169
170 out := PurityResult{}
171 for _, fact := range pass.AllObjectFacts() {
172 out[fact.Object.(*types.Func)] = fact.Fact.(*IsPure)
173 }
174 return out, nil
175}
diff --git a/vendor/honnef.co/go/tools/facts/token.go b/vendor/honnef.co/go/tools/facts/token.go
new file mode 100644
index 0000000..26e76ff
--- /dev/null
+++ b/vendor/honnef.co/go/tools/facts/token.go
@@ -0,0 +1,24 @@
1package facts
2
3import (
4 "go/ast"
5 "go/token"
6 "reflect"
7
8 "golang.org/x/tools/go/analysis"
9)
10
11var TokenFile = &analysis.Analyzer{
12 Name: "tokenfileanalyzer",
13 Doc: "creates a mapping of *token.File to *ast.File",
14 Run: func(pass *analysis.Pass) (interface{}, error) {
15 m := map[*token.File]*ast.File{}
16 for _, af := range pass.Files {
17 tf := pass.Fset.File(af.Pos())
18 m[tf] = af
19 }
20 return m, nil
21 },
22 RunDespiteErrors: true,
23 ResultType: reflect.TypeOf(map[*token.File]*ast.File{}),
24}
diff --git a/vendor/honnef.co/go/tools/functions/loops.go b/vendor/honnef.co/go/tools/functions/loops.go
new file mode 100644
index 0000000..15877a2
--- /dev/null
+++ b/vendor/honnef.co/go/tools/functions/loops.go
@@ -0,0 +1,54 @@
1package functions
2
3import "honnef.co/go/tools/ssa"
4
5type Loop struct{ ssa.BlockSet }
6
7func FindLoops(fn *ssa.Function) []Loop {
8 if fn.Blocks == nil {
9 return nil
10 }
11 tree := fn.DomPreorder()
12 var sets []Loop
13 for _, h := range tree {
14 for _, n := range h.Preds {
15 if !h.Dominates(n) {
16 continue
17 }
18 // n is a back-edge to h
19 // h is the loop header
20 if n == h {
21 set := Loop{}
22 set.Add(n)
23 sets = append(sets, set)
24 continue
25 }
26 set := Loop{}
27 set.Add(h)
28 set.Add(n)
29 for _, b := range allPredsBut(n, h, nil) {
30 set.Add(b)
31 }
32 sets = append(sets, set)
33 }
34 }
35 return sets
36}
37
38func allPredsBut(b, but *ssa.BasicBlock, list []*ssa.BasicBlock) []*ssa.BasicBlock {
39outer:
40 for _, pred := range b.Preds {
41 if pred == but {
42 continue
43 }
44 for _, p := range list {
45 // TODO improve big-o complexity of this function
46 if pred == p {
47 continue outer
48 }
49 }
50 list = append(list, pred)
51 list = allPredsBut(pred, but, list)
52 }
53 return list
54}
diff --git a/vendor/honnef.co/go/tools/functions/pure.go b/vendor/honnef.co/go/tools/functions/pure.go
new file mode 100644
index 0000000..8bc5587
--- /dev/null
+++ b/vendor/honnef.co/go/tools/functions/pure.go
@@ -0,0 +1,46 @@
1package functions
2
3import (
4 "honnef.co/go/tools/ssa"
5)
6
7func filterDebug(instr []ssa.Instruction) []ssa.Instruction {
8 var out []ssa.Instruction
9 for _, ins := range instr {
10 if _, ok := ins.(*ssa.DebugRef); !ok {
11 out = append(out, ins)
12 }
13 }
14 return out
15}
16
17// IsStub reports whether a function is a stub. A function is
18// considered a stub if it has no instructions or exactly one
19// instruction, which must be either returning only constant values or
20// a panic.
21func IsStub(fn *ssa.Function) bool {
22 if len(fn.Blocks) == 0 {
23 return true
24 }
25 if len(fn.Blocks) > 1 {
26 return false
27 }
28 instrs := filterDebug(fn.Blocks[0].Instrs)
29 if len(instrs) != 1 {
30 return false
31 }
32
33 switch instrs[0].(type) {
34 case *ssa.Return:
35 // Since this is the only instruction, the return value must
36 // be a constant. We consider all constants as stubs, not just
37 // the zero value. This does not, unfortunately, cover zero
38 // initialised structs, as these cause additional
39 // instructions.
40 return true
41 case *ssa.Panic:
42 return true
43 default:
44 return false
45 }
46}
diff --git a/vendor/honnef.co/go/tools/functions/terminates.go b/vendor/honnef.co/go/tools/functions/terminates.go
new file mode 100644
index 0000000..3e9c3a2
--- /dev/null
+++ b/vendor/honnef.co/go/tools/functions/terminates.go
@@ -0,0 +1,24 @@
1package functions
2
3import "honnef.co/go/tools/ssa"
4
5// Terminates reports whether fn is supposed to return, that is if it
6// has at least one theoretic path that returns from the function.
7// Explicit panics do not count as terminating.
8func Terminates(fn *ssa.Function) bool {
9 if fn.Blocks == nil {
10 // assuming that a function terminates is the conservative
11 // choice
12 return true
13 }
14
15 for _, block := range fn.Blocks {
16 if len(block.Instrs) == 0 {
17 continue
18 }
19 if _, ok := block.Instrs[len(block.Instrs)-1].(*ssa.Return); ok {
20 return true
21 }
22 }
23 return false
24}
diff --git a/vendor/honnef.co/go/tools/go/types/typeutil/callee.go b/vendor/honnef.co/go/tools/go/types/typeutil/callee.go
new file mode 100644
index 0000000..38f596d
--- /dev/null
+++ b/vendor/honnef.co/go/tools/go/types/typeutil/callee.go
@@ -0,0 +1,46 @@
1// Copyright 2018 The Go Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style
3// license that can be found in the LICENSE file.
4
5package typeutil
6
7import (
8 "go/ast"
9 "go/types"
10
11 "golang.org/x/tools/go/ast/astutil"
12)
13
14// Callee returns the named target of a function call, if any:
15// a function, method, builtin, or variable.
16func Callee(info *types.Info, call *ast.CallExpr) types.Object {
17 var obj types.Object
18 switch fun := astutil.Unparen(call.Fun).(type) {
19 case *ast.Ident:
20 obj = info.Uses[fun] // type, var, builtin, or declared func
21 case *ast.SelectorExpr:
22 if sel, ok := info.Selections[fun]; ok {
23 obj = sel.Obj() // method or field
24 } else {
25 obj = info.Uses[fun.Sel] // qualified identifier?
26 }
27 }
28 if _, ok := obj.(*types.TypeName); ok {
29 return nil // T(x) is a conversion, not a call
30 }
31 return obj
32}
33
34// StaticCallee returns the target (function or method) of a static
35// function call, if any. It returns nil for calls to builtins.
36func StaticCallee(info *types.Info, call *ast.CallExpr) *types.Func {
37 if f, ok := Callee(info, call).(*types.Func); ok && !interfaceMethod(f) {
38 return f
39 }
40 return nil
41}
42
43func interfaceMethod(f *types.Func) bool {
44 recv := f.Type().(*types.Signature).Recv()
45 return recv != nil && types.IsInterface(recv.Type())
46}
diff --git a/vendor/honnef.co/go/tools/go/types/typeutil/identical.go b/vendor/honnef.co/go/tools/go/types/typeutil/identical.go
new file mode 100644
index 0000000..c0ca441
--- /dev/null
+++ b/vendor/honnef.co/go/tools/go/types/typeutil/identical.go
@@ -0,0 +1,75 @@
1package typeutil
2
3import (
4 "go/types"
5)
6
7// Identical reports whether x and y are identical types.
8// Unlike types.Identical, receivers of Signature types are not ignored.
9// Unlike types.Identical, interfaces are compared via pointer equality (except for the empty interface, which gets deduplicated).
10// Unlike types.Identical, structs are compared via pointer equality.
11func Identical(x, y types.Type) (ret bool) {
12 if !types.Identical(x, y) {
13 return false
14 }
15
16 switch x := x.(type) {
17 case *types.Struct:
18 y, ok := y.(*types.Struct)
19 if !ok {
20 // should be impossible
21 return true
22 }
23 return x == y
24 case *types.Interface:
25 // The issue with interfaces, typeutil.Map and types.Identical
26 //
27 // types.Identical, when comparing two interfaces, only looks at the set
28 // of all methods, not differentiating between implicit (embedded) and
29 // explicit methods.
30 //
31 // When we see the following two types, in source order
32 //
33 // type I1 interface { foo() }
34 // type I2 interface { I1 }
35 //
36 // then we will first correctly process I1 and its underlying type. When
37 // we get to I2, we will see that its underlying type is identical to
38 // that of I1 and not process it again. This, however, means that we will
39 // not record the fact that I2 embeds I1. If only I2 is reachable via the
40 // graph root, then I1 will not be considered used.
41 //
42 // We choose to be lazy and compare interfaces by their
43 // pointers. This will obviously miss identical interfaces,
44 // but this only has a runtime cost, it doesn't affect
45 // correctness.
46 y, ok := y.(*types.Interface)
47 if !ok {
48 // should be impossible
49 return true
50 }
51 if x.NumEmbeddeds() == 0 &&
52 y.NumEmbeddeds() == 0 &&
53 x.NumMethods() == 0 &&
54 y.NumMethods() == 0 {
55 // all truly empty interfaces are the same
56 return true
57 }
58 return x == y
59 case *types.Signature:
60 y, ok := y.(*types.Signature)
61 if !ok {
62 // should be impossible
63 return true
64 }
65 if x.Recv() == y.Recv() {
66 return true
67 }
68 if x.Recv() == nil || y.Recv() == nil {
69 return false
70 }
71 return Identical(x.Recv().Type(), y.Recv().Type())
72 default:
73 return true
74 }
75}
diff --git a/vendor/honnef.co/go/tools/go/types/typeutil/imports.go b/vendor/honnef.co/go/tools/go/types/typeutil/imports.go
new file mode 100644
index 0000000..9c441db
--- /dev/null
+++ b/vendor/honnef.co/go/tools/go/types/typeutil/imports.go
@@ -0,0 +1,31 @@
1// Copyright 2014 The Go Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style
3// license that can be found in the LICENSE file.
4
5package typeutil
6
7import "go/types"
8
9// Dependencies returns all dependencies of the specified packages.
10//
11// Dependent packages appear in topological order: if package P imports
12// package Q, Q appears earlier than P in the result.
13// The algorithm follows import statements in the order they
14// appear in the source code, so the result is a total order.
15//
16func Dependencies(pkgs ...*types.Package) []*types.Package {
17 var result []*types.Package
18 seen := make(map[*types.Package]bool)
19 var visit func(pkgs []*types.Package)
20 visit = func(pkgs []*types.Package) {
21 for _, p := range pkgs {
22 if !seen[p] {
23 seen[p] = true
24 visit(p.Imports())
25 result = append(result, p)
26 }
27 }
28 }
29 visit(pkgs)
30 return result
31}
diff --git a/vendor/honnef.co/go/tools/go/types/typeutil/map.go b/vendor/honnef.co/go/tools/go/types/typeutil/map.go
new file mode 100644
index 0000000..f929353
--- /dev/null
+++ b/vendor/honnef.co/go/tools/go/types/typeutil/map.go
@@ -0,0 +1,319 @@
1// Copyright 2014 The Go Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style
3// license that can be found in the LICENSE file.
4
5// Package typeutil defines various utilities for types, such as Map,
6// a mapping from types.Type to interface{} values.
7package typeutil
8
9import (
10 "bytes"
11 "fmt"
12 "go/types"
13 "reflect"
14)
15
16// Map is a hash-table-based mapping from types (types.Type) to
17// arbitrary interface{} values. The concrete types that implement
18// the Type interface are pointers. Since they are not canonicalized,
19// == cannot be used to check for equivalence, and thus we cannot
20// simply use a Go map.
21//
22// Just as with map[K]V, a nil *Map is a valid empty map.
23//
24// Not thread-safe.
25//
26// This fork handles Signatures correctly, respecting method
27// receivers. Furthermore, it doesn't deduplicate interfaces or
28// structs. Interfaces aren't deduplicated as not to conflate implicit
29// and explicit methods. Structs aren't deduplicated because we track
30// fields of each type separately.
31//
32type Map struct {
33 hasher Hasher // shared by many Maps
34 table map[uint32][]entry // maps hash to bucket; entry.key==nil means unused
35 length int // number of map entries
36}
37
38// entry is an entry (key/value association) in a hash bucket.
39type entry struct {
40 key types.Type
41 value interface{}
42}
43
44// SetHasher sets the hasher used by Map.
45//
46// All Hashers are functionally equivalent but contain internal state
47// used to cache the results of hashing previously seen types.
48//
49// A single Hasher created by MakeHasher() may be shared among many
50// Maps. This is recommended if the instances have many keys in
51// common, as it will amortize the cost of hash computation.
52//
53// A Hasher may grow without bound as new types are seen. Even when a
54// type is deleted from the map, the Hasher never shrinks, since other
55// types in the map may reference the deleted type indirectly.
56//
57// Hashers are not thread-safe, and read-only operations such as
58// Map.Lookup require updates to the hasher, so a full Mutex lock (not a
59// read-lock) is require around all Map operations if a shared
60// hasher is accessed from multiple threads.
61//
62// If SetHasher is not called, the Map will create a private hasher at
63// the first call to Insert.
64//
65func (m *Map) SetHasher(hasher Hasher) {
66 m.hasher = hasher
67}
68
69// Delete removes the entry with the given key, if any.
70// It returns true if the entry was found.
71//
72func (m *Map) Delete(key types.Type) bool {
73 if m != nil && m.table != nil {
74 hash := m.hasher.Hash(key)
75 bucket := m.table[hash]
76 for i, e := range bucket {
77 if e.key != nil && Identical(key, e.key) {
78 // We can't compact the bucket as it
79 // would disturb iterators.
80 bucket[i] = entry{}
81 m.length--
82 return true
83 }
84 }
85 }
86 return false
87}
88
89// At returns the map entry for the given key.
90// The result is nil if the entry is not present.
91//
92func (m *Map) At(key types.Type) interface{} {
93 if m != nil && m.table != nil {
94 for _, e := range m.table[m.hasher.Hash(key)] {
95 if e.key != nil && Identical(key, e.key) {
96 return e.value
97 }
98 }
99 }
100 return nil
101}
102
103// Set sets the map entry for key to val,
104// and returns the previous entry, if any.
105func (m *Map) Set(key types.Type, value interface{}) (prev interface{}) {
106 if m.table != nil {
107 hash := m.hasher.Hash(key)
108 bucket := m.table[hash]
109 var hole *entry
110 for i, e := range bucket {
111 if e.key == nil {
112 hole = &bucket[i]
113 } else if Identical(key, e.key) {
114 prev = e.value
115 bucket[i].value = value
116 return
117 }
118 }
119
120 if hole != nil {
121 *hole = entry{key, value} // overwrite deleted entry
122 } else {
123 m.table[hash] = append(bucket, entry{key, value})
124 }
125 } else {
126 if m.hasher.memo == nil {
127 m.hasher = MakeHasher()
128 }
129 hash := m.hasher.Hash(key)
130 m.table = map[uint32][]entry{hash: {entry{key, value}}}
131 }
132
133 m.length++
134 return
135}
136
137// Len returns the number of map entries.
138func (m *Map) Len() int {
139 if m != nil {
140 return m.length
141 }
142 return 0
143}
144
145// Iterate calls function f on each entry in the map in unspecified order.
146//
147// If f should mutate the map, Iterate provides the same guarantees as
148// Go maps: if f deletes a map entry that Iterate has not yet reached,
149// f will not be invoked for it, but if f inserts a map entry that
150// Iterate has not yet reached, whether or not f will be invoked for
151// it is unspecified.
152//
153func (m *Map) Iterate(f func(key types.Type, value interface{})) {
154 if m != nil {
155 for _, bucket := range m.table {
156 for _, e := range bucket {
157 if e.key != nil {
158 f(e.key, e.value)
159 }
160 }
161 }
162 }
163}
164
165// Keys returns a new slice containing the set of map keys.
166// The order is unspecified.
167func (m *Map) Keys() []types.Type {
168 keys := make([]types.Type, 0, m.Len())
169 m.Iterate(func(key types.Type, _ interface{}) {
170 keys = append(keys, key)
171 })
172 return keys
173}
174
175func (m *Map) toString(values bool) string {
176 if m == nil {
177 return "{}"
178 }
179 var buf bytes.Buffer
180 fmt.Fprint(&buf, "{")
181 sep := ""
182 m.Iterate(func(key types.Type, value interface{}) {
183 fmt.Fprint(&buf, sep)
184 sep = ", "
185 fmt.Fprint(&buf, key)
186 if values {
187 fmt.Fprintf(&buf, ": %q", value)
188 }
189 })
190 fmt.Fprint(&buf, "}")
191 return buf.String()
192}
193
194// String returns a string representation of the map's entries.
195// Values are printed using fmt.Sprintf("%v", v).
196// Order is unspecified.
197//
198func (m *Map) String() string {
199 return m.toString(true)
200}
201
202// KeysString returns a string representation of the map's key set.
203// Order is unspecified.
204//
205func (m *Map) KeysString() string {
206 return m.toString(false)
207}
208
209////////////////////////////////////////////////////////////////////////
210// Hasher
211
212// A Hasher maps each type to its hash value.
213// For efficiency, a hasher uses memoization; thus its memory
214// footprint grows monotonically over time.
215// Hashers are not thread-safe.
216// Hashers have reference semantics.
217// Call MakeHasher to create a Hasher.
218type Hasher struct {
219 memo map[types.Type]uint32
220}
221
222// MakeHasher returns a new Hasher instance.
223func MakeHasher() Hasher {
224 return Hasher{make(map[types.Type]uint32)}
225}
226
227// Hash computes a hash value for the given type t such that
228// Identical(t, t') => Hash(t) == Hash(t').
229func (h Hasher) Hash(t types.Type) uint32 {
230 hash, ok := h.memo[t]
231 if !ok {
232 hash = h.hashFor(t)
233 h.memo[t] = hash
234 }
235 return hash
236}
237
238// hashString computes the Fowler–Noll–Vo hash of s.
239func hashString(s string) uint32 {
240 var h uint32
241 for i := 0; i < len(s); i++ {
242 h ^= uint32(s[i])
243 h *= 16777619
244 }
245 return h
246}
247
248// hashFor computes the hash of t.
249func (h Hasher) hashFor(t types.Type) uint32 {
250 // See Identical for rationale.
251 switch t := t.(type) {
252 case *types.Basic:
253 return uint32(t.Kind())
254
255 case *types.Array:
256 return 9043 + 2*uint32(t.Len()) + 3*h.Hash(t.Elem())
257
258 case *types.Slice:
259 return 9049 + 2*h.Hash(t.Elem())
260
261 case *types.Struct:
262 var hash uint32 = 9059
263 for i, n := 0, t.NumFields(); i < n; i++ {
264 f := t.Field(i)
265 if f.Anonymous() {
266 hash += 8861
267 }
268 hash += hashString(t.Tag(i))
269 hash += hashString(f.Name()) // (ignore f.Pkg)
270 hash += h.Hash(f.Type())
271 }
272 return hash
273
274 case *types.Pointer:
275 return 9067 + 2*h.Hash(t.Elem())
276
277 case *types.Signature:
278 var hash uint32 = 9091
279 if t.Variadic() {
280 hash *= 8863
281 }
282 return hash + 3*h.hashTuple(t.Params()) + 5*h.hashTuple(t.Results())
283
284 case *types.Interface:
285 var hash uint32 = 9103
286 for i, n := 0, t.NumMethods(); i < n; i++ {
287 // See go/types.identicalMethods for rationale.
288 // Method order is not significant.
289 // Ignore m.Pkg().
290 m := t.Method(i)
291 hash += 3*hashString(m.Name()) + 5*h.Hash(m.Type())
292 }
293 return hash
294
295 case *types.Map:
296 return 9109 + 2*h.Hash(t.Key()) + 3*h.Hash(t.Elem())
297
298 case *types.Chan:
299 return 9127 + 2*uint32(t.Dir()) + 3*h.Hash(t.Elem())
300
301 case *types.Named:
302 // Not safe with a copying GC; objects may move.
303 return uint32(reflect.ValueOf(t.Obj()).Pointer())
304
305 case *types.Tuple:
306 return h.hashTuple(t)
307 }
308 panic(t)
309}
310
311func (h Hasher) hashTuple(tuple *types.Tuple) uint32 {
312 // See go/types.identicalTypes for rationale.
313 n := tuple.Len()
314 var hash uint32 = 9137 + 2*uint32(n)
315 for i := 0; i < n; i++ {
316 hash += 3 * h.Hash(tuple.At(i).Type())
317 }
318 return hash
319}
diff --git a/vendor/honnef.co/go/tools/go/types/typeutil/methodsetcache.go b/vendor/honnef.co/go/tools/go/types/typeutil/methodsetcache.go
new file mode 100644
index 0000000..3208461
--- /dev/null
+++ b/vendor/honnef.co/go/tools/go/types/typeutil/methodsetcache.go
@@ -0,0 +1,72 @@
1// Copyright 2014 The Go Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style
3// license that can be found in the LICENSE file.
4
5// This file implements a cache of method sets.
6
7package typeutil
8
9import (
10 "go/types"
11 "sync"
12)
13
14// A MethodSetCache records the method set of each type T for which
15// MethodSet(T) is called so that repeat queries are fast.
16// The zero value is a ready-to-use cache instance.
17type MethodSetCache struct {
18 mu sync.Mutex
19 named map[*types.Named]struct{ value, pointer *types.MethodSet } // method sets for named N and *N
20 others map[types.Type]*types.MethodSet // all other types
21}
22
23// MethodSet returns the method set of type T. It is thread-safe.
24//
25// If cache is nil, this function is equivalent to types.NewMethodSet(T).
26// Utility functions can thus expose an optional *MethodSetCache
27// parameter to clients that care about performance.
28//
29func (cache *MethodSetCache) MethodSet(T types.Type) *types.MethodSet {
30 if cache == nil {
31 return types.NewMethodSet(T)
32 }
33 cache.mu.Lock()
34 defer cache.mu.Unlock()
35
36 switch T := T.(type) {
37 case *types.Named:
38 return cache.lookupNamed(T).value
39
40 case *types.Pointer:
41 if N, ok := T.Elem().(*types.Named); ok {
42 return cache.lookupNamed(N).pointer
43 }
44 }
45
46 // all other types
47 // (The map uses pointer equivalence, not type identity.)
48 mset := cache.others[T]
49 if mset == nil {
50 mset = types.NewMethodSet(T)
51 if cache.others == nil {
52 cache.others = make(map[types.Type]*types.MethodSet)
53 }
54 cache.others[T] = mset
55 }
56 return mset
57}
58
59func (cache *MethodSetCache) lookupNamed(named *types.Named) struct{ value, pointer *types.MethodSet } {
60 if cache.named == nil {
61 cache.named = make(map[*types.Named]struct{ value, pointer *types.MethodSet })
62 }
63 // Avoid recomputing mset(*T) for each distinct Pointer
64 // instance whose underlying type is a named type.
65 msets, ok := cache.named[named]
66 if !ok {
67 msets.value = types.NewMethodSet(named)
68 msets.pointer = types.NewMethodSet(types.NewPointer(named))
69 cache.named[named] = msets
70 }
71 return msets
72}
diff --git a/vendor/honnef.co/go/tools/go/types/typeutil/ui.go b/vendor/honnef.co/go/tools/go/types/typeutil/ui.go
new file mode 100644
index 0000000..9849c24
--- /dev/null
+++ b/vendor/honnef.co/go/tools/go/types/typeutil/ui.go
@@ -0,0 +1,52 @@
1// Copyright 2014 The Go Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style
3// license that can be found in the LICENSE file.
4
5package typeutil
6
7// This file defines utilities for user interfaces that display types.
8
9import "go/types"
10
11// IntuitiveMethodSet returns the intuitive method set of a type T,
12// which is the set of methods you can call on an addressable value of
13// that type.
14//
15// The result always contains MethodSet(T), and is exactly MethodSet(T)
16// for interface types and for pointer-to-concrete types.
17// For all other concrete types T, the result additionally
18// contains each method belonging to *T if there is no identically
19// named method on T itself.
20//
21// This corresponds to user intuition about method sets;
22// this function is intended only for user interfaces.
23//
24// The order of the result is as for types.MethodSet(T).
25//
26func IntuitiveMethodSet(T types.Type, msets *MethodSetCache) []*types.Selection {
27 isPointerToConcrete := func(T types.Type) bool {
28 ptr, ok := T.(*types.Pointer)
29 return ok && !types.IsInterface(ptr.Elem())
30 }
31
32 var result []*types.Selection
33 mset := msets.MethodSet(T)
34 if types.IsInterface(T) || isPointerToConcrete(T) {
35 for i, n := 0, mset.Len(); i < n; i++ {
36 result = append(result, mset.At(i))
37 }
38 } else {
39 // T is some other concrete type.
40 // Report methods of T and *T, preferring those of T.
41 pmset := msets.MethodSet(types.NewPointer(T))
42 for i, n := 0, pmset.Len(); i < n; i++ {
43 meth := pmset.At(i)
44 if m := mset.Lookup(meth.Obj().Pkg(), meth.Obj().Name()); m != nil {
45 meth = m
46 }
47 result = append(result, meth)
48 }
49
50 }
51 return result
52}
diff --git a/vendor/honnef.co/go/tools/internal/cache/cache.go b/vendor/honnef.co/go/tools/internal/cache/cache.go
new file mode 100644
index 0000000..2b33ca1
--- /dev/null
+++ b/vendor/honnef.co/go/tools/internal/cache/cache.go
@@ -0,0 +1,474 @@
1// Copyright 2017 The Go Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style
3// license that can be found in the LICENSE file.
4
5// Package cache implements a build artifact cache.
6//
7// This package is a slightly modified fork of Go's
8// cmd/go/internal/cache package.
9package cache
10
11import (
12 "bytes"
13 "crypto/sha256"
14 "encoding/hex"
15 "errors"
16 "fmt"
17 "io"
18 "io/ioutil"
19 "os"
20 "path/filepath"
21 "strconv"
22 "strings"
23 "time"
24
25 "honnef.co/go/tools/internal/renameio"
26)
27
28// An ActionID is a cache action key, the hash of a complete description of a
29// repeatable computation (command line, environment variables,
30// input file contents, executable contents).
31type ActionID [HashSize]byte
32
33// An OutputID is a cache output key, the hash of an output of a computation.
34type OutputID [HashSize]byte
35
36// A Cache is a package cache, backed by a file system directory tree.
37type Cache struct {
38 dir string
39 now func() time.Time
40}
41
42// Open opens and returns the cache in the given directory.
43//
44// It is safe for multiple processes on a single machine to use the
45// same cache directory in a local file system simultaneously.
46// They will coordinate using operating system file locks and may
47// duplicate effort but will not corrupt the cache.
48//
49// However, it is NOT safe for multiple processes on different machines
50// to share a cache directory (for example, if the directory were stored
51// in a network file system). File locking is notoriously unreliable in
52// network file systems and may not suffice to protect the cache.
53//
54func Open(dir string) (*Cache, error) {
55 info, err := os.Stat(dir)
56 if err != nil {
57 return nil, err
58 }
59 if !info.IsDir() {
60 return nil, &os.PathError{Op: "open", Path: dir, Err: fmt.Errorf("not a directory")}
61 }
62 for i := 0; i < 256; i++ {
63 name := filepath.Join(dir, fmt.Sprintf("%02x", i))
64 if err := os.MkdirAll(name, 0777); err != nil {
65 return nil, err
66 }
67 }
68 c := &Cache{
69 dir: dir,
70 now: time.Now,
71 }
72 return c, nil
73}
74
75// fileName returns the name of the file corresponding to the given id.
76func (c *Cache) fileName(id [HashSize]byte, key string) string {
77 return filepath.Join(c.dir, fmt.Sprintf("%02x", id[0]), fmt.Sprintf("%x", id)+"-"+key)
78}
79
80var errMissing = errors.New("cache entry not found")
81
82const (
83 // action entry file is "v1 <hex id> <hex out> <decimal size space-padded to 20 bytes> <unixnano space-padded to 20 bytes>\n"
84 hexSize = HashSize * 2
85 entrySize = 2 + 1 + hexSize + 1 + hexSize + 1 + 20 + 1 + 20 + 1
86)
87
88// verify controls whether to run the cache in verify mode.
89// In verify mode, the cache always returns errMissing from Get
90// but then double-checks in Put that the data being written
91// exactly matches any existing entry. This provides an easy
92// way to detect program behavior that would have been different
93// had the cache entry been returned from Get.
94//
95// verify is enabled by setting the environment variable
96// GODEBUG=gocacheverify=1.
97var verify = false
98
99// DebugTest is set when GODEBUG=gocachetest=1 is in the environment.
100var DebugTest = false
101
102func init() { initEnv() }
103
104func initEnv() {
105 verify = false
106 debugHash = false
107 debug := strings.Split(os.Getenv("GODEBUG"), ",")
108 for _, f := range debug {
109 if f == "gocacheverify=1" {
110 verify = true
111 }
112 if f == "gocachehash=1" {
113 debugHash = true
114 }
115 if f == "gocachetest=1" {
116 DebugTest = true
117 }
118 }
119}
120
121// Get looks up the action ID in the cache,
122// returning the corresponding output ID and file size, if any.
123// Note that finding an output ID does not guarantee that the
124// saved file for that output ID is still available.
125func (c *Cache) Get(id ActionID) (Entry, error) {
126 if verify {
127 return Entry{}, errMissing
128 }
129 return c.get(id)
130}
131
132type Entry struct {
133 OutputID OutputID
134 Size int64
135 Time time.Time
136}
137
138// get is Get but does not respect verify mode, so that Put can use it.
139func (c *Cache) get(id ActionID) (Entry, error) {
140 missing := func() (Entry, error) {
141 return Entry{}, errMissing
142 }
143 f, err := os.Open(c.fileName(id, "a"))
144 if err != nil {
145 return missing()
146 }
147 defer f.Close()
148 entry := make([]byte, entrySize+1) // +1 to detect whether f is too long
149 if n, err := io.ReadFull(f, entry); n != entrySize || err != io.ErrUnexpectedEOF {
150 return missing()
151 }
152 if entry[0] != 'v' || entry[1] != '1' || entry[2] != ' ' || entry[3+hexSize] != ' ' || entry[3+hexSize+1+hexSize] != ' ' || entry[3+hexSize+1+hexSize+1+20] != ' ' || entry[entrySize-1] != '\n' {
153 return missing()
154 }
155 eid, entry := entry[3:3+hexSize], entry[3+hexSize:]
156 eout, entry := entry[1:1+hexSize], entry[1+hexSize:]
157 esize, entry := entry[1:1+20], entry[1+20:]
158 //lint:ignore SA4006 See https://github.com/dominikh/go-tools/issues/465
159 etime, entry := entry[1:1+20], entry[1+20:]
160 var buf [HashSize]byte
161 if _, err := hex.Decode(buf[:], eid); err != nil || buf != id {
162 return missing()
163 }
164 if _, err := hex.Decode(buf[:], eout); err != nil {
165 return missing()
166 }
167 i := 0
168 for i < len(esize) && esize[i] == ' ' {
169 i++
170 }
171 size, err := strconv.ParseInt(string(esize[i:]), 10, 64)
172 if err != nil || size < 0 {
173 return missing()
174 }
175 i = 0
176 for i < len(etime) && etime[i] == ' ' {
177 i++
178 }
179 tm, err := strconv.ParseInt(string(etime[i:]), 10, 64)
180 if err != nil || size < 0 {
181 return missing()
182 }
183
184 c.used(c.fileName(id, "a"))
185
186 return Entry{buf, size, time.Unix(0, tm)}, nil
187}
188
189// GetFile looks up the action ID in the cache and returns
190// the name of the corresponding data file.
191func (c *Cache) GetFile(id ActionID) (file string, entry Entry, err error) {
192 entry, err = c.Get(id)
193 if err != nil {
194 return "", Entry{}, err
195 }
196 file = c.OutputFile(entry.OutputID)
197 info, err := os.Stat(file)
198 if err != nil || info.Size() != entry.Size {
199 return "", Entry{}, errMissing
200 }
201 return file, entry, nil
202}
203
204// GetBytes looks up the action ID in the cache and returns
205// the corresponding output bytes.
206// GetBytes should only be used for data that can be expected to fit in memory.
207func (c *Cache) GetBytes(id ActionID) ([]byte, Entry, error) {
208 entry, err := c.Get(id)
209 if err != nil {
210 return nil, entry, err
211 }
212 data, _ := ioutil.ReadFile(c.OutputFile(entry.OutputID))
213 if sha256.Sum256(data) != entry.OutputID {
214 return nil, entry, errMissing
215 }
216 return data, entry, nil
217}
218
219// OutputFile returns the name of the cache file storing output with the given OutputID.
220func (c *Cache) OutputFile(out OutputID) string {
221 file := c.fileName(out, "d")
222 c.used(file)
223 return file
224}
225
226// Time constants for cache expiration.
227//
228// We set the mtime on a cache file on each use, but at most one per mtimeInterval (1 hour),
229// to avoid causing many unnecessary inode updates. The mtimes therefore
230// roughly reflect "time of last use" but may in fact be older by at most an hour.
231//
232// We scan the cache for entries to delete at most once per trimInterval (1 day).
233//
234// When we do scan the cache, we delete entries that have not been used for
235// at least trimLimit (5 days). Statistics gathered from a month of usage by
236// Go developers found that essentially all reuse of cached entries happened
237// within 5 days of the previous reuse. See golang.org/issue/22990.
238const (
239 mtimeInterval = 1 * time.Hour
240 trimInterval = 24 * time.Hour
241 trimLimit = 5 * 24 * time.Hour
242)
243
244// used makes a best-effort attempt to update mtime on file,
245// so that mtime reflects cache access time.
246//
247// Because the reflection only needs to be approximate,
248// and to reduce the amount of disk activity caused by using
249// cache entries, used only updates the mtime if the current
250// mtime is more than an hour old. This heuristic eliminates
251// nearly all of the mtime updates that would otherwise happen,
252// while still keeping the mtimes useful for cache trimming.
253func (c *Cache) used(file string) {
254 info, err := os.Stat(file)
255 if err == nil && c.now().Sub(info.ModTime()) < mtimeInterval {
256 return
257 }
258 os.Chtimes(file, c.now(), c.now())
259}
260
261// Trim removes old cache entries that are likely not to be reused.
262func (c *Cache) Trim() {
263 now := c.now()
264
265 // We maintain in dir/trim.txt the time of the last completed cache trim.
266 // If the cache has been trimmed recently enough, do nothing.
267 // This is the common case.
268 data, _ := ioutil.ReadFile(filepath.Join(c.dir, "trim.txt"))
269 t, err := strconv.ParseInt(strings.TrimSpace(string(data)), 10, 64)
270 if err == nil && now.Sub(time.Unix(t, 0)) < trimInterval {
271 return
272 }
273
274 // Trim each of the 256 subdirectories.
275 // We subtract an additional mtimeInterval
276 // to account for the imprecision of our "last used" mtimes.
277 cutoff := now.Add(-trimLimit - mtimeInterval)
278 for i := 0; i < 256; i++ {
279 subdir := filepath.Join(c.dir, fmt.Sprintf("%02x", i))
280 c.trimSubdir(subdir, cutoff)
281 }
282
283 // Ignore errors from here: if we don't write the complete timestamp, the
284 // cache will appear older than it is, and we'll trim it again next time.
285 renameio.WriteFile(filepath.Join(c.dir, "trim.txt"), []byte(fmt.Sprintf("%d", now.Unix())))
286}
287
288// trimSubdir trims a single cache subdirectory.
289func (c *Cache) trimSubdir(subdir string, cutoff time.Time) {
290 // Read all directory entries from subdir before removing
291 // any files, in case removing files invalidates the file offset
292 // in the directory scan. Also, ignore error from f.Readdirnames,
293 // because we don't care about reporting the error and we still
294 // want to process any entries found before the error.
295 f, err := os.Open(subdir)
296 if err != nil {
297 return
298 }
299 names, _ := f.Readdirnames(-1)
300 f.Close()
301
302 for _, name := range names {
303 // Remove only cache entries (xxxx-a and xxxx-d).
304 if !strings.HasSuffix(name, "-a") && !strings.HasSuffix(name, "-d") {
305 continue
306 }
307 entry := filepath.Join(subdir, name)
308 info, err := os.Stat(entry)
309 if err == nil && info.ModTime().Before(cutoff) {
310 os.Remove(entry)
311 }
312 }
313}
314
315// putIndexEntry adds an entry to the cache recording that executing the action
316// with the given id produces an output with the given output id (hash) and size.
317func (c *Cache) putIndexEntry(id ActionID, out OutputID, size int64, allowVerify bool) error {
318 // Note: We expect that for one reason or another it may happen
319 // that repeating an action produces a different output hash
320 // (for example, if the output contains a time stamp or temp dir name).
321 // While not ideal, this is also not a correctness problem, so we
322 // don't make a big deal about it. In particular, we leave the action
323 // cache entries writable specifically so that they can be overwritten.
324 //
325 // Setting GODEBUG=gocacheverify=1 does make a big deal:
326 // in verify mode we are double-checking that the cache entries
327 // are entirely reproducible. As just noted, this may be unrealistic
328 // in some cases but the check is also useful for shaking out real bugs.
329 entry := []byte(fmt.Sprintf("v1 %x %x %20d %20d\n", id, out, size, time.Now().UnixNano()))
330 if verify && allowVerify {
331 old, err := c.get(id)
332 if err == nil && (old.OutputID != out || old.Size != size) {
333 // panic to show stack trace, so we can see what code is generating this cache entry.
334 msg := fmt.Sprintf("go: internal cache error: cache verify failed: id=%x changed:<<<\n%s\n>>>\nold: %x %d\nnew: %x %d", id, reverseHash(id), out, size, old.OutputID, old.Size)
335 panic(msg)
336 }
337 }
338 file := c.fileName(id, "a")
339 if err := ioutil.WriteFile(file, entry, 0666); err != nil {
340 // TODO(bcmills): This Remove potentially races with another go command writing to file.
341 // Can we eliminate it?
342 os.Remove(file)
343 return err
344 }
345 os.Chtimes(file, c.now(), c.now()) // mainly for tests
346
347 return nil
348}
349
350// Put stores the given output in the cache as the output for the action ID.
351// It may read file twice. The content of file must not change between the two passes.
352func (c *Cache) Put(id ActionID, file io.ReadSeeker) (OutputID, int64, error) {
353 return c.put(id, file, true)
354}
355
356// PutNoVerify is like Put but disables the verify check
357// when GODEBUG=goverifycache=1 is set.
358// It is meant for data that is OK to cache but that we expect to vary slightly from run to run,
359// like test output containing times and the like.
360func (c *Cache) PutNoVerify(id ActionID, file io.ReadSeeker) (OutputID, int64, error) {
361 return c.put(id, file, false)
362}
363
364func (c *Cache) put(id ActionID, file io.ReadSeeker, allowVerify bool) (OutputID, int64, error) {
365 // Compute output ID.
366 h := sha256.New()
367 if _, err := file.Seek(0, 0); err != nil {
368 return OutputID{}, 0, err
369 }
370 size, err := io.Copy(h, file)
371 if err != nil {
372 return OutputID{}, 0, err
373 }
374 var out OutputID
375 h.Sum(out[:0])
376
377 // Copy to cached output file (if not already present).
378 if err := c.copyFile(file, out, size); err != nil {
379 return out, size, err
380 }
381
382 // Add to cache index.
383 return out, size, c.putIndexEntry(id, out, size, allowVerify)
384}
385
386// PutBytes stores the given bytes in the cache as the output for the action ID.
387func (c *Cache) PutBytes(id ActionID, data []byte) error {
388 _, _, err := c.Put(id, bytes.NewReader(data))
389 return err
390}
391
392// copyFile copies file into the cache, expecting it to have the given
393// output ID and size, if that file is not present already.
394func (c *Cache) copyFile(file io.ReadSeeker, out OutputID, size int64) error {
395 name := c.fileName(out, "d")
396 info, err := os.Stat(name)
397 if err == nil && info.Size() == size {
398 // Check hash.
399 if f, err := os.Open(name); err == nil {
400 h := sha256.New()
401 io.Copy(h, f)
402 f.Close()
403 var out2 OutputID
404 h.Sum(out2[:0])
405 if out == out2 {
406 return nil
407 }
408 }
409 // Hash did not match. Fall through and rewrite file.
410 }
411
412 // Copy file to cache directory.
413 mode := os.O_RDWR | os.O_CREATE
414 if err == nil && info.Size() > size { // shouldn't happen but fix in case
415 mode |= os.O_TRUNC
416 }
417 f, err := os.OpenFile(name, mode, 0666)
418 if err != nil {
419 return err
420 }
421 defer f.Close()
422 if size == 0 {
423 // File now exists with correct size.
424 // Only one possible zero-length file, so contents are OK too.
425 // Early return here makes sure there's a "last byte" for code below.
426 return nil
427 }
428
429 // From here on, if any of the I/O writing the file fails,
430 // we make a best-effort attempt to truncate the file f
431 // before returning, to avoid leaving bad bytes in the file.
432
433 // Copy file to f, but also into h to double-check hash.
434 if _, err := file.Seek(0, 0); err != nil {
435 f.Truncate(0)
436 return err
437 }
438 h := sha256.New()
439 w := io.MultiWriter(f, h)
440 if _, err := io.CopyN(w, file, size-1); err != nil {
441 f.Truncate(0)
442 return err
443 }
444 // Check last byte before writing it; writing it will make the size match
445 // what other processes expect to find and might cause them to start
446 // using the file.
447 buf := make([]byte, 1)
448 if _, err := file.Read(buf); err != nil {
449 f.Truncate(0)
450 return err
451 }
452 h.Write(buf)
453 sum := h.Sum(nil)
454 if !bytes.Equal(sum, out[:]) {
455 f.Truncate(0)
456 return fmt.Errorf("file content changed underfoot")
457 }
458
459 // Commit cache file entry.
460 if _, err := f.Write(buf); err != nil {
461 f.Truncate(0)
462 return err
463 }
464 if err := f.Close(); err != nil {
465 // Data might not have been written,
466 // but file may look like it is the right size.
467 // To be extra careful, remove cached file.
468 os.Remove(name)
469 return err
470 }
471 os.Chtimes(name, c.now(), c.now()) // mainly for tests
472
473 return nil
474}
diff --git a/vendor/honnef.co/go/tools/internal/cache/default.go b/vendor/honnef.co/go/tools/internal/cache/default.go
new file mode 100644
index 0000000..3034f76
--- /dev/null
+++ b/vendor/honnef.co/go/tools/internal/cache/default.go
@@ -0,0 +1,85 @@
1// Copyright 2017 The Go Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style
3// license that can be found in the LICENSE file.
4
5package cache
6
7import (
8 "fmt"
9 "io/ioutil"
10 "log"
11 "os"
12 "path/filepath"
13 "sync"
14)
15
16// Default returns the default cache to use.
17func Default() (*Cache, error) {
18 defaultOnce.Do(initDefaultCache)
19 return defaultCache, defaultDirErr
20}
21
22var (
23 defaultOnce sync.Once
24 defaultCache *Cache
25)
26
27// cacheREADME is a message stored in a README in the cache directory.
28// Because the cache lives outside the normal Go trees, we leave the
29// README as a courtesy to explain where it came from.
30const cacheREADME = `This directory holds cached build artifacts from staticcheck.
31`
32
33// initDefaultCache does the work of finding the default cache
34// the first time Default is called.
35func initDefaultCache() {
36 dir := DefaultDir()
37 if err := os.MkdirAll(dir, 0777); err != nil {
38 log.Fatalf("failed to initialize build cache at %s: %s\n", dir, err)
39 }
40 if _, err := os.Stat(filepath.Join(dir, "README")); err != nil {
41 // Best effort.
42 ioutil.WriteFile(filepath.Join(dir, "README"), []byte(cacheREADME), 0666)
43 }
44
45 c, err := Open(dir)
46 if err != nil {
47 log.Fatalf("failed to initialize build cache at %s: %s\n", dir, err)
48 }
49 defaultCache = c
50}
51
52var (
53 defaultDirOnce sync.Once
54 defaultDir string
55 defaultDirErr error
56)
57
58// DefaultDir returns the effective STATICCHECK_CACHE setting.
59func DefaultDir() string {
60 // Save the result of the first call to DefaultDir for later use in
61 // initDefaultCache. cmd/go/main.go explicitly sets GOCACHE so that
62 // subprocesses will inherit it, but that means initDefaultCache can't
63 // otherwise distinguish between an explicit "off" and a UserCacheDir error.
64
65 defaultDirOnce.Do(func() {
66 defaultDir = os.Getenv("STATICCHECK_CACHE")
67 if filepath.IsAbs(defaultDir) {
68 return
69 }
70 if defaultDir != "" {
71 defaultDirErr = fmt.Errorf("STATICCHECK_CACHE is not an absolute path")
72 return
73 }
74
75 // Compute default location.
76 dir, err := os.UserCacheDir()
77 if err != nil {
78 defaultDirErr = fmt.Errorf("STATICCHECK_CACHE is not defined and %v", err)
79 return
80 }
81 defaultDir = filepath.Join(dir, "staticcheck")
82 })
83
84 return defaultDir
85}
diff --git a/vendor/honnef.co/go/tools/internal/cache/hash.go b/vendor/honnef.co/go/tools/internal/cache/hash.go
new file mode 100644
index 0000000..a53543e
--- /dev/null
+++ b/vendor/honnef.co/go/tools/internal/cache/hash.go
@@ -0,0 +1,176 @@
1// Copyright 2017 The Go Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style
3// license that can be found in the LICENSE file.
4
5package cache
6
7import (
8 "bytes"
9 "crypto/sha256"
10 "fmt"
11 "hash"
12 "io"
13 "os"
14 "sync"
15)
16
17var debugHash = false // set when GODEBUG=gocachehash=1
18
19// HashSize is the number of bytes in a hash.
20const HashSize = 32
21
22// A Hash provides access to the canonical hash function used to index the cache.
23// The current implementation uses salted SHA256, but clients must not assume this.
24type Hash struct {
25 h hash.Hash
26 name string // for debugging
27 buf *bytes.Buffer // for verify
28}
29
30// hashSalt is a salt string added to the beginning of every hash
31// created by NewHash. Using the Staticcheck version makes sure that different
32// versions of the command do not address the same cache
33// entries, so that a bug in one version does not affect the execution
34// of other versions. This salt will result in additional ActionID files
35// in the cache, but not additional copies of the large output files,
36// which are still addressed by unsalted SHA256.
37var hashSalt []byte
38
39func SetSalt(b []byte) {
40 hashSalt = b
41}
42
43// Subkey returns an action ID corresponding to mixing a parent
44// action ID with a string description of the subkey.
45func Subkey(parent ActionID, desc string) ActionID {
46 h := sha256.New()
47 h.Write([]byte("subkey:"))
48 h.Write(parent[:])
49 h.Write([]byte(desc))
50 var out ActionID
51 h.Sum(out[:0])
52 if debugHash {
53 fmt.Fprintf(os.Stderr, "HASH subkey %x %q = %x\n", parent, desc, out)
54 }
55 if verify {
56 hashDebug.Lock()
57 hashDebug.m[out] = fmt.Sprintf("subkey %x %q", parent, desc)
58 hashDebug.Unlock()
59 }
60 return out
61}
62
63// NewHash returns a new Hash.
64// The caller is expected to Write data to it and then call Sum.
65func NewHash(name string) *Hash {
66 h := &Hash{h: sha256.New(), name: name}
67 if debugHash {
68 fmt.Fprintf(os.Stderr, "HASH[%s]\n", h.name)
69 }
70 h.Write(hashSalt)
71 if verify {
72 h.buf = new(bytes.Buffer)
73 }
74 return h
75}
76
77// Write writes data to the running hash.
78func (h *Hash) Write(b []byte) (int, error) {
79 if debugHash {
80 fmt.Fprintf(os.Stderr, "HASH[%s]: %q\n", h.name, b)
81 }
82 if h.buf != nil {
83 h.buf.Write(b)
84 }
85 return h.h.Write(b)
86}
87
88// Sum returns the hash of the data written previously.
89func (h *Hash) Sum() [HashSize]byte {
90 var out [HashSize]byte
91 h.h.Sum(out[:0])
92 if debugHash {
93 fmt.Fprintf(os.Stderr, "HASH[%s]: %x\n", h.name, out)
94 }
95 if h.buf != nil {
96 hashDebug.Lock()
97 if hashDebug.m == nil {
98 hashDebug.m = make(map[[HashSize]byte]string)
99 }
100 hashDebug.m[out] = h.buf.String()
101 hashDebug.Unlock()
102 }
103 return out
104}
105
106// In GODEBUG=gocacheverify=1 mode,
107// hashDebug holds the input to every computed hash ID,
108// so that we can work backward from the ID involved in a
109// cache entry mismatch to a description of what should be there.
110var hashDebug struct {
111 sync.Mutex
112 m map[[HashSize]byte]string
113}
114
115// reverseHash returns the input used to compute the hash id.
116func reverseHash(id [HashSize]byte) string {
117 hashDebug.Lock()
118 s := hashDebug.m[id]
119 hashDebug.Unlock()
120 return s
121}
122
123var hashFileCache struct {
124 sync.Mutex
125 m map[string][HashSize]byte
126}
127
128// FileHash returns the hash of the named file.
129// It caches repeated lookups for a given file,
130// and the cache entry for a file can be initialized
131// using SetFileHash.
132// The hash used by FileHash is not the same as
133// the hash used by NewHash.
134func FileHash(file string) ([HashSize]byte, error) {
135 hashFileCache.Lock()
136 out, ok := hashFileCache.m[file]
137 hashFileCache.Unlock()
138
139 if ok {
140 return out, nil
141 }
142
143 h := sha256.New()
144 f, err := os.Open(file)
145 if err != nil {
146 if debugHash {
147 fmt.Fprintf(os.Stderr, "HASH %s: %v\n", file, err)
148 }
149 return [HashSize]byte{}, err
150 }
151 _, err = io.Copy(h, f)
152 f.Close()
153 if err != nil {
154 if debugHash {
155 fmt.Fprintf(os.Stderr, "HASH %s: %v\n", file, err)
156 }
157 return [HashSize]byte{}, err
158 }
159 h.Sum(out[:0])
160 if debugHash {
161 fmt.Fprintf(os.Stderr, "HASH %s: %x\n", file, out)
162 }
163
164 SetFileHash(file, out)
165 return out, nil
166}
167
168// SetFileHash sets the hash returned by FileHash for file.
169func SetFileHash(file string, sum [HashSize]byte) {
170 hashFileCache.Lock()
171 if hashFileCache.m == nil {
172 hashFileCache.m = make(map[string][HashSize]byte)
173 }
174 hashFileCache.m[file] = sum
175 hashFileCache.Unlock()
176}
diff --git a/vendor/honnef.co/go/tools/internal/passes/buildssa/buildssa.go b/vendor/honnef.co/go/tools/internal/passes/buildssa/buildssa.go
new file mode 100644
index 0000000..fde918d
--- /dev/null
+++ b/vendor/honnef.co/go/tools/internal/passes/buildssa/buildssa.go
@@ -0,0 +1,116 @@
1// Copyright 2018 The Go Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style
3// license that can be found in the LICENSE file.
4
5// Package buildssa defines an Analyzer that constructs the SSA
6// representation of an error-free package and returns the set of all
7// functions within it. It does not report any diagnostics itself but
8// may be used as an input to other analyzers.
9//
10// THIS INTERFACE IS EXPERIMENTAL AND MAY BE SUBJECT TO INCOMPATIBLE CHANGE.
11package buildssa
12
13import (
14 "go/ast"
15 "go/types"
16 "reflect"
17
18 "golang.org/x/tools/go/analysis"
19 "honnef.co/go/tools/ssa"
20)
21
22var Analyzer = &analysis.Analyzer{
23 Name: "buildssa",
24 Doc: "build SSA-form IR for later passes",
25 Run: run,
26 ResultType: reflect.TypeOf(new(SSA)),
27}
28
29// SSA provides SSA-form intermediate representation for all the
30// non-blank source functions in the current package.
31type SSA struct {
32 Pkg *ssa.Package
33 SrcFuncs []*ssa.Function
34}
35
36func run(pass *analysis.Pass) (interface{}, error) {
37 // Plundered from ssautil.BuildPackage.
38
39 // We must create a new Program for each Package because the
40 // analysis API provides no place to hang a Program shared by
41 // all Packages. Consequently, SSA Packages and Functions do not
42 // have a canonical representation across an analysis session of
43 // multiple packages. This is unlikely to be a problem in
44 // practice because the analysis API essentially forces all
45 // packages to be analysed independently, so any given call to
46 // Analysis.Run on a package will see only SSA objects belonging
47 // to a single Program.
48
49 mode := ssa.GlobalDebug
50
51 prog := ssa.NewProgram(pass.Fset, mode)
52
53 // Create SSA packages for all imports.
54 // Order is not significant.
55 created := make(map[*types.Package]bool)
56 var createAll func(pkgs []*types.Package)
57 createAll = func(pkgs []*types.Package) {
58 for _, p := range pkgs {
59 if !created[p] {
60 created[p] = true
61 prog.CreatePackage(p, nil, nil, true)
62 createAll(p.Imports())
63 }
64 }
65 }
66 createAll(pass.Pkg.Imports())
67
68 // Create and build the primary package.
69 ssapkg := prog.CreatePackage(pass.Pkg, pass.Files, pass.TypesInfo, false)
70 ssapkg.Build()
71
72 // Compute list of source functions, including literals,
73 // in source order.
74 var funcs []*ssa.Function
75 var addAnons func(f *ssa.Function)
76 addAnons = func(f *ssa.Function) {
77 funcs = append(funcs, f)
78 for _, anon := range f.AnonFuncs {
79 addAnons(anon)
80 }
81 }
82 addAnons(ssapkg.Members["init"].(*ssa.Function))
83 for _, f := range pass.Files {
84 for _, decl := range f.Decls {
85 if fdecl, ok := decl.(*ast.FuncDecl); ok {
86
87 // SSA will not build a Function
88 // for a FuncDecl named blank.
89 // That's arguably too strict but
90 // relaxing it would break uniqueness of
91 // names of package members.
92 if fdecl.Name.Name == "_" {
93 continue
94 }
95
96 // (init functions have distinct Func
97 // objects named "init" and distinct
98 // ssa.Functions named "init#1", ...)
99
100 fn := pass.TypesInfo.Defs[fdecl.Name].(*types.Func)
101 if fn == nil {
102 panic(fn)
103 }
104
105 f := ssapkg.Prog.FuncValue(fn)
106 if f == nil {
107 panic(fn)
108 }
109
110 addAnons(f)
111 }
112 }
113 }
114
115 return &SSA{Pkg: ssapkg, SrcFuncs: funcs}, nil
116}
diff --git a/vendor/honnef.co/go/tools/internal/renameio/renameio.go b/vendor/honnef.co/go/tools/internal/renameio/renameio.go
new file mode 100644
index 0000000..3f3f170
--- /dev/null
+++ b/vendor/honnef.co/go/tools/internal/renameio/renameio.go
@@ -0,0 +1,83 @@
1// Copyright 2018 The Go Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style
3// license that can be found in the LICENSE file.
4
5// Package renameio writes files atomically by renaming temporary files.
6package renameio
7
8import (
9 "bytes"
10 "io"
11 "io/ioutil"
12 "os"
13 "path/filepath"
14 "runtime"
15 "strings"
16 "time"
17)
18
19const patternSuffix = "*.tmp"
20
21// Pattern returns a glob pattern that matches the unrenamed temporary files
22// created when writing to filename.
23func Pattern(filename string) string {
24 return filepath.Join(filepath.Dir(filename), filepath.Base(filename)+patternSuffix)
25}
26
27// WriteFile is like ioutil.WriteFile, but first writes data to an arbitrary
28// file in the same directory as filename, then renames it atomically to the
29// final name.
30//
31// That ensures that the final location, if it exists, is always a complete file.
32func WriteFile(filename string, data []byte) (err error) {
33 return WriteToFile(filename, bytes.NewReader(data))
34}
35
36// WriteToFile is a variant of WriteFile that accepts the data as an io.Reader
37// instead of a slice.
38func WriteToFile(filename string, data io.Reader) (err error) {
39 f, err := ioutil.TempFile(filepath.Dir(filename), filepath.Base(filename)+patternSuffix)
40 if err != nil {
41 return err
42 }
43 defer func() {
44 // Only call os.Remove on f.Name() if we failed to rename it: otherwise,
45 // some other process may have created a new file with the same name after
46 // that.
47 if err != nil {
48 f.Close()
49 os.Remove(f.Name())
50 }
51 }()
52
53 if _, err := io.Copy(f, data); err != nil {
54 return err
55 }
56 // Sync the file before renaming it: otherwise, after a crash the reader may
57 // observe a 0-length file instead of the actual contents.
58 // See https://golang.org/issue/22397#issuecomment-380831736.
59 if err := f.Sync(); err != nil {
60 return err
61 }
62 if err := f.Close(); err != nil {
63 return err
64 }
65
66 var start time.Time
67 for {
68 err := os.Rename(f.Name(), filename)
69 if err == nil || runtime.GOOS != "windows" || !strings.HasSuffix(err.Error(), "Access is denied.") {
70 return err
71 }
72
73 // Windows seems to occasionally trigger spurious "Access is denied" errors
74 // here (see golang.org/issue/31247). We're not sure why. It's probably
75 // worth a little extra latency to avoid propagating the spurious errors.
76 if start.IsZero() {
77 start = time.Now()
78 } else if time.Since(start) >= 500*time.Millisecond {
79 return err
80 }
81 time.Sleep(5 * time.Millisecond)
82 }
83}
diff --git a/vendor/honnef.co/go/tools/internal/sharedcheck/lint.go b/vendor/honnef.co/go/tools/internal/sharedcheck/lint.go
new file mode 100644
index 0000000..affee66
--- /dev/null
+++ b/vendor/honnef.co/go/tools/internal/sharedcheck/lint.go
@@ -0,0 +1,70 @@
1package sharedcheck
2
3import (
4 "go/ast"
5 "go/types"
6
7 "golang.org/x/tools/go/analysis"
8 "honnef.co/go/tools/internal/passes/buildssa"
9 . "honnef.co/go/tools/lint/lintdsl"
10 "honnef.co/go/tools/ssa"
11)
12
13func CheckRangeStringRunes(pass *analysis.Pass) (interface{}, error) {
14 for _, ssafn := range pass.ResultOf[buildssa.Analyzer].(*buildssa.SSA).SrcFuncs {
15 fn := func(node ast.Node) bool {
16 rng, ok := node.(*ast.RangeStmt)
17 if !ok || !IsBlank(rng.Key) {
18 return true
19 }
20
21 v, _ := ssafn.ValueForExpr(rng.X)
22
23 // Check that we're converting from string to []rune
24 val, _ := v.(*ssa.Convert)
25 if val == nil {
26 return true
27 }
28 Tsrc, ok := val.X.Type().(*types.Basic)
29 if !ok || Tsrc.Kind() != types.String {
30 return true
31 }
32 Tdst, ok := val.Type().(*types.Slice)
33 if !ok {
34 return true
35 }
36 TdstElem, ok := Tdst.Elem().(*types.Basic)
37 if !ok || TdstElem.Kind() != types.Int32 {
38 return true
39 }
40
41 // Check that the result of the conversion is only used to
42 // range over
43 refs := val.Referrers()
44 if refs == nil {
45 return true
46 }
47
48 // Expect two refs: one for obtaining the length of the slice,
49 // one for accessing the elements
50 if len(FilterDebug(*refs)) != 2 {
51 // TODO(dh): right now, we check that only one place
52 // refers to our slice. This will miss cases such as
53 // ranging over the slice twice. Ideally, we'd ensure that
54 // the slice is only used for ranging over (without
55 // accessing the key), but that is harder to do because in
56 // SSA form, ranging over a slice looks like an ordinary
57 // loop with index increments and slice accesses. We'd
58 // have to look at the associated AST node to check that
59 // it's a range statement.
60 return true
61 }
62
63 pass.Reportf(rng.Pos(), "should range over string, not []rune(string)")
64
65 return true
66 }
67 Inspect(ssafn.Syntax(), fn)
68 }
69 return nil, nil
70}
diff --git a/vendor/honnef.co/go/tools/lint/LICENSE b/vendor/honnef.co/go/tools/lint/LICENSE
new file mode 100644
index 0000000..796130a
--- /dev/null
+++ b/vendor/honnef.co/go/tools/lint/LICENSE
@@ -0,0 +1,28 @@
1Copyright (c) 2013 The Go Authors. All rights reserved.
2Copyright (c) 2016 Dominik Honnef. All rights reserved.
3
4Redistribution and use in source and binary forms, with or without
5modification, are permitted provided that the following conditions are
6met:
7
8 * Redistributions of source code must retain the above copyright
9notice, this list of conditions and the following disclaimer.
10 * Redistributions in binary form must reproduce the above
11copyright notice, this list of conditions and the following disclaimer
12in the documentation and/or other materials provided with the
13distribution.
14 * Neither the name of Google Inc. nor the names of its
15contributors may be used to endorse or promote products derived from
16this software without specific prior written permission.
17
18THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
19"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
20LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
21A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
22OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
23SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
24LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
25DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
26THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
27(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
28OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/vendor/honnef.co/go/tools/lint/lint.go b/vendor/honnef.co/go/tools/lint/lint.go
new file mode 100644
index 0000000..de5a8f1
--- /dev/null
+++ b/vendor/honnef.co/go/tools/lint/lint.go
@@ -0,0 +1,491 @@
1// Package lint provides the foundation for tools like staticcheck
2package lint // import "honnef.co/go/tools/lint"
3
4import (
5 "bytes"
6 "fmt"
7 "go/scanner"
8 "go/token"
9 "go/types"
10 "path/filepath"
11 "sort"
12 "strings"
13 "sync"
14 "sync/atomic"
15 "unicode"
16
17 "golang.org/x/tools/go/analysis"
18 "golang.org/x/tools/go/packages"
19 "honnef.co/go/tools/config"
20)
21
22type Documentation struct {
23 Title string
24 Text string
25 Since string
26 NonDefault bool
27 Options []string
28}
29
30func (doc *Documentation) String() string {
31 b := &strings.Builder{}
32 fmt.Fprintf(b, "%s\n\n", doc.Title)
33 if doc.Text != "" {
34 fmt.Fprintf(b, "%s\n\n", doc.Text)
35 }
36 fmt.Fprint(b, "Available since\n ")
37 if doc.Since == "" {
38 fmt.Fprint(b, "unreleased")
39 } else {
40 fmt.Fprintf(b, "%s", doc.Since)
41 }
42 if doc.NonDefault {
43 fmt.Fprint(b, ", non-default")
44 }
45 fmt.Fprint(b, "\n")
46 if len(doc.Options) > 0 {
47 fmt.Fprintf(b, "\nOptions\n")
48 for _, opt := range doc.Options {
49 fmt.Fprintf(b, " %s", opt)
50 }
51 fmt.Fprint(b, "\n")
52 }
53 return b.String()
54}
55
56type Ignore interface {
57 Match(p Problem) bool
58}
59
60type LineIgnore struct {
61 File string
62 Line int
63 Checks []string
64 Matched bool
65 Pos token.Pos
66}
67
68func (li *LineIgnore) Match(p Problem) bool {
69 pos := p.Pos
70 if pos.Filename != li.File || pos.Line != li.Line {
71 return false
72 }
73 for _, c := range li.Checks {
74 if m, _ := filepath.Match(c, p.Check); m {
75 li.Matched = true
76 return true
77 }
78 }
79 return false
80}
81
82func (li *LineIgnore) String() string {
83 matched := "not matched"
84 if li.Matched {
85 matched = "matched"
86 }
87 return fmt.Sprintf("%s:%d %s (%s)", li.File, li.Line, strings.Join(li.Checks, ", "), matched)
88}
89
90type FileIgnore struct {
91 File string
92 Checks []string
93}
94
95func (fi *FileIgnore) Match(p Problem) bool {
96 if p.Pos.Filename != fi.File {
97 return false
98 }
99 for _, c := range fi.Checks {
100 if m, _ := filepath.Match(c, p.Check); m {
101 return true
102 }
103 }
104 return false
105}
106
107type Severity uint8
108
109const (
110 Error Severity = iota
111 Warning
112 Ignored
113)
114
115// Problem represents a problem in some source code.
116type Problem struct {
117 Pos token.Position
118 End token.Position
119 Message string
120 Check string
121 Severity Severity
122}
123
124func (p *Problem) String() string {
125 return fmt.Sprintf("%s (%s)", p.Message, p.Check)
126}
127
128// A Linter lints Go source code.
129type Linter struct {
130 Checkers []*analysis.Analyzer
131 CumulativeCheckers []CumulativeChecker
132 GoVersion int
133 Config config.Config
134 Stats Stats
135}
136
137type CumulativeChecker interface {
138 Analyzer() *analysis.Analyzer
139 Result() []types.Object
140 ProblemObject(*token.FileSet, types.Object) Problem
141}
142
143func (l *Linter) Lint(cfg *packages.Config, patterns []string) ([]Problem, error) {
144 var allAnalyzers []*analysis.Analyzer
145 allAnalyzers = append(allAnalyzers, l.Checkers...)
146 for _, cum := range l.CumulativeCheckers {
147 allAnalyzers = append(allAnalyzers, cum.Analyzer())
148 }
149
150 // The -checks command line flag overrules all configuration
151 // files, which means that for `-checks="foo"`, no check other
152 // than foo can ever be reported to the user. Make use of this
153 // fact to cull the list of analyses we need to run.
154
155 // replace "inherit" with "all", as we don't want to base the
156 // list of all checks on the default configuration, which
157 // disables certain checks.
158 checks := make([]string, len(l.Config.Checks))
159 copy(checks, l.Config.Checks)
160 for i, c := range checks {
161 if c == "inherit" {
162 checks[i] = "all"
163 }
164 }
165
166 allowed := FilterChecks(allAnalyzers, checks)
167 var allowedAnalyzers []*analysis.Analyzer
168 for _, c := range l.Checkers {
169 if allowed[c.Name] {
170 allowedAnalyzers = append(allowedAnalyzers, c)
171 }
172 }
173 hasCumulative := false
174 for _, cum := range l.CumulativeCheckers {
175 a := cum.Analyzer()
176 if allowed[a.Name] {
177 hasCumulative = true
178 allowedAnalyzers = append(allowedAnalyzers, a)
179 }
180 }
181
182 r, err := NewRunner(&l.Stats)
183 if err != nil {
184 return nil, err
185 }
186 r.goVersion = l.GoVersion
187
188 pkgs, err := r.Run(cfg, patterns, allowedAnalyzers, hasCumulative)
189 if err != nil {
190 return nil, err
191 }
192
193 tpkgToPkg := map[*types.Package]*Package{}
194 for _, pkg := range pkgs {
195 tpkgToPkg[pkg.Types] = pkg
196
197 for _, e := range pkg.errs {
198 switch e := e.(type) {
199 case types.Error:
200 p := Problem{
201 Pos: e.Fset.PositionFor(e.Pos, false),
202 Message: e.Msg,
203 Severity: Error,
204 Check: "compile",
205 }
206 pkg.problems = append(pkg.problems, p)
207 case packages.Error:
208 msg := e.Msg
209 if len(msg) != 0 && msg[0] == '\n' {
210 // TODO(dh): See https://github.com/golang/go/issues/32363
211 msg = msg[1:]
212 }
213
214 var pos token.Position
215 if e.Pos == "" {
216 // Under certain conditions (malformed package
217 // declarations, multiple packages in the same
218 // directory), go list emits an error on stderr
219 // instead of JSON. Those errors do not have
220 // associated position information in
221 // go/packages.Error, even though the output on
222 // stderr may contain it.
223 if p, n, err := parsePos(msg); err == nil {
224 if abs, err := filepath.Abs(p.Filename); err == nil {
225 p.Filename = abs
226 }
227 pos = p
228 msg = msg[n+2:]
229 }
230 } else {
231 var err error
232 pos, _, err = parsePos(e.Pos)
233 if err != nil {
234 panic(fmt.Sprintf("internal error: %s", e))
235 }
236 }
237 p := Problem{
238 Pos: pos,
239 Message: msg,
240 Severity: Error,
241 Check: "compile",
242 }
243 pkg.problems = append(pkg.problems, p)
244 case scanner.ErrorList:
245 for _, e := range e {
246 p := Problem{
247 Pos: e.Pos,
248 Message: e.Msg,
249 Severity: Error,
250 Check: "compile",
251 }
252 pkg.problems = append(pkg.problems, p)
253 }
254 case error:
255 p := Problem{
256 Pos: token.Position{},
257 Message: e.Error(),
258 Severity: Error,
259 Check: "compile",
260 }
261 pkg.problems = append(pkg.problems, p)
262 }
263 }
264 }
265
266 atomic.StoreUint32(&r.stats.State, StateCumulative)
267 var problems []Problem
268 for _, cum := range l.CumulativeCheckers {
269 for _, res := range cum.Result() {
270 pkg := tpkgToPkg[res.Pkg()]
271 allowedChecks := FilterChecks(allowedAnalyzers, pkg.cfg.Merge(l.Config).Checks)
272 if allowedChecks[cum.Analyzer().Name] {
273 pos := DisplayPosition(pkg.Fset, res.Pos())
274 // FIXME(dh): why are we ignoring generated files
275 // here? Surely this is specific to 'unused', not all
276 // cumulative checkers
277 if _, ok := pkg.gen[pos.Filename]; ok {
278 continue
279 }
280 p := cum.ProblemObject(pkg.Fset, res)
281 problems = append(problems, p)
282 }
283 }
284 }
285
286 for _, pkg := range pkgs {
287 for _, ig := range pkg.ignores {
288 for i := range pkg.problems {
289 p := &pkg.problems[i]
290 if ig.Match(*p) {
291 p.Severity = Ignored
292 }
293 }
294 for i := range problems {
295 p := &problems[i]
296 if ig.Match(*p) {
297 p.Severity = Ignored
298 }
299 }
300 }
301
302 if pkg.cfg == nil {
303 // The package failed to load, otherwise we would have a
304 // valid config. Pass through all errors.
305 problems = append(problems, pkg.problems...)
306 } else {
307 for _, p := range pkg.problems {
308 allowedChecks := FilterChecks(allowedAnalyzers, pkg.cfg.Merge(l.Config).Checks)
309 allowedChecks["compile"] = true
310 if allowedChecks[p.Check] {
311 problems = append(problems, p)
312 }
313 }
314 }
315
316 for _, ig := range pkg.ignores {
317 ig, ok := ig.(*LineIgnore)
318 if !ok {
319 continue
320 }
321 if ig.Matched {
322 continue
323 }
324
325 couldveMatched := false
326 allowedChecks := FilterChecks(allowedAnalyzers, pkg.cfg.Merge(l.Config).Checks)
327 for _, c := range ig.Checks {
328 if !allowedChecks[c] {
329 continue
330 }
331 couldveMatched = true
332 break
333 }
334
335 if !couldveMatched {
336 // The ignored checks were disabled for the containing package.
337 // Don't flag the ignore for not having matched.
338 continue
339 }
340 p := Problem{
341 Pos: DisplayPosition(pkg.Fset, ig.Pos),
342 Message: "this linter directive didn't match anything; should it be removed?",
343 Check: "",
344 }
345 problems = append(problems, p)
346 }
347 }
348
349 if len(problems) == 0 {
350 return nil, nil
351 }
352
353 sort.Slice(problems, func(i, j int) bool {
354 pi := problems[i].Pos
355 pj := problems[j].Pos
356
357 if pi.Filename != pj.Filename {
358 return pi.Filename < pj.Filename
359 }
360 if pi.Line != pj.Line {
361 return pi.Line < pj.Line
362 }
363 if pi.Column != pj.Column {
364 return pi.Column < pj.Column
365 }
366
367 return problems[i].Message < problems[j].Message
368 })
369
370 var out []Problem
371 out = append(out, problems[0])
372 for i, p := range problems[1:] {
373 // We may encounter duplicate problems because one file
374 // can be part of many packages.
375 if problems[i] != p {
376 out = append(out, p)
377 }
378 }
379 return out, nil
380}
381
382func FilterChecks(allChecks []*analysis.Analyzer, checks []string) map[string]bool {
383 // OPT(dh): this entire computation could be cached per package
384 allowedChecks := map[string]bool{}
385
386 for _, check := range checks {
387 b := true
388 if len(check) > 1 && check[0] == '-' {
389 b = false
390 check = check[1:]
391 }
392 if check == "*" || check == "all" {
393 // Match all
394 for _, c := range allChecks {
395 allowedChecks[c.Name] = b
396 }
397 } else if strings.HasSuffix(check, "*") {
398 // Glob
399 prefix := check[:len(check)-1]
400 isCat := strings.IndexFunc(prefix, func(r rune) bool { return unicode.IsNumber(r) }) == -1
401
402 for _, c := range allChecks {
403 idx := strings.IndexFunc(c.Name, func(r rune) bool { return unicode.IsNumber(r) })
404 if isCat {
405 // Glob is S*, which should match S1000 but not SA1000
406 cat := c.Name[:idx]
407 if prefix == cat {
408 allowedChecks[c.Name] = b
409 }
410 } else {
411 // Glob is S1*
412 if strings.HasPrefix(c.Name, prefix) {
413 allowedChecks[c.Name] = b
414 }
415 }
416 }
417 } else {
418 // Literal check name
419 allowedChecks[check] = b
420 }
421 }
422 return allowedChecks
423}
424
425type Positioner interface {
426 Pos() token.Pos
427}
428
429func DisplayPosition(fset *token.FileSet, p token.Pos) token.Position {
430 if p == token.NoPos {
431 return token.Position{}
432 }
433
434 // Only use the adjusted position if it points to another Go file.
435 // This means we'll point to the original file for cgo files, but
436 // we won't point to a YACC grammar file.
437 pos := fset.PositionFor(p, false)
438 adjPos := fset.PositionFor(p, true)
439
440 if filepath.Ext(adjPos.Filename) == ".go" {
441 return adjPos
442 }
443 return pos
444}
445
446var bufferPool = &sync.Pool{
447 New: func() interface{} {
448 buf := bytes.NewBuffer(nil)
449 buf.Grow(64)
450 return buf
451 },
452}
453
454func FuncName(f *types.Func) string {
455 buf := bufferPool.Get().(*bytes.Buffer)
456 buf.Reset()
457 if f.Type() != nil {
458 sig := f.Type().(*types.Signature)
459 if recv := sig.Recv(); recv != nil {
460 buf.WriteByte('(')
461 if _, ok := recv.Type().(*types.Interface); ok {
462 // gcimporter creates abstract methods of
463 // named interfaces using the interface type
464 // (not the named type) as the receiver.
465 // Don't print it in full.
466 buf.WriteString("interface")
467 } else {
468 types.WriteType(buf, recv.Type(), nil)
469 }
470 buf.WriteByte(')')
471 buf.WriteByte('.')
472 } else if f.Pkg() != nil {
473 writePackage(buf, f.Pkg())
474 }
475 }
476 buf.WriteString(f.Name())
477 s := buf.String()
478 bufferPool.Put(buf)
479 return s
480}
481
482func writePackage(buf *bytes.Buffer, pkg *types.Package) {
483 if pkg == nil {
484 return
485 }
486 s := pkg.Path()
487 if s != "" {
488 buf.WriteString(s)
489 buf.WriteByte('.')
490 }
491}
diff --git a/vendor/honnef.co/go/tools/lint/lintdsl/lintdsl.go b/vendor/honnef.co/go/tools/lint/lintdsl/lintdsl.go
new file mode 100644
index 0000000..3b939e9
--- /dev/null
+++ b/vendor/honnef.co/go/tools/lint/lintdsl/lintdsl.go
@@ -0,0 +1,400 @@
1// Package lintdsl provides helpers for implementing static analysis
2// checks. Dot-importing this package is encouraged.
3package lintdsl
4
5import (
6 "bytes"
7 "flag"
8 "fmt"
9 "go/ast"
10 "go/constant"
11 "go/printer"
12 "go/token"
13 "go/types"
14 "strings"
15
16 "golang.org/x/tools/go/analysis"
17 "honnef.co/go/tools/facts"
18 "honnef.co/go/tools/lint"
19 "honnef.co/go/tools/ssa"
20)
21
22type packager interface {
23 Package() *ssa.Package
24}
25
26func CallName(call *ssa.CallCommon) string {
27 if call.IsInvoke() {
28 return ""
29 }
30 switch v := call.Value.(type) {
31 case *ssa.Function:
32 fn, ok := v.Object().(*types.Func)
33 if !ok {
34 return ""
35 }
36 return lint.FuncName(fn)
37 case *ssa.Builtin:
38 return v.Name()
39 }
40 return ""
41}
42
43func IsCallTo(call *ssa.CallCommon, name string) bool { return CallName(call) == name }
44func IsType(T types.Type, name string) bool { return types.TypeString(T, nil) == name }
45
46func FilterDebug(instr []ssa.Instruction) []ssa.Instruction {
47 var out []ssa.Instruction
48 for _, ins := range instr {
49 if _, ok := ins.(*ssa.DebugRef); !ok {
50 out = append(out, ins)
51 }
52 }
53 return out
54}
55
56func IsExample(fn *ssa.Function) bool {
57 if !strings.HasPrefix(fn.Name(), "Example") {
58 return false
59 }
60 f := fn.Prog.Fset.File(fn.Pos())
61 if f == nil {
62 return false
63 }
64 return strings.HasSuffix(f.Name(), "_test.go")
65}
66
67func IsPointerLike(T types.Type) bool {
68 switch T := T.Underlying().(type) {
69 case *types.Interface, *types.Chan, *types.Map, *types.Signature, *types.Pointer:
70 return true
71 case *types.Basic:
72 return T.Kind() == types.UnsafePointer
73 }
74 return false
75}
76
77func IsIdent(expr ast.Expr, ident string) bool {
78 id, ok := expr.(*ast.Ident)
79 return ok && id.Name == ident
80}
81
82// isBlank returns whether id is the blank identifier "_".
83// If id == nil, the answer is false.
84func IsBlank(id ast.Expr) bool {
85 ident, _ := id.(*ast.Ident)
86 return ident != nil && ident.Name == "_"
87}
88
89func IsIntLiteral(expr ast.Expr, literal string) bool {
90 lit, ok := expr.(*ast.BasicLit)
91 return ok && lit.Kind == token.INT && lit.Value == literal
92}
93
94// Deprecated: use IsIntLiteral instead
95func IsZero(expr ast.Expr) bool {
96 return IsIntLiteral(expr, "0")
97}
98
99func IsOfType(pass *analysis.Pass, expr ast.Expr, name string) bool {
100 return IsType(pass.TypesInfo.TypeOf(expr), name)
101}
102
103func IsInTest(pass *analysis.Pass, node lint.Positioner) bool {
104 // FIXME(dh): this doesn't work for global variables with
105 // initializers
106 f := pass.Fset.File(node.Pos())
107 return f != nil && strings.HasSuffix(f.Name(), "_test.go")
108}
109
110func IsInMain(pass *analysis.Pass, node lint.Positioner) bool {
111 if node, ok := node.(packager); ok {
112 return node.Package().Pkg.Name() == "main"
113 }
114 return pass.Pkg.Name() == "main"
115}
116
117func SelectorName(pass *analysis.Pass, expr *ast.SelectorExpr) string {
118 info := pass.TypesInfo
119 sel := info.Selections[expr]
120 if sel == nil {
121 if x, ok := expr.X.(*ast.Ident); ok {
122 pkg, ok := info.ObjectOf(x).(*types.PkgName)
123 if !ok {
124 // This shouldn't happen
125 return fmt.Sprintf("%s.%s", x.Name, expr.Sel.Name)
126 }
127 return fmt.Sprintf("%s.%s", pkg.Imported().Path(), expr.Sel.Name)
128 }
129 panic(fmt.Sprintf("unsupported selector: %v", expr))
130 }
131 return fmt.Sprintf("(%s).%s", sel.Recv(), sel.Obj().Name())
132}
133
134func IsNil(pass *analysis.Pass, expr ast.Expr) bool {
135 return pass.TypesInfo.Types[expr].IsNil()
136}
137
138func BoolConst(pass *analysis.Pass, expr ast.Expr) bool {
139 val := pass.TypesInfo.ObjectOf(expr.(*ast.Ident)).(*types.Const).Val()
140 return constant.BoolVal(val)
141}
142
143func IsBoolConst(pass *analysis.Pass, expr ast.Expr) bool {
144 // We explicitly don't support typed bools because more often than
145 // not, custom bool types are used as binary enums and the
146 // explicit comparison is desired.
147
148 ident, ok := expr.(*ast.Ident)
149 if !ok {
150 return false
151 }
152 obj := pass.TypesInfo.ObjectOf(ident)
153 c, ok := obj.(*types.Const)
154 if !ok {
155 return false
156 }
157 basic, ok := c.Type().(*types.Basic)
158 if !ok {
159 return false
160 }
161 if basic.Kind() != types.UntypedBool && basic.Kind() != types.Bool {
162 return false
163 }
164 return true
165}
166
167func ExprToInt(pass *analysis.Pass, expr ast.Expr) (int64, bool) {
168 tv := pass.TypesInfo.Types[expr]
169 if tv.Value == nil {
170 return 0, false
171 }
172 if tv.Value.Kind() != constant.Int {
173 return 0, false
174 }
175 return constant.Int64Val(tv.Value)
176}
177
178func ExprToString(pass *analysis.Pass, expr ast.Expr) (string, bool) {
179 val := pass.TypesInfo.Types[expr].Value
180 if val == nil {
181 return "", false
182 }
183 if val.Kind() != constant.String {
184 return "", false
185 }
186 return constant.StringVal(val), true
187}
188
189// Dereference returns a pointer's element type; otherwise it returns
190// T.
191func Dereference(T types.Type) types.Type {
192 if p, ok := T.Underlying().(*types.Pointer); ok {
193 return p.Elem()
194 }
195 return T
196}
197
198// DereferenceR returns a pointer's element type; otherwise it returns
199// T. If the element type is itself a pointer, DereferenceR will be
200// applied recursively.
201func DereferenceR(T types.Type) types.Type {
202 if p, ok := T.Underlying().(*types.Pointer); ok {
203 return DereferenceR(p.Elem())
204 }
205 return T
206}
207
208func IsGoVersion(pass *analysis.Pass, minor int) bool {
209 version := pass.Analyzer.Flags.Lookup("go").Value.(flag.Getter).Get().(int)
210 return version >= minor
211}
212
213func CallNameAST(pass *analysis.Pass, call *ast.CallExpr) string {
214 switch fun := call.Fun.(type) {
215 case *ast.SelectorExpr:
216 fn, ok := pass.TypesInfo.ObjectOf(fun.Sel).(*types.Func)
217 if !ok {
218 return ""
219 }
220 return lint.FuncName(fn)
221 case *ast.Ident:
222 obj := pass.TypesInfo.ObjectOf(fun)
223 switch obj := obj.(type) {
224 case *types.Func:
225 return lint.FuncName(obj)
226 case *types.Builtin:
227 return obj.Name()
228 default:
229 return ""
230 }
231 default:
232 return ""
233 }
234}
235
236func IsCallToAST(pass *analysis.Pass, node ast.Node, name string) bool {
237 call, ok := node.(*ast.CallExpr)
238 if !ok {
239 return false
240 }
241 return CallNameAST(pass, call) == name
242}
243
244func IsCallToAnyAST(pass *analysis.Pass, node ast.Node, names ...string) bool {
245 for _, name := range names {
246 if IsCallToAST(pass, node, name) {
247 return true
248 }
249 }
250 return false
251}
252
253func Render(pass *analysis.Pass, x interface{}) string {
254 var buf bytes.Buffer
255 if err := printer.Fprint(&buf, pass.Fset, x); err != nil {
256 panic(err)
257 }
258 return buf.String()
259}
260
261func RenderArgs(pass *analysis.Pass, args []ast.Expr) string {
262 var ss []string
263 for _, arg := range args {
264 ss = append(ss, Render(pass, arg))
265 }
266 return strings.Join(ss, ", ")
267}
268
269func Preamble(f *ast.File) string {
270 cutoff := f.Package
271 if f.Doc != nil {
272 cutoff = f.Doc.Pos()
273 }
274 var out []string
275 for _, cmt := range f.Comments {
276 if cmt.Pos() >= cutoff {
277 break
278 }
279 out = append(out, cmt.Text())
280 }
281 return strings.Join(out, "\n")
282}
283
284func Inspect(node ast.Node, fn func(node ast.Node) bool) {
285 if node == nil {
286 return
287 }
288 ast.Inspect(node, fn)
289}
290
291func GroupSpecs(fset *token.FileSet, specs []ast.Spec) [][]ast.Spec {
292 if len(specs) == 0 {
293 return nil
294 }
295 groups := make([][]ast.Spec, 1)
296 groups[0] = append(groups[0], specs[0])
297
298 for _, spec := range specs[1:] {
299 g := groups[len(groups)-1]
300 if fset.PositionFor(spec.Pos(), false).Line-1 !=
301 fset.PositionFor(g[len(g)-1].End(), false).Line {
302
303 groups = append(groups, nil)
304 }
305
306 groups[len(groups)-1] = append(groups[len(groups)-1], spec)
307 }
308
309 return groups
310}
311
312func IsObject(obj types.Object, name string) bool {
313 var path string
314 if pkg := obj.Pkg(); pkg != nil {
315 path = pkg.Path() + "."
316 }
317 return path+obj.Name() == name
318}
319
320type Field struct {
321 Var *types.Var
322 Tag string
323 Path []int
324}
325
326// FlattenFields recursively flattens T and embedded structs,
327// returning a list of fields. If multiple fields with the same name
328// exist, all will be returned.
329func FlattenFields(T *types.Struct) []Field {
330 return flattenFields(T, nil, nil)
331}
332
333func flattenFields(T *types.Struct, path []int, seen map[types.Type]bool) []Field {
334 if seen == nil {
335 seen = map[types.Type]bool{}
336 }
337 if seen[T] {
338 return nil
339 }
340 seen[T] = true
341 var out []Field
342 for i := 0; i < T.NumFields(); i++ {
343 field := T.Field(i)
344 tag := T.Tag(i)
345 np := append(path[:len(path):len(path)], i)
346 if field.Anonymous() {
347 if s, ok := Dereference(field.Type()).Underlying().(*types.Struct); ok {
348 out = append(out, flattenFields(s, np, seen)...)
349 }
350 } else {
351 out = append(out, Field{field, tag, np})
352 }
353 }
354 return out
355}
356
357func File(pass *analysis.Pass, node lint.Positioner) *ast.File {
358 pass.Fset.PositionFor(node.Pos(), true)
359 m := pass.ResultOf[facts.TokenFile].(map[*token.File]*ast.File)
360 return m[pass.Fset.File(node.Pos())]
361}
362
363// IsGenerated reports whether pos is in a generated file, It ignores
364// //line directives.
365func IsGenerated(pass *analysis.Pass, pos token.Pos) bool {
366 _, ok := Generator(pass, pos)
367 return ok
368}
369
370// Generator returns the generator that generated the file containing
371// pos. It ignores //line directives.
372func Generator(pass *analysis.Pass, pos token.Pos) (facts.Generator, bool) {
373 file := pass.Fset.PositionFor(pos, false).Filename
374 m := pass.ResultOf[facts.Generated].(map[string]facts.Generator)
375 g, ok := m[file]
376 return g, ok
377}
378
379func ReportfFG(pass *analysis.Pass, pos token.Pos, f string, args ...interface{}) {
380 file := lint.DisplayPosition(pass.Fset, pos).Filename
381 m := pass.ResultOf[facts.Generated].(map[string]facts.Generator)
382 if _, ok := m[file]; ok {
383 return
384 }
385 pass.Reportf(pos, f, args...)
386}
387
388func ReportNodef(pass *analysis.Pass, node ast.Node, format string, args ...interface{}) {
389 msg := fmt.Sprintf(format, args...)
390 pass.Report(analysis.Diagnostic{Pos: node.Pos(), End: node.End(), Message: msg})
391}
392
393func ReportNodefFG(pass *analysis.Pass, node ast.Node, format string, args ...interface{}) {
394 file := lint.DisplayPosition(pass.Fset, node.Pos()).Filename
395 m := pass.ResultOf[facts.Generated].(map[string]facts.Generator)
396 if _, ok := m[file]; ok {
397 return
398 }
399 ReportNodef(pass, node, format, args...)
400}
diff --git a/vendor/honnef.co/go/tools/lint/lintutil/format/format.go b/vendor/honnef.co/go/tools/lint/lintutil/format/format.go
new file mode 100644
index 0000000..9385431
--- /dev/null
+++ b/vendor/honnef.co/go/tools/lint/lintutil/format/format.go
@@ -0,0 +1,135 @@
1// Package format provides formatters for linter problems.
2package format
3
4import (
5 "encoding/json"
6 "fmt"
7 "go/token"
8 "io"
9 "os"
10 "path/filepath"
11 "text/tabwriter"
12
13 "honnef.co/go/tools/lint"
14)
15
16func shortPath(path string) string {
17 cwd, err := os.Getwd()
18 if err != nil {
19 return path
20 }
21 if rel, err := filepath.Rel(cwd, path); err == nil && len(rel) < len(path) {
22 return rel
23 }
24 return path
25}
26
27func relativePositionString(pos token.Position) string {
28 s := shortPath(pos.Filename)
29 if pos.IsValid() {
30 if s != "" {
31 s += ":"
32 }
33 s += fmt.Sprintf("%d:%d", pos.Line, pos.Column)
34 }
35 if s == "" {
36 s = "-"
37 }
38 return s
39}
40
41type Statter interface {
42 Stats(total, errors, warnings int)
43}
44
45type Formatter interface {
46 Format(p lint.Problem)
47}
48
49type Text struct {
50 W io.Writer
51}
52
53func (o Text) Format(p lint.Problem) {
54 fmt.Fprintf(o.W, "%v: %s\n", relativePositionString(p.Pos), p.String())
55}
56
57type JSON struct {
58 W io.Writer
59}
60
61func severity(s lint.Severity) string {
62 switch s {
63 case lint.Error:
64 return "error"
65 case lint.Warning:
66 return "warning"
67 case lint.Ignored:
68 return "ignored"
69 }
70 return ""
71}
72
73func (o JSON) Format(p lint.Problem) {
74 type location struct {
75 File string `json:"file"`
76 Line int `json:"line"`
77 Column int `json:"column"`
78 }
79 jp := struct {
80 Code string `json:"code"`
81 Severity string `json:"severity,omitempty"`
82 Location location `json:"location"`
83 End location `json:"end"`
84 Message string `json:"message"`
85 }{
86 Code: p.Check,
87 Severity: severity(p.Severity),
88 Location: location{
89 File: p.Pos.Filename,
90 Line: p.Pos.Line,
91 Column: p.Pos.Column,
92 },
93 End: location{
94 File: p.End.Filename,
95 Line: p.End.Line,
96 Column: p.End.Column,
97 },
98 Message: p.Message,
99 }
100 _ = json.NewEncoder(o.W).Encode(jp)
101}
102
103type Stylish struct {
104 W io.Writer
105
106 prevFile string
107 tw *tabwriter.Writer
108}
109
110func (o *Stylish) Format(p lint.Problem) {
111 pos := p.Pos
112 if pos.Filename == "" {
113 pos.Filename = "-"
114 }
115
116 if pos.Filename != o.prevFile {
117 if o.prevFile != "" {
118 o.tw.Flush()
119 fmt.Fprintln(o.W)
120 }
121 fmt.Fprintln(o.W, pos.Filename)
122 o.prevFile = pos.Filename
123 o.tw = tabwriter.NewWriter(o.W, 0, 4, 2, ' ', 0)
124 }
125 fmt.Fprintf(o.tw, " (%d, %d)\t%s\t%s\n", pos.Line, pos.Column, p.Check, p.Message)
126}
127
128func (o *Stylish) Stats(total, errors, warnings int) {
129 if o.tw != nil {
130 o.tw.Flush()
131 fmt.Fprintln(o.W)
132 }
133 fmt.Fprintf(o.W, " ✖ %d problems (%d errors, %d warnings)\n",
134 total, errors, warnings)
135}
diff --git a/vendor/honnef.co/go/tools/lint/lintutil/stats.go b/vendor/honnef.co/go/tools/lint/lintutil/stats.go
new file mode 100644
index 0000000..ba8caf0
--- /dev/null
+++ b/vendor/honnef.co/go/tools/lint/lintutil/stats.go
@@ -0,0 +1,7 @@
1// +build !aix,!android,!darwin,!dragonfly,!freebsd,!linux,!netbsd,!openbsd,!solaris
2
3package lintutil
4
5import "os"
6
7var infoSignals = []os.Signal{}
diff --git a/vendor/honnef.co/go/tools/lint/lintutil/stats_bsd.go b/vendor/honnef.co/go/tools/lint/lintutil/stats_bsd.go
new file mode 100644
index 0000000..3a62ede
--- /dev/null
+++ b/vendor/honnef.co/go/tools/lint/lintutil/stats_bsd.go
@@ -0,0 +1,10 @@
1// +build darwin dragonfly freebsd netbsd openbsd
2
3package lintutil
4
5import (
6 "os"
7 "syscall"
8)
9
10var infoSignals = []os.Signal{syscall.SIGINFO}
diff --git a/vendor/honnef.co/go/tools/lint/lintutil/stats_posix.go b/vendor/honnef.co/go/tools/lint/lintutil/stats_posix.go
new file mode 100644
index 0000000..53f21c6
--- /dev/null
+++ b/vendor/honnef.co/go/tools/lint/lintutil/stats_posix.go
@@ -0,0 +1,10 @@
1// +build aix android linux solaris
2
3package lintutil
4
5import (
6 "os"
7 "syscall"
8)
9
10var infoSignals = []os.Signal{syscall.SIGUSR1}
diff --git a/vendor/honnef.co/go/tools/lint/lintutil/util.go b/vendor/honnef.co/go/tools/lint/lintutil/util.go
new file mode 100644
index 0000000..fe0279f
--- /dev/null
+++ b/vendor/honnef.co/go/tools/lint/lintutil/util.go
@@ -0,0 +1,392 @@
1// Copyright (c) 2013 The Go Authors. All rights reserved.
2//
3// Use of this source code is governed by a BSD-style
4// license that can be found in the LICENSE file or at
5// https://developers.google.com/open-source/licenses/bsd.
6
7// Package lintutil provides helpers for writing linter command lines.
8package lintutil // import "honnef.co/go/tools/lint/lintutil"
9
10import (
11 "crypto/sha256"
12 "errors"
13 "flag"
14 "fmt"
15 "go/build"
16 "go/token"
17 "io"
18 "log"
19 "os"
20 "os/signal"
21 "regexp"
22 "runtime"
23 "runtime/pprof"
24 "strconv"
25 "strings"
26 "sync/atomic"
27
28 "honnef.co/go/tools/config"
29 "honnef.co/go/tools/internal/cache"
30 "honnef.co/go/tools/lint"
31 "honnef.co/go/tools/lint/lintutil/format"
32 "honnef.co/go/tools/version"
33
34 "golang.org/x/tools/go/analysis"
35 "golang.org/x/tools/go/buildutil"
36 "golang.org/x/tools/go/packages"
37)
38
39func NewVersionFlag() flag.Getter {
40 tags := build.Default.ReleaseTags
41 v := tags[len(tags)-1][2:]
42 version := new(VersionFlag)
43 if err := version.Set(v); err != nil {
44 panic(fmt.Sprintf("internal error: %s", err))
45 }
46 return version
47}
48
49type VersionFlag int
50
51func (v *VersionFlag) String() string {
52 return fmt.Sprintf("1.%d", *v)
53
54}
55
56func (v *VersionFlag) Set(s string) error {
57 if len(s) < 3 {
58 return errors.New("invalid Go version")
59 }
60 if s[0] != '1' {
61 return errors.New("invalid Go version")
62 }
63 if s[1] != '.' {
64 return errors.New("invalid Go version")
65 }
66 i, err := strconv.Atoi(s[2:])
67 *v = VersionFlag(i)
68 return err
69}
70
71func (v *VersionFlag) Get() interface{} {
72 return int(*v)
73}
74
75func usage(name string, flags *flag.FlagSet) func() {
76 return func() {
77 fmt.Fprintf(os.Stderr, "Usage of %s:\n", name)
78 fmt.Fprintf(os.Stderr, "\t%s [flags] # runs on package in current directory\n", name)
79 fmt.Fprintf(os.Stderr, "\t%s [flags] packages\n", name)
80 fmt.Fprintf(os.Stderr, "\t%s [flags] directory\n", name)
81 fmt.Fprintf(os.Stderr, "\t%s [flags] files... # must be a single package\n", name)
82 fmt.Fprintf(os.Stderr, "Flags:\n")
83 flags.PrintDefaults()
84 }
85}
86
87type list []string
88
89func (list *list) String() string {
90 return `"` + strings.Join(*list, ",") + `"`
91}
92
93func (list *list) Set(s string) error {
94 if s == "" {
95 *list = nil
96 return nil
97 }
98
99 *list = strings.Split(s, ",")
100 return nil
101}
102
103func FlagSet(name string) *flag.FlagSet {
104 flags := flag.NewFlagSet("", flag.ExitOnError)
105 flags.Usage = usage(name, flags)
106 flags.String("tags", "", "List of `build tags`")
107 flags.Bool("tests", true, "Include tests")
108 flags.Bool("version", false, "Print version and exit")
109 flags.Bool("show-ignored", false, "Don't filter ignored problems")
110 flags.String("f", "text", "Output `format` (valid choices are 'stylish', 'text' and 'json')")
111 flags.String("explain", "", "Print description of `check`")
112
113 flags.String("debug.cpuprofile", "", "Write CPU profile to `file`")
114 flags.String("debug.memprofile", "", "Write memory profile to `file`")
115 flags.Bool("debug.version", false, "Print detailed version information about this program")
116 flags.Bool("debug.no-compile-errors", false, "Don't print compile errors")
117
118 checks := list{"inherit"}
119 fail := list{"all"}
120 flags.Var(&checks, "checks", "Comma-separated list of `checks` to enable.")
121 flags.Var(&fail, "fail", "Comma-separated list of `checks` that can cause a non-zero exit status.")
122
123 tags := build.Default.ReleaseTags
124 v := tags[len(tags)-1][2:]
125 version := new(VersionFlag)
126 if err := version.Set(v); err != nil {
127 panic(fmt.Sprintf("internal error: %s", err))
128 }
129
130 flags.Var(version, "go", "Target Go `version` in the format '1.x'")
131 return flags
132}
133
134func findCheck(cs []*analysis.Analyzer, check string) (*analysis.Analyzer, bool) {
135 for _, c := range cs {
136 if c.Name == check {
137 return c, true
138 }
139 }
140 return nil, false
141}
142
143func ProcessFlagSet(cs []*analysis.Analyzer, cums []lint.CumulativeChecker, fs *flag.FlagSet) {
144 tags := fs.Lookup("tags").Value.(flag.Getter).Get().(string)
145 tests := fs.Lookup("tests").Value.(flag.Getter).Get().(bool)
146 goVersion := fs.Lookup("go").Value.(flag.Getter).Get().(int)
147 formatter := fs.Lookup("f").Value.(flag.Getter).Get().(string)
148 printVersion := fs.Lookup("version").Value.(flag.Getter).Get().(bool)
149 showIgnored := fs.Lookup("show-ignored").Value.(flag.Getter).Get().(bool)
150 explain := fs.Lookup("explain").Value.(flag.Getter).Get().(string)
151
152 cpuProfile := fs.Lookup("debug.cpuprofile").Value.(flag.Getter).Get().(string)
153 memProfile := fs.Lookup("debug.memprofile").Value.(flag.Getter).Get().(string)
154 debugVersion := fs.Lookup("debug.version").Value.(flag.Getter).Get().(bool)
155 debugNoCompile := fs.Lookup("debug.no-compile-errors").Value.(flag.Getter).Get().(bool)
156
157 cfg := config.Config{}
158 cfg.Checks = *fs.Lookup("checks").Value.(*list)
159
160 exit := func(code int) {
161 if cpuProfile != "" {
162 pprof.StopCPUProfile()
163 }
164 if memProfile != "" {
165 f, err := os.Create(memProfile)
166 if err != nil {
167 panic(err)
168 }
169 runtime.GC()
170 pprof.WriteHeapProfile(f)
171 }
172 os.Exit(code)
173 }
174 if cpuProfile != "" {
175 f, err := os.Create(cpuProfile)
176 if err != nil {
177 log.Fatal(err)
178 }
179 pprof.StartCPUProfile(f)
180 }
181
182 if debugVersion {
183 version.Verbose()
184 exit(0)
185 }
186
187 if printVersion {
188 version.Print()
189 exit(0)
190 }
191
192 // Validate that the tags argument is well-formed. go/packages
193 // doesn't detect malformed build flags and returns unhelpful
194 // errors.
195 tf := buildutil.TagsFlag{}
196 if err := tf.Set(tags); err != nil {
197 fmt.Fprintln(os.Stderr, fmt.Errorf("invalid value %q for flag -tags: %s", tags, err))
198 exit(1)
199 }
200
201 if explain != "" {
202 var haystack []*analysis.Analyzer
203 haystack = append(haystack, cs...)
204 for _, cum := range cums {
205 haystack = append(haystack, cum.Analyzer())
206 }
207 check, ok := findCheck(haystack, explain)
208 if !ok {
209 fmt.Fprintln(os.Stderr, "Couldn't find check", explain)
210 exit(1)
211 }
212 if check.Doc == "" {
213 fmt.Fprintln(os.Stderr, explain, "has no documentation")
214 exit(1)
215 }
216 fmt.Println(check.Doc)
217 exit(0)
218 }
219
220 ps, err := Lint(cs, cums, fs.Args(), &Options{
221 Tags: tags,
222 LintTests: tests,
223 GoVersion: goVersion,
224 Config: cfg,
225 })
226 if err != nil {
227 fmt.Fprintln(os.Stderr, err)
228 exit(1)
229 }
230
231 var f format.Formatter
232 switch formatter {
233 case "text":
234 f = format.Text{W: os.Stdout}
235 case "stylish":
236 f = &format.Stylish{W: os.Stdout}
237 case "json":
238 f = format.JSON{W: os.Stdout}
239 default:
240 fmt.Fprintf(os.Stderr, "unsupported output format %q\n", formatter)
241 exit(2)
242 }
243
244 var (
245 total int
246 errors int
247 warnings int
248 )
249
250 fail := *fs.Lookup("fail").Value.(*list)
251 analyzers := make([]*analysis.Analyzer, len(cs), len(cs)+len(cums))
252 copy(analyzers, cs)
253 for _, cum := range cums {
254 analyzers = append(analyzers, cum.Analyzer())
255 }
256 shouldExit := lint.FilterChecks(analyzers, fail)
257 shouldExit["compile"] = true
258
259 total = len(ps)
260 for _, p := range ps {
261 if p.Check == "compile" && debugNoCompile {
262 continue
263 }
264 if p.Severity == lint.Ignored && !showIgnored {
265 continue
266 }
267 if shouldExit[p.Check] {
268 errors++
269 } else {
270 p.Severity = lint.Warning
271 warnings++
272 }
273 f.Format(p)
274 }
275 if f, ok := f.(format.Statter); ok {
276 f.Stats(total, errors, warnings)
277 }
278 if errors > 0 {
279 exit(1)
280 }
281 exit(0)
282}
283
284type Options struct {
285 Config config.Config
286
287 Tags string
288 LintTests bool
289 GoVersion int
290}
291
292func computeSalt() ([]byte, error) {
293 if version.Version != "devel" {
294 return []byte(version.Version), nil
295 }
296 p, err := os.Executable()
297 if err != nil {
298 return nil, err
299 }
300 f, err := os.Open(p)
301 if err != nil {
302 return nil, err
303 }
304 defer f.Close()
305 h := sha256.New()
306 if _, err := io.Copy(h, f); err != nil {
307 return nil, err
308 }
309 return h.Sum(nil), nil
310}
311
312func Lint(cs []*analysis.Analyzer, cums []lint.CumulativeChecker, paths []string, opt *Options) ([]lint.Problem, error) {
313 salt, err := computeSalt()
314 if err != nil {
315 return nil, fmt.Errorf("could not compute salt for cache: %s", err)
316 }
317 cache.SetSalt(salt)
318
319 if opt == nil {
320 opt = &Options{}
321 }
322
323 l := &lint.Linter{
324 Checkers: cs,
325 CumulativeCheckers: cums,
326 GoVersion: opt.GoVersion,
327 Config: opt.Config,
328 }
329 cfg := &packages.Config{}
330 if opt.LintTests {
331 cfg.Tests = true
332 }
333 if opt.Tags != "" {
334 cfg.BuildFlags = append(cfg.BuildFlags, "-tags", opt.Tags)
335 }
336
337 printStats := func() {
338 // Individual stats are read atomically, but overall there
339 // is no synchronisation. For printing rough progress
340 // information, this doesn't matter.
341 switch atomic.LoadUint32(&l.Stats.State) {
342 case lint.StateInitializing:
343 fmt.Fprintln(os.Stderr, "Status: initializing")
344 case lint.StateGraph:
345 fmt.Fprintln(os.Stderr, "Status: loading package graph")
346 case lint.StateProcessing:
347 fmt.Fprintf(os.Stderr, "Packages: %d/%d initial, %d/%d total; Workers: %d/%d; Problems: %d\n",
348 atomic.LoadUint32(&l.Stats.ProcessedInitialPackages),
349 atomic.LoadUint32(&l.Stats.InitialPackages),
350 atomic.LoadUint32(&l.Stats.ProcessedPackages),
351 atomic.LoadUint32(&l.Stats.TotalPackages),
352 atomic.LoadUint32(&l.Stats.ActiveWorkers),
353 atomic.LoadUint32(&l.Stats.TotalWorkers),
354 atomic.LoadUint32(&l.Stats.Problems),
355 )
356 case lint.StateCumulative:
357 fmt.Fprintln(os.Stderr, "Status: processing cumulative checkers")
358 }
359 }
360 if len(infoSignals) > 0 {
361 ch := make(chan os.Signal, 1)
362 signal.Notify(ch, infoSignals...)
363 defer signal.Stop(ch)
364 go func() {
365 for range ch {
366 printStats()
367 }
368 }()
369 }
370
371 return l.Lint(cfg, paths)
372}
373
374var posRe = regexp.MustCompile(`^(.+?):(\d+)(?::(\d+)?)?$`)
375
376func parsePos(pos string) token.Position {
377 if pos == "-" || pos == "" {
378 return token.Position{}
379 }
380 parts := posRe.FindStringSubmatch(pos)
381 if parts == nil {
382 panic(fmt.Sprintf("internal error: malformed position %q", pos))
383 }
384 file := parts[1]
385 line, _ := strconv.Atoi(parts[2])
386 col, _ := strconv.Atoi(parts[3])
387 return token.Position{
388 Filename: file,
389 Line: line,
390 Column: col,
391 }
392}
diff --git a/vendor/honnef.co/go/tools/lint/runner.go b/vendor/honnef.co/go/tools/lint/runner.go
new file mode 100644
index 0000000..3b22a63
--- /dev/null
+++ b/vendor/honnef.co/go/tools/lint/runner.go
@@ -0,0 +1,970 @@
1package lint
2
3/*
4Parallelism
5
6Runner implements parallel processing of packages by spawning one
7goroutine per package in the dependency graph, without any semaphores.
8Each goroutine initially waits on the completion of all of its
9dependencies, thus establishing correct order of processing. Once all
10dependencies finish processing, the goroutine will load the package
11from export data or source – this loading is guarded by a semaphore,
12sized according to the number of CPU cores. This way, we only have as
13many packages occupying memory and CPU resources as there are actual
14cores to process them.
15
16This combination of unbounded goroutines but bounded package loading
17means that if we have many parallel, independent subgraphs, they will
18all execute in parallel, while not wasting resources for long linear
19chains or trying to process more subgraphs in parallel than the system
20can handle.
21
22*/
23
24import (
25 "bytes"
26 "encoding/gob"
27 "encoding/hex"
28 "fmt"
29 "go/ast"
30 "go/token"
31 "go/types"
32 "reflect"
33 "regexp"
34 "runtime"
35 "sort"
36 "strconv"
37 "strings"
38 "sync"
39 "sync/atomic"
40
41 "golang.org/x/tools/go/analysis"
42 "golang.org/x/tools/go/packages"
43 "golang.org/x/tools/go/types/objectpath"
44 "honnef.co/go/tools/config"
45 "honnef.co/go/tools/facts"
46 "honnef.co/go/tools/internal/cache"
47 "honnef.co/go/tools/loader"
48)
49
50// If enabled, abuse of the go/analysis API will lead to panics
51const sanityCheck = true
52
53// OPT(dh): for a dependency tree A->B->C->D, if we have cached data
54// for B, there should be no need to load C and D individually. Go's
55// export data for B contains all the data we need on types, and our
56// fact cache could store the union of B, C and D in B.
57//
58// This may change unused's behavior, however, as it may observe fewer
59// interfaces from transitive dependencies.
60
61type Package struct {
62 dependents uint64
63
64 *packages.Package
65 Imports []*Package
66 initial bool
67 fromSource bool
68 hash string
69 done chan struct{}
70
71 resultsMu sync.Mutex
72 // results maps analyzer IDs to analyzer results
73 results []*result
74
75 cfg *config.Config
76 gen map[string]facts.Generator
77 problems []Problem
78 ignores []Ignore
79 errs []error
80
81 // these slices are indexed by analysis
82 facts []map[types.Object][]analysis.Fact
83 pkgFacts [][]analysis.Fact
84
85 canClearTypes bool
86}
87
88func (pkg *Package) decUse() {
89 atomic.AddUint64(&pkg.dependents, ^uint64(0))
90 if atomic.LoadUint64(&pkg.dependents) == 0 {
91 // nobody depends on this package anymore
92 if pkg.canClearTypes {
93 pkg.Types = nil
94 }
95 pkg.facts = nil
96 pkg.pkgFacts = nil
97
98 for _, imp := range pkg.Imports {
99 imp.decUse()
100 }
101 }
102}
103
104type result struct {
105 v interface{}
106 err error
107 ready chan struct{}
108}
109
110type Runner struct {
111 ld loader.Loader
112 cache *cache.Cache
113
114 analyzerIDs analyzerIDs
115
116 // limits parallelism of loading packages
117 loadSem chan struct{}
118
119 goVersion int
120 stats *Stats
121}
122
123type analyzerIDs struct {
124 m map[*analysis.Analyzer]int
125}
126
127func (ids analyzerIDs) get(a *analysis.Analyzer) int {
128 id, ok := ids.m[a]
129 if !ok {
130 panic(fmt.Sprintf("no analyzer ID for %s", a.Name))
131 }
132 return id
133}
134
135type Fact struct {
136 Path string
137 Fact analysis.Fact
138}
139
140type analysisAction struct {
141 analyzer *analysis.Analyzer
142 analyzerID int
143 pkg *Package
144 newPackageFacts []analysis.Fact
145 problems []Problem
146
147 pkgFacts map[*types.Package][]analysis.Fact
148}
149
150func (ac *analysisAction) String() string {
151 return fmt.Sprintf("%s @ %s", ac.analyzer, ac.pkg)
152}
153
154func (ac *analysisAction) allObjectFacts() []analysis.ObjectFact {
155 out := make([]analysis.ObjectFact, 0, len(ac.pkg.facts[ac.analyzerID]))
156 for obj, facts := range ac.pkg.facts[ac.analyzerID] {
157 for _, fact := range facts {
158 out = append(out, analysis.ObjectFact{
159 Object: obj,
160 Fact: fact,
161 })
162 }
163 }
164 return out
165}
166
167func (ac *analysisAction) allPackageFacts() []analysis.PackageFact {
168 out := make([]analysis.PackageFact, 0, len(ac.pkgFacts))
169 for pkg, facts := range ac.pkgFacts {
170 for _, fact := range facts {
171 out = append(out, analysis.PackageFact{
172 Package: pkg,
173 Fact: fact,
174 })
175 }
176 }
177 return out
178}
179
180func (ac *analysisAction) importObjectFact(obj types.Object, fact analysis.Fact) bool {
181 if sanityCheck && len(ac.analyzer.FactTypes) == 0 {
182 panic("analysis doesn't export any facts")
183 }
184 for _, f := range ac.pkg.facts[ac.analyzerID][obj] {
185 if reflect.TypeOf(f) == reflect.TypeOf(fact) {
186 reflect.ValueOf(fact).Elem().Set(reflect.ValueOf(f).Elem())
187 return true
188 }
189 }
190 return false
191}
192
193func (ac *analysisAction) importPackageFact(pkg *types.Package, fact analysis.Fact) bool {
194 if sanityCheck && len(ac.analyzer.FactTypes) == 0 {
195 panic("analysis doesn't export any facts")
196 }
197 for _, f := range ac.pkgFacts[pkg] {
198 if reflect.TypeOf(f) == reflect.TypeOf(fact) {
199 reflect.ValueOf(fact).Elem().Set(reflect.ValueOf(f).Elem())
200 return true
201 }
202 }
203 return false
204}
205
206func (ac *analysisAction) exportObjectFact(obj types.Object, fact analysis.Fact) {
207 if sanityCheck && len(ac.analyzer.FactTypes) == 0 {
208 panic("analysis doesn't export any facts")
209 }
210 ac.pkg.facts[ac.analyzerID][obj] = append(ac.pkg.facts[ac.analyzerID][obj], fact)
211}
212
213func (ac *analysisAction) exportPackageFact(fact analysis.Fact) {
214 if sanityCheck && len(ac.analyzer.FactTypes) == 0 {
215 panic("analysis doesn't export any facts")
216 }
217 ac.pkgFacts[ac.pkg.Types] = append(ac.pkgFacts[ac.pkg.Types], fact)
218 ac.newPackageFacts = append(ac.newPackageFacts, fact)
219}
220
221func (ac *analysisAction) report(pass *analysis.Pass, d analysis.Diagnostic) {
222 p := Problem{
223 Pos: DisplayPosition(pass.Fset, d.Pos),
224 End: DisplayPosition(pass.Fset, d.End),
225 Message: d.Message,
226 Check: pass.Analyzer.Name,
227 }
228 ac.problems = append(ac.problems, p)
229}
230
231func (r *Runner) runAnalysis(ac *analysisAction) (ret interface{}, err error) {
232 ac.pkg.resultsMu.Lock()
233 res := ac.pkg.results[r.analyzerIDs.get(ac.analyzer)]
234 if res != nil {
235 ac.pkg.resultsMu.Unlock()
236 <-res.ready
237 return res.v, res.err
238 } else {
239 res = &result{
240 ready: make(chan struct{}),
241 }
242 ac.pkg.results[r.analyzerIDs.get(ac.analyzer)] = res
243 ac.pkg.resultsMu.Unlock()
244
245 defer func() {
246 res.v = ret
247 res.err = err
248 close(res.ready)
249 }()
250
251 pass := new(analysis.Pass)
252 *pass = analysis.Pass{
253 Analyzer: ac.analyzer,
254 Fset: ac.pkg.Fset,
255 Files: ac.pkg.Syntax,
256 // type information may be nil or may be populated. if it is
257 // nil, it will get populated later.
258 Pkg: ac.pkg.Types,
259 TypesInfo: ac.pkg.TypesInfo,
260 TypesSizes: ac.pkg.TypesSizes,
261 ResultOf: map[*analysis.Analyzer]interface{}{},
262 ImportObjectFact: ac.importObjectFact,
263 ImportPackageFact: ac.importPackageFact,
264 ExportObjectFact: ac.exportObjectFact,
265 ExportPackageFact: ac.exportPackageFact,
266 Report: func(d analysis.Diagnostic) {
267 ac.report(pass, d)
268 },
269 AllObjectFacts: ac.allObjectFacts,
270 AllPackageFacts: ac.allPackageFacts,
271 }
272
273 if !ac.pkg.initial {
274 // Don't report problems in dependencies
275 pass.Report = func(analysis.Diagnostic) {}
276 }
277 return r.runAnalysisUser(pass, ac)
278 }
279}
280
281func (r *Runner) loadCachedFacts(a *analysis.Analyzer, pkg *Package) ([]Fact, bool) {
282 if len(a.FactTypes) == 0 {
283 return nil, true
284 }
285
286 var facts []Fact
287 // Look in the cache for facts
288 aID, err := passActionID(pkg, a)
289 if err != nil {
290 return nil, false
291 }
292 aID = cache.Subkey(aID, "facts")
293 b, _, err := r.cache.GetBytes(aID)
294 if err != nil {
295 // No cached facts, analyse this package like a user-provided one, but ignore diagnostics
296 return nil, false
297 }
298
299 if err := gob.NewDecoder(bytes.NewReader(b)).Decode(&facts); err != nil {
300 // Cached facts are broken, analyse this package like a user-provided one, but ignore diagnostics
301 return nil, false
302 }
303 return facts, true
304}
305
306type dependencyError struct {
307 dep string
308 err error
309}
310
311func (err dependencyError) nested() dependencyError {
312 if o, ok := err.err.(dependencyError); ok {
313 return o.nested()
314 }
315 return err
316}
317
318func (err dependencyError) Error() string {
319 if o, ok := err.err.(dependencyError); ok {
320 return o.Error()
321 }
322 return fmt.Sprintf("error running dependency %s: %s", err.dep, err.err)
323}
324
325func (r *Runner) makeAnalysisAction(a *analysis.Analyzer, pkg *Package) *analysisAction {
326 aid := r.analyzerIDs.get(a)
327 ac := &analysisAction{
328 analyzer: a,
329 analyzerID: aid,
330 pkg: pkg,
331 }
332
333 if len(a.FactTypes) == 0 {
334 return ac
335 }
336
337 // Merge all package facts of dependencies
338 ac.pkgFacts = map[*types.Package][]analysis.Fact{}
339 seen := map[*Package]struct{}{}
340 var dfs func(*Package)
341 dfs = func(pkg *Package) {
342 if _, ok := seen[pkg]; ok {
343 return
344 }
345 seen[pkg] = struct{}{}
346 s := pkg.pkgFacts[aid]
347 ac.pkgFacts[pkg.Types] = s[0:len(s):len(s)]
348 for _, imp := range pkg.Imports {
349 dfs(imp)
350 }
351 }
352 dfs(pkg)
353
354 return ac
355}
356
357// analyzes that we always want to run, even if they're not being run
358// explicitly or as dependencies. these are necessary for the inner
359// workings of the runner.
360var injectedAnalyses = []*analysis.Analyzer{facts.Generated, config.Analyzer}
361
362func (r *Runner) runAnalysisUser(pass *analysis.Pass, ac *analysisAction) (interface{}, error) {
363 if !ac.pkg.fromSource {
364 panic(fmt.Sprintf("internal error: %s was not loaded from source", ac.pkg))
365 }
366
367 // User-provided package, analyse it
368 // First analyze it with dependencies
369 for _, req := range ac.analyzer.Requires {
370 acReq := r.makeAnalysisAction(req, ac.pkg)
371 ret, err := r.runAnalysis(acReq)
372 if err != nil {
373 // We couldn't run a dependency, no point in going on
374 return nil, dependencyError{req.Name, err}
375 }
376
377 pass.ResultOf[req] = ret
378 }
379
380 // Then with this analyzer
381 ret, err := ac.analyzer.Run(pass)
382 if err != nil {
383 return nil, err
384 }
385
386 if len(ac.analyzer.FactTypes) > 0 {
387 // Merge new facts into the package and persist them.
388 var facts []Fact
389 for _, fact := range ac.newPackageFacts {
390 id := r.analyzerIDs.get(ac.analyzer)
391 ac.pkg.pkgFacts[id] = append(ac.pkg.pkgFacts[id], fact)
392 facts = append(facts, Fact{"", fact})
393 }
394 for obj, afacts := range ac.pkg.facts[ac.analyzerID] {
395 if obj.Pkg() != ac.pkg.Package.Types {
396 continue
397 }
398 path, err := objectpath.For(obj)
399 if err != nil {
400 continue
401 }
402 for _, fact := range afacts {
403 facts = append(facts, Fact{string(path), fact})
404 }
405 }
406
407 buf := &bytes.Buffer{}
408 if err := gob.NewEncoder(buf).Encode(facts); err != nil {
409 return nil, err
410 }
411 aID, err := passActionID(ac.pkg, ac.analyzer)
412 if err != nil {
413 return nil, err
414 }
415 aID = cache.Subkey(aID, "facts")
416 if err := r.cache.PutBytes(aID, buf.Bytes()); err != nil {
417 return nil, err
418 }
419 }
420
421 return ret, nil
422}
423
424func NewRunner(stats *Stats) (*Runner, error) {
425 cache, err := cache.Default()
426 if err != nil {
427 return nil, err
428 }
429
430 return &Runner{
431 cache: cache,
432 stats: stats,
433 }, nil
434}
435
436// Run loads packages corresponding to patterns and analyses them with
437// analyzers. It returns the loaded packages, which contain reported
438// diagnostics as well as extracted ignore directives.
439//
440// Note that diagnostics have not been filtered at this point yet, to
441// accomodate cumulative analyzes that require additional steps to
442// produce diagnostics.
443func (r *Runner) Run(cfg *packages.Config, patterns []string, analyzers []*analysis.Analyzer, hasCumulative bool) ([]*Package, error) {
444 r.analyzerIDs = analyzerIDs{m: map[*analysis.Analyzer]int{}}
445 id := 0
446 seen := map[*analysis.Analyzer]struct{}{}
447 var dfs func(a *analysis.Analyzer)
448 dfs = func(a *analysis.Analyzer) {
449 if _, ok := seen[a]; ok {
450 return
451 }
452 seen[a] = struct{}{}
453 r.analyzerIDs.m[a] = id
454 id++
455 for _, f := range a.FactTypes {
456 gob.Register(f)
457 }
458 for _, req := range a.Requires {
459 dfs(req)
460 }
461 }
462 for _, a := range analyzers {
463 if v := a.Flags.Lookup("go"); v != nil {
464 v.Value.Set(fmt.Sprintf("1.%d", r.goVersion))
465 }
466 dfs(a)
467 }
468 for _, a := range injectedAnalyses {
469 dfs(a)
470 }
471
472 var dcfg packages.Config
473 if cfg != nil {
474 dcfg = *cfg
475 }
476
477 atomic.StoreUint32(&r.stats.State, StateGraph)
478 initialPkgs, err := r.ld.Graph(dcfg, patterns...)
479 if err != nil {
480 return nil, err
481 }
482
483 defer r.cache.Trim()
484
485 var allPkgs []*Package
486 m := map[*packages.Package]*Package{}
487 packages.Visit(initialPkgs, nil, func(l *packages.Package) {
488 m[l] = &Package{
489 Package: l,
490 results: make([]*result, len(r.analyzerIDs.m)),
491 facts: make([]map[types.Object][]analysis.Fact, len(r.analyzerIDs.m)),
492 pkgFacts: make([][]analysis.Fact, len(r.analyzerIDs.m)),
493 done: make(chan struct{}),
494 // every package needs itself
495 dependents: 1,
496 canClearTypes: !hasCumulative,
497 }
498 allPkgs = append(allPkgs, m[l])
499 for i := range m[l].facts {
500 m[l].facts[i] = map[types.Object][]analysis.Fact{}
501 }
502 for _, err := range l.Errors {
503 m[l].errs = append(m[l].errs, err)
504 }
505 for _, v := range l.Imports {
506 m[v].dependents++
507 m[l].Imports = append(m[l].Imports, m[v])
508 }
509
510 m[l].hash, err = packageHash(m[l])
511 if err != nil {
512 m[l].errs = append(m[l].errs, err)
513 }
514 })
515
516 pkgs := make([]*Package, len(initialPkgs))
517 for i, l := range initialPkgs {
518 pkgs[i] = m[l]
519 pkgs[i].initial = true
520 }
521
522 atomic.StoreUint32(&r.stats.InitialPackages, uint32(len(initialPkgs)))
523 atomic.StoreUint32(&r.stats.TotalPackages, uint32(len(allPkgs)))
524 atomic.StoreUint32(&r.stats.State, StateProcessing)
525
526 var wg sync.WaitGroup
527 wg.Add(len(allPkgs))
528 r.loadSem = make(chan struct{}, runtime.GOMAXPROCS(-1))
529 atomic.StoreUint32(&r.stats.TotalWorkers, uint32(cap(r.loadSem)))
530 for _, pkg := range allPkgs {
531 pkg := pkg
532 go func() {
533 r.processPkg(pkg, analyzers)
534
535 if pkg.initial {
536 atomic.AddUint32(&r.stats.ProcessedInitialPackages, 1)
537 }
538 atomic.AddUint32(&r.stats.Problems, uint32(len(pkg.problems)))
539 wg.Done()
540 }()
541 }
542 wg.Wait()
543
544 return pkgs, nil
545}
546
547var posRe = regexp.MustCompile(`^(.+?):(\d+)(?::(\d+)?)?`)
548
549func parsePos(pos string) (token.Position, int, error) {
550 if pos == "-" || pos == "" {
551 return token.Position{}, 0, nil
552 }
553 parts := posRe.FindStringSubmatch(pos)
554 if parts == nil {
555 return token.Position{}, 0, fmt.Errorf("malformed position %q", pos)
556 }
557 file := parts[1]
558 line, _ := strconv.Atoi(parts[2])
559 col, _ := strconv.Atoi(parts[3])
560 return token.Position{
561 Filename: file,
562 Line: line,
563 Column: col,
564 }, len(parts[0]), nil
565}
566
567// loadPkg loads a Go package. If the package is in the set of initial
568// packages, it will be loaded from source, otherwise it will be
569// loaded from export data. In the case that the package was loaded
570// from export data, cached facts will also be loaded.
571//
572// Currently, only cached facts for this package will be loaded, not
573// for any of its dependencies.
574func (r *Runner) loadPkg(pkg *Package, analyzers []*analysis.Analyzer) error {
575 if pkg.Types != nil {
576 panic(fmt.Sprintf("internal error: %s has already been loaded", pkg.Package))
577 }
578
579 // Load type information
580 if pkg.initial {
581 // Load package from source
582 pkg.fromSource = true
583 return r.ld.LoadFromSource(pkg.Package)
584 }
585
586 // Load package from export data
587 if err := r.ld.LoadFromExport(pkg.Package); err != nil {
588 // We asked Go to give us up to date export data, yet
589 // we can't load it. There must be something wrong.
590 //
591 // Attempt loading from source. This should fail (because
592 // otherwise there would be export data); we just want to
593 // get the compile errors. If loading from source succeeds
594 // we discard the result, anyway. Otherwise we'll fail
595 // when trying to reload from export data later.
596 //
597 // FIXME(dh): we no longer reload from export data, so
598 // theoretically we should be able to continue
599 pkg.fromSource = true
600 if err := r.ld.LoadFromSource(pkg.Package); err != nil {
601 return err
602 }
603 // Make sure this package can't be imported successfully
604 pkg.Package.Errors = append(pkg.Package.Errors, packages.Error{
605 Pos: "-",
606 Msg: fmt.Sprintf("could not load export data: %s", err),
607 Kind: packages.ParseError,
608 })
609 return fmt.Errorf("could not load export data: %s", err)
610 }
611
612 failed := false
613 seen := make([]bool, len(r.analyzerIDs.m))
614 var dfs func(*analysis.Analyzer)
615 dfs = func(a *analysis.Analyzer) {
616 if seen[r.analyzerIDs.get(a)] {
617 return
618 }
619 seen[r.analyzerIDs.get(a)] = true
620
621 if len(a.FactTypes) > 0 {
622 facts, ok := r.loadCachedFacts(a, pkg)
623 if !ok {
624 failed = true
625 return
626 }
627
628 for _, f := range facts {
629 if f.Path == "" {
630 // This is a package fact
631 pkg.pkgFacts[r.analyzerIDs.get(a)] = append(pkg.pkgFacts[r.analyzerIDs.get(a)], f.Fact)
632 continue
633 }
634 obj, err := objectpath.Object(pkg.Types, objectpath.Path(f.Path))
635 if err != nil {
636 // Be lenient about these errors. For example, when
637 // analysing io/ioutil from source, we may get a fact
638 // for methods on the devNull type, and objectpath
639 // will happily create a path for them. However, when
640 // we later load io/ioutil from export data, the path
641 // no longer resolves.
642 //
643 // If an exported type embeds the unexported type,
644 // then (part of) the unexported type will become part
645 // of the type information and our path will resolve
646 // again.
647 continue
648 }
649 pkg.facts[r.analyzerIDs.get(a)][obj] = append(pkg.facts[r.analyzerIDs.get(a)][obj], f.Fact)
650 }
651 }
652
653 for _, req := range a.Requires {
654 dfs(req)
655 }
656 }
657 for _, a := range analyzers {
658 dfs(a)
659 }
660
661 if failed {
662 pkg.fromSource = true
663 // XXX we added facts to the maps, we need to get rid of those
664 return r.ld.LoadFromSource(pkg.Package)
665 }
666
667 return nil
668}
669
670type analysisError struct {
671 analyzer *analysis.Analyzer
672 pkg *Package
673 err error
674}
675
676func (err analysisError) Error() string {
677 return fmt.Sprintf("error running analyzer %s on %s: %s", err.analyzer, err.pkg, err.err)
678}
679
680// processPkg processes a package. This involves loading the package,
681// either from export data or from source. For packages loaded from
682// source, the provides analyzers will be run on the package.
683func (r *Runner) processPkg(pkg *Package, analyzers []*analysis.Analyzer) {
684 defer func() {
685 // Clear information we no longer need. Make sure to do this
686 // when returning from processPkg so that we clear
687 // dependencies, not just initial packages.
688 pkg.TypesInfo = nil
689 pkg.Syntax = nil
690 pkg.results = nil
691
692 atomic.AddUint32(&r.stats.ProcessedPackages, 1)
693 pkg.decUse()
694 close(pkg.done)
695 }()
696
697 // Ensure all packages have the generated map and config. This is
698 // required by interna of the runner. Analyses that themselves
699 // make use of either have an explicit dependency so that other
700 // runners work correctly, too.
701 analyzers = append(analyzers[0:len(analyzers):len(analyzers)], injectedAnalyses...)
702
703 if len(pkg.errs) != 0 {
704 return
705 }
706
707 for _, imp := range pkg.Imports {
708 <-imp.done
709 if len(imp.errs) > 0 {
710 if imp.initial {
711 // Don't print the error of the dependency since it's
712 // an initial package and we're already printing the
713 // error.
714 pkg.errs = append(pkg.errs, fmt.Errorf("could not analyze dependency %s of %s", imp, pkg))
715 } else {
716 var s string
717 for _, err := range imp.errs {
718 s += "\n\t" + err.Error()
719 }
720 pkg.errs = append(pkg.errs, fmt.Errorf("could not analyze dependency %s of %s: %s", imp, pkg, s))
721 }
722 return
723 }
724 }
725 if pkg.PkgPath == "unsafe" {
726 pkg.Types = types.Unsafe
727 return
728 }
729
730 r.loadSem <- struct{}{}
731 atomic.AddUint32(&r.stats.ActiveWorkers, 1)
732 defer func() {
733 <-r.loadSem
734 atomic.AddUint32(&r.stats.ActiveWorkers, ^uint32(0))
735 }()
736 if err := r.loadPkg(pkg, analyzers); err != nil {
737 pkg.errs = append(pkg.errs, err)
738 return
739 }
740
741 // A package's object facts is the union of all of its dependencies.
742 for _, imp := range pkg.Imports {
743 for ai, m := range imp.facts {
744 for obj, facts := range m {
745 pkg.facts[ai][obj] = facts[0:len(facts):len(facts)]
746 }
747 }
748 }
749
750 if !pkg.fromSource {
751 // Nothing left to do for the package.
752 return
753 }
754
755 // Run analyses on initial packages and those missing facts
756 var wg sync.WaitGroup
757 wg.Add(len(analyzers))
758 errs := make([]error, len(analyzers))
759 var acs []*analysisAction
760 for i, a := range analyzers {
761 i := i
762 a := a
763 ac := r.makeAnalysisAction(a, pkg)
764 acs = append(acs, ac)
765 go func() {
766 defer wg.Done()
767 // Only initial packages and packages with missing
768 // facts will have been loaded from source.
769 if pkg.initial || r.hasFacts(a) {
770 if _, err := r.runAnalysis(ac); err != nil {
771 errs[i] = analysisError{a, pkg, err}
772 return
773 }
774 }
775 }()
776 }
777 wg.Wait()
778
779 depErrors := map[dependencyError]int{}
780 for _, err := range errs {
781 if err == nil {
782 continue
783 }
784 switch err := err.(type) {
785 case analysisError:
786 switch err := err.err.(type) {
787 case dependencyError:
788 depErrors[err.nested()]++
789 default:
790 pkg.errs = append(pkg.errs, err)
791 }
792 default:
793 pkg.errs = append(pkg.errs, err)
794 }
795 }
796 for err, count := range depErrors {
797 pkg.errs = append(pkg.errs,
798 fmt.Errorf("could not run %s@%s, preventing %d analyzers from running: %s", err.dep, pkg, count, err.err))
799 }
800
801 // We can't process ignores at this point because `unused` needs
802 // to see more than one package to make its decision.
803 ignores, problems := parseDirectives(pkg.Package)
804 pkg.ignores = append(pkg.ignores, ignores...)
805 pkg.problems = append(pkg.problems, problems...)
806 for _, ac := range acs {
807 pkg.problems = append(pkg.problems, ac.problems...)
808 }
809
810 if pkg.initial {
811 // Only initial packages have these analyzers run, and only
812 // initial packages need these.
813 if pkg.results[r.analyzerIDs.get(config.Analyzer)].v != nil {
814 pkg.cfg = pkg.results[r.analyzerIDs.get(config.Analyzer)].v.(*config.Config)
815 }
816 pkg.gen = pkg.results[r.analyzerIDs.get(facts.Generated)].v.(map[string]facts.Generator)
817 }
818
819 // In a previous version of the code, we would throw away all type
820 // information and reload it from export data. That was
821 // nonsensical. The *types.Package doesn't keep any information
822 // live that export data wouldn't also. We only need to discard
823 // the AST and the TypesInfo maps; that happens after we return
824 // from processPkg.
825}
826
827// hasFacts reports whether an analysis exports any facts. An analysis
828// that has a transitive dependency that exports facts is considered
829// to be exporting facts.
830func (r *Runner) hasFacts(a *analysis.Analyzer) bool {
831 ret := false
832 seen := make([]bool, len(r.analyzerIDs.m))
833 var dfs func(*analysis.Analyzer)
834 dfs = func(a *analysis.Analyzer) {
835 if seen[r.analyzerIDs.get(a)] {
836 return
837 }
838 seen[r.analyzerIDs.get(a)] = true
839 if len(a.FactTypes) > 0 {
840 ret = true
841 }
842 for _, req := range a.Requires {
843 if ret {
844 break
845 }
846 dfs(req)
847 }
848 }
849 dfs(a)
850 return ret
851}
852
853func parseDirective(s string) (cmd string, args []string) {
854 if !strings.HasPrefix(s, "//lint:") {
855 return "", nil
856 }
857 s = strings.TrimPrefix(s, "//lint:")
858 fields := strings.Split(s, " ")
859 return fields[0], fields[1:]
860}
861
862// parseDirectives extracts all linter directives from the source
863// files of the package. Malformed directives are returned as problems.
864func parseDirectives(pkg *packages.Package) ([]Ignore, []Problem) {
865 var ignores []Ignore
866 var problems []Problem
867
868 for _, f := range pkg.Syntax {
869 found := false
870 commentLoop:
871 for _, cg := range f.Comments {
872 for _, c := range cg.List {
873 if strings.Contains(c.Text, "//lint:") {
874 found = true
875 break commentLoop
876 }
877 }
878 }
879 if !found {
880 continue
881 }
882 cm := ast.NewCommentMap(pkg.Fset, f, f.Comments)
883 for node, cgs := range cm {
884 for _, cg := range cgs {
885 for _, c := range cg.List {
886 if !strings.HasPrefix(c.Text, "//lint:") {
887 continue
888 }
889 cmd, args := parseDirective(c.Text)
890 switch cmd {
891 case "ignore", "file-ignore":
892 if len(args) < 2 {
893 p := Problem{
894 Pos: DisplayPosition(pkg.Fset, c.Pos()),
895 Message: "malformed linter directive; missing the required reason field?",
896 Severity: Error,
897 Check: "compile",
898 }
899 problems = append(problems, p)
900 continue
901 }
902 default:
903 // unknown directive, ignore
904 continue
905 }
906 checks := strings.Split(args[0], ",")
907 pos := DisplayPosition(pkg.Fset, node.Pos())
908 var ig Ignore
909 switch cmd {
910 case "ignore":
911 ig = &LineIgnore{
912 File: pos.Filename,
913 Line: pos.Line,
914 Checks: checks,
915 Pos: c.Pos(),
916 }
917 case "file-ignore":
918 ig = &FileIgnore{
919 File: pos.Filename,
920 Checks: checks,
921 }
922 }
923 ignores = append(ignores, ig)
924 }
925 }
926 }
927 }
928
929 return ignores, problems
930}
931
932// packageHash computes a package's hash. The hash is based on all Go
933// files that make up the package, as well as the hashes of imported
934// packages.
935func packageHash(pkg *Package) (string, error) {
936 key := cache.NewHash("package hash")
937 fmt.Fprintf(key, "pkgpath %s\n", pkg.PkgPath)
938 for _, f := range pkg.CompiledGoFiles {
939 h, err := cache.FileHash(f)
940 if err != nil {
941 return "", err
942 }
943 fmt.Fprintf(key, "file %s %x\n", f, h)
944 }
945
946 imps := make([]*Package, len(pkg.Imports))
947 copy(imps, pkg.Imports)
948 sort.Slice(imps, func(i, j int) bool {
949 return imps[i].PkgPath < imps[j].PkgPath
950 })
951 for _, dep := range imps {
952 if dep.PkgPath == "unsafe" {
953 continue
954 }
955
956 fmt.Fprintf(key, "import %s %s\n", dep.PkgPath, dep.hash)
957 }
958 h := key.Sum()
959 return hex.EncodeToString(h[:]), nil
960}
961
962// passActionID computes an ActionID for an analysis pass.
963func passActionID(pkg *Package, analyzer *analysis.Analyzer) (cache.ActionID, error) {
964 key := cache.NewHash("action ID")
965 fmt.Fprintf(key, "pkgpath %s\n", pkg.PkgPath)
966 fmt.Fprintf(key, "pkghash %s\n", pkg.hash)
967 fmt.Fprintf(key, "analyzer %s\n", analyzer.Name)
968
969 return key.Sum(), nil
970}
diff --git a/vendor/honnef.co/go/tools/lint/stats.go b/vendor/honnef.co/go/tools/lint/stats.go
new file mode 100644
index 0000000..2f65085
--- /dev/null
+++ b/vendor/honnef.co/go/tools/lint/stats.go
@@ -0,0 +1,20 @@
1package lint
2
3const (
4 StateInitializing = 0
5 StateGraph = 1
6 StateProcessing = 2
7 StateCumulative = 3
8)
9
10type Stats struct {
11 State uint32
12
13 InitialPackages uint32
14 TotalPackages uint32
15 ProcessedPackages uint32
16 ProcessedInitialPackages uint32
17 Problems uint32
18 ActiveWorkers uint32
19 TotalWorkers uint32
20}
diff --git a/vendor/honnef.co/go/tools/loader/loader.go b/vendor/honnef.co/go/tools/loader/loader.go
new file mode 100644
index 0000000..9c6885d
--- /dev/null
+++ b/vendor/honnef.co/go/tools/loader/loader.go
@@ -0,0 +1,197 @@
1package loader
2
3import (
4 "fmt"
5 "go/ast"
6 "go/parser"
7 "go/scanner"
8 "go/token"
9 "go/types"
10 "log"
11 "os"
12 "sync"
13
14 "golang.org/x/tools/go/gcexportdata"
15 "golang.org/x/tools/go/packages"
16)
17
18type Loader struct {
19 exportMu sync.RWMutex
20}
21
22// Graph resolves patterns and returns packages with all the
23// information required to later load type information, and optionally
24// syntax trees.
25//
26// The provided config can set any setting with the exception of Mode.
27func (ld *Loader) Graph(cfg packages.Config, patterns ...string) ([]*packages.Package, error) {
28 cfg.Mode = packages.NeedName | packages.NeedImports | packages.NeedDeps | packages.NeedExportsFile | packages.NeedFiles | packages.NeedCompiledGoFiles | packages.NeedTypesSizes
29 pkgs, err := packages.Load(&cfg, patterns...)
30 if err != nil {
31 return nil, err
32 }
33 fset := token.NewFileSet()
34 packages.Visit(pkgs, nil, func(pkg *packages.Package) {
35 pkg.Fset = fset
36 })
37 return pkgs, nil
38}
39
40// LoadFromExport loads a package from export data. All of its
41// dependencies must have been loaded already.
42func (ld *Loader) LoadFromExport(pkg *packages.Package) error {
43 ld.exportMu.Lock()
44 defer ld.exportMu.Unlock()
45
46 pkg.IllTyped = true
47 for path, pkg := range pkg.Imports {
48 if pkg.Types == nil {
49 return fmt.Errorf("dependency %q hasn't been loaded yet", path)
50 }
51 }
52 if pkg.ExportFile == "" {
53 return fmt.Errorf("no export data for %q", pkg.ID)
54 }
55 f, err := os.Open(pkg.ExportFile)
56 if err != nil {
57 return err
58 }
59 defer f.Close()
60
61 r, err := gcexportdata.NewReader(f)
62 if err != nil {
63 return err
64 }
65
66 view := make(map[string]*types.Package) // view seen by gcexportdata
67 seen := make(map[*packages.Package]bool) // all visited packages
68 var visit func(pkgs map[string]*packages.Package)
69 visit = func(pkgs map[string]*packages.Package) {
70 for _, pkg := range pkgs {
71 if !seen[pkg] {
72 seen[pkg] = true
73 view[pkg.PkgPath] = pkg.Types
74 visit(pkg.Imports)
75 }
76 }
77 }
78 visit(pkg.Imports)
79 tpkg, err := gcexportdata.Read(r, pkg.Fset, view, pkg.PkgPath)
80 if err != nil {
81 return err
82 }
83 pkg.Types = tpkg
84 pkg.IllTyped = false
85 return nil
86}
87
88// LoadFromSource loads a package from source. All of its dependencies
89// must have been loaded already.
90func (ld *Loader) LoadFromSource(pkg *packages.Package) error {
91 ld.exportMu.RLock()
92 defer ld.exportMu.RUnlock()
93
94 pkg.IllTyped = true
95 pkg.Types = types.NewPackage(pkg.PkgPath, pkg.Name)
96
97 // OPT(dh): many packages have few files, much fewer than there
98 // are CPU cores. Additionally, parsing each individual file is
99 // very fast. A naive parallel implementation of this loop won't
100 // be faster, and tends to be slower due to extra scheduling,
101 // bookkeeping and potentially false sharing of cache lines.
102 pkg.Syntax = make([]*ast.File, len(pkg.CompiledGoFiles))
103 for i, file := range pkg.CompiledGoFiles {
104 f, err := parser.ParseFile(pkg.Fset, file, nil, parser.ParseComments)
105 if err != nil {
106 pkg.Errors = append(pkg.Errors, convertError(err)...)
107 return err
108 }
109 pkg.Syntax[i] = f
110 }
111 pkg.TypesInfo = &types.Info{
112 Types: make(map[ast.Expr]types.TypeAndValue),
113 Defs: make(map[*ast.Ident]types.Object),
114 Uses: make(map[*ast.Ident]types.Object),
115 Implicits: make(map[ast.Node]types.Object),
116 Scopes: make(map[ast.Node]*types.Scope),
117 Selections: make(map[*ast.SelectorExpr]*types.Selection),
118 }
119
120 importer := func(path string) (*types.Package, error) {
121 if path == "unsafe" {
122 return types.Unsafe, nil
123 }
124 imp := pkg.Imports[path]
125 if imp == nil {
126 return nil, nil
127 }
128 if len(imp.Errors) > 0 {
129 return nil, imp.Errors[0]
130 }
131 return imp.Types, nil
132 }
133 tc := &types.Config{
134 Importer: importerFunc(importer),
135 Error: func(err error) {
136 pkg.Errors = append(pkg.Errors, convertError(err)...)
137 },
138 }
139 err := types.NewChecker(tc, pkg.Fset, pkg.Types, pkg.TypesInfo).Files(pkg.Syntax)
140 if err != nil {
141 return err
142 }
143 pkg.IllTyped = false
144 return nil
145}
146
147func convertError(err error) []packages.Error {
148 var errs []packages.Error
149 // taken from go/packages
150 switch err := err.(type) {
151 case packages.Error:
152 // from driver
153 errs = append(errs, err)
154
155 case *os.PathError:
156 // from parser
157 errs = append(errs, packages.Error{
158 Pos: err.Path + ":1",
159 Msg: err.Err.Error(),
160 Kind: packages.ParseError,
161 })
162
163 case scanner.ErrorList:
164 // from parser
165 for _, err := range err {
166 errs = append(errs, packages.Error{
167 Pos: err.Pos.String(),
168 Msg: err.Msg,
169 Kind: packages.ParseError,
170 })
171 }
172
173 case types.Error:
174 // from type checker
175 errs = append(errs, packages.Error{
176 Pos: err.Fset.Position(err.Pos).String(),
177 Msg: err.Msg,
178 Kind: packages.TypeError,
179 })
180
181 default:
182 // unexpected impoverished error from parser?
183 errs = append(errs, packages.Error{
184 Pos: "-",
185 Msg: err.Error(),
186 Kind: packages.UnknownError,
187 })
188
189 // If you see this error message, please file a bug.
190 log.Printf("internal error: error %q (%T) without position", err, err)
191 }
192 return errs
193}
194
195type importerFunc func(path string) (*types.Package, error)
196
197func (f importerFunc) Import(path string) (*types.Package, error) { return f(path) }
diff --git a/vendor/honnef.co/go/tools/printf/fuzz.go b/vendor/honnef.co/go/tools/printf/fuzz.go
new file mode 100644
index 0000000..8ebf357
--- /dev/null
+++ b/vendor/honnef.co/go/tools/printf/fuzz.go
@@ -0,0 +1,11 @@
1// +build gofuzz
2
3package printf
4
5func Fuzz(data []byte) int {
6 _, err := Parse(string(data))
7 if err == nil {
8 return 1
9 }
10 return 0
11}
diff --git a/vendor/honnef.co/go/tools/printf/printf.go b/vendor/honnef.co/go/tools/printf/printf.go
new file mode 100644
index 0000000..754db9b
--- /dev/null
+++ b/vendor/honnef.co/go/tools/printf/printf.go
@@ -0,0 +1,197 @@
1// Package printf implements a parser for fmt.Printf-style format
2// strings.
3//
4// It parses verbs according to the following syntax:
5// Numeric -> '0'-'9'
6// Letter -> 'a'-'z' | 'A'-'Z'
7// Index -> '[' Numeric+ ']'
8// Star -> '*'
9// Star -> Index '*'
10//
11// Precision -> Numeric+ | Star
12// Width -> Numeric+ | Star
13//
14// WidthAndPrecision -> Width '.' Precision
15// WidthAndPrecision -> Width '.'
16// WidthAndPrecision -> Width
17// WidthAndPrecision -> '.' Precision
18// WidthAndPrecision -> '.'
19//
20// Flag -> '+' | '-' | '#' | ' ' | '0'
21// Verb -> Letter | '%'
22//
23// Input -> '%' [ Flag+ ] [ WidthAndPrecision ] [ Index ] Verb
24package printf
25
26import (
27 "errors"
28 "regexp"
29 "strconv"
30 "strings"
31)
32
33// ErrInvalid is returned for invalid format strings or verbs.
34var ErrInvalid = errors.New("invalid format string")
35
36type Verb struct {
37 Letter rune
38 Flags string
39
40 Width Argument
41 Precision Argument
42 // Which value in the argument list the verb uses.
43 // -1 denotes the next argument,
44 // values > 0 denote explicit arguments.
45 // The value 0 denotes that no argument is consumed. This is the case for %%.
46 Value int
47
48 Raw string
49}
50
51// Argument is an implicit or explicit width or precision.
52type Argument interface {
53 isArgument()
54}
55
56// The Default value, when no width or precision is provided.
57type Default struct{}
58
59// Zero is the implicit zero value.
60// This value may only appear for precisions in format strings like %6.f
61type Zero struct{}
62
63// Star is a * value, which may either refer to the next argument (Index == -1) or an explicit argument.
64type Star struct{ Index int }
65
66// A Literal value, such as 6 in %6d.
67type Literal int
68
69func (Default) isArgument() {}
70func (Zero) isArgument() {}
71func (Star) isArgument() {}
72func (Literal) isArgument() {}
73
74// Parse parses f and returns a list of actions.
75// An action may either be a literal string, or a Verb.
76func Parse(f string) ([]interface{}, error) {
77 var out []interface{}
78 for len(f) > 0 {
79 if f[0] == '%' {
80 v, n, err := ParseVerb(f)
81 if err != nil {
82 return nil, err
83 }
84 f = f[n:]
85 out = append(out, v)
86 } else {
87 n := strings.IndexByte(f, '%')
88 if n > -1 {
89 out = append(out, f[:n])
90 f = f[n:]
91 } else {
92 out = append(out, f)
93 f = ""
94 }
95 }
96 }
97
98 return out, nil
99}
100
101func atoi(s string) int {
102 n, _ := strconv.Atoi(s)
103 return n
104}
105
106// ParseVerb parses the verb at the beginning of f.
107// It returns the verb, how much of the input was consumed, and an error, if any.
108func ParseVerb(f string) (Verb, int, error) {
109 if len(f) < 2 {
110 return Verb{}, 0, ErrInvalid
111 }
112 const (
113 flags = 1
114
115 width = 2
116 widthStar = 3
117 widthIndex = 5
118
119 dot = 6
120 prec = 7
121 precStar = 8
122 precIndex = 10
123
124 verbIndex = 11
125 verb = 12
126 )
127
128 m := re.FindStringSubmatch(f)
129 if m == nil {
130 return Verb{}, 0, ErrInvalid
131 }
132
133 v := Verb{
134 Letter: []rune(m[verb])[0],
135 Flags: m[flags],
136 Raw: m[0],
137 }
138
139 if m[width] != "" {
140 // Literal width
141 v.Width = Literal(atoi(m[width]))
142 } else if m[widthStar] != "" {
143 // Star width
144 if m[widthIndex] != "" {
145 v.Width = Star{atoi(m[widthIndex])}
146 } else {
147 v.Width = Star{-1}
148 }
149 } else {
150 // Default width
151 v.Width = Default{}
152 }
153
154 if m[dot] == "" {
155 // default precision
156 v.Precision = Default{}
157 } else {
158 if m[prec] != "" {
159 // Literal precision
160 v.Precision = Literal(atoi(m[prec]))
161 } else if m[precStar] != "" {
162 // Star precision
163 if m[precIndex] != "" {
164 v.Precision = Star{atoi(m[precIndex])}
165 } else {
166 v.Precision = Star{-1}
167 }
168 } else {
169 // Zero precision
170 v.Precision = Zero{}
171 }
172 }
173
174 if m[verb] == "%" {
175 v.Value = 0
176 } else if m[verbIndex] != "" {
177 v.Value = atoi(m[verbIndex])
178 } else {
179 v.Value = -1
180 }
181
182 return v, len(m[0]), nil
183}
184
185const (
186 flags = `([+#0 -]*)`
187 verb = `([a-zA-Z%])`
188 index = `(?:\[([0-9]+)\])`
189 star = `((` + index + `)?\*)`
190 width1 = `([0-9]+)`
191 width2 = star
192 width = `(?:` + width1 + `|` + width2 + `)`
193 precision = width
194 widthAndPrecision = `(?:(?:` + width + `)?(?:(\.)(?:` + precision + `)?)?)`
195)
196
197var re = regexp.MustCompile(`^%` + flags + widthAndPrecision + `?` + index + `?` + verb)
diff --git a/vendor/honnef.co/go/tools/simple/CONTRIBUTING.md b/vendor/honnef.co/go/tools/simple/CONTRIBUTING.md
new file mode 100644
index 0000000..c54c6c5
--- /dev/null
+++ b/vendor/honnef.co/go/tools/simple/CONTRIBUTING.md
@@ -0,0 +1,15 @@
1# Contributing to gosimple
2
3## Before filing an issue:
4
5### Are you having trouble building gosimple?
6
7Check you have the latest version of its dependencies. Run
8```
9go get -u honnef.co/go/tools/simple
10```
11If you still have problems, consider searching for existing issues before filing a new issue.
12
13## Before sending a pull request:
14
15Have you understood the purpose of gosimple? Make sure to carefully read `README`.
diff --git a/vendor/honnef.co/go/tools/simple/analysis.go b/vendor/honnef.co/go/tools/simple/analysis.go
new file mode 100644
index 0000000..abb1648
--- /dev/null
+++ b/vendor/honnef.co/go/tools/simple/analysis.go
@@ -0,0 +1,223 @@
1package simple
2
3import (
4 "flag"
5
6 "golang.org/x/tools/go/analysis"
7 "golang.org/x/tools/go/analysis/passes/inspect"
8 "honnef.co/go/tools/facts"
9 "honnef.co/go/tools/internal/passes/buildssa"
10 "honnef.co/go/tools/lint/lintutil"
11)
12
13func newFlagSet() flag.FlagSet {
14 fs := flag.NewFlagSet("", flag.PanicOnError)
15 fs.Var(lintutil.NewVersionFlag(), "go", "Target Go version")
16 return *fs
17}
18
19var Analyzers = map[string]*analysis.Analyzer{
20 "S1000": {
21 Name: "S1000",
22 Run: LintSingleCaseSelect,
23 Doc: Docs["S1000"].String(),
24 Requires: []*analysis.Analyzer{inspect.Analyzer, facts.Generated},
25 Flags: newFlagSet(),
26 },
27 "S1001": {
28 Name: "S1001",
29 Run: LintLoopCopy,
30 Doc: Docs["S1001"].String(),
31 Requires: []*analysis.Analyzer{inspect.Analyzer, facts.Generated},
32 Flags: newFlagSet(),
33 },
34 "S1002": {
35 Name: "S1002",
36 Run: LintIfBoolCmp,
37 Doc: Docs["S1002"].String(),
38 Requires: []*analysis.Analyzer{inspect.Analyzer, facts.Generated},
39 Flags: newFlagSet(),
40 },
41 "S1003": {
42 Name: "S1003",
43 Run: LintStringsContains,
44 Doc: Docs["S1003"].String(),
45 Requires: []*analysis.Analyzer{inspect.Analyzer, facts.Generated},
46 Flags: newFlagSet(),
47 },
48 "S1004": {
49 Name: "S1004",
50 Run: LintBytesCompare,
51 Doc: Docs["S1004"].String(),
52 Requires: []*analysis.Analyzer{inspect.Analyzer, facts.Generated},
53 Flags: newFlagSet(),
54 },
55 "S1005": {
56 Name: "S1005",
57 Run: LintUnnecessaryBlank,
58 Doc: Docs["S1005"].String(),
59 Requires: []*analysis.Analyzer{inspect.Analyzer, facts.Generated},
60 Flags: newFlagSet(),
61 },
62 "S1006": {
63 Name: "S1006",
64 Run: LintForTrue,
65 Doc: Docs["S1006"].String(),
66 Requires: []*analysis.Analyzer{inspect.Analyzer, facts.Generated},
67 Flags: newFlagSet(),
68 },
69 "S1007": {
70 Name: "S1007",
71 Run: LintRegexpRaw,
72 Doc: Docs["S1007"].String(),
73 Requires: []*analysis.Analyzer{inspect.Analyzer, facts.Generated},
74 Flags: newFlagSet(),
75 },
76 "S1008": {
77 Name: "S1008",
78 Run: LintIfReturn,
79 Doc: Docs["S1008"].String(),
80 Requires: []*analysis.Analyzer{inspect.Analyzer, facts.Generated},
81 Flags: newFlagSet(),
82 },
83 "S1009": {
84 Name: "S1009",
85 Run: LintRedundantNilCheckWithLen,
86 Doc: Docs["S1009"].String(),
87 Requires: []*analysis.Analyzer{inspect.Analyzer, facts.Generated},
88 Flags: newFlagSet(),
89 },
90 "S1010": {
91 Name: "S1010",
92 Run: LintSlicing,
93 Doc: Docs["S1010"].String(),
94 Requires: []*analysis.Analyzer{inspect.Analyzer, facts.Generated},
95 Flags: newFlagSet(),
96 },
97 "S1011": {
98 Name: "S1011",
99 Run: LintLoopAppend,
100 Doc: Docs["S1011"].String(),
101 Requires: []*analysis.Analyzer{inspect.Analyzer, facts.Generated},
102 Flags: newFlagSet(),
103 },
104 "S1012": {
105 Name: "S1012",
106 Run: LintTimeSince,
107 Doc: Docs["S1012"].String(),
108 Requires: []*analysis.Analyzer{inspect.Analyzer, facts.Generated},
109 Flags: newFlagSet(),
110 },
111 "S1016": {
112 Name: "S1016",
113 Run: LintSimplerStructConversion,
114 Doc: Docs["S1016"].String(),
115 Requires: []*analysis.Analyzer{inspect.Analyzer, facts.Generated},
116 Flags: newFlagSet(),
117 },
118 "S1017": {
119 Name: "S1017",
120 Run: LintTrim,
121 Doc: Docs["S1017"].String(),
122 Requires: []*analysis.Analyzer{inspect.Analyzer, facts.Generated},
123 Flags: newFlagSet(),
124 },
125 "S1018": {
126 Name: "S1018",
127 Run: LintLoopSlide,
128 Doc: Docs["S1018"].String(),
129 Requires: []*analysis.Analyzer{inspect.Analyzer, facts.Generated},
130 Flags: newFlagSet(),
131 },
132 "S1019": {
133 Name: "S1019",
134 Run: LintMakeLenCap,
135 Doc: Docs["S1019"].String(),
136 Requires: []*analysis.Analyzer{inspect.Analyzer, facts.Generated},
137 Flags: newFlagSet(),
138 },
139 "S1020": {
140 Name: "S1020",
141 Run: LintAssertNotNil,
142 Doc: Docs["S1020"].String(),
143 Requires: []*analysis.Analyzer{inspect.Analyzer, facts.Generated},
144 Flags: newFlagSet(),
145 },
146 "S1021": {
147 Name: "S1021",
148 Run: LintDeclareAssign,
149 Doc: Docs["S1021"].String(),
150 Requires: []*analysis.Analyzer{inspect.Analyzer, facts.Generated},
151 Flags: newFlagSet(),
152 },
153 "S1023": {
154 Name: "S1023",
155 Run: LintRedundantBreak,
156 Doc: Docs["S1023"].String(),
157 Requires: []*analysis.Analyzer{inspect.Analyzer, facts.Generated},
158 Flags: newFlagSet(),
159 },
160 "S1024": {
161 Name: "S1024",
162 Run: LintTimeUntil,
163 Doc: Docs["S1024"].String(),
164 Requires: []*analysis.Analyzer{inspect.Analyzer, facts.Generated},
165 Flags: newFlagSet(),
166 },
167 "S1025": {
168 Name: "S1025",
169 Run: LintRedundantSprintf,
170 Doc: Docs["S1025"].String(),
171 Requires: []*analysis.Analyzer{buildssa.Analyzer, inspect.Analyzer, facts.Generated},
172 Flags: newFlagSet(),
173 },
174 "S1028": {
175 Name: "S1028",
176 Run: LintErrorsNewSprintf,
177 Doc: Docs["S1028"].String(),
178 Requires: []*analysis.Analyzer{inspect.Analyzer, facts.Generated},
179 Flags: newFlagSet(),
180 },
181 "S1029": {
182 Name: "S1029",
183 Run: LintRangeStringRunes,
184 Doc: Docs["S1029"].String(),
185 Requires: []*analysis.Analyzer{buildssa.Analyzer},
186 Flags: newFlagSet(),
187 },
188 "S1030": {
189 Name: "S1030",
190 Run: LintBytesBufferConversions,
191 Doc: Docs["S1030"].String(),
192 Requires: []*analysis.Analyzer{inspect.Analyzer, facts.Generated},
193 Flags: newFlagSet(),
194 },
195 "S1031": {
196 Name: "S1031",
197 Run: LintNilCheckAroundRange,
198 Doc: Docs["S1031"].String(),
199 Requires: []*analysis.Analyzer{inspect.Analyzer, facts.Generated},
200 Flags: newFlagSet(),
201 },
202 "S1032": {
203 Name: "S1032",
204 Run: LintSortHelpers,
205 Doc: Docs["S1032"].String(),
206 Requires: []*analysis.Analyzer{inspect.Analyzer, facts.Generated},
207 Flags: newFlagSet(),
208 },
209 "S1033": {
210 Name: "S1033",
211 Run: LintGuardedDelete,
212 Doc: Docs["S1033"].String(),
213 Requires: []*analysis.Analyzer{inspect.Analyzer, facts.Generated},
214 Flags: newFlagSet(),
215 },
216 "S1034": {
217 Name: "S1034",
218 Run: LintSimplifyTypeSwitch,
219 Doc: Docs["S1034"].String(),
220 Requires: []*analysis.Analyzer{inspect.Analyzer, facts.Generated},
221 Flags: newFlagSet(),
222 },
223}
diff --git a/vendor/honnef.co/go/tools/simple/doc.go b/vendor/honnef.co/go/tools/simple/doc.go
new file mode 100644
index 0000000..eb0072d
--- /dev/null
+++ b/vendor/honnef.co/go/tools/simple/doc.go
@@ -0,0 +1,425 @@
1package simple
2
3import "honnef.co/go/tools/lint"
4
5var Docs = map[string]*lint.Documentation{
6 "S1000": &lint.Documentation{
7 Title: `Use plain channel send or receive instead of single-case select`,
8 Text: `Select statements with a single case can be replaced with a simple
9send or receive.
10
11Before:
12
13 select {
14 case x := <-ch:
15 fmt.Println(x)
16 }
17
18After:
19
20 x := <-ch
21 fmt.Println(x)`,
22 Since: "2017.1",
23 },
24
25 "S1001": &lint.Documentation{
26 Title: `Replace for loop with call to copy`,
27 Text: `Use copy() for copying elements from one slice to another.
28
29Before:
30
31 for i, x := range src {
32 dst[i] = x
33 }
34
35After:
36
37 copy(dst, src)`,
38 Since: "2017.1",
39 },
40
41 "S1002": &lint.Documentation{
42 Title: `Omit comparison with boolean constant`,
43 Text: `Before:
44
45 if x == true {}
46
47After:
48
49 if x {}`,
50 Since: "2017.1",
51 },
52
53 "S1003": &lint.Documentation{
54 Title: `Replace call to strings.Index with strings.Contains`,
55 Text: `Before:
56
57 if strings.Index(x, y) != -1 {}
58
59After:
60
61 if strings.Contains(x, y) {}`,
62 Since: "2017.1",
63 },
64
65 "S1004": &lint.Documentation{
66 Title: `Replace call to bytes.Compare with bytes.Equal`,
67 Text: `Before:
68
69 if bytes.Compare(x, y) == 0 {}
70
71After:
72
73 if bytes.Equal(x, y) {}`,
74 Since: "2017.1",
75 },
76
77 "S1005": &lint.Documentation{
78 Title: `Drop unnecessary use of the blank identifier`,
79 Text: `In many cases, assigning to the blank identifier is unnecessary.
80
81Before:
82
83 for _ = range s {}
84 x, _ = someMap[key]
85 _ = <-ch
86
87After:
88
89 for range s{}
90 x = someMap[key]
91 <-ch`,
92 Since: "2017.1",
93 },
94
95 "S1006": &lint.Documentation{
96 Title: `Use for { ... } for infinite loops`,
97 Text: `For infinite loops, using for { ... } is the most idiomatic choice.`,
98 Since: "2017.1",
99 },
100
101 "S1007": &lint.Documentation{
102 Title: `Simplify regular expression by using raw string literal`,
103 Text: `Raw string literals use ` + "`" + ` instead of " and do not support
104any escape sequences. This means that the backslash (\) can be used
105freely, without the need of escaping.
106
107Since regular expressions have their own escape sequences, raw strings
108can improve their readability.
109
110Before:
111
112 regexp.Compile("\\A(\\w+) profile: total \\d+\\n\\z")
113
114After:
115
116 regexp.Compile(` + "`" + `\A(\w+) profile: total \d+\n\z` + "`" + `)`,
117 Since: "2017.1",
118 },
119
120 "S1008": &lint.Documentation{
121 Title: `Simplify returning boolean expression`,
122 Text: `Before:
123
124 if <expr> {
125 return true
126 }
127 return false
128
129After:
130
131 return <expr>`,
132 Since: "2017.1",
133 },
134
135 "S1009": &lint.Documentation{
136 Title: `Omit redundant nil check on slices`,
137 Text: `The len function is defined for all slices, even nil ones, which have
138a length of zero. It is not necessary to check if a slice is not nil
139before checking that its length is not zero.
140
141Before:
142
143 if x != nil && len(x) != 0 {}
144
145After:
146
147 if len(x) != 0 {}`,
148 Since: "2017.1",
149 },
150
151 "S1010": &lint.Documentation{
152 Title: `Omit default slice index`,
153 Text: `When slicing, the second index defaults to the length of the value,
154making s[n:len(s)] and s[n:] equivalent.`,
155 Since: "2017.1",
156 },
157
158 "S1011": &lint.Documentation{
159 Title: `Use a single append to concatenate two slices`,
160 Text: `Before:
161
162 for _, e := range y {
163 x = append(x, e)
164 }
165
166After:
167
168 x = append(x, y...)`,
169 Since: "2017.1",
170 },
171
172 "S1012": &lint.Documentation{
173 Title: `Replace time.Now().Sub(x) with time.Since(x)`,
174 Text: `The time.Since helper has the same effect as using time.Now().Sub(x)
175but is easier to read.
176
177Before:
178
179 time.Now().Sub(x)
180
181After:
182
183 time.Since(x)`,
184 Since: "2017.1",
185 },
186
187 "S1016": &lint.Documentation{
188 Title: `Use a type conversion instead of manually copying struct fields`,
189 Text: `Two struct types with identical fields can be converted between each
190other. In older versions of Go, the fields had to have identical
191struct tags. Since Go 1.8, however, struct tags are ignored during
192conversions. It is thus not necessary to manually copy every field
193individually.
194
195Before:
196
197 var x T1
198 y := T2{
199 Field1: x.Field1,
200 Field2: x.Field2,
201 }
202
203After:
204
205 var x T1
206 y := T2(x)`,
207 Since: "2017.1",
208 },
209
210 "S1017": &lint.Documentation{
211 Title: `Replace manual trimming with strings.TrimPrefix`,
212 Text: `Instead of using strings.HasPrefix and manual slicing, use the
213strings.TrimPrefix function. If the string doesn't start with the
214prefix, the original string will be returned. Using strings.TrimPrefix
215reduces complexity, and avoids common bugs, such as off-by-one
216mistakes.
217
218Before:
219
220 if strings.HasPrefix(str, prefix) {
221 str = str[len(prefix):]
222 }
223
224After:
225
226 str = strings.TrimPrefix(str, prefix)`,
227 Since: "2017.1",
228 },
229
230 "S1018": &lint.Documentation{
231 Title: `Use copy for sliding elements`,
232 Text: `copy() permits using the same source and destination slice, even with
233overlapping ranges. This makes it ideal for sliding elements in a
234slice.
235
236Before:
237
238 for i := 0; i < n; i++ {
239 bs[i] = bs[offset+i]
240 }
241
242After:
243
244 copy(bs[:n], bs[offset:])`,
245 Since: "2017.1",
246 },
247
248 "S1019": &lint.Documentation{
249 Title: `Simplify make call by omitting redundant arguments`,
250 Text: `The make function has default values for the length and capacity
251arguments. For channels and maps, the length defaults to zero.
252Additionally, for slices the capacity defaults to the length.`,
253 Since: "2017.1",
254 },
255
256 "S1020": &lint.Documentation{
257 Title: `Omit redundant nil check in type assertion`,
258 Text: `Before:
259
260 if _, ok := i.(T); ok && i != nil {}
261
262After:
263
264 if _, ok := i.(T); ok {}`,
265 Since: "2017.1",
266 },
267
268 "S1021": &lint.Documentation{
269 Title: `Merge variable declaration and assignment`,
270 Text: `Before:
271
272 var x uint
273 x = 1
274
275After:
276
277 var x uint = 1`,
278 Since: "2017.1",
279 },
280
281 "S1023": &lint.Documentation{
282 Title: `Omit redundant control flow`,
283 Text: `Functions that have no return value do not need a return statement as
284the final statement of the function.
285
286Switches in Go do not have automatic fallthrough, unlike languages
287like C. It is not necessary to have a break statement as the final
288statement in a case block.`,
289 Since: "2017.1",
290 },
291
292 "S1024": &lint.Documentation{
293 Title: `Replace x.Sub(time.Now()) with time.Until(x)`,
294 Text: `The time.Until helper has the same effect as using x.Sub(time.Now())
295but is easier to read.
296
297Before:
298
299 x.Sub(time.Now())
300
301After:
302
303 time.Until(x)`,
304 Since: "2017.1",
305 },
306
307 "S1025": &lint.Documentation{
308 Title: `Don't use fmt.Sprintf("%s", x) unnecessarily`,
309 Text: `In many instances, there are easier and more efficient ways of getting
310a value's string representation. Whenever a value's underlying type is
311a string already, or the type has a String method, they should be used
312directly.
313
314Given the following shared definitions
315
316 type T1 string
317 type T2 int
318
319 func (T2) String() string { return "Hello, world" }
320
321 var x string
322 var y T1
323 var z T2
324
325we can simplify the following
326
327 fmt.Sprintf("%s", x)
328 fmt.Sprintf("%s", y)
329 fmt.Sprintf("%s", z)
330
331to
332
333 x
334 string(y)
335 z.String()`,
336 Since: "2017.1",
337 },
338
339 "S1028": &lint.Documentation{
340 Title: `Simplify error construction with fmt.Errorf`,
341 Text: `Before:
342
343 errors.New(fmt.Sprintf(...))
344
345After:
346
347 fmt.Errorf(...)`,
348 Since: "2017.1",
349 },
350
351 "S1029": &lint.Documentation{
352 Title: `Range over the string directly`,
353 Text: `Ranging over a string will yield byte offsets and runes. If the offset
354isn't used, this is functionally equivalent to converting the string
355to a slice of runes and ranging over that. Ranging directly over the
356string will be more performant, however, as it avoids allocating a new
357slice, the size of which depends on the length of the string.
358
359Before:
360
361 for _, r := range []rune(s) {}
362
363After:
364
365 for _, r := range s {}`,
366 Since: "2017.1",
367 },
368
369 "S1030": &lint.Documentation{
370 Title: `Use bytes.Buffer.String or bytes.Buffer.Bytes`,
371 Text: `bytes.Buffer has both a String and a Bytes method. It is never
372necessary to use string(buf.Bytes()) or []byte(buf.String()) – simply
373use the other method.`,
374 Since: "2017.1",
375 },
376
377 "S1031": &lint.Documentation{
378 Title: `Omit redundant nil check around loop`,
379 Text: `You can use range on nil slices and maps, the loop will simply never
380execute. This makes an additional nil check around the loop
381unnecessary.
382
383Before:
384
385 if s != nil {
386 for _, x := range s {
387 ...
388 }
389 }
390
391After:
392
393 for _, x := range s {
394 ...
395 }`,
396 Since: "2017.1",
397 },
398
399 "S1032": &lint.Documentation{
400 Title: `Use sort.Ints(x), sort.Float64s(x), and sort.Strings(x)`,
401 Text: `The sort.Ints, sort.Float64s and sort.Strings functions are easier to
402read than sort.Sort(sort.IntSlice(x)), sort.Sort(sort.Float64Slice(x))
403and sort.Sort(sort.StringSlice(x)).
404
405Before:
406
407 sort.Sort(sort.StringSlice(x))
408
409After:
410
411 sort.Strings(x)`,
412 Since: "2019.1",
413 },
414
415 "S1033": &lint.Documentation{
416 Title: `Unnecessary guard around call to delete`,
417 Text: `Calling delete on a nil map is a no-op.`,
418 Since: "2019.2",
419 },
420
421 "S1034": &lint.Documentation{
422 Title: `Use result of type assertion to simplify cases`,
423 Since: "2019.2",
424 },
425}
diff --git a/vendor/honnef.co/go/tools/simple/lint.go b/vendor/honnef.co/go/tools/simple/lint.go
new file mode 100644
index 0000000..c78a7bb
--- /dev/null
+++ b/vendor/honnef.co/go/tools/simple/lint.go
@@ -0,0 +1,1816 @@
1// Package simple contains a linter for Go source code.
2package simple // import "honnef.co/go/tools/simple"
3
4import (
5 "fmt"
6 "go/ast"
7 "go/constant"
8 "go/token"
9 "go/types"
10 "reflect"
11 "sort"
12 "strings"
13
14 "golang.org/x/tools/go/analysis"
15 "golang.org/x/tools/go/analysis/passes/inspect"
16 "golang.org/x/tools/go/ast/inspector"
17 "golang.org/x/tools/go/types/typeutil"
18 . "honnef.co/go/tools/arg"
19 "honnef.co/go/tools/internal/passes/buildssa"
20 "honnef.co/go/tools/internal/sharedcheck"
21 "honnef.co/go/tools/lint"
22 . "honnef.co/go/tools/lint/lintdsl"
23)
24
25func LintSingleCaseSelect(pass *analysis.Pass) (interface{}, error) {
26 isSingleSelect := func(node ast.Node) bool {
27 v, ok := node.(*ast.SelectStmt)
28 if !ok {
29 return false
30 }
31 return len(v.Body.List) == 1
32 }
33
34 seen := map[ast.Node]struct{}{}
35 fn := func(node ast.Node) {
36 switch v := node.(type) {
37 case *ast.ForStmt:
38 if len(v.Body.List) != 1 {
39 return
40 }
41 if !isSingleSelect(v.Body.List[0]) {
42 return
43 }
44 if _, ok := v.Body.List[0].(*ast.SelectStmt).Body.List[0].(*ast.CommClause).Comm.(*ast.SendStmt); ok {
45 // Don't suggest using range for channel sends
46 return
47 }
48 seen[v.Body.List[0]] = struct{}{}
49 ReportNodefFG(pass, node, "should use for range instead of for { select {} }")
50 case *ast.SelectStmt:
51 if _, ok := seen[v]; ok {
52 return
53 }
54 if !isSingleSelect(v) {
55 return
56 }
57 ReportNodefFG(pass, node, "should use a simple channel send/receive instead of select with a single case")
58 }
59 }
60 pass.ResultOf[inspect.Analyzer].(*inspector.Inspector).Preorder([]ast.Node{(*ast.ForStmt)(nil), (*ast.SelectStmt)(nil)}, fn)
61 return nil, nil
62}
63
64func LintLoopCopy(pass *analysis.Pass) (interface{}, error) {
65 fn := func(node ast.Node) {
66 loop := node.(*ast.RangeStmt)
67
68 if loop.Key == nil {
69 return
70 }
71 if len(loop.Body.List) != 1 {
72 return
73 }
74 stmt, ok := loop.Body.List[0].(*ast.AssignStmt)
75 if !ok {
76 return
77 }
78 if stmt.Tok != token.ASSIGN || len(stmt.Lhs) != 1 || len(stmt.Rhs) != 1 {
79 return
80 }
81 lhs, ok := stmt.Lhs[0].(*ast.IndexExpr)
82 if !ok {
83 return
84 }
85
86 if _, ok := pass.TypesInfo.TypeOf(lhs.X).(*types.Slice); !ok {
87 return
88 }
89 lidx, ok := lhs.Index.(*ast.Ident)
90 if !ok {
91 return
92 }
93 key, ok := loop.Key.(*ast.Ident)
94 if !ok {
95 return
96 }
97 if pass.TypesInfo.TypeOf(lhs) == nil || pass.TypesInfo.TypeOf(stmt.Rhs[0]) == nil {
98 return
99 }
100 if pass.TypesInfo.ObjectOf(lidx) != pass.TypesInfo.ObjectOf(key) {
101 return
102 }
103 if !types.Identical(pass.TypesInfo.TypeOf(lhs), pass.TypesInfo.TypeOf(stmt.Rhs[0])) {
104 return
105 }
106 if _, ok := pass.TypesInfo.TypeOf(loop.X).(*types.Slice); !ok {
107 return
108 }
109
110 if rhs, ok := stmt.Rhs[0].(*ast.IndexExpr); ok {
111 rx, ok := rhs.X.(*ast.Ident)
112 _ = rx
113 if !ok {
114 return
115 }
116 ridx, ok := rhs.Index.(*ast.Ident)
117 if !ok {
118 return
119 }
120 if pass.TypesInfo.ObjectOf(ridx) != pass.TypesInfo.ObjectOf(key) {
121 return
122 }
123 } else if rhs, ok := stmt.Rhs[0].(*ast.Ident); ok {
124 value, ok := loop.Value.(*ast.Ident)
125 if !ok {
126 return
127 }
128 if pass.TypesInfo.ObjectOf(rhs) != pass.TypesInfo.ObjectOf(value) {
129 return
130 }
131 } else {
132 return
133 }
134 ReportNodefFG(pass, loop, "should use copy() instead of a loop")
135 }
136 pass.ResultOf[inspect.Analyzer].(*inspector.Inspector).Preorder([]ast.Node{(*ast.RangeStmt)(nil)}, fn)
137 return nil, nil
138}
139
140func LintIfBoolCmp(pass *analysis.Pass) (interface{}, error) {
141 fn := func(node ast.Node) {
142 expr := node.(*ast.BinaryExpr)
143 if expr.Op != token.EQL && expr.Op != token.NEQ {
144 return
145 }
146 x := IsBoolConst(pass, expr.X)
147 y := IsBoolConst(pass, expr.Y)
148 if !x && !y {
149 return
150 }
151 var other ast.Expr
152 var val bool
153 if x {
154 val = BoolConst(pass, expr.X)
155 other = expr.Y
156 } else {
157 val = BoolConst(pass, expr.Y)
158 other = expr.X
159 }
160 basic, ok := pass.TypesInfo.TypeOf(other).Underlying().(*types.Basic)
161 if !ok || basic.Kind() != types.Bool {
162 return
163 }
164 op := ""
165 if (expr.Op == token.EQL && !val) || (expr.Op == token.NEQ && val) {
166 op = "!"
167 }
168 r := op + Render(pass, other)
169 l1 := len(r)
170 r = strings.TrimLeft(r, "!")
171 if (l1-len(r))%2 == 1 {
172 r = "!" + r
173 }
174 if IsInTest(pass, node) {
175 return
176 }
177 ReportNodefFG(pass, expr, "should omit comparison to bool constant, can be simplified to %s", r)
178 }
179 pass.ResultOf[inspect.Analyzer].(*inspector.Inspector).Preorder([]ast.Node{(*ast.BinaryExpr)(nil)}, fn)
180 return nil, nil
181}
182
183func LintBytesBufferConversions(pass *analysis.Pass) (interface{}, error) {
184 fn := func(node ast.Node) {
185 call := node.(*ast.CallExpr)
186 if len(call.Args) != 1 {
187 return
188 }
189
190 argCall, ok := call.Args[0].(*ast.CallExpr)
191 if !ok {
192 return
193 }
194 sel, ok := argCall.Fun.(*ast.SelectorExpr)
195 if !ok {
196 return
197 }
198
199 typ := pass.TypesInfo.TypeOf(call.Fun)
200 if typ == types.Universe.Lookup("string").Type() && IsCallToAST(pass, call.Args[0], "(*bytes.Buffer).Bytes") {
201 ReportNodefFG(pass, call, "should use %v.String() instead of %v", Render(pass, sel.X), Render(pass, call))
202 } else if typ, ok := typ.(*types.Slice); ok && typ.Elem() == types.Universe.Lookup("byte").Type() && IsCallToAST(pass, call.Args[0], "(*bytes.Buffer).String") {
203 ReportNodefFG(pass, call, "should use %v.Bytes() instead of %v", Render(pass, sel.X), Render(pass, call))
204 }
205
206 }
207 pass.ResultOf[inspect.Analyzer].(*inspector.Inspector).Preorder([]ast.Node{(*ast.CallExpr)(nil)}, fn)
208 return nil, nil
209}
210
211func LintStringsContains(pass *analysis.Pass) (interface{}, error) {
212 // map of value to token to bool value
213 allowed := map[int64]map[token.Token]bool{
214 -1: {token.GTR: true, token.NEQ: true, token.EQL: false},
215 0: {token.GEQ: true, token.LSS: false},
216 }
217 fn := func(node ast.Node) {
218 expr := node.(*ast.BinaryExpr)
219 switch expr.Op {
220 case token.GEQ, token.GTR, token.NEQ, token.LSS, token.EQL:
221 default:
222 return
223 }
224
225 value, ok := ExprToInt(pass, expr.Y)
226 if !ok {
227 return
228 }
229
230 allowedOps, ok := allowed[value]
231 if !ok {
232 return
233 }
234 b, ok := allowedOps[expr.Op]
235 if !ok {
236 return
237 }
238
239 call, ok := expr.X.(*ast.CallExpr)
240 if !ok {
241 return
242 }
243 sel, ok := call.Fun.(*ast.SelectorExpr)
244 if !ok {
245 return
246 }
247 pkgIdent, ok := sel.X.(*ast.Ident)
248 if !ok {
249 return
250 }
251 funIdent := sel.Sel
252 if pkgIdent.Name != "strings" && pkgIdent.Name != "bytes" {
253 return
254 }
255 newFunc := ""
256 switch funIdent.Name {
257 case "IndexRune":
258 newFunc = "ContainsRune"
259 case "IndexAny":
260 newFunc = "ContainsAny"
261 case "Index":
262 newFunc = "Contains"
263 default:
264 return
265 }
266
267 prefix := ""
268 if !b {
269 prefix = "!"
270 }
271 ReportNodefFG(pass, node, "should use %s%s.%s(%s) instead", prefix, pkgIdent.Name, newFunc, RenderArgs(pass, call.Args))
272 }
273 pass.ResultOf[inspect.Analyzer].(*inspector.Inspector).Preorder([]ast.Node{(*ast.BinaryExpr)(nil)}, fn)
274 return nil, nil
275}
276
277func LintBytesCompare(pass *analysis.Pass) (interface{}, error) {
278 fn := func(node ast.Node) {
279 expr := node.(*ast.BinaryExpr)
280 if expr.Op != token.NEQ && expr.Op != token.EQL {
281 return
282 }
283 call, ok := expr.X.(*ast.CallExpr)
284 if !ok {
285 return
286 }
287 if !IsCallToAST(pass, call, "bytes.Compare") {
288 return
289 }
290 value, ok := ExprToInt(pass, expr.Y)
291 if !ok || value != 0 {
292 return
293 }
294 args := RenderArgs(pass, call.Args)
295 prefix := ""
296 if expr.Op == token.NEQ {
297 prefix = "!"
298 }
299 ReportNodefFG(pass, node, "should use %sbytes.Equal(%s) instead", prefix, args)
300 }
301 pass.ResultOf[inspect.Analyzer].(*inspector.Inspector).Preorder([]ast.Node{(*ast.BinaryExpr)(nil)}, fn)
302 return nil, nil
303}
304
305func LintForTrue(pass *analysis.Pass) (interface{}, error) {
306 fn := func(node ast.Node) {
307 loop := node.(*ast.ForStmt)
308 if loop.Init != nil || loop.Post != nil {
309 return
310 }
311 if !IsBoolConst(pass, loop.Cond) || !BoolConst(pass, loop.Cond) {
312 return
313 }
314 ReportNodefFG(pass, loop, "should use for {} instead of for true {}")
315 }
316 pass.ResultOf[inspect.Analyzer].(*inspector.Inspector).Preorder([]ast.Node{(*ast.ForStmt)(nil)}, fn)
317 return nil, nil
318}
319
320func LintRegexpRaw(pass *analysis.Pass) (interface{}, error) {
321 fn := func(node ast.Node) {
322 call := node.(*ast.CallExpr)
323 if !IsCallToAST(pass, call, "regexp.MustCompile") &&
324 !IsCallToAST(pass, call, "regexp.Compile") {
325 return
326 }
327 sel, ok := call.Fun.(*ast.SelectorExpr)
328 if !ok {
329 return
330 }
331 if len(call.Args) != 1 {
332 // invalid function call
333 return
334 }
335 lit, ok := call.Args[Arg("regexp.Compile.expr")].(*ast.BasicLit)
336 if !ok {
337 // TODO(dominikh): support string concat, maybe support constants
338 return
339 }
340 if lit.Kind != token.STRING {
341 // invalid function call
342 return
343 }
344 if lit.Value[0] != '"' {
345 // already a raw string
346 return
347 }
348 val := lit.Value
349 if !strings.Contains(val, `\\`) {
350 return
351 }
352 if strings.Contains(val, "`") {
353 return
354 }
355
356 bs := false
357 for _, c := range val {
358 if !bs && c == '\\' {
359 bs = true
360 continue
361 }
362 if bs && c == '\\' {
363 bs = false
364 continue
365 }
366 if bs {
367 // backslash followed by non-backslash -> escape sequence
368 return
369 }
370 }
371
372 ReportNodefFG(pass, call, "should use raw string (`...`) with regexp.%s to avoid having to escape twice", sel.Sel.Name)
373 }
374 pass.ResultOf[inspect.Analyzer].(*inspector.Inspector).Preorder([]ast.Node{(*ast.CallExpr)(nil)}, fn)
375 return nil, nil
376}
377
378func LintIfReturn(pass *analysis.Pass) (interface{}, error) {
379 fn := func(node ast.Node) {
380 block := node.(*ast.BlockStmt)
381 l := len(block.List)
382 if l < 2 {
383 return
384 }
385 n1, n2 := block.List[l-2], block.List[l-1]
386
387 if len(block.List) >= 3 {
388 if _, ok := block.List[l-3].(*ast.IfStmt); ok {
389 // Do not flag a series of if statements
390 return
391 }
392 }
393 // if statement with no init, no else, a single condition
394 // checking an identifier or function call and just a return
395 // statement in the body, that returns a boolean constant
396 ifs, ok := n1.(*ast.IfStmt)
397 if !ok {
398 return
399 }
400 if ifs.Else != nil || ifs.Init != nil {
401 return
402 }
403 if len(ifs.Body.List) != 1 {
404 return
405 }
406 if op, ok := ifs.Cond.(*ast.BinaryExpr); ok {
407 switch op.Op {
408 case token.EQL, token.LSS, token.GTR, token.NEQ, token.LEQ, token.GEQ:
409 default:
410 return
411 }
412 }
413 ret1, ok := ifs.Body.List[0].(*ast.ReturnStmt)
414 if !ok {
415 return
416 }
417 if len(ret1.Results) != 1 {
418 return
419 }
420 if !IsBoolConst(pass, ret1.Results[0]) {
421 return
422 }
423
424 ret2, ok := n2.(*ast.ReturnStmt)
425 if !ok {
426 return
427 }
428 if len(ret2.Results) != 1 {
429 return
430 }
431 if !IsBoolConst(pass, ret2.Results[0]) {
432 return
433 }
434
435 if ret1.Results[0].(*ast.Ident).Name == ret2.Results[0].(*ast.Ident).Name {
436 // we want the function to return true and false, not the
437 // same value both times.
438 return
439 }
440
441 ReportNodefFG(pass, n1, "should use 'return <expr>' instead of 'if <expr> { return <bool> }; return <bool>'")
442 }
443 pass.ResultOf[inspect.Analyzer].(*inspector.Inspector).Preorder([]ast.Node{(*ast.BlockStmt)(nil)}, fn)
444 return nil, nil
445}
446
447// LintRedundantNilCheckWithLen checks for the following reduntant nil-checks:
448//
449// if x == nil || len(x) == 0 {}
450// if x != nil && len(x) != 0 {}
451// if x != nil && len(x) == N {} (where N != 0)
452// if x != nil && len(x) > N {}
453// if x != nil && len(x) >= N {} (where N != 0)
454//
455func LintRedundantNilCheckWithLen(pass *analysis.Pass) (interface{}, error) {
456 isConstZero := func(expr ast.Expr) (isConst bool, isZero bool) {
457 _, ok := expr.(*ast.BasicLit)
458 if ok {
459 return true, IsZero(expr)
460 }
461 id, ok := expr.(*ast.Ident)
462 if !ok {
463 return false, false
464 }
465 c, ok := pass.TypesInfo.ObjectOf(id).(*types.Const)
466 if !ok {
467 return false, false
468 }
469 return true, c.Val().Kind() == constant.Int && c.Val().String() == "0"
470 }
471
472 fn := func(node ast.Node) {
473 // check that expr is "x || y" or "x && y"
474 expr := node.(*ast.BinaryExpr)
475 if expr.Op != token.LOR && expr.Op != token.LAND {
476 return
477 }
478 eqNil := expr.Op == token.LOR
479
480 // check that x is "xx == nil" or "xx != nil"
481 x, ok := expr.X.(*ast.BinaryExpr)
482 if !ok {
483 return
484 }
485 if eqNil && x.Op != token.EQL {
486 return
487 }
488 if !eqNil && x.Op != token.NEQ {
489 return
490 }
491 xx, ok := x.X.(*ast.Ident)
492 if !ok {
493 return
494 }
495 if !IsNil(pass, x.Y) {
496 return
497 }
498
499 // check that y is "len(xx) == 0" or "len(xx) ... "
500 y, ok := expr.Y.(*ast.BinaryExpr)
501 if !ok {
502 return
503 }
504 if eqNil && y.Op != token.EQL { // must be len(xx) *==* 0
505 return
506 }
507 yx, ok := y.X.(*ast.CallExpr)
508 if !ok {
509 return
510 }
511 yxFun, ok := yx.Fun.(*ast.Ident)
512 if !ok || yxFun.Name != "len" || len(yx.Args) != 1 {
513 return
514 }
515 yxArg, ok := yx.Args[Arg("len.v")].(*ast.Ident)
516 if !ok {
517 return
518 }
519 if yxArg.Name != xx.Name {
520 return
521 }
522
523 if eqNil && !IsZero(y.Y) { // must be len(x) == *0*
524 return
525 }
526
527 if !eqNil {
528 isConst, isZero := isConstZero(y.Y)
529 if !isConst {
530 return
531 }
532 switch y.Op {
533 case token.EQL:
534 // avoid false positive for "xx != nil && len(xx) == 0"
535 if isZero {
536 return
537 }
538 case token.GEQ:
539 // avoid false positive for "xx != nil && len(xx) >= 0"
540 if isZero {
541 return
542 }
543 case token.NEQ:
544 // avoid false positive for "xx != nil && len(xx) != <non-zero>"
545 if !isZero {
546 return
547 }
548 case token.GTR:
549 // ok
550 default:
551 return
552 }
553 }
554
555 // finally check that xx type is one of array, slice, map or chan
556 // this is to prevent false positive in case if xx is a pointer to an array
557 var nilType string
558 switch pass.TypesInfo.TypeOf(xx).(type) {
559 case *types.Slice:
560 nilType = "nil slices"
561 case *types.Map:
562 nilType = "nil maps"
563 case *types.Chan:
564 nilType = "nil channels"
565 default:
566 return
567 }
568 ReportNodefFG(pass, expr, "should omit nil check; len() for %s is defined as zero", nilType)
569 }
570 pass.ResultOf[inspect.Analyzer].(*inspector.Inspector).Preorder([]ast.Node{(*ast.BinaryExpr)(nil)}, fn)
571 return nil, nil
572}
573
574func LintSlicing(pass *analysis.Pass) (interface{}, error) {
575 fn := func(node ast.Node) {
576 n := node.(*ast.SliceExpr)
577 if n.Max != nil {
578 return
579 }
580 s, ok := n.X.(*ast.Ident)
581 if !ok || s.Obj == nil {
582 return
583 }
584 call, ok := n.High.(*ast.CallExpr)
585 if !ok || len(call.Args) != 1 || call.Ellipsis.IsValid() {
586 return
587 }
588 fun, ok := call.Fun.(*ast.Ident)
589 if !ok || fun.Name != "len" {
590 return
591 }
592 if _, ok := pass.TypesInfo.ObjectOf(fun).(*types.Builtin); !ok {
593 return
594 }
595 arg, ok := call.Args[Arg("len.v")].(*ast.Ident)
596 if !ok || arg.Obj != s.Obj {
597 return
598 }
599 ReportNodefFG(pass, n, "should omit second index in slice, s[a:len(s)] is identical to s[a:]")
600 }
601 pass.ResultOf[inspect.Analyzer].(*inspector.Inspector).Preorder([]ast.Node{(*ast.SliceExpr)(nil)}, fn)
602 return nil, nil
603}
604
605func refersTo(pass *analysis.Pass, expr ast.Expr, ident *ast.Ident) bool {
606 found := false
607 fn := func(node ast.Node) bool {
608 ident2, ok := node.(*ast.Ident)
609 if !ok {
610 return true
611 }
612 if pass.TypesInfo.ObjectOf(ident) == pass.TypesInfo.ObjectOf(ident2) {
613 found = true
614 return false
615 }
616 return true
617 }
618 ast.Inspect(expr, fn)
619 return found
620}
621
622func LintLoopAppend(pass *analysis.Pass) (interface{}, error) {
623 fn := func(node ast.Node) {
624 loop := node.(*ast.RangeStmt)
625 if !IsBlank(loop.Key) {
626 return
627 }
628 val, ok := loop.Value.(*ast.Ident)
629 if !ok {
630 return
631 }
632 if len(loop.Body.List) != 1 {
633 return
634 }
635 stmt, ok := loop.Body.List[0].(*ast.AssignStmt)
636 if !ok {
637 return
638 }
639 if stmt.Tok != token.ASSIGN || len(stmt.Lhs) != 1 || len(stmt.Rhs) != 1 {
640 return
641 }
642 if refersTo(pass, stmt.Lhs[0], val) {
643 return
644 }
645 call, ok := stmt.Rhs[0].(*ast.CallExpr)
646 if !ok {
647 return
648 }
649 if len(call.Args) != 2 || call.Ellipsis.IsValid() {
650 return
651 }
652 fun, ok := call.Fun.(*ast.Ident)
653 if !ok {
654 return
655 }
656 obj := pass.TypesInfo.ObjectOf(fun)
657 fn, ok := obj.(*types.Builtin)
658 if !ok || fn.Name() != "append" {
659 return
660 }
661
662 src := pass.TypesInfo.TypeOf(loop.X)
663 dst := pass.TypesInfo.TypeOf(call.Args[Arg("append.slice")])
664 // TODO(dominikh) remove nil check once Go issue #15173 has
665 // been fixed
666 if src == nil {
667 return
668 }
669 if !types.Identical(src, dst) {
670 return
671 }
672
673 if Render(pass, stmt.Lhs[0]) != Render(pass, call.Args[Arg("append.slice")]) {
674 return
675 }
676
677 el, ok := call.Args[Arg("append.elems")].(*ast.Ident)
678 if !ok {
679 return
680 }
681 if pass.TypesInfo.ObjectOf(val) != pass.TypesInfo.ObjectOf(el) {
682 return
683 }
684 ReportNodefFG(pass, loop, "should replace loop with %s = append(%s, %s...)",
685 Render(pass, stmt.Lhs[0]), Render(pass, call.Args[Arg("append.slice")]), Render(pass, loop.X))
686 }
687 pass.ResultOf[inspect.Analyzer].(*inspector.Inspector).Preorder([]ast.Node{(*ast.RangeStmt)(nil)}, fn)
688 return nil, nil
689}
690
691func LintTimeSince(pass *analysis.Pass) (interface{}, error) {
692 fn := func(node ast.Node) {
693 call := node.(*ast.CallExpr)
694 sel, ok := call.Fun.(*ast.SelectorExpr)
695 if !ok {
696 return
697 }
698 if !IsCallToAST(pass, sel.X, "time.Now") {
699 return
700 }
701 if sel.Sel.Name != "Sub" {
702 return
703 }
704 ReportNodefFG(pass, call, "should use time.Since instead of time.Now().Sub")
705 }
706 pass.ResultOf[inspect.Analyzer].(*inspector.Inspector).Preorder([]ast.Node{(*ast.CallExpr)(nil)}, fn)
707 return nil, nil
708}
709
710func LintTimeUntil(pass *analysis.Pass) (interface{}, error) {
711 if !IsGoVersion(pass, 8) {
712 return nil, nil
713 }
714 fn := func(node ast.Node) {
715 call := node.(*ast.CallExpr)
716 if !IsCallToAST(pass, call, "(time.Time).Sub") {
717 return
718 }
719 if !IsCallToAST(pass, call.Args[Arg("(time.Time).Sub.u")], "time.Now") {
720 return
721 }
722 ReportNodefFG(pass, call, "should use time.Until instead of t.Sub(time.Now())")
723 }
724 pass.ResultOf[inspect.Analyzer].(*inspector.Inspector).Preorder([]ast.Node{(*ast.CallExpr)(nil)}, fn)
725 return nil, nil
726}
727
728func LintUnnecessaryBlank(pass *analysis.Pass) (interface{}, error) {
729 fn1 := func(node ast.Node) {
730 assign := node.(*ast.AssignStmt)
731 if len(assign.Lhs) != 2 || len(assign.Rhs) != 1 {
732 return
733 }
734 if !IsBlank(assign.Lhs[1]) {
735 return
736 }
737 switch rhs := assign.Rhs[0].(type) {
738 case *ast.IndexExpr:
739 // The type-checker should make sure that it's a map, but
740 // let's be safe.
741 if _, ok := pass.TypesInfo.TypeOf(rhs.X).Underlying().(*types.Map); !ok {
742 return
743 }
744 case *ast.UnaryExpr:
745 if rhs.Op != token.ARROW {
746 return
747 }
748 default:
749 return
750 }
751 cp := *assign
752 cp.Lhs = cp.Lhs[0:1]
753 ReportNodefFG(pass, assign, "should write %s instead of %s", Render(pass, &cp), Render(pass, assign))
754 }
755
756 fn2 := func(node ast.Node) {
757 stmt := node.(*ast.AssignStmt)
758 if len(stmt.Lhs) != len(stmt.Rhs) {
759 return
760 }
761 for i, lh := range stmt.Lhs {
762 rh := stmt.Rhs[i]
763 if !IsBlank(lh) {
764 continue
765 }
766 expr, ok := rh.(*ast.UnaryExpr)
767 if !ok {
768 continue
769 }
770 if expr.Op != token.ARROW {
771 continue
772 }
773 ReportNodefFG(pass, lh, "'_ = <-ch' can be simplified to '<-ch'")
774 }
775 }
776
777 fn3 := func(node ast.Node) {
778 rs := node.(*ast.RangeStmt)
779
780 // for x, _
781 if !IsBlank(rs.Key) && IsBlank(rs.Value) {
782 ReportNodefFG(pass, rs.Value, "should omit value from range; this loop is equivalent to `for %s %s range ...`", Render(pass, rs.Key), rs.Tok)
783 }
784 // for _, _ || for _
785 if IsBlank(rs.Key) && (IsBlank(rs.Value) || rs.Value == nil) {
786 ReportNodefFG(pass, rs.Key, "should omit values from range; this loop is equivalent to `for range ...`")
787 }
788 }
789
790 pass.ResultOf[inspect.Analyzer].(*inspector.Inspector).Preorder([]ast.Node{(*ast.AssignStmt)(nil)}, fn1)
791 pass.ResultOf[inspect.Analyzer].(*inspector.Inspector).Preorder([]ast.Node{(*ast.AssignStmt)(nil)}, fn2)
792 if IsGoVersion(pass, 4) {
793 pass.ResultOf[inspect.Analyzer].(*inspector.Inspector).Preorder([]ast.Node{(*ast.RangeStmt)(nil)}, fn3)
794 }
795 return nil, nil
796}
797
798func LintSimplerStructConversion(pass *analysis.Pass) (interface{}, error) {
799 var skip ast.Node
800 fn := func(node ast.Node) {
801 // Do not suggest type conversion between pointers
802 if unary, ok := node.(*ast.UnaryExpr); ok && unary.Op == token.AND {
803 if lit, ok := unary.X.(*ast.CompositeLit); ok {
804 skip = lit
805 }
806 return
807 }
808
809 if node == skip {
810 return
811 }
812
813 lit, ok := node.(*ast.CompositeLit)
814 if !ok {
815 return
816 }
817 typ1, _ := pass.TypesInfo.TypeOf(lit.Type).(*types.Named)
818 if typ1 == nil {
819 return
820 }
821 s1, ok := typ1.Underlying().(*types.Struct)
822 if !ok {
823 return
824 }
825
826 var typ2 *types.Named
827 var ident *ast.Ident
828 getSelType := func(expr ast.Expr) (types.Type, *ast.Ident, bool) {
829 sel, ok := expr.(*ast.SelectorExpr)
830 if !ok {
831 return nil, nil, false
832 }
833 ident, ok := sel.X.(*ast.Ident)
834 if !ok {
835 return nil, nil, false
836 }
837 typ := pass.TypesInfo.TypeOf(sel.X)
838 return typ, ident, typ != nil
839 }
840 if len(lit.Elts) == 0 {
841 return
842 }
843 if s1.NumFields() != len(lit.Elts) {
844 return
845 }
846 for i, elt := range lit.Elts {
847 var t types.Type
848 var id *ast.Ident
849 var ok bool
850 switch elt := elt.(type) {
851 case *ast.SelectorExpr:
852 t, id, ok = getSelType(elt)
853 if !ok {
854 return
855 }
856 if i >= s1.NumFields() || s1.Field(i).Name() != elt.Sel.Name {
857 return
858 }
859 case *ast.KeyValueExpr:
860 var sel *ast.SelectorExpr
861 sel, ok = elt.Value.(*ast.SelectorExpr)
862 if !ok {
863 return
864 }
865
866 if elt.Key.(*ast.Ident).Name != sel.Sel.Name {
867 return
868 }
869 t, id, ok = getSelType(elt.Value)
870 }
871 if !ok {
872 return
873 }
874 // All fields must be initialized from the same object
875 if ident != nil && ident.Obj != id.Obj {
876 return
877 }
878 typ2, _ = t.(*types.Named)
879 if typ2 == nil {
880 return
881 }
882 ident = id
883 }
884
885 if typ2 == nil {
886 return
887 }
888
889 if typ1.Obj().Pkg() != typ2.Obj().Pkg() {
890 // Do not suggest type conversions between different
891 // packages. Types in different packages might only match
892 // by coincidence. Furthermore, if the dependency ever
893 // adds more fields to its type, it could break the code
894 // that relies on the type conversion to work.
895 return
896 }
897
898 s2, ok := typ2.Underlying().(*types.Struct)
899 if !ok {
900 return
901 }
902 if typ1 == typ2 {
903 return
904 }
905 if IsGoVersion(pass, 8) {
906 if !types.IdenticalIgnoreTags(s1, s2) {
907 return
908 }
909 } else {
910 if !types.Identical(s1, s2) {
911 return
912 }
913 }
914 ReportNodefFG(pass, node, "should convert %s (type %s) to %s instead of using struct literal",
915 ident.Name, typ2.Obj().Name(), typ1.Obj().Name())
916 }
917 pass.ResultOf[inspect.Analyzer].(*inspector.Inspector).Preorder([]ast.Node{(*ast.UnaryExpr)(nil), (*ast.CompositeLit)(nil)}, fn)
918 return nil, nil
919}
920
921func LintTrim(pass *analysis.Pass) (interface{}, error) {
922 sameNonDynamic := func(node1, node2 ast.Node) bool {
923 if reflect.TypeOf(node1) != reflect.TypeOf(node2) {
924 return false
925 }
926
927 switch node1 := node1.(type) {
928 case *ast.Ident:
929 return node1.Obj == node2.(*ast.Ident).Obj
930 case *ast.SelectorExpr:
931 return Render(pass, node1) == Render(pass, node2)
932 case *ast.IndexExpr:
933 return Render(pass, node1) == Render(pass, node2)
934 }
935 return false
936 }
937
938 isLenOnIdent := func(fn ast.Expr, ident ast.Expr) bool {
939 call, ok := fn.(*ast.CallExpr)
940 if !ok {
941 return false
942 }
943 if fn, ok := call.Fun.(*ast.Ident); !ok || fn.Name != "len" {
944 return false
945 }
946 if len(call.Args) != 1 {
947 return false
948 }
949 return sameNonDynamic(call.Args[Arg("len.v")], ident)
950 }
951
952 fn := func(node ast.Node) {
953 var pkg string
954 var fun string
955
956 ifstmt := node.(*ast.IfStmt)
957 if ifstmt.Init != nil {
958 return
959 }
960 if ifstmt.Else != nil {
961 return
962 }
963 if len(ifstmt.Body.List) != 1 {
964 return
965 }
966 condCall, ok := ifstmt.Cond.(*ast.CallExpr)
967 if !ok {
968 return
969 }
970 switch {
971 case IsCallToAST(pass, condCall, "strings.HasPrefix"):
972 pkg = "strings"
973 fun = "HasPrefix"
974 case IsCallToAST(pass, condCall, "strings.HasSuffix"):
975 pkg = "strings"
976 fun = "HasSuffix"
977 case IsCallToAST(pass, condCall, "strings.Contains"):
978 pkg = "strings"
979 fun = "Contains"
980 case IsCallToAST(pass, condCall, "bytes.HasPrefix"):
981 pkg = "bytes"
982 fun = "HasPrefix"
983 case IsCallToAST(pass, condCall, "bytes.HasSuffix"):
984 pkg = "bytes"
985 fun = "HasSuffix"
986 case IsCallToAST(pass, condCall, "bytes.Contains"):
987 pkg = "bytes"
988 fun = "Contains"
989 default:
990 return
991 }
992
993 assign, ok := ifstmt.Body.List[0].(*ast.AssignStmt)
994 if !ok {
995 return
996 }
997 if assign.Tok != token.ASSIGN {
998 return
999 }
1000 if len(assign.Lhs) != 1 || len(assign.Rhs) != 1 {
1001 return
1002 }
1003 if !sameNonDynamic(condCall.Args[0], assign.Lhs[0]) {
1004 return
1005 }
1006
1007 switch rhs := assign.Rhs[0].(type) {
1008 case *ast.CallExpr:
1009 if len(rhs.Args) < 2 || !sameNonDynamic(condCall.Args[0], rhs.Args[0]) || !sameNonDynamic(condCall.Args[1], rhs.Args[1]) {
1010 return
1011 }
1012 if IsCallToAST(pass, condCall, "strings.HasPrefix") && IsCallToAST(pass, rhs, "strings.TrimPrefix") ||
1013 IsCallToAST(pass, condCall, "strings.HasSuffix") && IsCallToAST(pass, rhs, "strings.TrimSuffix") ||
1014 IsCallToAST(pass, condCall, "strings.Contains") && IsCallToAST(pass, rhs, "strings.Replace") ||
1015 IsCallToAST(pass, condCall, "bytes.HasPrefix") && IsCallToAST(pass, rhs, "bytes.TrimPrefix") ||
1016 IsCallToAST(pass, condCall, "bytes.HasSuffix") && IsCallToAST(pass, rhs, "bytes.TrimSuffix") ||
1017 IsCallToAST(pass, condCall, "bytes.Contains") && IsCallToAST(pass, rhs, "bytes.Replace") {
1018 ReportNodefFG(pass, ifstmt, "should replace this if statement with an unconditional %s", CallNameAST(pass, rhs))
1019 }
1020 return
1021 case *ast.SliceExpr:
1022 slice := rhs
1023 if !ok {
1024 return
1025 }
1026 if slice.Slice3 {
1027 return
1028 }
1029 if !sameNonDynamic(slice.X, condCall.Args[0]) {
1030 return
1031 }
1032 var index ast.Expr
1033 switch fun {
1034 case "HasPrefix":
1035 // TODO(dh) We could detect a High that is len(s), but another
1036 // rule will already flag that, anyway.
1037 if slice.High != nil {
1038 return
1039 }
1040 index = slice.Low
1041 case "HasSuffix":
1042 if slice.Low != nil {
1043 n, ok := ExprToInt(pass, slice.Low)
1044 if !ok || n != 0 {
1045 return
1046 }
1047 }
1048 index = slice.High
1049 }
1050
1051 switch index := index.(type) {
1052 case *ast.CallExpr:
1053 if fun != "HasPrefix" {
1054 return
1055 }
1056 if fn, ok := index.Fun.(*ast.Ident); !ok || fn.Name != "len" {
1057 return
1058 }
1059 if len(index.Args) != 1 {
1060 return
1061 }
1062 id3 := index.Args[Arg("len.v")]
1063 switch oid3 := condCall.Args[1].(type) {
1064 case *ast.BasicLit:
1065 if pkg != "strings" {
1066 return
1067 }
1068 lit, ok := id3.(*ast.BasicLit)
1069 if !ok {
1070 return
1071 }
1072 s1, ok1 := ExprToString(pass, lit)
1073 s2, ok2 := ExprToString(pass, condCall.Args[1])
1074 if !ok1 || !ok2 || s1 != s2 {
1075 return
1076 }
1077 default:
1078 if !sameNonDynamic(id3, oid3) {
1079 return
1080 }
1081 }
1082 case *ast.BasicLit, *ast.Ident:
1083 if fun != "HasPrefix" {
1084 return
1085 }
1086 if pkg != "strings" {
1087 return
1088 }
1089 string, ok1 := ExprToString(pass, condCall.Args[1])
1090 int, ok2 := ExprToInt(pass, slice.Low)
1091 if !ok1 || !ok2 || int != int64(len(string)) {
1092 return
1093 }
1094 case *ast.BinaryExpr:
1095 if fun != "HasSuffix" {
1096 return
1097 }
1098 if index.Op != token.SUB {
1099 return
1100 }
1101 if !isLenOnIdent(index.X, condCall.Args[0]) ||
1102 !isLenOnIdent(index.Y, condCall.Args[1]) {
1103 return
1104 }
1105 default:
1106 return
1107 }
1108
1109 var replacement string
1110 switch fun {
1111 case "HasPrefix":
1112 replacement = "TrimPrefix"
1113 case "HasSuffix":
1114 replacement = "TrimSuffix"
1115 }
1116 ReportNodefFG(pass, ifstmt, "should replace this if statement with an unconditional %s.%s", pkg, replacement)
1117 }
1118 }
1119 pass.ResultOf[inspect.Analyzer].(*inspector.Inspector).Preorder([]ast.Node{(*ast.IfStmt)(nil)}, fn)
1120 return nil, nil
1121}
1122
1123func LintLoopSlide(pass *analysis.Pass) (interface{}, error) {
1124 // TODO(dh): detect bs[i+offset] in addition to bs[offset+i]
1125 // TODO(dh): consider merging this function with LintLoopCopy
1126 // TODO(dh): detect length that is an expression, not a variable name
1127 // TODO(dh): support sliding to a different offset than the beginning of the slice
1128
1129 fn := func(node ast.Node) {
1130 /*
1131 for i := 0; i < n; i++ {
1132 bs[i] = bs[offset+i]
1133 }
1134
1135
1136
1137 copy(bs[:n], bs[offset:offset+n])
1138 */
1139
1140 loop := node.(*ast.ForStmt)
1141 if len(loop.Body.List) != 1 || loop.Init == nil || loop.Cond == nil || loop.Post == nil {
1142 return
1143 }
1144 assign, ok := loop.Init.(*ast.AssignStmt)
1145 if !ok || len(assign.Lhs) != 1 || len(assign.Rhs) != 1 || !IsZero(assign.Rhs[0]) {
1146 return
1147 }
1148 initvar, ok := assign.Lhs[0].(*ast.Ident)
1149 if !ok {
1150 return
1151 }
1152 post, ok := loop.Post.(*ast.IncDecStmt)
1153 if !ok || post.Tok != token.INC {
1154 return
1155 }
1156 postvar, ok := post.X.(*ast.Ident)
1157 if !ok || pass.TypesInfo.ObjectOf(postvar) != pass.TypesInfo.ObjectOf(initvar) {
1158 return
1159 }
1160 bin, ok := loop.Cond.(*ast.BinaryExpr)
1161 if !ok || bin.Op != token.LSS {
1162 return
1163 }
1164 binx, ok := bin.X.(*ast.Ident)
1165 if !ok || pass.TypesInfo.ObjectOf(binx) != pass.TypesInfo.ObjectOf(initvar) {
1166 return
1167 }
1168 biny, ok := bin.Y.(*ast.Ident)
1169 if !ok {
1170 return
1171 }
1172
1173 assign, ok = loop.Body.List[0].(*ast.AssignStmt)
1174 if !ok || len(assign.Lhs) != 1 || len(assign.Rhs) != 1 || assign.Tok != token.ASSIGN {
1175 return
1176 }
1177 lhs, ok := assign.Lhs[0].(*ast.IndexExpr)
1178 if !ok {
1179 return
1180 }
1181 rhs, ok := assign.Rhs[0].(*ast.IndexExpr)
1182 if !ok {
1183 return
1184 }
1185
1186 bs1, ok := lhs.X.(*ast.Ident)
1187 if !ok {
1188 return
1189 }
1190 bs2, ok := rhs.X.(*ast.Ident)
1191 if !ok {
1192 return
1193 }
1194 obj1 := pass.TypesInfo.ObjectOf(bs1)
1195 obj2 := pass.TypesInfo.ObjectOf(bs2)
1196 if obj1 != obj2 {
1197 return
1198 }
1199 if _, ok := obj1.Type().Underlying().(*types.Slice); !ok {
1200 return
1201 }
1202
1203 index1, ok := lhs.Index.(*ast.Ident)
1204 if !ok || pass.TypesInfo.ObjectOf(index1) != pass.TypesInfo.ObjectOf(initvar) {
1205 return
1206 }
1207 index2, ok := rhs.Index.(*ast.BinaryExpr)
1208 if !ok || index2.Op != token.ADD {
1209 return
1210 }
1211 add1, ok := index2.X.(*ast.Ident)
1212 if !ok {
1213 return
1214 }
1215 add2, ok := index2.Y.(*ast.Ident)
1216 if !ok || pass.TypesInfo.ObjectOf(add2) != pass.TypesInfo.ObjectOf(initvar) {
1217 return
1218 }
1219
1220 ReportNodefFG(pass, loop, "should use copy(%s[:%s], %s[%s:]) instead", Render(pass, bs1), Render(pass, biny), Render(pass, bs1), Render(pass, add1))
1221 }
1222 pass.ResultOf[inspect.Analyzer].(*inspector.Inspector).Preorder([]ast.Node{(*ast.ForStmt)(nil)}, fn)
1223 return nil, nil
1224}
1225
1226func LintMakeLenCap(pass *analysis.Pass) (interface{}, error) {
1227 fn := func(node ast.Node) {
1228 call := node.(*ast.CallExpr)
1229 if fn, ok := call.Fun.(*ast.Ident); !ok || fn.Name != "make" {
1230 // FIXME check whether make is indeed the built-in function
1231 return
1232 }
1233 switch len(call.Args) {
1234 case 2:
1235 // make(T, len)
1236 if _, ok := pass.TypesInfo.TypeOf(call.Args[Arg("make.t")]).Underlying().(*types.Slice); ok {
1237 break
1238 }
1239 if IsZero(call.Args[Arg("make.size[0]")]) {
1240 ReportNodefFG(pass, call.Args[Arg("make.size[0]")], "should use make(%s) instead", Render(pass, call.Args[Arg("make.t")]))
1241 }
1242 case 3:
1243 // make(T, len, cap)
1244 if Render(pass, call.Args[Arg("make.size[0]")]) == Render(pass, call.Args[Arg("make.size[1]")]) {
1245 ReportNodefFG(pass, call.Args[Arg("make.size[0]")],
1246 "should use make(%s, %s) instead",
1247 Render(pass, call.Args[Arg("make.t")]), Render(pass, call.Args[Arg("make.size[0]")]))
1248 }
1249 }
1250 }
1251 pass.ResultOf[inspect.Analyzer].(*inspector.Inspector).Preorder([]ast.Node{(*ast.CallExpr)(nil)}, fn)
1252 return nil, nil
1253}
1254
1255func LintAssertNotNil(pass *analysis.Pass) (interface{}, error) {
1256 isNilCheck := func(ident *ast.Ident, expr ast.Expr) bool {
1257 xbinop, ok := expr.(*ast.BinaryExpr)
1258 if !ok || xbinop.Op != token.NEQ {
1259 return false
1260 }
1261 xident, ok := xbinop.X.(*ast.Ident)
1262 if !ok || xident.Obj != ident.Obj {
1263 return false
1264 }
1265 if !IsNil(pass, xbinop.Y) {
1266 return false
1267 }
1268 return true
1269 }
1270 isOKCheck := func(ident *ast.Ident, expr ast.Expr) bool {
1271 yident, ok := expr.(*ast.Ident)
1272 if !ok || yident.Obj != ident.Obj {
1273 return false
1274 }
1275 return true
1276 }
1277 fn1 := func(node ast.Node) {
1278 ifstmt := node.(*ast.IfStmt)
1279 assign, ok := ifstmt.Init.(*ast.AssignStmt)
1280 if !ok || len(assign.Lhs) != 2 || len(assign.Rhs) != 1 || !IsBlank(assign.Lhs[0]) {
1281 return
1282 }
1283 assert, ok := assign.Rhs[0].(*ast.TypeAssertExpr)
1284 if !ok {
1285 return
1286 }
1287 binop, ok := ifstmt.Cond.(*ast.BinaryExpr)
1288 if !ok || binop.Op != token.LAND {
1289 return
1290 }
1291 assertIdent, ok := assert.X.(*ast.Ident)
1292 if !ok {
1293 return
1294 }
1295 assignIdent, ok := assign.Lhs[1].(*ast.Ident)
1296 if !ok {
1297 return
1298 }
1299 if !(isNilCheck(assertIdent, binop.X) && isOKCheck(assignIdent, binop.Y)) &&
1300 !(isNilCheck(assertIdent, binop.Y) && isOKCheck(assignIdent, binop.X)) {
1301 return
1302 }
1303 ReportNodefFG(pass, ifstmt, "when %s is true, %s can't be nil", Render(pass, assignIdent), Render(pass, assertIdent))
1304 }
1305 fn2 := func(node ast.Node) {
1306 // Check that outer ifstmt is an 'if x != nil {}'
1307 ifstmt := node.(*ast.IfStmt)
1308 if ifstmt.Init != nil {
1309 return
1310 }
1311 if ifstmt.Else != nil {
1312 return
1313 }
1314 if len(ifstmt.Body.List) != 1 {
1315 return
1316 }
1317 binop, ok := ifstmt.Cond.(*ast.BinaryExpr)
1318 if !ok {
1319 return
1320 }
1321 if binop.Op != token.NEQ {
1322 return
1323 }
1324 lhs, ok := binop.X.(*ast.Ident)
1325 if !ok {
1326 return
1327 }
1328 if !IsNil(pass, binop.Y) {
1329 return
1330 }
1331
1332 // Check that inner ifstmt is an `if _, ok := x.(T); ok {}`
1333 ifstmt, ok = ifstmt.Body.List[0].(*ast.IfStmt)
1334 if !ok {
1335 return
1336 }
1337 assign, ok := ifstmt.Init.(*ast.AssignStmt)
1338 if !ok || len(assign.Lhs) != 2 || len(assign.Rhs) != 1 || !IsBlank(assign.Lhs[0]) {
1339 return
1340 }
1341 assert, ok := assign.Rhs[0].(*ast.TypeAssertExpr)
1342 if !ok {
1343 return
1344 }
1345 assertIdent, ok := assert.X.(*ast.Ident)
1346 if !ok {
1347 return
1348 }
1349 if lhs.Obj != assertIdent.Obj {
1350 return
1351 }
1352 assignIdent, ok := assign.Lhs[1].(*ast.Ident)
1353 if !ok {
1354 return
1355 }
1356 if !isOKCheck(assignIdent, ifstmt.Cond) {
1357 return
1358 }
1359 ReportNodefFG(pass, ifstmt, "when %s is true, %s can't be nil", Render(pass, assignIdent), Render(pass, assertIdent))
1360 }
1361 pass.ResultOf[inspect.Analyzer].(*inspector.Inspector).Preorder([]ast.Node{(*ast.IfStmt)(nil)}, fn1)
1362 pass.ResultOf[inspect.Analyzer].(*inspector.Inspector).Preorder([]ast.Node{(*ast.IfStmt)(nil)}, fn2)
1363 return nil, nil
1364}
1365
1366func LintDeclareAssign(pass *analysis.Pass) (interface{}, error) {
1367 hasMultipleAssignments := func(root ast.Node, ident *ast.Ident) bool {
1368 num := 0
1369 ast.Inspect(root, func(node ast.Node) bool {
1370 if num >= 2 {
1371 return false
1372 }
1373 assign, ok := node.(*ast.AssignStmt)
1374 if !ok {
1375 return true
1376 }
1377 for _, lhs := range assign.Lhs {
1378 if oident, ok := lhs.(*ast.Ident); ok {
1379 if oident.Obj == ident.Obj {
1380 num++
1381 }
1382 }
1383 }
1384
1385 return true
1386 })
1387 return num >= 2
1388 }
1389 fn := func(node ast.Node) {
1390 block := node.(*ast.BlockStmt)
1391 if len(block.List) < 2 {
1392 return
1393 }
1394 for i, stmt := range block.List[:len(block.List)-1] {
1395 _ = i
1396 decl, ok := stmt.(*ast.DeclStmt)
1397 if !ok {
1398 continue
1399 }
1400 gdecl, ok := decl.Decl.(*ast.GenDecl)
1401 if !ok || gdecl.Tok != token.VAR || len(gdecl.Specs) != 1 {
1402 continue
1403 }
1404 vspec, ok := gdecl.Specs[0].(*ast.ValueSpec)
1405 if !ok || len(vspec.Names) != 1 || len(vspec.Values) != 0 {
1406 continue
1407 }
1408
1409 assign, ok := block.List[i+1].(*ast.AssignStmt)
1410 if !ok || assign.Tok != token.ASSIGN {
1411 continue
1412 }
1413 if len(assign.Lhs) != 1 || len(assign.Rhs) != 1 {
1414 continue
1415 }
1416 ident, ok := assign.Lhs[0].(*ast.Ident)
1417 if !ok {
1418 continue
1419 }
1420 if vspec.Names[0].Obj != ident.Obj {
1421 continue
1422 }
1423
1424 if refersTo(pass, assign.Rhs[0], ident) {
1425 continue
1426 }
1427 if hasMultipleAssignments(block, ident) {
1428 continue
1429 }
1430
1431 ReportNodefFG(pass, decl, "should merge variable declaration with assignment on next line")
1432 }
1433 }
1434 pass.ResultOf[inspect.Analyzer].(*inspector.Inspector).Preorder([]ast.Node{(*ast.BlockStmt)(nil)}, fn)
1435 return nil, nil
1436}
1437
1438func LintRedundantBreak(pass *analysis.Pass) (interface{}, error) {
1439 fn1 := func(node ast.Node) {
1440 clause := node.(*ast.CaseClause)
1441 if len(clause.Body) < 2 {
1442 return
1443 }
1444 branch, ok := clause.Body[len(clause.Body)-1].(*ast.BranchStmt)
1445 if !ok || branch.Tok != token.BREAK || branch.Label != nil {
1446 return
1447 }
1448 ReportNodefFG(pass, branch, "redundant break statement")
1449 }
1450 fn2 := func(node ast.Node) {
1451 var ret *ast.FieldList
1452 var body *ast.BlockStmt
1453 switch x := node.(type) {
1454 case *ast.FuncDecl:
1455 ret = x.Type.Results
1456 body = x.Body
1457 case *ast.FuncLit:
1458 ret = x.Type.Results
1459 body = x.Body
1460 default:
1461 panic(fmt.Sprintf("unreachable: %T", node))
1462 }
1463 // if the func has results, a return can't be redundant.
1464 // similarly, if there are no statements, there can be
1465 // no return.
1466 if ret != nil || body == nil || len(body.List) < 1 {
1467 return
1468 }
1469 rst, ok := body.List[len(body.List)-1].(*ast.ReturnStmt)
1470 if !ok {
1471 return
1472 }
1473 // we don't need to check rst.Results as we already
1474 // checked x.Type.Results to be nil.
1475 ReportNodefFG(pass, rst, "redundant return statement")
1476 }
1477 pass.ResultOf[inspect.Analyzer].(*inspector.Inspector).Preorder([]ast.Node{(*ast.CaseClause)(nil)}, fn1)
1478 pass.ResultOf[inspect.Analyzer].(*inspector.Inspector).Preorder([]ast.Node{(*ast.FuncDecl)(nil), (*ast.FuncLit)(nil)}, fn2)
1479 return nil, nil
1480}
1481
1482func isStringer(T types.Type, msCache *typeutil.MethodSetCache) bool {
1483 ms := msCache.MethodSet(T)
1484 sel := ms.Lookup(nil, "String")
1485 if sel == nil {
1486 return false
1487 }
1488 fn, ok := sel.Obj().(*types.Func)
1489 if !ok {
1490 // should be unreachable
1491 return false
1492 }
1493 sig := fn.Type().(*types.Signature)
1494 if sig.Params().Len() != 0 {
1495 return false
1496 }
1497 if sig.Results().Len() != 1 {
1498 return false
1499 }
1500 if !IsType(sig.Results().At(0).Type(), "string") {
1501 return false
1502 }
1503 return true
1504}
1505
1506func LintRedundantSprintf(pass *analysis.Pass) (interface{}, error) {
1507 fn := func(node ast.Node) {
1508 call := node.(*ast.CallExpr)
1509 if !IsCallToAST(pass, call, "fmt.Sprintf") {
1510 return
1511 }
1512 if len(call.Args) != 2 {
1513 return
1514 }
1515 if s, ok := ExprToString(pass, call.Args[Arg("fmt.Sprintf.format")]); !ok || s != "%s" {
1516 return
1517 }
1518 arg := call.Args[Arg("fmt.Sprintf.a[0]")]
1519 typ := pass.TypesInfo.TypeOf(arg)
1520
1521 ssapkg := pass.ResultOf[buildssa.Analyzer].(*buildssa.SSA).Pkg
1522 if isStringer(typ, &ssapkg.Prog.MethodSets) {
1523 ReportNodef(pass, call, "should use String() instead of fmt.Sprintf")
1524 return
1525 }
1526
1527 if typ.Underlying() == types.Universe.Lookup("string").Type() {
1528 if typ == types.Universe.Lookup("string").Type() {
1529 ReportNodefFG(pass, call, "the argument is already a string, there's no need to use fmt.Sprintf")
1530 } else {
1531 ReportNodefFG(pass, call, "the argument's underlying type is a string, should use a simple conversion instead of fmt.Sprintf")
1532 }
1533 }
1534 }
1535 pass.ResultOf[inspect.Analyzer].(*inspector.Inspector).Preorder([]ast.Node{(*ast.CallExpr)(nil)}, fn)
1536 return nil, nil
1537}
1538
1539func LintErrorsNewSprintf(pass *analysis.Pass) (interface{}, error) {
1540 fn := func(node ast.Node) {
1541 if !IsCallToAST(pass, node, "errors.New") {
1542 return
1543 }
1544 call := node.(*ast.CallExpr)
1545 if !IsCallToAST(pass, call.Args[Arg("errors.New.text")], "fmt.Sprintf") {
1546 return
1547 }
1548 ReportNodefFG(pass, node, "should use fmt.Errorf(...) instead of errors.New(fmt.Sprintf(...))")
1549 }
1550 pass.ResultOf[inspect.Analyzer].(*inspector.Inspector).Preorder([]ast.Node{(*ast.CallExpr)(nil)}, fn)
1551 return nil, nil
1552}
1553
1554func LintRangeStringRunes(pass *analysis.Pass) (interface{}, error) {
1555 return sharedcheck.CheckRangeStringRunes(pass)
1556}
1557
1558func LintNilCheckAroundRange(pass *analysis.Pass) (interface{}, error) {
1559 fn := func(node ast.Node) {
1560 ifstmt := node.(*ast.IfStmt)
1561 cond, ok := ifstmt.Cond.(*ast.BinaryExpr)
1562 if !ok {
1563 return
1564 }
1565
1566 if cond.Op != token.NEQ || !IsNil(pass, cond.Y) || len(ifstmt.Body.List) != 1 {
1567 return
1568 }
1569
1570 loop, ok := ifstmt.Body.List[0].(*ast.RangeStmt)
1571 if !ok {
1572 return
1573 }
1574 ifXIdent, ok := cond.X.(*ast.Ident)
1575 if !ok {
1576 return
1577 }
1578 rangeXIdent, ok := loop.X.(*ast.Ident)
1579 if !ok {
1580 return
1581 }
1582 if ifXIdent.Obj != rangeXIdent.Obj {
1583 return
1584 }
1585 switch pass.TypesInfo.TypeOf(rangeXIdent).(type) {
1586 case *types.Slice, *types.Map:
1587 ReportNodefFG(pass, node, "unnecessary nil check around range")
1588 }
1589 }
1590 pass.ResultOf[inspect.Analyzer].(*inspector.Inspector).Preorder([]ast.Node{(*ast.IfStmt)(nil)}, fn)
1591 return nil, nil
1592}
1593
1594func isPermissibleSort(pass *analysis.Pass, node ast.Node) bool {
1595 call := node.(*ast.CallExpr)
1596 typeconv, ok := call.Args[0].(*ast.CallExpr)
1597 if !ok {
1598 return true
1599 }
1600
1601 sel, ok := typeconv.Fun.(*ast.SelectorExpr)
1602 if !ok {
1603 return true
1604 }
1605 name := SelectorName(pass, sel)
1606 switch name {
1607 case "sort.IntSlice", "sort.Float64Slice", "sort.StringSlice":
1608 default:
1609 return true
1610 }
1611
1612 return false
1613}
1614
1615func LintSortHelpers(pass *analysis.Pass) (interface{}, error) {
1616 type Error struct {
1617 node ast.Node
1618 msg string
1619 }
1620 var allErrors []Error
1621 fn := func(node ast.Node) {
1622 var body *ast.BlockStmt
1623 switch node := node.(type) {
1624 case *ast.FuncLit:
1625 body = node.Body
1626 case *ast.FuncDecl:
1627 body = node.Body
1628 default:
1629 panic(fmt.Sprintf("unreachable: %T", node))
1630 }
1631 if body == nil {
1632 return
1633 }
1634
1635 var errors []Error
1636 permissible := false
1637 fnSorts := func(node ast.Node) bool {
1638 if permissible {
1639 return false
1640 }
1641 if !IsCallToAST(pass, node, "sort.Sort") {
1642 return true
1643 }
1644 if isPermissibleSort(pass, node) {
1645 permissible = true
1646 return false
1647 }
1648 call := node.(*ast.CallExpr)
1649 typeconv := call.Args[Arg("sort.Sort.data")].(*ast.CallExpr)
1650 sel := typeconv.Fun.(*ast.SelectorExpr)
1651 name := SelectorName(pass, sel)
1652
1653 switch name {
1654 case "sort.IntSlice":
1655 errors = append(errors, Error{node, "should use sort.Ints(...) instead of sort.Sort(sort.IntSlice(...))"})
1656 case "sort.Float64Slice":
1657 errors = append(errors, Error{node, "should use sort.Float64s(...) instead of sort.Sort(sort.Float64Slice(...))"})
1658 case "sort.StringSlice":
1659 errors = append(errors, Error{node, "should use sort.Strings(...) instead of sort.Sort(sort.StringSlice(...))"})
1660 }
1661 return true
1662 }
1663 ast.Inspect(body, fnSorts)
1664
1665 if permissible {
1666 return
1667 }
1668 allErrors = append(allErrors, errors...)
1669 }
1670 pass.ResultOf[inspect.Analyzer].(*inspector.Inspector).Preorder([]ast.Node{(*ast.FuncLit)(nil), (*ast.FuncDecl)(nil)}, fn)
1671 sort.Slice(allErrors, func(i, j int) bool {
1672 return allErrors[i].node.Pos() < allErrors[j].node.Pos()
1673 })
1674 var prev token.Pos
1675 for _, err := range allErrors {
1676 if err.node.Pos() == prev {
1677 continue
1678 }
1679 prev = err.node.Pos()
1680 ReportNodefFG(pass, err.node, "%s", err.msg)
1681 }
1682 return nil, nil
1683}
1684
1685func LintGuardedDelete(pass *analysis.Pass) (interface{}, error) {
1686 isCommaOkMapIndex := func(stmt ast.Stmt) (b *ast.Ident, m ast.Expr, key ast.Expr, ok bool) {
1687 // Has to be of the form `_, <b:*ast.Ident> = <m:*types.Map>[<key>]
1688
1689 assign, ok := stmt.(*ast.AssignStmt)
1690 if !ok {
1691 return nil, nil, nil, false
1692 }
1693 if len(assign.Lhs) != 2 || len(assign.Rhs) != 1 {
1694 return nil, nil, nil, false
1695 }
1696 if !IsBlank(assign.Lhs[0]) {
1697 return nil, nil, nil, false
1698 }
1699 ident, ok := assign.Lhs[1].(*ast.Ident)
1700 if !ok {
1701 return nil, nil, nil, false
1702 }
1703 index, ok := assign.Rhs[0].(*ast.IndexExpr)
1704 if !ok {
1705 return nil, nil, nil, false
1706 }
1707 if _, ok := pass.TypesInfo.TypeOf(index.X).(*types.Map); !ok {
1708 return nil, nil, nil, false
1709 }
1710 key = index.Index
1711 return ident, index.X, key, true
1712 }
1713 fn := func(node ast.Node) {
1714 stmt := node.(*ast.IfStmt)
1715 if len(stmt.Body.List) != 1 {
1716 return
1717 }
1718 if stmt.Else != nil {
1719 return
1720 }
1721 expr, ok := stmt.Body.List[0].(*ast.ExprStmt)
1722 if !ok {
1723 return
1724 }
1725 call, ok := expr.X.(*ast.CallExpr)
1726 if !ok {
1727 return
1728 }
1729 if !IsCallToAST(pass, call, "delete") {
1730 return
1731 }
1732 b, m, key, ok := isCommaOkMapIndex(stmt.Init)
1733 if !ok {
1734 return
1735 }
1736 if cond, ok := stmt.Cond.(*ast.Ident); !ok || pass.TypesInfo.ObjectOf(cond) != pass.TypesInfo.ObjectOf(b) {
1737 return
1738 }
1739 if Render(pass, call.Args[0]) != Render(pass, m) || Render(pass, call.Args[1]) != Render(pass, key) {
1740 return
1741 }
1742 ReportNodefFG(pass, stmt, "unnecessary guard around call to delete")
1743 }
1744 pass.ResultOf[inspect.Analyzer].(*inspector.Inspector).Preorder([]ast.Node{(*ast.IfStmt)(nil)}, fn)
1745 return nil, nil
1746}
1747
1748func LintSimplifyTypeSwitch(pass *analysis.Pass) (interface{}, error) {
1749 fn := func(node ast.Node) {
1750 stmt := node.(*ast.TypeSwitchStmt)
1751 if stmt.Init != nil {
1752 // bailing out for now, can't anticipate how type switches with initializers are being used
1753 return
1754 }
1755 expr, ok := stmt.Assign.(*ast.ExprStmt)
1756 if !ok {
1757 // the user is in fact assigning the result
1758 return
1759 }
1760 assert := expr.X.(*ast.TypeAssertExpr)
1761 ident, ok := assert.X.(*ast.Ident)
1762 if !ok {
1763 return
1764 }
1765 x := pass.TypesInfo.ObjectOf(ident)
1766 var allOffenders []ast.Node
1767 for _, clause := range stmt.Body.List {
1768 clause := clause.(*ast.CaseClause)
1769 if len(clause.List) != 1 {
1770 continue
1771 }
1772 hasUnrelatedAssertion := false
1773 var offenders []ast.Node
1774 ast.Inspect(clause, func(node ast.Node) bool {
1775 assert2, ok := node.(*ast.TypeAssertExpr)
1776 if !ok {
1777 return true
1778 }
1779 ident, ok := assert2.X.(*ast.Ident)
1780 if !ok {
1781 hasUnrelatedAssertion = true
1782 return false
1783 }
1784 if pass.TypesInfo.ObjectOf(ident) != x {
1785 hasUnrelatedAssertion = true
1786 return false
1787 }
1788
1789 if !types.Identical(pass.TypesInfo.TypeOf(clause.List[0]), pass.TypesInfo.TypeOf(assert2.Type)) {
1790 hasUnrelatedAssertion = true
1791 return false
1792 }
1793 offenders = append(offenders, assert2)
1794 return true
1795 })
1796 if !hasUnrelatedAssertion {
1797 // don't flag cases that have other type assertions
1798 // unrelated to the one in the case clause. often
1799 // times, this is done for symmetry, when two
1800 // different values have to be asserted to the same
1801 // type.
1802 allOffenders = append(allOffenders, offenders...)
1803 }
1804 }
1805 if len(allOffenders) != 0 {
1806 at := ""
1807 for _, offender := range allOffenders {
1808 pos := lint.DisplayPosition(pass.Fset, offender.Pos())
1809 at += "\n\t" + pos.String()
1810 }
1811 ReportNodefFG(pass, expr, "assigning the result of this type assertion to a variable (switch %s := %s.(type)) could eliminate the following type assertions:%s", Render(pass, ident), Render(pass, ident), at)
1812 }
1813 }
1814 pass.ResultOf[inspect.Analyzer].(*inspector.Inspector).Preorder([]ast.Node{(*ast.TypeSwitchStmt)(nil)}, fn)
1815 return nil, nil
1816}
diff --git a/vendor/honnef.co/go/tools/ssa/LICENSE b/vendor/honnef.co/go/tools/ssa/LICENSE
new file mode 100644
index 0000000..aee4804
--- /dev/null
+++ b/vendor/honnef.co/go/tools/ssa/LICENSE
@@ -0,0 +1,28 @@
1Copyright (c) 2009 The Go Authors. All rights reserved.
2Copyright (c) 2016 Dominik Honnef. All rights reserved.
3
4Redistribution and use in source and binary forms, with or without
5modification, are permitted provided that the following conditions are
6met:
7
8 * Redistributions of source code must retain the above copyright
9notice, this list of conditions and the following disclaimer.
10 * Redistributions in binary form must reproduce the above
11copyright notice, this list of conditions and the following disclaimer
12in the documentation and/or other materials provided with the
13distribution.
14 * Neither the name of Google Inc. nor the names of its
15contributors may be used to endorse or promote products derived from
16this software without specific prior written permission.
17
18THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
19"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
20LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
21A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
22OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
23SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
24LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
25DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
26THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
27(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
28OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/vendor/honnef.co/go/tools/ssa/blockopt.go b/vendor/honnef.co/go/tools/ssa/blockopt.go
new file mode 100644
index 0000000..22c9a4c
--- /dev/null
+++ b/vendor/honnef.co/go/tools/ssa/blockopt.go
@@ -0,0 +1,195 @@
1// Copyright 2013 The Go Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style
3// license that can be found in the LICENSE file.
4
5package ssa
6
7// Simple block optimizations to simplify the control flow graph.
8
9// TODO(adonovan): opt: instead of creating several "unreachable" blocks
10// per function in the Builder, reuse a single one (e.g. at Blocks[1])
11// to reduce garbage.
12
13import (
14 "fmt"
15 "os"
16)
17
18// If true, perform sanity checking and show progress at each
19// successive iteration of optimizeBlocks. Very verbose.
20const debugBlockOpt = false
21
22// markReachable sets Index=-1 for all blocks reachable from b.
23func markReachable(b *BasicBlock) {
24 b.Index = -1
25 for _, succ := range b.Succs {
26 if succ.Index == 0 {
27 markReachable(succ)
28 }
29 }
30}
31
32func DeleteUnreachableBlocks(f *Function) {
33 deleteUnreachableBlocks(f)
34}
35
36// deleteUnreachableBlocks marks all reachable blocks of f and
37// eliminates (nils) all others, including possibly cyclic subgraphs.
38//
39func deleteUnreachableBlocks(f *Function) {
40 const white, black = 0, -1
41 // We borrow b.Index temporarily as the mark bit.
42 for _, b := range f.Blocks {
43 b.Index = white
44 }
45 markReachable(f.Blocks[0])
46 if f.Recover != nil {
47 markReachable(f.Recover)
48 }
49 for i, b := range f.Blocks {
50 if b.Index == white {
51 for _, c := range b.Succs {
52 if c.Index == black {
53 c.removePred(b) // delete white->black edge
54 }
55 }
56 if debugBlockOpt {
57 fmt.Fprintln(os.Stderr, "unreachable", b)
58 }
59 f.Blocks[i] = nil // delete b
60 }
61 }
62 f.removeNilBlocks()
63}
64
65// jumpThreading attempts to apply simple jump-threading to block b,
66// in which a->b->c become a->c if b is just a Jump.
67// The result is true if the optimization was applied.
68//
69func jumpThreading(f *Function, b *BasicBlock) bool {
70 if b.Index == 0 {
71 return false // don't apply to entry block
72 }
73 if b.Instrs == nil {
74 return false
75 }
76 if _, ok := b.Instrs[0].(*Jump); !ok {
77 return false // not just a jump
78 }
79 c := b.Succs[0]
80 if c == b {
81 return false // don't apply to degenerate jump-to-self.
82 }
83 if c.hasPhi() {
84 return false // not sound without more effort
85 }
86 for j, a := range b.Preds {
87 a.replaceSucc(b, c)
88
89 // If a now has two edges to c, replace its degenerate If by Jump.
90 if len(a.Succs) == 2 && a.Succs[0] == c && a.Succs[1] == c {
91 jump := new(Jump)
92 jump.setBlock(a)
93 a.Instrs[len(a.Instrs)-1] = jump
94 a.Succs = a.Succs[:1]
95 c.removePred(b)
96 } else {
97 if j == 0 {
98 c.replacePred(b, a)
99 } else {
100 c.Preds = append(c.Preds, a)
101 }
102 }
103
104 if debugBlockOpt {
105 fmt.Fprintln(os.Stderr, "jumpThreading", a, b, c)
106 }
107 }
108 f.Blocks[b.Index] = nil // delete b
109 return true
110}
111
112// fuseBlocks attempts to apply the block fusion optimization to block
113// a, in which a->b becomes ab if len(a.Succs)==len(b.Preds)==1.
114// The result is true if the optimization was applied.
115//
116func fuseBlocks(f *Function, a *BasicBlock) bool {
117 if len(a.Succs) != 1 {
118 return false
119 }
120 b := a.Succs[0]
121 if len(b.Preds) != 1 {
122 return false
123 }
124
125 // Degenerate &&/|| ops may result in a straight-line CFG
126 // containing φ-nodes. (Ideally we'd replace such them with
127 // their sole operand but that requires Referrers, built later.)
128 if b.hasPhi() {
129 return false // not sound without further effort
130 }
131
132 // Eliminate jump at end of A, then copy all of B across.
133 a.Instrs = append(a.Instrs[:len(a.Instrs)-1], b.Instrs...)
134 for _, instr := range b.Instrs {
135 instr.setBlock(a)
136 }
137
138 // A inherits B's successors
139 a.Succs = append(a.succs2[:0], b.Succs...)
140
141 // Fix up Preds links of all successors of B.
142 for _, c := range b.Succs {
143 c.replacePred(b, a)
144 }
145
146 if debugBlockOpt {
147 fmt.Fprintln(os.Stderr, "fuseBlocks", a, b)
148 }
149
150 f.Blocks[b.Index] = nil // delete b
151 return true
152}
153
154func OptimizeBlocks(f *Function) {
155 optimizeBlocks(f)
156}
157
158// optimizeBlocks() performs some simple block optimizations on a
159// completed function: dead block elimination, block fusion, jump
160// threading.
161//
162func optimizeBlocks(f *Function) {
163 deleteUnreachableBlocks(f)
164
165 // Loop until no further progress.
166 changed := true
167 for changed {
168 changed = false
169
170 if debugBlockOpt {
171 f.WriteTo(os.Stderr)
172 mustSanityCheck(f, nil)
173 }
174
175 for _, b := range f.Blocks {
176 // f.Blocks will temporarily contain nils to indicate
177 // deleted blocks; we remove them at the end.
178 if b == nil {
179 continue
180 }
181
182 // Fuse blocks. b->c becomes bc.
183 if fuseBlocks(f, b) {
184 changed = true
185 }
186
187 // a->b->c becomes a->c if b contains only a Jump.
188 if jumpThreading(f, b) {
189 changed = true
190 continue // (b was disconnected)
191 }
192 }
193 }
194 f.removeNilBlocks()
195}
diff --git a/vendor/honnef.co/go/tools/ssa/builder.go b/vendor/honnef.co/go/tools/ssa/builder.go
new file mode 100644
index 0000000..317ac06
--- /dev/null
+++ b/vendor/honnef.co/go/tools/ssa/builder.go
@@ -0,0 +1,2379 @@
1// Copyright 2013 The Go Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style
3// license that can be found in the LICENSE file.
4
5package ssa
6
7// This file implements the BUILD phase of SSA construction.
8//
9// SSA construction has two phases, CREATE and BUILD. In the CREATE phase
10// (create.go), all packages are constructed and type-checked and
11// definitions of all package members are created, method-sets are
12// computed, and wrapper methods are synthesized.
13// ssa.Packages are created in arbitrary order.
14//
15// In the BUILD phase (builder.go), the builder traverses the AST of
16// each Go source function and generates SSA instructions for the
17// function body. Initializer expressions for package-level variables
18// are emitted to the package's init() function in the order specified
19// by go/types.Info.InitOrder, then code for each function in the
20// package is generated in lexical order.
21// The BUILD phases for distinct packages are independent and are
22// executed in parallel.
23//
24// TODO(adonovan): indeed, building functions is now embarrassingly parallel.
25// Audit for concurrency then benchmark using more goroutines.
26//
27// The builder's and Program's indices (maps) are populated and
28// mutated during the CREATE phase, but during the BUILD phase they
29// remain constant. The sole exception is Prog.methodSets and its
30// related maps, which are protected by a dedicated mutex.
31
32import (
33 "fmt"
34 "go/ast"
35 "go/constant"
36 "go/token"
37 "go/types"
38 "os"
39 "sync"
40)
41
42type opaqueType struct {
43 types.Type
44 name string
45}
46
47func (t *opaqueType) String() string { return t.name }
48
49var (
50 varOk = newVar("ok", tBool)
51 varIndex = newVar("index", tInt)
52
53 // Type constants.
54 tBool = types.Typ[types.Bool]
55 tByte = types.Typ[types.Byte]
56 tInt = types.Typ[types.Int]
57 tInvalid = types.Typ[types.Invalid]
58 tString = types.Typ[types.String]
59 tUntypedNil = types.Typ[types.UntypedNil]
60 tRangeIter = &opaqueType{nil, "iter"} // the type of all "range" iterators
61 tEface = types.NewInterfaceType(nil, nil).Complete()
62
63 // SSA Value constants.
64 vZero = intConst(0)
65 vOne = intConst(1)
66 vTrue = NewConst(constant.MakeBool(true), tBool)
67)
68
69// builder holds state associated with the package currently being built.
70// Its methods contain all the logic for AST-to-SSA conversion.
71type builder struct{}
72
73// cond emits to fn code to evaluate boolean condition e and jump
74// to t or f depending on its value, performing various simplifications.
75//
76// Postcondition: fn.currentBlock is nil.
77//
78func (b *builder) cond(fn *Function, e ast.Expr, t, f *BasicBlock) {
79 switch e := e.(type) {
80 case *ast.ParenExpr:
81 b.cond(fn, e.X, t, f)
82 return
83
84 case *ast.BinaryExpr:
85 switch e.Op {
86 case token.LAND:
87 ltrue := fn.newBasicBlock("cond.true")
88 b.cond(fn, e.X, ltrue, f)
89 fn.currentBlock = ltrue
90 b.cond(fn, e.Y, t, f)
91 return
92
93 case token.LOR:
94 lfalse := fn.newBasicBlock("cond.false")
95 b.cond(fn, e.X, t, lfalse)
96 fn.currentBlock = lfalse
97 b.cond(fn, e.Y, t, f)
98 return
99 }
100
101 case *ast.UnaryExpr:
102 if e.Op == token.NOT {
103 b.cond(fn, e.X, f, t)
104 return
105 }
106 }
107
108 // A traditional compiler would simplify "if false" (etc) here
109 // but we do not, for better fidelity to the source code.
110 //
111 // The value of a constant condition may be platform-specific,
112 // and may cause blocks that are reachable in some configuration
113 // to be hidden from subsequent analyses such as bug-finding tools.
114 emitIf(fn, b.expr(fn, e), t, f)
115}
116
117// logicalBinop emits code to fn to evaluate e, a &&- or
118// ||-expression whose reified boolean value is wanted.
119// The value is returned.
120//
121func (b *builder) logicalBinop(fn *Function, e *ast.BinaryExpr) Value {
122 rhs := fn.newBasicBlock("binop.rhs")
123 done := fn.newBasicBlock("binop.done")
124
125 // T(e) = T(e.X) = T(e.Y) after untyped constants have been
126 // eliminated.
127 // TODO(adonovan): not true; MyBool==MyBool yields UntypedBool.
128 t := fn.Pkg.typeOf(e)
129
130 var short Value // value of the short-circuit path
131 switch e.Op {
132 case token.LAND:
133 b.cond(fn, e.X, rhs, done)
134 short = NewConst(constant.MakeBool(false), t)
135
136 case token.LOR:
137 b.cond(fn, e.X, done, rhs)
138 short = NewConst(constant.MakeBool(true), t)
139 }
140
141 // Is rhs unreachable?
142 if rhs.Preds == nil {
143 // Simplify false&&y to false, true||y to true.
144 fn.currentBlock = done
145 return short
146 }
147
148 // Is done unreachable?
149 if done.Preds == nil {
150 // Simplify true&&y (or false||y) to y.
151 fn.currentBlock = rhs
152 return b.expr(fn, e.Y)
153 }
154
155 // All edges from e.X to done carry the short-circuit value.
156 var edges []Value
157 for range done.Preds {
158 edges = append(edges, short)
159 }
160
161 // The edge from e.Y to done carries the value of e.Y.
162 fn.currentBlock = rhs
163 edges = append(edges, b.expr(fn, e.Y))
164 emitJump(fn, done)
165 fn.currentBlock = done
166
167 phi := &Phi{Edges: edges, Comment: e.Op.String()}
168 phi.pos = e.OpPos
169 phi.typ = t
170 return done.emit(phi)
171}
172
173// exprN lowers a multi-result expression e to SSA form, emitting code
174// to fn and returning a single Value whose type is a *types.Tuple.
175// The caller must access the components via Extract.
176//
177// Multi-result expressions include CallExprs in a multi-value
178// assignment or return statement, and "value,ok" uses of
179// TypeAssertExpr, IndexExpr (when X is a map), and UnaryExpr (when Op
180// is token.ARROW).
181//
182func (b *builder) exprN(fn *Function, e ast.Expr) Value {
183 typ := fn.Pkg.typeOf(e).(*types.Tuple)
184 switch e := e.(type) {
185 case *ast.ParenExpr:
186 return b.exprN(fn, e.X)
187
188 case *ast.CallExpr:
189 // Currently, no built-in function nor type conversion
190 // has multiple results, so we can avoid some of the
191 // cases for single-valued CallExpr.
192 var c Call
193 b.setCall(fn, e, &c.Call)
194 c.typ = typ
195 return fn.emit(&c)
196
197 case *ast.IndexExpr:
198 mapt := fn.Pkg.typeOf(e.X).Underlying().(*types.Map)
199 lookup := &Lookup{
200 X: b.expr(fn, e.X),
201 Index: emitConv(fn, b.expr(fn, e.Index), mapt.Key()),
202 CommaOk: true,
203 }
204 lookup.setType(typ)
205 lookup.setPos(e.Lbrack)
206 return fn.emit(lookup)
207
208 case *ast.TypeAssertExpr:
209 return emitTypeTest(fn, b.expr(fn, e.X), typ.At(0).Type(), e.Lparen)
210
211 case *ast.UnaryExpr: // must be receive <-
212 unop := &UnOp{
213 Op: token.ARROW,
214 X: b.expr(fn, e.X),
215 CommaOk: true,
216 }
217 unop.setType(typ)
218 unop.setPos(e.OpPos)
219 return fn.emit(unop)
220 }
221 panic(fmt.Sprintf("exprN(%T) in %s", e, fn))
222}
223
224// builtin emits to fn SSA instructions to implement a call to the
225// built-in function obj with the specified arguments
226// and return type. It returns the value defined by the result.
227//
228// The result is nil if no special handling was required; in this case
229// the caller should treat this like an ordinary library function
230// call.
231//
232func (b *builder) builtin(fn *Function, obj *types.Builtin, args []ast.Expr, typ types.Type, pos token.Pos) Value {
233 switch obj.Name() {
234 case "make":
235 switch typ.Underlying().(type) {
236 case *types.Slice:
237 n := b.expr(fn, args[1])
238 m := n
239 if len(args) == 3 {
240 m = b.expr(fn, args[2])
241 }
242 if m, ok := m.(*Const); ok {
243 // treat make([]T, n, m) as new([m]T)[:n]
244 cap := m.Int64()
245 at := types.NewArray(typ.Underlying().(*types.Slice).Elem(), cap)
246 alloc := emitNew(fn, at, pos)
247 alloc.Comment = "makeslice"
248 v := &Slice{
249 X: alloc,
250 High: n,
251 }
252 v.setPos(pos)
253 v.setType(typ)
254 return fn.emit(v)
255 }
256 v := &MakeSlice{
257 Len: n,
258 Cap: m,
259 }
260 v.setPos(pos)
261 v.setType(typ)
262 return fn.emit(v)
263
264 case *types.Map:
265 var res Value
266 if len(args) == 2 {
267 res = b.expr(fn, args[1])
268 }
269 v := &MakeMap{Reserve: res}
270 v.setPos(pos)
271 v.setType(typ)
272 return fn.emit(v)
273
274 case *types.Chan:
275 var sz Value = vZero
276 if len(args) == 2 {
277 sz = b.expr(fn, args[1])
278 }
279 v := &MakeChan{Size: sz}
280 v.setPos(pos)
281 v.setType(typ)
282 return fn.emit(v)
283 }
284
285 case "new":
286 alloc := emitNew(fn, deref(typ), pos)
287 alloc.Comment = "new"
288 return alloc
289
290 case "len", "cap":
291 // Special case: len or cap of an array or *array is
292 // based on the type, not the value which may be nil.
293 // We must still evaluate the value, though. (If it
294 // was side-effect free, the whole call would have
295 // been constant-folded.)
296 t := deref(fn.Pkg.typeOf(args[0])).Underlying()
297 if at, ok := t.(*types.Array); ok {
298 b.expr(fn, args[0]) // for effects only
299 return intConst(at.Len())
300 }
301 // Otherwise treat as normal.
302
303 case "panic":
304 fn.emit(&Panic{
305 X: emitConv(fn, b.expr(fn, args[0]), tEface),
306 pos: pos,
307 })
308 fn.currentBlock = fn.newBasicBlock("unreachable")
309 return vTrue // any non-nil Value will do
310 }
311 return nil // treat all others as a regular function call
312}
313
314// addr lowers a single-result addressable expression e to SSA form,
315// emitting code to fn and returning the location (an lvalue) defined
316// by the expression.
317//
318// If escaping is true, addr marks the base variable of the
319// addressable expression e as being a potentially escaping pointer
320// value. For example, in this code:
321//
322// a := A{
323// b: [1]B{B{c: 1}}
324// }
325// return &a.b[0].c
326//
327// the application of & causes a.b[0].c to have its address taken,
328// which means that ultimately the local variable a must be
329// heap-allocated. This is a simple but very conservative escape
330// analysis.
331//
332// Operations forming potentially escaping pointers include:
333// - &x, including when implicit in method call or composite literals.
334// - a[:] iff a is an array (not *array)
335// - references to variables in lexically enclosing functions.
336//
337func (b *builder) addr(fn *Function, e ast.Expr, escaping bool) lvalue {
338 switch e := e.(type) {
339 case *ast.Ident:
340 if isBlankIdent(e) {
341 return blank{}
342 }
343 obj := fn.Pkg.objectOf(e)
344 v := fn.Prog.packageLevelValue(obj) // var (address)
345 if v == nil {
346 v = fn.lookup(obj, escaping)
347 }
348 return &address{addr: v, pos: e.Pos(), expr: e}
349
350 case *ast.CompositeLit:
351 t := deref(fn.Pkg.typeOf(e))
352 var v *Alloc
353 if escaping {
354 v = emitNew(fn, t, e.Lbrace)
355 } else {
356 v = fn.addLocal(t, e.Lbrace)
357 }
358 v.Comment = "complit"
359 var sb storebuf
360 b.compLit(fn, v, e, true, &sb)
361 sb.emit(fn)
362 return &address{addr: v, pos: e.Lbrace, expr: e}
363
364 case *ast.ParenExpr:
365 return b.addr(fn, e.X, escaping)
366
367 case *ast.SelectorExpr:
368 sel, ok := fn.Pkg.info.Selections[e]
369 if !ok {
370 // qualified identifier
371 return b.addr(fn, e.Sel, escaping)
372 }
373 if sel.Kind() != types.FieldVal {
374 panic(sel)
375 }
376 wantAddr := true
377 v := b.receiver(fn, e.X, wantAddr, escaping, sel)
378 last := len(sel.Index()) - 1
379 return &address{
380 addr: emitFieldSelection(fn, v, sel.Index()[last], true, e.Sel),
381 pos: e.Sel.Pos(),
382 expr: e.Sel,
383 }
384
385 case *ast.IndexExpr:
386 var x Value
387 var et types.Type
388 switch t := fn.Pkg.typeOf(e.X).Underlying().(type) {
389 case *types.Array:
390 x = b.addr(fn, e.X, escaping).address(fn)
391 et = types.NewPointer(t.Elem())
392 case *types.Pointer: // *array
393 x = b.expr(fn, e.X)
394 et = types.NewPointer(t.Elem().Underlying().(*types.Array).Elem())
395 case *types.Slice:
396 x = b.expr(fn, e.X)
397 et = types.NewPointer(t.Elem())
398 case *types.Map:
399 return &element{
400 m: b.expr(fn, e.X),
401 k: emitConv(fn, b.expr(fn, e.Index), t.Key()),
402 t: t.Elem(),
403 pos: e.Lbrack,
404 }
405 default:
406 panic("unexpected container type in IndexExpr: " + t.String())
407 }
408 v := &IndexAddr{
409 X: x,
410 Index: emitConv(fn, b.expr(fn, e.Index), tInt),
411 }
412 v.setPos(e.Lbrack)
413 v.setType(et)
414 return &address{addr: fn.emit(v), pos: e.Lbrack, expr: e}
415
416 case *ast.StarExpr:
417 return &address{addr: b.expr(fn, e.X), pos: e.Star, expr: e}
418 }
419
420 panic(fmt.Sprintf("unexpected address expression: %T", e))
421}
422
423type store struct {
424 lhs lvalue
425 rhs Value
426}
427
428type storebuf struct{ stores []store }
429
430func (sb *storebuf) store(lhs lvalue, rhs Value) {
431 sb.stores = append(sb.stores, store{lhs, rhs})
432}
433
434func (sb *storebuf) emit(fn *Function) {
435 for _, s := range sb.stores {
436 s.lhs.store(fn, s.rhs)
437 }
438}
439
440// assign emits to fn code to initialize the lvalue loc with the value
441// of expression e. If isZero is true, assign assumes that loc holds
442// the zero value for its type.
443//
444// This is equivalent to loc.store(fn, b.expr(fn, e)), but may generate
445// better code in some cases, e.g., for composite literals in an
446// addressable location.
447//
448// If sb is not nil, assign generates code to evaluate expression e, but
449// not to update loc. Instead, the necessary stores are appended to the
450// storebuf sb so that they can be executed later. This allows correct
451// in-place update of existing variables when the RHS is a composite
452// literal that may reference parts of the LHS.
453//
454func (b *builder) assign(fn *Function, loc lvalue, e ast.Expr, isZero bool, sb *storebuf) {
455 // Can we initialize it in place?
456 if e, ok := unparen(e).(*ast.CompositeLit); ok {
457 // A CompositeLit never evaluates to a pointer,
458 // so if the type of the location is a pointer,
459 // an &-operation is implied.
460 if _, ok := loc.(blank); !ok { // avoid calling blank.typ()
461 if isPointer(loc.typ()) {
462 ptr := b.addr(fn, e, true).address(fn)
463 // copy address
464 if sb != nil {
465 sb.store(loc, ptr)
466 } else {
467 loc.store(fn, ptr)
468 }
469 return
470 }
471 }
472
473 if _, ok := loc.(*address); ok {
474 if isInterface(loc.typ()) {
475 // e.g. var x interface{} = T{...}
476 // Can't in-place initialize an interface value.
477 // Fall back to copying.
478 } else {
479 // x = T{...} or x := T{...}
480 addr := loc.address(fn)
481 if sb != nil {
482 b.compLit(fn, addr, e, isZero, sb)
483 } else {
484 var sb storebuf
485 b.compLit(fn, addr, e, isZero, &sb)
486 sb.emit(fn)
487 }
488
489 // Subtle: emit debug ref for aggregate types only;
490 // slice and map are handled by store ops in compLit.
491 switch loc.typ().Underlying().(type) {
492 case *types.Struct, *types.Array:
493 emitDebugRef(fn, e, addr, true)
494 }
495
496 return
497 }
498 }
499 }
500
501 // simple case: just copy
502 rhs := b.expr(fn, e)
503 if sb != nil {
504 sb.store(loc, rhs)
505 } else {
506 loc.store(fn, rhs)
507 }
508}
509
510// expr lowers a single-result expression e to SSA form, emitting code
511// to fn and returning the Value defined by the expression.
512//
513func (b *builder) expr(fn *Function, e ast.Expr) Value {
514 e = unparen(e)
515
516 tv := fn.Pkg.info.Types[e]
517
518 // Is expression a constant?
519 if tv.Value != nil {
520 return NewConst(tv.Value, tv.Type)
521 }
522
523 var v Value
524 if tv.Addressable() {
525 // Prefer pointer arithmetic ({Index,Field}Addr) followed
526 // by Load over subelement extraction (e.g. Index, Field),
527 // to avoid large copies.
528 v = b.addr(fn, e, false).load(fn)
529 } else {
530 v = b.expr0(fn, e, tv)
531 }
532 if fn.debugInfo() {
533 emitDebugRef(fn, e, v, false)
534 }
535 return v
536}
537
538func (b *builder) expr0(fn *Function, e ast.Expr, tv types.TypeAndValue) Value {
539 switch e := e.(type) {
540 case *ast.BasicLit:
541 panic("non-constant BasicLit") // unreachable
542
543 case *ast.FuncLit:
544 fn2 := &Function{
545 name: fmt.Sprintf("%s$%d", fn.Name(), 1+len(fn.AnonFuncs)),
546 Signature: fn.Pkg.typeOf(e.Type).Underlying().(*types.Signature),
547 pos: e.Type.Func,
548 parent: fn,
549 Pkg: fn.Pkg,
550 Prog: fn.Prog,
551 syntax: e,
552 }
553 fn.AnonFuncs = append(fn.AnonFuncs, fn2)
554 b.buildFunction(fn2)
555 if fn2.FreeVars == nil {
556 return fn2
557 }
558 v := &MakeClosure{Fn: fn2}
559 v.setType(tv.Type)
560 for _, fv := range fn2.FreeVars {
561 v.Bindings = append(v.Bindings, fv.outer)
562 fv.outer = nil
563 }
564 return fn.emit(v)
565
566 case *ast.TypeAssertExpr: // single-result form only
567 return emitTypeAssert(fn, b.expr(fn, e.X), tv.Type, e.Lparen)
568
569 case *ast.CallExpr:
570 if fn.Pkg.info.Types[e.Fun].IsType() {
571 // Explicit type conversion, e.g. string(x) or big.Int(x)
572 x := b.expr(fn, e.Args[0])
573 y := emitConv(fn, x, tv.Type)
574 if y != x {
575 switch y := y.(type) {
576 case *Convert:
577 y.pos = e.Lparen
578 case *ChangeType:
579 y.pos = e.Lparen
580 case *MakeInterface:
581 y.pos = e.Lparen
582 }
583 }
584 return y
585 }
586 // Call to "intrinsic" built-ins, e.g. new, make, panic.
587 if id, ok := unparen(e.Fun).(*ast.Ident); ok {
588 if obj, ok := fn.Pkg.info.Uses[id].(*types.Builtin); ok {
589 if v := b.builtin(fn, obj, e.Args, tv.Type, e.Lparen); v != nil {
590 return v
591 }
592 }
593 }
594 // Regular function call.
595 var v Call
596 b.setCall(fn, e, &v.Call)
597 v.setType(tv.Type)
598 return fn.emit(&v)
599
600 case *ast.UnaryExpr:
601 switch e.Op {
602 case token.AND: // &X --- potentially escaping.
603 addr := b.addr(fn, e.X, true)
604 if _, ok := unparen(e.X).(*ast.StarExpr); ok {
605 // &*p must panic if p is nil (http://golang.org/s/go12nil).
606 // For simplicity, we'll just (suboptimally) rely
607 // on the side effects of a load.
608 // TODO(adonovan): emit dedicated nilcheck.
609 addr.load(fn)
610 }
611 return addr.address(fn)
612 case token.ADD:
613 return b.expr(fn, e.X)
614 case token.NOT, token.ARROW, token.SUB, token.XOR: // ! <- - ^
615 v := &UnOp{
616 Op: e.Op,
617 X: b.expr(fn, e.X),
618 }
619 v.setPos(e.OpPos)
620 v.setType(tv.Type)
621 return fn.emit(v)
622 default:
623 panic(e.Op)
624 }
625
626 case *ast.BinaryExpr:
627 switch e.Op {
628 case token.LAND, token.LOR:
629 return b.logicalBinop(fn, e)
630 case token.SHL, token.SHR:
631 fallthrough
632 case token.ADD, token.SUB, token.MUL, token.QUO, token.REM, token.AND, token.OR, token.XOR, token.AND_NOT:
633 return emitArith(fn, e.Op, b.expr(fn, e.X), b.expr(fn, e.Y), tv.Type, e.OpPos)
634
635 case token.EQL, token.NEQ, token.GTR, token.LSS, token.LEQ, token.GEQ:
636 cmp := emitCompare(fn, e.Op, b.expr(fn, e.X), b.expr(fn, e.Y), e.OpPos)
637 // The type of x==y may be UntypedBool.
638 return emitConv(fn, cmp, DefaultType(tv.Type))
639 default:
640 panic("illegal op in BinaryExpr: " + e.Op.String())
641 }
642
643 case *ast.SliceExpr:
644 var low, high, max Value
645 var x Value
646 switch fn.Pkg.typeOf(e.X).Underlying().(type) {
647 case *types.Array:
648 // Potentially escaping.
649 x = b.addr(fn, e.X, true).address(fn)
650 case *types.Basic, *types.Slice, *types.Pointer: // *array
651 x = b.expr(fn, e.X)
652 default:
653 panic("unreachable")
654 }
655 if e.High != nil {
656 high = b.expr(fn, e.High)
657 }
658 if e.Low != nil {
659 low = b.expr(fn, e.Low)
660 }
661 if e.Slice3 {
662 max = b.expr(fn, e.Max)
663 }
664 v := &Slice{
665 X: x,
666 Low: low,
667 High: high,
668 Max: max,
669 }
670 v.setPos(e.Lbrack)
671 v.setType(tv.Type)
672 return fn.emit(v)
673
674 case *ast.Ident:
675 obj := fn.Pkg.info.Uses[e]
676 // Universal built-in or nil?
677 switch obj := obj.(type) {
678 case *types.Builtin:
679 return &Builtin{name: obj.Name(), sig: tv.Type.(*types.Signature)}
680 case *types.Nil:
681 return nilConst(tv.Type)
682 }
683 // Package-level func or var?
684 if v := fn.Prog.packageLevelValue(obj); v != nil {
685 if _, ok := obj.(*types.Var); ok {
686 return emitLoad(fn, v) // var (address)
687 }
688 return v // (func)
689 }
690 // Local var.
691 return emitLoad(fn, fn.lookup(obj, false)) // var (address)
692
693 case *ast.SelectorExpr:
694 sel, ok := fn.Pkg.info.Selections[e]
695 if !ok {
696 // qualified identifier
697 return b.expr(fn, e.Sel)
698 }
699 switch sel.Kind() {
700 case types.MethodExpr:
701 // (*T).f or T.f, the method f from the method-set of type T.
702 // The result is a "thunk".
703 return emitConv(fn, makeThunk(fn.Prog, sel), tv.Type)
704
705 case types.MethodVal:
706 // e.f where e is an expression and f is a method.
707 // The result is a "bound".
708 obj := sel.Obj().(*types.Func)
709 rt := recvType(obj)
710 wantAddr := isPointer(rt)
711 escaping := true
712 v := b.receiver(fn, e.X, wantAddr, escaping, sel)
713 if isInterface(rt) {
714 // If v has interface type I,
715 // we must emit a check that v is non-nil.
716 // We use: typeassert v.(I).
717 emitTypeAssert(fn, v, rt, token.NoPos)
718 }
719 c := &MakeClosure{
720 Fn: makeBound(fn.Prog, obj),
721 Bindings: []Value{v},
722 }
723 c.setPos(e.Sel.Pos())
724 c.setType(tv.Type)
725 return fn.emit(c)
726
727 case types.FieldVal:
728 indices := sel.Index()
729 last := len(indices) - 1
730 v := b.expr(fn, e.X)
731 v = emitImplicitSelections(fn, v, indices[:last])
732 v = emitFieldSelection(fn, v, indices[last], false, e.Sel)
733 return v
734 }
735
736 panic("unexpected expression-relative selector")
737
738 case *ast.IndexExpr:
739 switch t := fn.Pkg.typeOf(e.X).Underlying().(type) {
740 case *types.Array:
741 // Non-addressable array (in a register).
742 v := &Index{
743 X: b.expr(fn, e.X),
744 Index: emitConv(fn, b.expr(fn, e.Index), tInt),
745 }
746 v.setPos(e.Lbrack)
747 v.setType(t.Elem())
748 return fn.emit(v)
749
750 case *types.Map:
751 // Maps are not addressable.
752 mapt := fn.Pkg.typeOf(e.X).Underlying().(*types.Map)
753 v := &Lookup{
754 X: b.expr(fn, e.X),
755 Index: emitConv(fn, b.expr(fn, e.Index), mapt.Key()),
756 }
757 v.setPos(e.Lbrack)
758 v.setType(mapt.Elem())
759 return fn.emit(v)
760
761 case *types.Basic: // => string
762 // Strings are not addressable.
763 v := &Lookup{
764 X: b.expr(fn, e.X),
765 Index: b.expr(fn, e.Index),
766 }
767 v.setPos(e.Lbrack)
768 v.setType(tByte)
769 return fn.emit(v)
770
771 case *types.Slice, *types.Pointer: // *array
772 // Addressable slice/array; use IndexAddr and Load.
773 return b.addr(fn, e, false).load(fn)
774
775 default:
776 panic("unexpected container type in IndexExpr: " + t.String())
777 }
778
779 case *ast.CompositeLit, *ast.StarExpr:
780 // Addressable types (lvalues)
781 return b.addr(fn, e, false).load(fn)
782 }
783
784 panic(fmt.Sprintf("unexpected expr: %T", e))
785}
786
787// stmtList emits to fn code for all statements in list.
788func (b *builder) stmtList(fn *Function, list []ast.Stmt) {
789 for _, s := range list {
790 b.stmt(fn, s)
791 }
792}
793
794// receiver emits to fn code for expression e in the "receiver"
795// position of selection e.f (where f may be a field or a method) and
796// returns the effective receiver after applying the implicit field
797// selections of sel.
798//
799// wantAddr requests that the result is an an address. If
800// !sel.Indirect(), this may require that e be built in addr() mode; it
801// must thus be addressable.
802//
803// escaping is defined as per builder.addr().
804//
805func (b *builder) receiver(fn *Function, e ast.Expr, wantAddr, escaping bool, sel *types.Selection) Value {
806 var v Value
807 if wantAddr && !sel.Indirect() && !isPointer(fn.Pkg.typeOf(e)) {
808 v = b.addr(fn, e, escaping).address(fn)
809 } else {
810 v = b.expr(fn, e)
811 }
812
813 last := len(sel.Index()) - 1
814 v = emitImplicitSelections(fn, v, sel.Index()[:last])
815 if !wantAddr && isPointer(v.Type()) {
816 v = emitLoad(fn, v)
817 }
818 return v
819}
820
821// setCallFunc populates the function parts of a CallCommon structure
822// (Func, Method, Recv, Args[0]) based on the kind of invocation
823// occurring in e.
824//
825func (b *builder) setCallFunc(fn *Function, e *ast.CallExpr, c *CallCommon) {
826 c.pos = e.Lparen
827
828 // Is this a method call?
829 if selector, ok := unparen(e.Fun).(*ast.SelectorExpr); ok {
830 sel, ok := fn.Pkg.info.Selections[selector]
831 if ok && sel.Kind() == types.MethodVal {
832 obj := sel.Obj().(*types.Func)
833 recv := recvType(obj)
834 wantAddr := isPointer(recv)
835 escaping := true
836 v := b.receiver(fn, selector.X, wantAddr, escaping, sel)
837 if isInterface(recv) {
838 // Invoke-mode call.
839 c.Value = v
840 c.Method = obj
841 } else {
842 // "Call"-mode call.
843 c.Value = fn.Prog.declaredFunc(obj)
844 c.Args = append(c.Args, v)
845 }
846 return
847 }
848
849 // sel.Kind()==MethodExpr indicates T.f() or (*T).f():
850 // a statically dispatched call to the method f in the
851 // method-set of T or *T. T may be an interface.
852 //
853 // e.Fun would evaluate to a concrete method, interface
854 // wrapper function, or promotion wrapper.
855 //
856 // For now, we evaluate it in the usual way.
857 //
858 // TODO(adonovan): opt: inline expr() here, to make the
859 // call static and to avoid generation of wrappers.
860 // It's somewhat tricky as it may consume the first
861 // actual parameter if the call is "invoke" mode.
862 //
863 // Examples:
864 // type T struct{}; func (T) f() {} // "call" mode
865 // type T interface { f() } // "invoke" mode
866 //
867 // type S struct{ T }
868 //
869 // var s S
870 // S.f(s)
871 // (*S).f(&s)
872 //
873 // Suggested approach:
874 // - consume the first actual parameter expression
875 // and build it with b.expr().
876 // - apply implicit field selections.
877 // - use MethodVal logic to populate fields of c.
878 }
879
880 // Evaluate the function operand in the usual way.
881 c.Value = b.expr(fn, e.Fun)
882}
883
884// emitCallArgs emits to f code for the actual parameters of call e to
885// a (possibly built-in) function of effective type sig.
886// The argument values are appended to args, which is then returned.
887//
888func (b *builder) emitCallArgs(fn *Function, sig *types.Signature, e *ast.CallExpr, args []Value) []Value {
889 // f(x, y, z...): pass slice z straight through.
890 if e.Ellipsis != 0 {
891 for i, arg := range e.Args {
892 v := emitConv(fn, b.expr(fn, arg), sig.Params().At(i).Type())
893 args = append(args, v)
894 }
895 return args
896 }
897
898 offset := len(args) // 1 if call has receiver, 0 otherwise
899
900 // Evaluate actual parameter expressions.
901 //
902 // If this is a chained call of the form f(g()) where g has
903 // multiple return values (MRV), they are flattened out into
904 // args; a suffix of them may end up in a varargs slice.
905 for _, arg := range e.Args {
906 v := b.expr(fn, arg)
907 if ttuple, ok := v.Type().(*types.Tuple); ok { // MRV chain
908 for i, n := 0, ttuple.Len(); i < n; i++ {
909 args = append(args, emitExtract(fn, v, i))
910 }
911 } else {
912 args = append(args, v)
913 }
914 }
915
916 // Actual->formal assignability conversions for normal parameters.
917 np := sig.Params().Len() // number of normal parameters
918 if sig.Variadic() {
919 np--
920 }
921 for i := 0; i < np; i++ {
922 args[offset+i] = emitConv(fn, args[offset+i], sig.Params().At(i).Type())
923 }
924
925 // Actual->formal assignability conversions for variadic parameter,
926 // and construction of slice.
927 if sig.Variadic() {
928 varargs := args[offset+np:]
929 st := sig.Params().At(np).Type().(*types.Slice)
930 vt := st.Elem()
931 if len(varargs) == 0 {
932 args = append(args, nilConst(st))
933 } else {
934 // Replace a suffix of args with a slice containing it.
935 at := types.NewArray(vt, int64(len(varargs)))
936 a := emitNew(fn, at, token.NoPos)
937 a.setPos(e.Rparen)
938 a.Comment = "varargs"
939 for i, arg := range varargs {
940 iaddr := &IndexAddr{
941 X: a,
942 Index: intConst(int64(i)),
943 }
944 iaddr.setType(types.NewPointer(vt))
945 fn.emit(iaddr)
946 emitStore(fn, iaddr, arg, arg.Pos())
947 }
948 s := &Slice{X: a}
949 s.setType(st)
950 args[offset+np] = fn.emit(s)
951 args = args[:offset+np+1]
952 }
953 }
954 return args
955}
956
957// setCall emits to fn code to evaluate all the parameters of a function
958// call e, and populates *c with those values.
959//
960func (b *builder) setCall(fn *Function, e *ast.CallExpr, c *CallCommon) {
961 // First deal with the f(...) part and optional receiver.
962 b.setCallFunc(fn, e, c)
963
964 // Then append the other actual parameters.
965 sig, _ := fn.Pkg.typeOf(e.Fun).Underlying().(*types.Signature)
966 if sig == nil {
967 panic(fmt.Sprintf("no signature for call of %s", e.Fun))
968 }
969 c.Args = b.emitCallArgs(fn, sig, e, c.Args)
970}
971
972// assignOp emits to fn code to perform loc <op>= val.
973func (b *builder) assignOp(fn *Function, loc lvalue, val Value, op token.Token, pos token.Pos) {
974 oldv := loc.load(fn)
975 loc.store(fn, emitArith(fn, op, oldv, emitConv(fn, val, oldv.Type()), loc.typ(), pos))
976}
977
978// localValueSpec emits to fn code to define all of the vars in the
979// function-local ValueSpec, spec.
980//
981func (b *builder) localValueSpec(fn *Function, spec *ast.ValueSpec) {
982 switch {
983 case len(spec.Values) == len(spec.Names):
984 // e.g. var x, y = 0, 1
985 // 1:1 assignment
986 for i, id := range spec.Names {
987 if !isBlankIdent(id) {
988 fn.addLocalForIdent(id)
989 }
990 lval := b.addr(fn, id, false) // non-escaping
991 b.assign(fn, lval, spec.Values[i], true, nil)
992 }
993
994 case len(spec.Values) == 0:
995 // e.g. var x, y int
996 // Locals are implicitly zero-initialized.
997 for _, id := range spec.Names {
998 if !isBlankIdent(id) {
999 lhs := fn.addLocalForIdent(id)
1000 if fn.debugInfo() {
1001 emitDebugRef(fn, id, lhs, true)
1002 }
1003 }
1004 }
1005
1006 default:
1007 // e.g. var x, y = pos()
1008 tuple := b.exprN(fn, spec.Values[0])
1009 for i, id := range spec.Names {
1010 if !isBlankIdent(id) {
1011 fn.addLocalForIdent(id)
1012 lhs := b.addr(fn, id, false) // non-escaping
1013 lhs.store(fn, emitExtract(fn, tuple, i))
1014 }
1015 }
1016 }
1017}
1018
1019// assignStmt emits code to fn for a parallel assignment of rhss to lhss.
1020// isDef is true if this is a short variable declaration (:=).
1021//
1022// Note the similarity with localValueSpec.
1023//
1024func (b *builder) assignStmt(fn *Function, lhss, rhss []ast.Expr, isDef bool) {
1025 // Side effects of all LHSs and RHSs must occur in left-to-right order.
1026 lvals := make([]lvalue, len(lhss))
1027 isZero := make([]bool, len(lhss))
1028 for i, lhs := range lhss {
1029 var lval lvalue = blank{}
1030 if !isBlankIdent(lhs) {
1031 if isDef {
1032 if obj := fn.Pkg.info.Defs[lhs.(*ast.Ident)]; obj != nil {
1033 fn.addNamedLocal(obj)
1034 isZero[i] = true
1035 }
1036 }
1037 lval = b.addr(fn, lhs, false) // non-escaping
1038 }
1039 lvals[i] = lval
1040 }
1041 if len(lhss) == len(rhss) {
1042 // Simple assignment: x = f() (!isDef)
1043 // Parallel assignment: x, y = f(), g() (!isDef)
1044 // or short var decl: x, y := f(), g() (isDef)
1045 //
1046 // In all cases, the RHSs may refer to the LHSs,
1047 // so we need a storebuf.
1048 var sb storebuf
1049 for i := range rhss {
1050 b.assign(fn, lvals[i], rhss[i], isZero[i], &sb)
1051 }
1052 sb.emit(fn)
1053 } else {
1054 // e.g. x, y = pos()
1055 tuple := b.exprN(fn, rhss[0])
1056 emitDebugRef(fn, rhss[0], tuple, false)
1057 for i, lval := range lvals {
1058 lval.store(fn, emitExtract(fn, tuple, i))
1059 }
1060 }
1061}
1062
1063// arrayLen returns the length of the array whose composite literal elements are elts.
1064func (b *builder) arrayLen(fn *Function, elts []ast.Expr) int64 {
1065 var max int64 = -1
1066 var i int64 = -1
1067 for _, e := range elts {
1068 if kv, ok := e.(*ast.KeyValueExpr); ok {
1069 i = b.expr(fn, kv.Key).(*Const).Int64()
1070 } else {
1071 i++
1072 }
1073 if i > max {
1074 max = i
1075 }
1076 }
1077 return max + 1
1078}
1079
1080// compLit emits to fn code to initialize a composite literal e at
1081// address addr with type typ.
1082//
1083// Nested composite literals are recursively initialized in place
1084// where possible. If isZero is true, compLit assumes that addr
1085// holds the zero value for typ.
1086//
1087// Because the elements of a composite literal may refer to the
1088// variables being updated, as in the second line below,
1089// x := T{a: 1}
1090// x = T{a: x.a}
1091// all the reads must occur before all the writes. Thus all stores to
1092// loc are emitted to the storebuf sb for later execution.
1093//
1094// A CompositeLit may have pointer type only in the recursive (nested)
1095// case when the type name is implicit. e.g. in []*T{{}}, the inner
1096// literal has type *T behaves like &T{}.
1097// In that case, addr must hold a T, not a *T.
1098//
1099func (b *builder) compLit(fn *Function, addr Value, e *ast.CompositeLit, isZero bool, sb *storebuf) {
1100 typ := deref(fn.Pkg.typeOf(e))
1101 switch t := typ.Underlying().(type) {
1102 case *types.Struct:
1103 if !isZero && len(e.Elts) != t.NumFields() {
1104 // memclear
1105 sb.store(&address{addr, e.Lbrace, nil},
1106 zeroValue(fn, deref(addr.Type())))
1107 isZero = true
1108 }
1109 for i, e := range e.Elts {
1110 fieldIndex := i
1111 pos := e.Pos()
1112 if kv, ok := e.(*ast.KeyValueExpr); ok {
1113 fname := kv.Key.(*ast.Ident).Name
1114 for i, n := 0, t.NumFields(); i < n; i++ {
1115 sf := t.Field(i)
1116 if sf.Name() == fname {
1117 fieldIndex = i
1118 pos = kv.Colon
1119 e = kv.Value
1120 break
1121 }
1122 }
1123 }
1124 sf := t.Field(fieldIndex)
1125 faddr := &FieldAddr{
1126 X: addr,
1127 Field: fieldIndex,
1128 }
1129 faddr.setType(types.NewPointer(sf.Type()))
1130 fn.emit(faddr)
1131 b.assign(fn, &address{addr: faddr, pos: pos, expr: e}, e, isZero, sb)
1132 }
1133
1134 case *types.Array, *types.Slice:
1135 var at *types.Array
1136 var array Value
1137 switch t := t.(type) {
1138 case *types.Slice:
1139 at = types.NewArray(t.Elem(), b.arrayLen(fn, e.Elts))
1140 alloc := emitNew(fn, at, e.Lbrace)
1141 alloc.Comment = "slicelit"
1142 array = alloc
1143 case *types.Array:
1144 at = t
1145 array = addr
1146
1147 if !isZero && int64(len(e.Elts)) != at.Len() {
1148 // memclear
1149 sb.store(&address{array, e.Lbrace, nil},
1150 zeroValue(fn, deref(array.Type())))
1151 }
1152 }
1153
1154 var idx *Const
1155 for _, e := range e.Elts {
1156 pos := e.Pos()
1157 if kv, ok := e.(*ast.KeyValueExpr); ok {
1158 idx = b.expr(fn, kv.Key).(*Const)
1159 pos = kv.Colon
1160 e = kv.Value
1161 } else {
1162 var idxval int64
1163 if idx != nil {
1164 idxval = idx.Int64() + 1
1165 }
1166 idx = intConst(idxval)
1167 }
1168 iaddr := &IndexAddr{
1169 X: array,
1170 Index: idx,
1171 }
1172 iaddr.setType(types.NewPointer(at.Elem()))
1173 fn.emit(iaddr)
1174 if t != at { // slice
1175 // backing array is unaliased => storebuf not needed.
1176 b.assign(fn, &address{addr: iaddr, pos: pos, expr: e}, e, true, nil)
1177 } else {
1178 b.assign(fn, &address{addr: iaddr, pos: pos, expr: e}, e, true, sb)
1179 }
1180 }
1181
1182 if t != at { // slice
1183 s := &Slice{X: array}
1184 s.setPos(e.Lbrace)
1185 s.setType(typ)
1186 sb.store(&address{addr: addr, pos: e.Lbrace, expr: e}, fn.emit(s))
1187 }
1188
1189 case *types.Map:
1190 m := &MakeMap{Reserve: intConst(int64(len(e.Elts)))}
1191 m.setPos(e.Lbrace)
1192 m.setType(typ)
1193 fn.emit(m)
1194 for _, e := range e.Elts {
1195 e := e.(*ast.KeyValueExpr)
1196
1197 // If a key expression in a map literal is itself a
1198 // composite literal, the type may be omitted.
1199 // For example:
1200 // map[*struct{}]bool{{}: true}
1201 // An &-operation may be implied:
1202 // map[*struct{}]bool{&struct{}{}: true}
1203 var key Value
1204 if _, ok := unparen(e.Key).(*ast.CompositeLit); ok && isPointer(t.Key()) {
1205 // A CompositeLit never evaluates to a pointer,
1206 // so if the type of the location is a pointer,
1207 // an &-operation is implied.
1208 key = b.addr(fn, e.Key, true).address(fn)
1209 } else {
1210 key = b.expr(fn, e.Key)
1211 }
1212
1213 loc := element{
1214 m: m,
1215 k: emitConv(fn, key, t.Key()),
1216 t: t.Elem(),
1217 pos: e.Colon,
1218 }
1219
1220 // We call assign() only because it takes care
1221 // of any &-operation required in the recursive
1222 // case, e.g.,
1223 // map[int]*struct{}{0: {}} implies &struct{}{}.
1224 // In-place update is of course impossible,
1225 // and no storebuf is needed.
1226 b.assign(fn, &loc, e.Value, true, nil)
1227 }
1228 sb.store(&address{addr: addr, pos: e.Lbrace, expr: e}, m)
1229
1230 default:
1231 panic("unexpected CompositeLit type: " + t.String())
1232 }
1233}
1234
1235// switchStmt emits to fn code for the switch statement s, optionally
1236// labelled by label.
1237//
1238func (b *builder) switchStmt(fn *Function, s *ast.SwitchStmt, label *lblock) {
1239 // We treat SwitchStmt like a sequential if-else chain.
1240 // Multiway dispatch can be recovered later by ssautil.Switches()
1241 // to those cases that are free of side effects.
1242 if s.Init != nil {
1243 b.stmt(fn, s.Init)
1244 }
1245 var tag Value = vTrue
1246 if s.Tag != nil {
1247 tag = b.expr(fn, s.Tag)
1248 }
1249 done := fn.newBasicBlock("switch.done")
1250 if label != nil {
1251 label._break = done
1252 }
1253 // We pull the default case (if present) down to the end.
1254 // But each fallthrough label must point to the next
1255 // body block in source order, so we preallocate a
1256 // body block (fallthru) for the next case.
1257 // Unfortunately this makes for a confusing block order.
1258 var dfltBody *[]ast.Stmt
1259 var dfltFallthrough *BasicBlock
1260 var fallthru, dfltBlock *BasicBlock
1261 ncases := len(s.Body.List)
1262 for i, clause := range s.Body.List {
1263 body := fallthru
1264 if body == nil {
1265 body = fn.newBasicBlock("switch.body") // first case only
1266 }
1267
1268 // Preallocate body block for the next case.
1269 fallthru = done
1270 if i+1 < ncases {
1271 fallthru = fn.newBasicBlock("switch.body")
1272 }
1273
1274 cc := clause.(*ast.CaseClause)
1275 if cc.List == nil {
1276 // Default case.
1277 dfltBody = &cc.Body
1278 dfltFallthrough = fallthru
1279 dfltBlock = body
1280 continue
1281 }
1282
1283 var nextCond *BasicBlock
1284 for _, cond := range cc.List {
1285 nextCond = fn.newBasicBlock("switch.next")
1286 // TODO(adonovan): opt: when tag==vTrue, we'd
1287 // get better code if we use b.cond(cond)
1288 // instead of BinOp(EQL, tag, b.expr(cond))
1289 // followed by If. Don't forget conversions
1290 // though.
1291 cond := emitCompare(fn, token.EQL, tag, b.expr(fn, cond), cond.Pos())
1292 emitIf(fn, cond, body, nextCond)
1293 fn.currentBlock = nextCond
1294 }
1295 fn.currentBlock = body
1296 fn.targets = &targets{
1297 tail: fn.targets,
1298 _break: done,
1299 _fallthrough: fallthru,
1300 }
1301 b.stmtList(fn, cc.Body)
1302 fn.targets = fn.targets.tail
1303 emitJump(fn, done)
1304 fn.currentBlock = nextCond
1305 }
1306 if dfltBlock != nil {
1307 emitJump(fn, dfltBlock)
1308 fn.currentBlock = dfltBlock
1309 fn.targets = &targets{
1310 tail: fn.targets,
1311 _break: done,
1312 _fallthrough: dfltFallthrough,
1313 }
1314 b.stmtList(fn, *dfltBody)
1315 fn.targets = fn.targets.tail
1316 }
1317 emitJump(fn, done)
1318 fn.currentBlock = done
1319}
1320
1321// typeSwitchStmt emits to fn code for the type switch statement s, optionally
1322// labelled by label.
1323//
1324func (b *builder) typeSwitchStmt(fn *Function, s *ast.TypeSwitchStmt, label *lblock) {
1325 // We treat TypeSwitchStmt like a sequential if-else chain.
1326 // Multiway dispatch can be recovered later by ssautil.Switches().
1327
1328 // Typeswitch lowering:
1329 //
1330 // var x X
1331 // switch y := x.(type) {
1332 // case T1, T2: S1 // >1 (y := x)
1333 // case nil: SN // nil (y := x)
1334 // default: SD // 0 types (y := x)
1335 // case T3: S3 // 1 type (y := x.(T3))
1336 // }
1337 //
1338 // ...s.Init...
1339 // x := eval x
1340 // .caseT1:
1341 // t1, ok1 := typeswitch,ok x <T1>
1342 // if ok1 then goto S1 else goto .caseT2
1343 // .caseT2:
1344 // t2, ok2 := typeswitch,ok x <T2>
1345 // if ok2 then goto S1 else goto .caseNil
1346 // .S1:
1347 // y := x
1348 // ...S1...
1349 // goto done
1350 // .caseNil:
1351 // if t2, ok2 := typeswitch,ok x <T2>
1352 // if x == nil then goto SN else goto .caseT3
1353 // .SN:
1354 // y := x
1355 // ...SN...
1356 // goto done
1357 // .caseT3:
1358 // t3, ok3 := typeswitch,ok x <T3>
1359 // if ok3 then goto S3 else goto default
1360 // .S3:
1361 // y := t3
1362 // ...S3...
1363 // goto done
1364 // .default:
1365 // y := x
1366 // ...SD...
1367 // goto done
1368 // .done:
1369
1370 if s.Init != nil {
1371 b.stmt(fn, s.Init)
1372 }
1373
1374 var x Value
1375 switch ass := s.Assign.(type) {
1376 case *ast.ExprStmt: // x.(type)
1377 x = b.expr(fn, unparen(ass.X).(*ast.TypeAssertExpr).X)
1378 case *ast.AssignStmt: // y := x.(type)
1379 x = b.expr(fn, unparen(ass.Rhs[0]).(*ast.TypeAssertExpr).X)
1380 }
1381
1382 done := fn.newBasicBlock("typeswitch.done")
1383 if label != nil {
1384 label._break = done
1385 }
1386 var default_ *ast.CaseClause
1387 for _, clause := range s.Body.List {
1388 cc := clause.(*ast.CaseClause)
1389 if cc.List == nil {
1390 default_ = cc
1391 continue
1392 }
1393 body := fn.newBasicBlock("typeswitch.body")
1394 var next *BasicBlock
1395 var casetype types.Type
1396 var ti Value // ti, ok := typeassert,ok x <Ti>
1397 for _, cond := range cc.List {
1398 next = fn.newBasicBlock("typeswitch.next")
1399 casetype = fn.Pkg.typeOf(cond)
1400 var condv Value
1401 if casetype == tUntypedNil {
1402 condv = emitCompare(fn, token.EQL, x, nilConst(x.Type()), token.NoPos)
1403 ti = x
1404 } else {
1405 yok := emitTypeTest(fn, x, casetype, cc.Case)
1406 ti = emitExtract(fn, yok, 0)
1407 condv = emitExtract(fn, yok, 1)
1408 }
1409 emitIf(fn, condv, body, next)
1410 fn.currentBlock = next
1411 }
1412 if len(cc.List) != 1 {
1413 ti = x
1414 }
1415 fn.currentBlock = body
1416 b.typeCaseBody(fn, cc, ti, done)
1417 fn.currentBlock = next
1418 }
1419 if default_ != nil {
1420 b.typeCaseBody(fn, default_, x, done)
1421 } else {
1422 emitJump(fn, done)
1423 }
1424 fn.currentBlock = done
1425}
1426
1427func (b *builder) typeCaseBody(fn *Function, cc *ast.CaseClause, x Value, done *BasicBlock) {
1428 if obj := fn.Pkg.info.Implicits[cc]; obj != nil {
1429 // In a switch y := x.(type), each case clause
1430 // implicitly declares a distinct object y.
1431 // In a single-type case, y has that type.
1432 // In multi-type cases, 'case nil' and default,
1433 // y has the same type as the interface operand.
1434 emitStore(fn, fn.addNamedLocal(obj), x, obj.Pos())
1435 }
1436 fn.targets = &targets{
1437 tail: fn.targets,
1438 _break: done,
1439 }
1440 b.stmtList(fn, cc.Body)
1441 fn.targets = fn.targets.tail
1442 emitJump(fn, done)
1443}
1444
1445// selectStmt emits to fn code for the select statement s, optionally
1446// labelled by label.
1447//
1448func (b *builder) selectStmt(fn *Function, s *ast.SelectStmt, label *lblock) {
1449 // A blocking select of a single case degenerates to a
1450 // simple send or receive.
1451 // TODO(adonovan): opt: is this optimization worth its weight?
1452 if len(s.Body.List) == 1 {
1453 clause := s.Body.List[0].(*ast.CommClause)
1454 if clause.Comm != nil {
1455 b.stmt(fn, clause.Comm)
1456 done := fn.newBasicBlock("select.done")
1457 if label != nil {
1458 label._break = done
1459 }
1460 fn.targets = &targets{
1461 tail: fn.targets,
1462 _break: done,
1463 }
1464 b.stmtList(fn, clause.Body)
1465 fn.targets = fn.targets.tail
1466 emitJump(fn, done)
1467 fn.currentBlock = done
1468 return
1469 }
1470 }
1471
1472 // First evaluate all channels in all cases, and find
1473 // the directions of each state.
1474 var states []*SelectState
1475 blocking := true
1476 debugInfo := fn.debugInfo()
1477 for _, clause := range s.Body.List {
1478 var st *SelectState
1479 switch comm := clause.(*ast.CommClause).Comm.(type) {
1480 case nil: // default case
1481 blocking = false
1482 continue
1483
1484 case *ast.SendStmt: // ch<- i
1485 ch := b.expr(fn, comm.Chan)
1486 st = &SelectState{
1487 Dir: types.SendOnly,
1488 Chan: ch,
1489 Send: emitConv(fn, b.expr(fn, comm.Value),
1490 ch.Type().Underlying().(*types.Chan).Elem()),
1491 Pos: comm.Arrow,
1492 }
1493 if debugInfo {
1494 st.DebugNode = comm
1495 }
1496
1497 case *ast.AssignStmt: // x := <-ch
1498 recv := unparen(comm.Rhs[0]).(*ast.UnaryExpr)
1499 st = &SelectState{
1500 Dir: types.RecvOnly,
1501 Chan: b.expr(fn, recv.X),
1502 Pos: recv.OpPos,
1503 }
1504 if debugInfo {
1505 st.DebugNode = recv
1506 }
1507
1508 case *ast.ExprStmt: // <-ch
1509 recv := unparen(comm.X).(*ast.UnaryExpr)
1510 st = &SelectState{
1511 Dir: types.RecvOnly,
1512 Chan: b.expr(fn, recv.X),
1513 Pos: recv.OpPos,
1514 }
1515 if debugInfo {
1516 st.DebugNode = recv
1517 }
1518 }
1519 states = append(states, st)
1520 }
1521
1522 // We dispatch on the (fair) result of Select using a
1523 // sequential if-else chain, in effect:
1524 //
1525 // idx, recvOk, r0...r_n-1 := select(...)
1526 // if idx == 0 { // receive on channel 0 (first receive => r0)
1527 // x, ok := r0, recvOk
1528 // ...state0...
1529 // } else if v == 1 { // send on channel 1
1530 // ...state1...
1531 // } else {
1532 // ...default...
1533 // }
1534 sel := &Select{
1535 States: states,
1536 Blocking: blocking,
1537 }
1538 sel.setPos(s.Select)
1539 var vars []*types.Var
1540 vars = append(vars, varIndex, varOk)
1541 for _, st := range states {
1542 if st.Dir == types.RecvOnly {
1543 tElem := st.Chan.Type().Underlying().(*types.Chan).Elem()
1544 vars = append(vars, anonVar(tElem))
1545 }
1546 }
1547 sel.setType(types.NewTuple(vars...))
1548
1549 fn.emit(sel)
1550 idx := emitExtract(fn, sel, 0)
1551
1552 done := fn.newBasicBlock("select.done")
1553 if label != nil {
1554 label._break = done
1555 }
1556
1557 var defaultBody *[]ast.Stmt
1558 state := 0
1559 r := 2 // index in 'sel' tuple of value; increments if st.Dir==RECV
1560 for _, cc := range s.Body.List {
1561 clause := cc.(*ast.CommClause)
1562 if clause.Comm == nil {
1563 defaultBody = &clause.Body
1564 continue
1565 }
1566 body := fn.newBasicBlock("select.body")
1567 next := fn.newBasicBlock("select.next")
1568 emitIf(fn, emitCompare(fn, token.EQL, idx, intConst(int64(state)), token.NoPos), body, next)
1569 fn.currentBlock = body
1570 fn.targets = &targets{
1571 tail: fn.targets,
1572 _break: done,
1573 }
1574 switch comm := clause.Comm.(type) {
1575 case *ast.ExprStmt: // <-ch
1576 if debugInfo {
1577 v := emitExtract(fn, sel, r)
1578 emitDebugRef(fn, states[state].DebugNode.(ast.Expr), v, false)
1579 }
1580 r++
1581
1582 case *ast.AssignStmt: // x := <-states[state].Chan
1583 if comm.Tok == token.DEFINE {
1584 fn.addLocalForIdent(comm.Lhs[0].(*ast.Ident))
1585 }
1586 x := b.addr(fn, comm.Lhs[0], false) // non-escaping
1587 v := emitExtract(fn, sel, r)
1588 if debugInfo {
1589 emitDebugRef(fn, states[state].DebugNode.(ast.Expr), v, false)
1590 }
1591 x.store(fn, v)
1592
1593 if len(comm.Lhs) == 2 { // x, ok := ...
1594 if comm.Tok == token.DEFINE {
1595 fn.addLocalForIdent(comm.Lhs[1].(*ast.Ident))
1596 }
1597 ok := b.addr(fn, comm.Lhs[1], false) // non-escaping
1598 ok.store(fn, emitExtract(fn, sel, 1))
1599 }
1600 r++
1601 }
1602 b.stmtList(fn, clause.Body)
1603 fn.targets = fn.targets.tail
1604 emitJump(fn, done)
1605 fn.currentBlock = next
1606 state++
1607 }
1608 if defaultBody != nil {
1609 fn.targets = &targets{
1610 tail: fn.targets,
1611 _break: done,
1612 }
1613 b.stmtList(fn, *defaultBody)
1614 fn.targets = fn.targets.tail
1615 } else {
1616 // A blocking select must match some case.
1617 // (This should really be a runtime.errorString, not a string.)
1618 fn.emit(&Panic{
1619 X: emitConv(fn, stringConst("blocking select matched no case"), tEface),
1620 })
1621 fn.currentBlock = fn.newBasicBlock("unreachable")
1622 }
1623 emitJump(fn, done)
1624 fn.currentBlock = done
1625}
1626
1627// forStmt emits to fn code for the for statement s, optionally
1628// labelled by label.
1629//
1630func (b *builder) forStmt(fn *Function, s *ast.ForStmt, label *lblock) {
1631 // ...init...
1632 // jump loop
1633 // loop:
1634 // if cond goto body else done
1635 // body:
1636 // ...body...
1637 // jump post
1638 // post: (target of continue)
1639 // ...post...
1640 // jump loop
1641 // done: (target of break)
1642 if s.Init != nil {
1643 b.stmt(fn, s.Init)
1644 }
1645 body := fn.newBasicBlock("for.body")
1646 done := fn.newBasicBlock("for.done") // target of 'break'
1647 loop := body // target of back-edge
1648 if s.Cond != nil {
1649 loop = fn.newBasicBlock("for.loop")
1650 }
1651 cont := loop // target of 'continue'
1652 if s.Post != nil {
1653 cont = fn.newBasicBlock("for.post")
1654 }
1655 if label != nil {
1656 label._break = done
1657 label._continue = cont
1658 }
1659 emitJump(fn, loop)
1660 fn.currentBlock = loop
1661 if loop != body {
1662 b.cond(fn, s.Cond, body, done)
1663 fn.currentBlock = body
1664 }
1665 fn.targets = &targets{
1666 tail: fn.targets,
1667 _break: done,
1668 _continue: cont,
1669 }
1670 b.stmt(fn, s.Body)
1671 fn.targets = fn.targets.tail
1672 emitJump(fn, cont)
1673
1674 if s.Post != nil {
1675 fn.currentBlock = cont
1676 b.stmt(fn, s.Post)
1677 emitJump(fn, loop) // back-edge
1678 }
1679 fn.currentBlock = done
1680}
1681
1682// rangeIndexed emits to fn the header for an integer-indexed loop
1683// over array, *array or slice value x.
1684// The v result is defined only if tv is non-nil.
1685// forPos is the position of the "for" token.
1686//
1687func (b *builder) rangeIndexed(fn *Function, x Value, tv types.Type, pos token.Pos) (k, v Value, loop, done *BasicBlock) {
1688 //
1689 // length = len(x)
1690 // index = -1
1691 // loop: (target of continue)
1692 // index++
1693 // if index < length goto body else done
1694 // body:
1695 // k = index
1696 // v = x[index]
1697 // ...body...
1698 // jump loop
1699 // done: (target of break)
1700
1701 // Determine number of iterations.
1702 var length Value
1703 if arr, ok := deref(x.Type()).Underlying().(*types.Array); ok {
1704 // For array or *array, the number of iterations is
1705 // known statically thanks to the type. We avoid a
1706 // data dependence upon x, permitting later dead-code
1707 // elimination if x is pure, static unrolling, etc.
1708 // Ranging over a nil *array may have >0 iterations.
1709 // We still generate code for x, in case it has effects.
1710 length = intConst(arr.Len())
1711 } else {
1712 // length = len(x).
1713 var c Call
1714 c.Call.Value = makeLen(x.Type())
1715 c.Call.Args = []Value{x}
1716 c.setType(tInt)
1717 length = fn.emit(&c)
1718 }
1719
1720 index := fn.addLocal(tInt, token.NoPos)
1721 emitStore(fn, index, intConst(-1), pos)
1722
1723 loop = fn.newBasicBlock("rangeindex.loop")
1724 emitJump(fn, loop)
1725 fn.currentBlock = loop
1726
1727 incr := &BinOp{
1728 Op: token.ADD,
1729 X: emitLoad(fn, index),
1730 Y: vOne,
1731 }
1732 incr.setType(tInt)
1733 emitStore(fn, index, fn.emit(incr), pos)
1734
1735 body := fn.newBasicBlock("rangeindex.body")
1736 done = fn.newBasicBlock("rangeindex.done")
1737 emitIf(fn, emitCompare(fn, token.LSS, incr, length, token.NoPos), body, done)
1738 fn.currentBlock = body
1739
1740 k = emitLoad(fn, index)
1741 if tv != nil {
1742 switch t := x.Type().Underlying().(type) {
1743 case *types.Array:
1744 instr := &Index{
1745 X: x,
1746 Index: k,
1747 }
1748 instr.setType(t.Elem())
1749 v = fn.emit(instr)
1750
1751 case *types.Pointer: // *array
1752 instr := &IndexAddr{
1753 X: x,
1754 Index: k,
1755 }
1756 instr.setType(types.NewPointer(t.Elem().Underlying().(*types.Array).Elem()))
1757 v = emitLoad(fn, fn.emit(instr))
1758
1759 case *types.Slice:
1760 instr := &IndexAddr{
1761 X: x,
1762 Index: k,
1763 }
1764 instr.setType(types.NewPointer(t.Elem()))
1765 v = emitLoad(fn, fn.emit(instr))
1766
1767 default:
1768 panic("rangeIndexed x:" + t.String())
1769 }
1770 }
1771 return
1772}
1773
1774// rangeIter emits to fn the header for a loop using
1775// Range/Next/Extract to iterate over map or string value x.
1776// tk and tv are the types of the key/value results k and v, or nil
1777// if the respective component is not wanted.
1778//
1779func (b *builder) rangeIter(fn *Function, x Value, tk, tv types.Type, pos token.Pos) (k, v Value, loop, done *BasicBlock) {
1780 //
1781 // it = range x
1782 // loop: (target of continue)
1783 // okv = next it (ok, key, value)
1784 // ok = extract okv #0
1785 // if ok goto body else done
1786 // body:
1787 // k = extract okv #1
1788 // v = extract okv #2
1789 // ...body...
1790 // jump loop
1791 // done: (target of break)
1792 //
1793
1794 if tk == nil {
1795 tk = tInvalid
1796 }
1797 if tv == nil {
1798 tv = tInvalid
1799 }
1800
1801 rng := &Range{X: x}
1802 rng.setPos(pos)
1803 rng.setType(tRangeIter)
1804 it := fn.emit(rng)
1805
1806 loop = fn.newBasicBlock("rangeiter.loop")
1807 emitJump(fn, loop)
1808 fn.currentBlock = loop
1809
1810 _, isString := x.Type().Underlying().(*types.Basic)
1811
1812 okv := &Next{
1813 Iter: it,
1814 IsString: isString,
1815 }
1816 okv.setType(types.NewTuple(
1817 varOk,
1818 newVar("k", tk),
1819 newVar("v", tv),
1820 ))
1821 fn.emit(okv)
1822
1823 body := fn.newBasicBlock("rangeiter.body")
1824 done = fn.newBasicBlock("rangeiter.done")
1825 emitIf(fn, emitExtract(fn, okv, 0), body, done)
1826 fn.currentBlock = body
1827
1828 if tk != tInvalid {
1829 k = emitExtract(fn, okv, 1)
1830 }
1831 if tv != tInvalid {
1832 v = emitExtract(fn, okv, 2)
1833 }
1834 return
1835}
1836
1837// rangeChan emits to fn the header for a loop that receives from
1838// channel x until it fails.
1839// tk is the channel's element type, or nil if the k result is
1840// not wanted
1841// pos is the position of the '=' or ':=' token.
1842//
1843func (b *builder) rangeChan(fn *Function, x Value, tk types.Type, pos token.Pos) (k Value, loop, done *BasicBlock) {
1844 //
1845 // loop: (target of continue)
1846 // ko = <-x (key, ok)
1847 // ok = extract ko #1
1848 // if ok goto body else done
1849 // body:
1850 // k = extract ko #0
1851 // ...
1852 // goto loop
1853 // done: (target of break)
1854
1855 loop = fn.newBasicBlock("rangechan.loop")
1856 emitJump(fn, loop)
1857 fn.currentBlock = loop
1858 recv := &UnOp{
1859 Op: token.ARROW,
1860 X: x,
1861 CommaOk: true,
1862 }
1863 recv.setPos(pos)
1864 recv.setType(types.NewTuple(
1865 newVar("k", x.Type().Underlying().(*types.Chan).Elem()),
1866 varOk,
1867 ))
1868 ko := fn.emit(recv)
1869 body := fn.newBasicBlock("rangechan.body")
1870 done = fn.newBasicBlock("rangechan.done")
1871 emitIf(fn, emitExtract(fn, ko, 1), body, done)
1872 fn.currentBlock = body
1873 if tk != nil {
1874 k = emitExtract(fn, ko, 0)
1875 }
1876 return
1877}
1878
1879// rangeStmt emits to fn code for the range statement s, optionally
1880// labelled by label.
1881//
1882func (b *builder) rangeStmt(fn *Function, s *ast.RangeStmt, label *lblock) {
1883 var tk, tv types.Type
1884 if s.Key != nil && !isBlankIdent(s.Key) {
1885 tk = fn.Pkg.typeOf(s.Key)
1886 }
1887 if s.Value != nil && !isBlankIdent(s.Value) {
1888 tv = fn.Pkg.typeOf(s.Value)
1889 }
1890
1891 // If iteration variables are defined (:=), this
1892 // occurs once outside the loop.
1893 //
1894 // Unlike a short variable declaration, a RangeStmt
1895 // using := never redeclares an existing variable; it
1896 // always creates a new one.
1897 if s.Tok == token.DEFINE {
1898 if tk != nil {
1899 fn.addLocalForIdent(s.Key.(*ast.Ident))
1900 }
1901 if tv != nil {
1902 fn.addLocalForIdent(s.Value.(*ast.Ident))
1903 }
1904 }
1905
1906 x := b.expr(fn, s.X)
1907
1908 var k, v Value
1909 var loop, done *BasicBlock
1910 switch rt := x.Type().Underlying().(type) {
1911 case *types.Slice, *types.Array, *types.Pointer: // *array
1912 k, v, loop, done = b.rangeIndexed(fn, x, tv, s.For)
1913
1914 case *types.Chan:
1915 k, loop, done = b.rangeChan(fn, x, tk, s.For)
1916
1917 case *types.Map, *types.Basic: // string
1918 k, v, loop, done = b.rangeIter(fn, x, tk, tv, s.For)
1919
1920 default:
1921 panic("Cannot range over: " + rt.String())
1922 }
1923
1924 // Evaluate both LHS expressions before we update either.
1925 var kl, vl lvalue
1926 if tk != nil {
1927 kl = b.addr(fn, s.Key, false) // non-escaping
1928 }
1929 if tv != nil {
1930 vl = b.addr(fn, s.Value, false) // non-escaping
1931 }
1932 if tk != nil {
1933 kl.store(fn, k)
1934 }
1935 if tv != nil {
1936 vl.store(fn, v)
1937 }
1938
1939 if label != nil {
1940 label._break = done
1941 label._continue = loop
1942 }
1943
1944 fn.targets = &targets{
1945 tail: fn.targets,
1946 _break: done,
1947 _continue: loop,
1948 }
1949 b.stmt(fn, s.Body)
1950 fn.targets = fn.targets.tail
1951 emitJump(fn, loop) // back-edge
1952 fn.currentBlock = done
1953}
1954
1955// stmt lowers statement s to SSA form, emitting code to fn.
1956func (b *builder) stmt(fn *Function, _s ast.Stmt) {
1957 // The label of the current statement. If non-nil, its _goto
1958 // target is always set; its _break and _continue are set only
1959 // within the body of switch/typeswitch/select/for/range.
1960 // It is effectively an additional default-nil parameter of stmt().
1961 var label *lblock
1962start:
1963 switch s := _s.(type) {
1964 case *ast.EmptyStmt:
1965 // ignore. (Usually removed by gofmt.)
1966
1967 case *ast.DeclStmt: // Con, Var or Typ
1968 d := s.Decl.(*ast.GenDecl)
1969 if d.Tok == token.VAR {
1970 for _, spec := range d.Specs {
1971 if vs, ok := spec.(*ast.ValueSpec); ok {
1972 b.localValueSpec(fn, vs)
1973 }
1974 }
1975 }
1976
1977 case *ast.LabeledStmt:
1978 label = fn.labelledBlock(s.Label)
1979 emitJump(fn, label._goto)
1980 fn.currentBlock = label._goto
1981 _s = s.Stmt
1982 goto start // effectively: tailcall stmt(fn, s.Stmt, label)
1983
1984 case *ast.ExprStmt:
1985 b.expr(fn, s.X)
1986
1987 case *ast.SendStmt:
1988 fn.emit(&Send{
1989 Chan: b.expr(fn, s.Chan),
1990 X: emitConv(fn, b.expr(fn, s.Value),
1991 fn.Pkg.typeOf(s.Chan).Underlying().(*types.Chan).Elem()),
1992 pos: s.Arrow,
1993 })
1994
1995 case *ast.IncDecStmt:
1996 op := token.ADD
1997 if s.Tok == token.DEC {
1998 op = token.SUB
1999 }
2000 loc := b.addr(fn, s.X, false)
2001 b.assignOp(fn, loc, NewConst(constant.MakeInt64(1), loc.typ()), op, s.Pos())
2002
2003 case *ast.AssignStmt:
2004 switch s.Tok {
2005 case token.ASSIGN, token.DEFINE:
2006 b.assignStmt(fn, s.Lhs, s.Rhs, s.Tok == token.DEFINE)
2007
2008 default: // +=, etc.
2009 op := s.Tok + token.ADD - token.ADD_ASSIGN
2010 b.assignOp(fn, b.addr(fn, s.Lhs[0], false), b.expr(fn, s.Rhs[0]), op, s.Pos())
2011 }
2012
2013 case *ast.GoStmt:
2014 // The "intrinsics" new/make/len/cap are forbidden here.
2015 // panic is treated like an ordinary function call.
2016 v := Go{pos: s.Go}
2017 b.setCall(fn, s.Call, &v.Call)
2018 fn.emit(&v)
2019
2020 case *ast.DeferStmt:
2021 // The "intrinsics" new/make/len/cap are forbidden here.
2022 // panic is treated like an ordinary function call.
2023 v := Defer{pos: s.Defer}
2024 b.setCall(fn, s.Call, &v.Call)
2025 fn.emit(&v)
2026
2027 // A deferred call can cause recovery from panic,
2028 // and control resumes at the Recover block.
2029 createRecoverBlock(fn)
2030
2031 case *ast.ReturnStmt:
2032 var results []Value
2033 if len(s.Results) == 1 && fn.Signature.Results().Len() > 1 {
2034 // Return of one expression in a multi-valued function.
2035 tuple := b.exprN(fn, s.Results[0])
2036 ttuple := tuple.Type().(*types.Tuple)
2037 for i, n := 0, ttuple.Len(); i < n; i++ {
2038 results = append(results,
2039 emitConv(fn, emitExtract(fn, tuple, i),
2040 fn.Signature.Results().At(i).Type()))
2041 }
2042 } else {
2043 // 1:1 return, or no-arg return in non-void function.
2044 for i, r := range s.Results {
2045 v := emitConv(fn, b.expr(fn, r), fn.Signature.Results().At(i).Type())
2046 results = append(results, v)
2047 }
2048 }
2049 if fn.namedResults != nil {
2050 // Function has named result parameters (NRPs).
2051 // Perform parallel assignment of return operands to NRPs.
2052 for i, r := range results {
2053 emitStore(fn, fn.namedResults[i], r, s.Return)
2054 }
2055 }
2056 // Run function calls deferred in this
2057 // function when explicitly returning from it.
2058 fn.emit(new(RunDefers))
2059 if fn.namedResults != nil {
2060 // Reload NRPs to form the result tuple.
2061 results = results[:0]
2062 for _, r := range fn.namedResults {
2063 results = append(results, emitLoad(fn, r))
2064 }
2065 }
2066 fn.emit(&Return{Results: results, pos: s.Return})
2067 fn.currentBlock = fn.newBasicBlock("unreachable")
2068
2069 case *ast.BranchStmt:
2070 var block *BasicBlock
2071 switch s.Tok {
2072 case token.BREAK:
2073 if s.Label != nil {
2074 block = fn.labelledBlock(s.Label)._break
2075 } else {
2076 for t := fn.targets; t != nil && block == nil; t = t.tail {
2077 block = t._break
2078 }
2079 }
2080
2081 case token.CONTINUE:
2082 if s.Label != nil {
2083 block = fn.labelledBlock(s.Label)._continue
2084 } else {
2085 for t := fn.targets; t != nil && block == nil; t = t.tail {
2086 block = t._continue
2087 }
2088 }
2089
2090 case token.FALLTHROUGH:
2091 for t := fn.targets; t != nil && block == nil; t = t.tail {
2092 block = t._fallthrough
2093 }
2094
2095 case token.GOTO:
2096 block = fn.labelledBlock(s.Label)._goto
2097 }
2098 emitJump(fn, block)
2099 fn.currentBlock = fn.newBasicBlock("unreachable")
2100
2101 case *ast.BlockStmt:
2102 b.stmtList(fn, s.List)
2103
2104 case *ast.IfStmt:
2105 if s.Init != nil {
2106 b.stmt(fn, s.Init)
2107 }
2108 then := fn.newBasicBlock("if.then")
2109 done := fn.newBasicBlock("if.done")
2110 els := done
2111 if s.Else != nil {
2112 els = fn.newBasicBlock("if.else")
2113 }
2114 b.cond(fn, s.Cond, then, els)
2115 fn.currentBlock = then
2116 b.stmt(fn, s.Body)
2117 emitJump(fn, done)
2118
2119 if s.Else != nil {
2120 fn.currentBlock = els
2121 b.stmt(fn, s.Else)
2122 emitJump(fn, done)
2123 }
2124
2125 fn.currentBlock = done
2126
2127 case *ast.SwitchStmt:
2128 b.switchStmt(fn, s, label)
2129
2130 case *ast.TypeSwitchStmt:
2131 b.typeSwitchStmt(fn, s, label)
2132
2133 case *ast.SelectStmt:
2134 b.selectStmt(fn, s, label)
2135
2136 case *ast.ForStmt:
2137 b.forStmt(fn, s, label)
2138
2139 case *ast.RangeStmt:
2140 b.rangeStmt(fn, s, label)
2141
2142 default:
2143 panic(fmt.Sprintf("unexpected statement kind: %T", s))
2144 }
2145}
2146
2147// buildFunction builds SSA code for the body of function fn. Idempotent.
2148func (b *builder) buildFunction(fn *Function) {
2149 if fn.Blocks != nil {
2150 return // building already started
2151 }
2152
2153 var recvField *ast.FieldList
2154 var body *ast.BlockStmt
2155 var functype *ast.FuncType
2156 switch n := fn.syntax.(type) {
2157 case nil:
2158 return // not a Go source function. (Synthetic, or from object file.)
2159 case *ast.FuncDecl:
2160 functype = n.Type
2161 recvField = n.Recv
2162 body = n.Body
2163 case *ast.FuncLit:
2164 functype = n.Type
2165 body = n.Body
2166 default:
2167 panic(n)
2168 }
2169
2170 if body == nil {
2171 // External function.
2172 if fn.Params == nil {
2173 // This condition ensures we add a non-empty
2174 // params list once only, but we may attempt
2175 // the degenerate empty case repeatedly.
2176 // TODO(adonovan): opt: don't do that.
2177
2178 // We set Function.Params even though there is no body
2179 // code to reference them. This simplifies clients.
2180 if recv := fn.Signature.Recv(); recv != nil {
2181 fn.addParamObj(recv)
2182 }
2183 params := fn.Signature.Params()
2184 for i, n := 0, params.Len(); i < n; i++ {
2185 fn.addParamObj(params.At(i))
2186 }
2187 }
2188 return
2189 }
2190 if fn.Prog.mode&LogSource != 0 {
2191 defer logStack("build function %s @ %s", fn, fn.Prog.Fset.Position(fn.pos))()
2192 }
2193 fn.startBody()
2194 fn.createSyntacticParams(recvField, functype)
2195 b.stmt(fn, body)
2196 if cb := fn.currentBlock; cb != nil && (cb == fn.Blocks[0] || cb == fn.Recover || cb.Preds != nil) {
2197 // Control fell off the end of the function's body block.
2198 //
2199 // Block optimizations eliminate the current block, if
2200 // unreachable. It is a builder invariant that
2201 // if this no-arg return is ill-typed for
2202 // fn.Signature.Results, this block must be
2203 // unreachable. The sanity checker checks this.
2204 fn.emit(new(RunDefers))
2205 fn.emit(new(Return))
2206 }
2207 fn.finishBody()
2208}
2209
2210// buildFuncDecl builds SSA code for the function or method declared
2211// by decl in package pkg.
2212//
2213func (b *builder) buildFuncDecl(pkg *Package, decl *ast.FuncDecl) {
2214 id := decl.Name
2215 if isBlankIdent(id) {
2216 return // discard
2217 }
2218 fn := pkg.values[pkg.info.Defs[id]].(*Function)
2219 if decl.Recv == nil && id.Name == "init" {
2220 var v Call
2221 v.Call.Value = fn
2222 v.setType(types.NewTuple())
2223 pkg.init.emit(&v)
2224 }
2225 b.buildFunction(fn)
2226}
2227
2228// Build calls Package.Build for each package in prog.
2229// Building occurs in parallel unless the BuildSerially mode flag was set.
2230//
2231// Build is intended for whole-program analysis; a typical compiler
2232// need only build a single package.
2233//
2234// Build is idempotent and thread-safe.
2235//
2236func (prog *Program) Build() {
2237 var wg sync.WaitGroup
2238 for _, p := range prog.packages {
2239 if prog.mode&BuildSerially != 0 {
2240 p.Build()
2241 } else {
2242 wg.Add(1)
2243 go func(p *Package) {
2244 p.Build()
2245 wg.Done()
2246 }(p)
2247 }
2248 }
2249 wg.Wait()
2250}
2251
2252// Build builds SSA code for all functions and vars in package p.
2253//
2254// Precondition: CreatePackage must have been called for all of p's
2255// direct imports (and hence its direct imports must have been
2256// error-free).
2257//
2258// Build is idempotent and thread-safe.
2259//
2260func (p *Package) Build() { p.buildOnce.Do(p.build) }
2261
2262func (p *Package) build() {
2263 if p.info == nil {
2264 return // synthetic package, e.g. "testmain"
2265 }
2266
2267 // Ensure we have runtime type info for all exported members.
2268 // TODO(adonovan): ideally belongs in memberFromObject, but
2269 // that would require package creation in topological order.
2270 for name, mem := range p.Members {
2271 if ast.IsExported(name) {
2272 p.Prog.needMethodsOf(mem.Type())
2273 }
2274 }
2275 if p.Prog.mode&LogSource != 0 {
2276 defer logStack("build %s", p)()
2277 }
2278 init := p.init
2279 init.startBody()
2280
2281 var done *BasicBlock
2282
2283 if p.Prog.mode&BareInits == 0 {
2284 // Make init() skip if package is already initialized.
2285 initguard := p.Var("init$guard")
2286 doinit := init.newBasicBlock("init.start")
2287 done = init.newBasicBlock("init.done")
2288 emitIf(init, emitLoad(init, initguard), done, doinit)
2289 init.currentBlock = doinit
2290 emitStore(init, initguard, vTrue, token.NoPos)
2291
2292 // Call the init() function of each package we import.
2293 for _, pkg := range p.Pkg.Imports() {
2294 prereq := p.Prog.packages[pkg]
2295 if prereq == nil {
2296 panic(fmt.Sprintf("Package(%q).Build(): unsatisfied import: Program.CreatePackage(%q) was not called", p.Pkg.Path(), pkg.Path()))
2297 }
2298 var v Call
2299 v.Call.Value = prereq.init
2300 v.Call.pos = init.pos
2301 v.setType(types.NewTuple())
2302 init.emit(&v)
2303 }
2304 }
2305
2306 var b builder
2307
2308 // Initialize package-level vars in correct order.
2309 for _, varinit := range p.info.InitOrder {
2310 if init.Prog.mode&LogSource != 0 {
2311 fmt.Fprintf(os.Stderr, "build global initializer %v @ %s\n",
2312 varinit.Lhs, p.Prog.Fset.Position(varinit.Rhs.Pos()))
2313 }
2314 if len(varinit.Lhs) == 1 {
2315 // 1:1 initialization: var x, y = a(), b()
2316 var lval lvalue
2317 if v := varinit.Lhs[0]; v.Name() != "_" {
2318 lval = &address{addr: p.values[v].(*Global), pos: v.Pos()}
2319 } else {
2320 lval = blank{}
2321 }
2322 b.assign(init, lval, varinit.Rhs, true, nil)
2323 } else {
2324 // n:1 initialization: var x, y := f()
2325 tuple := b.exprN(init, varinit.Rhs)
2326 for i, v := range varinit.Lhs {
2327 if v.Name() == "_" {
2328 continue
2329 }
2330 emitStore(init, p.values[v].(*Global), emitExtract(init, tuple, i), v.Pos())
2331 }
2332 }
2333 }
2334
2335 // Build all package-level functions, init functions
2336 // and methods, including unreachable/blank ones.
2337 // We build them in source order, but it's not significant.
2338 for _, file := range p.files {
2339 for _, decl := range file.Decls {
2340 if decl, ok := decl.(*ast.FuncDecl); ok {
2341 b.buildFuncDecl(p, decl)
2342 }
2343 }
2344 }
2345
2346 // Finish up init().
2347 if p.Prog.mode&BareInits == 0 {
2348 emitJump(init, done)
2349 init.currentBlock = done
2350 }
2351 init.emit(new(Return))
2352 init.finishBody()
2353
2354 p.info = nil // We no longer need ASTs or go/types deductions.
2355
2356 if p.Prog.mode&SanityCheckFunctions != 0 {
2357 sanityCheckPackage(p)
2358 }
2359}
2360
2361// Like ObjectOf, but panics instead of returning nil.
2362// Only valid during p's create and build phases.
2363func (p *Package) objectOf(id *ast.Ident) types.Object {
2364 if o := p.info.ObjectOf(id); o != nil {
2365 return o
2366 }
2367 panic(fmt.Sprintf("no types.Object for ast.Ident %s @ %s",
2368 id.Name, p.Prog.Fset.Position(id.Pos())))
2369}
2370
2371// Like TypeOf, but panics instead of returning nil.
2372// Only valid during p's create and build phases.
2373func (p *Package) typeOf(e ast.Expr) types.Type {
2374 if T := p.info.TypeOf(e); T != nil {
2375 return T
2376 }
2377 panic(fmt.Sprintf("no type for %T @ %s",
2378 e, p.Prog.Fset.Position(e.Pos())))
2379}
diff --git a/vendor/honnef.co/go/tools/ssa/const.go b/vendor/honnef.co/go/tools/ssa/const.go
new file mode 100644
index 0000000..f95d9e1
--- /dev/null
+++ b/vendor/honnef.co/go/tools/ssa/const.go
@@ -0,0 +1,169 @@
1// Copyright 2013 The Go Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style
3// license that can be found in the LICENSE file.
4
5package ssa
6
7// This file defines the Const SSA value type.
8
9import (
10 "fmt"
11 "go/constant"
12 "go/token"
13 "go/types"
14 "strconv"
15)
16
17// NewConst returns a new constant of the specified value and type.
18// val must be valid according to the specification of Const.Value.
19//
20func NewConst(val constant.Value, typ types.Type) *Const {
21 return &Const{typ, val}
22}
23
24// intConst returns an 'int' constant that evaluates to i.
25// (i is an int64 in case the host is narrower than the target.)
26func intConst(i int64) *Const {
27 return NewConst(constant.MakeInt64(i), tInt)
28}
29
30// nilConst returns a nil constant of the specified type, which may
31// be any reference type, including interfaces.
32//
33func nilConst(typ types.Type) *Const {
34 return NewConst(nil, typ)
35}
36
37// stringConst returns a 'string' constant that evaluates to s.
38func stringConst(s string) *Const {
39 return NewConst(constant.MakeString(s), tString)
40}
41
42// zeroConst returns a new "zero" constant of the specified type,
43// which must not be an array or struct type: the zero values of
44// aggregates are well-defined but cannot be represented by Const.
45//
46func zeroConst(t types.Type) *Const {
47 switch t := t.(type) {
48 case *types.Basic:
49 switch {
50 case t.Info()&types.IsBoolean != 0:
51 return NewConst(constant.MakeBool(false), t)
52 case t.Info()&types.IsNumeric != 0:
53 return NewConst(constant.MakeInt64(0), t)
54 case t.Info()&types.IsString != 0:
55 return NewConst(constant.MakeString(""), t)
56 case t.Kind() == types.UnsafePointer:
57 fallthrough
58 case t.Kind() == types.UntypedNil:
59 return nilConst(t)
60 default:
61 panic(fmt.Sprint("zeroConst for unexpected type:", t))
62 }
63 case *types.Pointer, *types.Slice, *types.Interface, *types.Chan, *types.Map, *types.Signature:
64 return nilConst(t)
65 case *types.Named:
66 return NewConst(zeroConst(t.Underlying()).Value, t)
67 case *types.Array, *types.Struct, *types.Tuple:
68 panic(fmt.Sprint("zeroConst applied to aggregate:", t))
69 }
70 panic(fmt.Sprint("zeroConst: unexpected ", t))
71}
72
73func (c *Const) RelString(from *types.Package) string {
74 var s string
75 if c.Value == nil {
76 s = "nil"
77 } else if c.Value.Kind() == constant.String {
78 s = constant.StringVal(c.Value)
79 const max = 20
80 // TODO(adonovan): don't cut a rune in half.
81 if len(s) > max {
82 s = s[:max-3] + "..." // abbreviate
83 }
84 s = strconv.Quote(s)
85 } else {
86 s = c.Value.String()
87 }
88 return s + ":" + relType(c.Type(), from)
89}
90
91func (c *Const) Name() string {
92 return c.RelString(nil)
93}
94
95func (c *Const) String() string {
96 return c.Name()
97}
98
99func (c *Const) Type() types.Type {
100 return c.typ
101}
102
103func (c *Const) Referrers() *[]Instruction {
104 return nil
105}
106
107func (c *Const) Parent() *Function { return nil }
108
109func (c *Const) Pos() token.Pos {
110 return token.NoPos
111}
112
113// IsNil returns true if this constant represents a typed or untyped nil value.
114func (c *Const) IsNil() bool {
115 return c.Value == nil
116}
117
118// TODO(adonovan): move everything below into honnef.co/go/tools/ssa/interp.
119
120// Int64 returns the numeric value of this constant truncated to fit
121// a signed 64-bit integer.
122//
123func (c *Const) Int64() int64 {
124 switch x := constant.ToInt(c.Value); x.Kind() {
125 case constant.Int:
126 if i, ok := constant.Int64Val(x); ok {
127 return i
128 }
129 return 0
130 case constant.Float:
131 f, _ := constant.Float64Val(x)
132 return int64(f)
133 }
134 panic(fmt.Sprintf("unexpected constant value: %T", c.Value))
135}
136
137// Uint64 returns the numeric value of this constant truncated to fit
138// an unsigned 64-bit integer.
139//
140func (c *Const) Uint64() uint64 {
141 switch x := constant.ToInt(c.Value); x.Kind() {
142 case constant.Int:
143 if u, ok := constant.Uint64Val(x); ok {
144 return u
145 }
146 return 0
147 case constant.Float:
148 f, _ := constant.Float64Val(x)
149 return uint64(f)
150 }
151 panic(fmt.Sprintf("unexpected constant value: %T", c.Value))
152}
153
154// Float64 returns the numeric value of this constant truncated to fit
155// a float64.
156//
157func (c *Const) Float64() float64 {
158 f, _ := constant.Float64Val(c.Value)
159 return f
160}
161
162// Complex128 returns the complex value of this constant truncated to
163// fit a complex128.
164//
165func (c *Const) Complex128() complex128 {
166 re, _ := constant.Float64Val(constant.Real(c.Value))
167 im, _ := constant.Float64Val(constant.Imag(c.Value))
168 return complex(re, im)
169}
diff --git a/vendor/honnef.co/go/tools/ssa/create.go b/vendor/honnef.co/go/tools/ssa/create.go
new file mode 100644
index 0000000..85163a0
--- /dev/null
+++ b/vendor/honnef.co/go/tools/ssa/create.go
@@ -0,0 +1,270 @@
1// Copyright 2013 The Go Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style
3// license that can be found in the LICENSE file.
4
5package ssa
6
7// This file implements the CREATE phase of SSA construction.
8// See builder.go for explanation.
9
10import (
11 "fmt"
12 "go/ast"
13 "go/token"
14 "go/types"
15 "os"
16 "sync"
17
18 "golang.org/x/tools/go/types/typeutil"
19)
20
21// NewProgram returns a new SSA Program.
22//
23// mode controls diagnostics and checking during SSA construction.
24//
25func NewProgram(fset *token.FileSet, mode BuilderMode) *Program {
26 prog := &Program{
27 Fset: fset,
28 imported: make(map[string]*Package),
29 packages: make(map[*types.Package]*Package),
30 thunks: make(map[selectionKey]*Function),
31 bounds: make(map[*types.Func]*Function),
32 mode: mode,
33 }
34
35 h := typeutil.MakeHasher() // protected by methodsMu, in effect
36 prog.methodSets.SetHasher(h)
37 prog.canon.SetHasher(h)
38
39 return prog
40}
41
42// memberFromObject populates package pkg with a member for the
43// typechecker object obj.
44//
45// For objects from Go source code, syntax is the associated syntax
46// tree (for funcs and vars only); it will be used during the build
47// phase.
48//
49func memberFromObject(pkg *Package, obj types.Object, syntax ast.Node) {
50 name := obj.Name()
51 switch obj := obj.(type) {
52 case *types.Builtin:
53 if pkg.Pkg != types.Unsafe {
54 panic("unexpected builtin object: " + obj.String())
55 }
56
57 case *types.TypeName:
58 pkg.Members[name] = &Type{
59 object: obj,
60 pkg: pkg,
61 }
62
63 case *types.Const:
64 c := &NamedConst{
65 object: obj,
66 Value: NewConst(obj.Val(), obj.Type()),
67 pkg: pkg,
68 }
69 pkg.values[obj] = c.Value
70 pkg.Members[name] = c
71
72 case *types.Var:
73 g := &Global{
74 Pkg: pkg,
75 name: name,
76 object: obj,
77 typ: types.NewPointer(obj.Type()), // address
78 pos: obj.Pos(),
79 }
80 pkg.values[obj] = g
81 pkg.Members[name] = g
82
83 case *types.Func:
84 sig := obj.Type().(*types.Signature)
85 if sig.Recv() == nil && name == "init" {
86 pkg.ninit++
87 name = fmt.Sprintf("init#%d", pkg.ninit)
88 }
89 fn := &Function{
90 name: name,
91 object: obj,
92 Signature: sig,
93 syntax: syntax,
94 pos: obj.Pos(),
95 Pkg: pkg,
96 Prog: pkg.Prog,
97 }
98 if syntax == nil {
99 fn.Synthetic = "loaded from gc object file"
100 }
101
102 pkg.values[obj] = fn
103 if sig.Recv() == nil {
104 pkg.Members[name] = fn // package-level function
105 }
106
107 default: // (incl. *types.Package)
108 panic("unexpected Object type: " + obj.String())
109 }
110}
111
112// membersFromDecl populates package pkg with members for each
113// typechecker object (var, func, const or type) associated with the
114// specified decl.
115//
116func membersFromDecl(pkg *Package, decl ast.Decl) {
117 switch decl := decl.(type) {
118 case *ast.GenDecl: // import, const, type or var
119 switch decl.Tok {
120 case token.CONST:
121 for _, spec := range decl.Specs {
122 for _, id := range spec.(*ast.ValueSpec).Names {
123 if !isBlankIdent(id) {
124 memberFromObject(pkg, pkg.info.Defs[id], nil)
125 }
126 }
127 }
128
129 case token.VAR:
130 for _, spec := range decl.Specs {
131 for _, id := range spec.(*ast.ValueSpec).Names {
132 if !isBlankIdent(id) {
133 memberFromObject(pkg, pkg.info.Defs[id], spec)
134 }
135 }
136 }
137
138 case token.TYPE:
139 for _, spec := range decl.Specs {
140 id := spec.(*ast.TypeSpec).Name
141 if !isBlankIdent(id) {
142 memberFromObject(pkg, pkg.info.Defs[id], nil)
143 }
144 }
145 }
146
147 case *ast.FuncDecl:
148 id := decl.Name
149 if !isBlankIdent(id) {
150 memberFromObject(pkg, pkg.info.Defs[id], decl)
151 }
152 }
153}
154
155// CreatePackage constructs and returns an SSA Package from the
156// specified type-checked, error-free file ASTs, and populates its
157// Members mapping.
158//
159// importable determines whether this package should be returned by a
160// subsequent call to ImportedPackage(pkg.Path()).
161//
162// The real work of building SSA form for each function is not done
163// until a subsequent call to Package.Build().
164//
165func (prog *Program) CreatePackage(pkg *types.Package, files []*ast.File, info *types.Info, importable bool) *Package {
166 p := &Package{
167 Prog: prog,
168 Members: make(map[string]Member),
169 values: make(map[types.Object]Value),
170 Pkg: pkg,
171 info: info, // transient (CREATE and BUILD phases)
172 files: files, // transient (CREATE and BUILD phases)
173 }
174
175 // Add init() function.
176 p.init = &Function{
177 name: "init",
178 Signature: new(types.Signature),
179 Synthetic: "package initializer",
180 Pkg: p,
181 Prog: prog,
182 }
183 p.Members[p.init.name] = p.init
184
185 // CREATE phase.
186 // Allocate all package members: vars, funcs, consts and types.
187 if len(files) > 0 {
188 // Go source package.
189 for _, file := range files {
190 for _, decl := range file.Decls {
191 membersFromDecl(p, decl)
192 }
193 }
194 } else {
195 // GC-compiled binary package (or "unsafe")
196 // No code.
197 // No position information.
198 scope := p.Pkg.Scope()
199 for _, name := range scope.Names() {
200 obj := scope.Lookup(name)
201 memberFromObject(p, obj, nil)
202 if obj, ok := obj.(*types.TypeName); ok {
203 if named, ok := obj.Type().(*types.Named); ok {
204 for i, n := 0, named.NumMethods(); i < n; i++ {
205 memberFromObject(p, named.Method(i), nil)
206 }
207 }
208 }
209 }
210 }
211
212 if prog.mode&BareInits == 0 {
213 // Add initializer guard variable.
214 initguard := &Global{
215 Pkg: p,
216 name: "init$guard",
217 typ: types.NewPointer(tBool),
218 }
219 p.Members[initguard.Name()] = initguard
220 }
221
222 if prog.mode&GlobalDebug != 0 {
223 p.SetDebugMode(true)
224 }
225
226 if prog.mode&PrintPackages != 0 {
227 printMu.Lock()
228 p.WriteTo(os.Stdout)
229 printMu.Unlock()
230 }
231
232 if importable {
233 prog.imported[p.Pkg.Path()] = p
234 }
235 prog.packages[p.Pkg] = p
236
237 return p
238}
239
240// printMu serializes printing of Packages/Functions to stdout.
241var printMu sync.Mutex
242
243// AllPackages returns a new slice containing all packages in the
244// program prog in unspecified order.
245//
246func (prog *Program) AllPackages() []*Package {
247 pkgs := make([]*Package, 0, len(prog.packages))
248 for _, pkg := range prog.packages {
249 pkgs = append(pkgs, pkg)
250 }
251 return pkgs
252}
253
254// ImportedPackage returns the importable Package whose PkgPath
255// is path, or nil if no such Package has been created.
256//
257// A parameter to CreatePackage determines whether a package should be
258// considered importable. For example, no import declaration can resolve
259// to the ad-hoc main package created by 'go build foo.go'.
260//
261// TODO(adonovan): rethink this function and the "importable" concept;
262// most packages are importable. This function assumes that all
263// types.Package.Path values are unique within the ssa.Program, which is
264// false---yet this function remains very convenient.
265// Clients should use (*Program).Package instead where possible.
266// SSA doesn't really need a string-keyed map of packages.
267//
268func (prog *Program) ImportedPackage(path string) *Package {
269 return prog.imported[path]
270}
diff --git a/vendor/honnef.co/go/tools/ssa/doc.go b/vendor/honnef.co/go/tools/ssa/doc.go
new file mode 100644
index 0000000..0f71fda
--- /dev/null
+++ b/vendor/honnef.co/go/tools/ssa/doc.go
@@ -0,0 +1,125 @@
1// Copyright 2013 The Go Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style
3// license that can be found in the LICENSE file.
4
5// Package ssa defines a representation of the elements of Go programs
6// (packages, types, functions, variables and constants) using a
7// static single-assignment (SSA) form intermediate representation
8// (IR) for the bodies of functions.
9//
10// THIS INTERFACE IS EXPERIMENTAL AND IS LIKELY TO CHANGE.
11//
12// For an introduction to SSA form, see
13// http://en.wikipedia.org/wiki/Static_single_assignment_form.
14// This page provides a broader reading list:
15// http://www.dcs.gla.ac.uk/~jsinger/ssa.html.
16//
17// The level of abstraction of the SSA form is intentionally close to
18// the source language to facilitate construction of source analysis
19// tools. It is not intended for machine code generation.
20//
21// All looping, branching and switching constructs are replaced with
22// unstructured control flow. Higher-level control flow constructs
23// such as multi-way branch can be reconstructed as needed; see
24// ssautil.Switches() for an example.
25//
26// The simplest way to create the SSA representation of a package is
27// to load typed syntax trees using golang.org/x/tools/go/packages, then
28// invoke the ssautil.Packages helper function. See ExampleLoadPackages
29// and ExampleWholeProgram for examples.
30// The resulting ssa.Program contains all the packages and their
31// members, but SSA code is not created for function bodies until a
32// subsequent call to (*Package).Build or (*Program).Build.
33//
34// The builder initially builds a naive SSA form in which all local
35// variables are addresses of stack locations with explicit loads and
36// stores. Registerisation of eligible locals and φ-node insertion
37// using dominance and dataflow are then performed as a second pass
38// called "lifting" to improve the accuracy and performance of
39// subsequent analyses; this pass can be skipped by setting the
40// NaiveForm builder flag.
41//
42// The primary interfaces of this package are:
43//
44// - Member: a named member of a Go package.
45// - Value: an expression that yields a value.
46// - Instruction: a statement that consumes values and performs computation.
47// - Node: a Value or Instruction (emphasizing its membership in the SSA value graph)
48//
49// A computation that yields a result implements both the Value and
50// Instruction interfaces. The following table shows for each
51// concrete type which of these interfaces it implements.
52//
53// Value? Instruction? Member?
54// *Alloc ✔ ✔
55// *BinOp ✔ ✔
56// *Builtin ✔
57// *Call ✔ ✔
58// *ChangeInterface ✔ ✔
59// *ChangeType ✔ ✔
60// *Const ✔
61// *Convert ✔ ✔
62// *DebugRef ✔
63// *Defer ✔
64// *Extract ✔ ✔
65// *Field ✔ ✔
66// *FieldAddr ✔ ✔
67// *FreeVar ✔
68// *Function ✔ ✔ (func)
69// *Global ✔ ✔ (var)
70// *Go ✔
71// *If ✔
72// *Index ✔ ✔
73// *IndexAddr ✔ ✔
74// *Jump ✔
75// *Lookup ✔ ✔
76// *MakeChan ✔ ✔
77// *MakeClosure ✔ ✔
78// *MakeInterface ✔ ✔
79// *MakeMap ✔ ✔
80// *MakeSlice ✔ ✔
81// *MapUpdate ✔
82// *NamedConst ✔ (const)
83// *Next ✔ ✔
84// *Panic ✔
85// *Parameter ✔
86// *Phi ✔ ✔
87// *Range ✔ ✔
88// *Return ✔
89// *RunDefers ✔
90// *Select ✔ ✔
91// *Send ✔
92// *Slice ✔ ✔
93// *Store ✔
94// *Type ✔ (type)
95// *TypeAssert ✔ ✔
96// *UnOp ✔ ✔
97//
98// Other key types in this package include: Program, Package, Function
99// and BasicBlock.
100//
101// The program representation constructed by this package is fully
102// resolved internally, i.e. it does not rely on the names of Values,
103// Packages, Functions, Types or BasicBlocks for the correct
104// interpretation of the program. Only the identities of objects and
105// the topology of the SSA and type graphs are semantically
106// significant. (There is one exception: Ids, used to identify field
107// and method names, contain strings.) Avoidance of name-based
108// operations simplifies the implementation of subsequent passes and
109// can make them very efficient. Many objects are nonetheless named
110// to aid in debugging, but it is not essential that the names be
111// either accurate or unambiguous. The public API exposes a number of
112// name-based maps for client convenience.
113//
114// The ssa/ssautil package provides various utilities that depend only
115// on the public API of this package.
116//
117// TODO(adonovan): Consider the exceptional control-flow implications
118// of defer and recover().
119//
120// TODO(adonovan): write a how-to document for all the various cases
121// of trying to determine corresponding elements across the four
122// domains of source locations, ast.Nodes, types.Objects,
123// ssa.Values/Instructions.
124//
125package ssa // import "honnef.co/go/tools/ssa"
diff --git a/vendor/honnef.co/go/tools/ssa/dom.go b/vendor/honnef.co/go/tools/ssa/dom.go
new file mode 100644
index 0000000..a036be8
--- /dev/null
+++ b/vendor/honnef.co/go/tools/ssa/dom.go
@@ -0,0 +1,343 @@
1// Copyright 2013 The Go Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style
3// license that can be found in the LICENSE file.
4
5package ssa
6
7// This file defines algorithms related to dominance.
8
9// Dominator tree construction ----------------------------------------
10//
11// We use the algorithm described in Lengauer & Tarjan. 1979. A fast
12// algorithm for finding dominators in a flowgraph.
13// http://doi.acm.org/10.1145/357062.357071
14//
15// We also apply the optimizations to SLT described in Georgiadis et
16// al, Finding Dominators in Practice, JGAA 2006,
17// http://jgaa.info/accepted/2006/GeorgiadisTarjanWerneck2006.10.1.pdf
18// to avoid the need for buckets of size > 1.
19
20import (
21 "bytes"
22 "fmt"
23 "math/big"
24 "os"
25 "sort"
26)
27
28// Idom returns the block that immediately dominates b:
29// its parent in the dominator tree, if any.
30// Neither the entry node (b.Index==0) nor recover node
31// (b==b.Parent().Recover()) have a parent.
32//
33func (b *BasicBlock) Idom() *BasicBlock { return b.dom.idom }
34
35// Dominees returns the list of blocks that b immediately dominates:
36// its children in the dominator tree.
37//
38func (b *BasicBlock) Dominees() []*BasicBlock { return b.dom.children }
39
40// Dominates reports whether b dominates c.
41func (b *BasicBlock) Dominates(c *BasicBlock) bool {
42 return b.dom.pre <= c.dom.pre && c.dom.post <= b.dom.post
43}
44
45type byDomPreorder []*BasicBlock
46
47func (a byDomPreorder) Len() int { return len(a) }
48func (a byDomPreorder) Swap(i, j int) { a[i], a[j] = a[j], a[i] }
49func (a byDomPreorder) Less(i, j int) bool { return a[i].dom.pre < a[j].dom.pre }
50
51// DomPreorder returns a new slice containing the blocks of f in
52// dominator tree preorder.
53//
54func (f *Function) DomPreorder() []*BasicBlock {
55 n := len(f.Blocks)
56 order := make(byDomPreorder, n)
57 copy(order, f.Blocks)
58 sort.Sort(order)
59 return order
60}
61
62// domInfo contains a BasicBlock's dominance information.
63type domInfo struct {
64 idom *BasicBlock // immediate dominator (parent in domtree)
65 children []*BasicBlock // nodes immediately dominated by this one
66 pre, post int32 // pre- and post-order numbering within domtree
67}
68
69// ltState holds the working state for Lengauer-Tarjan algorithm
70// (during which domInfo.pre is repurposed for CFG DFS preorder number).
71type ltState struct {
72 // Each slice is indexed by b.Index.
73 sdom []*BasicBlock // b's semidominator
74 parent []*BasicBlock // b's parent in DFS traversal of CFG
75 ancestor []*BasicBlock // b's ancestor with least sdom
76}
77
78// dfs implements the depth-first search part of the LT algorithm.
79func (lt *ltState) dfs(v *BasicBlock, i int32, preorder []*BasicBlock) int32 {
80 preorder[i] = v
81 v.dom.pre = i // For now: DFS preorder of spanning tree of CFG
82 i++
83 lt.sdom[v.Index] = v
84 lt.link(nil, v)
85 for _, w := range v.Succs {
86 if lt.sdom[w.Index] == nil {
87 lt.parent[w.Index] = v
88 i = lt.dfs(w, i, preorder)
89 }
90 }
91 return i
92}
93
94// eval implements the EVAL part of the LT algorithm.
95func (lt *ltState) eval(v *BasicBlock) *BasicBlock {
96 // TODO(adonovan): opt: do path compression per simple LT.
97 u := v
98 for ; lt.ancestor[v.Index] != nil; v = lt.ancestor[v.Index] {
99 if lt.sdom[v.Index].dom.pre < lt.sdom[u.Index].dom.pre {
100 u = v
101 }
102 }
103 return u
104}
105
106// link implements the LINK part of the LT algorithm.
107func (lt *ltState) link(v, w *BasicBlock) {
108 lt.ancestor[w.Index] = v
109}
110
111// buildDomTree computes the dominator tree of f using the LT algorithm.
112// Precondition: all blocks are reachable (e.g. optimizeBlocks has been run).
113//
114func buildDomTree(f *Function) {
115 // The step numbers refer to the original LT paper; the
116 // reordering is due to Georgiadis.
117
118 // Clear any previous domInfo.
119 for _, b := range f.Blocks {
120 b.dom = domInfo{}
121 }
122
123 n := len(f.Blocks)
124 // Allocate space for 5 contiguous [n]*BasicBlock arrays:
125 // sdom, parent, ancestor, preorder, buckets.
126 space := make([]*BasicBlock, 5*n)
127 lt := ltState{
128 sdom: space[0:n],
129 parent: space[n : 2*n],
130 ancestor: space[2*n : 3*n],
131 }
132
133 // Step 1. Number vertices by depth-first preorder.
134 preorder := space[3*n : 4*n]
135 root := f.Blocks[0]
136 prenum := lt.dfs(root, 0, preorder)
137 recover := f.Recover
138 if recover != nil {
139 lt.dfs(recover, prenum, preorder)
140 }
141
142 buckets := space[4*n : 5*n]
143 copy(buckets, preorder)
144
145 // In reverse preorder...
146 for i := int32(n) - 1; i > 0; i-- {
147 w := preorder[i]
148
149 // Step 3. Implicitly define the immediate dominator of each node.
150 for v := buckets[i]; v != w; v = buckets[v.dom.pre] {
151 u := lt.eval(v)
152 if lt.sdom[u.Index].dom.pre < i {
153 v.dom.idom = u
154 } else {
155 v.dom.idom = w
156 }
157 }
158
159 // Step 2. Compute the semidominators of all nodes.
160 lt.sdom[w.Index] = lt.parent[w.Index]
161 for _, v := range w.Preds {
162 u := lt.eval(v)
163 if lt.sdom[u.Index].dom.pre < lt.sdom[w.Index].dom.pre {
164 lt.sdom[w.Index] = lt.sdom[u.Index]
165 }
166 }
167
168 lt.link(lt.parent[w.Index], w)
169
170 if lt.parent[w.Index] == lt.sdom[w.Index] {
171 w.dom.idom = lt.parent[w.Index]
172 } else {
173 buckets[i] = buckets[lt.sdom[w.Index].dom.pre]
174 buckets[lt.sdom[w.Index].dom.pre] = w
175 }
176 }
177
178 // The final 'Step 3' is now outside the loop.
179 for v := buckets[0]; v != root; v = buckets[v.dom.pre] {
180 v.dom.idom = root
181 }
182
183 // Step 4. Explicitly define the immediate dominator of each
184 // node, in preorder.
185 for _, w := range preorder[1:] {
186 if w == root || w == recover {
187 w.dom.idom = nil
188 } else {
189 if w.dom.idom != lt.sdom[w.Index] {
190 w.dom.idom = w.dom.idom.dom.idom
191 }
192 // Calculate Children relation as inverse of Idom.
193 w.dom.idom.dom.children = append(w.dom.idom.dom.children, w)
194 }
195 }
196
197 pre, post := numberDomTree(root, 0, 0)
198 if recover != nil {
199 numberDomTree(recover, pre, post)
200 }
201
202 // printDomTreeDot(os.Stderr, f) // debugging
203 // printDomTreeText(os.Stderr, root, 0) // debugging
204
205 if f.Prog.mode&SanityCheckFunctions != 0 {
206 sanityCheckDomTree(f)
207 }
208}
209
210// numberDomTree sets the pre- and post-order numbers of a depth-first
211// traversal of the dominator tree rooted at v. These are used to
212// answer dominance queries in constant time.
213//
214func numberDomTree(v *BasicBlock, pre, post int32) (int32, int32) {
215 v.dom.pre = pre
216 pre++
217 for _, child := range v.dom.children {
218 pre, post = numberDomTree(child, pre, post)
219 }
220 v.dom.post = post
221 post++
222 return pre, post
223}
224
225// Testing utilities ----------------------------------------
226
227// sanityCheckDomTree checks the correctness of the dominator tree
228// computed by the LT algorithm by comparing against the dominance
229// relation computed by a naive Kildall-style forward dataflow
230// analysis (Algorithm 10.16 from the "Dragon" book).
231//
232func sanityCheckDomTree(f *Function) {
233 n := len(f.Blocks)
234
235 // D[i] is the set of blocks that dominate f.Blocks[i],
236 // represented as a bit-set of block indices.
237 D := make([]big.Int, n)
238
239 one := big.NewInt(1)
240
241 // all is the set of all blocks; constant.
242 var all big.Int
243 all.Set(one).Lsh(&all, uint(n)).Sub(&all, one)
244
245 // Initialization.
246 for i, b := range f.Blocks {
247 if i == 0 || b == f.Recover {
248 // A root is dominated only by itself.
249 D[i].SetBit(&D[0], 0, 1)
250 } else {
251 // All other blocks are (initially) dominated
252 // by every block.
253 D[i].Set(&all)
254 }
255 }
256
257 // Iteration until fixed point.
258 for changed := true; changed; {
259 changed = false
260 for i, b := range f.Blocks {
261 if i == 0 || b == f.Recover {
262 continue
263 }
264 // Compute intersection across predecessors.
265 var x big.Int
266 x.Set(&all)
267 for _, pred := range b.Preds {
268 x.And(&x, &D[pred.Index])
269 }
270 x.SetBit(&x, i, 1) // a block always dominates itself.
271 if D[i].Cmp(&x) != 0 {
272 D[i].Set(&x)
273 changed = true
274 }
275 }
276 }
277
278 // Check the entire relation. O(n^2).
279 // The Recover block (if any) must be treated specially so we skip it.
280 ok := true
281 for i := 0; i < n; i++ {
282 for j := 0; j < n; j++ {
283 b, c := f.Blocks[i], f.Blocks[j]
284 if c == f.Recover {
285 continue
286 }
287 actual := b.Dominates(c)
288 expected := D[j].Bit(i) == 1
289 if actual != expected {
290 fmt.Fprintf(os.Stderr, "dominates(%s, %s)==%t, want %t\n", b, c, actual, expected)
291 ok = false
292 }
293 }
294 }
295
296 preorder := f.DomPreorder()
297 for _, b := range f.Blocks {
298 if got := preorder[b.dom.pre]; got != b {
299 fmt.Fprintf(os.Stderr, "preorder[%d]==%s, want %s\n", b.dom.pre, got, b)
300 ok = false
301 }
302 }
303
304 if !ok {
305 panic("sanityCheckDomTree failed for " + f.String())
306 }
307
308}
309
310// Printing functions ----------------------------------------
311
312// printDomTree prints the dominator tree as text, using indentation.
313//lint:ignore U1000 used during debugging
314func printDomTreeText(buf *bytes.Buffer, v *BasicBlock, indent int) {
315 fmt.Fprintf(buf, "%*s%s\n", 4*indent, "", v)
316 for _, child := range v.dom.children {
317 printDomTreeText(buf, child, indent+1)
318 }
319}
320
321// printDomTreeDot prints the dominator tree of f in AT&T GraphViz
322// (.dot) format.
323//lint:ignore U1000 used during debugging
324func printDomTreeDot(buf *bytes.Buffer, f *Function) {
325 fmt.Fprintln(buf, "//", f)
326 fmt.Fprintln(buf, "digraph domtree {")
327 for i, b := range f.Blocks {
328 v := b.dom
329 fmt.Fprintf(buf, "\tn%d [label=\"%s (%d, %d)\",shape=\"rectangle\"];\n", v.pre, b, v.pre, v.post)
330 // TODO(adonovan): improve appearance of edges
331 // belonging to both dominator tree and CFG.
332
333 // Dominator tree edge.
334 if i != 0 {
335 fmt.Fprintf(buf, "\tn%d -> n%d [style=\"solid\",weight=100];\n", v.idom.dom.pre, v.pre)
336 }
337 // CFG edges.
338 for _, pred := range b.Preds {
339 fmt.Fprintf(buf, "\tn%d -> n%d [style=\"dotted\",weight=0];\n", pred.dom.pre, v.pre)
340 }
341 }
342 fmt.Fprintln(buf, "}")
343}
diff --git a/vendor/honnef.co/go/tools/ssa/emit.go b/vendor/honnef.co/go/tools/ssa/emit.go
new file mode 100644
index 0000000..6bf9ec3
--- /dev/null
+++ b/vendor/honnef.co/go/tools/ssa/emit.go
@@ -0,0 +1,469 @@
1// Copyright 2013 The Go Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style
3// license that can be found in the LICENSE file.
4
5package ssa
6
7// Helpers for emitting SSA instructions.
8
9import (
10 "fmt"
11 "go/ast"
12 "go/token"
13 "go/types"
14)
15
16// emitNew emits to f a new (heap Alloc) instruction allocating an
17// object of type typ. pos is the optional source location.
18//
19func emitNew(f *Function, typ types.Type, pos token.Pos) *Alloc {
20 v := &Alloc{Heap: true}
21 v.setType(types.NewPointer(typ))
22 v.setPos(pos)
23 f.emit(v)
24 return v
25}
26
27// emitLoad emits to f an instruction to load the address addr into a
28// new temporary, and returns the value so defined.
29//
30func emitLoad(f *Function, addr Value) *UnOp {
31 v := &UnOp{Op: token.MUL, X: addr}
32 v.setType(deref(addr.Type()))
33 f.emit(v)
34 return v
35}
36
37// emitDebugRef emits to f a DebugRef pseudo-instruction associating
38// expression e with value v.
39//
40func emitDebugRef(f *Function, e ast.Expr, v Value, isAddr bool) {
41 if !f.debugInfo() {
42 return // debugging not enabled
43 }
44 if v == nil || e == nil {
45 panic("nil")
46 }
47 var obj types.Object
48 e = unparen(e)
49 if id, ok := e.(*ast.Ident); ok {
50 if isBlankIdent(id) {
51 return
52 }
53 obj = f.Pkg.objectOf(id)
54 switch obj.(type) {
55 case *types.Nil, *types.Const, *types.Builtin:
56 return
57 }
58 }
59 f.emit(&DebugRef{
60 X: v,
61 Expr: e,
62 IsAddr: isAddr,
63 object: obj,
64 })
65}
66
67// emitArith emits to f code to compute the binary operation op(x, y)
68// where op is an eager shift, logical or arithmetic operation.
69// (Use emitCompare() for comparisons and Builder.logicalBinop() for
70// non-eager operations.)
71//
72func emitArith(f *Function, op token.Token, x, y Value, t types.Type, pos token.Pos) Value {
73 switch op {
74 case token.SHL, token.SHR:
75 x = emitConv(f, x, t)
76 // y may be signed or an 'untyped' constant.
77 // TODO(adonovan): whence signed values?
78 if b, ok := y.Type().Underlying().(*types.Basic); ok && b.Info()&types.IsUnsigned == 0 {
79 y = emitConv(f, y, types.Typ[types.Uint64])
80 }
81
82 case token.ADD, token.SUB, token.MUL, token.QUO, token.REM, token.AND, token.OR, token.XOR, token.AND_NOT:
83 x = emitConv(f, x, t)
84 y = emitConv(f, y, t)
85
86 default:
87 panic("illegal op in emitArith: " + op.String())
88
89 }
90 v := &BinOp{
91 Op: op,
92 X: x,
93 Y: y,
94 }
95 v.setPos(pos)
96 v.setType(t)
97 return f.emit(v)
98}
99
100// emitCompare emits to f code compute the boolean result of
101// comparison comparison 'x op y'.
102//
103func emitCompare(f *Function, op token.Token, x, y Value, pos token.Pos) Value {
104 xt := x.Type().Underlying()
105 yt := y.Type().Underlying()
106
107 // Special case to optimise a tagless SwitchStmt so that
108 // these are equivalent
109 // switch { case e: ...}
110 // switch true { case e: ... }
111 // if e==true { ... }
112 // even in the case when e's type is an interface.
113 // TODO(adonovan): opt: generalise to x==true, false!=y, etc.
114 if x == vTrue && op == token.EQL {
115 if yt, ok := yt.(*types.Basic); ok && yt.Info()&types.IsBoolean != 0 {
116 return y
117 }
118 }
119
120 if types.Identical(xt, yt) {
121 // no conversion necessary
122 } else if _, ok := xt.(*types.Interface); ok {
123 y = emitConv(f, y, x.Type())
124 } else if _, ok := yt.(*types.Interface); ok {
125 x = emitConv(f, x, y.Type())
126 } else if _, ok := x.(*Const); ok {
127 x = emitConv(f, x, y.Type())
128 } else if _, ok := y.(*Const); ok {
129 y = emitConv(f, y, x.Type())
130 //lint:ignore SA9003 no-op
131 } else {
132 // other cases, e.g. channels. No-op.
133 }
134
135 v := &BinOp{
136 Op: op,
137 X: x,
138 Y: y,
139 }
140 v.setPos(pos)
141 v.setType(tBool)
142 return f.emit(v)
143}
144
145// isValuePreserving returns true if a conversion from ut_src to
146// ut_dst is value-preserving, i.e. just a change of type.
147// Precondition: neither argument is a named type.
148//
149func isValuePreserving(ut_src, ut_dst types.Type) bool {
150 // Identical underlying types?
151 if structTypesIdentical(ut_dst, ut_src) {
152 return true
153 }
154
155 switch ut_dst.(type) {
156 case *types.Chan:
157 // Conversion between channel types?
158 _, ok := ut_src.(*types.Chan)
159 return ok
160
161 case *types.Pointer:
162 // Conversion between pointers with identical base types?
163 _, ok := ut_src.(*types.Pointer)
164 return ok
165 }
166 return false
167}
168
169// emitConv emits to f code to convert Value val to exactly type typ,
170// and returns the converted value. Implicit conversions are required
171// by language assignability rules in assignments, parameter passing,
172// etc. Conversions cannot fail dynamically.
173//
174func emitConv(f *Function, val Value, typ types.Type) Value {
175 t_src := val.Type()
176
177 // Identical types? Conversion is a no-op.
178 if types.Identical(t_src, typ) {
179 return val
180 }
181
182 ut_dst := typ.Underlying()
183 ut_src := t_src.Underlying()
184
185 // Just a change of type, but not value or representation?
186 if isValuePreserving(ut_src, ut_dst) {
187 c := &ChangeType{X: val}
188 c.setType(typ)
189 return f.emit(c)
190 }
191
192 // Conversion to, or construction of a value of, an interface type?
193 if _, ok := ut_dst.(*types.Interface); ok {
194 // Assignment from one interface type to another?
195 if _, ok := ut_src.(*types.Interface); ok {
196 c := &ChangeInterface{X: val}
197 c.setType(typ)
198 return f.emit(c)
199 }
200
201 // Untyped nil constant? Return interface-typed nil constant.
202 if ut_src == tUntypedNil {
203 return nilConst(typ)
204 }
205
206 // Convert (non-nil) "untyped" literals to their default type.
207 if t, ok := ut_src.(*types.Basic); ok && t.Info()&types.IsUntyped != 0 {
208 val = emitConv(f, val, DefaultType(ut_src))
209 }
210
211 f.Pkg.Prog.needMethodsOf(val.Type())
212 mi := &MakeInterface{X: val}
213 mi.setType(typ)
214 return f.emit(mi)
215 }
216
217 // Conversion of a compile-time constant value?
218 if c, ok := val.(*Const); ok {
219 if _, ok := ut_dst.(*types.Basic); ok || c.IsNil() {
220 // Conversion of a compile-time constant to
221 // another constant type results in a new
222 // constant of the destination type and
223 // (initially) the same abstract value.
224 // We don't truncate the value yet.
225 return NewConst(c.Value, typ)
226 }
227
228 // We're converting from constant to non-constant type,
229 // e.g. string -> []byte/[]rune.
230 }
231
232 // A representation-changing conversion?
233 // At least one of {ut_src,ut_dst} must be *Basic.
234 // (The other may be []byte or []rune.)
235 _, ok1 := ut_src.(*types.Basic)
236 _, ok2 := ut_dst.(*types.Basic)
237 if ok1 || ok2 {
238 c := &Convert{X: val}
239 c.setType(typ)
240 return f.emit(c)
241 }
242
243 panic(fmt.Sprintf("in %s: cannot convert %s (%s) to %s", f, val, val.Type(), typ))
244}
245
246// emitStore emits to f an instruction to store value val at location
247// addr, applying implicit conversions as required by assignability rules.
248//
249func emitStore(f *Function, addr, val Value, pos token.Pos) *Store {
250 s := &Store{
251 Addr: addr,
252 Val: emitConv(f, val, deref(addr.Type())),
253 pos: pos,
254 }
255 f.emit(s)
256 return s
257}
258
259// emitJump emits to f a jump to target, and updates the control-flow graph.
260// Postcondition: f.currentBlock is nil.
261//
262func emitJump(f *Function, target *BasicBlock) {
263 b := f.currentBlock
264 b.emit(new(Jump))
265 addEdge(b, target)
266 f.currentBlock = nil
267}
268
269// emitIf emits to f a conditional jump to tblock or fblock based on
270// cond, and updates the control-flow graph.
271// Postcondition: f.currentBlock is nil.
272//
273func emitIf(f *Function, cond Value, tblock, fblock *BasicBlock) {
274 b := f.currentBlock
275 b.emit(&If{Cond: cond})
276 addEdge(b, tblock)
277 addEdge(b, fblock)
278 f.currentBlock = nil
279}
280
281// emitExtract emits to f an instruction to extract the index'th
282// component of tuple. It returns the extracted value.
283//
284func emitExtract(f *Function, tuple Value, index int) Value {
285 e := &Extract{Tuple: tuple, Index: index}
286 e.setType(tuple.Type().(*types.Tuple).At(index).Type())
287 return f.emit(e)
288}
289
290// emitTypeAssert emits to f a type assertion value := x.(t) and
291// returns the value. x.Type() must be an interface.
292//
293func emitTypeAssert(f *Function, x Value, t types.Type, pos token.Pos) Value {
294 a := &TypeAssert{X: x, AssertedType: t}
295 a.setPos(pos)
296 a.setType(t)
297 return f.emit(a)
298}
299
300// emitTypeTest emits to f a type test value,ok := x.(t) and returns
301// a (value, ok) tuple. x.Type() must be an interface.
302//
303func emitTypeTest(f *Function, x Value, t types.Type, pos token.Pos) Value {
304 a := &TypeAssert{
305 X: x,
306 AssertedType: t,
307 CommaOk: true,
308 }
309 a.setPos(pos)
310 a.setType(types.NewTuple(
311 newVar("value", t),
312 varOk,
313 ))
314 return f.emit(a)
315}
316
317// emitTailCall emits to f a function call in tail position. The
318// caller is responsible for all fields of 'call' except its type.
319// Intended for wrapper methods.
320// Precondition: f does/will not use deferred procedure calls.
321// Postcondition: f.currentBlock is nil.
322//
323func emitTailCall(f *Function, call *Call) {
324 tresults := f.Signature.Results()
325 nr := tresults.Len()
326 if nr == 1 {
327 call.typ = tresults.At(0).Type()
328 } else {
329 call.typ = tresults
330 }
331 tuple := f.emit(call)
332 var ret Return
333 switch nr {
334 case 0:
335 // no-op
336 case 1:
337 ret.Results = []Value{tuple}
338 default:
339 for i := 0; i < nr; i++ {
340 v := emitExtract(f, tuple, i)
341 // TODO(adonovan): in principle, this is required:
342 // v = emitConv(f, o.Type, f.Signature.Results[i].Type)
343 // but in practice emitTailCall is only used when
344 // the types exactly match.
345 ret.Results = append(ret.Results, v)
346 }
347 }
348 f.emit(&ret)
349 f.currentBlock = nil
350}
351
352// emitImplicitSelections emits to f code to apply the sequence of
353// implicit field selections specified by indices to base value v, and
354// returns the selected value.
355//
356// If v is the address of a struct, the result will be the address of
357// a field; if it is the value of a struct, the result will be the
358// value of a field.
359//
360func emitImplicitSelections(f *Function, v Value, indices []int) Value {
361 for _, index := range indices {
362 fld := deref(v.Type()).Underlying().(*types.Struct).Field(index)
363
364 if isPointer(v.Type()) {
365 instr := &FieldAddr{
366 X: v,
367 Field: index,
368 }
369 instr.setType(types.NewPointer(fld.Type()))
370 v = f.emit(instr)
371 // Load the field's value iff indirectly embedded.
372 if isPointer(fld.Type()) {
373 v = emitLoad(f, v)
374 }
375 } else {
376 instr := &Field{
377 X: v,
378 Field: index,
379 }
380 instr.setType(fld.Type())
381 v = f.emit(instr)
382 }
383 }
384 return v
385}
386
387// emitFieldSelection emits to f code to select the index'th field of v.
388//
389// If wantAddr, the input must be a pointer-to-struct and the result
390// will be the field's address; otherwise the result will be the
391// field's value.
392// Ident id is used for position and debug info.
393//
394func emitFieldSelection(f *Function, v Value, index int, wantAddr bool, id *ast.Ident) Value {
395 fld := deref(v.Type()).Underlying().(*types.Struct).Field(index)
396 if isPointer(v.Type()) {
397 instr := &FieldAddr{
398 X: v,
399 Field: index,
400 }
401 instr.setPos(id.Pos())
402 instr.setType(types.NewPointer(fld.Type()))
403 v = f.emit(instr)
404 // Load the field's value iff we don't want its address.
405 if !wantAddr {
406 v = emitLoad(f, v)
407 }
408 } else {
409 instr := &Field{
410 X: v,
411 Field: index,
412 }
413 instr.setPos(id.Pos())
414 instr.setType(fld.Type())
415 v = f.emit(instr)
416 }
417 emitDebugRef(f, id, v, wantAddr)
418 return v
419}
420
421// zeroValue emits to f code to produce a zero value of type t,
422// and returns it.
423//
424func zeroValue(f *Function, t types.Type) Value {
425 switch t.Underlying().(type) {
426 case *types.Struct, *types.Array:
427 return emitLoad(f, f.addLocal(t, token.NoPos))
428 default:
429 return zeroConst(t)
430 }
431}
432
433// createRecoverBlock emits to f a block of code to return after a
434// recovered panic, and sets f.Recover to it.
435//
436// If f's result parameters are named, the code loads and returns
437// their current values, otherwise it returns the zero values of their
438// type.
439//
440// Idempotent.
441//
442func createRecoverBlock(f *Function) {
443 if f.Recover != nil {
444 return // already created
445 }
446 saved := f.currentBlock
447
448 f.Recover = f.newBasicBlock("recover")
449 f.currentBlock = f.Recover
450
451 var results []Value
452 if f.namedResults != nil {
453 // Reload NRPs to form value tuple.
454 for _, r := range f.namedResults {
455 results = append(results, emitLoad(f, r))
456 }
457 } else {
458 R := f.Signature.Results()
459 for i, n := 0, R.Len(); i < n; i++ {
460 T := R.At(i).Type()
461
462 // Return zero value of each result type.
463 results = append(results, zeroValue(f, T))
464 }
465 }
466 f.emit(&Return{Results: results})
467
468 f.currentBlock = saved
469}
diff --git a/vendor/honnef.co/go/tools/ssa/func.go b/vendor/honnef.co/go/tools/ssa/func.go
new file mode 100644
index 0000000..222eea6
--- /dev/null
+++ b/vendor/honnef.co/go/tools/ssa/func.go
@@ -0,0 +1,765 @@
1// Copyright 2013 The Go Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style
3// license that can be found in the LICENSE file.
4
5package ssa
6
7// This file implements the Function and BasicBlock types.
8
9import (
10 "bytes"
11 "fmt"
12 "go/ast"
13 "go/token"
14 "go/types"
15 "io"
16 "os"
17 "strings"
18)
19
20// addEdge adds a control-flow graph edge from from to to.
21func addEdge(from, to *BasicBlock) {
22 from.Succs = append(from.Succs, to)
23 to.Preds = append(to.Preds, from)
24}
25
26// Parent returns the function that contains block b.
27func (b *BasicBlock) Parent() *Function { return b.parent }
28
29// String returns a human-readable label of this block.
30// It is not guaranteed unique within the function.
31//
32func (b *BasicBlock) String() string {
33 return fmt.Sprintf("%d", b.Index)
34}
35
36// emit appends an instruction to the current basic block.
37// If the instruction defines a Value, it is returned.
38//
39func (b *BasicBlock) emit(i Instruction) Value {
40 i.setBlock(b)
41 b.Instrs = append(b.Instrs, i)
42 v, _ := i.(Value)
43 return v
44}
45
46// predIndex returns the i such that b.Preds[i] == c or panics if
47// there is none.
48func (b *BasicBlock) predIndex(c *BasicBlock) int {
49 for i, pred := range b.Preds {
50 if pred == c {
51 return i
52 }
53 }
54 panic(fmt.Sprintf("no edge %s -> %s", c, b))
55}
56
57// hasPhi returns true if b.Instrs contains φ-nodes.
58func (b *BasicBlock) hasPhi() bool {
59 _, ok := b.Instrs[0].(*Phi)
60 return ok
61}
62
63func (b *BasicBlock) Phis() []Instruction {
64 return b.phis()
65}
66
67// phis returns the prefix of b.Instrs containing all the block's φ-nodes.
68func (b *BasicBlock) phis() []Instruction {
69 for i, instr := range b.Instrs {
70 if _, ok := instr.(*Phi); !ok {
71 return b.Instrs[:i]
72 }
73 }
74 return nil // unreachable in well-formed blocks
75}
76
77// replacePred replaces all occurrences of p in b's predecessor list with q.
78// Ordinarily there should be at most one.
79//
80func (b *BasicBlock) replacePred(p, q *BasicBlock) {
81 for i, pred := range b.Preds {
82 if pred == p {
83 b.Preds[i] = q
84 }
85 }
86}
87
88// replaceSucc replaces all occurrences of p in b's successor list with q.
89// Ordinarily there should be at most one.
90//
91func (b *BasicBlock) replaceSucc(p, q *BasicBlock) {
92 for i, succ := range b.Succs {
93 if succ == p {
94 b.Succs[i] = q
95 }
96 }
97}
98
99func (b *BasicBlock) RemovePred(p *BasicBlock) {
100 b.removePred(p)
101}
102
103// removePred removes all occurrences of p in b's
104// predecessor list and φ-nodes.
105// Ordinarily there should be at most one.
106//
107func (b *BasicBlock) removePred(p *BasicBlock) {
108 phis := b.phis()
109
110 // We must preserve edge order for φ-nodes.
111 j := 0
112 for i, pred := range b.Preds {
113 if pred != p {
114 b.Preds[j] = b.Preds[i]
115 // Strike out φ-edge too.
116 for _, instr := range phis {
117 phi := instr.(*Phi)
118 phi.Edges[j] = phi.Edges[i]
119 }
120 j++
121 }
122 }
123 // Nil out b.Preds[j:] and φ-edges[j:] to aid GC.
124 for i := j; i < len(b.Preds); i++ {
125 b.Preds[i] = nil
126 for _, instr := range phis {
127 instr.(*Phi).Edges[i] = nil
128 }
129 }
130 b.Preds = b.Preds[:j]
131 for _, instr := range phis {
132 phi := instr.(*Phi)
133 phi.Edges = phi.Edges[:j]
134 }
135}
136
137// Destinations associated with unlabelled for/switch/select stmts.
138// We push/pop one of these as we enter/leave each construct and for
139// each BranchStmt we scan for the innermost target of the right type.
140//
141type targets struct {
142 tail *targets // rest of stack
143 _break *BasicBlock
144 _continue *BasicBlock
145 _fallthrough *BasicBlock
146}
147
148// Destinations associated with a labelled block.
149// We populate these as labels are encountered in forward gotos or
150// labelled statements.
151//
152type lblock struct {
153 _goto *BasicBlock
154 _break *BasicBlock
155 _continue *BasicBlock
156}
157
158// labelledBlock returns the branch target associated with the
159// specified label, creating it if needed.
160//
161func (f *Function) labelledBlock(label *ast.Ident) *lblock {
162 lb := f.lblocks[label.Obj]
163 if lb == nil {
164 lb = &lblock{_goto: f.newBasicBlock(label.Name)}
165 if f.lblocks == nil {
166 f.lblocks = make(map[*ast.Object]*lblock)
167 }
168 f.lblocks[label.Obj] = lb
169 }
170 return lb
171}
172
173// addParam adds a (non-escaping) parameter to f.Params of the
174// specified name, type and source position.
175//
176func (f *Function) addParam(name string, typ types.Type, pos token.Pos) *Parameter {
177 v := &Parameter{
178 name: name,
179 typ: typ,
180 pos: pos,
181 parent: f,
182 }
183 f.Params = append(f.Params, v)
184 return v
185}
186
187func (f *Function) addParamObj(obj types.Object) *Parameter {
188 name := obj.Name()
189 if name == "" {
190 name = fmt.Sprintf("arg%d", len(f.Params))
191 }
192 param := f.addParam(name, obj.Type(), obj.Pos())
193 param.object = obj
194 return param
195}
196
197// addSpilledParam declares a parameter that is pre-spilled to the
198// stack; the function body will load/store the spilled location.
199// Subsequent lifting will eliminate spills where possible.
200//
201func (f *Function) addSpilledParam(obj types.Object) {
202 param := f.addParamObj(obj)
203 spill := &Alloc{Comment: obj.Name()}
204 spill.setType(types.NewPointer(obj.Type()))
205 spill.setPos(obj.Pos())
206 f.objects[obj] = spill
207 f.Locals = append(f.Locals, spill)
208 f.emit(spill)
209 f.emit(&Store{Addr: spill, Val: param})
210}
211
212// startBody initializes the function prior to generating SSA code for its body.
213// Precondition: f.Type() already set.
214//
215func (f *Function) startBody() {
216 f.currentBlock = f.newBasicBlock("entry")
217 f.objects = make(map[types.Object]Value) // needed for some synthetics, e.g. init
218}
219
220// createSyntacticParams populates f.Params and generates code (spills
221// and named result locals) for all the parameters declared in the
222// syntax. In addition it populates the f.objects mapping.
223//
224// Preconditions:
225// f.startBody() was called.
226// Postcondition:
227// len(f.Params) == len(f.Signature.Params) + (f.Signature.Recv() ? 1 : 0)
228//
229func (f *Function) createSyntacticParams(recv *ast.FieldList, functype *ast.FuncType) {
230 // Receiver (at most one inner iteration).
231 if recv != nil {
232 for _, field := range recv.List {
233 for _, n := range field.Names {
234 f.addSpilledParam(f.Pkg.info.Defs[n])
235 }
236 // Anonymous receiver? No need to spill.
237 if field.Names == nil {
238 f.addParamObj(f.Signature.Recv())
239 }
240 }
241 }
242
243 // Parameters.
244 if functype.Params != nil {
245 n := len(f.Params) // 1 if has recv, 0 otherwise
246 for _, field := range functype.Params.List {
247 for _, n := range field.Names {
248 f.addSpilledParam(f.Pkg.info.Defs[n])
249 }
250 // Anonymous parameter? No need to spill.
251 if field.Names == nil {
252 f.addParamObj(f.Signature.Params().At(len(f.Params) - n))
253 }
254 }
255 }
256
257 // Named results.
258 if functype.Results != nil {
259 for _, field := range functype.Results.List {
260 // Implicit "var" decl of locals for named results.
261 for _, n := range field.Names {
262 f.namedResults = append(f.namedResults, f.addLocalForIdent(n))
263 }
264 }
265 }
266}
267
268// numberRegisters assigns numbers to all SSA registers
269// (value-defining Instructions) in f, to aid debugging.
270// (Non-Instruction Values are named at construction.)
271//
272func numberRegisters(f *Function) {
273 v := 0
274 for _, b := range f.Blocks {
275 for _, instr := range b.Instrs {
276 switch instr.(type) {
277 case Value:
278 instr.(interface {
279 setNum(int)
280 }).setNum(v)
281 v++
282 }
283 }
284 }
285}
286
287// buildReferrers populates the def/use information in all non-nil
288// Value.Referrers slice.
289// Precondition: all such slices are initially empty.
290func buildReferrers(f *Function) {
291 var rands []*Value
292 for _, b := range f.Blocks {
293 for _, instr := range b.Instrs {
294 rands = instr.Operands(rands[:0]) // recycle storage
295 for _, rand := range rands {
296 if r := *rand; r != nil {
297 if ref := r.Referrers(); ref != nil {
298 *ref = append(*ref, instr)
299 }
300 }
301 }
302 }
303 }
304}
305
306// finishBody() finalizes the function after SSA code generation of its body.
307func (f *Function) finishBody() {
308 f.objects = nil
309 f.currentBlock = nil
310 f.lblocks = nil
311
312 // Don't pin the AST in memory (except in debug mode).
313 if n := f.syntax; n != nil && !f.debugInfo() {
314 f.syntax = extentNode{n.Pos(), n.End()}
315 }
316
317 // Remove from f.Locals any Allocs that escape to the heap.
318 j := 0
319 for _, l := range f.Locals {
320 if !l.Heap {
321 f.Locals[j] = l
322 j++
323 }
324 }
325 // Nil out f.Locals[j:] to aid GC.
326 for i := j; i < len(f.Locals); i++ {
327 f.Locals[i] = nil
328 }
329 f.Locals = f.Locals[:j]
330
331 // comma-ok receiving from a time.Tick channel will never return
332 // ok == false, so any branching on the value of ok can be
333 // replaced with an unconditional jump. This will primarily match
334 // `for range time.Tick(x)` loops, but it can also match
335 // user-written code.
336 for _, block := range f.Blocks {
337 if len(block.Instrs) < 3 {
338 continue
339 }
340 if len(block.Succs) != 2 {
341 continue
342 }
343 var instrs []*Instruction
344 for i, ins := range block.Instrs {
345 if _, ok := ins.(*DebugRef); ok {
346 continue
347 }
348 instrs = append(instrs, &block.Instrs[i])
349 }
350
351 for i, ins := range instrs {
352 unop, ok := (*ins).(*UnOp)
353 if !ok || unop.Op != token.ARROW {
354 continue
355 }
356 call, ok := unop.X.(*Call)
357 if !ok {
358 continue
359 }
360 if call.Common().IsInvoke() {
361 continue
362 }
363
364 // OPT(dh): surely there is a more efficient way of doing
365 // this, than using FullName. We should already have
366 // resolved time.Tick somewhere?
367 v, ok := call.Common().Value.(*Function)
368 if !ok {
369 continue
370 }
371 t, ok := v.Object().(*types.Func)
372 if !ok {
373 continue
374 }
375 if t.FullName() != "time.Tick" {
376 continue
377 }
378 ex, ok := (*instrs[i+1]).(*Extract)
379 if !ok || ex.Tuple != unop || ex.Index != 1 {
380 continue
381 }
382
383 ifstmt, ok := (*instrs[i+2]).(*If)
384 if !ok || ifstmt.Cond != ex {
385 continue
386 }
387
388 *instrs[i+2] = NewJump(block)
389 succ := block.Succs[1]
390 block.Succs = block.Succs[0:1]
391 succ.RemovePred(block)
392 }
393 }
394
395 optimizeBlocks(f)
396
397 buildReferrers(f)
398
399 buildDomTree(f)
400
401 if f.Prog.mode&NaiveForm == 0 {
402 // For debugging pre-state of lifting pass:
403 // numberRegisters(f)
404 // f.WriteTo(os.Stderr)
405 lift(f)
406 }
407
408 f.namedResults = nil // (used by lifting)
409
410 numberRegisters(f)
411
412 if f.Prog.mode&PrintFunctions != 0 {
413 printMu.Lock()
414 f.WriteTo(os.Stdout)
415 printMu.Unlock()
416 }
417
418 if f.Prog.mode&SanityCheckFunctions != 0 {
419 mustSanityCheck(f, nil)
420 }
421}
422
423func (f *Function) RemoveNilBlocks() {
424 f.removeNilBlocks()
425}
426
427// removeNilBlocks eliminates nils from f.Blocks and updates each
428// BasicBlock.Index. Use this after any pass that may delete blocks.
429//
430func (f *Function) removeNilBlocks() {
431 j := 0
432 for _, b := range f.Blocks {
433 if b != nil {
434 b.Index = j
435 f.Blocks[j] = b
436 j++
437 }
438 }
439 // Nil out f.Blocks[j:] to aid GC.
440 for i := j; i < len(f.Blocks); i++ {
441 f.Blocks[i] = nil
442 }
443 f.Blocks = f.Blocks[:j]
444}
445
446// SetDebugMode sets the debug mode for package pkg. If true, all its
447// functions will include full debug info. This greatly increases the
448// size of the instruction stream, and causes Functions to depend upon
449// the ASTs, potentially keeping them live in memory for longer.
450//
451func (pkg *Package) SetDebugMode(debug bool) {
452 // TODO(adonovan): do we want ast.File granularity?
453 pkg.debug = debug
454}
455
456// debugInfo reports whether debug info is wanted for this function.
457func (f *Function) debugInfo() bool {
458 return f.Pkg != nil && f.Pkg.debug
459}
460
461// addNamedLocal creates a local variable, adds it to function f and
462// returns it. Its name and type are taken from obj. Subsequent
463// calls to f.lookup(obj) will return the same local.
464//
465func (f *Function) addNamedLocal(obj types.Object) *Alloc {
466 l := f.addLocal(obj.Type(), obj.Pos())
467 l.Comment = obj.Name()
468 f.objects[obj] = l
469 return l
470}
471
472func (f *Function) addLocalForIdent(id *ast.Ident) *Alloc {
473 return f.addNamedLocal(f.Pkg.info.Defs[id])
474}
475
476// addLocal creates an anonymous local variable of type typ, adds it
477// to function f and returns it. pos is the optional source location.
478//
479func (f *Function) addLocal(typ types.Type, pos token.Pos) *Alloc {
480 v := &Alloc{}
481 v.setType(types.NewPointer(typ))
482 v.setPos(pos)
483 f.Locals = append(f.Locals, v)
484 f.emit(v)
485 return v
486}
487
488// lookup returns the address of the named variable identified by obj
489// that is local to function f or one of its enclosing functions.
490// If escaping, the reference comes from a potentially escaping pointer
491// expression and the referent must be heap-allocated.
492//
493func (f *Function) lookup(obj types.Object, escaping bool) Value {
494 if v, ok := f.objects[obj]; ok {
495 if alloc, ok := v.(*Alloc); ok && escaping {
496 alloc.Heap = true
497 }
498 return v // function-local var (address)
499 }
500
501 // Definition must be in an enclosing function;
502 // plumb it through intervening closures.
503 if f.parent == nil {
504 panic("no ssa.Value for " + obj.String())
505 }
506 outer := f.parent.lookup(obj, true) // escaping
507 v := &FreeVar{
508 name: obj.Name(),
509 typ: outer.Type(),
510 pos: outer.Pos(),
511 outer: outer,
512 parent: f,
513 }
514 f.objects[obj] = v
515 f.FreeVars = append(f.FreeVars, v)
516 return v
517}
518
519// emit emits the specified instruction to function f.
520func (f *Function) emit(instr Instruction) Value {
521 return f.currentBlock.emit(instr)
522}
523
524// RelString returns the full name of this function, qualified by
525// package name, receiver type, etc.
526//
527// The specific formatting rules are not guaranteed and may change.
528//
529// Examples:
530// "math.IsNaN" // a package-level function
531// "(*bytes.Buffer).Bytes" // a declared method or a wrapper
532// "(*bytes.Buffer).Bytes$thunk" // thunk (func wrapping method; receiver is param 0)
533// "(*bytes.Buffer).Bytes$bound" // bound (func wrapping method; receiver supplied by closure)
534// "main.main$1" // an anonymous function in main
535// "main.init#1" // a declared init function
536// "main.init" // the synthesized package initializer
537//
538// When these functions are referred to from within the same package
539// (i.e. from == f.Pkg.Object), they are rendered without the package path.
540// For example: "IsNaN", "(*Buffer).Bytes", etc.
541//
542// All non-synthetic functions have distinct package-qualified names.
543// (But two methods may have the same name "(T).f" if one is a synthetic
544// wrapper promoting a non-exported method "f" from another package; in
545// that case, the strings are equal but the identifiers "f" are distinct.)
546//
547func (f *Function) RelString(from *types.Package) string {
548 // Anonymous?
549 if f.parent != nil {
550 // An anonymous function's Name() looks like "parentName$1",
551 // but its String() should include the type/package/etc.
552 parent := f.parent.RelString(from)
553 for i, anon := range f.parent.AnonFuncs {
554 if anon == f {
555 return fmt.Sprintf("%s$%d", parent, 1+i)
556 }
557 }
558
559 return f.name // should never happen
560 }
561
562 // Method (declared or wrapper)?
563 if recv := f.Signature.Recv(); recv != nil {
564 return f.relMethod(from, recv.Type())
565 }
566
567 // Thunk?
568 if f.method != nil {
569 return f.relMethod(from, f.method.Recv())
570 }
571
572 // Bound?
573 if len(f.FreeVars) == 1 && strings.HasSuffix(f.name, "$bound") {
574 return f.relMethod(from, f.FreeVars[0].Type())
575 }
576
577 // Package-level function?
578 // Prefix with package name for cross-package references only.
579 if p := f.pkg(); p != nil && p != from {
580 return fmt.Sprintf("%s.%s", p.Path(), f.name)
581 }
582
583 // Unknown.
584 return f.name
585}
586
587func (f *Function) relMethod(from *types.Package, recv types.Type) string {
588 return fmt.Sprintf("(%s).%s", relType(recv, from), f.name)
589}
590
591// writeSignature writes to buf the signature sig in declaration syntax.
592func writeSignature(buf *bytes.Buffer, from *types.Package, name string, sig *types.Signature, params []*Parameter) {
593 buf.WriteString("func ")
594 if recv := sig.Recv(); recv != nil {
595 buf.WriteString("(")
596 if n := params[0].Name(); n != "" {
597 buf.WriteString(n)
598 buf.WriteString(" ")
599 }
600 types.WriteType(buf, params[0].Type(), types.RelativeTo(from))
601 buf.WriteString(") ")
602 }
603 buf.WriteString(name)
604 types.WriteSignature(buf, sig, types.RelativeTo(from))
605}
606
607func (f *Function) pkg() *types.Package {
608 if f.Pkg != nil {
609 return f.Pkg.Pkg
610 }
611 return nil
612}
613
614var _ io.WriterTo = (*Function)(nil) // *Function implements io.Writer
615
616func (f *Function) WriteTo(w io.Writer) (int64, error) {
617 var buf bytes.Buffer
618 WriteFunction(&buf, f)
619 n, err := w.Write(buf.Bytes())
620 return int64(n), err
621}
622
623// WriteFunction writes to buf a human-readable "disassembly" of f.
624func WriteFunction(buf *bytes.Buffer, f *Function) {
625 fmt.Fprintf(buf, "# Name: %s\n", f.String())
626 if f.Pkg != nil {
627 fmt.Fprintf(buf, "# Package: %s\n", f.Pkg.Pkg.Path())
628 }
629 if syn := f.Synthetic; syn != "" {
630 fmt.Fprintln(buf, "# Synthetic:", syn)
631 }
632 if pos := f.Pos(); pos.IsValid() {
633 fmt.Fprintf(buf, "# Location: %s\n", f.Prog.Fset.Position(pos))
634 }
635
636 if f.parent != nil {
637 fmt.Fprintf(buf, "# Parent: %s\n", f.parent.Name())
638 }
639
640 if f.Recover != nil {
641 fmt.Fprintf(buf, "# Recover: %s\n", f.Recover)
642 }
643
644 from := f.pkg()
645
646 if f.FreeVars != nil {
647 buf.WriteString("# Free variables:\n")
648 for i, fv := range f.FreeVars {
649 fmt.Fprintf(buf, "# % 3d:\t%s %s\n", i, fv.Name(), relType(fv.Type(), from))
650 }
651 }
652
653 if len(f.Locals) > 0 {
654 buf.WriteString("# Locals:\n")
655 for i, l := range f.Locals {
656 fmt.Fprintf(buf, "# % 3d:\t%s %s\n", i, l.Name(), relType(deref(l.Type()), from))
657 }
658 }
659 writeSignature(buf, from, f.Name(), f.Signature, f.Params)
660 buf.WriteString(":\n")
661
662 if f.Blocks == nil {
663 buf.WriteString("\t(external)\n")
664 }
665
666 // NB. column calculations are confused by non-ASCII
667 // characters and assume 8-space tabs.
668 const punchcard = 80 // for old time's sake.
669 const tabwidth = 8
670 for _, b := range f.Blocks {
671 if b == nil {
672 // Corrupt CFG.
673 fmt.Fprintf(buf, ".nil:\n")
674 continue
675 }
676 n, _ := fmt.Fprintf(buf, "%d:", b.Index)
677 bmsg := fmt.Sprintf("%s P:%d S:%d", b.Comment, len(b.Preds), len(b.Succs))
678 fmt.Fprintf(buf, "%*s%s\n", punchcard-1-n-len(bmsg), "", bmsg)
679
680 if false { // CFG debugging
681 fmt.Fprintf(buf, "\t# CFG: %s --> %s --> %s\n", b.Preds, b, b.Succs)
682 }
683 for _, instr := range b.Instrs {
684 buf.WriteString("\t")
685 switch v := instr.(type) {
686 case Value:
687 l := punchcard - tabwidth
688 // Left-align the instruction.
689 if name := v.Name(); name != "" {
690 n, _ := fmt.Fprintf(buf, "%s = ", name)
691 l -= n
692 }
693 n, _ := buf.WriteString(instr.String())
694 l -= n
695 // Right-align the type if there's space.
696 if t := v.Type(); t != nil {
697 buf.WriteByte(' ')
698 ts := relType(t, from)
699 l -= len(ts) + len(" ") // (spaces before and after type)
700 if l > 0 {
701 fmt.Fprintf(buf, "%*s", l, "")
702 }
703 buf.WriteString(ts)
704 }
705 case nil:
706 // Be robust against bad transforms.
707 buf.WriteString("<deleted>")
708 default:
709 buf.WriteString(instr.String())
710 }
711 buf.WriteString("\n")
712 }
713 }
714 fmt.Fprintf(buf, "\n")
715}
716
717// newBasicBlock adds to f a new basic block and returns it. It does
718// not automatically become the current block for subsequent calls to emit.
719// comment is an optional string for more readable debugging output.
720//
721func (f *Function) newBasicBlock(comment string) *BasicBlock {
722 b := &BasicBlock{
723 Index: len(f.Blocks),
724 Comment: comment,
725 parent: f,
726 }
727 b.Succs = b.succs2[:0]
728 f.Blocks = append(f.Blocks, b)
729 return b
730}
731
732// NewFunction returns a new synthetic Function instance belonging to
733// prog, with its name and signature fields set as specified.
734//
735// The caller is responsible for initializing the remaining fields of
736// the function object, e.g. Pkg, Params, Blocks.
737//
738// It is practically impossible for clients to construct well-formed
739// SSA functions/packages/programs directly, so we assume this is the
740// job of the Builder alone. NewFunction exists to provide clients a
741// little flexibility. For example, analysis tools may wish to
742// construct fake Functions for the root of the callgraph, a fake
743// "reflect" package, etc.
744//
745// TODO(adonovan): think harder about the API here.
746//
747func (prog *Program) NewFunction(name string, sig *types.Signature, provenance string) *Function {
748 return &Function{Prog: prog, name: name, Signature: sig, Synthetic: provenance}
749}
750
751type extentNode [2]token.Pos
752
753func (n extentNode) Pos() token.Pos { return n[0] }
754func (n extentNode) End() token.Pos { return n[1] }
755
756// Syntax returns an ast.Node whose Pos/End methods provide the
757// lexical extent of the function if it was defined by Go source code
758// (f.Synthetic==""), or nil otherwise.
759//
760// If f was built with debug information (see Package.SetDebugRef),
761// the result is the *ast.FuncDecl or *ast.FuncLit that declared the
762// function. Otherwise, it is an opaque Node providing only position
763// information; this avoids pinning the AST in memory.
764//
765func (f *Function) Syntax() ast.Node { return f.syntax }
diff --git a/vendor/honnef.co/go/tools/ssa/identical.go b/vendor/honnef.co/go/tools/ssa/identical.go
new file mode 100644
index 0000000..53cbee1
--- /dev/null
+++ b/vendor/honnef.co/go/tools/ssa/identical.go
@@ -0,0 +1,7 @@
1// +build go1.8
2
3package ssa
4
5import "go/types"
6
7var structTypesIdentical = types.IdenticalIgnoreTags
diff --git a/vendor/honnef.co/go/tools/ssa/identical_17.go b/vendor/honnef.co/go/tools/ssa/identical_17.go
new file mode 100644
index 0000000..da89d33
--- /dev/null
+++ b/vendor/honnef.co/go/tools/ssa/identical_17.go
@@ -0,0 +1,7 @@
1// +build !go1.8
2
3package ssa
4
5import "go/types"
6
7var structTypesIdentical = types.Identical
diff --git a/vendor/honnef.co/go/tools/ssa/lift.go b/vendor/honnef.co/go/tools/ssa/lift.go
new file mode 100644
index 0000000..531358f
--- /dev/null
+++ b/vendor/honnef.co/go/tools/ssa/lift.go
@@ -0,0 +1,657 @@
1// Copyright 2013 The Go Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style
3// license that can be found in the LICENSE file.
4
5package ssa
6
7// This file defines the lifting pass which tries to "lift" Alloc
8// cells (new/local variables) into SSA registers, replacing loads
9// with the dominating stored value, eliminating loads and stores, and
10// inserting φ-nodes as needed.
11
12// Cited papers and resources:
13//
14// Ron Cytron et al. 1991. Efficiently computing SSA form...
15// http://doi.acm.org/10.1145/115372.115320
16//
17// Cooper, Harvey, Kennedy. 2001. A Simple, Fast Dominance Algorithm.
18// Software Practice and Experience 2001, 4:1-10.
19// http://www.hipersoft.rice.edu/grads/publications/dom14.pdf
20//
21// Daniel Berlin, llvmdev mailing list, 2012.
22// http://lists.cs.uiuc.edu/pipermail/llvmdev/2012-January/046638.html
23// (Be sure to expand the whole thread.)
24
25// TODO(adonovan): opt: there are many optimizations worth evaluating, and
26// the conventional wisdom for SSA construction is that a simple
27// algorithm well engineered often beats those of better asymptotic
28// complexity on all but the most egregious inputs.
29//
30// Danny Berlin suggests that the Cooper et al. algorithm for
31// computing the dominance frontier is superior to Cytron et al.
32// Furthermore he recommends that rather than computing the DF for the
33// whole function then renaming all alloc cells, it may be cheaper to
34// compute the DF for each alloc cell separately and throw it away.
35//
36// Consider exploiting liveness information to avoid creating dead
37// φ-nodes which we then immediately remove.
38//
39// Also see many other "TODO: opt" suggestions in the code.
40
41import (
42 "fmt"
43 "go/token"
44 "go/types"
45 "math/big"
46 "os"
47)
48
49// If true, show diagnostic information at each step of lifting.
50// Very verbose.
51const debugLifting = false
52
53// domFrontier maps each block to the set of blocks in its dominance
54// frontier. The outer slice is conceptually a map keyed by
55// Block.Index. The inner slice is conceptually a set, possibly
56// containing duplicates.
57//
58// TODO(adonovan): opt: measure impact of dups; consider a packed bit
59// representation, e.g. big.Int, and bitwise parallel operations for
60// the union step in the Children loop.
61//
62// domFrontier's methods mutate the slice's elements but not its
63// length, so their receivers needn't be pointers.
64//
65type domFrontier [][]*BasicBlock
66
67func (df domFrontier) add(u, v *BasicBlock) {
68 p := &df[u.Index]
69 *p = append(*p, v)
70}
71
72// build builds the dominance frontier df for the dominator (sub)tree
73// rooted at u, using the Cytron et al. algorithm.
74//
75// TODO(adonovan): opt: consider Berlin approach, computing pruned SSA
76// by pruning the entire IDF computation, rather than merely pruning
77// the DF -> IDF step.
78func (df domFrontier) build(u *BasicBlock) {
79 // Encounter each node u in postorder of dom tree.
80 for _, child := range u.dom.children {
81 df.build(child)
82 }
83 for _, vb := range u.Succs {
84 if v := vb.dom; v.idom != u {
85 df.add(u, vb)
86 }
87 }
88 for _, w := range u.dom.children {
89 for _, vb := range df[w.Index] {
90 // TODO(adonovan): opt: use word-parallel bitwise union.
91 if v := vb.dom; v.idom != u {
92 df.add(u, vb)
93 }
94 }
95 }
96}
97
98func buildDomFrontier(fn *Function) domFrontier {
99 df := make(domFrontier, len(fn.Blocks))
100 df.build(fn.Blocks[0])
101 if fn.Recover != nil {
102 df.build(fn.Recover)
103 }
104 return df
105}
106
107func removeInstr(refs []Instruction, instr Instruction) []Instruction {
108 i := 0
109 for _, ref := range refs {
110 if ref == instr {
111 continue
112 }
113 refs[i] = ref
114 i++
115 }
116 for j := i; j != len(refs); j++ {
117 refs[j] = nil // aid GC
118 }
119 return refs[:i]
120}
121
122// lift replaces local and new Allocs accessed only with
123// load/store by SSA registers, inserting φ-nodes where necessary.
124// The result is a program in classical pruned SSA form.
125//
126// Preconditions:
127// - fn has no dead blocks (blockopt has run).
128// - Def/use info (Operands and Referrers) is up-to-date.
129// - The dominator tree is up-to-date.
130//
131func lift(fn *Function) {
132 // TODO(adonovan): opt: lots of little optimizations may be
133 // worthwhile here, especially if they cause us to avoid
134 // buildDomFrontier. For example:
135 //
136 // - Alloc never loaded? Eliminate.
137 // - Alloc never stored? Replace all loads with a zero constant.
138 // - Alloc stored once? Replace loads with dominating store;
139 // don't forget that an Alloc is itself an effective store
140 // of zero.
141 // - Alloc used only within a single block?
142 // Use degenerate algorithm avoiding φ-nodes.
143 // - Consider synergy with scalar replacement of aggregates (SRA).
144 // e.g. *(&x.f) where x is an Alloc.
145 // Perhaps we'd get better results if we generated this as x.f
146 // i.e. Field(x, .f) instead of Load(FieldIndex(x, .f)).
147 // Unclear.
148 //
149 // But we will start with the simplest correct code.
150 df := buildDomFrontier(fn)
151
152 if debugLifting {
153 title := false
154 for i, blocks := range df {
155 if blocks != nil {
156 if !title {
157 fmt.Fprintf(os.Stderr, "Dominance frontier of %s:\n", fn)
158 title = true
159 }
160 fmt.Fprintf(os.Stderr, "\t%s: %s\n", fn.Blocks[i], blocks)
161 }
162 }
163 }
164
165 newPhis := make(newPhiMap)
166
167 // During this pass we will replace some BasicBlock.Instrs
168 // (allocs, loads and stores) with nil, keeping a count in
169 // BasicBlock.gaps. At the end we will reset Instrs to the
170 // concatenation of all non-dead newPhis and non-nil Instrs
171 // for the block, reusing the original array if space permits.
172
173 // While we're here, we also eliminate 'rundefers'
174 // instructions in functions that contain no 'defer'
175 // instructions.
176 usesDefer := false
177
178 // A counter used to generate ~unique ids for Phi nodes, as an
179 // aid to debugging. We use large numbers to make them highly
180 // visible. All nodes are renumbered later.
181 fresh := 1000
182
183 // Determine which allocs we can lift and number them densely.
184 // The renaming phase uses this numbering for compact maps.
185 numAllocs := 0
186 for _, b := range fn.Blocks {
187 b.gaps = 0
188 b.rundefers = 0
189 for _, instr := range b.Instrs {
190 switch instr := instr.(type) {
191 case *Alloc:
192 index := -1
193 if liftAlloc(df, instr, newPhis, &fresh) {
194 index = numAllocs
195 numAllocs++
196 }
197 instr.index = index
198 case *Defer:
199 usesDefer = true
200 case *RunDefers:
201 b.rundefers++
202 }
203 }
204 }
205
206 // renaming maps an alloc (keyed by index) to its replacement
207 // value. Initially the renaming contains nil, signifying the
208 // zero constant of the appropriate type; we construct the
209 // Const lazily at most once on each path through the domtree.
210 // TODO(adonovan): opt: cache per-function not per subtree.
211 renaming := make([]Value, numAllocs)
212
213 // Renaming.
214 rename(fn.Blocks[0], renaming, newPhis)
215
216 // Eliminate dead φ-nodes.
217 removeDeadPhis(fn.Blocks, newPhis)
218
219 // Prepend remaining live φ-nodes to each block.
220 for _, b := range fn.Blocks {
221 nps := newPhis[b]
222 j := len(nps)
223
224 rundefersToKill := b.rundefers
225 if usesDefer {
226 rundefersToKill = 0
227 }
228
229 if j+b.gaps+rundefersToKill == 0 {
230 continue // fast path: no new phis or gaps
231 }
232
233 // Compact nps + non-nil Instrs into a new slice.
234 // TODO(adonovan): opt: compact in situ (rightwards)
235 // if Instrs has sufficient space or slack.
236 dst := make([]Instruction, len(b.Instrs)+j-b.gaps-rundefersToKill)
237 for i, np := range nps {
238 dst[i] = np.phi
239 }
240 for _, instr := range b.Instrs {
241 if instr == nil {
242 continue
243 }
244 if !usesDefer {
245 if _, ok := instr.(*RunDefers); ok {
246 continue
247 }
248 }
249 dst[j] = instr
250 j++
251 }
252 b.Instrs = dst
253 }
254
255 // Remove any fn.Locals that were lifted.
256 j := 0
257 for _, l := range fn.Locals {
258 if l.index < 0 {
259 fn.Locals[j] = l
260 j++
261 }
262 }
263 // Nil out fn.Locals[j:] to aid GC.
264 for i := j; i < len(fn.Locals); i++ {
265 fn.Locals[i] = nil
266 }
267 fn.Locals = fn.Locals[:j]
268}
269
270// removeDeadPhis removes φ-nodes not transitively needed by a
271// non-Phi, non-DebugRef instruction.
272func removeDeadPhis(blocks []*BasicBlock, newPhis newPhiMap) {
273 // First pass: find the set of "live" φ-nodes: those reachable
274 // from some non-Phi instruction.
275 //
276 // We compute reachability in reverse, starting from each φ,
277 // rather than forwards, starting from each live non-Phi
278 // instruction, because this way visits much less of the
279 // Value graph.
280 livePhis := make(map[*Phi]bool)
281 for _, npList := range newPhis {
282 for _, np := range npList {
283 phi := np.phi
284 if !livePhis[phi] && phiHasDirectReferrer(phi) {
285 markLivePhi(livePhis, phi)
286 }
287 }
288 }
289
290 // Existing φ-nodes due to && and || operators
291 // are all considered live (see Go issue 19622).
292 for _, b := range blocks {
293 for _, phi := range b.phis() {
294 markLivePhi(livePhis, phi.(*Phi))
295 }
296 }
297
298 // Second pass: eliminate unused phis from newPhis.
299 for block, npList := range newPhis {
300 j := 0
301 for _, np := range npList {
302 if livePhis[np.phi] {
303 npList[j] = np
304 j++
305 } else {
306 // discard it, first removing it from referrers
307 for _, val := range np.phi.Edges {
308 if refs := val.Referrers(); refs != nil {
309 *refs = removeInstr(*refs, np.phi)
310 }
311 }
312 np.phi.block = nil
313 }
314 }
315 newPhis[block] = npList[:j]
316 }
317}
318
319// markLivePhi marks phi, and all φ-nodes transitively reachable via
320// its Operands, live.
321func markLivePhi(livePhis map[*Phi]bool, phi *Phi) {
322 livePhis[phi] = true
323 for _, rand := range phi.Operands(nil) {
324 if q, ok := (*rand).(*Phi); ok {
325 if !livePhis[q] {
326 markLivePhi(livePhis, q)
327 }
328 }
329 }
330}
331
332// phiHasDirectReferrer reports whether phi is directly referred to by
333// a non-Phi instruction. Such instructions are the
334// roots of the liveness traversal.
335func phiHasDirectReferrer(phi *Phi) bool {
336 for _, instr := range *phi.Referrers() {
337 if _, ok := instr.(*Phi); !ok {
338 return true
339 }
340 }
341 return false
342}
343
344type BlockSet struct{ big.Int } // (inherit methods from Int)
345
346// add adds b to the set and returns true if the set changed.
347func (s *BlockSet) Add(b *BasicBlock) bool {
348 i := b.Index
349 if s.Bit(i) != 0 {
350 return false
351 }
352 s.SetBit(&s.Int, i, 1)
353 return true
354}
355
356func (s *BlockSet) Has(b *BasicBlock) bool {
357 return s.Bit(b.Index) == 1
358}
359
360// take removes an arbitrary element from a set s and
361// returns its index, or returns -1 if empty.
362func (s *BlockSet) Take() int {
363 l := s.BitLen()
364 for i := 0; i < l; i++ {
365 if s.Bit(i) == 1 {
366 s.SetBit(&s.Int, i, 0)
367 return i
368 }
369 }
370 return -1
371}
372
373// newPhi is a pair of a newly introduced φ-node and the lifted Alloc
374// it replaces.
375type newPhi struct {
376 phi *Phi
377 alloc *Alloc
378}
379
380// newPhiMap records for each basic block, the set of newPhis that
381// must be prepended to the block.
382type newPhiMap map[*BasicBlock][]newPhi
383
384// liftAlloc determines whether alloc can be lifted into registers,
385// and if so, it populates newPhis with all the φ-nodes it may require
386// and returns true.
387//
388// fresh is a source of fresh ids for phi nodes.
389//
390func liftAlloc(df domFrontier, alloc *Alloc, newPhis newPhiMap, fresh *int) bool {
391 // Don't lift aggregates into registers, because we don't have
392 // a way to express their zero-constants.
393 switch deref(alloc.Type()).Underlying().(type) {
394 case *types.Array, *types.Struct:
395 return false
396 }
397
398 // Don't lift named return values in functions that defer
399 // calls that may recover from panic.
400 if fn := alloc.Parent(); fn.Recover != nil {
401 for _, nr := range fn.namedResults {
402 if nr == alloc {
403 return false
404 }
405 }
406 }
407
408 // Compute defblocks, the set of blocks containing a
409 // definition of the alloc cell.
410 var defblocks BlockSet
411 for _, instr := range *alloc.Referrers() {
412 // Bail out if we discover the alloc is not liftable;
413 // the only operations permitted to use the alloc are
414 // loads/stores into the cell, and DebugRef.
415 switch instr := instr.(type) {
416 case *Store:
417 if instr.Val == alloc {
418 return false // address used as value
419 }
420 if instr.Addr != alloc {
421 panic("Alloc.Referrers is inconsistent")
422 }
423 defblocks.Add(instr.Block())
424 case *UnOp:
425 if instr.Op != token.MUL {
426 return false // not a load
427 }
428 if instr.X != alloc {
429 panic("Alloc.Referrers is inconsistent")
430 }
431 case *DebugRef:
432 // ok
433 default:
434 return false // some other instruction
435 }
436 }
437 // The Alloc itself counts as a (zero) definition of the cell.
438 defblocks.Add(alloc.Block())
439
440 if debugLifting {
441 fmt.Fprintln(os.Stderr, "\tlifting ", alloc, alloc.Name())
442 }
443
444 fn := alloc.Parent()
445
446 // Φ-insertion.
447 //
448 // What follows is the body of the main loop of the insert-φ
449 // function described by Cytron et al, but instead of using
450 // counter tricks, we just reset the 'hasAlready' and 'work'
451 // sets each iteration. These are bitmaps so it's pretty cheap.
452 //
453 // TODO(adonovan): opt: recycle slice storage for W,
454 // hasAlready, defBlocks across liftAlloc calls.
455 var hasAlready BlockSet
456
457 // Initialize W and work to defblocks.
458 var work BlockSet = defblocks // blocks seen
459 var W BlockSet // blocks to do
460 W.Set(&defblocks.Int)
461
462 // Traverse iterated dominance frontier, inserting φ-nodes.
463 for i := W.Take(); i != -1; i = W.Take() {
464 u := fn.Blocks[i]
465 for _, v := range df[u.Index] {
466 if hasAlready.Add(v) {
467 // Create φ-node.
468 // It will be prepended to v.Instrs later, if needed.
469 phi := &Phi{
470 Edges: make([]Value, len(v.Preds)),
471 Comment: alloc.Comment,
472 }
473 // This is merely a debugging aid:
474 phi.setNum(*fresh)
475 *fresh++
476
477 phi.pos = alloc.Pos()
478 phi.setType(deref(alloc.Type()))
479 phi.block = v
480 if debugLifting {
481 fmt.Fprintf(os.Stderr, "\tplace %s = %s at block %s\n", phi.Name(), phi, v)
482 }
483 newPhis[v] = append(newPhis[v], newPhi{phi, alloc})
484
485 if work.Add(v) {
486 W.Add(v)
487 }
488 }
489 }
490 }
491
492 return true
493}
494
495// replaceAll replaces all intraprocedural uses of x with y,
496// updating x.Referrers and y.Referrers.
497// Precondition: x.Referrers() != nil, i.e. x must be local to some function.
498//
499func replaceAll(x, y Value) {
500 var rands []*Value
501 pxrefs := x.Referrers()
502 pyrefs := y.Referrers()
503 for _, instr := range *pxrefs {
504 rands = instr.Operands(rands[:0]) // recycle storage
505 for _, rand := range rands {
506 if *rand != nil {
507 if *rand == x {
508 *rand = y
509 }
510 }
511 }
512 if pyrefs != nil {
513 *pyrefs = append(*pyrefs, instr) // dups ok
514 }
515 }
516 *pxrefs = nil // x is now unreferenced
517}
518
519// renamed returns the value to which alloc is being renamed,
520// constructing it lazily if it's the implicit zero initialization.
521//
522func renamed(renaming []Value, alloc *Alloc) Value {
523 v := renaming[alloc.index]
524 if v == nil {
525 v = zeroConst(deref(alloc.Type()))
526 renaming[alloc.index] = v
527 }
528 return v
529}
530
531// rename implements the (Cytron et al) SSA renaming algorithm, a
532// preorder traversal of the dominator tree replacing all loads of
533// Alloc cells with the value stored to that cell by the dominating
534// store instruction. For lifting, we need only consider loads,
535// stores and φ-nodes.
536//
537// renaming is a map from *Alloc (keyed by index number) to its
538// dominating stored value; newPhis[x] is the set of new φ-nodes to be
539// prepended to block x.
540//
541func rename(u *BasicBlock, renaming []Value, newPhis newPhiMap) {
542 // Each φ-node becomes the new name for its associated Alloc.
543 for _, np := range newPhis[u] {
544 phi := np.phi
545 alloc := np.alloc
546 renaming[alloc.index] = phi
547 }
548
549 // Rename loads and stores of allocs.
550 for i, instr := range u.Instrs {
551 switch instr := instr.(type) {
552 case *Alloc:
553 if instr.index >= 0 { // store of zero to Alloc cell
554 // Replace dominated loads by the zero value.
555 renaming[instr.index] = nil
556 if debugLifting {
557 fmt.Fprintf(os.Stderr, "\tkill alloc %s\n", instr)
558 }
559 // Delete the Alloc.
560 u.Instrs[i] = nil
561 u.gaps++
562 }
563
564 case *Store:
565 if alloc, ok := instr.Addr.(*Alloc); ok && alloc.index >= 0 { // store to Alloc cell
566 // Replace dominated loads by the stored value.
567 renaming[alloc.index] = instr.Val
568 if debugLifting {
569 fmt.Fprintf(os.Stderr, "\tkill store %s; new value: %s\n",
570 instr, instr.Val.Name())
571 }
572 // Remove the store from the referrer list of the stored value.
573 if refs := instr.Val.Referrers(); refs != nil {
574 *refs = removeInstr(*refs, instr)
575 }
576 // Delete the Store.
577 u.Instrs[i] = nil
578 u.gaps++
579 }
580
581 case *UnOp:
582 if instr.Op == token.MUL {
583 if alloc, ok := instr.X.(*Alloc); ok && alloc.index >= 0 { // load of Alloc cell
584 newval := renamed(renaming, alloc)
585 if debugLifting {
586 fmt.Fprintf(os.Stderr, "\tupdate load %s = %s with %s\n",
587 instr.Name(), instr, newval.Name())
588 }
589 // Replace all references to
590 // the loaded value by the
591 // dominating stored value.
592 replaceAll(instr, newval)
593 // Delete the Load.
594 u.Instrs[i] = nil
595 u.gaps++
596 }
597 }
598
599 case *DebugRef:
600 if alloc, ok := instr.X.(*Alloc); ok && alloc.index >= 0 { // ref of Alloc cell
601 if instr.IsAddr {
602 instr.X = renamed(renaming, alloc)
603 instr.IsAddr = false
604
605 // Add DebugRef to instr.X's referrers.
606 if refs := instr.X.Referrers(); refs != nil {
607 *refs = append(*refs, instr)
608 }
609 } else {
610 // A source expression denotes the address
611 // of an Alloc that was optimized away.
612 instr.X = nil
613
614 // Delete the DebugRef.
615 u.Instrs[i] = nil
616 u.gaps++
617 }
618 }
619 }
620 }
621
622 // For each φ-node in a CFG successor, rename the edge.
623 for _, v := range u.Succs {
624 phis := newPhis[v]
625 if len(phis) == 0 {
626 continue
627 }
628 i := v.predIndex(u)
629 for _, np := range phis {
630 phi := np.phi
631 alloc := np.alloc
632 newval := renamed(renaming, alloc)
633 if debugLifting {
634 fmt.Fprintf(os.Stderr, "\tsetphi %s edge %s -> %s (#%d) (alloc=%s) := %s\n",
635 phi.Name(), u, v, i, alloc.Name(), newval.Name())
636 }
637 phi.Edges[i] = newval
638 if prefs := newval.Referrers(); prefs != nil {
639 *prefs = append(*prefs, phi)
640 }
641 }
642 }
643
644 // Continue depth-first recursion over domtree, pushing a
645 // fresh copy of the renaming map for each subtree.
646 for i, v := range u.dom.children {
647 r := renaming
648 if i < len(u.dom.children)-1 {
649 // On all but the final iteration, we must make
650 // a copy to avoid destructive update.
651 r = make([]Value, len(renaming))
652 copy(r, renaming)
653 }
654 rename(v, r, newPhis)
655 }
656
657}
diff --git a/vendor/honnef.co/go/tools/ssa/lvalue.go b/vendor/honnef.co/go/tools/ssa/lvalue.go
new file mode 100644
index 0000000..eb5d71e
--- /dev/null
+++ b/vendor/honnef.co/go/tools/ssa/lvalue.go
@@ -0,0 +1,123 @@
1// Copyright 2013 The Go Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style
3// license that can be found in the LICENSE file.
4
5package ssa
6
7// lvalues are the union of addressable expressions and map-index
8// expressions.
9
10import (
11 "go/ast"
12 "go/token"
13 "go/types"
14)
15
16// An lvalue represents an assignable location that may appear on the
17// left-hand side of an assignment. This is a generalization of a
18// pointer to permit updates to elements of maps.
19//
20type lvalue interface {
21 store(fn *Function, v Value) // stores v into the location
22 load(fn *Function) Value // loads the contents of the location
23 address(fn *Function) Value // address of the location
24 typ() types.Type // returns the type of the location
25}
26
27// An address is an lvalue represented by a true pointer.
28type address struct {
29 addr Value
30 pos token.Pos // source position
31 expr ast.Expr // source syntax of the value (not address) [debug mode]
32}
33
34func (a *address) load(fn *Function) Value {
35 load := emitLoad(fn, a.addr)
36 load.pos = a.pos
37 return load
38}
39
40func (a *address) store(fn *Function, v Value) {
41 store := emitStore(fn, a.addr, v, a.pos)
42 if a.expr != nil {
43 // store.Val is v, converted for assignability.
44 emitDebugRef(fn, a.expr, store.Val, false)
45 }
46}
47
48func (a *address) address(fn *Function) Value {
49 if a.expr != nil {
50 emitDebugRef(fn, a.expr, a.addr, true)
51 }
52 return a.addr
53}
54
55func (a *address) typ() types.Type {
56 return deref(a.addr.Type())
57}
58
59// An element is an lvalue represented by m[k], the location of an
60// element of a map or string. These locations are not addressable
61// since pointers cannot be formed from them, but they do support
62// load(), and in the case of maps, store().
63//
64type element struct {
65 m, k Value // map or string
66 t types.Type // map element type or string byte type
67 pos token.Pos // source position of colon ({k:v}) or lbrack (m[k]=v)
68}
69
70func (e *element) load(fn *Function) Value {
71 l := &Lookup{
72 X: e.m,
73 Index: e.k,
74 }
75 l.setPos(e.pos)
76 l.setType(e.t)
77 return fn.emit(l)
78}
79
80func (e *element) store(fn *Function, v Value) {
81 up := &MapUpdate{
82 Map: e.m,
83 Key: e.k,
84 Value: emitConv(fn, v, e.t),
85 }
86 up.pos = e.pos
87 fn.emit(up)
88}
89
90func (e *element) address(fn *Function) Value {
91 panic("map/string elements are not addressable")
92}
93
94func (e *element) typ() types.Type {
95 return e.t
96}
97
98// A blank is a dummy variable whose name is "_".
99// It is not reified: loads are illegal and stores are ignored.
100//
101type blank struct{}
102
103func (bl blank) load(fn *Function) Value {
104 panic("blank.load is illegal")
105}
106
107func (bl blank) store(fn *Function, v Value) {
108 s := &BlankStore{
109 Val: v,
110 }
111 fn.emit(s)
112}
113
114func (bl blank) address(fn *Function) Value {
115 panic("blank var is not addressable")
116}
117
118func (bl blank) typ() types.Type {
119 // This should be the type of the blank Ident; the typechecker
120 // doesn't provide this yet, but fortunately, we don't need it
121 // yet either.
122 panic("blank.typ is unimplemented")
123}
diff --git a/vendor/honnef.co/go/tools/ssa/methods.go b/vendor/honnef.co/go/tools/ssa/methods.go
new file mode 100644
index 0000000..9cf3839
--- /dev/null
+++ b/vendor/honnef.co/go/tools/ssa/methods.go
@@ -0,0 +1,239 @@
1// Copyright 2013 The Go Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style
3// license that can be found in the LICENSE file.
4
5package ssa
6
7// This file defines utilities for population of method sets.
8
9import (
10 "fmt"
11 "go/types"
12)
13
14// MethodValue returns the Function implementing method sel, building
15// wrapper methods on demand. It returns nil if sel denotes an
16// abstract (interface) method.
17//
18// Precondition: sel.Kind() == MethodVal.
19//
20// Thread-safe.
21//
22// EXCLUSIVE_LOCKS_ACQUIRED(prog.methodsMu)
23//
24func (prog *Program) MethodValue(sel *types.Selection) *Function {
25 if sel.Kind() != types.MethodVal {
26 panic(fmt.Sprintf("MethodValue(%s) kind != MethodVal", sel))
27 }
28 T := sel.Recv()
29 if isInterface(T) {
30 return nil // abstract method
31 }
32 if prog.mode&LogSource != 0 {
33 defer logStack("MethodValue %s %v", T, sel)()
34 }
35
36 prog.methodsMu.Lock()
37 defer prog.methodsMu.Unlock()
38
39 return prog.addMethod(prog.createMethodSet(T), sel)
40}
41
42// LookupMethod returns the implementation of the method of type T
43// identified by (pkg, name). It returns nil if the method exists but
44// is abstract, and panics if T has no such method.
45//
46func (prog *Program) LookupMethod(T types.Type, pkg *types.Package, name string) *Function {
47 sel := prog.MethodSets.MethodSet(T).Lookup(pkg, name)
48 if sel == nil {
49 panic(fmt.Sprintf("%s has no method %s", T, types.Id(pkg, name)))
50 }
51 return prog.MethodValue(sel)
52}
53
54// methodSet contains the (concrete) methods of a non-interface type.
55type methodSet struct {
56 mapping map[string]*Function // populated lazily
57 complete bool // mapping contains all methods
58}
59
60// Precondition: !isInterface(T).
61// EXCLUSIVE_LOCKS_REQUIRED(prog.methodsMu)
62func (prog *Program) createMethodSet(T types.Type) *methodSet {
63 mset, ok := prog.methodSets.At(T).(*methodSet)
64 if !ok {
65 mset = &methodSet{mapping: make(map[string]*Function)}
66 prog.methodSets.Set(T, mset)
67 }
68 return mset
69}
70
71// EXCLUSIVE_LOCKS_REQUIRED(prog.methodsMu)
72func (prog *Program) addMethod(mset *methodSet, sel *types.Selection) *Function {
73 if sel.Kind() == types.MethodExpr {
74 panic(sel)
75 }
76 id := sel.Obj().Id()
77 fn := mset.mapping[id]
78 if fn == nil {
79 obj := sel.Obj().(*types.Func)
80
81 needsPromotion := len(sel.Index()) > 1
82 needsIndirection := !isPointer(recvType(obj)) && isPointer(sel.Recv())
83 if needsPromotion || needsIndirection {
84 fn = makeWrapper(prog, sel)
85 } else {
86 fn = prog.declaredFunc(obj)
87 }
88 if fn.Signature.Recv() == nil {
89 panic(fn) // missing receiver
90 }
91 mset.mapping[id] = fn
92 }
93 return fn
94}
95
96// RuntimeTypes returns a new unordered slice containing all
97// concrete types in the program for which a complete (non-empty)
98// method set is required at run-time.
99//
100// Thread-safe.
101//
102// EXCLUSIVE_LOCKS_ACQUIRED(prog.methodsMu)
103//
104func (prog *Program) RuntimeTypes() []types.Type {
105 prog.methodsMu.Lock()
106 defer prog.methodsMu.Unlock()
107
108 var res []types.Type
109 prog.methodSets.Iterate(func(T types.Type, v interface{}) {
110 if v.(*methodSet).complete {
111 res = append(res, T)
112 }
113 })
114 return res
115}
116
117// declaredFunc returns the concrete function/method denoted by obj.
118// Panic ensues if there is none.
119//
120func (prog *Program) declaredFunc(obj *types.Func) *Function {
121 if v := prog.packageLevelValue(obj); v != nil {
122 return v.(*Function)
123 }
124 panic("no concrete method: " + obj.String())
125}
126
127// needMethodsOf ensures that runtime type information (including the
128// complete method set) is available for the specified type T and all
129// its subcomponents.
130//
131// needMethodsOf must be called for at least every type that is an
132// operand of some MakeInterface instruction, and for the type of
133// every exported package member.
134//
135// Precondition: T is not a method signature (*Signature with Recv()!=nil).
136//
137// Thread-safe. (Called via emitConv from multiple builder goroutines.)
138//
139// TODO(adonovan): make this faster. It accounts for 20% of SSA build time.
140//
141// EXCLUSIVE_LOCKS_ACQUIRED(prog.methodsMu)
142//
143func (prog *Program) needMethodsOf(T types.Type) {
144 prog.methodsMu.Lock()
145 prog.needMethods(T, false)
146 prog.methodsMu.Unlock()
147}
148
149// Precondition: T is not a method signature (*Signature with Recv()!=nil).
150// Recursive case: skip => don't create methods for T.
151//
152// EXCLUSIVE_LOCKS_REQUIRED(prog.methodsMu)
153//
154func (prog *Program) needMethods(T types.Type, skip bool) {
155 // Each package maintains its own set of types it has visited.
156 if prevSkip, ok := prog.runtimeTypes.At(T).(bool); ok {
157 // needMethods(T) was previously called
158 if !prevSkip || skip {
159 return // already seen, with same or false 'skip' value
160 }
161 }
162 prog.runtimeTypes.Set(T, skip)
163
164 tmset := prog.MethodSets.MethodSet(T)
165
166 if !skip && !isInterface(T) && tmset.Len() > 0 {
167 // Create methods of T.
168 mset := prog.createMethodSet(T)
169 if !mset.complete {
170 mset.complete = true
171 n := tmset.Len()
172 for i := 0; i < n; i++ {
173 prog.addMethod(mset, tmset.At(i))
174 }
175 }
176 }
177
178 // Recursion over signatures of each method.
179 for i := 0; i < tmset.Len(); i++ {
180 sig := tmset.At(i).Type().(*types.Signature)
181 prog.needMethods(sig.Params(), false)
182 prog.needMethods(sig.Results(), false)
183 }
184
185 switch t := T.(type) {
186 case *types.Basic:
187 // nop
188
189 case *types.Interface:
190 // nop---handled by recursion over method set.
191
192 case *types.Pointer:
193 prog.needMethods(t.Elem(), false)
194
195 case *types.Slice:
196 prog.needMethods(t.Elem(), false)
197
198 case *types.Chan:
199 prog.needMethods(t.Elem(), false)
200
201 case *types.Map:
202 prog.needMethods(t.Key(), false)
203 prog.needMethods(t.Elem(), false)
204
205 case *types.Signature:
206 if t.Recv() != nil {
207 panic(fmt.Sprintf("Signature %s has Recv %s", t, t.Recv()))
208 }
209 prog.needMethods(t.Params(), false)
210 prog.needMethods(t.Results(), false)
211
212 case *types.Named:
213 // A pointer-to-named type can be derived from a named
214 // type via reflection. It may have methods too.
215 prog.needMethods(types.NewPointer(T), false)
216
217 // Consider 'type T struct{S}' where S has methods.
218 // Reflection provides no way to get from T to struct{S},
219 // only to S, so the method set of struct{S} is unwanted,
220 // so set 'skip' flag during recursion.
221 prog.needMethods(t.Underlying(), true)
222
223 case *types.Array:
224 prog.needMethods(t.Elem(), false)
225
226 case *types.Struct:
227 for i, n := 0, t.NumFields(); i < n; i++ {
228 prog.needMethods(t.Field(i).Type(), false)
229 }
230
231 case *types.Tuple:
232 for i, n := 0, t.Len(); i < n; i++ {
233 prog.needMethods(t.At(i).Type(), false)
234 }
235
236 default:
237 panic(T)
238 }
239}
diff --git a/vendor/honnef.co/go/tools/ssa/mode.go b/vendor/honnef.co/go/tools/ssa/mode.go
new file mode 100644
index 0000000..d2a2698
--- /dev/null
+++ b/vendor/honnef.co/go/tools/ssa/mode.go
@@ -0,0 +1,100 @@
1// Copyright 2015 The Go Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style
3// license that can be found in the LICENSE file.
4
5package ssa
6
7// This file defines the BuilderMode type and its command-line flag.
8
9import (
10 "bytes"
11 "fmt"
12)
13
14// BuilderMode is a bitmask of options for diagnostics and checking.
15//
16// *BuilderMode satisfies the flag.Value interface. Example:
17//
18// var mode = ssa.BuilderMode(0)
19// func init() { flag.Var(&mode, "build", ssa.BuilderModeDoc) }
20//
21type BuilderMode uint
22
23const (
24 PrintPackages BuilderMode = 1 << iota // Print package inventory to stdout
25 PrintFunctions // Print function SSA code to stdout
26 LogSource // Log source locations as SSA builder progresses
27 SanityCheckFunctions // Perform sanity checking of function bodies
28 NaiveForm // Build naïve SSA form: don't replace local loads/stores with registers
29 BuildSerially // Build packages serially, not in parallel.
30 GlobalDebug // Enable debug info for all packages
31 BareInits // Build init functions without guards or calls to dependent inits
32)
33
34const BuilderModeDoc = `Options controlling the SSA builder.
35The value is a sequence of zero or more of these letters:
36C perform sanity [C]hecking of the SSA form.
37D include [D]ebug info for every function.
38P print [P]ackage inventory.
39F print [F]unction SSA code.
40S log [S]ource locations as SSA builder progresses.
41L build distinct packages seria[L]ly instead of in parallel.
42N build [N]aive SSA form: don't replace local loads/stores with registers.
43I build bare [I]nit functions: no init guards or calls to dependent inits.
44`
45
46func (m BuilderMode) String() string {
47 var buf bytes.Buffer
48 if m&GlobalDebug != 0 {
49 buf.WriteByte('D')
50 }
51 if m&PrintPackages != 0 {
52 buf.WriteByte('P')
53 }
54 if m&PrintFunctions != 0 {
55 buf.WriteByte('F')
56 }
57 if m&LogSource != 0 {
58 buf.WriteByte('S')
59 }
60 if m&SanityCheckFunctions != 0 {
61 buf.WriteByte('C')
62 }
63 if m&NaiveForm != 0 {
64 buf.WriteByte('N')
65 }
66 if m&BuildSerially != 0 {
67 buf.WriteByte('L')
68 }
69 return buf.String()
70}
71
72// Set parses the flag characters in s and updates *m.
73func (m *BuilderMode) Set(s string) error {
74 var mode BuilderMode
75 for _, c := range s {
76 switch c {
77 case 'D':
78 mode |= GlobalDebug
79 case 'P':
80 mode |= PrintPackages
81 case 'F':
82 mode |= PrintFunctions
83 case 'S':
84 mode |= LogSource | BuildSerially
85 case 'C':
86 mode |= SanityCheckFunctions
87 case 'N':
88 mode |= NaiveForm
89 case 'L':
90 mode |= BuildSerially
91 default:
92 return fmt.Errorf("unknown BuilderMode option: %q", c)
93 }
94 }
95 *m = mode
96 return nil
97}
98
99// Get returns m.
100func (m BuilderMode) Get() interface{} { return m }
diff --git a/vendor/honnef.co/go/tools/ssa/print.go b/vendor/honnef.co/go/tools/ssa/print.go
new file mode 100644
index 0000000..6fd2772
--- /dev/null
+++ b/vendor/honnef.co/go/tools/ssa/print.go
@@ -0,0 +1,435 @@
1// Copyright 2013 The Go Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style
3// license that can be found in the LICENSE file.
4
5package ssa
6
7// This file implements the String() methods for all Value and
8// Instruction types.
9
10import (
11 "bytes"
12 "fmt"
13 "go/types"
14 "io"
15 "reflect"
16 "sort"
17
18 "golang.org/x/tools/go/types/typeutil"
19)
20
21// relName returns the name of v relative to i.
22// In most cases, this is identical to v.Name(), but references to
23// Functions (including methods) and Globals use RelString and
24// all types are displayed with relType, so that only cross-package
25// references are package-qualified.
26//
27func relName(v Value, i Instruction) string {
28 var from *types.Package
29 if i != nil {
30 from = i.Parent().pkg()
31 }
32 switch v := v.(type) {
33 case Member: // *Function or *Global
34 return v.RelString(from)
35 case *Const:
36 return v.RelString(from)
37 }
38 return v.Name()
39}
40
41func relType(t types.Type, from *types.Package) string {
42 return types.TypeString(t, types.RelativeTo(from))
43}
44
45func relString(m Member, from *types.Package) string {
46 // NB: not all globals have an Object (e.g. init$guard),
47 // so use Package().Object not Object.Package().
48 if pkg := m.Package().Pkg; pkg != nil && pkg != from {
49 return fmt.Sprintf("%s.%s", pkg.Path(), m.Name())
50 }
51 return m.Name()
52}
53
54// Value.String()
55//
56// This method is provided only for debugging.
57// It never appears in disassembly, which uses Value.Name().
58
59func (v *Parameter) String() string {
60 from := v.Parent().pkg()
61 return fmt.Sprintf("parameter %s : %s", v.Name(), relType(v.Type(), from))
62}
63
64func (v *FreeVar) String() string {
65 from := v.Parent().pkg()
66 return fmt.Sprintf("freevar %s : %s", v.Name(), relType(v.Type(), from))
67}
68
69func (v *Builtin) String() string {
70 return fmt.Sprintf("builtin %s", v.Name())
71}
72
73// Instruction.String()
74
75func (v *Alloc) String() string {
76 op := "local"
77 if v.Heap {
78 op = "new"
79 }
80 from := v.Parent().pkg()
81 return fmt.Sprintf("%s %s (%s)", op, relType(deref(v.Type()), from), v.Comment)
82}
83
84func (v *Phi) String() string {
85 var b bytes.Buffer
86 b.WriteString("phi [")
87 for i, edge := range v.Edges {
88 if i > 0 {
89 b.WriteString(", ")
90 }
91 // Be robust against malformed CFG.
92 if v.block == nil {
93 b.WriteString("??")
94 continue
95 }
96 block := -1
97 if i < len(v.block.Preds) {
98 block = v.block.Preds[i].Index
99 }
100 fmt.Fprintf(&b, "%d: ", block)
101 edgeVal := "<nil>" // be robust
102 if edge != nil {
103 edgeVal = relName(edge, v)
104 }
105 b.WriteString(edgeVal)
106 }
107 b.WriteString("]")
108 if v.Comment != "" {
109 b.WriteString(" #")
110 b.WriteString(v.Comment)
111 }
112 return b.String()
113}
114
115func printCall(v *CallCommon, prefix string, instr Instruction) string {
116 var b bytes.Buffer
117 b.WriteString(prefix)
118 if !v.IsInvoke() {
119 b.WriteString(relName(v.Value, instr))
120 } else {
121 fmt.Fprintf(&b, "invoke %s.%s", relName(v.Value, instr), v.Method.Name())
122 }
123 b.WriteString("(")
124 for i, arg := range v.Args {
125 if i > 0 {
126 b.WriteString(", ")
127 }
128 b.WriteString(relName(arg, instr))
129 }
130 if v.Signature().Variadic() {
131 b.WriteString("...")
132 }
133 b.WriteString(")")
134 return b.String()
135}
136
137func (c *CallCommon) String() string {
138 return printCall(c, "", nil)
139}
140
141func (v *Call) String() string {
142 return printCall(&v.Call, "", v)
143}
144
145func (v *BinOp) String() string {
146 return fmt.Sprintf("%s %s %s", relName(v.X, v), v.Op.String(), relName(v.Y, v))
147}
148
149func (v *UnOp) String() string {
150 return fmt.Sprintf("%s%s%s", v.Op, relName(v.X, v), commaOk(v.CommaOk))
151}
152
153func printConv(prefix string, v, x Value) string {
154 from := v.Parent().pkg()
155 return fmt.Sprintf("%s %s <- %s (%s)",
156 prefix,
157 relType(v.Type(), from),
158 relType(x.Type(), from),
159 relName(x, v.(Instruction)))
160}
161
162func (v *ChangeType) String() string { return printConv("changetype", v, v.X) }
163func (v *Convert) String() string { return printConv("convert", v, v.X) }
164func (v *ChangeInterface) String() string { return printConv("change interface", v, v.X) }
165func (v *MakeInterface) String() string { return printConv("make", v, v.X) }
166
167func (v *MakeClosure) String() string {
168 var b bytes.Buffer
169 fmt.Fprintf(&b, "make closure %s", relName(v.Fn, v))
170 if v.Bindings != nil {
171 b.WriteString(" [")
172 for i, c := range v.Bindings {
173 if i > 0 {
174 b.WriteString(", ")
175 }
176 b.WriteString(relName(c, v))
177 }
178 b.WriteString("]")
179 }
180 return b.String()
181}
182
183func (v *MakeSlice) String() string {
184 from := v.Parent().pkg()
185 return fmt.Sprintf("make %s %s %s",
186 relType(v.Type(), from),
187 relName(v.Len, v),
188 relName(v.Cap, v))
189}
190
191func (v *Slice) String() string {
192 var b bytes.Buffer
193 b.WriteString("slice ")
194 b.WriteString(relName(v.X, v))
195 b.WriteString("[")
196 if v.Low != nil {
197 b.WriteString(relName(v.Low, v))
198 }
199 b.WriteString(":")
200 if v.High != nil {
201 b.WriteString(relName(v.High, v))
202 }
203 if v.Max != nil {
204 b.WriteString(":")
205 b.WriteString(relName(v.Max, v))
206 }
207 b.WriteString("]")
208 return b.String()
209}
210
211func (v *MakeMap) String() string {
212 res := ""
213 if v.Reserve != nil {
214 res = relName(v.Reserve, v)
215 }
216 from := v.Parent().pkg()
217 return fmt.Sprintf("make %s %s", relType(v.Type(), from), res)
218}
219
220func (v *MakeChan) String() string {
221 from := v.Parent().pkg()
222 return fmt.Sprintf("make %s %s", relType(v.Type(), from), relName(v.Size, v))
223}
224
225func (v *FieldAddr) String() string {
226 st := deref(v.X.Type()).Underlying().(*types.Struct)
227 // Be robust against a bad index.
228 name := "?"
229 if 0 <= v.Field && v.Field < st.NumFields() {
230 name = st.Field(v.Field).Name()
231 }
232 return fmt.Sprintf("&%s.%s [#%d]", relName(v.X, v), name, v.Field)
233}
234
235func (v *Field) String() string {
236 st := v.X.Type().Underlying().(*types.Struct)
237 // Be robust against a bad index.
238 name := "?"
239 if 0 <= v.Field && v.Field < st.NumFields() {
240 name = st.Field(v.Field).Name()
241 }
242 return fmt.Sprintf("%s.%s [#%d]", relName(v.X, v), name, v.Field)
243}
244
245func (v *IndexAddr) String() string {
246 return fmt.Sprintf("&%s[%s]", relName(v.X, v), relName(v.Index, v))
247}
248
249func (v *Index) String() string {
250 return fmt.Sprintf("%s[%s]", relName(v.X, v), relName(v.Index, v))
251}
252
253func (v *Lookup) String() string {
254 return fmt.Sprintf("%s[%s]%s", relName(v.X, v), relName(v.Index, v), commaOk(v.CommaOk))
255}
256
257func (v *Range) String() string {
258 return "range " + relName(v.X, v)
259}
260
261func (v *Next) String() string {
262 return "next " + relName(v.Iter, v)
263}
264
265func (v *TypeAssert) String() string {
266 from := v.Parent().pkg()
267 return fmt.Sprintf("typeassert%s %s.(%s)", commaOk(v.CommaOk), relName(v.X, v), relType(v.AssertedType, from))
268}
269
270func (v *Extract) String() string {
271 return fmt.Sprintf("extract %s #%d", relName(v.Tuple, v), v.Index)
272}
273
274func (s *Jump) String() string {
275 // Be robust against malformed CFG.
276 block := -1
277 if s.block != nil && len(s.block.Succs) == 1 {
278 block = s.block.Succs[0].Index
279 }
280 return fmt.Sprintf("jump %d", block)
281}
282
283func (s *If) String() string {
284 // Be robust against malformed CFG.
285 tblock, fblock := -1, -1
286 if s.block != nil && len(s.block.Succs) == 2 {
287 tblock = s.block.Succs[0].Index
288 fblock = s.block.Succs[1].Index
289 }
290 return fmt.Sprintf("if %s goto %d else %d", relName(s.Cond, s), tblock, fblock)
291}
292
293func (s *Go) String() string {
294 return printCall(&s.Call, "go ", s)
295}
296
297func (s *Panic) String() string {
298 return "panic " + relName(s.X, s)
299}
300
301func (s *Return) String() string {
302 var b bytes.Buffer
303 b.WriteString("return")
304 for i, r := range s.Results {
305 if i == 0 {
306 b.WriteString(" ")
307 } else {
308 b.WriteString(", ")
309 }
310 b.WriteString(relName(r, s))
311 }
312 return b.String()
313}
314
315func (*RunDefers) String() string {
316 return "rundefers"
317}
318
319func (s *Send) String() string {
320 return fmt.Sprintf("send %s <- %s", relName(s.Chan, s), relName(s.X, s))
321}
322
323func (s *Defer) String() string {
324 return printCall(&s.Call, "defer ", s)
325}
326
327func (s *Select) String() string {
328 var b bytes.Buffer
329 for i, st := range s.States {
330 if i > 0 {
331 b.WriteString(", ")
332 }
333 if st.Dir == types.RecvOnly {
334 b.WriteString("<-")
335 b.WriteString(relName(st.Chan, s))
336 } else {
337 b.WriteString(relName(st.Chan, s))
338 b.WriteString("<-")
339 b.WriteString(relName(st.Send, s))
340 }
341 }
342 non := ""
343 if !s.Blocking {
344 non = "non"
345 }
346 return fmt.Sprintf("select %sblocking [%s]", non, b.String())
347}
348
349func (s *Store) String() string {
350 return fmt.Sprintf("*%s = %s", relName(s.Addr, s), relName(s.Val, s))
351}
352
353func (s *BlankStore) String() string {
354 return fmt.Sprintf("_ = %s", relName(s.Val, s))
355}
356
357func (s *MapUpdate) String() string {
358 return fmt.Sprintf("%s[%s] = %s", relName(s.Map, s), relName(s.Key, s), relName(s.Value, s))
359}
360
361func (s *DebugRef) String() string {
362 p := s.Parent().Prog.Fset.Position(s.Pos())
363 var descr interface{}
364 if s.object != nil {
365 descr = s.object // e.g. "var x int"
366 } else {
367 descr = reflect.TypeOf(s.Expr) // e.g. "*ast.CallExpr"
368 }
369 var addr string
370 if s.IsAddr {
371 addr = "address of "
372 }
373 return fmt.Sprintf("; %s%s @ %d:%d is %s", addr, descr, p.Line, p.Column, s.X.Name())
374}
375
376func (p *Package) String() string {
377 return "package " + p.Pkg.Path()
378}
379
380var _ io.WriterTo = (*Package)(nil) // *Package implements io.Writer
381
382func (p *Package) WriteTo(w io.Writer) (int64, error) {
383 var buf bytes.Buffer
384 WritePackage(&buf, p)
385 n, err := w.Write(buf.Bytes())
386 return int64(n), err
387}
388
389// WritePackage writes to buf a human-readable summary of p.
390func WritePackage(buf *bytes.Buffer, p *Package) {
391 fmt.Fprintf(buf, "%s:\n", p)
392
393 var names []string
394 maxname := 0
395 for name := range p.Members {
396 if l := len(name); l > maxname {
397 maxname = l
398 }
399 names = append(names, name)
400 }
401
402 from := p.Pkg
403 sort.Strings(names)
404 for _, name := range names {
405 switch mem := p.Members[name].(type) {
406 case *NamedConst:
407 fmt.Fprintf(buf, " const %-*s %s = %s\n",
408 maxname, name, mem.Name(), mem.Value.RelString(from))
409
410 case *Function:
411 fmt.Fprintf(buf, " func %-*s %s\n",
412 maxname, name, relType(mem.Type(), from))
413
414 case *Type:
415 fmt.Fprintf(buf, " type %-*s %s\n",
416 maxname, name, relType(mem.Type().Underlying(), from))
417 for _, meth := range typeutil.IntuitiveMethodSet(mem.Type(), &p.Prog.MethodSets) {
418 fmt.Fprintf(buf, " %s\n", types.SelectionString(meth, types.RelativeTo(from)))
419 }
420
421 case *Global:
422 fmt.Fprintf(buf, " var %-*s %s\n",
423 maxname, name, relType(mem.Type().(*types.Pointer).Elem(), from))
424 }
425 }
426
427 fmt.Fprintf(buf, "\n")
428}
429
430func commaOk(x bool) string {
431 if x {
432 return ",ok"
433 }
434 return ""
435}
diff --git a/vendor/honnef.co/go/tools/ssa/sanity.go b/vendor/honnef.co/go/tools/ssa/sanity.go
new file mode 100644
index 0000000..1d29b66
--- /dev/null
+++ b/vendor/honnef.co/go/tools/ssa/sanity.go
@@ -0,0 +1,535 @@
1// Copyright 2013 The Go Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style
3// license that can be found in the LICENSE file.
4
5package ssa
6
7// An optional pass for sanity-checking invariants of the SSA representation.
8// Currently it checks CFG invariants but little at the instruction level.
9
10import (
11 "fmt"
12 "go/types"
13 "io"
14 "os"
15 "strings"
16)
17
18type sanity struct {
19 reporter io.Writer
20 fn *Function
21 block *BasicBlock
22 instrs map[Instruction]struct{}
23 insane bool
24}
25
26// sanityCheck performs integrity checking of the SSA representation
27// of the function fn and returns true if it was valid. Diagnostics
28// are written to reporter if non-nil, os.Stderr otherwise. Some
29// diagnostics are only warnings and do not imply a negative result.
30//
31// Sanity-checking is intended to facilitate the debugging of code
32// transformation passes.
33//
34func sanityCheck(fn *Function, reporter io.Writer) bool {
35 if reporter == nil {
36 reporter = os.Stderr
37 }
38 return (&sanity{reporter: reporter}).checkFunction(fn)
39}
40
41// mustSanityCheck is like sanityCheck but panics instead of returning
42// a negative result.
43//
44func mustSanityCheck(fn *Function, reporter io.Writer) {
45 if !sanityCheck(fn, reporter) {
46 fn.WriteTo(os.Stderr)
47 panic("SanityCheck failed")
48 }
49}
50
51func (s *sanity) diagnostic(prefix, format string, args ...interface{}) {
52 fmt.Fprintf(s.reporter, "%s: function %s", prefix, s.fn)
53 if s.block != nil {
54 fmt.Fprintf(s.reporter, ", block %s", s.block)
55 }
56 io.WriteString(s.reporter, ": ")
57 fmt.Fprintf(s.reporter, format, args...)
58 io.WriteString(s.reporter, "\n")
59}
60
61func (s *sanity) errorf(format string, args ...interface{}) {
62 s.insane = true
63 s.diagnostic("Error", format, args...)
64}
65
66func (s *sanity) warnf(format string, args ...interface{}) {
67 s.diagnostic("Warning", format, args...)
68}
69
70// findDuplicate returns an arbitrary basic block that appeared more
71// than once in blocks, or nil if all were unique.
72func findDuplicate(blocks []*BasicBlock) *BasicBlock {
73 if len(blocks) < 2 {
74 return nil
75 }
76 if blocks[0] == blocks[1] {
77 return blocks[0]
78 }
79 // Slow path:
80 m := make(map[*BasicBlock]bool)
81 for _, b := range blocks {
82 if m[b] {
83 return b
84 }
85 m[b] = true
86 }
87 return nil
88}
89
90func (s *sanity) checkInstr(idx int, instr Instruction) {
91 switch instr := instr.(type) {
92 case *If, *Jump, *Return, *Panic:
93 s.errorf("control flow instruction not at end of block")
94 case *Phi:
95 if idx == 0 {
96 // It suffices to apply this check to just the first phi node.
97 if dup := findDuplicate(s.block.Preds); dup != nil {
98 s.errorf("phi node in block with duplicate predecessor %s", dup)
99 }
100 } else {
101 prev := s.block.Instrs[idx-1]
102 if _, ok := prev.(*Phi); !ok {
103 s.errorf("Phi instruction follows a non-Phi: %T", prev)
104 }
105 }
106 if ne, np := len(instr.Edges), len(s.block.Preds); ne != np {
107 s.errorf("phi node has %d edges but %d predecessors", ne, np)
108
109 } else {
110 for i, e := range instr.Edges {
111 if e == nil {
112 s.errorf("phi node '%s' has no value for edge #%d from %s", instr.Comment, i, s.block.Preds[i])
113 }
114 }
115 }
116
117 case *Alloc:
118 if !instr.Heap {
119 found := false
120 for _, l := range s.fn.Locals {
121 if l == instr {
122 found = true
123 break
124 }
125 }
126 if !found {
127 s.errorf("local alloc %s = %s does not appear in Function.Locals", instr.Name(), instr)
128 }
129 }
130
131 case *BinOp:
132 case *Call:
133 case *ChangeInterface:
134 case *ChangeType:
135 case *Convert:
136 if _, ok := instr.X.Type().Underlying().(*types.Basic); !ok {
137 if _, ok := instr.Type().Underlying().(*types.Basic); !ok {
138 s.errorf("convert %s -> %s: at least one type must be basic", instr.X.Type(), instr.Type())
139 }
140 }
141
142 case *Defer:
143 case *Extract:
144 case *Field:
145 case *FieldAddr:
146 case *Go:
147 case *Index:
148 case *IndexAddr:
149 case *Lookup:
150 case *MakeChan:
151 case *MakeClosure:
152 numFree := len(instr.Fn.(*Function).FreeVars)
153 numBind := len(instr.Bindings)
154 if numFree != numBind {
155 s.errorf("MakeClosure has %d Bindings for function %s with %d free vars",
156 numBind, instr.Fn, numFree)
157
158 }
159 if recv := instr.Type().(*types.Signature).Recv(); recv != nil {
160 s.errorf("MakeClosure's type includes receiver %s", recv.Type())
161 }
162
163 case *MakeInterface:
164 case *MakeMap:
165 case *MakeSlice:
166 case *MapUpdate:
167 case *Next:
168 case *Range:
169 case *RunDefers:
170 case *Select:
171 case *Send:
172 case *Slice:
173 case *Store:
174 case *TypeAssert:
175 case *UnOp:
176 case *DebugRef:
177 case *BlankStore:
178 case *Sigma:
179 // TODO(adonovan): implement checks.
180 default:
181 panic(fmt.Sprintf("Unknown instruction type: %T", instr))
182 }
183
184 if call, ok := instr.(CallInstruction); ok {
185 if call.Common().Signature() == nil {
186 s.errorf("nil signature: %s", call)
187 }
188 }
189
190 // Check that value-defining instructions have valid types
191 // and a valid referrer list.
192 if v, ok := instr.(Value); ok {
193 t := v.Type()
194 if t == nil {
195 s.errorf("no type: %s = %s", v.Name(), v)
196 } else if t == tRangeIter {
197 // not a proper type; ignore.
198 } else if b, ok := t.Underlying().(*types.Basic); ok && b.Info()&types.IsUntyped != 0 {
199 s.errorf("instruction has 'untyped' result: %s = %s : %s", v.Name(), v, t)
200 }
201 s.checkReferrerList(v)
202 }
203
204 // Untyped constants are legal as instruction Operands(),
205 // for example:
206 // _ = "foo"[0]
207 // or:
208 // if wordsize==64 {...}
209
210 // All other non-Instruction Values can be found via their
211 // enclosing Function or Package.
212}
213
214func (s *sanity) checkFinalInstr(instr Instruction) {
215 switch instr := instr.(type) {
216 case *If:
217 if nsuccs := len(s.block.Succs); nsuccs != 2 {
218 s.errorf("If-terminated block has %d successors; expected 2", nsuccs)
219 return
220 }
221 if s.block.Succs[0] == s.block.Succs[1] {
222 s.errorf("If-instruction has same True, False target blocks: %s", s.block.Succs[0])
223 return
224 }
225
226 case *Jump:
227 if nsuccs := len(s.block.Succs); nsuccs != 1 {
228 s.errorf("Jump-terminated block has %d successors; expected 1", nsuccs)
229 return
230 }
231
232 case *Return:
233 if nsuccs := len(s.block.Succs); nsuccs != 0 {
234 s.errorf("Return-terminated block has %d successors; expected none", nsuccs)
235 return
236 }
237 if na, nf := len(instr.Results), s.fn.Signature.Results().Len(); nf != na {
238 s.errorf("%d-ary return in %d-ary function", na, nf)
239 }
240
241 case *Panic:
242 if nsuccs := len(s.block.Succs); nsuccs != 0 {
243 s.errorf("Panic-terminated block has %d successors; expected none", nsuccs)
244 return
245 }
246
247 default:
248 s.errorf("non-control flow instruction at end of block")
249 }
250}
251
252func (s *sanity) checkBlock(b *BasicBlock, index int) {
253 s.block = b
254
255 if b.Index != index {
256 s.errorf("block has incorrect Index %d", b.Index)
257 }
258 if b.parent != s.fn {
259 s.errorf("block has incorrect parent %s", b.parent)
260 }
261
262 // Check all blocks are reachable.
263 // (The entry block is always implicitly reachable,
264 // as is the Recover block, if any.)
265 if (index > 0 && b != b.parent.Recover) && len(b.Preds) == 0 {
266 s.warnf("unreachable block")
267 if b.Instrs == nil {
268 // Since this block is about to be pruned,
269 // tolerating transient problems in it
270 // simplifies other optimizations.
271 return
272 }
273 }
274
275 // Check predecessor and successor relations are dual,
276 // and that all blocks in CFG belong to same function.
277 for _, a := range b.Preds {
278 found := false
279 for _, bb := range a.Succs {
280 if bb == b {
281 found = true
282 break
283 }
284 }
285 if !found {
286 s.errorf("expected successor edge in predecessor %s; found only: %s", a, a.Succs)
287 }
288 if a.parent != s.fn {
289 s.errorf("predecessor %s belongs to different function %s", a, a.parent)
290 }
291 }
292 for _, c := range b.Succs {
293 found := false
294 for _, bb := range c.Preds {
295 if bb == b {
296 found = true
297 break
298 }
299 }
300 if !found {
301 s.errorf("expected predecessor edge in successor %s; found only: %s", c, c.Preds)
302 }
303 if c.parent != s.fn {
304 s.errorf("successor %s belongs to different function %s", c, c.parent)
305 }
306 }
307
308 // Check each instruction is sane.
309 n := len(b.Instrs)
310 if n == 0 {
311 s.errorf("basic block contains no instructions")
312 }
313 var rands [10]*Value // reuse storage
314 for j, instr := range b.Instrs {
315 if instr == nil {
316 s.errorf("nil instruction at index %d", j)
317 continue
318 }
319 if b2 := instr.Block(); b2 == nil {
320 s.errorf("nil Block() for instruction at index %d", j)
321 continue
322 } else if b2 != b {
323 s.errorf("wrong Block() (%s) for instruction at index %d ", b2, j)
324 continue
325 }
326 if j < n-1 {
327 s.checkInstr(j, instr)
328 } else {
329 s.checkFinalInstr(instr)
330 }
331
332 // Check Instruction.Operands.
333 operands:
334 for i, op := range instr.Operands(rands[:0]) {
335 if op == nil {
336 s.errorf("nil operand pointer %d of %s", i, instr)
337 continue
338 }
339 val := *op
340 if val == nil {
341 continue // a nil operand is ok
342 }
343
344 // Check that "untyped" types only appear on constant operands.
345 if _, ok := (*op).(*Const); !ok {
346 if basic, ok := (*op).Type().(*types.Basic); ok {
347 if basic.Info()&types.IsUntyped != 0 {
348 s.errorf("operand #%d of %s is untyped: %s", i, instr, basic)
349 }
350 }
351 }
352
353 // Check that Operands that are also Instructions belong to same function.
354 // TODO(adonovan): also check their block dominates block b.
355 if val, ok := val.(Instruction); ok {
356 if val.Block() == nil {
357 s.errorf("operand %d of %s is an instruction (%s) that belongs to no block", i, instr, val)
358 } else if val.Parent() != s.fn {
359 s.errorf("operand %d of %s is an instruction (%s) from function %s", i, instr, val, val.Parent())
360 }
361 }
362
363 // Check that each function-local operand of
364 // instr refers back to instr. (NB: quadratic)
365 switch val := val.(type) {
366 case *Const, *Global, *Builtin:
367 continue // not local
368 case *Function:
369 if val.parent == nil {
370 continue // only anon functions are local
371 }
372 }
373
374 // TODO(adonovan): check val.Parent() != nil <=> val.Referrers() is defined.
375
376 if refs := val.Referrers(); refs != nil {
377 for _, ref := range *refs {
378 if ref == instr {
379 continue operands
380 }
381 }
382 s.errorf("operand %d of %s (%s) does not refer to us", i, instr, val)
383 } else {
384 s.errorf("operand %d of %s (%s) has no referrers", i, instr, val)
385 }
386 }
387 }
388}
389
390func (s *sanity) checkReferrerList(v Value) {
391 refs := v.Referrers()
392 if refs == nil {
393 s.errorf("%s has missing referrer list", v.Name())
394 return
395 }
396 for i, ref := range *refs {
397 if _, ok := s.instrs[ref]; !ok {
398 s.errorf("%s.Referrers()[%d] = %s is not an instruction belonging to this function", v.Name(), i, ref)
399 }
400 }
401}
402
403func (s *sanity) checkFunction(fn *Function) bool {
404 // TODO(adonovan): check Function invariants:
405 // - check params match signature
406 // - check transient fields are nil
407 // - warn if any fn.Locals do not appear among block instructions.
408 s.fn = fn
409 if fn.Prog == nil {
410 s.errorf("nil Prog")
411 }
412
413 _ = fn.String() // must not crash
414 _ = fn.RelString(fn.pkg()) // must not crash
415
416 // All functions have a package, except delegates (which are
417 // shared across packages, or duplicated as weak symbols in a
418 // separate-compilation model), and error.Error.
419 if fn.Pkg == nil {
420 if strings.HasPrefix(fn.Synthetic, "wrapper ") ||
421 strings.HasPrefix(fn.Synthetic, "bound ") ||
422 strings.HasPrefix(fn.Synthetic, "thunk ") ||
423 strings.HasSuffix(fn.name, "Error") {
424 // ok
425 } else {
426 s.errorf("nil Pkg")
427 }
428 }
429 if src, syn := fn.Synthetic == "", fn.Syntax() != nil; src != syn {
430 s.errorf("got fromSource=%t, hasSyntax=%t; want same values", src, syn)
431 }
432 for i, l := range fn.Locals {
433 if l.Parent() != fn {
434 s.errorf("Local %s at index %d has wrong parent", l.Name(), i)
435 }
436 if l.Heap {
437 s.errorf("Local %s at index %d has Heap flag set", l.Name(), i)
438 }
439 }
440 // Build the set of valid referrers.
441 s.instrs = make(map[Instruction]struct{})
442 for _, b := range fn.Blocks {
443 for _, instr := range b.Instrs {
444 s.instrs[instr] = struct{}{}
445 }
446 }
447 for i, p := range fn.Params {
448 if p.Parent() != fn {
449 s.errorf("Param %s at index %d has wrong parent", p.Name(), i)
450 }
451 // Check common suffix of Signature and Params match type.
452 if sig := fn.Signature; sig != nil {
453 j := i - len(fn.Params) + sig.Params().Len() // index within sig.Params
454 if j < 0 {
455 continue
456 }
457 if !types.Identical(p.Type(), sig.Params().At(j).Type()) {
458 s.errorf("Param %s at index %d has wrong type (%s, versus %s in Signature)", p.Name(), i, p.Type(), sig.Params().At(j).Type())
459
460 }
461 }
462
463 s.checkReferrerList(p)
464 }
465 for i, fv := range fn.FreeVars {
466 if fv.Parent() != fn {
467 s.errorf("FreeVar %s at index %d has wrong parent", fv.Name(), i)
468 }
469 s.checkReferrerList(fv)
470 }
471
472 if fn.Blocks != nil && len(fn.Blocks) == 0 {
473 // Function _had_ blocks (so it's not external) but
474 // they were "optimized" away, even the entry block.
475 s.errorf("Blocks slice is non-nil but empty")
476 }
477 for i, b := range fn.Blocks {
478 if b == nil {
479 s.warnf("nil *BasicBlock at f.Blocks[%d]", i)
480 continue
481 }
482 s.checkBlock(b, i)
483 }
484 if fn.Recover != nil && fn.Blocks[fn.Recover.Index] != fn.Recover {
485 s.errorf("Recover block is not in Blocks slice")
486 }
487
488 s.block = nil
489 for i, anon := range fn.AnonFuncs {
490 if anon.Parent() != fn {
491 s.errorf("AnonFuncs[%d]=%s but %s.Parent()=%s", i, anon, anon, anon.Parent())
492 }
493 }
494 s.fn = nil
495 return !s.insane
496}
497
498// sanityCheckPackage checks invariants of packages upon creation.
499// It does not require that the package is built.
500// Unlike sanityCheck (for functions), it just panics at the first error.
501func sanityCheckPackage(pkg *Package) {
502 if pkg.Pkg == nil {
503 panic(fmt.Sprintf("Package %s has no Object", pkg))
504 }
505 _ = pkg.String() // must not crash
506
507 for name, mem := range pkg.Members {
508 if name != mem.Name() {
509 panic(fmt.Sprintf("%s: %T.Name() = %s, want %s",
510 pkg.Pkg.Path(), mem, mem.Name(), name))
511 }
512 obj := mem.Object()
513 if obj == nil {
514 // This check is sound because fields
515 // {Global,Function}.object have type
516 // types.Object. (If they were declared as
517 // *types.{Var,Func}, we'd have a non-empty
518 // interface containing a nil pointer.)
519
520 continue // not all members have typechecker objects
521 }
522 if obj.Name() != name {
523 if obj.Name() == "init" && strings.HasPrefix(mem.Name(), "init#") {
524 // Ok. The name of a declared init function varies between
525 // its types.Func ("init") and its ssa.Function ("init#%d").
526 } else {
527 panic(fmt.Sprintf("%s: %T.Object().Name() = %s, want %s",
528 pkg.Pkg.Path(), mem, obj.Name(), name))
529 }
530 }
531 if obj.Pos() != mem.Pos() {
532 panic(fmt.Sprintf("%s Pos=%d obj.Pos=%d", mem, mem.Pos(), obj.Pos()))
533 }
534 }
535}
diff --git a/vendor/honnef.co/go/tools/ssa/source.go b/vendor/honnef.co/go/tools/ssa/source.go
new file mode 100644
index 0000000..8d9cca1
--- /dev/null
+++ b/vendor/honnef.co/go/tools/ssa/source.go
@@ -0,0 +1,293 @@
1// Copyright 2013 The Go Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style
3// license that can be found in the LICENSE file.
4
5package ssa
6
7// This file defines utilities for working with source positions
8// or source-level named entities ("objects").
9
10// TODO(adonovan): test that {Value,Instruction}.Pos() positions match
11// the originating syntax, as specified.
12
13import (
14 "go/ast"
15 "go/token"
16 "go/types"
17)
18
19// EnclosingFunction returns the function that contains the syntax
20// node denoted by path.
21//
22// Syntax associated with package-level variable specifications is
23// enclosed by the package's init() function.
24//
25// Returns nil if not found; reasons might include:
26// - the node is not enclosed by any function.
27// - the node is within an anonymous function (FuncLit) and
28// its SSA function has not been created yet
29// (pkg.Build() has not yet been called).
30//
31func EnclosingFunction(pkg *Package, path []ast.Node) *Function {
32 // Start with package-level function...
33 fn := findEnclosingPackageLevelFunction(pkg, path)
34 if fn == nil {
35 return nil // not in any function
36 }
37
38 // ...then walk down the nested anonymous functions.
39 n := len(path)
40outer:
41 for i := range path {
42 if lit, ok := path[n-1-i].(*ast.FuncLit); ok {
43 for _, anon := range fn.AnonFuncs {
44 if anon.Pos() == lit.Type.Func {
45 fn = anon
46 continue outer
47 }
48 }
49 // SSA function not found:
50 // - package not yet built, or maybe
51 // - builder skipped FuncLit in dead block
52 // (in principle; but currently the Builder
53 // generates even dead FuncLits).
54 return nil
55 }
56 }
57 return fn
58}
59
60// HasEnclosingFunction returns true if the AST node denoted by path
61// is contained within the declaration of some function or
62// package-level variable.
63//
64// Unlike EnclosingFunction, the behaviour of this function does not
65// depend on whether SSA code for pkg has been built, so it can be
66// used to quickly reject check inputs that will cause
67// EnclosingFunction to fail, prior to SSA building.
68//
69func HasEnclosingFunction(pkg *Package, path []ast.Node) bool {
70 return findEnclosingPackageLevelFunction(pkg, path) != nil
71}
72
73// findEnclosingPackageLevelFunction returns the Function
74// corresponding to the package-level function enclosing path.
75//
76func findEnclosingPackageLevelFunction(pkg *Package, path []ast.Node) *Function {
77 if n := len(path); n >= 2 { // [... {Gen,Func}Decl File]
78 switch decl := path[n-2].(type) {
79 case *ast.GenDecl:
80 if decl.Tok == token.VAR && n >= 3 {
81 // Package-level 'var' initializer.
82 return pkg.init
83 }
84
85 case *ast.FuncDecl:
86 if decl.Recv == nil && decl.Name.Name == "init" {
87 // Explicit init() function.
88 for _, b := range pkg.init.Blocks {
89 for _, instr := range b.Instrs {
90 if instr, ok := instr.(*Call); ok {
91 if callee, ok := instr.Call.Value.(*Function); ok && callee.Pkg == pkg && callee.Pos() == decl.Name.NamePos {
92 return callee
93 }
94 }
95 }
96 }
97 // Hack: return non-nil when SSA is not yet
98 // built so that HasEnclosingFunction works.
99 return pkg.init
100 }
101 // Declared function/method.
102 return findNamedFunc(pkg, decl.Name.NamePos)
103 }
104 }
105 return nil // not in any function
106}
107
108// findNamedFunc returns the named function whose FuncDecl.Ident is at
109// position pos.
110//
111func findNamedFunc(pkg *Package, pos token.Pos) *Function {
112 // Look at all package members and method sets of named types.
113 // Not very efficient.
114 for _, mem := range pkg.Members {
115 switch mem := mem.(type) {
116 case *Function:
117 if mem.Pos() == pos {
118 return mem
119 }
120 case *Type:
121 mset := pkg.Prog.MethodSets.MethodSet(types.NewPointer(mem.Type()))
122 for i, n := 0, mset.Len(); i < n; i++ {
123 // Don't call Program.Method: avoid creating wrappers.
124 obj := mset.At(i).Obj().(*types.Func)
125 if obj.Pos() == pos {
126 return pkg.values[obj].(*Function)
127 }
128 }
129 }
130 }
131 return nil
132}
133
134// ValueForExpr returns the SSA Value that corresponds to non-constant
135// expression e.
136//
137// It returns nil if no value was found, e.g.
138// - the expression is not lexically contained within f;
139// - f was not built with debug information; or
140// - e is a constant expression. (For efficiency, no debug
141// information is stored for constants. Use
142// go/types.Info.Types[e].Value instead.)
143// - e is a reference to nil or a built-in function.
144// - the value was optimised away.
145//
146// If e is an addressable expression used in an lvalue context,
147// value is the address denoted by e, and isAddr is true.
148//
149// The types of e (or &e, if isAddr) and the result are equal
150// (modulo "untyped" bools resulting from comparisons).
151//
152// (Tip: to find the ssa.Value given a source position, use
153// astutil.PathEnclosingInterval to locate the ast.Node, then
154// EnclosingFunction to locate the Function, then ValueForExpr to find
155// the ssa.Value.)
156//
157func (f *Function) ValueForExpr(e ast.Expr) (value Value, isAddr bool) {
158 if f.debugInfo() { // (opt)
159 e = unparen(e)
160 for _, b := range f.Blocks {
161 for _, instr := range b.Instrs {
162 if ref, ok := instr.(*DebugRef); ok {
163 if ref.Expr == e {
164 return ref.X, ref.IsAddr
165 }
166 }
167 }
168 }
169 }
170 return
171}
172
173// --- Lookup functions for source-level named entities (types.Objects) ---
174
175// Package returns the SSA Package corresponding to the specified
176// type-checker package object.
177// It returns nil if no such SSA package has been created.
178//
179func (prog *Program) Package(obj *types.Package) *Package {
180 return prog.packages[obj]
181}
182
183// packageLevelValue returns the package-level value corresponding to
184// the specified named object, which may be a package-level const
185// (*Const), var (*Global) or func (*Function) of some package in
186// prog. It returns nil if the object is not found.
187//
188func (prog *Program) packageLevelValue(obj types.Object) Value {
189 if pkg, ok := prog.packages[obj.Pkg()]; ok {
190 return pkg.values[obj]
191 }
192 return nil
193}
194
195// FuncValue returns the concrete Function denoted by the source-level
196// named function obj, or nil if obj denotes an interface method.
197//
198// TODO(adonovan): check the invariant that obj.Type() matches the
199// result's Signature, both in the params/results and in the receiver.
200//
201func (prog *Program) FuncValue(obj *types.Func) *Function {
202 fn, _ := prog.packageLevelValue(obj).(*Function)
203 return fn
204}
205
206// ConstValue returns the SSA Value denoted by the source-level named
207// constant obj.
208//
209func (prog *Program) ConstValue(obj *types.Const) *Const {
210 // TODO(adonovan): opt: share (don't reallocate)
211 // Consts for const objects and constant ast.Exprs.
212
213 // Universal constant? {true,false,nil}
214 if obj.Parent() == types.Universe {
215 return NewConst(obj.Val(), obj.Type())
216 }
217 // Package-level named constant?
218 if v := prog.packageLevelValue(obj); v != nil {
219 return v.(*Const)
220 }
221 return NewConst(obj.Val(), obj.Type())
222}
223
224// VarValue returns the SSA Value that corresponds to a specific
225// identifier denoting the source-level named variable obj.
226//
227// VarValue returns nil if a local variable was not found, perhaps
228// because its package was not built, the debug information was not
229// requested during SSA construction, or the value was optimized away.
230//
231// ref is the path to an ast.Ident (e.g. from PathEnclosingInterval),
232// and that ident must resolve to obj.
233//
234// pkg is the package enclosing the reference. (A reference to a var
235// always occurs within a function, so we need to know where to find it.)
236//
237// If the identifier is a field selector and its base expression is
238// non-addressable, then VarValue returns the value of that field.
239// For example:
240// func f() struct {x int}
241// f().x // VarValue(x) returns a *Field instruction of type int
242//
243// All other identifiers denote addressable locations (variables).
244// For them, VarValue may return either the variable's address or its
245// value, even when the expression is evaluated only for its value; the
246// situation is reported by isAddr, the second component of the result.
247//
248// If !isAddr, the returned value is the one associated with the
249// specific identifier. For example,
250// var x int // VarValue(x) returns Const 0 here
251// x = 1 // VarValue(x) returns Const 1 here
252//
253// It is not specified whether the value or the address is returned in
254// any particular case, as it may depend upon optimizations performed
255// during SSA code generation, such as registerization, constant
256// folding, avoidance of materialization of subexpressions, etc.
257//
258func (prog *Program) VarValue(obj *types.Var, pkg *Package, ref []ast.Node) (value Value, isAddr bool) {
259 // All references to a var are local to some function, possibly init.
260 fn := EnclosingFunction(pkg, ref)
261 if fn == nil {
262 return // e.g. def of struct field; SSA not built?
263 }
264
265 id := ref[0].(*ast.Ident)
266
267 // Defining ident of a parameter?
268 if id.Pos() == obj.Pos() {
269 for _, param := range fn.Params {
270 if param.Object() == obj {
271 return param, false
272 }
273 }
274 }
275
276 // Other ident?
277 for _, b := range fn.Blocks {
278 for _, instr := range b.Instrs {
279 if dr, ok := instr.(*DebugRef); ok {
280 if dr.Pos() == id.Pos() {
281 return dr.X, dr.IsAddr
282 }
283 }
284 }
285 }
286
287 // Defining ident of package-level var?
288 if v := prog.packageLevelValue(obj); v != nil {
289 return v.(*Global), true
290 }
291
292 return // e.g. debug info not requested, or var optimized away
293}
diff --git a/vendor/honnef.co/go/tools/ssa/ssa.go b/vendor/honnef.co/go/tools/ssa/ssa.go
new file mode 100644
index 0000000..aeddd65
--- /dev/null
+++ b/vendor/honnef.co/go/tools/ssa/ssa.go
@@ -0,0 +1,1745 @@
1// Copyright 2013 The Go Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style
3// license that can be found in the LICENSE file.
4
5package ssa
6
7// This package defines a high-level intermediate representation for
8// Go programs using static single-assignment (SSA) form.
9
10import (
11 "fmt"
12 "go/ast"
13 "go/constant"
14 "go/token"
15 "go/types"
16 "sync"
17
18 "golang.org/x/tools/go/types/typeutil"
19)
20
21// A Program is a partial or complete Go program converted to SSA form.
22type Program struct {
23 Fset *token.FileSet // position information for the files of this Program
24 imported map[string]*Package // all importable Packages, keyed by import path
25 packages map[*types.Package]*Package // all loaded Packages, keyed by object
26 mode BuilderMode // set of mode bits for SSA construction
27 MethodSets typeutil.MethodSetCache // cache of type-checker's method-sets
28
29 methodsMu sync.Mutex // guards the following maps:
30 methodSets typeutil.Map // maps type to its concrete methodSet
31 runtimeTypes typeutil.Map // types for which rtypes are needed
32 canon typeutil.Map // type canonicalization map
33 bounds map[*types.Func]*Function // bounds for curried x.Method closures
34 thunks map[selectionKey]*Function // thunks for T.Method expressions
35}
36
37// A Package is a single analyzed Go package containing Members for
38// all package-level functions, variables, constants and types it
39// declares. These may be accessed directly via Members, or via the
40// type-specific accessor methods Func, Type, Var and Const.
41//
42// Members also contains entries for "init" (the synthetic package
43// initializer) and "init#%d", the nth declared init function,
44// and unspecified other things too.
45//
46type Package struct {
47 Prog *Program // the owning program
48 Pkg *types.Package // the corresponding go/types.Package
49 Members map[string]Member // all package members keyed by name (incl. init and init#%d)
50 values map[types.Object]Value // package members (incl. types and methods), keyed by object
51 init *Function // Func("init"); the package's init function
52 debug bool // include full debug info in this package
53
54 // The following fields are set transiently, then cleared
55 // after building.
56 buildOnce sync.Once // ensures package building occurs once
57 ninit int32 // number of init functions
58 info *types.Info // package type information
59 files []*ast.File // package ASTs
60}
61
62// A Member is a member of a Go package, implemented by *NamedConst,
63// *Global, *Function, or *Type; they are created by package-level
64// const, var, func and type declarations respectively.
65//
66type Member interface {
67 Name() string // declared name of the package member
68 String() string // package-qualified name of the package member
69 RelString(*types.Package) string // like String, but relative refs are unqualified
70 Object() types.Object // typechecker's object for this member, if any
71 Pos() token.Pos // position of member's declaration, if known
72 Type() types.Type // type of the package member
73 Token() token.Token // token.{VAR,FUNC,CONST,TYPE}
74 Package() *Package // the containing package
75}
76
77// A Type is a Member of a Package representing a package-level named type.
78type Type struct {
79 object *types.TypeName
80 pkg *Package
81}
82
83// A NamedConst is a Member of a Package representing a package-level
84// named constant.
85//
86// Pos() returns the position of the declaring ast.ValueSpec.Names[*]
87// identifier.
88//
89// NB: a NamedConst is not a Value; it contains a constant Value, which
90// it augments with the name and position of its 'const' declaration.
91//
92type NamedConst struct {
93 object *types.Const
94 Value *Const
95 pkg *Package
96}
97
98// A Value is an SSA value that can be referenced by an instruction.
99type Value interface {
100 // Name returns the name of this value, and determines how
101 // this Value appears when used as an operand of an
102 // Instruction.
103 //
104 // This is the same as the source name for Parameters,
105 // Builtins, Functions, FreeVars, Globals.
106 // For constants, it is a representation of the constant's value
107 // and type. For all other Values this is the name of the
108 // virtual register defined by the instruction.
109 //
110 // The name of an SSA Value is not semantically significant,
111 // and may not even be unique within a function.
112 Name() string
113
114 // If this value is an Instruction, String returns its
115 // disassembled form; otherwise it returns unspecified
116 // human-readable information about the Value, such as its
117 // kind, name and type.
118 String() string
119
120 // Type returns the type of this value. Many instructions
121 // (e.g. IndexAddr) change their behaviour depending on the
122 // types of their operands.
123 Type() types.Type
124
125 // Parent returns the function to which this Value belongs.
126 // It returns nil for named Functions, Builtin, Const and Global.
127 Parent() *Function
128
129 // Referrers returns the list of instructions that have this
130 // value as one of their operands; it may contain duplicates
131 // if an instruction has a repeated operand.
132 //
133 // Referrers actually returns a pointer through which the
134 // caller may perform mutations to the object's state.
135 //
136 // Referrers is currently only defined if Parent()!=nil,
137 // i.e. for the function-local values FreeVar, Parameter,
138 // Functions (iff anonymous) and all value-defining instructions.
139 // It returns nil for named Functions, Builtin, Const and Global.
140 //
141 // Instruction.Operands contains the inverse of this relation.
142 Referrers() *[]Instruction
143
144 // Pos returns the location of the AST token most closely
145 // associated with the operation that gave rise to this value,
146 // or token.NoPos if it was not explicit in the source.
147 //
148 // For each ast.Node type, a particular token is designated as
149 // the closest location for the expression, e.g. the Lparen
150 // for an *ast.CallExpr. This permits a compact but
151 // approximate mapping from Values to source positions for use
152 // in diagnostic messages, for example.
153 //
154 // (Do not use this position to determine which Value
155 // corresponds to an ast.Expr; use Function.ValueForExpr
156 // instead. NB: it requires that the function was built with
157 // debug information.)
158 Pos() token.Pos
159}
160
161// An Instruction is an SSA instruction that computes a new Value or
162// has some effect.
163//
164// An Instruction that defines a value (e.g. BinOp) also implements
165// the Value interface; an Instruction that only has an effect (e.g. Store)
166// does not.
167//
168type Instruction interface {
169 // String returns the disassembled form of this value.
170 //
171 // Examples of Instructions that are Values:
172 // "x + y" (BinOp)
173 // "len([])" (Call)
174 // Note that the name of the Value is not printed.
175 //
176 // Examples of Instructions that are not Values:
177 // "return x" (Return)
178 // "*y = x" (Store)
179 //
180 // (The separation Value.Name() from Value.String() is useful
181 // for some analyses which distinguish the operation from the
182 // value it defines, e.g., 'y = local int' is both an allocation
183 // of memory 'local int' and a definition of a pointer y.)
184 String() string
185
186 // Parent returns the function to which this instruction
187 // belongs.
188 Parent() *Function
189
190 // Block returns the basic block to which this instruction
191 // belongs.
192 Block() *BasicBlock
193
194 // setBlock sets the basic block to which this instruction belongs.
195 setBlock(*BasicBlock)
196
197 // Operands returns the operands of this instruction: the
198 // set of Values it references.
199 //
200 // Specifically, it appends their addresses to rands, a
201 // user-provided slice, and returns the resulting slice,
202 // permitting avoidance of memory allocation.
203 //
204 // The operands are appended in undefined order, but the order
205 // is consistent for a given Instruction; the addresses are
206 // always non-nil but may point to a nil Value. Clients may
207 // store through the pointers, e.g. to effect a value
208 // renaming.
209 //
210 // Value.Referrers is a subset of the inverse of this
211 // relation. (Referrers are not tracked for all types of
212 // Values.)
213 Operands(rands []*Value) []*Value
214
215 // Pos returns the location of the AST token most closely
216 // associated with the operation that gave rise to this
217 // instruction, or token.NoPos if it was not explicit in the
218 // source.
219 //
220 // For each ast.Node type, a particular token is designated as
221 // the closest location for the expression, e.g. the Go token
222 // for an *ast.GoStmt. This permits a compact but approximate
223 // mapping from Instructions to source positions for use in
224 // diagnostic messages, for example.
225 //
226 // (Do not use this position to determine which Instruction
227 // corresponds to an ast.Expr; see the notes for Value.Pos.
228 // This position may be used to determine which non-Value
229 // Instruction corresponds to some ast.Stmts, but not all: If
230 // and Jump instructions have no Pos(), for example.)
231 Pos() token.Pos
232}
233
234// A Node is a node in the SSA value graph. Every concrete type that
235// implements Node is also either a Value, an Instruction, or both.
236//
237// Node contains the methods common to Value and Instruction, plus the
238// Operands and Referrers methods generalized to return nil for
239// non-Instructions and non-Values, respectively.
240//
241// Node is provided to simplify SSA graph algorithms. Clients should
242// use the more specific and informative Value or Instruction
243// interfaces where appropriate.
244//
245type Node interface {
246 // Common methods:
247 String() string
248 Pos() token.Pos
249 Parent() *Function
250
251 // Partial methods:
252 Operands(rands []*Value) []*Value // nil for non-Instructions
253 Referrers() *[]Instruction // nil for non-Values
254}
255
256// Function represents the parameters, results, and code of a function
257// or method.
258//
259// If Blocks is nil, this indicates an external function for which no
260// Go source code is available. In this case, FreeVars and Locals
261// are nil too. Clients performing whole-program analysis must
262// handle external functions specially.
263//
264// Blocks contains the function's control-flow graph (CFG).
265// Blocks[0] is the function entry point; block order is not otherwise
266// semantically significant, though it may affect the readability of
267// the disassembly.
268// To iterate over the blocks in dominance order, use DomPreorder().
269//
270// Recover is an optional second entry point to which control resumes
271// after a recovered panic. The Recover block may contain only a return
272// statement, preceded by a load of the function's named return
273// parameters, if any.
274//
275// A nested function (Parent()!=nil) that refers to one or more
276// lexically enclosing local variables ("free variables") has FreeVars.
277// Such functions cannot be called directly but require a
278// value created by MakeClosure which, via its Bindings, supplies
279// values for these parameters.
280//
281// If the function is a method (Signature.Recv() != nil) then the first
282// element of Params is the receiver parameter.
283//
284// A Go package may declare many functions called "init".
285// For each one, Object().Name() returns "init" but Name() returns
286// "init#1", etc, in declaration order.
287//
288// Pos() returns the declaring ast.FuncLit.Type.Func or the position
289// of the ast.FuncDecl.Name, if the function was explicit in the
290// source. Synthetic wrappers, for which Synthetic != "", may share
291// the same position as the function they wrap.
292// Syntax.Pos() always returns the position of the declaring "func" token.
293//
294// Type() returns the function's Signature.
295//
296type Function struct {
297 name string
298 object types.Object // a declared *types.Func or one of its wrappers
299 method *types.Selection // info about provenance of synthetic methods
300 Signature *types.Signature
301 pos token.Pos
302
303 Synthetic string // provenance of synthetic function; "" for true source functions
304 syntax ast.Node // *ast.Func{Decl,Lit}; replaced with simple ast.Node after build, unless debug mode
305 parent *Function // enclosing function if anon; nil if global
306 Pkg *Package // enclosing package; nil for shared funcs (wrappers and error.Error)
307 Prog *Program // enclosing program
308 Params []*Parameter // function parameters; for methods, includes receiver
309 FreeVars []*FreeVar // free variables whose values must be supplied by closure
310 Locals []*Alloc // local variables of this function
311 Blocks []*BasicBlock // basic blocks of the function; nil => external
312 Recover *BasicBlock // optional; control transfers here after recovered panic
313 AnonFuncs []*Function // anonymous functions directly beneath this one
314 referrers []Instruction // referring instructions (iff Parent() != nil)
315
316 // The following fields are set transiently during building,
317 // then cleared.
318 currentBlock *BasicBlock // where to emit code
319 objects map[types.Object]Value // addresses of local variables
320 namedResults []*Alloc // tuple of named results
321 targets *targets // linked stack of branch targets
322 lblocks map[*ast.Object]*lblock // labelled blocks
323}
324
325// BasicBlock represents an SSA basic block.
326//
327// The final element of Instrs is always an explicit transfer of
328// control (If, Jump, Return, or Panic).
329//
330// A block may contain no Instructions only if it is unreachable,
331// i.e., Preds is nil. Empty blocks are typically pruned.
332//
333// BasicBlocks and their Preds/Succs relation form a (possibly cyclic)
334// graph independent of the SSA Value graph: the control-flow graph or
335// CFG. It is illegal for multiple edges to exist between the same
336// pair of blocks.
337//
338// Each BasicBlock is also a node in the dominator tree of the CFG.
339// The tree may be navigated using Idom()/Dominees() and queried using
340// Dominates().
341//
342// The order of Preds and Succs is significant (to Phi and If
343// instructions, respectively).
344//
345type BasicBlock struct {
346 Index int // index of this block within Parent().Blocks
347 Comment string // optional label; no semantic significance
348 parent *Function // parent function
349 Instrs []Instruction // instructions in order
350 Preds, Succs []*BasicBlock // predecessors and successors
351 succs2 [2]*BasicBlock // initial space for Succs
352 dom domInfo // dominator tree info
353 gaps int // number of nil Instrs (transient)
354 rundefers int // number of rundefers (transient)
355}
356
357// Pure values ----------------------------------------
358
359// A FreeVar represents a free variable of the function to which it
360// belongs.
361//
362// FreeVars are used to implement anonymous functions, whose free
363// variables are lexically captured in a closure formed by
364// MakeClosure. The value of such a free var is an Alloc or another
365// FreeVar and is considered a potentially escaping heap address, with
366// pointer type.
367//
368// FreeVars are also used to implement bound method closures. Such a
369// free var represents the receiver value and may be of any type that
370// has concrete methods.
371//
372// Pos() returns the position of the value that was captured, which
373// belongs to an enclosing function.
374//
375type FreeVar struct {
376 name string
377 typ types.Type
378 pos token.Pos
379 parent *Function
380 referrers []Instruction
381
382 // Transiently needed during building.
383 outer Value // the Value captured from the enclosing context.
384}
385
386// A Parameter represents an input parameter of a function.
387//
388type Parameter struct {
389 name string
390 object types.Object // a *types.Var; nil for non-source locals
391 typ types.Type
392 pos token.Pos
393 parent *Function
394 referrers []Instruction
395}
396
397// A Const represents the value of a constant expression.
398//
399// The underlying type of a constant may be any boolean, numeric, or
400// string type. In addition, a Const may represent the nil value of
401// any reference type---interface, map, channel, pointer, slice, or
402// function---but not "untyped nil".
403//
404// All source-level constant expressions are represented by a Const
405// of the same type and value.
406//
407// Value holds the exact value of the constant, independent of its
408// Type(), using the same representation as package go/constant uses for
409// constants, or nil for a typed nil value.
410//
411// Pos() returns token.NoPos.
412//
413// Example printed form:
414// 42:int
415// "hello":untyped string
416// 3+4i:MyComplex
417//
418type Const struct {
419 typ types.Type
420 Value constant.Value
421}
422
423// A Global is a named Value holding the address of a package-level
424// variable.
425//
426// Pos() returns the position of the ast.ValueSpec.Names[*]
427// identifier.
428//
429type Global struct {
430 name string
431 object types.Object // a *types.Var; may be nil for synthetics e.g. init$guard
432 typ types.Type
433 pos token.Pos
434
435 Pkg *Package
436}
437
438// A Builtin represents a specific use of a built-in function, e.g. len.
439//
440// Builtins are immutable values. Builtins do not have addresses.
441// Builtins can only appear in CallCommon.Func.
442//
443// Name() indicates the function: one of the built-in functions from the
444// Go spec (excluding "make" and "new") or one of these ssa-defined
445// intrinsics:
446//
447// // wrapnilchk returns ptr if non-nil, panics otherwise.
448// // (For use in indirection wrappers.)
449// func ssa:wrapnilchk(ptr *T, recvType, methodName string) *T
450//
451// Object() returns a *types.Builtin for built-ins defined by the spec,
452// nil for others.
453//
454// Type() returns a *types.Signature representing the effective
455// signature of the built-in for this call.
456//
457type Builtin struct {
458 name string
459 sig *types.Signature
460}
461
462// Value-defining instructions ----------------------------------------
463
464// The Alloc instruction reserves space for a variable of the given type,
465// zero-initializes it, and yields its address.
466//
467// Alloc values are always addresses, and have pointer types, so the
468// type of the allocated variable is actually
469// Type().Underlying().(*types.Pointer).Elem().
470//
471// If Heap is false, Alloc allocates space in the function's
472// activation record (frame); we refer to an Alloc(Heap=false) as a
473// "local" alloc. Each local Alloc returns the same address each time
474// it is executed within the same activation; the space is
475// re-initialized to zero.
476//
477// If Heap is true, Alloc allocates space in the heap; we
478// refer to an Alloc(Heap=true) as a "new" alloc. Each new Alloc
479// returns a different address each time it is executed.
480//
481// When Alloc is applied to a channel, map or slice type, it returns
482// the address of an uninitialized (nil) reference of that kind; store
483// the result of MakeSlice, MakeMap or MakeChan in that location to
484// instantiate these types.
485//
486// Pos() returns the ast.CompositeLit.Lbrace for a composite literal,
487// or the ast.CallExpr.Rparen for a call to new() or for a call that
488// allocates a varargs slice.
489//
490// Example printed form:
491// t0 = local int
492// t1 = new int
493//
494type Alloc struct {
495 register
496 Comment string
497 Heap bool
498 index int // dense numbering; for lifting
499}
500
501var _ Instruction = (*Sigma)(nil)
502var _ Value = (*Sigma)(nil)
503
504type Sigma struct {
505 register
506 X Value
507 Branch bool
508}
509
510func (p *Sigma) Value() Value {
511 v := p.X
512 for {
513 sigma, ok := v.(*Sigma)
514 if !ok {
515 break
516 }
517 v = sigma
518 }
519 return v
520}
521
522func (p *Sigma) String() string {
523 return fmt.Sprintf("σ [%s.%t]", relName(p.X, p), p.Branch)
524}
525
526// The Phi instruction represents an SSA φ-node, which combines values
527// that differ across incoming control-flow edges and yields a new
528// value. Within a block, all φ-nodes must appear before all non-φ
529// nodes.
530//
531// Pos() returns the position of the && or || for short-circuit
532// control-flow joins, or that of the *Alloc for φ-nodes inserted
533// during SSA renaming.
534//
535// Example printed form:
536// t2 = phi [0: t0, 1: t1]
537//
538type Phi struct {
539 register
540 Comment string // a hint as to its purpose
541 Edges []Value // Edges[i] is value for Block().Preds[i]
542}
543
544// The Call instruction represents a function or method call.
545//
546// The Call instruction yields the function result if there is exactly
547// one. Otherwise it returns a tuple, the components of which are
548// accessed via Extract.
549//
550// See CallCommon for generic function call documentation.
551//
552// Pos() returns the ast.CallExpr.Lparen, if explicit in the source.
553//
554// Example printed form:
555// t2 = println(t0, t1)
556// t4 = t3()
557// t7 = invoke t5.Println(...t6)
558//
559type Call struct {
560 register
561 Call CallCommon
562}
563
564// The BinOp instruction yields the result of binary operation X Op Y.
565//
566// Pos() returns the ast.BinaryExpr.OpPos, if explicit in the source.
567//
568// Example printed form:
569// t1 = t0 + 1:int
570//
571type BinOp struct {
572 register
573 // One of:
574 // ADD SUB MUL QUO REM + - * / %
575 // AND OR XOR SHL SHR AND_NOT & | ^ << >> &^
576 // EQL NEQ LSS LEQ GTR GEQ == != < <= < >=
577 Op token.Token
578 X, Y Value
579}
580
581// The UnOp instruction yields the result of Op X.
582// ARROW is channel receive.
583// MUL is pointer indirection (load).
584// XOR is bitwise complement.
585// SUB is negation.
586// NOT is logical negation.
587//
588// If CommaOk and Op=ARROW, the result is a 2-tuple of the value above
589// and a boolean indicating the success of the receive. The
590// components of the tuple are accessed using Extract.
591//
592// Pos() returns the ast.UnaryExpr.OpPos, if explicit in the source.
593// For receive operations (ARROW) implicit in ranging over a channel,
594// Pos() returns the ast.RangeStmt.For.
595// For implicit memory loads (STAR), Pos() returns the position of the
596// most closely associated source-level construct; the details are not
597// specified.
598//
599// Example printed form:
600// t0 = *x
601// t2 = <-t1,ok
602//
603type UnOp struct {
604 register
605 Op token.Token // One of: NOT SUB ARROW MUL XOR ! - <- * ^
606 X Value
607 CommaOk bool
608}
609
610// The ChangeType instruction applies to X a value-preserving type
611// change to Type().
612//
613// Type changes are permitted:
614// - between a named type and its underlying type.
615// - between two named types of the same underlying type.
616// - between (possibly named) pointers to identical base types.
617// - from a bidirectional channel to a read- or write-channel,
618// optionally adding/removing a name.
619//
620// This operation cannot fail dynamically.
621//
622// Pos() returns the ast.CallExpr.Lparen, if the instruction arose
623// from an explicit conversion in the source.
624//
625// Example printed form:
626// t1 = changetype *int <- IntPtr (t0)
627//
628type ChangeType struct {
629 register
630 X Value
631}
632
633// The Convert instruction yields the conversion of value X to type
634// Type(). One or both of those types is basic (but possibly named).
635//
636// A conversion may change the value and representation of its operand.
637// Conversions are permitted:
638// - between real numeric types.
639// - between complex numeric types.
640// - between string and []byte or []rune.
641// - between pointers and unsafe.Pointer.
642// - between unsafe.Pointer and uintptr.
643// - from (Unicode) integer to (UTF-8) string.
644// A conversion may imply a type name change also.
645//
646// This operation cannot fail dynamically.
647//
648// Conversions of untyped string/number/bool constants to a specific
649// representation are eliminated during SSA construction.
650//
651// Pos() returns the ast.CallExpr.Lparen, if the instruction arose
652// from an explicit conversion in the source.
653//
654// Example printed form:
655// t1 = convert []byte <- string (t0)
656//
657type Convert struct {
658 register
659 X Value
660}
661
662// ChangeInterface constructs a value of one interface type from a
663// value of another interface type known to be assignable to it.
664// This operation cannot fail.
665//
666// Pos() returns the ast.CallExpr.Lparen if the instruction arose from
667// an explicit T(e) conversion; the ast.TypeAssertExpr.Lparen if the
668// instruction arose from an explicit e.(T) operation; or token.NoPos
669// otherwise.
670//
671// Example printed form:
672// t1 = change interface interface{} <- I (t0)
673//
674type ChangeInterface struct {
675 register
676 X Value
677}
678
679// MakeInterface constructs an instance of an interface type from a
680// value of a concrete type.
681//
682// Use Program.MethodSets.MethodSet(X.Type()) to find the method-set
683// of X, and Program.MethodValue(m) to find the implementation of a method.
684//
685// To construct the zero value of an interface type T, use:
686// NewConst(constant.MakeNil(), T, pos)
687//
688// Pos() returns the ast.CallExpr.Lparen, if the instruction arose
689// from an explicit conversion in the source.
690//
691// Example printed form:
692// t1 = make interface{} <- int (42:int)
693// t2 = make Stringer <- t0
694//
695type MakeInterface struct {
696 register
697 X Value
698}
699
700// The MakeClosure instruction yields a closure value whose code is
701// Fn and whose free variables' values are supplied by Bindings.
702//
703// Type() returns a (possibly named) *types.Signature.
704//
705// Pos() returns the ast.FuncLit.Type.Func for a function literal
706// closure or the ast.SelectorExpr.Sel for a bound method closure.
707//
708// Example printed form:
709// t0 = make closure anon@1.2 [x y z]
710// t1 = make closure bound$(main.I).add [i]
711//
712type MakeClosure struct {
713 register
714 Fn Value // always a *Function
715 Bindings []Value // values for each free variable in Fn.FreeVars
716}
717
718// The MakeMap instruction creates a new hash-table-based map object
719// and yields a value of kind map.
720//
721// Type() returns a (possibly named) *types.Map.
722//
723// Pos() returns the ast.CallExpr.Lparen, if created by make(map), or
724// the ast.CompositeLit.Lbrack if created by a literal.
725//
726// Example printed form:
727// t1 = make map[string]int t0
728// t1 = make StringIntMap t0
729//
730type MakeMap struct {
731 register
732 Reserve Value // initial space reservation; nil => default
733}
734
735// The MakeChan instruction creates a new channel object and yields a
736// value of kind chan.
737//
738// Type() returns a (possibly named) *types.Chan.
739//
740// Pos() returns the ast.CallExpr.Lparen for the make(chan) that
741// created it.
742//
743// Example printed form:
744// t0 = make chan int 0
745// t0 = make IntChan 0
746//
747type MakeChan struct {
748 register
749 Size Value // int; size of buffer; zero => synchronous.
750}
751
752// The MakeSlice instruction yields a slice of length Len backed by a
753// newly allocated array of length Cap.
754//
755// Both Len and Cap must be non-nil Values of integer type.
756//
757// (Alloc(types.Array) followed by Slice will not suffice because
758// Alloc can only create arrays of constant length.)
759//
760// Type() returns a (possibly named) *types.Slice.
761//
762// Pos() returns the ast.CallExpr.Lparen for the make([]T) that
763// created it.
764//
765// Example printed form:
766// t1 = make []string 1:int t0
767// t1 = make StringSlice 1:int t0
768//
769type MakeSlice struct {
770 register
771 Len Value
772 Cap Value
773}
774
775// The Slice instruction yields a slice of an existing string, slice
776// or *array X between optional integer bounds Low and High.
777//
778// Dynamically, this instruction panics if X evaluates to a nil *array
779// pointer.
780//
781// Type() returns string if the type of X was string, otherwise a
782// *types.Slice with the same element type as X.
783//
784// Pos() returns the ast.SliceExpr.Lbrack if created by a x[:] slice
785// operation, the ast.CompositeLit.Lbrace if created by a literal, or
786// NoPos if not explicit in the source (e.g. a variadic argument slice).
787//
788// Example printed form:
789// t1 = slice t0[1:]
790//
791type Slice struct {
792 register
793 X Value // slice, string, or *array
794 Low, High, Max Value // each may be nil
795}
796
797// The FieldAddr instruction yields the address of Field of *struct X.
798//
799// The field is identified by its index within the field list of the
800// struct type of X.
801//
802// Dynamically, this instruction panics if X evaluates to a nil
803// pointer.
804//
805// Type() returns a (possibly named) *types.Pointer.
806//
807// Pos() returns the position of the ast.SelectorExpr.Sel for the
808// field, if explicit in the source.
809//
810// Example printed form:
811// t1 = &t0.name [#1]
812//
813type FieldAddr struct {
814 register
815 X Value // *struct
816 Field int // field is X.Type().Underlying().(*types.Pointer).Elem().Underlying().(*types.Struct).Field(Field)
817}
818
819// The Field instruction yields the Field of struct X.
820//
821// The field is identified by its index within the field list of the
822// struct type of X; by using numeric indices we avoid ambiguity of
823// package-local identifiers and permit compact representations.
824//
825// Pos() returns the position of the ast.SelectorExpr.Sel for the
826// field, if explicit in the source.
827//
828// Example printed form:
829// t1 = t0.name [#1]
830//
831type Field struct {
832 register
833 X Value // struct
834 Field int // index into X.Type().(*types.Struct).Fields
835}
836
837// The IndexAddr instruction yields the address of the element at
838// index Index of collection X. Index is an integer expression.
839//
840// The elements of maps and strings are not addressable; use Lookup or
841// MapUpdate instead.
842//
843// Dynamically, this instruction panics if X evaluates to a nil *array
844// pointer.
845//
846// Type() returns a (possibly named) *types.Pointer.
847//
848// Pos() returns the ast.IndexExpr.Lbrack for the index operation, if
849// explicit in the source.
850//
851// Example printed form:
852// t2 = &t0[t1]
853//
854type IndexAddr struct {
855 register
856 X Value // slice or *array,
857 Index Value // numeric index
858}
859
860// The Index instruction yields element Index of array X.
861//
862// Pos() returns the ast.IndexExpr.Lbrack for the index operation, if
863// explicit in the source.
864//
865// Example printed form:
866// t2 = t0[t1]
867//
868type Index struct {
869 register
870 X Value // array
871 Index Value // integer index
872}
873
874// The Lookup instruction yields element Index of collection X, a map
875// or string. Index is an integer expression if X is a string or the
876// appropriate key type if X is a map.
877//
878// If CommaOk, the result is a 2-tuple of the value above and a
879// boolean indicating the result of a map membership test for the key.
880// The components of the tuple are accessed using Extract.
881//
882// Pos() returns the ast.IndexExpr.Lbrack, if explicit in the source.
883//
884// Example printed form:
885// t2 = t0[t1]
886// t5 = t3[t4],ok
887//
888type Lookup struct {
889 register
890 X Value // string or map
891 Index Value // numeric or key-typed index
892 CommaOk bool // return a value,ok pair
893}
894
895// SelectState is a helper for Select.
896// It represents one goal state and its corresponding communication.
897//
898type SelectState struct {
899 Dir types.ChanDir // direction of case (SendOnly or RecvOnly)
900 Chan Value // channel to use (for send or receive)
901 Send Value // value to send (for send)
902 Pos token.Pos // position of token.ARROW
903 DebugNode ast.Node // ast.SendStmt or ast.UnaryExpr(<-) [debug mode]
904}
905
906// The Select instruction tests whether (or blocks until) one
907// of the specified sent or received states is entered.
908//
909// Let n be the number of States for which Dir==RECV and T_i (0<=i<n)
910// be the element type of each such state's Chan.
911// Select returns an n+2-tuple
912// (index int, recvOk bool, r_0 T_0, ... r_n-1 T_n-1)
913// The tuple's components, described below, must be accessed via the
914// Extract instruction.
915//
916// If Blocking, select waits until exactly one state holds, i.e. a
917// channel becomes ready for the designated operation of sending or
918// receiving; select chooses one among the ready states
919// pseudorandomly, performs the send or receive operation, and sets
920// 'index' to the index of the chosen channel.
921//
922// If !Blocking, select doesn't block if no states hold; instead it
923// returns immediately with index equal to -1.
924//
925// If the chosen channel was used for a receive, the r_i component is
926// set to the received value, where i is the index of that state among
927// all n receive states; otherwise r_i has the zero value of type T_i.
928// Note that the receive index i is not the same as the state
929// index index.
930//
931// The second component of the triple, recvOk, is a boolean whose value
932// is true iff the selected operation was a receive and the receive
933// successfully yielded a value.
934//
935// Pos() returns the ast.SelectStmt.Select.
936//
937// Example printed form:
938// t3 = select nonblocking [<-t0, t1<-t2]
939// t4 = select blocking []
940//
941type Select struct {
942 register
943 States []*SelectState
944 Blocking bool
945}
946
947// The Range instruction yields an iterator over the domain and range
948// of X, which must be a string or map.
949//
950// Elements are accessed via Next.
951//
952// Type() returns an opaque and degenerate "rangeIter" type.
953//
954// Pos() returns the ast.RangeStmt.For.
955//
956// Example printed form:
957// t0 = range "hello":string
958//
959type Range struct {
960 register
961 X Value // string or map
962}
963
964// The Next instruction reads and advances the (map or string)
965// iterator Iter and returns a 3-tuple value (ok, k, v). If the
966// iterator is not exhausted, ok is true and k and v are the next
967// elements of the domain and range, respectively. Otherwise ok is
968// false and k and v are undefined.
969//
970// Components of the tuple are accessed using Extract.
971//
972// The IsString field distinguishes iterators over strings from those
973// over maps, as the Type() alone is insufficient: consider
974// map[int]rune.
975//
976// Type() returns a *types.Tuple for the triple (ok, k, v).
977// The types of k and/or v may be types.Invalid.
978//
979// Example printed form:
980// t1 = next t0
981//
982type Next struct {
983 register
984 Iter Value
985 IsString bool // true => string iterator; false => map iterator.
986}
987
988// The TypeAssert instruction tests whether interface value X has type
989// AssertedType.
990//
991// If !CommaOk, on success it returns v, the result of the conversion
992// (defined below); on failure it panics.
993//
994// If CommaOk: on success it returns a pair (v, true) where v is the
995// result of the conversion; on failure it returns (z, false) where z
996// is AssertedType's zero value. The components of the pair must be
997// accessed using the Extract instruction.
998//
999// If AssertedType is a concrete type, TypeAssert checks whether the
1000// dynamic type in interface X is equal to it, and if so, the result
1001// of the conversion is a copy of the value in the interface.
1002//
1003// If AssertedType is an interface, TypeAssert checks whether the
1004// dynamic type of the interface is assignable to it, and if so, the
1005// result of the conversion is a copy of the interface value X.
1006// If AssertedType is a superinterface of X.Type(), the operation will
1007// fail iff the operand is nil. (Contrast with ChangeInterface, which
1008// performs no nil-check.)
1009//
1010// Type() reflects the actual type of the result, possibly a
1011// 2-types.Tuple; AssertedType is the asserted type.
1012//
1013// Pos() returns the ast.CallExpr.Lparen if the instruction arose from
1014// an explicit T(e) conversion; the ast.TypeAssertExpr.Lparen if the
1015// instruction arose from an explicit e.(T) operation; or the
1016// ast.CaseClause.Case if the instruction arose from a case of a
1017// type-switch statement.
1018//
1019// Example printed form:
1020// t1 = typeassert t0.(int)
1021// t3 = typeassert,ok t2.(T)
1022//
1023type TypeAssert struct {
1024 register
1025 X Value
1026 AssertedType types.Type
1027 CommaOk bool
1028}
1029
1030// The Extract instruction yields component Index of Tuple.
1031//
1032// This is used to access the results of instructions with multiple
1033// return values, such as Call, TypeAssert, Next, UnOp(ARROW) and
1034// IndexExpr(Map).
1035//
1036// Example printed form:
1037// t1 = extract t0 #1
1038//
1039type Extract struct {
1040 register
1041 Tuple Value
1042 Index int
1043}
1044
1045// Instructions executed for effect. They do not yield a value. --------------------
1046
1047// The Jump instruction transfers control to the sole successor of its
1048// owning block.
1049//
1050// A Jump must be the last instruction of its containing BasicBlock.
1051//
1052// Pos() returns NoPos.
1053//
1054// Example printed form:
1055// jump done
1056//
1057type Jump struct {
1058 anInstruction
1059}
1060
1061// The If instruction transfers control to one of the two successors
1062// of its owning block, depending on the boolean Cond: the first if
1063// true, the second if false.
1064//
1065// An If instruction must be the last instruction of its containing
1066// BasicBlock.
1067//
1068// Pos() returns NoPos.
1069//
1070// Example printed form:
1071// if t0 goto done else body
1072//
1073type If struct {
1074 anInstruction
1075 Cond Value
1076}
1077
1078// The Return instruction returns values and control back to the calling
1079// function.
1080//
1081// len(Results) is always equal to the number of results in the
1082// function's signature.
1083//
1084// If len(Results) > 1, Return returns a tuple value with the specified
1085// components which the caller must access using Extract instructions.
1086//
1087// There is no instruction to return a ready-made tuple like those
1088// returned by a "value,ok"-mode TypeAssert, Lookup or UnOp(ARROW) or
1089// a tail-call to a function with multiple result parameters.
1090//
1091// Return must be the last instruction of its containing BasicBlock.
1092// Such a block has no successors.
1093//
1094// Pos() returns the ast.ReturnStmt.Return, if explicit in the source.
1095//
1096// Example printed form:
1097// return
1098// return nil:I, 2:int
1099//
1100type Return struct {
1101 anInstruction
1102 Results []Value
1103 pos token.Pos
1104}
1105
1106// The RunDefers instruction pops and invokes the entire stack of
1107// procedure calls pushed by Defer instructions in this function.
1108//
1109// It is legal to encounter multiple 'rundefers' instructions in a
1110// single control-flow path through a function; this is useful in
1111// the combined init() function, for example.
1112//
1113// Pos() returns NoPos.
1114//
1115// Example printed form:
1116// rundefers
1117//
1118type RunDefers struct {
1119 anInstruction
1120}
1121
1122// The Panic instruction initiates a panic with value X.
1123//
1124// A Panic instruction must be the last instruction of its containing
1125// BasicBlock, which must have no successors.
1126//
1127// NB: 'go panic(x)' and 'defer panic(x)' do not use this instruction;
1128// they are treated as calls to a built-in function.
1129//
1130// Pos() returns the ast.CallExpr.Lparen if this panic was explicit
1131// in the source.
1132//
1133// Example printed form:
1134// panic t0
1135//
1136type Panic struct {
1137 anInstruction
1138 X Value // an interface{}
1139 pos token.Pos
1140}
1141
1142// The Go instruction creates a new goroutine and calls the specified
1143// function within it.
1144//
1145// See CallCommon for generic function call documentation.
1146//
1147// Pos() returns the ast.GoStmt.Go.
1148//
1149// Example printed form:
1150// go println(t0, t1)
1151// go t3()
1152// go invoke t5.Println(...t6)
1153//
1154type Go struct {
1155 anInstruction
1156 Call CallCommon
1157 pos token.Pos
1158}
1159
1160// The Defer instruction pushes the specified call onto a stack of
1161// functions to be called by a RunDefers instruction or by a panic.
1162//
1163// See CallCommon for generic function call documentation.
1164//
1165// Pos() returns the ast.DeferStmt.Defer.
1166//
1167// Example printed form:
1168// defer println(t0, t1)
1169// defer t3()
1170// defer invoke t5.Println(...t6)
1171//
1172type Defer struct {
1173 anInstruction
1174 Call CallCommon
1175 pos token.Pos
1176}
1177
1178// The Send instruction sends X on channel Chan.
1179//
1180// Pos() returns the ast.SendStmt.Arrow, if explicit in the source.
1181//
1182// Example printed form:
1183// send t0 <- t1
1184//
1185type Send struct {
1186 anInstruction
1187 Chan, X Value
1188 pos token.Pos
1189}
1190
1191// The Store instruction stores Val at address Addr.
1192// Stores can be of arbitrary types.
1193//
1194// Pos() returns the position of the source-level construct most closely
1195// associated with the memory store operation.
1196// Since implicit memory stores are numerous and varied and depend upon
1197// implementation choices, the details are not specified.
1198//
1199// Example printed form:
1200// *x = y
1201//
1202type Store struct {
1203 anInstruction
1204 Addr Value
1205 Val Value
1206 pos token.Pos
1207}
1208
1209// The BlankStore instruction is emitted for assignments to the blank
1210// identifier.
1211//
1212// BlankStore is a pseudo-instruction: it has no dynamic effect.
1213//
1214// Pos() returns NoPos.
1215//
1216// Example printed form:
1217// _ = t0
1218//
1219type BlankStore struct {
1220 anInstruction
1221 Val Value
1222}
1223
1224// The MapUpdate instruction updates the association of Map[Key] to
1225// Value.
1226//
1227// Pos() returns the ast.KeyValueExpr.Colon or ast.IndexExpr.Lbrack,
1228// if explicit in the source.
1229//
1230// Example printed form:
1231// t0[t1] = t2
1232//
1233type MapUpdate struct {
1234 anInstruction
1235 Map Value
1236 Key Value
1237 Value Value
1238 pos token.Pos
1239}
1240
1241// A DebugRef instruction maps a source-level expression Expr to the
1242// SSA value X that represents the value (!IsAddr) or address (IsAddr)
1243// of that expression.
1244//
1245// DebugRef is a pseudo-instruction: it has no dynamic effect.
1246//
1247// Pos() returns Expr.Pos(), the start position of the source-level
1248// expression. This is not the same as the "designated" token as
1249// documented at Value.Pos(). e.g. CallExpr.Pos() does not return the
1250// position of the ("designated") Lparen token.
1251//
1252// If Expr is an *ast.Ident denoting a var or func, Object() returns
1253// the object; though this information can be obtained from the type
1254// checker, including it here greatly facilitates debugging.
1255// For non-Ident expressions, Object() returns nil.
1256//
1257// DebugRefs are generated only for functions built with debugging
1258// enabled; see Package.SetDebugMode() and the GlobalDebug builder
1259// mode flag.
1260//
1261// DebugRefs are not emitted for ast.Idents referring to constants or
1262// predeclared identifiers, since they are trivial and numerous.
1263// Nor are they emitted for ast.ParenExprs.
1264//
1265// (By representing these as instructions, rather than out-of-band,
1266// consistency is maintained during transformation passes by the
1267// ordinary SSA renaming machinery.)
1268//
1269// Example printed form:
1270// ; *ast.CallExpr @ 102:9 is t5
1271// ; var x float64 @ 109:72 is x
1272// ; address of *ast.CompositeLit @ 216:10 is t0
1273//
1274type DebugRef struct {
1275 anInstruction
1276 Expr ast.Expr // the referring expression (never *ast.ParenExpr)
1277 object types.Object // the identity of the source var/func
1278 IsAddr bool // Expr is addressable and X is the address it denotes
1279 X Value // the value or address of Expr
1280}
1281
1282// Embeddable mix-ins and helpers for common parts of other structs. -----------
1283
1284// register is a mix-in embedded by all SSA values that are also
1285// instructions, i.e. virtual registers, and provides a uniform
1286// implementation of most of the Value interface: Value.Name() is a
1287// numbered register (e.g. "t0"); the other methods are field accessors.
1288//
1289// Temporary names are automatically assigned to each register on
1290// completion of building a function in SSA form.
1291//
1292// Clients must not assume that the 'id' value (and the Name() derived
1293// from it) is unique within a function. As always in this API,
1294// semantics are determined only by identity; names exist only to
1295// facilitate debugging.
1296//
1297type register struct {
1298 anInstruction
1299 num int // "name" of virtual register, e.g. "t0". Not guaranteed unique.
1300 typ types.Type // type of virtual register
1301 pos token.Pos // position of source expression, or NoPos
1302 referrers []Instruction
1303}
1304
1305// anInstruction is a mix-in embedded by all Instructions.
1306// It provides the implementations of the Block and setBlock methods.
1307type anInstruction struct {
1308 block *BasicBlock // the basic block of this instruction
1309}
1310
1311// CallCommon is contained by Go, Defer and Call to hold the
1312// common parts of a function or method call.
1313//
1314// Each CallCommon exists in one of two modes, function call and
1315// interface method invocation, or "call" and "invoke" for short.
1316//
1317// 1. "call" mode: when Method is nil (!IsInvoke), a CallCommon
1318// represents an ordinary function call of the value in Value,
1319// which may be a *Builtin, a *Function or any other value of kind
1320// 'func'.
1321//
1322// Value may be one of:
1323// (a) a *Function, indicating a statically dispatched call
1324// to a package-level function, an anonymous function, or
1325// a method of a named type.
1326// (b) a *MakeClosure, indicating an immediately applied
1327// function literal with free variables.
1328// (c) a *Builtin, indicating a statically dispatched call
1329// to a built-in function.
1330// (d) any other value, indicating a dynamically dispatched
1331// function call.
1332// StaticCallee returns the identity of the callee in cases
1333// (a) and (b), nil otherwise.
1334//
1335// Args contains the arguments to the call. If Value is a method,
1336// Args[0] contains the receiver parameter.
1337//
1338// Example printed form:
1339// t2 = println(t0, t1)
1340// go t3()
1341// defer t5(...t6)
1342//
1343// 2. "invoke" mode: when Method is non-nil (IsInvoke), a CallCommon
1344// represents a dynamically dispatched call to an interface method.
1345// In this mode, Value is the interface value and Method is the
1346// interface's abstract method. Note: an abstract method may be
1347// shared by multiple interfaces due to embedding; Value.Type()
1348// provides the specific interface used for this call.
1349//
1350// Value is implicitly supplied to the concrete method implementation
1351// as the receiver parameter; in other words, Args[0] holds not the
1352// receiver but the first true argument.
1353//
1354// Example printed form:
1355// t1 = invoke t0.String()
1356// go invoke t3.Run(t2)
1357// defer invoke t4.Handle(...t5)
1358//
1359// For all calls to variadic functions (Signature().Variadic()),
1360// the last element of Args is a slice.
1361//
1362type CallCommon struct {
1363 Value Value // receiver (invoke mode) or func value (call mode)
1364 Method *types.Func // abstract method (invoke mode)
1365 Args []Value // actual parameters (in static method call, includes receiver)
1366 pos token.Pos // position of CallExpr.Lparen, iff explicit in source
1367}
1368
1369// IsInvoke returns true if this call has "invoke" (not "call") mode.
1370func (c *CallCommon) IsInvoke() bool {
1371 return c.Method != nil
1372}
1373
1374func (c *CallCommon) Pos() token.Pos { return c.pos }
1375
1376// Signature returns the signature of the called function.
1377//
1378// For an "invoke"-mode call, the signature of the interface method is
1379// returned.
1380//
1381// In either "call" or "invoke" mode, if the callee is a method, its
1382// receiver is represented by sig.Recv, not sig.Params().At(0).
1383//
1384func (c *CallCommon) Signature() *types.Signature {
1385 if c.Method != nil {
1386 return c.Method.Type().(*types.Signature)
1387 }
1388 return c.Value.Type().Underlying().(*types.Signature)
1389}
1390
1391// StaticCallee returns the callee if this is a trivially static
1392// "call"-mode call to a function.
1393func (c *CallCommon) StaticCallee() *Function {
1394 switch fn := c.Value.(type) {
1395 case *Function:
1396 return fn
1397 case *MakeClosure:
1398 return fn.Fn.(*Function)
1399 }
1400 return nil
1401}
1402
1403// Description returns a description of the mode of this call suitable
1404// for a user interface, e.g., "static method call".
1405func (c *CallCommon) Description() string {
1406 switch fn := c.Value.(type) {
1407 case *Builtin:
1408 return "built-in function call"
1409 case *MakeClosure:
1410 return "static function closure call"
1411 case *Function:
1412 if fn.Signature.Recv() != nil {
1413 return "static method call"
1414 }
1415 return "static function call"
1416 }
1417 if c.IsInvoke() {
1418 return "dynamic method call" // ("invoke" mode)
1419 }
1420 return "dynamic function call"
1421}
1422
1423// The CallInstruction interface, implemented by *Go, *Defer and *Call,
1424// exposes the common parts of function-calling instructions,
1425// yet provides a way back to the Value defined by *Call alone.
1426//
1427type CallInstruction interface {
1428 Instruction
1429 Common() *CallCommon // returns the common parts of the call
1430 Value() *Call // returns the result value of the call (*Call) or nil (*Go, *Defer)
1431}
1432
1433func (s *Call) Common() *CallCommon { return &s.Call }
1434func (s *Defer) Common() *CallCommon { return &s.Call }
1435func (s *Go) Common() *CallCommon { return &s.Call }
1436
1437func (s *Call) Value() *Call { return s }
1438func (s *Defer) Value() *Call { return nil }
1439func (s *Go) Value() *Call { return nil }
1440
1441func (v *Builtin) Type() types.Type { return v.sig }
1442func (v *Builtin) Name() string { return v.name }
1443func (*Builtin) Referrers() *[]Instruction { return nil }
1444func (v *Builtin) Pos() token.Pos { return token.NoPos }
1445func (v *Builtin) Object() types.Object { return types.Universe.Lookup(v.name) }
1446func (v *Builtin) Parent() *Function { return nil }
1447
1448func (v *FreeVar) Type() types.Type { return v.typ }
1449func (v *FreeVar) Name() string { return v.name }
1450func (v *FreeVar) Referrers() *[]Instruction { return &v.referrers }
1451func (v *FreeVar) Pos() token.Pos { return v.pos }
1452func (v *FreeVar) Parent() *Function { return v.parent }
1453
1454func (v *Global) Type() types.Type { return v.typ }
1455func (v *Global) Name() string { return v.name }
1456func (v *Global) Parent() *Function { return nil }
1457func (v *Global) Pos() token.Pos { return v.pos }
1458func (v *Global) Referrers() *[]Instruction { return nil }
1459func (v *Global) Token() token.Token { return token.VAR }
1460func (v *Global) Object() types.Object { return v.object }
1461func (v *Global) String() string { return v.RelString(nil) }
1462func (v *Global) Package() *Package { return v.Pkg }
1463func (v *Global) RelString(from *types.Package) string { return relString(v, from) }
1464
1465func (v *Function) Name() string { return v.name }
1466func (v *Function) Type() types.Type { return v.Signature }
1467func (v *Function) Pos() token.Pos { return v.pos }
1468func (v *Function) Token() token.Token { return token.FUNC }
1469func (v *Function) Object() types.Object { return v.object }
1470func (v *Function) String() string { return v.RelString(nil) }
1471func (v *Function) Package() *Package { return v.Pkg }
1472func (v *Function) Parent() *Function { return v.parent }
1473func (v *Function) Referrers() *[]Instruction {
1474 if v.parent != nil {
1475 return &v.referrers
1476 }
1477 return nil
1478}
1479
1480func (v *Parameter) Type() types.Type { return v.typ }
1481func (v *Parameter) Name() string { return v.name }
1482func (v *Parameter) Object() types.Object { return v.object }
1483func (v *Parameter) Referrers() *[]Instruction { return &v.referrers }
1484func (v *Parameter) Pos() token.Pos { return v.pos }
1485func (v *Parameter) Parent() *Function { return v.parent }
1486
1487func (v *Alloc) Type() types.Type { return v.typ }
1488func (v *Alloc) Referrers() *[]Instruction { return &v.referrers }
1489func (v *Alloc) Pos() token.Pos { return v.pos }
1490
1491func (v *register) Type() types.Type { return v.typ }
1492func (v *register) setType(typ types.Type) { v.typ = typ }
1493func (v *register) Name() string { return fmt.Sprintf("t%d", v.num) }
1494func (v *register) setNum(num int) { v.num = num }
1495func (v *register) Referrers() *[]Instruction { return &v.referrers }
1496func (v *register) Pos() token.Pos { return v.pos }
1497func (v *register) setPos(pos token.Pos) { v.pos = pos }
1498
1499func (v *anInstruction) Parent() *Function { return v.block.parent }
1500func (v *anInstruction) Block() *BasicBlock { return v.block }
1501func (v *anInstruction) setBlock(block *BasicBlock) { v.block = block }
1502func (v *anInstruction) Referrers() *[]Instruction { return nil }
1503
1504func (t *Type) Name() string { return t.object.Name() }
1505func (t *Type) Pos() token.Pos { return t.object.Pos() }
1506func (t *Type) Type() types.Type { return t.object.Type() }
1507func (t *Type) Token() token.Token { return token.TYPE }
1508func (t *Type) Object() types.Object { return t.object }
1509func (t *Type) String() string { return t.RelString(nil) }
1510func (t *Type) Package() *Package { return t.pkg }
1511func (t *Type) RelString(from *types.Package) string { return relString(t, from) }
1512
1513func (c *NamedConst) Name() string { return c.object.Name() }
1514func (c *NamedConst) Pos() token.Pos { return c.object.Pos() }
1515func (c *NamedConst) String() string { return c.RelString(nil) }
1516func (c *NamedConst) Type() types.Type { return c.object.Type() }
1517func (c *NamedConst) Token() token.Token { return token.CONST }
1518func (c *NamedConst) Object() types.Object { return c.object }
1519func (c *NamedConst) Package() *Package { return c.pkg }
1520func (c *NamedConst) RelString(from *types.Package) string { return relString(c, from) }
1521
1522// Func returns the package-level function of the specified name,
1523// or nil if not found.
1524//
1525func (p *Package) Func(name string) (f *Function) {
1526 f, _ = p.Members[name].(*Function)
1527 return
1528}
1529
1530// Var returns the package-level variable of the specified name,
1531// or nil if not found.
1532//
1533func (p *Package) Var(name string) (g *Global) {
1534 g, _ = p.Members[name].(*Global)
1535 return
1536}
1537
1538// Const returns the package-level constant of the specified name,
1539// or nil if not found.
1540//
1541func (p *Package) Const(name string) (c *NamedConst) {
1542 c, _ = p.Members[name].(*NamedConst)
1543 return
1544}
1545
1546// Type returns the package-level type of the specified name,
1547// or nil if not found.
1548//
1549func (p *Package) Type(name string) (t *Type) {
1550 t, _ = p.Members[name].(*Type)
1551 return
1552}
1553
1554func (v *Call) Pos() token.Pos { return v.Call.pos }
1555func (s *Defer) Pos() token.Pos { return s.pos }
1556func (s *Go) Pos() token.Pos { return s.pos }
1557func (s *MapUpdate) Pos() token.Pos { return s.pos }
1558func (s *Panic) Pos() token.Pos { return s.pos }
1559func (s *Return) Pos() token.Pos { return s.pos }
1560func (s *Send) Pos() token.Pos { return s.pos }
1561func (s *Store) Pos() token.Pos { return s.pos }
1562func (s *BlankStore) Pos() token.Pos { return token.NoPos }
1563func (s *If) Pos() token.Pos { return token.NoPos }
1564func (s *Jump) Pos() token.Pos { return token.NoPos }
1565func (s *RunDefers) Pos() token.Pos { return token.NoPos }
1566func (s *DebugRef) Pos() token.Pos { return s.Expr.Pos() }
1567
1568// Operands.
1569
1570func (v *Alloc) Operands(rands []*Value) []*Value {
1571 return rands
1572}
1573
1574func (v *BinOp) Operands(rands []*Value) []*Value {
1575 return append(rands, &v.X, &v.Y)
1576}
1577
1578func (c *CallCommon) Operands(rands []*Value) []*Value {
1579 rands = append(rands, &c.Value)
1580 for i := range c.Args {
1581 rands = append(rands, &c.Args[i])
1582 }
1583 return rands
1584}
1585
1586func (s *Go) Operands(rands []*Value) []*Value {
1587 return s.Call.Operands(rands)
1588}
1589
1590func (s *Call) Operands(rands []*Value) []*Value {
1591 return s.Call.Operands(rands)
1592}
1593
1594func (s *Defer) Operands(rands []*Value) []*Value {
1595 return s.Call.Operands(rands)
1596}
1597
1598func (v *ChangeInterface) Operands(rands []*Value) []*Value {
1599 return append(rands, &v.X)
1600}
1601
1602func (v *ChangeType) Operands(rands []*Value) []*Value {
1603 return append(rands, &v.X)
1604}
1605
1606func (v *Convert) Operands(rands []*Value) []*Value {
1607 return append(rands, &v.X)
1608}
1609
1610func (s *DebugRef) Operands(rands []*Value) []*Value {
1611 return append(rands, &s.X)
1612}
1613
1614func (v *Extract) Operands(rands []*Value) []*Value {
1615 return append(rands, &v.Tuple)
1616}
1617
1618func (v *Field) Operands(rands []*Value) []*Value {
1619 return append(rands, &v.X)
1620}
1621
1622func (v *FieldAddr) Operands(rands []*Value) []*Value {
1623 return append(rands, &v.X)
1624}
1625
1626func (s *If) Operands(rands []*Value) []*Value {
1627 return append(rands, &s.Cond)
1628}
1629
1630func (v *Index) Operands(rands []*Value) []*Value {
1631 return append(rands, &v.X, &v.Index)
1632}
1633
1634func (v *IndexAddr) Operands(rands []*Value) []*Value {
1635 return append(rands, &v.X, &v.Index)
1636}
1637
1638func (*Jump) Operands(rands []*Value) []*Value {
1639 return rands
1640}
1641
1642func (v *Lookup) Operands(rands []*Value) []*Value {
1643 return append(rands, &v.X, &v.Index)
1644}
1645
1646func (v *MakeChan) Operands(rands []*Value) []*Value {
1647 return append(rands, &v.Size)
1648}
1649
1650func (v *MakeClosure) Operands(rands []*Value) []*Value {
1651 rands = append(rands, &v.Fn)
1652 for i := range v.Bindings {
1653 rands = append(rands, &v.Bindings[i])
1654 }
1655 return rands
1656}
1657
1658func (v *MakeInterface) Operands(rands []*Value) []*Value {
1659 return append(rands, &v.X)
1660}
1661
1662func (v *MakeMap) Operands(rands []*Value) []*Value {
1663 return append(rands, &v.Reserve)
1664}
1665
1666func (v *MakeSlice) Operands(rands []*Value) []*Value {
1667 return append(rands, &v.Len, &v.Cap)
1668}
1669
1670func (v *MapUpdate) Operands(rands []*Value) []*Value {
1671 return append(rands, &v.Map, &v.Key, &v.Value)
1672}
1673
1674func (v *Next) Operands(rands []*Value) []*Value {
1675 return append(rands, &v.Iter)
1676}
1677
1678func (s *Panic) Operands(rands []*Value) []*Value {
1679 return append(rands, &s.X)
1680}
1681
1682func (v *Sigma) Operands(rands []*Value) []*Value {
1683 return append(rands, &v.X)
1684}
1685
1686func (v *Phi) Operands(rands []*Value) []*Value {
1687 for i := range v.Edges {
1688 rands = append(rands, &v.Edges[i])
1689 }
1690 return rands
1691}
1692
1693func (v *Range) Operands(rands []*Value) []*Value {
1694 return append(rands, &v.X)
1695}
1696
1697func (s *Return) Operands(rands []*Value) []*Value {
1698 for i := range s.Results {
1699 rands = append(rands, &s.Results[i])
1700 }
1701 return rands
1702}
1703
1704func (*RunDefers) Operands(rands []*Value) []*Value {
1705 return rands
1706}
1707
1708func (v *Select) Operands(rands []*Value) []*Value {
1709 for i := range v.States {
1710 rands = append(rands, &v.States[i].Chan, &v.States[i].Send)
1711 }
1712 return rands
1713}
1714
1715func (s *Send) Operands(rands []*Value) []*Value {
1716 return append(rands, &s.Chan, &s.X)
1717}
1718
1719func (v *Slice) Operands(rands []*Value) []*Value {
1720 return append(rands, &v.X, &v.Low, &v.High, &v.Max)
1721}
1722
1723func (s *Store) Operands(rands []*Value) []*Value {
1724 return append(rands, &s.Addr, &s.Val)
1725}
1726
1727func (s *BlankStore) Operands(rands []*Value) []*Value {
1728 return append(rands, &s.Val)
1729}
1730
1731func (v *TypeAssert) Operands(rands []*Value) []*Value {
1732 return append(rands, &v.X)
1733}
1734
1735func (v *UnOp) Operands(rands []*Value) []*Value {
1736 return append(rands, &v.X)
1737}
1738
1739// Non-Instruction Values:
1740func (v *Builtin) Operands(rands []*Value) []*Value { return rands }
1741func (v *FreeVar) Operands(rands []*Value) []*Value { return rands }
1742func (v *Const) Operands(rands []*Value) []*Value { return rands }
1743func (v *Function) Operands(rands []*Value) []*Value { return rands }
1744func (v *Global) Operands(rands []*Value) []*Value { return rands }
1745func (v *Parameter) Operands(rands []*Value) []*Value { return rands }
diff --git a/vendor/honnef.co/go/tools/ssa/staticcheck.conf b/vendor/honnef.co/go/tools/ssa/staticcheck.conf
new file mode 100644
index 0000000..d7b38bc
--- /dev/null
+++ b/vendor/honnef.co/go/tools/ssa/staticcheck.conf
@@ -0,0 +1,3 @@
1# ssa/... is mostly imported from upstream and we don't want to
2# deviate from it too much, hence disabling SA1019
3checks = ["inherit", "-SA1019"]
diff --git a/vendor/honnef.co/go/tools/ssa/testmain.go b/vendor/honnef.co/go/tools/ssa/testmain.go
new file mode 100644
index 0000000..8ec15ba
--- /dev/null
+++ b/vendor/honnef.co/go/tools/ssa/testmain.go
@@ -0,0 +1,271 @@
1// Copyright 2013 The Go Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style
3// license that can be found in the LICENSE file.
4
5package ssa
6
7// CreateTestMainPackage synthesizes a main package that runs all the
8// tests of the supplied packages.
9// It is closely coupled to $GOROOT/src/cmd/go/test.go and $GOROOT/src/testing.
10//
11// TODO(adonovan): throws this all away now that x/tools/go/packages
12// provides access to the actual synthetic test main files.
13
14import (
15 "bytes"
16 "fmt"
17 "go/ast"
18 "go/parser"
19 "go/types"
20 "log"
21 "os"
22 "strings"
23 "text/template"
24)
25
26// FindTests returns the Test, Benchmark, and Example functions
27// (as defined by "go test") defined in the specified package,
28// and its TestMain function, if any.
29//
30// Deprecated: use x/tools/go/packages to access synthetic testmain packages.
31func FindTests(pkg *Package) (tests, benchmarks, examples []*Function, main *Function) {
32 prog := pkg.Prog
33
34 // The first two of these may be nil: if the program doesn't import "testing",
35 // it can't contain any tests, but it may yet contain Examples.
36 var testSig *types.Signature // func(*testing.T)
37 var benchmarkSig *types.Signature // func(*testing.B)
38 var exampleSig = types.NewSignature(nil, nil, nil, false) // func()
39
40 // Obtain the types from the parameters of testing.MainStart.
41 if testingPkg := prog.ImportedPackage("testing"); testingPkg != nil {
42 mainStart := testingPkg.Func("MainStart")
43 params := mainStart.Signature.Params()
44 testSig = funcField(params.At(1).Type())
45 benchmarkSig = funcField(params.At(2).Type())
46
47 // Does the package define this function?
48 // func TestMain(*testing.M)
49 if f := pkg.Func("TestMain"); f != nil {
50 sig := f.Type().(*types.Signature)
51 starM := mainStart.Signature.Results().At(0).Type() // *testing.M
52 if sig.Results().Len() == 0 &&
53 sig.Params().Len() == 1 &&
54 types.Identical(sig.Params().At(0).Type(), starM) {
55 main = f
56 }
57 }
58 }
59
60 // TODO(adonovan): use a stable order, e.g. lexical.
61 for _, mem := range pkg.Members {
62 if f, ok := mem.(*Function); ok &&
63 ast.IsExported(f.Name()) &&
64 strings.HasSuffix(prog.Fset.Position(f.Pos()).Filename, "_test.go") {
65
66 switch {
67 case testSig != nil && isTestSig(f, "Test", testSig):
68 tests = append(tests, f)
69 case benchmarkSig != nil && isTestSig(f, "Benchmark", benchmarkSig):
70 benchmarks = append(benchmarks, f)
71 case isTestSig(f, "Example", exampleSig):
72 examples = append(examples, f)
73 default:
74 continue
75 }
76 }
77 }
78 return
79}
80
81// Like isTest, but checks the signature too.
82func isTestSig(f *Function, prefix string, sig *types.Signature) bool {
83 return isTest(f.Name(), prefix) && types.Identical(f.Signature, sig)
84}
85
86// Given the type of one of the three slice parameters of testing.Main,
87// returns the function type.
88func funcField(slice types.Type) *types.Signature {
89 return slice.(*types.Slice).Elem().Underlying().(*types.Struct).Field(1).Type().(*types.Signature)
90}
91
92// isTest tells whether name looks like a test (or benchmark, according to prefix).
93// It is a Test (say) if there is a character after Test that is not a lower-case letter.
94// We don't want TesticularCancer.
95// Plundered from $GOROOT/src/cmd/go/test.go
96func isTest(name, prefix string) bool {
97 if !strings.HasPrefix(name, prefix) {
98 return false
99 }
100 if len(name) == len(prefix) { // "Test" is ok
101 return true
102 }
103 return ast.IsExported(name[len(prefix):])
104}
105
106// CreateTestMainPackage creates and returns a synthetic "testmain"
107// package for the specified package if it defines tests, benchmarks or
108// executable examples, or nil otherwise. The new package is named
109// "main" and provides a function named "main" that runs the tests,
110// similar to the one that would be created by the 'go test' tool.
111//
112// Subsequent calls to prog.AllPackages include the new package.
113// The package pkg must belong to the program prog.
114//
115// Deprecated: use x/tools/go/packages to access synthetic testmain packages.
116func (prog *Program) CreateTestMainPackage(pkg *Package) *Package {
117 if pkg.Prog != prog {
118 log.Fatal("Package does not belong to Program")
119 }
120
121 // Template data
122 var data struct {
123 Pkg *Package
124 Tests, Benchmarks, Examples []*Function
125 Main *Function
126 Go18 bool
127 }
128 data.Pkg = pkg
129
130 // Enumerate tests.
131 data.Tests, data.Benchmarks, data.Examples, data.Main = FindTests(pkg)
132 if data.Main == nil &&
133 data.Tests == nil && data.Benchmarks == nil && data.Examples == nil {
134 return nil
135 }
136
137 // Synthesize source for testmain package.
138 path := pkg.Pkg.Path() + "$testmain"
139 tmpl := testmainTmpl
140 if testingPkg := prog.ImportedPackage("testing"); testingPkg != nil {
141 // In Go 1.8, testing.MainStart's first argument is an interface, not a func.
142 data.Go18 = types.IsInterface(testingPkg.Func("MainStart").Signature.Params().At(0).Type())
143 } else {
144 // The program does not import "testing", but FindTests
145 // returned non-nil, which must mean there were Examples
146 // but no Test, Benchmark, or TestMain functions.
147
148 // We'll simply call them from testmain.main; this will
149 // ensure they don't panic, but will not check any
150 // "Output:" comments.
151 // (We should not execute an Example that has no
152 // "Output:" comment, but it's impossible to tell here.)
153 tmpl = examplesOnlyTmpl
154 }
155 var buf bytes.Buffer
156 if err := tmpl.Execute(&buf, data); err != nil {
157 log.Fatalf("internal error expanding template for %s: %v", path, err)
158 }
159 if false { // debugging
160 fmt.Fprintln(os.Stderr, buf.String())
161 }
162
163 // Parse and type-check the testmain package.
164 f, err := parser.ParseFile(prog.Fset, path+".go", &buf, parser.Mode(0))
165 if err != nil {
166 log.Fatalf("internal error parsing %s: %v", path, err)
167 }
168 conf := types.Config{
169 DisableUnusedImportCheck: true,
170 Importer: importer{pkg},
171 }
172 files := []*ast.File{f}
173 info := &types.Info{
174 Types: make(map[ast.Expr]types.TypeAndValue),
175 Defs: make(map[*ast.Ident]types.Object),
176 Uses: make(map[*ast.Ident]types.Object),
177 Implicits: make(map[ast.Node]types.Object),
178 Scopes: make(map[ast.Node]*types.Scope),
179 Selections: make(map[*ast.SelectorExpr]*types.Selection),
180 }
181 testmainPkg, err := conf.Check(path, prog.Fset, files, info)
182 if err != nil {
183 log.Fatalf("internal error type-checking %s: %v", path, err)
184 }
185
186 // Create and build SSA code.
187 testmain := prog.CreatePackage(testmainPkg, files, info, false)
188 testmain.SetDebugMode(false)
189 testmain.Build()
190 testmain.Func("main").Synthetic = "test main function"
191 testmain.Func("init").Synthetic = "package initializer"
192 return testmain
193}
194
195// An implementation of types.Importer for an already loaded SSA program.
196type importer struct {
197 pkg *Package // package under test; may be non-importable
198}
199
200func (imp importer) Import(path string) (*types.Package, error) {
201 if p := imp.pkg.Prog.ImportedPackage(path); p != nil {
202 return p.Pkg, nil
203 }
204 if path == imp.pkg.Pkg.Path() {
205 return imp.pkg.Pkg, nil
206 }
207 return nil, fmt.Errorf("not found") // can't happen
208}
209
210var testmainTmpl = template.Must(template.New("testmain").Parse(`
211package main
212
213import "io"
214import "os"
215import "testing"
216import p {{printf "%q" .Pkg.Pkg.Path}}
217
218{{if .Go18}}
219type deps struct{}
220
221func (deps) ImportPath() string { return "" }
222func (deps) MatchString(pat, str string) (bool, error) { return true, nil }
223func (deps) StartCPUProfile(io.Writer) error { return nil }
224func (deps) StartTestLog(io.Writer) {}
225func (deps) StopCPUProfile() {}
226func (deps) StopTestLog() error { return nil }
227func (deps) WriteHeapProfile(io.Writer) error { return nil }
228func (deps) WriteProfileTo(string, io.Writer, int) error { return nil }
229
230var match deps
231{{else}}
232func match(_, _ string) (bool, error) { return true, nil }
233{{end}}
234
235func main() {
236 tests := []testing.InternalTest{
237{{range .Tests}}
238 { {{printf "%q" .Name}}, p.{{.Name}} },
239{{end}}
240 }
241 benchmarks := []testing.InternalBenchmark{
242{{range .Benchmarks}}
243 { {{printf "%q" .Name}}, p.{{.Name}} },
244{{end}}
245 }
246 examples := []testing.InternalExample{
247{{range .Examples}}
248 {Name: {{printf "%q" .Name}}, F: p.{{.Name}}},
249{{end}}
250 }
251 m := testing.MainStart(match, tests, benchmarks, examples)
252{{with .Main}}
253 p.{{.Name}}(m)
254{{else}}
255 os.Exit(m.Run())
256{{end}}
257}
258
259`))
260
261var examplesOnlyTmpl = template.Must(template.New("examples").Parse(`
262package main
263
264import p {{printf "%q" .Pkg.Pkg.Path}}
265
266func main() {
267{{range .Examples}}
268 p.{{.Name}}()
269{{end}}
270}
271`))
diff --git a/vendor/honnef.co/go/tools/ssa/util.go b/vendor/honnef.co/go/tools/ssa/util.go
new file mode 100644
index 0000000..ddb1184
--- /dev/null
+++ b/vendor/honnef.co/go/tools/ssa/util.go
@@ -0,0 +1,119 @@
1// Copyright 2013 The Go Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style
3// license that can be found in the LICENSE file.
4
5package ssa
6
7// This file defines a number of miscellaneous utility functions.
8
9import (
10 "fmt"
11 "go/ast"
12 "go/token"
13 "go/types"
14 "io"
15 "os"
16
17 "golang.org/x/tools/go/ast/astutil"
18)
19
20//// AST utilities
21
22func unparen(e ast.Expr) ast.Expr { return astutil.Unparen(e) }
23
24// isBlankIdent returns true iff e is an Ident with name "_".
25// They have no associated types.Object, and thus no type.
26//
27func isBlankIdent(e ast.Expr) bool {
28 id, ok := e.(*ast.Ident)
29 return ok && id.Name == "_"
30}
31
32//// Type utilities. Some of these belong in go/types.
33
34// isPointer returns true for types whose underlying type is a pointer.
35func isPointer(typ types.Type) bool {
36 _, ok := typ.Underlying().(*types.Pointer)
37 return ok
38}
39
40func isInterface(T types.Type) bool { return types.IsInterface(T) }
41
42// deref returns a pointer's element type; otherwise it returns typ.
43func deref(typ types.Type) types.Type {
44 if p, ok := typ.Underlying().(*types.Pointer); ok {
45 return p.Elem()
46 }
47 return typ
48}
49
50// recvType returns the receiver type of method obj.
51func recvType(obj *types.Func) types.Type {
52 return obj.Type().(*types.Signature).Recv().Type()
53}
54
55// DefaultType returns the default "typed" type for an "untyped" type;
56// it returns the incoming type for all other types. The default type
57// for untyped nil is untyped nil.
58//
59// Exported to ssa/interp.
60//
61// TODO(adonovan): use go/types.DefaultType after 1.8.
62//
63func DefaultType(typ types.Type) types.Type {
64 if t, ok := typ.(*types.Basic); ok {
65 k := t.Kind()
66 switch k {
67 case types.UntypedBool:
68 k = types.Bool
69 case types.UntypedInt:
70 k = types.Int
71 case types.UntypedRune:
72 k = types.Rune
73 case types.UntypedFloat:
74 k = types.Float64
75 case types.UntypedComplex:
76 k = types.Complex128
77 case types.UntypedString:
78 k = types.String
79 }
80 typ = types.Typ[k]
81 }
82 return typ
83}
84
85// logStack prints the formatted "start" message to stderr and
86// returns a closure that prints the corresponding "end" message.
87// Call using 'defer logStack(...)()' to show builder stack on panic.
88// Don't forget trailing parens!
89//
90func logStack(format string, args ...interface{}) func() {
91 msg := fmt.Sprintf(format, args...)
92 io.WriteString(os.Stderr, msg)
93 io.WriteString(os.Stderr, "\n")
94 return func() {
95 io.WriteString(os.Stderr, msg)
96 io.WriteString(os.Stderr, " end\n")
97 }
98}
99
100// newVar creates a 'var' for use in a types.Tuple.
101func newVar(name string, typ types.Type) *types.Var {
102 return types.NewParam(token.NoPos, nil, name, typ)
103}
104
105// anonVar creates an anonymous 'var' for use in a types.Tuple.
106func anonVar(typ types.Type) *types.Var {
107 return newVar("", typ)
108}
109
110var lenResults = types.NewTuple(anonVar(tInt))
111
112// makeLen returns the len builtin specialized to type func(T)int.
113func makeLen(T types.Type) *Builtin {
114 lenParams := types.NewTuple(anonVar(T))
115 return &Builtin{
116 name: "len",
117 sig: types.NewSignature(nil, lenParams, lenResults, false),
118 }
119}
diff --git a/vendor/honnef.co/go/tools/ssa/wrappers.go b/vendor/honnef.co/go/tools/ssa/wrappers.go
new file mode 100644
index 0000000..a4ae71d
--- /dev/null
+++ b/vendor/honnef.co/go/tools/ssa/wrappers.go
@@ -0,0 +1,290 @@
1// Copyright 2013 The Go Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style
3// license that can be found in the LICENSE file.
4
5package ssa
6
7// This file defines synthesis of Functions that delegate to declared
8// methods; they come in three kinds:
9//
10// (1) wrappers: methods that wrap declared methods, performing
11// implicit pointer indirections and embedded field selections.
12//
13// (2) thunks: funcs that wrap declared methods. Like wrappers,
14// thunks perform indirections and field selections. The thunk's
15// first parameter is used as the receiver for the method call.
16//
17// (3) bounds: funcs that wrap declared methods. The bound's sole
18// free variable, supplied by a closure, is used as the receiver
19// for the method call. No indirections or field selections are
20// performed since they can be done before the call.
21
22import (
23 "fmt"
24
25 "go/types"
26)
27
28// -- wrappers -----------------------------------------------------------
29
30// makeWrapper returns a synthetic method that delegates to the
31// declared method denoted by meth.Obj(), first performing any
32// necessary pointer indirections or field selections implied by meth.
33//
34// The resulting method's receiver type is meth.Recv().
35//
36// This function is versatile but quite subtle! Consider the
37// following axes of variation when making changes:
38// - optional receiver indirection
39// - optional implicit field selections
40// - meth.Obj() may denote a concrete or an interface method
41// - the result may be a thunk or a wrapper.
42//
43// EXCLUSIVE_LOCKS_REQUIRED(prog.methodsMu)
44//
45func makeWrapper(prog *Program, sel *types.Selection) *Function {
46 obj := sel.Obj().(*types.Func) // the declared function
47 sig := sel.Type().(*types.Signature) // type of this wrapper
48
49 var recv *types.Var // wrapper's receiver or thunk's params[0]
50 name := obj.Name()
51 var description string
52 var start int // first regular param
53 if sel.Kind() == types.MethodExpr {
54 name += "$thunk"
55 description = "thunk"
56 recv = sig.Params().At(0)
57 start = 1
58 } else {
59 description = "wrapper"
60 recv = sig.Recv()
61 }
62
63 description = fmt.Sprintf("%s for %s", description, sel.Obj())
64 if prog.mode&LogSource != 0 {
65 defer logStack("make %s to (%s)", description, recv.Type())()
66 }
67 fn := &Function{
68 name: name,
69 method: sel,
70 object: obj,
71 Signature: sig,
72 Synthetic: description,
73 Prog: prog,
74 pos: obj.Pos(),
75 }
76 fn.startBody()
77 fn.addSpilledParam(recv)
78 createParams(fn, start)
79
80 indices := sel.Index()
81
82 var v Value = fn.Locals[0] // spilled receiver
83 if isPointer(sel.Recv()) {
84 v = emitLoad(fn, v)
85
86 // For simple indirection wrappers, perform an informative nil-check:
87 // "value method (T).f called using nil *T pointer"
88 if len(indices) == 1 && !isPointer(recvType(obj)) {
89 var c Call
90 c.Call.Value = &Builtin{
91 name: "ssa:wrapnilchk",
92 sig: types.NewSignature(nil,
93 types.NewTuple(anonVar(sel.Recv()), anonVar(tString), anonVar(tString)),
94 types.NewTuple(anonVar(sel.Recv())), false),
95 }
96 c.Call.Args = []Value{
97 v,
98 stringConst(deref(sel.Recv()).String()),
99 stringConst(sel.Obj().Name()),
100 }
101 c.setType(v.Type())
102 v = fn.emit(&c)
103 }
104 }
105
106 // Invariant: v is a pointer, either
107 // value of *A receiver param, or
108 // address of A spilled receiver.
109
110 // We use pointer arithmetic (FieldAddr possibly followed by
111 // Load) in preference to value extraction (Field possibly
112 // preceded by Load).
113
114 v = emitImplicitSelections(fn, v, indices[:len(indices)-1])
115
116 // Invariant: v is a pointer, either
117 // value of implicit *C field, or
118 // address of implicit C field.
119
120 var c Call
121 if r := recvType(obj); !isInterface(r) { // concrete method
122 if !isPointer(r) {
123 v = emitLoad(fn, v)
124 }
125 c.Call.Value = prog.declaredFunc(obj)
126 c.Call.Args = append(c.Call.Args, v)
127 } else {
128 c.Call.Method = obj
129 c.Call.Value = emitLoad(fn, v)
130 }
131 for _, arg := range fn.Params[1:] {
132 c.Call.Args = append(c.Call.Args, arg)
133 }
134 emitTailCall(fn, &c)
135 fn.finishBody()
136 return fn
137}
138
139// createParams creates parameters for wrapper method fn based on its
140// Signature.Params, which do not include the receiver.
141// start is the index of the first regular parameter to use.
142//
143func createParams(fn *Function, start int) {
144 tparams := fn.Signature.Params()
145 for i, n := start, tparams.Len(); i < n; i++ {
146 fn.addParamObj(tparams.At(i))
147 }
148}
149
150// -- bounds -----------------------------------------------------------
151
152// makeBound returns a bound method wrapper (or "bound"), a synthetic
153// function that delegates to a concrete or interface method denoted
154// by obj. The resulting function has no receiver, but has one free
155// variable which will be used as the method's receiver in the
156// tail-call.
157//
158// Use MakeClosure with such a wrapper to construct a bound method
159// closure. e.g.:
160//
161// type T int or: type T interface { meth() }
162// func (t T) meth()
163// var t T
164// f := t.meth
165// f() // calls t.meth()
166//
167// f is a closure of a synthetic wrapper defined as if by:
168//
169// f := func() { return t.meth() }
170//
171// Unlike makeWrapper, makeBound need perform no indirection or field
172// selections because that can be done before the closure is
173// constructed.
174//
175// EXCLUSIVE_LOCKS_ACQUIRED(meth.Prog.methodsMu)
176//
177func makeBound(prog *Program, obj *types.Func) *Function {
178 prog.methodsMu.Lock()
179 defer prog.methodsMu.Unlock()
180 fn, ok := prog.bounds[obj]
181 if !ok {
182 description := fmt.Sprintf("bound method wrapper for %s", obj)
183 if prog.mode&LogSource != 0 {
184 defer logStack("%s", description)()
185 }
186 fn = &Function{
187 name: obj.Name() + "$bound",
188 object: obj,
189 Signature: changeRecv(obj.Type().(*types.Signature), nil), // drop receiver
190 Synthetic: description,
191 Prog: prog,
192 pos: obj.Pos(),
193 }
194
195 fv := &FreeVar{name: "recv", typ: recvType(obj), parent: fn}
196 fn.FreeVars = []*FreeVar{fv}
197 fn.startBody()
198 createParams(fn, 0)
199 var c Call
200
201 if !isInterface(recvType(obj)) { // concrete
202 c.Call.Value = prog.declaredFunc(obj)
203 c.Call.Args = []Value{fv}
204 } else {
205 c.Call.Value = fv
206 c.Call.Method = obj
207 }
208 for _, arg := range fn.Params {
209 c.Call.Args = append(c.Call.Args, arg)
210 }
211 emitTailCall(fn, &c)
212 fn.finishBody()
213
214 prog.bounds[obj] = fn
215 }
216 return fn
217}
218
219// -- thunks -----------------------------------------------------------
220
221// makeThunk returns a thunk, a synthetic function that delegates to a
222// concrete or interface method denoted by sel.Obj(). The resulting
223// function has no receiver, but has an additional (first) regular
224// parameter.
225//
226// Precondition: sel.Kind() == types.MethodExpr.
227//
228// type T int or: type T interface { meth() }
229// func (t T) meth()
230// f := T.meth
231// var t T
232// f(t) // calls t.meth()
233//
234// f is a synthetic wrapper defined as if by:
235//
236// f := func(t T) { return t.meth() }
237//
238// TODO(adonovan): opt: currently the stub is created even when used
239// directly in a function call: C.f(i, 0). This is less efficient
240// than inlining the stub.
241//
242// EXCLUSIVE_LOCKS_ACQUIRED(meth.Prog.methodsMu)
243//
244func makeThunk(prog *Program, sel *types.Selection) *Function {
245 if sel.Kind() != types.MethodExpr {
246 panic(sel)
247 }
248
249 key := selectionKey{
250 kind: sel.Kind(),
251 recv: sel.Recv(),
252 obj: sel.Obj(),
253 index: fmt.Sprint(sel.Index()),
254 indirect: sel.Indirect(),
255 }
256
257 prog.methodsMu.Lock()
258 defer prog.methodsMu.Unlock()
259
260 // Canonicalize key.recv to avoid constructing duplicate thunks.
261 canonRecv, ok := prog.canon.At(key.recv).(types.Type)
262 if !ok {
263 canonRecv = key.recv
264 prog.canon.Set(key.recv, canonRecv)
265 }
266 key.recv = canonRecv
267
268 fn, ok := prog.thunks[key]
269 if !ok {
270 fn = makeWrapper(prog, sel)
271 if fn.Signature.Recv() != nil {
272 panic(fn) // unexpected receiver
273 }
274 prog.thunks[key] = fn
275 }
276 return fn
277}
278
279func changeRecv(s *types.Signature, recv *types.Var) *types.Signature {
280 return types.NewSignature(recv, s.Params(), s.Results(), s.Variadic())
281}
282
283// selectionKey is like types.Selection but a usable map key.
284type selectionKey struct {
285 kind types.SelectionKind
286 recv types.Type // canonicalized via Program.canon
287 obj types.Object
288 index string
289 indirect bool
290}
diff --git a/vendor/honnef.co/go/tools/ssa/write.go b/vendor/honnef.co/go/tools/ssa/write.go
new file mode 100644
index 0000000..89761a1
--- /dev/null
+++ b/vendor/honnef.co/go/tools/ssa/write.go
@@ -0,0 +1,5 @@
1package ssa
2
3func NewJump(parent *BasicBlock) *Jump {
4 return &Jump{anInstruction{parent}}
5}
diff --git a/vendor/honnef.co/go/tools/ssautil/ssautil.go b/vendor/honnef.co/go/tools/ssautil/ssautil.go
new file mode 100644
index 0000000..72c3c91
--- /dev/null
+++ b/vendor/honnef.co/go/tools/ssautil/ssautil.go
@@ -0,0 +1,58 @@
1package ssautil
2
3import (
4 "honnef.co/go/tools/ssa"
5)
6
7func Reachable(from, to *ssa.BasicBlock) bool {
8 if from == to {
9 return true
10 }
11 if from.Dominates(to) {
12 return true
13 }
14
15 found := false
16 Walk(from, func(b *ssa.BasicBlock) bool {
17 if b == to {
18 found = true
19 return false
20 }
21 return true
22 })
23 return found
24}
25
26func Walk(b *ssa.BasicBlock, fn func(*ssa.BasicBlock) bool) {
27 seen := map[*ssa.BasicBlock]bool{}
28 wl := []*ssa.BasicBlock{b}
29 for len(wl) > 0 {
30 b := wl[len(wl)-1]
31 wl = wl[:len(wl)-1]
32 if seen[b] {
33 continue
34 }
35 seen[b] = true
36 if !fn(b) {
37 continue
38 }
39 wl = append(wl, b.Succs...)
40 }
41}
42
43func Vararg(x *ssa.Slice) ([]ssa.Value, bool) {
44 var out []ssa.Value
45 slice, ok := x.X.(*ssa.Alloc)
46 if !ok || slice.Comment != "varargs" {
47 return nil, false
48 }
49 for _, ref := range *slice.Referrers() {
50 idx, ok := ref.(*ssa.IndexAddr)
51 if !ok {
52 continue
53 }
54 v := (*idx.Referrers())[0].(*ssa.Store).Val
55 out = append(out, v)
56 }
57 return out, true
58}
diff --git a/vendor/honnef.co/go/tools/staticcheck/CONTRIBUTING.md b/vendor/honnef.co/go/tools/staticcheck/CONTRIBUTING.md
new file mode 100644
index 0000000..b12c7af
--- /dev/null
+++ b/vendor/honnef.co/go/tools/staticcheck/CONTRIBUTING.md
@@ -0,0 +1,15 @@
1# Contributing to staticcheck
2
3## Before filing an issue:
4
5### Are you having trouble building staticcheck?
6
7Check you have the latest version of its dependencies. Run
8```
9go get -u honnef.co/go/tools/staticcheck
10```
11If you still have problems, consider searching for existing issues before filing a new issue.
12
13## Before sending a pull request:
14
15Have you understood the purpose of staticcheck? Make sure to carefully read `README`.
diff --git a/vendor/honnef.co/go/tools/staticcheck/analysis.go b/vendor/honnef.co/go/tools/staticcheck/analysis.go
new file mode 100644
index 0000000..442aebe
--- /dev/null
+++ b/vendor/honnef.co/go/tools/staticcheck/analysis.go
@@ -0,0 +1,525 @@
1package staticcheck
2
3import (
4 "flag"
5
6 "honnef.co/go/tools/facts"
7 "honnef.co/go/tools/internal/passes/buildssa"
8 "honnef.co/go/tools/lint/lintutil"
9
10 "golang.org/x/tools/go/analysis"
11 "golang.org/x/tools/go/analysis/passes/inspect"
12)
13
14func newFlagSet() flag.FlagSet {
15 fs := flag.NewFlagSet("", flag.PanicOnError)
16 fs.Var(lintutil.NewVersionFlag(), "go", "Target Go version")
17 return *fs
18}
19
20var Analyzers = map[string]*analysis.Analyzer{
21 "SA1000": {
22 Name: "SA1000",
23 Run: callChecker(checkRegexpRules),
24 Doc: Docs["SA1000"].String(),
25 Requires: []*analysis.Analyzer{buildssa.Analyzer, valueRangesAnalyzer},
26 Flags: newFlagSet(),
27 },
28 "SA1001": {
29 Name: "SA1001",
30 Run: CheckTemplate,
31 Doc: Docs["SA1001"].String(),
32 Requires: []*analysis.Analyzer{inspect.Analyzer},
33 Flags: newFlagSet(),
34 },
35 "SA1002": {
36 Name: "SA1002",
37 Run: callChecker(checkTimeParseRules),
38 Doc: Docs["SA1002"].String(),
39 Requires: []*analysis.Analyzer{buildssa.Analyzer, valueRangesAnalyzer},
40 Flags: newFlagSet(),
41 },
42 "SA1003": {
43 Name: "SA1003",
44 Run: callChecker(checkEncodingBinaryRules),
45 Doc: Docs["SA1003"].String(),
46 Requires: []*analysis.Analyzer{buildssa.Analyzer, valueRangesAnalyzer},
47 Flags: newFlagSet(),
48 },
49 "SA1004": {
50 Name: "SA1004",
51 Run: CheckTimeSleepConstant,
52 Doc: Docs["SA1004"].String(),
53 Requires: []*analysis.Analyzer{inspect.Analyzer},
54 Flags: newFlagSet(),
55 },
56 "SA1005": {
57 Name: "SA1005",
58 Run: CheckExec,
59 Doc: Docs["SA1005"].String(),
60 Requires: []*analysis.Analyzer{inspect.Analyzer},
61 Flags: newFlagSet(),
62 },
63 "SA1006": {
64 Name: "SA1006",
65 Run: CheckUnsafePrintf,
66 Doc: Docs["SA1006"].String(),
67 Requires: []*analysis.Analyzer{inspect.Analyzer},
68 Flags: newFlagSet(),
69 },
70 "SA1007": {
71 Name: "SA1007",
72 Run: callChecker(checkURLsRules),
73 Doc: Docs["SA1007"].String(),
74 Requires: []*analysis.Analyzer{buildssa.Analyzer, valueRangesAnalyzer},
75 Flags: newFlagSet(),
76 },
77 "SA1008": {
78 Name: "SA1008",
79 Run: CheckCanonicalHeaderKey,
80 Doc: Docs["SA1008"].String(),
81 Requires: []*analysis.Analyzer{inspect.Analyzer},
82 Flags: newFlagSet(),
83 },
84 "SA1010": {
85 Name: "SA1010",
86 Run: callChecker(checkRegexpFindAllRules),
87 Doc: Docs["SA1010"].String(),
88 Requires: []*analysis.Analyzer{buildssa.Analyzer, valueRangesAnalyzer},
89 Flags: newFlagSet(),
90 },
91 "SA1011": {
92 Name: "SA1011",
93 Run: callChecker(checkUTF8CutsetRules),
94 Doc: Docs["SA1011"].String(),
95 Requires: []*analysis.Analyzer{buildssa.Analyzer, valueRangesAnalyzer},
96 Flags: newFlagSet(),
97 },
98 "SA1012": {
99 Name: "SA1012",
100 Run: CheckNilContext,
101 Doc: Docs["SA1012"].String(),
102 Requires: []*analysis.Analyzer{inspect.Analyzer},
103 Flags: newFlagSet(),
104 },
105 "SA1013": {
106 Name: "SA1013",
107 Run: CheckSeeker,
108 Doc: Docs["SA1013"].String(),
109 Requires: []*analysis.Analyzer{inspect.Analyzer},
110 Flags: newFlagSet(),
111 },
112 "SA1014": {
113 Name: "SA1014",
114 Run: callChecker(checkUnmarshalPointerRules),
115 Doc: Docs["SA1014"].String(),
116 Requires: []*analysis.Analyzer{buildssa.Analyzer, valueRangesAnalyzer},
117 Flags: newFlagSet(),
118 },
119 "SA1015": {
120 Name: "SA1015",
121 Run: CheckLeakyTimeTick,
122 Doc: Docs["SA1015"].String(),
123 Requires: []*analysis.Analyzer{buildssa.Analyzer},
124 Flags: newFlagSet(),
125 },
126 "SA1016": {
127 Name: "SA1016",
128 Run: CheckUntrappableSignal,
129 Doc: Docs["SA1016"].String(),
130 Requires: []*analysis.Analyzer{inspect.Analyzer},
131 Flags: newFlagSet(),
132 },
133 "SA1017": {
134 Name: "SA1017",
135 Run: callChecker(checkUnbufferedSignalChanRules),
136 Doc: Docs["SA1017"].String(),
137 Requires: []*analysis.Analyzer{buildssa.Analyzer, valueRangesAnalyzer},
138 Flags: newFlagSet(),
139 },
140 "SA1018": {
141 Name: "SA1018",
142 Run: callChecker(checkStringsReplaceZeroRules),
143 Doc: Docs["SA1018"].String(),
144 Requires: []*analysis.Analyzer{buildssa.Analyzer, valueRangesAnalyzer},
145 Flags: newFlagSet(),
146 },
147 "SA1019": {
148 Name: "SA1019",
149 Run: CheckDeprecated,
150 Doc: Docs["SA1019"].String(),
151 Requires: []*analysis.Analyzer{inspect.Analyzer, facts.Deprecated},
152 Flags: newFlagSet(),
153 },
154 "SA1020": {
155 Name: "SA1020",
156 Run: callChecker(checkListenAddressRules),
157 Doc: Docs["SA1020"].String(),
158 Requires: []*analysis.Analyzer{buildssa.Analyzer, valueRangesAnalyzer},
159 Flags: newFlagSet(),
160 },
161 "SA1021": {
162 Name: "SA1021",
163 Run: callChecker(checkBytesEqualIPRules),
164 Doc: Docs["SA1021"].String(),
165 Requires: []*analysis.Analyzer{buildssa.Analyzer, valueRangesAnalyzer},
166 Flags: newFlagSet(),
167 },
168 "SA1023": {
169 Name: "SA1023",
170 Run: CheckWriterBufferModified,
171 Doc: Docs["SA1023"].String(),
172 Requires: []*analysis.Analyzer{buildssa.Analyzer},
173 Flags: newFlagSet(),
174 },
175 "SA1024": {
176 Name: "SA1024",
177 Run: callChecker(checkUniqueCutsetRules),
178 Doc: Docs["SA1024"].String(),
179 Requires: []*analysis.Analyzer{buildssa.Analyzer, valueRangesAnalyzer},
180 Flags: newFlagSet(),
181 },
182 "SA1025": {
183 Name: "SA1025",
184 Run: CheckTimerResetReturnValue,
185 Doc: Docs["SA1025"].String(),
186 Requires: []*analysis.Analyzer{buildssa.Analyzer},
187 Flags: newFlagSet(),
188 },
189 "SA1026": {
190 Name: "SA1026",
191 Run: callChecker(checkUnsupportedMarshal),
192 Doc: Docs["SA1026"].String(),
193 Requires: []*analysis.Analyzer{buildssa.Analyzer, valueRangesAnalyzer},
194 Flags: newFlagSet(),
195 },
196 "SA1027": {
197 Name: "SA1027",
198 Run: callChecker(checkAtomicAlignment),
199 Doc: Docs["SA1027"].String(),
200 Requires: []*analysis.Analyzer{buildssa.Analyzer, valueRangesAnalyzer},
201 Flags: newFlagSet(),
202 },
203
204 "SA2000": {
205 Name: "SA2000",
206 Run: CheckWaitgroupAdd,
207 Doc: Docs["SA2000"].String(),
208 Requires: []*analysis.Analyzer{inspect.Analyzer},
209 Flags: newFlagSet(),
210 },
211 "SA2001": {
212 Name: "SA2001",
213 Run: CheckEmptyCriticalSection,
214 Doc: Docs["SA2001"].String(),
215 Requires: []*analysis.Analyzer{inspect.Analyzer},
216 Flags: newFlagSet(),
217 },
218 "SA2002": {
219 Name: "SA2002",
220 Run: CheckConcurrentTesting,
221 Doc: Docs["SA2002"].String(),
222 Requires: []*analysis.Analyzer{buildssa.Analyzer},
223 Flags: newFlagSet(),
224 },
225 "SA2003": {
226 Name: "SA2003",
227 Run: CheckDeferLock,
228 Doc: Docs["SA2003"].String(),
229 Requires: []*analysis.Analyzer{buildssa.Analyzer},
230 Flags: newFlagSet(),
231 },
232
233 "SA3000": {
234 Name: "SA3000",
235 Run: CheckTestMainExit,
236 Doc: Docs["SA3000"].String(),
237 Requires: []*analysis.Analyzer{inspect.Analyzer},
238 Flags: newFlagSet(),
239 },
240 "SA3001": {
241 Name: "SA3001",
242 Run: CheckBenchmarkN,
243 Doc: Docs["SA3001"].String(),
244 Requires: []*analysis.Analyzer{inspect.Analyzer},
245 Flags: newFlagSet(),
246 },
247
248 "SA4000": {
249 Name: "SA4000",
250 Run: CheckLhsRhsIdentical,
251 Doc: Docs["SA4000"].String(),
252 Requires: []*analysis.Analyzer{inspect.Analyzer, facts.TokenFile, facts.Generated},
253 Flags: newFlagSet(),
254 },
255 "SA4001": {
256 Name: "SA4001",
257 Run: CheckIneffectiveCopy,
258 Doc: Docs["SA4001"].String(),
259 Requires: []*analysis.Analyzer{inspect.Analyzer},
260 Flags: newFlagSet(),
261 },
262 "SA4002": {
263 Name: "SA4002",
264 Run: CheckDiffSizeComparison,
265 Doc: Docs["SA4002"].String(),
266 Requires: []*analysis.Analyzer{buildssa.Analyzer, valueRangesAnalyzer},
267 Flags: newFlagSet(),
268 },
269 "SA4003": {
270 Name: "SA4003",
271 Run: CheckExtremeComparison,
272 Doc: Docs["SA4003"].String(),
273 Requires: []*analysis.Analyzer{inspect.Analyzer},
274 Flags: newFlagSet(),
275 },
276 "SA4004": {
277 Name: "SA4004",
278 Run: CheckIneffectiveLoop,
279 Doc: Docs["SA4004"].String(),
280 Requires: []*analysis.Analyzer{inspect.Analyzer},
281 Flags: newFlagSet(),
282 },
283 "SA4006": {
284 Name: "SA4006",
285 Run: CheckUnreadVariableValues,
286 Doc: Docs["SA4006"].String(),
287 Requires: []*analysis.Analyzer{buildssa.Analyzer, facts.Generated},
288 Flags: newFlagSet(),
289 },
290 "SA4008": {
291 Name: "SA4008",
292 Run: CheckLoopCondition,
293 Doc: Docs["SA4008"].String(),
294 Requires: []*analysis.Analyzer{buildssa.Analyzer},
295 Flags: newFlagSet(),
296 },
297 "SA4009": {
298 Name: "SA4009",
299 Run: CheckArgOverwritten,
300 Doc: Docs["SA4009"].String(),
301 Requires: []*analysis.Analyzer{buildssa.Analyzer},
302 Flags: newFlagSet(),
303 },
304 "SA4010": {
305 Name: "SA4010",
306 Run: CheckIneffectiveAppend,
307 Doc: Docs["SA4010"].String(),
308 Requires: []*analysis.Analyzer{buildssa.Analyzer},
309 Flags: newFlagSet(),
310 },
311 "SA4011": {
312 Name: "SA4011",
313 Run: CheckScopedBreak,
314 Doc: Docs["SA4011"].String(),
315 Requires: []*analysis.Analyzer{inspect.Analyzer},
316 Flags: newFlagSet(),
317 },
318 "SA4012": {
319 Name: "SA4012",
320 Run: CheckNaNComparison,
321 Doc: Docs["SA4012"].String(),
322 Requires: []*analysis.Analyzer{buildssa.Analyzer},
323 Flags: newFlagSet(),
324 },
325 "SA4013": {
326 Name: "SA4013",
327 Run: CheckDoubleNegation,
328 Doc: Docs["SA4013"].String(),
329 Requires: []*analysis.Analyzer{inspect.Analyzer},
330 Flags: newFlagSet(),
331 },
332 "SA4014": {
333 Name: "SA4014",
334 Run: CheckRepeatedIfElse,
335 Doc: Docs["SA4014"].String(),
336 Requires: []*analysis.Analyzer{inspect.Analyzer},
337 Flags: newFlagSet(),
338 },
339 "SA4015": {
340 Name: "SA4015",
341 Run: callChecker(checkMathIntRules),
342 Doc: Docs["SA4015"].String(),
343 Requires: []*analysis.Analyzer{buildssa.Analyzer, valueRangesAnalyzer},
344 Flags: newFlagSet(),
345 },
346 "SA4016": {
347 Name: "SA4016",
348 Run: CheckSillyBitwiseOps,
349 Doc: Docs["SA4016"].String(),
350 Requires: []*analysis.Analyzer{buildssa.Analyzer, facts.TokenFile},
351 Flags: newFlagSet(),
352 },
353 "SA4017": {
354 Name: "SA4017",
355 Run: CheckPureFunctions,
356 Doc: Docs["SA4017"].String(),
357 Requires: []*analysis.Analyzer{buildssa.Analyzer, facts.Purity},
358 Flags: newFlagSet(),
359 },
360 "SA4018": {
361 Name: "SA4018",
362 Run: CheckSelfAssignment,
363 Doc: Docs["SA4018"].String(),
364 Requires: []*analysis.Analyzer{inspect.Analyzer, facts.Generated, facts.TokenFile},
365 Flags: newFlagSet(),
366 },
367 "SA4019": {
368 Name: "SA4019",
369 Run: CheckDuplicateBuildConstraints,
370 Doc: Docs["SA4019"].String(),
371 Requires: []*analysis.Analyzer{facts.Generated},
372 Flags: newFlagSet(),
373 },
374 "SA4020": {
375 Name: "SA4020",
376 Run: CheckUnreachableTypeCases,
377 Doc: Docs["SA4020"].String(),
378 Requires: []*analysis.Analyzer{inspect.Analyzer},
379 Flags: newFlagSet(),
380 },
381 "SA4021": {
382 Name: "SA4021",
383 Run: CheckSingleArgAppend,
384 Doc: Docs["SA4021"].String(),
385 Requires: []*analysis.Analyzer{inspect.Analyzer, facts.Generated, facts.TokenFile},
386 Flags: newFlagSet(),
387 },
388
389 "SA5000": {
390 Name: "SA5000",
391 Run: CheckNilMaps,
392 Doc: Docs["SA5000"].String(),
393 Requires: []*analysis.Analyzer{buildssa.Analyzer},
394 Flags: newFlagSet(),
395 },
396 "SA5001": {
397 Name: "SA5001",
398 Run: CheckEarlyDefer,
399 Doc: Docs["SA5001"].String(),
400 Requires: []*analysis.Analyzer{inspect.Analyzer},
401 Flags: newFlagSet(),
402 },
403 "SA5002": {
404 Name: "SA5002",
405 Run: CheckInfiniteEmptyLoop,
406 Doc: Docs["SA5002"].String(),
407 Requires: []*analysis.Analyzer{inspect.Analyzer},
408 Flags: newFlagSet(),
409 },
410 "SA5003": {
411 Name: "SA5003",
412 Run: CheckDeferInInfiniteLoop,
413 Doc: Docs["SA5003"].String(),
414 Requires: []*analysis.Analyzer{inspect.Analyzer},
415 Flags: newFlagSet(),
416 },
417 "SA5004": {
418 Name: "SA5004",
419 Run: CheckLoopEmptyDefault,
420 Doc: Docs["SA5004"].String(),
421 Requires: []*analysis.Analyzer{inspect.Analyzer},
422 Flags: newFlagSet(),
423 },
424 "SA5005": {
425 Name: "SA5005",
426 Run: CheckCyclicFinalizer,
427 Doc: Docs["SA5005"].String(),
428 Requires: []*analysis.Analyzer{buildssa.Analyzer},
429 Flags: newFlagSet(),
430 },
431 "SA5007": {
432 Name: "SA5007",
433 Run: CheckInfiniteRecursion,
434 Doc: Docs["SA5007"].String(),
435 Requires: []*analysis.Analyzer{buildssa.Analyzer},
436 Flags: newFlagSet(),
437 },
438 "SA5008": {
439 Name: "SA5008",
440 Run: CheckStructTags,
441 Doc: Docs["SA5008"].String(),
442 Requires: []*analysis.Analyzer{inspect.Analyzer},
443 Flags: newFlagSet(),
444 },
445 "SA5009": {
446 Name: "SA5009",
447 Run: callChecker(checkPrintfRules),
448 Doc: Docs["SA5009"].String(),
449 Requires: []*analysis.Analyzer{buildssa.Analyzer, valueRangesAnalyzer},
450 Flags: newFlagSet(),
451 },
452
453 "SA6000": {
454 Name: "SA6000",
455 Run: callChecker(checkRegexpMatchLoopRules),
456 Doc: Docs["SA6000"].String(),
457 Requires: []*analysis.Analyzer{buildssa.Analyzer, valueRangesAnalyzer},
458 Flags: newFlagSet(),
459 },
460 "SA6001": {
461 Name: "SA6001",
462 Run: CheckMapBytesKey,
463 Doc: Docs["SA6001"].String(),
464 Requires: []*analysis.Analyzer{buildssa.Analyzer},
465 Flags: newFlagSet(),
466 },
467 "SA6002": {
468 Name: "SA6002",
469 Run: callChecker(checkSyncPoolValueRules),
470 Doc: Docs["SA6002"].String(),
471 Requires: []*analysis.Analyzer{buildssa.Analyzer, valueRangesAnalyzer},
472 Flags: newFlagSet(),
473 },
474 "SA6003": {
475 Name: "SA6003",
476 Run: CheckRangeStringRunes,
477 Doc: Docs["SA6003"].String(),
478 Requires: []*analysis.Analyzer{buildssa.Analyzer},
479 Flags: newFlagSet(),
480 },
481 "SA6005": {
482 Name: "SA6005",
483 Run: CheckToLowerToUpperComparison,
484 Doc: Docs["SA6005"].String(),
485 Requires: []*analysis.Analyzer{inspect.Analyzer},
486 Flags: newFlagSet(),
487 },
488
489 "SA9001": {
490 Name: "SA9001",
491 Run: CheckDubiousDeferInChannelRangeLoop,
492 Doc: Docs["SA9001"].String(),
493 Requires: []*analysis.Analyzer{inspect.Analyzer},
494 Flags: newFlagSet(),
495 },
496 "SA9002": {
497 Name: "SA9002",
498 Run: CheckNonOctalFileMode,
499 Doc: Docs["SA9002"].String(),
500 Requires: []*analysis.Analyzer{inspect.Analyzer},
501 Flags: newFlagSet(),
502 },
503 "SA9003": {
504 Name: "SA9003",
505 Run: CheckEmptyBranch,
506 Doc: Docs["SA9003"].String(),
507 Requires: []*analysis.Analyzer{buildssa.Analyzer, facts.TokenFile, facts.Generated},
508 Flags: newFlagSet(),
509 },
510 "SA9004": {
511 Name: "SA9004",
512 Run: CheckMissingEnumTypesInDeclaration,
513 Doc: Docs["SA9004"].String(),
514 Requires: []*analysis.Analyzer{inspect.Analyzer},
515 Flags: newFlagSet(),
516 },
517 // Filtering generated code because it may include empty structs generated from data models.
518 "SA9005": {
519 Name: "SA9005",
520 Run: callChecker(checkNoopMarshal),
521 Doc: Docs["SA9005"].String(),
522 Requires: []*analysis.Analyzer{buildssa.Analyzer, valueRangesAnalyzer, facts.Generated, facts.TokenFile},
523 Flags: newFlagSet(),
524 },
525}
diff --git a/vendor/honnef.co/go/tools/staticcheck/buildtag.go b/vendor/honnef.co/go/tools/staticcheck/buildtag.go
new file mode 100644
index 0000000..888d3e9
--- /dev/null
+++ b/vendor/honnef.co/go/tools/staticcheck/buildtag.go
@@ -0,0 +1,21 @@
1package staticcheck
2
3import (
4 "go/ast"
5 "strings"
6
7 . "honnef.co/go/tools/lint/lintdsl"
8)
9
10func buildTags(f *ast.File) [][]string {
11 var out [][]string
12 for _, line := range strings.Split(Preamble(f), "\n") {
13 if !strings.HasPrefix(line, "+build ") {
14 continue
15 }
16 line = strings.TrimSpace(strings.TrimPrefix(line, "+build "))
17 fields := strings.Fields(line)
18 out = append(out, fields)
19 }
20 return out
21}
diff --git a/vendor/honnef.co/go/tools/staticcheck/doc.go b/vendor/honnef.co/go/tools/staticcheck/doc.go
new file mode 100644
index 0000000..4a87d4a
--- /dev/null
+++ b/vendor/honnef.co/go/tools/staticcheck/doc.go
@@ -0,0 +1,764 @@
1package staticcheck
2
3import "honnef.co/go/tools/lint"
4
5var Docs = map[string]*lint.Documentation{
6 "SA1000": &lint.Documentation{
7 Title: `Invalid regular expression`,
8 Since: "2017.1",
9 },
10
11 "SA1001": &lint.Documentation{
12 Title: `Invalid template`,
13 Since: "2017.1",
14 },
15
16 "SA1002": &lint.Documentation{
17 Title: `Invalid format in time.Parse`,
18 Since: "2017.1",
19 },
20
21 "SA1003": &lint.Documentation{
22 Title: `Unsupported argument to functions in encoding/binary`,
23 Text: `The encoding/binary package can only serialize types with known sizes.
24This precludes the use of the int and uint types, as their sizes
25differ on different architectures. Furthermore, it doesn't support
26serializing maps, channels, strings, or functions.
27
28Before Go 1.8, bool wasn't supported, either.`,
29 Since: "2017.1",
30 },
31
32 "SA1004": &lint.Documentation{
33 Title: `Suspiciously small untyped constant in time.Sleep`,
34 Text: `The time.Sleep function takes a time.Duration as its only argument.
35Durations are expressed in nanoseconds. Thus, calling time.Sleep(1)
36will sleep for 1 nanosecond. This is a common source of bugs, as sleep
37functions in other languages often accept seconds or milliseconds.
38
39The time package provides constants such as time.Second to express
40large durations. These can be combined with arithmetic to express
41arbitrary durations, for example '5 * time.Second' for 5 seconds.
42
43If you truly meant to sleep for a tiny amount of time, use
44'n * time.Nanosecond' to signal to staticcheck that you did mean to sleep
45for some amount of nanoseconds.`,
46 Since: "2017.1",
47 },
48
49 "SA1005": &lint.Documentation{
50 Title: `Invalid first argument to exec.Command`,
51 Text: `os/exec runs programs directly (using variants of the fork and exec
52system calls on Unix systems). This shouldn't be confused with running
53a command in a shell. The shell will allow for features such as input
54redirection, pipes, and general scripting. The shell is also
55responsible for splitting the user's input into a program name and its
56arguments. For example, the equivalent to
57
58 ls / /tmp
59
60would be
61
62 exec.Command("ls", "/", "/tmp")
63
64If you want to run a command in a shell, consider using something like
65the following – but be aware that not all systems, particularly
66Windows, will have a /bin/sh program:
67
68 exec.Command("/bin/sh", "-c", "ls | grep Awesome")`,
69 Since: "2017.1",
70 },
71
72 "SA1006": &lint.Documentation{
73 Title: `Printf with dynamic first argument and no further arguments`,
74 Text: `Using fmt.Printf with a dynamic first argument can lead to unexpected
75output. The first argument is a format string, where certain character
76combinations have special meaning. If, for example, a user were to
77enter a string such as
78
79 Interest rate: 5%
80
81and you printed it with
82
83 fmt.Printf(s)
84
85it would lead to the following output:
86
87 Interest rate: 5%!(NOVERB).
88
89Similarly, forming the first parameter via string concatenation with
90user input should be avoided for the same reason. When printing user
91input, either use a variant of fmt.Print, or use the %s Printf verb
92and pass the string as an argument.`,
93 Since: "2017.1",
94 },
95
96 "SA1007": &lint.Documentation{
97 Title: `Invalid URL in net/url.Parse`,
98 Since: "2017.1",
99 },
100
101 "SA1008": &lint.Documentation{
102 Title: `Non-canonical key in http.Header map`,
103 Text: `Keys in http.Header maps are canonical, meaning they follow a specific
104combination of uppercase and lowercase letters. Methods such as
105http.Header.Add and http.Header.Del convert inputs into this canonical
106form before manipulating the map.
107
108When manipulating http.Header maps directly, as opposed to using the
109provided methods, care should be taken to stick to canonical form in
110order to avoid inconsistencies. The following piece of code
111demonstrates one such inconsistency:
112
113 h := http.Header{}
114 h["etag"] = []string{"1234"}
115 h.Add("etag", "5678")
116 fmt.Println(h)
117
118 // Output:
119 // map[Etag:[5678] etag:[1234]]
120
121The easiest way of obtaining the canonical form of a key is to use
122http.CanonicalHeaderKey.`,
123 Since: "2017.1",
124 },
125
126 "SA1010": &lint.Documentation{
127 Title: `(*regexp.Regexp).FindAll called with n == 0, which will always return zero results`,
128 Text: `If n >= 0, the function returns at most n matches/submatches. To
129return all results, specify a negative number.`,
130 Since: "2017.1",
131 },
132
133 "SA1011": &lint.Documentation{
134 Title: `Various methods in the strings package expect valid UTF-8, but invalid input is provided`,
135 Since: "2017.1",
136 },
137
138 "SA1012": &lint.Documentation{
139 Title: `A nil context.Context is being passed to a function, consider using context.TODO instead`,
140 Since: "2017.1",
141 },
142
143 "SA1013": &lint.Documentation{
144 Title: `io.Seeker.Seek is being called with the whence constant as the first argument, but it should be the second`,
145 Since: "2017.1",
146 },
147
148 "SA1014": &lint.Documentation{
149 Title: `Non-pointer value passed to Unmarshal or Decode`,
150 Since: "2017.1",
151 },
152
153 "SA1015": &lint.Documentation{
154 Title: `Using time.Tick in a way that will leak. Consider using time.NewTicker, and only use time.Tick in tests, commands and endless functions`,
155 Since: "2017.1",
156 },
157
158 "SA1016": &lint.Documentation{
159 Title: `Trapping a signal that cannot be trapped`,
160 Text: `Not all signals can be intercepted by a process. Speficially, on
161UNIX-like systems, the syscall.SIGKILL and syscall.SIGSTOP signals are
162never passed to the process, but instead handled directly by the
163kernel. It is therefore pointless to try and handle these signals.`,
164 Since: "2017.1",
165 },
166
167 "SA1017": &lint.Documentation{
168 Title: `Channels used with os/signal.Notify should be buffered`,
169 Text: `The os/signal package uses non-blocking channel sends when delivering
170signals. If the receiving end of the channel isn't ready and the
171channel is either unbuffered or full, the signal will be dropped. To
172avoid missing signals, the channel should be buffered and of the
173appropriate size. For a channel used for notification of just one
174signal value, a buffer of size 1 is sufficient.`,
175 Since: "2017.1",
176 },
177
178 "SA1018": &lint.Documentation{
179 Title: `strings.Replace called with n == 0, which does nothing`,
180 Text: `With n == 0, zero instances will be replaced. To replace all
181instances, use a negative number, or use strings.ReplaceAll.`,
182 Since: "2017.1",
183 },
184
185 "SA1019": &lint.Documentation{
186 Title: `Using a deprecated function, variable, constant or field`,
187 Since: "2017.1",
188 },
189
190 "SA1020": &lint.Documentation{
191 Title: `Using an invalid host:port pair with a net.Listen-related function`,
192 Since: "2017.1",
193 },
194
195 "SA1021": &lint.Documentation{
196 Title: `Using bytes.Equal to compare two net.IP`,
197 Text: `A net.IP stores an IPv4 or IPv6 address as a slice of bytes. The
198length of the slice for an IPv4 address, however, can be either 4 or
19916 bytes long, using different ways of representing IPv4 addresses. In
200order to correctly compare two net.IPs, the net.IP.Equal method should
201be used, as it takes both representations into account.`,
202 Since: "2017.1",
203 },
204
205 "SA1023": &lint.Documentation{
206 Title: `Modifying the buffer in an io.Writer implementation`,
207 Text: `Write must not modify the slice data, even temporarily.`,
208 Since: "2017.1",
209 },
210
211 "SA1024": &lint.Documentation{
212 Title: `A string cutset contains duplicate characters`,
213 Text: `The strings.TrimLeft and strings.TrimRight functions take cutsets, not
214prefixes. A cutset is treated as a set of characters to remove from a
215string. For example,
216
217 strings.TrimLeft("42133word", "1234"))
218
219will result in the string "word" – any characters that are 1, 2, 3 or
2204 are cut from the left of the string.
221
222In order to remove one string from another, use strings.TrimPrefix instead.`,
223 Since: "2017.1",
224 },
225
226 "SA1025": &lint.Documentation{
227 Title: `It is not possible to use (*time.Timer).Reset's return value correctly`,
228 Since: "2019.1",
229 },
230
231 "SA1026": &lint.Documentation{
232 Title: `Cannot marshal channels or functions`,
233 Since: "2019.2",
234 },
235
236 "SA1027": &lint.Documentation{
237 Title: `Atomic access to 64-bit variable must be 64-bit aligned`,
238 Text: `On ARM, x86-32, and 32-bit MIPS, it is the caller's responsibility to
239arrange for 64-bit alignment of 64-bit words accessed atomically. The
240first word in a variable or in an allocated struct, array, or slice
241can be relied upon to be 64-bit aligned.
242
243You can use the structlayout tool to inspect the alignment of fields
244in a struct.`,
245 Since: "2019.2",
246 },
247
248 "SA2000": &lint.Documentation{
249 Title: `sync.WaitGroup.Add called inside the goroutine, leading to a race condition`,
250 Since: "2017.1",
251 },
252
253 "SA2001": &lint.Documentation{
254 Title: `Empty critical section, did you mean to defer the unlock?`,
255 Text: `Empty critical sections of the kind
256
257 mu.Lock()
258 mu.Unlock()
259
260are very often a typo, and the following was intended instead:
261
262 mu.Lock()
263 defer mu.Unlock()
264
265Do note that sometimes empty critical sections can be useful, as a
266form of signaling to wait on another goroutine. Many times, there are
267simpler ways of achieving the same effect. When that isn't the case,
268the code should be amply commented to avoid confusion. Combining such
269comments with a //lint:ignore directive can be used to suppress this
270rare false positive.`,
271 Since: "2017.1",
272 },
273
274 "SA2002": &lint.Documentation{
275 Title: `Called testing.T.FailNow or SkipNow in a goroutine, which isn't allowed`,
276 Since: "2017.1",
277 },
278
279 "SA2003": &lint.Documentation{
280 Title: `Deferred Lock right after locking, likely meant to defer Unlock instead`,
281 Since: "2017.1",
282 },
283
284 "SA3000": &lint.Documentation{
285 Title: `TestMain doesn't call os.Exit, hiding test failures`,
286 Text: `Test executables (and in turn 'go test') exit with a non-zero status
287code if any tests failed. When specifying your own TestMain function,
288it is your responsibility to arrange for this, by calling os.Exit with
289the correct code. The correct code is returned by (*testing.M).Run, so
290the usual way of implementing TestMain is to end it with
291os.Exit(m.Run()).`,
292 Since: "2017.1",
293 },
294
295 "SA3001": &lint.Documentation{
296 Title: `Assigning to b.N in benchmarks distorts the results`,
297 Text: `The testing package dynamically sets b.N to improve the reliability of
298benchmarks and uses it in computations to determine the duration of a
299single operation. Benchmark code must not alter b.N as this would
300falsify results.`,
301 Since: "2017.1",
302 },
303
304 "SA4000": &lint.Documentation{
305 Title: `Boolean expression has identical expressions on both sides`,
306 Since: "2017.1",
307 },
308
309 "SA4001": &lint.Documentation{
310 Title: `&*x gets simplified to x, it does not copy x`,
311 Since: "2017.1",
312 },
313
314 "SA4002": &lint.Documentation{
315 Title: `Comparing strings with known different sizes has predictable results`,
316 Since: "2017.1",
317 },
318
319 "SA4003": &lint.Documentation{
320 Title: `Comparing unsigned values against negative values is pointless`,
321 Since: "2017.1",
322 },
323
324 "SA4004": &lint.Documentation{
325 Title: `The loop exits unconditionally after one iteration`,
326 Since: "2017.1",
327 },
328
329 "SA4005": &lint.Documentation{
330 Title: `Field assignment that will never be observed. Did you mean to use a pointer receiver?`,
331 Since: "2017.1",
332 },
333
334 "SA4006": &lint.Documentation{
335 Title: `A value assigned to a variable is never read before being overwritten. Forgotten error check or dead code?`,
336 Since: "2017.1",
337 },
338
339 "SA4008": &lint.Documentation{
340 Title: `The variable in the loop condition never changes, are you incrementing the wrong variable?`,
341 Since: "2017.1",
342 },
343
344 "SA4009": &lint.Documentation{
345 Title: `A function argument is overwritten before its first use`,
346 Since: "2017.1",
347 },
348
349 "SA4010": &lint.Documentation{
350 Title: `The result of append will never be observed anywhere`,
351 Since: "2017.1",
352 },
353
354 "SA4011": &lint.Documentation{
355 Title: `Break statement with no effect. Did you mean to break out of an outer loop?`,
356 Since: "2017.1",
357 },
358
359 "SA4012": &lint.Documentation{
360 Title: `Comparing a value against NaN even though no value is equal to NaN`,
361 Since: "2017.1",
362 },
363
364 "SA4013": &lint.Documentation{
365 Title: `Negating a boolean twice (!!b) is the same as writing b. This is either redundant, or a typo.`,
366 Since: "2017.1",
367 },
368
369 "SA4014": &lint.Documentation{
370 Title: `An if/else if chain has repeated conditions and no side-effects; if the condition didn't match the first time, it won't match the second time, either`,
371 Since: "2017.1",
372 },
373
374 "SA4015": &lint.Documentation{
375 Title: `Calling functions like math.Ceil on floats converted from integers doesn't do anything useful`,
376 Since: "2017.1",
377 },
378
379 "SA4016": &lint.Documentation{
380 Title: `Certain bitwise operations, such as x ^ 0, do not do anything useful`,
381 Since: "2017.1",
382 },
383
384 "SA4017": &lint.Documentation{
385 Title: `A pure function's return value is discarded, making the call pointless`,
386 Since: "2017.1",
387 },
388
389 "SA4018": &lint.Documentation{
390 Title: `Self-assignment of variables`,
391 Since: "2017.1",
392 },
393
394 "SA4019": &lint.Documentation{
395 Title: `Multiple, identical build constraints in the same file`,
396 Since: "2017.1",
397 },
398
399 "SA4020": &lint.Documentation{
400 Title: `Unreachable case clause in a type switch`,
401 Text: `In a type switch like the following
402
403 type T struct{}
404 func (T) Read(b []byte) (int, error) { return 0, nil }
405
406 var v interface{} = T{}
407
408 switch v.(type) {
409 case io.Reader:
410 // ...
411 case T:
412 // unreachable
413 }
414
415the second case clause can never be reached because T implements
416io.Reader and case clauses are evaluated in source order.
417
418Another example:
419
420 type T struct{}
421 func (T) Read(b []byte) (int, error) { return 0, nil }
422 func (T) Close() error { return nil }
423
424 var v interface{} = T{}
425
426 switch v.(type) {
427 case io.Reader:
428 // ...
429 case io.ReadCloser:
430 // unreachable
431 }
432
433Even though T has a Close method and thus implements io.ReadCloser,
434io.Reader will always match first. The method set of io.Reader is a
435subset of io.ReadCloser. Thus it is impossible to match the second
436case without matching the first case.
437
438
439Structurally equivalent interfaces
440
441A special case of the previous example are structurally identical
442interfaces. Given these declarations
443
444 type T error
445 type V error
446
447 func doSomething() error {
448 err, ok := doAnotherThing()
449 if ok {
450 return T(err)
451 }
452
453 return U(err)
454 }
455
456the following type switch will have an unreachable case clause:
457
458 switch doSomething().(type) {
459 case T:
460 // ...
461 case V:
462 // unreachable
463 }
464
465T will always match before V because they are structurally equivalent
466and therefore doSomething()'s return value implements both.`,
467 Since: "2019.2",
468 },
469
470 "SA4021": &lint.Documentation{
471 Title: `x = append(y) is equivalent to x = y`,
472 Since: "2019.2",
473 },
474
475 "SA5000": &lint.Documentation{
476 Title: `Assignment to nil map`,
477 Since: "2017.1",
478 },
479
480 "SA5001": &lint.Documentation{
481 Title: `Defering Close before checking for a possible error`,
482 Since: "2017.1",
483 },
484
485 "SA5002": &lint.Documentation{
486 Title: `The empty for loop (for {}) spins and can block the scheduler`,
487 Since: "2017.1",
488 },
489
490 "SA5003": &lint.Documentation{
491 Title: `Defers in infinite loops will never execute`,
492 Text: `Defers are scoped to the surrounding function, not the surrounding
493block. In a function that never returns, i.e. one containing an
494infinite loop, defers will never execute.`,
495 Since: "2017.1",
496 },
497
498 "SA5004": &lint.Documentation{
499 Title: `for { select { ... with an empty default branch spins`,
500 Since: "2017.1",
501 },
502
503 "SA5005": &lint.Documentation{
504 Title: `The finalizer references the finalized object, preventing garbage collection`,
505 Text: `A finalizer is a function associated with an object that runs when the
506garbage collector is ready to collect said object, that is when the
507object is no longer referenced by anything.
508
509If the finalizer references the object, however, it will always remain
510as the final reference to that object, preventing the garbage
511collector from collecting the object. The finalizer will never run,
512and the object will never be collected, leading to a memory leak. That
513is why the finalizer should instead use its first argument to operate
514on the object. That way, the number of references can temporarily go
515to zero before the object is being passed to the finalizer.`,
516 Since: "2017.1",
517 },
518
519 "SA5006": &lint.Documentation{
520 Title: `Slice index out of bounds`,
521 Since: "2017.1",
522 },
523
524 "SA5007": &lint.Documentation{
525 Title: `Infinite recursive call`,
526 Text: `A function that calls itself recursively needs to have an exit
527condition. Otherwise it will recurse forever, until the system runs
528out of memory.
529
530This issue can be caused by simple bugs such as forgetting to add an
531exit condition. It can also happen "on purpose". Some languages have
532tail call optimization which makes certain infinite recursive calls
533safe to use. Go, however, does not implement TCO, and as such a loop
534should be used instead.`,
535 Since: "2017.1",
536 },
537
538 "SA5008": &lint.Documentation{
539 Title: `Invalid struct tag`,
540 Since: "2019.2",
541 },
542
543 "SA5009": &lint.Documentation{
544 Title: `Invalid Printf call`,
545 Since: "2019.2",
546 },
547
548 "SA6000": &lint.Documentation{
549 Title: `Using regexp.Match or related in a loop, should use regexp.Compile`,
550 Since: "2017.1",
551 },
552
553 "SA6001": &lint.Documentation{
554 Title: `Missing an optimization opportunity when indexing maps by byte slices`,
555
556 Text: `Map keys must be comparable, which precludes the use of byte slices.
557This usually leads to using string keys and converting byte slices to
558strings.
559
560Normally, a conversion of a byte slice to a string needs to copy the data and
561causes allocations. The compiler, however, recognizes m[string(b)] and
562uses the data of b directly, without copying it, because it knows that
563the data can't change during the map lookup. This leads to the
564counter-intuitive situation that
565
566 k := string(b)
567 println(m[k])
568 println(m[k])
569
570will be less efficient than
571
572 println(m[string(b)])
573 println(m[string(b)])
574
575because the first version needs to copy and allocate, while the second
576one does not.
577
578For some history on this optimization, check out commit
579f5f5a8b6209f84961687d993b93ea0d397f5d5bf in the Go repository.`,
580 Since: "2017.1",
581 },
582
583 "SA6002": &lint.Documentation{
584 Title: `Storing non-pointer values in sync.Pool allocates memory`,
585 Text: `A sync.Pool is used to avoid unnecessary allocations and reduce the
586amount of work the garbage collector has to do.
587
588When passing a value that is not a pointer to a function that accepts
589an interface, the value needs to be placed on the heap, which means an
590additional allocation. Slices are a common thing to put in sync.Pools,
591and they're structs with 3 fields (length, capacity, and a pointer to
592an array). In order to avoid the extra allocation, one should store a
593pointer to the slice instead.
594
595See the comments on https://go-review.googlesource.com/c/go/+/24371
596that discuss this problem.`,
597 Since: "2017.1",
598 },
599
600 "SA6003": &lint.Documentation{
601 Title: `Converting a string to a slice of runes before ranging over it`,
602 Text: `You may want to loop over the runes in a string. Instead of converting
603the string to a slice of runes and looping over that, you can loop
604over the string itself. That is,
605
606 for _, r := range s {}
607
608and
609
610 for _, r := range []rune(s) {}
611
612will yield the same values. The first version, however, will be faster
613and avoid unnecessary memory allocations.
614
615Do note that if you are interested in the indices, ranging over a
616string and over a slice of runes will yield different indices. The
617first one yields byte offsets, while the second one yields indices in
618the slice of runes.`,
619 Since: "2017.1",
620 },
621
622 "SA6005": &lint.Documentation{
623 Title: `Inefficient string comparison with strings.ToLower or strings.ToUpper`,
624 Text: `Converting two strings to the same case and comparing them like so
625
626 if strings.ToLower(s1) == strings.ToLower(s2) {
627 ...
628 }
629
630is significantly more expensive than comparing them with
631strings.EqualFold(s1, s2). This is due to memory usage as well as
632computational complexity.
633
634strings.ToLower will have to allocate memory for the new strings, as
635well as convert both strings fully, even if they differ on the very
636first byte. strings.EqualFold, on the other hand, compares the strings
637one character at a time. It doesn't need to create two intermediate
638strings and can return as soon as the first non-matching character has
639been found.
640
641For a more in-depth explanation of this issue, see
642https://blog.digitalocean.com/how-to-efficiently-compare-strings-in-go/`,
643 Since: "2019.2",
644 },
645
646 "SA9001": &lint.Documentation{
647 Title: `Defers in range loops may not run when you expect them to`,
648 Since: "2017.1",
649 },
650
651 "SA9002": &lint.Documentation{
652 Title: `Using a non-octal os.FileMode that looks like it was meant to be in octal.`,
653 Since: "2017.1",
654 },
655
656 "SA9003": &lint.Documentation{
657 Title: `Empty body in an if or else branch`,
658 Since: "2017.1",
659 },
660
661 "SA9004": &lint.Documentation{
662 Title: `Only the first constant has an explicit type`,
663
664 Text: `In a constant declaration such as the following:
665
666 const (
667 First byte = 1
668 Second = 2
669 )
670
671the constant Second does not have the same type as the constant First.
672This construct shouldn't be confused with
673
674 const (
675 First byte = iota
676 Second
677 )
678
679where First and Second do indeed have the same type. The type is only
680passed on when no explicit value is assigned to the constant.
681
682When declaring enumerations with explicit values it is therefore
683important not to write
684
685 const (
686 EnumFirst EnumType = 1
687 EnumSecond = 2
688 EnumThird = 3
689 )
690
691This discrepancy in types can cause various confusing behaviors and
692bugs.
693
694
695Wrong type in variable declarations
696
697The most obvious issue with such incorrect enumerations expresses
698itself as a compile error:
699
700 package pkg
701
702 const (
703 EnumFirst uint8 = 1
704 EnumSecond = 2
705 )
706
707 func fn(useFirst bool) {
708 x := EnumSecond
709 if useFirst {
710 x = EnumFirst
711 }
712 }
713
714fails to compile with
715
716 ./const.go:11:5: cannot use EnumFirst (type uint8) as type int in assignment
717
718
719Losing method sets
720
721A more subtle issue occurs with types that have methods and optional
722interfaces. Consider the following:
723
724 package main
725
726 import "fmt"
727
728 type Enum int
729
730 func (e Enum) String() string {
731 return "an enum"
732 }
733
734 const (
735 EnumFirst Enum = 1
736 EnumSecond = 2
737 )
738
739 func main() {
740 fmt.Println(EnumFirst)
741 fmt.Println(EnumSecond)
742 }
743
744This code will output
745
746 an enum
747 2
748
749as EnumSecond has no explicit type, and thus defaults to int.`,
750 Since: "2019.1",
751 },
752
753 "SA9005": &lint.Documentation{
754 Title: `Trying to marshal a struct with no public fields nor custom marshaling`,
755 Text: `The encoding/json and encoding/xml packages only operate on exported
756fields in structs, not unexported ones. It is usually an error to try
757to (un)marshal structs that only consist of unexported fields.
758
759This check will not flag calls involving types that define custom
760marshaling behavior, e.g. via MarshalJSON methods. It will also not
761flag empty structs.`,
762 Since: "2019.2",
763 },
764}
diff --git a/vendor/honnef.co/go/tools/staticcheck/knowledge.go b/vendor/honnef.co/go/tools/staticcheck/knowledge.go
new file mode 100644
index 0000000..4c12b86
--- /dev/null
+++ b/vendor/honnef.co/go/tools/staticcheck/knowledge.go
@@ -0,0 +1,25 @@
1package staticcheck
2
3import (
4 "reflect"
5
6 "golang.org/x/tools/go/analysis"
7 "honnef.co/go/tools/internal/passes/buildssa"
8 "honnef.co/go/tools/ssa"
9 "honnef.co/go/tools/staticcheck/vrp"
10)
11
12var valueRangesAnalyzer = &analysis.Analyzer{
13 Name: "vrp",
14 Doc: "calculate value ranges of functions",
15 Run: func(pass *analysis.Pass) (interface{}, error) {
16 m := map[*ssa.Function]vrp.Ranges{}
17 for _, ssafn := range pass.ResultOf[buildssa.Analyzer].(*buildssa.SSA).SrcFuncs {
18 vr := vrp.BuildGraph(ssafn).Solve()
19 m[ssafn] = vr
20 }
21 return m, nil
22 },
23 Requires: []*analysis.Analyzer{buildssa.Analyzer},
24 ResultType: reflect.TypeOf(map[*ssa.Function]vrp.Ranges{}),
25}
diff --git a/vendor/honnef.co/go/tools/staticcheck/lint.go b/vendor/honnef.co/go/tools/staticcheck/lint.go
new file mode 100644
index 0000000..1558cbf
--- /dev/null
+++ b/vendor/honnef.co/go/tools/staticcheck/lint.go
@@ -0,0 +1,3360 @@
1// Package staticcheck contains a linter for Go source code.
2package staticcheck // import "honnef.co/go/tools/staticcheck"
3
4import (
5 "fmt"
6 "go/ast"
7 "go/constant"
8 "go/token"
9 "go/types"
10 htmltemplate "html/template"
11 "net/http"
12 "reflect"
13 "regexp"
14 "regexp/syntax"
15 "sort"
16 "strconv"
17 "strings"
18 texttemplate "text/template"
19 "unicode"
20
21 . "honnef.co/go/tools/arg"
22 "honnef.co/go/tools/deprecated"
23 "honnef.co/go/tools/facts"
24 "honnef.co/go/tools/functions"
25 "honnef.co/go/tools/internal/passes/buildssa"
26 "honnef.co/go/tools/internal/sharedcheck"
27 "honnef.co/go/tools/lint"
28 . "honnef.co/go/tools/lint/lintdsl"
29 "honnef.co/go/tools/printf"
30 "honnef.co/go/tools/ssa"
31 "honnef.co/go/tools/ssautil"
32 "honnef.co/go/tools/staticcheck/vrp"
33
34 "golang.org/x/tools/go/analysis"
35 "golang.org/x/tools/go/analysis/passes/inspect"
36 "golang.org/x/tools/go/ast/astutil"
37 "golang.org/x/tools/go/ast/inspector"
38 "golang.org/x/tools/go/types/typeutil"
39)
40
41func validRegexp(call *Call) {
42 arg := call.Args[0]
43 err := ValidateRegexp(arg.Value)
44 if err != nil {
45 arg.Invalid(err.Error())
46 }
47}
48
49type runeSlice []rune
50
51func (rs runeSlice) Len() int { return len(rs) }
52func (rs runeSlice) Less(i int, j int) bool { return rs[i] < rs[j] }
53func (rs runeSlice) Swap(i int, j int) { rs[i], rs[j] = rs[j], rs[i] }
54
55func utf8Cutset(call *Call) {
56 arg := call.Args[1]
57 if InvalidUTF8(arg.Value) {
58 arg.Invalid(MsgInvalidUTF8)
59 }
60}
61
62func uniqueCutset(call *Call) {
63 arg := call.Args[1]
64 if !UniqueStringCutset(arg.Value) {
65 arg.Invalid(MsgNonUniqueCutset)
66 }
67}
68
69func unmarshalPointer(name string, arg int) CallCheck {
70 return func(call *Call) {
71 if !Pointer(call.Args[arg].Value) {
72 call.Args[arg].Invalid(fmt.Sprintf("%s expects to unmarshal into a pointer, but the provided value is not a pointer", name))
73 }
74 }
75}
76
77func pointlessIntMath(call *Call) {
78 if ConvertedFromInt(call.Args[0].Value) {
79 call.Invalid(fmt.Sprintf("calling %s on a converted integer is pointless", CallName(call.Instr.Common())))
80 }
81}
82
83func checkValidHostPort(arg int) CallCheck {
84 return func(call *Call) {
85 if !ValidHostPort(call.Args[arg].Value) {
86 call.Args[arg].Invalid(MsgInvalidHostPort)
87 }
88 }
89}
90
91var (
92 checkRegexpRules = map[string]CallCheck{
93 "regexp.MustCompile": validRegexp,
94 "regexp.Compile": validRegexp,
95 "regexp.Match": validRegexp,
96 "regexp.MatchReader": validRegexp,
97 "regexp.MatchString": validRegexp,
98 }
99
100 checkTimeParseRules = map[string]CallCheck{
101 "time.Parse": func(call *Call) {
102 arg := call.Args[Arg("time.Parse.layout")]
103 err := ValidateTimeLayout(arg.Value)
104 if err != nil {
105 arg.Invalid(err.Error())
106 }
107 },
108 }
109
110 checkEncodingBinaryRules = map[string]CallCheck{
111 "encoding/binary.Write": func(call *Call) {
112 arg := call.Args[Arg("encoding/binary.Write.data")]
113 if !CanBinaryMarshal(call.Pass, arg.Value) {
114 arg.Invalid(fmt.Sprintf("value of type %s cannot be used with binary.Write", arg.Value.Value.Type()))
115 }
116 },
117 }
118
119 checkURLsRules = map[string]CallCheck{
120 "net/url.Parse": func(call *Call) {
121 arg := call.Args[Arg("net/url.Parse.rawurl")]
122 err := ValidateURL(arg.Value)
123 if err != nil {
124 arg.Invalid(err.Error())
125 }
126 },
127 }
128
129 checkSyncPoolValueRules = map[string]CallCheck{
130 "(*sync.Pool).Put": func(call *Call) {
131 arg := call.Args[Arg("(*sync.Pool).Put.x")]
132 typ := arg.Value.Value.Type()
133 if !IsPointerLike(typ) {
134 arg.Invalid("argument should be pointer-like to avoid allocations")
135 }
136 },
137 }
138
139 checkRegexpFindAllRules = map[string]CallCheck{
140 "(*regexp.Regexp).FindAll": RepeatZeroTimes("a FindAll method", 1),
141 "(*regexp.Regexp).FindAllIndex": RepeatZeroTimes("a FindAll method", 1),
142 "(*regexp.Regexp).FindAllString": RepeatZeroTimes("a FindAll method", 1),
143 "(*regexp.Regexp).FindAllStringIndex": RepeatZeroTimes("a FindAll method", 1),
144 "(*regexp.Regexp).FindAllStringSubmatch": RepeatZeroTimes("a FindAll method", 1),
145 "(*regexp.Regexp).FindAllStringSubmatchIndex": RepeatZeroTimes("a FindAll method", 1),
146 "(*regexp.Regexp).FindAllSubmatch": RepeatZeroTimes("a FindAll method", 1),
147 "(*regexp.Regexp).FindAllSubmatchIndex": RepeatZeroTimes("a FindAll method", 1),
148 }
149
150 checkUTF8CutsetRules = map[string]CallCheck{
151 "strings.IndexAny": utf8Cutset,
152 "strings.LastIndexAny": utf8Cutset,
153 "strings.ContainsAny": utf8Cutset,
154 "strings.Trim": utf8Cutset,
155 "strings.TrimLeft": utf8Cutset,
156 "strings.TrimRight": utf8Cutset,
157 }
158
159 checkUniqueCutsetRules = map[string]CallCheck{
160 "strings.Trim": uniqueCutset,
161 "strings.TrimLeft": uniqueCutset,
162 "strings.TrimRight": uniqueCutset,
163 }
164
165 checkUnmarshalPointerRules = map[string]CallCheck{
166 "encoding/xml.Unmarshal": unmarshalPointer("xml.Unmarshal", 1),
167 "(*encoding/xml.Decoder).Decode": unmarshalPointer("Decode", 0),
168 "(*encoding/xml.Decoder).DecodeElement": unmarshalPointer("DecodeElement", 0),
169 "encoding/json.Unmarshal": unmarshalPointer("json.Unmarshal", 1),
170 "(*encoding/json.Decoder).Decode": unmarshalPointer("Decode", 0),
171 }
172
173 checkUnbufferedSignalChanRules = map[string]CallCheck{
174 "os/signal.Notify": func(call *Call) {
175 arg := call.Args[Arg("os/signal.Notify.c")]
176 if UnbufferedChannel(arg.Value) {
177 arg.Invalid("the channel used with signal.Notify should be buffered")
178 }
179 },
180 }
181
182 checkMathIntRules = map[string]CallCheck{
183 "math.Ceil": pointlessIntMath,
184 "math.Floor": pointlessIntMath,
185 "math.IsNaN": pointlessIntMath,
186 "math.Trunc": pointlessIntMath,
187 "math.IsInf": pointlessIntMath,
188 }
189
190 checkStringsReplaceZeroRules = map[string]CallCheck{
191 "strings.Replace": RepeatZeroTimes("strings.Replace", 3),
192 "bytes.Replace": RepeatZeroTimes("bytes.Replace", 3),
193 }
194
195 checkListenAddressRules = map[string]CallCheck{
196 "net/http.ListenAndServe": checkValidHostPort(0),
197 "net/http.ListenAndServeTLS": checkValidHostPort(0),
198 }
199
200 checkBytesEqualIPRules = map[string]CallCheck{
201 "bytes.Equal": func(call *Call) {
202 if ConvertedFrom(call.Args[Arg("bytes.Equal.a")].Value, "net.IP") &&
203 ConvertedFrom(call.Args[Arg("bytes.Equal.b")].Value, "net.IP") {
204 call.Invalid("use net.IP.Equal to compare net.IPs, not bytes.Equal")
205 }
206 },
207 }
208
209 checkRegexpMatchLoopRules = map[string]CallCheck{
210 "regexp.Match": loopedRegexp("regexp.Match"),
211 "regexp.MatchReader": loopedRegexp("regexp.MatchReader"),
212 "regexp.MatchString": loopedRegexp("regexp.MatchString"),
213 }
214
215 checkNoopMarshal = map[string]CallCheck{
216 // TODO(dh): should we really flag XML? Even an empty struct
217 // produces a non-zero amount of data, namely its type name.
218 // Let's see if we encounter any false positives.
219 //
220 // Also, should we flag gob?
221 "encoding/json.Marshal": checkNoopMarshalImpl(Arg("json.Marshal.v"), "MarshalJSON", "MarshalText"),
222 "encoding/xml.Marshal": checkNoopMarshalImpl(Arg("xml.Marshal.v"), "MarshalXML", "MarshalText"),
223 "(*encoding/json.Encoder).Encode": checkNoopMarshalImpl(Arg("(*encoding/json.Encoder).Encode.v"), "MarshalJSON", "MarshalText"),
224 "(*encoding/xml.Encoder).Encode": checkNoopMarshalImpl(Arg("(*encoding/xml.Encoder).Encode.v"), "MarshalXML", "MarshalText"),
225
226 "encoding/json.Unmarshal": checkNoopMarshalImpl(Arg("json.Unmarshal.v"), "UnmarshalJSON", "UnmarshalText"),
227 "encoding/xml.Unmarshal": checkNoopMarshalImpl(Arg("xml.Unmarshal.v"), "UnmarshalXML", "UnmarshalText"),
228 "(*encoding/json.Decoder).Decode": checkNoopMarshalImpl(Arg("(*encoding/json.Decoder).Decode.v"), "UnmarshalJSON", "UnmarshalText"),
229 "(*encoding/xml.Decoder).Decode": checkNoopMarshalImpl(Arg("(*encoding/xml.Decoder).Decode.v"), "UnmarshalXML", "UnmarshalText"),
230 }
231
232 checkUnsupportedMarshal = map[string]CallCheck{
233 "encoding/json.Marshal": checkUnsupportedMarshalImpl(Arg("json.Marshal.v"), "json", "MarshalJSON", "MarshalText"),
234 "encoding/xml.Marshal": checkUnsupportedMarshalImpl(Arg("xml.Marshal.v"), "xml", "MarshalXML", "MarshalText"),
235 "(*encoding/json.Encoder).Encode": checkUnsupportedMarshalImpl(Arg("(*encoding/json.Encoder).Encode.v"), "json", "MarshalJSON", "MarshalText"),
236 "(*encoding/xml.Encoder).Encode": checkUnsupportedMarshalImpl(Arg("(*encoding/xml.Encoder).Encode.v"), "xml", "MarshalXML", "MarshalText"),
237 }
238
239 checkAtomicAlignment = map[string]CallCheck{
240 "sync/atomic.AddInt64": checkAtomicAlignmentImpl,
241 "sync/atomic.AddUint64": checkAtomicAlignmentImpl,
242 "sync/atomic.CompareAndSwapInt64": checkAtomicAlignmentImpl,
243 "sync/atomic.CompareAndSwapUint64": checkAtomicAlignmentImpl,
244 "sync/atomic.LoadInt64": checkAtomicAlignmentImpl,
245 "sync/atomic.LoadUint64": checkAtomicAlignmentImpl,
246 "sync/atomic.StoreInt64": checkAtomicAlignmentImpl,
247 "sync/atomic.StoreUint64": checkAtomicAlignmentImpl,
248 "sync/atomic.SwapInt64": checkAtomicAlignmentImpl,
249 "sync/atomic.SwapUint64": checkAtomicAlignmentImpl,
250 }
251
252 // TODO(dh): detect printf wrappers
253 checkPrintfRules = map[string]CallCheck{
254 "fmt.Errorf": func(call *Call) { checkPrintfCall(call, 0, 1) },
255 "fmt.Printf": func(call *Call) { checkPrintfCall(call, 0, 1) },
256 "fmt.Sprintf": func(call *Call) { checkPrintfCall(call, 0, 1) },
257 "fmt.Fprintf": func(call *Call) { checkPrintfCall(call, 1, 2) },
258 }
259)
260
261func checkPrintfCall(call *Call, fIdx, vIdx int) {
262 f := call.Args[fIdx]
263 var args []ssa.Value
264 switch v := call.Args[vIdx].Value.Value.(type) {
265 case *ssa.Slice:
266 var ok bool
267 args, ok = ssautil.Vararg(v)
268 if !ok {
269 // We don't know what the actual arguments to the function are
270 return
271 }
272 case *ssa.Const:
273 // nil, i.e. no arguments
274 default:
275 // We don't know what the actual arguments to the function are
276 return
277 }
278 checkPrintfCallImpl(call, f.Value.Value, args)
279}
280
281type verbFlag int
282
283const (
284 isInt verbFlag = 1 << iota
285 isBool
286 isFP
287 isString
288 isPointer
289 isPseudoPointer
290 isSlice
291 isAny
292 noRecurse
293)
294
295var verbs = [...]verbFlag{
296 'b': isPseudoPointer | isInt | isFP,
297 'c': isInt,
298 'd': isPseudoPointer | isInt,
299 'e': isFP,
300 'E': isFP,
301 'f': isFP,
302 'F': isFP,
303 'g': isFP,
304 'G': isFP,
305 'o': isPseudoPointer | isInt,
306 'p': isSlice | isPointer | noRecurse,
307 'q': isInt | isString,
308 's': isString,
309 't': isBool,
310 'T': isAny,
311 'U': isInt,
312 'v': isAny,
313 'X': isPseudoPointer | isInt | isString,
314 'x': isPseudoPointer | isInt | isString,
315}
316
317func checkPrintfCallImpl(call *Call, f ssa.Value, args []ssa.Value) {
318 var msCache *typeutil.MethodSetCache
319 if f.Parent() != nil {
320 msCache = &f.Parent().Prog.MethodSets
321 }
322
323 elem := func(T types.Type, verb rune) ([]types.Type, bool) {
324 if verbs[verb]&noRecurse != 0 {
325 return []types.Type{T}, false
326 }
327 switch T := T.(type) {
328 case *types.Slice:
329 if verbs[verb]&isSlice != 0 {
330 return []types.Type{T}, false
331 }
332 if verbs[verb]&isString != 0 && IsType(T.Elem().Underlying(), "byte") {
333 return []types.Type{T}, false
334 }
335 return []types.Type{T.Elem()}, true
336 case *types.Map:
337 key := T.Key()
338 val := T.Elem()
339 return []types.Type{key, val}, true
340 case *types.Struct:
341 out := make([]types.Type, 0, T.NumFields())
342 for i := 0; i < T.NumFields(); i++ {
343 out = append(out, T.Field(i).Type())
344 }
345 return out, true
346 case *types.Array:
347 return []types.Type{T.Elem()}, true
348 default:
349 return []types.Type{T}, false
350 }
351 }
352 isInfo := func(T types.Type, info types.BasicInfo) bool {
353 basic, ok := T.Underlying().(*types.Basic)
354 return ok && basic.Info()&info != 0
355 }
356
357 isStringer := func(T types.Type, ms *types.MethodSet) bool {
358 sel := ms.Lookup(nil, "String")
359 if sel == nil {
360 return false
361 }
362 fn, ok := sel.Obj().(*types.Func)
363 if !ok {
364 // should be unreachable
365 return false
366 }
367 sig := fn.Type().(*types.Signature)
368 if sig.Params().Len() != 0 {
369 return false
370 }
371 if sig.Results().Len() != 1 {
372 return false
373 }
374 if !IsType(sig.Results().At(0).Type(), "string") {
375 return false
376 }
377 return true
378 }
379 isError := func(T types.Type, ms *types.MethodSet) bool {
380 sel := ms.Lookup(nil, "Error")
381 if sel == nil {
382 return false
383 }
384 fn, ok := sel.Obj().(*types.Func)
385 if !ok {
386 // should be unreachable
387 return false
388 }
389 sig := fn.Type().(*types.Signature)
390 if sig.Params().Len() != 0 {
391 return false
392 }
393 if sig.Results().Len() != 1 {
394 return false
395 }
396 if !IsType(sig.Results().At(0).Type(), "string") {
397 return false
398 }
399 return true
400 }
401
402 isFormatter := func(T types.Type, ms *types.MethodSet) bool {
403 sel := ms.Lookup(nil, "Format")
404 if sel == nil {
405 return false
406 }
407 fn, ok := sel.Obj().(*types.Func)
408 if !ok {
409 // should be unreachable
410 return false
411 }
412 sig := fn.Type().(*types.Signature)
413 if sig.Params().Len() != 2 {
414 return false
415 }
416 // TODO(dh): check the types of the arguments for more
417 // precision
418 if sig.Results().Len() != 0 {
419 return false
420 }
421 return true
422 }
423
424 seen := map[types.Type]bool{}
425 var checkType func(verb rune, T types.Type, top bool) bool
426 checkType = func(verb rune, T types.Type, top bool) bool {
427 if top {
428 for k := range seen {
429 delete(seen, k)
430 }
431 }
432 if seen[T] {
433 return true
434 }
435 seen[T] = true
436 if int(verb) >= len(verbs) {
437 // Unknown verb
438 return true
439 }
440
441 flags := verbs[verb]
442 if flags == 0 {
443 // Unknown verb
444 return true
445 }
446
447 ms := msCache.MethodSet(T)
448 if isFormatter(T, ms) {
449 // the value is responsible for formatting itself
450 return true
451 }
452
453 if flags&isString != 0 && (isStringer(T, ms) || isError(T, ms)) {
454 // Check for stringer early because we're about to dereference
455 return true
456 }
457
458 T = T.Underlying()
459 if flags&(isPointer|isPseudoPointer) == 0 && top {
460 T = Dereference(T)
461 }
462 if flags&isPseudoPointer != 0 && top {
463 t := Dereference(T)
464 if _, ok := t.Underlying().(*types.Struct); ok {
465 T = t
466 }
467 }
468
469 if _, ok := T.(*types.Interface); ok {
470 // We don't know what's in the interface
471 return true
472 }
473
474 var info types.BasicInfo
475 if flags&isInt != 0 {
476 info |= types.IsInteger
477 }
478 if flags&isBool != 0 {
479 info |= types.IsBoolean
480 }
481 if flags&isFP != 0 {
482 info |= types.IsFloat | types.IsComplex
483 }
484 if flags&isString != 0 {
485 info |= types.IsString
486 }
487
488 if info != 0 && isInfo(T, info) {
489 return true
490 }
491
492 if flags&isString != 0 && (IsType(T, "[]byte") || isStringer(T, ms) || isError(T, ms)) {
493 return true
494 }
495
496 if flags&isPointer != 0 && IsPointerLike(T) {
497 return true
498 }
499 if flags&isPseudoPointer != 0 {
500 switch U := T.Underlying().(type) {
501 case *types.Pointer:
502 if !top {
503 return true
504 }
505
506 if _, ok := U.Elem().Underlying().(*types.Struct); !ok {
507 return true
508 }
509 case *types.Chan, *types.Signature:
510 return true
511 }
512 }
513
514 if flags&isSlice != 0 {
515 if _, ok := T.(*types.Slice); ok {
516 return true
517 }
518 }
519
520 if flags&isAny != 0 {
521 return true
522 }
523
524 elems, ok := elem(T.Underlying(), verb)
525 if !ok {
526 return false
527 }
528 for _, elem := range elems {
529 if !checkType(verb, elem, false) {
530 return false
531 }
532 }
533
534 return true
535 }
536
537 k, ok := f.(*ssa.Const)
538 if !ok {
539 return
540 }
541 actions, err := printf.Parse(constant.StringVal(k.Value))
542 if err != nil {
543 call.Invalid("couldn't parse format string")
544 return
545 }
546
547 ptr := 1
548 hasExplicit := false
549
550 checkStar := func(verb printf.Verb, star printf.Argument) bool {
551 if star, ok := star.(printf.Star); ok {
552 idx := 0
553 if star.Index == -1 {
554 idx = ptr
555 ptr++
556 } else {
557 hasExplicit = true
558 idx = star.Index
559 ptr = star.Index + 1
560 }
561 if idx == 0 {
562 call.Invalid(fmt.Sprintf("Printf format %s reads invalid arg 0; indices are 1-based", verb.Raw))
563 return false
564 }
565 if idx > len(args) {
566 call.Invalid(
567 fmt.Sprintf("Printf format %s reads arg #%d, but call has only %d args",
568 verb.Raw, idx, len(args)))
569 return false
570 }
571 if arg, ok := args[idx-1].(*ssa.MakeInterface); ok {
572 if !isInfo(arg.X.Type(), types.IsInteger) {
573 call.Invalid(fmt.Sprintf("Printf format %s reads non-int arg #%d as argument of *", verb.Raw, idx))
574 }
575 }
576 }
577 return true
578 }
579
580 // We only report one problem per format string. Making a
581 // mistake with an index tends to invalidate all future
582 // implicit indices.
583 for _, action := range actions {
584 verb, ok := action.(printf.Verb)
585 if !ok {
586 continue
587 }
588
589 if !checkStar(verb, verb.Width) || !checkStar(verb, verb.Precision) {
590 return
591 }
592
593 off := ptr
594 if verb.Value != -1 {
595 hasExplicit = true
596 off = verb.Value
597 }
598 if off > len(args) {
599 call.Invalid(
600 fmt.Sprintf("Printf format %s reads arg #%d, but call has only %d args",
601 verb.Raw, off, len(args)))
602 return
603 } else if verb.Value == 0 && verb.Letter != '%' {
604 call.Invalid(fmt.Sprintf("Printf format %s reads invalid arg 0; indices are 1-based", verb.Raw))
605 return
606 } else if off != 0 {
607 arg, ok := args[off-1].(*ssa.MakeInterface)
608 if ok {
609 if !checkType(verb.Letter, arg.X.Type(), true) {
610 call.Invalid(fmt.Sprintf("Printf format %s has arg #%d of wrong type %s",
611 verb.Raw, ptr, args[ptr-1].(*ssa.MakeInterface).X.Type()))
612 return
613 }
614 }
615 }
616
617 switch verb.Value {
618 case -1:
619 // Consume next argument
620 ptr++
621 case 0:
622 // Don't consume any arguments
623 default:
624 ptr = verb.Value + 1
625 }
626 }
627
628 if !hasExplicit && ptr <= len(args) {
629 call.Invalid(fmt.Sprintf("Printf call needs %d args but has %d args", ptr-1, len(args)))
630 }
631}
632
633func checkAtomicAlignmentImpl(call *Call) {
634 sizes := call.Pass.TypesSizes
635 if sizes.Sizeof(types.Typ[types.Uintptr]) != 4 {
636 // Not running on a 32-bit platform
637 return
638 }
639 v, ok := call.Args[0].Value.Value.(*ssa.FieldAddr)
640 if !ok {
641 // TODO(dh): also check indexing into arrays and slices
642 return
643 }
644 T := v.X.Type().Underlying().(*types.Pointer).Elem().Underlying().(*types.Struct)
645 fields := make([]*types.Var, 0, T.NumFields())
646 for i := 0; i < T.NumFields() && i <= v.Field; i++ {
647 fields = append(fields, T.Field(i))
648 }
649
650 off := sizes.Offsetsof(fields)[v.Field]
651 if off%8 != 0 {
652 msg := fmt.Sprintf("address of non 64-bit aligned field %s passed to %s",
653 T.Field(v.Field).Name(),
654 CallName(call.Instr.Common()))
655 call.Invalid(msg)
656 }
657}
658
659func checkNoopMarshalImpl(argN int, meths ...string) CallCheck {
660 return func(call *Call) {
661 if IsGenerated(call.Pass, call.Instr.Pos()) {
662 return
663 }
664 arg := call.Args[argN]
665 T := arg.Value.Value.Type()
666 Ts, ok := Dereference(T).Underlying().(*types.Struct)
667 if !ok {
668 return
669 }
670 if Ts.NumFields() == 0 {
671 return
672 }
673 fields := FlattenFields(Ts)
674 for _, field := range fields {
675 if field.Var.Exported() {
676 return
677 }
678 }
679 // OPT(dh): we could use a method set cache here
680 ms := call.Instr.Parent().Prog.MethodSets.MethodSet(T)
681 // TODO(dh): we're not checking the signature, which can cause false negatives.
682 // This isn't a huge problem, however, since vet complains about incorrect signatures.
683 for _, meth := range meths {
684 if ms.Lookup(nil, meth) != nil {
685 return
686 }
687 }
688 arg.Invalid("struct doesn't have any exported fields, nor custom marshaling")
689 }
690}
691
692func checkUnsupportedMarshalImpl(argN int, tag string, meths ...string) CallCheck {
693 // TODO(dh): flag slices and maps of unsupported types
694 return func(call *Call) {
695 msCache := &call.Instr.Parent().Prog.MethodSets
696
697 arg := call.Args[argN]
698 T := arg.Value.Value.Type()
699 Ts, ok := Dereference(T).Underlying().(*types.Struct)
700 if !ok {
701 return
702 }
703 ms := msCache.MethodSet(T)
704 // TODO(dh): we're not checking the signature, which can cause false negatives.
705 // This isn't a huge problem, however, since vet complains about incorrect signatures.
706 for _, meth := range meths {
707 if ms.Lookup(nil, meth) != nil {
708 return
709 }
710 }
711 fields := FlattenFields(Ts)
712 for _, field := range fields {
713 if !(field.Var.Exported()) {
714 continue
715 }
716 if reflect.StructTag(field.Tag).Get(tag) == "-" {
717 continue
718 }
719 ms := msCache.MethodSet(field.Var.Type())
720 // TODO(dh): we're not checking the signature, which can cause false negatives.
721 // This isn't a huge problem, however, since vet complains about incorrect signatures.
722 for _, meth := range meths {
723 if ms.Lookup(nil, meth) != nil {
724 return
725 }
726 }
727 switch field.Var.Type().Underlying().(type) {
728 case *types.Chan, *types.Signature:
729 arg.Invalid(fmt.Sprintf("trying to marshal chan or func value, field %s", fieldPath(T, field.Path)))
730 }
731 }
732 }
733}
734
735func fieldPath(start types.Type, indices []int) string {
736 p := start.String()
737 for _, idx := range indices {
738 field := Dereference(start).Underlying().(*types.Struct).Field(idx)
739 start = field.Type()
740 p += "." + field.Name()
741 }
742 return p
743}
744
745func isInLoop(b *ssa.BasicBlock) bool {
746 sets := functions.FindLoops(b.Parent())
747 for _, set := range sets {
748 if set.Has(b) {
749 return true
750 }
751 }
752 return false
753}
754
755func CheckUntrappableSignal(pass *analysis.Pass) (interface{}, error) {
756 fn := func(node ast.Node) {
757 call := node.(*ast.CallExpr)
758 if !IsCallToAnyAST(pass, call,
759 "os/signal.Ignore", "os/signal.Notify", "os/signal.Reset") {
760 return
761 }
762 for _, arg := range call.Args {
763 if conv, ok := arg.(*ast.CallExpr); ok && isName(pass, conv.Fun, "os.Signal") {
764 arg = conv.Args[0]
765 }
766
767 if isName(pass, arg, "os.Kill") || isName(pass, arg, "syscall.SIGKILL") {
768 ReportNodef(pass, arg, "%s cannot be trapped (did you mean syscall.SIGTERM?)", Render(pass, arg))
769 }
770 if isName(pass, arg, "syscall.SIGSTOP") {
771 ReportNodef(pass, arg, "%s signal cannot be trapped", Render(pass, arg))
772 }
773 }
774 }
775 pass.ResultOf[inspect.Analyzer].(*inspector.Inspector).Preorder([]ast.Node{(*ast.CallExpr)(nil)}, fn)
776 return nil, nil
777}
778
779func CheckTemplate(pass *analysis.Pass) (interface{}, error) {
780 fn := func(node ast.Node) {
781 call := node.(*ast.CallExpr)
782 var kind string
783 if IsCallToAST(pass, call, "(*text/template.Template).Parse") {
784 kind = "text"
785 } else if IsCallToAST(pass, call, "(*html/template.Template).Parse") {
786 kind = "html"
787 } else {
788 return
789 }
790 sel := call.Fun.(*ast.SelectorExpr)
791 if !IsCallToAST(pass, sel.X, "text/template.New") &&
792 !IsCallToAST(pass, sel.X, "html/template.New") {
793 // TODO(dh): this is a cheap workaround for templates with
794 // different delims. A better solution with less false
795 // negatives would use data flow analysis to see where the
796 // template comes from and where it has been
797 return
798 }
799 s, ok := ExprToString(pass, call.Args[Arg("(*text/template.Template).Parse.text")])
800 if !ok {
801 return
802 }
803 var err error
804 switch kind {
805 case "text":
806 _, err = texttemplate.New("").Parse(s)
807 case "html":
808 _, err = htmltemplate.New("").Parse(s)
809 }
810 if err != nil {
811 // TODO(dominikh): whitelist other parse errors, if any
812 if strings.Contains(err.Error(), "unexpected") {
813 ReportNodef(pass, call.Args[Arg("(*text/template.Template).Parse.text")], "%s", err)
814 }
815 }
816 }
817 pass.ResultOf[inspect.Analyzer].(*inspector.Inspector).Preorder([]ast.Node{(*ast.CallExpr)(nil)}, fn)
818 return nil, nil
819}
820
821func CheckTimeSleepConstant(pass *analysis.Pass) (interface{}, error) {
822 fn := func(node ast.Node) {
823 call := node.(*ast.CallExpr)
824 if !IsCallToAST(pass, call, "time.Sleep") {
825 return
826 }
827 lit, ok := call.Args[Arg("time.Sleep.d")].(*ast.BasicLit)
828 if !ok {
829 return
830 }
831 n, err := strconv.Atoi(lit.Value)
832 if err != nil {
833 return
834 }
835 if n == 0 || n > 120 {
836 // time.Sleep(0) is a seldom used pattern in concurrency
837 // tests. >120 might be intentional. 120 was chosen
838 // because the user could've meant 2 minutes.
839 return
840 }
841 recommendation := "time.Sleep(time.Nanosecond)"
842 if n != 1 {
843 recommendation = fmt.Sprintf("time.Sleep(%d * time.Nanosecond)", n)
844 }
845 ReportNodef(pass, call.Args[Arg("time.Sleep.d")],
846 "sleeping for %d nanoseconds is probably a bug. Be explicit if it isn't: %s", n, recommendation)
847 }
848 pass.ResultOf[inspect.Analyzer].(*inspector.Inspector).Preorder([]ast.Node{(*ast.CallExpr)(nil)}, fn)
849 return nil, nil
850}
851
852func CheckWaitgroupAdd(pass *analysis.Pass) (interface{}, error) {
853 fn := func(node ast.Node) {
854 g := node.(*ast.GoStmt)
855 fun, ok := g.Call.Fun.(*ast.FuncLit)
856 if !ok {
857 return
858 }
859 if len(fun.Body.List) == 0 {
860 return
861 }
862 stmt, ok := fun.Body.List[0].(*ast.ExprStmt)
863 if !ok {
864 return
865 }
866 if IsCallToAST(pass, stmt.X, "(*sync.WaitGroup).Add") {
867 ReportNodef(pass, stmt, "should call %s before starting the goroutine to avoid a race",
868 Render(pass, stmt))
869 }
870 }
871 pass.ResultOf[inspect.Analyzer].(*inspector.Inspector).Preorder([]ast.Node{(*ast.GoStmt)(nil)}, fn)
872 return nil, nil
873}
874
875func CheckInfiniteEmptyLoop(pass *analysis.Pass) (interface{}, error) {
876 fn := func(node ast.Node) {
877 loop := node.(*ast.ForStmt)
878 if len(loop.Body.List) != 0 || loop.Post != nil {
879 return
880 }
881
882 if loop.Init != nil {
883 // TODO(dh): this isn't strictly necessary, it just makes
884 // the check easier.
885 return
886 }
887 // An empty loop is bad news in two cases: 1) The loop has no
888 // condition. In that case, it's just a loop that spins
889 // forever and as fast as it can, keeping a core busy. 2) The
890 // loop condition only consists of variable or field reads and
891 // operators on those. The only way those could change their
892 // value is with unsynchronised access, which constitutes a
893 // data race.
894 //
895 // If the condition contains any function calls, its behaviour
896 // is dynamic and the loop might terminate. Similarly for
897 // channel receives.
898
899 if loop.Cond != nil {
900 if hasSideEffects(loop.Cond) {
901 return
902 }
903 if ident, ok := loop.Cond.(*ast.Ident); ok {
904 if k, ok := pass.TypesInfo.ObjectOf(ident).(*types.Const); ok {
905 if !constant.BoolVal(k.Val()) {
906 // don't flag `for false {}` loops. They're a debug aid.
907 return
908 }
909 }
910 }
911 ReportNodef(pass, loop, "loop condition never changes or has a race condition")
912 }
913 ReportNodef(pass, loop, "this loop will spin, using 100%% CPU")
914 }
915 pass.ResultOf[inspect.Analyzer].(*inspector.Inspector).Preorder([]ast.Node{(*ast.ForStmt)(nil)}, fn)
916 return nil, nil
917}
918
919func CheckDeferInInfiniteLoop(pass *analysis.Pass) (interface{}, error) {
920 fn := func(node ast.Node) {
921 mightExit := false
922 var defers []ast.Stmt
923 loop := node.(*ast.ForStmt)
924 if loop.Cond != nil {
925 return
926 }
927 fn2 := func(node ast.Node) bool {
928 switch stmt := node.(type) {
929 case *ast.ReturnStmt:
930 mightExit = true
931 return false
932 case *ast.BranchStmt:
933 // TODO(dominikh): if this sees a break in a switch or
934 // select, it doesn't check if it breaks the loop or
935 // just the select/switch. This causes some false
936 // negatives.
937 if stmt.Tok == token.BREAK {
938 mightExit = true
939 return false
940 }
941 case *ast.DeferStmt:
942 defers = append(defers, stmt)
943 case *ast.FuncLit:
944 // Don't look into function bodies
945 return false
946 }
947 return true
948 }
949 ast.Inspect(loop.Body, fn2)
950 if mightExit {
951 return
952 }
953 for _, stmt := range defers {
954 ReportNodef(pass, stmt, "defers in this infinite loop will never run")
955 }
956 }
957 pass.ResultOf[inspect.Analyzer].(*inspector.Inspector).Preorder([]ast.Node{(*ast.ForStmt)(nil)}, fn)
958 return nil, nil
959}
960
961func CheckDubiousDeferInChannelRangeLoop(pass *analysis.Pass) (interface{}, error) {
962 fn := func(node ast.Node) {
963 loop := node.(*ast.RangeStmt)
964 typ := pass.TypesInfo.TypeOf(loop.X)
965 _, ok := typ.Underlying().(*types.Chan)
966 if !ok {
967 return
968 }
969 fn2 := func(node ast.Node) bool {
970 switch stmt := node.(type) {
971 case *ast.DeferStmt:
972 ReportNodef(pass, stmt, "defers in this range loop won't run unless the channel gets closed")
973 case *ast.FuncLit:
974 // Don't look into function bodies
975 return false
976 }
977 return true
978 }
979 ast.Inspect(loop.Body, fn2)
980 }
981 pass.ResultOf[inspect.Analyzer].(*inspector.Inspector).Preorder([]ast.Node{(*ast.RangeStmt)(nil)}, fn)
982 return nil, nil
983}
984
985func CheckTestMainExit(pass *analysis.Pass) (interface{}, error) {
986 var (
987 fnmain ast.Node
988 callsExit bool
989 callsRun bool
990 arg types.Object
991 )
992 fn := func(node ast.Node, push bool) bool {
993 if !push {
994 if fnmain != nil && node == fnmain {
995 if !callsExit && callsRun {
996 ReportNodef(pass, fnmain, "TestMain should call os.Exit to set exit code")
997 }
998 fnmain = nil
999 callsExit = false
1000 callsRun = false
1001 arg = nil
1002 }
1003 return true
1004 }
1005
1006 switch node := node.(type) {
1007 case *ast.FuncDecl:
1008 if fnmain != nil {
1009 return true
1010 }
1011 if !isTestMain(pass, node) {
1012 return false
1013 }
1014 fnmain = node
1015 arg = pass.TypesInfo.ObjectOf(node.Type.Params.List[0].Names[0])
1016 return true
1017 case *ast.CallExpr:
1018 if IsCallToAST(pass, node, "os.Exit") {
1019 callsExit = true
1020 return false
1021 }
1022 sel, ok := node.Fun.(*ast.SelectorExpr)
1023 if !ok {
1024 return true
1025 }
1026 ident, ok := sel.X.(*ast.Ident)
1027 if !ok {
1028 return true
1029 }
1030 if arg != pass.TypesInfo.ObjectOf(ident) {
1031 return true
1032 }
1033 if sel.Sel.Name == "Run" {
1034 callsRun = true
1035 return false
1036 }
1037 return true
1038 default:
1039 // unreachable
1040 return true
1041 }
1042 }
1043 pass.ResultOf[inspect.Analyzer].(*inspector.Inspector).Nodes([]ast.Node{(*ast.FuncDecl)(nil), (*ast.CallExpr)(nil)}, fn)
1044 return nil, nil
1045}
1046
1047func isTestMain(pass *analysis.Pass, decl *ast.FuncDecl) bool {
1048 if decl.Name.Name != "TestMain" {
1049 return false
1050 }
1051 if len(decl.Type.Params.List) != 1 {
1052 return false
1053 }
1054 arg := decl.Type.Params.List[0]
1055 if len(arg.Names) != 1 {
1056 return false
1057 }
1058 return IsOfType(pass, arg.Type, "*testing.M")
1059}
1060
1061func CheckExec(pass *analysis.Pass) (interface{}, error) {
1062 fn := func(node ast.Node) {
1063 call := node.(*ast.CallExpr)
1064 if !IsCallToAST(pass, call, "os/exec.Command") {
1065 return
1066 }
1067 val, ok := ExprToString(pass, call.Args[Arg("os/exec.Command.name")])
1068 if !ok {
1069 return
1070 }
1071 if !strings.Contains(val, " ") || strings.Contains(val, `\`) || strings.Contains(val, "/") {
1072 return
1073 }
1074 ReportNodef(pass, call.Args[Arg("os/exec.Command.name")],
1075 "first argument to exec.Command looks like a shell command, but a program name or path are expected")
1076 }
1077 pass.ResultOf[inspect.Analyzer].(*inspector.Inspector).Preorder([]ast.Node{(*ast.CallExpr)(nil)}, fn)
1078 return nil, nil
1079}
1080
1081func CheckLoopEmptyDefault(pass *analysis.Pass) (interface{}, error) {
1082 fn := func(node ast.Node) {
1083 loop := node.(*ast.ForStmt)
1084 if len(loop.Body.List) != 1 || loop.Cond != nil || loop.Init != nil {
1085 return
1086 }
1087 sel, ok := loop.Body.List[0].(*ast.SelectStmt)
1088 if !ok {
1089 return
1090 }
1091 for _, c := range sel.Body.List {
1092 if comm, ok := c.(*ast.CommClause); ok && comm.Comm == nil && len(comm.Body) == 0 {
1093 ReportNodef(pass, comm, "should not have an empty default case in a for+select loop. The loop will spin.")
1094 }
1095 }
1096 }
1097 pass.ResultOf[inspect.Analyzer].(*inspector.Inspector).Preorder([]ast.Node{(*ast.ForStmt)(nil)}, fn)
1098 return nil, nil
1099}
1100
1101func CheckLhsRhsIdentical(pass *analysis.Pass) (interface{}, error) {
1102 fn := func(node ast.Node) {
1103 op := node.(*ast.BinaryExpr)
1104 switch op.Op {
1105 case token.EQL, token.NEQ:
1106 if basic, ok := pass.TypesInfo.TypeOf(op.X).Underlying().(*types.Basic); ok {
1107 if kind := basic.Kind(); kind == types.Float32 || kind == types.Float64 {
1108 // f == f and f != f might be used to check for NaN
1109 return
1110 }
1111 }
1112 case token.SUB, token.QUO, token.AND, token.REM, token.OR, token.XOR, token.AND_NOT,
1113 token.LAND, token.LOR, token.LSS, token.GTR, token.LEQ, token.GEQ:
1114 default:
1115 // For some ops, such as + and *, it can make sense to
1116 // have identical operands
1117 return
1118 }
1119
1120 if Render(pass, op.X) != Render(pass, op.Y) {
1121 return
1122 }
1123 l1, ok1 := op.X.(*ast.BasicLit)
1124 l2, ok2 := op.Y.(*ast.BasicLit)
1125 if ok1 && ok2 && l1.Kind == token.INT && l2.Kind == l1.Kind && l1.Value == "0" && l2.Value == l1.Value && IsGenerated(pass, l1.Pos()) {
1126 // cgo generates the following function call:
1127 // _cgoCheckPointer(_cgoBase0, 0 == 0) – it uses 0 == 0
1128 // instead of true in case the user shadowed the
1129 // identifier. Ideally we'd restrict this exception to
1130 // calls of _cgoCheckPointer, but it's not worth the
1131 // hassle of keeping track of the stack. <lit> <op> <lit>
1132 // are very rare to begin with, and we're mostly checking
1133 // for them to catch typos such as 1 == 1 where the user
1134 // meant to type i == 1. The odds of a false negative for
1135 // 0 == 0 are slim.
1136 return
1137 }
1138 ReportNodef(pass, op, "identical expressions on the left and right side of the '%s' operator", op.Op)
1139 }
1140 pass.ResultOf[inspect.Analyzer].(*inspector.Inspector).Preorder([]ast.Node{(*ast.BinaryExpr)(nil)}, fn)
1141 return nil, nil
1142}
1143
1144func CheckScopedBreak(pass *analysis.Pass) (interface{}, error) {
1145 fn := func(node ast.Node) {
1146 var body *ast.BlockStmt
1147 switch node := node.(type) {
1148 case *ast.ForStmt:
1149 body = node.Body
1150 case *ast.RangeStmt:
1151 body = node.Body
1152 default:
1153 panic(fmt.Sprintf("unreachable: %T", node))
1154 }
1155 for _, stmt := range body.List {
1156 var blocks [][]ast.Stmt
1157 switch stmt := stmt.(type) {
1158 case *ast.SwitchStmt:
1159 for _, c := range stmt.Body.List {
1160 blocks = append(blocks, c.(*ast.CaseClause).Body)
1161 }
1162 case *ast.SelectStmt:
1163 for _, c := range stmt.Body.List {
1164 blocks = append(blocks, c.(*ast.CommClause).Body)
1165 }
1166 default:
1167 continue
1168 }
1169
1170 for _, body := range blocks {
1171 if len(body) == 0 {
1172 continue
1173 }
1174 lasts := []ast.Stmt{body[len(body)-1]}
1175 // TODO(dh): unfold all levels of nested block
1176 // statements, not just a single level if statement
1177 if ifs, ok := lasts[0].(*ast.IfStmt); ok {
1178 if len(ifs.Body.List) == 0 {
1179 continue
1180 }
1181 lasts[0] = ifs.Body.List[len(ifs.Body.List)-1]
1182
1183 if block, ok := ifs.Else.(*ast.BlockStmt); ok {
1184 if len(block.List) != 0 {
1185 lasts = append(lasts, block.List[len(block.List)-1])
1186 }
1187 }
1188 }
1189 for _, last := range lasts {
1190 branch, ok := last.(*ast.BranchStmt)
1191 if !ok || branch.Tok != token.BREAK || branch.Label != nil {
1192 continue
1193 }
1194 ReportNodef(pass, branch, "ineffective break statement. Did you mean to break out of the outer loop?")
1195 }
1196 }
1197 }
1198 }
1199 pass.ResultOf[inspect.Analyzer].(*inspector.Inspector).Preorder([]ast.Node{(*ast.ForStmt)(nil), (*ast.RangeStmt)(nil)}, fn)
1200 return nil, nil
1201}
1202
1203func CheckUnsafePrintf(pass *analysis.Pass) (interface{}, error) {
1204 fn := func(node ast.Node) {
1205 call := node.(*ast.CallExpr)
1206 var arg int
1207 if IsCallToAnyAST(pass, call, "fmt.Printf", "fmt.Sprintf", "log.Printf") {
1208 arg = Arg("fmt.Printf.format")
1209 } else if IsCallToAnyAST(pass, call, "fmt.Fprintf") {
1210 arg = Arg("fmt.Fprintf.format")
1211 } else {
1212 return
1213 }
1214 if len(call.Args) != arg+1 {
1215 return
1216 }
1217 switch call.Args[arg].(type) {
1218 case *ast.CallExpr, *ast.Ident:
1219 default:
1220 return
1221 }
1222 ReportNodef(pass, call.Args[arg],
1223 "printf-style function with dynamic format string and no further arguments should use print-style function instead")
1224 }
1225 pass.ResultOf[inspect.Analyzer].(*inspector.Inspector).Preorder([]ast.Node{(*ast.CallExpr)(nil)}, fn)
1226 return nil, nil
1227}
1228
1229func CheckEarlyDefer(pass *analysis.Pass) (interface{}, error) {
1230 fn := func(node ast.Node) {
1231 block := node.(*ast.BlockStmt)
1232 if len(block.List) < 2 {
1233 return
1234 }
1235 for i, stmt := range block.List {
1236 if i == len(block.List)-1 {
1237 break
1238 }
1239 assign, ok := stmt.(*ast.AssignStmt)
1240 if !ok {
1241 continue
1242 }
1243 if len(assign.Rhs) != 1 {
1244 continue
1245 }
1246 if len(assign.Lhs) < 2 {
1247 continue
1248 }
1249 if lhs, ok := assign.Lhs[len(assign.Lhs)-1].(*ast.Ident); ok && lhs.Name == "_" {
1250 continue
1251 }
1252 call, ok := assign.Rhs[0].(*ast.CallExpr)
1253 if !ok {
1254 continue
1255 }
1256 sig, ok := pass.TypesInfo.TypeOf(call.Fun).(*types.Signature)
1257 if !ok {
1258 continue
1259 }
1260 if sig.Results().Len() < 2 {
1261 continue
1262 }
1263 last := sig.Results().At(sig.Results().Len() - 1)
1264 // FIXME(dh): check that it's error from universe, not
1265 // another type of the same name
1266 if last.Type().String() != "error" {
1267 continue
1268 }
1269 lhs, ok := assign.Lhs[0].(*ast.Ident)
1270 if !ok {
1271 continue
1272 }
1273 def, ok := block.List[i+1].(*ast.DeferStmt)
1274 if !ok {
1275 continue
1276 }
1277 sel, ok := def.Call.Fun.(*ast.SelectorExpr)
1278 if !ok {
1279 continue
1280 }
1281 ident, ok := selectorX(sel).(*ast.Ident)
1282 if !ok {
1283 continue
1284 }
1285 if ident.Obj != lhs.Obj {
1286 continue
1287 }
1288 if sel.Sel.Name != "Close" {
1289 continue
1290 }
1291 ReportNodef(pass, def, "should check returned error before deferring %s", Render(pass, def.Call))
1292 }
1293 }
1294 pass.ResultOf[inspect.Analyzer].(*inspector.Inspector).Preorder([]ast.Node{(*ast.BlockStmt)(nil)}, fn)
1295 return nil, nil
1296}
1297
1298func selectorX(sel *ast.SelectorExpr) ast.Node {
1299 switch x := sel.X.(type) {
1300 case *ast.SelectorExpr:
1301 return selectorX(x)
1302 default:
1303 return x
1304 }
1305}
1306
1307func CheckEmptyCriticalSection(pass *analysis.Pass) (interface{}, error) {
1308 // Initially it might seem like this check would be easier to
1309 // implement in SSA. After all, we're only checking for two
1310 // consecutive method calls. In reality, however, there may be any
1311 // number of other instructions between the lock and unlock, while
1312 // still constituting an empty critical section. For example,
1313 // given `m.x().Lock(); m.x().Unlock()`, there will be a call to
1314 // x(). In the AST-based approach, this has a tiny potential for a
1315 // false positive (the second call to x might be doing work that
1316 // is protected by the mutex). In an SSA-based approach, however,
1317 // it would miss a lot of real bugs.
1318
1319 mutexParams := func(s ast.Stmt) (x ast.Expr, funcName string, ok bool) {
1320 expr, ok := s.(*ast.ExprStmt)
1321 if !ok {
1322 return nil, "", false
1323 }
1324 call, ok := expr.X.(*ast.CallExpr)
1325 if !ok {
1326 return nil, "", false
1327 }
1328 sel, ok := call.Fun.(*ast.SelectorExpr)
1329 if !ok {
1330 return nil, "", false
1331 }
1332
1333 fn, ok := pass.TypesInfo.ObjectOf(sel.Sel).(*types.Func)
1334 if !ok {
1335 return nil, "", false
1336 }
1337 sig := fn.Type().(*types.Signature)
1338 if sig.Params().Len() != 0 || sig.Results().Len() != 0 {
1339 return nil, "", false
1340 }
1341
1342 return sel.X, fn.Name(), true
1343 }
1344
1345 fn := func(node ast.Node) {
1346 block := node.(*ast.BlockStmt)
1347 if len(block.List) < 2 {
1348 return
1349 }
1350 for i := range block.List[:len(block.List)-1] {
1351 sel1, method1, ok1 := mutexParams(block.List[i])
1352 sel2, method2, ok2 := mutexParams(block.List[i+1])
1353
1354 if !ok1 || !ok2 || Render(pass, sel1) != Render(pass, sel2) {
1355 continue
1356 }
1357 if (method1 == "Lock" && method2 == "Unlock") ||
1358 (method1 == "RLock" && method2 == "RUnlock") {
1359 ReportNodef(pass, block.List[i+1], "empty critical section")
1360 }
1361 }
1362 }
1363 pass.ResultOf[inspect.Analyzer].(*inspector.Inspector).Preorder([]ast.Node{(*ast.BlockStmt)(nil)}, fn)
1364 return nil, nil
1365}
1366
1367// cgo produces code like fn(&*_Cvar_kSomeCallbacks) which we don't
1368// want to flag.
1369var cgoIdent = regexp.MustCompile(`^_C(func|var)_.+$`)
1370
1371func CheckIneffectiveCopy(pass *analysis.Pass) (interface{}, error) {
1372 fn := func(node ast.Node) {
1373 if unary, ok := node.(*ast.UnaryExpr); ok {
1374 if star, ok := unary.X.(*ast.StarExpr); ok && unary.Op == token.AND {
1375 ident, ok := star.X.(*ast.Ident)
1376 if !ok || !cgoIdent.MatchString(ident.Name) {
1377 ReportNodef(pass, unary, "&*x will be simplified to x. It will not copy x.")
1378 }
1379 }
1380 }
1381
1382 if star, ok := node.(*ast.StarExpr); ok {
1383 if unary, ok := star.X.(*ast.UnaryExpr); ok && unary.Op == token.AND {
1384 ReportNodef(pass, star, "*&x will be simplified to x. It will not copy x.")
1385 }
1386 }
1387 }
1388 pass.ResultOf[inspect.Analyzer].(*inspector.Inspector).Preorder([]ast.Node{(*ast.UnaryExpr)(nil), (*ast.StarExpr)(nil)}, fn)
1389 return nil, nil
1390}
1391
1392func CheckDiffSizeComparison(pass *analysis.Pass) (interface{}, error) {
1393 ranges := pass.ResultOf[valueRangesAnalyzer].(map[*ssa.Function]vrp.Ranges)
1394 for _, ssafn := range pass.ResultOf[buildssa.Analyzer].(*buildssa.SSA).SrcFuncs {
1395 for _, b := range ssafn.Blocks {
1396 for _, ins := range b.Instrs {
1397 binop, ok := ins.(*ssa.BinOp)
1398 if !ok {
1399 continue
1400 }
1401 if binop.Op != token.EQL && binop.Op != token.NEQ {
1402 continue
1403 }
1404 _, ok1 := binop.X.(*ssa.Slice)
1405 _, ok2 := binop.Y.(*ssa.Slice)
1406 if !ok1 && !ok2 {
1407 continue
1408 }
1409 r := ranges[ssafn]
1410 r1, ok1 := r.Get(binop.X).(vrp.StringInterval)
1411 r2, ok2 := r.Get(binop.Y).(vrp.StringInterval)
1412 if !ok1 || !ok2 {
1413 continue
1414 }
1415 if r1.Length.Intersection(r2.Length).Empty() {
1416 pass.Reportf(binop.Pos(), "comparing strings of different sizes for equality will always return false")
1417 }
1418 }
1419 }
1420 }
1421 return nil, nil
1422}
1423
1424func CheckCanonicalHeaderKey(pass *analysis.Pass) (interface{}, error) {
1425 fn := func(node ast.Node, push bool) bool {
1426 if !push {
1427 return false
1428 }
1429 assign, ok := node.(*ast.AssignStmt)
1430 if ok {
1431 // TODO(dh): This risks missing some Header reads, for
1432 // example in `h1["foo"] = h2["foo"]` – these edge
1433 // cases are probably rare enough to ignore for now.
1434 for _, expr := range assign.Lhs {
1435 op, ok := expr.(*ast.IndexExpr)
1436 if !ok {
1437 continue
1438 }
1439 if IsOfType(pass, op.X, "net/http.Header") {
1440 return false
1441 }
1442 }
1443 return true
1444 }
1445 op, ok := node.(*ast.IndexExpr)
1446 if !ok {
1447 return true
1448 }
1449 if !IsOfType(pass, op.X, "net/http.Header") {
1450 return true
1451 }
1452 s, ok := ExprToString(pass, op.Index)
1453 if !ok {
1454 return true
1455 }
1456 if s == http.CanonicalHeaderKey(s) {
1457 return true
1458 }
1459 ReportNodef(pass, op, "keys in http.Header are canonicalized, %q is not canonical; fix the constant or use http.CanonicalHeaderKey", s)
1460 return true
1461 }
1462 pass.ResultOf[inspect.Analyzer].(*inspector.Inspector).Nodes([]ast.Node{(*ast.AssignStmt)(nil), (*ast.IndexExpr)(nil)}, fn)
1463 return nil, nil
1464}
1465
1466func CheckBenchmarkN(pass *analysis.Pass) (interface{}, error) {
1467 fn := func(node ast.Node) {
1468 assign := node.(*ast.AssignStmt)
1469 if len(assign.Lhs) != 1 || len(assign.Rhs) != 1 {
1470 return
1471 }
1472 sel, ok := assign.Lhs[0].(*ast.SelectorExpr)
1473 if !ok {
1474 return
1475 }
1476 if sel.Sel.Name != "N" {
1477 return
1478 }
1479 if !IsOfType(pass, sel.X, "*testing.B") {
1480 return
1481 }
1482 ReportNodef(pass, assign, "should not assign to %s", Render(pass, sel))
1483 }
1484 pass.ResultOf[inspect.Analyzer].(*inspector.Inspector).Preorder([]ast.Node{(*ast.AssignStmt)(nil)}, fn)
1485 return nil, nil
1486}
1487
1488func CheckUnreadVariableValues(pass *analysis.Pass) (interface{}, error) {
1489 for _, ssafn := range pass.ResultOf[buildssa.Analyzer].(*buildssa.SSA).SrcFuncs {
1490 if IsExample(ssafn) {
1491 continue
1492 }
1493 node := ssafn.Syntax()
1494 if node == nil {
1495 continue
1496 }
1497 if gen, ok := Generator(pass, node.Pos()); ok && gen == facts.Goyacc {
1498 // Don't flag unused values in code generated by goyacc.
1499 // There may be hundreds of those due to the way the state
1500 // machine is constructed.
1501 continue
1502 }
1503
1504 switchTags := map[ssa.Value]struct{}{}
1505 ast.Inspect(node, func(node ast.Node) bool {
1506 s, ok := node.(*ast.SwitchStmt)
1507 if !ok {
1508 return true
1509 }
1510 v, _ := ssafn.ValueForExpr(s.Tag)
1511 switchTags[v] = struct{}{}
1512 return true
1513 })
1514
1515 hasUse := func(v ssa.Value) bool {
1516 if _, ok := switchTags[v]; ok {
1517 return true
1518 }
1519 refs := v.Referrers()
1520 if refs == nil {
1521 // TODO investigate why refs can be nil
1522 return true
1523 }
1524 return len(FilterDebug(*refs)) > 0
1525 }
1526
1527 ast.Inspect(node, func(node ast.Node) bool {
1528 assign, ok := node.(*ast.AssignStmt)
1529 if !ok {
1530 return true
1531 }
1532 if len(assign.Lhs) > 1 && len(assign.Rhs) == 1 {
1533 // Either a function call with multiple return values,
1534 // or a comma-ok assignment
1535
1536 val, _ := ssafn.ValueForExpr(assign.Rhs[0])
1537 if val == nil {
1538 return true
1539 }
1540 refs := val.Referrers()
1541 if refs == nil {
1542 return true
1543 }
1544 for _, ref := range *refs {
1545 ex, ok := ref.(*ssa.Extract)
1546 if !ok {
1547 continue
1548 }
1549 if !hasUse(ex) {
1550 lhs := assign.Lhs[ex.Index]
1551 if ident, ok := lhs.(*ast.Ident); !ok || ok && ident.Name == "_" {
1552 continue
1553 }
1554 ReportNodef(pass, lhs, "this value of %s is never used", lhs)
1555 }
1556 }
1557 return true
1558 }
1559 for i, lhs := range assign.Lhs {
1560 rhs := assign.Rhs[i]
1561 if ident, ok := lhs.(*ast.Ident); !ok || ok && ident.Name == "_" {
1562 continue
1563 }
1564 val, _ := ssafn.ValueForExpr(rhs)
1565 if val == nil {
1566 continue
1567 }
1568
1569 if !hasUse(val) {
1570 ReportNodef(pass, lhs, "this value of %s is never used", lhs)
1571 }
1572 }
1573 return true
1574 })
1575 }
1576 return nil, nil
1577}
1578
1579func CheckPredeterminedBooleanExprs(pass *analysis.Pass) (interface{}, error) {
1580 for _, ssafn := range pass.ResultOf[buildssa.Analyzer].(*buildssa.SSA).SrcFuncs {
1581 for _, block := range ssafn.Blocks {
1582 for _, ins := range block.Instrs {
1583 ssabinop, ok := ins.(*ssa.BinOp)
1584 if !ok {
1585 continue
1586 }
1587 switch ssabinop.Op {
1588 case token.GTR, token.LSS, token.EQL, token.NEQ, token.LEQ, token.GEQ:
1589 default:
1590 continue
1591 }
1592
1593 xs, ok1 := consts(ssabinop.X, nil, nil)
1594 ys, ok2 := consts(ssabinop.Y, nil, nil)
1595 if !ok1 || !ok2 || len(xs) == 0 || len(ys) == 0 {
1596 continue
1597 }
1598
1599 trues := 0
1600 for _, x := range xs {
1601 for _, y := range ys {
1602 if x.Value == nil {
1603 if y.Value == nil {
1604 trues++
1605 }
1606 continue
1607 }
1608 if constant.Compare(x.Value, ssabinop.Op, y.Value) {
1609 trues++
1610 }
1611 }
1612 }
1613 b := trues != 0
1614 if trues == 0 || trues == len(xs)*len(ys) {
1615 pass.Reportf(ssabinop.Pos(), "binary expression is always %t for all possible values (%s %s %s)",
1616 b, xs, ssabinop.Op, ys)
1617 }
1618 }
1619 }
1620 }
1621 return nil, nil
1622}
1623
1624func CheckNilMaps(pass *analysis.Pass) (interface{}, error) {
1625 for _, ssafn := range pass.ResultOf[buildssa.Analyzer].(*buildssa.SSA).SrcFuncs {
1626 for _, block := range ssafn.Blocks {
1627 for _, ins := range block.Instrs {
1628 mu, ok := ins.(*ssa.MapUpdate)
1629 if !ok {
1630 continue
1631 }
1632 c, ok := mu.Map.(*ssa.Const)
1633 if !ok {
1634 continue
1635 }
1636 if c.Value != nil {
1637 continue
1638 }
1639 pass.Reportf(mu.Pos(), "assignment to nil map")
1640 }
1641 }
1642 }
1643 return nil, nil
1644}
1645
1646func CheckExtremeComparison(pass *analysis.Pass) (interface{}, error) {
1647 isobj := func(expr ast.Expr, name string) bool {
1648 sel, ok := expr.(*ast.SelectorExpr)
1649 if !ok {
1650 return false
1651 }
1652 return IsObject(pass.TypesInfo.ObjectOf(sel.Sel), name)
1653 }
1654
1655 fn := func(node ast.Node) {
1656 expr := node.(*ast.BinaryExpr)
1657 tx := pass.TypesInfo.TypeOf(expr.X)
1658 basic, ok := tx.Underlying().(*types.Basic)
1659 if !ok {
1660 return
1661 }
1662
1663 var max string
1664 var min string
1665
1666 switch basic.Kind() {
1667 case types.Uint8:
1668 max = "math.MaxUint8"
1669 case types.Uint16:
1670 max = "math.MaxUint16"
1671 case types.Uint32:
1672 max = "math.MaxUint32"
1673 case types.Uint64:
1674 max = "math.MaxUint64"
1675 case types.Uint:
1676 max = "math.MaxUint64"
1677
1678 case types.Int8:
1679 min = "math.MinInt8"
1680 max = "math.MaxInt8"
1681 case types.Int16:
1682 min = "math.MinInt16"
1683 max = "math.MaxInt16"
1684 case types.Int32:
1685 min = "math.MinInt32"
1686 max = "math.MaxInt32"
1687 case types.Int64:
1688 min = "math.MinInt64"
1689 max = "math.MaxInt64"
1690 case types.Int:
1691 min = "math.MinInt64"
1692 max = "math.MaxInt64"
1693 }
1694
1695 if (expr.Op == token.GTR || expr.Op == token.GEQ) && isobj(expr.Y, max) ||
1696 (expr.Op == token.LSS || expr.Op == token.LEQ) && isobj(expr.X, max) {
1697 ReportNodef(pass, expr, "no value of type %s is greater than %s", basic, max)
1698 }
1699 if expr.Op == token.LEQ && isobj(expr.Y, max) ||
1700 expr.Op == token.GEQ && isobj(expr.X, max) {
1701 ReportNodef(pass, expr, "every value of type %s is <= %s", basic, max)
1702 }
1703
1704 if (basic.Info() & types.IsUnsigned) != 0 {
1705 if (expr.Op == token.LSS || expr.Op == token.LEQ) && IsIntLiteral(expr.Y, "0") ||
1706 (expr.Op == token.GTR || expr.Op == token.GEQ) && IsIntLiteral(expr.X, "0") {
1707 ReportNodef(pass, expr, "no value of type %s is less than 0", basic)
1708 }
1709 if expr.Op == token.GEQ && IsIntLiteral(expr.Y, "0") ||
1710 expr.Op == token.LEQ && IsIntLiteral(expr.X, "0") {
1711 ReportNodef(pass, expr, "every value of type %s is >= 0", basic)
1712 }
1713 } else {
1714 if (expr.Op == token.LSS || expr.Op == token.LEQ) && isobj(expr.Y, min) ||
1715 (expr.Op == token.GTR || expr.Op == token.GEQ) && isobj(expr.X, min) {
1716 ReportNodef(pass, expr, "no value of type %s is less than %s", basic, min)
1717 }
1718 if expr.Op == token.GEQ && isobj(expr.Y, min) ||
1719 expr.Op == token.LEQ && isobj(expr.X, min) {
1720 ReportNodef(pass, expr, "every value of type %s is >= %s", basic, min)
1721 }
1722 }
1723
1724 }
1725 pass.ResultOf[inspect.Analyzer].(*inspector.Inspector).Preorder([]ast.Node{(*ast.BinaryExpr)(nil)}, fn)
1726 return nil, nil
1727}
1728
1729func consts(val ssa.Value, out []*ssa.Const, visitedPhis map[string]bool) ([]*ssa.Const, bool) {
1730 if visitedPhis == nil {
1731 visitedPhis = map[string]bool{}
1732 }
1733 var ok bool
1734 switch val := val.(type) {
1735 case *ssa.Phi:
1736 if visitedPhis[val.Name()] {
1737 break
1738 }
1739 visitedPhis[val.Name()] = true
1740 vals := val.Operands(nil)
1741 for _, phival := range vals {
1742 out, ok = consts(*phival, out, visitedPhis)
1743 if !ok {
1744 return nil, false
1745 }
1746 }
1747 case *ssa.Const:
1748 out = append(out, val)
1749 case *ssa.Convert:
1750 out, ok = consts(val.X, out, visitedPhis)
1751 if !ok {
1752 return nil, false
1753 }
1754 default:
1755 return nil, false
1756 }
1757 if len(out) < 2 {
1758 return out, true
1759 }
1760 uniq := []*ssa.Const{out[0]}
1761 for _, val := range out[1:] {
1762 if val.Value == uniq[len(uniq)-1].Value {
1763 continue
1764 }
1765 uniq = append(uniq, val)
1766 }
1767 return uniq, true
1768}
1769
1770func CheckLoopCondition(pass *analysis.Pass) (interface{}, error) {
1771 for _, ssafn := range pass.ResultOf[buildssa.Analyzer].(*buildssa.SSA).SrcFuncs {
1772 fn := func(node ast.Node) bool {
1773 loop, ok := node.(*ast.ForStmt)
1774 if !ok {
1775 return true
1776 }
1777 if loop.Init == nil || loop.Cond == nil || loop.Post == nil {
1778 return true
1779 }
1780 init, ok := loop.Init.(*ast.AssignStmt)
1781 if !ok || len(init.Lhs) != 1 || len(init.Rhs) != 1 {
1782 return true
1783 }
1784 cond, ok := loop.Cond.(*ast.BinaryExpr)
1785 if !ok {
1786 return true
1787 }
1788 x, ok := cond.X.(*ast.Ident)
1789 if !ok {
1790 return true
1791 }
1792 lhs, ok := init.Lhs[0].(*ast.Ident)
1793 if !ok {
1794 return true
1795 }
1796 if x.Obj != lhs.Obj {
1797 return true
1798 }
1799 if _, ok := loop.Post.(*ast.IncDecStmt); !ok {
1800 return true
1801 }
1802
1803 v, isAddr := ssafn.ValueForExpr(cond.X)
1804 if v == nil || isAddr {
1805 return true
1806 }
1807 switch v := v.(type) {
1808 case *ssa.Phi:
1809 ops := v.Operands(nil)
1810 if len(ops) != 2 {
1811 return true
1812 }
1813 _, ok := (*ops[0]).(*ssa.Const)
1814 if !ok {
1815 return true
1816 }
1817 sigma, ok := (*ops[1]).(*ssa.Sigma)
1818 if !ok {
1819 return true
1820 }
1821 if sigma.X != v {
1822 return true
1823 }
1824 case *ssa.UnOp:
1825 return true
1826 }
1827 ReportNodef(pass, cond, "variable in loop condition never changes")
1828
1829 return true
1830 }
1831 Inspect(ssafn.Syntax(), fn)
1832 }
1833 return nil, nil
1834}
1835
1836func CheckArgOverwritten(pass *analysis.Pass) (interface{}, error) {
1837 for _, ssafn := range pass.ResultOf[buildssa.Analyzer].(*buildssa.SSA).SrcFuncs {
1838 fn := func(node ast.Node) bool {
1839 var typ *ast.FuncType
1840 var body *ast.BlockStmt
1841 switch fn := node.(type) {
1842 case *ast.FuncDecl:
1843 typ = fn.Type
1844 body = fn.Body
1845 case *ast.FuncLit:
1846 typ = fn.Type
1847 body = fn.Body
1848 }
1849 if body == nil {
1850 return true
1851 }
1852 if len(typ.Params.List) == 0 {
1853 return true
1854 }
1855 for _, field := range typ.Params.List {
1856 for _, arg := range field.Names {
1857 obj := pass.TypesInfo.ObjectOf(arg)
1858 var ssaobj *ssa.Parameter
1859 for _, param := range ssafn.Params {
1860 if param.Object() == obj {
1861 ssaobj = param
1862 break
1863 }
1864 }
1865 if ssaobj == nil {
1866 continue
1867 }
1868 refs := ssaobj.Referrers()
1869 if refs == nil {
1870 continue
1871 }
1872 if len(FilterDebug(*refs)) != 0 {
1873 continue
1874 }
1875
1876 assigned := false
1877 ast.Inspect(body, func(node ast.Node) bool {
1878 assign, ok := node.(*ast.AssignStmt)
1879 if !ok {
1880 return true
1881 }
1882 for _, lhs := range assign.Lhs {
1883 ident, ok := lhs.(*ast.Ident)
1884 if !ok {
1885 continue
1886 }
1887 if pass.TypesInfo.ObjectOf(ident) == obj {
1888 assigned = true
1889 return false
1890 }
1891 }
1892 return true
1893 })
1894 if assigned {
1895 ReportNodef(pass, arg, "argument %s is overwritten before first use", arg)
1896 }
1897 }
1898 }
1899 return true
1900 }
1901 Inspect(ssafn.Syntax(), fn)
1902 }
1903 return nil, nil
1904}
1905
1906func CheckIneffectiveLoop(pass *analysis.Pass) (interface{}, error) {
1907 // This check detects some, but not all unconditional loop exits.
1908 // We give up in the following cases:
1909 //
1910 // - a goto anywhere in the loop. The goto might skip over our
1911 // return, and we don't check that it doesn't.
1912 //
1913 // - any nested, unlabelled continue, even if it is in another
1914 // loop or closure.
1915 fn := func(node ast.Node) {
1916 var body *ast.BlockStmt
1917 switch fn := node.(type) {
1918 case *ast.FuncDecl:
1919 body = fn.Body
1920 case *ast.FuncLit:
1921 body = fn.Body
1922 default:
1923 panic(fmt.Sprintf("unreachable: %T", node))
1924 }
1925 if body == nil {
1926 return
1927 }
1928 labels := map[*ast.Object]ast.Stmt{}
1929 ast.Inspect(body, func(node ast.Node) bool {
1930 label, ok := node.(*ast.LabeledStmt)
1931 if !ok {
1932 return true
1933 }
1934 labels[label.Label.Obj] = label.Stmt
1935 return true
1936 })
1937
1938 ast.Inspect(body, func(node ast.Node) bool {
1939 var loop ast.Node
1940 var body *ast.BlockStmt
1941 switch node := node.(type) {
1942 case *ast.ForStmt:
1943 body = node.Body
1944 loop = node
1945 case *ast.RangeStmt:
1946 typ := pass.TypesInfo.TypeOf(node.X)
1947 if _, ok := typ.Underlying().(*types.Map); ok {
1948 // looping once over a map is a valid pattern for
1949 // getting an arbitrary element.
1950 return true
1951 }
1952 body = node.Body
1953 loop = node
1954 default:
1955 return true
1956 }
1957 if len(body.List) < 2 {
1958 // avoid flagging the somewhat common pattern of using
1959 // a range loop to get the first element in a slice,
1960 // or the first rune in a string.
1961 return true
1962 }
1963 var unconditionalExit ast.Node
1964 hasBranching := false
1965 for _, stmt := range body.List {
1966 switch stmt := stmt.(type) {
1967 case *ast.BranchStmt:
1968 switch stmt.Tok {
1969 case token.BREAK:
1970 if stmt.Label == nil || labels[stmt.Label.Obj] == loop {
1971 unconditionalExit = stmt
1972 }
1973 case token.CONTINUE:
1974 if stmt.Label == nil || labels[stmt.Label.Obj] == loop {
1975 unconditionalExit = nil
1976 return false
1977 }
1978 }
1979 case *ast.ReturnStmt:
1980 unconditionalExit = stmt
1981 case *ast.IfStmt, *ast.ForStmt, *ast.RangeStmt, *ast.SwitchStmt, *ast.SelectStmt:
1982 hasBranching = true
1983 }
1984 }
1985 if unconditionalExit == nil || !hasBranching {
1986 return false
1987 }
1988 ast.Inspect(body, func(node ast.Node) bool {
1989 if branch, ok := node.(*ast.BranchStmt); ok {
1990
1991 switch branch.Tok {
1992 case token.GOTO:
1993 unconditionalExit = nil
1994 return false
1995 case token.CONTINUE:
1996 if branch.Label != nil && labels[branch.Label.Obj] != loop {
1997 return true
1998 }
1999 unconditionalExit = nil
2000 return false
2001 }
2002 }
2003 return true
2004 })
2005 if unconditionalExit != nil {
2006 ReportNodef(pass, unconditionalExit, "the surrounding loop is unconditionally terminated")
2007 }
2008 return true
2009 })
2010 }
2011 pass.ResultOf[inspect.Analyzer].(*inspector.Inspector).Preorder([]ast.Node{(*ast.FuncDecl)(nil), (*ast.FuncLit)(nil)}, fn)
2012 return nil, nil
2013}
2014
2015func CheckNilContext(pass *analysis.Pass) (interface{}, error) {
2016 fn := func(node ast.Node) {
2017 call := node.(*ast.CallExpr)
2018 if len(call.Args) == 0 {
2019 return
2020 }
2021 if typ, ok := pass.TypesInfo.TypeOf(call.Args[0]).(*types.Basic); !ok || typ.Kind() != types.UntypedNil {
2022 return
2023 }
2024 sig, ok := pass.TypesInfo.TypeOf(call.Fun).(*types.Signature)
2025 if !ok {
2026 return
2027 }
2028 if sig.Params().Len() == 0 {
2029 return
2030 }
2031 if !IsType(sig.Params().At(0).Type(), "context.Context") {
2032 return
2033 }
2034 ReportNodef(pass, call.Args[0],
2035 "do not pass a nil Context, even if a function permits it; pass context.TODO if you are unsure about which Context to use")
2036 }
2037 pass.ResultOf[inspect.Analyzer].(*inspector.Inspector).Preorder([]ast.Node{(*ast.CallExpr)(nil)}, fn)
2038 return nil, nil
2039}
2040
2041func CheckSeeker(pass *analysis.Pass) (interface{}, error) {
2042 fn := func(node ast.Node) {
2043 call := node.(*ast.CallExpr)
2044 sel, ok := call.Fun.(*ast.SelectorExpr)
2045 if !ok {
2046 return
2047 }
2048 if sel.Sel.Name != "Seek" {
2049 return
2050 }
2051 if len(call.Args) != 2 {
2052 return
2053 }
2054 arg0, ok := call.Args[Arg("(io.Seeker).Seek.offset")].(*ast.SelectorExpr)
2055 if !ok {
2056 return
2057 }
2058 switch arg0.Sel.Name {
2059 case "SeekStart", "SeekCurrent", "SeekEnd":
2060 default:
2061 return
2062 }
2063 pkg, ok := arg0.X.(*ast.Ident)
2064 if !ok {
2065 return
2066 }
2067 if pkg.Name != "io" {
2068 return
2069 }
2070 ReportNodef(pass, call, "the first argument of io.Seeker is the offset, but an io.Seek* constant is being used instead")
2071 }
2072 pass.ResultOf[inspect.Analyzer].(*inspector.Inspector).Preorder([]ast.Node{(*ast.CallExpr)(nil)}, fn)
2073 return nil, nil
2074}
2075
2076func CheckIneffectiveAppend(pass *analysis.Pass) (interface{}, error) {
2077 isAppend := func(ins ssa.Value) bool {
2078 call, ok := ins.(*ssa.Call)
2079 if !ok {
2080 return false
2081 }
2082 if call.Call.IsInvoke() {
2083 return false
2084 }
2085 if builtin, ok := call.Call.Value.(*ssa.Builtin); !ok || builtin.Name() != "append" {
2086 return false
2087 }
2088 return true
2089 }
2090
2091 for _, ssafn := range pass.ResultOf[buildssa.Analyzer].(*buildssa.SSA).SrcFuncs {
2092 for _, block := range ssafn.Blocks {
2093 for _, ins := range block.Instrs {
2094 val, ok := ins.(ssa.Value)
2095 if !ok || !isAppend(val) {
2096 continue
2097 }
2098
2099 isUsed := false
2100 visited := map[ssa.Instruction]bool{}
2101 var walkRefs func(refs []ssa.Instruction)
2102 walkRefs = func(refs []ssa.Instruction) {
2103 loop:
2104 for _, ref := range refs {
2105 if visited[ref] {
2106 continue
2107 }
2108 visited[ref] = true
2109 if _, ok := ref.(*ssa.DebugRef); ok {
2110 continue
2111 }
2112 switch ref := ref.(type) {
2113 case *ssa.Phi:
2114 walkRefs(*ref.Referrers())
2115 case *ssa.Sigma:
2116 walkRefs(*ref.Referrers())
2117 case ssa.Value:
2118 if !isAppend(ref) {
2119 isUsed = true
2120 } else {
2121 walkRefs(*ref.Referrers())
2122 }
2123 case ssa.Instruction:
2124 isUsed = true
2125 break loop
2126 }
2127 }
2128 }
2129 refs := val.Referrers()
2130 if refs == nil {
2131 continue
2132 }
2133 walkRefs(*refs)
2134 if !isUsed {
2135 pass.Reportf(ins.Pos(), "this result of append is never used, except maybe in other appends")
2136 }
2137 }
2138 }
2139 }
2140 return nil, nil
2141}
2142
2143func CheckConcurrentTesting(pass *analysis.Pass) (interface{}, error) {
2144 for _, ssafn := range pass.ResultOf[buildssa.Analyzer].(*buildssa.SSA).SrcFuncs {
2145 for _, block := range ssafn.Blocks {
2146 for _, ins := range block.Instrs {
2147 gostmt, ok := ins.(*ssa.Go)
2148 if !ok {
2149 continue
2150 }
2151 var fn *ssa.Function
2152 switch val := gostmt.Call.Value.(type) {
2153 case *ssa.Function:
2154 fn = val
2155 case *ssa.MakeClosure:
2156 fn = val.Fn.(*ssa.Function)
2157 default:
2158 continue
2159 }
2160 if fn.Blocks == nil {
2161 continue
2162 }
2163 for _, block := range fn.Blocks {
2164 for _, ins := range block.Instrs {
2165 call, ok := ins.(*ssa.Call)
2166 if !ok {
2167 continue
2168 }
2169 if call.Call.IsInvoke() {
2170 continue
2171 }
2172 callee := call.Call.StaticCallee()
2173 if callee == nil {
2174 continue
2175 }
2176 recv := callee.Signature.Recv()
2177 if recv == nil {
2178 continue
2179 }
2180 if !IsType(recv.Type(), "*testing.common") {
2181 continue
2182 }
2183 fn, ok := call.Call.StaticCallee().Object().(*types.Func)
2184 if !ok {
2185 continue
2186 }
2187 name := fn.Name()
2188 switch name {
2189 case "FailNow", "Fatal", "Fatalf", "SkipNow", "Skip", "Skipf":
2190 default:
2191 continue
2192 }
2193 pass.Reportf(gostmt.Pos(), "the goroutine calls T.%s, which must be called in the same goroutine as the test", name)
2194 }
2195 }
2196 }
2197 }
2198 }
2199 return nil, nil
2200}
2201
2202func eachCall(ssafn *ssa.Function, fn func(caller *ssa.Function, site ssa.CallInstruction, callee *ssa.Function)) {
2203 for _, b := range ssafn.Blocks {
2204 for _, instr := range b.Instrs {
2205 if site, ok := instr.(ssa.CallInstruction); ok {
2206 if g := site.Common().StaticCallee(); g != nil {
2207 fn(ssafn, site, g)
2208 }
2209 }
2210 }
2211 }
2212}
2213
2214func CheckCyclicFinalizer(pass *analysis.Pass) (interface{}, error) {
2215 fn := func(caller *ssa.Function, site ssa.CallInstruction, callee *ssa.Function) {
2216 if callee.RelString(nil) != "runtime.SetFinalizer" {
2217 return
2218 }
2219 arg0 := site.Common().Args[Arg("runtime.SetFinalizer.obj")]
2220 if iface, ok := arg0.(*ssa.MakeInterface); ok {
2221 arg0 = iface.X
2222 }
2223 unop, ok := arg0.(*ssa.UnOp)
2224 if !ok {
2225 return
2226 }
2227 v, ok := unop.X.(*ssa.Alloc)
2228 if !ok {
2229 return
2230 }
2231 arg1 := site.Common().Args[Arg("runtime.SetFinalizer.finalizer")]
2232 if iface, ok := arg1.(*ssa.MakeInterface); ok {
2233 arg1 = iface.X
2234 }
2235 mc, ok := arg1.(*ssa.MakeClosure)
2236 if !ok {
2237 return
2238 }
2239 for _, b := range mc.Bindings {
2240 if b == v {
2241 pos := lint.DisplayPosition(pass.Fset, mc.Fn.Pos())
2242 pass.Reportf(site.Pos(), "the finalizer closes over the object, preventing the finalizer from ever running (at %s)", pos)
2243 }
2244 }
2245 }
2246 for _, ssafn := range pass.ResultOf[buildssa.Analyzer].(*buildssa.SSA).SrcFuncs {
2247 eachCall(ssafn, fn)
2248 }
2249 return nil, nil
2250}
2251
2252/*
2253func CheckSliceOutOfBounds(pass *analysis.Pass) (interface{}, error) {
2254 for _, ssafn := range pass.ResultOf[buildssa.Analyzer].(*buildssa.SSA).SrcFuncs {
2255 for _, block := range ssafn.Blocks {
2256 for _, ins := range block.Instrs {
2257 ia, ok := ins.(*ssa.IndexAddr)
2258 if !ok {
2259 continue
2260 }
2261 if _, ok := ia.X.Type().Underlying().(*types.Slice); !ok {
2262 continue
2263 }
2264 sr, ok1 := c.funcDescs.Get(ssafn).Ranges[ia.X].(vrp.SliceInterval)
2265 idxr, ok2 := c.funcDescs.Get(ssafn).Ranges[ia.Index].(vrp.IntInterval)
2266 if !ok1 || !ok2 || !sr.IsKnown() || !idxr.IsKnown() || sr.Length.Empty() || idxr.Empty() {
2267 continue
2268 }
2269 if idxr.Lower.Cmp(sr.Length.Upper) >= 0 {
2270 ReportNodef(pass, ia, "index out of bounds")
2271 }
2272 }
2273 }
2274 }
2275 return nil, nil
2276}
2277*/
2278
2279func CheckDeferLock(pass *analysis.Pass) (interface{}, error) {
2280 for _, ssafn := range pass.ResultOf[buildssa.Analyzer].(*buildssa.SSA).SrcFuncs {
2281 for _, block := range ssafn.Blocks {
2282 instrs := FilterDebug(block.Instrs)
2283 if len(instrs) < 2 {
2284 continue
2285 }
2286 for i, ins := range instrs[:len(instrs)-1] {
2287 call, ok := ins.(*ssa.Call)
2288 if !ok {
2289 continue
2290 }
2291 if !IsCallTo(call.Common(), "(*sync.Mutex).Lock") && !IsCallTo(call.Common(), "(*sync.RWMutex).RLock") {
2292 continue
2293 }
2294 nins, ok := instrs[i+1].(*ssa.Defer)
2295 if !ok {
2296 continue
2297 }
2298 if !IsCallTo(&nins.Call, "(*sync.Mutex).Lock") && !IsCallTo(&nins.Call, "(*sync.RWMutex).RLock") {
2299 continue
2300 }
2301 if call.Common().Args[0] != nins.Call.Args[0] {
2302 continue
2303 }
2304 name := shortCallName(call.Common())
2305 alt := ""
2306 switch name {
2307 case "Lock":
2308 alt = "Unlock"
2309 case "RLock":
2310 alt = "RUnlock"
2311 }
2312 pass.Reportf(nins.Pos(), "deferring %s right after having locked already; did you mean to defer %s?", name, alt)
2313 }
2314 }
2315 }
2316 return nil, nil
2317}
2318
2319func CheckNaNComparison(pass *analysis.Pass) (interface{}, error) {
2320 isNaN := func(v ssa.Value) bool {
2321 call, ok := v.(*ssa.Call)
2322 if !ok {
2323 return false
2324 }
2325 return IsCallTo(call.Common(), "math.NaN")
2326 }
2327 for _, ssafn := range pass.ResultOf[buildssa.Analyzer].(*buildssa.SSA).SrcFuncs {
2328 for _, block := range ssafn.Blocks {
2329 for _, ins := range block.Instrs {
2330 ins, ok := ins.(*ssa.BinOp)
2331 if !ok {
2332 continue
2333 }
2334 if isNaN(ins.X) || isNaN(ins.Y) {
2335 pass.Reportf(ins.Pos(), "no value is equal to NaN, not even NaN itself")
2336 }
2337 }
2338 }
2339 }
2340 return nil, nil
2341}
2342
2343func CheckInfiniteRecursion(pass *analysis.Pass) (interface{}, error) {
2344 for _, ssafn := range pass.ResultOf[buildssa.Analyzer].(*buildssa.SSA).SrcFuncs {
2345 eachCall(ssafn, func(caller *ssa.Function, site ssa.CallInstruction, callee *ssa.Function) {
2346 if callee != ssafn {
2347 return
2348 }
2349 if _, ok := site.(*ssa.Go); ok {
2350 // Recursively spawning goroutines doesn't consume
2351 // stack space infinitely, so don't flag it.
2352 return
2353 }
2354
2355 block := site.Block()
2356 canReturn := false
2357 for _, b := range ssafn.Blocks {
2358 if block.Dominates(b) {
2359 continue
2360 }
2361 if len(b.Instrs) == 0 {
2362 continue
2363 }
2364 if _, ok := b.Instrs[len(b.Instrs)-1].(*ssa.Return); ok {
2365 canReturn = true
2366 break
2367 }
2368 }
2369 if canReturn {
2370 return
2371 }
2372 pass.Reportf(site.Pos(), "infinite recursive call")
2373 })
2374 }
2375 return nil, nil
2376}
2377
2378func objectName(obj types.Object) string {
2379 if obj == nil {
2380 return "<nil>"
2381 }
2382 var name string
2383 if obj.Pkg() != nil && obj.Pkg().Scope().Lookup(obj.Name()) == obj {
2384 s := obj.Pkg().Path()
2385 if s != "" {
2386 name += s + "."
2387 }
2388 }
2389 name += obj.Name()
2390 return name
2391}
2392
2393func isName(pass *analysis.Pass, expr ast.Expr, name string) bool {
2394 var obj types.Object
2395 switch expr := expr.(type) {
2396 case *ast.Ident:
2397 obj = pass.TypesInfo.ObjectOf(expr)
2398 case *ast.SelectorExpr:
2399 obj = pass.TypesInfo.ObjectOf(expr.Sel)
2400 }
2401 return objectName(obj) == name
2402}
2403
2404func CheckLeakyTimeTick(pass *analysis.Pass) (interface{}, error) {
2405 for _, ssafn := range pass.ResultOf[buildssa.Analyzer].(*buildssa.SSA).SrcFuncs {
2406 if IsInMain(pass, ssafn) || IsInTest(pass, ssafn) {
2407 continue
2408 }
2409 for _, block := range ssafn.Blocks {
2410 for _, ins := range block.Instrs {
2411 call, ok := ins.(*ssa.Call)
2412 if !ok || !IsCallTo(call.Common(), "time.Tick") {
2413 continue
2414 }
2415 if !functions.Terminates(call.Parent()) {
2416 continue
2417 }
2418 pass.Reportf(call.Pos(), "using time.Tick leaks the underlying ticker, consider using it only in endless functions, tests and the main package, and use time.NewTicker here")
2419 }
2420 }
2421 }
2422 return nil, nil
2423}
2424
2425func CheckDoubleNegation(pass *analysis.Pass) (interface{}, error) {
2426 fn := func(node ast.Node) {
2427 unary1 := node.(*ast.UnaryExpr)
2428 unary2, ok := unary1.X.(*ast.UnaryExpr)
2429 if !ok {
2430 return
2431 }
2432 if unary1.Op != token.NOT || unary2.Op != token.NOT {
2433 return
2434 }
2435 ReportNodef(pass, unary1, "negating a boolean twice has no effect; is this a typo?")
2436 }
2437 pass.ResultOf[inspect.Analyzer].(*inspector.Inspector).Preorder([]ast.Node{(*ast.UnaryExpr)(nil)}, fn)
2438 return nil, nil
2439}
2440
2441func hasSideEffects(node ast.Node) bool {
2442 dynamic := false
2443 ast.Inspect(node, func(node ast.Node) bool {
2444 switch node := node.(type) {
2445 case *ast.CallExpr:
2446 dynamic = true
2447 return false
2448 case *ast.UnaryExpr:
2449 if node.Op == token.ARROW {
2450 dynamic = true
2451 return false
2452 }
2453 }
2454 return true
2455 })
2456 return dynamic
2457}
2458
2459func CheckRepeatedIfElse(pass *analysis.Pass) (interface{}, error) {
2460 seen := map[ast.Node]bool{}
2461
2462 var collectConds func(ifstmt *ast.IfStmt, inits []ast.Stmt, conds []ast.Expr) ([]ast.Stmt, []ast.Expr)
2463 collectConds = func(ifstmt *ast.IfStmt, inits []ast.Stmt, conds []ast.Expr) ([]ast.Stmt, []ast.Expr) {
2464 seen[ifstmt] = true
2465 if ifstmt.Init != nil {
2466 inits = append(inits, ifstmt.Init)
2467 }
2468 conds = append(conds, ifstmt.Cond)
2469 if elsestmt, ok := ifstmt.Else.(*ast.IfStmt); ok {
2470 return collectConds(elsestmt, inits, conds)
2471 }
2472 return inits, conds
2473 }
2474 fn := func(node ast.Node) {
2475 ifstmt := node.(*ast.IfStmt)
2476 if seen[ifstmt] {
2477 return
2478 }
2479 inits, conds := collectConds(ifstmt, nil, nil)
2480 if len(inits) > 0 {
2481 return
2482 }
2483 for _, cond := range conds {
2484 if hasSideEffects(cond) {
2485 return
2486 }
2487 }
2488 counts := map[string]int{}
2489 for _, cond := range conds {
2490 s := Render(pass, cond)
2491 counts[s]++
2492 if counts[s] == 2 {
2493 ReportNodef(pass, cond, "this condition occurs multiple times in this if/else if chain")
2494 }
2495 }
2496 }
2497 pass.ResultOf[inspect.Analyzer].(*inspector.Inspector).Preorder([]ast.Node{(*ast.IfStmt)(nil)}, fn)
2498 return nil, nil
2499}
2500
2501func CheckSillyBitwiseOps(pass *analysis.Pass) (interface{}, error) {
2502 for _, ssafn := range pass.ResultOf[buildssa.Analyzer].(*buildssa.SSA).SrcFuncs {
2503 for _, block := range ssafn.Blocks {
2504 for _, ins := range block.Instrs {
2505 ins, ok := ins.(*ssa.BinOp)
2506 if !ok {
2507 continue
2508 }
2509
2510 if c, ok := ins.Y.(*ssa.Const); !ok || c.Value == nil || c.Value.Kind() != constant.Int || c.Uint64() != 0 {
2511 continue
2512 }
2513 switch ins.Op {
2514 case token.AND, token.OR, token.XOR:
2515 default:
2516 // we do not flag shifts because too often, x<<0 is part
2517 // of a pattern, x<<0, x<<8, x<<16, ...
2518 continue
2519 }
2520 path, _ := astutil.PathEnclosingInterval(File(pass, ins), ins.Pos(), ins.Pos())
2521 if len(path) == 0 {
2522 continue
2523 }
2524 if node, ok := path[0].(*ast.BinaryExpr); !ok || !IsZero(node.Y) {
2525 continue
2526 }
2527
2528 switch ins.Op {
2529 case token.AND:
2530 pass.Reportf(ins.Pos(), "x & 0 always equals 0")
2531 case token.OR, token.XOR:
2532 pass.Reportf(ins.Pos(), "x %s 0 always equals x", ins.Op)
2533 }
2534 }
2535 }
2536 }
2537 return nil, nil
2538}
2539
2540func CheckNonOctalFileMode(pass *analysis.Pass) (interface{}, error) {
2541 fn := func(node ast.Node) {
2542 call := node.(*ast.CallExpr)
2543 sig, ok := pass.TypesInfo.TypeOf(call.Fun).(*types.Signature)
2544 if !ok {
2545 return
2546 }
2547 n := sig.Params().Len()
2548 var args []int
2549 for i := 0; i < n; i++ {
2550 typ := sig.Params().At(i).Type()
2551 if IsType(typ, "os.FileMode") {
2552 args = append(args, i)
2553 }
2554 }
2555 for _, i := range args {
2556 lit, ok := call.Args[i].(*ast.BasicLit)
2557 if !ok {
2558 continue
2559 }
2560 if len(lit.Value) == 3 &&
2561 lit.Value[0] != '0' &&
2562 lit.Value[0] >= '0' && lit.Value[0] <= '7' &&
2563 lit.Value[1] >= '0' && lit.Value[1] <= '7' &&
2564 lit.Value[2] >= '0' && lit.Value[2] <= '7' {
2565
2566 v, err := strconv.ParseInt(lit.Value, 10, 64)
2567 if err != nil {
2568 continue
2569 }
2570 ReportNodef(pass, call.Args[i], "file mode '%s' evaluates to %#o; did you mean '0%s'?", lit.Value, v, lit.Value)
2571 }
2572 }
2573 }
2574 pass.ResultOf[inspect.Analyzer].(*inspector.Inspector).Preorder([]ast.Node{(*ast.CallExpr)(nil)}, fn)
2575 return nil, nil
2576}
2577
2578func CheckPureFunctions(pass *analysis.Pass) (interface{}, error) {
2579 pure := pass.ResultOf[facts.Purity].(facts.PurityResult)
2580
2581fnLoop:
2582 for _, ssafn := range pass.ResultOf[buildssa.Analyzer].(*buildssa.SSA).SrcFuncs {
2583 if IsInTest(pass, ssafn) {
2584 params := ssafn.Signature.Params()
2585 for i := 0; i < params.Len(); i++ {
2586 param := params.At(i)
2587 if IsType(param.Type(), "*testing.B") {
2588 // Ignore discarded pure functions in code related
2589 // to benchmarks. Instead of matching BenchmarkFoo
2590 // functions, we match any function accepting a
2591 // *testing.B. Benchmarks sometimes call generic
2592 // functions for doing the actual work, and
2593 // checking for the parameter is a lot easier and
2594 // faster than analyzing call trees.
2595 continue fnLoop
2596 }
2597 }
2598 }
2599
2600 for _, b := range ssafn.Blocks {
2601 for _, ins := range b.Instrs {
2602 ins, ok := ins.(*ssa.Call)
2603 if !ok {
2604 continue
2605 }
2606 refs := ins.Referrers()
2607 if refs == nil || len(FilterDebug(*refs)) > 0 {
2608 continue
2609 }
2610 callee := ins.Common().StaticCallee()
2611 if callee == nil {
2612 continue
2613 }
2614 if callee.Object() == nil {
2615 // TODO(dh): support anonymous functions
2616 continue
2617 }
2618 if _, ok := pure[callee.Object().(*types.Func)]; ok {
2619 pass.Reportf(ins.Pos(), "%s is a pure function but its return value is ignored", callee.Name())
2620 continue
2621 }
2622 }
2623 }
2624 }
2625 return nil, nil
2626}
2627
2628func CheckDeprecated(pass *analysis.Pass) (interface{}, error) {
2629 deprs := pass.ResultOf[facts.Deprecated].(facts.DeprecatedResult)
2630
2631 // Selectors can appear outside of function literals, e.g. when
2632 // declaring package level variables.
2633
2634 var tfn types.Object
2635 stack := 0
2636 fn := func(node ast.Node, push bool) bool {
2637 if !push {
2638 stack--
2639 return false
2640 }
2641 stack++
2642 if stack == 1 {
2643 tfn = nil
2644 }
2645 if fn, ok := node.(*ast.FuncDecl); ok {
2646 tfn = pass.TypesInfo.ObjectOf(fn.Name)
2647 }
2648 sel, ok := node.(*ast.SelectorExpr)
2649 if !ok {
2650 return true
2651 }
2652
2653 obj := pass.TypesInfo.ObjectOf(sel.Sel)
2654 if obj.Pkg() == nil {
2655 return true
2656 }
2657 if pass.Pkg == obj.Pkg() || obj.Pkg().Path()+"_test" == pass.Pkg.Path() {
2658 // Don't flag stuff in our own package
2659 return true
2660 }
2661 if depr, ok := deprs.Objects[obj]; ok {
2662 // Look for the first available alternative, not the first
2663 // version something was deprecated in. If a function was
2664 // deprecated in Go 1.6, an alternative has been available
2665 // already in 1.0, and we're targeting 1.2, it still
2666 // makes sense to use the alternative from 1.0, to be
2667 // future-proof.
2668 minVersion := deprecated.Stdlib[SelectorName(pass, sel)].AlternativeAvailableSince
2669 if !IsGoVersion(pass, minVersion) {
2670 return true
2671 }
2672
2673 if tfn != nil {
2674 if _, ok := deprs.Objects[tfn]; ok {
2675 // functions that are deprecated may use deprecated
2676 // symbols
2677 return true
2678 }
2679 }
2680 ReportNodef(pass, sel, "%s is deprecated: %s", Render(pass, sel), depr.Msg)
2681 return true
2682 }
2683 return true
2684 }
2685
2686 imps := map[string]*types.Package{}
2687 for _, imp := range pass.Pkg.Imports() {
2688 imps[imp.Path()] = imp
2689 }
2690 fn2 := func(node ast.Node) {
2691 spec := node.(*ast.ImportSpec)
2692 p := spec.Path.Value
2693 path := p[1 : len(p)-1]
2694 imp := imps[path]
2695 if depr, ok := deprs.Packages[imp]; ok {
2696 ReportNodef(pass, spec, "Package %s is deprecated: %s", path, depr.Msg)
2697 }
2698 }
2699 pass.ResultOf[inspect.Analyzer].(*inspector.Inspector).Nodes(nil, fn)
2700 pass.ResultOf[inspect.Analyzer].(*inspector.Inspector).Preorder([]ast.Node{(*ast.ImportSpec)(nil)}, fn2)
2701 return nil, nil
2702}
2703
2704func callChecker(rules map[string]CallCheck) func(pass *analysis.Pass) (interface{}, error) {
2705 return func(pass *analysis.Pass) (interface{}, error) {
2706 return checkCalls(pass, rules)
2707 }
2708}
2709
2710func checkCalls(pass *analysis.Pass, rules map[string]CallCheck) (interface{}, error) {
2711 ranges := pass.ResultOf[valueRangesAnalyzer].(map[*ssa.Function]vrp.Ranges)
2712 fn := func(caller *ssa.Function, site ssa.CallInstruction, callee *ssa.Function) {
2713 obj, ok := callee.Object().(*types.Func)
2714 if !ok {
2715 return
2716 }
2717
2718 r, ok := rules[lint.FuncName(obj)]
2719 if !ok {
2720 return
2721 }
2722 var args []*Argument
2723 ssaargs := site.Common().Args
2724 if callee.Signature.Recv() != nil {
2725 ssaargs = ssaargs[1:]
2726 }
2727 for _, arg := range ssaargs {
2728 if iarg, ok := arg.(*ssa.MakeInterface); ok {
2729 arg = iarg.X
2730 }
2731 vr := ranges[site.Parent()][arg]
2732 args = append(args, &Argument{Value: Value{arg, vr}})
2733 }
2734 call := &Call{
2735 Pass: pass,
2736 Instr: site,
2737 Args: args,
2738 Parent: site.Parent(),
2739 }
2740 r(call)
2741 for idx, arg := range call.Args {
2742 _ = idx
2743 for _, e := range arg.invalids {
2744 // path, _ := astutil.PathEnclosingInterval(f.File, edge.Site.Pos(), edge.Site.Pos())
2745 // if len(path) < 2 {
2746 // continue
2747 // }
2748 // astcall, ok := path[0].(*ast.CallExpr)
2749 // if !ok {
2750 // continue
2751 // }
2752 // pass.Reportf(astcall.Args[idx], "%s", e)
2753
2754 pass.Reportf(site.Pos(), "%s", e)
2755 }
2756 }
2757 for _, e := range call.invalids {
2758 pass.Reportf(call.Instr.Common().Pos(), "%s", e)
2759 }
2760 }
2761 for _, ssafn := range pass.ResultOf[buildssa.Analyzer].(*buildssa.SSA).SrcFuncs {
2762 eachCall(ssafn, fn)
2763 }
2764 return nil, nil
2765}
2766
2767func shortCallName(call *ssa.CallCommon) string {
2768 if call.IsInvoke() {
2769 return ""
2770 }
2771 switch v := call.Value.(type) {
2772 case *ssa.Function:
2773 fn, ok := v.Object().(*types.Func)
2774 if !ok {
2775 return ""
2776 }
2777 return fn.Name()
2778 case *ssa.Builtin:
2779 return v.Name()
2780 }
2781 return ""
2782}
2783
2784func CheckWriterBufferModified(pass *analysis.Pass) (interface{}, error) {
2785 // TODO(dh): this might be a good candidate for taint analysis.
2786 // Taint the argument as MUST_NOT_MODIFY, then propagate that
2787 // through functions like bytes.Split
2788
2789 for _, ssafn := range pass.ResultOf[buildssa.Analyzer].(*buildssa.SSA).SrcFuncs {
2790 sig := ssafn.Signature
2791 if ssafn.Name() != "Write" || sig.Recv() == nil || sig.Params().Len() != 1 || sig.Results().Len() != 2 {
2792 continue
2793 }
2794 tArg, ok := sig.Params().At(0).Type().(*types.Slice)
2795 if !ok {
2796 continue
2797 }
2798 if basic, ok := tArg.Elem().(*types.Basic); !ok || basic.Kind() != types.Byte {
2799 continue
2800 }
2801 if basic, ok := sig.Results().At(0).Type().(*types.Basic); !ok || basic.Kind() != types.Int {
2802 continue
2803 }
2804 if named, ok := sig.Results().At(1).Type().(*types.Named); !ok || !IsType(named, "error") {
2805 continue
2806 }
2807
2808 for _, block := range ssafn.Blocks {
2809 for _, ins := range block.Instrs {
2810 switch ins := ins.(type) {
2811 case *ssa.Store:
2812 addr, ok := ins.Addr.(*ssa.IndexAddr)
2813 if !ok {
2814 continue
2815 }
2816 if addr.X != ssafn.Params[1] {
2817 continue
2818 }
2819 pass.Reportf(ins.Pos(), "io.Writer.Write must not modify the provided buffer, not even temporarily")
2820 case *ssa.Call:
2821 if !IsCallTo(ins.Common(), "append") {
2822 continue
2823 }
2824 if ins.Common().Args[0] != ssafn.Params[1] {
2825 continue
2826 }
2827 pass.Reportf(ins.Pos(), "io.Writer.Write must not modify the provided buffer, not even temporarily")
2828 }
2829 }
2830 }
2831 }
2832 return nil, nil
2833}
2834
2835func loopedRegexp(name string) CallCheck {
2836 return func(call *Call) {
2837 if len(extractConsts(call.Args[0].Value.Value)) == 0 {
2838 return
2839 }
2840 if !isInLoop(call.Instr.Block()) {
2841 return
2842 }
2843 call.Invalid(fmt.Sprintf("calling %s in a loop has poor performance, consider using regexp.Compile", name))
2844 }
2845}
2846
2847func CheckEmptyBranch(pass *analysis.Pass) (interface{}, error) {
2848 for _, ssafn := range pass.ResultOf[buildssa.Analyzer].(*buildssa.SSA).SrcFuncs {
2849 if ssafn.Syntax() == nil {
2850 continue
2851 }
2852 if IsExample(ssafn) {
2853 continue
2854 }
2855 fn := func(node ast.Node) bool {
2856 ifstmt, ok := node.(*ast.IfStmt)
2857 if !ok {
2858 return true
2859 }
2860 if ifstmt.Else != nil {
2861 b, ok := ifstmt.Else.(*ast.BlockStmt)
2862 if !ok || len(b.List) != 0 {
2863 return true
2864 }
2865 ReportfFG(pass, ifstmt.Else.Pos(), "empty branch")
2866 }
2867 if len(ifstmt.Body.List) != 0 {
2868 return true
2869 }
2870 ReportfFG(pass, ifstmt.Pos(), "empty branch")
2871 return true
2872 }
2873 Inspect(ssafn.Syntax(), fn)
2874 }
2875 return nil, nil
2876}
2877
2878func CheckMapBytesKey(pass *analysis.Pass) (interface{}, error) {
2879 for _, fn := range pass.ResultOf[buildssa.Analyzer].(*buildssa.SSA).SrcFuncs {
2880 for _, b := range fn.Blocks {
2881 insLoop:
2882 for _, ins := range b.Instrs {
2883 // find []byte -> string conversions
2884 conv, ok := ins.(*ssa.Convert)
2885 if !ok || conv.Type() != types.Universe.Lookup("string").Type() {
2886 continue
2887 }
2888 if s, ok := conv.X.Type().(*types.Slice); !ok || s.Elem() != types.Universe.Lookup("byte").Type() {
2889 continue
2890 }
2891 refs := conv.Referrers()
2892 // need at least two (DebugRef) references: the
2893 // conversion and the *ast.Ident
2894 if refs == nil || len(*refs) < 2 {
2895 continue
2896 }
2897 ident := false
2898 // skip first reference, that's the conversion itself
2899 for _, ref := range (*refs)[1:] {
2900 switch ref := ref.(type) {
2901 case *ssa.DebugRef:
2902 if _, ok := ref.Expr.(*ast.Ident); !ok {
2903 // the string seems to be used somewhere
2904 // unexpected; the default branch should
2905 // catch this already, but be safe
2906 continue insLoop
2907 } else {
2908 ident = true
2909 }
2910 case *ssa.Lookup:
2911 default:
2912 // the string is used somewhere else than a
2913 // map lookup
2914 continue insLoop
2915 }
2916 }
2917
2918 // the result of the conversion wasn't assigned to an
2919 // identifier
2920 if !ident {
2921 continue
2922 }
2923 pass.Reportf(conv.Pos(), "m[string(key)] would be more efficient than k := string(key); m[k]")
2924 }
2925 }
2926 }
2927 return nil, nil
2928}
2929
2930func CheckRangeStringRunes(pass *analysis.Pass) (interface{}, error) {
2931 return sharedcheck.CheckRangeStringRunes(pass)
2932}
2933
2934func CheckSelfAssignment(pass *analysis.Pass) (interface{}, error) {
2935 fn := func(node ast.Node) {
2936 assign := node.(*ast.AssignStmt)
2937 if assign.Tok != token.ASSIGN || len(assign.Lhs) != len(assign.Rhs) {
2938 return
2939 }
2940 for i, stmt := range assign.Lhs {
2941 rlh := Render(pass, stmt)
2942 rrh := Render(pass, assign.Rhs[i])
2943 if rlh == rrh {
2944 ReportfFG(pass, assign.Pos(), "self-assignment of %s to %s", rrh, rlh)
2945 }
2946 }
2947 }
2948 pass.ResultOf[inspect.Analyzer].(*inspector.Inspector).Preorder([]ast.Node{(*ast.AssignStmt)(nil)}, fn)
2949 return nil, nil
2950}
2951
2952func buildTagsIdentical(s1, s2 []string) bool {
2953 if len(s1) != len(s2) {
2954 return false
2955 }
2956 s1s := make([]string, len(s1))
2957 copy(s1s, s1)
2958 sort.Strings(s1s)
2959 s2s := make([]string, len(s2))
2960 copy(s2s, s2)
2961 sort.Strings(s2s)
2962 for i, s := range s1s {
2963 if s != s2s[i] {
2964 return false
2965 }
2966 }
2967 return true
2968}
2969
2970func CheckDuplicateBuildConstraints(pass *analysis.Pass) (interface{}, error) {
2971 for _, f := range pass.Files {
2972 constraints := buildTags(f)
2973 for i, constraint1 := range constraints {
2974 for j, constraint2 := range constraints {
2975 if i >= j {
2976 continue
2977 }
2978 if buildTagsIdentical(constraint1, constraint2) {
2979 ReportfFG(pass, f.Pos(), "identical build constraints %q and %q",
2980 strings.Join(constraint1, " "),
2981 strings.Join(constraint2, " "))
2982 }
2983 }
2984 }
2985 }
2986 return nil, nil
2987}
2988
2989func CheckSillyRegexp(pass *analysis.Pass) (interface{}, error) {
2990 // We could use the rule checking engine for this, but the
2991 // arguments aren't really invalid.
2992 for _, fn := range pass.ResultOf[buildssa.Analyzer].(*buildssa.SSA).SrcFuncs {
2993 for _, b := range fn.Blocks {
2994 for _, ins := range b.Instrs {
2995 call, ok := ins.(*ssa.Call)
2996 if !ok {
2997 continue
2998 }
2999 switch CallName(call.Common()) {
3000 case "regexp.MustCompile", "regexp.Compile", "regexp.Match", "regexp.MatchReader", "regexp.MatchString":
3001 default:
3002 continue
3003 }
3004 c, ok := call.Common().Args[0].(*ssa.Const)
3005 if !ok {
3006 continue
3007 }
3008 s := constant.StringVal(c.Value)
3009 re, err := syntax.Parse(s, 0)
3010 if err != nil {
3011 continue
3012 }
3013 if re.Op != syntax.OpLiteral && re.Op != syntax.OpEmptyMatch {
3014 continue
3015 }
3016 pass.Reportf(call.Pos(), "regular expression does not contain any meta characters")
3017 }
3018 }
3019 }
3020 return nil, nil
3021}
3022
3023func CheckMissingEnumTypesInDeclaration(pass *analysis.Pass) (interface{}, error) {
3024 fn := func(node ast.Node) {
3025 decl := node.(*ast.GenDecl)
3026 if !decl.Lparen.IsValid() {
3027 return
3028 }
3029 if decl.Tok != token.CONST {
3030 return
3031 }
3032
3033 groups := GroupSpecs(pass.Fset, decl.Specs)
3034 groupLoop:
3035 for _, group := range groups {
3036 if len(group) < 2 {
3037 continue
3038 }
3039 if group[0].(*ast.ValueSpec).Type == nil {
3040 // first constant doesn't have a type
3041 continue groupLoop
3042 }
3043 for i, spec := range group {
3044 spec := spec.(*ast.ValueSpec)
3045 if len(spec.Names) != 1 || len(spec.Values) != 1 {
3046 continue groupLoop
3047 }
3048 switch v := spec.Values[0].(type) {
3049 case *ast.BasicLit:
3050 case *ast.UnaryExpr:
3051 if _, ok := v.X.(*ast.BasicLit); !ok {
3052 continue groupLoop
3053 }
3054 default:
3055 // if it's not a literal it might be typed, such as
3056 // time.Microsecond = 1000 * Nanosecond
3057 continue groupLoop
3058 }
3059 if i == 0 {
3060 continue
3061 }
3062 if spec.Type != nil {
3063 continue groupLoop
3064 }
3065 }
3066 ReportNodef(pass, group[0], "only the first constant in this group has an explicit type")
3067 }
3068 }
3069 pass.ResultOf[inspect.Analyzer].(*inspector.Inspector).Preorder([]ast.Node{(*ast.GenDecl)(nil)}, fn)
3070 return nil, nil
3071}
3072
3073func CheckTimerResetReturnValue(pass *analysis.Pass) (interface{}, error) {
3074 for _, fn := range pass.ResultOf[buildssa.Analyzer].(*buildssa.SSA).SrcFuncs {
3075 for _, block := range fn.Blocks {
3076 for _, ins := range block.Instrs {
3077 call, ok := ins.(*ssa.Call)
3078 if !ok {
3079 continue
3080 }
3081 if !IsCallTo(call.Common(), "(*time.Timer).Reset") {
3082 continue
3083 }
3084 refs := call.Referrers()
3085 if refs == nil {
3086 continue
3087 }
3088 for _, ref := range FilterDebug(*refs) {
3089 ifstmt, ok := ref.(*ssa.If)
3090 if !ok {
3091 continue
3092 }
3093
3094 found := false
3095 for _, succ := range ifstmt.Block().Succs {
3096 if len(succ.Preds) != 1 {
3097 // Merge point, not a branch in the
3098 // syntactical sense.
3099
3100 // FIXME(dh): this is broken for if
3101 // statements a la "if x || y"
3102 continue
3103 }
3104 ssautil.Walk(succ, func(b *ssa.BasicBlock) bool {
3105 if !succ.Dominates(b) {
3106 // We've reached the end of the branch
3107 return false
3108 }
3109 for _, ins := range b.Instrs {
3110 // TODO(dh): we should check that
3111 // we're receiving from the channel of
3112 // a time.Timer to further reduce
3113 // false positives. Not a key
3114 // priority, considering the rarity of
3115 // Reset and the tiny likeliness of a
3116 // false positive
3117 if ins, ok := ins.(*ssa.UnOp); ok && ins.Op == token.ARROW && IsType(ins.X.Type(), "<-chan time.Time") {
3118 found = true
3119 return false
3120 }
3121 }
3122 return true
3123 })
3124 }
3125
3126 if found {
3127 pass.Reportf(call.Pos(), "it is not possible to use Reset's return value correctly, as there is a race condition between draining the channel and the new timer expiring")
3128 }
3129 }
3130 }
3131 }
3132 }
3133 return nil, nil
3134}
3135
3136func CheckToLowerToUpperComparison(pass *analysis.Pass) (interface{}, error) {
3137 fn := func(node ast.Node) {
3138 binExpr := node.(*ast.BinaryExpr)
3139
3140 var negative bool
3141 switch binExpr.Op {
3142 case token.EQL:
3143 negative = false
3144 case token.NEQ:
3145 negative = true
3146 default:
3147 return
3148 }
3149
3150 const (
3151 lo = "strings.ToLower"
3152 up = "strings.ToUpper"
3153 )
3154
3155 var call string
3156 if IsCallToAST(pass, binExpr.X, lo) && IsCallToAST(pass, binExpr.Y, lo) {
3157 call = lo
3158 } else if IsCallToAST(pass, binExpr.X, up) && IsCallToAST(pass, binExpr.Y, up) {
3159 call = up
3160 } else {
3161 return
3162 }
3163
3164 bang := ""
3165 if negative {
3166 bang = "!"
3167 }
3168
3169 ReportNodef(pass, binExpr, "should use %sstrings.EqualFold(a, b) instead of %s(a) %s %s(b)", bang, call, binExpr.Op, call)
3170 }
3171
3172 pass.ResultOf[inspect.Analyzer].(*inspector.Inspector).Preorder([]ast.Node{(*ast.BinaryExpr)(nil)}, fn)
3173 return nil, nil
3174}
3175
3176func CheckUnreachableTypeCases(pass *analysis.Pass) (interface{}, error) {
3177 // Check if T subsumes V in a type switch. T subsumes V if T is an interface and T's method set is a subset of V's method set.
3178 subsumes := func(T, V types.Type) bool {
3179 tIface, ok := T.Underlying().(*types.Interface)
3180 if !ok {
3181 return false
3182 }
3183
3184 return types.Implements(V, tIface)
3185 }
3186
3187 subsumesAny := func(Ts, Vs []types.Type) (types.Type, types.Type, bool) {
3188 for _, T := range Ts {
3189 for _, V := range Vs {
3190 if subsumes(T, V) {
3191 return T, V, true
3192 }
3193 }
3194 }
3195
3196 return nil, nil, false
3197 }
3198
3199 fn := func(node ast.Node) {
3200 tsStmt := node.(*ast.TypeSwitchStmt)
3201
3202 type ccAndTypes struct {
3203 cc *ast.CaseClause
3204 types []types.Type
3205 }
3206
3207 // All asserted types in the order of case clauses.
3208 ccs := make([]ccAndTypes, 0, len(tsStmt.Body.List))
3209 for _, stmt := range tsStmt.Body.List {
3210 cc, _ := stmt.(*ast.CaseClause)
3211
3212 // Exclude the 'default' case.
3213 if len(cc.List) == 0 {
3214 continue
3215 }
3216
3217 Ts := make([]types.Type, len(cc.List))
3218 for i, expr := range cc.List {
3219 Ts[i] = pass.TypesInfo.TypeOf(expr)
3220 }
3221
3222 ccs = append(ccs, ccAndTypes{cc: cc, types: Ts})
3223 }
3224
3225 if len(ccs) <= 1 {
3226 // Zero or one case clauses, nothing to check.
3227 return
3228 }
3229
3230 // Check if case clauses following cc have types that are subsumed by cc.
3231 for i, cc := range ccs[:len(ccs)-1] {
3232 for _, next := range ccs[i+1:] {
3233 if T, V, yes := subsumesAny(cc.types, next.types); yes {
3234 ReportNodef(pass, next.cc, "unreachable case clause: %s will always match before %s", T.String(), V.String())
3235 }
3236 }
3237 }
3238 }
3239
3240 pass.ResultOf[inspect.Analyzer].(*inspector.Inspector).Preorder([]ast.Node{(*ast.TypeSwitchStmt)(nil)}, fn)
3241 return nil, nil
3242}
3243
3244func CheckSingleArgAppend(pass *analysis.Pass) (interface{}, error) {
3245 fn := func(node ast.Node) {
3246 if !IsCallToAST(pass, node, "append") {
3247 return
3248 }
3249 call := node.(*ast.CallExpr)
3250 if len(call.Args) != 1 {
3251 return
3252 }
3253 ReportfFG(pass, call.Pos(), "x = append(y) is equivalent to x = y")
3254 }
3255 pass.ResultOf[inspect.Analyzer].(*inspector.Inspector).Preorder([]ast.Node{(*ast.CallExpr)(nil)}, fn)
3256 return nil, nil
3257}
3258
3259func CheckStructTags(pass *analysis.Pass) (interface{}, error) {
3260 fn := func(node ast.Node) {
3261 for _, field := range node.(*ast.StructType).Fields.List {
3262 if field.Tag == nil {
3263 continue
3264 }
3265 tags, err := parseStructTag(field.Tag.Value[1 : len(field.Tag.Value)-1])
3266 if err != nil {
3267 ReportNodef(pass, field.Tag, "unparseable struct tag: %s", err)
3268 continue
3269 }
3270 for k, v := range tags {
3271 if len(v) > 1 {
3272 ReportNodef(pass, field.Tag, "duplicate struct tag %q", k)
3273 continue
3274 }
3275
3276 switch k {
3277 case "json":
3278 checkJSONTag(pass, field, v[0])
3279 case "xml":
3280 checkXMLTag(pass, field, v[0])
3281 }
3282 }
3283 }
3284 }
3285 pass.ResultOf[inspect.Analyzer].(*inspector.Inspector).Preorder([]ast.Node{(*ast.StructType)(nil)}, fn)
3286 return nil, nil
3287}
3288
3289func checkJSONTag(pass *analysis.Pass, field *ast.Field, tag string) {
3290 //lint:ignore SA9003 TODO(dh): should we flag empty tags?
3291 if len(tag) == 0 {
3292 }
3293 fields := strings.Split(tag, ",")
3294 for _, r := range fields[0] {
3295 if !unicode.IsLetter(r) && !unicode.IsDigit(r) && !strings.ContainsRune("!#$%&()*+-./:<=>?@[]^_{|}~ ", r) {
3296 ReportNodef(pass, field.Tag, "invalid JSON field name %q", fields[0])
3297 }
3298 }
3299 var co, cs, ci int
3300 for _, s := range fields[1:] {
3301 switch s {
3302 case "omitempty":
3303 co++
3304 case "":
3305 // allow stuff like "-,"
3306 case "string":
3307 cs++
3308 // only for string, floating point, integer and bool
3309 T := Dereference(pass.TypesInfo.TypeOf(field.Type).Underlying()).Underlying()
3310 basic, ok := T.(*types.Basic)
3311 if !ok || (basic.Info()&(types.IsBoolean|types.IsInteger|types.IsFloat|types.IsString)) == 0 {
3312 ReportNodef(pass, field.Tag, "the JSON string option only applies to fields of type string, floating point, integer or bool, or pointers to those")
3313 }
3314 case "inline":
3315 ci++
3316 default:
3317 ReportNodef(pass, field.Tag, "unknown JSON option %q", s)
3318 }
3319 }
3320 if co > 1 {
3321 ReportNodef(pass, field.Tag, `duplicate JSON option "omitempty"`)
3322 }
3323 if cs > 1 {
3324 ReportNodef(pass, field.Tag, `duplicate JSON option "string"`)
3325 }
3326 if ci > 1 {
3327 ReportNodef(pass, field.Tag, `duplicate JSON option "inline"`)
3328 }
3329}
3330
3331func checkXMLTag(pass *analysis.Pass, field *ast.Field, tag string) {
3332 //lint:ignore SA9003 TODO(dh): should we flag empty tags?
3333 if len(tag) == 0 {
3334 }
3335 fields := strings.Split(tag, ",")
3336 counts := map[string]int{}
3337 var exclusives []string
3338 for _, s := range fields[1:] {
3339 switch s {
3340 case "attr", "chardata", "cdata", "innerxml", "comment":
3341 counts[s]++
3342 if counts[s] == 1 {
3343 exclusives = append(exclusives, s)
3344 }
3345 case "omitempty", "any":
3346 counts[s]++
3347 case "":
3348 default:
3349 ReportNodef(pass, field.Tag, "unknown XML option %q", s)
3350 }
3351 }
3352 for k, v := range counts {
3353 if v > 1 {
3354 ReportNodef(pass, field.Tag, "duplicate XML option %q", k)
3355 }
3356 }
3357 if len(exclusives) > 1 {
3358 ReportNodef(pass, field.Tag, "XML options %s are mutually exclusive", strings.Join(exclusives, " and "))
3359 }
3360}
diff --git a/vendor/honnef.co/go/tools/staticcheck/rules.go b/vendor/honnef.co/go/tools/staticcheck/rules.go
new file mode 100644
index 0000000..0152cac
--- /dev/null
+++ b/vendor/honnef.co/go/tools/staticcheck/rules.go
@@ -0,0 +1,321 @@
1package staticcheck
2
3import (
4 "fmt"
5 "go/constant"
6 "go/types"
7 "net"
8 "net/url"
9 "regexp"
10 "sort"
11 "strconv"
12 "strings"
13 "time"
14 "unicode/utf8"
15
16 "golang.org/x/tools/go/analysis"
17 . "honnef.co/go/tools/lint/lintdsl"
18 "honnef.co/go/tools/ssa"
19 "honnef.co/go/tools/staticcheck/vrp"
20)
21
22const (
23 MsgInvalidHostPort = "invalid port or service name in host:port pair"
24 MsgInvalidUTF8 = "argument is not a valid UTF-8 encoded string"
25 MsgNonUniqueCutset = "cutset contains duplicate characters"
26)
27
28type Call struct {
29 Pass *analysis.Pass
30 Instr ssa.CallInstruction
31 Args []*Argument
32
33 Parent *ssa.Function
34
35 invalids []string
36}
37
38func (c *Call) Invalid(msg string) {
39 c.invalids = append(c.invalids, msg)
40}
41
42type Argument struct {
43 Value Value
44 invalids []string
45}
46
47func (arg *Argument) Invalid(msg string) {
48 arg.invalids = append(arg.invalids, msg)
49}
50
51type Value struct {
52 Value ssa.Value
53 Range vrp.Range
54}
55
56type CallCheck func(call *Call)
57
58func extractConsts(v ssa.Value) []*ssa.Const {
59 switch v := v.(type) {
60 case *ssa.Const:
61 return []*ssa.Const{v}
62 case *ssa.MakeInterface:
63 return extractConsts(v.X)
64 default:
65 return nil
66 }
67}
68
69func ValidateRegexp(v Value) error {
70 for _, c := range extractConsts(v.Value) {
71 if c.Value == nil {
72 continue
73 }
74 if c.Value.Kind() != constant.String {
75 continue
76 }
77 s := constant.StringVal(c.Value)
78 if _, err := regexp.Compile(s); err != nil {
79 return err
80 }
81 }
82 return nil
83}
84
85func ValidateTimeLayout(v Value) error {
86 for _, c := range extractConsts(v.Value) {
87 if c.Value == nil {
88 continue
89 }
90 if c.Value.Kind() != constant.String {
91 continue
92 }
93 s := constant.StringVal(c.Value)
94 s = strings.Replace(s, "_", " ", -1)
95 s = strings.Replace(s, "Z", "-", -1)
96 _, err := time.Parse(s, s)
97 if err != nil {
98 return err
99 }
100 }
101 return nil
102}
103
104func ValidateURL(v Value) error {
105 for _, c := range extractConsts(v.Value) {
106 if c.Value == nil {
107 continue
108 }
109 if c.Value.Kind() != constant.String {
110 continue
111 }
112 s := constant.StringVal(c.Value)
113 _, err := url.Parse(s)
114 if err != nil {
115 return fmt.Errorf("%q is not a valid URL: %s", s, err)
116 }
117 }
118 return nil
119}
120
121func IntValue(v Value, z vrp.Z) bool {
122 r, ok := v.Range.(vrp.IntInterval)
123 if !ok || !r.IsKnown() {
124 return false
125 }
126 if r.Lower != r.Upper {
127 return false
128 }
129 if r.Lower.Cmp(z) == 0 {
130 return true
131 }
132 return false
133}
134
135func InvalidUTF8(v Value) bool {
136 for _, c := range extractConsts(v.Value) {
137 if c.Value == nil {
138 continue
139 }
140 if c.Value.Kind() != constant.String {
141 continue
142 }
143 s := constant.StringVal(c.Value)
144 if !utf8.ValidString(s) {
145 return true
146 }
147 }
148 return false
149}
150
151func UnbufferedChannel(v Value) bool {
152 r, ok := v.Range.(vrp.ChannelInterval)
153 if !ok || !r.IsKnown() {
154 return false
155 }
156 if r.Size.Lower.Cmp(vrp.NewZ(0)) == 0 &&
157 r.Size.Upper.Cmp(vrp.NewZ(0)) == 0 {
158 return true
159 }
160 return false
161}
162
163func Pointer(v Value) bool {
164 switch v.Value.Type().Underlying().(type) {
165 case *types.Pointer, *types.Interface:
166 return true
167 }
168 return false
169}
170
171func ConvertedFromInt(v Value) bool {
172 conv, ok := v.Value.(*ssa.Convert)
173 if !ok {
174 return false
175 }
176 b, ok := conv.X.Type().Underlying().(*types.Basic)
177 if !ok {
178 return false
179 }
180 if (b.Info() & types.IsInteger) == 0 {
181 return false
182 }
183 return true
184}
185
186func validEncodingBinaryType(pass *analysis.Pass, typ types.Type) bool {
187 typ = typ.Underlying()
188 switch typ := typ.(type) {
189 case *types.Basic:
190 switch typ.Kind() {
191 case types.Uint8, types.Uint16, types.Uint32, types.Uint64,
192 types.Int8, types.Int16, types.Int32, types.Int64,
193 types.Float32, types.Float64, types.Complex64, types.Complex128, types.Invalid:
194 return true
195 case types.Bool:
196 return IsGoVersion(pass, 8)
197 }
198 return false
199 case *types.Struct:
200 n := typ.NumFields()
201 for i := 0; i < n; i++ {
202 if !validEncodingBinaryType(pass, typ.Field(i).Type()) {
203 return false
204 }
205 }
206 return true
207 case *types.Array:
208 return validEncodingBinaryType(pass, typ.Elem())
209 case *types.Interface:
210 // we can't determine if it's a valid type or not
211 return true
212 }
213 return false
214}
215
216func CanBinaryMarshal(pass *analysis.Pass, v Value) bool {
217 typ := v.Value.Type().Underlying()
218 if ttyp, ok := typ.(*types.Pointer); ok {
219 typ = ttyp.Elem().Underlying()
220 }
221 if ttyp, ok := typ.(interface {
222 Elem() types.Type
223 }); ok {
224 if _, ok := ttyp.(*types.Pointer); !ok {
225 typ = ttyp.Elem()
226 }
227 }
228
229 return validEncodingBinaryType(pass, typ)
230}
231
232func RepeatZeroTimes(name string, arg int) CallCheck {
233 return func(call *Call) {
234 arg := call.Args[arg]
235 if IntValue(arg.Value, vrp.NewZ(0)) {
236 arg.Invalid(fmt.Sprintf("calling %s with n == 0 will return no results, did you mean -1?", name))
237 }
238 }
239}
240
241func validateServiceName(s string) bool {
242 if len(s) < 1 || len(s) > 15 {
243 return false
244 }
245 if s[0] == '-' || s[len(s)-1] == '-' {
246 return false
247 }
248 if strings.Contains(s, "--") {
249 return false
250 }
251 hasLetter := false
252 for _, r := range s {
253 if (r >= 'A' && r <= 'Z') || (r >= 'a' && r <= 'z') {
254 hasLetter = true
255 continue
256 }
257 if r >= '0' && r <= '9' {
258 continue
259 }
260 return false
261 }
262 return hasLetter
263}
264
265func validatePort(s string) bool {
266 n, err := strconv.ParseInt(s, 10, 64)
267 if err != nil {
268 return validateServiceName(s)
269 }
270 return n >= 0 && n <= 65535
271}
272
273func ValidHostPort(v Value) bool {
274 for _, k := range extractConsts(v.Value) {
275 if k.Value == nil {
276 continue
277 }
278 if k.Value.Kind() != constant.String {
279 continue
280 }
281 s := constant.StringVal(k.Value)
282 _, port, err := net.SplitHostPort(s)
283 if err != nil {
284 return false
285 }
286 // TODO(dh): check hostname
287 if !validatePort(port) {
288 return false
289 }
290 }
291 return true
292}
293
294// ConvertedFrom reports whether value v was converted from type typ.
295func ConvertedFrom(v Value, typ string) bool {
296 change, ok := v.Value.(*ssa.ChangeType)
297 return ok && IsType(change.X.Type(), typ)
298}
299
300func UniqueStringCutset(v Value) bool {
301 for _, c := range extractConsts(v.Value) {
302 if c.Value == nil {
303 continue
304 }
305 if c.Value.Kind() != constant.String {
306 continue
307 }
308 s := constant.StringVal(c.Value)
309 rs := runeSlice(s)
310 if len(rs) < 2 {
311 continue
312 }
313 sort.Sort(rs)
314 for i, r := range rs[1:] {
315 if rs[i] == r {
316 return false
317 }
318 }
319 }
320 return true
321}
diff --git a/vendor/honnef.co/go/tools/staticcheck/structtag.go b/vendor/honnef.co/go/tools/staticcheck/structtag.go
new file mode 100644
index 0000000..38830a2
--- /dev/null
+++ b/vendor/honnef.co/go/tools/staticcheck/structtag.go
@@ -0,0 +1,58 @@
1// Copyright 2009 The Go Authors. All rights reserved.
2// Copyright 2019 Dominik Honnef. All rights reserved.
3
4package staticcheck
5
6import "strconv"
7
8func parseStructTag(tag string) (map[string][]string, error) {
9 // FIXME(dh): detect missing closing quote
10 out := map[string][]string{}
11
12 for tag != "" {
13 // Skip leading space.
14 i := 0
15 for i < len(tag) && tag[i] == ' ' {
16 i++
17 }
18 tag = tag[i:]
19 if tag == "" {
20 break
21 }
22
23 // Scan to colon. A space, a quote or a control character is a syntax error.
24 // Strictly speaking, control chars include the range [0x7f, 0x9f], not just
25 // [0x00, 0x1f], but in practice, we ignore the multi-byte control characters
26 // as it is simpler to inspect the tag's bytes than the tag's runes.
27 i = 0
28 for i < len(tag) && tag[i] > ' ' && tag[i] != ':' && tag[i] != '"' && tag[i] != 0x7f {
29 i++
30 }
31 if i == 0 || i+1 >= len(tag) || tag[i] != ':' || tag[i+1] != '"' {
32 break
33 }
34 name := string(tag[:i])
35 tag = tag[i+1:]
36
37 // Scan quoted string to find value.
38 i = 1
39 for i < len(tag) && tag[i] != '"' {
40 if tag[i] == '\\' {
41 i++
42 }
43 i++
44 }
45 if i >= len(tag) {
46 break
47 }
48 qvalue := string(tag[:i+1])
49 tag = tag[i+1:]
50
51 value, err := strconv.Unquote(qvalue)
52 if err != nil {
53 return nil, err
54 }
55 out[name] = append(out[name], value)
56 }
57 return out, nil
58}
diff --git a/vendor/honnef.co/go/tools/staticcheck/vrp/channel.go b/vendor/honnef.co/go/tools/staticcheck/vrp/channel.go
new file mode 100644
index 0000000..0ef7378
--- /dev/null
+++ b/vendor/honnef.co/go/tools/staticcheck/vrp/channel.go
@@ -0,0 +1,73 @@
1package vrp
2
3import (
4 "fmt"
5
6 "honnef.co/go/tools/ssa"
7)
8
9type ChannelInterval struct {
10 Size IntInterval
11}
12
13func (c ChannelInterval) Union(other Range) Range {
14 i, ok := other.(ChannelInterval)
15 if !ok {
16 i = ChannelInterval{EmptyIntInterval}
17 }
18 if c.Size.Empty() || !c.Size.IsKnown() {
19 return i
20 }
21 if i.Size.Empty() || !i.Size.IsKnown() {
22 return c
23 }
24 return ChannelInterval{
25 Size: c.Size.Union(i.Size).(IntInterval),
26 }
27}
28
29func (c ChannelInterval) String() string {
30 return c.Size.String()
31}
32
33func (c ChannelInterval) IsKnown() bool {
34 return c.Size.IsKnown()
35}
36
37type MakeChannelConstraint struct {
38 aConstraint
39 Buffer ssa.Value
40}
41type ChannelChangeTypeConstraint struct {
42 aConstraint
43 X ssa.Value
44}
45
46func NewMakeChannelConstraint(buffer, y ssa.Value) Constraint {
47 return &MakeChannelConstraint{NewConstraint(y), buffer}
48}
49func NewChannelChangeTypeConstraint(x, y ssa.Value) Constraint {
50 return &ChannelChangeTypeConstraint{NewConstraint(y), x}
51}
52
53func (c *MakeChannelConstraint) Operands() []ssa.Value { return []ssa.Value{c.Buffer} }
54func (c *ChannelChangeTypeConstraint) Operands() []ssa.Value { return []ssa.Value{c.X} }
55
56func (c *MakeChannelConstraint) String() string {
57 return fmt.Sprintf("%s = make(chan, %s)", c.Y().Name(), c.Buffer.Name())
58}
59func (c *ChannelChangeTypeConstraint) String() string {
60 return fmt.Sprintf("%s = changetype(%s)", c.Y().Name(), c.X.Name())
61}
62
63func (c *MakeChannelConstraint) Eval(g *Graph) Range {
64 i, ok := g.Range(c.Buffer).(IntInterval)
65 if !ok {
66 return ChannelInterval{NewIntInterval(NewZ(0), PInfinity)}
67 }
68 if i.Lower.Sign() == -1 {
69 i.Lower = NewZ(0)
70 }
71 return ChannelInterval{i}
72}
73func (c *ChannelChangeTypeConstraint) Eval(g *Graph) Range { return g.Range(c.X) }
diff --git a/vendor/honnef.co/go/tools/staticcheck/vrp/int.go b/vendor/honnef.co/go/tools/staticcheck/vrp/int.go
new file mode 100644
index 0000000..926bb7a
--- /dev/null
+++ b/vendor/honnef.co/go/tools/staticcheck/vrp/int.go
@@ -0,0 +1,476 @@
1package vrp
2
3import (
4 "fmt"
5 "go/token"
6 "go/types"
7 "math/big"
8
9 "honnef.co/go/tools/ssa"
10)
11
12type Zs []Z
13
14func (zs Zs) Len() int {
15 return len(zs)
16}
17
18func (zs Zs) Less(i int, j int) bool {
19 return zs[i].Cmp(zs[j]) == -1
20}
21
22func (zs Zs) Swap(i int, j int) {
23 zs[i], zs[j] = zs[j], zs[i]
24}
25
26type Z struct {
27 infinity int8
28 integer *big.Int
29}
30
31func NewZ(n int64) Z {
32 return NewBigZ(big.NewInt(n))
33}
34
35func NewBigZ(n *big.Int) Z {
36 return Z{integer: n}
37}
38
39func (z1 Z) Infinite() bool {
40 return z1.infinity != 0
41}
42
43func (z1 Z) Add(z2 Z) Z {
44 if z2.Sign() == -1 {
45 return z1.Sub(z2.Negate())
46 }
47 if z1 == NInfinity {
48 return NInfinity
49 }
50 if z1 == PInfinity {
51 return PInfinity
52 }
53 if z2 == PInfinity {
54 return PInfinity
55 }
56
57 if !z1.Infinite() && !z2.Infinite() {
58 n := &big.Int{}
59 n.Add(z1.integer, z2.integer)
60 return NewBigZ(n)
61 }
62
63 panic(fmt.Sprintf("%s + %s is not defined", z1, z2))
64}
65
66func (z1 Z) Sub(z2 Z) Z {
67 if z2.Sign() == -1 {
68 return z1.Add(z2.Negate())
69 }
70 if !z1.Infinite() && !z2.Infinite() {
71 n := &big.Int{}
72 n.Sub(z1.integer, z2.integer)
73 return NewBigZ(n)
74 }
75
76 if z1 != PInfinity && z2 == PInfinity {
77 return NInfinity
78 }
79 if z1.Infinite() && !z2.Infinite() {
80 return Z{infinity: z1.infinity}
81 }
82 if z1 == PInfinity && z2 == PInfinity {
83 return PInfinity
84 }
85 panic(fmt.Sprintf("%s - %s is not defined", z1, z2))
86}
87
88func (z1 Z) Mul(z2 Z) Z {
89 if (z1.integer != nil && z1.integer.Sign() == 0) ||
90 (z2.integer != nil && z2.integer.Sign() == 0) {
91 return NewBigZ(&big.Int{})
92 }
93
94 if z1.infinity != 0 || z2.infinity != 0 {
95 return Z{infinity: int8(z1.Sign() * z2.Sign())}
96 }
97
98 n := &big.Int{}
99 n.Mul(z1.integer, z2.integer)
100 return NewBigZ(n)
101}
102
103func (z1 Z) Negate() Z {
104 if z1.infinity == 1 {
105 return NInfinity
106 }
107 if z1.infinity == -1 {
108 return PInfinity
109 }
110 n := &big.Int{}
111 n.Neg(z1.integer)
112 return NewBigZ(n)
113}
114
115func (z1 Z) Sign() int {
116 if z1.infinity != 0 {
117 return int(z1.infinity)
118 }
119 return z1.integer.Sign()
120}
121
122func (z1 Z) String() string {
123 if z1 == NInfinity {
124 return "-∞"
125 }
126 if z1 == PInfinity {
127 return "∞"
128 }
129 return fmt.Sprintf("%d", z1.integer)
130}
131
132func (z1 Z) Cmp(z2 Z) int {
133 if z1.infinity == z2.infinity && z1.infinity != 0 {
134 return 0
135 }
136 if z1 == PInfinity {
137 return 1
138 }
139 if z1 == NInfinity {
140 return -1
141 }
142 if z2 == NInfinity {
143 return 1
144 }
145 if z2 == PInfinity {
146 return -1
147 }
148 return z1.integer.Cmp(z2.integer)
149}
150
151func MaxZ(zs ...Z) Z {
152 if len(zs) == 0 {
153 panic("Max called with no arguments")
154 }
155 if len(zs) == 1 {
156 return zs[0]
157 }
158 ret := zs[0]
159 for _, z := range zs[1:] {
160 if z.Cmp(ret) == 1 {
161 ret = z
162 }
163 }
164 return ret
165}
166
167func MinZ(zs ...Z) Z {
168 if len(zs) == 0 {
169 panic("Min called with no arguments")
170 }
171 if len(zs) == 1 {
172 return zs[0]
173 }
174 ret := zs[0]
175 for _, z := range zs[1:] {
176 if z.Cmp(ret) == -1 {
177 ret = z
178 }
179 }
180 return ret
181}
182
183var NInfinity = Z{infinity: -1}
184var PInfinity = Z{infinity: 1}
185var EmptyIntInterval = IntInterval{true, PInfinity, NInfinity}
186
187func InfinityFor(v ssa.Value) IntInterval {
188 if b, ok := v.Type().Underlying().(*types.Basic); ok {
189 if (b.Info() & types.IsUnsigned) != 0 {
190 return NewIntInterval(NewZ(0), PInfinity)
191 }
192 }
193 return NewIntInterval(NInfinity, PInfinity)
194}
195
196type IntInterval struct {
197 known bool
198 Lower Z
199 Upper Z
200}
201
202func NewIntInterval(l, u Z) IntInterval {
203 if u.Cmp(l) == -1 {
204 return EmptyIntInterval
205 }
206 return IntInterval{known: true, Lower: l, Upper: u}
207}
208
209func (i IntInterval) IsKnown() bool {
210 return i.known
211}
212
213func (i IntInterval) Empty() bool {
214 return i.Lower == PInfinity && i.Upper == NInfinity
215}
216
217func (i IntInterval) IsMaxRange() bool {
218 return i.Lower == NInfinity && i.Upper == PInfinity
219}
220
221func (i1 IntInterval) Intersection(i2 IntInterval) IntInterval {
222 if !i1.IsKnown() {
223 return i2
224 }
225 if !i2.IsKnown() {
226 return i1
227 }
228 if i1.Empty() || i2.Empty() {
229 return EmptyIntInterval
230 }
231 i3 := NewIntInterval(MaxZ(i1.Lower, i2.Lower), MinZ(i1.Upper, i2.Upper))
232 if i3.Lower.Cmp(i3.Upper) == 1 {
233 return EmptyIntInterval
234 }
235 return i3
236}
237
238func (i1 IntInterval) Union(other Range) Range {
239 i2, ok := other.(IntInterval)
240 if !ok {
241 i2 = EmptyIntInterval
242 }
243 if i1.Empty() || !i1.IsKnown() {
244 return i2
245 }
246 if i2.Empty() || !i2.IsKnown() {
247 return i1
248 }
249 return NewIntInterval(MinZ(i1.Lower, i2.Lower), MaxZ(i1.Upper, i2.Upper))
250}
251
252func (i1 IntInterval) Add(i2 IntInterval) IntInterval {
253 if i1.Empty() || i2.Empty() {
254 return EmptyIntInterval
255 }
256 l1, u1, l2, u2 := i1.Lower, i1.Upper, i2.Lower, i2.Upper
257 return NewIntInterval(l1.Add(l2), u1.Add(u2))
258}
259
260func (i1 IntInterval) Sub(i2 IntInterval) IntInterval {
261 if i1.Empty() || i2.Empty() {
262 return EmptyIntInterval
263 }
264 l1, u1, l2, u2 := i1.Lower, i1.Upper, i2.Lower, i2.Upper
265 return NewIntInterval(l1.Sub(u2), u1.Sub(l2))
266}
267
268func (i1 IntInterval) Mul(i2 IntInterval) IntInterval {
269 if i1.Empty() || i2.Empty() {
270 return EmptyIntInterval
271 }
272 x1, x2 := i1.Lower, i1.Upper
273 y1, y2 := i2.Lower, i2.Upper
274 return NewIntInterval(
275 MinZ(x1.Mul(y1), x1.Mul(y2), x2.Mul(y1), x2.Mul(y2)),
276 MaxZ(x1.Mul(y1), x1.Mul(y2), x2.Mul(y1), x2.Mul(y2)),
277 )
278}
279
280func (i1 IntInterval) String() string {
281 if !i1.IsKnown() {
282 return "[⊥, ⊥]"
283 }
284 if i1.Empty() {
285 return "{}"
286 }
287 return fmt.Sprintf("[%s, %s]", i1.Lower, i1.Upper)
288}
289
290type IntArithmeticConstraint struct {
291 aConstraint
292 A ssa.Value
293 B ssa.Value
294 Op token.Token
295 Fn func(IntInterval, IntInterval) IntInterval
296}
297
298type IntAddConstraint struct{ *IntArithmeticConstraint }
299type IntSubConstraint struct{ *IntArithmeticConstraint }
300type IntMulConstraint struct{ *IntArithmeticConstraint }
301
302type IntConversionConstraint struct {
303 aConstraint
304 X ssa.Value
305}
306
307type IntIntersectionConstraint struct {
308 aConstraint
309 ranges Ranges
310 A ssa.Value
311 B ssa.Value
312 Op token.Token
313 I IntInterval
314 resolved bool
315}
316
317type IntIntervalConstraint struct {
318 aConstraint
319 I IntInterval
320}
321
322func NewIntArithmeticConstraint(a, b, y ssa.Value, op token.Token, fn func(IntInterval, IntInterval) IntInterval) *IntArithmeticConstraint {
323 return &IntArithmeticConstraint{NewConstraint(y), a, b, op, fn}
324}
325func NewIntAddConstraint(a, b, y ssa.Value) Constraint {
326 return &IntAddConstraint{NewIntArithmeticConstraint(a, b, y, token.ADD, IntInterval.Add)}
327}
328func NewIntSubConstraint(a, b, y ssa.Value) Constraint {
329 return &IntSubConstraint{NewIntArithmeticConstraint(a, b, y, token.SUB, IntInterval.Sub)}
330}
331func NewIntMulConstraint(a, b, y ssa.Value) Constraint {
332 return &IntMulConstraint{NewIntArithmeticConstraint(a, b, y, token.MUL, IntInterval.Mul)}
333}
334func NewIntConversionConstraint(x, y ssa.Value) Constraint {
335 return &IntConversionConstraint{NewConstraint(y), x}
336}
337func NewIntIntersectionConstraint(a, b ssa.Value, op token.Token, ranges Ranges, y ssa.Value) Constraint {
338 return &IntIntersectionConstraint{
339 aConstraint: NewConstraint(y),
340 ranges: ranges,
341 A: a,
342 B: b,
343 Op: op,
344 }
345}
346func NewIntIntervalConstraint(i IntInterval, y ssa.Value) Constraint {
347 return &IntIntervalConstraint{NewConstraint(y), i}
348}
349
350func (c *IntArithmeticConstraint) Operands() []ssa.Value { return []ssa.Value{c.A, c.B} }
351func (c *IntConversionConstraint) Operands() []ssa.Value { return []ssa.Value{c.X} }
352func (c *IntIntersectionConstraint) Operands() []ssa.Value { return []ssa.Value{c.A} }
353func (s *IntIntervalConstraint) Operands() []ssa.Value { return nil }
354
355func (c *IntArithmeticConstraint) String() string {
356 return fmt.Sprintf("%s = %s %s %s", c.Y().Name(), c.A.Name(), c.Op, c.B.Name())
357}
358func (c *IntConversionConstraint) String() string {
359 return fmt.Sprintf("%s = %s(%s)", c.Y().Name(), c.Y().Type(), c.X.Name())
360}
361func (c *IntIntersectionConstraint) String() string {
362 return fmt.Sprintf("%s = %s %s %s (%t branch)", c.Y().Name(), c.A.Name(), c.Op, c.B.Name(), c.Y().(*ssa.Sigma).Branch)
363}
364func (c *IntIntervalConstraint) String() string { return fmt.Sprintf("%s = %s", c.Y().Name(), c.I) }
365
366func (c *IntArithmeticConstraint) Eval(g *Graph) Range {
367 i1, i2 := g.Range(c.A).(IntInterval), g.Range(c.B).(IntInterval)
368 if !i1.IsKnown() || !i2.IsKnown() {
369 return IntInterval{}
370 }
371 return c.Fn(i1, i2)
372}
373func (c *IntConversionConstraint) Eval(g *Graph) Range {
374 s := &types.StdSizes{
375 // XXX is it okay to assume the largest word size, or do we
376 // need to be platform specific?
377 WordSize: 8,
378 MaxAlign: 1,
379 }
380 fromI := g.Range(c.X).(IntInterval)
381 toI := g.Range(c.Y()).(IntInterval)
382 fromT := c.X.Type().Underlying().(*types.Basic)
383 toT := c.Y().Type().Underlying().(*types.Basic)
384 fromB := s.Sizeof(c.X.Type())
385 toB := s.Sizeof(c.Y().Type())
386
387 if !fromI.IsKnown() {
388 return toI
389 }
390 if !toI.IsKnown() {
391 return fromI
392 }
393
394 // uint<N> -> sint/uint<M>, M > N: [max(0, l1), min(2**N-1, u2)]
395 if (fromT.Info()&types.IsUnsigned != 0) &&
396 toB > fromB {
397
398 n := big.NewInt(1)
399 n.Lsh(n, uint(fromB*8))
400 n.Sub(n, big.NewInt(1))
401 return NewIntInterval(
402 MaxZ(NewZ(0), fromI.Lower),
403 MinZ(NewBigZ(n), toI.Upper),
404 )
405 }
406
407 // sint<N> -> sint<M>, M > N; [max(-∞, l1), min(2**N-1, u2)]
408 if (fromT.Info()&types.IsUnsigned == 0) &&
409 (toT.Info()&types.IsUnsigned == 0) &&
410 toB > fromB {
411
412 n := big.NewInt(1)
413 n.Lsh(n, uint(fromB*8))
414 n.Sub(n, big.NewInt(1))
415 return NewIntInterval(
416 MaxZ(NInfinity, fromI.Lower),
417 MinZ(NewBigZ(n), toI.Upper),
418 )
419 }
420
421 return fromI
422}
423func (c *IntIntersectionConstraint) Eval(g *Graph) Range {
424 xi := g.Range(c.A).(IntInterval)
425 if !xi.IsKnown() {
426 return c.I
427 }
428 return xi.Intersection(c.I)
429}
430func (c *IntIntervalConstraint) Eval(*Graph) Range { return c.I }
431
432func (c *IntIntersectionConstraint) Futures() []ssa.Value {
433 return []ssa.Value{c.B}
434}
435
436func (c *IntIntersectionConstraint) Resolve() {
437 r, ok := c.ranges[c.B].(IntInterval)
438 if !ok {
439 c.I = InfinityFor(c.Y())
440 return
441 }
442
443 switch c.Op {
444 case token.EQL:
445 c.I = r
446 case token.GTR:
447 c.I = NewIntInterval(r.Lower.Add(NewZ(1)), PInfinity)
448 case token.GEQ:
449 c.I = NewIntInterval(r.Lower, PInfinity)
450 case token.LSS:
451 // TODO(dh): do we need 0 instead of NInfinity for uints?
452 c.I = NewIntInterval(NInfinity, r.Upper.Sub(NewZ(1)))
453 case token.LEQ:
454 c.I = NewIntInterval(NInfinity, r.Upper)
455 case token.NEQ:
456 c.I = InfinityFor(c.Y())
457 default:
458 panic("unsupported op " + c.Op.String())
459 }
460}
461
462func (c *IntIntersectionConstraint) IsKnown() bool {
463 return c.I.IsKnown()
464}
465
466func (c *IntIntersectionConstraint) MarkUnresolved() {
467 c.resolved = false
468}
469
470func (c *IntIntersectionConstraint) MarkResolved() {
471 c.resolved = true
472}
473
474func (c *IntIntersectionConstraint) IsResolved() bool {
475 return c.resolved
476}
diff --git a/vendor/honnef.co/go/tools/staticcheck/vrp/slice.go b/vendor/honnef.co/go/tools/staticcheck/vrp/slice.go
new file mode 100644
index 0000000..40658dd
--- /dev/null
+++ b/vendor/honnef.co/go/tools/staticcheck/vrp/slice.go
@@ -0,0 +1,273 @@
1package vrp
2
3// TODO(dh): most of the constraints have implementations identical to
4// that of strings. Consider reusing them.
5
6import (
7 "fmt"
8 "go/types"
9
10 "honnef.co/go/tools/ssa"
11)
12
13type SliceInterval struct {
14 Length IntInterval
15}
16
17func (s SliceInterval) Union(other Range) Range {
18 i, ok := other.(SliceInterval)
19 if !ok {
20 i = SliceInterval{EmptyIntInterval}
21 }
22 if s.Length.Empty() || !s.Length.IsKnown() {
23 return i
24 }
25 if i.Length.Empty() || !i.Length.IsKnown() {
26 return s
27 }
28 return SliceInterval{
29 Length: s.Length.Union(i.Length).(IntInterval),
30 }
31}
32func (s SliceInterval) String() string { return s.Length.String() }
33func (s SliceInterval) IsKnown() bool { return s.Length.IsKnown() }
34
35type SliceAppendConstraint struct {
36 aConstraint
37 A ssa.Value
38 B ssa.Value
39}
40
41type SliceSliceConstraint struct {
42 aConstraint
43 X ssa.Value
44 Lower ssa.Value
45 Upper ssa.Value
46}
47
48type ArraySliceConstraint struct {
49 aConstraint
50 X ssa.Value
51 Lower ssa.Value
52 Upper ssa.Value
53}
54
55type SliceIntersectionConstraint struct {
56 aConstraint
57 X ssa.Value
58 I IntInterval
59}
60
61type SliceLengthConstraint struct {
62 aConstraint
63 X ssa.Value
64}
65
66type MakeSliceConstraint struct {
67 aConstraint
68 Size ssa.Value
69}
70
71type SliceIntervalConstraint struct {
72 aConstraint
73 I IntInterval
74}
75
76func NewSliceAppendConstraint(a, b, y ssa.Value) Constraint {
77 return &SliceAppendConstraint{NewConstraint(y), a, b}
78}
79func NewSliceSliceConstraint(x, lower, upper, y ssa.Value) Constraint {
80 return &SliceSliceConstraint{NewConstraint(y), x, lower, upper}
81}
82func NewArraySliceConstraint(x, lower, upper, y ssa.Value) Constraint {
83 return &ArraySliceConstraint{NewConstraint(y), x, lower, upper}
84}
85func NewSliceIntersectionConstraint(x ssa.Value, i IntInterval, y ssa.Value) Constraint {
86 return &SliceIntersectionConstraint{NewConstraint(y), x, i}
87}
88func NewSliceLengthConstraint(x, y ssa.Value) Constraint {
89 return &SliceLengthConstraint{NewConstraint(y), x}
90}
91func NewMakeSliceConstraint(size, y ssa.Value) Constraint {
92 return &MakeSliceConstraint{NewConstraint(y), size}
93}
94func NewSliceIntervalConstraint(i IntInterval, y ssa.Value) Constraint {
95 return &SliceIntervalConstraint{NewConstraint(y), i}
96}
97
98func (c *SliceAppendConstraint) Operands() []ssa.Value { return []ssa.Value{c.A, c.B} }
99func (c *SliceSliceConstraint) Operands() []ssa.Value {
100 ops := []ssa.Value{c.X}
101 if c.Lower != nil {
102 ops = append(ops, c.Lower)
103 }
104 if c.Upper != nil {
105 ops = append(ops, c.Upper)
106 }
107 return ops
108}
109func (c *ArraySliceConstraint) Operands() []ssa.Value {
110 ops := []ssa.Value{c.X}
111 if c.Lower != nil {
112 ops = append(ops, c.Lower)
113 }
114 if c.Upper != nil {
115 ops = append(ops, c.Upper)
116 }
117 return ops
118}
119func (c *SliceIntersectionConstraint) Operands() []ssa.Value { return []ssa.Value{c.X} }
120func (c *SliceLengthConstraint) Operands() []ssa.Value { return []ssa.Value{c.X} }
121func (c *MakeSliceConstraint) Operands() []ssa.Value { return []ssa.Value{c.Size} }
122func (s *SliceIntervalConstraint) Operands() []ssa.Value { return nil }
123
124func (c *SliceAppendConstraint) String() string {
125 return fmt.Sprintf("%s = append(%s, %s)", c.Y().Name(), c.A.Name(), c.B.Name())
126}
127func (c *SliceSliceConstraint) String() string {
128 var lname, uname string
129 if c.Lower != nil {
130 lname = c.Lower.Name()
131 }
132 if c.Upper != nil {
133 uname = c.Upper.Name()
134 }
135 return fmt.Sprintf("%s[%s:%s]", c.X.Name(), lname, uname)
136}
137func (c *ArraySliceConstraint) String() string {
138 var lname, uname string
139 if c.Lower != nil {
140 lname = c.Lower.Name()
141 }
142 if c.Upper != nil {
143 uname = c.Upper.Name()
144 }
145 return fmt.Sprintf("%s[%s:%s]", c.X.Name(), lname, uname)
146}
147func (c *SliceIntersectionConstraint) String() string {
148 return fmt.Sprintf("%s = %s.%t ⊓ %s", c.Y().Name(), c.X.Name(), c.Y().(*ssa.Sigma).Branch, c.I)
149}
150func (c *SliceLengthConstraint) String() string {
151 return fmt.Sprintf("%s = len(%s)", c.Y().Name(), c.X.Name())
152}
153func (c *MakeSliceConstraint) String() string {
154 return fmt.Sprintf("%s = make(slice, %s)", c.Y().Name(), c.Size.Name())
155}
156func (c *SliceIntervalConstraint) String() string { return fmt.Sprintf("%s = %s", c.Y().Name(), c.I) }
157
158func (c *SliceAppendConstraint) Eval(g *Graph) Range {
159 l1 := g.Range(c.A).(SliceInterval).Length
160 var l2 IntInterval
161 switch r := g.Range(c.B).(type) {
162 case SliceInterval:
163 l2 = r.Length
164 case StringInterval:
165 l2 = r.Length
166 default:
167 return SliceInterval{}
168 }
169 if !l1.IsKnown() || !l2.IsKnown() {
170 return SliceInterval{}
171 }
172 return SliceInterval{
173 Length: l1.Add(l2),
174 }
175}
176func (c *SliceSliceConstraint) Eval(g *Graph) Range {
177 lr := NewIntInterval(NewZ(0), NewZ(0))
178 if c.Lower != nil {
179 lr = g.Range(c.Lower).(IntInterval)
180 }
181 ur := g.Range(c.X).(SliceInterval).Length
182 if c.Upper != nil {
183 ur = g.Range(c.Upper).(IntInterval)
184 }
185 if !lr.IsKnown() || !ur.IsKnown() {
186 return SliceInterval{}
187 }
188
189 ls := []Z{
190 ur.Lower.Sub(lr.Lower),
191 ur.Upper.Sub(lr.Lower),
192 ur.Lower.Sub(lr.Upper),
193 ur.Upper.Sub(lr.Upper),
194 }
195 // TODO(dh): if we don't truncate lengths to 0 we might be able to
196 // easily detect slices with high < low. we'd need to treat -∞
197 // specially, though.
198 for i, l := range ls {
199 if l.Sign() == -1 {
200 ls[i] = NewZ(0)
201 }
202 }
203
204 return SliceInterval{
205 Length: NewIntInterval(MinZ(ls...), MaxZ(ls...)),
206 }
207}
208func (c *ArraySliceConstraint) Eval(g *Graph) Range {
209 lr := NewIntInterval(NewZ(0), NewZ(0))
210 if c.Lower != nil {
211 lr = g.Range(c.Lower).(IntInterval)
212 }
213 var l int64
214 switch typ := c.X.Type().(type) {
215 case *types.Array:
216 l = typ.Len()
217 case *types.Pointer:
218 l = typ.Elem().(*types.Array).Len()
219 }
220 ur := NewIntInterval(NewZ(l), NewZ(l))
221 if c.Upper != nil {
222 ur = g.Range(c.Upper).(IntInterval)
223 }
224 if !lr.IsKnown() || !ur.IsKnown() {
225 return SliceInterval{}
226 }
227
228 ls := []Z{
229 ur.Lower.Sub(lr.Lower),
230 ur.Upper.Sub(lr.Lower),
231 ur.Lower.Sub(lr.Upper),
232 ur.Upper.Sub(lr.Upper),
233 }
234 // TODO(dh): if we don't truncate lengths to 0 we might be able to
235 // easily detect slices with high < low. we'd need to treat -∞
236 // specially, though.
237 for i, l := range ls {
238 if l.Sign() == -1 {
239 ls[i] = NewZ(0)
240 }
241 }
242
243 return SliceInterval{
244 Length: NewIntInterval(MinZ(ls...), MaxZ(ls...)),
245 }
246}
247func (c *SliceIntersectionConstraint) Eval(g *Graph) Range {
248 xi := g.Range(c.X).(SliceInterval)
249 if !xi.IsKnown() {
250 return c.I
251 }
252 return SliceInterval{
253 Length: xi.Length.Intersection(c.I),
254 }
255}
256func (c *SliceLengthConstraint) Eval(g *Graph) Range {
257 i := g.Range(c.X).(SliceInterval).Length
258 if !i.IsKnown() {
259 return NewIntInterval(NewZ(0), PInfinity)
260 }
261 return i
262}
263func (c *MakeSliceConstraint) Eval(g *Graph) Range {
264 i, ok := g.Range(c.Size).(IntInterval)
265 if !ok {
266 return SliceInterval{NewIntInterval(NewZ(0), PInfinity)}
267 }
268 if i.Lower.Sign() == -1 {
269 i.Lower = NewZ(0)
270 }
271 return SliceInterval{i}
272}
273func (c *SliceIntervalConstraint) Eval(*Graph) Range { return SliceInterval{c.I} }
diff --git a/vendor/honnef.co/go/tools/staticcheck/vrp/string.go b/vendor/honnef.co/go/tools/staticcheck/vrp/string.go
new file mode 100644
index 0000000..e05877f
--- /dev/null
+++ b/vendor/honnef.co/go/tools/staticcheck/vrp/string.go
@@ -0,0 +1,258 @@
1package vrp
2
3import (
4 "fmt"
5 "go/token"
6 "go/types"
7
8 "honnef.co/go/tools/ssa"
9)
10
11type StringInterval struct {
12 Length IntInterval
13}
14
15func (s StringInterval) Union(other Range) Range {
16 i, ok := other.(StringInterval)
17 if !ok {
18 i = StringInterval{EmptyIntInterval}
19 }
20 if s.Length.Empty() || !s.Length.IsKnown() {
21 return i
22 }
23 if i.Length.Empty() || !i.Length.IsKnown() {
24 return s
25 }
26 return StringInterval{
27 Length: s.Length.Union(i.Length).(IntInterval),
28 }
29}
30
31func (s StringInterval) String() string {
32 return s.Length.String()
33}
34
35func (s StringInterval) IsKnown() bool {
36 return s.Length.IsKnown()
37}
38
39type StringSliceConstraint struct {
40 aConstraint
41 X ssa.Value
42 Lower ssa.Value
43 Upper ssa.Value
44}
45
46type StringIntersectionConstraint struct {
47 aConstraint
48 ranges Ranges
49 A ssa.Value
50 B ssa.Value
51 Op token.Token
52 I IntInterval
53 resolved bool
54}
55
56type StringConcatConstraint struct {
57 aConstraint
58 A ssa.Value
59 B ssa.Value
60}
61
62type StringLengthConstraint struct {
63 aConstraint
64 X ssa.Value
65}
66
67type StringIntervalConstraint struct {
68 aConstraint
69 I IntInterval
70}
71
72func NewStringSliceConstraint(x, lower, upper, y ssa.Value) Constraint {
73 return &StringSliceConstraint{NewConstraint(y), x, lower, upper}
74}
75func NewStringIntersectionConstraint(a, b ssa.Value, op token.Token, ranges Ranges, y ssa.Value) Constraint {
76 return &StringIntersectionConstraint{
77 aConstraint: NewConstraint(y),
78 ranges: ranges,
79 A: a,
80 B: b,
81 Op: op,
82 }
83}
84func NewStringConcatConstraint(a, b, y ssa.Value) Constraint {
85 return &StringConcatConstraint{NewConstraint(y), a, b}
86}
87func NewStringLengthConstraint(x ssa.Value, y ssa.Value) Constraint {
88 return &StringLengthConstraint{NewConstraint(y), x}
89}
90func NewStringIntervalConstraint(i IntInterval, y ssa.Value) Constraint {
91 return &StringIntervalConstraint{NewConstraint(y), i}
92}
93
94func (c *StringSliceConstraint) Operands() []ssa.Value {
95 vs := []ssa.Value{c.X}
96 if c.Lower != nil {
97 vs = append(vs, c.Lower)
98 }
99 if c.Upper != nil {
100 vs = append(vs, c.Upper)
101 }
102 return vs
103}
104func (c *StringIntersectionConstraint) Operands() []ssa.Value { return []ssa.Value{c.A} }
105func (c StringConcatConstraint) Operands() []ssa.Value { return []ssa.Value{c.A, c.B} }
106func (c *StringLengthConstraint) Operands() []ssa.Value { return []ssa.Value{c.X} }
107func (s *StringIntervalConstraint) Operands() []ssa.Value { return nil }
108
109func (c *StringSliceConstraint) String() string {
110 var lname, uname string
111 if c.Lower != nil {
112 lname = c.Lower.Name()
113 }
114 if c.Upper != nil {
115 uname = c.Upper.Name()
116 }
117 return fmt.Sprintf("%s[%s:%s]", c.X.Name(), lname, uname)
118}
119func (c *StringIntersectionConstraint) String() string {
120 return fmt.Sprintf("%s = %s %s %s (%t branch)", c.Y().Name(), c.A.Name(), c.Op, c.B.Name(), c.Y().(*ssa.Sigma).Branch)
121}
122func (c StringConcatConstraint) String() string {
123 return fmt.Sprintf("%s = %s + %s", c.Y().Name(), c.A.Name(), c.B.Name())
124}
125func (c *StringLengthConstraint) String() string {
126 return fmt.Sprintf("%s = len(%s)", c.Y().Name(), c.X.Name())
127}
128func (c *StringIntervalConstraint) String() string { return fmt.Sprintf("%s = %s", c.Y().Name(), c.I) }
129
130func (c *StringSliceConstraint) Eval(g *Graph) Range {
131 lr := NewIntInterval(NewZ(0), NewZ(0))
132 if c.Lower != nil {
133 lr = g.Range(c.Lower).(IntInterval)
134 }
135 ur := g.Range(c.X).(StringInterval).Length
136 if c.Upper != nil {
137 ur = g.Range(c.Upper).(IntInterval)
138 }
139 if !lr.IsKnown() || !ur.IsKnown() {
140 return StringInterval{}
141 }
142
143 ls := []Z{
144 ur.Lower.Sub(lr.Lower),
145 ur.Upper.Sub(lr.Lower),
146 ur.Lower.Sub(lr.Upper),
147 ur.Upper.Sub(lr.Upper),
148 }
149 // TODO(dh): if we don't truncate lengths to 0 we might be able to
150 // easily detect slices with high < low. we'd need to treat -∞
151 // specially, though.
152 for i, l := range ls {
153 if l.Sign() == -1 {
154 ls[i] = NewZ(0)
155 }
156 }
157
158 return StringInterval{
159 Length: NewIntInterval(MinZ(ls...), MaxZ(ls...)),
160 }
161}
162func (c *StringIntersectionConstraint) Eval(g *Graph) Range {
163 var l IntInterval
164 switch r := g.Range(c.A).(type) {
165 case StringInterval:
166 l = r.Length
167 case IntInterval:
168 l = r
169 }
170
171 if !l.IsKnown() {
172 return StringInterval{c.I}
173 }
174 return StringInterval{
175 Length: l.Intersection(c.I),
176 }
177}
178func (c StringConcatConstraint) Eval(g *Graph) Range {
179 i1, i2 := g.Range(c.A).(StringInterval), g.Range(c.B).(StringInterval)
180 if !i1.Length.IsKnown() || !i2.Length.IsKnown() {
181 return StringInterval{}
182 }
183 return StringInterval{
184 Length: i1.Length.Add(i2.Length),
185 }
186}
187func (c *StringLengthConstraint) Eval(g *Graph) Range {
188 i := g.Range(c.X).(StringInterval).Length
189 if !i.IsKnown() {
190 return NewIntInterval(NewZ(0), PInfinity)
191 }
192 return i
193}
194func (c *StringIntervalConstraint) Eval(*Graph) Range { return StringInterval{c.I} }
195
196func (c *StringIntersectionConstraint) Futures() []ssa.Value {
197 return []ssa.Value{c.B}
198}
199
200func (c *StringIntersectionConstraint) Resolve() {
201 if (c.A.Type().Underlying().(*types.Basic).Info() & types.IsString) != 0 {
202 // comparing two strings
203 r, ok := c.ranges[c.B].(StringInterval)
204 if !ok {
205 c.I = NewIntInterval(NewZ(0), PInfinity)
206 return
207 }
208 switch c.Op {
209 case token.EQL:
210 c.I = r.Length
211 case token.GTR, token.GEQ:
212 c.I = NewIntInterval(r.Length.Lower, PInfinity)
213 case token.LSS, token.LEQ:
214 c.I = NewIntInterval(NewZ(0), r.Length.Upper)
215 case token.NEQ:
216 default:
217 panic("unsupported op " + c.Op.String())
218 }
219 } else {
220 r, ok := c.ranges[c.B].(IntInterval)
221 if !ok {
222 c.I = NewIntInterval(NewZ(0), PInfinity)
223 return
224 }
225 // comparing two lengths
226 switch c.Op {
227 case token.EQL:
228 c.I = r
229 case token.GTR:
230 c.I = NewIntInterval(r.Lower.Add(NewZ(1)), PInfinity)
231 case token.GEQ:
232 c.I = NewIntInterval(r.Lower, PInfinity)
233 case token.LSS:
234 c.I = NewIntInterval(NInfinity, r.Upper.Sub(NewZ(1)))
235 case token.LEQ:
236 c.I = NewIntInterval(NInfinity, r.Upper)
237 case token.NEQ:
238 default:
239 panic("unsupported op " + c.Op.String())
240 }
241 }
242}
243
244func (c *StringIntersectionConstraint) IsKnown() bool {
245 return c.I.IsKnown()
246}
247
248func (c *StringIntersectionConstraint) MarkUnresolved() {
249 c.resolved = false
250}
251
252func (c *StringIntersectionConstraint) MarkResolved() {
253 c.resolved = true
254}
255
256func (c *StringIntersectionConstraint) IsResolved() bool {
257 return c.resolved
258}
diff --git a/vendor/honnef.co/go/tools/staticcheck/vrp/vrp.go b/vendor/honnef.co/go/tools/staticcheck/vrp/vrp.go
new file mode 100644
index 0000000..3c138e5
--- /dev/null
+++ b/vendor/honnef.co/go/tools/staticcheck/vrp/vrp.go
@@ -0,0 +1,1056 @@
1package vrp
2
3// TODO(dh) widening and narrowing have a lot of code in common. Make
4// it reusable.
5
6import (
7 "fmt"
8 "go/constant"
9 "go/token"
10 "go/types"
11 "math/big"
12 "sort"
13 "strings"
14
15 "honnef.co/go/tools/lint"
16 "honnef.co/go/tools/ssa"
17)
18
19type Future interface {
20 Constraint
21 Futures() []ssa.Value
22 Resolve()
23 IsKnown() bool
24 MarkUnresolved()
25 MarkResolved()
26 IsResolved() bool
27}
28
29type Range interface {
30 Union(other Range) Range
31 IsKnown() bool
32}
33
34type Constraint interface {
35 Y() ssa.Value
36 isConstraint()
37 String() string
38 Eval(*Graph) Range
39 Operands() []ssa.Value
40}
41
42type aConstraint struct {
43 y ssa.Value
44}
45
46func NewConstraint(y ssa.Value) aConstraint {
47 return aConstraint{y}
48}
49
50func (aConstraint) isConstraint() {}
51func (c aConstraint) Y() ssa.Value { return c.y }
52
53type PhiConstraint struct {
54 aConstraint
55 Vars []ssa.Value
56}
57
58func NewPhiConstraint(vars []ssa.Value, y ssa.Value) Constraint {
59 uniqm := map[ssa.Value]struct{}{}
60 for _, v := range vars {
61 uniqm[v] = struct{}{}
62 }
63 var uniq []ssa.Value
64 for v := range uniqm {
65 uniq = append(uniq, v)
66 }
67 return &PhiConstraint{
68 aConstraint: NewConstraint(y),
69 Vars: uniq,
70 }
71}
72
73func (c *PhiConstraint) Operands() []ssa.Value {
74 return c.Vars
75}
76
77func (c *PhiConstraint) Eval(g *Graph) Range {
78 i := Range(nil)
79 for _, v := range c.Vars {
80 i = g.Range(v).Union(i)
81 }
82 return i
83}
84
85func (c *PhiConstraint) String() string {
86 names := make([]string, len(c.Vars))
87 for i, v := range c.Vars {
88 names[i] = v.Name()
89 }
90 return fmt.Sprintf("%s = φ(%s)", c.Y().Name(), strings.Join(names, ", "))
91}
92
93func isSupportedType(typ types.Type) bool {
94 switch typ := typ.Underlying().(type) {
95 case *types.Basic:
96 switch typ.Kind() {
97 case types.String, types.UntypedString:
98 return true
99 default:
100 if (typ.Info() & types.IsInteger) == 0 {
101 return false
102 }
103 }
104 case *types.Chan:
105 return true
106 case *types.Slice:
107 return true
108 default:
109 return false
110 }
111 return true
112}
113
114func ConstantToZ(c constant.Value) Z {
115 s := constant.ToInt(c).ExactString()
116 n := &big.Int{}
117 n.SetString(s, 10)
118 return NewBigZ(n)
119}
120
121func sigmaInteger(g *Graph, ins *ssa.Sigma, cond *ssa.BinOp, ops []*ssa.Value) Constraint {
122 op := cond.Op
123 if !ins.Branch {
124 op = (invertToken(op))
125 }
126
127 switch op {
128 case token.EQL, token.GTR, token.GEQ, token.LSS, token.LEQ:
129 default:
130 return nil
131 }
132 var a, b ssa.Value
133 if (*ops[0]) == ins.X {
134 a = *ops[0]
135 b = *ops[1]
136 } else {
137 a = *ops[1]
138 b = *ops[0]
139 op = flipToken(op)
140 }
141 return NewIntIntersectionConstraint(a, b, op, g.ranges, ins)
142}
143
144func sigmaString(g *Graph, ins *ssa.Sigma, cond *ssa.BinOp, ops []*ssa.Value) Constraint {
145 op := cond.Op
146 if !ins.Branch {
147 op = (invertToken(op))
148 }
149
150 switch op {
151 case token.EQL, token.GTR, token.GEQ, token.LSS, token.LEQ:
152 default:
153 return nil
154 }
155
156 if ((*ops[0]).Type().Underlying().(*types.Basic).Info() & types.IsString) == 0 {
157 var a, b ssa.Value
158 call, ok := (*ops[0]).(*ssa.Call)
159 if ok && call.Common().Args[0] == ins.X {
160 a = *ops[0]
161 b = *ops[1]
162 } else {
163 a = *ops[1]
164 b = *ops[0]
165 op = flipToken(op)
166 }
167 return NewStringIntersectionConstraint(a, b, op, g.ranges, ins)
168 }
169 var a, b ssa.Value
170 if (*ops[0]) == ins.X {
171 a = *ops[0]
172 b = *ops[1]
173 } else {
174 a = *ops[1]
175 b = *ops[0]
176 op = flipToken(op)
177 }
178 return NewStringIntersectionConstraint(a, b, op, g.ranges, ins)
179}
180
181func sigmaSlice(g *Graph, ins *ssa.Sigma, cond *ssa.BinOp, ops []*ssa.Value) Constraint {
182 // TODO(dh) sigmaSlice and sigmaString are a lot alike. Can they
183 // be merged?
184 //
185 // XXX support futures
186
187 op := cond.Op
188 if !ins.Branch {
189 op = (invertToken(op))
190 }
191
192 k, ok := (*ops[1]).(*ssa.Const)
193 // XXX investigate in what cases this wouldn't be a Const
194 //
195 // XXX what if left and right are swapped?
196 if !ok {
197 return nil
198 }
199
200 call, ok := (*ops[0]).(*ssa.Call)
201 if !ok {
202 return nil
203 }
204 builtin, ok := call.Common().Value.(*ssa.Builtin)
205 if !ok {
206 return nil
207 }
208 if builtin.Name() != "len" {
209 return nil
210 }
211 callops := call.Operands(nil)
212
213 v := ConstantToZ(k.Value)
214 c := NewSliceIntersectionConstraint(*callops[1], IntInterval{}, ins).(*SliceIntersectionConstraint)
215 switch op {
216 case token.EQL:
217 c.I = NewIntInterval(v, v)
218 case token.GTR, token.GEQ:
219 off := int64(0)
220 if cond.Op == token.GTR {
221 off = 1
222 }
223 c.I = NewIntInterval(
224 v.Add(NewZ(off)),
225 PInfinity,
226 )
227 case token.LSS, token.LEQ:
228 off := int64(0)
229 if cond.Op == token.LSS {
230 off = -1
231 }
232 c.I = NewIntInterval(
233 NInfinity,
234 v.Add(NewZ(off)),
235 )
236 default:
237 return nil
238 }
239 return c
240}
241
242func BuildGraph(f *ssa.Function) *Graph {
243 g := &Graph{
244 Vertices: map[interface{}]*Vertex{},
245 ranges: Ranges{},
246 }
247
248 var cs []Constraint
249
250 ops := make([]*ssa.Value, 16)
251 seen := map[ssa.Value]bool{}
252 for _, block := range f.Blocks {
253 for _, ins := range block.Instrs {
254 ops = ins.Operands(ops[:0])
255 for _, op := range ops {
256 if c, ok := (*op).(*ssa.Const); ok {
257 if seen[c] {
258 continue
259 }
260 seen[c] = true
261 if c.Value == nil {
262 switch c.Type().Underlying().(type) {
263 case *types.Slice:
264 cs = append(cs, NewSliceIntervalConstraint(NewIntInterval(NewZ(0), NewZ(0)), c))
265 }
266 continue
267 }
268 switch c.Value.Kind() {
269 case constant.Int:
270 v := ConstantToZ(c.Value)
271 cs = append(cs, NewIntIntervalConstraint(NewIntInterval(v, v), c))
272 case constant.String:
273 s := constant.StringVal(c.Value)
274 n := NewZ(int64(len(s)))
275 cs = append(cs, NewStringIntervalConstraint(NewIntInterval(n, n), c))
276 }
277 }
278 }
279 }
280 }
281 for _, block := range f.Blocks {
282 for _, ins := range block.Instrs {
283 switch ins := ins.(type) {
284 case *ssa.Convert:
285 switch v := ins.Type().Underlying().(type) {
286 case *types.Basic:
287 if (v.Info() & types.IsInteger) == 0 {
288 continue
289 }
290 cs = append(cs, NewIntConversionConstraint(ins.X, ins))
291 }
292 case *ssa.Call:
293 if static := ins.Common().StaticCallee(); static != nil {
294 if fn, ok := static.Object().(*types.Func); ok {
295 switch lint.FuncName(fn) {
296 case "bytes.Index", "bytes.IndexAny", "bytes.IndexByte",
297 "bytes.IndexFunc", "bytes.IndexRune", "bytes.LastIndex",
298 "bytes.LastIndexAny", "bytes.LastIndexByte", "bytes.LastIndexFunc",
299 "strings.Index", "strings.IndexAny", "strings.IndexByte",
300 "strings.IndexFunc", "strings.IndexRune", "strings.LastIndex",
301 "strings.LastIndexAny", "strings.LastIndexByte", "strings.LastIndexFunc":
302 // TODO(dh): instead of limiting by +∞,
303 // limit by the upper bound of the passed
304 // string
305 cs = append(cs, NewIntIntervalConstraint(NewIntInterval(NewZ(-1), PInfinity), ins))
306 case "bytes.Title", "bytes.ToLower", "bytes.ToTitle", "bytes.ToUpper",
307 "strings.Title", "strings.ToLower", "strings.ToTitle", "strings.ToUpper":
308 cs = append(cs, NewCopyConstraint(ins.Common().Args[0], ins))
309 case "bytes.ToLowerSpecial", "bytes.ToTitleSpecial", "bytes.ToUpperSpecial",
310 "strings.ToLowerSpecial", "strings.ToTitleSpecial", "strings.ToUpperSpecial":
311 cs = append(cs, NewCopyConstraint(ins.Common().Args[1], ins))
312 case "bytes.Compare", "strings.Compare":
313 cs = append(cs, NewIntIntervalConstraint(NewIntInterval(NewZ(-1), NewZ(1)), ins))
314 case "bytes.Count", "strings.Count":
315 // TODO(dh): instead of limiting by +∞,
316 // limit by the upper bound of the passed
317 // string.
318 cs = append(cs, NewIntIntervalConstraint(NewIntInterval(NewZ(0), PInfinity), ins))
319 case "bytes.Map", "bytes.TrimFunc", "bytes.TrimLeft", "bytes.TrimLeftFunc",
320 "bytes.TrimRight", "bytes.TrimRightFunc", "bytes.TrimSpace",
321 "strings.Map", "strings.TrimFunc", "strings.TrimLeft", "strings.TrimLeftFunc",
322 "strings.TrimRight", "strings.TrimRightFunc", "strings.TrimSpace":
323 // TODO(dh): lower = 0, upper = upper of passed string
324 case "bytes.TrimPrefix", "bytes.TrimSuffix",
325 "strings.TrimPrefix", "strings.TrimSuffix":
326 // TODO(dh) range between "unmodified" and len(cutset) removed
327 case "(*bytes.Buffer).Cap", "(*bytes.Buffer).Len", "(*bytes.Reader).Len", "(*bytes.Reader).Size":
328 cs = append(cs, NewIntIntervalConstraint(NewIntInterval(NewZ(0), PInfinity), ins))
329 }
330 }
331 }
332 builtin, ok := ins.Common().Value.(*ssa.Builtin)
333 ops := ins.Operands(nil)
334 if !ok {
335 continue
336 }
337 switch builtin.Name() {
338 case "len":
339 switch op1 := (*ops[1]).Type().Underlying().(type) {
340 case *types.Basic:
341 if op1.Kind() == types.String || op1.Kind() == types.UntypedString {
342 cs = append(cs, NewStringLengthConstraint(*ops[1], ins))
343 }
344 case *types.Slice:
345 cs = append(cs, NewSliceLengthConstraint(*ops[1], ins))
346 }
347
348 case "append":
349 cs = append(cs, NewSliceAppendConstraint(ins.Common().Args[0], ins.Common().Args[1], ins))
350 }
351 case *ssa.BinOp:
352 ops := ins.Operands(nil)
353 basic, ok := (*ops[0]).Type().Underlying().(*types.Basic)
354 if !ok {
355 continue
356 }
357 switch basic.Kind() {
358 case types.Int, types.Int8, types.Int16, types.Int32, types.Int64,
359 types.Uint, types.Uint8, types.Uint16, types.Uint32, types.Uint64, types.UntypedInt:
360 fns := map[token.Token]func(ssa.Value, ssa.Value, ssa.Value) Constraint{
361 token.ADD: NewIntAddConstraint,
362 token.SUB: NewIntSubConstraint,
363 token.MUL: NewIntMulConstraint,
364 // XXX support QUO, REM, SHL, SHR
365 }
366 fn, ok := fns[ins.Op]
367 if ok {
368 cs = append(cs, fn(*ops[0], *ops[1], ins))
369 }
370 case types.String, types.UntypedString:
371 if ins.Op == token.ADD {
372 cs = append(cs, NewStringConcatConstraint(*ops[0], *ops[1], ins))
373 }
374 }
375 case *ssa.Slice:
376 typ := ins.X.Type().Underlying()
377 switch typ := typ.(type) {
378 case *types.Basic:
379 cs = append(cs, NewStringSliceConstraint(ins.X, ins.Low, ins.High, ins))
380 case *types.Slice:
381 cs = append(cs, NewSliceSliceConstraint(ins.X, ins.Low, ins.High, ins))
382 case *types.Array:
383 cs = append(cs, NewArraySliceConstraint(ins.X, ins.Low, ins.High, ins))
384 case *types.Pointer:
385 if _, ok := typ.Elem().(*types.Array); !ok {
386 continue
387 }
388 cs = append(cs, NewArraySliceConstraint(ins.X, ins.Low, ins.High, ins))
389 }
390 case *ssa.Phi:
391 if !isSupportedType(ins.Type()) {
392 continue
393 }
394 ops := ins.Operands(nil)
395 dops := make([]ssa.Value, len(ops))
396 for i, op := range ops {
397 dops[i] = *op
398 }
399 cs = append(cs, NewPhiConstraint(dops, ins))
400 case *ssa.Sigma:
401 pred := ins.Block().Preds[0]
402 instrs := pred.Instrs
403 cond, ok := instrs[len(instrs)-1].(*ssa.If).Cond.(*ssa.BinOp)
404 ops := cond.Operands(nil)
405 if !ok {
406 continue
407 }
408 switch typ := ins.Type().Underlying().(type) {
409 case *types.Basic:
410 var c Constraint
411 switch typ.Kind() {
412 case types.Int, types.Int8, types.Int16, types.Int32, types.Int64,
413 types.Uint, types.Uint8, types.Uint16, types.Uint32, types.Uint64, types.UntypedInt:
414 c = sigmaInteger(g, ins, cond, ops)
415 case types.String, types.UntypedString:
416 c = sigmaString(g, ins, cond, ops)
417 }
418 if c != nil {
419 cs = append(cs, c)
420 }
421 case *types.Slice:
422 c := sigmaSlice(g, ins, cond, ops)
423 if c != nil {
424 cs = append(cs, c)
425 }
426 default:
427 //log.Printf("unsupported sigma type %T", typ) // XXX
428 }
429 case *ssa.MakeChan:
430 cs = append(cs, NewMakeChannelConstraint(ins.Size, ins))
431 case *ssa.MakeSlice:
432 cs = append(cs, NewMakeSliceConstraint(ins.Len, ins))
433 case *ssa.ChangeType:
434 switch ins.X.Type().Underlying().(type) {
435 case *types.Chan:
436 cs = append(cs, NewChannelChangeTypeConstraint(ins.X, ins))
437 }
438 }
439 }
440 }
441
442 for _, c := range cs {
443 if c == nil {
444 panic("nil constraint")
445 }
446 // If V is used in constraint C, then we create an edge V->C
447 for _, op := range c.Operands() {
448 g.AddEdge(op, c, false)
449 }
450 if c, ok := c.(Future); ok {
451 for _, op := range c.Futures() {
452 g.AddEdge(op, c, true)
453 }
454 }
455 // If constraint C defines variable V, then we create an edge
456 // C->V
457 g.AddEdge(c, c.Y(), false)
458 }
459
460 g.FindSCCs()
461 g.sccEdges = make([][]Edge, len(g.SCCs))
462 g.futures = make([][]Future, len(g.SCCs))
463 for _, e := range g.Edges {
464 g.sccEdges[e.From.SCC] = append(g.sccEdges[e.From.SCC], e)
465 if !e.control {
466 continue
467 }
468 if c, ok := e.To.Value.(Future); ok {
469 g.futures[e.From.SCC] = append(g.futures[e.From.SCC], c)
470 }
471 }
472 return g
473}
474
475func (g *Graph) Solve() Ranges {
476 var consts []Z
477 off := NewZ(1)
478 for _, n := range g.Vertices {
479 if c, ok := n.Value.(*ssa.Const); ok {
480 basic, ok := c.Type().Underlying().(*types.Basic)
481 if !ok {
482 continue
483 }
484 if (basic.Info() & types.IsInteger) != 0 {
485 z := ConstantToZ(c.Value)
486 consts = append(consts, z)
487 consts = append(consts, z.Add(off))
488 consts = append(consts, z.Sub(off))
489 }
490 }
491
492 }
493 sort.Sort(Zs(consts))
494
495 for scc, vertices := range g.SCCs {
496 n := 0
497 n = len(vertices)
498 if n == 1 {
499 g.resolveFutures(scc)
500 v := vertices[0]
501 if v, ok := v.Value.(ssa.Value); ok {
502 switch typ := v.Type().Underlying().(type) {
503 case *types.Basic:
504 switch typ.Kind() {
505 case types.String, types.UntypedString:
506 if !g.Range(v).(StringInterval).IsKnown() {
507 g.SetRange(v, StringInterval{NewIntInterval(NewZ(0), PInfinity)})
508 }
509 default:
510 if !g.Range(v).(IntInterval).IsKnown() {
511 g.SetRange(v, InfinityFor(v))
512 }
513 }
514 case *types.Chan:
515 if !g.Range(v).(ChannelInterval).IsKnown() {
516 g.SetRange(v, ChannelInterval{NewIntInterval(NewZ(0), PInfinity)})
517 }
518 case *types.Slice:
519 if !g.Range(v).(SliceInterval).IsKnown() {
520 g.SetRange(v, SliceInterval{NewIntInterval(NewZ(0), PInfinity)})
521 }
522 }
523 }
524 if c, ok := v.Value.(Constraint); ok {
525 g.SetRange(c.Y(), c.Eval(g))
526 }
527 } else {
528 uses := g.uses(scc)
529 entries := g.entries(scc)
530 for len(entries) > 0 {
531 v := entries[len(entries)-1]
532 entries = entries[:len(entries)-1]
533 for _, use := range uses[v] {
534 if g.widen(use, consts) {
535 entries = append(entries, use.Y())
536 }
537 }
538 }
539
540 g.resolveFutures(scc)
541
542 // XXX this seems to be necessary, but shouldn't be.
543 // removing it leads to nil pointer derefs; investigate
544 // where we're not setting values correctly.
545 for _, n := range vertices {
546 if v, ok := n.Value.(ssa.Value); ok {
547 i, ok := g.Range(v).(IntInterval)
548 if !ok {
549 continue
550 }
551 if !i.IsKnown() {
552 g.SetRange(v, InfinityFor(v))
553 }
554 }
555 }
556
557 actives := g.actives(scc)
558 for len(actives) > 0 {
559 v := actives[len(actives)-1]
560 actives = actives[:len(actives)-1]
561 for _, use := range uses[v] {
562 if g.narrow(use) {
563 actives = append(actives, use.Y())
564 }
565 }
566 }
567 }
568 // propagate scc
569 for _, edge := range g.sccEdges[scc] {
570 if edge.control {
571 continue
572 }
573 if edge.From.SCC == edge.To.SCC {
574 continue
575 }
576 if c, ok := edge.To.Value.(Constraint); ok {
577 g.SetRange(c.Y(), c.Eval(g))
578 }
579 if c, ok := edge.To.Value.(Future); ok {
580 if !c.IsKnown() {
581 c.MarkUnresolved()
582 }
583 }
584 }
585 }
586
587 for v, r := range g.ranges {
588 i, ok := r.(IntInterval)
589 if !ok {
590 continue
591 }
592 if (v.Type().Underlying().(*types.Basic).Info() & types.IsUnsigned) == 0 {
593 if i.Upper != PInfinity {
594 s := &types.StdSizes{
595 // XXX is it okay to assume the largest word size, or do we
596 // need to be platform specific?
597 WordSize: 8,
598 MaxAlign: 1,
599 }
600 bits := (s.Sizeof(v.Type()) * 8) - 1
601 n := big.NewInt(1)
602 n = n.Lsh(n, uint(bits))
603 upper, lower := &big.Int{}, &big.Int{}
604 upper.Sub(n, big.NewInt(1))
605 lower.Neg(n)
606
607 if i.Upper.Cmp(NewBigZ(upper)) == 1 {
608 i = NewIntInterval(NInfinity, PInfinity)
609 } else if i.Lower.Cmp(NewBigZ(lower)) == -1 {
610 i = NewIntInterval(NInfinity, PInfinity)
611 }
612 }
613 }
614
615 g.ranges[v] = i
616 }
617
618 return g.ranges
619}
620
621func VertexString(v *Vertex) string {
622 switch v := v.Value.(type) {
623 case Constraint:
624 return v.String()
625 case ssa.Value:
626 return v.Name()
627 case nil:
628 return "BUG: nil vertex value"
629 default:
630 panic(fmt.Sprintf("unexpected type %T", v))
631 }
632}
633
634type Vertex struct {
635 Value interface{} // one of Constraint or ssa.Value
636 SCC int
637 index int
638 lowlink int
639 stack bool
640
641 Succs []Edge
642}
643
644type Ranges map[ssa.Value]Range
645
646func (r Ranges) Get(x ssa.Value) Range {
647 if x == nil {
648 return nil
649 }
650 i, ok := r[x]
651 if !ok {
652 switch x := x.Type().Underlying().(type) {
653 case *types.Basic:
654 switch x.Kind() {
655 case types.String, types.UntypedString:
656 return StringInterval{}
657 default:
658 return IntInterval{}
659 }
660 case *types.Chan:
661 return ChannelInterval{}
662 case *types.Slice:
663 return SliceInterval{}
664 }
665 }
666 return i
667}
668
669type Graph struct {
670 Vertices map[interface{}]*Vertex
671 Edges []Edge
672 SCCs [][]*Vertex
673 ranges Ranges
674
675 // map SCCs to futures
676 futures [][]Future
677 // map SCCs to edges
678 sccEdges [][]Edge
679}
680
681func (g Graph) Graphviz() string {
682 var lines []string
683 lines = append(lines, "digraph{")
684 ids := map[interface{}]int{}
685 i := 1
686 for _, v := range g.Vertices {
687 ids[v] = i
688 shape := "box"
689 if _, ok := v.Value.(ssa.Value); ok {
690 shape = "oval"
691 }
692 lines = append(lines, fmt.Sprintf(`n%d [shape="%s", label=%q, colorscheme=spectral11, style="filled", fillcolor="%d"]`,
693 i, shape, VertexString(v), (v.SCC%11)+1))
694 i++
695 }
696 for _, e := range g.Edges {
697 style := "solid"
698 if e.control {
699 style = "dashed"
700 }
701 lines = append(lines, fmt.Sprintf(`n%d -> n%d [style="%s"]`, ids[e.From], ids[e.To], style))
702 }
703 lines = append(lines, "}")
704 return strings.Join(lines, "\n")
705}
706
707func (g *Graph) SetRange(x ssa.Value, r Range) {
708 g.ranges[x] = r
709}
710
711func (g *Graph) Range(x ssa.Value) Range {
712 return g.ranges.Get(x)
713}
714
715func (g *Graph) widen(c Constraint, consts []Z) bool {
716 setRange := func(i Range) {
717 g.SetRange(c.Y(), i)
718 }
719 widenIntInterval := func(oi, ni IntInterval) (IntInterval, bool) {
720 if !ni.IsKnown() {
721 return oi, false
722 }
723 nlc := NInfinity
724 nuc := PInfinity
725
726 // Don't get stuck widening for an absurd amount of time due
727 // to an excess number of constants, as may be present in
728 // table-based scanners.
729 if len(consts) < 1000 {
730 for _, co := range consts {
731 if co.Cmp(ni.Lower) <= 0 {
732 nlc = co
733 break
734 }
735 }
736 for _, co := range consts {
737 if co.Cmp(ni.Upper) >= 0 {
738 nuc = co
739 break
740 }
741 }
742 }
743
744 if !oi.IsKnown() {
745 return ni, true
746 }
747 if ni.Lower.Cmp(oi.Lower) == -1 && ni.Upper.Cmp(oi.Upper) == 1 {
748 return NewIntInterval(nlc, nuc), true
749 }
750 if ni.Lower.Cmp(oi.Lower) == -1 {
751 return NewIntInterval(nlc, oi.Upper), true
752 }
753 if ni.Upper.Cmp(oi.Upper) == 1 {
754 return NewIntInterval(oi.Lower, nuc), true
755 }
756 return oi, false
757 }
758 switch oi := g.Range(c.Y()).(type) {
759 case IntInterval:
760 ni := c.Eval(g).(IntInterval)
761 si, changed := widenIntInterval(oi, ni)
762 if changed {
763 setRange(si)
764 return true
765 }
766 return false
767 case StringInterval:
768 ni := c.Eval(g).(StringInterval)
769 si, changed := widenIntInterval(oi.Length, ni.Length)
770 if changed {
771 setRange(StringInterval{si})
772 return true
773 }
774 return false
775 case SliceInterval:
776 ni := c.Eval(g).(SliceInterval)
777 si, changed := widenIntInterval(oi.Length, ni.Length)
778 if changed {
779 setRange(SliceInterval{si})
780 return true
781 }
782 return false
783 default:
784 return false
785 }
786}
787
788func (g *Graph) narrow(c Constraint) bool {
789 narrowIntInterval := func(oi, ni IntInterval) (IntInterval, bool) {
790 oLower := oi.Lower
791 oUpper := oi.Upper
792 nLower := ni.Lower
793 nUpper := ni.Upper
794
795 if oLower == NInfinity && nLower != NInfinity {
796 return NewIntInterval(nLower, oUpper), true
797 }
798 if oUpper == PInfinity && nUpper != PInfinity {
799 return NewIntInterval(oLower, nUpper), true
800 }
801 if oLower.Cmp(nLower) == 1 {
802 return NewIntInterval(nLower, oUpper), true
803 }
804 if oUpper.Cmp(nUpper) == -1 {
805 return NewIntInterval(oLower, nUpper), true
806 }
807 return oi, false
808 }
809 switch oi := g.Range(c.Y()).(type) {
810 case IntInterval:
811 ni := c.Eval(g).(IntInterval)
812 si, changed := narrowIntInterval(oi, ni)
813 if changed {
814 g.SetRange(c.Y(), si)
815 return true
816 }
817 return false
818 case StringInterval:
819 ni := c.Eval(g).(StringInterval)
820 si, changed := narrowIntInterval(oi.Length, ni.Length)
821 if changed {
822 g.SetRange(c.Y(), StringInterval{si})
823 return true
824 }
825 return false
826 case SliceInterval:
827 ni := c.Eval(g).(SliceInterval)
828 si, changed := narrowIntInterval(oi.Length, ni.Length)
829 if changed {
830 g.SetRange(c.Y(), SliceInterval{si})
831 return true
832 }
833 return false
834 default:
835 return false
836 }
837}
838
839func (g *Graph) resolveFutures(scc int) {
840 for _, c := range g.futures[scc] {
841 c.Resolve()
842 }
843}
844
845func (g *Graph) entries(scc int) []ssa.Value {
846 var entries []ssa.Value
847 for _, n := range g.Vertices {
848 if n.SCC != scc {
849 continue
850 }
851 if v, ok := n.Value.(ssa.Value); ok {
852 // XXX avoid quadratic runtime
853 //
854 // XXX I cannot think of any code where the future and its
855 // variables aren't in the same SCC, in which case this
856 // code isn't very useful (the variables won't be resolved
857 // yet). Before we have a cross-SCC example, however, we
858 // can't really verify that this code is working
859 // correctly, or indeed doing anything useful.
860 for _, on := range g.Vertices {
861 if c, ok := on.Value.(Future); ok {
862 if c.Y() == v {
863 if !c.IsResolved() {
864 g.SetRange(c.Y(), c.Eval(g))
865 c.MarkResolved()
866 }
867 break
868 }
869 }
870 }
871 if g.Range(v).IsKnown() {
872 entries = append(entries, v)
873 }
874 }
875 }
876 return entries
877}
878
879func (g *Graph) uses(scc int) map[ssa.Value][]Constraint {
880 m := map[ssa.Value][]Constraint{}
881 for _, e := range g.sccEdges[scc] {
882 if e.control {
883 continue
884 }
885 if v, ok := e.From.Value.(ssa.Value); ok {
886 c := e.To.Value.(Constraint)
887 sink := c.Y()
888 if g.Vertices[sink].SCC == scc {
889 m[v] = append(m[v], c)
890 }
891 }
892 }
893 return m
894}
895
896func (g *Graph) actives(scc int) []ssa.Value {
897 var actives []ssa.Value
898 for _, n := range g.Vertices {
899 if n.SCC != scc {
900 continue
901 }
902 if v, ok := n.Value.(ssa.Value); ok {
903 if _, ok := v.(*ssa.Const); !ok {
904 actives = append(actives, v)
905 }
906 }
907 }
908 return actives
909}
910
911func (g *Graph) AddEdge(from, to interface{}, ctrl bool) {
912 vf, ok := g.Vertices[from]
913 if !ok {
914 vf = &Vertex{Value: from}
915 g.Vertices[from] = vf
916 }
917 vt, ok := g.Vertices[to]
918 if !ok {
919 vt = &Vertex{Value: to}
920 g.Vertices[to] = vt
921 }
922 e := Edge{From: vf, To: vt, control: ctrl}
923 g.Edges = append(g.Edges, e)
924 vf.Succs = append(vf.Succs, e)
925}
926
927type Edge struct {
928 From, To *Vertex
929 control bool
930}
931
932func (e Edge) String() string {
933 return fmt.Sprintf("%s -> %s", VertexString(e.From), VertexString(e.To))
934}
935
936func (g *Graph) FindSCCs() {
937 // use Tarjan to find the SCCs
938
939 index := 1
940 var s []*Vertex
941
942 scc := 0
943 var strongconnect func(v *Vertex)
944 strongconnect = func(v *Vertex) {
945 // set the depth index for v to the smallest unused index
946 v.index = index
947 v.lowlink = index
948 index++
949 s = append(s, v)
950 v.stack = true
951
952 for _, e := range v.Succs {
953 w := e.To
954 if w.index == 0 {
955 // successor w has not yet been visited; recurse on it
956 strongconnect(w)
957 if w.lowlink < v.lowlink {
958 v.lowlink = w.lowlink
959 }
960 } else if w.stack {
961 // successor w is in stack s and hence in the current scc
962 if w.index < v.lowlink {
963 v.lowlink = w.index
964 }
965 }
966 }
967
968 if v.lowlink == v.index {
969 for {
970 w := s[len(s)-1]
971 s = s[:len(s)-1]
972 w.stack = false
973 w.SCC = scc
974 if w == v {
975 break
976 }
977 }
978 scc++
979 }
980 }
981 for _, v := range g.Vertices {
982 if v.index == 0 {
983 strongconnect(v)
984 }
985 }
986
987 g.SCCs = make([][]*Vertex, scc)
988 for _, n := range g.Vertices {
989 n.SCC = scc - n.SCC - 1
990 g.SCCs[n.SCC] = append(g.SCCs[n.SCC], n)
991 }
992}
993
994func invertToken(tok token.Token) token.Token {
995 switch tok {
996 case token.LSS:
997 return token.GEQ
998 case token.GTR:
999 return token.LEQ
1000 case token.EQL:
1001 return token.NEQ
1002 case token.NEQ:
1003 return token.EQL
1004 case token.GEQ:
1005 return token.LSS
1006 case token.LEQ:
1007 return token.GTR
1008 default:
1009 panic(fmt.Sprintf("unsupported token %s", tok))
1010 }
1011}
1012
1013func flipToken(tok token.Token) token.Token {
1014 switch tok {
1015 case token.LSS:
1016 return token.GTR
1017 case token.GTR:
1018 return token.LSS
1019 case token.EQL:
1020 return token.EQL
1021 case token.NEQ:
1022 return token.NEQ
1023 case token.GEQ:
1024 return token.LEQ
1025 case token.LEQ:
1026 return token.GEQ
1027 default:
1028 panic(fmt.Sprintf("unsupported token %s", tok))
1029 }
1030}
1031
1032type CopyConstraint struct {
1033 aConstraint
1034 X ssa.Value
1035}
1036
1037func (c *CopyConstraint) String() string {
1038 return fmt.Sprintf("%s = copy(%s)", c.Y().Name(), c.X.Name())
1039}
1040
1041func (c *CopyConstraint) Eval(g *Graph) Range {
1042 return g.Range(c.X)
1043}
1044
1045func (c *CopyConstraint) Operands() []ssa.Value {
1046 return []ssa.Value{c.X}
1047}
1048
1049func NewCopyConstraint(x, y ssa.Value) Constraint {
1050 return &CopyConstraint{
1051 aConstraint: aConstraint{
1052 y: y,
1053 },
1054 X: x,
1055 }
1056}
diff --git a/vendor/honnef.co/go/tools/stylecheck/analysis.go b/vendor/honnef.co/go/tools/stylecheck/analysis.go
new file mode 100644
index 0000000..f252487
--- /dev/null
+++ b/vendor/honnef.co/go/tools/stylecheck/analysis.go
@@ -0,0 +1,111 @@
1package stylecheck
2
3import (
4 "flag"
5
6 "golang.org/x/tools/go/analysis"
7 "golang.org/x/tools/go/analysis/passes/inspect"
8 "honnef.co/go/tools/config"
9 "honnef.co/go/tools/facts"
10 "honnef.co/go/tools/internal/passes/buildssa"
11 "honnef.co/go/tools/lint/lintutil"
12)
13
14func newFlagSet() flag.FlagSet {
15 fs := flag.NewFlagSet("", flag.PanicOnError)
16 fs.Var(lintutil.NewVersionFlag(), "go", "Target Go version")
17 return *fs
18}
19
20var Analyzers = map[string]*analysis.Analyzer{
21 "ST1000": {
22 Name: "ST1000",
23 Run: CheckPackageComment,
24 Doc: Docs["ST1000"].String(),
25 Requires: []*analysis.Analyzer{},
26 Flags: newFlagSet(),
27 },
28 "ST1001": {
29 Name: "ST1001",
30 Run: CheckDotImports,
31 Doc: Docs["ST1001"].String(),
32 Requires: []*analysis.Analyzer{facts.Generated, config.Analyzer},
33 Flags: newFlagSet(),
34 },
35 "ST1003": {
36 Name: "ST1003",
37 Run: CheckNames,
38 Doc: Docs["ST1003"].String(),
39 Requires: []*analysis.Analyzer{facts.Generated, config.Analyzer},
40 Flags: newFlagSet(),
41 },
42 "ST1005": {
43 Name: "ST1005",
44 Run: CheckErrorStrings,
45 Doc: Docs["ST1005"].String(),
46 Requires: []*analysis.Analyzer{buildssa.Analyzer},
47 Flags: newFlagSet(),
48 },
49 "ST1006": {
50 Name: "ST1006",
51 Run: CheckReceiverNames,
52 Doc: Docs["ST1006"].String(),
53 Requires: []*analysis.Analyzer{buildssa.Analyzer, facts.Generated},
54 Flags: newFlagSet(),
55 },
56 "ST1008": {
57 Name: "ST1008",
58 Run: CheckErrorReturn,
59 Doc: Docs["ST1008"].String(),
60 Requires: []*analysis.Analyzer{buildssa.Analyzer},
61 Flags: newFlagSet(),
62 },
63 "ST1011": {
64 Name: "ST1011",
65 Run: CheckTimeNames,
66 Doc: Docs["ST1011"].String(),
67 Flags: newFlagSet(),
68 },
69 "ST1012": {
70 Name: "ST1012",
71 Run: CheckErrorVarNames,
72 Doc: Docs["ST1012"].String(),
73 Requires: []*analysis.Analyzer{config.Analyzer},
74 Flags: newFlagSet(),
75 },
76 "ST1013": {
77 Name: "ST1013",
78 Run: CheckHTTPStatusCodes,
79 Doc: Docs["ST1013"].String(),
80 Requires: []*analysis.Analyzer{facts.Generated, facts.TokenFile, config.Analyzer},
81 Flags: newFlagSet(),
82 },
83 "ST1015": {
84 Name: "ST1015",
85 Run: CheckDefaultCaseOrder,
86 Doc: Docs["ST1015"].String(),
87 Requires: []*analysis.Analyzer{inspect.Analyzer, facts.Generated, facts.TokenFile},
88 Flags: newFlagSet(),
89 },
90 "ST1016": {
91 Name: "ST1016",
92 Run: CheckReceiverNamesIdentical,
93 Doc: Docs["ST1016"].String(),
94 Requires: []*analysis.Analyzer{buildssa.Analyzer},
95 Flags: newFlagSet(),
96 },
97 "ST1017": {
98 Name: "ST1017",
99 Run: CheckYodaConditions,
100 Doc: Docs["ST1017"].String(),
101 Requires: []*analysis.Analyzer{inspect.Analyzer, facts.Generated, facts.TokenFile},
102 Flags: newFlagSet(),
103 },
104 "ST1018": {
105 Name: "ST1018",
106 Run: CheckInvisibleCharacters,
107 Doc: Docs["ST1018"].String(),
108 Requires: []*analysis.Analyzer{inspect.Analyzer},
109 Flags: newFlagSet(),
110 },
111}
diff --git a/vendor/honnef.co/go/tools/stylecheck/doc.go b/vendor/honnef.co/go/tools/stylecheck/doc.go
new file mode 100644
index 0000000..9097214
--- /dev/null
+++ b/vendor/honnef.co/go/tools/stylecheck/doc.go
@@ -0,0 +1,154 @@
1package stylecheck
2
3import "honnef.co/go/tools/lint"
4
5var Docs = map[string]*lint.Documentation{
6 "ST1000": &lint.Documentation{
7 Title: `Incorrect or missing package comment`,
8 Text: `Packages must have a package comment that is formatted according to
9the guidelines laid out in
10https://github.com/golang/go/wiki/CodeReviewComments#package-comments.`,
11 Since: "2019.1",
12 NonDefault: true,
13 },
14
15 "ST1001": &lint.Documentation{
16 Title: `Dot imports are discouraged`,
17 Text: `Dot imports that aren't in external test packages are discouraged.
18
19The dot_import_whitelist option can be used to whitelist certain
20imports.
21
22Quoting Go Code Review Comments:
23
24 The import . form can be useful in tests that, due to circular
25 dependencies, cannot be made part of the package being tested:
26
27 package foo_test
28
29 import (
30 "bar/testutil" // also imports "foo"
31 . "foo"
32 )
33
34 In this case, the test file cannot be in package foo because it
35 uses bar/testutil, which imports foo. So we use the 'import .'
36 form to let the file pretend to be part of package foo even though
37 it is not. Except for this one case, do not use import . in your
38 programs. It makes the programs much harder to read because it is
39 unclear whether a name like Quux is a top-level identifier in the
40 current package or in an imported package.`,
41 Since: "2019.1",
42 Options: []string{"dot_import_whitelist"},
43 },
44
45 "ST1003": &lint.Documentation{
46 Title: `Poorly chosen identifier`,
47 Text: `Identifiers, such as variable and package names, follow certain rules.
48
49See the following links for details:
50
51- https://golang.org/doc/effective_go.html#package-names
52- https://golang.org/doc/effective_go.html#mixed-caps
53- https://github.com/golang/go/wiki/CodeReviewComments#initialisms
54- https://github.com/golang/go/wiki/CodeReviewComments#variable-names`,
55 Since: "2019.1",
56 NonDefault: true,
57 Options: []string{"initialisms"},
58 },
59
60 "ST1005": &lint.Documentation{
61 Title: `Incorrectly formatted error string`,
62 Text: `Error strings follow a set of guidelines to ensure uniformity and good
63composability.
64
65Quoting Go Code Review Comments:
66
67 Error strings should not be capitalized (unless beginning with
68 proper nouns or acronyms) or end with punctuation, since they are
69 usually printed following other context. That is, use
70 fmt.Errorf("something bad") not fmt.Errorf("Something bad"), so
71 that log.Printf("Reading %s: %v", filename, err) formats without a
72 spurious capital letter mid-message.`,
73 Since: "2019.1",
74 },
75
76 "ST1006": &lint.Documentation{
77 Title: `Poorly chosen receiver name`,
78 Text: `Quoting Go Code Review Comments:
79
80 The name of a method's receiver should be a reflection of its
81 identity; often a one or two letter abbreviation of its type
82 suffices (such as "c" or "cl" for "Client"). Don't use generic
83 names such as "me", "this" or "self", identifiers typical of
84 object-oriented languages that place more emphasis on methods as
85 opposed to functions. The name need not be as descriptive as that
86 of a method argument, as its role is obvious and serves no
87 documentary purpose. It can be very short as it will appear on
88 almost every line of every method of the type; familiarity admits
89 brevity. Be consistent, too: if you call the receiver "c" in one
90 method, don't call it "cl" in another.`,
91 Since: "2019.1",
92 },
93
94 "ST1008": &lint.Documentation{
95 Title: `A function's error value should be its last return value`,
96 Text: `A function's error value should be its last return value.`,
97 Since: `2019.1`,
98 },
99
100 "ST1011": &lint.Documentation{
101 Title: `Poorly chosen name for variable of type time.Duration`,
102 Text: `time.Duration values represent an amount of time, which is represented
103as a count of nanoseconds. An expression like 5 * time.Microsecond
104yields the value 5000. It is therefore not appropriate to suffix a
105variable of type time.Duration with any time unit, such as Msec or
106Milli.`,
107 Since: `2019.1`,
108 },
109
110 "ST1012": &lint.Documentation{
111 Title: `Poorly chosen name for error variable`,
112 Text: `Error variables that are part of an API should be called errFoo or
113ErrFoo.`,
114 Since: "2019.1",
115 },
116
117 "ST1013": &lint.Documentation{
118 Title: `Should use constants for HTTP error codes, not magic numbers`,
119 Text: `HTTP has a tremendous number of status codes. While some of those are
120well known (200, 400, 404, 500), most of them are not. The net/http
121package provides constants for all status codes that are part of the
122various specifications. It is recommended to use these constants
123instead of hard-coding magic numbers, to vastly improve the
124readability of your code.`,
125 Since: "2019.1",
126 Options: []string{"http_status_code_whitelist"},
127 },
128
129 "ST1015": &lint.Documentation{
130 Title: `A switch's default case should be the first or last case`,
131 Since: "2019.1",
132 },
133
134 "ST1016": &lint.Documentation{
135 Title: `Use consistent method receiver names`,
136 Since: "2019.1",
137 NonDefault: true,
138 },
139
140 "ST1017": &lint.Documentation{
141 Title: `Don't use Yoda conditions`,
142 Text: `Yoda conditions are conditions of the kind 'if 42 == x', where the
143literal is on the left side of the comparison. These are a common
144idiom in languages in which assignment is an expression, to avoid bugs
145of the kind 'if (x = 42)'. In Go, which doesn't allow for this kind of
146bug, we prefer the more idiomatic 'if x == 42'.`,
147 Since: "2019.2",
148 },
149
150 "ST1018": &lint.Documentation{
151 Title: `Avoid zero-width and control characters in string literals`,
152 Since: "2019.2",
153 },
154}
diff --git a/vendor/honnef.co/go/tools/stylecheck/lint.go b/vendor/honnef.co/go/tools/stylecheck/lint.go
new file mode 100644
index 0000000..1699d58
--- /dev/null
+++ b/vendor/honnef.co/go/tools/stylecheck/lint.go
@@ -0,0 +1,629 @@
1package stylecheck // import "honnef.co/go/tools/stylecheck"
2
3import (
4 "fmt"
5 "go/ast"
6 "go/constant"
7 "go/token"
8 "go/types"
9 "strconv"
10 "strings"
11 "unicode"
12 "unicode/utf8"
13
14 "honnef.co/go/tools/config"
15 "honnef.co/go/tools/internal/passes/buildssa"
16 . "honnef.co/go/tools/lint/lintdsl"
17 "honnef.co/go/tools/ssa"
18
19 "golang.org/x/tools/go/analysis"
20 "golang.org/x/tools/go/analysis/passes/inspect"
21 "golang.org/x/tools/go/ast/inspector"
22 "golang.org/x/tools/go/types/typeutil"
23)
24
25func CheckPackageComment(pass *analysis.Pass) (interface{}, error) {
26 // - At least one file in a non-main package should have a package comment
27 //
28 // - The comment should be of the form
29 // "Package x ...". This has a slight potential for false
30 // positives, as multiple files can have package comments, in
31 // which case they get appended. But that doesn't happen a lot in
32 // the real world.
33
34 if pass.Pkg.Name() == "main" {
35 return nil, nil
36 }
37 hasDocs := false
38 for _, f := range pass.Files {
39 if IsInTest(pass, f) {
40 continue
41 }
42 if f.Doc != nil && len(f.Doc.List) > 0 {
43 hasDocs = true
44 prefix := "Package " + f.Name.Name + " "
45 if !strings.HasPrefix(strings.TrimSpace(f.Doc.Text()), prefix) {
46 ReportNodef(pass, f.Doc, `package comment should be of the form "%s..."`, prefix)
47 }
48 f.Doc.Text()
49 }
50 }
51
52 if !hasDocs {
53 for _, f := range pass.Files {
54 if IsInTest(pass, f) {
55 continue
56 }
57 ReportNodef(pass, f, "at least one file in a package should have a package comment")
58 }
59 }
60 return nil, nil
61}
62
63func CheckDotImports(pass *analysis.Pass) (interface{}, error) {
64 for _, f := range pass.Files {
65 imports:
66 for _, imp := range f.Imports {
67 path := imp.Path.Value
68 path = path[1 : len(path)-1]
69 for _, w := range config.For(pass).DotImportWhitelist {
70 if w == path {
71 continue imports
72 }
73 }
74
75 if imp.Name != nil && imp.Name.Name == "." && !IsInTest(pass, f) {
76 ReportNodefFG(pass, imp, "should not use dot imports")
77 }
78 }
79 }
80 return nil, nil
81}
82
83func CheckBlankImports(pass *analysis.Pass) (interface{}, error) {
84 fset := pass.Fset
85 for _, f := range pass.Files {
86 if IsInMain(pass, f) || IsInTest(pass, f) {
87 continue
88 }
89
90 // Collect imports of the form `import _ "foo"`, i.e. with no
91 // parentheses, as their comment will be associated with the
92 // (paren-free) GenDecl, not the import spec itself.
93 //
94 // We don't directly process the GenDecl so that we can
95 // correctly handle the following:
96 //
97 // import _ "foo"
98 // import _ "bar"
99 //
100 // where only the first import should get flagged.
101 skip := map[ast.Spec]bool{}
102 ast.Inspect(f, func(node ast.Node) bool {
103 switch node := node.(type) {
104 case *ast.File:
105 return true
106 case *ast.GenDecl:
107 if node.Tok != token.IMPORT {
108 return false
109 }
110 if node.Lparen == token.NoPos && node.Doc != nil {
111 skip[node.Specs[0]] = true
112 }
113 return false
114 }
115 return false
116 })
117 for i, imp := range f.Imports {
118 pos := fset.Position(imp.Pos())
119
120 if !IsBlank(imp.Name) {
121 continue
122 }
123 // Only flag the first blank import in a group of imports,
124 // or don't flag any of them, if the first one is
125 // commented
126 if i > 0 {
127 prev := f.Imports[i-1]
128 prevPos := fset.Position(prev.Pos())
129 if pos.Line-1 == prevPos.Line && IsBlank(prev.Name) {
130 continue
131 }
132 }
133
134 if imp.Doc == nil && imp.Comment == nil && !skip[imp] {
135 ReportNodef(pass, imp, "a blank import should be only in a main or test package, or have a comment justifying it")
136 }
137 }
138 }
139 return nil, nil
140}
141
142func CheckIncDec(pass *analysis.Pass) (interface{}, error) {
143 // TODO(dh): this can be noisy for function bodies that look like this:
144 // x += 3
145 // ...
146 // x += 2
147 // ...
148 // x += 1
149 fn := func(node ast.Node) {
150 assign := node.(*ast.AssignStmt)
151 if assign.Tok != token.ADD_ASSIGN && assign.Tok != token.SUB_ASSIGN {
152 return
153 }
154 if (len(assign.Lhs) != 1 || len(assign.Rhs) != 1) ||
155 !IsIntLiteral(assign.Rhs[0], "1") {
156 return
157 }
158
159 suffix := ""
160 switch assign.Tok {
161 case token.ADD_ASSIGN:
162 suffix = "++"
163 case token.SUB_ASSIGN:
164 suffix = "--"
165 }
166
167 ReportNodef(pass, assign, "should replace %s with %s%s", Render(pass, assign), Render(pass, assign.Lhs[0]), suffix)
168 }
169 pass.ResultOf[inspect.Analyzer].(*inspector.Inspector).Preorder([]ast.Node{(*ast.AssignStmt)(nil)}, fn)
170 return nil, nil
171}
172
173func CheckErrorReturn(pass *analysis.Pass) (interface{}, error) {
174fnLoop:
175 for _, fn := range pass.ResultOf[buildssa.Analyzer].(*buildssa.SSA).SrcFuncs {
176 sig := fn.Type().(*types.Signature)
177 rets := sig.Results()
178 if rets == nil || rets.Len() < 2 {
179 continue
180 }
181
182 if rets.At(rets.Len()-1).Type() == types.Universe.Lookup("error").Type() {
183 // Last return type is error. If the function also returns
184 // errors in other positions, that's fine.
185 continue
186 }
187 for i := rets.Len() - 2; i >= 0; i-- {
188 if rets.At(i).Type() == types.Universe.Lookup("error").Type() {
189 pass.Reportf(rets.At(i).Pos(), "error should be returned as the last argument")
190 continue fnLoop
191 }
192 }
193 }
194 return nil, nil
195}
196
197// CheckUnexportedReturn checks that exported functions on exported
198// types do not return unexported types.
199func CheckUnexportedReturn(pass *analysis.Pass) (interface{}, error) {
200 for _, fn := range pass.ResultOf[buildssa.Analyzer].(*buildssa.SSA).SrcFuncs {
201 if fn.Synthetic != "" || fn.Parent() != nil {
202 continue
203 }
204 if !ast.IsExported(fn.Name()) || IsInMain(pass, fn) || IsInTest(pass, fn) {
205 continue
206 }
207 sig := fn.Type().(*types.Signature)
208 if sig.Recv() != nil && !ast.IsExported(Dereference(sig.Recv().Type()).(*types.Named).Obj().Name()) {
209 continue
210 }
211 res := sig.Results()
212 for i := 0; i < res.Len(); i++ {
213 if named, ok := DereferenceR(res.At(i).Type()).(*types.Named); ok &&
214 !ast.IsExported(named.Obj().Name()) &&
215 named != types.Universe.Lookup("error").Type() {
216 pass.Reportf(fn.Pos(), "should not return unexported type")
217 }
218 }
219 }
220 return nil, nil
221}
222
223func CheckReceiverNames(pass *analysis.Pass) (interface{}, error) {
224 ssapkg := pass.ResultOf[buildssa.Analyzer].(*buildssa.SSA).Pkg
225 for _, m := range ssapkg.Members {
226 if T, ok := m.Object().(*types.TypeName); ok && !T.IsAlias() {
227 ms := typeutil.IntuitiveMethodSet(T.Type(), nil)
228 for _, sel := range ms {
229 fn := sel.Obj().(*types.Func)
230 recv := fn.Type().(*types.Signature).Recv()
231 if Dereference(recv.Type()) != T.Type() {
232 // skip embedded methods
233 continue
234 }
235 if recv.Name() == "self" || recv.Name() == "this" {
236 ReportfFG(pass, recv.Pos(), `receiver name should be a reflection of its identity; don't use generic names such as "this" or "self"`)
237 }
238 if recv.Name() == "_" {
239 ReportfFG(pass, recv.Pos(), "receiver name should not be an underscore, omit the name if it is unused")
240 }
241 }
242 }
243 }
244 return nil, nil
245}
246
247func CheckReceiverNamesIdentical(pass *analysis.Pass) (interface{}, error) {
248 ssapkg := pass.ResultOf[buildssa.Analyzer].(*buildssa.SSA).Pkg
249 for _, m := range ssapkg.Members {
250 names := map[string]int{}
251
252 var firstFn *types.Func
253 if T, ok := m.Object().(*types.TypeName); ok && !T.IsAlias() {
254 ms := typeutil.IntuitiveMethodSet(T.Type(), nil)
255 for _, sel := range ms {
256 fn := sel.Obj().(*types.Func)
257 recv := fn.Type().(*types.Signature).Recv()
258 if Dereference(recv.Type()) != T.Type() {
259 // skip embedded methods
260 continue
261 }
262 if firstFn == nil {
263 firstFn = fn
264 }
265 if recv.Name() != "" && recv.Name() != "_" {
266 names[recv.Name()]++
267 }
268 }
269 }
270
271 if len(names) > 1 {
272 var seen []string
273 for name, count := range names {
274 seen = append(seen, fmt.Sprintf("%dx %q", count, name))
275 }
276
277 pass.Reportf(firstFn.Pos(), "methods on the same type should have the same receiver name (seen %s)", strings.Join(seen, ", "))
278 }
279 }
280 return nil, nil
281}
282
283func CheckContextFirstArg(pass *analysis.Pass) (interface{}, error) {
284 // TODO(dh): this check doesn't apply to test helpers. Example from the stdlib:
285 // func helperCommandContext(t *testing.T, ctx context.Context, s ...string) (cmd *exec.Cmd) {
286fnLoop:
287 for _, fn := range pass.ResultOf[buildssa.Analyzer].(*buildssa.SSA).SrcFuncs {
288 if fn.Synthetic != "" || fn.Parent() != nil {
289 continue
290 }
291 params := fn.Signature.Params()
292 if params.Len() < 2 {
293 continue
294 }
295 if types.TypeString(params.At(0).Type(), nil) == "context.Context" {
296 continue
297 }
298 for i := 1; i < params.Len(); i++ {
299 param := params.At(i)
300 if types.TypeString(param.Type(), nil) == "context.Context" {
301 pass.Reportf(param.Pos(), "context.Context should be the first argument of a function")
302 continue fnLoop
303 }
304 }
305 }
306 return nil, nil
307}
308
309func CheckErrorStrings(pass *analysis.Pass) (interface{}, error) {
310 objNames := map[*ssa.Package]map[string]bool{}
311 ssapkg := pass.ResultOf[buildssa.Analyzer].(*buildssa.SSA).Pkg
312 objNames[ssapkg] = map[string]bool{}
313 for _, m := range ssapkg.Members {
314 if typ, ok := m.(*ssa.Type); ok {
315 objNames[ssapkg][typ.Name()] = true
316 }
317 }
318 for _, fn := range pass.ResultOf[buildssa.Analyzer].(*buildssa.SSA).SrcFuncs {
319 objNames[fn.Package()][fn.Name()] = true
320 }
321
322 for _, fn := range pass.ResultOf[buildssa.Analyzer].(*buildssa.SSA).SrcFuncs {
323 if IsInTest(pass, fn) {
324 // We don't care about malformed error messages in tests;
325 // they're usually for direct human consumption, not part
326 // of an API
327 continue
328 }
329 for _, block := range fn.Blocks {
330 instrLoop:
331 for _, ins := range block.Instrs {
332 call, ok := ins.(*ssa.Call)
333 if !ok {
334 continue
335 }
336 if !IsCallTo(call.Common(), "errors.New") && !IsCallTo(call.Common(), "fmt.Errorf") {
337 continue
338 }
339
340 k, ok := call.Common().Args[0].(*ssa.Const)
341 if !ok {
342 continue
343 }
344
345 s := constant.StringVal(k.Value)
346 if len(s) == 0 {
347 continue
348 }
349 switch s[len(s)-1] {
350 case '.', ':', '!', '\n':
351 pass.Reportf(call.Pos(), "error strings should not end with punctuation or a newline")
352 }
353 idx := strings.IndexByte(s, ' ')
354 if idx == -1 {
355 // single word error message, probably not a real
356 // error but something used in tests or during
357 // debugging
358 continue
359 }
360 word := s[:idx]
361 first, n := utf8.DecodeRuneInString(word)
362 if !unicode.IsUpper(first) {
363 continue
364 }
365 for _, c := range word[n:] {
366 if unicode.IsUpper(c) {
367 // Word is probably an initialism or
368 // multi-word function name
369 continue instrLoop
370 }
371 }
372
373 word = strings.TrimRightFunc(word, func(r rune) bool { return unicode.IsPunct(r) })
374 if objNames[fn.Package()][word] {
375 // Word is probably the name of a function or type in this package
376 continue
377 }
378 // First word in error starts with a capital
379 // letter, and the word doesn't contain any other
380 // capitals, making it unlikely to be an
381 // initialism or multi-word function name.
382 //
383 // It could still be a proper noun, though.
384
385 pass.Reportf(call.Pos(), "error strings should not be capitalized")
386 }
387 }
388 }
389 return nil, nil
390}
391
392func CheckTimeNames(pass *analysis.Pass) (interface{}, error) {
393 suffixes := []string{
394 "Sec", "Secs", "Seconds",
395 "Msec", "Msecs",
396 "Milli", "Millis", "Milliseconds",
397 "Usec", "Usecs", "Microseconds",
398 "MS", "Ms",
399 }
400 fn := func(T types.Type, names []*ast.Ident) {
401 if !IsType(T, "time.Duration") && !IsType(T, "*time.Duration") {
402 return
403 }
404 for _, name := range names {
405 for _, suffix := range suffixes {
406 if strings.HasSuffix(name.Name, suffix) {
407 ReportNodef(pass, name, "var %s is of type %v; don't use unit-specific suffix %q", name.Name, T, suffix)
408 break
409 }
410 }
411 }
412 }
413 for _, f := range pass.Files {
414 ast.Inspect(f, func(node ast.Node) bool {
415 switch node := node.(type) {
416 case *ast.ValueSpec:
417 T := pass.TypesInfo.TypeOf(node.Type)
418 fn(T, node.Names)
419 case *ast.FieldList:
420 for _, field := range node.List {
421 T := pass.TypesInfo.TypeOf(field.Type)
422 fn(T, field.Names)
423 }
424 }
425 return true
426 })
427 }
428 return nil, nil
429}
430
431func CheckErrorVarNames(pass *analysis.Pass) (interface{}, error) {
432 for _, f := range pass.Files {
433 for _, decl := range f.Decls {
434 gen, ok := decl.(*ast.GenDecl)
435 if !ok || gen.Tok != token.VAR {
436 continue
437 }
438 for _, spec := range gen.Specs {
439 spec := spec.(*ast.ValueSpec)
440 if len(spec.Names) != len(spec.Values) {
441 continue
442 }
443
444 for i, name := range spec.Names {
445 val := spec.Values[i]
446 if !IsCallToAST(pass, val, "errors.New") && !IsCallToAST(pass, val, "fmt.Errorf") {
447 continue
448 }
449
450 prefix := "err"
451 if name.IsExported() {
452 prefix = "Err"
453 }
454 if !strings.HasPrefix(name.Name, prefix) {
455 ReportNodef(pass, name, "error var %s should have name of the form %sFoo", name.Name, prefix)
456 }
457 }
458 }
459 }
460 }
461 return nil, nil
462}
463
464var httpStatusCodes = map[int]string{
465 100: "StatusContinue",
466 101: "StatusSwitchingProtocols",
467 102: "StatusProcessing",
468 200: "StatusOK",
469 201: "StatusCreated",
470 202: "StatusAccepted",
471 203: "StatusNonAuthoritativeInfo",
472 204: "StatusNoContent",
473 205: "StatusResetContent",
474 206: "StatusPartialContent",
475 207: "StatusMultiStatus",
476 208: "StatusAlreadyReported",
477 226: "StatusIMUsed",
478 300: "StatusMultipleChoices",
479 301: "StatusMovedPermanently",
480 302: "StatusFound",
481 303: "StatusSeeOther",
482 304: "StatusNotModified",
483 305: "StatusUseProxy",
484 307: "StatusTemporaryRedirect",
485 308: "StatusPermanentRedirect",
486 400: "StatusBadRequest",
487 401: "StatusUnauthorized",
488 402: "StatusPaymentRequired",
489 403: "StatusForbidden",
490 404: "StatusNotFound",
491 405: "StatusMethodNotAllowed",
492 406: "StatusNotAcceptable",
493 407: "StatusProxyAuthRequired",
494 408: "StatusRequestTimeout",
495 409: "StatusConflict",
496 410: "StatusGone",
497 411: "StatusLengthRequired",
498 412: "StatusPreconditionFailed",
499 413: "StatusRequestEntityTooLarge",
500 414: "StatusRequestURITooLong",
501 415: "StatusUnsupportedMediaType",
502 416: "StatusRequestedRangeNotSatisfiable",
503 417: "StatusExpectationFailed",
504 418: "StatusTeapot",
505 422: "StatusUnprocessableEntity",
506 423: "StatusLocked",
507 424: "StatusFailedDependency",
508 426: "StatusUpgradeRequired",
509 428: "StatusPreconditionRequired",
510 429: "StatusTooManyRequests",
511 431: "StatusRequestHeaderFieldsTooLarge",
512 451: "StatusUnavailableForLegalReasons",
513 500: "StatusInternalServerError",
514 501: "StatusNotImplemented",
515 502: "StatusBadGateway",
516 503: "StatusServiceUnavailable",
517 504: "StatusGatewayTimeout",
518 505: "StatusHTTPVersionNotSupported",
519 506: "StatusVariantAlsoNegotiates",
520 507: "StatusInsufficientStorage",
521 508: "StatusLoopDetected",
522 510: "StatusNotExtended",
523 511: "StatusNetworkAuthenticationRequired",
524}
525
526func CheckHTTPStatusCodes(pass *analysis.Pass) (interface{}, error) {
527 whitelist := map[string]bool{}
528 for _, code := range config.For(pass).HTTPStatusCodeWhitelist {
529 whitelist[code] = true
530 }
531 fn := func(node ast.Node) bool {
532 if node == nil {
533 return true
534 }
535 call, ok := node.(*ast.CallExpr)
536 if !ok {
537 return true
538 }
539
540 var arg int
541 switch CallNameAST(pass, call) {
542 case "net/http.Error":
543 arg = 2
544 case "net/http.Redirect":
545 arg = 3
546 case "net/http.StatusText":
547 arg = 0
548 case "net/http.RedirectHandler":
549 arg = 1
550 default:
551 return true
552 }
553 lit, ok := call.Args[arg].(*ast.BasicLit)
554 if !ok {
555 return true
556 }
557 if whitelist[lit.Value] {
558 return true
559 }
560
561 n, err := strconv.Atoi(lit.Value)
562 if err != nil {
563 return true
564 }
565 s, ok := httpStatusCodes[n]
566 if !ok {
567 return true
568 }
569 ReportNodefFG(pass, lit, "should use constant http.%s instead of numeric literal %d", s, n)
570 return true
571 }
572 // OPT(dh): replace with inspector
573 for _, f := range pass.Files {
574 ast.Inspect(f, fn)
575 }
576 return nil, nil
577}
578
579func CheckDefaultCaseOrder(pass *analysis.Pass) (interface{}, error) {
580 fn := func(node ast.Node) {
581 stmt := node.(*ast.SwitchStmt)
582 list := stmt.Body.List
583 for i, c := range list {
584 if c.(*ast.CaseClause).List == nil && i != 0 && i != len(list)-1 {
585 ReportNodefFG(pass, c, "default case should be first or last in switch statement")
586 break
587 }
588 }
589 }
590 pass.ResultOf[inspect.Analyzer].(*inspector.Inspector).Preorder([]ast.Node{(*ast.SwitchStmt)(nil)}, fn)
591 return nil, nil
592}
593
594func CheckYodaConditions(pass *analysis.Pass) (interface{}, error) {
595 fn := func(node ast.Node) {
596 cond := node.(*ast.BinaryExpr)
597 if cond.Op != token.EQL && cond.Op != token.NEQ {
598 return
599 }
600 if _, ok := cond.X.(*ast.BasicLit); !ok {
601 return
602 }
603 if _, ok := cond.Y.(*ast.BasicLit); ok {
604 // Don't flag lit == lit conditions, just in case
605 return
606 }
607 ReportNodefFG(pass, cond, "don't use Yoda conditions")
608 }
609 pass.ResultOf[inspect.Analyzer].(*inspector.Inspector).Preorder([]ast.Node{(*ast.BinaryExpr)(nil)}, fn)
610 return nil, nil
611}
612
613func CheckInvisibleCharacters(pass *analysis.Pass) (interface{}, error) {
614 fn := func(node ast.Node) {
615 lit := node.(*ast.BasicLit)
616 if lit.Kind != token.STRING {
617 return
618 }
619 for _, r := range lit.Value {
620 if unicode.Is(unicode.Cf, r) {
621 ReportNodef(pass, lit, "string literal contains the Unicode format character %U, consider using the %q escape sequence", r, r)
622 } else if unicode.Is(unicode.Cc, r) && r != '\n' && r != '\t' && r != '\r' {
623 ReportNodef(pass, lit, "string literal contains the Unicode control character %U, consider using the %q escape sequence", r, r)
624 }
625 }
626 }
627 pass.ResultOf[inspect.Analyzer].(*inspector.Inspector).Preorder([]ast.Node{(*ast.BasicLit)(nil)}, fn)
628 return nil, nil
629}
diff --git a/vendor/honnef.co/go/tools/stylecheck/names.go b/vendor/honnef.co/go/tools/stylecheck/names.go
new file mode 100644
index 0000000..160f9d7
--- /dev/null
+++ b/vendor/honnef.co/go/tools/stylecheck/names.go
@@ -0,0 +1,264 @@
1// Copyright (c) 2013 The Go Authors. All rights reserved.
2// Copyright (c) 2018 Dominik Honnef. All rights reserved.
3
4package stylecheck
5
6import (
7 "go/ast"
8 "go/token"
9 "strings"
10 "unicode"
11
12 "golang.org/x/tools/go/analysis"
13 "honnef.co/go/tools/config"
14 . "honnef.co/go/tools/lint/lintdsl"
15)
16
17// knownNameExceptions is a set of names that are known to be exempt from naming checks.
18// This is usually because they are constrained by having to match names in the
19// standard library.
20var knownNameExceptions = map[string]bool{
21 "LastInsertId": true, // must match database/sql
22 "kWh": true,
23}
24
25func CheckNames(pass *analysis.Pass) (interface{}, error) {
26 // A large part of this function is copied from
27 // github.com/golang/lint, Copyright (c) 2013 The Go Authors,
28 // licensed under the BSD 3-clause license.
29
30 allCaps := func(s string) bool {
31 for _, r := range s {
32 if !((r >= 'A' && r <= 'Z') || (r >= '0' && r <= '9') || r == '_') {
33 return false
34 }
35 }
36 return true
37 }
38
39 check := func(id *ast.Ident, thing string, initialisms map[string]bool) {
40 if id.Name == "_" {
41 return
42 }
43 if knownNameExceptions[id.Name] {
44 return
45 }
46
47 // Handle two common styles from other languages that don't belong in Go.
48 if len(id.Name) >= 5 && allCaps(id.Name) && strings.Contains(id.Name, "_") {
49 ReportfFG(pass, id.Pos(), "should not use ALL_CAPS in Go names; use CamelCase instead")
50 return
51 }
52
53 should := lintName(id.Name, initialisms)
54 if id.Name == should {
55 return
56 }
57
58 if len(id.Name) > 2 && strings.Contains(id.Name[1:len(id.Name)-1], "_") {
59 ReportfFG(pass, id.Pos(), "should not use underscores in Go names; %s %s should be %s", thing, id.Name, should)
60 return
61 }
62 ReportfFG(pass, id.Pos(), "%s %s should be %s", thing, id.Name, should)
63 }
64 checkList := func(fl *ast.FieldList, thing string, initialisms map[string]bool) {
65 if fl == nil {
66 return
67 }
68 for _, f := range fl.List {
69 for _, id := range f.Names {
70 check(id, thing, initialisms)
71 }
72 }
73 }
74
75 il := config.For(pass).Initialisms
76 initialisms := make(map[string]bool, len(il))
77 for _, word := range il {
78 initialisms[word] = true
79 }
80 for _, f := range pass.Files {
81 // Package names need slightly different handling than other names.
82 if !strings.HasSuffix(f.Name.Name, "_test") && strings.Contains(f.Name.Name, "_") {
83 ReportfFG(pass, f.Pos(), "should not use underscores in package names")
84 }
85 if strings.IndexFunc(f.Name.Name, unicode.IsUpper) != -1 {
86 ReportfFG(pass, f.Pos(), "should not use MixedCaps in package name; %s should be %s", f.Name.Name, strings.ToLower(f.Name.Name))
87 }
88
89 ast.Inspect(f, func(node ast.Node) bool {
90 switch v := node.(type) {
91 case *ast.AssignStmt:
92 if v.Tok != token.DEFINE {
93 return true
94 }
95 for _, exp := range v.Lhs {
96 if id, ok := exp.(*ast.Ident); ok {
97 check(id, "var", initialisms)
98 }
99 }
100 case *ast.FuncDecl:
101 // Functions with no body are defined elsewhere (in
102 // assembly, or via go:linkname). These are likely to
103 // be something very low level (such as the runtime),
104 // where our rules don't apply.
105 if v.Body == nil {
106 return true
107 }
108
109 if IsInTest(pass, v) && (strings.HasPrefix(v.Name.Name, "Example") || strings.HasPrefix(v.Name.Name, "Test") || strings.HasPrefix(v.Name.Name, "Benchmark")) {
110 return true
111 }
112
113 thing := "func"
114 if v.Recv != nil {
115 thing = "method"
116 }
117
118 if !isTechnicallyExported(v) {
119 check(v.Name, thing, initialisms)
120 }
121
122 checkList(v.Type.Params, thing+" parameter", initialisms)
123 checkList(v.Type.Results, thing+" result", initialisms)
124 case *ast.GenDecl:
125 if v.Tok == token.IMPORT {
126 return true
127 }
128 var thing string
129 switch v.Tok {
130 case token.CONST:
131 thing = "const"
132 case token.TYPE:
133 thing = "type"
134 case token.VAR:
135 thing = "var"
136 }
137 for _, spec := range v.Specs {
138 switch s := spec.(type) {
139 case *ast.TypeSpec:
140 check(s.Name, thing, initialisms)
141 case *ast.ValueSpec:
142 for _, id := range s.Names {
143 check(id, thing, initialisms)
144 }
145 }
146 }
147 case *ast.InterfaceType:
148 // Do not check interface method names.
149 // They are often constrainted by the method names of concrete types.
150 for _, x := range v.Methods.List {
151 ft, ok := x.Type.(*ast.FuncType)
152 if !ok { // might be an embedded interface name
153 continue
154 }
155 checkList(ft.Params, "interface method parameter", initialisms)
156 checkList(ft.Results, "interface method result", initialisms)
157 }
158 case *ast.RangeStmt:
159 if v.Tok == token.ASSIGN {
160 return true
161 }
162 if id, ok := v.Key.(*ast.Ident); ok {
163 check(id, "range var", initialisms)
164 }
165 if id, ok := v.Value.(*ast.Ident); ok {
166 check(id, "range var", initialisms)
167 }
168 case *ast.StructType:
169 for _, f := range v.Fields.List {
170 for _, id := range f.Names {
171 check(id, "struct field", initialisms)
172 }
173 }
174 }
175 return true
176 })
177 }
178 return nil, nil
179}
180
181// lintName returns a different name if it should be different.
182func lintName(name string, initialisms map[string]bool) (should string) {
183 // A large part of this function is copied from
184 // github.com/golang/lint, Copyright (c) 2013 The Go Authors,
185 // licensed under the BSD 3-clause license.
186
187 // Fast path for simple cases: "_" and all lowercase.
188 if name == "_" {
189 return name
190 }
191 if strings.IndexFunc(name, func(r rune) bool { return !unicode.IsLower(r) }) == -1 {
192 return name
193 }
194
195 // Split camelCase at any lower->upper transition, and split on underscores.
196 // Check each word for common initialisms.
197 runes := []rune(name)
198 w, i := 0, 0 // index of start of word, scan
199 for i+1 <= len(runes) {
200 eow := false // whether we hit the end of a word
201 if i+1 == len(runes) {
202 eow = true
203 } else if runes[i+1] == '_' && i+1 != len(runes)-1 {
204 // underscore; shift the remainder forward over any run of underscores
205 eow = true
206 n := 1
207 for i+n+1 < len(runes) && runes[i+n+1] == '_' {
208 n++
209 }
210
211 // Leave at most one underscore if the underscore is between two digits
212 if i+n+1 < len(runes) && unicode.IsDigit(runes[i]) && unicode.IsDigit(runes[i+n+1]) {
213 n--
214 }
215
216 copy(runes[i+1:], runes[i+n+1:])
217 runes = runes[:len(runes)-n]
218 } else if unicode.IsLower(runes[i]) && !unicode.IsLower(runes[i+1]) {
219 // lower->non-lower
220 eow = true
221 }
222 i++
223 if !eow {
224 continue
225 }
226
227 // [w,i) is a word.
228 word := string(runes[w:i])
229 if u := strings.ToUpper(word); initialisms[u] {
230 // Keep consistent case, which is lowercase only at the start.
231 if w == 0 && unicode.IsLower(runes[w]) {
232 u = strings.ToLower(u)
233 }
234 // All the common initialisms are ASCII,
235 // so we can replace the bytes exactly.
236 // TODO(dh): this won't be true once we allow custom initialisms
237 copy(runes[w:], []rune(u))
238 } else if w > 0 && strings.ToLower(word) == word {
239 // already all lowercase, and not the first word, so uppercase the first character.
240 runes[w] = unicode.ToUpper(runes[w])
241 }
242 w = i
243 }
244 return string(runes)
245}
246
247func isTechnicallyExported(f *ast.FuncDecl) bool {
248 if f.Recv != nil || f.Doc == nil {
249 return false
250 }
251
252 const export = "//export "
253 const linkname = "//go:linkname "
254 for _, c := range f.Doc.List {
255 if strings.HasPrefix(c.Text, export) && len(c.Text) == len(export)+len(f.Name.Name) && c.Text[len(export):] == f.Name.Name {
256 return true
257 }
258
259 if strings.HasPrefix(c.Text, linkname) {
260 return true
261 }
262 }
263 return false
264}
diff --git a/vendor/honnef.co/go/tools/unused/edge.go b/vendor/honnef.co/go/tools/unused/edge.go
new file mode 100644
index 0000000..02e0d09
--- /dev/null
+++ b/vendor/honnef.co/go/tools/unused/edge.go
@@ -0,0 +1,54 @@
1package unused
2
3//go:generate stringer -type edgeKind
4type edgeKind uint64
5
6func (e edgeKind) is(o edgeKind) bool {
7 return e&o != 0
8}
9
10const (
11 edgeAlias edgeKind = 1 << iota
12 edgeBlankField
13 edgeAnonymousStruct
14 edgeCgoExported
15 edgeConstGroup
16 edgeElementType
17 edgeEmbeddedInterface
18 edgeExportedConstant
19 edgeExportedField
20 edgeExportedFunction
21 edgeExportedMethod
22 edgeExportedType
23 edgeExportedVariable
24 edgeExtendsExportedFields
25 edgeExtendsExportedMethodSet
26 edgeFieldAccess
27 edgeFunctionArgument
28 edgeFunctionResult
29 edgeFunctionSignature
30 edgeImplements
31 edgeInstructionOperand
32 edgeInterfaceCall
33 edgeInterfaceMethod
34 edgeKeyType
35 edgeLinkname
36 edgeMainFunction
37 edgeNamedType
38 edgeNetRPCRegister
39 edgeNoCopySentinel
40 edgeProvidesMethod
41 edgeReceiver
42 edgeRuntimeFunction
43 edgeSignature
44 edgeStructConversion
45 edgeTestSink
46 edgeTupleElement
47 edgeType
48 edgeTypeName
49 edgeUnderlyingType
50 edgePointerType
51 edgeUnsafeConversion
52 edgeUsedConstant
53 edgeVarDecl
54)
diff --git a/vendor/honnef.co/go/tools/unused/edgekind_string.go b/vendor/honnef.co/go/tools/unused/edgekind_string.go
new file mode 100644
index 0000000..7629636
--- /dev/null
+++ b/vendor/honnef.co/go/tools/unused/edgekind_string.go
@@ -0,0 +1,109 @@
1// Code generated by "stringer -type edgeKind"; DO NOT EDIT.
2
3package unused
4
5import "strconv"
6
7func _() {
8 // An "invalid array index" compiler error signifies that the constant values have changed.
9 // Re-run the stringer command to generate them again.
10 var x [1]struct{}
11 _ = x[edgeAlias-1]
12 _ = x[edgeBlankField-2]
13 _ = x[edgeAnonymousStruct-4]
14 _ = x[edgeCgoExported-8]
15 _ = x[edgeConstGroup-16]
16 _ = x[edgeElementType-32]
17 _ = x[edgeEmbeddedInterface-64]
18 _ = x[edgeExportedConstant-128]
19 _ = x[edgeExportedField-256]
20 _ = x[edgeExportedFunction-512]
21 _ = x[edgeExportedMethod-1024]
22 _ = x[edgeExportedType-2048]
23 _ = x[edgeExportedVariable-4096]
24 _ = x[edgeExtendsExportedFields-8192]
25 _ = x[edgeExtendsExportedMethodSet-16384]
26 _ = x[edgeFieldAccess-32768]
27 _ = x[edgeFunctionArgument-65536]
28 _ = x[edgeFunctionResult-131072]
29 _ = x[edgeFunctionSignature-262144]
30 _ = x[edgeImplements-524288]
31 _ = x[edgeInstructionOperand-1048576]
32 _ = x[edgeInterfaceCall-2097152]
33 _ = x[edgeInterfaceMethod-4194304]
34 _ = x[edgeKeyType-8388608]
35 _ = x[edgeLinkname-16777216]
36 _ = x[edgeMainFunction-33554432]
37 _ = x[edgeNamedType-67108864]
38 _ = x[edgeNetRPCRegister-134217728]
39 _ = x[edgeNoCopySentinel-268435456]
40 _ = x[edgeProvidesMethod-536870912]
41 _ = x[edgeReceiver-1073741824]
42 _ = x[edgeRuntimeFunction-2147483648]
43 _ = x[edgeSignature-4294967296]
44 _ = x[edgeStructConversion-8589934592]
45 _ = x[edgeTestSink-17179869184]
46 _ = x[edgeTupleElement-34359738368]
47 _ = x[edgeType-68719476736]
48 _ = x[edgeTypeName-137438953472]
49 _ = x[edgeUnderlyingType-274877906944]
50 _ = x[edgePointerType-549755813888]
51 _ = x[edgeUnsafeConversion-1099511627776]
52 _ = x[edgeUsedConstant-2199023255552]
53 _ = x[edgeVarDecl-4398046511104]
54}
55
56const _edgeKind_name = "edgeAliasedgeBlankFieldedgeAnonymousStructedgeCgoExportededgeConstGroupedgeElementTypeedgeEmbeddedInterfaceedgeExportedConstantedgeExportedFieldedgeExportedFunctionedgeExportedMethodedgeExportedTypeedgeExportedVariableedgeExtendsExportedFieldsedgeExtendsExportedMethodSetedgeFieldAccessedgeFunctionArgumentedgeFunctionResultedgeFunctionSignatureedgeImplementsedgeInstructionOperandedgeInterfaceCalledgeInterfaceMethodedgeKeyTypeedgeLinknameedgeMainFunctionedgeNamedTypeedgeNetRPCRegisteredgeNoCopySentineledgeProvidesMethodedgeReceiveredgeRuntimeFunctionedgeSignatureedgeStructConversionedgeTestSinkedgeTupleElementedgeTypeedgeTypeNameedgeUnderlyingTypeedgePointerTypeedgeUnsafeConversionedgeUsedConstantedgeVarDecl"
57
58var _edgeKind_map = map[edgeKind]string{
59 1: _edgeKind_name[0:9],
60 2: _edgeKind_name[9:23],
61 4: _edgeKind_name[23:42],
62 8: _edgeKind_name[42:57],
63 16: _edgeKind_name[57:71],
64 32: _edgeKind_name[71:86],
65 64: _edgeKind_name[86:107],
66 128: _edgeKind_name[107:127],
67 256: _edgeKind_name[127:144],
68 512: _edgeKind_name[144:164],
69 1024: _edgeKind_name[164:182],
70 2048: _edgeKind_name[182:198],
71 4096: _edgeKind_name[198:218],
72 8192: _edgeKind_name[218:243],
73 16384: _edgeKind_name[243:271],
74 32768: _edgeKind_name[271:286],
75 65536: _edgeKind_name[286:306],
76 131072: _edgeKind_name[306:324],
77 262144: _edgeKind_name[324:345],
78 524288: _edgeKind_name[345:359],
79 1048576: _edgeKind_name[359:381],
80 2097152: _edgeKind_name[381:398],
81 4194304: _edgeKind_name[398:417],
82 8388608: _edgeKind_name[417:428],
83 16777216: _edgeKind_name[428:440],
84 33554432: _edgeKind_name[440:456],
85 67108864: _edgeKind_name[456:469],
86 134217728: _edgeKind_name[469:487],
87 268435456: _edgeKind_name[487:505],
88 536870912: _edgeKind_name[505:523],
89 1073741824: _edgeKind_name[523:535],
90 2147483648: _edgeKind_name[535:554],
91 4294967296: _edgeKind_name[554:567],
92 8589934592: _edgeKind_name[567:587],
93 17179869184: _edgeKind_name[587:599],
94 34359738368: _edgeKind_name[599:615],
95 68719476736: _edgeKind_name[615:623],
96 137438953472: _edgeKind_name[623:635],
97 274877906944: _edgeKind_name[635:653],
98 549755813888: _edgeKind_name[653:668],
99 1099511627776: _edgeKind_name[668:688],
100 2199023255552: _edgeKind_name[688:704],
101 4398046511104: _edgeKind_name[704:715],
102}
103
104func (i edgeKind) String() string {
105 if str, ok := _edgeKind_map[i]; ok {
106 return str
107 }
108 return "edgeKind(" + strconv.FormatInt(int64(i), 10) + ")"
109}
diff --git a/vendor/honnef.co/go/tools/unused/implements.go b/vendor/honnef.co/go/tools/unused/implements.go
new file mode 100644
index 0000000..835baac
--- /dev/null
+++ b/vendor/honnef.co/go/tools/unused/implements.go
@@ -0,0 +1,82 @@
1package unused
2
3import "go/types"
4
5// lookupMethod returns the index of and method with matching package and name, or (-1, nil).
6func lookupMethod(T *types.Interface, pkg *types.Package, name string) (int, *types.Func) {
7 if name != "_" {
8 for i := 0; i < T.NumMethods(); i++ {
9 m := T.Method(i)
10 if sameId(m, pkg, name) {
11 return i, m
12 }
13 }
14 }
15 return -1, nil
16}
17
18func sameId(obj types.Object, pkg *types.Package, name string) bool {
19 // spec:
20 // "Two identifiers are different if they are spelled differently,
21 // or if they appear in different packages and are not exported.
22 // Otherwise, they are the same."
23 if name != obj.Name() {
24 return false
25 }
26 // obj.Name == name
27 if obj.Exported() {
28 return true
29 }
30 // not exported, so packages must be the same (pkg == nil for
31 // fields in Universe scope; this can only happen for types
32 // introduced via Eval)
33 if pkg == nil || obj.Pkg() == nil {
34 return pkg == obj.Pkg()
35 }
36 // pkg != nil && obj.pkg != nil
37 return pkg.Path() == obj.Pkg().Path()
38}
39
40func (g *Graph) implements(V types.Type, T *types.Interface, msV *types.MethodSet) ([]*types.Selection, bool) {
41 // fast path for common case
42 if T.Empty() {
43 return nil, true
44 }
45
46 if ityp, _ := V.Underlying().(*types.Interface); ityp != nil {
47 // TODO(dh): is this code reachable?
48 for i := 0; i < T.NumMethods(); i++ {
49 m := T.Method(i)
50 _, obj := lookupMethod(ityp, m.Pkg(), m.Name())
51 switch {
52 case obj == nil:
53 return nil, false
54 case !types.Identical(obj.Type(), m.Type()):
55 return nil, false
56 }
57 }
58 return nil, true
59 }
60
61 // A concrete type implements T if it implements all methods of T.
62 var sels []*types.Selection
63 for i := 0; i < T.NumMethods(); i++ {
64 m := T.Method(i)
65 sel := msV.Lookup(m.Pkg(), m.Name())
66 if sel == nil {
67 return nil, false
68 }
69
70 f, _ := sel.Obj().(*types.Func)
71 if f == nil {
72 return nil, false
73 }
74
75 if !types.Identical(f.Type(), m.Type()) {
76 return nil, false
77 }
78
79 sels = append(sels, sel)
80 }
81 return sels, true
82}
diff --git a/vendor/honnef.co/go/tools/unused/unused.go b/vendor/honnef.co/go/tools/unused/unused.go
new file mode 100644
index 0000000..152d369
--- /dev/null
+++ b/vendor/honnef.co/go/tools/unused/unused.go
@@ -0,0 +1,1964 @@
1package unused
2
3import (
4 "fmt"
5 "go/ast"
6 "go/token"
7 "go/types"
8 "io"
9 "strings"
10 "sync"
11 "sync/atomic"
12
13 "golang.org/x/tools/go/analysis"
14 "honnef.co/go/tools/go/types/typeutil"
15 "honnef.co/go/tools/internal/passes/buildssa"
16 "honnef.co/go/tools/lint"
17 "honnef.co/go/tools/lint/lintdsl"
18 "honnef.co/go/tools/ssa"
19)
20
21// The graph we construct omits nodes along a path that do not
22// contribute any new information to the solution. For example, the
23// full graph for a function with a receiver would be Func ->
24// Signature -> Var -> Type. However, since signatures cannot be
25// unused, and receivers are always considered used, we can compact
26// the graph down to Func -> Type. This makes the graph smaller, but
27// harder to debug.
28
29// TODO(dh): conversions between structs mark fields as used, but the
30// conversion itself isn't part of that subgraph. even if the function
31// containing the conversion is unused, the fields will be marked as
32// used.
33
34// TODO(dh): we cannot observe function calls in assembly files.
35
36/*
37
38- packages use:
39 - (1.1) exported named types (unless in package main)
40 - (1.2) exported functions (unless in package main)
41 - (1.3) exported variables (unless in package main)
42 - (1.4) exported constants (unless in package main)
43 - (1.5) init functions
44 - (1.6) functions exported to cgo
45 - (1.7) the main function iff in the main package
46 - (1.8) symbols linked via go:linkname
47
48- named types use:
49 - (2.1) exported methods
50 - (2.2) the type they're based on
51 - (2.3) all their aliases. we can't easily track uses of aliases
52 because go/types turns them into uses of the aliased types. assume
53 that if a type is used, so are all of its aliases.
54 - (2.4) the pointer type. this aids with eagerly implementing
55 interfaces. if a method that implements an interface is defined on
56 a pointer receiver, and the pointer type is never used, but the
57 named type is, then we still want to mark the method as used.
58
59- variables and constants use:
60 - their types
61
62- functions use:
63 - (4.1) all their arguments, return parameters and receivers
64 - (4.2) anonymous functions defined beneath them
65 - (4.3) closures and bound methods.
66 this implements a simplified model where a function is used merely by being referenced, even if it is never called.
67 that way we don't have to keep track of closures escaping functions.
68 - (4.4) functions they return. we assume that someone else will call the returned function
69 - (4.5) functions/interface methods they call
70 - types they instantiate or convert to
71 - (4.7) fields they access
72 - (4.8) types of all instructions
73 - (4.9) package-level variables they assign to iff in tests (sinks for benchmarks)
74
75- conversions use:
76 - (5.1) when converting between two equivalent structs, the fields in
77 either struct use each other. the fields are relevant for the
78 conversion, but only if the fields are also accessed outside the
79 conversion.
80 - (5.2) when converting to or from unsafe.Pointer, mark all fields as used.
81
82- structs use:
83 - (6.1) fields of type NoCopy sentinel
84 - (6.2) exported fields
85 - (6.3) embedded fields that help implement interfaces (either fully implements it, or contributes required methods) (recursively)
86 - (6.4) embedded fields that have exported methods (recursively)
87 - (6.5) embedded structs that have exported fields (recursively)
88
89- (7.1) field accesses use fields
90- (7.2) fields use their types
91
92- (8.0) How we handle interfaces:
93 - (8.1) We do not technically care about interfaces that only consist of
94 exported methods. Exported methods on concrete types are always
95 marked as used.
96 - Any concrete type implements all known interfaces. Even if it isn't
97 assigned to any interfaces in our code, the user may receive a value
98 of the type and expect to pass it back to us through an interface.
99
100 Concrete types use their methods that implement interfaces. If the
101 type is used, it uses those methods. Otherwise, it doesn't. This
102 way, types aren't incorrectly marked reachable through the edge
103 from method to type.
104
105 - (8.3) All interface methods are marked as used, even if they never get
106 called. This is to accomodate sum types (unexported interface
107 method that must exist but never gets called.)
108
109 - (8.4) All embedded interfaces are marked as used. This is an
110 extension of 8.3, but we have to explicitly track embedded
111 interfaces because in a chain C->B->A, B wouldn't be marked as
112 used by 8.3 just because it contributes A's methods to C.
113
114- Inherent uses:
115 - thunks and other generated wrappers call the real function
116 - (9.2) variables use their types
117 - (9.3) types use their underlying and element types
118 - (9.4) conversions use the type they convert to
119 - (9.5) instructions use their operands
120 - (9.6) instructions use their operands' types
121 - (9.7) variable _reads_ use variables, writes do not, except in tests
122 - (9.8) runtime functions that may be called from user code via the compiler
123
124
125- const groups:
126 (10.1) if one constant out of a block of constants is used, mark all
127 of them used. a lot of the time, unused constants exist for the sake
128 of completeness. See also
129 https://github.com/dominikh/go-tools/issues/365
130
131
132- (11.1) anonymous struct types use all their fields. we cannot
133 deduplicate struct types, as that leads to order-dependent
134 reportings. we can't not deduplicate struct types while still
135 tracking fields, because then each instance of the unnamed type in
136 the data flow chain will get its own fields, causing false
137 positives. Thus, we only accurately track fields of named struct
138 types, and assume that unnamed struct types use all their fields.
139
140
141- Differences in whole program mode:
142 - (e2) types aim to implement all exported interfaces from all packages
143 - (e3) exported identifiers aren't automatically used. for fields and
144 methods this poses extra issues due to reflection. We assume
145 that all exported fields are used. We also maintain a list of
146 known reflection-based method callers.
147
148*/
149
150func assert(b bool) {
151 if !b {
152 panic("failed assertion")
153 }
154}
155
156func typString(obj types.Object) string {
157 switch obj := obj.(type) {
158 case *types.Func:
159 return "func"
160 case *types.Var:
161 if obj.IsField() {
162 return "field"
163 }
164 return "var"
165 case *types.Const:
166 return "const"
167 case *types.TypeName:
168 return "type"
169 default:
170 return "identifier"
171 }
172}
173
174// /usr/lib/go/src/runtime/proc.go:433:6: func badmorestackg0 is unused (U1000)
175
176// Functions defined in the Go runtime that may be called through
177// compiler magic or via assembly.
178var runtimeFuncs = map[string]bool{
179 // The first part of the list is copied from
180 // cmd/compile/internal/gc/builtin.go, var runtimeDecls
181 "newobject": true,
182 "panicindex": true,
183 "panicslice": true,
184 "panicdivide": true,
185 "panicmakeslicelen": true,
186 "throwinit": true,
187 "panicwrap": true,
188 "gopanic": true,
189 "gorecover": true,
190 "goschedguarded": true,
191 "printbool": true,
192 "printfloat": true,
193 "printint": true,
194 "printhex": true,
195 "printuint": true,
196 "printcomplex": true,
197 "printstring": true,
198 "printpointer": true,
199 "printiface": true,
200 "printeface": true,
201 "printslice": true,
202 "printnl": true,
203 "printsp": true,
204 "printlock": true,
205 "printunlock": true,
206 "concatstring2": true,
207 "concatstring3": true,
208 "concatstring4": true,
209 "concatstring5": true,
210 "concatstrings": true,
211 "cmpstring": true,
212 "intstring": true,
213 "slicebytetostring": true,
214 "slicebytetostringtmp": true,
215 "slicerunetostring": true,
216 "stringtoslicebyte": true,
217 "stringtoslicerune": true,
218 "slicecopy": true,
219 "slicestringcopy": true,
220 "decoderune": true,
221 "countrunes": true,
222 "convI2I": true,
223 "convT16": true,
224 "convT32": true,
225 "convT64": true,
226 "convTstring": true,
227 "convTslice": true,
228 "convT2E": true,
229 "convT2Enoptr": true,
230 "convT2I": true,
231 "convT2Inoptr": true,
232 "assertE2I": true,
233 "assertE2I2": true,
234 "assertI2I": true,
235 "assertI2I2": true,
236 "panicdottypeE": true,
237 "panicdottypeI": true,
238 "panicnildottype": true,
239 "ifaceeq": true,
240 "efaceeq": true,
241 "fastrand": true,
242 "makemap64": true,
243 "makemap": true,
244 "makemap_small": true,
245 "mapaccess1": true,
246 "mapaccess1_fast32": true,
247 "mapaccess1_fast64": true,
248 "mapaccess1_faststr": true,
249 "mapaccess1_fat": true,
250 "mapaccess2": true,
251 "mapaccess2_fast32": true,
252 "mapaccess2_fast64": true,
253 "mapaccess2_faststr": true,
254 "mapaccess2_fat": true,
255 "mapassign": true,
256 "mapassign_fast32": true,
257 "mapassign_fast32ptr": true,
258 "mapassign_fast64": true,
259 "mapassign_fast64ptr": true,
260 "mapassign_faststr": true,
261 "mapiterinit": true,
262 "mapdelete": true,
263 "mapdelete_fast32": true,
264 "mapdelete_fast64": true,
265 "mapdelete_faststr": true,
266 "mapiternext": true,
267 "mapclear": true,
268 "makechan64": true,
269 "makechan": true,
270 "chanrecv1": true,
271 "chanrecv2": true,
272 "chansend1": true,
273 "closechan": true,
274 "writeBarrier": true,
275 "typedmemmove": true,
276 "typedmemclr": true,
277 "typedslicecopy": true,
278 "selectnbsend": true,
279 "selectnbrecv": true,
280 "selectnbrecv2": true,
281 "selectsetpc": true,
282 "selectgo": true,
283 "block": true,
284 "makeslice": true,
285 "makeslice64": true,
286 "growslice": true,
287 "memmove": true,
288 "memclrNoHeapPointers": true,
289 "memclrHasPointers": true,
290 "memequal": true,
291 "memequal8": true,
292 "memequal16": true,
293 "memequal32": true,
294 "memequal64": true,
295 "memequal128": true,
296 "int64div": true,
297 "uint64div": true,
298 "int64mod": true,
299 "uint64mod": true,
300 "float64toint64": true,
301 "float64touint64": true,
302 "float64touint32": true,
303 "int64tofloat64": true,
304 "uint64tofloat64": true,
305 "uint32tofloat64": true,
306 "complex128div": true,
307 "racefuncenter": true,
308 "racefuncenterfp": true,
309 "racefuncexit": true,
310 "raceread": true,
311 "racewrite": true,
312 "racereadrange": true,
313 "racewriterange": true,
314 "msanread": true,
315 "msanwrite": true,
316 "x86HasPOPCNT": true,
317 "x86HasSSE41": true,
318 "arm64HasATOMICS": true,
319
320 // The second part of the list is extracted from assembly code in
321 // the standard library, with the exception of the runtime package itself
322 "abort": true,
323 "aeshashbody": true,
324 "args": true,
325 "asminit": true,
326 "badctxt": true,
327 "badmcall2": true,
328 "badmcall": true,
329 "badmorestackg0": true,
330 "badmorestackgsignal": true,
331 "badsignal2": true,
332 "callbackasm1": true,
333 "callCfunction": true,
334 "cgocallback_gofunc": true,
335 "cgocallbackg": true,
336 "checkgoarm": true,
337 "check": true,
338 "debugCallCheck": true,
339 "debugCallWrap": true,
340 "emptyfunc": true,
341 "entersyscall": true,
342 "exit": true,
343 "exits": true,
344 "exitsyscall": true,
345 "externalthreadhandler": true,
346 "findnull": true,
347 "goexit1": true,
348 "gostring": true,
349 "i386_set_ldt": true,
350 "_initcgo": true,
351 "init_thread_tls": true,
352 "ldt0setup": true,
353 "libpreinit": true,
354 "load_g": true,
355 "morestack": true,
356 "mstart": true,
357 "nacl_sysinfo": true,
358 "nanotimeQPC": true,
359 "nanotime": true,
360 "newosproc0": true,
361 "newproc": true,
362 "newstack": true,
363 "noted": true,
364 "nowQPC": true,
365 "osinit": true,
366 "printf": true,
367 "racecallback": true,
368 "reflectcallmove": true,
369 "reginit": true,
370 "rt0_go": true,
371 "save_g": true,
372 "schedinit": true,
373 "setldt": true,
374 "settls": true,
375 "sighandler": true,
376 "sigprofNonGo": true,
377 "sigtrampgo": true,
378 "_sigtramp": true,
379 "sigtramp": true,
380 "stackcheck": true,
381 "syscall_chdir": true,
382 "syscall_chroot": true,
383 "syscall_close": true,
384 "syscall_dup2": true,
385 "syscall_execve": true,
386 "syscall_exit": true,
387 "syscall_fcntl": true,
388 "syscall_forkx": true,
389 "syscall_gethostname": true,
390 "syscall_getpid": true,
391 "syscall_ioctl": true,
392 "syscall_pipe": true,
393 "syscall_rawsyscall6": true,
394 "syscall_rawSyscall6": true,
395 "syscall_rawsyscall": true,
396 "syscall_RawSyscall": true,
397 "syscall_rawsysvicall6": true,
398 "syscall_setgid": true,
399 "syscall_setgroups": true,
400 "syscall_setpgid": true,
401 "syscall_setsid": true,
402 "syscall_setuid": true,
403 "syscall_syscall6": true,
404 "syscall_syscall": true,
405 "syscall_Syscall": true,
406 "syscall_sysvicall6": true,
407 "syscall_wait4": true,
408 "syscall_write": true,
409 "traceback": true,
410 "tstart": true,
411 "usplitR0": true,
412 "wbBufFlush": true,
413 "write": true,
414}
415
416type pkg struct {
417 Fset *token.FileSet
418 Files []*ast.File
419 Pkg *types.Package
420 TypesInfo *types.Info
421 TypesSizes types.Sizes
422 SSA *ssa.Package
423 SrcFuncs []*ssa.Function
424}
425
426type Checker struct {
427 WholeProgram bool
428 Debug io.Writer
429
430 mu sync.Mutex
431 initialPackages map[*types.Package]struct{}
432 allPackages map[*types.Package]struct{}
433 graph *Graph
434}
435
436func NewChecker(wholeProgram bool) *Checker {
437 return &Checker{
438 initialPackages: map[*types.Package]struct{}{},
439 allPackages: map[*types.Package]struct{}{},
440 WholeProgram: wholeProgram,
441 }
442}
443
444func (c *Checker) Analyzer() *analysis.Analyzer {
445 name := "U1000"
446 if c.WholeProgram {
447 name = "U1001"
448 }
449 return &analysis.Analyzer{
450 Name: name,
451 Doc: "Unused code",
452 Run: c.Run,
453 Requires: []*analysis.Analyzer{buildssa.Analyzer},
454 }
455}
456
457func (c *Checker) Run(pass *analysis.Pass) (interface{}, error) {
458 c.mu.Lock()
459 if c.graph == nil {
460 c.graph = NewGraph()
461 c.graph.wholeProgram = c.WholeProgram
462 c.graph.fset = pass.Fset
463 }
464
465 var visit func(pkg *types.Package)
466 visit = func(pkg *types.Package) {
467 if _, ok := c.allPackages[pkg]; ok {
468 return
469 }
470 c.allPackages[pkg] = struct{}{}
471 for _, imp := range pkg.Imports() {
472 visit(imp)
473 }
474 }
475 visit(pass.Pkg)
476
477 c.initialPackages[pass.Pkg] = struct{}{}
478 c.mu.Unlock()
479
480 ssapkg := pass.ResultOf[buildssa.Analyzer].(*buildssa.SSA)
481 pkg := &pkg{
482 Fset: pass.Fset,
483 Files: pass.Files,
484 Pkg: pass.Pkg,
485 TypesInfo: pass.TypesInfo,
486 TypesSizes: pass.TypesSizes,
487 SSA: ssapkg.Pkg,
488 SrcFuncs: ssapkg.SrcFuncs,
489 }
490
491 c.processPkg(c.graph, pkg)
492
493 return nil, nil
494}
495
496func (c *Checker) ProblemObject(fset *token.FileSet, obj types.Object) lint.Problem {
497 name := obj.Name()
498 if sig, ok := obj.Type().(*types.Signature); ok && sig.Recv() != nil {
499 switch sig.Recv().Type().(type) {
500 case *types.Named, *types.Pointer:
501 typ := types.TypeString(sig.Recv().Type(), func(*types.Package) string { return "" })
502 if len(typ) > 0 && typ[0] == '*' {
503 name = fmt.Sprintf("(%s).%s", typ, obj.Name())
504 } else if len(typ) > 0 {
505 name = fmt.Sprintf("%s.%s", typ, obj.Name())
506 }
507 }
508 }
509
510 checkName := "U1000"
511 if c.WholeProgram {
512 checkName = "U1001"
513 }
514 return lint.Problem{
515 Pos: lint.DisplayPosition(fset, obj.Pos()),
516 Message: fmt.Sprintf("%s %s is unused", typString(obj), name),
517 Check: checkName,
518 }
519}
520
521func (c *Checker) Result() []types.Object {
522 out := c.results()
523
524 out2 := make([]types.Object, 0, len(out))
525 for _, v := range out {
526 if _, ok := c.initialPackages[v.Pkg()]; !ok {
527 continue
528 }
529 out2 = append(out2, v)
530 }
531
532 return out2
533}
534
535func (c *Checker) debugf(f string, v ...interface{}) {
536 if c.Debug != nil {
537 fmt.Fprintf(c.Debug, f, v...)
538 }
539}
540
541func (graph *Graph) quieten(node *Node) {
542 if node.seen {
543 return
544 }
545 switch obj := node.obj.(type) {
546 case *types.Named:
547 for i := 0; i < obj.NumMethods(); i++ {
548 m := obj.Method(i)
549 if node, ok := graph.nodeMaybe(m); ok {
550 node.quiet = true
551 }
552 }
553 case *types.Struct:
554 for i := 0; i < obj.NumFields(); i++ {
555 if node, ok := graph.nodeMaybe(obj.Field(i)); ok {
556 node.quiet = true
557 }
558 }
559 case *types.Interface:
560 for i := 0; i < obj.NumExplicitMethods(); i++ {
561 m := obj.ExplicitMethod(i)
562 if node, ok := graph.nodeMaybe(m); ok {
563 node.quiet = true
564 }
565 }
566 }
567}
568
569func (c *Checker) results() []types.Object {
570 if c.graph == nil {
571 // We never analyzed any packages
572 return nil
573 }
574
575 var out []types.Object
576
577 if c.WholeProgram {
578 var ifaces []*types.Interface
579 var notIfaces []types.Type
580
581 // implement as many interfaces as possible
582 c.graph.seenTypes.Iterate(func(t types.Type, _ interface{}) {
583 switch t := t.(type) {
584 case *types.Interface:
585 if t.NumMethods() > 0 {
586 ifaces = append(ifaces, t)
587 }
588 default:
589 if _, ok := t.Underlying().(*types.Interface); !ok {
590 notIfaces = append(notIfaces, t)
591 }
592 }
593 })
594
595 for pkg := range c.allPackages {
596 for _, iface := range interfacesFromExportData(pkg) {
597 if iface.NumMethods() > 0 {
598 ifaces = append(ifaces, iface)
599 }
600 }
601 }
602
603 ctx := &context{
604 g: c.graph,
605 seenTypes: &c.graph.seenTypes,
606 }
607 // (8.0) handle interfaces
608 // (e2) types aim to implement all exported interfaces from all packages
609 for _, t := range notIfaces {
610 // OPT(dh): it is unfortunate that we do not have access
611 // to a populated method set at this point.
612 ms := types.NewMethodSet(t)
613 for _, iface := range ifaces {
614 if sels, ok := c.graph.implements(t, iface, ms); ok {
615 for _, sel := range sels {
616 c.graph.useMethod(ctx, t, sel, t, edgeImplements)
617 }
618 }
619 }
620 }
621 }
622
623 if c.Debug != nil {
624 debugNode := func(node *Node) {
625 if node.obj == nil {
626 c.debugf("n%d [label=\"Root\"];\n", node.id)
627 } else {
628 c.debugf("n%d [label=%q];\n", node.id, fmt.Sprintf("(%T) %s", node.obj, node.obj))
629 }
630 for _, e := range node.used {
631 for i := edgeKind(1); i < 64; i++ {
632 if e.kind.is(1 << i) {
633 c.debugf("n%d -> n%d [label=%q];\n", node.id, e.node.id, edgeKind(1<<i))
634 }
635 }
636 }
637 }
638
639 c.debugf("digraph{\n")
640 debugNode(c.graph.Root)
641 c.graph.Nodes.Range(func(k, v interface{}) bool {
642 debugNode(v.(*Node))
643 return true
644 })
645 c.graph.TypeNodes.Iterate(func(key types.Type, value interface{}) {
646 debugNode(value.(*Node))
647 })
648
649 c.debugf("}\n")
650 }
651
652 c.graph.color(c.graph.Root)
653 // if a node is unused, don't report any of the node's
654 // children as unused. for example, if a function is unused,
655 // don't flag its receiver. if a named type is unused, don't
656 // flag its methods.
657
658 c.graph.Nodes.Range(func(k, v interface{}) bool {
659 c.graph.quieten(v.(*Node))
660 return true
661 })
662 c.graph.TypeNodes.Iterate(func(_ types.Type, value interface{}) {
663 c.graph.quieten(value.(*Node))
664 })
665
666 report := func(node *Node) {
667 if node.seen {
668 return
669 }
670 if node.quiet {
671 c.debugf("n%d [color=purple];\n", node.id)
672 return
673 }
674
675 c.debugf("n%d [color=red];\n", node.id)
676 switch obj := node.obj.(type) {
677 case *types.Var:
678 // don't report unnamed variables (interface embedding)
679 if obj.Name() != "" || obj.IsField() {
680 out = append(out, obj)
681 }
682 return
683 case types.Object:
684 if obj.Name() != "_" {
685 out = append(out, obj)
686 }
687 return
688 }
689 c.debugf("n%d [color=gray];\n", node.id)
690 }
691 c.graph.Nodes.Range(func(k, v interface{}) bool {
692 report(v.(*Node))
693 return true
694 })
695 c.graph.TypeNodes.Iterate(func(_ types.Type, value interface{}) {
696 report(value.(*Node))
697 })
698
699 return out
700}
701
702func (c *Checker) processPkg(graph *Graph, pkg *pkg) {
703 if pkg.Pkg.Path() == "unsafe" {
704 return
705 }
706 graph.entry(pkg)
707}
708
709func objNodeKeyFor(fset *token.FileSet, obj types.Object) objNodeKey {
710 var kind objType
711 switch obj.(type) {
712 case *types.PkgName:
713 kind = otPkgName
714 case *types.Const:
715 kind = otConst
716 case *types.TypeName:
717 kind = otTypeName
718 case *types.Var:
719 kind = otVar
720 case *types.Func:
721 kind = otFunc
722 case *types.Label:
723 kind = otLabel
724 case *types.Builtin:
725 kind = otBuiltin
726 case *types.Nil:
727 kind = otNil
728 default:
729 panic(fmt.Sprintf("unreachable: %T", obj))
730 }
731
732 position := fset.PositionFor(obj.Pos(), false)
733 position.Column = 0
734 position.Offset = 0
735 return objNodeKey{
736 position: position,
737 kind: kind,
738 name: obj.Name(),
739 }
740}
741
742type objType uint8
743
744const (
745 otPkgName objType = iota
746 otConst
747 otTypeName
748 otVar
749 otFunc
750 otLabel
751 otBuiltin
752 otNil
753)
754
755// An objNodeKey describes a types.Object node in the graph.
756//
757// Due to test variants we may end up with multiple instances of the
758// same object, which is why we have to deduplicate based on their
759// source position. And because export data lacks column information,
760// we also have to incorporate the object's string representation in
761// the key.
762//
763// Previously we used the object's full string representation
764// (types.ObjectString), but that causes a significant amount of
765// allocations. Currently we're using the object's type and name, in
766// the hope that it is impossible for two objects to have the same
767// type, name and file position.
768type objNodeKey struct {
769 position token.Position
770 kind objType
771 name string
772}
773
774type Graph struct {
775 // accessed atomically
776 nodeOffset uint64
777
778 // Safe for concurrent use
779 fset *token.FileSet
780 Root *Node
781 seenTypes typeutil.Map
782 Nodes sync.Map // map[interface{}]*Node
783 objNodes sync.Map // map[objNodeKey]*Node
784
785 // read-only
786 wholeProgram bool
787
788 // need synchronisation
789 mu sync.Mutex
790 TypeNodes typeutil.Map
791}
792
793type context struct {
794 g *Graph
795 pkg *pkg
796 seenFns map[string]struct{}
797 seenTypes *typeutil.Map
798 nodeCounter uint64
799
800 // local cache for the map in Graph
801 typeNodes typeutil.Map
802}
803
804func NewGraph() *Graph {
805 g := &Graph{}
806 g.Root = g.newNode(&context{}, nil)
807 return g
808}
809
810func (g *Graph) color(root *Node) {
811 if root.seen {
812 return
813 }
814 root.seen = true
815 for _, e := range root.used {
816 g.color(e.node)
817 }
818}
819
820type ConstGroup struct {
821 // give the struct a size to get unique pointers
822 _ byte
823}
824
825func (ConstGroup) String() string { return "const group" }
826
827type edge struct {
828 node *Node
829 kind edgeKind
830}
831
832type Node struct {
833 obj interface{}
834 id uint64
835
836 mu sync.Mutex
837 used []edge
838
839 // set during final graph walk if node is reachable
840 seen bool
841 // a parent node (e.g. the struct type containing a field) is
842 // already unused, don't report children
843 quiet bool
844}
845
846func (g *Graph) nodeMaybe(obj types.Object) (*Node, bool) {
847 if node, ok := g.Nodes.Load(obj); ok {
848 return node.(*Node), true
849 }
850 return nil, false
851}
852
853func (g *Graph) node(ctx *context, obj interface{}) (node *Node, new bool) {
854 if t, ok := obj.(types.Type); ok {
855 if v := ctx.typeNodes.At(t); v != nil {
856 return v.(*Node), false
857 }
858 g.mu.Lock()
859 defer g.mu.Unlock()
860
861 if v := g.TypeNodes.At(t); v != nil {
862 return v.(*Node), false
863 }
864 node := g.newNode(ctx, t)
865 g.TypeNodes.Set(t, node)
866 ctx.typeNodes.Set(t, node)
867 return node, true
868 }
869
870 if node, ok := g.Nodes.Load(obj); ok {
871 return node.(*Node), false
872 }
873
874 if obj, ok := obj.(types.Object); ok {
875 key := objNodeKeyFor(g.fset, obj)
876 if o, ok := g.objNodes.Load(key); ok {
877 onode := o.(*Node)
878 return onode, false
879 }
880
881 node = g.newNode(ctx, obj)
882 g.Nodes.Store(obj, node)
883 g.objNodes.Store(key, node)
884 return node, true
885 }
886
887 node = g.newNode(ctx, obj)
888 g.Nodes.Store(obj, node)
889 return node, true
890}
891
892func (g *Graph) newNode(ctx *context, obj interface{}) *Node {
893 ctx.nodeCounter++
894 return &Node{
895 obj: obj,
896 id: ctx.nodeCounter,
897 }
898}
899
900func (n *Node) use(node *Node, kind edgeKind) {
901 n.mu.Lock()
902 defer n.mu.Unlock()
903 assert(node != nil)
904 n.used = append(n.used, edge{node: node, kind: kind})
905}
906
907// isIrrelevant reports whether an object's presence in the graph is
908// of any relevance. A lot of objects will never have outgoing edges,
909// nor meaningful incoming ones. Examples are basic types and empty
910// signatures, among many others.
911//
912// Dropping these objects should have no effect on correctness, but
913// may improve performance. It also helps with debugging, as it
914// greatly reduces the size of the graph.
915func isIrrelevant(obj interface{}) bool {
916 if obj, ok := obj.(types.Object); ok {
917 switch obj := obj.(type) {
918 case *types.Var:
919 if obj.IsField() {
920 // We need to track package fields
921 return false
922 }
923 if obj.Pkg() != nil && obj.Parent() == obj.Pkg().Scope() {
924 // We need to track package-level variables
925 return false
926 }
927 return isIrrelevant(obj.Type())
928 default:
929 return false
930 }
931 }
932 if T, ok := obj.(types.Type); ok {
933 switch T := T.(type) {
934 case *types.Array:
935 return isIrrelevant(T.Elem())
936 case *types.Slice:
937 return isIrrelevant(T.Elem())
938 case *types.Basic:
939 return true
940 case *types.Tuple:
941 for i := 0; i < T.Len(); i++ {
942 if !isIrrelevant(T.At(i).Type()) {
943 return false
944 }
945 }
946 return true
947 case *types.Signature:
948 if T.Recv() != nil {
949 return false
950 }
951 for i := 0; i < T.Params().Len(); i++ {
952 if !isIrrelevant(T.Params().At(i)) {
953 return false
954 }
955 }
956 for i := 0; i < T.Results().Len(); i++ {
957 if !isIrrelevant(T.Results().At(i)) {
958 return false
959 }
960 }
961 return true
962 case *types.Interface:
963 return T.NumMethods() == 0 && T.NumEmbeddeds() == 0
964 case *types.Pointer:
965 return isIrrelevant(T.Elem())
966 case *types.Map:
967 return isIrrelevant(T.Key()) && isIrrelevant(T.Elem())
968 case *types.Struct:
969 return T.NumFields() == 0
970 case *types.Chan:
971 return isIrrelevant(T.Elem())
972 default:
973 return false
974 }
975 }
976 return false
977}
978
979func (ctx *context) see(obj interface{}) *Node {
980 if isIrrelevant(obj) {
981 return nil
982 }
983
984 assert(obj != nil)
985 // add new node to graph
986 node, _ := ctx.g.node(ctx, obj)
987 return node
988}
989
990func (ctx *context) use(used, by interface{}, kind edgeKind) {
991 if isIrrelevant(used) {
992 return
993 }
994
995 assert(used != nil)
996 if obj, ok := by.(types.Object); ok && obj.Pkg() != nil {
997 if !ctx.g.wholeProgram && obj.Pkg() != ctx.pkg.Pkg {
998 return
999 }
1000 }
1001 usedNode, new := ctx.g.node(ctx, used)
1002 assert(!new)
1003 if by == nil {
1004 ctx.g.Root.use(usedNode, kind)
1005 } else {
1006 byNode, new := ctx.g.node(ctx, by)
1007 assert(!new)
1008 byNode.use(usedNode, kind)
1009 }
1010}
1011
1012func (ctx *context) seeAndUse(used, by interface{}, kind edgeKind) *Node {
1013 node := ctx.see(used)
1014 ctx.use(used, by, kind)
1015 return node
1016}
1017
1018// trackExportedIdentifier reports whether obj should be considered
1019// used due to being exported, checking various conditions that affect
1020// the decision.
1021func (g *Graph) trackExportedIdentifier(ctx *context, obj types.Object) bool {
1022 if !obj.Exported() {
1023 // object isn't exported, the question is moot
1024 return false
1025 }
1026 path := g.fset.Position(obj.Pos()).Filename
1027 if g.wholeProgram {
1028 // Example functions without "Output:" comments aren't being
1029 // run and thus don't show up in the graph.
1030 if strings.HasSuffix(path, "_test.go") && strings.HasPrefix(obj.Name(), "Example") {
1031 return true
1032 }
1033 // whole program mode tracks exported identifiers accurately
1034 return false
1035 }
1036
1037 if ctx.pkg.Pkg.Name() == "main" && !strings.HasSuffix(path, "_test.go") {
1038 // exported identifiers in package main can't be imported.
1039 // However, test functions can be called, and xtest packages
1040 // even have access to exported identifiers.
1041 return false
1042 }
1043
1044 if strings.HasSuffix(path, "_test.go") {
1045 if strings.HasPrefix(obj.Name(), "Test") ||
1046 strings.HasPrefix(obj.Name(), "Benchmark") ||
1047 strings.HasPrefix(obj.Name(), "Example") {
1048 return true
1049 }
1050 return false
1051 }
1052
1053 return true
1054}
1055
1056func (g *Graph) entry(pkg *pkg) {
1057 no := atomic.AddUint64(&g.nodeOffset, 1)
1058 ctx := &context{
1059 g: g,
1060 pkg: pkg,
1061 nodeCounter: no * 1e9,
1062 seenFns: map[string]struct{}{},
1063 }
1064 if g.wholeProgram {
1065 ctx.seenTypes = &g.seenTypes
1066 } else {
1067 ctx.seenTypes = &typeutil.Map{}
1068 }
1069
1070 scopes := map[*types.Scope]*ssa.Function{}
1071 for _, fn := range pkg.SrcFuncs {
1072 if fn.Object() != nil {
1073 scope := fn.Object().(*types.Func).Scope()
1074 scopes[scope] = fn
1075 }
1076 }
1077
1078 for _, f := range pkg.Files {
1079 for _, cg := range f.Comments {
1080 for _, c := range cg.List {
1081 if strings.HasPrefix(c.Text, "//go:linkname ") {
1082 // FIXME(dh): we're looking at all comments. The
1083 // compiler only looks at comments in the
1084 // left-most column. The intention probably is to
1085 // only look at top-level comments.
1086
1087 // (1.8) packages use symbols linked via go:linkname
1088 fields := strings.Fields(c.Text)
1089 if len(fields) == 3 {
1090 if m, ok := pkg.SSA.Members[fields[1]]; ok {
1091 var obj types.Object
1092 switch m := m.(type) {
1093 case *ssa.Global:
1094 obj = m.Object()
1095 case *ssa.Function:
1096 obj = m.Object()
1097 default:
1098 panic(fmt.Sprintf("unhandled type: %T", m))
1099 }
1100 assert(obj != nil)
1101 ctx.seeAndUse(obj, nil, edgeLinkname)
1102 }
1103 }
1104 }
1105 }
1106 }
1107 }
1108
1109 surroundingFunc := func(obj types.Object) *ssa.Function {
1110 scope := obj.Parent()
1111 for scope != nil {
1112 if fn := scopes[scope]; fn != nil {
1113 return fn
1114 }
1115 scope = scope.Parent()
1116 }
1117 return nil
1118 }
1119
1120 // SSA form won't tell us about locally scoped types that aren't
1121 // being used. Walk the list of Defs to get all named types.
1122 //
1123 // SSA form also won't tell us about constants; use Defs and Uses
1124 // to determine which constants exist and which are being used.
1125 for _, obj := range pkg.TypesInfo.Defs {
1126 switch obj := obj.(type) {
1127 case *types.TypeName:
1128 // types are being handled by walking the AST
1129 case *types.Const:
1130 ctx.see(obj)
1131 fn := surroundingFunc(obj)
1132 if fn == nil && g.trackExportedIdentifier(ctx, obj) {
1133 // (1.4) packages use exported constants (unless in package main)
1134 ctx.use(obj, nil, edgeExportedConstant)
1135 }
1136 g.typ(ctx, obj.Type(), nil)
1137 ctx.seeAndUse(obj.Type(), obj, edgeType)
1138 }
1139 }
1140
1141 // Find constants being used inside functions, find sinks in tests
1142 for _, fn := range pkg.SrcFuncs {
1143 if fn.Object() != nil {
1144 ctx.see(fn.Object())
1145 }
1146 node := fn.Syntax()
1147 if node == nil {
1148 continue
1149 }
1150 ast.Inspect(node, func(node ast.Node) bool {
1151 switch node := node.(type) {
1152 case *ast.Ident:
1153 obj, ok := pkg.TypesInfo.Uses[node]
1154 if !ok {
1155 return true
1156 }
1157 switch obj := obj.(type) {
1158 case *types.Const:
1159 ctx.seeAndUse(obj, owningObject(fn), edgeUsedConstant)
1160 }
1161 case *ast.AssignStmt:
1162 for _, expr := range node.Lhs {
1163 ident, ok := expr.(*ast.Ident)
1164 if !ok {
1165 continue
1166 }
1167 obj := pkg.TypesInfo.ObjectOf(ident)
1168 if obj == nil {
1169 continue
1170 }
1171 path := g.fset.File(obj.Pos()).Name()
1172 if strings.HasSuffix(path, "_test.go") {
1173 if obj.Parent() != nil && obj.Parent().Parent() != nil && obj.Parent().Parent().Parent() == nil {
1174 // object's scope is the package, whose
1175 // parent is the file, whose parent is nil
1176
1177 // (4.9) functions use package-level variables they assign to iff in tests (sinks for benchmarks)
1178 // (9.7) variable _reads_ use variables, writes do not, except in tests
1179 ctx.seeAndUse(obj, owningObject(fn), edgeTestSink)
1180 }
1181 }
1182 }
1183 }
1184
1185 return true
1186 })
1187 }
1188 // Find constants being used in non-function contexts
1189 for _, obj := range pkg.TypesInfo.Uses {
1190 _, ok := obj.(*types.Const)
1191 if !ok {
1192 continue
1193 }
1194 ctx.seeAndUse(obj, nil, edgeUsedConstant)
1195 }
1196
1197 var fns []*types.Func
1198 var fn *types.Func
1199 var stack []ast.Node
1200 for _, f := range pkg.Files {
1201 ast.Inspect(f, func(n ast.Node) bool {
1202 if n == nil {
1203 pop := stack[len(stack)-1]
1204 stack = stack[:len(stack)-1]
1205 if _, ok := pop.(*ast.FuncDecl); ok {
1206 fns = fns[:len(fns)-1]
1207 if len(fns) == 0 {
1208 fn = nil
1209 } else {
1210 fn = fns[len(fns)-1]
1211 }
1212 }
1213 return true
1214 }
1215 stack = append(stack, n)
1216 switch n := n.(type) {
1217 case *ast.FuncDecl:
1218 fn = pkg.TypesInfo.ObjectOf(n.Name).(*types.Func)
1219 fns = append(fns, fn)
1220 ctx.see(fn)
1221 case *ast.GenDecl:
1222 switch n.Tok {
1223 case token.CONST:
1224 groups := lintdsl.GroupSpecs(pkg.Fset, n.Specs)
1225 for _, specs := range groups {
1226 if len(specs) > 1 {
1227 cg := &ConstGroup{}
1228 ctx.see(cg)
1229 for _, spec := range specs {
1230 for _, name := range spec.(*ast.ValueSpec).Names {
1231 obj := pkg.TypesInfo.ObjectOf(name)
1232 // (10.1) const groups
1233 ctx.seeAndUse(obj, cg, edgeConstGroup)
1234 ctx.use(cg, obj, edgeConstGroup)
1235 }
1236 }
1237 }
1238 }
1239 case token.VAR:
1240 for _, spec := range n.Specs {
1241 v := spec.(*ast.ValueSpec)
1242 for _, name := range v.Names {
1243 T := pkg.TypesInfo.TypeOf(name)
1244 if fn != nil {
1245 ctx.seeAndUse(T, fn, edgeVarDecl)
1246 } else {
1247 // TODO(dh): we likely want to make
1248 // the type used by the variable, not
1249 // the package containing the
1250 // variable. But then we have to take
1251 // special care of blank identifiers.
1252 ctx.seeAndUse(T, nil, edgeVarDecl)
1253 }
1254 g.typ(ctx, T, nil)
1255 }
1256 }
1257 case token.TYPE:
1258 for _, spec := range n.Specs {
1259 // go/types doesn't provide a way to go from a
1260 // types.Named to the named type it was based on
1261 // (the t1 in type t2 t1). Therefore we walk the
1262 // AST and process GenDecls.
1263 //
1264 // (2.2) named types use the type they're based on
1265 v := spec.(*ast.TypeSpec)
1266 T := pkg.TypesInfo.TypeOf(v.Type)
1267 obj := pkg.TypesInfo.ObjectOf(v.Name)
1268 ctx.see(obj)
1269 ctx.see(T)
1270 ctx.use(T, obj, edgeType)
1271 g.typ(ctx, obj.Type(), nil)
1272 g.typ(ctx, T, nil)
1273
1274 if v.Assign != 0 {
1275 aliasFor := obj.(*types.TypeName).Type()
1276 // (2.3) named types use all their aliases. we can't easily track uses of aliases
1277 if isIrrelevant(aliasFor) {
1278 // We do not track the type this is an
1279 // alias for (for example builtins), so
1280 // just mark the alias used.
1281 //
1282 // FIXME(dh): what about aliases declared inside functions?
1283 ctx.use(obj, nil, edgeAlias)
1284 } else {
1285 ctx.see(aliasFor)
1286 ctx.seeAndUse(obj, aliasFor, edgeAlias)
1287 }
1288 }
1289 }
1290 }
1291 }
1292 return true
1293 })
1294 }
1295
1296 for _, m := range pkg.SSA.Members {
1297 switch m := m.(type) {
1298 case *ssa.NamedConst:
1299 // nothing to do, we collect all constants from Defs
1300 case *ssa.Global:
1301 if m.Object() != nil {
1302 ctx.see(m.Object())
1303 if g.trackExportedIdentifier(ctx, m.Object()) {
1304 // (1.3) packages use exported variables (unless in package main)
1305 ctx.use(m.Object(), nil, edgeExportedVariable)
1306 }
1307 }
1308 case *ssa.Function:
1309 mObj := owningObject(m)
1310 if mObj != nil {
1311 ctx.see(mObj)
1312 }
1313 //lint:ignore SA9003 handled implicitly
1314 if m.Name() == "init" {
1315 // (1.5) packages use init functions
1316 //
1317 // This is handled implicitly. The generated init
1318 // function has no object, thus everything in it will
1319 // be owned by the package.
1320 }
1321 // This branch catches top-level functions, not methods.
1322 if m.Object() != nil && g.trackExportedIdentifier(ctx, m.Object()) {
1323 // (1.2) packages use exported functions (unless in package main)
1324 ctx.use(mObj, nil, edgeExportedFunction)
1325 }
1326 if m.Name() == "main" && pkg.Pkg.Name() == "main" {
1327 // (1.7) packages use the main function iff in the main package
1328 ctx.use(mObj, nil, edgeMainFunction)
1329 }
1330 if pkg.Pkg.Path() == "runtime" && runtimeFuncs[m.Name()] {
1331 // (9.8) runtime functions that may be called from user code via the compiler
1332 ctx.use(mObj, nil, edgeRuntimeFunction)
1333 }
1334 if m.Syntax() != nil {
1335 doc := m.Syntax().(*ast.FuncDecl).Doc
1336 if doc != nil {
1337 for _, cmt := range doc.List {
1338 if strings.HasPrefix(cmt.Text, "//go:cgo_export_") {
1339 // (1.6) packages use functions exported to cgo
1340 ctx.use(mObj, nil, edgeCgoExported)
1341 }
1342 }
1343 }
1344 }
1345 g.function(ctx, m)
1346 case *ssa.Type:
1347 if m.Object() != nil {
1348 ctx.see(m.Object())
1349 if g.trackExportedIdentifier(ctx, m.Object()) {
1350 // (1.1) packages use exported named types (unless in package main)
1351 ctx.use(m.Object(), nil, edgeExportedType)
1352 }
1353 }
1354 g.typ(ctx, m.Type(), nil)
1355 default:
1356 panic(fmt.Sprintf("unreachable: %T", m))
1357 }
1358 }
1359
1360 if !g.wholeProgram {
1361 // When not in whole program mode we reset seenTypes after each package,
1362 // which means g.seenTypes only contains types of
1363 // interest to us. In whole program mode, we're better off
1364 // processing all interfaces at once, globally, both for
1365 // performance reasons and because in whole program mode we
1366 // actually care about all interfaces, not just the subset
1367 // that has unexported methods.
1368
1369 var ifaces []*types.Interface
1370 var notIfaces []types.Type
1371
1372 ctx.seenTypes.Iterate(func(t types.Type, _ interface{}) {
1373 switch t := t.(type) {
1374 case *types.Interface:
1375 // OPT(dh): (8.1) we only need interfaces that have unexported methods
1376 ifaces = append(ifaces, t)
1377 default:
1378 if _, ok := t.Underlying().(*types.Interface); !ok {
1379 notIfaces = append(notIfaces, t)
1380 }
1381 }
1382 })
1383
1384 // (8.0) handle interfaces
1385 for _, t := range notIfaces {
1386 ms := pkg.SSA.Prog.MethodSets.MethodSet(t)
1387 for _, iface := range ifaces {
1388 if sels, ok := g.implements(t, iface, ms); ok {
1389 for _, sel := range sels {
1390 g.useMethod(ctx, t, sel, t, edgeImplements)
1391 }
1392 }
1393 }
1394 }
1395 }
1396}
1397
1398func (g *Graph) useMethod(ctx *context, t types.Type, sel *types.Selection, by interface{}, kind edgeKind) {
1399 obj := sel.Obj()
1400 path := sel.Index()
1401 assert(obj != nil)
1402 if len(path) > 1 {
1403 base := lintdsl.Dereference(t).Underlying().(*types.Struct)
1404 for _, idx := range path[:len(path)-1] {
1405 next := base.Field(idx)
1406 // (6.3) structs use embedded fields that help implement interfaces
1407 ctx.see(base)
1408 ctx.seeAndUse(next, base, edgeProvidesMethod)
1409 base, _ = lintdsl.Dereference(next.Type()).Underlying().(*types.Struct)
1410 }
1411 }
1412 ctx.seeAndUse(obj, by, kind)
1413}
1414
1415func owningObject(fn *ssa.Function) types.Object {
1416 if fn.Object() != nil {
1417 return fn.Object()
1418 }
1419 if fn.Parent() != nil {
1420 return owningObject(fn.Parent())
1421 }
1422 return nil
1423}
1424
1425func (g *Graph) function(ctx *context, fn *ssa.Function) {
1426 if fn.Package() != nil && fn.Package() != ctx.pkg.SSA {
1427 return
1428 }
1429
1430 name := fn.RelString(nil)
1431 if _, ok := ctx.seenFns[name]; ok {
1432 return
1433 }
1434 ctx.seenFns[name] = struct{}{}
1435
1436 // (4.1) functions use all their arguments, return parameters and receivers
1437 g.signature(ctx, fn.Signature, owningObject(fn))
1438 g.instructions(ctx, fn)
1439 for _, anon := range fn.AnonFuncs {
1440 // (4.2) functions use anonymous functions defined beneath them
1441 //
1442 // This fact is expressed implicitly. Anonymous functions have
1443 // no types.Object, so their owner is the surrounding
1444 // function.
1445 g.function(ctx, anon)
1446 }
1447}
1448
1449func (g *Graph) typ(ctx *context, t types.Type, parent types.Type) {
1450 if g.wholeProgram {
1451 g.mu.Lock()
1452 }
1453 if ctx.seenTypes.At(t) != nil {
1454 if g.wholeProgram {
1455 g.mu.Unlock()
1456 }
1457 return
1458 }
1459 if g.wholeProgram {
1460 g.mu.Unlock()
1461 }
1462 if t, ok := t.(*types.Named); ok && t.Obj().Pkg() != nil {
1463 if t.Obj().Pkg() != ctx.pkg.Pkg {
1464 return
1465 }
1466 }
1467
1468 if g.wholeProgram {
1469 g.mu.Lock()
1470 }
1471 ctx.seenTypes.Set(t, struct{}{})
1472 if g.wholeProgram {
1473 g.mu.Unlock()
1474 }
1475 if isIrrelevant(t) {
1476 return
1477 }
1478
1479 ctx.see(t)
1480 switch t := t.(type) {
1481 case *types.Struct:
1482 for i := 0; i < t.NumFields(); i++ {
1483 ctx.see(t.Field(i))
1484 if t.Field(i).Exported() {
1485 // (6.2) structs use exported fields
1486 ctx.use(t.Field(i), t, edgeExportedField)
1487 } else if t.Field(i).Name() == "_" {
1488 ctx.use(t.Field(i), t, edgeBlankField)
1489 } else if isNoCopyType(t.Field(i).Type()) {
1490 // (6.1) structs use fields of type NoCopy sentinel
1491 ctx.use(t.Field(i), t, edgeNoCopySentinel)
1492 } else if parent == nil {
1493 // (11.1) anonymous struct types use all their fields.
1494 ctx.use(t.Field(i), t, edgeAnonymousStruct)
1495 }
1496 if t.Field(i).Anonymous() {
1497 // (e3) exported identifiers aren't automatically used.
1498 if !g.wholeProgram {
1499 // does the embedded field contribute exported methods to the method set?
1500 T := t.Field(i).Type()
1501 if _, ok := T.Underlying().(*types.Pointer); !ok {
1502 // An embedded field is addressable, so check
1503 // the pointer type to get the full method set
1504 T = types.NewPointer(T)
1505 }
1506 ms := ctx.pkg.SSA.Prog.MethodSets.MethodSet(T)
1507 for j := 0; j < ms.Len(); j++ {
1508 if ms.At(j).Obj().Exported() {
1509 // (6.4) structs use embedded fields that have exported methods (recursively)
1510 ctx.use(t.Field(i), t, edgeExtendsExportedMethodSet)
1511 break
1512 }
1513 }
1514 }
1515
1516 seen := map[*types.Struct]struct{}{}
1517 var hasExportedField func(t types.Type) bool
1518 hasExportedField = func(T types.Type) bool {
1519 t, ok := lintdsl.Dereference(T).Underlying().(*types.Struct)
1520 if !ok {
1521 return false
1522 }
1523 if _, ok := seen[t]; ok {
1524 return false
1525 }
1526 seen[t] = struct{}{}
1527 for i := 0; i < t.NumFields(); i++ {
1528 field := t.Field(i)
1529 if field.Exported() {
1530 return true
1531 }
1532 if field.Embedded() && hasExportedField(field.Type()) {
1533 return true
1534 }
1535 }
1536 return false
1537 }
1538 // does the embedded field contribute exported fields?
1539 if hasExportedField(t.Field(i).Type()) {
1540 // (6.5) structs use embedded structs that have exported fields (recursively)
1541 ctx.use(t.Field(i), t, edgeExtendsExportedFields)
1542 }
1543
1544 }
1545 g.variable(ctx, t.Field(i))
1546 }
1547 case *types.Basic:
1548 // Nothing to do
1549 case *types.Named:
1550 // (9.3) types use their underlying and element types
1551 ctx.seeAndUse(t.Underlying(), t, edgeUnderlyingType)
1552 ctx.seeAndUse(t.Obj(), t, edgeTypeName)
1553 ctx.seeAndUse(t, t.Obj(), edgeNamedType)
1554
1555 // (2.4) named types use the pointer type
1556 if _, ok := t.Underlying().(*types.Interface); !ok && t.NumMethods() > 0 {
1557 ctx.seeAndUse(types.NewPointer(t), t, edgePointerType)
1558 }
1559
1560 for i := 0; i < t.NumMethods(); i++ {
1561 ctx.see(t.Method(i))
1562 // don't use trackExportedIdentifier here, we care about
1563 // all exported methods, even in package main or in tests.
1564 if t.Method(i).Exported() && !g.wholeProgram {
1565 // (2.1) named types use exported methods
1566 ctx.use(t.Method(i), t, edgeExportedMethod)
1567 }
1568 g.function(ctx, ctx.pkg.SSA.Prog.FuncValue(t.Method(i)))
1569 }
1570
1571 g.typ(ctx, t.Underlying(), t)
1572 case *types.Slice:
1573 // (9.3) types use their underlying and element types
1574 ctx.seeAndUse(t.Elem(), t, edgeElementType)
1575 g.typ(ctx, t.Elem(), nil)
1576 case *types.Map:
1577 // (9.3) types use their underlying and element types
1578 ctx.seeAndUse(t.Elem(), t, edgeElementType)
1579 // (9.3) types use their underlying and element types
1580 ctx.seeAndUse(t.Key(), t, edgeKeyType)
1581 g.typ(ctx, t.Elem(), nil)
1582 g.typ(ctx, t.Key(), nil)
1583 case *types.Signature:
1584 g.signature(ctx, t, nil)
1585 case *types.Interface:
1586 for i := 0; i < t.NumMethods(); i++ {
1587 m := t.Method(i)
1588 // (8.3) All interface methods are marked as used
1589 ctx.seeAndUse(m, t, edgeInterfaceMethod)
1590 ctx.seeAndUse(m.Type().(*types.Signature), m, edgeSignature)
1591 g.signature(ctx, m.Type().(*types.Signature), nil)
1592 }
1593 for i := 0; i < t.NumEmbeddeds(); i++ {
1594 tt := t.EmbeddedType(i)
1595 // (8.4) All embedded interfaces are marked as used
1596 ctx.seeAndUse(tt, t, edgeEmbeddedInterface)
1597 }
1598 case *types.Array:
1599 // (9.3) types use their underlying and element types
1600 ctx.seeAndUse(t.Elem(), t, edgeElementType)
1601 g.typ(ctx, t.Elem(), nil)
1602 case *types.Pointer:
1603 // (9.3) types use their underlying and element types
1604 ctx.seeAndUse(t.Elem(), t, edgeElementType)
1605 g.typ(ctx, t.Elem(), nil)
1606 case *types.Chan:
1607 // (9.3) types use their underlying and element types
1608 ctx.seeAndUse(t.Elem(), t, edgeElementType)
1609 g.typ(ctx, t.Elem(), nil)
1610 case *types.Tuple:
1611 for i := 0; i < t.Len(); i++ {
1612 // (9.3) types use their underlying and element types
1613 ctx.seeAndUse(t.At(i).Type(), t, edgeTupleElement|edgeType)
1614 g.typ(ctx, t.At(i).Type(), nil)
1615 }
1616 default:
1617 panic(fmt.Sprintf("unreachable: %T", t))
1618 }
1619}
1620
1621func (g *Graph) variable(ctx *context, v *types.Var) {
1622 // (9.2) variables use their types
1623 ctx.seeAndUse(v.Type(), v, edgeType)
1624 g.typ(ctx, v.Type(), nil)
1625}
1626
1627func (g *Graph) signature(ctx *context, sig *types.Signature, fn types.Object) {
1628 var user interface{} = fn
1629 if fn == nil {
1630 user = sig
1631 ctx.see(sig)
1632 }
1633 if sig.Recv() != nil {
1634 ctx.seeAndUse(sig.Recv().Type(), user, edgeReceiver|edgeType)
1635 g.typ(ctx, sig.Recv().Type(), nil)
1636 }
1637 for i := 0; i < sig.Params().Len(); i++ {
1638 param := sig.Params().At(i)
1639 ctx.seeAndUse(param.Type(), user, edgeFunctionArgument|edgeType)
1640 g.typ(ctx, param.Type(), nil)
1641 }
1642 for i := 0; i < sig.Results().Len(); i++ {
1643 param := sig.Results().At(i)
1644 ctx.seeAndUse(param.Type(), user, edgeFunctionResult|edgeType)
1645 g.typ(ctx, param.Type(), nil)
1646 }
1647}
1648
1649func (g *Graph) instructions(ctx *context, fn *ssa.Function) {
1650 fnObj := owningObject(fn)
1651 for _, b := range fn.Blocks {
1652 for _, instr := range b.Instrs {
1653 ops := instr.Operands(nil)
1654 switch instr.(type) {
1655 case *ssa.Store:
1656 // (9.7) variable _reads_ use variables, writes do not
1657 ops = ops[1:]
1658 case *ssa.DebugRef:
1659 ops = nil
1660 }
1661 for _, arg := range ops {
1662 walkPhi(*arg, func(v ssa.Value) {
1663 switch v := v.(type) {
1664 case *ssa.Function:
1665 // (4.3) functions use closures and bound methods.
1666 // (4.5) functions use functions they call
1667 // (9.5) instructions use their operands
1668 // (4.4) functions use functions they return. we assume that someone else will call the returned function
1669 if owningObject(v) != nil {
1670 ctx.seeAndUse(owningObject(v), fnObj, edgeInstructionOperand)
1671 }
1672 g.function(ctx, v)
1673 case *ssa.Const:
1674 // (9.6) instructions use their operands' types
1675 ctx.seeAndUse(v.Type(), fnObj, edgeType)
1676 g.typ(ctx, v.Type(), nil)
1677 case *ssa.Global:
1678 if v.Object() != nil {
1679 // (9.5) instructions use their operands
1680 ctx.seeAndUse(v.Object(), fnObj, edgeInstructionOperand)
1681 }
1682 }
1683 })
1684 }
1685 if v, ok := instr.(ssa.Value); ok {
1686 if _, ok := v.(*ssa.Range); !ok {
1687 // See https://github.com/golang/go/issues/19670
1688
1689 // (4.8) instructions use their types
1690 // (9.4) conversions use the type they convert to
1691 ctx.seeAndUse(v.Type(), fnObj, edgeType)
1692 g.typ(ctx, v.Type(), nil)
1693 }
1694 }
1695 switch instr := instr.(type) {
1696 case *ssa.Field:
1697 st := instr.X.Type().Underlying().(*types.Struct)
1698 field := st.Field(instr.Field)
1699 // (4.7) functions use fields they access
1700 ctx.seeAndUse(field, fnObj, edgeFieldAccess)
1701 case *ssa.FieldAddr:
1702 st := lintdsl.Dereference(instr.X.Type()).Underlying().(*types.Struct)
1703 field := st.Field(instr.Field)
1704 // (4.7) functions use fields they access
1705 ctx.seeAndUse(field, fnObj, edgeFieldAccess)
1706 case *ssa.Store:
1707 // nothing to do, handled generically by operands
1708 case *ssa.Call:
1709 c := instr.Common()
1710 if !c.IsInvoke() {
1711 // handled generically as an instruction operand
1712
1713 if g.wholeProgram {
1714 // (e3) special case known reflection-based method callers
1715 switch lintdsl.CallName(c) {
1716 case "net/rpc.Register", "net/rpc.RegisterName", "(*net/rpc.Server).Register", "(*net/rpc.Server).RegisterName":
1717 var arg ssa.Value
1718 switch lintdsl.CallName(c) {
1719 case "net/rpc.Register":
1720 arg = c.Args[0]
1721 case "net/rpc.RegisterName":
1722 arg = c.Args[1]
1723 case "(*net/rpc.Server).Register":
1724 arg = c.Args[1]
1725 case "(*net/rpc.Server).RegisterName":
1726 arg = c.Args[2]
1727 }
1728 walkPhi(arg, func(v ssa.Value) {
1729 if v, ok := v.(*ssa.MakeInterface); ok {
1730 walkPhi(v.X, func(vv ssa.Value) {
1731 ms := ctx.pkg.SSA.Prog.MethodSets.MethodSet(vv.Type())
1732 for i := 0; i < ms.Len(); i++ {
1733 if ms.At(i).Obj().Exported() {
1734 g.useMethod(ctx, vv.Type(), ms.At(i), fnObj, edgeNetRPCRegister)
1735 }
1736 }
1737 })
1738 }
1739 })
1740 }
1741 }
1742 } else {
1743 // (4.5) functions use functions/interface methods they call
1744 ctx.seeAndUse(c.Method, fnObj, edgeInterfaceCall)
1745 }
1746 case *ssa.Return:
1747 // nothing to do, handled generically by operands
1748 case *ssa.ChangeType:
1749 // conversion type handled generically
1750
1751 s1, ok1 := lintdsl.Dereference(instr.Type()).Underlying().(*types.Struct)
1752 s2, ok2 := lintdsl.Dereference(instr.X.Type()).Underlying().(*types.Struct)
1753 if ok1 && ok2 {
1754 // Converting between two structs. The fields are
1755 // relevant for the conversion, but only if the
1756 // fields are also used outside of the conversion.
1757 // Mark fields as used by each other.
1758
1759 assert(s1.NumFields() == s2.NumFields())
1760 for i := 0; i < s1.NumFields(); i++ {
1761 ctx.see(s1.Field(i))
1762 ctx.see(s2.Field(i))
1763 // (5.1) when converting between two equivalent structs, the fields in
1764 // either struct use each other. the fields are relevant for the
1765 // conversion, but only if the fields are also accessed outside the
1766 // conversion.
1767 ctx.seeAndUse(s1.Field(i), s2.Field(i), edgeStructConversion)
1768 ctx.seeAndUse(s2.Field(i), s1.Field(i), edgeStructConversion)
1769 }
1770 }
1771 case *ssa.MakeInterface:
1772 // nothing to do, handled generically by operands
1773 case *ssa.Slice:
1774 // nothing to do, handled generically by operands
1775 case *ssa.RunDefers:
1776 // nothing to do, the deferred functions are already marked use by defering them.
1777 case *ssa.Convert:
1778 // to unsafe.Pointer
1779 if typ, ok := instr.Type().(*types.Basic); ok && typ.Kind() == types.UnsafePointer {
1780 if ptr, ok := instr.X.Type().Underlying().(*types.Pointer); ok {
1781 if st, ok := ptr.Elem().Underlying().(*types.Struct); ok {
1782 for i := 0; i < st.NumFields(); i++ {
1783 // (5.2) when converting to or from unsafe.Pointer, mark all fields as used.
1784 ctx.seeAndUse(st.Field(i), fnObj, edgeUnsafeConversion)
1785 }
1786 }
1787 }
1788 }
1789 // from unsafe.Pointer
1790 if typ, ok := instr.X.Type().(*types.Basic); ok && typ.Kind() == types.UnsafePointer {
1791 if ptr, ok := instr.Type().Underlying().(*types.Pointer); ok {
1792 if st, ok := ptr.Elem().Underlying().(*types.Struct); ok {
1793 for i := 0; i < st.NumFields(); i++ {
1794 // (5.2) when converting to or from unsafe.Pointer, mark all fields as used.
1795 ctx.seeAndUse(st.Field(i), fnObj, edgeUnsafeConversion)
1796 }
1797 }
1798 }
1799 }
1800 case *ssa.TypeAssert:
1801 // nothing to do, handled generically by instruction
1802 // type (possibly a tuple, which contains the asserted
1803 // to type). redundantly handled by the type of
1804 // ssa.Extract, too
1805 case *ssa.MakeClosure:
1806 // nothing to do, handled generically by operands
1807 case *ssa.Alloc:
1808 // nothing to do
1809 case *ssa.UnOp:
1810 // nothing to do
1811 case *ssa.BinOp:
1812 // nothing to do
1813 case *ssa.If:
1814 // nothing to do
1815 case *ssa.Jump:
1816 // nothing to do
1817 case *ssa.IndexAddr:
1818 // nothing to do
1819 case *ssa.Extract:
1820 // nothing to do
1821 case *ssa.Panic:
1822 // nothing to do
1823 case *ssa.DebugRef:
1824 // nothing to do
1825 case *ssa.BlankStore:
1826 // nothing to do
1827 case *ssa.Phi:
1828 // nothing to do
1829 case *ssa.MakeMap:
1830 // nothing to do
1831 case *ssa.MapUpdate:
1832 // nothing to do
1833 case *ssa.Lookup:
1834 // nothing to do
1835 case *ssa.MakeSlice:
1836 // nothing to do
1837 case *ssa.Send:
1838 // nothing to do
1839 case *ssa.MakeChan:
1840 // nothing to do
1841 case *ssa.Range:
1842 // nothing to do
1843 case *ssa.Next:
1844 // nothing to do
1845 case *ssa.Index:
1846 // nothing to do
1847 case *ssa.Select:
1848 // nothing to do
1849 case *ssa.ChangeInterface:
1850 // nothing to do
1851 case *ssa.Go:
1852 // nothing to do, handled generically by operands
1853 case *ssa.Defer:
1854 // nothing to do, handled generically by operands
1855 default:
1856 panic(fmt.Sprintf("unreachable: %T", instr))
1857 }
1858 }
1859 }
1860}
1861
1862// isNoCopyType reports whether a type represents the NoCopy sentinel
1863// type. The NoCopy type is a named struct with no fields and exactly
1864// one method `func Lock()` that is empty.
1865//
1866// FIXME(dh): currently we're not checking that the function body is
1867// empty.
1868func isNoCopyType(typ types.Type) bool {
1869 st, ok := typ.Underlying().(*types.Struct)
1870 if !ok {
1871 return false
1872 }
1873 if st.NumFields() != 0 {
1874 return false
1875 }
1876
1877 named, ok := typ.(*types.Named)
1878 if !ok {
1879 return false
1880 }
1881 if named.NumMethods() != 1 {
1882 return false
1883 }
1884 meth := named.Method(0)
1885 if meth.Name() != "Lock" {
1886 return false
1887 }
1888 sig := meth.Type().(*types.Signature)
1889 if sig.Params().Len() != 0 || sig.Results().Len() != 0 {
1890 return false
1891 }
1892 return true
1893}
1894
1895func walkPhi(v ssa.Value, fn func(v ssa.Value)) {
1896 phi, ok := v.(*ssa.Phi)
1897 if !ok {
1898 fn(v)
1899 return
1900 }
1901
1902 seen := map[ssa.Value]struct{}{}
1903 var impl func(v *ssa.Phi)
1904 impl = func(v *ssa.Phi) {
1905 if _, ok := seen[v]; ok {
1906 return
1907 }
1908 seen[v] = struct{}{}
1909 for _, e := range v.Edges {
1910 if ev, ok := e.(*ssa.Phi); ok {
1911 impl(ev)
1912 } else {
1913 fn(e)
1914 }
1915 }
1916 }
1917 impl(phi)
1918}
1919
1920func interfacesFromExportData(pkg *types.Package) []*types.Interface {
1921 var out []*types.Interface
1922 scope := pkg.Scope()
1923 for _, name := range scope.Names() {
1924 obj := scope.Lookup(name)
1925 out = append(out, interfacesFromObject(obj)...)
1926 }
1927 return out
1928}
1929
1930func interfacesFromObject(obj types.Object) []*types.Interface {
1931 var out []*types.Interface
1932 switch obj := obj.(type) {
1933 case *types.Func:
1934 sig := obj.Type().(*types.Signature)
1935 for i := 0; i < sig.Results().Len(); i++ {
1936 out = append(out, interfacesFromObject(sig.Results().At(i))...)
1937 }
1938 for i := 0; i < sig.Params().Len(); i++ {
1939 out = append(out, interfacesFromObject(sig.Params().At(i))...)
1940 }
1941 case *types.TypeName:
1942 if named, ok := obj.Type().(*types.Named); ok {
1943 for i := 0; i < named.NumMethods(); i++ {
1944 out = append(out, interfacesFromObject(named.Method(i))...)
1945 }
1946
1947 if iface, ok := named.Underlying().(*types.Interface); ok {
1948 out = append(out, iface)
1949 }
1950 }
1951 case *types.Var:
1952 // No call to Underlying here. We want unnamed interfaces
1953 // only. Named interfaces are gotten directly from the
1954 // package's scope.
1955 if iface, ok := obj.Type().(*types.Interface); ok {
1956 out = append(out, iface)
1957 }
1958 case *types.Const:
1959 case *types.Builtin:
1960 default:
1961 panic(fmt.Sprintf("unhandled type: %T", obj))
1962 }
1963 return out
1964}
diff --git a/vendor/honnef.co/go/tools/version/buildinfo.go b/vendor/honnef.co/go/tools/version/buildinfo.go
new file mode 100644
index 0000000..b6034bb
--- /dev/null
+++ b/vendor/honnef.co/go/tools/version/buildinfo.go
@@ -0,0 +1,46 @@
1// +build go1.12
2
3package version
4
5import (
6 "fmt"
7 "runtime/debug"
8)
9
10func printBuildInfo() {
11 if info, ok := debug.ReadBuildInfo(); ok {
12 fmt.Println("Main module:")
13 printModule(&info.Main)
14 fmt.Println("Dependencies:")
15 for _, dep := range info.Deps {
16 printModule(dep)
17 }
18 } else {
19 fmt.Println("Built without Go modules")
20 }
21}
22
23func buildInfoVersion() (string, bool) {
24 info, ok := debug.ReadBuildInfo()
25 if !ok {
26 return "", false
27 }
28 if info.Main.Version == "(devel)" {
29 return "", false
30 }
31 return info.Main.Version, true
32}
33
34func printModule(m *debug.Module) {
35 fmt.Printf("\t%s", m.Path)
36 if m.Version != "(devel)" {
37 fmt.Printf("@%s", m.Version)
38 }
39 if m.Sum != "" {
40 fmt.Printf(" (sum: %s)", m.Sum)
41 }
42 if m.Replace != nil {
43 fmt.Printf(" (replace: %s)", m.Replace.Path)
44 }
45 fmt.Println()
46}
diff --git a/vendor/honnef.co/go/tools/version/buildinfo111.go b/vendor/honnef.co/go/tools/version/buildinfo111.go
new file mode 100644
index 0000000..06aae1e
--- /dev/null
+++ b/vendor/honnef.co/go/tools/version/buildinfo111.go
@@ -0,0 +1,6 @@
1// +build !go1.12
2
3package version
4
5func printBuildInfo() {}
6func buildInfoVersion() (string, bool) { return "", false }
diff --git a/vendor/honnef.co/go/tools/version/version.go b/vendor/honnef.co/go/tools/version/version.go
new file mode 100644
index 0000000..468e8ef
--- /dev/null
+++ b/vendor/honnef.co/go/tools/version/version.go
@@ -0,0 +1,42 @@
1package version
2
3import (
4 "fmt"
5 "os"
6 "path/filepath"
7 "runtime"
8)
9
10const Version = "2019.2.3"
11
12// version returns a version descriptor and reports whether the
13// version is a known release.
14func version() (string, bool) {
15 if Version != "devel" {
16 return Version, true
17 }
18 v, ok := buildInfoVersion()
19 if ok {
20 return v, false
21 }
22 return "devel", false
23}
24
25func Print() {
26 v, release := version()
27
28 if release {
29 fmt.Printf("%s %s\n", filepath.Base(os.Args[0]), v)
30 } else if v == "devel" {
31 fmt.Printf("%s (no version)\n", filepath.Base(os.Args[0]))
32 } else {
33 fmt.Printf("%s (devel, %s)\n", filepath.Base(os.Args[0]), v)
34 }
35}
36
37func Verbose() {
38 Print()
39 fmt.Println()
40 fmt.Println("Compiled with Go version:", runtime.Version())
41 printBuildInfo()
42}
diff --git a/vendor/modules.txt b/vendor/modules.txt
index 760eaac..ae4fb57 100644
--- a/vendor/modules.txt
+++ b/vendor/modules.txt
@@ -1,52 +1,58 @@
1# github.com/BurntSushi/toml v0.3.1
2github.com/BurntSushi/toml
1# github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751 3# github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751
2github.com/alecthomas/template 4github.com/alecthomas/template
3github.com/alecthomas/template/parse 5github.com/alecthomas/template/parse
4# github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4 6# github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d
5github.com/alecthomas/units 7github.com/alecthomas/units
6# github.com/beevik/ntp v0.2.0 8# github.com/beevik/ntp v0.2.0
7github.com/beevik/ntp 9github.com/beevik/ntp
8# github.com/beorn7/perks v1.0.0 10# github.com/beorn7/perks v1.0.1
9github.com/beorn7/perks/quantile 11github.com/beorn7/perks/quantile
10# github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e 12# github.com/cespare/xxhash/v2 v2.1.1
13github.com/cespare/xxhash/v2
14# github.com/coreos/go-systemd v0.0.0-20191104093116-d3cd4ed1dbcf
11github.com/coreos/go-systemd/dbus 15github.com/coreos/go-systemd/dbus
12# github.com/ema/qdisc v0.0.0-20190904071900-b82c76788043 16# github.com/ema/qdisc v0.0.0-20190904071900-b82c76788043
13github.com/ema/qdisc 17github.com/ema/qdisc
14# github.com/go-kit/kit v0.9.0 18# github.com/go-kit/kit v0.10.0
15github.com/go-kit/kit/log 19github.com/go-kit/kit/log
16github.com/go-kit/kit/log/level 20github.com/go-kit/kit/log/level
17# github.com/go-logfmt/logfmt v0.4.0 21# github.com/go-logfmt/logfmt v0.5.0
18github.com/go-logfmt/logfmt 22github.com/go-logfmt/logfmt
19# github.com/godbus/dbus v0.0.0-20190402143921-271e53dc4968 23# github.com/godbus/dbus v0.0.0-20190402143921-271e53dc4968
20github.com/godbus/dbus 24github.com/godbus/dbus
21# github.com/golang/protobuf v1.3.2 25# github.com/golang/protobuf v1.3.3
22github.com/golang/protobuf/proto 26github.com/golang/protobuf/proto
23# github.com/hodgesds/perf-utils v0.0.7 27github.com/golang/protobuf/ptypes
28github.com/golang/protobuf/ptypes/any
29github.com/golang/protobuf/ptypes/duration
30github.com/golang/protobuf/ptypes/timestamp
31# github.com/hodgesds/perf-utils v0.0.8
24github.com/hodgesds/perf-utils 32github.com/hodgesds/perf-utils
25# github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515
26github.com/kr/logfmt
27# github.com/lufia/iostat v0.0.0-20170605150913-9f7362b77ad3 33# github.com/lufia/iostat v0.0.0-20170605150913-9f7362b77ad3
28github.com/lufia/iostat 34github.com/lufia/iostat
29# github.com/mattn/go-xmlrpc v0.0.3 35# github.com/mattn/go-xmlrpc v0.0.3
30github.com/mattn/go-xmlrpc 36github.com/mattn/go-xmlrpc
31# github.com/matttproud/golang_protobuf_extensions v1.0.1 37# github.com/matttproud/golang_protobuf_extensions v1.0.1
32github.com/matttproud/golang_protobuf_extensions/pbutil 38github.com/matttproud/golang_protobuf_extensions/pbutil
33# github.com/mdlayher/genetlink v0.0.0-20190828143517-e35f2bf499b9 39# github.com/mdlayher/genetlink v1.0.0
34github.com/mdlayher/genetlink 40github.com/mdlayher/genetlink
35# github.com/mdlayher/netlink v0.0.0-20190828143259-340058475d09 41# github.com/mdlayher/netlink v1.1.0
36github.com/mdlayher/netlink 42github.com/mdlayher/netlink
37github.com/mdlayher/netlink/nlenc 43github.com/mdlayher/netlink/nlenc
38# github.com/mdlayher/wifi v0.0.0-20190303161829-b1436901ddee 44# github.com/mdlayher/wifi v0.0.0-20190303161829-b1436901ddee
39github.com/mdlayher/wifi 45github.com/mdlayher/wifi
40github.com/mdlayher/wifi/internal/nl80211 46github.com/mdlayher/wifi/internal/nl80211
41# github.com/pkg/errors v0.8.1 47# github.com/pkg/errors v0.9.1
42github.com/pkg/errors 48github.com/pkg/errors
43# github.com/prometheus/client_golang v1.0.0 49# github.com/prometheus/client_golang v1.4.1
44github.com/prometheus/client_golang/prometheus 50github.com/prometheus/client_golang/prometheus
45github.com/prometheus/client_golang/prometheus/internal 51github.com/prometheus/client_golang/prometheus/internal
46github.com/prometheus/client_golang/prometheus/promhttp 52github.com/prometheus/client_golang/prometheus/promhttp
47# github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90 53# github.com/prometheus/client_model v0.2.0
48github.com/prometheus/client_model/go 54github.com/prometheus/client_model/go
49# github.com/prometheus/common v0.7.0 55# github.com/prometheus/common v0.9.1
50github.com/prometheus/common/expfmt 56github.com/prometheus/common/expfmt
51github.com/prometheus/common/internal/bitbucket.org/ww/goautoneg 57github.com/prometheus/common/internal/bitbucket.org/ww/goautoneg
52github.com/prometheus/common/model 58github.com/prometheus/common/model
@@ -65,21 +71,65 @@ github.com/prometheus/procfs/xfs
65github.com/siebenmann/go-kstat 71github.com/siebenmann/go-kstat
66# github.com/soundcloud/go-runit v0.0.0-20150630195641-06ad41a06c4a 72# github.com/soundcloud/go-runit v0.0.0-20150630195641-06ad41a06c4a
67github.com/soundcloud/go-runit/runit 73github.com/soundcloud/go-runit/runit
68# go.uber.org/atomic v1.3.2 74# go.uber.org/atomic v1.5.1
69go.uber.org/atomic 75go.uber.org/atomic
70# go.uber.org/multierr v1.1.0 76# go.uber.org/multierr v1.4.0
71go.uber.org/multierr 77go.uber.org/multierr
72# golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297 78# go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee
79go.uber.org/tools/update-license
80# golang.org/x/lint v0.0.0-20200130185559-910be7a94367
81golang.org/x/lint
82golang.org/x/lint/golint
83# golang.org/x/net v0.0.0-20200202094626-16171245cfb2
73golang.org/x/net/bpf 84golang.org/x/net/bpf
74golang.org/x/net/internal/iana 85golang.org/x/net/internal/iana
75golang.org/x/net/internal/socket 86golang.org/x/net/internal/socket
76golang.org/x/net/ipv4 87golang.org/x/net/ipv4
77# golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e 88# golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e
78golang.org/x/sync/errgroup 89golang.org/x/sync/errgroup
79# golang.org/x/sys v0.0.0-20190902133755-9109b7679e13 90# golang.org/x/sys v0.0.0-20200217220822-9197077df867
80golang.org/x/sys/unix 91golang.org/x/sys/unix
81golang.org/x/sys/windows 92golang.org/x/sys/windows
93# golang.org/x/tools v0.0.0-20200216192241-b320d3a0f5a2
94golang.org/x/tools/go/analysis
95golang.org/x/tools/go/analysis/passes/inspect
96golang.org/x/tools/go/ast/astutil
97golang.org/x/tools/go/ast/inspector
98golang.org/x/tools/go/buildutil
99golang.org/x/tools/go/gcexportdata
100golang.org/x/tools/go/internal/gcimporter
101golang.org/x/tools/go/internal/packagesdriver
102golang.org/x/tools/go/packages
103golang.org/x/tools/go/types/objectpath
104golang.org/x/tools/go/types/typeutil
105golang.org/x/tools/internal/packagesinternal
82# gopkg.in/alecthomas/kingpin.v2 v2.2.6 106# gopkg.in/alecthomas/kingpin.v2 v2.2.6
83gopkg.in/alecthomas/kingpin.v2 107gopkg.in/alecthomas/kingpin.v2
84# gopkg.in/yaml.v2 v2.2.2 108# gopkg.in/yaml.v2 v2.2.8
85gopkg.in/yaml.v2 109gopkg.in/yaml.v2
110# honnef.co/go/tools v0.0.1-2019.2.3
111honnef.co/go/tools/arg
112honnef.co/go/tools/cmd/staticcheck
113honnef.co/go/tools/config
114honnef.co/go/tools/deprecated
115honnef.co/go/tools/facts
116honnef.co/go/tools/functions
117honnef.co/go/tools/go/types/typeutil
118honnef.co/go/tools/internal/cache
119honnef.co/go/tools/internal/passes/buildssa
120honnef.co/go/tools/internal/renameio
121honnef.co/go/tools/internal/sharedcheck
122honnef.co/go/tools/lint
123honnef.co/go/tools/lint/lintdsl
124honnef.co/go/tools/lint/lintutil
125honnef.co/go/tools/lint/lintutil/format
126honnef.co/go/tools/loader
127honnef.co/go/tools/printf
128honnef.co/go/tools/simple
129honnef.co/go/tools/ssa
130honnef.co/go/tools/ssautil
131honnef.co/go/tools/staticcheck
132honnef.co/go/tools/staticcheck/vrp
133honnef.co/go/tools/stylecheck
134honnef.co/go/tools/unused
135honnef.co/go/tools/version