mirror of https://github.com/kubernetes/kops.git
commit
309dc9fc26
|
|
@ -16,7 +16,7 @@ jobs:
|
|||
- name: Set up go
|
||||
uses: actions/setup-go@v2
|
||||
with:
|
||||
go-version: 1.15.6
|
||||
go-version: 1.15.7
|
||||
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
|
|
@ -33,7 +33,7 @@ jobs:
|
|||
- name: Set up go
|
||||
uses: actions/setup-go@v2
|
||||
with:
|
||||
go-version: 1.15.6
|
||||
go-version: 1.15.7
|
||||
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
|
|
@ -50,7 +50,7 @@ jobs:
|
|||
- name: Set up go
|
||||
uses: actions/setup-go@v2
|
||||
with:
|
||||
go-version: 1.15.6
|
||||
go-version: 1.15.7
|
||||
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
|
|
@ -67,7 +67,7 @@ jobs:
|
|||
- name: Set up go
|
||||
uses: actions/setup-go@v2
|
||||
with:
|
||||
go-version: 1.15.6
|
||||
go-version: 1.15.7
|
||||
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@ load("@io_bazel_rules_go//go:deps.bzl", "go_register_toolchains", "go_rules_depe
|
|||
go_rules_dependencies()
|
||||
|
||||
go_register_toolchains(
|
||||
go_version = "1.15.6",
|
||||
go_version = "1.15.7",
|
||||
)
|
||||
|
||||
load("@bazel_gazelle//:deps.bzl", "gazelle_dependencies", "go_repository")
|
||||
|
|
|
|||
10
go.mod
10
go.mod
|
|
@ -70,7 +70,7 @@ require (
|
|||
github.com/go-ini/ini v1.62.0
|
||||
github.com/go-logr/logr v0.2.1-0.20200730175230-ee2de8da5be6
|
||||
github.com/gogo/protobuf v1.3.1
|
||||
github.com/google/go-cmp v0.5.2
|
||||
github.com/google/go-cmp v0.5.4
|
||||
github.com/google/uuid v1.1.2
|
||||
github.com/gophercloud/gophercloud v0.15.0
|
||||
github.com/hashicorp/hcl/v2 v2.7.0
|
||||
|
|
@ -81,7 +81,7 @@ require (
|
|||
github.com/pelletier/go-toml v1.8.1
|
||||
github.com/pkg/sftp v1.12.0
|
||||
github.com/prometheus/client_golang v1.7.1
|
||||
github.com/sergi/go-diff v1.0.0
|
||||
github.com/sergi/go-diff v1.1.0
|
||||
github.com/spf13/cobra v1.1.1
|
||||
github.com/spf13/pflag v1.0.5
|
||||
github.com/spf13/viper v1.7.0
|
||||
|
|
@ -91,15 +91,17 @@ require (
|
|||
github.com/zclconf/go-cty v1.3.1
|
||||
go.etcd.io/etcd v0.5.0-alpha.5.0.20200910180754-dd1b699fc489
|
||||
golang.org/x/crypto v0.0.0-20201208171446-5f87f3452ae9
|
||||
golang.org/x/mod v0.4.0 // indirect
|
||||
golang.org/x/net v0.0.0-20201110031124-69a78807bb2b
|
||||
golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d
|
||||
golang.org/x/sys v0.0.0-20201214210602-f9fddec55a1e
|
||||
golang.org/x/tools v0.0.0-20200626171337-aa94e735be7f // indirect
|
||||
golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4
|
||||
golang.org/x/tools v0.1.0 // indirect
|
||||
google.golang.org/api v0.22.0
|
||||
gopkg.in/gcfg.v1 v1.2.3
|
||||
gopkg.in/inf.v0 v0.9.1
|
||||
gopkg.in/yaml.v2 v2.3.0
|
||||
helm.sh/helm/v3 v3.4.2
|
||||
honnef.co/go/tools v0.0.1-2020.1.6 // indirect
|
||||
k8s.io/api v0.20.0
|
||||
k8s.io/apimachinery v0.20.0
|
||||
k8s.io/cli-runtime v0.20.0
|
||||
|
|
|
|||
21
go.sum
21
go.sum
|
|
@ -477,6 +477,8 @@ github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/
|
|||
github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
|
||||
github.com/google/go-cmp v0.5.2 h1:X2ev0eStA3AbceY54o37/0PQ/UWqKEiiO2dKL5OPaFM=
|
||||
github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
|
||||
github.com/google/go-cmp v0.5.4 h1:L8R9j+yAqZuZjsqh/z+F1NCffTKKLShY6zXTItVIZ8M=
|
||||
github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
|
||||
github.com/google/go-querystring v1.0.0 h1:Xkwi/a1rcvNg1PPYe5vI8GbeBY/jrVuDX5ASuANWTrk=
|
||||
github.com/google/go-querystring v1.0.0/go.mod h1:odCYkC5MyYFN7vkCjXpyrEuKhc/BUO6wN/zVPAxq5ck=
|
||||
github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
|
||||
|
|
@ -909,6 +911,8 @@ github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg
|
|||
github.com/seccomp/libseccomp-golang v0.9.1/go.mod h1:GbW5+tmTXfcxTToHLXlScSlAvWlF4P2Ca7zGrPiEpWo=
|
||||
github.com/sergi/go-diff v1.0.0 h1:Kpca3qRNrduNnOQeazBd0ysaKrUJiIuISHxogkT9RPQ=
|
||||
github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo=
|
||||
github.com/sergi/go-diff v1.1.0 h1:we8PVUC3FE2uYfodKH/nBHMSetSfHDR6scGdBi+erh0=
|
||||
github.com/sergi/go-diff v1.1.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM=
|
||||
github.com/shurcooL/sanitized_anchor_name v1.0.0 h1:PdmoCO6wvbs+7yrJyMORt4/BmY5IYyJwS/kOiWx8mHo=
|
||||
github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc=
|
||||
github.com/sirupsen/logrus v1.0.4-0.20170822132746-89742aefa4b2/go.mod h1:pMByvHTf9Beacp5x1UXfOR9xyW/9antXMhjMPG0dEzc=
|
||||
|
|
@ -1003,6 +1007,7 @@ github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2 h1:eY9dn8+vbi4tKz5
|
|||
github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU=
|
||||
github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q=
|
||||
github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
|
||||
github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
|
||||
github.com/yvasiyarov/go-metrics v0.0.0-20140926110328-57bccd1ccd43/go.mod h1:aX5oPXxHm3bOH+xeAttToC8pqch2ScQN/JoXYupl6xs=
|
||||
github.com/yvasiyarov/gorelic v0.0.0-20141212073537-a9bba5b9ab50/go.mod h1:NUSPSUX/bi6SeDMUh6brw0nXpxHnc96TguQh0+r/ssA=
|
||||
github.com/yvasiyarov/newrelic_platform_go v0.0.0-20140908184405-b21fdbd4370f/go.mod h1:GlGEuHIJweS1mbCqG+7vt2nvWLzLLnRHbXz5JKd/Qbg=
|
||||
|
|
@ -1104,6 +1109,8 @@ golang.org/x/mod v0.1.1-0.20191107180719-034126e5016b/go.mod h1:QqPTAvyqsEbceGzB
|
|||
golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
|
||||
golang.org/x/mod v0.3.0 h1:RM4zey1++hCTbCVQfnWeKs9/IEsaBLA8vTkd0WVtmH4=
|
||||
golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
|
||||
golang.org/x/mod v0.4.0 h1:8pl+sMODzuvGJkmj2W4kZihvVb5mKm8pB/X44PIQHv8=
|
||||
golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
|
||||
golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||
golang.org/x/net v0.0.0-20180811021610-c39426892332/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||
golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||
|
|
@ -1142,6 +1149,7 @@ golang.org/x/net v0.0.0-20200301022130-244492dfa37a/go.mod h1:z5CRVTTTmAJ677TzLL
|
|||
golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
|
||||
golang.org/x/net v0.0.0-20200520004742-59133d7f0dd7/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
|
||||
golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA=
|
||||
golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
|
||||
golang.org/x/net v0.0.0-20201110031124-69a78807bb2b h1:uwuIcX0g4Yl1NC5XAz37xsr2lTtcqevgzYNVt49waME=
|
||||
golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
|
||||
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
|
||||
|
|
@ -1157,6 +1165,8 @@ golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJ
|
|||
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e h1:vcxGaoTs7kV8m5Np9uUNQin4BrLOthgV7252N8V+FwY=
|
||||
golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9 h1:SQFwaSi55rU7vdNs9Yr0Z324VNlrF+0wMqRXT4St8ck=
|
||||
golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||
golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||
golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||
|
|
@ -1219,8 +1229,8 @@ golang.org/x/sys v0.0.0-20200615200032-f1bc736245b1/go.mod h1:h1NjWce9XRLGQEsW7w
|
|||
golang.org/x/sys v0.0.0-20200622214017-ed371f2e16b4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20201112073958-5cba982894dd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20201214210602-f9fddec55a1e h1:AyodaIpKjppX+cBfTASF2E1US3H2JFBj920Ot3rtDjs=
|
||||
golang.org/x/sys v0.0.0-20201214210602-f9fddec55a1e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4 h1:myAQVi0cGEoqQVR5POX+8RR2mrocKqNN1hmeMqhX27k=
|
||||
golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/term v0.0.0-20201117132131-f5c789dd3221 h1:/ZHdbVpdR/jk3g30/d4yUL0JU9kksj8+F/bnQUVLGDM=
|
||||
golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw=
|
||||
golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
||||
|
|
@ -1284,10 +1294,11 @@ golang.org/x/tools v0.0.0-20200207183749-b753a1ba74fa/go.mod h1:TB2adYChydJhpapK
|
|||
golang.org/x/tools v0.0.0-20200212150539-ea181f53ac56/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
|
||||
golang.org/x/tools v0.0.0-20200224181240-023911ca70b2/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
|
||||
golang.org/x/tools v0.0.0-20200304193943-95d2e580d8eb/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw=
|
||||
golang.org/x/tools v0.0.0-20200410194907-79a7a3126eef/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
|
||||
golang.org/x/tools v0.0.0-20200505023115-26f46d2f7ef8/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
|
||||
golang.org/x/tools v0.0.0-20200616133436-c1934b75d054/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
|
||||
golang.org/x/tools v0.0.0-20200626171337-aa94e735be7f h1:JcoF/bowzCDI+MXu1yLqQGNO3ibqWsWq+Sk7pOT218w=
|
||||
golang.org/x/tools v0.0.0-20200626171337-aa94e735be7f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
|
||||
golang.org/x/tools v0.1.0 h1:po9/4sTYwZU9lPhi1tOrb4hCv3qrhiQ77LZfGa2OjwY=
|
||||
golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0=
|
||||
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||
|
|
@ -1435,6 +1446,8 @@ honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWh
|
|||
honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg=
|
||||
honnef.co/go/tools v0.0.1-2020.1.3 h1:sXmLre5bzIR6ypkjXCDI3jHPssRhc8KD/Ome589sc3U=
|
||||
honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k=
|
||||
honnef.co/go/tools v0.0.1-2020.1.6 h1:W18jzjh8mfPez+AwGLxmOImucz/IFjpNlrKVnaj2YVc=
|
||||
honnef.co/go/tools v0.0.1-2020.1.6/go.mod h1:pyyisuGw24ruLjrr1ddx39WE0y9OooInRzEYLhQB2YY=
|
||||
k8s.io/api v0.20.0 h1:WwrYoZNM1W1aQEbyl8HNG+oWGzLpZQBlcerS9BQw9yI=
|
||||
k8s.io/api v0.20.0/go.mod h1:HyLC5l5eoS/ygQYl1BXBgFzWNlkHiAuyNAbevIn+FKg=
|
||||
k8s.io/apiextensions-apiserver v0.20.0 h1:HmeP9mLET/HlIQ5gjP+1c20tgJrlshY5nUyIand3AVg=
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
// Copyright 2017, The Go Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style
|
||||
// license that can be found in the LICENSE.md file.
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
// Package cmp determines equality of values.
|
||||
//
|
||||
|
|
@ -100,8 +100,8 @@ func Equal(x, y interface{}, opts ...Option) bool {
|
|||
// same input values and options.
|
||||
//
|
||||
// The output is displayed as a literal in pseudo-Go syntax.
|
||||
// At the start of each line, a "-" prefix indicates an element removed from y,
|
||||
// a "+" prefix to indicates an element added to y, and the lack of a prefix
|
||||
// At the start of each line, a "-" prefix indicates an element removed from x,
|
||||
// a "+" prefix to indicates an element added from y, and the lack of a prefix
|
||||
// indicates an element common to both x and y. If possible, the output
|
||||
// uses fmt.Stringer.String or error.Error methods to produce more humanly
|
||||
// readable outputs. In such cases, the string is prefixed with either an
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
// Copyright 2017, The Go Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style
|
||||
// license that can be found in the LICENSE.md file.
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
// +build purego
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
// Copyright 2017, The Go Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style
|
||||
// license that can be found in the LICENSE.md file.
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
// +build !purego
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
// Copyright 2017, The Go Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style
|
||||
// license that can be found in the LICENSE.md file.
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
// +build !cmp_debug
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
// Copyright 2017, The Go Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style
|
||||
// license that can be found in the LICENSE.md file.
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
// +build cmp_debug
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
// Copyright 2017, The Go Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style
|
||||
// license that can be found in the LICENSE.md file.
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
// Package diff implements an algorithm for producing edit-scripts.
|
||||
// The edit-script is a sequence of operations needed to transform one list
|
||||
|
|
@ -119,7 +119,7 @@ func (r Result) Similar() bool {
|
|||
return r.NumSame+1 >= r.NumDiff
|
||||
}
|
||||
|
||||
var randInt = rand.New(rand.NewSource(time.Now().Unix())).Intn(2)
|
||||
var randBool = rand.New(rand.NewSource(time.Now().Unix())).Intn(2) == 0
|
||||
|
||||
// Difference reports whether two lists of lengths nx and ny are equal
|
||||
// given the definition of equality provided as f.
|
||||
|
|
@ -168,17 +168,6 @@ func Difference(nx, ny int, f EqualFunc) (es EditScript) {
|
|||
// A vertical edge is equivalent to inserting a symbol from list Y.
|
||||
// A diagonal edge is equivalent to a matching symbol between both X and Y.
|
||||
|
||||
// To ensure flexibility in changing the algorithm in the future,
|
||||
// introduce some degree of deliberate instability.
|
||||
// This is achieved by fiddling the zigzag iterator to start searching
|
||||
// the graph starting from the bottom-right versus than the top-left.
|
||||
// The result may differ depending on the starting search location,
|
||||
// but still produces a valid edit script.
|
||||
zigzagInit := randInt // either 0 or 1
|
||||
if flags.Deterministic {
|
||||
zigzagInit = 0
|
||||
}
|
||||
|
||||
// Invariants:
|
||||
// • 0 ≤ fwdPath.X ≤ (fwdFrontier.X, revFrontier.X) ≤ revPath.X ≤ nx
|
||||
// • 0 ≤ fwdPath.Y ≤ (fwdFrontier.Y, revFrontier.Y) ≤ revPath.Y ≤ ny
|
||||
|
|
@ -197,6 +186,11 @@ func Difference(nx, ny int, f EqualFunc) (es EditScript) {
|
|||
// approximately the square-root of the search budget.
|
||||
searchBudget := 4 * (nx + ny) // O(n)
|
||||
|
||||
// Running the tests with the "cmp_debug" build tag prints a visualization
|
||||
// of the algorithm running in real-time. This is educational for
|
||||
// understanding how the algorithm works. See debug_enable.go.
|
||||
f = debug.Begin(nx, ny, f, &fwdPath.es, &revPath.es)
|
||||
|
||||
// The algorithm below is a greedy, meet-in-the-middle algorithm for
|
||||
// computing sub-optimal edit-scripts between two lists.
|
||||
//
|
||||
|
|
@ -214,22 +208,28 @@ func Difference(nx, ny int, f EqualFunc) (es EditScript) {
|
|||
// frontier towards the opposite corner.
|
||||
// • This algorithm terminates when either the X coordinates or the
|
||||
// Y coordinates of the forward and reverse frontier points ever intersect.
|
||||
//
|
||||
|
||||
// This algorithm is correct even if searching only in the forward direction
|
||||
// or in the reverse direction. We do both because it is commonly observed
|
||||
// that two lists commonly differ because elements were added to the front
|
||||
// or end of the other list.
|
||||
//
|
||||
// Running the tests with the "cmp_debug" build tag prints a visualization
|
||||
// of the algorithm running in real-time. This is educational for
|
||||
// understanding how the algorithm works. See debug_enable.go.
|
||||
f = debug.Begin(nx, ny, f, &fwdPath.es, &revPath.es)
|
||||
for {
|
||||
// Non-deterministically start with either the forward or reverse direction
|
||||
// to introduce some deliberate instability so that we have the flexibility
|
||||
// to change this algorithm in the future.
|
||||
if flags.Deterministic || randBool {
|
||||
goto forwardSearch
|
||||
} else {
|
||||
goto reverseSearch
|
||||
}
|
||||
|
||||
forwardSearch:
|
||||
{
|
||||
// Forward search from the beginning.
|
||||
if fwdFrontier.X >= revFrontier.X || fwdFrontier.Y >= revFrontier.Y || searchBudget == 0 {
|
||||
break
|
||||
goto finishSearch
|
||||
}
|
||||
for stop1, stop2, i := false, false, zigzagInit; !(stop1 && stop2) && searchBudget > 0; i++ {
|
||||
for stop1, stop2, i := false, false, 0; !(stop1 && stop2) && searchBudget > 0; i++ {
|
||||
// Search in a diagonal pattern for a match.
|
||||
z := zigzag(i)
|
||||
p := point{fwdFrontier.X + z, fwdFrontier.Y - z}
|
||||
|
|
@ -262,10 +262,14 @@ func Difference(nx, ny int, f EqualFunc) (es EditScript) {
|
|||
} else {
|
||||
fwdFrontier.Y++
|
||||
}
|
||||
goto reverseSearch
|
||||
}
|
||||
|
||||
reverseSearch:
|
||||
{
|
||||
// Reverse search from the end.
|
||||
if fwdFrontier.X >= revFrontier.X || fwdFrontier.Y >= revFrontier.Y || searchBudget == 0 {
|
||||
break
|
||||
goto finishSearch
|
||||
}
|
||||
for stop1, stop2, i := false, false, 0; !(stop1 && stop2) && searchBudget > 0; i++ {
|
||||
// Search in a diagonal pattern for a match.
|
||||
|
|
@ -300,8 +304,10 @@ func Difference(nx, ny int, f EqualFunc) (es EditScript) {
|
|||
} else {
|
||||
revFrontier.Y--
|
||||
}
|
||||
goto forwardSearch
|
||||
}
|
||||
|
||||
finishSearch:
|
||||
// Join the forward and reverse paths and then append the reverse path.
|
||||
fwdPath.connect(revPath.point, f)
|
||||
for i := len(revPath.es) - 1; i >= 0; i-- {
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
// Copyright 2019, The Go Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style
|
||||
// license that can be found in the LICENSE.md file.
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
package flags
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
// Copyright 2019, The Go Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style
|
||||
// license that can be found in the LICENSE.md file.
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
// +build !go1.10
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
// Copyright 2019, The Go Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style
|
||||
// license that can be found in the LICENSE.md file.
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
// +build go1.10
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
// Copyright 2017, The Go Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style
|
||||
// license that can be found in the LICENSE.md file.
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
// Package function provides functionality for identifying function types.
|
||||
package function
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
// Copyright 2020, The Go Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style
|
||||
// license that can be found in the LICENSE.md file.
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
package value
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
// Copyright 2018, The Go Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style
|
||||
// license that can be found in the LICENSE.md file.
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
// +build purego
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
// Copyright 2018, The Go Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style
|
||||
// license that can be found in the LICENSE.md file.
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
// +build !purego
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
// Copyright 2017, The Go Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style
|
||||
// license that can be found in the LICENSE.md file.
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
package value
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
// Copyright 2017, The Go Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style
|
||||
// license that can be found in the LICENSE.md file.
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
package value
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
// Copyright 2017, The Go Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style
|
||||
// license that can be found in the LICENSE.md file.
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
package cmp
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
// Copyright 2017, The Go Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style
|
||||
// license that can be found in the LICENSE.md file.
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
package cmp
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
// Copyright 2017, The Go Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style
|
||||
// license that can be found in the LICENSE.md file.
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
package cmp
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
// Copyright 2019, The Go Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style
|
||||
// license that can be found in the LICENSE.md file.
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
package cmp
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
// Copyright 2020, The Go Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style
|
||||
// license that can be found in the LICENSE.md file.
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
package cmp
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
// Copyright 2019, The Go Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style
|
||||
// license that can be found in the LICENSE.md file.
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
package cmp
|
||||
|
||||
|
|
@ -351,6 +351,8 @@ func formatMapKey(v reflect.Value, disambiguate bool, ptrs *pointerReferences) s
|
|||
opts.PrintAddresses = disambiguate
|
||||
opts.AvoidStringer = disambiguate
|
||||
opts.QualifiedNames = disambiguate
|
||||
opts.VerbosityLevel = maxVerbosityPreset
|
||||
opts.LimitVerbosity = true
|
||||
s := opts.FormatValue(v, reflect.Map, ptrs).String()
|
||||
return strings.TrimSpace(s)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
// Copyright 2019, The Go Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style
|
||||
// license that can be found in the LICENSE.md file.
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
package cmp
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
// Copyright 2019, The Go Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style
|
||||
// license that can be found in the LICENSE.md file.
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
package cmp
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
// Copyright 2019, The Go Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style
|
||||
// license that can be found in the LICENSE.md file.
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
package cmp
|
||||
|
||||
|
|
|
|||
|
|
@ -7,6 +7,7 @@ go_library(
|
|||
"diffmatchpatch.go",
|
||||
"match.go",
|
||||
"mathutil.go",
|
||||
"operation_string.go",
|
||||
"patch.go",
|
||||
"stringutil.go",
|
||||
],
|
||||
|
|
|
|||
|
|
@ -25,6 +25,8 @@ import (
|
|||
// Operation defines the operation of a diff item.
|
||||
type Operation int8
|
||||
|
||||
//go:generate stringer -type=Operation -trimprefix=Diff
|
||||
|
||||
const (
|
||||
// DiffDelete item represents a delete diff.
|
||||
DiffDelete Operation = -1
|
||||
|
|
@ -40,8 +42,41 @@ type Diff struct {
|
|||
Text string
|
||||
}
|
||||
|
||||
// splice removes amount elements from slice at index index, replacing them with elements.
|
||||
func splice(slice []Diff, index int, amount int, elements ...Diff) []Diff {
|
||||
return append(slice[:index], append(elements, slice[index+amount:]...)...)
|
||||
if len(elements) == amount {
|
||||
// Easy case: overwrite the relevant items.
|
||||
copy(slice[index:], elements)
|
||||
return slice
|
||||
}
|
||||
if len(elements) < amount {
|
||||
// Fewer new items than old.
|
||||
// Copy in the new items.
|
||||
copy(slice[index:], elements)
|
||||
// Shift the remaining items left.
|
||||
copy(slice[index+len(elements):], slice[index+amount:])
|
||||
// Calculate the new end of the slice.
|
||||
end := len(slice) - amount + len(elements)
|
||||
// Zero stranded elements at end so that they can be garbage collected.
|
||||
tail := slice[end:]
|
||||
for i := range tail {
|
||||
tail[i] = Diff{}
|
||||
}
|
||||
return slice[:end]
|
||||
}
|
||||
// More new items than old.
|
||||
// Make room in slice for new elements.
|
||||
// There's probably an even more efficient way to do this,
|
||||
// but this is simple and clear.
|
||||
need := len(slice) - amount + len(elements)
|
||||
for len(slice) < need {
|
||||
slice = append(slice, Diff{})
|
||||
}
|
||||
// Shift slice elements right to make room for new elements.
|
||||
copy(slice[index+len(elements):], slice[index+amount:])
|
||||
// Copy in new elements.
|
||||
copy(slice[index:], elements)
|
||||
return slice
|
||||
}
|
||||
|
||||
// DiffMain finds the differences between two texts.
|
||||
|
|
@ -145,7 +180,10 @@ func (dmp *DiffMatchPatch) diffCompute(text1, text2 []rune, checklines bool, dea
|
|||
diffsA := dmp.diffMainRunes(text1A, text2A, checklines, deadline)
|
||||
diffsB := dmp.diffMainRunes(text1B, text2B, checklines, deadline)
|
||||
// Merge the results.
|
||||
return append(diffsA, append([]Diff{Diff{DiffEqual, string(midCommon)}}, diffsB...)...)
|
||||
diffs := diffsA
|
||||
diffs = append(diffs, Diff{DiffEqual, string(midCommon)})
|
||||
diffs = append(diffs, diffsB...)
|
||||
return diffs
|
||||
} else if checklines && len(text1) > 100 && len(text2) > 100 {
|
||||
return dmp.diffLineMode(text1, text2, deadline)
|
||||
}
|
||||
|
|
@ -247,7 +285,7 @@ func (dmp *DiffMatchPatch) diffBisect(runes1, runes2 []rune, deadline time.Time)
|
|||
k2end := 0
|
||||
for d := 0; d < maxD; d++ {
|
||||
// Bail out if deadline is reached.
|
||||
if !deadline.IsZero() && time.Now().After(deadline) {
|
||||
if !deadline.IsZero() && d%16 == 0 && time.Now().After(deadline) {
|
||||
break
|
||||
}
|
||||
|
||||
|
|
@ -434,48 +472,29 @@ func (dmp *DiffMatchPatch) DiffCommonSuffix(text1, text2 string) int {
|
|||
|
||||
// commonPrefixLength returns the length of the common prefix of two rune slices.
|
||||
func commonPrefixLength(text1, text2 []rune) int {
|
||||
short, long := text1, text2
|
||||
if len(short) > len(long) {
|
||||
short, long = long, short
|
||||
}
|
||||
for i, r := range short {
|
||||
if r != long[i] {
|
||||
return i
|
||||
// Linear search. See comment in commonSuffixLength.
|
||||
n := 0
|
||||
for ; n < len(text1) && n < len(text2); n++ {
|
||||
if text1[n] != text2[n] {
|
||||
return n
|
||||
}
|
||||
}
|
||||
return len(short)
|
||||
return n
|
||||
}
|
||||
|
||||
// commonSuffixLength returns the length of the common suffix of two rune slices.
|
||||
func commonSuffixLength(text1, text2 []rune) int {
|
||||
n := min(len(text1), len(text2))
|
||||
for i := 0; i < n; i++ {
|
||||
if text1[len(text1)-i-1] != text2[len(text2)-i-1] {
|
||||
return i
|
||||
// Use linear search rather than the binary search discussed at https://neil.fraser.name/news/2007/10/09/.
|
||||
// See discussion at https://github.com/sergi/go-diff/issues/54.
|
||||
i1 := len(text1)
|
||||
i2 := len(text2)
|
||||
for n := 0; ; n++ {
|
||||
i1--
|
||||
i2--
|
||||
if i1 < 0 || i2 < 0 || text1[i1] != text2[i2] {
|
||||
return n
|
||||
}
|
||||
}
|
||||
return n
|
||||
|
||||
// TODO research and benchmark this, why is it not activated? https://github.com/sergi/go-diff/issues/54
|
||||
// Binary search.
|
||||
// Performance analysis: http://neil.fraser.name/news/2007/10/09/
|
||||
/*
|
||||
pointermin := 0
|
||||
pointermax := math.Min(len(text1), len(text2))
|
||||
pointermid := pointermax
|
||||
pointerend := 0
|
||||
for pointermin < pointermid {
|
||||
if text1[len(text1)-pointermid:len(text1)-pointerend] ==
|
||||
text2[len(text2)-pointermid:len(text2)-pointerend] {
|
||||
pointermin = pointermid
|
||||
pointerend = pointermin
|
||||
} else {
|
||||
pointermax = pointermid
|
||||
}
|
||||
pointermid = math.Floor((pointermax-pointermin)/2 + pointermin)
|
||||
}
|
||||
return pointermid
|
||||
*/
|
||||
}
|
||||
|
||||
// DiffCommonOverlap determines if the suffix of one string is the prefix of another.
|
||||
|
|
@ -628,11 +647,7 @@ func (dmp *DiffMatchPatch) diffHalfMatchI(l, s []rune, i int) [][]rune {
|
|||
func (dmp *DiffMatchPatch) DiffCleanupSemantic(diffs []Diff) []Diff {
|
||||
changes := false
|
||||
// Stack of indices where equalities are found.
|
||||
type equality struct {
|
||||
data int
|
||||
next *equality
|
||||
}
|
||||
var equalities *equality
|
||||
equalities := make([]int, 0, len(diffs))
|
||||
|
||||
var lastequality string
|
||||
// Always equal to diffs[equalities[equalitiesLength - 1]][1]
|
||||
|
|
@ -645,11 +660,7 @@ func (dmp *DiffMatchPatch) DiffCleanupSemantic(diffs []Diff) []Diff {
|
|||
for pointer < len(diffs) {
|
||||
if diffs[pointer].Type == DiffEqual {
|
||||
// Equality found.
|
||||
|
||||
equalities = &equality{
|
||||
data: pointer,
|
||||
next: equalities,
|
||||
}
|
||||
equalities = append(equalities, pointer)
|
||||
lengthInsertions1 = lengthInsertions2
|
||||
lengthDeletions1 = lengthDeletions2
|
||||
lengthInsertions2 = 0
|
||||
|
|
@ -670,23 +681,20 @@ func (dmp *DiffMatchPatch) DiffCleanupSemantic(diffs []Diff) []Diff {
|
|||
(len(lastequality) <= difference1) &&
|
||||
(len(lastequality) <= difference2) {
|
||||
// Duplicate record.
|
||||
insPoint := equalities.data
|
||||
diffs = append(
|
||||
diffs[:insPoint],
|
||||
append([]Diff{Diff{DiffDelete, lastequality}}, diffs[insPoint:]...)...)
|
||||
insPoint := equalities[len(equalities)-1]
|
||||
diffs = splice(diffs, insPoint, 0, Diff{DiffDelete, lastequality})
|
||||
|
||||
// Change second copy to insert.
|
||||
diffs[insPoint+1].Type = DiffInsert
|
||||
// Throw away the equality we just deleted.
|
||||
equalities = equalities.next
|
||||
equalities = equalities[:len(equalities)-1]
|
||||
|
||||
if equalities != nil {
|
||||
equalities = equalities.next
|
||||
if len(equalities) > 0 {
|
||||
equalities = equalities[:len(equalities)-1]
|
||||
}
|
||||
if equalities != nil {
|
||||
pointer = equalities.data
|
||||
} else {
|
||||
pointer = -1
|
||||
pointer = -1
|
||||
if len(equalities) > 0 {
|
||||
pointer = equalities[len(equalities)-1]
|
||||
}
|
||||
|
||||
lengthInsertions1 = 0 // Reset the counters.
|
||||
|
|
@ -724,10 +732,7 @@ func (dmp *DiffMatchPatch) DiffCleanupSemantic(diffs []Diff) []Diff {
|
|||
float64(overlapLength1) >= float64(len(insertion))/2 {
|
||||
|
||||
// Overlap found. Insert an equality and trim the surrounding edits.
|
||||
diffs = append(
|
||||
diffs[:pointer],
|
||||
append([]Diff{Diff{DiffEqual, insertion[:overlapLength1]}}, diffs[pointer:]...)...)
|
||||
|
||||
diffs = splice(diffs, pointer, 0, Diff{DiffEqual, insertion[:overlapLength1]})
|
||||
diffs[pointer-1].Text =
|
||||
deletion[0 : len(deletion)-overlapLength1]
|
||||
diffs[pointer+1].Text = insertion[overlapLength1:]
|
||||
|
|
@ -738,10 +743,7 @@ func (dmp *DiffMatchPatch) DiffCleanupSemantic(diffs []Diff) []Diff {
|
|||
float64(overlapLength2) >= float64(len(insertion))/2 {
|
||||
// Reverse overlap found. Insert an equality and swap and trim the surrounding edits.
|
||||
overlap := Diff{DiffEqual, deletion[:overlapLength2]}
|
||||
diffs = append(
|
||||
diffs[:pointer],
|
||||
append([]Diff{overlap}, diffs[pointer:]...)...)
|
||||
|
||||
diffs = splice(diffs, pointer, 0, overlap)
|
||||
diffs[pointer-1].Type = DiffInsert
|
||||
diffs[pointer-1].Text = insertion[0 : len(insertion)-overlapLength2]
|
||||
diffs[pointer+1].Type = DiffDelete
|
||||
|
|
@ -954,8 +956,7 @@ func (dmp *DiffMatchPatch) DiffCleanupEfficiency(diffs []Diff) []Diff {
|
|||
insPoint := equalities.data
|
||||
|
||||
// Duplicate record.
|
||||
diffs = append(diffs[:insPoint],
|
||||
append([]Diff{Diff{DiffDelete, lastequality}}, diffs[insPoint:]...)...)
|
||||
diffs = splice(diffs, insPoint, 0, Diff{DiffDelete, lastequality})
|
||||
|
||||
// Change second copy to insert.
|
||||
diffs[insPoint+1].Type = DiffInsert
|
||||
|
|
@ -1235,9 +1236,9 @@ func (dmp *DiffMatchPatch) DiffLevenshtein(diffs []Diff) int {
|
|||
for _, aDiff := range diffs {
|
||||
switch aDiff.Type {
|
||||
case DiffInsert:
|
||||
insertions += len(aDiff.Text)
|
||||
insertions += utf8.RuneCountInString(aDiff.Text)
|
||||
case DiffDelete:
|
||||
deletions += len(aDiff.Text)
|
||||
deletions += utf8.RuneCountInString(aDiff.Text)
|
||||
case DiffEqual:
|
||||
// A deletion and an insertion is one substitution.
|
||||
levenshtein += max(insertions, deletions)
|
||||
|
|
|
|||
17
vendor/github.com/sergi/go-diff/diffmatchpatch/operation_string.go
generated
vendored
Normal file
17
vendor/github.com/sergi/go-diff/diffmatchpatch/operation_string.go
generated
vendored
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
// Code generated by "stringer -type=Operation -trimprefix=Diff"; DO NOT EDIT.
|
||||
|
||||
package diffmatchpatch
|
||||
|
||||
import "fmt"
|
||||
|
||||
const _Operation_name = "DeleteEqualInsert"
|
||||
|
||||
var _Operation_index = [...]uint8{0, 6, 11, 17}
|
||||
|
||||
func (i Operation) String() string {
|
||||
i -= -1
|
||||
if i < 0 || i >= Operation(len(_Operation_index)-1) {
|
||||
return fmt.Sprintf("Operation(%d)", i+-1)
|
||||
}
|
||||
return _Operation_name[_Operation_index[i]:_Operation_index[i+1]]
|
||||
}
|
||||
|
|
@ -97,6 +97,7 @@ package module
|
|||
|
||||
import (
|
||||
"fmt"
|
||||
"path"
|
||||
"sort"
|
||||
"strings"
|
||||
"unicode"
|
||||
|
|
@ -224,13 +225,13 @@ func firstPathOK(r rune) bool {
|
|||
}
|
||||
|
||||
// pathOK reports whether r can appear in an import path element.
|
||||
// Paths can be ASCII letters, ASCII digits, and limited ASCII punctuation: + - . _ and ~.
|
||||
// Paths can be ASCII letters, ASCII digits, and limited ASCII punctuation: - . _ and ~.
|
||||
// This matches what "go get" has historically recognized in import paths.
|
||||
// TODO(rsc): We would like to allow Unicode letters, but that requires additional
|
||||
// care in the safe encoding (see "escaped paths" above).
|
||||
func pathOK(r rune) bool {
|
||||
if r < utf8.RuneSelf {
|
||||
return r == '+' || r == '-' || r == '.' || r == '_' || r == '~' ||
|
||||
return r == '-' || r == '.' || r == '_' || r == '~' ||
|
||||
'0' <= r && r <= '9' ||
|
||||
'A' <= r && r <= 'Z' ||
|
||||
'a' <= r && r <= 'z'
|
||||
|
|
@ -313,11 +314,13 @@ func CheckPath(path string) error {
|
|||
// separated by slashes (U+002F). (It must not begin with nor end in a slash.)
|
||||
//
|
||||
// A valid path element is a non-empty string made up of
|
||||
// ASCII letters, ASCII digits, and limited ASCII punctuation: + - . _ and ~.
|
||||
// ASCII letters, ASCII digits, and limited ASCII punctuation: - . _ and ~.
|
||||
// It must not begin or end with a dot (U+002E), nor contain two dots in a row.
|
||||
//
|
||||
// The element prefix up to the first dot must not be a reserved file name
|
||||
// on Windows, regardless of case (CON, com1, NuL, and so on).
|
||||
// on Windows, regardless of case (CON, com1, NuL, and so on). The element
|
||||
// must not have a suffix of a tilde followed by one or more ASCII digits
|
||||
// (to exclude paths elements that look like Windows short-names).
|
||||
//
|
||||
// CheckImportPath may be less restrictive in the future, but see the
|
||||
// top-level package documentation for additional information about
|
||||
|
|
@ -402,6 +405,29 @@ func checkElem(elem string, fileName bool) error {
|
|||
return fmt.Errorf("%q disallowed as path element component on Windows", short)
|
||||
}
|
||||
}
|
||||
|
||||
if fileName {
|
||||
// don't check for Windows short-names in file names. They're
|
||||
// only an issue for import paths.
|
||||
return nil
|
||||
}
|
||||
|
||||
// Reject path components that look like Windows short-names.
|
||||
// Those usually end in a tilde followed by one or more ASCII digits.
|
||||
if tilde := strings.LastIndexByte(short, '~'); tilde >= 0 && tilde < len(short)-1 {
|
||||
suffix := short[tilde+1:]
|
||||
suffixIsDigits := true
|
||||
for _, r := range suffix {
|
||||
if r < '0' || r > '9' {
|
||||
suffixIsDigits = false
|
||||
break
|
||||
}
|
||||
}
|
||||
if suffixIsDigits {
|
||||
return fmt.Errorf("trailing tilde and digits in path element")
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
|
|
@ -716,3 +742,49 @@ func unescapeString(escaped string) (string, bool) {
|
|||
}
|
||||
return string(buf), true
|
||||
}
|
||||
|
||||
// MatchPrefixPatterns reports whether any path prefix of target matches one of
|
||||
// the glob patterns (as defined by path.Match) in the comma-separated globs
|
||||
// list. This implements the algorithm used when matching a module path to the
|
||||
// GOPRIVATE environment variable, as described by 'go help module-private'.
|
||||
//
|
||||
// It ignores any empty or malformed patterns in the list.
|
||||
func MatchPrefixPatterns(globs, target string) bool {
|
||||
for globs != "" {
|
||||
// Extract next non-empty glob in comma-separated list.
|
||||
var glob string
|
||||
if i := strings.Index(globs, ","); i >= 0 {
|
||||
glob, globs = globs[:i], globs[i+1:]
|
||||
} else {
|
||||
glob, globs = globs, ""
|
||||
}
|
||||
if glob == "" {
|
||||
continue
|
||||
}
|
||||
|
||||
// A glob with N+1 path elements (N slashes) needs to be matched
|
||||
// against the first N+1 path elements of target,
|
||||
// which end just before the N+1'th slash.
|
||||
n := strings.Count(glob, "/")
|
||||
prefix := target
|
||||
// Walk target, counting slashes, truncating at the N+1'th slash.
|
||||
for i := 0; i < len(target); i++ {
|
||||
if target[i] == '/' {
|
||||
if n == 0 {
|
||||
prefix = target[:i]
|
||||
break
|
||||
}
|
||||
n--
|
||||
}
|
||||
}
|
||||
if n > 0 {
|
||||
// Not enough prefix elements.
|
||||
continue
|
||||
}
|
||||
matched, _ := path.Match(glob, prefix)
|
||||
if matched {
|
||||
return true
|
||||
}
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
|
|
|||
|
|
@ -138,6 +138,9 @@ func Compare(v, w string) int {
|
|||
|
||||
// Max canonicalizes its arguments and then returns the version string
|
||||
// that compares greater.
|
||||
//
|
||||
// Deprecated: use Compare instead. In most cases, returning a canonicalized
|
||||
// version is not expected or desired.
|
||||
func Max(v, w string) string {
|
||||
v = Canonical(v)
|
||||
w = Canonical(w)
|
||||
|
|
|
|||
|
|
@ -0,0 +1,9 @@
|
|||
load("@io_bazel_rules_go//go:def.bzl", "go_library")
|
||||
|
||||
go_library(
|
||||
name = "go_default_library",
|
||||
srcs = ["execabs.go"],
|
||||
importmap = "k8s.io/kops/vendor/golang.org/x/sys/execabs",
|
||||
importpath = "golang.org/x/sys/execabs",
|
||||
visibility = ["//visibility:public"],
|
||||
)
|
||||
|
|
@ -0,0 +1,102 @@
|
|||
// Copyright 2020 The Go Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
// Package execabs is a drop-in replacement for os/exec
|
||||
// that requires PATH lookups to find absolute paths.
|
||||
// That is, execabs.Command("cmd") runs the same PATH lookup
|
||||
// as exec.Command("cmd"), but if the result is a path
|
||||
// which is relative, the Run and Start methods will report
|
||||
// an error instead of running the executable.
|
||||
//
|
||||
// See https://blog.golang.org/path-security for more information
|
||||
// about when it may be necessary or appropriate to use this package.
|
||||
package execabs
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"os/exec"
|
||||
"path/filepath"
|
||||
"reflect"
|
||||
"unsafe"
|
||||
)
|
||||
|
||||
// ErrNotFound is the error resulting if a path search failed to find an executable file.
|
||||
// It is an alias for exec.ErrNotFound.
|
||||
var ErrNotFound = exec.ErrNotFound
|
||||
|
||||
// Cmd represents an external command being prepared or run.
|
||||
// It is an alias for exec.Cmd.
|
||||
type Cmd = exec.Cmd
|
||||
|
||||
// Error is returned by LookPath when it fails to classify a file as an executable.
|
||||
// It is an alias for exec.Error.
|
||||
type Error = exec.Error
|
||||
|
||||
// An ExitError reports an unsuccessful exit by a command.
|
||||
// It is an alias for exec.ExitError.
|
||||
type ExitError = exec.ExitError
|
||||
|
||||
func relError(file, path string) error {
|
||||
return fmt.Errorf("%s resolves to executable in current directory (.%c%s)", file, filepath.Separator, path)
|
||||
}
|
||||
|
||||
// LookPath searches for an executable named file in the directories
|
||||
// named by the PATH environment variable. If file contains a slash,
|
||||
// it is tried directly and the PATH is not consulted. The result will be
|
||||
// an absolute path.
|
||||
//
|
||||
// LookPath differs from exec.LookPath in its handling of PATH lookups,
|
||||
// which are used for file names without slashes. If exec.LookPath's
|
||||
// PATH lookup would have returned an executable from the current directory,
|
||||
// LookPath instead returns an error.
|
||||
func LookPath(file string) (string, error) {
|
||||
path, err := exec.LookPath(file)
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
if filepath.Base(file) == file && !filepath.IsAbs(path) {
|
||||
return "", relError(file, path)
|
||||
}
|
||||
return path, nil
|
||||
}
|
||||
|
||||
func fixCmd(name string, cmd *exec.Cmd) {
|
||||
if filepath.Base(name) == name && !filepath.IsAbs(cmd.Path) {
|
||||
// exec.Command was called with a bare binary name and
|
||||
// exec.LookPath returned a path which is not absolute.
|
||||
// Set cmd.lookPathErr and clear cmd.Path so that it
|
||||
// cannot be run.
|
||||
lookPathErr := (*error)(unsafe.Pointer(reflect.ValueOf(cmd).Elem().FieldByName("lookPathErr").Addr().Pointer()))
|
||||
if *lookPathErr == nil {
|
||||
*lookPathErr = relError(name, cmd.Path)
|
||||
}
|
||||
cmd.Path = ""
|
||||
}
|
||||
}
|
||||
|
||||
// CommandContext is like Command but includes a context.
|
||||
//
|
||||
// The provided context is used to kill the process (by calling os.Process.Kill)
|
||||
// if the context becomes done before the command completes on its own.
|
||||
func CommandContext(ctx context.Context, name string, arg ...string) *exec.Cmd {
|
||||
cmd := exec.CommandContext(ctx, name, arg...)
|
||||
fixCmd(name, cmd)
|
||||
return cmd
|
||||
|
||||
}
|
||||
|
||||
// Command returns the Cmd struct to execute the named program with the given arguments.
|
||||
// See exec.Command for most details.
|
||||
//
|
||||
// Command differs from exec.Command in its handling of PATH lookups,
|
||||
// which are used when the program name contains no slashes.
|
||||
// If exec.Command would have returned an exec.Cmd configured to run an
|
||||
// executable from the current directory, Command instead
|
||||
// returns an exec.Cmd that will return an error from Start or Run.
|
||||
func Command(name string, arg ...string) *exec.Cmd {
|
||||
cmd := exec.Command(name, arg...)
|
||||
fixCmd(name, cmd)
|
||||
return cmd
|
||||
}
|
||||
|
|
@ -58,6 +58,8 @@ go_library(
|
|||
"ioctl.go",
|
||||
"pagesize_unix.go",
|
||||
"pledge_openbsd.go",
|
||||
"ptrace_darwin.go",
|
||||
"ptrace_ios.go",
|
||||
"race.go",
|
||||
"race0.go",
|
||||
"readdirent_getdents.go",
|
||||
|
|
|
|||
|
|
@ -204,6 +204,7 @@ struct ltchars {
|
|||
#include <linux/devlink.h>
|
||||
#include <linux/dm-ioctl.h>
|
||||
#include <linux/errqueue.h>
|
||||
#include <linux/ethtool_netlink.h>
|
||||
#include <linux/falloc.h>
|
||||
#include <linux/fanotify.h>
|
||||
#include <linux/filter.h>
|
||||
|
|
@ -563,6 +564,7 @@ ccflags="$@"
|
|||
$2 ~ /^TIPC_/ ||
|
||||
$2 !~ "DEVLINK_RELOAD_LIMITS_VALID_MASK" &&
|
||||
$2 ~ /^DEVLINK_/ ||
|
||||
$2 ~ /^ETHTOOL_/ ||
|
||||
$2 ~ /^LWTUNNEL_IP/ ||
|
||||
$2 !~ "WMESGLEN" &&
|
||||
$2 ~ /^W[A-Z0-9]+$/ ||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,11 @@
|
|||
// Copyright 2020 The Go Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
// +build darwin,!ios
|
||||
|
||||
package unix
|
||||
|
||||
func ptrace(request int, pid int, addr uintptr, data uintptr) error {
|
||||
return ptrace1(request, pid, addr, data)
|
||||
}
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
// Copyright 2020 The Go Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
// +build ios
|
||||
|
||||
package unix
|
||||
|
||||
func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) {
|
||||
return ENOTSUP
|
||||
}
|
||||
|
|
@ -119,13 +119,16 @@ type attrList struct {
|
|||
Forkattr uint32
|
||||
}
|
||||
|
||||
//sysnb pipe() (r int, w int, err error)
|
||||
//sysnb pipe(p *[2]int32) (err error)
|
||||
|
||||
func Pipe(p []int) (err error) {
|
||||
if len(p) != 2 {
|
||||
return EINVAL
|
||||
}
|
||||
p[0], p[1], err = pipe()
|
||||
var x [2]int32
|
||||
err = pipe(&x)
|
||||
p[0] = int(x[0])
|
||||
p[1] = int(x[1])
|
||||
return
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -45,6 +45,6 @@ func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr,
|
|||
//sys Fstatfs(fd int, stat *Statfs_t) (err error) = SYS_FSTATFS64
|
||||
//sys getfsstat(buf unsafe.Pointer, size uintptr, flags int) (n int, err error) = SYS_GETFSSTAT64
|
||||
//sys Lstat(path string, stat *Stat_t) (err error) = SYS_LSTAT64
|
||||
//sys ptrace(request int, pid int, addr uintptr, data uintptr) (err error)
|
||||
//sys ptrace1(request int, pid int, addr uintptr, data uintptr) (err error) = SYS_ptrace
|
||||
//sys Stat(path string, stat *Stat_t) (err error) = SYS_STAT64
|
||||
//sys Statfs(path string, stat *Statfs_t) (err error) = SYS_STATFS64
|
||||
|
|
|
|||
|
|
@ -45,6 +45,6 @@ func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr,
|
|||
//sys Fstatfs(fd int, stat *Statfs_t) (err error) = SYS_FSTATFS64
|
||||
//sys getfsstat(buf unsafe.Pointer, size uintptr, flags int) (n int, err error) = SYS_GETFSSTAT64
|
||||
//sys Lstat(path string, stat *Stat_t) (err error) = SYS_LSTAT64
|
||||
//sys ptrace(request int, pid int, addr uintptr, data uintptr) (err error)
|
||||
//sys ptrace1(request int, pid int, addr uintptr, data uintptr) (err error) = SYS_ptrace
|
||||
//sys Stat(path string, stat *Stat_t) (err error) = SYS_STAT64
|
||||
//sys Statfs(path string, stat *Statfs_t) (err error) = SYS_STATFS64
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ package unix
|
|||
|
||||
import "syscall"
|
||||
|
||||
func ptrace(request int, pid int, addr uintptr, data uintptr) error {
|
||||
func ptrace1(request int, pid int, addr uintptr, data uintptr) error {
|
||||
return ENOTSUP
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -45,6 +45,6 @@ func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr,
|
|||
//sys Fstatfs(fd int, stat *Statfs_t) (err error)
|
||||
//sys getfsstat(buf unsafe.Pointer, size uintptr, flags int) (n int, err error) = SYS_GETFSSTAT
|
||||
//sys Lstat(path string, stat *Stat_t) (err error)
|
||||
//sys ptrace(request int, pid int, addr uintptr, data uintptr) (err error)
|
||||
//sys ptrace1(request int, pid int, addr uintptr, data uintptr) (err error) = SYS_ptrace
|
||||
//sys Stat(path string, stat *Stat_t) (err error)
|
||||
//sys Statfs(path string, stat *Statfs_t) (err error)
|
||||
|
|
|
|||
|
|
@ -75,16 +75,3 @@ func Accept4(fd int, flags int) (nfd int, sa Sockaddr, err error) {
|
|||
}
|
||||
return
|
||||
}
|
||||
|
||||
//sysnb pipe2(p *[2]_C_int, flags int) (err error)
|
||||
|
||||
func Pipe2(p []int, flags int) error {
|
||||
if len(p) != 2 {
|
||||
return EINVAL
|
||||
}
|
||||
var pp [2]_C_int
|
||||
err := pipe2(&pp, flags)
|
||||
p[0] = int(pp[0])
|
||||
p[1] = int(pp[1])
|
||||
return err
|
||||
}
|
||||
|
|
|
|||
|
|
@ -68,6 +68,19 @@ func Pipe(p []int) (err error) {
|
|||
return nil
|
||||
}
|
||||
|
||||
//sysnb pipe2(p *[2]_C_int, flags int) (err error)
|
||||
|
||||
func Pipe2(p []int, flags int) error {
|
||||
if len(p) != 2 {
|
||||
return EINVAL
|
||||
}
|
||||
var pp [2]_C_int
|
||||
err := pipe2(&pp, flags)
|
||||
p[0] = int(pp[0])
|
||||
p[1] = int(pp[1])
|
||||
return err
|
||||
}
|
||||
|
||||
func (sa *SockaddrInet4) sockaddr() (unsafe.Pointer, _Socklen, error) {
|
||||
if sa.Port < 0 || sa.Port > 0xFFFF {
|
||||
return nil, 0, EINVAL
|
||||
|
|
|
|||
|
|
@ -527,6 +527,119 @@ const (
|
|||
EPOLL_CTL_DEL = 0x2
|
||||
EPOLL_CTL_MOD = 0x3
|
||||
EROFS_SUPER_MAGIC_V1 = 0xe0f5e1e2
|
||||
ESP_V4_FLOW = 0xa
|
||||
ESP_V6_FLOW = 0xc
|
||||
ETHER_FLOW = 0x12
|
||||
ETHTOOL_BUSINFO_LEN = 0x20
|
||||
ETHTOOL_EROMVERS_LEN = 0x20
|
||||
ETHTOOL_FEC_AUTO = 0x2
|
||||
ETHTOOL_FEC_BASER = 0x10
|
||||
ETHTOOL_FEC_LLRS = 0x20
|
||||
ETHTOOL_FEC_NONE = 0x1
|
||||
ETHTOOL_FEC_OFF = 0x4
|
||||
ETHTOOL_FEC_RS = 0x8
|
||||
ETHTOOL_FLAG_ALL = 0x7
|
||||
ETHTOOL_FLAG_COMPACT_BITSETS = 0x1
|
||||
ETHTOOL_FLAG_OMIT_REPLY = 0x2
|
||||
ETHTOOL_FLAG_STATS = 0x4
|
||||
ETHTOOL_FLASHDEV = 0x33
|
||||
ETHTOOL_FLASH_MAX_FILENAME = 0x80
|
||||
ETHTOOL_FWVERS_LEN = 0x20
|
||||
ETHTOOL_F_COMPAT = 0x4
|
||||
ETHTOOL_F_UNSUPPORTED = 0x1
|
||||
ETHTOOL_F_WISH = 0x2
|
||||
ETHTOOL_GCHANNELS = 0x3c
|
||||
ETHTOOL_GCOALESCE = 0xe
|
||||
ETHTOOL_GDRVINFO = 0x3
|
||||
ETHTOOL_GEEE = 0x44
|
||||
ETHTOOL_GEEPROM = 0xb
|
||||
ETHTOOL_GENL_NAME = "ethtool"
|
||||
ETHTOOL_GENL_VERSION = 0x1
|
||||
ETHTOOL_GET_DUMP_DATA = 0x40
|
||||
ETHTOOL_GET_DUMP_FLAG = 0x3f
|
||||
ETHTOOL_GET_TS_INFO = 0x41
|
||||
ETHTOOL_GFEATURES = 0x3a
|
||||
ETHTOOL_GFECPARAM = 0x50
|
||||
ETHTOOL_GFLAGS = 0x25
|
||||
ETHTOOL_GGRO = 0x2b
|
||||
ETHTOOL_GGSO = 0x23
|
||||
ETHTOOL_GLINK = 0xa
|
||||
ETHTOOL_GLINKSETTINGS = 0x4c
|
||||
ETHTOOL_GMODULEEEPROM = 0x43
|
||||
ETHTOOL_GMODULEINFO = 0x42
|
||||
ETHTOOL_GMSGLVL = 0x7
|
||||
ETHTOOL_GPAUSEPARAM = 0x12
|
||||
ETHTOOL_GPERMADDR = 0x20
|
||||
ETHTOOL_GPFLAGS = 0x27
|
||||
ETHTOOL_GPHYSTATS = 0x4a
|
||||
ETHTOOL_GREGS = 0x4
|
||||
ETHTOOL_GRINGPARAM = 0x10
|
||||
ETHTOOL_GRSSH = 0x46
|
||||
ETHTOOL_GRXCLSRLALL = 0x30
|
||||
ETHTOOL_GRXCLSRLCNT = 0x2e
|
||||
ETHTOOL_GRXCLSRULE = 0x2f
|
||||
ETHTOOL_GRXCSUM = 0x14
|
||||
ETHTOOL_GRXFH = 0x29
|
||||
ETHTOOL_GRXFHINDIR = 0x38
|
||||
ETHTOOL_GRXNTUPLE = 0x36
|
||||
ETHTOOL_GRXRINGS = 0x2d
|
||||
ETHTOOL_GSET = 0x1
|
||||
ETHTOOL_GSG = 0x18
|
||||
ETHTOOL_GSSET_INFO = 0x37
|
||||
ETHTOOL_GSTATS = 0x1d
|
||||
ETHTOOL_GSTRINGS = 0x1b
|
||||
ETHTOOL_GTSO = 0x1e
|
||||
ETHTOOL_GTUNABLE = 0x48
|
||||
ETHTOOL_GTXCSUM = 0x16
|
||||
ETHTOOL_GUFO = 0x21
|
||||
ETHTOOL_GWOL = 0x5
|
||||
ETHTOOL_MCGRP_MONITOR_NAME = "monitor"
|
||||
ETHTOOL_NWAY_RST = 0x9
|
||||
ETHTOOL_PERQUEUE = 0x4b
|
||||
ETHTOOL_PHYS_ID = 0x1c
|
||||
ETHTOOL_PHY_EDPD_DFLT_TX_MSECS = 0xffff
|
||||
ETHTOOL_PHY_EDPD_DISABLE = 0x0
|
||||
ETHTOOL_PHY_EDPD_NO_TX = 0xfffe
|
||||
ETHTOOL_PHY_FAST_LINK_DOWN_OFF = 0xff
|
||||
ETHTOOL_PHY_FAST_LINK_DOWN_ON = 0x0
|
||||
ETHTOOL_PHY_GTUNABLE = 0x4e
|
||||
ETHTOOL_PHY_STUNABLE = 0x4f
|
||||
ETHTOOL_RESET = 0x34
|
||||
ETHTOOL_RXNTUPLE_ACTION_CLEAR = -0x2
|
||||
ETHTOOL_RXNTUPLE_ACTION_DROP = -0x1
|
||||
ETHTOOL_RX_FLOW_SPEC_RING = 0xffffffff
|
||||
ETHTOOL_RX_FLOW_SPEC_RING_VF = 0xff00000000
|
||||
ETHTOOL_RX_FLOW_SPEC_RING_VF_OFF = 0x20
|
||||
ETHTOOL_SCHANNELS = 0x3d
|
||||
ETHTOOL_SCOALESCE = 0xf
|
||||
ETHTOOL_SEEE = 0x45
|
||||
ETHTOOL_SEEPROM = 0xc
|
||||
ETHTOOL_SET_DUMP = 0x3e
|
||||
ETHTOOL_SFEATURES = 0x3b
|
||||
ETHTOOL_SFECPARAM = 0x51
|
||||
ETHTOOL_SFLAGS = 0x26
|
||||
ETHTOOL_SGRO = 0x2c
|
||||
ETHTOOL_SGSO = 0x24
|
||||
ETHTOOL_SLINKSETTINGS = 0x4d
|
||||
ETHTOOL_SMSGLVL = 0x8
|
||||
ETHTOOL_SPAUSEPARAM = 0x13
|
||||
ETHTOOL_SPFLAGS = 0x28
|
||||
ETHTOOL_SRINGPARAM = 0x11
|
||||
ETHTOOL_SRSSH = 0x47
|
||||
ETHTOOL_SRXCLSRLDEL = 0x31
|
||||
ETHTOOL_SRXCLSRLINS = 0x32
|
||||
ETHTOOL_SRXCSUM = 0x15
|
||||
ETHTOOL_SRXFH = 0x2a
|
||||
ETHTOOL_SRXFHINDIR = 0x39
|
||||
ETHTOOL_SRXNTUPLE = 0x35
|
||||
ETHTOOL_SSET = 0x2
|
||||
ETHTOOL_SSG = 0x19
|
||||
ETHTOOL_STSO = 0x1f
|
||||
ETHTOOL_STUNABLE = 0x49
|
||||
ETHTOOL_STXCSUM = 0x17
|
||||
ETHTOOL_SUFO = 0x22
|
||||
ETHTOOL_SWOL = 0x6
|
||||
ETHTOOL_TEST = 0x1a
|
||||
ETH_P_1588 = 0x88f7
|
||||
ETH_P_8021AD = 0x88a8
|
||||
ETH_P_8021AH = 0x88e7
|
||||
|
|
@ -996,6 +1109,7 @@ const (
|
|||
IPV6_DONTFRAG = 0x3e
|
||||
IPV6_DROP_MEMBERSHIP = 0x15
|
||||
IPV6_DSTOPTS = 0x3b
|
||||
IPV6_FLOW = 0x11
|
||||
IPV6_FREEBIND = 0x4e
|
||||
IPV6_HDRINCL = 0x24
|
||||
IPV6_HOPLIMIT = 0x34
|
||||
|
|
@ -1045,6 +1159,7 @@ const (
|
|||
IPV6_TRANSPARENT = 0x4b
|
||||
IPV6_UNICAST_HOPS = 0x10
|
||||
IPV6_UNICAST_IF = 0x4c
|
||||
IPV6_USER_FLOW = 0xe
|
||||
IPV6_V6ONLY = 0x1a
|
||||
IPV6_XFRM_POLICY = 0x23
|
||||
IP_ADD_MEMBERSHIP = 0x23
|
||||
|
|
@ -1101,6 +1216,7 @@ const (
|
|||
IP_TTL = 0x2
|
||||
IP_UNBLOCK_SOURCE = 0x25
|
||||
IP_UNICAST_IF = 0x32
|
||||
IP_USER_FLOW = 0xd
|
||||
IP_XFRM_POLICY = 0x11
|
||||
ISOFS_SUPER_MAGIC = 0x9660
|
||||
ISTRIP = 0x20
|
||||
|
|
@ -2340,6 +2456,8 @@ const (
|
|||
TCP_TX_DELAY = 0x25
|
||||
TCP_ULP = 0x1f
|
||||
TCP_USER_TIMEOUT = 0x12
|
||||
TCP_V4_FLOW = 0x1
|
||||
TCP_V6_FLOW = 0x5
|
||||
TCP_WINDOW_CLAMP = 0xa
|
||||
TCP_ZEROCOPY_RECEIVE = 0x23
|
||||
TFD_TIMER_ABSTIME = 0x1
|
||||
|
|
@ -2466,6 +2584,7 @@ const (
|
|||
VM_SOCKETS_INVALID_VERSION = 0xffffffff
|
||||
VQUIT = 0x1
|
||||
VT0 = 0x0
|
||||
WAKE_MAGIC = 0x20
|
||||
WALL = 0x40000000
|
||||
WCLONE = 0x80000000
|
||||
WCONTINUED = 0x8
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
// +build 386,linux
|
||||
|
||||
// Code generated by cmd/cgo -godefs; DO NOT EDIT.
|
||||
// cgo -godefs -- -Wall -Werror -static -I/tmp/include -m32 _const.go
|
||||
// cgo -godefs -- -Wall -Werror -static -I/tmp/include -m32 /build/_const.go
|
||||
|
||||
package unix
|
||||
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
// +build amd64,linux
|
||||
|
||||
// Code generated by cmd/cgo -godefs; DO NOT EDIT.
|
||||
// cgo -godefs -- -Wall -Werror -static -I/tmp/include -m64 _const.go
|
||||
// cgo -godefs -- -Wall -Werror -static -I/tmp/include -m64 /build/_const.go
|
||||
|
||||
package unix
|
||||
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
// +build arm,linux
|
||||
|
||||
// Code generated by cmd/cgo -godefs; DO NOT EDIT.
|
||||
// cgo -godefs -- -Wall -Werror -static -I/tmp/include _const.go
|
||||
// cgo -godefs -- -Wall -Werror -static -I/tmp/include /build/_const.go
|
||||
|
||||
package unix
|
||||
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
// +build arm64,linux
|
||||
|
||||
// Code generated by cmd/cgo -godefs; DO NOT EDIT.
|
||||
// cgo -godefs -- -Wall -Werror -static -I/tmp/include -fsigned-char _const.go
|
||||
// cgo -godefs -- -Wall -Werror -static -I/tmp/include -fsigned-char /build/_const.go
|
||||
|
||||
package unix
|
||||
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
// +build mips,linux
|
||||
|
||||
// Code generated by cmd/cgo -godefs; DO NOT EDIT.
|
||||
// cgo -godefs -- -Wall -Werror -static -I/tmp/include _const.go
|
||||
// cgo -godefs -- -Wall -Werror -static -I/tmp/include /build/_const.go
|
||||
|
||||
package unix
|
||||
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
// +build mips64,linux
|
||||
|
||||
// Code generated by cmd/cgo -godefs; DO NOT EDIT.
|
||||
// cgo -godefs -- -Wall -Werror -static -I/tmp/include _const.go
|
||||
// cgo -godefs -- -Wall -Werror -static -I/tmp/include /build/_const.go
|
||||
|
||||
package unix
|
||||
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
// +build mips64le,linux
|
||||
|
||||
// Code generated by cmd/cgo -godefs; DO NOT EDIT.
|
||||
// cgo -godefs -- -Wall -Werror -static -I/tmp/include _const.go
|
||||
// cgo -godefs -- -Wall -Werror -static -I/tmp/include /build/_const.go
|
||||
|
||||
package unix
|
||||
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
// +build mipsle,linux
|
||||
|
||||
// Code generated by cmd/cgo -godefs; DO NOT EDIT.
|
||||
// cgo -godefs -- -Wall -Werror -static -I/tmp/include _const.go
|
||||
// cgo -godefs -- -Wall -Werror -static -I/tmp/include /build/_const.go
|
||||
|
||||
package unix
|
||||
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
// +build ppc64,linux
|
||||
|
||||
// Code generated by cmd/cgo -godefs; DO NOT EDIT.
|
||||
// cgo -godefs -- -Wall -Werror -static -I/tmp/include _const.go
|
||||
// cgo -godefs -- -Wall -Werror -static -I/tmp/include /build/_const.go
|
||||
|
||||
package unix
|
||||
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
// +build ppc64le,linux
|
||||
|
||||
// Code generated by cmd/cgo -godefs; DO NOT EDIT.
|
||||
// cgo -godefs -- -Wall -Werror -static -I/tmp/include _const.go
|
||||
// cgo -godefs -- -Wall -Werror -static -I/tmp/include /build/_const.go
|
||||
|
||||
package unix
|
||||
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
// +build riscv64,linux
|
||||
|
||||
// Code generated by cmd/cgo -godefs; DO NOT EDIT.
|
||||
// cgo -godefs -- -Wall -Werror -static -I/tmp/include _const.go
|
||||
// cgo -godefs -- -Wall -Werror -static -I/tmp/include /build/_const.go
|
||||
|
||||
package unix
|
||||
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
// +build s390x,linux
|
||||
|
||||
// Code generated by cmd/cgo -godefs; DO NOT EDIT.
|
||||
// cgo -godefs -- -Wall -Werror -static -I/tmp/include -fsigned-char _const.go
|
||||
// cgo -godefs -- -Wall -Werror -static -I/tmp/include -fsigned-char /build/_const.go
|
||||
|
||||
package unix
|
||||
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
// +build sparc64,linux
|
||||
|
||||
// Code generated by cmd/cgo -godefs; DO NOT EDIT.
|
||||
// cgo -godefs -- -Wall -Werror -static -I/tmp/include _const.go
|
||||
// cgo -godefs -- -Wall -Werror -static -I/tmp/include /build/_const.go
|
||||
|
||||
package unix
|
||||
|
||||
|
|
|
|||
|
|
@ -462,10 +462,8 @@ func libc_munlockall_trampoline()
|
|||
|
||||
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||
|
||||
func pipe() (r int, w int, err error) {
|
||||
r0, r1, e1 := syscall_rawSyscall(funcPC(libc_pipe_trampoline), 0, 0, 0)
|
||||
r = int(r0)
|
||||
w = int(r1)
|
||||
func pipe(p *[2]int32) (err error) {
|
||||
_, _, e1 := syscall_rawSyscall(funcPC(libc_pipe_trampoline), uintptr(unsafe.Pointer(p)), 0, 0)
|
||||
if e1 != 0 {
|
||||
err = errnoErr(e1)
|
||||
}
|
||||
|
|
@ -2381,7 +2379,7 @@ func libc_lstat64_trampoline()
|
|||
|
||||
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||
|
||||
func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) {
|
||||
func ptrace1(request int, pid int, addr uintptr, data uintptr) (err error) {
|
||||
_, _, e1 := syscall_syscall6(funcPC(libc_ptrace_trampoline), uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0)
|
||||
if e1 != 0 {
|
||||
err = errnoErr(e1)
|
||||
|
|
|
|||
|
|
@ -462,10 +462,8 @@ func libc_munlockall_trampoline()
|
|||
|
||||
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||
|
||||
func pipe() (r int, w int, err error) {
|
||||
r0, r1, e1 := syscall_rawSyscall(funcPC(libc_pipe_trampoline), 0, 0, 0)
|
||||
r = int(r0)
|
||||
w = int(r1)
|
||||
func pipe(p *[2]int32) (err error) {
|
||||
_, _, e1 := syscall_rawSyscall(funcPC(libc_pipe_trampoline), uintptr(unsafe.Pointer(p)), 0, 0)
|
||||
if e1 != 0 {
|
||||
err = errnoErr(e1)
|
||||
}
|
||||
|
|
@ -2381,7 +2379,7 @@ func libc_lstat64_trampoline()
|
|||
|
||||
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||
|
||||
func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) {
|
||||
func ptrace1(request int, pid int, addr uintptr, data uintptr) (err error) {
|
||||
_, _, e1 := syscall_syscall6(funcPC(libc_ptrace_trampoline), uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0)
|
||||
if e1 != 0 {
|
||||
err = errnoErr(e1)
|
||||
|
|
|
|||
|
|
@ -462,10 +462,8 @@ func libc_munlockall_trampoline()
|
|||
|
||||
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||
|
||||
func pipe() (r int, w int, err error) {
|
||||
r0, r1, e1 := syscall_rawSyscall(funcPC(libc_pipe_trampoline), 0, 0, 0)
|
||||
r = int(r0)
|
||||
w = int(r1)
|
||||
func pipe(p *[2]int32) (err error) {
|
||||
_, _, e1 := syscall_rawSyscall(funcPC(libc_pipe_trampoline), uintptr(unsafe.Pointer(p)), 0, 0)
|
||||
if e1 != 0 {
|
||||
err = errnoErr(e1)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -462,10 +462,8 @@ func libc_munlockall_trampoline()
|
|||
|
||||
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||
|
||||
func pipe() (r int, w int, err error) {
|
||||
r0, r1, e1 := syscall_rawSyscall(funcPC(libc_pipe_trampoline), 0, 0, 0)
|
||||
r = int(r0)
|
||||
w = int(r1)
|
||||
func pipe(p *[2]int32) (err error) {
|
||||
_, _, e1 := syscall_rawSyscall(funcPC(libc_pipe_trampoline), uintptr(unsafe.Pointer(p)), 0, 0)
|
||||
if e1 != 0 {
|
||||
err = errnoErr(e1)
|
||||
}
|
||||
|
|
@ -2381,7 +2379,7 @@ func libc_lstat_trampoline()
|
|||
|
||||
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||
|
||||
func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) {
|
||||
func ptrace1(request int, pid int, addr uintptr, data uintptr) (err error) {
|
||||
_, _, e1 := syscall_syscall6(funcPC(libc_ptrace_trampoline), uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0)
|
||||
if e1 != 0 {
|
||||
err = errnoErr(e1)
|
||||
|
|
|
|||
|
|
@ -14,22 +14,19 @@ import (
|
|||
//go:cgo_import_dynamic libc_writev writev "libc.so"
|
||||
//go:cgo_import_dynamic libc_pwritev pwritev "libc.so"
|
||||
//go:cgo_import_dynamic libc_accept4 accept4 "libsocket.so"
|
||||
//go:cgo_import_dynamic libc_pipe2 pipe2 "libc.so"
|
||||
|
||||
//go:linkname procreadv libc_readv
|
||||
//go:linkname procpreadv libc_preadv
|
||||
//go:linkname procwritev libc_writev
|
||||
//go:linkname procpwritev libc_pwritev
|
||||
//go:linkname procaccept4 libc_accept4
|
||||
//go:linkname procpipe2 libc_pipe2
|
||||
|
||||
var (
|
||||
procreadv,
|
||||
procpreadv,
|
||||
procwritev,
|
||||
procpwritev,
|
||||
procaccept4,
|
||||
procpipe2 syscallFunc
|
||||
procaccept4 syscallFunc
|
||||
)
|
||||
|
||||
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||
|
|
@ -102,13 +99,3 @@ func accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int,
|
|||
}
|
||||
return
|
||||
}
|
||||
|
||||
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||
|
||||
func pipe2(p *[2]_C_int, flags int) (err error) {
|
||||
_, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procpipe2)), 2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0, 0, 0, 0)
|
||||
if e1 != 0 {
|
||||
err = e1
|
||||
}
|
||||
return
|
||||
}
|
||||
|
|
|
|||
|
|
@ -11,6 +11,7 @@ import (
|
|||
)
|
||||
|
||||
//go:cgo_import_dynamic libc_pipe pipe "libc.so"
|
||||
//go:cgo_import_dynamic libc_pipe2 pipe2 "libc.so"
|
||||
//go:cgo_import_dynamic libc_getsockname getsockname "libsocket.so"
|
||||
//go:cgo_import_dynamic libc_getcwd getcwd "libc.so"
|
||||
//go:cgo_import_dynamic libc_getgroups getgroups "libc.so"
|
||||
|
|
@ -140,6 +141,7 @@ import (
|
|||
//go:cgo_import_dynamic libc_recvfrom recvfrom "libsocket.so"
|
||||
|
||||
//go:linkname procpipe libc_pipe
|
||||
//go:linkname procpipe2 libc_pipe2
|
||||
//go:linkname procgetsockname libc_getsockname
|
||||
//go:linkname procGetcwd libc_getcwd
|
||||
//go:linkname procgetgroups libc_getgroups
|
||||
|
|
@ -270,6 +272,7 @@ import (
|
|||
|
||||
var (
|
||||
procpipe,
|
||||
procpipe2,
|
||||
procgetsockname,
|
||||
procGetcwd,
|
||||
procgetgroups,
|
||||
|
|
@ -412,6 +415,16 @@ func pipe(p *[2]_C_int) (n int, err error) {
|
|||
|
||||
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||
|
||||
func pipe2(p *[2]_C_int, flags int) (err error) {
|
||||
_, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procpipe2)), 2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0, 0, 0, 0)
|
||||
if e1 != 0 {
|
||||
err = e1
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||
|
||||
func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {
|
||||
_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procgetsockname)), 3, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), 0, 0, 0)
|
||||
if e1 != 0 {
|
||||
|
|
|
|||
|
|
@ -219,6 +219,7 @@ const (
|
|||
SizeofSockaddrUnix = 0x401
|
||||
SizeofSockaddrDatalink = 0x80
|
||||
SizeofLinger = 0x8
|
||||
SizeofIovec = 0x8
|
||||
SizeofIPMreq = 0x8
|
||||
SizeofIPv6Mreq = 0x14
|
||||
SizeofIPv6MTUInfo = 0x20
|
||||
|
|
|
|||
|
|
@ -223,6 +223,7 @@ const (
|
|||
SizeofSockaddrUnix = 0x401
|
||||
SizeofSockaddrDatalink = 0x80
|
||||
SizeofLinger = 0x8
|
||||
SizeofIovec = 0x10
|
||||
SizeofIPMreq = 0x8
|
||||
SizeofIPv6Mreq = 0x14
|
||||
SizeofIPv6MTUInfo = 0x20
|
||||
|
|
|
|||
|
|
@ -234,6 +234,7 @@ const (
|
|||
SizeofSockaddrUnix = 0x6a
|
||||
SizeofSockaddrDatalink = 0x36
|
||||
SizeofLinger = 0x8
|
||||
SizeofIovec = 0x10
|
||||
SizeofIPMreq = 0x8
|
||||
SizeofIPv6Mreq = 0x14
|
||||
SizeofMsghdr = 0x30
|
||||
|
|
|
|||
|
|
@ -313,6 +313,7 @@ const (
|
|||
SizeofSockaddrUnix = 0x6a
|
||||
SizeofSockaddrDatalink = 0x36
|
||||
SizeofLinger = 0x8
|
||||
SizeofIovec = 0x8
|
||||
SizeofIPMreq = 0x8
|
||||
SizeofIPMreqn = 0xc
|
||||
SizeofIPv6Mreq = 0x14
|
||||
|
|
|
|||
|
|
@ -309,6 +309,7 @@ const (
|
|||
SizeofSockaddrUnix = 0x6a
|
||||
SizeofSockaddrDatalink = 0x36
|
||||
SizeofLinger = 0x8
|
||||
SizeofIovec = 0x10
|
||||
SizeofIPMreq = 0x8
|
||||
SizeofIPMreqn = 0xc
|
||||
SizeofIPv6Mreq = 0x14
|
||||
|
|
|
|||
|
|
@ -311,6 +311,7 @@ const (
|
|||
SizeofSockaddrUnix = 0x6a
|
||||
SizeofSockaddrDatalink = 0x36
|
||||
SizeofLinger = 0x8
|
||||
SizeofIovec = 0x8
|
||||
SizeofIPMreq = 0x8
|
||||
SizeofIPMreqn = 0xc
|
||||
SizeofIPv6Mreq = 0x14
|
||||
|
|
|
|||
|
|
@ -309,6 +309,7 @@ const (
|
|||
SizeofSockaddrUnix = 0x6a
|
||||
SizeofSockaddrDatalink = 0x36
|
||||
SizeofLinger = 0x8
|
||||
SizeofIovec = 0x10
|
||||
SizeofIPMreq = 0x8
|
||||
SizeofIPMreqn = 0xc
|
||||
SizeofIPv6Mreq = 0x14
|
||||
|
|
|
|||
|
|
@ -3222,3 +3222,461 @@ const (
|
|||
MPLS_IPTUNNEL_TTL = 0x2
|
||||
MPLS_IPTUNNEL_MAX = 0x2
|
||||
)
|
||||
|
||||
const (
|
||||
ETHTOOL_ID_UNSPEC = 0x0
|
||||
ETHTOOL_RX_COPYBREAK = 0x1
|
||||
ETHTOOL_TX_COPYBREAK = 0x2
|
||||
ETHTOOL_PFC_PREVENTION_TOUT = 0x3
|
||||
ETHTOOL_TUNABLE_UNSPEC = 0x0
|
||||
ETHTOOL_TUNABLE_U8 = 0x1
|
||||
ETHTOOL_TUNABLE_U16 = 0x2
|
||||
ETHTOOL_TUNABLE_U32 = 0x3
|
||||
ETHTOOL_TUNABLE_U64 = 0x4
|
||||
ETHTOOL_TUNABLE_STRING = 0x5
|
||||
ETHTOOL_TUNABLE_S8 = 0x6
|
||||
ETHTOOL_TUNABLE_S16 = 0x7
|
||||
ETHTOOL_TUNABLE_S32 = 0x8
|
||||
ETHTOOL_TUNABLE_S64 = 0x9
|
||||
ETHTOOL_PHY_ID_UNSPEC = 0x0
|
||||
ETHTOOL_PHY_DOWNSHIFT = 0x1
|
||||
ETHTOOL_PHY_FAST_LINK_DOWN = 0x2
|
||||
ETHTOOL_PHY_EDPD = 0x3
|
||||
ETHTOOL_LINK_EXT_STATE_AUTONEG = 0x0
|
||||
ETHTOOL_LINK_EXT_STATE_LINK_TRAINING_FAILURE = 0x1
|
||||
ETHTOOL_LINK_EXT_STATE_LINK_LOGICAL_MISMATCH = 0x2
|
||||
ETHTOOL_LINK_EXT_STATE_BAD_SIGNAL_INTEGRITY = 0x3
|
||||
ETHTOOL_LINK_EXT_STATE_NO_CABLE = 0x4
|
||||
ETHTOOL_LINK_EXT_STATE_CABLE_ISSUE = 0x5
|
||||
ETHTOOL_LINK_EXT_STATE_EEPROM_ISSUE = 0x6
|
||||
ETHTOOL_LINK_EXT_STATE_CALIBRATION_FAILURE = 0x7
|
||||
ETHTOOL_LINK_EXT_STATE_POWER_BUDGET_EXCEEDED = 0x8
|
||||
ETHTOOL_LINK_EXT_STATE_OVERHEAT = 0x9
|
||||
ETHTOOL_LINK_EXT_SUBSTATE_AN_NO_PARTNER_DETECTED = 0x1
|
||||
ETHTOOL_LINK_EXT_SUBSTATE_AN_ACK_NOT_RECEIVED = 0x2
|
||||
ETHTOOL_LINK_EXT_SUBSTATE_AN_NEXT_PAGE_EXCHANGE_FAILED = 0x3
|
||||
ETHTOOL_LINK_EXT_SUBSTATE_AN_NO_PARTNER_DETECTED_FORCE_MODE = 0x4
|
||||
ETHTOOL_LINK_EXT_SUBSTATE_AN_FEC_MISMATCH_DURING_OVERRIDE = 0x5
|
||||
ETHTOOL_LINK_EXT_SUBSTATE_AN_NO_HCD = 0x6
|
||||
ETHTOOL_LINK_EXT_SUBSTATE_LT_KR_FRAME_LOCK_NOT_ACQUIRED = 0x1
|
||||
ETHTOOL_LINK_EXT_SUBSTATE_LT_KR_LINK_INHIBIT_TIMEOUT = 0x2
|
||||
ETHTOOL_LINK_EXT_SUBSTATE_LT_KR_LINK_PARTNER_DID_NOT_SET_RECEIVER_READY = 0x3
|
||||
ETHTOOL_LINK_EXT_SUBSTATE_LT_REMOTE_FAULT = 0x4
|
||||
ETHTOOL_LINK_EXT_SUBSTATE_LLM_PCS_DID_NOT_ACQUIRE_BLOCK_LOCK = 0x1
|
||||
ETHTOOL_LINK_EXT_SUBSTATE_LLM_PCS_DID_NOT_ACQUIRE_AM_LOCK = 0x2
|
||||
ETHTOOL_LINK_EXT_SUBSTATE_LLM_PCS_DID_NOT_GET_ALIGN_STATUS = 0x3
|
||||
ETHTOOL_LINK_EXT_SUBSTATE_LLM_FC_FEC_IS_NOT_LOCKED = 0x4
|
||||
ETHTOOL_LINK_EXT_SUBSTATE_LLM_RS_FEC_IS_NOT_LOCKED = 0x5
|
||||
ETHTOOL_LINK_EXT_SUBSTATE_BSI_LARGE_NUMBER_OF_PHYSICAL_ERRORS = 0x1
|
||||
ETHTOOL_LINK_EXT_SUBSTATE_BSI_UNSUPPORTED_RATE = 0x2
|
||||
ETHTOOL_LINK_EXT_SUBSTATE_CI_UNSUPPORTED_CABLE = 0x1
|
||||
ETHTOOL_LINK_EXT_SUBSTATE_CI_CABLE_TEST_FAILURE = 0x2
|
||||
ETHTOOL_FLASH_ALL_REGIONS = 0x0
|
||||
ETHTOOL_F_UNSUPPORTED__BIT = 0x0
|
||||
ETHTOOL_F_WISH__BIT = 0x1
|
||||
ETHTOOL_F_COMPAT__BIT = 0x2
|
||||
ETHTOOL_FEC_NONE_BIT = 0x0
|
||||
ETHTOOL_FEC_AUTO_BIT = 0x1
|
||||
ETHTOOL_FEC_OFF_BIT = 0x2
|
||||
ETHTOOL_FEC_RS_BIT = 0x3
|
||||
ETHTOOL_FEC_BASER_BIT = 0x4
|
||||
ETHTOOL_FEC_LLRS_BIT = 0x5
|
||||
ETHTOOL_LINK_MODE_10baseT_Half_BIT = 0x0
|
||||
ETHTOOL_LINK_MODE_10baseT_Full_BIT = 0x1
|
||||
ETHTOOL_LINK_MODE_100baseT_Half_BIT = 0x2
|
||||
ETHTOOL_LINK_MODE_100baseT_Full_BIT = 0x3
|
||||
ETHTOOL_LINK_MODE_1000baseT_Half_BIT = 0x4
|
||||
ETHTOOL_LINK_MODE_1000baseT_Full_BIT = 0x5
|
||||
ETHTOOL_LINK_MODE_Autoneg_BIT = 0x6
|
||||
ETHTOOL_LINK_MODE_TP_BIT = 0x7
|
||||
ETHTOOL_LINK_MODE_AUI_BIT = 0x8
|
||||
ETHTOOL_LINK_MODE_MII_BIT = 0x9
|
||||
ETHTOOL_LINK_MODE_FIBRE_BIT = 0xa
|
||||
ETHTOOL_LINK_MODE_BNC_BIT = 0xb
|
||||
ETHTOOL_LINK_MODE_10000baseT_Full_BIT = 0xc
|
||||
ETHTOOL_LINK_MODE_Pause_BIT = 0xd
|
||||
ETHTOOL_LINK_MODE_Asym_Pause_BIT = 0xe
|
||||
ETHTOOL_LINK_MODE_2500baseX_Full_BIT = 0xf
|
||||
ETHTOOL_LINK_MODE_Backplane_BIT = 0x10
|
||||
ETHTOOL_LINK_MODE_1000baseKX_Full_BIT = 0x11
|
||||
ETHTOOL_LINK_MODE_10000baseKX4_Full_BIT = 0x12
|
||||
ETHTOOL_LINK_MODE_10000baseKR_Full_BIT = 0x13
|
||||
ETHTOOL_LINK_MODE_10000baseR_FEC_BIT = 0x14
|
||||
ETHTOOL_LINK_MODE_20000baseMLD2_Full_BIT = 0x15
|
||||
ETHTOOL_LINK_MODE_20000baseKR2_Full_BIT = 0x16
|
||||
ETHTOOL_LINK_MODE_40000baseKR4_Full_BIT = 0x17
|
||||
ETHTOOL_LINK_MODE_40000baseCR4_Full_BIT = 0x18
|
||||
ETHTOOL_LINK_MODE_40000baseSR4_Full_BIT = 0x19
|
||||
ETHTOOL_LINK_MODE_40000baseLR4_Full_BIT = 0x1a
|
||||
ETHTOOL_LINK_MODE_56000baseKR4_Full_BIT = 0x1b
|
||||
ETHTOOL_LINK_MODE_56000baseCR4_Full_BIT = 0x1c
|
||||
ETHTOOL_LINK_MODE_56000baseSR4_Full_BIT = 0x1d
|
||||
ETHTOOL_LINK_MODE_56000baseLR4_Full_BIT = 0x1e
|
||||
ETHTOOL_LINK_MODE_25000baseCR_Full_BIT = 0x1f
|
||||
ETHTOOL_LINK_MODE_25000baseKR_Full_BIT = 0x20
|
||||
ETHTOOL_LINK_MODE_25000baseSR_Full_BIT = 0x21
|
||||
ETHTOOL_LINK_MODE_50000baseCR2_Full_BIT = 0x22
|
||||
ETHTOOL_LINK_MODE_50000baseKR2_Full_BIT = 0x23
|
||||
ETHTOOL_LINK_MODE_100000baseKR4_Full_BIT = 0x24
|
||||
ETHTOOL_LINK_MODE_100000baseSR4_Full_BIT = 0x25
|
||||
ETHTOOL_LINK_MODE_100000baseCR4_Full_BIT = 0x26
|
||||
ETHTOOL_LINK_MODE_100000baseLR4_ER4_Full_BIT = 0x27
|
||||
ETHTOOL_LINK_MODE_50000baseSR2_Full_BIT = 0x28
|
||||
ETHTOOL_LINK_MODE_1000baseX_Full_BIT = 0x29
|
||||
ETHTOOL_LINK_MODE_10000baseCR_Full_BIT = 0x2a
|
||||
ETHTOOL_LINK_MODE_10000baseSR_Full_BIT = 0x2b
|
||||
ETHTOOL_LINK_MODE_10000baseLR_Full_BIT = 0x2c
|
||||
ETHTOOL_LINK_MODE_10000baseLRM_Full_BIT = 0x2d
|
||||
ETHTOOL_LINK_MODE_10000baseER_Full_BIT = 0x2e
|
||||
ETHTOOL_LINK_MODE_2500baseT_Full_BIT = 0x2f
|
||||
ETHTOOL_LINK_MODE_5000baseT_Full_BIT = 0x30
|
||||
ETHTOOL_LINK_MODE_FEC_NONE_BIT = 0x31
|
||||
ETHTOOL_LINK_MODE_FEC_RS_BIT = 0x32
|
||||
ETHTOOL_LINK_MODE_FEC_BASER_BIT = 0x33
|
||||
ETHTOOL_LINK_MODE_50000baseKR_Full_BIT = 0x34
|
||||
ETHTOOL_LINK_MODE_50000baseSR_Full_BIT = 0x35
|
||||
ETHTOOL_LINK_MODE_50000baseCR_Full_BIT = 0x36
|
||||
ETHTOOL_LINK_MODE_50000baseLR_ER_FR_Full_BIT = 0x37
|
||||
ETHTOOL_LINK_MODE_50000baseDR_Full_BIT = 0x38
|
||||
ETHTOOL_LINK_MODE_100000baseKR2_Full_BIT = 0x39
|
||||
ETHTOOL_LINK_MODE_100000baseSR2_Full_BIT = 0x3a
|
||||
ETHTOOL_LINK_MODE_100000baseCR2_Full_BIT = 0x3b
|
||||
ETHTOOL_LINK_MODE_100000baseLR2_ER2_FR2_Full_BIT = 0x3c
|
||||
ETHTOOL_LINK_MODE_100000baseDR2_Full_BIT = 0x3d
|
||||
ETHTOOL_LINK_MODE_200000baseKR4_Full_BIT = 0x3e
|
||||
ETHTOOL_LINK_MODE_200000baseSR4_Full_BIT = 0x3f
|
||||
ETHTOOL_LINK_MODE_200000baseLR4_ER4_FR4_Full_BIT = 0x40
|
||||
ETHTOOL_LINK_MODE_200000baseDR4_Full_BIT = 0x41
|
||||
ETHTOOL_LINK_MODE_200000baseCR4_Full_BIT = 0x42
|
||||
ETHTOOL_LINK_MODE_100baseT1_Full_BIT = 0x43
|
||||
ETHTOOL_LINK_MODE_1000baseT1_Full_BIT = 0x44
|
||||
ETHTOOL_LINK_MODE_400000baseKR8_Full_BIT = 0x45
|
||||
ETHTOOL_LINK_MODE_400000baseSR8_Full_BIT = 0x46
|
||||
ETHTOOL_LINK_MODE_400000baseLR8_ER8_FR8_Full_BIT = 0x47
|
||||
ETHTOOL_LINK_MODE_400000baseDR8_Full_BIT = 0x48
|
||||
ETHTOOL_LINK_MODE_400000baseCR8_Full_BIT = 0x49
|
||||
ETHTOOL_LINK_MODE_FEC_LLRS_BIT = 0x4a
|
||||
ETHTOOL_LINK_MODE_100000baseKR_Full_BIT = 0x4b
|
||||
ETHTOOL_LINK_MODE_100000baseSR_Full_BIT = 0x4c
|
||||
ETHTOOL_LINK_MODE_100000baseLR_ER_FR_Full_BIT = 0x4d
|
||||
ETHTOOL_LINK_MODE_100000baseCR_Full_BIT = 0x4e
|
||||
ETHTOOL_LINK_MODE_100000baseDR_Full_BIT = 0x4f
|
||||
ETHTOOL_LINK_MODE_200000baseKR2_Full_BIT = 0x50
|
||||
ETHTOOL_LINK_MODE_200000baseSR2_Full_BIT = 0x51
|
||||
ETHTOOL_LINK_MODE_200000baseLR2_ER2_FR2_Full_BIT = 0x52
|
||||
ETHTOOL_LINK_MODE_200000baseDR2_Full_BIT = 0x53
|
||||
ETHTOOL_LINK_MODE_200000baseCR2_Full_BIT = 0x54
|
||||
ETHTOOL_LINK_MODE_400000baseKR4_Full_BIT = 0x55
|
||||
ETHTOOL_LINK_MODE_400000baseSR4_Full_BIT = 0x56
|
||||
ETHTOOL_LINK_MODE_400000baseLR4_ER4_FR4_Full_BIT = 0x57
|
||||
ETHTOOL_LINK_MODE_400000baseDR4_Full_BIT = 0x58
|
||||
ETHTOOL_LINK_MODE_400000baseCR4_Full_BIT = 0x59
|
||||
ETHTOOL_LINK_MODE_100baseFX_Half_BIT = 0x5a
|
||||
ETHTOOL_LINK_MODE_100baseFX_Full_BIT = 0x5b
|
||||
|
||||
ETHTOOL_MSG_USER_NONE = 0x0
|
||||
ETHTOOL_MSG_STRSET_GET = 0x1
|
||||
ETHTOOL_MSG_LINKINFO_GET = 0x2
|
||||
ETHTOOL_MSG_LINKINFO_SET = 0x3
|
||||
ETHTOOL_MSG_LINKMODES_GET = 0x4
|
||||
ETHTOOL_MSG_LINKMODES_SET = 0x5
|
||||
ETHTOOL_MSG_LINKSTATE_GET = 0x6
|
||||
ETHTOOL_MSG_DEBUG_GET = 0x7
|
||||
ETHTOOL_MSG_DEBUG_SET = 0x8
|
||||
ETHTOOL_MSG_WOL_GET = 0x9
|
||||
ETHTOOL_MSG_WOL_SET = 0xa
|
||||
ETHTOOL_MSG_FEATURES_GET = 0xb
|
||||
ETHTOOL_MSG_FEATURES_SET = 0xc
|
||||
ETHTOOL_MSG_PRIVFLAGS_GET = 0xd
|
||||
ETHTOOL_MSG_PRIVFLAGS_SET = 0xe
|
||||
ETHTOOL_MSG_RINGS_GET = 0xf
|
||||
ETHTOOL_MSG_RINGS_SET = 0x10
|
||||
ETHTOOL_MSG_CHANNELS_GET = 0x11
|
||||
ETHTOOL_MSG_CHANNELS_SET = 0x12
|
||||
ETHTOOL_MSG_COALESCE_GET = 0x13
|
||||
ETHTOOL_MSG_COALESCE_SET = 0x14
|
||||
ETHTOOL_MSG_PAUSE_GET = 0x15
|
||||
ETHTOOL_MSG_PAUSE_SET = 0x16
|
||||
ETHTOOL_MSG_EEE_GET = 0x17
|
||||
ETHTOOL_MSG_EEE_SET = 0x18
|
||||
ETHTOOL_MSG_TSINFO_GET = 0x19
|
||||
ETHTOOL_MSG_CABLE_TEST_ACT = 0x1a
|
||||
ETHTOOL_MSG_CABLE_TEST_TDR_ACT = 0x1b
|
||||
ETHTOOL_MSG_TUNNEL_INFO_GET = 0x1c
|
||||
ETHTOOL_MSG_USER_MAX = 0x1c
|
||||
ETHTOOL_MSG_KERNEL_NONE = 0x0
|
||||
ETHTOOL_MSG_STRSET_GET_REPLY = 0x1
|
||||
ETHTOOL_MSG_LINKINFO_GET_REPLY = 0x2
|
||||
ETHTOOL_MSG_LINKINFO_NTF = 0x3
|
||||
ETHTOOL_MSG_LINKMODES_GET_REPLY = 0x4
|
||||
ETHTOOL_MSG_LINKMODES_NTF = 0x5
|
||||
ETHTOOL_MSG_LINKSTATE_GET_REPLY = 0x6
|
||||
ETHTOOL_MSG_DEBUG_GET_REPLY = 0x7
|
||||
ETHTOOL_MSG_DEBUG_NTF = 0x8
|
||||
ETHTOOL_MSG_WOL_GET_REPLY = 0x9
|
||||
ETHTOOL_MSG_WOL_NTF = 0xa
|
||||
ETHTOOL_MSG_FEATURES_GET_REPLY = 0xb
|
||||
ETHTOOL_MSG_FEATURES_SET_REPLY = 0xc
|
||||
ETHTOOL_MSG_FEATURES_NTF = 0xd
|
||||
ETHTOOL_MSG_PRIVFLAGS_GET_REPLY = 0xe
|
||||
ETHTOOL_MSG_PRIVFLAGS_NTF = 0xf
|
||||
ETHTOOL_MSG_RINGS_GET_REPLY = 0x10
|
||||
ETHTOOL_MSG_RINGS_NTF = 0x11
|
||||
ETHTOOL_MSG_CHANNELS_GET_REPLY = 0x12
|
||||
ETHTOOL_MSG_CHANNELS_NTF = 0x13
|
||||
ETHTOOL_MSG_COALESCE_GET_REPLY = 0x14
|
||||
ETHTOOL_MSG_COALESCE_NTF = 0x15
|
||||
ETHTOOL_MSG_PAUSE_GET_REPLY = 0x16
|
||||
ETHTOOL_MSG_PAUSE_NTF = 0x17
|
||||
ETHTOOL_MSG_EEE_GET_REPLY = 0x18
|
||||
ETHTOOL_MSG_EEE_NTF = 0x19
|
||||
ETHTOOL_MSG_TSINFO_GET_REPLY = 0x1a
|
||||
ETHTOOL_MSG_CABLE_TEST_NTF = 0x1b
|
||||
ETHTOOL_MSG_CABLE_TEST_TDR_NTF = 0x1c
|
||||
ETHTOOL_MSG_TUNNEL_INFO_GET_REPLY = 0x1d
|
||||
ETHTOOL_MSG_KERNEL_MAX = 0x1d
|
||||
ETHTOOL_A_HEADER_UNSPEC = 0x0
|
||||
ETHTOOL_A_HEADER_DEV_INDEX = 0x1
|
||||
ETHTOOL_A_HEADER_DEV_NAME = 0x2
|
||||
ETHTOOL_A_HEADER_FLAGS = 0x3
|
||||
ETHTOOL_A_HEADER_MAX = 0x3
|
||||
ETHTOOL_A_BITSET_BIT_UNSPEC = 0x0
|
||||
ETHTOOL_A_BITSET_BIT_INDEX = 0x1
|
||||
ETHTOOL_A_BITSET_BIT_NAME = 0x2
|
||||
ETHTOOL_A_BITSET_BIT_VALUE = 0x3
|
||||
ETHTOOL_A_BITSET_BIT_MAX = 0x3
|
||||
ETHTOOL_A_BITSET_BITS_UNSPEC = 0x0
|
||||
ETHTOOL_A_BITSET_BITS_BIT = 0x1
|
||||
ETHTOOL_A_BITSET_BITS_MAX = 0x1
|
||||
ETHTOOL_A_BITSET_UNSPEC = 0x0
|
||||
ETHTOOL_A_BITSET_NOMASK = 0x1
|
||||
ETHTOOL_A_BITSET_SIZE = 0x2
|
||||
ETHTOOL_A_BITSET_BITS = 0x3
|
||||
ETHTOOL_A_BITSET_VALUE = 0x4
|
||||
ETHTOOL_A_BITSET_MASK = 0x5
|
||||
ETHTOOL_A_BITSET_MAX = 0x5
|
||||
ETHTOOL_A_STRING_UNSPEC = 0x0
|
||||
ETHTOOL_A_STRING_INDEX = 0x1
|
||||
ETHTOOL_A_STRING_VALUE = 0x2
|
||||
ETHTOOL_A_STRING_MAX = 0x2
|
||||
ETHTOOL_A_STRINGS_UNSPEC = 0x0
|
||||
ETHTOOL_A_STRINGS_STRING = 0x1
|
||||
ETHTOOL_A_STRINGS_MAX = 0x1
|
||||
ETHTOOL_A_STRINGSET_UNSPEC = 0x0
|
||||
ETHTOOL_A_STRINGSET_ID = 0x1
|
||||
ETHTOOL_A_STRINGSET_COUNT = 0x2
|
||||
ETHTOOL_A_STRINGSET_STRINGS = 0x3
|
||||
ETHTOOL_A_STRINGSET_MAX = 0x3
|
||||
ETHTOOL_A_STRINGSETS_UNSPEC = 0x0
|
||||
ETHTOOL_A_STRINGSETS_STRINGSET = 0x1
|
||||
ETHTOOL_A_STRINGSETS_MAX = 0x1
|
||||
ETHTOOL_A_STRSET_UNSPEC = 0x0
|
||||
ETHTOOL_A_STRSET_HEADER = 0x1
|
||||
ETHTOOL_A_STRSET_STRINGSETS = 0x2
|
||||
ETHTOOL_A_STRSET_COUNTS_ONLY = 0x3
|
||||
ETHTOOL_A_STRSET_MAX = 0x3
|
||||
ETHTOOL_A_LINKINFO_UNSPEC = 0x0
|
||||
ETHTOOL_A_LINKINFO_HEADER = 0x1
|
||||
ETHTOOL_A_LINKINFO_PORT = 0x2
|
||||
ETHTOOL_A_LINKINFO_PHYADDR = 0x3
|
||||
ETHTOOL_A_LINKINFO_TP_MDIX = 0x4
|
||||
ETHTOOL_A_LINKINFO_TP_MDIX_CTRL = 0x5
|
||||
ETHTOOL_A_LINKINFO_TRANSCEIVER = 0x6
|
||||
ETHTOOL_A_LINKINFO_MAX = 0x6
|
||||
ETHTOOL_A_LINKMODES_UNSPEC = 0x0
|
||||
ETHTOOL_A_LINKMODES_HEADER = 0x1
|
||||
ETHTOOL_A_LINKMODES_AUTONEG = 0x2
|
||||
ETHTOOL_A_LINKMODES_OURS = 0x3
|
||||
ETHTOOL_A_LINKMODES_PEER = 0x4
|
||||
ETHTOOL_A_LINKMODES_SPEED = 0x5
|
||||
ETHTOOL_A_LINKMODES_DUPLEX = 0x6
|
||||
ETHTOOL_A_LINKMODES_MASTER_SLAVE_CFG = 0x7
|
||||
ETHTOOL_A_LINKMODES_MASTER_SLAVE_STATE = 0x8
|
||||
ETHTOOL_A_LINKMODES_MAX = 0x8
|
||||
ETHTOOL_A_LINKSTATE_UNSPEC = 0x0
|
||||
ETHTOOL_A_LINKSTATE_HEADER = 0x1
|
||||
ETHTOOL_A_LINKSTATE_LINK = 0x2
|
||||
ETHTOOL_A_LINKSTATE_SQI = 0x3
|
||||
ETHTOOL_A_LINKSTATE_SQI_MAX = 0x4
|
||||
ETHTOOL_A_LINKSTATE_EXT_STATE = 0x5
|
||||
ETHTOOL_A_LINKSTATE_EXT_SUBSTATE = 0x6
|
||||
ETHTOOL_A_LINKSTATE_MAX = 0x6
|
||||
ETHTOOL_A_DEBUG_UNSPEC = 0x0
|
||||
ETHTOOL_A_DEBUG_HEADER = 0x1
|
||||
ETHTOOL_A_DEBUG_MSGMASK = 0x2
|
||||
ETHTOOL_A_DEBUG_MAX = 0x2
|
||||
ETHTOOL_A_WOL_UNSPEC = 0x0
|
||||
ETHTOOL_A_WOL_HEADER = 0x1
|
||||
ETHTOOL_A_WOL_MODES = 0x2
|
||||
ETHTOOL_A_WOL_SOPASS = 0x3
|
||||
ETHTOOL_A_WOL_MAX = 0x3
|
||||
ETHTOOL_A_FEATURES_UNSPEC = 0x0
|
||||
ETHTOOL_A_FEATURES_HEADER = 0x1
|
||||
ETHTOOL_A_FEATURES_HW = 0x2
|
||||
ETHTOOL_A_FEATURES_WANTED = 0x3
|
||||
ETHTOOL_A_FEATURES_ACTIVE = 0x4
|
||||
ETHTOOL_A_FEATURES_NOCHANGE = 0x5
|
||||
ETHTOOL_A_FEATURES_MAX = 0x5
|
||||
ETHTOOL_A_PRIVFLAGS_UNSPEC = 0x0
|
||||
ETHTOOL_A_PRIVFLAGS_HEADER = 0x1
|
||||
ETHTOOL_A_PRIVFLAGS_FLAGS = 0x2
|
||||
ETHTOOL_A_PRIVFLAGS_MAX = 0x2
|
||||
ETHTOOL_A_RINGS_UNSPEC = 0x0
|
||||
ETHTOOL_A_RINGS_HEADER = 0x1
|
||||
ETHTOOL_A_RINGS_RX_MAX = 0x2
|
||||
ETHTOOL_A_RINGS_RX_MINI_MAX = 0x3
|
||||
ETHTOOL_A_RINGS_RX_JUMBO_MAX = 0x4
|
||||
ETHTOOL_A_RINGS_TX_MAX = 0x5
|
||||
ETHTOOL_A_RINGS_RX = 0x6
|
||||
ETHTOOL_A_RINGS_RX_MINI = 0x7
|
||||
ETHTOOL_A_RINGS_RX_JUMBO = 0x8
|
||||
ETHTOOL_A_RINGS_TX = 0x9
|
||||
ETHTOOL_A_RINGS_MAX = 0x9
|
||||
ETHTOOL_A_CHANNELS_UNSPEC = 0x0
|
||||
ETHTOOL_A_CHANNELS_HEADER = 0x1
|
||||
ETHTOOL_A_CHANNELS_RX_MAX = 0x2
|
||||
ETHTOOL_A_CHANNELS_TX_MAX = 0x3
|
||||
ETHTOOL_A_CHANNELS_OTHER_MAX = 0x4
|
||||
ETHTOOL_A_CHANNELS_COMBINED_MAX = 0x5
|
||||
ETHTOOL_A_CHANNELS_RX_COUNT = 0x6
|
||||
ETHTOOL_A_CHANNELS_TX_COUNT = 0x7
|
||||
ETHTOOL_A_CHANNELS_OTHER_COUNT = 0x8
|
||||
ETHTOOL_A_CHANNELS_COMBINED_COUNT = 0x9
|
||||
ETHTOOL_A_CHANNELS_MAX = 0x9
|
||||
ETHTOOL_A_COALESCE_UNSPEC = 0x0
|
||||
ETHTOOL_A_COALESCE_HEADER = 0x1
|
||||
ETHTOOL_A_COALESCE_RX_USECS = 0x2
|
||||
ETHTOOL_A_COALESCE_RX_MAX_FRAMES = 0x3
|
||||
ETHTOOL_A_COALESCE_RX_USECS_IRQ = 0x4
|
||||
ETHTOOL_A_COALESCE_RX_MAX_FRAMES_IRQ = 0x5
|
||||
ETHTOOL_A_COALESCE_TX_USECS = 0x6
|
||||
ETHTOOL_A_COALESCE_TX_MAX_FRAMES = 0x7
|
||||
ETHTOOL_A_COALESCE_TX_USECS_IRQ = 0x8
|
||||
ETHTOOL_A_COALESCE_TX_MAX_FRAMES_IRQ = 0x9
|
||||
ETHTOOL_A_COALESCE_STATS_BLOCK_USECS = 0xa
|
||||
ETHTOOL_A_COALESCE_USE_ADAPTIVE_RX = 0xb
|
||||
ETHTOOL_A_COALESCE_USE_ADAPTIVE_TX = 0xc
|
||||
ETHTOOL_A_COALESCE_PKT_RATE_LOW = 0xd
|
||||
ETHTOOL_A_COALESCE_RX_USECS_LOW = 0xe
|
||||
ETHTOOL_A_COALESCE_RX_MAX_FRAMES_LOW = 0xf
|
||||
ETHTOOL_A_COALESCE_TX_USECS_LOW = 0x10
|
||||
ETHTOOL_A_COALESCE_TX_MAX_FRAMES_LOW = 0x11
|
||||
ETHTOOL_A_COALESCE_PKT_RATE_HIGH = 0x12
|
||||
ETHTOOL_A_COALESCE_RX_USECS_HIGH = 0x13
|
||||
ETHTOOL_A_COALESCE_RX_MAX_FRAMES_HIGH = 0x14
|
||||
ETHTOOL_A_COALESCE_TX_USECS_HIGH = 0x15
|
||||
ETHTOOL_A_COALESCE_TX_MAX_FRAMES_HIGH = 0x16
|
||||
ETHTOOL_A_COALESCE_RATE_SAMPLE_INTERVAL = 0x17
|
||||
ETHTOOL_A_COALESCE_MAX = 0x17
|
||||
ETHTOOL_A_PAUSE_UNSPEC = 0x0
|
||||
ETHTOOL_A_PAUSE_HEADER = 0x1
|
||||
ETHTOOL_A_PAUSE_AUTONEG = 0x2
|
||||
ETHTOOL_A_PAUSE_RX = 0x3
|
||||
ETHTOOL_A_PAUSE_TX = 0x4
|
||||
ETHTOOL_A_PAUSE_STATS = 0x5
|
||||
ETHTOOL_A_PAUSE_MAX = 0x5
|
||||
ETHTOOL_A_PAUSE_STAT_UNSPEC = 0x0
|
||||
ETHTOOL_A_PAUSE_STAT_PAD = 0x1
|
||||
ETHTOOL_A_PAUSE_STAT_TX_FRAMES = 0x2
|
||||
ETHTOOL_A_PAUSE_STAT_RX_FRAMES = 0x3
|
||||
ETHTOOL_A_PAUSE_STAT_MAX = 0x3
|
||||
ETHTOOL_A_EEE_UNSPEC = 0x0
|
||||
ETHTOOL_A_EEE_HEADER = 0x1
|
||||
ETHTOOL_A_EEE_MODES_OURS = 0x2
|
||||
ETHTOOL_A_EEE_MODES_PEER = 0x3
|
||||
ETHTOOL_A_EEE_ACTIVE = 0x4
|
||||
ETHTOOL_A_EEE_ENABLED = 0x5
|
||||
ETHTOOL_A_EEE_TX_LPI_ENABLED = 0x6
|
||||
ETHTOOL_A_EEE_TX_LPI_TIMER = 0x7
|
||||
ETHTOOL_A_EEE_MAX = 0x7
|
||||
ETHTOOL_A_TSINFO_UNSPEC = 0x0
|
||||
ETHTOOL_A_TSINFO_HEADER = 0x1
|
||||
ETHTOOL_A_TSINFO_TIMESTAMPING = 0x2
|
||||
ETHTOOL_A_TSINFO_TX_TYPES = 0x3
|
||||
ETHTOOL_A_TSINFO_RX_FILTERS = 0x4
|
||||
ETHTOOL_A_TSINFO_PHC_INDEX = 0x5
|
||||
ETHTOOL_A_TSINFO_MAX = 0x5
|
||||
ETHTOOL_A_CABLE_TEST_UNSPEC = 0x0
|
||||
ETHTOOL_A_CABLE_TEST_HEADER = 0x1
|
||||
ETHTOOL_A_CABLE_TEST_MAX = 0x1
|
||||
ETHTOOL_A_CABLE_RESULT_CODE_UNSPEC = 0x0
|
||||
ETHTOOL_A_CABLE_RESULT_CODE_OK = 0x1
|
||||
ETHTOOL_A_CABLE_RESULT_CODE_OPEN = 0x2
|
||||
ETHTOOL_A_CABLE_RESULT_CODE_SAME_SHORT = 0x3
|
||||
ETHTOOL_A_CABLE_RESULT_CODE_CROSS_SHORT = 0x4
|
||||
ETHTOOL_A_CABLE_PAIR_A = 0x0
|
||||
ETHTOOL_A_CABLE_PAIR_B = 0x1
|
||||
ETHTOOL_A_CABLE_PAIR_C = 0x2
|
||||
ETHTOOL_A_CABLE_PAIR_D = 0x3
|
||||
ETHTOOL_A_CABLE_RESULT_UNSPEC = 0x0
|
||||
ETHTOOL_A_CABLE_RESULT_PAIR = 0x1
|
||||
ETHTOOL_A_CABLE_RESULT_CODE = 0x2
|
||||
ETHTOOL_A_CABLE_RESULT_MAX = 0x2
|
||||
ETHTOOL_A_CABLE_FAULT_LENGTH_UNSPEC = 0x0
|
||||
ETHTOOL_A_CABLE_FAULT_LENGTH_PAIR = 0x1
|
||||
ETHTOOL_A_CABLE_FAULT_LENGTH_CM = 0x2
|
||||
ETHTOOL_A_CABLE_FAULT_LENGTH_MAX = 0x2
|
||||
ETHTOOL_A_CABLE_TEST_NTF_STATUS_UNSPEC = 0x0
|
||||
ETHTOOL_A_CABLE_TEST_NTF_STATUS_STARTED = 0x1
|
||||
ETHTOOL_A_CABLE_TEST_NTF_STATUS_COMPLETED = 0x2
|
||||
ETHTOOL_A_CABLE_NEST_UNSPEC = 0x0
|
||||
ETHTOOL_A_CABLE_NEST_RESULT = 0x1
|
||||
ETHTOOL_A_CABLE_NEST_FAULT_LENGTH = 0x2
|
||||
ETHTOOL_A_CABLE_NEST_MAX = 0x2
|
||||
ETHTOOL_A_CABLE_TEST_NTF_UNSPEC = 0x0
|
||||
ETHTOOL_A_CABLE_TEST_NTF_HEADER = 0x1
|
||||
ETHTOOL_A_CABLE_TEST_NTF_STATUS = 0x2
|
||||
ETHTOOL_A_CABLE_TEST_NTF_NEST = 0x3
|
||||
ETHTOOL_A_CABLE_TEST_NTF_MAX = 0x3
|
||||
ETHTOOL_A_CABLE_TEST_TDR_CFG_UNSPEC = 0x0
|
||||
ETHTOOL_A_CABLE_TEST_TDR_CFG_FIRST = 0x1
|
||||
ETHTOOL_A_CABLE_TEST_TDR_CFG_LAST = 0x2
|
||||
ETHTOOL_A_CABLE_TEST_TDR_CFG_STEP = 0x3
|
||||
ETHTOOL_A_CABLE_TEST_TDR_CFG_PAIR = 0x4
|
||||
ETHTOOL_A_CABLE_TEST_TDR_CFG_MAX = 0x4
|
||||
ETHTOOL_A_CABLE_TEST_TDR_UNSPEC = 0x0
|
||||
ETHTOOL_A_CABLE_TEST_TDR_HEADER = 0x1
|
||||
ETHTOOL_A_CABLE_TEST_TDR_CFG = 0x2
|
||||
ETHTOOL_A_CABLE_TEST_TDR_MAX = 0x2
|
||||
ETHTOOL_A_CABLE_AMPLITUDE_UNSPEC = 0x0
|
||||
ETHTOOL_A_CABLE_AMPLITUDE_PAIR = 0x1
|
||||
ETHTOOL_A_CABLE_AMPLITUDE_mV = 0x2
|
||||
ETHTOOL_A_CABLE_AMPLITUDE_MAX = 0x2
|
||||
ETHTOOL_A_CABLE_PULSE_UNSPEC = 0x0
|
||||
ETHTOOL_A_CABLE_PULSE_mV = 0x1
|
||||
ETHTOOL_A_CABLE_PULSE_MAX = 0x1
|
||||
ETHTOOL_A_CABLE_STEP_UNSPEC = 0x0
|
||||
ETHTOOL_A_CABLE_STEP_FIRST_DISTANCE = 0x1
|
||||
ETHTOOL_A_CABLE_STEP_LAST_DISTANCE = 0x2
|
||||
ETHTOOL_A_CABLE_STEP_STEP_DISTANCE = 0x3
|
||||
ETHTOOL_A_CABLE_STEP_MAX = 0x3
|
||||
ETHTOOL_A_CABLE_TDR_NEST_UNSPEC = 0x0
|
||||
ETHTOOL_A_CABLE_TDR_NEST_STEP = 0x1
|
||||
ETHTOOL_A_CABLE_TDR_NEST_AMPLITUDE = 0x2
|
||||
ETHTOOL_A_CABLE_TDR_NEST_PULSE = 0x3
|
||||
ETHTOOL_A_CABLE_TDR_NEST_MAX = 0x3
|
||||
ETHTOOL_A_CABLE_TEST_TDR_NTF_UNSPEC = 0x0
|
||||
ETHTOOL_A_CABLE_TEST_TDR_NTF_HEADER = 0x1
|
||||
ETHTOOL_A_CABLE_TEST_TDR_NTF_STATUS = 0x2
|
||||
ETHTOOL_A_CABLE_TEST_TDR_NTF_NEST = 0x3
|
||||
ETHTOOL_A_CABLE_TEST_TDR_NTF_MAX = 0x3
|
||||
ETHTOOL_UDP_TUNNEL_TYPE_VXLAN = 0x0
|
||||
ETHTOOL_UDP_TUNNEL_TYPE_GENEVE = 0x1
|
||||
ETHTOOL_UDP_TUNNEL_TYPE_VXLAN_GPE = 0x2
|
||||
ETHTOOL_A_TUNNEL_UDP_ENTRY_UNSPEC = 0x0
|
||||
ETHTOOL_A_TUNNEL_UDP_ENTRY_PORT = 0x1
|
||||
ETHTOOL_A_TUNNEL_UDP_ENTRY_TYPE = 0x2
|
||||
ETHTOOL_A_TUNNEL_UDP_ENTRY_MAX = 0x2
|
||||
ETHTOOL_A_TUNNEL_UDP_TABLE_UNSPEC = 0x0
|
||||
ETHTOOL_A_TUNNEL_UDP_TABLE_SIZE = 0x1
|
||||
ETHTOOL_A_TUNNEL_UDP_TABLE_TYPES = 0x2
|
||||
ETHTOOL_A_TUNNEL_UDP_TABLE_ENTRY = 0x3
|
||||
ETHTOOL_A_TUNNEL_UDP_TABLE_MAX = 0x3
|
||||
ETHTOOL_A_TUNNEL_UDP_UNSPEC = 0x0
|
||||
ETHTOOL_A_TUNNEL_UDP_TABLE = 0x1
|
||||
ETHTOOL_A_TUNNEL_UDP_MAX = 0x1
|
||||
ETHTOOL_A_TUNNEL_INFO_UNSPEC = 0x0
|
||||
ETHTOOL_A_TUNNEL_INFO_HEADER = 0x1
|
||||
ETHTOOL_A_TUNNEL_INFO_UDP_PORTS = 0x2
|
||||
ETHTOOL_A_TUNNEL_INFO_MAX = 0x2
|
||||
)
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
// cgo -godefs -- -Wall -Werror -static -I/tmp/include -m32 linux/types.go | go run mkpost.go
|
||||
// cgo -godefs -- -Wall -Werror -static -I/tmp/include -m32 /build/linux/types.go | go run mkpost.go
|
||||
// Code generated by the command above; see README.md. DO NOT EDIT.
|
||||
|
||||
// +build 386,linux
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
// cgo -godefs -- -Wall -Werror -static -I/tmp/include -m64 linux/types.go | go run mkpost.go
|
||||
// cgo -godefs -- -Wall -Werror -static -I/tmp/include -m64 /build/linux/types.go | go run mkpost.go
|
||||
// Code generated by the command above; see README.md. DO NOT EDIT.
|
||||
|
||||
// +build amd64,linux
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
// cgo -godefs -- -Wall -Werror -static -I/tmp/include linux/types.go | go run mkpost.go
|
||||
// cgo -godefs -- -Wall -Werror -static -I/tmp/include /build/linux/types.go | go run mkpost.go
|
||||
// Code generated by the command above; see README.md. DO NOT EDIT.
|
||||
|
||||
// +build arm,linux
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
// cgo -godefs -- -Wall -Werror -static -I/tmp/include -fsigned-char linux/types.go | go run mkpost.go
|
||||
// cgo -godefs -- -Wall -Werror -static -I/tmp/include -fsigned-char /build/linux/types.go | go run mkpost.go
|
||||
// Code generated by the command above; see README.md. DO NOT EDIT.
|
||||
|
||||
// +build arm64,linux
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
// cgo -godefs -- -Wall -Werror -static -I/tmp/include linux/types.go | go run mkpost.go
|
||||
// cgo -godefs -- -Wall -Werror -static -I/tmp/include /build/linux/types.go | go run mkpost.go
|
||||
// Code generated by the command above; see README.md. DO NOT EDIT.
|
||||
|
||||
// +build mips,linux
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
// cgo -godefs -- -Wall -Werror -static -I/tmp/include linux/types.go | go run mkpost.go
|
||||
// cgo -godefs -- -Wall -Werror -static -I/tmp/include /build/linux/types.go | go run mkpost.go
|
||||
// Code generated by the command above; see README.md. DO NOT EDIT.
|
||||
|
||||
// +build mips64,linux
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
// cgo -godefs -- -Wall -Werror -static -I/tmp/include linux/types.go | go run mkpost.go
|
||||
// cgo -godefs -- -Wall -Werror -static -I/tmp/include /build/linux/types.go | go run mkpost.go
|
||||
// Code generated by the command above; see README.md. DO NOT EDIT.
|
||||
|
||||
// +build mips64le,linux
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
// cgo -godefs -- -Wall -Werror -static -I/tmp/include linux/types.go | go run mkpost.go
|
||||
// cgo -godefs -- -Wall -Werror -static -I/tmp/include /build/linux/types.go | go run mkpost.go
|
||||
// Code generated by the command above; see README.md. DO NOT EDIT.
|
||||
|
||||
// +build mipsle,linux
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
// cgo -godefs -- -Wall -Werror -static -I/tmp/include linux/types.go | go run mkpost.go
|
||||
// cgo -godefs -- -Wall -Werror -static -I/tmp/include /build/linux/types.go | go run mkpost.go
|
||||
// Code generated by the command above; see README.md. DO NOT EDIT.
|
||||
|
||||
// +build ppc64,linux
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
// cgo -godefs -- -Wall -Werror -static -I/tmp/include linux/types.go | go run mkpost.go
|
||||
// cgo -godefs -- -Wall -Werror -static -I/tmp/include /build/linux/types.go | go run mkpost.go
|
||||
// Code generated by the command above; see README.md. DO NOT EDIT.
|
||||
|
||||
// +build ppc64le,linux
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
// cgo -godefs -- -Wall -Werror -static -I/tmp/include linux/types.go | go run mkpost.go
|
||||
// cgo -godefs -- -Wall -Werror -static -I/tmp/include /build/linux/types.go | go run mkpost.go
|
||||
// Code generated by the command above; see README.md. DO NOT EDIT.
|
||||
|
||||
// +build riscv64,linux
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
// cgo -godefs -- -Wall -Werror -static -I/tmp/include -fsigned-char linux/types.go | go run mkpost.go
|
||||
// cgo -godefs -- -Wall -Werror -static -I/tmp/include -fsigned-char /build/linux/types.go | go run mkpost.go
|
||||
// Code generated by the command above; see README.md. DO NOT EDIT.
|
||||
|
||||
// +build s390x,linux
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
// cgo -godefs -- -Wall -Werror -static -I/tmp/include linux/types.go | go run mkpost.go
|
||||
// cgo -godefs -- -Wall -Werror -static -I/tmp/include /build/linux/types.go | go run mkpost.go
|
||||
// Code generated by the command above; see README.md. DO NOT EDIT.
|
||||
|
||||
// +build sparc64,linux
|
||||
|
|
|
|||
|
|
@ -248,6 +248,7 @@ const (
|
|||
SizeofSockaddrUnix = 0x6a
|
||||
SizeofSockaddrDatalink = 0x14
|
||||
SizeofLinger = 0x8
|
||||
SizeofIovec = 0x8
|
||||
SizeofIPMreq = 0x8
|
||||
SizeofIPv6Mreq = 0x14
|
||||
SizeofMsghdr = 0x1c
|
||||
|
|
|
|||
|
|
@ -255,6 +255,7 @@ const (
|
|||
SizeofSockaddrUnix = 0x6a
|
||||
SizeofSockaddrDatalink = 0x14
|
||||
SizeofLinger = 0x8
|
||||
SizeofIovec = 0x10
|
||||
SizeofIPMreq = 0x8
|
||||
SizeofIPv6Mreq = 0x14
|
||||
SizeofMsghdr = 0x30
|
||||
|
|
|
|||
|
|
@ -253,6 +253,7 @@ const (
|
|||
SizeofSockaddrUnix = 0x6a
|
||||
SizeofSockaddrDatalink = 0x14
|
||||
SizeofLinger = 0x8
|
||||
SizeofIovec = 0x8
|
||||
SizeofIPMreq = 0x8
|
||||
SizeofIPv6Mreq = 0x14
|
||||
SizeofMsghdr = 0x1c
|
||||
|
|
|
|||
|
|
@ -255,6 +255,7 @@ const (
|
|||
SizeofSockaddrUnix = 0x6a
|
||||
SizeofSockaddrDatalink = 0x14
|
||||
SizeofLinger = 0x8
|
||||
SizeofIovec = 0x10
|
||||
SizeofIPMreq = 0x8
|
||||
SizeofIPv6Mreq = 0x14
|
||||
SizeofMsghdr = 0x30
|
||||
|
|
|
|||
|
|
@ -231,6 +231,7 @@ const (
|
|||
SizeofSockaddrUnix = 0x6a
|
||||
SizeofSockaddrDatalink = 0x20
|
||||
SizeofLinger = 0x8
|
||||
SizeofIovec = 0x8
|
||||
SizeofIPMreq = 0x8
|
||||
SizeofIPv6Mreq = 0x14
|
||||
SizeofMsghdr = 0x1c
|
||||
|
|
|
|||
|
|
@ -235,6 +235,7 @@ const (
|
|||
SizeofSockaddrUnix = 0x6a
|
||||
SizeofSockaddrDatalink = 0x20
|
||||
SizeofLinger = 0x8
|
||||
SizeofIovec = 0x10
|
||||
SizeofIPMreq = 0x8
|
||||
SizeofIPv6Mreq = 0x14
|
||||
SizeofMsghdr = 0x30
|
||||
|
|
|
|||
|
|
@ -235,6 +235,7 @@ const (
|
|||
SizeofSockaddrUnix = 0x6a
|
||||
SizeofSockaddrDatalink = 0x20
|
||||
SizeofLinger = 0x8
|
||||
SizeofIovec = 0x8
|
||||
SizeofIPMreq = 0x8
|
||||
SizeofIPv6Mreq = 0x14
|
||||
SizeofMsghdr = 0x1c
|
||||
|
|
|
|||
|
|
@ -231,6 +231,7 @@ const (
|
|||
SizeofSockaddrUnix = 0x6a
|
||||
SizeofSockaddrDatalink = 0x20
|
||||
SizeofLinger = 0x8
|
||||
SizeofIovec = 0x10
|
||||
SizeofIPMreq = 0x8
|
||||
SizeofIPv6Mreq = 0x14
|
||||
SizeofMsghdr = 0x30
|
||||
|
|
|
|||
|
|
@ -231,6 +231,7 @@ const (
|
|||
SizeofSockaddrUnix = 0x6a
|
||||
SizeofSockaddrDatalink = 0x20
|
||||
SizeofLinger = 0x8
|
||||
SizeofIovec = 0x10
|
||||
SizeofIPMreq = 0x8
|
||||
SizeofIPv6Mreq = 0x14
|
||||
SizeofMsghdr = 0x30
|
||||
|
|
|
|||
|
|
@ -234,6 +234,7 @@ const (
|
|||
SizeofSockaddrUnix = 0x6e
|
||||
SizeofSockaddrDatalink = 0xfc
|
||||
SizeofLinger = 0x8
|
||||
SizeofIovec = 0x10
|
||||
SizeofIPMreq = 0x8
|
||||
SizeofIPv6Mreq = 0x14
|
||||
SizeofMsghdr = 0x30
|
||||
|
|
|
|||
|
|
@ -18,6 +18,7 @@ import (
|
|||
)
|
||||
|
||||
type Handle uintptr
|
||||
type HWND uintptr
|
||||
|
||||
const (
|
||||
InvalidHandle = ^Handle(0)
|
||||
|
|
@ -214,6 +215,10 @@ func NewCallbackCDecl(fn interface{}) uintptr {
|
|||
//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
|
||||
//sys OpenProcess(desiredAccess uint32, inheritHandle bool, processId uint32) (handle Handle, err error)
|
||||
//sys ShellExecute(hwnd Handle, verb *uint16, file *uint16, args *uint16, cwd *uint16, showCmd int32) (err error) [failretval<=32] = shell32.ShellExecuteW
|
||||
//sys GetWindowThreadProcessId(hwnd HWND, pid *uint32) (tid uint32) = user32.GetWindowThreadProcessId
|
||||
//sys GetShellWindow() (shellWindow HWND) = user32.GetShellWindow
|
||||
//sys MessageBox(hwnd HWND, text *uint16, caption *uint16, boxtype uint32) (ret int32, err error) [failretval==0] = user32.MessageBoxW
|
||||
//sys ExitWindowsEx(flags uint32, reason uint32) (err error) = user32.ExitWindowsEx
|
||||
//sys shGetKnownFolderPath(id *KNOWNFOLDERID, flags uint32, token Token, path **uint16) (ret error) = shell32.SHGetKnownFolderPath
|
||||
//sys TerminateProcess(handle Handle, exitcode uint32) (err error)
|
||||
//sys GetExitCodeProcess(handle Handle, exitcode *uint32) (err error)
|
||||
|
|
@ -265,6 +270,8 @@ func NewCallbackCDecl(fn interface{}) uintptr {
|
|||
//sys CertAddCertificateContextToStore(store Handle, certContext *CertContext, addDisposition uint32, storeContext **CertContext) (err error) = crypt32.CertAddCertificateContextToStore
|
||||
//sys CertCloseStore(store Handle, flags uint32) (err error) = crypt32.CertCloseStore
|
||||
//sys CertDeleteCertificateFromStore(certContext *CertContext) (err error) = crypt32.CertDeleteCertificateFromStore
|
||||
//sys CertDuplicateCertificateContext(certContext *CertContext) (dupContext *CertContext) = crypt32.CertDuplicateCertificateContext
|
||||
//sys PFXImportCertStore(pfx *CryptDataBlob, password *uint16, flags uint32) (store Handle, err error) = crypt32.PFXImportCertStore
|
||||
//sys CertGetCertificateChain(engine Handle, leaf *CertContext, time *Filetime, additionalStore Handle, para *CertChainPara, flags uint32, reserved uintptr, chainCtx **CertChainContext) (err error) = crypt32.CertGetCertificateChain
|
||||
//sys CertFreeCertificateChain(ctx *CertChainContext) = crypt32.CertFreeCertificateChain
|
||||
//sys CertCreateCertificateContext(certEncodingType uint32, certEncoded *byte, encodedLen uint32) (context *CertContext, err error) [failretval==nil] = crypt32.CertCreateCertificateContext
|
||||
|
|
@ -342,8 +349,6 @@ func NewCallbackCDecl(fn interface{}) uintptr {
|
|||
//sys QueryDosDevice(deviceName *uint16, targetPath *uint16, max uint32) (n uint32, err error) [failretval==0] = QueryDosDeviceW
|
||||
//sys SetVolumeLabel(rootPathName *uint16, volumeName *uint16) (err error) = SetVolumeLabelW
|
||||
//sys SetVolumeMountPoint(volumeMountPoint *uint16, volumeName *uint16) (err error) = SetVolumeMountPointW
|
||||
//sys MessageBox(hwnd Handle, text *uint16, caption *uint16, boxtype uint32) (ret int32, err error) [failretval==0] = user32.MessageBoxW
|
||||
//sys ExitWindowsEx(flags uint32, reason uint32) (err error) = user32.ExitWindowsEx
|
||||
//sys InitiateSystemShutdownEx(machineName *uint16, message *uint16, timeout uint32, forceAppsClosed bool, rebootAfterShutdown bool, reason uint32) (err error) = advapi32.InitiateSystemShutdownExW
|
||||
//sys SetProcessShutdownParameters(level uint32, flags uint32) (err error) = kernel32.SetProcessShutdownParameters
|
||||
//sys GetProcessShutdownParameters(level *uint32, flags *uint32) (err error) = kernel32.GetProcessShutdownParameters
|
||||
|
|
|
|||
|
|
@ -249,24 +249,27 @@ const (
|
|||
|
||||
const (
|
||||
// wincrypt.h
|
||||
PROV_RSA_FULL = 1
|
||||
PROV_RSA_SIG = 2
|
||||
PROV_DSS = 3
|
||||
PROV_FORTEZZA = 4
|
||||
PROV_MS_EXCHANGE = 5
|
||||
PROV_SSL = 6
|
||||
PROV_RSA_SCHANNEL = 12
|
||||
PROV_DSS_DH = 13
|
||||
PROV_EC_ECDSA_SIG = 14
|
||||
PROV_EC_ECNRA_SIG = 15
|
||||
PROV_EC_ECDSA_FULL = 16
|
||||
PROV_EC_ECNRA_FULL = 17
|
||||
PROV_DH_SCHANNEL = 18
|
||||
PROV_SPYRUS_LYNKS = 20
|
||||
PROV_RNG = 21
|
||||
PROV_INTEL_SEC = 22
|
||||
PROV_REPLACE_OWF = 23
|
||||
PROV_RSA_AES = 24
|
||||
/* certenrolld_begin -- PROV_RSA_*/
|
||||
PROV_RSA_FULL = 1
|
||||
PROV_RSA_SIG = 2
|
||||
PROV_DSS = 3
|
||||
PROV_FORTEZZA = 4
|
||||
PROV_MS_EXCHANGE = 5
|
||||
PROV_SSL = 6
|
||||
PROV_RSA_SCHANNEL = 12
|
||||
PROV_DSS_DH = 13
|
||||
PROV_EC_ECDSA_SIG = 14
|
||||
PROV_EC_ECNRA_SIG = 15
|
||||
PROV_EC_ECDSA_FULL = 16
|
||||
PROV_EC_ECNRA_FULL = 17
|
||||
PROV_DH_SCHANNEL = 18
|
||||
PROV_SPYRUS_LYNKS = 20
|
||||
PROV_RNG = 21
|
||||
PROV_INTEL_SEC = 22
|
||||
PROV_REPLACE_OWF = 23
|
||||
PROV_RSA_AES = 24
|
||||
|
||||
/* dwFlags definitions for CryptAcquireContext */
|
||||
CRYPT_VERIFYCONTEXT = 0xF0000000
|
||||
CRYPT_NEWKEYSET = 0x00000008
|
||||
CRYPT_DELETEKEYSET = 0x00000010
|
||||
|
|
@ -274,6 +277,17 @@ const (
|
|||
CRYPT_SILENT = 0x00000040
|
||||
CRYPT_DEFAULT_CONTAINER_OPTIONAL = 0x00000080
|
||||
|
||||
/* Flags for PFXImportCertStore */
|
||||
CRYPT_EXPORTABLE = 0x00000001
|
||||
CRYPT_USER_PROTECTED = 0x00000002
|
||||
CRYPT_USER_KEYSET = 0x00001000
|
||||
PKCS12_PREFER_CNG_KSP = 0x00000100
|
||||
PKCS12_ALWAYS_CNG_KSP = 0x00000200
|
||||
PKCS12_ALLOW_OVERWRITE_KEY = 0x00004000
|
||||
PKCS12_NO_PERSIST_KEY = 0x00008000
|
||||
PKCS12_INCLUDE_EXTENDED_PROPERTIES = 0x00000010
|
||||
|
||||
/* Default usage match type is AND with value zero */
|
||||
USAGE_MATCH_TYPE_AND = 0
|
||||
USAGE_MATCH_TYPE_OR = 1
|
||||
|
||||
|
|
@ -409,6 +423,10 @@ const (
|
|||
CERT_CHAIN_POLICY_EV = 8
|
||||
CERT_CHAIN_POLICY_SSL_F12 = 9
|
||||
|
||||
/* Certificate Store close flags */
|
||||
CERT_CLOSE_STORE_FORCE_FLAG = 0x00000001
|
||||
CERT_CLOSE_STORE_CHECK_FLAG = 0x00000002
|
||||
|
||||
/* AuthType values for SSLExtraCertChainPolicyPara struct */
|
||||
AUTHTYPE_CLIENT = 1
|
||||
AUTHTYPE_SERVER = 2
|
||||
|
|
@ -1139,6 +1157,11 @@ type CertChainPolicyStatus struct {
|
|||
ExtraPolicyStatus Pointer
|
||||
}
|
||||
|
||||
type CryptDataBlob struct {
|
||||
Size uint32
|
||||
Data *byte
|
||||
}
|
||||
|
||||
const (
|
||||
// do not reorder
|
||||
HKEY_CLASSES_ROOT = 0x80000000 + iota
|
||||
|
|
|
|||
|
|
@ -143,6 +143,7 @@ var (
|
|||
procCertCloseStore = modcrypt32.NewProc("CertCloseStore")
|
||||
procCertCreateCertificateContext = modcrypt32.NewProc("CertCreateCertificateContext")
|
||||
procCertDeleteCertificateFromStore = modcrypt32.NewProc("CertDeleteCertificateFromStore")
|
||||
procCertDuplicateCertificateContext = modcrypt32.NewProc("CertDuplicateCertificateContext")
|
||||
procCertEnumCertificatesInStore = modcrypt32.NewProc("CertEnumCertificatesInStore")
|
||||
procCertFreeCertificateChain = modcrypt32.NewProc("CertFreeCertificateChain")
|
||||
procCertFreeCertificateContext = modcrypt32.NewProc("CertFreeCertificateContext")
|
||||
|
|
@ -150,6 +151,7 @@ var (
|
|||
procCertOpenStore = modcrypt32.NewProc("CertOpenStore")
|
||||
procCertOpenSystemStoreW = modcrypt32.NewProc("CertOpenSystemStoreW")
|
||||
procCertVerifyCertificateChainPolicy = modcrypt32.NewProc("CertVerifyCertificateChainPolicy")
|
||||
procPFXImportCertStore = modcrypt32.NewProc("PFXImportCertStore")
|
||||
procDnsNameCompare_W = moddnsapi.NewProc("DnsNameCompare_W")
|
||||
procDnsQuery_W = moddnsapi.NewProc("DnsQuery_W")
|
||||
procDnsRecordListFree = moddnsapi.NewProc("DnsRecordListFree")
|
||||
|
|
@ -339,6 +341,8 @@ var (
|
|||
procSHGetKnownFolderPath = modshell32.NewProc("SHGetKnownFolderPath")
|
||||
procShellExecuteW = modshell32.NewProc("ShellExecuteW")
|
||||
procExitWindowsEx = moduser32.NewProc("ExitWindowsEx")
|
||||
procGetShellWindow = moduser32.NewProc("GetShellWindow")
|
||||
procGetWindowThreadProcessId = moduser32.NewProc("GetWindowThreadProcessId")
|
||||
procMessageBoxW = moduser32.NewProc("MessageBoxW")
|
||||
procCreateEnvironmentBlock = moduserenv.NewProc("CreateEnvironmentBlock")
|
||||
procDestroyEnvironmentBlock = moduserenv.NewProc("DestroyEnvironmentBlock")
|
||||
|
|
@ -1180,6 +1184,12 @@ func CertDeleteCertificateFromStore(certContext *CertContext) (err error) {
|
|||
return
|
||||
}
|
||||
|
||||
func CertDuplicateCertificateContext(certContext *CertContext) (dupContext *CertContext) {
|
||||
r0, _, _ := syscall.Syscall(procCertDuplicateCertificateContext.Addr(), 1, uintptr(unsafe.Pointer(certContext)), 0, 0)
|
||||
dupContext = (*CertContext)(unsafe.Pointer(r0))
|
||||
return
|
||||
}
|
||||
|
||||
func CertEnumCertificatesInStore(store Handle, prevContext *CertContext) (context *CertContext, err error) {
|
||||
r0, _, e1 := syscall.Syscall(procCertEnumCertificatesInStore.Addr(), 2, uintptr(store), uintptr(unsafe.Pointer(prevContext)), 0)
|
||||
context = (*CertContext)(unsafe.Pointer(r0))
|
||||
|
|
@ -1236,6 +1246,15 @@ func CertVerifyCertificateChainPolicy(policyOID uintptr, chain *CertChainContext
|
|||
return
|
||||
}
|
||||
|
||||
func PFXImportCertStore(pfx *CryptDataBlob, password *uint16, flags uint32) (store Handle, err error) {
|
||||
r0, _, e1 := syscall.Syscall(procPFXImportCertStore.Addr(), 3, uintptr(unsafe.Pointer(pfx)), uintptr(unsafe.Pointer(password)), uintptr(flags))
|
||||
store = Handle(r0)
|
||||
if store == 0 {
|
||||
err = errnoErr(e1)
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
func DnsNameCompare(name1 *uint16, name2 *uint16) (same bool) {
|
||||
r0, _, _ := syscall.Syscall(procDnsNameCompare_W.Addr(), 2, uintptr(unsafe.Pointer(name1)), uintptr(unsafe.Pointer(name2)), 0)
|
||||
same = r0 != 0
|
||||
|
|
@ -2879,7 +2898,19 @@ func ExitWindowsEx(flags uint32, reason uint32) (err error) {
|
|||
return
|
||||
}
|
||||
|
||||
func MessageBox(hwnd Handle, text *uint16, caption *uint16, boxtype uint32) (ret int32, err error) {
|
||||
func GetShellWindow() (shellWindow HWND) {
|
||||
r0, _, _ := syscall.Syscall(procGetShellWindow.Addr(), 0, 0, 0, 0)
|
||||
shellWindow = HWND(r0)
|
||||
return
|
||||
}
|
||||
|
||||
func GetWindowThreadProcessId(hwnd HWND, pid *uint32) (tid uint32) {
|
||||
r0, _, _ := syscall.Syscall(procGetWindowThreadProcessId.Addr(), 2, uintptr(hwnd), uintptr(unsafe.Pointer(pid)), 0)
|
||||
tid = uint32(r0)
|
||||
return
|
||||
}
|
||||
|
||||
func MessageBox(hwnd HWND, text *uint16, caption *uint16, boxtype uint32) (ret int32, err error) {
|
||||
r0, _, e1 := syscall.Syscall6(procMessageBoxW.Addr(), 4, uintptr(hwnd), uintptr(unsafe.Pointer(text)), uintptr(unsafe.Pointer(caption)), uintptr(boxtype), 0, 0)
|
||||
ret = int32(r0)
|
||||
if ret == 0 {
|
||||
|
|
|
|||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue